@angular-architects/ngrx-toolkit 0.3.1 → 18.0.0-rc.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -6,10 +6,11 @@
6
6
  <img src="https://raw.githubusercontent.com/angular-architects/ngrx-toolkit/main/logo.png" width="320" style="text-align: center">
7
7
  </p>
8
8
 
9
- NgRx Toolkit is an extension to the NgRx Signals Store. **It is still in beta** but already offers following features:
9
+ NgRx Toolkit is an extension to the NgRx Signals Store. **It is still in beta** but already offers features, like:
10
10
 
11
11
  - Devtools: Integration into Redux Devtools
12
12
  - Redux: Possibility to use the Redux Pattern (Reducer, Actions, Effects)
13
+ - Storage Sync: Synchronize the Store with Web Storage
13
14
  - Redux Connector: Map NgRx Store Actions to a present Signal Store
14
15
 
15
16
  To install it, run
@@ -18,18 +19,36 @@ To install it, run
18
19
  npm i @angular-architects/ngrx-toolkit
19
20
  ```
20
21
 
22
+ Starting with 18.0.0-rc.2, we have a [strict version dependency](#why-is-the-version-range-to-the-ngrxsignals-dependency-so-strict) to `@ngrx/signals`:
23
+
24
+ | @ngrx/signals | @angular-architects/ngrx-toolkit |
25
+ |----------------|----------------------------------|
26
+ | <= 18.0.0-rc.1 | 0.0.4 |
27
+ | 18.0.0-rc.2 | 18.0.0-rc.2.x |
28
+
29
+ To install it, run
30
+
31
+ ```shell
32
+ npm i @angular-architects/ngrx-toolkit
33
+ ```
34
+
21
35
 
22
36
  - [NgRx Toolkit](#ngrx-toolkit)
23
37
  - [Devtools: `withDevtools()`](#devtools-withdevtools)
24
38
  - [Redux: `withRedux()`](#redux-withredux)
25
39
  - [DataService `withDataService()`](#dataservice-withdataservice)
26
40
  - [DataService with Dynamic Properties](#dataservice-with-dynamic-properties)
41
+ - [Storage Sync `withStorageSync`](#storage-sync-withstoragesync)
27
42
  - [Redux Connector for the NgRx Signal Store `createReduxState()`](#redux-connector-for-the-ngrx-signal-store-createreduxstate)
28
43
  - [Use a present Signal Store](#use-a-present-signal-store)
29
44
  - [Use well-known NgRx Store Actions](#use-well-known-ngrx-store-actions)
30
45
  - [Map Actions to Methods](#map-actions-to-methods)
31
46
  - [Register an Angular Dependency Injection Provider](#register-an-angular-dependency-injection-provider)
32
47
  - [Use the Store in your Component](#use-the-store-in-your-component)
48
+ - [FAQ](#faq)
49
+ - [Why is the version range to the `@ngrx/signals` dependency so strict?](#why-is-the-version-range-to-the-ngrxsignals-dependency-so-strict)
50
+ - [I have an idea for a new extension, can I contribute?](#i-have-an-idea-for-a-new-extension-can-i-contribute)
51
+ - [I require a feature that is not available in a lower version. What should I do?](#i-require-a-feature-that-is-not-available-in-a-lower-version-what-should-i-do)
33
52
 
34
53
 
35
54
  ## Devtools: `withDevtools()`
@@ -270,6 +289,9 @@ public class SyncedStoreComponent {
270
289
 
271
290
  clearStorage(): void {
272
291
  this.syncStore.clearStorage(); // clears the stored item in storage
292
+ }
293
+ }
294
+ ```
273
295
 
274
296
  ## Redux Connector for the NgRx Signal Store `createReduxState()`
275
297
 
@@ -402,3 +424,24 @@ export class FlightSearchReducConnectorComponent {
402
424
  }
403
425
  }
404
426
  ```
427
+ ## FAQ
428
+
429
+ ### Why is the version range to the `@ngrx/signals` dependency so strict?
430
+
431
+ The strict version range for @ngrx/signals is necessary because some of our features rely on encapsulated types, which can change even in a patch release.
432
+
433
+ To ensure stability, we clone these internal types and run integration tests for each release. This rigorous testing means we may need to update our version, even for a patch release, to maintain compatibility and stability.
434
+
435
+ ### I have an idea for a new extension, can I contribute?
436
+
437
+ Yes, please! We are always looking for new ideas and contributions.
438
+
439
+ Since we don't want to bloat the library, we are very selective about new features. You also have to provide the following:
440
+ - Good test coverage so that we can update it properly and don't have to call you 😉.
441
+ - A use case showing the feature in action in the demo app of the repository.
442
+ - An entry to the README.md.
443
+
444
+ ### I require a feature that is not available in a lower version. What should I do?
445
+
446
+ Please create an issue. Very likely, we are able to cherry-pick the feature into the lower version.
447
+
package/esm2022/index.mjs CHANGED
@@ -6,4 +6,5 @@ export * from './lib/with-data-service';
6
6
  export { withStorageSync } from './lib/with-storage-sync';
7
7
  export * from './lib/redux-connector';
8
8
  export * from './lib/redux-connector/rxjs-interop';
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL25ncngtdG9vbGtpdC9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFlBQVksRUFDWixVQUFVLEVBQ1YsV0FBVyxHQUVaLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsY0FBYyxrQkFBa0IsQ0FBQztBQUVqQyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxPQUFPLEVBQUUsZUFBZSxFQUFjLE1BQU0seUJBQXlCLENBQUM7QUFDdEUsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLG9DQUFvQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHtcbiAgd2l0aERldnRvb2xzLFxuICBwYXRjaFN0YXRlLFxuICB1cGRhdGVTdGF0ZSxcbiAgQWN0aW9uLFxufSBmcm9tICcuL2xpYi93aXRoLWRldnRvb2xzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3dpdGgtcmVkdXgnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi93aXRoLWNhbGwtc3RhdGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvd2l0aC11bmRvLXJlZG8nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvd2l0aC1kYXRhLXNlcnZpY2UnO1xuZXhwb3J0IHsgd2l0aFN0b3JhZ2VTeW5jLCBTeW5jQ29uZmlnIH0gZnJvbSAnLi9saWIvd2l0aC1zdG9yYWdlLXN5bmMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcmVkdXgtY29ubmVjdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3JlZHV4LWNvbm5lY3Rvci9yeGpzLWludGVyb3AnO1xuIl19
9
+ export * from './lib/with-pagination';
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL25ncngtdG9vbGtpdC9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFlBQVksRUFDWixVQUFVLEVBQ1YsV0FBVyxHQUVaLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsY0FBYyxrQkFBa0IsQ0FBQztBQUVqQyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxPQUFPLEVBQUUsZUFBZSxFQUFjLE1BQU0seUJBQXlCLENBQUM7QUFDdEUsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMsdUJBQXVCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQge1xuICB3aXRoRGV2dG9vbHMsXG4gIHBhdGNoU3RhdGUsXG4gIHVwZGF0ZVN0YXRlLFxuICBBY3Rpb24sXG59IGZyb20gJy4vbGliL3dpdGgtZGV2dG9vbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvd2l0aC1yZWR1eCc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL3dpdGgtY2FsbC1zdGF0ZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi93aXRoLXVuZG8tcmVkbyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi93aXRoLWRhdGEtc2VydmljZSc7XG5leHBvcnQgeyB3aXRoU3RvcmFnZVN5bmMsIFN5bmNDb25maWcgfSBmcm9tICcuL2xpYi93aXRoLXN0b3JhZ2Utc3luYyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9yZWR1eC1jb25uZWN0b3InO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcmVkdXgtY29ubmVjdG9yL3J4anMtaW50ZXJvcCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi93aXRoLXBhZ2luYXRpb24nO1xuIl19
@@ -3,4 +3,4 @@ export function assertActionFnSpecs(obj) {
3
3
  throw new Error('%o is not an Action Specification');
4
4
  }
5
5
  }
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXJ0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmdyeC10b29sa2l0L3NyYy9saWIvYXNzZXJ0aW9ucy9hc3NlcnRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sVUFBVSxtQkFBbUIsQ0FDakMsR0FBWTtJQUVaLElBQUksQ0FBQyxHQUFHLElBQUksT0FBTyxHQUFHLEtBQUssUUFBUSxFQUFFO1FBQ25DLE1BQU0sSUFBSSxLQUFLLENBQUMsbUNBQW1DLENBQUMsQ0FBQztLQUN0RDtBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBY3Rpb25zRm5TcGVjcyB9IGZyb20gJy4uL3dpdGgtcmVkdXgnO1xuXG5leHBvcnQgZnVuY3Rpb24gYXNzZXJ0QWN0aW9uRm5TcGVjcyhcbiAgb2JqOiB1bmtub3duXG4pOiBhc3NlcnRzIG9iaiBpcyBBY3Rpb25zRm5TcGVjcyB7XG4gIGlmICghb2JqIHx8IHR5cGVvZiBvYmogIT09ICdvYmplY3QnKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCclbyBpcyBub3QgYW4gQWN0aW9uIFNwZWNpZmljYXRpb24nKTtcbiAgfVxufVxuIl19
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXJ0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmdyeC10b29sa2l0L3NyYy9saWIvYXNzZXJ0aW9ucy9hc3NlcnRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sVUFBVSxtQkFBbUIsQ0FDakMsR0FBWTtJQUVaLElBQUksQ0FBQyxHQUFHLElBQUksT0FBTyxHQUFHLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDcEMsTUFBTSxJQUFJLEtBQUssQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWN0aW9uc0ZuU3BlY3MgfSBmcm9tICcuLi93aXRoLXJlZHV4JztcblxuZXhwb3J0IGZ1bmN0aW9uIGFzc2VydEFjdGlvbkZuU3BlY3MoXG4gIG9iajogdW5rbm93blxuKTogYXNzZXJ0cyBvYmogaXMgQWN0aW9uc0ZuU3BlY3Mge1xuICBpZiAoIW9iaiB8fCB0eXBlb2Ygb2JqICE9PSAnb2JqZWN0Jykge1xuICAgIHRocm93IG5ldyBFcnJvcignJW8gaXMgbm90IGFuIEFjdGlvbiBTcGVjaWZpY2F0aW9uJyk7XG4gIH1cbn1cbiJdfQ==
@@ -38,4 +38,4 @@ export function createReduxState(storeName, signalStore, withActionMappers) {
38
38
  [`inject${capitalize(storeName)}Store`]: () => Object.assign(inject(signalStore), { dispatch: injectReduxDispatch() })
39
39
  };
40
40
  }
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLXJlZHV4LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZ3J4LXRvb2xraXQvc3JjL2xpYi9yZWR1eC1jb25uZWN0b3IvY3JlYXRlLXJlZHV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHMUYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDN0UsT0FBTyxFQUFFLFVBQVUsRUFBRSxlQUFlLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFxQnJELE1BQU0sVUFBVSxTQUFTLENBR3ZCLEdBQUcsSUFJRjtJQUVELElBQUksWUFBWSxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQTJELENBQUM7SUFDdkYsSUFBSSxXQUFXLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBa0UsQ0FBQztJQUU3RixJQUFJLGVBQWUsQ0FBQyxXQUFXLENBQUMsRUFBRTtRQUNoQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3ZCLFdBQVcsR0FBRyxZQUFZLElBQUksV0FBVyxDQUFDO1FBQzFDLFlBQVksR0FBRyxTQUFTLENBQUM7S0FDMUI7SUFFRCxNQUFNLEtBQUssR0FBSSxJQUE0QixDQUFDLEdBQUcsQ0FDN0MsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQ2lCLENBQUM7SUFFN0MsT0FBTztRQUNMLEtBQUs7UUFDTCxXQUFXO1FBQ1gsWUFBWTtLQUNiLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxVQUFVLGlCQUFpQixDQUMvQixHQUFHLE9BQWlEO0lBRXBELE9BQU8sT0FBTyxDQUFDO0FBQ2pCLENBQUM7QUFFRCxNQUFNLFVBQVUsZ0JBQWdCLENBSTlCLFNBQW9CLEVBQ3BCLFdBQWtCLEVBQ2xCLGlCQUEyRjtJQUUzRixNQUFNLGNBQWMsR0FBSSxXQUFtQixFQUFFLEtBQUssRUFBRSxVQUFVLEtBQUssTUFBTSxDQUFDO0lBQzFFLE9BQU87UUFDTCxDQUFDLFVBQVUsVUFBVSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLG9CQUFvQixHQUFHLEtBQUssRUFBRSxFQUFFLENBQUMsd0JBQXdCLENBQUM7WUFDbkcsY0FBYyxDQUFBLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVc7WUFDaEM7Z0JBQ0UsT0FBTyxFQUFFLHVCQUF1QjtnQkFDaEMsS0FBSyxFQUFFLElBQUk7Z0JBQ1gsVUFBVSxFQUFFLENBQ1YsZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLEVBQzNDLEtBQUssR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLEVBQzNCLEVBQUUsQ0FBQyxHQUFHLEVBQUU7b0JBQ1IsSUFBSSxvQkFBb0IsRUFBRTt3QkFDeEIsb0RBQW9EO3FCQUNyRDtvQkFDRCxnQkFBZ0IsQ0FBQyxtQkFBbUIsQ0FDbEMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLENBQ3pCLENBQUM7Z0JBQ0osQ0FBQzthQUNGO1NBQ0YsQ0FBQztRQUNGLENBQUMsU0FBUyxVQUFVLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQzFELE1BQU0sQ0FBQyxXQUFXLENBQUMsRUFDbkIsRUFBRSxRQUFRLEVBQUUsbUJBQW1CLEVBQUUsRUFBRSxDQUNwQztLQUNvQyxDQUFDO0FBQzFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFTlZJUk9OTUVOVF9JTklUSUFMSVpFUiwgaW5qZWN0LCBtYWtlRW52aXJvbm1lbnRQcm92aWRlcnMgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgQWN0aW9uQ3JlYXRvciwgQWN0aW9uVHlwZSB9IGZyb20gXCJAbmdyeC9zdG9yZS9zcmMvbW9kZWxzXCI7XG5pbXBvcnQgeyBDcmVhdGVSZWR1eFN0YXRlLCBFeHRyYWN0QWN0aW9uVHlwZXMsIE1hcHBlclR5cGVzLCBTdG9yZSB9IGZyb20gXCIuL21vZGVsXCI7XG5pbXBvcnQgeyBTaWduYWxSZWR1eFN0b3JlLCBpbmplY3RSZWR1eERpc3BhdGNoIH0gZnJvbSBcIi4vc2lnbmFsLXJlZHV4LXN0b3JlXCI7XG5pbXBvcnQgeyBjYXBpdGFsaXplLCBpc0FjdGlvbkNyZWF0b3IgfSBmcm9tIFwiLi91dGlsXCI7XG5cblxuZXhwb3J0IGZ1bmN0aW9uIG1hcEFjdGlvbjxcbiAgQ3JlYXRvcnMgZXh0ZW5kcyByZWFkb25seSBBY3Rpb25DcmVhdG9yW11cbj4oXG4gIC4uLmFyZ3M6IFtcbiAgICAuLi5jcmVhdG9yczogQ3JlYXRvcnMsXG4gICAgc3RvcmVNZXRob2Q6IChhY3Rpb246IEFjdGlvblR5cGU8Q3JlYXRvcnNbbnVtYmVyXT4pID0+IHVua25vd25cbiAgXVxuKTogTWFwcGVyVHlwZXM8Q3JlYXRvcnM+O1xuZXhwb3J0IGZ1bmN0aW9uIG1hcEFjdGlvbjxcbiAgQ3JlYXRvcnMgZXh0ZW5kcyByZWFkb25seSBBY3Rpb25DcmVhdG9yW10sXG4gIFRcbj4oXG4gIC4uLmFyZ3M6IFtcbiAgICAuLi5jcmVhdG9yczogQ3JlYXRvcnMsXG4gICAgc3RvcmVNZXRob2Q6IChhY3Rpb246IEFjdGlvblR5cGU8Q3JlYXRvcnNbbnVtYmVyXT4sIHJlc3VsdE1ldGhvZDogKGlucHV0OiBUKSA9PiB1bmtub3duKSA9PiB1bmtub3duLFxuICAgIHJlc3VsdE1ldGhvZDogKGlucHV0OiBUKSA9PiB1bmtub3duXG4gIF1cbik6IE1hcHBlclR5cGVzPENyZWF0b3JzPjtcbmV4cG9ydCBmdW5jdGlvbiBtYXBBY3Rpb248XG4gIENyZWF0b3JzIGV4dGVuZHMgcmVhZG9ubHkgQWN0aW9uQ3JlYXRvcltdXG4+KFxuICAuLi5hcmdzOiBbXG4gICAgLi4uY3JlYXRvcnM6IENyZWF0b3JzLFxuICAgIHN0b3JlTWV0aG9kOiAoYWN0aW9uOiBBY3Rpb25UeXBlPENyZWF0b3JzW251bWJlcl0+KSA9PiB1bmtub3duLFxuICAgIHJlc3VsdE1ldGhvZD86IChpbnB1dDogdW5rbm93bikgPT4gdW5rbm93blxuICBdXG4pOiBNYXBwZXJUeXBlczxDcmVhdG9ycz4ge1xuICBsZXQgcmVzdWx0TWV0aG9kID0gYXJncy5wb3AoKSBhcyB1bmtub3duIGFzICgoaW5wdXQ6IHVua25vd24pID0+IHVua25vd24gKSB8IHVuZGVmaW5lZDtcbiAgbGV0IHN0b3JlTWV0aG9kID0gYXJncy5wb3AoKSBhcyB1bmtub3duIGFzIChhY3Rpb246IEFjdGlvblR5cGU8Q3JlYXRvcnNbbnVtYmVyXT4pID0+IHVua25vd247XG5cbiAgaWYgKGlzQWN0aW9uQ3JlYXRvcihzdG9yZU1ldGhvZCkpIHtcbiAgICBhcmdzLnB1c2goc3RvcmVNZXRob2QpO1xuICAgIHN0b3JlTWV0aG9kID0gcmVzdWx0TWV0aG9kIHx8IHN0b3JlTWV0aG9kO1xuICAgIHJlc3VsdE1ldGhvZCA9IHVuZGVmaW5lZDtcbiAgfVxuXG4gIGNvbnN0IHR5cGVzID0gKGFyZ3MgYXMgdW5rbm93biBhcyBDcmVhdG9ycykubWFwKFxuICAgIChjcmVhdG9yKSA9PiBjcmVhdG9yLnR5cGVcbiAgKSBhcyB1bmtub3duIGFzIEV4dHJhY3RBY3Rpb25UeXBlczxDcmVhdG9ycz47XG5cbiAgcmV0dXJuIHtcbiAgICB0eXBlcyxcbiAgICBzdG9yZU1ldGhvZCxcbiAgICByZXN1bHRNZXRob2RcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHdpdGhBY3Rpb25NYXBwZXJzKFxuICAuLi5tYXBwZXJzOiBNYXBwZXJUeXBlczxBY3Rpb25DcmVhdG9yPGFueSwgYW55PltdPltdXG4pOiBNYXBwZXJUeXBlczxBY3Rpb25DcmVhdG9yPGFueSwgYW55PltdPltdIHtcbiAgcmV0dXJuIG1hcHBlcnM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVSZWR1eFN0YXRlPFxuICBTdG9yZU5hbWUgZXh0ZW5kcyBzdHJpbmcsXG4gIFNUT1JFIGV4dGVuZHMgU3RvcmVcbj4oXG4gIHN0b3JlTmFtZTogU3RvcmVOYW1lLFxuICBzaWduYWxTdG9yZTogU1RPUkUsXG4gIHdpdGhBY3Rpb25NYXBwZXJzOiAoc3RvcmU6IEluc3RhbmNlVHlwZTxTVE9SRT4pID0+IE1hcHBlclR5cGVzPEFjdGlvbkNyZWF0b3I8YW55LCBhbnk+W10+W10sXG4pOiBDcmVhdGVSZWR1eFN0YXRlPFN0b3JlTmFtZSwgU1RPUkU+IHtcbiAgY29uc3QgaXNSb290UHJvdmlkZXIgPSAoc2lnbmFsU3RvcmUgYXMgYW55KT8uybVwcm92Py5wcm92aWRlZEluID09PSAncm9vdCc7XG4gIHJldHVybiB7XG4gICAgW2Bwcm92aWRlJHtjYXBpdGFsaXplKHN0b3JlTmFtZSl9U3RvcmVgXTogKGNvbm5lY3RSZWR1eERldnRvb2xzID0gZmFsc2UpID0+IG1ha2VFbnZpcm9ubWVudFByb3ZpZGVycyhbXG4gICAgICBpc1Jvb3RQcm92aWRlcj8gW10gOiBzaWduYWxTdG9yZSxcbiAgICAgIHtcbiAgICAgICAgcHJvdmlkZTogRU5WSVJPTk1FTlRfSU5JVElBTElaRVIsXG4gICAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgICB1c2VGYWN0b3J5OiAoXG4gICAgICAgICAgc2lnbmFsUmVkdXhTdG9yZSA9IGluamVjdChTaWduYWxSZWR1eFN0b3JlKSxcbiAgICAgICAgICBzdG9yZSA9IGluamVjdChzaWduYWxTdG9yZSlcbiAgICAgICAgKSA9PiAoKSA9PiB7XG4gICAgICAgICAgaWYgKGNvbm5lY3RSZWR1eERldnRvb2xzKSB7XG4gICAgICAgICAgICAvLyBhZGRTdG9yZVRvUmVkdXhEZXZ0b29scyhzdG9yZSwgc3RvcmVOYW1lLCBmYWxzZSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHNpZ25hbFJlZHV4U3RvcmUuY29ubmVjdEZlYXR1cmVTdG9yZShcbiAgICAgICAgICAgIHdpdGhBY3Rpb25NYXBwZXJzKHN0b3JlKVxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICBdKSxcbiAgICBbYGluamVjdCR7Y2FwaXRhbGl6ZShzdG9yZU5hbWUpfVN0b3JlYF06ICgpID0+IE9iamVjdC5hc3NpZ24oXG4gICAgICBpbmplY3Qoc2lnbmFsU3RvcmUpLFxuICAgICAgeyBkaXNwYXRjaDogaW5qZWN0UmVkdXhEaXNwYXRjaCgpIH1cbiAgICApXG4gIH0gYXMgQ3JlYXRlUmVkdXhTdGF0ZTxTdG9yZU5hbWUsIFNUT1JFPjtcbn1cbiJdfQ==
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLXJlZHV4LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZ3J4LXRvb2xraXQvc3JjL2xpYi9yZWR1eC1jb25uZWN0b3IvY3JlYXRlLXJlZHV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHMUYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDN0UsT0FBTyxFQUFFLFVBQVUsRUFBRSxlQUFlLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFxQnJELE1BQU0sVUFBVSxTQUFTLENBR3ZCLEdBQUcsSUFJRjtJQUVELElBQUksWUFBWSxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQTJELENBQUM7SUFDdkYsSUFBSSxXQUFXLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBa0UsQ0FBQztJQUU3RixJQUFJLGVBQWUsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDdkIsV0FBVyxHQUFHLFlBQVksSUFBSSxXQUFXLENBQUM7UUFDMUMsWUFBWSxHQUFHLFNBQVMsQ0FBQztJQUMzQixDQUFDO0lBRUQsTUFBTSxLQUFLLEdBQUksSUFBNEIsQ0FBQyxHQUFHLENBQzdDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUNpQixDQUFDO0lBRTdDLE9BQU87UUFDTCxLQUFLO1FBQ0wsV0FBVztRQUNYLFlBQVk7S0FDYixDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSxpQkFBaUIsQ0FDL0IsR0FBRyxPQUFpRDtJQUVwRCxPQUFPLE9BQU8sQ0FBQztBQUNqQixDQUFDO0FBRUQsTUFBTSxVQUFVLGdCQUFnQixDQUk5QixTQUFvQixFQUNwQixXQUFrQixFQUNsQixpQkFBMkY7SUFFM0YsTUFBTSxjQUFjLEdBQUksV0FBbUIsRUFBRSxLQUFLLEVBQUUsVUFBVSxLQUFLLE1BQU0sQ0FBQztJQUMxRSxPQUFPO1FBQ0wsQ0FBQyxVQUFVLFVBQVUsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxvQkFBb0IsR0FBRyxLQUFLLEVBQUUsRUFBRSxDQUFDLHdCQUF3QixDQUFDO1lBQ25HLGNBQWMsQ0FBQSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXO1lBQ2hDO2dCQUNFLE9BQU8sRUFBRSx1QkFBdUI7Z0JBQ2hDLEtBQUssRUFBRSxJQUFJO2dCQUNYLFVBQVUsRUFBRSxDQUNWLGdCQUFnQixHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxFQUMzQyxLQUFLLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxFQUMzQixFQUFFLENBQUMsR0FBRyxFQUFFO29CQUNSLElBQUksb0JBQW9CLEVBQUUsQ0FBQzt3QkFDekIsb0RBQW9EO29CQUN0RCxDQUFDO29CQUNELGdCQUFnQixDQUFDLG1CQUFtQixDQUNsQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FDekIsQ0FBQztnQkFDSixDQUFDO2FBQ0Y7U0FDRixDQUFDO1FBQ0YsQ0FBQyxTQUFTLFVBQVUsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FDMUQsTUFBTSxDQUFDLFdBQVcsQ0FBQyxFQUNuQixFQUFFLFFBQVEsRUFBRSxtQkFBbUIsRUFBRSxFQUFFLENBQ3BDO0tBQ29DLENBQUM7QUFDMUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVOVklST05NRU5UX0lOSVRJQUxJWkVSLCBpbmplY3QsIG1ha2VFbnZpcm9ubWVudFByb3ZpZGVycyB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBBY3Rpb25DcmVhdG9yLCBBY3Rpb25UeXBlIH0gZnJvbSBcIkBuZ3J4L3N0b3JlL3NyYy9tb2RlbHNcIjtcbmltcG9ydCB7IENyZWF0ZVJlZHV4U3RhdGUsIEV4dHJhY3RBY3Rpb25UeXBlcywgTWFwcGVyVHlwZXMsIFN0b3JlIH0gZnJvbSBcIi4vbW9kZWxcIjtcbmltcG9ydCB7IFNpZ25hbFJlZHV4U3RvcmUsIGluamVjdFJlZHV4RGlzcGF0Y2ggfSBmcm9tIFwiLi9zaWduYWwtcmVkdXgtc3RvcmVcIjtcbmltcG9ydCB7IGNhcGl0YWxpemUsIGlzQWN0aW9uQ3JlYXRvciB9IGZyb20gXCIuL3V0aWxcIjtcblxuXG5leHBvcnQgZnVuY3Rpb24gbWFwQWN0aW9uPFxuICBDcmVhdG9ycyBleHRlbmRzIHJlYWRvbmx5IEFjdGlvbkNyZWF0b3JbXVxuPihcbiAgLi4uYXJnczogW1xuICAgIC4uLmNyZWF0b3JzOiBDcmVhdG9ycyxcbiAgICBzdG9yZU1ldGhvZDogKGFjdGlvbjogQWN0aW9uVHlwZTxDcmVhdG9yc1tudW1iZXJdPikgPT4gdW5rbm93blxuICBdXG4pOiBNYXBwZXJUeXBlczxDcmVhdG9ycz47XG5leHBvcnQgZnVuY3Rpb24gbWFwQWN0aW9uPFxuICBDcmVhdG9ycyBleHRlbmRzIHJlYWRvbmx5IEFjdGlvbkNyZWF0b3JbXSxcbiAgVFxuPihcbiAgLi4uYXJnczogW1xuICAgIC4uLmNyZWF0b3JzOiBDcmVhdG9ycyxcbiAgICBzdG9yZU1ldGhvZDogKGFjdGlvbjogQWN0aW9uVHlwZTxDcmVhdG9yc1tudW1iZXJdPiwgcmVzdWx0TWV0aG9kOiAoaW5wdXQ6IFQpID0+IHVua25vd24pID0+IHVua25vd24sXG4gICAgcmVzdWx0TWV0aG9kOiAoaW5wdXQ6IFQpID0+IHVua25vd25cbiAgXVxuKTogTWFwcGVyVHlwZXM8Q3JlYXRvcnM+O1xuZXhwb3J0IGZ1bmN0aW9uIG1hcEFjdGlvbjxcbiAgQ3JlYXRvcnMgZXh0ZW5kcyByZWFkb25seSBBY3Rpb25DcmVhdG9yW11cbj4oXG4gIC4uLmFyZ3M6IFtcbiAgICAuLi5jcmVhdG9yczogQ3JlYXRvcnMsXG4gICAgc3RvcmVNZXRob2Q6IChhY3Rpb246IEFjdGlvblR5cGU8Q3JlYXRvcnNbbnVtYmVyXT4pID0+IHVua25vd24sXG4gICAgcmVzdWx0TWV0aG9kPzogKGlucHV0OiB1bmtub3duKSA9PiB1bmtub3duXG4gIF1cbik6IE1hcHBlclR5cGVzPENyZWF0b3JzPiB7XG4gIGxldCByZXN1bHRNZXRob2QgPSBhcmdzLnBvcCgpIGFzIHVua25vd24gYXMgKChpbnB1dDogdW5rbm93bikgPT4gdW5rbm93biApIHwgdW5kZWZpbmVkO1xuICBsZXQgc3RvcmVNZXRob2QgPSBhcmdzLnBvcCgpIGFzIHVua25vd24gYXMgKGFjdGlvbjogQWN0aW9uVHlwZTxDcmVhdG9yc1tudW1iZXJdPikgPT4gdW5rbm93bjtcblxuICBpZiAoaXNBY3Rpb25DcmVhdG9yKHN0b3JlTWV0aG9kKSkge1xuICAgIGFyZ3MucHVzaChzdG9yZU1ldGhvZCk7XG4gICAgc3RvcmVNZXRob2QgPSByZXN1bHRNZXRob2QgfHwgc3RvcmVNZXRob2Q7XG4gICAgcmVzdWx0TWV0aG9kID0gdW5kZWZpbmVkO1xuICB9XG5cbiAgY29uc3QgdHlwZXMgPSAoYXJncyBhcyB1bmtub3duIGFzIENyZWF0b3JzKS5tYXAoXG4gICAgKGNyZWF0b3IpID0+IGNyZWF0b3IudHlwZVxuICApIGFzIHVua25vd24gYXMgRXh0cmFjdEFjdGlvblR5cGVzPENyZWF0b3JzPjtcblxuICByZXR1cm4ge1xuICAgIHR5cGVzLFxuICAgIHN0b3JlTWV0aG9kLFxuICAgIHJlc3VsdE1ldGhvZFxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gd2l0aEFjdGlvbk1hcHBlcnMoXG4gIC4uLm1hcHBlcnM6IE1hcHBlclR5cGVzPEFjdGlvbkNyZWF0b3I8YW55LCBhbnk+W10+W11cbik6IE1hcHBlclR5cGVzPEFjdGlvbkNyZWF0b3I8YW55LCBhbnk+W10+W10ge1xuICByZXR1cm4gbWFwcGVycztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVJlZHV4U3RhdGU8XG4gIFN0b3JlTmFtZSBleHRlbmRzIHN0cmluZyxcbiAgU1RPUkUgZXh0ZW5kcyBTdG9yZVxuPihcbiAgc3RvcmVOYW1lOiBTdG9yZU5hbWUsXG4gIHNpZ25hbFN0b3JlOiBTVE9SRSxcbiAgd2l0aEFjdGlvbk1hcHBlcnM6IChzdG9yZTogSW5zdGFuY2VUeXBlPFNUT1JFPikgPT4gTWFwcGVyVHlwZXM8QWN0aW9uQ3JlYXRvcjxhbnksIGFueT5bXT5bXSxcbik6IENyZWF0ZVJlZHV4U3RhdGU8U3RvcmVOYW1lLCBTVE9SRT4ge1xuICBjb25zdCBpc1Jvb3RQcm92aWRlciA9IChzaWduYWxTdG9yZSBhcyBhbnkpPy7JtXByb3Y/LnByb3ZpZGVkSW4gPT09ICdyb290JztcbiAgcmV0dXJuIHtcbiAgICBbYHByb3ZpZGUke2NhcGl0YWxpemUoc3RvcmVOYW1lKX1TdG9yZWBdOiAoY29ubmVjdFJlZHV4RGV2dG9vbHMgPSBmYWxzZSkgPT4gbWFrZUVudmlyb25tZW50UHJvdmlkZXJzKFtcbiAgICAgIGlzUm9vdFByb3ZpZGVyPyBbXSA6IHNpZ25hbFN0b3JlLFxuICAgICAge1xuICAgICAgICBwcm92aWRlOiBFTlZJUk9OTUVOVF9JTklUSUFMSVpFUixcbiAgICAgICAgbXVsdGk6IHRydWUsXG4gICAgICAgIHVzZUZhY3Rvcnk6IChcbiAgICAgICAgICBzaWduYWxSZWR1eFN0b3JlID0gaW5qZWN0KFNpZ25hbFJlZHV4U3RvcmUpLFxuICAgICAgICAgIHN0b3JlID0gaW5qZWN0KHNpZ25hbFN0b3JlKVxuICAgICAgICApID0+ICgpID0+IHtcbiAgICAgICAgICBpZiAoY29ubmVjdFJlZHV4RGV2dG9vbHMpIHtcbiAgICAgICAgICAgIC8vIGFkZFN0b3JlVG9SZWR1eERldnRvb2xzKHN0b3JlLCBzdG9yZU5hbWUsIGZhbHNlKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgc2lnbmFsUmVkdXhTdG9yZS5jb25uZWN0RmVhdHVyZVN0b3JlKFxuICAgICAgICAgICAgd2l0aEFjdGlvbk1hcHBlcnMoc3RvcmUpXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIF0pLFxuICAgIFtgaW5qZWN0JHtjYXBpdGFsaXplKHN0b3JlTmFtZSl9U3RvcmVgXTogKCkgPT4gT2JqZWN0LmFzc2lnbihcbiAgICAgIGluamVjdChzaWduYWxTdG9yZSksXG4gICAgICB7IGRpc3BhdGNoOiBpbmplY3RSZWR1eERpc3BhdGNoKCkgfVxuICAgIClcbiAgfSBhcyBDcmVhdGVSZWR1eFN0YXRlPFN0b3JlTmFtZSwgU1RPUkU+O1xufVxuIl19
@@ -19,4 +19,4 @@ export function reduxMethod(generator, resultMethodOrConfig, config) {
19
19
  }
20
20
  return rxMethod(generator, resultMethodOrConfig);
21
21
  }
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVkdXgtbWV0aG9kLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZ3J4LXRvb2xraXQvc3JjL2xpYi9yZWR1eC1jb25uZWN0b3Ivcnhqcy1pbnRlcm9wL3JlZHV4LW1ldGhvZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdEQsT0FBTyxFQUE4QixHQUFHLEVBQUUsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBcUI3RCxNQUFNLFVBQVUsV0FBVyxDQUN6QixTQUFrRSxFQUNsRSxvQkFFQyxFQUNELE1BRUM7SUFFRCxNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7SUFFbEMsSUFBSSxPQUFPLG9CQUFvQixLQUFLLFVBQVUsRUFBRTtRQUM5QyxJQUFJLGNBQThCLENBQUM7UUFDbkMsTUFBTSxhQUFhLEdBQUcsQ0FBQyxDQUNyQixLQUEyQixFQUMzQixZQUFZLEdBQUcsb0JBQW9CLEVBQ25DLEVBQUU7WUFFRixNQUFNLGtCQUFrQixHQUFHLFFBQVEsQ0FBUSxJQUFJLENBQzdDLFNBQVMsRUFDVCxHQUFHLENBQUMsWUFBWSxDQUFDLENBQ2xCLEVBQUU7Z0JBQ0QsR0FBRyxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUM7Z0JBQ2pCLFFBQVEsRUFBRSxNQUFNLEVBQUUsUUFBUSxJQUFJLFFBQVE7YUFDdkMsQ0FBQyxDQUFDO1lBQ0gsTUFBTSxXQUFXLEdBQUcsa0JBQWtCLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDOUMsY0FBYyxHQUFHLEVBQUUsV0FBVyxFQUFFLFdBQVcsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUM7WUFFNUUsT0FBTyxXQUFXLENBQUM7UUFDckIsQ0FBQyxDQUErQyxDQUFDO1FBRWpELGFBQWEsQ0FBQyxXQUFXLEdBQUcsR0FBRyxFQUFFLENBQUMsY0FBYyxFQUFFLFdBQVcsRUFBRSxDQUFDO1FBRWhFLE9BQU8sYUFBYSxDQUFDO0tBQ3RCO0lBRUQsT0FBTyxRQUFRLENBQVEsU0FBUyxFQUFFLG9CQUFvQixDQUFDLENBQUM7QUFDMUQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdG9yLCBTaWduYWwsIGluamVjdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyByeE1ldGhvZCB9IGZyb20gXCJAbmdyeC9zaWduYWxzL3J4anMtaW50ZXJvcFwiO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgVW5zdWJzY3JpYmFibGUsIG1hcCwgcGlwZSB9IGZyb20gXCJyeGpzXCI7XG5cblxudHlwZSBSeE1ldGhvZElucHV0PElucHV0PiA9IElucHV0IHwgT2JzZXJ2YWJsZTxJbnB1dD4gfCBTaWduYWw8SW5wdXQ+O1xuXG50eXBlIFJ4TWV0aG9kPElucHV0LCBNZXRob2RJbnB1dCA9IElucHV0LCBNZXRob2RSZXN1bHQgPSB1bmtub3duPiA9ICgoXG4gIGlucHV0OiBSeE1ldGhvZElucHV0PElucHV0PixcbiAgcmVzdWx0TWV0aG9kOiAoaW5wdXQ6IE1ldGhvZElucHV0KSA9PiBNZXRob2RSZXN1bHRcbikgPT4gVW5zdWJzY3JpYmFibGUpICYgVW5zdWJzY3JpYmFibGU7XG5cbmV4cG9ydCBmdW5jdGlvbiByZWR1eE1ldGhvZDxJbnB1dCwgTWV0aG9kSW5wdXQgPSBJbnB1dD4oXG4gIGdlbmVyYXRvcjogKHNvdXJjZSQ6IE9ic2VydmFibGU8SW5wdXQ+KSA9PiBPYnNlcnZhYmxlPE1ldGhvZElucHV0PixcbiAgY29uZmlnPzogeyBpbmplY3Rvcj86IEluamVjdG9yIH1cbik6IFJ4TWV0aG9kPElucHV0LCBNZXRob2RJbnB1dD47XG5leHBvcnQgZnVuY3Rpb24gcmVkdXhNZXRob2Q8SW5wdXQsIE1ldGhvZElucHV0ID0gSW5wdXQsIE1ldGhvZFJlc3VsdCA9IHVua25vd24+KFxuICBnZW5lcmF0b3I6IChzb3VyY2UkOiBPYnNlcnZhYmxlPElucHV0PikgPT4gT2JzZXJ2YWJsZTxNZXRob2RJbnB1dD4sXG4gIHJlc3VsdE1ldGhvZDogKGlucHV0OiBNZXRob2RJbnB1dCkgPT4gTWV0aG9kUmVzdWx0LFxuICBjb25maWc/OiB7XG4gICAgaW5qZWN0b3I/OiBJbmplY3RvclxuICB9XG4pOiBSeE1ldGhvZDxJbnB1dCwgTWV0aG9kSW5wdXQsIE1ldGhvZFJlc3VsdD47XG5leHBvcnQgZnVuY3Rpb24gcmVkdXhNZXRob2Q8SW5wdXQsIE1ldGhvZElucHV0ID0gSW5wdXQsIE1ldGhvZFJlc3VsdCA9IHVua25vd24+KFxuICBnZW5lcmF0b3I6IChzb3VyY2UkOiBPYnNlcnZhYmxlPElucHV0PikgPT4gT2JzZXJ2YWJsZTxNZXRob2RJbnB1dD4sXG4gIHJlc3VsdE1ldGhvZE9yQ29uZmlnPzogKChpbnB1dDogTWV0aG9kSW5wdXQpID0+IE1ldGhvZFJlc3VsdCkgfCB7XG4gICAgaW5qZWN0b3I/OiBJbmplY3RvclxuICB9LFxuICBjb25maWc/OiB7XG4gICAgaW5qZWN0b3I/OiBJbmplY3RvclxuICB9XG4pOiBSeE1ldGhvZDxJbnB1dCwgTWV0aG9kSW5wdXQsIE1ldGhvZFJlc3VsdD4gIHtcbiAgY29uc3QgaW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpO1xuXG4gIGlmICh0eXBlb2YgcmVzdWx0TWV0aG9kT3JDb25maWcgPT09ICdmdW5jdGlvbicpIHtcbiAgICBsZXQgdW5zdWJzY3JpYmFibGU6IFVuc3Vic2NyaWJhYmxlO1xuICAgIGNvbnN0IGlucHV0UmVzdWx0Rm4gPSAoKFxuICAgICAgaW5wdXQ6IFJ4TWV0aG9kSW5wdXQ8SW5wdXQ+LFxuICAgICAgcmVzdWx0TWV0aG9kID0gcmVzdWx0TWV0aG9kT3JDb25maWdcbiAgICApID0+IHtcblxuICAgICAgY29uc3QgcnhNZXRob2RXaXRoUmVzdWx0ID0gcnhNZXRob2Q8SW5wdXQ+KHBpcGUoXG4gICAgICAgIGdlbmVyYXRvcixcbiAgICAgICAgbWFwKHJlc3VsdE1ldGhvZClcbiAgICAgICksIHtcbiAgICAgICAgLi4uKGNvbmZpZyB8fCB7fSksXG4gICAgICAgIGluamVjdG9yOiBjb25maWc/LmluamVjdG9yIHx8IGluamVjdG9yXG4gICAgICB9KTtcbiAgICAgIGNvbnN0IHJ4V2l0aElucHV0ID0gcnhNZXRob2RXaXRoUmVzdWx0KGlucHV0KTtcbiAgICAgIHVuc3Vic2NyaWJhYmxlID0geyB1bnN1YnNjcmliZTogcnhXaXRoSW5wdXQudW5zdWJzY3JpYmUuYmluZChyeFdpdGhJbnB1dCkgfTtcblxuICAgICAgcmV0dXJuIHJ4V2l0aElucHV0O1xuICAgIH0pIGFzIFJ4TWV0aG9kPElucHV0LCBNZXRob2RJbnB1dCwgTWV0aG9kUmVzdWx0PjtcblxuICAgIGlucHV0UmVzdWx0Rm4udW5zdWJzY3JpYmUgPSAoKSA9PiB1bnN1YnNjcmliYWJsZT8udW5zdWJzY3JpYmUoKTtcblxuICAgIHJldHVybiBpbnB1dFJlc3VsdEZuO1xuICB9XG5cbiAgcmV0dXJuIHJ4TWV0aG9kPElucHV0PihnZW5lcmF0b3IsIHJlc3VsdE1ldGhvZE9yQ29uZmlnKTtcbn1cbiJdfQ==
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVkdXgtbWV0aG9kLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZ3J4LXRvb2xraXQvc3JjL2xpYi9yZWR1eC1jb25uZWN0b3Ivcnhqcy1pbnRlcm9wL3JlZHV4LW1ldGhvZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdEQsT0FBTyxFQUE4QixHQUFHLEVBQUUsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBcUI3RCxNQUFNLFVBQVUsV0FBVyxDQUN6QixTQUFrRSxFQUNsRSxvQkFFQyxFQUNELE1BRUM7SUFFRCxNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7SUFFbEMsSUFBSSxPQUFPLG9CQUFvQixLQUFLLFVBQVUsRUFBRSxDQUFDO1FBQy9DLElBQUksY0FBOEIsQ0FBQztRQUNuQyxNQUFNLGFBQWEsR0FBRyxDQUFDLENBQ3JCLEtBQTJCLEVBQzNCLFlBQVksR0FBRyxvQkFBb0IsRUFDbkMsRUFBRTtZQUVGLE1BQU0sa0JBQWtCLEdBQUcsUUFBUSxDQUFRLElBQUksQ0FDN0MsU0FBUyxFQUNULEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FDbEIsRUFBRTtnQkFDRCxHQUFHLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQztnQkFDakIsUUFBUSxFQUFFLE1BQU0sRUFBRSxRQUFRLElBQUksUUFBUTthQUN2QyxDQUFDLENBQUM7WUFDSCxNQUFNLFdBQVcsR0FBRyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUM5QyxjQUFjLEdBQUcsRUFBRSxXQUFXLEVBQUUsV0FBVyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQztZQUU1RSxPQUFPLFdBQVcsQ0FBQztRQUNyQixDQUFDLENBQStDLENBQUM7UUFFakQsYUFBYSxDQUFDLFdBQVcsR0FBRyxHQUFHLEVBQUUsQ0FBQyxjQUFjLEVBQUUsV0FBVyxFQUFFLENBQUM7UUFFaEUsT0FBTyxhQUFhLENBQUM7SUFDdkIsQ0FBQztJQUVELE9BQU8sUUFBUSxDQUFRLFNBQVMsRUFBRSxvQkFBb0IsQ0FBQyxDQUFDO0FBQzFELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RvciwgU2lnbmFsLCBpbmplY3QgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgcnhNZXRob2QgfSBmcm9tIFwiQG5ncngvc2lnbmFscy9yeGpzLWludGVyb3BcIjtcbmltcG9ydCB7IE9ic2VydmFibGUsIFVuc3Vic2NyaWJhYmxlLCBtYXAsIHBpcGUgfSBmcm9tIFwicnhqc1wiO1xuXG5cbnR5cGUgUnhNZXRob2RJbnB1dDxJbnB1dD4gPSBJbnB1dCB8IE9ic2VydmFibGU8SW5wdXQ+IHwgU2lnbmFsPElucHV0PjtcblxudHlwZSBSeE1ldGhvZDxJbnB1dCwgTWV0aG9kSW5wdXQgPSBJbnB1dCwgTWV0aG9kUmVzdWx0ID0gdW5rbm93bj4gPSAoKFxuICBpbnB1dDogUnhNZXRob2RJbnB1dDxJbnB1dD4sXG4gIHJlc3VsdE1ldGhvZDogKGlucHV0OiBNZXRob2RJbnB1dCkgPT4gTWV0aG9kUmVzdWx0XG4pID0+IFVuc3Vic2NyaWJhYmxlKSAmIFVuc3Vic2NyaWJhYmxlO1xuXG5leHBvcnQgZnVuY3Rpb24gcmVkdXhNZXRob2Q8SW5wdXQsIE1ldGhvZElucHV0ID0gSW5wdXQ+KFxuICBnZW5lcmF0b3I6IChzb3VyY2UkOiBPYnNlcnZhYmxlPElucHV0PikgPT4gT2JzZXJ2YWJsZTxNZXRob2RJbnB1dD4sXG4gIGNvbmZpZz86IHsgaW5qZWN0b3I/OiBJbmplY3RvciB9XG4pOiBSeE1ldGhvZDxJbnB1dCwgTWV0aG9kSW5wdXQ+O1xuZXhwb3J0IGZ1bmN0aW9uIHJlZHV4TWV0aG9kPElucHV0LCBNZXRob2RJbnB1dCA9IElucHV0LCBNZXRob2RSZXN1bHQgPSB1bmtub3duPihcbiAgZ2VuZXJhdG9yOiAoc291cmNlJDogT2JzZXJ2YWJsZTxJbnB1dD4pID0+IE9ic2VydmFibGU8TWV0aG9kSW5wdXQ+LFxuICByZXN1bHRNZXRob2Q6IChpbnB1dDogTWV0aG9kSW5wdXQpID0+IE1ldGhvZFJlc3VsdCxcbiAgY29uZmlnPzoge1xuICAgIGluamVjdG9yPzogSW5qZWN0b3JcbiAgfVxuKTogUnhNZXRob2Q8SW5wdXQsIE1ldGhvZElucHV0LCBNZXRob2RSZXN1bHQ+O1xuZXhwb3J0IGZ1bmN0aW9uIHJlZHV4TWV0aG9kPElucHV0LCBNZXRob2RJbnB1dCA9IElucHV0LCBNZXRob2RSZXN1bHQgPSB1bmtub3duPihcbiAgZ2VuZXJhdG9yOiAoc291cmNlJDogT2JzZXJ2YWJsZTxJbnB1dD4pID0+IE9ic2VydmFibGU8TWV0aG9kSW5wdXQ+LFxuICByZXN1bHRNZXRob2RPckNvbmZpZz86ICgoaW5wdXQ6IE1ldGhvZElucHV0KSA9PiBNZXRob2RSZXN1bHQpIHwge1xuICAgIGluamVjdG9yPzogSW5qZWN0b3JcbiAgfSxcbiAgY29uZmlnPzoge1xuICAgIGluamVjdG9yPzogSW5qZWN0b3JcbiAgfVxuKTogUnhNZXRob2Q8SW5wdXQsIE1ldGhvZElucHV0LCBNZXRob2RSZXN1bHQ+ICB7XG4gIGNvbnN0IGluamVjdG9yID0gaW5qZWN0KEluamVjdG9yKTtcblxuICBpZiAodHlwZW9mIHJlc3VsdE1ldGhvZE9yQ29uZmlnID09PSAnZnVuY3Rpb24nKSB7XG4gICAgbGV0IHVuc3Vic2NyaWJhYmxlOiBVbnN1YnNjcmliYWJsZTtcbiAgICBjb25zdCBpbnB1dFJlc3VsdEZuID0gKChcbiAgICAgIGlucHV0OiBSeE1ldGhvZElucHV0PElucHV0PixcbiAgICAgIHJlc3VsdE1ldGhvZCA9IHJlc3VsdE1ldGhvZE9yQ29uZmlnXG4gICAgKSA9PiB7XG5cbiAgICAgIGNvbnN0IHJ4TWV0aG9kV2l0aFJlc3VsdCA9IHJ4TWV0aG9kPElucHV0PihwaXBlKFxuICAgICAgICBnZW5lcmF0b3IsXG4gICAgICAgIG1hcChyZXN1bHRNZXRob2QpXG4gICAgICApLCB7XG4gICAgICAgIC4uLihjb25maWcgfHwge30pLFxuICAgICAgICBpbmplY3RvcjogY29uZmlnPy5pbmplY3RvciB8fCBpbmplY3RvclxuICAgICAgfSk7XG4gICAgICBjb25zdCByeFdpdGhJbnB1dCA9IHJ4TWV0aG9kV2l0aFJlc3VsdChpbnB1dCk7XG4gICAgICB1bnN1YnNjcmliYWJsZSA9IHsgdW5zdWJzY3JpYmU6IHJ4V2l0aElucHV0LnVuc3Vic2NyaWJlLmJpbmQocnhXaXRoSW5wdXQpIH07XG5cbiAgICAgIHJldHVybiByeFdpdGhJbnB1dDtcbiAgICB9KSBhcyBSeE1ldGhvZDxJbnB1dCwgTWV0aG9kSW5wdXQsIE1ldGhvZFJlc3VsdD47XG5cbiAgICBpbnB1dFJlc3VsdEZuLnVuc3Vic2NyaWJlID0gKCkgPT4gdW5zdWJzY3JpYmFibGU/LnVuc3Vic2NyaWJlKCk7XG5cbiAgICByZXR1cm4gaW5wdXRSZXN1bHRGbjtcbiAgfVxuXG4gIHJldHVybiByeE1ldGhvZDxJbnB1dD4oZ2VuZXJhdG9yLCByZXN1bHRNZXRob2RPckNvbmZpZyk7XG59XG4iXX0=
@@ -28,10 +28,10 @@ export class SignalReduxStore {
28
28
  resultMethod: mapper.resultMethod
29
29
  }));
30
30
  }
31
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: SignalReduxStore, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
32
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: SignalReduxStore, providedIn: 'root' }); }
31
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: SignalReduxStore, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
32
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: SignalReduxStore, providedIn: 'root' }); }
33
33
  }
34
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: SignalReduxStore, decorators: [{
34
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: SignalReduxStore, decorators: [{
35
35
  type: Injectable,
36
36
  args: [{
37
37
  providedIn: 'root'
@@ -40,4 +40,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImpor
40
40
  export function injectReduxDispatch() {
41
41
  return inject(SignalReduxStore).dispatch;
42
42
  }
43
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbmFsLXJlZHV4LXN0b3JlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZ3J4LXRvb2xraXQvc3JjL2xpYi9yZWR1eC1jb25uZWN0b3Ivc2lnbmFsLXJlZHV4LXN0b3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUV0RCxPQUFPLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVqQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxRQUFRLENBQUM7O0FBTTFDLE1BQU0sT0FBTyxnQkFBZ0I7SUFIN0I7UUFJVSxlQUFVLEdBR2IsRUFBRSxDQUFDO1FBRVIsYUFBUSxHQUFHLFFBQVEsQ0FBUyxJQUFJLENBQzlCLEdBQUcsQ0FBQyxDQUFDLE1BQWMsRUFBRSxFQUFFO1lBQ3JCLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQy9DLElBQUksU0FBUyxFQUFFLFdBQVcsRUFBRTtnQkFDMUIsSUFDRSxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDO29CQUN2QyxTQUFTLENBQUMsWUFBWSxFQUN0QjtvQkFDQSxPQUFPLFNBQVMsQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBUyxFQUFFLEVBQUU7d0JBQ2pELE1BQU0sWUFBWSxHQUFHLFNBQVMsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDLENBQVcsQ0FBQzt3QkFDM0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQztvQkFDOUIsQ0FBQyxDQUFDLENBQUM7aUJBQ0o7Z0JBRUQsT0FBTyxTQUFTLEVBQUUsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO2FBQ3ZDO1lBRUQsT0FBTztRQUNULENBQUMsQ0FBQyxDQUNILENBQUMsQ0FBQztLQWFKO0lBWEMsOERBQThEO0lBQzlELG1CQUFtQixDQUFDLE9BQWlEO1FBQ25FLE9BQU8sQ0FBQyxPQUFPLENBQ2IsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FDNUIsTUFBTSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxHQUFHO1lBQ2xDLFdBQVcsRUFBRSxNQUFNLENBQUMsV0FBVztZQUMvQixZQUFZLEVBQUUsTUFBTSxDQUFDLFlBQVk7U0FDbEMsQ0FDRixDQUNGLENBQUM7SUFDSixDQUFDOzhHQXJDVSxnQkFBZ0I7a0hBQWhCLGdCQUFnQixjQUZmLE1BQU07OzJGQUVQLGdCQUFnQjtrQkFINUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7O0FBeUNELE1BQU0sVUFBVSxtQkFBbUI7SUFDakMsT0FBTyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxRQUFRLENBQUM7QUFDM0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIGluamVjdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyByeE1ldGhvZCB9IGZyb20gXCJAbmdyeC9zaWduYWxzL3J4anMtaW50ZXJvcFwiO1xuaW1wb3J0IHsgQWN0aW9uLCBBY3Rpb25DcmVhdG9yIH0gZnJvbSBcIkBuZ3J4L3N0b3JlXCI7XG5pbXBvcnQgeyBwaXBlLCB0YXAgfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHsgTWFwcGVyVHlwZXMgfSBmcm9tIFwiLi9tb2RlbFwiO1xuaW1wb3J0IHsgaXNVbnN1YnNjcmliYWJsZSB9IGZyb20gXCIuL3V0aWxcIjtcblxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBTaWduYWxSZWR1eFN0b3JlIHtcbiAgcHJpdmF0ZSBtYXBwZXJEaWN0OiBSZWNvcmQ8c3RyaW5nLCB7XG4gICAgc3RvcmVNZXRob2Q6ICguLi5hcmdzOiB1bmtub3duW10pID0+IHVua25vd24sXG4gICAgcmVzdWx0TWV0aG9kPzogKC4uLmFyZ3M6IHVua25vd25bXSkgPT4gdW5rbm93bixcbiAgfT4gPSB7fTtcblxuICBkaXNwYXRjaCA9IHJ4TWV0aG9kPEFjdGlvbj4ocGlwZShcbiAgICB0YXAoKGFjdGlvbjogQWN0aW9uKSA9PiB7XG4gICAgICBjb25zdCBjYWxsYmFja3MgPSB0aGlzLm1hcHBlckRpY3RbYWN0aW9uLnR5cGVdO1xuICAgICAgaWYgKGNhbGxiYWNrcz8uc3RvcmVNZXRob2QpIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIGlzVW5zdWJzY3JpYmFibGUoY2FsbGJhY2tzLnN0b3JlTWV0aG9kKSAmJlxuICAgICAgICAgIGNhbGxiYWNrcy5yZXN1bHRNZXRob2RcbiAgICAgICAgKSB7XG4gICAgICAgICAgcmV0dXJuIGNhbGxiYWNrcy5zdG9yZU1ldGhvZChhY3Rpb24sIChhOiBBY3Rpb24pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdEFjdGlvbiA9IGNhbGxiYWNrcy5yZXN1bHRNZXRob2Q/LihhKSBhcyBBY3Rpb247XG4gICAgICAgICAgICB0aGlzLmRpc3BhdGNoKHJlc3VsdEFjdGlvbik7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gY2FsbGJhY2tzPy5zdG9yZU1ldGhvZChhY3Rpb24pO1xuICAgICAgfVxuXG4gICAgICByZXR1cm47XG4gICAgfSlcbiAgKSk7XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgY29ubmVjdEZlYXR1cmVTdG9yZShtYXBwZXJzOiBNYXBwZXJUeXBlczxBY3Rpb25DcmVhdG9yPGFueSwgYW55PltdPltdKTogdm9pZCB7XG4gICAgbWFwcGVycy5mb3JFYWNoKFxuICAgICAgbWFwcGVyID0+IG1hcHBlci50eXBlcy5mb3JFYWNoKFxuICAgICAgICBhY3Rpb24gPT4gdGhpcy5tYXBwZXJEaWN0W2FjdGlvbl0gPSB7XG4gICAgICAgICAgc3RvcmVNZXRob2Q6IG1hcHBlci5zdG9yZU1ldGhvZCxcbiAgICAgICAgICByZXN1bHRNZXRob2Q6IG1hcHBlci5yZXN1bHRNZXRob2RcbiAgICAgICAgfVxuICAgICAgKVxuICAgICk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdFJlZHV4RGlzcGF0Y2goKSB7XG4gIHJldHVybiBpbmplY3QoU2lnbmFsUmVkdXhTdG9yZSkuZGlzcGF0Y2g7XG59XG4iXX0=
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbmFsLXJlZHV4LXN0b3JlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZ3J4LXRvb2xraXQvc3JjL2xpYi9yZWR1eC1jb25uZWN0b3Ivc2lnbmFsLXJlZHV4LXN0b3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUV0RCxPQUFPLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVqQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxRQUFRLENBQUM7O0FBTTFDLE1BQU0sT0FBTyxnQkFBZ0I7SUFIN0I7UUFJVSxlQUFVLEdBR2IsRUFBRSxDQUFDO1FBRVIsYUFBUSxHQUFHLFFBQVEsQ0FBUyxJQUFJLENBQzlCLEdBQUcsQ0FBQyxDQUFDLE1BQWMsRUFBRSxFQUFFO1lBQ3JCLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQy9DLElBQUksU0FBUyxFQUFFLFdBQVcsRUFBRSxDQUFDO2dCQUMzQixJQUNFLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUM7b0JBQ3ZDLFNBQVMsQ0FBQyxZQUFZLEVBQ3RCLENBQUM7b0JBQ0QsT0FBTyxTQUFTLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQVMsRUFBRSxFQUFFO3dCQUNqRCxNQUFNLFlBQVksR0FBRyxTQUFTLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQyxDQUFXLENBQUM7d0JBQzNELElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUM7b0JBQzlCLENBQUMsQ0FBQyxDQUFDO2dCQUNMLENBQUM7Z0JBRUQsT0FBTyxTQUFTLEVBQUUsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3hDLENBQUM7WUFFRCxPQUFPO1FBQ1QsQ0FBQyxDQUFDLENBQ0gsQ0FBQyxDQUFDO0tBYUo7SUFYQyw4REFBOEQ7SUFDOUQsbUJBQW1CLENBQUMsT0FBaUQ7UUFDbkUsT0FBTyxDQUFDLE9BQU8sQ0FDYixNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUM1QixNQUFNLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLEdBQUc7WUFDbEMsV0FBVyxFQUFFLE1BQU0sQ0FBQyxXQUFXO1lBQy9CLFlBQVksRUFBRSxNQUFNLENBQUMsWUFBWTtTQUNsQyxDQUNGLENBQ0YsQ0FBQztJQUNKLENBQUM7OEdBckNVLGdCQUFnQjtrSEFBaEIsZ0JBQWdCLGNBRmYsTUFBTTs7MkZBRVAsZ0JBQWdCO2tCQUg1QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7QUF5Q0QsTUFBTSxVQUFVLG1CQUFtQjtJQUNqQyxPQUFPLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLFFBQVEsQ0FBQztBQUMzQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgaW5qZWN0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IHJ4TWV0aG9kIH0gZnJvbSBcIkBuZ3J4L3NpZ25hbHMvcnhqcy1pbnRlcm9wXCI7XG5pbXBvcnQgeyBBY3Rpb24sIEFjdGlvbkNyZWF0b3IgfSBmcm9tIFwiQG5ncngvc3RvcmVcIjtcbmltcG9ydCB7IHBpcGUsIHRhcCB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgeyBNYXBwZXJUeXBlcyB9IGZyb20gXCIuL21vZGVsXCI7XG5pbXBvcnQgeyBpc1Vuc3Vic2NyaWJhYmxlIH0gZnJvbSBcIi4vdXRpbFwiO1xuXG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFNpZ25hbFJlZHV4U3RvcmUge1xuICBwcml2YXRlIG1hcHBlckRpY3Q6IFJlY29yZDxzdHJpbmcsIHtcbiAgICBzdG9yZU1ldGhvZDogKC4uLmFyZ3M6IHVua25vd25bXSkgPT4gdW5rbm93bixcbiAgICByZXN1bHRNZXRob2Q/OiAoLi4uYXJnczogdW5rbm93bltdKSA9PiB1bmtub3duLFxuICB9PiA9IHt9O1xuXG4gIGRpc3BhdGNoID0gcnhNZXRob2Q8QWN0aW9uPihwaXBlKFxuICAgIHRhcCgoYWN0aW9uOiBBY3Rpb24pID0+IHtcbiAgICAgIGNvbnN0IGNhbGxiYWNrcyA9IHRoaXMubWFwcGVyRGljdFthY3Rpb24udHlwZV07XG4gICAgICBpZiAoY2FsbGJhY2tzPy5zdG9yZU1ldGhvZCkge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgaXNVbnN1YnNjcmliYWJsZShjYWxsYmFja3Muc3RvcmVNZXRob2QpICYmXG4gICAgICAgICAgY2FsbGJhY2tzLnJlc3VsdE1ldGhvZFxuICAgICAgICApIHtcbiAgICAgICAgICByZXR1cm4gY2FsbGJhY2tzLnN0b3JlTWV0aG9kKGFjdGlvbiwgKGE6IEFjdGlvbikgPT4ge1xuICAgICAgICAgICAgY29uc3QgcmVzdWx0QWN0aW9uID0gY2FsbGJhY2tzLnJlc3VsdE1ldGhvZD8uKGEpIGFzIEFjdGlvbjtcbiAgICAgICAgICAgIHRoaXMuZGlzcGF0Y2gocmVzdWx0QWN0aW9uKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBjYWxsYmFja3M/LnN0b3JlTWV0aG9kKGFjdGlvbik7XG4gICAgICB9XG5cbiAgICAgIHJldHVybjtcbiAgICB9KVxuICApKTtcblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICBjb25uZWN0RmVhdHVyZVN0b3JlKG1hcHBlcnM6IE1hcHBlclR5cGVzPEFjdGlvbkNyZWF0b3I8YW55LCBhbnk+W10+W10pOiB2b2lkIHtcbiAgICBtYXBwZXJzLmZvckVhY2goXG4gICAgICBtYXBwZXIgPT4gbWFwcGVyLnR5cGVzLmZvckVhY2goXG4gICAgICAgIGFjdGlvbiA9PiB0aGlzLm1hcHBlckRpY3RbYWN0aW9uXSA9IHtcbiAgICAgICAgICBzdG9yZU1ldGhvZDogbWFwcGVyLnN0b3JlTWV0aG9kLFxuICAgICAgICAgIHJlc3VsdE1ldGhvZDogbWFwcGVyLnJlc3VsdE1ldGhvZFxuICAgICAgICB9XG4gICAgICApXG4gICAgKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0UmVkdXhEaXNwYXRjaCgpIHtcbiAgcmV0dXJuIGluamVjdChTaWduYWxSZWR1eFN0b3JlKS5kaXNwYXRjaDtcbn1cbiJdfQ==
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1wdHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL25ncngtdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9lbXB0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHlwZXNcbmV4cG9ydCB0eXBlIEVtdHB5ID0ge307Il19
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1wdHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL25ncngtdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9lbXB0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgRW1wdHkgPSB7fTtcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJldHRpZnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL25ncngtdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9wcmV0dGlmeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgUHJldHRpZnk8VHlwZSBleHRlbmRzIHt9PiA9IHtcbiAgW0tleSBpbiBrZXlvZiBUeXBlXTogVHlwZVtLZXldO1xufTtcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbmFsLXN0b3JlLW1vZGVscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmdyeC10b29sa2l0L3NyYy9saWIvc2hhcmVkL3NpZ25hbC1zdG9yZS1tb2RlbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVGhpcyBmaWxlIGNvbnRhaW5zIGNvcGllcyBvZiB0eXBlcyBvZiB0aGUgU2lnbmFsIFN0b3JlIHdoaWNoIGFyZSBub3QgcHVibGljLlxuICpcbiAqIFNpbmNlIGNlcnRhaW4gZmVhdHVyZXMgZGVwZW5kIG9uIHRoZW0sIGlmIHdlIGRvbid0IHdhbnQgdG8gYnJlYWtcbiAqIHRoZSBlbmNhcHN1bGF0aW9uIG9mIEBuZ3J4L3NpZ25hbHMsIHdlIGRlY2lkZWQgdG8gY29weSB0aGVtLlxuICpcbiAqIFNpbmNlIFR5cGVTY3JpcHQgaXMgYmFzZWQgb24gc3RydWN0dXJhbCB0eXBpbmcsIHdlIGNhbiBnZXQgYXdheSB3aXRoIGl0LlxuICpcbiAqIElmIEBuZ3J4L3NpZ25hbHMgY2hhbmdlcyBpdHMgaW50ZXJuYWwgdHlwZXMsIHdlIGNhdGNoIHRoZW0gdmlhIGludGVncmF0aW9uXG4gKiB0ZXN0cy5cbiAqXG4gKiBCZWNhdXNlIG9mIHRoZSBcInRpZ2h0IGNvdXBsaW5nXCIsIHRoZSB0b29sa2l0IGRvZXNuJ3QgaGF2ZSB2ZXJzaW9uIHJhbmdlXG4gKiB0byBAbmdyeC9zaWduYWwsIGJ1dCBpcyB2ZXJ5IHByZWNpc2UuXG4gKi9cbmltcG9ydCB7IFNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRW50aXR5SWQgfSBmcm9tICdAbmdyeC9zaWduYWxzL2VudGl0aWVzJztcblxuZXhwb3J0IHR5cGUgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0ID0ge1xuICBzdGF0ZTogb2JqZWN0O1xuICBjb21wdXRlZDogUmVjb3JkPHN0cmluZywgU2lnbmFsPHVua25vd24+PjtcbiAgbWV0aG9kczogUmVjb3JkPHN0cmluZywgRnVuY3Rpb24+O1xufTtcblxuZXhwb3J0IHR5cGUgRW1wdHlGZWF0dXJlUmVzdWx0ID0ge1xuICBzdGF0ZToge307XG4gIGNvbXB1dGVkOiB7fTtcbiAgbWV0aG9kczoge307XG59O1xuXG4vLyB3aXRoRW50aXRlcyBtb2RlbHNcbmV4cG9ydCB0eXBlIEVudGl0eVN0YXRlPEVudGl0eT4gPSB7XG4gIGVudGl0eU1hcDogUmVjb3JkPEVudGl0eUlkLCBFbnRpdHk+O1xuICBpZHM6IEVudGl0eUlkW107XG59O1xuXG5leHBvcnQgdHlwZSBFbnRpdHlDb21wdXRlZDxFbnRpdHk+ID0ge1xuICBlbnRpdGllczogU2lnbmFsPEVudGl0eVtdPjtcbn07XG5cbmV4cG9ydCB0eXBlIE5hbWVkRW50aXR5Q29tcHV0ZWQ8RW50aXR5LCBDb2xsZWN0aW9uIGV4dGVuZHMgc3RyaW5nPiA9IHtcbiAgW0sgaW4ga2V5b2YgRW50aXR5Q29tcHV0ZWQ8RW50aXR5PiBhcyBgJHtDb2xsZWN0aW9ufSR7Q2FwaXRhbGl6ZTxLPn1gXTogRW50aXR5Q29tcHV0ZWQ8RW50aXR5PltLXTtcbn07XG4iXX0=
@@ -19,7 +19,7 @@ export function withCallState(config) {
19
19
  [errorKey]: computed(() => {
20
20
  const v = callState();
21
21
  return typeof v === 'object' ? v.error : null;
22
- })
22
+ }),
23
23
  };
24
24
  }));
25
25
  }
@@ -49,10 +49,12 @@ export function setError(error, prop) {
49
49
  errorMessage = String(error);
50
50
  }
51
51
  if (prop) {
52
- return { [`${prop}CallState`]: { error: errorMessage } };
52
+ return {
53
+ [`${prop}CallState`]: { error: errorMessage },
54
+ };
53
55
  }
54
56
  else {
55
57
  return { callState: { error: errorMessage } };
56
58
  }
57
59
  }
58
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1jYWxsLXN0YXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9uZ3J4LXRvb2xraXQvc3JjL2xpYi93aXRoLWNhbGwtc3RhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFVLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBRUwsa0JBQWtCLEVBQ2xCLFlBQVksRUFDWixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUEyQnZCLE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxNQUFnQztJQUMvRCxNQUFNLElBQUksR0FBRyxNQUFNLEVBQUUsVUFBVSxDQUFDO0lBQ2hDLE9BQU87UUFDTCxZQUFZLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBRSxHQUFHLE1BQU0sQ0FBQyxVQUFVLFdBQVcsQ0FBQyxDQUFDLENBQUMsV0FBVztRQUNuRSxVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxVQUFVLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUztRQUM1RCxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxVQUFVLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUTtRQUN6RCxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxVQUFVLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTztLQUN2RCxDQUFDO0FBQ0osQ0FBQztBQW9CRCxNQUFNLFVBQVUsYUFBYSxDQUE0QixNQUV4RDtJQUNDLE1BQU0sRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsR0FDckQsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUM7SUFFM0IsT0FBTyxrQkFBa0IsQ0FDdkIsU0FBUyxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUNyQyxZQUFZLENBQUMsQ0FBQyxLQUFzQyxFQUFFLEVBQUU7UUFFdEQsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDLFlBQVksQ0FBc0IsQ0FBQztRQUUzRCxPQUFPO1lBQ0wsQ0FBQyxVQUFVLENBQUMsRUFBRSxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsU0FBUyxFQUFFLEtBQUssU0FBUyxDQUFDO1lBQ3ZELENBQUMsU0FBUyxDQUFDLEVBQUUsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLFNBQVMsRUFBRSxLQUFLLFFBQVEsQ0FBQztZQUNyRCxDQUFDLFFBQVEsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxHQUFHLEVBQUU7Z0JBQ3hCLE1BQU0sQ0FBQyxHQUFHLFNBQVMsRUFBRSxDQUFDO2dCQUN0QixPQUFPLE9BQU8sQ0FBQyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1lBQ2hELENBQUMsQ0FBQztTQUNILENBQUE7SUFDSCxDQUFDLENBQUMsQ0FDSCxDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSxVQUFVLENBQ3hCLElBQVc7SUFFWCxJQUFJLElBQUksRUFBRTtRQUNSLE9BQU8sRUFBRSxDQUFDLEdBQUcsSUFBSSxXQUFXLENBQUMsRUFBRSxTQUFTLEVBQXdCLENBQUM7S0FDbEU7SUFFRCxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBd0IsQ0FBQztBQUN4RCxDQUFDO0FBRUQsTUFBTSxVQUFVLFNBQVMsQ0FDdkIsSUFBVztJQUdYLElBQUksSUFBSSxFQUFFO1FBQ1IsT0FBTyxFQUFFLENBQUMsR0FBRyxJQUFJLFdBQVcsQ0FBQyxFQUFFLFFBQVEsRUFBd0IsQ0FBQztLQUNqRTtTQUNJO1FBQ0gsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQXdCLENBQUM7S0FDdEQ7QUFDSCxDQUFDO0FBRUQsTUFBTSxVQUFVLFFBQVEsQ0FDdEIsS0FBYyxFQUNkLElBQVc7SUFHVCxJQUFJLFlBQVksR0FBRyxFQUFFLENBQUM7SUFFdEIsSUFBSSxDQUFDLEtBQUssRUFBRTtRQUNWLFlBQVksR0FBRyxFQUFFLENBQUM7S0FDbkI7U0FDSSxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxTQUFTLElBQUksS0FBSyxFQUFFO1FBQ3hELFlBQVksR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0tBQ3RDO1NBQ0k7UUFDSCxZQUFZLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0tBQzlCO0lBR0QsSUFBSSxJQUFJLEVBQUU7UUFDUixPQUFPLEVBQUUsQ0FBQyxHQUFHLElBQUksV0FBVyxDQUFDLEVBQUUsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLEVBQXdCLENBQUM7S0FDaEY7U0FDSTtRQUNILE9BQU8sRUFBRSxTQUFTLEVBQUUsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLEVBQXdCLENBQUM7S0FDckU7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2lnbmFsLCBjb21wdXRlZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgU2lnbmFsU3RvcmVGZWF0dXJlLFxuICBzaWduYWxTdG9yZUZlYXR1cmUsXG4gIHdpdGhDb21wdXRlZCxcbiAgd2l0aFN0YXRlLFxufSBmcm9tICdAbmdyeC9zaWduYWxzJztcbmltcG9ydCB7IEVtdHB5IH0gZnJvbSAnLi9zaGFyZWQvZW1wdHknO1xuXG5leHBvcnQgdHlwZSBDYWxsU3RhdGUgPSAnaW5pdCcgfCAnbG9hZGluZycgfCAnbG9hZGVkJyB8IHsgZXJyb3I6IHN0cmluZyB9O1xuXG5leHBvcnQgdHlwZSBDYWxsU3RhdGVTbGljZSA9IHtcbiAgY2FsbFN0YXRlOiBDYWxsU3RhdGVcbn1cblxuZXhwb3J0IHR5cGUgTmFtZWRDYWxsU3RhdGVTbGljZTxDb2xsZWN0aW9uIGV4dGVuZHMgc3RyaW5nPiA9IHtcbiAgW0sgaW4ga2V5b2YgQ2FsbFN0YXRlU2xpY2UgYXMgYCR7Q29sbGVjdGlvbn0ke0NhcGl0YWxpemU8Sz59YF06IENhbGxTdGF0ZVNsaWNlW0tdO1xufVxuXG5leHBvcnQgdHlwZSBDYWxsU3RhdGVTaWduYWxzID0ge1xuICBsb2FkaW5nOiBTaWduYWw8Ym9vbGVhbj47XG4gIGxvYWRlZDogU2lnbmFsPGJvb2xlYW4+O1xuICBlcnJvcjogU2lnbmFsPHN0cmluZyB8IG51bGw+XG59XG5cbmV4cG9ydCB0eXBlIE5hbWVkQ2FsbFN0YXRlU2lnbmFsczxQcm9wIGV4dGVuZHMgc3RyaW5nPiA9IHtcbiAgW0sgaW4ga2V5b2YgQ2FsbFN0YXRlU2lnbmFscyBhcyBgJHtQcm9wfSR7Q2FwaXRhbGl6ZTxLPn1gXTogQ2FsbFN0YXRlU2lnbmFsc1tLXTtcbn1cblxuZXhwb3J0IHR5cGUgU2V0Q2FsbFN0YXRlPFByb3AgZXh0ZW5kcyBzdHJpbmcgfCB1bmRlZmluZWQ+ID0gUHJvcCBleHRlbmRzIHN0cmluZ1xuICA/IE5hbWVkQ2FsbFN0YXRlU2xpY2U8UHJvcD5cbiAgOiBDYWxsU3RhdGVTbGljZTtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldENhbGxTdGF0ZUtleXMoY29uZmlnPzogeyBjb2xsZWN0aW9uPzogc3RyaW5nIH0pIHtcbiAgY29uc3QgcHJvcCA9IGNvbmZpZz8uY29sbGVjdGlvbjtcbiAgcmV0dXJuIHtcbiAgICBjYWxsU3RhdGVLZXk6IHByb3AgPyAgYCR7Y29uZmlnLmNvbGxlY3Rpb259Q2FsbFN0YXRlYCA6ICdjYWxsU3RhdGUnLFxuICAgIGxvYWRpbmdLZXk6IHByb3AgPyBgJHtjb25maWcuY29sbGVjdGlvbn1Mb2FkaW5nYCA6ICdsb2FkaW5nJyxcbiAgICBsb2FkZWRLZXk6IHByb3AgPyBgJHtjb25maWcuY29sbGVjdGlvbn1Mb2FkZWRgIDogJ2xvYWRlZCcsXG4gICAgZXJyb3JLZXk6IHByb3AgPyBgJHtjb25maWcuY29sbGVjdGlvbn1FcnJvcmAgOiAnZXJyb3InLFxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gd2l0aENhbGxTdGF0ZTxDb2xsZWN0aW9uIGV4dGVuZHMgc3RyaW5nPihjb25maWc6IHtcbiAgY29sbGVjdGlvbjogQ29sbGVjdGlvbjtcbn0pOiBTaWduYWxTdG9yZUZlYXR1cmU8XG4gIHsgc3RhdGU6IEVtdHB5LCBzaWduYWxzOiBFbXRweSwgbWV0aG9kczogRW10cHkgfSxcbiAge1xuICAgIHN0YXRlOiBOYW1lZENhbGxTdGF0ZVNsaWNlPENvbGxlY3Rpb24+LFxuICAgIHNpZ25hbHM6IE5hbWVkQ2FsbFN0YXRlU2lnbmFsczxDb2xsZWN0aW9uPixcbiAgICBtZXRob2RzOiBFbXRweVxuICB9XG4+O1xuZXhwb3J0IGZ1bmN0aW9uIHdpdGhDYWxsU3RhdGUoKTogU2lnbmFsU3RvcmVGZWF0dXJlPFxuICB7IHN0YXRlOiBFbXRweSwgc2lnbmFsczogRW10cHksIG1ldGhvZHM6IEVtdHB5IH0sXG4gIHtcbiAgICBzdGF0ZTogQ2FsbFN0YXRlU2xpY2UsXG4gICAgc2lnbmFsczogQ2FsbFN0YXRlU2lnbmFscyxcbiAgICBtZXRob2RzOiBFbXRweVxuICB9XG4+O1xuZXhwb3J0IGZ1bmN0aW9uIHdpdGhDYWxsU3RhdGU8Q29sbGVjdGlvbiBleHRlbmRzIHN0cmluZz4oY29uZmlnPzoge1xuICBjb2xsZWN0aW9uOiBDb2xsZWN0aW9uO1xufSk6IFNpZ25hbFN0b3JlRmVhdHVyZSB7XG4gIGNvbnN0IHsgY2FsbFN0YXRlS2V5LCBlcnJvcktleSwgbG9hZGVkS2V5LCBsb2FkaW5nS2V5IH0gPVxuICAgIGdldENhbGxTdGF0ZUtleXMoY29uZmlnKTtcblxuICByZXR1cm4gc2lnbmFsU3RvcmVGZWF0dXJlKFxuICAgIHdpdGhTdGF0ZSh7IFtjYWxsU3RhdGVLZXldOiAnaW5pdCcgfSksXG4gICAgd2l0aENvbXB1dGVkKChzdGF0ZTogUmVjb3JkPHN0cmluZywgU2lnbmFsPHVua25vd24+PikgPT4ge1xuXG4gICAgICBjb25zdCBjYWxsU3RhdGUgPSBzdGF0ZVtjYWxsU3RhdGVLZXldIGFzIFNpZ25hbDxDYWxsU3RhdGU+O1xuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBbbG9hZGluZ0tleV06IGNvbXB1dGVkKCgpID0+IGNhbGxTdGF0ZSgpID09PSAnbG9hZGluZycpLFxuICAgICAgICBbbG9hZGVkS2V5XTogY29tcHV0ZWQoKCkgPT4gY2FsbFN0YXRlKCkgPT09ICdsb2FkZWQnKSxcbiAgICAgICAgW2Vycm9yS2V5XTogY29tcHV0ZWQoKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IHYgPSBjYWxsU3RhdGUoKTtcbiAgICAgICAgICByZXR1cm4gdHlwZW9mIHYgPT09ICdvYmplY3QnID8gdi5lcnJvciA6IG51bGw7XG4gICAgICAgIH0pXG4gICAgICB9XG4gICAgfSlcbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNldExvYWRpbmc8UHJvcCBleHRlbmRzIHN0cmluZyB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZD4oXG4gIHByb3A/OiBQcm9wXG4pOiBTZXRDYWxsU3RhdGU8UHJvcD4ge1xuICBpZiAocHJvcCkge1xuICAgIHJldHVybiB7IFtgJHtwcm9wfUNhbGxTdGF0ZWBdOiAnbG9hZGluZycgfSBhcyBTZXRDYWxsU3RhdGU8UHJvcD47XG4gIH1cblxuICByZXR1cm4geyBjYWxsU3RhdGU6ICdsb2FkaW5nJyB9IGFzIFNldENhbGxTdGF0ZTxQcm9wPjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNldExvYWRlZDxQcm9wIGV4dGVuZHMgc3RyaW5nIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkPihcbiAgcHJvcD86IFByb3Bcbik6IFNldENhbGxTdGF0ZTxQcm9wPiB7XG5cbiAgaWYgKHByb3ApIHtcbiAgICByZXR1cm4geyBbYCR7cHJvcH1DYWxsU3RhdGVgXTogJ2xvYWRlZCcgfSBhcyBTZXRDYWxsU3RhdGU8UHJvcD47XG4gIH1cbiAgZWxzZSB7XG4gICAgcmV0dXJuIHsgY2FsbFN0YXRlOiAnbG9hZGVkJyB9IGFzIFNldENhbGxTdGF0ZTxQcm9wPjtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gc2V0RXJyb3I8UHJvcCBleHRlbmRzIHN0cmluZyB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZD4oXG4gIGVycm9yOiB1bmtub3duLFxuICBwcm9wPzogUHJvcCxcbiAgKTogU2V0Q2FsbFN0YXRlPFByb3A+IHtcblxuICAgIGxldCBlcnJvck1lc3NhZ2UgPSAnJztcblxuICAgIGlmICghZXJyb3IpIHtcbiAgICAgIGVycm9yTWVzc2FnZSA9ICcnO1xuICAgIH1cbiAgICBlbHNlIGlmICh0eXBlb2YgZXJyb3IgPT09ICdvYmplY3QnICYmICdtZXNzYWdlJyBpbiBlcnJvcikge1xuICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKGVycm9yLm1lc3NhZ2UpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZyhlcnJvcik7XG4gICAgfVxuICAgIFxuXG4gICAgaWYgKHByb3ApIHtcbiAgICAgIHJldHVybiB7IFtgJHtwcm9wfUNhbGxTdGF0ZWBdOiB7IGVycm9yOiBlcnJvck1lc3NhZ2UgfSB9IGFzIFNldENhbGxTdGF0ZTxQcm9wPjtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICByZXR1cm4geyBjYWxsU3RhdGU6IHsgZXJyb3I6IGVycm9yTWVzc2FnZSB9IH0gYXMgU2V0Q2FsbFN0YXRlPFByb3A+O1xuICAgIH1cbn1cbiJdfQ==
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1jYWxsLXN0YXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9uZ3J4LXRvb2xraXQvc3JjL2xpYi93aXRoLWNhbGwtc3RhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFVLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBRUwsa0JBQWtCLEVBQ2xCLFlBQVksRUFDWixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUEyQnZCLE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxNQUFnQztJQUMvRCxNQUFNLElBQUksR0FBRyxNQUFNLEVBQUUsVUFBVSxDQUFDO0lBQ2hDLE9BQU87UUFDTCxZQUFZLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxVQUFVLFdBQVcsQ0FBQyxDQUFDLENBQUMsV0FBVztRQUNsRSxVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxVQUFVLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUztRQUM1RCxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxVQUFVLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUTtRQUN6RCxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxVQUFVLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTztLQUN2RCxDQUFDO0FBQ0osQ0FBQztBQW9CRCxNQUFNLFVBQVUsYUFBYSxDQUE0QixNQUV4RDtJQUNDLE1BQU0sRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsR0FDckQsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUM7SUFFM0IsT0FBTyxrQkFBa0IsQ0FDdkIsU0FBUyxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUNyQyxZQUFZLENBQUMsQ0FBQyxLQUFzQyxFQUFFLEVBQUU7UUFDdEQsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDLFlBQVksQ0FBc0IsQ0FBQztRQUUzRCxPQUFPO1lBQ0wsQ0FBQyxVQUFVLENBQUMsRUFBRSxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsU0FBUyxFQUFFLEtBQUssU0FBUyxDQUFDO1lBQ3ZELENBQUMsU0FBUyxDQUFDLEVBQUUsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLFNBQVMsRUFBRSxLQUFLLFFBQVEsQ0FBQztZQUNyRCxDQUFDLFFBQVEsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxHQUFHLEVBQUU7Z0JBQ3hCLE1BQU0sQ0FBQyxHQUFHLFNBQVMsRUFBRSxDQUFDO2dCQUN0QixPQUFPLE9BQU8sQ0FBQyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1lBQ2hELENBQUMsQ0FBQztTQUNILENBQUM7SUFDSixDQUFDLENBQUMsQ0FDSCxDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSxVQUFVLENBQ3hCLElBQVc7SUFFWCxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ1QsT0FBTyxFQUFFLENBQUMsR0FBRyxJQUFJLFdBQVcsQ0FBQyxFQUFFLFNBQVMsRUFBd0IsQ0FBQztJQUNuRSxDQUFDO0lBRUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQXdCLENBQUM7QUFDeEQsQ0FBQztBQUVELE1BQU0sVUFBVSxTQUFTLENBQ3ZCLElBQVc7SUFFWCxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ1QsT0FBTyxFQUFFLENBQUMsR0FBRyxJQUFJLFdBQVcsQ0FBQyxFQUFFLFFBQVEsRUFBd0IsQ0FBQztJQUNsRSxDQUFDO1NBQU0sQ0FBQztRQUNOLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUF3QixDQUFDO0lBQ3ZELENBQUM7QUFDSCxDQUFDO0FBRUQsTUFBTSxVQUFVLFFBQVEsQ0FDdEIsS0FBYyxFQUNkLElBQVc7SUFFWCxJQUFJLFlBQVksR0FBRyxFQUFFLENBQUM7SUFFdEIsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ1gsWUFBWSxHQUFHLEVBQUUsQ0FBQztJQUNwQixDQUFDO1NBQU0sSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksU0FBUyxJQUFJLEtBQUssRUFBRSxDQUFDO1FBQzNELFlBQVksR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7U0FBTSxDQUFDO1FBQ04sWUFBWSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRUQsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUNULE9BQU87WUFDTCxDQUFDLEdBQUcsSUFBSSxXQUFXLENBQUMsRUFBRSxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUU7U0FDeEIsQ0FBQztJQUMxQixDQUFDO1NBQU0sQ0FBQztRQUNOLE9BQU8sRUFBRSxTQUFTLEVBQUUsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLEVBQXdCLENBQUM7SUFDdEUsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTaWduYWwsIGNvbXB1dGVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBTaWduYWxTdG9yZUZlYXR1cmUsXG4gIHNpZ25hbFN0b3JlRmVhdHVyZSxcbiAgd2l0aENvbXB1dGVkLFxuICB3aXRoU3RhdGUsXG59IGZyb20gJ0BuZ3J4L3NpZ25hbHMnO1xuaW1wb3J0IHsgRW1wdHkgfSBmcm9tICcuL3NoYXJlZC9lbXB0eSc7XG5cbmV4cG9ydCB0eXBlIENhbGxTdGF0ZSA9ICdpbml0JyB8ICdsb2FkaW5nJyB8ICdsb2FkZWQnIHwgeyBlcnJvcjogc3RyaW5nIH07XG5cbmV4cG9ydCB0eXBlIENhbGxTdGF0ZVNsaWNlID0ge1xuICBjYWxsU3RhdGU6IENhbGxTdGF0ZTtcbn07XG5cbmV4cG9ydCB0eXBlIE5hbWVkQ2FsbFN0YXRlU2xpY2U8Q29sbGVjdGlvbiBleHRlbmRzIHN0cmluZz4gPSB7XG4gIFtLIGluIGtleW9mIENhbGxTdGF0ZVNsaWNlIGFzIGAke0NvbGxlY3Rpb259JHtDYXBpdGFsaXplPEs+fWBdOiBDYWxsU3RhdGVTbGljZVtLXTtcbn07XG5cbmV4cG9ydCB0eXBlIENhbGxTdGF0ZVNpZ25hbHMgPSB7XG4gIGxvYWRpbmc6IFNpZ25hbDxib29sZWFuPjtcbiAgbG9hZGVkOiBTaWduYWw8Ym9vbGVhbj47XG4gIGVycm9yOiBTaWduYWw8c3RyaW5nIHwgbnVsbD47XG59O1xuXG5leHBvcnQgdHlwZSBOYW1lZENhbGxTdGF0ZVNpZ25hbHM8UHJvcCBleHRlbmRzIHN0cmluZz4gPSB7XG4gIFtLIGluIGtleW9mIENhbGxTdGF0ZVNpZ25hbHMgYXMgYCR7UHJvcH0ke0NhcGl0YWxpemU8Sz59YF06IENhbGxTdGF0ZVNpZ25hbHNbS107XG59O1xuXG5leHBvcnQgdHlwZSBTZXRDYWxsU3RhdGU8UHJvcCBleHRlbmRzIHN0cmluZyB8IHVuZGVmaW5lZD4gPSBQcm9wIGV4dGVuZHMgc3RyaW5nXG4gID8gTmFtZWRDYWxsU3RhdGVTbGljZTxQcm9wPlxuICA6IENhbGxTdGF0ZVNsaWNlO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q2FsbFN0YXRlS2V5cyhjb25maWc/OiB7IGNvbGxlY3Rpb24/OiBzdHJpbmcgfSkge1xuICBjb25zdCBwcm9wID0gY29uZmlnPy5jb2xsZWN0aW9uO1xuICByZXR1cm4ge1xuICAgIGNhbGxTdGF0ZUtleTogcHJvcCA/IGAke2NvbmZpZy5jb2xsZWN0aW9ufUNhbGxTdGF0ZWAgOiAnY2FsbFN0YXRlJyxcbiAgICBsb2FkaW5nS2V5OiBwcm9wID8gYCR7Y29uZmlnLmNvbGxlY3Rpb259TG9hZGluZ2AgOiAnbG9hZGluZycsXG4gICAgbG9hZGVkS2V5OiBwcm9wID8gYCR7Y29uZmlnLmNvbGxlY3Rpb259TG9hZGVkYCA6ICdsb2FkZWQnLFxuICAgIGVycm9yS2V5OiBwcm9wID8gYCR7Y29uZmlnLmNvbGxlY3Rpb259RXJyb3JgIDogJ2Vycm9yJyxcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHdpdGhDYWxsU3RhdGU8Q29sbGVjdGlvbiBleHRlbmRzIHN0cmluZz4oY29uZmlnOiB7XG4gIGNvbGxlY3Rpb246IENvbGxlY3Rpb247XG59KTogU2lnbmFsU3RvcmVGZWF0dXJlPFxuICB7IHN0YXRlOiBFbXB0eTsgbWV0aG9kczogRW1wdHk7IGNvbXB1dGVkOiBFbXB0eSB9LFxuICB7XG4gICAgc3RhdGU6IE5hbWVkQ2FsbFN0YXRlU2xpY2U8Q29sbGVjdGlvbj47XG4gICAgY29tcHV0ZWQ6IE5hbWVkQ2FsbFN0YXRlU2lnbmFsczxDb2xsZWN0aW9uPjtcbiAgICBtZXRob2RzOiBFbXB0eTtcbiAgfVxuPjtcbmV4cG9ydCBmdW5jdGlvbiB3aXRoQ2FsbFN0YXRlKCk6IFNpZ25hbFN0b3JlRmVhdHVyZTxcbiAgeyBzdGF0ZTogRW1wdHk7IG1ldGhvZHM6IEVtcHR5OyBjb21wdXRlZDogRW1wdHkgfSxcbiAge1xuICAgIHN0YXRlOiBDYWxsU3RhdGVTbGljZTtcbiAgICBjb21wdXRlZDogQ2FsbFN0YXRlU2lnbmFscztcbiAgICBtZXRob2RzOiBFbXB0eTtcbiAgfVxuPjtcbmV4cG9ydCBmdW5jdGlvbiB3aXRoQ2FsbFN0YXRlPENvbGxlY3Rpb24gZXh0ZW5kcyBzdHJpbmc+KGNvbmZpZz86IHtcbiAgY29sbGVjdGlvbjogQ29sbGVjdGlvbjtcbn0pOiBTaWduYWxTdG9yZUZlYXR1cmUge1xuICBjb25zdCB7IGNhbGxTdGF0ZUtleSwgZXJyb3JLZXksIGxvYWRlZEtleSwgbG9hZGluZ0tleSB9ID1cbiAgICBnZXRDYWxsU3RhdGVLZXlzKGNvbmZpZyk7XG5cbiAgcmV0dXJuIHNpZ25hbFN0b3JlRmVhdHVyZShcbiAgICB3aXRoU3RhdGUoeyBbY2FsbFN0YXRlS2V5XTogJ2luaXQnIH0pLFxuICAgIHdpdGhDb21wdXRlZCgoc3RhdGU6IFJlY29yZDxzdHJpbmcsIFNpZ25hbDx1bmtub3duPj4pID0+IHtcbiAgICAgIGNvbnN0IGNhbGxTdGF0ZSA9IHN0YXRlW2NhbGxTdGF0ZUtleV0gYXMgU2lnbmFsPENhbGxTdGF0ZT47XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIFtsb2FkaW5nS2V5XTogY29tcHV0ZWQoKCkgPT4gY2FsbFN0YXRlKCkgPT09ICdsb2FkaW5nJyksXG4gICAgICAgIFtsb2FkZWRLZXldOiBjb21wdXRlZCgoKSA9PiBjYWxsU3RhdGUoKSA9PT0gJ2xvYWRlZCcpLFxuICAgICAgICBbZXJyb3JLZXldOiBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgICAgY29uc3QgdiA9IGNhbGxTdGF0ZSgpO1xuICAgICAgICAgIHJldHVybiB0eXBlb2YgdiA9PT0gJ29iamVjdCcgPyB2LmVycm9yIDogbnVsbDtcbiAgICAgICAgfSksXG4gICAgICB9O1xuICAgIH0pXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRMb2FkaW5nPFByb3AgZXh0ZW5kcyBzdHJpbmcgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ+KFxuICBwcm9wPzogUHJvcFxuKTogU2V0Q2FsbFN0YXRlPFByb3A+IHtcbiAgaWYgKHByb3ApIHtcbiAgICByZXR1cm4geyBbYCR7cHJvcH1DYWxsU3RhdGVgXTogJ2xvYWRpbmcnIH0gYXMgU2V0Q2FsbFN0YXRlPFByb3A+O1xuICB9XG5cbiAgcmV0dXJuIHsgY2FsbFN0YXRlOiAnbG9hZGluZycgfSBhcyBTZXRDYWxsU3RhdGU8UHJvcD47XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRMb2FkZWQ8UHJvcCBleHRlbmRzIHN0cmluZyB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZD4oXG4gIHByb3A/OiBQcm9wXG4pOiBTZXRDYWxsU3RhdGU8UHJvcD4ge1xuICBpZiAocHJvcCkge1xuICAgIHJldHVybiB7IFtgJHtwcm9wfUNhbGxTdGF0ZWBdOiAnbG9hZGVkJyB9IGFzIFNldENhbGxTdGF0ZTxQcm9wPjtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4geyBjYWxsU3RhdGU6ICdsb2FkZWQnIH0gYXMgU2V0Q2FsbFN0YXRlPFByb3A+O1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRFcnJvcjxQcm9wIGV4dGVuZHMgc3RyaW5nIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkPihcbiAgZXJyb3I6IHVua25vd24sXG4gIHByb3A/OiBQcm9wXG4pOiBTZXRDYWxsU3RhdGU8UHJvcD4ge1xuICBsZXQgZXJyb3JNZXNzYWdlID0gJyc7XG5cbiAgaWYgKCFlcnJvcikge1xuICAgIGVycm9yTWVzc2FnZSA9ICcnO1xuICB9IGVsc2UgaWYgKHR5cGVvZiBlcnJvciA9PT0gJ29iamVjdCcgJiYgJ21lc3NhZ2UnIGluIGVycm9yKSB7XG4gICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKGVycm9yLm1lc3NhZ2UpO1xuICB9IGVsc2Uge1xuICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZyhlcnJvcik7XG4gIH1cblxuICBpZiAocHJvcCkge1xuICAgIHJldHVybiB7XG4gICAgICBbYCR7cHJvcH1DYWxsU3RhdGVgXTogeyBlcnJvcjogZXJyb3JNZXNzYWdlIH0sXG4gICAgfSBhcyBTZXRDYWxsU3RhdGU8UHJvcD47XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIHsgY2FsbFN0YXRlOiB7IGVycm9yOiBlcnJvck1lc3NhZ2UgfSB9IGFzIFNldENhbGxTdGF0ZTxQcm9wPjtcbiAgfVxufVxuIl19
@@ -1,27 +1,57 @@
1
- import { computed, inject } from "@angular/core";
2
- import { patchState, signalStoreFeature, withComputed, withMethods, withState } from "@ngrx/signals";
3
- import { getCallStateKeys, setError, setLoaded, setLoading } from "./with-call-state";
4
- import { setAllEntities, addEntity, updateEntity, removeEntity } from "@ngrx/signals/entities";
1
+ import { computed, inject } from '@angular/core';
2
+ import { patchState, signalStoreFeature, withComputed, withMethods, withState, } from '@ngrx/signals';
3
+ import { getCallStateKeys, setError, setLoaded, setLoading, } from './with-call-state';
4
+ import { setAllEntities, addEntity, updateEntity, removeEntity, } from '@ngrx/signals/entities';
5
5
  export function capitalize(str) {
6
6
  return str ? str[0].toUpperCase() + str.substring(1) : str;
7
7
  }
8
8
  export function getDataServiceKeys(options) {
9
- const filterKey = options.collection ? `${options.collection}Filter` : 'filter';
10
- const selectedIdsKey = options.collection ? `selected${capitalize(options.collection)}Ids` : 'selectedIds';
11
- const selectedEntitiesKey = options.collection ? `selected${capitalize(options.collection)}Entities` : 'selectedEntities';
12
- const updateFilterKey = options.collection ? `update${capitalize(options.collection)}Filter` : 'updateFilter';
13
- const updateSelectedKey = options.collection ? `updateSelected${capitalize(options.collection)}Entities` : 'updateSelected';
14
- const loadKey = options.collection ? `load${capitalize(options.collection)}Entities` : 'load';
15
- const currentKey = options.collection ? `current${capitalize(options.collection)}` : 'current';
16
- const loadByIdKey = options.collection ? `load${capitalize(options.collection)}ById` : 'loadById';
17
- const setCurrentKey = options.collection ? `setCurrent${capitalize(options.collection)}` : 'setCurrent';
18
- const createKey = options.collection ? `create${capitalize(options.collection)}` : 'create';
19
- const updateKey = options.collection ? `update${capitalize(options.collection)}` : 'update';
20
- const updateAllKey = options.collection ? `updateAll${capitalize(options.collection)}` : 'updateAll';
21
- const deleteKey = options.collection ? `delete${capitalize(options.collection)}` : 'delete';
9
+ const filterKey = options.collection
10
+ ? `${options.collection}Filter`
11
+ : 'filter';
12
+ const selectedIdsKey = options.collection
13
+ ? `selected${capitalize(options.collection)}Ids`
14
+ : 'selectedIds';
15
+ const selectedEntitiesKey = options.collection
16
+ ? `selected${capitalize(options.collection)}Entities`
17
+ : 'selectedEntities';
18
+ const updateFilterKey = options.collection
19
+ ? `update${capitalize(options.collection)}Filter`
20
+ : 'updateFilter';
21
+ const updateSelectedKey = options.collection
22
+ ? `updateSelected${capitalize(options.collection)}Entities`
23
+ : 'updateSelected';
24
+ const loadKey = options.collection
25
+ ? `load${capitalize(options.collection)}Entities`
26
+ : 'load';
27
+ const currentKey = options.collection
28
+ ? `current${capitalize(options.collection)}`
29
+ : 'current';
30
+ const loadByIdKey = options.collection
31
+ ? `load${capitalize(options.collection)}ById`
32
+ : 'loadById';
33
+ const setCurrentKey = options.collection
34
+ ? `setCurrent${capitalize(options.collection)}`
35
+ : 'setCurrent';
36
+ const createKey = options.collection
37
+ ? `create${capitalize(options.collection)}`
38
+ : 'create';
39
+ const updateKey = options.collection
40
+ ? `update${capitalize(options.collection)}`
41
+ : 'update';
42
+ const updateAllKey = options.collection
43
+ ? `updateAll${capitalize(options.collection)}`
44
+ : 'updateAll';
45
+ const deleteKey = options.collection
46
+ ? `delete${capitalize(options.collection)}`
47
+ : 'delete';
22
48
  // TODO: Take these from @ngrx/signals/entities, when they are exported
23
- const entitiesKey = options.collection ? `${options.collection}Entities` : 'entities';
24
- const entityMapKey = options.collection ? `${options.collection}EntityMap` : 'entityMap';
49
+ const entitiesKey = options.collection
50
+ ? `${options.collection}Entities`
51
+ : 'entities';
52
+ const entityMapKey = options.collection
53
+ ? `${options.collection}EntityMap`
54
+ : 'entityMap';
25
55
  const idsKey = options.collection ? `${options.collection}Ids` : 'ids';
26
56
  return {
27
57
  filterKey,
@@ -39,23 +69,23 @@ export function getDataServiceKeys(options) {
39
69
  createKey,
40
70
  updateKey,
41
71
  updateAllKey,
42
- deleteKey
72
+ deleteKey,
43
73
  };
44
74
  }
45
75
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
46
76
  export function withDataService(options) {
47
77
  const { dataServiceType, filter, collection: prefix } = options;
48
- const { entitiesKey, filterKey, loadKey, selectedEntitiesKey, selectedIdsKey, updateFilterKey, updateSelectedKey, currentKey, createKey, updateKey, updateAllKey, deleteKey, loadByIdKey, setCurrentKey } = getDataServiceKeys(options);
78
+ const { entitiesKey, filterKey, loadKey, selectedEntitiesKey, selectedIdsKey, updateFilterKey, updateSelectedKey, currentKey, createKey, updateKey, updateAllKey, deleteKey, loadByIdKey, setCurrentKey, } = getDataServiceKeys(options);
49
79
  const { callStateKey } = getCallStateKeys({ collection: prefix });
50
80
  return signalStoreFeature(withState(() => ({
51
81
  [filterKey]: filter,
52
82
  [selectedIdsKey]: {},
53
- [currentKey]: undefined
83
+ [currentKey]: undefined,
54
84
  })), withComputed((store) => {
55
85
  const entities = store[entitiesKey];
56
86
  const selectedIds = store[selectedIdsKey];
57
87
  return {
58
- [selectedEntitiesKey]: computed(() => entities().filter(e => selectedIds()[e.id]))
88
+ [selectedEntitiesKey]: computed(() => entities().filter((e) => selectedIds()[e.id])),
59
89
  };
60
90
  }), withMethods((store) => {
61
91
  const dataService = inject(dataServiceType);
@@ -68,7 +98,7 @@ export function withDataService(options) {
68
98
  [selectedIdsKey]: {
69
99
  ...state[selectedIdsKey],
70
100
  [id]: selected,
71
- }
101
+ },
72
102
  }));
73
103
  },
74
104
  [loadKey]: async () => {
@@ -76,7 +106,9 @@ export function withDataService(options) {
76
106
  store[callStateKey] && patchState(store, setLoading(prefix));
77
107
  try {
78
108
  const result = await dataService.load(filter());
79
- patchState(store, prefix ? setAllEntities(result, { collection: prefix }) : setAllEntities(result));
109
+ patchState(store, prefix
110
+ ? setAllEntities(result, { collection: prefix })
111
+ : setAllEntities(result));
80
112
  store[callStateKey] && patchState(store, setLoaded(prefix));
81
113
  }
82
114
  catch (e) {
@@ -105,7 +137,9 @@ export function withDataService(options) {
105
137
  try {
106
138
  const created = await dataService.create(entity);
107
139
  patchState(store, { [currentKey]: created });
108
- patchState(store, prefix ? addEntity(created, { collection: prefix }) : addEntity(created));
140
+ patchState(store, prefix
141
+ ? addEntity(created, { collection: prefix })
142
+ : addEntity(created));
109
143
  store[callStateKey] && patchState(store, setLoaded(prefix));
110
144
  }
111
145
  catch (e) {
@@ -119,9 +153,12 @@ export function withDataService(options) {
119
153
  try {
120
154
  const updated = await dataService.update(entity);
121
155
  patchState(store, { [currentKey]: updated });
122
- // Why do we need this cast to Partial<Entity>?
123
- const updateArg = { id: updated.id, changes: updated };
124
- patchState(store, prefix ? updateEntity(updateArg, { collection: prefix }) : updateEntity(updateArg));
156
+ const updateArg = {
157
+ id: updated.id,
158
+ changes: updated,
159
+ };
160
+ const updater = (collection) => updateEntity(updateArg, { collection });
161
+ patchState(store, prefix ? updater(prefix) : updateEntity(updateArg));
125
162
  store[callStateKey] && patchState(store, setLoaded(prefix));
126
163
  }
127
164
  catch (e) {
@@ -133,7 +170,9 @@ export function withDataService(options) {
133
170
  store[callStateKey] && patchState(store, setLoading(prefix));
134
171
  try {
135
172
  const result = await dataService.updateAll(entities);
136
- patchState(store, prefix ? setAllEntities(result, { collection: prefix }) : setAllEntities(result));
173
+ patchState(store, prefix
174
+ ? setAllEntities(result, { collection: prefix })
175
+ : setAllEntities(result));
137
176
  store[callStateKey] && patchState(store, setLoaded(prefix));
138
177
  }
139
178
  catch (e) {
@@ -147,7 +186,9 @@ export function withDataService(options) {
147
186
  try {
148
187
  await dataService.delete(entity);
149
188
  patchState(store, { [currentKey]: undefined });
150
- patchState(store, prefix ? removeEntity(entity.id, { collection: prefix }) : removeEntity(entity.id));
189
+ patchState(store, prefix
190
+ ? removeEntity(entity.id, { collection: prefix })
191
+ : removeEntity(entity.id));
151
192
  store[callStateKey] && patchState(store, setLoaded(prefix));
152
193
  }
153
194
  catch (e) {
@@ -158,4 +199,4 @@ export function withDataService(options) {
158
199
  };
159
200
  }));
160
201
  }
161
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1kYXRhLXNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL25ncngtdG9vbGtpdC9zcmMvbGliL3dpdGgtZGF0YS1zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBeUIsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4RSxPQUFPLEVBQXNCLFVBQVUsRUFBRSxrQkFBa0IsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6SCxPQUFPLEVBQWEsZ0JBQWdCLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRyxPQUFPLEVBQUUsY0FBYyxFQUFZLFNBQVMsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFpQnpHLE1BQU0sVUFBVSxVQUFVLENBQUMsR0FBVztJQUNsQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxHQUFHLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztBQUMvRCxDQUFDO0FBRUQsTUFBTSxVQUFVLGtCQUFrQixDQUFDLE9BQWdDO0lBQy9ELE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDLFVBQVUsUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7SUFDaEYsTUFBTSxjQUFjLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsV0FBVyxVQUFVLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQztJQUMzRyxNQUFNLG1CQUFtQixHQUFHLE9BQU8sQ0FBQyxVQUFVLENB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LENBQUM7b0JBQzlELE1BQU0sQ0FBQyxDQUFDO2lCQUNYO1lBQ0wsQ0FBQztTQUNKLENBQUM7SUFDTixDQUFDLENBQUMsQ0FDTCxDQUFDO0FBQ04sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFByb3ZpZGVyVG9rZW4sIFNpZ25hbCwgY29tcHV0ZWQsIGluamVjdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBTaWduYWxTdG9yZUZlYXR1cmUsIHBhdGNoU3RhdGUsIHNpZ25hbFN0b3JlRmVhdHVyZSwgd2l0aENvbXB1dGVkLCB3aXRoTWV0aG9kcywgd2l0aFN0YXRlIH0gZnJvbSBcIkBuZ3J4L3NpZ25hbHNcIjtcbmltcG9ydCB7IENhbGxTdGF0ZSwgZ2V0Q2FsbFN0YXRlS2V5cywgc2V0RXJyb3IsIHNldExvYWRlZCwgc2V0TG9hZGluZyB9IGZyb20gXCIuL3dpdGgtY2FsbC1zdGF0ZVwiO1xuaW1wb3J0IHsgc2V0QWxsRW50aXRpZXMsIEVudGl0eUlkLCBhZGRFbnRpdHksIHVwZGF0ZUVudGl0eSwgcmVtb3ZlRW50aXR5IH0gZnJvbSBcIkBuZ3J4L3NpZ25hbHMvZW50aXRpZXNcIjtcbmltcG9ydCB7IEVudGl0eVN0YXRlLCBOYW1lZEVudGl0eVNpZ25hbHMgfSBmcm9tIFwiQG5ncngvc2lnbmFscy9lbnRpdGllcy9zcmMvbW9kZWxzXCI7XG5pbXBvcnQgeyBTdGF0ZVNpZ25hbCB9IGZyb20gXCJAbmdyeC9zaWduYWxzL3NyYy9zdGF0ZS1zaWduYWxcIjtcbmltcG9ydCB7IEVtdHB5IH0gZnJvbSBcIi4vc2hhcmVkL2VtcHR5XCI7XG5cbmV4cG9ydCB0eXBlIEZpbHRlciA9IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuZXhwb3J0IHR5cGUgRW50aXR5ID0geyBpZDogRW50aXR5SWQgfTtcblxuZXhwb3J0IGludGVyZmFjZSBEYXRhU2VydmljZTxFIGV4dGVuZHMgRW50aXR5LCBGIGV4dGVuZHMgRmlsdGVyPiB7XG4gICAgbG9hZChmaWx0ZXI6IEYpOiBQcm9taXNlPEVbXT47XG4gICAgbG9hZEJ5SWQoaWQ6IEVudGl0eUlkKTogUHJvbWlzZTxFPjtcbiAgICBjcmVhdGUoZW50aXR5OiBFKTogUHJvbWlzZTxFPjtcbiAgICB1cGRhdGUoZW50aXR5OiBFKTogUHJvbWlzZTxFPjtcbiAgICB1cGRhdGVBbGwoZW50aXR5OiBFW10pOiBQcm9taXNlPEVbXT47XG4gICAgZGVsZXRlKGVudGl0eTogRSk6IFByb21pc2U8dm9pZD47XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjYXBpdGFsaXplKHN0cjogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gc3RyID8gc3RyWzBdLnRvVXBwZXJDYXNlKCkgKyBzdHIuc3Vic3RyaW5nKDEpIDogc3RyO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RGF0YVNlcnZpY2VLZXlzKG9wdGlvbnM6IHsgY29sbGVjdGlvbj86IHN0cmluZyB9KSB7XG4gICAgY29uc3QgZmlsdGVyS2V5ID0gb3B0aW9ucy5jb2xsZWN0aW9uID8gYCR7b3B0aW9ucy5jb2xsZWN0aW9ufUZpbHRlcmAgOiAnZmlsdGVyJztcbiAgICBjb25zdCBzZWxlY3RlZElkc0tleSA9IG9wdGlvbnMuY29sbGVjdGlvbiA/IGBzZWxlY3RlZCR7Y2FwaXRhbGl6ZShvcHRpb25zLmNvbGxlY3Rpb24pfUlkc2AgOiAnc2VsZWN0ZWRJZHMnO1xuICAgIGNvbnN0IHNlbGVjdGVkRW50aXRpZXNLZXkgPSBvcHRpb25zLmNvbGxlY3Rpb24gPyBgc2VsZWN0ZWQke2NhcGl0YWxpemUob3B0aW9ucy5jb2xsZWN0aW9uKX1FbnRpdGllc2AgOiAnc2VsZWN0ZWRFbnRpdGllcyc7XG5cbiAgICBjb25zdCB1cGRhdGVGaWx0ZXJLZXkgPSBvcHRpb25zLmNvbGxlY3Rpb24gPyBgdXBkYXRlJHtjYXBpdGFsaXplKG9wdGlvbnMuY29sbGVjdGlvbil9RmlsdGVyYCA6ICd1cGRhdGVGaWx0ZXInO1xuICAgIGNvbnN0IHVwZGF0ZVNlbGVjdGVkS2V5ID0gb3B0aW9ucy5jb2xsZWN0aW9uID8gYHVwZGF0ZVNlbGVjdGVkJHtjYXBpdGFsaXplKG9wdGlvbnMuY29sbGVjdGlvbil9RW50aXRpZXNgIDogJ3VwZGF0ZVNlbGVjdGVkJztcbiAgICBjb25zdCBsb2FkS2V5ID0gb3B0aW9ucy5jb2xsZWN0aW9uID8gYGxvYWQke2NhcGl0YWxpemUob3B0aW9ucy5jb2xsZWN0aW9uKX1FbnRpdGllc2AgOiAnbG9hZCc7XG5cbiAgICBjb25zdCBjdXJyZW50S2V5ID0gb3B0aW9ucy5jb2xsZWN0aW9uID8gYGN1cnJlbnQke2NhcGl0YWxpemUob3B0aW9ucy5jb2xsZWN0aW9uKX1gIDogJ2N1cnJlbnQnO1xuICAgIGNvbnN0IGxvYWRCeUlkS2V5ID0gb3B0aW9ucy5jb2xsZWN0aW9uID8gYGxvYWQke2NhcGl0YWxpemUob3B0aW9ucy5jb2xsZWN0aW9uKX1CeUlkYCA6ICdsb2FkQnlJZCc7XG4gICAgY29uc3Qgc2V0Q3VycmVudEtleSA9IG9wdGlvbnMuY29sbGVjdGlvbiA/IGBzZXRDdXJyZW50JHtjYXBpdGFsaXplKG9wdGlvbnMuY29sbGVjdGlvbil9YCA6ICdzZXRDdXJyZW50JztcbiAgICBjb25zdCBjcmVhdGVLZXkgPSBvcHRpb25zLmNvbGxlY3Rpb24gPyBgY3JlYXRlJHtjYXBpdGFsaXplKG9wdGlvbnMuY29sbGVjdGlvbil9YCA6ICdjcmVhdGUnO1xuICAgIGNvbnN0IHVwZGF0ZUtleSA9IG9wdGlvbnMuY29sbGVjdGlvbiA/IGB1cGRhdGUke2NhcGl0YWxpemUob3B0aW9ucy5jb2xsZWN0aW9uKX1gIDogJ3VwZGF0ZSc7XG4gICAgY29uc3QgdXBkYXRlQWxsS2V5ID0gb3B0aW9ucy5jb2xsZWN0aW9uID8gYHVwZGF0ZUFsbCR7Y2FwaXRhbGl6ZShvcHRpb25zLmNvbGxlY3Rpb24pfWAgOiAndXBkYXRlQWxsJztcbiAgICBjb25zdCBkZWxldGVLZXkgPSBvcHRpb25zLmNvbGxlY3Rpb24gPyBgZGVsZXRlJHtjYXBpdGFsaXplKG9wdGlvbnMuY29sbGVjdGlvbil9YCA6ICdkZWxldGUnO1xuXG4gICAgLy8gVE9ETzogVGFrZSB0aGVzZSBmcm9tIEBuZ3J4L3NpZ25hbHMvZW50aXRpZXMsIHdoZW4gdGhleSBhcmUgZXhwb3J0ZWRcbiAgICBjb25zdCBlbnRpdGllc0tleSA9IG9wdGlvbnMuY29sbGVjdGlvbiA/IGAke29wdGlvbnMuY29sbGVjdGlvbn1FbnRpdGllc2AgOiAnZW50aXRpZXMnO1xuICAgIGNvbnN0IGVudGl0eU1hcEtleSA9IG9wdGlvbnMuY29sbGVjdGlvbiA/IGAke29wdGlvbnMuY29sbGVjdGlvbn1FbnRpdHlNYXBgIDogJ2VudGl0eU1hcCc7XG4gICAgY29uc3QgaWRzS2V5ID0gb3B0aW9ucy5jb2xsZWN0aW9uID8gYCR7b3B0aW9ucy5jb2xsZWN0aW9ufUlkc2AgOiAnaWRzJztcblxuICAgIHJldHVybiB7XG4gICAgICAgIGZpbHRlcktleSxcbiAgICAgICAgc2VsZWN0ZWRJZHNLZXksXG4gICAgICAgIHNlbGVjdGVkRW50aXRpZXNLZXksXG4gICAgICAgIHVwZGF0ZUZpbHRlcktleSxcbiAgICAgICAgdXBkYXRlU2VsZWN0ZWRLZXksXG4gICAgICAgIGxvYWRLZXksXG4gICAgICAgIGVudGl0aWVzS2V5LFxuICAgICAgICBlbnRpdHlNYXBLZXksXG4gICAgICAgIGlkc0tleSxcblxuICAgICAgICBjdXJyZW50S2V5LFxuICAgICAgICBsb2FkQnlJZEtleSxcbiAgICAgICAgc2V0Q3VycmVudEtleSxcbiAgICAgICAgY3JlYXRlS2V5LFxuICAgICAgICB1cGRhdGVLZXksXG4gICAgICAgIHVwZGF0ZUFsbEtleSxcbiAgICAgICAgZGVsZXRlS2V5XG4gICAgfTtcbn1cblxuZXhwb3J0IHR5cGUgTmFtZWREYXRhU2VydmljZVN0YXRlPEUgZXh0ZW5kcyBFbnRpdHksIEYgZXh0ZW5kcyBGaWx0ZXIsIENvbGxlY3Rpb24gZXh0ZW5kcyBzdHJpbmc+ID1cbiAgICB7XG4gICAgICAgIFtLIGluIENvbGxlY3Rpb24gYXMgYCR7S31GaWx0ZXJgXTogRjtcbiAgICB9ICYge1xuICAgICAgICBbSyBpbiBDb2xsZWN0aW9uIGFzIGBzZWxlY3RlZCR7Q2FwaXRhbGl6ZTxLPn1JZHNgXTogUmVjb3JkPEVudGl0eUlkLCBib29sZWFuPjtcbiAgICB9ICYge1xuICAgICAgICBbSyBpbiBDb2xsZWN0aW9uIGFzIGBjdXJyZW50JHtDYXBpdGFsaXplPEs+fWBdOiBFO1xuICAgIH1cblxuZXhwb3J0IHR5cGUgRGF0YVNlcnZpY2VTdGF0ZTxFIGV4dGVuZHMgRW50aXR5LCBGIGV4dGVuZHMgRmlsdGVyPiA9IHtcbiAgICBmaWx0ZXI6IEY7XG4gICAgc2VsZWN0ZWRJZHM6IFJlY29yZDxFbnRpdHlJZCwgYm9vbGVhbj47XG4gICAgY3VycmVudDogRTtcbn1cblxuZXhwb3J0IHR5cGUgTmFtZWREYXRhU2VydmljZVNpZ25hbHM8RSBleHRlbmRzIEVudGl0eSwgQ29sbGVjdGlvbiBleHRlbmRzIHN0cmluZz4gPVxuICAgIHtcbiAgICAgICAgW0sgaW4gQ29sbGVjdGlvbiBhcyBgc2VsZWN0ZWQke0NhcGl0YWxpemU8Sz59RW50aXRpZXNgXTogU2lnbmFsPEVbXT47XG4gICAgfVxuXG5leHBvcnQgdHlwZSBEYXRhU2VydmljZVNpZ25hbHM8RSBleHRlbmRzIEVudGl0eT4gPVxuICAgIHtcbiAgICAgICAgc2VsZWN0ZWRFbnRpdGllczogU2lnbmFsPEVbXT47XG4gICAgfVxuXG5leHBvcnQgdHlwZSBOYW1lZERhdGFTZXJ2aWNlTWV0aG9kczxFIGV4dGVuZHMgRW50aXR5LCBGIGV4dGVuZHMgRmlsdGVyLCBDb2xsZWN0aW9uIGV4dGVuZHMgc3RyaW5nPiA9XG4gICAge1xuICAgICAgICBbSyBpbiBDb2xsZWN0aW9uIGFzIGB1cGRhdGUke0NhcGl0YWxpemU8Sz59RmlsdGVyYF06IChmaWx0ZXI6IEYpID0+IHZvaWQ7XG4gICAgfSAmXG4gICAge1xuICAgICAgICBbSyBpbiBDb2xsZWN0aW9uIGFzIGB1cGRhdGVTZWxlY3RlZCR7Q2FwaXRhbGl6ZTxLPn1FbnRpdGllc2BdOiAoaWQ6IEVudGl0eUlkLCBzZWxlY3RlZDogYm9vbGVhbikgPT4gdm9pZDtcbiAgICB9ICZcbiAgICB7XG4gICAgICAgIFtLIGluIENvbGxlY3Rpb24gYXMgYGxvYWQke0NhcGl0YWxpemU8Sz59RW50aXRpZXNgXTogKCkgPT4gUHJvbWlzZTx2b2lkPjtcbiAgICB9ICZcblxuICAgIHtcbiAgICAgICAgW0sgaW4gQ29sbGVjdGlvbiBhcyBgc2V0Q3VycmVudCR7Q2FwaXRhbGl6ZTxLPn1gXTogKGVudGl0eTogRSkgPT4gdm9pZDtcbiAgICB9ICZcbiAgICB7XG4gICAgICAgIFtLIGluIENvbGxlY3Rpb24gYXMgYGxvYWQke0NhcGl0YWxpemU8Sz59QnlJZGBdOiAoaWQ6IEVudGl0eUlkKSA9PiBQcm9taXNlPHZvaWQ+O1xuICAgIH0gJlxuICAgIHtcbiAgICAgICAgW0sgaW4gQ29sbGVjdGlvbiBhcyBgY3JlYXRlJHtDYXBpdGFsaXplPEs+fWBdOiAoZW50aXR5OiBFKSA9PiBQcm9taXNlPHZvaWQ+O1xuICAgIH0gJlxuICAgIHtcbiAgICAgICAgW0sgaW4gQ29sbGVjdGlvbiBhcyBgdXBkYXRlJHtDYXBpdGFsaXplPEs+fWBdOiAoZW50aXR5OiBFKSA9PiBQcm9taXNlPHZvaWQ+O1xuICAgIH0gJlxuICAgIHtcbiAgICAgICAgW0sgaW4gQ29sbGVjdGlvbiBhcyBgdXBkYXRlQWxsJHtDYXBpdGFsaXplPEs+fWBdOiAoZW50aXR5OiBFW10pID0+IFByb21pc2U8dm9pZD47XG4gICAgfSAmXG4gICAge1xuICAgICAgICBbSyBpbiBDb2xsZWN0aW9uIGFzIGBkZWxldGUke0NhcGl0YWxpemU8Sz59YF06IChlbnRpdHk6IEUpID0+IFByb21pc2U8dm9pZD47XG4gICAgfTtcblxuXG5leHBvcnQgdHlwZSBEYXRhU2VydmljZU1ldGhvZHM8RSBleHRlbmRzIEVudGl0eSwgRiBleHRlbmRzIEZpbHRlcj4gPVxuICAgIHtcbiAgICAgICAgdXBkYXRlRmlsdGVyOiAoZmlsdGVyOiBGKSA9PiB2b2lkO1xuICAgICAgICB1cGRhdGVTZWxlY3RlZDogKGlkOiBFbnRpdHlJZCwgc2VsZWN0ZWQ6IGJvb2xlYW4pID0+IHZvaWQ7XG4gICAgICAgIGxvYWQ6ICgpID0+IFByb21pc2U8dm9pZD47XG5cbiAgICAgICAgc2V0Q3VycmVudChlbnRpdHk6IEUpOiB2b2lkO1xuICAgICAgICBsb2FkQnlJZChpZDogRW50aXR5SWQpOiBQcm9taXNlPHZvaWQ+O1xuICAgICAgICBjcmVhdGUoZW50aXR5OiBFKTogUHJvbWlzZTx2b2lkPjtcbiAgICAgICAgdXBkYXRlKGVudGl0eTogRSk6IFByb21pc2U8dm9pZD47XG4gICAgICAgIHVwZGF0ZUFsbChlbnRpdGllczogRVtdKTogUHJvbWlzZTx2b2lkPjtcbiAgICAgICAgZGVsZXRlKGVudGl0eTogRSk6IFByb21pc2U8dm9pZD47XG4gICAgfVxuXG5leHBvcnQgdHlwZSBFbXB0eSA9IFJlY29yZDxzdHJpbmcsIG5ldmVyPlxuXG5leHBvcnQgZnVuY3Rpb24gd2l0aERhdGFTZXJ2aWNlPEUgZXh0ZW5kcyBFbnRpdHksIEYgZXh0ZW5kcyBGaWx0ZXIsIENvbGxlY3Rpb24gZXh0ZW5kcyBzdHJpbmc+KG9wdGlvbnM6IHsgZGF0YVNlcnZpY2VUeXBlOiBQcm92aWRlclRva2VuPERhdGFTZXJ2aWNlPEUsIEY+PiwgZmlsdGVyOiBGLCBjb2xsZWN0aW9uOiBDb2xsZWN0aW9uIH0pOiBTaWduYWxTdG9yZUZlYXR1cmU8XG4gICAge1xuICAgICAgICBzdGF0ZTogRW10cHksXG4gICAgICAgIC8vIFRoZXNlIGFsdGVybmF0aXZlcyBicmVhayB0eXBlIGluZmVyZW5jZTpcbiAgICAgICAgLy8gc3RhdGU6IHsgY2FsbFN0YXRlOiBDYWxsU3RhdGUgfSAmIE5hbWVkRW50aXR5U3RhdGU8RSwgQ29sbGVjdGlvbj4sXG4gICAgICAgIC8vIHN0YXRlOiBOYW1lZEVudGl0eVN0YXRlPEUsIENvbGxlY3Rpb24+LFxuXG4gICAgICAgIHNpZ25hbHM6IE5hbWVkRW50aXR5U2lnbmFsczxFLCBDb2xsZWN0aW9uPixcbiAgICAgICAgbWV0aG9kczogRW10cHksXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHN0YXRlOiBOYW1lZERhdGFTZXJ2aWNlU3RhdGU8RSwgRiwgQ29sbGVjdGlvbj5cbiAgICAgICAgc2lnbmFsczogTmFtZWREYXRhU2VydmljZVNpZ25hbHM8RSwgQ29sbGVjdGlvbj5cbiAgICAgICAgbWV0aG9kczogTmFtZWREYXRhU2VydmljZU1ldGhvZHM8RSwgRiwgQ29sbGVjdGlvbj5cbiAgICB9XG4+O1xuZXhwb3J0IGZ1bmN0aW9uIHdpdGhEYXRhU2VydmljZTxFIGV4dGVuZHMgRW50aXR5LCBGIGV4dGVuZHMgRmlsdGVyPihvcHRpb25zOiB7IGRhdGFTZXJ2aWNlVHlwZTogUHJvdmlkZXJUb2tlbjxEYXRhU2VydmljZTxFLCBGPj4sIGZpbHRlcjogRiB9KTogU2lnbmFsU3RvcmVGZWF0dXJlPFxuICAgIHtcbiAgICAgICAgc3RhdGU6IHsgY2FsbFN0YXRlOiBDYWxsU3RhdGUgfSAmIEVudGl0eVN0YXRlPEU+XG4gICAgICAgIHNpZ25hbHM6IEVtdHB5LFxuICAgICAgICBtZXRob2RzOiBFbXRweSxcbiAgICB9LFxuICAgIHtcbiAgICAgICAgc3RhdGU6IERhdGFTZXJ2aWNlU3RhdGU8RSwgRj5cbiAgICAgICAgc2lnbmFsczogRGF0YVNlcnZpY2VTaWduYWxzPEU+XG4gICAgICAgIG1ldGhvZHM6IERhdGFTZXJ2aWNlTWV0aG9kczxFLCBGPlxuICAgIH0+O1xuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuZXhwb3J0IGZ1bmN0aW9uIHdpdGhEYXRhU2VydmljZTxFIGV4dGVuZHMgRW50aXR5LCBGIGV4dGVuZHMgRmlsdGVyLCBDb2xsZWN0aW9uIGV4dGVuZHMgc3RyaW5nPihvcHRpb25zOiB7IGRhdGFTZXJ2aWNlVHlwZTogUHJvdmlkZXJUb2tlbjxEYXRhU2VydmljZTxFLCBGPj4sIGZpbHRlcjogRiwgY29sbGVjdGlvbj86IENvbGxlY3Rpb24gfSk6IFNpZ25hbFN0b3JlRmVhdHVyZTxhbnksIGFueT4ge1xuICAgIGNvbnN0IHsgZGF0YVNlcnZpY2VUeXBlLCBmaWx0ZXIsIGNvbGxlY3Rpb246IHByZWZpeCB9ID0gb3B0aW9ucztcbiAgICBjb25zdCB7XG4gICAgICAgIGVudGl0aWVzS2V5LFxuICAgICAgICBmaWx0ZXJLZXksXG4gICAgICAgIGxvYWRLZXksXG4gICAgICAgIHNlbGVjdGVkRW50aXRpZXNLZXksXG4gICAgICAgIHNlbGVjdGVkSWRzS2V5LFxuICAgICAgICB1cGRhdGVGaWx0ZXJLZXksXG4gICAgICAgIHVwZGF0ZVNlbGVjdGVkS2V5LFxuXG4gICAgICAgIGN1cnJlbnRLZXksXG4gICAgICAgIGNyZWF0ZUtleSxcbiAgICAgICAgdXBkYXRlS2V5LFxuICAgICAgICB1cGRhdGVBbGxLZXksXG4gICAgICAgIGRlbGV0ZUtleSxcbiAgICAgICAgbG9hZEJ5SWRLZXksXG4gICAgICAgIHNldEN1cnJlbnRLZXlcbiAgICB9ID0gZ2V0RGF0YVNlcnZpY2VLZXlzKG9wdGlvbnMpO1xuXG4gICAgY29uc3QgeyBjYWxsU3RhdGVLZXkgfSA9IGdldENhbGxTdGF0ZUtleXMoeyBjb2xsZWN0aW9uOiBwcmVmaXggfSk7XG5cbiAgICByZXR1cm4gc2lnbmFsU3RvcmVGZWF0dXJlKFxuICAgICAgICB3aXRoU3RhdGUoKCkgPT4gKHtcbiAgICAgICAgICAgIFtmaWx0ZXJLZXldOiBmaWx0ZXIsXG4gICAgICAgICAgICBbc2VsZWN0ZWRJZHNLZXldOiB7fSBhcyBSZWNvcmQ8RW50aXR5SWQsIGJvb2xlYW4+LFxuICAgICAgICAgICAgW2N1cnJlbnRLZXldOiB1bmRlZmluZWQgYXMgRSB8IHVuZGVmaW5lZFxuICAgICAgICB9KSksXG4gICAgICAgIHdpdGhDb21wdXRlZCgoc3RvcmU6IFJlY29yZDxzdHJpbmcsIHVua25vd24+KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBlbnRpdGllcyA9IHN0b3JlW2VudGl0aWVzS2V5XSBhcyBTaWduYWw8RVtdPjtcbiAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkSWRzID0gc3RvcmVbc2VsZWN0ZWRJZHNLZXldIGFzIFNpZ25hbDxSZWNvcmQ8RW50aXR5SWQsIGJvb2xlYW4+PjtcblxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBbc2VsZWN0ZWRFbnRpdGllc0tleV06IGNvbXB1dGVkKCgpID0+IGVudGl0aWVzKCkuZmlsdGVyKGUgPT4gc2VsZWN0ZWRJZHMoKVtlLmlkXSkpXG4gICAgICAgICAgICB9XG4gICAgICAgIH0pLFxuICAgICAgICB3aXRoTWV0aG9kcygoc3RvcmU6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ICYgU3RhdGVTaWduYWw8b2JqZWN0PikgPT4ge1xuICAgICAgICAgICAgY29uc3QgZGF0YVNlcnZpY2UgPSBpbmplY3QoZGF0YVNlcnZpY2VUeXBlKVxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBbdXBkYXRlRmlsdGVyS2V5XTogKGZpbHRlcjogRik6IHZvaWQgPT4ge1xuICAgICAgICAgICAgICAgICAgICBwYXRjaFN0YXRlKHN0b3JlLCB7IFtmaWx0ZXJLZXldOiBmaWx0ZXIgfSk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBbdXBkYXRlU2VsZWN0ZWRLZXldOiAoaWQ6IEVudGl0eUlkLCBzZWxlY3RlZDogYm9vbGVhbik6IHZvaWQgPT4ge1xuICAgICAgICAgICAgICAgICAgICBwYXRjaFN0YXRlKHN0b3JlLCAoc3RhdGU6IFJlY29yZDxzdHJpbmcsIHVua25vd24+KSA9PiAoe1xuICAgICAgICAgICAgICAgICAgICAgICAgW3NlbGVjdGVkSWRzS2V5XToge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLnN0YXRlW3NlbGVjdGVkSWRzS2V5XSBhcyBSZWNvcmQ8RW50aXR5SWQsIGJvb2xlYW4+LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpZF06IHNlbGVjdGVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9KSk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBbbG9hZEtleV06IGFzeW5jICgpOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZmlsdGVyID0gc3RvcmVbZmlsdGVyS2V5XSBhcyBTaWduYWw8Rj47XG4gICAgICAgICAgICAgICAgICAgIHN0b3JlW2NhbGxTdGF0ZUtleV0gJiYgcGF0Y2hTdGF0ZShzdG9yZSwgc2V0TG9hZGluZyhwcmVmaXgpKTtcblxuICAgICAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgZGF0YVNlcnZpY2UubG9hZChmaWx0ZXIoKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYXRjaFN0YXRlKHN0b3JlLCBwcmVmaXggPyBzZXRBbGxFbnRpdGllcyhyZXN1bHQsIHsgY29sbGVjdGlvbjogcHJlZml4IH0pIDogc2V0QWxsRW50aXRpZXMocmVzdWx0KSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdG9yZVtjYWxsU3RhdGVLZXldICYmIHBhdGNoU3RhdGUoc3RvcmUsIHNldExvYWRlZChwcmVmaXgpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RvcmVbY2FsbFN0YXRlS2V5XSAmJiBwYXRjaFN0YXRlKHN0b3JlLCBzZXRFcnJvcihlLCBwcmVmaXgpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IGU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFtsb2FkQnlJZEtleV06IGFzeW5jIChpZDogRW50aXR5SWQpOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgc3RvcmVbY2FsbFN0YXRlS2V5XSAmJiBwYXRjaFN0YXRlKHN0b3JlLCBzZXRMb2FkaW5nKHByZWZpeCkpO1xuXG4gICAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjdXJyZW50ID0gYXdhaXQgZGF0YVNlcnZpY2UubG9hZEJ5SWQoaWQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RvcmVbY2FsbFN0YXRlS2V5XSAmJiBwYXRjaFN0YXRlKHN0b3JlLCBzZXRMb2FkZWQocHJlZml4KSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYXRjaFN0YXRlKHN0b3JlLCB7IFtjdXJyZW50S2V5XTogY3VycmVudCB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RvcmVbY2FsbFN0YXRlS2V5XSAmJiBwYXRjaFN0YXRlKHN0b3JlLCBzZXRFcnJvcihlLCBwcmVmaXgpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IGU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFtzZXRDdXJyZW50S2V5XTogKGN1cnJlbnQ6IEUpOiB2b2lkID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcGF0Y2hTdGF0ZShzdG9yZSwgeyBbY3VycmVudEtleV06IGN1cnJlbnQgfSk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBbY3JlYXRlS2V5XTogYXN5bmMgKGVudGl0eTogRSk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgICAgICAgICAgICAgICAgICBwYXRjaFN0YXRlKHN0b3JlLCB7IFtjdXJyZW50S2V5XTogZW50aXR5IH0pO1xuICAgICAgICAgICAgICAgICAgICBzdG9yZVtjYWxsU3RhdGVLZXldICYmIHBhdGNoU3RhdGUoc3RvcmUsIHNldExvYWRpbmcocHJlZml4KSk7XG5cbiAgICAgICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNyZWF0ZWQgPSBhd2FpdCBkYXRhU2VydmljZS5jcmVhdGUoZW50aXR5KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhdGNoU3RhdGUoc3RvcmUsIHsgW2N1cnJlbnRLZXldOiBjcmVhdGVkIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgcGF0Y2hTdGF0ZShzdG9yZSwgcHJlZml4ID8gYWRkRW50aXR5KGNyZWF0ZWQsIHsgY29sbGVjdGlvbjogcHJlZml4IH0pIDogYWRkRW50aXR5KGNyZWF0ZWQpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0b3JlW2NhbGxTdGF0ZUtleV0gJiYgcGF0Y2hTdGF0ZShzdG9yZSwgc2V0TG9hZGVkKHByZWZpeCkpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdG9yZVtjYWxsU3RhdGVLZXldICYmIHBhdGNoU3RhdGUoc3RvcmUsIHNldEVycm9yKGUsIHByZWZpeCkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgW3VwZGF0ZUtleV06IGFzeW5jIChlbnRpdHk6IEUpOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcGF0Y2hTdGF0ZShzdG9yZSwgeyBbY3VycmVudEtleV06IGVudGl0eSB9KTtcbiAgICAgICAgICAgICAgICAgICAgc3RvcmVbY2FsbFN0YXRlS2V5XSAmJiBwYXRjaFN0YXRlKHN0b3JlLCBzZXRMb2FkaW5nKHByZWZpeCkpO1xuXG4gICAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1cGRhdGVkID0gYXdhaXQgZGF0YVNlcnZpY2UudXBkYXRlKGVudGl0eSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYXRjaFN0YXRlKHN0b3JlLCB7IFtjdXJyZW50S2V5XTogdXBkYXRlZCB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFdoeSBkbyB3ZSBuZWVkIHRoaXMgY2FzdCB0byBQYXJ0aWFsPEVudGl0eT4/XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1cGRhdGVBcmcgPSB7IGlkOiB1cGRhdGVkLmlkLCBjaGFuZ2VzOiB1cGRhdGVkIGFzIFBhcnRpYWw8RW50aXR5PiB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgcGF0Y2hTdGF0ZShzdG9yZSwgcHJlZml4ID8gdXBkYXRlRW50aXR5KHVwZGF0ZUFyZywgeyBjb2xsZWN0aW9uOiBwcmVmaXggfSkgOiB1cGRhdGVFbnRpdHkodXBkYXRlQXJnKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdG9yZVtjYWxsU3RhdGVLZXldICYmIHBhdGNoU3RhdGUoc3RvcmUsIHNldExvYWRlZChwcmVmaXgpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RvcmVbY2FsbFN0YXRlS2V5XSAmJiBwYXRjaFN0YXRlKHN0b3JlLCBzZXRFcnJvcihlLCBwcmVmaXgpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IGU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFt1cGRhdGVBbGxLZXldOiBhc3luYyAoZW50aXRpZXM6IEVbXSk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgICAgICAgICAgICAgICAgc3RvcmVbY2FsbFN0YXRlS2V5XSAmJiBwYXRjaFN0YXRlKHN0b3JlLCBzZXRMb2FkaW5nKHByZWZpeCkpO1xuXG4gICAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBkYXRhU2VydmljZS51cGRhdGVBbGwoZW50aXRpZXMpO1xuICAgICAgICAgICAgICAgICAgICBwYXRjaFN0YXRlKHN0b3JlLCBwcmVmaXggPyBzZXRBbGxFbnRpdGllcyhyZXN1bHQsIHsgY29sbGVjdGlvbjogcHJlZml4IH0pIDogc2V0QWxsRW50aXRpZXMocmVzdWx0KSk7XG4gICAgICAgICAgICAgICAgICAgIHN0b3JlW2NhbGxTdGF0ZUtleV0gJiYgcGF0Y2hTdGF0ZShzdG9yZSwgc2V0TG9hZGVkKHByZWZpeCkpO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICAgICAgc3RvcmVbY2FsbFN0YXRlS2V5XSAmJiBwYXRjaFN0YXRlKHN0b3JlLCBzZXRFcnJvcihlLCBwcmVmaXgpKTtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgZTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFtkZWxldGVLZXldOiBhc3luYyAoZW50aXR5OiBFKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHBhdGNoU3RhdGUoc3RvcmUsIHsgW2N1cnJlbnRLZXldOiBlbnRpdHkgfSk7XG4gICAgICAgICAgICAgICAgICAgIHN0b3JlW2NhbGxTdGF0ZUtleV0gJiYgcGF0Y2hTdGF0ZShzdG9yZSwgc2V0TG9hZGluZyhwcmVmaXgpKTtcblxuICAgICAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYXdhaXQgZGF0YVNlcnZpY2UuZGVsZXRlKGVudGl0eSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYXRjaFN0YXRlKHN0b3JlLCB7IFtjdXJyZW50S2V5XTogdW5kZWZpbmVkIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgcGF0Y2hTdGF0ZShzdG9yZSwgcHJlZml4ID8gcmVtb3ZlRW50aXR5KGVudGl0eS5pZCwgeyBjb2xsZWN0aW9uOiBwcmVmaXggfSkgOiByZW1vdmVFbnRpdHkoZW50aXR5LmlkKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdG9yZVtjYWxsU3RhdGVLZXldICYmIHBhdGNoU3RhdGUoc3RvcmUsIHNldExvYWRlZChwcmVmaXgpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RvcmVbY2FsbFN0YXRlS2V5XSAmJiBwYXRjaFN0YXRlKHN0b3JlLCBzZXRFcnJvcihlLCBwcmVmaXgpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IGU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSlcbiAgICApO1xufVxuIl19
202
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1kYXRhLXNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL25ncngtdG9vbGtpdC9zcmMvbGliL3dpdGgtZGF0YS1zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBeUIsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4RSxPQUFPLEVBRUwsVUFBVSxFQUNWLGtCQUFrQixFQUNsQixZQUFZLEVBQ1osV0FBVyxFQUNYLFNBQVMsR0FFVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBRUwsZ0JBQWdCLEVBQ2hCLFFBQVEsRUFDUixTQUFTLEVBQ1QsVUFBVSxHQUNYLE1BQU0sbUJBQW1CLENBQUM7QUFDM0IsT0FBTyxFQUNMLGNBQWMsRUFFZCxTQUFTLEVBQ1QsWUFBWSxFQUNaLFlBQVksR0FDYixNQUFNLHdCQUF3QixDQUFDO0FBb0JoQyxNQUFNLFVBQVUsVUFBVSxDQUFDLEdBQVc7SUFDcEMsT0FBTyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsR0FBRyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7QUFDN0QsQ0FBQztBQUVELE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxPQUFnQztJQUNqRSxNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsVUFBVTtRQUNsQyxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUMsVUFBVSxRQUFRO1FBQy9CLENBQUMsQ0FBQyxRQUFRLENBQUM7SUFDYixNQUFNLGNBQWMsR0FBRyxPQUFPLENBQUMsVUFBVTtRQUN2QyxDQUFDLENBQUMsV0FBVyxVQUFVLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxLQUFLO1FBQ2hELENBQUMsQ0FBQyxhQUFhLENBQUM7SUFDbEIsTUFBTSxtQkFBbUIsR0FBRyxPQUFPLENBQUMsVUFB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O29CQUNGLEtBQUssQ0FBQyxZQUFZLENBQUMsSUFBSSxVQUFVLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO2dCQUM5RCxDQUFDO2dCQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7b0JBQ1gsS0FBSyxDQUFDLFlBQVksQ0FBQyxJQUFJLFVBQVUsQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDO29CQUM5RCxNQUFNLENBQUMsQ0FBQztnQkFDVixDQUFDO1lBQ0gsQ0FBQztTQUNGLENBQUM7SUFDSixDQUFDLENBQUMsQ0FDSCxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFByb3ZpZGVyVG9rZW4sIFNpZ25hbCwgY29tcHV0ZWQsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgU2lnbmFsU3RvcmVGZWF0dXJlLFxuICBwYXRjaFN0YXRlLFxuICBzaWduYWxTdG9yZUZlYXR1cmUsXG4gIHdpdGhDb21wdXRlZCxcbiAgd2l0aE1ldGhvZHMsXG4gIHdpdGhTdGF0ZSxcbiAgU3RhdGVTaWduYWwsXG59IGZyb20gJ0BuZ3J4L3NpZ25hbHMnO1xuaW1wb3J0IHtcbiAgQ2FsbFN0YXRlLFxuICBnZXRDYWxsU3RhdGVLZXlzLFxuICBzZXRFcnJvcixcbiAgc2V0TG9hZGVkLFxuICBzZXRMb2FkaW5nLFxufSBmcm9tICcuL3dpdGgtY2FsbC1zdGF0ZSc7XG5pbXBvcnQge1xuICBzZXRBbGxFbnRpdGllcyxcbiAgRW50aXR5SWQsXG4gIGFkZEVudGl0eSxcbiAgdXBkYXRlRW50aXR5LFxuICByZW1vdmVFbnRpdHksXG59IGZyb20gJ0BuZ3J4L3NpZ25hbHMvZW50aXRpZXMnO1xuaW1wb3J0IHsgRW50aXR5U3RhdGUsIE5hbWVkRW50aXR5Q29tcHV0ZWQgfSBmcm9tICcuL3NoYXJlZC9zaWduYWwtc3RvcmUtbW9kZWxzJztcblxuZXhwb3J0IHR5cGUgRmlsdGVyID0gUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG5leHBvcnQgdHlwZSBFbnRpdHkgPSB7IGlkOiBFbnRpdHlJZCB9O1xuXG5leHBvcnQgaW50ZXJmYWNlIERhdGFTZXJ2aWNlPEUgZXh0ZW5kcyBFbnRpdHksIEYgZXh0ZW5kcyBGaWx0ZXI+IHtcbiAgbG9hZChmaWx0ZXI6IEYpOiBQcm9taXNlPEVbXT47XG5cbiAgbG9hZEJ5SWQoaWQ6IEVudGl0eUlkKTogUHJvbWlzZTxFPjtcblxuICBjcmVhdGUoZW50aXR5OiBFKTogUHJvbWlzZTxFPjtcblxuICB1cGRhdGUoZW50aXR5OiBFKTogUHJvbWlzZTxFPjtcblxuICB1cGRhdGVBbGwoZW50aXR5OiBFW10pOiBQcm9taXNlPEVbXT47XG5cbiAgZGVsZXRlKGVudGl0eTogRSk6IFByb21pc2U8dm9pZD47XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjYXBpdGFsaXplKHN0cjogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIHN0ciA/IHN0clswXS50b1VwcGVyQ2FzZSgpICsgc3RyLnN1YnN0cmluZygxKSA6IHN0cjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldERhdGFTZXJ2aWNlS2V5cyhvcHRpb25zOiB7IGNvbGxlY3Rpb24/OiBzdHJpbmcgfSkge1xuICBjb25zdCBmaWx0ZXJLZXkgPSBvcHRpb25zLmNvbGxlY3Rpb25cbiAgICA/IGAke29wdGlvbnMuY29sbGVjdGlvbn1GaWx0ZXJgXG4gICAgOiAnZmlsdGVyJztcbiAgY29uc3Qgc2VsZWN0ZWRJZHNLZXkgPSBvcHRpb25zLmNvbGxlY3Rpb25cbiAgICA/IGBzZWxlY3RlZCR7Y2FwaXRhbGl6ZShvcHRpb25zLmNvbGxlY3Rpb24pfUlkc2BcbiAgICA6ICdzZWxlY3RlZElkcyc7XG4gIGNvbnN0IHNlbGVjdGVkRW50aXRpZXNLZXkgPSBvcHRpb25zLmNvbGxlY3Rpb25cbiAgICA/IGBzZWxlY3RlZCR7Y2FwaXRhbGl6ZShvcHRpb25zLmNvbGxlY3Rpb24pfUVudGl0aWVzYFxuICAgIDogJ3NlbGVjdGVkRW50aXRpZXMnO1xuXG4gIGNvbnN0IHVwZGF0ZUZpbHRlcktleSA9IG9wdGlvbnMuY29sbGVjdGlvblxuICAgID8gYHVwZGF0ZSR7Y2FwaXRhbGl6ZShvcHRpb25zLmNvbGxlY3Rpb24pfUZpbHRlcmBcbiAgICA6ICd1cGRhdGVGaWx0ZXInO1xuICBjb25zdCB1cGRhdGVTZWxlY3RlZEtleSA9IG9wdGlvbnMuY29sbGVjdGlvblxuICAgID8gYHVwZGF0ZVNlbGVjdGVkJHtjYXBpdGFsaXplKG9wdGlvbnMuY29sbGVjdGlvbil9RW50aXRpZXNgXG4gICAgOiAndXBkYXRlU2VsZWN0ZWQnO1xuICBjb25zdCBsb2FkS2V5ID0gb3B0aW9ucy5jb2xsZWN0aW9uXG4gICAgPyBgbG9hZCR7Y2FwaXRhbGl6ZShvcHRpb25zLmNvbGxlY3Rpb24pfUVudGl0aWVzYFxuICAgIDogJ2xvYWQnO1xuXG4gIGNvbnN0IGN1cnJlbnRLZXkgPSBvcHRpb25zLmNvbGxlY3Rpb25cbiAgICA/IGBjdXJyZW50JHtjYXBpdGFsaXplKG9wdGlvbnMuY29sbGVjdGlvbil9YFxuICAgIDogJ2N1cnJlbnQnO1xuICBjb25zdCBsb2FkQnlJZEtleSA9IG9wdGlvbnMuY29sbGVjdGlvblxuICAgID8gYGxvYWQke2NhcGl0YWxpemUob3B0aW9ucy5jb2xsZWN0aW9uKX1CeUlkYFxuICAgIDogJ2xvYWRCeUlkJztcbiAgY29uc3Qgc2V0Q3VycmVudEtleSA9IG9wdGlvbnMuY29sbGVjdGlvblxuICAgID8gYHNldEN1cnJlbnQke2NhcGl0YWxpemUob3B0aW9ucy5jb2xsZWN0aW9uKX1gXG4gICAgOiAnc2V0Q3VycmVudCc7XG4gIGNvbnN0IGNyZWF0ZUtleSA9IG9wdGlvbnMuY29sbGVjdGlvblxuICAgID8gYGNyZWF0ZSR7Y2FwaXRhbGl6ZShvcHRpb25zLmNvbGxlY3Rpb24pfWBcbiAgICA6ICdjcmVhdGUnO1xuICBjb25zdCB1cGRhdGVLZXkgPSBvcHRpb25zLmNvbGxlY3Rpb25cbiAgICA/IGB1cGRhdGUke2NhcGl0YWxpemUob3B0aW9ucy5jb2xsZWN0aW9uKX1gXG4gICAgOiAndXBkYXRlJztcbiAgY29uc3QgdXBkYXRlQWxsS2V5ID0gb3B0aW9ucy5jb2xsZWN0aW9uXG4gICAgPyBgdXBkYXRlQWxsJHtjYXBpdGFsaXplKG9wdGlvbnMuY29sbGVjdGlvbil9YFxuICAgIDogJ3VwZGF0ZUFsbCc7XG4gIGNvbnN0IGRlbGV0ZUtleSA9IG9wdGlvbnMuY29sbGVjdGlvblxuICAgID8gYGRlbGV0ZSR7Y2FwaXRhbGl6ZShvcHRpb25zLmNvbGxlY3Rpb24pfWBcbiAgICA6ICdkZWxldGUnO1xuXG4gIC8vIFRPRE86IFRha2UgdGhlc2UgZnJvbSBAbmdyeC9zaWduYWxzL2VudGl0aWVzLCB3aGVuIHRoZXkgYXJlIGV4cG9ydGVkXG4gIGNvbnN0IGVudGl0aWVzS2V5ID0gb3B0aW9ucy5jb2xsZWN0aW9uXG4gICAgPyBgJHtvcHRpb25zLmNvbGxlY3Rpb259RW50aXRpZXNgXG4gICAgOiAnZW50aXRpZXMnO1xuICBjb25zdCBlbnRpdHlNYXBLZXkgPSBvcHRpb25zLmNvbGxlY3Rpb25cbiAgICA/IGAke29wdGlvbnMuY29sbGVjdGlvbn1FbnRpdHlNYXBgXG4gICAgOiAnZW50aXR5TWFwJztcbiAgY29uc3QgaWRzS2V5ID0gb3B0aW9ucy5jb2xsZWN0aW9uID8gYCR7b3B0aW9ucy5jb2xsZWN0aW9ufUlkc2AgOiAnaWRzJztcblxuICByZXR1cm4ge1xuICAgIGZpbHRlcktleSxcbiAgICBzZWxlY3RlZElkc0tleSxcbiAgICBzZWxlY3RlZEVudGl0aWVzS2V5LFxuICAgIHVwZGF0ZUZpbHRlcktleSxcbiAgICB1cGRhdGVTZWxlY3RlZEtleSxcbiAgICBsb2FkS2V5LFxuICAgIGVudGl0aWVzS2V5LFxuICAgIGVudGl0eU1hcEtleSxcbiAgICBpZHNLZXksXG5cbiAgICBjdXJyZW50S2V5LFxuICAgIGxvYWRCeUlkS2V5LFxuICAgIHNldEN1cnJlbnRLZXksXG4gICAgY3JlYXRlS2V5LFxuICAgIHVwZGF0ZUtleSxcbiAgICB1cGRhdGVBbGxLZXksXG4gICAgZGVsZXRlS2V5LFxuICB9O1xufVxuXG5leHBvcnQgdHlwZSBOYW1lZERhdGFTZXJ2aWNlU3RhdGU8XG4gIEUgZXh0ZW5kcyBFbnRpdHksXG4gIEYgZXh0ZW5kcyBGaWx0ZXIsXG4gIENvbGxlY3Rpb24gZXh0ZW5kcyBzdHJpbmdcbj4gPSB7XG4gIFtLIGluIENvbGxlY3Rpb24gYXMgYCR7S31GaWx0ZXJgXTogRjtcbn0gJiB7XG4gIFtLIGluIENvbGxlY3Rpb24gYXMgYHNlbGVjdGVkJHtDYXBpdGFsaXplPEs+fUlkc2BdOiBSZWNvcmQ8RW50aXR5SWQsIGJvb2xlYW4+O1xufSAmIHtcbiAgW0sgaW4gQ29sbGVjdGlvbiBhcyBgY3VycmVudCR7Q2FwaXRhbGl6ZTxLPn1gXTogRTtcbn07XG5cbmV4cG9ydCB0eXBlIERhdGFTZXJ2aWNlU3RhdGU8RSBleHRlbmRzIEVudGl0eSwgRiBleHRlbmRzIEZpbHRlcj4gPSB7XG4gIGZpbHRlcjogRjtcbiAgc2VsZWN0ZWRJZHM6IFJlY29yZDxFbnRpdHlJZCwgYm9vbGVhbj47XG4gIGN1cnJlbnQ6IEU7XG59O1xuXG5leHBvcnQgdHlwZSBEYXRhU2VydmljZUNvbXB1dGVkPEUgZXh0ZW5kcyBFbnRpdHk+ID0ge1xuICBzZWxlY3RlZEVudGl0aWVzOiBTaWduYWw8RVtdPjtcbn07XG5cbmV4cG9ydCB0eXBlIE5hbWVkRGF0YVNlcnZpY2VDb21wdXRlZDxcbiAgRSBleHRlbmRzIEVudGl0eSxcbiAgQ29sbGVjdGlvbiBleHRlbmRzIHN0cmluZ1xuPiA9IHtcbiAgW0sgaW4gQ29sbGVjdGlvbiBhcyBgc2VsZWN0ZWQke0NhcGl0YWxpemU8Sz59RW50aXRpZXNgXTogU2lnbmFsPEVbXT47XG59O1xuXG5leHBvcnQgdHlwZSBOYW1lZERhdGFTZXJ2aWNlTWV0aG9kczxcbiAgRSBleHRlbmRzIEVudGl0eSxcbiAgRiBleHRlbmRzIEZpbHRlcixcbiAgQ29sbGVjdGlvbiBleHRlbmRzIHN0cmluZ1xuPiA9IHtcbiAgW0sgaW4gQ29sbGVjdGlvbiBhcyBgdXBkYXRlJHtDYXBpdGFsaXplPEs+fUZpbHRlcmBdOiAoZmlsdGVyOiBGKSA9PiB2b2lkO1xufSAmIHtcbiAgW0sgaW4gQ29sbGVjdGlvbiBhcyBgdXBkYXRlU2VsZWN0ZWQke0NhcGl0YWxpemU8Sz59RW50aXRpZXNgXTogKFxuICAgIGlkOiBFbnRpdHlJZCxcbiAgICBzZWxlY3RlZDogYm9vbGVhblxuICApID0+IHZvaWQ7XG59ICYge1xuICBbSyBpbiBDb2xsZWN0aW9uIGFzIGBsb2FkJHtDYXBpdGFsaXplPEs+fUVudGl0aWVzYF06ICgpID0+IFByb21pc2U8dm9pZD47XG59ICYge1xuICBbSyBpbiBDb2xsZWN0aW9uIGFzIGBzZXRDdXJyZW50JHtDYXBpdGFsaXplPEs+fWBdOiAoZW50aXR5OiBFKSA9PiB2b2lkO1xufSAmIHtcbiAgW0sgaW4gQ29sbGVjdGlvbiBhcyBgbG9hZCR7Q2FwaXRhbGl6ZTxLPn1CeUlkYF06IChcbiAgICBpZDogRW50aXR5SWRcbiAgKSA9PiBQcm9taXNlPHZvaWQ+O1xufSAmIHtcbiAgW0sgaW4gQ29sbGVjdGlvbiBhcyBgY3JlYXRlJHtDYXBpdGFsaXplPEs+fWBdOiAoZW50aXR5OiBFKSA9PiBQcm9taXNlPHZvaWQ+O1xufSAmIHtcbiAgW0sgaW4gQ29sbGVjdGlvbiBhcyBgdXBkYXRlJHtDYXBpdGFsaXplPEs+fWBdOiAoZW50aXR5OiBFKSA9PiBQcm9taXNlPHZvaWQ+O1xufSAmIHtcbiAgW0sgaW4gQ29sbGVjdGlvbiBhcyBgdXBkYXRlQWxsJHtDYXBpdGFsaXplPEs+fWBdOiAoXG4gICAgZW50aXR5OiBFW11cbiAgKSA9PiBQcm9taXNlPHZvaWQ+O1xufSAmIHtcbiAgW0sgaW4gQ29sbGVjdGlvbiBhcyBgZGVsZXRlJHtDYXBpdGFsaXplPEs+fWBdOiAoZW50aXR5OiBFKSA9PiBQcm9taXNlPHZvaWQ+O1xufTtcblxuZXhwb3J0IHR5cGUgRGF0YVNlcnZpY2VNZXRob2RzPEUgZXh0ZW5kcyBFbnRpdHksIEYgZXh0ZW5kcyBGaWx0ZXI+ID0ge1xuICB1cGRhdGVGaWx0ZXI6IChmaWx0ZXI6IEYpID0+IHZvaWQ7XG4gIHVwZGF0ZVNlbGVjdGVkOiAoaWQ6IEVudGl0eUlkLCBzZWxlY3RlZDogYm9vbGVhbikgPT4gdm9pZDtcbiAgbG9hZDogKCkgPT4gUHJvbWlzZTx2b2lkPjtcblxuICBzZXRDdXJyZW50KGVudGl0eTogRSk6IHZvaWQ7XG4gIGxvYWRCeUlkKGlkOiBFbnRpdHlJZCk6IFByb21pc2U8dm9pZD47XG4gIGNyZWF0ZShlbnRpdHk6IEUpOiBQcm9taXNlPHZvaWQ+O1xuICB1cGRhdGUoZW50aXR5OiBFKTogUHJvbWlzZTx2b2lkPjtcbiAgdXBkYXRlQWxsKGVudGl0aWVzOiBFW10pOiBQcm9taXNlPHZvaWQ+O1xuICBkZWxldGUoZW50aXR5OiBFKTogUHJvbWlzZTx2b2lkPjtcbn07XG5cbmV4cG9ydCB0eXBlIEVtcHR5ID0gUmVjb3JkPHN0cmluZywgbmV2ZXI+O1xuXG5leHBvcnQgZnVuY3Rpb24gd2l0aERhdGFTZXJ2aWNlPFxuICBFIGV4dGVuZHMgRW50aXR5LFxuICBGIGV4dGVuZHMgRmlsdGVyLFxuICBDb2xsZWN0aW9uIGV4dGVuZHMgc3RyaW5nXG4+KG9wdGlvbnM6IHtcbiAgZGF0YVNlcnZpY2VUeXBlOiBQcm92aWRlclRva2VuPERhdGFTZXJ2aWNlPEUsIEY+PjtcbiAgZmlsdGVyOiBGO1xuICBjb2xsZWN0aW9uOiBDb2xsZWN0aW9uO1xufSk6IFNpZ25hbFN0b3JlRmVhdHVyZTxcbiAge1xuICAgIHN0YXRlOiB7fTtcbiAgICAvLyBUaGVzZSBhbHRlcm5hdGl2ZXMgYnJlYWsgdHlwZSBpbmZlcmVuY2U6XG4gICAgLy8gc3RhdGU6IHsgY2FsbFN0YXRlOiBDYWxsU3RhdGUgfSAmIE5hbWVkRW50aXR5U3RhdGU8RSwgQ29sbGVjdGlvbj4sXG4gICAgLy8gc3RhdGU6IE5hbWVkRW50aXR5U3RhdGU8RSwgQ29sbGVjdGlvbj4sXG5cbiAgICBjb21wdXRlZDogTmFtZWRFbnRpdHlDb21wdXRlZDxFLCBDb2xsZWN0aW9uPjtcbiAgICBtZXRob2RzOiB7fTtcbiAgfSxcbiAge1xuICAgIHN0YXRlOiBOYW1lZERhdGFTZXJ2aWNlU3RhdGU8RSwgRiwgQ29sbGVjdGlvbj47XG4gICAgY29tcHV0ZWQ6IE5hbWVkRGF0YVNlcnZpY2VDb21wdXRlZDxFLCBDb2xsZWN0aW9uPjtcbiAgICBtZXRob2RzOiBOYW1lZERhdGFTZXJ2aWNlTWV0aG9kczxFLCBGLCBDb2xsZWN0aW9uPjtcbiAgfVxuPjtcbmV4cG9ydCBmdW5jdGlvbiB3aXRoRGF0YVNlcnZpY2U8RSBleHRlbmRzIEVudGl0eSwgRiBleHRlbmRzIEZpbHRlcj4ob3B0aW9uczoge1xuICBkYXRhU2VydmljZVR5cGU6IFByb3ZpZGVyVG9rZW48RGF0YVNlcnZpY2U8RSwgRj4+O1xuICBmaWx0ZXI6IEY7XG59KTogU2lnbmFsU3RvcmVGZWF0dXJlPFxuICB7XG4gICAgc3RhdGU6IHsgY2FsbFN0YXRlOiBDYWxsU3RhdGUgfSAmIEVudGl0eVN0YXRlPEU+O1xuICAgIGNvbXB1dGVkOiB7fTtcbiAgICBtZXRob2RzOiB7fTtcbiAgfSxcbiAge1xuICAgIHN0YXRlOiBEYXRhU2VydmljZVN0YXRlPEUsIEY+O1xuICAgIGNvbXB1dGVkOiBEYXRhU2VydmljZUNvbXB1dGVkPEU+O1xuICAgIG1ldGhvZHM6IERhdGFTZXJ2aWNlTWV0aG9kczxFLCBGPjtcbiAgfVxuPjtcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbmV4cG9ydCBmdW5jdGlvbiB3aXRoRGF0YVNlcnZpY2U8XG4gIEUgZXh0ZW5kcyBFbnRpdHksXG4gIEYgZXh0ZW5kcyBGaWx0ZXIsXG4gIENvbGxlY3Rpb24gZXh0ZW5kcyBzdHJpbmdcbj4ob3B0aW9uczoge1xuICBkYXRhU2VydmljZVR5cGU6IFByb3ZpZGVyVG9rZW48RGF0YVNlcnZpY2U8RSwgRj4+O1xuICBmaWx0ZXI6IEY7XG4gIGNvbGxlY3Rpb24/OiBDb2xsZWN0aW9uO1xufSk6IFNpZ25hbFN0b3JlRmVhdHVyZTxhbnksIGFueT4ge1xuICBjb25zdCB7IGRhdGFTZXJ2aWNlVHlwZSwgZmlsdGVyLCBjb2xsZWN0aW9uOiBwcmVmaXggfSA9IG9wdGlvbnM7XG4gIGNvbnN0IHtcbiAgICBlbnRpdGllc0tleSxcbiAgICBmaWx0ZXJLZXksXG4gICAgbG9hZEtleSxcbiAgICBzZWxlY3RlZEVudGl0aWVzS2V5LFxuICAgIHNlbGVjdGVkSWRzS2V5LFxuICAgIHVwZGF0ZUZpbHRlcktleSxcbiAgICB1cGRhdGVTZWxlY3RlZEtleSxcblxuICAgIGN1cnJlbnRLZXksXG4gICAgY3JlYXRlS2V5LFxuICAgIHVwZGF0ZUtleSxcbiAgICB1cGRhdGVBbGxLZXksXG4gICAgZGVsZXRlS2V5LFxuICAgIGxvYWRCeUlkS2V5LFxuICAgIHNldEN1cnJlbnRLZXksXG4gIH0gPSBnZXREYXRhU2VydmljZUtleXMob3B0aW9ucyk7XG5cbiAgY29uc3QgeyBjYWxsU3RhdGVLZXkgfSA9IGdldENhbGxTdGF0ZUtleXMoeyBjb2xsZWN0aW9uOiBwcmVmaXggfSk7XG5cbiAgcmV0dXJuIHNpZ25hbFN0b3JlRmVhdHVyZShcbiAgICB3aXRoU3RhdGUoKCkgPT4gKHtcbiAgICAgIFtmaWx0ZXJLZXldOiBmaWx0ZXIsXG4gICAgICBbc2VsZWN0ZWRJZHNLZXldOiB7fSBhcyBSZWNvcmQ8RW50aXR5SWQsIGJvb2xlYW4+LFxuICAgICAgW2N1cnJlbnRLZXldOiB1bmRlZmluZWQgYXMgRSB8IHVuZGVmaW5lZCxcbiAgICB9KSksXG4gICAgd2l0aENvbXB1dGVkKChzdG9yZTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pID0+IHtcbiAgICAgIGNvbnN0IGVudGl0aWVzID0gc3RvcmVbZW50aXRpZXNLZXldIGFzIFNpZ25hbDxFW10+O1xuICAgICAgY29uc3Qgc2VsZWN0ZWRJZHMgPSBzdG9yZVtzZWxlY3RlZElkc0tleV0gYXMgU2lnbmFsPFxuICAgICAgICBSZWNvcmQ8RW50aXR5SWQsIGJvb2xlYW4+XG4gICAgICA+O1xuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBbc2VsZWN0ZWRFbnRpdGllc0tleV06IGNvbXB1dGVkKCgpID0+XG4gICAgICAgICAgZW50aXRpZXMoKS5maWx0ZXIoKGUpID0+IHNlbGVjdGVkSWRzKClbZS5pZF0pXG4gICAgICAgICksXG4gICAgICB9O1xuICAgIH0pLFxuICAgIHdpdGhNZXRob2RzKChzdG9yZTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gJiBTdGF0ZVNpZ25hbDxvYmplY3Q+KSA9PiB7XG4gICAgICBjb25zdCBkYXRhU2VydmljZSA9IGluamVjdChkYXRhU2VydmljZVR5cGUpO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgW3VwZGF0ZUZpbHRlcktleV06IChmaWx0ZXI6IEYpOiB2b2lkID0+IHtcbiAgICAgICAgICBwYXRjaFN0YXRlKHN0b3JlLCB7IFtmaWx0ZXJLZXldOiBmaWx0ZXIgfSk7XG4gICAgICAgIH0sXG4gICAgICAgIFt1cGRhdGVTZWxlY3RlZEtleV06IChpZDogRW50aXR5SWQsIHNlbGVjdGVkOiBib29sZWFuKTogdm9pZCA9PiB7XG4gICAgICAgICAgcGF0Y2hTdGF0ZShzdG9yZSwgKHN0YXRlOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPikgPT4gKHtcbiAgICAgICAgICAgIFtzZWxlY3RlZElkc0tleV06IHtcbiAgICAgICAgICAgICAgLi4uKHN0YXRlW3NlbGVjdGVkSWRzS2V5XSBhcyBSZWNvcmQ8RW50aXR5SWQsIGJvb2xlYW4+KSxcbiAgICAgICAgICAgICAgW2lkXTogc2VsZWN0ZWQsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0pKTtcbiAgICAgICAgfSxcbiAgICAgICAgW2xvYWRLZXldOiBhc3luYyAoKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgICAgICAgY29uc3QgZmlsdGVyID0gc3RvcmVbZmlsdGVyS2V5XSBhcyBTaWduYWw8Rj47XG4gICAgICAgICAgc3RvcmVbY2FsbFN0YXRlS2V5XSAmJiBwYXRjaFN0YXRlKHN0b3JlLCBzZXRMb2FkaW5nKHByZWZpeCkpO1xuXG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGRhdGFTZXJ2aWNlLmxvYWQoZmlsdGVyKCkpO1xuICAgICAgICAgICAgcGF0Y2hTdGF0ZShcbiAgICAgICAgICAgICAgc3RvcmUsXG4gICAgICAgICAgICAgIHByZWZpeFxuICAgICAgICAgICAgICAgID8gc2V0QWxsRW50aXRpZXMocmVzdWx0LCB7IGNvbGxlY3Rpb246IHByZWZpeCB9KVxuICAgICAgICAgICAgICAgIDogc2V0QWxsRW50aXRpZXMocmVzdWx0KVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHN0b3JlW2NhbGxTdGF0ZUtleV0gJiYgcGF0Y2hTdGF0ZShzdG9yZSwgc2V0TG9hZGVkKHByZWZpeCkpO1xuICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIHN0b3JlW2NhbGxTdGF0ZUtleV0gJiYgcGF0Y2hTdGF0ZShzdG9yZSwgc2V0RXJyb3IoZSwgcHJlZml4KSk7XG4gICAgICAgICAgICB0aHJvdyBlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgW2xvYWRCeUlkS2V5XTogYXN5bmMgKGlkOiBFbnRpdHlJZCk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgICAgICAgIHN0b3JlW2NhbGxTdGF0ZUtleV0gJiYgcGF0Y2hTdGF0ZShzdG9yZSwgc2V0TG9hZGluZyhwcmVmaXgpKTtcblxuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCBjdXJyZW50ID0gYXdhaXQgZGF0YVNlcnZpY2UubG9hZEJ5SWQoaWQpO1xuICAgICAgICAgICAgc3RvcmVbY2FsbFN0YXRlS2V5XSAmJiBwYXRjaFN0YXRlKHN0b3JlLCBzZXRMb2FkZWQocHJlZml4KSk7XG4gICAgICAgICAgICBwYXRjaFN0YXRlKHN0b3JlLCB7IFtjdXJyZW50S2V5XTogY3VycmVudCB9KTtcbiAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICBzdG9yZVtjYWxsU3RhdGVLZXldICYmIHBhdGNoU3RhdGUoc3RvcmUsIHNldEVycm9yKGUsIHByZWZpeCkpO1xuICAgICAgICAgICAgdGhyb3cgZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFtzZXRDdXJyZW50S2V5XTogKGN1cnJlbnQ6IEUpOiB2b2lkID0+IHtcbiAgICAgICAgICBwYXRjaFN0YXRlKHN0b3JlLCB7IFtjdXJyZW50S2V5XTogY3VycmVudCB9KTtcbiAgICAgICAgfSxcbiAgICAgICAgW2NyZWF0ZUtleV06IGFzeW5jIChlbnRpdHk6IEUpOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICAgICAgICBwYXRjaFN0YXRlKHN0b3JlLCB7IFtjdXJyZW50S2V5XTogZW50aXR5IH0pO1xuICAgICAgICAgIHN0b3JlW2NhbGxTdGF0ZUtleV0gJiYgcGF0Y2hTdGF0ZShzdG9yZSwgc2V0TG9hZGluZyhwcmVmaXgpKTtcblxuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCBjcmVhdGVkID0gYXdhaXQgZGF0YVNlcnZpY2UuY3JlYXRlKGVudGl0eSk7XG4gICAgICAgICAgICBwYXRjaFN0YXRlKHN0b3JlLCB7IFtjdXJyZW50S2V5XTogY3JlYXRlZCB9KTtcbiAgICAgICAgICAgIHBhdGNoU3RhdGUoXG4gICAgICAgICAgICAgIHN0b3JlLFxuICAgICAgICAgICAgICBwcmVmaXhcbiAgICAgICAgICAgICAgICA/IGFkZEVudGl0eShjcmVhdGVkLCB7IGNvbGxlY3Rpb246IHByZWZpeCB9KVxuICAgICAgICAgICAgICAgIDogYWRkRW50aXR5KGNyZWF0ZWQpXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgc3RvcmVbY2FsbFN0YXRlS2V5XSAmJiBwYXRjaFN0YXRlKHN0b3JlLCBzZXRMb2FkZWQocHJlZml4KSk7XG4gICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgc3RvcmVbY2FsbFN0YXRlS2V5XSAmJiBwYXRjaFN0YXRlKHN0b3JlLCBzZXRFcnJvcihlLCBwcmVmaXgpKTtcbiAgICAgICAgICAgIHRocm93IGU7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBbdXBkYXRlS2V5XTogYXN5bmMgKGVudGl0eTogRSk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgICAgICAgIHBhdGNoU3RhdGUoc3RvcmUsIHsgW2N1cnJlbnRLZXldOiBlbnRpdHkgfSk7XG4gICAgICAgICAgc3RvcmVbY2FsbFN0YXRlS2V5XSAmJiBwYXRjaFN0YXRlKHN0b3JlLCBzZXRMb2FkaW5nKHByZWZpeCkpO1xuXG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHVwZGF0ZWQgPSBhd2FpdCBkYXRhU2VydmljZS51cGRhdGUoZW50aXR5KTtcbiAgICAgICAgICAgIHBhdGNoU3RhdGUoc3RvcmUsIHsgW2N1cnJlbnRLZXldOiB1cGRhdGVkIH0pO1xuXG4gICAgICAgICAgICBjb25zdCB1cGRhdGVBcmcgPSB7XG4gICAgICAgICAgICAgIGlkOiB1cGRhdGVkLmlkLFxuICAgICAgICAgICAgICBjaGFuZ2VzOiB1cGRhdGVkLFxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgY29uc3QgdXBkYXRlciA9IChjb2xsZWN0aW9uOiBzdHJpbmcpID0+XG4gICAgICAgICAgICAgIHVwZGF0ZUVudGl0eSh1cGRhdGVBcmcsIHsgY29sbGVjdGlvbiB9KTtcblxuICAgICAgICAgICAgcGF0Y2hTdGF0ZShcbiAgICAgICAgICAgICAgc3RvcmUsXG4gICAgICAgICAgICAgIHByZWZpeCA/IHVwZGF0ZXIocHJlZml4KSA6IHVwZGF0ZUVudGl0eSh1cGRhdGVBcmcpXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgc3RvcmVbY2FsbFN0YXRlS2V5XSAmJiBwYXRjaFN0YXRlKHN0b3JlLCBzZXRMb2FkZWQocHJlZml4KSk7XG4gICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgc3RvcmVbY2FsbFN0YXRlS2V5XSAmJiBwYXRjaFN0YXRlKHN0b3JlLCBzZXRFcnJvcihlLCBwcmVmaXgpKTtcbiAgICAgICAgICAgIHRocm93IGU7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBbdXBkYXRlQWxsS2V5XTogYXN5bmMgKGVudGl0aWVzOiBFW10pOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICAgICAgICBzdG9yZVtjYWxsU3RhdGVLZXldICYmIHBhdGNoU3RhdGUoc3RvcmUsIHNldExvYWRpbmcocHJlZml4KSk7XG5cbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgZGF0YVNlcnZpY2UudXBkYXRlQWxsKGVudGl0aWVzKTtcbiAgICAgICAgICAgIHBhdGNoU3RhdGUoXG4gICAgICAgICAgICAgIHN0b3JlLFxuICAgICAgICAgICAgICBwcmVmaXhcbiAgICAgICAgICAgICAgICA/IHNldEFsbEVudGl0aWVzKHJlc3VsdCwgeyBjb2xsZWN0aW9uOiBwcmVmaXggfSlcbiAgICAgICAgICAgICAgICA6IHNldEFsbEVudGl0aWVzKHJlc3VsdClcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBzdG9yZVtjYWxsU3RhdGVLZXldICYmIHBhdGNoU3RhdGUoc3RvcmUsIHNldExvYWRlZChwcmVmaXgpKTtcbiAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICBzdG9yZVtjYWxsU3RhdGVLZXldICYmIHBhdGNoU3RhdGUoc3RvcmUsIHNldEVycm9yKGUsIHByZWZpeCkpO1xuICAgICAgICAgICAgdGhyb3cgZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFtkZWxldGVLZXldOiBhc3luYyAoZW50aXR5OiBFKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgICAgICAgcGF0Y2hTdGF0ZShzdG9yZSwgeyBbY3VycmVudEtleV06IGVudGl0eSB9KTtcbiAgICAgICAgICBzdG9yZVtjYWxsU3RhdGVLZXldICYmIHBhdGNoU3RhdGUoc3RvcmUsIHNldExvYWRpbmcocHJlZml4KSk7XG5cbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgYXdhaXQgZGF0YVNlcnZpY2UuZGVsZXRlKGVudGl0eSk7XG4gICAgICAgICAgICBwYXRjaFN0YXRlKHN0b3JlLCB7IFtjdXJyZW50S2V5XTogdW5kZWZpbmVkIH0pO1xuICAgICAgICAgICAgcGF0Y2hTdGF0ZShcbiAgICAgICAgICAgICAgc3RvcmUsXG4gICAgICAgICAgICAgIHByZWZpeFxuICAgICAgICAgICAgICAgID8gcmVtb3ZlRW50aXR5KGVudGl0eS5pZCwgeyBjb2xsZWN0aW9uOiBwcmVmaXggfSlcbiAgICAgICAgICAgICAgICA6IHJlbW92ZUVudGl0eShlbnRpdHkuaWQpXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgc3RvcmVbY2FsbFN0YXRlS2V5XSAmJiBwYXRjaFN0YXRlKHN0b3JlLCBzZXRMb2FkZWQocHJlZml4KSk7XG4gICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgc3RvcmVbY2FsbFN0YXRlS2V5XSAmJiBwYXRjaFN0YXRlKHN0b3JlLCBzZXRFcnJvcihlLCBwcmVmaXgpKTtcbiAgICAgICAgICAgIHRocm93IGU7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICB9KVxuICApO1xufVxuIl19