@stemy/ngx-utils 12.2.7 → 12.2.9
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/bundles/stemy-ngx-utils.umd.js +10 -10
- package/bundles/stemy-ngx-utils.umd.js.map +1 -1
- package/esm2015/ngx-utils/directives/async-method.base.js +7 -4
- package/esm2015/ngx-utils/directives/async-method.directive.js +2 -9
- package/esm2015/ngx-utils/ngx-utils.module.js +3 -1
- package/esm2015/ngx-utils/services/universal.service.js +2 -2
- package/esm2015/ngx-utils/utils/object.utils.js +3 -3
- package/fesm2015/stemy-ngx-utils.js +9 -12
- package/fesm2015/stemy-ngx-utils.js.map +1 -1
- package/ngx-utils/directives/async-method.base.d.ts +2 -2
- package/ngx-utils/directives/async-method.directive.d.ts +1 -2
- package/ngx-utils/ngx-utils.module.d.ts +2 -2
- package/package.json +1 -1
- package/stemy-ngx-utils.metadata.json +1 -1
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { EventEmitter, HostBinding, HostListener, Input, Output
|
|
1
|
+
import { Directive, EventEmitter, HostBinding, HostListener, Inject, Input, Output } from "@angular/core";
|
|
2
|
+
import { TOASTER_SERVICE } from "../common-types";
|
|
2
3
|
export class AsyncMethodBase {
|
|
3
4
|
constructor(toaster) {
|
|
4
5
|
this.toaster = toaster;
|
|
@@ -46,10 +47,12 @@ export class AsyncMethodBase {
|
|
|
46
47
|
}
|
|
47
48
|
}
|
|
48
49
|
AsyncMethodBase.decorators = [
|
|
49
|
-
{ type:
|
|
50
|
+
{ type: Directive, args: [{
|
|
51
|
+
selector: "[_abstract_asyncMethodBase]"
|
|
52
|
+
},] }
|
|
50
53
|
];
|
|
51
54
|
AsyncMethodBase.ctorParameters = () => [
|
|
52
|
-
{ type: undefined }
|
|
55
|
+
{ type: undefined, decorators: [{ type: Inject, args: [TOASTER_SERVICE,] }] }
|
|
53
56
|
];
|
|
54
57
|
AsyncMethodBase.propDecorators = {
|
|
55
58
|
disabled: [{ type: Input }],
|
|
@@ -60,4 +63,4 @@ AsyncMethodBase.propDecorators = {
|
|
|
60
63
|
isLoading: [{ type: HostBinding, args: ["class.loading",] }],
|
|
61
64
|
click: [{ type: HostListener, args: ["click",] }]
|
|
62
65
|
};
|
|
63
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
66
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXN5bmMtbWV0aG9kLmJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbmd4LXV0aWxzL2RpcmVjdGl2ZXMvYXN5bmMtbWV0aG9kLmJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN4RyxPQUFPLEVBQThDLGVBQWUsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBSzdGLE1BQU0sT0FBTyxlQUFlO0lBb0J4QixZQUE4QyxPQUF3QjtRQUF4QixZQUFPLEdBQVAsT0FBTyxDQUFpQjtRQUNsRSxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksWUFBWSxFQUFpQixDQUFDO1FBQ25ELElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxZQUFZLEVBQWlCLENBQUM7SUFDckQsQ0FBQztJQWJELElBQ0ksVUFBVTtRQUNWLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFDSSxTQUFTO1FBQ1QsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3hCLENBQUM7SUFPUyxTQUFTO1FBQ2YsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUdELEtBQUs7UUFDRCxJQUFJLElBQUksQ0FBQyxRQUFRO1lBQUUsT0FBTztRQUMxQixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELFVBQVU7UUFDTixJQUFJLElBQUksQ0FBQyxPQUFPO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFDOUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFDcEIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ2hDLE1BQU0sTUFBTSxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDckQsSUFBSSxDQUFDLENBQUMsTUFBTSxZQUFZLE9BQU8sQ0FBQyxFQUFFO1lBQzlCLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1lBQ3JCLE9BQU8sS0FBSyxDQUFDO1NBQ2hCO1FBQ0QsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNqQixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztZQUNyQixJQUFJLE1BQU0sRUFBRTtnQkFDUixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDNUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7YUFDeEQ7UUFDTCxDQUFDLEVBQUUsTUFBTSxDQUFDLEVBQUU7WUFDUixJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU87Z0JBQzFCLE1BQU0sSUFBSSxLQUFLLENBQUMsK0NBQStDLENBQUMsQ0FBQztZQUNyRSxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztZQUNyQixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUMxQixJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN2RCxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7OztZQTdESixTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLDZCQUE2QjthQUMxQzs7OzRDQXFCZ0IsTUFBTSxTQUFDLGVBQWU7Ozt1QkFsQmxDLEtBQUs7c0JBQ0wsS0FBSzt3QkFFTCxNQUFNO3NCQUNOLE1BQU07eUJBSU4sV0FBVyxTQUFDLGdCQUFnQjt3QkFLNUIsV0FBVyxTQUFDLGVBQWU7b0JBYzNCLFlBQVksU0FBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaXJlY3RpdmUsIEV2ZW50RW1pdHRlciwgSG9zdEJpbmRpbmcsIEhvc3RMaXN0ZW5lciwgSW5qZWN0LCBJbnB1dCwgT3V0cHV0fSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge0FzeW5jTWV0aG9kLCBJQXN5bmNNZXNzYWdlLCBJVG9hc3RlclNlcnZpY2UsIFRPQVNURVJfU0VSVklDRX0gZnJvbSBcIi4uL2NvbW1vbi10eXBlc1wiO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgICBzZWxlY3RvcjogXCJbX2Fic3RyYWN0X2FzeW5jTWV0aG9kQmFzZV1cIlxyXG59KVxyXG5leHBvcnQgY2xhc3MgQXN5bmNNZXRob2RCYXNlIHtcclxuXHJcbiAgICBASW5wdXQoKSBkaXNhYmxlZDogYm9vbGVhbjtcclxuICAgIEBJbnB1dCgpIGNvbnRleHQ6IGFueTtcclxuXHJcbiAgICBAT3V0cHV0KCkgb25TdWNjZXNzOiBFdmVudEVtaXR0ZXI8SUFzeW5jTWVzc2FnZT47XHJcbiAgICBAT3V0cHV0KCkgb25FcnJvcjogRXZlbnRFbWl0dGVyPElBc3luY01lc3NhZ2U+O1xyXG5cclxuICAgIHByb3RlY3RlZCBsb2FkaW5nOiBib29sZWFuO1xyXG5cclxuICAgIEBIb3N0QmluZGluZyhcImNsYXNzLmRpc2FibGVkXCIpXHJcbiAgICBnZXQgaXNEaXNhYmxlZCgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5kaXNhYmxlZDtcclxuICAgIH1cclxuXHJcbiAgICBASG9zdEJpbmRpbmcoXCJjbGFzcy5sb2FkaW5nXCIpXHJcbiAgICBnZXQgaXNMb2FkaW5nKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmxvYWRpbmc7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3RydWN0b3IoQEluamVjdChUT0FTVEVSX1NFUlZJQ0UpIHJlYWRvbmx5IHRvYXN0ZXI6IElUb2FzdGVyU2VydmljZSkge1xyXG4gICAgICAgIHRoaXMub25TdWNjZXNzID0gbmV3IEV2ZW50RW1pdHRlcjxJQXN5bmNNZXNzYWdlPigpO1xyXG4gICAgICAgIHRoaXMub25FcnJvciA9IG5ldyBFdmVudEVtaXR0ZXI8SUFzeW5jTWVzc2FnZT4oKTtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgZ2V0TWV0aG9kKCk6IEFzeW5jTWV0aG9kIHtcclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICBASG9zdExpc3RlbmVyKFwiY2xpY2tcIilcclxuICAgIGNsaWNrKCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLmRpc2FibGVkKSByZXR1cm47XHJcbiAgICAgICAgdGhpcy5jYWxsTWV0aG9kKCk7XHJcbiAgICB9XHJcblxyXG4gICAgY2FsbE1ldGhvZCgpOiBib29sZWFuIHtcclxuICAgICAgICBpZiAodGhpcy5sb2FkaW5nKSByZXR1cm4gdHJ1ZTtcclxuICAgICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xyXG4gICAgICAgIGNvbnN0IG1ldGhvZCA9IHRoaXMuZ2V0TWV0aG9kKCk7XHJcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gIW1ldGhvZCA/IG51bGwgOiBtZXRob2QodGhpcy5jb250ZXh0KTtcclxuICAgICAgICBpZiAoIShyZXN1bHQgaW5zdGFuY2VvZiBQcm9taXNlKSkge1xyXG4gICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXN1bHQudGhlbihyZXN1bHQgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgaWYgKHJlc3VsdCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5vblN1Y2Nlc3MuZW1pdChyZXN1bHQpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy50b2FzdGVyLnN1Y2Nlc3MocmVzdWx0Lm1lc3NhZ2UsIHJlc3VsdC5jb250ZXh0KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0sIHJlYXNvbiA9PiB7XHJcbiAgICAgICAgICAgIGlmICghcmVhc29uIHx8ICFyZWFzb24ubWVzc2FnZSlcclxuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIlJlYXNvbiBtdXN0IGltcGxlbWVudCBJQXN5bmNNZXNzYWdlIGludGVyZmFjZVwiKTtcclxuICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMub25FcnJvci5lbWl0KHJlYXNvbik7XHJcbiAgICAgICAgICAgIHRoaXMudG9hc3Rlci5lcnJvcihyZWFzb24ubWVzc2FnZSwgcmVhc29uLmNvbnRleHQpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -1,10 +1,6 @@
|
|
|
1
|
-
import { Directive,
|
|
2
|
-
import { TOASTER_SERVICE } from "../common-types";
|
|
1
|
+
import { Directive, Input } from "@angular/core";
|
|
3
2
|
import { AsyncMethodBase } from "./async-method.base";
|
|
4
3
|
export class AsyncMethodDirective extends AsyncMethodBase {
|
|
5
|
-
constructor(toaster) {
|
|
6
|
-
super(toaster);
|
|
7
|
-
}
|
|
8
4
|
getMethod() {
|
|
9
5
|
return this.method;
|
|
10
6
|
}
|
|
@@ -15,10 +11,7 @@ AsyncMethodDirective.decorators = [
|
|
|
15
11
|
exportAs: "async-method"
|
|
16
12
|
},] }
|
|
17
13
|
];
|
|
18
|
-
AsyncMethodDirective.ctorParameters = () => [
|
|
19
|
-
{ type: undefined, decorators: [{ type: Inject, args: [TOASTER_SERVICE,] }] }
|
|
20
|
-
];
|
|
21
14
|
AsyncMethodDirective.propDecorators = {
|
|
22
15
|
method: [{ type: Input, args: ["async-method",] }]
|
|
23
16
|
};
|
|
24
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXN5bmMtbWV0aG9kLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9uZ3gtdXRpbHMvZGlyZWN0aXZlcy9hc3luYy1tZXRob2QuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRS9DLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQU1wRCxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsZUFBZTtJQUkzQyxTQUFTO1FBQ2YsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3ZCLENBQUM7OztZQVZKLFNBQVMsU0FBQztnQkFDUCxRQUFRLEVBQUUsZ0JBQWdCO2dCQUMxQixRQUFRLEVBQUUsY0FBYzthQUMzQjs7O3FCQUdJLEtBQUssU0FBQyxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaXJlY3RpdmUsIElucHV0fSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge0FzeW5jTWV0aG9kfSBmcm9tIFwiLi4vY29tbW9uLXR5cGVzXCI7XHJcbmltcG9ydCB7QXN5bmNNZXRob2RCYXNlfSBmcm9tIFwiLi9hc3luYy1tZXRob2QuYmFzZVwiO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgICBzZWxlY3RvcjogXCJbYXN5bmMtbWV0aG9kXVwiLFxyXG4gICAgZXhwb3J0QXM6IFwiYXN5bmMtbWV0aG9kXCJcclxufSlcclxuZXhwb3J0IGNsYXNzIEFzeW5jTWV0aG9kRGlyZWN0aXZlIGV4dGVuZHMgQXN5bmNNZXRob2RCYXNlIHtcclxuXHJcbiAgICBASW5wdXQoXCJhc3luYy1tZXRob2RcIikgbWV0aG9kOiBBc3luY01ldGhvZDtcclxuXHJcbiAgICBwcm90ZWN0ZWQgZ2V0TWV0aG9kKCk6IEFzeW5jTWV0aG9kIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5tZXRob2Q7XHJcbiAgICB9XHJcbn1cclxuIl19
|
|
@@ -28,6 +28,7 @@ import { TranslatedUrlSerializer } from "./services/translated-url.serializer";
|
|
|
28
28
|
import { UniversalService } from "./services/universal.service";
|
|
29
29
|
import { ResizeEventPlugin } from "./plugins/resize-event.plugin";
|
|
30
30
|
import { ScrollEventPlugin } from "./plugins/scroll-event.plugin";
|
|
31
|
+
import { AsyncMethodBase } from "./directives/async-method.base";
|
|
31
32
|
import { AsyncMethodDirective } from "./directives/async-method.directive";
|
|
32
33
|
import { BackgroundDirective } from "./directives/background.directive";
|
|
33
34
|
import { DynamicTableTemplateDirective } from "./directives/dynamic-table-template.directive";
|
|
@@ -103,6 +104,7 @@ export const pipes = [
|
|
|
103
104
|
];
|
|
104
105
|
// --- Directives ---
|
|
105
106
|
export const directives = [
|
|
107
|
+
AsyncMethodBase,
|
|
106
108
|
AsyncMethodDirective,
|
|
107
109
|
BackgroundDirective,
|
|
108
110
|
DynamicTableTemplateDirective,
|
|
@@ -241,4 +243,4 @@ NgxUtilsModule.decorators = [
|
|
|
241
243
|
providers: pipes
|
|
242
244
|
},] }
|
|
243
245
|
];
|
|
244
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXV0aWxzLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9uZ3gtdXRpbHMvbmd4LXV0aWxzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsZUFBZSxFQUFFLFlBQVksRUFBVSxRQUFRLEVBQXVCLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUM3RyxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUNoRSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM5QyxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUUxRCxPQUFPLEVBQ0gsV0FBVyxFQUNYLFlBQVksRUFDWixjQUFjLEVBQUUsZ0JBQWdCLEVBQ2hDLFlBQVksRUFHWixnQkFBZ0IsRUFDaEIsZUFBZSxFQUFFLFlBQVksRUFDN0IsZUFBZSxFQUNsQixNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUM3QyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDbEQsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQ2xELE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQzFELE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUMzRCxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDN0QsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQ3hELE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLGtDQUFr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LFlBQVksRUFBRTtvQkFDVixHQUFHLEtBQUs7b0JBQ1IsR0FBRyxVQUFVO29CQUNiLEdBQUcsVUFBVTtpQkFDaEI7Z0JBQ0QsT0FBTyxFQUFFO29CQUNMLFlBQVk7b0JBQ1osV0FBVztpQkFDZDtnQkFDRCxPQUFPLEVBQUU7b0JBQ0wsR0FBRyxLQUFLO29CQUNSLEdBQUcsVUFBVTtvQkFDYixHQUFHLFVBQVU7b0JBQ2IsV0FBVztpQkFDZDtnQkFDRCxTQUFTLEVBQUUsS0FBSzthQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QVBQX0lOSVRJQUxJWkVSLCBFcnJvckhhbmRsZXIsIEluamVjdCwgSW5qZWN0b3IsIE1vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge0VWRU5UX01BTkFHRVJfUExVR0lOU30gZnJvbSBcIkBhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXJcIjtcclxuaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcclxuaW1wb3J0IHtGb3Jtc01vZHVsZX0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7VXJsU2VyaWFsaXplcn0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xyXG5pbXBvcnQge0RldmljZURldGVjdG9yU2VydmljZX0gZnJvbSBcIm5neC1kZXZpY2UtZGV0ZWN0b3JcIjtcclxuXHJcbmltcG9ydCB7XHJcbiAgICBBUElfU0VSVklDRSxcclxuICAgIEFVVEhfU0VSVklDRSxcclxuICAgIENPTkZJR19TRVJWSUNFLCBHTE9CQUxfVEVNUExBVEVTLFxyXG4gICAgSUNPTl9TRVJWSUNFLFxyXG4gICAgSUNvbmZpZ1NlcnZpY2UsXHJcbiAgICBJTW9kdWxlQ29uZmlnLFxyXG4gICAgTEFOR1VBR0VfU0VSVklDRSxcclxuICAgIFBST01JU0VfU0VSVklDRSwgUk9PVF9FTEVNRU5ULFxyXG4gICAgVE9BU1RFUl9TRVJWSUNFXHJcbn0gZnJvbSBcIi4vY29tbW9uLXR5cGVzXCI7XHJcblxyXG5pbXBvcnQge0F1dGhHdWFyZH0gZnJvbSBcIi4vdXRpbHMvYXV0aC5ndWFyZFwiO1xyXG5pbXBvcnQge0FjbFNlcnZpY2V9IGZyb20gXCIuL3NlcnZpY2VzL2FjbC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7QXBpU2VydmljZX0gZnJvbSBcIi4vc2VydmljZXMvYXBpLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtTdGF0aWNBdXRoU2VydmljZX0gZnJvbSBcIi4vc2VydmljZXMvYXV0aC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7QmFzZUh0dHBDbGllbnR9IGZyb20gXCIuL3NlcnZpY2VzL2Jhc2UtaHR0cC5jbGllbnRcIjtcclxuaW1wb3J0IHtCYXNlSHR0cFNlcnZpY2V9IGZyb20gXCIuL3NlcnZpY2VzL2Jhc2UtaHR0cC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7Q29uZmlnU2VydmljZX0gZnJvbSBcIi4vc2VydmljZXMvY29uZmlnLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtFcnJvckhhbmRsZXJTZXJ2aWNlfSBmcm9tIFwiLi9zZXJ2aWNlcy9lcnJvci1oYW5kbGVyLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtFdmVudHNTZXJ2aWNlfSBmcm9tIFwiLi9zZXJ2aWNlcy9ldmVudHMuc2VydmljZVwiO1xyXG5pbXBvcnQge0Zvcm1hdHRlclNlcnZpY2V9IGZyb20gXCIuL3NlcnZpY2VzL2Zvcm1hdHRlci5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7R2xvYmFsVGVtcGxhdGVTZXJ2aWNlfSBmcm9tIFwiLi9zZXJ2aWNlcy9nbG9iYWwtdGVtcGxhdGUuc2VydmljZVwiO1xyXG5pbXBvcnQge0ljb25TZXJ2aWNlfSBmcm9tIFwiLi9zZXJ2aWNlcy9pY29uLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtMYW5ndWFnZVNlcnZpY2V9IGZyb20gXCIuL3NlcnZpY2VzL2xhbmd1YWdlLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtQcm9taXNlU2VydmljZX0gZnJvbSBcIi4vc2VydmljZXMvcHJvbWlzZS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7T3BlbkFwaVNlcnZpY2V9IGZyb20gXCIuL3NlcnZpY2VzL29wZW4tYXBpLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtTdGF0ZVNlcnZpY2V9IGZyb20gXCIuL3NlcnZpY2VzL3N0YXRlLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtTdGF0aWNMYW5ndWFnZVNlcnZpY2V9IGZyb20gXCIuL3NlcnZpY2VzL3N0YXRpYy1sYW5ndWFnZS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7U3RvcmFnZVNlcnZpY2V9IGZyb20gXCIuL3NlcnZpY2VzL3N0b3JhZ2Uuc2VydmljZVwiO1xyXG5pbXBvcnQge0NvbnNvbGVUb2FzdGVyU2VydmljZX0gZnJvbSBcIi4vc2VydmljZXMvdG9hc3Rlci5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7VHJhbnNsYXRlZFVybFNlcmlhbGl6ZXJ9IGZyb20gXCIuL3NlcnZpY2VzL3RyYW5zbGF0ZWQtdXJsLnNlcmlhbGl6ZXJcIjtcclxuaW1wb3J0IHtVbml2ZXJzYWxTZXJ2aWNlfSBmcm9tIFwiLi9zZXJ2aWNlcy91bml2ZXJzYWwuc2VydmljZVwiO1xyXG5pbXBvcnQge1Jlc2l6ZUV2ZW50UGx1Z2lufSBmcm9tIFwiLi9wbHVnaW5zL3Jlc2l6ZS1ldmVudC5wbHVnaW5cIjtcclxuaW1wb3J0IHtTY3JvbGxFdmVudFBsdWdpbn0gZnJvbSBcIi4vcGx1Z2lucy9zY3JvbGwtZXZlbnQucGx1Z2luXCI7XHJcbmltcG9ydCB7QXN5bmNNZXRob2REaXJlY3RpdmV9IGZyb20gXCIuL2RpcmVjdGl2ZXMvYXN5bmMtbWV0aG9kLmRpcmVjdGl2ZVwiO1xyXG5pbXBvcnQge0JhY2tncm91bmREaXJlY3RpdmV9IGZyb20gXCIuL2RpcmVjdGl2ZXMvYmFja2dyb3VuZC5kaXJlY3RpdmVcIjtcclxuaW1wb3J0IHtEeW5hbWljVGFibGVUZW1wbGF0ZURpcmVjdGl2ZX0gZnJvbSBcIi4vZGlyZWN0aXZlcy9keW5hbWljLXRhYmxlLXRlbXBsYXRlLmRpcmVjdGl2ZVwiO1xyXG5pbXBvcnQge0dsb2JhbFRlbXBsYXRlRGlyZWN0aXZlfSBmcm9tIFwiLi9kaXJlY3RpdmVzL2dsb2JhbC10ZW1wbGF0ZS5kaXJlY3RpdmVcIjtcclxuaW1wb3J0IHtJY29uRGlyZWN0aXZlfSBmcm9tIFwiLi9kaXJlY3RpdmVzL2ljb24uZGlyZWN0aXZlXCI7XHJcbmltcG9ydCB7Tmd4VGVtcGxhdGVPdXRsZXREaXJlY3RpdmV9IGZyb20gXCIuL2RpcmVjdGl2ZXMvbmd4LXRlbXBsYXRlLW91dGxldC5kaXJlY3RpdmVcIjtcclxuaW1wb3J0IHtQYWdpbmF0aW9uRGlyZWN0aXZlfSBmcm9tIFwiLi9kaXJlY3RpdmVzL3BhZ2luYXRpb24uZGlyZWN0aXZlXCI7XHJcbmltcG9ydCB7UGFnaW5hdGlvbkl0ZW1EaXJlY3RpdmV9IGZyb20gXCIuL2RpcmVjdGl2ZXMvcGFnaW5hdGlvbi1pdGVtLmRpcmVjdGl2ZVwiO1xyXG5pbXBvcnQge1Jlc291cmNlSWZEaXJlY3RpdmV9IGZyb20gXCIuL2RpcmVjdGl2ZXMvcmVzb3VyY2UtaWYuZGlyZWN0aXZlXCI7XHJcbmltcG9ydCB7U3RpY2t5RGlyZWN0aXZlfSBmcm9tIFwiLi9kaXJlY3RpdmVzL3N0aWNreS5kaXJlY3RpdmVcIjtcclxuaW1wb3J0IHtTdGlja3lDbGFzc0RpcmVjdGl2ZX0gZnJvbSBcIi4vZGlyZWN0aXZlcy9zdGlja3ktY2xhc3MuZGlyZWN0aXZlXCI7XHJcbmltcG9ydCB7VW5vcmRlcmVkTGlzdEl0ZW1EaXJlY3RpdmV9IGZyb20gXCIuL2RpcmVjdGl2ZXMvdW5vcmRlcmVkLWxpc3QtaXRlbS5kaXJlY3RpdmVcIjtcclxuaW1wb3J0IHtVbm9yZGVyZWRMaXN0VGVtcGxhdGVEaXJlY3RpdmV9IGZyb20gXCIuL2RpcmVjdGl2ZXMvdW5vcmRlcmVkLWxpc3QtdGVtcGxhdGUuZGlyZWN0aXZlXCI7XHJcblxyXG5pbXBvcnQge0NodW5rUGlwZX0gZnJvbSBcIi4vcGlwZXMvY2h1bmsucGlwZVwiO1xyXG5pbXBvcnQge0VudHJpZXNQaXBlfSBmcm9tIFwiLi9waXBlcy9lbnRyaWVzLnBpcGVcIjtcclxuaW1wb3J0IHtFeHRyYUl0ZW1Qcm9wZXJ0aWVzUGlwZX0gZnJvbSBcIi4vcGlwZXMvZXh0cmEtaXRlbS1wcm9wZXJ0aWVzLnBpcGVcIjtcclxuaW1wb3J0IHtGaWx0ZXJQaXBlfSBmcm9tIFwiLi9waXBlcy9maWx0ZXIucGlwZVwiO1xyXG5pbXBvcnQge0ZpbmRQaXBlfSBmcm9tIFwiLi9waXBlcy9maW5kLnBpcGVcIjtcclxuaW1wb3J0IHtGb3JtYXROdW1iZXJQaXBlfSBmcm9tIFwiLi9waXBlcy9mb3JtYXQtbnVtYmVyLnBpcGVcIjtcclxuaW1wb3J0IHtHZXRPZmZzZXRQaXBlfSBmcm9tIFwiLi9waXBlcy9nZXQtb2Zmc2V0LnBpcGVcIjtcclxuaW1wb3J0IHtHZXRUeXBlUGlwZX0gZnJvbSBcIi4vcGlwZXMvZ2V0LXR5cGUucGlwZVwiO1xyXG5pbXBvcnQge0dsb2JhbFRlbXBsYXRlUGlwZX0gZnJvbSBcIi4vcGlwZXMvZ2xvYmFsLXRlbXBsYXRlLnBpcGVcIjtcclxuaW1wb3J0IHtHcm91cEJ5UGlwZX0gZnJvbSBcIi4vcGlwZXMvZ3JvdXAtYnkucGlwZVwiO1xyXG5pbXBvcnQge0lzVHlwZVBpcGV9IGZyb20gXCIuL3BpcGVzL2lzLXR5cGUucGlwZVwiO1xyXG5pbXBvcnQge0pvaW5QaXBlfSBmcm9tIFwiLi9waXBlcy9qb2luLnBpcGVcIjtcclxuaW1wb3J0IHtLZXlzUGlwZX0gZnJvbSBcIi4vcGlwZXMva2V5cy5waXBlXCI7XHJcbmltcG9ydCB7TWFwUGlwZX0gZnJvbSBcIi4vcGlwZXMvbWFwLnBpcGVcIjtcclxuaW1wb3J0IHtNYXhQaXBlfSBmcm9tIFwiLi9waXBlcy9tYXgucGlwZVwiO1xyXG5pbXBvcnQge01pblBpcGV9IGZyb20gXCIuL3BpcGVzL21pbi5waXBlXCI7XHJcbmltcG9ydCB7UG9wUGlwZX0gZnJvbSBcIi4vcGlwZXMvcG9wLnBpcGVcIjtcclxuaW1wb3J0IHtSZWR1Y2VQaXBlfSBmcm9tIFwiLi9waXBlcy9yZWR1Y2UucGlwZVwiO1xyXG5pbXBvcnQge1JlbWFwUGlwZX0gZnJvbSBcIi4vcGlwZXMvcmVtYXAucGlwZVwiO1xyXG5pbXBvcnQge1JlcGxhY2VQaXBlfSBmcm9tIFwiLi9waXBlcy9yZXBsYWNlLnBpcGVcIjtcclxuaW1wb3J0IHtSZXZlcnNlUGlwZX0gZnJvbSBcIi4vcGlwZXMvcmV2ZXJzZS5waXBlXCI7XHJcbmltcG9ydCB7Um91bmRQaXBlfSBmcm9tIFwiLi9waXBlcy9yb3VuZC5waXBlXCI7XHJcbmltcG9ydCB7U2FmZUh0bWxQaXBlfSBmcm9tIFwiLi9waXBlcy9zYWZlLWh0bWwucGlwZVwiO1xyXG5pbXBvcnQge1NoaWZ0UGlwZX0gZnJvbSBcIi4vcGlwZXMvc2hpZnQucGlwZVwiO1xyXG5pbXBvcnQge1NwbGl0UGlwZX0gZnJvbSBcIi4vcGlwZXMvc3BsaXQucGlwZVwiO1xyXG5pbXBvcnQge1RyYW5zbGF0ZVBpcGV9IGZyb20gXCIuL3BpcGVzL3RyYW5zbGF0ZS5waXBlXCI7XHJcbmltcG9ydCB7VmFsdWVzUGlwZX0gZnJvbSBcIi4vcGlwZXMvdmFsdWVzLnBpcGVcIjtcclxuXHJcbmltcG9ydCB7RHluYW1pY1RhYmxlQ29tcG9uZW50fSBmcm9tIFwiLi9jb21wb25lbnRzL2R5bmFtaWMtdGFibGUvZHluYW1pYy10YWJsZS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtQYWdpbmF0aW9uTWVudUNvbXBvbmVudH0gZnJvbSBcIi4vY29tcG9uZW50cy9wYWdpbmF0aW9uLW1lbnUvcGFnaW5hdGlvbi1tZW51LmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge1Vub3JkZXJlZExpc3RDb21wb25lbnR9IGZyb20gXCIuL2NvbXBvbmVudHMvdW5vcmRlcmVkLWxpc3QvdW5vcmRlcmVkLWxpc3QuY29tcG9uZW50XCI7XHJcblxyXG4vLyAtLS0gUGlwZXMgLS0tXHJcbmV4cG9ydCBjb25zdCBwaXBlcyA9IFtcclxuICAgIENodW5rUGlwZSxcclxuICAgIEVudHJpZXNQaXBlLFxyXG4gICAgRXh0cmFJdGVtUHJvcGVydGllc1BpcGUsXHJcbiAgICBGaWx0ZXJQaXBlLFxyXG4gICAgRmluZFBpcGUsXHJcbiAgICBGb3JtYXROdW1iZXJQaXBlLFxyXG4gICAgR2V0T2Zmc2V0UGlwZSxcclxuICAgIEdldFR5cGVQaXBlLFxyXG4gICAgR2xvYmFsVGVtcGxhdGVQaXBlLFxyXG4gICAgR3JvdXBCeVBpcGUsXHJcbiAgICBJc1R5cGVQaXBlLFxyXG4gICAgSm9pblBpcGUsXHJcbiAgICBLZXlzUGlwZSxcclxuICAgIE1hcFBpcGUsXHJcbiAgICBNYXhQaXBlLFxyXG4gICAgTWluUGlwZSxcclxuICAgIFBvcFBpcGUsXHJcbiAgICBSZWR1Y2VQaXBlLFxyXG4gICAgUmVtYXBQaXBlLFxyXG4gICAgUmVwbGFjZVBpcGUsXHJcbiAgICBSZXZlcnNlUGlwZSxcclxuICAgIFJvdW5kUGlwZSxcclxuICAgIFNhZmVIdG1sUGlwZSxcclxuICAgIFNoaWZ0UGlwZSxcclxuICAgIFNwbGl0UGlwZSxcclxuICAgIFRyYW5zbGF0ZVBpcGUsXHJcbiAgICBWYWx1ZXNQaXBlXHJcbl07XHJcblxyXG4vLyAtLS0gRGlyZWN0aXZlcyAtLS1cclxuZXhwb3J0IGNvbnN0IGRpcmVjdGl2ZXMgPSBbXHJcbiAgICBBc3luY01ldGhvZERpcmVjdGl2ZSxcclxuICAgIEJhY2tncm91bmREaXJlY3RpdmUsXHJcbiAgICBEeW5hbWljVGFibGVUZW1wbGF0ZURpcmVjdGl2ZSxcclxuICAgIEdsb2JhbFRlbXBsYXRlRGlyZWN0aXZlLFxyXG4gICAgSWNvbkRpcmVjdGl2ZSxcclxuICAgIE5neFRlbXBsYXRlT3V0bGV0RGlyZWN0aXZlLFxyXG4gICAgUGFnaW5hdGlvbkRpcmVjdGl2ZSxcclxuICAgIFBhZ2luYXRpb25JdGVtRGlyZWN0aXZlLFxyXG4gICAgUmVzb3VyY2VJZkRpcmVjdGl2ZSxcclxuICAgIFN0aWNreURpcmVjdGl2ZSxcclxuICAgIFN0aWNreUNsYXNzRGlyZWN0aXZlLFxyXG4gICAgVW5vcmRlcmVkTGlzdEl0ZW1EaXJlY3RpdmUsXHJcbiAgICBVbm9yZGVyZWRMaXN0VGVtcGxhdGVEaXJlY3RpdmVcclxuXTtcclxuXHJcbi8vIC0tLSBDb21wb25lbnRzIC0tLVxyXG5leHBvcnQgY29uc3QgY29tcG9uZW50cyA9IFtcclxuICAgIER5bmFtaWNUYWJsZUNvbXBvbmVudCxcclxuICAgIFBhZ2luYXRpb25NZW51Q29tcG9uZW50LFxyXG4gICAgVW5vcmRlcmVkTGlzdENvbXBvbmVudFxyXG5dO1xyXG5cclxuZXhwb3J0IGNvbnN0IHByb3ZpZGVycyA9IFtcclxuICAgIC4uLnBpcGVzLFxyXG4gICAgQmFzZUh0dHBDbGllbnQsXHJcbiAgICBCYXNlSHR0cFNlcnZpY2UsXHJcbiAgICBBdXRoR3VhcmQsXHJcbiAgICBBY2xTZXJ2aWNlLFxyXG4gICAgQXBpU2VydmljZSxcclxuICAgIFN0YXRpY0F1dGhTZXJ2aWNlLFxyXG4gICAgQ29uZmlnU2VydmljZSxcclxuICAgIEVycm9ySGFuZGxlclNlcnZpY2UsXHJcbiAgICBFdmVudHNTZXJ2aWNlLFxyXG4gICAgRm9ybWF0dGVyU2VydmljZSxcclxuICAgIEdsb2JhbFRlbXBsYXRlU2VydmljZSxcclxuICAgIEljb25TZXJ2aWNlLFxyXG4gICAgTGFuZ3VhZ2VTZXJ2aWNlLFxyXG4gICAgT3BlbkFwaVNlcnZpY2UsXHJcbiAgICBQcm9taXNlU2VydmljZSxcclxuICAgIFN0YXRlU2VydmljZSxcclxuICAgIFN0YXRpY0xhbmd1YWdlU2VydmljZSxcclxuICAgIFN0b3JhZ2VTZXJ2aWNlLFxyXG4gICAgQ29uc29sZVRvYXN0ZXJTZXJ2aWNlLFxyXG4gICAgVHJhbnNsYXRlZFVybFNlcmlhbGl6ZXIsXHJcbiAgICBVbml2ZXJzYWxTZXJ2aWNlLFxyXG4gICAgRGV2aWNlRGV0ZWN0b3JTZXJ2aWNlLFxyXG4gICAge1xyXG4gICAgICAgIHByb3ZpZGU6IEVWRU5UX01BTkFHRVJfUExVR0lOUyxcclxuICAgICAgICB1c2VDbGFzczogUmVzaXplRXZlbnRQbHVnaW4sXHJcbiAgICAgICAgbXVsdGk6IHRydWVcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgICAgcHJvdmlkZTogRVZFTlRfTUFOQUdFUl9QTFVHSU5TLFxyXG4gICAgICAgIHVzZUNsYXNzOiBTY3JvbGxFdmVudFBsdWdpbixcclxuICAgICAgICBtdWx0aTogdHJ1ZVxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICBwcm92aWRlOiBVcmxTZXJpYWxpemVyLFxyXG4gICAgICAgIHVzZUV4aXN0aW5nOiBUcmFuc2xhdGVkVXJsU2VyaWFsaXplclxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICBwcm92aWRlOiBFcnJvckhhbmRsZXIsXHJcbiAgICAgICAgdXNlRXhpc3Rpbmc6IEVycm9ySGFuZGxlclNlcnZpY2VcclxuICAgIH1cclxuXHJcbl07XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gbG9hZENvbmZpZyhjb25maWc6IElDb25maWdTZXJ2aWNlKTogYW55IHtcclxuICAgIHJldHVybiBjb25maWcubG9hZDtcclxufVxyXG5cclxuQE5nTW9kdWxlKHtcclxuICAgIGRlY2xhcmF0aW9uczogW1xyXG4gICAgICAgIC4uLnBpcGVzLFxyXG4gICAgICAgIC4uLmRpcmVjdGl2ZXMsXHJcbiAgICAgICAgLi4uY29tcG9uZW50c1xyXG4gICAgXSxcclxuICAgIGltcG9ydHM6IFtcclxuICAgICAgICBDb21tb25Nb2R1bGUsXHJcbiAgICAgICAgRm9ybXNNb2R1bGVcclxuICAgIF0sXHJcbiAgICBleHBvcnRzOiBbXHJcbiAgICAgICAgLi4ucGlwZXMsXHJcbiAgICAgICAgLi4uZGlyZWN0aXZlcyxcclxuICAgICAgICAuLi5jb21wb25lbnRzLFxyXG4gICAgICAgIEZvcm1zTW9kdWxlXHJcbiAgICBdLFxyXG4gICAgcHJvdmlkZXJzOiBwaXBlc1xyXG59KVxyXG5leHBvcnQgY2xhc3MgTmd4VXRpbHNNb2R1bGUge1xyXG4gICAgc3RhdGljIGZvclJvb3QoY29uZmlnPzogSU1vZHVsZUNvbmZpZyk6IE1vZHVsZVdpdGhQcm92aWRlcnM8Tmd4VXRpbHNNb2R1bGU+IHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICBuZ01vZHVsZTogTmd4VXRpbHNNb2R1bGUsXHJcbiAgICAgICAgICAgIHByb3ZpZGVyczogW1xyXG4gICAgICAgICAgICAgICAgLi4ucHJvdmlkZXJzLFxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIHByb3ZpZGU6IEFQSV9TRVJWSUNFLFxyXG4gICAgICAgICAgICAgICAgICAgIHVzZUV4aXN0aW5nOiAoIWNvbmZpZyA/IG51bGwgOiBjb25maWcuYXBpU2VydmljZSkgfHwgQXBpU2VydmljZVxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICBwcm92aWRlOiBBVVRIX1NFUlZJQ0UsXHJcbiAgICAgICAgICAgICAgICAgICAgdXNlRXhpc3Rpbmc6ICghY29uZmlnID8gbnVsbCA6IGNvbmZpZy5hdXRoU2VydmljZSkgfHwgU3RhdGljQXV0aFNlcnZpY2VcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgcHJvdmlkZTogSUNPTl9TRVJWSUNFLFxyXG4gICAgICAgICAgICAgICAgICAgIHVzZUV4aXN0aW5nOiAoIWNvbmZpZyA/IG51bGwgOiBjb25maWcuaWNvblNlcnZpY2UpIHx8IEljb25TZXJ2aWNlXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIHByb3ZpZGU6IExBTkdVQUdFX1NFUlZJQ0UsXHJcbiAgICAgICAgICAgICAgICAgICAgdXNlRXhpc3Rpbmc6ICghY29uZmlnID8gbnVsbCA6IGNvbmZpZy5sYW5ndWFnZVNlcnZpY2UpIHx8IFN0YXRpY0xhbmd1YWdlU2VydmljZVxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICBwcm92aWRlOiBUT0FTVEVSX1NFUlZJQ0UsXHJcbiAgICAgICAgICAgICAgICAgICAgdXNlRXhpc3Rpbmc6ICghY29uZmlnID8gbnVsbCA6IGNvbmZpZy50b2FzdGVyU2VydmljZSkgfHwgQ29uc29sZVRvYXN0ZXJTZXJ2aWNlXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIHByb3ZpZGU6IFBST01JU0VfU0VSVklDRSxcclxuICAgICAgICAgICAgICAgICAgICB1c2VFeGlzdGluZzogKCFjb25maWcgPyBudWxsIDogY29uZmlnLnByb21pc2VTZXJ2aWNlKSB8fCBQcm9taXNlU2VydmljZVxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICBwcm92aWRlOiBDT05GSUdfU0VSVklDRSxcclxuICAgICAgICAgICAgICAgICAgICB1c2VFeGlzdGluZzogKCFjb25maWcgPyBudWxsIDogY29uZmlnLmNvbmZpZ1NlcnZpY2UpIHx8IENvbmZpZ1NlcnZpY2VcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgcHJvdmlkZTogR0xPQkFMX1RFTVBMQVRFUyxcclxuICAgICAgICAgICAgICAgICAgICB1c2VFeGlzdGluZzogKCFjb25maWcgPyBudWxsIDogY29uZmlnLmdsb2JhbFRlbXBsYXRlcykgfHwgR2xvYmFsVGVtcGxhdGVTZXJ2aWNlXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIHByb3ZpZGU6IFJPT1RfRUxFTUVOVCxcclxuICAgICAgICAgICAgICAgICAgICB1c2VWYWx1ZTogbnVsbFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICBwcm92aWRlOiBBUFBfSU5JVElBTElaRVIsXHJcbiAgICAgICAgICAgICAgICAgICAgdXNlRmFjdG9yeTogKCFjb25maWcgPyBudWxsIDogY29uZmlnLmluaXRpYWxpemVBcHApIHx8IGxvYWRDb25maWcsXHJcbiAgICAgICAgICAgICAgICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICAgICAgICAgICAgICAgICAgZGVwczogWyghY29uZmlnID8gbnVsbCA6IGNvbmZpZy5pbml0aWFsaXplQXBwKSA/IEluamVjdG9yIDogQ09ORklHX1NFUlZJQ0VdXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIF1cclxuICAgICAgICB9O1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
|
|
246
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXV0aWxzLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9uZ3gtdXRpbHMvbmd4LXV0aWxzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsZUFBZSxFQUFFLFlBQVksRUFBVSxRQUFRLEVBQXVCLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUM3RyxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUNoRSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM5QyxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUUxRCxPQUFPLEVBQ0gsV0FBVyxFQUNYLFlBQVksRUFDWixjQUFjLEVBQUUsZ0JBQWdCLEVBQ2hDLFlBQVksRUFHWixnQkFBZ0IsRUFDaEIsZUFBZSxFQUFFLFlBQVksRUFDN0IsZUFBZSxFQUNsQixNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUM3QyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDbEQsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQ2xELE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQzFELE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUMzRCxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDN0QsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQ3hELE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBQ3JFLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUN4RCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUM5RCxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSxvQ0FBb0MsQ0FBQztBQUN6RSxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDcEQsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQzVELE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUMxRCxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFDM0QsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ3RELE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBQ3pFLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUMxRCxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUNqRSxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUM3RSxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUM5RCxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUNoRSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUNoRSxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFDL0QsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFDekUsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFDdEUsT0FBTyxFQUFDLDZCQUE2QixFQUFDLE1BQU0sK0NBQStDLENBQUM7QUFDNUYsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sd0NBQXdDLENBQUM7QUFDL0UsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQzFELE9BQU8sRUFBQywwQkFBMEIsRUFBQyxNQUFNLDRDQUE0QyxDQUFDO0FBQ3RGLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQ3RFLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLHdDQUF3QyxDQUFDO0FBQy9FLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUM5RCxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUN6RSxPQUFPLEVBQUMsMEJBQTBCLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQztBQUN0RixPQUFPLEVBQUMsOEJBQThCLEVBQUMsTUFBTSxnREFBZ0QsQ0FBQztBQUU5RixPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFDN0MsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ2pELE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBQzNFLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUMvQyxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDM0MsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDNUQsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQ3RELE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUNsRCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUNoRSxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFDbEQsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ2hELE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUMzQyxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDM0MsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQ3pDLE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUN6QyxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFDekMsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQ3pDLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUMvQyxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFDN0MsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ2pELE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUNqRCxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFDN0MsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQ3BELE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUM3QyxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFDN0MsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUUvQyxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSxvREFBb0QsQ0FBQztBQUN6RixPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSx3REFBd0QsQ0FBQztBQUMvRixPQUFPLEVBQUMsc0JBQXNCLEVBQUMsTUFBTSxzREFBc0QsQ0FBQztBQUU1RixnQkFBZ0I7QUFDaEIsTUFBTSxDQUFDLE1BQU0sS0FBSyxHQUFHO0lBQ2pCLFNBQVM7SUFDVCxXQUFXO0lBQ1gsdUJBQXVCO0lBQ3ZCLFVBQVU7SUFDVixRQUFRO0lBQ1IsZ0JBQWdCO0lBQ2hCLGFBQWE7SUFDYixXQUFXO0lBQ1gsa0JBQWtCO0lBQ2xCLFdBQVc7SUFDWCxVQUFVO0lBQ1YsUUFBUTtJQUNSLFFBQVE7SUFDUixPQUFPO0lBQ1AsT0FBTztJQUNQLE9BQU87SUFDUCxPQUFPO0lBQ1AsVUFBVTtJQUNWLFNBQVM7SUFDVCxXQUFXO0lBQ1gsV0FBVztJQUNYLFNBQVM7SUFDVCxZQUFZO0lBQ1osU0FBUztJQUNULFNBQVM7SUFDVCxhQUFhO0lBQ2IsVUFBVTtDQUNiLENBQUM7QUFFRixxQkFBcUI7QUFDckIsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHO0lBQ3RCLGVBQWU7SUFDZixvQkFBb0I7SUFDcEIsbUJBQW1CO0lBQ25CLDZCQUE2QjtJQUM3Qix1QkFBdUI7SUFDdkIsYUFBYTtJQUNiLDBCQUEwQjtJQUMxQixtQkFBbUI7SUFDbkIsdUJBQXVCO0lBQ3ZCLG1CQUFtQjtJQUNuQixlQUFlO0lBQ2Ysb0JBQW9CO0lBQ3BCLDBCQUEwQjtJQUMxQiw4QkFBOEI7Q0FDakMsQ0FBQztBQUVGLHFCQUFxQjtBQUNyQixNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUc7SUFDdEIscUJBQXFCO0lBQ3JCLHVCQUF1QjtJQUN2QixzQkFBc0I7Q0FDekIsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRztJQUNyQixHQUFHLEtBQUs7SUFDUixjQUFjO0lBQ2QsZUFBZTtJQUNmLFNBQVM7SUFDVCxVQUFVO0lBQ1YsVUFBVTtJQUNWLGlCQUFpQjtJQUNqQixhQUFhO0lBQ2IsbUJBQW1CO0lBQ25CLGFBQWE7SUFDYixnQkFBZ0I7SUFDaEIscUJBQXFCO0lBQ3JCLFdBQVc7SUFDWCxlQUFlO0lBQ2YsY0FBYztJQUNkLGNBQWM7SUFDZCxZQUFZO0lBQ1oscUJBQXFCO0lBQ3JCLGNBQWM7SUFDZCxxQkFBcUI7SUFDckIsdUJBQXVCO0lBQ3ZCLGdCQUFnQjtJQUNoQixxQkFBcUI7SUFDckI7UUFDSSxPQUFPLEVBQUUscUJBQXFCO1FBQzlCLFFBQVEsRUFBRSxpQkFBaUI7UUFDM0IsS0FBSyxFQUFFLElBQUk7S0FDZDtJQUNEO1FBQ0ksT0FBTyxFQUFFLHFCQUFxQjtRQUM5QixRQUFRLEVBQUUsaUJBQWlCO1FBQzNCLEtBQUssRUFBRSxJQUFJO0tBQ2Q7SUFDRDtRQUNJLE9BQU8sRUFBRSxhQUFhO1FBQ3RCLFdBQVcsRUFBRSx1QkFBdUI7S0FDdkM7SUFDRDtRQUNJLE9BQU8sRUFBRSxZQUFZO1FBQ3JCLFdBQVcsRUFBRSxtQkFBbUI7S0FDbkM7Q0FFSixDQUFDO0FBRUYsTUFBTSxVQUFVLFVBQVUsQ0FBQyxNQUFzQjtJQUM3QyxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUM7QUFDdkIsQ0FBQztBQW9CRCxNQUFNLE9BQU8sY0FBYztJQUN2QixNQUFNLENBQUMsT0FBTyxDQUFDLE1BQXNCO1FBQ2pDLE9BQU87WUFDSCxRQUFRLEVBQUUsY0FBYztZQUN4QixTQUFTLEVBQUU7Z0JBQ1AsR0FBRyxTQUFTO2dCQUNaO29CQUNJLE9BQU8sRUFBRSxXQUFXO29CQUNwQixXQUFXLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksVUFBVTtpQkFDbEU7Z0JBQ0Q7b0JBQ0ksT0FBTyxFQUFFLFlBQVk7b0JBQ3JCLFdBQVcsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxpQkFBaUI7aUJBQzFFO2dCQUNEO29CQUNJLE9BQU8sRUFBRSxZQUFZO29CQUNyQixXQUFXLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLElBQUksV0FBVztpQkFDcEU7Z0JBQ0Q7b0JBQ0ksT0FBTyxFQUFFLGdCQUFnQjtvQkFDekIsV0FBVyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxJQUFJLHFCQUFxQjtpQkFDbEY7Z0JBQ0Q7b0JBQ0ksT0FBTyxFQUFFLGVBQWU7b0JBQ3hCLFdBQVcsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsSUFBSSxxQkFBcUI7aUJBQ2pGO2dCQUNEO29CQUNJLE9BQU8sRUFBRSxlQUFlO29CQUN4QixXQUFXLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLElBQUksY0FBYztpQkFDMUU7Z0JBQ0Q7b0JBQ0ksT0FBTyxFQUFFLGNBQWM7b0JBQ3ZCLFdBQVcsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsSUFBSSxhQUFhO2lCQUN4RTtnQkFDRDtvQkFDSSxPQUFPLEVBQUUsZ0JBQWdCO29CQUN6QixXQUFXLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLElBQUkscUJBQXFCO2lCQUNsRjtnQkFDRDtvQkFDSSxPQUFPLEVBQUUsWUFBWTtvQkFDckIsUUFBUSxFQUFFLElBQUk7aUJBQ2pCO2dCQUNEO29CQUNJLE9BQU8sRUFBRSxlQUFlO29CQUN4QixVQUFVLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLElBQUksVUFBVTtvQkFDakUsS0FBSyxFQUFFLElBQUk7b0JBQ1gsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDO2lCQUM5RTthQUNKO1NBQ0osQ0FBQztJQUNOLENBQUM7OztZQXBFSixRQUFRLFNBQUM7Z0JBQ04sWUFBWSxFQUFFO29CQUNWLEdBQUcsS0FBSztvQkFDUixHQUFHLFVBQVU7b0JBQ2IsR0FBRyxVQUFVO2lCQUNoQjtnQkFDRCxPQUFPLEVBQUU7b0JBQ0wsWUFBWTtvQkFDWixXQUFXO2lCQUNkO2dCQUNELE9BQU8sRUFBRTtvQkFDTCxHQUFHLEtBQUs7b0JBQ1IsR0FBRyxVQUFVO29CQUNiLEdBQUcsVUFBVTtvQkFDYixXQUFXO2lCQUNkO2dCQUNELFNBQVMsRUFBRSxLQUFLO2FBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBUFBfSU5JVElBTElaRVIsIEVycm9ySGFuZGxlciwgSW5qZWN0LCBJbmplY3RvciwgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGV9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7RVZFTlRfTUFOQUdFUl9QTFVHSU5TfSBmcm9tIFwiQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3NlclwiO1xyXG5pbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xyXG5pbXBvcnQge0Zvcm1zTW9kdWxlfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuaW1wb3J0IHtVcmxTZXJpYWxpemVyfSBmcm9tIFwiQGFuZ3VsYXIvcm91dGVyXCI7XHJcbmltcG9ydCB7RGV2aWNlRGV0ZWN0b3JTZXJ2aWNlfSBmcm9tIFwibmd4LWRldmljZS1kZXRlY3RvclwiO1xyXG5cclxuaW1wb3J0IHtcclxuICAgIEFQSV9TRVJWSUNFLFxyXG4gICAgQVVUSF9TRVJWSUNFLFxyXG4gICAgQ09ORklHX1NFUlZJQ0UsIEdMT0JBTF9URU1QTEFURVMsXHJcbiAgICBJQ09OX1NFUlZJQ0UsXHJcbiAgICBJQ29uZmlnU2VydmljZSxcclxuICAgIElNb2R1bGVDb25maWcsXHJcbiAgICBMQU5HVUFHRV9TRVJWSUNFLFxyXG4gICAgUFJPTUlTRV9TRVJWSUNFLCBST09UX0VMRU1FTlQsXHJcbiAgICBUT0FTVEVSX1NFUlZJQ0VcclxufSBmcm9tIFwiLi9jb21tb24tdHlwZXNcIjtcclxuXHJcbmltcG9ydCB7QXV0aEd1YXJkfSBmcm9tIFwiLi91dGlscy9hdXRoLmd1YXJkXCI7XHJcbmltcG9ydCB7QWNsU2VydmljZX0gZnJvbSBcIi4vc2VydmljZXMvYWNsLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtBcGlTZXJ2aWNlfSBmcm9tIFwiLi9zZXJ2aWNlcy9hcGkuc2VydmljZVwiO1xyXG5pbXBvcnQge1N0YXRpY0F1dGhTZXJ2aWNlfSBmcm9tIFwiLi9zZXJ2aWNlcy9hdXRoLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtCYXNlSHR0cENsaWVudH0gZnJvbSBcIi4vc2VydmljZXMvYmFzZS1odHRwLmNsaWVudFwiO1xyXG5pbXBvcnQge0Jhc2VIdHRwU2VydmljZX0gZnJvbSBcIi4vc2VydmljZXMvYmFzZS1odHRwLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtDb25maWdTZXJ2aWNlfSBmcm9tIFwiLi9zZXJ2aWNlcy9jb25maWcuc2VydmljZVwiO1xyXG5pbXBvcnQge0Vycm9ySGFuZGxlclNlcnZpY2V9IGZyb20gXCIuL3NlcnZpY2VzL2Vycm9yLWhhbmRsZXIuc2VydmljZVwiO1xyXG5pbXBvcnQge0V2ZW50c1NlcnZpY2V9IGZyb20gXCIuL3NlcnZpY2VzL2V2ZW50cy5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7Rm9ybWF0dGVyU2VydmljZX0gZnJvbSBcIi4vc2VydmljZXMvZm9ybWF0dGVyLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtHbG9iYWxUZW1wbGF0ZVNlcnZpY2V9IGZyb20gXCIuL3NlcnZpY2VzL2dsb2JhbC10ZW1wbGF0ZS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7SWNvblNlcnZpY2V9IGZyb20gXCIuL3NlcnZpY2VzL2ljb24uc2VydmljZVwiO1xyXG5pbXBvcnQge0xhbmd1YWdlU2VydmljZX0gZnJvbSBcIi4vc2VydmljZXMvbGFuZ3VhZ2Uuc2VydmljZVwiO1xyXG5pbXBvcnQge1Byb21pc2VTZXJ2aWNlfSBmcm9tIFwiLi9zZXJ2aWNlcy9wcm9taXNlLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtPcGVuQXBpU2VydmljZX0gZnJvbSBcIi4vc2VydmljZXMvb3Blbi1hcGkuc2VydmljZVwiO1xyXG5pbXBvcnQge1N0YXRlU2VydmljZX0gZnJvbSBcIi4vc2VydmljZXMvc3RhdGUuc2VydmljZVwiO1xyXG5pbXBvcnQge1N0YXRpY0xhbmd1YWdlU2VydmljZX0gZnJvbSBcIi4vc2VydmljZXMvc3RhdGljLWxhbmd1YWdlLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtTdG9yYWdlU2VydmljZX0gZnJvbSBcIi4vc2VydmljZXMvc3RvcmFnZS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7Q29uc29sZVRvYXN0ZXJTZXJ2aWNlfSBmcm9tIFwiLi9zZXJ2aWNlcy90b2FzdGVyLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtUcmFuc2xhdGVkVXJsU2VyaWFsaXplcn0gZnJvbSBcIi4vc2VydmljZXMvdHJhbnNsYXRlZC11cmwuc2VyaWFsaXplclwiO1xyXG5pbXBvcnQge1VuaXZlcnNhbFNlcnZpY2V9IGZyb20gXCIuL3NlcnZpY2VzL3VuaXZlcnNhbC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7UmVzaXplRXZlbnRQbHVnaW59IGZyb20gXCIuL3BsdWdpbnMvcmVzaXplLWV2ZW50LnBsdWdpblwiO1xyXG5pbXBvcnQge1Njcm9sbEV2ZW50UGx1Z2lufSBmcm9tIFwiLi9wbHVnaW5zL3Njcm9sbC1ldmVudC5wbHVnaW5cIjtcclxuaW1wb3J0IHtBc3luY01ldGhvZEJhc2V9IGZyb20gXCIuL2RpcmVjdGl2ZXMvYXN5bmMtbWV0aG9kLmJhc2VcIjtcclxuaW1wb3J0IHtBc3luY01ldGhvZERpcmVjdGl2ZX0gZnJvbSBcIi4vZGlyZWN0aXZlcy9hc3luYy1tZXRob2QuZGlyZWN0aXZlXCI7XHJcbmltcG9ydCB7QmFja2dyb3VuZERpcmVjdGl2ZX0gZnJvbSBcIi4vZGlyZWN0aXZlcy9iYWNrZ3JvdW5kLmRpcmVjdGl2ZVwiO1xyXG5pbXBvcnQge0R5bmFtaWNUYWJsZVRlbXBsYXRlRGlyZWN0aXZlfSBmcm9tIFwiLi9kaXJlY3RpdmVzL2R5bmFtaWMtdGFibGUtdGVtcGxhdGUuZGlyZWN0aXZlXCI7XHJcbmltcG9ydCB7R2xvYmFsVGVtcGxhdGVEaXJlY3RpdmV9IGZyb20gXCIuL2RpcmVjdGl2ZXMvZ2xvYmFsLXRlbXBsYXRlLmRpcmVjdGl2ZVwiO1xyXG5pbXBvcnQge0ljb25EaXJlY3RpdmV9IGZyb20gXCIuL2RpcmVjdGl2ZXMvaWNvbi5kaXJlY3RpdmVcIjtcclxuaW1wb3J0IHtOZ3hUZW1wbGF0ZU91dGxldERpcmVjdGl2ZX0gZnJvbSBcIi4vZGlyZWN0aXZlcy9uZ3gtdGVtcGxhdGUtb3V0bGV0LmRpcmVjdGl2ZVwiO1xyXG5pbXBvcnQge1BhZ2luYXRpb25EaXJlY3RpdmV9IGZyb20gXCIuL2RpcmVjdGl2ZXMvcGFnaW5hdGlvbi5kaXJlY3RpdmVcIjtcclxuaW1wb3J0IHtQYWdpbmF0aW9uSXRlbURpcmVjdGl2ZX0gZnJvbSBcIi4vZGlyZWN0aXZlcy9wYWdpbmF0aW9uLWl0ZW0uZGlyZWN0aXZlXCI7XHJcbmltcG9ydCB7UmVzb3VyY2VJZkRpcmVjdGl2ZX0gZnJvbSBcIi4vZGlyZWN0aXZlcy9yZXNvdXJjZS1pZi5kaXJlY3RpdmVcIjtcclxuaW1wb3J0IHtTdGlja3lEaXJlY3RpdmV9IGZyb20gXCIuL2RpcmVjdGl2ZXMvc3RpY2t5LmRpcmVjdGl2ZVwiO1xyXG5pbXBvcnQge1N0aWNreUNsYXNzRGlyZWN0aXZlfSBmcm9tIFwiLi9kaXJlY3RpdmVzL3N0aWNreS1jbGFzcy5kaXJlY3RpdmVcIjtcclxuaW1wb3J0IHtVbm9yZGVyZWRMaXN0SXRlbURpcmVjdGl2ZX0gZnJvbSBcIi4vZGlyZWN0aXZlcy91bm9yZGVyZWQtbGlzdC1pdGVtLmRpcmVjdGl2ZVwiO1xyXG5pbXBvcnQge1Vub3JkZXJlZExpc3RUZW1wbGF0ZURpcmVjdGl2ZX0gZnJvbSBcIi4vZGlyZWN0aXZlcy91bm9yZGVyZWQtbGlzdC10ZW1wbGF0ZS5kaXJlY3RpdmVcIjtcclxuXHJcbmltcG9ydCB7Q2h1bmtQaXBlfSBmcm9tIFwiLi9waXBlcy9jaHVuay5waXBlXCI7XHJcbmltcG9ydCB7RW50cmllc1BpcGV9IGZyb20gXCIuL3BpcGVzL2VudHJpZXMucGlwZVwiO1xyXG5pbXBvcnQge0V4dHJhSXRlbVByb3BlcnRpZXNQaXBlfSBmcm9tIFwiLi9waXBlcy9leHRyYS1pdGVtLXByb3BlcnRpZXMucGlwZVwiO1xyXG5pbXBvcnQge0ZpbHRlclBpcGV9IGZyb20gXCIuL3BpcGVzL2ZpbHRlci5waXBlXCI7XHJcbmltcG9ydCB7RmluZFBpcGV9IGZyb20gXCIuL3BpcGVzL2ZpbmQucGlwZVwiO1xyXG5pbXBvcnQge0Zvcm1hdE51bWJlclBpcGV9IGZyb20gXCIuL3BpcGVzL2Zvcm1hdC1udW1iZXIucGlwZVwiO1xyXG5pbXBvcnQge0dldE9mZnNldFBpcGV9IGZyb20gXCIuL3BpcGVzL2dldC1vZmZzZXQucGlwZVwiO1xyXG5pbXBvcnQge0dldFR5cGVQaXBlfSBmcm9tIFwiLi9waXBlcy9nZXQtdHlwZS5waXBlXCI7XHJcbmltcG9ydCB7R2xvYmFsVGVtcGxhdGVQaXBlfSBmcm9tIFwiLi9waXBlcy9nbG9iYWwtdGVtcGxhdGUucGlwZVwiO1xyXG5pbXBvcnQge0dyb3VwQnlQaXBlfSBmcm9tIFwiLi9waXBlcy9ncm91cC1ieS5waXBlXCI7XHJcbmltcG9ydCB7SXNUeXBlUGlwZX0gZnJvbSBcIi4vcGlwZXMvaXMtdHlwZS5waXBlXCI7XHJcbmltcG9ydCB7Sm9pblBpcGV9IGZyb20gXCIuL3BpcGVzL2pvaW4ucGlwZVwiO1xyXG5pbXBvcnQge0tleXNQaXBlfSBmcm9tIFwiLi9waXBlcy9rZXlzLnBpcGVcIjtcclxuaW1wb3J0IHtNYXBQaXBlfSBmcm9tIFwiLi9waXBlcy9tYXAucGlwZVwiO1xyXG5pbXBvcnQge01heFBpcGV9IGZyb20gXCIuL3BpcGVzL21heC5waXBlXCI7XHJcbmltcG9ydCB7TWluUGlwZX0gZnJvbSBcIi4vcGlwZXMvbWluLnBpcGVcIjtcclxuaW1wb3J0IHtQb3BQaXBlfSBmcm9tIFwiLi9waXBlcy9wb3AucGlwZVwiO1xyXG5pbXBvcnQge1JlZHVjZVBpcGV9IGZyb20gXCIuL3BpcGVzL3JlZHVjZS5waXBlXCI7XHJcbmltcG9ydCB7UmVtYXBQaXBlfSBmcm9tIFwiLi9waXBlcy9yZW1hcC5waXBlXCI7XHJcbmltcG9ydCB7UmVwbGFjZVBpcGV9IGZyb20gXCIuL3BpcGVzL3JlcGxhY2UucGlwZVwiO1xyXG5pbXBvcnQge1JldmVyc2VQaXBlfSBmcm9tIFwiLi9waXBlcy9yZXZlcnNlLnBpcGVcIjtcclxuaW1wb3J0IHtSb3VuZFBpcGV9IGZyb20gXCIuL3BpcGVzL3JvdW5kLnBpcGVcIjtcclxuaW1wb3J0IHtTYWZlSHRtbFBpcGV9IGZyb20gXCIuL3BpcGVzL3NhZmUtaHRtbC5waXBlXCI7XHJcbmltcG9ydCB7U2hpZnRQaXBlfSBmcm9tIFwiLi9waXBlcy9zaGlmdC5waXBlXCI7XHJcbmltcG9ydCB7U3BsaXRQaXBlfSBmcm9tIFwiLi9waXBlcy9zcGxpdC5waXBlXCI7XHJcbmltcG9ydCB7VHJhbnNsYXRlUGlwZX0gZnJvbSBcIi4vcGlwZXMvdHJhbnNsYXRlLnBpcGVcIjtcclxuaW1wb3J0IHtWYWx1ZXNQaXBlfSBmcm9tIFwiLi9waXBlcy92YWx1ZXMucGlwZVwiO1xyXG5cclxuaW1wb3J0IHtEeW5hbWljVGFibGVDb21wb25lbnR9IGZyb20gXCIuL2NvbXBvbmVudHMvZHluYW1pYy10YWJsZS9keW5hbWljLXRhYmxlLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge1BhZ2luYXRpb25NZW51Q29tcG9uZW50fSBmcm9tIFwiLi9jb21wb25lbnRzL3BhZ2luYXRpb24tbWVudS9wYWdpbmF0aW9uLW1lbnUuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7VW5vcmRlcmVkTGlzdENvbXBvbmVudH0gZnJvbSBcIi4vY29tcG9uZW50cy91bm9yZGVyZWQtbGlzdC91bm9yZGVyZWQtbGlzdC5jb21wb25lbnRcIjtcclxuXHJcbi8vIC0tLSBQaXBlcyAtLS1cclxuZXhwb3J0IGNvbnN0IHBpcGVzID0gW1xyXG4gICAgQ2h1bmtQaXBlLFxyXG4gICAgRW50cmllc1BpcGUsXHJcbiAgICBFeHRyYUl0ZW1Qcm9wZXJ0aWVzUGlwZSxcclxuICAgIEZpbHRlclBpcGUsXHJcbiAgICBGaW5kUGlwZSxcclxuICAgIEZvcm1hdE51bWJlclBpcGUsXHJcbiAgICBHZXRPZmZzZXRQaXBlLFxyXG4gICAgR2V0VHlwZVBpcGUsXHJcbiAgICBHbG9iYWxUZW1wbGF0ZVBpcGUsXHJcbiAgICBHcm91cEJ5UGlwZSxcclxuICAgIElzVHlwZVBpcGUsXHJcbiAgICBKb2luUGlwZSxcclxuICAgIEtleXNQaXBlLFxyXG4gICAgTWFwUGlwZSxcclxuICAgIE1heFBpcGUsXHJcbiAgICBNaW5QaXBlLFxyXG4gICAgUG9wUGlwZSxcclxuICAgIFJlZHVjZVBpcGUsXHJcbiAgICBSZW1hcFBpcGUsXHJcbiAgICBSZXBsYWNlUGlwZSxcclxuICAgIFJldmVyc2VQaXBlLFxyXG4gICAgUm91bmRQaXBlLFxyXG4gICAgU2FmZUh0bWxQaXBlLFxyXG4gICAgU2hpZnRQaXBlLFxyXG4gICAgU3BsaXRQaXBlLFxyXG4gICAgVHJhbnNsYXRlUGlwZSxcclxuICAgIFZhbHVlc1BpcGVcclxuXTtcclxuXHJcbi8vIC0tLSBEaXJlY3RpdmVzIC0tLVxyXG5leHBvcnQgY29uc3QgZGlyZWN0aXZlcyA9IFtcclxuICAgIEFzeW5jTWV0aG9kQmFzZSxcclxuICAgIEFzeW5jTWV0aG9kRGlyZWN0aXZlLFxyXG4gICAgQmFja2dyb3VuZERpcmVjdGl2ZSxcclxuICAgIER5bmFtaWNUYWJsZVRlbXBsYXRlRGlyZWN0aXZlLFxyXG4gICAgR2xvYmFsVGVtcGxhdGVEaXJlY3RpdmUsXHJcbiAgICBJY29uRGlyZWN0aXZlLFxyXG4gICAgTmd4VGVtcGxhdGVPdXRsZXREaXJlY3RpdmUsXHJcbiAgICBQYWdpbmF0aW9uRGlyZWN0aXZlLFxyXG4gICAgUGFnaW5hdGlvbkl0ZW1EaXJlY3RpdmUsXHJcbiAgICBSZXNvdXJjZUlmRGlyZWN0aXZlLFxyXG4gICAgU3RpY2t5RGlyZWN0aXZlLFxyXG4gICAgU3RpY2t5Q2xhc3NEaXJlY3RpdmUsXHJcbiAgICBVbm9yZGVyZWRMaXN0SXRlbURpcmVjdGl2ZSxcclxuICAgIFVub3JkZXJlZExpc3RUZW1wbGF0ZURpcmVjdGl2ZVxyXG5dO1xyXG5cclxuLy8gLS0tIENvbXBvbmVudHMgLS0tXHJcbmV4cG9ydCBjb25zdCBjb21wb25lbnRzID0gW1xyXG4gICAgRHluYW1pY1RhYmxlQ29tcG9uZW50LFxyXG4gICAgUGFnaW5hdGlvbk1lbnVDb21wb25lbnQsXHJcbiAgICBVbm9yZGVyZWRMaXN0Q29tcG9uZW50XHJcbl07XHJcblxyXG5leHBvcnQgY29uc3QgcHJvdmlkZXJzID0gW1xyXG4gICAgLi4ucGlwZXMsXHJcbiAgICBCYXNlSHR0cENsaWVudCxcclxuICAgIEJhc2VIdHRwU2VydmljZSxcclxuICAgIEF1dGhHdWFyZCxcclxuICAgIEFjbFNlcnZpY2UsXHJcbiAgICBBcGlTZXJ2aWNlLFxyXG4gICAgU3RhdGljQXV0aFNlcnZpY2UsXHJcbiAgICBDb25maWdTZXJ2aWNlLFxyXG4gICAgRXJyb3JIYW5kbGVyU2VydmljZSxcclxuICAgIEV2ZW50c1NlcnZpY2UsXHJcbiAgICBGb3JtYXR0ZXJTZXJ2aWNlLFxyXG4gICAgR2xvYmFsVGVtcGxhdGVTZXJ2aWNlLFxyXG4gICAgSWNvblNlcnZpY2UsXHJcbiAgICBMYW5ndWFnZVNlcnZpY2UsXHJcbiAgICBPcGVuQXBpU2VydmljZSxcclxuICAgIFByb21pc2VTZXJ2aWNlLFxyXG4gICAgU3RhdGVTZXJ2aWNlLFxyXG4gICAgU3RhdGljTGFuZ3VhZ2VTZXJ2aWNlLFxyXG4gICAgU3RvcmFnZVNlcnZpY2UsXHJcbiAgICBDb25zb2xlVG9hc3RlclNlcnZpY2UsXHJcbiAgICBUcmFuc2xhdGVkVXJsU2VyaWFsaXplcixcclxuICAgIFVuaXZlcnNhbFNlcnZpY2UsXHJcbiAgICBEZXZpY2VEZXRlY3RvclNlcnZpY2UsXHJcbiAgICB7XHJcbiAgICAgICAgcHJvdmlkZTogRVZFTlRfTUFOQUdFUl9QTFVHSU5TLFxyXG4gICAgICAgIHVzZUNsYXNzOiBSZXNpemVFdmVudFBsdWdpbixcclxuICAgICAgICBtdWx0aTogdHJ1ZVxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICBwcm92aWRlOiBFVkVOVF9NQU5BR0VSX1BMVUdJTlMsXHJcbiAgICAgICAgdXNlQ2xhc3M6IFNjcm9sbEV2ZW50UGx1Z2luLFxyXG4gICAgICAgIG11bHRpOiB0cnVlXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIHByb3ZpZGU6IFVybFNlcmlhbGl6ZXIsXHJcbiAgICAgICAgdXNlRXhpc3Rpbmc6IFRyYW5zbGF0ZWRVcmxTZXJpYWxpemVyXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIHByb3ZpZGU6IEVycm9ySGFuZGxlcixcclxuICAgICAgICB1c2VFeGlzdGluZzogRXJyb3JIYW5kbGVyU2VydmljZVxyXG4gICAgfVxyXG5cclxuXTtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBsb2FkQ29uZmlnKGNvbmZpZzogSUNvbmZpZ1NlcnZpY2UpOiBhbnkge1xyXG4gICAgcmV0dXJuIGNvbmZpZy5sb2FkO1xyXG59XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gICAgZGVjbGFyYXRpb25zOiBbXHJcbiAgICAgICAgLi4ucGlwZXMsXHJcbiAgICAgICAgLi4uZGlyZWN0aXZlcyxcclxuICAgICAgICAuLi5jb21wb25lbnRzXHJcbiAgICBdLFxyXG4gICAgaW1wb3J0czogW1xyXG4gICAgICAgIENvbW1vbk1vZHVsZSxcclxuICAgICAgICBGb3Jtc01vZHVsZVxyXG4gICAgXSxcclxuICAgIGV4cG9ydHM6IFtcclxuICAgICAgICAuLi5waXBlcyxcclxuICAgICAgICAuLi5kaXJlY3RpdmVzLFxyXG4gICAgICAgIC4uLmNvbXBvbmVudHMsXHJcbiAgICAgICAgRm9ybXNNb2R1bGVcclxuICAgIF0sXHJcbiAgICBwcm92aWRlcnM6IHBpcGVzXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBOZ3hVdGlsc01vZHVsZSB7XHJcbiAgICBzdGF0aWMgZm9yUm9vdChjb25maWc/OiBJTW9kdWxlQ29uZmlnKTogTW9kdWxlV2l0aFByb3ZpZGVyczxOZ3hVdGlsc01vZHVsZT4ge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIG5nTW9kdWxlOiBOZ3hVdGlsc01vZHVsZSxcclxuICAgICAgICAgICAgcHJvdmlkZXJzOiBbXHJcbiAgICAgICAgICAgICAgICAuLi5wcm92aWRlcnMsXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgcHJvdmlkZTogQVBJX1NFUlZJQ0UsXHJcbiAgICAgICAgICAgICAgICAgICAgdXNlRXhpc3Rpbmc6ICghY29uZmlnID8gbnVsbCA6IGNvbmZpZy5hcGlTZXJ2aWNlKSB8fCBBcGlTZXJ2aWNlXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIHByb3ZpZGU6IEFVVEhfU0VSVklDRSxcclxuICAgICAgICAgICAgICAgICAgICB1c2VFeGlzdGluZzogKCFjb25maWcgPyBudWxsIDogY29uZmlnLmF1dGhTZXJ2aWNlKSB8fCBTdGF0aWNBdXRoU2VydmljZVxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICBwcm92aWRlOiBJQ09OX1NFUlZJQ0UsXHJcbiAgICAgICAgICAgICAgICAgICAgdXNlRXhpc3Rpbmc6ICghY29uZmlnID8gbnVsbCA6IGNvbmZpZy5pY29uU2VydmljZSkgfHwgSWNvblNlcnZpY2VcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgcHJvdmlkZTogTEFOR1VBR0VfU0VSVklDRSxcclxuICAgICAgICAgICAgICAgICAgICB1c2VFeGlzdGluZzogKCFjb25maWcgPyBudWxsIDogY29uZmlnLmxhbmd1YWdlU2VydmljZSkgfHwgU3RhdGljTGFuZ3VhZ2VTZXJ2aWNlXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIHByb3ZpZGU6IFRPQVNURVJfU0VSVklDRSxcclxuICAgICAgICAgICAgICAgICAgICB1c2VFeGlzdGluZzogKCFjb25maWcgPyBudWxsIDogY29uZmlnLnRvYXN0ZXJTZXJ2aWNlKSB8fCBDb25zb2xlVG9hc3RlclNlcnZpY2VcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgcHJvdmlkZTogUFJPTUlTRV9TRVJWSUNFLFxyXG4gICAgICAgICAgICAgICAgICAgIHVzZUV4aXN0aW5nOiAoIWNvbmZpZyA/IG51bGwgOiBjb25maWcucHJvbWlzZVNlcnZpY2UpIHx8IFByb21pc2VTZXJ2aWNlXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIHByb3ZpZGU6IENPTkZJR19TRVJWSUNFLFxyXG4gICAgICAgICAgICAgICAgICAgIHVzZUV4aXN0aW5nOiAoIWNvbmZpZyA/IG51bGwgOiBjb25maWcuY29uZmlnU2VydmljZSkgfHwgQ29uZmlnU2VydmljZVxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICBwcm92aWRlOiBHTE9CQUxfVEVNUExBVEVTLFxyXG4gICAgICAgICAgICAgICAgICAgIHVzZUV4aXN0aW5nOiAoIWNvbmZpZyA/IG51bGwgOiBjb25maWcuZ2xvYmFsVGVtcGxhdGVzKSB8fCBHbG9iYWxUZW1wbGF0ZVNlcnZpY2VcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgcHJvdmlkZTogUk9PVF9FTEVNRU5ULFxyXG4gICAgICAgICAgICAgICAgICAgIHVzZVZhbHVlOiBudWxsXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIHByb3ZpZGU6IEFQUF9JTklUSUFMSVpFUixcclxuICAgICAgICAgICAgICAgICAgICB1c2VGYWN0b3J5OiAoIWNvbmZpZyA/IG51bGwgOiBjb25maWcuaW5pdGlhbGl6ZUFwcCkgfHwgbG9hZENvbmZpZyxcclxuICAgICAgICAgICAgICAgICAgICBtdWx0aTogdHJ1ZSxcclxuICAgICAgICAgICAgICAgICAgICBkZXBzOiBbKCFjb25maWcgPyBudWxsIDogY29uZmlnLmluaXRpYWxpemVBcHApID8gSW5qZWN0b3IgOiBDT05GSUdfU0VSVklDRV1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgXVxyXG4gICAgICAgIH07XHJcbiAgICB9XHJcbn1cclxuIl19
|
|
@@ -9,7 +9,7 @@ export class UniversalService {
|
|
|
9
9
|
this.platformId = platformId;
|
|
10
10
|
this.dds = dds;
|
|
11
11
|
const info = this.dds.getDeviceInfo();
|
|
12
|
-
this.crawler = /(bot|google|baidu|bing|msn|duckduckbot|teoma|slurp|yandex|lighthouse|angular-universal|PTST)/gi.test(info.userAgent);
|
|
12
|
+
this.crawler = /(bot|google|baidu|bing|msn|duckduckbot|teoma|slurp|yandex|lighthouse|angular-universal|PTST|PostmanRuntime)/gi.test(info.userAgent);
|
|
13
13
|
}
|
|
14
14
|
get isBrowser() {
|
|
15
15
|
return isPlatformBrowser(this.platformId);
|
|
@@ -72,4 +72,4 @@ UniversalService.ctorParameters = () => [
|
|
|
72
72
|
{ type: String, decorators: [{ type: Inject, args: [PLATFORM_ID,] }] },
|
|
73
73
|
{ type: DeviceDetectorService }
|
|
74
74
|
];
|
|
75
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
75
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5pdmVyc2FsLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbmd4LXV0aWxzL3NlcnZpY2VzL3VuaXZlcnNhbC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxNQUFNLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQUMsaUJBQWlCLEVBQUUsZ0JBQWdCLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRSxPQUFPLEVBQUMscUJBQXFCLEVBQWEsTUFBTSxxQkFBcUIsQ0FBQztBQUV0RTs7R0FFRztBQUVILE1BQU0sT0FBTyxnQkFBZ0I7SUF1RXpCLFlBQXlDLFVBQWtCLEVBQVUsR0FBMEI7UUFBdEQsZUFBVSxHQUFWLFVBQVUsQ0FBUTtRQUFVLFFBQUcsR0FBSCxHQUFHLENBQXVCO1FBQzNGLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDdEMsSUFBSSxDQUFDLE9BQU8sR0FBRywrR0FBK0csQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3hKLENBQUM7SUF4RUQsSUFBSSxTQUFTO1FBQ1QsT0FBTyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVELElBQUksUUFBUTtRQUNSLE9BQU8sZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRCxJQUFJLFVBQVU7UUFDVixPQUFPLElBQUksQ0FBQyxRQUFRO1lBQ2hCLENBQUMsQ0FBQztnQkFDRSxTQUFTLEVBQUUsbUJBQW1CO2dCQUM5QixFQUFFLEVBQUUsU0FBUztnQkFDYixPQUFPLEVBQUUsTUFBTTtnQkFDZixNQUFNLEVBQUUsTUFBTTtnQkFDZCxVQUFVLEVBQUUsU0FBUztnQkFDckIsZUFBZSxFQUFFLFNBQVM7Z0JBQzFCLFVBQVUsRUFBRSxTQUFTO2dCQUNyQixXQUFXLEVBQUUsV0FBVzthQUNwQjtZQUNSLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ25DLENBQUM7SUFFRCxJQUFJLFdBQVc7UUFDWCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDO0lBQzVCLENBQUM7SUFFRCxJQUFJLGNBQWM7UUFDZCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDO0lBQ3BDLENBQUM7SUFFRCxJQUFJLFVBQVU7UUFDVixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQztJQUNwQyxDQUFDO0lBRUQsSUFBSSxNQUFNO1FBQ04sT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sSUFBSSxTQUFTLENBQUM7SUFDekMsQ0FBQztJQUVELElBQUksUUFBUTtRQUNSLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLElBQUksUUFBUSxDQUFDO0lBQ3hDLENBQUM7SUFFRCxJQUFJLFNBQVM7UUFDVCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxJQUFJLFNBQVMsQ0FBQztJQUN6QyxDQUFDO0lBRUQsSUFBSSxRQUFRO1FBQ1IsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sSUFBSSxRQUFRLENBQUM7SUFDeEMsQ0FBQztJQUVELElBQUksUUFBUTtRQUNSLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBRUQsSUFBSSxRQUFRO1FBQ1IsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFFRCxJQUFJLFNBQVM7UUFDVCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUVELElBQUksU0FBUztRQUNULE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN4QixDQUFDOzs7WUFwRUosVUFBVTs7O3lDQXdFTSxNQUFNLFNBQUMsV0FBVztZQTdFM0IscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3QsIEluamVjdGFibGUsIFBMQVRGT1JNX0lEfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge2lzUGxhdGZvcm1Ccm93c2VyLCBpc1BsYXRmb3JtU2VydmVyfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XHJcbmltcG9ydCB7RGV2aWNlRGV0ZWN0b3JTZXJ2aWNlLCBEZXZpY2VJbmZvfSBmcm9tIFwibmd4LWRldmljZS1kZXRlY3RvclwiO1xyXG5cclxuLyoqXHJcbiAqIFVzZSB0aGlzIHNlcnZpY2UgdG8gZGV0ZXJtaW5lIHdoaWNoIGlzIHRoZSBjdXJyZW50IGVudmlyb25tZW50XHJcbiAqL1xyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBVbml2ZXJzYWxTZXJ2aWNlIHtcclxuXHJcbiAgICBnZXQgaXNCcm93c2VyKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiBpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBpc1NlcnZlcigpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gaXNQbGF0Zm9ybVNlcnZlcih0aGlzLnBsYXRmb3JtSWQpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBkZXZpY2VJbmZvKCk6IERldmljZUluZm8ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmlzU2VydmVyXHJcbiAgICAgICAgICAgID8ge1xyXG4gICAgICAgICAgICAgICAgdXNlckFnZW50OiBcImFuZ3VsYXItdW5pdmVyc2FsXCIsXHJcbiAgICAgICAgICAgICAgICBvczogXCJ1bmtub3duXCIsXHJcbiAgICAgICAgICAgICAgICBicm93c2VyOiBcIm5vZGVcIixcclxuICAgICAgICAgICAgICAgIGRldmljZTogXCJub2RlXCIsXHJcbiAgICAgICAgICAgICAgICBvc192ZXJzaW9uOiBcInVua25vd25cIixcclxuICAgICAgICAgICAgICAgIGJyb3dzZXJfdmVyc2lvbjogXCJ1bmtub3duXCIsXHJcbiAgICAgICAgICAgICAgICBkZXZpY2VUeXBlOiBcInVua25vd25cIixcclxuICAgICAgICAgICAgICAgIG9yaWVudGF0aW9uOiBcImxhbmRzY2FwZVwiXHJcbiAgICAgICAgICAgIH0gYXMgYW55XHJcbiAgICAgICAgICAgIDogdGhpcy5kZHMuZ2V0RGV2aWNlSW5mbygpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBicm93c2VyTmFtZSgpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmRkcy5icm93c2VyO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBicm93c2VyVmVyc2lvbigpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmRkcy5icm93c2VyX3ZlcnNpb247XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGlzRXhwbG9yZXIoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZGRzLmJyb3dzZXIgPT0gXCJpZVwiO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBpc0VkZ2UoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZGRzLmJyb3dzZXIgPT0gXCJtcy1lZGdlXCI7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGlzQ2hyb21lKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmRkcy5icm93c2VyID09IFwiY2hyb21lXCI7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGlzRmlyZWZveCgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5kZHMuYnJvd3NlciA9PSBcImZpcmVmb3hcIjtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgaXNTYWZhcmkoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZGRzLmJyb3dzZXIgPT0gXCJzYWZhcmlcIjtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgaXNUYWJsZXQoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZGRzLmlzVGFibGV0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGlzTW9iaWxlKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmRkcy5pc01vYmlsZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBpc0Rlc2t0b3AoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZGRzLmlzRGVza3RvcCgpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBpc0NyYXdsZXIoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY3Jhd2xlcjtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNyYXdsZXI6IGJvb2xlYW47XHJcblxyXG4gICAgY29uc3RydWN0b3IoQEluamVjdChQTEFURk9STV9JRCkgcHJpdmF0ZSBwbGF0Zm9ybUlkOiBzdHJpbmcsIHByaXZhdGUgZGRzOiBEZXZpY2VEZXRlY3RvclNlcnZpY2UpIHtcclxuICAgICAgICBjb25zdCBpbmZvID0gdGhpcy5kZHMuZ2V0RGV2aWNlSW5mbygpO1xyXG4gICAgICAgIHRoaXMuY3Jhd2xlciA9IC8oYm90fGdvb2dsZXxiYWlkdXxiaW5nfG1zbnxkdWNrZHVja2JvdHx0ZW9tYXxzbHVycHx5YW5kZXh8bGlnaHRob3VzZXxhbmd1bGFyLXVuaXZlcnNhbHxQVFNUfFBvc3RtYW5SdW50aW1lKS9naS50ZXN0KGluZm8udXNlckFnZW50KTtcclxuICAgIH1cclxufVxyXG4iXX0=
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
const defaultPredicate = () => true;
|
|
2
2
|
const ɵ0 = defaultPredicate;
|
|
3
|
-
const hasBlob = typeof Blob !== "undefined";
|
|
4
|
-
const hasFile = typeof File !== "undefined";
|
|
3
|
+
const hasBlob = typeof Blob !== "undefined" && !!Blob;
|
|
4
|
+
const hasFile = typeof File !== "undefined" && !!File;
|
|
5
5
|
export class ObjectUtils {
|
|
6
6
|
static compare(a, b) {
|
|
7
7
|
if ((a === null || b === null) || (typeof a != typeof b)) {
|
|
@@ -271,4 +271,4 @@ export class ObjectUtils {
|
|
|
271
271
|
}
|
|
272
272
|
}
|
|
273
273
|
export { ɵ0 };
|
|
274
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LnV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL25neC11dGlscy91dGlscy9vYmplY3QudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsTUFBTSxnQkFBZ0IsR0FBb0IsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDOztBQUNyRCxNQUFNLE9BQU8sR0FBRyxPQUFPLElBQUksS0FBSyxXQUFXLENBQUM7QUFDNUMsTUFBTSxPQUFPLEdBQUcsT0FBTyxJQUFJLEtBQUssV0FBVyxDQUFDO0FBRTVDLE1BQU0sT0FBTyxXQUFXO0lBRXBCLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBTSxFQUFFLENBQU07UUFDekIsSUFBSSxDQUFDLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksT0FBTyxDQUFDLENBQUMsRUFBRTtZQUN0RCxPQUFPLElBQUksQ0FBQztTQUNmO1FBQ0QsSUFBSSxPQUFPLENBQUMsS0FBSyxRQUFRLEVBQUU7WUFDdkIsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUMvQjthQUFNO1lBQ0gsSUFBSSxDQUFDLFlBQVksSUFBSSxFQUFFO2dCQUNuQixDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUNoQixDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO2FBQ25CO1lBQ0QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUNQLE9BQU8sQ0FBQyxDQUFDO2FBQ1o7aUJBQU0sSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUNkLE9BQU8sQ0FBQyxDQUFDLENBQUM7YUFDYjtZQUNELE9BQU8sQ0FBQyxDQUFDO1NBQ1o7SUFDTCxDQUFDO0lBRUQsTUFBTSxDQUFDLGFBQWEsQ0FBQyxHQUFRO1FBQ3pCLElBQUksQ0FBQyxXQUFXLENBQUMs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Q0FBQyxDQUFDO2dCQUNuQyxNQUFNLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztnQkFDM0IsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtvQkFDaEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUM7d0JBQUUsT0FBTztvQkFDekQsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLFdBQVcsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxTQUFTLEVBQUUsTUFBTSxDQUFDLENBQUM7Z0JBQ3pGLENBQUMsQ0FBQyxDQUFDO2FBQ047U0FDSjtRQUNELE9BQU8sTUFBTSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM5QixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBGaWx0ZXJQcmVkaWNhdGUgPSAodmFsdWU6IGFueSwga2V5PzogYW55LCB0YXJnZXQ/OiBhbnksIHNvdXJjZT86IGFueSkgPT4gYm9vbGVhbjtcclxuZXhwb3J0IHR5cGUgSXRlcmF0ZUNhbGxiYWNrID0gKHZhbHVlOiBhbnksIGtleT86IGFueSkgPT4gdm9pZDtcclxuXHJcbmNvbnN0IGRlZmF1bHRQcmVkaWNhdGU6IEZpbHRlclByZWRpY2F0ZSA9ICgpID0+IHRydWU7XHJcbmNvbnN0IGhhc0Jsb2IgPSB0eXBlb2YgQmxvYiAhPT0gXCJ1bmRlZmluZWRcIjtcclxuY29uc3QgaGFzRmlsZSA9IHR5cGVvZiBGaWxlICE9PSBcInVuZGVmaW5lZFwiO1xyXG5cclxuZXhwb3J0IGNsYXNzIE9iamVjdFV0aWxzIHtcclxuXHJcbiAgICBzdGF0aWMgY29tcGFyZShhOiBhbnksIGI6IGFueSk6IG51bWJlciB7XHJcbiAgICAgICAgaWYgKChhID09PSBudWxsIHx8IGIgPT09IG51bGwpIHx8ICh0eXBlb2YgYSAhPSB0eXBlb2YgYikpIHtcclxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0eXBlb2YgYSA9PT0gXCJzdHJpbmdcIikge1xyXG4gICAgICAgICAgICByZXR1cm4gKGEpLmxvY2FsZUNvbXBhcmUoYik7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgaWYgKGEgaW5zdGFuY2VvZiBEYXRlKSB7XHJcbiAgICAgICAgICAgICAgICBhID0gYS5nZXRUaW1lKCk7XHJcbiAgICAgICAgICAgICAgICBiID0gYi5nZXRUaW1lKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKGEgPiBiKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gMTtcclxuICAgICAgICAgICAgfSBlbHNlIGlmIChhIDwgYikge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIC0xO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiAwO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgZ2V0UHJvcGVydGllcyhvYmo6IGFueSk6IHN0cmluZ1tdIHtcclxuICAgICAgICBpZiAoIU9iamVjdFV0aWxzLmlzT2JqZWN0KG9iaikgJiYgIU9iamVjdFV0aWxzLmlzRnVuY3Rpb24ob2JqKSkgcmV0dXJuIFtdO1xyXG4gICAgICAgIGNvbnN0IHByb3BzID0gbmV3IFNldDxzdHJpbmc+KCk7XHJcbiAgICAgICAgT2JqZWN0LmtleXMob2JqKS5mb3JFYWNoKHAgPT4gcHJvcHMuYWRkKHApKTtcclxuICAgICAgICBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhvYmopLmZvckVhY2gocCA9PiBwcm9wcy5hZGQocCkpO1xyXG4gICAgICAgIHJldHVybiBBcnJheS5mcm9tKHByb3BzKTtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgZXF1YWxzKGE6IGFueSwgYjogYW55LCB2aXNpdGVkOiBTZXQ8YW55PiA9IG51bGwpOiBib29sZWFuIHtcclxuICAgICAgICB2aXNpdGVkID0gdmlzaXRlZCB8fCBuZXcgU2V0KCk7XHJcbiAgICAgICAgaWYgKHZpc2l0ZWQuaGFzKGEpICYmIHZpc2l0ZWQuaGFzKGIpKSByZXR1cm4gdHJ1ZTtcclxuICAgICAgICBpZiAoYSA9PT0gYikgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgaWYgKGEgPT09IG51bGwgfHwgYiA9PT0gbnVsbCkgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIGlmIChhICE9PSBhICYmIGIgIT09IGIpIHJldHVybiB0cnVlOyAvLyBOYU4gPT09IE5hTlxyXG4gICAgICAgIGNvbnN0IGF0ID0gdHlwZW9mIGEsIGJ0ID0gdHlwZW9mIGI7XHJcbiAgICAgICAgbGV0IGxlbmd0aDogbnVtYmVyLCBrZXk6IGFueSwga2V5U2V0OiBhbnk7XHJcbiAgICAgICAgaWYgKGF0ID09IGJ0ICYmIGF0ID09IFwib2JqZWN0XCIpIHtcclxuICAgICAgICAgICAgdmlzaXRlZC5hZGQoYSk7XHJcbiAgICAgICAgICAgIHZpc2l0ZWQuYWRkKGIpO1xyXG4gICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShhKSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KGIpKSByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICBpZiAoKGxlbmd0aCA9IGEubGVuZ3RoKSA9PSBiLmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGZvciAoa2V5ID0gMDsga2V5IDwgbGVuZ3RoOyBrZXkrKykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIU9iamVjdFV0aWxzLmVxdWFscyhhW2tleV0sIGJba2V5XSwgdmlzaXRlZCkpIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShiKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGtleVNldCA9IE9iamVjdC5jcmVhdGUobnVsbCk7XHJcbiAgICAgICAgICAgICAgICBmb3IgKGtleSBpbiBhKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGEuaGFzT3duUHJvcGVydHkoa2V5KSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIU9iamVjdFV0aWxzLmVxdWFscyhhW2tleV0sIGJba2V5XSwgdmlzaXRlZCkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBrZXlTZXRba2V5XSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZm9yIChrZXkgaW4gYikge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChiLmhhc093blByb3BlcnR5KGtleSkgJiYgIShrZXkgaW4ga2V5U2V0KSAmJiB0eXBlb2YgYltrZXldICE9PSBcInVuZGVmaW5lZFwiKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGV2YWx1YXRlKGV4cHI6IHN0cmluZywgY29udGV4dDogYW55ID0ge30sIHJlczogYW55ID0ge30pOiBhbnkge1xyXG4gICAgICAgIGV4cHIgPSBPYmplY3Qua2V5cyhjb250ZXh0KS5yZWR1Y2UoKHJlcywga2V5KSA9PiBgdmFyICR7a2V5fSA9IHRoaXNbJyR7a2V5fSddO1xcbiR7cmVzfWAsIGV4cHIpO1xyXG4gICAgICAgIGNvbnN0IGxpbmVzID0gZXhwci5zcGxpdChcIlxcblwiKTtcclxuICAgICAgICBjb25zdCBsYXN0TGluZSA9IFwicmV0dXJuIFwiICsgbGluZXMucG9wKCkucmVwbGFjZShcInJldHVybiBcIiwgXCJcIik7XHJcbiAgICAgICAgbGluZXMucHVzaChsYXN0TGluZSk7XHJcbiAgICAgICAgZXhwciA9IGxpbmVzLmpvaW4oXCJcXG5cIik7XHJcbiAgICAgICAgbGV0IHJlc3VsdCA9IG51bGw7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgcmVzdWx0ID0gbmV3IEZ1bmN0aW9uKGV4cHIpLmNhbGwoY29udGV4dCk7XHJcbiAgICAgICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgICByZXMuZXhjZXB0aW9uID0gZTtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coYEZhaWxlZCB0byBwYXJzZSBleHByZXNzaW9uOiAke2UubWVzc2FnZX1gLCBleHByLCBjb250ZXh0KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmVzLnJlc3VsdCA9IHJlc3VsdDtcclxuICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBlbXB0eShvYmo6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiAhb2JqIHx8IE9iamVjdC5rZXlzKG9iaikubGVuZ3RoID09IDA7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGl0ZXJhdGUob2JqOiBhbnksIGNiOiBJdGVyYXRlQ2FsbGJhY2spOiB2b2lkIHtcclxuICAgICAgICBpZiAoIW9iaikgcmV0dXJuO1xyXG4gICAgICAgIGNvbnN0IGtleXM6IGFueVtdID0gQXJyYXkuaXNBcnJheShvYmopID8gQXJyYXkuZnJvbShvYmoua2V5cygpKSA6IE9iamVjdC5rZXlzKG9iaik7XHJcbiAgICAgICAga2V5cy5mb3JFYWNoKFxyXG4gICAgICAgICAgICAvLyBAZHluYW1pY1xyXG4gICAgICAgICAgICBrZXkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY2Iob2JqW2tleV0sIGtleSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBnZXRWYWx1ZShvYmo6IGFueSwga2V5OiBzdHJpbmcsIGRlZmF1bHRWYWx1ZT86IGFueSwgdHJlZUZhbGxiYWNrOiBib29sZWFuID0gZmFsc2UpOiBhbnkge1xyXG4gICAgICAgIGtleSA9IGtleSB8fCBcIlwiO1xyXG4gICAgICAgIGNvbnN0IGtleXMgPSBrZXkuc3BsaXQoXCIuXCIpO1xyXG4gICAgICAgIGxldCBjdXJLZXkgPSBcIlwiO1xyXG4gICAgICAgIGRvIHtcclxuICAgICAgICAgICAgY3VyS2V5ICs9IGtleXMuc2hpZnQoKTtcclxuICAgICAgICAgICAgaWYgKE9iamVjdFV0aWxzLmlzRGVmaW5lZChvYmopICYmIE9iamVjdFV0aWxzLmlzRGVmaW5lZChvYmpbY3VyS2V5XSkgJiYgKHR5cGVvZiBvYmpbY3VyS2V5XSA9PT0gXCJvYmplY3RcIiB8fCAha2V5cy5sZW5ndGgpKSB7XHJcbiAgICAgICAgICAgICAgICBvYmogPSBvYmpbY3VyS2V5XTtcclxuICAgICAgICAgICAgICAgIGN1cktleSA9IFwiXCI7XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoIWtleXMubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICBkZWZhdWx0VmFsdWUgPSB0eXBlb2YgZGVmYXVsdFZhbHVlID09IFwidW5kZWZpbmVkXCIgPyBrZXkucmVwbGFjZShuZXcgUmVnRXhwKGAke2N1cktleX0kYCksIGB7JHtjdXJLZXl9fWApIDogZGVmYXVsdFZhbHVlO1xyXG4gICAgICAgICAgICAgICAgb2JqID0gdHJlZUZhbGxiYWNrID8gb2JqIHx8IGRlZmF1bHRWYWx1ZSA6IGRlZmF1bHRWYWx1ZTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGN1cktleSArPSBcIi5cIjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0gd2hpbGUgKGtleXMubGVuZ3RoKTtcclxuICAgICAgICByZXR1cm4gb2JqO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBtYXBUb1BhdGgodGFyZ2V0OiBhbnksIHNvdXJjZTogYW55LCBwYXRoOiBzdHJpbmdbXSk6IGFueSB7XHJcbiAgICAgICAgaWYgKHR5cGVvZiBzb3VyY2UgPT09IFwidW5kZWZpbmVkXCIpIHJldHVybiB0YXJnZXQ7XHJcbiAgICAgICAgaWYgKHBhdGgubGVuZ3RoID09IDApIHJldHVybiBzb3VyY2U7XHJcbiAgICAgICAgY29uc3Qga2V5OiBhbnkgPSBwYXRoLnNoaWZ0KCk7XHJcbiAgICAgICAgaWYgKGtleSA9PSBcIipcIikge1xyXG4gICAgICAgICAgICBpZiAoT2JqZWN0VXRpbHMuaXNBcnJheShzb3VyY2UpKSB7XHJcbiAgICAgICAgICAgICAgICB0YXJnZXQgPSBPYmplY3RVdGlscy5pc0FycmF5KHRhcmdldCkgPyB0YXJnZXQgOiBbXTtcclxuICAgICAgICAgICAgICAgIHJldHVybiBzb3VyY2UubWFwKChpdGVtLCBpbmRleCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBPYmplY3RVdGlscy5tYXBUb1BhdGgodGFyZ2V0W2luZGV4XSwgaXRlbSwgQXJyYXkuZnJvbShwYXRoKSk7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoT2JqZWN0VXRpbHMuaXNPYmplY3Qoc291cmNlKSkge1xyXG4gICAgICAgICAgICAgICAgdGFyZ2V0ID0gT2JqZWN0VXRpbHMuaXNPYmplY3QodGFyZ2V0KSA/IHRhcmdldCA6IHt9O1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKHNvdXJjZSkucmVkdWNlKChyZXN1bHQsIGtleSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdFtrZXldID0gT2JqZWN0VXRpbHMubWFwVG9QYXRoKHRhcmdldFtrZXldLCBzb3VyY2Vba2V5XSwgQXJyYXkuZnJvbShwYXRoKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgICAgICAgICAgICAgIH0sIHt9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gT2JqZWN0VXRpbHMuaXNOdWxsT3JVbmRlZmluZWQodGFyZ2V0KSA/IG51bGwgOiB0YXJnZXQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IGlzQXJyYXkgPSBPYmplY3RVdGlscy5pc0FycmF5KHRhcmdldCk7XHJcbiAgICAgICAgdGFyZ2V0ID0gT2JqZWN0VXRpbHMuaXNPYmplY3QodGFyZ2V0KSB8fCBpc0FycmF5ID8gdGFyZ2V0IDoge307XHJcbiAgICAgICAgdGFyZ2V0W2tleV0gPSBPYmplY3RVdGlscy5tYXBUb1BhdGgodGFyZ2V0W2tleV0sIHNvdXJjZSwgQXJyYXkuZnJvbShwYXRoKSk7XHJcbiAgICAgICAgcmV0dXJuIGlzTmFOKGtleSkgfHwgaXNBcnJheSA/IHRhcmdldCA6IE9iamVjdC52YWx1ZXModGFyZ2V0KTtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgZmlsdGVyKG9iajogYW55LCBwcmVkaWNhdGU6IEZpbHRlclByZWRpY2F0ZSk6IGFueSB7XHJcbiAgICAgICAgcmV0dXJuIE9iamVjdFV0aWxzLmNvcHlSZWN1cnNpdmUobnVsbCwgb2JqLCBwcmVkaWNhdGUsIG5ldyBNYXAoKSk7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGNvcHk8VD4ob2JqOiBUKTogVCB7XHJcbiAgICAgICAgcmV0dXJuIE9iamVjdFV0aWxzLmNvcHlSZWN1cnNpdmUobnVsbCwgb2JqLCBudWxsLCBuZXcgTWFwKCkpO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBhc3NpZ248VD4odGFyZ2V0OiBULCBzb3VyY2U6IGFueSwgcHJlZGljYXRlPzogRmlsdGVyUHJlZGljYXRlKTogVCB7XHJcbiAgICAgICAgcmV0dXJuIE9iamVjdFV0aWxzLmNvcHlSZWN1cnNpdmUodGFyZ2V0LCBzb3VyY2UsIHByZWRpY2F0ZSwgbmV3IE1hcCgpKTtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgZ2V0VHlwZShvYmo6IGFueSk6IHN0cmluZyB7XHJcbiAgICAgICAgY29uc3QgcmVnZXggPSBuZXcgUmVnRXhwKFwiXFxcXHMoW2EtekEtWl0rKVwiKTtcclxuICAgICAgICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKG9iaikubWF0Y2gocmVnZXgpWzFdLnRvTG93ZXJDYXNlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGlzUHJpbWl0aXZlKHZhbHVlOiBhbnkpOiBib29sZWFuIHtcclxuICAgICAgICBjb25zdCB0eXBlID0gdHlwZW9mIHZhbHVlO1xyXG4gICAgICAgIHJldHVybiB2YWx1ZSA9PSBudWxsIHx8ICh0eXBlICE9PSBcIm9iamVjdFwiICYmIHR5cGUgIT09IFwiZnVuY3Rpb25cIik7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGlzT2JqZWN0KHZhbHVlOiBhbnkpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gT2JqZWN0VXRpbHMuZ2V0VHlwZSh2YWx1ZSkgPT09IFwib2JqZWN0XCI7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGlzRGVmaW5lZCh2YWx1ZTogYW55KTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSAhPT0gXCJ1bmRlZmluZWRcIiAmJiB2YWx1ZSAhPT0gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgaXNOdWxsT3JVbmRlZmluZWQodmFsdWU6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0eXBlb2YgdmFsdWUgPT0gXCJ1bmRlZmluZWRcIiB8fCB2YWx1ZSA9PSBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBpc1N0cmluZyh2YWx1ZTogYW55KTogdmFsdWUgaXMgc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBpc0Z1bmN0aW9uKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBGdW5jdGlvbiB7XHJcbiAgICAgICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gXCJmdW5jdGlvblwiO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBpc0RhdGUodmFsdWU6IGFueSk6IHZhbHVlIGlzIERhdGUge1xyXG4gICAgICAgIHJldHVybiBudWxsICE9PSB2YWx1ZSAmJiAhaXNOYU4odmFsdWUpICYmIFwidW5kZWZpbmVkXCIgIT09IHR5cGVvZiB2YWx1ZS5nZXREYXRlO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBpc0Jsb2IodmFsdWU6IGFueSk6IHZhbHVlIGlzIEJsb2Ige1xyXG4gICAgICAgIHJldHVybiAoaGFzQmxvYiAmJiB2YWx1ZSBpbnN0YW5jZW9mIEJsb2IpIHx8IChoYXNGaWxlICYmIHZhbHVlIGluc3RhbmNlb2YgRmlsZSk7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGlzQm9vbGVhbih2YWx1ZTogYW55KTogdmFsdWUgaXMgYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHR5cGVvZih2YWx1ZSkgPT0gdHlwZW9mKHRydWUpO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBpc051bWJlcih2YWx1ZTogYW55KTogdmFsdWUgaXMgbnVtYmVyIHtcclxuICAgICAgICBpZiAodHlwZW9mIHZhbHVlICE9PSBcIm51bWJlclwiKSByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgY29uc3QgbnVtID0gK3ZhbHVlO1xyXG4gICAgICAgIGlmICgobnVtIC0gbnVtKSAhPT0gMCkge1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChudW0gPT09IHZhbHVlKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgaXNBcnJheSh2YWx1ZTogYW55KTogdmFsdWUgaXMgQXJyYXk8YW55PiB7XHJcbiAgICAgICAgcmV0dXJuIEFycmF5LmlzQXJyYXkodmFsdWUpO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBpc1NldCh2YWx1ZTogYW55KTogdmFsdWUgaXMgU2V0PGFueT4ge1xyXG4gICAgICAgIHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFNldDtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgY2hlY2tJbnRlcmZhY2Uob2JqOiBhbnksIGludGVyRmFjZU9iamVjdDogYW55KTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIE9iamVjdFV0aWxzLmlzSW50ZXJmYWNlKG9iaiwgaW50ZXJGYWNlT2JqZWN0KTtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgaXNJbnRlcmZhY2Uob2JqOiBhbnksIGludGVyRmFjZU9iamVjdDogYW55KTogYm9vbGVhbiB7XHJcbiAgICAgICAgaWYgKCFvYmogfHwgdHlwZW9mIG9iaiAhPT0gXCJvYmplY3RcIiB8fCBPYmplY3RVdGlscy5pc0FycmF5KG9iaikgfHwgIU9iamVjdFV0aWxzLmlzT2JqZWN0KGludGVyRmFjZU9iamVjdCkpIHJldHVybiBmYWxzZTtcclxuICAgICAgICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXMoaW50ZXJGYWNlT2JqZWN0KTtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBvZiBrZXlzKSB7XHJcbiAgICAgICAgICAgIGxldCB0eXBlID0gaW50ZXJGYWNlT2JqZWN0W2tleV0gfHwgXCJcIjtcclxuICAgICAgICAgICAgaWYgKHR5cGUuc3RhcnRzV2l0aChcIipcIikpIHtcclxuICAgICAgICAgICAgICAgIHR5cGUgPSB0eXBlLnN1YnN0cigxKTtcclxuICAgICAgICAgICAgICAgIGlmIChvYmouaGFzT3duUHJvcGVydHkoa2V5KSAmJiBPYmplY3RVdGlscy5nZXRUeXBlKG9ialtrZXldKSAhPT0gdHlwZSkgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKCFvYmouaGFzT3duUHJvcGVydHkoa2V5KSB8fCBPYmplY3RVdGlscy5nZXRUeXBlKG9ialtrZXldKSAhPT0gdHlwZSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBwYWQob2JqOiBhbnksIHdpZHRoOiBudW1iZXIsIGNocjogc3RyaW5nID0gXCIwXCIpOiBzdHJpbmcge1xyXG4gICAgICAgIGNvbnN0IHN0ciA9IE9iamVjdFV0aWxzLmlzRGVmaW5lZChvYmopID8gb2JqLnRvU3RyaW5nKCkgOiBcIlwiO1xyXG4gICAgICAgIHJldHVybiBzdHIubGVuZ3RoID49IHdpZHRoID8gc3RyIDogbmV3IEFycmF5KHdpZHRoIC0gc3RyLmxlbmd0aCArIDEpLmpvaW4oY2hyKSArIHN0cjtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHN0YXRpYyBjb3B5UmVjdXJzaXZlKHRhcmdldDogYW55LCBzb3VyY2U6IGFueSwgcHJlZGljYXRlOiBGaWx0ZXJQcmVkaWNhdGUsIGNvcGllczogTWFwPGFueSwgYW55Pik6IGFueSB7XHJcbiAgICAgICAgcHJlZGljYXRlID0gcHJlZGljYXRlIHx8IGRlZmF1bHRQcmVkaWNhdGU7XHJcbiAgICAgICAgaWYgKE9iamVjdFV0aWxzLmlzUHJpbWl0aXZlKHNvdXJjZSkgfHwgT2JqZWN0VXRpbHMuaXNEYXRlKHNvdXJjZSkgfHwgT2JqZWN0VXRpbHMuaXNCbG9iKHNvdXJjZSkgfHwgT2JqZWN0VXRpbHMuaXNGdW5jdGlvbihzb3VyY2UpKSByZXR1cm4gc291cmNlO1xyXG4gICAgICAgIGlmICghY29waWVzLmhhcyhzb3VyY2UpKSB7XHJcbiAgICAgICAgICAgIGlmIChPYmplY3RVdGlscy5pc0FycmF5KHNvdXJjZSkpIHtcclxuICAgICAgICAgICAgICAgIHRhcmdldCA9IE9iamVjdFV0aWxzLmlzQXJyYXkodGFyZ2V0KSA/IEFycmF5LmZyb20odGFyZ2V0KSA6IFtdO1xyXG4gICAgICAgICAgICAgICAgY29waWVzLnNldChzb3VyY2UsIHRhcmdldCk7XHJcbiAgICAgICAgICAgICAgICBzb3VyY2UuZm9yRWFjaCgoaXRlbSwgaW5kZXgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoIXByZWRpY2F0ZShpdGVtLCBpbmRleCwgdGFyZ2V0LCBzb3VyY2UpKSByZXR1cm47XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRhcmdldC5sZW5ndGggPiBpbmRleClcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0W2luZGV4XSA9IE9iamVjdFV0aWxzLmNvcHlSZWN1cnNpdmUodGFyZ2V0W2luZGV4XSwgaXRlbSwgcHJlZGljYXRlLCBjb3BpZXMpO1xyXG4gICAgICAgICAgICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LnB1c2goT2JqZWN0VXRpbHMuY29weVJlY3Vyc2l2ZShudWxsLCBpdGVtLCBwcmVkaWNhdGUsIGNvcGllcykpO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0YXJnZXQgPSBPYmplY3QuYXNzaWduKHt9LCB0YXJnZXQpO1xyXG4gICAgICAgICAgICAgICAgY29waWVzLnNldChzb3VyY2UsIHRhcmdldCk7XHJcbiAgICAgICAgICAgICAgICBPYmplY3Qua2V5cyhzb3VyY2UpLmZvckVhY2goKGtleSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICghcHJlZGljYXRlKHNvdXJjZVtrZXldLCBrZXksIHRhcmdldCwgc291cmNlKSkgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgICAgIHRhcmdldFtrZXldID0gT2JqZWN0VXRpbHMuY29weVJlY3Vyc2l2ZSh0YXJnZXRba2V5XSwgc291cmNlW2tleV0sIHByZWRpY2F0ZSwgY29waWVzKTtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBjb3BpZXMuZ2V0KHNvdXJjZSk7XHJcbiAgICB9XHJcbn1cclxuIl19
|
|
274
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LnV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL25neC11dGlscy91dGlscy9vYmplY3QudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsTUFBTSxnQkFBZ0IsR0FBb0IsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDOztBQUNyRCxNQUFNLE9BQU8sR0FBRyxPQUFPLElBQUksS0FBSyxXQUFXLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQztBQUN0RCxNQUFNLE9BQU8sR0FBRyxPQUFPLElBQUksS0FBSyxXQUFXLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQztBQUV0RCxNQUFNLE9BQU8sV0FBVztJQUVwQixNQUFNLENBQUMsT0FBTyxDQUFDLENBQU0sRUFBRSxDQUFNO1FBQ3pCLElBQUksQ0FBQyxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLE9BQU8sQ0FBQyxDQUFDLEVBQUU7WUFDdEQsT0FBTyxJQUFJLENBQUM7U0FDZjtRQUNELElBQUksT0FBTyxDQUFDLEtBQUssUUFBUSxFQUFFO1lBQ3ZCLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDL0I7YUFBTTtZQUNILElBQUksQ0FBQyxZQUFZLElBQUksRUFBRTtnQkFDbkIsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDaEIsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQzthQUNuQjtZQUNELElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRTtnQkFDUCxPQUFPLENBQUMsQ0FBQzthQUNaO2lCQUFNLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRTtnQkFDZCxPQUFPLENBQUMsQ0FBQyxDQUFDO2FBQ2I7WUFDRCxPQUFPLENBQUMsQ0FBQztTQUNaO0lBQ0wsQ0FBQztJQUVELE1BQU0sQ0FBQyxh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R0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQztnQkFDbkMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7Z0JBQzNCLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7b0JBQ2hDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDO3dCQUFFLE9BQU87b0JBQ3pELE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxXQUFXLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsU0FBUyxFQUFFLE1BQU0sQ0FBQyxDQUFDO2dCQUN6RixDQUFDLENBQUMsQ0FBQzthQUNOO1NBQ0o7UUFDRCxPQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDOUIsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgRmlsdGVyUHJlZGljYXRlID0gKHZhbHVlOiBhbnksIGtleT86IGFueSwgdGFyZ2V0PzogYW55LCBzb3VyY2U/OiBhbnkpID0+IGJvb2xlYW47XHJcbmV4cG9ydCB0eXBlIEl0ZXJhdGVDYWxsYmFjayA9ICh2YWx1ZTogYW55LCBrZXk/OiBhbnkpID0+IHZvaWQ7XHJcblxyXG5jb25zdCBkZWZhdWx0UHJlZGljYXRlOiBGaWx0ZXJQcmVkaWNhdGUgPSAoKSA9PiB0cnVlO1xyXG5jb25zdCBoYXNCbG9iID0gdHlwZW9mIEJsb2IgIT09IFwidW5kZWZpbmVkXCIgJiYgISFCbG9iO1xyXG5jb25zdCBoYXNGaWxlID0gdHlwZW9mIEZpbGUgIT09IFwidW5kZWZpbmVkXCIgJiYgISFGaWxlO1xyXG5cclxuZXhwb3J0IGNsYXNzIE9iamVjdFV0aWxzIHtcclxuXHJcbiAgICBzdGF0aWMgY29tcGFyZShhOiBhbnksIGI6IGFueSk6IG51bWJlciB7XHJcbiAgICAgICAgaWYgKChhID09PSBudWxsIHx8IGIgPT09IG51bGwpIHx8ICh0eXBlb2YgYSAhPSB0eXBlb2YgYikpIHtcclxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0eXBlb2YgYSA9PT0gXCJzdHJpbmdcIikge1xyXG4gICAgICAgICAgICByZXR1cm4gKGEpLmxvY2FsZUNvbXBhcmUoYik7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgaWYgKGEgaW5zdGFuY2VvZiBEYXRlKSB7XHJcbiAgICAgICAgICAgICAgICBhID0gYS5nZXRUaW1lKCk7XHJcbiAgICAgICAgICAgICAgICBiID0gYi5nZXRUaW1lKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKGEgPiBiKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gMTtcclxuICAgICAgICAgICAgfSBlbHNlIGlmIChhIDwgYikge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIC0xO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiAwO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgZ2V0UHJvcGVydGllcyhvYmo6IGFueSk6IHN0cmluZ1tdIHtcclxuICAgICAgICBpZiAoIU9iamVjdFV0aWxzLmlzT2JqZWN0KG9iaikgJiYgIU9iamVjdFV0aWxzLmlzRnVuY3Rpb24ob2JqKSkgcmV0dXJuIFtdO1xyXG4gICAgICAgIGNvbnN0IHByb3BzID0gbmV3IFNldDxzdHJpbmc+KCk7XHJcbiAgICAgICAgT2JqZWN0LmtleXMob2JqKS5mb3JFYWNoKHAgPT4gcHJvcHMuYWRkKHApKTtcclxuICAgICAgICBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhvYmopLmZvckVhY2gocCA9PiBwcm9wcy5hZGQocCkpO1xyXG4gICAgICAgIHJldHVybiBBcnJheS5mcm9tKHByb3BzKTtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgZXF1YWxzKGE6IGFueSwgYjogYW55LCB2aXNpdGVkOiBTZXQ8YW55PiA9IG51bGwpOiBib29sZWFuIHtcclxuICAgICAgICB2aXNpdGVkID0gdmlzaXRlZCB8fCBuZXcgU2V0KCk7XHJcbiAgICAgICAgaWYgKHZpc2l0ZWQuaGFzKGEpICYmIHZpc2l0ZWQuaGFzKGIpKSByZXR1cm4gdHJ1ZTtcclxuICAgICAgICBpZiAoYSA9PT0gYikgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgaWYgKGEgPT09IG51bGwgfHwgYiA9PT0gbnVsbCkgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIGlmIChhICE9PSBhICYmIGIgIT09IGIpIHJldHVybiB0cnVlOyAvLyBOYU4gPT09IE5hTlxyXG4gICAgICAgIGNvbnN0IGF0ID0gdHlwZW9mIGEsIGJ0ID0gdHlwZW9mIGI7XHJcbiAgICAgICAgbGV0IGxlbmd0aDogbnVtYmVyLCBrZXk6IGFueSwga2V5U2V0OiBhbnk7XHJcbiAgICAgICAgaWYgKGF0ID09IGJ0ICYmIGF0ID09IFwib2JqZWN0XCIpIHtcclxuICAgICAgICAgICAgdmlzaXRlZC5hZGQoYSk7XHJcbiAgICAgICAgICAgIHZpc2l0ZWQuYWRkKGIpO1xyXG4gICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShhKSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KGIpKSByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICBpZiAoKGxlbmd0aCA9IGEubGVuZ3RoKSA9PSBiLmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGZvciAoa2V5ID0gMDsga2V5IDwgbGVuZ3RoOyBrZXkrKykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIU9iamVjdFV0aWxzLmVxdWFscyhhW2tleV0sIGJba2V5XSwgdmlzaXRlZCkpIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShiKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGtleVNldCA9IE9iamVjdC5jcmVhdGUobnVsbCk7XHJcbiAgICAgICAgICAgICAgICBmb3IgKGtleSBpbiBhKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGEuaGFzT3duUHJvcGVydHkoa2V5KSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIU9iamVjdFV0aWxzLmVxdWFscyhhW2tleV0sIGJba2V5XSwgdmlzaXRlZCkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBrZXlTZXRba2V5XSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZm9yIChrZXkgaW4gYikge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChiLmhhc093blByb3BlcnR5KGtleSkgJiYgIShrZXkgaW4ga2V5U2V0KSAmJiB0eXBlb2YgYltrZXldICE9PSBcInVuZGVmaW5lZFwiKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGV2YWx1YXRlKGV4cHI6IHN0cmluZywgY29udGV4dDogYW55ID0ge30sIHJlczogYW55ID0ge30pOiBhbnkge1xyXG4gICAgICAgIGV4cHIgPSBPYmplY3Qua2V5cyhjb250ZXh0KS5yZWR1Y2UoKHJlcywga2V5KSA9PiBgdmFyICR7a2V5fSA9IHRoaXNbJyR7a2V5fSddO1xcbiR7cmVzfWAsIGV4cHIpO1xyXG4gICAgICAgIGNvbnN0IGxpbmVzID0gZXhwci5zcGxpdChcIlxcblwiKTtcclxuICAgICAgICBjb25zdCBsYXN0TGluZSA9IFwicmV0dXJuIFwiICsgbGluZXMucG9wKCkucmVwbGFjZShcInJldHVybiBcIiwgXCJcIik7XHJcbiAgICAgICAgbGluZXMucHVzaChsYXN0TGluZSk7XHJcbiAgICAgICAgZXhwciA9IGxpbmVzLmpvaW4oXCJcXG5cIik7XHJcbiAgICAgICAgbGV0IHJlc3VsdCA9IG51bGw7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgcmVzdWx0ID0gbmV3IEZ1bmN0aW9uKGV4cHIpLmNhbGwoY29udGV4dCk7XHJcbiAgICAgICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgICByZXMuZXhjZXB0aW9uID0gZTtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coYEZhaWxlZCB0byBwYXJzZSBleHByZXNzaW9uOiAke2UubWVzc2FnZX1gLCBleHByLCBjb250ZXh0KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmVzLnJlc3VsdCA9IHJlc3VsdDtcclxuICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBlbXB0eShvYmo6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiAhb2JqIHx8IE9iamVjdC5rZXlzKG9iaikubGVuZ3RoID09IDA7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGl0ZXJhdGUob2JqOiBhbnksIGNiOiBJdGVyYXRlQ2FsbGJhY2spOiB2b2lkIHtcclxuICAgICAgICBpZiAoIW9iaikgcmV0dXJuO1xyXG4gICAgICAgIGNvbnN0IGtleXM6IGFueVtdID0gQXJyYXkuaXNBcnJheShvYmopID8gQXJyYXkuZnJvbShvYmoua2V5cygpKSA6IE9iamVjdC5rZXlzKG9iaik7XHJcbiAgICAgICAga2V5cy5mb3JFYWNoKFxyXG4gICAgICAgICAgICAvLyBAZHluYW1pY1xyXG4gICAgICAgICAgICBrZXkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY2Iob2JqW2tleV0sIGtleSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBnZXRWYWx1ZShvYmo6IGFueSwga2V5OiBzdHJpbmcsIGRlZmF1bHRWYWx1ZT86IGFueSwgdHJlZUZhbGxiYWNrOiBib29sZWFuID0gZmFsc2UpOiBhbnkge1xyXG4gICAgICAgIGtleSA9IGtleSB8fCBcIlwiO1xyXG4gICAgICAgIGNvbnN0IGtleXMgPSBrZXkuc3BsaXQoXCIuXCIpO1xyXG4gICAgICAgIGxldCBjdXJLZXkgPSBcIlwiO1xyXG4gICAgICAgIGRvIHtcclxuICAgICAgICAgICAgY3VyS2V5ICs9IGtleXMuc2hpZnQoKTtcclxuICAgICAgICAgICAgaWYgKE9iamVjdFV0aWxzLmlzRGVmaW5lZChvYmopICYmIE9iamVjdFV0aWxzLmlzRGVmaW5lZChvYmpbY3VyS2V5XSkgJiYgKHR5cGVvZiBvYmpbY3VyS2V5XSA9PT0gXCJvYmplY3RcIiB8fCAha2V5cy5sZW5ndGgpKSB7XHJcbiAgICAgICAgICAgICAgICBvYmogPSBvYmpbY3VyS2V5XTtcclxuICAgICAgICAgICAgICAgIGN1cktleSA9IFwiXCI7XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoIWtleXMubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICBkZWZhdWx0VmFsdWUgPSB0eXBlb2YgZGVmYXVsdFZhbHVlID09IFwidW5kZWZpbmVkXCIgPyBrZXkucmVwbGFjZShuZXcgUmVnRXhwKGAke2N1cktleX0kYCksIGB7JHtjdXJLZXl9fWApIDogZGVmYXVsdFZhbHVlO1xyXG4gICAgICAgICAgICAgICAgb2JqID0gdHJlZUZhbGxiYWNrID8gb2JqIHx8IGRlZmF1bHRWYWx1ZSA6IGRlZmF1bHRWYWx1ZTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGN1cktleSArPSBcIi5cIjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0gd2hpbGUgKGtleXMubGVuZ3RoKTtcclxuICAgICAgICByZXR1cm4gb2JqO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBtYXBUb1BhdGgodGFyZ2V0OiBhbnksIHNvdXJjZTogYW55LCBwYXRoOiBzdHJpbmdbXSk6IGFueSB7XHJcbiAgICAgICAgaWYgKHR5cGVvZiBzb3VyY2UgPT09IFwidW5kZWZpbmVkXCIpIHJldHVybiB0YXJnZXQ7XHJcbiAgICAgICAgaWYgKHBhdGgubGVuZ3RoID09IDApIHJldHVybiBzb3VyY2U7XHJcbiAgICAgICAgY29uc3Qga2V5OiBhbnkgPSBwYXRoLnNoaWZ0KCk7XHJcbiAgICAgICAgaWYgKGtleSA9PSBcIipcIikge1xyXG4gICAgICAgICAgICBpZiAoT2JqZWN0VXRpbHMuaXNBcnJheShzb3VyY2UpKSB7XHJcbiAgICAgICAgICAgICAgICB0YXJnZXQgPSBPYmplY3RVdGlscy5pc0FycmF5KHRhcmdldCkgPyB0YXJnZXQgOiBbXTtcclxuICAgICAgICAgICAgICAgIHJldHVybiBzb3VyY2UubWFwKChpdGVtLCBpbmRleCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBPYmplY3RVdGlscy5tYXBUb1BhdGgodGFyZ2V0W2luZGV4XSwgaXRlbSwgQXJyYXkuZnJvbShwYXRoKSk7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoT2JqZWN0VXRpbHMuaXNPYmplY3Qoc291cmNlKSkge1xyXG4gICAgICAgICAgICAgICAgdGFyZ2V0ID0gT2JqZWN0VXRpbHMuaXNPYmplY3QodGFyZ2V0KSA/IHRhcmdldCA6IHt9O1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKHNvdXJjZSkucmVkdWNlKChyZXN1bHQsIGtleSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdFtrZXldID0gT2JqZWN0VXRpbHMubWFwVG9QYXRoKHRhcmdldFtrZXldLCBzb3VyY2Vba2V5XSwgQXJyYXkuZnJvbShwYXRoKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgICAgICAgICAgICAgIH0sIHt9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gT2JqZWN0VXRpbHMuaXNOdWxsT3JVbmRlZmluZWQodGFyZ2V0KSA/IG51bGwgOiB0YXJnZXQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IGlzQXJyYXkgPSBPYmplY3RVdGlscy5pc0FycmF5KHRhcmdldCk7XHJcbiAgICAgICAgdGFyZ2V0ID0gT2JqZWN0VXRpbHMuaXNPYmplY3QodGFyZ2V0KSB8fCBpc0FycmF5ID8gdGFyZ2V0IDoge307XHJcbiAgICAgICAgdGFyZ2V0W2tleV0gPSBPYmplY3RVdGlscy5tYXBUb1BhdGgodGFyZ2V0W2tleV0sIHNvdXJjZSwgQXJyYXkuZnJvbShwYXRoKSk7XHJcbiAgICAgICAgcmV0dXJuIGlzTmFOKGtleSkgfHwgaXNBcnJheSA/IHRhcmdldCA6IE9iamVjdC52YWx1ZXModGFyZ2V0KTtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgZmlsdGVyKG9iajogYW55LCBwcmVkaWNhdGU6IEZpbHRlclByZWRpY2F0ZSk6IGFueSB7XHJcbiAgICAgICAgcmV0dXJuIE9iamVjdFV0aWxzLmNvcHlSZWN1cnNpdmUobnVsbCwgb2JqLCBwcmVkaWNhdGUsIG5ldyBNYXAoKSk7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGNvcHk8VD4ob2JqOiBUKTogVCB7XHJcbiAgICAgICAgcmV0dXJuIE9iamVjdFV0aWxzLmNvcHlSZWN1cnNpdmUobnVsbCwgb2JqLCBudWxsLCBuZXcgTWFwKCkpO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBhc3NpZ248VD4odGFyZ2V0OiBULCBzb3VyY2U6IGFueSwgcHJlZGljYXRlPzogRmlsdGVyUHJlZGljYXRlKTogVCB7XHJcbiAgICAgICAgcmV0dXJuIE9iamVjdFV0aWxzLmNvcHlSZWN1cnNpdmUodGFyZ2V0LCBzb3VyY2UsIHByZWRpY2F0ZSwgbmV3IE1hcCgpKTtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgZ2V0VHlwZShvYmo6IGFueSk6IHN0cmluZyB7XHJcbiAgICAgICAgY29uc3QgcmVnZXggPSBuZXcgUmVnRXhwKFwiXFxcXHMoW2EtekEtWl0rKVwiKTtcclxuICAgICAgICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKG9iaikubWF0Y2gocmVnZXgpWzFdLnRvTG93ZXJDYXNlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGlzUHJpbWl0aXZlKHZhbHVlOiBhbnkpOiBib29sZWFuIHtcclxuICAgICAgICBjb25zdCB0eXBlID0gdHlwZW9mIHZhbHVlO1xyXG4gICAgICAgIHJldHVybiB2YWx1ZSA9PSBudWxsIHx8ICh0eXBlICE9PSBcIm9iamVjdFwiICYmIHR5cGUgIT09IFwiZnVuY3Rpb25cIik7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGlzT2JqZWN0KHZhbHVlOiBhbnkpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gT2JqZWN0VXRpbHMuZ2V0VHlwZSh2YWx1ZSkgPT09IFwib2JqZWN0XCI7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGlzRGVmaW5lZCh2YWx1ZTogYW55KTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSAhPT0gXCJ1bmRlZmluZWRcIiAmJiB2YWx1ZSAhPT0gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgaXNOdWxsT3JVbmRlZmluZWQodmFsdWU6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0eXBlb2YgdmFsdWUgPT0gXCJ1bmRlZmluZWRcIiB8fCB2YWx1ZSA9PSBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBpc1N0cmluZyh2YWx1ZTogYW55KTogdmFsdWUgaXMgc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBpc0Z1bmN0aW9uKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBGdW5jdGlvbiB7XHJcbiAgICAgICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gXCJmdW5jdGlvblwiO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBpc0RhdGUodmFsdWU6IGFueSk6IHZhbHVlIGlzIERhdGUge1xyXG4gICAgICAgIHJldHVybiBudWxsICE9PSB2YWx1ZSAmJiAhaXNOYU4odmFsdWUpICYmIFwidW5kZWZpbmVkXCIgIT09IHR5cGVvZiB2YWx1ZS5nZXREYXRlO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBpc0Jsb2IodmFsdWU6IGFueSk6IHZhbHVlIGlzIEJsb2Ige1xyXG4gICAgICAgIHJldHVybiAoaGFzQmxvYiAmJiB2YWx1ZSBpbnN0YW5jZW9mIEJsb2IpIHx8IChoYXNGaWxlICYmIHZhbHVlIGluc3RhbmNlb2YgRmlsZSk7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGlzQm9vbGVhbih2YWx1ZTogYW55KTogdmFsdWUgaXMgYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHR5cGVvZih2YWx1ZSkgPT0gdHlwZW9mKHRydWUpO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBpc051bWJlcih2YWx1ZTogYW55KTogdmFsdWUgaXMgbnVtYmVyIHtcclxuICAgICAgICBpZiAodHlwZW9mIHZhbHVlICE9PSBcIm51bWJlclwiKSByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgY29uc3QgbnVtID0gK3ZhbHVlO1xyXG4gICAgICAgIGlmICgobnVtIC0gbnVtKSAhPT0gMCkge1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChudW0gPT09IHZhbHVlKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgaXNBcnJheSh2YWx1ZTogYW55KTogdmFsdWUgaXMgQXJyYXk8YW55PiB7XHJcbiAgICAgICAgcmV0dXJuIEFycmF5LmlzQXJyYXkodmFsdWUpO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBpc1NldCh2YWx1ZTogYW55KTogdmFsdWUgaXMgU2V0PGFueT4ge1xyXG4gICAgICAgIHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFNldDtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgY2hlY2tJbnRlcmZhY2Uob2JqOiBhbnksIGludGVyRmFjZU9iamVjdDogYW55KTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIE9iamVjdFV0aWxzLmlzSW50ZXJmYWNlKG9iaiwgaW50ZXJGYWNlT2JqZWN0KTtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgaXNJbnRlcmZhY2Uob2JqOiBhbnksIGludGVyRmFjZU9iamVjdDogYW55KTogYm9vbGVhbiB7XHJcbiAgICAgICAgaWYgKCFvYmogfHwgdHlwZW9mIG9iaiAhPT0gXCJvYmplY3RcIiB8fCBPYmplY3RVdGlscy5pc0FycmF5KG9iaikgfHwgIU9iamVjdFV0aWxzLmlzT2JqZWN0KGludGVyRmFjZU9iamVjdCkpIHJldHVybiBmYWxzZTtcclxuICAgICAgICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXMoaW50ZXJGYWNlT2JqZWN0KTtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBvZiBrZXlzKSB7XHJcbiAgICAgICAgICAgIGxldCB0eXBlID0gaW50ZXJGYWNlT2JqZWN0W2tleV0gfHwgXCJcIjtcclxuICAgICAgICAgICAgaWYgKHR5cGUuc3RhcnRzV2l0aChcIipcIikpIHtcclxuICAgICAgICAgICAgICAgIHR5cGUgPSB0eXBlLnN1YnN0cigxKTtcclxuICAgICAgICAgICAgICAgIGlmIChvYmouaGFzT3duUHJvcGVydHkoa2V5KSAmJiBPYmplY3RVdGlscy5nZXRUeXBlKG9ialtrZXldKSAhPT0gdHlwZSkgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKCFvYmouaGFzT3duUHJvcGVydHkoa2V5KSB8fCBPYmplY3RVdGlscy5nZXRUeXBlKG9ialtrZXldKSAhPT0gdHlwZSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBwYWQob2JqOiBhbnksIHdpZHRoOiBudW1iZXIsIGNocjogc3RyaW5nID0gXCIwXCIpOiBzdHJpbmcge1xyXG4gICAgICAgIGNvbnN0IHN0ciA9IE9iamVjdFV0aWxzLmlzRGVmaW5lZChvYmopID8gb2JqLnRvU3RyaW5nKCkgOiBcIlwiO1xyXG4gICAgICAgIHJldHVybiBzdHIubGVuZ3RoID49IHdpZHRoID8gc3RyIDogbmV3IEFycmF5KHdpZHRoIC0gc3RyLmxlbmd0aCArIDEpLmpvaW4oY2hyKSArIHN0cjtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHN0YXRpYyBjb3B5UmVjdXJzaXZlKHRhcmdldDogYW55LCBzb3VyY2U6IGFueSwgcHJlZGljYXRlOiBGaWx0ZXJQcmVkaWNhdGUsIGNvcGllczogTWFwPGFueSwgYW55Pik6IGFueSB7XHJcbiAgICAgICAgcHJlZGljYXRlID0gcHJlZGljYXRlIHx8IGRlZmF1bHRQcmVkaWNhdGU7XHJcbiAgICAgICAgaWYgKE9iamVjdFV0aWxzLmlzUHJpbWl0aXZlKHNvdXJjZSkgfHwgT2JqZWN0VXRpbHMuaXNEYXRlKHNvdXJjZSkgfHwgT2JqZWN0VXRpbHMuaXNCbG9iKHNvdXJjZSkgfHwgT2JqZWN0VXRpbHMuaXNGdW5jdGlvbihzb3VyY2UpKSByZXR1cm4gc291cmNlO1xyXG4gICAgICAgIGlmICghY29waWVzLmhhcyhzb3VyY2UpKSB7XHJcbiAgICAgICAgICAgIGlmIChPYmplY3RVdGlscy5pc0FycmF5KHNvdXJjZSkpIHtcclxuICAgICAgICAgICAgICAgIHRhcmdldCA9IE9iamVjdFV0aWxzLmlzQXJyYXkodGFyZ2V0KSA/IEFycmF5LmZyb20odGFyZ2V0KSA6IFtdO1xyXG4gICAgICAgICAgICAgICAgY29waWVzLnNldChzb3VyY2UsIHRhcmdldCk7XHJcbiAgICAgICAgICAgICAgICBzb3VyY2UuZm9yRWFjaCgoaXRlbSwgaW5kZXgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoIXByZWRpY2F0ZShpdGVtLCBpbmRleCwgdGFyZ2V0LCBzb3VyY2UpKSByZXR1cm47XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRhcmdldC5sZW5ndGggPiBpbmRleClcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0W2luZGV4XSA9IE9iamVjdFV0aWxzLmNvcHlSZWN1cnNpdmUodGFyZ2V0W2luZGV4XSwgaXRlbSwgcHJlZGljYXRlLCBjb3BpZXMpO1xyXG4gICAgICAgICAgICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LnB1c2goT2JqZWN0VXRpbHMuY29weVJlY3Vyc2l2ZShudWxsLCBpdGVtLCBwcmVkaWNhdGUsIGNvcGllcykpO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0YXJnZXQgPSBPYmplY3QuYXNzaWduKHt9LCB0YXJnZXQpO1xyXG4gICAgICAgICAgICAgICAgY29waWVzLnNldChzb3VyY2UsIHRhcmdldCk7XHJcbiAgICAgICAgICAgICAgICBPYmplY3Qua2V5cyhzb3VyY2UpLmZvckVhY2goKGtleSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICghcHJlZGljYXRlKHNvdXJjZVtrZXldLCBrZXksIHRhcmdldCwgc291cmNlKSkgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgICAgIHRhcmdldFtrZXldID0gT2JqZWN0VXRpbHMuY29weVJlY3Vyc2l2ZSh0YXJnZXRba2V5XSwgc291cmNlW2tleV0sIHByZWRpY2F0ZSwgY29waWVzKTtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBjb3BpZXMuZ2V0KHNvdXJjZSk7XHJcbiAgICB9XHJcbn1cclxuIl19
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { InjectionToken, TemplateRef, Injectable, Inject, PLATFORM_ID, Injector, NgZone, Optional, EventEmitter, isDevMode, ErrorHandler, Pipe, ChangeDetectorRef, Input, Output, HostBinding, HostListener,
|
|
1
|
+
import { InjectionToken, TemplateRef, Injectable, Inject, PLATFORM_ID, Injector, NgZone, Optional, EventEmitter, isDevMode, ErrorHandler, Pipe, ChangeDetectorRef, Directive, Input, Output, HostBinding, HostListener, ElementRef, Renderer2, ViewContainerRef, Component, ContentChildren, ViewChild, ContentChild, APP_INITIALIZER, NgModule } from '@angular/core';
|
|
2
2
|
import 'reflect-metadata';
|
|
3
3
|
import moment from 'moment';
|
|
4
4
|
import { first, skipWhile, mergeMap, timeout, map } from 'rxjs/operators';
|
|
@@ -15,8 +15,8 @@ import { FormsModule } from '@angular/forms';
|
|
|
15
15
|
|
|
16
16
|
const defaultPredicate = () => true;
|
|
17
17
|
const ɵ0 = defaultPredicate;
|
|
18
|
-
const hasBlob = typeof Blob !== "undefined";
|
|
19
|
-
const hasFile = typeof File !== "undefined";
|
|
18
|
+
const hasBlob = typeof Blob !== "undefined" && !!Blob;
|
|
19
|
+
const hasFile = typeof File !== "undefined" && !!File;
|
|
20
20
|
class ObjectUtils {
|
|
21
21
|
static compare(a, b) {
|
|
22
22
|
if ((a === null || b === null) || (typeof a != typeof b)) {
|
|
@@ -1274,7 +1274,7 @@ class UniversalService {
|
|
|
1274
1274
|
this.platformId = platformId;
|
|
1275
1275
|
this.dds = dds;
|
|
1276
1276
|
const info = this.dds.getDeviceInfo();
|
|
1277
|
-
this.crawler = /(bot|google|baidu|bing|msn|duckduckbot|teoma|slurp|yandex|lighthouse|angular-universal|PTST)/gi.test(info.userAgent);
|
|
1277
|
+
this.crawler = /(bot|google|baidu|bing|msn|duckduckbot|teoma|slurp|yandex|lighthouse|angular-universal|PTST|PostmanRuntime)/gi.test(info.userAgent);
|
|
1278
1278
|
}
|
|
1279
1279
|
get isBrowser() {
|
|
1280
1280
|
return isPlatformBrowser(this.platformId);
|
|
@@ -3943,10 +3943,12 @@ class AsyncMethodBase {
|
|
|
3943
3943
|
}
|
|
3944
3944
|
}
|
|
3945
3945
|
AsyncMethodBase.decorators = [
|
|
3946
|
-
{ type:
|
|
3946
|
+
{ type: Directive, args: [{
|
|
3947
|
+
selector: "[_abstract_asyncMethodBase]"
|
|
3948
|
+
},] }
|
|
3947
3949
|
];
|
|
3948
3950
|
AsyncMethodBase.ctorParameters = () => [
|
|
3949
|
-
{ type: undefined }
|
|
3951
|
+
{ type: undefined, decorators: [{ type: Inject, args: [TOASTER_SERVICE,] }] }
|
|
3950
3952
|
];
|
|
3951
3953
|
AsyncMethodBase.propDecorators = {
|
|
3952
3954
|
disabled: [{ type: Input }],
|
|
@@ -3959,9 +3961,6 @@ AsyncMethodBase.propDecorators = {
|
|
|
3959
3961
|
};
|
|
3960
3962
|
|
|
3961
3963
|
class AsyncMethodDirective extends AsyncMethodBase {
|
|
3962
|
-
constructor(toaster) {
|
|
3963
|
-
super(toaster);
|
|
3964
|
-
}
|
|
3965
3964
|
getMethod() {
|
|
3966
3965
|
return this.method;
|
|
3967
3966
|
}
|
|
@@ -3972,9 +3971,6 @@ AsyncMethodDirective.decorators = [
|
|
|
3972
3971
|
exportAs: "async-method"
|
|
3973
3972
|
},] }
|
|
3974
3973
|
];
|
|
3975
|
-
AsyncMethodDirective.ctorParameters = () => [
|
|
3976
|
-
{ type: undefined, decorators: [{ type: Inject, args: [TOASTER_SERVICE,] }] }
|
|
3977
|
-
];
|
|
3978
3974
|
AsyncMethodDirective.propDecorators = {
|
|
3979
3975
|
method: [{ type: Input, args: ["async-method",] }]
|
|
3980
3976
|
};
|
|
@@ -4837,6 +4833,7 @@ const pipes = [
|
|
|
4837
4833
|
];
|
|
4838
4834
|
// --- Directives ---
|
|
4839
4835
|
const directives = [
|
|
4836
|
+
AsyncMethodBase,
|
|
4840
4837
|
AsyncMethodDirective,
|
|
4841
4838
|
BackgroundDirective,
|
|
4842
4839
|
DynamicTableTemplateDirective,
|