@alfresco/adf-core 8.1.0-16445172226 → 8.1.0-16472253724
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/assets/adf-core/i18n/pl.json +1 -1
- package/esm2022/lib/auth/basic-auth/basic-alfresco-auth.service.mjs +14 -1
- package/esm2022/lib/auth/guard/auth-guard-bpm.service.mjs +2 -2
- package/esm2022/lib/auth/interfaces/authentication-service.interface.mjs +1 -1
- package/esm2022/lib/auth/oidc/oidc-authentication.service.mjs +16 -14
- package/esm2022/lib/auth/services/authentication.service.mjs +17 -17
- package/esm2022/lib/auth/services/base-authentication.service.mjs +1 -5
- package/esm2022/lib/card-view/components/card-view/card-view.component.mjs +3 -3
- package/esm2022/lib/card-view/components/card-view-selectitem/card-view-selectitem.component.mjs +3 -3
- package/esm2022/lib/card-view/components/card-view-textitem/card-view-textitem.component.mjs +3 -3
- package/esm2022/lib/form/components/widgets/text/text-mask.component.mjs +8 -2
- package/esm2022/lib/landing-page/index.mjs +18 -0
- package/esm2022/lib/landing-page/provider.mjs +30 -0
- package/esm2022/lib/landing-page/public-api.mjs +18 -0
- package/esm2022/lib/testing/unit-testing-utils.mjs +4 -1
- package/esm2022/lib/translation/provide-i18n.mjs +48 -0
- package/esm2022/lib/translation/public-api.mjs +2 -1
- package/esm2022/public-api.mjs +2 -1
- package/fesm2022/adf-core.mjs +170 -43
- package/fesm2022/adf-core.mjs.map +1 -1
- package/lib/auth/basic-auth/basic-alfresco-auth.service.d.ts +13 -0
- package/lib/auth/interfaces/authentication-service.interface.d.ts +9 -4
- package/lib/auth/oidc/oidc-authentication.service.d.ts +15 -5
- package/lib/auth/services/authentication.service.d.ts +12 -2
- package/lib/auth/services/base-authentication.service.d.ts +5 -1
- package/lib/card-view/components/card-view/card-view.component.scss +9 -0
- package/lib/card-view/components/card-view-selectitem/card-view-selectitem.component.scss +2 -1
- package/lib/card-view/components/card-view-textitem/card-view-textitem.component.scss +5 -1
- package/lib/form/components/widgets/text/text-mask.component.d.ts +1 -0
- package/lib/landing-page/index.d.ts +17 -0
- package/lib/landing-page/provider.d.ts +24 -0
- package/lib/landing-page/public-api.d.ts +17 -0
- package/lib/testing/unit-testing-utils.d.ts +1 -0
- package/lib/translation/provide-i18n.d.ts +39 -0
- package/lib/translation/public-api.d.ts +1 -0
- package/package.json +3 -3
- package/public-api.d.ts +1 -0
|
@@ -50,6 +50,9 @@ export class InputMaskDirective {
|
|
|
50
50
|
this._onChange(this.el.nativeElement.value);
|
|
51
51
|
}
|
|
52
52
|
}
|
|
53
|
+
onBlur() {
|
|
54
|
+
this._onTouched();
|
|
55
|
+
}
|
|
53
56
|
ngOnChanges(changes) {
|
|
54
57
|
if (changes['inputMask']?.currentValue['mask']) {
|
|
55
58
|
this.inputMask = changes['inputMask'].currentValue;
|
|
@@ -193,7 +196,7 @@ export class InputMaskDirective {
|
|
|
193
196
|
return this.value;
|
|
194
197
|
}
|
|
195
198
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: InputMaskDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
196
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: InputMaskDirective, isStandalone: true, selector: "[adf-text-mask], [textMask]", inputs: { inputMask: ["textMask", "inputMask"] }, host: { listeners: { "input": "onTextInput($event)", "keyup": "onTextInput($event)" } }, providers: [CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR], usesOnChanges: true, ngImport: i0 }); }
|
|
199
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: InputMaskDirective, isStandalone: true, selector: "[adf-text-mask], [textMask]", inputs: { inputMask: ["textMask", "inputMask"] }, host: { listeners: { "input": "onTextInput($event)", "keyup": "onTextInput($event)", "blur": "onBlur()" } }, providers: [CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR], usesOnChanges: true, ngImport: i0 }); }
|
|
197
200
|
}
|
|
198
201
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: InputMaskDirective, decorators: [{
|
|
199
202
|
type: Directive,
|
|
@@ -211,5 +214,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
211
214
|
}, {
|
|
212
215
|
type: HostListener,
|
|
213
216
|
args: ['keyup', ['$event']]
|
|
217
|
+
}], onBlur: [{
|
|
218
|
+
type: HostListener,
|
|
219
|
+
args: ['blur']
|
|
214
220
|
}] } });
|
|
215
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1tYXNrLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9jb3JlL3NyYy9saWIvZm9ybS9jb21wb25lbnRzL3dpZGdldHMvdGV4dC90ZXh0LW1hc2suY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUVILGlJQUFpSTtBQUVqSSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBYSxTQUFTLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQzVILE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFFekUsTUFBTSxDQUFDLE1BQU0sbUNBQW1DLEdBQVE7SUFDcEQsT0FBTyxFQUFFLGlCQUFpQjtJQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGtCQUFrQixDQUFDO0lBQ2pELEtBQUssRUFBRSxJQUFJO0NBQ2QsQ0FBQztBQUVGOztHQUVHO0FBTUgsTUFBTSxPQUFPLGtCQUFrQjtJQW1CM0IsWUFBb0IsRUFBYyxFQUFVLE1BQWlCO1FBQXpDLE9BQUUsR0FBRixFQUFFLENBQVk7UUFBVSxXQUFNLEdBQU4sTUFBTSxDQUFXO1FBWnJELG9CQUFlLEdBQUc7WUFDdEIsR0FBRyxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRTtZQUN0QixHQUFHLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7WUFDdEMsR0FBRyxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFO1lBQ3ZDLENBQUMsRUFBRSxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUU7WUFDN0IsQ0FBQyxFQUFFLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRTtTQUM3QixDQUFDO1FBRU0s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QVEsRUFBRSw2QkFBNkI7b0JBQ3ZDLFVBQVUsRUFBRSxJQUFJO29CQUNoQixTQUFTLEVBQUUsQ0FBQyxtQ0FBbUMsQ0FBQztpQkFDbkQ7dUdBR3NCLFNBQVM7c0JBQTNCLEtBQUs7dUJBQUMsVUFBVTtnQkF5QmpCLFdBQVc7c0JBRlYsWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUM7O3NCQUNoQyxZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjUgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuLyogZXNsaW50LWRpc2FibGUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvciwgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVzZS1iZWZvcmUtZGVmaW5lLCBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXQtcmVuYW1lICovXG5cbmltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgZm9yd2FyZFJlZiwgSG9zdExpc3RlbmVyLCBJbnB1dCwgT25DaGFuZ2VzLCBSZW5kZXJlcjIsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuZXhwb3J0IGNvbnN0IENVU1RPTV9JTlBVVF9DT05UUk9MX1ZBTFVFX0FDQ0VTU09SOiBhbnkgPSB7XG4gICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gSW5wdXRNYXNrRGlyZWN0aXZlKSxcbiAgICBtdWx0aTogdHJ1ZVxufTtcblxuLyoqXG4gKiBEaXJlY3RpdmUgc2VsZWN0b3JzIHdpdGhvdXQgYWRmLSBwcmVmaXggd2lsbCBiZSBkZXByZWNhdGVkIG9uIDMuMC4wXG4gKi9cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2FkZi10ZXh0LW1hc2tdLCBbdGV4dE1hc2tdJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHByb3ZpZGVyczogW0NVU1RPTV9JTlBVVF9DT05UUk9MX1ZBTFVFX0FDQ0VTU09SXVxufSlcbmV4cG9ydCBjbGFzcyBJbnB1dE1hc2tEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkNoYW5nZXMsIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgICAvKiogT2JqZWN0IGRlZmluaW5nIG1hc2sgYW5kIFwicmV2ZXJzZWRcIiBzdGF0dXMuICovXG4gICAgQElucHV0KCd0ZXh0TWFzaycpIGlucHV0TWFzazoge1xuICAgICAgICBtYXNrOiBzdHJpbmc7XG4gICAgICAgIGlzUmV2ZXJzZWQ6IGJvb2xlYW47XG4gICAgfTtcblxuICAgIHByaXZhdGUgdHJhbnNsYXRpb25NYXNrID0ge1xuICAgICAgICAnMCc6IHsgcGF0dGVybjogL1xcZC8gfSxcbiAgICAgICAgJzknOiB7IHBhdHRlcm46IC9cXGQvLCBvcHRpb25hbDogdHJ1ZSB9LFxuICAgICAgICAnIyc6IHsgcGF0dGVybjogL1xcZC8sIHJlY3Vyc2l2ZTogdHJ1ZSB9LFxuICAgICAgICBBOiB7IHBhdHRlcm46IC9bYS16QS1aMC05XS8gfSxcbiAgICAgICAgUzogeyBwYXR0ZXJuOiAvW2EtekEtWl0vIH1cbiAgICB9O1xuXG4gICAgcHJpdmF0ZSBieVBhc3NLZXlzID0gWzksIDE2LCAxNywgMTgsIDM2LCAzNywgMzgsIDM5LCA0MCwgOTFdO1xuICAgIHByaXZhdGUgdmFsdWU7XG4gICAgcHJpdmF0ZSBpbnZhbGlkQ2hhcmFjdGVycyA9IFtdO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBlbDogRWxlbWVudFJlZiwgcHJpdmF0ZSByZW5kZXI6IFJlbmRlcmVyMikge31cblxuICAgIF9vbkNoYW5nZSA9IChfOiBhbnkpID0+IHt9O1xuXG4gICAgX29uVG91Y2hlZCA9ICgpID0+IHt9O1xuXG4gICAgQEhvc3RMaXN0ZW5lcignaW5wdXQnLCBbJyRldmVudCddKVxuICAgIEBIb3N0TGlzdGVuZXIoJ2tleXVwJywgWyckZXZlbnQnXSlcbiAgICBvblRleHRJbnB1dChldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgICAgICBpZiAodGhpcy5pbnB1dE1hc2s/Lm1hc2spIHtcbiAgICAgICAgICAgIHRoaXMubWFza1ZhbHVlKFxuICAgICAgICAgICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC52YWx1ZSxcbiAgICAgICAgICAgICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuc2VsZWN0aW9uU3RhcnQsXG4gICAgICAgICAgICAgICAgdGhpcy5pbnB1dE1hc2subWFzayxcbiAgICAgICAgICAgICAgICB0aGlzLmlucHV0TWFzay5pc1JldmVyc2VkLFxuICAgICAgICAgICAgICAgIGV2ZW50LmtleUNvZGVcbiAgICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9vbkNoYW5nZSh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQudmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgICAgICBpZiAoY2hhbmdlc1snaW5wdXRNYXNrJ10/LmN1cnJlbnRWYWx1ZVsnbWFzayddKSB7XG4gICAgICAgICAgICB0aGlzLmlucHV0TWFzayA9IGNoYW5nZXNbJ2lucHV0TWFzayddLmN1cnJlbnRWYWx1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHdyaXRlVmFsdWUodmFsdWU6IGFueSkge1xuICAgICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpIHtcbiAgICAgICAgdGhpcy5fb25DaGFuZ2UgPSBmbjtcbiAgICB9XG5cbiAgICByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMuX29uVG91Y2hlZCA9IGZuO1xuICAgIH1cblxuICAgIHByaXZhdGUgbWFza1ZhbHVlKGFjdHVhbFZhbHVlOiBzdHJpbmcsIHN0YXJ0Q2FyZXQ6IG51bWJlciwgbWFza1RvQXBwbHk6IHN0cmluZywgaXNNYXNrUmV2ZXJzZWQ6IGJvb2xlYW4sIGtleUNvZGU6IG51bWJlcikge1xuICAgICAgICBpZiAodGhpcy5ieVBhc3NLZXlzLmluZGV4T2Yoa2V5Q29kZSkgPT09IC0xKSB7XG4gICAgICAgICAgICBjb25zdCB2YWx1ZSA9IHRoaXMuZ2V0TWFza2VkKGZhbHNlLCBhY3R1YWxWYWx1ZSwgbWFza1RvQXBwbHksIGlzTWFza1JldmVyc2VkKTtcbiAgICAgICAgICAgIGNvbnN0IGNhbGN1bGF0ZWRDYXJldCA9IHRoaXMuY2FsY3VsYXRlQ2FyZXRQb3NpdGlvbihzdGFydENhcmV0LCBhY3R1YWxWYWx1ZSwga2V5Q29kZSk7XG4gICAgICAgICAgICB0aGlzLnJlbmRlci5zZXRBdHRyaWJ1dGUodGhpcy5lbC5uYXRpdmVFbGVtZW50LCAndmFsdWUnLCB2YWx1ZSk7XG4gICAgICAgICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgICAgIHRoaXMuc2V0VmFsdWUodmFsdWUpO1xuICAgICAgICAgICAgdGhpcy5fb25DaGFuZ2UodmFsdWUpO1xuICAgICAgICAgICAgdGhpcy5zZXRDYXJldFBvc2l0aW9uKGNhbGN1bGF0ZWRDYXJldCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHNldENhcmV0UG9zaXRpb24oY2FyZXRQb3NpdGlvbjogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5tb3ZlU3RhcnQgPSBjYXJldFBvc2l0aW9uO1xuICAgICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQubW92ZUVuZCA9IGNhcmV0UG9zaXRpb247XG4gICAgfVxuXG4gICAgY2FsY3VsYXRlQ2FyZXRQb3NpdGlvbihjYXJldFBvc2l0aW9uOiBudW1iZXIsIG5ld1ZhbHVlOiBzdHJpbmcsIGtleUNvZGU6IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IG5ld1ZhbHVlTGVuZ3RoID0gbmV3VmFsdWUubGVuZ3RoO1xuICAgICAgICBjb25zdCBvbGRWYWx1ZSA9IHRoaXMuZ2V0VmFsdWUoKSB8fCAnJztcbiAgICAgICAgY29uc3Qgb2xkVmFsdWVMZW5ndGggPSBvbGRWYWx1ZS5sZW5ndGg7XG5cbiAgICAgICAgaWYgKGtleUNvZGUgPT09IDggJiYgb2xkVmFsdWUgIT09IG5ld1ZhbHVlKSB7XG4gICAgICAgICAgICBjYXJldFBvc2l0aW9uID0gY2FyZXRQb3NpdGlvbiAtIChuZXdWYWx1ZS5zbGljZSgwLCBjYXJldFBvc2l0aW9uKS5sZW5ndGggLSBvbGRWYWx1ZS5zbGljZSgwLCBjYXJldFBvc2l0aW9uKS5sZW5ndGgpO1xuICAgICAgICB9IGVsc2UgaWYgKG9sZFZhbHVlICE9PSBuZXdWYWx1ZSkge1xuICAgICAgICAgICAgaWYgKGNhcmV0UG9zaXRpb24gPj0gb2xkVmFsdWVMZW5ndGgpIHtcbiAgICAgICAgICAgICAgICBjYXJldFBvc2l0aW9uID0gbmV3VmFsdWVMZW5ndGg7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNhcmV0UG9zaXRpb24gPSBjYXJldFBvc2l0aW9uICsgKG5ld1ZhbHVlLnNsaWNlKDAsIGNhcmV0UG9zaXRpb24pLmxlbmd0aCAtIG9sZFZhbHVlLnNsaWNlKDAsIGNhcmV0UG9zaXRpb24pLmxlbmd0aCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGNhcmV0UG9zaXRpb247XG4gICAgfVxuXG4gICAgZ2V0TWFza2VkKHNraXBNYXNrQ2hhcnM6IGJvb2xlYW4sIHZhbDogc3RyaW5nLCBtYXNrOiBzdHJpbmcsIGlzUmV2ZXJzZWQgPSBmYWxzZSkge1xuICAgICAgICBjb25zdCBidWYgPSBbXTtcbiAgICAgICAgY29uc3QgdmFsdWUgPSB2YWw7XG4gICAgICAgIGxldCBtYXNrSW5kZXggPSAwO1xuICAgICAgICBjb25zdCBtYXNrTGVuID0gbWFzay5sZW5ndGg7XG4gICAgICAgIGxldCB2YWx1ZUluZGV4ID0gMDtcbiAgICAgICAgY29uc3QgdmFsdWVMZW5ndGggPSB2YWx1ZS5sZW5ndGg7XG4gICAgICAgIGxldCBvZmZzZXQgPSAxO1xuICAgICAgICBsZXQgYWRkTWV0aG9kID0gJ3B1c2gnO1xuICAgICAgICBsZXQgcmVzZXRQb3MgPSAtMTtcbiAgICAgICAgbGV0IGxhc3RNYXNrQ2hhcjogbnVtYmVyO1xuICAgICAgICBsZXQgbGFzdFVudHJhbnNsYXRlZE1hc2tDaGFyOiBzdHJpbmc7XG4gICAgICAgIGxldCBjaGVjazogYm9vbGVhbjtcblxuICAgICAgICBpZiAoaXNSZXZlcnNlZCkge1xuICAgICAgICAgICAgYWRkTWV0aG9kID0gJ3Vuc2hpZnQnO1xuICAgICAgICAgICAgb2Zmc2V0ID0gLTE7XG4gICAgICAgICAgICBsYXN0TWFza0NoYXIgPSAwO1xuICAgICAgICAgICAgbWFza0luZGV4ID0gbWFza0xlbiAtIDE7XG4gICAgICAgICAgICB2YWx1ZUluZGV4ID0gdmFsdWVMZW5ndGggLSAxO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbGFzdE1hc2tDaGFyID0gbWFza0xlbiAtIDE7XG4gICAgICAgIH1cbiAgICAgICAgY2hlY2sgPSB0aGlzLmlzVG9DaGVjayhpc1JldmVyc2VkLCBtYXNrSW5kZXgsIG1hc2tMZW4sIHZhbHVlSW5kZXgsIHZhbHVlTGVuZ3RoKTtcbiAgICAgICAgd2hpbGUgKGNoZWNrKSB7XG4gICAgICAgICAgICBjb25zdCBtYXNrRGlnaXQgPSBtYXNrLmNoYXJBdChtYXNrSW5kZXgpO1xuICAgICAgICAgICAgY29uc3QgdmFsRGlnaXQgPSB2YWx1ZS5jaGFyQXQodmFsdWVJbmRleCk7XG4gICAgICAgICAgICBjb25zdCB0cmFuc2xhdGlvbiA9IHRoaXMudHJhbnNsYXRpb25NYXNrW21hc2tEaWdpdF07XG5cbiAgICAgICAgICAgIGlmICh0cmFuc2xhdGlvbikge1xuICAgICAgICAgICAgICAgIGlmICh2YWxEaWdpdC5tYXRjaCh0cmFuc2xhdGlvbi5wYXR0ZXJuKSkge1xuICAgICAgICAgICAgICAgICAgICBidWZbYWRkTWV0aG9kXSh2YWxEaWdpdCk7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0cmFuc2xhdGlvbi5yZWN1cnNpdmUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXNldFBvcyA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNldFBvcyA9IG1hc2tJbmRleDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobWFza0luZGV4ID09PSBsYXN0TWFza0NoYXIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXNrSW5kZXggPSByZXNldFBvcyAtIG9mZnNldDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChsYXN0TWFza0NoYXIgPT09IHJlc2V0UG9zKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFza0luZGV4IC09IG9mZnNldDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBtYXNrSW5kZXggKz0gb2Zmc2V0O1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodmFsRGlnaXQgPT09IGxhc3RVbnRyYW5zbGF0ZWRNYXNrQ2hhcikge1xuICAgICAgICAgICAgICAgICAgICBsYXN0VW50cmFuc2xhdGVkTWFza0NoYXIgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0cmFuc2xhdGlvbi5vcHRpb25hbCkge1xuICAgICAgICAgICAgICAgICAgICBtYXNrSW5kZXggKz0gb2Zmc2V0O1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZUluZGV4IC09IG9mZnNldDtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmludmFsaWRDaGFyYWN0ZXJzLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXg6IHZhbHVlSW5kZXgsXG4gICAgICAgICAgICAgICAgICAgICAgICBkaWdpdDogdmFsRGlnaXQsXG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2xhdGVkOiB0cmFuc2xhdGlvbi5wYXR0ZXJuXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB2YWx1ZUluZGV4ICs9IG9mZnNldDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaWYgKCFza2lwTWFza0NoYXJzKSB7XG4gICAgICAgICAgICAgICAgICAgIGJ1ZlthZGRNZXRob2RdKG1hc2tEaWdpdCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICh2YWxEaWdpdCA9PT0gbWFza0RpZ2l0KSB7XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlSW5kZXggKz0gb2Zmc2V0O1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGxhc3RVbnRyYW5zbGF0ZWRNYXNrQ2hhciA9IG1hc2tEaWdpdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgbWFza0luZGV4ICs9IG9mZnNldDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNoZWNrID0gdGhpcy5pc1RvQ2hlY2soaXNSZXZlcnNlZCwgbWFza0luZGV4LCBtYXNrTGVuLCB2YWx1ZUluZGV4LCB2YWx1ZUxlbmd0aCk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBsYXN0TWFza0NoYXJEaWdpdCA9IG1hc2suY2hhckF0KGxhc3RNYXNrQ2hhcik7XG4gICAgICAgIGlmIChtYXNrTGVuID09PSB2YWx1ZUxlbmd0aCArIDEgJiYgIXRoaXMudHJhbnNsYXRpb25NYXNrW2xhc3RNYXNrQ2hhckRpZ2l0XSkge1xuICAgICAgICAgICAgYnVmLnB1c2gobGFzdE1hc2tDaGFyRGlnaXQpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGJ1Zi5qb2luKCcnKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzVG9DaGVjayhpc1JldmVyc2VkOiBib29sZWFuLCBtYXNrSW5kZXg6IG51bWJlciwgbWFza0xlbjogbnVtYmVyLCB2YWx1ZUluZGV4OiBudW1iZXIsIHZhbHVlTGVuZ3RoOiBudW1iZXIpOiBib29sZWFuIHtcbiAgICAgICAgbGV0IGNoZWNrID0gZmFsc2U7XG4gICAgICAgIGlmIChpc1JldmVyc2VkKSB7XG4gICAgICAgICAgICBjaGVjayA9IG1hc2tJbmRleCA+IC0xICYmIHZhbHVlSW5kZXggPiAtMTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNoZWNrID0gbWFza0luZGV4IDwgbWFza0xlbiAmJiB2YWx1ZUluZGV4IDwgdmFsdWVMZW5ndGg7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGNoZWNrO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0VmFsdWUodmFsdWUpIHtcbiAgICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0VmFsdWUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnZhbHVlO1xuICAgIH1cbn1cbiJdfQ==
|
|
221
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1tYXNrLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9jb3JlL3NyYy9saWIvZm9ybS9jb21wb25lbnRzL3dpZGdldHMvdGV4dC90ZXh0LW1hc2suY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUVILGlJQUFpSTtBQUVqSSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBYSxTQUFTLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQzVILE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFFekUsTUFBTSxDQUFDLE1BQU0sbUNBQW1DLEdBQVE7SUFDcEQsT0FBTyxFQUFFLGlCQUFpQjtJQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGtCQUFrQixDQUFDO0lBQ2pELEtBQUssRUFBRSxJQUFJO0NBQ2QsQ0FBQztBQUVGOztHQUVHO0FBTUgsTUFBTSxPQUFPLGtCQUFrQjtJQW1CM0IsWUFBb0IsRUFBYyxFQUFVLE1BQWlCO1FBQXpDLE9BQUUsR0FBRixFQUFFLENBQVk7UUFBVSxXQUFNLEdBQU4sTUFBTSxDQUFXO1FBWnJELG9CQUFlLEdBQUc7WUFDdEIsR0FBRyxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRTtZQUN0QixHQUFHLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7WUFDdEMsR0FBRyxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFO1lBQ3ZDLENBQUMsRUFBRSxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUU7WUFDN0IsQ0FBQyxFQUFFLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRTtTQUM3QixDQUFDO1FBRU0s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QUFtQyxDQUFDOzs0RkFFdkMsa0JBQWtCO2tCQUw5QixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSw2QkFBNkI7b0JBQ3ZDLFVBQVUsRUFBRSxJQUFJO29CQUNoQixTQUFTLEVBQUUsQ0FBQyxtQ0FBbUMsQ0FBQztpQkFDbkQ7dUdBR3NCLFNBQVM7c0JBQTNCLEtBQUs7dUJBQUMsVUFBVTtnQkF5QmpCLFdBQVc7c0JBRlYsWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUM7O3NCQUNoQyxZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFnQmpDLE1BQU07c0JBREwsWUFBWTt1QkFBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IMKpIDIwMDUtMjAyNSBIeWxhbmQgU29mdHdhcmUsIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG4vKiBlc2xpbnQtZGlzYWJsZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yLCBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdXNlLWJlZm9yZS1kZWZpbmUsIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dC1yZW5hbWUgKi9cblxuaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBmb3J3YXJkUmVmLCBIb3N0TGlzdGVuZXIsIElucHV0LCBPbkNoYW5nZXMsIFJlbmRlcmVyMiwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5leHBvcnQgY29uc3QgQ1VTVE9NX0lOUFVUX0NPTlRST0xfVkFMVUVfQUNDRVNTT1I6IGFueSA9IHtcbiAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBJbnB1dE1hc2tEaXJlY3RpdmUpLFxuICAgIG11bHRpOiB0cnVlXG59O1xuXG4vKipcbiAqIERpcmVjdGl2ZSBzZWxlY3RvcnMgd2l0aG91dCBhZGYtIHByZWZpeCB3aWxsIGJlIGRlcHJlY2F0ZWQgb24gMy4wLjBcbiAqL1xuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbYWRmLXRleHQtbWFza10sIFt0ZXh0TWFza10nLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgcHJvdmlkZXJzOiBbQ1VTVE9NX0lOUFVUX0NPTlRST0xfVkFMVUVfQUNDRVNTT1JdXG59KVxuZXhwb3J0IGNsYXNzIElucHV0TWFza0RpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuICAgIC8qKiBPYmplY3QgZGVmaW5pbmcgbWFzayBhbmQgXCJyZXZlcnNlZFwiIHN0YXR1cy4gKi9cbiAgICBASW5wdXQoJ3RleHRNYXNrJykgaW5wdXRNYXNrOiB7XG4gICAgICAgIG1hc2s6IHN0cmluZztcbiAgICAgICAgaXNSZXZlcnNlZDogYm9vbGVhbjtcbiAgICB9O1xuXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGlvbk1hc2sgPSB7XG4gICAgICAgICcwJzogeyBwYXR0ZXJuOiAvXFxkLyB9LFxuICAgICAgICAnOSc6IHsgcGF0dGVybjogL1xcZC8sIG9wdGlvbmFsOiB0cnVlIH0sXG4gICAgICAgICcjJzogeyBwYXR0ZXJuOiAvXFxkLywgcmVjdXJzaXZlOiB0cnVlIH0sXG4gICAgICAgIEE6IHsgcGF0dGVybjogL1thLXpBLVowLTldLyB9LFxuICAgICAgICBTOiB7IHBhdHRlcm46IC9bYS16QS1aXS8gfVxuICAgIH07XG5cbiAgICBwcml2YXRlIGJ5UGFzc0tleXMgPSBbOSwgMTYsIDE3LCAxOCwgMzYsIDM3LCAzOCwgMzksIDQwLCA5MV07XG4gICAgcHJpdmF0ZSB2YWx1ZTtcbiAgICBwcml2YXRlIGludmFsaWRDaGFyYWN0ZXJzID0gW107XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsOiBFbGVtZW50UmVmLCBwcml2YXRlIHJlbmRlcjogUmVuZGVyZXIyKSB7fVxuXG4gICAgX29uQ2hhbmdlID0gKF86IGFueSkgPT4ge307XG5cbiAgICBfb25Ub3VjaGVkID0gKCkgPT4ge307XG5cbiAgICBASG9zdExpc3RlbmVyKCdpbnB1dCcsIFsnJGV2ZW50J10pXG4gICAgQEhvc3RMaXN0ZW5lcigna2V5dXAnLCBbJyRldmVudCddKVxuICAgIG9uVGV4dElucHV0KGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgICAgIGlmICh0aGlzLmlucHV0TWFzaz8ubWFzaykge1xuICAgICAgICAgICAgdGhpcy5tYXNrVmFsdWUoXG4gICAgICAgICAgICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnZhbHVlLFxuICAgICAgICAgICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5zZWxlY3Rpb25TdGFydCxcbiAgICAgICAgICAgICAgICB0aGlzLmlucHV0TWFzay5tYXNrLFxuICAgICAgICAgICAgICAgIHRoaXMuaW5wdXRNYXNrLmlzUmV2ZXJzZWQsXG4gICAgICAgICAgICAgICAgZXZlbnQua2V5Q29kZVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX29uQ2hhbmdlKHRoaXMuZWwubmF0aXZlRWxlbWVudC52YWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdibHVyJylcbiAgICBvbkJsdXIoKSB7XG4gICAgICAgIHRoaXMuX29uVG91Y2hlZCgpO1xuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICAgICAgaWYgKGNoYW5nZXNbJ2lucHV0TWFzayddPy5jdXJyZW50VmFsdWVbJ21hc2snXSkge1xuICAgICAgICAgICAgdGhpcy5pbnB1dE1hc2sgPSBjaGFuZ2VzWydpbnB1dE1hc2snXS5jdXJyZW50VmFsdWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpIHtcbiAgICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnZhbHVlID0gdmFsdWU7XG4gICAgfVxuXG4gICAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KSB7XG4gICAgICAgIHRoaXMuX29uQ2hhbmdlID0gZm47XG4gICAgfVxuXG4gICAgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLl9vblRvdWNoZWQgPSBmbjtcbiAgICB9XG5cbiAgICBwcml2YXRlIG1hc2tWYWx1ZShhY3R1YWxWYWx1ZTogc3RyaW5nLCBzdGFydENhcmV0OiBudW1iZXIsIG1hc2tUb0FwcGx5OiBzdHJpbmcsIGlzTWFza1JldmVyc2VkOiBib29sZWFuLCBrZXlDb2RlOiBudW1iZXIpIHtcbiAgICAgICAgaWYgKHRoaXMuYnlQYXNzS2V5cy5pbmRleE9mKGtleUNvZGUpID09PSAtMSkge1xuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLmdldE1hc2tlZChmYWxzZSwgYWN0dWFsVmFsdWUsIG1hc2tUb0FwcGx5LCBpc01hc2tSZXZlcnNlZCk7XG4gICAgICAgICAgICBjb25zdCBjYWxjdWxhdGVkQ2FyZXQgPSB0aGlzLmNhbGN1bGF0ZUNhcmV0UG9zaXRpb24oc3RhcnRDYXJldCwgYWN0dWFsVmFsdWUsIGtleUNvZGUpO1xuICAgICAgICAgICAgdGhpcy5yZW5kZXIuc2V0QXR0cmlidXRlKHRoaXMuZWwubmF0aXZlRWxlbWVudCwgJ3ZhbHVlJywgdmFsdWUpO1xuICAgICAgICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnZhbHVlID0gdmFsdWU7XG4gICAgICAgICAgICB0aGlzLnNldFZhbHVlKHZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMuX29uQ2hhbmdlKHZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMuc2V0Q2FyZXRQb3NpdGlvbihjYWxjdWxhdGVkQ2FyZXQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRDYXJldFBvc2l0aW9uKGNhcmV0UG9zaXRpb246IG51bWJlcikge1xuICAgICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQubW92ZVN0YXJ0ID0gY2FyZXRQb3NpdGlvbjtcbiAgICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50Lm1vdmVFbmQgPSBjYXJldFBvc2l0aW9uO1xuICAgIH1cblxuICAgIGNhbGN1bGF0ZUNhcmV0UG9zaXRpb24oY2FyZXRQb3NpdGlvbjogbnVtYmVyLCBuZXdWYWx1ZTogc3RyaW5nLCBrZXlDb2RlOiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgICBjb25zdCBuZXdWYWx1ZUxlbmd0aCA9IG5ld1ZhbHVlLmxlbmd0aDtcbiAgICAgICAgY29uc3Qgb2xkVmFsdWUgPSB0aGlzLmdldFZhbHVlKCkgfHwgJyc7XG4gICAgICAgIGNvbnN0IG9sZFZhbHVlTGVuZ3RoID0gb2xkVmFsdWUubGVuZ3RoO1xuXG4gICAgICAgIGlmIChrZXlDb2RlID09PSA4ICYmIG9sZFZhbHVlICE9PSBuZXdWYWx1ZSkge1xuICAgICAgICAgICAgY2FyZXRQb3NpdGlvbiA9IGNhcmV0UG9zaXRpb24gLSAobmV3VmFsdWUuc2xpY2UoMCwgY2FyZXRQb3NpdGlvbikubGVuZ3RoIC0gb2xkVmFsdWUuc2xpY2UoMCwgY2FyZXRQb3NpdGlvbikubGVuZ3RoKTtcbiAgICAgICAgfSBlbHNlIGlmIChvbGRWYWx1ZSAhPT0gbmV3VmFsdWUpIHtcbiAgICAgICAgICAgIGlmIChjYXJldFBvc2l0aW9uID49IG9sZFZhbHVlTGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgY2FyZXRQb3NpdGlvbiA9IG5ld1ZhbHVlTGVuZ3RoO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjYXJldFBvc2l0aW9uID0gY2FyZXRQb3NpdGlvbiArIChuZXdWYWx1ZS5zbGljZSgwLCBjYXJldFBvc2l0aW9uKS5sZW5ndGggLSBvbGRWYWx1ZS5zbGljZSgwLCBjYXJldFBvc2l0aW9uKS5sZW5ndGgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjYXJldFBvc2l0aW9uO1xuICAgIH1cblxuICAgIGdldE1hc2tlZChza2lwTWFza0NoYXJzOiBib29sZWFuLCB2YWw6IHN0cmluZywgbWFzazogc3RyaW5nLCBpc1JldmVyc2VkID0gZmFsc2UpIHtcbiAgICAgICAgY29uc3QgYnVmID0gW107XG4gICAgICAgIGNvbnN0IHZhbHVlID0gdmFsO1xuICAgICAgICBsZXQgbWFza0luZGV4ID0gMDtcbiAgICAgICAgY29uc3QgbWFza0xlbiA9IG1hc2subGVuZ3RoO1xuICAgICAgICBsZXQgdmFsdWVJbmRleCA9IDA7XG4gICAgICAgIGNvbnN0IHZhbHVlTGVuZ3RoID0gdmFsdWUubGVuZ3RoO1xuICAgICAgICBsZXQgb2Zmc2V0ID0gMTtcbiAgICAgICAgbGV0IGFkZE1ldGhvZCA9ICdwdXNoJztcbiAgICAgICAgbGV0IHJlc2V0UG9zID0gLTE7XG4gICAgICAgIGxldCBsYXN0TWFza0NoYXI6IG51bWJlcjtcbiAgICAgICAgbGV0IGxhc3RVbnRyYW5zbGF0ZWRNYXNrQ2hhcjogc3RyaW5nO1xuICAgICAgICBsZXQgY2hlY2s6IGJvb2xlYW47XG5cbiAgICAgICAgaWYgKGlzUmV2ZXJzZWQpIHtcbiAgICAgICAgICAgIGFkZE1ldGhvZCA9ICd1bnNoaWZ0JztcbiAgICAgICAgICAgIG9mZnNldCA9IC0xO1xuICAgICAgICAgICAgbGFzdE1hc2tDaGFyID0gMDtcbiAgICAgICAgICAgIG1hc2tJbmRleCA9IG1hc2tMZW4gLSAxO1xuICAgICAgICAgICAgdmFsdWVJbmRleCA9IHZhbHVlTGVuZ3RoIC0gMTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGxhc3RNYXNrQ2hhciA9IG1hc2tMZW4gLSAxO1xuICAgICAgICB9XG4gICAgICAgIGNoZWNrID0gdGhpcy5pc1RvQ2hlY2soaXNSZXZlcnNlZCwgbWFza0luZGV4LCBtYXNrTGVuLCB2YWx1ZUluZGV4LCB2YWx1ZUxlbmd0aCk7XG4gICAgICAgIHdoaWxlIChjaGVjaykge1xuICAgICAgICAgICAgY29uc3QgbWFza0RpZ2l0ID0gbWFzay5jaGFyQXQobWFza0luZGV4KTtcbiAgICAgICAgICAgIGNvbnN0IHZhbERpZ2l0ID0gdmFsdWUuY2hhckF0KHZhbHVlSW5kZXgpO1xuICAgICAgICAgICAgY29uc3QgdHJhbnNsYXRpb24gPSB0aGlzLnRyYW5zbGF0aW9uTWFza1ttYXNrRGlnaXRdO1xuXG4gICAgICAgICAgICBpZiAodHJhbnNsYXRpb24pIHtcbiAgICAgICAgICAgICAgICBpZiAodmFsRGlnaXQubWF0Y2godHJhbnNsYXRpb24ucGF0dGVybikpIHtcbiAgICAgICAgICAgICAgICAgICAgYnVmW2FkZE1ldGhvZF0odmFsRGlnaXQpO1xuICAgICAgICAgICAgICAgICAgICBpZiAodHJhbnNsYXRpb24ucmVjdXJzaXZlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzZXRQb3MgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzZXRQb3MgPSBtYXNrSW5kZXg7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG1hc2tJbmRleCA9PT0gbGFzdE1hc2tDaGFyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFza0luZGV4ID0gcmVzZXRQb3MgLSBvZmZzZXQ7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAobGFzdE1hc2tDaGFyID09PSByZXNldFBvcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hc2tJbmRleCAtPSBvZmZzZXQ7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgbWFza0luZGV4ICs9IG9mZnNldDtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHZhbERpZ2l0ID09PSBsYXN0VW50cmFuc2xhdGVkTWFza0NoYXIpIHtcbiAgICAgICAgICAgICAgICAgICAgbGFzdFVudHJhbnNsYXRlZE1hc2tDaGFyID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodHJhbnNsYXRpb24ub3B0aW9uYWwpIHtcbiAgICAgICAgICAgICAgICAgICAgbWFza0luZGV4ICs9IG9mZnNldDtcbiAgICAgICAgICAgICAgICAgICAgdmFsdWVJbmRleCAtPSBvZmZzZXQ7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbnZhbGlkQ2hhcmFjdGVycy5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4OiB2YWx1ZUluZGV4LFxuICAgICAgICAgICAgICAgICAgICAgICAgZGlnaXQ6IHZhbERpZ2l0LFxuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNsYXRlZDogdHJhbnNsYXRpb24ucGF0dGVyblxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdmFsdWVJbmRleCArPSBvZmZzZXQ7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGlmICghc2tpcE1hc2tDaGFycykge1xuICAgICAgICAgICAgICAgICAgICBidWZbYWRkTWV0aG9kXShtYXNrRGlnaXQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAodmFsRGlnaXQgPT09IG1hc2tEaWdpdCkge1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZUluZGV4ICs9IG9mZnNldDtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBsYXN0VW50cmFuc2xhdGVkTWFza0NoYXIgPSBtYXNrRGlnaXQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIG1hc2tJbmRleCArPSBvZmZzZXQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjaGVjayA9IHRoaXMuaXNUb0NoZWNrKGlzUmV2ZXJzZWQsIG1hc2tJbmRleCwgbWFza0xlbiwgdmFsdWVJbmRleCwgdmFsdWVMZW5ndGgpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgbGFzdE1hc2tDaGFyRGlnaXQgPSBtYXNrLmNoYXJBdChsYXN0TWFza0NoYXIpO1xuICAgICAgICBpZiAobWFza0xlbiA9PT0gdmFsdWVMZW5ndGggKyAxICYmICF0aGlzLnRyYW5zbGF0aW9uTWFza1tsYXN0TWFza0NoYXJEaWdpdF0pIHtcbiAgICAgICAgICAgIGJ1Zi5wdXNoKGxhc3RNYXNrQ2hhckRpZ2l0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBidWYuam9pbignJyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc1RvQ2hlY2soaXNSZXZlcnNlZDogYm9vbGVhbiwgbWFza0luZGV4OiBudW1iZXIsIG1hc2tMZW46IG51bWJlciwgdmFsdWVJbmRleDogbnVtYmVyLCB2YWx1ZUxlbmd0aDogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgICAgIGxldCBjaGVjayA9IGZhbHNlO1xuICAgICAgICBpZiAoaXNSZXZlcnNlZCkge1xuICAgICAgICAgICAgY2hlY2sgPSBtYXNrSW5kZXggPiAtMSAmJiB2YWx1ZUluZGV4ID4gLTE7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjaGVjayA9IG1hc2tJbmRleCA8IG1hc2tMZW4gJiYgdmFsdWVJbmRleCA8IHZhbHVlTGVuZ3RoO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjaGVjaztcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldFZhbHVlKHZhbHVlKSB7XG4gICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFZhbHVlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy52YWx1ZTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
* you may not use this file except in compliance with the License.
|
|
7
|
+
* You may obtain a copy of the License at
|
|
8
|
+
*
|
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
*
|
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
* See the License for the specific language governing permissions and
|
|
15
|
+
* limitations under the License.
|
|
16
|
+
*/
|
|
17
|
+
export * from './public-api';
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWIvY29yZS9zcmMvbGliL2xhbmRpbmctcGFnZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjUgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
* you may not use this file except in compliance with the License.
|
|
7
|
+
* You may obtain a copy of the License at
|
|
8
|
+
*
|
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
*
|
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
* See the License for the specific language governing permissions and
|
|
15
|
+
* limitations under the License.
|
|
16
|
+
*/
|
|
17
|
+
import { InjectionToken } from '@angular/core';
|
|
18
|
+
export const LANDING_PAGE_TOKEN = new InjectionToken('LANDING_PAGE_TOKEN');
|
|
19
|
+
/**
|
|
20
|
+
*
|
|
21
|
+
* @param componentClass The component class to be registered as the landing page.
|
|
22
|
+
* @returns A provider that registers the landing page component class.
|
|
23
|
+
*/
|
|
24
|
+
export function provideLandingPage(componentClass) {
|
|
25
|
+
return {
|
|
26
|
+
provide: LANDING_PAGE_TOKEN,
|
|
27
|
+
useValue: componentClass
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWIvY29yZS9zcmMvbGliL2xhbmRpbmctcGFnZS9wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFFSCxPQUFPLEVBQUUsY0FBYyxFQUFrQixNQUFNLGVBQWUsQ0FBQztBQUUvRCxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLGNBQWMsQ0FBWSxvQkFBb0IsQ0FBQyxDQUFDO0FBRXRGOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsa0JBQWtCLENBQUMsY0FBeUI7SUFDeEQsT0FBTztRQUNILE9BQU8sRUFBRSxrQkFBa0I7UUFDM0IsUUFBUSxFQUFFLGNBQWM7S0FDM0IsQ0FBQztBQUNOLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI1IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IEluamVjdGlvblRva2VuLCBQcm92aWRlciwgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgY29uc3QgTEFORElOR19QQUdFX1RPS0VOID0gbmV3IEluamVjdGlvblRva2VuPFR5cGU8YW55Pj4oJ0xBTkRJTkdfUEFHRV9UT0tFTicpO1xuXG4vKipcbiAqXG4gKiBAcGFyYW0gY29tcG9uZW50Q2xhc3MgVGhlIGNvbXBvbmVudCBjbGFzcyB0byBiZSByZWdpc3RlcmVkIGFzIHRoZSBsYW5kaW5nIHBhZ2UuXG4gKiBAcmV0dXJucyBBIHByb3ZpZGVyIHRoYXQgcmVnaXN0ZXJzIHRoZSBsYW5kaW5nIHBhZ2UgY29tcG9uZW50IGNsYXNzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZUxhbmRpbmdQYWdlKGNvbXBvbmVudENsYXNzOiBUeXBlPGFueT4pOiBQcm92aWRlciB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgcHJvdmlkZTogTEFORElOR19QQUdFX1RPS0VOLFxuICAgICAgICB1c2VWYWx1ZTogY29tcG9uZW50Q2xhc3NcbiAgICB9O1xufVxuIl19
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
* you may not use this file except in compliance with the License.
|
|
7
|
+
* You may obtain a copy of the License at
|
|
8
|
+
*
|
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
*
|
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
* See the License for the specific language governing permissions and
|
|
15
|
+
* limitations under the License.
|
|
16
|
+
*/
|
|
17
|
+
export * from './provider';
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYi9jb3JlL3NyYy9saWIvbGFuZGluZy1wYWdlL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBRUgsY0FBYyxZQUFZLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI1IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHJvdmlkZXInO1xuIl19
|
|
@@ -61,6 +61,9 @@ export class UnitTestingUtils {
|
|
|
61
61
|
getByDirective(directive) {
|
|
62
62
|
return this.debugElement.query(By.directive(directive));
|
|
63
63
|
}
|
|
64
|
+
getAllByDirective(directive) {
|
|
65
|
+
return this.debugElement.queryAll(By.directive(directive));
|
|
66
|
+
}
|
|
64
67
|
/** Perform actions */
|
|
65
68
|
clickByCSS(selector) {
|
|
66
69
|
const element = this.getByCSS(selector);
|
|
@@ -361,4 +364,4 @@ export class UnitTestingUtils {
|
|
|
361
364
|
return progress.host();
|
|
362
365
|
}
|
|
363
366
|
}
|
|
364
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5pdC10ZXN0aW5nLXV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGliL2NvcmUvc3JjL2xpYi90ZXN0aW5nL3VuaXQtdGVzdGluZy11dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFJSCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFFcEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGNBQWMsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzVHLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNoRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN4RSxPQUFPLEVBQUUsZUFBZSxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDNUYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBRWhGLE9BQU8sRUFBRSxrQkFBa0IsRUFBaUIsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNuRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN6RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUUvRSxNQUFNLE9BQU8sZ0JBQWdCO0lBQ3pCLFlBQW9CLFlBQTJCLEVBQVUsTUFBc0I7UUFBM0QsaUJBQVksR0FBWixZQUFZLENBQWU7UUFBVSxXQUFNLEdBQU4sTUFBTSxDQUFn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O1FBQzlELE9BQU8sSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQ2pDLENBQUM7SUFFRCxLQUFLLENBQUMsa0NBQWtDO1FBQ3BDLE1BQU0sR0FBRyxHQUFHLE1BQU0sSUFBSSxDQUFDLDZCQUE2QixFQUFFLENBQUM7UUFDdkQsT0FBTyxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELGlDQUFpQztJQUVqQyxLQUFLLENBQUMsaUJBQWlCO1FBQ25CLE1BQU0sT0FBTyxHQUFHLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUNoRSxPQUFPLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsa0NBQWtDO0lBRWxDLEtBQUssQ0FBQyx3QkFBd0I7UUFDMUIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRCxxQ0FBcUM7SUFFckMsS0FBSyxDQUFDLHFCQUFxQjtRQUN2QixNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFDckUsT0FBTyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDM0IsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IMKpIDIwMDUtMjAyNSBIeWxhbmQgU29mdHdhcmUsIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQgeyBIYXJuZXNzTG9hZGVyLCBUZXN0RWxlbWVudCwgVGVzdEtleSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay90ZXN0aW5nJztcbmltcG9ydCB7IERlYnVnRWxlbWVudCwgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQnkgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7IE1hdFNlbGVjdEhhcm5lc3MgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QvdGVzdGluZyc7XG5pbXBvcnQgeyBNYXRPcHRpb25IYXJuZXNzIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZS90ZXN0aW5nJztcbmltcG9ydCB7IE1hdENoaXBHcmlkSGFybmVzcywgTWF0Q2hpcEhhcm5lc3MsIE1hdENoaXBMaXN0Ym94SGFybmVzcyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NoaXBzL3Rlc3RpbmcnO1xuaW1wb3J0IHsgTWF0QnV0dG9uSGFybmVzcyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbi90ZXN0aW5nJztcbmltcG9ydCB7IE1hdEljb25IYXJuZXNzIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbi90ZXN0aW5nJztcbmltcG9ydCB7IE1hdENoZWNrYm94SGFybmVzcyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NoZWNrYm94L3Rlc3RpbmcnO1xuaW1wb3J0IHsgTWF0RXJyb3JIYXJuZXNzLCBNYXRGb3JtRmllbGRIYXJuZXNzIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZC90ZXN0aW5nJztcbmltcG9ydCB7IE1hdElucHV0SGFybmVzcyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0L3Rlc3RpbmcnO1xuaW1wb3J0IHsgTWF0QXV0b2NvbXBsZXRlSGFybmVzcyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2F1dG9jb21wbGV0ZS90ZXN0aW5nJztcbmltcG9ydCB7IENvbXBvbmVudEZpeHR1cmUgfSBmcm9tICdAYW5ndWxhci9jb3JlL3Rlc3RpbmcnO1xuaW1wb3J0IHsgTWF0VGFiR3JvdXBIYXJuZXNzLCBNYXRUYWJIYXJuZXNzIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdGFicy90ZXN0aW5nJztcbmltcG9ydCB7IE1hdFRvb2xiYXJIYXJuZXNzIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbGJhci90ZXN0aW5nJztcbmltcG9ydCB7IE1hdFNuYWNrQmFySGFybmVzcyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NuYWNrLWJhci90ZXN0aW5nJztcbmltcG9ydCB7IE1hdFByb2dyZXNzQmFySGFybmVzcyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Byb2dyZXNzLWJhci90ZXN0aW5nJztcblxuZXhwb3J0IGNsYXNzIFVuaXRUZXN0aW5nVXRpbHMge1xuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZGVidWdFbGVtZW50PzogRGVidWdFbGVtZW50LCBwcml2YXRlIGxvYWRlcj86IEhhcm5lc3NMb2FkZXIpIHtcbiAgICAgICAgdGhpcy5kZWJ1Z0VsZW1lbnQgPSBkZWJ1Z0VsZW1lbnQ7XG4gICAgICAgIHRoaXMubG9hZGVyID0gbG9hZGVyO1xuICAgIH1cblxuICAgIHNldERlYnVnRWxlbWVudChkZWJ1Z0VsZW1lbnQ6IERlYnVnRWxlbWVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRlYnVnRWxlbWVudCA9IGRlYnVnRWxlbWVudDtcbiAgICB9XG5cbiAgICBzZXRMb2FkZXIobG9hZGVyOiBIYXJuZXNzTG9hZGVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMubG9hZGVyID0gbG9hZGVyO1xuICAgIH1cblxuICAgIGdldEJ5Q1NTKHNlbGVjdG9yOiBzdHJpbmcpOiBEZWJ1Z0VsZW1lbnQge1xuICAgICAgICByZXR1cm4gdGhpcy5kZWJ1Z0VsZW1lbnQucXVlcnkoQnkuY3NzKHNlbGVjdG9yKSk7XG4gICAgfVxuXG4gICAgZ2V0QWxsQnlDU1Moc2VsZWN0b3I6IHN0cmluZyk6IERlYnVnRWxlbWVudFtdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGVidWdFbGVtZW50LnF1ZXJ5QWxsKEJ5LmNzcyhzZWxlY3RvcikpO1xuICAgIH1cblxuICAgIGdldElubmVyVGV4dEJ5Q1NTKHNlbGVjdG9yOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRCeUNTUyhzZWxlY3RvcikubmF0aXZlRWxlbWVudC5pbm5lclRleHQ7XG4gICAgfVxuXG4gICAgZ2V0QnlEYXRhQXV0b21hdGlvbklkKGRhdGFBdXRvbWF0aW9uSWQ6IHN0cmluZyk6IERlYnVnRWxlbWVudCB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldEJ5Q1NTKGBbZGF0YS1hdXRvbWF0aW9uLWlkPVwiJHtkYXRhQXV0b21hdGlvbklkfVwiXWApO1xuICAgIH1cblxuICAgIGdldEJ5RGF0YUF1dG9tYXRpb25DbGFzcyhkYXRhQXV0b21hdGlvbkNsYXNzOiBzdHJpbmcpOiBEZWJ1Z0VsZW1lbnQge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRCeUNTUyhgW2RhdGEtYXV0b21hdGlvbi1jbGFzcz1cIiR7ZGF0YUF1dG9tYXRpb25DbGFzc31cIl1gKTtcbiAgICB9XG5cbiAgICBnZXRJbm5lclRleHRCeURhdGFBdXRvbWF0aW9uSWQoZGF0YUF1dG9tYXRpb25JZDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0QnlEYXRhQXV0b21hdGlvbklkKGRhdGFBdXRvbWF0aW9uSWQpLm5hdGl2ZUVsZW1lbnQuaW5uZXJUZXh0O1xuICAgIH1cblxuICAgIGdldEJ5RGlyZWN0aXZlKGRpcmVjdGl2ZTogVHlwZTxhbnk+KTogRGVidWdFbGVtZW50IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGVidWdFbGVtZW50LnF1ZXJ5KEJ5LmRpcmVjdGl2ZShkaXJlY3RpdmUpKTtcbiAgICB9XG5cbiAgICAvKiogUGVyZm9ybSBhY3Rpb25zICovXG5cbiAgICBjbGlja0J5Q1NTKHNlbGVjdG9yOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZWxlbWVudCA9IHRoaXMuZ2V0QnlDU1Moc2VsZWN0b3IpO1xuICAgICAgICBlbGVtZW50LnRyaWdnZXJFdmVudEhhbmRsZXIoJ2NsaWNrJywgbmV3IE1vdXNlRXZlbnQoJ2NsaWNrJykpO1xuICAgIH1cblxuICAgIGNsaWNrQnlEYXRhQXV0b21hdGlvbklkKGRhdGFBdXRvbWF0aW9uSWQ6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLmdldEJ5RGF0YUF1dG9tYXRpb25JZChkYXRhQXV0b21hdGlvbklkKS5uYXRpdmVFbGVtZW50LmNsaWNrKCk7XG4gICAgfVxuXG4gICAgZG91YmxlQ2xpY2tCeURhdGFBdXRvbWF0aW9uSWQoZGF0YUF1dG9tYXRpb25JZDogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLmdldEJ5RGF0YUF1dG9tYXRpb25JZChkYXRhQXV0b21hdGlvbklkKTtcbiAgICAgICAgZWxlbWVudC50cmlnZ2VyRXZlbnRIYW5kbGVyKCdkYmxjbGljaycsIG5ldyBNb3VzZUV2ZW50KCdkYmxjbGljaycpKTtcbiAgICB9XG5cbiAgICBibHVyQnlDU1Moc2VsZWN0b3I6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5nZXRCeUNTUyhzZWxlY3Rvcik7XG4gICAgICAgIGVsZW1lbnQudHJpZ2dlckV2ZW50SGFuZGxlcignYmx1cicsIG5ldyBGb2N1c0V2ZW50KCdibHVyJykpO1xuICAgIH1cblxuICAgIGhvdmVyT3ZlckJ5Q1NTKHNlbGVjdG9yOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZWxlbWVudCA9IHRoaXMuZ2V0QnlDU1Moc2VsZWN0b3IpO1xuICAgICAgICBlbGVtZW50LnRyaWdnZXJFdmVudEhhbmRsZXIoJ21vdXNlZW50ZXInLCBuZXcgTW91c2VFdmVudCgnbW91c2VlbnRlcicpKTtcbiAgICB9XG5cbiAgICBob3Zlck92ZXJCeURhdGFBdXRvbWF0aW9uSWQoZGF0YUF1dG9tYXRpb25JZDogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLmdldEJ5RGF0YUF1dG9tYXRpb25JZChkYXRhQXV0b21hdGlvbklkKTtcbiAgICAgICAgZWxlbWVudC50cmlnZ2VyRXZlbnRIYW5kbGVyKCdtb3VzZWVudGVyJywgbmV3IE1vdXNlRXZlbnQoJ21vdXNlZW50ZXInKSk7XG4gICAgfVxuXG4gICAgbW91c2VMZWF2ZUJ5Q1NTKHNlbGVjdG9yOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZWxlbWVudCA9IHRoaXMuZ2V0QnlDU1Moc2VsZWN0b3IpO1xuICAgICAgICBlbGVtZW50LnRyaWdnZXJFdmVudEhhbmRsZXIoJ21vdXNlbGVhdmUnLCBuZXcgTW91c2VFdmVudCgnbW91c2VsZWF2ZScpKTtcbiAgICB9XG5cbiAgICBtb3VzZUxlYXZlQnlEYXRhQXV0b21hdGlvbklkKGRhdGFBdXRvbWF0aW9uSWQ6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5nZXRCeURhdGFBdXRvbWF0aW9uSWQoZGF0YUF1dG9tYXRpb25JZCk7XG4gICAgICAgIGVsZW1lbnQudHJpZ2dlckV2ZW50SGFuZGxlcignbW91c2VsZWF2ZScsIG5ldyBNb3VzZUV2ZW50KCdtb3VzZWxlYXZlJykpO1xuICAgIH1cblxuICAgIGtleUJvYXJkRXZlbnRCeUNTUyhzZWxlY3Rvcjogc3RyaW5nLCBldmVudDogJ2tleXVwJyB8ICdrZXlkb3duJywgY29kZTogc3RyaW5nLCBrZXk6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5nZXRCeUNTUyhzZWxlY3Rvcik7XG4gICAgICAgIGVsZW1lbnQubmF0aXZlRWxlbWVudC5kaXNwYXRjaEV2ZW50KG5ldyBLZXlib2FyZEV2ZW50KGV2ZW50LCB7IGNvZGUsIGtleSB9KSk7XG4gICAgfVxuXG4gICAgZGlzcGF0Y2hDdXN0b21FdmVudEJ5Q1NTKHNlbGVjdG9yOiBzdHJpbmcsIGV2ZW50TmFtZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLmdldEJ5Q1NTKHNlbGVjdG9yKTtcbiAgICAgICAgZWxlbWVudC5uYXRpdmVFbGVtZW50LmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KGV2ZW50TmFtZSkpO1xuICAgIH1cblxuICAgIC8qKiBJbnB1dCByZWxhdGVkIG1ldGhvZHMgKi9cblxuICAgIGdldElucHV0QnlDU1Moc2VsZWN0b3I6IHN0cmluZyk6IEhUTUxJbnB1dEVsZW1lbnQge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRCeUNTUyhzZWxlY3Rvcik/Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgfVxuXG4gICAgZ2V0SW5wdXRCeURhdGFBdXRvbWF0aW9uSWQoZGF0YUF1dG9tYXRpb25JZDogc3RyaW5nKTogSFRNTElucHV0RWxlbWVudCB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldEJ5RGF0YUF1dG9tYXRpb25JZChkYXRhQXV0b21hdGlvbklkKT8ubmF0aXZlRWxlbWVudDtcbiAgICB9XG5cbiAgICBmaWxsSW5wdXRCeUNTUyhzZWxlY3Rvcjogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGlucHV0ID0gdGhpcy5nZXRJbnB1dEJ5Q1NTKHNlbGVjdG9yKTtcbiAgICAgICAgaW5wdXQudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgaW5wdXQuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ2lucHV0JykpO1xuICAgIH1cblxuICAgIGZpbGxJbnB1dEJ5RGF0YUF1dG9tYXRpb25JZChkYXRhQXV0b21hdGlvbklkOiBzdHJpbmcsIHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgaW5wdXQgPSB0aGlzLmdldElucHV0QnlEYXRhQXV0b21hdGlvbklkKGRhdGFBdXRvbWF0aW9uSWQpO1xuICAgICAgICBpbnB1dC52YWx1ZSA9IHZhbHVlO1xuICAgICAgICBpbnB1dC5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnaW5wdXQnKSk7XG4gICAgfVxuXG4gICAgLyoqIE1hdEJ1dHRvbiByZWxhdGVkIG1ldGhvZHMgKi9cblxuICAgIGFzeW5jIGdldE1hdEJ1dHRvbigpOiBQcm9taXNlPE1hdEJ1dHRvbkhhcm5lc3M+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMubG9hZGVyLmdldEhhcm5lc3MoTWF0QnV0dG9uSGFybmVzcyk7XG4gICAgfVxuXG4gICAgYXN5bmMgZ2V0TWF0QnV0dG9uQnlDU1Moc2VsZWN0b3I6IHN0cmluZyk6IFByb21pc2U8TWF0QnV0dG9uSGFybmVzcz4ge1xuICAgICAgICByZXR1cm4gdGhpcy5sb2FkZXIuZ2V0SGFybmVzcyhNYXRCdXR0b25IYXJuZXNzLndpdGgoeyBzZWxlY3RvciB9KSk7XG4gICAgfVxuXG4gICAgYXN5bmMgZ2V0TWF0QnV0dG9uQnlEYXRhQXV0b21hdGlvbklkKGRhdGFBdXRvbWF0aW9uSWQ6IHN0cmluZyk6IFByb21pc2U8TWF0QnV0dG9uSGFybmVzcz4ge1xuICAgICAgICByZXR1cm4gdGhpcy5sb2FkZXIuZ2V0SGFybmVzcyhNYXRCdXR0b25IYXJuZXNzLndpdGgoeyBzZWxlY3RvcjogYFtkYXRhLWF1dG9tYXRpb24taWQ9XCIke2RhdGFBdXRvbWF0aW9uSWR9XCJdYCB9KSk7XG4gICAgfVxuXG4gICAgYXN5bmMgY2hlY2tJZk1hdEJ1dHRvbkV4aXN0cygpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMubG9hZGVyLmhhc0hhcm5lc3MoTWF0QnV0dG9uSGFybmVzcyk7XG4gICAgfVxuXG4gICAgYXN5bmMgY2hlY2tJZk1hdEJ1dHRvbkV4aXN0c1dpdGhEYXRhQXV0b21hdGlvbklkKGRhdGFBdXRvbWF0aW9uSWQ6IHN0cmluZyk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5sb2FkZXIuaGFzSGFybmVzcyhNYXRCdXR0b25IYXJuZXNzLndpdGgoeyBzZWxlY3RvcjogYFtkYXRhLWF1dG9tYXRpb24taWQ9XCIke2RhdGFBdXRvbWF0aW9uSWR9XCJdYCB9KSk7XG4gICAgfVxuXG4gICAgYXN5bmMgY2xpY2tNYXRCdXR0b24oKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGNvbnN0IGJ1dHRvbiA9IGF3YWl0IHRoaXMuZ2V0TWF0QnV0dG9uKCk7XG4gICAgICAgIGF3YWl0IGJ1dHRvbi5jbGljaygpO1xuICAgIH1cblxuICAgIGFzeW5jIGNsaWNrTWF0QnV0dG9uQnlDU1Moc2VsZWN0b3I6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBjb25zdCBidXR0b24gPSBhd2FpdCB0aGlzLmdldE1hdEJ1dHRvbkJ5Q1NTKHNlbGVjdG9yKTtcbiAgICAgICAgYXdhaXQgYnV0dG9uLmNsaWNrKCk7XG4gICAgfVxuXG4gICAgYXN5bmMgY2xpY2tNYXRCdXR0b25CeURhdGFBdXRvbWF0aW9uSWQoZGF0YUF1dG9tYXRpb25JZDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGNvbnN0IGJ1dHRvbiA9IGF3YWl0IHRoaXMuZ2V0TWF0QnV0dG9uQnlEYXRhQXV0b21hdGlvbklkKGRhdGFBdXRvbWF0aW9uSWQpO1xuICAgICAgICBhd2FpdCBidXR0b24uY2xpY2soKTtcbiAgICB9XG5cbiAgICBhc3luYyBzZW5kS2V5c1RvTWF0QnV0dG9uKGtleXM6IChzdHJpbmcgfCBUZXN0S2V5KVtdKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGNvbnN0IGJ1dHRvbiA9IGF3YWl0IHRoaXMuZ2V0TWF0QnV0dG9uKCk7XG4gICAgICAgIGNvbnN0IGhvc3QgPSBhd2FpdCBidXR0b24uaG9zdCgpO1xuICAgICAgICBhd2FpdCBob3N0LnNlbmRLZXlzKC4uLmtleXMpO1xuICAgIH1cblxuICAgIC8qKiBNYXRDaGVja2JveCByZWxhdGVkIG1ldGhvZHMgKi9cblxuICAgIGFzeW5jIGdldE1hdENoZWNrYm94KCk6IFByb21pc2U8TWF0Q2hlY2tib3hIYXJuZXNzPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmxvYWRlci5nZXRIYXJuZXNzKE1hdENoZWNrYm94SGFybmVzcyk7XG4gICAgfVxuXG4gICAgYXN5bmMgZ2V0TWF0Q2hlY2tib3hCeURhdGFBdXRvbWF0aW9uSWQoZGF0YUF1dG9tYXRpb25JZDogc3RyaW5nKTogUHJvbWlzZTxNYXRDaGVja2JveEhhcm5lc3M+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMubG9hZGVyLmdldEhhcm5lc3MoTWF0Q2hlY2tib3hIYXJuZXNzLndpdGgoeyBzZWxlY3RvcjogYFtkYXRhLWF1dG9tYXRpb24taWQ9XCIke2RhdGFBdXRvbWF0aW9uSWR9XCJdYCB9KSk7XG4gICAgfVxuXG4gICAgYXN5bmMgZ2V0TWF0Q2hlY2tib3hIb3N0KCk6IFByb21pc2U8VGVzdEVsZW1lbnQ+IHtcbiAgICAgICAgY29uc3QgY2hlY2tib3ggPSBhd2FpdCB0aGlzLmdldE1hdENoZWNrYm94KCk7XG4gICAgICAgIHJldHVybiBjaGVja2JveC5ob3N0KCk7XG4gICAgfVxuXG4gICAgYXN5bmMgZ2V0QWxsTWF0Q2hlY2tib3hlcygpOiBQcm9taXNlPE1hdENoZWNrYm94SGFybmVzc1tdPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmxvYWRlci5nZXRBbGxIYXJuZXNzZXMoTWF0Q2hlY2tib3hIYXJuZXNzKTtcbiAgICB9XG5cbiAgICBhc3luYyBjaGVja0lmTWF0Q2hlY2tib3hJc0NoZWNrZWQoKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgICAgIGNvbnN0IGNoZWNrYm94ID0gYXdhaXQgdGhpcy5nZXRNYXRDaGVja2JveCgpO1xuICAgICAgICByZXR1cm4gY2hlY2tib3guaXNDaGVja2VkKCk7XG4gICAgfVxuXG4gICAgYXN5bmMgY2hlY2tJZk1hdENoZWNrYm94ZXNIYXZlQ2xhc3MoY2xhc3NOYW1lOiBzdHJpbmcpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICAgICAgY29uc3QgY2hlY2tib3hlcyA9IGF3YWl0IHRoaXMuZ2V0QWxsTWF0Q2hlY2tib3hlcygpO1xuICAgICAgICByZXR1cm4gY2hlY2tib3hlcy5ldmVyeShhc3luYyAoY2hlY2tib3gpID0+IChhd2FpdCBjaGVja2JveC5ob3N0KCkpLmhhc0NsYXNzKGNsYXNzTmFtZSkpO1xuICAgIH1cblxuICAgIGFzeW5jIGhvdmVyT3Zlck1hdENoZWNrYm94KCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBjb25zdCBob3N0ID0gYXdhaXQgdGhpcy5nZXRNYXRDaGVja2JveEhvc3QoKTtcbiAgICAgICAgYXdhaXQgaG9zdC5ob3ZlcigpO1xuICAgIH1cblxuICAgIC8qKiBNYXRJY29uIHJlbGF0ZWQgbWV0aG9kcyAqL1xuXG4gICAgYXN5bmMgZ2V0TWF0SWNvbk9yTnVsbCgpOiBQcm9taXNlPE1hdEljb25IYXJuZXNzPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmxvYWRlci5nZXRIYXJuZXNzT3JOdWxsKE1hdEljb25IYXJuZXNzKTtcbiAgICB9XG5cbiAgICBhc3luYyBnZXRNYXRJY29uV2l0aEFuY2VzdG9yQnlEYXRhQXV0b21hdGlvbklkKGRhdGFBdXRvbWF0aW9uSWQ6IHN0cmluZyk6IFByb21pc2U8TWF0SWNvbkhhcm5lc3M+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMubG9hZGVyLmdldEhhcm5lc3MoTWF0SWNvbkhhcm5lc3Mud2l0aCh7IGFuY2VzdG9yOiBgW2RhdGEtYXV0b21hdGlvbi1pZD1cIiR7ZGF0YUF1dG9tYXRpb25JZH1cIl1gIH0pKTtcbiAgICB9XG5cbiAgICBhc3luYyBnZXRNYXRJY29uV2l0aEFuY2VzdG9yQnlDU1Moc2VsZWN0b3I6IHN0cmluZyk6IFByb21pc2U8TWF0SWNvbkhhcm5lc3M+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMubG9hZGVyLmdldEhhcm5lc3MoTWF0SWNvbkhhcm5lc3Mud2l0aCh7IGFuY2VzdG9yOiBzZWxlY3RvciB9KSk7XG4gICAgfVxuXG4gICAgYXN5bmMgZ2V0TWF0SWNvbldpdGhBbmNlc3RvckJ5Q1NTQW5kTmFtZShzZWxlY3Rvcjogc3RyaW5nLCBuYW1lOiBzdHJpbmcpOiBQcm9taXNlPE1hdEljb25IYXJuZXNzPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmxvYWRlci5nZXRIYXJuZXNzKE1hdEljb25IYXJuZXNzLndpdGgoeyBhbmNlc3Rvcjogc2VsZWN0b3IsIG5hbWUgfSkpO1xuICAgIH1cblxuICAgIGFzeW5jIGNoZWNrSWZNYXRJY29uRXhpc3RzV2l0aEFuY2VzdG9yQnlEYXRhQXV0b21hdGlvbklkKGRhdGFBdXRvbWF0aW9uSWQ6IHN0cmluZyk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5sb2FkZXIuaGFzSGFybmVzcyhNYXRJY29uSGFybmVzcy53aXRoKHsgYW5jZXN0b3I6IGBbZGF0YS1hdXRvbWF0aW9uLWlkPVwiJHtkYXRhQXV0b21hdGlvbklkfVwiXWAgfSkpO1xuICAgIH1cblxuICAgIGFzeW5jIGNoZWNrSWZNYXRJY29uRXhpc3RzV2l0aEFuY2VzdG9yQnlDU1NBbmROYW1lKHNlbGVjdG9yOiBzdHJpbmcsIG5hbWU6IHN0cmluZyk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5sb2FkZXIuaGFzSGFybmVzcyhNYXRJY29uSGFybmVzcy53aXRoKHsgYW5jZXN0b3I6IHNlbGVjdG9yLCBuYW1lIH0pKTtcbiAgICB9XG5cbiAgICBhc3luYyBjbGlja01hdEljb25XaXRoQW5jZXN0b3JCeURhdGFBdXRvbWF0aW9uSWQoZGF0YUF1dG9tYXRpb25JZDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGNvbnN0IGljb24gPSBhd2FpdCB0aGlzLmdldE1hdEljb25XaXRoQW5jZXN0b3JCeURhdGFBdXRvbWF0aW9uSWQoZGF0YUF1dG9tYXRpb25JZCk7XG4gICAgICAgIGNvbnN0IGhvc3QgPSBhd2FpdCBpY29uLmhvc3QoKTtcbiAgICAgICAgYXdhaXQgaG9zdC5jbGljaygpO1xuICAgIH1cblxuICAgIC8qKiBNYXRTZWxlY3QgcmVsYXRlZCBtZXRob2RzICovXG5cbiAgICBhc3luYyBnZXRNYXRTZWxlY3RPcHRpb25zKGlzT3BlbmVkID0gZmFsc2UpOiBQcm9taXNlPE1hdE9wdGlvbkhhcm5lc3NbXT4ge1xuICAgICAgICBjb25zdCBzZWxlY3QgPSBhd2FpdCB0aGlzLmxvYWRlci5nZXRIYXJuZXNzKE1hdFNlbGVjdEhhcm5lc3MpO1xuICAgICAgICBpZiAoIWlzT3BlbmVkKSB7XG4gICAgICAgICAgICBhd2FpdCBzZWxlY3Qub3BlbigpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBzZWxlY3QuZ2V0T3B0aW9ucygpO1xuICAgIH1cblxuICAgIGFzeW5jIGdldE1hdFNlbGVjdEhvc3QoKTogUHJvbWlzZTxUZXN0RWxlbWVudD4ge1xuICAgICAgICBjb25zdCBzZWxlY3QgPSBhd2FpdCB0aGlzLmxvYWRlci5nZXRIYXJuZXNzKE1hdFNlbGVjdEhhcm5lc3MpO1xuICAgICAgICByZXR1cm4gc2VsZWN0Lmhvc3QoKTtcbiAgICB9XG5cbiAgICBhc3luYyBjaGVja0lmTWF0U2VsZWN0RXhpc3RzKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5sb2FkZXIuaGFzSGFybmVzcyhNYXRTZWxlY3RIYXJuZXNzKTtcbiAgICB9XG5cbiAgICBhc3luYyBvcGVuTWF0U2VsZWN0KCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBjb25zdCBzZWxlY3QgPSBhd2FpdCB0aGlzLmxvYWRlci5nZXRIYXJuZXNzKE1hdFNlbGVjdEhhcm5lc3MpO1xuICAgICAgICBhd2FpdCBzZWxlY3Qub3BlbigpO1xuICAgIH1cblxuICAgIC8qKiBNYXRDaGlwcyByZWxhdGVkIG1ldGhvZHMgKi9cblxuICAgIGFzeW5jIGdldE1hdENoaXBCeURhdGFBdXRvbWF0aW9uSWQoZGF0YUF1dG9tYXRpb25JZDogc3RyaW5nKTogUHJvbWlzZTxNYXRDaGlwSGFybmVzcz4ge1xuICAgICAgICByZXR1cm4gdGhpcy5sb2FkZXIuZ2V0SGFybmVzcyhNYXRDaGlwSGFybmVzcy53aXRoKHsgc2VsZWN0b3I6IGBbZGF0YS1hdXRvbWF0aW9uLWlkPVwiJHtkYXRhQXV0b21hdGlvbklkfVwiXWAgfSkpO1xuICAgIH1cblxuICAgIGFzeW5jIGNoZWNrSWZNYXRDaGlwRXhpc3RzV2l0aERhdGFBdXRvbWF0aW9uSWQoZGF0YUF1dG9tYXRpb25JZDogc3RyaW5nKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmxvYWRlci5oYXNIYXJuZXNzKE1hdENoaXBIYXJuZXNzLndpdGgoeyBzZWxlY3RvcjogYFtkYXRhLWF1dG9tYXRpb24taWQ9XCIke2RhdGFBdXRvbWF0aW9uSWR9XCJdYCB9KSk7XG4gICAgfVxuXG4gICAgYXN5bmMgY2xpY2tNYXRDaGlwKGRhdGFBdXRvbWF0aW9uSWQ6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBjb25zdCBjaGlwID0gYXdhaXQgdGhpcy5nZXRNYXRDaGlwQnlEYXRhQXV0b21hdGlvbklkKGRhdGFBdXRvbWF0aW9uSWQpO1xuICAgICAgICBjb25zdCBob3N0ID0gYXdhaXQgY2hpcC5ob3N0KCk7XG4gICAgICAgIGF3YWl0IGhvc3QuY2xpY2soKTtcbiAgICB9XG5cbiAgICBhc3luYyBnZXRNYXRDaGlwcygpOiBQcm9taXNlPE1hdENoaXBIYXJuZXNzW10+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMubG9hZGVyLmdldEFsbEhhcm5lc3NlcyhNYXRDaGlwSGFybmVzcyk7XG4gICAgfVxuXG4gICAgLyoqIE1hdENoaXBMaXN0Ym94IHJlbGF0ZWQgbWV0aG9kcyAqL1xuXG4gICAgYXN5bmMgZ2V0TWF0Q2hpcExpc3Rib3hCeURhdGFBdXRvbWF0aW9uSWQoZGF0YUF1dG9tYXRpb25JZDogc3RyaW5nKTogUHJvbWlzZTxNYXRDaGlwTGlzdGJveEhhcm5lc3M+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMubG9hZGVyLmdldEhhcm5lc3MoTWF0Q2hpcExpc3Rib3hIYXJuZXNzLndpdGgoeyBzZWxlY3RvcjogYFtkYXRhLWF1dG9tYXRpb24taWQ9XCIke2RhdGFBdXRvbWF0aW9uSWR9XCJdYCB9KSk7XG4gICAgfVxuXG4gICAgYXN5bmMgY2xpY2tNYXRDaGlwTGlzdGJveChkYXRhQXV0b21hdGlvbklkOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgY29uc3QgY2hpcExpc3QgPSBhd2FpdCB0aGlzLmdldE1hdENoaXBMaXN0Ym94QnlEYXRhQXV0b21hdGlvbklkKGRhdGFBdXRvbWF0aW9uSWQpO1xuICAgICAgICBjb25zdCBob3N0ID0gYXdhaXQgY2hpcExpc3QuaG9zdCgpO1xuICAgICAgICBhd2FpdCBob3N0LmNsaWNrKCk7XG4gICAgfVxuXG4gICAgLyoqIE1hdENoaXBHcmlkIHJlbGF0ZWQgbWV0aG9kcyAqL1xuXG4gICAgYXN5bmMgY2hlY2tJZk1hdENoaXBHcmlkRXhpc3RzKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5sb2FkZXIuaGFzSGFybmVzcyhNYXRDaGlwR3JpZEhhcm5lc3MpO1xuICAgIH1cblxuICAgIC8qKiBNYXRGcm9tRmllbGQgcmVsYXRlZCBtZXRob2RzICovXG5cbiAgICBhc3luYyBnZXRNYXRGb3JtRmllbGQoKTogUHJvbWlzZTxNYXRGb3JtRmllbGRIYXJuZXNzPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmxvYWRlci5nZXRIYXJuZXNzKE1hdEZvcm1GaWVsZEhhcm5lc3MpO1xuICAgIH1cblxuICAgIGFzeW5jIGdldE1hdEZvcm1GaWVsZEJ5Q1NTKHNlbGVjdG9yOiBzdHJpbmcpOiBQcm9taXNlPE1hdEZvcm1GaWVsZEhhcm5lc3M+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMubG9hZGVyLmdldEhhcm5lc3MoTWF0Rm9ybUZpZWxkSGFybmVzcy53aXRoKHsgc2VsZWN0b3IgfSkpO1xuICAgIH1cblxuICAgIC8qKiBNYXRJbnB1dCByZWxhdGVkIG1ldGhvZHMgKi9cblxuICAgIGFzeW5jIGdldE1hdElucHV0KCk6IFByb21pc2U8TWF0SW5wdXRIYXJuZXNzPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmxvYWRlci5nZXRIYXJuZXNzKE1hdElucHV0SGFybmVzcyk7XG4gICAgfVxuXG4gICAgYXN5bmMgZ2V0TWF0SW5wdXRCeUNTUyhzZWxlY3Rvcjogc3RyaW5nKTogUHJvbWlzZTxNYXRJbnB1dEhhcm5lc3M+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMubG9hZGVyLmdldEhhcm5lc3MoTWF0SW5wdXRIYXJuZXNzLndpdGgoeyBzZWxlY3RvciB9KSk7XG4gICAgfVxuXG4gICAgYXN5bmMgZ2V0TWF0SW5wdXRCeURhdGFBdXRvbWF0aW9uSWQoZGF0YUF1dG9tYXRpb25JZDogc3RyaW5nKTogUHJvbWlzZTxNYXRJbnB1dEhhcm5lc3M+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMubG9hZGVyLmdldEhhcm5lc3MoTWF0SW5wdXRIYXJuZXNzLndpdGgoeyBzZWxlY3RvcjogYFtkYXRhLWF1dG9tYXRpb24taWQ9XCIke2RhdGFBdXRvbWF0aW9uSWR9XCJdYCB9KSk7XG4gICAgfVxuXG4gICAgYXN5bmMgZ2V0TWF0SW5wdXRCeVBsYWNlaG9sZGVyKHBsYWNlaG9sZGVyOiBzdHJpbmcpOiBQcm9taXNlPE1hdElucHV0SGFybmVzcz4ge1xuICAgICAgICByZXR1cm4gdGhpcy5sb2FkZXIuZ2V0SGFybmVzcyhNYXRJbnB1dEhhcm5lc3Mud2l0aCh7IHBsYWNlaG9sZGVyIH0pKTtcbiAgICB9XG5cbiAgICBhc3luYyBnZXRNYXRJbnB1dEhvc3QoKTogUHJvbWlzZTxUZXN0RWxlbWVudD4ge1xuICAgICAgICBjb25zdCBpbnB1dCA9IGF3YWl0IHRoaXMuZ2V0TWF0SW5wdXQoKTtcbiAgICAgICAgcmV0dXJuIGlucHV0Lmhvc3QoKTtcbiAgICB9XG5cbiAgICBhc3luYyBjaGVja0lmTWF0SW5wdXRFeGlzdHMoKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmxvYWRlci5oYXNIYXJuZXNzKE1hdElucHV0SGFybmVzcyk7XG4gICAgfVxuXG4gICAgYXN5bmMgY2hlY2tJZk1hdElucHV0RXhpc3RzV2l0aENTUyhzZWxlY3Rvcjogc3RyaW5nKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmxvYWRlci5oYXNIYXJuZXNzKE1hdElucHV0SGFybmVzcy53aXRoKHsgc2VsZWN0b3IgfSkpO1xuICAgIH1cblxuICAgIGFzeW5jIGNoZWNrSWZNYXRJbnB1dEV4aXN0c1dpdGhEYXRhQXV0b21hdGlvbklkKGRhdGFBdXRvbWF0aW9uSWQ6IHN0cmluZyk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5sb2FkZXIuaGFzSGFybmVzcyhNYXRJbnB1dEhhcm5lc3Mud2l0aCh7IHNlbGVjdG9yOiBgW2RhdGEtYXV0b21hdGlvbi1pZD1cIiR7ZGF0YUF1dG9tYXRpb25JZH1cIl1gIH0pKTtcbiAgICB9XG5cbiAgICBhc3luYyBjaGVja0lmTWF0SW5wdXRFeGlzdHNXaXRoUGxhY2Vob2xkZXIocGxhY2Vob2xkZXI6IHN0cmluZyk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5sb2FkZXIuaGFzSGFybmVzcyhNYXRJbnB1dEhhcm5lc3Mud2l0aCh7IHBsYWNlaG9sZGVyIH0pKTtcbiAgICB9XG5cbiAgICBhc3luYyBjbGlja01hdElucHV0KCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBjb25zdCBpbnB1dCA9IGF3YWl0IHRoaXMuZ2V0TWF0SW5wdXQoKTtcbiAgICAgICAgY29uc3QgaG9zdCA9IGF3YWl0IGlucHV0Lmhvc3QoKTtcbiAgICAgICAgYXdhaXQgaG9zdC5jbGljaygpO1xuICAgIH1cblxuICAgIGFzeW5jIGZpbGxNYXRJbnB1dCh2YWx1ZTogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGNvbnN0IGlucHV0ID0gYXdhaXQgdGhpcy5nZXRNYXRJbnB1dCgpO1xuICAgICAgICBhd2FpdCBpbnB1dC5zZXRWYWx1ZSh2YWx1ZSk7XG4gICAgfVxuXG4gICAgYXN5bmMgZmlsbE1hdElucHV0QnlDU1Moc2VsZWN0b3I6IHN0cmluZywgdmFsdWU6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBjb25zdCBpbnB1dCA9IGF3YWl0IHRoaXMuZ2V0TWF0SW5wdXRCeUNTUyhzZWxlY3Rvcik7XG4gICAgICAgIGF3YWl0IGlucHV0LnNldFZhbHVlKHZhbHVlKTtcbiAgICB9XG5cbiAgICBhc3luYyBmaWxsTWF0SW5wdXRCeURhdGFBdXRvbWF0aW9uSWQoZGF0YUF1dG9tYXRpb25JZDogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGNvbnN0IGlucHV0ID0gYXdhaXQgdGhpcy5nZXRNYXRJbnB1dEJ5RGF0YUF1dG9tYXRpb25JZChkYXRhQXV0b21hdGlvbklkKTtcbiAgICAgICAgYXdhaXQgaW5wdXQuc2V0VmFsdWUodmFsdWUpO1xuICAgICAgICBhd2FpdCAoYXdhaXQgaW5wdXQuaG9zdCgpKS5kaXNwYXRjaEV2ZW50KCdpbnB1dCcpO1xuICAgIH1cblxuICAgIGFzeW5jIGZvY3VzTWF0SW5wdXQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGNvbnN0IGlucHV0ID0gYXdhaXQgdGhpcy5nZXRNYXRJbnB1dCgpO1xuICAgICAgICBhd2FpdCBpbnB1dC5mb2N1cygpO1xuICAgIH1cblxuICAgIGFzeW5jIGJsdXJNYXRJbnB1dCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgY29uc3QgaW5wdXQgPSBhd2FpdCB0aGlzLmdldE1hdElucHV0KCk7XG4gICAgICAgIGF3YWl0IGlucHV0LmJsdXIoKTtcbiAgICB9XG5cbiAgICBhc3luYyBnZXRNYXRJbnB1dFZhbHVlKCk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgICAgIGNvbnN0IGlucHV0ID0gYXdhaXQgdGhpcy5nZXRNYXRJbnB1dCgpO1xuICAgICAgICByZXR1cm4gaW5wdXQuZ2V0VmFsdWUoKTtcbiAgICB9XG5cbiAgICBhc3luYyBnZXRNYXRJbnB1dFZhbHVlQnlEYXRhQXV0b21hdGlvbklkKGRhdGFBdXRvbWF0aW9uSWQ6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgICAgIGNvbnN0IGlucHV0ID0gYXdhaXQgdGhpcy5nZXRNYXRJbnB1dEJ5RGF0YUF1dG9tYXRpb25JZChkYXRhQXV0b21hdGlvbklkKTtcbiAgICAgICAgcmV0dXJuIGlucHV0LmdldFZhbHVlKCk7XG4gICAgfVxuXG4gICAgYXN5bmMgc2VuZEtleXNUb01hdElucHV0KGtleXM6IChzdHJpbmcgfCBUZXN0S2V5KVtdKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGNvbnN0IGlucHV0ID0gYXdhaXQgdGhpcy5nZXRNYXRJbnB1dCgpO1xuICAgICAgICBjb25zdCBob3N0ID0gYXdhaXQgaW5wdXQuaG9zdCgpO1xuICAgICAgICBhd2FpdCBob3N0LnNlbmRLZXlzKC4uLmtleXMpO1xuICAgIH1cblxuICAgIC8qKiBNYXRBdXRvQ29tcGxldGUgcmVsYXRlZCBtZXRob2RzICovXG5cbiAgICBhc3luYyB0eXBlQW5kR2V0T3B0aW9uc0Zvck1hdEF1dG9Db21wbGV0ZShmaXh0dXJlOiBDb21wb25lbnRGaXh0dXJlPGFueT4sIHZhbHVlOiBzdHJpbmcpOiBQcm9taXNlPE1hdE9wdGlvbkhhcm5lc3NbXT4ge1xuICAgICAgICBjb25zdCBhdXRvY29tcGxldGUgPSBhd2FpdCB0aGlzLmxvYWRlci5nZXRIYXJuZXNzKE1hdEF1dG9jb21wbGV0ZUhhcm5lc3MpO1xuICAgICAgICBhd2FpdCBhdXRvY29tcGxldGUuZW50ZXJUZXh0KHZhbHVlKTtcbiAgICAgICAgZml4dHVyZS5kZXRlY3RDaGFuZ2VzKCk7XG5cbiAgICAgICAgcmV0dXJuIGF1dG9jb21wbGV0ZS5nZXRPcHRpb25zKCk7XG4gICAgfVxuXG4gICAgLyoqIE1hdEVycm9yIHJlbGF0ZWQgbWV0aG9kcyAqL1xuXG4gICAgYXN5bmMgZ2V0TWF0RXJyb3JCeUNTUyhzZWxlY3Rvcjogc3RyaW5nKTogUHJvbWlzZTxNYXRFcnJvckhhcm5lc3M+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMubG9hZGVyLmdldEhhcm5lc3MoTWF0RXJyb3JIYXJuZXNzLndpdGgoeyBzZWxlY3RvciB9KSk7XG4gICAgfVxuXG4gICAgYXN5bmMgZ2V0TWF0RXJyb3JCeURhdGFBdXRvbWF0aW9uSWQoZGF0YUF1dG9tYXRpb25JZDogc3RyaW5nKTogUHJvbWlzZTxNYXRFcnJvckhhcm5lc3M+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMubG9hZGVyLmdldEhhcm5lc3MoTWF0RXJyb3JIYXJuZXNzLndpdGgoeyBzZWxlY3RvcjogYFtkYXRhLWF1dG9tYXRpb24taWQ9XCIke2RhdGFBdXRvbWF0aW9uSWR9XCJdYCB9KSk7XG4gICAgfVxuXG4gICAgLyoqIE1hdFRhYkdyb3VwIHJlbGF0ZWQgbWV0aG9kcyAqL1xuXG4gICAgYXN5bmMgZ2V0U2VsZWN0ZWRUYWJGcm9tTWF0VGFiR3JvdXAoKTogUHJvbWlzZTxNYXRUYWJIYXJuZXNzPiB7XG4gICAgICAgIGNvbnN0IHRhYnMgPSBhd2FpdCB0aGlzLmxvYWRlci5nZXRIYXJuZXNzKE1hdFRhYkdyb3VwSGFybmVzcyk7XG4gICAgICAgIHJldHVybiB0YWJzLmdldFNlbGVjdGVkVGFiKCk7XG4gICAgfVxuXG4gICAgYXN5bmMgZ2V0U2VsZWN0ZWRUYWJMYWJlbEZyb21NYXRUYWJHcm91cCgpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgICAgICBjb25zdCB0YWIgPSBhd2FpdCB0aGlzLmdldFNlbGVjdGVkVGFiRnJvbU1hdFRhYkdyb3VwKCk7XG4gICAgICAgIHJldHVybiB0YWIuZ2V0TGFiZWwoKTtcbiAgICB9XG5cbiAgICAvKiogTWF0VG9vbGJhciByZWxhdGVkIG1ldGhvZHMgKi9cblxuICAgIGFzeW5jIGdldE1hdFRvb2xiYXJIb3N0KCk6IFByb21pc2U8VGVzdEVsZW1lbnQ+IHtcbiAgICAgICAgY29uc3QgdG9vbGJhciA9IGF3YWl0IHRoaXMubG9hZGVyLmdldEhhcm5lc3MoTWF0VG9vbGJhckhhcm5lc3MpO1xuICAgICAgICByZXR1cm4gdG9vbGJhci5ob3N0KCk7XG4gICAgfVxuXG4gICAgLyoqIE1hdFNuYWNrYmFyIHJlbGF0ZWQgbWV0aG9kcyAqL1xuXG4gICAgYXN5bmMgY2hlY2tJZk1hdFNuYWNrYmFyRXhpc3RzKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5sb2FkZXIuaGFzSGFybmVzcyhNYXRTbmFja0Jhckhhcm5lc3MpO1xuICAgIH1cblxuICAgIC8qKiBNYXRQcm9ncmVzc0JhciByZWxhdGVkIG1ldGhvZHMgKi9cblxuICAgIGFzeW5jIGdldE1hdFByb2dyZXNzQmFySG9zdCgpOiBQcm9taXNlPFRlc3RFbGVtZW50PiB7XG4gICAgICAgIGNvbnN0IHByb2dyZXNzID0gYXdhaXQgdGhpcy5sb2FkZXIuZ2V0SGFybmVzcyhNYXRQcm9ncmVzc0Jhckhhcm5lc3MpO1xuICAgICAgICByZXR1cm4gcHJvZ3Jlc3MuaG9zdCgpO1xuICAgIH1cbn1cbiJdfQ==
|
|
367
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5pdC10ZXN0aW5nLXV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGliL2NvcmUvc3JjL2xpYi90ZXN0aW5nL3VuaXQtdGVzdGluZy11dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFJSCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFFcEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGNBQWMsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzVHLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNoRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN4RSxPQUFPLEVBQUUsZUFBZSxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDNUYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBRWhGLE9BQU8sRUFBRSxrQkFBa0IsRUFBaUIsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNuRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN6RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUUvRSxNQUFNLE9BQU8sZ0JBQWdCO0lBQ3pCLFlBQW9CLFlBQTJCLEVBQVUsTUFBc0I7UUFBM0QsaUJBQVksR0FBWixZQUFZLENBQWU7UUFBVSxXQUFNLEdBQU4sTUFBTSxDQUFnQjtRQUMzRSxJQUFJLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQztRQUNqQyxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztJQUN6QixDQUFDO0lBRUQsZUFBZSxDQUFDLFlBQTBCO1FBQ3RDLElBQUksQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDO0lBQ3JDLENBQUM7SUFFRCxTQUFTLENBQUMsTUFBcUI7UUFDM0IsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7SUFDekIsQ0FBQztJQUVELFFBQVEsQ0FBQyxRQUFnQjtRQUNyQixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRUQsV0FBVyxDQUFDLFFBQWdCO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxRQUFnQjtRQUM5QixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQztJQUMzRCxDQUFDO0lBRUQscUJBQXFCLENBQUMsZ0JBQXdCO1FBQzFDLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyx3QkFBd0IsZ0JBQWdCLElBQUksQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFFRCx3QkFBd0IsQ0FBQyxtQkFBMkI7UUFDaEQsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLDJCQUEyQixtQkFBbUIsSUFBSSxDQUFDLENBQUM7SUFDN0UsQ0FBQztJQUVELDhCQUE4QixDQUFDLGdCQUF3QjtRQUNuRCxPQUFPLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUM7SUFDaEYsQ0FBQztJQUVELGNBQWMsQ0FBQyxTQUFvQjtRQUMvQixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQsaUJBQWlCLENBQUMsU0FBb0I7UUFDbEMsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUVELHNCQUFzQjtJQUV0QixVQUFVLENBQUMsUUFBZ0I7UUFDdkIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN4QyxPQUFPLENBQUMsbUJBQW1CLENBQUMsT0FBTyxFQUFFLElBQUksVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUVELHVCQUF1QixDQUFDLGdCQUF3QjtRQUM1QyxJQUFJLENBQUMscUJBQXFCLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDdkUsQ0FBQztJQUVELDZCQUE2QixDQUFDLGdCQUF3QjtRQUNsRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUM3RCxPQUFPLENBQUMsbUJBQW1CLENBQUMsVUFBVSxFQUFFLElBQUksVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7SUFDeEUsQ0FBQztJQUVELFNBQVMsQ0FBQyxRQUFnQjtRQUN0QixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3hDLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLEVBQUUsSUFBSSxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBRUQsY0FBYyxDQUFDLFFBQWdCO1FBQzNCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDeEMsT0FBTyxDQUFDLG1CQUFtQixDQUFDLFlBQVksRUFBRSxJQUFJLFVBQVUsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO0lBQzVFLENBQUM7SUFFRCwyQkFBMkIsQ0FBQyxnQkFBd0I7UUFDaEQsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDN0QsT0FBTyxDQUFDLG1CQUFtQixDQUFDLFlBQVksRUFBRSxJQUFJLFVBQVUsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO0lBQzVFLENBQUM7SUFFRCxlQUFlLENBQUMsUUFBZ0I7UUFDNUIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN4QyxPQUFPLENBQUMsbUJBQW1CLENBQUMsWUFBWSxFQUFFLElBQUksVUFBVSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7SUFDNUUsQ0FBQztJQUVELDRCQUE0QixDQUFDLGdCQUF3QjtRQUNqRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUM3RCxPQUFPLENBQUMsbUJBQW1CLENBQUMsWUFBWSxFQUFFLElBQUksVUFBVSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7SUFDNUUsQ0FBQztJQUVELGtCQUFrQixDQUFDLFFBQWdCLEVBQUUsS0FBMEIsRUFBRSxJQUFZLEVBQUUsR0FBVztRQUN0RixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3hDLE9BQU8sQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLElBQUksYUFBYSxDQUFDLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDakYsQ0FBQztJQUVELHdCQUF3QixDQUFDLFFBQWdCLEVBQUUsU0FBaUI7UUFDeEQsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN4QyxPQUFPLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxJQUFJLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBQ3BFLENBQUM7SUFFRCw0QkFBNEI7SUFFNUIsYUFBYSxDQUFDLFFBQWdCO1FBQzFCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsRUFBRSxhQUFhLENBQUM7SUFDbEQsQ0FBQztJQUVELDBCQUEwQixDQUFDLGdCQUF3QjtRQUMvQyxPQUFPLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLGFBQWEsQ0FBQztJQUN2RSxDQUFDO0lBRUQsY0FBYyxDQUFDLFFBQWdCLEVBQUUsS0FBYTtRQUMxQyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzNDLEtBQUssQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLEtBQUssQ0FBQyxhQUFhLENBQUMsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQsMkJBQTJCLENBQUMsZ0JBQXdCLEVBQUUsS0FBVTtRQUM1RCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsMEJBQTBCLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUNoRSxLQUFLLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNwQixLQUFLLENBQUMsYUFBYSxDQUFDLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVELGdDQUFnQztJQUVoQyxLQUFLLENBQUMsWUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQsS0FBSyxDQUFDLGlCQUFpQixDQUFDLFFBQWdCO1FBQ3BDLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFFRCxLQUFLLENBQUMsOEJBQThCLENBQUMsZ0JBQXdCO1FBQ3pELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEVBQUUsUUFBUSxFQUFFLHdCQUF3QixnQkFBZ0IsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3JILENBQUM7SUFFRCxLQUFLLENBQUMsc0JBQXNCO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQsS0FBSyxDQUFDLDBDQUEwQyxDQUFDLGdCQUF3QjtRQUNyRSxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxFQUFFLFFBQVEsRUFBRSx3QkFBd0IsZ0JBQWdCLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNySCxDQUFDO0lBRUQsS0FBSyxDQUFDLGNBQWM7UUFDaEIsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDekMsTUFBTSxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVELEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxRQUFnQjtRQUN0QyxNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN0RCxNQUFNLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRUQsS0FBSyxDQUFDLGdDQUFnQyxDQUFDLGdCQUF3QjtRQUMzRCxNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyw4QkFBOEIsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQzNFLE1BQU0sTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxLQUFLLENBQUMsbUJBQW1CLENBQUMsSUFBMEI7UUFDaEQsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDekMsTUFBTSxJQUFJLEdBQUcsTUFBTSxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDakMsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVELGtDQUFrQztJQUVsQyxLQUFLLENBQUMsY0FBYztRQUNoQixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVELEtBQUssQ0FBQyxnQ0FBZ0MsQ0FBQyxnQkFBd0I7UUFDM0QsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsRUFBRSxRQUFRLEVBQUUsd0JBQXdCLGdCQUFnQixJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDdkgsQ0FBQztJQUVELEtBQUssQ0FBQyxrQkFBa0I7UUFDcEIsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDN0MsT0FBTyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELEtBQUssQ0FBQyxtQkFBbUI7UUFDckIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFRCxLQUFLLENBQUMsMkJBQTJCO1FBQzdCLE1BQU0sUUFBUSxHQUFHLE1BQU0sSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQzdDLE9BQU8sUUFBUSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFRCxLQUFLLENBQUMsNkJBQTZCLENBQUMsU0FBaUI7UUFDakQsTUFBTSxVQUFVLEdBQUcsTUFBTSxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztRQUNwRCxPQUFPLFVBQVUsQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQyxNQUFNLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBQzdGLENBQUM7SUFFRCxLQUFLLENBQUMsb0JBQW9CO1FBQ3RCLE1BQU0sSUFBSSxHQUFHLE1BQU0sSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFDN0MsTUFBTSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVELDhCQUE4QjtJQUU5QixLQUFLLENBQUMsZ0JBQWdCO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBRUQsS0FBSyxDQUFDLHdDQUF3QyxDQUFDLGdCQUF3QjtRQUNuRSxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsRUFBRSxRQUFRLEVBQUUsd0JBQXdCLGdCQUFnQixJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDbkgsQ0FBQztJQUVELEtBQUssQ0FBQywyQkFBMkIsQ0FBQyxRQUFnQjtRQUM5QyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQy9FLENBQUM7SUFFRCxLQUFLLENBQUMsa0NBQWtDLENBQUMsUUFBZ0IsRUFBRSxJQUFZO1FBQ25FLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3JGLENBQUM7SUFFRCxLQUFLLENBQUMsa0RBQWtELENBQUMsZ0JBQXdCO1FBQzdFLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxFQUFFLFFBQVEsRUFBRSx3QkFBd0IsZ0JBQWdCLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNuSCxDQUFDO0lBRUQsS0FBSyxDQUFDLDRDQUE0QyxDQUFDLFFBQWdCLEVBQUUsSUFBWTtRQUM3RSxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNyRixDQUFDO0lBRUQsS0FBSyxDQUFDLDBDQUEwQyxDQUFDLGdCQUF3QjtRQUNyRSxNQUFNLElBQUksR0FBRyxNQUFNLElBQUksQ0FBQyx3Q0FBd0MsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ25GLE1BQU0sSUFBSSxHQUFHLE1BQU0sSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQy9CLE1BQU0sSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxnQ0FBZ0M7SUFFaEMsS0FBSyxDQUFDLG1CQUFtQixDQUFDLFFBQVEsR0FBRyxLQUFLO1FBQ3RDLE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUM5RCxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDWixNQUFNLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN4QixDQUFDO1FBQ0QsT0FBTyxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVELEtBQUssQ0FBQyxnQkFBZ0I7UUFDbEIsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQzlELE9BQU8sTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxLQUFLLENBQUMsc0JBQXNCO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQsS0FBSyxDQUFDLGFBQWE7UUFDZixNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDOUQsTUFBTSxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVELCtCQUErQjtJQUUvQixLQUFLLENBQUMsNEJBQTRCLENBQUMsZ0JBQXdCO1FBQ3ZELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxFQUFFLFFBQVEsRUFBRSx3QkFBd0IsZ0JBQWdCLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNuSCxDQUFDO0lBRUQsS0FBSyxDQUFDLHdDQUF3QyxDQUFDLGdCQUF3QjtRQUNuRSxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsRUFBRSxRQUFRLEVBQUUsd0JBQXdCLGdCQUFnQixJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDbkgsQ0FBQztJQUVELEtBQUssQ0FBQyxZQUFZLENBQUMsZ0JBQXdCO1FBQ3ZDLE1BQU0sSUFBSSxHQUFHLE1BQU0sSUFBSSxDQUFDLDRCQUE0QixDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDdkUsTUFBTSxJQUFJLEdBQUcsTUFBTSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDL0IsTUFBTSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVELEtBQUssQ0FBQyxXQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRUQscUNBQXFDO0lBRXJDLEtBQUssQ0FBQyxtQ0FBbUMsQ0FBQyxnQkFBd0I7UUFDOUQsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsRUFBRSxRQUFRLEVBQUUsd0JBQXdCLGdCQUFnQixJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDMUgsQ0FBQztJQUVELEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxnQkFBd0I7UUFDOUMsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFJLENBQUMsbUNBQW1DLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUNsRixNQUFNLElBQUksR0FBRyxNQUFNLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNuQyxNQUFNLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRUQsa0NBQWtDO0lBRWxDLEtBQUssQ0FBQyx3QkFBd0I7UUFDMUIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRCxtQ0FBbUM7SUFFbkMsS0FBSyxDQUFDLGVBQWU7UUFDakIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFRCxLQUFLLENBQUMsb0JBQW9CLENBQUMsUUFBZ0I7UUFDdkMsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDMUUsQ0FBQztJQUVELCtCQUErQjtJQUUvQixLQUFLLENBQUMsV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVELEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFnQjtRQUNuQyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDdEUsQ0FBQztJQUVELEtBQUssQ0FBQyw2QkFBNkIsQ0FBQyxnQkFBd0I7UUFDeEQsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEVBQUUsUUFBUSxFQUFFLHdCQUF3QixnQkFBZ0IsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3BILENBQUM7SUFFRCxLQUFLLENBQUMsd0JBQXdCLENBQUMsV0FBbUI7UUFDOUMsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3pFLENBQUM7SUFFRCxLQUFLLENBQUMsZUFBZTtRQUNqQixNQUFNLEtBQUssR0FBRyxNQUFNLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUN2QyxPQUFPLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUQsS0FBSyxDQUFDLHFCQUFxQjtRQUN2QixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRCxLQUFLLENBQUMsNEJBQTRCLENBQUMsUUFBZ0I7UUFDL0MsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3RFLENBQUM7SUFFRCxLQUFLLENBQUMseUNBQXlDLENBQUMsZ0JBQXdCO1FBQ3BFLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxFQUFFLFFBQVEsRUFBRSx3QkFBd0IsZ0JBQWdCLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNwSCxDQUFDO0lBRUQsS0FBSyxDQUFDLG9DQUFvQyxDQUFDLFdBQW1CO1FBQzFELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBRUQsS0FBSyxDQUFDLGFBQWE7UUFDZixNQUFNLEtBQUssR0FBRyxNQUFNLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUN2QyxNQUFNLElBQUksR0FBRyxNQUFNLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNoQyxNQUFNLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRUQsS0FBSyxDQUFDLFlBQVksQ0FBQyxLQUFhO1FBQzVCLE1BQU0sS0FBSyxHQUFHLE1BQU0sSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3ZDLE1BQU0sS0FBSyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsS0FBSyxDQUFDLGlCQUFpQixDQUFDLFFBQWdCLEVBQUUsS0FBYTtRQUNuRCxNQUFNLEtBQUssR0FBRyxNQUFNLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNwRCxNQUFNLEtBQUssQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVELEtBQUssQ0FBQyw4QkFBOEIsQ0FBQyxnQkFBd0IsRUFBRSxLQUFhO1FBQ3hFLE1BQU0sS0FBSyxHQUFHLE1BQU0sSUFBSSxDQUFDLDZCQUE2QixDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDekUsTUFBTSxLQUFLLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzVCLE1BQU0sQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRUQsS0FBSyxDQUFDLGFBQWE7UUFDZixNQUFNLEtBQUssR0FBRyxNQUFNLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUN2QyxNQUFNLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUQsS0FBSyxDQUFDLFlBQVk7UUFDZCxNQUFNLEtBQUssR0FBRyxNQUFNLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUN2QyxNQUFNLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRUQsS0FBSyxDQUFDLGdCQUFnQjtRQUNsQixNQUFNLEtBQUssR0FBRyxNQUFNLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUN2QyxPQUFPLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQsS0FBSyxDQUFDLGtDQUFrQyxDQUFDLGdCQUF3QjtRQUM3RCxNQUFNLEtBQUssR0FBRyxNQUFNLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3pFLE9BQU8sS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRCxLQUFLLENBQUMsa0JBQWtCLENBQUMsSUFBMEI7UUFDL0MsTUFBTSxLQUFLLEdBQUcsTUFBTSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDdkMsTUFBTSxJQUFJLEdBQUcsTUFBTSxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDaEMsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVELHNDQUFzQztJQUV0QyxLQUFLLENBQUMsbUNBQW1DLENBQUMsT0FBOEIsRUFBRSxLQUFhO1FBQ25GLE1BQU0sWUFBWSxHQUFHLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsc0JBQXNCLENBQUMsQ0FBQztRQUMxRSxNQUFNLFlBQVksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDcEMsT0FBTyxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBRXhCLE9BQU8sWUFBWSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3JDLENBQUM7SUFFRCwrQkFBK0I7SUFFL0IsS0FBSyxDQUFDLGdCQUFnQixDQUFDLFFBQWdCO1FBQ25DLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUN0RSxDQUFDO0lBRUQsS0FBSyxDQUFDLDZCQUE2QixDQUFDLGdCQUF3QjtRQUN4RCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsRUFBRSxRQUFRLEVBQUUsd0JBQXdCLGdCQUFnQixJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDcEgsQ0FBQztJQUVELGtDQUFrQztJQUVsQyxLQUFLLENBQUMsNkJBQTZCO1FBQy9CLE1BQU0sSUFBSSxHQUFHLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUM5RCxPQUFPLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBRUQsS0FBSyxDQUFDLGtDQUFrQztRQUNwQyxNQUFNLEdBQUcsR0FBRyxNQUFNLElBQUksQ0FBQyw2QkFBNkIsRUFBRSxDQUFDO1FBQ3ZELE9BQU8sR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRCxpQ0FBaUM7SUFFakMsS0FBSyxDQUFDLGlCQUFpQjtRQUNuQixNQUFNLE9BQU8sR0FBRyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDaEUsT0FBTyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELGtDQUFrQztJQUVsQyxLQUFLLENBQUMsd0JBQXdCO1FBQzFCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRUQscUNBQXFDO0lBRXJDLEtBQUssQ0FBQyxxQkFBcUI7UUFDdkIsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBQ3JFLE9BQU8sUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzNCLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjUgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHsgSGFybmVzc0xvYWRlciwgVGVzdEVsZW1lbnQsIFRlc3RLZXkgfSBmcm9tICdAYW5ndWxhci9jZGsvdGVzdGluZyc7XG5pbXBvcnQgeyBEZWJ1Z0VsZW1lbnQsIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJ5IH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBNYXRTZWxlY3RIYXJuZXNzIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2VsZWN0L3Rlc3RpbmcnO1xuaW1wb3J0IHsgTWF0T3B0aW9uSGFybmVzcyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUvdGVzdGluZyc7XG5pbXBvcnQgeyBNYXRDaGlwR3JpZEhhcm5lc3MsIE1hdENoaXBIYXJuZXNzLCBNYXRDaGlwTGlzdGJveEhhcm5lc3MgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGlwcy90ZXN0aW5nJztcbmltcG9ydCB7IE1hdEJ1dHRvbkhhcm5lc3MgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24vdGVzdGluZyc7XG5pbXBvcnQgeyBNYXRJY29uSGFybmVzcyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24vdGVzdGluZyc7XG5pbXBvcnQgeyBNYXRDaGVja2JveEhhcm5lc3MgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGVja2JveC90ZXN0aW5nJztcbmltcG9ydCB7IE1hdEVycm9ySGFybmVzcywgTWF0Rm9ybUZpZWxkSGFybmVzcyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQvdGVzdGluZyc7XG5pbXBvcnQgeyBNYXRJbnB1dEhhcm5lc3MgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dC90ZXN0aW5nJztcbmltcG9ydCB7IE1hdEF1dG9jb21wbGV0ZUhhcm5lc3MgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9hdXRvY29tcGxldGUvdGVzdGluZyc7XG5pbXBvcnQgeyBDb21wb25lbnRGaXh0dXJlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS90ZXN0aW5nJztcbmltcG9ydCB7IE1hdFRhYkdyb3VwSGFybmVzcywgTWF0VGFiSGFybmVzcyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYnMvdGVzdGluZyc7XG5pbXBvcnQgeyBNYXRUb29sYmFySGFybmVzcyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2xiYXIvdGVzdGluZyc7XG5pbXBvcnQgeyBNYXRTbmFja0Jhckhhcm5lc3MgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zbmFjay1iYXIvdGVzdGluZyc7XG5pbXBvcnQgeyBNYXRQcm9ncmVzc0Jhckhhcm5lc3MgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wcm9ncmVzcy1iYXIvdGVzdGluZyc7XG5cbmV4cG9ydCBjbGFzcyBVbml0VGVzdGluZ1V0aWxzIHtcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGRlYnVnRWxlbWVudD86IERlYnVnRWxlbWVudCwgcHJpdmF0ZSBsb2FkZXI/OiBIYXJuZXNzTG9hZGVyKSB7XG4gICAgICAgIHRoaXMuZGVidWdFbGVtZW50ID0gZGVidWdFbGVtZW50O1xuICAgICAgICB0aGlzLmxvYWRlciA9IGxvYWRlcjtcbiAgICB9XG5cbiAgICBzZXREZWJ1Z0VsZW1lbnQoZGVidWdFbGVtZW50OiBEZWJ1Z0VsZW1lbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kZWJ1Z0VsZW1lbnQgPSBkZWJ1Z0VsZW1lbnQ7XG4gICAgfVxuXG4gICAgc2V0TG9hZGVyKGxvYWRlcjogSGFybmVzc0xvYWRlcik6IHZvaWQge1xuICAgICAgICB0aGlzLmxvYWRlciA9IGxvYWRlcjtcbiAgICB9XG5cbiAgICBnZXRCeUNTUyhzZWxlY3Rvcjogc3RyaW5nKTogRGVidWdFbGVtZW50IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGVidWdFbGVtZW50LnF1ZXJ5KEJ5LmNzcyhzZWxlY3RvcikpO1xuICAgIH1cblxuICAgIGdldEFsbEJ5Q1NTKHNlbGVjdG9yOiBzdHJpbmcpOiBEZWJ1Z0VsZW1lbnRbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLmRlYnVnRWxlbWVudC5xdWVyeUFsbChCeS5jc3Moc2VsZWN0b3IpKTtcbiAgICB9XG5cbiAgICBnZXRJbm5lclRleHRCeUNTUyhzZWxlY3Rvcjogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0QnlDU1Moc2VsZWN0b3IpLm5hdGl2ZUVsZW1lbnQuaW5uZXJUZXh0O1xuICAgIH1cblxuICAgIGdldEJ5RGF0YUF1dG9tYXRpb25JZChkYXRhQXV0b21hdGlvbklkOiBzdHJpbmcpOiBEZWJ1Z0VsZW1lbnQge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRCeUNTUyhgW2RhdGEtYXV0b21hdGlvbi1pZD1cIiR7ZGF0YUF1dG9tYXRpb25JZH1cIl1gKTtcbiAgICB9XG5cbiAgICBnZXRCeURhdGFBdXRvbWF0aW9uQ2xhc3MoZGF0YUF1dG9tYXRpb25DbGFzczogc3RyaW5nKTogRGVidWdFbGVtZW50IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0QnlDU1MoYFtkYXRhLWF1dG9tYXRpb24tY2xhc3M9XCIke2RhdGFBdXRvbWF0aW9uQ2xhc3N9XCJdYCk7XG4gICAgfVxuXG4gICAgZ2V0SW5uZXJUZXh0QnlEYXRhQXV0b21hdGlvbklkKGRhdGFBdXRvbWF0aW9uSWQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldEJ5RGF0YUF1dG9tYXRpb25JZChkYXRhQXV0b21hdGlvbklkKS5uYXRpdmVFbGVtZW50LmlubmVyVGV4dDtcbiAgICB9XG5cbiAgICBnZXRCeURpcmVjdGl2ZShkaXJlY3RpdmU6IFR5cGU8YW55Pik6IERlYnVnRWxlbWVudCB7XG4gICAgICAgIHJldHVybiB0aGlzLmRlYnVnRWxlbWVudC5xdWVyeShCeS5kaXJlY3RpdmUoZGlyZWN0aXZlKSk7XG4gICAgfVxuXG4gICAgZ2V0QWxsQnlEaXJlY3RpdmUoZGlyZWN0aXZlOiBUeXBlPGFueT4pOiBEZWJ1Z0VsZW1lbnRbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLmRlYnVnRWxlbWVudC5xdWVyeUFsbChCeS5kaXJlY3RpdmUoZGlyZWN0aXZlKSk7XG4gICAgfVxuXG4gICAgLyoqIFBlcmZvcm0gYWN0aW9ucyAqL1xuXG4gICAgY2xpY2tCeUNTUyhzZWxlY3Rvcjogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLmdldEJ5Q1NTKHNlbGVjdG9yKTtcbiAgICAgICAgZWxlbWVudC50cmlnZ2VyRXZlbnRIYW5kbGVyKCdjbGljaycsIG5ldyBNb3VzZUV2ZW50KCdjbGljaycpKTtcbiAgICB9XG5cbiAgICBjbGlja0J5RGF0YUF1dG9tYXRpb25JZChkYXRhQXV0b21hdGlvbklkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5nZXRCeURhdGFBdXRvbWF0aW9uSWQoZGF0YUF1dG9tYXRpb25JZCkubmF0aXZlRWxlbWVudC5jbGljaygpO1xuICAgIH1cblxuICAgIGRvdWJsZUNsaWNrQnlEYXRhQXV0b21hdGlvbklkKGRhdGFBdXRvbWF0aW9uSWQ6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5nZXRCeURhdGFBdXRvbWF0aW9uSWQoZGF0YUF1dG9tYXRpb25JZCk7XG4gICAgICAgIGVsZW1lbnQudHJpZ2dlckV2ZW50SGFuZGxlcignZGJsY2xpY2snLCBuZXcgTW91c2VFdmVudCgnZGJsY2xpY2snKSk7XG4gICAgfVxuXG4gICAgYmx1ckJ5Q1NTKHNlbGVjdG9yOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZWxlbWVudCA9IHRoaXMuZ2V0QnlDU1Moc2VsZWN0b3IpO1xuICAgICAgICBlbGVtZW50LnRyaWdnZXJFdmVudEhhbmRsZXIoJ2JsdXInLCBuZXcgRm9jdXNFdmVudCgnYmx1cicpKTtcbiAgICB9XG5cbiAgICBob3Zlck92ZXJCeUNTUyhzZWxlY3Rvcjogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLmdldEJ5Q1NTKHNlbGVjdG9yKTtcbiAgICAgICAgZWxlbWVudC50cmlnZ2VyRXZlbnRIYW5kbGVyKCdtb3VzZWVudGVyJywgbmV3IE1vdXNlRXZlbnQoJ21vdXNlZW50ZXInKSk7XG4gICAgfVxuXG4gICAgaG92ZXJPdmVyQnlEYXRhQXV0b21hdGlvbklkKGRhdGFBdXRvbWF0aW9uSWQ6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5nZXRCeURhdGFBdXRvbWF0aW9uSWQoZGF0YUF1dG9tYXRpb25JZCk7XG4gICAgICAgIGVsZW1lbnQudHJpZ2dlckV2ZW50SGFuZGxlcignbW91c2VlbnRlcicsIG5ldyBNb3VzZUV2ZW50KCdtb3VzZWVudGVyJykpO1xuICAgIH1cblxuICAgIG1vdXNlTGVhdmVCeUNTUyhzZWxlY3Rvcjogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLmdldEJ5Q1NTKHNlbGVjdG9yKTtcbiAgICAgICAgZWxlbWVudC50cmlnZ2VyRXZlbnRIYW5kbGVyKCdtb3VzZWxlYXZlJywgbmV3IE1vdXNlRXZlbnQoJ21vdXNlbGVhdmUnKSk7XG4gICAgfVxuXG4gICAgbW91c2VMZWF2ZUJ5RGF0YUF1dG9tYXRpb25JZChkYXRhQXV0b21hdGlvbklkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZWxlbWVudCA9IHRoaXMuZ2V0QnlEYXRhQXV0b21hdGlvbklkKGRhdGFBdXRvbWF0aW9uSWQpO1xuICAgICAgICBlbGVtZW50LnRyaWdnZXJFdmVudEhhbmRsZXIoJ21vdXNlbGVhdmUnLCBuZXcgTW91c2VFdmVudCgnbW91c2VsZWF2ZScpKTtcbiAgICB9XG5cbiAgICBrZXlCb2FyZEV2ZW50QnlDU1Moc2VsZWN0b3I6IHN0cmluZywgZXZlbnQ6ICdrZXl1cCcgfCAna2V5ZG93bicsIGNvZGU6IHN0cmluZywga2V5OiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZWxlbWVudCA9IHRoaXMuZ2V0QnlDU1Moc2VsZWN0b3IpO1xuICAgICAgICBlbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZGlzcGF0Y2hFdmVudChuZXcgS2V5Ym9hcmRFdmVudChldmVudCwgeyBjb2RlLCBrZXkgfSkpO1xuICAgIH1cblxuICAgIGRpc3BhdGNoQ3VzdG9tRXZlbnRCeUNTUyhzZWxlY3Rvcjogc3RyaW5nLCBldmVudE5hbWU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5nZXRCeUNTUyhzZWxlY3Rvcik7XG4gICAgICAgIGVsZW1lbnQubmF0aXZlRWxlbWVudC5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudChldmVudE5hbWUpKTtcbiAgICB9XG5cbiAgICAvKiogSW5wdXQgcmVsYXRlZCBtZXRob2RzICovXG5cbiAgICBnZXRJbnB1dEJ5Q1NTKHNlbGVjdG9yOiBzdHJpbmcpOiBIVE1MSW5wdXRFbGVtZW50IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0QnlDU1Moc2VsZWN0b3IpPy5uYXRpdmVFbGVtZW50O1xuICAgIH1cblxuICAgIGdldElucHV0QnlEYXRhQXV0b21hdGlvbklkKGRhdGFBdXRvbWF0aW9uSWQ6IHN0cmluZyk6IEhUTUxJbnB1dEVsZW1lbnQge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRCeURhdGFBdXRvbWF0aW9uSWQoZGF0YUF1dG9tYXRpb25JZCk/Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgfVxuXG4gICAgZmlsbElucHV0QnlDU1Moc2VsZWN0b3I6IHN0cmluZywgdmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBjb25zdCBpbnB1dCA9IHRoaXMuZ2V0SW5wdXRCeUNTUyhzZWxlY3Rvcik7XG4gICAgICAgIGlucHV0LnZhbHVlID0gdmFsdWU7XG4gICAgICAgIGlucHV0LmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdpbnB1dCcpKTtcbiAgICB9XG5cbiAgICBmaWxsSW5wdXRCeURhdGFBdXRvbWF0aW9uSWQoZGF0YUF1dG9tYXRpb25JZDogc3RyaW5nLCB2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGlucHV0ID0gdGhpcy5nZXRJbnB1dEJ5RGF0YUF1dG9tYXRpb25JZChkYXRhQXV0b21hdGlvbklkKTtcbiAgICAgICAgaW5wdXQudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgaW5wdXQuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ2lucHV0JykpO1xuICAgIH1cblxuICAgIC8qKiBNYXRCdXR0b24gcmVsYXRlZCBtZXRob2RzICovXG5cbiAgICBhc3luYyBnZXRNYXRCdXR0b24oKTogUHJvbWlzZTxNYXRCdXR0b25IYXJuZXNzPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmxvYWRlci5nZXRIYXJuZXNzKE1hdEJ1dHRvbkhhcm5lc3MpO1xuICAgIH1cblxuICAgIGFzeW5jIGdldE1hdEJ1dHRvbkJ5Q1NTKHNlbGVjdG9yOiBzdHJpbmcpOiBQcm9taXNlPE1hdEJ1dHRvbkhhcm5lc3M+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMubG9hZGVyLmdldEhhcm5lc3MoTWF0QnV0dG9uSGFybmVzcy53aXRoKHsgc2VsZWN0b3IgfSkpO1xuICAgIH1cblxuICAgIGFzeW5jIGdldE1hdEJ1dHRvbkJ5RGF0YUF1dG9tYXRpb25JZChkYXRhQXV0b21hdGlvbklkOiBzdHJpbmcpOiBQcm9taXNlPE1hdEJ1dHRvbkhhcm5lc3M+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMubG9hZGVyLmdldEhhcm5lc3MoTWF0QnV0dG9uSGFybmVzcy53aXRoKHsgc2VsZWN0b3I6IGBbZGF0YS1hdXRvbWF0aW9uLWlkPVwiJHtkYXRhQXV0b21hdGlvbklkfVwiXWAgfSkpO1xuICAgIH1cblxuICAgIGFzeW5jIGNoZWNrSWZNYXRCdXR0b25FeGlzdHMoKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmxvYWRlci5oYXNIYXJuZXNzKE1hdEJ1dHRvbkhhcm5lc3MpO1xuICAgIH1cblxuICAgIGFzeW5jIGNoZWNrSWZNYXRCdXR0b25FeGlzdHNXaXRoRGF0YUF1dG9tYXRpb25JZChkYXRhQXV0b21hdGlvbklkOiBzdHJpbmcpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMubG9hZGVyLmhhc0hhcm5lc3MoTWF0QnV0dG9uSGFybmVzcy53aXRoKHsgc2VsZWN0b3I6IGBbZGF0YS1hdXRvbWF0aW9uLWlkPVwiJHtkYXRhQXV0b21hdGlvbklkfVwiXWAgfSkpO1xuICAgIH1cblxuICAgIGFzeW5jIGNsaWNrTWF0QnV0dG9uKCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBjb25zdCBidXR0b24gPSBhd2FpdCB0aGlzLmdldE1hdEJ1dHRvbigpO1xuICAgICAgICBhd2FpdCBidXR0b24uY2xpY2soKTtcbiAgICB9XG5cbiAgICBhc3luYyBjbGlja01hdEJ1dHRvbkJ5Q1NTKHNlbGVjdG9yOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgY29uc3QgYnV0dG9uID0gYXdhaXQgdGhpcy5nZXRNYXRCdXR0b25CeUNTUyhzZWxlY3Rvcik7XG4gICAgICAgIGF3YWl0IGJ1dHRvbi5jbGljaygpO1xuICAgIH1cblxuICAgIGFzeW5jIGNsaWNrTWF0QnV0dG9uQnlEYXRhQXV0b21hdGlvbklkKGRhdGFBdXRvbWF0aW9uSWQ6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBjb25zdCBidXR0b24gPSBhd2FpdCB0aGlzLmdldE1hdEJ1dHRvbkJ5RGF0YUF1dG9tYXRpb25JZChkYXRhQXV0b21hdGlvbklkKTtcbiAgICAgICAgYXdhaXQgYnV0dG9uLmNsaWNrKCk7XG4gICAgfVxuXG4gICAgYXN5bmMgc2VuZEtleXNUb01hdEJ1dHRvbihrZXlzOiAoc3RyaW5nIHwgVGVzdEtleSlbXSk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBjb25zdCBidXR0b24gPSBhd2FpdCB0aGlzLmdldE1hdEJ1dHRvbigpO1xuICAgICAgICBjb25zdCBob3N0ID0gYXdhaXQgYnV0dG9uLmhvc3QoKTtcbiAgICAgICAgYXdhaXQgaG9zdC5zZW5kS2V5cyguLi5rZXlzKTtcbiAgICB9XG5cbiAgICAvKiogTWF0Q2hlY2tib3ggcmVsYXRlZCBtZXRob2RzICovXG5cbiAgICBhc3luYyBnZXRNYXRDaGVja2JveCgpOiBQcm9taXNlPE1hdENoZWNrYm94SGFybmVzcz4ge1xuICAgICAgICByZXR1cm4gdGhpcy5sb2FkZXIuZ2V0SGFybmVzcyhNYXRDaGVja2JveEhhcm5lc3MpO1xuICAgIH1cblxuICAgIGFzeW5jIGdldE1hdENoZWNrYm94QnlEYXRhQXV0b21hdGlvbklkKGRhdGFBdXRvbWF0aW9uSWQ6IHN0cmluZyk6IFByb21pc2U8TWF0Q2hlY2tib3hIYXJuZXNzPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmxvYWRlci5nZXRIYXJuZXNzKE1hdENoZWNrYm94SGFybmVzcy53aXRoKHsgc2VsZWN0b3I6IGBbZGF0YS1hdXRvbWF0aW9uLWlkPVwiJHtkYXRhQXV0b21hdGlvbklkfVwiXWAgfSkpO1xuICAgIH1cblxuICAgIGFzeW5jIGdldE1hdENoZWNrYm94SG9zdCgpOiBQcm9taXNlPFRlc3RFbGVtZW50PiB7XG4gICAgICAgIGNvbnN0IGNoZWNrYm94ID0gYXdhaXQgdGhpcy5nZXRNYXRDaGVja2JveCgpO1xuICAgICAgICByZXR1cm4gY2hlY2tib3guaG9zdCgpO1xuICAgIH1cblxuICAgIGFzeW5jIGdldEFsbE1hdENoZWNrYm94ZXMoKTogUHJvbWlzZTxNYXRDaGVja2JveEhhcm5lc3NbXT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5sb2FkZXIuZ2V0QWxsSGFybmVzc2VzKE1hdENoZWNrYm94SGFybmVzcyk7XG4gICAgfVxuXG4gICAgYXN5bmMgY2hlY2tJZk1hdENoZWNrYm94SXNDaGVja2VkKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgICAgICBjb25zdCBjaGVja2JveCA9IGF3YWl0IHRoaXMuZ2V0TWF0Q2hlY2tib3goKTtcbiAgICAgICAgcmV0dXJuIGNoZWNrYm94LmlzQ2hlY2tlZCgpO1xuICAgIH1cblxuICAgIGFzeW5jIGNoZWNrSWZNYXRDaGVja2JveGVzSGF2ZUNsYXNzKGNsYXNzTmFtZTogc3RyaW5nKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgICAgIGNvbnN0IGNoZWNrYm94ZXMgPSBhd2FpdCB0aGlzLmdldEFsbE1hdENoZWNrYm94ZXMoKTtcbiAgICAgICAgcmV0dXJuIGNoZWNrYm94ZXMuZXZlcnkoYXN5bmMgKGNoZWNrYm94KSA9PiAoYXdhaXQgY2hlY2tib3guaG9zdCgpKS5oYXNDbGFzcyhjbGFzc05hbWUpKTtcbiAgICB9XG5cbiAgICBhc3luYyBob3Zlck92ZXJNYXRDaGVja2JveCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgY29uc3QgaG9zdCA9IGF3YWl0IHRoaXMuZ2V0TWF0Q2hlY2tib3hIb3N0KCk7XG4gICAgICAgIGF3YWl0IGhvc3QuaG92ZXIoKTtcbiAgICB9XG5cbiAgICAvKiogTWF0SWNvbiByZWxhdGVkIG1ldGhvZHMgKi9cblxuICAgIGFzeW5jIGdldE1hdEljb25Pck51bGwoKTogUHJvbWlzZTxNYXRJY29uSGFybmVzcz4ge1xuICAgICAgICByZXR1cm4gdGhpcy5sb2FkZXIuZ2V0SGFybmVzc09yTnVsbChNYXRJY29uSGFybmVzcyk7XG4gICAgfVxuXG4gICAgYXN5bmMgZ2V0TWF0SWNvbldpdGhBbmNlc3RvckJ5RGF0YUF1dG9tYXRpb25JZChkYXRhQXV0b21hdGlvbklkOiBzdHJpbmcpOiBQcm9taXNlPE1hdEljb25IYXJuZXNzPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmxvYWRlci5nZXRIYXJuZXNzKE1hdEljb25IYXJuZXNzLndpdGgoeyBhbmNlc3RvcjogYFtkYXRhLWF1dG9tYXRpb24taWQ9XCIke2RhdGFBdXRvbWF0aW9uSWR9XCJdYCB9KSk7XG4gICAgfVxuXG4gICAgYXN5bmMgZ2V0TWF0SWNvbldpdGhBbmNlc3RvckJ5Q1NTKHNlbGVjdG9yOiBzdHJpbmcpOiBQcm9taXNlPE1hdEljb25IYXJuZXNzPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmxvYWRlci5nZXRIYXJuZXNzKE1hdEljb25IYXJuZXNzLndpdGgoeyBhbmNlc3Rvcjogc2VsZWN0b3IgfSkpO1xuICAgIH1cblxuICAgIGFzeW5jIGdldE1hdEljb25XaXRoQW5jZXN0b3JCeUNTU0FuZE5hbWUoc2VsZWN0b3I6IHN0cmluZywgbmFtZTogc3RyaW5nKTogUHJvbWlzZTxNYXRJY29uSGFybmVzcz4ge1xuICAgICAgICByZXR1cm4gdGhpcy5sb2FkZXIuZ2V0SGFybmVzcyhNYXRJY29uSGFybmVzcy53aXRoKHsgYW5jZXN0b3I6IHNlbGVjdG9yLCBuYW1lIH0pKTtcbiAgICB9XG5cbiAgICBhc3luYyBjaGVja0lmTWF0SWNvbkV4aXN0c1dpdGhBbmNlc3RvckJ5RGF0YUF1dG9tYXRpb25JZChkYXRhQXV0b21hdGlvbklkOiBzdHJpbmcpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMubG9hZGVyLmhhc0hhcm5lc3MoTWF0SWNvbkhhcm5lc3Mud2l0aCh7IGFuY2VzdG9yOiBgW2RhdGEtYXV0b21hdGlvbi1pZD1cIiR7ZGF0YUF1dG9tYXRpb25JZH1cIl1gIH0pKTtcbiAgICB9XG5cbiAgICBhc3luYyBjaGVja0lmTWF0SWNvbkV4aXN0c1dpdGhBbmNlc3RvckJ5Q1NTQW5kTmFtZShzZWxlY3Rvcjogc3RyaW5nLCBuYW1lOiBzdHJpbmcpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMubG9hZGVyLmhhc0hhcm5lc3MoTWF0SWNvbkhhcm5lc3Mud2l0aCh7IGFuY2VzdG9yOiBzZWxlY3RvciwgbmFtZSB9KSk7XG4gICAgfVxuXG4gICAgYXN5bmMgY2xpY2tNYXRJY29uV2l0aEFuY2VzdG9yQnlEYXRhQXV0b21hdGlvbklkKGRhdGFBdXRvbWF0aW9uSWQ6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBjb25zdCBpY29uID0gYXdhaXQgdGhpcy5nZXRNYXRJY29uV2l0aEFuY2VzdG9yQnlEYXRhQXV0b21hdGlvbklkKGRhdGFBdXRvbWF0aW9uSWQpO1xuICAgICAgICBjb25zdCBob3N0ID0gYXdhaXQgaWNvbi5ob3N0KCk7XG4gICAgICAgIGF3YWl0IGhvc3QuY2xpY2soKTtcbiAgICB9XG5cbiAgICAvKiogTWF0U2VsZWN0IHJlbGF0ZWQgbWV0aG9kcyAqL1xuXG4gICAgYXN5bmMgZ2V0TWF0U2VsZWN0T3B0aW9ucyhpc09wZW5lZCA9IGZhbHNlKTogUHJvbWlzZTxNYXRPcHRpb25IYXJuZXNzW10+IHtcbiAgICAgICAgY29uc3Qgc2VsZWN0ID0gYXdhaXQgdGhpcy5sb2FkZXIuZ2V0SGFybmVzcyhNYXRTZWxlY3RIYXJuZXNzKTtcbiAgICAgICAgaWYgKCFpc09wZW5lZCkge1xuICAgICAgICAgICAgYXdhaXQgc2VsZWN0Lm9wZW4oKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gc2VsZWN0LmdldE9wdGlvbnMoKTtcbiAgICB9XG5cbiAgICBhc3luYyBnZXRNYXRTZWxlY3RIb3N0KCk6IFByb21pc2U8VGVzdEVsZW1lbnQ+IHtcbiAgICAgICAgY29uc3Qgc2VsZWN0ID0gYXdhaXQgdGhpcy5sb2FkZXIuZ2V0SGFybmVzcyhNYXRTZWxlY3RIYXJuZXNzKTtcbiAgICAgICAgcmV0dXJuIHNlbGVjdC5ob3N0KCk7XG4gICAgfVxuXG4gICAgYXN5bmMgY2hlY2tJZk1hdFNlbGVjdEV4aXN0cygpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMubG9hZGVyLmhhc0hhcm5lc3MoTWF0U2VsZWN0SGFybmVzcyk7XG4gICAgfVxuXG4gICAgYXN5bmMgb3Blbk1hdFNlbGVjdCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgY29uc3Qgc2VsZWN0ID0gYXdhaXQgdGhpcy5sb2FkZXIuZ2V0SGFybmVzcyhNYXRTZWxlY3RIYXJuZXNzKTtcbiAgICAgICAgYXdhaXQgc2VsZWN0Lm9wZW4oKTtcbiAgICB9XG5cbiAgICAvKiogTWF0Q2hpcHMgcmVsYXRlZCBtZXRob2RzICovXG5cbiAgICBhc3luYyBnZXRNYXRDaGlwQnlEYXRhQXV0b21hdGlvbklkKGRhdGFBdXRvbWF0aW9uSWQ6IHN0cmluZyk6IFByb21pc2U8TWF0Q2hpcEhhcm5lc3M+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMubG9hZGVyLmdldEhhcm5lc3MoTWF0Q2hpcEhhcm5lc3Mud2l0aCh7IHNlbGVjdG9yOiBgW2RhdGEtYXV0b21hdGlvbi1pZD1cIiR7ZGF0YUF1dG9tYXRpb25JZH1cIl1gIH0pKTtcbiAgICB9XG5cbiAgICBhc3luYyBjaGVja0lmTWF0Q2hpcEV4aXN0c1dpdGhEYXRhQXV0b21hdGlvbklkKGRhdGFBdXRvbWF0aW9uSWQ6IHN0cmluZyk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5sb2FkZXIuaGFzSGFybmVzcyhNYXRDaGlwSGFybmVzcy53aXRoKHsgc2VsZWN0b3I6IGBbZGF0YS1hdXRvbWF0aW9uLWlkPVwiJHtkYXRhQXV0b21hdGlvbklkfVwiXWAgfSkpO1xuICAgIH1cblxuICAgIGFzeW5jIGNsaWNrTWF0Q2hpcChkYXRhQXV0b21hdGlvbklkOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgY29uc3QgY2hpcCA9IGF3YWl0IHRoaXMuZ2V0TWF0Q2hpcEJ5RGF0YUF1dG9tYXRpb25JZChkYXRhQXV0b21hdGlvbklkKTtcbiAgICAgICAgY29uc3QgaG9zdCA9IGF3YWl0IGNoaXAuaG9zdCgpO1xuICAgICAgICBhd2FpdCBob3N0LmNsaWNrKCk7XG4gICAgfVxuXG4gICAgYXN5bmMgZ2V0TWF0Q2hpcHMoKTogUHJvbWlzZTxNYXRDaGlwSGFybmVzc1tdPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmxvYWRlci5nZXRBbGxIYXJuZXNzZXMoTWF0Q2hpcEhhcm5lc3MpO1xuICAgIH1cblxuICAgIC8qKiBNYXRDaGlwTGlzdGJveCByZWxhdGVkIG1ldGhvZHMgKi9cblxuICAgIGFzeW5jIGdldE1hdENoaXBMaXN0Ym94QnlEYXRhQXV0b21hdGlvbklkKGRhdGFBdXRvbWF0aW9uSWQ6IHN0cmluZyk6IFByb21pc2U8TWF0Q2hpcExpc3Rib3hIYXJuZXNzPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmxvYWRlci5nZXRIYXJuZXNzKE1hdENoaXBMaXN0Ym94SGFybmVzcy53aXRoKHsgc2VsZWN0b3I6IGBbZGF0YS1hdXRvbWF0aW9uLWlkPVwiJHtkYXRhQXV0b21hdGlvbklkfVwiXWAgfSkpO1xuICAgIH1cblxuICAgIGFzeW5jIGNsaWNrTWF0Q2hpcExpc3Rib3goZGF0YUF1dG9tYXRpb25JZDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGNvbnN0IGNoaXBMaXN0ID0gYXdhaXQgdGhpcy5nZXRNYXRDaGlwTGlzdGJveEJ5RGF0YUF1dG9tYXRpb25JZChkYXRhQXV0b21hdGlvbklkKTtcbiAgICAgICAgY29uc3QgaG9zdCA9IGF3YWl0IGNoaXBMaXN0Lmhvc3QoKTtcbiAgICAgICAgYXdhaXQgaG9zdC5jbGljaygpO1xuICAgIH1cblxuICAgIC8qKiBNYXRDaGlwR3JpZCByZWxhdGVkIG1ldGhvZHMgKi9cblxuICAgIGFzeW5jIGNoZWNrSWZNYXRDaGlwR3JpZEV4aXN0cygpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMubG9hZGVyLmhhc0hhcm5lc3MoTWF0Q2hpcEdyaWRIYXJuZXNzKTtcbiAgICB9XG5cbiAgICAvKiogTWF0RnJvbUZpZWxkIHJlbGF0ZWQgbWV0aG9kcyAqL1xuXG4gICAgYXN5bmMgZ2V0TWF0Rm9ybUZpZWxkKCk6IFByb21pc2U8TWF0Rm9ybUZpZWxkSGFybmVzcz4ge1xuICAgICAgICByZXR1cm4gdGhpcy5sb2FkZXIuZ2V0SGFybmVzcyhNYXRGb3JtRmllbGRIYXJuZXNzKTtcbiAgICB9XG5cbiAgICBhc3luYyBnZXRNYXRGb3JtRmllbGRCeUNTUyhzZWxlY3Rvcjogc3RyaW5nKTogUHJvbWlzZTxNYXRGb3JtRmllbGRIYXJuZXNzPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmxvYWRlci5nZXRIYXJuZXNzKE1hdEZvcm1GaWVsZEhhcm5lc3Mud2l0aCh7IHNlbGVjdG9yIH0pKTtcbiAgICB9XG5cbiAgICAvKiogTWF0SW5wdXQgcmVsYXRlZCBtZXRob2RzICovXG5cbiAgICBhc3luYyBnZXRNYXRJbnB1dCgpOiBQcm9taXNlPE1hdElucHV0SGFybmVzcz4ge1xuICAgICAgICByZXR1cm4gdGhpcy5sb2FkZXIuZ2V0SGFybmVzcyhNYXRJbnB1dEhhcm5lc3MpO1xuICAgIH1cblxuICAgIGFzeW5jIGdldE1hdElucHV0QnlDU1Moc2VsZWN0b3I6IHN0cmluZyk6IFByb21pc2U8TWF0SW5wdXRIYXJuZXNzPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmxvYWRlci5nZXRIYXJuZXNzKE1hdElucHV0SGFybmVzcy53aXRoKHsgc2VsZWN0b3IgfSkpO1xuICAgIH1cblxuICAgIGFzeW5jIGdldE1hdElucHV0QnlEYXRhQXV0b21hdGlvbklkKGRhdGFBdXRvbWF0aW9uSWQ6IHN0cmluZyk6IFByb21pc2U8TWF0SW5wdXRIYXJuZXNzPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmxvYWRlci5nZXRIYXJuZXNzKE1hdElucHV0SGFybmVzcy53aXRoKHsgc2VsZWN0b3I6IGBbZGF0YS1hdXRvbWF0aW9uLWlkPVwiJHtkYXRhQXV0b21hdGlvbklkfVwiXWAgfSkpO1xuICAgIH1cblxuICAgIGFzeW5jIGdldE1hdElucHV0QnlQbGFjZWhvbGRlcihwbGFjZWhvbGRlcjogc3RyaW5nKTogUHJvbWlzZTxNYXRJbnB1dEhhcm5lc3M+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMubG9hZGVyLmdldEhhcm5lc3MoTWF0SW5wdXRIYXJuZXNzLndpdGgoeyBwbGFjZWhvbGRlciB9KSk7XG4gICAgfVxuXG4gICAgYXN5bmMgZ2V0TWF0SW5wdXRIb3N0KCk6IFByb21pc2U8VGVzdEVsZW1lbnQ+IHtcbiAgICAgICAgY29uc3QgaW5wdXQgPSBhd2FpdCB0aGlzLmdldE1hdElucHV0KCk7XG4gICAgICAgIHJldHVybiBpbnB1dC5ob3N0KCk7XG4gICAgfVxuXG4gICAgYXN5bmMgY2hlY2tJZk1hdElucHV0RXhpc3RzKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5sb2FkZXIuaGFzSGFybmVzcyhNYXRJbnB1dEhhcm5lc3MpO1xuICAgIH1cblxuICAgIGFzeW5jIGNoZWNrSWZNYXRJbnB1dEV4aXN0c1dpdGhDU1Moc2VsZWN0b3I6IHN0cmluZyk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5sb2FkZXIuaGFzSGFybmVzcyhNYXRJbnB1dEhhcm5lc3Mud2l0aCh7IHNlbGVjdG9yIH0pKTtcbiAgICB9XG5cbiAgICBhc3luYyBjaGVja0lmTWF0SW5wdXRFeGlzdHNXaXRoRGF0YUF1dG9tYXRpb25JZChkYXRhQXV0b21hdGlvbklkOiBzdHJpbmcpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMubG9hZGVyLmhhc0hhcm5lc3MoTWF0SW5wdXRIYXJuZXNzLndpdGgoeyBzZWxlY3RvcjogYFtkYXRhLWF1dG9tYXRpb24taWQ9XCIke2RhdGFBdXRvbWF0aW9uSWR9XCJdYCB9KSk7XG4gICAgfVxuXG4gICAgYXN5bmMgY2hlY2tJZk1hdElucHV0RXhpc3RzV2l0aFBsYWNlaG9sZGVyKHBsYWNlaG9sZGVyOiBzdHJpbmcpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMubG9hZGVyLmhhc0hhcm5lc3MoTWF0SW5wdXRIYXJuZXNzLndpdGgoeyBwbGFjZWhvbGRlciB9KSk7XG4gICAgfVxuXG4gICAgYXN5bmMgY2xpY2tNYXRJbnB1dCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgY29uc3QgaW5wdXQgPSBhd2FpdCB0aGlzLmdldE1hdElucHV0KCk7XG4gICAgICAgIGNvbnN0IGhvc3QgPSBhd2FpdCBpbnB1dC5ob3N0KCk7XG4gICAgICAgIGF3YWl0IGhvc3QuY2xpY2soKTtcbiAgICB9XG5cbiAgICBhc3luYyBmaWxsTWF0SW5wdXQodmFsdWU6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBjb25zdCBpbnB1dCA9IGF3YWl0IHRoaXMuZ2V0TWF0SW5wdXQoKTtcbiAgICAgICAgYXdhaXQgaW5wdXQuc2V0VmFsdWUodmFsdWUpO1xuICAgIH1cblxuICAgIGFzeW5jIGZpbGxNYXRJbnB1dEJ5Q1NTKHNlbGVjdG9yOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgY29uc3QgaW5wdXQgPSBhd2FpdCB0aGlzLmdldE1hdElucHV0QnlDU1Moc2VsZWN0b3IpO1xuICAgICAgICBhd2FpdCBpbnB1dC5zZXRWYWx1ZSh2YWx1ZSk7XG4gICAgfVxuXG4gICAgYXN5bmMgZmlsbE1hdElucHV0QnlEYXRhQXV0b21hdGlvbklkKGRhdGFBdXRvbWF0aW9uSWQ6IHN0cmluZywgdmFsdWU6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBjb25zdCBpbnB1dCA9IGF3YWl0IHRoaXMuZ2V0TWF0SW5wdXRCeURhdGFBdXRvbWF0aW9uSWQoZGF0YUF1dG9tYXRpb25JZCk7XG4gICAgICAgIGF3YWl0IGlucHV0LnNldFZhbHVlKHZhbHVlKTtcbiAgICAgICAgYXdhaXQgKGF3YWl0IGlucHV0Lmhvc3QoKSkuZGlzcGF0Y2hFdmVudCgnaW5wdXQnKTtcbiAgICB9XG5cbiAgICBhc3luYyBmb2N1c01hdElucHV0KCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBjb25zdCBpbnB1dCA9IGF3YWl0IHRoaXMuZ2V0TWF0SW5wdXQoKTtcbiAgICAgICAgYXdhaXQgaW5wdXQuZm9jdXMoKTtcbiAgICB9XG5cbiAgICBhc3luYyBibHVyTWF0SW5wdXQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGNvbnN0IGlucHV0ID0gYXdhaXQgdGhpcy5nZXRNYXRJbnB1dCgpO1xuICAgICAgICBhd2FpdCBpbnB1dC5ibHVyKCk7XG4gICAgfVxuXG4gICAgYXN5bmMgZ2V0TWF0SW5wdXRWYWx1ZSgpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgICAgICBjb25zdCBpbnB1dCA9IGF3YWl0IHRoaXMuZ2V0TWF0SW5wdXQoKTtcbiAgICAgICAgcmV0dXJuIGlucHV0LmdldFZhbHVlKCk7XG4gICAgfVxuXG4gICAgYXN5bmMgZ2V0TWF0SW5wdXRWYWx1ZUJ5RGF0YUF1dG9tYXRpb25JZChkYXRhQXV0b21hdGlvbklkOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgICAgICBjb25zdCBpbnB1dCA9IGF3YWl0IHRoaXMuZ2V0TWF0SW5wdXRCeURhdGFBdXRvbWF0aW9uSWQoZGF0YUF1dG9tYXRpb25JZCk7XG4gICAgICAgIHJldHVybiBpbnB1dC5nZXRWYWx1ZSgpO1xuICAgIH1cblxuICAgIGFzeW5jIHNlbmRLZXlzVG9NYXRJbnB1dChrZXlzOiAoc3RyaW5nIHwgVGVzdEtleSlbXSk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBjb25zdCBpbnB1dCA9IGF3YWl0IHRoaXMuZ2V0TWF0SW5wdXQoKTtcbiAgICAgICAgY29uc3QgaG9zdCA9IGF3YWl0IGlucHV0Lmhvc3QoKTtcbiAgICAgICAgYXdhaXQgaG9zdC5zZW5kS2V5cyguLi5rZXlzKTtcbiAgICB9XG5cbiAgICAvKiogTWF0QXV0b0NvbXBsZXRlIHJlbGF0ZWQgbWV0aG9kcyAqL1xuXG4gICAgYXN5bmMgdHlwZUFuZEdldE9wdGlvbnNGb3JNYXRBdXRvQ29tcGxldGUoZml4dHVyZTogQ29tcG9uZW50Rml4dHVyZTxhbnk+LCB2YWx1ZTogc3RyaW5nKTogUHJvbWlzZTxNYXRPcHRpb25IYXJuZXNzW10+IHtcbiAgICAgICAgY29uc3QgYXV0b2NvbXBsZXRlID0gYXdhaXQgdGhpcy5sb2FkZXIuZ2V0SGFybmVzcyhNYXRBdXRvY29tcGxldGVIYXJuZXNzKTtcbiAgICAgICAgYXdhaXQgYXV0b2NvbXBsZXRlLmVudGVyVGV4dCh2YWx1ZSk7XG4gICAgICAgIGZpeHR1cmUuZGV0ZWN0Q2hhbmdlcygpO1xuXG4gICAgICAgIHJldHVybiBhdXRvY29tcGxldGUuZ2V0T3B0aW9ucygpO1xuICAgIH1cblxuICAgIC8qKiBNYXRFcnJvciByZWxhdGVkIG1ldGhvZHMgKi9cblxuICAgIGFzeW5jIGdldE1hdEVycm9yQnlDU1Moc2VsZWN0b3I6IHN0cmluZyk6IFByb21pc2U8TWF0RXJyb3JIYXJuZXNzPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmxvYWRlci5nZXRIYXJuZXNzKE1hdEVycm9ySGFybmVzcy53aXRoKHsgc2VsZWN0b3IgfSkpO1xuICAgIH1cblxuICAgIGFzeW5jIGdldE1hdEVycm9yQnlEYXRhQXV0b21hdGlvbklkKGRhdGFBdXRvbWF0aW9uSWQ6IHN0cmluZyk6IFByb21pc2U8TWF0RXJyb3JIYXJuZXNzPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmxvYWRlci5nZXRIYXJuZXNzKE1hdEVycm9ySGFybmVzcy53aXRoKHsgc2VsZWN0b3I6IGBbZGF0YS1hdXRvbWF0aW9uLWlkPVwiJHtkYXRhQXV0b21hdGlvbklkfVwiXWAgfSkpO1xuICAgIH1cblxuICAgIC8qKiBNYXRUYWJHcm91cCByZWxhdGVkIG1ldGhvZHMgKi9cblxuICAgIGFzeW5jIGdldFNlbGVjdGVkVGFiRnJvbU1hdFRhYkdyb3VwKCk6IFByb21pc2U8TWF0VGFiSGFybmVzcz4ge1xuICAgICAgICBjb25zdCB0YWJzID0gYXdhaXQgdGhpcy5sb2FkZXIuZ2V0SGFybmVzcyhNYXRUYWJHcm91cEhhcm5lc3MpO1xuICAgICAgICByZXR1cm4gdGFicy5nZXRTZWxlY3RlZFRhYigpO1xuICAgIH1cblxuICAgIGFzeW5jIGdldFNlbGVjdGVkVGFiTGFiZWxGcm9tTWF0VGFiR3JvdXAoKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICAgICAgY29uc3QgdGFiID0gYXdhaXQgdGhpcy5nZXRTZWxlY3RlZFRhYkZyb21NYXRUYWJHcm91cCgpO1xuICAgICAgICByZXR1cm4gdGFiLmdldExhYmVsKCk7XG4gICAgfVxuXG4gICAgLyoqIE1hdFRvb2xiYXIgcmVsYXRlZCBtZXRob2RzICovXG5cbiAgICBhc3luYyBnZXRNYXRUb29sYmFySG9zdCgpOiBQcm9taXNlPFRlc3RFbGVtZW50PiB7XG4gICAgICAgIGNvbnN0IHRvb2xiYXIgPSBhd2FpdCB0aGlzLmxvYWRlci5nZXRIYXJuZXNzKE1hdFRvb2xiYXJIYXJuZXNzKTtcbiAgICAgICAgcmV0dXJuIHRvb2xiYXIuaG9zdCgpO1xuICAgIH1cblxuICAgIC8qKiBNYXRTbmFja2JhciByZWxhdGVkIG1ldGhvZHMgKi9cblxuICAgIGFzeW5jIGNoZWNrSWZNYXRTbmFja2JhckV4aXN0cygpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMubG9hZGVyLmhhc0hhcm5lc3MoTWF0U25hY2tCYXJIYXJuZXNzKTtcbiAgICB9XG5cbiAgICAvKiogTWF0UHJvZ3Jlc3NCYXIgcmVsYXRlZCBtZXRob2RzICovXG5cbiAgICBhc3luYyBnZXRNYXRQcm9ncmVzc0Jhckhvc3QoKTogUHJvbWlzZTxUZXN0RWxlbWVudD4ge1xuICAgICAgICBjb25zdCBwcm9ncmVzcyA9IGF3YWl0IHRoaXMubG9hZGVyLmdldEhhcm5lc3MoTWF0UHJvZ3Jlc3NCYXJIYXJuZXNzKTtcbiAgICAgICAgcmV0dXJuIHByb2dyZXNzLmhvc3QoKTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
* you may not use this file except in compliance with the License.
|
|
7
|
+
* You may obtain a copy of the License at
|
|
8
|
+
*
|
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
*
|
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
* See the License for the specific language governing permissions and
|
|
15
|
+
* limitations under the License.
|
|
16
|
+
*/
|
|
17
|
+
import { provideTranslateService, TranslateLoader } from '@ngx-translate/core';
|
|
18
|
+
import { TranslateLoaderService } from './translate-loader.service';
|
|
19
|
+
import { HttpClient } from '@angular/common/http';
|
|
20
|
+
import { provideTranslations } from './translation.service';
|
|
21
|
+
/**
|
|
22
|
+
* Provides the i18n service.
|
|
23
|
+
* This function is used to provide the i18n service in the application.
|
|
24
|
+
* It is recommended to use this function in the top-level `AppModule` to ensure that the i18n service is available throughout the application.
|
|
25
|
+
*
|
|
26
|
+
* @param config - Configuration for the i18n service.
|
|
27
|
+
* @param config.assets - An array of assets to be used for i18n, where each asset is a tuple containing an identifier and a path.
|
|
28
|
+
* @returns An array of providers for the i18n service.
|
|
29
|
+
*/
|
|
30
|
+
export function provideI18N(config) {
|
|
31
|
+
const result = [
|
|
32
|
+
provideTranslateService({
|
|
33
|
+
loader: {
|
|
34
|
+
provide: TranslateLoader,
|
|
35
|
+
useExisting: TranslateLoaderService,
|
|
36
|
+
deps: [HttpClient]
|
|
37
|
+
},
|
|
38
|
+
defaultLanguage: config?.defaultLanguage || 'en'
|
|
39
|
+
})
|
|
40
|
+
];
|
|
41
|
+
if (config?.assets) {
|
|
42
|
+
config.assets.forEach(([id, path]) => {
|
|
43
|
+
result.push(provideTranslations(id, path));
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
return result;
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZS1pMThuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGliL2NvcmUvc3JjL2xpYi90cmFuc2xhdGlvbi9wcm92aWRlLWkxOG4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBR0gsT0FBTyxFQUFFLHVCQUF1QixFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQy9FLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQWU1RDs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sVUFBVSxXQUFXLENBQUMsTUFBMEI7SUFDbEQsTUFBTSxNQUFNLEdBQXdDO1FBQ2hELHVCQUF1QixDQUFDO1lBQ3BCLE1BQU0sRUFBRTtnQkFDSixPQUFPLEVBQUUsZUFBZTtnQkFDeEIsV0FBVyxFQUFFLHNCQUFzQjtnQkFDbkMsSUFBSSxFQUFFLENBQUMsVUFBVSxDQUFDO2FBQ3JCO1lBQ0QsZUFBZSxFQUFFLE1BQU0sRUFBRSxlQUFlLElBQUksSUFBSTtTQUNuRCxDQUFDO0tBQ0wsQ0FBQztJQUVGLElBQUksTUFBTSxFQUFFLE1BQU0sRUFBRSxDQUFDO1FBQ2pCLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRTtZQUNqQyxNQUFNLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQy9DLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELE9BQU8sTUFBTSxDQUFDO0FBQ2xCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI1IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IEVudmlyb25tZW50UHJvdmlkZXJzLCBQcm92aWRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgcHJvdmlkZVRyYW5zbGF0ZVNlcnZpY2UsIFRyYW5zbGF0ZUxvYWRlciB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTG9hZGVyU2VydmljZSB9IGZyb20gJy4vdHJhbnNsYXRlLWxvYWRlci5zZXJ2aWNlJztcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBwcm92aWRlVHJhbnNsYXRpb25zIH0gZnJvbSAnLi90cmFuc2xhdGlvbi5zZXJ2aWNlJztcblxuZXhwb3J0IGludGVyZmFjZSBQcm92aWRlSTE4TkNvbmZpZyB7XG4gICAgLyoqXG4gICAgICogVGhlIGRlZmF1bHQgbGFuZ3VhZ2UgdG8gdXNlIGZvciB0cmFuc2xhdGlvbnMuXG4gICAgICogSWYgbm90IHByb3ZpZGVkLCBpdCBkZWZhdWx0cyB0byAnZW4nLlxuICAgICAqL1xuICAgIGRlZmF1bHRMYW5ndWFnZT86IHN0cmluZztcbiAgICAvKipcbiAgICAgKiBBbiBhcnJheSBvZiBhc3NldHMgdG8gYmUgdXNlZCBmb3IgaTE4biwgd2hlcmUgZWFjaCBhc3NldCBpcyBhIHR1cGxlIGNvbnRhaW5pbmcgYW4gaWRlbnRpZmllciBhbmQgYSBwYXRoLlxuICAgICAqIEV4YW1wbGU6IFtbJ2VuJywgJy9hc3NldHMvaTE4bi9lbi5qc29uJ10sIFsnZnInLCAnL2Fzc2V0cy9pMThuL2ZyLmpzb24nXV1cbiAgICAgKi9cbiAgICBhc3NldHM/OiBbc3RyaW5nLCBzdHJpbmddW107XG59XG5cbi8qKlxuICogUHJvdmlkZXMgdGhlIGkxOG4gc2VydmljZS5cbiAqIFRoaXMgZnVuY3Rpb24gaXMgdXNlZCB0byBwcm92aWRlIHRoZSBpMThuIHNlcnZpY2UgaW4gdGhlIGFwcGxpY2F0aW9uLlxuICogSXQgaXMgcmVjb21tZW5kZWQgdG8gdXNlIHRoaXMgZnVuY3Rpb24gaW4gdGhlIHRvcC1sZXZlbCBgQXBwTW9kdWxlYCB0byBlbnN1cmUgdGhhdCB0aGUgaTE4biBzZXJ2aWNlIGlzIGF2YWlsYWJsZSB0aHJvdWdob3V0IHRoZSBhcHBsaWNhdGlvbi5cbiAqXG4gKiBAcGFyYW0gY29uZmlnIC0gQ29uZmlndXJhdGlvbiBmb3IgdGhlIGkxOG4gc2VydmljZS5cbiAqIEBwYXJhbSBjb25maWcuYXNzZXRzIC0gQW4gYXJyYXkgb2YgYXNzZXRzIHRvIGJlIHVzZWQgZm9yIGkxOG4sIHdoZXJlIGVhY2ggYXNzZXQgaXMgYSB0dXBsZSBjb250YWluaW5nIGFuIGlkZW50aWZpZXIgYW5kIGEgcGF0aC5cbiAqIEByZXR1cm5zIEFuIGFycmF5IG9mIHByb3ZpZGVycyBmb3IgdGhlIGkxOG4gc2VydmljZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVJMThOKGNvbmZpZz86IFByb3ZpZGVJMThOQ29uZmlnKTogKFByb3ZpZGVyIHwgRW52aXJvbm1lbnRQcm92aWRlcnMpW10ge1xuICAgIGNvbnN0IHJlc3VsdDogKFByb3ZpZGVyIHwgRW52aXJvbm1lbnRQcm92aWRlcnMpW10gPSBbXG4gICAgICAgIHByb3ZpZGVUcmFuc2xhdGVTZXJ2aWNlKHtcbiAgICAgICAgICAgIGxvYWRlcjoge1xuICAgICAgICAgICAgICAgIHByb3ZpZGU6IFRyYW5zbGF0ZUxvYWRlcixcbiAgICAgICAgICAgICAgICB1c2VFeGlzdGluZzogVHJhbnNsYXRlTG9hZGVyU2VydmljZSxcbiAgICAgICAgICAgICAgICBkZXBzOiBbSHR0cENsaWVudF1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBkZWZhdWx0TGFuZ3VhZ2U6IGNvbmZpZz8uZGVmYXVsdExhbmd1YWdlIHx8ICdlbidcbiAgICAgICAgfSlcbiAgICBdO1xuXG4gICAgaWYgKGNvbmZpZz8uYXNzZXRzKSB7XG4gICAgICAgIGNvbmZpZy5hc3NldHMuZm9yRWFjaCgoW2lkLCBwYXRoXSkgPT4ge1xuICAgICAgICAgICAgcmVzdWx0LnB1c2gocHJvdmlkZVRyYW5zbGF0aW9ucyhpZCwgcGF0aCkpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xufVxuIl19
|
|
@@ -16,4 +16,5 @@
|
|
|
16
16
|
*/
|
|
17
17
|
export * from './translation.service';
|
|
18
18
|
export * from './translate-loader.service';
|
|
19
|
-
|
|
19
|
+
export * from './provide-i18n';
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYi9jb3JlL3NyYy9saWIvdHJhbnNsYXRpb24vcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFFSCxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyxnQkFBZ0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjUgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi90cmFuc2xhdGlvbi5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vdHJhbnNsYXRlLWxvYWRlci5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vcHJvdmlkZS1pMThuJztcbiJdfQ==
|
package/esm2022/public-api.mjs
CHANGED
|
@@ -23,6 +23,7 @@ export * from './lib/toolbar/index';
|
|
|
23
23
|
export * from './lib/header/index';
|
|
24
24
|
export * from './lib/pagination/index';
|
|
25
25
|
export * from './lib/login/index';
|
|
26
|
+
export * from './lib/landing-page/index';
|
|
26
27
|
export * from './lib/language-menu/index';
|
|
27
28
|
export * from './lib/info-drawer/index';
|
|
28
29
|
export * from './lib/identity-user-info/index';
|
|
@@ -57,4 +58,4 @@ export * from './lib/auth';
|
|
|
57
58
|
export * from './lib/common';
|
|
58
59
|
export * from './lib/core.module';
|
|
59
60
|
export * from './lib/material.module';
|
|
60
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
61
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9jb3JlL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUVILGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsZUFBZSxDQUFDO0FBRTlCLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMsY0FBYyxDQUFDO0FBRTdCLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyx1QkFBdUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjUgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9saWIvYWJvdXQvaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYXZhdGFyL2F2YXRhci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYnV0dG9uL2J1dHRvbi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcHJvZ3Jlc3MvcHJvZ3Jlc3MuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3ZpZXdlci9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi90b29sYmFyL2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2hlYWRlci9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9wYWdpbmF0aW9uL2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2xvZ2luL2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2xhbmRpbmctcGFnZS9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9sYW5ndWFnZS1tZW51L2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2luZm8tZHJhd2VyL2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2lkZW50aXR5LXVzZXItaW5mby9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kYXRhdGFibGUvZGF0YS1jb2x1bW4vaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGF0YXRhYmxlL2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbnRleHQtbWVudS9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jYXJkLXZpZXcvaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYXBwLWNvbmZpZy9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9mb3JtL2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2xheW91dC9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21tZW50cy9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zb3J0aW5nLXBpY2tlci9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi90ZW1wbGF0ZXMvaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcGlwZXMvaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGlyZWN0aXZlcy9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9keW5hbWljLWNoaXAtbGlzdC9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jbGlwYm9hcmQvaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGlhbG9ncy9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9pY29uL2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL25vdGlmaWNhdGlvbnMvaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYmxhbmstcGFnZS9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZWFyY2gtdGV4dC9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zbmFja2Jhci1jb250ZW50L2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RyYW5zbGF0aW9uL2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbW1vbi91dGlscy9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9pbnRlcmZhY2UvaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2V2ZW50cy9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2NrL2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3Rlc3RpbmcnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9hdXRoJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbW1vbic7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvcmUubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21hdGVyaWFsLm1vZHVsZSc7XG4iXX0=
|