@po-ui/ng-templates 17.20.0 → 18.0.0-rc.0
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.
- package/esm2022/lib/components/po-modal-password-recovery/po-modal-password-recovery-base.component.mjs +1 -1
- package/esm2022/lib/components/po-modal-password-recovery/po-modal-password-recovery-error-message/po-modal-password-recovery-error-message.component.mjs +2 -2
- package/esm2022/lib/components/po-modal-password-recovery/po-modal-password-recovery.component.mjs +69 -69
- package/esm2022/lib/components/po-page-background/po-page-background.component.mjs +15 -15
- package/esm2022/lib/components/po-page-blocked-user/po-page-blocked-user-base.component.mjs +2 -2
- package/esm2022/lib/components/po-page-blocked-user/po-page-blocked-user-contacts/po-page-blocked-user-contacts.component.mjs +8 -8
- package/esm2022/lib/components/po-page-blocked-user/po-page-blocked-user-reason/po-page-blocked-user-reason.component.mjs +2 -2
- package/esm2022/lib/components/po-page-blocked-user/po-page-blocked-user.component.mjs +2 -2
- package/esm2022/lib/components/po-page-change-password/po-page-change-password-base.component.mjs +2 -2
- package/esm2022/lib/components/po-page-change-password/po-page-change-password.component.mjs +41 -40
- package/esm2022/lib/components/po-page-dynamic-detail/po-page-dynamic-detail-actions.service.mjs +1 -1
- package/esm2022/lib/components/po-page-dynamic-detail/po-page-dynamic-detail.component.mjs +12 -12
- package/esm2022/lib/components/po-page-dynamic-edit/po-page-dynamic-edit-actions.service.mjs +1 -1
- package/esm2022/lib/components/po-page-dynamic-edit/po-page-dynamic-edit.component.mjs +27 -27
- package/esm2022/lib/components/po-page-dynamic-search/po-advanced-filter/po-advanced-filter-base.component.mjs +2 -2
- package/esm2022/lib/components/po-page-dynamic-search/po-advanced-filter/po-advanced-filter.component.mjs +1 -1
- package/esm2022/lib/components/po-page-dynamic-search/po-page-dynamic-search-base.component.mjs +2 -2
- package/esm2022/lib/components/po-page-dynamic-search/po-page-dynamic-search.component.mjs +5 -4
- package/esm2022/lib/components/po-page-dynamic-table/po-page-dynamic-list-base.component.mjs +2 -2
- package/esm2022/lib/components/po-page-dynamic-table/po-page-dynamic-table-actions.service.mjs +1 -1
- package/esm2022/lib/components/po-page-dynamic-table/po-page-dynamic-table.component.mjs +2 -2
- package/esm2022/lib/components/po-page-job-scheduler/po-page-job-scheduler-base.component.mjs +2 -2
- package/esm2022/lib/components/po-page-job-scheduler/po-page-job-scheduler-execution/po-page-job-scheduler-execution.component.mjs +82 -81
- package/esm2022/lib/components/po-page-job-scheduler/po-page-job-scheduler-parameters/po-job-scheduler-parameters-template/po-job-scheduler-parameters-template.directive.mjs +1 -1
- package/esm2022/lib/components/po-page-job-scheduler/po-page-job-scheduler-parameters/po-page-job-scheduler-parameters.component.mjs +14 -14
- package/esm2022/lib/components/po-page-job-scheduler/po-page-job-scheduler-summary/po-page-job-scheduler-summary.component.mjs +9 -9
- package/esm2022/lib/components/po-page-job-scheduler/po-page-job-scheduler.component.mjs +19 -18
- package/esm2022/lib/components/po-page-job-scheduler/po-page-job-scheduler.service.mjs +1 -1
- package/esm2022/lib/components/po-page-login/po-page-login-base.component.mjs +2 -2
- package/esm2022/lib/components/po-page-login/po-page-login-popover/po-page-login-popover.component.mjs +12 -12
- package/esm2022/lib/components/po-page-login/po-page-login.component.mjs +74 -74
- package/esm2022/lib/components/po-page-login/po-page-login.service.mjs +1 -1
- package/esm2022/lib/services/po-page-customization/po-page-customization.service.mjs +1 -1
- package/esm2022/lib/services/po-page-dynamic/po-page-dynamic.service.mjs +1 -1
- package/esm2022/lib/utils/util.mjs +1 -1
- package/fesm2022/po-ui-ng-templates.mjs +388 -384
- package/fesm2022/po-ui-ng-templates.mjs.map +1 -1
- package/package.json +12 -12
- package/po-ui-ng-templates-18.0.0-rc.0.tgz +0 -0
- package/schematics/ng-add/index.js +1 -1
- package/schematics/ng-add/index.js.map +1 -1
- package/po-ui-ng-templates-17.20.0.tgz +0 -0
|
@@ -987,7 +987,7 @@ export class PoPageLoginBaseComponent {
|
|
|
987
987
|
}
|
|
988
988
|
}
|
|
989
989
|
static ɵfac = function PoPageLoginBaseComponent_Factory(t) { return new (t || PoPageLoginBaseComponent)(i0.ɵɵdirectiveInject(i1.PoPageLoginService), i0.ɵɵdirectiveInject(i2.Router), i0.ɵɵdirectiveInject(i3.PoLanguageService)); };
|
|
990
|
-
static ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: PoPageLoginBaseComponent, inputs: { background: [
|
|
990
|
+
static ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: PoPageLoginBaseComponent, inputs: { background: [0, "p-background", "background"], logo: [0, "p-logo", "logo"], loginPattern: [0, "p-login-pattern", "loginPattern"], passwordPattern: [0, "p-password-pattern", "passwordPattern"], secondaryLogo: [0, "p-secondary-logo", "secondaryLogo"], noAutocompleteLogin: [0, "p-no-autocomplete-login", "noAutocompleteLogin"], noAutocompletePassword: [0, "p-no-autocomplete-password", "noAutocompletePassword"], hidePasswordPeek: [0, "p-hide-password-peek", "hidePasswordPeek"], customField: [0, "p-custom-field", "customField"], contactEmail: [0, "p-contact-email", "contactEmail"], productName: [0, "p-product-name", "productName"], environment: [0, "p-environment", "environment"], exceededAttemptsWarning: [0, "p-exceeded-attempts-warning", "exceededAttemptsWarning"], hideRememberUser: [0, "p-hide-remember-user", "hideRememberUser"], literals: [0, "p-literals", "literals"], loading: [0, "p-loading", "loading"], login: [0, "p-login", "login"], loginErrors: [0, "p-login-errors", "loginErrors"], passwordErrors: [0, "p-password-errors", "passwordErrors"], recovery: [0, "p-recovery", "recovery"], registerUrl: [0, "p-register-url", "registerUrl"], authenticationType: [0, "p-authentication-type", "authenticationType"], authenticationUrl: [0, "p-authentication-url", "authenticationUrl"], blockedUrl: [0, "p-blocked-url", "blockedUrl"], support: [0, "p-support", "support"], languagesList: [0, "p-languages", "languagesList"] }, outputs: { loginChange: "p-login-change", loginSubmit: "p-login-submit", passwordChange: "p-password-change", languageChange: "p-language-change" } });
|
|
991
991
|
}
|
|
992
992
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PoPageLoginBaseComponent, [{
|
|
993
993
|
type: Directive
|
|
@@ -1082,4 +1082,4 @@ export class PoPageLoginBaseComponent {
|
|
|
1082
1082
|
type: Input,
|
|
1083
1083
|
args: ['p-languages']
|
|
1084
1084
|
}] }); })();
|
|
1085
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tcGFnZS1sb2dpbi1iYXNlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RlbXBsYXRlcy9zcmMvbGliL2NvbXBvbmVudHMvcG8tcGFnZS1sb2dpbi9wby1wYWdlLWxvZ2luLWJhc2UuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFhLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHbEYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFlBQVksRUFBRSx1QkFBdUIsRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFdkgsT0FBTyxFQUFxQixlQUFlLEVBQWMsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUd6RyxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQzs7Ozs7QUFNL0YsTUFBTSwyQkFBMkIsR0FBRyxFQUFFLENBQUM7QUFFdkMsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQUc7SUFDeEMsRUFBRSxFQUF1QjtRQUN2QixLQUFLLEVBQUUsU0FBUztRQUNoQixpQkFBaUIsRUFBRSxlQUFlO1FBQ2xDLFNBQVMsRUFBRTt1REFDd0M7UUFDbkQsZ0JBQWdCLEVBQUUsb0JBQW9CO1FBQ3RDLG9CQUFvQixFQUFFLGtCQUFrQjtRQUN4QyxtQkFBbUIsRUFBRSxzQkFBc0I7UUFDM0MsdUJBQXVCLEVBQUUsZUFBZTtRQUN4QyxzQkFBc0IsRUFBRSxzQkFBc0I7UUFDOUMsWUFBWSxFQUFFLGlCQUFpQjtRQUMvQixnQkFBZ0IsRUFBRSxxREFBcUQ7UUFDdkUsV0FBVyxFQUFFLE9BQU87UUFDcEIsY0FBYyxFQUFFLFlBQVk7UUFDNUIsY0FBYyxFQUFFLHVCQUF1QjtRQUN2QyxhQUFhLEVBQUUsRUFBRTtRQUNqQixXQUFXLEVBQUUsY0FBYztR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QkFBdkMsS0FBSzttQkFBQyxnQkFBZ0I7WUFlUyxjQUFjO2tCQUE3QyxLQUFLO21CQUFDLG1CQUFtQjtZQTZCRCxRQUFRO2tCQUFoQyxLQUFLO21CQUFDLFlBQVk7WUFzQlUsV0FBVztrQkFBdkMsS0FBSzttQkFBQyxnQkFBZ0I7WUF1Q2Esa0JBQWtCO2tCQUFyRCxLQUFLO21CQUFDLHVCQUF1QjtZQTJISyxpQkFBaUI7a0JBQW5ELEtBQUs7bUJBQUMsc0JBQXNCO1lBZ0JELFVBQVU7a0JBQXJDLEtBQUs7bUJBQUMsZUFBZTtZQTBCRSxPQUFPO2tCQUE5QixLQUFLO21CQUFDLFdBQVc7WUF5QlEsYUFBYTtrQkFBdEMsS0FBSzttQkFBQyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkRlc3Ryb3ksIE91dHB1dCwgRGlyZWN0aXZlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbXBvcnQgeyBjb252ZXJ0VG9Cb29sZWFuLCBjb252ZXJ0VG9JbnQsIGdldFNob3J0QnJvd3Nlckxhbmd1YWdlLCBpc0V4dGVybmFsTGluaywgaXNUeXBlb2YgfSBmcm9tICcuLy4uLy4uL3V0aWxzL3V0aWwnO1xuXG5pbXBvcnQgeyBQb0xhbmd1YWdlU2VydmljZSwgcG9Mb2NhbGVEZWZhdWx0LCBQb0xhbmd1YWdlLCBwb0xhbmd1YWdlRGVmYXVsdCB9IGZyb20gJ0Bwby11aS9uZy1jb21wb25lbnRzJztcblxuaW1wb3J0IHsgUG9QYWdlTG9naW4gfSBmcm9tICcuL2ludGVyZmFjZXMvcG8tcGFnZS1sb2dpbi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUG9QYWdlTG9naW5BdXRoZW50aWNhdGlvblR5cGUgfSBmcm9tICcuL2VudW1zL3BvLXBhZ2UtbG9naW4tYXV0aGVudGljYXRpb24tdHlwZS5lbnVtJztcbmltcG9ydCB7IFBvUGFnZUxvZ2luQ3VzdG9tRmllbGQgfSBmcm9tICcuL2ludGVyZmFjZXMvcG8tcGFnZS1sb2dpbi1jdXN0b20tZmllbGQuaW50ZXJmYWNlJztcbmltcG9ydCB7IFBvUGFnZUxvZ2luTGl0ZXJhbHMgfSBmcm9tICcuL2ludGVyZmFjZXMvcG8tcGFnZS1sb2dpbi1saXRlcmFscy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUG9QYWdlTG9naW5SZWNvdmVyeSB9IGZyb20gJy4vaW50ZXJmYWNlcy9wby1wYWdlLWxvZ2luLXJlY292ZXJ5LmludGVyZmFjZSc7XG5pbXBvcnQgeyBQb1BhZ2VMb2dpblNlcnZpY2UgfSBmcm9tICcuL3BvLXBhZ2UtbG9naW4uc2VydmljZSc7XG5cbmNvbnN0IHBvUGFnZUxvZ2luQ29udGVudE1heExlbmd0aCA9IDQwO1xuXG5leHBvcnQgY29uc3QgcG9QYWdlTG9naW5MaXRlcmFsc0RlZmF1bHQgPSB7XG4gIGVuOiA8UG9QYWdlTG9naW5MaXRlcmFscz57XG4gICAgdGl0bGU6ICdXZWxjb21lJyxcbiAgICBsb2dpbkVycm9yUGF0dGVybjogJ0ludmFsaWQgTG9naW4nLFxuICAgIGxvZ2luSGludDogYFlvdXIgbG9naW4gdXNlciB3YXMgZ2l2ZW4gdG8geW91IGF0IHlvdXIgZmlyc3QgZGF5LlxuICAgIElmIHlvdSBkb24ndCBoYXZlIHRoaXMgaW5mb3JtYXRpb24gY29udGFjdCBzdXBwb3J0YCxcbiAgICBsb2dpblBsYWNlaG9sZGVyOiAnSW5zZXJ0IHlvdXIgZS1tYWlsJyxcbiAgICBwYXNzd29yZEVycm9yUGF0dGVybjogJ0ludmFsaWQgUGFzc3dvcmQnLFxuICAgIHBhc3N3b3JkUGxhY2Vob2xkZXI6ICdJbnNlcnQgeW91ciBwYXNzd29yZCcsXG4gICAgY3VzdG9tRmllbGRFcnJvclBhdHRlcm46ICdJbnZhbGlkIHZhbHVlJyxcbiAgICBjdXN0b21GaWVsZFBsYWNlaG9sZGVyOiAnUGxlYXNlIGVudGVyIGEgdmFsdWUnLFxuICAgIHJlbWVtYmVyVXNlcjogJ0F1dG9tYXRpYyBsb2dpbicsXG4gICAgcmVtZW1iZXJVc2VySGludDogJ1lvdSBjYW4gZGlzYWJsZSB0aGlzIG9wdGlvbiBpbiBzeXN0ZW0gY29uZmlndXJhdGlvbicsXG4gICAgc3VibWl0TGFiZWw6ICdFbnRlcicsXG4gICAgc3VibWl0dGVkTGFiZWw6ICdMb2FkaW5nLi4uJyxcbiAgICBmb3Jnb3RQYXNzd29yZDogJ0ZvcmdvdCB5b3VyIFBhc3N3b3JkPycsXG4gICAgaGlnaGxpZ2h0SW5mbzogJycsXG4gICAgcmVnaXN0ZXJVcmw6ICdOZXcgcmVnaXN0ZXInLFxuICAgIHRpdGxlUG9wb3ZlcjogJ09vcHMhJyxcbiAgICBmb3Jnb3RZb3VyUGFzc3dvcmQ6ICdGb3Jnb3QgeW91ciBwYXNzd29yZD8nLFxuICAgIGlmWW91VHJ5SGFyZGVyOiAnSWYgeW91IHRyeSAnLFxuICAgIGF0dGVtcHRzOiAnezB9IG1vcmUgdGltZShzKSAnLFxuICAgIHlvdXJVc2VyV2lsbEJlQmxvY2tlZDpcbiAgICAgICd3aXRob3V0IHN1Y2Nlc3MgeW91ciB1c2VyIHdpbGwgYmUgYmxvY2tlZCBhbmQgeW91IHdpbGwgYmUgbGVmdCAyNCBob3VycyB3aXRob3V0IGJlaW5nIGFibGUgdG8gYWNjZXNzIDooJyxcbiAgICBjcmVhdGVBTmV3UGFzc3dvcmROb3c6ICdCZXR0ZXIgY3JlYXRlIGEgbmV3IHBhc3N3b3JkIG5vdyEgWW91IHdpbGwgYmUgYWJsZSB0byBsb2cgaW50byB0aGUgc3lzdGVtIHJpZ2h0IGF3YXkuJyxcbiAgICBpRm9yZ290TXlQYXNzd29yZDogJ0kgZm9yZ290IG15IHBhc3N3b3JkJyxcbiAgICB3ZWxjb21lOiAnV2VsY29tZScsXG4gICAgc3VwcG9ydDogJ1N1cHBvcnQnXG4gIH0sXG4gIGVzOiA8UG9QYWdlTG9naW5MaXRlcmFscz57XG4gICAgdGl0bGU6ICdCaWVudmVuaWRvJyxcbiAgICBsb2dpbkVycm9yUGF0dGVybjogJ0xvZ2luIGludsOhbGlkbycsXG4gICAgbG9naW5IaW50OiBgU3UgdXN1YXJpbyBoYSBzaWRvIGVudHJlZ2FkbyBwYXJhIHVzdGVkIGVuIHN1IHByaW1lciBkw61hLlxuICAgIFNpIG5vIHRpZW5lIGVzdGEgaW5mb3JtYWNpw7NuLCBww7NuZ2FzZSBlbiBjb250YWN0byBjb24gZWwgc29wb3J0ZSB0w6ljbmljb2AsXG4gICAgbG9naW5QbGFjZWhvbGRlcjogJ0luc2VydGUgc3UgZS1tYWlsJyxcbiAgICBwYXNzd29yZEVycm9yUGF0dGVybjogJ0NvbnRyYXNlw7FhIGludsOhbGlkYScsXG4gICAgcGFzc3dvcmRQbGFjZWhvbGRlcjogJ0luc2VydGUgc3UgY29udHJhc2XDsWEnLFxuICAgIGN1c3RvbUZpZWxkRXJyb3JQYXR0ZXJuOiAnVmFsb3Igbm8gdsOhbGlkby4nLFxuICAgIGN1c3RvbUZpZWxkUGxhY2Vob2xkZXI6ICdQb3IgZmF2b3IgaW50cm9kdXpjYSB1biB2YWxvcicsXG4gICAgcmVtZW1iZXJVc2VyOiAnSW5pY2lvIGRlIHNlc2nDs24gYXV0b23DoXRpY2FtZW50ZScsXG4gICAgcmVtZW1iZXJVc2VySGludDogJ1B1ZWRlIGRlc2hhYmlsaXRhciBlc3RhIG9wY2nDs24gZW4gZWwgbWVuw7ogZGVsIHNpc3RlbWEuJyxcbiAgICBzdWJtaXRMYWJlbDogJ0VudHJhcicsXG4gICAgc3VibWl0dGVkTGFiZWw6ICdDYXJnYW5kby4uLicsXG4gICAgZm9yZ290UGFzc3dvcmQ6ICdPbHZpZGFzdGUgdHUgY29udHJhc2XDsWE/JyxcbiAgICBoaWdobGlnaHRJbmZvOiAnJyxcbiAgICByZWdpc3RlclVybDogJ051ZXZvIHJlZ2lzdHJvJyxcbiAgICB0aXRsZVBvcG92ZXI6ICdPcGEhJyxcbiAgICBmb3Jnb3RZb3VyUGFzc3dvcmQ6ICdPbHZpZGFzdGUgdHUgY29udHJhc2XDsWE/JyxcbiAgICBpZllvdVRyeUhhcmRlcjogJ1NpIGludGVudGEgbcOhcyAnLFxuICAgIGF0dGVtcHRzOiAnezB9IHZlei92ZWNlcyAnLFxuICAgIHlvdXJVc2VyV2lsbEJlQmxvY2tlZDogJ3NpbiDDqXhpdG8gc3UgdXN1YXJpbyBzZXJhIGJsb3F1ZWFkbyB5IHVzdGVkIHbDoXMgcGVybWFuZWNlciAyNCBob3JhcyBzaW4gcG9kZXIgYWNjZWRlciBhIDooJyxcbiAgICBjcmVhdGVBTmV3UGFzc3dvcmROb3c6XG4gICAgICAnwqFNZWpvciBjcmVhciB1bmEgbnVldmEgY29udHJhc2XDsWEgYWhvcmEhIFVzdGVkIHBvZHLDoSBlbnRyYXIgZW4gZWwgc2lzdGVtYSBpbm1lZGlhdGFtZW50ZSBkZXNwdcOpcy4nLFxuICAgIGlGb3Jnb3RNeVBhc3N3b3JkOiAnT2x2aWRlIG1pIGNvbnRyYXNlw7FhJyxcbiAgICB3ZWxjb21lOiAnQmllbnZlbmlkbycsXG4gICAgc3VwcG9ydDogJ1NvcG9ydGUnXG4gIH0sXG4gIHB0OiA8UG9QYWdlTG9naW5MaXRlcmFscz57XG4gICAgdGl0bGU6ICdCZW0tdmluZG8nLFxuICAgIGxvZ2luRXJyb3JQYXR0ZXJuOiAnTG9naW4gaW52w6FsaWRvJyxcbiAgICBsb2dpbkhpbnQ6IGBTZXUgdXN1w6FyaW8gZm9pIGVudHJlZ3VlIGEgdm9jw6ogbm8gc2V1IHByaW1laXJvIGRpYS5cbiAgICBDYXNvIG7Do28gdGVuaGEgbWFpcyBlc3NhIGluZm9ybWHDp8OjbyBjb250YWN0ZSBvIHN1cG9ydGVgLFxuICAgIGxvZ2luUGxhY2Vob2xkZXI6ICdJbnNpcmEgc2V1IGUtbWFpbCcsXG4gICAgcGFzc3dvcmRFcnJvclBhdHRlcm46ICdTZW5oYSBpbnbDoWxpZGEnLFxuICAgIHBhc3N3b3JkUGxhY2Vob2xkZXI6ICdJbnNpcmEgc3VhIHNlbmhhJyxcbiAgICBjdXN0b21GaWVsZEVycm9yUGF0dGVybjogJ1ZhbG9yIGludsOhbGlkby4nLFxuICAgIGN1c3RvbUZpZWxkUGxhY2Vob2xkZXI6ICdQb3IgZmF2b3IgaW5zaXJhIHVtIHZhbG9yJyxcbiAgICByZW1lbWJlclVzZXI6ICdMb2dhciBhdXRvbWF0aWNhbWVudGUnLFxuICAgIHJlbWVtYmVyVXNlckhpbnQ6ICdWb2PDqiBwb2RlIGRlc2FiaWxpdGFyIGVzc2Egb3DDp8OjbyBubyBtZW51IGRvIHNpc3RlbWEnLFxuICAgIHN1Ym1pdExhYmVsOiAnRW50cmFyJyxcbiAgICBzdWJtaXR0ZWRMYWJlbDogJ0NhcnJlZ2FuZG8uLi4nLFxuICAgIGZvcmdvdFBhc3N3b3JkOiAnRXNxdWVjZXUgc3VhIHNlbmhhPycsXG4gICAgaGlnaGxpZ2h0SW5mbzogJycsXG4gICAgcmVnaXN0ZXJVcmw6ICdOb3ZvIHJlZ2lzdHJvJyxcbiAgICB0aXRsZVBvcG92ZXI6ICdPcGEhJyxcbiAgICBmb3Jnb3RZb3VyUGFzc3dvcmQ6ICdFc3F1ZWNldSBzdWEgc2VuaGE/JyxcbiAgICBpZllvdVRyeUhhcmRlcjogJ1NlIHRlbnRhciBtYWlzICcsXG4gICAgYXR0ZW1wdHM6ICd7MH0gdmV6KGVzKSAnLFxuICAgIHlvdXJVc2VyV2lsbEJlQmxvY2tlZDogJ3NlbSBzdWNlc3NvIHNldSB1c3XDoXJpbyBzZXLDoSBibG9xdWVhZG8gZSB2b2PDqiBmaWNhIDI0IGhvcmFzIHNlbSBwb2RlciBhY2Vzc2FyIDooJyxcbiAgICBjcmVhdGVBTmV3UGFzc3dvcmROb3c6ICdNZWxob3IgY3JpYXIgdW1hIHNlbmhhIG5vdmEgYWdvcmEhIFZvY8OqIHZhaSBwb2RlciBlbnRyYXIgbm8gc2lzdGVtYSBsb2dvIGVtIHNlZ3VpZGEuJyxcbiAgICBpRm9yZ290TXlQYXNzd29yZDogJ0VzcXVlY2kgbWluaGEgc2VuaGEnLFxuICAgIHdlbGNvbWU6ICdCb2FzLXZpbmRhcycsXG4gICAgc3VwcG9ydDogJ1N1cG9ydGUnXG4gIH0sXG4gIHJ1OiA8UG9QYWdlTG9naW5MaXRlcmFscz57XG4gICAgdGl0bGU6ICfQlNC+0LHRgNC+INC/0L7QttCw0LvQvtCy0LDRgtGMIScsXG4gICAgbG9naW5FcnJvclBhdHRlcm46ICfQndC10LLQtdGA0L3Ri9C5INC70L7Qs9C40L0nLFxuICAgIGxvZ2luSGludDogYNCS0LDRiCDQu9C+0LPQuNC9INCx0YvQuyDQv9GA0LXQtNC+0YHRgtCw0LLQu9C10L0g0LLQsNC8INCyINC/0LXRgNCy0YvQuSDQtNC10L3RjC5cbiAgICDQldGB0LvQuCDRgyDQstCw0YEg0L3QtdGCINGN0YLQvtC5INC40L3RhNC+0YDQvNCw0YbQuNC4LCDQvtCx0YDQsNGC0LjRgtC10YHRjCDQsiDRgdC70YPQttCx0YMg0L/QvtC00LTQtdGA0LbQutC4YCxcbiAgICBsb2dpblBsYWNlaG9sZGVyOiAn0JLRgdGC0LDQstGM0YLQtSDRgdCy0L7QuSDQsNC00YDQtdGBINGN0LvQtdC60YLRgNC+0L3QvdC+0Lkg0L/QvtGH0YLRiycsXG4gICAgcGFzc3dvcmRFcnJvclBhdHRlcm46ICfQndC10LLQtdGA0L3Ri9C5INC/0LDRgNC+0LvRjCcsXG4gICAgcGFzc3dvcmRQbGFjZWhvbGRlcjogJ9CS0LLQtdC00LjRgtC1INGB0LLQvtC5INC/0LDRgNC+0LvRjCcsXG4gICAgY3VzdG9tRmllbGRFcnJvclBhdHRlcm46ICfQndC10LLQtdGA0L3QvtC1INC30L3QsNGH0LXQvdC40LUuJyxcbiAgICBjdXN0b21GaWVsZFBsYWNlaG9sZGVyOiAn0J/QvtC20LDQu9GD0LnRgdGC0LAsINCy0LLQtdC00LjRgtC1INC30L3QsNGH0LXQvdC40LUnLFxuICAgIHJlbWVtYmVyVXNlcjogJ9CQ0LLRgtC+0LzQsNGC0LjRh9C10YHQutC40Lkg0LLRhdC+0LQnLFxuICAgIHJlbWVtYmVyVXNlckhpbnQ6ICfQktGLINC80L7QttC10YLQtSDQvtGC0LrQu9GO0YfQuNGC0Ywg0Y3RgtGDINC+0L/RhtC40Y4g0LIg0LrQvtC90YTQuNCz0YPRgNCw0YbQuNC4INGB0LjRgdGC0LXQvNGLJyxcbiAgICBzdWJtaXRMYWJlbDogJ9CS0L7QudGC0LgnLFxuICAgIHN1Ym1pdHRlZExhYmVsOiAnM9Cw0LPRgNGD0LfQutCwLi4uJyxcbiAgICBmb3Jnb3RQYXNzd29yZDogJ9CX0LDQsdGL0LvQuCDQv9Cw0YDQvtC70Yw/JyxcbiAgICBoaWdobGlnaHRJbmZvOiAnJyxcbiAgICByZWdpc3RlclVybDogJ9Cd0L7QstGL0Lkg0YDQtdCz0LjRgdGC0YAnLFxuICAgIHRpdGxlUG9wb3ZlcjogJ9Ce0LkhJyxcbiAgICBmb3Jnb3RZb3VyUGFzc3dvcmQ6ICfQl9Cw0LHRi9C70Lgg0L/QsNGA0L7Qu9GMPycsXG4gICAgaWZZb3VUcnlIYXJkZXI6ICfQldGB0LvQuCDQstGLINCx0LXQt9GD0YHQv9C10YjQvdC+INC/0L7Qv9GL0YLQsNC10YLQtdGB0Ywg0LLQvtC50YLQuCDQtdGJ0LUgJyxcbiAgICBhdHRlbXB0czogJ3swfSDRgNCw0Lco0LApICcsXG4gICAgeW91clVzZXJXaWxsQmVCbG9ja2VkOiAn0JLQsNGIINC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjCDQsdGD0LTQtdGCINC30LDQsdC70L7QutC40YDQvtCy0LDQvSwg0Lgg0JLRiyDQvtGB0YLQsNC90LXRgtC10YHRjCDQvdCwIDI0INGH0LDRgdCwINCx0LXQtyDQstC+0LfQvNC+0LbQvdC+0YHRgtC4INC00L7RgdGC0YPQv9CwIDooJyxcbiAgICBjcmVhdGVBTmV3UGFzc3dvcmROb3c6ICfQm9GD0YfRiNC1INGB0L7Qt9C00LDQudGC0LUg0L3QvtCy0YvQuSDQv9Cw0YDQvtC70Ywg0YHQtdC50YfQsNGBIcKg0JLRiyDRgdC80L7QttC10YLQtSDRgdGA0LDQt9GDINCy0L7QudGC0Lgg0LIg0YHQuNGB0YLQtdC80YMuJyxcbiAgICBpRm9yZ290TXlQYXNzd29yZDogJ9CvINC30LDQsdGL0Lsg0YHQstC+0Lkg0L/QsNGA0L7Qu9GMJyxcbiAgICB3ZWxjb21lOiAn0LTQvtCx0YDQviDQv9C+0LbQsNC70L7QstCw0YLRjCcsXG4gICAgc3VwcG9ydDogJ9Cf0L7QtNC00LXRgNC20LrQsCdcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IHBvUGFnZUxvZ2luTGl0ZXJhbEluID0ge1xuICBlbjogJ2luJyxcbiAgZXM6ICdlbicsXG4gIHB0OiAnZW0nLFxuICBydTogJ9CyJ1xufTtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb25cbiAqXG4gKiBPIGNvbXBvbmVudGUgYHBvLXBhZ2UtbG9naW5gIMOpIHV0aWxpemFkbyBjb21vIHRlbXBsYXRlIHBhcmEgdGVsYSBkZSBsb2dpbi5cbiAqIENvbSBlbGUgw6kgcG9zc8OtdmVsIGRlZmluaXJtb3MgdmFsb3JlcyBwYXJhIHVzdcOhcmlvLCBzZW5oYSBlIGRlZmluaXIgYcOnw7VlcyBwYXJhIHJlY3VwZXJhw6fDo28gZGUgc2VuaGEgZSBncmF2YcOnw6NvIGRlIGRhZG9zIGRvIHVzdcOhcmlvLlxuICogVGFtYsOpbSDDqSBwb3Nzw612ZWwgaW5zZXJpciB1bWEgaW1hZ2VtIGVtIGNvbmp1bnRvIGNvbSB1bSB0ZXh0byBkZSBkZXN0YXF1ZS5cbiAqXG4gKlxuICogQSBwcm9wcmllZGFkZSBgcC1hdXRoZW50aWNhdGlvbi11cmxgIGF1dG9tYXRpemEgYSByb3RpbmEgZG8gY29tcG9uZW50ZSBlIHNpbXBsaWZpY2EgbyBwcm9jZXNzbyBwYXJhIGF1dGVudGljYcOnw6NvIGRvIHVzdcOhcmlvLCBiYXN0YW5kb1xuICogZGVmaW5pciB1bWEgdXJsIHBhcmEgcmVxdWlzacOnw6NvIGRhIGF1dGVudGljYcOnw6NvLiBBIGZsZXhpYmlsaWRhZGUgZSBwcmF0aWNpZGFkZSBwb2RlbSBjaGVnYXIgYSB1bSBuw612ZWwgZW0gcXVlIG8gZGVzZW52b2x2aW1lbnRvXG4gKiBkYSBhcGxpY2HDp8OjbyBubyAqY2xpZW50IHNpZGUqIMOpIGRlc3Byb3ZpZGEgZGUgcXVhbHF1ZXIgY8OzZGlnby1mb250ZSByZWxhY2lvbmFkbyDDoCByb3RpbmEgZGUgbG9naW4gZGUgdXN1w6FyaW8uXG4gKiBTZXUgZGV0YWxoYW1lbnRvIHBhcmEgdXNvIHBvZGUgc2VyIHZpc3RvIGxvZ28gYWJhaXhvIGVtICpwcm9wcmllZGFkZXMqLlxuICogQ2FzbyBqdWxndWUgbmVjZXNzw6FyaW8sIHBvZGUtc2UgdGFtYsOpbSBkZWZpbmlyIG1hbnVhbG1lbnRlIGEgcm90aW5hIGRvIGNvbXBvbmVudGUuXG4gKlxuICpcbiAqIFBhcmEgcXVlIGFzIGltYWdlbnMgc2VqYW0gZXhpYmlkYXMgY29ycmV0YW1lbnRlLCDDqSBuZWNlc3PDoXJpbyBpbmNsdWlyIG8gY2FtaW5obyBkZWxhcyBhbyBwcm9qZXRvLiBQYXJhIGlzc28sIGVkaXRlXG4gKiBvICphc3NldHMqIG5vIGFycXVpdm8gKiphbmd1bGFyLmpzb24qKiBkYSBhcGxpY2HDp8OjbyBuYSBzZWd1aW50ZSBvcmRlbTpcbiAqIGBgYFxuICogICBcImFzc2V0c1wiOiBbXG4gKiAgICAgXCJzcmMvYXNzZXRzXCIsXG4gKiAgICAgXCJzcmMvZmF2aWNvbi5pY29cIixcbiAqICAgICB7XG4gKiAgICAgICBcImdsb2JcIjogXCIqKlxcLypcIixcbiAqICAgICAgIFwiaW5wdXRcIjogXCJub2RlX21vZHVsZXMvQHBvLXVpL3N0eWxlL2ltYWdlc1wiLFxuICogICAgICAgXCJvdXRwdXRcIjogXCJhc3NldHMvaW1hZ2VzXCJcbiAqICAgICB9XG4gKiAgIF1cbiAqIGBgYFxuICovXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBQb1BhZ2VMb2dpbkJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICAvKipcbiAgICogTyBgcC1iYWNrZ3JvdW5kYCBwZXJtaXRlIGluc2VyaXIgdW1hIGltYWdlbSBkZSBkZXN0YXF1ZSBhbyBsYWRvIGRpcmVpdG8gZG8gZm9ybXVsw6FyaW8gZGUgbG9naW4sIGNhc28gYSBwcm9wcmllZGFkZVxuICAgKiBuw6NvIHNlamEgcHJlZW5jaGlkYSBvIGZvcm11bMOhcmlvIHNlcsOhIGNlbnRyYWxpemFkbyBubyBlc3Bhw6dvIGRpc3BvbsOtdmVsLlxuICAgKlxuICAgKiBBIGZvbnRlIGRhIGltYWdlbSBwb2RlIHNlciBkZSB1bSBjYW1pbmhvIGxvY2FsIG91IHVtYSB1cmwgZGUgdW0gc2Vydmlkb3IgZXh0ZXJuby5cbiAgICpcbiAgICogQWzDqW0gZGEgaW1hZ2VtLCDDqSBwb3Nzw612ZWwgYWRpY2lvbmFyIHVtIHRleHRvIGluZm9ybWF0aXZvIHBvciBjaW1hIGRhIGltYWdlbSBkYSBpbWFnZW0gZGUgZGVzdGFxdWUsIHBhcmEgaXNzbyBpbmZvcm1lXG4gICAqIHVtIHZhbG9yIHBhcmEgYSBsaXRlcmFsIGBoaWdobGlnaHRJbmZvYC5cbiAgICpcbiAgICogPiBWZWphIG1haXMgc29icmUgYXMgbGl0ZXJhaXMgbmEgcHJvcHJpZWRhZGUgYHAtbGl0ZXJhbHNgLlxuICAgKlxuICAgKiBFeGVtcGxvcyBkZSB2YWxvcmVzIHbDoWxpZG9zOlxuICAgKiAtICoqbG9jYWwqKjogYC4vYXNzZXRzL2ltYWdlcy9sb2dpbi1iYWNrZ3JvdW5kLnBuZ2BcbiAgICogLSAqKnVybCBleHRlcm5hKio6IGBodHRwczovL3BvLXVpLmlvL2Fzc2V0cy9pbWFnZXMvbG9naW4tYmFja2dyb3VuZC5wbmdgXG4gICAqXG4gICAqID4gRXNzYSBwcm9wcmllZGFkZSDDqSBpZ25vcmFkYSBwYXJhIGFwbGljYcOnw7VlcyBtb2JpbGUuXG4gICAqL1xuICBASW5wdXQoJ3AtYmFja2dyb3VuZCcpIGJhY2tncm91bmQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogQ2FtaW5obyBwYXJhIGEgbG9nb21hcmNhIGxvY2FsaXphZGEgbmEgcGFydGUgc3VwZXJpb3IuXG4gICAqXG4gICAqID4gQ2FzbyBzZWphIGluZGVmaW5pZGEgbyBlc3Bhw6dvIHNlIG1hbnTDqW0gcHJlc2VydmFkbyBwb3LDqW0gdmF6aW8uXG4gICAqL1xuICBASW5wdXQoJ3AtbG9nbycpIGxvZ28/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogRXhwcmVzc8OjbyByZWd1bGFyIHBhcmEgdmFsaWRhciBvIGNhbXBvIGRlIGxvZ2luLCBjYXNvIGEgZXhwcmVzc8OjbyBuw6NvIHNlamEgYXRlbnRpZGEsIGEgbGl0ZXJhbCBgbG9naW5FcnJvclBhdHRlcm5gXG4gICAqIHNlcsOhIGV4aWJpZGEuXG4gICAqXG4gICAqIEV4ZW1wbG9zIGRlIHZhbG9yZXMgdsOhbGlkb3M6XG4gICAqIC0gZW1haWw6IGBbZXhwcmVzc2FvLXJlZ3VsYXItZW1haWxdYFxuICAgKiAtIGNwZjogYFtleHByZXNzYW8tcmVndWxhci1jcGZdYFxuICAgKlxuICAgKiA+IFZlamEgYSBwcm9wcmllZGFkZSBgcC1saXRlcmFsc2AgcGFyYSBjdXN0b21pemFyIGEgbGl0ZXJhbCBgbG9naW5FcnJvclBhdHRlcm5gLlxuICAgKi9cbiAgQElucHV0KCdwLWxvZ2luLXBhdHRlcm4nKSBsb2dpblBhdHRlcm4/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogRXhwcmVzc8OjbyByZWd1bGFyIHBhcmEgdmFsaWRhciBvIGNhbXBvIGRlIHBhc3N3b3JkLCBjYXNvIGEgZXhwcmVzc8OjbyBuw6NvIHNlamEgYXRlbnRpZGEsIGEgbGl0ZXJhbCBgcGFzc3dvcmRFcnJvclBhdHRlcm5gXG4gICAqIHNlcsOhIGV4aWJpZGEuXG4gICAqXG4gICAqIEV4ZW1wbG9zIGRlIHZhbG9yZXMgdsOhbGlkb3M6XG4gICAqIC0gQXBlbmFzIG7Dum1lcm9zOiBgXFxkP2BcbiAgICogLSBMZXRyYXMgbcOtbnVzY3VsYXM6IGBcXHo/YFxuICAgKlxuICAgKiA+IFZlamEgYSBwcm9wcmllZGFkZSBgcC1saXRlcmFsc2AgcGFyYSBjdXN0b21pemFyIGEgbGl0ZXJhbCBgcGFzc3dvcmRFcnJvclBhdHRlcm5gLlxuICAgKi9cbiAgQElucHV0KCdwLXBhc3N3b3JkLXBhdHRlcm4nKSBwYXNzd29yZFBhdHRlcm4/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogQ2FtaW5obyBwYXJhIGEgbG9nb21hcmNhIGxvY2FsaXphZGEgbm8gcm9kYXDDqS5cbiAgICovXG4gIEBJbnB1dCgncC1zZWNvbmRhcnktbG9nbycpIHNlY29uZGFyeUxvZ28/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogRXZlbnRvIGRpc3BhcmFkbyBxdWFuZG8gbyB1c3XDoXJpbyBhbHRlcmFyIG8gaW5wdXQgZG8gY2FtcG8gbG9naW4uXG4gICAqXG4gICAqIEVzc2UgZXZlbnRvIHJlY2ViZXLDoSBjb21vIHBhcsOibWV0cm8gdW1hIHZhcmnDoXZlbCBkbyB0aXBvIGBzdHJpbmdgIGNvbSBvIHRleHRvIGluZm9ybWFkbyBubyBjYW1wby5cbiAgICpcbiAgICogPiBFc3RhIHByb3ByaWVkYWRlIHNlcsOhIGlnbm9yYWRhIHNlIGZvciBkZWZpbmlkbyB2YWxvciBwYXJhIGEgcHJvcHJpZWRhZGUgYHAtYXV0aGVudGljYXRpb24tdXJsYC5cbiAgICovXG4gIEBPdXRwdXQoJ3AtbG9naW4tY2hhbmdlJykgbG9naW5DaGFuZ2U6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgLyoqXG4gICAqIEV2ZW50byBkaXNwYXJhZG8gYW8gc3VibWV0ZXIgbyBmb3JtdWzDoXJpbyBkZSBsb2dpbiAoYXBlcnRhbmRvIGBFbnRlcmAgZGVudHJvIGRvcyBjYW1wb3Mgb3UgcHJlc3Npb25hbmRvIG8gYm90w6NvIGRlIGNvbmZpcm1hw6fDo28pLlxuICAgKlxuICAgKiBFc3NlIGV2ZW50byByZWNlYmVyw6EgY29tbyBwYXLDom1ldHJvIHVtIG9iamV0byBkbyB0aXBvIGBQb1BhZ2VMb2dpbmAgY29tIG9zIGRhZG9zIGluZm9ybWFkb3Mgbm8gZm9ybXVsw6FyaW8uXG4gICAqXG4gICAqID4gRXN0YSBwcm9wcmllZGFkZSBzZXLDoSBpZ25vcmFkYSBzZSBmb3IgZGVmaW5pZG8gdmFsb3IgcGFyYSBhIHByb3ByaWVkYWRlIGBwLXVybC1yZWNvdmVyeWAuXG4gICAqXG4gICAqID4gUGFyYSBtYWlzIGRldGFsaGVzIGNvbnN1bHRlIGEgZG9jdW1lbnRhw6fDo28gc29icmUgYSBpbnRlcmZhY2UgYFBvUGFnZUxvZ2luYCBtYWlzIGFiYWl4by5cbiAgICovXG4gIEBPdXRwdXQoJ3AtbG9naW4tc3VibWl0JykgbG9naW5TdWJtaXQgPSBuZXcgRXZlbnRFbWl0dGVyPFBvUGFnZUxvZ2luPigpO1xuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIEV2ZW50byBkaXNwYXJhZG8gcXVhbmRvIG8gdXN1w6FyaW8gYWx0ZXJhciBvIGlucHV0IGRvIGNhbXBvIHBhc3N3b3JkLlxuICAgKlxuICAgKiBFc3NlIGV2ZW50byByZWNlYmVyw6EgY29tbyBwYXLDom1ldHJvIHVtYSB2YXJpw6F2ZWwgZG8gdGlwbyBgc3RyaW5nYCBjb20gbyB0ZXh0byBpbmZvcm1hZG8gbm8gY2FtcG8uXG4gICAqXG4gICAqID4gRXN0YSBwcm9wcmllZGFkZSBzZXLDoSBpZ25vcmFkYSBzZSBmb3IgZGVmaW5pZG8gdmFsb3IgcGFyYSBhIHByb3ByaWVkYWRlIGBwLWF1dGhlbnRpY2F0aW9uLXVybGAuXG4gICAqL1xuICBAT3V0cHV0KCdwLXBhc3N3b3JkLWNoYW5nZScpIHBhc3N3b3JkQ2hhbmdlOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIEV2ZW50byBkaXNwYXJhZG8gcXVhbmRvIG8gdXN1w6FyaW8gYWx0ZXJhciBvIGlkaW9tYSBkYSBww6FnaW5hLlxuICAgKlxuICAgKiBFc3NlIGV2ZW50byByZWNlYmVyw6EgY29tbyBwYXLDom1ldHJvIHVtIG9iamV0byBkbyB0aXBvIGBQb0xhbmd1YWdlYCBjb20gYSBsaW5ndWFnZW0gc2VsZWNpb25hZGEuXG4gICAqXG4gICAqL1xuICBAT3V0cHV0KCdwLWxhbmd1YWdlLWNoYW5nZScpIGxhbmd1YWdlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8UG9MYW5ndWFnZT4gPSBuZXcgRXZlbnRFbWl0dGVyPFBvTGFuZ3VhZ2U+KCk7XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogRGVmaW5lIGEgcHJvcHJpZWRhZGUgbmF0aXZhIGBhdXRvY29tcGxldGVgIGRvIGNhbXBvIGNvbW8gYG9mZmAuXG4gICAqXG4gICAqIEBkZWZhdWx0IGBmYWxzZWBcbiAgICovXG4gIEBJbnB1dCgncC1uby1hdXRvY29tcGxldGUtbG9naW4nKSBub0F1dG9jb21wbGV0ZUxvZ2luOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIERlZmluZSBhIHByb3ByaWVkYWRlIG5hdGl2YSBgYXV0b2NvbXBsZXRlYCBkbyBjYW1wbyBjb21vIGBvZmZgLlxuICAgKlxuICAgKiA+IE5vIGNvbXBvbmVudGUgYHBvLXBhc3N3b3JkYCBzZXLDoSBkZWZpbmlkbyBjb21vIGBuZXctcGFzc3dvcmRgLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgZmFsc2VgXG4gICAqL1xuICBASW5wdXQoJ3Atbm8tYXV0b2NvbXBsZXRlLXBhc3N3b3JkJykgbm9BdXRvY29tcGxldGVQYXNzd29yZDogYm9vbGVhbjtcblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBQZXJtaXRlIGVzY29uZGVyIGEgZnVuw6fDo28gZGUgZXNwaWFyIGEgc2VuaGEgZGlnaXRhZGEuXG4gICAqXG4gICAqIEBkZWZhdWx0IGBmYWxzZWBcbiAgICovXG4gIEBJbnB1dCgncC1oaWRlLXBhc3N3b3JkLXBlZWsnKSBoaWRlUGFzc3dvcmRQZWVrOiBib29sZWFuO1xuXG4gIGFsbExvZ2luRXJyb3JzOiBBcnJheTxzdHJpbmc+ID0gW107XG4gIGFsbFBhc3N3b3JkRXJyb3JzOiBBcnJheTxzdHJpbmc+ID0gW107XG4gIGN1c3RvbUZpZWxkT2JqZWN0OiBQb1BhZ2VMb2dpbkN1c3RvbUZpZWxkO1xuICBjdXN0b21GaWVsZFR5cGU6IHN0cmluZztcbiAgbG9naW5TdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgcGFzc3dvcmQ6IHN0cmluZztcbiAgcmVtZW1iZXJVc2VyOiBib29sZWFuID0gZmFsc2U7XG4gIHNlbGVjdGVkTGFuZ3VhZ2U6IHN0cmluZztcbiAgc2hvd0V4Y2VlZGVkQXR0ZW1wdHNXYXJuaW5nID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBfYXV0aGVudGljYXRpb25UeXBlOiBQb1BhZ2VMb2dpbkF1dGhlbnRpY2F0aW9uVHlwZSA9IFBvUGFnZUxvZ2luQXV0aGVudGljYXRpb25UeXBlLkJhc2ljO1xuICBwcml2YXRlIF9hdXRoZW50aWNhdGlvblVybDogc3RyaW5nO1xuICBwcml2YXRlIF9ibG9ja2VkVXJsOiBzdHJpbmc7XG4gIHByaXZhdGUgX2NvbnRhY3RFbWFpbDogc3RyaW5nO1xuICBwcml2YXRlIF9jdXN0b21GaWVsZDogc3RyaW5nIHwgUG9QYWdlTG9naW5DdXN0b21GaWVsZDtcbiAgcHJpdmF0ZSBfZW52aXJvbm1lbnQ/OiBzdHJpbmc7XG4gIHByaXZhdGUgX2V4Y2VlZGVkQXR0ZW1wdHNXYXJuaW5nPzogbnVtYmVyO1xuICBwcml2YXRlIF9oaWRlUmVtZW1iZXJVc2VyOiBib29sZWFuID0gZmFsc2U7XG4gIHByaXZhdGUgX2xpdGVyYWxzOiBQb1BhZ2VMb2dpbkxpdGVyYWxzO1xuICBwcml2YXRlIF9sb2FkaW5nPzogYm9vbGVhbiA9IGZhbHNlO1xuICBwcml2YXRlIF9sb2dpbjogc3RyaW5nO1xuICBwcml2YXRlIF9sb2dpbkVycm9yczogQXJyYXk8c3RyaW5nPiA9IFtdO1xuICBwcml2YXRlIF9wYXNzd29yZEVycm9yczogQXJyYXk8c3RyaW5nPiA9IFtdO1xuICBwcml2YXRlIF9wcm9kdWN0TmFtZTogc3RyaW5nO1xuICBwcml2YXRlIF9yZWNvdmVyeTogc3RyaW5nIHwgUG9QYWdlTG9naW5SZWNvdmVyeSB8IEZ1bmN0aW9uO1xuICBwcml2YXRlIF9yZWdpc3RlclVybDogc3RyaW5nO1xuICBwcml2YXRlIF9zdXBwb3J0OiBzdHJpbmcgfCBGdW5jdGlvbjtcbiAgcHJpdmF0ZSBfbGFuZ3VhZ2VzTGlzdDogQXJyYXk8UG9MYW5ndWFnZT47XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogQW8gaW5mb3JtYXIgdW0gdmFsb3IgZG8gdGlwbyBgc3RyaW5nYCwgbyBtZXNtbyBzZXLDoSBhcGxpY2FkbyBjb21vIGEgY2hhdmUgZG8gY2FtcG8gY3VzdG9taXphZG8gZSB1dGlsaXphcsOhXG4gICAqIG9zIHZhbG9yZXMgcGFkcsO1ZXMgY29udGlkb3MgbmEgcHJvcHJpZWRhZGUgYGxpdGVyYWxzYCBjb21vIGBjdXN0b21GaWVsZEVycm9yUGF0dGVybmAgZSBgY3VzdG9tRmllbGRQbGFjZWhvbGRlcmAuXG4gICAqXG4gICAqIEV4aXN0ZSBhIHBvc3NpYmlsaWRhZGUgZGUgaW5mb3JtYXIgdW0gb2JqZXRvIHF1ZSBzZWd1ZSBhIGRlZmluacOnw6NvIGRhIGludGVyZmFjZSBgUG9QYWdlTG9naW5DdXN0b21GaWVsZGAsIG9uZGVcbiAgICogYXRyYXbDqXMgZG9zIHBhcsOibWV0cm9zIGVudmlhZG9zIHBvZGUgZ2VyYXIgdW0gYHBvLWlucHV0YCwgYHBvLWNvbWJvYCBlc3BlY2lmaWNhbWVudGUgcGFyYSBzZXJ2acOnb3NcbiAgICogb3UgYHBvLXNlbGVjdGAgcGFyYSB2YWxvcmVzIGZpeG9zLlxuICAgKlxuICAgKiBBYmFpeG8gc2VndWVtIG9zIGV4ZW1wbG9zIGRlIGNhZGEgdGlwbyBkZSBjYW1wby5cbiAgICpcbiAgICogYHBvLWlucHV0YDpcbiAgICpcbiAgICogYGBgXG4gICAqIHtcbiAgICogICBwcm9wZXJ0eTogJ2RvbWFpbicsXG4gICAqICAgdmFsdWU6ICdqdjAxJyxcbiAgICogICBwbGFjZWhvbGRlcjogJ0VudGVyIHlvdXIgZG9tYWluJyxcbiAgICogICBwYXR0ZXJuOiAnW2Etel0nLFxuICAgKiAgIGVycm9yUGF0dGVybjogJ0ludmFsaWQgdmFsdWUnXG4gICAqIH1cbiAgICogYGBgXG4gICAqXG4gICAqIGBwby1jb21ib2A6XG4gICAqXG4gICAqIGBgYFxuICAgKiB7XG4gICAqICAgcHJvcGVydHk6ICdkb21haW4nLFxuICAgKiAgIHZhbHVlOiAnanYwMScsXG4gICAqICAgcGxhY2Vob2xkZXI6ICdFbnRlciB5b3VyIGRvbWFpbicsXG4gICAqICAgdXJsOiAnaHR0cHM6Ly9wby11aS5pby9zYW1wbGUvYXBpL2NvbWJvT3B0aW9uL2RvbWFpbnMnLFxuICAgKiAgIGZpZWxkVmFsdWU6ICduaWNrbmFtZSdcbiAgICogfVxuICAgKiBgYGBcbiAgICpcbiAgICogYHBvLXNlbGVjdGA6XG4gICAqXG4gICAqIGBgYFxuICAgKiB7XG4gICAqICAgcHJvcGVydHk6ICdkb21haW4nLFxuICAgKiAgIHZhbHVlOiAnanYwMScsXG4gICAqICAgcGxhY2Vob2xkZXI6ICdFbnRlciB5b3VyIGRvbWFpbicsXG4gICAqICAgb3B0aW9uczogW3tsYWJlbDogJ0RvbWFpbiAxJywgdmFsdWU6ICcxJ30sIHtsYWJlbDogJ0RvbWFpbiAyJywgdmFsdWU6ICcyJ31dXG4gICAqIH1cbiAgICogYGBgXG4gICAqXG4gICAqIENhc28gbyBjdXN0b21GaWVsZCBwb3NzdWEgb3B0aW9ucywgdXJsIGUgZmllbGRWYWx1ZSBwcmVlbmNoaWRvcywgc2Vyw6EgcHJpb3JpemFkbyBvIHBvLXNlbGVjdFxuICAgKiB1dGlsaXphbmRvIG8gb3B0aW9ucy5cbiAgICpcbiAgICovXG4gIEBJbnB1dCgncC1jdXN0b20tZmllbGQnKSBzZXQgY3VzdG9tRmllbGQodmFsdWU6IHN0cmluZyB8IFBvUGFnZUxvZ2luQ3VzdG9tRmllbGQpIHtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIGlmIChpc1R5cGVvZih2YWx1ZSwgJ3N0cmluZycpKSB7XG4gICAgICAgIHRoaXMuY3VzdG9tRmllbGRUeXBlID0gJ2lucHV0JztcbiAgICAgICAgdGhpcy5fY3VzdG9tRmllbGQgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5jdXN0b21GaWVsZE9iamVjdCA9IHRoaXMuZ2V0RGVmYXVsdEN1c3RvbUZpZWxkT2JqZWN0KHZhbHVlKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAoaXNUeXBlb2YodmFsdWUsICdvYmplY3QnKSAmJiAhQXJyYXkuaXNBcnJheSh2YWx1ZSkgJiYgdmFsdWVbJ3Byb3BlcnR5J10pIHtcbiAgICAgICAgdGhpcy5fY3VzdG9tRmllbGQgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5jdXN0b21GaWVsZE9iamVjdCA9IDxQb1BhZ2VMb2dpbkN1c3RvbUZpZWxkPnZhbHVlO1xuXG4gICAgICAgIGlmICghdGhpcy5jdXN0b21GaWVsZE9iamVjdC5vcHRpb25zICYmICF0aGlzLmN1c3RvbUZpZWxkT2JqZWN0LnVybCkge1xuICAgICAgICAgIHRoaXMuY3VzdG9tRmllbGRUeXBlID0gJ2lucHV0JztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLmN1c3RvbUZpZWxkVHlwZSA9IHRoaXMuY3VzdG9tRmllbGRPYmplY3Qub3B0aW9ucyA/ICdzZWxlY3QnIDogJ2NvbWJvJztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLl9jdXN0b21GaWVsZCA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLmN1c3RvbUZpZWxkT2JqZWN0ID0gdW5kZWZpbmVkO1xuICB9XG5cbiAgZ2V0IGN1c3RvbUZpZWxkKCk6IHN0cmluZyB8IFBvUGFnZUxvZ2luQ3VzdG9tRmllbGQge1xuICAgIHJldHVybiB0aGlzLl9jdXN0b21GaWVsZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIFBlcnNvbmFsaXphIG8gZS1tYWlsIHF1ZSDDqSBleGliaWRvIG5hIG1lbnNhZ2VtIGRlIGRpY2EgZGUgbG9naW4gcGFkcsOjbyBwYXJhIGNvbnRhdG8gZGUgc3Vwb3J0ZS5cbiAgICovXG4gIEBJbnB1dCgncC1jb250YWN0LWVtYWlsJykgc2V0IGNvbnRhY3RFbWFpbCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5fY29udGFjdEVtYWlsID0gdmFsdWU7XG4gIH1cbiAgZ2V0IGNvbnRhY3RFbWFpbCgpIHtcbiAgICByZXR1cm4gdGhpcy5fY29udGFjdEVtYWlsO1xuICB9XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogVGV4dG8gY3VzdG9taXphZG8gcXVlIGZpY2EgZW50cmUgYSBsb2dvIGUgYSBtZW5zYWdlbSBkZSBib2FzLXZpbmRhcy5cbiAgICovXG4gIEBJbnB1dCgncC1wcm9kdWN0LW5hbWUnKSBzZXQgcHJvZHVjdE5hbWUodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuX3Byb2R1Y3ROYW1lID0gdmFsdWU7XG4gIH1cbiAgZ2V0IHByb2R1Y3ROYW1lKCkge1xuICAgIHJldHVybiB0aGlzLl9wcm9kdWN0TmFtZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEFkaWNpb25hIHVtYSBgdGFnYCBhYmFpeG8gZG8gdMOtdHVsbyBxdWUgZXNwZWNpZmljYSBvIGFtYmllbnRlIHF1ZSBvIHVzdcOhcmlvIGVzdMOhIGZhemVuZG8gbyBsb2dpbi5cbiAgICpcbiAgICogPiBFc3NhIHByb3ByaWVkYWRlIGxpbWl0YSBvIHRleHRvIGVtIDQwIGNhcmFjdGVyZXMuXG4gICAqL1xuICBASW5wdXQoJ3AtZW52aXJvbm1lbnQnKSBzZXQgZW52aXJvbm1lbnQoZW52aXJvbm1lbnQ6IHN0cmluZykge1xuICAgIGlmIChlbnZpcm9ubWVudCAmJiBlbnZpcm9ubWVudC5sZW5ndGggPiBwb1BhZ2VMb2dpbkNvbnRlbnRNYXhMZW5ndGgpIHtcbiAgICAgIHRoaXMuX2Vudmlyb25tZW50ID0gZW52aXJvbm1lbnQuc3Vic3RyaW5nKDAsIHBvUGFnZUxvZ2luQ29udGVudE1heExlbmd0aCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX2Vudmlyb25tZW50ID0gZW52aXJvbm1lbnQ7XG4gICAgfVxuICB9XG4gIGdldCBlbnZpcm9ubWVudCgpIHtcbiAgICByZXR1cm4gdGhpcy5fZW52aXJvbm1lbnQ7XG4gIH1cblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBFeGliZSB1bSBhdmlzbyBkZSBibG9xdWVpbyBkZSBhY29yZG8gY29tIGEgcXVhbnRpZGFkZSByZXN0YW50ZSBkZSB0ZW50YXRpdmFzLlxuICAgKiBPIGF2aXNvIHNlcsOhIGV4aWJpZG8gc29tZW50ZSBzZSBhIHF1YW50aWRhZGUgZm9yIG1haW9yIHF1ZSB6ZXJvLlxuICAgKlxuICAgKiA+IENhc28gdGVuaGEgYWxndW0gdmFsb3IgYXRyaWJ1w61kbyBwYXJhIG8gYXRyaWJ1dG8gYHAtYXV0aGVudGljYXRpb24tdXJsYCBlIG8gcmV0b3JubyBkYSByZXF1aXNpw6fDo28gZXN0aXZlciBhdHJpYnVpbmRvIHZhbG9yXG4gICAqIHBhcmEgbyBgcC1leGNlZWRlZC1hdHRlbXB0cy13YXJuaW5nYCwgbyB2YWxvciBjb25zaWRlcmFkbyBzZXLDoSBvIGRvIHJldG9ybm8gZGEgcmVxdWlzacOnw6NvLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgMGBcbiAgICovXG4gIEBJbnB1dCgncC1leGNlZWRlZC1hdHRlbXB0cy13YXJuaW5nJykgc2V0IGV4Y2VlZGVkQXR0ZW1wdHNXYXJuaW5nKHZhbHVlOiBudW1iZXIpIHtcbiAgICB0aGlzLl9leGNlZWRlZEF0dGVtcHRzV2FybmluZyA9IGNvbnZlcnRUb0ludCh2YWx1ZSk7XG4gICAgdGhpcy5zaG93RXhjZWVkZWRBdHRlbXB0c1dhcm5pbmcgPSB0aGlzLmV4Y2VlZGVkQXR0ZW1wdHNXYXJuaW5nID4gMDtcbiAgfVxuXG4gIGdldCBleGNlZWRlZEF0dGVtcHRzV2FybmluZygpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9leGNlZWRlZEF0dGVtcHRzV2FybmluZztcbiAgfVxuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIEVzY29uZGUgYSBmdW7Dp8OjbyBcIkxlbWJyYXIgdXN1w6FyaW9cIiBkbyBmb3JtdWzDoXJpbyBkZSBsb2dpbi5cbiAgICpcbiAgICogUXVhbmRvIGVzc2EgcHJvcHJpZWRhZGUgw6kgc2V0YWRhIGNvbSBgdHJ1ZWAgYSBwcm9wcmllZGFkZSBgcmVtZW1iZXJVc2VyYCBlbnZpYWRhIG5vIGV2ZW50byBgcC1sb2dpbi1zdWJtaXRgIHNlcsOhIHNlbXByZVxuICAgKiBgZmFsc2VgLlxuICAgKlxuICAgKiA+IFZlamEgYSBwcm9wcmllZGFkZSBgcC1saXRlcmFsc2AgcGFyYSBjdXN0b21pemFyIGEgbGl0ZXJhbCBgcmVtZW1iZXJVc2VyYC5cbiAgICpcbiAgICogQGRlZmF1bHQgYGZhbHNlYFxuICAgKi9cbiAgQElucHV0KCdwLWhpZGUtcmVtZW1iZXItdXNlcicpIHNldCBoaWRlUmVtZW1iZXJVc2VyKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5faGlkZVJlbWVtYmVyVXNlciA9IDxhbnk+dmFsdWUgPT09ICcnID8gdHJ1ZSA6IGNvbnZlcnRUb0Jvb2xlYW4odmFsdWUpO1xuXG4gICAgaWYgKHRoaXMuX2hpZGVSZW1lbWJlclVzZXIpIHtcbiAgICAgIHRoaXMucmVtZW1iZXJVc2VyID0gZmFsc2U7XG4gICAgfVxuICB9XG4gIGdldCBoaWRlUmVtZW1iZXJVc2VyKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9oaWRlUmVtZW1iZXJVc2VyO1xuICB9XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogT2JqZXRvIGNvbSBhcyBsaXRlcmFpcyB1c2FkYXMgbm8gYHBvLXBhZ2UtbG9naW5gLlxuICAgKlxuICAgKiBFeGlzdGVtIGR1YXMgbWFuZWlyYXMgZGUgY3VzdG9taXphciBvIGNvbXBvbmVudGUsIHBhc3NhbmRvIHVtIG9iamV0byBjb20gdG9kYXMgYXMgbGl0ZXJhaXMgZGlzcG9uw612ZWlzOlxuICAgKlxuICAgKiBgYGBcbiAgICogIGNvbnN0IGN1c3RvbUxpdGVyYWxzOiBQb1BhZ2VMb2dpbkxpdGVyYWxzID0ge1xuICAgKiAgICBhdHRlbXB0czogJ3swfSB2ZXooZXMpICcsXG4gICAqICAgIGNyZWF0ZUFOZXdQYXNzd29yZE5vdzogJ01lbGhvciBjcmlhciB1bWEgc2VuaGEgbm92YSBhZ29yYSEgVm9jw6ogdmFpIHBvZGVyIGVudHJhciBubyBzaXN0ZW1hIGxvZ28gZW0gc2VndWlkYS4nLFxuICAgKiAgICBmb3Jnb3RQYXNzd29yZDogJ0VzcXVlY2V1IHN1YSBzZW5oYT8nLFxuICAgKiAgICBmb3Jnb3RZb3VyUGFzc3dvcmQ6ICdFc3F1ZWNldSBzdWEgc2VuaGE/JyxcbiAgICogICAgaGlnaGxpZ2h0SW5mbzogJycsXG4gICAqICAgIGlGb3Jnb3RNeVBhc3N3b3JkOiAnRXNxdWVjaSBtaW5oYSBzZW5oYScsXG4gICAqICAgIGlmWW91VHJ5SGFyZGVyOiAnU2UgdGVudGFyIG1haXMgJyxcbiAgICogICAgd2VsY29tZTogJ0JvYXMtdmluZGFzJyxcbiAgICogICAgbG9naW5FcnJvclBhdHRlcm46ICdMb2dpbiBvYnJpZ2F0w7NyaW8nLFxuICAgKiAgICBsb2dpbkhpbnQ6ICdDYXNvIG7Do28gcG9zc3VhIHVzdcOhcmlvIGVudHJlIGVtIGNvbnRhdG8gY29tIG8gc3Vwb3J0ZScsXG4gICAqICAgIGxvZ2luTGFiZWw6ICdJbnNpcmEgc2V1IHVzdcOhcmlvJyxcbiAgICogICAgbG9naW5QbGFjZWhvbGRlcjogJ0luc2lyYSBzZXUgdXN1w6FyaW8gZGUgYWNlc3NvJyxcbiAgICogICAgcGFzc3dvcmRFcnJvclBhdHRlcm46ICdTZW5oYSBvYnJpZ2F0w7NyaWEnLFxuICAgKiAgICBwYXNzd29yZExhYmVsOiAnSW5zaXJhIHN1YSBzZW5oYScsXG4gICAqICAgIHBhc3N3b3JkUGxhY2Vob2xkZXI6ICdJbnNpcmEgc3VhIHNlbmhhIGRlIGFjZXNzbycsXG4gICAqICAgIGN1c3RvbUZpZWxkRXJyb3JQYXR0ZXJuOiAnQ2FtcG8gY3VzdG9taXphZG8gaW52w6FsaWRvJyxcbiAgICogICAgY3VzdG9tRmllbGRQbGFjZWhvbGRlcjogJ1BvciBmYXZvciBpbnNpcmEgdW0gdmFsb3InLFxuICAgKiAgICByZWdpc3RlclVybDogJ05vdm8gcmVnaXN0cm8nLFxuICAgKiAgICByZW1lbWJlclVzZXI6ICdMZW1icmFyIHVzdcOhcmlvJyxcbiAgICogICAgcmVtZW1iZXJVc2VySGludDogJ0VzdGEgb3DDp8OjbyBwb2RlIHNlciBkZXNhYmlsaXRhZGEgbmFzIGNvbmZpZ3VyYcOnw7VlcyBkbyBzaXN0ZW1hJyxcbiAgICogICAgc3VibWl0TGFiZWw6ICdBY2Vzc2FyIHNpc3RlbWEnLFxuICAgKiAgICBzdWJtaXR0ZWRMYWJlbDogJ0NhcnJlZ2FuZG8uLi4nLFxuICAgKiAgICB0aXRsZVBvcG92ZXI6ICdPcGEhJyxcbiAgICogICAgeW91clVzZXJXaWxsQmVCbG9ja2VkOiAnc2VtIHN1Y2Vzc28gc2V1IHVzdcOhcmlvIHNlcsOhIGJsb3F1ZWFkbyBlIHZvY8OqIGZpY2EgMjQgaG9yYXMgc2VtIHBvZGVyIGFjZXNzYXIgOignXG4gICAqICB9O1xuICAgKiBgYGBcbiAgICpcbiAgICogT3UgcGFzc2FuZG8gYXBlbmFzIGFzIGxpdGVyYWlzIHF1ZSBkZXNlamEgY3VzdG9taXphcjpcbiAgICpcbiAgICogYGBgXG4gICAqICBjb25zdCBjdXN0b21MaXRlcmFsczogUG9QYWdlTG9naW5MaXRlcmFscyA9IHtcbiAgICogICAgbG9naW5QbGFjZWhvbGRlcjogJ0luc2lyYSBzZXUgdXN1w6FyaW8gZGUgYWNlc3NvJyxcbiAgICogICAgcGFzc3dvcmRQbGFjZWhvbGRlcjogJ0luc2lyYSBzdWEgc2VuaGEgZGUgYWNlc3NvJyxcbiAgICogICAgc3VibWl0TGFiZWw6ICdBY2Vzc2FyIHNpc3RlbWEnXG4gICAqICB9O1xuICAgKiBgYGBcbiAgICpcbiAgICogRSBwYXJhIGNhcnJlZ2FyIGFzIGxpdGVyYWlzIGN1c3RvbWl6YWRhcywgYmFzdGEgYXBlbmFzIHBhc3NhciBvIG9iamV0byBwYXJhIG8gY29tcG9uZW50ZS5cbiAgICpcbiAgICogYGBgXG4gICAqIDxwby1wYWdlLWxvZ2luXG4gICAqICAgW3AtbGl0ZXJhbHNdPVwiY3VzdG9tTGl0ZXJhbHNcIj5cbiAgICogPC9wby1wYWdlLWxvZ2luPlxuICAgKiBgYGBcbiAgICpcbiAgICogID4gTyBvYmpldG8gcGFkcsOjbyBkZSBsaXRlcmFpcyBzZXLDoSB0cmFkdXppZG8gZGUgYWNvcmRvIGNvbSBvIGlkaW9tYSBkbyBicm93c2VyIChwdCwgZW4sIGVzKS5cbiAgICogID4gw4kgdGFtYsOpbSBwb3Nzw612ZWwgYWx0ZXJuYXIgbyBvYmpldG8gcGFkcsOjbyBkZSBsaXRlcmFpcyBhdHJhdsOpcyBkbyBzZWxldG9yIGRlIGlkaW9tYXMgbG9jYWxpemFkbyBuYSBwYXJ0ZSBpbmZlcmlvciBkbyB0ZW1wbGF0ZSxcbiAgICogbmVzc2UgY2FzbywgaMOhIHRhbWLDqW0gYSBvcMOnw6NvIGRvIGlkaW9tYSBydXNzby5cbiAgICovXG4gIEBJbnB1dCgncC1saXRlcmFscycpIHNldCBsaXRlcmFscyh2YWx1ZTogUG9QYWdlTG9naW5MaXRlcmFscykge1xuICAgIHRoaXMuX2xpdGVyYWxzID0gdmFsdWU7XG4gIH1cblxuICBnZXQgbGl0ZXJhbHMoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2xpdGVyYWxzO1xuICB9XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogSGFiaWxpdGEgdW0gZXN0YWRvIGRlIGNhcnJlZ2FtZW50byBhbyBib3TDo28gZGUgKmxvZ2luKi5cbiAgICpcbiAgICogPiDDiSBuZWNlc3PDoXJpbyBhdHJpYnVpciBgdHJ1ZWAgw6AgZXN0YSBwcm9wcmllZGFkZSBuYSBmdW7Dp8OjbyBkZWZpbmlkYSBlbSBgcC1sb2dpbi1zdWJtaXRgLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgZmFsc2VgXG4gICAqL1xuICBASW5wdXQoJ3AtbG9hZGluZycpIHNldCBsb2FkaW5nKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fbG9hZGluZyA9IGNvbnZlcnRUb0Jvb2xlYW4odmFsdWUpO1xuICB9XG5cbiAgZ2V0IGxvYWRpbmcoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2xvYWRpbmc7XG4gIH1cblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBWYWxvciBkbyBtb2RlbG8gZG8gY2FtcG8gZGUgbG9naW4uXG4gICAqL1xuICBASW5wdXQoJ3AtbG9naW4nKSBzZXQgbG9naW4odmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuX2xvZ2luID0gdmFsdWU7XG5cbiAgICBpZiAoIXRoaXMuYXV0aGVudGljYXRpb25VcmwpIHtcbiAgICAgIHRoaXMubG9naW5DaGFuZ2UuZW1pdCh0aGlzLl9sb2dpbik7XG4gICAgfVxuICB9XG5cbiAgZ2V0IGxvZ2luKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX2xvZ2luO1xuICB9XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogQXRyaWJ1dG8gcXVlIHJlY2ViZSB1bWEgbGlzdGEgZGUgZXJyb3MgZSBleGliZSBhYmFpeG8gZG8gY2FtcG8gZGUgbG9naW4uXG4gICAqL1xuICBASW5wdXQoJ3AtbG9naW4tZXJyb3JzJykgc2V0IGxvZ2luRXJyb3JzKHZhbHVlOiBBcnJheTxzdHJpbmc+KSB7XG4gICAgdGhpcy5fbG9naW5FcnJvcnMgPSB2YWx1ZSB8fCBbXTtcbiAgICB0aGlzLnNldExvZ2luRXJyb3JzKHRoaXMuX2xvZ2luRXJyb3JzKTtcbiAgfVxuICBnZXQgbG9naW5FcnJvcnMoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2xvZ2luRXJyb3JzO1xuICB9XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogQXRyaWJ1dG8gcXVlIHJlY2ViZSB1bWEgbGlzdGEgZGUgZXJyb3MgZSBleGliZSBhYmFpeG8gZG8gY2FtcG8gZGUgcGFzc3dvcmQuXG4gICAqL1xuICBASW5wdXQoJ3AtcGFzc3dvcmQtZXJyb3JzJykgc2V0IHBhc3N3b3JkRXJyb3JzKHZhbHVlOiBBcnJheTxzdHJpbmc+KSB7XG4gICAgdGhpcy5fcGFzc3dvcmRFcnJvcnMgPSB2YWx1ZSB8fCBbXTtcbiAgICB0aGlzLnNldFBhc3N3b3JkRXJyb3JzKHRoaXMuX3Bhc3N3b3JkRXJyb3JzKTtcbiAgfVxuICBnZXQgcGFzc3dvcmRFcnJvcnMoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3Bhc3N3b3JkRXJyb3JzO1xuICB9XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogRXhpYmUgdW0gbGluayBhYmFpeG8gZG8gZm9ybXVsw6FyaW8gZGUgbG9naW4gcGFyYSBxdWUgb3MgdXN1w6FyaW9zIGRhIGFwbGljYcOnw6NvIGZhw6dhbSBhIHJlY3VwZXJhw6fDo28gZG9zIGRhZG9zIGRlIGF1dGVudGljYcOnw6NvLlxuICAgKlxuICAgKiBBIHByb3ByaWVkYWRlIGFjZWl0YSBvcyBzZWd1aW50ZXMgdGlwb3M6XG4gICAqXG4gICAqIC0gKipTdHJpbmcqKjogaW5mb3JtZSB1bWEgdXJsIGV4dGVybmEgb3UgdW1hIHJvdGEgdsOhbGlkYTtcbiAgICogLSAqKkZ1bmN0aW9uKio6IHBvZGUtc2UgY3VzdG9taXphciBhIGHDp8Ojby4gUGFyYSBlc3RhIHBvc3NpbGlkYWRlIGJhc3RhIGF0cmlidWlyOlxuICAgKiBgYGBcbiAgICogPHBvLXBhZ2UtbG9naW4+XG4gICAqICAgW3JlY292ZXJ5XT1cInRoaXMubXlSZWNvdmVyeS5iaW5kKHRoaXMpXCI+XG4gICAqIDwvcG8tcGFnZS1sb2dpbj5cbiAgICogYGBgXG4gICAqXG4gICAqIC0gKipQb1BhZ2VMb2dpblJlY292ZXJ5Kio6IGNyaWEtc2UgdsOtbmN1bG8gYXV0b23DoXRpY28gY29tIG8gdGVtcGxhdGUgKipwby1tb2RhbC1wYXNzd29yZC1yZWNvdmVyeSoqLlxuICAgKiAgIE8gb2JqZXRvIGRldmUgY29udGVyIGEgKip1cmwqKiBwYXJhIHJlcXVpc2nDp8OjbyBkb3MgcmVjdXJzb3MgZSBwb2RlLXNlIGRlZmluaXIgbyAqKnRpcG8qKiBkZSBtb2RhbCBwYXJhIHJlY3VwZXJhw6fDo28gZGUgc2VuaGEsXG4gICAqICAgKiplbWFpbCoqIHBhcmEgY29udGF0byBlICoqbcOhc2NhcmEqKiBkbyBjYW1wbyBkZSB0ZWxlZm9uZS5cbiAgICovXG4gIEBJbnB1dCgncC1yZWNvdmVyeScpIHNldCByZWNvdmVyeSh2YWx1ZTogc3RyaW5nIHwgRnVuY3Rpb24gfCBQb1BhZ2VMb2dpblJlY292ZXJ5KSB7XG4gICAgdGhpcy5fcmVjb3ZlcnkgPSB2YWx1ZTtcbiAgfVxuXG4gIGdldCByZWNvdmVyeSgpIHtcbiAgICByZXR1cm4gdGhpcy5fcmVjb3Zlcnk7XG4gIH1cblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBDYXNvIGEgYXBsaWNhw6fDo28gdGVuaGEgdW0gbGluayBwYXJhIG5vdm9zIGNhZGFzdHJvcywgaW5mb3JtZSB1bWEgdXJsIGV4dGVybmEgb3UgdW1hIHJvdGEgdsOhbGlkYSwgZGVzc2FcbiAgICogZm9ybWEgc2Vyw6EgZXhpYmlkbyB1bSBsaW5rIGFiYWl4byBkbyBmb3JtdWzDoXJpbyBkZSBsb2dpbiBwYXJhIG9zIHVzdcOhcmlvcyBkYSBhcGxpY2HDp8Ojby5cbiAgICpcbiAgICogRXhlbXBsb3MgZGUgdmFsb3JlcyB2w6FsaWRvczpcbiAgICogLSAqKmxvY2FsKio6IGAvaG9tZWBcbiAgICogLSAqKnVybCBleHRlcm5hKio6IGBodHRwczovL3BvLXVpLmlvYFxuICAgKlxuICAgKiA+IFZlamEgYSBwcm9wcmllZGFkZSBgcC1saXRlcmFsc2AgcGFyYSBjdXN0b21pemFyIGEgbGl0ZXJhbCBgcmVnaXN0ZXJVcmxgLlxuICAgKi9cbiAgQElucHV0KCdwLXJlZ2lzdGVyLXVybCcpIHNldCByZWdpc3RlclVybCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5fcmVnaXN0ZXJVcmwgPSBpc1R5cGVvZih2YWx1ZSwgJ3N0cmluZycpID8gdmFsdWUgOiB1bmRlZmluZWQ7XG4gIH1cblxuICBnZXQgcmVnaXN0ZXJVcmwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fcmVnaXN0ZXJVcmw7XG4gIH1cblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBBdHJpYnV0byBxdWUgcmVjZWJlIG8gdGlwbyBkZSBlc3F1ZW1hIGRhIGF1dGVudGljYcOnw6NvLCBzZW5kbyBzdXBvcnRhZG9zIGFwZW5hcyBvcyB2YWxvcmVzIGBCYXNpY2AgZSBgQmVhcmVyYC5cbiAgICpcbiAgICogPiBDYXNvIG8gdGlwbyBkZWZpbmlkbyBzZWphIGBCYXNpY2AsIG8gY29tcG9uZW50ZSBmYXLDoSB1bWEgcmVxdWlzacOnw6NvIGBQT1NUYCBjb250ZW5kbzpcbiAgICpcbiAgICogYGBgXG4gICAqIGhlYWRlcnMge1xuICAgKiAgQXV0aG9yaXphdGlvbjogQmFzaWMgYmFzZTY0KGxvZ2luOnBhc3N3b3JkKVxuICAgKiB9XG4gICAqXG4gICAqIGJvZHkge1xuICAgKiAgcmVtZW1iZXJVc2VyOiByZW1lbWJlclVzZXJcbiAgICogfVxuICAgKiBgYGBcbiAgICpcbiAgICogPiBDYXNvIG8gdGlwbyBkZWZpbmlkbyBzZWphIGBCZWFyZXJgLCBvIGNvbXBvbmVudGUgZmFyw6EgdW1hIHJlcXVpc2nDp8OjbyBgUE9TVGAgY29udGVuZG86XG4gICAqXG4gICAqIGBgYFxuICAgKiBib2R5IHtcbiAgICogIGxvZ2luOiBsb2dpbixcbiAgICogIHBhc3N3b3JkOiBiYXNlNjQocGFzc3dvcmQpLFxuICAgKiAgcmVtZW1iZXJVc2VyOiByZW1lbWJlclVzZXJcbiAgICogfVxuICAgKiBgYGBcbiAgICpcbiAgICogQGRlZmF1bHQgYFBvUGFnZUxvZ2luQXV0aGVudGljYXRpb25UeXBlLkJhc2ljYFxuICAgKi9cbiAgQElucHV0KCdwLWF1dGhlbnRpY2F0aW9uLXR5cGUnKSBzZXQgYXV0aGVudGljYXRpb25UeXBlKHZhbHVlOiBQb1BhZ2VMb2dpbkF1dGhlbnRpY2F0aW9uVHlwZSkge1xuICAgIHRoaXMuX2F1dGhlbnRpY2F0aW9uVHlwZSA9ICg8YW55Pk9iamVjdCkudmFsdWVzKFBvUGFnZUxvZ2luQXV0aGVudGljYXRpb25UeXBlKS5pbmNsdWRlcyh2YWx1ZSlcbiAgICAgID8gdmFsdWVcbiAgICAgIDogUG9QYWdlTG9naW5BdXRoZW50aWNhdGlvblR5cGUuQmFzaWM7XG4gIH1cblxuICBnZXQgYXV0aGVudGljYXRpb25UeXBlKCk6IFBvUGFnZUxvZ2luQXV0aGVudGljYXRpb25UeXBlIHtcbiAgICByZXR1cm4gdGhpcy5fYXV0aGVudGljYXRpb25UeXBlO1xuICB9XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogRW5kcG9pbnQgdXNhZG8gcGVsbyB0ZW1wbGF0ZSBwYXJhIHJlcXVpc2nDp8OjbyBkbyByZWN1cnNvLiBRdWFuZG8gcHJlZW5jaGlkbywgbyBtw6l0b2RvIGBwLWxvZ2luLXN1Ym1pdGAgc2Vyw6EgaWdub3JhZG8gZSBvXG4gICAqIGNvbXBvbmVudGUgYWRxdWlyaXLDoSBhdXRvbWF0aXphw6fDo28gcGFyYSBvIHByb2Nlc3NvIGRlIGF1dGVudGljYcOnw6NvLlxuICAgKlxuICAgKiAjIyMgUHJvY2Vzc29zXG4gICAqIEFvIGRpZ2l0YXIgdW0gdmFsb3IgdsOhbGlkbyBubyBjYW1wbyBkZSBsb2dpbi9wYXNzd29yZCBlIHByZXNzaW9uYXIgKipFbnRlcioqLCBvIGNvbXBvbmVudGUgZmFyw6EgdW1hIHJlcXVpc2nDp8OjbyBgUE9TVGBcbiAgICogbmEgdXJsIGVzcGVjaWZpY2FkYSBuZXN0YSBwcm9wcmllZGFkZSBwYXNzYW5kbyBvIG9iamV0byBjb250ZW5kbyBvIHZhbG9yIGRlZmluaWRvIHBlbG8gdXN1w6FyaW86XG4gICAqXG4gICAqIGBgYFxuICAgKiBoZWFkZXJzIHtcbiAgICogIEF1dGhvcml6YXRpb246IEJhc2ljIGJhc2U2NChsb2dpbjpwYXNzd29yZClcbiAgICogfVxuICAgKlxuICAgKiBib2R5IHtcbiAgICogIHJlbWVtYmVyVXNlcjogcmVtZW1iZXJVc2VyXG4gICAqIH1cbiAgICogYGBgXG4gICAqXG4gICAqIEVtIGNhc28gZGUgKipzdWNlc3NvKiosIG8gb2JqZXRvIGRlIHJldG9ybm8gw6kgYXJtYXplbmFkbyBubyBgc2Vzc2lvblN0b3JhZ2VgIGUgbyB1c3XDoXJpbyDDqSByZWRpcmVjaW9uYWRvIHBhcmEgYSBww6FnaW5hIGluaWNpYWwgZGFcbiAgICogYXBsaWNhw6fDo28gYC9gLlxuICAgKlxuICAgKiBgYGBcbiAgICogMjAwOlxuICAgKiAge1xuICAgKiAgICB1c2VyOiB1c2VyXG4gICAqICB9XG4gICAqIGBgYFxuICAgKlxuICAgKiBFbSBjYXNvIGRlICoqZXJybyoqIG5hIGF1dGVudGljYcOnw6NvLCBlc3BlcmEtc2UgbyBzZWd1aW50ZSByZXRvcm5vOlxuICAgKlxuICAgKiBgYGBcbiAgICogNDAwLzQwMVxuICAgKiAge1xuICAgKiAgICBjb2RlOiA0MDAvNDAxLFxuICAgKiAgICBtZXNzYWdlOiBtZXNzYWdlLFxuICAgKiAgICBkZXRhaWxlZE1lc3NhZ2U6IGRldGFpbGVkTWVzc2FnZSxcbiAgICogICAgaGVscFVybD86IGhlbHBVcmxcbiAgICogIH1cbiAgICogYGBgXG4gICAqXG4gICAqID4gUG9kZS1zZSBhdHJpYnVpciB1bWEgcXVhbnRpZGFkZSBtw6F4aW1hIGRlIHRlbnRhdGl2YXMgcmVzdGFudGVzIChtYXhBdHRlbXB0c1JlbWFpbmluZykgcGFyYSBvIGF0cmlidXRvIGBwLWV4Y2VlZGVkLWF0dGVtcHRzLXdhcm5pbmdgLFxuICAgKiBhc3NpbSBjb21vIG9zIGF2aXNvcyByZWxhY2lvbmFkb3MgYW9zIGNhbXBvcyBsb2dpbiBlIHBhc3N3b3JkIChsb2dpbldhcm5pbmdzLCBwYXNzd29yZFdhcm5pbmdzKSBwYXJhIG9zIGF0cmlidXRvcyBgcC1sb2dpbi1lcnJvcnNgIGVcbiAgICogYHAtcGFzc3dvcmQtZXJyb3JzYCBjb25mb3JtZSByZXRvcm5vIGFiYWl4bzpcbiAgICpcbiAgICogYGBgXG4gICAqIDQwMFxuICAgKiAge1xuICAgKiAgICBjb2RlOiA0MDAvNDAxLFxuICAgKiAgICBtZXNzYWdlOiBtZXNzYWdlLFxuICAgKiAgICBkZXRhaWxlZE1lc3NhZ2U6IGRldGFpbGVkTWVzc2FnZSxcbiAgICogICAgaGVscFVybD86IGhlbHBVcmwsXG4gICAqICAgIG1heEF0dGVtcHRzUmVtYWluaW5nPzogbWF4QXR0ZW1wdHNSZW1haW5pbmcsXG4gICAqICAgIGxvZ2luV2FybmluZ3M/OiBbbG9naW5XYXJuaW5nc10sXG4gICAqICAgIHBhc3N3b3JkV2FybmluZ3M/OiBbcGFzc3dvcmRXYXJuaW5nc11cbiAgICogIH1cbiAgICogYGBgXG4gICAqXG4gICAqID4gQ2FzbyBvIHZhbG9yIGF0cmlidcOtZG8gcGFyYSBgcC1leGNlZWRlZC1hdHRlbXB0cy13YXJuaW5nYCBzZWphIGlndWFsIGEgMCh6ZXJvKSwgcG9kZXLDoSBzZXIgcGFzc2FkbyB1bSB2YWxvciBwYXJhIG9cbiAgICogYXRyaWJ1dG8gYHAtYmxvY2tlZC11cmxgIGUgbyB1c3XDoXJpbyBzZXLDoSByZWRpcmVjaW9uYWRvIHBhcmEgdW1hIHRlbGEgZGUgYmxvcXVlaW8uXG4gICAqXG4gICAqICpQcm9jZXNzbyBmaW5hbGl6YWRvLipcbiAgICpcbiAgICogX19fX19fX19fX19fX19fXG4gICAqXG4gICAqICMjIyMgUHJhdGljaWRhZGVcbiAgICogQXMgaW5mb3JtYcOnw7VlcyBkbyBzZXJ2acOnbyBkZSBhdXRlbnRpY2HDp8OjbyB0YW1iw6ltIHBvZGVtIHNlciB0cmFuc21pdGlkYXMgZGlyZXRhbWVudGUgcGVsYXMgY29uZmlndXJhw6fDo29zIGRlIHJvdGEgZSwgZGVzdGEgbWFuZWlyYSxcbiAgICogZGlzcGVuc2Etc2UgcXVhbHF1ZXIgbWVuw6fDo28gZS9vdSBpbXBvcnRhw6fDo28gZG8gY29tcG9uZW50ZSBgcG8tcGFnZS1sb2dpbmAgbm8gcmVzdGFudGUgZGEgYXBsaWNhw6fDo28uIE8gZXhlbXBsbyBhYmFpeG8gZXhlbXBsaWZpY2FcbiAgICogYSBmb3JtYSBkaW7Dom1pY2EgY29tIGEgcXVhbCBvIHRlbXBsYXRlIGRlIHRlbGEgZGUgbG9naW4gcG9kZSBzZXIgZ2VyYWRvIGFvIG5hdmVnYXIgcGFyYSByb3RhIGAvbG9naW5gLCBlIHRhbWLDqW0gY29tbyBlbGUgc2UgY29tdW5pY2FcbiAgICogY29tIG8gc2VydmnDp28gcGFyYSBlZmV0dWHDp8OjbyBkbyBwcm9jZXNzbyBkZSBhdXRlbnRpY2HDp8OjbyBkbyB1c3XDoXJpbyBlIHNvbGljaXRhw6fDo28gZGUgbm92YSBzZW5oYS5cbiAgICogQmFzdGEgZGVmaW5pciBuYXMgY29uZmlndXJhw6fDtWVzIGRlIHJvdGE6XG4gICAqXG4gICAqXG4gICAqIGBgYFxuICAgKiAgIGltcG9ydCB7IFBvUGFnZUxvZ2luQ29tcG9uZW50LCBQb1BhZ2VMb2dpbkF0aGVudGljYXRpb25UeXBlIH0gZnJvbSAnQHBvLXVpL25nLXRlbXBsYXRlcyc7XG4gICAqXG4gICAqICAgLi4uXG4gICAqICAgY29uc3Qgcm91dGVzOiBSb3V0ZXMgPSBbXG4gICAqICAgICB7XG4gICAqICAgICAgIHBhdGg6ICdsb2dpbicsIGNvbXBvbmVudDogUG9QYWdlTG9naW5Db21wb25lbnQsIGRhdGE6IHtcbiAgICogICAgICAgICBzZXJ2aWNlQXBpOiAnaHR0cHM6Ly9wby11aS5pby9zYW1wbGUvYXBpL3VzZXJzL2F1dGhlbnRpY2F0aW9uJyxcbiAgICogICAgICAgICBlbnZpcm9ubWVudDogJ2RldmVsb3BtZW50JyxcbiAgICogICAgICAgICByZWNvdmVyeToge1xuICAgKiAgICAgICAgICAgdXJsOiAnaHR0cHM6Ly9wby11aS5pby9zYW1wbGUvYXBpL3VzZXJzJyxcbiAgICogICAgICAgICAgIHR5cGU6IFBvTW9kYWxQYXNzd29yZFJlY292ZXJ5VHlwZS5BbGwsXG4gICAqICAgICAgICAgICBjb250YWN0TWFpbDogJ2Rldi5wb0Bwby11aS5jb20nLFxuICAgKiAgICAgICAgICAgcGhvbmVNYXNrOiAnOS05OTktOTk5LTk5OTknXG4gICAqICAgICAgICAgfSxcbiAgICogICAgICAgICByZWdpc3RlclVybDogJy9uZXctcGFzc3dvcmQnLFxuICAgKiAgICAgICAgIGF1dGhlbnRpY2F0aW9uVHlwZTogUG9QYWdlTG9naW5BdGhlbnRpY2F0aW9uVHlwZS5CYXNpY1xuICAgKiAgICAgICB9XG4gICAqICAgICB9XG4gICAqICAgICAuLi5cbiAgICogICBdO1xuICAgKlxuICAgKiAgIEBOZ01vZHVsZSh7XG4gICAqICAgICBpbXBvcnRzOiBbUm91dGVyTW9kdWxlLmZvclJvb3Qocm91dGVzKV0sXG4gICAqICAgICBleHBvcnRzOiBbUm91dGVyTW9kdWxlXVxuICAgKiAgIH0pXG4gICAqICAgZXhwb3J0IGNsYXNzIEFwcFJvdXRpbmdNb2R1bGUgeyB9XG4gICAqIGBgYFxuICAgKlxuICAgKlxuICAgKiBPIG1ldGFkYWRvIGBzZXJ2aWNlQXBpYCBkZXZlIHNlciBhICoqdXJsKiogcGFyYSByZXF1aXNpw6fDo28gZG9zIHJlY3Vyc29zIGRlIGF1dGVudGljYcOnw6NvLCBvIGBlbnZpcm9ubWVudGAgYWxpbWVudGEgYSBwcm9wcmllZGFkZVxuICAgKiBgcC1lbnZpcm9ubWVudGAsIGByZWNvdmVyeWAgw6kgYSBpbnRlcmZhY2UgYFBvUGFnZUxvZ2luUmVjb3ZlcnlgIHJlc3BvbnPDoXZlbCBwZWxhcyBlc3BlY2lmaWNhw6fDtWVzIGNvbnRpZGFzIG5hIG1vZGFsIGRlIHJlY3VwZXJhw6fDo28gZGVcbiAgICogc2VuaGEsIGByZWdpc3RlclVybGAgYWxpbWVudGEgYSBwcm9wcmllZGFkZSBgcC1yZWdpc3Rlci11cmxgIGUgYGF1dGhlbnRpY2F0aW9uVHlwZWAgcXVlIGRlZmluZSBhIHByb3ByaWVkYWRlIGBwLWF1dGhlbnRpY2F0aW9uLXR5cGVgLlxuICAgKlxuICAgKiA+IMOJIGVzc2VuY2lhbCBxdWUgc2lnYSBhIG5vbWVuY2xhdHVyYSBkb3MgYXRyaWJ1dG9zIGV4ZW1wbGlmaWNhZG9zIGFjaW1hIHBhcmEgc3VhIGVmZXRpdmEgZnVuY2lvbmFsaWRhZGUuXG4gICAqXG4gICAqL1xuICBASW5wdXQoJ3AtYXV0aGVudGljYXRpb24tdXJsJykgc2V0IGF1dGhlbnRpY2F0aW9uVXJsKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9hdXRoZW50aWNhdGlvblVybCA9IGlzVHlwZW9mKHZhbHVlLCAnc3RyaW5nJykgPyB2YWx1ZSA6IHVuZGVmaW5lZDtcbiAgfVxuXG4gIGdldCBhdXRoZW50aWNhdGlvblVybCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9hdXRoZW50aWNhdGlvblVybDtcbiAgfVxuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIENhc28gbyB2YWxvciBhdHJpYnXDrWRvIHBhcmEgYHAtZXhjZWVkZWQtYXR0ZW1wdHMtd2FybmluZ2Agc2VqYSBpZ3VhbCBhIDAoemVybykgZSBhIGFwbGljYcOnw6NvIHRlbmhhIHVtIGxpbmsgZGUgYmxvcXVlaW8gZGUgdXN1w6FyaW8sXG4gICAqIGluZm9ybWUgdW1hIHVybCBleHRlcm5hIG91IHVtYSByb3RhIHbDoWxpZGEsIGRlc3NhIGZvcm1hIGVtIGNhc28gZGUgYmxvcXVlaW8gbyB1c3XDoXJpbyBzZXLDoSByZWRpcmVjaW9uYWRvLlxuICAgKi9cbiAgQElucHV0KCdwLWJsb2NrZWQtdXJsJykgc2V0IGJsb2NrZWRVcmwodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuX2Jsb2NrZWRVcmwgPSBpc1R5cGVvZih2YWx1ZSwgJ3N0cmluZycpID8gdmFsdWUgOiB1bmRlZmluZWQ7XG4gIH1cblxuICBnZXQgYmxvY2tlZFVybCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9ibG9ja2VkVXJsO1xuICB9XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogRXhpYmUgdW0gYm90w6NvIHBhcmEgc3Vwb3J0ZS5cbiAgICpcbiAgICogQSBwcm9wcmllZGFkZSBhY2VpdGEgb3Mgc2VndWludGVzIHRpcG9zOlxuICAgKlxuICAgKiAtICoqU3RyaW5nKio6IFVSTCBleHRlcm5hIG91IHVtYSByb3RhIHbDoWxpZGE7XG4gICAqIC0gKipGdW5jdGlvbioqOiBGdW7Dp8OjbyBhIHNlciBkaXNwYXJhZGEgYW8gY2xpY2FyIG5vIGJvdMOjbyBkZSBzdXBvcnRlO1xuICAgKiBgYGBcbiAgICogPHBvLXBhZ2UtbG9naW4+XG4gICAqICAgW3Atc3VwcG9ydF09XCJ0aGlzLm15U3VwcG9ydC5iaW5kKHRoaXMpXCI+XG4gICAqIDwvcG8tcGFnZS1sb2dpbj5cbiAgICogYGBgXG4gICAqXG4gICAqL1xuICBASW5wdXQoJ3Atc3VwcG9ydCcpIHNldCBzdXBwb3J0KHZhbHVlOiBzdHJpbmcgfCBGdW5jdGlvbikge1xuICAgIHRoaXMuX3N1cHBvcnQgPSB2YWx1ZTtcbiAgfVxuXG4gIGdldCBzdXBwb3J0KCkge1xuICAgIHJldHVybiB0aGlzLl9zdXBwb3J0O1xuICB9XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogQ29sZcOnw6NvIGRlIGlkaW9tYXMgcXVlIG8gY29tcG9uZW50ZSBpcsOhIHRyYXRhciBlIGRpc3BvbmliaWxpemFyw6EgcGFyYSBvIHVzdcOhcmlvIGVzY29saGVyLlxuICAgKlxuICAgKiBDYXNvIGVzc2EgcHJvcHJpZWRhZGUgbsOjbyBzZWphIHV0aWxpemFkYSBvIGNvbXBvbmVudGUgbW9zdHJhcsOhIG5vIGNvbWJvIG9zIGlkaW9tYXMgcXVlIGVsZSBzdXBvcnRhIHBvciBwYWRyw6NvLlxuICAgKlxuICAgKiBDYXNvIGEgY29sZcOnw6NvIHRlbmhhIHVtIGlkaW9tYSwgYSBww6FnaW5hIGVzdGFyw6EgbmVzc2UgaWRpb21hIGUgbsOjbyBtb3N0cmFyw6EgbyBjb21iby5cbiAgICpcbiAgICogQ2FzbyBzZWphIHBhc3NhZG8gdW0gYXJyYXkgdmF6aW8sIGEgcMOhZ2luYSB0ZXLDoSBvIGlkaW9tYSBjb25maWd1cmFkbyBubyBgaTE4bmAgZSBuw6NvIG1vc3RyYXLDoSBvIGNvbWJvIGRlIHNlbGXDp8Ojby5cbiAgICpcbiAgICogPiBTZSBmb3IgcGFzc2FkbyB1bSBpZGlvbWEgbsOjbyBzdXBvcnRhZG8sIHNlcsOhIHByZWNpc28gcGFzc2FyIGFzIGxpdGVyYWlzIHBlbGEgcHJvcHJpZWRhZGUgYHAtbGl0ZXJhbHNgLlxuICAgKlxuICAgKlxuICAgKi9cbiAgQElucHV0KCdwLWxhbmd1YWdlcycpIHNldCBsYW5ndWFnZXNMaXN0KGxhbmd1YWdlc0xpc3Q6IEFycmF5PFBvTGFuZ3VhZ2U+KSB7XG4gICAgaWYgKGxhbmd1YWdlc0xpc3QpIHtcbiAgICAgIGlmIChsYW5ndWFnZXNMaXN0Lmxlbmd0aCkge1xuICAgICAgICB0aGlzLl9sYW5ndWFnZXNMaXN0ID0gbGFuZ3VhZ2VzTGlzdDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuX2xhbmd1YWdlc0xpc3QgPSBwb0xhbmd1YWdlRGVmYXVsdC5maWx0ZXIobGFuZ3VhZ2UgPT4gbGFuZ3VhZ2UubGFuZ3VhZ2UgPT09IHRoaXMubGFuZ3VhZ2UpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGdldCBsYW5ndWFnZXNMaXN0KCk6IEFycmF5PFBvTGFuZ3VhZ2U+IHtcbiAgICBpZiAodGhpcy5fbGFuZ3VhZ2VzTGlzdCkge1xuICAgICAgcmV0dXJuIHRoaXMuX2xhbmd1YWdlc0xpc3Q7XG4gICAgfVxuICAgIHJldHVybiBwb0xhbmd1YWdlRGVmYXVsdDtcbiAgfVxuXG4gIGdldCBzaG93TGFuZ3VhZ2UoKSB7XG4gICAgcmV0dXJuIHRoaXMubGFuZ3VhZ2VzTGlzdC5sZW5ndGggPiAxO1xuICB9XG5cbiAgZ2V0IGxhbmd1YWdlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRMYW5ndWFnZSB8fCBnZXRTaG9ydEJyb3dzZXJMYW5ndWFnZSgpO1xuICB9XG5cbiAgZ2V0IHBhZ2VMb2dpbkxpdGVyYWxzKCk6IFBvUGFnZUxvZ2luTGl0ZXJhbHMge1xuICAgIGNvbnN0IGxvZ2luSGludFdpdGhDb250YWN0RW1haWwgPSB0aGlzLmNvbnRhY3RFbWFpbFxuICAgICAgPyB0aGlzLmNvbmNhdGVuYXRlTG9naW5IaW50V2l0aENvbnRhY3RFbWFpbCh0aGlzLmNvbnRhY3RFbWFpbClcbiAgICAgIDogdW5kZWZpbmVkO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnBvUGFnZUxvZ2luTGl0ZXJhbHNEZWZhdWx0W3BvTG9jYWxlRGVmYXVsdF0sXG4gICAgICAuLi5wb1BhZ2VMb2dpbkxpdGVyYWxzRGVmYXVsdFt0aGlzLmxhbmd1YWdlXSxcbiAgICAgIC4uLmxvZ2luSGludFdpdGhDb250YWN0RW1haWwsXG4gICAgICAuLi50aGlzLmxpdGVyYWxzXG4gICAgfTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgbG9naW5TZXJ2aWNlOiBQb1BhZ2VMb2dpblNlcnZpY2UsXG4gICAgcHVibGljIHJvdXRlcjogUm91dGVyLFxuICAgIHB1YmxpYyBwb0xhbmd1YWdlU2VydmljZTogUG9MYW5ndWFnZVNlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5zZWxlY3RlZExhbmd1YWdlID0gdGhpcy5wb0xhbmd1YWdlU2VydmljZS5nZXRTaG9ydExhbmd1YWdlKCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICBpZiAodGhpcy5sb2dpblN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5sb2dpblN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxuXG4gIGNsb3NlUG9wb3ZlcigpIHtcbiAgICB0aGlzLnNob3dFeGNlZWRlZEF0dGVtcHRzV2FybmluZyA9IGZhbHNlO1xuICB9XG5cbiAgb25Mb2dpblN1Ym1pdCgpOiB2b2lkIHtcbiAgICBjb25zdCBsb2dpbkZvcm06IFBvUGFnZUxvZ2luID0ge1xuICAgICAgbG9naW46IHRoaXMubG9naW4sXG4gICAgICBwYXNzd29yZDogdGhpcy5wYXNzd29yZCxcbiAgICAgIHJlbWVtYmVyVXNlcjogdGhpcy5yZW1lbWJlclVzZXJcbiAgICB9O1xuXG4gICAgaWYgKHRoaXMuY3VzdG9tRmllbGQpIHtcbiAgICAgIGxvZ2luRm9ybVt0aGlzLmN1c3RvbUZpZWxkT2JqZWN0LnByb3BlcnR5XSA9IHRoaXMuY3VzdG9tRmllbGRPYmplY3QudmFsdWU7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuYXV0aGVudGljYXRpb25VcmwpIHtcbiAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7XG4gICAgICB0aGlzLmxvZ2luU3Vic2NyaXB0aW9uID0gdGhpcy5sb2dpblNlcnZpY2VcbiAgICAgICAgLm9uTG9naW4odGhpcy5hdXRoZW50aWNhdGlvblVybCwgdGhpcy5hdXRoZW50aWNhdGlvblR5cGUsIGxvZ2luRm9ybSlcbiAgICAgICAgLnN1YnNjcmliZShcbiAgICAgICAgICBkYXRhID0+IHtcbiAgICAgICAgICAgIHRoaXMuc2V0VmFsdWVzVG9Qcm9wZXJ0aWVzKCk7XG4gICAgICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKCdQT19VU0VSX0xPR0lOJywgSlNPTi5zdHJpbmdpZnkoZGF0YSkpO1xuICAgICAgICAgICAgdGhpcy5vcGVuSW50ZXJuYWxMaW5rKCcvJyk7XG4gICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIGVycm9yID0+IHtcbiAgICAgICAgICAgIGlmIChlcnJvci5lcnJvci5jb2RlID09PSAnNDAwJyB8fCBlcnJvci5lcnJvci5jb2RlID09PSAnNDAxJykge1xuICAgICAgICAgICAgICB0aGlzLnNldFZhbHVlc1RvUHJvcGVydGllcyhlcnJvcik7XG4gICAgICAgICAgICAgIHRoaXMucmVkaXJlY3RCbG9ja2VkVXJsKHRoaXMuZXhjZWVkZWRBdHRlbXB0c1dhcm5pbmcsIHRoaXMuYmxvY2tlZFVybCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubG9naW5TdWJtaXQuZW1pdChsb2dpbkZvcm0pO1xuICAgICAgdGhpcy5zaG93RXhjZWVkZWRBdHRlbXB0c1dhcm5pbmcgPSB0aGlzLmV4Y2VlZGVkQXR0ZW1wdHNXYXJuaW5nID4gMDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldERlZmF1bHRDdXN0b21GaWVsZE9iamVjdChwcm9wZXJ0eSk6IFBvUGFnZUxvZ2luQ3VzdG9tRmllbGQge1xuICAgIHJldHVybiB7IHByb3BlcnR5IH07XG4gIH1cblxuICBwcml2YXRlIG9wZW5FeHRlcm5hbExpbmsodXJsOiBzdHJpbmcpIHtcbiAgICB3aW5kb3cub3Blbih1cmwsICdfYmxhbmsnKTtcbiAgfVxuXG4gIHByaXZhdGUgb3BlbkludGVybmFsTGluayh1cmw6IHN0cmluZykge1xuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFt1cmxdKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVkaXJlY3RCbG9ja2VkVXJsKGF0dGVtcHRzOiBudW1iZXIsIGJsb2NrZWRVcmw6IHN0cmluZykge1xuICAgIGlmIChhdHRlbXB0cyA9PT0gMCAmJiBibG9ja2VkVXJsKSB7XG4gICAgICB0aGlzLnNob3dFeGNlZWRlZEF0dGVtcHRzV2FybmluZyA9IGZhbHNlO1xuICAgICAgaXNFeHRlcm5hbExpbmsoYmxvY2tlZFVybCkgPyB0aGlzLm9wZW5FeHRlcm5hbExpbmsoYmxvY2tlZFVybCkgOiB0aGlzLm9wZW5JbnRlcm5hbExpbmsoYmxvY2tlZFVybCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzZXRWYWx1ZXNUb1Byb3BlcnRpZXMocmVzdWx0Pykge1xuICAgIGlmIChyZXN1bHQpIHtcbiAgICAgIHRoaXMuZXhjZWVkZWRBdHRlbXB0c1dhcm5pbmcgPSByZXN1bHQuZXJyb3IubWF4QXR0ZW1wdHNSZW1haW5pbmc7XG4gICAgICB0aGlzLmxvZ2luRXJyb3JzID0gcmVzdWx0LmVycm9yLmxvZ2luV2FybmluZ3M7XG4gICAgICB0aGlzLnBhc3N3b3JkRXJyb3JzID0gcmVzdWx0LmVycm9yLnBhc3N3b3JkV2FybmluZ3M7XG4gICAgICB0aGlzLmJsb2NrZWRVcmwgPSByZXN1bHQuZXJyb3IuYmxvY2tlZFVybDtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5leGNlZWRlZEF0dGVtcHRzV2FybmluZyA9IDA7XG4gICAgICB0aGlzLmxvZ2luRXJyb3JzID0gW107XG4gICAgICB0aGlzLnBhc3N3b3JkRXJyb3JzID0gW107XG4gICAgICB0aGlzLmJsb2NrZWRVcmwgPSAnJztcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgYWJzdHJhY3QgY29uY2F0ZW5hdGVMb2dpbkhpbnRXaXRoQ29udGFjdEVtYWlsKGNvbnRhY3RFbWFpbDogc3RyaW5nKTtcblxuICBwcm90ZWN0ZWQgYWJzdHJhY3Qgc2V0TG9naW5FcnJvcnModmFsdWU6IEFycmF5PHN0cmluZz4pOiB2b2lkO1xuXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBzZXRQYXNzd29yZEVycm9ycyh2YWx1ZTogQXJyYXk8c3RyaW5nPik6IHZvaWQ7XG59XG4iXX0=
|
|
1085
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tcGFnZS1sb2dpbi1iYXNlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RlbXBsYXRlcy9zcmMvbGliL2NvbXBvbmVudHMvcG8tcGFnZS1sb2dpbi9wby1wYWdlLWxvZ2luLWJhc2UuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFhLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHbEYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFlBQVksRUFBRSx1QkFBdUIsRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFdkgsT0FBTyxFQUFxQixlQUFlLEVBQWMsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUd6RyxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQzs7Ozs7QUFNL0YsTUFBTSwyQkFBMkIsR0FBRyxFQUFFLENBQUM7QUFFdkMsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQUc7SUFDeEMsRUFBRSxFQUF1QjtRQUN2QixLQUFLLEVBQUUsU0FBUztRQUNoQixpQkFBaUIsRUFBRSxlQUFlO1FBQ2xDLFNBQVMsRUFBRTt1REFDd0M7UUFDbkQsZ0JBQWdCLEVBQUUsb0JBQW9CO1FBQ3RDLG9CQUFvQixFQUFFLGtCQUFrQjtRQUN4QyxtQkFBbUIsRUFBRSxzQkFBc0I7UUFDM0MsdUJBQXVCLEVBQUUsZUFBZTtRQUN4QyxzQkFBc0IsRUFBRSxzQkFBc0I7UUFDOUMsWUFBWSxFQUFFLGlCQUFpQjtRQUMvQixnQkFBZ0IsRUFBRSxxREFBcUQ7UUFDdkUsV0FBVyxFQUFFLE9BQU87UUFDcEIsY0FBYyxFQUFFLFlBQVk7UUFDNUIsY0FBYyxFQUFFLHVCQUF1QjtRQUN2QyxhQUFhLEVBQUUsRUFBRTtRQUNqQixXQUFXLEVBQUUsY0FBYztR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QXRDLEtBQUs7bUJBQUMsZUFBZTtZQXVCb0IsdUJBQXVCO2tCQUFoRSxLQUFLO21CQUFDLDZCQUE2QjtZQXVCRCxnQkFBZ0I7a0JBQWxELEtBQUs7bUJBQUMsc0JBQXNCO1lBdUVKLFFBQVE7a0JBQWhDLEtBQUs7bUJBQUMsWUFBWTtZQW1CSyxPQUFPO2tCQUE5QixLQUFLO21CQUFDLFdBQVc7WUFlSSxLQUFLO2tCQUExQixLQUFLO21CQUFDLFNBQVM7WUFtQmEsV0FBVztrQkFBdkMsS0FBSzttQkFBQyxnQkFBZ0I7WUFlUyxjQUFjO2tCQUE3QyxLQUFLO21CQUFDLG1CQUFtQjtZQTZCRCxRQUFRO2tCQUFoQyxLQUFLO21CQUFDLFlBQVk7WUFzQlUsV0FBVztrQkFBdkMsS0FBSzttQkFBQyxnQkFBZ0I7WUF1Q2Esa0JBQWtCO2tCQUFyRCxLQUFLO21CQUFDLHVCQUF1QjtZQTJISyxpQkFBaUI7a0JBQW5ELEtBQUs7bUJBQUMsc0JBQXNCO1lBZ0JELFVBQVU7a0JBQXJDLEtBQUs7bUJBQUMsZUFBZTtZQTBCRSxPQUFPO2tCQUE5QixLQUFLO21CQUFDLFdBQVc7WUF5QlEsYUFBYTtrQkFBdEMsS0FBSzttQkFBQyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkRlc3Ryb3ksIE91dHB1dCwgRGlyZWN0aXZlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbXBvcnQgeyBjb252ZXJ0VG9Cb29sZWFuLCBjb252ZXJ0VG9JbnQsIGdldFNob3J0QnJvd3Nlckxhbmd1YWdlLCBpc0V4dGVybmFsTGluaywgaXNUeXBlb2YgfSBmcm9tICcuLy4uLy4uL3V0aWxzL3V0aWwnO1xuXG5pbXBvcnQgeyBQb0xhbmd1YWdlU2VydmljZSwgcG9Mb2NhbGVEZWZhdWx0LCBQb0xhbmd1YWdlLCBwb0xhbmd1YWdlRGVmYXVsdCB9IGZyb20gJ0Bwby11aS9uZy1jb21wb25lbnRzJztcblxuaW1wb3J0IHsgUG9QYWdlTG9naW4gfSBmcm9tICcuL2ludGVyZmFjZXMvcG8tcGFnZS1sb2dpbi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUG9QYWdlTG9naW5BdXRoZW50aWNhdGlvblR5cGUgfSBmcm9tICcuL2VudW1zL3BvLXBhZ2UtbG9naW4tYXV0aGVudGljYXRpb24tdHlwZS5lbnVtJztcbmltcG9ydCB7IFBvUGFnZUxvZ2luQ3VzdG9tRmllbGQgfSBmcm9tICcuL2ludGVyZmFjZXMvcG8tcGFnZS1sb2dpbi1jdXN0b20tZmllbGQuaW50ZXJmYWNlJztcbmltcG9ydCB7IFBvUGFnZUxvZ2luTGl0ZXJhbHMgfSBmcm9tICcuL2ludGVyZmFjZXMvcG8tcGFnZS1sb2dpbi1saXRlcmFscy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUG9QYWdlTG9naW5SZWNvdmVyeSB9IGZyb20gJy4vaW50ZXJmYWNlcy9wby1wYWdlLWxvZ2luLXJlY292ZXJ5LmludGVyZmFjZSc7XG5pbXBvcnQgeyBQb1BhZ2VMb2dpblNlcnZpY2UgfSBmcm9tICcuL3BvLXBhZ2UtbG9naW4uc2VydmljZSc7XG5cbmNvbnN0IHBvUGFnZUxvZ2luQ29udGVudE1heExlbmd0aCA9IDQwO1xuXG5leHBvcnQgY29uc3QgcG9QYWdlTG9naW5MaXRlcmFsc0RlZmF1bHQgPSB7XG4gIGVuOiA8UG9QYWdlTG9naW5MaXRlcmFscz57XG4gICAgdGl0bGU6ICdXZWxjb21lJyxcbiAgICBsb2dpbkVycm9yUGF0dGVybjogJ0ludmFsaWQgTG9naW4nLFxuICAgIGxvZ2luSGludDogYFlvdXIgbG9naW4gdXNlciB3YXMgZ2l2ZW4gdG8geW91IGF0IHlvdXIgZmlyc3QgZGF5LlxuICAgIElmIHlvdSBkb24ndCBoYXZlIHRoaXMgaW5mb3JtYXRpb24gY29udGFjdCBzdXBwb3J0YCxcbiAgICBsb2dpblBsYWNlaG9sZGVyOiAnSW5zZXJ0IHlvdXIgZS1tYWlsJyxcbiAgICBwYXNzd29yZEVycm9yUGF0dGVybjogJ0ludmFsaWQgUGFzc3dvcmQnLFxuICAgIHBhc3N3b3JkUGxhY2Vob2xkZXI6ICdJbnNlcnQgeW91ciBwYXNzd29yZCcsXG4gICAgY3VzdG9tRmllbGRFcnJvclBhdHRlcm46ICdJbnZhbGlkIHZhbHVlJyxcbiAgICBjdXN0b21GaWVsZFBsYWNlaG9sZGVyOiAnUGxlYXNlIGVudGVyIGEgdmFsdWUnLFxuICAgIHJlbWVtYmVyVXNlcjogJ0F1dG9tYXRpYyBsb2dpbicsXG4gICAgcmVtZW1iZXJVc2VySGludDogJ1lvdSBjYW4gZGlzYWJsZSB0aGlzIG9wdGlvbiBpbiBzeXN0ZW0gY29uZmlndXJhdGlvbicsXG4gICAgc3VibWl0TGFiZWw6ICdFbnRlcicsXG4gICAgc3VibWl0dGVkTGFiZWw6ICdMb2FkaW5nLi4uJyxcbiAgICBmb3Jnb3RQYXNzd29yZDogJ0ZvcmdvdCB5b3VyIFBhc3N3b3JkPycsXG4gICAgaGlnaGxpZ2h0SW5mbzogJycsXG4gICAgcmVnaXN0ZXJVcmw6ICdOZXcgcmVnaXN0ZXInLFxuICAgIHRpdGxlUG9wb3ZlcjogJ09vcHMhJyxcbiAgICBmb3Jnb3RZb3VyUGFzc3dvcmQ6ICdGb3Jnb3QgeW91ciBwYXNzd29yZD8nLFxuICAgIGlmWW91VHJ5SGFyZGVyOiAnSWYgeW91IHRyeSAnLFxuICAgIGF0dGVtcHRzOiAnezB9IG1vcmUgdGltZShzKSAnLFxuICAgIHlvdXJVc2VyV2lsbEJlQmxvY2tlZDpcbiAgICAgICd3aXRob3V0IHN1Y2Nlc3MgeW91ciB1c2VyIHdpbGwgYmUgYmxvY2tlZCBhbmQgeW91IHdpbGwgYmUgbGVmdCAyNCBob3VycyB3aXRob3V0IGJlaW5nIGFibGUgdG8gYWNjZXNzIDooJyxcbiAgICBjcmVhdGVBTmV3UGFzc3dvcmROb3c6ICdCZXR0ZXIgY3JlYXRlIGEgbmV3IHBhc3N3b3JkIG5vdyEgWW91IHdpbGwgYmUgYWJsZSB0byBsb2cgaW50byB0aGUgc3lzdGVtIHJpZ2h0IGF3YXkuJyxcbiAgICBpRm9yZ290TXlQYXNzd29yZDogJ0kgZm9yZ290IG15IHBhc3N3b3JkJyxcbiAgICB3ZWxjb21lOiAnV2VsY29tZScsXG4gICAgc3VwcG9ydDogJ1N1cHBvcnQnXG4gIH0sXG4gIGVzOiA8UG9QYWdlTG9naW5MaXRlcmFscz57XG4gICAgdGl0bGU6ICdCaWVudmVuaWRvJyxcbiAgICBsb2dpbkVycm9yUGF0dGVybjogJ0xvZ2luIGludsOhbGlkbycsXG4gICAgbG9naW5IaW50OiBgU3UgdXN1YXJpbyBoYSBzaWRvIGVudHJlZ2FkbyBwYXJhIHVzdGVkIGVuIHN1IHByaW1lciBkw61hLlxuICAgIFNpIG5vIHRpZW5lIGVzdGEgaW5mb3JtYWNpw7NuLCBww7NuZ2FzZSBlbiBjb250YWN0byBjb24gZWwgc29wb3J0ZSB0w6ljbmljb2AsXG4gICAgbG9naW5QbGFjZWhvbGRlcjogJ0luc2VydGUgc3UgZS1tYWlsJyxcbiAgICBwYXNzd29yZEVycm9yUGF0dGVybjogJ0NvbnRyYXNlw7FhIGludsOhbGlkYScsXG4gICAgcGFzc3dvcmRQbGFjZWhvbGRlcjogJ0luc2VydGUgc3UgY29udHJhc2XDsWEnLFxuICAgIGN1c3RvbUZpZWxkRXJyb3JQYXR0ZXJuOiAnVmFsb3Igbm8gdsOhbGlkby4nLFxuICAgIGN1c3RvbUZpZWxkUGxhY2Vob2xkZXI6ICdQb3IgZmF2b3IgaW50cm9kdXpjYSB1biB2YWxvcicsXG4gICAgcmVtZW1iZXJVc2VyOiAnSW5pY2lvIGRlIHNlc2nDs24gYXV0b23DoXRpY2FtZW50ZScsXG4gICAgcmVtZW1iZXJVc2VySGludDogJ1B1ZWRlIGRlc2hhYmlsaXRhciBlc3RhIG9wY2nDs24gZW4gZWwgbWVuw7ogZGVsIHNpc3RlbWEuJyxcbiAgICBzdWJtaXRMYWJlbDogJ0VudHJhcicsXG4gICAgc3VibWl0dGVkTGFiZWw6ICdDYXJnYW5kby4uLicsXG4gICAgZm9yZ290UGFzc3dvcmQ6ICdPbHZpZGFzdGUgdHUgY29udHJhc2XDsWE/JyxcbiAgICBoaWdobGlnaHRJbmZvOiAnJyxcbiAgICByZWdpc3RlclVybDogJ051ZXZvIHJlZ2lzdHJvJyxcbiAgICB0aXRsZVBvcG92ZXI6ICdPcGEhJyxcbiAgICBmb3Jnb3RZb3VyUGFzc3dvcmQ6ICdPbHZpZGFzdGUgdHUgY29udHJhc2XDsWE/JyxcbiAgICBpZllvdVRyeUhhcmRlcjogJ1NpIGludGVudGEgbcOhcyAnLFxuICAgIGF0dGVtcHRzOiAnezB9IHZlei92ZWNlcyAnLFxuICAgIHlvdXJVc2VyV2lsbEJlQmxvY2tlZDogJ3NpbiDDqXhpdG8gc3UgdXN1YXJpbyBzZXJhIGJsb3F1ZWFkbyB5IHVzdGVkIHbDoXMgcGVybWFuZWNlciAyNCBob3JhcyBzaW4gcG9kZXIgYWNjZWRlciBhIDooJyxcbiAgICBjcmVhdGVBTmV3UGFzc3dvcmROb3c6XG4gICAgICAnwqFNZWpvciBjcmVhciB1bmEgbnVldmEgY29udHJhc2XDsWEgYWhvcmEhIFVzdGVkIHBvZHLDoSBlbnRyYXIgZW4gZWwgc2lzdGVtYSBpbm1lZGlhdGFtZW50ZSBkZXNwdcOpcy4nLFxuICAgIGlGb3Jnb3RNeVBhc3N3b3JkOiAnT2x2aWRlIG1pIGNvbnRyYXNlw7FhJyxcbiAgICB3ZWxjb21lOiAnQmllbnZlbmlkbycsXG4gICAgc3VwcG9ydDogJ1NvcG9ydGUnXG4gIH0sXG4gIHB0OiA8UG9QYWdlTG9naW5MaXRlcmFscz57XG4gICAgdGl0bGU6ICdCZW0tdmluZG8nLFxuICAgIGxvZ2luRXJyb3JQYXR0ZXJuOiAnTG9naW4gaW52w6FsaWRvJyxcbiAgICBsb2dpbkhpbnQ6IGBTZXUgdXN1w6FyaW8gZm9pIGVudHJlZ3VlIGEgdm9jw6ogbm8gc2V1IHByaW1laXJvIGRpYS5cbiAgICBDYXNvIG7Do28gdGVuaGEgbWFpcyBlc3NhIGluZm9ybWHDp8OjbyBjb250YWN0ZSBvIHN1cG9ydGVgLFxuICAgIGxvZ2luUGxhY2Vob2xkZXI6ICdJbnNpcmEgc2V1IGUtbWFpbCcsXG4gICAgcGFzc3dvcmRFcnJvclBhdHRlcm46ICdTZW5oYSBpbnbDoWxpZGEnLFxuICAgIHBhc3N3b3JkUGxhY2Vob2xkZXI6ICdJbnNpcmEgc3VhIHNlbmhhJyxcbiAgICBjdXN0b21GaWVsZEVycm9yUGF0dGVybjogJ1ZhbG9yIGludsOhbGlkby4nLFxuICAgIGN1c3RvbUZpZWxkUGxhY2Vob2xkZXI6ICdQb3IgZmF2b3IgaW5zaXJhIHVtIHZhbG9yJyxcbiAgICByZW1lbWJlclVzZXI6ICdMb2dhciBhdXRvbWF0aWNhbWVudGUnLFxuICAgIHJlbWVtYmVyVXNlckhpbnQ6ICdWb2PDqiBwb2RlIGRlc2FiaWxpdGFyIGVzc2Egb3DDp8OjbyBubyBtZW51IGRvIHNpc3RlbWEnLFxuICAgIHN1Ym1pdExhYmVsOiAnRW50cmFyJyxcbiAgICBzdWJtaXR0ZWRMYWJlbDogJ0NhcnJlZ2FuZG8uLi4nLFxuICAgIGZvcmdvdFBhc3N3b3JkOiAnRXNxdWVjZXUgc3VhIHNlbmhhPycsXG4gICAgaGlnaGxpZ2h0SW5mbzogJycsXG4gICAgcmVnaXN0ZXJVcmw6ICdOb3ZvIHJlZ2lzdHJvJyxcbiAgICB0aXRsZVBvcG92ZXI6ICdPcGEhJyxcbiAgICBmb3Jnb3RZb3VyUGFzc3dvcmQ6ICdFc3F1ZWNldSBzdWEgc2VuaGE/JyxcbiAgICBpZllvdVRyeUhhcmRlcjogJ1NlIHRlbnRhciBtYWlzICcsXG4gICAgYXR0ZW1wdHM6ICd7MH0gdmV6KGVzKSAnLFxuICAgIHlvdXJVc2VyV2lsbEJlQmxvY2tlZDogJ3NlbSBzdWNlc3NvIHNldSB1c3XDoXJpbyBzZXLDoSBibG9xdWVhZG8gZSB2b2PDqiBmaWNhIDI0IGhvcmFzIHNlbSBwb2RlciBhY2Vzc2FyIDooJyxcbiAgICBjcmVhdGVBTmV3UGFzc3dvcmROb3c6ICdNZWxob3IgY3JpYXIgdW1hIHNlbmhhIG5vdmEgYWdvcmEhIFZvY8OqIHZhaSBwb2RlciBlbnRyYXIgbm8gc2lzdGVtYSBsb2dvIGVtIHNlZ3VpZGEuJyxcbiAgICBpRm9yZ290TXlQYXNzd29yZDogJ0VzcXVlY2kgbWluaGEgc2VuaGEnLFxuICAgIHdlbGNvbWU6ICdCb2FzLXZpbmRhcycsXG4gICAgc3VwcG9ydDogJ1N1cG9ydGUnXG4gIH0sXG4gIHJ1OiA8UG9QYWdlTG9naW5MaXRlcmFscz57XG4gICAgdGl0bGU6ICfQlNC+0LHRgNC+INC/0L7QttCw0LvQvtCy0LDRgtGMIScsXG4gICAgbG9naW5FcnJvclBhdHRlcm46ICfQndC10LLQtdGA0L3Ri9C5INC70L7Qs9C40L0nLFxuICAgIGxvZ2luSGludDogYNCS0LDRiCDQu9C+0LPQuNC9INCx0YvQuyDQv9GA0LXQtNC+0YHRgtCw0LLQu9C10L0g0LLQsNC8INCyINC/0LXRgNCy0YvQuSDQtNC10L3RjC5cbiAgICDQldGB0LvQuCDRgyDQstCw0YEg0L3QtdGCINGN0YLQvtC5INC40L3RhNC+0YDQvNCw0YbQuNC4LCDQvtCx0YDQsNGC0LjRgtC10YHRjCDQsiDRgdC70YPQttCx0YMg0L/QvtC00LTQtdGA0LbQutC4YCxcbiAgICBsb2dpblBsYWNlaG9sZGVyOiAn0JLRgdGC0LDQstGM0YLQtSDRgdCy0L7QuSDQsNC00YDQtdGBINGN0LvQtdC60YLRgNC+0L3QvdC+0Lkg0L/QvtGH0YLRiycsXG4gICAgcGFzc3dvcmRFcnJvclBhdHRlcm46ICfQndC10LLQtdGA0L3Ri9C5INC/0LDRgNC+0LvRjCcsXG4gICAgcGFzc3dvcmRQbGFjZWhvbGRlcjogJ9CS0LLQtdC00LjRgtC1INGB0LLQvtC5INC/0LDRgNC+0LvRjCcsXG4gICAgY3VzdG9tRmllbGRFcnJvclBhdHRlcm46ICfQndC10LLQtdGA0L3QvtC1INC30L3QsNGH0LXQvdC40LUuJyxcbiAgICBjdXN0b21GaWVsZFBsYWNlaG9sZGVyOiAn0J/QvtC20LDQu9GD0LnRgdGC0LAsINCy0LLQtdC00LjRgtC1INC30L3QsNGH0LXQvdC40LUnLFxuICAgIHJlbWVtYmVyVXNlcjogJ9CQ0LLRgtC+0LzQsNGC0LjRh9C10YHQutC40Lkg0LLRhdC+0LQnLFxuICAgIHJlbWVtYmVyVXNlckhpbnQ6ICfQktGLINC80L7QttC10YLQtSDQvtGC0LrQu9GO0YfQuNGC0Ywg0Y3RgtGDINC+0L/RhtC40Y4g0LIg0LrQvtC90YTQuNCz0YPRgNCw0YbQuNC4INGB0LjRgdGC0LXQvNGLJyxcbiAgICBzdWJtaXRMYWJlbDogJ9CS0L7QudGC0LgnLFxuICAgIHN1Ym1pdHRlZExhYmVsOiAnM9Cw0LPRgNGD0LfQutCwLi4uJyxcbiAgICBmb3Jnb3RQYXNzd29yZDogJ9CX0LDQsdGL0LvQuCDQv9Cw0YDQvtC70Yw/JyxcbiAgICBoaWdobGlnaHRJbmZvOiAnJyxcbiAgICByZWdpc3RlclVybDogJ9Cd0L7QstGL0Lkg0YDQtdCz0LjRgdGC0YAnLFxuICAgIHRpdGxlUG9wb3ZlcjogJ9Ce0LkhJyxcbiAgICBmb3Jnb3RZb3VyUGFzc3dvcmQ6ICfQl9Cw0LHRi9C70Lgg0L/QsNGA0L7Qu9GMPycsXG4gICAgaWZZb3VUcnlIYXJkZXI6ICfQldGB0LvQuCDQstGLINCx0LXQt9GD0YHQv9C10YjQvdC+INC/0L7Qv9GL0YLQsNC10YLQtdGB0Ywg0LLQvtC50YLQuCDQtdGJ0LUgJyxcbiAgICBhdHRlbXB0czogJ3swfSDRgNCw0Lco0LApICcsXG4gICAgeW91clVzZXJXaWxsQmVCbG9ja2VkOiAn0JLQsNGIINC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjCDQsdGD0LTQtdGCINC30LDQsdC70L7QutC40YDQvtCy0LDQvSwg0Lgg0JLRiyDQvtGB0YLQsNC90LXRgtC10YHRjCDQvdCwIDI0INGH0LDRgdCwINCx0LXQtyDQstC+0LfQvNC+0LbQvdC+0YHRgtC4INC00L7RgdGC0YPQv9CwIDooJyxcbiAgICBjcmVhdGVBTmV3UGFzc3dvcmROb3c6ICfQm9GD0YfRiNC1INGB0L7Qt9C00LDQudGC0LUg0L3QvtCy0YvQuSDQv9Cw0YDQvtC70Ywg0YHQtdC50YfQsNGBIcKg0JLRiyDRgdC80L7QttC10YLQtSDRgdGA0LDQt9GDINCy0L7QudGC0Lgg0LIg0YHQuNGB0YLQtdC80YMuJyxcbiAgICBpRm9yZ290TXlQYXNzd29yZDogJ9CvINC30LDQsdGL0Lsg0YHQstC+0Lkg0L/QsNGA0L7Qu9GMJyxcbiAgICB3ZWxjb21lOiAn0LTQvtCx0YDQviDQv9C+0LbQsNC70L7QstCw0YLRjCcsXG4gICAgc3VwcG9ydDogJ9Cf0L7QtNC00LXRgNC20LrQsCdcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IHBvUGFnZUxvZ2luTGl0ZXJhbEluID0ge1xuICBlbjogJ2luJyxcbiAgZXM6ICdlbicsXG4gIHB0OiAnZW0nLFxuICBydTogJ9CyJ1xufTtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb25cbiAqXG4gKiBPIGNvbXBvbmVudGUgYHBvLXBhZ2UtbG9naW5gIMOpIHV0aWxpemFkbyBjb21vIHRlbXBsYXRlIHBhcmEgdGVsYSBkZSBsb2dpbi5cbiAqIENvbSBlbGUgw6kgcG9zc8OtdmVsIGRlZmluaXJtb3MgdmFsb3JlcyBwYXJhIHVzdcOhcmlvLCBzZW5oYSBlIGRlZmluaXIgYcOnw7VlcyBwYXJhIHJlY3VwZXJhw6fDo28gZGUgc2VuaGEgZSBncmF2YcOnw6NvIGRlIGRhZG9zIGRvIHVzdcOhcmlvLlxuICogVGFtYsOpbSDDqSBwb3Nzw612ZWwgaW5zZXJpciB1bWEgaW1hZ2VtIGVtIGNvbmp1bnRvIGNvbSB1bSB0ZXh0byBkZSBkZXN0YXF1ZS5cbiAqXG4gKlxuICogQSBwcm9wcmllZGFkZSBgcC1hdXRoZW50aWNhdGlvbi11cmxgIGF1dG9tYXRpemEgYSByb3RpbmEgZG8gY29tcG9uZW50ZSBlIHNpbXBsaWZpY2EgbyBwcm9jZXNzbyBwYXJhIGF1dGVudGljYcOnw6NvIGRvIHVzdcOhcmlvLCBiYXN0YW5kb1xuICogZGVmaW5pciB1bWEgdXJsIHBhcmEgcmVxdWlzacOnw6NvIGRhIGF1dGVudGljYcOnw6NvLiBBIGZsZXhpYmlsaWRhZGUgZSBwcmF0aWNpZGFkZSBwb2RlbSBjaGVnYXIgYSB1bSBuw612ZWwgZW0gcXVlIG8gZGVzZW52b2x2aW1lbnRvXG4gKiBkYSBhcGxpY2HDp8OjbyBubyAqY2xpZW50IHNpZGUqIMOpIGRlc3Byb3ZpZGEgZGUgcXVhbHF1ZXIgY8OzZGlnby1mb250ZSByZWxhY2lvbmFkbyDDoCByb3RpbmEgZGUgbG9naW4gZGUgdXN1w6FyaW8uXG4gKiBTZXUgZGV0YWxoYW1lbnRvIHBhcmEgdXNvIHBvZGUgc2VyIHZpc3RvIGxvZ28gYWJhaXhvIGVtICpwcm9wcmllZGFkZXMqLlxuICogQ2FzbyBqdWxndWUgbmVjZXNzw6FyaW8sIHBvZGUtc2UgdGFtYsOpbSBkZWZpbmlyIG1hbnVhbG1lbnRlIGEgcm90aW5hIGRvIGNvbXBvbmVudGUuXG4gKlxuICpcbiAqIFBhcmEgcXVlIGFzIGltYWdlbnMgc2VqYW0gZXhpYmlkYXMgY29ycmV0YW1lbnRlLCDDqSBuZWNlc3PDoXJpbyBpbmNsdWlyIG8gY2FtaW5obyBkZWxhcyBhbyBwcm9qZXRvLiBQYXJhIGlzc28sIGVkaXRlXG4gKiBvICphc3NldHMqIG5vIGFycXVpdm8gKiphbmd1bGFyLmpzb24qKiBkYSBhcGxpY2HDp8OjbyBuYSBzZWd1aW50ZSBvcmRlbTpcbiAqIGBgYFxuICogICBcImFzc2V0c1wiOiBbXG4gKiAgICAgXCJzcmMvYXNzZXRzXCIsXG4gKiAgICAgXCJzcmMvZmF2aWNvbi5pY29cIixcbiAqICAgICB7XG4gKiAgICAgICBcImdsb2JcIjogXCIqKlxcLypcIixcbiAqICAgICAgIFwiaW5wdXRcIjogXCJub2RlX21vZHVsZXMvQHBvLXVpL3N0eWxlL2ltYWdlc1wiLFxuICogICAgICAgXCJvdXRwdXRcIjogXCJhc3NldHMvaW1hZ2VzXCJcbiAqICAgICB9XG4gKiAgIF1cbiAqIGBgYFxuICovXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBQb1BhZ2VMb2dpbkJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICAvKipcbiAgICogTyBgcC1iYWNrZ3JvdW5kYCBwZXJtaXRlIGluc2VyaXIgdW1hIGltYWdlbSBkZSBkZXN0YXF1ZSBhbyBsYWRvIGRpcmVpdG8gZG8gZm9ybXVsw6FyaW8gZGUgbG9naW4sIGNhc28gYSBwcm9wcmllZGFkZVxuICAgKiBuw6NvIHNlamEgcHJlZW5jaGlkYSBvIGZvcm11bMOhcmlvIHNlcsOhIGNlbnRyYWxpemFkbyBubyBlc3Bhw6dvIGRpc3BvbsOtdmVsLlxuICAgKlxuICAgKiBBIGZvbnRlIGRhIGltYWdlbSBwb2RlIHNlciBkZSB1bSBjYW1pbmhvIGxvY2FsIG91IHVtYSB1cmwgZGUgdW0gc2Vydmlkb3IgZXh0ZXJuby5cbiAgICpcbiAgICogQWzDqW0gZGEgaW1hZ2VtLCDDqSBwb3Nzw612ZWwgYWRpY2lvbmFyIHVtIHRleHRvIGluZm9ybWF0aXZvIHBvciBjaW1hIGRhIGltYWdlbSBkYSBpbWFnZW0gZGUgZGVzdGFxdWUsIHBhcmEgaXNzbyBpbmZvcm1lXG4gICAqIHVtIHZhbG9yIHBhcmEgYSBsaXRlcmFsIGBoaWdobGlnaHRJbmZvYC5cbiAgICpcbiAgICogPiBWZWphIG1haXMgc29icmUgYXMgbGl0ZXJhaXMgbmEgcHJvcHJpZWRhZGUgYHAtbGl0ZXJhbHNgLlxuICAgKlxuICAgKiBFeGVtcGxvcyBkZSB2YWxvcmVzIHbDoWxpZG9zOlxuICAgKiAtICoqbG9jYWwqKjogYC4vYXNzZXRzL2ltYWdlcy9sb2dpbi1iYWNrZ3JvdW5kLnBuZ2BcbiAgICogLSAqKnVybCBleHRlcm5hKio6IGBodHRwczovL3BvLXVpLmlvL2Fzc2V0cy9pbWFnZXMvbG9naW4tYmFja2dyb3VuZC5wbmdgXG4gICAqXG4gICAqID4gRXNzYSBwcm9wcmllZGFkZSDDqSBpZ25vcmFkYSBwYXJhIGFwbGljYcOnw7VlcyBtb2JpbGUuXG4gICAqL1xuICBASW5wdXQoJ3AtYmFja2dyb3VuZCcpIGJhY2tncm91bmQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogQ2FtaW5obyBwYXJhIGEgbG9nb21hcmNhIGxvY2FsaXphZGEgbmEgcGFydGUgc3VwZXJpb3IuXG4gICAqXG4gICAqID4gQ2FzbyBzZWphIGluZGVmaW5pZGEgbyBlc3Bhw6dvIHNlIG1hbnTDqW0gcHJlc2VydmFkbyBwb3LDqW0gdmF6aW8uXG4gICAqL1xuICBASW5wdXQoJ3AtbG9nbycpIGxvZ28/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogRXhwcmVzc8OjbyByZWd1bGFyIHBhcmEgdmFsaWRhciBvIGNhbXBvIGRlIGxvZ2luLCBjYXNvIGEgZXhwcmVzc8OjbyBuw6NvIHNlamEgYXRlbnRpZGEsIGEgbGl0ZXJhbCBgbG9naW5FcnJvclBhdHRlcm5gXG4gICAqIHNlcsOhIGV4aWJpZGEuXG4gICAqXG4gICAqIEV4ZW1wbG9zIGRlIHZhbG9yZXMgdsOhbGlkb3M6XG4gICAqIC0gZW1haWw6IGBbZXhwcmVzc2FvLXJlZ3VsYXItZW1haWxdYFxuICAgKiAtIGNwZjogYFtleHByZXNzYW8tcmVndWxhci1jcGZdYFxuICAgKlxuICAgKiA+IFZlamEgYSBwcm9wcmllZGFkZSBgcC1saXRlcmFsc2AgcGFyYSBjdXN0b21pemFyIGEgbGl0ZXJhbCBgbG9naW5FcnJvclBhdHRlcm5gLlxuICAgKi9cbiAgQElucHV0KCdwLWxvZ2luLXBhdHRlcm4nKSBsb2dpblBhdHRlcm4/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogRXhwcmVzc8OjbyByZWd1bGFyIHBhcmEgdmFsaWRhciBvIGNhbXBvIGRlIHBhc3N3b3JkLCBjYXNvIGEgZXhwcmVzc8OjbyBuw6NvIHNlamEgYXRlbnRpZGEsIGEgbGl0ZXJhbCBgcGFzc3dvcmRFcnJvclBhdHRlcm5gXG4gICAqIHNlcsOhIGV4aWJpZGEuXG4gICAqXG4gICAqIEV4ZW1wbG9zIGRlIHZhbG9yZXMgdsOhbGlkb3M6XG4gICAqIC0gQXBlbmFzIG7Dum1lcm9zOiBgXFxkP2BcbiAgICogLSBMZXRyYXMgbcOtbnVzY3VsYXM6IGBcXHo/YFxuICAgKlxuICAgKiA+IFZlamEgYSBwcm9wcmllZGFkZSBgcC1saXRlcmFsc2AgcGFyYSBjdXN0b21pemFyIGEgbGl0ZXJhbCBgcGFzc3dvcmRFcnJvclBhdHRlcm5gLlxuICAgKi9cbiAgQElucHV0KCdwLXBhc3N3b3JkLXBhdHRlcm4nKSBwYXNzd29yZFBhdHRlcm4/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogQ2FtaW5obyBwYXJhIGEgbG9nb21hcmNhIGxvY2FsaXphZGEgbm8gcm9kYXDDqS5cbiAgICovXG4gIEBJbnB1dCgncC1zZWNvbmRhcnktbG9nbycpIHNlY29uZGFyeUxvZ28/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogRXZlbnRvIGRpc3BhcmFkbyBxdWFuZG8gbyB1c3XDoXJpbyBhbHRlcmFyIG8gaW5wdXQgZG8gY2FtcG8gbG9naW4uXG4gICAqXG4gICAqIEVzc2UgZXZlbnRvIHJlY2ViZXLDoSBjb21vIHBhcsOibWV0cm8gdW1hIHZhcmnDoXZlbCBkbyB0aXBvIGBzdHJpbmdgIGNvbSBvIHRleHRvIGluZm9ybWFkbyBubyBjYW1wby5cbiAgICpcbiAgICogPiBFc3RhIHByb3ByaWVkYWRlIHNlcsOhIGlnbm9yYWRhIHNlIGZvciBkZWZpbmlkbyB2YWxvciBwYXJhIGEgcHJvcHJpZWRhZGUgYHAtYXV0aGVudGljYXRpb24tdXJsYC5cbiAgICovXG4gIEBPdXRwdXQoJ3AtbG9naW4tY2hhbmdlJykgbG9naW5DaGFuZ2U6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgLyoqXG4gICAqIEV2ZW50byBkaXNwYXJhZG8gYW8gc3VibWV0ZXIgbyBmb3JtdWzDoXJpbyBkZSBsb2dpbiAoYXBlcnRhbmRvIGBFbnRlcmAgZGVudHJvIGRvcyBjYW1wb3Mgb3UgcHJlc3Npb25hbmRvIG8gYm90w6NvIGRlIGNvbmZpcm1hw6fDo28pLlxuICAgKlxuICAgKiBFc3NlIGV2ZW50byByZWNlYmVyw6EgY29tbyBwYXLDom1ldHJvIHVtIG9iamV0byBkbyB0aXBvIGBQb1BhZ2VMb2dpbmAgY29tIG9zIGRhZG9zIGluZm9ybWFkb3Mgbm8gZm9ybXVsw6FyaW8uXG4gICAqXG4gICAqID4gRXN0YSBwcm9wcmllZGFkZSBzZXLDoSBpZ25vcmFkYSBzZSBmb3IgZGVmaW5pZG8gdmFsb3IgcGFyYSBhIHByb3ByaWVkYWRlIGBwLXVybC1yZWNvdmVyeWAuXG4gICAqXG4gICAqID4gUGFyYSBtYWlzIGRldGFsaGVzIGNvbnN1bHRlIGEgZG9jdW1lbnRhw6fDo28gc29icmUgYSBpbnRlcmZhY2UgYFBvUGFnZUxvZ2luYCBtYWlzIGFiYWl4by5cbiAgICovXG4gIEBPdXRwdXQoJ3AtbG9naW4tc3VibWl0JykgbG9naW5TdWJtaXQgPSBuZXcgRXZlbnRFbWl0dGVyPFBvUGFnZUxvZ2luPigpO1xuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIEV2ZW50byBkaXNwYXJhZG8gcXVhbmRvIG8gdXN1w6FyaW8gYWx0ZXJhciBvIGlucHV0IGRvIGNhbXBvIHBhc3N3b3JkLlxuICAgKlxuICAgKiBFc3NlIGV2ZW50byByZWNlYmVyw6EgY29tbyBwYXLDom1ldHJvIHVtYSB2YXJpw6F2ZWwgZG8gdGlwbyBgc3RyaW5nYCBjb20gbyB0ZXh0byBpbmZvcm1hZG8gbm8gY2FtcG8uXG4gICAqXG4gICAqID4gRXN0YSBwcm9wcmllZGFkZSBzZXLDoSBpZ25vcmFkYSBzZSBmb3IgZGVmaW5pZG8gdmFsb3IgcGFyYSBhIHByb3ByaWVkYWRlIGBwLWF1dGhlbnRpY2F0aW9uLXVybGAuXG4gICAqL1xuICBAT3V0cHV0KCdwLXBhc3N3b3JkLWNoYW5nZScpIHBhc3N3b3JkQ2hhbmdlOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIEV2ZW50byBkaXNwYXJhZG8gcXVhbmRvIG8gdXN1w6FyaW8gYWx0ZXJhciBvIGlkaW9tYSBkYSBww6FnaW5hLlxuICAgKlxuICAgKiBFc3NlIGV2ZW50byByZWNlYmVyw6EgY29tbyBwYXLDom1ldHJvIHVtIG9iamV0byBkbyB0aXBvIGBQb0xhbmd1YWdlYCBjb20gYSBsaW5ndWFnZW0gc2VsZWNpb25hZGEuXG4gICAqXG4gICAqL1xuICBAT3V0cHV0KCdwLWxhbmd1YWdlLWNoYW5nZScpIGxhbmd1YWdlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8UG9MYW5ndWFnZT4gPSBuZXcgRXZlbnRFbWl0dGVyPFBvTGFuZ3VhZ2U+KCk7XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogRGVmaW5lIGEgcHJvcHJpZWRhZGUgbmF0aXZhIGBhdXRvY29tcGxldGVgIGRvIGNhbXBvIGNvbW8gYG9mZmAuXG4gICAqXG4gICAqIEBkZWZhdWx0IGBmYWxzZWBcbiAgICovXG4gIEBJbnB1dCgncC1uby1hdXRvY29tcGxldGUtbG9naW4nKSBub0F1dG9jb21wbGV0ZUxvZ2luOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIERlZmluZSBhIHByb3ByaWVkYWRlIG5hdGl2YSBgYXV0b2NvbXBsZXRlYCBkbyBjYW1wbyBjb21vIGBvZmZgLlxuICAgKlxuICAgKiA+IE5vIGNvbXBvbmVudGUgYHBvLXBhc3N3b3JkYCBzZXLDoSBkZWZpbmlkbyBjb21vIGBuZXctcGFzc3dvcmRgLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgZmFsc2VgXG4gICAqL1xuICBASW5wdXQoJ3Atbm8tYXV0b2NvbXBsZXRlLXBhc3N3b3JkJykgbm9BdXRvY29tcGxldGVQYXNzd29yZDogYm9vbGVhbjtcblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBQZXJtaXRlIGVzY29uZGVyIGEgZnVuw6fDo28gZGUgZXNwaWFyIGEgc2VuaGEgZGlnaXRhZGEuXG4gICAqXG4gICAqIEBkZWZhdWx0IGBmYWxzZWBcbiAgICovXG4gIEBJbnB1dCgncC1oaWRlLXBhc3N3b3JkLXBlZWsnKSBoaWRlUGFzc3dvcmRQZWVrOiBib29sZWFuO1xuXG4gIGFsbExvZ2luRXJyb3JzOiBBcnJheTxzdHJpbmc+ID0gW107XG4gIGFsbFBhc3N3b3JkRXJyb3JzOiBBcnJheTxzdHJpbmc+ID0gW107XG4gIGN1c3RvbUZpZWxkT2JqZWN0OiBQb1BhZ2VMb2dpbkN1c3RvbUZpZWxkO1xuICBjdXN0b21GaWVsZFR5cGU6IHN0cmluZztcbiAgbG9naW5TdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgcGFzc3dvcmQ6IHN0cmluZztcbiAgcmVtZW1iZXJVc2VyOiBib29sZWFuID0gZmFsc2U7XG4gIHNlbGVjdGVkTGFuZ3VhZ2U6IHN0cmluZztcbiAgc2hvd0V4Y2VlZGVkQXR0ZW1wdHNXYXJuaW5nID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBfYXV0aGVudGljYXRpb25UeXBlOiBQb1BhZ2VMb2dpbkF1dGhlbnRpY2F0aW9uVHlwZSA9IFBvUGFnZUxvZ2luQXV0aGVudGljYXRpb25UeXBlLkJhc2ljO1xuICBwcml2YXRlIF9hdXRoZW50aWNhdGlvblVybDogc3RyaW5nO1xuICBwcml2YXRlIF9ibG9ja2VkVXJsOiBzdHJpbmc7XG4gIHByaXZhdGUgX2NvbnRhY3RFbWFpbDogc3RyaW5nO1xuICBwcml2YXRlIF9jdXN0b21GaWVsZDogc3RyaW5nIHwgUG9QYWdlTG9naW5DdXN0b21GaWVsZDtcbiAgcHJpdmF0ZSBfZW52aXJvbm1lbnQ/OiBzdHJpbmc7XG4gIHByaXZhdGUgX2V4Y2VlZGVkQXR0ZW1wdHNXYXJuaW5nPzogbnVtYmVyO1xuICBwcml2YXRlIF9oaWRlUmVtZW1iZXJVc2VyOiBib29sZWFuID0gZmFsc2U7XG4gIHByaXZhdGUgX2xpdGVyYWxzOiBQb1BhZ2VMb2dpbkxpdGVyYWxzO1xuICBwcml2YXRlIF9sb2FkaW5nPzogYm9vbGVhbiA9IGZhbHNlO1xuICBwcml2YXRlIF9sb2dpbjogc3RyaW5nO1xuICBwcml2YXRlIF9sb2dpbkVycm9yczogQXJyYXk8c3RyaW5nPiA9IFtdO1xuICBwcml2YXRlIF9wYXNzd29yZEVycm9yczogQXJyYXk8c3RyaW5nPiA9IFtdO1xuICBwcml2YXRlIF9wcm9kdWN0TmFtZTogc3RyaW5nO1xuICBwcml2YXRlIF9yZWNvdmVyeTogc3RyaW5nIHwgUG9QYWdlTG9naW5SZWNvdmVyeSB8IEZ1bmN0aW9uO1xuICBwcml2YXRlIF9yZWdpc3RlclVybDogc3RyaW5nO1xuICBwcml2YXRlIF9zdXBwb3J0OiBzdHJpbmcgfCBGdW5jdGlvbjtcbiAgcHJpdmF0ZSBfbGFuZ3VhZ2VzTGlzdDogQXJyYXk8UG9MYW5ndWFnZT47XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogQW8gaW5mb3JtYXIgdW0gdmFsb3IgZG8gdGlwbyBgc3RyaW5nYCwgbyBtZXNtbyBzZXLDoSBhcGxpY2FkbyBjb21vIGEgY2hhdmUgZG8gY2FtcG8gY3VzdG9taXphZG8gZSB1dGlsaXphcsOhXG4gICAqIG9zIHZhbG9yZXMgcGFkcsO1ZXMgY29udGlkb3MgbmEgcHJvcHJpZWRhZGUgYGxpdGVyYWxzYCBjb21vIGBjdXN0b21GaWVsZEVycm9yUGF0dGVybmAgZSBgY3VzdG9tRmllbGRQbGFjZWhvbGRlcmAuXG4gICAqXG4gICAqIEV4aXN0ZSBhIHBvc3NpYmlsaWRhZGUgZGUgaW5mb3JtYXIgdW0gb2JqZXRvIHF1ZSBzZWd1ZSBhIGRlZmluacOnw6NvIGRhIGludGVyZmFjZSBgUG9QYWdlTG9naW5DdXN0b21GaWVsZGAsIG9uZGVcbiAgICogYXRyYXbDqXMgZG9zIHBhcsOibWV0cm9zIGVudmlhZG9zIHBvZGUgZ2VyYXIgdW0gYHBvLWlucHV0YCwgYHBvLWNvbWJvYCBlc3BlY2lmaWNhbWVudGUgcGFyYSBzZXJ2acOnb3NcbiAgICogb3UgYHBvLXNlbGVjdGAgcGFyYSB2YWxvcmVzIGZpeG9zLlxuICAgKlxuICAgKiBBYmFpeG8gc2VndWVtIG9zIGV4ZW1wbG9zIGRlIGNhZGEgdGlwbyBkZSBjYW1wby5cbiAgICpcbiAgICogYHBvLWlucHV0YDpcbiAgICpcbiAgICogYGBgXG4gICAqIHtcbiAgICogICBwcm9wZXJ0eTogJ2RvbWFpbicsXG4gICAqICAgdmFsdWU6ICdqdjAxJyxcbiAgICogICBwbGFjZWhvbGRlcjogJ0VudGVyIHlvdXIgZG9tYWluJyxcbiAgICogICBwYXR0ZXJuOiAnW2Etel0nLFxuICAgKiAgIGVycm9yUGF0dGVybjogJ0ludmFsaWQgdmFsdWUnXG4gICAqIH1cbiAgICogYGBgXG4gICAqXG4gICAqIGBwby1jb21ib2A6XG4gICAqXG4gICAqIGBgYFxuICAgKiB7XG4gICAqICAgcHJvcGVydHk6ICdkb21haW4nLFxuICAgKiAgIHZhbHVlOiAnanYwMScsXG4gICAqICAgcGxhY2Vob2xkZXI6ICdFbnRlciB5b3VyIGRvbWFpbicsXG4gICAqICAgdXJsOiAnaHR0cHM6Ly9wby11aS5pby9zYW1wbGUvYXBpL2NvbWJvT3B0aW9uL2RvbWFpbnMnLFxuICAgKiAgIGZpZWxkVmFsdWU6ICduaWNrbmFtZSdcbiAgICogfVxuICAgKiBgYGBcbiAgICpcbiAgICogYHBvLXNlbGVjdGA6XG4gICAqXG4gICAqIGBgYFxuICAgKiB7XG4gICAqICAgcHJvcGVydHk6ICdkb21haW4nLFxuICAgKiAgIHZhbHVlOiAnanYwMScsXG4gICAqICAgcGxhY2Vob2xkZXI6ICdFbnRlciB5b3VyIGRvbWFpbicsXG4gICAqICAgb3B0aW9uczogW3tsYWJlbDogJ0RvbWFpbiAxJywgdmFsdWU6ICcxJ30sIHtsYWJlbDogJ0RvbWFpbiAyJywgdmFsdWU6ICcyJ31dXG4gICAqIH1cbiAgICogYGBgXG4gICAqXG4gICAqIENhc28gbyBjdXN0b21GaWVsZCBwb3NzdWEgb3B0aW9ucywgdXJsIGUgZmllbGRWYWx1ZSBwcmVlbmNoaWRvcywgc2Vyw6EgcHJpb3JpemFkbyBvIHBvLXNlbGVjdFxuICAgKiB1dGlsaXphbmRvIG8gb3B0aW9ucy5cbiAgICpcbiAgICovXG4gIEBJbnB1dCgncC1jdXN0b20tZmllbGQnKSBzZXQgY3VzdG9tRmllbGQodmFsdWU6IHN0cmluZyB8IFBvUGFnZUxvZ2luQ3VzdG9tRmllbGQpIHtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIGlmIChpc1R5cGVvZih2YWx1ZSwgJ3N0cmluZycpKSB7XG4gICAgICAgIHRoaXMuY3VzdG9tRmllbGRUeXBlID0gJ2lucHV0JztcbiAgICAgICAgdGhpcy5fY3VzdG9tRmllbGQgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5jdXN0b21GaWVsZE9iamVjdCA9IHRoaXMuZ2V0RGVmYXVsdEN1c3RvbUZpZWxkT2JqZWN0KHZhbHVlKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAoaXNUeXBlb2YodmFsdWUsICdvYmplY3QnKSAmJiAhQXJyYXkuaXNBcnJheSh2YWx1ZSkgJiYgdmFsdWVbJ3Byb3BlcnR5J10pIHtcbiAgICAgICAgdGhpcy5fY3VzdG9tRmllbGQgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5jdXN0b21GaWVsZE9iamVjdCA9IDxQb1BhZ2VMb2dpbkN1c3RvbUZpZWxkPnZhbHVlO1xuXG4gICAgICAgIGlmICghdGhpcy5jdXN0b21GaWVsZE9iamVjdC5vcHRpb25zICYmICF0aGlzLmN1c3RvbUZpZWxkT2JqZWN0LnVybCkge1xuICAgICAgICAgIHRoaXMuY3VzdG9tRmllbGRUeXBlID0gJ2lucHV0JztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLmN1c3RvbUZpZWxkVHlwZSA9IHRoaXMuY3VzdG9tRmllbGRPYmplY3Qub3B0aW9ucyA/ICdzZWxlY3QnIDogJ2NvbWJvJztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLl9jdXN0b21GaWVsZCA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLmN1c3RvbUZpZWxkT2JqZWN0ID0gdW5kZWZpbmVkO1xuICB9XG5cbiAgZ2V0IGN1c3RvbUZpZWxkKCk6IHN0cmluZyB8IFBvUGFnZUxvZ2luQ3VzdG9tRmllbGQge1xuICAgIHJldHVybiB0aGlzLl9jdXN0b21GaWVsZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIFBlcnNvbmFsaXphIG8gZS1tYWlsIHF1ZSDDqSBleGliaWRvIG5hIG1lbnNhZ2VtIGRlIGRpY2EgZGUgbG9naW4gcGFkcsOjbyBwYXJhIGNvbnRhdG8gZGUgc3Vwb3J0ZS5cbiAgICovXG4gIEBJbnB1dCgncC1jb250YWN0LWVtYWlsJykgc2V0IGNvbnRhY3RFbWFpbCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5fY29udGFjdEVtYWlsID0gdmFsdWU7XG4gIH1cbiAgZ2V0IGNvbnRhY3RFbWFpbCgpIHtcbiAgICByZXR1cm4gdGhpcy5fY29udGFjdEVtYWlsO1xuICB9XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogVGV4dG8gY3VzdG9taXphZG8gcXVlIGZpY2EgZW50cmUgYSBsb2dvIGUgYSBtZW5zYWdlbSBkZSBib2FzLXZpbmRhcy5cbiAgICovXG4gIEBJbnB1dCgncC1wcm9kdWN0LW5hbWUnKSBzZXQgcHJvZHVjdE5hbWUodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuX3Byb2R1Y3ROYW1lID0gdmFsdWU7XG4gIH1cbiAgZ2V0IHByb2R1Y3ROYW1lKCkge1xuICAgIHJldHVybiB0aGlzLl9wcm9kdWN0TmFtZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEFkaWNpb25hIHVtYSBgdGFnYCBhYmFpeG8gZG8gdMOtdHVsbyBxdWUgZXNwZWNpZmljYSBvIGFtYmllbnRlIHF1ZSBvIHVzdcOhcmlvIGVzdMOhIGZhemVuZG8gbyBsb2dpbi5cbiAgICpcbiAgICogPiBFc3NhIHByb3ByaWVkYWRlIGxpbWl0YSBvIHRleHRvIGVtIDQwIGNhcmFjdGVyZXMuXG4gICAqL1xuICBASW5wdXQoJ3AtZW52aXJvbm1lbnQnKSBzZXQgZW52aXJvbm1lbnQoZW52aXJvbm1lbnQ6IHN0cmluZykge1xuICAgIGlmIChlbnZpcm9ubWVudCAmJiBlbnZpcm9ubWVudC5sZW5ndGggPiBwb1BhZ2VMb2dpbkNvbnRlbnRNYXhMZW5ndGgpIHtcbiAgICAgIHRoaXMuX2Vudmlyb25tZW50ID0gZW52aXJvbm1lbnQuc3Vic3RyaW5nKDAsIHBvUGFnZUxvZ2luQ29udGVudE1heExlbmd0aCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX2Vudmlyb25tZW50ID0gZW52aXJvbm1lbnQ7XG4gICAgfVxuICB9XG4gIGdldCBlbnZpcm9ubWVudCgpIHtcbiAgICByZXR1cm4gdGhpcy5fZW52aXJvbm1lbnQ7XG4gIH1cblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBFeGliZSB1bSBhdmlzbyBkZSBibG9xdWVpbyBkZSBhY29yZG8gY29tIGEgcXVhbnRpZGFkZSByZXN0YW50ZSBkZSB0ZW50YXRpdmFzLlxuICAgKiBPIGF2aXNvIHNlcsOhIGV4aWJpZG8gc29tZW50ZSBzZSBhIHF1YW50aWRhZGUgZm9yIG1haW9yIHF1ZSB6ZXJvLlxuICAgKlxuICAgKiA+IENhc28gdGVuaGEgYWxndW0gdmFsb3IgYXRyaWJ1w61kbyBwYXJhIG8gYXRyaWJ1dG8gYHAtYXV0aGVudGljYXRpb24tdXJsYCBlIG8gcmV0b3JubyBkYSByZXF1aXNpw6fDo28gZXN0aXZlciBhdHJpYnVpbmRvIHZhbG9yXG4gICAqIHBhcmEgbyBgcC1leGNlZWRlZC1hdHRlbXB0cy13YXJuaW5nYCwgbyB2YWxvciBjb25zaWRlcmFkbyBzZXLDoSBvIGRvIHJldG9ybm8gZGEgcmVxdWlzacOnw6NvLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgMGBcbiAgICovXG4gIEBJbnB1dCgncC1leGNlZWRlZC1hdHRlbXB0cy13YXJuaW5nJykgc2V0IGV4Y2VlZGVkQXR0ZW1wdHNXYXJuaW5nKHZhbHVlOiBudW1iZXIpIHtcbiAgICB0aGlzLl9leGNlZWRlZEF0dGVtcHRzV2FybmluZyA9IGNvbnZlcnRUb0ludCh2YWx1ZSk7XG4gICAgdGhpcy5zaG93RXhjZWVkZWRBdHRlbXB0c1dhcm5pbmcgPSB0aGlzLmV4Y2VlZGVkQXR0ZW1wdHNXYXJuaW5nID4gMDtcbiAgfVxuXG4gIGdldCBleGNlZWRlZEF0dGVtcHRzV2FybmluZygpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9leGNlZWRlZEF0dGVtcHRzV2FybmluZztcbiAgfVxuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIEVzY29uZGUgYSBmdW7Dp8OjbyBcIkxlbWJyYXIgdXN1w6FyaW9cIiBkbyBmb3JtdWzDoXJpbyBkZSBsb2dpbi5cbiAgICpcbiAgICogUXVhbmRvIGVzc2EgcHJvcHJpZWRhZGUgw6kgc2V0YWRhIGNvbSBgdHJ1ZWAgYSBwcm9wcmllZGFkZSBgcmVtZW1iZXJVc2VyYCBlbnZpYWRhIG5vIGV2ZW50byBgcC1sb2dpbi1zdWJtaXRgIHNlcsOhIHNlbXByZVxuICAgKiBgZmFsc2VgLlxuICAgKlxuICAgKiA+IFZlamEgYSBwcm9wcmllZGFkZSBgcC1saXRlcmFsc2AgcGFyYSBjdXN0b21pemFyIGEgbGl0ZXJhbCBgcmVtZW1iZXJVc2VyYC5cbiAgICpcbiAgICogQGRlZmF1bHQgYGZhbHNlYFxuICAgKi9cbiAgQElucHV0KCdwLWhpZGUtcmVtZW1iZXItdXNlcicpIHNldCBoaWRlUmVtZW1iZXJVc2VyKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5faGlkZVJlbWVtYmVyVXNlciA9IDxhbnk+dmFsdWUgPT09ICcnID8gdHJ1ZSA6IGNvbnZlcnRUb0Jvb2xlYW4odmFsdWUpO1xuXG4gICAgaWYgKHRoaXMuX2hpZGVSZW1lbWJlclVzZXIpIHtcbiAgICAgIHRoaXMucmVtZW1iZXJVc2VyID0gZmFsc2U7XG4gICAgfVxuICB9XG4gIGdldCBoaWRlUmVtZW1iZXJVc2VyKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9oaWRlUmVtZW1iZXJVc2VyO1xuICB9XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogT2JqZXRvIGNvbSBhcyBsaXRlcmFpcyB1c2FkYXMgbm8gYHBvLXBhZ2UtbG9naW5gLlxuICAgKlxuICAgKiBFeGlzdGVtIGR1YXMgbWFuZWlyYXMgZGUgY3VzdG9taXphciBvIGNvbXBvbmVudGUsIHBhc3NhbmRvIHVtIG9iamV0byBjb20gdG9kYXMgYXMgbGl0ZXJhaXMgZGlzcG9uw612ZWlzOlxuICAgKlxuICAgKiBgYGBcbiAgICogIGNvbnN0IGN1c3RvbUxpdGVyYWxzOiBQb1BhZ2VMb2dpbkxpdGVyYWxzID0ge1xuICAgKiAgICBhdHRlbXB0czogJ3swfSB2ZXooZXMpICcsXG4gICAqICAgIGNyZWF0ZUFOZXdQYXNzd29yZE5vdzogJ01lbGhvciBjcmlhciB1bWEgc2VuaGEgbm92YSBhZ29yYSEgVm9jw6ogdmFpIHBvZGVyIGVudHJhciBubyBzaXN0ZW1hIGxvZ28gZW0gc2VndWlkYS4nLFxuICAgKiAgICBmb3Jnb3RQYXNzd29yZDogJ0VzcXVlY2V1IHN1YSBzZW5oYT8nLFxuICAgKiAgICBmb3Jnb3RZb3VyUGFzc3dvcmQ6ICdFc3F1ZWNldSBzdWEgc2VuaGE/JyxcbiAgICogICAgaGlnaGxpZ2h0SW5mbzogJycsXG4gICAqICAgIGlGb3Jnb3RNeVBhc3N3b3JkOiAnRXNxdWVjaSBtaW5oYSBzZW5oYScsXG4gICAqICAgIGlmWW91VHJ5SGFyZGVyOiAnU2UgdGVudGFyIG1haXMgJyxcbiAgICogICAgd2VsY29tZTogJ0JvYXMtdmluZGFzJyxcbiAgICogICAgbG9naW5FcnJvclBhdHRlcm46ICdMb2dpbiBvYnJpZ2F0w7NyaW8nLFxuICAgKiAgICBsb2dpbkhpbnQ6ICdDYXNvIG7Do28gcG9zc3VhIHVzdcOhcmlvIGVudHJlIGVtIGNvbnRhdG8gY29tIG8gc3Vwb3J0ZScsXG4gICAqICAgIGxvZ2luTGFiZWw6ICdJbnNpcmEgc2V1IHVzdcOhcmlvJyxcbiAgICogICAgbG9naW5QbGFjZWhvbGRlcjogJ0luc2lyYSBzZXUgdXN1w6FyaW8gZGUgYWNlc3NvJyxcbiAgICogICAgcGFzc3dvcmRFcnJvclBhdHRlcm46ICdTZW5oYSBvYnJpZ2F0w7NyaWEnLFxuICAgKiAgICBwYXNzd29yZExhYmVsOiAnSW5zaXJhIHN1YSBzZW5oYScsXG4gICAqICAgIHBhc3N3b3JkUGxhY2Vob2xkZXI6ICdJbnNpcmEgc3VhIHNlbmhhIGRlIGFjZXNzbycsXG4gICAqICAgIGN1c3RvbUZpZWxkRXJyb3JQYXR0ZXJuOiAnQ2FtcG8gY3VzdG9taXphZG8gaW52w6FsaWRvJyxcbiAgICogICAgY3VzdG9tRmllbGRQbGFjZWhvbGRlcjogJ1BvciBmYXZvciBpbnNpcmEgdW0gdmFsb3InLFxuICAgKiAgICByZWdpc3RlclVybDogJ05vdm8gcmVnaXN0cm8nLFxuICAgKiAgICByZW1lbWJlclVzZXI6ICdMZW1icmFyIHVzdcOhcmlvJyxcbiAgICogICAgcmVtZW1iZXJVc2VySGludDogJ0VzdGEgb3DDp8OjbyBwb2RlIHNlciBkZXNhYmlsaXRhZGEgbmFzIGNvbmZpZ3VyYcOnw7VlcyBkbyBzaXN0ZW1hJyxcbiAgICogICAgc3VibWl0TGFiZWw6ICdBY2Vzc2FyIHNpc3RlbWEnLFxuICAgKiAgICBzdWJtaXR0ZWRMYWJlbDogJ0NhcnJlZ2FuZG8uLi4nLFxuICAgKiAgICB0aXRsZVBvcG92ZXI6ICdPcGEhJyxcbiAgICogICAgeW91clVzZXJXaWxsQmVCbG9ja2VkOiAnc2VtIHN1Y2Vzc28gc2V1IHVzdcOhcmlvIHNlcsOhIGJsb3F1ZWFkbyBlIHZvY8OqIGZpY2EgMjQgaG9yYXMgc2VtIHBvZGVyIGFjZXNzYXIgOignXG4gICAqICB9O1xuICAgKiBgYGBcbiAgICpcbiAgICogT3UgcGFzc2FuZG8gYXBlbmFzIGFzIGxpdGVyYWlzIHF1ZSBkZXNlamEgY3VzdG9taXphcjpcbiAgICpcbiAgICogYGBgXG4gICAqICBjb25zdCBjdXN0b21MaXRlcmFsczogUG9QYWdlTG9naW5MaXRlcmFscyA9IHtcbiAgICogICAgbG9naW5QbGFjZWhvbGRlcjogJ0luc2lyYSBzZXUgdXN1w6FyaW8gZGUgYWNlc3NvJyxcbiAgICogICAgcGFzc3dvcmRQbGFjZWhvbGRlcjogJ0luc2lyYSBzdWEgc2VuaGEgZGUgYWNlc3NvJyxcbiAgICogICAgc3VibWl0TGFiZWw6ICdBY2Vzc2FyIHNpc3RlbWEnXG4gICAqICB9O1xuICAgKiBgYGBcbiAgICpcbiAgICogRSBwYXJhIGNhcnJlZ2FyIGFzIGxpdGVyYWlzIGN1c3RvbWl6YWRhcywgYmFzdGEgYXBlbmFzIHBhc3NhciBvIG9iamV0byBwYXJhIG8gY29tcG9uZW50ZS5cbiAgICpcbiAgICogYGBgXG4gICAqIDxwby1wYWdlLWxvZ2luXG4gICAqICAgW3AtbGl0ZXJhbHNdPVwiY3VzdG9tTGl0ZXJhbHNcIj5cbiAgICogPC9wby1wYWdlLWxvZ2luPlxuICAgKiBgYGBcbiAgICpcbiAgICogID4gTyBvYmpldG8gcGFkcsOjbyBkZSBsaXRlcmFpcyBzZXLDoSB0cmFkdXppZG8gZGUgYWNvcmRvIGNvbSBvIGlkaW9tYSBkbyBicm93c2VyIChwdCwgZW4sIGVzKS5cbiAgICogID4gw4kgdGFtYsOpbSBwb3Nzw612ZWwgYWx0ZXJuYXIgbyBvYmpldG8gcGFkcsOjbyBkZSBsaXRlcmFpcyBhdHJhdsOpcyBkbyBzZWxldG9yIGRlIGlkaW9tYXMgbG9jYWxpemFkbyBuYSBwYXJ0ZSBpbmZlcmlvciBkbyB0ZW1wbGF0ZSxcbiAgICogbmVzc2UgY2FzbywgaMOhIHRhbWLDqW0gYSBvcMOnw6NvIGRvIGlkaW9tYSBydXNzby5cbiAgICovXG4gIEBJbnB1dCgncC1saXRlcmFscycpIHNldCBsaXRlcmFscyh2YWx1ZTogUG9QYWdlTG9naW5MaXRlcmFscykge1xuICAgIHRoaXMuX2xpdGVyYWxzID0gdmFsdWU7XG4gIH1cblxuICBnZXQgbGl0ZXJhbHMoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2xpdGVyYWxzO1xuICB9XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogSGFiaWxpdGEgdW0gZXN0YWRvIGRlIGNhcnJlZ2FtZW50byBhbyBib3TDo28gZGUgKmxvZ2luKi5cbiAgICpcbiAgICogPiDDiSBuZWNlc3PDoXJpbyBhdHJpYnVpciBgdHJ1ZWAgw6AgZXN0YSBwcm9wcmllZGFkZSBuYSBmdW7Dp8OjbyBkZWZpbmlkYSBlbSBgcC1sb2dpbi1zdWJtaXRgLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgZmFsc2VgXG4gICAqL1xuICBASW5wdXQoJ3AtbG9hZGluZycpIHNldCBsb2FkaW5nKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fbG9hZGluZyA9IGNvbnZlcnRUb0Jvb2xlYW4odmFsdWUpO1xuICB9XG5cbiAgZ2V0IGxvYWRpbmcoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2xvYWRpbmc7XG4gIH1cblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBWYWxvciBkbyBtb2RlbG8gZG8gY2FtcG8gZGUgbG9naW4uXG4gICAqL1xuICBASW5wdXQoJ3AtbG9naW4nKSBzZXQgbG9naW4odmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuX2xvZ2luID0gdmFsdWU7XG5cbiAgICBpZiAoIXRoaXMuYXV0aGVudGljYXRpb25VcmwpIHtcbiAgICAgIHRoaXMubG9naW5DaGFuZ2UuZW1pdCh0aGlzLl9sb2dpbik7XG4gICAgfVxuICB9XG5cbiAgZ2V0IGxvZ2luKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX2xvZ2luO1xuICB9XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogQXRyaWJ1dG8gcXVlIHJlY2ViZSB1bWEgbGlzdGEgZGUgZXJyb3MgZSBleGliZSBhYmFpeG8gZG8gY2FtcG8gZGUgbG9naW4uXG4gICAqL1xuICBASW5wdXQoJ3AtbG9naW4tZXJyb3JzJykgc2V0IGxvZ2luRXJyb3JzKHZhbHVlOiBBcnJheTxzdHJpbmc+KSB7XG4gICAgdGhpcy5fbG9naW5FcnJvcnMgPSB2YWx1ZSB8fCBbXTtcbiAgICB0aGlzLnNldExvZ2luRXJyb3JzKHRoaXMuX2xvZ2luRXJyb3JzKTtcbiAgfVxuICBnZXQgbG9naW5FcnJvcnMoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2xvZ2luRXJyb3JzO1xuICB9XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogQXRyaWJ1dG8gcXVlIHJlY2ViZSB1bWEgbGlzdGEgZGUgZXJyb3MgZSBleGliZSBhYmFpeG8gZG8gY2FtcG8gZGUgcGFzc3dvcmQuXG4gICAqL1xuICBASW5wdXQoJ3AtcGFzc3dvcmQtZXJyb3JzJykgc2V0IHBhc3N3b3JkRXJyb3JzKHZhbHVlOiBBcnJheTxzdHJpbmc+KSB7XG4gICAgdGhpcy5fcGFzc3dvcmRFcnJvcnMgPSB2YWx1ZSB8fCBbXTtcbiAgICB0aGlzLnNldFBhc3N3b3JkRXJyb3JzKHRoaXMuX3Bhc3N3b3JkRXJyb3JzKTtcbiAgfVxuICBnZXQgcGFzc3dvcmRFcnJvcnMoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3Bhc3N3b3JkRXJyb3JzO1xuICB9XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogRXhpYmUgdW0gbGluayBhYmFpeG8gZG8gZm9ybXVsw6FyaW8gZGUgbG9naW4gcGFyYSBxdWUgb3MgdXN1w6FyaW9zIGRhIGFwbGljYcOnw6NvIGZhw6dhbSBhIHJlY3VwZXJhw6fDo28gZG9zIGRhZG9zIGRlIGF1dGVudGljYcOnw6NvLlxuICAgKlxuICAgKiBBIHByb3ByaWVkYWRlIGFjZWl0YSBvcyBzZWd1aW50ZXMgdGlwb3M6XG4gICAqXG4gICAqIC0gKipTdHJpbmcqKjogaW5mb3JtZSB1bWEgdXJsIGV4dGVybmEgb3UgdW1hIHJvdGEgdsOhbGlkYTtcbiAgICogLSAqKkZ1bmN0aW9uKio6IHBvZGUtc2UgY3VzdG9taXphciBhIGHDp8Ojby4gUGFyYSBlc3RhIHBvc3NpbGlkYWRlIGJhc3RhIGF0cmlidWlyOlxuICAgKiBgYGBcbiAgICogPHBvLXBhZ2UtbG9naW4+XG4gICAqICAgW3JlY292ZXJ5XT1cInRoaXMubXlSZWNvdmVyeS5iaW5kKHRoaXMpXCI+XG4gICAqIDwvcG8tcGFnZS1sb2dpbj5cbiAgICogYGBgXG4gICAqXG4gICAqIC0gKipQb1BhZ2VMb2dpblJlY292ZXJ5Kio6IGNyaWEtc2UgdsOtbmN1bG8gYXV0b23DoXRpY28gY29tIG8gdGVtcGxhdGUgKipwby1tb2RhbC1wYXNzd29yZC1yZWNvdmVyeSoqLlxuICAgKiAgIE8gb2JqZXRvIGRldmUgY29udGVyIGEgKip1cmwqKiBwYXJhIHJlcXVpc2nDp8OjbyBkb3MgcmVjdXJzb3MgZSBwb2RlLXNlIGRlZmluaXIgbyAqKnRpcG8qKiBkZSBtb2RhbCBwYXJhIHJlY3VwZXJhw6fDo28gZGUgc2VuaGEsXG4gICAqICAgKiplbWFpbCoqIHBhcmEgY29udGF0byBlICoqbcOhc2NhcmEqKiBkbyBjYW1wbyBkZSB0ZWxlZm9uZS5cbiAgICovXG4gIEBJbnB1dCgncC1yZWNvdmVyeScpIHNldCByZWNvdmVyeSh2YWx1ZTogc3RyaW5nIHwgRnVuY3Rpb24gfCBQb1BhZ2VMb2dpblJlY292ZXJ5KSB7XG4gICAgdGhpcy5fcmVjb3ZlcnkgPSB2YWx1ZTtcbiAgfVxuXG4gIGdldCByZWNvdmVyeSgpIHtcbiAgICByZXR1cm4gdGhpcy5fcmVjb3Zlcnk7XG4gIH1cblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBDYXNvIGEgYXBsaWNhw6fDo28gdGVuaGEgdW0gbGluayBwYXJhIG5vdm9zIGNhZGFzdHJvcywgaW5mb3JtZSB1bWEgdXJsIGV4dGVybmEgb3UgdW1hIHJvdGEgdsOhbGlkYSwgZGVzc2FcbiAgICogZm9ybWEgc2Vyw6EgZXhpYmlkbyB1bSBsaW5rIGFiYWl4byBkbyBmb3JtdWzDoXJpbyBkZSBsb2dpbiBwYXJhIG9zIHVzdcOhcmlvcyBkYSBhcGxpY2HDp8Ojby5cbiAgICpcbiAgICogRXhlbXBsb3MgZGUgdmFsb3JlcyB2w6FsaWRvczpcbiAgICogLSAqKmxvY2FsKio6IGAvaG9tZWBcbiAgICogLSAqKnVybCBleHRlcm5hKio6IGBodHRwczovL3BvLXVpLmlvYFxuICAgKlxuICAgKiA+IFZlamEgYSBwcm9wcmllZGFkZSBgcC1saXRlcmFsc2AgcGFyYSBjdXN0b21pemFyIGEgbGl0ZXJhbCBgcmVnaXN0ZXJVcmxgLlxuICAgKi9cbiAgQElucHV0KCdwLXJlZ2lzdGVyLXVybCcpIHNldCByZWdpc3RlclVybCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5fcmVnaXN0ZXJVcmwgPSBpc1R5cGVvZih2YWx1ZSwgJ3N0cmluZycpID8gdmFsdWUgOiB1bmRlZmluZWQ7XG4gIH1cblxuICBnZXQgcmVnaXN0ZXJVcmwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fcmVnaXN0ZXJVcmw7XG4gIH1cblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBBdHJpYnV0byBxdWUgcmVjZWJlIG8gdGlwbyBkZSBlc3F1ZW1hIGRhIGF1dGVudGljYcOnw6NvLCBzZW5kbyBzdXBvcnRhZG9zIGFwZW5hcyBvcyB2YWxvcmVzIGBCYXNpY2AgZSBgQmVhcmVyYC5cbiAgICpcbiAgICogPiBDYXNvIG8gdGlwbyBkZWZpbmlkbyBzZWphIGBCYXNpY2AsIG8gY29tcG9uZW50ZSBmYXLDoSB1bWEgcmVxdWlzacOnw6NvIGBQT1NUYCBjb250ZW5kbzpcbiAgICpcbiAgICogYGBgXG4gICAqIGhlYWRlcnMge1xuICAgKiAgQXV0aG9yaXphdGlvbjogQmFzaWMgYmFzZTY0KGxvZ2luOnBhc3N3b3JkKVxuICAgKiB9XG4gICAqXG4gICAqIGJvZHkge1xuICAgKiAgcmVtZW1iZXJVc2VyOiByZW1lbWJlclVzZXJcbiAgICogfVxuICAgKiBgYGBcbiAgICpcbiAgICogPiBDYXNvIG8gdGlwbyBkZWZpbmlkbyBzZWphIGBCZWFyZXJgLCBvIGNvbXBvbmVudGUgZmFyw6EgdW1hIHJlcXVpc2nDp8OjbyBgUE9TVGAgY29udGVuZG86XG4gICAqXG4gICAqIGBgYFxuICAgKiBib2R5IHtcbiAgICogIGxvZ2luOiBsb2dpbixcbiAgICogIHBhc3N3b3JkOiBiYXNlNjQocGFzc3dvcmQpLFxuICAgKiAgcmVtZW1iZXJVc2VyOiByZW1lbWJlclVzZXJcbiAgICogfVxuICAgKiBgYGBcbiAgICpcbiAgICogQGRlZmF1bHQgYFBvUGFnZUxvZ2luQXV0aGVudGljYXRpb25UeXBlLkJhc2ljYFxuICAgKi9cbiAgQElucHV0KCdwLWF1dGhlbnRpY2F0aW9uLXR5cGUnKSBzZXQgYXV0aGVudGljYXRpb25UeXBlKHZhbHVlOiBQb1BhZ2VMb2dpbkF1dGhlbnRpY2F0aW9uVHlwZSkge1xuICAgIHRoaXMuX2F1dGhlbnRpY2F0aW9uVHlwZSA9ICg8YW55Pk9iamVjdCkudmFsdWVzKFBvUGFnZUxvZ2luQXV0aGVudGljYXRpb25UeXBlKS5pbmNsdWRlcyh2YWx1ZSlcbiAgICAgID8gdmFsdWVcbiAgICAgIDogUG9QYWdlTG9naW5BdXRoZW50aWNhdGlvblR5cGUuQmFzaWM7XG4gIH1cblxuICBnZXQgYXV0aGVudGljYXRpb25UeXBlKCk6IFBvUGFnZUxvZ2luQXV0aGVudGljYXRpb25UeXBlIHtcbiAgICByZXR1cm4gdGhpcy5fYXV0aGVudGljYXRpb25UeXBlO1xuICB9XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogRW5kcG9pbnQgdXNhZG8gcGVsbyB0ZW1wbGF0ZSBwYXJhIHJlcXVpc2nDp8OjbyBkbyByZWN1cnNvLiBRdWFuZG8gcHJlZW5jaGlkbywgbyBtw6l0b2RvIGBwLWxvZ2luLXN1Ym1pdGAgc2Vyw6EgaWdub3JhZG8gZSBvXG4gICAqIGNvbXBvbmVudGUgYWRxdWlyaXLDoSBhdXRvbWF0aXphw6fDo28gcGFyYSBvIHByb2Nlc3NvIGRlIGF1dGVudGljYcOnw6NvLlxuICAgKlxuICAgKiAjIyMgUHJvY2Vzc29zXG4gICAqIEFvIGRpZ2l0YXIgdW0gdmFsb3IgdsOhbGlkbyBubyBjYW1wbyBkZSBsb2dpbi9wYXNzd29yZCBlIHByZXNzaW9uYXIgKipFbnRlcioqLCBvIGNvbXBvbmVudGUgZmFyw6EgdW1hIHJlcXVpc2nDp8OjbyBgUE9TVGBcbiAgICogbmEgdXJsIGVzcGVjaWZpY2FkYSBuZXN0YSBwcm9wcmllZGFkZSBwYXNzYW5kbyBvIG9iamV0byBjb250ZW5kbyBvIHZhbG9yIGRlZmluaWRvIHBlbG8gdXN1w6FyaW86XG4gICAqXG4gICAqIGBgYFxuICAgKiBoZWFkZXJzIHtcbiAgICogIEF1dGhvcml6YXRpb246IEJhc2ljIGJhc2U2NChsb2dpbjpwYXNzd29yZClcbiAgICogfVxuICAgKlxuICAgKiBib2R5IHtcbiAgICogIHJlbWVtYmVyVXNlcjogcmVtZW1iZXJVc2VyXG4gICAqIH1cbiAgICogYGBgXG4gICAqXG4gICAqIEVtIGNhc28gZGUgKipzdWNlc3NvKiosIG8gb2JqZXRvIGRlIHJldG9ybm8gw6kgYXJtYXplbmFkbyBubyBgc2Vzc2lvblN0b3JhZ2VgIGUgbyB1c3XDoXJpbyDDqSByZWRpcmVjaW9uYWRvIHBhcmEgYSBww6FnaW5hIGluaWNpYWwgZGFcbiAgICogYXBsaWNhw6fDo28gYC9gLlxuICAgKlxuICAgKiBgYGBcbiAgICogMjAwOlxuICAgKiAge1xuICAgKiAgICB1c2VyOiB1c2VyXG4gICAqICB9XG4gICAqIGBgYFxuICAgKlxuICAgKiBFbSBjYXNvIGRlICoqZXJybyoqIG5hIGF1dGVudGljYcOnw6NvLCBlc3BlcmEtc2UgbyBzZWd1aW50ZSByZXRvcm5vOlxuICAgKlxuICAgKiBgYGBcbiAgICogNDAwLzQwMVxuICAgKiAge1xuICAgKiAgICBjb2RlOiA0MDAvNDAxLFxuICAgKiAgICBtZXNzYWdlOiBtZXNzYWdlLFxuICAgKiAgICBkZXRhaWxlZE1lc3NhZ2U6IGRldGFpbGVkTWVzc2FnZSxcbiAgICogICAgaGVscFVybD86IGhlbHBVcmxcbiAgICogIH1cbiAgICogYGBgXG4gICAqXG4gICAqID4gUG9kZS1zZSBhdHJpYnVpciB1bWEgcXVhbnRpZGFkZSBtw6F4aW1hIGRlIHRlbnRhdGl2YXMgcmVzdGFudGVzIChtYXhBdHRlbXB0c1JlbWFpbmluZykgcGFyYSBvIGF0cmlidXRvIGBwLWV4Y2VlZGVkLWF0dGVtcHRzLXdhcm5pbmdgLFxuICAgKiBhc3NpbSBjb21vIG9zIGF2aXNvcyByZWxhY2lvbmFkb3MgYW9zIGNhbXBvcyBsb2dpbiBlIHBhc3N3b3JkIChsb2dpbldhcm5pbmdzLCBwYXNzd29yZFdhcm5pbmdzKSBwYXJhIG9zIGF0cmlidXRvcyBgcC1sb2dpbi1lcnJvcnNgIGVcbiAgICogYHAtcGFzc3dvcmQtZXJyb3JzYCBjb25mb3JtZSByZXRvcm5vIGFiYWl4bzpcbiAgICpcbiAgICogYGBgXG4gICAqIDQwMFxuICAgKiAge1xuICAgKiAgICBjb2RlOiA0MDAvNDAxLFxuICAgKiAgICBtZXNzYWdlOiBtZXNzYWdlLFxuICAgKiAgICBkZXRhaWxlZE1lc3NhZ2U6IGRldGFpbGVkTWVzc2FnZSxcbiAgICogICAgaGVscFVybD86IGhlbHBVcmwsXG4gICAqICAgIG1heEF0dGVtcHRzUmVtYWluaW5nPzogbWF4QXR0ZW1wdHNSZW1haW5pbmcsXG4gICAqICAgIGxvZ2luV2FybmluZ3M/OiBbbG9naW5XYXJuaW5nc10sXG4gICAqICAgIHBhc3N3b3JkV2FybmluZ3M/OiBbcGFzc3dvcmRXYXJuaW5nc11cbiAgICogIH1cbiAgICogYGBgXG4gICAqXG4gICAqID4gQ2FzbyBvIHZhbG9yIGF0cmlidcOtZG8gcGFyYSBgcC1leGNlZWRlZC1hdHRlbXB0cy13YXJuaW5nYCBzZWphIGlndWFsIGEgMCh6ZXJvKSwgcG9kZXLDoSBzZXIgcGFzc2FkbyB1bSB2YWxvciBwYXJhIG9cbiAgICogYXRyaWJ1dG8gYHAtYmxvY2tlZC11cmxgIGUgbyB1c3XDoXJpbyBzZXLDoSByZWRpcmVjaW9uYWRvIHBhcmEgdW1hIHRlbGEgZGUgYmxvcXVlaW8uXG4gICAqXG4gICAqICpQcm9jZXNzbyBmaW5hbGl6YWRvLipcbiAgICpcbiAgICogX19fX19fX19fX19fX19fXG4gICAqXG4gICAqICMjIyMgUHJhdGljaWRhZGVcbiAgICogQXMgaW5mb3JtYcOnw7VlcyBkbyBzZXJ2acOnbyBkZSBhdXRlbnRpY2HDp8OjbyB0YW1iw6ltIHBvZGVtIHNlciB0cmFuc21pdGlkYXMgZGlyZXRhbWVudGUgcGVsYXMgY29uZmlndXJhw6fDo29zIGRlIHJvdGEgZSwgZGVzdGEgbWFuZWlyYSxcbiAgICogZGlzcGVuc2Etc2UgcXVhbHF1ZXIgbWVuw6fDo28gZS9vdSBpbXBvcnRhw6fDo28gZG8gY29tcG9uZW50ZSBgcG8tcGFnZS1sb2dpbmAgbm8gcmVzdGFudGUgZGEgYXBsaWNhw6fDo28uIE8gZXhlbXBsbyBhYmFpeG8gZXhlbXBsaWZpY2FcbiAgICogYSBmb3JtYSBkaW7Dom1pY2EgY29tIGEgcXVhbCBvIHRlbXBsYXRlIGRlIHRlbGEgZGUgbG9naW4gcG9kZSBzZXIgZ2VyYWRvIGFvIG5hdmVnYXIgcGFyYSByb3RhIGAvbG9naW5gLCBlIHRhbWLDqW0gY29tbyBlbGUgc2UgY29tdW5pY2FcbiAgICogY29tIG8gc2VydmnDp28gcGFyYSBlZmV0dWHDp8OjbyBkbyBwcm9jZXNzbyBkZSBhdXRlbnRpY2HDp8OjbyBkbyB1c3XDoXJpbyBlIHNvbGljaXRhw6fDo28gZGUgbm92YSBzZW5oYS5cbiAgICogQmFzdGEgZGVmaW5pciBuYXMgY29uZmlndXJhw6fDtWVzIGRlIHJvdGE6XG4gICAqXG4gICAqXG4gICAqIGBgYFxuICAgKiAgIGltcG9ydCB7IFBvUGFnZUxvZ2luQ29tcG9uZW50LCBQb1BhZ2VMb2dpbkF0aGVudGljYXRpb25UeXBlIH0gZnJvbSAnQHBvLXVpL25nLXRlbXBsYXRlcyc7XG4gICAqXG4gICAqICAgLi4uXG4gICAqICAgY29uc3Qgcm91dGVzOiBSb3V0ZXMgPSBbXG4gICAqICAgICB7XG4gICAqICAgICAgIHBhdGg6ICdsb2dpbicsIGNvbXBvbmVudDogUG9QYWdlTG9naW5Db21wb25lbnQsIGRhdGE6IHtcbiAgICogICAgICAgICBzZXJ2aWNlQXBpOiAnaHR0cHM6Ly9wby11aS5pby9zYW1wbGUvYXBpL3VzZXJzL2F1dGhlbnRpY2F0aW9uJyxcbiAgICogICAgICAgICBlbnZpcm9ubWVudDogJ2RldmVsb3BtZW50JyxcbiAgICogICAgICAgICByZWNvdmVyeToge1xuICAgKiAgICAgICAgICAgdXJsOiAnaHR0cHM6Ly9wby11aS5pby9zYW1wbGUvYXBpL3VzZXJzJyxcbiAgICogICAgICAgICAgIHR5cGU6IFBvTW9kYWxQYXNzd29yZFJlY292ZXJ5VHlwZS5BbGwsXG4gICAqICAgICAgICAgICBjb250YWN0TWFpbDogJ2Rldi5wb0Bwby11aS5jb20nLFxuICAgKiAgICAgICAgICAgcGhvbmVNYXNrOiAnOS05OTktOTk5LTk5OTknXG4gICAqICAgICAgICAgfSxcbiAgICogICAgICAgICByZWdpc3RlclVybDogJy9uZXctcGFzc3dvcmQnLFxuICAgKiAgICAgICAgIGF1dGhlbnRpY2F0aW9uVHlwZTogUG9QYWdlTG9naW5BdGhlbnRpY2F0aW9uVHlwZS5CYXNpY1xuICAgKiAgICAgICB9XG4gICAqICAgICB9XG4gICAqICAgICAuLi5cbiAgICogICBdO1xuICAgKlxuICAgKiAgIEBOZ01vZHVsZSh7XG4gICAqICAgICBpbXBvcnRzOiBbUm91dGVyTW9kdWxlLmZvclJvb3Qocm91dGVzKV0sXG4gICAqICAgICBleHBvcnRzOiBbUm91dGVyTW9kdWxlXVxuICAgKiAgIH0pXG4gICAqICAgZXhwb3J0IGNsYXNzIEFwcFJvdXRpbmdNb2R1bGUgeyB9XG4gICAqIGBgYFxuICAgKlxuICAgKlxuICAgKiBPIG1ldGFkYWRvIGBzZXJ2aWNlQXBpYCBkZXZlIHNlciBhICoqdXJsKiogcGFyYSByZXF1aXNpw6fDo28gZG9zIHJlY3Vyc29zIGRlIGF1dGVudGljYcOnw6NvLCBvIGBlbnZpcm9ubWVudGAgYWxpbWVudGEgYSBwcm9wcmllZGFkZVxuICAgKiBgcC1lbnZpcm9ubWVudGAsIGByZWNvdmVyeWAgw6kgYSBpbnRlcmZhY2UgYFBvUGFnZUxvZ2luUmVjb3ZlcnlgIHJlc3BvbnPDoXZlbCBwZWxhcyBlc3BlY2lmaWNhw6fDtWVzIGNvbnRpZGFzIG5hIG1vZGFsIGRlIHJlY3VwZXJhw6fDo28gZGVcbiAgICogc2VuaGEsIGByZWdpc3RlclVybGAgYWxpbWVudGEgYSBwcm9wcmllZGFkZSBgcC1yZWdpc3Rlci11cmxgIGUgYGF1dGhlbnRpY2F0aW9uVHlwZWAgcXVlIGRlZmluZSBhIHByb3ByaWVkYWRlIGBwLWF1dGhlbnRpY2F0aW9uLXR5cGVgLlxuICAgKlxuICAgKiA+IMOJIGVzc2VuY2lhbCBxdWUgc2lnYSBhIG5vbWVuY2xhdHVyYSBkb3MgYXRyaWJ1dG9zIGV4ZW1wbGlmaWNhZG9zIGFjaW1hIHBhcmEgc3VhIGVmZXRpdmEgZnVuY2lvbmFsaWRhZGUuXG4gICAqXG4gICAqL1xuICBASW5wdXQoJ3AtYXV0aGVudGljYXRpb24tdXJsJykgc2V0IGF1dGhlbnRpY2F0aW9uVXJsKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9hdXRoZW50aWNhdGlvblVybCA9IGlzVHlwZW9mKHZhbHVlLCAnc3RyaW5nJykgPyB2YWx1ZSA6IHVuZGVmaW5lZDtcbiAgfVxuXG4gIGdldCBhdXRoZW50aWNhdGlvblVybCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9hdXRoZW50aWNhdGlvblVybDtcbiAgfVxuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIENhc28gbyB2YWxvciBhdHJpYnXDrWRvIHBhcmEgYHAtZXhjZWVkZWQtYXR0ZW1wdHMtd2FybmluZ2Agc2VqYSBpZ3VhbCBhIDAoemVybykgZSBhIGFwbGljYcOnw6NvIHRlbmhhIHVtIGxpbmsgZGUgYmxvcXVlaW8gZGUgdXN1w6FyaW8sXG4gICAqIGluZm9ybWUgdW1hIHVybCBleHRlcm5hIG91IHVtYSByb3RhIHbDoWxpZGEsIGRlc3NhIGZvcm1hIGVtIGNhc28gZGUgYmxvcXVlaW8gbyB1c3XDoXJpbyBzZXLDoSByZWRpcmVjaW9uYWRvLlxuICAgKi9cbiAgQElucHV0KCdwLWJsb2NrZWQtdXJsJykgc2V0IGJsb2NrZWRVcmwodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuX2Jsb2NrZWRVcmwgPSBpc1R5cGVvZih2YWx1ZSwgJ3N0cmluZycpID8gdmFsdWUgOiB1bmRlZmluZWQ7XG4gIH1cblxuICBnZXQgYmxvY2tlZFVybCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9ibG9ja2VkVXJsO1xuICB9XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogRXhpYmUgdW0gYm90w6NvIHBhcmEgc3Vwb3J0ZS5cbiAgICpcbiAgICogQSBwcm9wcmllZGFkZSBhY2VpdGEgb3Mgc2VndWludGVzIHRpcG9zOlxuICAgKlxuICAgKiAtICoqU3RyaW5nKio6IFVSTCBleHRlcm5hIG91IHVtYSByb3RhIHbDoWxpZGE7XG4gICAqIC0gKipGdW5jdGlvbioqOiBGdW7Dp8OjbyBhIHNlciBkaXNwYXJhZGEgYW8gY2xpY2FyIG5vIGJvdMOjbyBkZSBzdXBvcnRlO1xuICAgKiBgYGBcbiAgICogPHBvLXBhZ2UtbG9naW4+XG4gICAqICAgW3Atc3VwcG9ydF09XCJ0aGlzLm15U3VwcG9ydC5iaW5kKHRoaXMpXCI+XG4gICAqIDwvcG8tcGFnZS1sb2dpbj5cbiAgICogYGBgXG4gICAqXG4gICAqL1xuICBASW5wdXQoJ3Atc3VwcG9ydCcpIHNldCBzdXBwb3J0KHZhbHVlOiBzdHJpbmcgfCBGdW5jdGlvbikge1xuICAgIHRoaXMuX3N1cHBvcnQgPSB2YWx1ZTtcbiAgfVxuXG4gIGdldCBzdXBwb3J0KCkge1xuICAgIHJldHVybiB0aGlzLl9zdXBwb3J0O1xuICB9XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogQ29sZcOnw6NvIGRlIGlkaW9tYXMgcXVlIG8gY29tcG9uZW50ZSBpcsOhIHRyYXRhciBlIGRpc3BvbmliaWxpemFyw6EgcGFyYSBvIHVzdcOhcmlvIGVzY29saGVyLlxuICAgKlxuICAgKiBDYXNvIGVzc2EgcHJvcHJpZWRhZGUgbsOjbyBzZWphIHV0aWxpemFkYSBvIGNvbXBvbmVudGUgbW9zdHJhcsOhIG5vIGNvbWJvIG9zIGlkaW9tYXMgcXVlIGVsZSBzdXBvcnRhIHBvciBwYWRyw6NvLlxuICAgKlxuICAgKiBDYXNvIGEgY29sZcOnw6NvIHRlbmhhIHVtIGlkaW9tYSwgYSBww6FnaW5hIGVzdGFyw6EgbmVzc2UgaWRpb21hIGUgbsOjbyBtb3N0cmFyw6EgbyBjb21iby5cbiAgICpcbiAgICogQ2FzbyBzZWphIHBhc3NhZG8gdW0gYXJyYXkgdmF6aW8sIGEgcMOhZ2luYSB0ZXLDoSBvIGlkaW9tYSBjb25maWd1cmFkbyBubyBgaTE4bmAgZSBuw6NvIG1vc3RyYXLDoSBvIGNvbWJvIGRlIHNlbGXDp8Ojby5cbiAgICpcbiAgICogPiBTZSBmb3IgcGFzc2FkbyB1bSBpZGlvbWEgbsOjbyBzdXBvcnRhZG8sIHNlcsOhIHByZWNpc28gcGFzc2FyIGFzIGxpdGVyYWlzIHBlbGEgcHJvcHJpZWRhZGUgYHAtbGl0ZXJhbHNgLlxuICAgKlxuICAgKlxuICAgKi9cbiAgQElucHV0KCdwLWxhbmd1YWdlcycpIHNldCBsYW5ndWFnZXNMaXN0KGxhbmd1YWdlc0xpc3Q6IEFycmF5PFBvTGFuZ3VhZ2U+KSB7XG4gICAgaWYgKGxhbmd1YWdlc0xpc3QpIHtcbiAgICAgIGlmIChsYW5ndWFnZXNMaXN0Lmxlbmd0aCkge1xuICAgICAgICB0aGlzLl9sYW5ndWFnZXNMaXN0ID0gbGFuZ3VhZ2VzTGlzdDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuX2xhbmd1YWdlc0xpc3QgPSBwb0xhbmd1YWdlRGVmYXVsdC5maWx0ZXIobGFuZ3VhZ2UgPT4gbGFuZ3VhZ2UubGFuZ3VhZ2UgPT09IHRoaXMubGFuZ3VhZ2UpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGdldCBsYW5ndWFnZXNMaXN0KCk6IEFycmF5PFBvTGFuZ3VhZ2U+IHtcbiAgICBpZiAodGhpcy5fbGFuZ3VhZ2VzTGlzdCkge1xuICAgICAgcmV0dXJuIHRoaXMuX2xhbmd1YWdlc0xpc3Q7XG4gICAgfVxuICAgIHJldHVybiBwb0xhbmd1YWdlRGVmYXVsdDtcbiAgfVxuXG4gIGdldCBzaG93TGFuZ3VhZ2UoKSB7XG4gICAgcmV0dXJuIHRoaXMubGFuZ3VhZ2VzTGlzdC5sZW5ndGggPiAxO1xuICB9XG5cbiAgZ2V0IGxhbmd1YWdlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRMYW5ndWFnZSB8fCBnZXRTaG9ydEJyb3dzZXJMYW5ndWFnZSgpO1xuICB9XG5cbiAgZ2V0IHBhZ2VMb2dpbkxpdGVyYWxzKCk6IFBvUGFnZUxvZ2luTGl0ZXJhbHMge1xuICAgIGNvbnN0IGxvZ2luSGludFdpdGhDb250YWN0RW1haWwgPSB0aGlzLmNvbnRhY3RFbWFpbFxuICAgICAgPyB0aGlzLmNvbmNhdGVuYXRlTG9naW5IaW50V2l0aENvbnRhY3RFbWFpbCh0aGlzLmNvbnRhY3RFbWFpbClcbiAgICAgIDogdW5kZWZpbmVkO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnBvUGFnZUxvZ2luTGl0ZXJhbHNEZWZhdWx0W3BvTG9jYWxlRGVmYXVsdF0sXG4gICAgICAuLi5wb1BhZ2VMb2dpbkxpdGVyYWxzRGVmYXVsdFt0aGlzLmxhbmd1YWdlXSxcbiAgICAgIC4uLmxvZ2luSGludFdpdGhDb250YWN0RW1haWwsXG4gICAgICAuLi50aGlzLmxpdGVyYWxzXG4gICAgfTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgbG9naW5TZXJ2aWNlOiBQb1BhZ2VMb2dpblNlcnZpY2UsXG4gICAgcHVibGljIHJvdXRlcjogUm91dGVyLFxuICAgIHB1YmxpYyBwb0xhbmd1YWdlU2VydmljZTogUG9MYW5ndWFnZVNlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5zZWxlY3RlZExhbmd1YWdlID0gdGhpcy5wb0xhbmd1YWdlU2VydmljZS5nZXRTaG9ydExhbmd1YWdlKCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICBpZiAodGhpcy5sb2dpblN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5sb2dpblN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxuXG4gIGNsb3NlUG9wb3ZlcigpIHtcbiAgICB0aGlzLnNob3dFeGNlZWRlZEF0dGVtcHRzV2FybmluZyA9IGZhbHNlO1xuICB9XG5cbiAgb25Mb2dpblN1Ym1pdCgpOiB2b2lkIHtcbiAgICBjb25zdCBsb2dpbkZvcm06IFBvUGFnZUxvZ2luID0ge1xuICAgICAgbG9naW46IHRoaXMubG9naW4sXG4gICAgICBwYXNzd29yZDogdGhpcy5wYXNzd29yZCxcbiAgICAgIHJlbWVtYmVyVXNlcjogdGhpcy5yZW1lbWJlclVzZXJcbiAgICB9O1xuXG4gICAgaWYgKHRoaXMuY3VzdG9tRmllbGQpIHtcbiAgICAgIGxvZ2luRm9ybVt0aGlzLmN1c3RvbUZpZWxkT2JqZWN0LnByb3BlcnR5XSA9IHRoaXMuY3VzdG9tRmllbGRPYmplY3QudmFsdWU7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuYXV0aGVudGljYXRpb25VcmwpIHtcbiAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7XG4gICAgICB0aGlzLmxvZ2luU3Vic2NyaXB0aW9uID0gdGhpcy5sb2dpblNlcnZpY2VcbiAgICAgICAgLm9uTG9naW4odGhpcy5hdXRoZW50aWNhdGlvblVybCwgdGhpcy5hdXRoZW50aWNhdGlvblR5cGUsIGxvZ2luRm9ybSlcbiAgICAgICAgLnN1YnNjcmliZShcbiAgICAgICAgICBkYXRhID0+IHtcbiAgICAgICAgICAgIHRoaXMuc2V0VmFsdWVzVG9Qcm9wZXJ0aWVzKCk7XG4gICAgICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKCdQT19VU0VSX0xPR0lOJywgSlNPTi5zdHJpbmdpZnkoZGF0YSkpO1xuICAgICAgICAgICAgdGhpcy5vcGVuSW50ZXJuYWxMaW5rKCcvJyk7XG4gICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIGVycm9yID0+IHtcbiAgICAgICAgICAgIGlmIChlcnJvci5lcnJvci5jb2RlID09PSAnNDAwJyB8fCBlcnJvci5lcnJvci5jb2RlID09PSAnNDAxJykge1xuICAgICAgICAgICAgICB0aGlzLnNldFZhbHVlc1RvUHJvcGVydGllcyhlcnJvcik7XG4gICAgICAgICAgICAgIHRoaXMucmVkaXJlY3RCbG9ja2VkVXJsKHRoaXMuZXhjZWVkZWRBdHRlbXB0c1dhcm5pbmcsIHRoaXMuYmxvY2tlZFVybCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubG9naW5TdWJtaXQuZW1pdChsb2dpbkZvcm0pO1xuICAgICAgdGhpcy5zaG93RXhjZWVkZWRBdHRlbXB0c1dhcm5pbmcgPSB0aGlzLmV4Y2VlZGVkQXR0ZW1wdHNXYXJuaW5nID4gMDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldERlZmF1bHRDdXN0b21GaWVsZE9iamVjdChwcm9wZXJ0eSk6IFBvUGFnZUxvZ2luQ3VzdG9tRmllbGQge1xuICAgIHJldHVybiB7IHByb3BlcnR5IH07XG4gIH1cblxuICBwcml2YXRlIG9wZW5FeHRlcm5hbExpbmsodXJsOiBzdHJpbmcpIHtcbiAgICB3aW5kb3cub3Blbih1cmwsICdfYmxhbmsnKTtcbiAgfVxuXG4gIHByaXZhdGUgb3BlbkludGVybmFsTGluayh1cmw6IHN0cmluZykge1xuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFt1cmxdKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVkaXJlY3RCbG9ja2VkVXJsKGF0dGVtcHRzOiBudW1iZXIsIGJsb2NrZWRVcmw6IHN0cmluZykge1xuICAgIGlmIChhdHRlbXB0cyA9PT0gMCAmJiBibG9ja2VkVXJsKSB7XG4gICAgICB0aGlzLnNob3dFeGNlZWRlZEF0dGVtcHRzV2FybmluZyA9IGZhbHNlO1xuICAgICAgaXNFeHRlcm5hbExpbmsoYmxvY2tlZFVybCkgPyB0aGlzLm9wZW5FeHRlcm5hbExpbmsoYmxvY2tlZFVybCkgOiB0aGlzLm9wZW5JbnRlcm5hbExpbmsoYmxvY2tlZFVybCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzZXRWYWx1ZXNUb1Byb3BlcnRpZXMocmVzdWx0Pykge1xuICAgIGlmIChyZXN1bHQpIHtcbiAgICAgIHRoaXMuZXhjZWVkZWRBdHRlbXB0c1dhcm5pbmcgPSByZXN1bHQuZXJyb3IubWF4QXR0ZW1wdHNSZW1haW5pbmc7XG4gICAgICB0aGlzLmxvZ2luRXJyb3JzID0gcmVzdWx0LmVycm9yLmxvZ2luV2FybmluZ3M7XG4gICAgICB0aGlzLnBhc3N3b3JkRXJyb3JzID0gcmVzdWx0LmVycm9yLnBhc3N3b3JkV2FybmluZ3M7XG4gICAgICB0aGlzLmJsb2NrZWRVcmwgPSByZXN1bHQuZXJyb3IuYmxvY2tlZFVybDtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5leGNlZWRlZEF0dGVtcHRzV2FybmluZyA9IDA7XG4gICAgICB0aGlzLmxvZ2luRXJyb3JzID0gW107XG4gICAgICB0aGlzLnBhc3N3b3JkRXJyb3JzID0gW107XG4gICAgICB0aGlzLmJsb2NrZWRVcmwgPSAnJztcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgYWJzdHJhY3QgY29uY2F0ZW5hdGVMb2dpbkhpbnRXaXRoQ29udGFjdEVtYWlsKGNvbnRhY3RFbWFpbDogc3RyaW5nKTtcblxuICBwcm90ZWN0ZWQgYWJzdHJhY3Qgc2V0TG9naW5FcnJvcnModmFsdWU6IEFycmF5PHN0cmluZz4pOiB2b2lkO1xuXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBzZXRQYXNzd29yZEVycm9ycyh2YWx1ZTogQXJyYXk8c3RyaW5nPik6IHZvaWQ7XG59XG4iXX0=
|
|
@@ -9,31 +9,31 @@ function PoPageLoginPopoverComponent_div_17_a_1_Template(rf, ctx) { if (rf & 1)
|
|
|
9
9
|
i0.ɵɵtext(1);
|
|
10
10
|
i0.ɵɵelementEnd();
|
|
11
11
|
} if (rf & 2) {
|
|
12
|
-
const
|
|
13
|
-
i0.ɵɵproperty("routerLink",
|
|
12
|
+
const ctx_r0 = i0.ɵɵnextContext(2);
|
|
13
|
+
i0.ɵɵproperty("routerLink", ctx_r0.recovery);
|
|
14
14
|
i0.ɵɵadvance();
|
|
15
|
-
i0.ɵɵtextInterpolate1(" ",
|
|
15
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r0.literals == null ? null : ctx_r0.literals.iForgotMyPassword, " ");
|
|
16
16
|
} }
|
|
17
17
|
function PoPageLoginPopoverComponent_div_17_a_2_Template(rf, ctx) { if (rf & 1) {
|
|
18
18
|
i0.ɵɵelementStart(0, "a", 13);
|
|
19
19
|
i0.ɵɵtext(1);
|
|
20
20
|
i0.ɵɵelementEnd();
|
|
21
21
|
} if (rf & 2) {
|
|
22
|
-
const
|
|
23
|
-
i0.ɵɵproperty("href",
|
|
22
|
+
const ctx_r0 = i0.ɵɵnextContext(2);
|
|
23
|
+
i0.ɵɵproperty("href", ctx_r0.recovery, i0.ɵɵsanitizeUrl);
|
|
24
24
|
i0.ɵɵadvance();
|
|
25
|
-
i0.ɵɵtextInterpolate1(" ",
|
|
25
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r0.literals == null ? null : ctx_r0.literals.iForgotMyPassword, " ");
|
|
26
26
|
} }
|
|
27
27
|
function PoPageLoginPopoverComponent_div_17_a_3_Template(rf, ctx) { if (rf & 1) {
|
|
28
|
-
const
|
|
28
|
+
const _r2 = i0.ɵɵgetCurrentView();
|
|
29
29
|
i0.ɵɵelementStart(0, "a", 14);
|
|
30
|
-
i0.ɵɵlistener("click", function PoPageLoginPopoverComponent_div_17_a_3_Template_a_click_0_listener() { i0.ɵɵrestoreView(
|
|
30
|
+
i0.ɵɵlistener("click", function PoPageLoginPopoverComponent_div_17_a_3_Template_a_click_0_listener() { i0.ɵɵrestoreView(_r2); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.onForgotPasswordClick(ctx_r0.recovery)); });
|
|
31
31
|
i0.ɵɵtext(1);
|
|
32
32
|
i0.ɵɵelementEnd();
|
|
33
33
|
} if (rf & 2) {
|
|
34
|
-
const
|
|
34
|
+
const ctx_r0 = i0.ɵɵnextContext(2);
|
|
35
35
|
i0.ɵɵadvance();
|
|
36
|
-
i0.ɵɵtextInterpolate1(" ",
|
|
36
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r0.literals == null ? null : ctx_r0.literals.iForgotMyPassword, " ");
|
|
37
37
|
} }
|
|
38
38
|
function PoPageLoginPopoverComponent_div_17_Template(rf, ctx) { if (rf & 1) {
|
|
39
39
|
i0.ɵɵelementStart(0, "div", 8);
|
|
@@ -77,7 +77,7 @@ export class PoPageLoginPopoverComponent {
|
|
|
77
77
|
this.forgotPassword.emit(recovery);
|
|
78
78
|
}
|
|
79
79
|
static ɵfac = function PoPageLoginPopoverComponent_Factory(t) { return new (t || PoPageLoginPopoverComponent)(); };
|
|
80
|
-
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PoPageLoginPopoverComponent, selectors: [["po-page-login-popover"]], inputs: { literals: [
|
|
80
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PoPageLoginPopoverComponent, selectors: [["po-page-login-popover"]], inputs: { literals: [0, "p-literals", "literals"], recovery: [0, "p-recovery", "recovery"], remainingAttempts: [0, "p-remaining-attempts", "remainingAttempts"] }, outputs: { forgotPassword: "p-forgot-password" }, decls: 18, vars: 10, consts: [[1, "po-page-login-popover-container"], [1, "po-page-login-popover"], [1, "po-page-login-popover-arrow"], [1, "po-page-login-popover-content"], [1, "po-font-text-bold", "po-page-login-popover-title"], [1, "po-font-text"], [1, "po-font-text-bold", "po-page-login-popover-attempts"], ["class", "po-font-text-bold po-mt-1 po-page-login-popover-link-container", 4, "ngIf"], [1, "po-font-text-bold", "po-mt-1", "po-page-login-popover-link-container"], ["class", "po-page-login-popover-link", 3, "routerLink", 4, "ngIf"], ["class", "po-page-login-popover-link", "target", "_blank", 3, "href", 4, "ngIf"], ["class", "po-page-login-popover-link", 3, "click", 4, "ngIf"], [1, "po-page-login-popover-link", 3, "routerLink"], ["target", "_blank", 1, "po-page-login-popover-link", 3, "href"], [1, "po-page-login-popover-link", 3, "click"]], template: function PoPageLoginPopoverComponent_Template(rf, ctx) { if (rf & 1) {
|
|
81
81
|
i0.ɵɵelementStart(0, "div", 0)(1, "div", 1);
|
|
82
82
|
i0.ɵɵelement(2, "div", 2);
|
|
83
83
|
i0.ɵɵelementStart(3, "div", 3)(4, "p", 4);
|
|
@@ -134,4 +134,4 @@ export class PoPageLoginPopoverComponent {
|
|
|
134
134
|
args: ['p-forgot-password']
|
|
135
135
|
}] }); })();
|
|
136
136
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PoPageLoginPopoverComponent, { className: "PoPageLoginPopoverComponent", filePath: "lib/components/po-page-login/po-page-login-popover/po-page-login-popover.component.ts", lineNumber: 20 }); })();
|
|
137
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
137
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tcGFnZS1sb2dpbi1wb3BvdmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RlbXBsYXRlcy9zcmMvbGliL2NvbXBvbmVudHMvcG8tcGFnZS1sb2dpbi9wby1wYWdlLWxvZ2luLXBvcG92ZXIvcG8tcGFnZS1sb2dpbi1wb3BvdmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RlbXBsYXRlcy9zcmMvbGliL2NvbXBvbmVudHMvcG8tcGFnZS1sb2dpbi9wby1wYWdlLWxvZ2luLXBvcG92ZXIvcG8tcGFnZS1sb2dpbi1wb3BvdmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdkUsT0FBTyxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7O0lDbUJ2RCw2QkFBc0c7SUFDcEcsWUFDRjtJQUFBLGlCQUFJOzs7SUFGMEUsNENBQXVCO0lBQ25HLGNBQ0Y7SUFERSxtR0FDRjs7O0lBQ0EsNkJBQWdIO0lBQzlHLFlBQ0Y7SUFBQSxpQkFBSTs7O0lBRjBFLHdEQUFpQjtJQUM3RixjQUNGO0lBREUsbUdBQ0Y7Ozs7SUFDQSw2QkFBc0c7SUFBMUMsd0xBQVMsNkNBQStCLEtBQUM7SUFDbkcsWUFDRjtJQUFBLGlCQUFJOzs7SUFERixjQUNGO0lBREUsbUdBQ0Y7OztJQVRGLDhCQUE2RjtJQU8zRixBQUhBLEFBSEEsK0VBQXNHLG1FQUdVLG1FQUdWO0lBR3hHLGlCQUFNOzs7SUFUQSxjQUFxQztJQUFyQyw2REFBcUM7SUFHckMsY0FBcUM7SUFBckMsNkRBQXFDO0lBR3JDLGNBQW1CO0lBQW5CLDJDQUFtQjs7QURmL0I7Ozs7OztHQU1HO0FBQ0gsTUFBTSxPQUFPLDJCQUEyQjtJQUNqQixRQUFRLENBQXNCO0lBRW5ELCtGQUErRjtJQUMvRixJQUF5QixRQUFRLENBQUMsS0FBOEM7UUFDOUUsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFFdkIsSUFBSSxRQUFRLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxFQUFFLENBQUM7WUFDOUIsSUFBSSxDQUFDLFlBQVksR0FBRyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDO1FBQzlFLENBQUM7SUFDSCxDQUFDO0lBRUQsSUFBSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7SUFFRCwwRUFBMEU7SUFDM0MsaUJBQWlCLENBQVM7SUFFekQsK0hBQStIO0lBQ2xHLGNBQWMsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO0lBRXRFLFlBQVksQ0FBUztJQUViLFNBQVMsQ0FBMEM7SUFFM0QscUJBQXFCLENBQUMsUUFBUTtRQUM1QixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNyQyxDQUFDO3FGQTVCVSwyQkFBMkI7NkRBQTNCLDJCQUEyQjtZQ2xCdEMsQUFERiw4QkFBNkMsYUFDUjtZQUNqQyx5QkFBK0M7WUFFN0MsQUFERiw4QkFBMkMsV0FDZ0I7WUFDdkQsWUFDRjtZQUFBLGlCQUFJO1lBQ0osNEJBQXdCO1lBQ3RCLFlBQ0Y7WUFBQSxpQkFBSTtZQUNKLDRCQUF3QjtZQUN0QixZQUNBO1lBQUEsZ0NBQStEO1lBQzdELGFBQXFEOztZQUFBLGlCQUN0RDtZQUFBLGFBQ0g7WUFBQSxpQkFBSTtZQUNKLHNCQUFNO1lBQ04sNkJBQXdCO1lBQ3RCLGFBQ0Y7WUFBQSxpQkFBSTtZQUNKLDhFQUE2RjtZQWFuRyxBQURFLEFBREUsaUJBQU0sRUFDRixFQUNGOztZQTVCRSxlQUNGO1lBREUsd0ZBQ0Y7WUFFRSxlQUNGO1lBREUsOEZBQ0Y7WUFFRSxlQUNBO1lBREEsMEZBQ0E7WUFDRSxlQUFxRDtZQUFyRCxrSUFBcUQ7WUFDdEQsZUFDSDtZQURHLGdHQUNIO1lBR0UsZUFDRjtZQURFLGlHQUNGO1lBQ00sY0FBYztZQUFkLG1DQUFjOzs7aUZERGIsMkJBQTJCO2NBWnZDLFNBQVM7MkJBQ0UsdUJBQXVCO2dCQVlaLFFBQVE7a0JBQTVCLEtBQUs7bUJBQUMsWUFBWTtZQUdNLFFBQVE7a0JBQWhDLEtBQUs7bUJBQUMsWUFBWTtZQWFZLGlCQUFpQjtrQkFBL0MsS0FBSzttQkFBQyxzQkFBc0I7WUFHQSxjQUFjO2tCQUExQyxNQUFNO21CQUFDLG1CQUFtQjs7a0ZBcEJoQiwyQkFBMkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBpc0V4dGVybmFsTGluaywgaXNUeXBlb2YgfSBmcm9tICcuLi8uLi8uLi91dGlscy91dGlsJztcblxuaW1wb3J0IHsgUG9QYWdlTG9naW5MaXRlcmFscyB9IGZyb20gJy4uL2ludGVyZmFjZXMvcG8tcGFnZS1sb2dpbi1saXRlcmFscy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUG9QYWdlTG9naW5SZWNvdmVyeSB9IGZyb20gJy4uL2ludGVyZmFjZXMvcG8tcGFnZS1sb2dpbi1yZWNvdmVyeS5pbnRlcmZhY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwby1wYWdlLWxvZ2luLXBvcG92ZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vcG8tcGFnZS1sb2dpbi1wb3BvdmVyLmNvbXBvbmVudC5odG1sJ1xufSlcblxuLyoqXG4gKiBAZG9jc1ByaXZhdGVcbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqXG4gKiBDb21wb25lbnRlIHBhcmEgZGVmaW5pw6fDo28gZGEgbWVuc2FnZW0gZGUgYXZpc28gZGUgYmxvcXVlaW8gZG8gYHBvLXBhZ2UtbG9naW5gLlxuICovXG5leHBvcnQgY2xhc3MgUG9QYWdlTG9naW5Qb3BvdmVyQ29tcG9uZW50IHtcbiAgQElucHV0KCdwLWxpdGVyYWxzJykgbGl0ZXJhbHM6IFBvUGFnZUxvZ2luTGl0ZXJhbHM7XG5cbiAgLyoqIGV4aWJlIG8gbGluayBkZSAnZXNxdWVjaSBtaW5oYSBzZW5oYScgZSB2ZXJpZmljYSBzZSBvIHZhbG9yIMOpIHVtIGxpbmsgaW50ZXJubyBvdSBleHRlcm5vICovXG4gIEBJbnB1dCgncC1yZWNvdmVyeScpIHNldCByZWNvdmVyeSh2YWx1ZTogc3RyaW5nIHwgRnVuY3Rpb24gfCBQb1BhZ2VMb2dpblJlY292ZXJ5KSB7XG4gICAgdGhpcy5fcmVjb3ZlcnkgPSB2YWx1ZTtcblxuICAgIGlmIChpc1R5cGVvZih2YWx1ZSwgJ3N0cmluZycpKSB7XG4gICAgICB0aGlzLnJlY292ZXJ5VHlwZSA9IGlzRXh0ZXJuYWxMaW5rKHZhbHVlKSA/ICdleHRlcm5hbExpbmsnIDogJ2ludGVybmFsTGluayc7XG4gICAgfVxuICB9XG5cbiAgZ2V0IHJlY292ZXJ5KCkge1xuICAgIHJldHVybiB0aGlzLl9yZWNvdmVyeTtcbiAgfVxuXG4gIC8qKiBkZWZpbmUgc2UgYSBtZW5zYWdlbSBkZXZlcsOhIHNlciBleGliaWRhIGNhc28gc2VqYSBtYWlvciBxdWUgMCh6ZXJvKSAqL1xuICBASW5wdXQoJ3AtcmVtYWluaW5nLWF0dGVtcHRzJykgcmVtYWluaW5nQXR0ZW1wdHM6IG51bWJlcjtcblxuICAvKiogc2UgJ3AtcmVjb3ZlcnknIGZvciBkbyB0aXBvIEZ1bmN0aW9uIG91IFBvUGFnZUxvZ2luUmVjb3ZlcnksIGVtaXRlIHBhcmEgbyBtw6l0b2RvICdvcGVuVXJsJyBkbyBjb21wb25lbnRlICdwby1wYWdlLWxvZ2luJyAqL1xuICBAT3V0cHV0KCdwLWZvcmdvdC1wYXNzd29yZCcpIGZvcmdvdFBhc3N3b3JkID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgcmVjb3ZlcnlUeXBlOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBfcmVjb3Zlcnk6IHN0cmluZyB8IEZ1bmN0aW9uIHwgUG9QYWdlTG9naW5SZWNvdmVyeTtcblxuICBvbkZvcmdvdFBhc3N3b3JkQ2xpY2socmVjb3ZlcnkpIHtcbiAgICB0aGlzLmZvcmdvdFBhc3N3b3JkLmVtaXQocmVjb3ZlcnkpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwicG8tcGFnZS1sb2dpbi1wb3BvdmVyLWNvbnRhaW5lclwiPlxuICA8ZGl2IGNsYXNzPVwicG8tcGFnZS1sb2dpbi1wb3BvdmVyXCI+XG4gICAgPGRpdiBjbGFzcz1cInBvLXBhZ2UtbG9naW4tcG9wb3Zlci1hcnJvd1wiPjwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJwby1wYWdlLWxvZ2luLXBvcG92ZXItY29udGVudFwiPlxuICAgICAgPHAgY2xhc3M9XCJwby1mb250LXRleHQtYm9sZCBwby1wYWdlLWxvZ2luLXBvcG92ZXItdGl0bGVcIj5cbiAgICAgICAge3sgbGl0ZXJhbHM/LnRpdGxlUG9wb3ZlciB9fVxuICAgICAgPC9wPlxuICAgICAgPHAgY2xhc3M9XCJwby1mb250LXRleHRcIj5cbiAgICAgICAge3sgbGl0ZXJhbHM/LmZvcmdvdFlvdXJQYXNzd29yZCB9fVxuICAgICAgPC9wPlxuICAgICAgPHAgY2xhc3M9XCJwby1mb250LXRleHRcIj5cbiAgICAgICAge3sgbGl0ZXJhbHM/LmlmWW91VHJ5SGFyZGVyIH19XG4gICAgICAgIDxzcGFuIGNsYXNzPVwicG8tZm9udC10ZXh0LWJvbGQgcG8tcGFnZS1sb2dpbi1wb3BvdmVyLWF0dGVtcHRzXCI+XG4gICAgICAgICAge3sgbGl0ZXJhbHM/LmF0dGVtcHRzIHwgcG9JMThuOiByZW1haW5pbmdBdHRlbXB0cyB9fSA8L3NwYW5cbiAgICAgICAgPnt7IGxpdGVyYWxzPy55b3VyVXNlcldpbGxCZUJsb2NrZWQgfX1cbiAgICAgIDwvcD5cbiAgICAgIDxiciAvPlxuICAgICAgPHAgY2xhc3M9XCJwby1mb250LXRleHRcIj5cbiAgICAgICAge3sgbGl0ZXJhbHM/LmNyZWF0ZUFOZXdQYXNzd29yZE5vdyB9fVxuICAgICAgPC9wPlxuICAgICAgPGRpdiAqbmdJZj1cInJlY292ZXJ5XCIgY2xhc3M9XCJwby1mb250LXRleHQtYm9sZCBwby1tdC0xIHBvLXBhZ2UtbG9naW4tcG9wb3Zlci1saW5rLWNvbnRhaW5lclwiPlxuICAgICAgICA8YSAqbmdJZj1cInJlY292ZXJ5VHlwZSA9PT0gJ2ludGVybmFsTGluaydcIiBjbGFzcz1cInBvLXBhZ2UtbG9naW4tcG9wb3Zlci1saW5rXCIgW3JvdXRlckxpbmtdPVwicmVjb3ZlcnlcIj5cbiAgICAgICAgICB7eyBsaXRlcmFscz8uaUZvcmdvdE15UGFzc3dvcmQgfX1cbiAgICAgICAgPC9hPlxuICAgICAgICA8YSAqbmdJZj1cInJlY292ZXJ5VHlwZSA9PT0gJ2V4dGVybmFsTGluaydcIiBjbGFzcz1cInBvLXBhZ2UtbG9naW4tcG9wb3Zlci1saW5rXCIgW2hyZWZdPVwicmVjb3ZlcnlcIiB0YXJnZXQ9XCJfYmxhbmtcIj5cbiAgICAgICAgICB7eyBsaXRlcmFscz8uaUZvcmdvdE15UGFzc3dvcmQgfX1cbiAgICAgICAgPC9hPlxuICAgICAgICA8YSAqbmdJZj1cIiFyZWNvdmVyeVR5cGVcIiBjbGFzcz1cInBvLXBhZ2UtbG9naW4tcG9wb3Zlci1saW5rXCIgKGNsaWNrKT1cIm9uRm9yZ290UGFzc3dvcmRDbGljayhyZWNvdmVyeSlcIj5cbiAgICAgICAgICB7eyBsaXRlcmFscz8uaUZvcmdvdE15UGFzc3dvcmQgfX1cbiAgICAgICAgPC9hPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|