@dsivd/prestations-ng 17.4.0 → 17.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +12 -0
- package/UPGRADING_V17.md +1 -1
- package/dsivd-prestations-ng-17.5.0.tgz +0 -0
- package/esm2022/abstract-page-component.mjs +6 -1
- package/esm2022/foehn-navigation/foehn-navigation/foehn-navigation.component.mjs +8 -4
- package/esm2022/foehn-navigation/foehn-navigation.module.mjs +8 -4
- package/esm2022/foehn-navigation/foehn-navigation.service.mjs +11 -1
- package/esm2022/gesdem/gesdem-handler.service.mjs +5 -1
- package/esm2022/gesdem/gesdem-statut-utils.mjs +8 -1
- package/esm2022/public_api.mjs +2 -1
- package/esm2022/sdk-dictionary/default-dictionary.mjs +4 -1
- package/esm2022/sdk-epayment/pending-payment/pending-payment.component.mjs +24 -0
- package/esm2022/sdk-epayment/sdk-epayment.module.mjs +5 -4
- package/fesm2022/dsivd-prestations-ng.mjs +186 -132
- package/fesm2022/dsivd-prestations-ng.mjs.map +1 -1
- package/foehn-navigation/foehn-navigation/foehn-navigation.component.d.ts +1 -0
- package/foehn-navigation/foehn-navigation.module.d.ts +2 -1
- package/foehn-navigation/foehn-navigation.service.d.ts +2 -0
- package/gesdem/gesdem-handler.service.d.ts +1 -0
- package/gesdem/gesdem-statut-utils.d.ts +1 -0
- package/package.json +1 -1
- package/public_api.d.ts +1 -0
- package/sdk-epayment/pending-payment/pending-payment.component.d.ts +10 -0
- package/sdk-epayment/sdk-epayment.module.d.ts +5 -4
- package/dsivd-prestations-ng-17.4.0.tgz +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,18 @@
|
|
|
6
6
|
|
|
7
7
|
---
|
|
8
8
|
|
|
9
|
+
## [17.5.0] - must be aligned with prestations-be (17.5.0+)
|
|
10
|
+
|
|
11
|
+
### Fixed
|
|
12
|
+
- Payment management : If a payment is already ongoing (pending), the user will be redirected to the 'recap' page and will be forced to finish the payment, or explicitly cancel it.
|
|
13
|
+
- [foehn-navigation.component.html](projects/prestations-ng/src/foehn-navigation/foehn-navigation/foehn-navigation.component.html)
|
|
14
|
+
- added <sdk-pending-payment>
|
|
15
|
+
- [foehn-navigation.service.ts](projects/prestations-ng/src/foehn-navigation/foehn-navigation.service.ts)
|
|
16
|
+
- added `isForcedOnRecapForPendingPayment` to check if we are on recap for pending payment
|
|
17
|
+
- added `recap()` to redirect to recap page for pending payment
|
|
18
|
+
- [sdk-pending-payment.component.html](projects/prestations-ng/src/sdk-pending-payment/sdk-pending-payment.component.html)
|
|
19
|
+
- added a modal to inform the user that a payment is ongoing
|
|
20
|
+
|
|
9
21
|
## [17.4.0] - must be aligned with prestations-be (17.4.0+)
|
|
10
22
|
|
|
11
23
|
### Added
|
package/UPGRADING_V17.md
CHANGED
|
Binary file
|
|
@@ -71,6 +71,11 @@ export class AbstractPageComponent {
|
|
|
71
71
|
GesdemStatutUtils.isFinal(ActionStatut[statut])) {
|
|
72
72
|
this._navigation.last();
|
|
73
73
|
}
|
|
74
|
+
if (this.reference &&
|
|
75
|
+
ActionStatut[statut] ===
|
|
76
|
+
ActionStatut.PENDING_PAYMENT) {
|
|
77
|
+
this._navigation.recap();
|
|
78
|
+
}
|
|
74
79
|
});
|
|
75
80
|
// Protects the save method on the GesdemService from concurrent access.
|
|
76
81
|
this.sendForFormConcurrentSafe = getConcurrentSafeCall(() => {
|
|
@@ -220,4 +225,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
220
225
|
type: ViewChild,
|
|
221
226
|
args: [FoehnFormComponent, { static: true }]
|
|
222
227
|
}] } });
|
|
223
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtcGFnZS1jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wcm9qZWN0cy9wcmVzdGF0aW9ucy1uZy9zcmMvYWJzdHJhY3QtcGFnZS1jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILFNBQVMsRUFHVCxTQUFTLEVBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxLQUFLLEVBQWMsRUFBRSxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUMzRCxPQUFPLEVBQ0gsVUFBVSxFQUNWLEtBQUssRUFDTCxRQUFRLEVBQ1IsS0FBSyxFQUNMLEdBQUcsRUFDSCxZQUFZLEVBQ2YsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUNyRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN2RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN4RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUNyRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNuRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUNoRyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNuRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN2RSxPQUFPLEVBQUUsWUFBWSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFL0UsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDL0UsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQzs7O0FBRW5GOzs7O0dBSUc7QUFDSCxTQUFTLHFCQUFxQixDQUFJLEVBQXVCO0lBQ3JELE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUk7SUFDaEIsZ0NBQWdDO0lBQ2hDLFlBQVksQ0FBQyxHQUFHLENBQUM7SUFDakIscUVBQXFFO0lBQ3JFLFFBQVEsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ2YsOEVBQThFO0lBQzlFLDREQUE0RDtJQUM1RCxLQUFLLEVBQUUsQ0FDVixDQUFDO0FBQ04sQ0FBQztBQUdELE1BQU0sT0FBZ0IscUJBQXFCO0lBaUN2QyxZQUFzQixjQUE4QjtRQUE5QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDaEQsSUFBSSxDQUFDLGNBQWMsR0FBRyxjQUFjLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQ3hFLElBQUksQ0FBQyxtQkFBbUI7WUFDcEIsY0FBYyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUNwRCxJQUFJLENBQUMsV0FBVyxHQUFHLGNBQWMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLHNCQUFzQixDQUFDLENBQUM7UUFDdkUsSUFBSSxDQUFDLGVBQWUsR0FBRyxjQUFjLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNuRSxJQUFJLENBQUMsYUFBYSxHQUFHLGNBQWMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDckUsSUFBSSxDQUFDLHlCQUF5QixHQUFHLGNBQWMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUN4RCx3QkFBd0IsQ0FDM0IsQ0FBQztRQUNGLElBQUksQ0FBQyxxQkFBcUI7WUFDdEIsY0FBYyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUN0RCxJQUFJLENBQUMsdUJBQXVCLEdBQUcsY0FBYyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQ3RELHNCQUFzQixDQUN6QixDQUFDO1FBQ0YsSUFBSSxDQUFDLGlCQUFpQixHQUFHLGNBQWMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFFdkUsSUFBSSxDQUFDLGtCQUFrQjtZQUNuQixjQUFjLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQ3RELElBQUksQ0FBQyxvQkFBb0IsR0FBRyxjQUFjLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FDbkQsc0JBQXNCLENBQ3pCLENBQUM7UUFFRixNQUFNLEtBQUssR0FBRyxzQkFBc0IsQ0FBQyxxQkFBcUIsQ0FDdEQsY0FBYyxDQUFDLFFBQVEsQ0FDMUIsQ0FBQztRQUNGLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxJQUFJLENBQUMsbUJBQW1CO2FBQ2hELDRCQUE0QixFQUFFO2FBQzlCLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDWixJQUFJLENBQUMsU0FBUztnQkFDVixJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVk7b0JBQ2hDLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUM7WUFDcEQsTUFBTSxNQUFNLEdBQ1IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZO2dCQUNoQyxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO1lBQ2pELE1BQU0sNkJBQTZCLEdBQy9CLGNBQWMsQ0FBQyxRQUFRLENBQUMsSUFBSTtpQkFDdkIsb0NBQW9DLEtBQUssSUFBSSxDQUFDO1lBRXZELE1BQU0sWUFBWSxHQUNkLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWTtnQkFDaEMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsSUFBSTtnQkFDckMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztZQUVuRCxJQUFJLENBQUMsa0JBQWtCLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBRXJELElBQ0ksQ0FBQyw2QkFBNkI7Z0JBQzlCLElBQUksQ0FBQyxTQUFTO2dCQUNkLGlCQUFpQixDQUFDLE9BQU8sQ0FDckIsWUFBWSxDQUFDLE1BQXNCLENBQUMsQ0FDdkMsRUFDSCxDQUFDO2dCQUNDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDNUIsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBRVAsd0VBQXdFO1FBQ3hFLElBQUksQ0FBQyx5QkFBeUIsR0FBRyxxQkFBcUIsQ0FBQyxHQUFHLEVBQUU7WUFDeEQsTUFBTSxnQkFBZ0IsR0FDbEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxlQUFlLEVBQUU7Z0JBQ2xDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxNQUFNLENBQUM7WUFDL0QsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLGdCQUFnQixDQUFDLENBQUM7UUFDakUsQ0FBQyxDQUFDLENBQUM7UUFFSCw0RUFBNEU7UUFDNUUsSUFBSSxDQUFDLHNCQUFzQixHQUFHLHFCQUFxQixDQUFDLEdBQUcsRUFBRSxDQUNyRCxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsRUFBRSxDQUNqQyxDQUFDO0lBQ04sQ0FBQztJQUVELFFBQVE7UUFDSixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDaEIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDM0IsSUFBSSxDQUFDLHdCQUF3QixHQUFHLElBQUksQ0FBQyxrQkFBa0I7YUFDbEQsc0JBQXNCLEVBQUU7YUFDeEIsU0FBUyxDQUFDLFlBQVksQ0FBQyxFQUFFO1lBQ3RCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxHQUFHLFlBQVksQ0FBQztRQUN0QyxDQUFDLENBQUMsQ0FBQztRQUVQLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUUxRCxJQUFJLENBQUMsaUNBQWlDO1lBQ2xDLElBQUksQ0FBQyxjQUFjLENBQUMscUJBQXFCLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUN2RCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztnQkFDakIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLHlCQUF5QixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNsRSxDQUFDLENBQUMsQ0FBQztRQUVQLElBQUksQ0FBQyxvQ0FBb0M7WUFDckMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDNUQsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7Z0JBQ2pCLG9GQUFvRjtnQkFDcEYsSUFBSSxDQUFDLHlCQUF5QixDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUN6RCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzFCLENBQUMsQ0FBQyxDQUFDO1FBRVAsSUFBSSxDQUFDLDJCQUEyQixHQUFHLElBQUksQ0FBQyxpQkFBaUI7YUFDcEQsZUFBZSxFQUFFO2FBQ2pCLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVELGVBQWU7UUFDWCw4RUFBOEU7UUFDOUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQzVCLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDOUMsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsV0FBVztRQUNQLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxXQUFXLEVBQUUsQ0FBQztRQUM3QyxJQUFJLENBQUMscUJBQXFCLEVBQUUsV0FBVyxFQUFFLENBQUM7UUFDMUMsSUFBSSxDQUFDLGlDQUFpQyxFQUFFLFdBQVcsRUFBRSxDQUFDO1FBQ3RELElBQUksQ0FBQyxxQ0FBcUMsRUFBRSxXQUFXLEVBQUUsQ0FBQztRQUMxRCxJQUFJLENBQUMsb0NBQW9DLEVBQUUsV0FBVyxFQUFFLENBQUM7UUFDekQsSUFBSSxDQUFDLHFCQUFxQixFQUFFLFdBQVcsRUFBRSxDQUFDO1FBQzFDLElBQUksQ0FBQywyQkFBMkIsRUFBRSxXQUFXLEVBQUUsQ0FBQztJQUNwRCxDQUFDO0lBRUQsSUFBSSxDQUFDLGVBQXdCLElBQUk7UUFDN0IsSUFBSSxJQUFJLENBQUMscUJBQXFCLENBQUMsZUFBZSxFQUFFLEVBQUUsQ0FBQztZQUMvQyxZQUFZLEdBQUcsS0FBSyxDQUFDO1lBQ3JCLG9HQUFvRztRQUN4RyxDQUFDO2FBQU0sQ0FBQztZQUNKLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM3RCxDQUFDO1FBQ0QsSUFBSSxDQUFDLHlCQUF5QixDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FDMUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsQ0FDaEMsQ0FBQztJQUNOLENBQUM7SUFFRCxRQUFRO1FBQ0osSUFBSSxDQUFDLHlCQUF5QixDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pELElBQUksQ0FBQyxzQkFBc0I7YUFDdEIsSUFBSSxDQUNELEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FDTCxJQUFJLENBQUMsb0JBQW9CLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FDNUQsRUFDRCxVQUFVLENBQUMsQ0FBQyxLQUFjLEVBQUUsRUFBRTtZQUMxQixPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3JCLE9BQU8sS0FBSyxDQUFDO1FBQ2pCLENBQUMsQ0FBQyxDQUNMO2FBQ0EsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNaLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQ2xELElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQ2hELElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUNuQyxDQUFDO2dCQUNGLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDNUIsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUVELGVBQWU7UUFDWCxJQUFJLENBQUMsbUJBQW1CO2FBQ25CLGtCQUFrQixFQUFFO2FBQ3BCLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQzthQUNiLFNBQVMsQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUNsQixJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxNQUFNLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUNyRCxJQUFJLENBQUMsSUFBSSxDQUFDLG1DQUFtQyxFQUFFLEVBQUUsQ0FBQztvQkFDOUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUNwQixDQUFDO1lBQ0wsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBRVAsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNyQixDQUFDO0lBRUQsUUFBUTtRQUNKLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUVTLFlBQVksQ0FBQyxTQUFpQjtRQUNwQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQy9DLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxvQkFBb0IsQ0FBQztZQUM5QyxHQUFHLEVBQUUsSUFBSTtZQUNULFVBQVUsRUFBRSxJQUFJO1lBQ2hCLEtBQUssRUFBRSxTQUFTO1NBQ25CLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFUyxpQkFBaUIsQ0FBQyxTQUE2QjtRQUNyRCxJQUFJLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1lBQzdCLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUM3QyxDQUFDO1FBQ0QsSUFBSSxDQUFDLHFCQUFxQixHQUFHLFNBQVMsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FDckQsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FDM0IsQ0FBQztJQUNOLENBQUM7SUFFUyxVQUFVLENBQUMsWUFBcUI7UUFDdEMsSUFBSSxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztZQUMxQixnQ0FBZ0M7WUFDaEMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3BDLENBQUM7UUFFRCxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDakMsTUFBTSxPQUFPO1lBQ1QsZ0NBQWdDO1lBQ2hDLElBQUksQ0FBQyxrQkFBa0I7Z0JBQ3ZCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLEVBQUU7Z0JBQ2pDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztZQUVwRCxJQUFJLE9BQU8sRUFBRSxDQUFDO2dCQUNWLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUM5RCxDQUFDO1lBRUQsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQ3pDLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUNuQyxDQUFDO1lBRUYsSUFBSSxPQUFPLElBQUksWUFBWSxFQUFFLENBQUM7Z0JBQzFCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDNUIsQ0FBQztpQkFBTSxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO2dCQUM3QyxJQUFJLENBQUMsa0JBQWtCLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUNoRCxDQUFDO1FBQ0wsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN0QixDQUFDO0lBRU8sbUNBQW1DO1FBQ3ZDLElBQUksSUFBSSxDQUFDLHFCQUFxQixDQUFDLGVBQWUsRUFBRSxFQUFFLENBQUM7WUFDL0MsTUFBTSxpQ0FBaUMsR0FDbkMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7Z0JBQzFELGlDQUFpQyxDQUFDLFdBQVcsRUFBRSxDQUFDO2dCQUNoRCxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDcEIsQ0FBQyxDQUFDLENBQUM7WUFDUCxPQUFPLElBQUksQ0FBQztRQUNoQixDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztJQUVPLFFBQVE7UUFDWixNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUMxQixDQUFDOytHQTFRaUIscUJBQXFCO21HQUFyQixxQkFBcUIsOEVBRzVCLGtCQUFrQjs7NEZBSFgscUJBQXFCO2tCQUQxQyxTQUFTO21GQUtOLGtCQUFrQjtzQkFEakIsU0FBUzt1QkFBQyxrQkFBa0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgRGlyZWN0aXZlLFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgRU1QVFksIE9ic2VydmFibGUsIG9mLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gICAgY2F0Y2hFcnJvcixcbiAgICBmaXJzdCxcbiAgICBtZXJnZU1hcCxcbiAgICBzaGFyZSxcbiAgICB0YXAsXG4gICAgdGhyb3R0bGVUaW1lXG59IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgQnJlYWRjcnVtYkV2ZW50U2VydmljZSB9IGZyb20gJy4vZm9laG4tYnJlYWRjcnVtYi9icmVhZGNydW1iLWV2ZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgRm9laG5Gb3JtQ29tcG9uZW50IH0gZnJvbSAnLi9mb2Vobi1mb3JtL2ZvZWhuLWZvcm0uY29tcG9uZW50JztcbmltcG9ydCB7IEdyb3dsQnJva2VyU2VydmljZSB9IGZyb20gJy4vZm9laG4tZ3Jvd2wvZ3Jvd2wtYnJva2VyLnNlcnZpY2UnO1xuaW1wb3J0IHsgRm9laG5OYXZpZ2F0aW9uU2VydmljZSB9IGZyb20gJy4vZm9laG4tbmF2aWdhdGlvbi9mb2Vobi1uYXZpZ2F0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgRm9laG5QYWdlU2VydmljZSB9IGZyb20gJy4vZm9laG4tcGFnZS9mb2Vobi1wYWdlLnNlcnZpY2UnO1xuaW1wb3J0IHsgUGVuZGluZ1VwbG9hZFNlcnZpY2UgfSBmcm9tICcuL2ZvZWhuLXVwbG9hZC9mb2Vobi1tdWx0aS11cGxvYWQvcGVuZGluZy11cGxvYWQuc2VydmljZSc7XG5pbXBvcnQgeyBHZXNkZW1FdmVudFNlcnZpY2UgfSBmcm9tICcuL2dlc2RlbS9nZXNkZW0tZXZlbnQuc2VydmljZSc7XG5pbXBvcnQgeyBHZXNkZW1IYW5kbGVyU2VydmljZSB9IGZyb20gJy4vZ2VzZGVtL2dlc2RlbS1oYW5kbGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgQWN0aW9uU3RhdHV0LCBHZXNkZW1TdGF0dXRVdGlscyB9IGZyb20gJy4vZ2VzZGVtL2dlc2RlbS1zdGF0dXQtdXRpbHMnO1xuaW1wb3J0IHsgSTE4bkZvcm0gfSBmcm9tICcuL2kxOG4tZm9ybSc7XG5pbXBvcnQgeyBTZGtEaWN0aW9uYXJ5U2VydmljZSB9IGZyb20gJy4vc2RrLWRpY3Rpb25hcnkvc2RrLWRpY3Rpb25hcnkuc2VydmljZSc7XG5pbXBvcnQgeyBTZGtFdmVudFR5cGUgfSBmcm9tICcuL3Nkay1ldmVudHMtbG9nZ2VyL3Nkay1ldmVudC10eXBlJztcbmltcG9ydCB7IFNka0V2ZW50c0xvZ2dlclNlcnZpY2UgfSBmcm9tICcuL3Nkay1ldmVudHMtbG9nZ2VyL3Nkay1ldmVudHMtbG9nZ2VyLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2VydmljZUxvY2F0b3IgfSBmcm9tICcuL3NlcnZpY2UtbG9jYXRvcic7XG5pbXBvcnQgeyBWYWxpZGF0aW9uSGFuZGxlclNlcnZpY2UgfSBmcm9tICcuL3ZhbGlkYXRpb24vdmFsaWRhdGlvbi1oYW5kbGVyLnNlcnZpY2UnO1xuXG4vKipcbiAqIEVuc3VyZXMgdGhhdCBhIGNhbGwgaXMgb25seSBzdWJzY3JpYmVkIGFuZCBzZW5kIG9uZSBhdCB0aGUgdGltZS5cbiAqIEBwYXJhbSBmbiBmdW5jdGlvbiB0byBiZSBjYWxsZWQgYXMgY29uY3VycmVudCBzYWZlXG4gKiBAcmV0dXJucyBPYnNlcnZhYmxlXG4gKi9cbmZ1bmN0aW9uIGdldENvbmN1cnJlbnRTYWZlQ2FsbDxUPihmbjogKCkgPT4gT2JzZXJ2YWJsZTxUPik6IE9ic2VydmFibGU8VD4ge1xuICAgIHJldHVybiBvZih0cnVlKS5waXBlKFxuICAgICAgICAvLyBUbyBndWFyZCBhZ2FpbnN0IGRvdWJsZS1jbGlja1xuICAgICAgICB0aHJvdHRsZVRpbWUoMjAwKSxcbiAgICAgICAgLy8gZmxhdG1hcChmbiwgMSkgZW5zdXJlcyB0aGF0IG9ubHkgb25lIHF1ZXJ5IGlzIHJhbiBhdCB0aGUgc2FtZSB0aW1lXG4gICAgICAgIG1lcmdlTWFwKGZuLCAxKSxcbiAgICAgICAgLy8gQXMgdGhpcyBvYnNlcnZhYmxlIGlzIHVzZWQgYXMgYSBQcm9taXNlICh3aXRoIHN1YnNjcmliZSksIHRoaXMgZW5zdXJlcyB0aGF0XG4gICAgICAgIC8vIHRoZSBvcGVyYXRvcnMgYWJvdmUgY2FuIGJlIHNoYXJlZCBiZXR3ZWVuIGVhY2ggc3Vic2NyaWJlLlxuICAgICAgICBzaGFyZSgpXG4gICAgKTtcbn1cblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQWJzdHJhY3RQYWdlQ29tcG9uZW50PFQgZXh0ZW5kcyBJMThuRm9ybT5cbiAgICBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBBZnRlclZpZXdJbml0XG57XG4gICAgQFZpZXdDaGlsZChGb2VobkZvcm1Db21wb25lbnQsIHsgc3RhdGljOiB0cnVlIH0pXG4gICAgZm9laG5Gb3JtQ29tcG9uZW50OiBGb2VobkZvcm1Db21wb25lbnQ7XG5cbiAgICBmb3JtOiBUO1xuICAgIHJlZmVyZW5jZTogc3RyaW5nO1xuXG4gICAgcHJvdGVjdGVkIHBhZ2VUaXRsZVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICAgIHByb3RlY3RlZCB1cGRhdGVGb3JtRGF0YVN1YmplY3RTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgICBwcm90ZWN0ZWQgYXR0YWNobWVudHNTaW5nbGVVcGxvYWRlZFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICAgIHByb3RlY3RlZCBhdHRhY2htZW50c011bHRpVXBsb2FkZWRTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgICBwcm90ZWN0ZWQgc2F2ZUZvcm1SZXF1ZXN0U3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gICAgcHJvdGVjdGVkIF9nZXNkZW1TZXJ2aWNlOiBHZXNkZW1IYW5kbGVyU2VydmljZTtcbiAgICBwcm90ZWN0ZWQgX2dlc2RlbUV2ZW50U2VydmljZTogR2VzZGVtRXZlbnRTZXJ2aWNlO1xuICAgIHByb3RlY3RlZCBfbmF2aWdhdGlvbjogRm9laG5OYXZpZ2F0aW9uU2VydmljZTtcbiAgICBwcm90ZWN0ZWQgX2FjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZTtcbiAgICBwcm90ZWN0ZWQgX2dyb3dsU2VydmljZTogR3Jvd2xCcm9rZXJTZXJ2aWNlO1xuICAgIHByb3RlY3RlZCBfdmFsaWRhdGlvbkhhbmRsZXJTZXJ2aWNlOiBWYWxpZGF0aW9uSGFuZGxlclNlcnZpY2U7XG4gICAgcHJvdGVjdGVkIF9icmVhZGNydW1iRXZlbnRTZXJ2aWNlOiBCcmVhZGNydW1iRXZlbnRTZXJ2aWNlO1xuICAgIHByb3RlY3RlZCBfZm9laG5QYWdlU2VydmljZTogRm9laG5QYWdlU2VydmljZTtcbiAgICBwcm90ZWN0ZWQgX2RpY3Rpb25hcnlTZXJ2aWNlOiBTZGtEaWN0aW9uYXJ5U2VydmljZTtcbiAgICBwcm90ZWN0ZWQgX2V2ZW50c0xvZ2dlclNlcnZpY2U6IFNka0V2ZW50c0xvZ2dlclNlcnZpY2U7XG5cbiAgICBwcml2YXRlIF9wZW5kaW5nVXBsb2FkU2VydmljZTogUGVuZGluZ1VwbG9hZFNlcnZpY2U7XG4gICAgcHJpdmF0ZSBfZm9ybUluaXRTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgICBwcml2YXRlIF9jdXJyZW50TGFuZ1N1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgcHJpdmF0ZSBzZW5kRm9yRm9ybUNvbmN1cnJlbnRTYWZlOiBPYnNlcnZhYmxlPGFueT47XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBwcml2YXRlIHRyYW5zbWl0Q29uY3VycmVudFNhZmU6IE9ic2VydmFibGU8YW55PjtcblxuICAgIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUpIHtcbiAgICAgICAgdGhpcy5fZ2VzZGVtU2VydmljZSA9IFNlcnZpY2VMb2NhdG9yLmluamVjdG9yLmdldChHZXNkZW1IYW5kbGVyU2VydmljZSk7XG4gICAgICAgIHRoaXMuX2dlc2RlbUV2ZW50U2VydmljZSA9XG4gICAgICAgICAgICBTZXJ2aWNlTG9jYXRvci5pbmplY3Rvci5nZXQoR2VzZGVtRXZlbnRTZXJ2aWNlKTtcbiAgICAgICAgdGhpcy5fbmF2aWdhdGlvbiA9IFNlcnZpY2VMb2NhdG9yLmluamVjdG9yLmdldChGb2Vobk5hdmlnYXRpb25TZXJ2aWNlKTtcbiAgICAgICAgdGhpcy5fYWN0aXZhdGVkUm91dGUgPSBTZXJ2aWNlTG9jYXRvci5pbmplY3Rvci5nZXQoQWN0aXZhdGVkUm91dGUpO1xuICAgICAgICB0aGlzLl9ncm93bFNlcnZpY2UgPSBTZXJ2aWNlTG9jYXRvci5pbmplY3Rvci5nZXQoR3Jvd2xCcm9rZXJTZXJ2aWNlKTtcbiAgICAgICAgdGhpcy5fdmFsaWRhdGlvbkhhbmRsZXJTZXJ2aWNlID0gU2VydmljZUxvY2F0b3IuaW5qZWN0b3IuZ2V0KFxuICAgICAgICAgICAgVmFsaWRhdGlvbkhhbmRsZXJTZXJ2aWNlXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuX3BlbmRpbmdVcGxvYWRTZXJ2aWNlID1cbiAgICAgICAgICAgIFNlcnZpY2VMb2NhdG9yLmluamVjdG9yLmdldChQZW5kaW5nVXBsb2FkU2VydmljZSk7XG4gICAgICAgIHRoaXMuX2JyZWFkY3J1bWJFdmVudFNlcnZpY2UgPSBTZXJ2aWNlTG9jYXRvci5pbmplY3Rvci5nZXQoXG4gICAgICAgICAgICBCcmVhZGNydW1iRXZlbnRTZXJ2aWNlXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuX2ZvZWhuUGFnZVNlcnZpY2UgPSBTZXJ2aWNlTG9jYXRvci5pbmplY3Rvci5nZXQoRm9laG5QYWdlU2VydmljZSk7XG5cbiAgICAgICAgdGhpcy5fZGljdGlvbmFyeVNlcnZpY2UgPVxuICAgICAgICAgICAgU2VydmljZUxvY2F0b3IuaW5qZWN0b3IuZ2V0KFNka0RpY3Rpb25hcnlTZXJ2aWNlKTtcbiAgICAgICAgdGhpcy5fZXZlbnRzTG9nZ2VyU2VydmljZSA9IFNlcnZpY2VMb2NhdG9yLmluamVjdG9yLmdldChcbiAgICAgICAgICAgIFNka0V2ZW50c0xvZ2dlclNlcnZpY2VcbiAgICAgICAgKTtcblxuICAgICAgICBjb25zdCByb3V0ZSA9IEZvZWhuTmF2aWdhdGlvblNlcnZpY2UuZ2V0Um9vdFJvdXRlUmVjdXJzaXZlKFxuICAgICAgICAgICAgYWN0aXZhdGVkUm91dGUuc25hcHNob3RcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5fbmF2aWdhdGlvbi5pbml0Um91dGUocm91dGUpO1xuICAgICAgICB0aGlzLl9mb3JtSW5pdFN1YnNjcmlwdGlvbiA9IHRoaXMuX2dlc2RlbUV2ZW50U2VydmljZVxuICAgICAgICAgICAgLmZvcm1Jbml0aWFsaXphdGlvbk9ic2VydmFibGUoKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZWZlcmVuY2UgPVxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9nZXNkZW1TZXJ2aWNlLmxhc3RSZXNwb25zZSAmJlxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9nZXNkZW1TZXJ2aWNlLmxhc3RSZXNwb25zZS5tZXRhLnJlZmVyZW5jZTtcbiAgICAgICAgICAgICAgICBjb25zdCBzdGF0dXQgPVxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9nZXNkZW1TZXJ2aWNlLmxhc3RSZXNwb25zZSAmJlxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9nZXNkZW1TZXJ2aWNlLmxhc3RSZXNwb25zZS5tZXRhLnN0YXR1dDtcbiAgICAgICAgICAgICAgICBjb25zdCBzaG91bGRQcmV2ZW50TmF2aWdhdGlvblRvTGFzdCA9XG4gICAgICAgICAgICAgICAgICAgIGFjdGl2YXRlZFJvdXRlLnNuYXBzaG90LmRhdGFcbiAgICAgICAgICAgICAgICAgICAgICAgIC5wcmV2ZW50TmF2aWdhdGlvblRvTGFzdE9uVHJhbnNmZXJyZWQgPT09IHRydWU7XG5cbiAgICAgICAgICAgICAgICBjb25zdCBsYW5ndWFnZUNvZGUgPVxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9nZXNkZW1TZXJ2aWNlLmxhc3RSZXNwb25zZSAmJlxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9nZXNkZW1TZXJ2aWNlLmxhc3RSZXNwb25zZS5mb3JtICYmXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2dlc2RlbVNlcnZpY2UubGFzdFJlc3BvbnNlLmZvcm0ubGFuZ3VhZ2U7XG5cbiAgICAgICAgICAgICAgICB0aGlzLl9kaWN0aW9uYXJ5U2VydmljZS5jaGFuZ2VMYW5ndWFnZShsYW5ndWFnZUNvZGUpO1xuXG4gICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICAhc2hvdWxkUHJldmVudE5hdmlnYXRpb25Ub0xhc3QgJiZcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZWZlcmVuY2UgJiZcbiAgICAgICAgICAgICAgICAgICAgR2VzZGVtU3RhdHV0VXRpbHMuaXNGaW5hbChcbiAgICAgICAgICAgICAgICAgICAgICAgIEFjdGlvblN0YXR1dFtzdGF0dXQgYXMgQWN0aW9uU3RhdHV0XVxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX25hdmlnYXRpb24ubGFzdCgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIC8vIFByb3RlY3RzIHRoZSBzYXZlIG1ldGhvZCBvbiB0aGUgR2VzZGVtU2VydmljZSBmcm9tIGNvbmN1cnJlbnQgYWNjZXNzLlxuICAgICAgICB0aGlzLnNlbmRGb3JGb3JtQ29uY3VycmVudFNhZmUgPSBnZXRDb25jdXJyZW50U2FmZUNhbGwoKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgY2FuQ3JlYXRlRGVtYW5kZSA9XG4gICAgICAgICAgICAgICAgdGhpcy5fbmF2aWdhdGlvbi5pc0ZpcnN0Rm9ybVBhZ2UoKSAmJlxuICAgICAgICAgICAgICAgICF0aGlzLl9nZXNkZW1TZXJ2aWNlLmxhc3RSZXNwb25zZT8ubWV0YT8ucmVmZXJlbmNlPy5sZW5ndGg7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fZ2VzZGVtU2VydmljZS5zYXZlKHRoaXMuZm9ybSwgY2FuQ3JlYXRlRGVtYW5kZSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIFByb3RlY3RzIHRoZSB0cmFuc21pdCBtZXRob2Qgb24gdGhlIEdlc2RlbVNlcnZpY2UgZnJvbSBjb25jdXJyZW50IGFjY2Vzcy5cbiAgICAgICAgdGhpcy50cmFuc21pdENvbmN1cnJlbnRTYWZlID0gZ2V0Q29uY3VycmVudFNhZmVDYWxsKCgpID0+XG4gICAgICAgICAgICB0aGlzLl9nZXNkZW1TZXJ2aWNlLnRyYW5zbWl0KClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5nb3RUb1RvcCgpO1xuICAgICAgICB0aGlzLmZvcm0gPSB0aGlzLm5ld0Zvcm0oKTtcbiAgICAgICAgdGhpcy5fY3VycmVudExhbmdTdWJzY3JpcHRpb24gPSB0aGlzLl9kaWN0aW9uYXJ5U2VydmljZVxuICAgICAgICAgICAgLmdldEN1cnJlbnRMYW5ndWFnZUNvZGUoKVxuICAgICAgICAgICAgLnN1YnNjcmliZShsYW5ndWFnZUNvZGUgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZm9ybS5sYW5ndWFnZSA9IGxhbmd1YWdlQ29kZTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuX3ZhbGlkYXRpb25IYW5kbGVyU2VydmljZS5zaG91bGREaXNwbGF5RXJyb3JzKGZhbHNlKTtcblxuICAgICAgICB0aGlzLnVwZGF0ZUZvcm1EYXRhU3ViamVjdFN1YnNjcmlwdGlvbiA9XG4gICAgICAgICAgICB0aGlzLl9nZXNkZW1TZXJ2aWNlLnVwZGF0ZUZvcm1EYXRhU3ViamVjdC5zdWJzY3JpYmUoZm9ybSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtID0gZm9ybTtcbiAgICAgICAgICAgICAgICB0aGlzLl9nZXNkZW1FdmVudFNlcnZpY2UuZm9ybUluaXRpYWxpemF0aW9uU3ViamVjdC5uZXh0KGZvcm0pO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5hdHRhY2htZW50c011bHRpVXBsb2FkZWRTdWJzY3JpcHRpb24gPVxuICAgICAgICAgICAgdGhpcy5fcGVuZGluZ1VwbG9hZFNlcnZpY2UuYXR0YWNobWVudHNVcGxvYWRlZC5zdWJzY3JpYmUoZm9ybSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtID0gZm9ybTtcbiAgICAgICAgICAgICAgICAvLyBQUkVTVEFLSVQtMzA5OiBzZXQgYmFjayBzaG91bGREaXNwbGF5RXJyb3JzIHRvIHRydWUgb25jZSBmaWxlcyBoYXZlIGJlZW4gdXBsb2FkZWRcbiAgICAgICAgICAgICAgICB0aGlzLl92YWxpZGF0aW9uSGFuZGxlclNlcnZpY2Uuc2hvdWxkRGlzcGxheUVycm9ycyh0cnVlKTtcbiAgICAgICAgICAgICAgICB0aGlzLm9uRm9ybVNlbnQodHJ1ZSk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLnNhdmVGb3JtUmVxdWVzdFN1YnNjcmlwdGlvbiA9IHRoaXMuX2ZvZWhuUGFnZVNlcnZpY2VcbiAgICAgICAgICAgIC5zYXZlRm9ybVJlcXVlc3QoKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLnNlbmQoZmFsc2UpKTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIC8vIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvYW5ndWxhci9pc3N1ZXMvMTc1NzIjaXNzdWVjb21tZW50LTMyMzQ2NTczN1xuICAgICAgICBQcm9taXNlLnJlc29sdmUobnVsbCkudGhlbigoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLl9nZXNkZW1TZXJ2aWNlLnJlcXVpcmUoKS5zdWJzY3JpYmUoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2N1cnJlbnRMYW5nU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgICAgICB0aGlzLnBhZ2VUaXRsZVN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgdGhpcy51cGRhdGVGb3JtRGF0YVN1YmplY3RTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIHRoaXMuYXR0YWNobWVudHNTaW5nbGVVcGxvYWRlZFN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgdGhpcy5hdHRhY2htZW50c011bHRpVXBsb2FkZWRTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIHRoaXMuX2Zvcm1Jbml0U3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgICAgICB0aGlzLnNhdmVGb3JtUmVxdWVzdFN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICBzZW5kKGdvVG9OZXh0UGFnZTogYm9vbGVhbiA9IHRydWUpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuX3BlbmRpbmdVcGxvYWRTZXJ2aWNlLmhhc1BlbmRpbmdGaWxlcygpKSB7XG4gICAgICAgICAgICBnb1RvTmV4dFBhZ2UgPSBmYWxzZTtcbiAgICAgICAgICAgIC8vIFBSRVNUQUtJVC0zMDk6IHNob3VsZERpc3BsYXlFcnJvcnMgd2lsbCBiZSBzZXQgYmFjayB0byB0cnVlIGluICdhdHRhY2htZW50c1VwbG9hZGVkJyBzdWJzY3JpcHRpb25cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX3ZhbGlkYXRpb25IYW5kbGVyU2VydmljZS5zaG91bGREaXNwbGF5RXJyb3JzKHRydWUpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2VuZEZvckZvcm1Db25jdXJyZW50U2FmZS5zdWJzY3JpYmUoKCkgPT5cbiAgICAgICAgICAgIHRoaXMub25Gb3JtU2VudChnb1RvTmV4dFBhZ2UpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgdHJhbnNtaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3ZhbGlkYXRpb25IYW5kbGVyU2VydmljZS5zaG91bGREaXNwbGF5RXJyb3JzKHRydWUpO1xuICAgICAgICB0aGlzLnRyYW5zbWl0Q29uY3VycmVudFNhZmVcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIHRhcCgoKSA9PlxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9ldmVudHNMb2dnZXJTZXJ2aWNlLmFkZEV2ZW50KFNka0V2ZW50VHlwZS5UUkFOU01JVClcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiB1bmtub3duKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gRU1QVFk7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICghdGhpcy5fZ2VzZGVtU2VydmljZS5sYXN0UmVzcG9uc2UuZXJyb3JzLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9nZXNkZW1FdmVudFNlcnZpY2UuZm9ybVRyYW5zbWl0dGVkU3ViamVjdC5uZXh0KFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fZ2VzZGVtU2VydmljZS5sYXN0UmVzcG9uc2VcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fbmF2aWdhdGlvbi5uZXh0KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgc2VuZEFuZFRyYW5zbWl0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9nZXNkZW1FdmVudFNlcnZpY2VcbiAgICAgICAgICAgIC5mb3JtU2VudE9ic2VydmFibGUoKVxuICAgICAgICAgICAgLnBpcGUoZmlyc3QoKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUocmVzcG9uc2UgPT4ge1xuICAgICAgICAgICAgICAgIGlmICghcmVzcG9uc2UuZXJyb3JzLmxlbmd0aCAmJiAhcmVzcG9uc2UubWV0YS5jcml0aWNhbCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMuY2hlY2tIYXNQZW5kaW5nc0ZpbGVzQmVmb3JlVHJhbnNtaXQoKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50cmFuc21pdCgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5zZW5kKGZhbHNlKTtcbiAgICB9XG5cbiAgICBwcmV2aW91cygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fbmF2aWdhdGlvbi5wcmV2aW91cygpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBzZXRQYWdlVGl0bGUocGFnZVRpdGxlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZm9laG5QYWdlU2VydmljZS5zZXRQYWdlVGl0bGUocGFnZVRpdGxlKTtcbiAgICAgICAgdGhpcy5fYnJlYWRjcnVtYkV2ZW50U2VydmljZS5zZXRDdXJyZW50QnJlYWRjcnVtYih7XG4gICAgICAgICAgICB1cmw6IG51bGwsXG4gICAgICAgICAgICByb3V0ZXJMaW5rOiBudWxsLFxuICAgICAgICAgICAgbGFiZWw6IHBhZ2VUaXRsZVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgc2V0UGFnZVRpdGxlQXN5bmMocGFnZVRpdGxlOiBPYnNlcnZhYmxlPHN0cmluZz4pOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMucGFnZVRpdGxlU3Vic2NyaXB0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLnBhZ2VUaXRsZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucGFnZVRpdGxlU3Vic2NyaXB0aW9uID0gcGFnZVRpdGxlLnN1YnNjcmliZSh0aXRsZSA9PlxuICAgICAgICAgICAgdGhpcy5zZXRQYWdlVGl0bGUodGl0bGUpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG9uRm9ybVNlbnQoZ29Ub05leHRQYWdlOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmZvZWhuRm9ybUNvbXBvbmVudCkge1xuICAgICAgICAgICAgLy8gU29tZSBwYWdlcyBkb24ndCBoYXZlIGEgZm9ybS5cbiAgICAgICAgICAgIHRoaXMuZm9laG5Gb3JtQ29tcG9uZW50LnJlc2V0KCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9uYXZpZ2F0aW9uLmN1cnJlbnQoKS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGlzVmFsaWQgPVxuICAgICAgICAgICAgICAgIC8vIFNvbWUgcGFnZXMgZG9uJ3QgaGF2ZSBhIGZvcm0uXG4gICAgICAgICAgICAgICAgdGhpcy5mb2VobkZvcm1Db21wb25lbnQgJiZcbiAgICAgICAgICAgICAgICB0aGlzLmZvZWhuRm9ybUNvbXBvbmVudC5pc1ZhbGlkKCkgJiZcbiAgICAgICAgICAgICAgICAhdGhpcy5fZ2VzZGVtU2VydmljZS5sYXN0UmVzcG9uc2UubWV0YS5jcml0aWNhbDtcblxuICAgICAgICAgICAgaWYgKGlzVmFsaWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl92YWxpZGF0aW9uSGFuZGxlclNlcnZpY2Uuc2hvdWxkRGlzcGxheUVycm9ycyhmYWxzZSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMuX2dlc2RlbUV2ZW50U2VydmljZS5mb3JtU2VudFN1YmplY3QubmV4dChcbiAgICAgICAgICAgICAgICB0aGlzLl9nZXNkZW1TZXJ2aWNlLmxhc3RSZXNwb25zZVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgaWYgKGlzVmFsaWQgJiYgZ29Ub05leHRQYWdlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fbmF2aWdhdGlvbi5uZXh0KCk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKCFpc1ZhbGlkICYmIHRoaXMuZm9laG5Gb3JtQ29tcG9uZW50KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5mb2VobkZvcm1Db21wb25lbnQuZm9jdXNFcnJvclN1bW1hcnkoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSwgY29uc29sZS5lcnJvcik7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjaGVja0hhc1BlbmRpbmdzRmlsZXNCZWZvcmVUcmFuc21pdCgpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKHRoaXMuX3BlbmRpbmdVcGxvYWRTZXJ2aWNlLmhhc1BlbmRpbmdGaWxlcygpKSB7XG4gICAgICAgICAgICBjb25zdCBtdWx0aVVwbG9hZEF0dGFjaG1lbnRTdWJzY3JpcHRpb24gPVxuICAgICAgICAgICAgICAgIHRoaXMuX3BlbmRpbmdVcGxvYWRTZXJ2aWNlLmF0dGFjaG1lbnRzVXBsb2FkZWQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgbXVsdGlVcGxvYWRBdHRhY2htZW50U3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudHJhbnNtaXQoKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdvdFRvVG9wKCk6IHZvaWQge1xuICAgICAgICB3aW5kb3cuc2Nyb2xsVG8oMCwgMCk7XG4gICAgfVxuXG4gICAgYWJzdHJhY3QgbmV3Rm9ybSgpOiBUO1xufVxuIl19
|
|
228
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtcGFnZS1jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wcm9qZWN0cy9wcmVzdGF0aW9ucy1uZy9zcmMvYWJzdHJhY3QtcGFnZS1jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILFNBQVMsRUFHVCxTQUFTLEVBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxLQUFLLEVBQWMsRUFBRSxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUMzRCxPQUFPLEVBQ0gsVUFBVSxFQUNWLEtBQUssRUFDTCxRQUFRLEVBQ1IsS0FBSyxFQUNMLEdBQUcsRUFDSCxZQUFZLEVBQ2YsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUNyRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN2RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN4RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUNyRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNuRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUNoRyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNuRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN2RSxPQUFPLEVBQUUsWUFBWSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFL0UsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDL0UsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9DQUFv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ZSxDQUFDLElBQUksQ0FDekMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQ25DLENBQUM7WUFFRixJQUFJLE9BQU8sSUFBSSxZQUFZLEVBQUUsQ0FBQztnQkFDMUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUM1QixDQUFDO2lCQUFNLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7Z0JBQzdDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQ2hELENBQUM7UUFDTCxDQUFDLEVBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3RCLENBQUM7SUFFTyxtQ0FBbUM7UUFDdkMsSUFBSSxJQUFJLENBQUMscUJBQXFCLENBQUMsZUFBZSxFQUFFLEVBQUUsQ0FBQztZQUMvQyxNQUFNLGlDQUFpQyxHQUNuQyxJQUFJLENBQUMscUJBQXFCLENBQUMsbUJBQW1CLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtnQkFDMUQsaUNBQWlDLENBQUMsV0FBVyxFQUFFLENBQUM7Z0JBQ2hELElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNwQixDQUFDLENBQUMsQ0FBQztZQUNQLE9BQU8sSUFBSSxDQUFDO1FBQ2hCLENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0lBRU8sUUFBUTtRQUNaLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzFCLENBQUM7K0dBalJpQixxQkFBcUI7bUdBQXJCLHFCQUFxQiw4RUFHNUIsa0JBQWtCOzs0RkFIWCxxQkFBcUI7a0JBRDFDLFNBQVM7bUZBS04sa0JBQWtCO3NCQURqQixTQUFTO3VCQUFDLGtCQUFrQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBEaXJlY3RpdmUsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBFTVBUWSwgT2JzZXJ2YWJsZSwgb2YsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgICBjYXRjaEVycm9yLFxuICAgIGZpcnN0LFxuICAgIG1lcmdlTWFwLFxuICAgIHNoYXJlLFxuICAgIHRhcCxcbiAgICB0aHJvdHRsZVRpbWVcbn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBCcmVhZGNydW1iRXZlbnRTZXJ2aWNlIH0gZnJvbSAnLi9mb2Vobi1icmVhZGNydW1iL2JyZWFkY3J1bWItZXZlbnQuc2VydmljZSc7XG5pbXBvcnQgeyBGb2VobkZvcm1Db21wb25lbnQgfSBmcm9tICcuL2ZvZWhuLWZvcm0vZm9laG4tZm9ybS5jb21wb25lbnQnO1xuaW1wb3J0IHsgR3Jvd2xCcm9rZXJTZXJ2aWNlIH0gZnJvbSAnLi9mb2Vobi1ncm93bC9ncm93bC1icm9rZXIuc2VydmljZSc7XG5pbXBvcnQgeyBGb2Vobk5hdmlnYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi9mb2Vobi1uYXZpZ2F0aW9uL2ZvZWhuLW5hdmlnYXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBGb2VoblBhZ2VTZXJ2aWNlIH0gZnJvbSAnLi9mb2Vobi1wYWdlL2ZvZWhuLXBhZ2Uuc2VydmljZSc7XG5pbXBvcnQgeyBQZW5kaW5nVXBsb2FkU2VydmljZSB9IGZyb20gJy4vZm9laG4tdXBsb2FkL2ZvZWhuLW11bHRpLXVwbG9hZC9wZW5kaW5nLXVwbG9hZC5zZXJ2aWNlJztcbmltcG9ydCB7IEdlc2RlbUV2ZW50U2VydmljZSB9IGZyb20gJy4vZ2VzZGVtL2dlc2RlbS1ldmVudC5zZXJ2aWNlJztcbmltcG9ydCB7IEdlc2RlbUhhbmRsZXJTZXJ2aWNlIH0gZnJvbSAnLi9nZXNkZW0vZ2VzZGVtLWhhbmRsZXIuc2VydmljZSc7XG5pbXBvcnQgeyBBY3Rpb25TdGF0dXQsIEdlc2RlbVN0YXR1dFV0aWxzIH0gZnJvbSAnLi9nZXNkZW0vZ2VzZGVtLXN0YXR1dC11dGlscyc7XG5pbXBvcnQgeyBJMThuRm9ybSB9IGZyb20gJy4vaTE4bi1mb3JtJztcbmltcG9ydCB7IFNka0RpY3Rpb25hcnlTZXJ2aWNlIH0gZnJvbSAnLi9zZGstZGljdGlvbmFyeS9zZGstZGljdGlvbmFyeS5zZXJ2aWNlJztcbmltcG9ydCB7IFNka0V2ZW50VHlwZSB9IGZyb20gJy4vc2RrLWV2ZW50cy1sb2dnZXIvc2RrLWV2ZW50LXR5cGUnO1xuaW1wb3J0IHsgU2RrRXZlbnRzTG9nZ2VyU2VydmljZSB9IGZyb20gJy4vc2RrLWV2ZW50cy1sb2dnZXIvc2RrLWV2ZW50cy1sb2dnZXIuc2VydmljZSc7XG5pbXBvcnQgeyBTZXJ2aWNlTG9jYXRvciB9IGZyb20gJy4vc2VydmljZS1sb2NhdG9yJztcbmltcG9ydCB7IFZhbGlkYXRpb25IYW5kbGVyU2VydmljZSB9IGZyb20gJy4vdmFsaWRhdGlvbi92YWxpZGF0aW9uLWhhbmRsZXIuc2VydmljZSc7XG5cbi8qKlxuICogRW5zdXJlcyB0aGF0IGEgY2FsbCBpcyBvbmx5IHN1YnNjcmliZWQgYW5kIHNlbmQgb25lIGF0IHRoZSB0aW1lLlxuICogQHBhcmFtIGZuIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCBhcyBjb25jdXJyZW50IHNhZmVcbiAqIEByZXR1cm5zIE9ic2VydmFibGVcbiAqL1xuZnVuY3Rpb24gZ2V0Q29uY3VycmVudFNhZmVDYWxsPFQ+KGZuOiAoKSA9PiBPYnNlcnZhYmxlPFQ+KTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgcmV0dXJuIG9mKHRydWUpLnBpcGUoXG4gICAgICAgIC8vIFRvIGd1YXJkIGFnYWluc3QgZG91YmxlLWNsaWNrXG4gICAgICAgIHRocm90dGxlVGltZSgyMDApLFxuICAgICAgICAvLyBmbGF0bWFwKGZuLCAxKSBlbnN1cmVzIHRoYXQgb25seSBvbmUgcXVlcnkgaXMgcmFuIGF0IHRoZSBzYW1lIHRpbWVcbiAgICAgICAgbWVyZ2VNYXAoZm4sIDEpLFxuICAgICAgICAvLyBBcyB0aGlzIG9ic2VydmFibGUgaXMgdXNlZCBhcyBhIFByb21pc2UgKHdpdGggc3Vic2NyaWJlKSwgdGhpcyBlbnN1cmVzIHRoYXRcbiAgICAgICAgLy8gdGhlIG9wZXJhdG9ycyBhYm92ZSBjYW4gYmUgc2hhcmVkIGJldHdlZW4gZWFjaCBzdWJzY3JpYmUuXG4gICAgICAgIHNoYXJlKClcbiAgICApO1xufVxuXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBYnN0cmFjdFBhZ2VDb21wb25lbnQ8VCBleHRlbmRzIEkxOG5Gb3JtPlxuICAgIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXRcbntcbiAgICBAVmlld0NoaWxkKEZvZWhuRm9ybUNvbXBvbmVudCwgeyBzdGF0aWM6IHRydWUgfSlcbiAgICBmb2VobkZvcm1Db21wb25lbnQ6IEZvZWhuRm9ybUNvbXBvbmVudDtcblxuICAgIGZvcm06IFQ7XG4gICAgcmVmZXJlbmNlOiBzdHJpbmc7XG5cbiAgICBwcm90ZWN0ZWQgcGFnZVRpdGxlU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gICAgcHJvdGVjdGVkIHVwZGF0ZUZvcm1EYXRhU3ViamVjdFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICAgIHByb3RlY3RlZCBhdHRhY2htZW50c1NpbmdsZVVwbG9hZGVkU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gICAgcHJvdGVjdGVkIGF0dGFjaG1lbnRzTXVsdGlVcGxvYWRlZFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICAgIHByb3RlY3RlZCBzYXZlRm9ybVJlcXVlc3RTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgICBwcm90ZWN0ZWQgX2dlc2RlbVNlcnZpY2U6IEdlc2RlbUhhbmRsZXJTZXJ2aWNlO1xuICAgIHByb3RlY3RlZCBfZ2VzZGVtRXZlbnRTZXJ2aWNlOiBHZXNkZW1FdmVudFNlcnZpY2U7XG4gICAgcHJvdGVjdGVkIF9uYXZpZ2F0aW9uOiBGb2Vobk5hdmlnYXRpb25TZXJ2aWNlO1xuICAgIHByb3RlY3RlZCBfYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlO1xuICAgIHByb3RlY3RlZCBfZ3Jvd2xTZXJ2aWNlOiBHcm93bEJyb2tlclNlcnZpY2U7XG4gICAgcHJvdGVjdGVkIF92YWxpZGF0aW9uSGFuZGxlclNlcnZpY2U6IFZhbGlkYXRpb25IYW5kbGVyU2VydmljZTtcbiAgICBwcm90ZWN0ZWQgX2JyZWFkY3J1bWJFdmVudFNlcnZpY2U6IEJyZWFkY3J1bWJFdmVudFNlcnZpY2U7XG4gICAgcHJvdGVjdGVkIF9mb2VoblBhZ2VTZXJ2aWNlOiBGb2VoblBhZ2VTZXJ2aWNlO1xuICAgIHByb3RlY3RlZCBfZGljdGlvbmFyeVNlcnZpY2U6IFNka0RpY3Rpb25hcnlTZXJ2aWNlO1xuICAgIHByb3RlY3RlZCBfZXZlbnRzTG9nZ2VyU2VydmljZTogU2RrRXZlbnRzTG9nZ2VyU2VydmljZTtcblxuICAgIHByaXZhdGUgX3BlbmRpbmdVcGxvYWRTZXJ2aWNlOiBQZW5kaW5nVXBsb2FkU2VydmljZTtcbiAgICBwcml2YXRlIF9mb3JtSW5pdFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICAgIHByaXZhdGUgX2N1cnJlbnRMYW5nU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBwcml2YXRlIHNlbmRGb3JGb3JtQ29uY3VycmVudFNhZmU6IE9ic2VydmFibGU8YW55PjtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIHByaXZhdGUgdHJhbnNtaXRDb25jdXJyZW50U2FmZTogT2JzZXJ2YWJsZTxhbnk+O1xuXG4gICAgY29uc3RydWN0b3IocHJvdGVjdGVkIGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSkge1xuICAgICAgICB0aGlzLl9nZXNkZW1TZXJ2aWNlID0gU2VydmljZUxvY2F0b3IuaW5qZWN0b3IuZ2V0KEdlc2RlbUhhbmRsZXJTZXJ2aWNlKTtcbiAgICAgICAgdGhpcy5fZ2VzZGVtRXZlbnRTZXJ2aWNlID1cbiAgICAgICAgICAgIFNlcnZpY2VMb2NhdG9yLmluamVjdG9yLmdldChHZXNkZW1FdmVudFNlcnZpY2UpO1xuICAgICAgICB0aGlzLl9uYXZpZ2F0aW9uID0gU2VydmljZUxvY2F0b3IuaW5qZWN0b3IuZ2V0KEZvZWhuTmF2aWdhdGlvblNlcnZpY2UpO1xuICAgICAgICB0aGlzLl9hY3RpdmF0ZWRSb3V0ZSA9IFNlcnZpY2VMb2NhdG9yLmluamVjdG9yLmdldChBY3RpdmF0ZWRSb3V0ZSk7XG4gICAgICAgIHRoaXMuX2dyb3dsU2VydmljZSA9IFNlcnZpY2VMb2NhdG9yLmluamVjdG9yLmdldChHcm93bEJyb2tlclNlcnZpY2UpO1xuICAgICAgICB0aGlzLl92YWxpZGF0aW9uSGFuZGxlclNlcnZpY2UgPSBTZXJ2aWNlTG9jYXRvci5pbmplY3Rvci5nZXQoXG4gICAgICAgICAgICBWYWxpZGF0aW9uSGFuZGxlclNlcnZpY2VcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5fcGVuZGluZ1VwbG9hZFNlcnZpY2UgPVxuICAgICAgICAgICAgU2VydmljZUxvY2F0b3IuaW5qZWN0b3IuZ2V0KFBlbmRpbmdVcGxvYWRTZXJ2aWNlKTtcbiAgICAgICAgdGhpcy5fYnJlYWRjcnVtYkV2ZW50U2VydmljZSA9IFNlcnZpY2VMb2NhdG9yLmluamVjdG9yLmdldChcbiAgICAgICAgICAgIEJyZWFkY3J1bWJFdmVudFNlcnZpY2VcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5fZm9laG5QYWdlU2VydmljZSA9IFNlcnZpY2VMb2NhdG9yLmluamVjdG9yLmdldChGb2VoblBhZ2VTZXJ2aWNlKTtcblxuICAgICAgICB0aGlzLl9kaWN0aW9uYXJ5U2VydmljZSA9XG4gICAgICAgICAgICBTZXJ2aWNlTG9jYXRvci5pbmplY3Rvci5nZXQoU2RrRGljdGlvbmFyeVNlcnZpY2UpO1xuICAgICAgICB0aGlzLl9ldmVudHNMb2dnZXJTZXJ2aWNlID0gU2VydmljZUxvY2F0b3IuaW5qZWN0b3IuZ2V0KFxuICAgICAgICAgICAgU2RrRXZlbnRzTG9nZ2VyU2VydmljZVxuICAgICAgICApO1xuXG4gICAgICAgIGNvbnN0IHJvdXRlID0gRm9laG5OYXZpZ2F0aW9uU2VydmljZS5nZXRSb290Um91dGVSZWN1cnNpdmUoXG4gICAgICAgICAgICBhY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdFxuICAgICAgICApO1xuICAgICAgICB0aGlzLl9uYXZpZ2F0aW9uLmluaXRSb3V0ZShyb3V0ZSk7XG4gICAgICAgIHRoaXMuX2Zvcm1Jbml0U3Vic2NyaXB0aW9uID0gdGhpcy5fZ2VzZGVtRXZlbnRTZXJ2aWNlXG4gICAgICAgICAgICAuZm9ybUluaXRpYWxpemF0aW9uT2JzZXJ2YWJsZSgpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlZmVyZW5jZSA9XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2dlc2RlbVNlcnZpY2UubGFzdFJlc3BvbnNlICYmXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2dlc2RlbVNlcnZpY2UubGFzdFJlc3BvbnNlLm1ldGEucmVmZXJlbmNlO1xuICAgICAgICAgICAgICAgIGNvbnN0IHN0YXR1dCA9XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2dlc2RlbVNlcnZpY2UubGFzdFJlc3BvbnNlICYmXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2dlc2RlbVNlcnZpY2UubGFzdFJlc3BvbnNlLm1ldGEuc3RhdHV0O1xuICAgICAgICAgICAgICAgIGNvbnN0IHNob3VsZFByZXZlbnROYXZpZ2F0aW9uVG9MYXN0ID1cbiAgICAgICAgICAgICAgICAgICAgYWN0aXZhdGVkUm91dGUuc25hcHNob3QuZGF0YVxuICAgICAgICAgICAgICAgICAgICAgICAgLnByZXZlbnROYXZpZ2F0aW9uVG9MYXN0T25UcmFuc2ZlcnJlZCA9PT0gdHJ1ZTtcblxuICAgICAgICAgICAgICAgIGNvbnN0IGxhbmd1YWdlQ29kZSA9XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2dlc2RlbVNlcnZpY2UubGFzdFJlc3BvbnNlICYmXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2dlc2RlbVNlcnZpY2UubGFzdFJlc3BvbnNlLmZvcm0gJiZcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZ2VzZGVtU2VydmljZS5sYXN0UmVzcG9uc2UuZm9ybS5sYW5ndWFnZTtcblxuICAgICAgICAgICAgICAgIHRoaXMuX2RpY3Rpb25hcnlTZXJ2aWNlLmNoYW5nZUxhbmd1YWdlKGxhbmd1YWdlQ29kZSk7XG5cbiAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgICFzaG91bGRQcmV2ZW50TmF2aWdhdGlvblRvTGFzdCAmJlxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlZmVyZW5jZSAmJlxuICAgICAgICAgICAgICAgICAgICBHZXNkZW1TdGF0dXRVdGlscy5pc0ZpbmFsKFxuICAgICAgICAgICAgICAgICAgICAgICAgQWN0aW9uU3RhdHV0W3N0YXR1dCBhcyBBY3Rpb25TdGF0dXRdXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fbmF2aWdhdGlvbi5sYXN0KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZWZlcmVuY2UgJiZcbiAgICAgICAgICAgICAgICAgICAgQWN0aW9uU3RhdHV0W3N0YXR1dCBhcyBBY3Rpb25TdGF0dXRdID09PVxuICAgICAgICAgICAgICAgICAgICAgICAgQWN0aW9uU3RhdHV0LlBFTkRJTkdfUEFZTUVOVFxuICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9uYXZpZ2F0aW9uLnJlY2FwKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gUHJvdGVjdHMgdGhlIHNhdmUgbWV0aG9kIG9uIHRoZSBHZXNkZW1TZXJ2aWNlIGZyb20gY29uY3VycmVudCBhY2Nlc3MuXG4gICAgICAgIHRoaXMuc2VuZEZvckZvcm1Db25jdXJyZW50U2FmZSA9IGdldENvbmN1cnJlbnRTYWZlQ2FsbCgoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBjYW5DcmVhdGVEZW1hbmRlID1cbiAgICAgICAgICAgICAgICB0aGlzLl9uYXZpZ2F0aW9uLmlzRmlyc3RGb3JtUGFnZSgpICYmXG4gICAgICAgICAgICAgICAgIXRoaXMuX2dlc2RlbVNlcnZpY2UubGFzdFJlc3BvbnNlPy5tZXRhPy5yZWZlcmVuY2U/Lmxlbmd0aDtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9nZXNkZW1TZXJ2aWNlLnNhdmUodGhpcy5mb3JtLCBjYW5DcmVhdGVEZW1hbmRlKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gUHJvdGVjdHMgdGhlIHRyYW5zbWl0IG1ldGhvZCBvbiB0aGUgR2VzZGVtU2VydmljZSBmcm9tIGNvbmN1cnJlbnQgYWNjZXNzLlxuICAgICAgICB0aGlzLnRyYW5zbWl0Q29uY3VycmVudFNhZmUgPSBnZXRDb25jdXJyZW50U2FmZUNhbGwoKCkgPT5cbiAgICAgICAgICAgIHRoaXMuX2dlc2RlbVNlcnZpY2UudHJhbnNtaXQoKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmdvdFRvVG9wKCk7XG4gICAgICAgIHRoaXMuZm9ybSA9IHRoaXMubmV3Rm9ybSgpO1xuICAgICAgICB0aGlzLl9jdXJyZW50TGFuZ1N1YnNjcmlwdGlvbiA9IHRoaXMuX2RpY3Rpb25hcnlTZXJ2aWNlXG4gICAgICAgICAgICAuZ2V0Q3VycmVudExhbmd1YWdlQ29kZSgpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKGxhbmd1YWdlQ29kZSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtLmxhbmd1YWdlID0gbGFuZ3VhZ2VDb2RlO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5fdmFsaWRhdGlvbkhhbmRsZXJTZXJ2aWNlLnNob3VsZERpc3BsYXlFcnJvcnMoZmFsc2UpO1xuXG4gICAgICAgIHRoaXMudXBkYXRlRm9ybURhdGFTdWJqZWN0U3Vic2NyaXB0aW9uID1cbiAgICAgICAgICAgIHRoaXMuX2dlc2RlbVNlcnZpY2UudXBkYXRlRm9ybURhdGFTdWJqZWN0LnN1YnNjcmliZShmb3JtID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm0gPSBmb3JtO1xuICAgICAgICAgICAgICAgIHRoaXMuX2dlc2RlbUV2ZW50U2VydmljZS5mb3JtSW5pdGlhbGl6YXRpb25TdWJqZWN0Lm5leHQoZm9ybSk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmF0dGFjaG1lbnRzTXVsdGlVcGxvYWRlZFN1YnNjcmlwdGlvbiA9XG4gICAgICAgICAgICB0aGlzLl9wZW5kaW5nVXBsb2FkU2VydmljZS5hdHRhY2htZW50c1VwbG9hZGVkLnN1YnNjcmliZShmb3JtID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm0gPSBmb3JtO1xuICAgICAgICAgICAgICAgIC8vIFBSRVNUQUtJVC0zMDk6IHNldCBiYWNrIHNob3VsZERpc3BsYXlFcnJvcnMgdG8gdHJ1ZSBvbmNlIGZpbGVzIGhhdmUgYmVlbiB1cGxvYWRlZFxuICAgICAgICAgICAgICAgIHRoaXMuX3ZhbGlkYXRpb25IYW5kbGVyU2VydmljZS5zaG91bGREaXNwbGF5RXJyb3JzKHRydWUpO1xuICAgICAgICAgICAgICAgIHRoaXMub25Gb3JtU2VudCh0cnVlKTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuc2F2ZUZvcm1SZXF1ZXN0U3Vic2NyaXB0aW9uID0gdGhpcy5fZm9laG5QYWdlU2VydmljZVxuICAgICAgICAgICAgLnNhdmVGb3JtUmVxdWVzdCgpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMuc2VuZChmYWxzZSkpO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgLy8gQHNlZSBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyL2lzc3Vlcy8xNzU3MiNpc3N1ZWNvbW1lbnQtMzIzNDY1NzM3XG4gICAgICAgIFByb21pc2UucmVzb2x2ZShudWxsKS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX2dlc2RlbVNlcnZpY2UucmVxdWlyZSgpLnN1YnNjcmliZSgpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fY3VycmVudExhbmdTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIHRoaXMucGFnZVRpdGxlU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgICAgICB0aGlzLnVwZGF0ZUZvcm1EYXRhU3ViamVjdFN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgdGhpcy5hdHRhY2htZW50c1NpbmdsZVVwbG9hZGVkU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgICAgICB0aGlzLmF0dGFjaG1lbnRzTXVsdGlVcGxvYWRlZFN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgdGhpcy5fZm9ybUluaXRTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIHRoaXMuc2F2ZUZvcm1SZXF1ZXN0U3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIHNlbmQoZ29Ub05leHRQYWdlOiBib29sZWFuID0gdHJ1ZSk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5fcGVuZGluZ1VwbG9hZFNlcnZpY2UuaGFzUGVuZGluZ0ZpbGVzKCkpIHtcbiAgICAgICAgICAgIGdvVG9OZXh0UGFnZSA9IGZhbHNlO1xuICAgICAgICAgICAgLy8gUFJFU1RBS0lULTMwOTogc2hvdWxkRGlzcGxheUVycm9ycyB3aWxsIGJlIHNldCBiYWNrIHRvIHRydWUgaW4gJ2F0dGFjaG1lbnRzVXBsb2FkZWQnIHN1YnNjcmlwdGlvblxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fdmFsaWRhdGlvbkhhbmRsZXJTZXJ2aWNlLnNob3VsZERpc3BsYXlFcnJvcnModHJ1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zZW5kRm9yRm9ybUNvbmN1cnJlbnRTYWZlLnN1YnNjcmliZSgoKSA9PlxuICAgICAgICAgICAgdGhpcy5vbkZvcm1TZW50KGdvVG9OZXh0UGFnZSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICB0cmFuc21pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdmFsaWRhdGlvbkhhbmRsZXJTZXJ2aWNlLnNob3VsZERpc3BsYXlFcnJvcnModHJ1ZSk7XG4gICAgICAgIHRoaXMudHJhbnNtaXRDb25jdXJyZW50U2FmZVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgdGFwKCgpID0+XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2V2ZW50c0xvZ2dlclNlcnZpY2UuYWRkRXZlbnQoU2RrRXZlbnRUeXBlLlRSQU5TTUlUKVxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IHVua25vd24pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBFTVBUWTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLl9nZXNkZW1TZXJ2aWNlLmxhc3RSZXNwb25zZS5lcnJvcnMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2dlc2RlbUV2ZW50U2VydmljZS5mb3JtVHJhbnNtaXR0ZWRTdWJqZWN0Lm5leHQoXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9nZXNkZW1TZXJ2aWNlLmxhc3RSZXNwb25zZVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9uYXZpZ2F0aW9uLm5leHQoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBzZW5kQW5kVHJhbnNtaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2dlc2RlbUV2ZW50U2VydmljZVxuICAgICAgICAgICAgLmZvcm1TZW50T2JzZXJ2YWJsZSgpXG4gICAgICAgICAgICAucGlwZShmaXJzdCgpKVxuICAgICAgICAgICAgLnN1YnNjcmliZShyZXNwb25zZSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCFyZXNwb25zZS5lcnJvcnMubGVuZ3RoICYmICFyZXNwb25zZS5tZXRhLmNyaXRpY2FsKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghdGhpcy5jaGVja0hhc1BlbmRpbmdzRmlsZXNCZWZvcmVUcmFuc21pdCgpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRyYW5zbWl0KCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLnNlbmQoZmFsc2UpO1xuICAgIH1cblxuICAgIHByZXZpb3VzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9uYXZpZ2F0aW9uLnByZXZpb3VzKCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHNldFBhZ2VUaXRsZShwYWdlVGl0bGU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLl9mb2VoblBhZ2VTZXJ2aWNlLnNldFBhZ2VUaXRsZShwYWdlVGl0bGUpO1xuICAgICAgICB0aGlzLl9icmVhZGNydW1iRXZlbnRTZXJ2aWNlLnNldEN1cnJlbnRCcmVhZGNydW1iKHtcbiAgICAgICAgICAgIHVybDogbnVsbCxcbiAgICAgICAgICAgIHJvdXRlckxpbms6IG51bGwsXG4gICAgICAgICAgICBsYWJlbDogcGFnZVRpdGxlXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBzZXRQYWdlVGl0bGVBc3luYyhwYWdlVGl0bGU6IE9ic2VydmFibGU8c3RyaW5nPik6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5wYWdlVGl0bGVTdWJzY3JpcHRpb24pIHtcbiAgICAgICAgICAgIHRoaXMucGFnZVRpdGxlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5wYWdlVGl0bGVTdWJzY3JpcHRpb24gPSBwYWdlVGl0bGUuc3Vic2NyaWJlKHRpdGxlID0+XG4gICAgICAgICAgICB0aGlzLnNldFBhZ2VUaXRsZSh0aXRsZSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb25Gb3JtU2VudChnb1RvTmV4dFBhZ2U6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuZm9laG5Gb3JtQ29tcG9uZW50KSB7XG4gICAgICAgICAgICAvLyBTb21lIHBhZ2VzIGRvbid0IGhhdmUgYSBmb3JtLlxuICAgICAgICAgICAgdGhpcy5mb2VobkZvcm1Db21wb25lbnQucmVzZXQoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX25hdmlnYXRpb24uY3VycmVudCgpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgaXNWYWxpZCA9XG4gICAgICAgICAgICAgICAgLy8gU29tZSBwYWdlcyBkb24ndCBoYXZlIGEgZm9ybS5cbiAgICAgICAgICAgICAgICB0aGlzLmZvZWhuRm9ybUNvbXBvbmVudCAmJlxuICAgICAgICAgICAgICAgIHRoaXMuZm9laG5Gb3JtQ29tcG9uZW50LmlzVmFsaWQoKSAmJlxuICAgICAgICAgICAgICAgICF0aGlzLl9nZXNkZW1TZXJ2aWNlLmxhc3RSZXNwb25zZS5tZXRhLmNyaXRpY2FsO1xuXG4gICAgICAgICAgICBpZiAoaXNWYWxpZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuX3ZhbGlkYXRpb25IYW5kbGVyU2VydmljZS5zaG91bGREaXNwbGF5RXJyb3JzKGZhbHNlKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5fZ2VzZGVtRXZlbnRTZXJ2aWNlLmZvcm1TZW50U3ViamVjdC5uZXh0KFxuICAgICAgICAgICAgICAgIHRoaXMuX2dlc2RlbVNlcnZpY2UubGFzdFJlc3BvbnNlXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBpZiAoaXNWYWxpZCAmJiBnb1RvTmV4dFBhZ2UpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9uYXZpZ2F0aW9uLm5leHQoKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoIWlzVmFsaWQgJiYgdGhpcy5mb2VobkZvcm1Db21wb25lbnQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmZvZWhuRm9ybUNvbXBvbmVudC5mb2N1c0Vycm9yU3VtbWFyeSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LCBjb25zb2xlLmVycm9yKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNoZWNrSGFzUGVuZGluZ3NGaWxlc0JlZm9yZVRyYW5zbWl0KCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAodGhpcy5fcGVuZGluZ1VwbG9hZFNlcnZpY2UuaGFzUGVuZGluZ0ZpbGVzKCkpIHtcbiAgICAgICAgICAgIGNvbnN0IG11bHRpVXBsb2FkQXR0YWNobWVudFN1YnNjcmlwdGlvbiA9XG4gICAgICAgICAgICAgICAgdGhpcy5fcGVuZGluZ1VwbG9hZFNlcnZpY2UuYXR0YWNobWVudHNVcGxvYWRlZC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBtdWx0aVVwbG9hZEF0dGFjaG1lbnRTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50cmFuc21pdCgpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ290VG9Ub3AoKTogdm9pZCB7XG4gICAgICAgIHdpbmRvdy5zY3JvbGxUbygwLCAwKTtcbiAgICB9XG5cbiAgICBhYnN0cmFjdCBuZXdGb3JtKCk6IFQ7XG59XG4iXX0=
|
|
@@ -7,7 +7,8 @@ import * as i3 from "@angular/common";
|
|
|
7
7
|
import * as i4 from "../../foehn-icons/foehn-icon-chevron-left.component";
|
|
8
8
|
import * as i5 from "../../foehn-icons/foehn-icon-chevron-right.component";
|
|
9
9
|
import * as i6 from "../../gesdem-action-recovery/gesdem-action-recovery-registration/gesdem-action-recovery-registration.component";
|
|
10
|
-
import * as i7 from "../../sdk-
|
|
10
|
+
import * as i7 from "../../sdk-epayment/pending-payment/pending-payment.component";
|
|
11
|
+
import * as i8 from "../../sdk-dictionary/sdk-dictionary.pipe";
|
|
11
12
|
export class FoehnNavigationComponent extends AbstractFoehnNavigationComponent {
|
|
12
13
|
constructor(navigationService, activatedRoute) {
|
|
13
14
|
super();
|
|
@@ -35,6 +36,9 @@ export class FoehnNavigationComponent extends AbstractFoehnNavigationComponent {
|
|
|
35
36
|
canShowPreviousButton() {
|
|
36
37
|
return !this.navigationService.isFirstFormPage();
|
|
37
38
|
}
|
|
39
|
+
isForcedOnRecapForPendingPayment() {
|
|
40
|
+
return this.navigationService.isForcedOnRecapForPendingPayment();
|
|
41
|
+
}
|
|
38
42
|
isLastFormPage() {
|
|
39
43
|
return this.navigationService.isLastFormPage();
|
|
40
44
|
}
|
|
@@ -52,12 +56,12 @@ export class FoehnNavigationComponent extends AbstractFoehnNavigationComponent {
|
|
|
52
56
|
return this.navigationService.isLinearRouting();
|
|
53
57
|
}
|
|
54
58
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FoehnNavigationComponent, deps: [{ token: i1.FoehnNavigationService }, { token: i2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
55
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: FoehnNavigationComponent, selector: "foehn-navigation", inputs: { transmitLabel: "transmitLabel" }, usesInheritance: true, ngImport: i0, template: "<gesdem-action-recovery-registration\n *ngIf=\"showContinueLaterButton\"\n [continueLaterLabel]=\"continueLaterLabel | fromDictionary\"\n [continueLaterAlreadyRegisteredLabel]=\"\n continueLaterAlreadyRegisteredLabel | fromDictionary\n \"\n [continueLaterConnectedLabel]=\"continueLaterConnectedLabel | fromDictionary\"\n [triggerOnPageChange]=\"triggerRecoveryOnPageChange\"\n></gesdem-action-recovery-registration>\n\n<nav class=\"vd-pagination\" id=\"foehn_navContainer\" aria-label=\"Pagination\">\n <ul class=\"vd-pagination__list\">\n <li\n class=\"vd-pagination__item vd-pagination__item--previous\"\n *ngIf=\"canShowPreviousButton()\"\n >\n <button\n id=\"prevButton\"\n type=\"button\"\n class=\"btn btn-link vd-pagination__link vd-pagination__link-reset\"\n (click)=\"$event.preventDefault(); goToPrevious()\"\n >\n <span class=\"vd-pagination__title\">\n <foehn-icon-chevron-left\n class=\"me-1\"\n aria-hidden=\"true\"\n ></foehn-icon-chevron-left>\n {{ prevLabel | fromDictionary }}\n </span>\n <span class=\"visually-hidden\" *ngIf=\"isLinearRouting()\">:</span>\n <span class=\"vd-pagination__label\" *ngIf=\"isLinearRouting()\">\n {{ getPreviousRouteIndex() }}\n {{\n 'foehn-navigation.route.index.separator'\n | fromDictionary\n }}\n {{ getTotalRoutesSize() }}\n </span>\n </button>\n </li>\n <li\n class=\"vd-pagination__item vd-pagination__item--next\"\n *ngIf=\"!isLastFormPage() && canShowNextButton()\"\n >\n <button\n id=\"nextButton\"\n type=\"submit\"\n class=\"btn btn-link vd-pagination__link vd-pagination__link-reset\"\n (click)=\"$event.preventDefault(); goToNext()\"\n >\n <span class=\"vd-pagination__title\">\n {{ nextLabel | fromDictionary }}\n <foehn-icon-chevron-right\n class=\"ms-1\"\n aria-hidden=\"true\"\n ></foehn-icon-chevron-right>\n </span>\n <span class=\"visually-hidden\" *ngIf=\"isLinearRouting()\">:</span>\n <span class=\"vd-pagination__label\" *ngIf=\"isLinearRouting()\">\n {{ getNextRouteIndex() }}\n {{\n 'foehn-navigation.route.index.separator'\n | fromDictionary\n }}\n {{ getTotalRoutesSize() }}\n </span>\n </button>\n </li>\n <li\n class=\"vd-pagination__item vd-pagination__item--next\"\n *ngIf=\"isLastFormPage() && canShowNextButton()\"\n >\n <button\n *ngIf=\"isLastFormPage() && canShowNextButton()\"\n type=\"submit\"\n id=\"transmitButton\"\n (click)=\"goToNext()\"\n class=\"btn btn-success vd-btn-pagination-submit\"\n >\n {{ transmitLabel | fromDictionary }}\n </button>\n </li>\n </ul>\n</nav>\n", styles: [".vd-pagination__link-reset{background:none;border:none;font-weight:inherit;text-decoration-line:none;text-align:inherit;cursor:pointer}.vd-pagination__link-reset:focus{background-color:var(--vd-focus)}:host ::ng-deep .btn.btn-link .svg-inline--fa{color:var(--vd-primary-dark)}:host ::ng-deep .btn.btn-link:hover .svg-inline--fa{color:var(--vd-neutral-dark)}.btn.btn-link{text-transform:none}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.FoehnIconChevronLeftComponent, selector: "foehn-icon-chevron-left" }, { kind: "component", type: i5.FoehnIconChevronRightComponent, selector: "foehn-icon-chevron-right" }, { kind: "component", type: i6.GesdemActionRecoveryRegistrationComponent, selector: "gesdem-action-recovery-registration", inputs: ["dispatchFormErrors", "continueLaterLabel", "continueLaterAlreadyRegisteredLabel", "continueLaterConnectedLabel", "triggerOnPageChange"] }, { kind: "
|
|
59
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: FoehnNavigationComponent, selector: "foehn-navigation", inputs: { transmitLabel: "transmitLabel" }, usesInheritance: true, ngImport: i0, template: "<gesdem-action-recovery-registration\n *ngIf=\"showContinueLaterButton\"\n [continueLaterLabel]=\"continueLaterLabel | fromDictionary\"\n [continueLaterAlreadyRegisteredLabel]=\"\n continueLaterAlreadyRegisteredLabel | fromDictionary\n \"\n [continueLaterConnectedLabel]=\"continueLaterConnectedLabel | fromDictionary\"\n [triggerOnPageChange]=\"triggerRecoveryOnPageChange\"\n></gesdem-action-recovery-registration>\n\n<sdk-pending-payment\n *ngIf=\"isForcedOnRecapForPendingPayment()\"\n (onPay)=\"goToNext()\"\n></sdk-pending-payment>\n\n<nav class=\"vd-pagination\" id=\"foehn_navContainer\" aria-label=\"Pagination\">\n <ul class=\"vd-pagination__list\">\n <li\n class=\"vd-pagination__item vd-pagination__item--previous\"\n *ngIf=\"canShowPreviousButton()\"\n >\n <button\n id=\"prevButton\"\n type=\"button\"\n class=\"btn btn-link vd-pagination__link vd-pagination__link-reset\"\n (click)=\"$event.preventDefault(); goToPrevious()\"\n >\n <span class=\"vd-pagination__title\">\n <foehn-icon-chevron-left\n class=\"me-1\"\n aria-hidden=\"true\"\n ></foehn-icon-chevron-left>\n {{ prevLabel | fromDictionary }}\n </span>\n <span class=\"visually-hidden\" *ngIf=\"isLinearRouting()\">:</span>\n <span class=\"vd-pagination__label\" *ngIf=\"isLinearRouting()\">\n {{ getPreviousRouteIndex() }}\n {{\n 'foehn-navigation.route.index.separator'\n | fromDictionary\n }}\n {{ getTotalRoutesSize() }}\n </span>\n </button>\n </li>\n <li\n class=\"vd-pagination__item vd-pagination__item--next\"\n *ngIf=\"!isLastFormPage() && canShowNextButton()\"\n >\n <button\n id=\"nextButton\"\n type=\"submit\"\n class=\"btn btn-link vd-pagination__link vd-pagination__link-reset\"\n (click)=\"$event.preventDefault(); goToNext()\"\n >\n <span class=\"vd-pagination__title\">\n {{ nextLabel | fromDictionary }}\n <foehn-icon-chevron-right\n class=\"ms-1\"\n aria-hidden=\"true\"\n ></foehn-icon-chevron-right>\n </span>\n <span class=\"visually-hidden\" *ngIf=\"isLinearRouting()\">:</span>\n <span class=\"vd-pagination__label\" *ngIf=\"isLinearRouting()\">\n {{ getNextRouteIndex() }}\n {{\n 'foehn-navigation.route.index.separator'\n | fromDictionary\n }}\n {{ getTotalRoutesSize() }}\n </span>\n </button>\n </li>\n <li\n class=\"vd-pagination__item vd-pagination__item--next\"\n *ngIf=\"isLastFormPage() && canShowNextButton()\"\n >\n <button\n *ngIf=\"isLastFormPage() && canShowNextButton()\"\n type=\"submit\"\n id=\"transmitButton\"\n (click)=\"goToNext()\"\n class=\"btn btn-success vd-btn-pagination-submit\"\n >\n {{ transmitLabel | fromDictionary }}\n </button>\n </li>\n </ul>\n</nav>\n", styles: [".vd-pagination__link-reset{background:none;border:none;font-weight:inherit;text-decoration-line:none;text-align:inherit;cursor:pointer}.vd-pagination__link-reset:focus{background-color:var(--vd-focus)}:host ::ng-deep .btn.btn-link .svg-inline--fa{color:var(--vd-primary-dark)}:host ::ng-deep .btn.btn-link:hover .svg-inline--fa{color:var(--vd-neutral-dark)}.btn.btn-link{text-transform:none}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.FoehnIconChevronLeftComponent, selector: "foehn-icon-chevron-left" }, { kind: "component", type: i5.FoehnIconChevronRightComponent, selector: "foehn-icon-chevron-right" }, { kind: "component", type: i6.GesdemActionRecoveryRegistrationComponent, selector: "gesdem-action-recovery-registration", inputs: ["dispatchFormErrors", "continueLaterLabel", "continueLaterAlreadyRegisteredLabel", "continueLaterConnectedLabel", "triggerOnPageChange"] }, { kind: "component", type: i7.PendingPaymentComponent, selector: "sdk-pending-payment", outputs: ["onPay"] }, { kind: "pipe", type: i8.SdkDictionaryPipe, name: "fromDictionary" }] }); }
|
|
56
60
|
}
|
|
57
61
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FoehnNavigationComponent, decorators: [{
|
|
58
62
|
type: Component,
|
|
59
|
-
args: [{ selector: 'foehn-navigation', template: "<gesdem-action-recovery-registration\n *ngIf=\"showContinueLaterButton\"\n [continueLaterLabel]=\"continueLaterLabel | fromDictionary\"\n [continueLaterAlreadyRegisteredLabel]=\"\n continueLaterAlreadyRegisteredLabel | fromDictionary\n \"\n [continueLaterConnectedLabel]=\"continueLaterConnectedLabel | fromDictionary\"\n [triggerOnPageChange]=\"triggerRecoveryOnPageChange\"\n></gesdem-action-recovery-registration>\n\n<nav class=\"vd-pagination\" id=\"foehn_navContainer\" aria-label=\"Pagination\">\n <ul class=\"vd-pagination__list\">\n <li\n class=\"vd-pagination__item vd-pagination__item--previous\"\n *ngIf=\"canShowPreviousButton()\"\n >\n <button\n id=\"prevButton\"\n type=\"button\"\n class=\"btn btn-link vd-pagination__link vd-pagination__link-reset\"\n (click)=\"$event.preventDefault(); goToPrevious()\"\n >\n <span class=\"vd-pagination__title\">\n <foehn-icon-chevron-left\n class=\"me-1\"\n aria-hidden=\"true\"\n ></foehn-icon-chevron-left>\n {{ prevLabel | fromDictionary }}\n </span>\n <span class=\"visually-hidden\" *ngIf=\"isLinearRouting()\">:</span>\n <span class=\"vd-pagination__label\" *ngIf=\"isLinearRouting()\">\n {{ getPreviousRouteIndex() }}\n {{\n 'foehn-navigation.route.index.separator'\n | fromDictionary\n }}\n {{ getTotalRoutesSize() }}\n </span>\n </button>\n </li>\n <li\n class=\"vd-pagination__item vd-pagination__item--next\"\n *ngIf=\"!isLastFormPage() && canShowNextButton()\"\n >\n <button\n id=\"nextButton\"\n type=\"submit\"\n class=\"btn btn-link vd-pagination__link vd-pagination__link-reset\"\n (click)=\"$event.preventDefault(); goToNext()\"\n >\n <span class=\"vd-pagination__title\">\n {{ nextLabel | fromDictionary }}\n <foehn-icon-chevron-right\n class=\"ms-1\"\n aria-hidden=\"true\"\n ></foehn-icon-chevron-right>\n </span>\n <span class=\"visually-hidden\" *ngIf=\"isLinearRouting()\">:</span>\n <span class=\"vd-pagination__label\" *ngIf=\"isLinearRouting()\">\n {{ getNextRouteIndex() }}\n {{\n 'foehn-navigation.route.index.separator'\n | fromDictionary\n }}\n {{ getTotalRoutesSize() }}\n </span>\n </button>\n </li>\n <li\n class=\"vd-pagination__item vd-pagination__item--next\"\n *ngIf=\"isLastFormPage() && canShowNextButton()\"\n >\n <button\n *ngIf=\"isLastFormPage() && canShowNextButton()\"\n type=\"submit\"\n id=\"transmitButton\"\n (click)=\"goToNext()\"\n class=\"btn btn-success vd-btn-pagination-submit\"\n >\n {{ transmitLabel | fromDictionary }}\n </button>\n </li>\n </ul>\n</nav>\n", styles: [".vd-pagination__link-reset{background:none;border:none;font-weight:inherit;text-decoration-line:none;text-align:inherit;cursor:pointer}.vd-pagination__link-reset:focus{background-color:var(--vd-focus)}:host ::ng-deep .btn.btn-link .svg-inline--fa{color:var(--vd-primary-dark)}:host ::ng-deep .btn.btn-link:hover .svg-inline--fa{color:var(--vd-neutral-dark)}.btn.btn-link{text-transform:none}\n"] }]
|
|
63
|
+
args: [{ selector: 'foehn-navigation', template: "<gesdem-action-recovery-registration\n *ngIf=\"showContinueLaterButton\"\n [continueLaterLabel]=\"continueLaterLabel | fromDictionary\"\n [continueLaterAlreadyRegisteredLabel]=\"\n continueLaterAlreadyRegisteredLabel | fromDictionary\n \"\n [continueLaterConnectedLabel]=\"continueLaterConnectedLabel | fromDictionary\"\n [triggerOnPageChange]=\"triggerRecoveryOnPageChange\"\n></gesdem-action-recovery-registration>\n\n<sdk-pending-payment\n *ngIf=\"isForcedOnRecapForPendingPayment()\"\n (onPay)=\"goToNext()\"\n></sdk-pending-payment>\n\n<nav class=\"vd-pagination\" id=\"foehn_navContainer\" aria-label=\"Pagination\">\n <ul class=\"vd-pagination__list\">\n <li\n class=\"vd-pagination__item vd-pagination__item--previous\"\n *ngIf=\"canShowPreviousButton()\"\n >\n <button\n id=\"prevButton\"\n type=\"button\"\n class=\"btn btn-link vd-pagination__link vd-pagination__link-reset\"\n (click)=\"$event.preventDefault(); goToPrevious()\"\n >\n <span class=\"vd-pagination__title\">\n <foehn-icon-chevron-left\n class=\"me-1\"\n aria-hidden=\"true\"\n ></foehn-icon-chevron-left>\n {{ prevLabel | fromDictionary }}\n </span>\n <span class=\"visually-hidden\" *ngIf=\"isLinearRouting()\">:</span>\n <span class=\"vd-pagination__label\" *ngIf=\"isLinearRouting()\">\n {{ getPreviousRouteIndex() }}\n {{\n 'foehn-navigation.route.index.separator'\n | fromDictionary\n }}\n {{ getTotalRoutesSize() }}\n </span>\n </button>\n </li>\n <li\n class=\"vd-pagination__item vd-pagination__item--next\"\n *ngIf=\"!isLastFormPage() && canShowNextButton()\"\n >\n <button\n id=\"nextButton\"\n type=\"submit\"\n class=\"btn btn-link vd-pagination__link vd-pagination__link-reset\"\n (click)=\"$event.preventDefault(); goToNext()\"\n >\n <span class=\"vd-pagination__title\">\n {{ nextLabel | fromDictionary }}\n <foehn-icon-chevron-right\n class=\"ms-1\"\n aria-hidden=\"true\"\n ></foehn-icon-chevron-right>\n </span>\n <span class=\"visually-hidden\" *ngIf=\"isLinearRouting()\">:</span>\n <span class=\"vd-pagination__label\" *ngIf=\"isLinearRouting()\">\n {{ getNextRouteIndex() }}\n {{\n 'foehn-navigation.route.index.separator'\n | fromDictionary\n }}\n {{ getTotalRoutesSize() }}\n </span>\n </button>\n </li>\n <li\n class=\"vd-pagination__item vd-pagination__item--next\"\n *ngIf=\"isLastFormPage() && canShowNextButton()\"\n >\n <button\n *ngIf=\"isLastFormPage() && canShowNextButton()\"\n type=\"submit\"\n id=\"transmitButton\"\n (click)=\"goToNext()\"\n class=\"btn btn-success vd-btn-pagination-submit\"\n >\n {{ transmitLabel | fromDictionary }}\n </button>\n </li>\n </ul>\n</nav>\n", styles: [".vd-pagination__link-reset{background:none;border:none;font-weight:inherit;text-decoration-line:none;text-align:inherit;cursor:pointer}.vd-pagination__link-reset:focus{background-color:var(--vd-focus)}:host ::ng-deep .btn.btn-link .svg-inline--fa{color:var(--vd-primary-dark)}:host ::ng-deep .btn.btn-link:hover .svg-inline--fa{color:var(--vd-neutral-dark)}.btn.btn-link{text-transform:none}\n"] }]
|
|
60
64
|
}], ctorParameters: () => [{ type: i1.FoehnNavigationService }, { type: i2.ActivatedRoute }], propDecorators: { transmitLabel: [{
|
|
61
65
|
type: Input
|
|
62
66
|
}] } });
|
|
63
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9laG4tbmF2aWdhdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzdGF0aW9ucy1uZy9zcmMvZm9laG4tbmF2aWdhdGlvbi9mb2Vobi1uYXZpZ2F0aW9uL2ZvZWhuLW5hdmlnYXRpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJlc3RhdGlvbnMtbmcvc3JjL2ZvZWhuLW5hdmlnYXRpb24vZm9laG4tbmF2aWdhdGlvbi9mb2Vobi1uYXZpZ2F0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBR3pELE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLHdDQUF3QyxDQUFDOzs7Ozs7Ozs7QUFRMUYsTUFBTSxPQUFPLHdCQUNULFNBQVEsZ0NBQWdDO0lBTXhDLFlBQ1ksaUJBQXlDLEVBQ3pDLGNBQThCO1FBRXRDLEtBQUssRUFBRSxDQUFDO1FBSEEsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUF3QjtRQUN6QyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFKMUMsa0JBQWEsR0FBRyxpQ0FBaUMsQ0FBQztJQU9sRCxDQUFDO0lBRUQsUUFBUTtRQUNKLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQztRQUM1RCxJQUFJLENBQUMsaUJBQWlCLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztJQUNyRCxDQUFDO0lBRUQsaUJBQWlCO1FBQ2IsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN2Qix5RkFBeUY7WUFDekYsT0FBTyxLQUFLLENBQUM7UUFDakIsQ0FBQztRQUVELE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQ2hELElBQUksY0FBYyxLQUFLLElBQUksRUFBRSxDQUFDO1lBQzFCLE9BQU8sS0FBSyxDQUFDO1FBQ2pCLENBQUM7UUFFRCx5SEFBeUg7UUFDekgsdURBQXVEO1FBQ3ZELE9BQU8sY0FBYyxJQUFJLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBQ3hFLENBQUM7SUFFRCxxQkFBcUI7UUFDakIsT0FBTyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUNyRCxDQUFDO0lBRUQsY0FBYztRQUNWLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQ25ELENBQUM7SUFFRCxpQkFBaUI7UUFDYixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBQ3RELENBQUM7SUFFRCxxQkFBcUI7UUFDakIsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMscUJBQXFCLEVBQUUsQ0FBQztJQUMxRCxDQUFDO0lBRUQsa0JBQWtCO1FBQ2Qsd0ZBQXdGO1FBQ3hGLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLGtCQUFrQixFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFRCxlQUFlO1FBQ1gsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDcEQsQ0FBQzsrR0ExRFEsd0JBQXdCO21HQUF4Qix3QkFBd0IsMkhDWHJDLHk5R0FvRkE7OzRGRHpFYSx3QkFBd0I7a0JBTHBDLFNBQVM7K0JBQ0ksa0JBQWtCO3dIQVM1QixhQUFhO3NCQURaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuaW1wb3J0IHsgQWJzdHJhY3RGb2Vobk5hdmlnYXRpb25Db21wb25lbnQgfSBmcm9tICcuLi9hYnN0cmFjdC1mb2Vobi1uYXZpZ2F0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGb2Vobk5hdmlnYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vZm9laG4tbmF2aWdhdGlvbi5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmb2Vobi1uYXZpZ2F0aW9uJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZm9laG4tbmF2aWdhdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4uL2ZvZWhuLW5hdmlnYXRpb24uY29tcG9uZW50LmNzcyddXG59KVxuZXhwb3J0IGNsYXNzIEZvZWhuTmF2aWdhdGlvbkNvbXBvbmVudFxuICAgIGV4dGVuZHMgQWJzdHJhY3RGb2Vobk5hdmlnYXRpb25Db21wb25lbnRcbiAgICBpbXBsZW1lbnRzIE9uSW5pdFxue1xuICAgIEBJbnB1dCgpXG4gICAgdHJhbnNtaXRMYWJlbCA9ICdmb2Vobi1uYXZpZ2F0aW9uLnRyYW5zbWl0LmxhYmVsJztcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIG5hdmlnYXRpb25TZXJ2aWNlOiBGb2Vobk5hdmlnYXRpb25TZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVxuICAgICkge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLm5hdmlnYXRpb25TZXJ2aWNlLmFjdGl2YXRlZFJvdXRlID0gdGhpcy5hY3RpdmF0ZWRSb3V0ZTtcbiAgICAgICAgdGhpcy5uYXZpZ2F0aW9uU2VydmljZS51cGRhdGVSb3V0ZUluZm9ybWF0aW9ucygpO1xuICAgIH1cblxuICAgIGNhblNob3dOZXh0QnV0dG9uKCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoIXRoaXMuc2hvd05leHRCdXR0b24pIHtcbiAgICAgICAgICAgIC8vIEluIGNhc2UgdGhlIHVzZXIgZXhwbGljaXRseSBkaXNhYmxlIHRoZSBuZXh0IGJ1dHRvbiwgZm9yIHZhbGlkYXRpb24gb3IgZXJyb3IgcHVycG9zZXMuXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBuZXh0Um91dGVJbmRleCA9IHRoaXMuZ2V0TmV4dFJvdXRlSW5kZXgoKTtcbiAgICAgICAgaWYgKG5leHRSb3V0ZUluZGV4ID09PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBUaGlzIGFzc3VtZXMgdGhhdCB0aGUgcm91dGUgb3JkZXJzIGFyZSBsb3dlciB0aGFuIHRoZSBsYXN0IG9uZS4gRm9yIGluc3RhbmNlIHRoZSBsYXN0IG9uZSBiZWluZyB0aGUgY29uZmlybWF0aW9uIHBhZ2UsXG4gICAgICAgIC8vIGl0cyBvcmRlciBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBhbGwgdGhlIG90aGVyIG9yZGVycy5cbiAgICAgICAgcmV0dXJuIG5leHRSb3V0ZUluZGV4IDw9IHRoaXMubmF2aWdhdGlvblNlcnZpY2UuZ2V0TGFzdFJvdXRlT3JkZXIoKTtcbiAgICB9XG5cbiAgICBjYW5TaG93UHJldmlvdXNCdXR0b24oKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhdGhpcy5uYXZpZ2F0aW9uU2VydmljZS5pc0ZpcnN0Rm9ybVBhZ2UoKTtcbiAgICB9XG5cbiAgICBpc0xhc3RGb3JtUGFnZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubmF2aWdhdGlvblNlcnZpY2UuaXNMYXN0Rm9ybVBhZ2UoKTtcbiAgICB9XG5cbiAgICBnZXROZXh0Um91dGVJbmRleCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5uYXZpZ2F0aW9uU2VydmljZS5nZXROZXh0Um91dGVJbmRleCgpO1xuICAgIH1cblxuICAgIGdldFByZXZpb3VzUm91dGVJbmRleCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5uYXZpZ2F0aW9uU2VydmljZS5nZXRQcmV2aW91c1JvdXRlSW5kZXgoKTtcbiAgICB9XG5cbiAgICBnZXRUb3RhbFJvdXRlc1NpemUoKTogbnVtYmVyIHtcbiAgICAgICAgLy8gQXNzdW1lcyB0aGF0IGxhc3Qgcm91dGUgaXMgdGhlIGNvbmZpcm1hdGlvbiBwYWdlIGFuZCB0aHVzIGlzbid0IGNvbnNpZGVyZWQgYXMgYSBzdGVwLlxuICAgICAgICByZXR1cm4gdGhpcy5uYXZpZ2F0aW9uU2VydmljZS5nZXRUb3RhbFJvdXRlc1NpemUoKSAtIDE7XG4gICAgfVxuXG4gICAgaXNMaW5lYXJSb3V0aW5nKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5uYXZpZ2F0aW9uU2VydmljZS5pc0xpbmVhclJvdXRpbmcoKTtcbiAgICB9XG59XG4iLCI8Z2VzZGVtLWFjdGlvbi1yZWNvdmVyeS1yZWdpc3RyYXRpb25cbiAgICAqbmdJZj1cInNob3dDb250aW51ZUxhdGVyQnV0dG9uXCJcbiAgICBbY29udGludWVMYXRlckxhYmVsXT1cImNvbnRpbnVlTGF0ZXJMYWJlbCB8IGZyb21EaWN0aW9uYXJ5XCJcbiAgICBbY29udGludWVMYXRlckFscmVhZHlSZWdpc3RlcmVkTGFiZWxdPVwiXG4gICAgICAgIGNvbnRpbnVlTGF0ZXJBbHJlYWR5UmVnaXN0ZXJlZExhYmVsIHwgZnJvbURpY3Rpb25hcnlcbiAgICBcIlxuICAgIFtjb250aW51ZUxhdGVyQ29ubmVjdGVkTGFiZWxdPVwiY29udGludWVMYXRlckNvbm5lY3RlZExhYmVsIHwgZnJvbURpY3Rpb25hcnlcIlxuICAgIFt0cmlnZ2VyT25QYWdlQ2hhbmdlXT1cInRyaWdnZXJSZWNvdmVyeU9uUGFnZUNoYW5nZVwiXG4+PC9nZXNkZW0tYWN0aW9uLXJlY292ZXJ5LXJlZ2lzdHJhdGlvbj5cblxuPG5hdiBjbGFzcz1cInZkLXBhZ2luYXRpb25cIiBpZD1cImZvZWhuX25hdkNvbnRhaW5lclwiIGFyaWEtbGFiZWw9XCJQYWdpbmF0aW9uXCI+XG4gICAgPHVsIGNsYXNzPVwidmQtcGFnaW5hdGlvbl9fbGlzdFwiPlxuICAgICAgICA8bGlcbiAgICAgICAgICAgIGNsYXNzPVwidmQtcGFnaW5hdGlvbl9faXRlbSB2ZC1wYWdpbmF0aW9uX19pdGVtLS1wcmV2aW91c1wiXG4gICAgICAgICAgICAqbmdJZj1cImNhblNob3dQcmV2aW91c0J1dHRvbigpXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIGlkPVwicHJldkJ1dHRvblwiXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLWxpbmsgdmQtcGFnaW5hdGlvbl9fbGluayB2ZC1wYWdpbmF0aW9uX19saW5rLXJlc2V0XCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7IGdvVG9QcmV2aW91cygpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZkLXBhZ2luYXRpb25fX3RpdGxlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxmb2Vobi1pY29uLWNoZXZyb24tbGVmdFxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtZS0xXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgID48L2ZvZWhuLWljb24tY2hldnJvbi1sZWZ0PlxuICAgICAgICAgICAgICAgICAgICB7eyBwcmV2TGFiZWwgfCBmcm9tRGljdGlvbmFyeSB9fVxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZpc3VhbGx5LWhpZGRlblwiICpuZ0lmPVwiaXNMaW5lYXJSb3V0aW5nKClcIj46PC9zcGFuPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmQtcGFnaW5hdGlvbl9fbGFiZWxcIiAqbmdJZj1cImlzTGluZWFyUm91dGluZygpXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7IGdldFByZXZpb3VzUm91dGVJbmRleCgpIH19XG4gICAgICAgICAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICAgICAgICAgICAnZm9laG4tbmF2aWdhdGlvbi5yb3V0ZS5pbmRleC5zZXBhcmF0b3InXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBmcm9tRGljdGlvbmFyeVxuICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICB7eyBnZXRUb3RhbFJvdXRlc1NpemUoKSB9fVxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2xpPlxuICAgICAgICA8bGlcbiAgICAgICAgICAgIGNsYXNzPVwidmQtcGFnaW5hdGlvbl9faXRlbSB2ZC1wYWdpbmF0aW9uX19pdGVtLS1uZXh0XCJcbiAgICAgICAgICAgICpuZ0lmPVwiIWlzTGFzdEZvcm1QYWdlKCkgJiYgY2FuU2hvd05leHRCdXR0b24oKVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICBpZD1cIm5leHRCdXR0b25cIlxuICAgICAgICAgICAgICAgIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1saW5rIHZkLXBhZ2luYXRpb25fX2xpbmsgdmQtcGFnaW5hdGlvbl9fbGluay1yZXNldFwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIiRldmVudC5wcmV2ZW50RGVmYXVsdCgpOyBnb1RvTmV4dCgpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZkLXBhZ2luYXRpb25fX3RpdGxlXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7IG5leHRMYWJlbCB8IGZyb21EaWN0aW9uYXJ5IH19XG4gICAgICAgICAgICAgICAgICAgIDxmb2Vobi1pY29uLWNoZXZyb24tcmlnaHRcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibXMtMVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICA+PC9mb2Vobi1pY29uLWNoZXZyb24tcmlnaHQ+XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmlzdWFsbHktaGlkZGVuXCIgKm5nSWY9XCJpc0xpbmVhclJvdXRpbmcoKVwiPjo8L3NwYW4+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2ZC1wYWdpbmF0aW9uX19sYWJlbFwiICpuZ0lmPVwiaXNMaW5lYXJSb3V0aW5nKClcIj5cbiAgICAgICAgICAgICAgICAgICAge3sgZ2V0TmV4dFJvdXRlSW5kZXgoKSB9fVxuICAgICAgICAgICAgICAgICAgICB7e1xuICAgICAgICAgICAgICAgICAgICAgICAgJ2ZvZWhuLW5hdmlnYXRpb24ucm91dGUuaW5kZXguc2VwYXJhdG9yJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgZnJvbURpY3Rpb25hcnlcbiAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAge3sgZ2V0VG90YWxSb3V0ZXNTaXplKCkgfX1cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9saT5cbiAgICAgICAgPGxpXG4gICAgICAgICAgICBjbGFzcz1cInZkLXBhZ2luYXRpb25fX2l0ZW0gdmQtcGFnaW5hdGlvbl9faXRlbS0tbmV4dFwiXG4gICAgICAgICAgICAqbmdJZj1cImlzTGFzdEZvcm1QYWdlKCkgJiYgY2FuU2hvd05leHRCdXR0b24oKVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAqbmdJZj1cImlzTGFzdEZvcm1QYWdlKCkgJiYgY2FuU2hvd05leHRCdXR0b24oKVwiXG4gICAgICAgICAgICAgICAgdHlwZT1cInN1Ym1pdFwiXG4gICAgICAgICAgICAgICAgaWQ9XCJ0cmFuc21pdEJ1dHRvblwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImdvVG9OZXh0KClcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1zdWNjZXNzIHZkLWJ0bi1wYWdpbmF0aW9uLXN1Ym1pdFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3sgdHJhbnNtaXRMYWJlbCB8IGZyb21EaWN0aW9uYXJ5IH19XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9saT5cbiAgICA8L3VsPlxuPC9uYXY+XG4iXX0=
|
|
67
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9laG4tbmF2aWdhdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzdGF0aW9ucy1uZy9zcmMvZm9laG4tbmF2aWdhdGlvbi9mb2Vobi1uYXZpZ2F0aW9uL2ZvZWhuLW5hdmlnYXRpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJlc3RhdGlvbnMtbmcvc3JjL2ZvZWhuLW5hdmlnYXRpb24vZm9laG4tbmF2aWdhdGlvbi9mb2Vobi1uYXZpZ2F0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBR3pELE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLHdDQUF3QyxDQUFDOzs7Ozs7Ozs7O0FBUTFGLE1BQU0sT0FBTyx3QkFDVCxTQUFRLGdDQUFnQztJQU14QyxZQUNZLGlCQUF5QyxFQUN6QyxjQUE4QjtRQUV0QyxLQUFLLEVBQUUsQ0FBQztRQUhBLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBd0I7UUFDekMsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBSjFDLGtCQUFhLEdBQUcsaUNBQWlDLENBQUM7SUFPbEQsQ0FBQztJQUVELFFBQVE7UUFDSixJQUFJLENBQUMsaUJBQWlCLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUM7UUFDNUQsSUFBSSxDQUFDLGlCQUFpQixDQUFDLHVCQUF1QixFQUFFLENBQUM7SUFDckQsQ0FBQztJQUVELGlCQUFpQjtRQUNiLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDdkIseUZBQXlGO1lBQ3pGLE9BQU8sS0FBSyxDQUFDO1FBQ2pCLENBQUM7UUFFRCxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUNoRCxJQUFJLGNBQWMsS0FBSyxJQUFJLEVBQUUsQ0FBQztZQUMxQixPQUFPLEtBQUssQ0FBQztRQUNqQixDQUFDO1FBRUQseUhBQXlIO1FBQ3pILHVEQUF1RDtRQUN2RCxPQUFPLGNBQWMsSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUN4RSxDQUFDO0lBRUQscUJBQXFCO1FBQ2pCLE9BQU8sQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDckQsQ0FBQztJQUVELGdDQUFnQztRQUM1QixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxnQ0FBZ0MsRUFBRSxDQUFDO0lBQ3JFLENBQUM7SUFFRCxjQUFjO1FBQ1YsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDbkQsQ0FBQztJQUVELGlCQUFpQjtRQUNiLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLGlCQUFpQixFQUFFLENBQUM7SUFDdEQsQ0FBQztJQUVELHFCQUFxQjtRQUNqQixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO0lBQzFELENBQUM7SUFFRCxrQkFBa0I7UUFDZCx3RkFBd0Y7UUFDeEYsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsa0JBQWtCLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVELGVBQWU7UUFDWCxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUNwRCxDQUFDOytHQTlEUSx3QkFBd0I7bUdBQXhCLHdCQUF3QiwySENYckMsd2xIQXlGQTs7NEZEOUVhLHdCQUF3QjtrQkFMcEMsU0FBUzsrQkFDSSxrQkFBa0I7d0hBUzVCLGFBQWE7c0JBRFosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbXBvcnQgeyBBYnN0cmFjdEZvZWhuTmF2aWdhdGlvbkNvbXBvbmVudCB9IGZyb20gJy4uL2Fic3RyYWN0LWZvZWhuLW5hdmlnYXRpb24uY29tcG9uZW50JztcbmltcG9ydCB7IEZvZWhuTmF2aWdhdGlvblNlcnZpY2UgfSBmcm9tICcuLi9mb2Vobi1uYXZpZ2F0aW9uLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ZvZWhuLW5hdmlnYXRpb24nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9mb2Vobi1uYXZpZ2F0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi4vZm9laG4tbmF2aWdhdGlvbi5jb21wb25lbnQuY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgRm9laG5OYXZpZ2F0aW9uQ29tcG9uZW50XG4gICAgZXh0ZW5kcyBBYnN0cmFjdEZvZWhuTmF2aWdhdGlvbkNvbXBvbmVudFxuICAgIGltcGxlbWVudHMgT25Jbml0XG57XG4gICAgQElucHV0KClcbiAgICB0cmFuc21pdExhYmVsID0gJ2ZvZWhuLW5hdmlnYXRpb24udHJhbnNtaXQubGFiZWwnO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgbmF2aWdhdGlvblNlcnZpY2U6IEZvZWhuTmF2aWdhdGlvblNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMubmF2aWdhdGlvblNlcnZpY2UuYWN0aXZhdGVkUm91dGUgPSB0aGlzLmFjdGl2YXRlZFJvdXRlO1xuICAgICAgICB0aGlzLm5hdmlnYXRpb25TZXJ2aWNlLnVwZGF0ZVJvdXRlSW5mb3JtYXRpb25zKCk7XG4gICAgfVxuXG4gICAgY2FuU2hvd05leHRCdXR0b24oKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICghdGhpcy5zaG93TmV4dEJ1dHRvbikge1xuICAgICAgICAgICAgLy8gSW4gY2FzZSB0aGUgdXNlciBleHBsaWNpdGx5IGRpc2FibGUgdGhlIG5leHQgYnV0dG9uLCBmb3IgdmFsaWRhdGlvbiBvciBlcnJvciBwdXJwb3Nlcy5cbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IG5leHRSb3V0ZUluZGV4ID0gdGhpcy5nZXROZXh0Um91dGVJbmRleCgpO1xuICAgICAgICBpZiAobmV4dFJvdXRlSW5kZXggPT09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFRoaXMgYXNzdW1lcyB0aGF0IHRoZSByb3V0ZSBvcmRlcnMgYXJlIGxvd2VyIHRoYW4gdGhlIGxhc3Qgb25lLiBGb3IgaW5zdGFuY2UgdGhlIGxhc3Qgb25lIGJlaW5nIHRoZSBjb25maXJtYXRpb24gcGFnZSxcbiAgICAgICAgLy8gaXRzIG9yZGVyIG11c3QgYmUgZ3JlYXRlciB0aGFuIGFsbCB0aGUgb3RoZXIgb3JkZXJzLlxuICAgICAgICByZXR1cm4gbmV4dFJvdXRlSW5kZXggPD0gdGhpcy5uYXZpZ2F0aW9uU2VydmljZS5nZXRMYXN0Um91dGVPcmRlcigpO1xuICAgIH1cblxuICAgIGNhblNob3dQcmV2aW91c0J1dHRvbigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLm5hdmlnYXRpb25TZXJ2aWNlLmlzRmlyc3RGb3JtUGFnZSgpO1xuICAgIH1cblxuICAgIGlzRm9yY2VkT25SZWNhcEZvclBlbmRpbmdQYXltZW50KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5uYXZpZ2F0aW9uU2VydmljZS5pc0ZvcmNlZE9uUmVjYXBGb3JQZW5kaW5nUGF5bWVudCgpO1xuICAgIH1cblxuICAgIGlzTGFzdEZvcm1QYWdlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5uYXZpZ2F0aW9uU2VydmljZS5pc0xhc3RGb3JtUGFnZSgpO1xuICAgIH1cblxuICAgIGdldE5leHRSb3V0ZUluZGV4KCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLm5hdmlnYXRpb25TZXJ2aWNlLmdldE5leHRSb3V0ZUluZGV4KCk7XG4gICAgfVxuXG4gICAgZ2V0UHJldmlvdXNSb3V0ZUluZGV4KCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLm5hdmlnYXRpb25TZXJ2aWNlLmdldFByZXZpb3VzUm91dGVJbmRleCgpO1xuICAgIH1cblxuICAgIGdldFRvdGFsUm91dGVzU2l6ZSgpOiBudW1iZXIge1xuICAgICAgICAvLyBBc3N1bWVzIHRoYXQgbGFzdCByb3V0ZSBpcyB0aGUgY29uZmlybWF0aW9uIHBhZ2UgYW5kIHRodXMgaXNuJ3QgY29uc2lkZXJlZCBhcyBhIHN0ZXAuXG4gICAgICAgIHJldHVybiB0aGlzLm5hdmlnYXRpb25TZXJ2aWNlLmdldFRvdGFsUm91dGVzU2l6ZSgpIC0gMTtcbiAgICB9XG5cbiAgICBpc0xpbmVhclJvdXRpbmcoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLm5hdmlnYXRpb25TZXJ2aWNlLmlzTGluZWFyUm91dGluZygpO1xuICAgIH1cbn1cbiIsIjxnZXNkZW0tYWN0aW9uLXJlY292ZXJ5LXJlZ2lzdHJhdGlvblxuICAgICpuZ0lmPVwic2hvd0NvbnRpbnVlTGF0ZXJCdXR0b25cIlxuICAgIFtjb250aW51ZUxhdGVyTGFiZWxdPVwiY29udGludWVMYXRlckxhYmVsIHwgZnJvbURpY3Rpb25hcnlcIlxuICAgIFtjb250aW51ZUxhdGVyQWxyZWFkeVJlZ2lzdGVyZWRMYWJlbF09XCJcbiAgICAgICAgY29udGludWVMYXRlckFscmVhZHlSZWdpc3RlcmVkTGFiZWwgfCBmcm9tRGljdGlvbmFyeVxuICAgIFwiXG4gICAgW2NvbnRpbnVlTGF0ZXJDb25uZWN0ZWRMYWJlbF09XCJjb250aW51ZUxhdGVyQ29ubmVjdGVkTGFiZWwgfCBmcm9tRGljdGlvbmFyeVwiXG4gICAgW3RyaWdnZXJPblBhZ2VDaGFuZ2VdPVwidHJpZ2dlclJlY292ZXJ5T25QYWdlQ2hhbmdlXCJcbj48L2dlc2RlbS1hY3Rpb24tcmVjb3ZlcnktcmVnaXN0cmF0aW9uPlxuXG48c2RrLXBlbmRpbmctcGF5bWVudFxuICAgICpuZ0lmPVwiaXNGb3JjZWRPblJlY2FwRm9yUGVuZGluZ1BheW1lbnQoKVwiXG4gICAgKG9uUGF5KT1cImdvVG9OZXh0KClcIlxuPjwvc2RrLXBlbmRpbmctcGF5bWVudD5cblxuPG5hdiBjbGFzcz1cInZkLXBhZ2luYXRpb25cIiBpZD1cImZvZWhuX25hdkNvbnRhaW5lclwiIGFyaWEtbGFiZWw9XCJQYWdpbmF0aW9uXCI+XG4gICAgPHVsIGNsYXNzPVwidmQtcGFnaW5hdGlvbl9fbGlzdFwiPlxuICAgICAgICA8bGlcbiAgICAgICAgICAgIGNsYXNzPVwidmQtcGFnaW5hdGlvbl9faXRlbSB2ZC1wYWdpbmF0aW9uX19pdGVtLS1wcmV2aW91c1wiXG4gICAgICAgICAgICAqbmdJZj1cImNhblNob3dQcmV2aW91c0J1dHRvbigpXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIGlkPVwicHJldkJ1dHRvblwiXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLWxpbmsgdmQtcGFnaW5hdGlvbl9fbGluayB2ZC1wYWdpbmF0aW9uX19saW5rLXJlc2V0XCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7IGdvVG9QcmV2aW91cygpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZkLXBhZ2luYXRpb25fX3RpdGxlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxmb2Vobi1pY29uLWNoZXZyb24tbGVmdFxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtZS0xXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgID48L2ZvZWhuLWljb24tY2hldnJvbi1sZWZ0PlxuICAgICAgICAgICAgICAgICAgICB7eyBwcmV2TGFiZWwgfCBmcm9tRGljdGlvbmFyeSB9fVxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZpc3VhbGx5LWhpZGRlblwiICpuZ0lmPVwiaXNMaW5lYXJSb3V0aW5nKClcIj46PC9zcGFuPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmQtcGFnaW5hdGlvbl9fbGFiZWxcIiAqbmdJZj1cImlzTGluZWFyUm91dGluZygpXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7IGdldFByZXZpb3VzUm91dGVJbmRleCgpIH19XG4gICAgICAgICAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICAgICAgICAgICAnZm9laG4tbmF2aWdhdGlvbi5yb3V0ZS5pbmRleC5zZXBhcmF0b3InXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBmcm9tRGljdGlvbmFyeVxuICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICB7eyBnZXRUb3RhbFJvdXRlc1NpemUoKSB9fVxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2xpPlxuICAgICAgICA8bGlcbiAgICAgICAgICAgIGNsYXNzPVwidmQtcGFnaW5hdGlvbl9faXRlbSB2ZC1wYWdpbmF0aW9uX19pdGVtLS1uZXh0XCJcbiAgICAgICAgICAgICpuZ0lmPVwiIWlzTGFzdEZvcm1QYWdlKCkgJiYgY2FuU2hvd05leHRCdXR0b24oKVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICBpZD1cIm5leHRCdXR0b25cIlxuICAgICAgICAgICAgICAgIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1saW5rIHZkLXBhZ2luYXRpb25fX2xpbmsgdmQtcGFnaW5hdGlvbl9fbGluay1yZXNldFwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIiRldmVudC5wcmV2ZW50RGVmYXVsdCgpOyBnb1RvTmV4dCgpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZkLXBhZ2luYXRpb25fX3RpdGxlXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7IG5leHRMYWJlbCB8IGZyb21EaWN0aW9uYXJ5IH19XG4gICAgICAgICAgICAgICAgICAgIDxmb2Vobi1pY29uLWNoZXZyb24tcmlnaHRcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibXMtMVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICA+PC9mb2Vobi1pY29uLWNoZXZyb24tcmlnaHQ+XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmlzdWFsbHktaGlkZGVuXCIgKm5nSWY9XCJpc0xpbmVhclJvdXRpbmcoKVwiPjo8L3NwYW4+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2ZC1wYWdpbmF0aW9uX19sYWJlbFwiICpuZ0lmPVwiaXNMaW5lYXJSb3V0aW5nKClcIj5cbiAgICAgICAgICAgICAgICAgICAge3sgZ2V0TmV4dFJvdXRlSW5kZXgoKSB9fVxuICAgICAgICAgICAgICAgICAgICB7e1xuICAgICAgICAgICAgICAgICAgICAgICAgJ2ZvZWhuLW5hdmlnYXRpb24ucm91dGUuaW5kZXguc2VwYXJhdG9yJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgZnJvbURpY3Rpb25hcnlcbiAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAge3sgZ2V0VG90YWxSb3V0ZXNTaXplKCkgfX1cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9saT5cbiAgICAgICAgPGxpXG4gICAgICAgICAgICBjbGFzcz1cInZkLXBhZ2luYXRpb25fX2l0ZW0gdmQtcGFnaW5hdGlvbl9faXRlbS0tbmV4dFwiXG4gICAgICAgICAgICAqbmdJZj1cImlzTGFzdEZvcm1QYWdlKCkgJiYgY2FuU2hvd05leHRCdXR0b24oKVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAqbmdJZj1cImlzTGFzdEZvcm1QYWdlKCkgJiYgY2FuU2hvd05leHRCdXR0b24oKVwiXG4gICAgICAgICAgICAgICAgdHlwZT1cInN1Ym1pdFwiXG4gICAgICAgICAgICAgICAgaWQ9XCJ0cmFuc21pdEJ1dHRvblwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImdvVG9OZXh0KClcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1zdWNjZXNzIHZkLWJ0bi1wYWdpbmF0aW9uLXN1Ym1pdFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3sgdHJhbnNtaXRMYWJlbCB8IGZyb21EaWN0aW9uYXJ5IH19XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9saT5cbiAgICA8L3VsPlxuPC9uYXY+XG4iXX0=
|
|
@@ -3,6 +3,7 @@ import { NgModule } from '@angular/core';
|
|
|
3
3
|
import { FoehnIconsModule } from '../foehn-icons/foehn-icons.module';
|
|
4
4
|
import { GesdemActionRecoveryModule } from '../gesdem-action-recovery/gesdem-action-recovery.module';
|
|
5
5
|
import { SdkDictionaryModule } from '../sdk-dictionary/sdk-dictionary.module';
|
|
6
|
+
import { SdkEpaymentModule } from '../sdk-epayment/sdk-epayment.module';
|
|
6
7
|
import { FoehnNavigationComponent } from './foehn-navigation/foehn-navigation.component';
|
|
7
8
|
import { FoehnSimpleNavigationComponent } from './foehn-simple-navigation/foehn-simple-navigation.component';
|
|
8
9
|
import * as i0 from "@angular/core";
|
|
@@ -11,11 +12,13 @@ export class FoehnNavigationModule {
|
|
|
11
12
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: FoehnNavigationModule, declarations: [FoehnNavigationComponent, FoehnSimpleNavigationComponent], imports: [CommonModule,
|
|
12
13
|
FoehnIconsModule,
|
|
13
14
|
GesdemActionRecoveryModule,
|
|
14
|
-
SdkDictionaryModule
|
|
15
|
+
SdkDictionaryModule,
|
|
16
|
+
SdkEpaymentModule], exports: [FoehnNavigationComponent, FoehnSimpleNavigationComponent] }); }
|
|
15
17
|
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FoehnNavigationModule, imports: [CommonModule,
|
|
16
18
|
FoehnIconsModule,
|
|
17
19
|
GesdemActionRecoveryModule,
|
|
18
|
-
SdkDictionaryModule
|
|
20
|
+
SdkDictionaryModule,
|
|
21
|
+
SdkEpaymentModule] }); }
|
|
19
22
|
}
|
|
20
23
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FoehnNavigationModule, decorators: [{
|
|
21
24
|
type: NgModule,
|
|
@@ -24,10 +27,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
24
27
|
CommonModule,
|
|
25
28
|
FoehnIconsModule,
|
|
26
29
|
GesdemActionRecoveryModule,
|
|
27
|
-
SdkDictionaryModule
|
|
30
|
+
SdkDictionaryModule,
|
|
31
|
+
SdkEpaymentModule
|
|
28
32
|
],
|
|
29
33
|
declarations: [FoehnNavigationComponent, FoehnSimpleNavigationComponent],
|
|
30
34
|
exports: [FoehnNavigationComponent, FoehnSimpleNavigationComponent]
|
|
31
35
|
}]
|
|
32
36
|
}] });
|
|
33
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9laG4tbmF2aWdhdGlvbi5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzdGF0aW9ucy1uZy9zcmMvZm9laG4tbmF2aWdhdGlvbi9mb2Vobi1uYXZpZ2F0aW9uLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNyRSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSx5REFBeUQsQ0FBQztBQUNyRyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUN6RixPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSw2REFBNkQsQ0FBQzs7QUFhN0csTUFBTSxPQUFPLHFCQUFxQjsrR0FBckIscUJBQXFCO2dIQUFyQixxQkFBcUIsaUJBSGYsd0JBQXdCLEVBQUUsOEJBQThCLGFBTm5FLFlBQVk7WUFDWixnQkFBZ0I7WUFDaEIsMEJBQTBCO1lBQzFCLG1CQUFtQjtZQUNuQixpQkFBaUIsYUFHWCx3QkFBd0IsRUFBRSw4QkFBOEI7Z0hBRXpELHFCQUFxQixZQVQxQixZQUFZO1lBQ1osZ0JBQWdCO1lBQ2hCLDBCQUEwQjtZQUMxQixtQkFBbUI7WUFDbkIsaUJBQWlCOzs0RkFLWixxQkFBcUI7a0JBWGpDLFFBQVE7bUJBQUM7b0JBQ04sT0FBTyxFQUFFO3dCQUNMLFlBQVk7d0JBQ1osZ0JBQWdCO3dCQUNoQiwwQkFBMEI7d0JBQzFCLG1CQUFtQjt3QkFDbkIsaUJBQWlCO3FCQUNwQjtvQkFDRCxZQUFZLEVBQUUsQ0FBQyx3QkFBd0IsRUFBRSw4QkFBOEIsQ0FBQztvQkFDeEUsT0FBTyxFQUFFLENBQUMsd0JBQXdCLEVBQUUsOEJBQThCLENBQUM7aUJBQ3RFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEZvZWhuSWNvbnNNb2R1bGUgfSBmcm9tICcuLi9mb2Vobi1pY29ucy9mb2Vobi1pY29ucy5tb2R1bGUnO1xuaW1wb3J0IHsgR2VzZGVtQWN0aW9uUmVjb3ZlcnlNb2R1bGUgfSBmcm9tICcuLi9nZXNkZW0tYWN0aW9uLXJlY292ZXJ5L2dlc2RlbS1hY3Rpb24tcmVjb3ZlcnkubW9kdWxlJztcbmltcG9ydCB7IFNka0RpY3Rpb25hcnlNb2R1bGUgfSBmcm9tICcuLi9zZGstZGljdGlvbmFyeS9zZGstZGljdGlvbmFyeS5tb2R1bGUnO1xuaW1wb3J0IHsgU2RrRXBheW1lbnRNb2R1bGUgfSBmcm9tICcuLi9zZGstZXBheW1lbnQvc2RrLWVwYXltZW50Lm1vZHVsZSc7XG5pbXBvcnQgeyBGb2Vobk5hdmlnYXRpb25Db21wb25lbnQgfSBmcm9tICcuL2ZvZWhuLW5hdmlnYXRpb24vZm9laG4tbmF2aWdhdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgRm9laG5TaW1wbGVOYXZpZ2F0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9mb2Vobi1zaW1wbGUtbmF2aWdhdGlvbi9mb2Vobi1zaW1wbGUtbmF2aWdhdGlvbi5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBGb2Vobkljb25zTW9kdWxlLFxuICAgICAgICBHZXNkZW1BY3Rpb25SZWNvdmVyeU1vZHVsZSxcbiAgICAgICAgU2RrRGljdGlvbmFyeU1vZHVsZSxcbiAgICAgICAgU2RrRXBheW1lbnRNb2R1bGVcbiAgICBdLFxuICAgIGRlY2xhcmF0aW9uczogW0ZvZWhuTmF2aWdhdGlvbkNvbXBvbmVudCwgRm9laG5TaW1wbGVOYXZpZ2F0aW9uQ29tcG9uZW50XSxcbiAgICBleHBvcnRzOiBbRm9laG5OYXZpZ2F0aW9uQ29tcG9uZW50LCBGb2VoblNpbXBsZU5hdmlnYXRpb25Db21wb25lbnRdXG59KVxuZXhwb3J0IGNsYXNzIEZvZWhuTmF2aWdhdGlvbk1vZHVsZSB7fVxuIl19
|
|
@@ -141,6 +141,12 @@ export class FoehnNavigationService {
|
|
|
141
141
|
const nextRoutePath = route[route.length - 1].path;
|
|
142
142
|
return this.redirect(nextRoutePath);
|
|
143
143
|
}
|
|
144
|
+
recap() {
|
|
145
|
+
this.throwIfNotInit();
|
|
146
|
+
const route = this.getAvailableRoutes();
|
|
147
|
+
const nextRoutePath = route[route.length - 2].path;
|
|
148
|
+
return this.redirect(nextRoutePath);
|
|
149
|
+
}
|
|
144
150
|
redirect(newPath) {
|
|
145
151
|
const routes = [];
|
|
146
152
|
if (this.gesdemService.prefix) {
|
|
@@ -202,7 +208,11 @@ export class FoehnNavigationService {
|
|
|
202
208
|
}
|
|
203
209
|
return (this.getNextAvailableRoute(NavigationDirection.BACKWARD) === null);
|
|
204
210
|
}
|
|
211
|
+
isForcedOnRecapForPendingPayment() {
|
|
212
|
+
return this.isLastFormPage() && this.gesdemService.isPendingPayment();
|
|
213
|
+
}
|
|
205
214
|
isLastFormPage() {
|
|
215
|
+
// === page de recap avant transmission
|
|
206
216
|
if (!this.orderedRoutes?.length) {
|
|
207
217
|
return false;
|
|
208
218
|
}
|
|
@@ -305,4 +315,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
305
315
|
providedIn: 'root'
|
|
306
316
|
}]
|
|
307
317
|
}], ctorParameters: () => [{ type: i1.Router }, { type: i2.GesdemHandlerService }, { type: i3.GesdemActionRecoveryService }, { type: i1.ActivatedRoute }, { type: i4.Location }, { type: i5.DemandeTransmitInterceptor }, { type: i6.SdkEventsLoggerService }] });
|
|
308
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9laG4tbmF2aWdhdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJlc3RhdGlvbnMtbmcvc3JjL2ZvZWhuLW5hdmlnYXRpb24vZm9laG4tbmF2aWdhdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFTM0MsT0FBTyxFQUFFLGVBQWUsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUtuRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0scUNBQXFDLENBQUM7Ozs7Ozs7O0FBR25FLE1BQU0sQ0FBTixJQUFZLG1CQUdYO0FBSEQsV0FBWSxtQkFBbUI7SUFDM0IsbUVBQVksQ0FBQTtJQUNaLHNFQUFhLENBQUE7QUFDakIsQ0FBQyxFQUhXLG1CQUFtQixLQUFuQixtQkFBbUIsUUFHOUI7QUFLRCxNQUFNLE9BQU8sc0JBQXNCO0lBUy9CLFlBQ1ksTUFBYyxFQUNkLGFBQW1DLEVBQ25DLDJCQUF3RCxFQUN4RCxLQUFxQixFQUNyQixRQUFrQixFQUNsQiwwQkFBc0QsRUFDdEQsbUJBQTJDO1FBTjNDLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxrQkFBYSxHQUFiLGFBQWEsQ0FBc0I7UUFDbkMsZ0NBQTJCLEdBQTNCLDJCQUEyQixDQUE2QjtRQUN4RCxVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUNyQixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ2xCLCtCQUEwQixHQUExQiwwQkFBMEIsQ0FBNEI7UUFDdEQsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUF3QjtRQVovQyxXQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ2YsaUNBQTRCLEdBQ2hDLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBQ2hDLGtCQUFhLEdBQUcsSUFBSSxDQUFDO0lBVTFCLENBQUM7SUFFSixJQUFJLFdBQVc7UUFDWCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDdkIsQ0FBQztJQUVELElBQUksY0FBYyxDQUFDLEtBQXFCO1FBQ3BDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQztRQUM3QixJQUFJLENBQUMsNEJBQTRCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRCxNQUFNLENBQUMscUJBQXFCLENBQUMsS0FBNkI7UUFDdEQsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUNSLElBQ0ksS0FBSyxDQUFDLFdBQVc7Z0JBQ2pCLEtBQUssQ0FBQyxXQUFXLENBQUMsSUFBSTtnQkFDdEIsS0FBSyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUM3QixDQUFDO2dCQUNDLE9BQU8sS0FBSyxDQUFDLFdBQVcsQ0FBQztZQUM3QixDQUFDO1lBQ0QsT0FBTyxJQUFJLENBQUMscUJBQXFCLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3BELENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRUQsU0FBUyxDQUFDLEtBQVk7UUFDbEIsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUNSLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFDO1lBRXBELGtHQUFrRztZQUNsRyxxR0FBcUc7WUFDckcsd0dBQXdHO1lBQ3hHLDBEQUEwRDtZQUMxRCxNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDO1lBQ2pELElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztZQUNuQyxJQUFJLENBQUMsMkJBQTJCLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztZQUNqRCxJQUFJLENBQUMsMEJBQTBCLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztZQUNoRCxJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsYUFBYSxLQUFLLEtBQUssQ0FBQztRQUM1RCxDQUFDO1FBQ0QsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRCxjQUFjO1FBQ1YsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNmLE1BQU0sSUFBSSxTQUFTLENBQ2YsaUVBQWlFLENBQ3BFLENBQUM7UUFDTixDQUFDO0lBQ0wsQ0FBQztJQUVELHVCQUF1QjtRQUNuQixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdEIsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxXQUFXLENBQUM7UUFFdEQsSUFBSSxpQkFBaUIsR0FBRyxDQUFDLENBQUM7UUFFMUIsSUFDSSxDQUFDLENBQUMsWUFBWTtZQUNkLENBQUMsQ0FBQyxZQUFZLENBQUMsSUFBSTtZQUNuQixDQUFDLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQzNCLENBQUM7WUFDQyxpQkFBaUIsR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUNoRCxDQUFDO1FBQ0QsSUFBSSxDQUFDLGlCQUFpQixHQUFHLGlCQUFpQixDQUFDO0lBQy9DLENBQUM7SUFFRCxhQUFhO1FBQ1QsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxPQUFPO1FBQ0gsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ25DLE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFDO1FBQzlELENBQUM7UUFDRCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBRWhFLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDO1FBQ3pDLE1BQU0sUUFBUSxHQUFhLEVBQUUsQ0FBQztRQUM5QixJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQ1QsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMxQixDQUFDO1FBRUQsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDakQsUUFBUSxDQUFDLElBQUksQ0FDVCxJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUM5QyxZQUFZLENBQUMsSUFBSSxDQUNwQixDQUFDO1lBRUYsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDakQsTUFBTSxHQUFHLEdBQ0wsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDO2dCQUM5QixJQUFJLENBQUMsK0JBQStCLEVBQUUsQ0FBQztZQUMzQyxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNwQyxDQUFDO1FBRUQsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxrQkFBa0I7UUFDZCxPQUFPLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUM1RCxDQUFDO0lBRUQsK0JBQStCO1FBQzNCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxJQUFJLEVBQUUsQ0FBQztRQUNwRCxJQUFJLFlBQVksR0FBRyxFQUFFLENBQUM7UUFDdEIsS0FBSyxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDcEMsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzFCLFlBQVksSUFBSSxZQUFZLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO1lBQ3pDLFlBQVksSUFBSSxHQUFHLEdBQUcsSUFBSSxLQUFLLEVBQUUsQ0FBQztRQUN0QyxDQUFDO1FBQ0QsT0FBTyxZQUFZLENBQUM7SUFDeEIsQ0FBQztJQUVELHVCQUF1QjtRQUNuQixNQUFNLG1CQUFtQixHQUNyQixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsbUJBQW1CLENBQUM7UUFDeEQsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQztRQUMxRCxJQUFJLENBQUMsQ0FBQyxtQkFBbUIsSUFBSSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDdEMsTUFBTSxNQUFNLEdBQVcsRUFBRSxDQUFDO1lBQzFCLElBQUksQ0FBQyxDQUFDLG1CQUFtQixFQUFFLENBQUM7Z0JBQ3hCLE1BQU0sQ0FBQyxtQkFBbUIsR0FBRyxtQkFBbUIsQ0FBQztZQUNyRCxDQUFDO1lBQ0QsSUFBSSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ2IsTUFBTSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7WUFDL0IsQ0FBQztZQUNELE9BQU8sTUFBTSxDQUFDO1FBQ2xCLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRUQsSUFBSTtRQUNBLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN0QixPQUFPLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN0RSxDQUFDO0lBRUQsUUFBUTtRQUNKLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN0QixPQUFPLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN2RSxDQUFDO0lBRUQsSUFBSTtRQUNBLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN0QixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUN4QyxNQUFNLGFBQWEsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDbkQsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRCxRQUFRLENBQUMsT0FBZTtRQUNwQixNQUFNLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFDbEIsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzVCLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMzQyxDQUFDO1FBQ0QsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBRXJFLE9BQU8sSUFBSSxDQUFDLE1BQU07YUFDYixRQUFRLENBQUMsTUFBTSxFQUFFO1lBQ2QsV0FBVyxFQUFFLElBQUksQ0FBQyx1QkFBdUIsRUFBRTtTQUM5QyxDQUFDO2FBQ0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ1osSUFBSSxPQUFPLEVBQUUsQ0FBQztnQkFDVixJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztZQUMvQixDQUFDO1lBQ0QsT0FBTyxPQUFPLENBQUM7UUFDbkIsQ0FBQyxDQUFDLENBQUM7SUFDWCxDQUFDO0lBRUQsa0JBQWtCO1FBQ2QsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQzVFLENBQUM7SUFFRCxvQkFBb0I7UUFDaEIsZ0NBQWdDO1FBQ2hDLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBRWxELE1BQU0sWUFBWSxHQUFHLGVBQWUsQ0FBQyxJQUFJLENBQ3JDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLEtBQUssSUFBSSxDQUFDLGlCQUFpQixDQUN2RCxDQUFDO1FBRUYsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ2hCLE9BQU8sSUFBSSxDQUFDO1FBQ2hCLENBQUM7UUFFRCxPQUFPLGVBQWUsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVELGtCQUFrQjtRQUNkLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUMsTUFBTSxDQUFDO0lBQzVDLENBQUM7SUFFRCxpQkFBaUI7UUFDYixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUN6QyxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDaEQsQ0FBQztJQUVELHFCQUFxQixDQUFDLFNBQThCO1FBQ2hELGdDQUFnQztRQUNoQyxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUVsRCxvR0FBb0c7UUFDcEcsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUMzRCxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDaEIsTUFBTSxJQUFJLEtBQUssQ0FDWCx1REFBdUQsQ0FDMUQsQ0FBQztRQUNOLENBQUM7UUFFRCxNQUFNLGlCQUFpQixHQUFHLGVBQWUsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDaEUsTUFBTSxXQUFXLEdBQUcsZUFBZSxDQUFDLGlCQUFpQixHQUFHLFNBQVMsQ0FBQyxDQUFDO1FBQ25FLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNmLE9BQU8sSUFBSSxDQUFDO1FBQ2hCLENBQUM7UUFFRCwyRkFBMkY7UUFDM0YsZ0NBQWdDO1FBQ2hDLFdBQVcsQ0FBQyxJQUFJLENBQUMsWUFBWTtZQUN6QixlQUFlLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM3QyxPQUFPLFdBQVcsQ0FBQztJQUN2QixDQUFDO0lBRUQsZUFBZTtRQUNYLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUNuRCxPQUFPLElBQUksQ0FBQztRQUNoQixDQUFDO1FBQ0QsT0FBTyxDQUNILElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLENBQUMsS0FBSyxJQUFJLENBQ3BFLENBQUM7SUFDTixDQUFDO0lBRUQsY0FBYztRQUNWLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLE1BQU0sRUFBRSxDQUFDO1lBQzlCLE9BQU8sS0FBSyxDQUFDO1FBQ2pCLENBQUM7UUFFRCxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxFQUFFLENBQUM7WUFDbkQsT0FBTyxJQUFJLENBQUM7UUFDaEIsQ0FBQztRQUNELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FDeEMsbUJBQW1CLENBQUMsT0FBTyxDQUM5QixDQUFDO1FBQ0YsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ2IsT0FBTyxJQUFJLENBQUM7UUFDaEIsQ0FBQztRQUVELE9BQU8sU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLEtBQUssSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7SUFDN0QsQ0FBQztJQUVELGlCQUFpQjtRQUNiLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FDeEMsbUJBQW1CLENBQUMsT0FBTyxDQUM5QixDQUFDO1FBQ0YsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ2IsT0FBTyxJQUFJLENBQUM7UUFDaEIsQ0FBQztRQUVELE9BQU8sU0FBUyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDdkMsQ0FBQztJQUVELHFCQUFxQjtRQUNqQixNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQzVDLG1CQUFtQixDQUFDLFFBQVEsQ0FDL0IsQ0FBQztRQUNGLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUNqQixPQUFPLElBQUksQ0FBQztRQUNoQixDQUFDO1FBRUQsT0FBTyxhQUFhLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQztJQUMzQyxDQUFDO0lBRUQsZUFBZTtRQUNYLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUM5QixDQUFDO0lBRU8sZUFBZSxDQUFDLGVBQXdCO1FBQzVDLE9BQU8sZUFBZSxDQUFDLElBQUksQ0FDdkIsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssS0FBSyxJQUFJLENBQUMsaUJBQWlCLENBQ3ZELENBQUM7SUFDTixDQUFDO0lBRU8sd0JBQXdCLENBQzVCLFNBQThCO1FBRTlCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUVwRCxNQUFNLFNBQVMsR0FDWCxTQUFTLEtBQUssbUJBQW1CLENBQUMsT0FBTztZQUNyQyxDQUFDLENBQUMsWUFBWSxDQUFDLGtCQUFrQjtZQUNqQyxDQUFDLENBQUMsWUFBWSxDQUFDLG1CQUFtQixDQUFDO1FBQzNDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUV6RCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFTyxnQkFBZ0IsQ0FBQyxLQUFZO1FBQ2pDLE1BQU0sRUFBRSxXQUFXLEVBQUUsR0FBRyxLQUFLLENBQUM7UUFDOUIsSUFBSSxDQUFDLFdBQVcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUN0QyxPQUFPLElBQUksQ0FBQztRQUNoQixDQUFDO1FBRUQsMkNBQTJDO1FBQzNDLE9BQU8sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUNwQixDQUFDLE9BQXNCLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FDM0QsQ0FBQztJQUNOLENBQUM7SUFFTyxhQUFhLENBQUMsT0FBc0I7UUFDeEMsTUFBTSxXQUFXLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRXZELElBQUksT0FBTyxXQUFXLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDbkMsTUFBTSxJQUFJLEtBQUssQ0FDWCxzRUFBc0UsQ0FDekUsQ0FBQztRQUNOLENBQUM7UUFFRCxPQUFPLFdBQVcsQ0FBQztJQUN2QixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNLLGtCQUFrQixDQUFDLGdCQUF1QjtRQUM5QyxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUVwQixNQUFNLGFBQWEsR0FBRyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUM7UUFDaEQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUN4QixPQUFPLEVBQUUsQ0FBQztRQUNkLENBQUM7UUFFRCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBRWpELElBQUksTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNwQixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztRQUN2QixDQUFDO1FBRUQsT0FBTyxNQUFNLENBQUM7SUFDbEIsQ0FBQztJQUVPLGFBQWEsQ0FDakIsYUFBc0IsRUFDdEIsU0FBa0IsRUFBRTtRQUVwQixhQUFhLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQzFCLElBQUksS0FBSyxDQUFDLFFBQVEsSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUMxQyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDL0MsQ0FBQztZQUVELElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ3JDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLEtBQUssQ0FBQztZQUNyQyxDQUFDO1lBRUQsT0FBTyxNQUFNLENBQUM7UUFDbEIsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLE1BQU0sQ0FBQztJQUNsQixDQUFDO0lBRU8sbUJBQW1CO1FBQ3ZCLG9FQUFvRTtRQUNwRSxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ1osTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUNwRCxJQUFJLEtBQUssRUFBRSxDQUFDO2dCQUNSLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNsQixDQUFDO1FBQ0wsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ1YsQ0FBQzsrR0FoWVEsc0JBQXNCO21IQUF0QixzQkFBc0IsY0FGbkIsTUFBTTs7NEZBRVQsc0JBQXNCO2tCQUhsQyxVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExvY2F0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgQWN0aXZhdGVkUm91dGUsXG4gICAgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCxcbiAgICBDYW5BY3RpdmF0ZUZuLFxuICAgIFBhcmFtcyxcbiAgICBSb3V0ZSxcbiAgICBSb3V0ZXJcbn0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBEZW1hbmRlVHJhbnNtaXRJbnRlcmNlcHRvciB9IGZyb20gJy4uL2ZvZWhuLXBhZ2UvZm9laG4tdHJhbnNtaXQtd2FpdGluZy1tb2RhbC9kZW1hbmRlLXRyYW5zbWl0LWludGVyY2VwdG9yJztcbmltcG9ydCB7IEdlc2RlbUhhbmRsZXJTZXJ2aWNlIH0gZnJvbSAnLi4vZ2VzZGVtL2dlc2RlbS1oYW5kbGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgR2VzZGVtQWN0aW9uUmVjb3ZlcnlTZXJ2aWNlIH0gZnJvbSAnLi4vZ2VzZGVtLWFjdGlvbi1yZWNvdmVyeS9nZXNkZW0tYWN0aW9uLXJlY292ZXJ5LnNlcnZpY2UnO1xuaW1wb3J0IHsgU2RrRXZlbnRUeXBlIH0gZnJvbSAnLi4vc2RrLWV2ZW50cy1sb2dnZXIvc2RrLWV2ZW50LXR5cGUnO1xuaW1wb3J0IHsgU2RrRXZlbnRzTG9nZ2VyU2VydmljZSB9IGZyb20gJy4uL3Nkay1ldmVudHMtbG9nZ2VyL3Nkay1ldmVudHMtbG9nZ2VyLnNlcnZpY2UnO1xuXG5leHBvcnQgZW51bSBOYXZpZ2F0aW9uRGlyZWN0aW9uIHtcbiAgICBGT1JXQVJEID0gKzEsXG4gICAgQkFDS1dBUkQgPSAtMVxufVxuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEZvZWhuTmF2aWdhdGlvblNlcnZpY2Uge1xuICAgIGN1cnJlbnRSb3V0ZU9yZGVyOiBudW1iZXI7XG4gICAgb3JkZXJlZFJvdXRlczogUm91dGVbXTtcbiAgICBwcml2YXRlIF9hY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGU7XG4gICAgcHJpdmF0ZSBpc0luaXQgPSBmYWxzZTtcbiAgICBwcml2YXRlIGluaXRpYWxpemVkQW5kUm91dGVBY3RpdmF0ZWQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9XG4gICAgICAgIG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICAgIHByaXZhdGUgbGluZWFyUm91dGluZyA9IHRydWU7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICAgICAgcHJpdmF0ZSBnZXNkZW1TZXJ2aWNlOiBHZXNkZW1IYW5kbGVyU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBnZXNkZW1BY3Rpb25SZWNvdmVyeVNlcnZpY2U6IEdlc2RlbUFjdGlvblJlY292ZXJ5U2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgICAgIHByaXZhdGUgbG9jYXRpb246IExvY2F0aW9uLFxuICAgICAgICBwcml2YXRlIGRlbWFuZGVUcmFuc21pdEludGVyY2VwdG9yOiBEZW1hbmRlVHJhbnNtaXRJbnRlcmNlcHRvcixcbiAgICAgICAgcHJpdmF0ZSBldmVudHNMb2dnZXJTZXJ2aWNlOiBTZGtFdmVudHNMb2dnZXJTZXJ2aWNlXG4gICAgKSB7fVxuXG4gICAgZ2V0IGluaXRpYWxpemVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pc0luaXQ7XG4gICAgfVxuXG4gICAgc2V0IGFjdGl2YXRlZFJvdXRlKHZhbHVlOiBBY3RpdmF0ZWRSb3V0ZSkge1xuICAgICAgICB0aGlzLnRocm93SWZOb3RJbml0KCk7XG4gICAgICAgIHRoaXMuX2FjdGl2YXRlZFJvdXRlID0gdmFsdWU7XG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZWRBbmRSb3V0ZUFjdGl2YXRlZC5uZXh0KHRydWUpO1xuICAgIH1cblxuICAgIHN0YXRpYyBnZXRSb290Um91dGVSZWN1cnNpdmUocm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QpOiBSb3V0ZSB7XG4gICAgICAgIGlmIChyb3V0ZSkge1xuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgIHJvdXRlLnJvdXRlQ29uZmlnICYmXG4gICAgICAgICAgICAgICAgcm91dGUucm91dGVDb25maWcuZGF0YSAmJlxuICAgICAgICAgICAgICAgIHJvdXRlLnJvdXRlQ29uZmlnLmRhdGEucm9vdFxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJvdXRlLnJvdXRlQ29uZmlnO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0Um9vdFJvdXRlUmVjdXJzaXZlKHJvdXRlLnBhcmVudCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgaW5pdFJvdXRlKHJvdXRlOiBSb3V0ZSk6IHZvaWQge1xuICAgICAgICBpZiAocm91dGUpIHtcbiAgICAgICAgICAgIHRoaXMub3JkZXJlZFJvdXRlcyA9IHRoaXMuaW5kZXhSb3V0ZXNCeU9yZGVyKHJvdXRlKTtcblxuICAgICAgICAgICAgLy8gQnkgZGVmYXVsdCB0aGUgcHJlZml4IHNob3VsZCBiZSB0aGUgcGF0aCBvZiB0aGUgcm91dGUuIChlLmcuIGluIC92YWxpZGF0aW9uLzEyMzEyMy0xMjMyMS9wYWdlMSxcbiAgICAgICAgICAgIC8vIHRoZSBwcmVmaXggaXMgXCJ2YWxpZGF0aW9uXCIpLiBIb3dldmVyLCBpZiB0aGUgYXBwbGljYXRpb24gaXMgY29kZS1zcGxpdHRlZCB3aXRoIHRoZSByb3V0aW5nIGRlZmluZWRcbiAgICAgICAgICAgIC8vIGluIGEgbW9kdWxlLCB0aGlzIHdvbid0IHdvcmsuIEluIHRoaXMgY2FzZSwgeW91IGNhbiBzcGVjaWZ5IHRoZSBwYXRoIGluICQuZGF0YS5iYXNlUGF0aCBzbyB0aGUgR2VzRGVtXG4gICAgICAgICAgICAvLyBzZXJ2aWNlIGtub3dzIHdoZXJlIHRvIHNlbmQgdGhlIHJlcXVlc3QgdG8gdGhlIGJhY2tlbmQuXG4gICAgICAgICAgICBjb25zdCBwcmVmaXggPSByb3V0ZS5kYXRhLmJhc2VQYXRoIHx8IHJvdXRlLnBhdGg7XG4gICAgICAgICAgICB0aGlzLmdlc2RlbVNlcnZpY2UucHJlZml4ID0gcHJlZml4O1xuICAgICAgICAgICAgdGhpcy5nZXNkZW1BY3Rpb25SZWNvdmVyeVNlcnZpY2UucHJlZml4ID0gcHJlZml4O1xuICAgICAgICAgICAgdGhpcy5kZW1hbmRlVHJhbnNtaXRJbnRlcmNlcHRvci5wcmVmaXggPSBwcmVmaXg7XG4gICAgICAgICAgICB0aGlzLmxpbmVhclJvdXRpbmcgPSByb3V0ZS5kYXRhLmxpbmVhclJvdXRpbmcgIT09IGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMudGhyb3dJZk5vdEluaXQoKTtcbiAgICB9XG5cbiAgICB0aHJvd0lmTm90SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzSW5pdCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcbiAgICAgICAgICAgICAgICBcIk5vIHJvdXRlIGlzIGlkZW50aWZpZWQgYXMgJ3Jvb3QnLiBIYXZlIHlvdSBjYWxsZWQgaW5pdFJvdXRlKCkgP1wiXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdXBkYXRlUm91dGVJbmZvcm1hdGlvbnMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudGhyb3dJZk5vdEluaXQoKTtcbiAgICAgICAgY29uc3QgY3VycmVudFJvdXRlID0gdGhpcy5fYWN0aXZhdGVkUm91dGUucm91dGVDb25maWc7XG5cbiAgICAgICAgbGV0IGN1cnJlbnRSb3V0ZU9yZGVyID0gMTtcblxuICAgICAgICBpZiAoXG4gICAgICAgICAgICAhIWN1cnJlbnRSb3V0ZSAmJlxuICAgICAgICAgICAgISFjdXJyZW50Um91dGUuZGF0YSAmJlxuICAgICAgICAgICAgISFjdXJyZW50Um91dGUuZGF0YS5vcmRlclxuICAgICAgICApIHtcbiAgICAgICAgICAgIGN1cnJlbnRSb3V0ZU9yZGVyID0gY3VycmVudFJvdXRlLmRhdGEub3JkZXI7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jdXJyZW50Um91dGVPcmRlciA9IGN1cnJlbnRSb3V0ZU9yZGVyO1xuICAgIH1cblxuICAgIGdldEZpcnN0Um91dGUoKTogUm91dGUge1xuICAgICAgICByZXR1cm4gdGhpcy5vcmRlcmVkUm91dGVzWzFdO1xuICAgIH1cblxuICAgIGN1cnJlbnQoKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgICAgIHRoaXMudGhyb3dJZk5vdEluaXQoKTtcbiAgICAgICAgaWYgKCF0aGlzLmdlc2RlbVNlcnZpY2UubGFzdFJlc3BvbnNlKSB7XG4gICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoJ0VycmV1ciBuYXZpZ2F0aW9uU2VydmljZSNjdXJyZW50Jyk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY3VycmVudFJvdXRlID0gdGhpcy5vcmRlcmVkUm91dGVzW3RoaXMuY3VycmVudFJvdXRlT3JkZXJdO1xuXG4gICAgICAgIGNvbnN0IHByZWZpeCA9IHRoaXMuZ2VzZGVtU2VydmljZS5wcmVmaXg7XG4gICAgICAgIGNvbnN0IGNvbW1hbmRzOiBzdHJpbmdbXSA9IFtdO1xuICAgICAgICBpZiAocHJlZml4KSB7XG4gICAgICAgICAgICBjb21tYW5kcy5wdXNoKHByZWZpeCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5nZXNkZW1TZXJ2aWNlLmxhc3RSZXNwb25zZS5tZXRhLnJlZmVyZW5jZSkge1xuICAgICAgICAgICAgY29tbWFuZHMucHVzaChcbiAgICAgICAgICAgICAgICB0aGlzLmdlc2RlbVNlcnZpY2UubGFzdFJlc3BvbnNlLm1ldGEucmVmZXJlbmNlLFxuICAgICAgICAgICAgICAgIGN1cnJlbnRSb3V0ZS5wYXRoXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBjb25zdCB0cmVlID0gdGhpcy5yb3V0ZXIuY3JlYXRlVXJsVHJlZShjb21tYW5kcyk7XG4gICAgICAgICAgICBjb25zdCB1cmwgPVxuICAgICAgICAgICAgICAgIHRoaXMucm91dGVyLnNlcmlhbGl6ZVVybCh0cmVlKSArXG4gICAgICAgICAgICAgICAgdGhpcy5nZXRRdWVyeVBhcmFtc1RvRm9yd2FyZEFzU3RyaW5nKCk7XG4gICAgICAgICAgICB0aGlzLmxvY2F0aW9uLnJlcGxhY2VTdGF0ZSh1cmwpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh0cnVlKTtcbiAgICB9XG5cbiAgICBoYXNCZWVuSW5pdGlhbGl6ZWQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmluaXRpYWxpemVkQW5kUm91dGVBY3RpdmF0ZWQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuXG4gICAgZ2V0UXVlcnlQYXJhbXNUb0ZvcndhcmRBc1N0cmluZygpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBwYXJhbXMgPSB0aGlzLmdldFF1ZXJ5UGFyYW1zVG9Gb3J3YXJkKCkgfHwgW107XG4gICAgICAgIGxldCBzdHJpbmdQYXJhbXMgPSAnJztcbiAgICAgICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMocGFyYW1zKSkge1xuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBwYXJhbXNba2V5XTtcbiAgICAgICAgICAgIHN0cmluZ1BhcmFtcyArPSBzdHJpbmdQYXJhbXMgPyAnJicgOiAnPyc7XG4gICAgICAgICAgICBzdHJpbmdQYXJhbXMgKz0gYCR7a2V5fT0ke3ZhbHVlfWA7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHN0cmluZ1BhcmFtcztcbiAgICB9XG5cbiAgICBnZXRRdWVyeVBhcmFtc1RvRm9yd2FyZCgpOiBQYXJhbXMge1xuICAgICAgICBjb25zdCByZUNhcHRjaGFCeVBhc3NVVUlEID1cbiAgICAgICAgICAgIHRoaXMucm91dGUuc25hcHNob3QucXVlcnlQYXJhbXMucmVDYXB0Y2hhQnlQYXNzVVVJRDtcbiAgICAgICAgY29uc3Qgc2Nyb2xsVG8gPSB0aGlzLnJvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1zLnNjcm9sbFRvO1xuICAgICAgICBpZiAoISFyZUNhcHRjaGFCeVBhc3NVVUlEIHx8ICEhc2Nyb2xsVG8pIHtcbiAgICAgICAgICAgIGNvbnN0IHBhcmFtczogUGFyYW1zID0ge307XG4gICAgICAgICAgICBpZiAoISFyZUNhcHRjaGFCeVBhc3NVVUlEKSB7XG4gICAgICAgICAgICAgICAgcGFyYW1zLnJlQ2FwdGNoYUJ5UGFzc1VVSUQgPSByZUNhcHRjaGFCeVBhc3NVVUlEO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCEhc2Nyb2xsVG8pIHtcbiAgICAgICAgICAgICAgICBwYXJhbXMuc2Nyb2xsVG8gPSBzY3JvbGxUbztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBwYXJhbXM7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgbmV4dCgpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICAgICAgdGhpcy50aHJvd0lmTm90SW5pdCgpO1xuICAgICAgICByZXR1cm4gdGhpcy5yZWRpcmVjdFRvQXZhaWxhYmxlUm91dGUoTmF2aWdhdGlvbkRpcmVjdGlvbi5GT1JXQVJEKTtcbiAgICB9XG5cbiAgICBwcmV2aW91cygpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICAgICAgdGhpcy50aHJvd0lmTm90SW5pdCgpO1xuICAgICAgICByZXR1cm4gdGhpcy5yZWRpcmVjdFRvQXZhaWxhYmxlUm91dGUoTmF2aWdhdGlvbkRpcmVjdGlvbi5CQUNLV0FSRCk7XG4gICAgfVxuXG4gICAgbGFzdCgpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICAgICAgdGhpcy50aHJvd0lmTm90SW5pdCgpO1xuICAgICAgICBjb25zdCByb3V0ZSA9IHRoaXMuZ2V0QXZhaWxhYmxlUm91dGVzKCk7XG4gICAgICAgIGNvbnN0IG5leHRSb3V0ZVBhdGggPSByb3V0ZVtyb3V0ZS5sZW5ndGggLSAxXS5wYXRoO1xuICAgICAgICByZXR1cm4gdGhpcy5yZWRpcmVjdChuZXh0Um91dGVQYXRoKTtcbiAgICB9XG5cbiAgICByZWRpcmVjdChuZXdQYXRoOiBzdHJpbmcpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICAgICAgY29uc3Qgcm91dGVzID0gW107XG4gICAgICAgIGlmICh0aGlzLmdlc2RlbVNlcnZpY2UucHJlZml4KSB7XG4gICAgICAgICAgICByb3V0ZXMucHVzaCh0aGlzLmdlc2RlbVNlcnZpY2UucHJlZml4KTtcbiAgICAgICAgfVxuICAgICAgICByb3V0ZXMucHVzaCh0aGlzLmdlc2RlbVNlcnZpY2UubGFzdFJlc3BvbnNlLm1ldGEucmVmZXJlbmNlLCBuZXdQYXRoKTtcblxuICAgICAgICByZXR1cm4gdGhpcy5yb3V0ZXJcbiAgICAgICAgICAgIC5uYXZpZ2F0ZShyb3V0ZXMsIHtcbiAgICAgICAgICAgICAgICBxdWVyeVBhcmFtczogdGhpcy5nZXRRdWVyeVBhcmFtc1RvRm9yd2FyZCgpXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLnRoZW4oc3VjY2VzcyA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHN1Y2Nlc3MpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRGb2N1c09uUGFnZVRpdGxlKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBzdWNjZXNzO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZ2V0QXZhaWxhYmxlUm91dGVzKCk6IFJvdXRlW10ge1xuICAgICAgICByZXR1cm4gdGhpcy5vcmRlcmVkUm91dGVzLmZpbHRlcihyb3V0ZSA9PiB0aGlzLmlzUm91dGVBdmFpbGFibGUocm91dGUpKTtcbiAgICB9XG5cbiAgICBnZXRDdXJyZW50Um91dGVJbmRleCgpOiBudW1iZXIge1xuICAgICAgICAvLyBUaGlzIGV2YWx1YXRlcyBhbGwgdGhlIGd1YXJkc1xuICAgICAgICBjb25zdCBhdmFpbGFibGVSb3V0ZXMgPSB0aGlzLmdldEF2YWlsYWJsZVJvdXRlcygpO1xuXG4gICAgICAgIGNvbnN0IGN1cnJlbnRSb3V0ZSA9IGF2YWlsYWJsZVJvdXRlcy5maW5kKFxuICAgICAgICAgICAgcm91dGUgPT4gcm91dGUuZGF0YS5vcmRlciA9PT0gdGhpcy5jdXJyZW50Um91dGVPcmRlclxuICAgICAgICApO1xuXG4gICAgICAgIGlmICghY3VycmVudFJvdXRlKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBhdmFpbGFibGVSb3V0ZXMuaW5kZXhPZihjdXJyZW50Um91dGUpO1xuICAgIH1cblxuICAgIGdldFRvdGFsUm91dGVzU2l6ZSgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRBdmFpbGFibGVSb3V0ZXMoKS5sZW5ndGg7XG4gICAgfVxuXG4gICAgZ2V0TGFzdFJvdXRlT3JkZXIoKTogbnVtYmVyIHtcbiAgICAgICAgY29uc3Qgcm91dGVzID0gdGhpcy5nZXRBdmFpbGFibGVSb3V0ZXMoKTtcbiAgICAgICAgcmV0dXJuIHJvdXRlc1tyb3V0ZXMubGVuZ3RoIC0gMV0uZGF0YS5vcmRlcjtcbiAgICB9XG5cbiAgICBnZXROZXh0QXZhaWxhYmxlUm91dGUoZGlyZWN0aW9uOiBOYXZpZ2F0aW9uRGlyZWN0aW9uKTogUm91dGUge1xuICAgICAgICAvLyBUaGlzIGV2YWx1YXRlcyBhbGwgdGhlIGd1YXJkc1xuICAgICAgICBjb25zdCBhdmFpbGFibGVSb3V0ZXMgPSB0aGlzLmdldEF2YWlsYWJsZVJvdXRlcygpO1xuXG4gICAgICAgIC8vIEFzc3VtZXMgdGhhdCB0aGUgbmV4dCBvciBwcmV2aW91cyByb3V0ZSBpcyB0aGUgbmV4dCBvciBwcmV2aW91cyBvbiB0aGUgYXJyYXkgb2YgYXZhaWxhYmxlIHJvdXRlcy5cbiAgICAgICAgY29uc3QgY3VycmVudFJvdXRlID0gdGhpcy5nZXRDdXJyZW50Um91dGUoYXZhaWxhYmxlUm91dGVzKTtcbiAgICAgICAgaWYgKCFjdXJyZW50Um91dGUpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgICAnSW52YWxpZCByb3V0aW5nLCBhdCBsZWFzdCBvbmUgcm91dGUgbXVzdCBiZSBhdmFpbGFibGUnXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgY3VycmVudFJvdXRlSW5kZXggPSBhdmFpbGFibGVSb3V0ZXMuaW5kZXhPZihjdXJyZW50Um91dGUpO1xuICAgICAgICBjb25zdCB0YXJnZXRSb3V0ZSA9IGF2YWlsYWJsZVJvdXRlc1tjdXJyZW50Um91dGVJbmRleCArIGRpcmVjdGlvbl07XG4gICAgICAgIGlmICghdGFyZ2V0Um91dGUpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gVGhlIGRpc3BsYXkgaW5kZXggaXNuJ3QgYWx3YXlzIHRoZSByb3V0ZSBvcmRlciBhcyB3ZSBzdXBwb3J0IGd1YXJkcyBvbiBhdmFpbGFibGUgcm91dGVzLlxuICAgICAgICAvLyBUaGUgZGlzcGxheSBpbmRleCBpcyAxLWJhc2VkLlxuICAgICAgICB0YXJnZXRSb3V0ZS5kYXRhLmRpc3BsYXlJbmRleCA9XG4gICAgICAgICAgICBhdmFpbGFibGVSb3V0ZXMuaW5kZXhPZih0YXJnZXRSb3V0ZSkgKyAxO1xuICAgICAgICByZXR1cm4gdGFyZ2V0Um91dGU7XG4gICAgfVxuXG4gICAgaXNGaXJzdEZvcm1QYWdlKCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoIXRoaXMuZ2V0Q3VycmVudFJvdXRlKHRoaXMuZ2V0QXZhaWxhYmxlUm91dGVzKCkpKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgdGhpcy5nZXROZXh0QXZhaWxhYmxlUm91dGUoTmF2aWdhdGlvbkRpcmVjdGlvbi5CQUNLV0FSRCkgPT09IG51bGxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBpc0xhc3RGb3JtUGFnZSgpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKCF0aGlzLm9yZGVyZWRSb3V0ZXM/Lmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCF0aGlzLmdldEN1cnJlbnRSb3V0ZSh0aGlzLmdldEF2YWlsYWJsZVJvdXRlcygpKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbmV4dFJvdXRlID0gdGhpcy5nZXROZXh0QXZhaWxhYmxlUm91dGUoXG4gICAgICAgICAgICBOYXZpZ2F0aW9uRGlyZWN0aW9uLkZPUldBUkRcbiAgICAgICAgKTtcbiAgICAgICAgaWYgKCFuZXh0Um91dGUpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG5leHRSb3V0ZS5kYXRhLm9yZGVyID09PSB0aGlzLmdldExhc3RSb3V0ZU9yZGVyKCk7XG4gICAgfVxuXG4gICAgZ2V0TmV4dFJvdXRlSW5kZXgoKTogbnVtYmVyIHtcbiAgICAgICAgY29uc3QgbmV4dFJvdXRlID0gdGhpcy5nZXROZXh0QXZhaWxhYmxlUm91dGUoXG4gICAgICAgICAgICBOYXZpZ2F0aW9uRGlyZWN0aW9uLkZPUldBUkRcbiAgICAgICAgKTtcbiAgICAgICAgaWYgKCFuZXh0Um91dGUpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG5leHRSb3V0ZS5kYXRhLmRpc3BsYXlJbmRleDtcbiAgICB9XG5cbiAgICBnZXRQcmV2aW91c1JvdXRlSW5kZXgoKTogbnVtYmVyIHtcbiAgICAgICAgY29uc3QgcHJldmlvdXNSb3V0ZSA9IHRoaXMuZ2V0TmV4dEF2YWlsYWJsZVJvdXRlKFxuICAgICAgICAgICAgTmF2aWdhdGlvbkRpcmVjdGlvbi5CQUNLV0FSRFxuICAgICAgICApO1xuICAgICAgICBpZiAoIXByZXZpb3VzUm91dGUpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHByZXZpb3VzUm91dGUuZGF0YS5kaXNwbGF5SW5kZXg7XG4gICAgfVxuXG4gICAgaXNMaW5lYXJSb3V0aW5nKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5saW5lYXJSb3V0aW5nO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0Q3VycmVudFJvdXRlKGF2YWlsYWJsZVJvdXRlczogUm91dGVbXSk6IFJvdXRlIHtcbiAgICAgICAgcmV0dXJuIGF2YWlsYWJsZVJvdXRlcy5maW5kKFxuICAgICAgICAgICAgcm91dGUgPT4gcm91dGUuZGF0YS5vcmRlciA9PT0gdGhpcy5jdXJyZW50Um91dGVPcmRlclxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVkaXJlY3RUb0F2YWlsYWJsZVJvdXRlKFxuICAgICAgICBkaXJlY3Rpb246IE5hdmlnYXRpb25EaXJlY3Rpb25cbiAgICApOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICAgICAgY29uc3Qgcm91dGUgPSB0aGlzLmdldE5leHRBdmFpbGFibGVSb3V0ZShkaXJlY3Rpb24pO1xuXG4gICAgICAgIGNvbnN0IGV2ZW50VHlwZSA9XG4gICAgICAgICAgICBkaXJlY3Rpb24gPT09IE5hdmlnYXRpb25EaXJlY3Rpb24uRk9SV0FSRFxuICAgICAgICAgICAgICAgID8gU2RrRXZlbnRUeXBlLk5BVklHQVRJT05fRk9SV0FSRFxuICAgICAgICAgICAgICAgIDogU2RrRXZlbnRUeXBlLk5BVklHQVRJT05fQkFDS1dBUkQ7XG4gICAgICAgIHRoaXMuZXZlbnRzTG9nZ2VyU2VydmljZS5hZGRFdmVudChldmVudFR5cGUsIHJvdXRlLnBhdGgpO1xuXG4gICAgICAgIHJldHVybiB0aGlzLnJlZGlyZWN0KHJvdXRlLnBhdGgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNSb3V0ZUF2YWlsYWJsZShyb3V0ZTogUm91dGUpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgeyBjYW5BY3RpdmF0ZSB9ID0gcm91dGU7XG4gICAgICAgIGlmICghY2FuQWN0aXZhdGUgfHwgIWNhbkFjdGl2YXRlLmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBBbGwgdGhlIGd1YXJkcyBtdXN0IGJlIGV2YWx1YXRlZCB0byB0cnVlXG4gICAgICAgIHJldHVybiAhY2FuQWN0aXZhdGUuc29tZShcbiAgICAgICAgICAgIChndWFyZEZuOiBDYW5BY3RpdmF0ZUZuKSA9PiAhdGhpcy5ldmFsdWF0ZUd1YXJkKGd1YXJkRm4pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBldmFsdWF0ZUd1YXJkKGd1YXJkRm46IENhbkFjdGl2YXRlRm4pOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgZ3VhcmRSZXN1bHQgPSBndWFyZEZuKHRoaXMucm91dGUuc25hcHNob3QsIG51bGwpO1xuXG4gICAgICAgIGlmICh0eXBlb2YgZ3VhcmRSZXN1bHQgIT09ICdib29sZWFuJykge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgICAgICdOb3QgaW1wbGVtZW50ZWQ6IER5bmFtaWMgcm91dGluZyBndWFyZHMgb25seSBzdXBwb3J0IGJvb2xlYW4gcmVzdWx0cydcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZ3VhcmRSZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogcmVpbmRleGUgbGVzIHJvdXRlcyBwYXIgXCJvcmRlclwiXG4gICAgICogQHBhcmFtIGFwcGxpY2F0aW9uUm91dGUgYXMgcm91dGVcbiAgICAgKiBAcmV0dXJucyBSb3V0ZVtdXG4gICAgICovXG4gICAgcHJpdmF0ZSBpbmRleFJvdXRlc0J5T3JkZXIoYXBwbGljYXRpb25Sb3V0ZTogUm91dGUpOiBSb3V0ZVtdIHtcbiAgICAgICAgdGhpcy5pc0luaXQgPSBmYWxzZTtcblxuICAgICAgICBjb25zdCByb3V0ZXNUb0NyYXdsID0gYXBwbGljYXRpb25Sb3V0ZS5jaGlsZHJlbjtcbiAgICAgICAgaWYgKCFyb3V0ZXNUb0NyYXdsLmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcmVzdWx0ID0gdGhpcy5mbGF0dGVuUm91dGVzKHJvdXRlc1RvQ3Jhd2wpO1xuXG4gICAgICAgIGlmIChyZXN1bHQubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgdGhpcy5pc0luaXQgPSB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGZsYXR0ZW5Sb3V0ZXMoXG4gICAgICAgIHJvdXRlc1RvQ3Jhd2w6IFJvdXRlW10sXG4gICAgICAgIHJlc3VsdDogUm91dGVbXSA9IFtdXG4gICAgKTogUm91dGVbXSB7XG4gICAgICAgIHJvdXRlc1RvQ3Jhd2wuZm9yRWFjaCh2YWx1ZSA9PiB7XG4gICAgICAgICAgICBpZiAodmFsdWUuY2hpbGRyZW4gJiYgdmFsdWUuY2hpbGRyZW4ubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5mbGF0dGVuUm91dGVzKHZhbHVlLmNoaWxkcmVuLCByZXN1bHQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoISF2YWx1ZS5kYXRhICYmICEhdmFsdWUuZGF0YS5vcmRlcikge1xuICAgICAgICAgICAgICAgIHJlc3VsdFt2YWx1ZS5kYXRhLm9yZGVyXSA9IHZhbHVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0Rm9jdXNPblBhZ2VUaXRsZSgpOiB2b2lkIHtcbiAgICAgICAgLy8gRW5zdXJlcyB0aGF0IHRoZSBmb2N1cyBpcyBwcm9wZXJseSBzZXQgYWZ0ZXIgdGhlIHBhZ2UgaXMgdXBkYXRlZC5cbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB0aXRsZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwYWdlLXRpdGxlJyk7XG4gICAgICAgICAgICBpZiAodGl0bGUpIHtcbiAgICAgICAgICAgICAgICB0aXRsZS5mb2N1cygpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LCAwKTtcbiAgICB9XG59XG4iXX0=
|
|
318
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9laG4tbmF2aWdhdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJlc3RhdGlvbnMtbmcvc3JjL2ZvZWhuLW5hdmlnYXRpb24vZm9laG4tbmF2aWdhdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFTM0MsT0FBTyxFQUFFLGVBQWUsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUtuRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0scUNBQXFDLENBQUM7Ozs7Ozs7O0FBR25FLE1BQU0sQ0FBTixJQUFZLG1CQUdYO0FBSEQsV0FBWSxtQkFBbUI7SUFDM0IsbUVBQVksQ0FBQTtJQUNaLHNFQUFhLENBQUE7QUFDakIsQ0FBQyxFQUhXLG1CQUFtQixLQUFuQixtQkFBbUIsUUFHOUI7QUFLRCxNQUFNLE9BQU8sc0JBQXNCO0lBUy9CLFlBQ1ksTUFBYyxFQUNkLGFBQW1DLEVBQ25DLDJCQUF3RCxFQUN4RCxLQUFxQixFQUNyQixRQUFrQixFQUNsQiwwQkFBc0QsRUFDdEQsbUJBQTJDO1FBTjNDLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxrQkFBYSxHQUFiLGFBQWEsQ0FBc0I7UUFDbkMsZ0NBQTJCLEdBQTNCLDJCQUEyQixDQUE2QjtRQUN4RCxVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUNyQixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ2xCLCtCQUEwQixHQUExQiwwQkFBMEIsQ0FBNEI7UUFDdEQsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUF3QjtRQVovQyxXQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ2YsaUNBQTRCLEdBQ2hDLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBQ2hDLGtCQUFhLEdBQUcsSUFBSSxDQUFDO0lBVTFCLENBQUM7SUFFSixJQUFJLFdBQVc7UUFDWCxPQUFPLElBQUksQ0FBQyxN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QUFDO1FBRUQsT0FBTyxNQUFNLENBQUM7SUFDbEIsQ0FBQztJQUVPLGFBQWEsQ0FDakIsYUFBc0IsRUFDdEIsU0FBa0IsRUFBRTtRQUVwQixhQUFhLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQzFCLElBQUksS0FBSyxDQUFDLFFBQVEsSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUMxQyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDL0MsQ0FBQztZQUVELElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ3JDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLEtBQUssQ0FBQztZQUNyQyxDQUFDO1lBRUQsT0FBTyxNQUFNLENBQUM7UUFDbEIsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLE1BQU0sQ0FBQztJQUNsQixDQUFDO0lBRU8sbUJBQW1CO1FBQ3ZCLG9FQUFvRTtRQUNwRSxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ1osTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUNwRCxJQUFJLEtBQUssRUFBRSxDQUFDO2dCQUNSLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNsQixDQUFDO1FBQ0wsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ1YsQ0FBQzsrR0E1WVEsc0JBQXNCO21IQUF0QixzQkFBc0IsY0FGbkIsTUFBTTs7NEZBRVQsc0JBQXNCO2tCQUhsQyxVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExvY2F0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgQWN0aXZhdGVkUm91dGUsXG4gICAgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCxcbiAgICBDYW5BY3RpdmF0ZUZuLFxuICAgIFBhcmFtcyxcbiAgICBSb3V0ZSxcbiAgICBSb3V0ZXJcbn0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBEZW1hbmRlVHJhbnNtaXRJbnRlcmNlcHRvciB9IGZyb20gJy4uL2ZvZWhuLXBhZ2UvZm9laG4tdHJhbnNtaXQtd2FpdGluZy1tb2RhbC9kZW1hbmRlLXRyYW5zbWl0LWludGVyY2VwdG9yJztcbmltcG9ydCB7IEdlc2RlbUhhbmRsZXJTZXJ2aWNlIH0gZnJvbSAnLi4vZ2VzZGVtL2dlc2RlbS1oYW5kbGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgR2VzZGVtQWN0aW9uUmVjb3ZlcnlTZXJ2aWNlIH0gZnJvbSAnLi4vZ2VzZGVtLWFjdGlvbi1yZWNvdmVyeS9nZXNkZW0tYWN0aW9uLXJlY292ZXJ5LnNlcnZpY2UnO1xuaW1wb3J0IHsgU2RrRXZlbnRUeXBlIH0gZnJvbSAnLi4vc2RrLWV2ZW50cy1sb2dnZXIvc2RrLWV2ZW50LXR5cGUnO1xuaW1wb3J0IHsgU2RrRXZlbnRzTG9nZ2VyU2VydmljZSB9IGZyb20gJy4uL3Nkay1ldmVudHMtbG9nZ2VyL3Nkay1ldmVudHMtbG9nZ2VyLnNlcnZpY2UnO1xuXG5leHBvcnQgZW51bSBOYXZpZ2F0aW9uRGlyZWN0aW9uIHtcbiAgICBGT1JXQVJEID0gKzEsXG4gICAgQkFDS1dBUkQgPSAtMVxufVxuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEZvZWhuTmF2aWdhdGlvblNlcnZpY2Uge1xuICAgIGN1cnJlbnRSb3V0ZU9yZGVyOiBudW1iZXI7XG4gICAgb3JkZXJlZFJvdXRlczogUm91dGVbXTtcbiAgICBwcml2YXRlIF9hY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGU7XG4gICAgcHJpdmF0ZSBpc0luaXQgPSBmYWxzZTtcbiAgICBwcml2YXRlIGluaXRpYWxpemVkQW5kUm91dGVBY3RpdmF0ZWQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9XG4gICAgICAgIG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICAgIHByaXZhdGUgbGluZWFyUm91dGluZyA9IHRydWU7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICAgICAgcHJpdmF0ZSBnZXNkZW1TZXJ2aWNlOiBHZXNkZW1IYW5kbGVyU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBnZXNkZW1BY3Rpb25SZWNvdmVyeVNlcnZpY2U6IEdlc2RlbUFjdGlvblJlY292ZXJ5U2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgICAgIHByaXZhdGUgbG9jYXRpb246IExvY2F0aW9uLFxuICAgICAgICBwcml2YXRlIGRlbWFuZGVUcmFuc21pdEludGVyY2VwdG9yOiBEZW1hbmRlVHJhbnNtaXRJbnRlcmNlcHRvcixcbiAgICAgICAgcHJpdmF0ZSBldmVudHNMb2dnZXJTZXJ2aWNlOiBTZGtFdmVudHNMb2dnZXJTZXJ2aWNlXG4gICAgKSB7fVxuXG4gICAgZ2V0IGluaXRpYWxpemVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pc0luaXQ7XG4gICAgfVxuXG4gICAgc2V0IGFjdGl2YXRlZFJvdXRlKHZhbHVlOiBBY3RpdmF0ZWRSb3V0ZSkge1xuICAgICAgICB0aGlzLnRocm93SWZOb3RJbml0KCk7XG4gICAgICAgIHRoaXMuX2FjdGl2YXRlZFJvdXRlID0gdmFsdWU7XG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZWRBbmRSb3V0ZUFjdGl2YXRlZC5uZXh0KHRydWUpO1xuICAgIH1cblxuICAgIHN0YXRpYyBnZXRSb290Um91dGVSZWN1cnNpdmUocm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QpOiBSb3V0ZSB7XG4gICAgICAgIGlmIChyb3V0ZSkge1xuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgIHJvdXRlLnJvdXRlQ29uZmlnICYmXG4gICAgICAgICAgICAgICAgcm91dGUucm91dGVDb25maWcuZGF0YSAmJlxuICAgICAgICAgICAgICAgIHJvdXRlLnJvdXRlQ29uZmlnLmRhdGEucm9vdFxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJvdXRlLnJvdXRlQ29uZmlnO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0Um9vdFJvdXRlUmVjdXJzaXZlKHJvdXRlLnBhcmVudCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgaW5pdFJvdXRlKHJvdXRlOiBSb3V0ZSk6IHZvaWQge1xuICAgICAgICBpZiAocm91dGUpIHtcbiAgICAgICAgICAgIHRoaXMub3JkZXJlZFJvdXRlcyA9IHRoaXMuaW5kZXhSb3V0ZXNCeU9yZGVyKHJvdXRlKTtcblxuICAgICAgICAgICAgLy8gQnkgZGVmYXVsdCB0aGUgcHJlZml4IHNob3VsZCBiZSB0aGUgcGF0aCBvZiB0aGUgcm91dGUuIChlLmcuIGluIC92YWxpZGF0aW9uLzEyMzEyMy0xMjMyMS9wYWdlMSxcbiAgICAgICAgICAgIC8vIHRoZSBwcmVmaXggaXMgXCJ2YWxpZGF0aW9uXCIpLiBIb3dldmVyLCBpZiB0aGUgYXBwbGljYXRpb24gaXMgY29kZS1zcGxpdHRlZCB3aXRoIHRoZSByb3V0aW5nIGRlZmluZWRcbiAgICAgICAgICAgIC8vIGluIGEgbW9kdWxlLCB0aGlzIHdvbid0IHdvcmsuIEluIHRoaXMgY2FzZSwgeW91IGNhbiBzcGVjaWZ5IHRoZSBwYXRoIGluICQuZGF0YS5iYXNlUGF0aCBzbyB0aGUgR2VzRGVtXG4gICAgICAgICAgICAvLyBzZXJ2aWNlIGtub3dzIHdoZXJlIHRvIHNlbmQgdGhlIHJlcXVlc3QgdG8gdGhlIGJhY2tlbmQuXG4gICAgICAgICAgICBjb25zdCBwcmVmaXggPSByb3V0ZS5kYXRhLmJhc2VQYXRoIHx8IHJvdXRlLnBhdGg7XG4gICAgICAgICAgICB0aGlzLmdlc2RlbVNlcnZpY2UucHJlZml4ID0gcHJlZml4O1xuICAgICAgICAgICAgdGhpcy5nZXNkZW1BY3Rpb25SZWNvdmVyeVNlcnZpY2UucHJlZml4ID0gcHJlZml4O1xuICAgICAgICAgICAgdGhpcy5kZW1hbmRlVHJhbnNtaXRJbnRlcmNlcHRvci5wcmVmaXggPSBwcmVmaXg7XG4gICAgICAgICAgICB0aGlzLmxpbmVhclJvdXRpbmcgPSByb3V0ZS5kYXRhLmxpbmVhclJvdXRpbmcgIT09IGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMudGhyb3dJZk5vdEluaXQoKTtcbiAgICB9XG5cbiAgICB0aHJvd0lmTm90SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzSW5pdCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcbiAgICAgICAgICAgICAgICBcIk5vIHJvdXRlIGlzIGlkZW50aWZpZWQgYXMgJ3Jvb3QnLiBIYXZlIHlvdSBjYWxsZWQgaW5pdFJvdXRlKCkgP1wiXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdXBkYXRlUm91dGVJbmZvcm1hdGlvbnMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudGhyb3dJZk5vdEluaXQoKTtcbiAgICAgICAgY29uc3QgY3VycmVudFJvdXRlID0gdGhpcy5fYWN0aXZhdGVkUm91dGUucm91dGVDb25maWc7XG5cbiAgICAgICAgbGV0IGN1cnJlbnRSb3V0ZU9yZGVyID0gMTtcblxuICAgICAgICBpZiAoXG4gICAgICAgICAgICAhIWN1cnJlbnRSb3V0ZSAmJlxuICAgICAgICAgICAgISFjdXJyZW50Um91dGUuZGF0YSAmJlxuICAgICAgICAgICAgISFjdXJyZW50Um91dGUuZGF0YS5vcmRlclxuICAgICAgICApIHtcbiAgICAgICAgICAgIGN1cnJlbnRSb3V0ZU9yZGVyID0gY3VycmVudFJvdXRlLmRhdGEub3JkZXI7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jdXJyZW50Um91dGVPcmRlciA9IGN1cnJlbnRSb3V0ZU9yZGVyO1xuICAgIH1cblxuICAgIGdldEZpcnN0Um91dGUoKTogUm91dGUge1xuICAgICAgICByZXR1cm4gdGhpcy5vcmRlcmVkUm91dGVzWzFdO1xuICAgIH1cblxuICAgIGN1cnJlbnQoKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgICAgIHRoaXMudGhyb3dJZk5vdEluaXQoKTtcbiAgICAgICAgaWYgKCF0aGlzLmdlc2RlbVNlcnZpY2UubGFzdFJlc3BvbnNlKSB7XG4gICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoJ0VycmV1ciBuYXZpZ2F0aW9uU2VydmljZSNjdXJyZW50Jyk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY3VycmVudFJvdXRlID0gdGhpcy5vcmRlcmVkUm91dGVzW3RoaXMuY3VycmVudFJvdXRlT3JkZXJdO1xuXG4gICAgICAgIGNvbnN0IHByZWZpeCA9IHRoaXMuZ2VzZGVtU2VydmljZS5wcmVmaXg7XG4gICAgICAgIGNvbnN0IGNvbW1hbmRzOiBzdHJpbmdbXSA9IFtdO1xuICAgICAgICBpZiAocHJlZml4KSB7XG4gICAgICAgICAgICBjb21tYW5kcy5wdXNoKHByZWZpeCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5nZXNkZW1TZXJ2aWNlLmxhc3RSZXNwb25zZS5tZXRhLnJlZmVyZW5jZSkge1xuICAgICAgICAgICAgY29tbWFuZHMucHVzaChcbiAgICAgICAgICAgICAgICB0aGlzLmdlc2RlbVNlcnZpY2UubGFzdFJlc3BvbnNlLm1ldGEucmVmZXJlbmNlLFxuICAgICAgICAgICAgICAgIGN1cnJlbnRSb3V0ZS5wYXRoXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBjb25zdCB0cmVlID0gdGhpcy5yb3V0ZXIuY3JlYXRlVXJsVHJlZShjb21tYW5kcyk7XG4gICAgICAgICAgICBjb25zdCB1cmwgPVxuICAgICAgICAgICAgICAgIHRoaXMucm91dGVyLnNlcmlhbGl6ZVVybCh0cmVlKSArXG4gICAgICAgICAgICAgICAgdGhpcy5nZXRRdWVyeVBhcmFtc1RvRm9yd2FyZEFzU3RyaW5nKCk7XG4gICAgICAgICAgICB0aGlzLmxvY2F0aW9uLnJlcGxhY2VTdGF0ZSh1cmwpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh0cnVlKTtcbiAgICB9XG5cbiAgICBoYXNCZWVuSW5pdGlhbGl6ZWQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmluaXRpYWxpemVkQW5kUm91dGVBY3RpdmF0ZWQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuXG4gICAgZ2V0UXVlcnlQYXJhbXNUb0ZvcndhcmRBc1N0cmluZygpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBwYXJhbXMgPSB0aGlzLmdldFF1ZXJ5UGFyYW1zVG9Gb3J3YXJkKCkgfHwgW107XG4gICAgICAgIGxldCBzdHJpbmdQYXJhbXMgPSAnJztcbiAgICAgICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMocGFyYW1zKSkge1xuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBwYXJhbXNba2V5XTtcbiAgICAgICAgICAgIHN0cmluZ1BhcmFtcyArPSBzdHJpbmdQYXJhbXMgPyAnJicgOiAnPyc7XG4gICAgICAgICAgICBzdHJpbmdQYXJhbXMgKz0gYCR7a2V5fT0ke3ZhbHVlfWA7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHN0cmluZ1BhcmFtcztcbiAgICB9XG5cbiAgICBnZXRRdWVyeVBhcmFtc1RvRm9yd2FyZCgpOiBQYXJhbXMge1xuICAgICAgICBjb25zdCByZUNhcHRjaGFCeVBhc3NVVUlEID1cbiAgICAgICAgICAgIHRoaXMucm91dGUuc25hcHNob3QucXVlcnlQYXJhbXMucmVDYXB0Y2hhQnlQYXNzVVVJRDtcbiAgICAgICAgY29uc3Qgc2Nyb2xsVG8gPSB0aGlzLnJvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1zLnNjcm9sbFRvO1xuICAgICAgICBpZiAoISFyZUNhcHRjaGFCeVBhc3NVVUlEIHx8ICEhc2Nyb2xsVG8pIHtcbiAgICAgICAgICAgIGNvbnN0IHBhcmFtczogUGFyYW1zID0ge307XG4gICAgICAgICAgICBpZiAoISFyZUNhcHRjaGFCeVBhc3NVVUlEKSB7XG4gICAgICAgICAgICAgICAgcGFyYW1zLnJlQ2FwdGNoYUJ5UGFzc1VVSUQgPSByZUNhcHRjaGFCeVBhc3NVVUlEO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCEhc2Nyb2xsVG8pIHtcbiAgICAgICAgICAgICAgICBwYXJhbXMuc2Nyb2xsVG8gPSBzY3JvbGxUbztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBwYXJhbXM7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgbmV4dCgpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICAgICAgdGhpcy50aHJvd0lmTm90SW5pdCgpO1xuICAgICAgICByZXR1cm4gdGhpcy5yZWRpcmVjdFRvQXZhaWxhYmxlUm91dGUoTmF2aWdhdGlvbkRpcmVjdGlvbi5GT1JXQVJEKTtcbiAgICB9XG5cbiAgICBwcmV2aW91cygpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICAgICAgdGhpcy50aHJvd0lmTm90SW5pdCgpO1xuICAgICAgICByZXR1cm4gdGhpcy5yZWRpcmVjdFRvQXZhaWxhYmxlUm91dGUoTmF2aWdhdGlvbkRpcmVjdGlvbi5CQUNLV0FSRCk7XG4gICAgfVxuXG4gICAgbGFzdCgpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICAgICAgdGhpcy50aHJvd0lmTm90SW5pdCgpO1xuICAgICAgICBjb25zdCByb3V0ZSA9IHRoaXMuZ2V0QXZhaWxhYmxlUm91dGVzKCk7XG4gICAgICAgIGNvbnN0IG5leHRSb3V0ZVBhdGggPSByb3V0ZVtyb3V0ZS5sZW5ndGggLSAxXS5wYXRoO1xuICAgICAgICByZXR1cm4gdGhpcy5yZWRpcmVjdChuZXh0Um91dGVQYXRoKTtcbiAgICB9XG5cbiAgICByZWNhcCgpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICAgICAgdGhpcy50aHJvd0lmTm90SW5pdCgpO1xuICAgICAgICBjb25zdCByb3V0ZSA9IHRoaXMuZ2V0QXZhaWxhYmxlUm91dGVzKCk7XG4gICAgICAgIGNvbnN0IG5leHRSb3V0ZVBhdGggPSByb3V0ZVtyb3V0ZS5sZW5ndGggLSAyXS5wYXRoO1xuICAgICAgICByZXR1cm4gdGhpcy5yZWRpcmVjdChuZXh0Um91dGVQYXRoKTtcbiAgICB9XG5cbiAgICByZWRpcmVjdChuZXdQYXRoOiBzdHJpbmcpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICAgICAgY29uc3Qgcm91dGVzID0gW107XG4gICAgICAgIGlmICh0aGlzLmdlc2RlbVNlcnZpY2UucHJlZml4KSB7XG4gICAgICAgICAgICByb3V0ZXMucHVzaCh0aGlzLmdlc2RlbVNlcnZpY2UucHJlZml4KTtcbiAgICAgICAgfVxuICAgICAgICByb3V0ZXMucHVzaCh0aGlzLmdlc2RlbVNlcnZpY2UubGFzdFJlc3BvbnNlLm1ldGEucmVmZXJlbmNlLCBuZXdQYXRoKTtcblxuICAgICAgICByZXR1cm4gdGhpcy5yb3V0ZXJcbiAgICAgICAgICAgIC5uYXZpZ2F0ZShyb3V0ZXMsIHtcbiAgICAgICAgICAgICAgICBxdWVyeVBhcmFtczogdGhpcy5nZXRRdWVyeVBhcmFtc1RvRm9yd2FyZCgpXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLnRoZW4oc3VjY2VzcyA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHN1Y2Nlc3MpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRGb2N1c09uUGFnZVRpdGxlKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBzdWNjZXNzO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZ2V0QXZhaWxhYmxlUm91dGVzKCk6IFJvdXRlW10ge1xuICAgICAgICByZXR1cm4gdGhpcy5vcmRlcmVkUm91dGVzLmZpbHRlcihyb3V0ZSA9PiB0aGlzLmlzUm91dGVBdmFpbGFibGUocm91dGUpKTtcbiAgICB9XG5cbiAgICBnZXRDdXJyZW50Um91dGVJbmRleCgpOiBudW1iZXIge1xuICAgICAgICAvLyBUaGlzIGV2YWx1YXRlcyBhbGwgdGhlIGd1YXJkc1xuICAgICAgICBjb25zdCBhdmFpbGFibGVSb3V0ZXMgPSB0aGlzLmdldEF2YWlsYWJsZVJvdXRlcygpO1xuXG4gICAgICAgIGNvbnN0IGN1cnJlbnRSb3V0ZSA9IGF2YWlsYWJsZVJvdXRlcy5maW5kKFxuICAgICAgICAgICAgcm91dGUgPT4gcm91dGUuZGF0YS5vcmRlciA9PT0gdGhpcy5jdXJyZW50Um91dGVPcmRlclxuICAgICAgICApO1xuXG4gICAgICAgIGlmICghY3VycmVudFJvdXRlKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBhdmFpbGFibGVSb3V0ZXMuaW5kZXhPZihjdXJyZW50Um91dGUpO1xuICAgIH1cblxuICAgIGdldFRvdGFsUm91dGVzU2l6ZSgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRBdmFpbGFibGVSb3V0ZXMoKS5sZW5ndGg7XG4gICAgfVxuXG4gICAgZ2V0TGFzdFJvdXRlT3JkZXIoKTogbnVtYmVyIHtcbiAgICAgICAgY29uc3Qgcm91dGVzID0gdGhpcy5nZXRBdmFpbGFibGVSb3V0ZXMoKTtcbiAgICAgICAgcmV0dXJuIHJvdXRlc1tyb3V0ZXMubGVuZ3RoIC0gMV0uZGF0YS5vcmRlcjtcbiAgICB9XG5cbiAgICBnZXROZXh0QXZhaWxhYmxlUm91dGUoZGlyZWN0aW9uOiBOYXZpZ2F0aW9uRGlyZWN0aW9uKTogUm91dGUge1xuICAgICAgICAvLyBUaGlzIGV2YWx1YXRlcyBhbGwgdGhlIGd1YXJkc1xuICAgICAgICBjb25zdCBhdmFpbGFibGVSb3V0ZXMgPSB0aGlzLmdldEF2YWlsYWJsZVJvdXRlcygpO1xuXG4gICAgICAgIC8vIEFzc3VtZXMgdGhhdCB0aGUgbmV4dCBvciBwcmV2aW91cyByb3V0ZSBpcyB0aGUgbmV4dCBvciBwcmV2aW91cyBvbiB0aGUgYXJyYXkgb2YgYXZhaWxhYmxlIHJvdXRlcy5cbiAgICAgICAgY29uc3QgY3VycmVudFJvdXRlID0gdGhpcy5nZXRDdXJyZW50Um91dGUoYXZhaWxhYmxlUm91dGVzKTtcbiAgICAgICAgaWYgKCFjdXJyZW50Um91dGUpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgICAnSW52YWxpZCByb3V0aW5nLCBhdCBsZWFzdCBvbmUgcm91dGUgbXVzdCBiZSBhdmFpbGFibGUnXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgY3VycmVudFJvdXRlSW5kZXggPSBhdmFpbGFibGVSb3V0ZXMuaW5kZXhPZihjdXJyZW50Um91dGUpO1xuICAgICAgICBjb25zdCB0YXJnZXRSb3V0ZSA9IGF2YWlsYWJsZVJvdXRlc1tjdXJyZW50Um91dGVJbmRleCArIGRpcmVjdGlvbl07XG4gICAgICAgIGlmICghdGFyZ2V0Um91dGUpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gVGhlIGRpc3BsYXkgaW5kZXggaXNuJ3QgYWx3YXlzIHRoZSByb3V0ZSBvcmRlciBhcyB3ZSBzdXBwb3J0IGd1YXJkcyBvbiBhdmFpbGFibGUgcm91dGVzLlxuICAgICAgICAvLyBUaGUgZGlzcGxheSBpbmRleCBpcyAxLWJhc2VkLlxuICAgICAgICB0YXJnZXRSb3V0ZS5kYXRhLmRpc3BsYXlJbmRleCA9XG4gICAgICAgICAgICBhdmFpbGFibGVSb3V0ZXMuaW5kZXhPZih0YXJnZXRSb3V0ZSkgKyAxO1xuICAgICAgICByZXR1cm4gdGFyZ2V0Um91dGU7XG4gICAgfVxuXG4gICAgaXNGaXJzdEZvcm1QYWdlKCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoIXRoaXMuZ2V0Q3VycmVudFJvdXRlKHRoaXMuZ2V0QXZhaWxhYmxlUm91dGVzKCkpKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgdGhpcy5nZXROZXh0QXZhaWxhYmxlUm91dGUoTmF2aWdhdGlvbkRpcmVjdGlvbi5CQUNLV0FSRCkgPT09IG51bGxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBpc0ZvcmNlZE9uUmVjYXBGb3JQZW5kaW5nUGF5bWVudCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNMYXN0Rm9ybVBhZ2UoKSAmJiB0aGlzLmdlc2RlbVNlcnZpY2UuaXNQZW5kaW5nUGF5bWVudCgpO1xuICAgIH1cblxuICAgIGlzTGFzdEZvcm1QYWdlKCk6IGJvb2xlYW4ge1xuICAgICAgICAvLyA9PT0gcGFnZSBkZSByZWNhcCBhdmFudCB0cmFuc21pc3Npb25cbiAgICAgICAgaWYgKCF0aGlzLm9yZGVyZWRSb3V0ZXM/Lmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCF0aGlzLmdldEN1cnJlbnRSb3V0ZSh0aGlzLmdldEF2YWlsYWJsZVJvdXRlcygpKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbmV4dFJvdXRlID0gdGhpcy5nZXROZXh0QXZhaWxhYmxlUm91dGUoXG4gICAgICAgICAgICBOYXZpZ2F0aW9uRGlyZWN0aW9uLkZPUldBUkRcbiAgICAgICAgKTtcbiAgICAgICAgaWYgKCFuZXh0Um91dGUpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG5leHRSb3V0ZS5kYXRhLm9yZGVyID09PSB0aGlzLmdldExhc3RSb3V0ZU9yZGVyKCk7XG4gICAgfVxuXG4gICAgZ2V0TmV4dFJvdXRlSW5kZXgoKTogbnVtYmVyIHtcbiAgICAgICAgY29uc3QgbmV4dFJvdXRlID0gdGhpcy5nZXROZXh0QXZhaWxhYmxlUm91dGUoXG4gICAgICAgICAgICBOYXZpZ2F0aW9uRGlyZWN0aW9uLkZPUldBUkRcbiAgICAgICAgKTtcbiAgICAgICAgaWYgKCFuZXh0Um91dGUpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG5leHRSb3V0ZS5kYXRhLmRpc3BsYXlJbmRleDtcbiAgICB9XG5cbiAgICBnZXRQcmV2aW91c1JvdXRlSW5kZXgoKTogbnVtYmVyIHtcbiAgICAgICAgY29uc3QgcHJldmlvdXNSb3V0ZSA9IHRoaXMuZ2V0TmV4dEF2YWlsYWJsZVJvdXRlKFxuICAgICAgICAgICAgTmF2aWdhdGlvbkRpcmVjdGlvbi5CQUNLV0FSRFxuICAgICAgICApO1xuICAgICAgICBpZiAoIXByZXZpb3VzUm91dGUpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHByZXZpb3VzUm91dGUuZGF0YS5kaXNwbGF5SW5kZXg7XG4gICAgfVxuXG4gICAgaXNMaW5lYXJSb3V0aW5nKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5saW5lYXJSb3V0aW5nO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0Q3VycmVudFJvdXRlKGF2YWlsYWJsZVJvdXRlczogUm91dGVbXSk6IFJvdXRlIHtcbiAgICAgICAgcmV0dXJuIGF2YWlsYWJsZVJvdXRlcy5maW5kKFxuICAgICAgICAgICAgcm91dGUgPT4gcm91dGUuZGF0YS5vcmRlciA9PT0gdGhpcy5jdXJyZW50Um91dGVPcmRlclxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVkaXJlY3RUb0F2YWlsYWJsZVJvdXRlKFxuICAgICAgICBkaXJlY3Rpb246IE5hdmlnYXRpb25EaXJlY3Rpb25cbiAgICApOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICAgICAgY29uc3Qgcm91dGUgPSB0aGlzLmdldE5leHRBdmFpbGFibGVSb3V0ZShkaXJlY3Rpb24pO1xuXG4gICAgICAgIGNvbnN0IGV2ZW50VHlwZSA9XG4gICAgICAgICAgICBkaXJlY3Rpb24gPT09IE5hdmlnYXRpb25EaXJlY3Rpb24uRk9SV0FSRFxuICAgICAgICAgICAgICAgID8gU2RrRXZlbnRUeXBlLk5BVklHQVRJT05fRk9SV0FSRFxuICAgICAgICAgICAgICAgIDogU2RrRXZlbnRUeXBlLk5BVklHQVRJT05fQkFDS1dBUkQ7XG4gICAgICAgIHRoaXMuZXZlbnRzTG9nZ2VyU2VydmljZS5hZGRFdmVudChldmVudFR5cGUsIHJvdXRlLnBhdGgpO1xuXG4gICAgICAgIHJldHVybiB0aGlzLnJlZGlyZWN0KHJvdXRlLnBhdGgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNSb3V0ZUF2YWlsYWJsZShyb3V0ZTogUm91dGUpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgeyBjYW5BY3RpdmF0ZSB9ID0gcm91dGU7XG4gICAgICAgIGlmICghY2FuQWN0aXZhdGUgfHwgIWNhbkFjdGl2YXRlLmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBBbGwgdGhlIGd1YXJkcyBtdXN0IGJlIGV2YWx1YXRlZCB0byB0cnVlXG4gICAgICAgIHJldHVybiAhY2FuQWN0aXZhdGUuc29tZShcbiAgICAgICAgICAgIChndWFyZEZuOiBDYW5BY3RpdmF0ZUZuKSA9PiAhdGhpcy5ldmFsdWF0ZUd1YXJkKGd1YXJkRm4pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBldmFsdWF0ZUd1YXJkKGd1YXJkRm46IENhbkFjdGl2YXRlRm4pOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgZ3VhcmRSZXN1bHQgPSBndWFyZEZuKHRoaXMucm91dGUuc25hcHNob3QsIG51bGwpO1xuXG4gICAgICAgIGlmICh0eXBlb2YgZ3VhcmRSZXN1bHQgIT09ICdib29sZWFuJykge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgICAgICdOb3QgaW1wbGVtZW50ZWQ6IER5bmFtaWMgcm91dGluZyBndWFyZHMgb25seSBzdXBwb3J0IGJvb2xlYW4gcmVzdWx0cydcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZ3VhcmRSZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogcmVpbmRleGUgbGVzIHJvdXRlcyBwYXIgXCJvcmRlclwiXG4gICAgICogQHBhcmFtIGFwcGxpY2F0aW9uUm91dGUgYXMgcm91dGVcbiAgICAgKiBAcmV0dXJucyBSb3V0ZVtdXG4gICAgICovXG4gICAgcHJpdmF0ZSBpbmRleFJvdXRlc0J5T3JkZXIoYXBwbGljYXRpb25Sb3V0ZTogUm91dGUpOiBSb3V0ZVtdIHtcbiAgICAgICAgdGhpcy5pc0luaXQgPSBmYWxzZTtcblxuICAgICAgICBjb25zdCByb3V0ZXNUb0NyYXdsID0gYXBwbGljYXRpb25Sb3V0ZS5jaGlsZHJlbjtcbiAgICAgICAgaWYgKCFyb3V0ZXNUb0NyYXdsLmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcmVzdWx0ID0gdGhpcy5mbGF0dGVuUm91dGVzKHJvdXRlc1RvQ3Jhd2wpO1xuXG4gICAgICAgIGlmIChyZXN1bHQubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgdGhpcy5pc0luaXQgPSB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGZsYXR0ZW5Sb3V0ZXMoXG4gICAgICAgIHJvdXRlc1RvQ3Jhd2w6IFJvdXRlW10sXG4gICAgICAgIHJlc3VsdDogUm91dGVbXSA9IFtdXG4gICAgKTogUm91dGVbXSB7XG4gICAgICAgIHJvdXRlc1RvQ3Jhd2wuZm9yRWFjaCh2YWx1ZSA9PiB7XG4gICAgICAgICAgICBpZiAodmFsdWUuY2hpbGRyZW4gJiYgdmFsdWUuY2hpbGRyZW4ubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5mbGF0dGVuUm91dGVzKHZhbHVlLmNoaWxkcmVuLCByZXN1bHQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoISF2YWx1ZS5kYXRhICYmICEhdmFsdWUuZGF0YS5vcmRlcikge1xuICAgICAgICAgICAgICAgIHJlc3VsdFt2YWx1ZS5kYXRhLm9yZGVyXSA9IHZhbHVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0Rm9jdXNPblBhZ2VUaXRsZSgpOiB2b2lkIHtcbiAgICAgICAgLy8gRW5zdXJlcyB0aGF0IHRoZSBmb2N1cyBpcyBwcm9wZXJseSBzZXQgYWZ0ZXIgdGhlIHBhZ2UgaXMgdXBkYXRlZC5cbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB0aXRsZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwYWdlLXRpdGxlJyk7XG4gICAgICAgICAgICBpZiAodGl0bGUpIHtcbiAgICAgICAgICAgICAgICB0aXRsZS5mb2N1cygpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LCAwKTtcbiAgICB9XG59XG4iXX0=
|