valtech-components 2.0.892 → 2.0.893

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.
@@ -46,6 +46,7 @@ export class AuthStateService {
46
46
  handle: state.handle ?? undefined,
47
47
  avatarUrl: state.avatarUrl ?? undefined,
48
48
  phone: state.phone ?? undefined,
49
+ activeOrg: state.activeOrg ?? undefined,
49
50
  roles: state.roles,
50
51
  permissions: state.permissions,
51
52
  isSuperAdmin: state.isSuperAdmin,
@@ -180,6 +181,16 @@ export class AuthStateService {
180
181
  email,
181
182
  }));
182
183
  }
184
+ /**
185
+ * Actualiza la organización activa del usuario.
186
+ * Invocado tras parsear el JWT (claim "org") o tras switchOrg exitoso.
187
+ */
188
+ updateActiveOrg(activeOrg) {
189
+ this._state.update(s => ({
190
+ ...s,
191
+ activeOrg,
192
+ }));
193
+ }
183
194
  /**
184
195
  * Hidrata el state con campos del profile (nombre, handle, avatar, phone).
185
196
  * Invocado tras `getProfile()` o `updateProfile()` para que consumers de
@@ -204,4 +215,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
204
215
  type: Injectable,
205
216
  args: [{ providedIn: 'root' }]
206
217
  }] });
207
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC1zdGF0ZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zZXJ2aWNlcy9hdXRoL2F1dGgtc3RhdGUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUtMLGtCQUFrQixFQUNsQixpQkFBaUIsR0FFbEIsTUFBTSxTQUFTLENBQUM7O0FBRWpCOzs7R0FHRztBQUVILE1BQU0sT0FBTyxnQkFBZ0I7SUFEN0I7UUFFRSxvREFBb0Q7UUFDNUMsV0FBTSxHQUFHLE1BQU0sQ0FBWSxrQkFBa0IsQ0FBQyxDQUFDO1FBQy9DLGdCQUFXLEdBQUcsTUFBTSxDQUFrQixpQkFBaUIsQ0FBQyxDQUFDO1FBRWpFLGdEQUFnRDtRQUNoRCw4QkFBOEI7UUFDOUIsZ0RBQWdEO1FBRWhELHVDQUF1QztRQUM5QixVQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUUxQyw4QkFBOEI7UUFDckIsZUFBVSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxFQUFFLENBQUM7UUFFcEQsK0JBQStCO1FBQ3RCLG9CQUFlLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUV6RSxzQkFBc0I7UUFDYixjQUFTLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUU3RCxzQkFBc0I7UUFDYixnQkFBVyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFakUsd0JBQXdCO1FBQ2YsVUFBSyxHQUFHLFFBQVEs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Q04sQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSCxtQkFBbUIsQ0FBQyxNQUtuQjtRQUNDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUN2QixHQUFHLENBQUM7WUFDSixHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxTQUFTLElBQUksRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3ZELEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxLQUFLLFNBQVMsSUFBSSxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDN0QsR0FBRyxDQUFDLE1BQU0sQ0FBQyxTQUFTLEtBQUssU0FBUyxJQUFJLEVBQUUsU0FBUyxFQUFFLE1BQU0sQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUN0RSxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUssS0FBSyxTQUFTLElBQUksRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO1NBQzNELENBQUMsQ0FBQyxDQUFDO0lBQ04sQ0FBQzsrR0F0T1UsZ0JBQWdCO21IQUFoQixnQkFBZ0IsY0FESCxNQUFNOzs0RkFDbkIsZ0JBQWdCO2tCQUQ1QixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIHNpZ25hbCwgY29tcHV0ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEF1dGhTdGF0ZSxcbiAgQXV0aFVzZXIsXG4gIEF1dGhFcnJvcixcbiAgTUZBUGVuZGluZ1N0YXRlLFxuICBJTklUSUFMX0FVVEhfU1RBVEUsXG4gIElOSVRJQUxfTUZBX1NUQVRFLFxuICBTdG9yZWRBdXRoU3RhdGUsXG59IGZyb20gJy4vdHlwZXMnO1xuXG4vKipcbiAqIFNlcnZpY2lvIHBhcmEgbWFuZWpvIGRlIGVzdGFkbyBkZSBhdXRlbnRpY2FjacOzbiBjb24gQW5ndWxhciBTaWduYWxzLlxuICogUHJvcG9yY2lvbmEgZXN0YWRvIHJlYWN0aXZvIGlubXV0YWJsZS5cbiAqL1xuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBBdXRoU3RhdGVTZXJ2aWNlIHtcbiAgLy8gRXN0YWRvIGludGVybm8gKG11dGFibGUgc29sbyBkZW50cm8gZGVsIHNlcnZpY2lvKVxuICBwcml2YXRlIF9zdGF0ZSA9IHNpZ25hbDxBdXRoU3RhdGU+KElOSVRJQUxfQVVUSF9TVEFURSk7XG4gIHByaXZhdGUgX21mYVBlbmRpbmcgPSBzaWduYWw8TUZBUGVuZGluZ1N0YXRlPihJTklUSUFMX01GQV9TVEFURSk7XG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIFNpZ25hbHMgcMO6YmxpY29zIChyZWFkb25seSlcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLyoqIEVzdGFkbyBjb21wbGV0byBkZSBhdXRlbnRpY2FjacOzbiAqL1xuICByZWFkb25seSBzdGF0ZSA9IHRoaXMuX3N0YXRlLmFzUmVhZG9ubHkoKTtcblxuICAvKiogRXN0YWRvIGRlIE1GQSBwZW5kaWVudGUgKi9cbiAgcmVhZG9ubHkgbWZhUGVuZGluZyA9IHRoaXMuX21mYVBlbmRpbmcuYXNSZWFkb25seSgpO1xuXG4gIC8qKiBVc3VhcmlvIGVzdMOhIGF1dGVudGljYWRvICovXG4gIHJlYWRvbmx5IGlzQXV0aGVudGljYXRlZCA9IGNvbXB1dGVkKCgpID0+IHRoaXMuX3N0YXRlKCkuaXNBdXRoZW50aWNhdGVkKTtcblxuICAvKiogRXN0YWRvIGRlIGNhcmdhICovXG4gIHJlYWRvbmx5IGlzTG9hZGluZyA9IGNvbXB1dGVkKCgpID0+IHRoaXMuX3N0YXRlKCkuaXNMb2FkaW5nKTtcblxuICAvKiogVG9rZW4gZGUgYWNjZXNvICovXG4gIHJlYWRvbmx5IGFjY2Vzc1Rva2VuID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5fc3RhdGUoKS5hY2Nlc3NUb2tlbik7XG5cbiAgLyoqIFJvbGVzIGRlbCB1c3VhcmlvICovXG4gIHJlYWRvbmx5IHJvbGVzID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5fc3RhdGUoKS5yb2xlcyk7XG5cbiAgLyoqIFBlcm1pc29zIGRlbCB1c3VhcmlvICovXG4gIHJlYWRvbmx5IHBlcm1pc3Npb25zID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5fc3RhdGUoKS5wZXJtaXNzaW9ucyk7XG5cbiAgLyoqIFVzdWFyaW8gZXMgc3VwZXIgYWRtaW4gKi9cbiAgcmVhZG9ubHkgaXNTdXBlckFkbWluID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5fc3RhdGUoKS5pc1N1cGVyQWRtaW4pO1xuXG4gIC8qKiBVc3VhcmlvIHRpZW5lIHN1c2NyaXBjacOzbiBwcmVtaXVtIGFjdGl2YSAobm8gdmUgYWRzKSAqL1xuICByZWFkb25seSBpc1ByZW1pdW0gPSBjb21wdXRlZCgoKSA9PiB0aGlzLl9zdGF0ZSgpLmlzUHJlbWl1bSk7XG5cbiAgLyoqIEVycm9yIGFjdHVhbCAqL1xuICByZWFkb25seSBlcnJvciA9IGNvbXB1dGVkKCgpID0+IHRoaXMuX3N0YXRlKCkuZXJyb3IpO1xuXG4gIC8qKiBJbmZvcm1hY2nDs24gZGVsIHVzdWFyaW8gKi9cbiAgcmVhZG9ubHkgdXNlciA9IGNvbXB1dGVkPEF1dGhVc2VyIHwgbnVsbD4oKCkgPT4ge1xuICAgIGNvbnN0IHN0YXRlID0gdGhpcy5fc3RhdGUoKTtcbiAgICBpZiAoIXN0YXRlLmlzQXV0aGVudGljYXRlZCB8fCAhc3RhdGUudXNlcklkKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIHVzZXJJZDogc3RhdGUudXNlcklkLFxuICAgICAgZW1haWw6IHN0YXRlLmVtYWlsIHx8ICcnLFxuICAgICAgbmFtZTogc3RhdGUubmFtZSA/PyB1bmRlZmluZWQsXG4gICAgICBoYW5kbGU6IHN0YXRlLmhhbmRsZSA/PyB1bmRlZmluZWQsXG4gICAgICBhdmF0YXJVcmw6IHN0YXRlLmF2YXRhclVybCA/PyB1bmRlZmluZWQsXG4gICAgICBwaG9uZTogc3RhdGUucGhvbmUgPz8gdW5kZWZpbmVkLFxuICAgICAgcm9sZXM6IHN0YXRlLnJvbGVzLFxuICAgICAgcGVybWlzc2lvbnM6IHN0YXRlLnBlcm1pc3Npb25zLFxuICAgICAgaXNTdXBlckFkbWluOiBzdGF0ZS5pc1N1cGVyQWRtaW4sXG4gICAgfTtcbiAgfSk7XG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIE3DqXRvZG9zIGRlIGFjdHVhbGl6YWNpw7NuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIC8qKlxuICAgKiBFc3RhYmxlY2UgZWwgZXN0YWRvIGRlIGNhcmdhLlxuICAgKi9cbiAgc2V0TG9hZGluZyhpc0xvYWRpbmc6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLl9zdGF0ZS51cGRhdGUocyA9PiAoeyAuLi5zLCBpc0xvYWRpbmcgfSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEVzdGFibGVjZSBlbCBlc3RhZG8gZGUgYXV0ZW50aWNhY2nDs24gZXhpdG9zYS5cbiAgICovXG4gIHNldEF1dGhlbnRpY2F0ZWQoZGF0YToge1xuICAgIGFjY2Vzc1Rva2VuOiBzdHJpbmc7XG4gICAgcmVmcmVzaFRva2VuOiBzdHJpbmc7XG4gICAgdXNlcklkPzogc3RyaW5nO1xuICAgIGVtYWlsPzogc3RyaW5nO1xuICAgIHJvbGVzOiBzdHJpbmdbXTtcbiAgICBwZXJtaXNzaW9uczogc3RyaW5nW107XG4gICAgaXNTdXBlckFkbWluOiBib29sZWFuO1xuICAgIGlzUHJlbWl1bT86IGJvb2xlYW47XG4gICAgZXhwaXJlc0F0OiBudW1iZXI7XG4gIH0pOiB2b2lkIHtcbiAgICB0aGlzLl9zdGF0ZS5zZXQoe1xuICAgICAgaXNBdXRoZW50aWNhdGVkOiB0cnVlLFxuICAgICAgaXNMb2FkaW5nOiBmYWxzZSxcbiAgICAgIGFjY2Vzc1Rva2VuOiBkYXRhLmFjY2Vzc1Rva2VuLFxuICAgICAgcmVmcmVzaFRva2VuOiBkYXRhLnJlZnJlc2hUb2tlbixcbiAgICAgIHVzZXJJZDogZGF0YS51c2VySWQgfHwgbnVsbCxcbiAgICAgIGVtYWlsOiBkYXRhLmVtYWlsIHx8IG51bGwsXG4gICAgICByb2xlczogZGF0YS5yb2xlcyxcbiAgICAgIHBlcm1pc3Npb25zOiBkYXRhLnBlcm1pc3Npb25zLFxuICAgICAgaXNTdXBlckFkbWluOiBkYXRhLmlzU3VwZXJBZG1pbixcbiAgICAgIGlzUHJlbWl1bTogZGF0YS5pc1ByZW1pdW0gfHwgZmFsc2UsXG4gICAgICBleHBpcmVzQXQ6IGRhdGEuZXhwaXJlc0F0LFxuICAgICAgZXJyb3I6IG51bGwsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQWN0dWFsaXphIHNvbG8gZWwgYWNjZXNzIHRva2VuIChkZXNwdcOpcyBkZSByZWZyZXNoKS5cbiAgICovXG4gIHVwZGF0ZUFjY2Vzc1Rva2VuKGFjY2Vzc1Rva2VuOiBzdHJpbmcsIGV4cGlyZXNJbjogbnVtYmVyKTogdm9pZCB7XG4gICAgY29uc3QgZXhwaXJlc0F0ID0gRGF0ZS5ub3coKSArIGV4cGlyZXNJbiAqIDEwMDA7XG4gICAgdGhpcy5fc3RhdGUudXBkYXRlKHMgPT4gKHtcbiAgICAgIC4uLnMsXG4gICAgICBhY2Nlc3NUb2tlbixcbiAgICAgIGV4cGlyZXNBdCxcbiAgICB9KSk7XG4gIH1cblxuICAvKipcbiAgICogQWN0dWFsaXphIGVsIHJlZnJlc2ggdG9rZW4gKHRva2VuIHJvdGF0aW9uKS5cbiAgICovXG4gIHVwZGF0ZVJlZnJlc2hUb2tlbihyZWZyZXNoVG9rZW46IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuX3N0YXRlLnVwZGF0ZShzID0+ICh7XG4gICAgICAuLi5zLFxuICAgICAgcmVmcmVzaFRva2VuLFxuICAgIH0pKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBY3R1YWxpemEgbG9zIHBlcm1pc29zLlxuICAgKi9cbiAgdXBkYXRlUGVybWlzc2lvbnMocm9sZXM6IHN0cmluZ1tdLCBwZXJtaXNzaW9uczogc3RyaW5nW10sIGlzU3VwZXJBZG1pbjogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuX3N0YXRlLnVwZGF0ZShzID0+ICh7XG4gICAgICAuLi5zLFxuICAgICAgcm9sZXMsXG4gICAgICBwZXJtaXNzaW9ucyxcbiAgICAgIGlzU3VwZXJBZG1pbixcbiAgICB9KSk7XG4gIH1cblxuICAvKipcbiAgICogRXN0YWJsZWNlIHVuIGVycm9yIGRlIGF1dGVudGljYWNpw7NuLlxuICAgKi9cbiAgc2V0RXJyb3IoZXJyb3I6IEF1dGhFcnJvcik6IHZvaWQge1xuICAgIHRoaXMuX3N0YXRlLnVwZGF0ZShzID0+ICh7XG4gICAgICAuLi5zLFxuICAgICAgZXJyb3IsXG4gICAgICBpc0xvYWRpbmc6IGZhbHNlLFxuICAgIH0pKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMaW1waWEgZWwgZXJyb3IuXG4gICAqL1xuICBjbGVhckVycm9yKCk6IHZvaWQge1xuICAgIHRoaXMuX3N0YXRlLnVwZGF0ZShzID0+ICh7XG4gICAgICAuLi5zLFxuICAgICAgZXJyb3I6IG51bGwsXG4gICAgfSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEVzdGFibGVjZSBlc3RhZG8gZGUgTUZBIHBlbmRpZW50ZS5cbiAgICovXG4gIHNldE1GQVBlbmRpbmcobWZhU3RhdGU6IE1GQVBlbmRpbmdTdGF0ZSk6IHZvaWQge1xuICAgIHRoaXMuX21mYVBlbmRpbmcuc2V0KG1mYVN0YXRlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMaW1waWEgZWwgZXN0YWRvIGRlIE1GQSBwZW5kaWVudGUuXG4gICAqL1xuICBjbGVhck1GQVBlbmRpbmcoKTogdm9pZCB7XG4gICAgdGhpcy5fbWZhUGVuZGluZy5zZXQoSU5JVElBTF9NRkFfU1RBVEUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlc2V0ZWEgdG9kbyBlbCBlc3RhZG8gYSB2YWxvcmVzIGluaWNpYWxlcy5cbiAgICovXG4gIHJlc2V0KCk6IHZvaWQge1xuICAgIHRoaXMuX3N0YXRlLnNldChJTklUSUFMX0FVVEhfU1RBVEUpO1xuICAgIHRoaXMuX21mYVBlbmRpbmcuc2V0KElOSVRJQUxfTUZBX1NUQVRFKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXN0YXVyYSBlc3RhZG8gZGVzZGUgZGF0b3MgYWxtYWNlbmFkb3MuXG4gICAqL1xuICByZXN0b3JlRnJvbVN0b3JhZ2Uoc3RvcmVkOiBQYXJ0aWFsPFN0b3JlZEF1dGhTdGF0ZT4pOiB2b2lkIHtcbiAgICBpZiAoc3RvcmVkLmFjY2Vzc1Rva2VuKSB7XG4gICAgICB0aGlzLl9zdGF0ZS5zZXQoe1xuICAgICAgICBpc0F1dGhlbnRpY2F0ZWQ6IHRydWUsXG4gICAgICAgIGlzTG9hZGluZzogZmFsc2UsXG4gICAgICAgIGFjY2Vzc1Rva2VuOiBzdG9yZWQuYWNjZXNzVG9rZW4sXG4gICAgICAgIHJlZnJlc2hUb2tlbjogc3RvcmVkLnJlZnJlc2hUb2tlbiB8fCBudWxsLFxuICAgICAgICB1c2VySWQ6IG51bGwsIC8vIFNlIGV4dHJhZXLDoSBkZWwgdG9rZW5cbiAgICAgICAgZW1haWw6IG51bGwsIC8vIFNlIGV4dHJhZXLDoSBkZWwgdG9rZW5cbiAgICAgICAgcm9sZXM6IHN0b3JlZC5yb2xlcyB8fCBbXSxcbiAgICAgICAgcGVybWlzc2lvbnM6IHN0b3JlZC5wZXJtaXNzaW9ucyB8fCBbXSxcbiAgICAgICAgaXNTdXBlckFkbWluOiBzdG9yZWQuaXNTdXBlckFkbWluIHx8IGZhbHNlLFxuICAgICAgICBpc1ByZW1pdW06IHN0b3JlZC5pc1ByZW1pdW0gfHwgZmFsc2UsXG4gICAgICAgIGV4cGlyZXNBdDogc3RvcmVkLmV4cGlyZXNBdCB8fCBudWxsLFxuICAgICAgICBlcnJvcjogbnVsbCxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBBY3R1YWxpemEgZWwgdXNlcklkIHkgZW1haWwgKGRlc3B1w6lzIGRlIHBhcnNlYXIgZWwgdG9rZW4pLlxuICAgKi9cbiAgdXBkYXRlVXNlckluZm8odXNlcklkOiBzdHJpbmcsIGVtYWlsOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLl9zdGF0ZS51cGRhdGUocyA9PiAoe1xuICAgICAgLi4ucyxcbiAgICAgIHVzZXJJZCxcbiAgICAgIGVtYWlsLFxuICAgIH0pKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBIaWRyYXRhIGVsIHN0YXRlIGNvbiBjYW1wb3MgZGVsIHByb2ZpbGUgKG5vbWJyZSwgaGFuZGxlLCBhdmF0YXIsIHBob25lKS5cbiAgICogSW52b2NhZG8gdHJhcyBgZ2V0UHJvZmlsZSgpYCBvIGB1cGRhdGVQcm9maWxlKClgIHBhcmEgcXVlIGNvbnN1bWVycyBkZVxuICAgKiBgYXV0aC51c2VyKClgIHZlYW4gbG9zIGNhbXBvcyBlbnJpY2hlZCBhdXRvbcOhdGljYW1lbnRlLlxuICAgKlxuICAgKiBDdWFscXVpZXIgY2FtcG8gYHVuZGVmaW5lZGAgc2UgaWdub3JhIChubyBzb2JyZXNjcmliZSBjb24gbnVsbCkuIENhbXBvc1xuICAgKiBgbnVsbGAgZXhwbMOtY2l0b3Mgc2UgcGVyc2lzdGVuIChzaWduYWwgZGUgXCJsaW1waWFkb1wiKS5cbiAgICovXG4gIHVwZGF0ZVByb2ZpbGVGaWVsZHMoZmllbGRzOiB7XG4gICAgbmFtZT86IHN0cmluZyB8IG51bGw7XG4gICAgaGFuZGxlPzogc3RyaW5nIHwgbnVsbDtcbiAgICBhdmF0YXJVcmw/OiBzdHJpbmcgfCBudWxsO1xuICAgIHBob25lPzogc3RyaW5nIHwgbnVsbDtcbiAgfSk6IHZvaWQge1xuICAgIHRoaXMuX3N0YXRlLnVwZGF0ZShzID0+ICh7XG4gICAgICAuLi5zLFxuICAgICAgLi4uKGZpZWxkcy5uYW1lICE9PSB1bmRlZmluZWQgJiYgeyBuYW1lOiBmaWVsZHMubmFtZSB9KSxcbiAgICAgIC4uLihmaWVsZHMuaGFuZGxlICE9PSB1bmRlZmluZWQgJiYgeyBoYW5kbGU6IGZpZWxkcy5oYW5kbGUgfSksXG4gICAgICAuLi4oZmllbGRzLmF2YXRhclVybCAhPT0gdW5kZWZpbmVkICYmIHsgYXZhdGFyVXJsOiBmaWVsZHMuYXZhdGFyVXJsIH0pLFxuICAgICAgLi4uKGZpZWxkcy5waG9uZSAhPT0gdW5kZWZpbmVkICYmIHsgcGhvbmU6IGZpZWxkcy5waG9uZSB9KSxcbiAgICB9KSk7XG4gIH1cbn1cbiJdfQ==
218
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC1zdGF0ZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zZXJ2aWNlcy9hdXRoL2F1dGgtc3RhdGUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUtMLGtCQUFrQixFQUNsQixpQkFBaUIsR0FFbEIsTUFBTSxTQUFTLENBQUM7O0FBRWpCOzs7R0FHRztBQUVILE1BQU0sT0FBTyxnQkFBZ0I7SUFEN0I7UUFFRSxvREFBb0Q7UUFDNUMsV0FBTSxHQUFHLE1BQU0sQ0FBWSxrQkFBa0IsQ0FBQyxDQUFDO1FBQy9DLGdCQUFXLEdBQUcsTUFBTSxDQUFrQixpQkFBaUIsQ0FBQyxDQUFDO1FBRWpFLGdEQUFnRDtRQUNoRCw4QkFBOEI7UUFDOUIsZ0RBQWdEO1FBRWhELHVDQUF1QztRQUM5QixVQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUUxQyw4QkFBOEI7UUFDckIsZUFBVSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxFQUFFLENBQUM7UUFFcEQsK0JBQStCO1FBQ3RCLG9CQUFlLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUV6RSxzQkFBc0I7UUFDYixjQUFTLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUU3RCxzQkFBc0I7UUFDYixnQkFBVyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFakUsd0JBQXdCO1FBQ2YsVUFBSyxHQUFHLFFBQVEs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WUFDSixNQUFNO1lBQ04sS0FBSztTQUNOLENBQUMsQ0FBQyxDQUFDO0lBQ04sQ0FBQztJQUVEOzs7T0FHRztJQUNILGVBQWUsQ0FBQyxTQUF3QjtRQUN0QyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDdkIsR0FBRyxDQUFDO1lBQ0osU0FBUztTQUNWLENBQUMsQ0FBQyxDQUFDO0lBQ04sQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSCxtQkFBbUIsQ0FBQyxNQUtuQjtRQUNDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUN2QixHQUFHLENBQUM7WUFDSixHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxTQUFTLElBQUksRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3ZELEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxLQUFLLFNBQVMsSUFBSSxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDN0QsR0FBRyxDQUFDLE1BQU0sQ0FBQyxTQUFTLEtBQUssU0FBUyxJQUFJLEVBQUUsU0FBUyxFQUFFLE1BQU0sQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUN0RSxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUssS0FBSyxTQUFTLElBQUksRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO1NBQzNELENBQUMsQ0FBQyxDQUFDO0lBQ04sQ0FBQzsrR0FsUFUsZ0JBQWdCO21IQUFoQixnQkFBZ0IsY0FESCxNQUFNOzs0RkFDbkIsZ0JBQWdCO2tCQUQ1QixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIHNpZ25hbCwgY29tcHV0ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEF1dGhTdGF0ZSxcbiAgQXV0aFVzZXIsXG4gIEF1dGhFcnJvcixcbiAgTUZBUGVuZGluZ1N0YXRlLFxuICBJTklUSUFMX0FVVEhfU1RBVEUsXG4gIElOSVRJQUxfTUZBX1NUQVRFLFxuICBTdG9yZWRBdXRoU3RhdGUsXG59IGZyb20gJy4vdHlwZXMnO1xuXG4vKipcbiAqIFNlcnZpY2lvIHBhcmEgbWFuZWpvIGRlIGVzdGFkbyBkZSBhdXRlbnRpY2FjacOzbiBjb24gQW5ndWxhciBTaWduYWxzLlxuICogUHJvcG9yY2lvbmEgZXN0YWRvIHJlYWN0aXZvIGlubXV0YWJsZS5cbiAqL1xuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBBdXRoU3RhdGVTZXJ2aWNlIHtcbiAgLy8gRXN0YWRvIGludGVybm8gKG11dGFibGUgc29sbyBkZW50cm8gZGVsIHNlcnZpY2lvKVxuICBwcml2YXRlIF9zdGF0ZSA9IHNpZ25hbDxBdXRoU3RhdGU+KElOSVRJQUxfQVVUSF9TVEFURSk7XG4gIHByaXZhdGUgX21mYVBlbmRpbmcgPSBzaWduYWw8TUZBUGVuZGluZ1N0YXRlPihJTklUSUFMX01GQV9TVEFURSk7XG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIFNpZ25hbHMgcMO6YmxpY29zIChyZWFkb25seSlcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLyoqIEVzdGFkbyBjb21wbGV0byBkZSBhdXRlbnRpY2FjacOzbiAqL1xuICByZWFkb25seSBzdGF0ZSA9IHRoaXMuX3N0YXRlLmFzUmVhZG9ubHkoKTtcblxuICAvKiogRXN0YWRvIGRlIE1GQSBwZW5kaWVudGUgKi9cbiAgcmVhZG9ubHkgbWZhUGVuZGluZyA9IHRoaXMuX21mYVBlbmRpbmcuYXNSZWFkb25seSgpO1xuXG4gIC8qKiBVc3VhcmlvIGVzdMOhIGF1dGVudGljYWRvICovXG4gIHJlYWRvbmx5IGlzQXV0aGVudGljYXRlZCA9IGNvbXB1dGVkKCgpID0+IHRoaXMuX3N0YXRlKCkuaXNBdXRoZW50aWNhdGVkKTtcblxuICAvKiogRXN0YWRvIGRlIGNhcmdhICovXG4gIHJlYWRvbmx5IGlzTG9hZGluZyA9IGNvbXB1dGVkKCgpID0+IHRoaXMuX3N0YXRlKCkuaXNMb2FkaW5nKTtcblxuICAvKiogVG9rZW4gZGUgYWNjZXNvICovXG4gIHJlYWRvbmx5IGFjY2Vzc1Rva2VuID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5fc3RhdGUoKS5hY2Nlc3NUb2tlbik7XG5cbiAgLyoqIFJvbGVzIGRlbCB1c3VhcmlvICovXG4gIHJlYWRvbmx5IHJvbGVzID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5fc3RhdGUoKS5yb2xlcyk7XG5cbiAgLyoqIFBlcm1pc29zIGRlbCB1c3VhcmlvICovXG4gIHJlYWRvbmx5IHBlcm1pc3Npb25zID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5fc3RhdGUoKS5wZXJtaXNzaW9ucyk7XG5cbiAgLyoqIFVzdWFyaW8gZXMgc3VwZXIgYWRtaW4gKi9cbiAgcmVhZG9ubHkgaXNTdXBlckFkbWluID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5fc3RhdGUoKS5pc1N1cGVyQWRtaW4pO1xuXG4gIC8qKiBVc3VhcmlvIHRpZW5lIHN1c2NyaXBjacOzbiBwcmVtaXVtIGFjdGl2YSAobm8gdmUgYWRzKSAqL1xuICByZWFkb25seSBpc1ByZW1pdW0gPSBjb21wdXRlZCgoKSA9PiB0aGlzLl9zdGF0ZSgpLmlzUHJlbWl1bSk7XG5cbiAgLyoqIEVycm9yIGFjdHVhbCAqL1xuICByZWFkb25seSBlcnJvciA9IGNvbXB1dGVkKCgpID0+IHRoaXMuX3N0YXRlKCkuZXJyb3IpO1xuXG4gIC8qKiBJbmZvcm1hY2nDs24gZGVsIHVzdWFyaW8gKi9cbiAgcmVhZG9ubHkgdXNlciA9IGNvbXB1dGVkPEF1dGhVc2VyIHwgbnVsbD4oKCkgPT4ge1xuICAgIGNvbnN0IHN0YXRlID0gdGhpcy5fc3RhdGUoKTtcbiAgICBpZiAoIXN0YXRlLmlzQXV0aGVudGljYXRlZCB8fCAhc3RhdGUudXNlcklkKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIHVzZXJJZDogc3RhdGUudXNlcklkLFxuICAgICAgZW1haWw6IHN0YXRlLmVtYWlsIHx8ICcnLFxuICAgICAgbmFtZTogc3RhdGUubmFtZSA/PyB1bmRlZmluZWQsXG4gICAgICBoYW5kbGU6IHN0YXRlLmhhbmRsZSA/PyB1bmRlZmluZWQsXG4gICAgICBhdmF0YXJVcmw6IHN0YXRlLmF2YXRhclVybCA/PyB1bmRlZmluZWQsXG4gICAgICBwaG9uZTogc3RhdGUucGhvbmUgPz8gdW5kZWZpbmVkLFxuICAgICAgYWN0aXZlT3JnOiBzdGF0ZS5hY3RpdmVPcmcgPz8gdW5kZWZpbmVkLFxuICAgICAgcm9sZXM6IHN0YXRlLnJvbGVzLFxuICAgICAgcGVybWlzc2lvbnM6IHN0YXRlLnBlcm1pc3Npb25zLFxuICAgICAgaXNTdXBlckFkbWluOiBzdGF0ZS5pc1N1cGVyQWRtaW4sXG4gICAgfTtcbiAgfSk7XG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIE3DqXRvZG9zIGRlIGFjdHVhbGl6YWNpw7NuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIC8qKlxuICAgKiBFc3RhYmxlY2UgZWwgZXN0YWRvIGRlIGNhcmdhLlxuICAgKi9cbiAgc2V0TG9hZGluZyhpc0xvYWRpbmc6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLl9zdGF0ZS51cGRhdGUocyA9PiAoeyAuLi5zLCBpc0xvYWRpbmcgfSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEVzdGFibGVjZSBlbCBlc3RhZG8gZGUgYXV0ZW50aWNhY2nDs24gZXhpdG9zYS5cbiAgICovXG4gIHNldEF1dGhlbnRpY2F0ZWQoZGF0YToge1xuICAgIGFjY2Vzc1Rva2VuOiBzdHJpbmc7XG4gICAgcmVmcmVzaFRva2VuOiBzdHJpbmc7XG4gICAgdXNlcklkPzogc3RyaW5nO1xuICAgIGVtYWlsPzogc3RyaW5nO1xuICAgIHJvbGVzOiBzdHJpbmdbXTtcbiAgICBwZXJtaXNzaW9uczogc3RyaW5nW107XG4gICAgaXNTdXBlckFkbWluOiBib29sZWFuO1xuICAgIGlzUHJlbWl1bT86IGJvb2xlYW47XG4gICAgZXhwaXJlc0F0OiBudW1iZXI7XG4gIH0pOiB2b2lkIHtcbiAgICB0aGlzLl9zdGF0ZS5zZXQoe1xuICAgICAgaXNBdXRoZW50aWNhdGVkOiB0cnVlLFxuICAgICAgaXNMb2FkaW5nOiBmYWxzZSxcbiAgICAgIGFjY2Vzc1Rva2VuOiBkYXRhLmFjY2Vzc1Rva2VuLFxuICAgICAgcmVmcmVzaFRva2VuOiBkYXRhLnJlZnJlc2hUb2tlbixcbiAgICAgIHVzZXJJZDogZGF0YS51c2VySWQgfHwgbnVsbCxcbiAgICAgIGVtYWlsOiBkYXRhLmVtYWlsIHx8IG51bGwsXG4gICAgICByb2xlczogZGF0YS5yb2xlcyxcbiAgICAgIHBlcm1pc3Npb25zOiBkYXRhLnBlcm1pc3Npb25zLFxuICAgICAgaXNTdXBlckFkbWluOiBkYXRhLmlzU3VwZXJBZG1pbixcbiAgICAgIGlzUHJlbWl1bTogZGF0YS5pc1ByZW1pdW0gfHwgZmFsc2UsXG4gICAgICBleHBpcmVzQXQ6IGRhdGEuZXhwaXJlc0F0LFxuICAgICAgZXJyb3I6IG51bGwsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQWN0dWFsaXphIHNvbG8gZWwgYWNjZXNzIHRva2VuIChkZXNwdcOpcyBkZSByZWZyZXNoKS5cbiAgICovXG4gIHVwZGF0ZUFjY2Vzc1Rva2VuKGFjY2Vzc1Rva2VuOiBzdHJpbmcsIGV4cGlyZXNJbjogbnVtYmVyKTogdm9pZCB7XG4gICAgY29uc3QgZXhwaXJlc0F0ID0gRGF0ZS5ub3coKSArIGV4cGlyZXNJbiAqIDEwMDA7XG4gICAgdGhpcy5fc3RhdGUudXBkYXRlKHMgPT4gKHtcbiAgICAgIC4uLnMsXG4gICAgICBhY2Nlc3NUb2tlbixcbiAgICAgIGV4cGlyZXNBdCxcbiAgICB9KSk7XG4gIH1cblxuICAvKipcbiAgICogQWN0dWFsaXphIGVsIHJlZnJlc2ggdG9rZW4gKHRva2VuIHJvdGF0aW9uKS5cbiAgICovXG4gIHVwZGF0ZVJlZnJlc2hUb2tlbihyZWZyZXNoVG9rZW46IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuX3N0YXRlLnVwZGF0ZShzID0+ICh7XG4gICAgICAuLi5zLFxuICAgICAgcmVmcmVzaFRva2VuLFxuICAgIH0pKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBY3R1YWxpemEgbG9zIHBlcm1pc29zLlxuICAgKi9cbiAgdXBkYXRlUGVybWlzc2lvbnMocm9sZXM6IHN0cmluZ1tdLCBwZXJtaXNzaW9uczogc3RyaW5nW10sIGlzU3VwZXJBZG1pbjogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuX3N0YXRlLnVwZGF0ZShzID0+ICh7XG4gICAgICAuLi5zLFxuICAgICAgcm9sZXMsXG4gICAgICBwZXJtaXNzaW9ucyxcbiAgICAgIGlzU3VwZXJBZG1pbixcbiAgICB9KSk7XG4gIH1cblxuICAvKipcbiAgICogRXN0YWJsZWNlIHVuIGVycm9yIGRlIGF1dGVudGljYWNpw7NuLlxuICAgKi9cbiAgc2V0RXJyb3IoZXJyb3I6IEF1dGhFcnJvcik6IHZvaWQge1xuICAgIHRoaXMuX3N0YXRlLnVwZGF0ZShzID0+ICh7XG4gICAgICAuLi5zLFxuICAgICAgZXJyb3IsXG4gICAgICBpc0xvYWRpbmc6IGZhbHNlLFxuICAgIH0pKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMaW1waWEgZWwgZXJyb3IuXG4gICAqL1xuICBjbGVhckVycm9yKCk6IHZvaWQge1xuICAgIHRoaXMuX3N0YXRlLnVwZGF0ZShzID0+ICh7XG4gICAgICAuLi5zLFxuICAgICAgZXJyb3I6IG51bGwsXG4gICAgfSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEVzdGFibGVjZSBlc3RhZG8gZGUgTUZBIHBlbmRpZW50ZS5cbiAgICovXG4gIHNldE1GQVBlbmRpbmcobWZhU3RhdGU6IE1GQVBlbmRpbmdTdGF0ZSk6IHZvaWQge1xuICAgIHRoaXMuX21mYVBlbmRpbmcuc2V0KG1mYVN0YXRlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMaW1waWEgZWwgZXN0YWRvIGRlIE1GQSBwZW5kaWVudGUuXG4gICAqL1xuICBjbGVhck1GQVBlbmRpbmcoKTogdm9pZCB7XG4gICAgdGhpcy5fbWZhUGVuZGluZy5zZXQoSU5JVElBTF9NRkFfU1RBVEUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlc2V0ZWEgdG9kbyBlbCBlc3RhZG8gYSB2YWxvcmVzIGluaWNpYWxlcy5cbiAgICovXG4gIHJlc2V0KCk6IHZvaWQge1xuICAgIHRoaXMuX3N0YXRlLnNldChJTklUSUFMX0FVVEhfU1RBVEUpO1xuICAgIHRoaXMuX21mYVBlbmRpbmcuc2V0KElOSVRJQUxfTUZBX1NUQVRFKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXN0YXVyYSBlc3RhZG8gZGVzZGUgZGF0b3MgYWxtYWNlbmFkb3MuXG4gICAqL1xuICByZXN0b3JlRnJvbVN0b3JhZ2Uoc3RvcmVkOiBQYXJ0aWFsPFN0b3JlZEF1dGhTdGF0ZT4pOiB2b2lkIHtcbiAgICBpZiAoc3RvcmVkLmFjY2Vzc1Rva2VuKSB7XG4gICAgICB0aGlzLl9zdGF0ZS5zZXQoe1xuICAgICAgICBpc0F1dGhlbnRpY2F0ZWQ6IHRydWUsXG4gICAgICAgIGlzTG9hZGluZzogZmFsc2UsXG4gICAgICAgIGFjY2Vzc1Rva2VuOiBzdG9yZWQuYWNjZXNzVG9rZW4sXG4gICAgICAgIHJlZnJlc2hUb2tlbjogc3RvcmVkLnJlZnJlc2hUb2tlbiB8fCBudWxsLFxuICAgICAgICB1c2VySWQ6IG51bGwsIC8vIFNlIGV4dHJhZXLDoSBkZWwgdG9rZW5cbiAgICAgICAgZW1haWw6IG51bGwsIC8vIFNlIGV4dHJhZXLDoSBkZWwgdG9rZW5cbiAgICAgICAgcm9sZXM6IHN0b3JlZC5yb2xlcyB8fCBbXSxcbiAgICAgICAgcGVybWlzc2lvbnM6IHN0b3JlZC5wZXJtaXNzaW9ucyB8fCBbXSxcbiAgICAgICAgaXNTdXBlckFkbWluOiBzdG9yZWQuaXNTdXBlckFkbWluIHx8IGZhbHNlLFxuICAgICAgICBpc1ByZW1pdW06IHN0b3JlZC5pc1ByZW1pdW0gfHwgZmFsc2UsXG4gICAgICAgIGV4cGlyZXNBdDogc3RvcmVkLmV4cGlyZXNBdCB8fCBudWxsLFxuICAgICAgICBlcnJvcjogbnVsbCxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBBY3R1YWxpemEgZWwgdXNlcklkIHkgZW1haWwgKGRlc3B1w6lzIGRlIHBhcnNlYXIgZWwgdG9rZW4pLlxuICAgKi9cbiAgdXBkYXRlVXNlckluZm8odXNlcklkOiBzdHJpbmcsIGVtYWlsOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLl9zdGF0ZS51cGRhdGUocyA9PiAoe1xuICAgICAgLi4ucyxcbiAgICAgIHVzZXJJZCxcbiAgICAgIGVtYWlsLFxuICAgIH0pKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBY3R1YWxpemEgbGEgb3JnYW5pemFjacOzbiBhY3RpdmEgZGVsIHVzdWFyaW8uXG4gICAqIEludm9jYWRvIHRyYXMgcGFyc2VhciBlbCBKV1QgKGNsYWltIFwib3JnXCIpIG8gdHJhcyBzd2l0Y2hPcmcgZXhpdG9zby5cbiAgICovXG4gIHVwZGF0ZUFjdGl2ZU9yZyhhY3RpdmVPcmc6IHN0cmluZyB8IG51bGwpOiB2b2lkIHtcbiAgICB0aGlzLl9zdGF0ZS51cGRhdGUocyA9PiAoe1xuICAgICAgLi4ucyxcbiAgICAgIGFjdGl2ZU9yZyxcbiAgICB9KSk7XG4gIH1cblxuICAvKipcbiAgICogSGlkcmF0YSBlbCBzdGF0ZSBjb24gY2FtcG9zIGRlbCBwcm9maWxlIChub21icmUsIGhhbmRsZSwgYXZhdGFyLCBwaG9uZSkuXG4gICAqIEludm9jYWRvIHRyYXMgYGdldFByb2ZpbGUoKWAgbyBgdXBkYXRlUHJvZmlsZSgpYCBwYXJhIHF1ZSBjb25zdW1lcnMgZGVcbiAgICogYGF1dGgudXNlcigpYCB2ZWFuIGxvcyBjYW1wb3MgZW5yaWNoZWQgYXV0b23DoXRpY2FtZW50ZS5cbiAgICpcbiAgICogQ3VhbHF1aWVyIGNhbXBvIGB1bmRlZmluZWRgIHNlIGlnbm9yYSAobm8gc29icmVzY3JpYmUgY29uIG51bGwpLiBDYW1wb3NcbiAgICogYG51bGxgIGV4cGzDrWNpdG9zIHNlIHBlcnNpc3RlbiAoc2lnbmFsIGRlIFwibGltcGlhZG9cIikuXG4gICAqL1xuICB1cGRhdGVQcm9maWxlRmllbGRzKGZpZWxkczoge1xuICAgIG5hbWU/OiBzdHJpbmcgfCBudWxsO1xuICAgIGhhbmRsZT86IHN0cmluZyB8IG51bGw7XG4gICAgYXZhdGFyVXJsPzogc3RyaW5nIHwgbnVsbDtcbiAgICBwaG9uZT86IHN0cmluZyB8IG51bGw7XG4gIH0pOiB2b2lkIHtcbiAgICB0aGlzLl9zdGF0ZS51cGRhdGUocyA9PiAoe1xuICAgICAgLi4ucyxcbiAgICAgIC4uLihmaWVsZHMubmFtZSAhPT0gdW5kZWZpbmVkICYmIHsgbmFtZTogZmllbGRzLm5hbWUgfSksXG4gICAgICAuLi4oZmllbGRzLmhhbmRsZSAhPT0gdW5kZWZpbmVkICYmIHsgaGFuZGxlOiBmaWVsZHMuaGFuZGxlIH0pLFxuICAgICAgLi4uKGZpZWxkcy5hdmF0YXJVcmwgIT09IHVuZGVmaW5lZCAmJiB7IGF2YXRhclVybDogZmllbGRzLmF2YXRhclVybCB9KSxcbiAgICAgIC4uLihmaWVsZHMucGhvbmUgIT09IHVuZGVmaW5lZCAmJiB7IHBob25lOiBmaWVsZHMucGhvbmUgfSksXG4gICAgfSkpO1xuICB9XG59XG4iXX0=