@tiba-spark/client-shared-lib 25.4.0-957 → 25.4.0-971
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/constants/permission-dependencies.constants.mjs +3 -3
- package/esm2022/libraries/services/auth-token.service.mjs +2 -2
- package/esm2022/libraries/services/company.service.mjs +2 -1
- package/fesm2022/tiba-spark-client-shared-lib.mjs +4 -3
- package/fesm2022/tiba-spark-client-shared-lib.mjs.map +1 -1
- package/libraries/constants/permission-dependencies.constants.d.ts +0 -1
- package/libraries/constants/permission-dependencies.constants.d.ts.map +1 -1
- package/libraries/services/company.service.d.ts +1 -0
- package/libraries/services/company.service.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -13,11 +13,11 @@ export const ADVANCED_PERMISSION_DEPENDENCIES = [
|
|
|
13
13
|
[PermissionType.ValidationCouponCreateAdvanced, PermissionType.ValidationCouponCreate],
|
|
14
14
|
[PermissionType.ValidationCouponUpdateAdvanced, PermissionType.ValidationCouponUpdate],
|
|
15
15
|
];
|
|
16
|
-
|
|
16
|
+
function removeDependentPermissionIfParentMissing(permissions, dependent, parent) {
|
|
17
17
|
if (permissions && permissions.includes(dependent) && !permissions.includes(parent)) {
|
|
18
18
|
return permissions.filter(p => p !== dependent);
|
|
19
19
|
}
|
|
20
|
-
return
|
|
20
|
+
return permissions;
|
|
21
21
|
}
|
|
22
22
|
export function filterDependentPermissions(permissions) {
|
|
23
23
|
if (permissions) {
|
|
@@ -29,4 +29,4 @@ export function filterDependentPermissions(permissions) {
|
|
|
29
29
|
}
|
|
30
30
|
return [];
|
|
31
31
|
}
|
|
32
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbi1kZXBlbmRlbmNpZXMuY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LXNoYXJlZC1saWIvc3JjL2xpYnJhcmllcy9jb25zdGFudHMvcGVybWlzc2lvbi1kZXBlbmRlbmNpZXMuY29uc3RhbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUV4RSxNQUFNLENBQUMsTUFBTSxnQ0FBZ0MsR0FBdUM7SUFDbEYsQ0FBQyxjQUFjLENBQUMsdUJBQXVCLEVBQUUsY0FBYyxDQUFDLGVBQWUsQ0FBQztJQUN4RSxDQUFDLGNBQWMsQ0FBQyx1QkFBdUIsRUFBRSxjQUFjLENBQUMsZUFBZSxDQUFDO0lBQ3hFLENBQUMsY0FBYyxDQUFDLDJCQUEyQixFQUFFLGNBQWMsQ0FBQyxtQkFBbUIsQ0FBQztJQUNoRixDQUFDLGNBQWMsQ0FBQyxtQkFBbUIsRUFBRSxjQUFjLENBQUMsV0FBVyxDQUFDO0lBQ2hFLENBQUMsY0FBYyxDQUFDLG1CQUFtQixFQUFFLGNBQWMsQ0FBQyxXQUFXLENBQUM7SUFDaEUsQ0FBQyxjQUFjLENBQUMsd0JBQXdCLEVBQUUsY0FBYyxDQUFDLGdCQUFnQixDQUFDO0lBQzFFLENBQUMsY0FBYyxDQUFDLDZCQUE2QixFQUFFLGNBQWMsQ0FBQyxxQkFBcUIsQ0FBQztJQUNwRixDQUFDLGNBQWMsQ0FBQyw2QkFBNkIsRUFBRSxjQUFjLENBQUMscUJBQXFCLENBQUM7SUFDcEYsQ0FBQyxjQUFjLENBQUMsK0JBQStCLEVBQUUsY0FBYyxDQUFDLHVCQUF1QixDQUFDO0lBQ3hGLENBQUMsY0FBYyxDQUFDLCtCQUErQixFQUFFLGNBQWMsQ0FBQyx1QkFBdUIsQ0FBQztJQUN4RixDQUFDLGNBQWMsQ0FBQyw4QkFBOEIsRUFBRSxjQUFjLENBQUMsc0JBQXNCLENBQUM7SUFDdEYsQ0FBQyxjQUFjLENBQUMsOEJBQThCLEVBQUUsY0FBYyxDQUFDLHNCQUFzQixDQUFDO0NBQ3ZGLENBQUM7QUFFRixTQUFTLHdDQUF3QyxDQUFDLFdBQThCLEVBQUUsU0FBMEIsRUFBRSxNQUF1QjtJQUNuSSxJQUFJLFdBQVcsSUFBSSxXQUFXLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1FBQ3BGLE9BQU8sV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxTQUFTLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQsT0FBTyxXQUFXLENBQUM7QUFDckIsQ0FBQztBQUVELE1BQU0sVUFBVSwwQkFBMEIsQ0FBQyxXQUE4QjtJQUN2RSxJQUFJLFdBQVcsRUFBRSxDQUFDO1FBQ2hCLElBQUksUUFBUSxHQUFHLENBQUMsR0FBRyxXQUFXLENBQUMsQ0FBQztRQUNoQyxnQ0FBZ0MsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsRUFBRSxFQUFFO1lBQy9ELFFBQVEsR0FBRyx3Q0FBd0MsQ0FBQyxRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ25GLENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQztJQUVELE9BQU8sRUFBRSxDQUFDO0FBQ1osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBlcm1pc3Npb25UeXBlIH0gZnJvbSBcIi4uL3NlcnZpY2UtcHJveHkvY2xvdWQtc2VydmljZS1wcm94aWVzXCI7XG5cbmV4cG9ydCBjb25zdCBBRFZBTkNFRF9QRVJNSVNTSU9OX0RFUEVOREVOQ0lFUzogW1Blcm1pc3Npb25UeXBlLCBQZXJtaXNzaW9uVHlwZV1bXSA9IFtcbiAgW1Blcm1pc3Npb25UeXBlLk1vbnRobGllc0NyZWF0ZUFkdmFuY2VkLCBQZXJtaXNzaW9uVHlwZS5Nb250aGxpZXNDcmVhdGVdLFxuICBbUGVybWlzc2lvblR5cGUuTW9udGhsaWVzVXBkYXRlQWR2YW5jZWQsIFBlcm1pc3Npb25UeXBlLk1vbnRobGllc1VwZGF0ZV0sXG4gIFtQZXJtaXNzaW9uVHlwZS5Nb250aGx5U2VyaWVzQ3JlYXRlQWR2YW5jZWQsIFBlcm1pc3Npb25UeXBlLk1vbnRobHlTZXJpZXNDcmVhdGVdLFxuICBbUGVybWlzc2lvblR5cGUuR3Vlc3RDcmVhdGVBZHZhbmNlZCwgUGVybWlzc2lvblR5cGUuR3Vlc3RDcmVhdGVdLFxuICBbUGVybWlzc2lvblR5cGUuR3Vlc3RVcGRhdGVBZHZhbmNlZCwgUGVybWlzc2lvblR5cGUuR3Vlc3RVcGRhdGVdLFxuICBbUGVybWlzc2lvblR5cGUuR3Vlc3RHcm91cENyZWF0ZUFkdmFuY2VkLCBQZXJtaXNzaW9uVHlwZS5HdWVzdEdyb3VwQ3JlYXRlXSxcbiAgW1Blcm1pc3Npb25UeXBlLkd1ZXN0SG90ZWxHdWVzdENyZWF0ZUFkdmFuY2VkLCBQZXJtaXNzaW9uVHlwZS5HdWVzdEhvdGVsR3Vlc3RDcmVhdGVdLFxuICBbUGVybWlzc2lvblR5cGUuR3Vlc3RIb3RlbEd1ZXN0VXBkYXRlQWR2YW5jZWQsIFBlcm1pc3Npb25UeXBlLkd1ZXN0SG90ZWxHdWVzdFVwZGF0ZV0sXG4gIFtQZXJtaXNzaW9uVHlwZS5WYWxpZGF0aW9uU3RpY2tlckNyZWF0ZUFkdmFuY2VkLCBQZXJtaXNzaW9uVHlwZS5WYWxpZGF0aW9uU3RpY2tlckNyZWF0ZV0sXG4gIFtQZXJtaXNzaW9uVHlwZS5WYWxpZGF0aW9uU3RpY2tlclVwZGF0ZUFkdmFuY2VkLCBQZXJtaXNzaW9uVHlwZS5WYWxpZGF0aW9uU3RpY2tlclVwZGF0ZV0sXG4gIFtQZXJtaXNzaW9uVHlwZS5WYWxpZGF0aW9uQ291cG9uQ3JlYXRlQWR2YW5jZWQsIFBlcm1pc3Npb25UeXBlLlZhbGlkYXRpb25Db3Vwb25DcmVhdGVdLFxuICBbUGVybWlzc2lvblR5cGUuVmFsaWRhdGlvbkNvdXBvblVwZGF0ZUFkdmFuY2VkLCBQZXJtaXNzaW9uVHlwZS5WYWxpZGF0aW9uQ291cG9uVXBkYXRlXSxcbl07XG5cbmZ1bmN0aW9uIHJlbW92ZURlcGVuZGVudFBlcm1pc3Npb25JZlBhcmVudE1pc3NpbmcocGVybWlzc2lvbnM/OiBQZXJtaXNzaW9uVHlwZVtdLCBkZXBlbmRlbnQ/OiBQZXJtaXNzaW9uVHlwZSwgcGFyZW50PzogUGVybWlzc2lvblR5cGUpOiBQZXJtaXNzaW9uVHlwZVtdIHtcbiAgaWYgKHBlcm1pc3Npb25zICYmIHBlcm1pc3Npb25zLmluY2x1ZGVzKGRlcGVuZGVudCkgJiYgIXBlcm1pc3Npb25zLmluY2x1ZGVzKHBhcmVudCkpIHtcbiAgICByZXR1cm4gcGVybWlzc2lvbnMuZmlsdGVyKHAgPT4gcCAhPT0gZGVwZW5kZW50KTtcbiAgfVxuXG4gIHJldHVybiBwZXJtaXNzaW9ucztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZpbHRlckRlcGVuZGVudFBlcm1pc3Npb25zKHBlcm1pc3Npb25zPzogUGVybWlzc2lvblR5cGVbXSk6IFBlcm1pc3Npb25UeXBlW10ge1xuICBpZiAocGVybWlzc2lvbnMpIHtcbiAgICBsZXQgZmlsdGVyZWQgPSBbLi4ucGVybWlzc2lvbnNdO1xuICAgIEFEVkFOQ0VEX1BFUk1JU1NJT05fREVQRU5ERU5DSUVTLmZvckVhY2goKFtkZXBlbmRlbnQsIHBhcmVudF0pID0+IHtcbiAgICAgIGZpbHRlcmVkID0gcmVtb3ZlRGVwZW5kZW50UGVybWlzc2lvbklmUGFyZW50TWlzc2luZyhmaWx0ZXJlZCwgZGVwZW5kZW50LCBwYXJlbnQpO1xuICAgIH0pO1xuICAgIHJldHVybiBmaWx0ZXJlZDtcbiAgfVxuXG4gIHJldHVybiBbXTtcbn1cbiJdfQ==
|
|
@@ -32,7 +32,7 @@ const EDGE_PREFIX_API = '/api/services/web/sp';
|
|
|
32
32
|
const REFRESH_TOKEN_API = 'api/services/web/users/refresh-token';
|
|
33
33
|
const REFRESH_MOBILE_TOKEN_API = 'api/services/mobile/users/refresh-token';
|
|
34
34
|
const EXTERNAL_APIS = [
|
|
35
|
-
'api/services/
|
|
35
|
+
'api/services/selfvalidation/details',
|
|
36
36
|
'/execute/self-validation', // TODO: Remove when self-validation is handled by the new project (MatanShomer)
|
|
37
37
|
];
|
|
38
38
|
const ANONYMOUS_APIS = [
|
|
@@ -290,4 +290,4 @@ __decorate([
|
|
|
290
290
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuthTokenService, decorators: [{
|
|
291
291
|
type: Injectable
|
|
292
292
|
}], ctorParameters: () => [{ type: i1.SessionStorageService }, { type: i2.Store }, { type: i3.Router }, { type: i4.AppConfigService }, { type: i5.RefreshTokenService }, { type: i6.LocalStorageService }], propDecorators: { logout: [], servicesRunningStatusChanged: [], setConflictDetected: [], clearConflictDetected: [] } });
|
|
293
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC10b2tlbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LXNoYXJlZC1saWIvc3JjL2xpYnJhcmllcy9zZXJ2aWNlcy9hdXRoLXRva2VuLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBd0UsY0FBYyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDNUgsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFekQsT0FBTyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBQzVCLE9BQU8sRUFBYyxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDOUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDakQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFHMUUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLFlBQVksRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRTNHLE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzFGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNuRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDaEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxTQUFTLEVBQXFELE1BQU0sd0NBQXdDLENBQUM7QUFLdEgsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7Ozs7OztBQUtyRCxN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R0FBRyxVQUFVLEVBQUU7Z0JBQzlCLENBQUMsQ0FBQyxVQUFVLENBQUM7UUFFakIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzlCLENBQUM7K0dBL09VLGdCQUFnQjttSEFBaEIsZ0JBQWdCOztBQWtQUDtJQUFuQixRQUFRLEVBQUU7Z0RBQWlJO0FBRWhJO0lBQVgsUUFBUSxFQUFFO3NFQUMyRDtBQUUxRDtJQUFYLFFBQVEsRUFBRTs2REFBb0Y7QUFDbkY7SUFBWCxRQUFRLEVBQUU7K0RBQTJEOzRGQXhQM0QsZ0JBQWdCO2tCQUQ1QixVQUFVO3NPQW1QVyxNQUFNLE1BRWQsNEJBQTRCLE1BRzVCLG1CQUFtQixNQUNuQixxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwRXJyb3JSZXNwb25zZSwgSHR0cEV2ZW50LCBIdHRwSGFuZGxlciwgSHR0cFJlcXVlc3QsIEh0dHBSZXNwb25zZSwgSHR0cFN0YXR1c0NvZGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgRGlzcGF0Y2ggfSBmcm9tICdAbmd4cy1sYWJzL2Rpc3BhdGNoLWRlY29yYXRvcic7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3hzL3N0b3JlJztcbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50JztcbmltcG9ydCB7IE9ic2VydmFibGUsIHRocm93RXJyb3IgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFNFU1NJT04gfSBmcm9tICcuLi9jb25zdGFudHMva2V5cy1jb25zdGFudHMnO1xuaW1wb3J0IHsgQXBwVHlwZU1hcCB9IGZyb20gJy4uL2VudW1zL2FwcC10eXBlLW1hcC5lbnVtJztcbmltcG9ydCB7IEFwcFR5cGUgfSBmcm9tICcuLi9lbnVtcy9hcHAtdHlwZS5lbnVtJztcbmltcG9ydCB7IFBhcmtDb25uZWN0aW9uU3RhdHVzIH0gZnJvbSAnLi4vZW51bXMvcHJpb3JpdHktbGluay1zdGF0dXMuZW51bSc7XG5pbXBvcnQgeyBTcGFya1Nlc3Npb24gfSBmcm9tICcuLi9pbnRlcmZhY2VzL3NwYXJrLXNlc3Npb24uaW50ZXJmYWNlJztcbmltcG9ydCB7IFJlZnJlc2hJbmZvIH0gZnJvbSAnLi4vbW9kdWxlcy9hdXRoL21vZGVsL3JlZnJlc2gtaW5mby5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQ2xlYXJDb25mbGljdERldGVjdGVkLCBMb2dvdXRBY3Rpb24sIFNldENvbmZsaWN0RGV0ZWN0ZWQgfSBmcm9tICcuLi9tb2R1bGVzL2F1dGgvc2Vzc2lvbi5hY3Rpb25zJztcbmltcG9ydCB7IENvbm5lY3Rpb25TdGF0dXNEaWN0aW9uYXJ5IH0gZnJvbSAnLi4vbW9kdWxlcy9mYWNpbGl0eS9mYWNpbGl0eS1tb2RhbCc7XG5pbXBvcnQgeyBTZXJ2aWNlc1J1bm5pbmdTdGF0dXNDaGFuZ2VkQWN0aW9uIH0gZnJvbSAnLi4vbW9kdWxlcy9mYWNpbGl0eS9mYWNpbGl0eS5hY3Rpb25zJztcbmltcG9ydCB7IEZhY2lsaXR5U3RhdGUgfSBmcm9tICcuLi9tb2R1bGVzL2ZhY2lsaXR5L2ZhY2lsaXR5LnN0YXRlJztcbmltcG9ydCB7IFNpZGVuYXZTdGF0ZSB9IGZyb20gJy4uL21vZHVsZXMvc2lkZW5hdi9zaWRlbmF2LnN0YXRlJztcbmltcG9ydCB7IFNtYXJ0cGFya1N0YXRlIH0gZnJvbSAnLi4vbW9kdWxlcy9zbWFydHBhcmtzL3NtYXJ0cGFyay5zdGF0ZSc7XG5pbXBvcnQgeyBBcHBNb2R1bGUsIFNlcnZpY2VzUnVubmluZ1N0YXR1c0R0bywgU21hcnRwYXJrRHRvLCBTdWJNb2R1bGUgfSBmcm9tICcuLi9zZXJ2aWNlLXByb3h5L2Nsb3VkLXNlcnZpY2UtcHJveGllcyc7XG5pbXBvcnQgeyBTbWFydHBhcmtCYXNpY0R0byB9IGZyb20gJy4uL3NlcnZpY2UtcHJveHkvaWRlbnRpdHktc2VydmljZS1wcm94aWVzJztcbmltcG9ydCB7IEFwcGxpY2F0aW9uVHlwZSB9IGZyb20gJy4uL3NlcnZpY2UtcHJveHkvcnBjLXNlcnZpY2UtcHJveGllcyc7XG5pbXBvcnQgeyBBcHBDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvYXBwLWNvbmZpZy5zZXJ2aWNlJztcbmltcG9ydCB7IFNlc3Npb25TdG9yYWdlU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3Nlc3Npb24tc3RvcmFnZS5zZXJ2aWNlJztcbmltcG9ydCB7IGdldFVzZXJUaW1lWm9uZSB9IGZyb20gJy4uL3V0aWxzL2RhdGUudXRpbCc7XG5pbXBvcnQgeyBTdHJpbmdNYXAgfSBmcm9tICcuLi91dGlscy9sYW5nLnV0aWwnO1xuaW1wb3J0IHsgTG9jYWxTdG9yYWdlU2VydmljZSB9IGZyb20gJy4vbG9jYWwtc3RvcmFnZS5zZXJ2aWNlJztcbmltcG9ydCB7IFJlZnJlc2hUb2tlblNlcnZpY2UgfSBmcm9tICcuL3JlZnJlc2gtdG9rZW4uc2VydmljZSc7XG5cbmNvbnN0IEFVVEhFTlRJQ0FURV9BUElTID0gW1xuICAnYXBpL3NlcnZpY2VzL3dlYi91c2Vycy92ZXJpZnktMmZhLWF1dGgnLFxuICAnYXBpL3NlcnZpY2VzL3dlYi91c2Vycy9hdXRoZW50aWNhdGUnLFxuICAnYXBpL3NlcnZpY2VzL3dlYi91c2Vycy9tdWx0aS10ZW5hbnRzLWF1dGhlbnRpY2F0ZScsXG4gICdhcGkvc2VydmljZXMvYmFja29mZmljZXVzZXIvYXV0aGVudGljYXRlJ1xuXTtcblxuY29uc3QgRURHRV9QUkVGSVhfQVBJID0gJy9hcGkvc2VydmljZXMvd2ViL3NwJztcbmNvbnN0IFJFRlJFU0hfVE9LRU5fQVBJID0gJ2FwaS9zZXJ2aWNlcy93ZWIvdXNlcnMvcmVmcmVzaC10b2tlbic7XG5jb25zdCBSRUZSRVNIX01PQklMRV9UT0tFTl9BUEkgPSAnYXBpL3NlcnZpY2VzL21vYmlsZS91c2Vycy9yZWZyZXNoLXRva2VuJztcbmNvbnN0IEVYVEVSTkFMX0FQSVMgPSBbXG4gICdhcGkvc2VydmljZXMvd2ViL3NlbGZ2YWxpZGF0aW9uL2RldGFpbHMnLFxuICAnL2V4ZWN1dGUvc2VsZi12YWxpZGF0aW9uJywgLy8gVE9ETzogUmVtb3ZlIHdoZW4gc2VsZi12YWxpZGF0aW9uIGlzIGhhbmRsZWQgYnkgdGhlIG5ldyBwcm9qZWN0IChNYXRhblNob21lcilcbl07XG5jb25zdCBBTk9OWU1PVVNfQVBJUyA9IFtcbiAgUkVGUkVTSF9UT0tFTl9BUEksXG4gIC8vIExhdGVzdCBXZWIgVVJMc1xuICAnYXBpL3NlcnZpY2VzL3dlYi91c2Vycy9tdWx0aS10ZW5hbnRzLWF1dGhlbnRpY2F0ZScsXG4gICdhcGkvc2VydmljZXMvd2ViL3VzZXJzL2F1dGhlbnRpY2F0ZScsXG4gICdhcGkvc2VydmljZXMvd2ViL3VzZXJzL3ZlcmlmeS0yZmEtYXV0aCcsXG4gICdhcGkvc2VydmljZXMvd2ViL3VzZXJzL3ZlcmlmeS0yZmEtYXV0aC1sb2dpbicsXG4gICdhcGkvc2VydmljZXMvd2ViL3VzZXJzL3ZhbGlkYXRlLWFjdGl2YXRpb24nLFxuICAnYXBpL3NlcnZpY2VzL3dlYi91c2Vycy9vaWRjLWF1dGgnLFxuICAnYXBpL3NlcnZpY2VzL3dlYi9hc3NldC9sb2dvJyxcbiAgJ2FwaS9zZXJ2aWNlcy93ZWIvdGVuYW50L2RldGFpbHMnLFxuICAnYXBpL3NlcnZpY2VzL3dlYi9jb25maWd1cmF0aW9uL3NwYXJrLW1vYmlsZS12ZXJzaW9uJyxcbiAgJ2FwaS9zZXJ2aWNlcy93ZWIvdGVuYW50L2RhdGEnLFxuICAnYXBpL3NlcnZpY2VzL3dlYi91c2Vycy9mb3Jnb3QtcGFzc3dvcmQnLFxuICAnYXBpL3NlcnZpY2VzL3dlYi91c2Vycy9mb3Jnb3QtcGFzc3dvcmQtdGVuYW50bGVzcycsXG4gICdhcGkvc2VydmljZXMvd2ViL3VzZXJzL2FjdGl2YXRlJyxcbiAgLy8gQmFja29mZmljZSBVUkxzXG4gICdhcGkvc2VydmljZXMvYmFja29mZmljZXVzZXIvYXV0aGVudGljYXRlJyxcbiAgLy8gTW9iaWxlIFVSTHNcbiAgJ2FwaS9zZXJ2aWNlcy9tb2JpbGUvdXNlcnMvYXV0aGVudGljYXRlJyxcbiAgJ2FwaS9zZXJ2aWNlcy9tb2JpbGUvYXNzZXQvbG9nbycsXG4gICdhcGkvc2VydmljZXMvbW9iaWxlL2NvbmZpZ3VyYXRpb24vc3BhcmstbW9iaWxlLXZlcnNpb24nLFxuXTtcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEF1dGhUb2tlblNlcnZpY2Uge1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlOiBTZXNzaW9uU3RvcmFnZVNlcnZpY2UsIHByaXZhdGUgc3RvcmU6IFN0b3JlLCBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgYXBwQ29uZmlnOiBBcHBDb25maWdTZXJ2aWNlLCBwcml2YXRlIHJlZnJlc2hUb2tlblNlcnZpY2U6IFJlZnJlc2hUb2tlblNlcnZpY2UsIHByaXZhdGUgbG9jYWxTdG9yYWdlU2VydmljZTogTG9jYWxTdG9yYWdlU2VydmljZSkge1xuICB9XG5cbiAgcHVibGljIGlzUmVmcmVzaFRva2VuRXhwaXJlZCA9IChyZWZyZXNoSW5mbzogUmVmcmVzaEluZm8pID0+XG4gICAgIXJlZnJlc2hJbmZvIHx8IG5ldyBEYXRlKCkgPiBuZXcgRGF0ZShtb21lbnQocmVmcmVzaEluZm8uZXhwaXJhdGlvbikuYWRkKC0gcmVmcmVzaEluZm8ucmVmcmVzaEludGVydmFsICogMC4xLCAnbWlsbGlzZWNvbmRzJykuZm9ybWF0KCkpO1xuXG4gIHB1YmxpYyBoYW5kbGVSZXF1ZXN0KHJlcTogSHR0cFJlcXVlc3Q8YW55PiwgbmV4dDogSHR0cEhhbmRsZXIpIHtcbiAgICByZXEgPSB0aGlzLnNldFJlcXVlc3RIZWFkZXJzKHJlcSk7XG4gICAgbGV0IHJlcXVlc3Q6IE9ic2VydmFibGU8SHR0cEV2ZW50PGFueT4+ID0gbmV4dC5oYW5kbGUocmVxKTtcbiAgICBjb25zdCByZWZyZXNoSW5mbzogUmVmcmVzaEluZm8gPSB0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZS5nZXRBdXRoO1xuICAgIGlmICh0aGlzLnNob3VsZEhhbmRsZVJlZnJlc2hUb2tlbihyZXEpICYmIHRoaXMuaXNSZWZyZXNoVG9rZW5FeHBpcmVkKHJlZnJlc2hJbmZvKSkge1xuICAgICAgcmVxdWVzdCA9IHRoaXMucmVmcmVzaFRva2VuU2VydmljZS5oYW5kbGVSZWZyZXNoVG9rZW4ocmVxLCBuZXh0KTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVxdWVzdDtcbiAgfVxuXG4gIHB1YmxpYyBoYW5kbGVCYWNrT2ZmaWNlUmVxdWVzdChyZXE6IEh0dHBSZXF1ZXN0PGFueT4sIG5leHQ6IEh0dHBIYW5kbGVyKSB7XG4gICAgcmVxID0gdGhpcy5zZXRCYWNrT2ZmaWNlUmVxdWVzdEhlYWRlcnMocmVxKTtcbiAgICBsZXQgcmVxdWVzdDogT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8YW55Pj4gPSBuZXh0LmhhbmRsZShyZXEpO1xuICAgIHJldHVybiByZXF1ZXN0O1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRCYWNrT2ZmaWNlUmVxdWVzdEhlYWRlcnMocmVxOiBIdHRwUmVxdWVzdDxhbnk+KSB7XG4gICAgY29uc3QgYXBwbGljYXRpb25UeXBlOiBBcHBsaWNhdGlvblR5cGUgPSBBcHBUeXBlTWFwLmdldCh0aGlzLmFwcENvbmZpZy5nZXRDb25maWcoKS5hcHBUeXBlKTtcbiAgICBpZiAodGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UuYWNjZXNzVG9rZW4pIHtcbiAgICAgIHJlcSA9IHJlcS5jbG9uZSh7XG4gICAgICAgIGhlYWRlcnM6IHJlcS5oZWFkZXJzXG4gICAgICAgICAgLnNldCgnQXV0aG9yaXphdGlvbicsIGBCZWFyZXIgJHt0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZS5hY2Nlc3NUb2tlbn1gKVxuICAgICAgICAgIC5zZXQoJ0FwcGxpY2F0aW9uLVR5cGUnLCBhcHBsaWNhdGlvblR5cGUudG9TdHJpbmcoKSlcbiAgICAgICAgICAuc2V0KCduZ3N3LWJ5cGFzcycsICd0cnVlJylcbiAgICAgICAgICAuc2V0KCdBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4nLCAnKicpXG4gICAgICAgICAgLnNldCgndGltZVpvbmUnLCBnZXRVc2VyVGltZVpvbmUoKSlcbiAgICAgICAgICAuc2V0KCdDbGllbnRWZXJzaW9uJywgdGhpcy5hcHBDb25maWcuZ2V0Q29uZmlnKCkucGFja2FnZUluZm8udmVyc2lvbilcbiAgICAgIH0pO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIHJlcSA9IHJlcS5jbG9uZSh7XG4gICAgICAgIGhlYWRlcnM6IHJlcS5oZWFkZXJzXG4gICAgICAgICAgLnNldCgndGltZVpvbmUnLCBnZXRVc2VyVGltZVpvbmUoKSlcbiAgICAgICAgICAuc2V0KCdBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4nLCAnKicpXG4gICAgICAgICAgLnNldCgnQ2xpZW50VmVyc2lvbicsIHRoaXMuYXBwQ29uZmlnLmdldENvbmZpZygpLnBhY2thZ2VJbmZvLnZlcnNpb24pXG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIHJlcTtcbiAgfVxuXG4gIHB1YmxpYyBoYW5kbGVNb2JpbGVSZXF1ZXN0KHJlcTogSHR0cFJlcXVlc3Q8YW55PiwgbmV4dDogSHR0cEhhbmRsZXIpIHtcbiAgICByZXEgPSB0aGlzLnNldFJlcXVlc3RIZWFkZXJzKHJlcSk7XG4gICAgbGV0IHJlcXVlc3Q6IE9ic2VydmFibGU8SHR0cEV2ZW50PGFueT4+ID0gbmV4dC5oYW5kbGUocmVxKTtcbiAgICBjb25zdCByZWZyZXNoSW5mbzogUmVmcmVzaEluZm8gPSB0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZS5nZXRBdXRoO1xuICAgIGlmICh0aGlzLnNob3VsZEhhbmRsZVJlZnJlc2hUb2tlbihyZXEpICYmIHRoaXMuaXNSZWZyZXNoVG9rZW5FeHBpcmVkKHJlZnJlc2hJbmZvKSkge1xuICAgICAgcmVxdWVzdCA9IHRoaXMucmVmcmVzaFRva2VuU2VydmljZS5oYW5kbGVNb2JpbGVSZWZyZXNoVG9rZW4ocmVxLCBuZXh0KTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVxdWVzdDtcbiAgfVxuXG4gIHB1YmxpYyBoYW5kbGVCYWNrb2ZmaWNlRXZlbnRTdGF0dXNFcnJvcihlOiBIdHRwRXJyb3JSZXNwb25zZSwgcmVxOiBIdHRwUmVxdWVzdDxhbnk+LCBuZXh0OiBIdHRwSGFuZGxlcikge1xuICAgIGxldCByZXNwb25zZTogT2JzZXJ2YWJsZTxhbnk+O1xuICAgIHJlc3BvbnNlID0gdGhpcy5oYW5kbGVCYWNrb2ZmaWNlRXJyb3JSZXNwb25zZShlKTtcbiAgICByZXR1cm4gcmVzcG9uc2U7XG4gIH1cblxuICBwdWJsaWMgaGFuZGxlRXZlbnRTdGF0dXNFcnJvcihlOiBIdHRwRXJyb3JSZXNwb25zZSwgcmVxOiBIdHRwUmVxdWVzdDxhbnk+LCBuZXh0OiBIdHRwSGFuZGxlcikge1xuICAgIGxldCByZXNwb25zZTogT2JzZXJ2YWJsZTxhbnk+O1xuICAgIHN3aXRjaCAoZS5zdGF0dXMpIHtcbiAgICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuVW5hdXRob3JpemVkOlxuICAgICAgICBpZiAodGhpcy5zaG91bGRIYW5kbGVSZWZyZXNoVG9rZW4ocmVxKSkge1xuICAgICAgICAgIHJlc3BvbnNlID0gdGhpcy5yZWZyZXNoVG9rZW5TZXJ2aWNlLmhhbmRsZVJlZnJlc2hUb2tlbihyZXEsIG5leHQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlc3BvbnNlID0gdGhpcy5oYW5kbGVFcnJvclJlc3BvbnNlKGUpO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmVzcG9uc2UgPSB0aGlzLmhhbmRsZUVycm9yUmVzcG9uc2UoZSk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIHJldHVybiByZXNwb25zZTtcbiAgfVxuXG4gIHB1YmxpYyBoYW5kbGVTdWNjZXNzUmVzcG9uc2UocmVxOiBIdHRwUmVxdWVzdDxhbnk+LCBldmVudDogSHR0cFJlc3BvbnNlPGFueT4pIHtcbiAgICBpZiAoZXZlbnQ/LnN0YXR1cyA9PT0gSHR0cFN0YXR1c0NvZGUuT2sgfHwgZXZlbnQ/LnN0YXR1cyA9PT0gSHR0cFN0YXR1c0NvZGUuQWNjZXB0ZWQpIHtcbiAgICAgIHRoaXMuY2hlY2tBbmRDbGVhclBhcmtTdGF0dXNHbG9iYWxFcnJvck5vdGlmaWNhdGlvbihyZXEudXJsKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgaXNSZWZyZXNoVG9rZW5SZXF1ZXN0ID0gKHJlcTogSHR0cFJlcXVlc3Q8YW55PikgPT4gcmVxLnVybC5pbmNsdWRlcyhSRUZSRVNIX1RPS0VOX0FQSSkgfHwgcmVxLnVybC5pbmNsdWRlcyhSRUZSRVNIX01PQklMRV9UT0tFTl9BUEkpO1xuXG4gIHByaXZhdGUgc2V0UmVxdWVzdEhlYWRlcnMocmVxOiBIdHRwUmVxdWVzdDxhbnk+KSB7XG4gICAgY29uc3QgYXBwbGljYXRpb25UeXBlOiBBcHBsaWNhdGlvblR5cGUgPSBBcHBUeXBlTWFwLmdldCh0aGlzLmFwcENvbmZpZy5nZXRDb25maWcoKS5hcHBUeXBlKTtcbiAgICBjb25zdCBhcHBNb2R1bGU6IEFwcE1vZHVsZSA9IHRoaXMuc3RvcmUuc2VsZWN0U25hcHNob3QoU2lkZW5hdlN0YXRlLmFwcE1vZHVsZSk7XG4gICAgY29uc3Qgc3ViTW9kdWxlOiBTdWJNb2R1bGUgPSB0aGlzLnN0b3JlLnNlbGVjdFNuYXBzaG90KFNpZGVuYXZTdGF0ZS5zdWJNb2R1bGUpO1xuICAgIGNvbnN0IGFwcE1vZHVsZVN0ciA9IGFwcE1vZHVsZT8udG9TdHJpbmcoKSB8fCAnJztcbiAgICBjb25zdCBzdWJNb2R1bGVTdHIgPSBzdWJNb2R1bGU/LnRvU3RyaW5nKCkgfHwgJyc7XG5cbiAgICBjb25zdCBzbWFydFBhcmtEdG8gPSB0aGlzLmdldFNtYXJ0UGFya0R0byhyZXEudXJsKSB8fCB7fTtcbiAgICBjb25zdCBzcGFya1ZlcnNpb24gPSBzbWFydFBhcmtEdG9bXCJzcGFya1ZlcnNpb25cIl0gPz8gJyc7XG4gICAgY29uc3Qgc21hcnRQYXJrVmVyc2lvbiA9IChzbWFydFBhcmtEdG9bXCJzbWFydFBhcmtWZXJzaW9uXCJdID8/ICcnKS5yZXBsYWNlKFwiIEJ1aWxkKFwiLCBcIl9cIikucmVwbGFjZShcIilcIiwgXCJcIikudHJpbSgpO1xuXG4gICAgaWYgKHRoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLmFjY2Vzc1Rva2VuKSB7XG4gICAgICByZXEgPSByZXEuY2xvbmUoe1xuICAgICAgICBoZWFkZXJzOiByZXEuaGVhZGVyc1xuICAgICAgICAgIC5zZXQoJ0F1dGhvcml6YXRpb24nLCBgQmVhcmVyICR7dGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UuYWNjZXNzVG9rZW59YClcbiAgICAgICAgICAuc2V0KCdBcHBsaWNhdGlvbi1UeXBlJywgYXBwbGljYXRpb25UeXBlLnRvU3RyaW5nKCkpXG4gICAgICAgICAgLnNldCgnbmdzdy1ieXBhc3MnLCAndHJ1ZScpXG4gICAgICAgICAgLnNldCgnQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luJywgJyonKVxuICAgICAgICAgIC5zZXQoJ2FwcE1vZHVsZScsIGFwcE1vZHVsZVN0cikgLy8gVE9ETzogUmVtb3ZlIHdoZW4gOC4xIGlzIGRlcHJlY2F0ZWQgPz9cbiAgICAgICAgICAuc2V0KCdBcHAtTW9kdWxlJywgYXBwTW9kdWxlU3RyKVxuICAgICAgICAgIC5zZXQoJ1N1Yi1Nb2R1bGUnLCBzdWJNb2R1bGVTdHIpXG4gICAgICAgICAgLnNldCgndGltZVpvbmUnLCBnZXRVc2VyVGltZVpvbmUoKSlcbiAgICAgICAgICAuc2V0KCdDbGllbnRWZXJzaW9uJywgdGhpcy5hcHBDb25maWcuZ2V0Q29uZmlnKCkucGFja2FnZUluZm8udmVyc2lvbilcbiAgICAgICAgICAuc2V0KCdTcGFya1ZlcnNpb24nLCBzcGFya1ZlcnNpb24pXG4gICAgICAgICAgLnNldCgnU21hcnRQYXJrVmVyc2lvbicsIHNtYXJ0UGFya1ZlcnNpb24pXG4gICAgICB9KTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICByZXEgPSByZXEuY2xvbmUoe1xuICAgICAgICBoZWFkZXJzOiByZXEuaGVhZGVyc1xuICAgICAgICAgIC5zZXQoJ3RpbWVab25lJywgZ2V0VXNlclRpbWVab25lKCkpXG4gICAgICAgICAgLnNldCgnQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luJywgJyonKVxuICAgICAgICAgIC5zZXQoJ0NsaWVudFZlcnNpb24nLCB0aGlzLmFwcENvbmZpZy5nZXRDb25maWcoKS5wYWNrYWdlSW5mby52ZXJzaW9uKVxuICAgICAgICAgIC5zZXQoJ1NwYXJrVmVyc2lvbicsIHNwYXJrVmVyc2lvbilcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiByZXE7XG4gIH1cblxuICBwcml2YXRlIHNob3VsZEhhbmRsZVJlZnJlc2hUb2tlbihyZXE6IEh0dHBSZXF1ZXN0PGFueT4pIHtcbiAgICByZXR1cm4gIUFOT05ZTU9VU19BUElTLnNvbWUoYXBpID0+IHJlcS51cmwuaW5jbHVkZXMoYXBpKSkgJiYgIXRoaXMuaXNSZWZyZXNoVG9rZW5SZXF1ZXN0KHJlcSkgJiYgIUVYVEVSTkFMX0FQSVMuc29tZShhcGkgPT4gcmVxLnVybC5pbmNsdWRlcyhhcGkpKSAmJiAhdGhpcy5pc1NlbGZWYWxpZGF0aW9uTGlua1VSTDtcbiAgfVxuXG4gIC8vIFRlbXBvcmFyeSBjaGVjayBmb3IgJ3NlbGYtdmFsaWRhdGlvbj90b2tlbj0nIGluIFVSTC5cbiAgLy8gVGhpcyBjYW4gYmUgcmVtb3ZlZCBvbmNlIHNlbGYgdmFsaWRhdGlvbiBsaW5rcyBhcmUgaGFuZGxlZCBieSB0aGUgbmV3IHByb2plY3QuXG4gIHByaXZhdGUgaXNTZWxmVmFsaWRhdGlvbkxpbmtVUkwgPSBsb2NhdGlvbi5ocmVmLmluY2x1ZGVzKCcvc2VsZi12YWxpZGF0aW9uP3Rva2VuPScpO1xuXG4gIHByaXZhdGUgZ2V0U21hcnRQYXJrRHRvKHJlcXVlc3RVcmw6IHN0cmluZyk6IFNtYXJ0cGFya0R0byB8IFNtYXJ0cGFya0Jhc2ljRHRvIHtcbiAgICBsZXQgZ3VpZCA9IG51bGw7XG5cbiAgICBjb25zdCBndWlkUGF0dGVybiA9IC9bYS1mQS1GMC05XXs4fS1bYS1mQS1GMC05XXs0fS1bYS1mQS1GMC05XXs0fS1bYS1mQS1GMC05XXs0fS1bYS1mQS1GMC05XXsxMn0vO1xuICAgIGNvbnN0IG1hdGNoZXMgPSByZXF1ZXN0VXJsLm1hdGNoKGd1aWRQYXR0ZXJuKTtcblxuICAgIGlmIChtYXRjaGVzICYmIG1hdGNoZXMubGVuZ3RoID4gMCkge1xuICAgICAgZ3VpZCA9IG1hdGNoZXNbMF07XG4gICAgfSBlbHNlIGlmIChyZXF1ZXN0VXJsLmluY2x1ZGVzKCcvc2VuZC1tYWlsLWZyb20tZW50aXR5JykpIHtcbiAgICAgIGd1aWQgPSB0aGlzLnN0b3JlLnNlbGVjdFNuYXBzaG90KEZhY2lsaXR5U3RhdGUuZ3VpZCk7XG4gICAgfVxuXG4gICAgY29uc3Qgc21hcnRQYXJrRHRvID0gdGhpcy5zdG9yZS5zZWxlY3RTbmFwc2hvdChTbWFydHBhcmtTdGF0ZS5zbWFydHBhcmtzKT8uZmluZChzbWFydFBhcmsgPT4gc21hcnRQYXJrLmd1aWQgPT09IGd1aWQpO1xuICAgIHJldHVybiBzbWFydFBhcmtEdG87XG4gIH1cblxuICBwcml2YXRlIGNoZWNrQW5kQ2xlYXJQYXJrU3RhdHVzR2xvYmFsRXJyb3JOb3RpZmljYXRpb24odXJsOiBzdHJpbmcpIHtcbiAgICBpZiAodXJsPy5zdGFydHNXaXRoKEVER0VfUFJFRklYX0FQSSkpIHtcbiAgICAgIGNvbnN0IGFwcE1vZHVsZSA9IHRoaXMuc3RvcmUuc2VsZWN0U25hcHNob3QoU2lkZW5hdlN0YXRlLmFwcE1vZHVsZSk7XG4gICAgICBpZiAoYXBwTW9kdWxlID09IEFwcE1vZHVsZS5DYyB8fCBhcHBNb2R1bGUgPT0gQXBwTW9kdWxlLk1hbmFnZW1lbnQpIHtcbiAgICAgICAgY29uc3QgY29ubmVjdGlvblN0YXR1c0RpY3Rpb25hcnk6IENvbm5lY3Rpb25TdGF0dXNEaWN0aW9uYXJ5ID0gdGhpcy5zdG9yZS5zZWxlY3RTbmFwc2hvdChGYWNpbGl0eVN0YXRlLnBhcmtDb25uZWN0aW9uU3RhdHVzTWFwKTtcbiAgICAgICAgY29uc3QgZ3VpZDogc3RyaW5nID0gdGhpcy5zdG9yZS5zZWxlY3RTbmFwc2hvdChGYWNpbGl0eVN0YXRlLmd1aWQpO1xuICAgICAgICBjb25zdCBwYXJrSWQ6IG51bWJlciA9IHRoaXMuc3RvcmUuc2VsZWN0U25hcHNob3QoRmFjaWxpdHlTdGF0ZS5wYXJrSWQpO1xuXG4gICAgICAgIGlmIChndWlkICYmIHBhcmtJZCAmJiBjb25uZWN0aW9uU3RhdHVzRGljdGlvbmFyeVtndWlkXSkge1xuICAgICAgICAgIHZhciBwYXJrQ29ubmVjdGlvblN0YXR1cyA9IGNvbm5lY3Rpb25TdGF0dXNEaWN0aW9uYXJ5W2d1aWRdW3BhcmtJZF07XG4gICAgICAgICAgaWYgKHBhcmtDb25uZWN0aW9uU3RhdHVzLnN0YXR1cyA9PSBQYXJrQ29ubmVjdGlvblN0YXR1cy5TcGFya0NvcmVTZXJ2ZXJEaXNjb25uZWN0ZWQgfHxcbiAgICAgICAgICAgIHBhcmtDb25uZWN0aW9uU3RhdHVzLnN0YXR1cyA9PSBQYXJrQ29ubmVjdGlvblN0YXR1cy5TcGFya0NvcmVDbG91ZFNlcnZlckRpc2Nvbm5lY3RlZCkge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVTZXJ2aWNlc1J1bm5pbmdTdGF0dXMoZ3VpZCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVTZXJ2aWNlc1J1bm5pbmdTdGF0dXMoc21hcnRQYXJrR3VpZDogc3RyaW5nKSB7XG4gICAgY29uc3Qgc2VydmljZXNSdW5uaW5nU3RhdHVzRGljdGlvbmFyeSA9IHRoaXMuc3RvcmUuc2VsZWN0U25hcHNob3QoRmFjaWxpdHlTdGF0ZS5zZXJ2aWNlc1J1bm5pbmdTdGF0dXNEaWN0aW9uYXJ5KTtcbiAgICBjb25zdCBjdXJyZW50RmFjaWxpdHlTZXJ2aWNlc1J1bm5pbmdTdGF0dXM6IFNlcnZpY2VzUnVubmluZ1N0YXR1c0R0byA9IHNlcnZpY2VzUnVubmluZ1N0YXR1c0RpY3Rpb25hcnlbc21hcnRQYXJrR3VpZF07XG4gICAgY3VycmVudEZhY2lsaXR5U2VydmljZXNSdW5uaW5nU3RhdHVzLmlzU3BhcmtDb3JlQ29ubmVjdGVkID0gdHJ1ZTtcbiAgICBjdXJyZW50RmFjaWxpdHlTZXJ2aWNlc1J1bm5pbmdTdGF0dXMuaXNTcGFya0Nsb3VkQ29ubmVjdGVkID0gdHJ1ZTtcbiAgICBjdXJyZW50RmFjaWxpdHlTZXJ2aWNlc1J1bm5pbmdTdGF0dXMuc3BhcmtDbG91ZERpc2Nvbm5lY3RlZFRpbWVzdGFtcCA9IG51bGw7XG4gICAgY3VycmVudEZhY2lsaXR5U2VydmljZXNSdW5uaW5nU3RhdHVzLnNwYXJrQ29yZURpc2Nvbm5lY3RlZFRpbWVzdGFtcCA9IG51bGw7XG4gICAgdGhpcy5zZXJ2aWNlc1J1bm5pbmdTdGF0dXNDaGFuZ2VkKGN1cnJlbnRGYWNpbGl0eVNlcnZpY2VzUnVubmluZ1N0YXR1cywgc21hcnRQYXJrR3VpZCk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUVycm9yUmVzcG9uc2UoZTogSHR0cEVycm9yUmVzcG9uc2UpIHtcbiAgICBpZiAoZS5zdGF0dXMgPT09IEh0dHBTdGF0dXNDb2RlLlVuYXV0aG9yaXplZCAmJiAhQVVUSEVOVElDQVRFX0FQSVMuc29tZShhcGkgPT4gZS51cmwuaW5jbHVkZXMoYXBpKSkgJiYgIUVYVEVSTkFMX0FQSVMuc29tZShhcGkgPT4gZS51cmwuaW5jbHVkZXMoYXBpKSkpIHtcbiAgICAgIGNvbnN0IHNwYXJrU2Vzc2lvbnMgPSB0aGlzLmdldFNwYXJrU2Vzc2lvbnMoKTtcbiAgICAgIGNvbnN0IHRlbmFudCA9IHNwYXJrU2Vzc2lvbnNbdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UudGVuYW50XTtcbiAgICAgIGlmICh0ZW5hbnQ/LnVzZXI/LnNzb0F1dGhlbnRpY2F0ZWQpIHtcbiAgICAgICAgdGhpcy5uYXZpZ2F0ZVRvTG9naW4odGVuYW50Py50ZW5hbnQ/LnRlbmFudE5hbWUpO1xuICAgICAgfVxuICAgICAgZWxzZSB7XG4gICAgICAgIHRoaXMubG9nb3V0KGZhbHNlLCBmYWxzZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGUuc3RhdHVzID09PSBIdHRwU3RhdHVzQ29kZS5Db25mbGljdCkge1xuICAgICAgdGhpcy5zZXRDb25mbGljdERldGVjdGVkKGUpO1xuICAgICAgdGhpcy5sb2dvdXQoZmFsc2UsIGZhbHNlKTtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLmNsZWFyQ29uZmxpY3REZXRlY3RlZCgpO1xuICAgICAgfSwgMzAwMCk7IC8vIERlbGF5IHRoZSByZXNldCB0byBlbnN1cmUgdGhlIFVJIHJlYWN0cyBmaXJzdFxuICAgIH1cblxuICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IGUpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRTcGFya1Nlc3Npb25zID0gKCk6IFN0cmluZ01hcDxTcGFya1Nlc3Npb24+ID0+IEpTT04ucGFyc2UodGhpcy5sb2NhbFN0b3JhZ2VTZXJ2aWNlLmdldEl0ZW0oU0VTU0lPTikpPy5zcGFya1Nlc3Npb25zID8/IHt9O1xuXG4gIHByaXZhdGUgaGFuZGxlQmFja29mZmljZUVycm9yUmVzcG9uc2UoZTogSHR0cEVycm9yUmVzcG9uc2UpIHtcbiAgICBpZiAoZS5zdGF0dXMgPT09IEh0dHBTdGF0dXNDb2RlLlVuYXV0aG9yaXplZCAmJiAhQVVUSEVOVElDQVRFX0FQSVMuc29tZShhcGkgPT4gZS51cmwuaW5jbHVkZXMoYXBpKSkgJiYgIUVYVEVSTkFMX0FQSVMuc29tZShhcGkgPT4gZS51cmwuaW5jbHVkZXMoYXBpKSkpIHtcblxuICAgICAgdGhpcy5uYXZpZ2F0ZVRvTG9naW4oKTtcbiAgICB9XG5cbiAgICBpZiAoZS5zdGF0dXMgPT09IEh0dHBTdGF0dXNDb2RlLkNvbmZsaWN0KSB7XG4gICAgICB0aGlzLnNldENvbmZsaWN0RGV0ZWN0ZWQoZSk7XG4gICAgICB0aGlzLm5hdmlnYXRlVG9Mb2dpbigpO1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMuY2xlYXJDb25mbGljdERldGVjdGVkKCk7XG4gICAgICB9LCAzMDAwKTsgLy8gRGVsYXkgdGhlIHJlc2V0IHRvIGVuc3VyZSB0aGUgVUkgcmVhY3RzIGZpcnN0XG4gICAgfVxuICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IGUpO1xuICB9XG5cbiAgcHJpdmF0ZSBuYXZpZ2F0ZVRvTG9naW4odGVuYW50TmFtZT86IHN0cmluZykge1xuICAgIGNvbnN0IGlzTW9iaWxlQXBwTW9kZSA9IHRoaXMuYXBwQ29uZmlnLmdldENvbmZpZygpLmFwcFR5cGUgPT09IEFwcFR5cGUuTW9iaWxlO1xuICAgIGNvbnN0IGxvZ2luUm91dGUgPSAnL2FjY291bnQvbG9naW4nO1xuXG4gICAgLy8gSWYgbW9iaWxlIOKGkiBhbHdheXMgJycsIG90aGVyd2lzZSBidWlsZCByb3V0ZSAod2l0aCBvciB3aXRob3V0IHRlbmFudClcbiAgICBjb25zdCB1cmwgPSBpc01vYmlsZUFwcE1vZGVcbiAgICAgID8gJydcbiAgICAgIDogdGVuYW50TmFtZVxuICAgICAgICA/IGAke3RlbmFudE5hbWV9JHtsb2dpblJvdXRlfWBcbiAgICAgICAgOiBsb2dpblJvdXRlO1xuXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW3VybF0pO1xuICB9XG5cblxuICBARGlzcGF0Y2goKSBwcml2YXRlIGxvZ291dCA9IChsb2dvdXRBdWRpdDogYm9vbGVhbiwgbG9nb3V0QmFja29mZmljZUF1ZGl0OiBib29sZWFuKSA9PiBuZXcgTG9nb3V0QWN0aW9uKGxvZ291dEF1ZGl0LCBsb2dvdXRCYWNrb2ZmaWNlQXVkaXQpOyAvLyB3aGVuIDQwMSBkbyBub3QgaW52b2tlIGluIHRoZSBsb2dvdXQgYWN0aW9uIHRoZSBsb2dvdXQgQXVkaXRcblxuICBARGlzcGF0Y2goKSBzZXJ2aWNlc1J1bm5pbmdTdGF0dXNDaGFuZ2VkID0gKHNlcnZpY2VzUnVubmluZ1N0YXR1czogU2VydmljZXNSdW5uaW5nU3RhdHVzRHRvLCBndWlkOiBzdHJpbmcpID0+XG4gICAgbmV3IFNlcnZpY2VzUnVubmluZ1N0YXR1c0NoYW5nZWRBY3Rpb24oc2VydmljZXNSdW5uaW5nU3RhdHVzLCBndWlkKTtcblxuICBARGlzcGF0Y2goKSBzZXRDb25mbGljdERldGVjdGVkID0gKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4gbmV3IFNldENvbmZsaWN0RGV0ZWN0ZWQoZXJyb3IpO1xuICBARGlzcGF0Y2goKSBjbGVhckNvbmZsaWN0RGV0ZWN0ZWQgPSAoKSA9PiBuZXcgQ2xlYXJDb25mbGljdERldGVjdGVkKCk7XG59XG4iXX0=
|
|
293
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC10b2tlbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LXNoYXJlZC1saWIvc3JjL2xpYnJhcmllcy9zZXJ2aWNlcy9hdXRoLXRva2VuLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBd0UsY0FBYyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDNUgsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFekQsT0FBTyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBQzVCLE9BQU8sRUFBYyxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDOUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDakQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFHMUUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLFlBQVksRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRTNHLE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzFGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNuRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDaEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxTQUFTLEVBQXFELE1BQU0sd0NBQXdDLENBQUM7QUFLdEgsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7Ozs7OztBQUtyRCxNQUFNLGlCQUFpQixHQUFHO0lBQ3hCLHdDQUF3QztJQUN4QyxxQ0FBcUM7SUFDckMsbURBQW1EO0lBQ25ELDBDQUEwQztDQUMzQyxDQUFDO0FBRUYsTUFBTSxlQUFlLEdBQUcsc0JBQXNCLENBQUM7QUFDL0MsTUFBTSxpQkFBaUIsR0FBRyxzQ0FBc0MsQ0FBQztBQUNqRSxNQUFNLHdCQUF3QixHQUFHLHlDQUF5QyxDQUFDO0FBQzNFLE1BQU0sYUFBYSxHQUFHO0lBQ3BCLHFDQUFxQztJQUNyQywwQkFBMEIsRUFBRSxnRkFBZ0Y7Q0FDN0csQ0FBQztBQUNGLE1BQU0sY0FBYyxHQUFHO0lBQ3JCLGlCQUFpQjtJQUNqQixrQkFBa0I7SUFDbEIsbURBQW1EO0lBQ25ELHFDQUFxQztJQUNyQyx3Q0FBd0M7SUFDeEMsOENBQThDO0lBQzlDLDRDQUE0QztJQUM1QyxrQ0FBa0M7SUFDbEMsNkJBQTZCO0lBQzdCLGlDQUFpQztJQUNqQyxxREFBcUQ7SUFDckQsOEJBQThCO0lBQzlCLHdDQUF3QztJQUN4QyxtREFBbUQ7SUFDbkQsaUNBQWlDO0lBQ2pDLGtCQUFrQjtJQUNsQiwwQ0FBMEM7SUFDMUMsY0FBYztJQUNkLHdDQUF3QztJQUN4QyxnQ0FBZ0M7SUFDaEMsd0RBQXdEO0NBQ3pELENBQUM7QUFHRixNQUFNLE9BQU8sZ0JBQWdCO0lBRTNCLFlBQW9CLHFCQUE0QyxFQUFVLEtBQVksRUFBVSxNQUFjLEVBQ3BHLFNBQTJCLEVBQVUsbUJBQXdDLEVBQVUsbUJBQXdDO1FBRHJILDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBdUI7UUFBVSxVQUFLLEdBQUwsS0FBSyxDQUFPO1FBQVUsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNwRyxjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUFVLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFBVSx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBR2xJLDBCQUFxQixHQUFHLENBQUMsV0FBd0IsRUFBRSxFQUFFLENBQzFELENBQUMsV0FBVyxJQUFJLElBQUksSUFBSSxFQUFFLEdBQUcsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBRSxXQUFXLENBQUMsZUFBZSxHQUFHLEdBQUcsRUFBRSxjQUFjLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBb0ZuSSwwQkFBcUIsR0FBRyxDQUFDLEdBQXFCLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsd0JBQXdCLENBQUMsQ0FBQztRQThDNUksdURBQXVEO1FBQ3ZELGlGQUFpRjtRQUN6RSw0QkFBdUIsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1FBc0U1RSxxQkFBZ0IsR0FBRyxHQUE0QixFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsYUFBYSxJQUFJLEVBQUUsQ0FBQztRQWlDakgsV0FBTSxHQUFHLENBQUMsV0FBb0IsRUFBRSxxQkFBOEIsRUFBRSxFQUFFLENBQUMsSUFBSSxZQUFZLENBQUMsV0FBVyxFQUFFLHFCQUFxQixDQUFDLENBQUMsQ0FBQywrREFBK0Q7UUFFaE0saUNBQTRCLEdBQUcsQ0FBQyxxQkFBK0MsRUFBRSxJQUFZLEVBQUUsRUFBRSxDQUMzRyxJQUFJLGtDQUFrQyxDQUFDLHFCQUFxQixFQUFFLElBQUksQ0FBQyxDQUFDO1FBRTFELHdCQUFtQixHQUFHLENBQUMsS0FBd0IsRUFBRSxFQUFFLENBQUMsSUFBSSxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNuRiwwQkFBcUIsR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLHFCQUFxQixFQUFFLENBQUM7SUFwUHRFLENBQUM7SUFLTSxhQUFhLENBQUMsR0FBcUIsRUFBRSxJQUFpQjtRQUMzRCxHQUFHLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2xDLElBQUksT0FBTyxHQUErQixJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzNELE1BQU0sV0FBVyxHQUFnQixJQUFJLENBQUMscUJBQXFCLENBQUMsT0FBTyxDQUFDO1FBQ3BFLElBQUksSUFBSSxDQUFDLHdCQUF3QixDQUFDLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDO1lBQ2xGLE9BQU8sR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsa0JBQWtCLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ25FLENBQUM7UUFFRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRU0sdUJBQXVCLENBQUMsR0FBcUIsRUFBRSxJQUFpQjtRQUNyRSxHQUFHLEdBQUcsSUFBSSxDQUFDLDJCQUEyQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzVDLElBQUksT0FBTyxHQUErQixJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzNELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFTywyQkFBMkIsQ0FBQyxHQUFxQjtRQUN2RCxNQUFNLGVBQWUsR0FBb0IsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzVGLElBQUksSUFBSSxDQUFDLHFCQUFxQixDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQzNDLEdBQUcsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDO2dCQUNkLE9BQU8sRUFBRSxHQUFHLENBQUMsT0FBTztxQkFDakIsR0FBRyxDQUFDLGVBQWUsRUFBRSxVQUFVLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxXQUFXLEVBQUUsQ0FBQztxQkFDeEUsR0FBRyxDQUFDLGtCQUFrQixFQUFFLGVBQWUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztxQkFDbkQsR0FBRyxDQUFDLGFBQWEsRUFBRSxNQUFNLENBQUM7cUJBQzFCLEdBQUcsQ0FBQyw2QkFBNkIsRUFBRSxHQUFHLENBQUM7cUJBQ3ZDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsZUFBZSxFQUFFLENBQUM7cUJBQ2xDLEdBQUcsQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDO2FBQ3hFLENBQUMsQ0FBQztRQUNMLENBQUM7YUFDSSxDQUFDO1lBQ0osR0FBRyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUM7Z0JBQ2QsT0FBTyxFQUFFLEdBQUcsQ0FBQyxPQUFPO3FCQUNqQixHQUFHLENBQUMsVUFBVSxFQUFFLGVBQWUsRUFBRSxDQUFDO3FCQUNsQyxHQUFHLENBQUMsNkJBQTZCLEVBQUUsR0FBRyxDQUFDO3FCQUN2QyxHQUFHLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxFQUFFLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQzthQUN4RSxDQUFDLENBQUM7UUFDTCxDQUFDO1FBQ0QsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRU0sbUJBQW1CLENBQUMsR0FBcUIsRUFBRSxJQUFpQjtRQUNqRSxHQUFHLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2xDLElBQUksT0FBTyxHQUErQixJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzNELE1BQU0sV0FBVyxHQUFnQixJQUFJLENBQUMscUJBQXFCLENBQUMsT0FBTyxDQUFDO1FBQ3BFLElBQUksSUFBSSxDQUFDLHdCQUF3QixDQUFDLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDO1lBQ2xGLE9BQU8sR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsd0JBQXdCLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3pFLENBQUM7UUFFRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRU0sZ0NBQWdDLENBQUMsQ0FBb0IsRUFBRSxHQUFxQixFQUFFLElBQWlCO1FBQ3BHLElBQUksUUFBeUIsQ0FBQztRQUM5QixRQUFRLEdBQUcsSUFBSSxDQUFDLDZCQUE2QixDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2pELE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7SUFFTSxzQkFBc0IsQ0FBQyxDQUFvQixFQUFFLEdBQXFCLEVBQUUsSUFBaUI7UUFDMUYsSUFBSSxRQUF5QixDQUFDO1FBQzlCLFFBQVEsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2pCLEtBQUssY0FBYyxDQUFDLFlBQVk7Z0JBQzlCLElBQUksSUFBSSxDQUFDLHdCQUF3QixDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7b0JBQ3ZDLFFBQVEsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsa0JBQWtCLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO2dCQUNwRSxDQUFDO3FCQUFNLENBQUM7b0JBQ04sUUFBUSxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDekMsQ0FBQztnQkFDRCxNQUFNO1lBQ1I7Z0JBQ0UsUUFBUSxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDdkMsTUFBTTtRQUNWLENBQUM7UUFFRCxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO0lBRU0scUJBQXFCLENBQUMsR0FBcUIsRUFBRSxLQUF3QjtRQUMxRSxJQUFJLEtBQUssRUFBRSxNQUFNLEtBQUssY0FBYyxDQUFDLEVBQUUsSUFBSSxLQUFLLEVBQUUsTUFBTSxLQUFLLGNBQWMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNyRixJQUFJLENBQUMsOENBQThDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQy9ELENBQUM7SUFDSCxDQUFDO0lBSU8saUJBQWlCLENBQUMsR0FBcUI7UUFDN0MsTUFBTSxlQUFlLEdBQW9CLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM1RixNQUFNLFNBQVMsR0FBYyxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDL0UsTUFBTSxTQUFTLEdBQWMsSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQy9FLE1BQU0sWUFBWSxHQUFHLFNBQVMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFDakQsTUFBTSxZQUFZLEdBQUcsU0FBUyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQztRQUVqRCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDekQsTUFBTSxZQUFZLEdBQUcsWUFBWSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN4RCxNQUFNLGdCQUFnQixHQUFHLENBQUMsWUFBWSxDQUFDLGtCQUFrQixDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO1FBRWxILElBQUksSUFBSSxDQUFDLHFCQUFxQixDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQzNDLEdBQUcsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDO2dCQUNkLE9BQU8sRUFBRSxHQUFHLENBQUMsT0FBTztxQkFDakIsR0FBRyxDQUFDLGVBQWUsRUFBRSxVQUFVLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxXQUFXLEVBQUUsQ0FBQztxQkFDeEUsR0FBRyxDQUFDLGtCQUFrQixFQUFFLGVBQWUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztxQkFDbkQsR0FBRyxDQUFDLGFBQWEsRUFBRSxNQUFNLENBQUM7cUJBQzFCLEdBQUcsQ0FBQyw2QkFBNkIsRUFBRSxHQUFHLENBQUM7cUJBQ3ZDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsWUFBWSxDQUFDLENBQUMseUNBQXlDO3FCQUN4RSxHQUFHLENBQUMsWUFBWSxFQUFFLFlBQVksQ0FBQztxQkFDL0IsR0FBRyxDQUFDLFlBQVksRUFBRSxZQUFZLENBQUM7cUJBQy9CLEdBQUcsQ0FBQyxVQUFVLEVBQUUsZUFBZSxFQUFFLENBQUM7cUJBQ2xDLEdBQUcsQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDO3FCQUNwRSxHQUFHLENBQUMsY0FBYyxFQUFFLFlBQVksQ0FBQztxQkFDakMsR0FBRyxDQUFDLGtCQUFrQixFQUFFLGdCQUFnQixDQUFDO2FBQzdDLENBQUMsQ0FBQztRQUNMLENBQUM7YUFDSSxDQUFDO1lBQ0osR0FBRyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUM7Z0JBQ2QsT0FBTyxFQUFFLEdBQUcsQ0FBQyxPQUFPO3FCQUNqQixHQUFHLENBQUMsVUFBVSxFQUFFLGVBQWUsRUFBRSxDQUFDO3FCQUNsQyxHQUFHLENBQUMsNkJBQTZCLEVBQUUsR0FBRyxDQUFDO3FCQUN2QyxHQUFHLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxFQUFFLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQztxQkFDcEUsR0FBRyxDQUFDLGNBQWMsRUFBRSxZQUFZLENBQUM7YUFDckMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUVELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVPLHdCQUF3QixDQUFDLEdBQXFCO1FBQ3BELE9BQU8sQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDO0lBQ3RMLENBQUM7SUFNTyxlQUFlLENBQUMsVUFBa0I7UUFDeEMsSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBRWhCLE1BQU0sV0FBVyxHQUFHLDZFQUE2RSxDQUFDO1FBQ2xHLE1BQU0sT0FBTyxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFOUMsSUFBSSxPQUFPLElBQUksT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNsQyxJQUFJLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLENBQUM7YUFBTSxJQUFJLFVBQVUsQ0FBQyxRQUFRLENBQUMsd0JBQXdCLENBQUMsRUFBRSxDQUFDO1lBQ3pELElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdkQsQ0FBQztRQUVELE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxDQUFDO1FBQ3RILE9BQU8sWUFBWSxDQUFDO0lBQ3RCLENBQUM7SUFFTyw4Q0FBOEMsQ0FBQyxHQUFXO1FBQ2hFLElBQUksR0FBRyxFQUFFLFVBQVUsQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDO1lBQ3JDLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUNwRSxJQUFJLFNBQVMsSUFBSSxTQUFTLENBQUMsRUFBRSxJQUFJLFNBQVMsSUFBSSxTQUFTLENBQUMsVUFBVSxFQUFFLENBQUM7Z0JBQ25FLE1BQU0sMEJBQTBCLEdBQStCLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLGFBQWEsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO2dCQUNoSSxNQUFNLElBQUksR0FBVyxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ25FLE1BQU0sTUFBTSxHQUFXLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFFdkUsSUFBSSxJQUFJLElBQUksTUFBTSxJQUFJLDBCQUEwQixDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7b0JBQ3ZELElBQUksb0JBQW9CLEdBQUcsMEJBQTBCLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUM7b0JBQ3BFLElBQUksb0JBQW9CLENBQUMsTUFBTSxJQUFJLG9CQUFvQixDQUFDLDJCQUEyQjt3QkFDakYsb0JBQW9CLENBQUMsTUFBTSxJQUFJLG9CQUFvQixDQUFDLGdDQUFnQyxFQUFFLENBQUM7d0JBQ3ZGLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDekMsQ0FBQztnQkFDSCxDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRU8sMkJBQTJCLENBQUMsYUFBcUI7UUFDdkQsTUFBTSwrQkFBK0IsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxhQUFhLENBQUMsK0JBQStCLENBQUMsQ0FBQztRQUNqSCxNQUFNLG9DQUFvQyxHQUE2QiwrQkFBK0IsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN0SCxvQ0FBb0MsQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUM7UUFDakUsb0NBQW9DLENBQUMscUJBQXFCLEdBQUcsSUFBSSxDQUFDO1FBQ2xFLG9DQUFvQyxDQUFDLCtCQUErQixHQUFHLElBQUksQ0FBQztRQUM1RSxvQ0FBb0MsQ0FBQyw4QkFBOEIsR0FBRyxJQUFJLENBQUM7UUFDM0UsSUFBSSxDQUFDLDRCQUE0QixDQUFDLG9DQUFvQyxFQUFFLGFBQWEsQ0FBQyxDQUFDO0lBQ3pGLENBQUM7SUFFTyxtQkFBbUIsQ0FBQyxDQUFvQjtRQUM5QyxJQUFJLENBQUMsQ0FBQyxNQUFNLEtBQUssY0FBYyxDQUFDLFlBQVksSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ3ZKLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQzlDLE1BQU0sTUFBTSxHQUFHLGFBQWEsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDaEUsSUFBSSxNQUFNLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLENBQUM7Z0JBQ25DLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxVQUFVLENBQUMsQ0FBQztZQUNuRCxDQUFDO2lCQUNJLENBQUM7Z0JBQ0osSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDNUIsQ0FBQztRQUNILENBQUM7UUFFRCxJQUFJLENBQUMsQ0FBQyxNQUFNLEtBQUssY0FBYyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3pDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM1QixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztZQUMxQixVQUFVLENBQUMsR0FBRyxFQUFFO2dCQUNkLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1lBQy9CLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLGdEQUFnRDtRQUM1RCxDQUFDO1FBRUQsT0FBTyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUlPLDZCQUE2QixDQUFDLENBQW9CO1FBQ3hELElBQUksQ0FBQyxDQUFDLE1BQU0sS0FBSyxjQUFjLENBQUMsWUFBWSxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFFdkosSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3pCLENBQUM7UUFFRCxJQUFJLENBQUMsQ0FBQyxNQUFNLEtBQUssY0FBYyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3pDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM1QixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDdkIsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDZCxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztZQUMvQixDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxnREFBZ0Q7UUFDNUQsQ0FBQztRQUNELE9BQU8sVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFTyxlQUFlLENBQUMsVUFBbUI7UUFDekMsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxPQUFPLEtBQUssT0FBTyxDQUFDLE1BQU0sQ0FBQztRQUM5RSxNQUFNLFVBQVUsR0FBRyxnQkFBZ0IsQ0FBQztRQUVwQyx3RUFBd0U7UUFDeEUsTUFBTSxHQUFHLEdBQUcsZUFBZTtZQUN6QixDQUFDLENBQUMsRUFBRTtZQUNKLENBQUMsQ0FBQyxVQUFVO2dCQUNWLENBQUMsQ0FBQyxHQUFHLFVBQVUsR0FBRyxVQUFVLEVBQUU7Z0JBQzlCLENBQUMsQ0FBQyxVQUFVLENBQUM7UUFFakIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzlCLENBQUM7K0dBL09VLGdCQUFnQjttSEFBaEIsZ0JBQWdCOztBQWtQUDtJQUFuQixRQUFRLEVBQUU7Z0RBQWlJO0FBRWhJO0lBQVgsUUFBUSxFQUFFO3NFQUMyRDtBQUUxRDtJQUFYLFFBQVEsRUFBRTs2REFBb0Y7QUFDbkY7SUFBWCxRQUFRLEVBQUU7K0RBQTJEOzRGQXhQM0QsZ0JBQWdCO2tCQUQ1QixVQUFVO3NPQW1QVyxNQUFNLE1BRWQsNEJBQTRCLE1BRzVCLG1CQUFtQixNQUNuQixxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwRXJyb3JSZXNwb25zZSwgSHR0cEV2ZW50LCBIdHRwSGFuZGxlciwgSHR0cFJlcXVlc3QsIEh0dHBSZXNwb25zZSwgSHR0cFN0YXR1c0NvZGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgRGlzcGF0Y2ggfSBmcm9tICdAbmd4cy1sYWJzL2Rpc3BhdGNoLWRlY29yYXRvcic7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3hzL3N0b3JlJztcbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50JztcbmltcG9ydCB7IE9ic2VydmFibGUsIHRocm93RXJyb3IgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFNFU1NJT04gfSBmcm9tICcuLi9jb25zdGFudHMva2V5cy1jb25zdGFudHMnO1xuaW1wb3J0IHsgQXBwVHlwZU1hcCB9IGZyb20gJy4uL2VudW1zL2FwcC10eXBlLW1hcC5lbnVtJztcbmltcG9ydCB7IEFwcFR5cGUgfSBmcm9tICcuLi9lbnVtcy9hcHAtdHlwZS5lbnVtJztcbmltcG9ydCB7IFBhcmtDb25uZWN0aW9uU3RhdHVzIH0gZnJvbSAnLi4vZW51bXMvcHJpb3JpdHktbGluay1zdGF0dXMuZW51bSc7XG5pbXBvcnQgeyBTcGFya1Nlc3Npb24gfSBmcm9tICcuLi9pbnRlcmZhY2VzL3NwYXJrLXNlc3Npb24uaW50ZXJmYWNlJztcbmltcG9ydCB7IFJlZnJlc2hJbmZvIH0gZnJvbSAnLi4vbW9kdWxlcy9hdXRoL21vZGVsL3JlZnJlc2gtaW5mby5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQ2xlYXJDb25mbGljdERldGVjdGVkLCBMb2dvdXRBY3Rpb24sIFNldENvbmZsaWN0RGV0ZWN0ZWQgfSBmcm9tICcuLi9tb2R1bGVzL2F1dGgvc2Vzc2lvbi5hY3Rpb25zJztcbmltcG9ydCB7IENvbm5lY3Rpb25TdGF0dXNEaWN0aW9uYXJ5IH0gZnJvbSAnLi4vbW9kdWxlcy9mYWNpbGl0eS9mYWNpbGl0eS1tb2RhbCc7XG5pbXBvcnQgeyBTZXJ2aWNlc1J1bm5pbmdTdGF0dXNDaGFuZ2VkQWN0aW9uIH0gZnJvbSAnLi4vbW9kdWxlcy9mYWNpbGl0eS9mYWNpbGl0eS5hY3Rpb25zJztcbmltcG9ydCB7IEZhY2lsaXR5U3RhdGUgfSBmcm9tICcuLi9tb2R1bGVzL2ZhY2lsaXR5L2ZhY2lsaXR5LnN0YXRlJztcbmltcG9ydCB7IFNpZGVuYXZTdGF0ZSB9IGZyb20gJy4uL21vZHVsZXMvc2lkZW5hdi9zaWRlbmF2LnN0YXRlJztcbmltcG9ydCB7IFNtYXJ0cGFya1N0YXRlIH0gZnJvbSAnLi4vbW9kdWxlcy9zbWFydHBhcmtzL3NtYXJ0cGFyay5zdGF0ZSc7XG5pbXBvcnQgeyBBcHBNb2R1bGUsIFNlcnZpY2VzUnVubmluZ1N0YXR1c0R0bywgU21hcnRwYXJrRHRvLCBTdWJNb2R1bGUgfSBmcm9tICcuLi9zZXJ2aWNlLXByb3h5L2Nsb3VkLXNlcnZpY2UtcHJveGllcyc7XG5pbXBvcnQgeyBTbWFydHBhcmtCYXNpY0R0byB9IGZyb20gJy4uL3NlcnZpY2UtcHJveHkvaWRlbnRpdHktc2VydmljZS1wcm94aWVzJztcbmltcG9ydCB7IEFwcGxpY2F0aW9uVHlwZSB9IGZyb20gJy4uL3NlcnZpY2UtcHJveHkvcnBjLXNlcnZpY2UtcHJveGllcyc7XG5pbXBvcnQgeyBBcHBDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvYXBwLWNvbmZpZy5zZXJ2aWNlJztcbmltcG9ydCB7IFNlc3Npb25TdG9yYWdlU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3Nlc3Npb24tc3RvcmFnZS5zZXJ2aWNlJztcbmltcG9ydCB7IGdldFVzZXJUaW1lWm9uZSB9IGZyb20gJy4uL3V0aWxzL2RhdGUudXRpbCc7XG5pbXBvcnQgeyBTdHJpbmdNYXAgfSBmcm9tICcuLi91dGlscy9sYW5nLnV0aWwnO1xuaW1wb3J0IHsgTG9jYWxTdG9yYWdlU2VydmljZSB9IGZyb20gJy4vbG9jYWwtc3RvcmFnZS5zZXJ2aWNlJztcbmltcG9ydCB7IFJlZnJlc2hUb2tlblNlcnZpY2UgfSBmcm9tICcuL3JlZnJlc2gtdG9rZW4uc2VydmljZSc7XG5cbmNvbnN0IEFVVEhFTlRJQ0FURV9BUElTID0gW1xuICAnYXBpL3NlcnZpY2VzL3dlYi91c2Vycy92ZXJpZnktMmZhLWF1dGgnLFxuICAnYXBpL3NlcnZpY2VzL3dlYi91c2Vycy9hdXRoZW50aWNhdGUnLFxuICAnYXBpL3NlcnZpY2VzL3dlYi91c2Vycy9tdWx0aS10ZW5hbnRzLWF1dGhlbnRpY2F0ZScsXG4gICdhcGkvc2VydmljZXMvYmFja29mZmljZXVzZXIvYXV0aGVudGljYXRlJ1xuXTtcblxuY29uc3QgRURHRV9QUkVGSVhfQVBJID0gJy9hcGkvc2VydmljZXMvd2ViL3NwJztcbmNvbnN0IFJFRlJFU0hfVE9LRU5fQVBJID0gJ2FwaS9zZXJ2aWNlcy93ZWIvdXNlcnMvcmVmcmVzaC10b2tlbic7XG5jb25zdCBSRUZSRVNIX01PQklMRV9UT0tFTl9BUEkgPSAnYXBpL3NlcnZpY2VzL21vYmlsZS91c2Vycy9yZWZyZXNoLXRva2VuJztcbmNvbnN0IEVYVEVSTkFMX0FQSVMgPSBbXG4gICdhcGkvc2VydmljZXMvc2VsZnZhbGlkYXRpb24vZGV0YWlscycsXG4gICcvZXhlY3V0ZS9zZWxmLXZhbGlkYXRpb24nLCAvLyBUT0RPOiBSZW1vdmUgd2hlbiBzZWxmLXZhbGlkYXRpb24gaXMgaGFuZGxlZCBieSB0aGUgbmV3IHByb2plY3QgKE1hdGFuU2hvbWVyKVxuXTtcbmNvbnN0IEFOT05ZTU9VU19BUElTID0gW1xuICBSRUZSRVNIX1RPS0VOX0FQSSxcbiAgLy8gTGF0ZXN0IFdlYiBVUkxzXG4gICdhcGkvc2VydmljZXMvd2ViL3VzZXJzL211bHRpLXRlbmFudHMtYXV0aGVudGljYXRlJyxcbiAgJ2FwaS9zZXJ2aWNlcy93ZWIvdXNlcnMvYXV0aGVudGljYXRlJyxcbiAgJ2FwaS9zZXJ2aWNlcy93ZWIvdXNlcnMvdmVyaWZ5LTJmYS1hdXRoJyxcbiAgJ2FwaS9zZXJ2aWNlcy93ZWIvdXNlcnMvdmVyaWZ5LTJmYS1hdXRoLWxvZ2luJyxcbiAgJ2FwaS9zZXJ2aWNlcy93ZWIvdXNlcnMvdmFsaWRhdGUtYWN0aXZhdGlvbicsXG4gICdhcGkvc2VydmljZXMvd2ViL3VzZXJzL29pZGMtYXV0aCcsXG4gICdhcGkvc2VydmljZXMvd2ViL2Fzc2V0L2xvZ28nLFxuICAnYXBpL3NlcnZpY2VzL3dlYi90ZW5hbnQvZGV0YWlscycsXG4gICdhcGkvc2VydmljZXMvd2ViL2NvbmZpZ3VyYXRpb24vc3BhcmstbW9iaWxlLXZlcnNpb24nLFxuICAnYXBpL3NlcnZpY2VzL3dlYi90ZW5hbnQvZGF0YScsXG4gICdhcGkvc2VydmljZXMvd2ViL3VzZXJzL2ZvcmdvdC1wYXNzd29yZCcsXG4gICdhcGkvc2VydmljZXMvd2ViL3VzZXJzL2ZvcmdvdC1wYXNzd29yZC10ZW5hbnRsZXNzJyxcbiAgJ2FwaS9zZXJ2aWNlcy93ZWIvdXNlcnMvYWN0aXZhdGUnLFxuICAvLyBCYWNrb2ZmaWNlIFVSTHNcbiAgJ2FwaS9zZXJ2aWNlcy9iYWNrb2ZmaWNldXNlci9hdXRoZW50aWNhdGUnLFxuICAvLyBNb2JpbGUgVVJMc1xuICAnYXBpL3NlcnZpY2VzL21vYmlsZS91c2Vycy9hdXRoZW50aWNhdGUnLFxuICAnYXBpL3NlcnZpY2VzL21vYmlsZS9hc3NldC9sb2dvJyxcbiAgJ2FwaS9zZXJ2aWNlcy9tb2JpbGUvY29uZmlndXJhdGlvbi9zcGFyay1tb2JpbGUtdmVyc2lvbicsXG5dO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQXV0aFRva2VuU2VydmljZSB7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzZXNzaW9uU3RvcmFnZVNlcnZpY2U6IFNlc3Npb25TdG9yYWdlU2VydmljZSwgcHJpdmF0ZSBzdG9yZTogU3RvcmUsIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSBhcHBDb25maWc6IEFwcENvbmZpZ1NlcnZpY2UsIHByaXZhdGUgcmVmcmVzaFRva2VuU2VydmljZTogUmVmcmVzaFRva2VuU2VydmljZSwgcHJpdmF0ZSBsb2NhbFN0b3JhZ2VTZXJ2aWNlOiBMb2NhbFN0b3JhZ2VTZXJ2aWNlKSB7XG4gIH1cblxuICBwdWJsaWMgaXNSZWZyZXNoVG9rZW5FeHBpcmVkID0gKHJlZnJlc2hJbmZvOiBSZWZyZXNoSW5mbykgPT5cbiAgICAhcmVmcmVzaEluZm8gfHwgbmV3IERhdGUoKSA+IG5ldyBEYXRlKG1vbWVudChyZWZyZXNoSW5mby5leHBpcmF0aW9uKS5hZGQoLSByZWZyZXNoSW5mby5yZWZyZXNoSW50ZXJ2YWwgKiAwLjEsICdtaWxsaXNlY29uZHMnKS5mb3JtYXQoKSk7XG5cbiAgcHVibGljIGhhbmRsZVJlcXVlc3QocmVxOiBIdHRwUmVxdWVzdDxhbnk+LCBuZXh0OiBIdHRwSGFuZGxlcikge1xuICAgIHJlcSA9IHRoaXMuc2V0UmVxdWVzdEhlYWRlcnMocmVxKTtcbiAgICBsZXQgcmVxdWVzdDogT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8YW55Pj4gPSBuZXh0LmhhbmRsZShyZXEpO1xuICAgIGNvbnN0IHJlZnJlc2hJbmZvOiBSZWZyZXNoSW5mbyA9IHRoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLmdldEF1dGg7XG4gICAgaWYgKHRoaXMuc2hvdWxkSGFuZGxlUmVmcmVzaFRva2VuKHJlcSkgJiYgdGhpcy5pc1JlZnJlc2hUb2tlbkV4cGlyZWQocmVmcmVzaEluZm8pKSB7XG4gICAgICByZXF1ZXN0ID0gdGhpcy5yZWZyZXNoVG9rZW5TZXJ2aWNlLmhhbmRsZVJlZnJlc2hUb2tlbihyZXEsIG5leHQpO1xuICAgIH1cblxuICAgIHJldHVybiByZXF1ZXN0O1xuICB9XG5cbiAgcHVibGljIGhhbmRsZUJhY2tPZmZpY2VSZXF1ZXN0KHJlcTogSHR0cFJlcXVlc3Q8YW55PiwgbmV4dDogSHR0cEhhbmRsZXIpIHtcbiAgICByZXEgPSB0aGlzLnNldEJhY2tPZmZpY2VSZXF1ZXN0SGVhZGVycyhyZXEpO1xuICAgIGxldCByZXF1ZXN0OiBPYnNlcnZhYmxlPEh0dHBFdmVudDxhbnk+PiA9IG5leHQuaGFuZGxlKHJlcSk7XG4gICAgcmV0dXJuIHJlcXVlc3Q7XG4gIH1cblxuICBwcml2YXRlIHNldEJhY2tPZmZpY2VSZXF1ZXN0SGVhZGVycyhyZXE6IEh0dHBSZXF1ZXN0PGFueT4pIHtcbiAgICBjb25zdCBhcHBsaWNhdGlvblR5cGU6IEFwcGxpY2F0aW9uVHlwZSA9IEFwcFR5cGVNYXAuZ2V0KHRoaXMuYXBwQ29uZmlnLmdldENvbmZpZygpLmFwcFR5cGUpO1xuICAgIGlmICh0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZS5hY2Nlc3NUb2tlbikge1xuICAgICAgcmVxID0gcmVxLmNsb25lKHtcbiAgICAgICAgaGVhZGVyczogcmVxLmhlYWRlcnNcbiAgICAgICAgICAuc2V0KCdBdXRob3JpemF0aW9uJywgYEJlYXJlciAke3RoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLmFjY2Vzc1Rva2VufWApXG4gICAgICAgICAgLnNldCgnQXBwbGljYXRpb24tVHlwZScsIGFwcGxpY2F0aW9uVHlwZS50b1N0cmluZygpKVxuICAgICAgICAgIC5zZXQoJ25nc3ctYnlwYXNzJywgJ3RydWUnKVxuICAgICAgICAgIC5zZXQoJ0FjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbicsICcqJylcbiAgICAgICAgICAuc2V0KCd0aW1lWm9uZScsIGdldFVzZXJUaW1lWm9uZSgpKVxuICAgICAgICAgIC5zZXQoJ0NsaWVudFZlcnNpb24nLCB0aGlzLmFwcENvbmZpZy5nZXRDb25maWcoKS5wYWNrYWdlSW5mby52ZXJzaW9uKVxuICAgICAgfSk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgcmVxID0gcmVxLmNsb25lKHtcbiAgICAgICAgaGVhZGVyczogcmVxLmhlYWRlcnNcbiAgICAgICAgICAuc2V0KCd0aW1lWm9uZScsIGdldFVzZXJUaW1lWm9uZSgpKVxuICAgICAgICAgIC5zZXQoJ0FjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbicsICcqJylcbiAgICAgICAgICAuc2V0KCdDbGllbnRWZXJzaW9uJywgdGhpcy5hcHBDb25maWcuZ2V0Q29uZmlnKCkucGFja2FnZUluZm8udmVyc2lvbilcbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gcmVxO1xuICB9XG5cbiAgcHVibGljIGhhbmRsZU1vYmlsZVJlcXVlc3QocmVxOiBIdHRwUmVxdWVzdDxhbnk+LCBuZXh0OiBIdHRwSGFuZGxlcikge1xuICAgIHJlcSA9IHRoaXMuc2V0UmVxdWVzdEhlYWRlcnMocmVxKTtcbiAgICBsZXQgcmVxdWVzdDogT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8YW55Pj4gPSBuZXh0LmhhbmRsZShyZXEpO1xuICAgIGNvbnN0IHJlZnJlc2hJbmZvOiBSZWZyZXNoSW5mbyA9IHRoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLmdldEF1dGg7XG4gICAgaWYgKHRoaXMuc2hvdWxkSGFuZGxlUmVmcmVzaFRva2VuKHJlcSkgJiYgdGhpcy5pc1JlZnJlc2hUb2tlbkV4cGlyZWQocmVmcmVzaEluZm8pKSB7XG4gICAgICByZXF1ZXN0ID0gdGhpcy5yZWZyZXNoVG9rZW5TZXJ2aWNlLmhhbmRsZU1vYmlsZVJlZnJlc2hUb2tlbihyZXEsIG5leHQpO1xuICAgIH1cblxuICAgIHJldHVybiByZXF1ZXN0O1xuICB9XG5cbiAgcHVibGljIGhhbmRsZUJhY2tvZmZpY2VFdmVudFN0YXR1c0Vycm9yKGU6IEh0dHBFcnJvclJlc3BvbnNlLCByZXE6IEh0dHBSZXF1ZXN0PGFueT4sIG5leHQ6IEh0dHBIYW5kbGVyKSB7XG4gICAgbGV0IHJlc3BvbnNlOiBPYnNlcnZhYmxlPGFueT47XG4gICAgcmVzcG9uc2UgPSB0aGlzLmhhbmRsZUJhY2tvZmZpY2VFcnJvclJlc3BvbnNlKGUpO1xuICAgIHJldHVybiByZXNwb25zZTtcbiAgfVxuXG4gIHB1YmxpYyBoYW5kbGVFdmVudFN0YXR1c0Vycm9yKGU6IEh0dHBFcnJvclJlc3BvbnNlLCByZXE6IEh0dHBSZXF1ZXN0PGFueT4sIG5leHQ6IEh0dHBIYW5kbGVyKSB7XG4gICAgbGV0IHJlc3BvbnNlOiBPYnNlcnZhYmxlPGFueT47XG4gICAgc3dpdGNoIChlLnN0YXR1cykge1xuICAgICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5VbmF1dGhvcml6ZWQ6XG4gICAgICAgIGlmICh0aGlzLnNob3VsZEhhbmRsZVJlZnJlc2hUb2tlbihyZXEpKSB7XG4gICAgICAgICAgcmVzcG9uc2UgPSB0aGlzLnJlZnJlc2hUb2tlblNlcnZpY2UuaGFuZGxlUmVmcmVzaFRva2VuKHJlcSwgbmV4dCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmVzcG9uc2UgPSB0aGlzLmhhbmRsZUVycm9yUmVzcG9uc2UoZSk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXNwb25zZSA9IHRoaXMuaGFuZGxlRXJyb3JSZXNwb25zZShlKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3BvbnNlO1xuICB9XG5cbiAgcHVibGljIGhhbmRsZVN1Y2Nlc3NSZXNwb25zZShyZXE6IEh0dHBSZXF1ZXN0PGFueT4sIGV2ZW50OiBIdHRwUmVzcG9uc2U8YW55Pikge1xuICAgIGlmIChldmVudD8uc3RhdHVzID09PSBIdHRwU3RhdHVzQ29kZS5PayB8fCBldmVudD8uc3RhdHVzID09PSBIdHRwU3RhdHVzQ29kZS5BY2NlcHRlZCkge1xuICAgICAgdGhpcy5jaGVja0FuZENsZWFyUGFya1N0YXR1c0dsb2JhbEVycm9yTm90aWZpY2F0aW9uKHJlcS51cmwpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBpc1JlZnJlc2hUb2tlblJlcXVlc3QgPSAocmVxOiBIdHRwUmVxdWVzdDxhbnk+KSA9PiByZXEudXJsLmluY2x1ZGVzKFJFRlJFU0hfVE9LRU5fQVBJKSB8fCByZXEudXJsLmluY2x1ZGVzKFJFRlJFU0hfTU9CSUxFX1RPS0VOX0FQSSk7XG5cbiAgcHJpdmF0ZSBzZXRSZXF1ZXN0SGVhZGVycyhyZXE6IEh0dHBSZXF1ZXN0PGFueT4pIHtcbiAgICBjb25zdCBhcHBsaWNhdGlvblR5cGU6IEFwcGxpY2F0aW9uVHlwZSA9IEFwcFR5cGVNYXAuZ2V0KHRoaXMuYXBwQ29uZmlnLmdldENvbmZpZygpLmFwcFR5cGUpO1xuICAgIGNvbnN0IGFwcE1vZHVsZTogQXBwTW9kdWxlID0gdGhpcy5zdG9yZS5zZWxlY3RTbmFwc2hvdChTaWRlbmF2U3RhdGUuYXBwTW9kdWxlKTtcbiAgICBjb25zdCBzdWJNb2R1bGU6IFN1Yk1vZHVsZSA9IHRoaXMuc3RvcmUuc2VsZWN0U25hcHNob3QoU2lkZW5hdlN0YXRlLnN1Yk1vZHVsZSk7XG4gICAgY29uc3QgYXBwTW9kdWxlU3RyID0gYXBwTW9kdWxlPy50b1N0cmluZygpIHx8ICcnO1xuICAgIGNvbnN0IHN1Yk1vZHVsZVN0ciA9IHN1Yk1vZHVsZT8udG9TdHJpbmcoKSB8fCAnJztcblxuICAgIGNvbnN0IHNtYXJ0UGFya0R0byA9IHRoaXMuZ2V0U21hcnRQYXJrRHRvKHJlcS51cmwpIHx8IHt9O1xuICAgIGNvbnN0IHNwYXJrVmVyc2lvbiA9IHNtYXJ0UGFya0R0b1tcInNwYXJrVmVyc2lvblwiXSA/PyAnJztcbiAgICBjb25zdCBzbWFydFBhcmtWZXJzaW9uID0gKHNtYXJ0UGFya0R0b1tcInNtYXJ0UGFya1ZlcnNpb25cIl0gPz8gJycpLnJlcGxhY2UoXCIgQnVpbGQoXCIsIFwiX1wiKS5yZXBsYWNlKFwiKVwiLCBcIlwiKS50cmltKCk7XG5cbiAgICBpZiAodGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UuYWNjZXNzVG9rZW4pIHtcbiAgICAgIHJlcSA9IHJlcS5jbG9uZSh7XG4gICAgICAgIGhlYWRlcnM6IHJlcS5oZWFkZXJzXG4gICAgICAgICAgLnNldCgnQXV0aG9yaXphdGlvbicsIGBCZWFyZXIgJHt0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZS5hY2Nlc3NUb2tlbn1gKVxuICAgICAgICAgIC5zZXQoJ0FwcGxpY2F0aW9uLVR5cGUnLCBhcHBsaWNhdGlvblR5cGUudG9TdHJpbmcoKSlcbiAgICAgICAgICAuc2V0KCduZ3N3LWJ5cGFzcycsICd0cnVlJylcbiAgICAgICAgICAuc2V0KCdBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4nLCAnKicpXG4gICAgICAgICAgLnNldCgnYXBwTW9kdWxlJywgYXBwTW9kdWxlU3RyKSAvLyBUT0RPOiBSZW1vdmUgd2hlbiA4LjEgaXMgZGVwcmVjYXRlZCA/P1xuICAgICAgICAgIC5zZXQoJ0FwcC1Nb2R1bGUnLCBhcHBNb2R1bGVTdHIpXG4gICAgICAgICAgLnNldCgnU3ViLU1vZHVsZScsIHN1Yk1vZHVsZVN0cilcbiAgICAgICAgICAuc2V0KCd0aW1lWm9uZScsIGdldFVzZXJUaW1lWm9uZSgpKVxuICAgICAgICAgIC5zZXQoJ0NsaWVudFZlcnNpb24nLCB0aGlzLmFwcENvbmZpZy5nZXRDb25maWcoKS5wYWNrYWdlSW5mby52ZXJzaW9uKVxuICAgICAgICAgIC5zZXQoJ1NwYXJrVmVyc2lvbicsIHNwYXJrVmVyc2lvbilcbiAgICAgICAgICAuc2V0KCdTbWFydFBhcmtWZXJzaW9uJywgc21hcnRQYXJrVmVyc2lvbilcbiAgICAgIH0pO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIHJlcSA9IHJlcS5jbG9uZSh7XG4gICAgICAgIGhlYWRlcnM6IHJlcS5oZWFkZXJzXG4gICAgICAgICAgLnNldCgndGltZVpvbmUnLCBnZXRVc2VyVGltZVpvbmUoKSlcbiAgICAgICAgICAuc2V0KCdBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4nLCAnKicpXG4gICAgICAgICAgLnNldCgnQ2xpZW50VmVyc2lvbicsIHRoaXMuYXBwQ29uZmlnLmdldENvbmZpZygpLnBhY2thZ2VJbmZvLnZlcnNpb24pXG4gICAgICAgICAgLnNldCgnU3BhcmtWZXJzaW9uJywgc3BhcmtWZXJzaW9uKVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlcTtcbiAgfVxuXG4gIHByaXZhdGUgc2hvdWxkSGFuZGxlUmVmcmVzaFRva2VuKHJlcTogSHR0cFJlcXVlc3Q8YW55Pikge1xuICAgIHJldHVybiAhQU5PTllNT1VTX0FQSVMuc29tZShhcGkgPT4gcmVxLnVybC5pbmNsdWRlcyhhcGkpKSAmJiAhdGhpcy5pc1JlZnJlc2hUb2tlblJlcXVlc3QocmVxKSAmJiAhRVhURVJOQUxfQVBJUy5zb21lKGFwaSA9PiByZXEudXJsLmluY2x1ZGVzKGFwaSkpICYmICF0aGlzLmlzU2VsZlZhbGlkYXRpb25MaW5rVVJMO1xuICB9XG5cbiAgLy8gVGVtcG9yYXJ5IGNoZWNrIGZvciAnc2VsZi12YWxpZGF0aW9uP3Rva2VuPScgaW4gVVJMLlxuICAvLyBUaGlzIGNhbiBiZSByZW1vdmVkIG9uY2Ugc2VsZiB2YWxpZGF0aW9uIGxpbmtzIGFyZSBoYW5kbGVkIGJ5IHRoZSBuZXcgcHJvamVjdC5cbiAgcHJpdmF0ZSBpc1NlbGZWYWxpZGF0aW9uTGlua1VSTCA9IGxvY2F0aW9uLmhyZWYuaW5jbHVkZXMoJy9zZWxmLXZhbGlkYXRpb24/dG9rZW49Jyk7XG5cbiAgcHJpdmF0ZSBnZXRTbWFydFBhcmtEdG8ocmVxdWVzdFVybDogc3RyaW5nKTogU21hcnRwYXJrRHRvIHwgU21hcnRwYXJrQmFzaWNEdG8ge1xuICAgIGxldCBndWlkID0gbnVsbDtcblxuICAgIGNvbnN0IGd1aWRQYXR0ZXJuID0gL1thLWZBLUYwLTldezh9LVthLWZBLUYwLTldezR9LVthLWZBLUYwLTldezR9LVthLWZBLUYwLTldezR9LVthLWZBLUYwLTldezEyfS87XG4gICAgY29uc3QgbWF0Y2hlcyA9IHJlcXVlc3RVcmwubWF0Y2goZ3VpZFBhdHRlcm4pO1xuXG4gICAgaWYgKG1hdGNoZXMgJiYgbWF0Y2hlcy5sZW5ndGggPiAwKSB7XG4gICAgICBndWlkID0gbWF0Y2hlc1swXTtcbiAgICB9IGVsc2UgaWYgKHJlcXVlc3RVcmwuaW5jbHVkZXMoJy9zZW5kLW1haWwtZnJvbS1lbnRpdHknKSkge1xuICAgICAgZ3VpZCA9IHRoaXMuc3RvcmUuc2VsZWN0U25hcHNob3QoRmFjaWxpdHlTdGF0ZS5ndWlkKTtcbiAgICB9XG5cbiAgICBjb25zdCBzbWFydFBhcmtEdG8gPSB0aGlzLnN0b3JlLnNlbGVjdFNuYXBzaG90KFNtYXJ0cGFya1N0YXRlLnNtYXJ0cGFya3MpPy5maW5kKHNtYXJ0UGFyayA9PiBzbWFydFBhcmsuZ3VpZCA9PT0gZ3VpZCk7XG4gICAgcmV0dXJuIHNtYXJ0UGFya0R0bztcbiAgfVxuXG4gIHByaXZhdGUgY2hlY2tBbmRDbGVhclBhcmtTdGF0dXNHbG9iYWxFcnJvck5vdGlmaWNhdGlvbih1cmw6IHN0cmluZykge1xuICAgIGlmICh1cmw/LnN0YXJ0c1dpdGgoRURHRV9QUkVGSVhfQVBJKSkge1xuICAgICAgY29uc3QgYXBwTW9kdWxlID0gdGhpcy5zdG9yZS5zZWxlY3RTbmFwc2hvdChTaWRlbmF2U3RhdGUuYXBwTW9kdWxlKTtcbiAgICAgIGlmIChhcHBNb2R1bGUgPT0gQXBwTW9kdWxlLkNjIHx8IGFwcE1vZHVsZSA9PSBBcHBNb2R1bGUuTWFuYWdlbWVudCkge1xuICAgICAgICBjb25zdCBjb25uZWN0aW9uU3RhdHVzRGljdGlvbmFyeTogQ29ubmVjdGlvblN0YXR1c0RpY3Rpb25hcnkgPSB0aGlzLnN0b3JlLnNlbGVjdFNuYXBzaG90KEZhY2lsaXR5U3RhdGUucGFya0Nvbm5lY3Rpb25TdGF0dXNNYXApO1xuICAgICAgICBjb25zdCBndWlkOiBzdHJpbmcgPSB0aGlzLnN0b3JlLnNlbGVjdFNuYXBzaG90KEZhY2lsaXR5U3RhdGUuZ3VpZCk7XG4gICAgICAgIGNvbnN0IHBhcmtJZDogbnVtYmVyID0gdGhpcy5zdG9yZS5zZWxlY3RTbmFwc2hvdChGYWNpbGl0eVN0YXRlLnBhcmtJZCk7XG5cbiAgICAgICAgaWYgKGd1aWQgJiYgcGFya0lkICYmIGNvbm5lY3Rpb25TdGF0dXNEaWN0aW9uYXJ5W2d1aWRdKSB7XG4gICAgICAgICAgdmFyIHBhcmtDb25uZWN0aW9uU3RhdHVzID0gY29ubmVjdGlvblN0YXR1c0RpY3Rpb25hcnlbZ3VpZF1bcGFya0lkXTtcbiAgICAgICAgICBpZiAocGFya0Nvbm5lY3Rpb25TdGF0dXMuc3RhdHVzID09IFBhcmtDb25uZWN0aW9uU3RhdHVzLlNwYXJrQ29yZVNlcnZlckRpc2Nvbm5lY3RlZCB8fFxuICAgICAgICAgICAgcGFya0Nvbm5lY3Rpb25TdGF0dXMuc3RhdHVzID09IFBhcmtDb25uZWN0aW9uU3RhdHVzLlNwYXJrQ29yZUNsb3VkU2VydmVyRGlzY29ubmVjdGVkKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVNlcnZpY2VzUnVubmluZ1N0YXR1cyhndWlkKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZVNlcnZpY2VzUnVubmluZ1N0YXR1cyhzbWFydFBhcmtHdWlkOiBzdHJpbmcpIHtcbiAgICBjb25zdCBzZXJ2aWNlc1J1bm5pbmdTdGF0dXNEaWN0aW9uYXJ5ID0gdGhpcy5zdG9yZS5zZWxlY3RTbmFwc2hvdChGYWNpbGl0eVN0YXRlLnNlcnZpY2VzUnVubmluZ1N0YXR1c0RpY3Rpb25hcnkpO1xuICAgIGNvbnN0IGN1cnJlbnRGYWNpbGl0eVNlcnZpY2VzUnVubmluZ1N0YXR1czogU2VydmljZXNSdW5uaW5nU3RhdHVzRHRvID0gc2VydmljZXNSdW5uaW5nU3RhdHVzRGljdGlvbmFyeVtzbWFydFBhcmtHdWlkXTtcbiAgICBjdXJyZW50RmFjaWxpdHlTZXJ2aWNlc1J1bm5pbmdTdGF0dXMuaXNTcGFya0NvcmVDb25uZWN0ZWQgPSB0cnVlO1xuICAgIGN1cnJlbnRGYWNpbGl0eVNlcnZpY2VzUnVubmluZ1N0YXR1cy5pc1NwYXJrQ2xvdWRDb25uZWN0ZWQgPSB0cnVlO1xuICAgIGN1cnJlbnRGYWNpbGl0eVNlcnZpY2VzUnVubmluZ1N0YXR1cy5zcGFya0Nsb3VkRGlzY29ubmVjdGVkVGltZXN0YW1wID0gbnVsbDtcbiAgICBjdXJyZW50RmFjaWxpdHlTZXJ2aWNlc1J1bm5pbmdTdGF0dXMuc3BhcmtDb3JlRGlzY29ubmVjdGVkVGltZXN0YW1wID0gbnVsbDtcbiAgICB0aGlzLnNlcnZpY2VzUnVubmluZ1N0YXR1c0NoYW5nZWQoY3VycmVudEZhY2lsaXR5U2VydmljZXNSdW5uaW5nU3RhdHVzLCBzbWFydFBhcmtHdWlkKTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlRXJyb3JSZXNwb25zZShlOiBIdHRwRXJyb3JSZXNwb25zZSkge1xuICAgIGlmIChlLnN0YXR1cyA9PT0gSHR0cFN0YXR1c0NvZGUuVW5hdXRob3JpemVkICYmICFBVVRIRU5USUNBVEVfQVBJUy5zb21lKGFwaSA9PiBlLnVybC5pbmNsdWRlcyhhcGkpKSAmJiAhRVhURVJOQUxfQVBJUy5zb21lKGFwaSA9PiBlLnVybC5pbmNsdWRlcyhhcGkpKSkge1xuICAgICAgY29uc3Qgc3BhcmtTZXNzaW9ucyA9IHRoaXMuZ2V0U3BhcmtTZXNzaW9ucygpO1xuICAgICAgY29uc3QgdGVuYW50ID0gc3BhcmtTZXNzaW9uc1t0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZS50ZW5hbnRdO1xuICAgICAgaWYgKHRlbmFudD8udXNlcj8uc3NvQXV0aGVudGljYXRlZCkge1xuICAgICAgICB0aGlzLm5hdmlnYXRlVG9Mb2dpbih0ZW5hbnQ/LnRlbmFudD8udGVuYW50TmFtZSk7XG4gICAgICB9XG4gICAgICBlbHNlIHtcbiAgICAgICAgdGhpcy5sb2dvdXQoZmFsc2UsIGZhbHNlKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoZS5zdGF0dXMgPT09IEh0dHBTdGF0dXNDb2RlLkNvbmZsaWN0KSB7XG4gICAgICB0aGlzLnNldENvbmZsaWN0RGV0ZWN0ZWQoZSk7XG4gICAgICB0aGlzLmxvZ291dChmYWxzZSwgZmFsc2UpO1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMuY2xlYXJDb25mbGljdERldGVjdGVkKCk7XG4gICAgICB9LCAzMDAwKTsgLy8gRGVsYXkgdGhlIHJlc2V0IHRvIGVuc3VyZSB0aGUgVUkgcmVhY3RzIGZpcnN0XG4gICAgfVxuXG4gICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gZSk7XG4gIH1cblxuICBwcml2YXRlIGdldFNwYXJrU2Vzc2lvbnMgPSAoKTogU3RyaW5nTWFwPFNwYXJrU2Vzc2lvbj4gPT4gSlNPTi5wYXJzZSh0aGlzLmxvY2FsU3RvcmFnZVNlcnZpY2UuZ2V0SXRlbShTRVNTSU9OKSk/LnNwYXJrU2Vzc2lvbnMgPz8ge307XG5cbiAgcHJpdmF0ZSBoYW5kbGVCYWNrb2ZmaWNlRXJyb3JSZXNwb25zZShlOiBIdHRwRXJyb3JSZXNwb25zZSkge1xuICAgIGlmIChlLnN0YXR1cyA9PT0gSHR0cFN0YXR1c0NvZGUuVW5hdXRob3JpemVkICYmICFBVVRIRU5USUNBVEVfQVBJUy5zb21lKGFwaSA9PiBlLnVybC5pbmNsdWRlcyhhcGkpKSAmJiAhRVhURVJOQUxfQVBJUy5zb21lKGFwaSA9PiBlLnVybC5pbmNsdWRlcyhhcGkpKSkge1xuXG4gICAgICB0aGlzLm5hdmlnYXRlVG9Mb2dpbigpO1xuICAgIH1cblxuICAgIGlmIChlLnN0YXR1cyA9PT0gSHR0cFN0YXR1c0NvZGUuQ29uZmxpY3QpIHtcbiAgICAgIHRoaXMuc2V0Q29uZmxpY3REZXRlY3RlZChlKTtcbiAgICAgIHRoaXMubmF2aWdhdGVUb0xvZ2luKCk7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5jbGVhckNvbmZsaWN0RGV0ZWN0ZWQoKTtcbiAgICAgIH0sIDMwMDApOyAvLyBEZWxheSB0aGUgcmVzZXQgdG8gZW5zdXJlIHRoZSBVSSByZWFjdHMgZmlyc3RcbiAgICB9XG4gICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gZSk7XG4gIH1cblxuICBwcml2YXRlIG5hdmlnYXRlVG9Mb2dpbih0ZW5hbnROYW1lPzogc3RyaW5nKSB7XG4gICAgY29uc3QgaXNNb2JpbGVBcHBNb2RlID0gdGhpcy5hcHBDb25maWcuZ2V0Q29uZmlnKCkuYXBwVHlwZSA9PT0gQXBwVHlwZS5Nb2JpbGU7XG4gICAgY29uc3QgbG9naW5Sb3V0ZSA9ICcvYWNjb3VudC9sb2dpbic7XG5cbiAgICAvLyBJZiBtb2JpbGUg4oaSIGFsd2F5cyAnJywgb3RoZXJ3aXNlIGJ1aWxkIHJvdXRlICh3aXRoIG9yIHdpdGhvdXQgdGVuYW50KVxuICAgIGNvbnN0IHVybCA9IGlzTW9iaWxlQXBwTW9kZVxuICAgICAgPyAnJ1xuICAgICAgOiB0ZW5hbnROYW1lXG4gICAgICAgID8gYCR7dGVuYW50TmFtZX0ke2xvZ2luUm91dGV9YFxuICAgICAgICA6IGxvZ2luUm91dGU7XG5cbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbdXJsXSk7XG4gIH1cblxuXG4gIEBEaXNwYXRjaCgpIHByaXZhdGUgbG9nb3V0ID0gKGxvZ291dEF1ZGl0OiBib29sZWFuLCBsb2dvdXRCYWNrb2ZmaWNlQXVkaXQ6IGJvb2xlYW4pID0+IG5ldyBMb2dvdXRBY3Rpb24obG9nb3V0QXVkaXQsIGxvZ291dEJhY2tvZmZpY2VBdWRpdCk7IC8vIHdoZW4gNDAxIGRvIG5vdCBpbnZva2UgaW4gdGhlIGxvZ291dCBhY3Rpb24gdGhlIGxvZ291dCBBdWRpdFxuXG4gIEBEaXNwYXRjaCgpIHNlcnZpY2VzUnVubmluZ1N0YXR1c0NoYW5nZWQgPSAoc2VydmljZXNSdW5uaW5nU3RhdHVzOiBTZXJ2aWNlc1J1bm5pbmdTdGF0dXNEdG8sIGd1aWQ6IHN0cmluZykgPT5cbiAgICBuZXcgU2VydmljZXNSdW5uaW5nU3RhdHVzQ2hhbmdlZEFjdGlvbihzZXJ2aWNlc1J1bm5pbmdTdGF0dXMsIGd1aWQpO1xuXG4gIEBEaXNwYXRjaCgpIHNldENvbmZsaWN0RGV0ZWN0ZWQgPSAoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiBuZXcgU2V0Q29uZmxpY3REZXRlY3RlZChlcnJvcik7XG4gIEBEaXNwYXRjaCgpIGNsZWFyQ29uZmxpY3REZXRlY3RlZCA9ICgpID0+IG5ldyBDbGVhckNvbmZsaWN0RGV0ZWN0ZWQoKTtcbn1cbiJdfQ==
|
|
@@ -21,6 +21,7 @@ export class CompanyService {
|
|
|
21
21
|
this.loadingCompanySubject$ = new Subject();
|
|
22
22
|
this.loadingSubCompanySubject$ = new Subject();
|
|
23
23
|
this.companyChange$ = new Subject();
|
|
24
|
+
this.subCompanyChange$ = new Subject();
|
|
24
25
|
this.accountsFetchMethodsMapping = {
|
|
25
26
|
[PermissionType.CcMain]: this.accountRpcServiceProxy.getAccountsCcView,
|
|
26
27
|
[PermissionType.UpdateDocument]: this.accountRpcServiceProxy.getAccountsCcUpdateDocument,
|
|
@@ -211,4 +212,4 @@ export class CompanyService {
|
|
|
211
212
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CompanyService, decorators: [{
|
|
212
213
|
type: Injectable
|
|
213
214
|
}], ctorParameters: () => [{ type: i1.Store }, { type: i2.MessageBarService }, { type: i3.TranslateService }, { type: i4.SmartparkService }, { type: i5.AccountRpcServiceProxy }] });
|
|
214
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGFueS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LXNoYXJlZC1saWIvc3JjL2xpYnJhcmllcy9zZXJ2aWNlcy9jb21wYW55LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUkzQyxPQUFPLEVBQUUsYUFBYSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFbEQsT0FBTyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMxQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUV6RixPQUFPLEVBQUUsY0FBYyxFQUFFLFNBQVMsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMxRCxPQUFPLEVBRUwsa0JBQWtCLEVBQWMsY0FBYyxFQUFFLGNBQWMsRUFDd0IscUJBQXFCLEVBQzVHLE1BQU0sc0NBQXNDLENBQUM7Ozs7Ozs7QUFLOUMsTUFBTSxPQUFPLGNBQWM7SUFNekIsWUFBb0IsS0FBWSxFQUN0QixpQkFBb0MsRUFDcEMsZ0JBQWtDLEVBQ2xDLGdCQUFrQyxFQUNsQyxzQkFBOEM7UUFKcEMsVUFBSyxHQUFMLEtBQUssQ0FBTztRQUN0QixzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQ3BDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQywyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXdCO1FBUnhELDJCQUFzQixHQUFxQixJQUFJLE9BQU8sRUFBVyxDQUFDO1FBQ2xFLDhCQUF5QixHQUFxQixJQUFJLE9BQU8sRUFBVyxDQUFDO1FBQ3JFLG1CQUFjLEdBQXdCLElB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cmUnO1xuaW1wb3J0IHsgVW50eXBlZEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5neHMvc3RvcmUnO1xuaW1wb3J0IHsgY29tYmluZUxhdGVzdCwgb2YsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzL2ludGVybmFsL09ic2VydmFibGUnO1xuaW1wb3J0IHsgbWFwLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBNZXNzYWdlQmFyUG9zaXRpb24gfSBmcm9tICcuLi9jb21wb25lbnRzL21lc3NhZ2UtYmFyL21lc3NhZ2UtYmFyLXBvc2l0aW9uLmVudW0nO1xuaW1wb3J0IHsgTWVzc2FnZUJhclNlcnZpY2UgfSBmcm9tICcuLi9jb21wb25lbnRzL21lc3NhZ2UtYmFyL21lc3NhZ2UtYmFyLnNlcnZpY2UnO1xuaW1wb3J0IHsgTUFYX0NBUl9QTEFURVMsIE1BWF9DQVJEUyB9IGZyb20gJy4uL2NvbnN0YW50cy9nbG9iYWwtY29uc3RhbnRzJztcbmltcG9ydCB7IExvY2FsaXphdGlvbiB9IGZyb20gJy4uL2VudW1zL2xvY2FsaXphdGlvbi5lbnVtJztcbmltcG9ydCB7XG4gIENvbXBhbnlEdG9JRW51bWVyYWJsZUh0dHBSZXNwb25zZURhdGEgYXMgQWNjb3VudER0b0lFbnVtZXJhYmxlSHR0cFJlc3BvbnNlRGF0YSwgQWNjb3VudFJwY1NlcnZpY2VQcm94eSxcbiAgQ29tcGFuaWVzRmlsdGVyRHRvLCBDb21wYW55RHRvLCBPcmRlckRpcmVjdGlvbiwgUGVybWlzc2lvblR5cGUsIFNlYXJjaFBhcmFtc0R0byxcbiAgU3ViQ29tcGFueUR0b0lFbnVtZXJhYmxlSHR0cFJlc3BvbnNlRGF0YSBhcyBTdWJBY2NvdW50RHRvSUVudW1lcmFibGVIdHRwUmVzcG9uc2VEYXRhLCBTdWJDb21wYW5pZXNGaWx0ZXJEdG8sIFN1YkNvbXBhbnlEdG9cbn0gZnJvbSAnLi4vc2VydmljZS1wcm94eS9ycGMtc2VydmljZS1wcm94aWVzJztcbmltcG9ydCB7IE51bWJlck1hcCB9IGZyb20gJy4uL3V0aWxzL2xhbmcudXRpbCc7XG5pbXBvcnQgeyBTbWFydHBhcmtTZXJ2aWNlIH0gZnJvbSAnLi9zbWFydHBhcmsuc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBDb21wYW55U2VydmljZSB7XG5cbiAgbG9hZGluZ0NvbXBhbnlTdWJqZWN0JDogU3ViamVjdDxib29sZWFuPiA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG4gIGxvYWRpbmdTdWJDb21wYW55U3ViamVjdCQ6IFN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuICBjb21wYW55Q2hhbmdlJDogU3ViamVjdDxDb21wYW55RHRvPiA9IG5ldyBTdWJqZWN0PENvbXBhbnlEdG8+KCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzdG9yZTogU3RvcmUsXG4gICAgcHJpdmF0ZSBtZXNzYWdlQmFyU2VydmljZTogTWVzc2FnZUJhclNlcnZpY2UsXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgc21hcnRwYXJrU2VydmljZTogU21hcnRwYXJrU2VydmljZSxcbiAgICBwcml2YXRlIGFjY291bnRScGNTZXJ2aWNlUHJveHk6IEFjY291bnRScGNTZXJ2aWNlUHJveHkpIHtcbiAgfVxuXG4gIGlzTG9hZGluZ0NvbXBhbnkkKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHRoaXMubG9hZGluZ0NvbXBhbnlTdWJqZWN0JCxcbiAgICAgIHRoaXMuc21hcnRwYXJrU2VydmljZS5sb2FkaW5nJFxuICAgIF0pLnBpcGUobWFwKChbY29tcGFueUxvYWRpbmcsIHNtYXJ0cGFya0xvYWRpbmddKSA9PiBjb21wYW55TG9hZGluZyB8fCBzbWFydHBhcmtMb2FkaW5nKSk7XG4gIH1cblxuICBpc0xvYWRpbmdTdWJDb21wYW55JCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLmxvYWRpbmdTdWJDb21wYW55U3ViamVjdCQsXG4gICAgICB0aGlzLnNtYXJ0cGFya1NlcnZpY2UubG9hZGluZyRcbiAgICBdKS5waXBlKG1hcCgoW3N1YkNvbXBhbnlMb2FkaW5nLCBzbWFydHBhcmtMb2FkaW5nXSkgPT4gc3ViQ29tcGFueUxvYWRpbmcgfHwgc21hcnRwYXJrTG9hZGluZykpO1xuICB9XG5cbiAgZ2V0Q29tcGFuaWVzT3B0aW9ucyhwYXJrSWQ6IG51bWJlciwgZ3VpZDogc3RyaW5nLCBzZWFyY2hQYXJhbXNEdG86IFNlYXJjaFBhcmFtc0R0bywgaW5jbHVkZUFjY2Vzc1Byb2ZpbGU6IGJvb2xlYW4sIGluY2x1ZGVTdWJDb21wYW5pZXM6IGJvb2xlYW4sXG4gICAgcGVybWlzc2lvblR5cGU6IFBlcm1pc3Npb25UeXBlLCBjb21wYW55SWRzPzogbnVtYmVyW10pOiBPYnNlcnZhYmxlPEFjY291bnREdG9JRW51bWVyYWJsZUh0dHBSZXNwb25zZURhdGE+IHtcbiAgICBpZiAoIWd1aWQpIHtcbiAgICAgIHJldHVybiBvZihudWxsKS5waXBlKHRhcChfID0+IHtcbiAgICAgICAgdGhpcy5sb2FkaW5nQ29tcGFueVN1YmplY3QkLm5leHQoZmFsc2UpO1xuICAgICAgfSkpO1xuICAgIH1cblxuICAgIHRoaXMubG9hZGluZ0NvbXBhbnlTdWJqZWN0JC5uZXh0KHRydWUpO1xuXG4gICAgY29uc3QgY29tcGFuaWVzRmlsdGVyRHRvOiBDb21wYW5pZXNGaWx0ZXJEdG8gPSBuZXcgQ29tcGFuaWVzRmlsdGVyRHRvKHtcbiAgICAgIHBhcmtJZDogcGFya0lkLFxuICAgICAgY29tcGFueUlkczogY29tcGFueUlkcyxcbiAgICAgIHN1YkNvbXBhbnlJZHM6IG51bGwsXG4gICAgICBpbmNsdWRlQWNjZXNzUHJvZmlsZTogaW5jbHVkZUFjY2Vzc1Byb2ZpbGUsXG4gICAgICBpbmNsdWRlU3ViQ29tcGFuaWVzOiBpbmNsdWRlU3ViQ29tcGFuaWVzLFxuICAgIH0pO1xuICAgIGNvbnN0IGFjY291bnRzRmV0Y2hNZXRob2Q6IEFjY291bnRzRmV0Y2hNZXRob2RTaWduYXR1cmUgPSB0aGlzLmdldEFjY291bnRzRmV0Y2hNZXRob2QocGVybWlzc2lvblR5cGUpO1xuICAgIGNvbnN0IGdldENvbXBhbmllcyQgPSBhY2NvdW50c0ZldGNoTWV0aG9kKGd1aWQsIHBhcmtJZCwgc2VhcmNoUGFyYW1zRHRvLm1heFJlc3VsdHMsIHNlYXJjaFBhcmFtc0R0by5zZWFyY2hUZXJtLFxuICAgICAgc2VhcmNoUGFyYW1zRHRvLm9yZGVyQnkuY29sdW1uLCBzZWFyY2hQYXJhbXNEdG8ub3JkZXJCeS5vcmRlckRpcmVjdGlvbiwgY29tcGFuaWVzRmlsdGVyRHRvKTtcblxuICAgIHJldHVybiBnZXRDb21wYW5pZXMkLnBpcGUodGFwKF8gPT4ge1xuICAgICAgdGhpcy5sb2FkaW5nQ29tcGFueVN1YmplY3QkLm5leHQoZmFsc2UpO1xuICAgIH0pKTtcbiAgfVxuXG4gIGdldFN1YkNvbXBhbmllc0J5SWRzKHBhcmtJZDogbnVtYmVyLCBndWlkOiBzdHJpbmcsIHBlcm1pc3Npb25UeXBlOiBQZXJtaXNzaW9uVHlwZSwgY29tcGFueUlkczogbnVtYmVyW10sIHN1YkNvbXBhbnlJZHM6IG51bWJlcltdKTogT2JzZXJ2YWJsZTxTdWJBY2NvdW50RHRvSUVudW1lcmFibGVIdHRwUmVzcG9uc2VEYXRhPiB7XG4gICAgaWYgKCFndWlkIHx8ICFjb21wYW55SWRzPy5sZW5ndGgpIHtcbiAgICAgIHJldHVybiBvZihudWxsKS5waXBlKHRhcChfID0+IHtcbiAgICAgICAgdGhpcy5sb2FkaW5nU3ViQ29tcGFueVN1YmplY3QkLm5leHQoZmFsc2UpO1xuICAgICAgfSkpO1xuICAgIH1cblxuICAgIHRoaXMubG9hZGluZ1N1YkNvbXBhbnlTdWJqZWN0JC5uZXh0KHRydWUpO1xuXG4gICAgbGV0IGdldFN1YkNvbXBhbmllcyQ6IE9ic2VydmFibGU8U3ViQWNjb3VudER0b0lFbnVtZXJhYmxlSHR0cFJlc3BvbnNlRGF0YT47XG4gICAgY29uc3Qgc3ViQ29tcGFuaWVzV2l0aFBlcm1pc3Npb25zOiBTdWJDb21wYW5pZXNGaWx0ZXJEdG8gPSBuZXcgU3ViQ29tcGFuaWVzRmlsdGVyRHRvKHtcbiAgICAgIHBhcmtJZCxcbiAgICAgIGNvbXBhbnlJZHM6IGNvbXBhbnlJZHMsXG4gICAgICBzdWJDb21wYW55SWRzOiBzdWJDb21wYW55SWRzLFxuICAgIH0pO1xuICAgIGNvbnN0IHN1YkFjY291bnRzRmV0Y2hNZXRob2Q6IFN1YkFjY291bnRzRmV0Y2hNZXRob2RTaWduYXR1cmUgPSB0aGlzLmdldFN1YkFjY291bnRzRmV0Y2hNZXRob2QocGVybWlzc2lvblR5cGUpO1xuICAgIGdldFN1YkNvbXBhbmllcyQgPSBzdWJBY2NvdW50c0ZldGNoTWV0aG9kKGd1aWQsIHBhcmtJZCwgbnVsbCwgbnVsbCwgbnVsbCwgT3JkZXJEaXJlY3Rpb24uTm9uZSwgc3ViQ29tcGFuaWVzV2l0aFBlcm1pc3Npb25zKTtcblxuICAgIHJldHVybiBnZXRTdWJDb21wYW5pZXMkLnBpcGUodGFwKF8gPT4ge1xuICAgICAgdGhpcy5sb2FkaW5nU3ViQ29tcGFueVN1YmplY3QkLm5leHQoZmFsc2UpO1xuICAgIH0pKTtcbiAgfVxuXG4gIGdldFN1YkNvbXBhbmllc09wdGlvbnMocGFya0lkOiBudW1iZXIsIGd1aWQ6IHN0cmluZywgc2VhcmNoUGFyYW1zRHRvOiBTZWFyY2hQYXJhbXNEdG8sIHBlcm1pc3Npb25UeXBlOiBQZXJtaXNzaW9uVHlwZSxcbiAgICBjb21wYW55SWRzOiBudW1iZXJbXSk6IE9ic2VydmFibGU8U3ViQWNjb3VudER0b0lFbnVtZXJhYmxlSHR0cFJlc3BvbnNlRGF0YT4ge1xuICAgIGlmICghZ3VpZCB8fCAhY29tcGFueUlkcz8ubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gb2YobnVsbCkucGlwZSh0YXAoXyA9PiB7XG4gICAgICAgIHRoaXMubG9hZGluZ1N1YkNvbXBhbnlTdWJqZWN0JC5uZXh0KGZhbHNlKTtcbiAgICAgIH0pKTtcbiAgICB9XG5cbiAgICB0aGlzLmxvYWRpbmdTdWJDb21wYW55U3ViamVjdCQubmV4dCh0cnVlKTtcblxuICAgIGxldCBnZXRTdWJDb21wYW5pZXMkOiBPYnNlcnZhYmxlPFN1YkFjY291bnREdG9JRW51bWVyYWJsZUh0dHBSZXNwb25zZURhdGE+O1xuXG4gICAgY29uc3Qgc3ViQWNjb3VudHNGZXRjaE1ldGhvZDogU3ViQWNjb3VudHNGZXRjaE1ldGhvZFNpZ25hdHVyZSA9IHRoaXMuZ2V0U3ViQWNjb3VudHNGZXRjaE1ldGhvZChwZXJtaXNzaW9uVHlwZSk7XG4gICAgY29uc3Qgc3ViQ29tcGFuaWVzRmlsdGVyRHRvOiBTdWJDb21wYW5pZXNGaWx0ZXJEdG8gPSBuZXcgU3ViQ29tcGFuaWVzRmlsdGVyRHRvKHtcbiAgICAgIHBhcmtJZCxcbiAgICAgIGNvbXBhbnlJZHMsXG4gICAgICBzdWJDb21wYW55SWRzOiBudWxsLFxuICAgIH0pO1xuICAgIGdldFN1YkNvbXBhbmllcyQgPSBzdWJBY2NvdW50c0ZldGNoTWV0aG9kKGd1aWQsIHBhcmtJZCwgc2VhcmNoUGFyYW1zRHRvLm1heFJlc3VsdHMsIHNlYXJjaFBhcmFtc0R0by5zZWFyY2hUZXJtLFxuICAgICAgc2VhcmNoUGFyYW1zRHRvLm9yZGVyQnkuY29sdW1uLCBzZWFyY2hQYXJhbXNEdG8ub3JkZXJCeS5vcmRlckRpcmVjdGlvbiwgc3ViQ29tcGFuaWVzRmlsdGVyRHRvKTtcblxuICAgIHJldHVybiBnZXRTdWJDb21wYW5pZXMkLnBpcGUodGFwKF8gPT4ge1xuICAgICAgdGhpcy5sb2FkaW5nU3ViQ29tcGFueVN1YmplY3QkLm5leHQoZmFsc2UpO1xuICAgIH0pKTtcbiAgfVxuXG4gIGdldENyZWRlbnRpYWxMaW1pdHMoY29tcGFueTogQ29tcGFueUR0bywgc3ViQ29tcGFueT86IFN1YkNvbXBhbnlEdG8pIHtcbiAgICAvLyBXZSBoYXZlIDMgb3B0aW9uc1xuICAgIC8vIDEpIFN1YkNvbXBhbnkgKyBDb21wYW55ICAgICAgID0+IFdlIHRha2UgdGhlIFN1YkNvbXBhbnkgbGltaXRzXG4gICAgLy8gMikgTm8gU3ViQ29tcGFueSArIENvbXBhbnkgICAgPT4gV2UgdGFrZSB3ZSBDb21wYW55IGxpbWl0c1xuICAgIC8vIDMpIE5vIENvbXBhbnkgKyBObyBTdWJDb21wYW55ID0+IFdlIHRha2UgdGhlIGRlZmF1bHQgY29tcGFueSBsaW1pdHNcbiAgICBjb25zdCBhbGxvd1Bob25lID0gc3ViQ29tcGFueT8uYWxsb3dQaG9uZSA/PyBjb21wYW55Py5hbGxvd1Bob25lID8/IHRydWU7XG4gICAgY29uc3QgYWxsb3dRUiA9IHN1YkNvbXBhbnk/LmFsbG93UVIgPz8gY29tcGFueT8uYWxsb3dRUiA/PyB0cnVlO1xuICAgIGNvbnN0IG1heENhcmRzID0gc3ViQ29tcGFueT8ubWF4Q2FyZHMgPz8gY29tcGFueT8ubWF4Q2FyZHMgPz8gTUFYX0NBUkRTO1xuICAgIGNvbnN0IG1heENhclBsYXRlcyA9IHN1YkNvbXBhbnk/Lm1heENhclBsYXRlcyA/PyBjb21wYW55Py5tYXhDYXJQbGF0ZXMgPz8gTUFYX0NBUl9QTEFURVM7XG5cbiAgICByZXR1cm4geyBhbGxvd1Bob25lLCBhbGxvd1FSLCBtYXhDYXJkcywgbWF4Q2FyUGxhdGVzIH07XG4gIH1cblxuICBoYW5kbGVDcmVkZW50aWFsc1dhcm5pbmdNZXNzYWdlc0JhcihjcmVkZW50aWFsTGltaXRzOiB7IGFsbG93UGhvbmU6IGJvb2xlYW47IGFsbG93UVI6IGJvb2xlYW47IG1heENhcmRzOiBudW1iZXI7IG1heENhclBsYXRlczogbnVtYmVyOyB9LCBmb3JtOiBVbnR5cGVkRm9ybUdyb3VwKSB7XG4gICAgbGV0IHdhcm5pbmdNZXNzYWdlQWxlcnRzOiBzdHJpbmdbXSA9IFtdO1xuXG4gICAgLy8gQ2FyZHNcbiAgICBjb25zdCBiYWRnZXMgPSAoZm9ybS5jb250cm9scy5iYWRnZT8udmFsdWUgfHwgW10pLmZpbHRlcihiYWRnZSA9PiB7XG4gICAgICByZXR1cm4gYmFkZ2U/LnZhbHVlLmxlbmd0aCA+IDA7XG4gICAgfSk7XG5cbiAgICBpZiAoYmFkZ2VzLmxlbmd0aCA+IGNyZWRlbnRpYWxMaW1pdHMubWF4Q2FyZHMpIHtcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChMb2NhbGl6YXRpb24uYWNjb3VudF9saW1pdF9jcmVkZW50aWFsX2NhcmQsIHtcbiAgICAgICAgbWF4UXVhbnRpdHk6IGNyZWRlbnRpYWxMaW1pdHMubWF4Q2FyZHNcbiAgICAgIH0pO1xuICAgICAgd2FybmluZ01lc3NhZ2VBbGVydHMucHVzaChtZXNzYWdlKTtcbiAgICB9XG5cbiAgICAvLyBDYXIgUGxhdGVzXG4gICAgY29uc3QgY2FyUGxhdGVzID0gKGZvcm0uY29udHJvbHMuY2FyUGxhdGU/LnZhbHVlIHx8IFtdKS5maWx0ZXIoY2FyUGxhdGUgPT4ge1xuICAgICAgcmV0dXJuIGNhclBsYXRlPy52YWx1ZS5sZW5ndGggPiAwO1xuICAgIH0pO1xuXG4gICAgaWYgKGNhclBsYXRlcy5sZW5ndGggPiBjcmVkZW50aWFsTGltaXRzLm1heENhclBsYXRlcykge1xuICAgICAgY29uc3QgbWVzc2FnZSA9IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KExvY2FsaXphdGlvbi5hY2NvdW50X2xpbWl0X2NyZWRlbnRpYWxfY2FyX3BsYXRlLCB7XG4gICAgICAgIG1heFF1YW50aXR5OiBjcmVkZW50aWFsTGltaXRzLm1heENhclBsYXRlc1xuICAgICAgfSk7XG4gICAgICB3YXJuaW5nTWVzc2FnZUFsZXJ0cy5wdXNoKG1lc3NhZ2UpO1xuICAgIH1cblxuICAgIC8vIEFsbG93UGhvbmUgLSBNb2JpbGVcbiAgICBpZiAoZm9ybS5jb250cm9scy5tb2JpbGUudmFsdWU/Lmxlbmd0aCAmJiAhY3JlZGVudGlhbExpbWl0cy5hbGxvd1Bob25lKSB7XG4gICAgICBjb25zdCBtZXNzYWdlQWxsb3dQaG9uZSA9IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KExvY2FsaXphdGlvbi5hY2NvdW50X2xpbWl0X2NyZWRlbnRpYWxfcGhvbmUpO1xuICAgICAgd2FybmluZ01lc3NhZ2VBbGVydHMucHVzaChtZXNzYWdlQWxsb3dQaG9uZSk7XG4gICAgfVxuXG4gICAgLy8gQWxsb3dRUiAtIEVtYWlsXG4gICAgaWYgKGZvcm0uY29udHJvbHMuZW1haWwudmFsdWU/Lmxlbmd0aCAmJiAhY3JlZGVudGlhbExpbWl0cy5hbGxvd1FSKSB7XG4gICAgICBjb25zdCBtZXNzYWdlQWxsb3dRUiA9IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KExvY2FsaXphdGlvbi5hY2NvdW50X2xpbWl0X2NyZWRlbnRpYWxfcXIpO1xuICAgICAgd2FybmluZ01lc3NhZ2VBbGVydHMucHVzaChtZXNzYWdlQWxsb3dRUik7XG4gICAgfVxuXG4gICAgaWYgKHdhcm5pbmdNZXNzYWdlQWxlcnRzLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IHdhcm5pbmdNZXNzYWdlID0gYC0gJHt3YXJuaW5nTWVzc2FnZUFsZXJ0cy5qb2luKCc8YnI+LSAnKX1gO1xuICAgICAgdGhpcy5tZXNzYWdlQmFyU2VydmljZS53YXJuKHdhcm5pbmdNZXNzYWdlLCB7IGlkOiAnY3JlZGVudGlhbFdhcm5pbmdNZXNzYWdlJywgcG9zaXRpb246IE1lc3NhZ2VCYXJQb3NpdGlvbi5TdGF0aWMgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubWVzc2FnZUJhclNlcnZpY2UuY2xlYXJNZXNzYWdlYmFyKCdjcmVkZW50aWFsV2FybmluZ01lc3NhZ2UnKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldEFjY291bnRzRmV0Y2hNZXRob2QocGVybWlzc2lvblR5cGU6IFBlcm1pc3Npb25UeXBlKTogQWNjb3VudHNGZXRjaE1ldGhvZFNpZ25hdHVyZSB7XG4gICAgcmV0dXJuICh0aGlzLmFjY291bnRzRmV0Y2hNZXRob2RzTWFwcGluZ1twZXJtaXNzaW9uVHlwZV0pLmJpbmQodGhpcy5hY2NvdW50UnBjU2VydmljZVByb3h5KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0U3ViQWNjb3VudHNGZXRjaE1ldGhvZChwZXJtaXNzaW9uVHlwZTogUGVybWlzc2lvblR5cGUpOiBTdWJBY2NvdW50c0ZldGNoTWV0aG9kU2lnbmF0dXJlIHtcbiAgICByZXR1cm4gKHRoaXMuc3ViQWNjb3VudHNGZXRjaE1ldGhvZHNNYXBwaW5nW3Blcm1pc3Npb25UeXBlXSkuYmluZCh0aGlzLmFjY291bnRScGNTZXJ2aWNlUHJveHkpO1xuICB9XG5cbiAgYWNjb3VudHNGZXRjaE1ldGhvZHNNYXBwaW5nOiBBY2NvdW50c0ZldGNoTWV0aG9kc01hcCA9IHtcbiAgICBbUGVybWlzc2lvblR5cGUuQ2NNYWluXTogdGhpcy5hY2NvdW50UnBjU2VydmljZVByb3h5LmdldEFjY291bnRzQ2NWaWV3LFxuICAgIFtQZXJtaXNzaW9uVHlwZS5VcGRhdGVEb2N1bWVudF06IHRoaXMuYWNjb3VudFJwY1NlcnZpY2VQcm94eS5nZXRBY2NvdW50c0NjVXBkYXRlRG9jdW1lbnQsXG4gICAgW1Blcm1pc3Npb25UeXBlLkd1ZXN0Vmlld106IHRoaXMuYWNjb3VudFJwY1NlcnZpY2VQcm94eS5nZXRBY2NvdW50c0d1ZXN0VmlldyxcbiAgICBbUGVybWlzc2lvblR5cGUuR3Vlc3RDcmVhdGVdOiB0aGlzLmFjY291bnRScGNTZXJ2aWNlUHJveHkuZ2V0QWNjb3VudHNHdWVzdENyZWF0ZSxcbiAgICBbUGVybWlzc2lvblR5cGUuR3Vlc3RVcGRhdGVdOiB0aGlzLmFjY291bnRScGNTZXJ2aWNlUHJveHkuZ2V0QWNjb3VudHNHdWVzdFVwZGF0ZSxcbiAgICBbUGVybWlzc2lvblR5cGUuR3Vlc3RHcm91cENyZWF0ZV06IHRoaXMuYWNjb3VudFJwY1NlcnZpY2VQcm94eS5nZXRBY2NvdW50c0d1ZXN0R3JvdXBDcmVhdGUsXG4gICAgW1Blcm1pc3Npb25UeXBlLkd1ZXN0RVZvdWNoZXJWaWV3XTogdGhpcy5hY2NvdW50UnBjU2VydmljZVByb3h5LmdldEFjY291bnRzRVZvdWNoZXJWaWV3LFxuICAgIFtQZXJtaXNzaW9uVHlwZS5HdWVzdEhvdGVsR3Vlc3RWaWV3XTogdGhpcy5hY2NvdW50UnBjU2VydmljZVByb3h5LmdldEFjY291bnRzSG90ZWxHdWVzdFZpZXcsXG4gICAgW1Blcm1pc3Npb25UeXBlLkd1ZXN0SG90ZWxHdWVzdENyZWF0ZV06IHRoaXMuYWNjb3VudFJwY1NlcnZpY2VQcm94eS5nZXRBY2NvdW50c0hvdGVsR3Vlc3RDcmVhdGUsXG4gICAgW1Blcm1pc3Npb25UeXBlLkd1ZXN0SG90ZWxHdWVzdFVwZGF0ZV06IHRoaXMuYWNjb3VudFJwY1NlcnZpY2VQcm94eS5nZXRBY2NvdW50c0hvdGVsR3Vlc3RVcGRhdGUsXG4gICAgW1Blcm1pc3Npb25UeXBlLkhvdGVsR3Vlc3RJT0NyZWF0ZV06IHRoaXMuYWNjb3VudFJwY1NlcnZpY2VQcm94eS5nZXRBY2NvdW50c0hvdGVsR3Vlc3RJT0NyZWF0ZSxcbiAgICBbUGVybWlzc2lvblR5cGUuSG90ZWxHdWVzdElPVmlld106IHRoaXMuYWNjb3VudFJwY1NlcnZpY2VQcm94eS5nZXRBY2NvdW50c0hvdGVsR3Vlc3RJT0hpc3RvcnlWaWV3LFxuICAgIFtQZXJtaXNzaW9uVHlwZS5Nb250aGxpZXNWaWV3XTogdGhpcy5hY2NvdW50UnBjU2VydmljZVByb3h5LmdldEFjY291bnRzTW9udGhseVZpZXcsXG4gICAgW1Blcm1pc3Npb25UeXBlLk1vbnRobGllc0NyZWF0ZV06IHRoaXMuYWNjb3VudFJwY1NlcnZpY2VQcm94eS5nZXRBY2NvdW50c01vbnRobHlDcmVhdGUsXG4gICAgW1Blcm1pc3Npb25UeXBlLk1vbnRobGllc1VwZGF0ZV06IHRoaXMuYWNjb3VudFJwY1NlcnZpY2VQcm94eS5nZXRBY2NvdW50c01vbnRobHlVcGRhdGUsXG4gICAgW1Blcm1pc3Npb25UeXBlLk1vbnRobHlTZXJpZXNDcmVhdGVdOiB0aGlzLmFjY291bnRScGNTZXJ2aWNlUHJveHkuZ2V0QWNjb3VudHNNb250aGx5U2VyaWVzQ3JlYXRlLFxuICAgIFtQZXJtaXNzaW9uVHlwZS5WYWxpZGF0aW9uRVZhbGlkYXRpb25WaWV3XTogdGhpcy5hY2NvdW50UnBjU2VydmljZVByb3h5LmdldEFjY291bnRzRVZhbGlkYXRpb25WaWV3LFxuICAgIFtQZXJtaXNzaW9uVHlwZS5WYWxpZGF0aW9uRVZhbGlkYXRpb25DcmVhdGVdOiB0aGlzLmFjY291bnRScGNTZXJ2aWNlUHJveHkuZ2V0QWNjb3VudHNFVmFsaWRhdGlvbkNyZWF0ZSxcbiAgICBbUGVybWlzc2lvblR5cGUuVmFsaWRhdGlvbkVWYWxpZGF0aW9uVXBkYXRlXTogdGhpcy5hY2NvdW50UnBjU2VydmljZVByb3h5LmdldEFjY291bnRzRVZhbGlkYXRpb25VcGRhdGUsXG4gICAgW1Blcm1pc3Npb25UeXBlLlZhbGlkYXRpb25TZWxmVmFsaWRhdGlvblZpZXddOiB0aGlzLmFjY291bnRScGNTZXJ2aWNlUHJveHkuZ2V0QWNjb3VudHNTZWxmVmFsaWRhdGlvblZpZXcsXG4gICAgW1Blcm1pc3Npb25UeXBlLlZhbGlkYXRpb25TZWxmVmFsaWRhdGlvbkNyZWF0ZV06IHRoaXMuYWNjb3VudFJwY1NlcnZpY2VQcm94eS5nZXRBY2NvdW50c1NlbGZWYWxpZGF0aW9uQ3JlYXRlLFxuICAgIFtQZXJtaXNzaW9uVHlwZS5WYWxpZGF0aW9uU2VsZlZhbGlkYXRpb25VcGRhdGVdOiB0aGlzLmFjY291bnRScGNTZXJ2aWNlUHJveHkuZ2V0QWNjb3VudHNTZWxmVmFsaWRhdGlvblVwZGF0ZSxcbiAgICBbUGVybWlzc2lvblR5cGUuVmFsaWRhdGlvbkNvdXBvblZpZXddOiB0aGlzLmFjY291bnRScGNTZXJ2aWNlUHJveHkuZ2V0QWNjb3VudHNDb3Vwb25WaWV3LFxuICAgIFtQZXJtaXNzaW9uVHlwZS5WYWxpZGF0aW9uQ291cG9uQ3JlYXRlXTogdGhpcy5hY2NvdW50UnBjU2VydmljZVByb3h5LmdldEFjY291bnRzQ291cG9uQ3JlYXRlLFxuICAgIFtQZXJtaXNzaW9uVHlwZS5WYWxpZGF0aW9uQ291cG9uVXBkYXRlXTogdGhpcy5hY2NvdW50UnBjU2VydmljZVByb3h5LmdldEFjY291bnRzQ291cG9uVXBkYXRlLFxuICAgIFtQZXJtaXNzaW9uVHlwZS5WYWxpZGF0aW9uU3RpY2tlclZpZXddOiB0aGlzLmFjY291bnRScGNTZXJ2aWNlUHJveHkuZ2V0QWNjb3VudHNTdGlja2VyVmlldyxcbiAgICBbUGVybWlzc2lvblR5cGUuVmFsaWRhdGlvblN0aWNrZXJDcmVhdGVdOiB0aGlzLmFjY291bnRScGNTZXJ2aWNlUHJveHkuZ2V0QWNjb3VudHNTdGlja2VyQ3JlYXRlLFxuICAgIFtQZXJtaXNzaW9uVHlwZS5WYWxpZGF0aW9uU3RpY2tlclVwZGF0ZV06IHRoaXMuYWNjb3VudFJwY1NlcnZpY2VQcm94eS5nZXRBY2NvdW50c1N0aWNrZXJVcGRhdGUsXG4gICAgW1Blcm1pc3Npb25UeXBlLkxvdENvbmZpZ3VyYXRpb25SYXRlc106IHRoaXMuYWNjb3VudFJwY1NlcnZpY2VQcm94eS5nZXRBY2NvdW50c0xvdENvbmZpZ3VyYXRpb25SYXRlcyxcbiAgICBbUGVybWlzc2lvblR5cGUuTWFuYWdlbWVudEFkbWluXTogdGhpcy5hY2NvdW50UnBjU2VydmljZVByb3h5LmdldEFjY291bnRzTWFuYWdlbWVudFZpZXcsXG4gIH07XG4gIHN1YkFjY291bnRzRmV0Y2hNZXRob2RzTWFwcGluZzogU3ViQWNjb3VudHNGZXRjaE1ldGhvZHNNYXAgPSB7XG4gICAgW1Blcm1pc3Npb25UeXBlLkNjTWFpbl06IHRoaXMuYWNjb3VudFJwY1NlcnZpY2VQcm94eS5nZXRTdWJBY2NvdW50c0NjVmlldyxcbiAgICBbUGVybWlzc2lvblR5cGUuVXBkYXRlRG9jdW1lbnRdOiB0aGlzLmFjY291bnRScGNTZXJ2aWNlUHJveHkuZ2V0U3ViQWNjb3VudHNDY1VwZGF0ZURvY3VtZW50LFxuICAgIFtQZXJtaXNzaW9uVHlwZS5HdWVzdFZpZXddOiB0aGlzLmFjY291bnRScGNTZXJ2aWNlUHJveHkuZ2V0U3ViQWNjb3VudHNHdWVzdFZpZXcsXG4gICAgW1Blcm1pc3Npb25UeXBlLkd1ZXN0Q3JlYXRlXTogdGhpcy5hY2NvdW50UnBjU2VydmljZVByb3h5LmdldFN1YkFjY291bnRzR3Vlc3RDcmVhdGUsXG4gICAgW1Blcm1pc3Npb25UeXBlLkd1ZXN0VXBkYXRlXTogdGhpcy5hY2NvdW50UnBjU2VydmljZVByb3h5LmdldFN1YkFjY291bnRzR3Vlc3RVcGRhdGUsXG4gICAgW1Blcm1pc3Npb25UeXBlLkd1ZXN0R3JvdXBDcmVhdGVdOiB0aGlzLmFjY291bnRScGNTZXJ2aWNlUHJveHkuZ2V0U3ViQWNjb3VudHNHdWVzdEdyb3VwQ3JlYXRlLFxuICAgIFtQZXJtaXNzaW9uVHlwZS5Nb250aGxpZXNWaWV3XTogdGhpcy5hY2NvdW50UnBjU2VydmljZVByb3h5LmdldFN1YkFjY291bnRzTW9udGhseVZpZXcsXG4gICAgW1Blcm1pc3Npb25UeXBlLk1vbnRobGllc0NyZWF0ZV06IHRoaXMuYWNjb3VudFJwY1NlcnZpY2VQcm94eS5nZXRTdWJBY2NvdW50c01vbnRobHlDcmVhdGUsXG4gICAgW1Blcm1pc3Npb25UeXBlLk1vbnRobGllc1VwZGF0ZV06IHRoaXMuYWNjb3VudFJwY1NlcnZpY2VQcm94eS5nZXRTdWJBY2NvdW50c01vbnRobHlVcGRhdGUsXG4gICAgW1Blcm1pc3Npb25UeXBlLk1vbnRobHlTZXJpZXNDcmVhdGVdOiB0aGlzLmFjY291bnRScGNTZXJ2aWNlUHJveHkuZ2V0U3ViQWNjb3VudHNNb250aGx5U2VyaWVzQ3JlYXRlLFxuICAgIFtQZXJtaXNzaW9uVHlwZS5WYWxpZGF0aW9uRVZhbGlkYXRpb25WaWV3XTogdGhpcy5hY2NvdW50UnBjU2VydmljZVByb3h5LmdldFN1YkFjY291bnRzRVZhbGlkYXRpb25WaWV3LFxuICAgIFtQZXJtaXNzaW9uVHlwZS5WYWxpZGF0aW9uRVZhbGlkYXRpb25DcmVhdGVdOiB0aGlzLmFjY291bnRScGNTZXJ2aWNlUHJveHkuZ2V0U3ViQWNjb3VudHNFVmFsaWRhdGlvbkNyZWF0ZSxcbiAgICBbUGVybWlzc2lvblR5cGUuVmFsaWRhdGlvbkVWYWxpZGF0aW9uVXBkYXRlXTogdGhpcy5hY2NvdW50UnBjU2VydmljZVByb3h5LmdldFN1YkFjY291bnRzRVZhbGlkYXRpb25VcGRhdGUsXG4gICAgW1Blcm1pc3Npb25UeXBlLlZhbGlkYXRpb25TZWxmVmFsaWRhdGlvblZpZXddOiB0aGlzLmFjY291bnRScGNTZXJ2aWNlUHJveHkuZ2V0U3ViQWNjb3VudHNTZWxmVmFsaWRhdGlvblZpZXcsXG4gICAgW1Blcm1pc3Npb25UeXBlLlZhbGlkYXRpb25TZWxmVmFsaWRhdGlvbkNyZWF0ZV06IHRoaXMuYWNjb3VudFJwY1NlcnZpY2VQcm94eS5nZXRTdWJBY2NvdW50c1NlbGZWYWxpZGF0aW9uQ3JlYXRlLFxuICAgIFtQZXJtaXNzaW9uVHlwZS5WYWxpZGF0aW9uU2VsZlZhbGlkYXRpb25VcGRhdGVdOiB0aGlzLmFjY291bnRScGNTZXJ2aWNlUHJveHkuZ2V0U3ViQWNjb3VudHNTZWxmVmFsaWRhdGlvblVwZGF0ZSxcbiAgICBbUGVybWlzc2lvblR5cGUuVmFsaWRhdGlvbkNvdXBvblZpZXddOiB0aGlzLmFjY291bnRScGNTZXJ2aWNlUHJveHkuZ2V0U3ViQWNjb3VudHNDb3Vwb25WaWV3LFxuICAgIFtQZXJtaXNzaW9uVHlwZS5WYWxpZGF0aW9uQ291cG9uQ3JlYXRlXTogdGhpcy5hY2NvdW50UnBjU2VydmljZVByb3h5LmdldFN1YkFjY291bnRzQ291cG9uQ3JlYXRlLFxuICAgIFtQZXJtaXNzaW9uVHlwZS5WYWxpZGF0aW9uQ291cG9uVXBkYXRlXTogdGhpcy5hY2NvdW50UnBjU2VydmljZVByb3h5LmdldFN1YkFjY291bnRzQ291cG9uVXBkYXRlLFxuICAgIFtQZXJtaXNzaW9uVHlwZS5WYWxpZGF0aW9uU3RpY2tlclZpZXddOiB0aGlzLmFjY291bnRScGNTZXJ2aWNlUHJveHkuZ2V0U3ViQWNjb3VudHNTdGlja2VyVmlldyxcbiAgICBbUGVybWlzc2lvblR5cGUuVmFsaWRhdGlvblN0aWNrZXJDcmVhdGVdOiB0aGlzLmFjY291bnRScGNTZXJ2aWNlUHJveHkuZ2V0U3ViQWNjb3VudHNTdGlja2VyQ3JlYXRlLFxuICAgIFtQZXJtaXNzaW9uVHlwZS5WYWxpZGF0aW9uU3RpY2tlclVwZGF0ZV06IHRoaXMuYWNjb3VudFJwY1NlcnZpY2VQcm94eS5nZXRTdWJBY2NvdW50c1N0aWNrZXJVcGRhdGUsXG4gIH07XG59XG5cbnR5cGUgQWNjb3VudHNGZXRjaE1ldGhvZFNpZ25hdHVyZSA9IChndWlkOiBzdHJpbmcsIGZhY2lsaXR5SWQ6IG51bWJlciwgbWF4UmVzdWx0czogbnVtYmVyIHwgdW5kZWZpbmVkLCBzZWFyY2hUZXJtOiBzdHJpbmcgfCB1bmRlZmluZWQsXG4gIG9yZGVyQnlfQ29sdW1uOiBzdHJpbmcgfCB1bmRlZmluZWQsIG9yZGVyQnlfT3JkZXJEaXJlY3Rpb246IE9yZGVyRGlyZWN0aW9uIHwgdW5kZWZpbmVkLCBib2R5OiBDb21wYW5pZXNGaWx0ZXJEdG8gfCB1bmRlZmluZWQpID0+XG4gIE9ic2VydmFibGU8QWNjb3VudER0b0lFbnVtZXJhYmxlSHR0cFJlc3BvbnNlRGF0YT47XG50eXBlIFN1YkFjY291bnRzRmV0Y2hNZXRob2RTaWduYXR1cmUgPSAoZ3VpZDogc3RyaW5nLCBmYWNpbGl0eUlkOiBudW1iZXIsIG1heFJlc3VsdHM6IG51bWJlciB8IHVuZGVmaW5lZCwgc2VhcmNoVGVybTogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICBvcmRlckJ5X0NvbHVtbjogc3RyaW5nIHwgdW5kZWZpbmVkLCBvcmRlckJ5X09yZGVyRGlyZWN0aW9uOiBPcmRlckRpcmVjdGlvbiB8IHVuZGVmaW5lZCwgYm9keTogU3ViQ29tcGFuaWVzRmlsdGVyRHRvIHwgdW5kZWZpbmVkKSA9PlxuICBPYnNlcnZhYmxlPFN1YkFjY291bnREdG9JRW51bWVyYWJsZUh0dHBSZXNwb25zZURhdGE+O1xudHlwZSBBY2NvdW50c0ZldGNoTWV0aG9kc01hcCA9IE51bWJlck1hcDxBY2NvdW50c0ZldGNoTWV0aG9kU2lnbmF0dXJlPjtcbnR5cGUgU3ViQWNjb3VudHNGZXRjaE1ldGhvZHNNYXAgPSBOdW1iZXJNYXA8U3ViQWNjb3VudHNGZXRjaE1ldGhvZFNpZ25hdHVyZT47XG4iXX0=
|
|
215
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGFueS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LXNoYXJlZC1saWIvc3JjL2xpYnJhcmllcy9zZXJ2aWNlcy9jb21wYW55LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUkzQyxPQUFPLEVBQUUsYUFBYSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFbEQsT0FBTyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMxQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUV6RixPQUFPLEVBQUUsY0FBYyxFQUFFLFNBQVMsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMxRCxPQUFPLEVBRUwsa0JBQWtCLEVBQWMsY0FBYyxFQUFFLGNBQWMsRUFDd0IscUJBQXFCLEVBQzVHLE1BQU0sc0NBQXNDLENBQUM7Ozs7Ozs7QUFLOUMsTUFBTSxPQUFPLGNBQWM7SUFPekIsWUFBb0IsS0FBWSxFQUN0QixpQkFBb0MsRUFDcEMsZ0JBQWtDLEVBQ2xDLGdCQUFrQyxFQUNsQyxzQkFBOEM7UUFKcEMsVUFBSyxHQUFMLEtBQUssQ0FBTztRQUN0QixzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQ3BDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQywyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXdCO1FBVHhELDJCQUFzQixHQUFxQixJQUFJLE9BQU8sRUFBVyxDQUFDO1FBQ2xFLDhCQUF5QixHQUFxQixJQUFJLE9BQU8sRUFBVyxDQUFDO1FBQ3JFLG1CQUFjLEdBQXdCLElB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ImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFVudHlwZWRGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3hzL3N0b3JlJztcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3QsIG9mLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcy9pbnRlcm5hbC9PYnNlcnZhYmxlJztcbmltcG9ydCB7IG1hcCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgTWVzc2FnZUJhclBvc2l0aW9uIH0gZnJvbSAnLi4vY29tcG9uZW50cy9tZXNzYWdlLWJhci9tZXNzYWdlLWJhci1wb3NpdGlvbi5lbnVtJztcbmltcG9ydCB7IE1lc3NhZ2VCYXJTZXJ2aWNlIH0gZnJvbSAnLi4vY29tcG9uZW50cy9tZXNzYWdlLWJhci9tZXNzYWdlLWJhci5zZXJ2aWNlJztcbmltcG9ydCB7IE1BWF9DQVJfUExBVEVTLCBNQVhfQ0FSRFMgfSBmcm9tICcuLi9jb25zdGFudHMvZ2xvYmFsLWNvbnN0YW50cyc7XG5pbXBvcnQgeyBMb2NhbGl6YXRpb24gfSBmcm9tICcuLi9lbnVtcy9sb2NhbGl6YXRpb24uZW51bSc7XG5pbXBvcnQge1xuICBDb21wYW55RHRvSUVudW1lcmFibGVIdHRwUmVzcG9uc2VEYXRhIGFzIEFjY291bnREdG9JRW51bWVyYWJsZUh0dHBSZXNwb25zZURhdGEsIEFjY291bnRScGNTZXJ2aWNlUHJveHksXG4gIENvbXBhbmllc0ZpbHRlckR0bywgQ29tcGFueUR0bywgT3JkZXJEaXJlY3Rpb24sIFBlcm1pc3Npb25UeXBlLCBTZWFyY2hQYXJhbXNEdG8sXG4gIFN1YkNvbXBhbnlEdG9JRW51bWVyYWJsZUh0dHBSZXNwb25zZURhdGEgYXMgU3ViQWNjb3VudER0b0lFbnVtZXJhYmxlSHR0cFJlc3BvbnNlRGF0YSwgU3ViQ29tcGFuaWVzRmlsdGVyRHRvLCBTdWJDb21wYW55RHRvXG59IGZyb20gJy4uL3NlcnZpY2UtcHJveHkvcnBjLXNlcnZpY2UtcHJveGllcyc7XG5pbXBvcnQgeyBOdW1iZXJNYXAgfSBmcm9tICcuLi91dGlscy9sYW5nLnV0aWwnO1xuaW1wb3J0IHsgU21hcnRwYXJrU2VydmljZSB9IGZyb20gJy4vc21hcnRwYXJrLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQ29tcGFueVNlcnZpY2Uge1xuXG4gIGxvYWRpbmdDb21wYW55U3ViamVjdCQ6IFN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuICBsb2FkaW5nU3ViQ29tcGFueVN1YmplY3QkOiBTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcbiAgY29tcGFueUNoYW5nZSQ6IFN1YmplY3Q8Q29tcGFueUR0bz4gPSBuZXcgU3ViamVjdDxDb21wYW55RHRvPigpO1xuICBzdWJDb21wYW55Q2hhbmdlJDogU3ViamVjdDxTdWJDb21wYW55RHRvPiA9IG5ldyBTdWJqZWN0PFN1YkNvbXBhbnlEdG8+KCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzdG9yZTogU3RvcmUsXG4gICAgcHJpdmF0ZSBtZXNzYWdlQmFyU2VydmljZTogTWVzc2FnZUJhclNlcnZpY2UsXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgc21hcnRwYXJrU2VydmljZTogU21hcnRwYXJrU2VydmljZSxcbiAgICBwcml2YXRlIGFjY291bnRScGNTZXJ2aWNlUHJveHk6IEFjY291bnRScGNTZXJ2aWNlUHJveHkpIHtcbiAgfVxuXG4gIGlzTG9hZGluZ0NvbXBhbnkkKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHRoaXMubG9hZGluZ0NvbXBhbnlTdWJqZWN0JCxcbiAgICAgIHRoaXMuc21hcnRwYXJrU2VydmljZS5sb2FkaW5nJFxuICAgIF0pLnBpcGUobWFwKChbY29tcGFueUxvYWRpbmcsIHNtYXJ0cGFya0xvYWRpbmddKSA9PiBjb21wYW55TG9hZGluZyB8fCBzbWFydHBhcmtMb2FkaW5nKSk7XG4gIH1cblxuICBpc0xvYWRpbmdTdWJDb21wYW55JCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLmxvYWRpbmdTdWJDb21wYW55U3ViamVjdCQsXG4gICAgICB0aGlzLnNtYXJ0cGFya1NlcnZpY2UubG9hZGluZyRcbiAgICBdKS5waXBlKG1hcCgoW3N1YkNvbXBhbnlMb2FkaW5nLCBzbWFydHBhcmtMb2FkaW5nXSkgPT4gc3ViQ29tcGFueUxvYWRpbmcgfHwgc21hcnRwYXJrTG9hZGluZykpO1xuICB9XG5cbiAgZ2V0Q29tcGFuaWVzT3B0aW9ucyhwYXJrSWQ6IG51bWJlciwgZ3VpZDogc3RyaW5nLCBzZWFyY2hQYXJhbXNEdG86IFNlYXJjaFBhcmFtc0R0bywgaW5jbHVkZUFjY2Vzc1Byb2ZpbGU6IGJvb2xlYW4sIGluY2x1ZGVTdWJDb21wYW5pZXM6IGJvb2xlYW4sXG4gICAgcGVybWlzc2lvblR5cGU6IFBlcm1pc3Npb25UeXBlLCBjb21wYW55SWRzPzogbnVtYmVyW10pOiBPYnNlcnZhYmxlPEFjY291bnREdG9JRW51bWVyYWJsZUh0dHBSZXNwb25zZURhdGE+IHtcbiAgICBpZiAoIWd1aWQpIHtcbiAgICAgIHJldHVybiBvZihudWxsKS5waXBlKHRhcChfID0+IHtcbiAgICAgICAgdGhpcy5sb2FkaW5nQ29tcGFueVN1YmplY3QkLm5leHQoZmFsc2UpO1xuICAgICAgfSkpO1xuICAgIH1cblxuICAgIHRoaXMubG9hZGluZ0NvbXBhbnlTdWJqZWN0JC5uZXh0KHRydWUpO1xuXG4gICAgY29uc3QgY29tcGFuaWVzRmlsdGVyRHRvOiBDb21wYW5pZXNGaWx0ZXJEdG8gPSBuZXcgQ29tcGFuaWVzRmlsdGVyRHRvKHtcbiAgICAgIHBhcmtJZDogcGFya0lkLFxuICAgICAgY29tcGFueUlkczogY29tcGFueUlkcyxcbiAgICAgIHN1YkNvbXBhbnlJZHM6IG51bGwsXG4gICAgICBpbmNsdWRlQWNjZXNzUHJvZmlsZTogaW5jbHVkZUFjY2Vzc1Byb2ZpbGUsXG4gICAgICBpbmNsdWRlU3ViQ29tcGFuaWVzOiBpbmNsdWRlU3ViQ29tcGFuaWVzLFxuICAgIH0pO1xuICAgIGNvbnN0IGFjY291bnRzRmV0Y2hNZXRob2Q6IEFjY291bnRzRmV0Y2hNZXRob2RTaWduYXR1cmUgPSB0aGlzLmdldEFjY291bnRzRmV0Y2hNZXRob2QocGVybWlzc2lvblR5cGUpO1xuICAgIGNvbnN0IGdldENvbXBhbmllcyQgPSBhY2NvdW50c0ZldGNoTWV0aG9kKGd1aWQsIHBhcmtJZCwgc2VhcmNoUGFyYW1zRHRvLm1heFJlc3VsdHMsIHNlYXJjaFBhcmFtc0R0by5zZWFyY2hUZXJtLFxuICAgICAgc2VhcmNoUGFyYW1zRHRvLm9yZGVyQnkuY29sdW1uLCBzZWFyY2hQYXJhbXNEdG8ub3JkZXJCeS5vcmRlckRpcmVjdGlvbiwgY29tcGFuaWVzRmlsdGVyRHRvKTtcblxuICAgIHJldHVybiBnZXRDb21wYW5pZXMkLnBpcGUodGFwKF8gPT4ge1xuICAgICAgdGhpcy5sb2FkaW5nQ29tcGFueVN1YmplY3QkLm5leHQoZmFsc2UpO1xuICAgIH0pKTtcbiAgfVxuXG4gIGdldFN1YkNvbXBhbmllc0J5SWRzKHBhcmtJZDogbnVtYmVyLCBndWlkOiBzdHJpbmcsIHBlcm1pc3Npb25UeXBlOiBQZXJtaXNzaW9uVHlwZSwgY29tcGFueUlkczogbnVtYmVyW10sIHN1YkNvbXBhbnlJZHM6IG51bWJlcltdKTogT2JzZXJ2YWJsZTxTdWJBY2NvdW50RHRvSUVudW1lcmFibGVIdHRwUmVzcG9uc2VEYXRhPiB7XG4gICAgaWYgKCFndWlkIHx8ICFjb21wYW55SWRzPy5sZW5ndGgpIHtcbiAgICAgIHJldHVybiBvZihudWxsKS5waXBlKHRhcChfID0+IHtcbiAgICAgICAgdGhpcy5sb2FkaW5nU3ViQ29tcGFueVN1YmplY3QkLm5leHQoZmFsc2UpO1xuICAgICAgfSkpO1xuICAgIH1cblxuICAgIHRoaXMubG9hZGluZ1N1YkNvbXBhbnlTdWJqZWN0JC5uZXh0KHRydWUpO1xuXG4gICAgbGV0IGdldFN1YkNvbXBhbmllcyQ6IE9ic2VydmFibGU8U3ViQWNjb3VudER0b0lFbnVtZXJhYmxlSHR0cFJlc3BvbnNlRGF0YT47XG4gICAgY29uc3Qgc3ViQ29tcGFuaWVzV2l0aFBlcm1pc3Npb25zOiBTdWJDb21wYW5pZXNGaWx0ZXJEdG8gPSBuZXcgU3ViQ29tcGFuaWVzRmlsdGVyRHRvKHtcbiAgICAgIHBhcmtJZCxcbiAgICAgIGNvbXBhbnlJZHM6IGNvbXBhbnlJZHMsXG4gICAgICBzdWJDb21wYW55SWRzOiBzdWJDb21wYW55SWRzLFxuICAgIH0pO1xuICAgIGNvbnN0IHN1YkFjY291bnRzRmV0Y2hNZXRob2Q6IFN1YkFjY291bnRzRmV0Y2hNZXRob2RTaWduYXR1cmUgPSB0aGlzLmdldFN1YkFjY291bnRzRmV0Y2hNZXRob2QocGVybWlzc2lvblR5cGUpO1xuICAgIGdldFN1YkNvbXBhbmllcyQgPSBzdWJBY2NvdW50c0ZldGNoTWV0aG9kKGd1aWQsIHBhcmtJZCwgbnVsbCwgbnVsbCwgbnVsbCwgT3JkZXJEaXJlY3Rpb24uTm9uZSwgc3ViQ29tcGFuaWVzV2l0aFBlcm1pc3Npb25zKTtcblxuICAgIHJldHVybiBnZXRTdWJDb21wYW5pZXMkLnBpcGUodGFwKF8gPT4ge1xuICAgICAgdGhpcy5sb2FkaW5nU3ViQ29tcGFueVN1YmplY3QkLm5leHQoZmFsc2UpO1xuICAgIH0pKTtcbiAgfVxuXG4gIGdldFN1YkNvbXBhbmllc09wdGlvbnMocGFya0lkOiBudW1iZXIsIGd1aWQ6IHN0cmluZywgc2VhcmNoUGFyYW1zRHRvOiBTZWFyY2hQYXJhbXNEdG8sIHBlcm1pc3Npb25UeXBlOiBQZXJtaXNzaW9uVHlwZSxcbiAgICBjb21wYW55SWRzOiBudW1iZXJbXSk6IE9ic2VydmFibGU8U3ViQWNjb3VudER0b0lFbnVtZXJhYmxlSHR0cFJlc3BvbnNlRGF0YT4ge1xuICAgIGlmICghZ3VpZCB8fCAhY29tcGFueUlkcz8ubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gb2YobnVsbCkucGlwZSh0YXAoXyA9PiB7XG4gICAgICAgIHRoaXMubG9hZGluZ1N1YkNvbXBhbnlTdWJqZWN0JC5uZXh0KGZhbHNlKTtcbiAgICAgIH0pKTtcbiAgICB9XG5cbiAgICB0aGlzLmxvYWRpbmdTdWJDb21wYW55U3ViamVjdCQubmV4dCh0cnVlKTtcblxuICAgIGxldCBnZXRTdWJDb21wYW5pZXMkOiBPYnNlcnZhYmxlPFN1YkFjY291bnREdG9JRW51bWVyYWJsZUh0dHBSZXNwb25zZURhdGE+O1xuXG4gICAgY29uc3Qgc3ViQWNjb3VudHNGZXRjaE1ldGhvZDogU3ViQWNjb3VudHNGZXRjaE1ldGhvZFNpZ25hdHVyZSA9IHRoaXMuZ2V0U3ViQWNjb3VudHNGZXRjaE1ldGhvZChwZXJtaXNzaW9uVHlwZSk7XG4gICAgY29uc3Qgc3ViQ29tcGFuaWVzRmlsdGVyRHRvOiBTdWJDb21wYW5pZXNGaWx0ZXJEdG8gPSBuZXcgU3ViQ29tcGFuaWVzRmlsdGVyRHRvKHtcbiAgICAgIHBhcmtJZCxcbiAgICAgIGNvbXBhbnlJZHMsXG4gICAgICBzdWJDb21wYW55SWRzOiBudWxsLFxuICAgIH0pO1xuICAgIGdldFN1YkNvbXBhbmllcyQgPSBzdWJBY2NvdW50c0ZldGNoTWV0aG9kKGd1aWQsIHBhcmtJZCwgc2VhcmNoUGFyYW1zRHRvLm1heFJlc3VsdHMsIHNlYXJjaFBhcmFtc0R0by5zZWFyY2hUZXJtLFxuICAgICAgc2VhcmNoUGFyYW1zRHRvLm9yZGVyQnkuY29sdW1uLCBzZWFyY2hQYXJhbXNEdG8ub3JkZXJCeS5vcmRlckRpcmVjdGlvbiwgc3ViQ29tcGFuaWVzRmlsdGVyRHRvKTtcblxuICAgIHJldHVybiBnZXRTdWJDb21wYW5pZXMkLnBpcGUodGFwKF8gPT4ge1xuICAgICAgdGhpcy5sb2FkaW5nU3ViQ29tcGFueVN1YmplY3QkLm5leHQoZmFsc2UpO1xuICAgIH0pKTtcbiAgfVxuXG4gIGdldENyZWRlbnRpYWxMaW1pdHMoY29tcGFueTogQ29tcGFueUR0bywgc3ViQ29tcGFueT86IFN1YkNvbXBhbnlEdG8pIHtcbiAgICAvLyBXZSBoYXZlIDMgb3B0aW9uc1xuICAgIC8vIDEpIFN1YkNvbXBhbnkgKyBDb21wYW55ICAgICAgID0+IFdlIHRha2UgdGhlIFN1YkNvbXBhbnkgbGltaXRzXG4gICAgLy8gMikgTm8gU3ViQ29tcGFueSArIENvbXBhbnkgICAgPT4gV2UgdGFrZSB3ZSBDb21wYW55IGxpbWl0c1xuICAgIC8vIDMpIE5vIENvbXBhbnkgKyBObyBTdWJDb21wYW55ID0+IFdlIHRha2UgdGhlIGRlZmF1bHQgY29tcGFueSBsaW1pdHNcbiAgICBjb25zdCBhbGxvd1Bob25lID0gc3ViQ29tcGFueT8uYWxsb3dQaG9uZSA/PyBjb21wYW55Py5hbGxvd1Bob25lID8/IHRydWU7XG4gICAgY29uc3QgYWxsb3dRUiA9IHN1YkNvbXBhbnk/LmFsbG93UVIgPz8gY29tcGFueT8uYWxsb3dRUiA/PyB0cnVlO1xuICAgIGNvbnN0IG1heENhcmRzID0gc3ViQ29tcGFueT8ubWF4Q2FyZHMgPz8gY29tcGFueT8ubWF4Q2FyZHMgPz8gTUFYX0NBUkRTO1xuICAgIGNvbnN0IG1heENhclBsYXRlcyA9IHN1YkNvbXBhbnk/Lm1heENhclBsYXRlcyA/PyBjb21wYW55Py5tYXhDYXJQbGF0ZXMgPz8gTUFYX0NBUl9QTEFURVM7XG5cbiAgICByZXR1cm4geyBhbGxvd1Bob25lLCBhbGxvd1FSLCBtYXhDYXJkcywgbWF4Q2FyUGxhdGVzIH07XG4gIH1cblxuICBoYW5kbGVDcmVkZW50aWFsc1dhcm5pbmdNZXNzYWdlc0JhcihjcmVkZW50aWFsTGltaXRzOiB7IGFsbG93UGhvbmU6IGJvb2xlYW47IGFsbG93UVI6IGJvb2xlYW47IG1heENhcmRzOiBudW1iZXI7IG1heENhclBsYXRlczogbnVtYmVyOyB9LCBmb3JtOiBVbnR5cGVkRm9ybUdyb3VwKSB7XG4gICAgbGV0IHdhcm5pbmdNZXNzYWdlQWxlcnRzOiBzdHJpbmdbXSA9IFtdO1xuXG4gICAgLy8gQ2FyZHNcbiAgICBjb25zdCBiYWRnZXMgPSAoZm9ybS5jb250cm9scy5iYWRnZT8udmFsdWUgfHwgW10pLmZpbHRlcihiYWRnZSA9PiB7XG4gICAgICByZXR1cm4gYmFkZ2U/LnZhbHVlLmxlbmd0aCA+IDA7XG4gICAgfSk7XG5cbiAgICBpZiAoYmFkZ2VzLmxlbmd0aCA+IGNyZWRlbnRpYWxMaW1pdHMubWF4Q2FyZHMpIHtcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChMb2NhbGl6YXRpb24uYWNjb3VudF9saW1pdF9jcmVkZW50aWFsX2NhcmQsIHtcbiAgICAgICAgbWF4UXVhbnRpdHk6IGNyZWRlbnRpYWxMaW1pdHMubWF4Q2FyZHNcbiAgICAgIH0pO1xuICAgICAgd2FybmluZ01lc3NhZ2VBbGVydHMucHVzaChtZXNzYWdlKTtcbiAgICB9XG5cbiAgICAvLyBDYXIgUGxhdGVzXG4gICAgY29uc3QgY2FyUGxhdGVzID0gKGZvcm0uY29udHJvbHMuY2FyUGxhdGU/LnZhbHVlIHx8IFtdKS5maWx0ZXIoY2FyUGxhdGUgPT4ge1xuICAgICAgcmV0dXJuIGNhclBsYXRlPy52YWx1ZS5sZW5ndGggPiAwO1xuICAgIH0pO1xuXG4gICAgaWYgKGNhclBsYXRlcy5sZW5ndGggPiBjcmVkZW50aWFsTGltaXRzLm1heENhclBsYXRlcykge1xuICAgICAgY29uc3QgbWVzc2FnZSA9IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KExvY2FsaXphdGlvbi5hY2NvdW50X2xpbWl0X2NyZWRlbnRpYWxfY2FyX3BsYXRlLCB7XG4gICAgICAgIG1heFF1YW50aXR5OiBjcmVkZW50aWFsTGltaXRzLm1heENhclBsYXRlc1xuICAgICAgfSk7XG4gICAgICB3YXJuaW5nTWVzc2FnZUFsZXJ0cy5wdXNoKG1lc3NhZ2UpO1xuICAgIH1cblxuICAgIC8vIEFsbG93UGhvbmUgLSBNb2JpbGVcbiAgICBpZiAoZm9ybS5jb250cm9scy5tb2JpbGUudmFsdWU/Lmxlbmd0aCAmJiAhY3JlZGVudGlhbExpbWl0cy5hbGxvd1Bob25lKSB7XG4gICAgICBjb25zdCBtZXNzYWdlQWxsb3dQaG9uZSA9IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KExvY2FsaXphdGlvbi5hY2NvdW50X2xpbWl0X2NyZWRlbnRpYWxfcGhvbmUpO1xuICAgICAgd2FybmluZ01lc3NhZ2VBbGVydHMucHVzaChtZXNzYWdlQWxsb3dQaG9uZSk7XG4gICAgfVxuXG4gICAgLy8gQWxsb3dRUiAtIEVtYWlsXG4gICAgaWYgKGZvcm0uY29udHJvbHMuZW1haWwudmFsdWU/Lmxlbmd0aCAmJiAhY3JlZGVudGlhbExpbWl0cy5hbGxvd1FSKSB7XG4gICAgICBjb25zdCBtZXNzYWdlQWxsb3dRUiA9IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KExvY2FsaXphdGlvbi5hY2NvdW50X2xpbWl0X2NyZWRlbnRpYWxfcXIpO1xuICAgICAgd2FybmluZ01lc3NhZ2VBbGVydHMucHVzaChtZXNzYWdlQWxsb3dRUik7XG4gICAgfVxuXG4gICAgaWYgKHdhcm5pbmdNZXNzYWdlQWxlcnRzLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IHdhcm5pbmdNZXNzYWdlID0gYC0gJHt3YXJuaW5nTWVzc2FnZUFsZXJ0cy5qb2luKCc8YnI+LSAnKX1gO1xuICAgICAgdGhpcy5tZXNzYWdlQmFyU2VydmljZS53YXJuKHdhcm5pbmdNZXNzYWdlLCB7IGlkOiAnY3JlZGVudGlhbFdhcm5pbmdNZXNzYWdlJywgcG9zaXRpb246IE1lc3NhZ2VCYXJQb3NpdGlvbi5TdGF0aWMgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubWVzc2FnZUJhclNlcnZpY2UuY2xlYXJNZXNzYWdlYmFyKCdjcmVkZW50aWFsV2FybmluZ01lc3NhZ2UnKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldEFjY291bnRzRmV0Y2hNZXRob2QocGVybWlzc2lvblR5cGU6IFBlcm1pc3Npb25UeXBlKTogQWNjb3VudHNGZXRjaE1ldGhvZFNpZ25hdHVyZSB7XG4gICAgcmV0dXJuICh0aGlzLmFjY291bnRzRmV0Y2hNZXRob2RzTWFwcGluZ1twZXJtaXNzaW9uVHlwZV0pLmJpbmQodGhpcy5hY2NvdW50UnBjU2VydmljZVByb3h5KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0U3ViQWNjb3VudHNGZXRjaE1ldGhvZChwZXJtaXNzaW9uVHlwZTogUGVybWlzc2lvblR5cGUpOiBTdWJBY2NvdW50c0ZldGNoTWV0aG9kU2lnbmF0dXJlIHtcbiAgICByZXR1cm4gKHRoaXMuc3ViQWNjb3VudHNGZXRjaE1ldGhvZHNNYXBwaW5nW3Blcm1pc3Npb25UeXBlXSkuYmluZCh0aGlzLmFjY291bnRScGNTZXJ2aWNlUHJveHkpO1xuICB9XG5cbiAgYWNjb3VudHNGZXRjaE1ldGhvZHNNYXBwaW5nOiBBY2NvdW50c0ZldGNoTWV0aG9kc01hcCA9IHtcbiAgICBbUGVybWlzc2lvblR5cGUuQ2NNYWluXTogdGhpcy5hY2NvdW50UnBjU2VydmljZVByb3h5LmdldEFjY291bnRzQ2NWaWV3LFxuICAgIFtQZXJtaXNzaW9uVHlwZS5VcGRhdGVEb2N1bWVudF06IHRoaXMuYWNjb3VudFJwY1NlcnZpY2VQcm94eS5nZXRBY2NvdW50c0NjVXBkYXRlRG9jdW1lbnQsXG4gICAgW1Blcm1pc3Npb25UeXBlLkd1ZXN0Vmlld106IHRoaXMuYWNjb3VudFJwY1NlcnZpY2VQcm94eS5nZXRBY2NvdW50c0d1ZXN0VmlldyxcbiAgICBbUGVybWlzc2lvblR5cGUuR3Vlc3RDcmVhdGVdOiB0aGlzLmFjY291bnRScGNTZXJ2aWNlUHJveHkuZ2V0QWNjb3VudHNHdWVzdENyZWF0ZSxcbiAgICBbUGVybWlzc2lvblR5cGUuR3Vlc3RVcGRhdGVdOiB0aGlzLmFjY291bnRScGNTZXJ2aWNlUHJveHkuZ2V0QWNjb3VudHNHdWVzdFVwZGF0ZSxcbiAgICBbUGVybWlzc2lvblR5cGUuR3Vlc3RHcm91cENyZWF0ZV06IHRoaXMuYWNjb3VudFJwY1NlcnZpY2VQcm94eS5nZXRBY2NvdW50c0d1ZXN0R3JvdXBDcmVhdGUsXG4gICAgW1Blcm1pc3Npb25UeXBlLkd1ZXN0RVZvdWNoZXJWaWV3XTogdGhpcy5hY2NvdW50UnBjU2VydmljZVByb3h5LmdldEFjY291bnRzRVZvdWNoZXJWaWV3LFxuICAgIFtQZXJtaXNzaW9uVHlwZS5HdWVzdEhvdGVsR3Vlc3RWaWV3XTogdGhpcy5hY2NvdW50UnBjU2VydmljZVByb3h5LmdldEFjY291bnRzSG90ZWxHdWVzdFZpZXcsXG4gICAgW1Blcm1pc3Npb25UeXBlLkd1ZXN0SG90ZWxHdWVzdENyZWF0ZV06IHRoaXMuYWNjb3VudFJwY1NlcnZpY2VQcm94eS5nZXRBY2NvdW50c0hvdGVsR3Vlc3RDcmVhdGUsXG4gICAgW1Blcm1pc3Npb25UeXBlLkd1ZXN0SG90ZWxHdWVzdFVwZGF0ZV06IHRoaXMuYWNjb3VudFJwY1NlcnZpY2VQcm94eS5nZXRBY2NvdW50c0hvdGVsR3Vlc3RVcGRhdGUsXG4gICAgW1Blcm1pc3Npb25UeXBlLkhvdGVsR3Vlc3RJT0NyZWF0ZV06IHRoaXMuYWNjb3VudFJwY1NlcnZpY2VQcm94eS5nZXRBY2NvdW50c0hvdGVsR3Vlc3RJT0NyZWF0ZSxcbiAgICBbUGVybWlzc2lvblR5cGUuSG90ZWxHdWVzdElPVmlld106IHRoaXMuYWNjb3VudFJwY1NlcnZpY2VQcm94eS5nZXRBY2NvdW50c0hvdGVsR3Vlc3RJT0hpc3RvcnlWaWV3LFxuICAgIFtQZXJtaXNzaW9uVHlwZS5Nb250aGxpZXNWaWV3XTogdGhpcy5hY2NvdW50UnBjU2VydmljZVByb3h5LmdldEFjY291bnRzTW9udGhseVZpZXcsXG4gICAgW1Blcm1pc3Npb25UeXBlLk1vbnRobGllc0NyZWF0ZV06IHRoaXMuYWNjb3VudFJwY1NlcnZpY2VQcm94eS5nZXRBY2NvdW50c01vbnRobHlDcmVhdGUsXG4gICAgW1Blcm1pc3Npb25UeXBlLk1vbnRobGllc1VwZGF0ZV06IHRoaXMuYWNjb3VudFJwY1NlcnZpY2VQcm94eS5nZXRBY2NvdW50c01vbnRobHlVcGRhdGUsXG4gICAgW1Blcm1pc3Npb25UeXBlLk1vbnRobHlTZXJpZXNDcmVhdGVdOiB0aGlzLmFjY291bnRScGNTZXJ2aWNlUHJveHkuZ2V0QWNjb3VudHNNb250aGx5U2VyaWVzQ3JlYXRlLFxuICAgIFtQZXJtaXNzaW9uVHlwZS5WYWxpZGF0aW9uRVZhbGlkYXRpb25WaWV3XTogdGhpcy5hY2NvdW50UnBjU2VydmljZVByb3h5LmdldEFjY291bnRzRVZhbGlkYXRpb25WaWV3LFxuICAgIFtQZXJtaXNzaW9uVHlwZS5WYWxpZGF0aW9uRVZhbGlkYXRpb25DcmVhdGVdOiB0aGlzLmFjY291bnRScGNTZXJ2aWNlUHJveHkuZ2V0QWNjb3VudHNFVmFsaWRhdGlvbkNyZWF0ZSxcbiAgICBbUGVybWlzc2lvblR5cGUuVmFsaWRhdGlvbkVWYWxpZGF0aW9uVXBkYXRlXTogdGhpcy5hY2NvdW50UnBjU2VydmljZVByb3h5LmdldEFjY291bnRzRVZhbGlkYXRpb25VcGRhdGUsXG4gICAgW1Blcm1pc3Npb25UeXBlLlZhbGlkYXRpb25TZWxmVmFsaWRhdGlvblZpZXddOiB0aGlzLmFjY291bnRScGNTZXJ2aWNlUHJveHkuZ2V0QWNjb3VudHNTZWxmVmFsaWRhdGlvblZpZXcsXG4gICAgW1Blcm1pc3Npb25UeXBlLlZhbGlkYXRpb25TZWxmVmFsaWRhdGlvbkNyZWF0ZV06IHRoaXMuYWNjb3VudFJwY1NlcnZpY2VQcm94eS5nZXRBY2NvdW50c1NlbGZWYWxpZGF0aW9uQ3JlYXRlLFxuICAgIFtQZXJtaXNzaW9uVHlwZS5WYWxpZGF0aW9uU2VsZlZhbGlkYXRpb25VcGRhdGVdOiB0aGlzLmFjY291bnRScGNTZXJ2aWNlUHJveHkuZ2V0QWNjb3VudHNTZWxmVmFsaWRhdGlvblVwZGF0ZSxcbiAgICBbUGVybWlzc2lvblR5cGUuVmFsaWRhdGlvbkNvdXBvblZpZXddOiB0aGlzLmFjY291bnRScGNTZXJ2aWNlUHJveHkuZ2V0QWNjb3VudHNDb3Vwb25WaWV3LFxuICAgIFtQZXJtaXNzaW9uVHlwZS5WYWxpZGF0aW9uQ291cG9uQ3JlYXRlXTogdGhpcy5hY2NvdW50UnBjU2VydmljZVByb3h5LmdldEFjY291bnRzQ291cG9uQ3JlYXRlLFxuICAgIFtQZXJtaXNzaW9uVHlwZS5WYWxpZGF0aW9uQ291cG9uVXBkYXRlXTogdGhpcy5hY2NvdW50UnBjU2VydmljZVByb3h5LmdldEFjY291bnRzQ291cG9uVXBkYXRlLFxuICAgIFtQZXJtaXNzaW9uVHlwZS5WYWxpZGF0aW9uU3RpY2tlclZpZXddOiB0aGlzLmFjY291bnRScGNTZXJ2aWNlUHJveHkuZ2V0QWNjb3VudHNTdGlja2VyVmlldyxcbiAgICBbUGVybWlzc2lvblR5cGUuVmFsaWRhdGlvblN0aWNrZXJDcmVhdGVdOiB0aGlzLmFjY291bnRScGNTZXJ2aWNlUHJveHkuZ2V0QWNjb3VudHNTdGlja2VyQ3JlYXRlLFxuICAgIFtQZXJtaXNzaW9uVHlwZS5WYWxpZGF0aW9uU3RpY2tlclVwZGF0ZV06IHRoaXMuYWNjb3VudFJwY1NlcnZpY2VQcm94eS5nZXRBY2NvdW50c1N0aWNrZXJVcGRhdGUsXG4gICAgW1Blcm1pc3Npb25UeXBlLkxvdENvbmZpZ3VyYXRpb25SYXRlc106IHRoaXMuYWNjb3VudFJwY1NlcnZpY2VQcm94eS5nZXRBY2NvdW50c0xvdENvbmZpZ3VyYXRpb25SYXRlcyxcbiAgICBbUGVybWlzc2lvblR5cGUuTWFuYWdlbWVudEFkbWluXTogdGhpcy5hY2NvdW50UnBjU2VydmljZVByb3h5LmdldEFjY291bnRzTWFuYWdlbWVudFZpZXcsXG4gIH07XG4gIHN1YkFjY291bnRzRmV0Y2hNZXRob2RzTWFwcGluZzogU3ViQWNjb3VudHNGZXRjaE1ldGhvZHNNYXAgPSB7XG4gICAgW1Blcm1pc3Npb25UeXBlLkNjTWFpbl06IHRoaXMuYWNjb3VudFJwY1NlcnZpY2VQcm94eS5nZXRTdWJBY2NvdW50c0NjVmlldyxcbiAgICBbUGVybWlzc2lvblR5cGUuVXBkYXRlRG9jdW1lbnRdOiB0aGlzLmFjY291bnRScGNTZXJ2aWNlUHJveHkuZ2V0U3ViQWNjb3VudHNDY1VwZGF0ZURvY3VtZW50LFxuICAgIFtQZXJtaXNzaW9uVHlwZS5HdWVzdFZpZXddOiB0aGlzLmFjY291bnRScGNTZXJ2aWNlUHJveHkuZ2V0U3ViQWNjb3VudHNHdWVzdFZpZXcsXG4gICAgW1Blcm1pc3Npb25UeXBlLkd1ZXN0Q3JlYXRlXTogdGhpcy5hY2NvdW50UnBjU2VydmljZVByb3h5LmdldFN1YkFjY291bnRzR3Vlc3RDcmVhdGUsXG4gICAgW1Blcm1pc3Npb25UeXBlLkd1ZXN0VXBkYXRlXTogdGhpcy5hY2NvdW50UnBjU2VydmljZVByb3h5LmdldFN1YkFjY291bnRzR3Vlc3RVcGRhdGUsXG4gICAgW1Blcm1pc3Npb25UeXBlLkd1ZXN0R3JvdXBDcmVhdGVdOiB0aGlzLmFjY291bnRScGNTZXJ2aWNlUHJveHkuZ2V0U3ViQWNjb3VudHNHdWVzdEdyb3VwQ3JlYXRlLFxuICAgIFtQZXJtaXNzaW9uVHlwZS5Nb250aGxpZXNWaWV3XTogdGhpcy5hY2NvdW50UnBjU2VydmljZVByb3h5LmdldFN1YkFjY291bnRzTW9udGhseVZpZXcsXG4gICAgW1Blcm1pc3Npb25UeXBlLk1vbnRobGllc0NyZWF0ZV06IHRoaXMuYWNjb3VudFJwY1NlcnZpY2VQcm94eS5nZXRTdWJBY2NvdW50c01vbnRobHlDcmVhdGUsXG4gICAgW1Blcm1pc3Npb25UeXBlLk1vbnRobGllc1VwZGF0ZV06IHRoaXMuYWNjb3VudFJwY1NlcnZpY2VQcm94eS5nZXRTdWJBY2NvdW50c01vbnRobHlVcGRhdGUsXG4gICAgW1Blcm1pc3Npb25UeXBlLk1vbnRobHlTZXJpZXNDcmVhdGVdOiB0aGlzLmFjY291bnRScGNTZXJ2aWNlUHJveHkuZ2V0U3ViQWNjb3VudHNNb250aGx5U2VyaWVzQ3JlYXRlLFxuICAgIFtQZXJtaXNzaW9uVHlwZS5WYWxpZGF0aW9uRVZhbGlkYXRpb25WaWV3XTogdGhpcy5hY2NvdW50UnBjU2VydmljZVByb3h5LmdldFN1YkFjY291bnRzRVZhbGlkYXRpb25WaWV3LFxuICAgIFtQZXJtaXNzaW9uVHlwZS5WYWxpZGF0aW9uRVZhbGlkYXRpb25DcmVhdGVdOiB0aGlzLmFjY291bnRScGNTZXJ2aWNlUHJveHkuZ2V0U3ViQWNjb3VudHNFVmFsaWRhdGlvbkNyZWF0ZSxcbiAgICBbUGVybWlzc2lvblR5cGUuVmFsaWRhdGlvbkVWYWxpZGF0aW9uVXBkYXRlXTogdGhpcy5hY2NvdW50UnBjU2VydmljZVByb3h5LmdldFN1YkFjY291bnRzRVZhbGlkYXRpb25VcGRhdGUsXG4gICAgW1Blcm1pc3Npb25UeXBlLlZhbGlkYXRpb25TZWxmVmFsaWRhdGlvblZpZXddOiB0aGlzLmFjY291bnRScGNTZXJ2aWNlUHJveHkuZ2V0U3ViQWNjb3VudHNTZWxmVmFsaWRhdGlvblZpZXcsXG4gICAgW1Blcm1pc3Npb25UeXBlLlZhbGlkYXRpb25TZWxmVmFsaWRhdGlvbkNyZWF0ZV06IHRoaXMuYWNjb3VudFJwY1NlcnZpY2VQcm94eS5nZXRTdWJBY2NvdW50c1NlbGZWYWxpZGF0aW9uQ3JlYXRlLFxuICAgIFtQZXJtaXNzaW9uVHlwZS5WYWxpZGF0aW9uU2VsZlZhbGlkYXRpb25VcGRhdGVdOiB0aGlzLmFjY291bnRScGNTZXJ2aWNlUHJveHkuZ2V0U3ViQWNjb3VudHNTZWxmVmFsaWRhdGlvblVwZGF0ZSxcbiAgICBbUGVybWlzc2lvblR5cGUuVmFsaWRhdGlvbkNvdXBvblZpZXddOiB0aGlzLmFjY291bnRScGNTZXJ2aWNlUHJveHkuZ2V0U3ViQWNjb3VudHNDb3Vwb25WaWV3LFxuICAgIFtQZXJtaXNzaW9uVHlwZS5WYWxpZGF0aW9uQ291cG9uQ3JlYXRlXTogdGhpcy5hY2NvdW50UnBjU2VydmljZVByb3h5LmdldFN1YkFjY291bnRzQ291cG9uQ3JlYXRlLFxuICAgIFtQZXJtaXNzaW9uVHlwZS5WYWxpZGF0aW9uQ291cG9uVXBkYXRlXTogdGhpcy5hY2NvdW50UnBjU2VydmljZVByb3h5LmdldFN1YkFjY291bnRzQ291cG9uVXBkYXRlLFxuICAgIFtQZXJtaXNzaW9uVHlwZS5WYWxpZGF0aW9uU3RpY2tlclZpZXddOiB0aGlzLmFjY291bnRScGNTZXJ2aWNlUHJveHkuZ2V0U3ViQWNjb3VudHNTdGlja2VyVmlldyxcbiAgICBbUGVybWlzc2lvblR5cGUuVmFsaWRhdGlvblN0aWNrZXJDcmVhdGVdOiB0aGlzLmFjY291bnRScGNTZXJ2aWNlUHJveHkuZ2V0U3ViQWNjb3VudHNTdGlja2VyQ3JlYXRlLFxuICAgIFtQZXJtaXNzaW9uVHlwZS5WYWxpZGF0aW9uU3RpY2tlclVwZGF0ZV06IHRoaXMuYWNjb3VudFJwY1NlcnZpY2VQcm94eS5nZXRTdWJBY2NvdW50c1N0aWNrZXJVcGRhdGUsXG4gIH07XG59XG5cbnR5cGUgQWNjb3VudHNGZXRjaE1ldGhvZFNpZ25hdHVyZSA9IChndWlkOiBzdHJpbmcsIGZhY2lsaXR5SWQ6IG51bWJlciwgbWF4UmVzdWx0czogbnVtYmVyIHwgdW5kZWZpbmVkLCBzZWFyY2hUZXJtOiBzdHJpbmcgfCB1bmRlZmluZWQsXG4gIG9yZGVyQnlfQ29sdW1uOiBzdHJpbmcgfCB1bmRlZmluZWQsIG9yZGVyQnlfT3JkZXJEaXJlY3Rpb246IE9yZGVyRGlyZWN0aW9uIHwgdW5kZWZpbmVkLCBib2R5OiBDb21wYW5pZXNGaWx0ZXJEdG8gfCB1bmRlZmluZWQpID0+XG4gIE9ic2VydmFibGU8QWNjb3VudER0b0lFbnVtZXJhYmxlSHR0cFJlc3BvbnNlRGF0YT47XG50eXBlIFN1YkFjY291bnRzRmV0Y2hNZXRob2RTaWduYXR1cmUgPSAoZ3VpZDogc3RyaW5nLCBmYWNpbGl0eUlkOiBudW1iZXIsIG1heFJlc3VsdHM6IG51bWJlciB8IHVuZGVmaW5lZCwgc2VhcmNoVGVybTogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICBvcmRlckJ5X0NvbHVtbjogc3RyaW5nIHwgdW5kZWZpbmVkLCBvcmRlckJ5X09yZGVyRGlyZWN0aW9uOiBPcmRlckRpcmVjdGlvbiB8IHVuZGVmaW5lZCwgYm9keTogU3ViQ29tcGFuaWVzRmlsdGVyRHRvIHwgdW5kZWZpbmVkKSA9PlxuICBPYnNlcnZhYmxlPFN1YkFjY291bnREdG9JRW51bWVyYWJsZUh0dHBSZXNwb25zZURhdGE+O1xudHlwZSBBY2NvdW50c0ZldGNoTWV0aG9kc01hcCA9IE51bWJlck1hcDxBY2NvdW50c0ZldGNoTWV0aG9kU2lnbmF0dXJlPjtcbnR5cGUgU3ViQWNjb3VudHNGZXRjaE1ldGhvZHNNYXAgPSBOdW1iZXJNYXA8U3ViQWNjb3VudHNGZXRjaE1ldGhvZFNpZ25hdHVyZT47XG4iXX0=
|
|
@@ -107851,7 +107851,7 @@ function removeDependentPermissionIfParentMissing(permissions, dependent, parent
|
|
|
107851
107851
|
if (permissions && permissions.includes(dependent) && !permissions.includes(parent)) {
|
|
107852
107852
|
return permissions.filter(p => p !== dependent);
|
|
107853
107853
|
}
|
|
107854
|
-
return
|
|
107854
|
+
return permissions;
|
|
107855
107855
|
}
|
|
107856
107856
|
function filterDependentPermissions(permissions) {
|
|
107857
107857
|
if (permissions) {
|
|
@@ -110397,7 +110397,7 @@ const EDGE_PREFIX_API = '/api/services/web/sp';
|
|
|
110397
110397
|
const REFRESH_TOKEN_API = 'api/services/web/users/refresh-token';
|
|
110398
110398
|
const REFRESH_MOBILE_TOKEN_API = 'api/services/mobile/users/refresh-token';
|
|
110399
110399
|
const EXTERNAL_APIS = [
|
|
110400
|
-
'api/services/
|
|
110400
|
+
'api/services/selfvalidation/details',
|
|
110401
110401
|
'/execute/self-validation', // TODO: Remove when self-validation is handled by the new project (MatanShomer)
|
|
110402
110402
|
];
|
|
110403
110403
|
const ANONYMOUS_APIS = [
|
|
@@ -110666,6 +110666,7 @@ class CompanyService {
|
|
|
110666
110666
|
this.loadingCompanySubject$ = new Subject();
|
|
110667
110667
|
this.loadingSubCompanySubject$ = new Subject();
|
|
110668
110668
|
this.companyChange$ = new Subject();
|
|
110669
|
+
this.subCompanyChange$ = new Subject();
|
|
110669
110670
|
this.accountsFetchMethodsMapping = {
|
|
110670
110671
|
[PermissionType$1.CcMain]: this.accountRpcServiceProxy.getAccountsCcView,
|
|
110671
110672
|
[PermissionType$1.UpdateDocument]: this.accountRpcServiceProxy.getAccountsCcUpdateDocument,
|
|
@@ -120401,5 +120402,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
120401
120402
|
* Generated bundle index. Do not edit.
|
|
120402
120403
|
*/
|
|
120403
120404
|
|
|
120404
|
-
export { ACCESS_PROFILE_DAT_TYPES_SP, ACTIVE_BYTE, ADVANCED_OPTIONS_VALUE, ADVANCED_PERMISSION_DEPENDENCIES, AES_DEFAULT_IV, ALERT_NOTIFICATION_CONTAINER, ALLOWED_FILES_FORMATS, ALLOWED_FILES_MAX_SIZE_1_MB, ALLOWED_FILES_MAX_SIZE_200_KB, ALLOWED_FILES_MAX_SIZE_2_MB, ALLOWED_FILES_MAX_SIZE_MB, ALLOWED_NUMBER_OF_DAYS, ALLOWED_UPLOAD_FILES_QUANTITY, ALL_DAYS_IN_BINARY, ALL_DAYS_IN_BYTE, AccessProfileChangeValidTypesText, AccessProfileDayTypesText, AccessProfileRestrictionTypesText, AccessProfileShortDayTypesText, AccessProfileSpecialDaysMap, AccessProfileTypesText, AccountFrameMessageBarComponent, AccountLinkedEntitiesText, AccountLinkedEntityText, AccountSetPasswordAction, AccountSetPasswordErrorAction, AccountSetPasswordInitAction, ActionStatusService, AddSmartparkAction, AddUserAction, AdministrativeNotificationEntityType, AdministrativeNotificationsModule, AdministrativeNotificationsState, AggregatedStatusText, AlertChangedAction, AlertNotificationBorderClass, AlertNotificationClassificationMap, AlertNotificationComponent, AlertNotificationService, AlertsAndNotificationsService, AlertsAndNotificationsState, AlertsDeviceTypeLabel, AlertsDeviceTypeOptions, AlertsDeviceTypeOptionsMapping, AmountStepSurchargeMinLimit, AnalyticsCommandsText, AnalyticsEventsText, AnalyticsService, AnalyticsSourceComponent, AnalyticsSourceProps, AppConfigService, AppModuleService, AppModuleToMainPermissionTypeMap, AppSectionLabel, AppSectionModuleMenu, AppSectionRoute, AppSettingsService, AppType, AuditActionTypeText, AuditLogoutAction, AuditLogoutMobileAction, AuthModule, AuthRouteGuard, AuthService, AuthTokenService, Authenticate2FAforUser, AuthenticateMultipleTenantsAction, AutofocusDirective, BOM_UNICODE, BackOfficeParkerType, BackofficeAutheticateAction, BarcodeTypeLength, BarrireStateText, BaseComponent, BaseDeviceItemComponent, BaseDeviceService, BaseFacilityCommandsConfigService, BaseFacilityCommandsService, BaseNotificationService, BillDispenserStatusText, BillTypeText, BillValidatorStatusText, ButtonStatus, CANCEL_ALL_RELAY_VALUE, CLogItPipe, COLORS, CREDIT_CARD_POSTFIX_LENGTH, CalculatorModule, CalculatorState, CanDeactivateService, CarModule, CarState, CassetteStatusText, CentToCoinPipe, ChangeLanguageAction, ChangeMobileLanguageAction, ChangePasswordAction, ChangePasswordMobileAction, ChartLayout, CleanLogoAction, ClearAdministrativeNotificationsAction, ClearAdministrativeNotificationsByEntityTypeAction, ClearAlertsAndNotificationsAction, ClearBaseZonesAction, ClearCalculatorPriceAction, ClearCategoriesAction, ClearColorsAction, ClearConflictDetected, ClearDeviceAction, ClearDeviceEventsExpanded, ClearDevicesAction, ClearEventActivitiesExpanded, ClearFacilityDictionaryAction, ClearGroupsAction, ClearGuestAction, ClearGuestProfilesAction, ClearGuestsListAction, ClearHandledGuest, ClearInactiveSelectedParkAction, ClearJobTitlesAction, ClearLocateTicketSearchAction, ClearLocatedTicketAction, ClearLprTransactionsExpanded, ClearMacroCommandsAction, ClearModelsAction, ClearParkerAction, ClearRateAction, ClearSearchResultsAction, ClearSearchTermAction, ClearSearchTicketAction, ClearSelectedFacilityAction, ClearSelectedParkAction, ClearSelectedRow, ClearSelectedSmartparkAction, ClearSmartparksBasicAction, ClearSpAndSparkVersionsAction, ClearSpecialTransientTablesAction, ClearSuspendedParkActivitiesAction, ClearUserSettingsByCategoryAction, ClearUsersAction, ClearValidationTypesAction, ClearZoneAction, ClearZonesAction, ClearZsAction, cloudServiceProxies as Cloud, CloudConfirmDialogComponent, CofCredentialSubTypeText, CoinStatusText, CollapsedGuestsByBatchIdAction, ComAggregatedStatus, ComAggregatedStatusText, ComStatusIconComponent, CommandCenterModuleResolver, CommandNotificationBorderClass, CommandNotificationComponent, CommandNotificationDisplayCase, CommandNotificationService, CommandNotificationType, CommandsLocalizationKey, CommonPagesModule, CompanyService, ConfigMobileResolver, ConfigResolver, ConnectSmartparkAction, ContainerRefDirective, CoreEntities, CouponSearchFieldSelectorText, CreateBasicBatchAction, CreateBasicGuestAction, CreateBatchAction, CreateColorAction, CreateGuestAction, CreateModelAction, CreateOrUpdateSMTPDetailsAction, CredentialTypeText, CreditCardTypeText, CrudOperationText, CurlyToBoldPipe, DATA_IMAGE_BASE64_PREFIX, DEFAULT_DATE_FORMAT, DEFAULT_EXPIRATION_MONTHS_COUNT, DEFAULT_MINIMUM_LENGTH, DEFAULT_MODULE, DEFAULT_PASSWORD_HISTORY_COUNT, DEFAULT_PERMITTED_CREDENTIALS, DEFAULT_SMART_PARK_DATE_TIME, DEFAULT_SORT_MENU, DEFAULT_STICKER_NUM, DEVICE_EVENT_OPTIONS_KEY, DEVICE_NAVIGATE_KEY, DISABLED_FOCUS_ELEMENT_CLASSES, DISABLED_FOCUS_ELEMENT_TYPES, DYNAMIC_PRICING_CONDITION, DataQaAttribute, DateService, DateValidityText, DaysText, DecimalToAmountPipe, DecimalToCurrencyPipe, DefaultImageTimeout, DeleteGuestAction, DeleteLogoAction, DeleteUserAction, DetectBrowserService, DeviceActivityChangedAction, DeviceActivityLabel, DeviceActivityMode, DeviceActivityModeText, DeviceActivityStatus, DeviceActivityType, DeviceAggregatedStatus, DeviceAggregatedStatusText, DeviceEventChangedAction, DeviceIconComponent, DeviceIndicationStatus, DeviceLaneTypes, DeviceLoop, DeviceModule, DevicePipeModule, DevicePrinterStatusText, DeviceRemoteCommandsService, DeviceSortBy, DeviceStatusBaseComponent, DeviceStatusChangedAction, DeviceTypeIconName, DeviceTypeText, DeviceTypesAlertsMapping, DevicesViewMode, DialogMode, DipSwitchStatus, Disable2FAAction, DisconnectSmartParkAction, DoorSensorStatus, DoorStatusText, DurationMessageBar, DynamicContainerComponent, DynamicEllipsisTooltipDirective, ENGLISH_LANGUAGE, ENVIRONMENT, EXPIRATION_MONTHS_COUNT_OPTIONS, edgeServiceProxies as Edge, EditUserAction, ElectronicWalletPaymentMethodTypesText, EllipsisMultilineDirective, EmailServerModule, EmailServerState, EmptyResultsComponent, Enable2FAAction, EnumsToArrayPipe, EnvironmentModeText, ErrorPageComponent, ErrorPageResolver, ErrorResultsComponent, ExceedingBehaviorTypeText, ExpandGuestsByBatchIdAction, ExportFileService, ExportGuestsAction, ExportPdfSmartparksTableAction, ExportSmartparkAction, FONT_BASE64, FacilityChangedAction, FacilityMenuService, FacilityModule, FacilityRemoteCommandExecutedAction, FacilityRemoteCommandTypesIcon, FacilityRemoteCommandsLocalizationKey, FacilityRemoteCommandsMenuItems, FacilityService, FacilityState, FieldLabelComponent, FieldValidationsComponent, FileGenerateMethod, FileSanitizerService, FileService, FilterByDeviceType, FilterDevicesByTypePipe, FilterDevicesByZonePipe, FilterKeysPipe, FilterNumbersPipe, FilterPipe, FlattenedCoreEntities, FloatMessageBarService, ForgotPasswordAction, ForgotPasswordTenantlessAction, FormValidationsComponent, FormattedInputDirective, FrequentParkingActionText, FrequentParkingErrorActionText, GATE_STATE_VALUE, GeneralActionService, GenerateSearchParamsDto, GetAllLocalizationsAction, GetAllLocalizationsMobileAction, GetLogoAction, GetMobileLogoAction, GetRateByIdAction, GetSpecialTransientTablesAction, GetUserSettingsByCategoryAction, GlobalErrorService, GlobalMessageContainerComponent, GroupPermissionsPipe, GuestModule, GuestSearchFieldSelectorText, GuestState, GuestTypeCastText, GuestTypesText, HOUR_FORMAT_12, HOUR_FORMAT_24, HOUR_FORMAT_FULL_DAY, HandleAlertsAction, HandleNotificationAction, HandledNotificationAction, HasActionErrored, HealthAction, HoldRelayMode, HoldRelayModeText, HopperStatusText, HotelGuestSearchFieldSelectorText, HttpCancelBlackListUrls, HttpCancelInterceptor, HttpCancelService, HumanizePipe, INPUT_SEARCH_DEBOUNCE_TIME, INPUT_SEARCH_DEBOUNCE_TIME_LOW, INPUT_SEARCH_DEBOUNCE_TIME_MEDIUM, IconColumnComponent, IconComponent, IconModule, IconsHelper, IconsHelperText, identityServiceProxies as Identity, ImportMonthyStastusFieldSelectorText, InitAddSmartparkConnectionAction, InitSMTPDetailsAction, InitSessionFromLocalStorageAction, InitSmartparkTransportAction, IntercomComponent, InternetConnectionService, InternetConnectionStatus, IsActionExecuting, IsEllipsisDirective, LOCAL_ENGLISH_LANGUAGE, LOCATION_OPTIONS, LOGGED_TENANT_KEY, LanguageTypeKeys, LayoutModule, LayoutState, Load2FAUserAction, LoadAccessProfileBaseZonesAction, LoadAccessProfileZoneAction, LoadAccessProfileZonesAction, LoadAccountManagementGuestGroupAction, LoadAccountManagementJobTitlesAction, LoadAdministrativeNotificationsAction, LoadAlertsAndNotificationsAction, LoadAppConfigurationAction, LoadAppConfigurationMobileAction, LoadBackofficeAppConfigurationAction, LoadBackofficeSmartparksTableAction, LoadBackofficeSpAndSparkVersionsAction, LoadBackofficeVarByIdAction, LoadBackofficeVarsAction, LoadCalculatorPriceAction, LoadCategoriesAction, LoadCcMainBaseZonesAction, LoadCcMainZonesAction, LoadColorsAction, LoadColorsAction1, LoadColorsAction2, LoadColorsAction3, LoadColorsAction4, LoadColorsAction5, LoadDeviceAction, LoadDeviceEventActivitiesAction, LoadDeviceEventsAction, LoadDeviceEventsCollapse, LoadDeviceLprTransactionsAction, LoadDeviceStatusAction, LoadDevicesAction, LoadDevicesByTypeAction, LoadDynamicPricingBaseZonesAction, LoadDynamicPricingZoneAction, LoadEventActivitiesCollapse, LoadFacilityAction, LoadFacilityRemoteCommandsRefAction, LoadGuestByIdAction, LoadGuestProfilesAction, LoadGuestsAction, LoadGuestsByBatchIdAction, LoadGuestsByBatchIdCancelledAction, LoadLocateTicketSearchAction, LoadLocatedTicketAction, LoadLprTransactionsCollapse, LoadMacroCommandsAction, LoadMobileNotificationsAction, LoadMobileSmartparksBasicAction, LoadModelsAction, LoadModelsAction1, LoadModelsAction2, LoadModelsAction3, LoadModelsAction4, LoadModelsAction5, LoadOverflowPriceTableAction, LoadParkActivitiesAction, LoadParkDevicesAction, LoadParkerAction, LoadParkersAction, LoadParkingLotAction, LoadParksAction, LoadRateByIdAction, LoadRatesAction, LoadRemoteCommandsRefAction, LoadReportsBaseZonesAction, LoadReportsGuestGroupAction, LoadReportsJobTitlesAction, LoadReportsZoneAction, LoadReportsZonesAction, LoadSMTPDetailsAction, LoadSelectedDeviceAction, LoadSmartparksAction, LoadSmartparksBasicAction, LoadSmartparksDropdownAction, LoadSmartparksTableAction, LoadSpAndSparkVersionsAction, LoadStickerPriceTableAction, LoadTicketNumParkersAction, LoadTransientPriceTableAction, LoadUserCapabilitiesAction, LoadUsersAction, LoadUsersAdministrativeNotificationsAction, LoadValidationTypeAction, LoadVarsAction, LoadZsAction, LoadingOverlayComponent, LocalStorageMigrator, LocalStorageService, Localization, LocalizationModule, LocalizationResolver, LocalizationService, LocalizationState, LoginModule, LoginRequestAction, LoginService, LoginState, LoginSuccess, LogoComponent, LogoState, LogoutAction, LogoutMobileAction, LoopStatus, LowerCaseUrlSerializer, LprTransactionsChangedAction, LprTransactionsOptionsText, LprTransactionsSearchFieldSelectorText, MANUAL_ACTION_REASON_NAME_MAX_LENGTH, MAX_ALLOWED_BADGE_VALUE, MAX_ALLOWED_CURRENT_BALANCE, MAX_ALLOWED_DEDUCTION_VALUE, MAX_ALLOWED_GUEST_UNIT_QUANTITY, MAX_ALLOWED_IDENTIFIER_VALUE, MAX_ALLOWED_STARTING_PURSE_VALUE, MAX_CARDS, MAX_CAR_PLATES, MAX_EMAIL_CHARACTERS_LENGTH, MAX_EXPORT_RECORDS, MAX_HOTEL_ROOM_NUMBER_LENGTH, MAX_INT16_VALUE, MAX_INT32_VALUE, MAX_INTEGER_VALUE, MAX_LENGTH_BATCH_NAME, MAX_LENGTH_DESCRIPTION_50, MAX_LENGTH_DESCRIPTION_70, MAX_LENGTH_FOOTER, MAX_LENGTH_LEFT, MAX_LENGTH_LEFT_BACKWARD_COMPATIBILITY, MAX_LENGTH_MANUAL_TEXT, MAX_LENGTH_NAME_100, MAX_LENGTH_NAME_20, MAX_LENGTH_NAME_25, MAX_LENGTH_NAME_30, MAX_LENGTH_NAME_50, MAX_LENGTH_NOTES, MAX_LENGTH_QUANTITY, MAX_LENGTH_REASON_DESCRIPTION, MAX_LENGTH_SERACH_TERM, MAX_LENGTH_SERACH_TERM_30, MAX_MOBILE_LENGTH, MAX_NUMBER_OF_NIGHTS, MAX_NUMBER_OF_ROW_IN_MENU, MAX_OCCUPANCY_VALUE, MAX_PERIOD_TIME, MAX_PLATE_ID_LENGTH, MAX_PRICE_NO_TIME_LIMIT_VALUE, MAX_PRICE_PERIOD_VALUE, MAX_REPEAT_COUNT_VALUE, MAX_RESULTS, MAX_ROLE_NAME_LENGTH, MAX_SP, MAX_TIME_RANGE_ITEMS_PER_KEY, MC_READER_ID, MESSAGE_BAR_DEFAULT_ID, MINIMUM_DROPDOWN_RESULTS_WITHOUT_SEARCH, MINIMUM_LENGTH_OPTIONS, MINUTES_PER_HOUR, MIN_ALLOWED_GUEST_UNIT_QUANTITY, MIN_LENGTH_QUANTITY, MIN_NUMBER_OF_ROW_IN_MENU, MIN_TIME_RANGE_ITEMS_PER_KEY, MOBILE_REFRESH_INFO, MSALGuardConfigFactory, MSALInstanceFactory, MSALInterceptorConfigFactory, MSLAuthService, MULTIPLE, MainModuleToSubModulesPermissionTypeMap, MatHintErrorDirective, MaxAllowedSurchargeAmount, MaxAllowedSurchargeMaxLimit, MaxAllowedSurchargeMinLimit, MaxDisplayTimeout, MaxIPV4TextLength, MaxSurchargeNameLength, MenuAppModuleLoadAction, MenuClearAction, MenuLoadAction, MenuService, MenuSubModuleClearAction, MenuSubModuleLoadAction, MessageBarComponent, MessageBarContainerComponent, MessageBarModule, MessageBarPosition, MessageBarService, MessageBarStatus, MiddayPeriod, MinAllowedSurchargeAmount, MinAllowedSurchargeMaxLimit, MinAllowedSurchargeMinLimit, MinDisplayTimeout, MobileAppSectionLabel, MobileAuthenticateMultipleTenantsAction, MobileCommandCenterModuleResolver, MobileLogoutAction, ModalButtonsWrapperComponent, ModalService, ModuleGuard, ModuleMenuBaseComponent, MonthlyRenewalSettingsActionTypesText, MonthlyRenewalSettingsActionTypesValueText, MonthlySearchFieldSelectorText, MslEventType, NONE_ACTIVE_BYTE, NONE_USER_ID, NO_RESULT, NativeElementInjectorDirective, NotSupportedBrowserGuard, NotSupportedBrowserPageComponent, NotificationChangedAction, NotificationClass, NotificationClassficationType, NotificationCloseAllButtonComponent, NotificationConfig, NotificationEventService, NotificationHPositions, NotificationModule, NotificationSeverityText, NotificationTypeLabelComponent, NotificationTypeText, NotificationVPositions, NotificationsModule, ONE_DAY_IN_MINUTES_VALUE, ONE_MINUTE_IN_MILLISECONDS, ONE_SECOND_IN_MILLISECONDS, OffScreenDirective, OpenIdAuthInitializeService, OpenIdAuthService, OpenIdAutheticateAction, Operator, OrderBy, OrderByPipe, OrderDirection$1 as OrderDirection, OrphanFacilitiesPipe, PARKER_SEARCH_AUTO_REDIRECT, PASSWORD_EXPIRED, PASSWORD_HISTORY_COUNT_OPTIONS, PREVENT_CLICK_ELEMENT_CLASSES, ParkActivitiesModule, ParkActivitiesState, ParkActivityChangedAction, ParkConnectionStatus, ParkConnectionStatusClass, ParkConnectionStatusText, ParkManagerModule, ParkManagerState, ParkService, ParkTimeService, ParkerSearchTerm, ParkerService, ParkerState, ParkerTagsText, ParkerTypesText, PasswordScore, PasswordStrengthService, PaymentSearchFieldSelectorText, PaymentServiceTypeText, PaymentsTypesText, PermissionCacheService, PermissionConfigService, PermissionGroupText, PermissionTypeSupportedVersionDictionary, PermissionTypeText, PermissionsService, PrintReceiptAction, ProfileTypeText, RATE_ID_WITH_VALUE_2, REDIRECT_URL, RELAY_2_VALUE, RELAY_3_VALUE, RELAY_4_VALUE, RESET_PASSWORD_EMAIL, RTL_LANGUAGES, RTObjectObject, RangeModes, RangeModesText, RateModule, RateState, RealtimeEventService, RealtimeResolver, ReceiptGeneratedAction, RefreshTokenService, RefreshTokenState, RelayStatus, ReloadParkerAction, RemoteCommandService, RemoteCommandTypesIcon, RemoteValidationModule, RemoteValidationState, RemoveExpiredAlertsAndNotificationsAction, ReportCategories, ReportCategoriesText, ReportMethodDictionary, ReportSectionMenu, ResendPendingAdminInvitationsAction, ResendUserInvitationAction, ResetRatesAction, RestartLinkComponent, RestartLinkModule, RestrictionLocationTypeText, RestrictionLocationTypeTextTable, RestrictionTypeText, RevenueService, RouteService, RowOperation, rpcServiceProxies as Rpc, SESSION, STATUS_CODE_SERVER_VALIDATION, STATUS_CODE_UNAUTHORIZED, STRING_ZERO, SUPER_PARK_ROUTE_KEY, SUPPORETD_RESTORE_TICKET_TYPES, SUPPORTED_CAR_ON_LOOP_DEVICE_TYPES, SUPPORTED_DEVICES_SCHEDULER, SUPPORTED_GATE_DEVICE_TYPES, SUPPORTED_LPR_TRANSACTIONS_DEVICE_TYPES, SUPPORTED_PAYMENT_FOR_ISF_TYPES, SUPPORTED_RESTORE_TICKET_DEVICE_TYPES, SUPPORTED_STATUS_DEVICE_TYPES, SUPPORTED_TICKET_INSIDE_DEVICE_TYPES, SYSTEM_ALERT_VALUE, SearchFacilitiesMode, SearchFieldSelectorText, SearchTicketAction, SearchValueHighlightComponent, SecurityModule, SecurityState, SelectDeviceAction, SelectParkAction, SelectSmartParkAction, SelectedRowAction, SendEmailFromEntityAction, SendEmailToGuest, SendGuestPassesToEmailAction, SendTestEmailAction, ServiceProxyModule, ServicesRunningStatusChangedAction, SessionState, SessionStorageService, SetBackofficeSmartParkVersionsAction, SetBasicMenuAction, SetConflictDetected, SetDeviceEventsExpanded, SetDeviceRemoteCommandsMapAction, SetDeviceStatusAction, SetDeviceViewModeAction, SetEventActivitiesExpanded, SetFacilityRemoteCommandsMapAction, SetGuestsAction, SetLprTransactionsExpanded, SetMobileModeAction, SetParkActivitiesAction, SetRealTimeEventStatusAction, SetSearchTermAction, SetSelectedParkAction, SetSmartParkAction, SetSmartParkTableAction, SetSmartParkVersionsAction, SetSmartparkBasicAction, SetSmartparkBasicAllAction, SetStateAction, SetTFASetupAction, SetTenantUserAction, SetTicketIdentifierAction, SetUserNameAction, SetUserStatusAction, SetUsersAction, SetkeepMeLoggedInAction, SharedComponentsModule, SharedDirectivesModule, SharedModule, SharedPipesModule, SideNavSortBy, SidenavModule, SidenavState, SignalR, SignalRObject, SignalRRefreshTokenAction, SingleSignOnProviderText, SmartParkDeviceStatusChangedAction, SmartParkStatusText, SmartparkDateTimePipe, SmartparkDialogState, SmartparkModule, SmartparkService, SmartparkState, SortDevicesPipe, SortPipe, SparkNotification, SpecialDaysPipe, SpinnerDiameterSize, StaticMessageBarService, StatusIconComponent, StickerSearchFieldSelectorText, StopPropagationDirective, StringItPipe, SubModuleGuard, SubstrHightlightManyPipe, SubstrHightlightPipe, SubstrHightlightSinglePipe, SwallowUnitStatusText, SyncUsersAndRolesBySmartparkIdAction, TBFormatPipe, TBNumberDirective, TENANT_KEY, TENS_MULTIPLIER, TableRowHeightSizes, TableTypeText, TagLabelType, TenantClearAction, TenantLoadAction, TenantLogoModule, TenantService, TenantlessLoginMode, TibaDateFormat, TibaMatDialogConfig, TibaRetryPolicy, TibaValidators, TicketService, TimeAgoPipe, TimeElapsedCounterComponent, TimeElapsedFormats, TimeElapsedPipe, TimeRangeFormats, TimeRangePipe, ToggleDrawerAction, ToggleDrawerCollapseAction, TooltipPositions, TrackAction, TransientParkingActionText, TranslateLocalPipe, TreeFilterKeysPipe, TreeMode, TypeCastText, UNSAVED_DATA, USER_IS_TEMPORARY_BLOCKED, UnloadParkingLotAction, UpdateAndActivateUserAction, UpdateAuthTokenAction, UpdateBasicGuestAction, UpdateDocumentAction, UpdateGuestAction, UpdateGuestLocationAction, UpdateMobileMode, UpdateSmartparkAction, UpdateSmartparkVarAction, UpdateTenantInfoProps, UpdateTenantSingleSignOnAction, UpdateTicketPlateIdAction, UpdateUserAlertsPreferencesAction, UpdateUserNotificaitonsPreferencesAction, UpdateUserSettingsAction, UpdateUserSettingsInSessionAction, UpdateUserSettingsMobileAction, UploadLogoAction, UserCreationType, UserModule, UserSettingsModule, UserSettingsState, UserState, VALIDATION_TYPE_BY_HOURS_41, VALIDATION_TYPE_BY_HOURS_42, VALID_DATETIME_FILTERS, VALID_TIME_MAX_LENGTH, VALID_ZIP_CODE_LENGTH, VERSION, VERSION_10_1_0, VERSION_10_2_0, VERSION_10_2_1, VERSION_10_3_0, VERSION_10_3_9, VERSION_10_4_0, VERSION_25_1_0, VERSION_25_2_0, VERSION_25_2_1, VERSION_25_3_0, VERSION_25_3_1, VERSION_25_4_0, VERSION_7_4_0, VERSION_7_4_1, VERSION_8_1_0, VERSION_8_2_0, VERSION_8_3_0, VERSION_8_4_0, VERSION_9_1_0, VERSION_9_2_0, VERSION_9_2_2, VERSION_9_3_0, VERSION_9_4_0, VERSION_MOBILE_LATEST, VERSION_V1, VERSION_V2, VGuestWithBatchTableData, ValidateUserTokenAction, ValidationService, ValidationStickerType, ValidationTypeModule, ValidationTypeState, VarDirective, Verify2FactorAuthenticationAction, VersionMobileResolver, VirtualValidationStatusText, WrapFnPipe, YEAR_LIMIT_IN_DAYS, ZerofyNegativePipe, ZoneChangedAction, ZoneModule, ZoneState, accountModuleAnimation, adjustForTimezone, allowSpecialKeys, alphanumericRegex, appModuleAnimation, areDatesIdentical, areVersionsCompatible, arrayEquals, arraysAreDifferent, baseReduce, blobToBase64, buildMessageInfos, buildMessages, camelize, canceled, capitalizeFirstLetter, compareValues, convert24HoursToAmPM, convertAmPmTo24Hours, convertBinaryToDecimal, convertCentToWholeCoin, convertDecimalToBinary, convertFeaturePermissionsToDictionary, convertFormatWithoutTime, convertWholeCoinToCent, createDescriptor, createMessageText, dateDiffInSeconds, days, daysTranslation, decimalNumberRegex, decimalPercentageRegex, decimalPositiveNumberRegex, decryptClientSecret, delayCancellation, deviceIndicationStatusLocalization, deviceTypeFilterOptions, diffInMillis, dispatched, distinctObjectByProperties, distinctObjectByProperty, downloadFile, ensureObjectMetadata, entryDevicesLaneTypes, errored, exitDevicesLaneTypes, extractErrorsChanges, extractNumber, extractResetChanges, extractSetValueChanges, extractToggleStatusChanges, extractTouchedChanges, extractUpdateValueAndValidityChanges, filterDependentPermissions, filterDevicesByTypes, filterKeyValueBaseReduce, findChildRoute, findObjectDifferences, findParentElement, findParentElementDimensions, findParentRoute, findParentRouteConfig, flattenByKey, formatMinutesToTimeNumber, formatTimeToMinutes, formatTimeToString, formatTimeWithMidnight, formatTimeWithSeparator, formatTimeWithoutMidnight, formatTimeWithoutSeparator, formatTimeWithoutSeperatorAndWithMidnight, formatTimeWithoutSeperatorAndWithoutMidnight, getActivatedRoutePathSegment, getAddress, getCurrentLang, getDateTimeInSeconds, getDateWithoutTime, getDaysFromValue, getDefaultDeviceStatus, getFormattedTime, getMomenWithTime, getMomentNullable, getMomentWithoutTime, getNavigationRoute, getObjectMetadata, getParkerTypesText, getPasswordMinimalLength, getSecondsBackoff, getTooltipTextByParkerType, getUserTimeZone, getUtcMomentNullable, hasMiddayPeriod, hasMonthName, hasRequiredField, hasValue, humanizeTimeElapsed, humanizeUtcTimeElapsed, identity, initializeMsal, initializeOpenId, integerNumberRegex, integerPositiveNumberRegex, ipv4Regex, isBoolean, isCharacterLengthValid, isDefinedAndNotEmpty, isDeviceActive, isDeviceInFilterDeviceTypes, isDeviceInFiltersDeviceTypes, isFalsy, isIOSDevice, isMaxDaysRangeValid, isNullOrEmpty, isNumber, isObjectEmpty, isSearchFieldChanged, isSingularOrPlural, isTrueInBinary, isTruthy, isVersionGreaterThanEqual, loadHTMLContent, lowerCase, lowerCaseFirstLetter, mapTransientTags, markEntitiesAsChanged, markEntityAsUnchanged, matchesDeviceCriteria, matchesDeviceParkingLotCriteria, matchesDevicesParkingLotCriteria, minutesToTime, mobileRegex, nameof, navigateToForbiddenAccessPage, navigateToNotSupportedBrowserPage, noEmojiRegex, notificationAnimation, numberWithLeadingZero, objectKeystoLowerCase, ofStatus, omitKeys, openBackgroundIframe, openCloseFiltersAnimation, parentParkBaseEventTypes, parentParkEventTypes, parkBaseEventTypes, parkEventTypes, parkerEnumToText, parseApiErrorData, parseApiErrorMessage, parseDateTimeToSparkParkTime, parseSmartParkTime, passwordRegex, percentageRegex, printSpecialDaysText, printStackTrace, readjustForTimezone, regexExp, remoteCommandLocalizationMap, removeDependentPermissionIfParentMissing, replaceAll, rtEventPermissions, safeParse, searchBarPopupAnimation, setErrorMessage, shortDaysTranslation, sleep, slideFromBottom, slideFromRight, slideFromUp, slideUpDown, successful, timeToMinutes, timeToMoment, toInt, toNumberMap, toStringMap, wrapConstructor };
|
|
120405
|
+
export { ACCESS_PROFILE_DAT_TYPES_SP, ACTIVE_BYTE, ADVANCED_OPTIONS_VALUE, ADVANCED_PERMISSION_DEPENDENCIES, AES_DEFAULT_IV, ALERT_NOTIFICATION_CONTAINER, ALLOWED_FILES_FORMATS, ALLOWED_FILES_MAX_SIZE_1_MB, ALLOWED_FILES_MAX_SIZE_200_KB, ALLOWED_FILES_MAX_SIZE_2_MB, ALLOWED_FILES_MAX_SIZE_MB, ALLOWED_NUMBER_OF_DAYS, ALLOWED_UPLOAD_FILES_QUANTITY, ALL_DAYS_IN_BINARY, ALL_DAYS_IN_BYTE, AccessProfileChangeValidTypesText, AccessProfileDayTypesText, AccessProfileRestrictionTypesText, AccessProfileShortDayTypesText, AccessProfileSpecialDaysMap, AccessProfileTypesText, AccountFrameMessageBarComponent, AccountLinkedEntitiesText, AccountLinkedEntityText, AccountSetPasswordAction, AccountSetPasswordErrorAction, AccountSetPasswordInitAction, ActionStatusService, AddSmartparkAction, AddUserAction, AdministrativeNotificationEntityType, AdministrativeNotificationsModule, AdministrativeNotificationsState, AggregatedStatusText, AlertChangedAction, AlertNotificationBorderClass, AlertNotificationClassificationMap, AlertNotificationComponent, AlertNotificationService, AlertsAndNotificationsService, AlertsAndNotificationsState, AlertsDeviceTypeLabel, AlertsDeviceTypeOptions, AlertsDeviceTypeOptionsMapping, AmountStepSurchargeMinLimit, AnalyticsCommandsText, AnalyticsEventsText, AnalyticsService, AnalyticsSourceComponent, AnalyticsSourceProps, AppConfigService, AppModuleService, AppModuleToMainPermissionTypeMap, AppSectionLabel, AppSectionModuleMenu, AppSectionRoute, AppSettingsService, AppType, AuditActionTypeText, AuditLogoutAction, AuditLogoutMobileAction, AuthModule, AuthRouteGuard, AuthService, AuthTokenService, Authenticate2FAforUser, AuthenticateMultipleTenantsAction, AutofocusDirective, BOM_UNICODE, BackOfficeParkerType, BackofficeAutheticateAction, BarcodeTypeLength, BarrireStateText, BaseComponent, BaseDeviceItemComponent, BaseDeviceService, BaseFacilityCommandsConfigService, BaseFacilityCommandsService, BaseNotificationService, BillDispenserStatusText, BillTypeText, BillValidatorStatusText, ButtonStatus, CANCEL_ALL_RELAY_VALUE, CLogItPipe, COLORS, CREDIT_CARD_POSTFIX_LENGTH, CalculatorModule, CalculatorState, CanDeactivateService, CarModule, CarState, CassetteStatusText, CentToCoinPipe, ChangeLanguageAction, ChangeMobileLanguageAction, ChangePasswordAction, ChangePasswordMobileAction, ChartLayout, CleanLogoAction, ClearAdministrativeNotificationsAction, ClearAdministrativeNotificationsByEntityTypeAction, ClearAlertsAndNotificationsAction, ClearBaseZonesAction, ClearCalculatorPriceAction, ClearCategoriesAction, ClearColorsAction, ClearConflictDetected, ClearDeviceAction, ClearDeviceEventsExpanded, ClearDevicesAction, ClearEventActivitiesExpanded, ClearFacilityDictionaryAction, ClearGroupsAction, ClearGuestAction, ClearGuestProfilesAction, ClearGuestsListAction, ClearHandledGuest, ClearInactiveSelectedParkAction, ClearJobTitlesAction, ClearLocateTicketSearchAction, ClearLocatedTicketAction, ClearLprTransactionsExpanded, ClearMacroCommandsAction, ClearModelsAction, ClearParkerAction, ClearRateAction, ClearSearchResultsAction, ClearSearchTermAction, ClearSearchTicketAction, ClearSelectedFacilityAction, ClearSelectedParkAction, ClearSelectedRow, ClearSelectedSmartparkAction, ClearSmartparksBasicAction, ClearSpAndSparkVersionsAction, ClearSpecialTransientTablesAction, ClearSuspendedParkActivitiesAction, ClearUserSettingsByCategoryAction, ClearUsersAction, ClearValidationTypesAction, ClearZoneAction, ClearZonesAction, ClearZsAction, cloudServiceProxies as Cloud, CloudConfirmDialogComponent, CofCredentialSubTypeText, CoinStatusText, CollapsedGuestsByBatchIdAction, ComAggregatedStatus, ComAggregatedStatusText, ComStatusIconComponent, CommandCenterModuleResolver, CommandNotificationBorderClass, CommandNotificationComponent, CommandNotificationDisplayCase, CommandNotificationService, CommandNotificationType, CommandsLocalizationKey, CommonPagesModule, CompanyService, ConfigMobileResolver, ConfigResolver, ConnectSmartparkAction, ContainerRefDirective, CoreEntities, CouponSearchFieldSelectorText, CreateBasicBatchAction, CreateBasicGuestAction, CreateBatchAction, CreateColorAction, CreateGuestAction, CreateModelAction, CreateOrUpdateSMTPDetailsAction, CredentialTypeText, CreditCardTypeText, CrudOperationText, CurlyToBoldPipe, DATA_IMAGE_BASE64_PREFIX, DEFAULT_DATE_FORMAT, DEFAULT_EXPIRATION_MONTHS_COUNT, DEFAULT_MINIMUM_LENGTH, DEFAULT_MODULE, DEFAULT_PASSWORD_HISTORY_COUNT, DEFAULT_PERMITTED_CREDENTIALS, DEFAULT_SMART_PARK_DATE_TIME, DEFAULT_SORT_MENU, DEFAULT_STICKER_NUM, DEVICE_EVENT_OPTIONS_KEY, DEVICE_NAVIGATE_KEY, DISABLED_FOCUS_ELEMENT_CLASSES, DISABLED_FOCUS_ELEMENT_TYPES, DYNAMIC_PRICING_CONDITION, DataQaAttribute, DateService, DateValidityText, DaysText, DecimalToAmountPipe, DecimalToCurrencyPipe, DefaultImageTimeout, DeleteGuestAction, DeleteLogoAction, DeleteUserAction, DetectBrowserService, DeviceActivityChangedAction, DeviceActivityLabel, DeviceActivityMode, DeviceActivityModeText, DeviceActivityStatus, DeviceActivityType, DeviceAggregatedStatus, DeviceAggregatedStatusText, DeviceEventChangedAction, DeviceIconComponent, DeviceIndicationStatus, DeviceLaneTypes, DeviceLoop, DeviceModule, DevicePipeModule, DevicePrinterStatusText, DeviceRemoteCommandsService, DeviceSortBy, DeviceStatusBaseComponent, DeviceStatusChangedAction, DeviceTypeIconName, DeviceTypeText, DeviceTypesAlertsMapping, DevicesViewMode, DialogMode, DipSwitchStatus, Disable2FAAction, DisconnectSmartParkAction, DoorSensorStatus, DoorStatusText, DurationMessageBar, DynamicContainerComponent, DynamicEllipsisTooltipDirective, ENGLISH_LANGUAGE, ENVIRONMENT, EXPIRATION_MONTHS_COUNT_OPTIONS, edgeServiceProxies as Edge, EditUserAction, ElectronicWalletPaymentMethodTypesText, EllipsisMultilineDirective, EmailServerModule, EmailServerState, EmptyResultsComponent, Enable2FAAction, EnumsToArrayPipe, EnvironmentModeText, ErrorPageComponent, ErrorPageResolver, ErrorResultsComponent, ExceedingBehaviorTypeText, ExpandGuestsByBatchIdAction, ExportFileService, ExportGuestsAction, ExportPdfSmartparksTableAction, ExportSmartparkAction, FONT_BASE64, FacilityChangedAction, FacilityMenuService, FacilityModule, FacilityRemoteCommandExecutedAction, FacilityRemoteCommandTypesIcon, FacilityRemoteCommandsLocalizationKey, FacilityRemoteCommandsMenuItems, FacilityService, FacilityState, FieldLabelComponent, FieldValidationsComponent, FileGenerateMethod, FileSanitizerService, FileService, FilterByDeviceType, FilterDevicesByTypePipe, FilterDevicesByZonePipe, FilterKeysPipe, FilterNumbersPipe, FilterPipe, FlattenedCoreEntities, FloatMessageBarService, ForgotPasswordAction, ForgotPasswordTenantlessAction, FormValidationsComponent, FormattedInputDirective, FrequentParkingActionText, FrequentParkingErrorActionText, GATE_STATE_VALUE, GeneralActionService, GenerateSearchParamsDto, GetAllLocalizationsAction, GetAllLocalizationsMobileAction, GetLogoAction, GetMobileLogoAction, GetRateByIdAction, GetSpecialTransientTablesAction, GetUserSettingsByCategoryAction, GlobalErrorService, GlobalMessageContainerComponent, GroupPermissionsPipe, GuestModule, GuestSearchFieldSelectorText, GuestState, GuestTypeCastText, GuestTypesText, HOUR_FORMAT_12, HOUR_FORMAT_24, HOUR_FORMAT_FULL_DAY, HandleAlertsAction, HandleNotificationAction, HandledNotificationAction, HasActionErrored, HealthAction, HoldRelayMode, HoldRelayModeText, HopperStatusText, HotelGuestSearchFieldSelectorText, HttpCancelBlackListUrls, HttpCancelInterceptor, HttpCancelService, HumanizePipe, INPUT_SEARCH_DEBOUNCE_TIME, INPUT_SEARCH_DEBOUNCE_TIME_LOW, INPUT_SEARCH_DEBOUNCE_TIME_MEDIUM, IconColumnComponent, IconComponent, IconModule, IconsHelper, IconsHelperText, identityServiceProxies as Identity, ImportMonthyStastusFieldSelectorText, InitAddSmartparkConnectionAction, InitSMTPDetailsAction, InitSessionFromLocalStorageAction, InitSmartparkTransportAction, IntercomComponent, InternetConnectionService, InternetConnectionStatus, IsActionExecuting, IsEllipsisDirective, LOCAL_ENGLISH_LANGUAGE, LOCATION_OPTIONS, LOGGED_TENANT_KEY, LanguageTypeKeys, LayoutModule, LayoutState, Load2FAUserAction, LoadAccessProfileBaseZonesAction, LoadAccessProfileZoneAction, LoadAccessProfileZonesAction, LoadAccountManagementGuestGroupAction, LoadAccountManagementJobTitlesAction, LoadAdministrativeNotificationsAction, LoadAlertsAndNotificationsAction, LoadAppConfigurationAction, LoadAppConfigurationMobileAction, LoadBackofficeAppConfigurationAction, LoadBackofficeSmartparksTableAction, LoadBackofficeSpAndSparkVersionsAction, LoadBackofficeVarByIdAction, LoadBackofficeVarsAction, LoadCalculatorPriceAction, LoadCategoriesAction, LoadCcMainBaseZonesAction, LoadCcMainZonesAction, LoadColorsAction, LoadColorsAction1, LoadColorsAction2, LoadColorsAction3, LoadColorsAction4, LoadColorsAction5, LoadDeviceAction, LoadDeviceEventActivitiesAction, LoadDeviceEventsAction, LoadDeviceEventsCollapse, LoadDeviceLprTransactionsAction, LoadDeviceStatusAction, LoadDevicesAction, LoadDevicesByTypeAction, LoadDynamicPricingBaseZonesAction, LoadDynamicPricingZoneAction, LoadEventActivitiesCollapse, LoadFacilityAction, LoadFacilityRemoteCommandsRefAction, LoadGuestByIdAction, LoadGuestProfilesAction, LoadGuestsAction, LoadGuestsByBatchIdAction, LoadGuestsByBatchIdCancelledAction, LoadLocateTicketSearchAction, LoadLocatedTicketAction, LoadLprTransactionsCollapse, LoadMacroCommandsAction, LoadMobileNotificationsAction, LoadMobileSmartparksBasicAction, LoadModelsAction, LoadModelsAction1, LoadModelsAction2, LoadModelsAction3, LoadModelsAction4, LoadModelsAction5, LoadOverflowPriceTableAction, LoadParkActivitiesAction, LoadParkDevicesAction, LoadParkerAction, LoadParkersAction, LoadParkingLotAction, LoadParksAction, LoadRateByIdAction, LoadRatesAction, LoadRemoteCommandsRefAction, LoadReportsBaseZonesAction, LoadReportsGuestGroupAction, LoadReportsJobTitlesAction, LoadReportsZoneAction, LoadReportsZonesAction, LoadSMTPDetailsAction, LoadSelectedDeviceAction, LoadSmartparksAction, LoadSmartparksBasicAction, LoadSmartparksDropdownAction, LoadSmartparksTableAction, LoadSpAndSparkVersionsAction, LoadStickerPriceTableAction, LoadTicketNumParkersAction, LoadTransientPriceTableAction, LoadUserCapabilitiesAction, LoadUsersAction, LoadUsersAdministrativeNotificationsAction, LoadValidationTypeAction, LoadVarsAction, LoadZsAction, LoadingOverlayComponent, LocalStorageMigrator, LocalStorageService, Localization, LocalizationModule, LocalizationResolver, LocalizationService, LocalizationState, LoginModule, LoginRequestAction, LoginService, LoginState, LoginSuccess, LogoComponent, LogoState, LogoutAction, LogoutMobileAction, LoopStatus, LowerCaseUrlSerializer, LprTransactionsChangedAction, LprTransactionsOptionsText, LprTransactionsSearchFieldSelectorText, MANUAL_ACTION_REASON_NAME_MAX_LENGTH, MAX_ALLOWED_BADGE_VALUE, MAX_ALLOWED_CURRENT_BALANCE, MAX_ALLOWED_DEDUCTION_VALUE, MAX_ALLOWED_GUEST_UNIT_QUANTITY, MAX_ALLOWED_IDENTIFIER_VALUE, MAX_ALLOWED_STARTING_PURSE_VALUE, MAX_CARDS, MAX_CAR_PLATES, MAX_EMAIL_CHARACTERS_LENGTH, MAX_EXPORT_RECORDS, MAX_HOTEL_ROOM_NUMBER_LENGTH, MAX_INT16_VALUE, MAX_INT32_VALUE, MAX_INTEGER_VALUE, MAX_LENGTH_BATCH_NAME, MAX_LENGTH_DESCRIPTION_50, MAX_LENGTH_DESCRIPTION_70, MAX_LENGTH_FOOTER, MAX_LENGTH_LEFT, MAX_LENGTH_LEFT_BACKWARD_COMPATIBILITY, MAX_LENGTH_MANUAL_TEXT, MAX_LENGTH_NAME_100, MAX_LENGTH_NAME_20, MAX_LENGTH_NAME_25, MAX_LENGTH_NAME_30, MAX_LENGTH_NAME_50, MAX_LENGTH_NOTES, MAX_LENGTH_QUANTITY, MAX_LENGTH_REASON_DESCRIPTION, MAX_LENGTH_SERACH_TERM, MAX_LENGTH_SERACH_TERM_30, MAX_MOBILE_LENGTH, MAX_NUMBER_OF_NIGHTS, MAX_NUMBER_OF_ROW_IN_MENU, MAX_OCCUPANCY_VALUE, MAX_PERIOD_TIME, MAX_PLATE_ID_LENGTH, MAX_PRICE_NO_TIME_LIMIT_VALUE, MAX_PRICE_PERIOD_VALUE, MAX_REPEAT_COUNT_VALUE, MAX_RESULTS, MAX_ROLE_NAME_LENGTH, MAX_SP, MAX_TIME_RANGE_ITEMS_PER_KEY, MC_READER_ID, MESSAGE_BAR_DEFAULT_ID, MINIMUM_DROPDOWN_RESULTS_WITHOUT_SEARCH, MINIMUM_LENGTH_OPTIONS, MINUTES_PER_HOUR, MIN_ALLOWED_GUEST_UNIT_QUANTITY, MIN_LENGTH_QUANTITY, MIN_NUMBER_OF_ROW_IN_MENU, MIN_TIME_RANGE_ITEMS_PER_KEY, MOBILE_REFRESH_INFO, MSALGuardConfigFactory, MSALInstanceFactory, MSALInterceptorConfigFactory, MSLAuthService, MULTIPLE, MainModuleToSubModulesPermissionTypeMap, MatHintErrorDirective, MaxAllowedSurchargeAmount, MaxAllowedSurchargeMaxLimit, MaxAllowedSurchargeMinLimit, MaxDisplayTimeout, MaxIPV4TextLength, MaxSurchargeNameLength, MenuAppModuleLoadAction, MenuClearAction, MenuLoadAction, MenuService, MenuSubModuleClearAction, MenuSubModuleLoadAction, MessageBarComponent, MessageBarContainerComponent, MessageBarModule, MessageBarPosition, MessageBarService, MessageBarStatus, MiddayPeriod, MinAllowedSurchargeAmount, MinAllowedSurchargeMaxLimit, MinAllowedSurchargeMinLimit, MinDisplayTimeout, MobileAppSectionLabel, MobileAuthenticateMultipleTenantsAction, MobileCommandCenterModuleResolver, MobileLogoutAction, ModalButtonsWrapperComponent, ModalService, ModuleGuard, ModuleMenuBaseComponent, MonthlyRenewalSettingsActionTypesText, MonthlyRenewalSettingsActionTypesValueText, MonthlySearchFieldSelectorText, MslEventType, NONE_ACTIVE_BYTE, NONE_USER_ID, NO_RESULT, NativeElementInjectorDirective, NotSupportedBrowserGuard, NotSupportedBrowserPageComponent, NotificationChangedAction, NotificationClass, NotificationClassficationType, NotificationCloseAllButtonComponent, NotificationConfig, NotificationEventService, NotificationHPositions, NotificationModule, NotificationSeverityText, NotificationTypeLabelComponent, NotificationTypeText, NotificationVPositions, NotificationsModule, ONE_DAY_IN_MINUTES_VALUE, ONE_MINUTE_IN_MILLISECONDS, ONE_SECOND_IN_MILLISECONDS, OffScreenDirective, OpenIdAuthInitializeService, OpenIdAuthService, OpenIdAutheticateAction, Operator, OrderBy, OrderByPipe, OrderDirection$1 as OrderDirection, OrphanFacilitiesPipe, PARKER_SEARCH_AUTO_REDIRECT, PASSWORD_EXPIRED, PASSWORD_HISTORY_COUNT_OPTIONS, PREVENT_CLICK_ELEMENT_CLASSES, ParkActivitiesModule, ParkActivitiesState, ParkActivityChangedAction, ParkConnectionStatus, ParkConnectionStatusClass, ParkConnectionStatusText, ParkManagerModule, ParkManagerState, ParkService, ParkTimeService, ParkerSearchTerm, ParkerService, ParkerState, ParkerTagsText, ParkerTypesText, PasswordScore, PasswordStrengthService, PaymentSearchFieldSelectorText, PaymentServiceTypeText, PaymentsTypesText, PermissionCacheService, PermissionConfigService, PermissionGroupText, PermissionTypeSupportedVersionDictionary, PermissionTypeText, PermissionsService, PrintReceiptAction, ProfileTypeText, RATE_ID_WITH_VALUE_2, REDIRECT_URL, RELAY_2_VALUE, RELAY_3_VALUE, RELAY_4_VALUE, RESET_PASSWORD_EMAIL, RTL_LANGUAGES, RTObjectObject, RangeModes, RangeModesText, RateModule, RateState, RealtimeEventService, RealtimeResolver, ReceiptGeneratedAction, RefreshTokenService, RefreshTokenState, RelayStatus, ReloadParkerAction, RemoteCommandService, RemoteCommandTypesIcon, RemoteValidationModule, RemoteValidationState, RemoveExpiredAlertsAndNotificationsAction, ReportCategories, ReportCategoriesText, ReportMethodDictionary, ReportSectionMenu, ResendPendingAdminInvitationsAction, ResendUserInvitationAction, ResetRatesAction, RestartLinkComponent, RestartLinkModule, RestrictionLocationTypeText, RestrictionLocationTypeTextTable, RestrictionTypeText, RevenueService, RouteService, RowOperation, rpcServiceProxies as Rpc, SESSION, STATUS_CODE_SERVER_VALIDATION, STATUS_CODE_UNAUTHORIZED, STRING_ZERO, SUPER_PARK_ROUTE_KEY, SUPPORETD_RESTORE_TICKET_TYPES, SUPPORTED_CAR_ON_LOOP_DEVICE_TYPES, SUPPORTED_DEVICES_SCHEDULER, SUPPORTED_GATE_DEVICE_TYPES, SUPPORTED_LPR_TRANSACTIONS_DEVICE_TYPES, SUPPORTED_PAYMENT_FOR_ISF_TYPES, SUPPORTED_RESTORE_TICKET_DEVICE_TYPES, SUPPORTED_STATUS_DEVICE_TYPES, SUPPORTED_TICKET_INSIDE_DEVICE_TYPES, SYSTEM_ALERT_VALUE, SearchFacilitiesMode, SearchFieldSelectorText, SearchTicketAction, SearchValueHighlightComponent, SecurityModule, SecurityState, SelectDeviceAction, SelectParkAction, SelectSmartParkAction, SelectedRowAction, SendEmailFromEntityAction, SendEmailToGuest, SendGuestPassesToEmailAction, SendTestEmailAction, ServiceProxyModule, ServicesRunningStatusChangedAction, SessionState, SessionStorageService, SetBackofficeSmartParkVersionsAction, SetBasicMenuAction, SetConflictDetected, SetDeviceEventsExpanded, SetDeviceRemoteCommandsMapAction, SetDeviceStatusAction, SetDeviceViewModeAction, SetEventActivitiesExpanded, SetFacilityRemoteCommandsMapAction, SetGuestsAction, SetLprTransactionsExpanded, SetMobileModeAction, SetParkActivitiesAction, SetRealTimeEventStatusAction, SetSearchTermAction, SetSelectedParkAction, SetSmartParkAction, SetSmartParkTableAction, SetSmartParkVersionsAction, SetSmartparkBasicAction, SetSmartparkBasicAllAction, SetStateAction, SetTFASetupAction, SetTenantUserAction, SetTicketIdentifierAction, SetUserNameAction, SetUserStatusAction, SetUsersAction, SetkeepMeLoggedInAction, SharedComponentsModule, SharedDirectivesModule, SharedModule, SharedPipesModule, SideNavSortBy, SidenavModule, SidenavState, SignalR, SignalRObject, SignalRRefreshTokenAction, SingleSignOnProviderText, SmartParkDeviceStatusChangedAction, SmartParkStatusText, SmartparkDateTimePipe, SmartparkDialogState, SmartparkModule, SmartparkService, SmartparkState, SortDevicesPipe, SortPipe, SparkNotification, SpecialDaysPipe, SpinnerDiameterSize, StaticMessageBarService, StatusIconComponent, StickerSearchFieldSelectorText, StopPropagationDirective, StringItPipe, SubModuleGuard, SubstrHightlightManyPipe, SubstrHightlightPipe, SubstrHightlightSinglePipe, SwallowUnitStatusText, SyncUsersAndRolesBySmartparkIdAction, TBFormatPipe, TBNumberDirective, TENANT_KEY, TENS_MULTIPLIER, TableRowHeightSizes, TableTypeText, TagLabelType, TenantClearAction, TenantLoadAction, TenantLogoModule, TenantService, TenantlessLoginMode, TibaDateFormat, TibaMatDialogConfig, TibaRetryPolicy, TibaValidators, TicketService, TimeAgoPipe, TimeElapsedCounterComponent, TimeElapsedFormats, TimeElapsedPipe, TimeRangeFormats, TimeRangePipe, ToggleDrawerAction, ToggleDrawerCollapseAction, TooltipPositions, TrackAction, TransientParkingActionText, TranslateLocalPipe, TreeFilterKeysPipe, TreeMode, TypeCastText, UNSAVED_DATA, USER_IS_TEMPORARY_BLOCKED, UnloadParkingLotAction, UpdateAndActivateUserAction, UpdateAuthTokenAction, UpdateBasicGuestAction, UpdateDocumentAction, UpdateGuestAction, UpdateGuestLocationAction, UpdateMobileMode, UpdateSmartparkAction, UpdateSmartparkVarAction, UpdateTenantInfoProps, UpdateTenantSingleSignOnAction, UpdateTicketPlateIdAction, UpdateUserAlertsPreferencesAction, UpdateUserNotificaitonsPreferencesAction, UpdateUserSettingsAction, UpdateUserSettingsInSessionAction, UpdateUserSettingsMobileAction, UploadLogoAction, UserCreationType, UserModule, UserSettingsModule, UserSettingsState, UserState, VALIDATION_TYPE_BY_HOURS_41, VALIDATION_TYPE_BY_HOURS_42, VALID_DATETIME_FILTERS, VALID_TIME_MAX_LENGTH, VALID_ZIP_CODE_LENGTH, VERSION, VERSION_10_1_0, VERSION_10_2_0, VERSION_10_2_1, VERSION_10_3_0, VERSION_10_3_9, VERSION_10_4_0, VERSION_25_1_0, VERSION_25_2_0, VERSION_25_2_1, VERSION_25_3_0, VERSION_25_3_1, VERSION_25_4_0, VERSION_7_4_0, VERSION_7_4_1, VERSION_8_1_0, VERSION_8_2_0, VERSION_8_3_0, VERSION_8_4_0, VERSION_9_1_0, VERSION_9_2_0, VERSION_9_2_2, VERSION_9_3_0, VERSION_9_4_0, VERSION_MOBILE_LATEST, VERSION_V1, VERSION_V2, VGuestWithBatchTableData, ValidateUserTokenAction, ValidationService, ValidationStickerType, ValidationTypeModule, ValidationTypeState, VarDirective, Verify2FactorAuthenticationAction, VersionMobileResolver, VirtualValidationStatusText, WrapFnPipe, YEAR_LIMIT_IN_DAYS, ZerofyNegativePipe, ZoneChangedAction, ZoneModule, ZoneState, accountModuleAnimation, adjustForTimezone, allowSpecialKeys, alphanumericRegex, appModuleAnimation, areDatesIdentical, areVersionsCompatible, arrayEquals, arraysAreDifferent, baseReduce, blobToBase64, buildMessageInfos, buildMessages, camelize, canceled, capitalizeFirstLetter, compareValues, convert24HoursToAmPM, convertAmPmTo24Hours, convertBinaryToDecimal, convertCentToWholeCoin, convertDecimalToBinary, convertFeaturePermissionsToDictionary, convertFormatWithoutTime, convertWholeCoinToCent, createDescriptor, createMessageText, dateDiffInSeconds, days, daysTranslation, decimalNumberRegex, decimalPercentageRegex, decimalPositiveNumberRegex, decryptClientSecret, delayCancellation, deviceIndicationStatusLocalization, deviceTypeFilterOptions, diffInMillis, dispatched, distinctObjectByProperties, distinctObjectByProperty, downloadFile, ensureObjectMetadata, entryDevicesLaneTypes, errored, exitDevicesLaneTypes, extractErrorsChanges, extractNumber, extractResetChanges, extractSetValueChanges, extractToggleStatusChanges, extractTouchedChanges, extractUpdateValueAndValidityChanges, filterDependentPermissions, filterDevicesByTypes, filterKeyValueBaseReduce, findChildRoute, findObjectDifferences, findParentElement, findParentElementDimensions, findParentRoute, findParentRouteConfig, flattenByKey, formatMinutesToTimeNumber, formatTimeToMinutes, formatTimeToString, formatTimeWithMidnight, formatTimeWithSeparator, formatTimeWithoutMidnight, formatTimeWithoutSeparator, formatTimeWithoutSeperatorAndWithMidnight, formatTimeWithoutSeperatorAndWithoutMidnight, getActivatedRoutePathSegment, getAddress, getCurrentLang, getDateTimeInSeconds, getDateWithoutTime, getDaysFromValue, getDefaultDeviceStatus, getFormattedTime, getMomenWithTime, getMomentNullable, getMomentWithoutTime, getNavigationRoute, getObjectMetadata, getParkerTypesText, getPasswordMinimalLength, getSecondsBackoff, getTooltipTextByParkerType, getUserTimeZone, getUtcMomentNullable, hasMiddayPeriod, hasMonthName, hasRequiredField, hasValue, humanizeTimeElapsed, humanizeUtcTimeElapsed, identity, initializeMsal, initializeOpenId, integerNumberRegex, integerPositiveNumberRegex, ipv4Regex, isBoolean, isCharacterLengthValid, isDefinedAndNotEmpty, isDeviceActive, isDeviceInFilterDeviceTypes, isDeviceInFiltersDeviceTypes, isFalsy, isIOSDevice, isMaxDaysRangeValid, isNullOrEmpty, isNumber, isObjectEmpty, isSearchFieldChanged, isSingularOrPlural, isTrueInBinary, isTruthy, isVersionGreaterThanEqual, loadHTMLContent, lowerCase, lowerCaseFirstLetter, mapTransientTags, markEntitiesAsChanged, markEntityAsUnchanged, matchesDeviceCriteria, matchesDeviceParkingLotCriteria, matchesDevicesParkingLotCriteria, minutesToTime, mobileRegex, nameof, navigateToForbiddenAccessPage, navigateToNotSupportedBrowserPage, noEmojiRegex, notificationAnimation, numberWithLeadingZero, objectKeystoLowerCase, ofStatus, omitKeys, openBackgroundIframe, openCloseFiltersAnimation, parentParkBaseEventTypes, parentParkEventTypes, parkBaseEventTypes, parkEventTypes, parkerEnumToText, parseApiErrorData, parseApiErrorMessage, parseDateTimeToSparkParkTime, parseSmartParkTime, passwordRegex, percentageRegex, printSpecialDaysText, printStackTrace, readjustForTimezone, regexExp, remoteCommandLocalizationMap, replaceAll, rtEventPermissions, safeParse, searchBarPopupAnimation, setErrorMessage, shortDaysTranslation, sleep, slideFromBottom, slideFromRight, slideFromUp, slideUpDown, successful, timeToMinutes, timeToMoment, toInt, toNumberMap, toStringMap, wrapConstructor };
|
|
120405
120406
|
//# sourceMappingURL=tiba-spark-client-shared-lib.mjs.map
|