@stemy/ngx-utils 17.1.5 → 17.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 +27 -27
- package/assets/ng.mjs +5 -5
- package/esm2022/ngx-utils/common-types.mjs +1 -1
- package/esm2022/ngx-utils/components/dynamic-table/dynamic-table.component.mjs +3 -3
- package/esm2022/ngx-utils/components/pagination-menu/pagination-menu.component.mjs +3 -3
- package/esm2022/ngx-utils/components/unordered-list/unordered-list.component.mjs +3 -3
- package/esm2022/ngx-utils/directives/async-method.base.mjs +1 -1
- package/esm2022/ngx-utils/directives/async-method.directive.mjs +1 -1
- package/esm2022/ngx-utils/directives/background.directive.mjs +1 -1
- package/esm2022/ngx-utils/directives/dynamic-table-template.directive.mjs +1 -1
- package/esm2022/ngx-utils/directives/global-template.directive.mjs +1 -1
- package/esm2022/ngx-utils/directives/icon.directive.mjs +1 -1
- package/esm2022/ngx-utils/directives/ngx-template-outlet.directive.mjs +1 -1
- package/esm2022/ngx-utils/directives/pagination-item.directive.mjs +1 -1
- package/esm2022/ngx-utils/directives/pagination.directive.mjs +1 -1
- package/esm2022/ngx-utils/directives/resource-if.directive.mjs +1 -1
- package/esm2022/ngx-utils/directives/sticky-class.directive.mjs +1 -1
- package/esm2022/ngx-utils/directives/sticky.directive.mjs +1 -1
- package/esm2022/ngx-utils/directives/unordered-list-item.directive.mjs +1 -1
- package/esm2022/ngx-utils/directives/unordered-list-template.directive.mjs +1 -1
- package/esm2022/ngx-utils/ngx-utils.imports.mjs +1 -1
- package/esm2022/ngx-utils/ngx-utils.module.mjs +1 -1
- package/esm2022/ngx-utils/pipes/chunk.pipe.mjs +1 -1
- package/esm2022/ngx-utils/pipes/entries.pipe.mjs +1 -1
- package/esm2022/ngx-utils/pipes/extra-item-properties.pipe.mjs +1 -1
- package/esm2022/ngx-utils/pipes/filter.pipe.mjs +1 -1
- package/esm2022/ngx-utils/pipes/find.pipe.mjs +1 -1
- package/esm2022/ngx-utils/pipes/format-number.pipe.mjs +1 -1
- package/esm2022/ngx-utils/pipes/get-offset.pipe.mjs +1 -1
- package/esm2022/ngx-utils/pipes/get-type.pipe.mjs +1 -1
- package/esm2022/ngx-utils/pipes/get-value.pipe.mjs +1 -1
- package/esm2022/ngx-utils/pipes/global-template.pipe.mjs +1 -1
- package/esm2022/ngx-utils/pipes/group-by.pipe.mjs +1 -1
- package/esm2022/ngx-utils/pipes/is-type.pipe.mjs +1 -1
- package/esm2022/ngx-utils/pipes/join.pipe.mjs +1 -1
- package/esm2022/ngx-utils/pipes/keys.pipe.mjs +1 -1
- package/esm2022/ngx-utils/pipes/map.pipe.mjs +1 -1
- package/esm2022/ngx-utils/pipes/max.pipe.mjs +1 -1
- package/esm2022/ngx-utils/pipes/min.pipe.mjs +1 -1
- package/esm2022/ngx-utils/pipes/pop.pipe.mjs +1 -1
- package/esm2022/ngx-utils/pipes/reduce.pipe.mjs +1 -1
- package/esm2022/ngx-utils/pipes/remap.pipe.mjs +1 -1
- package/esm2022/ngx-utils/pipes/replace.pipe.mjs +1 -1
- package/esm2022/ngx-utils/pipes/reverse.pipe.mjs +1 -1
- package/esm2022/ngx-utils/pipes/round.pipe.mjs +1 -1
- package/esm2022/ngx-utils/pipes/safe-html.pipe.mjs +1 -1
- package/esm2022/ngx-utils/pipes/shift.pipe.mjs +1 -1
- package/esm2022/ngx-utils/pipes/split.pipe.mjs +1 -1
- package/esm2022/ngx-utils/pipes/translate.pipe.mjs +1 -1
- package/esm2022/ngx-utils/pipes/values.pipe.mjs +1 -1
- package/esm2022/ngx-utils/plugins/resize-event.plugin.mjs +1 -1
- package/esm2022/ngx-utils/plugins/scroll-event.plugin.mjs +1 -1
- package/esm2022/ngx-utils/services/acl.service.mjs +1 -1
- package/esm2022/ngx-utils/services/api.service.mjs +1 -1
- package/esm2022/ngx-utils/services/auth.service.mjs +1 -1
- package/esm2022/ngx-utils/services/base-http.client.mjs +1 -1
- package/esm2022/ngx-utils/services/base-http.service.mjs +1 -1
- package/esm2022/ngx-utils/services/config.service.mjs +1 -1
- package/esm2022/ngx-utils/services/error-handler.service.mjs +1 -1
- package/esm2022/ngx-utils/services/events.service.mjs +1 -1
- package/esm2022/ngx-utils/services/formatter.service.mjs +1 -1
- package/esm2022/ngx-utils/services/global-template.service.mjs +1 -1
- package/esm2022/ngx-utils/services/icon.service.mjs +1 -1
- package/esm2022/ngx-utils/services/language.service.mjs +1 -1
- package/esm2022/ngx-utils/services/local-http.service.mjs +1 -1
- package/esm2022/ngx-utils/services/open-api.service.mjs +1 -1
- package/esm2022/ngx-utils/services/promise.service.mjs +1 -1
- package/esm2022/ngx-utils/services/state.service.mjs +1 -1
- package/esm2022/ngx-utils/services/static-language.service.mjs +1 -1
- package/esm2022/ngx-utils/services/storage.service.mjs +1 -1
- package/esm2022/ngx-utils/services/toaster.service.mjs +1 -1
- package/esm2022/ngx-utils/services/translated-url.serializer.mjs +1 -1
- package/esm2022/ngx-utils/services/universal.service.mjs +1 -1
- package/esm2022/ngx-utils/services/wasm.service.mjs +1 -1
- package/esm2022/ngx-utils/utils/ajax-request-handler.mjs +1 -1
- package/esm2022/ngx-utils/utils/array.utils.mjs +1 -1
- package/esm2022/ngx-utils/utils/auth.guard.mjs +1 -1
- package/esm2022/ngx-utils/utils/cached-factory.mjs +1 -1
- package/esm2022/ngx-utils/utils/canvas.utils.mjs +1 -1
- package/esm2022/ngx-utils/utils/date.utils.mjs +1 -1
- package/esm2022/ngx-utils/utils/file-system.mjs +6 -4
- package/esm2022/ngx-utils/utils/file.utils.mjs +1 -1
- package/esm2022/ngx-utils/utils/generic-value.mjs +1 -1
- package/esm2022/ngx-utils/utils/geometry.mjs +1 -1
- package/esm2022/ngx-utils/utils/initializer.mjs +1 -1
- package/esm2022/ngx-utils/utils/jsonfn.mjs +1 -1
- package/esm2022/ngx-utils/utils/loader.utils.mjs +1 -1
- package/esm2022/ngx-utils/utils/math.utils.mjs +1 -1
- package/esm2022/ngx-utils/utils/object.utils.mjs +1 -1
- package/esm2022/ngx-utils/utils/observable.utils.mjs +1 -1
- package/esm2022/ngx-utils/utils/promise.utils.mjs +1 -1
- package/esm2022/ngx-utils/utils/reflect.utils.mjs +1 -1
- package/esm2022/ngx-utils/utils/set.utils.mjs +1 -1
- package/esm2022/ngx-utils/utils/string.utils.mjs +1 -1
- package/esm2022/ngx-utils/utils/timer.utils.mjs +1 -1
- package/esm2022/ngx-utils/utils/unique.utils.mjs +1 -1
- package/esm2022/ngx-utils/utils/vector.mjs +1 -1
- package/esm2022/ngx-utils/utils/wasi.mjs +1 -1
- package/esm2022/ngx-utils/utils/wasm-worker-proxy.mjs +1 -1
- package/esm2022/ngx-utils/utils/with-options-provider.mjs +1 -1
- package/esm2022/public_api.mjs +1 -1
- package/esm2022/tools/config.mjs +1 -1
- package/esm2022/tools/public_api.mjs +1 -1
- package/fesm2022/stemy-ngx-utils-tools.mjs.map +1 -1
- package/fesm2022/stemy-ngx-utils.mjs +12 -10
- package/fesm2022/stemy-ngx-utils.mjs.map +1 -1
- package/ng.mjs +5 -5
- package/ngx-utils/utils/file-system.d.ts +9 -9
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,27 +1,27 @@
|
|
|
1
|
-
# NgxUtils
|
|
2
|
-
|
|
3
|
-
This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 1.7.3.
|
|
4
|
-
|
|
5
|
-
## Development server
|
|
6
|
-
|
|
7
|
-
Run `ng serve` for a dev server. Navigate to `http://localhost:4200/`. The app will automatically reload if you change any of the source files.
|
|
8
|
-
|
|
9
|
-
## Code scaffolding
|
|
10
|
-
|
|
11
|
-
Run `ng generate component component-name` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module`.
|
|
12
|
-
|
|
13
|
-
## Build
|
|
14
|
-
|
|
15
|
-
Run `ng build` to build the project. The build artifacts will be stored in the `dist/` directory. Use the `-prod` flag for a production build.
|
|
16
|
-
|
|
17
|
-
## Running unit tests
|
|
18
|
-
|
|
19
|
-
Run `ng test` to execute the unit tests via [Karma](https://karma-runner.github.io).
|
|
20
|
-
|
|
21
|
-
## Running end-to-end tests
|
|
22
|
-
|
|
23
|
-
Run `ng e2e` to execute the end-to-end tests via [Protractor](http://www.protractortest.org/).
|
|
24
|
-
|
|
25
|
-
## Further help
|
|
26
|
-
|
|
27
|
-
To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI README](https://github.com/angular/angular-cli/blob/master/README.md).
|
|
1
|
+
# NgxUtils
|
|
2
|
+
|
|
3
|
+
This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 1.7.3.
|
|
4
|
+
|
|
5
|
+
## Development server
|
|
6
|
+
|
|
7
|
+
Run `ng serve` for a dev server. Navigate to `http://localhost:4200/`. The app will automatically reload if you change any of the source files.
|
|
8
|
+
|
|
9
|
+
## Code scaffolding
|
|
10
|
+
|
|
11
|
+
Run `ng generate component component-name` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module`.
|
|
12
|
+
|
|
13
|
+
## Build
|
|
14
|
+
|
|
15
|
+
Run `ng build` to build the project. The build artifacts will be stored in the `dist/` directory. Use the `-prod` flag for a production build.
|
|
16
|
+
|
|
17
|
+
## Running unit tests
|
|
18
|
+
|
|
19
|
+
Run `ng test` to execute the unit tests via [Karma](https://karma-runner.github.io).
|
|
20
|
+
|
|
21
|
+
## Running end-to-end tests
|
|
22
|
+
|
|
23
|
+
Run `ng e2e` to execute the end-to-end tests via [Protractor](http://www.protractortest.org/).
|
|
24
|
+
|
|
25
|
+
## Further help
|
|
26
|
+
|
|
27
|
+
To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI README](https://github.com/angular/angular-cli/blob/master/README.md).
|
package/assets/ng.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { register } from "node:module";
|
|
2
|
-
import { pathToFileURL } from "node:url";
|
|
3
|
-
|
|
4
|
-
register("ts-node/esm", pathToFileURL("./"));
|
|
5
|
-
import "@angular/cli/bin/ng.js";
|
|
1
|
+
import { register } from "node:module";
|
|
2
|
+
import { pathToFileURL } from "node:url";
|
|
3
|
+
|
|
4
|
+
register("ts-node/esm", pathToFileURL("./"));
|
|
5
|
+
import "@angular/cli/bin/ng.js";
|
|
@@ -119,4 +119,4 @@ export const ERROR_HANDLER = new InjectionToken("error-handler-callback");
|
|
|
119
119
|
// --- Valued promise ---
|
|
120
120
|
export class ValuedPromise extends Promise {
|
|
121
121
|
}
|
|
122
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLXR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL25neC11dGlscy9jb21tb24tdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFlLGNBQWMsRUFBZ0QsTUFBTSxlQUFlLENBQUM7QUFJMUcsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQ25ELE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQWdCakQsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLElBQUksY0FBYyxDQUFDLHNCQUFzQixDQUFDLENBQUM7QUFReEUsTUFBTSxPQUFPLFdBQVc7SUFDcEIsWUFBbUIsQ0FBUyxFQUFTLENBQVMsRUFBUyxDQUFTLEVBQVMsSUFBWSxHQUFHO1FBQXJFLE1BQUMsR0FBRCxDQUFDLENBQVE7UUFBUyxNQUFDLEdBQUQsQ0FBQyxDQUFRO1FBQVMsTUFBQyxHQUFELENBQUMsQ0FBUTtRQUFTLE1BQUMsR0FBRCxDQUFDLENBQWM7SUFFeEYsQ0FBQztDQUNKO0FBU0QsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFpQyxJQUFJLGNBQWMsQ0FBZSxjQUFjLENBQUMsQ0FBQztBQXlDM0csTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQXFDLElBQUksY0FBYyxDQUFtQixrQkFBa0IsQ0FBQyxDQUFDO0FBb0IzSCxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQWlDLElBQUksY0FBYyxDQUFlLGNBQWMsQ0FBQyxDQUFDO0FBbUIzRywwQkFBMEI7QUFDMUIsTUFBTSxDQUFOLElBQVksV0FHWDtBQUhELFdBQVksV0FBVztJQUNuQiwrQ0FBSyxDQUFBO0lBQ0wsbURBQU8sQ0FBQTtBQUNYLENBQUMsRUFIVyxXQUFXLEtBQVgsV0FBVyxRQUd0QjtBQVVELE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBb0MsSUFBSSxjQUFjLENBQWtCLGlCQUFpQixDQUFDLENBQUM7QUFjdkgsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLElBQUksY0FBYyxDQUFrQixpQkFBaUIsQ0FBQyxDQUFDO0FBMkN0RixNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLGNBQWMsQ0FBYyxxQkFBcUIsQ0FBQyxDQUFDO0FBZ0QxRix3QkFBd0I7QUFDeEIsTUFBTSxVQUFVLG1CQUFtQixDQUFDLEdBQUcsWUFBbUQ7SUFDdEYsT0FBTyxVQUFVLE1BQVcsRUFBRSxNQUFjO1FBQ3hDLFlBQVksQ0FBQyxjQUFjLENBQUMscUJBQXFCLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNyRixDQUFDLENBQUM7QUFDTixDQUFDO0FBRUQsTUFBTSxVQUFVLFVBQVUsQ0FBQyxJQUFZO0lBQ25DLE9BQU8sVUFBVSxNQUFXO1FBQ3hCLFlBQVksQ0FBQyxjQUFjLENBQUMsWUFBWSxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztJQUM1RCxDQUFDLENBQUM7QUFDTixDQUFDO0FBd0NELE1BQU0sT0FBTyxxQkFBcUI7SUFFOUIsWUFBbUIsSUFBUyxFQUFTLFlBQWlCLEVBQVMsS0FBYSxFQUFTLEtBQWEsRUFBUyxTQUFpQjtRQUF6RyxTQUFJLEdBQUosSUFBSSxDQUFLO1FBQVMsaUJBQVksR0FBWixZQUFZLENBQUs7UUFBUyxVQUFLLEdBQUwsS0FBSyxDQUFRO1FBQVMsVUFBSyxHQUFMLEtBQUssQ0FBUTtRQUFTLGNBQVMsR0FBVCxTQUFTLENBQVE7SUFDNUgsQ0FBQztJQUVELElBQUksS0FBSztRQUNMLE9BQU8sSUFBSSxDQUFDLEtBQUssS0FBSyxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVELElBQUksSUFBSTtRQUNKLE9BQU8sSUFBSSxDQUFDLEtBQUssS0FBSyxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQsSUFBSSxJQUFJO1FBQ0osT0FBTyxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVELElBQUksR0FBRztRQUNILE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ3RCLENBQUM7SUFFRCwrQ0FBK0M7SUFDL0MsSUFBSSxHQUFHO1FBQ0gsT0FBTyxDQUFDLEdBQUcsQ0FBQyxpREFBaUQsQ0FBQyxDQUFDO1FBQy9ELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQztJQUNyQixDQUFDO0lBRUQsK0NBQStDO0lBQy9DLElBQUksV0FBVztRQUNYLE9BQU8sQ0FBQyxHQUFHLENBQUMsaUVBQWlFLENBQUMsQ0FBQztRQUMvRSxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDN0IsQ0FBQztJQUVELE1BQU0sQ0FBQyxRQUFnQjtRQUNuQixNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNwQyxLQUFLLE1BQU0sR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ3JCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDN0IsSUFBSSxXQUFXLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLElBQUksV0FBVyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUM7Z0JBQUUsU0FBUztZQUNsRixNQUFNLFNBQVMsR0FBRyxXQUFXLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUN6RSxJQUFJLFNBQVMsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDO2dCQUFFLE9BQU8sSUFBSSxDQUFDO1FBQy9DLENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0NBQ0o7QUFzQ0QsTUFBTSxPQUFPLFdBQVksU0FBUSxPQUFZO0lBT3pDLFlBQVksYUFBbUQsRUFBRSxRQUF5QjtRQUN0RixLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDaEIsSUFBSSxDQUFDLGFBQWEsR0FBRyxhQUFhLENBQUM7UUFDbkMsSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUM7UUFDckIsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUM7SUFDdEIsQ0FBQztJQUVELElBQUksQ0FBcUIsV0FBcUYsRUFDckYsVUFBbUc7UUFDeEgsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ25CLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUN0QixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDaEIsT0FBTyxXQUFXLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQ25ELENBQUMsRUFBRSxDQUFDLE1BQXlCLEVBQUUsRUFBRTtZQUM3QixNQUFNLE1BQU0sR0FBUSxVQUFVLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1lBQzNELElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLElBQUksQ0FBQyxVQUFVLElBQUksTUFBTSxLQUFLLEtBQUssQ0FBQyxDQUFDO1lBQ2xGLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNoQixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFdBQVcsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNoRyxPQUFPLE1BQU0sQ0FBQztRQUNsQixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxLQUFLLENBQWtCLFVBQWlHO1FBQ3BILE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDdkMsQ0FBQztDQUNKO0FBUUQsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLElBQUksY0FBYyxDQUFVLGlCQUFpQixDQUFDLENBQUM7QUFnQjlFLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBZ0MsSUFBSSxjQUFjLENBQWMsYUFBYSxDQUFDLENBQUM7QUFnRXZHLHNCQUFzQjtBQUN0QixNQUFNLE9BQU8saUJBQWlCO0NBRzdCO0FBRUQsd0JBQXdCO0FBQ3hCLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxJQUFJLGNBQWMsQ0FBUyxjQUFjLENBQUMsQ0FBQztBQUV2RSxNQUFNLE9BQU8sY0FBYztDQU0xQjtBQWFELE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxJQUFJLGNBQWMsQ0FBaUIsZ0JBQWdCLENBQUMsQ0FBQztBQUVuRixNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsSUFBSSxjQUFjLENBQWlCLGFBQWEsQ0FBQyxDQUFDO0FBRTdFLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxJQUFJLGNBQWMsQ0FBTSxlQUFlLENBQUMsQ0FBQztBQUV0RSxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsSUFBSSxjQUFjLENBQWMsa0JBQWtCLENBQUMsQ0FBQztBQUVoRixNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsSUFBSSxjQUFjLENBQVMsb0JBQW9CLENBQUMsQ0FBQztBQUk3RSxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsSUFBSSxjQUFjLENBQXNCLHVCQUF1QixDQUFDLENBQUM7QUFLaEcsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLElBQUksY0FBYyxDQUF1Qix3QkFBd0IsQ0FBQyxDQUFDO0FBd0JoRyx5QkFBeUI7QUFDekIsTUFBTSxPQUFPLGFBQWlCLFNBQVEsT0FBVTtDQUUvQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RXZlbnRFbWl0dGVyLCBJbmplY3Rpb25Ub2tlbiwgSW5qZWN0b3IsIE5nWm9uZSwgUHJvdmlkZXIsIFRlbXBsYXRlUmVmLCBUeXBlfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge0h0dHBDbGllbnQsIEh0dHBFcnJvclJlc3BvbnNlLCBIdHRwSGVhZGVyc30gZnJvbSBcIkBhbmd1bGFyL2NvbW1vbi9odHRwXCI7XHJcbmltcG9ydCB7QWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgRGF0YSwgUm91dGUsIFVybFRyZWV9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcclxuaW1wb3J0IHtSZXF1ZXN0fSBmcm9tIFwiZXhwcmVzc1wiO1xyXG5pbXBvcnQge1JlZmxlY3RVdGlsc30gZnJvbSBcIi4vdXRpbHMvcmVmbGVjdC51dGlsc1wiO1xyXG5pbXBvcnQge09iamVjdFV0aWxzfSBmcm9tIFwiLi91dGlscy9vYmplY3QudXRpbHNcIjtcclxuXHJcbi8vIC0tLSBVdGlsXHJcbmV4cG9ydCBpbnRlcmZhY2UgVHlwZWRGYWN0b3J5UHJvdmlkZXI8VD4ge1xyXG4gICAgdXNlRmFjdG9yeTogKC4uLmFyZ3M6IGFueVtdKSA9PiBUO1xyXG4gICAgZGVwczogYW55W107XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgVHlwZWRWYWx1ZVByb3ZpZGVyPFQ+IHtcclxuICAgIHVzZVZhbHVlOiBUO1xyXG59XHJcblxyXG5leHBvcnQgdHlwZSBDYWNoZWRQcm92aWRlcjxUPiA9IFR5cGU8VD4gfCBUeXBlZEZhY3RvcnlQcm92aWRlcjxUPiB8IFR5cGVkVmFsdWVQcm92aWRlcjxUPjtcclxuXHJcbmV4cG9ydCB0eXBlIENhY2hlZEZhY3Rvcnk8VD4gPSAoaW5qZWN0b3I6IEluamVjdG9yKSA9PiBSZWFkb25seUFycmF5PFQ+O1xyXG5cclxuZXhwb3J0IGNvbnN0IE9QVElPTlNfVE9LRU4gPSBuZXcgSW5qZWN0aW9uVG9rZW4oXCJjdXN0b20tb3B0aW9ucy10b2tlblwiKTtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSVJlc29sdmVGYWN0b3J5IHtcclxuICAgIGZ1bmM6IEZ1bmN0aW9uO1xyXG4gICAgdHlwZT86IGFueTtcclxuICAgIHBhcmFtcz86IGFueVtdO1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQ2FudmFzQ29sb3Ige1xyXG4gICAgY29uc3RydWN0b3IocHVibGljIHI6IG51bWJlciwgcHVibGljIGc6IG51bWJlciwgcHVibGljIGI6IG51bWJlciwgcHVibGljIGE6IG51bWJlciA9IDI1NSkge1xyXG5cclxuICAgIH1cclxufVxyXG5cclxuLy8gLS0tIEljb24gc2VydmljZSAtLS1cclxuZXhwb3J0IGludGVyZmFjZSBJSWNvblNlcnZpY2Uge1xyXG4gICAgaXNEaXNhYmxlZDogYm9vbGVhbjtcclxuICAgIGljb25zTG9hZGVkOiBFdmVudEVtaXR0ZXI8YW55PjtcclxuICAgIGdldEljb24oaWNvbjogc3RyaW5nLCBhY3RpdmVJY29uOiBzdHJpbmcsIGFjdGl2ZTogYm9vbGVhbik6IFByb21pc2U8c3RyaW5nPjtcclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IElDT05fU0VSVklDRTogSW5qZWN0aW9uVG9rZW48SUljb25TZXJ2aWNlPiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxJSWNvblNlcnZpY2U+KFwiaWNvbi1zZXJ2aWNlXCIpO1xyXG5cclxuLy8gLS0tIExhbmd1YWdlIHNlcnZpY2UgLS0tXHJcbmV4cG9ydCBpbnRlcmZhY2UgSVRyYW5zbGF0aW9uIHtcclxuICAgIGxhbmc6IHN0cmluZztcclxuICAgIHRyYW5zbGF0aW9uOiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSVRyYW5zbGF0aW9ucyB7XHJcbiAgICBba2V5OiBzdHJpbmddOiBhbnk7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSUxhbmd1YWdlU2V0dGluZyB7XHJcbiAgICB1bmF2YWlsYWJsZT86IHN0cmluZztcclxuICAgIFtrZXk6IHN0cmluZ106IHN0cmluZyB8IGJvb2xlYW4gfCBudW1iZXI7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSUxhbmd1YWdlU2V0dGluZ3Mge1xyXG4gICAgbGFuZ3VhZ2VzOiBzdHJpbmdbXTtcclxuICAgIGRldkxhbmd1YWdlczogc3RyaW5nW107XHJcbiAgICBkZWZhdWx0TGFuZ3VhZ2U6IHN0cmluZztcclxuICAgIHNldHRpbmdzPzoge1tsYW5nOiBzdHJpbmddOiBJTGFuZ3VhZ2VTZXR0aW5nfTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJTGFuZ3VhZ2VTZXJ2aWNlIHtcclxuICAgIGN1cnJlbnRMYW5ndWFnZTogc3RyaW5nO1xyXG4gICAgZWRpdExhbmd1YWdlOiBzdHJpbmc7XHJcbiAgICBkaXNhYmxlVHJhbnNsYXRpb25zOiBib29sZWFuO1xyXG4gICAgZGVmYXVsdExhbmd1YWdlOiBzdHJpbmc7XHJcbiAgICBkaWN0aW9uYXJ5OiBJVHJhbnNsYXRpb25zO1xyXG4gICAgcmVhZG9ubHkgbGFuZ3VhZ2VzOiBSZWFkb25seUFycmF5PHN0cmluZz47XHJcbiAgICByZWFkb25seSBodHRwQ2xpZW50OiBIdHRwQ2xpZW50O1xyXG4gICAgcmVwbGFjZUxhbmd1YWdlcyhsYW5ndWFnZXM6IHN0cmluZ1tdKTogdm9pZDtcclxuICAgIGFkZExhbmd1YWdlcyhsYW5ndWFnZXM6IHN0cmluZ1tdKTogdm9pZDtcclxuICAgIGdldFRyYW5zbGF0aW9uU3luYyhrZXk6IHN0cmluZywgcGFyYW1zPzogYW55KTogc3RyaW5nO1xyXG4gICAgZ2V0VHJhbnNsYXRpb24oa2V5OiBzdHJpbmcsIHBhcmFtcz86IGFueSk6IFByb21pc2U8c3RyaW5nPjtcclxuICAgIGdldFRyYW5zbGF0aW9ucyguLi5rZXlzOiBzdHJpbmdbXSk6IFByb21pc2U8SVRyYW5zbGF0aW9ucz47XHJcbiAgICBnZXRUcmFuc2xhdGlvbkZyb21PYmplY3QodHJhbnNsYXRpb25zOiBJVHJhbnNsYXRpb25zLCBwYXJhbXM/OiBhbnksIGxhbmc/OiBzdHJpbmcpOiBzdHJpbmc7XHJcbiAgICBnZXRUcmFuc2xhdGlvbkZyb21BcnJheSh0cmFuc2xhdGlvbnM6IElUcmFuc2xhdGlvbltdLCBwYXJhbXM/OiBhbnksIGxhbmc/OiBzdHJpbmcpOiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBMQU5HVUFHRV9TRVJWSUNFOiBJbmplY3Rpb25Ub2tlbjxJTGFuZ3VhZ2VTZXJ2aWNlPiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxJTGFuZ3VhZ2VTZXJ2aWNlPihcImxhbmd1YWdlLXNlcnZpY2VcIik7XHJcblxyXG4vLyAtLS0gQXV0aCBTZXJ2aWNlIC0tLVxyXG5leHBvcnQgaW50ZXJmYWNlIElBdXRoU2VydmljZSB7XHJcbiAgICBpc0F1dGhlbnRpY2F0ZWQ6IGJvb2xlYW47XHJcbiAgICB1c2VyQ2hhbmdlZDogRXZlbnRFbWl0dGVyPGFueT47XHJcbiAgICBjaGVja0F1dGhlbnRpY2F0ZWQoKTogUHJvbWlzZTxib29sZWFuPjtcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgUm91dGVWYWxpZGF0b3IgPSAoYXV0aDogSUF1dGhTZXJ2aWNlLCByb3V0ZT86IElSb3V0ZSwgbmV4dD86IEFjdGl2YXRlZFJvdXRlU25hcHNob3QpID0+IFByb21pc2U8Ym9vbGVhbj47XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElSb3V0ZURhdGEgZXh0ZW5kcyBEYXRhIHtcclxuICAgIHJldHVyblN0YXRlPzogc3RyaW5nW107XHJcbiAgICBndWFyZHM/OiBBcnJheTxJUmVzb2x2ZUZhY3RvcnkgfCBSb3V0ZVZhbGlkYXRvcj47XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSVJvdXRlIGV4dGVuZHMgUm91dGUge1xyXG4gICAgZGF0YT86IElSb3V0ZURhdGE7XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBBVVRIX1NFUlZJQ0U6IEluamVjdGlvblRva2VuPElBdXRoU2VydmljZT4gPSBuZXcgSW5qZWN0aW9uVG9rZW48SUF1dGhTZXJ2aWNlPihcImF1dGgtc2VydmljZVwiKTtcclxuXHJcbi8vIC0tLSBBY2wgU2VydmljZSAtLS1cclxuZXhwb3J0IGludGVyZmFjZSBJQWNsQ29tcG9uZW50IHtcclxuICAgIG9uVXNlckluaXRpYWxpemVkKCk6IHZvaWQ7XHJcbiAgICBvblVzZXJDaGFuZ2VkKCk6IHZvaWQ7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSVJvdXRlU3RhdGVJbmZvIHtcclxuICAgIHJvdXRlOiBJUm91dGU7XHJcbiAgICBndWFyZDogYW55O1xyXG4gICAgZGlydHk6IGJvb2xlYW47XHJcbiAgICBmaXJzdDogYm9vbGVhbjtcclxuICAgIGNvbXBvbmVudD86IGFueTtcclxufVxyXG5cclxuLy8gLS0tIFN0YXRlIFNlcnZpY2UgLS0tXHJcbmV4cG9ydCB0eXBlIE5hdmlnYXRpb25VcmxQYXJhbSA9IGFueVtdIHwgc3RyaW5nIHwgVXJsVHJlZTtcclxuXHJcbi8vIC0tLSBTdG9yYWdlIFNlcnZpY2UgLS0tXHJcbmV4cG9ydCBlbnVtIFN0b3JhZ2VNb2RlIHtcclxuICAgIExvY2FsLFxyXG4gICAgU2Vzc2lvblxyXG59XHJcblxyXG4vLyAtLS0gVG9hc3RlciBTZXJ2aWNlIC0tLVxyXG5leHBvcnQgaW50ZXJmYWNlIElUb2FzdGVyU2VydmljZSB7XHJcbiAgICBlcnJvcihtZXNzYWdlOiBzdHJpbmcsIHBhcmFtcz86IGFueSwgdGl0bGU/OiBzdHJpbmcpOiB2b2lkO1xyXG4gICAgaW5mbyhtZXNzYWdlOiBzdHJpbmcsIHBhcmFtcz86IGFueSwgdGl0bGU/OiBzdHJpbmcpOiB2b2lkO1xyXG4gICAgc3VjY2VzcyhtZXNzYWdlOiBzdHJpbmcsIHBhcmFtcz86IGFueSwgdGl0bGU/OiBzdHJpbmcpOiB2b2lkO1xyXG4gICAgd2FybmluZyhtZXNzYWdlOiBzdHJpbmcsIHBhcmFtcz86IGFueSwgdGl0bGU/OiBzdHJpbmcpOiB2b2lkO1xyXG59XHJcblxyXG5leHBvcnQgY29uc3QgVE9BU1RFUl9TRVJWSUNFOiBJbmplY3Rpb25Ub2tlbjxJVG9hc3RlclNlcnZpY2U+ID0gbmV3IEluamVjdGlvblRva2VuPElUb2FzdGVyU2VydmljZT4oXCJ0b2FzdGVyLXNlcnZpY2VcIik7XHJcblxyXG4vLyAtLS0gUHJvbWlzZSBTZXJ2aWNlIC0tLVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJUHJvbWlzZVNlcnZpY2Uge1xyXG4gICAgem9uZTogTmdab25lO1xyXG4gICAgY291bnQ6IG51bWJlcjtcclxuICAgIG9uQ2hhbmdlZDogRXZlbnRFbWl0dGVyPG51bWJlcj47XHJcbiAgICBjcmVhdGU8VD4oZXhlY3V0b3I6IChyZXNvbHZlOiAodmFsdWU/OiBUIHwgUHJvbWlzZUxpa2U8VD4pID0+IHZvaWQsIHJlamVjdDogKHJlYXNvbj86IGFueSkgPT4gdm9pZCkgPT4gdm9pZCk6IFByb21pc2U8VD47XHJcbiAgICBhbGwocHJvbWlzZXM6IFByb21pc2U8YW55PltdKTogUHJvbWlzZTxhbnk+O1xyXG4gICAgcmVzb2x2ZTxUPih2YWx1ZTogVCB8IFByb21pc2VMaWtlPFQ+KTogUHJvbWlzZTxUPjtcclxuICAgIHJlamVjdDxUPih2YWx1ZTogVCB8IFByb21pc2VMaWtlPFQ+KTogUHJvbWlzZTxUPjtcclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IFBST01JU0VfU0VSVklDRSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxJUHJvbWlzZVNlcnZpY2U+KFwicHJvbWlzZS1zZXJ2aWNlXCIpO1xyXG5cclxuLy8gLS0tIFdhc20gc2VydmljZSAtLS1cclxuZXhwb3J0IHR5cGUgVHlwZWRBcnJheSA9XHJcbiAgICB8IEludDhBcnJheVxyXG4gICAgfCBJbnQxNkFycmF5XHJcbiAgICB8IEludDMyQXJyYXlcclxuICAgIHwgVWludDhBcnJheVxyXG4gICAgfCBVaW50OENsYW1wZWRBcnJheVxyXG4gICAgfCBVaW50MTZBcnJheVxyXG4gICAgfCBVaW50MzJBcnJheVxyXG4gICAgfCBGbG9hdDMyQXJyYXlcclxuICAgIHwgRmxvYXQ2NEFycmF5O1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJV2FzbUV4cG9ydHMge1xyXG4gICAgSEVBUDg6IEludDhBcnJheTtcclxuICAgIEhFQVAxNjogSW50MTZBcnJheSxcclxuICAgIEhFQVAzMjogSW50MzJBcnJheSxcclxuICAgIEhFQVBVODogVWludDhBcnJheTtcclxuICAgIEhFQVBVMTY6IFVpbnQxNkFycmF5LFxyXG4gICAgSEVBUFUzMjogVWludDMyQXJyYXksXHJcbiAgICBIRUFQRjMyOiBGbG9hdDMyQXJyYXksXHJcbiAgICBIRUFQRjY0OiBGbG9hdDY0QXJyYXksXHJcbiAgICBtZW1vcnk6IFdlYkFzc2VtYmx5Lk1lbW9yeTtcclxuICAgIFtrZXk6IHN0cmluZ106IGFueTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJV2FzaSB7XHJcbiAgICBpbnN0YW50aWF0ZShieXRlczogQXJyYXlCdWZmZXIpOiBQcm9taXNlPElXYXNtRXhwb3J0cz47XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSVdhc20ge1xyXG4gICAgd3JpdGVBcnJheVRvTWVtb3J5KGFycmF5OiBUeXBlZEFycmF5KTogUHJvbWlzZTxudW1iZXI+IHwgbnVtYmVyO1xyXG4gICAgcmVhZEFycmF5RnJvbU1lbW9yeTxUID0gVHlwZWRBcnJheT4ocG9pbnRlcjogbnVtYmVyLCBhcnJheTogVCk6IFByb21pc2U8VD4gfCBUO1xyXG4gICAgW2tleTogc3RyaW5nXTogKC4uLmFyZ3M6IGFueVtdKSA9PiBhbnk7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSVdhc21Bc3luYyB7XHJcbiAgICB3cml0ZUFycmF5VG9NZW1vcnkoYXJyYXk6IFR5cGVkQXJyYXkpOiBQcm9taXNlPG51bWJlcj47XHJcbiAgICByZWFkQXJyYXlGcm9tTWVtb3J5PFQgPSBUeXBlZEFycmF5Pihwb2ludGVyOiBudW1iZXIsIGFycmF5OiBUKTogVDtcclxuICAgIFtrZXk6IHN0cmluZ106ICguLi5hcmdzOiBhbnlbXSkgPT4gUHJvbWlzZTxhbnk+O1xyXG59XHJcblxyXG5leHBvcnQgY29uc3QgV0FTSV9JTVBMRU1FTlRBVElPTiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxUeXBlPElXYXNpPj4oXCJ3YXNpLWltcGxlbWVudGF0aW9uXCIpO1xyXG5cclxuLy8gLS0tIEFzeW5jIG1ldGhvZCAtLS1cclxuZXhwb3J0IGludGVyZmFjZSBJQXN5bmNNZXNzYWdlIHtcclxuICAgIG1lc3NhZ2U6IHN0cmluZztcclxuICAgIGNvbnRleHQ/OiBhbnk7XHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIEFzeW5jTWV0aG9kID0gKGNvbnRleHQ/OiBhbnkpID0+IFByb21pc2U8SUFzeW5jTWVzc2FnZT47XHJcblxyXG4vLyAtLS0gVW5vcmRlcmVkIGxpc3QgLS0tXHJcbmV4cG9ydCBpbnRlcmZhY2UgVW5vcmRlcmVkTGlzdFRlbXBsYXRlIHtcclxuICAgIHJlYWRvbmx5IHR5cGU6IHN0cmluZztcclxuICAgIHJlYWRvbmx5IHNlbGVjdG9yOiBzdHJpbmc7XHJcbiAgICByZWFkb25seSB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55PlxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFVub3JkZXJlZExpc3RUZW1wbGF0ZXMge1xyXG4gICAgW3R5cGU6IHN0cmluZ106IFRlbXBsYXRlUmVmPGFueT47XHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIFVub3JkZXJlZExpc3RTdHlsZSA9IFwidGFibGVcIiB8IFwibGlzdFwiO1xyXG5cclxuLy8gLS0tIEFqYXggcmVxdWVzdCAgLS0tXHJcbmV4cG9ydCBpbnRlcmZhY2UgSUFqYXhSZXF1ZXN0RGV0YWlscyB7XHJcbiAgICByZXF1ZXN0OiBYTUxIdHRwUmVxdWVzdCxcclxuICAgIG1ldGhvZDogc3RyaW5nO1xyXG4gICAgdXJsOiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIEFqYXhSZXF1ZXN0Q2FsbGJhY2sgPSAoZGV0YWlsczogSUFqYXhSZXF1ZXN0RGV0YWlscywgcGFyYW1zOiBhbnkpID0+IHZvaWQ7XHJcblxyXG4vLyAtLS0gTG9hZGVyIHV0aWxzIC0tLVxyXG5leHBvcnQgdHlwZSBTY3JpcHRUeXBlID0gXCJ0ZXh0L2phdmFzY3JpcHRcIiB8IFwibW9kdWxlXCI7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElTY3JpcHRQcm9taXNlcyB7XHJcbiAgICBbc3JjOiBzdHJpbmddOiBQcm9taXNlPEhUTUxTY3JpcHRFbGVtZW50PjtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIElTdHlsZVByb21pc2VzIHtcclxuICAgIFtzcmM6IHN0cmluZ106IFByb21pc2U8SFRNTExpbmtFbGVtZW50PjtcclxufVxyXG5cclxuLy8gLS0tIE9ic2VydmFibGUgdXRpbHMgLS0tXHJcbmV4cG9ydCBpbnRlcmZhY2UgSVNlYXJjaE9ic2VydmFibGUge1xyXG4gICAgc2VhcmNoOiBzdHJpbmc7XHJcbiAgICBnZXRTZWFyY2hSZXN1bHRzKHRva2VuOiBzdHJpbmcpOiBQcm9taXNlPGFueVtdPjtcclxufVxyXG5cclxuLy8gLS0tIFJlZmxlY3QgdXRpbHMgLS0tXHJcbmV4cG9ydCBmdW5jdGlvbiBGYWN0b3J5RGVwZW5kZW5jaWVzKC4uLmRlcGVuZGVuY2llczogQXJyYXk8SW5qZWN0aW9uVG9rZW48YW55PiB8IFByb3ZpZGVyPik6IE1ldGhvZERlY29yYXRvciB7XHJcbiAgICByZXR1cm4gZnVuY3Rpb24gKHRhcmdldDogYW55LCBtZXRob2Q6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgICAgIFJlZmxlY3RVdGlscy5kZWZpbmVNZXRhZGF0YShcImZhY3RvcnlEZXBlbmRlbmNpZXNcIiwgZGVwZW5kZW5jaWVzLCB0YXJnZXQsIG1ldGhvZCk7XHJcbiAgICB9O1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gT2JqZWN0VHlwZSh0eXBlOiBzdHJpbmcpOiBDbGFzc0RlY29yYXRvciB7XHJcbiAgICByZXR1cm4gZnVuY3Rpb24gKHRhcmdldDogYW55KTogdm9pZCB7XHJcbiAgICAgICAgUmVmbGVjdFV0aWxzLmRlZmluZU1ldGFkYXRhKFwib2JqZWN0VHlwZVwiLCB0eXBlLCB0YXJnZXQpO1xyXG4gICAgfTtcclxufVxyXG5cclxuLy8gLS0tIFRpbWVyIHV0aWxzIC0tLVxyXG5leHBvcnQgaW50ZXJmYWNlIElUaW1lciB7XHJcbiAgICBpZD86IGFueTtcclxuICAgIGZ1bmM/OiBGdW5jdGlvbjtcclxuICAgIHRpbWU/OiBudW1iZXI7XHJcbiAgICBydW4/OiAoKSA9PiB2b2lkO1xyXG4gICAgc2V0PzogKGZ1bmM6IEZ1bmN0aW9uLCB0aW1lOiBudW1iZXIpID0+IHZvaWQ7XHJcbiAgICBjbGVhcj86ICgpID0+IHZvaWQ7XHJcbn1cclxuXHJcbi8vIC0tLSBFeHRyYUl0ZW1Qcm9wZXJ0aWVzIC0tLVxyXG5leHBvcnQgaW50ZXJmYWNlIElFeHRyYVByb3BlcnRpZXMge1xyXG4gICAgW3Byb3A6IHN0cmluZ106IGFueTtcclxufVxyXG5cclxuLy8gLS0tIEdyb3VwIGJ5IC0tLVxyXG5leHBvcnQgaW50ZXJmYWNlIElHcm91cE1hcCB7XHJcbiAgICBbY29sdW1uOiBzdHJpbmddOiBhbnk7XHJcbn1cclxuXHJcbi8vIC0tLSBUcmFuc2xhdGUgLS0tXHJcbmV4cG9ydCB0eXBlIFRyYW5zbGF0aW9uUXVlcnkgPSBzdHJpbmcgfCBJVHJhbnNsYXRpb25zIHwgSVRyYW5zbGF0aW9uW107XHJcblxyXG4vLyAtLS0gUGFnaW5hdGlvbiAtLS1cclxuZXhwb3J0IGludGVyZmFjZSBJUGFnZUluZm8ge1xyXG4gICAgdGV4dDogc3RyaW5nO1xyXG4gICAgbnVtYmVyOiBudW1iZXI7XHJcbiAgICBhY3RpdmU6IGJvb2xlYW47XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSVBhZ2luYXRpb25EYXRhIHtcclxuICAgIHRvdGFsOiBudW1iZXI7XHJcbiAgICBpdGVtczogYW55W107XHJcbiAgICBtZXRhPzogYW55O1xyXG59XHJcblxyXG5leHBvcnQgdHlwZSBQYWdpbmF0aW9uRGF0YUxvYWRlciA9IChwYWdlOiBudW1iZXIsIGl0ZW1zUGVyUGFnZTogbnVtYmVyKSA9PiBQcm9taXNlPElQYWdpbmF0aW9uRGF0YT47XHJcblxyXG5leHBvcnQgY2xhc3MgUGFnaW5hdGlvbkl0ZW1Db250ZXh0IHtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgaXRlbTogYW55LCBwdWJsaWMgcGFyYWxsZWxJdGVtOiBhbnksIHB1YmxpYyBjb3VudDogbnVtYmVyLCBwdWJsaWMgaW5kZXg6IG51bWJlciwgcHVibGljIGRhdGFJbmRleDogbnVtYmVyKSB7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGZpcnN0KCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmluZGV4ID09PSAwO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBsYXN0KCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmluZGV4ID09PSB0aGlzLmNvdW50IC0gMTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgZXZlbigpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5pbmRleCAlIDIgPT09IDA7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IG9kZCgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gIXRoaXMuZXZlbjtcclxuICAgIH1cclxuXHJcbiAgICAvLyBTdXBwb3J0IGZvciBvbGQgZHluYW1pYyB0YWJsZSBpbXBsZW1lbnRhdGlvblxyXG4gICAgZ2V0IHJvdygpOiBhbnkge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKFwiRHluYW1pY1RhYmxlIHJvdyBpcyBkZXByZWNhdGVkIHVzZSBpdGVtIGluc3RlYWRcIik7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaXRlbTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBTdXBwb3J0IGZvciBvbGQgZHluYW1pYyB0YWJsZSBpbXBsZW1lbnRhdGlvblxyXG4gICAgZ2V0IHBhcmFsbGVsUm93KCk6IGFueSB7XHJcbiAgICAgICAgY29uc29sZS5sb2coXCJEeW5hbWljVGFibGUgcGFyYWxsZWxSb3cgaXMgZGVwcmVjYXRlZCB1c2UgcGFyYWxsZWxJdGVtIGluc3RlYWRcIik7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucGFyYWxsZWxJdGVtO1xyXG4gICAgfVxyXG5cclxuICAgIGZpbHRlcihmaWx0ZXJSeDogUmVnRXhwKTogYm9vbGVhbiB7XHJcbiAgICAgICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKHRoaXMuaXRlbSk7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgb2Yga2V5cykge1xyXG4gICAgICAgICAgICBjb25zdCB2YWx1ZSA9IHRoaXMuaXRlbVtrZXldO1xyXG4gICAgICAgICAgICBpZiAoT2JqZWN0VXRpbHMuaXNOdWxsT3JVbmRlZmluZWQodmFsdWUpIHx8IE9iamVjdFV0aWxzLmlzT2JqZWN0KHZhbHVlKSkgY29udGludWU7XHJcbiAgICAgICAgICAgIGNvbnN0IHRlc3RWYWx1ZSA9IE9iamVjdFV0aWxzLmlzU3RyaW5nKHZhbHVlKSA/IHZhbHVlIDogdmFsdWUudG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgaWYgKHRlc3RWYWx1ZS5tYXRjaChmaWx0ZXJSeCkpIHJldHVybiB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbn1cclxuXHJcbi8vIC0tLSBIdHRwIHNlcnZpY2UgLS0tXHJcbmV4cG9ydCBpbnRlcmZhY2UgSUh0dHBIZWFkZXJzIHtcclxuICAgIFtoZWFkZXI6IHN0cmluZ106IHN0cmluZyB8IHN0cmluZ1tdO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElIdHRwUGFyYW1zIHtcclxuICAgIFtrZXk6IHN0cmluZ106IGFueTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJUmVxdWVzdE9wdGlvbnMge1xyXG4gICAgbWV0aG9kPzogc3RyaW5nO1xyXG4gICAgYm9keT86IGFueTtcclxuICAgIGhlYWRlcnM/OiBJSHR0cEhlYWRlcnMgfCBIdHRwSGVhZGVycztcclxuICAgIG9yaWdpbmFsSGVhZGVycz86IElIdHRwSGVhZGVycztcclxuICAgIHBhcmFtcz86IElIdHRwUGFyYW1zO1xyXG4gICAgb2JzZXJ2ZT86IFwiYm9keVwiIHwgXCJyZXNwb25zZVwiO1xyXG4gICAgcmVwb3J0UHJvZ3Jlc3M/OiBib29sZWFuO1xyXG4gICAgcmVzcG9uc2VUeXBlPzogXCJhcnJheWJ1ZmZlclwiIHwgXCJibG9iXCIgfCBcImpzb25cIiB8IFwidGV4dFwiO1xyXG4gICAgd2l0aENyZWRlbnRpYWxzPzogYm9vbGVhbjtcclxuICAgIHRpbWVvdXQ/OiBudW1iZXI7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSUlzc3VlQ29udGV4dCB7XHJcbiAgICB1cmw6IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJUHJvZ3Jlc3Mge1xyXG4gICAgcGVyY2VudGFnZT86IG51bWJlcjtcclxuICAgIGxvYWRlZD86IG51bWJlcjtcclxuICAgIHRvdGFsPzogbnVtYmVyO1xyXG59XHJcblxyXG5leHBvcnQgdHlwZSBQcm9ncmVzc0xpc3RlbmVyID0gKHByb2dyZXNzOiBJUHJvZ3Jlc3MpID0+IHZvaWQ7XHJcblxyXG5leHBvcnQgdHlwZSBQcm9taXNlRXhlY3V0b3IgPSAocmVzb2x2ZTogKHZhbHVlPzogYW55IHwgUHJvbWlzZUxpa2U8YW55PikgPT4gdm9pZCwgcmVqZWN0OiAocmVhc29uPzogYW55KSA9PiB2b2lkKSA9PiB2b2lkO1xyXG5cclxuZXhwb3J0IGNsYXNzIEh0dHBQcm9taXNlIGV4dGVuZHMgUHJvbWlzZTxhbnk+IHtcclxuXHJcbiAgICBwcm90ZWN0ZWQgcmVqZWN0SGFuZGxlcjogKHJlYXNvbj86IEh0dHBFcnJvclJlc3BvbnNlKSA9PiB2b2lkO1xyXG4gICAgcHJvdGVjdGVkIGhhc1JlamVjdEhhbmRsZXI6IGJvb2xlYW47XHJcbiAgICBwcm90ZWN0ZWQgYXR0YWNoQ291bnQ6IG51bWJlcjtcclxuICAgIHByb3RlY3RlZCBydW5Db3VudDogbnVtYmVyO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHJlamVjdEhhbmRsZXI6IChyZWFzb24/OiBIdHRwRXJyb3JSZXNwb25zZSkgPT4gdm9pZCwgZXhlY3V0b3I6IFByb21pc2VFeGVjdXRvcikge1xyXG4gICAgICAgIHN1cGVyKGV4ZWN1dG9yKTtcclxuICAgICAgICB0aGlzLnJlamVjdEhhbmRsZXIgPSByZWplY3RIYW5kbGVyO1xyXG4gICAgICAgIHRoaXMuYXR0YWNoQ291bnQgPSAwO1xyXG4gICAgICAgIHRoaXMucnVuQ291bnQgPSAwO1xyXG4gICAgfVxyXG5cclxuICAgIHRoZW48VFJlc3VsdDEsIFRSZXN1bHQyPihvbkZ1bGZpbGxlZD86ICgodmFsdWU6IGFueSkgPT4gKFByb21pc2VMaWtlPFRSZXN1bHQxPiB8IFRSZXN1bHQxKSkgfCBudWxsIHwgdW5kZWZpbmVkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uUmVqZWN0ZWQ/OiAoKHJlYXNvbjogSHR0cEVycm9yUmVzcG9uc2UpID0+IChQcm9taXNlTGlrZTxUUmVzdWx0Mj4gfCBUUmVzdWx0MikpIHwgbnVsbCB8IHVuZGVmaW5lZCk6IFByb21pc2U8VFJlc3VsdDEgfCBUUmVzdWx0Mj4ge1xyXG4gICAgICAgIHRoaXMuYXR0YWNoQ291bnQrKztcclxuICAgICAgICByZXR1cm4gc3VwZXIudGhlbih2YWx1ZSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMucnVuQ291bnQrKztcclxuICAgICAgICAgICAgcmV0dXJuIG9uRnVsZmlsbGVkID8gb25GdWxmaWxsZWQodmFsdWUpIDogbnVsbDtcclxuICAgICAgICB9LCAocmVhc29uOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCByZXN1bHQ6IGFueSA9IG9uUmVqZWN0ZWQgPyBvblJlamVjdGVkKHJlYXNvbikgOiBudWxsO1xyXG4gICAgICAgICAgICB0aGlzLmhhc1JlamVjdEhhbmRsZXIgPSB0aGlzLmhhc1JlamVjdEhhbmRsZXIgfHwgKG9uUmVqZWN0ZWQgJiYgcmVzdWx0ICE9PSBmYWxzZSk7XHJcbiAgICAgICAgICAgIHRoaXMucnVuQ291bnQrKztcclxuICAgICAgICAgICAgdGhpcy5yZWplY3RIYW5kbGVyKHRoaXMucnVuQ291bnQgPT0gdGhpcy5hdHRhY2hDb3VudCAmJiAhdGhpcy5oYXNSZWplY3RIYW5kbGVyID8gcmVhc29uIDogbnVsbCk7XHJcbiAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgY2F0Y2g8VFJlc3VsdCA9IG5ldmVyPihvblJlamVjdGVkPzogKChyZWFzb246IEh0dHBFcnJvclJlc3BvbnNlKSA9PiAoUHJvbWlzZUxpa2U8VFJlc3VsdD4gfCBUUmVzdWx0KSkgfCBudWxsIHwgdW5kZWZpbmVkKTogUHJvbWlzZTxhbnkgfCBUUmVzdWx0PiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMudGhlbihudWxsLCBvblJlamVjdGVkKTtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJSHR0cFNlcnZpY2Uge1xyXG4gICAgbGFuZ3VhZ2U6IElMYW5ndWFnZVNlcnZpY2U7XHJcbiAgICB1cmwodXJsOiBzdHJpbmcpOiBzdHJpbmc7XHJcbiAgICBtYWtlTGlzdFBhcmFtcyhwYWdlOiBudW1iZXIsIGl0ZW1zUGVyUGFnZTogbnVtYmVyLCBvcmRlckJ5Pzogc3RyaW5nLCBvcmRlckRlc2NlbmRpbmc/OiBib29sZWFuLCBmaWx0ZXI/OiBzdHJpbmcpOiBJSHR0cFBhcmFtcztcclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IEVYUFJFU1NfUkVRVUVTVCA9IG5ldyBJbmplY3Rpb25Ub2tlbjxSZXF1ZXN0PihcImV4cHJlc3MtcmVxdWVzdFwiKTtcclxuXHJcbi8vIC0tLSBBcGkgc2VydmljZSAtLS1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSUFwaVNlcnZpY2UgZXh0ZW5kcyBJSHR0cFNlcnZpY2Uge1xyXG4gICAgY2FjaGU6IGFueTtcclxuICAgIGNsaWVudDogSHR0cENsaWVudDtcclxuICAgIGdldCh1cmw6IHN0cmluZywgb3B0aW9ucz86IElSZXF1ZXN0T3B0aW9ucyk6IFByb21pc2U8YW55PjtcclxuICAgIGRlbGV0ZSh1cmw6IHN0cmluZywgb3B0aW9ucz86IElSZXF1ZXN0T3B0aW9ucyk6IFByb21pc2U8YW55PjtcclxuICAgIHBvc3QodXJsOiBzdHJpbmcsIGJvZHk/OiBhbnksIG9wdGlvbnM/OiBJUmVxdWVzdE9wdGlvbnMpOiBQcm9taXNlPGFueT47XHJcbiAgICBwdXQodXJsOiBzdHJpbmcsIGJvZHk/OiBhbnksIG9wdGlvbnM/OiBJUmVxdWVzdE9wdGlvbnMpOiBQcm9taXNlPGFueT47XHJcbiAgICBwYXRjaCh1cmw6IHN0cmluZywgYm9keT86IGFueSwgb3B0aW9ucz86IElSZXF1ZXN0T3B0aW9ucyk6IFByb21pc2U8YW55PjtcclxuICAgIHVwbG9hZCh1cmw6IHN0cmluZywgYm9keTogYW55LCBsaXN0ZW5lcj86IFByb2dyZXNzTGlzdGVuZXIsIG9wdGlvbnM/OiBJUmVxdWVzdE9wdGlvbnMpOiBQcm9taXNlPGFueT47XHJcbiAgICBsaXN0KHVybDogc3RyaW5nLCBwYXJhbXM6IElIdHRwUGFyYW1zKTogUHJvbWlzZTxJUGFnaW5hdGlvbkRhdGE+O1xyXG59XHJcblxyXG5leHBvcnQgY29uc3QgQVBJX1NFUlZJQ0U6IEluamVjdGlvblRva2VuPElBcGlTZXJ2aWNlPiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxJQXBpU2VydmljZT4oXCJhcGktc2VydmljZVwiKTtcclxuXHJcbi8vIC0tLSBPcGVuQXBpIHNlcnZpY2UgLS0tXHJcbmV4cG9ydCBpbnRlcmZhY2UgSU9wZW5BcGlTY2hlbWFQcm9wZXJ0eSB7XHJcbiAgICBpZDogc3RyaW5nO1xyXG4gICAgdHlwZT86IHN0cmluZztcclxuICAgIGZvcm1hdD86IHN0cmluZztcclxuICAgIGNvbHVtbj86IGJvb2xlYW47XHJcbiAgICBhZGRpdGlvbmFsUHJvcGVydGllcz86IGFueTtcclxuICAgICRyZWY/OiBzdHJpbmc7XHJcbiAgICBhbGxPZj86IFJlYWRvbmx5QXJyYXk8eyRyZWY/OiBzdHJpbmd9PlxyXG4gICAgaXRlbXM/OiBJT3BlbkFwaVNjaGVtYVByb3BlcnR5O1xyXG4gICAgZW51bT86IHN0cmluZ1tdO1xyXG4gICAgW2tleTogc3RyaW5nXTogYW55O1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElPcGVuQXBpU2NoZW1hIHtcclxuICAgIHByb3BlcnRpZXM6IHtcclxuICAgICAgICBbbmFtZTogc3RyaW5nXTogSU9wZW5BcGlTY2hlbWFQcm9wZXJ0eTtcclxuICAgIH07XHJcbiAgICByZXF1aXJlZDogc3RyaW5nW107XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSU9wZW5BcGlTY2hlbWFzIHtcclxuICAgIFtuYW1lOiBzdHJpbmddOiBJT3BlbkFwaVNjaGVtYTtcclxufVxyXG5cclxuLy8gLS0tIER5bmFtaWMgdGFibGUgLS0tXHJcbmV4cG9ydCBpbnRlcmZhY2UgSVRhYmxlT3JkZXJzIHtcclxuICAgIFtjb2x1bW46IHN0cmluZ106IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJVGFibGVDb2x1bW4ge1xyXG4gICAgdGl0bGU/OiBzdHJpbmc7XHJcbiAgICBzb3J0Pzogc3RyaW5nO1xyXG4gICAgZmlsdGVyPzogYm9vbGVhbjtcclxuICAgIFtrZXk6IHN0cmluZ106IGFueTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJVGFibGVDb2x1bW5zIHtcclxuICAgIFtjb2x1bW46IHN0cmluZ106IElUYWJsZUNvbHVtbjtcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgVGFibGVDb2x1bW5zID0gSVRhYmxlT3JkZXJzIHwgSVRhYmxlQ29sdW1ucyB8IHN0cmluZ1tdO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJVGFibGVUZW1wbGF0ZSB7XHJcbiAgICBjb2x1bW46IHN0cmluZyB8IHN0cmluZ1tdO1xyXG4gICAgcHVyZTogYm9vbGVhbjtcclxuICAgIHJlZjogVGVtcGxhdGVSZWY8YW55PjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJVGFibGVUZW1wbGF0ZXMge1xyXG4gICAgW2NvbHVtbjogc3RyaW5nXTogSVRhYmxlVGVtcGxhdGU7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSVRhYmxlRGF0YVF1ZXJ5IHtcclxuICAgIFtjb2x1bW46IHN0cmluZ106IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgVGFibGVEYXRhTG9hZGVyID0gKFxyXG4gICAgcGFnZTogbnVtYmVyLCByb3dzUGVyUGFnZTogbnVtYmVyLCBvcmRlckJ5OiBzdHJpbmcsIG9yZGVyRGVzY2VuZGluZzogYm9vbGVhbixcclxuICAgIGZpbHRlcjogc3RyaW5nLCBxdWVyeTogSVRhYmxlRGF0YVF1ZXJ5XHJcbikgPT4gUHJvbWlzZTxJUGFnaW5hdGlvbkRhdGE+O1xyXG5cclxuLy8gLS0tIFJlc291cmNlIGlmIC0tLVxyXG5leHBvcnQgY2xhc3MgUmVzb3VyY2VJZkNvbnRleHQge1xyXG4gICAgcmVzb3VyY2U6IHN0cmluZztcclxuICAgIHVybDogc3RyaW5nO1xyXG59XHJcblxyXG4vLyAtLS0gQ29uZmlnU2VydmljZSAtLS1cclxuZXhwb3J0IGNvbnN0IEFQUF9CQVNFX1VSTCA9IG5ldyBJbmplY3Rpb25Ub2tlbjxzdHJpbmc+KFwiYXBwLWJhc2UtdXJsXCIpO1xyXG5cclxuZXhwb3J0IGNsYXNzIElDb25maWd1cmF0aW9uIHtcclxuICAgIGNkblVybD86IHN0cmluZztcclxuICAgIGJhc2VVcmw/OiBzdHJpbmc7XHJcbiAgICBiYXNlRG9tYWluPzogc3RyaW5nO1xyXG4gICAgdHJhbnNsYXRpb25Vcmw/OiBzdHJpbmc7XHJcbiAgICBba2V5OiBzdHJpbmddOiBhbnk7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSUNvbmZpZ1NlcnZpY2Uge1xyXG4gICAgcmVhZG9ubHkgY29uZmlnOiBJQ29uZmlndXJhdGlvbjtcclxuICAgIHJlYWRvbmx5IGluamVjdG9yOiBJbmplY3RvcjtcclxuICAgIHJlYWRvbmx5IGxvYWQ6ICgpID0+IFByb21pc2U8SUNvbmZpZ3VyYXRpb24+O1xyXG4gICAgcmVhZG9ubHkgcm9vdEVsZW1lbnQ6IGFueTtcclxuICAgIGNsb25lUm9vdEVsZW0oKTogYW55O1xyXG4gICAgcHJlcGFyZVVybCh1cmw6IHN0cmluZywgZW5kaW5nOiBzdHJpbmcpOiBzdHJpbmc7XHJcbiAgICBnZXRDb25maWdWYWx1ZShrZXk6IHN0cmluZyk6IGFueTtcclxuICAgIGdldFF1ZXJ5UGFyYW1ldGVyKG5hbWU6IHN0cmluZywgdXJsPzogc3RyaW5nKTogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgY29uc3QgQ09ORklHX1NFUlZJQ0UgPSBuZXcgSW5qZWN0aW9uVG9rZW48SUNvbmZpZ1NlcnZpY2U+KFwiY29uZmlnLXNlcnZpY2VcIik7XHJcblxyXG5leHBvcnQgY29uc3QgQkFTRV9DT05GSUcgPSBuZXcgSW5qZWN0aW9uVG9rZW48SUNvbmZpZ3VyYXRpb24+KFwiYmFzZS1jb25maWdcIik7XHJcblxyXG5leHBvcnQgY29uc3QgU0NSSVBUX1BBUkFNUyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxhbnk+KFwic2NyaXB0LXBhcmFtc1wiKTtcclxuXHJcbmV4cG9ydCBjb25zdCBST09UX0VMRU1FTlQgPSBuZXcgSW5qZWN0aW9uVG9rZW48SFRNTEVsZW1lbnQ+KFwiYXBwLXJvb3QtZWxlbWVudFwiKTtcclxuXHJcbmV4cG9ydCBjb25zdCBSRVNJWkVfREVMQVkgPSBuZXcgSW5qZWN0aW9uVG9rZW48bnVtYmVyPihcInJlc2l6ZS1ldmVudC1kZWxheVwiKTtcclxuXHJcbmV4cG9ydCB0eXBlIFJlc2l6ZUV2ZW50U3RyYXRlZ3kgPSBcInNjcm9sbFwiIHwgXCJvYmplY3RcIjtcclxuXHJcbmV4cG9ydCBjb25zdCBSRVNJWkVfU1RSQVRFR1kgPSBuZXcgSW5qZWN0aW9uVG9rZW48UmVzaXplRXZlbnRTdHJhdGVneT4oXCJyZXNpemUtZXZlbnQtc3RyYXRlZ3lcIik7XHJcblxyXG4vLyAtLS0gRXJyb3IgaGFuZGxlciBzZXJ2aWNlIC0tLVxyXG5leHBvcnQgdHlwZSBFcnJvckhhbmRsZXJDYWxsYmFjayA9IChlcnJvcjogc3RyaW5nKSA9PiBhbnk7XHJcblxyXG5leHBvcnQgY29uc3QgRVJST1JfSEFORExFUiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxFcnJvckhhbmRsZXJDYWxsYmFjaz4oXCJlcnJvci1oYW5kbGVyLWNhbGxiYWNrXCIpO1xyXG5cclxuLy8gLS0tIEdsb2JhbCB0ZW1wbGF0ZXMgc2VydmljZVxyXG5cclxuZXhwb3J0IHR5cGUgR2xvYmFsQ29tcG9uZW50TW9kaWZpZXIgPSAoY29tcG9uZW50OiBhbnkpID0+IGFueTtcclxuXHJcbi8vIC0tLSBNb2R1bGUgLS0tXHJcbmV4cG9ydCB0eXBlIEFwcEluaXRpYWxpemVyRnVuYyA9ICgpID0+IFByb21pc2U8dm9pZD4gfCB2b2lkO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJTW9kdWxlQ29uZmlnIHtcclxuICAgIGFwaVNlcnZpY2U/OiBUeXBlPElBcGlTZXJ2aWNlPlxyXG4gICAgYXV0aFNlcnZpY2U/OiBUeXBlPElBdXRoU2VydmljZT47XHJcbiAgICBpY29uU2VydmljZT86IFR5cGU8SUljb25TZXJ2aWNlPjtcclxuICAgIGxhbmd1YWdlU2VydmljZT86IFR5cGU8SUxhbmd1YWdlU2VydmljZT47XHJcbiAgICB0b2FzdGVyU2VydmljZT86IFR5cGU8SVRvYXN0ZXJTZXJ2aWNlPjtcclxuICAgIHByb21pc2VTZXJ2aWNlPzogVHlwZTxJUHJvbWlzZVNlcnZpY2U+O1xyXG4gICAgY29uZmlnU2VydmljZT86IFR5cGU8SUNvbmZpZ1NlcnZpY2U+O1xyXG4gICAgd2FzaUltcGxlbWVudGF0aW9uPzogVHlwZTxJV2FzaT47XHJcbiAgICBpbml0aWFsaXplQXBwPzogKGluamVjdG9yOiBJbmplY3RvcikgPT4gQXBwSW5pdGlhbGl6ZXJGdW5jO1xyXG4gICAgYmFzZVVybD86IChpbmplY3RvcjogSW5qZWN0b3IpID0+IHN0cmluZztcclxuICAgIHJlc2l6ZURlbGF5PzogbnVtYmVyO1xyXG4gICAgcmVzaXplU3RyYXRlZ3k/OiBSZXNpemVFdmVudFN0cmF0ZWd5O1xyXG59XHJcblxyXG4vLyAtLS0gVmFsdWVkIHByb21pc2UgLS0tXHJcbmV4cG9ydCBjbGFzcyBWYWx1ZWRQcm9taXNlPFQ+IGV4dGVuZHMgUHJvbWlzZTxUPiB7XHJcbiAgICB2YWx1ZTogVDtcclxufVxyXG4iXX0=
|
|
122
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLXR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL25neC11dGlscy9jb21tb24tdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFlLGNBQWMsRUFBZ0QsTUFBTSxlQUFlLENBQUM7QUFJMUcsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQ25ELE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQWdCakQsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLElBQUksY0FBYyxDQUFDLHNCQUFzQixDQUFDLENBQUM7QUFReEUsTUFBTSxPQUFPLFdBQVc7SUFDcEIsWUFBbUIsQ0FBUyxFQUFTLENBQVMsRUFBUyxDQUFTLEVBQVMsSUFBWSxHQUFHO1FBQXJFLE1BQUMsR0FBRCxDQUFDLENBQVE7UUFBUyxNQUFDLEdBQUQsQ0FBQyxDQUFRO1FBQVMsTUFBQyxHQUFELENBQUMsQ0FBUTtRQUFTLE1BQUMsR0FBRCxDQUFDLENBQWM7SUFFeEYsQ0FBQztDQUNKO0FBU0QsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFpQyxJQUFJLGNBQWMsQ0FBZSxjQUFjLENBQUMsQ0FBQztBQXlDM0csTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQXFDLElBQUksY0FBYyxDQUFtQixrQkFBa0IsQ0FBQyxDQUFDO0FBb0IzSCxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQWlDLElBQUksY0FBYyxDQUFlLGNBQWMsQ0FBQyxDQUFDO0FBbUIzRywwQkFBMEI7QUFDMUIsTUFBTSxDQUFOLElBQVksV0FHWDtBQUhELFdBQVksV0FBVztJQUNuQiwrQ0FBSyxDQUFBO0lBQ0wsbURBQU8sQ0FBQTtBQUNYLENBQUMsRUFIVyxXQUFXLEtBQVgsV0FBVyxRQUd0QjtBQVVELE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBb0MsSUFBSSxjQUFjLENBQWtCLGlCQUFpQixDQUFDLENBQUM7QUFjdkgsTUFB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QyxNQUFNLFdBQVcsR0FBZ0MsSUFBSSxjQUFjLENBQWMsYUFBYSxDQUFDLENBQUM7QUFnRXZHLHNCQUFzQjtBQUN0QixNQUFNLE9BQU8saUJBQWlCO0NBRzdCO0FBRUQsd0JBQXdCO0FBQ3hCLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxJQUFJLGNBQWMsQ0FBUyxjQUFjLENBQUMsQ0FBQztBQUV2RSxNQUFNLE9BQU8sY0FBYztDQU0xQjtBQWFELE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxJQUFJLGNBQWMsQ0FBaUIsZ0JBQWdCLENBQUMsQ0FBQztBQUVuRixNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsSUFBSSxjQUFjLENBQWlCLGFBQWEsQ0FBQyxDQUFDO0FBRTdFLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxJQUFJLGNBQWMsQ0FBTSxlQUFlLENBQUMsQ0FBQztBQUV0RSxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsSUFBSSxjQUFjLENBQWMsa0JBQWtCLENBQUMsQ0FBQztBQUVoRixNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsSUFBSSxjQUFjLENBQVMsb0JBQW9CLENBQUMsQ0FBQztBQUk3RSxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsSUFBSSxjQUFjLENBQXNCLHVCQUF1QixDQUFDLENBQUM7QUFLaEcsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLElBQUksY0FBYyxDQUF1Qix3QkFBd0IsQ0FBQyxDQUFDO0FBd0JoRyx5QkFBeUI7QUFDekIsTUFBTSxPQUFPLGFBQWlCLFNBQVEsT0FBVTtDQUUvQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RXZlbnRFbWl0dGVyLCBJbmplY3Rpb25Ub2tlbiwgSW5qZWN0b3IsIE5nWm9uZSwgUHJvdmlkZXIsIFRlbXBsYXRlUmVmLCBUeXBlfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHtIdHRwQ2xpZW50LCBIdHRwRXJyb3JSZXNwb25zZSwgSHR0cEhlYWRlcnN9IGZyb20gXCJAYW5ndWxhci9jb21tb24vaHR0cFwiO1xuaW1wb3J0IHtBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBEYXRhLCBSb3V0ZSwgVXJsVHJlZX0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xuaW1wb3J0IHtSZXF1ZXN0fSBmcm9tIFwiZXhwcmVzc1wiO1xuaW1wb3J0IHtSZWZsZWN0VXRpbHN9IGZyb20gXCIuL3V0aWxzL3JlZmxlY3QudXRpbHNcIjtcbmltcG9ydCB7T2JqZWN0VXRpbHN9IGZyb20gXCIuL3V0aWxzL29iamVjdC51dGlsc1wiO1xuXG4vLyAtLS0gVXRpbFxuZXhwb3J0IGludGVyZmFjZSBUeXBlZEZhY3RvcnlQcm92aWRlcjxUPiB7XG4gICAgdXNlRmFjdG9yeTogKC4uLmFyZ3M6IGFueVtdKSA9PiBUO1xuICAgIGRlcHM6IGFueVtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFR5cGVkVmFsdWVQcm92aWRlcjxUPiB7XG4gICAgdXNlVmFsdWU6IFQ7XG59XG5cbmV4cG9ydCB0eXBlIENhY2hlZFByb3ZpZGVyPFQ+ID0gVHlwZTxUPiB8IFR5cGVkRmFjdG9yeVByb3ZpZGVyPFQ+IHwgVHlwZWRWYWx1ZVByb3ZpZGVyPFQ+O1xuXG5leHBvcnQgdHlwZSBDYWNoZWRGYWN0b3J5PFQ+ID0gKGluamVjdG9yOiBJbmplY3RvcikgPT4gUmVhZG9ubHlBcnJheTxUPjtcblxuZXhwb3J0IGNvbnN0IE9QVElPTlNfVE9LRU4gPSBuZXcgSW5qZWN0aW9uVG9rZW4oXCJjdXN0b20tb3B0aW9ucy10b2tlblwiKTtcblxuZXhwb3J0IGludGVyZmFjZSBJUmVzb2x2ZUZhY3Rvcnkge1xuICAgIGZ1bmM6IEZ1bmN0aW9uO1xuICAgIHR5cGU/OiBhbnk7XG4gICAgcGFyYW1zPzogYW55W107XG59XG5cbmV4cG9ydCBjbGFzcyBDYW52YXNDb2xvciB7XG4gICAgY29uc3RydWN0b3IocHVibGljIHI6IG51bWJlciwgcHVibGljIGc6IG51bWJlciwgcHVibGljIGI6IG51bWJlciwgcHVibGljIGE6IG51bWJlciA9IDI1NSkge1xuXG4gICAgfVxufVxuXG4vLyAtLS0gSWNvbiBzZXJ2aWNlIC0tLVxuZXhwb3J0IGludGVyZmFjZSBJSWNvblNlcnZpY2Uge1xuICAgIGlzRGlzYWJsZWQ6IGJvb2xlYW47XG4gICAgaWNvbnNMb2FkZWQ6IEV2ZW50RW1pdHRlcjxhbnk+O1xuICAgIGdldEljb24oaWNvbjogc3RyaW5nLCBhY3RpdmVJY29uOiBzdHJpbmcsIGFjdGl2ZTogYm9vbGVhbik6IFByb21pc2U8c3RyaW5nPjtcbn1cblxuZXhwb3J0IGNvbnN0IElDT05fU0VSVklDRTogSW5qZWN0aW9uVG9rZW48SUljb25TZXJ2aWNlPiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxJSWNvblNlcnZpY2U+KFwiaWNvbi1zZXJ2aWNlXCIpO1xuXG4vLyAtLS0gTGFuZ3VhZ2Ugc2VydmljZSAtLS1cbmV4cG9ydCBpbnRlcmZhY2UgSVRyYW5zbGF0aW9uIHtcbiAgICBsYW5nOiBzdHJpbmc7XG4gICAgdHJhbnNsYXRpb246IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJVHJhbnNsYXRpb25zIHtcbiAgICBba2V5OiBzdHJpbmddOiBhbnk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUxhbmd1YWdlU2V0dGluZyB7XG4gICAgdW5hdmFpbGFibGU/OiBzdHJpbmc7XG4gICAgW2tleTogc3RyaW5nXTogc3RyaW5nIHwgYm9vbGVhbiB8IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJTGFuZ3VhZ2VTZXR0aW5ncyB7XG4gICAgbGFuZ3VhZ2VzOiBzdHJpbmdbXTtcbiAgICBkZXZMYW5ndWFnZXM6IHN0cmluZ1tdO1xuICAgIGRlZmF1bHRMYW5ndWFnZTogc3RyaW5nO1xuICAgIHNldHRpbmdzPzoge1tsYW5nOiBzdHJpbmddOiBJTGFuZ3VhZ2VTZXR0aW5nfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJTGFuZ3VhZ2VTZXJ2aWNlIHtcbiAgICBjdXJyZW50TGFuZ3VhZ2U6IHN0cmluZztcbiAgICBlZGl0TGFuZ3VhZ2U6IHN0cmluZztcbiAgICBkaXNhYmxlVHJhbnNsYXRpb25zOiBib29sZWFuO1xuICAgIGRlZmF1bHRMYW5ndWFnZTogc3RyaW5nO1xuICAgIGRpY3Rpb25hcnk6IElUcmFuc2xhdGlvbnM7XG4gICAgcmVhZG9ubHkgbGFuZ3VhZ2VzOiBSZWFkb25seUFycmF5PHN0cmluZz47XG4gICAgcmVhZG9ubHkgaHR0cENsaWVudDogSHR0cENsaWVudDtcbiAgICByZXBsYWNlTGFuZ3VhZ2VzKGxhbmd1YWdlczogc3RyaW5nW10pOiB2b2lkO1xuICAgIGFkZExhbmd1YWdlcyhsYW5ndWFnZXM6IHN0cmluZ1tdKTogdm9pZDtcbiAgICBnZXRUcmFuc2xhdGlvblN5bmMoa2V5OiBzdHJpbmcsIHBhcmFtcz86IGFueSk6IHN0cmluZztcbiAgICBnZXRUcmFuc2xhdGlvbihrZXk6IHN0cmluZywgcGFyYW1zPzogYW55KTogUHJvbWlzZTxzdHJpbmc+O1xuICAgIGdldFRyYW5zbGF0aW9ucyguLi5rZXlzOiBzdHJpbmdbXSk6IFByb21pc2U8SVRyYW5zbGF0aW9ucz47XG4gICAgZ2V0VHJhbnNsYXRpb25Gcm9tT2JqZWN0KHRyYW5zbGF0aW9uczogSVRyYW5zbGF0aW9ucywgcGFyYW1zPzogYW55LCBsYW5nPzogc3RyaW5nKTogc3RyaW5nO1xuICAgIGdldFRyYW5zbGF0aW9uRnJvbUFycmF5KHRyYW5zbGF0aW9uczogSVRyYW5zbGF0aW9uW10sIHBhcmFtcz86IGFueSwgbGFuZz86IHN0cmluZyk6IHN0cmluZztcbn1cblxuZXhwb3J0IGNvbnN0IExBTkdVQUdFX1NFUlZJQ0U6IEluamVjdGlvblRva2VuPElMYW5ndWFnZVNlcnZpY2U+ID0gbmV3IEluamVjdGlvblRva2VuPElMYW5ndWFnZVNlcnZpY2U+KFwibGFuZ3VhZ2Utc2VydmljZVwiKTtcblxuLy8gLS0tIEF1dGggU2VydmljZSAtLS1cbmV4cG9ydCBpbnRlcmZhY2UgSUF1dGhTZXJ2aWNlIHtcbiAgICBpc0F1dGhlbnRpY2F0ZWQ6IGJvb2xlYW47XG4gICAgdXNlckNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxhbnk+O1xuICAgIGNoZWNrQXV0aGVudGljYXRlZCgpOiBQcm9taXNlPGJvb2xlYW4+O1xufVxuXG5leHBvcnQgdHlwZSBSb3V0ZVZhbGlkYXRvciA9IChhdXRoOiBJQXV0aFNlcnZpY2UsIHJvdXRlPzogSVJvdXRlLCBuZXh0PzogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCkgPT4gUHJvbWlzZTxib29sZWFuPjtcblxuZXhwb3J0IGludGVyZmFjZSBJUm91dGVEYXRhIGV4dGVuZHMgRGF0YSB7XG4gICAgcmV0dXJuU3RhdGU/OiBzdHJpbmdbXTtcbiAgICBndWFyZHM/OiBBcnJheTxJUmVzb2x2ZUZhY3RvcnkgfCBSb3V0ZVZhbGlkYXRvcj47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVJvdXRlIGV4dGVuZHMgUm91dGUge1xuICAgIGRhdGE/OiBJUm91dGVEYXRhO1xufVxuXG5leHBvcnQgY29uc3QgQVVUSF9TRVJWSUNFOiBJbmplY3Rpb25Ub2tlbjxJQXV0aFNlcnZpY2U+ID0gbmV3IEluamVjdGlvblRva2VuPElBdXRoU2VydmljZT4oXCJhdXRoLXNlcnZpY2VcIik7XG5cbi8vIC0tLSBBY2wgU2VydmljZSAtLS1cbmV4cG9ydCBpbnRlcmZhY2UgSUFjbENvbXBvbmVudCB7XG4gICAgb25Vc2VySW5pdGlhbGl6ZWQoKTogdm9pZDtcbiAgICBvblVzZXJDaGFuZ2VkKCk6IHZvaWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVJvdXRlU3RhdGVJbmZvIHtcbiAgICByb3V0ZTogSVJvdXRlO1xuICAgIGd1YXJkOiBhbnk7XG4gICAgZGlydHk6IGJvb2xlYW47XG4gICAgZmlyc3Q6IGJvb2xlYW47XG4gICAgY29tcG9uZW50PzogYW55O1xufVxuXG4vLyAtLS0gU3RhdGUgU2VydmljZSAtLS1cbmV4cG9ydCB0eXBlIE5hdmlnYXRpb25VcmxQYXJhbSA9IGFueVtdIHwgc3RyaW5nIHwgVXJsVHJlZTtcblxuLy8gLS0tIFN0b3JhZ2UgU2VydmljZSAtLS1cbmV4cG9ydCBlbnVtIFN0b3JhZ2VNb2RlIHtcbiAgICBMb2NhbCxcbiAgICBTZXNzaW9uXG59XG5cbi8vIC0tLSBUb2FzdGVyIFNlcnZpY2UgLS0tXG5leHBvcnQgaW50ZXJmYWNlIElUb2FzdGVyU2VydmljZSB7XG4gICAgZXJyb3IobWVzc2FnZTogc3RyaW5nLCBwYXJhbXM/OiBhbnksIHRpdGxlPzogc3RyaW5nKTogdm9pZDtcbiAgICBpbmZvKG1lc3NhZ2U6IHN0cmluZywgcGFyYW1zPzogYW55LCB0aXRsZT86IHN0cmluZyk6IHZvaWQ7XG4gICAgc3VjY2VzcyhtZXNzYWdlOiBzdHJpbmcsIHBhcmFtcz86IGFueSwgdGl0bGU/OiBzdHJpbmcpOiB2b2lkO1xuICAgIHdhcm5pbmcobWVzc2FnZTogc3RyaW5nLCBwYXJhbXM/OiBhbnksIHRpdGxlPzogc3RyaW5nKTogdm9pZDtcbn1cblxuZXhwb3J0IGNvbnN0IFRPQVNURVJfU0VSVklDRTogSW5qZWN0aW9uVG9rZW48SVRvYXN0ZXJTZXJ2aWNlPiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxJVG9hc3RlclNlcnZpY2U+KFwidG9hc3Rlci1zZXJ2aWNlXCIpO1xuXG4vLyAtLS0gUHJvbWlzZSBTZXJ2aWNlIC0tLVxuXG5leHBvcnQgaW50ZXJmYWNlIElQcm9taXNlU2VydmljZSB7XG4gICAgem9uZTogTmdab25lO1xuICAgIGNvdW50OiBudW1iZXI7XG4gICAgb25DaGFuZ2VkOiBFdmVudEVtaXR0ZXI8bnVtYmVyPjtcbiAgICBjcmVhdGU8VD4oZXhlY3V0b3I6IChyZXNvbHZlOiAodmFsdWU/OiBUIHwgUHJvbWlzZUxpa2U8VD4pID0+IHZvaWQsIHJlamVjdDogKHJlYXNvbj86IGFueSkgPT4gdm9pZCkgPT4gdm9pZCk6IFByb21pc2U8VD47XG4gICAgYWxsKHByb21pc2VzOiBQcm9taXNlPGFueT5bXSk6IFByb21pc2U8YW55PjtcbiAgICByZXNvbHZlPFQ+KHZhbHVlOiBUIHwgUHJvbWlzZUxpa2U8VD4pOiBQcm9taXNlPFQ+O1xuICAgIHJlamVjdDxUPih2YWx1ZTogVCB8IFByb21pc2VMaWtlPFQ+KTogUHJvbWlzZTxUPjtcbn1cblxuZXhwb3J0IGNvbnN0IFBST01JU0VfU0VSVklDRSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxJUHJvbWlzZVNlcnZpY2U+KFwicHJvbWlzZS1zZXJ2aWNlXCIpO1xuXG4vLyAtLS0gV2FzbSBzZXJ2aWNlIC0tLVxuZXhwb3J0IHR5cGUgVHlwZWRBcnJheSA9XG4gICAgfCBJbnQ4QXJyYXlcbiAgICB8IEludDE2QXJyYXlcbiAgICB8IEludDMyQXJyYXlcbiAgICB8IFVpbnQ4QXJyYXlcbiAgICB8IFVpbnQ4Q2xhbXBlZEFycmF5XG4gICAgfCBVaW50MTZBcnJheVxuICAgIHwgVWludDMyQXJyYXlcbiAgICB8IEZsb2F0MzJBcnJheVxuICAgIHwgRmxvYXQ2NEFycmF5O1xuXG5leHBvcnQgaW50ZXJmYWNlIElXYXNtRXhwb3J0cyB7XG4gICAgSEVBUDg6IEludDhBcnJheTtcbiAgICBIRUFQMTY6IEludDE2QXJyYXksXG4gICAgSEVBUDMyOiBJbnQzMkFycmF5LFxuICAgIEhFQVBVODogVWludDhBcnJheTtcbiAgICBIRUFQVTE2OiBVaW50MTZBcnJheSxcbiAgICBIRUFQVTMyOiBVaW50MzJBcnJheSxcbiAgICBIRUFQRjMyOiBGbG9hdDMyQXJyYXksXG4gICAgSEVBUEY2NDogRmxvYXQ2NEFycmF5LFxuICAgIG1lbW9yeTogV2ViQXNzZW1ibHkuTWVtb3J5O1xuICAgIFtrZXk6IHN0cmluZ106IGFueTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJV2FzaSB7XG4gICAgaW5zdGFudGlhdGUoYnl0ZXM6IEFycmF5QnVmZmVyKTogUHJvbWlzZTxJV2FzbUV4cG9ydHM+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElXYXNtIHtcbiAgICB3cml0ZUFycmF5VG9NZW1vcnkoYXJyYXk6IFR5cGVkQXJyYXkpOiBQcm9taXNlPG51bWJlcj4gfCBudW1iZXI7XG4gICAgcmVhZEFycmF5RnJvbU1lbW9yeTxUID0gVHlwZWRBcnJheT4ocG9pbnRlcjogbnVtYmVyLCBhcnJheTogVCk6IFByb21pc2U8VD4gfCBUO1xuICAgIFtrZXk6IHN0cmluZ106ICguLi5hcmdzOiBhbnlbXSkgPT4gYW55O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElXYXNtQXN5bmMge1xuICAgIHdyaXRlQXJyYXlUb01lbW9yeShhcnJheTogVHlwZWRBcnJheSk6IFByb21pc2U8bnVtYmVyPjtcbiAgICByZWFkQXJyYXlGcm9tTWVtb3J5PFQgPSBUeXBlZEFycmF5Pihwb2ludGVyOiBudW1iZXIsIGFycmF5OiBUKTogVDtcbiAgICBba2V5OiBzdHJpbmddOiAoLi4uYXJnczogYW55W10pID0+IFByb21pc2U8YW55Pjtcbn1cblxuZXhwb3J0IGNvbnN0IFdBU0lfSU1QTEVNRU5UQVRJT04gPSBuZXcgSW5qZWN0aW9uVG9rZW48VHlwZTxJV2FzaT4+KFwid2FzaS1pbXBsZW1lbnRhdGlvblwiKTtcblxuLy8gLS0tIEFzeW5jIG1ldGhvZCAtLS1cbmV4cG9ydCBpbnRlcmZhY2UgSUFzeW5jTWVzc2FnZSB7XG4gICAgbWVzc2FnZTogc3RyaW5nO1xuICAgIGNvbnRleHQ/OiBhbnk7XG59XG5cbmV4cG9ydCB0eXBlIEFzeW5jTWV0aG9kID0gKGNvbnRleHQ/OiBhbnkpID0+IFByb21pc2U8SUFzeW5jTWVzc2FnZT47XG5cbi8vIC0tLSBVbm9yZGVyZWQgbGlzdCAtLS1cbmV4cG9ydCBpbnRlcmZhY2UgVW5vcmRlcmVkTGlzdFRlbXBsYXRlIHtcbiAgICByZWFkb25seSB0eXBlOiBzdHJpbmc7XG4gICAgcmVhZG9ubHkgc2VsZWN0b3I6IHN0cmluZztcbiAgICByZWFkb25seSB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55PlxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVub3JkZXJlZExpc3RUZW1wbGF0ZXMge1xuICAgIFt0eXBlOiBzdHJpbmddOiBUZW1wbGF0ZVJlZjxhbnk+O1xufVxuXG5leHBvcnQgdHlwZSBVbm9yZGVyZWRMaXN0U3R5bGUgPSBcInRhYmxlXCIgfCBcImxpc3RcIjtcblxuLy8gLS0tIEFqYXggcmVxdWVzdCAgLS0tXG5leHBvcnQgaW50ZXJmYWNlIElBamF4UmVxdWVzdERldGFpbHMge1xuICAgIHJlcXVlc3Q6IFhNTEh0dHBSZXF1ZXN0LFxuICAgIG1ldGhvZDogc3RyaW5nO1xuICAgIHVybDogc3RyaW5nO1xufVxuXG5leHBvcnQgdHlwZSBBamF4UmVxdWVzdENhbGxiYWNrID0gKGRldGFpbHM6IElBamF4UmVxdWVzdERldGFpbHMsIHBhcmFtczogYW55KSA9PiB2b2lkO1xuXG4vLyAtLS0gTG9hZGVyIHV0aWxzIC0tLVxuZXhwb3J0IHR5cGUgU2NyaXB0VHlwZSA9IFwidGV4dC9qYXZhc2NyaXB0XCIgfCBcIm1vZHVsZVwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIElTY3JpcHRQcm9taXNlcyB7XG4gICAgW3NyYzogc3RyaW5nXTogUHJvbWlzZTxIVE1MU2NyaXB0RWxlbWVudD47XG59XG5leHBvcnQgaW50ZXJmYWNlIElTdHlsZVByb21pc2VzIHtcbiAgICBbc3JjOiBzdHJpbmddOiBQcm9taXNlPEhUTUxMaW5rRWxlbWVudD47XG59XG5cbi8vIC0tLSBPYnNlcnZhYmxlIHV0aWxzIC0tLVxuZXhwb3J0IGludGVyZmFjZSBJU2VhcmNoT2JzZXJ2YWJsZSB7XG4gICAgc2VhcmNoOiBzdHJpbmc7XG4gICAgZ2V0U2VhcmNoUmVzdWx0cyh0b2tlbjogc3RyaW5nKTogUHJvbWlzZTxhbnlbXT47XG59XG5cbi8vIC0tLSBSZWZsZWN0IHV0aWxzIC0tLVxuZXhwb3J0IGZ1bmN0aW9uIEZhY3RvcnlEZXBlbmRlbmNpZXMoLi4uZGVwZW5kZW5jaWVzOiBBcnJheTxJbmplY3Rpb25Ub2tlbjxhbnk+IHwgUHJvdmlkZXI+KTogTWV0aG9kRGVjb3JhdG9yIHtcbiAgICByZXR1cm4gZnVuY3Rpb24gKHRhcmdldDogYW55LCBtZXRob2Q6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBSZWZsZWN0VXRpbHMuZGVmaW5lTWV0YWRhdGEoXCJmYWN0b3J5RGVwZW5kZW5jaWVzXCIsIGRlcGVuZGVuY2llcywgdGFyZ2V0LCBtZXRob2QpO1xuICAgIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBPYmplY3RUeXBlKHR5cGU6IHN0cmluZyk6IENsYXNzRGVjb3JhdG9yIHtcbiAgICByZXR1cm4gZnVuY3Rpb24gKHRhcmdldDogYW55KTogdm9pZCB7XG4gICAgICAgIFJlZmxlY3RVdGlscy5kZWZpbmVNZXRhZGF0YShcIm9iamVjdFR5cGVcIiwgdHlwZSwgdGFyZ2V0KTtcbiAgICB9O1xufVxuXG4vLyAtLS0gVGltZXIgdXRpbHMgLS0tXG5leHBvcnQgaW50ZXJmYWNlIElUaW1lciB7XG4gICAgaWQ/OiBhbnk7XG4gICAgZnVuYz86IEZ1bmN0aW9uO1xuICAgIHRpbWU/OiBudW1iZXI7XG4gICAgcnVuPzogKCkgPT4gdm9pZDtcbiAgICBzZXQ/OiAoZnVuYzogRnVuY3Rpb24sIHRpbWU6IG51bWJlcikgPT4gdm9pZDtcbiAgICBjbGVhcj86ICgpID0+IHZvaWQ7XG59XG5cbi8vIC0tLSBFeHRyYUl0ZW1Qcm9wZXJ0aWVzIC0tLVxuZXhwb3J0IGludGVyZmFjZSBJRXh0cmFQcm9wZXJ0aWVzIHtcbiAgICBbcHJvcDogc3RyaW5nXTogYW55O1xufVxuXG4vLyAtLS0gR3JvdXAgYnkgLS0tXG5leHBvcnQgaW50ZXJmYWNlIElHcm91cE1hcCB7XG4gICAgW2NvbHVtbjogc3RyaW5nXTogYW55O1xufVxuXG4vLyAtLS0gVHJhbnNsYXRlIC0tLVxuZXhwb3J0IHR5cGUgVHJhbnNsYXRpb25RdWVyeSA9IHN0cmluZyB8IElUcmFuc2xhdGlvbnMgfCBJVHJhbnNsYXRpb25bXTtcblxuLy8gLS0tIFBhZ2luYXRpb24gLS0tXG5leHBvcnQgaW50ZXJmYWNlIElQYWdlSW5mbyB7XG4gICAgdGV4dDogc3RyaW5nO1xuICAgIG51bWJlcjogbnVtYmVyO1xuICAgIGFjdGl2ZTogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJUGFnaW5hdGlvbkRhdGEge1xuICAgIHRvdGFsOiBudW1iZXI7XG4gICAgaXRlbXM6IGFueVtdO1xuICAgIG1ldGE/OiBhbnk7XG59XG5cbmV4cG9ydCB0eXBlIFBhZ2luYXRpb25EYXRhTG9hZGVyID0gKHBhZ2U6IG51bWJlciwgaXRlbXNQZXJQYWdlOiBudW1iZXIpID0+IFByb21pc2U8SVBhZ2luYXRpb25EYXRhPjtcblxuZXhwb3J0IGNsYXNzIFBhZ2luYXRpb25JdGVtQ29udGV4dCB7XG5cbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgaXRlbTogYW55LCBwdWJsaWMgcGFyYWxsZWxJdGVtOiBhbnksIHB1YmxpYyBjb3VudDogbnVtYmVyLCBwdWJsaWMgaW5kZXg6IG51bWJlciwgcHVibGljIGRhdGFJbmRleDogbnVtYmVyKSB7XG4gICAgfVxuXG4gICAgZ2V0IGZpcnN0KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pbmRleCA9PT0gMDtcbiAgICB9XG5cbiAgICBnZXQgbGFzdCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaW5kZXggPT09IHRoaXMuY291bnQgLSAxO1xuICAgIH1cblxuICAgIGdldCBldmVuKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pbmRleCAlIDIgPT09IDA7XG4gICAgfVxuXG4gICAgZ2V0IG9kZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLmV2ZW47XG4gICAgfVxuXG4gICAgLy8gU3VwcG9ydCBmb3Igb2xkIGR5bmFtaWMgdGFibGUgaW1wbGVtZW50YXRpb25cbiAgICBnZXQgcm93KCk6IGFueSB7XG4gICAgICAgIGNvbnNvbGUubG9nKFwiRHluYW1pY1RhYmxlIHJvdyBpcyBkZXByZWNhdGVkIHVzZSBpdGVtIGluc3RlYWRcIik7XG4gICAgICAgIHJldHVybiB0aGlzLml0ZW07XG4gICAgfVxuXG4gICAgLy8gU3VwcG9ydCBmb3Igb2xkIGR5bmFtaWMgdGFibGUgaW1wbGVtZW50YXRpb25cbiAgICBnZXQgcGFyYWxsZWxSb3coKTogYW55IHtcbiAgICAgICAgY29uc29sZS5sb2coXCJEeW5hbWljVGFibGUgcGFyYWxsZWxSb3cgaXMgZGVwcmVjYXRlZCB1c2UgcGFyYWxsZWxJdGVtIGluc3RlYWRcIik7XG4gICAgICAgIHJldHVybiB0aGlzLnBhcmFsbGVsSXRlbTtcbiAgICB9XG5cbiAgICBmaWx0ZXIoZmlsdGVyUng6IFJlZ0V4cCk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXModGhpcy5pdGVtKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgb2Yga2V5cykge1xuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLml0ZW1ba2V5XTtcbiAgICAgICAgICAgIGlmIChPYmplY3RVdGlscy5pc051bGxPclVuZGVmaW5lZCh2YWx1ZSkgfHwgT2JqZWN0VXRpbHMuaXNPYmplY3QodmFsdWUpKSBjb250aW51ZTtcbiAgICAgICAgICAgIGNvbnN0IHRlc3RWYWx1ZSA9IE9iamVjdFV0aWxzLmlzU3RyaW5nKHZhbHVlKSA/IHZhbHVlIDogdmFsdWUudG9TdHJpbmcoKTtcbiAgICAgICAgICAgIGlmICh0ZXN0VmFsdWUubWF0Y2goZmlsdGVyUngpKSByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxufVxuXG4vLyAtLS0gSHR0cCBzZXJ2aWNlIC0tLVxuZXhwb3J0IGludGVyZmFjZSBJSHR0cEhlYWRlcnMge1xuICAgIFtoZWFkZXI6IHN0cmluZ106IHN0cmluZyB8IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElIdHRwUGFyYW1zIHtcbiAgICBba2V5OiBzdHJpbmddOiBhbnk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVJlcXVlc3RPcHRpb25zIHtcbiAgICBtZXRob2Q/OiBzdHJpbmc7XG4gICAgYm9keT86IGFueTtcbiAgICBoZWFkZXJzPzogSUh0dHBIZWFkZXJzIHwgSHR0cEhlYWRlcnM7XG4gICAgb3JpZ2luYWxIZWFkZXJzPzogSUh0dHBIZWFkZXJzO1xuICAgIHBhcmFtcz86IElIdHRwUGFyYW1zO1xuICAgIG9ic2VydmU/OiBcImJvZHlcIiB8IFwicmVzcG9uc2VcIjtcbiAgICByZXBvcnRQcm9ncmVzcz86IGJvb2xlYW47XG4gICAgcmVzcG9uc2VUeXBlPzogXCJhcnJheWJ1ZmZlclwiIHwgXCJibG9iXCIgfCBcImpzb25cIiB8IFwidGV4dFwiO1xuICAgIHdpdGhDcmVkZW50aWFscz86IGJvb2xlYW47XG4gICAgdGltZW91dD86IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJSXNzdWVDb250ZXh0IHtcbiAgICB1cmw6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJUHJvZ3Jlc3Mge1xuICAgIHBlcmNlbnRhZ2U/OiBudW1iZXI7XG4gICAgbG9hZGVkPzogbnVtYmVyO1xuICAgIHRvdGFsPzogbnVtYmVyO1xufVxuXG5leHBvcnQgdHlwZSBQcm9ncmVzc0xpc3RlbmVyID0gKHByb2dyZXNzOiBJUHJvZ3Jlc3MpID0+IHZvaWQ7XG5cbmV4cG9ydCB0eXBlIFByb21pc2VFeGVjdXRvciA9IChyZXNvbHZlOiAodmFsdWU/OiBhbnkgfCBQcm9taXNlTGlrZTxhbnk+KSA9PiB2b2lkLCByZWplY3Q6IChyZWFzb24/OiBhbnkpID0+IHZvaWQpID0+IHZvaWQ7XG5cbmV4cG9ydCBjbGFzcyBIdHRwUHJvbWlzZSBleHRlbmRzIFByb21pc2U8YW55PiB7XG5cbiAgICBwcm90ZWN0ZWQgcmVqZWN0SGFuZGxlcjogKHJlYXNvbj86IEh0dHBFcnJvclJlc3BvbnNlKSA9PiB2b2lkO1xuICAgIHByb3RlY3RlZCBoYXNSZWplY3RIYW5kbGVyOiBib29sZWFuO1xuICAgIHByb3RlY3RlZCBhdHRhY2hDb3VudDogbnVtYmVyO1xuICAgIHByb3RlY3RlZCBydW5Db3VudDogbnVtYmVyO1xuXG4gICAgY29uc3RydWN0b3IocmVqZWN0SGFuZGxlcjogKHJlYXNvbj86IEh0dHBFcnJvclJlc3BvbnNlKSA9PiB2b2lkLCBleGVjdXRvcjogUHJvbWlzZUV4ZWN1dG9yKSB7XG4gICAgICAgIHN1cGVyKGV4ZWN1dG9yKTtcbiAgICAgICAgdGhpcy5yZWplY3RIYW5kbGVyID0gcmVqZWN0SGFuZGxlcjtcbiAgICAgICAgdGhpcy5hdHRhY2hDb3VudCA9IDA7XG4gICAgICAgIHRoaXMucnVuQ291bnQgPSAwO1xuICAgIH1cblxuICAgIHRoZW48VFJlc3VsdDEsIFRSZXN1bHQyPihvbkZ1bGZpbGxlZD86ICgodmFsdWU6IGFueSkgPT4gKFByb21pc2VMaWtlPFRSZXN1bHQxPiB8IFRSZXN1bHQxKSkgfCBudWxsIHwgdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvblJlamVjdGVkPzogKChyZWFzb246IEh0dHBFcnJvclJlc3BvbnNlKSA9PiAoUHJvbWlzZUxpa2U8VFJlc3VsdDI+IHwgVFJlc3VsdDIpKSB8IG51bGwgfCB1bmRlZmluZWQpOiBQcm9taXNlPFRSZXN1bHQxIHwgVFJlc3VsdDI+IHtcbiAgICAgICAgdGhpcy5hdHRhY2hDb3VudCsrO1xuICAgICAgICByZXR1cm4gc3VwZXIudGhlbih2YWx1ZSA9PiB7XG4gICAgICAgICAgICB0aGlzLnJ1bkNvdW50Kys7XG4gICAgICAgICAgICByZXR1cm4gb25GdWxmaWxsZWQgPyBvbkZ1bGZpbGxlZCh2YWx1ZSkgOiBudWxsO1xuICAgICAgICB9LCAocmVhc29uOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgcmVzdWx0OiBhbnkgPSBvblJlamVjdGVkID8gb25SZWplY3RlZChyZWFzb24pIDogbnVsbDtcbiAgICAgICAgICAgIHRoaXMuaGFzUmVqZWN0SGFuZGxlciA9IHRoaXMuaGFzUmVqZWN0SGFuZGxlciB8fCAob25SZWplY3RlZCAmJiByZXN1bHQgIT09IGZhbHNlKTtcbiAgICAgICAgICAgIHRoaXMucnVuQ291bnQrKztcbiAgICAgICAgICAgIHRoaXMucmVqZWN0SGFuZGxlcih0aGlzLnJ1bkNvdW50ID09IHRoaXMuYXR0YWNoQ291bnQgJiYgIXRoaXMuaGFzUmVqZWN0SGFuZGxlciA/IHJlYXNvbiA6IG51bGwpO1xuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgY2F0Y2g8VFJlc3VsdCA9IG5ldmVyPihvblJlamVjdGVkPzogKChyZWFzb246IEh0dHBFcnJvclJlc3BvbnNlKSA9PiAoUHJvbWlzZUxpa2U8VFJlc3VsdD4gfCBUUmVzdWx0KSkgfCBudWxsIHwgdW5kZWZpbmVkKTogUHJvbWlzZTxhbnkgfCBUUmVzdWx0PiB7XG4gICAgICAgIHJldHVybiB0aGlzLnRoZW4obnVsbCwgb25SZWplY3RlZCk7XG4gICAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIElIdHRwU2VydmljZSB7XG4gICAgbGFuZ3VhZ2U6IElMYW5ndWFnZVNlcnZpY2U7XG4gICAgdXJsKHVybDogc3RyaW5nKTogc3RyaW5nO1xuICAgIG1ha2VMaXN0UGFyYW1zKHBhZ2U6IG51bWJlciwgaXRlbXNQZXJQYWdlOiBudW1iZXIsIG9yZGVyQnk/OiBzdHJpbmcsIG9yZGVyRGVzY2VuZGluZz86IGJvb2xlYW4sIGZpbHRlcj86IHN0cmluZyk6IElIdHRwUGFyYW1zO1xufVxuXG5leHBvcnQgY29uc3QgRVhQUkVTU19SRVFVRVNUID0gbmV3IEluamVjdGlvblRva2VuPFJlcXVlc3Q+KFwiZXhwcmVzcy1yZXF1ZXN0XCIpO1xuXG4vLyAtLS0gQXBpIHNlcnZpY2UgLS0tXG5cbmV4cG9ydCBpbnRlcmZhY2UgSUFwaVNlcnZpY2UgZXh0ZW5kcyBJSHR0cFNlcnZpY2Uge1xuICAgIGNhY2hlOiBhbnk7XG4gICAgY2xpZW50OiBIdHRwQ2xpZW50O1xuICAgIGdldCh1cmw6IHN0cmluZywgb3B0aW9ucz86IElSZXF1ZXN0T3B0aW9ucyk6IFByb21pc2U8YW55PjtcbiAgICBkZWxldGUodXJsOiBzdHJpbmcsIG9wdGlvbnM/OiBJUmVxdWVzdE9wdGlvbnMpOiBQcm9taXNlPGFueT47XG4gICAgcG9zdCh1cmw6IHN0cmluZywgYm9keT86IGFueSwgb3B0aW9ucz86IElSZXF1ZXN0T3B0aW9ucyk6IFByb21pc2U8YW55PjtcbiAgICBwdXQodXJsOiBzdHJpbmcsIGJvZHk/OiBhbnksIG9wdGlvbnM/OiBJUmVxdWVzdE9wdGlvbnMpOiBQcm9taXNlPGFueT47XG4gICAgcGF0Y2godXJsOiBzdHJpbmcsIGJvZHk/OiBhbnksIG9wdGlvbnM/OiBJUmVxdWVzdE9wdGlvbnMpOiBQcm9taXNlPGFueT47XG4gICAgdXBsb2FkKHVybDogc3RyaW5nLCBib2R5OiBhbnksIGxpc3RlbmVyPzogUHJvZ3Jlc3NMaXN0ZW5lciwgb3B0aW9ucz86IElSZXF1ZXN0T3B0aW9ucyk6IFByb21pc2U8YW55PjtcbiAgICBsaXN0KHVybDogc3RyaW5nLCBwYXJhbXM6IElIdHRwUGFyYW1zKTogUHJvbWlzZTxJUGFnaW5hdGlvbkRhdGE+O1xufVxuXG5leHBvcnQgY29uc3QgQVBJX1NFUlZJQ0U6IEluamVjdGlvblRva2VuPElBcGlTZXJ2aWNlPiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxJQXBpU2VydmljZT4oXCJhcGktc2VydmljZVwiKTtcblxuLy8gLS0tIE9wZW5BcGkgc2VydmljZSAtLS1cbmV4cG9ydCBpbnRlcmZhY2UgSU9wZW5BcGlTY2hlbWFQcm9wZXJ0eSB7XG4gICAgaWQ6IHN0cmluZztcbiAgICB0eXBlPzogc3RyaW5nO1xuICAgIGZvcm1hdD86IHN0cmluZztcbiAgICBjb2x1bW4/OiBib29sZWFuO1xuICAgIGFkZGl0aW9uYWxQcm9wZXJ0aWVzPzogYW55O1xuICAgICRyZWY/OiBzdHJpbmc7XG4gICAgYWxsT2Y/OiBSZWFkb25seUFycmF5PHskcmVmPzogc3RyaW5nfT5cbiAgICBpdGVtcz86IElPcGVuQXBpU2NoZW1hUHJvcGVydHk7XG4gICAgZW51bT86IHN0cmluZ1tdO1xuICAgIFtrZXk6IHN0cmluZ106IGFueTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJT3BlbkFwaVNjaGVtYSB7XG4gICAgcHJvcGVydGllczoge1xuICAgICAgICBbbmFtZTogc3RyaW5nXTogSU9wZW5BcGlTY2hlbWFQcm9wZXJ0eTtcbiAgICB9O1xuICAgIHJlcXVpcmVkOiBzdHJpbmdbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJT3BlbkFwaVNjaGVtYXMge1xuICAgIFtuYW1lOiBzdHJpbmddOiBJT3BlbkFwaVNjaGVtYTtcbn1cblxuLy8gLS0tIER5bmFtaWMgdGFibGUgLS0tXG5leHBvcnQgaW50ZXJmYWNlIElUYWJsZU9yZGVycyB7XG4gICAgW2NvbHVtbjogc3RyaW5nXTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElUYWJsZUNvbHVtbiB7XG4gICAgdGl0bGU/OiBzdHJpbmc7XG4gICAgc29ydD86IHN0cmluZztcbiAgICBmaWx0ZXI/OiBib29sZWFuO1xuICAgIFtrZXk6IHN0cmluZ106IGFueTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJVGFibGVDb2x1bW5zIHtcbiAgICBbY29sdW1uOiBzdHJpbmddOiBJVGFibGVDb2x1bW47XG59XG5cbmV4cG9ydCB0eXBlIFRhYmxlQ29sdW1ucyA9IElUYWJsZU9yZGVycyB8IElUYWJsZUNvbHVtbnMgfCBzdHJpbmdbXTtcblxuZXhwb3J0IGludGVyZmFjZSBJVGFibGVUZW1wbGF0ZSB7XG4gICAgY29sdW1uOiBzdHJpbmcgfCBzdHJpbmdbXTtcbiAgICBwdXJlOiBib29sZWFuO1xuICAgIHJlZjogVGVtcGxhdGVSZWY8YW55Pjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJVGFibGVUZW1wbGF0ZXMge1xuICAgIFtjb2x1bW46IHN0cmluZ106IElUYWJsZVRlbXBsYXRlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElUYWJsZURhdGFRdWVyeSB7XG4gICAgW2NvbHVtbjogc3RyaW5nXTogc3RyaW5nO1xufVxuXG5leHBvcnQgdHlwZSBUYWJsZURhdGFMb2FkZXIgPSAoXG4gICAgcGFnZTogbnVtYmVyLCByb3dzUGVyUGFnZTogbnVtYmVyLCBvcmRlckJ5OiBzdHJpbmcsIG9yZGVyRGVzY2VuZGluZzogYm9vbGVhbixcbiAgICBmaWx0ZXI6IHN0cmluZywgcXVlcnk6IElUYWJsZURhdGFRdWVyeVxuKSA9PiBQcm9taXNlPElQYWdpbmF0aW9uRGF0YT47XG5cbi8vIC0tLSBSZXNvdXJjZSBpZiAtLS1cbmV4cG9ydCBjbGFzcyBSZXNvdXJjZUlmQ29udGV4dCB7XG4gICAgcmVzb3VyY2U6IHN0cmluZztcbiAgICB1cmw6IHN0cmluZztcbn1cblxuLy8gLS0tIENvbmZpZ1NlcnZpY2UgLS0tXG5leHBvcnQgY29uc3QgQVBQX0JBU0VfVVJMID0gbmV3IEluamVjdGlvblRva2VuPHN0cmluZz4oXCJhcHAtYmFzZS11cmxcIik7XG5cbmV4cG9ydCBjbGFzcyBJQ29uZmlndXJhdGlvbiB7XG4gICAgY2RuVXJsPzogc3RyaW5nO1xuICAgIGJhc2VVcmw/OiBzdHJpbmc7XG4gICAgYmFzZURvbWFpbj86IHN0cmluZztcbiAgICB0cmFuc2xhdGlvblVybD86IHN0cmluZztcbiAgICBba2V5OiBzdHJpbmddOiBhbnk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUNvbmZpZ1NlcnZpY2Uge1xuICAgIHJlYWRvbmx5IGNvbmZpZzogSUNvbmZpZ3VyYXRpb247XG4gICAgcmVhZG9ubHkgaW5qZWN0b3I6IEluamVjdG9yO1xuICAgIHJlYWRvbmx5IGxvYWQ6ICgpID0+IFByb21pc2U8SUNvbmZpZ3VyYXRpb24+O1xuICAgIHJlYWRvbmx5IHJvb3RFbGVtZW50OiBhbnk7XG4gICAgY2xvbmVSb290RWxlbSgpOiBhbnk7XG4gICAgcHJlcGFyZVVybCh1cmw6IHN0cmluZywgZW5kaW5nOiBzdHJpbmcpOiBzdHJpbmc7XG4gICAgZ2V0Q29uZmlnVmFsdWUoa2V5OiBzdHJpbmcpOiBhbnk7XG4gICAgZ2V0UXVlcnlQYXJhbWV0ZXIobmFtZTogc3RyaW5nLCB1cmw/OiBzdHJpbmcpOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjb25zdCBDT05GSUdfU0VSVklDRSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxJQ29uZmlnU2VydmljZT4oXCJjb25maWctc2VydmljZVwiKTtcblxuZXhwb3J0IGNvbnN0IEJBU0VfQ09ORklHID0gbmV3IEluamVjdGlvblRva2VuPElDb25maWd1cmF0aW9uPihcImJhc2UtY29uZmlnXCIpO1xuXG5leHBvcnQgY29uc3QgU0NSSVBUX1BBUkFNUyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxhbnk+KFwic2NyaXB0LXBhcmFtc1wiKTtcblxuZXhwb3J0IGNvbnN0IFJPT1RfRUxFTUVOVCA9IG5ldyBJbmplY3Rpb25Ub2tlbjxIVE1MRWxlbWVudD4oXCJhcHAtcm9vdC1lbGVtZW50XCIpO1xuXG5leHBvcnQgY29uc3QgUkVTSVpFX0RFTEFZID0gbmV3IEluamVjdGlvblRva2VuPG51bWJlcj4oXCJyZXNpemUtZXZlbnQtZGVsYXlcIik7XG5cbmV4cG9ydCB0eXBlIFJlc2l6ZUV2ZW50U3RyYXRlZ3kgPSBcInNjcm9sbFwiIHwgXCJvYmplY3RcIjtcblxuZXhwb3J0IGNvbnN0IFJFU0laRV9TVFJBVEVHWSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxSZXNpemVFdmVudFN0cmF0ZWd5PihcInJlc2l6ZS1ldmVudC1zdHJhdGVneVwiKTtcblxuLy8gLS0tIEVycm9yIGhhbmRsZXIgc2VydmljZSAtLS1cbmV4cG9ydCB0eXBlIEVycm9ySGFuZGxlckNhbGxiYWNrID0gKGVycm9yOiBzdHJpbmcpID0+IGFueTtcblxuZXhwb3J0IGNvbnN0IEVSUk9SX0hBTkRMRVIgPSBuZXcgSW5qZWN0aW9uVG9rZW48RXJyb3JIYW5kbGVyQ2FsbGJhY2s+KFwiZXJyb3ItaGFuZGxlci1jYWxsYmFja1wiKTtcblxuLy8gLS0tIEdsb2JhbCB0ZW1wbGF0ZXMgc2VydmljZVxuXG5leHBvcnQgdHlwZSBHbG9iYWxDb21wb25lbnRNb2RpZmllciA9IChjb21wb25lbnQ6IGFueSkgPT4gYW55O1xuXG4vLyAtLS0gTW9kdWxlIC0tLVxuZXhwb3J0IHR5cGUgQXBwSW5pdGlhbGl6ZXJGdW5jID0gKCkgPT4gUHJvbWlzZTx2b2lkPiB8IHZvaWQ7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSU1vZHVsZUNvbmZpZyB7XG4gICAgYXBpU2VydmljZT86IFR5cGU8SUFwaVNlcnZpY2U+XG4gICAgYXV0aFNlcnZpY2U/OiBUeXBlPElBdXRoU2VydmljZT47XG4gICAgaWNvblNlcnZpY2U/OiBUeXBlPElJY29uU2VydmljZT47XG4gICAgbGFuZ3VhZ2VTZXJ2aWNlPzogVHlwZTxJTGFuZ3VhZ2VTZXJ2aWNlPjtcbiAgICB0b2FzdGVyU2VydmljZT86IFR5cGU8SVRvYXN0ZXJTZXJ2aWNlPjtcbiAgICBwcm9taXNlU2VydmljZT86IFR5cGU8SVByb21pc2VTZXJ2aWNlPjtcbiAgICBjb25maWdTZXJ2aWNlPzogVHlwZTxJQ29uZmlnU2VydmljZT47XG4gICAgd2FzaUltcGxlbWVudGF0aW9uPzogVHlwZTxJV2FzaT47XG4gICAgaW5pdGlhbGl6ZUFwcD86IChpbmplY3RvcjogSW5qZWN0b3IpID0+IEFwcEluaXRpYWxpemVyRnVuYztcbiAgICBiYXNlVXJsPzogKGluamVjdG9yOiBJbmplY3RvcikgPT4gc3RyaW5nO1xuICAgIHJlc2l6ZURlbGF5PzogbnVtYmVyO1xuICAgIHJlc2l6ZVN0cmF0ZWd5PzogUmVzaXplRXZlbnRTdHJhdGVneTtcbn1cblxuLy8gLS0tIFZhbHVlZCBwcm9taXNlIC0tLVxuZXhwb3J0IGNsYXNzIFZhbHVlZFByb21pc2U8VD4gZXh0ZW5kcyBQcm9taXNlPFQ+IHtcbiAgICB2YWx1ZTogVDtcbn1cbiJdfQ==
|
|
@@ -136,11 +136,11 @@ export class DynamicTableComponent {
|
|
|
136
136
|
});
|
|
137
137
|
}
|
|
138
138
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DynamicTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
139
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: DynamicTableComponent, selector: "dynamic-table", inputs: { label: "label", placeholder: "placeholder", dataLoader: "dataLoader", data: "data", page: "page", urlParam: "urlParam", parallelData: "parallelData", columns: "columns", showFilter: "showFilter", itemsPerPage: "itemsPerPage", updateTime: "updateTime", filterTime: "filterTime", maxPages: "maxPages", directionLinks: "directionLinks", boundaryLinks: "boundaryLinks", orderBy: "orderBy", orderDescending: "orderDescending", testId: "testId", titlePrefix: "titlePrefix" }, queries: [{ propertyName: "rowTemplate", first: true, predicate: ["rowTemplate"], descendants: true, static: true }, { propertyName: "wrapperTemplate", first: true, predicate: ["wrapperTemplate"], descendants: true, static: true }, { propertyName: "filterTemplate", first: true, predicate: ["filterTemplate"], descendants: true, static: true }, { propertyName: "templateDirectives", predicate: DynamicTableTemplateDirective }], viewQueries: [{ propertyName: "columnsTemplate", first: true, predicate: ["columnsTemplate"], descendants: true, static: true }, { propertyName: "defaultRowTemplate", first: true, predicate: ["defaultRowTemplate"], descendants: true, static: true }, { propertyName: "defaultWrapperTemplate", first: true, predicate: ["defaultWrapperTemplate"], descendants: true, static: true }, { propertyName: "defaultFilterTemplate", first: true, predicate: ["defaultFilterTemplate"], descendants: true, static: true }, { propertyName: "pagination", first: true, predicate: ["pagination"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"dynamic-table\" #pagination=\"pagination\" [pagination]=\"loadData\" [page]=\"page\" [itemsPerPage]=\"itemsPerPage\" [updateTime]=\"updateTime\">\
|
|
139
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: DynamicTableComponent, selector: "dynamic-table", inputs: { label: "label", placeholder: "placeholder", dataLoader: "dataLoader", data: "data", page: "page", urlParam: "urlParam", parallelData: "parallelData", columns: "columns", showFilter: "showFilter", itemsPerPage: "itemsPerPage", updateTime: "updateTime", filterTime: "filterTime", maxPages: "maxPages", directionLinks: "directionLinks", boundaryLinks: "boundaryLinks", orderBy: "orderBy", orderDescending: "orderDescending", testId: "testId", titlePrefix: "titlePrefix" }, queries: [{ propertyName: "rowTemplate", first: true, predicate: ["rowTemplate"], descendants: true, static: true }, { propertyName: "wrapperTemplate", first: true, predicate: ["wrapperTemplate"], descendants: true, static: true }, { propertyName: "filterTemplate", first: true, predicate: ["filterTemplate"], descendants: true, static: true }, { propertyName: "templateDirectives", predicate: DynamicTableTemplateDirective }], viewQueries: [{ propertyName: "columnsTemplate", first: true, predicate: ["columnsTemplate"], descendants: true, static: true }, { propertyName: "defaultRowTemplate", first: true, predicate: ["defaultRowTemplate"], descendants: true, static: true }, { propertyName: "defaultWrapperTemplate", first: true, predicate: ["defaultWrapperTemplate"], descendants: true, static: true }, { propertyName: "defaultFilterTemplate", first: true, predicate: ["defaultFilterTemplate"], descendants: true, static: true }, { propertyName: "pagination", first: true, predicate: ["pagination"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"dynamic-table\" #pagination=\"pagination\" [pagination]=\"loadData\" [page]=\"page\" [itemsPerPage]=\"itemsPerPage\" [updateTime]=\"updateTime\">\n <ng-template #defaultFilterTemplate let-table>\n <div class=\"table-search\" *ngIf=\"table.showFilter\">\n <label *ngIf=\"label\" [attr.for]=\"tableId\">{{ label | translate }}</label>\n <input type=\"text\"\n class=\"form-control\"\n [attr.id]=\"tableId\"\n [attr.data-testid]=\"testId + '-filter-input'\"\n [placeholder]=\"placeholder | translate\"\n [ngModel]=\"table.filter\"\n (ngModelChange)=\"table.setFilter($event)\"/>\n </div>\n </ng-template>\n <ng-container [ngxTemplateOutlet]=\"filterTemplate || defaultFilterTemplate\" [context]=\"this\"></ng-container>\n <pagination-menu [urlParam]=\"urlParam\" [maxSize]=\"maxPages\" [directionLinks]=\"directionLinks\" [boundaryLinks]=\"boundaryLinks\"></pagination-menu>\n <div class=\"table-responsive\">\n <ng-template #columnTemplate let-context let-column=\"column\" let-template=\"template\">\n <ng-template #defaultTemplate let-column=\"column\" let-item=\"item\">\n <span>{{ item[column] == undefined || item[column] == null ? '-' : item[column] }}</span>\n </ng-template>\n <ng-template #pureTemplate>\n <ng-container [ngxTemplateOutlet]=\"template.ref\" [context]=\"context\"></ng-container>\n </ng-template>\n <td [ngClass]=\"'column-' + column\"\n [attr.data-testid]=\"testId + '-' + column + '-' + context.rowIndex\" *ngIf=\"!template || !template.pure; else pureTemplate\">\n <ng-container [ngxTemplateOutlet]=\"!template ? defaultTemplate : template.ref\" [context]=\"context\"></ng-container>\n </td>\n </ng-template>\n\n <ng-template #columnsTemplate let-context>\n <ng-container *ngFor=\"let column of cols\"\n [ngxTemplateOutlet]=\"columnTemplate\"\n [context]=\"context\"\n [additionalContext]=\"{\n template: templates[column],\n column: column\n }\"></ng-container>\n </ng-template>\n\n <ng-template #defaultRowTemplate let-context>\n <tr>\n <ng-container [ngxTemplateOutlet]=\"columnsTemplate\" [context]=\"context\"></ng-container>\n </tr>\n </ng-template>\n\n <ng-template #defaultWrapperTemplate>\n <table class=\"table table-striped\">\n <thead>\n <tr>\n <th *ngFor=\"let column of cols\" [ngClass]=\"'column-' + column\">\n <ng-template #defaultCol>\n <span>{{ realColumns[column].title | translate }}</span>\n </ng-template>\n <a *ngIf=\"realColumns[column].sort; else defaultCol\" (click)=\"setOrder(column)\">\n <span>{{ realColumns[column].title | translate }}</span>\n <i *ngIf=\"orderBy == column\"\n [icon]=\"orderDescending ? 'sort-desc' : 'sort-asc'\"\n [ngClass]=\"orderBy == column ? (orderDescending ? 'sort-desc': 'sort-asc') : ''\"></i>\n </a>\n </th>\n </tr>\n <tr *ngIf=\"hasQuery\">\n <th *ngFor=\"let column of cols\" [ngClass]=\"['column-' + column, 'filter-column']\">\n <ng-container *ngIf=\"realColumns[column].filter\">\n <input type=\"text\"\n class=\"form-control\"\n [attr.data-testid]=\"testId + '-filter-' + column\"\n [placeholder]=\"realColumns[column].title | translate\"\n [ngModel]=\"query[column]\"\n (ngModelChange)=\"updateQuery(column, $event)\"/>\n </ng-container>\n </th>\n </tr>\n </thead>\n <tbody>\n <ng-container *paginationItem=\"let context\"\n [ngxTemplateOutlet]=\"rowTemplate\"\n [context]=\"context\"\n [additionalContext]=\"this\"></ng-container>\n </tbody>\n </table>\n </ng-template>\n\n <ng-container [ngxTemplateOutlet]=\"wrapperTemplate || defaultWrapperTemplate\"\n [context]=\"this\"></ng-container>\n </div>\n <pagination-menu [urlParam]=\"urlParam\" [maxSize]=\"maxPages\" [directionLinks]=\"directionLinks\" [boundaryLinks]=\"boundaryLinks\"></pagination-menu>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.IconDirective, selector: "[icon]", inputs: ["icon", "activeIcon", "active"], outputs: ["activeChange"] }, { kind: "directive", type: i4.NgxTemplateOutletDirective, selector: "[ngxTemplateOutlet]", inputs: ["context", "additionalContext", "ngxTemplateOutlet"] }, { kind: "directive", type: i5.PaginationDirective, selector: "[pagination]", inputs: ["pagination", "page", "itemsPerPage", "updateTime", "waitFor"], outputs: ["pageChange", "onRefresh"], exportAs: ["pagination"] }, { kind: "directive", type: i6.PaginationItemDirective, selector: "[paginationItem]" }, { kind: "component", type: i7.PaginationMenuComponent, selector: "pagination-menu", inputs: ["maxSize", "urlParam", "directionLinks", "boundaryLinks"] }, { kind: "pipe", type: i8.TranslatePipe, name: "translate" }] }); }
|
|
140
140
|
}
|
|
141
141
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DynamicTableComponent, decorators: [{
|
|
142
142
|
type: Component,
|
|
143
|
-
args: [{ selector: "dynamic-table", template: "<div class=\"dynamic-table\" #pagination=\"pagination\" [pagination]=\"loadData\" [page]=\"page\" [itemsPerPage]=\"itemsPerPage\" [updateTime]=\"updateTime\">\
|
|
143
|
+
args: [{ selector: "dynamic-table", template: "<div class=\"dynamic-table\" #pagination=\"pagination\" [pagination]=\"loadData\" [page]=\"page\" [itemsPerPage]=\"itemsPerPage\" [updateTime]=\"updateTime\">\n <ng-template #defaultFilterTemplate let-table>\n <div class=\"table-search\" *ngIf=\"table.showFilter\">\n <label *ngIf=\"label\" [attr.for]=\"tableId\">{{ label | translate }}</label>\n <input type=\"text\"\n class=\"form-control\"\n [attr.id]=\"tableId\"\n [attr.data-testid]=\"testId + '-filter-input'\"\n [placeholder]=\"placeholder | translate\"\n [ngModel]=\"table.filter\"\n (ngModelChange)=\"table.setFilter($event)\"/>\n </div>\n </ng-template>\n <ng-container [ngxTemplateOutlet]=\"filterTemplate || defaultFilterTemplate\" [context]=\"this\"></ng-container>\n <pagination-menu [urlParam]=\"urlParam\" [maxSize]=\"maxPages\" [directionLinks]=\"directionLinks\" [boundaryLinks]=\"boundaryLinks\"></pagination-menu>\n <div class=\"table-responsive\">\n <ng-template #columnTemplate let-context let-column=\"column\" let-template=\"template\">\n <ng-template #defaultTemplate let-column=\"column\" let-item=\"item\">\n <span>{{ item[column] == undefined || item[column] == null ? '-' : item[column] }}</span>\n </ng-template>\n <ng-template #pureTemplate>\n <ng-container [ngxTemplateOutlet]=\"template.ref\" [context]=\"context\"></ng-container>\n </ng-template>\n <td [ngClass]=\"'column-' + column\"\n [attr.data-testid]=\"testId + '-' + column + '-' + context.rowIndex\" *ngIf=\"!template || !template.pure; else pureTemplate\">\n <ng-container [ngxTemplateOutlet]=\"!template ? defaultTemplate : template.ref\" [context]=\"context\"></ng-container>\n </td>\n </ng-template>\n\n <ng-template #columnsTemplate let-context>\n <ng-container *ngFor=\"let column of cols\"\n [ngxTemplateOutlet]=\"columnTemplate\"\n [context]=\"context\"\n [additionalContext]=\"{\n template: templates[column],\n column: column\n }\"></ng-container>\n </ng-template>\n\n <ng-template #defaultRowTemplate let-context>\n <tr>\n <ng-container [ngxTemplateOutlet]=\"columnsTemplate\" [context]=\"context\"></ng-container>\n </tr>\n </ng-template>\n\n <ng-template #defaultWrapperTemplate>\n <table class=\"table table-striped\">\n <thead>\n <tr>\n <th *ngFor=\"let column of cols\" [ngClass]=\"'column-' + column\">\n <ng-template #defaultCol>\n <span>{{ realColumns[column].title | translate }}</span>\n </ng-template>\n <a *ngIf=\"realColumns[column].sort; else defaultCol\" (click)=\"setOrder(column)\">\n <span>{{ realColumns[column].title | translate }}</span>\n <i *ngIf=\"orderBy == column\"\n [icon]=\"orderDescending ? 'sort-desc' : 'sort-asc'\"\n [ngClass]=\"orderBy == column ? (orderDescending ? 'sort-desc': 'sort-asc') : ''\"></i>\n </a>\n </th>\n </tr>\n <tr *ngIf=\"hasQuery\">\n <th *ngFor=\"let column of cols\" [ngClass]=\"['column-' + column, 'filter-column']\">\n <ng-container *ngIf=\"realColumns[column].filter\">\n <input type=\"text\"\n class=\"form-control\"\n [attr.data-testid]=\"testId + '-filter-' + column\"\n [placeholder]=\"realColumns[column].title | translate\"\n [ngModel]=\"query[column]\"\n (ngModelChange)=\"updateQuery(column, $event)\"/>\n </ng-container>\n </th>\n </tr>\n </thead>\n <tbody>\n <ng-container *paginationItem=\"let context\"\n [ngxTemplateOutlet]=\"rowTemplate\"\n [context]=\"context\"\n [additionalContext]=\"this\"></ng-container>\n </tbody>\n </table>\n </ng-template>\n\n <ng-container [ngxTemplateOutlet]=\"wrapperTemplate || defaultWrapperTemplate\"\n [context]=\"this\"></ng-container>\n </div>\n <pagination-menu [urlParam]=\"urlParam\" [maxSize]=\"maxPages\" [directionLinks]=\"directionLinks\" [boundaryLinks]=\"boundaryLinks\"></pagination-menu>\n</div>\n" }]
|
|
144
144
|
}], ctorParameters: () => [], propDecorators: { label: [{
|
|
145
145
|
type: Input
|
|
146
146
|
}], placeholder: [{
|
|
@@ -207,4 +207,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
207
207
|
type: ContentChildren,
|
|
208
208
|
args: [DynamicTableTemplateDirective]
|
|
209
209
|
}] } });
|
|
210
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy10YWJsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbmd4LXV0aWxzL2NvbXBvbmVudHMvZHluYW1pYy10YWJsZS9keW5hbWljLXRhYmxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9uZ3gtdXRpbHMvY29tcG9uZW50cy9keW5hbWljLXRhYmxlL2R5bmFtaWMtdGFibGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdILFNBQVMsRUFDVCxZQUFZLEVBQ1osZUFBZSxFQUNmLEtBQUssRUFFTCxTQUFTLEVBRVQsV0FBVyxFQUNYLFNBQVMsRUFDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBS0gscUJBQXFCLEVBR3hCLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ3JELE9BQU8sRUFBQyw2QkFBNkIsRUFBQyxNQUFNLG1EQUFtRCxDQUFDO0FBQ2hHLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLHVDQUF1QyxDQUFDO0FBQzFFLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7Ozs7OztBQU1yRCxNQUFNLE9BQU8scUJBQXFCO0lBOEI5QixJQUFJLEtBQUs7UUFDTCxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQztJQUN6RCxDQUFDO0lBNkJPLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBZSxFQUFFLENBQXdCLEVBQUUsQ0FBd0I7UUFDdEYsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUNwQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQ3BDLE9BQU8sV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVEO1FBbUZBLGFBQVEsR0FBRyxDQUFDLElBQVksRUFBRSxZQUFvQixFQUE0QixFQUFFO1lBQ3hFLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLElBQUksQ0FBQztZQUNyRCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2RyxDQUFDLENBQUM7UUFyRkUsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDO1FBQ3JDLElBQUksQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxPQUFPLEdBQUcsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2xDLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ2hCLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxXQUFXLEdBQUcsT0FBTyxDQUFDO1FBQzNCLElBQUksQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRCxrQkFBa0I7UUFDZCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQUUsU0FBUyxFQUFFLEVBQUU7WUFDbEUsSUFBSSxXQUFXLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO2dCQUN4QyxTQUFTLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRTtvQkFDOUIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLFNBQVMsQ0FBQztnQkFDL0IsQ0FBQyxDQUFDLENBQUM7Z0JBQ0gsT0FBTyxNQUFNLENBQUM7WUFDbEIsQ0FBQztZQUNELElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsSUFBSSxTQUFTLENBQUMsTUFBTSxDQUFDLE1BQU0sSUFBSSxDQUFDO2dCQUFFLE9BQU8sTUFBTSxDQUFDO1lBQzNGLE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEdBQUcsU0FBUyxDQUFDO1lBQ3JDLE9BQU8sTUFBTSxDQUFDO1FBQ2xCLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNYLENBQUM7SUFFRCxlQUFlO1FBQ1gsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztRQUMvRCxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxjQUFjLElBQUksSUFBSSxDQUFDLHFCQUFxQixDQUFDO0lBQzVFLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDOUIsSUFBSSxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDbEIsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxZQUFZLElBQUksRUFBRSxDQUFDO1lBQ25ELElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsRUFBRTtnQkFDaEYsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksTUFBTSxDQUFDLE1BQU0sSUFBSSxDQUFDO29CQUNuRCxPQUFPLE1BQU0sQ0FBQztnQkFDbEIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUMsS0FBSyxFQUFFLEdBQUcsSUFBSSxDQUFDLFdBQVcsSUFBSSxNQUFNLEVBQUUsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFDLENBQUM7Z0JBQ3hFLE9BQU8sTUFBTSxDQUFDO1lBQ2xCLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLEVBQUU7Z0JBQ2pELE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDM0IsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsS0FBSyxJQUFJLFdBQVcsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDO29CQUMvQyxDQUFDLENBQUMsRUFBQyxLQUFLLEVBQUUsR0FBRyxJQUFJLENBQUMsV0FBVyxJQUFJLEdBQUcsRUFBRSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUM7b0JBQ3BELENBQUMsQ0FBQyxLQUFLLENBQUM7Z0JBQ1osT0FBTyxNQUFNLENBQUM7WUFDbEIsQ0FBQyxFQUFFLEVBQW1CLENBQUMsQ0FBQztZQUN4QixJQUFJLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQzFDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2xGLENBQUM7UUFDRCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNwRSxJQUFJLE9BQU8sQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3RDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2xGLENBQUM7UUFDRCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxlQUFlO1lBQUUsT0FBTztRQUM1SCxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDbkIsQ0FBQztJQUVELE9BQU8sQ0FBQyxJQUFhO1FBQ2pCLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVTtZQUFFLE9BQU87UUFDN0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVELFNBQVMsQ0FBQyxNQUFjO1FBQ3BCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsSUFBSSxHQUFHLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQsUUFBUSxDQUFDLE1BQWM7UUFDbkIsSUFBSSxDQUFDLGVBQWUsR0FBRyxNQUFNLElBQUksSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUM7UUFDdkUsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7UUFDdEIsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFFRCxXQUFXLENBQUMsR0FBVyxFQUFFLEtBQWE7UUFDbEMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ1QsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzNCLENBQUM7YUFBTSxDQUFDO1lBQ0osSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUM7UUFDNUIsQ0FBQztRQUNELElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsSUFBSSxHQUFHLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBT08sYUFBYSxDQUFDLElBQVksRUFBRSxXQUFtQixFQUFFLE9BQWUsRUFBRSxlQUF3QixFQUFFLE1BQWM7UUFDOUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNiLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQztnQkFDbkIsS0FBSyxFQUFFLENBQUM7Z0JBQ1IsS0FBSyxFQUFFLEVBQUU7YUFDWixDQUFDLENBQUM7UUFDUCxDQUFDO1FBQ0QsTUFBTSxPQUFPLEdBQStCLGVBQWU7WUFDdkQsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMscUJBQXFCLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ3hELENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLHFCQUFxQixDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzdELE1BQU0sSUFBSSxHQUFHLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxHQUFHLFdBQVcsQ0FBQztRQUN0QyxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUNwQyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxVQUFVLEdBQUcsSUFBSSxDQUFDLENBQUM7UUFDeEQsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFlBQVksSUFBSSxFQUFFLENBQUM7UUFDN0MsSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUU7WUFDbEMsT0FBTyxJQUFJLHFCQUFxQixDQUFDLElBQUksRUFBRSxZQUFZLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDdkYsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLFdBQVcsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNwRCxNQUFNLFFBQVEsR0FBRyxJQUFJLE1BQU0sQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDMUMsSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDaEQsQ0FBQztRQUNELE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztRQUM1RixLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFO1lBQzFCLE9BQU8sQ0FBQyxLQUFLLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUM5QixDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQztZQUNuQixLQUFLLEVBQUUsVUFBVTtZQUNqQixLQUFLLEVBQUUsS0FBSztTQUNmLENBQUMsQ0FBQztJQUNQLENBQUM7K0dBeExRLHFCQUFxQjttR0FBckIscUJBQXFCLHU0QkEwRGIsNkJBQTZCLHdvQkN6RmxELDB0S0F3RkE7OzRGRHpEYSxxQkFBcUI7a0JBSmpDLFNBQVM7K0JBQ0ksZUFBZTt3REFLaEIsS0FBSztzQkFBYixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFlTixXQUFXO3NCQURWLFlBQVk7dUJBQUMsYUFBYSxFQUFFLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBQztnQkFJM0MsZUFBZTtzQkFEZCxZQUFZO3VCQUFDLGlCQUFpQixFQUFFLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBQztnQkFJL0MsY0FBYztzQkFEYixZQUFZO3VCQUFDLGdCQUFnQixFQUFFLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBQztnQkFJOUMsZUFBZTtzQkFEZCxTQUFTO3VCQUFDLGlCQUFpQixFQUFFLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBQztnQkFJNUMsa0JBQWtCO3NCQURqQixTQUFTO3VCQUFDLG9CQUFvQixFQUFFLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBQztnQkFJL0Msc0JBQXNCO3NCQURyQixTQUFTO3VCQUFDLHdCQUF3QixFQUFFLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBQztnQkFJbkQscUJBQXFCO3NCQURwQixTQUFTO3VCQUFDLHVCQUF1QixFQUFFLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBQztnQkFJeEMsVUFBVTtzQkFEbkIsU0FBUzt1QkFBQyxZQUFZO2dCQUliLGtCQUFrQjtzQkFEM0IsZUFBZTt1QkFBQyw2QkFBNkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gICAgQWZ0ZXJDb250ZW50SW5pdCxcclxuICAgIEFmdGVyVmlld0luaXQsXHJcbiAgICBDb21wb25lbnQsXHJcbiAgICBDb250ZW50Q2hpbGQsXHJcbiAgICBDb250ZW50Q2hpbGRyZW4sXHJcbiAgICBJbnB1dCxcclxuICAgIE9uQ2hhbmdlcyxcclxuICAgIFF1ZXJ5TGlzdCxcclxuICAgIFNpbXBsZUNoYW5nZXMsXHJcbiAgICBUZW1wbGF0ZVJlZixcclxuICAgIFZpZXdDaGlsZFxyXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7XHJcbiAgICBJUGFnaW5hdGlvbkRhdGEsXHJcbiAgICBJVGFibGVDb2x1bW5zLFxyXG4gICAgSVRhYmxlRGF0YVF1ZXJ5LFxyXG4gICAgSVRhYmxlVGVtcGxhdGVzLFxyXG4gICAgUGFnaW5hdGlvbkl0ZW1Db250ZXh0LFxyXG4gICAgVGFibGVDb2x1bW5zLFxyXG4gICAgVGFibGVEYXRhTG9hZGVyXHJcbn0gZnJvbSBcIi4uLy4uL2NvbW1vbi10eXBlc1wiO1xyXG5pbXBvcnQge09iamVjdFV0aWxzfSBmcm9tIFwiLi4vLi4vdXRpbHMvb2JqZWN0LnV0aWxzXCI7XHJcbmltcG9ydCB7RHluYW1pY1RhYmxlVGVtcGxhdGVEaXJlY3RpdmV9IGZyb20gXCIuLi8uLi9kaXJlY3RpdmVzL2R5bmFtaWMtdGFibGUtdGVtcGxhdGUuZGlyZWN0aXZlXCI7XHJcbmltcG9ydCB7UGFnaW5hdGlvbkRpcmVjdGl2ZX0gZnJvbSBcIi4uLy4uL2RpcmVjdGl2ZXMvcGFnaW5hdGlvbi5kaXJlY3RpdmVcIjtcclxuaW1wb3J0IHtVbmlxdWVVdGlsc30gZnJvbSBcIi4uLy4uL3V0aWxzL3VuaXF1ZS51dGlsc1wiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogXCJkeW5hbWljLXRhYmxlXCIsXHJcbiAgICB0ZW1wbGF0ZVVybDogXCIuL2R5bmFtaWMtdGFibGUuY29tcG9uZW50Lmh0bWxcIixcclxufSlcclxuZXhwb3J0IGNsYXNzIER5bmFtaWNUYWJsZUNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQsIEFmdGVyVmlld0luaXQsIE9uQ2hhbmdlcyB7XHJcblxyXG4gICAgQElucHV0KCkgbGFiZWw6IHN0cmluZztcclxuICAgIEBJbnB1dCgpIHBsYWNlaG9sZGVyOiBzdHJpbmc7XHJcbiAgICBASW5wdXQoKSBkYXRhTG9hZGVyOiBUYWJsZURhdGFMb2FkZXI7XHJcbiAgICBASW5wdXQoKSBkYXRhOiBhbnlbXTtcclxuICAgIEBJbnB1dCgpIHBhZ2U6IG51bWJlcjtcclxuICAgIEBJbnB1dCgpIHVybFBhcmFtOiBzdHJpbmc7XHJcbiAgICBASW5wdXQoKSBwYXJhbGxlbERhdGE6IGFueVtdO1xyXG4gICAgQElucHV0KCkgY29sdW1uczogVGFibGVDb2x1bW5zO1xyXG4gICAgQElucHV0KCkgc2hvd0ZpbHRlcjogYm9vbGVhbjtcclxuICAgIEBJbnB1dCgpIGl0ZW1zUGVyUGFnZTogbnVtYmVyO1xyXG4gICAgQElucHV0KCkgdXBkYXRlVGltZTogbnVtYmVyO1xyXG4gICAgQElucHV0KCkgZmlsdGVyVGltZTogbnVtYmVyO1xyXG4gICAgQElucHV0KCkgbWF4UGFnZXM6IG51bWJlcjtcclxuICAgIEBJbnB1dCgpIGRpcmVjdGlvbkxpbmtzOiBib29sZWFuO1xyXG4gICAgQElucHV0KCkgYm91bmRhcnlMaW5rczogYm9vbGVhbjtcclxuICAgIEBJbnB1dCgpIG9yZGVyQnk6IHN0cmluZztcclxuICAgIEBJbnB1dCgpIG9yZGVyRGVzY2VuZGluZzogYm9vbGVhbjtcclxuICAgIEBJbnB1dCgpIHRlc3RJZDogc3RyaW5nO1xyXG4gICAgQElucHV0KCkgdGl0bGVQcmVmaXg6IHN0cmluZztcclxuXHJcbiAgICB0YWJsZUlkOiBzdHJpbmc7XHJcbiAgICB0ZW1wbGF0ZXM6IElUYWJsZVRlbXBsYXRlcztcclxuICAgIGZpbHRlcjogc3RyaW5nO1xyXG4gICAgcXVlcnk6IElUYWJsZURhdGFRdWVyeTtcclxuICAgIGhhc1F1ZXJ5OiBib29sZWFuO1xyXG4gICAgcmVhbENvbHVtbnM6IElUYWJsZUNvbHVtbnM7XHJcbiAgICBjb2xzOiBzdHJpbmdbXTtcclxuXHJcbiAgICBnZXQgaXRlbXMoKTogYW55W10ge1xyXG4gICAgICAgIHJldHVybiAhdGhpcy5wYWdpbmF0aW9uID8gW10gOiB0aGlzLnBhZ2luYXRpb24uaXRlbXM7XHJcbiAgICB9XHJcblxyXG4gICAgQENvbnRlbnRDaGlsZChcInJvd1RlbXBsYXRlXCIsIHtzdGF0aWM6IHRydWV9KVxyXG4gICAgcm93VGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XHJcblxyXG4gICAgQENvbnRlbnRDaGlsZChcIndyYXBwZXJUZW1wbGF0ZVwiLCB7c3RhdGljOiB0cnVlfSlcclxuICAgIHdyYXBwZXJUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcclxuXHJcbiAgICBAQ29udGVudENoaWxkKFwiZmlsdGVyVGVtcGxhdGVcIiwge3N0YXRpYzogdHJ1ZX0pXHJcbiAgICBmaWx0ZXJUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcclxuXHJcbiAgICBAVmlld0NoaWxkKFwiY29sdW1uc1RlbXBsYXRlXCIsIHtzdGF0aWM6IHRydWV9KVxyXG4gICAgY29sdW1uc1RlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG5cclxuICAgIEBWaWV3Q2hpbGQoXCJkZWZhdWx0Um93VGVtcGxhdGVcIiwge3N0YXRpYzogdHJ1ZX0pXHJcbiAgICBkZWZhdWx0Um93VGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XHJcblxyXG4gICAgQFZpZXdDaGlsZChcImRlZmF1bHRXcmFwcGVyVGVtcGxhdGVcIiwge3N0YXRpYzogdHJ1ZX0pXHJcbiAgICBkZWZhdWx0V3JhcHBlclRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG5cclxuICAgIEBWaWV3Q2hpbGQoXCJkZWZhdWx0RmlsdGVyVGVtcGxhdGVcIiwge3N0YXRpYzogdHJ1ZX0pXHJcbiAgICBkZWZhdWx0RmlsdGVyVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XHJcblxyXG4gICAgQFZpZXdDaGlsZChcInBhZ2luYXRpb25cIilcclxuICAgIHByb3RlY3RlZCBwYWdpbmF0aW9uOiBQYWdpbmF0aW9uRGlyZWN0aXZlO1xyXG5cclxuICAgIEBDb250ZW50Q2hpbGRyZW4oRHluYW1pY1RhYmxlVGVtcGxhdGVEaXJlY3RpdmUpXHJcbiAgICBwcm90ZWN0ZWQgdGVtcGxhdGVEaXJlY3RpdmVzOiBRdWVyeUxpc3Q8RHluYW1pY1RhYmxlVGVtcGxhdGVEaXJlY3RpdmU+O1xyXG5cclxuICAgIHByaXZhdGUgc3RhdGljIGNvbXBhcmUob3JkZXJCeTogc3RyaW5nLCBhOiBQYWdpbmF0aW9uSXRlbUNvbnRleHQsIGI6IFBhZ2luYXRpb25JdGVtQ29udGV4dCk6IG51bWJlciB7XHJcbiAgICAgICAgYSA9IGEuaXRlbSA/IGEuaXRlbVtvcmRlckJ5XSA6IG51bGw7XHJcbiAgICAgICAgYiA9IGIuaXRlbSA/IGIuaXRlbVtvcmRlckJ5XSA6IG51bGw7XHJcbiAgICAgICAgcmV0dXJuIE9iamVjdFV0aWxzLmNvbXBhcmUoYSwgYik7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3RydWN0b3IoKSB7XHJcbiAgICAgICAgdGhpcy5kYXRhTG9hZGVyID0gdGhpcy5sb2FkTG9jYWxEYXRhO1xyXG4gICAgICAgIHRoaXMucGxhY2Vob2xkZXIgPSBcIlwiO1xyXG4gICAgICAgIHRoaXMudGFibGVJZCA9IFVuaXF1ZVV0aWxzLnV1aWQoKTtcclxuICAgICAgICB0aGlzLnRlbXBsYXRlcyA9IHt9O1xyXG4gICAgICAgIHRoaXMuZmlsdGVyID0gXCJcIjtcclxuICAgICAgICB0aGlzLnF1ZXJ5ID0ge307XHJcbiAgICAgICAgdGhpcy5oYXNRdWVyeSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMudGVzdElkID0gXCJ0YWJsZVwiO1xyXG4gICAgICAgIHRoaXMudGl0bGVQcmVmaXggPSBcImxhYmVsXCI7XHJcbiAgICAgICAgdGhpcy5yZWFsQ29sdW1ucyA9IHt9O1xyXG4gICAgfVxyXG5cclxuICAgIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnRlbXBsYXRlcyA9IHRoaXMudGVtcGxhdGVEaXJlY3RpdmVzLnJlZHVjZSgocmVzdWx0LCBkaXJlY3RpdmUpID0+IHtcclxuICAgICAgICAgICAgaWYgKE9iamVjdFV0aWxzLmlzQXJyYXkoZGlyZWN0aXZlLmNvbHVtbikpIHtcclxuICAgICAgICAgICAgICAgIGRpcmVjdGl2ZS5jb2x1bW4uZm9yRWFjaChjb2x1bW4gPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdFtjb2x1bW5dID0gZGlyZWN0aXZlO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmICghT2JqZWN0VXRpbHMuaXNTdHJpbmcoZGlyZWN0aXZlLmNvbHVtbikgfHwgZGlyZWN0aXZlLmNvbHVtbi5sZW5ndGggPT0gMCkgcmV0dXJuIHJlc3VsdDtcclxuICAgICAgICAgICAgcmVzdWx0W2RpcmVjdGl2ZS5jb2x1bW5dID0gZGlyZWN0aXZlO1xyXG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgICAgIH0sIHt9KTtcclxuICAgIH1cclxuXHJcbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5yb3dUZW1wbGF0ZSA9IHRoaXMucm93VGVtcGxhdGUgfHwgdGhpcy5kZWZhdWx0Um93VGVtcGxhdGU7XHJcbiAgICAgICAgdGhpcy5maWx0ZXJUZW1wbGF0ZSA9IHRoaXMuZmlsdGVyVGVtcGxhdGUgfHwgdGhpcy5kZWZhdWx0RmlsdGVyVGVtcGxhdGU7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgICAgIGlmIChjaGFuZ2VzLmNvbHVtbnMpIHtcclxuICAgICAgICAgICAgY29uc3QgY29sdW1ucyA9IGNoYW5nZXMuY29sdW1ucy5jdXJyZW50VmFsdWUgfHwgW107XHJcbiAgICAgICAgICAgIHRoaXMucmVhbENvbHVtbnMgPSBPYmplY3RVdGlscy5pc0FycmF5KGNvbHVtbnMpID8gY29sdW1ucy5yZWR1Y2UoKHJlc3VsdCwgY29sdW1uKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoIU9iamVjdFV0aWxzLmlzU3RyaW5nKGNvbHVtbikgfHwgY29sdW1uLmxlbmd0aCA9PSAwKVxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICAgICAgICAgICAgICByZXN1bHRbY29sdW1uXSA9IHt0aXRsZTogYCR7dGhpcy50aXRsZVByZWZpeH0uJHtjb2x1bW59YCwgc29ydDogY29sdW1ufTtcclxuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICAgICAgICAgIH0sIHt9KSA6IE9iamVjdC5rZXlzKGNvbHVtbnMpLnJlZHVjZSgocmVzdWx0LCBrZXkpID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gY29sdW1uc1trZXldO1xyXG4gICAgICAgICAgICAgICAgcmVzdWx0W2tleV0gPSAhdmFsdWUgfHwgT2JqZWN0VXRpbHMuaXNTdHJpbmcodmFsdWUpXHJcbiAgICAgICAgICAgICAgICAgICAgPyB7dGl0bGU6IGAke3RoaXMudGl0bGVQcmVmaXh9LiR7a2V5fWAsIHNvcnQ6IHZhbHVlfVxyXG4gICAgICAgICAgICAgICAgICAgIDogdmFsdWU7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgICAgICAgICB9LCB7fSBhcyBJVGFibGVDb2x1bW5zKTtcclxuICAgICAgICAgICAgdGhpcy5jb2xzID0gT2JqZWN0LmtleXModGhpcy5yZWFsQ29sdW1ucyk7XHJcbiAgICAgICAgICAgIHRoaXMub3JkZXJCeSA9IHRoaXMub3JkZXJCeSBpbiB0aGlzLnJlYWxDb2x1bW5zID8gdGhpcy5vcmRlckJ5IDogdGhpcy5jb2xzWzBdO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmhhc1F1ZXJ5ID0gdGhpcy5jb2xzLnNvbWUoY29sID0+IHRoaXMucmVhbENvbHVtbnNbY29sXS5maWx0ZXIpO1xyXG4gICAgICAgIGlmIChjaGFuZ2VzLm9yZGVyQnkgJiYgdGhpcy5yZWFsQ29sdW1ucykge1xyXG4gICAgICAgICAgICB0aGlzLm9yZGVyQnkgPSB0aGlzLm9yZGVyQnkgaW4gdGhpcy5yZWFsQ29sdW1ucyA/IHRoaXMub3JkZXJCeSA6IHRoaXMuY29sc1swXTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKCFjaGFuZ2VzLmRhdGEgJiYgIWNoYW5nZXMucGFyYWxsZWxEYXRhICYmICFjaGFuZ2VzLml0ZW1zUGVyUGFnZSAmJiAhY2hhbmdlcy5vcmRlckJ5ICYmICFjaGFuZ2VzLm9yZGVyRGVzY2VuZGluZykgcmV0dXJuO1xyXG4gICAgICAgIHRoaXMucmVmcmVzaCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHJlZnJlc2godGltZT86IG51bWJlcik6IHZvaWQge1xyXG4gICAgICAgIGlmICghdGhpcy5wYWdpbmF0aW9uKSByZXR1cm47XHJcbiAgICAgICAgdGhpcy5wYWdpbmF0aW9uLnJlZnJlc2godGltZSk7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0RmlsdGVyKGZpbHRlcjogc3RyaW5nKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5maWx0ZXIgPSBmaWx0ZXI7XHJcbiAgICAgICAgdGhpcy5yZWZyZXNoKHRoaXMuZmlsdGVyVGltZSA/PyAzMDApO1xyXG4gICAgfVxyXG5cclxuICAgIHNldE9yZGVyKGNvbHVtbjogc3RyaW5nKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5vcmRlckRlc2NlbmRpbmcgPSBjb2x1bW4gPT0gdGhpcy5vcmRlckJ5ICYmICF0aGlzLm9yZGVyRGVzY2VuZGluZztcclxuICAgICAgICB0aGlzLm9yZGVyQnkgPSBjb2x1bW47XHJcbiAgICAgICAgdGhpcy5yZWZyZXNoKCk7XHJcbiAgICB9XHJcblxyXG4gICAgdXBkYXRlUXVlcnkoY29sOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgICAgICBpZiAoIXZhbHVlKSB7XHJcbiAgICAgICAgICAgIGRlbGV0ZSB0aGlzLnF1ZXJ5W2NvbF07XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5xdWVyeVtjb2xdID0gdmFsdWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMucmVmcmVzaCh0aGlzLmZpbHRlclRpbWUgPz8gMzAwKTtcclxuICAgIH1cclxuXHJcbiAgICBsb2FkRGF0YSA9IChwYWdlOiBudW1iZXIsIGl0ZW1zUGVyUGFnZTogbnVtYmVyKTogUHJvbWlzZTxJUGFnaW5hdGlvbkRhdGE+ID0+IHtcclxuICAgICAgICBjb25zdCBvcmRlckJ5ID0gdGhpcy5yZWFsQ29sdW1uc1t0aGlzLm9yZGVyQnldPy5zb3J0O1xyXG4gICAgICAgIHJldHVybiB0aGlzLmRhdGFMb2FkZXIocGFnZSwgaXRlbXNQZXJQYWdlLCBvcmRlckJ5LCB0aGlzLm9yZGVyRGVzY2VuZGluZywgdGhpcy5maWx0ZXIsIHRoaXMucXVlcnkpO1xyXG4gICAgfTtcclxuXHJcbiAgICBwcml2YXRlIGxvYWRMb2NhbERhdGEocGFnZTogbnVtYmVyLCByb3dzUGVyUGFnZTogbnVtYmVyLCBvcmRlckJ5OiBzdHJpbmcsIG9yZGVyRGVzY2VuZGluZzogYm9vbGVhbiwgZmlsdGVyOiBzdHJpbmcpOiBQcm9taXNlPElQYWdpbmF0aW9uRGF0YT4ge1xyXG4gICAgICAgIGlmICghdGhpcy5kYXRhKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoe1xyXG4gICAgICAgICAgICAgICAgdG90YWw6IDAsXHJcbiAgICAgICAgICAgICAgICBpdGVtczogW11cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IGNvbXBhcmU6IChhOiBhbnksIGI6IGFueSkgPT4gbnVtYmVyID0gb3JkZXJEZXNjZW5kaW5nXHJcbiAgICAgICAgICAgID8gKGEsIGIpID0+IER5bmFtaWNUYWJsZUNvbXBvbmVudC5jb21wYXJlKG9yZGVyQnksIGIsIGEpXHJcbiAgICAgICAgICAgIDogKGEsIGIpID0+IER5bmFtaWNUYWJsZUNvbXBvbmVudC5jb21wYXJlKG9yZGVyQnksIGEsIGIpO1xyXG4gICAgICAgIGNvbnN0IGZyb20gPSAocGFnZSAtIDEpICogcm93c1BlclBhZ2U7XHJcbiAgICAgICAgY29uc3QgZGF0YUxlbmd0aCA9IHRoaXMuZGF0YS5sZW5ndGg7XHJcbiAgICAgICAgY29uc3QgbGVuZ3RoID0gTWF0aC5taW4ocm93c1BlclBhZ2UsIGRhdGFMZW5ndGggLSBmcm9tKTtcclxuICAgICAgICBjb25zdCBwYXJhbGxlbERhdGEgPSB0aGlzLnBhcmFsbGVsRGF0YSB8fCBbXTtcclxuICAgICAgICBsZXQgZGF0YSA9IHRoaXMuZGF0YS5tYXAoKGl0ZW0sIGl4KSA9PiB7XHJcbiAgICAgICAgICAgIHJldHVybiBuZXcgUGFnaW5hdGlvbkl0ZW1Db250ZXh0KGl0ZW0sIHBhcmFsbGVsRGF0YVtpeF0gfHwge30sIGRhdGFMZW5ndGgsIGl4LCBpeCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgaWYgKE9iamVjdFV0aWxzLmlzU3RyaW5nKGZpbHRlcikgJiYgZmlsdGVyLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgY29uc3QgZmlsdGVyUnggPSBuZXcgUmVnRXhwKGZpbHRlciwgXCJnaVwiKTtcclxuICAgICAgICAgICAgZGF0YSA9IGRhdGEuZmlsdGVyKGMgPT4gYy5maWx0ZXIoZmlsdGVyUngpKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgaXRlbXMgPSBvcmRlckJ5ID8gZGF0YS5zb3J0KGNvbXBhcmUpLnNwbGljZShmcm9tLCBsZW5ndGgpIDogZGF0YS5zcGxpY2UoZnJvbSwgbGVuZ3RoKTtcclxuICAgICAgICBpdGVtcy5mb3JFYWNoKChjb250ZXh0LCBpeCkgPT4ge1xyXG4gICAgICAgICAgICBjb250ZXh0LmluZGV4ID0gZnJvbSArIGl4O1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoe1xyXG4gICAgICAgICAgICB0b3RhbDogZGF0YUxlbmd0aCxcclxuICAgICAgICAgICAgaXRlbXM6IGl0ZW1zXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImR5bmFtaWMtdGFibGVcIiAjcGFnaW5hdGlvbj1cInBhZ2luYXRpb25cIiBbcGFnaW5hdGlvbl09XCJsb2FkRGF0YVwiIFtwYWdlXT1cInBhZ2VcIiBbaXRlbXNQZXJQYWdlXT1cIml0ZW1zUGVyUGFnZVwiIFt1cGRhdGVUaW1lXT1cInVwZGF0ZVRpbWVcIj5cclxuICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdEZpbHRlclRlbXBsYXRlIGxldC10YWJsZT5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidGFibGUtc2VhcmNoXCIgKm5nSWY9XCJ0YWJsZS5zaG93RmlsdGVyXCI+XHJcbiAgICAgICAgICAgIDxsYWJlbCAqbmdJZj1cImxhYmVsXCIgW2F0dHIuZm9yXT1cInRhYmxlSWRcIj57eyBsYWJlbCB8IHRyYW5zbGF0ZSB9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICAgICBbYXR0ci5pZF09XCJ0YWJsZUlkXCJcclxuICAgICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtdGVzdGlkXT1cInRlc3RJZCArICctZmlsdGVyLWlucHV0J1wiXHJcbiAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXIgfCB0cmFuc2xhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgW25nTW9kZWxdPVwidGFibGUuZmlsdGVyXCJcclxuICAgICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInRhYmxlLnNldEZpbHRlcigkZXZlbnQpXCIvPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIDxuZy1jb250YWluZXIgW25neFRlbXBsYXRlT3V0bGV0XT1cImZpbHRlclRlbXBsYXRlIHx8IGRlZmF1bHRGaWx0ZXJUZW1wbGF0ZVwiIFtjb250ZXh0XT1cInRoaXNcIj48L25nLWNvbnRhaW5lcj5cclxuICAgIDxwYWdpbmF0aW9uLW1lbnUgW3VybFBhcmFtXT1cInVybFBhcmFtXCIgW21heFNpemVdPVwibWF4UGFnZXNcIiBbZGlyZWN0aW9uTGlua3NdPVwiZGlyZWN0aW9uTGlua3NcIiBbYm91bmRhcnlMaW5rc109XCJib3VuZGFyeUxpbmtzXCI+PC9wYWdpbmF0aW9uLW1lbnU+XHJcbiAgICA8ZGl2IGNsYXNzPVwidGFibGUtcmVzcG9uc2l2ZVwiPlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjY29sdW1uVGVtcGxhdGUgbGV0LWNvbnRleHQgbGV0LWNvbHVtbj1cImNvbHVtblwiIGxldC10ZW1wbGF0ZT1cInRlbXBsYXRlXCI+XHJcbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdFRlbXBsYXRlIGxldC1jb2x1bW49XCJjb2x1bW5cIiBsZXQtaXRlbT1cIml0ZW1cIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPnt7IGl0ZW1bY29sdW1uXSA9PSB1bmRlZmluZWQgfHwgaXRlbVtjb2x1bW5dID09IG51bGwgPyAnLScgOiBpdGVtW2NvbHVtbl0gfX08L3NwYW4+XHJcbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjcHVyZVRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmd4VGVtcGxhdGVPdXRsZXRdPVwidGVtcGxhdGUucmVmXCIgW2NvbnRleHRdPVwiY29udGV4dFwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICA8dGQgW25nQ2xhc3NdPVwiJ2NvbHVtbi0nICsgY29sdW1uXCJcclxuICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtdGVzdGlkXT1cInRlc3RJZCArICctJyArIGNvbHVtbiArICctJyArIGNvbnRleHQucm93SW5kZXhcIiAqbmdJZj1cIiF0ZW1wbGF0ZSB8fCAhdGVtcGxhdGUucHVyZTsgZWxzZSBwdXJlVGVtcGxhdGVcIj5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgW25neFRlbXBsYXRlT3V0bGV0XT1cIiF0ZW1wbGF0ZSA/IGRlZmF1bHRUZW1wbGF0ZSA6IHRlbXBsYXRlLnJlZlwiIFtjb250ZXh0XT1cImNvbnRleHRcIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICAgICAgICA8bmctdGVtcGxhdGUgI2NvbHVtbnNUZW1wbGF0ZSBsZXQtY29udGV4dD5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIGNvbHNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ3hUZW1wbGF0ZU91dGxldF09XCJjb2x1bW5UZW1wbGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2NvbnRleHRdPVwiY29udGV4dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2FkZGl0aW9uYWxDb250ZXh0XT1cIntcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlbXBsYXRlOiB0ZW1wbGF0ZXNbY29sdW1uXSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbjogY29sdW1uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdFJvd1RlbXBsYXRlIGxldC1jb250ZXh0PlxyXG4gICAgICAgICAgICA8dHI+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ3hUZW1wbGF0ZU91dGxldF09XCJjb2x1bW5zVGVtcGxhdGVcIiBbY29udGV4dF09XCJjb250ZXh0XCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICAgICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0V3JhcHBlclRlbXBsYXRlPlxyXG4gICAgICAgICAgICA8dGFibGUgY2xhc3M9XCJ0YWJsZSB0YWJsZS1zdHJpcGVkXCI+XHJcbiAgICAgICAgICAgICAgICA8dGhlYWQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPHRyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGggKm5nRm9yPVwibGV0IGNvbHVtbiBvZiBjb2xzXCIgW25nQ2xhc3NdPVwiJ2NvbHVtbi0nICsgY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRDb2w+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgcmVhbENvbHVtbnNbY29sdW1uXS50aXRsZSB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSAqbmdJZj1cInJlYWxDb2x1bW5zW2NvbHVtbl0uc29ydDsgZWxzZSBkZWZhdWx0Q29sXCIgKGNsaWNrKT1cInNldE9yZGVyKGNvbHVtbilcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj57eyByZWFsQ29sdW1uc1tjb2x1bW5dLnRpdGxlIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpICpuZ0lmPVwib3JkZXJCeSA9PSBjb2x1bW5cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpY29uXT1cIm9yZGVyRGVzY2VuZGluZyA/ICdzb3J0LWRlc2MnIDogJ3NvcnQtYXNjJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwib3JkZXJCeSA9PSBjb2x1bW4gPyAob3JkZXJEZXNjZW5kaW5nID8gJ3NvcnQtZGVzYyc6ICdzb3J0LWFzYycpIDogJydcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgICAgICAgICA8dHIgKm5nSWY9XCJoYXNRdWVyeVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGggKm5nRm9yPVwibGV0IGNvbHVtbiBvZiBjb2xzXCIgW25nQ2xhc3NdPVwiWydjb2x1bW4tJyArIGNvbHVtbiwgJ2ZpbHRlci1jb2x1bW4nXVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInJlYWxDb2x1bW5zW2NvbHVtbl0uZmlsdGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5kYXRhLXRlc3RpZF09XCJ0ZXN0SWQgKyAnLWZpbHRlci0nICsgY29sdW1uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInJlYWxDb2x1bW5zW2NvbHVtbl0udGl0bGUgfCB0cmFuc2xhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdNb2RlbF09XCJxdWVyeVtjb2x1bW5dXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwidXBkYXRlUXVlcnkoY29sdW1uLCAkZXZlbnQpXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgICAgIDwvdGhlYWQ+XHJcbiAgICAgICAgICAgICAgICA8dGJvZHk+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqcGFnaW5hdGlvbkl0ZW09XCJsZXQgY29udGV4dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmd4VGVtcGxhdGVPdXRsZXRdPVwicm93VGVtcGxhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NvbnRleHRdPVwiY29udGV4dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYWRkaXRpb25hbENvbnRleHRdPVwidGhpc1wiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgPC90Ym9keT5cclxuICAgICAgICAgICAgPC90YWJsZT5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICAgICAgICA8bmctY29udGFpbmVyIFtuZ3hUZW1wbGF0ZU91dGxldF09XCJ3cmFwcGVyVGVtcGxhdGUgfHwgZGVmYXVsdFdyYXBwZXJUZW1wbGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbY29udGV4dF09XCJ0aGlzXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxwYWdpbmF0aW9uLW1lbnUgW3VybFBhcmFtXT1cInVybFBhcmFtXCIgW21heFNpemVdPVwibWF4UGFnZXNcIiBbZGlyZWN0aW9uTGlua3NdPVwiZGlyZWN0aW9uTGlua3NcIiBbYm91bmRhcnlMaW5rc109XCJib3VuZGFyeUxpbmtzXCI+PC9wYWdpbmF0aW9uLW1lbnU+XHJcbjwvZGl2PlxyXG4iXX0=
|
|
210
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy10YWJsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbmd4LXV0aWxzL2NvbXBvbmVudHMvZHluYW1pYy10YWJsZS9keW5hbWljLXRhYmxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9uZ3gtdXRpbHMvY29tcG9uZW50cy9keW5hbWljLXRhYmxlL2R5bmFtaWMtdGFibGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdILFNBQVMsRUFDVCxZQUFZLEVBQ1osZUFBZSxFQUNmLEtBQUssRUFFTCxTQUFTLEVBRVQsV0FBVyxFQUNYLFNBQVMsRUFDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBS0gscUJBQXFCLEVBR3hCLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ3JELE9BQU8sRUFBQyw2QkFBNkIsRUFBQyxNQUFNLG1EQUFtRCxDQUFDO0FBQ2hHLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLHVDQUF1QyxDQUFDO0FBQzFFLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7Ozs7OztBQU1yRCxNQUFNLE9BQU8scUJBQXFCO0lBOEI5QixJQUFJLEtBQUs7UUFDTCxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQztJQUN6RCxDQUFDO0lBNkJPLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBZSxFQUFFLENBQXdCLEVBQUUsQ0FBd0I7UUFDdEYsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztR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O3NCQURwQixTQUFTO3VCQUFDLHVCQUF1QixFQUFFLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBQztnQkFJeEMsVUFBVTtzQkFEbkIsU0FBUzt1QkFBQyxZQUFZO2dCQUliLGtCQUFrQjtzQkFEM0IsZUFBZTt1QkFBQyw2QkFBNkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyQ29udGVudEluaXQsXG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkLFxuICAgIENvbnRlbnRDaGlsZHJlbixcbiAgICBJbnB1dCxcbiAgICBPbkNoYW5nZXMsXG4gICAgUXVlcnlMaXN0LFxuICAgIFNpbXBsZUNoYW5nZXMsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0NoaWxkXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQge1xuICAgIElQYWdpbmF0aW9uRGF0YSxcbiAgICBJVGFibGVDb2x1bW5zLFxuICAgIElUYWJsZURhdGFRdWVyeSxcbiAgICBJVGFibGVUZW1wbGF0ZXMsXG4gICAgUGFnaW5hdGlvbkl0ZW1Db250ZXh0LFxuICAgIFRhYmxlQ29sdW1ucyxcbiAgICBUYWJsZURhdGFMb2FkZXJcbn0gZnJvbSBcIi4uLy4uL2NvbW1vbi10eXBlc1wiO1xuaW1wb3J0IHtPYmplY3RVdGlsc30gZnJvbSBcIi4uLy4uL3V0aWxzL29iamVjdC51dGlsc1wiO1xuaW1wb3J0IHtEeW5hbWljVGFibGVUZW1wbGF0ZURpcmVjdGl2ZX0gZnJvbSBcIi4uLy4uL2RpcmVjdGl2ZXMvZHluYW1pYy10YWJsZS10ZW1wbGF0ZS5kaXJlY3RpdmVcIjtcbmltcG9ydCB7UGFnaW5hdGlvbkRpcmVjdGl2ZX0gZnJvbSBcIi4uLy4uL2RpcmVjdGl2ZXMvcGFnaW5hdGlvbi5kaXJlY3RpdmVcIjtcbmltcG9ydCB7VW5pcXVlVXRpbHN9IGZyb20gXCIuLi8uLi91dGlscy91bmlxdWUudXRpbHNcIjtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6IFwiZHluYW1pYy10YWJsZVwiLFxuICAgIHRlbXBsYXRlVXJsOiBcIi4vZHluYW1pYy10YWJsZS5jb21wb25lbnQuaHRtbFwiLFxufSlcbmV4cG9ydCBjbGFzcyBEeW5hbWljVGFibGVDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0LCBBZnRlclZpZXdJbml0LCBPbkNoYW5nZXMge1xuXG4gICAgQElucHV0KCkgbGFiZWw6IHN0cmluZztcbiAgICBASW5wdXQoKSBwbGFjZWhvbGRlcjogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGRhdGFMb2FkZXI6IFRhYmxlRGF0YUxvYWRlcjtcbiAgICBASW5wdXQoKSBkYXRhOiBhbnlbXTtcbiAgICBASW5wdXQoKSBwYWdlOiBudW1iZXI7XG4gICAgQElucHV0KCkgdXJsUGFyYW06IHN0cmluZztcbiAgICBASW5wdXQoKSBwYXJhbGxlbERhdGE6IGFueVtdO1xuICAgIEBJbnB1dCgpIGNvbHVtbnM6IFRhYmxlQ29sdW1ucztcbiAgICBASW5wdXQoKSBzaG93RmlsdGVyOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIGl0ZW1zUGVyUGFnZTogbnVtYmVyO1xuICAgIEBJbnB1dCgpIHVwZGF0ZVRpbWU6IG51bWJlcjtcbiAgICBASW5wdXQoKSBmaWx0ZXJUaW1lOiBudW1iZXI7XG4gICAgQElucHV0KCkgbWF4UGFnZXM6IG51bWJlcjtcbiAgICBASW5wdXQoKSBkaXJlY3Rpb25MaW5rczogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBib3VuZGFyeUxpbmtzOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIG9yZGVyQnk6IHN0cmluZztcbiAgICBASW5wdXQoKSBvcmRlckRlc2NlbmRpbmc6IGJvb2xlYW47XG4gICAgQElucHV0KCkgdGVzdElkOiBzdHJpbmc7XG4gICAgQElucHV0KCkgdGl0bGVQcmVmaXg6IHN0cmluZztcblxuICAgIHRhYmxlSWQ6IHN0cmluZztcbiAgICB0ZW1wbGF0ZXM6IElUYWJsZVRlbXBsYXRlcztcbiAgICBmaWx0ZXI6IHN0cmluZztcbiAgICBxdWVyeTogSVRhYmxlRGF0YVF1ZXJ5O1xuICAgIGhhc1F1ZXJ5OiBib29sZWFuO1xuICAgIHJlYWxDb2x1bW5zOiBJVGFibGVDb2x1bW5zO1xuICAgIGNvbHM6IHN0cmluZ1tdO1xuXG4gICAgZ2V0IGl0ZW1zKCk6IGFueVtdIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLnBhZ2luYXRpb24gPyBbXSA6IHRoaXMucGFnaW5hdGlvbi5pdGVtcztcbiAgICB9XG5cbiAgICBAQ29udGVudENoaWxkKFwicm93VGVtcGxhdGVcIiwge3N0YXRpYzogdHJ1ZX0pXG4gICAgcm93VGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBAQ29udGVudENoaWxkKFwid3JhcHBlclRlbXBsYXRlXCIsIHtzdGF0aWM6IHRydWV9KVxuICAgIHdyYXBwZXJUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIEBDb250ZW50Q2hpbGQoXCJmaWx0ZXJUZW1wbGF0ZVwiLCB7c3RhdGljOiB0cnVlfSlcbiAgICBmaWx0ZXJUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIEBWaWV3Q2hpbGQoXCJjb2x1bW5zVGVtcGxhdGVcIiwge3N0YXRpYzogdHJ1ZX0pXG4gICAgY29sdW1uc1RlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgQFZpZXdDaGlsZChcImRlZmF1bHRSb3dUZW1wbGF0ZVwiLCB7c3RhdGljOiB0cnVlfSlcbiAgICBkZWZhdWx0Um93VGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBAVmlld0NoaWxkKFwiZGVmYXVsdFdyYXBwZXJUZW1wbGF0ZVwiLCB7c3RhdGljOiB0cnVlfSlcbiAgICBkZWZhdWx0V3JhcHBlclRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgQFZpZXdDaGlsZChcImRlZmF1bHRGaWx0ZXJUZW1wbGF0ZVwiLCB7c3RhdGljOiB0cnVlfSlcbiAgICBkZWZhdWx0RmlsdGVyVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBAVmlld0NoaWxkKFwicGFnaW5hdGlvblwiKVxuICAgIHByb3RlY3RlZCBwYWdpbmF0aW9uOiBQYWdpbmF0aW9uRGlyZWN0aXZlO1xuXG4gICAgQENvbnRlbnRDaGlsZHJlbihEeW5hbWljVGFibGVUZW1wbGF0ZURpcmVjdGl2ZSlcbiAgICBwcm90ZWN0ZWQgdGVtcGxhdGVEaXJlY3RpdmVzOiBRdWVyeUxpc3Q8RHluYW1pY1RhYmxlVGVtcGxhdGVEaXJlY3RpdmU+O1xuXG4gICAgcHJpdmF0ZSBzdGF0aWMgY29tcGFyZShvcmRlckJ5OiBzdHJpbmcsIGE6IFBhZ2luYXRpb25JdGVtQ29udGV4dCwgYjogUGFnaW5hdGlvbkl0ZW1Db250ZXh0KTogbnVtYmVyIHtcbiAgICAgICAgYSA9IGEuaXRlbSA/IGEuaXRlbVtvcmRlckJ5XSA6IG51bGw7XG4gICAgICAgIGIgPSBiLml0ZW0gPyBiLml0ZW1bb3JkZXJCeV0gOiBudWxsO1xuICAgICAgICByZXR1cm4gT2JqZWN0VXRpbHMuY29tcGFyZShhLCBiKTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5kYXRhTG9hZGVyID0gdGhpcy5sb2FkTG9jYWxEYXRhO1xuICAgICAgICB0aGlzLnBsYWNlaG9sZGVyID0gXCJcIjtcbiAgICAgICAgdGhpcy50YWJsZUlkID0gVW5pcXVlVXRpbHMudXVpZCgpO1xuICAgICAgICB0aGlzLnRlbXBsYXRlcyA9IHt9O1xuICAgICAgICB0aGlzLmZpbHRlciA9IFwiXCI7XG4gICAgICAgIHRoaXMucXVlcnkgPSB7fTtcbiAgICAgICAgdGhpcy5oYXNRdWVyeSA9IGZhbHNlO1xuICAgICAgICB0aGlzLnRlc3RJZCA9IFwidGFibGVcIjtcbiAgICAgICAgdGhpcy50aXRsZVByZWZpeCA9IFwibGFiZWxcIjtcbiAgICAgICAgdGhpcy5yZWFsQ29sdW1ucyA9IHt9O1xuICAgIH1cblxuICAgIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy50ZW1wbGF0ZXMgPSB0aGlzLnRlbXBsYXRlRGlyZWN0aXZlcy5yZWR1Y2UoKHJlc3VsdCwgZGlyZWN0aXZlKSA9PiB7XG4gICAgICAgICAgICBpZiAoT2JqZWN0VXRpbHMuaXNBcnJheShkaXJlY3RpdmUuY29sdW1uKSkge1xuICAgICAgICAgICAgICAgIGRpcmVjdGl2ZS5jb2x1bW4uZm9yRWFjaChjb2x1bW4gPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHRbY29sdW1uXSA9IGRpcmVjdGl2ZTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCFPYmplY3RVdGlscy5pc1N0cmluZyhkaXJlY3RpdmUuY29sdW1uKSB8fCBkaXJlY3RpdmUuY29sdW1uLmxlbmd0aCA9PSAwKSByZXR1cm4gcmVzdWx0O1xuICAgICAgICAgICAgcmVzdWx0W2RpcmVjdGl2ZS5jb2x1bW5dID0gZGlyZWN0aXZlO1xuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgfSwge30pO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5yb3dUZW1wbGF0ZSA9IHRoaXMucm93VGVtcGxhdGUgfHwgdGhpcy5kZWZhdWx0Um93VGVtcGxhdGU7XG4gICAgICAgIHRoaXMuZmlsdGVyVGVtcGxhdGUgPSB0aGlzLmZpbHRlclRlbXBsYXRlIHx8IHRoaXMuZGVmYXVsdEZpbHRlclRlbXBsYXRlO1xuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgaWYgKGNoYW5nZXMuY29sdW1ucykge1xuICAgICAgICAgICAgY29uc3QgY29sdW1ucyA9IGNoYW5nZXMuY29sdW1ucy5jdXJyZW50VmFsdWUgfHwgW107XG4gICAgICAgICAgICB0aGlzLnJlYWxDb2x1bW5zID0gT2JqZWN0VXRpbHMuaXNBcnJheShjb2x1bW5zKSA/IGNvbHVtbnMucmVkdWNlKChyZXN1bHQsIGNvbHVtbikgPT4ge1xuICAgICAgICAgICAgICAgIGlmICghT2JqZWN0VXRpbHMuaXNTdHJpbmcoY29sdW1uKSB8fCBjb2x1bW4ubGVuZ3RoID09IDApXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICAgICAgcmVzdWx0W2NvbHVtbl0gPSB7dGl0bGU6IGAke3RoaXMudGl0bGVQcmVmaXh9LiR7Y29sdW1ufWAsIHNvcnQ6IGNvbHVtbn07XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICAgIH0sIHt9KSA6IE9iamVjdC5rZXlzKGNvbHVtbnMpLnJlZHVjZSgocmVzdWx0LCBrZXkpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IGNvbHVtbnNba2V5XTtcbiAgICAgICAgICAgICAgICByZXN1bHRba2V5XSA9ICF2YWx1ZSB8fCBPYmplY3RVdGlscy5pc1N0cmluZyh2YWx1ZSlcbiAgICAgICAgICAgICAgICAgICAgPyB7dGl0bGU6IGAke3RoaXMudGl0bGVQcmVmaXh9LiR7a2V5fWAsIHNvcnQ6IHZhbHVlfVxuICAgICAgICAgICAgICAgICAgICA6IHZhbHVlO1xuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICB9LCB7fSBhcyBJVGFibGVDb2x1bW5zKTtcbiAgICAgICAgICAgIHRoaXMuY29scyA9IE9iamVjdC5rZXlzKHRoaXMucmVhbENvbHVtbnMpO1xuICAgICAgICAgICAgdGhpcy5vcmRlckJ5ID0gdGhpcy5vcmRlckJ5IGluIHRoaXMucmVhbENvbHVtbnMgPyB0aGlzLm9yZGVyQnkgOiB0aGlzLmNvbHNbMF07XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5oYXNRdWVyeSA9IHRoaXMuY29scy5zb21lKGNvbCA9PiB0aGlzLnJlYWxDb2x1bW5zW2NvbF0uZmlsdGVyKTtcbiAgICAgICAgaWYgKGNoYW5nZXMub3JkZXJCeSAmJiB0aGlzLnJlYWxDb2x1bW5zKSB7XG4gICAgICAgICAgICB0aGlzLm9yZGVyQnkgPSB0aGlzLm9yZGVyQnkgaW4gdGhpcy5yZWFsQ29sdW1ucyA/IHRoaXMub3JkZXJCeSA6IHRoaXMuY29sc1swXTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWNoYW5nZXMuZGF0YSAmJiAhY2hhbmdlcy5wYXJhbGxlbERhdGEgJiYgIWNoYW5nZXMuaXRlbXNQZXJQYWdlICYmICFjaGFuZ2VzLm9yZGVyQnkgJiYgIWNoYW5nZXMub3JkZXJEZXNjZW5kaW5nKSByZXR1cm47XG4gICAgICAgIHRoaXMucmVmcmVzaCgpO1xuICAgIH1cblxuICAgIHJlZnJlc2godGltZT86IG51bWJlcik6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMucGFnaW5hdGlvbikgcmV0dXJuO1xuICAgICAgICB0aGlzLnBhZ2luYXRpb24ucmVmcmVzaCh0aW1lKTtcbiAgICB9XG5cbiAgICBzZXRGaWx0ZXIoZmlsdGVyOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5maWx0ZXIgPSBmaWx0ZXI7XG4gICAgICAgIHRoaXMucmVmcmVzaCh0aGlzLmZpbHRlclRpbWUgPz8gMzAwKTtcbiAgICB9XG5cbiAgICBzZXRPcmRlcihjb2x1bW46IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLm9yZGVyRGVzY2VuZGluZyA9IGNvbHVtbiA9PSB0aGlzLm9yZGVyQnkgJiYgIXRoaXMub3JkZXJEZXNjZW5kaW5nO1xuICAgICAgICB0aGlzLm9yZGVyQnkgPSBjb2x1bW47XG4gICAgICAgIHRoaXMucmVmcmVzaCgpO1xuICAgIH1cblxuICAgIHVwZGF0ZVF1ZXJ5KGNvbDogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGlmICghdmFsdWUpIHtcbiAgICAgICAgICAgIGRlbGV0ZSB0aGlzLnF1ZXJ5W2NvbF07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnF1ZXJ5W2NvbF0gPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnJlZnJlc2godGhpcy5maWx0ZXJUaW1lID8/IDMwMCk7XG4gICAgfVxuXG4gICAgbG9hZERhdGEgPSAocGFnZTogbnVtYmVyLCBpdGVtc1BlclBhZ2U6IG51bWJlcik6IFByb21pc2U8SVBhZ2luYXRpb25EYXRhPiA9PiB7XG4gICAgICAgIGNvbnN0IG9yZGVyQnkgPSB0aGlzLnJlYWxDb2x1bW5zW3RoaXMub3JkZXJCeV0/LnNvcnQ7XG4gICAgICAgIHJldHVybiB0aGlzLmRhdGFMb2FkZXIocGFnZSwgaXRlbXNQZXJQYWdlLCBvcmRlckJ5LCB0aGlzLm9yZGVyRGVzY2VuZGluZywgdGhpcy5maWx0ZXIsIHRoaXMucXVlcnkpO1xuICAgIH07XG5cbiAgICBwcml2YXRlIGxvYWRMb2NhbERhdGEocGFnZTogbnVtYmVyLCByb3dzUGVyUGFnZTogbnVtYmVyLCBvcmRlckJ5OiBzdHJpbmcsIG9yZGVyRGVzY2VuZGluZzogYm9vbGVhbiwgZmlsdGVyOiBzdHJpbmcpOiBQcm9taXNlPElQYWdpbmF0aW9uRGF0YT4ge1xuICAgICAgICBpZiAoIXRoaXMuZGF0YSkge1xuICAgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh7XG4gICAgICAgICAgICAgICAgdG90YWw6IDAsXG4gICAgICAgICAgICAgICAgaXRlbXM6IFtdXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjb21wYXJlOiAoYTogYW55LCBiOiBhbnkpID0+IG51bWJlciA9IG9yZGVyRGVzY2VuZGluZ1xuICAgICAgICAgICAgPyAoYSwgYikgPT4gRHluYW1pY1RhYmxlQ29tcG9uZW50LmNvbXBhcmUob3JkZXJCeSwgYiwgYSlcbiAgICAgICAgICAgIDogKGEsIGIpID0+IER5bmFtaWNUYWJsZUNvbXBvbmVudC5jb21wYXJlKG9yZGVyQnksIGEsIGIpO1xuICAgICAgICBjb25zdCBmcm9tID0gKHBhZ2UgLSAxKSAqIHJvd3NQZXJQYWdlO1xuICAgICAgICBjb25zdCBkYXRhTGVuZ3RoID0gdGhpcy5kYXRhLmxlbmd0aDtcbiAgICAgICAgY29uc3QgbGVuZ3RoID0gTWF0aC5taW4ocm93c1BlclBhZ2UsIGRhdGFMZW5ndGggLSBmcm9tKTtcbiAgICAgICAgY29uc3QgcGFyYWxsZWxEYXRhID0gdGhpcy5wYXJhbGxlbERhdGEgfHwgW107XG4gICAgICAgIGxldCBkYXRhID0gdGhpcy5kYXRhLm1hcCgoaXRlbSwgaXgpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgUGFnaW5hdGlvbkl0ZW1Db250ZXh0KGl0ZW0sIHBhcmFsbGVsRGF0YVtpeF0gfHwge30sIGRhdGFMZW5ndGgsIGl4LCBpeCk7XG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoT2JqZWN0VXRpbHMuaXNTdHJpbmcoZmlsdGVyKSAmJiBmaWx0ZXIubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgY29uc3QgZmlsdGVyUnggPSBuZXcgUmVnRXhwKGZpbHRlciwgXCJnaVwiKTtcbiAgICAgICAgICAgIGRhdGEgPSBkYXRhLmZpbHRlcihjID0+IGMuZmlsdGVyKGZpbHRlclJ4KSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaXRlbXMgPSBvcmRlckJ5ID8gZGF0YS5zb3J0KGNvbXBhcmUpLnNwbGljZShmcm9tLCBsZW5ndGgpIDogZGF0YS5zcGxpY2UoZnJvbSwgbGVuZ3RoKTtcbiAgICAgICAgaXRlbXMuZm9yRWFjaCgoY29udGV4dCwgaXgpID0+IHtcbiAgICAgICAgICAgIGNvbnRleHQuaW5kZXggPSBmcm9tICsgaXg7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHtcbiAgICAgICAgICAgIHRvdGFsOiBkYXRhTGVuZ3RoLFxuICAgICAgICAgICAgaXRlbXM6IGl0ZW1zXG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJkeW5hbWljLXRhYmxlXCIgI3BhZ2luYXRpb249XCJwYWdpbmF0aW9uXCIgW3BhZ2luYXRpb25dPVwibG9hZERhdGFcIiBbcGFnZV09XCJwYWdlXCIgW2l0ZW1zUGVyUGFnZV09XCJpdGVtc1BlclBhZ2VcIiBbdXBkYXRlVGltZV09XCJ1cGRhdGVUaW1lXCI+XG4gICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0RmlsdGVyVGVtcGxhdGUgbGV0LXRhYmxlPlxuICAgICAgICA8ZGl2IGNsYXNzPVwidGFibGUtc2VhcmNoXCIgKm5nSWY9XCJ0YWJsZS5zaG93RmlsdGVyXCI+XG4gICAgICAgICAgICA8bGFiZWwgKm5nSWY9XCJsYWJlbFwiIFthdHRyLmZvcl09XCJ0YWJsZUlkXCI+e3sgbGFiZWwgfCB0cmFuc2xhdGUgfX08L2xhYmVsPlxuICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAgICAgICAgICAgICAgW2F0dHIuaWRdPVwidGFibGVJZFwiXG4gICAgICAgICAgICAgICAgICAgW2F0dHIuZGF0YS10ZXN0aWRdPVwidGVzdElkICsgJy1maWx0ZXItaW5wdXQnXCJcbiAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXIgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgIFtuZ01vZGVsXT1cInRhYmxlLmZpbHRlclwiXG4gICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwidGFibGUuc2V0RmlsdGVyKCRldmVudClcIi8+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPG5nLWNvbnRhaW5lciBbbmd4VGVtcGxhdGVPdXRsZXRdPVwiZmlsdGVyVGVtcGxhdGUgfHwgZGVmYXVsdEZpbHRlclRlbXBsYXRlXCIgW2NvbnRleHRdPVwidGhpc1wiPjwvbmctY29udGFpbmVyPlxuICAgIDxwYWdpbmF0aW9uLW1lbnUgW3VybFBhcmFtXT1cInVybFBhcmFtXCIgW21heFNpemVdPVwibWF4UGFnZXNcIiBbZGlyZWN0aW9uTGlua3NdPVwiZGlyZWN0aW9uTGlua3NcIiBbYm91bmRhcnlMaW5rc109XCJib3VuZGFyeUxpbmtzXCI+PC9wYWdpbmF0aW9uLW1lbnU+XG4gICAgPGRpdiBjbGFzcz1cInRhYmxlLXJlc3BvbnNpdmVcIj5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNjb2x1bW5UZW1wbGF0ZSBsZXQtY29udGV4dCBsZXQtY29sdW1uPVwiY29sdW1uXCIgbGV0LXRlbXBsYXRlPVwidGVtcGxhdGVcIj5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdFRlbXBsYXRlIGxldC1jb2x1bW49XCJjb2x1bW5cIiBsZXQtaXRlbT1cIml0ZW1cIj5cbiAgICAgICAgICAgICAgICA8c3Bhbj57eyBpdGVtW2NvbHVtbl0gPT0gdW5kZWZpbmVkIHx8IGl0ZW1bY29sdW1uXSA9PSBudWxsID8gJy0nIDogaXRlbVtjb2x1bW5dIH19PC9zcGFuPlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjcHVyZVRlbXBsYXRlPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgW25neFRlbXBsYXRlT3V0bGV0XT1cInRlbXBsYXRlLnJlZlwiIFtjb250ZXh0XT1cImNvbnRleHRcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8dGQgW25nQ2xhc3NdPVwiJ2NvbHVtbi0nICsgY29sdW1uXCJcbiAgICAgICAgICAgICAgICBbYXR0ci5kYXRhLXRlc3RpZF09XCJ0ZXN0SWQgKyAnLScgKyBjb2x1bW4gKyAnLScgKyBjb250ZXh0LnJvd0luZGV4XCIgKm5nSWY9XCIhdGVtcGxhdGUgfHwgIXRlbXBsYXRlLnB1cmU7IGVsc2UgcHVyZVRlbXBsYXRlXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmd4VGVtcGxhdGVPdXRsZXRdPVwiIXRlbXBsYXRlID8gZGVmYXVsdFRlbXBsYXRlIDogdGVtcGxhdGUucmVmXCIgW2NvbnRleHRdPVwiY29udGV4dFwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgICAgICA8bmctdGVtcGxhdGUgI2NvbHVtbnNUZW1wbGF0ZSBsZXQtY29udGV4dD5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGNvbHVtbiBvZiBjb2xzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW25neFRlbXBsYXRlT3V0bGV0XT1cImNvbHVtblRlbXBsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2NvbnRleHRdPVwiY29udGV4dFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFthZGRpdGlvbmFsQ29udGV4dF09XCJ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVtcGxhdGU6IHRlbXBsYXRlc1tjb2x1bW5dLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbjogY29sdW1uXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgICAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRSb3dUZW1wbGF0ZSBsZXQtY29udGV4dD5cbiAgICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ3hUZW1wbGF0ZU91dGxldF09XCJjb2x1bW5zVGVtcGxhdGVcIiBbY29udGV4dF09XCJjb250ZXh0XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L3RyPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdFdyYXBwZXJUZW1wbGF0ZT5cbiAgICAgICAgICAgIDx0YWJsZSBjbGFzcz1cInRhYmxlIHRhYmxlLXN0cmlwZWRcIj5cbiAgICAgICAgICAgICAgICA8dGhlYWQ+XG4gICAgICAgICAgICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0aCAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIGNvbHNcIiBbbmdDbGFzc109XCInY29sdW1uLScgKyBjb2x1bW5cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRDb2w+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7IHJlYWxDb2x1bW5zW2NvbHVtbl0udGl0bGUgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSAqbmdJZj1cInJlYWxDb2x1bW5zW2NvbHVtbl0uc29ydDsgZWxzZSBkZWZhdWx0Q29sXCIgKGNsaWNrKT1cInNldE9yZGVyKGNvbHVtbilcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgcmVhbENvbHVtbnNbY29sdW1uXS50aXRsZSB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgKm5nSWY9XCJvcmRlckJ5ID09IGNvbHVtblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpY29uXT1cIm9yZGVyRGVzY2VuZGluZyA/ICdzb3J0LWRlc2MnIDogJ3NvcnQtYXNjJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIm9yZGVyQnkgPT0gY29sdW1uID8gKG9yZGVyRGVzY2VuZGluZyA/ICdzb3J0LWRlc2MnOiAnc29ydC1hc2MnKSA6ICcnXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGg+XG4gICAgICAgICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICAgICAgICAgIDx0ciAqbmdJZj1cImhhc1F1ZXJ5XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8dGggKm5nRm9yPVwibGV0IGNvbHVtbiBvZiBjb2xzXCIgW25nQ2xhc3NdPVwiWydjb2x1bW4tJyArIGNvbHVtbiwgJ2ZpbHRlci1jb2x1bW4nXVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJyZWFsQ29sdW1uc1tjb2x1bW5dLmZpbHRlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuZGF0YS10ZXN0aWRdPVwidGVzdElkICsgJy1maWx0ZXItJyArIGNvbHVtblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwicmVhbENvbHVtbnNbY29sdW1uXS50aXRsZSB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdNb2RlbF09XCJxdWVyeVtjb2x1bW5dXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInVwZGF0ZVF1ZXJ5KGNvbHVtbiwgJGV2ZW50KVwiLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGg+XG4gICAgICAgICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICAgICAgPC90aGVhZD5cbiAgICAgICAgICAgICAgICA8dGJvZHk+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKnBhZ2luYXRpb25JdGVtPVwibGV0IGNvbnRleHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ3hUZW1wbGF0ZU91dGxldF09XCJyb3dUZW1wbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NvbnRleHRdPVwiY29udGV4dFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2FkZGl0aW9uYWxDb250ZXh0XT1cInRoaXNcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L3Rib2R5PlxuICAgICAgICAgICAgPC90YWJsZT5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgICAgICA8bmctY29udGFpbmVyIFtuZ3hUZW1wbGF0ZU91dGxldF09XCJ3cmFwcGVyVGVtcGxhdGUgfHwgZGVmYXVsdFdyYXBwZXJUZW1wbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgW2NvbnRleHRdPVwidGhpc1wiPjwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuICAgIDxwYWdpbmF0aW9uLW1lbnUgW3VybFBhcmFtXT1cInVybFBhcmFtXCIgW21heFNpemVdPVwibWF4UGFnZXNcIiBbZGlyZWN0aW9uTGlua3NdPVwiZGlyZWN0aW9uTGlua3NcIiBbYm91bmRhcnlMaW5rc109XCJib3VuZGFyeUxpbmtzXCI+PC9wYWdpbmF0aW9uLW1lbnU+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -81,11 +81,11 @@ export class PaginationMenuComponent {
|
|
|
81
81
|
this.pages = pages;
|
|
82
82
|
}
|
|
83
83
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PaginationMenuComponent, deps: [{ token: i1.StateService }, { token: i2.PaginationDirective }, { token: ICON_SERVICE }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
84
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: PaginationMenuComponent, selector: "pagination-menu", inputs: { maxSize: "maxSize", urlParam: "urlParam", directionLinks: "directionLinks", boundaryLinks: "boundaryLinks" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"pagination-menu\" *ngIf=\"pagination.total > pagination.itemsPerPage\">\
|
|
84
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: PaginationMenuComponent, selector: "pagination-menu", inputs: { maxSize: "maxSize", urlParam: "urlParam", directionLinks: "directionLinks", boundaryLinks: "boundaryLinks" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"pagination-menu\" *ngIf=\"pagination.total > pagination.itemsPerPage\">\n <ul class=\"pagination\">\n <li class=\"page-item\" [ngClass]=\"{disabled: !hasPrev}\" *ngIf=\"boundaryLinks\">\n <a class=\"page-link\" (click)=\"paginate(1)\" [innerHTML]=\"firstLabel | safe\"></a>\n </li>\n <li class=\"page-item\" [ngClass]=\"{disabled: !hasPrev}\" *ngIf=\"directionLinks\">\n <a class=\"page-link\" (click)=\"paginate(pagination.page - 1)\" [innerHTML]=\"prevLabel | safe\"></a>\n </li>\n <li class=\"page-item\" [ngClass]=\"{active: pagination.page == page}\" *ngFor=\"let page of pages\">\n <a class=\"page-link\" [ngClass]=\"{active: pagination.page == page}\" (click)=\"paginate(page)\">{{ page }}</a>\n </li>\n <li class=\"page-item\" [ngClass]=\"{disabled: !hasNext}\" *ngIf=\"directionLinks\">\n <a class=\"page-link\" (click)=\"paginate(pagination.page + 1)\" [innerHTML]=\"nextLabel | safe\"></a>\n </li>\n <li class=\"page-item\" [ngClass]=\"{disabled: !hasNext}\" *ngIf=\"boundaryLinks\">\n <a class=\"page-link\" (click)=\"paginate(pagination.maxPage)\" [innerHTML]=\"lastLabel | safe\"></a>\n </li>\n </ul>\n</div>\n", dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i4.SafeHtmlPipe, name: "safe" }] }); }
|
|
85
85
|
}
|
|
86
86
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PaginationMenuComponent, decorators: [{
|
|
87
87
|
type: Component,
|
|
88
|
-
args: [{ selector: "pagination-menu", template: "<div class=\"pagination-menu\" *ngIf=\"pagination.total > pagination.itemsPerPage\">\
|
|
88
|
+
args: [{ selector: "pagination-menu", template: "<div class=\"pagination-menu\" *ngIf=\"pagination.total > pagination.itemsPerPage\">\n <ul class=\"pagination\">\n <li class=\"page-item\" [ngClass]=\"{disabled: !hasPrev}\" *ngIf=\"boundaryLinks\">\n <a class=\"page-link\" (click)=\"paginate(1)\" [innerHTML]=\"firstLabel | safe\"></a>\n </li>\n <li class=\"page-item\" [ngClass]=\"{disabled: !hasPrev}\" *ngIf=\"directionLinks\">\n <a class=\"page-link\" (click)=\"paginate(pagination.page - 1)\" [innerHTML]=\"prevLabel | safe\"></a>\n </li>\n <li class=\"page-item\" [ngClass]=\"{active: pagination.page == page}\" *ngFor=\"let page of pages\">\n <a class=\"page-link\" [ngClass]=\"{active: pagination.page == page}\" (click)=\"paginate(page)\">{{ page }}</a>\n </li>\n <li class=\"page-item\" [ngClass]=\"{disabled: !hasNext}\" *ngIf=\"directionLinks\">\n <a class=\"page-link\" (click)=\"paginate(pagination.page + 1)\" [innerHTML]=\"nextLabel | safe\"></a>\n </li>\n <li class=\"page-item\" [ngClass]=\"{disabled: !hasNext}\" *ngIf=\"boundaryLinks\">\n <a class=\"page-link\" (click)=\"paginate(pagination.maxPage)\" [innerHTML]=\"lastLabel | safe\"></a>\n </li>\n </ul>\n</div>\n" }]
|
|
89
89
|
}], ctorParameters: () => [{ type: i1.StateService }, { type: i2.PaginationDirective }, { type: undefined, decorators: [{
|
|
90
90
|
type: Inject,
|
|
91
91
|
args: [ICON_SERVICE]
|
|
@@ -98,4 +98,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
98
98
|
}], boundaryLinks: [{
|
|
99
99
|
type: Input
|
|
100
100
|
}] } });
|
|
101
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi1tZW51LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9uZ3gtdXRpbHMvY29tcG9uZW50cy9wYWdpbmF0aW9uLW1lbnUvcGFnaW5hdGlvbi1tZW51LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9uZ3gtdXRpbHMvY29tcG9uZW50cy9wYWdpbmF0aW9uLW1lbnUvcGFnaW5hdGlvbi1tZW51LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBOEMsTUFBTSxlQUFlLENBQUM7QUFFcEcsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ3JELE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUMxRCxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSx1Q0FBdUMsQ0FBQztBQUMxRSxPQUFPLEVBQUMsWUFBWSxFQUFlLE1BQU0sb0JBQW9CLENBQUM7Ozs7OztBQU05RCxNQUFNLE9BQU8sdUJBQXVCO0lBYWhDLElBQUksT0FBTztRQUNQLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRCxJQUFJLE9BQU87UUFDUCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFBO0lBQ3pELENBQUM7SUFJRCxZQUFtQixLQUFtQixFQUFTLFVBQStCLEVBQStCLEtBQW1CO1FBQTdHLFVBQUssR0FBTCxLQUFLLENBQWM7UUFBUyxlQUFVLEdBQVYsVUFBVSxDQUFxQjtRQUErQixVQUFLLEdBQUwsS0FBSyxDQUFjO1FBQzVILElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDO1FBQ2pCLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxD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O2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBJbmplY3QsIElucHV0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgT25Jbml0LCBTaW1wbGVDaGFuZ2VzfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge1N1YnNjcmlwdGlvbn0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHtPYmplY3RVdGlsc30gZnJvbSBcIi4uLy4uL3V0aWxzL29iamVjdC51dGlsc1wiO1xyXG5pbXBvcnQge1N0YXRlU2VydmljZX0gZnJvbSBcIi4uLy4uL3NlcnZpY2VzL3N0YXRlLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtQYWdpbmF0aW9uRGlyZWN0aXZlfSBmcm9tIFwiLi4vLi4vZGlyZWN0aXZlcy9wYWdpbmF0aW9uLmRpcmVjdGl2ZVwiO1xyXG5pbXBvcnQge0lDT05fU0VSVklDRSwgSUljb25TZXJ2aWNlfSBmcm9tIFwiLi4vLi4vY29tbW9uLXR5cGVzXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiBcInBhZ2luYXRpb24tbWVudVwiLFxyXG4gICAgdGVtcGxhdGVVcmw6IFwiLi9wYWdpbmF0aW9uLW1lbnUuY29tcG9uZW50Lmh0bWxcIlxyXG59KVxyXG5leHBvcnQgY2xhc3MgUGFnaW5hdGlvbk1lbnVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgT25DaGFuZ2VzIHtcclxuXHJcbiAgICBASW5wdXQoKSBtYXhTaXplOiBudW1iZXI7XHJcbiAgICBASW5wdXQoKSB1cmxQYXJhbTogc3RyaW5nO1xyXG4gICAgQElucHV0KCkgZGlyZWN0aW9uTGlua3M6IGJvb2xlYW47XHJcbiAgICBASW5wdXQoKSBib3VuZGFyeUxpbmtzOiBib29sZWFuO1xyXG5cclxuICAgIHBhZ2VzOiBudW1iZXJbXTtcclxuICAgIGZpcnN0TGFiZWw6IHN0cmluZztcclxuICAgIHByZXZMYWJlbDogc3RyaW5nO1xyXG4gICAgbmV4dExhYmVsOiBzdHJpbmc7XHJcbiAgICBsYXN0TGFiZWw6IHN0cmluZztcclxuXHJcbiAgICBnZXQgaGFzUHJldigpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5wYWdpbmF0aW9uLnBhZ2UgPiAxO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBoYXNOZXh0KCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnBhZ2luYXRpb24ucGFnZSA8IHRoaXMucGFnaW5hdGlvbi5tYXhQYWdlXHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBvblJlZnJlc2g6IFN1YnNjcmlwdGlvbjtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgc3RhdGU6IFN0YXRlU2VydmljZSwgcHVibGljIHBhZ2luYXRpb246IFBhZ2luYXRpb25EaXJlY3RpdmUsIEBJbmplY3QoSUNPTl9TRVJWSUNFKSBwdWJsaWMgaWNvbnM6IElJY29uU2VydmljZSkge1xyXG4gICAgICAgIHRoaXMubWF4U2l6ZSA9IDU7XHJcbiAgICAgICAgdGhpcy5kaXJlY3Rpb25MaW5rcyA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5ib3VuZGFyeUxpbmtzID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmZpcnN0TGFiZWwgPSBgPDxgO1xyXG4gICAgICAgIHRoaXMucHJldkxhYmVsID0gYDxgO1xyXG4gICAgICAgIHRoaXMubmV4dExhYmVsID0gYD5gO1xyXG4gICAgICAgIHRoaXMubGFzdExhYmVsID0gYD4+YDtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLm9uUmVmcmVzaCA9IHRoaXMucGFnaW5hdGlvbi5vblJlZnJlc2guc3Vic2NyaWJlKCgpID0+IHRoaXMuc2V0UGFnZXMoKSk7XHJcbiAgICAgICAgdGhpcy5zZXRJY29uKFwiZmlyc3RMYWJlbFwiLCBcImZpcnN0LXBhZ2VcIik7XHJcbiAgICAgICAgdGhpcy5zZXRJY29uKFwicHJldkxhYmVsXCIsIFwicHJldi1wYWdlXCIpO1xyXG4gICAgICAgIHRoaXMuc2V0SWNvbihcIm5leHRMYWJlbFwiLCBcIm5leHQtcGFnZVwiKTtcclxuICAgICAgICB0aGlzLnNldEljb24oXCJsYXN0TGFiZWxcIiwgXCJsYXN0LXBhZ2VcIik7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKCF0aGlzLm9uUmVmcmVzaCkgcmV0dXJuO1xyXG4gICAgICAgIHRoaXMub25SZWZyZXNoLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMubWF4U2l6ZSA9IGlzTmFOKHRoaXMubWF4U2l6ZSkgfHwgdGhpcy5tYXhTaXplIDw9IDAgPyA1IDogdGhpcy5tYXhTaXplO1xyXG4gICAgICAgIHRoaXMuZGlyZWN0aW9uTGlua3MgPSBPYmplY3RVdGlscy5pc0Jvb2xlYW4odGhpcy5kaXJlY3Rpb25MaW5rcykgPyB0aGlzLmRpcmVjdGlvbkxpbmtzIDogdHJ1ZTtcclxuICAgICAgICB0aGlzLmJvdW5kYXJ5TGlua3MgPSBPYmplY3RVdGlscy5pc0Jvb2xlYW4odGhpcy5ib3VuZGFyeUxpbmtzKSA/IHRoaXMuYm91bmRhcnlMaW5rcyA6IHRydWU7XHJcbiAgICAgICAgdGhpcy5zZXRQYWdlcygpO1xyXG4gICAgfVxyXG5cclxuICAgIHBhZ2luYXRlKHBhZ2U6IG51bWJlcik6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLnBhZ2luYXRpb24ucGFnZSA9PSBwYWdlIHx8IHRoaXMucGFnaW5hdGlvbi5tYXhQYWdlIDwgcGFnZSB8fCBwYWdlIDwgMSkgcmV0dXJuO1xyXG4gICAgICAgIGlmICghdGhpcy51cmxQYXJhbSkge1xyXG4gICAgICAgICAgICB0aGlzLnBhZ2luYXRpb24ucGFnaW5hdGUocGFnZSk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgcGFyYW1zID0gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5zdGF0ZS5wYXJhbXMpO1xyXG4gICAgICAgIHBhcmFtc1t0aGlzLnVybFBhcmFtXSA9IHBhZ2UudG9TdHJpbmcoKTtcclxuICAgICAgICBjb25zdCBwYXRoID0gU3RhdGVTZXJ2aWNlLnRvUGF0aCh0aGlzLnN0YXRlLnJvdXRlLCBwYXJhbXMpO1xyXG4gICAgICAgIHRoaXMuc3RhdGUubmF2aWdhdGVCeVVybChwYXRoKTtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgc2V0SWNvbihsYWJlbE5hbWU6IHN0cmluZywgaWNvbjogc3RyaW5nKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5pY29ucy5nZXRJY29uKGljb24sIGljb24sIGZhbHNlKS50aGVuKGkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoaSA9PSBpY29uKSByZXR1cm47XHJcbiAgICAgICAgICAgIHRoaXNbbGFiZWxOYW1lXSA9IGk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIHNldFBhZ2VzKCk6IG51bWJlciB7XHJcbiAgICAgICAgaWYgKCF0aGlzLnBhZ2luYXRpb24pIHJldHVybjtcclxuICAgICAgICBjb25zdCB0b3RhbFBhZ2VzID0gdGhpcy5wYWdpbmF0aW9uLm1heFBhZ2U7XHJcbiAgICAgICAgbGV0IHN0YXJ0UGFnZSA9IE1hdGgubWF4KHRoaXMucGFnaW5hdGlvbi5wYWdlIC0gTWF0aC5mbG9vcih0aGlzLm1heFNpemUgLyAyKSwgMSk7XHJcbiAgICAgICAgbGV0IGVuZFBhZ2UgPSBzdGFydFBhZ2UgKyB0aGlzLm1heFNpemUgLSAxO1xyXG4gICAgICAgIGlmIChlbmRQYWdlID4gdG90YWxQYWdlcykge1xyXG4gICAgICAgICAgICBlbmRQYWdlID0gdG90YWxQYWdlcztcclxuICAgICAgICAgICAgc3RhcnRQYWdlID0gTWF0aC5tYXgoZW5kUGFnZSAtIHRoaXMubWF4U2l6ZSArIDEsIDEpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBwYWdlczogbnVtYmVyW10gPSBbXTtcclxuICAgICAgICBmb3IgKGxldCBudW0gPSBzdGFydFBhZ2U7IG51bSA8PSBlbmRQYWdlOyBudW0rKykge1xyXG4gICAgICAgICAgICBwYWdlcy5wdXNoKG51bSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMucGFnZXMgPSBwYWdlcztcclxuICAgIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwicGFnaW5hdGlvbi1tZW51XCIgKm5nSWY9XCJwYWdpbmF0aW9uLnRvdGFsID4gcGFnaW5hdGlvbi5pdGVtc1BlclBhZ2VcIj5cclxuICAgIDx1bCBjbGFzcz1cInBhZ2luYXRpb25cIj5cclxuICAgICAgICA8bGkgY2xhc3M9XCJwYWdlLWl0ZW1cIiBbbmdDbGFzc109XCJ7ZGlzYWJsZWQ6ICFoYXNQcmV2fVwiICpuZ0lmPVwiYm91bmRhcnlMaW5rc1wiPlxyXG4gICAgICAgICAgICA8YSBjbGFzcz1cInBhZ2UtbGlua1wiIChjbGljayk9XCJwYWdpbmF0ZSgxKVwiIFtpbm5lckhUTUxdPVwiZmlyc3RMYWJlbCB8IHNhZmVcIj48L2E+XHJcbiAgICAgICAgPC9saT5cclxuICAgICAgICA8bGkgY2xhc3M9XCJwYWdlLWl0ZW1cIiBbbmdDbGFzc109XCJ7ZGlzYWJsZWQ6ICFoYXNQcmV2fVwiICpuZ0lmPVwiZGlyZWN0aW9uTGlua3NcIj5cclxuICAgICAgICAgICAgPGEgY2xhc3M9XCJwYWdlLWxpbmtcIiAoY2xpY2spPVwicGFnaW5hdGUocGFnaW5hdGlvbi5wYWdlIC0gMSlcIiBbaW5uZXJIVE1MXT1cInByZXZMYWJlbCB8IHNhZmVcIj48L2E+XHJcbiAgICAgICAgPC9saT5cclxuICAgICAgICA8bGkgY2xhc3M9XCJwYWdlLWl0ZW1cIiBbbmdDbGFzc109XCJ7YWN0aXZlOiBwYWdpbmF0aW9uLnBhZ2UgPT0gcGFnZX1cIiAqbmdGb3I9XCJsZXQgcGFnZSBvZiBwYWdlc1wiPlxyXG4gICAgICAgICAgICA8YSBjbGFzcz1cInBhZ2UtbGlua1wiIFtuZ0NsYXNzXT1cInthY3RpdmU6IHBhZ2luYXRpb24ucGFnZSA9PSBwYWdlfVwiIChjbGljayk9XCJwYWdpbmF0ZShwYWdlKVwiPnt7IHBhZ2UgfX08L2E+XHJcbiAgICAgICAgPC9saT5cclxuICAgICAgICA8bGkgY2xhc3M9XCJwYWdlLWl0ZW1cIiBbbmdDbGFzc109XCJ7ZGlzYWJsZWQ6ICFoYXNOZXh0fVwiICpuZ0lmPVwiZGlyZWN0aW9uTGlua3NcIj5cclxuICAgICAgICAgICAgPGEgY2xhc3M9XCJwYWdlLWxpbmtcIiAoY2xpY2spPVwicGFnaW5hdGUocGFnaW5hdGlvbi5wYWdlICsgMSlcIiBbaW5uZXJIVE1MXT1cIm5leHRMYWJlbCB8IHNhZmVcIj48L2E+XHJcbiAgICAgICAgPC9saT5cclxuICAgICAgICA8bGkgY2xhc3M9XCJwYWdlLWl0ZW1cIiBbbmdDbGFzc109XCJ7ZGlzYWJsZWQ6ICFoYXNOZXh0fVwiICpuZ0lmPVwiYm91bmRhcnlMaW5rc1wiPlxyXG4gICAgICAgICAgICA8YSBjbGFzcz1cInBhZ2UtbGlua1wiIChjbGljayk9XCJwYWdpbmF0ZShwYWdpbmF0aW9uLm1heFBhZ2UpXCIgW2lubmVySFRNTF09XCJsYXN0TGFiZWwgfCBzYWZlXCI+PC9hPlxyXG4gICAgICAgIDwvbGk+XHJcbiAgICA8L3VsPlxyXG48L2Rpdj5cclxuIl19
|
|
101
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi1tZW51LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9uZ3gtdXRpbHMvY29tcG9uZW50cy9wYWdpbmF0aW9uLW1lbnUvcGFnaW5hdGlvbi1tZW51LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9uZ3gtdXRpbHMvY29tcG9uZW50cy9wYWdpbmF0aW9uLW1lbnUvcGFnaW5hdGlvbi1tZW51LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBOEMsTUFBTSxlQUFlLENBQUM7QUFFcEcsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ3JELE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUMxRCxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSx1Q0FBdUMsQ0FBQztBQUMxRSxPQUFPLEVBQUMsWUFBWSxFQUFlLE1BQU0sb0JBQW9CLENBQUM7Ozs7OztBQU05RCxNQUFNLE9BQU8sdUJBQXVCO0lBYWhDLElBQUksT0FBTztRQUNQLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRCxJQUFJLE9BQU87UUFDUCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFBO0lBQ3pELENBQUM7SUFJRCxZQUFtQixLQUFtQixFQUFTLFVBQStCLEVBQStCLEtBQW1CO1FBQTdHLFVBQUssR0FBTCxLQUFLLENBQWM7UUFBUyxlQUFVLEdBQVYsVUFBVSxDQUFxQjtRQUErQixVQUFLLEdBQUwsS0FBSyxDQUFjO1FBQzVILElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDO1FBQ2pCLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxD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O2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBJbmplY3QsIElucHV0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgT25Jbml0LCBTaW1wbGVDaGFuZ2VzfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHtTdWJzY3JpcHRpb259IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQge09iamVjdFV0aWxzfSBmcm9tIFwiLi4vLi4vdXRpbHMvb2JqZWN0LnV0aWxzXCI7XG5pbXBvcnQge1N0YXRlU2VydmljZX0gZnJvbSBcIi4uLy4uL3NlcnZpY2VzL3N0YXRlLnNlcnZpY2VcIjtcbmltcG9ydCB7UGFnaW5hdGlvbkRpcmVjdGl2ZX0gZnJvbSBcIi4uLy4uL2RpcmVjdGl2ZXMvcGFnaW5hdGlvbi5kaXJlY3RpdmVcIjtcbmltcG9ydCB7SUNPTl9TRVJWSUNFLCBJSWNvblNlcnZpY2V9IGZyb20gXCIuLi8uLi9jb21tb24tdHlwZXNcIjtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6IFwicGFnaW5hdGlvbi1tZW51XCIsXG4gICAgdGVtcGxhdGVVcmw6IFwiLi9wYWdpbmF0aW9uLW1lbnUuY29tcG9uZW50Lmh0bWxcIlxufSlcbmV4cG9ydCBjbGFzcyBQYWdpbmF0aW9uTWVudUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBPbkNoYW5nZXMge1xuXG4gICAgQElucHV0KCkgbWF4U2l6ZTogbnVtYmVyO1xuICAgIEBJbnB1dCgpIHVybFBhcmFtOiBzdHJpbmc7XG4gICAgQElucHV0KCkgZGlyZWN0aW9uTGlua3M6IGJvb2xlYW47XG4gICAgQElucHV0KCkgYm91bmRhcnlMaW5rczogYm9vbGVhbjtcblxuICAgIHBhZ2VzOiBudW1iZXJbXTtcbiAgICBmaXJzdExhYmVsOiBzdHJpbmc7XG4gICAgcHJldkxhYmVsOiBzdHJpbmc7XG4gICAgbmV4dExhYmVsOiBzdHJpbmc7XG4gICAgbGFzdExhYmVsOiBzdHJpbmc7XG5cbiAgICBnZXQgaGFzUHJldigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucGFnaW5hdGlvbi5wYWdlID4gMTtcbiAgICB9XG5cbiAgICBnZXQgaGFzTmV4dCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucGFnaW5hdGlvbi5wYWdlIDwgdGhpcy5wYWdpbmF0aW9uLm1heFBhZ2VcbiAgICB9XG5cbiAgICBwcml2YXRlIG9uUmVmcmVzaDogU3Vic2NyaXB0aW9uO1xuXG4gICAgY29uc3RydWN0b3IocHVibGljIHN0YXRlOiBTdGF0ZVNlcnZpY2UsIHB1YmxpYyBwYWdpbmF0aW9uOiBQYWdpbmF0aW9uRGlyZWN0aXZlLCBASW5qZWN0KElDT05fU0VSVklDRSkgcHVibGljIGljb25zOiBJSWNvblNlcnZpY2UpIHtcbiAgICAgICAgdGhpcy5tYXhTaXplID0gNTtcbiAgICAgICAgdGhpcy5kaXJlY3Rpb25MaW5rcyA9IHRydWU7XG4gICAgICAgIHRoaXMuYm91bmRhcnlMaW5rcyA9IHRydWU7XG4gICAgICAgIHRoaXMuZmlyc3RMYWJlbCA9IGA8PGA7XG4gICAgICAgIHRoaXMucHJldkxhYmVsID0gYDxgO1xuICAgICAgICB0aGlzLm5leHRMYWJlbCA9IGA+YDtcbiAgICAgICAgdGhpcy5sYXN0TGFiZWwgPSBgPj5gO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uUmVmcmVzaCA9IHRoaXMucGFnaW5hdGlvbi5vblJlZnJlc2guc3Vic2NyaWJlKCgpID0+IHRoaXMuc2V0UGFnZXMoKSk7XG4gICAgICAgIHRoaXMuc2V0SWNvbihcImZpcnN0TGFiZWxcIiwgXCJmaXJzdC1wYWdlXCIpO1xuICAgICAgICB0aGlzLnNldEljb24oXCJwcmV2TGFiZWxcIiwgXCJwcmV2LXBhZ2VcIik7XG4gICAgICAgIHRoaXMuc2V0SWNvbihcIm5leHRMYWJlbFwiLCBcIm5leHQtcGFnZVwiKTtcbiAgICAgICAgdGhpcy5zZXRJY29uKFwibGFzdExhYmVsXCIsIFwibGFzdC1wYWdlXCIpO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMub25SZWZyZXNoKSByZXR1cm47XG4gICAgICAgIHRoaXMub25SZWZyZXNoLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICB0aGlzLm1heFNpemUgPSBpc05hTih0aGlzLm1heFNpemUpIHx8IHRoaXMubWF4U2l6ZSA8PSAwID8gNSA6IHRoaXMubWF4U2l6ZTtcbiAgICAgICAgdGhpcy5kaXJlY3Rpb25MaW5rcyA9IE9iamVjdFV0aWxzLmlzQm9vbGVhbih0aGlzLmRpcmVjdGlvbkxpbmtzKSA/IHRoaXMuZGlyZWN0aW9uTGlua3MgOiB0cnVlO1xuICAgICAgICB0aGlzLmJvdW5kYXJ5TGlua3MgPSBPYmplY3RVdGlscy5pc0Jvb2xlYW4odGhpcy5ib3VuZGFyeUxpbmtzKSA/IHRoaXMuYm91bmRhcnlMaW5rcyA6IHRydWU7XG4gICAgICAgIHRoaXMuc2V0UGFnZXMoKTtcbiAgICB9XG5cbiAgICBwYWdpbmF0ZShwYWdlOiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMucGFnaW5hdGlvbi5wYWdlID09IHBhZ2UgfHwgdGhpcy5wYWdpbmF0aW9uLm1heFBhZ2UgPCBwYWdlIHx8IHBhZ2UgPCAxKSByZXR1cm47XG4gICAgICAgIGlmICghdGhpcy51cmxQYXJhbSkge1xuICAgICAgICAgICAgdGhpcy5wYWdpbmF0aW9uLnBhZ2luYXRlKHBhZ2UpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHBhcmFtcyA9IE9iamVjdC5hc3NpZ24oe30sIHRoaXMuc3RhdGUucGFyYW1zKTtcbiAgICAgICAgcGFyYW1zW3RoaXMudXJsUGFyYW1dID0gcGFnZS50b1N0cmluZygpO1xuICAgICAgICBjb25zdCBwYXRoID0gU3RhdGVTZXJ2aWNlLnRvUGF0aCh0aGlzLnN0YXRlLnJvdXRlLCBwYXJhbXMpO1xuICAgICAgICB0aGlzLnN0YXRlLm5hdmlnYXRlQnlVcmwocGF0aCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHNldEljb24obGFiZWxOYW1lOiBzdHJpbmcsIGljb246IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLmljb25zLmdldEljb24oaWNvbiwgaWNvbiwgZmFsc2UpLnRoZW4oaSA9PiB7XG4gICAgICAgICAgICBpZiAoaSA9PSBpY29uKSByZXR1cm47XG4gICAgICAgICAgICB0aGlzW2xhYmVsTmFtZV0gPSBpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgc2V0UGFnZXMoKTogbnVtYmVyIHtcbiAgICAgICAgaWYgKCF0aGlzLnBhZ2luYXRpb24pIHJldHVybjtcbiAgICAgICAgY29uc3QgdG90YWxQYWdlcyA9IHRoaXMucGFnaW5hdGlvbi5tYXhQYWdlO1xuICAgICAgICBsZXQgc3RhcnRQYWdlID0gTWF0aC5tYXgodGhpcy5wYWdpbmF0aW9uLnBhZ2UgLSBNYXRoLmZsb29yKHRoaXMubWF4U2l6ZSAvIDIpLCAxKTtcbiAgICAgICAgbGV0IGVuZFBhZ2UgPSBzdGFydFBhZ2UgKyB0aGlzLm1heFNpemUgLSAxO1xuICAgICAgICBpZiAoZW5kUGFnZSA+IHRvdGFsUGFnZXMpIHtcbiAgICAgICAgICAgIGVuZFBhZ2UgPSB0b3RhbFBhZ2VzO1xuICAgICAgICAgICAgc3RhcnRQYWdlID0gTWF0aC5tYXgoZW5kUGFnZSAtIHRoaXMubWF4U2l6ZSArIDEsIDEpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHBhZ2VzOiBudW1iZXJbXSA9IFtdO1xuICAgICAgICBmb3IgKGxldCBudW0gPSBzdGFydFBhZ2U7IG51bSA8PSBlbmRQYWdlOyBudW0rKykge1xuICAgICAgICAgICAgcGFnZXMucHVzaChudW0pO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucGFnZXMgPSBwYWdlcztcbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwicGFnaW5hdGlvbi1tZW51XCIgKm5nSWY9XCJwYWdpbmF0aW9uLnRvdGFsID4gcGFnaW5hdGlvbi5pdGVtc1BlclBhZ2VcIj5cbiAgICA8dWwgY2xhc3M9XCJwYWdpbmF0aW9uXCI+XG4gICAgICAgIDxsaSBjbGFzcz1cInBhZ2UtaXRlbVwiIFtuZ0NsYXNzXT1cIntkaXNhYmxlZDogIWhhc1ByZXZ9XCIgKm5nSWY9XCJib3VuZGFyeUxpbmtzXCI+XG4gICAgICAgICAgICA8YSBjbGFzcz1cInBhZ2UtbGlua1wiIChjbGljayk9XCJwYWdpbmF0ZSgxKVwiIFtpbm5lckhUTUxdPVwiZmlyc3RMYWJlbCB8IHNhZmVcIj48L2E+XG4gICAgICAgIDwvbGk+XG4gICAgICAgIDxsaSBjbGFzcz1cInBhZ2UtaXRlbVwiIFtuZ0NsYXNzXT1cIntkaXNhYmxlZDogIWhhc1ByZXZ9XCIgKm5nSWY9XCJkaXJlY3Rpb25MaW5rc1wiPlxuICAgICAgICAgICAgPGEgY2xhc3M9XCJwYWdlLWxpbmtcIiAoY2xpY2spPVwicGFnaW5hdGUocGFnaW5hdGlvbi5wYWdlIC0gMSlcIiBbaW5uZXJIVE1MXT1cInByZXZMYWJlbCB8IHNhZmVcIj48L2E+XG4gICAgICAgIDwvbGk+XG4gICAgICAgIDxsaSBjbGFzcz1cInBhZ2UtaXRlbVwiIFtuZ0NsYXNzXT1cInthY3RpdmU6IHBhZ2luYXRpb24ucGFnZSA9PSBwYWdlfVwiICpuZ0Zvcj1cImxldCBwYWdlIG9mIHBhZ2VzXCI+XG4gICAgICAgICAgICA8YSBjbGFzcz1cInBhZ2UtbGlua1wiIFtuZ0NsYXNzXT1cInthY3RpdmU6IHBhZ2luYXRpb24ucGFnZSA9PSBwYWdlfVwiIChjbGljayk9XCJwYWdpbmF0ZShwYWdlKVwiPnt7IHBhZ2UgfX08L2E+XG4gICAgICAgIDwvbGk+XG4gICAgICAgIDxsaSBjbGFzcz1cInBhZ2UtaXRlbVwiIFtuZ0NsYXNzXT1cIntkaXNhYmxlZDogIWhhc05leHR9XCIgKm5nSWY9XCJkaXJlY3Rpb25MaW5rc1wiPlxuICAgICAgICAgICAgPGEgY2xhc3M9XCJwYWdlLWxpbmtcIiAoY2xpY2spPVwicGFnaW5hdGUocGFnaW5hdGlvbi5wYWdlICsgMSlcIiBbaW5uZXJIVE1MXT1cIm5leHRMYWJlbCB8IHNhZmVcIj48L2E+XG4gICAgICAgIDwvbGk+XG4gICAgICAgIDxsaSBjbGFzcz1cInBhZ2UtaXRlbVwiIFtuZ0NsYXNzXT1cIntkaXNhYmxlZDogIWhhc05leHR9XCIgKm5nSWY9XCJib3VuZGFyeUxpbmtzXCI+XG4gICAgICAgICAgICA8YSBjbGFzcz1cInBhZ2UtbGlua1wiIChjbGljayk9XCJwYWdpbmF0ZShwYWdpbmF0aW9uLm1heFBhZ2UpXCIgW2lubmVySFRNTF09XCJsYXN0TGFiZWwgfCBzYWZlXCI+PC9hPlxuICAgICAgICA8L2xpPlxuICAgIDwvdWw+XG48L2Rpdj5cbiJdfQ==
|