@tiba-spark/client-shared-lib 25.3.0-597 → 25.3.0-608
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/libraries/enums/localization.enum.mjs +3 -1
- package/esm2022/libraries/modules/auth/session.state.mjs +2 -2
- package/esm2022/libraries/services/factories/msl-auth-service.mjs +2 -2
- package/fesm2022/tiba-spark-client-shared-lib.mjs +4 -2
- package/fesm2022/tiba-spark-client-shared-lib.mjs.map +1 -1
- package/libraries/enums/localization.enum.d.ts +3 -1
- package/libraries/enums/localization.enum.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -268,7 +268,7 @@ let SessionState = class SessionState {
|
|
|
268
268
|
const provider = tenant?.tenant.props?.sso?.provider;
|
|
269
269
|
if (provider == SingleSignOnProvider.Microsoft) {
|
|
270
270
|
this.msalService.logoutRedirect({
|
|
271
|
-
postLogoutRedirectUri: `/${tenantName}`
|
|
271
|
+
postLogoutRedirectUri: logoutBackofficeAudit ? '/' : `/${tenantName}`
|
|
272
272
|
});
|
|
273
273
|
}
|
|
274
274
|
else if (provider == SingleSignOnProvider.PingFederate) {
|
|
@@ -486,4 +486,4 @@ export { SessionState };
|
|
|
486
486
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SessionState, decorators: [{
|
|
487
487
|
type: Injectable
|
|
488
488
|
}], ctorParameters: () => [{ type: i1.SessionStorageService }, { type: i2.LocalStorageService }, { type: i3.AppConfigService }, { type: i4.AuthService }, { type: i5.ConfigurationServiceProxy }, { type: i6.BackofficeServiceProxy }, { type: i7.Router }, { type: i8.HttpCancelService }, { type: i9.TranslateService }, { type: i10.MsalService }, { type: i5.UsersServiceProxy }, { type: i11.OpenIdAuthService }, { type: i12.MessageBarService }, { type: i5.MobileServiceProxy }, { type: i13.MobileServiceProxyIdentity }], propDecorators: { onLogin: [], onSetTenantUserAction: [], onUpdateAuthTokenAction: [], setSessionState: [], SetUserNameAction: [], AuditLogoutAction: [], AuditLogoutMobileAction: [], onMobileLogoutAction: [], onLogout: [], onTenantLoadAction: [], onTenantClearAction: [], onHealthActionAction: [], onUpdateUserSettings: [], onUpdateTenantInfoProps: [], onAuthenticate2FAforUser: [], onLoadSessionFromLocalStorageAction: [], onBackofficeAppConfigurationAction: [], onAppConfigurationAction: [], onLoadAppConfigurationMobileAction: [] } });
|
|
489
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Vzc2lvbi5zdGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC1zaGFyZWQtbGliL3NyYy9saWJyYXJpZXMvbW9kdWxlcy9hdXRoL3Nlc3Npb24uc3RhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxhQUFhLEVBQVUsTUFBTSxpQkFBaUIsQ0FBQztBQUl4RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDL0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFnQixNQUFNLGFBQWEsQ0FBQztBQUNwRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUU1RixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsV0FBVyxFQUFFLGlCQUFpQixFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNyRyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDL0QsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRXBELE9BQU8sRUFBbUUsb0JBQW9CLEVBQUUsZ0JBQWdCLEVBQXFCLE1BQU0sMkNBQTJDLENBQUM7QUFPdkwsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFbkUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDNUQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sOEJB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QUdhO0lBRGIsUUFBUSxFQUFFOzBDQUlWO0FBR2E7SUFEYixRQUFRLEVBQUU7c0NBSVY7QUFHYTtJQURiLFFBQVEsRUFBRTs0Q0FVVjtBQUdhO0lBRGIsUUFBUSxFQUFFOzBDQUlWO0FBR2E7SUFEYixRQUFRLEVBQUU7d0NBSVY7QUE5RlUsWUFBWTtJQUx4QixLQUFLLENBQW9CO1FBQ3hCLElBQUksRUFBRSxTQUFTO1FBQ2YsUUFBUSxFQUFFLG1CQUFtQjtLQUM5QixDQUFDO0dBRVcsWUFBWSxDQXFieEI7OzRGQXJiWSxZQUFZO2tCQUR4QixVQUFVOzhoQkFrR0YsT0FBTyxNQWFQLHFCQUFxQixNQTJCckIsdUJBQXVCLE1BTXZCLGVBQWUsTUFlZixpQkFBaUIsTUFRakIsaUJBQWlCLE1BeUJqQix1QkFBdUIsTUFZdkIsb0JBQW9CLE1BOENwQixRQUFRLE1Ba0VSLGtCQUFrQixNQWFsQixtQkFBbUIsTUFnQm5CLG9CQUFvQixNQVNwQixvQkFBb0IsTUFPcEIsdUJBQXVCLE1BT3ZCLHdCQUF3QixNQVN4QixtQ0FBbUMsTUFpQm5DLGtDQUFrQyxNQVlsQyx3QkFBd0IsTUFZeEIsa0NBQWtDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmF2aWdhdGlvbkVuZCwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IE1zYWxTZXJ2aWNlIH0gZnJvbSAnQGF6dXJlL21zYWwtYW5ndWxhcic7XG5pbXBvcnQgeyBDbGVhckNhY2hlUmVxdWVzdCB9IGZyb20gJ0BhenVyZS9tc2FsLWJyb3dzZXInO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgTmF2aWdhdGUgfSBmcm9tICdAbmd4cy9yb3V0ZXItcGx1Z2luJztcbmltcG9ydCB7IEFjdGlvbiwgU2VsZWN0b3IsIFN0YXRlLCBTdGF0ZUNvbnRleHQgfSBmcm9tICdAbmd4cy9zdG9yZSc7XG5pbXBvcnQgeyBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgZmlsdGVyLCBmaXJzdCwgb2YsIHN3aXRjaE1hcCwgdGFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBNZXNzYWdlQmFyUG9zaXRpb24gfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL21lc3NhZ2UtYmFyL21lc3NhZ2UtYmFyLXBvc2l0aW9uLmVudW0nO1xuaW1wb3J0IHsgTWVzc2FnZUJhclNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL21lc3NhZ2UtYmFyL21lc3NhZ2UtYmFyLnNlcnZpY2UnO1xuaW1wb3J0IHsgTE9DQUxfRU5HTElTSF9MQU5HVUFHRSB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9nbG9iYWwtY29uc3RhbnRzJztcbmltcG9ydCB7IEVOVklST05NRU5ULCBMT0dHRURfVEVOQU5UX0tFWSwgU0VTU0lPTiwgVEVOQU5UX0tFWSB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9rZXlzLWNvbnN0YW50cyc7XG5pbXBvcnQgeyBWRVJTSU9OX1YxIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzL3ZlcnNpb24tY29uc3RhbnRzJztcbmltcG9ydCB7IEFwcFR5cGUgfSBmcm9tICcuLi8uLi9lbnVtcy9hcHAtdHlwZS5lbnVtJztcbmltcG9ydCB7IFNwYXJrU2Vzc2lvbiB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvc3Bhcmstc2Vzc2lvbi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQ29uZmlndXJhdGlvblNlcnZpY2VQcm94eSwgTW9iaWxlU2VydmljZVByb3h5LCBTZXR0aW5nc0NhdGVnb3J5LCBTaW5nbGVTaWduT25Qcm92aWRlciwgU3BhcmtTZXR0aW5nc0R0bywgVXNlcnNTZXJ2aWNlUHJveHkgfSBmcm9tICcuLi8uLi9zZXJ2aWNlLXByb3h5L2Nsb3VkLXNlcnZpY2UtcHJveGllcyc7XG5pbXBvcnQgeyBNb2JpbGVTZXJ2aWNlUHJveHlJZGVudGl0eSB9IGZyb20gJy4uLy4uL3NlcnZpY2UtcHJveHkvaWRlbnRpdHktc2VydmljZS1wcm94aWVzJztcbmltcG9ydCB7IEFwcENvbmZpZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9hcHAtY29uZmlnLnNlcnZpY2UnO1xuaW1wb3J0IHsgSHR0cENhbmNlbFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9odHRwLWNhbmNlbC5zZXJ2aWNlJztcbmltcG9ydCB7IExvY2FsU3RvcmFnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9sb2NhbC1zdG9yYWdlLnNlcnZpY2UnO1xuaW1wb3J0IHsgT3BlbklkQXV0aFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9vcGVuaWQtYXV0aC5zZXJ2aWNlJztcbmltcG9ydCB7IFNlc3Npb25TdG9yYWdlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3Nlc3Npb24tc3RvcmFnZS5zZXJ2aWNlJztcbmltcG9ydCB7IHBhcnNlQXBpRXJyb3JNZXNzYWdlIH0gZnJvbSAnLi4vLi4vdXRpbHMvYXBpLWhlbHBlci51dGlsJztcbmltcG9ydCB7IFN0cmluZ01hcCB9IGZyb20gJy4uLy4uL3V0aWxzL2xhbmcudXRpbCc7XG5pbXBvcnQgeyBnZXROYXZpZ2F0aW9uUm91dGUgfSBmcm9tICcuLi8uLi91dGlscy9yb3V0ZS51dGlsJztcbmltcG9ydCB7IFVubG9hZFBhcmtpbmdMb3RBY3Rpb24gfSBmcm9tICcuLi9mYWNpbGl0eS9mYWNpbGl0eS5hY3Rpb25zJztcbmltcG9ydCB7IEJhY2tvZmZpY2VTZXJ2aWNlUHJveHkgfSBmcm9tICcuLy4uLy4uL3NlcnZpY2UtcHJveHkvY2xvdWQtc2VydmljZS1wcm94aWVzJztcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi9hdXRoLnNlcnZpY2UnO1xuaW1wb3J0IHsgVXNlckluZm8gfSBmcm9tICcuL21vZGVsJztcbmltcG9ydCB7IEFwcGxpY2F0aW9uSW5mbyB9IGZyb20gJy4vbW9kZWwvYXBwbGljYXRpb24taW5mby5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgVGVuYW50SW5mbyB9IGZyb20gJy4vbW9kZWwvdGVuYW50LWluZm8uaW50ZXJmYWNlJztcbmltcG9ydCB7XG4gIEF1ZGl0TG9nb3V0QWN0aW9uLCBBdWRpdExvZ291dE1vYmlsZUFjdGlvbiwgQXV0aGVudGljYXRlMkZBZm9yVXNlcixcbiAgSGVhbHRoQWN0aW9uLCBJbml0U2Vzc2lvbkZyb21Mb2NhbFN0b3JhZ2VBY3Rpb24sIExvYWRBcHBDb25maWd1cmF0aW9uQWN0aW9uLFxuICBMb2FkQXBwQ29uZmlndXJhdGlvbk1vYmlsZUFjdGlvbixcbiAgTG9hZEJhY2tvZmZpY2VBcHBDb25maWd1cmF0aW9uQWN0aW9uLFxuICBMb2dpblJlcXVlc3RBY3Rpb24sIExvZ291dEFjdGlvbiwgTG9nb3V0TW9iaWxlQWN0aW9uLCBNb2JpbGVMb2dvdXRBY3Rpb24sIFNldFN0YXRlQWN0aW9uLCBTZXRUZW5hbnRVc2VyQWN0aW9uLCBTZXRVc2VyTmFtZUFjdGlvbixcbiAgVGVuYW50Q2xlYXJBY3Rpb24sIFRlbmFudExvYWRBY3Rpb24sIFVwZGF0ZUF1dGhUb2tlbkFjdGlvbiwgVXBkYXRlVGVuYW50SW5mb1Byb3BzLCBVcGRhdGVVc2VyU2V0dGluZ3NJblNlc3Npb25BY3Rpb25cbn0gZnJvbSAnLi9zZXNzaW9uLmFjdGlvbnMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNlc3Npb25TdGF0ZU1vZGVsIHtcbiAgc3BhcmtTZXNzaW9uczogU3RyaW5nTWFwPFNwYXJrU2Vzc2lvbj47XG4gIGFwcGxpY2F0aW9uPzogQXBwbGljYXRpb25JbmZvO1xuICBzZXJ2ZXJFbnZpcm9ubWVudE1vZGU/OiBzdHJpbmc7XG59XG5cbmNvbnN0IGRlZmF1bHRTZXNzaW9uU3RhdGUgPSB7XG4gIHNwYXJrU2Vzc2lvbnM6IHt9LFxuICBhcHBsaWNhdGlvbjogeyB2ZXJzaW9uOiBudWxsLCByZWxlYXNlRGF0ZTogbnVsbCwgZmVhdHVyZXM6IHt9IH0sXG59O1xuXG5AU3RhdGU8U2Vzc2lvblN0YXRlTW9kZWw+KHtcbiAgbmFtZTogJ3Nlc3Npb24nLFxuICBkZWZhdWx0czogZGVmYXVsdFNlc3Npb25TdGF0ZSxcbn0pXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgU2Vzc2lvblN0YXRlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIHNlc3Npb25TdG9yYWdlU2VydmljZTogU2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLFxuICAgIHByaXZhdGUgbG9jYWxTdG9yYWdlU2VydmljZTogTG9jYWxTdG9yYWdlU2VydmljZSxcbiAgICBwcml2YXRlIGFwcENvbmZpZ1NlcnZpY2U6IEFwcENvbmZpZ1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBhdXRoU2VydmljZTogQXV0aFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjb25maWd1cmF0aW9uU2VydmljZVByb3h5OiBDb25maWd1cmF0aW9uU2VydmljZVByb3h5LFxuICAgIHByaXZhdGUgYmFja29mZmljZVNlcnZpY2VQcm94eTogQmFja29mZmljZVNlcnZpY2VQcm94eSxcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgaHR0cENhbmNlbFNlcnZpY2U6IEh0dHBDYW5jZWxTZXJ2aWNlLFxuICAgIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBwcml2YXRlIG1zYWxTZXJ2aWNlOiBNc2FsU2VydmljZSxcbiAgICBwcml2YXRlIHVzZXJzU2VydmljZVByb3h5OiBVc2Vyc1NlcnZpY2VQcm94eSxcbiAgICBwcml2YXRlIG9wZW5JZEF1dGhTZXJ2aWNlOiBPcGVuSWRBdXRoU2VydmljZSxcbiAgICBwcml2YXRlIG1lc3NhZ2VCYXJTZXJ2aWNlOiBNZXNzYWdlQmFyU2VydmljZSxcbiAgICBwcml2YXRlIG1vYmlsZVNlcnZpY2VQcm94eTogTW9iaWxlU2VydmljZVByb3h5LFxuICAgIHByaXZhdGUgbW9iaWxlU2VydmljZVByb3h5SWRlbnRpdHk6IE1vYmlsZVNlcnZpY2VQcm94eUlkZW50aXR5KSB7XG4gIH1cblxuICBAU2VsZWN0b3IoKVxuICBwdWJsaWMgc3RhdGljIGlzVXNlckF1dGhlbnRpY2F0ZWRXaXRoU1NPKHN0YXRlOiBTZXNzaW9uU3RhdGVNb2RlbCkge1xuICAgIGNvbnN0IHRlbmFudE5hbWUgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKFRFTkFOVF9LRVkpO1xuICAgIHJldHVybiBzdGF0ZS5zcGFya1Nlc3Npb25zW3RlbmFudE5hbWVdPy51c2VyPy5zc29BdXRoZW50aWNhdGVkO1xuICB9XG5cbiAgQFNlbGVjdG9yKClcbiAgcHVibGljIHN0YXRpYyBpc1VzZXJBdXRoZW50aWNhdGVkV2l0aDJGQShzdGF0ZTogU2Vzc2lvblN0YXRlTW9kZWwpIHtcbiAgICBjb25zdCB0ZW5hbnROYW1lID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShURU5BTlRfS0VZKTtcbiAgICByZXR1cm4gc3RhdGUuc3BhcmtTZXNzaW9uc1t0ZW5hbnROYW1lXT8udXNlci5hdXRoZW50aWNhdGVkMkZBO1xuICB9XG5cbiAgQFNlbGVjdG9yKClcbiAgcHVibGljIHN0YXRpYyBzZXJ2ZXJFbnZpcm9ubWVudE1vZGUoc3RhdGU6IFNlc3Npb25TdGF0ZU1vZGVsKSB7XG4gICAgcmV0dXJuIHN0YXRlLnNlcnZlckVudmlyb25tZW50TW9kZTtcbiAgfVxuXG4gIEBTZWxlY3RvcigpXG4gIHB1YmxpYyBzdGF0aWMgdXNlckluZm8oc3RhdGU6IFNlc3Npb25TdGF0ZU1vZGVsKTogVXNlckluZm8ge1xuICAgIGNvbnN0IHRlbmFudE5hbWUgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKFRFTkFOVF9LRVkpO1xuICAgIHJldHVybiBzdGF0ZS5zcGFya1Nlc3Npb25zW3RlbmFudE5hbWVdPy51c2VyO1xuICB9XG5cbiAgQFNlbGVjdG9yKClcbiAgcHVibGljIHN0YXRpYyBsb2dnZWRVc2VySW5mbyhzdGF0ZTogU2Vzc2lvblN0YXRlTW9kZWwpOiBVc2VySW5mbyB7XG4gICAgY29uc3QgdGVuYW50TmFtZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oTE9HR0VEX1RFTkFOVF9LRVkpO1xuICAgIHJldHVybiBzdGF0ZS5zcGFya1Nlc3Npb25zW3RlbmFudE5hbWVdPy51c2VyO1xuICB9XG5cbiAgQFNlbGVjdG9yKClcbiAgcHVibGljIHN0YXRpYyB0ZW5hbnRJbmZvKHN0YXRlOiBTZXNzaW9uU3RhdGVNb2RlbCkge1xuICAgIGNvbnN0IHRlbmFudE5hbWUgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKFRFTkFOVF9LRVkpO1xuICAgIHJldHVybiBzdGF0ZS5zcGFya1Nlc3Npb25zW3RlbmFudE5hbWVdPy50ZW5hbnQ7XG4gIH1cblxuICBAU2VsZWN0b3IoKVxuICBwdWJsaWMgc3RhdGljIHRoaXJkUGFydHlUb2tlbihzdGF0ZTogU2Vzc2lvblN0YXRlTW9kZWwpIHtcbiAgICBjb25zdCB0ZW5hbnROYW1lID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShURU5BTlRfS0VZKTtcbiAgICByZXR1cm4gc3RhdGUuc3BhcmtTZXNzaW9uc1t0ZW5hbnROYW1lXT8udGhpcmRQYXJ0eVRva2VuO1xuICB9XG5cbiAgQFNlbGVjdG9yKClcbiAgcHVibGljIHN0YXRpYyBsb2dnZWRUZW5hbnRJbmZvKHN0YXRlOiBTZXNzaW9uU3RhdGVNb2RlbCkge1xuICAgIGNvbnN0IHRlbmFudE5hbWUgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKExPR0dFRF9URU5BTlRfS0VZKTtcbiAgICByZXR1cm4gc3RhdGUuc3BhcmtTZXNzaW9uc1t0ZW5hbnROYW1lXT8udGVuYW50O1xuICB9XG5cbiAgQFNlbGVjdG9yKClcbiAgcHVibGljIHN0YXRpYyB1c2VyU2V0dGluZ3Moc3RhdGU6IFNlc3Npb25TdGF0ZU1vZGVsKTogU3BhcmtTZXR0aW5nc0R0b1tdIHtcbiAgICBjb25zdCB0ZW5hbnROYW1lID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShURU5BTlRfS0VZKTtcbiAgICByZXR1cm4gc3RhdGUuc3BhcmtTZXNzaW9uc1t0ZW5hbnROYW1lXT8udXNlci5zZXR0aW5ncyBhcyBTcGFya1NldHRpbmdzRHRvW107XG4gIH1cblxuICBAU2VsZWN0b3IoKVxuICBwdWJsaWMgc3RhdGljIG1hcHBlZFVzZXJTZXR0aW5ncyhzdGF0ZTogU2Vzc2lvblN0YXRlTW9kZWwpIHtcbiAgICBjb25zdCB0ZW5hbnROYW1lID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShURU5BTlRfS0VZKTtcbiAgICByZXR1cm4gc3RhdGUuc3BhcmtTZXNzaW9uc1t0ZW5hbnROYW1lXT8udXNlci5zZXR0aW5ncy5yZWR1Y2UoKHNldHRpbmdzTWFwLCB1c2VyU2V0dGluZykgPT5cbiAgICAgIHNldHRpbmdzTWFwLnNldChcbiAgICAgICAgdXNlclNldHRpbmcuY2F0ZWdvcnksXG4gICAgICAgIHR5cGVvZiB1c2VyU2V0dGluZy5zZXR0aW5nc0pzb24gPT09ICdzdHJpbmcnXG4gICAgICAgICAgPyBKU09OLnBhcnNlKHVzZXJTZXR0aW5nLnNldHRpbmdzSnNvbilcbiAgICAgICAgICA6IHVzZXJTZXR0aW5nLnNldHRpbmdzSnNvblxuICAgICAgKSwgbmV3IE1hcDxTZXR0aW5nc0NhdGVnb3J5LCBhbnk+KCkpO1xuICB9XG5cbiAgQFNlbGVjdG9yKClcbiAgcHVibGljIHN0YXRpYyBhcHBDb25maWd1cmF0aW9uKHN0YXRlOiBTZXNzaW9uU3RhdGVNb2RlbCkge1xuICAgIGNvbnN0IHRlbmFudE5hbWUgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKExPR0dFRF9URU5BTlRfS0VZKTtcbiAgICByZXR1cm4gc3RhdGUuc3BhcmtTZXNzaW9uc1t0ZW5hbnROYW1lXT8uYXBwQ29uZmlndXJhdGlvbjtcbiAgfVxuXG4gIEBTZWxlY3RvcigpXG4gIHB1YmxpYyBzdGF0aWMga2VlcE1lTG9nZ2VkSW4oc3RhdGU6IFNlc3Npb25TdGF0ZU1vZGVsKTogYm9vbGVhbiB7XG4gICAgY29uc3QgdGVuYW50TmFtZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oVEVOQU5UX0tFWSk7XG4gICAgcmV0dXJuIHN0YXRlLnNwYXJrU2Vzc2lvbnNbdGVuYW50TmFtZV0/LnVzZXIua2VlcE1lTG9nZ2VkSW4gPz8gZmFsc2U7XG4gIH1cblxuICBAQWN0aW9uKExvZ2luUmVxdWVzdEFjdGlvbilcbiAgcHVibGljIG9uTG9naW4oY3R4OiBTdGF0ZUNvbnRleHQ8U2Vzc2lvblN0YXRlTW9kZWw+LCBhY3Rpb246IExvZ2luUmVxdWVzdEFjdGlvbikge1xuICAgIHJldHVybiB0aGlzLmF1dGhTZXJ2aWNlLmxvZ2luKGFjdGlvbikucGlwZSh0YXAoe1xuICAgICAgbmV4dDogc3BhcmtTZXNzaW9uID0+IHtcbiAgICAgICAgdGhpcy5TZXRUZW5hbnRVc2VyQWN0aW9uKGN0eCwgc3BhcmtTZXNzaW9uKTtcbiAgICAgIH0sXG4gICAgICBlcnJvcjogZSA9PiB7XG4gICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBwYXJzZUFwaUVycm9yTWVzc2FnZShlKTtcbiAgICAgICAgdGhpcy5tZXNzYWdlQmFyU2VydmljZS5lcnJvcih0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChtZXNzYWdlKSwgeyBwb3NpdGlvbjogTWVzc2FnZUJhclBvc2l0aW9uLlN0YXRpYyB9KTtcbiAgICAgIH1cbiAgICB9KSk7XG4gIH1cblxuICBAQWN0aW9uKFNldFRlbmFudFVzZXJBY3Rpb24pXG4gIHB1YmxpYyBvblNldFRlbmFudFVzZXJBY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8U2Vzc2lvblN0YXRlTW9kZWw+LCB7IHNwYXJrU2Vzc2lvbiB9OiBTZXRUZW5hbnRVc2VyQWN0aW9uKSB7XG4gICAgdGhpcy5TZXRUZW5hbnRVc2VyQWN0aW9uKGN0eCwgc3BhcmtTZXNzaW9uKTtcbiAgfVxuXG4gIHByaXZhdGUgU2V0VGVuYW50VXNlckFjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxTZXNzaW9uU3RhdGVNb2RlbD4sIHNwYXJrU2Vzc2lvbjogU3BhcmtTZXNzaW9uKSB7XG4gICAgY29uc3Qgc3BhcmtTZXNzaW9ucyA9IHRoaXMuZ2V0U3BhcmtTZXNzaW9ucygpO1xuICAgIGNvbnN0IHsgdXNlciwgYXV0aFRva2VuLCByZWZyZXNoLCB0aGlyZFBhcnR5VG9rZW4gfSA9IHNwYXJrU2Vzc2lvbjtcbiAgICB1c2VyLnNldHRpbmdzID0gdXNlci5zZXR0aW5ncy5tYXAocyA9PiB7XG4gICAgICByZXR1cm4gbmV3IFNwYXJrU2V0dGluZ3NEdG8oe1xuICAgICAgICBjYXRlZ29yeTogcy5jYXRlZ29yeSxcbiAgICAgICAgc2V0dGluZ3NKc29uOiBKU09OLnBhcnNlKHMuc2V0dGluZ3NKc29uKVxuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBpZiAoIXNwYXJrU2Vzc2lvbnNbdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UudGVuYW50XSkge1xuICAgICAgc3BhcmtTZXNzaW9uc1t0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZS50ZW5hbnRdID0geyB1c2VyLCBhdXRoVG9rZW4sIHJlZnJlc2gsIHRlbmFudDogbnVsbCwgdGhpcmRQYXJ0eVRva2VuIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIHNwYXJrU2Vzc2lvbnNbdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UudGVuYW50XS51c2VyID0gdXNlcjtcbiAgICAgIHNwYXJrU2Vzc2lvbnNbdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UudGVuYW50XS5hdXRoVG9rZW4gPSBhdXRoVG9rZW47XG4gICAgICBzcGFya1Nlc3Npb25zW3RoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLnRlbmFudF0ucmVmcmVzaCA9IHJlZnJlc2g7XG4gICAgICBzcGFya1Nlc3Npb25zW3RoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLnRlbmFudF0udGhpcmRQYXJ0eVRva2VuID0gdGhpcmRQYXJ0eVRva2VuO1xuICAgIH1cblxuICAgIHRoaXMuc2V0U3BhcmtTZXNzaW9ucyhjdHgsIHNwYXJrU2Vzc2lvbnMpO1xuICB9XG5cbiAgQEFjdGlvbihVcGRhdGVBdXRoVG9rZW5BY3Rpb24pXG4gIHB1YmxpYyBvblVwZGF0ZUF1dGhUb2tlbkFjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxTZXNzaW9uU3RhdGVNb2RlbD4sIGFjdGlvbjogVXBkYXRlQXV0aFRva2VuQWN0aW9uKSB7XG4gICAgY29uc3Qgc3BhcmtTZXNzaW9ucyA9IHRoaXMuZ2V0U3BhcmtTZXNzaW9ucygpO1xuICAgIHNwYXJrU2Vzc2lvbnNbdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UudGVuYW50XS5hdXRoVG9rZW4gPSBhY3Rpb24uYXV0aFRva2VuO1xuICB9XG5cbiAgQEFjdGlvbihTZXRTdGF0ZUFjdGlvbilcbiAgcHVibGljIHNldFNlc3Npb25TdGF0ZShjdHg6IFN0YXRlQ29udGV4dDxTZXNzaW9uU3RhdGVNb2RlbD4sIGFjdGlvbjogU2V0U3RhdGVBY3Rpb24pIHtcbiAgICBjb25zdCBzcGFya1Nlc3Npb25zID0gdGhpcy5nZXRTcGFya1Nlc3Npb25zKCk7XG4gICAgc3BhcmtTZXNzaW9uc1t0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZS50ZW5hbnRdLmF1dGhUb2tlbiA9IGFjdGlvbi5hdXRoVG9rZW47XG4gICAgc3BhcmtTZXNzaW9uc1t0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZS50ZW5hbnRdLnJlZnJlc2ggPSBhY3Rpb24ucmVmcmVzaDtcblxuICAgIGNvbnN0IGFwcGxpY2F0aW9uOiBBcHBsaWNhdGlvbkluZm8gPSB7XG4gICAgICB2ZXJzaW9uOiB0aGlzLmFwcENvbmZpZ1NlcnZpY2UuZ2V0Q29uZmlnKCkucGFja2FnZUluZm8udmVyc2lvbixcbiAgICAgIHJlbGVhc2VEYXRlOiBudWxsLFxuICAgICAgZmVhdHVyZXM6IHt9LFxuICAgIH07XG4gICAgY3R4LnBhdGNoU3RhdGUoeyBhcHBsaWNhdGlvbiB9KTtcbiAgICB0aGlzLnNldFNwYXJrU2Vzc2lvbnMoY3R4LCBzcGFya1Nlc3Npb25zKTtcbiAgfVxuXG4gIEBBY3Rpb24oU2V0VXNlck5hbWVBY3Rpb24pXG4gIHB1YmxpYyBTZXRVc2VyTmFtZUFjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxTZXNzaW9uU3RhdGVNb2RlbD4sIGFjdGlvbjogU2V0VXNlck5hbWVBY3Rpb24pIHtcbiAgICBjb25zdCB0ZW5hbnROYW1lID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShURU5BTlRfS0VZKTtcbiAgICBjb25zdCBzcGFya1Nlc3Npb25zID0gdGhpcy5nZXRTcGFya1Nlc3Npb25zKCk7XG4gICAgc3BhcmtTZXNzaW9uc1t0ZW5hbnROYW1lXS51c2VyLmRpc3BsYXlOYW1lID0gYWN0aW9uLnVzZXJOYW1lO1xuICAgIHRoaXMuc2V0U3BhcmtTZXNzaW9ucyhjdHgsIHNwYXJrU2Vzc2lvbnMpO1xuICB9XG5cbiAgQEFjdGlvbihBdWRpdExvZ291dEFjdGlvbilcbiAgcHVibGljIEF1ZGl0TG9nb3V0QWN0aW9uKGN0eDogU3RhdGVDb250ZXh0PFNlc3Npb25TdGF0ZU1vZGVsPiwgYWN0aW9uOiBBdWRpdExvZ291dEFjdGlvbikge1xuICAgIGNvbnN0IHNwYXJrU2Vzc2lvbnMgPSB0aGlzLmdldFNwYXJrU2Vzc2lvbnMoKTtcbiAgICBjb25zdCB0ZW5hbnROYW1lID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShURU5BTlRfS0VZKTtcbiAgICBjb25zdCB0ZW5hbnRJbmZvID0gY3R4LmdldFN0YXRlKCkuc3BhcmtTZXNzaW9uc1t0ZW5hbnROYW1lXT8udGVuYW50O1xuICAgIGlmICh0aGlzLmlzVGVuYW50VW5kZWZpbmVkKHRlbmFudEluZm8sIHNwYXJrU2Vzc2lvbnNbdGVuYW50TmFtZV0pKSB7XG4gICAgICByZXR1cm4gb2YobnVsbCk7IC8vIEhhbmRsZSB0aGUgY2FzZSB3aGVyZSB0ZW5hbnQgb3Igc3BhcmtTZXNzaW9ucyBhcmUgdW5kZWZpbmVkXG4gICAgfVxuICAgIHJldHVybiB0aGlzLnVzZXJzU2VydmljZVByb3h5LmF1ZGl0TG9nb3V0KCkucGlwZShcbiAgICAgIHRhcCgoKSA9PiB7IH0pKTtcbiAgfVxuXG4gIC8vVE9ETyAsIGVuYWJsZSBiYWNrb2ZmaWNlIGxvZ291dCB3aGVuICwgQkUgQXVkaXQgZm9yIGJhY2tvZmZpY2UgaXMgaW1wbGVtZW50ZWQgXG4gIC8vIEBBY3Rpb24oQXVkaXRCYWNrb2ZmaWNlQWN0aW9uKVxuICAvLyBwdWJsaWMgb25BdWRpdEJhY2tvZmZpY2VBY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8U2Vzc2lvblN0YXRlTW9kZWw+LCBhY3Rpb246IEF1ZGl0QmFja29mZmljZUFjdGlvbikge1xuICAvLyAgIGNvbnN0IHNwYXJrU2Vzc2lvbnMgPSB0aGlzLmdldFNwYXJrU2Vzc2lvbnMoKTtcbiAgLy8gICBjb25zdCB0ZW5hbnROYW1lID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShURU5BTlRfS0VZKTtcbiAgLy8gICBjb25zdCB0ZW5hbnRJbmZvID0gY3R4LmdldFN0YXRlKCkuc3BhcmtTZXNzaW9uc1t0ZW5hbnROYW1lXS50ZW5hbnQ7XG4gIC8vICAgaWYgKHRoaXMuaXNUZW5hbnRVbmRlZmluZWQodGVuYW50SW5mbywgc3BhcmtTZXNzaW9uc1t0ZW5hbnROYW1lXSkpIHtcbiAgLy8gICAgIHJldHVybiBvZihudWxsKTsgLy8gSGFuZGxlIHRoZSBjYXNlIHdoZXJlIHRlbmFudCBvciBzcGFya1Nlc3Npb25zIGFyZSB1bmRlZmluZWRcbiAgLy8gICB9XG4gIC8vICAgcmV0dXJuIHRoaXMuYmFja29mZmljZVNlcnZpY2VQcm94eS5iYWNrb2ZmaWNlQXVkaXRMb2dvdXQoKS5waXBlKFxuICAvLyAgICAgdGFwKCgpID0+IHsgfSkpO1xuICAvLyB9XG5cbiAgQEFjdGlvbihBdWRpdExvZ291dE1vYmlsZUFjdGlvbilcbiAgcHVibGljIEF1ZGl0TG9nb3V0TW9iaWxlQWN0aW9uKGN0eDogU3RhdGVDb250ZXh0PFNlc3Npb25TdGF0ZU1vZGVsPiwgYWN0aW9uOiBBdWRpdExvZ291dE1vYmlsZUFjdGlvbikge1xuICAgIGNvbnN0IHNwYXJrU2Vzc2lvbnMgPSB0aGlzLmdldFNwYXJrU2Vzc2lvbnMoKTtcbiAgICBjb25zdCB0ZW5hbnROYW1lID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShURU5BTlRfS0VZKTtcbiAgICBjb25zdCB0ZW5hbnRJbmZvID0gY3R4LmdldFN0YXRlKCkuc3BhcmtTZXNzaW9uc1t0ZW5hbnROYW1lXT8udGVuYW50O1xuICAgIGlmICh0aGlzLmlzVGVuYW50VW5kZWZpbmVkKHRlbmFudEluZm8sIHNwYXJrU2Vzc2lvbnNbdGVuYW50TmFtZV0pKSB7XG4gICAgICByZXR1cm4gb2YobnVsbCk7IC8vIEhhbmRsZSB0aGUgY2FzZSB3aGVyZSB0ZW5hbnQgb3Igc3BhcmtTZXNzaW9ucyBhcmUgdW5kZWZpbmVkXG4gICAgfVxuICAgIHJldHVybiB0aGlzLm1vYmlsZVNlcnZpY2VQcm94eS5tb2JpbGVBdWRpdExvZ291dChWRVJTSU9OX1YxKS5waXBlKFxuICAgICAgdGFwKCgpID0+IHsgfSkpO1xuICB9XG5cbiAgQEFjdGlvbihNb2JpbGVMb2dvdXRBY3Rpb24pXG4gIHB1YmxpYyBvbk1vYmlsZUxvZ291dEFjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxTZXNzaW9uU3RhdGVNb2RlbD4sIHsgbG9nb3V0QXVkaXQgfTogTW9iaWxlTG9nb3V0QWN0aW9uKSB7XG4gICAgY29uc3QgYXBwVHlwZSA9IHRoaXMuYXBwQ29uZmlnU2VydmljZS5nZXRDb25maWcoKS5hcHBUeXBlO1xuICAgIHRoaXMuaHR0cENhbmNlbFNlcnZpY2UuY2FuY2VsUGVuZGluZ1JlcXVlc3RzKCk7XG5cbiAgICBpZiAoYXBwVHlwZSA9PT0gQXBwVHlwZS5Nb2JpbGUpIHtcbiAgICAgIGN0eC5kaXNwYXRjaChuZXcgTG9nb3V0TW9iaWxlQWN0aW9uKCkpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBwYXRoID0gZ2V0TmF2aWdhdGlvblJvdXRlKFNlc3Npb25TdGF0ZS50ZW5hbnRJbmZvKGN0eC5nZXRTdGF0ZSgpKSwgYXBwVHlwZSwgWydhY2NvdW50JywgJ2xvZ2luJ10pO1xuICAgICAgY3R4LmRpc3BhdGNoKG5ldyBOYXZpZ2F0ZShwYXRoKSk7XG4gICAgfVxuXG4gICAgaWYgKGxvZ291dEF1ZGl0KSB7XG4gICAgICBjdHguZGlzcGF0Y2gobmV3IEF1ZGl0TG9nb3V0TW9iaWxlQWN0aW9uKCkpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnJvdXRlci5ldmVudHMucGlwZSggLy8gb2JzZXJ2ZSBhbGwgcm91dGUgZXZlbnRzXG4gICAgICBmaWx0ZXIoZSA9PiBlIGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCAmJiBlLnVybC5pbmNsdWRlcygnL2FjY291bnQvbG9naW4nKSksIC8vIGZpbHRlciBvbmx5IE5hdmlnYXRpb25FbmQgZXZlbnRzXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgZmlyc3QoKSxcbiAgICAgIHN3aXRjaE1hcCgoKSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmF1dGhTZXJ2aWNlLmxvZ291dCgpLnBpcGUoXG4gICAgICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHNwYXJrU2Vzc2lvbnMgPSB0aGlzLmdldFNwYXJrU2Vzc2lvbnMoKTtcbiAgICAgICAgICAgIGNvbnN0IHRlbmFudCA9IHNwYXJrU2Vzc2lvbnNbdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UudGVuYW50XTtcbiAgICAgICAgICAgIGNvbnN0IHNzb0VuYWJsZWQgPSB0ZW5hbnQ/LnVzZXI/LnNzb0F1dGhlbnRpY2F0ZWQ7XG4gICAgICAgICAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UudXNlKExPQ0FMX0VOR0xJU0hfTEFOR1VBR0UpO1xuICAgICAgICAgICAgY3R4LmRpc3BhdGNoKG5ldyBUZW5hbnRDbGVhckFjdGlvbigpKTtcbiAgICAgICAgICAgIGN0eC5kaXNwYXRjaChuZXcgVW5sb2FkUGFya2luZ0xvdEFjdGlvbigpKTtcbiAgICAgICAgICAgIGlmIChzc29FbmFibGVkKSB7XG4gICAgICAgICAgICAgIGNvbnN0IHRlbmFudE5hbWUgPSB0ZW5hbnQ/LnRlbmFudD8udGVuYW50TmFtZTtcbiAgICAgICAgICAgICAgY29uc3QgcHJvdmlkZXIgPSB0ZW5hbnQ/LnRlbmFudC5wcm9wcz8uc3NvPy5wcm92aWRlcjtcbiAgICAgICAgICAgICAgaWYgKHByb3ZpZGVyID09IFNpbmdsZVNpZ25PblByb3ZpZGVyLk1pY3Jvc29mdCkge1xuICAgICAgICAgICAgICAgIHRoaXMubXNhbFNlcnZpY2UubG9nb3V0UmVkaXJlY3Qoe1xuICAgICAgICAgICAgICAgICAgcG9zdExvZ291dFJlZGlyZWN0VXJpOiBgLyR7dGVuYW50TmFtZX1gXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgZWxzZSBpZiAocHJvdmlkZXIgPT0gU2luZ2xlU2lnbk9uUHJvdmlkZXIuUGluZ0ZlZGVyYXRlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5vcGVuSWRBdXRoU2VydmljZS5zaWduT3V0KCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgLy90aGlzLnNpbGVudExvZ091dE1zbChjdHgsIGFwcFR5cGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pKTtcbiAgICAgIH0pKTtcbiAgfVxuXG4gIEBBY3Rpb24oTG9nb3V0QWN0aW9uKVxuICBwdWJsaWMgb25Mb2dvdXQoY3R4OiBTdGF0ZUNvbnRleHQ8U2Vzc2lvblN0YXRlTW9kZWw+LCB7IGxvZ291dEF1ZGl0LCBsb2dvdXRCYWNrb2ZmaWNlQXVkaXQgfTogTG9nb3V0QWN0aW9uKSB7XG4gICAgY29uc3QgYXBwVHlwZSA9IHRoaXMuYXBwQ29uZmlnU2VydmljZS5nZXRDb25maWcoKS5hcHBUeXBlO1xuICAgIHRoaXMuaHR0cENhbmNlbFNlcnZpY2UuY2FuY2VsUGVuZGluZ1JlcXVlc3RzKCk7XG5cbiAgICBpZiAoYXBwVHlwZSA9PT0gQXBwVHlwZS5Nb2JpbGUpIHtcbiAgICAgIGN0eC5kaXNwYXRjaChuZXcgTG9nb3V0TW9iaWxlQWN0aW9uKCkpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBwYXRoID0gZ2V0TmF2aWdhdGlvblJvdXRlKFNlc3Npb25TdGF0ZS50ZW5hbnRJbmZvKGN0eC5nZXRTdGF0ZSgpKSwgYXBwVHlwZSwgWydhY2NvdW50JywgJ2xvZ2luJ10pO1xuICAgICAgY3R4LmRpc3BhdGNoKG5ldyBOYXZpZ2F0ZShwYXRoKSk7XG4gICAgfVxuXG4gICAgaWYgKGxvZ291dEF1ZGl0KSB7XG4gICAgICBjdHguZGlzcGF0Y2gobmV3IEF1ZGl0TG9nb3V0QWN0aW9uKCkpO1xuICAgIH1cblxuICAgIC8vVE9ETyAsIGVuYWJsZSBiYWNrb2ZmaWNlIGxvZ291dCB3aGVuICwgQkUgQXVkaXQgZm9yIGJhY2tvZmZpY2UgaXMgaW1wbGVtZW50ZWQgXG4gICAgLy8gaWYgKGxvZ291dEJhY2tvZmZpY2VBdWRpdCkge1xuICAgIC8vICAgY3R4LmRpc3BhdGNoKG5ldyBBdWRpdEJhY2tvZmZpY2VBY3Rpb24oKSk7XG4gICAgLy8gfVxuXG4gICAgcmV0dXJuIHRoaXMucm91dGVyLmV2ZW50cy5waXBlKCAvLyBvYnNlcnZlIGFsbCByb3V0ZSBldmVudHNcbiAgICAgIGZpbHRlcihlID0+IGUgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kICYmIGUudXJsLmluY2x1ZGVzKCcvYWNjb3VudC9sb2dpbicpKSwgLy8gZmlsdGVyIG9ubHkgTmF2aWdhdGlvbkVuZCBldmVudHNcbiAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICBmaXJzdCgpLFxuICAgICAgc3dpdGNoTWFwKCgpID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXV0aFNlcnZpY2UubG9nb3V0KCkucGlwZShcbiAgICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgICAgY29uc3Qgc3BhcmtTZXNzaW9ucyA9IHRoaXMuZ2V0U3BhcmtTZXNzaW9ucygpO1xuICAgICAgICAgICAgY29uc3QgdGVuYW50ID0gc3BhcmtTZXNzaW9uc1t0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZS50ZW5hbnRdO1xuICAgICAgICAgICAgY29uc3Qgc3NvRW5hYmxlZCA9IHRlbmFudD8udXNlcj8uc3NvQXV0aGVudGljYXRlZDtcbiAgICAgICAgICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS51c2UoTE9DQUxfRU5HTElTSF9MQU5HVUFHRSk7XG4gICAgICAgICAgICBjdHguZGlzcGF0Y2gobmV3IFRlbmFudENsZWFyQWN0aW9uKCkpO1xuICAgICAgICAgICAgY3R4LmRpc3BhdGNoKG5ldyBVbmxvYWRQYXJraW5nTG90QWN0aW9uKCkpO1xuICAgICAgICAgICAgaWYgKHNzb0VuYWJsZWQpIHtcbiAgICAgICAgICAgICAgY29uc3QgdGVuYW50TmFtZSA9IHRlbmFudD8udGVuYW50Py50ZW5hbnROYW1lO1xuICAgICAgICAgICAgICBjb25zdCBwcm92aWRlciA9IHRlbmFudD8udGVuYW50LnByb3BzPy5zc28/LnByb3ZpZGVyO1xuICAgICAgICAgICAgICBpZiAocHJvdmlkZXIgPT0gU2luZ2xlU2lnbk9uUHJvdmlkZXIuTWljcm9zb2Z0KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5tc2FsU2VydmljZS5sb2dvdXRSZWRpcmVjdCh7XG4gICAgICAgICAgICAgICAgICBwb3N0TG9nb3V0UmVkaXJlY3RVcmk6IGAvJHt0ZW5hbnROYW1lfWBcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBlbHNlIGlmIChwcm92aWRlciA9PSBTaW5nbGVTaWduT25Qcm92aWRlci5QaW5nRmVkZXJhdGUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLm9wZW5JZEF1dGhTZXJ2aWNlLnNpZ25PdXQoKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAvL3RoaXMuc2lsZW50TG9nT3V0TXNsKGN0eCwgYXBwVHlwZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSkpO1xuICAgICAgfSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBpc1RlbmFudFVuZGVmaW5lZCA9ICh0ZW5hbnQ6IFRlbmFudEluZm8sIHNlc3Npb246IFNwYXJrU2Vzc2lvbikgPT4gIXRlbmFudCB8fCAhc2Vzc2lvbjtcblxuICBzaWxlbnRMb2dPdXRNc2woY3R4OiBTdGF0ZUNvbnRleHQ8U2Vzc2lvblN0YXRlTW9kZWw+LCBhcHBUeXBlOiBBcHBUeXBlKSB7XG4gICAgY29uc3QgY2xlYXJDYWNoZVJlcXVlc3Q6IENsZWFyQ2FjaGVSZXF1ZXN0ID0ge1xuICAgICAgYWNjb3VudDogdGhpcy5tc2FsU2VydmljZS5pbnN0YW5jZS5nZXRBbGxBY2NvdW50cygpWzBdLFxuICAgIH07XG5cbiAgICB0aGlzLm1zYWxTZXJ2aWNlLmluc3RhbmNlLmNsZWFyQ2FjaGUoY2xlYXJDYWNoZVJlcXVlc3QpO1xuICAgIGxvY2FsU3RvcmFnZS5jbGVhcigpO1xuICAgIHNlc3Npb25TdG9yYWdlLmNsZWFyKCk7XG5cbiAgICBjb25zdCBwYXRoID0gZ2V0TmF2aWdhdGlvblJvdXRlKFNlc3Npb25TdGF0ZS50ZW5hbnRJbmZvKGN0eC5nZXRTdGF0ZSgpKSwgYXBwVHlwZSwgWydhY2NvdW50JywgJ2xvZ2luJ10pO1xuICAgIGN0eC5kaXNwYXRjaChuZXcgTmF2aWdhdGUocGF0aCkpO1xuICB9XG5cbiAgQEFjdGlvbihUZW5hbnRMb2FkQWN0aW9uKVxuICBwdWJsaWMgb25UZW5hbnRMb2FkQWN0aW9uKGN0eDogU3RhdGVDb250ZXh0PFNlc3Npb25TdGF0ZU1vZGVsPiwgYWN0aW9uOiBUZW5hbnRMb2FkQWN0aW9uKSB7XG4gICAgY29uc3QgdGVuYW50TmFtZSA9IGFjdGlvbi50ZW5hbnQ/LnRlbmFudE5hbWUudG9Mb3dlckNhc2UoKTtcbiAgICBjb25zdCBzcGFya1Nlc3Npb25zID0gdGhpcy5nZXRTcGFya1Nlc3Npb25zKCk7XG4gICAgaWYgKCFzcGFya1Nlc3Npb25zW3RlbmFudE5hbWVdKSB7XG4gICAgICBzcGFya1Nlc3Npb25zW3RlbmFudE5hbWVdID0geyB1c2VyOiBudWxsLCBhdXRoVG9rZW46IG51bGwsIHJlZnJlc2g6IG51bGwsIHRlbmFudDogYWN0aW9uLnRlbmFudCB9O1xuICAgIH0gZWxzZSB7XG4gICAgICBzcGFya1Nlc3Npb25zW3RlbmFudE5hbWVdLnRlbmFudCA9IGFjdGlvbi50ZW5hbnQ7XG4gICAgfVxuXG4gICAgdGhpcy5zZXRTcGFya1Nlc3Npb25zKGN0eCwgc3BhcmtTZXNzaW9ucyk7XG4gIH1cblxuICBAQWN0aW9uKFRlbmFudENsZWFyQWN0aW9uKVxuICBwdWJsaWMgb25UZW5hbnRDbGVhckFjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxTZXNzaW9uU3RhdGVNb2RlbD4sIF86IFRlbmFudENsZWFyQWN0aW9uKSB7XG4gICAgY29uc3Qgc3BhcmtTZXNzaW9ucyA9IHRoaXMuZ2V0U3BhcmtTZXNzaW9ucygpO1xuICAgIGNvbnN0IHNwYXJrU2Vzc2lvbiA9IHNwYXJrU2Vzc2lvbnNbdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UudGVuYW50XTtcbiAgICBpZiAoc3BhcmtTZXNzaW9uKSB7XG4gICAgICBzcGFya1Nlc3Npb24udXNlciA9IG51bGw7XG4gICAgICBzcGFya1Nlc3Npb24ucmVmcmVzaCA9IG51bGw7XG4gICAgICBzcGFya1Nlc3Npb24uYXV0aFRva2VuID0gbnVsbDtcbiAgICAgIGlmIChzcGFya1Nlc3Npb24uYXBwQ29uZmlndXJhdGlvbikge1xuICAgICAgICBzcGFya1Nlc3Npb24uYXBwQ29uZmlndXJhdGlvbi5hbmFseXRpY3NUb2tlbiA9ICcnO1xuICAgICAgICBzcGFya1Nlc3Npb24uYXBwQ29uZmlndXJhdGlvbi5mZWVkYmFja1Rva2VuID0gJyc7XG4gICAgICB9XG4gICAgICB0aGlzLnNldFNwYXJrU2Vzc2lvbnMoY3R4LCBzcGFya1Nlc3Npb25zKTtcbiAgICB9XG4gIH1cblxuICBAQWN0aW9uKEhlYWx0aEFjdGlvbilcbiAgcHVibGljIG9uSGVhbHRoQWN0aW9uQWN0aW9uKGN0eDogU3RhdGVDb250ZXh0PFNlc3Npb25TdGF0ZU1vZGVsPikge1xuICAgIGNvbnN0IGVudmlyb25tZW50VmFyaWFibGUkID0gdGhpcy5jb25maWd1cmF0aW9uU2VydmljZVByb3h5LmdldEhlYWx0aCgpO1xuICAgIHJldHVybiBlbnZpcm9ubWVudFZhcmlhYmxlJC5waXBlKHRhcChlbnZpcm9ubWVudFZhcmlhYmxlID0+IHtcbiAgICAgIHRoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLnNldEl0ZW0oRU5WSVJPTk1FTlQsIEpTT04uc3RyaW5naWZ5KGVudmlyb25tZW50VmFyaWFibGUuZGF0YS5lbnZpcm9ubWVudCkpO1xuICAgICAgY3R4LnBhdGNoU3RhdGUoeyBzZXJ2ZXJFbnZpcm9ubWVudE1vZGU6IGVudmlyb25tZW50VmFyaWFibGUuZGF0YS5lbnZpcm9ubWVudCB9KTtcbiAgICB9KSk7XG4gIH1cblxuICBAQWN0aW9uKFVwZGF0ZVVzZXJTZXR0aW5nc0luU2Vzc2lvbkFjdGlvbilcbiAgcHVibGljIG9uVXBkYXRlVXNlclNldHRpbmdzKGN0eDogU3RhdGVDb250ZXh0PFNlc3Npb25TdGF0ZU1vZGVsPiwgeyB1c2VyU2V0dGluZ3MgfSkge1xuICAgIGNvbnN0IHNwYXJrU2Vzc2lvbnMgPSB0aGlzLmdldFNwYXJrU2Vzc2lvbnMoKTtcbiAgICBzcGFya1Nlc3Npb25zW3RoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLnRlbmFudF0udXNlci5zZXR0aW5ncyA9IHVzZXJTZXR0aW5ncztcbiAgICB0aGlzLnNldFNwYXJrU2Vzc2lvbnMoY3R4LCBzcGFya1Nlc3Npb25zKTtcbiAgfVxuXG4gIEBBY3Rpb24oVXBkYXRlVGVuYW50SW5mb1Byb3BzKVxuICBwdWJsaWMgb25VcGRhdGVUZW5hbnRJbmZvUHJvcHMoY3R4OiBTdGF0ZUNvbnRleHQ8U2Vzc2lvblN0YXRlTW9kZWw+LCB7IHByb3BzIH0pIHtcbiAgICBjb25zdCBzcGFya1Nlc3Npb25zID0gdGhpcy5nZXRTcGFya1Nlc3Npb25zKCk7XG4gICAgc3BhcmtTZXNzaW9uc1t0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZS50ZW5hbnRdLnRlbmFudC5wcm9wcyA9IHByb3BzO1xuICAgIHRoaXMuc2V0U3BhcmtTZXNzaW9ucyhjdHgsIHNwYXJrU2Vzc2lvbnMpO1xuICB9XG5cbiAgQEFjdGlvbihBdXRoZW50aWNhdGUyRkFmb3JVc2VyKVxuICBwdWJsaWMgb25BdXRoZW50aWNhdGUyRkFmb3JVc2VyKGN0eDogU3RhdGVDb250ZXh0PFNlc3Npb25TdGF0ZU1vZGVsPiwgeyB9KSB7XG4gICAgY29uc3Qgc3BhcmtTZXNzaW9ucyA9IHRoaXMuZ2V0U3BhcmtTZXNzaW9ucygpO1xuICAgIGlmIChzcGFya1Nlc3Npb25zW3RoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLnRlbmFudF0/LnVzZXIpIHtcbiAgICAgIHNwYXJrU2Vzc2lvbnNbdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UudGVuYW50XS51c2VyLmF1dGhlbnRpY2F0ZWQyRkEgPSB0cnVlO1xuICAgICAgdGhpcy5zZXRTcGFya1Nlc3Npb25zKGN0eCwgc3BhcmtTZXNzaW9ucyk7XG4gICAgfVxuICB9XG5cbiAgQEFjdGlvbihJbml0U2Vzc2lvbkZyb21Mb2NhbFN0b3JhZ2VBY3Rpb24pXG4gIHB1YmxpYyBvbkxvYWRTZXNzaW9uRnJvbUxvY2FsU3RvcmFnZUFjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxTZXNzaW9uU3RhdGVNb2RlbD4sIF86IEluaXRTZXNzaW9uRnJvbUxvY2FsU3RvcmFnZUFjdGlvbikge1xuICAgIGNvbnN0IGRhdGEgPSB0aGlzLmxvY2FsU3RvcmFnZVNlcnZpY2UuZ2V0SXRlbShTRVNTSU9OKTtcbiAgICBjb25zdCBzZXNzaW9uOiB7XG4gICAgICBhcHBsaWNhdGlvbjogQXBwbGljYXRpb25JbmZvLFxuICAgICAgc3BhcmtTZXNzaW9uczogU3RyaW5nTWFwPFNwYXJrU2Vzc2lvbj4sXG4gICAgfSA9IGRhdGEgPyBKU09OLnBhcnNlKGRhdGEpIDogZGVmYXVsdFNlc3Npb25TdGF0ZTtcbiAgICBjdHgucGF0Y2hTdGF0ZSh7XG4gICAgICBhcHBsaWNhdGlvbjogc2Vzc2lvbi5hcHBsaWNhdGlvbixcbiAgICAgIHNwYXJrU2Vzc2lvbnM6IHNlc3Npb24uc3BhcmtTZXNzaW9uc1xuICAgIH0pO1xuICAgIGlmICh0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZS50ZW5hbnQpIHtcbiAgICAgIGNvbnN0IHNwYXJrU2Vzc2lvbiA9IHNlc3Npb24uc3BhcmtTZXNzaW9uc1t0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZS50ZW5hbnRdO1xuICAgICAgdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2Uuc2V0QXV0aFNlc3Npb24oc3BhcmtTZXNzaW9uPy5hdXRoVG9rZW4sIHNwYXJrU2Vzc2lvbj8ucmVmcmVzaCk7XG4gICAgfVxuICB9XG5cbiAgQEFjdGlvbihMb2FkQmFja29mZmljZUFwcENvbmZpZ3VyYXRpb25BY3Rpb24pXG4gIHB1YmxpYyBvbkJhY2tvZmZpY2VBcHBDb25maWd1cmF0aW9uQWN0aW9uKGN0eDogU3RhdGVDb250ZXh0PFNlc3Npb25TdGF0ZU1vZGVsPikge1xuICAgIGNvbnN0IGFwcENvbmZpZ3VyYXRpb24kID0gdGhpcy5iYWNrb2ZmaWNlU2VydmljZVByb3h5LmdldEJhY2tvZmZpY2VBcHBDb25maWd1cmF0aW9uKCk7XG4gICAgcmV0dXJuIGFwcENvbmZpZ3VyYXRpb24kLnBpcGUodGFwKGFwcENvbmZpZ3VyYXRpb24gPT4ge1xuICAgICAgY29uc3Qgc3BhcmtTZXNzaW9ucyA9IHRoaXMuZ2V0U3BhcmtTZXNzaW9ucygpO1xuICAgICAgaWYgKHRoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLnRlbmFudCkge1xuICAgICAgICBzcGFya1Nlc3Npb25zW3RoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLnRlbmFudF0uYXBwQ29uZmlndXJhdGlvbiA9IGFwcENvbmZpZ3VyYXRpb24uZGF0YTtcbiAgICAgICAgdGhpcy5zZXRTcGFya1Nlc3Npb25zKGN0eCwgc3BhcmtTZXNzaW9ucyk7XG4gICAgICB9XG4gICAgfSkpO1xuICB9XG5cbiAgQEFjdGlvbihMb2FkQXBwQ29uZmlndXJhdGlvbkFjdGlvbilcbiAgcHVibGljIG9uQXBwQ29uZmlndXJhdGlvbkFjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxTZXNzaW9uU3RhdGVNb2RlbD4pIHtcbiAgICBjb25zdCBhcHBDb25maWd1cmF0aW9uJCA9IHRoaXMuY29uZmlndXJhdGlvblNlcnZpY2VQcm94eS5nZXRBcHBDb25maWd1cmF0aW9uKCk7XG4gICAgcmV0dXJuIGFwcENvbmZpZ3VyYXRpb24kLnBpcGUodGFwKGFwcENvbmZpZ3VyYXRpb24gPT4ge1xuICAgICAgY29uc3Qgc3BhcmtTZXNzaW9ucyA9IHRoaXMuZ2V0U3BhcmtTZXNzaW9ucygpO1xuICAgICAgaWYgKHRoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLnRlbmFudCkge1xuICAgICAgICBzcGFya1Nlc3Npb25zW3RoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLnRlbmFudF0uYXBwQ29uZmlndXJhdGlvbiA9IGFwcENvbmZpZ3VyYXRpb24uZGF0YTtcbiAgICAgICAgdGhpcy5zZXRTcGFya1Nlc3Npb25zKGN0eCwgc3BhcmtTZXNzaW9ucyk7XG4gICAgICB9XG4gICAgfSkpO1xuICB9XG5cbiAgQEFjdGlvbihMb2FkQXBwQ29uZmlndXJhdGlvbk1vYmlsZUFjdGlvbilcbiAgcHVibGljIG9uTG9hZEFwcENvbmZpZ3VyYXRpb25Nb2JpbGVBY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8U2Vzc2lvblN0YXRlTW9kZWw+KSB7XG4gICAgY29uc3QgYXBwQ29uZmlndXJhdGlvbiQgPSB0aGlzLm1vYmlsZVNlcnZpY2VQcm94eUlkZW50aXR5LmdldEFwcENvbmZpZ3VyYXRpb25Nb2JpbGUoVkVSU0lPTl9WMSk7XG4gICAgcmV0dXJuIGFwcENvbmZpZ3VyYXRpb24kLnBpcGUodGFwKGFwcENvbmZpZ3VyYXRpb24gPT4ge1xuICAgICAgY29uc3Qgc3BhcmtTZXNzaW9ucyA9IHRoaXMuZ2V0U3BhcmtTZXNzaW9ucygpO1xuICAgICAgaWYgKHRoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLnRlbmFudCkge1xuICAgICAgICBzcGFya1Nlc3Npb25zW3RoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLnRlbmFudF0uYXBwQ29uZmlndXJhdGlvbiA9IGFwcENvbmZpZ3VyYXRpb24uZGF0YTtcbiAgICAgICAgdGhpcy5zZXRTcGFya1Nlc3Npb25zKGN0eCwgc3BhcmtTZXNzaW9ucyk7XG4gICAgICB9XG4gICAgfSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRTcGFya1Nlc3Npb25zID0gKCk6IFN0cmluZ01hcDxTcGFya1Nlc3Npb24+ID0+IEpTT04ucGFyc2UodGhpcy5sb2NhbFN0b3JhZ2VTZXJ2aWNlLmdldEl0ZW0oU0VTU0lPTikpPy5zcGFya1Nlc3Npb25zID8/IHt9O1xuICBwcml2YXRlIHNldFNwYXJrU2Vzc2lvbnMgPSAoY3R4OiBTdGF0ZUNvbnRleHQ8U2Vzc2lvblN0YXRlTW9kZWw+LCBzcGFya1Nlc3Npb25zOiBTdHJpbmdNYXA8U3BhcmtTZXNzaW9uPik6IHZvaWQgPT4ge1xuICAgIGNvbnN0IGFwcGxpY2F0aW9uID0gY3R4LmdldFN0YXRlKCkuYXBwbGljYXRpb247XG4gICAgdGhpcy5sb2NhbFN0b3JhZ2VTZXJ2aWNlLnNldEl0ZW0oU0VTU0lPTiwgSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgYXBwbGljYXRpb24sXG4gICAgICBzcGFya1Nlc3Npb25zOiBzcGFya1Nlc3Npb25zXG4gICAgfSkpO1xuICAgIGN0eC5wYXRjaFN0YXRlKHsgc3BhcmtTZXNzaW9ucyB9KTtcbiAgfTtcbn1cbiJdfQ==
|
|
489
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Vzc2lvbi5zdGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC1zaGFyZWQtbGliL3NyYy9saWJyYXJpZXMvbW9kdWxlcy9hdXRoL3Nlc3Npb24uc3RhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxhQUFhLEVBQVUsTUFBTSxpQkFBaUIsQ0FBQztBQUl4RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDL0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFnQixNQUFNLGFBQWEsQ0FBQztBQUNwRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUU1RixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsV0FBVyxFQUFFLGlCQUFpQixFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNyRyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDL0QsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRXBELE9BQU8sRUFBbUUsb0JBQW9CLEVBQUUsZ0JBQWdCLEVBQXFCLE1BQU0sMkNBQTJDLENBQUM7QUFPdkwsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFbkUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDNUQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sOEJB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QUFRLEVBQUU7b0NBSVY7QUFHYTtJQURiLFFBQVEsRUFBRTt5Q0FJVjtBQUdhO0lBRGIsUUFBUSxFQUFFOzBDQUlWO0FBR2E7SUFEYixRQUFRLEVBQUU7c0NBSVY7QUFHYTtJQURiLFFBQVEsRUFBRTs0Q0FVVjtBQUdhO0lBRGIsUUFBUSxFQUFFOzBDQUlWO0FBR2E7SUFEYixRQUFRLEVBQUU7d0NBSVY7QUE5RlUsWUFBWTtJQUx4QixLQUFLLENBQW9CO1FBQ3hCLElBQUksRUFBRSxTQUFTO1FBQ2YsUUFBUSxFQUFFLG1CQUFtQjtLQUM5QixDQUFDO0dBRVcsWUFBWSxDQXFieEI7OzRGQXJiWSxZQUFZO2tCQUR4QixVQUFVOzhoQkFrR0YsT0FBTyxNQWFQLHFCQUFxQixNQTJCckIsdUJBQXVCLE1BTXZCLGVBQWUsTUFlZixpQkFBaUIsTUFRakIsaUJBQWlCLE1BeUJqQix1QkFBdUIsTUFZdkIsb0JBQW9CLE1BOENwQixRQUFRLE1Ba0VSLGtCQUFrQixNQWFsQixtQkFBbUIsTUFnQm5CLG9CQUFvQixNQVNwQixvQkFBb0IsTUFPcEIsdUJBQXVCLE1BT3ZCLHdCQUF3QixNQVN4QixtQ0FBbUMsTUFpQm5DLGtDQUFrQyxNQVlsQyx3QkFBd0IsTUFZeEIsa0NBQWtDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmF2aWdhdGlvbkVuZCwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IE1zYWxTZXJ2aWNlIH0gZnJvbSAnQGF6dXJlL21zYWwtYW5ndWxhcic7XG5pbXBvcnQgeyBDbGVhckNhY2hlUmVxdWVzdCB9IGZyb20gJ0BhenVyZS9tc2FsLWJyb3dzZXInO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgTmF2aWdhdGUgfSBmcm9tICdAbmd4cy9yb3V0ZXItcGx1Z2luJztcbmltcG9ydCB7IEFjdGlvbiwgU2VsZWN0b3IsIFN0YXRlLCBTdGF0ZUNvbnRleHQgfSBmcm9tICdAbmd4cy9zdG9yZSc7XG5pbXBvcnQgeyBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgZmlsdGVyLCBmaXJzdCwgb2YsIHN3aXRjaE1hcCwgdGFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBNZXNzYWdlQmFyUG9zaXRpb24gfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL21lc3NhZ2UtYmFyL21lc3NhZ2UtYmFyLXBvc2l0aW9uLmVudW0nO1xuaW1wb3J0IHsgTWVzc2FnZUJhclNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL21lc3NhZ2UtYmFyL21lc3NhZ2UtYmFyLnNlcnZpY2UnO1xuaW1wb3J0IHsgTE9DQUxfRU5HTElTSF9MQU5HVUFHRSB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9nbG9iYWwtY29uc3RhbnRzJztcbmltcG9ydCB7IEVOVklST05NRU5ULCBMT0dHRURfVEVOQU5UX0tFWSwgU0VTU0lPTiwgVEVOQU5UX0tFWSB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9rZXlzLWNvbnN0YW50cyc7XG5pbXBvcnQgeyBWRVJTSU9OX1YxIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzL3ZlcnNpb24tY29uc3RhbnRzJztcbmltcG9ydCB7IEFwcFR5cGUgfSBmcm9tICcuLi8uLi9lbnVtcy9hcHAtdHlwZS5lbnVtJztcbmltcG9ydCB7IFNwYXJrU2Vzc2lvbiB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvc3Bhcmstc2Vzc2lvbi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQ29uZmlndXJhdGlvblNlcnZpY2VQcm94eSwgTW9iaWxlU2VydmljZVByb3h5LCBTZXR0aW5nc0NhdGVnb3J5LCBTaW5nbGVTaWduT25Qcm92aWRlciwgU3BhcmtTZXR0aW5nc0R0bywgVXNlcnNTZXJ2aWNlUHJveHkgfSBmcm9tICcuLi8uLi9zZXJ2aWNlLXByb3h5L2Nsb3VkLXNlcnZpY2UtcHJveGllcyc7XG5pbXBvcnQgeyBNb2JpbGVTZXJ2aWNlUHJveHlJZGVudGl0eSB9IGZyb20gJy4uLy4uL3NlcnZpY2UtcHJveHkvaWRlbnRpdHktc2VydmljZS1wcm94aWVzJztcbmltcG9ydCB7IEFwcENvbmZpZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9hcHAtY29uZmlnLnNlcnZpY2UnO1xuaW1wb3J0IHsgSHR0cENhbmNlbFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9odHRwLWNhbmNlbC5zZXJ2aWNlJztcbmltcG9ydCB7IExvY2FsU3RvcmFnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9sb2NhbC1zdG9yYWdlLnNlcnZpY2UnO1xuaW1wb3J0IHsgT3BlbklkQXV0aFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9vcGVuaWQtYXV0aC5zZXJ2aWNlJztcbmltcG9ydCB7IFNlc3Npb25TdG9yYWdlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3Nlc3Npb24tc3RvcmFnZS5zZXJ2aWNlJztcbmltcG9ydCB7IHBhcnNlQXBpRXJyb3JNZXNzYWdlIH0gZnJvbSAnLi4vLi4vdXRpbHMvYXBpLWhlbHBlci51dGlsJztcbmltcG9ydCB7IFN0cmluZ01hcCB9IGZyb20gJy4uLy4uL3V0aWxzL2xhbmcudXRpbCc7XG5pbXBvcnQgeyBnZXROYXZpZ2F0aW9uUm91dGUgfSBmcm9tICcuLi8uLi91dGlscy9yb3V0ZS51dGlsJztcbmltcG9ydCB7IFVubG9hZFBhcmtpbmdMb3RBY3Rpb24gfSBmcm9tICcuLi9mYWNpbGl0eS9mYWNpbGl0eS5hY3Rpb25zJztcbmltcG9ydCB7IEJhY2tvZmZpY2VTZXJ2aWNlUHJveHkgfSBmcm9tICcuLy4uLy4uL3NlcnZpY2UtcHJveHkvY2xvdWQtc2VydmljZS1wcm94aWVzJztcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi9hdXRoLnNlcnZpY2UnO1xuaW1wb3J0IHsgVXNlckluZm8gfSBmcm9tICcuL21vZGVsJztcbmltcG9ydCB7IEFwcGxpY2F0aW9uSW5mbyB9IGZyb20gJy4vbW9kZWwvYXBwbGljYXRpb24taW5mby5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgVGVuYW50SW5mbyB9IGZyb20gJy4vbW9kZWwvdGVuYW50LWluZm8uaW50ZXJmYWNlJztcbmltcG9ydCB7XG4gIEF1ZGl0TG9nb3V0QWN0aW9uLCBBdWRpdExvZ291dE1vYmlsZUFjdGlvbiwgQXV0aGVudGljYXRlMkZBZm9yVXNlcixcbiAgSGVhbHRoQWN0aW9uLCBJbml0U2Vzc2lvbkZyb21Mb2NhbFN0b3JhZ2VBY3Rpb24sIExvYWRBcHBDb25maWd1cmF0aW9uQWN0aW9uLFxuICBMb2FkQXBwQ29uZmlndXJhdGlvbk1vYmlsZUFjdGlvbixcbiAgTG9hZEJhY2tvZmZpY2VBcHBDb25maWd1cmF0aW9uQWN0aW9uLFxuICBMb2dpblJlcXVlc3RBY3Rpb24sIExvZ291dEFjdGlvbiwgTG9nb3V0TW9iaWxlQWN0aW9uLCBNb2JpbGVMb2dvdXRBY3Rpb24sIFNldFN0YXRlQWN0aW9uLCBTZXRUZW5hbnRVc2VyQWN0aW9uLCBTZXRVc2VyTmFtZUFjdGlvbixcbiAgVGVuYW50Q2xlYXJBY3Rpb24sIFRlbmFudExvYWRBY3Rpb24sIFVwZGF0ZUF1dGhUb2tlbkFjdGlvbiwgVXBkYXRlVGVuYW50SW5mb1Byb3BzLCBVcGRhdGVVc2VyU2V0dGluZ3NJblNlc3Npb25BY3Rpb25cbn0gZnJvbSAnLi9zZXNzaW9uLmFjdGlvbnMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNlc3Npb25TdGF0ZU1vZGVsIHtcbiAgc3BhcmtTZXNzaW9uczogU3RyaW5nTWFwPFNwYXJrU2Vzc2lvbj47XG4gIGFwcGxpY2F0aW9uPzogQXBwbGljYXRpb25JbmZvO1xuICBzZXJ2ZXJFbnZpcm9ubWVudE1vZGU/OiBzdHJpbmc7XG59XG5cbmNvbnN0IGRlZmF1bHRTZXNzaW9uU3RhdGUgPSB7XG4gIHNwYXJrU2Vzc2lvbnM6IHt9LFxuICBhcHBsaWNhdGlvbjogeyB2ZXJzaW9uOiBudWxsLCByZWxlYXNlRGF0ZTogbnVsbCwgZmVhdHVyZXM6IHt9IH0sXG59O1xuXG5AU3RhdGU8U2Vzc2lvblN0YXRlTW9kZWw+KHtcbiAgbmFtZTogJ3Nlc3Npb24nLFxuICBkZWZhdWx0czogZGVmYXVsdFNlc3Npb25TdGF0ZSxcbn0pXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgU2Vzc2lvblN0YXRlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIHNlc3Npb25TdG9yYWdlU2VydmljZTogU2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLFxuICAgIHByaXZhdGUgbG9jYWxTdG9yYWdlU2VydmljZTogTG9jYWxTdG9yYWdlU2VydmljZSxcbiAgICBwcml2YXRlIGFwcENvbmZpZ1NlcnZpY2U6IEFwcENvbmZpZ1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBhdXRoU2VydmljZTogQXV0aFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjb25maWd1cmF0aW9uU2VydmljZVByb3h5OiBDb25maWd1cmF0aW9uU2VydmljZVByb3h5LFxuICAgIHByaXZhdGUgYmFja29mZmljZVNlcnZpY2VQcm94eTogQmFja29mZmljZVNlcnZpY2VQcm94eSxcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgaHR0cENhbmNlbFNlcnZpY2U6IEh0dHBDYW5jZWxTZXJ2aWNlLFxuICAgIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBwcml2YXRlIG1zYWxTZXJ2aWNlOiBNc2FsU2VydmljZSxcbiAgICBwcml2YXRlIHVzZXJzU2VydmljZVByb3h5OiBVc2Vyc1NlcnZpY2VQcm94eSxcbiAgICBwcml2YXRlIG9wZW5JZEF1dGhTZXJ2aWNlOiBPcGVuSWRBdXRoU2VydmljZSxcbiAgICBwcml2YXRlIG1lc3NhZ2VCYXJTZXJ2aWNlOiBNZXNzYWdlQmFyU2VydmljZSxcbiAgICBwcml2YXRlIG1vYmlsZVNlcnZpY2VQcm94eTogTW9iaWxlU2VydmljZVByb3h5LFxuICAgIHByaXZhdGUgbW9iaWxlU2VydmljZVByb3h5SWRlbnRpdHk6IE1vYmlsZVNlcnZpY2VQcm94eUlkZW50aXR5KSB7XG4gIH1cblxuICBAU2VsZWN0b3IoKVxuICBwdWJsaWMgc3RhdGljIGlzVXNlckF1dGhlbnRpY2F0ZWRXaXRoU1NPKHN0YXRlOiBTZXNzaW9uU3RhdGVNb2RlbCkge1xuICAgIGNvbnN0IHRlbmFudE5hbWUgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKFRFTkFOVF9LRVkpO1xuICAgIHJldHVybiBzdGF0ZS5zcGFya1Nlc3Npb25zW3RlbmFudE5hbWVdPy51c2VyPy5zc29BdXRoZW50aWNhdGVkO1xuICB9XG5cbiAgQFNlbGVjdG9yKClcbiAgcHVibGljIHN0YXRpYyBpc1VzZXJBdXRoZW50aWNhdGVkV2l0aDJGQShzdGF0ZTogU2Vzc2lvblN0YXRlTW9kZWwpIHtcbiAgICBjb25zdCB0ZW5hbnROYW1lID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShURU5BTlRfS0VZKTtcbiAgICByZXR1cm4gc3RhdGUuc3BhcmtTZXNzaW9uc1t0ZW5hbnROYW1lXT8udXNlci5hdXRoZW50aWNhdGVkMkZBO1xuICB9XG5cbiAgQFNlbGVjdG9yKClcbiAgcHVibGljIHN0YXRpYyBzZXJ2ZXJFbnZpcm9ubWVudE1vZGUoc3RhdGU6IFNlc3Npb25TdGF0ZU1vZGVsKSB7XG4gICAgcmV0dXJuIHN0YXRlLnNlcnZlckVudmlyb25tZW50TW9kZTtcbiAgfVxuXG4gIEBTZWxlY3RvcigpXG4gIHB1YmxpYyBzdGF0aWMgdXNlckluZm8oc3RhdGU6IFNlc3Npb25TdGF0ZU1vZGVsKTogVXNlckluZm8ge1xuICAgIGNvbnN0IHRlbmFudE5hbWUgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKFRFTkFOVF9LRVkpO1xuICAgIHJldHVybiBzdGF0ZS5zcGFya1Nlc3Npb25zW3RlbmFudE5hbWVdPy51c2VyO1xuICB9XG5cbiAgQFNlbGVjdG9yKClcbiAgcHVibGljIHN0YXRpYyBsb2dnZWRVc2VySW5mbyhzdGF0ZTogU2Vzc2lvblN0YXRlTW9kZWwpOiBVc2VySW5mbyB7XG4gICAgY29uc3QgdGVuYW50TmFtZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oTE9HR0VEX1RFTkFOVF9LRVkpO1xuICAgIHJldHVybiBzdGF0ZS5zcGFya1Nlc3Npb25zW3RlbmFudE5hbWVdPy51c2VyO1xuICB9XG5cbiAgQFNlbGVjdG9yKClcbiAgcHVibGljIHN0YXRpYyB0ZW5hbnRJbmZvKHN0YXRlOiBTZXNzaW9uU3RhdGVNb2RlbCkge1xuICAgIGNvbnN0IHRlbmFudE5hbWUgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKFRFTkFOVF9LRVkpO1xuICAgIHJldHVybiBzdGF0ZS5zcGFya1Nlc3Npb25zW3RlbmFudE5hbWVdPy50ZW5hbnQ7XG4gIH1cblxuICBAU2VsZWN0b3IoKVxuICBwdWJsaWMgc3RhdGljIHRoaXJkUGFydHlUb2tlbihzdGF0ZTogU2Vzc2lvblN0YXRlTW9kZWwpIHtcbiAgICBjb25zdCB0ZW5hbnROYW1lID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShURU5BTlRfS0VZKTtcbiAgICByZXR1cm4gc3RhdGUuc3BhcmtTZXNzaW9uc1t0ZW5hbnROYW1lXT8udGhpcmRQYXJ0eVRva2VuO1xuICB9XG5cbiAgQFNlbGVjdG9yKClcbiAgcHVibGljIHN0YXRpYyBsb2dnZWRUZW5hbnRJbmZvKHN0YXRlOiBTZXNzaW9uU3RhdGVNb2RlbCkge1xuICAgIGNvbnN0IHRlbmFudE5hbWUgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKExPR0dFRF9URU5BTlRfS0VZKTtcbiAgICByZXR1cm4gc3RhdGUuc3BhcmtTZXNzaW9uc1t0ZW5hbnROYW1lXT8udGVuYW50O1xuICB9XG5cbiAgQFNlbGVjdG9yKClcbiAgcHVibGljIHN0YXRpYyB1c2VyU2V0dGluZ3Moc3RhdGU6IFNlc3Npb25TdGF0ZU1vZGVsKTogU3BhcmtTZXR0aW5nc0R0b1tdIHtcbiAgICBjb25zdCB0ZW5hbnROYW1lID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShURU5BTlRfS0VZKTtcbiAgICByZXR1cm4gc3RhdGUuc3BhcmtTZXNzaW9uc1t0ZW5hbnROYW1lXT8udXNlci5zZXR0aW5ncyBhcyBTcGFya1NldHRpbmdzRHRvW107XG4gIH1cblxuICBAU2VsZWN0b3IoKVxuICBwdWJsaWMgc3RhdGljIG1hcHBlZFVzZXJTZXR0aW5ncyhzdGF0ZTogU2Vzc2lvblN0YXRlTW9kZWwpIHtcbiAgICBjb25zdCB0ZW5hbnROYW1lID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShURU5BTlRfS0VZKTtcbiAgICByZXR1cm4gc3RhdGUuc3BhcmtTZXNzaW9uc1t0ZW5hbnROYW1lXT8udXNlci5zZXR0aW5ncy5yZWR1Y2UoKHNldHRpbmdzTWFwLCB1c2VyU2V0dGluZykgPT5cbiAgICAgIHNldHRpbmdzTWFwLnNldChcbiAgICAgICAgdXNlclNldHRpbmcuY2F0ZWdvcnksXG4gICAgICAgIHR5cGVvZiB1c2VyU2V0dGluZy5zZXR0aW5nc0pzb24gPT09ICdzdHJpbmcnXG4gICAgICAgICAgPyBKU09OLnBhcnNlKHVzZXJTZXR0aW5nLnNldHRpbmdzSnNvbilcbiAgICAgICAgICA6IHVzZXJTZXR0aW5nLnNldHRpbmdzSnNvblxuICAgICAgKSwgbmV3IE1hcDxTZXR0aW5nc0NhdGVnb3J5LCBhbnk+KCkpO1xuICB9XG5cbiAgQFNlbGVjdG9yKClcbiAgcHVibGljIHN0YXRpYyBhcHBDb25maWd1cmF0aW9uKHN0YXRlOiBTZXNzaW9uU3RhdGVNb2RlbCkge1xuICAgIGNvbnN0IHRlbmFudE5hbWUgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKExPR0dFRF9URU5BTlRfS0VZKTtcbiAgICByZXR1cm4gc3RhdGUuc3BhcmtTZXNzaW9uc1t0ZW5hbnROYW1lXT8uYXBwQ29uZmlndXJhdGlvbjtcbiAgfVxuXG4gIEBTZWxlY3RvcigpXG4gIHB1YmxpYyBzdGF0aWMga2VlcE1lTG9nZ2VkSW4oc3RhdGU6IFNlc3Npb25TdGF0ZU1vZGVsKTogYm9vbGVhbiB7XG4gICAgY29uc3QgdGVuYW50TmFtZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oVEVOQU5UX0tFWSk7XG4gICAgcmV0dXJuIHN0YXRlLnNwYXJrU2Vzc2lvbnNbdGVuYW50TmFtZV0/LnVzZXIua2VlcE1lTG9nZ2VkSW4gPz8gZmFsc2U7XG4gIH1cblxuICBAQWN0aW9uKExvZ2luUmVxdWVzdEFjdGlvbilcbiAgcHVibGljIG9uTG9naW4oY3R4OiBTdGF0ZUNvbnRleHQ8U2Vzc2lvblN0YXRlTW9kZWw+LCBhY3Rpb246IExvZ2luUmVxdWVzdEFjdGlvbikge1xuICAgIHJldHVybiB0aGlzLmF1dGhTZXJ2aWNlLmxvZ2luKGFjdGlvbikucGlwZSh0YXAoe1xuICAgICAgbmV4dDogc3BhcmtTZXNzaW9uID0+IHtcbiAgICAgICAgdGhpcy5TZXRUZW5hbnRVc2VyQWN0aW9uKGN0eCwgc3BhcmtTZXNzaW9uKTtcbiAgICAgIH0sXG4gICAgICBlcnJvcjogZSA9PiB7XG4gICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBwYXJzZUFwaUVycm9yTWVzc2FnZShlKTtcbiAgICAgICAgdGhpcy5tZXNzYWdlQmFyU2VydmljZS5lcnJvcih0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChtZXNzYWdlKSwgeyBwb3NpdGlvbjogTWVzc2FnZUJhclBvc2l0aW9uLlN0YXRpYyB9KTtcbiAgICAgIH1cbiAgICB9KSk7XG4gIH1cblxuICBAQWN0aW9uKFNldFRlbmFudFVzZXJBY3Rpb24pXG4gIHB1YmxpYyBvblNldFRlbmFudFVzZXJBY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8U2Vzc2lvblN0YXRlTW9kZWw+LCB7IHNwYXJrU2Vzc2lvbiB9OiBTZXRUZW5hbnRVc2VyQWN0aW9uKSB7XG4gICAgdGhpcy5TZXRUZW5hbnRVc2VyQWN0aW9uKGN0eCwgc3BhcmtTZXNzaW9uKTtcbiAgfVxuXG4gIHByaXZhdGUgU2V0VGVuYW50VXNlckFjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxTZXNzaW9uU3RhdGVNb2RlbD4sIHNwYXJrU2Vzc2lvbjogU3BhcmtTZXNzaW9uKSB7XG4gICAgY29uc3Qgc3BhcmtTZXNzaW9ucyA9IHRoaXMuZ2V0U3BhcmtTZXNzaW9ucygpO1xuICAgIGNvbnN0IHsgdXNlciwgYXV0aFRva2VuLCByZWZyZXNoLCB0aGlyZFBhcnR5VG9rZW4gfSA9IHNwYXJrU2Vzc2lvbjtcbiAgICB1c2VyLnNldHRpbmdzID0gdXNlci5zZXR0aW5ncy5tYXAocyA9PiB7XG4gICAgICByZXR1cm4gbmV3IFNwYXJrU2V0dGluZ3NEdG8oe1xuICAgICAgICBjYXRlZ29yeTogcy5jYXRlZ29yeSxcbiAgICAgICAgc2V0dGluZ3NKc29uOiBKU09OLnBhcnNlKHMuc2V0dGluZ3NKc29uKVxuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBpZiAoIXNwYXJrU2Vzc2lvbnNbdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UudGVuYW50XSkge1xuICAgICAgc3BhcmtTZXNzaW9uc1t0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZS50ZW5hbnRdID0geyB1c2VyLCBhdXRoVG9rZW4sIHJlZnJlc2gsIHRlbmFudDogbnVsbCwgdGhpcmRQYXJ0eVRva2VuIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIHNwYXJrU2Vzc2lvbnNbdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UudGVuYW50XS51c2VyID0gdXNlcjtcbiAgICAgIHNwYXJrU2Vzc2lvbnNbdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UudGVuYW50XS5hdXRoVG9rZW4gPSBhdXRoVG9rZW47XG4gICAgICBzcGFya1Nlc3Npb25zW3RoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLnRlbmFudF0ucmVmcmVzaCA9IHJlZnJlc2g7XG4gICAgICBzcGFya1Nlc3Npb25zW3RoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLnRlbmFudF0udGhpcmRQYXJ0eVRva2VuID0gdGhpcmRQYXJ0eVRva2VuO1xuICAgIH1cblxuICAgIHRoaXMuc2V0U3BhcmtTZXNzaW9ucyhjdHgsIHNwYXJrU2Vzc2lvbnMpO1xuICB9XG5cbiAgQEFjdGlvbihVcGRhdGVBdXRoVG9rZW5BY3Rpb24pXG4gIHB1YmxpYyBvblVwZGF0ZUF1dGhUb2tlbkFjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxTZXNzaW9uU3RhdGVNb2RlbD4sIGFjdGlvbjogVXBkYXRlQXV0aFRva2VuQWN0aW9uKSB7XG4gICAgY29uc3Qgc3BhcmtTZXNzaW9ucyA9IHRoaXMuZ2V0U3BhcmtTZXNzaW9ucygpO1xuICAgIHNwYXJrU2Vzc2lvbnNbdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UudGVuYW50XS5hdXRoVG9rZW4gPSBhY3Rpb24uYXV0aFRva2VuO1xuICB9XG5cbiAgQEFjdGlvbihTZXRTdGF0ZUFjdGlvbilcbiAgcHVibGljIHNldFNlc3Npb25TdGF0ZShjdHg6IFN0YXRlQ29udGV4dDxTZXNzaW9uU3RhdGVNb2RlbD4sIGFjdGlvbjogU2V0U3RhdGVBY3Rpb24pIHtcbiAgICBjb25zdCBzcGFya1Nlc3Npb25zID0gdGhpcy5nZXRTcGFya1Nlc3Npb25zKCk7XG4gICAgc3BhcmtTZXNzaW9uc1t0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZS50ZW5hbnRdLmF1dGhUb2tlbiA9IGFjdGlvbi5hdXRoVG9rZW47XG4gICAgc3BhcmtTZXNzaW9uc1t0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZS50ZW5hbnRdLnJlZnJlc2ggPSBhY3Rpb24ucmVmcmVzaDtcblxuICAgIGNvbnN0IGFwcGxpY2F0aW9uOiBBcHBsaWNhdGlvbkluZm8gPSB7XG4gICAgICB2ZXJzaW9uOiB0aGlzLmFwcENvbmZpZ1NlcnZpY2UuZ2V0Q29uZmlnKCkucGFja2FnZUluZm8udmVyc2lvbixcbiAgICAgIHJlbGVhc2VEYXRlOiBudWxsLFxuICAgICAgZmVhdHVyZXM6IHt9LFxuICAgIH07XG4gICAgY3R4LnBhdGNoU3RhdGUoeyBhcHBsaWNhdGlvbiB9KTtcbiAgICB0aGlzLnNldFNwYXJrU2Vzc2lvbnMoY3R4LCBzcGFya1Nlc3Npb25zKTtcbiAgfVxuXG4gIEBBY3Rpb24oU2V0VXNlck5hbWVBY3Rpb24pXG4gIHB1YmxpYyBTZXRVc2VyTmFtZUFjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxTZXNzaW9uU3RhdGVNb2RlbD4sIGFjdGlvbjogU2V0VXNlck5hbWVBY3Rpb24pIHtcbiAgICBjb25zdCB0ZW5hbnROYW1lID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShURU5BTlRfS0VZKTtcbiAgICBjb25zdCBzcGFya1Nlc3Npb25zID0gdGhpcy5nZXRTcGFya1Nlc3Npb25zKCk7XG4gICAgc3BhcmtTZXNzaW9uc1t0ZW5hbnROYW1lXS51c2VyLmRpc3BsYXlOYW1lID0gYWN0aW9uLnVzZXJOYW1lO1xuICAgIHRoaXMuc2V0U3BhcmtTZXNzaW9ucyhjdHgsIHNwYXJrU2Vzc2lvbnMpO1xuICB9XG5cbiAgQEFjdGlvbihBdWRpdExvZ291dEFjdGlvbilcbiAgcHVibGljIEF1ZGl0TG9nb3V0QWN0aW9uKGN0eDogU3RhdGVDb250ZXh0PFNlc3Npb25TdGF0ZU1vZGVsPiwgYWN0aW9uOiBBdWRpdExvZ291dEFjdGlvbikge1xuICAgIGNvbnN0IHNwYXJrU2Vzc2lvbnMgPSB0aGlzLmdldFNwYXJrU2Vzc2lvbnMoKTtcbiAgICBjb25zdCB0ZW5hbnROYW1lID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShURU5BTlRfS0VZKTtcbiAgICBjb25zdCB0ZW5hbnRJbmZvID0gY3R4LmdldFN0YXRlKCkuc3BhcmtTZXNzaW9uc1t0ZW5hbnROYW1lXT8udGVuYW50O1xuICAgIGlmICh0aGlzLmlzVGVuYW50VW5kZWZpbmVkKHRlbmFudEluZm8sIHNwYXJrU2Vzc2lvbnNbdGVuYW50TmFtZV0pKSB7XG4gICAgICByZXR1cm4gb2YobnVsbCk7IC8vIEhhbmRsZSB0aGUgY2FzZSB3aGVyZSB0ZW5hbnQgb3Igc3BhcmtTZXNzaW9ucyBhcmUgdW5kZWZpbmVkXG4gICAgfVxuICAgIHJldHVybiB0aGlzLnVzZXJzU2VydmljZVByb3h5LmF1ZGl0TG9nb3V0KCkucGlwZShcbiAgICAgIHRhcCgoKSA9PiB7IH0pKTtcbiAgfVxuXG4gIC8vVE9ETyAsIGVuYWJsZSBiYWNrb2ZmaWNlIGxvZ291dCB3aGVuICwgQkUgQXVkaXQgZm9yIGJhY2tvZmZpY2UgaXMgaW1wbGVtZW50ZWQgXG4gIC8vIEBBY3Rpb24oQXVkaXRCYWNrb2ZmaWNlQWN0aW9uKVxuICAvLyBwdWJsaWMgb25BdWRpdEJhY2tvZmZpY2VBY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8U2Vzc2lvblN0YXRlTW9kZWw+LCBhY3Rpb246IEF1ZGl0QmFja29mZmljZUFjdGlvbikge1xuICAvLyAgIGNvbnN0IHNwYXJrU2Vzc2lvbnMgPSB0aGlzLmdldFNwYXJrU2Vzc2lvbnMoKTtcbiAgLy8gICBjb25zdCB0ZW5hbnROYW1lID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShURU5BTlRfS0VZKTtcbiAgLy8gICBjb25zdCB0ZW5hbnRJbmZvID0gY3R4LmdldFN0YXRlKCkuc3BhcmtTZXNzaW9uc1t0ZW5hbnROYW1lXS50ZW5hbnQ7XG4gIC8vICAgaWYgKHRoaXMuaXNUZW5hbnRVbmRlZmluZWQodGVuYW50SW5mbywgc3BhcmtTZXNzaW9uc1t0ZW5hbnROYW1lXSkpIHtcbiAgLy8gICAgIHJldHVybiBvZihudWxsKTsgLy8gSGFuZGxlIHRoZSBjYXNlIHdoZXJlIHRlbmFudCBvciBzcGFya1Nlc3Npb25zIGFyZSB1bmRlZmluZWRcbiAgLy8gICB9XG4gIC8vICAgcmV0dXJuIHRoaXMuYmFja29mZmljZVNlcnZpY2VQcm94eS5iYWNrb2ZmaWNlQXVkaXRMb2dvdXQoKS5waXBlKFxuICAvLyAgICAgdGFwKCgpID0+IHsgfSkpO1xuICAvLyB9XG5cbiAgQEFjdGlvbihBdWRpdExvZ291dE1vYmlsZUFjdGlvbilcbiAgcHVibGljIEF1ZGl0TG9nb3V0TW9iaWxlQWN0aW9uKGN0eDogU3RhdGVDb250ZXh0PFNlc3Npb25TdGF0ZU1vZGVsPiwgYWN0aW9uOiBBdWRpdExvZ291dE1vYmlsZUFjdGlvbikge1xuICAgIGNvbnN0IHNwYXJrU2Vzc2lvbnMgPSB0aGlzLmdldFNwYXJrU2Vzc2lvbnMoKTtcbiAgICBjb25zdCB0ZW5hbnROYW1lID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShURU5BTlRfS0VZKTtcbiAgICBjb25zdCB0ZW5hbnRJbmZvID0gY3R4LmdldFN0YXRlKCkuc3BhcmtTZXNzaW9uc1t0ZW5hbnROYW1lXT8udGVuYW50O1xuICAgIGlmICh0aGlzLmlzVGVuYW50VW5kZWZpbmVkKHRlbmFudEluZm8sIHNwYXJrU2Vzc2lvbnNbdGVuYW50TmFtZV0pKSB7XG4gICAgICByZXR1cm4gb2YobnVsbCk7IC8vIEhhbmRsZSB0aGUgY2FzZSB3aGVyZSB0ZW5hbnQgb3Igc3BhcmtTZXNzaW9ucyBhcmUgdW5kZWZpbmVkXG4gICAgfVxuICAgIHJldHVybiB0aGlzLm1vYmlsZVNlcnZpY2VQcm94eS5tb2JpbGVBdWRpdExvZ291dChWRVJTSU9OX1YxKS5waXBlKFxuICAgICAgdGFwKCgpID0+IHsgfSkpO1xuICB9XG5cbiAgQEFjdGlvbihNb2JpbGVMb2dvdXRBY3Rpb24pXG4gIHB1YmxpYyBvbk1vYmlsZUxvZ291dEFjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxTZXNzaW9uU3RhdGVNb2RlbD4sIHsgbG9nb3V0QXVkaXQgfTogTW9iaWxlTG9nb3V0QWN0aW9uKSB7XG4gICAgY29uc3QgYXBwVHlwZSA9IHRoaXMuYXBwQ29uZmlnU2VydmljZS5nZXRDb25maWcoKS5hcHBUeXBlO1xuICAgIHRoaXMuaHR0cENhbmNlbFNlcnZpY2UuY2FuY2VsUGVuZGluZ1JlcXVlc3RzKCk7XG5cbiAgICBpZiAoYXBwVHlwZSA9PT0gQXBwVHlwZS5Nb2JpbGUpIHtcbiAgICAgIGN0eC5kaXNwYXRjaChuZXcgTG9nb3V0TW9iaWxlQWN0aW9uKCkpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBwYXRoID0gZ2V0TmF2aWdhdGlvblJvdXRlKFNlc3Npb25TdGF0ZS50ZW5hbnRJbmZvKGN0eC5nZXRTdGF0ZSgpKSwgYXBwVHlwZSwgWydhY2NvdW50JywgJ2xvZ2luJ10pO1xuICAgICAgY3R4LmRpc3BhdGNoKG5ldyBOYXZpZ2F0ZShwYXRoKSk7XG4gICAgfVxuXG4gICAgaWYgKGxvZ291dEF1ZGl0KSB7XG4gICAgICBjdHguZGlzcGF0Y2gobmV3IEF1ZGl0TG9nb3V0TW9iaWxlQWN0aW9uKCkpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnJvdXRlci5ldmVudHMucGlwZSggLy8gb2JzZXJ2ZSBhbGwgcm91dGUgZXZlbnRzXG4gICAgICBmaWx0ZXIoZSA9PiBlIGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCAmJiBlLnVybC5pbmNsdWRlcygnL2FjY291bnQvbG9naW4nKSksIC8vIGZpbHRlciBvbmx5IE5hdmlnYXRpb25FbmQgZXZlbnRzXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgZmlyc3QoKSxcbiAgICAgIHN3aXRjaE1hcCgoKSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmF1dGhTZXJ2aWNlLmxvZ291dCgpLnBpcGUoXG4gICAgICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHNwYXJrU2Vzc2lvbnMgPSB0aGlzLmdldFNwYXJrU2Vzc2lvbnMoKTtcbiAgICAgICAgICAgIGNvbnN0IHRlbmFudCA9IHNwYXJrU2Vzc2lvbnNbdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UudGVuYW50XTtcbiAgICAgICAgICAgIGNvbnN0IHNzb0VuYWJsZWQgPSB0ZW5hbnQ/LnVzZXI/LnNzb0F1dGhlbnRpY2F0ZWQ7XG4gICAgICAgICAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UudXNlKExPQ0FMX0VOR0xJU0hfTEFOR1VBR0UpO1xuICAgICAgICAgICAgY3R4LmRpc3BhdGNoKG5ldyBUZW5hbnRDbGVhckFjdGlvbigpKTtcbiAgICAgICAgICAgIGN0eC5kaXNwYXRjaChuZXcgVW5sb2FkUGFya2luZ0xvdEFjdGlvbigpKTtcbiAgICAgICAgICAgIGlmIChzc29FbmFibGVkKSB7XG4gICAgICAgICAgICAgIGNvbnN0IHRlbmFudE5hbWUgPSB0ZW5hbnQ/LnRlbmFudD8udGVuYW50TmFtZTtcbiAgICAgICAgICAgICAgY29uc3QgcHJvdmlkZXIgPSB0ZW5hbnQ/LnRlbmFudC5wcm9wcz8uc3NvPy5wcm92aWRlcjtcbiAgICAgICAgICAgICAgaWYgKHByb3ZpZGVyID09IFNpbmdsZVNpZ25PblByb3ZpZGVyLk1pY3Jvc29mdCkge1xuICAgICAgICAgICAgICAgIHRoaXMubXNhbFNlcnZpY2UubG9nb3V0UmVkaXJlY3Qoe1xuICAgICAgICAgICAgICAgICAgcG9zdExvZ291dFJlZGlyZWN0VXJpOiBgLyR7dGVuYW50TmFtZX1gXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgZWxzZSBpZiAocHJvdmlkZXIgPT0gU2luZ2xlU2lnbk9uUHJvdmlkZXIuUGluZ0ZlZGVyYXRlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5vcGVuSWRBdXRoU2VydmljZS5zaWduT3V0KCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgLy90aGlzLnNpbGVudExvZ091dE1zbChjdHgsIGFwcFR5cGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pKTtcbiAgICAgIH0pKTtcbiAgfVxuXG4gIEBBY3Rpb24oTG9nb3V0QWN0aW9uKVxuICBwdWJsaWMgb25Mb2dvdXQoY3R4OiBTdGF0ZUNvbnRleHQ8U2Vzc2lvblN0YXRlTW9kZWw+LCB7IGxvZ291dEF1ZGl0LCBsb2dvdXRCYWNrb2ZmaWNlQXVkaXQgfTogTG9nb3V0QWN0aW9uKSB7XG4gICAgY29uc3QgYXBwVHlwZSA9IHRoaXMuYXBwQ29uZmlnU2VydmljZS5nZXRDb25maWcoKS5hcHBUeXBlO1xuICAgIHRoaXMuaHR0cENhbmNlbFNlcnZpY2UuY2FuY2VsUGVuZGluZ1JlcXVlc3RzKCk7XG5cbiAgICBpZiAoYXBwVHlwZSA9PT0gQXBwVHlwZS5Nb2JpbGUpIHtcbiAgICAgIGN0eC5kaXNwYXRjaChuZXcgTG9nb3V0TW9iaWxlQWN0aW9uKCkpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBwYXRoID0gZ2V0TmF2aWdhdGlvblJvdXRlKFNlc3Npb25TdGF0ZS50ZW5hbnRJbmZvKGN0eC5nZXRTdGF0ZSgpKSwgYXBwVHlwZSwgWydhY2NvdW50JywgJ2xvZ2luJ10pO1xuICAgICAgY3R4LmRpc3BhdGNoKG5ldyBOYXZpZ2F0ZShwYXRoKSk7XG4gICAgfVxuXG4gICAgaWYgKGxvZ291dEF1ZGl0KSB7XG4gICAgICBjdHguZGlzcGF0Y2gobmV3IEF1ZGl0TG9nb3V0QWN0aW9uKCkpO1xuICAgIH1cblxuICAgIC8vVE9ETyAsIGVuYWJsZSBiYWNrb2ZmaWNlIGxvZ291dCB3aGVuICwgQkUgQXVkaXQgZm9yIGJhY2tvZmZpY2UgaXMgaW1wbGVtZW50ZWQgXG4gICAgLy8gaWYgKGxvZ291dEJhY2tvZmZpY2VBdWRpdCkge1xuICAgIC8vICAgY3R4LmRpc3BhdGNoKG5ldyBBdWRpdEJhY2tvZmZpY2VBY3Rpb24oKSk7XG4gICAgLy8gfVxuXG4gICAgcmV0dXJuIHRoaXMucm91dGVyLmV2ZW50cy5waXBlKCAvLyBvYnNlcnZlIGFsbCByb3V0ZSBldmVudHNcbiAgICAgIGZpbHRlcihlID0+IGUgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kICYmIGUudXJsLmluY2x1ZGVzKCcvYWNjb3VudC9sb2dpbicpKSwgLy8gZmlsdGVyIG9ubHkgTmF2aWdhdGlvbkVuZCBldmVudHNcbiAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICBmaXJzdCgpLFxuICAgICAgc3dpdGNoTWFwKCgpID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXV0aFNlcnZpY2UubG9nb3V0KCkucGlwZShcbiAgICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgICAgY29uc3Qgc3BhcmtTZXNzaW9ucyA9IHRoaXMuZ2V0U3BhcmtTZXNzaW9ucygpO1xuICAgICAgICAgICAgY29uc3QgdGVuYW50ID0gc3BhcmtTZXNzaW9uc1t0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZS50ZW5hbnRdO1xuICAgICAgICAgICAgY29uc3Qgc3NvRW5hYmxlZCA9IHRlbmFudD8udXNlcj8uc3NvQXV0aGVudGljYXRlZDtcbiAgICAgICAgICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS51c2UoTE9DQUxfRU5HTElTSF9MQU5HVUFHRSk7XG4gICAgICAgICAgICBjdHguZGlzcGF0Y2gobmV3IFRlbmFudENsZWFyQWN0aW9uKCkpO1xuICAgICAgICAgICAgY3R4LmRpc3BhdGNoKG5ldyBVbmxvYWRQYXJraW5nTG90QWN0aW9uKCkpO1xuICAgICAgICAgICAgaWYgKHNzb0VuYWJsZWQpIHtcbiAgICAgICAgICAgICAgY29uc3QgdGVuYW50TmFtZSA9IHRlbmFudD8udGVuYW50Py50ZW5hbnROYW1lO1xuICAgICAgICAgICAgICBjb25zdCBwcm92aWRlciA9IHRlbmFudD8udGVuYW50LnByb3BzPy5zc28/LnByb3ZpZGVyO1xuICAgICAgICAgICAgICBpZiAocHJvdmlkZXIgPT0gU2luZ2xlU2lnbk9uUHJvdmlkZXIuTWljcm9zb2Z0KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5tc2FsU2VydmljZS5sb2dvdXRSZWRpcmVjdCh7XG4gICAgICAgICAgICAgICAgICBwb3N0TG9nb3V0UmVkaXJlY3RVcmk6IGxvZ291dEJhY2tvZmZpY2VBdWRpdCA/ICcvJyA6IGAvJHt0ZW5hbnROYW1lfWBcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBlbHNlIGlmIChwcm92aWRlciA9PSBTaW5nbGVTaWduT25Qcm92aWRlci5QaW5nRmVkZXJhdGUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLm9wZW5JZEF1dGhTZXJ2aWNlLnNpZ25PdXQoKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAvL3RoaXMuc2lsZW50TG9nT3V0TXNsKGN0eCwgYXBwVHlwZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSkpO1xuICAgICAgfSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBpc1RlbmFudFVuZGVmaW5lZCA9ICh0ZW5hbnQ6IFRlbmFudEluZm8sIHNlc3Npb246IFNwYXJrU2Vzc2lvbikgPT4gIXRlbmFudCB8fCAhc2Vzc2lvbjtcblxuICBzaWxlbnRMb2dPdXRNc2woY3R4OiBTdGF0ZUNvbnRleHQ8U2Vzc2lvblN0YXRlTW9kZWw+LCBhcHBUeXBlOiBBcHBUeXBlKSB7XG4gICAgY29uc3QgY2xlYXJDYWNoZVJlcXVlc3Q6IENsZWFyQ2FjaGVSZXF1ZXN0ID0ge1xuICAgICAgYWNjb3VudDogdGhpcy5tc2FsU2VydmljZS5pbnN0YW5jZS5nZXRBbGxBY2NvdW50cygpWzBdLFxuICAgIH07XG5cbiAgICB0aGlzLm1zYWxTZXJ2aWNlLmluc3RhbmNlLmNsZWFyQ2FjaGUoY2xlYXJDYWNoZVJlcXVlc3QpO1xuICAgIGxvY2FsU3RvcmFnZS5jbGVhcigpO1xuICAgIHNlc3Npb25TdG9yYWdlLmNsZWFyKCk7XG5cbiAgICBjb25zdCBwYXRoID0gZ2V0TmF2aWdhdGlvblJvdXRlKFNlc3Npb25TdGF0ZS50ZW5hbnRJbmZvKGN0eC5nZXRTdGF0ZSgpKSwgYXBwVHlwZSwgWydhY2NvdW50JywgJ2xvZ2luJ10pO1xuICAgIGN0eC5kaXNwYXRjaChuZXcgTmF2aWdhdGUocGF0aCkpO1xuICB9XG5cbiAgQEFjdGlvbihUZW5hbnRMb2FkQWN0aW9uKVxuICBwdWJsaWMgb25UZW5hbnRMb2FkQWN0aW9uKGN0eDogU3RhdGVDb250ZXh0PFNlc3Npb25TdGF0ZU1vZGVsPiwgYWN0aW9uOiBUZW5hbnRMb2FkQWN0aW9uKSB7XG4gICAgY29uc3QgdGVuYW50TmFtZSA9IGFjdGlvbi50ZW5hbnQ/LnRlbmFudE5hbWUudG9Mb3dlckNhc2UoKTtcbiAgICBjb25zdCBzcGFya1Nlc3Npb25zID0gdGhpcy5nZXRTcGFya1Nlc3Npb25zKCk7XG4gICAgaWYgKCFzcGFya1Nlc3Npb25zW3RlbmFudE5hbWVdKSB7XG4gICAgICBzcGFya1Nlc3Npb25zW3RlbmFudE5hbWVdID0geyB1c2VyOiBudWxsLCBhdXRoVG9rZW46IG51bGwsIHJlZnJlc2g6IG51bGwsIHRlbmFudDogYWN0aW9uLnRlbmFudCB9O1xuICAgIH0gZWxzZSB7XG4gICAgICBzcGFya1Nlc3Npb25zW3RlbmFudE5hbWVdLnRlbmFudCA9IGFjdGlvbi50ZW5hbnQ7XG4gICAgfVxuXG4gICAgdGhpcy5zZXRTcGFya1Nlc3Npb25zKGN0eCwgc3BhcmtTZXNzaW9ucyk7XG4gIH1cblxuICBAQWN0aW9uKFRlbmFudENsZWFyQWN0aW9uKVxuICBwdWJsaWMgb25UZW5hbnRDbGVhckFjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxTZXNzaW9uU3RhdGVNb2RlbD4sIF86IFRlbmFudENsZWFyQWN0aW9uKSB7XG4gICAgY29uc3Qgc3BhcmtTZXNzaW9ucyA9IHRoaXMuZ2V0U3BhcmtTZXNzaW9ucygpO1xuICAgIGNvbnN0IHNwYXJrU2Vzc2lvbiA9IHNwYXJrU2Vzc2lvbnNbdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UudGVuYW50XTtcbiAgICBpZiAoc3BhcmtTZXNzaW9uKSB7XG4gICAgICBzcGFya1Nlc3Npb24udXNlciA9IG51bGw7XG4gICAgICBzcGFya1Nlc3Npb24ucmVmcmVzaCA9IG51bGw7XG4gICAgICBzcGFya1Nlc3Npb24uYXV0aFRva2VuID0gbnVsbDtcbiAgICAgIGlmIChzcGFya1Nlc3Npb24uYXBwQ29uZmlndXJhdGlvbikge1xuICAgICAgICBzcGFya1Nlc3Npb24uYXBwQ29uZmlndXJhdGlvbi5hbmFseXRpY3NUb2tlbiA9ICcnO1xuICAgICAgICBzcGFya1Nlc3Npb24uYXBwQ29uZmlndXJhdGlvbi5mZWVkYmFja1Rva2VuID0gJyc7XG4gICAgICB9XG4gICAgICB0aGlzLnNldFNwYXJrU2Vzc2lvbnMoY3R4LCBzcGFya1Nlc3Npb25zKTtcbiAgICB9XG4gIH1cblxuICBAQWN0aW9uKEhlYWx0aEFjdGlvbilcbiAgcHVibGljIG9uSGVhbHRoQWN0aW9uQWN0aW9uKGN0eDogU3RhdGVDb250ZXh0PFNlc3Npb25TdGF0ZU1vZGVsPikge1xuICAgIGNvbnN0IGVudmlyb25tZW50VmFyaWFibGUkID0gdGhpcy5jb25maWd1cmF0aW9uU2VydmljZVByb3h5LmdldEhlYWx0aCgpO1xuICAgIHJldHVybiBlbnZpcm9ubWVudFZhcmlhYmxlJC5waXBlKHRhcChlbnZpcm9ubWVudFZhcmlhYmxlID0+IHtcbiAgICAgIHRoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLnNldEl0ZW0oRU5WSVJPTk1FTlQsIEpTT04uc3RyaW5naWZ5KGVudmlyb25tZW50VmFyaWFibGUuZGF0YS5lbnZpcm9ubWVudCkpO1xuICAgICAgY3R4LnBhdGNoU3RhdGUoeyBzZXJ2ZXJFbnZpcm9ubWVudE1vZGU6IGVudmlyb25tZW50VmFyaWFibGUuZGF0YS5lbnZpcm9ubWVudCB9KTtcbiAgICB9KSk7XG4gIH1cblxuICBAQWN0aW9uKFVwZGF0ZVVzZXJTZXR0aW5nc0luU2Vzc2lvbkFjdGlvbilcbiAgcHVibGljIG9uVXBkYXRlVXNlclNldHRpbmdzKGN0eDogU3RhdGVDb250ZXh0PFNlc3Npb25TdGF0ZU1vZGVsPiwgeyB1c2VyU2V0dGluZ3MgfSkge1xuICAgIGNvbnN0IHNwYXJrU2Vzc2lvbnMgPSB0aGlzLmdldFNwYXJrU2Vzc2lvbnMoKTtcbiAgICBzcGFya1Nlc3Npb25zW3RoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLnRlbmFudF0udXNlci5zZXR0aW5ncyA9IHVzZXJTZXR0aW5ncztcbiAgICB0aGlzLnNldFNwYXJrU2Vzc2lvbnMoY3R4LCBzcGFya1Nlc3Npb25zKTtcbiAgfVxuXG4gIEBBY3Rpb24oVXBkYXRlVGVuYW50SW5mb1Byb3BzKVxuICBwdWJsaWMgb25VcGRhdGVUZW5hbnRJbmZvUHJvcHMoY3R4OiBTdGF0ZUNvbnRleHQ8U2Vzc2lvblN0YXRlTW9kZWw+LCB7IHByb3BzIH0pIHtcbiAgICBjb25zdCBzcGFya1Nlc3Npb25zID0gdGhpcy5nZXRTcGFya1Nlc3Npb25zKCk7XG4gICAgc3BhcmtTZXNzaW9uc1t0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZS50ZW5hbnRdLnRlbmFudC5wcm9wcyA9IHByb3BzO1xuICAgIHRoaXMuc2V0U3BhcmtTZXNzaW9ucyhjdHgsIHNwYXJrU2Vzc2lvbnMpO1xuICB9XG5cbiAgQEFjdGlvbihBdXRoZW50aWNhdGUyRkFmb3JVc2VyKVxuICBwdWJsaWMgb25BdXRoZW50aWNhdGUyRkFmb3JVc2VyKGN0eDogU3RhdGVDb250ZXh0PFNlc3Npb25TdGF0ZU1vZGVsPiwgeyB9KSB7XG4gICAgY29uc3Qgc3BhcmtTZXNzaW9ucyA9IHRoaXMuZ2V0U3BhcmtTZXNzaW9ucygpO1xuICAgIGlmIChzcGFya1Nlc3Npb25zW3RoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLnRlbmFudF0/LnVzZXIpIHtcbiAgICAgIHNwYXJrU2Vzc2lvbnNbdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UudGVuYW50XS51c2VyLmF1dGhlbnRpY2F0ZWQyRkEgPSB0cnVlO1xuICAgICAgdGhpcy5zZXRTcGFya1Nlc3Npb25zKGN0eCwgc3BhcmtTZXNzaW9ucyk7XG4gICAgfVxuICB9XG5cbiAgQEFjdGlvbihJbml0U2Vzc2lvbkZyb21Mb2NhbFN0b3JhZ2VBY3Rpb24pXG4gIHB1YmxpYyBvbkxvYWRTZXNzaW9uRnJvbUxvY2FsU3RvcmFnZUFjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxTZXNzaW9uU3RhdGVNb2RlbD4sIF86IEluaXRTZXNzaW9uRnJvbUxvY2FsU3RvcmFnZUFjdGlvbikge1xuICAgIGNvbnN0IGRhdGEgPSB0aGlzLmxvY2FsU3RvcmFnZVNlcnZpY2UuZ2V0SXRlbShTRVNTSU9OKTtcbiAgICBjb25zdCBzZXNzaW9uOiB7XG4gICAgICBhcHBsaWNhdGlvbjogQXBwbGljYXRpb25JbmZvLFxuICAgICAgc3BhcmtTZXNzaW9uczogU3RyaW5nTWFwPFNwYXJrU2Vzc2lvbj4sXG4gICAgfSA9IGRhdGEgPyBKU09OLnBhcnNlKGRhdGEpIDogZGVmYXVsdFNlc3Npb25TdGF0ZTtcbiAgICBjdHgucGF0Y2hTdGF0ZSh7XG4gICAgICBhcHBsaWNhdGlvbjogc2Vzc2lvbi5hcHBsaWNhdGlvbixcbiAgICAgIHNwYXJrU2Vzc2lvbnM6IHNlc3Npb24uc3BhcmtTZXNzaW9uc1xuICAgIH0pO1xuICAgIGlmICh0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZS50ZW5hbnQpIHtcbiAgICAgIGNvbnN0IHNwYXJrU2Vzc2lvbiA9IHNlc3Npb24uc3BhcmtTZXNzaW9uc1t0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZS50ZW5hbnRdO1xuICAgICAgdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2Uuc2V0QXV0aFNlc3Npb24oc3BhcmtTZXNzaW9uPy5hdXRoVG9rZW4sIHNwYXJrU2Vzc2lvbj8ucmVmcmVzaCk7XG4gICAgfVxuICB9XG5cbiAgQEFjdGlvbihMb2FkQmFja29mZmljZUFwcENvbmZpZ3VyYXRpb25BY3Rpb24pXG4gIHB1YmxpYyBvbkJhY2tvZmZpY2VBcHBDb25maWd1cmF0aW9uQWN0aW9uKGN0eDogU3RhdGVDb250ZXh0PFNlc3Npb25TdGF0ZU1vZGVsPikge1xuICAgIGNvbnN0IGFwcENvbmZpZ3VyYXRpb24kID0gdGhpcy5iYWNrb2ZmaWNlU2VydmljZVByb3h5LmdldEJhY2tvZmZpY2VBcHBDb25maWd1cmF0aW9uKCk7XG4gICAgcmV0dXJuIGFwcENvbmZpZ3VyYXRpb24kLnBpcGUodGFwKGFwcENvbmZpZ3VyYXRpb24gPT4ge1xuICAgICAgY29uc3Qgc3BhcmtTZXNzaW9ucyA9IHRoaXMuZ2V0U3BhcmtTZXNzaW9ucygpO1xuICAgICAgaWYgKHRoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLnRlbmFudCkge1xuICAgICAgICBzcGFya1Nlc3Npb25zW3RoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLnRlbmFudF0uYXBwQ29uZmlndXJhdGlvbiA9IGFwcENvbmZpZ3VyYXRpb24uZGF0YTtcbiAgICAgICAgdGhpcy5zZXRTcGFya1Nlc3Npb25zKGN0eCwgc3BhcmtTZXNzaW9ucyk7XG4gICAgICB9XG4gICAgfSkpO1xuICB9XG5cbiAgQEFjdGlvbihMb2FkQXBwQ29uZmlndXJhdGlvbkFjdGlvbilcbiAgcHVibGljIG9uQXBwQ29uZmlndXJhdGlvbkFjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxTZXNzaW9uU3RhdGVNb2RlbD4pIHtcbiAgICBjb25zdCBhcHBDb25maWd1cmF0aW9uJCA9IHRoaXMuY29uZmlndXJhdGlvblNlcnZpY2VQcm94eS5nZXRBcHBDb25maWd1cmF0aW9uKCk7XG4gICAgcmV0dXJuIGFwcENvbmZpZ3VyYXRpb24kLnBpcGUodGFwKGFwcENvbmZpZ3VyYXRpb24gPT4ge1xuICAgICAgY29uc3Qgc3BhcmtTZXNzaW9ucyA9IHRoaXMuZ2V0U3BhcmtTZXNzaW9ucygpO1xuICAgICAgaWYgKHRoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLnRlbmFudCkge1xuICAgICAgICBzcGFya1Nlc3Npb25zW3RoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLnRlbmFudF0uYXBwQ29uZmlndXJhdGlvbiA9IGFwcENvbmZpZ3VyYXRpb24uZGF0YTtcbiAgICAgICAgdGhpcy5zZXRTcGFya1Nlc3Npb25zKGN0eCwgc3BhcmtTZXNzaW9ucyk7XG4gICAgICB9XG4gICAgfSkpO1xuICB9XG5cbiAgQEFjdGlvbihMb2FkQXBwQ29uZmlndXJhdGlvbk1vYmlsZUFjdGlvbilcbiAgcHVibGljIG9uTG9hZEFwcENvbmZpZ3VyYXRpb25Nb2JpbGVBY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8U2Vzc2lvblN0YXRlTW9kZWw+KSB7XG4gICAgY29uc3QgYXBwQ29uZmlndXJhdGlvbiQgPSB0aGlzLm1vYmlsZVNlcnZpY2VQcm94eUlkZW50aXR5LmdldEFwcENvbmZpZ3VyYXRpb25Nb2JpbGUoVkVSU0lPTl9WMSk7XG4gICAgcmV0dXJuIGFwcENvbmZpZ3VyYXRpb24kLnBpcGUodGFwKGFwcENvbmZpZ3VyYXRpb24gPT4ge1xuICAgICAgY29uc3Qgc3BhcmtTZXNzaW9ucyA9IHRoaXMuZ2V0U3BhcmtTZXNzaW9ucygpO1xuICAgICAgaWYgKHRoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLnRlbmFudCkge1xuICAgICAgICBzcGFya1Nlc3Npb25zW3RoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLnRlbmFudF0uYXBwQ29uZmlndXJhdGlvbiA9IGFwcENvbmZpZ3VyYXRpb24uZGF0YTtcbiAgICAgICAgdGhpcy5zZXRTcGFya1Nlc3Npb25zKGN0eCwgc3BhcmtTZXNzaW9ucyk7XG4gICAgICB9XG4gICAgfSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRTcGFya1Nlc3Npb25zID0gKCk6IFN0cmluZ01hcDxTcGFya1Nlc3Npb24+ID0+IEpTT04ucGFyc2UodGhpcy5sb2NhbFN0b3JhZ2VTZXJ2aWNlLmdldEl0ZW0oU0VTU0lPTikpPy5zcGFya1Nlc3Npb25zID8/IHt9O1xuICBwcml2YXRlIHNldFNwYXJrU2Vzc2lvbnMgPSAoY3R4OiBTdGF0ZUNvbnRleHQ8U2Vzc2lvblN0YXRlTW9kZWw+LCBzcGFya1Nlc3Npb25zOiBTdHJpbmdNYXA8U3BhcmtTZXNzaW9uPik6IHZvaWQgPT4ge1xuICAgIGNvbnN0IGFwcGxpY2F0aW9uID0gY3R4LmdldFN0YXRlKCkuYXBwbGljYXRpb247XG4gICAgdGhpcy5sb2NhbFN0b3JhZ2VTZXJ2aWNlLnNldEl0ZW0oU0VTU0lPTiwgSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgYXBwbGljYXRpb24sXG4gICAgICBzcGFya1Nlc3Npb25zOiBzcGFya1Nlc3Npb25zXG4gICAgfSkpO1xuICAgIGN0eC5wYXRjaFN0YXRlKHsgc3BhcmtTZXNzaW9ucyB9KTtcbiAgfTtcbn1cbiJdfQ==
|
|
@@ -40,7 +40,7 @@ export class MSLAuthService {
|
|
|
40
40
|
auth: {
|
|
41
41
|
clientId: clientId, // This is the ONLY mandatory field that you need to supply.
|
|
42
42
|
authority: authority, // Defaults to "https://login.microsoftonline.com/common"
|
|
43
|
-
redirectUri:
|
|
43
|
+
redirectUri: `/account/login`,
|
|
44
44
|
postLogoutRedirectUri: '/', // Indicates the page to navigate after logout.
|
|
45
45
|
},
|
|
46
46
|
cache: {
|
|
@@ -103,4 +103,4 @@ export function MSALGuardConfigFactory() {
|
|
|
103
103
|
loginFailedRoute: '/'
|
|
104
104
|
};
|
|
105
105
|
}
|
|
106
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXNsLWF1dGgtc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC1zaGFyZWQtbGliL3NyYy9saWJyYXJpZXMvc2VydmljZXMvZmFjdG9yaWVzL21zbC1hdXRoLXNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsb0JBQW9CLEVBQTRCLGVBQWUsRUFBRSxRQUFRLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV6SSxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVyQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDaEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDakYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1DQUFtQyxDQUFDOzs7O0FBR2xFLE1BQU0sT0FBTyxjQUFjO0lBRXpCLFlBQW9CLEtBQVksRUFBVSxXQUF3QjtRQUE5QyxVQUFLLEdBQUwsS0FBSyxDQUFPO1FBQVUsZ0JBQVcsR0FBWCxXQUFXLENBQWE7SUFDbEUsQ0FBQztJQUVNLElBQUk7UUFDVCxPQUFPLElBQUksT0FBTyxDQUFVLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDdEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUU7Z0JBQ3BILElBQUksSUFBSSxDQUFDLG1DQUFtQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7b0JBQ3JELE1BQU0s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ZjtLQUNGLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRCxNQUFNLFVBQVUsNEJBQTRCO0lBQzFDLE1BQU0sb0JBQW9CLEdBQUcsSUFBSSxHQUFHLEVBQXlCLENBQUM7SUFDOUQsb0JBQW9CLENBQUMsR0FBRyxDQUFDLHFDQUFxQyxFQUFFLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztJQUMvRSxPQUFPO1FBQ0wsZUFBZSxFQUFFLGVBQWUsQ0FBQyxRQUFRO1FBQ3pDLG9CQUFvQjtLQUNyQixDQUFDO0FBQ0osQ0FBQztBQUNEOzs7R0FHRztBQUNILE1BQU0sVUFBVSxzQkFBc0I7SUFDcEMsT0FBTztRQUNMLGVBQWUsRUFBRSxlQUFlLENBQUMsUUFBUTtRQUN6QyxXQUFXLEVBQUU7WUFDWCxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUM7U0FDM0I7UUFDRCxnQkFBZ0IsRUFBRSxHQUFHO0tBQ3RCLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTXNhbEd1YXJkQ29uZmlndXJhdGlvbiwgTXNhbEludGVyY2VwdG9yQ29uZmlndXJhdGlvbiwgTXNhbFNlcnZpY2UgfSBmcm9tICdAYXp1cmUvbXNhbC1hbmd1bGFyJztcbmltcG9ydCB7IEJyb3dzZXJDYWNoZUxvY2F0aW9uLCBJUHVibGljQ2xpZW50QXBwbGljYXRpb24sIEludGVyYWN0aW9uVHlwZSwgTG9nTGV2ZWwsIFB1YmxpY0NsaWVudEFwcGxpY2F0aW9uIH0gZnJvbSAnQGF6dXJlL21zYWwtYnJvd3Nlcic7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3hzL3N0b3JlJztcbmltcG9ydCB7IGZpbHRlciwgZmlyc3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFRlbmFudEluZm8gfSBmcm9tICcuLi8uLi9tb2R1bGVzL2F1dGgvbW9kZWwvdGVuYW50LWluZm8uaW50ZXJmYWNlJztcbmltcG9ydCB7IFNlc3Npb25TdGF0ZSB9IGZyb20gJy4uLy4uL21vZHVsZXMvYXV0aC9zZXNzaW9uLnN0YXRlJztcbmltcG9ydCB7IFNpbmdsZVNpZ25PblByb3ZpZGVyIH0gZnJvbSAnLi4vLi4vc2VydmljZS1wcm94eS9jbG91ZC1zZXJ2aWNlLXByb3hpZXMnO1xuaW1wb3J0IHsgaXNOdWxsT3JFbXB0eSB9IGZyb20gJy4uLy4uL3V0aWxzL2N1c3RvbS12YWxpZGF0b3IudXRpbCc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBNU0xBdXRoU2VydmljZSB7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzdG9yZTogU3RvcmUsIHByaXZhdGUgbXNhbFNlcnZpY2U6IE1zYWxTZXJ2aWNlKSB7XG4gIH1cblxuICBwdWJsaWMgaW5pdCgpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2U8Ym9vbGVhbj4oKHJlc29sdmUpID0+IHtcbiAgICAgIHRoaXMuc3RvcmUuc2VsZWN0KFNlc3Npb25TdGF0ZS50ZW5hbnRJbmZvKS5waXBlKGZpbHRlcih0ZW5hbnRJbmZvID0+IHRlbmFudEluZm8gIT0gbnVsbCksIGZpcnN0KCkpLnN1YnNjcmliZSh0ZW5hbnQgPT4ge1xuICAgICAgICBpZiAodGhpcy5pc1NpbmdsZVNpZ25PbkVuYWJsZWRXaXRoTVNQcm92aWRlcih0ZW5hbnQpKSB7XG4gICAgICAgICAgY29uc3QgY2xpZW50SWQgPSB0ZW5hbnQucHJvcHMuc3NvLmNvbmZpZ3VyYXRpb25zPy5henVyZT8uY2xpZW50SWQ7Ly8gVGhpcyBpcyB0aGUgT05MWSBtYW5kYXRvcnkgZmllbGQgdGhhdCB5b3UgbmVlZCB0byBzdXBwbHkuXG4gICAgICAgICAgY29uc3QgYXV0aG9yaXR5ID0gYGh0dHBzOi8vbG9naW4ubWljcm9zb2Z0b25saW5lLmNvbS8ke3RlbmFudC5wcm9wcy5zc28uY29uZmlndXJhdGlvbnM/LmF6dXJlPy50ZW5hbnRJZH1gO1xuICAgICAgICAgIGNvbnN0IHB1YmxpY0NsaWVudEFwcGxpY2F0aW9uID0gdGhpcy5jcmVhdGVQdWJsaWNDbGllbnRBcHBsaWNhdGlvbihjbGllbnRJZCwgYXV0aG9yaXR5LCB0ZW5hbnQudGVuYW50TmFtZSk7XG4gICAgICAgICAgdGhpcy5tc2FsU2VydmljZS5pbnN0YW5jZSA9IHB1YmxpY0NsaWVudEFwcGxpY2F0aW9uO1xuICAgICAgICAgIHRoaXMubXNhbFNlcnZpY2UuaW5pdGlhbGl6ZSgpLnN1YnNjcmliZSgpO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgcmVzb2x2ZSh0cnVlKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgaXNTaW5nbGVTaWduT25FbmFibGVkV2l0aE1TUHJvdmlkZXIodGVuYW50OiBUZW5hbnRJbmZvKSB7XG4gICAgcmV0dXJuIHRlbmFudC5wcm9wcz8uc3NvPy5lbmFibGVkICYmIHRlbmFudC5wcm9wcy5zc28/LnByb3ZpZGVyID09PSBTaW5nbGVTaWduT25Qcm92aWRlci5NaWNyb3NvZnQgJiYgdGVuYW50LnByb3BzLnNzbz8uY29uZmlndXJhdGlvbnM7XG4gIH1cblxuICBwcml2YXRlIHZhbGlkYXRlQ29uZmlndXJhdGlvbnMoY2xpZW50SWQ6IHN0cmluZywgYXV0aG9yaXR5OiBzdHJpbmcsIHRlbmFudE5hbWU6IHN0cmluZykge1xuICAgIGlmIChpc051bGxPckVtcHR5KGNsaWVudElkPy50cmltKCkpIHx8IGlzTnVsbE9yRW1wdHkoYXV0aG9yaXR5Py50cmltKCkpIHx8IGlzTnVsbE9yRW1wdHkodGVuYW50TmFtZT8udHJpbSgpKSkge1xuICAgICAgY29uc29sZS5lcnJvcihcIkVycm9yOiBPbmUgb3IgbW9yZSByZXF1aXJlZCBwYXJhbWV0ZXJzIGZvciBTU08gYXJlIG1pc3Npbmcgb3IgZW1wdHkuXCIpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlUHVibGljQ2xpZW50QXBwbGljYXRpb24oY2xpZW50SWQ6IHN0cmluZywgYXV0aG9yaXR5OiBzdHJpbmcsIHRlbmFudE5hbWU6IHN0cmluZyk6IElQdWJsaWNDbGllbnRBcHBsaWNhdGlvbiB7XG4gICAgdGhpcy52YWxpZGF0ZUNvbmZpZ3VyYXRpb25zKGNsaWVudElkLCBhdXRob3JpdHksIHRlbmFudE5hbWUpO1xuXG4gICAgcmV0dXJuIG5ldyBQdWJsaWNDbGllbnRBcHBsaWNhdGlvbih7XG4gICAgICBhdXRoOiB7XG4gICAgICAgIGNsaWVudElkOiBjbGllbnRJZCwgLy8gVGhpcyBpcyB0aGUgT05MWSBtYW5kYXRvcnkgZmllbGQgdGhhdCB5b3UgbmVlZCB0byBzdXBwbHkuXG4gICAgICAgIGF1dGhvcml0eTogYXV0aG9yaXR5LCAvLyBEZWZhdWx0cyB0byBcImh0dHBzOi8vbG9naW4ubWljcm9zb2Z0b25saW5lLmNvbS9jb21tb25cIlxuICAgICAgICByZWRpcmVjdFVyaTogYC8ke3RlbmFudE5hbWV9L2FjY291bnQvbG9naW5gLFxuICAgICAgICBwb3N0TG9nb3V0UmVkaXJlY3RVcmk6ICcvJywgLy8gSW5kaWNhdGVzIHRoZSBwYWdlIHRvIG5hdmlnYXRlIGFmdGVyIGxvZ291dC5cbiAgICAgIH0sXG4gICAgICBjYWNoZToge1xuICAgICAgICBjYWNoZUxvY2F0aW9uOiBCcm93c2VyQ2FjaGVMb2NhdGlvbi5Mb2NhbFN0b3JhZ2UsIC8vIENvbmZpZ3VyZXMgY2FjaGUgbG9jYXRpb24uIFwic2Vzc2lvblN0b3JhZ2VcIiBpcyBtb3JlIHNlY3VyZSwgYnV0IFwibG9jYWxTdG9yYWdlXCIgZ2l2ZXMgeW91IFNTTyBiZXR3ZWVuIHRhYnMuXG4gICAgICAgIC8vc3RvcmVBdXRoU3RhdGVJbkNvb2tpZTogZmFsc2UsIC8vIFNldCB0aGlzIHRvIFwidHJ1ZVwiIGlmIHlvdSBhcmUgaGF2aW5nIGlzc3VlcyBvbiBJRTExIG9yIEVkZ2VcbiAgICAgIH0sXG4gICAgICBzeXN0ZW06IHtcbiAgICAgICAgYWxsb3dOYXRpdmVCcm9rZXI6IGZhbHNlLCAvLyBEaXNhYmxlcyBXQU0gQnJva2VyXG4gICAgICAgIGxvZ2dlck9wdGlvbnM6IHtcbiAgICAgICAgICBsb2dnZXJDYWxsYmFjayxcbiAgICAgICAgICBsb2dMZXZlbDogTG9nTGV2ZWwuRXJyb3IsXG4gICAgICAgICAgcGlpTG9nZ2luZ0VuYWJsZWQ6IGZhbHNlXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbn1cblxuXG5mdW5jdGlvbiBsb2dnZXJDYWxsYmFjayhsb2dMZXZlbDogTG9nTGV2ZWwsIG1lc3NhZ2U6IHN0cmluZykge1xuICBjb25zb2xlLmxvZyhtZXNzYWdlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluaXRpYWxpemVNc2FsKGF1dGhTZXJ2aWNlOiBNU0xBdXRoU2VydmljZSk6ICgpID0+IFByb21pc2U8dm9pZD4ge1xuICByZXR1cm4gYXN5bmMgKCkgPT4ge1xuICAgIGF3YWl0IGF1dGhTZXJ2aWNlLmluaXQoKTtcbiAgfTtcbn1cblxuLyoqXG4gKiBIZXJlIHdlIHBhc3MgdGhlIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVycyB0byBjcmVhdGUgYW4gTVNBTCBpbnN0YW5jZS5cbiAqIEZvciBtb3JlIGluZm8sIHZpc2l0OiBodHRwczovL2dpdGh1Yi5jb20vQXp1cmVBRC9taWNyb3NvZnQtYXV0aGVudGljYXRpb24tbGlicmFyeS1mb3ItanMvYmxvYi9kZXYvbGliL21zYWwtYW5ndWxhci9kb2NzL3YyLWRvY3MvY29uZmlndXJhdGlvbi5tZFxuICovXG5leHBvcnQgZnVuY3Rpb24gTVNBTEluc3RhbmNlRmFjdG9yeSgpOiBJUHVibGljQ2xpZW50QXBwbGljYXRpb24ge1xuICByZXR1cm4gbmV3IFB1YmxpY0NsaWVudEFwcGxpY2F0aW9uKHtcbiAgICBhdXRoOiB7XG4gICAgICBjbGllbnRJZDogbnVsbFxuICAgIH0sXG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gTVNBTEludGVyY2VwdG9yQ29uZmlnRmFjdG9yeSgpOiBNc2FsSW50ZXJjZXB0b3JDb25maWd1cmF0aW9uIHtcbiAgY29uc3QgcHJvdGVjdGVkUmVzb3VyY2VNYXAgPSBuZXcgTWFwPHN0cmluZywgQXJyYXk8c3RyaW5nPj4oKTtcbiAgcHJvdGVjdGVkUmVzb3VyY2VNYXAuc2V0KCdodHRwczovL2dyYXBoLm1pY3Jvc29mdC5jb20vdjEuMC9tZScsIFsndXNlci5yZWFkJ10pO1xuICByZXR1cm4ge1xuICAgIGludGVyYWN0aW9uVHlwZTogSW50ZXJhY3Rpb25UeXBlLlJlZGlyZWN0LFxuICAgIHByb3RlY3RlZFJlc291cmNlTWFwXG4gIH07XG59XG4vKipcbiAqIFNldCB5b3VyIGRlZmF1bHQgaW50ZXJhY3Rpb24gdHlwZSBmb3IgTVNBTEd1YXJkIGhlcmUuIElmIHlvdSBoYXZlIGFueVxuICogYWRkaXRpb25hbCBzY29wZXMgeW91IHdhbnQgdGhlIHVzZXIgdG8gY29uc2VudCB1cG9uIGxvZ2luLCBhZGQgdGhlbSBoZXJlIGFzIHdlbGwuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBNU0FMR3VhcmRDb25maWdGYWN0b3J5KCk6IE1zYWxHdWFyZENvbmZpZ3VyYXRpb24ge1xuICByZXR1cm4ge1xuICAgIGludGVyYWN0aW9uVHlwZTogSW50ZXJhY3Rpb25UeXBlLlJlZGlyZWN0LFxuICAgIGF1dGhSZXF1ZXN0OiB7XG4gICAgICBzY29wZXM6IFsuLi5bJ3VzZXIucmVhZCddXVxuICAgIH0sXG4gICAgbG9naW5GYWlsZWRSb3V0ZTogJy8nXG4gIH07XG59XG4iXX0=
|
|
106
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXNsLWF1dGgtc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC1zaGFyZWQtbGliL3NyYy9saWJyYXJpZXMvc2VydmljZXMvZmFjdG9yaWVzL21zbC1hdXRoLXNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsb0JBQW9CLEVBQTRCLGVBQWUsRUFBRSxRQUFRLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV6SSxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVyQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDaEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDakYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1DQUFtQyxDQUFDOzs7O0FBR2xFLE1BQU0sT0FBTyxjQUFjO0lBRXpCLFlBQW9CLEtBQVksRUFBVSxXQUF3QjtRQUE5QyxVQUFLLEdBQUwsS0FBSyxDQUFPO1FBQVUsZ0JBQVcsR0FBWCxXQUFXLENBQWE7SUFDbEUsQ0FBQztJQUVNLElBQUk7UUFDVCxPQUFPLElBQUksT0FBTyxDQUFVLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDdEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUU7Z0JBQ3BILElBQUksSUFBSSxDQUFDLG1DQUFtQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7b0JBQ3JELE1BQU0s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QyxDQUFDO0FBQ0wsQ0FBQztBQUVELE1BQU0sVUFBVSw0QkFBNEI7SUFDMUMsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLEdBQUcsRUFBeUIsQ0FBQztJQUM5RCxvQkFBb0IsQ0FBQyxHQUFHLENBQUMscUNBQXFDLEVBQUUsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO0lBQy9FLE9BQU87UUFDTCxlQUFlLEVBQUUsZUFBZSxDQUFDLFFBQVE7UUFDekMsb0JBQW9CO0tBQ3JCLENBQUM7QUFDSixDQUFDO0FBQ0Q7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLHNCQUFzQjtJQUNwQyxPQUFPO1FBQ0wsZUFBZSxFQUFFLGVBQWUsQ0FBQyxRQUFRO1FBQ3pDLFdBQVcsRUFBRTtZQUNYLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQztTQUMzQjtRQUNELGdCQUFnQixFQUFFLEdBQUc7S0FDdEIsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNc2FsR3VhcmRDb25maWd1cmF0aW9uLCBNc2FsSW50ZXJjZXB0b3JDb25maWd1cmF0aW9uLCBNc2FsU2VydmljZSB9IGZyb20gJ0BhenVyZS9tc2FsLWFuZ3VsYXInO1xuaW1wb3J0IHsgQnJvd3NlckNhY2hlTG9jYXRpb24sIElQdWJsaWNDbGllbnRBcHBsaWNhdGlvbiwgSW50ZXJhY3Rpb25UeXBlLCBMb2dMZXZlbCwgUHVibGljQ2xpZW50QXBwbGljYXRpb24gfSBmcm9tICdAYXp1cmUvbXNhbC1icm93c2VyJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5neHMvc3RvcmUnO1xuaW1wb3J0IHsgZmlsdGVyLCBmaXJzdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgVGVuYW50SW5mbyB9IGZyb20gJy4uLy4uL21vZHVsZXMvYXV0aC9tb2RlbC90ZW5hbnQtaW5mby5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgU2Vzc2lvblN0YXRlIH0gZnJvbSAnLi4vLi4vbW9kdWxlcy9hdXRoL3Nlc3Npb24uc3RhdGUnO1xuaW1wb3J0IHsgU2luZ2xlU2lnbk9uUHJvdmlkZXIgfSBmcm9tICcuLi8uLi9zZXJ2aWNlLXByb3h5L2Nsb3VkLXNlcnZpY2UtcHJveGllcyc7XG5pbXBvcnQgeyBpc051bGxPckVtcHR5IH0gZnJvbSAnLi4vLi4vdXRpbHMvY3VzdG9tLXZhbGlkYXRvci51dGlsJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE1TTEF1dGhTZXJ2aWNlIHtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHN0b3JlOiBTdG9yZSwgcHJpdmF0ZSBtc2FsU2VydmljZTogTXNhbFNlcnZpY2UpIHtcbiAgfVxuXG4gIHB1YmxpYyBpbml0KCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZTxib29sZWFuPigocmVzb2x2ZSkgPT4ge1xuICAgICAgdGhpcy5zdG9yZS5zZWxlY3QoU2Vzc2lvblN0YXRlLnRlbmFudEluZm8pLnBpcGUoZmlsdGVyKHRlbmFudEluZm8gPT4gdGVuYW50SW5mbyAhPSBudWxsKSwgZmlyc3QoKSkuc3Vic2NyaWJlKHRlbmFudCA9PiB7XG4gICAgICAgIGlmICh0aGlzLmlzU2luZ2xlU2lnbk9uRW5hYmxlZFdpdGhNU1Byb3ZpZGVyKHRlbmFudCkpIHtcbiAgICAgICAgICBjb25zdCBjbGllbnRJZCA9IHRlbmFudC5wcm9wcy5zc28uY29uZmlndXJhdGlvbnM/LmF6dXJlPy5jbGllbnRJZDsvLyBUaGlzIGlzIHRoZSBPTkxZIG1hbmRhdG9yeSBmaWVsZCB0aGF0IHlvdSBuZWVkIHRvIHN1cHBseS5cbiAgICAgICAgICBjb25zdCBhdXRob3JpdHkgPSBgaHR0cHM6Ly9sb2dpbi5taWNyb3NvZnRvbmxpbmUuY29tLyR7dGVuYW50LnByb3BzLnNzby5jb25maWd1cmF0aW9ucz8uYXp1cmU/LnRlbmFudElkfWA7XG4gICAgICAgICAgY29uc3QgcHVibGljQ2xpZW50QXBwbGljYXRpb24gPSB0aGlzLmNyZWF0ZVB1YmxpY0NsaWVudEFwcGxpY2F0aW9uKGNsaWVudElkLCBhdXRob3JpdHksIHRlbmFudC50ZW5hbnROYW1lKTtcbiAgICAgICAgICB0aGlzLm1zYWxTZXJ2aWNlLmluc3RhbmNlID0gcHVibGljQ2xpZW50QXBwbGljYXRpb247XG4gICAgICAgICAgdGhpcy5tc2FsU2VydmljZS5pbml0aWFsaXplKCkuc3Vic2NyaWJlKCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICByZXNvbHZlKHRydWUpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBpc1NpbmdsZVNpZ25PbkVuYWJsZWRXaXRoTVNQcm92aWRlcih0ZW5hbnQ6IFRlbmFudEluZm8pIHtcbiAgICByZXR1cm4gdGVuYW50LnByb3BzPy5zc28/LmVuYWJsZWQgJiYgdGVuYW50LnByb3BzLnNzbz8ucHJvdmlkZXIgPT09IFNpbmdsZVNpZ25PblByb3ZpZGVyLk1pY3Jvc29mdCAmJiB0ZW5hbnQucHJvcHMuc3NvPy5jb25maWd1cmF0aW9ucztcbiAgfVxuXG4gIHByaXZhdGUgdmFsaWRhdGVDb25maWd1cmF0aW9ucyhjbGllbnRJZDogc3RyaW5nLCBhdXRob3JpdHk6IHN0cmluZywgdGVuYW50TmFtZTogc3RyaW5nKSB7XG4gICAgaWYgKGlzTnVsbE9yRW1wdHkoY2xpZW50SWQ/LnRyaW0oKSkgfHwgaXNOdWxsT3JFbXB0eShhdXRob3JpdHk/LnRyaW0oKSkgfHwgaXNOdWxsT3JFbXB0eSh0ZW5hbnROYW1lPy50cmltKCkpKSB7XG4gICAgICBjb25zb2xlLmVycm9yKFwiRXJyb3I6IE9uZSBvciBtb3JlIHJlcXVpcmVkIHBhcmFtZXRlcnMgZm9yIFNTTyBhcmUgbWlzc2luZyBvciBlbXB0eS5cIik7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVQdWJsaWNDbGllbnRBcHBsaWNhdGlvbihjbGllbnRJZDogc3RyaW5nLCBhdXRob3JpdHk6IHN0cmluZywgdGVuYW50TmFtZTogc3RyaW5nKTogSVB1YmxpY0NsaWVudEFwcGxpY2F0aW9uIHtcbiAgICB0aGlzLnZhbGlkYXRlQ29uZmlndXJhdGlvbnMoY2xpZW50SWQsIGF1dGhvcml0eSwgdGVuYW50TmFtZSk7XG5cbiAgICByZXR1cm4gbmV3IFB1YmxpY0NsaWVudEFwcGxpY2F0aW9uKHtcbiAgICAgIGF1dGg6IHtcbiAgICAgICAgY2xpZW50SWQ6IGNsaWVudElkLCAvLyBUaGlzIGlzIHRoZSBPTkxZIG1hbmRhdG9yeSBmaWVsZCB0aGF0IHlvdSBuZWVkIHRvIHN1cHBseS5cbiAgICAgICAgYXV0aG9yaXR5OiBhdXRob3JpdHksIC8vIERlZmF1bHRzIHRvIFwiaHR0cHM6Ly9sb2dpbi5taWNyb3NvZnRvbmxpbmUuY29tL2NvbW1vblwiXG4gICAgICAgIHJlZGlyZWN0VXJpOiBgL2FjY291bnQvbG9naW5gLFxuICAgICAgICBwb3N0TG9nb3V0UmVkaXJlY3RVcmk6ICcvJywgLy8gSW5kaWNhdGVzIHRoZSBwYWdlIHRvIG5hdmlnYXRlIGFmdGVyIGxvZ291dC5cbiAgICAgIH0sXG4gICAgICBjYWNoZToge1xuICAgICAgICBjYWNoZUxvY2F0aW9uOiBCcm93c2VyQ2FjaGVMb2NhdGlvbi5Mb2NhbFN0b3JhZ2UsIC8vIENvbmZpZ3VyZXMgY2FjaGUgbG9jYXRpb24uIFwic2Vzc2lvblN0b3JhZ2VcIiBpcyBtb3JlIHNlY3VyZSwgYnV0IFwibG9jYWxTdG9yYWdlXCIgZ2l2ZXMgeW91IFNTTyBiZXR3ZWVuIHRhYnMuXG4gICAgICAgIC8vc3RvcmVBdXRoU3RhdGVJbkNvb2tpZTogZmFsc2UsIC8vIFNldCB0aGlzIHRvIFwidHJ1ZVwiIGlmIHlvdSBhcmUgaGF2aW5nIGlzc3VlcyBvbiBJRTExIG9yIEVkZ2VcbiAgICAgIH0sXG4gICAgICBzeXN0ZW06IHtcbiAgICAgICAgYWxsb3dOYXRpdmVCcm9rZXI6IGZhbHNlLCAvLyBEaXNhYmxlcyBXQU0gQnJva2VyXG4gICAgICAgIGxvZ2dlck9wdGlvbnM6IHtcbiAgICAgICAgICBsb2dnZXJDYWxsYmFjayxcbiAgICAgICAgICBsb2dMZXZlbDogTG9nTGV2ZWwuRXJyb3IsXG4gICAgICAgICAgcGlpTG9nZ2luZ0VuYWJsZWQ6IGZhbHNlXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbn1cblxuXG5mdW5jdGlvbiBsb2dnZXJDYWxsYmFjayhsb2dMZXZlbDogTG9nTGV2ZWwsIG1lc3NhZ2U6IHN0cmluZykge1xuICBjb25zb2xlLmxvZyhtZXNzYWdlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluaXRpYWxpemVNc2FsKGF1dGhTZXJ2aWNlOiBNU0xBdXRoU2VydmljZSk6ICgpID0+IFByb21pc2U8dm9pZD4ge1xuICByZXR1cm4gYXN5bmMgKCkgPT4ge1xuICAgIGF3YWl0IGF1dGhTZXJ2aWNlLmluaXQoKTtcbiAgfTtcbn1cblxuLyoqXG4gKiBIZXJlIHdlIHBhc3MgdGhlIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVycyB0byBjcmVhdGUgYW4gTVNBTCBpbnN0YW5jZS5cbiAqIEZvciBtb3JlIGluZm8sIHZpc2l0OiBodHRwczovL2dpdGh1Yi5jb20vQXp1cmVBRC9taWNyb3NvZnQtYXV0aGVudGljYXRpb24tbGlicmFyeS1mb3ItanMvYmxvYi9kZXYvbGliL21zYWwtYW5ndWxhci9kb2NzL3YyLWRvY3MvY29uZmlndXJhdGlvbi5tZFxuICovXG5leHBvcnQgZnVuY3Rpb24gTVNBTEluc3RhbmNlRmFjdG9yeSgpOiBJUHVibGljQ2xpZW50QXBwbGljYXRpb24ge1xuICByZXR1cm4gbmV3IFB1YmxpY0NsaWVudEFwcGxpY2F0aW9uKHtcbiAgICBhdXRoOiB7XG4gICAgICBjbGllbnRJZDogbnVsbFxuICAgIH0sXG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gTVNBTEludGVyY2VwdG9yQ29uZmlnRmFjdG9yeSgpOiBNc2FsSW50ZXJjZXB0b3JDb25maWd1cmF0aW9uIHtcbiAgY29uc3QgcHJvdGVjdGVkUmVzb3VyY2VNYXAgPSBuZXcgTWFwPHN0cmluZywgQXJyYXk8c3RyaW5nPj4oKTtcbiAgcHJvdGVjdGVkUmVzb3VyY2VNYXAuc2V0KCdodHRwczovL2dyYXBoLm1pY3Jvc29mdC5jb20vdjEuMC9tZScsIFsndXNlci5yZWFkJ10pO1xuICByZXR1cm4ge1xuICAgIGludGVyYWN0aW9uVHlwZTogSW50ZXJhY3Rpb25UeXBlLlJlZGlyZWN0LFxuICAgIHByb3RlY3RlZFJlc291cmNlTWFwXG4gIH07XG59XG4vKipcbiAqIFNldCB5b3VyIGRlZmF1bHQgaW50ZXJhY3Rpb24gdHlwZSBmb3IgTVNBTEd1YXJkIGhlcmUuIElmIHlvdSBoYXZlIGFueVxuICogYWRkaXRpb25hbCBzY29wZXMgeW91IHdhbnQgdGhlIHVzZXIgdG8gY29uc2VudCB1cG9uIGxvZ2luLCBhZGQgdGhlbSBoZXJlIGFzIHdlbGwuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBNU0FMR3VhcmRDb25maWdGYWN0b3J5KCk6IE1zYWxHdWFyZENvbmZpZ3VyYXRpb24ge1xuICByZXR1cm4ge1xuICAgIGludGVyYWN0aW9uVHlwZTogSW50ZXJhY3Rpb25UeXBlLlJlZGlyZWN0LFxuICAgIGF1dGhSZXF1ZXN0OiB7XG4gICAgICBzY29wZXM6IFsuLi5bJ3VzZXIucmVhZCddXVxuICAgIH0sXG4gICAgbG9naW5GYWlsZWRSb3V0ZTogJy8nXG4gIH07XG59XG4iXX0=
|
|
@@ -26604,6 +26604,8 @@ var Localization;
|
|
|
26604
26604
|
Localization["account_linked_entities_self_validations"] = "account_linked_entities_self_validations";
|
|
26605
26605
|
Localization["account_linked_entity_self_validation"] = "account_linked_entity_self_validation";
|
|
26606
26606
|
Localization["card_on_file_results_matching"] = "card_on_file_results_matching";
|
|
26607
|
+
Localization["user_delete_message"] = "user_delete_message";
|
|
26608
|
+
Localization["user_delete_title"] = "user_delete_title";
|
|
26607
26609
|
})(Localization || (Localization = {}));
|
|
26608
26610
|
|
|
26609
26611
|
class UpdateMobileMode {
|
|
@@ -97760,7 +97762,7 @@ let SessionState = class SessionState {
|
|
|
97760
97762
|
const provider = tenant?.tenant.props?.sso?.provider;
|
|
97761
97763
|
if (provider == SingleSignOnProvider$2.Microsoft) {
|
|
97762
97764
|
this.msalService.logoutRedirect({
|
|
97763
|
-
postLogoutRedirectUri: `/${tenantName}`
|
|
97765
|
+
postLogoutRedirectUri: logoutBackofficeAudit ? '/' : `/${tenantName}`
|
|
97764
97766
|
});
|
|
97765
97767
|
}
|
|
97766
97768
|
else if (provider == SingleSignOnProvider$2.PingFederate) {
|
|
@@ -107408,7 +107410,7 @@ class MSLAuthService {
|
|
|
107408
107410
|
auth: {
|
|
107409
107411
|
clientId: clientId, // This is the ONLY mandatory field that you need to supply.
|
|
107410
107412
|
authority: authority, // Defaults to "https://login.microsoftonline.com/common"
|
|
107411
|
-
redirectUri:
|
|
107413
|
+
redirectUri: `/account/login`,
|
|
107412
107414
|
postLogoutRedirectUri: '/', // Indicates the page to navigate after logout.
|
|
107413
107415
|
},
|
|
107414
107416
|
cache: {
|