@myclub_se/data-access 3.5.7 → 3.6.1
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/esm2022/lib/api-models/api-activity-invite.mjs +1 -1
- package/esm2022/lib/api-models/api-activity-location-group.mjs +1 -1
- package/esm2022/lib/api-models/api-activity-location.mjs +1 -1
- package/esm2022/lib/api-models/api-activity-question-connection.mjs +2 -0
- package/esm2022/lib/api-models/api-activity-question.mjs +2 -0
- package/esm2022/lib/api-models/api-activity-rule-relation.mjs +2 -0
- package/esm2022/lib/api-models/api-activity-rule.mjs +2 -0
- package/esm2022/lib/api-models/api-activity-settings.mjs +1 -1
- package/esm2022/lib/api-models/api-activity.mjs +1 -1
- package/esm2022/lib/api-models/api-bookable-item.mjs +1 -1
- package/esm2022/lib/api-models/api-invoice/api-payment-attempt.mjs +1 -1
- package/esm2022/lib/api-models/api-invoice/api-payment-order.mjs +1 -1
- package/esm2022/lib/api-models/api-member/api-member.mjs +1 -1
- package/esm2022/lib/api-models/api-open-activity.mjs +1 -1
- package/esm2022/lib/api-models/api-search-attribute.mjs +2 -0
- package/esm2022/lib/api-models/api-search-club.mjs +1 -1
- package/esm2022/lib/api-models/index.mjs +6 -1
- package/esm2022/lib/authentication/guards/handle-grant-token.guard.mjs +1 -1
- package/esm2022/lib/data-access.module.mjs +3 -4
- package/esm2022/lib/models/activity-invite.mjs +12 -2
- package/esm2022/lib/models/activity-location-group.mjs +1 -1
- package/esm2022/lib/models/activity-location-part.mjs +1 -1
- package/esm2022/lib/models/activity-location-tag.mjs +1 -1
- package/esm2022/lib/models/activity-location.mjs +1 -1
- package/esm2022/lib/models/activity-question-connection.mjs +29 -0
- package/esm2022/lib/models/activity-question-response.mjs +9 -0
- package/esm2022/lib/models/activity-question.mjs +33 -0
- package/esm2022/lib/models/activity-rule-relation.mjs +35 -0
- package/esm2022/lib/models/activity-rule.mjs +31 -0
- package/esm2022/lib/models/activity-settings.mjs +14 -4
- package/esm2022/lib/models/activity-type.mjs +1 -1
- package/esm2022/lib/models/activity.mjs +72 -4
- package/esm2022/lib/models/bookable-item.mjs +1 -1
- package/esm2022/lib/models/bookable-part.mjs +1 -1
- package/esm2022/lib/models/bookable-tag.mjs +1 -1
- package/esm2022/lib/models/booking-calendar-application-time.mjs +1 -1
- package/esm2022/lib/models/booking-calendar-slot-session.mjs +1 -1
- package/esm2022/lib/models/booking-settings.mjs +1 -1
- package/esm2022/lib/models/index.mjs +7 -1
- package/esm2022/lib/models/invoice/payment-attempt.mjs +1 -1
- package/esm2022/lib/models/invoice/payment-order.mjs +12 -6
- package/esm2022/lib/models/open-activity.mjs +16 -2
- package/esm2022/lib/models/optional-fee.mjs +12 -1
- package/esm2022/lib/models/search-attribute.mjs +13 -0
- package/esm2022/lib/models/search-club.mjs +2 -6
- package/esm2022/lib/models/search-team.mjs +1 -1
- package/esm2022/lib/models/token.mjs +1 -1
- package/esm2022/lib/services/activity.service.mjs +82 -48
- package/esm2022/lib/services/api.service.mjs +1 -1
- package/esm2022/lib/services/booking-calendar.service.mjs +1 -1
- package/esm2022/lib/services/constant.service.mjs +13 -1
- package/esm2022/lib/services/factories/activity-factory.mjs +6 -2
- package/esm2022/lib/services/factories/activity-invite-factory.mjs +2 -2
- package/esm2022/lib/services/factories/activity-location-factory.mjs +1 -1
- package/esm2022/lib/services/factories/activity-location-group-factory.mjs +1 -1
- package/esm2022/lib/services/factories/activity-location-part-factory.mjs +1 -1
- package/esm2022/lib/services/factories/activity-location-tag-factory.mjs +1 -1
- package/esm2022/lib/services/factories/activity-question-connection-factory.mjs +4 -0
- package/esm2022/lib/services/factories/activity-question-factory.mjs +3 -0
- package/esm2022/lib/services/factories/activity-rule-factory.mjs +4 -0
- package/esm2022/lib/services/factories/activity-rule-relation-factory.mjs +5 -0
- package/esm2022/lib/services/factories/activity-settings-factory.mjs +2 -2
- package/esm2022/lib/services/factories/bookable-item-factory.mjs +1 -1
- package/esm2022/lib/services/factories/bookable-part-factory.mjs +1 -1
- package/esm2022/lib/services/factories/bookable-tag-factory.mjs +1 -1
- package/esm2022/lib/services/factories/booking-calendar-application-time-factory.mjs +1 -1
- package/esm2022/lib/services/factories/booking-calendar-slot-factory.mjs +1 -1
- package/esm2022/lib/services/factories/booking-calendar-slot-session-factory.mjs +1 -1
- package/esm2022/lib/services/factories/booking-calendar-slot-validate-copy-result-factory.mjs +1 -1
- package/esm2022/lib/services/factories/booking-settings-factory.mjs +1 -1
- package/esm2022/lib/services/factories/feature-flags-factory.mjs +1 -1
- package/esm2022/lib/services/factories/index.mjs +6 -1
- package/esm2022/lib/services/factories/open-activity-factory.mjs +4 -2
- package/esm2022/lib/services/factories/overbooked-bookable-item-factory.mjs +1 -1
- package/esm2022/lib/services/factories/overbooked-location-factory.mjs +1 -1
- package/esm2022/lib/services/factories/payment-order-factory.mjs +2 -2
- package/esm2022/lib/services/factories/saved-search-factory.mjs +1 -1
- package/esm2022/lib/services/factories/search-attribute.factory.mjs +3 -0
- package/esm2022/lib/services/factories/search-club-factory.mjs +2 -2
- package/esm2022/lib/services/feature-flags.service.mjs +1 -1
- package/esm2022/lib/services/index.mjs +2 -2
- package/esm2022/lib/services/invoice/invoice.service.mjs +1 -1
- package/esm2022/lib/services/invoice/payment-attempt.service.mjs +1 -1
- package/esm2022/lib/services/invoice/payment-order.service.mjs +4 -1
- package/esm2022/lib/services/member-card.service.mjs +1 -1
- package/esm2022/lib/services/member-fee.service.mjs +1 -1
- package/esm2022/lib/services/member-public-form.service.mjs +1 -1
- package/esm2022/lib/services/member.service.mjs +1 -1
- package/esm2022/lib/services/storage.service.mjs +1 -1
- package/esm2022/lib/services/team.service.mjs +1 -1
- package/esm2022/lib/services/user.service.mjs +1 -1
- package/esm2022/lib/store/actions/activity.actions.mjs +57 -27
- package/esm2022/lib/store/actions/calendar.actions.mjs +7 -1
- package/esm2022/lib/store/actions/constant.actions.mjs +21 -1
- package/esm2022/lib/store/actions/invoice.actions.mjs +9 -1
- package/esm2022/lib/store/actions/member-fee.actions.mjs +1 -1
- package/esm2022/lib/store/actions/member.actions.mjs +1 -1
- package/esm2022/lib/store/actions/saved-search.actions.mjs +1 -1
- package/esm2022/lib/store/effects/activity.effects.mjs +40 -22
- package/esm2022/lib/store/effects/auth.effects.mjs +3 -3
- package/esm2022/lib/store/effects/booking.effects.mjs +1 -1
- package/esm2022/lib/store/effects/calendar.effects.mjs +7 -19
- package/esm2022/lib/store/effects/constant.effects.mjs +11 -2
- package/esm2022/lib/store/effects/file.effects.mjs +1 -1
- package/esm2022/lib/store/effects/invoice.effects.mjs +12 -2
- package/esm2022/lib/store/effects/member-card.effects.mjs +1 -1
- package/esm2022/lib/store/effects/member-fee.effects.mjs +1 -1
- package/esm2022/lib/store/effects/member.effects.mjs +1 -1
- package/esm2022/lib/store/effects/saved-search.effects.mjs +1 -1
- package/esm2022/lib/store/effects/token.effects.mjs +3 -3
- package/esm2022/lib/store/interfaces/index.mjs +2 -1
- package/esm2022/lib/store/interfaces/public-member-activity-result-interface.mjs +2 -0
- package/esm2022/lib/store/operators/ensure-public-member-activities-loading-done.mjs +5 -0
- package/esm2022/lib/store/operators/index.mjs +2 -1
- package/esm2022/lib/store/reducers/booking.reducers.mjs +1 -1
- package/esm2022/lib/store/reducers/calendar.reducer.mjs +83 -50
- package/esm2022/lib/store/reducers/constant.reducer.mjs +35 -2
- package/esm2022/lib/store/reducers/file.reducer.mjs +1 -1
- package/esm2022/lib/store/reducers/invoice.reducer.mjs +2 -2
- package/esm2022/lib/store/reducers/member-fee.reducer.mjs +1 -1
- package/esm2022/lib/store/reducers/public.reducer.mjs +58 -73
- package/esm2022/lib/store/reducers/saved-search.reducer.mjs +1 -1
- package/esm2022/lib/store/selectors/calendar.selectors.mjs +7 -1
- package/esm2022/lib/store/selectors/constant.selectors.mjs +5 -1
- package/esm2022/lib/store/selectors/member-fee.selectors.mjs +1 -1
- package/esm2022/lib/store/selectors/public.selectors.mjs +7 -7
- package/esm2022/lib/store/selectors/saved-search.selectors.mjs +1 -1
- package/esm2022/lib/store/state/booking.state.mjs +1 -1
- package/esm2022/lib/store/state/calendar.state.mjs +3 -1
- package/esm2022/lib/store/state/constant.state.mjs +4 -1
- package/esm2022/lib/store/state/invoice.state.mjs +1 -1
- package/esm2022/lib/store/state/member-fee.state.mjs +1 -1
- package/esm2022/lib/store/state/public.state.mjs +7 -7
- package/fesm2022/myclub_se-data-access.mjs +3450 -2979
- package/fesm2022/myclub_se-data-access.mjs.map +1 -1
- package/lib/api-models/api-activity-invite.d.ts +3 -0
- package/lib/api-models/api-activity-question-connection.d.ts +10 -0
- package/lib/api-models/api-activity-question.d.ts +9 -0
- package/lib/api-models/api-activity-rule-relation.d.ts +10 -0
- package/lib/api-models/api-activity-rule.d.ts +8 -0
- package/lib/api-models/api-activity-settings.d.ts +6 -1
- package/lib/api-models/api-activity.d.ts +26 -0
- package/lib/api-models/api-invoice/api-payment-order.d.ts +5 -2
- package/lib/api-models/api-open-activity.d.ts +10 -0
- package/lib/api-models/api-search-attribute.d.ts +8 -0
- package/lib/api-models/api-search-club.d.ts +0 -2
- package/lib/api-models/index.d.ts +5 -0
- package/lib/models/activity-invite.d.ts +7 -1
- package/lib/models/activity-question-connection.d.ts +19 -0
- package/lib/models/activity-question-response.d.ts +5 -0
- package/lib/models/activity-question.d.ts +22 -0
- package/lib/models/activity-rule-relation.d.ts +14 -0
- package/lib/models/activity-rule.d.ts +12 -0
- package/lib/models/activity-settings.d.ts +7 -2
- package/lib/models/activity.d.ts +29 -1
- package/lib/models/index.d.ts +6 -0
- package/lib/models/invoice/payment-attempt.d.ts +1 -1
- package/lib/models/invoice/payment-order.d.ts +6 -3
- package/lib/models/open-activity.d.ts +10 -1
- package/lib/models/optional-fee.d.ts +9 -0
- package/lib/models/search-attribute.d.ts +9 -0
- package/lib/models/search-club.d.ts +1 -3
- package/lib/services/activity.service.d.ts +17 -11
- package/lib/services/constant.service.d.ts +3 -0
- package/lib/services/factories/activity-question-connection-factory.d.ts +3 -0
- package/lib/services/factories/activity-question-factory.d.ts +3 -0
- package/lib/services/factories/activity-rule-factory.d.ts +3 -0
- package/lib/services/factories/activity-rule-relation-factory.d.ts +3 -0
- package/lib/services/factories/index.d.ts +5 -0
- package/lib/services/factories/search-attribute.factory.d.ts +3 -0
- package/lib/services/index.d.ts +1 -1
- package/lib/services/invoice/payment-order.service.d.ts +1 -0
- package/lib/services/member-card.service.d.ts +2 -3
- package/lib/store/actions/activity.actions.d.ts +207 -59
- package/lib/store/actions/calendar.actions.d.ts +36 -0
- package/lib/store/actions/constant.actions.d.ts +42 -0
- package/lib/store/actions/invoice.actions.d.ts +23 -1
- package/lib/store/effects/activity.effects.d.ts +56 -16
- package/lib/store/effects/calendar.effects.d.ts +4 -31
- package/lib/store/effects/constant.effects.d.ts +15 -0
- package/lib/store/effects/invoice.effects.d.ts +3 -0
- package/lib/store/interfaces/index.d.ts +1 -0
- package/lib/store/interfaces/public-member-activity-result-interface.d.ts +7 -0
- package/lib/store/operators/ensure-public-member-activities-loading-done.d.ts +3 -0
- package/lib/store/operators/index.d.ts +1 -0
- package/lib/store/selectors/calendar.selectors.d.ts +2 -0
- package/lib/store/selectors/constant.selectors.d.ts +2 -0
- package/lib/store/selectors/public.selectors.d.ts +6 -6
- package/lib/store/state/calendar.state.d.ts +3 -1
- package/lib/store/state/constant.state.d.ts +3 -0
- package/lib/store/state/public.state.d.ts +8 -8
- package/package.json +4 -3
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { inject, Injectable } from '@angular/core';
|
|
2
2
|
import { Actions, createEffect, ofType } from '@ngrx/effects';
|
|
3
3
|
import { InvoiceService, PaymentAttemptService, PaymentOrderService } from '../../services';
|
|
4
|
-
import { createFritidskortetInvoicePaymentFailureAction, createFritidskortetInvoicePaymentSuccessAction, createFritidskortetMemberInvoicePaymentAction, createFritidskortetPublicInvoicePaymentAction, createMondidoInvoicePaymentFailureAction, createMondidoInvoicePaymentSuccessAction, createMondidoMemberInvoicePaymentAction, createMondidoMemberPaymentOrderPaymentAction, createMondidoPaymentOrderPaymentFailureAction, createMondidoPaymentOrderPaymentSuccessAction, createMondidoPublicInvoicePaymentAction, createMondidoPublicPaymentOrderPaymentAction, createPingCreditCardMemberInvoicePaymentAction, createPingCreditCardMemberPaymentOrderPaymentAction, createPingCreditCardPaymentFailureAction, createPingCreditCardPaymentOrderPaymentFailureAction, createPingCreditCardPaymentOrderPaymentSuccessAction, createPingCreditCardPaymentSuccessAction, createPingCreditCardPublicInvoicePaymentAction, createPingCreditCardPublicPaymentOrderPaymentAction, createPingSwishMemberInvoicePaymentAction, createPingSwishMemberPaymentOrderPaymentAction, createPingSwishPaymentFailureAction, createPingSwishPaymentOrderPaymentFailureAction, createPingSwishPaymentOrderPaymentSuccessAction, createPingSwishPaymentSuccessAction, createPingSwishPublicInvoicePaymentAction, createPingSwishPublicPaymentOrderPaymentAction, createSwishInvoicePaymentFailureAction, createSwishInvoicePaymentSuccessAction, createSwishMemberInvoicePaymentAction, createSwishMemberPaymentOrderPaymentAction, createSwishPaymentOrderPaymentFailureAction, createSwishPaymentOrderPaymentSuccessAction, createSwishPublicInvoicePaymentAction, createSwishPublicPaymentOrderPaymentAction, createZimplerMemberPaymentAction, createZimplerPaymentFailureAction, createZimplerPaymentSuccessAction, createZimplerPublicPaymentAction, deletePaymentOrderAction, deletePaymentOrderFailureAction, deletePaymentOrderSuccessAction, listMemberInvoicesAction, listMemberInvoicesFailureAction, listMemberInvoicesSuccessAction, listMemberPaymentOrdersAction, listMemberPaymentOrdersFailureAction, listMemberPaymentOrdersSuccessAction, retrieveInvoiceSwishQRCodeFailureAction, retrieveInvoiceSwishQRCodeSuccessAction, retrieveMemberInvoiceAction, retrieveMemberInvoiceFailureAction, retrieveMemberInvoicePaymentAttemptAction, retrieveMemberInvoicePaymentAttemptFailureAction, retrieveMemberInvoicePaymentAttemptSuccessAction, retrieveMemberInvoiceSuccessAction, retrieveMemberInvoiceSwishQRCodeAction, retrieveMemberPaymentOrderPaymentAttemptAction, retrieveMemberPaymentOrderPaymentAttemptFailureAction, retrieveMemberPaymentOrderPaymentAttemptSuccessAction, retrieveMemberPaymentOrderSwishQRCodeAction, retrievePaymentOrderAction, retrievePaymentOrderFailureAction, retrievePaymentOrderSuccessAction, retrievePaymentOrderSwishQRCodeFailureAction, retrievePaymentOrderSwishQRCodeSuccessAction, retrievePublicInvoiceAction, retrievePublicInvoiceFailureAction, retrievePublicInvoiceLogoAction, retrievePublicInvoiceLogoFailureAction, retrievePublicInvoiceLogoSuccessAction, retrievePublicInvoicePaymentAttemptAction, retrievePublicInvoicePaymentAttemptFailureAction, retrievePublicInvoicePaymentAttemptSuccessAction, retrievePublicInvoiceSuccessAction, retrievePublicInvoiceSwishQRCodeAction, retrievePublicPaymentOrderAction, retrievePublicPaymentOrderFailureAction, retrievePublicPaymentOrderLogoAction, retrievePublicPaymentOrderLogoFailureAction, retrievePublicPaymentOrderLogoSuccessAction, retrievePublicPaymentOrderPaymentAttemptAction, retrievePublicPaymentOrderPaymentAttemptFailureAction, retrievePublicPaymentOrderPaymentAttemptSuccessAction, retrievePublicPaymentOrderSuccessAction, retrievePublicPaymentOrderSwishQRCodeAction } from '../actions';
|
|
4
|
+
import { createFritidskortetInvoicePaymentFailureAction, createFritidskortetInvoicePaymentSuccessAction, createFritidskortetMemberInvoicePaymentAction, createFritidskortetPublicInvoicePaymentAction, createMondidoInvoicePaymentFailureAction, createMondidoInvoicePaymentSuccessAction, createMondidoMemberInvoicePaymentAction, createMondidoMemberPaymentOrderPaymentAction, createMondidoPaymentOrderPaymentFailureAction, createMondidoPaymentOrderPaymentSuccessAction, createMondidoPublicInvoicePaymentAction, createMondidoPublicPaymentOrderPaymentAction, createPingCreditCardMemberInvoicePaymentAction, createPingCreditCardMemberPaymentOrderPaymentAction, createPingCreditCardPaymentFailureAction, createPingCreditCardPaymentOrderPaymentFailureAction, createPingCreditCardPaymentOrderPaymentSuccessAction, createPingCreditCardPaymentSuccessAction, createPingCreditCardPublicInvoicePaymentAction, createPingCreditCardPublicPaymentOrderPaymentAction, createPingSwishMemberInvoicePaymentAction, createPingSwishMemberPaymentOrderPaymentAction, createPingSwishPaymentFailureAction, createPingSwishPaymentOrderPaymentFailureAction, createPingSwishPaymentOrderPaymentSuccessAction, createPingSwishPaymentSuccessAction, createPingSwishPublicInvoicePaymentAction, createPingSwishPublicPaymentOrderPaymentAction, createSwishInvoicePaymentFailureAction, createSwishInvoicePaymentSuccessAction, createSwishMemberInvoicePaymentAction, createSwishMemberPaymentOrderPaymentAction, createSwishPaymentOrderPaymentFailureAction, createSwishPaymentOrderPaymentSuccessAction, createSwishPublicInvoicePaymentAction, createSwishPublicPaymentOrderPaymentAction, createZimplerMemberPaymentAction, createZimplerPaymentFailureAction, createZimplerPaymentSuccessAction, createZimplerPublicPaymentAction, deletePaymentOrderAction, deletePaymentOrderFailureAction, deletePaymentOrderSuccessAction, deletePublicPaymentOrderAction, deletePublicPaymentOrderFailureAction, deletePublicPaymentOrderSuccessAction, listMemberInvoicesAction, listMemberInvoicesFailureAction, listMemberInvoicesSuccessAction, listMemberPaymentOrdersAction, listMemberPaymentOrdersFailureAction, listMemberPaymentOrdersSuccessAction, retrieveInvoiceSwishQRCodeFailureAction, retrieveInvoiceSwishQRCodeSuccessAction, retrieveMemberInvoiceAction, retrieveMemberInvoiceFailureAction, retrieveMemberInvoicePaymentAttemptAction, retrieveMemberInvoicePaymentAttemptFailureAction, retrieveMemberInvoicePaymentAttemptSuccessAction, retrieveMemberInvoiceSuccessAction, retrieveMemberInvoiceSwishQRCodeAction, retrieveMemberPaymentOrderPaymentAttemptAction, retrieveMemberPaymentOrderPaymentAttemptFailureAction, retrieveMemberPaymentOrderPaymentAttemptSuccessAction, retrieveMemberPaymentOrderSwishQRCodeAction, retrievePaymentOrderAction, retrievePaymentOrderFailureAction, retrievePaymentOrderSuccessAction, retrievePaymentOrderSwishQRCodeFailureAction, retrievePaymentOrderSwishQRCodeSuccessAction, retrievePublicInvoiceAction, retrievePublicInvoiceFailureAction, retrievePublicInvoiceLogoAction, retrievePublicInvoiceLogoFailureAction, retrievePublicInvoiceLogoSuccessAction, retrievePublicInvoicePaymentAttemptAction, retrievePublicInvoicePaymentAttemptFailureAction, retrievePublicInvoicePaymentAttemptSuccessAction, retrievePublicInvoiceSuccessAction, retrievePublicInvoiceSwishQRCodeAction, retrievePublicPaymentOrderAction, retrievePublicPaymentOrderFailureAction, retrievePublicPaymentOrderLogoAction, retrievePublicPaymentOrderLogoFailureAction, retrievePublicPaymentOrderLogoSuccessAction, retrievePublicPaymentOrderPaymentAttemptAction, retrievePublicPaymentOrderPaymentAttemptFailureAction, retrievePublicPaymentOrderPaymentAttemptSuccessAction, retrievePublicPaymentOrderSuccessAction, retrievePublicPaymentOrderSwishQRCodeAction } from '../actions';
|
|
5
5
|
import { exhaustMap, forkJoin, mergeMap, of } from 'rxjs';
|
|
6
6
|
import { catchError, map } from 'rxjs/operators';
|
|
7
7
|
import { HttpErrorResponse } from '@angular/common/http';
|
|
@@ -133,6 +133,16 @@ export class InvoiceEffects {
|
|
|
133
133
|
return deletePaymentOrderFailureAction({ payload: new HttpErrorResponse({ status: 400 }) });
|
|
134
134
|
}
|
|
135
135
|
}), catchError((error) => of(deletePaymentOrderFailureAction({ payload: error })))))));
|
|
136
|
+
deletePublicPaymentOrder$ = createEffect(() => this.actions$
|
|
137
|
+
.pipe(ofType(deletePublicPaymentOrderAction), exhaustMap(({ payload }) => this.paymentOrderService.deletePublicPaymentOrder(payload.token, payload.paymentOrderId)
|
|
138
|
+
.pipe(map((value) => {
|
|
139
|
+
if (value) {
|
|
140
|
+
return deletePublicPaymentOrderSuccessAction();
|
|
141
|
+
}
|
|
142
|
+
else {
|
|
143
|
+
return deletePublicPaymentOrderFailureAction({ payload: new HttpErrorResponse({ status: 400 }) });
|
|
144
|
+
}
|
|
145
|
+
}), catchError((error) => of(deletePublicPaymentOrderFailureAction({ payload: error })))))));
|
|
136
146
|
retrieveMemberInvoicePaymentAttempt$ = createEffect(() => this.actions$
|
|
137
147
|
.pipe(ofType(retrieveMemberInvoicePaymentAttemptAction), exhaustMap(({ payload }) => this.paymentAttemptService.getMemberInvoicePaymentAttempt(payload.memberId, payload.invoiceId, payload.paymentAttemptId)
|
|
138
148
|
.pipe(map((paymentAttempt) => retrieveMemberInvoicePaymentAttemptSuccessAction({ payload: paymentAttempt })), catchError((error) => of(retrieveMemberInvoicePaymentAttemptFailureAction({ payload: error })))))));
|
|
@@ -175,4 +185,4 @@ export class InvoiceEffects {
|
|
|
175
185
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: InvoiceEffects, decorators: [{
|
|
176
186
|
type: Injectable
|
|
177
187
|
}] });
|
|
178
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW52b2ljZS5lZmZlY3RzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YS1hY2Nlc3Mvc3JjL2xpYi9zdG9yZS9lZmZlY3RzL2ludm9pY2UuZWZmZWN0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsTUFBTSxFQUFFLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDNUQsT0FBTyxFQUFDLGNBQWMsRUFBRSxxQkFBcUIsRUFBRSxtQkFBbUIsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzFGLE9BQU8sRUFDTCw4Q0FBOEMsRUFDOUMsOENBQThDLEVBQzlDLDZDQUE2QyxFQUFFLDZDQUE2QyxFQUM1Rix3Q0FBd0MsRUFDeEMsd0NBQXdDLEVBQ3hDLHVDQUF1QyxFQUN2Qyw0Q0FBNEMsRUFDNUMsNkNBQTZDLEVBQzdDLDZDQUE2QyxFQUM3Qyx1Q0FBdUMsRUFDdkMsNENBQTRDLEVBQUUsOENBQThDLEVBQzVGLG1EQUFtRCxFQUNuRCx3Q0FBd0MsRUFDeEMsb0RBQW9ELEVBQUUsb0RBQW9ELEVBQzFHLHdDQUF3QyxFQUN4Qyw4Q0FBOEMsRUFDOUMsbURBQW1ELEVBQUUseUNBQXlDLEVBQzlGLDhDQUE4QyxFQUM5QyxtQ0FBbUMsRUFDbkMsK0NBQStDLEVBQUUsK0NBQStDLEVBQ2hHLG1DQUFtQyxFQUFFLHlDQUF5QyxFQUM5RSw4Q0FBOEMsRUFDOUMsc0NBQXNDLEVBQ3RDLHNDQUFzQyxFQUN0QyxxQ0FBcUMsRUFDckMsMENBQTBDLEVBQzFDLDJDQUEyQyxFQUMzQywyQ0FBMkMsRUFDM0MscUNBQXFDLEVBQ3JDLDBDQUEwQyxFQUMxQyxnQ0FBZ0MsRUFDaEMsaUNBQWlDLEVBQ2pDLGlDQUFpQyxFQUNqQyxnQ0FBZ0MsRUFDaEMsd0JBQXdCLEVBQ3hCLCtCQUEr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LE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQztTQUMvSCxJQUFJLENBQ0gsR0FBRyxDQUFDLENBQUMsV0FBd0IsRUFBRSxFQUFFLENBQUMsNENBQTRDLENBQUMsRUFBQyxPQUFPLEVBQUUsV0FBVyxFQUFDLENBQUMsQ0FBQyxFQUN2RyxVQUFVLENBQUMsQ0FBQyxLQUF3QixFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsNENBQTRDLENBQUMsRUFBQyxPQUFPLEVBQUUsS0FBSyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQzdHLENBQ0osQ0FDRixDQUNGLENBQUM7dUdBM2tCUyxjQUFjOzJHQUFkLGNBQWM7OzJGQUFkLGNBQWM7a0JBRDFCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2luamVjdCwgSW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0FjdGlvbnMsIGNyZWF0ZUVmZmVjdCwgb2ZUeXBlfSBmcm9tICdAbmdyeC9lZmZlY3RzJztcbmltcG9ydCB7SW52b2ljZVNlcnZpY2UsIFBheW1lbnRBdHRlbXB0U2VydmljZSwgUGF5bWVudE9yZGVyU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZXMnO1xuaW1wb3J0IHtcbiAgY3JlYXRlRnJpdGlkc2tvcnRldEludm9pY2VQYXltZW50RmFpbHVyZUFjdGlvbixcbiAgY3JlYXRlRnJpdGlkc2tvcnRldEludm9pY2VQYXltZW50U3VjY2Vzc0FjdGlvbixcbiAgY3JlYXRlRnJpdGlkc2tvcnRldE1lbWJlckludm9pY2VQYXltZW50QWN0aW9uLCBjcmVhdGVGcml0aWRza29ydGV0UHVibGljSW52b2ljZVBheW1lbnRBY3Rpb24sXG4gIGNyZWF0ZU1vbmRpZG9JbnZvaWNlUGF5bWVudEZhaWx1cmVBY3Rpb24sXG4gIGNyZWF0ZU1vbmRpZG9JbnZvaWNlUGF5bWVudFN1Y2Nlc3NBY3Rpb24sXG4gIGNyZWF0ZU1vbmRpZG9NZW1iZXJJbnZvaWNlUGF5bWVudEFjdGlvbixcbiAgY3JlYXRlTW9uZGlkb01lbWJlclBheW1lbnRPcmRlclBheW1lbnRBY3Rpb24sXG4gIGNyZWF0ZU1vbmRpZG9QYXltZW50T3JkZXJQYXltZW50RmFpbHVyZUFjdGlvbixcbiAgY3JlYXRlTW9uZGlkb1BheW1lbnRPcmRlclBheW1lbnRTdWNjZXNzQWN0aW9uLFxuICBjcmVhdGVNb25kaWRvUHVibGljSW52b2ljZVBheW1lbnRBY3Rpb24sXG4gIGNyZWF0ZU1vbmRpZG9QdWJsaWNQYXltZW50T3JkZXJQYXltZW50QWN0aW9uLCBjcmVhdGVQaW5nQ3JlZGl0Q2FyZE1lbWJlckludm9pY2VQYXltZW50QWN0aW9uLFxuICBjcmVhdGVQaW5nQ3JlZGl0Q2FyZE1lbWJlclBheW1lbnRPcmRlclBheW1lbnRBY3Rpb24sXG4gIGNyZWF0ZVBpbmdDcmVkaXRDYXJkUGF5bWVudEZhaWx1cmVBY3Rpb24sXG4gIGNyZWF0ZVBpbmdDcmVkaXRDYXJkUGF5bWVudE9yZGVyUGF5bWVudEZhaWx1cmVBY3Rpb24sIGNyZWF0ZVBpbmdDcmVkaXRDYXJkUGF5bWVudE9yZGVyUGF5bWVudFN1Y2Nlc3NBY3Rpb24sXG4gIGNyZWF0ZVBpbmdDcmVkaXRDYXJkUGF5bWVudFN1Y2Nlc3NBY3Rpb24sXG4gIGNyZWF0ZVBpbmdDcmVkaXRDYXJkUHVibGljSW52b2ljZVBheW1lbnRBY3Rpb24sXG4gIGNyZWF0ZVBpbmdDcmVkaXRDYXJkUHVibGljUGF5bWVudE9yZGVyUGF5bWVudEFjdGlvbiwgY3JlYXRlUGluZ1N3aXNoTWVtYmVySW52b2ljZVBheW1lbnRBY3Rpb24sXG4gIGNyZWF0ZVBpbmdTd2lzaE1lbWJlclBheW1lbnRPcmRlclBheW1lbnRBY3Rpb24sXG4gIGNyZWF0ZVBpbmdTd2lzaFBheW1lbnRGYWlsdXJlQWN0aW9uLFxuICBjcmVhdGVQaW5nU3dpc2hQYXltZW50T3JkZXJQYXltZW50RmFpbHVyZUFjdGlvbiwgY3JlYXRlUGluZ1N3aXNoUGF5bWVudE9yZGVyUGF5bWVudFN1Y2Nlc3NBY3Rpb24sXG4gIGNyZWF0ZVBpbmdTd2lzaFBheW1lbnRTdWNjZXNzQWN0aW9uLCBjcmVhdGVQaW5nU3dpc2hQdWJsaWNJbnZvaWNlUGF5bWVudEFjdGlvbixcbiAgY3JlYXRlUGluZ1N3aXNoUHVibGljUGF5bWVudE9yZGVyUGF5bWVudEFjdGlvbixcbiAgY3JlYXRlU3dpc2hJbnZvaWNlUGF5bWVudEZhaWx1cmVBY3Rpb24sXG4gIGNyZWF0ZVN3aXNoSW52b2ljZVBheW1lbnRTdWNjZXNzQWN0aW9uLFxuICBjcmVhdGVTd2lzaE1lbWJlckludm9pY2VQYXltZW50QWN0aW9uLFxuICBjcmVhdGVTd2lzaE1lbWJlclBheW1lbnRPcmRlclBheW1lbnRBY3Rpb24sXG4gIGNyZWF0ZVN3aXNoUGF5bWVudE9yZGVyUGF5bWVudEZhaWx1cmVBY3Rpb24sXG4gIGNyZWF0ZVN3aXNoUGF5bWVudE9yZGVyUGF5bWVudFN1Y2Nlc3NBY3Rpb24sXG4gIGNyZWF0ZVN3aXNoUHVibGljSW52b2ljZVBheW1lbnRBY3Rpb24sXG4gIGNyZWF0ZVN3aXNoUHVibGljUGF5bWVudE9yZGVyUGF5bWVudEFjdGlvbixcbiAgY3JlYXRlWmltcGxlck1lbWJlclBheW1lbnRBY3Rpb24sXG4gIGNyZWF0ZVppbXBsZXJQYXltZW50RmFpbHVyZUFjdGlvbixcbiAgY3JlYXRlWmltcGxlclBheW1lbnRTdWNjZXNzQWN0aW9uLFxuICBjcmVhdGVaaW1wbGVyUHVibGljUGF5bWVudEFjdGlvbixcbiAgZGVsZXRlUGF5bWVudE9yZGVyQWN0aW9uLFxuICBkZWxldGVQYXltZW50T3JkZXJGYWlsdXJlQWN0aW9uLFxuICBkZWxldGVQYXltZW50T3JkZXJTdWNjZXNzQWN0aW9uLFxuICBsaXN0TWVtYmVySW52b2ljZXNBY3Rpb24sXG4gIGxpc3RNZW1iZXJJbnZvaWNlc0ZhaWx1cmVBY3Rpb24sXG4gIGxpc3RNZW1iZXJJbnZvaWNlc1N1Y2Nlc3NBY3Rpb24sXG4gIGxpc3RNZW1iZXJQYXltZW50T3JkZXJzQWN0aW9uLFxuICBsaXN0TWVtYmVyUGF5bWVudE9yZGVyc0ZhaWx1cmVBY3Rpb24sXG4gIGxpc3RNZW1iZXJQYXltZW50T3JkZXJzU3VjY2Vzc0FjdGlvbixcbiAgcmV0cmlldmVJbnZvaWNlU3dpc2hRUkNvZGVGYWlsdXJlQWN0aW9uLFxuICByZXRyaWV2ZUludm9pY2VTd2lzaFFSQ29kZVN1Y2Nlc3NBY3Rpb24sXG4gIHJldHJpZXZlTWVtYmVySW52b2ljZUFjdGlvbixcbiAgcmV0cmlldmVNZW1iZXJJbnZvaWNlRmFpbHVyZUFjdGlvbixcbiAgcmV0cmlldmVNZW1iZXJJbnZvaWNlUGF5bWVudEF0dGVtcHRBY3Rpb24sXG4gIHJldHJpZXZlTWVtYmVySW52b2ljZVBheW1lbnRBdHRlbXB0RmFpbHVyZUFjdGlvbixcbiAgcmV0cmlldmVNZW1iZXJJbnZvaWNlUGF5bWVudEF0dGVtcHRTdWNjZXNzQWN0aW9uLFxuICByZXRyaWV2ZU1lbWJlckludm9pY2VTdWNjZXNzQWN0aW9uLFxuICByZXRyaWV2ZU1lbWJlckludm9pY2VTd2lzaFFSQ29kZUFjdGlvbixcbiAgcmV0cmlldmVNZW1iZXJQYXltZW50T3JkZXJQYXltZW50QXR0ZW1wdEFjdGlvbixcbiAgcmV0cmlldmVNZW1iZXJQYXltZW50T3JkZXJQYXltZW50QXR0ZW1wdEZhaWx1cmVBY3Rpb24sXG4gIHJldHJpZXZlTWVtYmVyUGF5bWVudE9yZGVyUGF5bWVudEF0dGVtcHRTdWNjZXNzQWN0aW9uLFxuICByZXRyaWV2ZU1lbWJlclBheW1lbnRPcmRlclN3aXNoUVJDb2RlQWN0aW9uLFxuICByZXRyaWV2ZVBheW1lbnRPcmRlckFjdGlvbixcbiAgcmV0cmlldmVQYXltZW50T3JkZXJGYWlsdXJlQWN0aW9uLFxuICByZXRyaWV2ZVBheW1lbnRPcmRlclN1Y2Nlc3NBY3Rpb24sXG4gIHJldHJpZXZlUGF5bWVudE9yZGVyU3dpc2hRUkNvZGVGYWlsdXJlQWN0aW9uLFxuICByZXRyaWV2ZVBheW1lbnRPcmRlclN3aXNoUVJDb2RlU3VjY2Vzc0FjdGlvbixcbiAgcmV0cmlldmVQdWJsaWNJbnZvaWNlQWN0aW9uLFxuICByZXRyaWV2ZVB1YmxpY0ludm9pY2VGYWlsdXJlQWN0aW9uLFxuICByZXRyaWV2ZVB1YmxpY0ludm9pY2VMb2dvQWN0aW9uLFxuICByZXRyaWV2ZVB1YmxpY0ludm9pY2VMb2dvRmFpbHVyZUFjdGlvbixcbiAgcmV0cmlldmVQdWJsaWNJbnZvaWNlTG9nb1N1Y2Nlc3NBY3Rpb24sXG4gIHJldHJpZXZlUHVibGljSW52b2ljZVBheW1lbnRBdHRlbXB0QWN0aW9uLFxuICByZXRyaWV2ZVB1YmxpY0ludm9pY2VQYXltZW50QXR0ZW1wdEZhaWx1cmVBY3Rpb24sXG4gIHJldHJpZXZlUHVibGljSW52b2ljZVBheW1lbnRBdHRlbXB0U3VjY2Vzc0FjdGlvbixcbiAgcmV0cmlldmVQdWJsaWNJbnZvaWNlU3VjY2Vzc0FjdGlvbixcbiAgcmV0cmlldmVQdWJsaWNJbnZvaWNlU3dpc2hRUkNvZGVBY3Rpb24sXG4gIHJldHJpZXZlUHVibGljUGF5bWVudE9yZGVyQWN0aW9uLFxuICByZXRyaWV2ZVB1YmxpY1BheW1lbnRPcmRlckZhaWx1cmVBY3Rpb24sXG4gIHJldHJpZXZlUHVibGljUGF5bWVudE9yZGVyTG9nb0FjdGlvbixcbiAgcmV0cmlldmVQdWJsaWNQYXltZW50T3JkZXJMb2dvRmFpbHVyZUFjdGlvbixcbiAgcmV0cmlldmVQdWJsaWNQYXltZW50T3JkZXJMb2dvU3VjY2Vzc0FjdGlvbixcbiAgcmV0cmlldmVQdWJsaWNQYXltZW50T3JkZXJQYXltZW50QXR0ZW1wdEFjdGlvbixcbiAgcmV0cmlldmVQdWJsaWNQYXltZW50T3JkZXJQYXltZW50QXR0ZW1wdEZhaWx1cmVBY3Rpb24sXG4gIHJldHJpZXZlUHVibGljUGF5bWVudE9yZGVyUGF5bWVudEF0dGVtcHRTdWNjZXNzQWN0aW9uLFxuICByZXRyaWV2ZVB1YmxpY1BheW1lbnRPcmRlclN1Y2Nlc3NBY3Rpb24sXG4gIHJldHJpZXZlUHVibGljUGF5bWVudE9yZGVyU3dpc2hRUkNvZGVBY3Rpb25cbn0gZnJvbSAnLi4vYWN0aW9ucyc7XG5pbXBvcnQge2V4aGF1c3RNYXAsIGZvcmtKb2luLCBtZXJnZU1hcCwgb2Z9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtjYXRjaEVycm9yLCBtYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7XG4gIENsdWJJbWFnZSxcbiAgQ29sbGVjdGlvbixcbiAgTWVtYmVySW52b2ljZSxcbiAgUGF5bWVudEF0dGVtcHQsXG4gIFBheW1lbnRPcmRlcixcbiAgU2VhcmNoTWVtYmVySW52b2ljZSxcbiAgU3dpc2hRckNvZGVcbn0gZnJvbSAnLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7SHR0cEVycm9yUmVzcG9uc2V9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IGNyZWF0ZUFjdGlvbiB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcblxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgSW52b2ljZUVmZmVjdHMge1xuICBwcml2YXRlIGFjdGlvbnMkID0gaW5qZWN0KEFjdGlvbnMpO1xuICBwcml2YXRlIGludm9pY2VTZXJ2aWNlID0gaW5qZWN0KEludm9pY2VTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBwYXltZW50T3JkZXJTZXJ2aWNlID0gaW5qZWN0KFBheW1lbnRPcmRlclNlcnZpY2UpO1xuICBwcml2YXRlIHBheW1lbnRBdHRlbXB0U2VydmljZSA9IGluamVjdChQYXltZW50QXR0ZW1wdFNlcnZpY2UpO1xuXG4gIGNyZWF0ZU1lbWJlckludm9pY2VGcml0aWRza29ydGV0UGF5bWVudCQgPSBjcmVhdGVFZmZlY3QoKCkgPT4gdGhpcy5hY3Rpb25zJFxuICAgIC5waXBlKFxuICAgICAgb2ZUeXBlKGNyZWF0ZUZyaXRpZHNrb3J0ZXRNZW1iZXJJbnZvaWNlUGF5bWVudEFjdGlvbiksXG4gICAgICBleGhhdXN0TWFwKCh7cGF5bG9hZH06IHtcbiAgICAgICAgcGF5bG9hZDogeyBpbnZvaWNlSWQ6IHN0cmluZywgbWVtYmVySWQ6IHN0cmluZywgY2hpbGRQZXJzb25hbElkOiBzdHJpbmcsIGFkdWx0UGVyc29uYWxJZDogc3RyaW5nIH1cbiAgICAgIH0pID0+IHRoaXMucGF5bWVudEF0dGVtcHRTZXJ2aWNlLmNyZWF0ZU1lbWJlckludm9pY2VQYXltZW50QXR0ZW1wdChwYXlsb2FkLm1lbWJlcklkLCBwYXlsb2FkLmludm9pY2VJZCwge1xuICAgICAgICAgIHR5cGU6ICdmcml0aWRza29ydGV0JyxcbiAgICAgICAgICBjaGlsZFBlcnNvbmFsSWQ6IHBheWxvYWQuY2hpbGRQZXJzb25hbElkLFxuICAgICAgICAgIGFkdWx0UGVyc29uYWxJZDogcGF5bG9hZC5hZHVsdFBlcnNvbmFsSWQsXG4gICAgICAgICAgcHVibGljOiBmYWxzZVxuICAgICAgICB9KVxuICAgICAgICAucGlwZShcbiAgICAgICAgICBtYXAoKHBheW1lbnRBdHRlbXB0OiBQYXltZW50QXR0ZW1wdCkgPT4gY3JlYXRlRnJpdGlkc2tvcnRldEludm9pY2VQYXltZW50U3VjY2Vzc0FjdGlvbih7cGF5bG9hZDogcGF5bWVudEF0dGVtcHR9KSksXG4gICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiBvZihjcmVhdGVGcml0aWRza29ydGV0SW52b2ljZVBheW1lbnRGYWlsdXJlQWN0aW9uKHtwYXlsb2FkOiBlcnJvcn0pKSlcbiAgICAgICAgKVxuICAgICAgKVxuICAgIClcbiAgKTtcblxuICBjcmVhdGVNZW1iZXJJbnZvaWNlTW9uZGlkb1BheW1lbnQkID0gY3JlYXRlRWZmZWN0KCgpID0+IHRoaXMuYWN0aW9ucyRcbiAgICAucGlwZShcbiAgICAgIG9mVHlwZShjcmVhdGVNb25kaWRvTWVtYmVySW52b2ljZVBheW1lbnRBY3Rpb24pLFxuICAgICAgZXhoYXVzdE1hcCgoe3BheWxvYWR9OiB7XG4gICAgICAgICAgcGF5bG9hZDogeyBtZW1iZXJJZDogc3RyaW5nLCBpbnZvaWNlSWQ6IHN0cmluZyB9XG4gICAgICAgIH0pID0+IHRoaXMucGF5bWVudEF0dGVtcHRTZXJ2aWNlLmNyZWF0ZU1lbWJlckludm9pY2VQYXltZW50QXR0ZW1wdChwYXlsb2FkLm1lbWJlcklkLCBwYXlsb2FkLmludm9pY2VJZCwge3R5cGU6ICdtb25kaWRvJ30pXG4gICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICBtYXAoKHBheW1lbnRBdHRlbXB0OiBQYXltZW50QXR0ZW1wdCkgPT4gY3JlYXRlTW9uZGlkb0ludm9pY2VQYXltZW50U3VjY2Vzc0FjdGlvbih7cGF5bG9hZDogcGF5bWVudEF0dGVtcHR9KSksXG4gICAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IG9mKGNyZWF0ZU1vbmRpZG9JbnZvaWNlUGF5bWVudEZhaWx1cmVBY3Rpb24oe3BheWxvYWQ6IGVycm9yfSkpKVxuICAgICAgICAgIClcbiAgICAgIClcbiAgICApXG4gICk7XG5cbiAgY3JlYXRlTWVtYmVyUGluZ0NyZWRpdENhcmRQYXltZW50JCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiB0aGlzLmFjdGlvbnMkXG4gICAgLnBpcGUoXG4gICAgICBvZlR5cGUoY3JlYXRlUGluZ0NyZWRpdENhcmRNZW1iZXJJbnZvaWNlUGF5bWVudEFjdGlvbiksXG4gICAgICBleGhhdXN0TWFwKCh7cGF5bG9hZH06IHtcbiAgICAgICAgcGF5bG9hZDogeyBtZW1iZXJJZDogc3RyaW5nLCBpbnZvaWNlSWQ6IHN0cmluZyB9XG4gICAgICB9KSA9PiB0aGlzLnBheW1lbnRBdHRlbXB0U2VydmljZS5jcmVhdGVNZW1iZXJJbnZvaWNlUGF5bWVudEF0dGVtcHQocGF5bG9hZC5tZW1iZXJJZCwgcGF5bG9hZC5pbnZvaWNlSWQsIHt0eXBlOiAncGluZ19jYXJkJ30pXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIG1hcCgocGF5bWVudEF0dGVtcHQ6IFBheW1lbnRBdHRlbXB0KSA9PiBjcmVhdGVQaW5nQ3JlZGl0Q2FyZFBheW1lbnRTdWNjZXNzQWN0aW9uKHtwYXlsb2FkOiBwYXltZW50QXR0ZW1wdH0pKSxcbiAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IG9mKGNyZWF0ZVBpbmdDcmVkaXRDYXJkUGF5bWVudEZhaWx1cmVBY3Rpb24oe3BheWxvYWQ6IGVycm9yfSkpKVxuICAgICAgICApXG4gICAgICApXG4gICAgKVxuICApO1xuXG4gIGNyZWF0ZU1lbWJlclBpbmdTd2lzaFBheW1lbnQkID0gY3JlYXRlRWZmZWN0KCgpID0+IHRoaXMuYWN0aW9ucyRcbiAgICAucGlwZShcbiAgICAgIG9mVHlwZShjcmVhdGVQaW5nU3dpc2hNZW1iZXJJbnZvaWNlUGF5bWVudEFjdGlvbiksXG4gICAgICBleGhhdXN0TWFwKCh7cGF5bG9hZH06IHtcbiAgICAgICAgcGF5bG9hZDogeyBtZW1iZXJJZDogc3RyaW5nLCBpbnZvaWNlSWQ6IHN0cmluZywgdGVsZXBob25lTnVtYmVyOiBzdHJpbmcgfVxuICAgICAgfSkgPT4gdGhpcy5wYXltZW50QXR0ZW1wdFNlcnZpY2UuY3JlYXRlTWVtYmVySW52b2ljZVBheW1lbnRBdHRlbXB0KHBheWxvYWQubWVtYmVySWQsIHBheWxvYWQuaW52b2ljZUlkLCB7dHlwZTogJ3Bpbmdfc3dpc2gnLCBwaG9uZV9udW1iZXI6IHBheWxvYWQudGVsZXBob25lTnVtYmVyfSlcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgbWFwKChwYXltZW50QXR0ZW1wdDogUGF5bWVudEF0dGVtcHQpID0+IGNyZWF0ZVBpbmdTd2lzaFBheW1lbnRTdWNjZXNzQWN0aW9uKHtwYXlsb2FkOiBwYXltZW50QXR0ZW1wdH0pKSxcbiAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IG9mKGNyZWF0ZVBpbmdTd2lzaFBheW1lbnRGYWlsdXJlQWN0aW9uKHtwYXlsb2FkOiBlcnJvcn0pKSlcbiAgICAgICAgKVxuICAgICAgKVxuICAgIClcbiAgKTtcblxuICBjcmVhdGVNZW1iZXJJbnZvaWNlU3dpc2hQYXltZW50JCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiB0aGlzLmFjdGlvbnMkXG4gICAgLnBpcGUoXG4gICAgICBvZlR5cGUoY3JlYXRlU3dpc2hNZW1iZXJJbnZvaWNlUGF5bWVudEFjdGlvbiksXG4gICAgICBleGhhdXN0TWFwKCh7cGF5bG9hZH06IHtcbiAgICAgICAgICBwYXlsb2FkOiB7IG1lbWJlcklkOiBzdHJpbmcsIGludm9pY2VJZDogc3RyaW5nLCB0ZWxlcGhvbmVOdW1iZXI6IHN0cmluZyB9XG4gICAgICAgIH0pID0+IHRoaXMucGF5bWVudEF0dGVtcHRTZXJ2aWNlLmNyZWF0ZU1lbWJlckludm9pY2VQYXltZW50QXR0ZW1wdChwYXlsb2FkLm1lbWJlcklkLCBwYXlsb2FkLmludm9pY2VJZCwge3R5cGU6ICdzd2lzaCcsIHBob25lX251bWJlcjogcGF5bG9hZC50ZWxlcGhvbmVOdW1iZXJ9KVxuICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgbWFwKChwYXltZW50QXR0ZW1wdDogUGF5bWVudEF0dGVtcHQpID0+IGNyZWF0ZVN3aXNoSW52b2ljZVBheW1lbnRTdWNjZXNzQWN0aW9uKHtwYXlsb2FkOiBwYXltZW50QXR0ZW1wdH0pKSxcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4gb2YoY3JlYXRlU3dpc2hJbnZvaWNlUGF5bWVudEZhaWx1cmVBY3Rpb24oe3BheWxvYWQ6IGVycm9yfSkpKVxuICAgICAgICAgIClcbiAgICAgIClcbiAgICApXG4gICk7XG5cbiAgY3JlYXRlTWVtYmVyUGF5bWVudE9yZGVyTW9uZGlkb1BheW1lbnQkID0gY3JlYXRlRWZmZWN0KCgpID0+IHRoaXMuYWN0aW9ucyRcbiAgICAucGlwZShcbiAgICAgIG9mVHlwZShjcmVhdGVNb25kaWRvTWVtYmVyUGF5bWVudE9yZGVyUGF5bWVudEFjdGlvbiksXG4gICAgICBleGhhdXN0TWFwKCh7cGF5bG9hZH06IHtcbiAgICAgICAgICBwYXlsb2FkOiB7IG1lbWJlcklkOiBzdHJpbmcsIHBheW1lbnRPcmRlcklkOiBzdHJpbmcgfVxuICAgICAgICB9KSA9PiB0aGlzLnBheW1lbnRBdHRlbXB0U2VydmljZS5jcmVhdGVNZW1iZXJQYXltZW50T3JkZXJQYXltZW50QXR0ZW1wdChwYXlsb2FkLm1lbWJlcklkLCBwYXlsb2FkLnBheW1lbnRPcmRlcklkLCAnbW9uZGlkbycpXG4gICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICBtYXAoKHBheW1lbnRBdHRlbXB0OiBQYXltZW50QXR0ZW1wdCkgPT4gY3JlYXRlTW9uZGlkb1BheW1lbnRPcmRlclBheW1lbnRTdWNjZXNzQWN0aW9uKHtwYXlsb2FkOiBwYXltZW50QXR0ZW1wdH0pKSxcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4gb2YoY3JlYXRlTW9uZGlkb1BheW1lbnRPcmRlclBheW1lbnRGYWlsdXJlQWN0aW9uKHtwYXlsb2FkOiBlcnJvcn0pKSlcbiAgICAgICAgICApXG4gICAgICApXG4gICAgKVxuICApO1xuXG4gIGNyZWF0ZU1lbWJlclBpbmdDcmVkaXRDYXJkUGF5bWVudE9yZGVyUGF5bWVudCQgPSBjcmVhdGVFZmZlY3QoKCkgPT4gdGhpcy5hY3Rpb25zJFxuICAgIC5waXBlKFxuICAgICAgb2ZUeXBlKGNyZWF0ZVBpbmdDcmVkaXRDYXJkTWVtYmVyUGF5bWVudE9yZGVyUGF5bWVudEFjdGlvbiksXG4gICAgICBleGhhdXN0TWFwKCh7cGF5bG9hZH06IHtcbiAgICAgICAgICBwYXlsb2FkOiB7IG1lbWJlcklkOiBzdHJpbmcsIHBheW1lbnRPcmRlcklkOiBzdHJpbmcgfVxuICAgICAgICB9KSA9PiB0aGlzLnBheW1lbnRBdHRlbXB0U2VydmljZS5jcmVhdGVNZW1iZXJQYXltZW50T3JkZXJQYXltZW50QXR0ZW1wdChwYXlsb2FkLm1lbWJlcklkLCBwYXlsb2FkLnBheW1lbnRPcmRlcklkLCAncGluZ19jYXJkJylcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgbWFwKChwYXltZW50QXR0ZW1wdDogUGF5bWVudEF0dGVtcHQpID0+IGNyZWF0ZVBpbmdDcmVkaXRDYXJkUGF5bWVudE9yZGVyUGF5bWVudFN1Y2Nlc3NBY3Rpb24oe3BheWxvYWQ6IHBheW1lbnRBdHRlbXB0fSkpLFxuICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4gb2YoY3JlYXRlUGluZ0NyZWRpdENhcmRQYXltZW50T3JkZXJQYXltZW50RmFpbHVyZUFjdGlvbih7cGF5bG9hZDogZXJyb3J9KSkpXG4gICAgICAgIClcbiAgICAgIClcbiAgICApXG4gIClcblxuICBjcmVhdGVNZW1iZXJQaW5nU3dpc2hQYXltZW50T3JkZXJQYXltZW50JCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiB0aGlzLmFjdGlvbnMkXG4gICAgLnBpcGUoXG4gICAgICBvZlR5cGUoY3JlYXRlUGluZ1N3aXNoTWVtYmVyUGF5bWVudE9yZGVyUGF5bWVudEFjdGlvbiksXG4gICAgICBleGhhdXN0TWFwKCh7cGF5bG9hZH06IHtcbiAgICAgICAgICBwYXlsb2FkOiB7IG1lbWJlcklkOiBzdHJpbmcsIHBheW1lbnRPcmRlcklkOiBzdHJpbmcsIHRlbGVwaG9uZU51bWJlcjogc3RyaW5nIH1cbiAgICAgICAgfSkgPT4gdGhpcy5wYXltZW50QXR0ZW1wdFNlcnZpY2UuY3JlYXRlTWVtYmVyUGF5bWVudE9yZGVyUGF5bWVudEF0dGVtcHQocGF5bG9hZC5tZW1iZXJJZCwgcGF5bG9hZC5wYXltZW50T3JkZXJJZCwgJ3Bpbmdfc3dpc2gnLCBwYXlsb2FkLnRlbGVwaG9uZU51bWJlcilcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgbWFwKChwYXltZW50QXR0ZW1wdDogUGF5bWVudEF0dGVtcHQpID0+IGNyZWF0ZVBpbmdTd2lzaFBheW1lbnRPcmRlclBheW1lbnRTdWNjZXNzQWN0aW9uKHtwYXlsb2FkOiBwYXltZW50QXR0ZW1wdH0pKSxcbiAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IG9mKGNyZWF0ZVBpbmdTd2lzaFBheW1lbnRPcmRlclBheW1lbnRGYWlsdXJlQWN0aW9uKHtwYXlsb2FkOiBlcnJvcn0pKSlcbiAgICAgICAgKVxuICAgICAgKVxuICAgIClcbiAgKVxuXG4gIGNyZWF0ZU1lbWJlclBheW1lbnRPcmRlclN3aXNoUGF5bWVudCQgPSBjcmVhdGVFZmZlY3QoKCkgPT4gdGhpcy5hY3Rpb25zJFxuICAgIC5waXBlKFxuICAgICAgb2ZUeXBlKGNyZWF0ZVN3aXNoTWVtYmVyUGF5bWVudE9yZGVyUGF5bWVudEFjdGlvbiksXG4gICAgICBleGhhdXN0TWFwKCh7cGF5bG9hZH06IHtcbiAgICAgICAgICBwYXlsb2FkOiB7IG1lbWJlcklkOiBzdHJpbmcsIHBheW1lbnRPcmRlcklkOiBzdHJpbmcsIHRlbGVwaG9uZU51bWJlcjogc3RyaW5nIH1cbiAgICAgICAgfSkgPT4gdGhpcy5wYXltZW50QXR0ZW1wdFNlcnZpY2UuY3JlYXRlTWVtYmVyUGF5bWVudE9yZGVyUGF5bWVudEF0dGVtcHQocGF5bG9hZC5tZW1iZXJJZCwgcGF5bG9hZC5wYXltZW50T3JkZXJJZCwgJ3N3aXNoJywgcGF5bG9hZC50ZWxlcGhvbmVOdW1iZXIpXG4gICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICBtYXAoKHBheW1lbnRBdHRlbXB0OiBQYXltZW50QXR0ZW1wdCkgPT4gY3JlYXRlU3dpc2hQYXltZW50T3JkZXJQYXltZW50U3VjY2Vzc0FjdGlvbih7cGF5bG9hZDogcGF5bWVudEF0dGVtcHR9KSksXG4gICAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IG9mKGNyZWF0ZVN3aXNoUGF5bWVudE9yZGVyUGF5bWVudEZhaWx1cmVBY3Rpb24oe3BheWxvYWQ6IGVycm9yfSkpKVxuICAgICAgICAgIClcbiAgICAgIClcbiAgICApXG4gICk7XG5cbiAgY3JlYXRlTWVtYmVyWmltcGxlclBheW1lbnQkID0gY3JlYXRlRWZmZWN0KCgpID0+IHRoaXMuYWN0aW9ucyRcbiAgICAucGlwZShcbiAgICAgIG9mVHlwZShjcmVhdGVaaW1wbGVyTWVtYmVyUGF5bWVudEFjdGlvbiksXG4gICAgICBleGhhdXN0TWFwKCh7cGF5bG9hZH06IHtcbiAgICAgICAgICBwYXlsb2FkOiB7IG1lbWJlcklkOiBzdHJpbmcsIGludm9pY2VJZDogc3RyaW5nIH1cbiAgICAgICAgfSkgPT4gdGhpcy5wYXltZW50QXR0ZW1wdFNlcnZpY2UuY3JlYXRlTWVtYmVySW52b2ljZVBheW1lbnRBdHRlbXB0KHBheWxvYWQubWVtYmVySWQsIHBheWxvYWQuaW52b2ljZUlkLCB7dHlwZTogJ3ppbXBsZXInfSlcbiAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgIG1hcCgocGF5bWVudEF0dGVtcHQ6IFBheW1lbnRBdHRlbXB0KSA9PiBjcmVhdGVaaW1wbGVyUGF5bWVudFN1Y2Nlc3NBY3Rpb24oe3BheWxvYWQ6IHBheW1lbnRBdHRlbXB0fSkpLFxuICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiBvZihjcmVhdGVaaW1wbGVyUGF5bWVudEZhaWx1cmVBY3Rpb24oe3BheWxvYWQ6IGVycm9yfSkpKVxuICAgICAgICAgIClcbiAgICAgIClcbiAgICApXG4gICk7XG5cbiAgY3JlYXRlUHVibGljSW52b2ljZUZyaXRpZHNrb3J0UGF5bWVudCQgPSBjcmVhdGVFZmZlY3QoKCkgPT4gdGhpcy5hY3Rpb25zJFxuICAgIC5waXBlKFxuICAgICAgb2ZUeXBlKGNyZWF0ZUZyaXRpZHNrb3J0ZXRQdWJsaWNJbnZvaWNlUGF5bWVudEFjdGlvbiksXG4gICAgICBleGhhdXN0TWFwKCh7cGF5bG9hZH06IHtcbiAgICAgICAgcGF5bG9hZDogeyB0b2tlbjogc3RyaW5nLCBpbnZvaWNlSWQ6IHN0cmluZywgY2hpbGRQZXJzb25hbElkOiBzdHJpbmcsIGFkdWx0UGVyc29uYWxJZDogc3RyaW5nfVxuICAgICAgfSkgPT4gdGhpcy5wYXltZW50QXR0ZW1wdFNlcnZpY2UuY3JlYXRlUHVibGljSW52b2ljZVBheW1lbnRBdHRlbXB0KHBheWxvYWQuaW52b2ljZUlkLCBwYXlsb2FkLnRva2VuLCB7XG4gICAgICAgIHR5cGU6ICdmcml0aWRza29ydGV0JyxcbiAgICAgICAgYWR1bHRQZXJzb25hbElkOiBwYXlsb2FkLmFkdWx0UGVyc29uYWxJZCxcbiAgICAgICAgY2hpbGRQZXJzb25hbElkOiBwYXlsb2FkLmNoaWxkUGVyc29uYWxJZCxcbiAgICAgICAgcHVibGljOiB0cnVlXG4gICAgICB9KS5waXBlKFxuICAgICAgICAgIG1hcCgocGF5bWVudEF0dGVtcHQ6IFBheW1lbnRBdHRlbXB0KSA9PiBjcmVhdGVGcml0aWRza29ydGV0SW52b2ljZVBheW1lbnRTdWNjZXNzQWN0aW9uKHtwYXlsb2FkOiBwYXltZW50QXR0ZW1wdH0pKSxcbiAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IG9mKGNyZWF0ZUZyaXRpZHNrb3J0ZXRJbnZvaWNlUGF5bWVudEZhaWx1cmVBY3Rpb24oe3BheWxvYWQ6IGVycm9yfSkpKVxuICAgICAgICApXG4gICAgICApXG4gICAgKVxuICApO1xuXG4gIGNyZWF0ZVB1YmxpY0ludm9pY2VNb25kaWRvUGF5bWVudCQgPSBjcmVhdGVFZmZlY3QoKCkgPT4gdGhpcy5hY3Rpb25zJFxuICAgIC5waXBlKFxuICAgICAgb2ZUeXBlKGNyZWF0ZU1vbmRpZG9QdWJsaWNJbnZvaWNlUGF5bWVudEFjdGlvbiksXG4gICAgICBleGhhdXN0TWFwKCh7cGF5bG9hZH06IHtcbiAgICAgICAgICBwYXlsb2FkOiB7IHRva2VuOiBzdHJpbmcsIGludm9pY2VJZDogc3RyaW5nIH1cbiAgICAgICAgfSkgPT4gdGhpcy5wYXltZW50QXR0ZW1wdFNlcnZpY2UuY3JlYXRlUHVibGljSW52b2ljZVBheW1lbnRBdHRlbXB0KHBheWxvYWQuaW52b2ljZUlkLCBwYXlsb2FkLnRva2VuLCB7dHlwZTogJ21vbmRpZG8nfSlcbiAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgIG1hcCgocGF5bWVudEF0dGVtcHQ6IFBheW1lbnRBdHRlbXB0KSA9PiBjcmVhdGVNb25kaWRvSW52b2ljZVBheW1lbnRTdWNjZXNzQWN0aW9uKHtwYXlsb2FkOiBwYXltZW50QXR0ZW1wdH0pKSxcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4gb2YoY3JlYXRlTW9uZGlkb0ludm9pY2VQYXltZW50RmFpbHVyZUFjdGlvbih7cGF5bG9hZDogZXJyb3J9KSkpXG4gICAgICAgICAgKVxuICAgICAgKVxuICAgIClcbiAgKTtcblxuICBjcmVhdGVQdWJsaWNJbnZvaWNlUGluZ0NyZWRpdENhcmRQYXltZW50JCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiB0aGlzLmFjdGlvbnMkXG4gICAgLnBpcGUoXG4gICAgICBvZlR5cGUoY3JlYXRlUGluZ0NyZWRpdENhcmRQdWJsaWNJbnZvaWNlUGF5bWVudEFjdGlvbiksXG4gICAgICBleGhhdXN0TWFwKCh7cGF5bG9hZH06IHtcbiAgICAgICAgICBwYXlsb2FkOiB7IHRva2VuOiBzdHJpbmcsIGludm9pY2VJZDogc3RyaW5nIH1cbiAgICAgICAgfSkgPT4gdGhpcy5wYXltZW50QXR0ZW1wdFNlcnZpY2UuY3JlYXRlUHVibGljSW52b2ljZVBheW1lbnRBdHRlbXB0KHBheWxvYWQuaW52b2ljZUlkLCBwYXlsb2FkLnRva2VuLCB7dHlwZTogJ3BpbmdfY2FyZCcsIHB1YmxpYzogdHJ1ZX0pXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIG1hcCgocGF5bWVudEF0dGVtcHQ6IFBheW1lbnRBdHRlbXB0KSA9PiBjcmVhdGVQaW5nQ3JlZGl0Q2FyZFBheW1lbnRTdWNjZXNzQWN0aW9uKHtwYXlsb2FkOiBwYXltZW50QXR0ZW1wdH0pKSxcbiAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IG9mKGNyZWF0ZVBpbmdDcmVkaXRDYXJkUGF5bWVudEZhaWx1cmVBY3Rpb24oe3BheWxvYWQ6IGVycm9yfSkpKVxuICAgICAgICApXG4gICAgICApXG4gICAgKVxuICApO1xuXG4gIGNyZWF0ZVB1YmxpY0ludm9pY2VQaW5nU3dpc2hQYXltZW50JCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiB0aGlzLmFjdGlvbnMkXG4gICAgLnBpcGUoXG4gICAgICBvZlR5cGUoY3JlYXRlUGluZ1N3aXNoUHVibGljSW52b2ljZVBheW1lbnRBY3Rpb24pLFxuICAgICAgZXhoYXVzdE1hcCgoe3BheWxvYWR9OiB7XG4gICAgICAgICAgcGF5bG9hZDogeyB0b2tlbjogc3RyaW5nLCBpbnZvaWNlSWQ6IHN0cmluZywgdGVsZXBob25lTnVtYmVyOiBzdHJpbmcgfVxuICAgICAgICB9KSA9PiB0aGlzLnBheW1lbnRBdHRlbXB0U2VydmljZS5jcmVhdGVQdWJsaWNJbnZvaWNlUGF5bWVudEF0dGVtcHQocGF5bG9hZC5pbnZvaWNlSWQsIHBheWxvYWQudG9rZW4sIHtcbiAgICAgICAgICB0eXBlOiAncGluZ19zd2lzaCcsXG4gICAgICAgICAgcGhvbmVfbnVtYmVyOiBwYXlsb2FkLnRlbGVwaG9uZU51bWJlcixcbiAgICAgICAgICBwdWJsaWM6IHRydWVcbiAgICAgICAgfSlcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgbWFwKChwYXltZW50QXR0ZW1wdDogUGF5bWVudEF0dGVtcHQpID0+IGNyZWF0ZVBpbmdTd2lzaFBheW1lbnRTdWNjZXNzQWN0aW9uKHtwYXlsb2FkOiBwYXltZW50QXR0ZW1wdH0pKSxcbiAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IG9mKGNyZWF0ZVBpbmdTd2lzaFBheW1lbnRGYWlsdXJlQWN0aW9uKHtwYXlsb2FkOiBlcnJvcn0pKSlcbiAgICAgICAgKVxuICAgICAgKVxuICAgIClcbiAgKTtcblxuICBjcmVhdGVQdWJsaWNJbnZvaWNlU3dpc2hQYXltZW50JCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiB0aGlzLmFjdGlvbnMkXG4gICAgLnBpcGUoXG4gICAgICBvZlR5cGUoY3JlYXRlU3dpc2hQdWJsaWNJbnZvaWNlUGF5bWVudEFjdGlvbiksXG4gICAgICBleGhhdXN0TWFwKCh7cGF5bG9hZH06IHtcbiAgICAgICAgICBwYXlsb2FkOiB7IHRva2VuOiBzdHJpbmcsIGludm9pY2VJZDogc3RyaW5nLCB0ZWxlcGhvbmVOdW1iZXI6IHN0cmluZyB9XG4gICAgICAgIH0pID0+IHRoaXMucGF5bWVudEF0dGVtcHRTZXJ2aWNlLmNyZWF0ZVB1YmxpY0ludm9pY2VQYXltZW50QXR0ZW1wdChwYXlsb2FkLmludm9pY2VJZCwgcGF5bG9hZC50b2tlbiwge1xuICAgICAgICAgIHR5cGU6ICdzd2lzaCcsXG4gICAgICAgICAgcGhvbmVfbnVtYmVyOiBwYXlsb2FkLnRlbGVwaG9uZU51bWJlclxuICAgICAgICB9KVxuICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgbWFwKChwYXltZW50QXR0ZW1wdDogUGF5bWVudEF0dGVtcHQpID0+IGNyZWF0ZVN3aXNoSW52b2ljZVBheW1lbnRTdWNjZXNzQWN0aW9uKHtwYXlsb2FkOiBwYXltZW50QXR0ZW1wdH0pKSxcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4gb2YoY3JlYXRlU3dpc2hJbnZvaWNlUGF5bWVudEZhaWx1cmVBY3Rpb24oe3BheWxvYWQ6IGVycm9yfSkpKVxuICAgICAgICAgIClcbiAgICAgIClcbiAgICApXG4gICk7XG5cbiAgY3JlYXRlUHVibGljUGF5bWVudE9yZGVyTW9uZGlkb1BheW1lbnQkID0gY3JlYXRlRWZmZWN0KCgpID0+IHRoaXMuYWN0aW9ucyRcbiAgICAucGlwZShcbiAgICAgIG9mVHlwZShjcmVhdGVNb25kaWRvUHVibGljUGF5bWVudE9yZGVyUGF5bWVudEFjdGlvbiksXG4gICAgICBleGhhdXN0TWFwKCh7cGF5bG9hZH06IHtcbiAgICAgICAgICBwYXlsb2FkOiB7IHRva2VuOiBzdHJpbmcsIHBheW1lbnRPcmRlcklkOiBzdHJpbmcgfVxuICAgICAgICB9KSA9PiB0aGlzLnBheW1lbnRBdHRlbXB0U2VydmljZS5jcmVhdGVQdWJsaWNQYXltZW50T3JkZXJQYXltZW50QXR0ZW1wdChwYXlsb2FkLnBheW1lbnRPcmRlcklkLCBwYXlsb2FkLnRva2VuLCAnbW9uZGlkbycpXG4gICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICBtYXAoKHBheW1lbnRBdHRlbXB0OiBQYXltZW50QXR0ZW1wdCkgPT4gY3JlYXRlTW9uZGlkb1BheW1lbnRPcmRlclBheW1lbnRTdWNjZXNzQWN0aW9uKHtwYXlsb2FkOiBwYXltZW50QXR0ZW1wdH0pKSxcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4gb2YoY3JlYXRlTW9uZGlkb1BheW1lbnRPcmRlclBheW1lbnRGYWlsdXJlQWN0aW9uKHtwYXlsb2FkOiBlcnJvcn0pKSlcbiAgICAgICAgICApXG4gICAgICApXG4gICAgKVxuICApO1xuXG4gIGNyZWF0ZVB1YmxpY1BheW1lbnRPcmRlclBpbmdDcmVkaXRDYXJkUGF5bWVudCQgPSBjcmVhdGVFZmZlY3QoKCkgPT4gdGhpcy5hY3Rpb25zJFxuICAgIC5waXBlKFxuICAgICAgb2ZUeXBlKGNyZWF0ZVBpbmdDcmVkaXRDYXJkUHVibGljUGF5bWVudE9yZGVyUGF5bWVudEFjdGlvbiksXG4gICAgICBleGhhdXN0TWFwKCh7cGF5bG9hZH06IHtcbiAgICAgICAgICBwYXlsb2FkOiB7IHRva2VuOiBzdHJpbmcsIHBheW1lbnRPcmRlcklkOiBzdHJpbmcgfVxuICAgICAgICB9KSA9PiB0aGlzLnBheW1lbnRBdHRlbXB0U2VydmljZS5jcmVhdGVQdWJsaWNQYXltZW50T3JkZXJQYXltZW50QXR0ZW1wdChwYXlsb2FkLnBheW1lbnRPcmRlcklkLCBwYXlsb2FkLnRva2VuLCAncGluZ19jYXJkJylcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgbWFwKChwYXltZW50QXR0ZW1wdDogUGF5bWVudEF0dGVtcHQpID0+IGNyZWF0ZVBpbmdDcmVkaXRDYXJkUGF5bWVudFN1Y2Nlc3NBY3Rpb24oe3BheWxvYWQ6IHBheW1lbnRBdHRlbXB0fSkpLFxuICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4gb2YoY3JlYXRlUGluZ0NyZWRpdENhcmRQYXltZW50RmFpbHVyZUFjdGlvbih7cGF5bG9hZDogZXJyb3J9KSkpXG4gICAgICAgIClcbiAgICAgIClcbiAgICApXG4gICk7XG5cbiAgY3JlYXRlUHVibGljUGF5bWVudE9yZGVyUGluZ1N3aXNoUGF5bWVudCQgPSBjcmVhdGVFZmZlY3QoKCkgPT4gdGhpcy5hY3Rpb25zJFxuICAgIC5waXBlKFxuICAgICAgb2ZUeXBlKGNyZWF0ZVBpbmdTd2lzaFB1YmxpY1BheW1lbnRPcmRlclBheW1lbnRBY3Rpb24pLFxuICAgICAgZXhoYXVzdE1hcCgoe3BheWxvYWR9OiB7XG4gICAgICAgICAgcGF5bG9hZDogeyB0b2tlbjogc3RyaW5nLCBwYXltZW50T3JkZXJJZDogc3RyaW5nLCB0ZWxlcGhvbmVOdW1iZXI6IHN0cmluZyB9XG4gICAgICAgIH0pID0+IHRoaXMucGF5bWVudEF0dGVtcHRTZXJ2aWNlLmNyZWF0ZVB1YmxpY1BheW1lbnRPcmRlclBheW1lbnRBdHRlbXB0KHBheWxvYWQucGF5bWVudE9yZGVySWQsIHBheWxvYWQudG9rZW4sICdwaW5nX3N3aXNoJywgcGF5bG9hZC50ZWxlcGhvbmVOdW1iZXIpXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIG1hcCgocGF5bWVudEF0dGVtcHQ6IFBheW1lbnRBdHRlbXB0KSA9PiBjcmVhdGVQaW5nU3dpc2hQYXltZW50T3JkZXJQYXltZW50U3VjY2Vzc0FjdGlvbih7cGF5bG9hZDogcGF5bWVudEF0dGVtcHR9KSksXG4gICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiBvZihjcmVhdGVQaW5nU3dpc2hQYXltZW50RmFpbHVyZUFjdGlvbih7cGF5bG9hZDogZXJyb3J9KSkpXG4gICAgICAgIClcbiAgICAgIClcbiAgICApXG4gICk7XG5cbiAgY3JlYXRlUHVibGljUGF5bWVudE9yZGVyU3dpc2hQYXltZW50JCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiB0aGlzLmFjdGlvbnMkXG4gICAgLnBpcGUoXG4gICAgICBvZlR5cGUoY3JlYXRlU3dpc2hQdWJsaWNQYXltZW50T3JkZXJQYXltZW50QWN0aW9uKSxcbiAgICAgIGV4aGF1c3RNYXAoKHtwYXlsb2FkfToge1xuICAgICAgICAgIHBheWxvYWQ6IHsgdG9rZW46IHN0cmluZywgcGF5bWVudE9yZGVySWQ6IHN0cmluZywgdGVsZXBob25lTnVtYmVyOiBzdHJpbmcgfVxuICAgICAgICB9KSA9PiB0aGlzLnBheW1lbnRBdHRlbXB0U2VydmljZS5jcmVhdGVQdWJsaWNQYXltZW50T3JkZXJQYXltZW50QXR0ZW1wdChwYXlsb2FkLnBheW1lbnRPcmRlcklkLCBwYXlsb2FkLnRva2VuLCAnc3dpc2gnLCBwYXlsb2FkLnRlbGVwaG9uZU51bWJlcilcbiAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgIG1hcCgocGF5bWVudEF0dGVtcHQ6IFBheW1lbnRBdHRlbXB0KSA9PiBjcmVhdGVTd2lzaFBheW1lbnRPcmRlclBheW1lbnRTdWNjZXNzQWN0aW9uKHtwYXlsb2FkOiBwYXltZW50QXR0ZW1wdH0pKSxcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4gb2YoY3JlYXRlU3dpc2hQYXltZW50T3JkZXJQYXltZW50RmFpbHVyZUFjdGlvbih7cGF5bG9hZDogZXJyb3J9KSkpXG4gICAgICAgICAgKVxuICAgICAgKVxuICAgIClcbiAgKTtcblxuICBjcmVhdGVQdWJsaWNaaW1wbGVyUGF5bWVudCQgPSBjcmVhdGVFZmZlY3QoKCkgPT4gdGhpcy5hY3Rpb25zJFxuICAgIC5waXBlKFxuICAgICAgb2ZUeXBlKGNyZWF0ZVppbXBsZXJQdWJsaWNQYXltZW50QWN0aW9uKSxcbiAgICAgIGV4aGF1c3RNYXAoKHtwYXlsb2FkfToge1xuICAgICAgICAgIHBheWxvYWQ6IHsgdG9rZW46IHN0cmluZywgaW52b2ljZUlkOiBzdHJpbmcgfVxuICAgICAgICB9KSA9PiB0aGlzLnBheW1lbnRBdHRlbXB0U2VydmljZS5jcmVhdGVQdWJsaWNJbnZvaWNlUGF5bWVudEF0dGVtcHQocGF5bG9hZC5pbnZvaWNlSWQsIHBheWxvYWQudG9rZW4sIHt0eXBlOiAnemltcGxlcid9KVxuICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgbWFwKChwYXltZW50QXR0ZW1wdDogUGF5bWVudEF0dGVtcHQpID0+IGNyZWF0ZVppbXBsZXJQYXltZW50U3VjY2Vzc0FjdGlvbih7cGF5bG9hZDogcGF5bWVudEF0dGVtcHR9KSksXG4gICAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IG9mKGNyZWF0ZVppbXBsZXJQYXltZW50RmFpbHVyZUFjdGlvbih7cGF5bG9hZDogZXJyb3J9KSkpXG4gICAgICAgICAgKVxuICAgICAgKVxuICAgIClcbiAgKTtcblxuICBsaXN0TWVtYmVySW52b2ljZXMkID0gY3JlYXRlRWZmZWN0KCgpID0+IHRoaXMuYWN0aW9ucyRcbiAgICAucGlwZShcbiAgICAgIG9mVHlwZShsaXN0TWVtYmVySW52b2ljZXNBY3Rpb24pLFxuICAgICAgbWVyZ2VNYXAoKHtwYXlsb2FkfTogeyBwYXlsb2FkOiBBcnJheTxzdHJpbmc+IH0pID0+XG4gICAgICAgIGZvcmtKb2luKFxuICAgICAgICAgIHBheWxvYWQubWFwKChpZDogc3RyaW5nKSA9PlxuICAgICAgICAgICAgdGhpcy5pbnZvaWNlU2VydmljZS5nZXRNZW1iZXJJbnZvaWNlcyhpZClcbiAgICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKChpbnZvaWNlczogQ29sbGVjdGlvbjxTZWFyY2hNZW1iZXJJbnZvaWNlPikgPT4gKHtpZCwgaW52b2ljZXM6IGludm9pY2VzLnRvQXJyYXkoKX0pKSxcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IG9mKHtpZCwgZXJyb3J9KSlcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgIClcbiAgICAgICAgKS5waXBlKFxuICAgICAgICAgIG1lcmdlTWFwKChyZXN1bHRzOiBBcnJheTx7XG4gICAgICAgICAgICBpZDogc3RyaW5nLFxuICAgICAgICAgICAgaW52b2ljZXM/OiBBcnJheTxTZWFyY2hNZW1iZXJJbnZvaWNlPixcbiAgICAgICAgICAgIGVycm9yPzogSHR0cEVycm9yUmVzcG9uc2VcbiAgICAgICAgICB9PikgPT4ge1xuICAgICAgICAgICAgY29uc3QgaW52b2ljZU1hcCA9IG5ldyBNYXA8c3RyaW5nLCBBcnJheTxTZWFyY2hNZW1iZXJJbnZvaWNlPj4oKTtcbiAgICAgICAgICAgIGNvbnN0IGVycm9ycyA9IHJlc3VsdHMuZmlsdGVyKHJlc3VsdCA9PiByZXN1bHQuZXJyb3IpO1xuICAgICAgICAgICAgaWYgKGVycm9ycy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIG9mKGxpc3RNZW1iZXJJbnZvaWNlc0ZhaWx1cmVBY3Rpb24oe3BheWxvYWQ6IGVycm9yc1swXS5lcnJvciBhcyBIdHRwRXJyb3JSZXNwb25zZX0pKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmVzdWx0cy5mb3JFYWNoKChyZXN1bHQpID0+IHtcbiAgICAgICAgICAgICAgaWYgKHJlc3VsdC5pbnZvaWNlcykge1xuICAgICAgICAgICAgICAgIGludm9pY2VNYXAuc2V0KHJlc3VsdC5pZCwgcmVzdWx0Lmludm9pY2VzKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIHJldHVybiBvZihsaXN0TWVtYmVySW52b2ljZXNTdWNjZXNzQWN0aW9uKHtwYXlsb2FkOiBpbnZvaWNlTWFwfSkpO1xuICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICAgIClcbiAgICApXG4gICk7XG5cbiAgcmV0cmlldmVNZW1iZXJJbnZvaWNlJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiB0aGlzLmFjdGlvbnMkXG4gICAgLnBpcGUoXG4gICAgICBvZlR5cGUocmV0cmlldmVNZW1iZXJJbnZvaWNlQWN0aW9uKSxcbiAgICAgIGV4aGF1c3RNYXAoKHtwYXlsb2FkfToge1xuICAgICAgICAgIHBheWxvYWQ6IHsgbWVtYmVySWQ6IHN0cmluZywgaW52b2ljZUlkOiBzdHJpbmcgfVxuICAgICAgICB9KSA9PiB0aGlzLmludm9pY2VTZXJ2aWNlLmdldE1lbWJlckludm9pY2UocGF5bG9hZC5tZW1iZXJJZCwgcGF5bG9hZC5pbnZvaWNlSWQpXG4gICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICBtYXAoKGludm9pY2U6IE1lbWJlckludm9pY2UpID0+IHJldHJpZXZlTWVtYmVySW52b2ljZVN1Y2Nlc3NBY3Rpb24oe3BheWxvYWQ6IGludm9pY2V9KSksXG4gICAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IG9mKHJldHJpZXZlTWVtYmVySW52b2ljZUZhaWx1cmVBY3Rpb24oe3BheWxvYWQ6IGVycm9yfSkpKVxuICAgICAgICAgIClcbiAgICAgIClcbiAgICApXG4gICk7XG5cbiAgbGlzdE1lbWJlclBheW1lbnRPcmRlcnMkID0gY3JlYXRlRWZmZWN0KCgpID0+IHRoaXMuYWN0aW9ucyRcbiAgICAucGlwZShcbiAgICAgIG9mVHlwZShsaXN0TWVtYmVyUGF5bWVudE9yZGVyc0FjdGlvbiksXG4gICAgICBtZXJnZU1hcCgoe3BheWxvYWR9OiB7IHBheWxvYWQ6IEFycmF5PHN0cmluZz4gfSkgPT5cbiAgICAgICAgZm9ya0pvaW4oXG4gICAgICAgICAgcGF5bG9hZC5tYXAoKGlkOiBzdHJpbmcpID0+XG4gICAgICAgICAgICB0aGlzLnBheW1lbnRPcmRlclNlcnZpY2UuZ2V0TWVtYmVyUGF5bWVudE9yZGVycyhpZClcbiAgICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKChwYXltZW50T3JkZXJzOiBDb2xsZWN0aW9uPFBheW1lbnRPcmRlcj4pID0+ICh7aWQsIHBheW1lbnRPcmRlcnM6IHBheW1lbnRPcmRlcnMudG9BcnJheSgpfSkpLFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4gb2Yoe2lkLCBlcnJvcn0pKVxuICAgICAgICAgICAgICApXG4gICAgICAgICAgKVxuICAgICAgICApLnBpcGUoXG4gICAgICAgICAgbWVyZ2VNYXAoKHJlc3VsdHM6IEFycmF5PHsgaWQ6IHN0cmluZywgcGF5bWVudE9yZGVycz86IEFycmF5PFBheW1lbnRPcmRlcj4sIGVycm9yPzogSHR0cEVycm9yUmVzcG9uc2UgfT4pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHBheW1lbnRPcmRlck1hcCA9IG5ldyBNYXA8c3RyaW5nLCBBcnJheTxQYXltZW50T3JkZXI+PigpO1xuICAgICAgICAgICAgY29uc3QgZXJyb3JzID0gcmVzdWx0cy5maWx0ZXIocmVzdWx0ID0+IHJlc3VsdC5lcnJvcik7XG4gICAgICAgICAgICBpZiAoZXJyb3JzLmxlbmd0aCkge1xuICAgICAgICAgICAgICByZXR1cm4gb2YobGlzdE1lbWJlclBheW1lbnRPcmRlcnNGYWlsdXJlQWN0aW9uKHtwYXlsb2FkOiBlcnJvcnNbMF0uZXJyb3IgYXMgSHR0cEVycm9yUmVzcG9uc2V9KSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJlc3VsdHMuZm9yRWFjaCgocmVzdWx0KSA9PiB7XG4gICAgICAgICAgICAgIGlmIChyZXN1bHQucGF5bWVudE9yZGVycykge1xuICAgICAgICAgICAgICAgIHBheW1lbnRPcmRlck1hcC5zZXQocmVzdWx0LmlkLCByZXN1bHQucGF5bWVudE9yZGVycyk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICByZXR1cm4gb2YobGlzdE1lbWJlclBheW1lbnRPcmRlcnNTdWNjZXNzQWN0aW9uKHtwYXlsb2FkOiBwYXltZW50T3JkZXJNYXB9KSk7XG4gICAgICAgICAgfSlcbiAgICAgICAgKVxuICAgICAgKVxuICAgIClcbiAgKTtcblxuICByZXRyaWV2ZVBheW1lbnRPcmRlciQgPSBjcmVhdGVFZmZlY3QoKCkgPT4gdGhpcy5hY3Rpb25zJFxuICAgIC5waXBlKFxuICAgICAgb2ZUeXBlKHJldHJpZXZlUGF5bWVudE9yZGVyQWN0aW9uKSxcbiAgICAgIGV4aGF1c3RNYXAoKHtwYXlsb2FkfToge1xuICAgICAgICAgIHBheWxvYWQ6IHsgbWVtYmVySWQ6IHN0cmluZywgcGF5bWVudE9yZGVySWQ6IHN0cmluZyB9XG4gICAgICAgIH0pID0+IHRoaXMucGF5bWVudE9yZGVyU2VydmljZS5nZXRNZW1iZXJQYXltZW50T3JkZXIocGF5bG9hZC5tZW1iZXJJZCwgcGF5bG9hZC5wYXltZW50T3JkZXJJZClcbiAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgIG1hcCgocGF5bWVudE9yZGVyOiBQYXltZW50T3JkZXIpID0+IHJldHJpZXZlUGF5bWVudE9yZGVyU3VjY2Vzc0FjdGlvbih7cGF5bG9hZDogcGF5bWVudE9yZGVyfSkpLFxuICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiBvZihyZXRyaWV2ZVBheW1lbnRPcmRlckZhaWx1cmVBY3Rpb24oe3BheWxvYWQ6IGVycm9yfSkpKVxuICAgICAgICAgIClcbiAgICAgIClcbiAgICApXG4gICk7XG5cbiAgZGVsZXRlUGF5bWVudE9yZGVyJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiB0aGlzLmFjdGlvbnMkXG4gICAgLnBpcGUoXG4gICAgICBvZlR5cGUoZGVsZXRlUGF5bWVudE9yZGVyQWN0aW9uKSxcbiAgICAgIGV4aGF1c3RNYXAoKHtwYXlsb2FkfToge1xuICAgICAgICAgIHBheWxvYWQ6IHsgbWVtYmVySWQ6IHN0cmluZywgcGF5bWVudE9yZGVySWQ6IHN0cmluZyB9XG4gICAgICAgIH0pID0+IHRoaXMucGF5bWVudE9yZGVyU2VydmljZS5kZWxldGVNZW1iZXJQYXltZW50T3JkZXIocGF5bG9hZC5tZW1iZXJJZCwgcGF5bG9hZC5wYXltZW50T3JkZXJJZClcbiAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgIG1hcCgodmFsdWU6IGJvb2xlYW4pID0+IHtcbiAgICAgICAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGRlbGV0ZVBheW1lbnRPcmRlclN1Y2Nlc3NBY3Rpb24oKTtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZGVsZXRlUGF5bWVudE9yZGVyRmFpbHVyZUFjdGlvbih7cGF5bG9hZDogbmV3IEh0dHBFcnJvclJlc3BvbnNlKHtzdGF0dXM6IDQwMH0pfSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiBvZihkZWxldGVQYXltZW50T3JkZXJGYWlsdXJlQWN0aW9uKHtwYXlsb2FkOiBlcnJvcn0pKSlcbiAgICAgICAgICApXG4gICAgICApXG4gICAgKVxuICApO1xuXG4gIHJldHJpZXZlTWVtYmVySW52b2ljZVBheW1lbnRBdHRlbXB0JCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiB0aGlzLmFjdGlvbnMkXG4gICAgLnBpcGUoXG4gICAgICBvZlR5cGUocmV0cmlldmVNZW1iZXJJbnZvaWNlUGF5bWVudEF0dGVtcHRBY3Rpb24pLFxuICAgICAgZXhoYXVzdE1hcCgoe3BheWxvYWR9OiB7XG4gICAgICAgICAgcGF5bG9hZDogeyBtZW1iZXJJZDogc3RyaW5nLCBpbnZvaWNlSWQ6IHN0cmluZywgcGF5bWVudEF0dGVtcHRJZDogbnVtYmVyIH1cbiAgICAgICAgfSkgPT4gdGhpcy5wYXltZW50QXR0ZW1wdFNlcnZpY2UuZ2V0TWVtYmVySW52b2ljZVBheW1lbnRBdHRlbXB0KHBheWxvYWQubWVtYmVySWQsIHBheWxvYWQuaW52b2ljZUlkLCBwYXlsb2FkLnBheW1lbnRBdHRlbXB0SWQpXG4gICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICBtYXAoKHBheW1lbnRBdHRlbXB0OiBQYXltZW50QXR0ZW1wdCkgPT4gcmV0cmlldmVNZW1iZXJJbnZvaWNlUGF5bWVudEF0dGVtcHRTdWNjZXNzQWN0aW9uKHtwYXlsb2FkOiBwYXltZW50QXR0ZW1wdH0pKSxcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4gb2YocmV0cmlldmVNZW1iZXJJbnZvaWNlUGF5bWVudEF0dGVtcHRGYWlsdXJlQWN0aW9uKHtwYXlsb2FkOiBlcnJvcn0pKSlcbiAgICAgICAgICApXG4gICAgICApXG4gICAgKVxuICApO1xuXG4gIHJldHJpZXZlTWVtYmVySW52b2ljZVN3aXNoUVJDb2RlJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiB0aGlzLmFjdGlvbnMkXG4gICAgLnBpcGUoXG4gICAgICBvZlR5cGUocmV0cmlldmVNZW1iZXJJbnZvaWNlU3dpc2hRUkNvZGVBY3Rpb24pLFxuICAgICAgZXhoYXVzdE1hcCgoe3BheWxvYWR9OiB7XG4gICAgICAgICAgcGF5bG9hZDogeyBtZW1iZXJJZDogc3RyaW5nLCBpbnZvaWNlSWQ6IHN0cmluZywgcGF5bWVudEF0dGVtcHRJZDogbnVtYmVyIH1cbiAgICAgICAgfSkgPT4gdGhpcy5wYXltZW50QXR0ZW1wdFNlcnZpY2UuZ2V0TWVtYmVySW52b2ljZVN3aXNoUVJDb2RlKHBheWxvYWQubWVtYmVySWQsIHBheWxvYWQuaW52b2ljZUlkLCBwYXlsb2FkLnBheW1lbnRBdHRlbXB0SWQpXG4gICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICBtYXAoKHN3aXNoUVJDb2RlOiBTd2lzaFFyQ29kZSkgPT4gcmV0cmlldmVJbnZvaWNlU3dpc2hRUkNvZGVTdWNjZXNzQWN0aW9uKHtwYXlsb2FkOiBzd2lzaFFSQ29kZX0pKSxcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4gb2YocmV0cmlldmVJbnZvaWNlU3dpc2hRUkNvZGVGYWlsdXJlQWN0aW9uKHtwYXlsb2FkOiBlcnJvcn0pKSlcbiAgICAgICAgICApXG4gICAgICApXG4gICAgKVxuICApO1xuXG4gIHJldHJpZXZlTWVtYmVyUGF5bWVudE9yZGVyU3dpc2hRUkNvZGUkID0gY3JlYXRlRWZmZWN0KCgpID0+IHRoaXMuYWN0aW9ucyRcbiAgICAucGlwZShcbiAgICAgIG9mVHlwZShyZXRyaWV2ZU1lbWJlclBheW1lbnRPcmRlclN3aXNoUVJDb2RlQWN0aW9uKSxcbiAgICAgIGV4aGF1c3RNYXAoKHtwYXlsb2FkfToge1xuICAgICAgICAgIHBheWxvYWQ6IHsgbWVtYmVySWQ6IHN0cmluZywgcGF5bWVudE9yZGVySWQ6IHN0cmluZywgcGF5bWVudEF0dGVtcHRJZDogbnVtYmVyIH1cbiAgICAgICAgfSkgPT4gdGhpcy5wYXltZW50QXR0ZW1wdFNlcnZpY2UuZ2V0TWVtYmVyUGF5bWVudE9yZGVyU3dpc2hRUkNvZGUocGF5bG9hZC5tZW1iZXJJZCwgcGF5bG9hZC5wYXltZW50T3JkZXJJZCwgcGF5bG9hZC5wYXltZW50QXR0ZW1wdElkKVxuICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgbWFwKChzd2lzaFFSQ29kZTogU3dpc2hRckNvZGUpID0+IHJldHJpZXZlUGF5bWVudE9yZGVyU3dpc2hRUkNvZGVTdWNjZXNzQWN0aW9uKHtwYXlsb2FkOiBzd2lzaFFSQ29kZX0pKSxcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4gb2YocmV0cmlldmVQYXltZW50T3JkZXJTd2lzaFFSQ29kZUZhaWx1cmVBY3Rpb24oe3BheWxvYWQ6IGVycm9yfSkpKVxuICAgICAgICAgIClcbiAgICAgIClcbiAgICApXG4gICk7XG5cbiAgcmV0cmlldmVQdWJsaWNJbnZvaWNlJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiB0aGlzLmFjdGlvbnMkXG4gICAgLnBpcGUoXG4gICAgICBvZlR5cGUocmV0cmlldmVQdWJsaWNJbnZvaWNlQWN0aW9uKSxcbiAgICAgIGV4aGF1c3RNYXAoKHtwYXlsb2FkfToge1xuICAgICAgICAgIHBheWxvYWQ6IHsgdG9rZW46IHN0cmluZywgaW52b2ljZUlkOiBzdHJpbmcgfVxuICAgICAgICB9KSA9PiB0aGlzLmludm9pY2VTZXJ2aWNlLmdldFB1YmxpY0ludm9pY2UocGF5bG9hZC5pbnZvaWNlSWQsIHBheWxvYWQudG9rZW4pXG4gICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICBtYXAoKGludm9pY2U6IE1lbWJlckludm9pY2UpID0+IHJldHJpZXZlUHVibGljSW52b2ljZVN1Y2Nlc3NBY3Rpb24oe3BheWxvYWQ6IGludm9pY2V9KSksXG4gICAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IG9mKHJldHJpZXZlUHVibGljSW52b2ljZUZhaWx1cmVBY3Rpb24oe3BheWxvYWQ6IGVycm9yfSkpKVxuICAgICAgICAgIClcbiAgICAgIClcbiAgICApXG4gICk7XG5cbiAgcmV0cmlldmVQdWJsaWNJbnZvaWNlTG9nbyQgPSBjcmVhdGVFZmZlY3QoKCkgPT4gdGhpcy5hY3Rpb25zJFxuICAgIC5waXBlKFxuICAgICAgb2ZUeXBlKHJldHJpZXZlUHVibGljSW52b2ljZUxvZ29BY3Rpb24pLFxuICAgICAgZXhoYXVzdE1hcCgoe3BheWxvYWR9OiB7XG4gICAgICAgICAgcGF5bG9hZDogeyB0b2tlbjogc3RyaW5nLCBpbnZvaWNlSWQ6IHN0cmluZyB9XG4gICAgICAgIH0pID0+IHRoaXMuaW52b2ljZVNlcnZpY2UuZ2V0UHVibGljSW52b2ljZUxvZ28ocGF5bG9hZC5pbnZvaWNlSWQsIHBheWxvYWQudG9rZW4pXG4gICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICBtYXAoKGltYWdlOiBDbHViSW1hZ2UpID0+IHJldHJpZXZlUHVibGljSW52b2ljZUxvZ29TdWNjZXNzQWN0aW9uKHtwYXlsb2FkOiBpbWFnZX0pKSxcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4gb2YocmV0cmlldmVQdWJsaWNJbnZvaWNlTG9nb0ZhaWx1cmVBY3Rpb24oe3BheWxvYWQ6IGVycm9yfSkpKVxuICAgICAgICAgIClcbiAgICAgIClcbiAgICApXG4gICk7XG5cbiAgcmV0cmlldmVQdWJsaWNJbnZvaWNlUGF5bWVudEF0dGVtcHQkID0gY3JlYXRlRWZmZWN0KCgpID0+IHRoaXMuYWN0aW9ucyRcbiAgICAucGlwZShcbiAgICAgIG9mVHlwZShyZXRyaWV2ZVB1YmxpY0ludm9pY2VQYXltZW50QXR0ZW1wdEFjdGlvbiksXG4gICAgICBleGhhdXN0TWFwKCh7cGF5bG9hZH06IHtcbiAgICAgICAgICBwYXlsb2FkOiB7IHRva2VuOiBzdHJpbmcsIGludm9pY2VJZDogc3RyaW5nLCBwYXltZW50QXR0ZW1wdElkOiBudW1iZXIgfVxuICAgICAgICB9KSA9PiB0aGlzLnBheW1lbnRBdHRlbXB0U2VydmljZS5nZXRQdWJsaWNJbnZvaWNlUGF5bWVudEF0dGVtcHQocGF5bG9hZC5pbnZvaWNlSWQsIHBheWxvYWQudG9rZW4sIHBheWxvYWQucGF5bWVudEF0dGVtcHRJZClcbiAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgIG1hcCgocGF5bWVudEF0dGVtcHQ6IFBheW1lbnRBdHRlbXB0KSA9PiByZXRyaWV2ZVB1YmxpY0ludm9pY2VQYXltZW50QXR0ZW1wdFN1Y2Nlc3NBY3Rpb24oe3BheWxvYWQ6IHBheW1lbnRBdHRlbXB0fSkpLFxuICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiBvZihyZXRyaWV2ZVB1YmxpY0ludm9pY2VQYXltZW50QXR0ZW1wdEZhaWx1cmVBY3Rpb24oe3BheWxvYWQ6IGVycm9yfSkpKVxuICAgICAgICAgIClcbiAgICAgIClcbiAgICApXG4gICk7XG5cbiAgcmV0cmlldmVQdWJsaWNJbnZvaWNlU3dpc2hRUkNvZGUkID0gY3JlYXRlRWZmZWN0KCgpID0+IHRoaXMuYWN0aW9ucyRcbiAgICAucGlwZShcbiAgICAgIG9mVHlwZShyZXRyaWV2ZVB1YmxpY0ludm9pY2VTd2lzaFFSQ29kZUFjdGlvbiksXG4gICAgICBleGhhdXN0TWFwKCh7cGF5bG9hZH06IHtcbiAgICAgICAgICBwYXlsb2FkOiB7IHRva2VuOiBzdHJpbmcsIGludm9pY2VJZDogc3RyaW5nLCBwYXltZW50QXR0ZW1wdElkOiBudW1iZXIgfVxuICAgICAgICB9KSA9PiB0aGlzLnBheW1lbnRBdHRlbXB0U2VydmljZS5nZXRQdWJsaWNJbnZvaWNlU3dpc2hRUkNvZGUocGF5bG9hZC5pbnZvaWNlSWQsIHBheWxvYWQudG9rZW4sIHBheWxvYWQucGF5bWVudEF0dGVtcHRJZClcbiAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgIG1hcCgoc3dpc2hRUkNvZGU6IFN3aXNoUXJDb2RlKSA9PiByZXRyaWV2ZUludm9pY2VTd2lzaFFSQ29kZVN1Y2Nlc3NBY3Rpb24oe3BheWxvYWQ6IHN3aXNoUVJDb2RlfSkpLFxuICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiBvZihyZXRyaWV2ZUludm9pY2VTd2lzaFFSQ29kZUZhaWx1cmVBY3Rpb24oe3BheWxvYWQ6IGVycm9yfSkpKVxuICAgICAgICAgIClcbiAgICAgIClcbiAgICApXG4gICk7XG5cblxuICByZXRyaWV2ZU1lbWJlclBheW1lbnRPcmRlclBheW1lbnRBdHRlbXB0JCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiB0aGlzLmFjdGlvbnMkXG4gICAgLnBpcGUoXG4gICAgICBvZlR5cGUocmV0cmlldmVNZW1iZXJQYXltZW50T3JkZXJQYXltZW50QXR0ZW1wdEFjdGlvbiksXG4gICAgICBleGhhdXN0TWFwKCh7cGF5bG9hZH06IHtcbiAgICAgICAgICBwYXlsb2FkOiB7IG1lbWJlcklkOiBzdHJpbmcsIHBheW1lbnRPcmRlcklkOiBzdHJpbmcsIHBheW1lbnRBdHRlbXB0SWQ6IG51bWJlciB9XG4gICAgICAgIH0pID0+IHRoaXMucGF5bWVudEF0dGVtcHRTZXJ2aWNlLmdldE1lbWJlclBheW1lbnRPcmRlclBheW1lbnRBdHRlbXB0KHBheWxvYWQubWVtYmVySWQsIHBheWxvYWQucGF5bWVudE9yZGVySWQsIHBheWxvYWQucGF5bWVudEF0dGVtcHRJZClcbiAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgIG1hcCgocGF5bWVudEF0dGVtcHQ6IFBheW1lbnRBdHRlbXB0KSA9PiByZXRyaWV2ZU1lbWJlclBheW1lbnRPcmRlclBheW1lbnRBdHRlbXB0U3VjY2Vzc0FjdGlvbih7cGF5bG9hZDogcGF5bWVudEF0dGVtcHR9KSksXG4gICAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IG9mKHJldHJpZXZlTWVtYmVyUGF5bWVudE9yZGVyUGF5bWVudEF0dGVtcHRGYWlsdXJlQWN0aW9uKHtwYXlsb2FkOiBlcnJvcn0pKSlcbiAgICAgICAgICApXG4gICAgICApXG4gICAgKVxuICApO1xuXG4gIHJldHJpZXZlUHVibGljUGF5bWVudE9yZGVyJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiB0aGlzLmFjdGlvbnMkXG4gICAgLnBpcGUoXG4gICAgICBvZlR5cGUocmV0cmlldmVQdWJsaWNQYXltZW50T3JkZXJBY3Rpb24pLFxuICAgICAgZXhoYXVzdE1hcCgoe3BheWxvYWR9OiB7XG4gICAgICAgICAgcGF5bG9hZDogeyB0b2tlbjogc3RyaW5nLCBwYXltZW50T3JkZXJJZDogc3RyaW5nIH1cbiAgICAgICAgfSkgPT4gdGhpcy5wYXltZW50T3JkZXJTZXJ2aWNlLmdldFB1YmxpY1BheW1lbnRPcmRlcihwYXlsb2FkLnBheW1lbnRPcmRlcklkLCBwYXlsb2FkLnRva2VuKVxuICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgbWFwKChwYXltZW50T3JkZXI6IFBheW1lbnRPcmRlcikgPT4gcmV0cmlldmVQdWJsaWNQYXltZW50T3JkZXJTdWNjZXNzQWN0aW9uKHtwYXlsb2FkOiBwYXltZW50T3JkZXJ9KSksXG4gICAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IG9mKHJldHJpZXZlUHVibGljUGF5bWVudE9yZGVyRmFpbHVyZUFjdGlvbih7cGF5bG9hZDogZXJyb3J9KSkpXG4gICAgICAgICAgKVxuICAgICAgKVxuICAgIClcbiAgKTtcblxuICByZXRyaWV2ZVB1YmxpY1BheW1lbnRPcmRlckxvZ28kID0gY3JlYXRlRWZmZWN0KCgpID0+IHRoaXMuYWN0aW9ucyRcbiAgICAucGlwZShcbiAgICAgIG9mVHlwZShyZXRyaWV2ZVB1YmxpY1BheW1lbnRPcmRlckxvZ29BY3Rpb24pLFxuICAgICAgZXhoYXVzdE1hcCgoe3BheWxvYWR9OiB7XG4gICAgICAgICAgcGF5bG9hZDogeyB0b2tlbjogc3RyaW5nLCBwYXltZW50T3JkZXJJZDogc3RyaW5nIH1cbiAgICAgICAgfSkgPT4gdGhpcy5wYXltZW50T3JkZXJTZXJ2aWNlLmdldFB1YmxpY1BheW1lbnRPcmRlckxvZ28ocGF5bG9hZC5wYXltZW50T3JkZXJJZCwgcGF5bG9hZC50b2tlbilcbiAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgIG1hcCgoaW1hZ2U6IENsdWJJbWFnZSkgPT4gcmV0cmlldmVQdWJsaWNQYXltZW50T3JkZXJMb2dvU3VjY2Vzc0FjdGlvbih7cGF5bG9hZDogaW1hZ2V9KSksXG4gICAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IG9mKHJldHJpZXZlUHVibGljUGF5bWVudE9yZGVyTG9nb0ZhaWx1cmVBY3Rpb24oe3BheWxvYWQ6IGVycm9yfSkpKVxuICAgICAgICAgIClcbiAgICAgIClcbiAgICApXG4gICk7XG5cbiAgcmV0cmlldmVQdWJsaWNQYXltZW50T3JkZXJQYXltZW50QXR0ZW1wdCQgPSBjcmVhdGVFZmZlY3QoKCkgPT4gdGhpcy5hY3Rpb25zJFxuICAgIC5waXBlKFxuICAgICAgb2ZUeXBlKHJldHJpZXZlUHVibGljUGF5bWVudE9yZGVyUGF5bWVudEF0dGVtcHRBY3Rpb24pLFxuICAgICAgZXhoYXVzdE1hcCgoe3BheWxvYWR9OiB7XG4gICAgICAgICAgcGF5bG9hZDogeyB0b2tlbjogc3RyaW5nLCBwYXltZW50T3JkZXJJZDogc3RyaW5nLCBwYXltZW50QXR0ZW1wdElkOiBudW1iZXIgfVxuICAgICAgICB9KSA9PiB0aGlzLnBheW1lbnRBdHRlbXB0U2VydmljZS5nZXRQdWJsaWNQYXltZW50T3JkZXJQYXltZW50QXR0ZW1wdChwYXlsb2FkLnBheW1lbnRPcmRlcklkLCBwYXlsb2FkLnRva2VuLCBwYXlsb2FkLnBheW1lbnRBdHRlbXB0SWQpXG4gICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICBtYXAoKHBheW1lbnRBdHRlbXB0OiBQYXltZW50QXR0ZW1wdCkgPT4gcmV0cmlldmVQdWJsaWNQYXltZW50T3JkZXJQYXltZW50QXR0ZW1wdFN1Y2Nlc3NBY3Rpb24oe3BheWxvYWQ6IHBheW1lbnRBdHRlbXB0fSkpLFxuICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiBvZihyZXRyaWV2ZVB1YmxpY1BheW1lbnRPcmRlclBheW1lbnRBdHRlbXB0RmFpbHVyZUFjdGlvbih7cGF5bG9hZDogZXJyb3J9KSkpXG4gICAgICAgICAgKVxuICAgICAgKVxuICAgIClcbiAgKTtcblxuICByZXRyaWV2ZVB1YmxpY1BheW1lbnRPcmRlclN3aXNoUVJDb2RlJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiB0aGlzLmFjdGlvbnMkXG4gICAgLnBpcGUoXG4gICAgICBvZlR5cGUocmV0cmlldmVQdWJsaWNQYXltZW50T3JkZXJTd2lzaFFSQ29kZUFjdGlvbiksXG4gICAgICBleGhhdXN0TWFwKCh7cGF5bG9hZH06IHtcbiAgICAgICAgICBwYXlsb2FkOiB7IHRva2VuOiBzdHJpbmcsIHBheW1lbnRPcmRlcklkOiBzdHJpbmcsIHBheW1lbnRBdHRlbXB0SWQ6IG51bWJlciB9XG4gICAgICAgIH0pID0+IHRoaXMucGF5bWVudEF0dGVtcHRTZXJ2aWNlLmdldFB1YmxpY1BheW1lbnRPcmRlclN3aXNoUVJDb2RlKHBheWxvYWQucGF5bWVudE9yZGVySWQsIHBheWxvYWQudG9rZW4sIHBheWxvYWQucGF5bWVudEF0dGVtcHRJZClcbiAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgIG1hcCgoc3dpc2hRUkNvZGU6IFN3aXNoUXJDb2RlKSA9PiByZXRyaWV2ZVBheW1lbnRPcmRlclN3aXNoUVJDb2RlU3VjY2Vzc0FjdGlvbih7cGF5bG9hZDogc3dpc2hRUkNvZGV9KSksXG4gICAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IG9mKHJldHJpZXZlUGF5bWVudE9yZGVyU3dpc2hRUkNvZGVGYWlsdXJlQWN0aW9uKHtwYXlsb2FkOiBlcnJvcn0pKSlcbiAgICAgICAgICApXG4gICAgICApXG4gICAgKVxuICApO1xufVxuIl19
|
|
188
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW52b2ljZS5lZmZlY3RzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YS1hY2Nlc3Mvc3JjL2xpYi9zdG9yZS9lZmZlY3RzL2ludm9pY2UuZWZmZWN0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxxQkFBcUIsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzVGLE9BQU8sRUFDTCw4Q0FBOEMsRUFDOUMsOENBQThDLEVBQzlDLDZDQUE2QyxFQUM3Qyw2Q0FBNkMsRUFDN0Msd0NBQXdDLEVBQ3hDLHdDQUF3QyxFQUN4Qyx1Q0FBdUMsRUFDdkMsNENBQTRDLEVBQzVDLDZDQUE2QyxFQUM3Qyw2Q0FBNkMsRUFDN0MsdUNBQXVDLEVBQ3ZDLDRDQUE0QyxFQUM1Qyw4Q0FBOEMsRUFDOUMsbURBQW1ELEVBQ25ELHdDQUF3QyxFQUN4QyxvREFBb0QsRUFDcEQsb0RBQW9ELEVBQ3BELHdDQUF3QyxFQUN4Qyw4Q0FBOEMsRUFDOUMsbURBQW1ELEVBQ25ELHlDQUF5QyxFQUN6Qyw4Q0FBOEMsRUFDOUMsbUNBQW1DLEVBQ25DLCtDQUErQyxFQUMvQywrQ0FBK0MsRUFDL0MsbUNBQW1DLEVBQ25DLHlDQUF5QyxFQUN6Qyw4Q0FBOEMsRUFDOUMsc0NBQXNDLEVBQ3RDLHNDQUFzQyxFQUN0QyxxQ0FBcUMsRUFDckMsMENBQTBDLEVBQzFDLDJDQUEyQyxFQUMzQywyQ0FBMkMsRUFDM0MscUNBQXFDLEVBQ3JDLDBDQUEwQyxFQUMxQyxnQ0FBZ0MsRUFDaEMsaUNBQWlDLEVBQ2pDLGlDQUFpQyxFQUNqQyxnQ0FBZ0MsRUFDaEMsd0JBQXdCLEVBQ3hC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Y0FBYzsyR0FBZCxjQUFjOzsyRkFBZCxjQUFjO2tCQUQxQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3Rpb25zLCBjcmVhdGVFZmZlY3QsIG9mVHlwZSB9IGZyb20gJ0BuZ3J4L2VmZmVjdHMnO1xuaW1wb3J0IHsgSW52b2ljZVNlcnZpY2UsIFBheW1lbnRBdHRlbXB0U2VydmljZSwgUGF5bWVudE9yZGVyU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzJztcbmltcG9ydCB7XG4gIGNyZWF0ZUZyaXRpZHNrb3J0ZXRJbnZvaWNlUGF5bWVudEZhaWx1cmVBY3Rpb24sXG4gIGNyZWF0ZUZyaXRpZHNrb3J0ZXRJbnZvaWNlUGF5bWVudFN1Y2Nlc3NBY3Rpb24sXG4gIGNyZWF0ZUZyaXRpZHNrb3J0ZXRNZW1iZXJJbnZvaWNlUGF5bWVudEFjdGlvbixcbiAgY3JlYXRlRnJpdGlkc2tvcnRldFB1YmxpY0ludm9pY2VQYXltZW50QWN0aW9uLFxuICBjcmVhdGVNb25kaWRvSW52b2ljZVBheW1lbnRGYWlsdXJlQWN0aW9uLFxuICBjcmVhdGVNb25kaWRvSW52b2ljZVBheW1lbnRTdWNjZXNzQWN0aW9uLFxuICBjcmVhdGVNb25kaWRvTWVtYmVySW52b2ljZVBheW1lbnRBY3Rpb24sXG4gIGNyZWF0ZU1vbmRpZG9NZW1iZXJQYXltZW50T3JkZXJQYXltZW50QWN0aW9uLFxuICBjcmVhdGVNb25kaWRvUGF5bWVudE9yZGVyUGF5bWVudEZhaWx1cmVBY3Rpb24sXG4gIGNyZWF0ZU1vbmRpZG9QYXltZW50T3JkZXJQYXltZW50U3VjY2Vzc0FjdGlvbixcbiAgY3JlYXRlTW9uZGlkb1B1YmxpY0ludm9pY2VQYXltZW50QWN0aW9uLFxuICBjcmVhdGVNb25kaWRvUHVibGljUGF5bWVudE9yZGVyUGF5bWVudEFjdGlvbixcbiAgY3JlYXRlUGluZ0NyZWRpdENhcmRNZW1iZXJJbnZvaWNlUGF5bWVudEFjdGlvbixcbiAgY3JlYXRlUGluZ0NyZWRpdENhcmRNZW1iZXJQYXltZW50T3JkZXJQYXltZW50QWN0aW9uLFxuICBjcmVhdGVQaW5nQ3JlZGl0Q2FyZFBheW1lbnRGYWlsdXJlQWN0aW9uLFxuICBjcmVhdGVQaW5nQ3JlZGl0Q2FyZFBheW1lbnRPcmRlclBheW1lbnRGYWlsdXJlQWN0aW9uLFxuICBjcmVhdGVQaW5nQ3JlZGl0Q2FyZFBheW1lbnRPcmRlclBheW1lbnRTdWNjZXNzQWN0aW9uLFxuICBjcmVhdGVQaW5nQ3JlZGl0Q2FyZFBheW1lbnRTdWNjZXNzQWN0aW9uLFxuICBjcmVhdGVQaW5nQ3JlZGl0Q2FyZFB1YmxpY0ludm9pY2VQYXltZW50QWN0aW9uLFxuICBjcmVhdGVQaW5nQ3JlZGl0Q2FyZFB1YmxpY1BheW1lbnRPcmRlclBheW1lbnRBY3Rpb24sXG4gIGNyZWF0ZVBpbmdTd2lzaE1lbWJlckludm9pY2VQYXltZW50QWN0aW9uLFxuICBjcmVhdGVQaW5nU3dpc2hNZW1iZXJQYXltZW50T3JkZXJQYXltZW50QWN0aW9uLFxuICBjcmVhdGVQaW5nU3dpc2hQYXltZW50RmFpbHVyZUFjdGlvbixcbiAgY3JlYXRlUGluZ1N3aXNoUGF5bWVudE9yZGVyUGF5bWVudEZhaWx1cmVBY3Rpb24sXG4gIGNyZWF0ZVBpbmdTd2lzaFBheW1lbnRPcmRlclBheW1lbnRTdWNjZXNzQWN0aW9uLFxuICBjcmVhdGVQaW5nU3dpc2hQYXltZW50U3VjY2Vzc0FjdGlvbixcbiAgY3JlYXRlUGluZ1N3aXNoUHVibGljSW52b2ljZVBheW1lbnRBY3Rpb24sXG4gIGNyZWF0ZVBpbmdTd2lzaFB1YmxpY1BheW1lbnRPcmRlclBheW1lbnRBY3Rpb24sXG4gIGNyZWF0ZVN3aXNoSW52b2ljZVBheW1lbnRGYWlsdXJlQWN0aW9uLFxuICBjcmVhdGVTd2lzaEludm9pY2VQYXltZW50U3VjY2Vzc0FjdGlvbixcbiAgY3JlYXRlU3dpc2hNZW1iZXJJbnZvaWNlUGF5bWVudEFjdGlvbixcbiAgY3JlYXRlU3dpc2hNZW1iZXJQYXltZW50T3JkZXJQYXltZW50QWN0aW9uLFxuICBjcmVhdGVTd2lzaFBheW1lbnRPcmRlclBheW1lbnRGYWlsdXJlQWN0aW9uLFxuICBjcmVhdGVTd2lzaFBheW1lbnRPcmRlclBheW1lbnRTdWNjZXNzQWN0aW9uLFxuICBjcmVhdGVTd2lzaFB1YmxpY0ludm9pY2VQYXltZW50QWN0aW9uLFxuICBjcmVhdGVTd2lzaFB1YmxpY1BheW1lbnRPcmRlclBheW1lbnRBY3Rpb24sXG4gIGNyZWF0ZVppbXBsZXJNZW1iZXJQYXltZW50QWN0aW9uLFxuICBjcmVhdGVaaW1wbGVyUGF5bWVudEZhaWx1cmVBY3Rpb24sXG4gIGNyZWF0ZVppbXBsZXJQYXltZW50U3VjY2Vzc0FjdGlvbixcbiAgY3JlYXRlWmltcGxlclB1YmxpY1BheW1lbnRBY3Rpb24sXG4gIGRlbGV0ZVBheW1lbnRPcmRlckFjdGlvbixcbiAgZGVsZXRlUGF5bWVudE9yZGVyRmFpbHVyZUFjdGlvbixcbiAgZGVsZXRlUGF5bWVudE9yZGVyU3VjY2Vzc0FjdGlvbixcbiAgZGVsZXRlUHVibGljUGF5bWVudE9yZGVyQWN0aW9uLFxuICBkZWxldGVQdWJsaWNQYXltZW50T3JkZXJGYWlsdXJlQWN0aW9uLFxuICBkZWxldGVQdWJsaWNQYXltZW50T3JkZXJTdWNjZXNzQWN0aW9uLFxuICBsaXN0TWVtYmVySW52b2ljZXNBY3Rpb24sXG4gIGxpc3RNZW1iZXJJbnZvaWNlc0ZhaWx1cmVBY3Rpb24sXG4gIGxpc3RNZW1iZXJJbnZvaWNlc1N1Y2Nlc3NBY3Rpb24sXG4gIGxpc3RNZW1iZXJQYXltZW50T3JkZXJzQWN0aW9uLFxuICBsaXN0TWVtYmVyUGF5bWVudE9yZGVyc0ZhaWx1cmVBY3Rpb24sXG4gIGxpc3RNZW1iZXJQYXltZW50T3JkZXJzU3VjY2Vzc0FjdGlvbixcbiAgcmV0cmlldmVJbnZvaWNlU3dpc2hRUkNvZGVGYWlsdXJlQWN0aW9uLFxuICByZXRyaWV2ZUludm9pY2VTd2lzaFFSQ29kZVN1Y2Nlc3NBY3Rpb24sXG4gIHJldHJpZXZlTWVtYmVySW52b2ljZUFjdGlvbixcbiAgcmV0cmlldmVNZW1iZXJJbnZvaWNlRmFpbHVyZUFjdGlvbixcbiAgcmV0cmlldmVNZW1iZXJJbnZvaWNlUGF5bWVudEF0dGVtcHRBY3Rpb24sXG4gIHJldHJpZXZlTWVtYmVySW52b2ljZVBheW1lbnRBdHRlbXB0RmFpbHVyZUFjdGlvbixcbiAgcmV0cmlldmVNZW1iZXJJbnZvaWNlUGF5bWVudEF0dGVtcHRTdWNjZXNzQWN0aW9uLFxuICByZXRyaWV2ZU1lbWJlckludm9pY2VTdWNjZXNzQWN0aW9uLFxuICByZXRyaWV2ZU1lbWJlckludm9pY2VTd2lzaFFSQ29kZUFjdGlvbixcbiAgcmV0cmlldmVNZW1iZXJQYXltZW50T3JkZXJQYXltZW50QXR0ZW1wdEFjdGlvbixcbiAgcmV0cmlldmVNZW1iZXJQYXltZW50T3JkZXJQYXltZW50QXR0ZW1wdEZhaWx1cmVBY3Rpb24sXG4gIHJldHJpZXZlTWVtYmVyUGF5bWVudE9yZGVyUGF5bWVudEF0dGVtcHRTdWNjZXNzQWN0aW9uLFxuICByZXRyaWV2ZU1lbWJlclBheW1lbnRPcmRlclN3aXNoUVJDb2RlQWN0aW9uLFxuICByZXRyaWV2ZVBheW1lbnRPcmRlckFjdGlvbixcbiAgcmV0cmlldmVQYXltZW50T3JkZXJGYWlsdXJlQWN0aW9uLFxuICByZXRyaWV2ZVBheW1lbnRPcmRlclN1Y2Nlc3NBY3Rpb24sXG4gIHJldHJpZXZlUGF5bWVudE9yZGVyU3dpc2hRUkNvZGVGYWlsdXJlQWN0aW9uLFxuICByZXRyaWV2ZVBheW1lbnRPcmRlclN3aXNoUVJDb2RlU3VjY2Vzc0FjdGlvbixcbiAgcmV0cmlldmVQdWJsaWNJbnZvaWNlQWN0aW9uLFxuICByZXRyaWV2ZVB1YmxpY0ludm9pY2VGYWlsdXJlQWN0aW9uLFxuICByZXRyaWV2ZVB1YmxpY0ludm9pY2VMb2dvQWN0aW9uLFxuICByZXRyaWV2ZVB1YmxpY0ludm9pY2VMb2dvRmFpbHVyZUFjdGlvbixcbiAgcmV0cmlldmVQdWJsaWNJbnZvaWNlTG9nb1N1Y2Nlc3NBY3Rpb24sXG4gIHJldHJpZXZlUHVibGljSW52b2ljZVBheW1lbnRBdHRlbXB0QWN0aW9uLFxuICByZXRyaWV2ZVB1YmxpY0ludm9pY2VQYXltZW50QXR0ZW1wdEZhaWx1cmVBY3Rpb24sXG4gIHJldHJpZXZlUHVibGljSW52b2ljZVBheW1lbnRBdHRlbXB0U3VjY2Vzc0FjdGlvbixcbiAgcmV0cmlldmVQdWJsaWNJbnZvaWNlU3VjY2Vzc0FjdGlvbixcbiAgcmV0cmlldmVQdWJsaWNJbnZvaWNlU3dpc2hRUkNvZGVBY3Rpb24sXG4gIHJldHJpZXZlUHVibGljUGF5bWVudE9yZGVyQWN0aW9uLFxuICByZXRyaWV2ZVB1YmxpY1BheW1lbnRPcmRlckZhaWx1cmVBY3Rpb24sXG4gIHJldHJpZXZlUHVibGljUGF5bWVudE9yZGVyTG9nb0FjdGlvbixcbiAgcmV0cmlldmVQdWJsaWNQYXltZW50T3JkZXJMb2dvRmFpbHVyZUFjdGlvbixcbiAgcmV0cmlldmVQdWJsaWNQYXltZW50T3JkZXJMb2dvU3VjY2Vzc0FjdGlvbixcbiAgcmV0cmlldmVQdWJsaWNQYXltZW50T3JkZXJQYXltZW50QXR0ZW1wdEFjdGlvbixcbiAgcmV0cmlldmVQdWJsaWNQYXltZW50T3JkZXJQYXltZW50QXR0ZW1wdEZhaWx1cmVBY3Rpb24sXG4gIHJldHJpZXZlUHVibGljUGF5bWVudE9yZGVyUGF5bWVudEF0dGVtcHRTdWNjZXNzQWN0aW9uLFxuICByZXRyaWV2ZVB1YmxpY1BheW1lbnRPcmRlclN1Y2Nlc3NBY3Rpb24sXG4gIHJldHJpZXZlUHVibGljUGF5bWVudE9yZGVyU3dpc2hRUkNvZGVBY3Rpb25cbn0gZnJvbSAnLi4vYWN0aW9ucyc7XG5pbXBvcnQgeyBleGhhdXN0TWFwLCBmb3JrSm9pbiwgbWVyZ2VNYXAsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge1xuICBDbHViSW1hZ2UsXG4gIENvbGxlY3Rpb24sXG4gIE1lbWJlckludm9pY2UsXG4gIFBheW1lbnRBdHRlbXB0LFxuICBQYXltZW50T3JkZXIsXG4gIFNlYXJjaE1lbWJlckludm9pY2UsXG4gIFN3aXNoUXJDb2RlXG59IGZyb20gJy4uLy4uL21vZGVscyc7XG5pbXBvcnQgeyBIdHRwRXJyb3JSZXNwb25zZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcblxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgSW52b2ljZUVmZmVjdHMge1xuICBwcml2YXRlIGFjdGlvbnMkID0gaW5qZWN0KEFjdGlvbnMpO1xuICBwcml2YXRlIGludm9pY2VTZXJ2aWNlID0gaW5qZWN0KEludm9pY2VTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBwYXltZW50T3JkZXJTZXJ2aWNlID0gaW5qZWN0KFBheW1lbnRPcmRlclNlcnZpY2UpO1xuICBwcml2YXRlIHBheW1lbnRBdHRlbXB0U2VydmljZSA9IGluamVjdChQYXltZW50QXR0ZW1wdFNlcnZpY2UpO1xuXG4gIGNyZWF0ZU1lbWJlckludm9pY2VGcml0aWRza29ydGV0UGF5bWVudCQgPSBjcmVhdGVFZmZlY3QoKCkgPT4gdGhpcy5hY3Rpb25zJFxuICAgIC5waXBlKFxuICAgICAgb2ZUeXBlKGNyZWF0ZUZyaXRpZHNrb3J0ZXRNZW1iZXJJbnZvaWNlUGF5bWVudEFjdGlvbiksXG4gICAgICBleGhhdXN0TWFwKCh7cGF5bG9hZH06IHtcbiAgICAgICAgcGF5bG9hZDogeyBpbnZvaWNlSWQ6IHN0cmluZywgbWVtYmVySWQ6IHN0cmluZywgY2hpbGRQZXJzb25hbElkOiBzdHJpbmcsIGFkdWx0UGVyc29uYWxJZDogc3RyaW5nIH1cbiAgICAgIH0pID0+IHRoaXMucGF5bWVudEF0dGVtcHRTZXJ2aWNlLmNyZWF0ZU1lbWJlckludm9pY2VQYXltZW50QXR0ZW1wdChwYXlsb2FkLm1lbWJlcklkLCBwYXlsb2FkLmludm9pY2VJZCwge1xuICAgICAgICAgIHR5cGU6ICdmcml0aWRza29ydGV0JyxcbiAgICAgICAgICBjaGlsZFBlcnNvbmFsSWQ6IHBheWxvYWQuY2hpbGRQZXJzb25hbElkLFxuICAgICAgICAgIGFkdWx0UGVyc29uYWxJZDogcGF5bG9hZC5hZHVsdFBlcnNvbmFsSWQsXG4gICAgICAgICAgcHVibGljOiBmYWxzZVxuICAgICAgICB9KVxuICAgICAgICAucGlwZShcbiAgICAgICAgICBtYXAoKHBheW1lbnRBdHRlbXB0OiBQYXltZW50QXR0ZW1wdCkgPT4gY3JlYXRlRnJpdGlkc2tvcnRldEludm9pY2VQYXltZW50U3VjY2Vzc0FjdGlvbih7cGF5bG9hZDogcGF5bWVudEF0dGVtcHR9KSksXG4gICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiBvZihjcmVhdGVGcml0aWRza29ydGV0SW52b2ljZVBheW1lbnRGYWlsdXJlQWN0aW9uKHtwYXlsb2FkOiBlcnJvcn0pKSlcbiAgICAgICAgKVxuICAgICAgKVxuICAgIClcbiAgKTtcblxuICBjcmVhdGVNZW1iZXJJbnZvaWNlTW9uZGlkb1BheW1lbnQkID0gY3JlYXRlRWZmZWN0KCgpID0+IHRoaXMuYWN0aW9ucyRcbiAgICAucGlwZShcbiAgICAgIG9mVHlwZShjcmVhdGVNb25kaWRvTWVtYmVySW52b2ljZVBheW1lbnRBY3Rpb24pLFxuICAgICAgZXhoYXVzdE1hcCgoe3BheWxvYWR9OiB7XG4gICAgICAgICAgcGF5bG9hZDogeyBtZW1iZXJJZDogc3RyaW5nLCBpbnZvaWNlSWQ6IHN0cmluZyB9XG4gICAgICAgIH0pID0+IHRoaXMucGF5bWVudEF0dGVtcHRTZXJ2aWNlLmNyZWF0ZU1lbWJlckludm9pY2VQYXltZW50QXR0ZW1wdChwYXlsb2FkLm1lbWJlcklkLCBwYXlsb2FkLmludm9pY2VJZCwge3R5cGU6ICdtb25kaWRvJ30pXG4gICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICBtYXAoKHBheW1lbnRBdHRlbXB0OiBQYXltZW50QXR0ZW1wdCkgPT4gY3JlYXRlTW9uZGlkb0ludm9pY2VQYXltZW50U3VjY2Vzc0FjdGlvbih7cGF5bG9hZDogcGF5bWVudEF0dGVtcHR9KSksXG4gICAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IG9mKGNyZWF0ZU1vbmRpZG9JbnZvaWNlUGF5bWVudEZhaWx1cmVBY3Rpb24oe3BheWxvYWQ6IGVycm9yfSkpKVxuICAgICAgICAgIClcbiAgICAgIClcbiAgICApXG4gICk7XG5cbiAgY3JlYXRlTWVtYmVyUGluZ0NyZWRpdENhcmRQYXltZW50JCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiB0aGlzLmFjdGlvbnMkXG4gICAgLnBpcGUoXG4gICAgICBvZlR5cGUoY3JlYXRlUGluZ0NyZWRpdENhcmRNZW1iZXJJbnZvaWNlUGF5bWVudEFjdGlvbiksXG4gICAgICBleGhhdXN0TWFwKCh7cGF5bG9hZH06IHtcbiAgICAgICAgcGF5bG9hZDogeyBtZW1iZXJJZDogc3RyaW5nLCBpbnZvaWNlSWQ6IHN0cmluZyB9XG4gICAgICB9KSA9PiB0aGlzLnBheW1lbnRBdHRlbXB0U2VydmljZS5jcmVhdGVNZW1iZXJJbnZvaWNlUGF5bWVudEF0dGVtcHQocGF5bG9hZC5tZW1iZXJJZCwgcGF5bG9hZC5pbnZvaWNlSWQsIHt0eXBlOiAncGluZ19jYXJkJ30pXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIG1hcCgocGF5bWVudEF0dGVtcHQ6IFBheW1lbnRBdHRlbXB0KSA9PiBjcmVhdGVQaW5nQ3JlZGl0Q2FyZFBheW1lbnRTdWNjZXNzQWN0aW9uKHtwYXlsb2FkOiBwYXltZW50QXR0ZW1wdH0pKSxcbiAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IG9mKGNyZWF0ZVBpbmdDcmVkaXRDYXJkUGF5bWVudEZhaWx1cmVBY3Rpb24oe3BheWxvYWQ6IGVycm9yfSkpKVxuICAgICAgICApXG4gICAgICApXG4gICAgKVxuICApO1xuXG4gIGNyZWF0ZU1lbWJlclBpbmdTd2lzaFBheW1lbnQkID0gY3JlYXRlRWZmZWN0KCgpID0+IHRoaXMuYWN0aW9ucyRcbiAgICAucGlwZShcbiAgICAgIG9mVHlwZShjcmVhdGVQaW5nU3dpc2hNZW1iZXJJbnZvaWNlUGF5bWVudEFjdGlvbiksXG4gICAgICBleGhhdXN0TWFwKCh7cGF5bG9hZH06IHtcbiAgICAgICAgcGF5bG9hZDogeyBtZW1iZXJJZDogc3RyaW5nLCBpbnZvaWNlSWQ6IHN0cmluZywgdGVsZXBob25lTnVtYmVyOiBzdHJpbmcgfVxuICAgICAgfSkgPT4gdGhpcy5wYXltZW50QXR0ZW1wdFNlcnZpY2UuY3JlYXRlTWVtYmVySW52b2ljZVBheW1lbnRBdHRlbXB0KHBheWxvYWQubWVtYmVySWQsIHBheWxvYWQuaW52b2ljZUlkLCB7dHlwZTogJ3Bpbmdfc3dpc2gnLCBwaG9uZV9udW1iZXI6IHBheWxvYWQudGVsZXBob25lTnVtYmVyfSlcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgbWFwKChwYXltZW50QXR0ZW1wdDogUGF5bWVudEF0dGVtcHQpID0+IGNyZWF0ZVBpbmdTd2lzaFBheW1lbnRTdWNjZXNzQWN0aW9uKHtwYXlsb2FkOiBwYXltZW50QXR0ZW1wdH0pKSxcbiAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IG9mKGNyZWF0ZVBpbmdTd2lzaFBheW1lbnRGYWlsdXJlQWN0aW9uKHtwYXlsb2FkOiBlcnJvcn0pKSlcbiAgICAgICAgKVxuICAgICAgKVxuICAgIClcbiAgKTtcblxuICBjcmVhdGVNZW1iZXJJbnZvaWNlU3dpc2hQYXltZW50JCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiB0aGlzLmFjdGlvbnMkXG4gICAgLnBpcGUoXG4gICAgICBvZlR5cGUoY3JlYXRlU3dpc2hNZW1iZXJJbnZvaWNlUGF5bWVudEFjdGlvbiksXG4gICAgICBleGhhdXN0TWFwKCh7cGF5bG9hZH06IHtcbiAgICAgICAgICBwYXlsb2FkOiB7IG1lbWJlcklkOiBzdHJpbmcsIGludm9pY2VJZDogc3RyaW5nLCB0ZWxlcGhvbmVOdW1iZXI6IHN0cmluZyB9XG4gICAgICAgIH0pID0+IHRoaXMucGF5bWVudEF0dGVtcHRTZXJ2aWNlLmNyZWF0ZU1lbWJlckludm9pY2VQYXltZW50QXR0ZW1wdChwYXlsb2FkLm1lbWJlcklkLCBwYXlsb2FkLmludm9pY2VJZCwge3R5cGU6ICdzd2lzaCcsIHBob25lX251bWJlcjogcGF5bG9hZC50ZWxlcGhvbmVOdW1iZXJ9KVxuICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgbWFwKChwYXltZW50QXR0ZW1wdDogUGF5bWVudEF0dGVtcHQpID0+IGNyZWF0ZVN3aXNoSW52b2ljZVBheW1lbnRTdWNjZXNzQWN0aW9uKHtwYXlsb2FkOiBwYXltZW50QXR0ZW1wdH0pKSxcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4gb2YoY3JlYXRlU3dpc2hJbnZvaWNlUGF5bWVudEZhaWx1cmVBY3Rpb24oe3BheWxvYWQ6IGVycm9yfSkpKVxuICAgICAgICAgIClcbiAgICAgIClcbiAgICApXG4gICk7XG5cbiAgY3JlYXRlTWVtYmVyUGF5bWVudE9yZGVyTW9uZGlkb1BheW1lbnQkID0gY3JlYXRlRWZmZWN0KCgpID0+IHRoaXMuYWN0aW9ucyRcbiAgICAucGlwZShcbiAgICAgIG9mVHlwZShjcmVhdGVNb25kaWRvTWVtYmVyUGF5bWVudE9yZGVyUGF5bWVudEFjdGlvbiksXG4gICAgICBleGhhdXN0TWFwKCh7cGF5bG9hZH06IHtcbiAgICAgICAgICBwYXlsb2FkOiB7IG1lbWJlcklkOiBzdHJpbmcsIHBheW1lbnRPcmRlcklkOiBzdHJpbmcgfVxuICAgICAgICB9KSA9PiB0aGlzLnBheW1lbnRBdHRlbXB0U2VydmljZS5jcmVhdGVNZW1iZXJQYXltZW50T3JkZXJQYXltZW50QXR0ZW1wdChwYXlsb2FkLm1lbWJlcklkLCBwYXlsb2FkLnBheW1lbnRPcmRlcklkLCAnbW9uZGlkbycpXG4gICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICBtYXAoKHBheW1lbnRBdHRlbXB0OiBQYXltZW50QXR0ZW1wdCkgPT4gY3JlYXRlTW9uZGlkb1BheW1lbnRPcmRlclBheW1lbnRTdWNjZXNzQWN0aW9uKHtwYXlsb2FkOiBwYXltZW50QXR0ZW1wdH0pKSxcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4gb2YoY3JlYXRlTW9uZGlkb1BheW1lbnRPcmRlclBheW1lbnRGYWlsdXJlQWN0aW9uKHtwYXlsb2FkOiBlcnJvcn0pKSlcbiAgICAgICAgICApXG4gICAgICApXG4gICAgKVxuICApO1xuXG4gIGNyZWF0ZU1lbWJlclBpbmdDcmVkaXRDYXJkUGF5bWVudE9yZGVyUGF5bWVudCQgPSBjcmVhdGVFZmZlY3QoKCkgPT4gdGhpcy5hY3Rpb25zJFxuICAgIC5waXBlKFxuICAgICAgb2ZUeXBlKGNyZWF0ZVBpbmdDcmVkaXRDYXJkTWVtYmVyUGF5bWVudE9yZGVyUGF5bWVudEFjdGlvbiksXG4gICAgICBleGhhdXN0TWFwKCh7cGF5bG9hZH06IHtcbiAgICAgICAgICBwYXlsb2FkOiB7IG1lbWJlcklkOiBzdHJpbmcsIHBheW1lbnRPcmRlcklkOiBzdHJpbmcgfVxuICAgICAgICB9KSA9PiB0aGlzLnBheW1lbnRBdHRlbXB0U2VydmljZS5jcmVhdGVNZW1iZXJQYXltZW50T3JkZXJQYXltZW50QXR0ZW1wdChwYXlsb2FkLm1lbWJlcklkLCBwYXlsb2FkLnBheW1lbnRPcmRlcklkLCAncGluZ19jYXJkJylcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgbWFwKChwYXltZW50QXR0ZW1wdDogUGF5bWVudEF0dGVtcHQpID0+IGNyZWF0ZVBpbmdDcmVkaXRDYXJkUGF5bWVudE9yZGVyUGF5bWVudFN1Y2Nlc3NBY3Rpb24oe3BheWxvYWQ6IHBheW1lbnRBdHRlbXB0fSkpLFxuICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4gb2YoY3JlYXRlUGluZ0NyZWRpdENhcmRQYXltZW50T3JkZXJQYXltZW50RmFpbHVyZUFjdGlvbih7cGF5bG9hZDogZXJyb3J9KSkpXG4gICAgICAgIClcbiAgICAgIClcbiAgICApXG4gIClcblxuICBjcmVhdGVNZW1iZXJQaW5nU3dpc2hQYXltZW50T3JkZXJQYXltZW50JCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiB0aGlzLmFjdGlvbnMkXG4gICAgLnBpcGUoXG4gICAgICBvZlR5cGUoY3JlYXRlUGluZ1N3aXNoTWVtYmVyUGF5bWVudE9yZGVyUGF5bWVudEFjdGlvbiksXG4gICAgICBleGhhdXN0TWFwKCh7cGF5bG9hZH06IHtcbiAgICAgICAgICBwYXlsb2FkOiB7IG1lbWJlcklkOiBzdHJpbmcsIHBheW1lbnRPcmRlcklkOiBzdHJpbmcsIHRlbGVwaG9uZU51bWJlcjogc3RyaW5nIH1cbiAgICAgICAgfSkgPT4gdGhpcy5wYXltZW50QXR0ZW1wdFNlcnZpY2UuY3JlYXRlTWVtYmVyUGF5bWVudE9yZGVyUGF5bWVudEF0dGVtcHQocGF5bG9hZC5tZW1iZXJJZCwgcGF5bG9hZC5wYXltZW50T3JkZXJJZCwgJ3Bpbmdfc3dpc2gnLCBwYXlsb2FkLnRlbGVwaG9uZU51bWJlcilcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgbWFwKChwYXltZW50QXR0ZW1wdDogUGF5bWVudEF0dGVtcHQpID0+IGNyZWF0ZVBpbmdTd2lzaFBheW1lbnRPcmRlclBheW1lbnRTdWNjZXNzQWN0aW9uKHtwYXlsb2FkOiBwYXltZW50QXR0ZW1wdH0pKSxcbiAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IG9mKGNyZWF0ZVBpbmdTd2lzaFBheW1lbnRPcmRlclBheW1lbnRGYWlsdXJlQWN0aW9uKHtwYXlsb2FkOiBlcnJvcn0pKSlcbiAgICAgICAgKVxuICAgICAgKVxuICAgIClcbiAgKVxuXG4gIGNyZWF0ZU1lbWJlclBheW1lbnRPcmRlclN3aXNoUGF5bWVudCQgPSBjcmVhdGVFZmZlY3QoKCkgPT4gdGhpcy5hY3Rpb25zJFxuICAgIC5waXBlKFxuICAgICAgb2ZUeXBlKGNyZWF0ZVN3aXNoTWVtYmVyUGF5bWVudE9yZGVyUGF5bWVudEFjdGlvbiksXG4gICAgICBleGhhdXN0TWFwKCh7cGF5bG9hZH06IHtcbiAgICAgICAgICBwYXlsb2FkOiB7IG1lbWJlcklkOiBzdHJpbmcsIHBheW1lbnRPcmRlcklkOiBzdHJpbmcsIHRlbGVwaG9uZU51bWJlcjogc3RyaW5nIH1cbiAgICAgICAgfSkgPT4gdGhpcy5wYXltZW50QXR0ZW1wdFNlcnZpY2UuY3JlYXRlTWVtYmVyUGF5bWVudE9yZGVyUGF5bWVudEF0dGVtcHQocGF5bG9hZC5tZW1iZXJJZCwgcGF5bG9hZC5wYXltZW50T3JkZXJJZCwgJ3N3aXNoJywgcGF5bG9hZC50ZWxlcGhvbmVOdW1iZXIpXG4gICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICBtYXAoKHBheW1lbnRBdHRlbXB0OiBQYXltZW50QXR0ZW1wdCkgPT4gY3JlYXRlU3dpc2hQYXltZW50T3JkZXJQYXltZW50U3VjY2Vzc0FjdGlvbih7cGF5bG9hZDogcGF5bWVudEF0dGVtcHR9KSksXG4gICAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IG9mKGNyZWF0ZVN3aXNoUGF5bWVudE9yZGVyUGF5bWVudEZhaWx1cmVBY3Rpb24oe3BheWxvYWQ6IGVycm9yfSkpKVxuICAgICAgICAgIClcbiAgICAgIClcbiAgICApXG4gICk7XG5cbiAgY3JlYXRlTWVtYmVyWmltcGxlclBheW1lbnQkID0gY3JlYXRlRWZmZWN0KCgpID0+IHRoaXMuYWN0aW9ucyRcbiAgICAucGlwZShcbiAgICAgIG9mVHlwZShjcmVhdGVaaW1wbGVyTWVtYmVyUGF5bWVudEFjdGlvbiksXG4gICAgICBleGhhdXN0TWFwKCh7cGF5bG9hZH06IHtcbiAgICAgICAgICBwYXlsb2FkOiB7IG1lbWJlcklkOiBzdHJpbmcsIGludm9pY2VJZDogc3RyaW5nIH1cbiAgICAgICAgfSkgPT4gdGhpcy5wYXltZW50QXR0ZW1wdFNlcnZpY2UuY3JlYXRlTWVtYmVySW52b2ljZVBheW1lbnRBdHRlbXB0KHBheWxvYWQubWVtYmVySWQsIHBheWxvYWQuaW52b2ljZUlkLCB7dHlwZTogJ3ppbXBsZXInfSlcbiAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgIG1hcCgocGF5bWVudEF0dGVtcHQ6IFBheW1lbnRBdHRlbXB0KSA9PiBjcmVhdGVaaW1wbGVyUGF5bWVudFN1Y2Nlc3NBY3Rpb24oe3BheWxvYWQ6IHBheW1lbnRBdHRlbXB0fSkpLFxuICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiBvZihjcmVhdGVaaW1wbGVyUGF5bWVudEZhaWx1cmVBY3Rpb24oe3BheWxvYWQ6IGVycm9yfSkpKVxuICAgICAgICAgIClcbiAgICAgIClcbiAgICApXG4gICk7XG5cbiAgY3JlYXRlUHVibGljSW52b2ljZUZyaXRpZHNrb3J0UGF5bWVudCQgPSBjcmVhdGVFZmZlY3QoKCkgPT4gdGhpcy5hY3Rpb25zJFxuICAgIC5waXBlKFxuICAgICAgb2ZUeXBlKGNyZWF0ZUZyaXRpZHNrb3J0ZXRQdWJsaWNJbnZvaWNlUGF5bWVudEFjdGlvbiksXG4gICAgICBleGhhdXN0TWFwKCh7cGF5bG9hZH06IHtcbiAgICAgICAgcGF5bG9hZDogeyB0b2tlbjogc3RyaW5nLCBpbnZvaWNlSWQ6IHN0cmluZywgY2hpbGRQZXJzb25hbElkOiBzdHJpbmcsIGFkdWx0UGVyc29uYWxJZDogc3RyaW5nfVxuICAgICAgfSkgPT4gdGhpcy5wYXltZW50QXR0ZW1wdFNlcnZpY2UuY3JlYXRlUHVibGljSW52b2ljZVBheW1lbnRBdHRlbXB0KHBheWxvYWQuaW52b2ljZUlkLCBwYXlsb2FkLnRva2VuLCB7XG4gICAgICAgIHR5cGU6ICdmcml0aWRza29ydGV0JyxcbiAgICAgICAgYWR1bHRQZXJzb25hbElkOiBwYXlsb2FkLmFkdWx0UGVyc29uYWxJZCxcbiAgICAgICAgY2hpbGRQZXJzb25hbElkOiBwYXlsb2FkLmNoaWxkUGVyc29uYWxJZCxcbiAgICAgICAgcHVibGljOiB0cnVlXG4gICAgICB9KS5waXBlKFxuICAgICAgICAgIG1hcCgocGF5bWVudEF0dGVtcHQ6IFBheW1lbnRBdHRlbXB0KSA9PiBjcmVhdGVGcml0aWRza29ydGV0SW52b2ljZVBheW1lbnRTdWNjZXNzQWN0aW9uKHtwYXlsb2FkOiBwYXltZW50QXR0ZW1wdH0pKSxcbiAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IG9mKGNyZWF0ZUZyaXRpZHNrb3J0ZXRJbnZvaWNlUGF5bWVudEZhaWx1cmVBY3Rpb24oe3BheWxvYWQ6IGVycm9yfSkpKVxuICAgICAgICApXG4gICAgICApXG4gICAgKVxuICApO1xuXG4gIGNyZWF0ZVB1YmxpY0ludm9pY2VNb25kaWRvUGF5bWVudCQgPSBjcmVhdGVFZmZlY3QoKCkgPT4gdGhpcy5hY3Rpb25zJFxuICAgIC5waXBlKFxuICAgICAgb2ZUeXBlKGNyZWF0ZU1vbmRpZG9QdWJsaWNJbnZvaWNlUGF5bWVudEFjdGlvbiksXG4gICAgICBleGhhdXN0TWFwKCh7cGF5bG9hZH06IHtcbiAgICAgICAgICBwYXlsb2FkOiB7IHRva2VuOiBzdHJpbmcsIGludm9pY2VJZDogc3RyaW5nIH1cbiAgICAgICAgfSkgPT4gdGhpcy5wYXltZW50QXR0ZW1wdFNlcnZpY2UuY3JlYXRlUHVibGljSW52b2ljZVBheW1lbnRBdHRlbXB0KHBheWxvYWQuaW52b2ljZUlkLCBwYXlsb2FkLnRva2VuLCB7dHlwZTogJ21vbmRpZG8nfSlcbiAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgIG1hcCgocGF5bWVudEF0dGVtcHQ6IFBheW1lbnRBdHRlbXB0KSA9PiBjcmVhdGVNb25kaWRvSW52b2ljZVBheW1lbnRTdWNjZXNzQWN0aW9uKHtwYXlsb2FkOiBwYXltZW50QXR0ZW1wdH0pKSxcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4gb2YoY3JlYXRlTW9uZGlkb0ludm9pY2VQYXltZW50RmFpbHVyZUFjdGlvbih7cGF5bG9hZDogZXJyb3J9KSkpXG4gICAgICAgICAgKVxuICAgICAgKVxuICAgIClcbiAgKTtcblxuICBjcmVhdGVQdWJsaWNJbnZvaWNlUGluZ0NyZWRpdENhcmRQYXltZW50JCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiB0aGlzLmFjdGlvbnMkXG4gICAgLnBpcGUoXG4gICAgICBvZlR5cGUoY3JlYXRlUGluZ0NyZWRpdENhcmRQdWJsaWNJbnZvaWNlUGF5bWVudEFjdGlvbiksXG4gICAgICBleGhhdXN0TWFwKCh7cGF5bG9hZH06IHtcbiAgICAgICAgICBwYXlsb2FkOiB7IHRva2VuOiBzdHJpbmcsIGludm9pY2VJZDogc3RyaW5nIH1cbiAgICAgICAgfSkgPT4gdGhpcy5wYXltZW50QXR0ZW1wdFNlcnZpY2UuY3JlYXRlUHVibGljSW52b2ljZVBheW1lbnRBdHRlbXB0KHBheWxvYWQuaW52b2ljZUlkLCBwYXlsb2FkLnRva2VuLCB7dHlwZTogJ3BpbmdfY2FyZCcsIHB1YmxpYzogdHJ1ZX0pXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIG1hcCgocGF5bWVudEF0dGVtcHQ6IFBheW1lbnRBdHRlbXB0KSA9PiBjcmVhdGVQaW5nQ3JlZGl0Q2FyZFBheW1lbnRTdWNjZXNzQWN0aW9uKHtwYXlsb2FkOiBwYXltZW50QXR0ZW1wdH0pKSxcbiAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IG9mKGNyZWF0ZVBpbmdDcmVkaXRDYXJkUGF5bWVudEZhaWx1cmVBY3Rpb24oe3BheWxvYWQ6IGVycm9yfSkpKVxuICAgICAgICApXG4gICAgICApXG4gICAgKVxuICApO1xuXG4gIGNyZWF0ZVB1YmxpY0ludm9pY2VQaW5nU3dpc2hQYXltZW50JCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiB0aGlzLmFjdGlvbnMkXG4gICAgLnBpcGUoXG4gICAgICBvZlR5cGUoY3JlYXRlUGluZ1N3aXNoUHVibGljSW52b2ljZVBheW1lbnRBY3Rpb24pLFxuICAgICAgZXhoYXVzdE1hcCgoe3BheWxvYWR9OiB7XG4gICAgICAgICAgcGF5bG9hZDogeyB0b2tlbjogc3RyaW5nLCBpbnZvaWNlSWQ6IHN0cmluZywgdGVsZXBob25lTnVtYmVyOiBzdHJpbmcgfVxuICAgICAgICB9KSA9PiB0aGlzLnBheW1lbnRBdHRlbXB0U2VydmljZS5jcmVhdGVQdWJsaWNJbnZvaWNlUGF5bWVudEF0dGVtcHQocGF5bG9hZC5pbnZvaWNlSWQsIHBheWxvYWQudG9rZW4sIHtcbiAgICAgICAgICB0eXBlOiAncGluZ19zd2lzaCcsXG4gICAgICAgICAgcGhvbmVfbnVtYmVyOiBwYXlsb2FkLnRlbGVwaG9uZU51bWJlcixcbiAgICAgICAgICBwdWJsaWM6IHRydWVcbiAgICAgICAgfSlcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgbWFwKChwYXltZW50QXR0ZW1wdDogUGF5bWVudEF0dGVtcHQpID0+IGNyZWF0ZVBpbmdTd2lzaFBheW1lbnRTdWNjZXNzQWN0aW9uKHtwYXlsb2FkOiBwYXltZW50QXR0ZW1wdH0pKSxcbiAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IG9mKGNyZWF0ZVBpbmdTd2lzaFBheW1lbnRGYWlsdXJlQWN0aW9uKHtwYXlsb2FkOiBlcnJvcn0pKSlcbiAgICAgICAgKVxuICAgICAgKVxuICAgIClcbiAgKTtcblxuICBjcmVhdGVQdWJsaWNJbnZvaWNlU3dpc2hQYXltZW50JCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiB0aGlzLmFjdGlvbnMkXG4gICAgLnBpcGUoXG4gICAgICBvZlR5cGUoY3JlYXRlU3dpc2hQdWJsaWNJbnZvaWNlUGF5bWVudEFjdGlvbiksXG4gICAgICBleGhhdXN0TWFwKCh7cGF5bG9hZH06IHtcbiAgICAgICAgICBwYXlsb2FkOiB7IHRva2VuOiBzdHJpbmcsIGludm9pY2VJZDogc3RyaW5nLCB0ZWxlcGhvbmVOdW1iZXI6IHN0cmluZyB9XG4gICAgICAgIH0pID0+IHRoaXMucGF5bWVudEF0dGVtcHRTZXJ2aWNlLmNyZWF0ZVB1YmxpY0ludm9pY2VQYXltZW50QXR0ZW1wdChwYXlsb2FkLmludm9pY2VJZCwgcGF5bG9hZC50b2tlbiwge1xuICAgICAgICAgIHR5cGU6ICdzd2lzaCcsXG4gICAgICAgICAgcGhvbmVfbnVtYmVyOiBwYXlsb2FkLnRlbGVwaG9uZU51bWJlclxuICAgICAgICB9KVxuICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgbWFwKChwYXltZW50QXR0ZW1wdDogUGF5bWVudEF0dGVtcHQpID0+IGNyZWF0ZVN3aXNoSW52b2ljZVBheW1lbnRTdWNjZXNzQWN0aW9uKHtwYXlsb2FkOiBwYXltZW50QXR0ZW1wdH0pKSxcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4gb2YoY3JlYXRlU3dpc2hJbnZvaWNlUGF5bWVudEZhaWx1cmVBY3Rpb24oe3BheWxvYWQ6IGVycm9yfSkpKVxuICAgICAgICAgIClcbiAgICAgIClcbiAgICApXG4gICk7XG5cbiAgY3JlYXRlUHVibGljUGF5bWVudE9yZGVyTW9uZGlkb1BheW1lbnQkID0gY3JlYXRlRWZmZWN0KCgpID0+IHRoaXMuYWN0aW9ucyRcbiAgICAucGlwZShcbiAgICAgIG9mVHlwZShjcmVhdGVNb25kaWRvUHVibGljUGF5bWVudE9yZGVyUGF5bWVudEFjdGlvbiksXG4gICAgICBleGhhdXN0TWFwKCh7cGF5bG9hZH06IHtcbiAgICAgICAgICBwYXlsb2FkOiB7IHRva2VuOiBzdHJpbmcsIHBheW1lbnRPcmRlcklkOiBzdHJpbmcgfVxuICAgICAgICB9KSA9PiB0aGlzLnBheW1lbnRBdHRlbXB0U2VydmljZS5jcmVhdGVQdWJsaWNQYXltZW50T3JkZXJQYXltZW50QXR0ZW1wdChwYXlsb2FkLnBheW1lbnRPcmRlcklkLCBwYXlsb2FkLnRva2VuLCAnbW9uZGlkbycpXG4gICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICBtYXAoKHBheW1lbnRBdHRlbXB0OiBQYXltZW50QXR0ZW1wdCkgPT4gY3JlYXRlTW9uZGlkb1BheW1lbnRPcmRlclBheW1lbnRTdWNjZXNzQWN0aW9uKHtwYXlsb2FkOiBwYXltZW50QXR0ZW1wdH0pKSxcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4gb2YoY3JlYXRlTW9uZGlkb1BheW1lbnRPcmRlclBheW1lbnRGYWlsdXJlQWN0aW9uKHtwYXlsb2FkOiBlcnJvcn0pKSlcbiAgICAgICAgICApXG4gICAgICApXG4gICAgKVxuICApO1xuXG4gIGNyZWF0ZVB1YmxpY1BheW1lbnRPcmRlclBpbmdDcmVkaXRDYXJkUGF5bWVudCQgPSBjcmVhdGVFZmZlY3QoKCkgPT4gdGhpcy5hY3Rpb25zJFxuICAgIC5waXBlKFxuICAgICAgb2ZUeXBlKGNyZWF0ZVBpbmdDcmVkaXRDYXJkUHVibGljUGF5bWVudE9yZGVyUGF5bWVudEFjdGlvbiksXG4gICAgICBleGhhdXN0TWFwKCh7cGF5bG9hZH06IHtcbiAgICAgICAgICBwYXlsb2FkOiB7IHRva2VuOiBzdHJpbmcsIHBheW1lbnRPcmRlcklkOiBzdHJpbmcgfVxuICAgICAgICB9KSA9PiB0aGlzLnBheW1lbnRBdHRlbXB0U2VydmljZS5jcmVhdGVQdWJsaWNQYXltZW50T3JkZXJQYXltZW50QXR0ZW1wdChwYXlsb2FkLnBheW1lbnRPcmRlcklkLCBwYXlsb2FkLnRva2VuLCAncGluZ19jYXJkJylcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgbWFwKChwYXltZW50QXR0ZW1wdDogUGF5bWVudEF0dGVtcHQpID0+IGNyZWF0ZVBpbmdDcmVkaXRDYXJkUGF5bWVudFN1Y2Nlc3NBY3Rpb24oe3BheWxvYWQ6IHBheW1lbnRBdHRlbXB0fSkpLFxuICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4gb2YoY3JlYXRlUGluZ0NyZWRpdENhcmRQYXltZW50RmFpbHVyZUFjdGlvbih7cGF5bG9hZDogZXJyb3J9KSkpXG4gICAgICAgIClcbiAgICAgIClcbiAgICApXG4gICk7XG5cbiAgY3JlYXRlUHVibGljUGF5bWVudE9yZGVyUGluZ1N3aXNoUGF5bWVudCQgPSBjcmVhdGVFZmZlY3QoKCkgPT4gdGhpcy5hY3Rpb25zJFxuICAgIC5waXBlKFxuICAgICAgb2ZUeXBlKGNyZWF0ZVBpbmdTd2lzaFB1YmxpY1BheW1lbnRPcmRlclBheW1lbnRBY3Rpb24pLFxuICAgICAgZXhoYXVzdE1hcCgoe3BheWxvYWR9OiB7XG4gICAgICAgICAgcGF5bG9hZDogeyB0b2tlbjogc3RyaW5nLCBwYXltZW50T3JkZXJJZDogc3RyaW5nLCB0ZWxlcGhvbmVOdW1iZXI6IHN0cmluZyB9XG4gICAgICAgIH0pID0+IHRoaXMucGF5bWVudEF0dGVtcHRTZXJ2aWNlLmNyZWF0ZVB1YmxpY1BheW1lbnRPcmRlclBheW1lbnRBdHRlbXB0KHBheWxvYWQucGF5bWVudE9yZGVySWQsIHBheWxvYWQudG9rZW4sICdwaW5nX3N3aXNoJywgcGF5bG9hZC50ZWxlcGhvbmVOdW1iZXIpXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIG1hcCgocGF5bWVudEF0dGVtcHQ6IFBheW1lbnRBdHRlbXB0KSA9PiBjcmVhdGVQaW5nU3dpc2hQYXltZW50T3JkZXJQYXltZW50U3VjY2Vzc0FjdGlvbih7cGF5bG9hZDogcGF5bWVudEF0dGVtcHR9KSksXG4gICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiBvZihjcmVhdGVQaW5nU3dpc2hQYXltZW50RmFpbHVyZUFjdGlvbih7cGF5bG9hZDogZXJyb3J9KSkpXG4gICAgICAgIClcbiAgICAgIClcbiAgICApXG4gICk7XG5cbiAgY3JlYXRlUHVibGljUGF5bWVudE9yZGVyU3dpc2hQYXltZW50JCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiB0aGlzLmFjdGlvbnMkXG4gICAgLnBpcGUoXG4gICAgICBvZlR5cGUoY3JlYXRlU3dpc2hQdWJsaWNQYXltZW50T3JkZXJQYXltZW50QWN0aW9uKSxcbiAgICAgIGV4aGF1c3RNYXAoKHtwYXlsb2FkfToge1xuICAgICAgICAgIHBheWxvYWQ6IHsgdG9rZW46IHN0cmluZywgcGF5bWVudE9yZGVySWQ6IHN0cmluZywgdGVsZXBob25lTnVtYmVyOiBzdHJpbmcgfVxuICAgICAgICB9KSA9PiB0aGlzLnBheW1lbnRBdHRlbXB0U2VydmljZS5jcmVhdGVQdWJsaWNQYXltZW50T3JkZXJQYXltZW50QXR0ZW1wdChwYXlsb2FkLnBheW1lbnRPcmRlcklkLCBwYXlsb2FkLnRva2VuLCAnc3dpc2gnLCBwYXlsb2FkLnRlbGVwaG9uZU51bWJlcilcbiAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgIG1hcCgocGF5bWVudEF0dGVtcHQ6IFBheW1lbnRBdHRlbXB0KSA9PiBjcmVhdGVTd2lzaFBheW1lbnRPcmRlclBheW1lbnRTdWNjZXNzQWN0aW9uKHtwYXlsb2FkOiBwYXltZW50QXR0ZW1wdH0pKSxcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4gb2YoY3JlYXRlU3dpc2hQYXltZW50T3JkZXJQYXltZW50RmFpbHVyZUFjdGlvbih7cGF5bG9hZDogZXJyb3J9KSkpXG4gICAgICAgICAgKVxuICAgICAgKVxuICAgIClcbiAgKTtcblxuICBjcmVhdGVQdWJsaWNaaW1wbGVyUGF5bWVudCQgPSBjcmVhdGVFZmZlY3QoKCkgPT4gdGhpcy5hY3Rpb25zJFxuICAgIC5waXBlKFxuICAgICAgb2ZUeXBlKGNyZWF0ZVppbXBsZXJQdWJsaWNQYXltZW50QWN0aW9uKSxcbiAgICAgIGV4aGF1c3RNYXAoKHtwYXlsb2FkfToge1xuICAgICAgICAgIHBheWxvYWQ6IHsgdG9rZW46IHN0cmluZywgaW52b2ljZUlkOiBzdHJpbmcgfVxuICAgICAgICB9KSA9PiB0aGlzLnBheW1lbnRBdHRlbXB0U2VydmljZS5jcmVhdGVQdWJsaWNJbnZvaWNlUGF5bWVudEF0dGVtcHQocGF5bG9hZC5pbnZvaWNlSWQsIHBheWxvYWQudG9rZW4sIHt0eXBlOiAnemltcGxlcid9KVxuICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgbWFwKChwYXltZW50QXR0ZW1wdDogUGF5bWVudEF0dGVtcHQpID0+IGNyZWF0ZVppbXBsZXJQYXltZW50U3VjY2Vzc0FjdGlvbih7cGF5bG9hZDogcGF5bWVudEF0dGVtcHR9KSksXG4gICAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IG9mKGNyZWF0ZVppbXBsZXJQYXltZW50RmFpbHVyZUFjdGlvbih7cGF5bG9hZDogZXJyb3J9KSkpXG4gICAgICAgICAgKVxuICAgICAgKVxuICAgIClcbiAgKTtcblxuICBsaXN0TWVtYmVySW52b2ljZXMkID0gY3JlYXRlRWZmZWN0KCgpID0+IHRoaXMuYWN0aW9ucyRcbiAgICAucGlwZShcbiAgICAgIG9mVHlwZShsaXN0TWVtYmVySW52b2ljZXNBY3Rpb24pLFxuICAgICAgbWVyZ2VNYXAoKHtwYXlsb2FkfTogeyBwYXlsb2FkOiBBcnJheTxzdHJpbmc+IH0pID0+XG4gICAgICAgIGZvcmtKb2luKFxuICAgICAgICAgIHBheWxvYWQubWFwKChpZDogc3RyaW5nKSA9PlxuICAgICAgICAgICAgdGhpcy5pbnZvaWNlU2VydmljZS5nZXRNZW1iZXJJbnZvaWNlcyhpZClcbiAgICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKChpbnZvaWNlczogQ29sbGVjdGlvbjxTZWFyY2hNZW1iZXJJbnZvaWNlPikgPT4gKHtpZCwgaW52b2ljZXM6IGludm9pY2VzLnRvQXJyYXkoKX0pKSxcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IG9mKHtpZCwgZXJyb3J9KSlcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgIClcbiAgICAgICAgKS5waXBlKFxuICAgICAgICAgIG1lcmdlTWFwKChyZXN1bHRzOiBBcnJheTx7XG4gICAgICAgICAgICBpZDogc3RyaW5nLFxuICAgICAgICAgICAgaW52b2ljZXM/OiBBcnJheTxTZWFyY2hNZW1iZXJJbnZvaWNlPixcbiAgICAgICAgICAgIGVycm9yPzogSHR0cEVycm9yUmVzcG9uc2VcbiAgICAgICAgICB9PikgPT4ge1xuICAgICAgICAgICAgY29uc3QgaW52b2ljZU1hcCA9IG5ldyBNYXA8c3RyaW5nLCBBcnJheTxTZWFyY2hNZW1iZXJJbnZvaWNlPj4oKTtcbiAgICAgICAgICAgIGNvbnN0IGVycm9ycyA9IHJlc3VsdHMuZmlsdGVyKHJlc3VsdCA9PiByZXN1bHQuZXJyb3IpO1xuICAgICAgICAgICAgaWYgKGVycm9ycy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIG9mKGxpc3RNZW1iZXJJbnZvaWNlc0ZhaWx1cmVBY3Rpb24oe3BheWxvYWQ6IGVycm9yc1swXS5lcnJvciBhcyBIdHRwRXJyb3JSZXNwb25zZX0pKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmVzdWx0cy5mb3JFYWNoKChyZXN1bHQpID0+IHtcbiAgICAgICAgICAgICAgaWYgKHJlc3VsdC5pbnZvaWNlcykge1xuICAgICAgICAgICAgICAgIGludm9pY2VNYXAuc2V0KHJlc3VsdC5pZCwgcmVzdWx0Lmludm9pY2VzKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIHJldHVybiBvZihsaXN0TWVtYmVySW52b2ljZXNTdWNjZXNzQWN0aW9uKHtwYXlsb2FkOiBpbnZvaWNlTWFwfSkpO1xuICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICAgIClcbiAgICApXG4gICk7XG5cbiAgcmV0cmlldmVNZW1iZXJJbnZvaWNlJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiB0aGlzLmFjdGlvbnMkXG4gICAgLnBpcGUoXG4gICAgICBvZlR5cGUocmV0cmlldmVNZW1iZXJJbnZvaWNlQWN0aW9uKSxcbiAgICAgIGV4aGF1c3RNYXAoKHtwYXlsb2FkfToge1xuICAgICAgICAgIHBheWxvYWQ6IHsgbWVtYmVySWQ6IHN0cmluZywgaW52b2ljZUlkOiBzdHJpbmcgfVxuICAgICAgICB9KSA9PiB0aGlzLmludm9pY2VTZXJ2aWNlLmdldE1lbWJlckludm9pY2UocGF5bG9hZC5tZW1iZXJJZCwgcGF5bG9hZC5pbnZvaWNlSWQpXG4gICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICBtYXAoKGludm9pY2U6IE1lbWJlckludm9pY2UpID0+IHJldHJpZXZlTWVtYmVySW52b2ljZVN1Y2Nlc3NBY3Rpb24oe3BheWxvYWQ6IGludm9pY2V9KSksXG4gICAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IG9mKHJldHJpZXZlTWVtYmVySW52b2ljZUZhaWx1cmVBY3Rpb24oe3BheWxvYWQ6IGVycm9yfSkpKVxuICAgICAgICAgIClcbiAgICAgIClcbiAgICApXG4gICk7XG5cbiAgbGlzdE1lbWJlclBheW1lbnRPcmRlcnMkID0gY3JlYXRlRWZmZWN0KCgpID0+IHRoaXMuYWN0aW9ucyRcbiAgICAucGlwZShcbiAgICAgIG9mVHlwZShsaXN0TWVtYmVyUGF5bWVudE9yZGVyc0FjdGlvbiksXG4gICAgICBtZXJnZU1hcCgoe3BheWxvYWR9OiB7IHBheWxvYWQ6IEFycmF5PHN0cmluZz4gfSkgPT5cbiAgICAgICAgZm9ya0pvaW4oXG4gICAgICAgICAgcGF5bG9hZC5tYXAoKGlkOiBzdHJpbmcpID0+XG4gICAgICAgICAgICB0aGlzLnBheW1lbnRPcmRlclNlcnZpY2UuZ2V0TWVtYmVyUGF5bWVudE9yZGVycyhpZClcbiAgICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKChwYXltZW50T3JkZXJzOiBDb2xsZWN0aW9uPFBheW1lbnRPcmRlcj4pID0+ICh7aWQsIHBheW1lbnRPcmRlcnM6IHBheW1lbnRPcmRlcnMudG9BcnJheSgpfSkpLFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4gb2Yoe2lkLCBlcnJvcn0pKVxuICAgICAgICAgICAgICApXG4gICAgICAgICAgKVxuICAgICAgICApLnBpcGUoXG4gICAgICAgICAgbWVyZ2VNYXAoKHJlc3VsdHM6IEFycmF5PHsgaWQ6IHN0cmluZywgcGF5bWVudE9yZGVycz86IEFycmF5PFBheW1lbnRPcmRlcj4sIGVycm9yPzogSHR0cEVycm9yUmVzcG9uc2UgfT4pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHBheW1lbnRPcmRlck1hcCA9IG5ldyBNYXA8c3RyaW5nLCBBcnJheTxQYXltZW50T3JkZXI+PigpO1xuICAgICAgICAgICAgY29uc3QgZXJyb3JzID0gcmVzdWx0cy5maWx0ZXIocmVzdWx0ID0+IHJlc3VsdC5lcnJvcik7XG4gICAgICAgICAgICBpZiAoZXJyb3JzLmxlbmd0aCkge1xuICAgICAgICAgICAgICByZXR1cm4gb2YobGlzdE1lbWJlclBheW1lbnRPcmRlcnNGYWlsdXJlQWN0aW9uKHtwYXlsb2FkOiBlcnJvcnNbMF0uZXJyb3IgYXMgSHR0cEVycm9yUmVzcG9uc2V9KSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJlc3VsdHMuZm9yRWFjaCgocmVzdWx0KSA9PiB7XG4gICAgICAgICAgICAgIGlmIChyZXN1bHQucGF5bWVudE9yZGVycykge1xuICAgICAgICAgICAgICAgIHBheW1lbnRPcmRlck1hcC5zZXQocmVzdWx0LmlkLCByZXN1bHQucGF5bWVudE9yZGVycyk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICByZXR1cm4gb2YobGlzdE1lbWJlclBheW1lbnRPcmRlcnNTdWNjZXNzQWN0aW9uKHtwYXlsb2FkOiBwYXltZW50T3JkZXJNYXB9KSk7XG4gICAgICAgICAgfSlcbiAgICAgICAgKVxuICAgICAgKVxuICAgIClcbiAgKTtcblxuICByZXRyaWV2ZVBheW1lbnRPcmRlciQgPSBjcmVhdGVFZmZlY3QoKCkgPT4gdGhpcy5hY3Rpb25zJFxuICAgIC5waXBlKFxuICAgICAgb2ZUeXBlKHJldHJpZXZlUGF5bWVudE9yZGVyQWN0aW9uKSxcbiAgICAgIGV4aGF1c3RNYXAoKHtwYXlsb2FkfToge1xuICAgICAgICAgIHBheWxvYWQ6IHsgbWVtYmVySWQ6IHN0cmluZywgcGF5bWVudE9yZGVySWQ6IHN0cmluZyB9XG4gICAgICAgIH0pID0+IHRoaXMucGF5bWVudE9yZGVyU2VydmljZS5nZXRNZW1iZXJQYXltZW50T3JkZXIocGF5bG9hZC5tZW1iZXJJZCwgcGF5bG9hZC5wYXltZW50T3JkZXJJZClcbiAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgIG1hcCgocGF5bWVudE9yZGVyOiBQYXltZW50T3JkZXIpID0+IHJldHJpZXZlUGF5bWVudE9yZGVyU3VjY2Vzc0FjdGlvbih7cGF5bG9hZDogcGF5bWVudE9yZGVyfSkpLFxuICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiBvZihyZXRyaWV2ZVBheW1lbnRPcmRlckZhaWx1cmVBY3Rpb24oe3BheWxvYWQ6IGVycm9yfSkpKVxuICAgICAgICAgIClcbiAgICAgIClcbiAgICApXG4gICk7XG5cbiAgZGVsZXRlUGF5bWVudE9yZGVyJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiB0aGlzLmFjdGlvbnMkXG4gICAgLnBpcGUoXG4gICAgICBvZlR5cGUoZGVsZXRlUGF5bWVudE9yZGVyQWN0aW9uKSxcbiAgICAgIGV4aGF1c3RNYXAoKHtwYXlsb2FkfToge1xuICAgICAgICAgIHBheWxvYWQ6IHsgbWVtYmVySWQ6IHN0cmluZywgcGF5bWVudE9yZGVySWQ6IHN0cmluZyB9XG4gICAgICAgIH0pID0+IHRoaXMucGF5bWVudE9yZGVyU2VydmljZS5kZWxldGVNZW1iZXJQYXltZW50T3JkZXIocGF5bG9hZC5tZW1iZXJJZCwgcGF5bG9hZC5wYXltZW50T3JkZXJJZClcbiAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgIG1hcCgodmFsdWU6IGJvb2xlYW4pID0+IHtcbiAgICAgICAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGRlbGV0ZVBheW1lbnRPcmRlclN1Y2Nlc3NBY3Rpb24oKTtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZGVsZXRlUGF5bWVudE9yZGVyRmFpbHVyZUFjdGlvbih7cGF5bG9hZDogbmV3IEh0dHBFcnJvclJlc3BvbnNlKHtzdGF0dXM6IDQwMH0pfSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiBvZihkZWxldGVQYXltZW50T3JkZXJGYWlsdXJlQWN0aW9uKHtwYXlsb2FkOiBlcnJvcn0pKSlcbiAgICAgICAgICApXG4gICAgICApXG4gICAgKVxuICApO1xuXG4gIGRlbGV0ZVB1YmxpY1BheW1lbnRPcmRlciQgPSBjcmVhdGVFZmZlY3QoKCkgPT4gdGhpcy5hY3Rpb25zJFxuICAgIC5waXBlKFxuICAgICAgb2ZUeXBlKGRlbGV0ZVB1YmxpY1BheW1lbnRPcmRlckFjdGlvbiksXG4gICAgICBleGhhdXN0TWFwKCh7cGF5bG9hZH06IHtwYXlsb2FkOiB7dG9rZW46IHN0cmluZywgcGF5bWVudE9yZGVySWQ6IHN0cmluZ319KSA9PiB0aGlzLnBheW1lbnRPcmRlclNlcnZpY2UuZGVsZXRlUHVibGljUGF5bWVudE9yZGVyKHBheWxvYWQudG9rZW4sIHBheWxvYWQucGF5bWVudE9yZGVySWQpXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIG1hcCgodmFsdWU6IGJvb2xlYW4pID0+IHtcbiAgICAgICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgICByZXR1cm4gZGVsZXRlUHVibGljUGF5bWVudE9yZGVyU3VjY2Vzc0FjdGlvbigpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgcmV0dXJuIGRlbGV0ZVB1YmxpY1BheW1lbnRPcmRlckZhaWx1cmVBY3Rpb24oe3BheWxvYWQ6IG5ldyBIdHRwRXJyb3JSZXNwb25zZSh7c3RhdHVzOiA0MDB9KX0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pLFxuICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4gb2YoZGVsZXRlUHVibGljUGF5bWVudE9yZGVyRmFpbHVyZUFjdGlvbih7cGF5bG9hZDogZXJyb3J9KSkpXG4gICAgICAgIClcbiAgICAgIClcbiAgICApXG4gICk7XG5cbiAgcmV0cmlldmVNZW1iZXJJbnZvaWNlUGF5bWVudEF0dGVtcHQkID0gY3JlYXRlRWZmZWN0KCgpID0+IHRoaXMuYWN0aW9ucyRcbiAgICAucGlwZShcbiAgICAgIG9mVHlwZShyZXRyaWV2ZU1lbWJlckludm9pY2VQYXltZW50QXR0ZW1wdEFjdGlvbiksXG4gICAgICBleGhhdXN0TWFwKCh7cGF5bG9hZH06IHtcbiAgICAgICAgICBwYXlsb2FkOiB7IG1lbWJlcklkOiBzdHJpbmcsIGludm9pY2VJZDogc3RyaW5nLCBwYXltZW50QXR0ZW1wdElkOiBudW1iZXIgfVxuICAgICAgICB9KSA9PiB0aGlzLnBheW1lbnRBdHRlbXB0U2VydmljZS5nZXRNZW1iZXJJbnZvaWNlUGF5bWVudEF0dGVtcHQocGF5bG9hZC5tZW1iZXJJZCwgcGF5bG9hZC5pbnZvaWNlSWQsIHBheWxvYWQucGF5bWVudEF0dGVtcHRJZClcbiAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgIG1hcCgocGF5bWVudEF0dGVtcHQ6IFBheW1lbnRBdHRlbXB0KSA9PiByZXRyaWV2ZU1lbWJlckludm9pY2VQYXltZW50QXR0ZW1wdFN1Y2Nlc3NBY3Rpb24oe3BheWxvYWQ6IHBheW1lbnRBdHRlbXB0fSkpLFxuICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiBvZihyZXRyaWV2ZU1lbWJlckludm9pY2VQYXltZW50QXR0ZW1wdEZhaWx1cmVBY3Rpb24oe3BheWxvYWQ6IGVycm9yfSkpKVxuICAgICAgICAgIClcbiAgICAgIClcbiAgICApXG4gICk7XG5cbiAgcmV0cmlldmVNZW1iZXJJbnZvaWNlU3dpc2hRUkNvZGUkID0gY3JlYXRlRWZmZWN0KCgpID0+IHRoaXMuYWN0aW9ucyRcbiAgICAucGlwZShcbiAgICAgIG9mVHlwZShyZXRyaWV2ZU1lbWJlckludm9pY2VTd2lzaFFSQ29kZUFjdGlvbiksXG4gICAgICBleGhhdXN0TWFwKCh7cGF5bG9hZH06IHtcbiAgICAgICAgICBwYXlsb2FkOiB7IG1lbWJlcklkOiBzdHJpbmcsIGludm9pY2VJZDogc3RyaW5nLCBwYXltZW50QXR0ZW1wdElkOiBudW1iZXIgfVxuICAgICAgICB9KSA9PiB0aGlzLnBheW1lbnRBdHRlbXB0U2VydmljZS5nZXRNZW1iZXJJbnZvaWNlU3dpc2hRUkNvZGUocGF5bG9hZC5tZW1iZXJJZCwgcGF5bG9hZC5pbnZvaWNlSWQsIHBheWxvYWQucGF5bWVudEF0dGVtcHRJZClcbiAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgIG1hcCgoc3dpc2hRUkNvZGU6IFN3aXNoUXJDb2RlKSA9PiByZXRyaWV2ZUludm9pY2VTd2lzaFFSQ29kZVN1Y2Nlc3NBY3Rpb24oe3BheWxvYWQ6IHN3aXNoUVJDb2RlfSkpLFxuICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiBvZihyZXRyaWV2ZUludm9pY2VTd2lzaFFSQ29kZUZhaWx1cmVBY3Rpb24oe3BheWxvYWQ6IGVycm9yfSkpKVxuICAgICAgICAgIClcbiAgICAgIClcbiAgICApXG4gICk7XG5cbiAgcmV0cmlldmVNZW1iZXJQYXltZW50T3JkZXJTd2lzaFFSQ29kZSQgPSBjcmVhdGVFZmZlY3QoKCkgPT4gdGhpcy5hY3Rpb25zJFxuICAgIC5waXBlKFxuICAgICAgb2ZUeXBlKHJldHJpZXZlTWVtYmVyUGF5bWVudE9yZGVyU3dpc2hRUkNvZGVBY3Rpb24pLFxuICAgICAgZXhoYXVzdE1hcCgoe3BheWxvYWR9OiB7XG4gICAgICAgICAgcGF5bG9hZDogeyBtZW1iZXJJZDogc3RyaW5nLCBwYXltZW50T3JkZXJJZDogc3RyaW5nLCBwYXltZW50QXR0ZW1wdElkOiBudW1iZXIgfVxuICAgICAgICB9KSA9PiB0aGlzLnBheW1lbnRBdHRlbXB0U2VydmljZS5nZXRNZW1iZXJQYXltZW50T3JkZXJTd2lzaFFSQ29kZShwYXlsb2FkLm1lbWJlcklkLCBwYXlsb2FkLnBheW1lbnRPcmRlcklkLCBwYXlsb2FkLnBheW1lbnRBdHRlbXB0SWQpXG4gICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICBtYXAoKHN3aXNoUVJDb2RlOiBTd2lzaFFyQ29kZSkgPT4gcmV0cmlldmVQYXltZW50T3JkZXJTd2lzaFFSQ29kZVN1Y2Nlc3NBY3Rpb24oe3BheWxvYWQ6IHN3aXNoUVJDb2RlfSkpLFxuICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiBvZihyZXRyaWV2ZVBheW1lbnRPcmRlclN3aXNoUVJDb2RlRmFpbHVyZUFjdGlvbih7cGF5bG9hZDogZXJyb3J9KSkpXG4gICAgICAgICAgKVxuICAgICAgKVxuICAgIClcbiAgKTtcblxuICByZXRyaWV2ZVB1YmxpY0ludm9pY2UkID0gY3JlYXRlRWZmZWN0KCgpID0+IHRoaXMuYWN0aW9ucyRcbiAgICAucGlwZShcbiAgICAgIG9mVHlwZShyZXRyaWV2ZVB1YmxpY0ludm9pY2VBY3Rpb24pLFxuICAgICAgZXhoYXVzdE1hcCgoe3BheWxvYWR9OiB7XG4gICAgICAgICAgcGF5bG9hZDogeyB0b2tlbjogc3RyaW5nLCBpbnZvaWNlSWQ6IHN0cmluZyB9XG4gICAgICAgIH0pID0+IHRoaXMuaW52b2ljZVNlcnZpY2UuZ2V0UHVibGljSW52b2ljZShwYXlsb2FkLmludm9pY2VJZCwgcGF5bG9hZC50b2tlbilcbiAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgIG1hcCgoaW52b2ljZTogTWVtYmVySW52b2ljZSkgPT4gcmV0cmlldmVQdWJsaWNJbnZvaWNlU3VjY2Vzc0FjdGlvbih7cGF5bG9hZDogaW52b2ljZX0pKSxcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4gb2YocmV0cmlldmVQdWJsaWNJbnZvaWNlRmFpbHVyZUFjdGlvbih7cGF5bG9hZDogZXJyb3J9KSkpXG4gICAgICAgICAgKVxuICAgICAgKVxuICAgIClcbiAgKTtcblxuICByZXRyaWV2ZVB1YmxpY0ludm9pY2VMb2dvJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiB0aGlzLmFjdGlvbnMkXG4gICAgLnBpcGUoXG4gICAgICBvZlR5cGUocmV0cmlldmVQdWJsaWNJbnZvaWNlTG9nb0FjdGlvbiksXG4gICAgICBleGhhdXN0TWFwKCh7cGF5bG9hZH06IHtcbiAgICAgICAgICBwYXlsb2FkOiB7IHRva2VuOiBzdHJpbmcsIGludm9pY2VJZDogc3RyaW5nIH1cbiAgICAgICAgfSkgPT4gdGhpcy5pbnZvaWNlU2VydmljZS5nZXRQdWJsaWNJbnZvaWNlTG9nbyhwYXlsb2FkLmludm9pY2VJZCwgcGF5bG9hZC50b2tlbilcbiAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgIG1hcCgoaW1hZ2U6IENsdWJJbWFnZSkgPT4gcmV0cmlldmVQdWJsaWNJbnZvaWNlTG9nb1N1Y2Nlc3NBY3Rpb24oe3BheWxvYWQ6IGltYWdlfSkpLFxuICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiBvZihyZXRyaWV2ZVB1YmxpY0ludm9pY2VMb2dvRmFpbHVyZUFjdGlvbih7cGF5bG9hZDogZXJyb3J9KSkpXG4gICAgICAgICAgKVxuICAgICAgKVxuICAgIClcbiAgKTtcblxuICByZXRyaWV2ZVB1YmxpY0ludm9pY2VQYXltZW50QXR0ZW1wdCQgPSBjcmVhdGVFZmZlY3QoKCkgPT4gdGhpcy5hY3Rpb25zJFxuICAgIC5waXBlKFxuICAgICAgb2ZUeXBlKHJldHJpZXZlUHVibGljSW52b2ljZVBheW1lbnRBdHRlbXB0QWN0aW9uKSxcbiAgICAgIGV4aGF1c3RNYXAoKHtwYXlsb2FkfToge1xuICAgICAgICAgIHBheWxvYWQ6IHsgdG9rZW46IHN0cmluZywgaW52b2ljZUlkOiBzdHJpbmcsIHBheW1lbnRBdHRlbXB0SWQ6IG51bWJlciB9XG4gICAgICAgIH0pID0+IHRoaXMucGF5bWVudEF0dGVtcHRTZXJ2aWNlLmdldFB1YmxpY0ludm9pY2VQYXltZW50QXR0ZW1wdChwYXlsb2FkLmludm9pY2VJZCwgcGF5bG9hZC50b2tlbiwgcGF5bG9hZC5wYXltZW50QXR0ZW1wdElkKVxuICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgbWFwKChwYXltZW50QXR0ZW1wdDogUGF5bWVudEF0dGVtcHQpID0+IHJldHJpZXZlUHVibGljSW52b2ljZVBheW1lbnRBdHRlbXB0U3VjY2Vzc0FjdGlvbih7cGF5bG9hZDogcGF5bWVudEF0dGVtcHR9KSksXG4gICAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IG9mKHJldHJpZXZlUHVibGljSW52b2ljZVBheW1lbnRBdHRlbXB0RmFpbHVyZUFjdGlvbih7cGF5bG9hZDogZXJyb3J9KSkpXG4gICAgICAgICAgKVxuICAgICAgKVxuICAgIClcbiAgKTtcblxuICByZXRyaWV2ZVB1YmxpY0ludm9pY2VTd2lzaFFSQ29kZSQgPSBjcmVhdGVFZmZlY3QoKCkgPT4gdGhpcy5hY3Rpb25zJFxuICAgIC5waXBlKFxuICAgICAgb2ZUeXBlKHJldHJpZXZlUHVibGljSW52b2ljZVN3aXNoUVJDb2RlQWN0aW9uKSxcbiAgICAgIGV4aGF1c3RNYXAoKHtwYXlsb2FkfToge1xuICAgICAgICAgIHBheWxvYWQ6IHsgdG9rZW46IHN0cmluZywgaW52b2ljZUlkOiBzdHJpbmcsIHBheW1lbnRBdHRlbXB0SWQ6IG51bWJlciB9XG4gICAgICAgIH0pID0+IHRoaXMucGF5bWVudEF0dGVtcHRTZXJ2aWNlLmdldFB1YmxpY0ludm9pY2VTd2lzaFFSQ29kZShwYXlsb2FkLmludm9pY2VJZCwgcGF5bG9hZC50b2tlbiwgcGF5bG9hZC5wYXltZW50QXR0ZW1wdElkKVxuICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgbWFwKChzd2lzaFFSQ29kZTogU3dpc2hRckNvZGUpID0+IHJldHJpZXZlSW52b2ljZVN3aXNoUVJDb2RlU3VjY2Vzc0FjdGlvbih7cGF5bG9hZDogc3dpc2hRUkNvZGV9KSksXG4gICAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IG9mKHJldHJpZXZlSW52b2ljZVN3aXNoUVJDb2RlRmFpbHVyZUFjdGlvbih7cGF5bG9hZDogZXJyb3J9KSkpXG4gICAgICAgICAgKVxuICAgICAgKVxuICAgIClcbiAgKTtcblxuXG4gIHJldHJpZXZlTWVtYmVyUGF5bWVudE9yZGVyUGF5bWVudEF0dGVtcHQkID0gY3JlYXRlRWZmZWN0KCgpID0+IHRoaXMuYWN0aW9ucyRcbiAgICAucGlwZShcbiAgICAgIG9mVHlwZShyZXRyaWV2ZU1lbWJlclBheW1lbnRPcmRlclBheW1lbnRBdHRlbXB0QWN0aW9uKSxcbiAgICAgIGV4aGF1c3RNYXAoKHtwYXlsb2FkfToge1xuICAgICAgICAgIHBheWxvYWQ6IHsgbWVtYmVySWQ6IHN0cmluZywgcGF5bWVudE9yZGVySWQ6IHN0cmluZywgcGF5bWVudEF0dGVtcHRJZDogbnVtYmVyIH1cbiAgICAgICAgfSkgPT4gdGhpcy5wYXltZW50QXR0ZW1wdFNlcnZpY2UuZ2V0TWVtYmVyUGF5bWVudE9yZGVyUGF5bWVudEF0dGVtcHQocGF5bG9hZC5tZW1iZXJJZCwgcGF5bG9hZC5wYXltZW50T3JkZXJJZCwgcGF5bG9hZC5wYXltZW50QXR0ZW1wdElkKVxuICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgbWFwKChwYXltZW50QXR0ZW1wdDogUGF5bWVudEF0dGVtcHQpID0+IHJldHJpZXZlTWVtYmVyUGF5bWVudE9yZGVyUGF5bWVudEF0dGVtcHRTdWNjZXNzQWN0aW9uKHtwYXlsb2FkOiBwYXltZW50QXR0ZW1wdH0pKSxcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4gb2YocmV0cmlldmVNZW1iZXJQYXltZW50T3JkZXJQYXltZW50QXR0ZW1wdEZhaWx1cmVBY3Rpb24oe3BheWxvYWQ6IGVycm9yfSkpKVxuICAgICAgICAgIClcbiAgICAgIClcbiAgICApXG4gICk7XG5cbiAgcmV0cmlldmVQdWJsaWNQYXltZW50T3JkZXIkID0gY3JlYXRlRWZmZWN0KCgpID0+IHRoaXMuYWN0aW9ucyRcbiAgICAucGlwZShcbiAgICAgIG9mVHlwZShyZXRyaWV2ZVB1YmxpY1BheW1lbnRPcmRlckFjdGlvbiksXG4gICAgICBleGhhdXN0TWFwKCh7cGF5bG9hZH06IHtcbiAgICAgICAgICBwYXlsb2FkOiB7IHRva2VuOiBzdHJpbmcsIHBheW1lbnRPcmRlcklkOiBzdHJpbmcgfVxuICAgICAgICB9KSA9PiB0aGlzLnBheW1lbnRPcmRlclNlcnZpY2UuZ2V0UHVibGljUGF5bWVudE9yZGVyKHBheWxvYWQucGF5bWVudE9yZGVySWQsIHBheWxvYWQudG9rZW4pXG4gICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICBtYXAoKHBheW1lbnRPcmRlcjogUGF5bWVudE9yZGVyKSA9PiByZXRyaWV2ZVB1YmxpY1BheW1lbnRPcmRlclN1Y2Nlc3NBY3Rpb24oe3BheWxvYWQ6IHBheW1lbnRPcmRlcn0pKSxcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4gb2YocmV0cmlldmVQdWJsaWNQYXltZW50T3JkZXJGYWlsdXJlQWN0aW9uKHtwYXlsb2FkOiBlcnJvcn0pKSlcbiAgICAgICAgICApXG4gICAgICApXG4gICAgKVxuICApO1xuXG4gIHJldHJpZXZlUHVibGljUGF5bWVudE9yZGVyTG9nbyQgPSBjcmVhdGVFZmZlY3QoKCkgPT4gdGhpcy5hY3Rpb25zJFxuICAgIC5waXBlKFxuICAgICAgb2ZUeXBlKHJldHJpZXZlUHVibGljUGF5bWVudE9yZGVyTG9nb0FjdGlvbiksXG4gICAgICBleGhhdXN0TWFwKCh7cGF5bG9hZH06IHtcbiAgICAgICAgICBwYXlsb2FkOiB7IHRva2VuOiBzdHJpbmcsIHBheW1lbnRPcmRlcklkOiBzdHJpbmcgfVxuICAgICAgICB9KSA9PiB0aGlzLnBheW1lbnRPcmRlclNlcnZpY2UuZ2V0UHVibGljUGF5bWVudE9yZGVyTG9nbyhwYXlsb2FkLnBheW1lbnRPcmRlcklkLCBwYXlsb2FkLnRva2VuKVxuICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgbWFwKChpbWFnZTogQ2x1YkltYWdlKSA9PiByZXRyaWV2ZVB1YmxpY1BheW1lbnRPcmRlckxvZ29TdWNjZXNzQWN0aW9uKHtwYXlsb2FkOiBpbWFnZX0pKSxcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4gb2YocmV0cmlldmVQdWJsaWNQYXltZW50T3JkZXJMb2dvRmFpbHVyZUFjdGlvbih7cGF5bG9hZDogZXJyb3J9KSkpXG4gICAgICAgICAgKVxuICAgICAgKVxuICAgIClcbiAgKTtcblxuICByZXRyaWV2ZVB1YmxpY1BheW1lbnRPcmRlclBheW1lbnRBdHRlbXB0JCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiB0aGlzLmFjdGlvbnMkXG4gICAgLnBpcGUoXG4gICAgICBvZlR5cGUocmV0cmlldmVQdWJsaWNQYXltZW50T3JkZXJQYXltZW50QXR0ZW1wdEFjdGlvbiksXG4gICAgICBleGhhdXN0TWFwKCh7cGF5bG9hZH06IHtcbiAgICAgICAgICBwYXlsb2FkOiB7IHRva2VuOiBzdHJpbmcsIHBheW1lbnRPcmRlcklkOiBzdHJpbmcsIHBheW1lbnRBdHRlbXB0SWQ6IG51bWJlciB9XG4gICAgICAgIH0pID0+IHRoaXMucGF5bWVudEF0dGVtcHRTZXJ2aWNlLmdldFB1YmxpY1BheW1lbnRPcmRlclBheW1lbnRBdHRlbXB0KHBheWxvYWQucGF5bWVudE9yZGVySWQsIHBheWxvYWQudG9rZW4sIHBheWxvYWQucGF5bWVudEF0dGVtcHRJZClcbiAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgIG1hcCgocGF5bWVudEF0dGVtcHQ6IFBheW1lbnRBdHRlbXB0KSA9PiByZXRyaWV2ZVB1YmxpY1BheW1lbnRPcmRlclBheW1lbnRBdHRlbXB0U3VjY2Vzc0FjdGlvbih7cGF5bG9hZDogcGF5bWVudEF0dGVtcHR9KSksXG4gICAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IG9mKHJldHJpZXZlUHVibGljUGF5bWVudE9yZGVyUGF5bWVudEF0dGVtcHRGYWlsdXJlQWN0aW9uKHtwYXlsb2FkOiBlcnJvcn0pKSlcbiAgICAgICAgICApXG4gICAgICApXG4gICAgKVxuICApO1xuXG4gIHJldHJpZXZlUHVibGljUGF5bWVudE9yZGVyU3dpc2hRUkNvZGUkID0gY3JlYXRlRWZmZWN0KCgpID0+IHRoaXMuYWN0aW9ucyRcbiAgICAucGlwZShcbiAgICAgIG9mVHlwZShyZXRyaWV2ZVB1YmxpY1BheW1lbnRPcmRlclN3aXNoUVJDb2RlQWN0aW9uKSxcbiAgICAgIGV4aGF1c3RNYXAoKHtwYXlsb2FkfToge1xuICAgICAgICAgIHBheWxvYWQ6IHsgdG9rZW46IHN0cmluZywgcGF5bWVudE9yZGVySWQ6IHN0cmluZywgcGF5bWVudEF0dGVtcHRJZDogbnVtYmVyIH1cbiAgICAgICAgfSkgPT4gdGhpcy5wYXltZW50QXR0ZW1wdFNlcnZpY2UuZ2V0UHVibGljUGF5bWVudE9yZGVyU3dpc2hRUkNvZGUocGF5bG9hZC5wYXltZW50T3JkZXJJZCwgcGF5bG9hZC50b2tlbiwgcGF5bG9hZC5wYXltZW50QXR0ZW1wdElkKVxuICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgbWFwKChzd2lzaFFSQ29kZTogU3dpc2hRckNvZGUpID0+IHJldHJpZXZlUGF5bWVudE9yZGVyU3dpc2hRUkNvZGVTdWNjZXNzQWN0aW9uKHtwYXlsb2FkOiBzd2lzaFFSQ29kZX0pKSxcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4gb2YocmV0cmlldmVQYXltZW50T3JkZXJTd2lzaFFSQ29kZUZhaWx1cmVBY3Rpb24oe3BheWxvYWQ6IGVycm9yfSkpKVxuICAgICAgICAgIClcbiAgICAgIClcbiAgICApXG4gICk7XG59XG4iXX0=
|
|
@@ -80,4 +80,4 @@ export class MemberCardEffects {
|
|
|
80
80
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: MemberCardEffects, decorators: [{
|
|
81
81
|
type: Injectable
|
|
82
82
|
}] });
|
|
83
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtYmVyLWNhcmQuZWZmZWN0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGEtYWNjZXNzL3NyYy9saWIvc3RvcmUvZWZmZWN0cy9tZW1iZXItY2FyZC5lZmZlY3RzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU5RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRCxPQUFPLEVBQ0wsd0JBQXdCLEVBQ3hCLCtCQUErQixFQUMvQiwrQkFBK0IsRUFDL0IsOEJBQThCLEVBQzlCLHFDQUFxQyxFQUNyQyxxQ0FBcUMsRUFDckMscUJBQXFCLEVBQ3JCLDRCQUE0QixFQUM1Qiw0QkFBNEIsRUFDNUIsd0JBQXdCLEVBQ3hCLDZCQUE2QixFQUM3QixvQ0FBb0MsRUFDcEMsb0NBQW9DLEVBQ3BDLCtCQUErQixFQUMvQiw4QkFBOEIsRUFDOUIscUNBQXFDLEVBQ3JDLHFDQUFxQyxFQUNyQywrQkFBK0IsRUFDL0IsK0JBQStCLEVBQy9CLHNDQUFzQyxFQUN0QyxzQ0FBc0MsRUFDdEMsOEJBQThCLEVBQzlCLG1DQUFtQyxFQUNuQywwQ0FBMEMsRUFDMUMsMENBQTBDLEVBQzFDLHFDQUFxQyxFQUNyQyxvQ0FBb0MsRUFDcEMsMkNBQTJDLEVBQzNDLDJDQUEyQyxFQUMzQyxzQ0FBc0MsRUFBRSw2Q0FBNkMsRUFDckYsNkNBQTZDLEVBQzdDLHFDQUFxQyxFQUNyQyxxQ0FBcUMsRUFDckMsNENBQTRDLEVBQzVDLDRDQUE0QyxHQUM3QyxNQUFNLFlBQVksQ0FBQztBQUNwQixPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFB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O1lBQ1AsWUFBWSxFQUFFLE9BQU8sQ0FBQyxZQUFZO1lBQ2xDLE9BQU8sRUFBRSxXQUFXLENBQUMsT0FBTyxFQUFFO1NBQy9CO0tBQ0YsQ0FBQyxDQUFDLEVBQ0gsVUFBVSxDQUFDLENBQUMsS0FBd0IsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLHNDQUFzQyxDQUFDLEVBQUMsT0FBTyxFQUFFLEtBQUssRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUN2RyxDQUNKLENBQ0YsQ0FBQyxDQUFDO3VHQWpNTSxpQkFBaUI7MkdBQWpCLGlCQUFpQjs7MkZBQWpCLGlCQUFpQjtrQkFEN0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aW9ucywgY3JlYXRlRWZmZWN0LCBvZlR5cGUgfSBmcm9tICdAbmdyeC9lZmZlY3RzJztcbmltcG9ydCB7IENhcmREZWFsLCBDYXJkTWVtYmVyVGlja2V0LCBDYXJkVGlja2V0LCBDb2xsZWN0aW9uLCBNZW1iZXJDYXJkLCBTZWFyY2hNZW1iZXJDYXJkIH0gZnJvbSAnLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7IE1lbWJlckNhcmRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMnO1xuaW1wb3J0IHtcbiAgYWN0aXZhdGVDYXJkVGlja2V0QWN0aW9uLFxuICBhY3RpdmF0ZUNhcmRUaWNrZXRGYWlsdXJlQWN0aW9uLFxuICBhY3RpdmF0ZUNhcmRUaWNrZXRTdWNjZXNzQWN0aW9uLFxuICBhY3RpdmF0ZVB1YmxpY0NhcmRUaWNrZXRBY3Rpb24sXG4gIGFjdGl2YXRlUHVibGljQ2FyZFRpY2tldEZhaWx1cmVBY3Rpb24sXG4gIGFjdGl2YXRlUHVibGljQ2FyZFRpY2tldFN1Y2Nlc3NBY3Rpb24sXG4gIGxpc3RNZW1iZXJDYXJkc0FjdGlvbixcbiAgbGlzdE1lbWJlckNhcmRzRmFpbHVyZUFjdGlvbixcbiAgbGlzdE1lbWJlckNhcmRzU3VjY2Vzc0FjdGlvbixcbiAgcmV0cmlldmVNZW1iZXJDYXJkQWN0aW9uLFxuICByZXRyaWV2ZU1lbWJlckNhcmREZWFsc0FjdGlvbixcbiAgcmV0cmlldmVNZW1iZXJDYXJkRGVhbHNGYWlsdXJlQWN0aW9uLFxuICByZXRyaWV2ZU1lbWJlckNhcmREZWFsc1N1Y2Nlc3NBY3Rpb24sXG4gIHJldHJpZXZlTWVtYmVyQ2FyZEZhaWx1cmVBY3Rpb24sXG4gIHJldHJpZXZlTWVtYmVyQ2FyZFFSQ29kZUFjdGlvbixcbiAgcmV0cmlldmVNZW1iZXJDYXJkUVJDb2RlRmFpbHVyZUFjdGlvbixcbiAgcmV0cmlldmVNZW1iZXJDYXJkUVJDb2RlU3VjY2Vzc0FjdGlvbixcbiAgcmV0cmlldmVNZW1iZXJDYXJkU3VjY2Vzc0FjdGlvbixcbiAgcmV0cmlldmVNZW1iZXJDYXJkVGlja2V0c0FjdGlvbixcbiAgcmV0cmlldmVNZW1iZXJDYXJkVGlja2V0c0ZhaWx1cmVBY3Rpb24sXG4gIHJldHJpZXZlTWVtYmVyQ2FyZFRpY2tldHNTdWNjZXNzQWN0aW9uLFxuICByZXRyaWV2ZVB1YmxpY01lbWJlckNhcmRBY3Rpb24sXG4gIHJldHJpZXZlUHVibGljTWVtYmVyQ2FyZERlYWxzQWN0aW9uLFxuICByZXRyaWV2ZVB1YmxpY01lbWJlckNhcmREZWFsc0ZhaWx1cmVBY3Rpb24sXG4gIHJldHJpZXZlUHVibGljTWVtYmVyQ2FyZERlYWxzU3VjY2Vzc0FjdGlvbixcbiAgcmV0cmlldmVQdWJsaWNNZW1iZXJDYXJkRmFpbHVyZUFjdGlvbixcbiAgcmV0cmlldmVQdWJsaWNNZW1iZXJDYXJkUVJDb2RlQWN0aW9uLFxuICByZXRyaWV2ZVB1YmxpY01lbWJlckNhcmRRUkNvZGVGYWlsdXJlQWN0aW9uLFxuICByZXRyaWV2ZVB1YmxpY01lbWJlckNhcmRRUkNvZGVTdWNjZXNzQWN0aW9uLFxuICByZXRyaWV2ZVB1YmxpY01lbWJlckNhcmRSZWdpc3RlckFjdGlvbiwgcmV0cmlldmVQdWJsaWNNZW1iZXJDYXJkUmVnaXN0ZXJGYWlsdXJlQWN0aW9uLFxuICByZXRyaWV2ZVB1YmxpY01lbWJlckNhcmRSZWdpc3RlclN1Y2Nlc3NBY3Rpb24sXG4gIHJldHJpZXZlUHVibGljTWVtYmVyQ2FyZFN1Y2Nlc3NBY3Rpb24sXG4gIHJldHJpZXZlUHVibGljTWVtYmVyQ2FyZFRpY2tldHNBY3Rpb24sXG4gIHJldHJpZXZlUHVibGljTWVtYmVyQ2FyZFRpY2tldHNGYWlsdXJlQWN0aW9uLFxuICByZXRyaWV2ZVB1YmxpY01lbWJlckNhcmRUaWNrZXRzU3VjY2Vzc0FjdGlvbixcbn0gZnJvbSAnLi4vYWN0aW9ucyc7XG5pbXBvcnQgeyBleGhhdXN0TWFwLCBmb3JrSm9pbiwgbWVyZ2VNYXAsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBIdHRwRXJyb3JSZXNwb25zZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEFjdGl2YXRlQ2FyZFRpY2tldEludGVyZmFjZSwgUHVibGljQWN0aXZhdGVDYXJkVGlja2V0SW50ZXJmYWNlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBjcmVhdGVBY3Rpb24gfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE1lbWJlckNhcmRFZmZlY3RzIHtcbiAgcHJpdmF0ZSBhY3Rpb25zJCA9IGluamVjdChBY3Rpb25zKTtcbiAgcHJpdmF0ZSBtZW1iZXJDYXJkU2VydmljZSA9IGluamVjdChNZW1iZXJDYXJkU2VydmljZSk7XG5cbiAgYWN0aXZhdGVDYXJkVGlja2V0JCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiB0aGlzLmFjdGlvbnMkXG4gICAgLnBpcGUoXG4gICAgICBvZlR5cGUoYWN0aXZhdGVDYXJkVGlja2V0QWN0aW9uKSxcbiAgICAgIGV4aGF1c3RNYXAoKHtwYXlsb2FkfToge1xuICAgICAgICAgIHBheWxvYWQ6IEFjdGl2YXRlQ2FyZFRpY2tldEludGVyZmFjZVxuICAgICAgICB9KSA9PiB0aGlzLm1lbWJlckNhcmRTZXJ2aWNlLmFjdGl2YXRlTWVtYmVyQ2FyZFRpY2tldChwYXlsb2FkLm1lbWJlcklkLCBwYXlsb2FkLmNhcmRJZCwgcGF5bG9hZC5pZCwgcGF5bG9hZC5waW5Db2RlKVxuICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgbWVyZ2VNYXAoKG1lbWJlclRpY2tldDogQ2FyZE1lbWJlclRpY2tldCkgPT4gW1xuICAgICAgICAgICAgICBhY3RpdmF0ZUNhcmRUaWNrZXRTdWNjZXNzQWN0aW9uKHtwYXlsb2FkOiBtZW1iZXJUaWNrZXR9KSxcbiAgICAgICAgICAgICAgcmV0cmlldmVNZW1iZXJDYXJkVGlja2V0c0FjdGlvbih7cGF5bG9hZDoge21lbWJlcklkOiBwYXlsb2FkLm1lbWJlcklkLCBtZW1iZXJDYXJkSWQ6IHBheWxvYWQuY2FyZElkfX0pXG4gICAgICAgICAgICBdKSxcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4gb2YoYWN0aXZhdGVDYXJkVGlja2V0RmFpbHVyZUFjdGlvbih7cGF5bG9hZDogZXJyb3J9KSkpXG4gICAgICAgICAgKVxuICAgICAgKVxuICAgIClcbiAgKTtcblxuICBhY3RpdmF0ZVB1YmxpY0NhcmRUaWNrZXQkID0gY3JlYXRlRWZmZWN0KCgpID0+IHRoaXMuYWN0aW9ucyRcbiAgICAucGlwZShcbiAgICAgIG9mVHlwZShhY3RpdmF0ZVB1YmxpY0NhcmRUaWNrZXRBY3Rpb24pLFxuICAgICAgZXhoYXVzdE1hcCgoe3BheWxvYWR9OiB7XG4gICAgICAgICAgcGF5bG9hZDogUHVibGljQWN0aXZhdGVDYXJkVGlja2V0SW50ZXJmYWNlXG4gICAgICAgIH0pID0+IHRoaXMubWVtYmVyQ2FyZFNlcnZpY2UuYWN0aXZhdGVQdWJsaWNDYXJkVGlja2V0KHBheWxvYWQuY2FyZElkLCBwYXlsb2FkLnRva2VuLCBwYXlsb2FkLmlkLCBwYXlsb2FkLnBpbkNvZGUpXG4gICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICBtYXAoKG1lbWJlclRpY2tldDogQ2FyZE1lbWJlclRpY2tldCkgPT4gYWN0aXZhdGVQdWJsaWNDYXJkVGlja2V0U3VjY2Vzc0FjdGlvbih7cGF5bG9hZDogbWVtYmVyVGlja2V0fSkpLFxuICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiBvZihhY3RpdmF0ZVB1YmxpY0NhcmRUaWNrZXRGYWlsdXJlQWN0aW9uKHtwYXlsb2FkOiBlcnJvcn0pKSlcbiAgICAgICAgICApXG4gICAgICApXG4gICAgKVxuICApO1xuXG4gIGxpc3RNZW1iZXJDYXJkcyQgPSBjcmVhdGVFZmZlY3QoKCkgPT4gdGhpcy5hY3Rpb25zJFxuICAgIC5waXBlKFxuICAgICAgb2ZUeXBlKGxpc3RNZW1iZXJDYXJkc0FjdGlvbiksXG4gICAgICBtZXJnZU1hcCgoe3BheWxvYWR9OiB7IHBheWxvYWQ6IEFycmF5PHN0cmluZz4gfSkgPT5cbiAgICAgICAgZm9ya0pvaW4ocGF5bG9hZC5tYXAoKGlkOiBzdHJpbmcpID0+XG4gICAgICAgICAgdGhpcy5tZW1iZXJDYXJkU2VydmljZS5nZXRNZW1iZXJDYXJkcyhpZCkucGlwZShcbiAgICAgICAgICAgIG1hcCgoY2FyZHM6IENvbGxlY3Rpb248U2VhcmNoTWVtYmVyQ2FyZD4pID0+ICh7aWQsIGNhcmRzOiBjYXJkcy50b0FycmF5KCl9KSksXG4gICAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IG9mKHtpZCwgZXJyb3J9KSlcbiAgICAgICAgICApXG4gICAgICAgICkpLnBpcGUoXG4gICAgICAgICAgbWFwKHJlc3VsdHMgPT4ge1xuICAgICAgICAgICAgY29uc3QgcmVzdWx0TWFwID0gbmV3IE1hcDxzdHJpbmcsIEFycmF5PFNlYXJjaE1lbWJlckNhcmQ+PigpO1xuICAgICAgICAgICAgcmVzdWx0cy5mb3JFYWNoKChyZXN1bHQ6IHsgaWQ6IHN0cmluZywgY2FyZHM/OiBBcnJheTxTZWFyY2hNZW1iZXJDYXJkPiwgZXJyb3I/OiBIdHRwRXJyb3JSZXNwb25zZSB9KSA9PiB7XG4gICAgICAgICAgICAgIGlmIChyZXN1bHQuY2FyZHMpIHtcbiAgICAgICAgICAgICAgICByZXN1bHRNYXAuc2V0KHJlc3VsdC5pZCwgcmVzdWx0LmNhcmRzKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4gbGlzdE1lbWJlckNhcmRzU3VjY2Vzc0FjdGlvbih7cGF5bG9hZDogcmVzdWx0TWFwfSk7XG4gICAgICAgICAgfSksXG4gICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiBvZihsaXN0TWVtYmVyQ2FyZHNGYWlsdXJlQWN0aW9uKHtwYXlsb2FkOiBlcnJvcn0pKSlcbiAgICAgICAgKVxuICAgICAgKVxuICAgIClcbiAgKTtcblxuICByZXRyaWV2ZU1lbWJlckNhcmQkID0gY3JlYXRlRWZmZWN0KCgpID0+IHRoaXMuYWN0aW9ucyRcbiAgICAucGlwZShcbiAgICAgIG9mVHlwZShyZXRyaWV2ZU1lbWJlckNhcmRBY3Rpb24pLFxuICAgICAgZXhoYXVzdE1hcCgoe3BheWxvYWR9OiB7XG4gICAgICAgICAgcGF5bG9hZDogeyBtZW1iZXJJZDogc3RyaW5nLCBtZW1iZXJDYXJkSWQ6IHN0cmluZyB9XG4gICAgICAgIH0pID0+IHRoaXMubWVtYmVyQ2FyZFNlcnZpY2UuZ2V0TWVtYmVyQ2FyZChwYXlsb2FkLm1lbWJlcklkLCBwYXlsb2FkLm1lbWJlckNhcmRJZClcbiAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgIG1hcCgoY2FyZDogTWVtYmVyQ2FyZCkgPT4gcmV0cmlldmVNZW1iZXJDYXJkU3VjY2Vzc0FjdGlvbih7cGF5bG9hZDogY2FyZH0pKSxcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4gb2YocmV0cmlldmVNZW1iZXJDYXJkRmFpbHVyZUFjdGlvbih7cGF5bG9hZDogZXJyb3J9KSkpXG4gICAgICAgICAgKVxuICAgICAgKVxuICAgIClcbiAgKTtcblxuICByZXRyaWV2ZURlYWxzJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiB0aGlzLmFjdGlvbnMkXG4gICAgLnBpcGUoXG4gICAgICBvZlR5cGUocmV0cmlldmVNZW1iZXJDYXJkRGVhbHNBY3Rpb24pLFxuICAgICAgZXhoYXVzdE1hcCgoe3BheWxvYWR9OiB7XG4gICAgICAgICAgcGF5bG9hZDogeyBtZW1iZXJJZDogc3RyaW5nLCBtZW1iZXJDYXJkSWQ6IHN0cmluZyB9XG4gICAgICAgIH0pID0+IHRoaXMubWVtYmVyQ2FyZFNlcnZpY2UuZ2V0TWVtYmVyQ2FyZERlYWxzKHBheWxvYWQubWVtYmVySWQsIHBheWxvYWQubWVtYmVyQ2FyZElkKVxuICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgbWFwKChjYXJkRGVhbHM6IENvbGxlY3Rpb248Q2FyZERlYWw+KSA9PiByZXRyaWV2ZU1lbWJlckNhcmREZWFsc1N1Y2Nlc3NBY3Rpb24oe1xuICAgICAgICAgICAgICBwYXlsb2FkOiB7XG4gICAgICAgICAgICAgICAgbWVtYmVyQ2FyZElkOiBwYXlsb2FkLm1lbWJlckNhcmRJZCxcbiAgICAgICAgICAgICAgICBkZWFsczogY2FyZERlYWxzLnRvQXJyYXkoKVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KSksXG4gICAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IG9mKHJldHJpZXZlTWVtYmVyQ2FyZERlYWxzRmFpbHVyZUFjdGlvbih7cGF5bG9hZDogZXJyb3J9KSkpXG4gICAgICAgICAgKVxuICAgICAgKVxuICAgIClcbiAgKTtcblxuICByZXRyaWV2ZVB1YmxpY01lbWJlckNhcmQkID0gY3JlYXRlRWZmZWN0KCgpID0+IHRoaXMuYWN0aW9ucyRcbiAgICAucGlwZShcbiAgICAgIG9mVHlwZShyZXRyaWV2ZVB1YmxpY01lbWJlckNhcmRBY3Rpb24pLFxuICAgICAgZXhoYXVzdE1hcCgoe3BheWxvYWR9OiB7IHBheWxvYWQ6IHsgdG9rZW46IHN0cmluZywgbWVtYmVyQ2FyZElkOiBzdHJpbmcgfSB9KSA9PiB0aGlzLm1lbWJlckNhcmRTZXJ2aWNlLmdldFB1YmxpY01lbWJlckNhcmQocGF5bG9hZC5tZW1iZXJDYXJkSWQsIHBheWxvYWQudG9rZW4pXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIG1hcCgoY2FyZDogTWVtYmVyQ2FyZCkgPT4gcmV0cmlldmVQdWJsaWNNZW1iZXJDYXJkU3VjY2Vzc0FjdGlvbih7cGF5bG9hZDogY2FyZH0pKSxcbiAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IG9mKHJldHJpZXZlUHVibGljTWVtYmVyQ2FyZEZhaWx1cmVBY3Rpb24oe3BheWxvYWQ6IGVycm9yfSkpKVxuICAgICAgICApXG4gICAgICApXG4gICAgKVxuICApO1xuXG4gIHJldHJpZXZlUHVibGljTWVtYmVyQ2FyZERlYWxzJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiB0aGlzLmFjdGlvbnMkXG4gICAgLnBpcGUoXG4gICAgICBvZlR5cGUocmV0cmlldmVQdWJsaWNNZW1iZXJDYXJkRGVhbHNBY3Rpb24pLFxuICAgICAgZXhoYXVzdE1hcCgoe3BheWxvYWR9OiB7IHBheWxvYWQ6IHsgdG9rZW46IHN0cmluZywgbWVtYmVyQ2FyZElkOiBzdHJpbmcgfSB9KSA9PiB0aGlzLm1lbWJlckNhcmRTZXJ2aWNlLmdldFB1YmxpY01lbWJlckNhcmREZWFscyhwYXlsb2FkLm1lbWJlckNhcmRJZCwgcGF5bG9hZC50b2tlbilcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgbWFwKChjYXJkRGVhbHM6IENvbGxlY3Rpb248Q2FyZERlYWw+KSA9PiByZXRyaWV2ZVB1YmxpY01lbWJlckNhcmREZWFsc1N1Y2Nlc3NBY3Rpb24oe1xuICAgICAgICAgICAgcGF5bG9hZDoge1xuICAgICAgICAgICAgICBtZW1iZXJDYXJkSWQ6IHBheWxvYWQubWVtYmVyQ2FyZElkLFxuICAgICAgICAgICAgICBkZWFsczogY2FyZERlYWxzLnRvQXJyYXkoKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pKSxcbiAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IG9mKHJldHJpZXZlUHVibGljTWVtYmVyQ2FyZERlYWxzRmFpbHVyZUFjdGlvbih7cGF5bG9hZDogZXJyb3J9KSkpXG4gICAgICAgIClcbiAgICAgIClcbiAgICApXG4gICk7XG5cbiAgcmV0cmlldmVQdWJsaWNNZW1iZXJDYXJkUVJDb2RlJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiB0aGlzLmFjdGlvbnMkXG4gICAgLnBpcGUoXG4gICAgICBvZlR5cGUocmV0cmlldmVQdWJsaWNNZW1iZXJDYXJkUVJDb2RlQWN0aW9uKSxcbiAgICAgIGV4aGF1c3RNYXAoKHtwYXlsb2FkfTogeyBwYXlsb2FkOiB7IHRva2VuOiBzdHJpbmcsIG1lbWJlckNhcmRJZDogc3RyaW5nIH0gfSkgPT4gdGhpcy5tZW1iZXJDYXJkU2VydmljZS5nZXRQdWJsaWNNZW1iZXJDYXJkUVJDb2RlKHBheWxvYWQubWVtYmVyQ2FyZElkLCBwYXlsb2FkLnRva2VuKVxuICAgICAgICAucGlwZShcbiAgICAgICAgICBtYXAoKG1lbWJlckNhcmQ6IE1lbWJlckNhcmQpID0+IHJldHJpZXZlUHVibGljTWVtYmVyQ2FyZFFSQ29kZVN1Y2Nlc3NBY3Rpb24oe3BheWxvYWQ6IG1lbWJlckNhcmR9KSksXG4gICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiBvZihyZXRyaWV2ZVB1YmxpY01lbWJlckNhcmRRUkNvZGVGYWlsdXJlQWN0aW9uKHtwYXlsb2FkOiBlcnJvcn0pKSlcbiAgICAgICAgKVxuICAgICAgKVxuICAgIClcbiAgKTtcblxuICByZXRyaWV2ZVB1YmxpY01lbWJlckNhcmRSZWdpc3RyYXRpb24kID0gY3JlYXRlRWZmZWN0KCgpID0+IHRoaXMuYWN0aW9ucyRcbiAgICAucGlwZShcbiAgICAgIG9mVHlwZShyZXRyaWV2ZVB1YmxpY01lbWJlckNhcmRSZWdpc3RlckFjdGlvbiksXG4gICAgICBleGhhdXN0TWFwKCh7cGF5bG9hZH06IHsgcGF5bG9hZDogeyB0b2tlbjogc3RyaW5nLCBtZW1iZXJDYXJkSWQ6IHN0cmluZyB9IH0pID0+IHRoaXMubWVtYmVyQ2FyZFNlcnZpY2UuZ2V0UHVibGljTWVtYmVyQ2FyZFJlZ2lzdHJhdGlvbihwYXlsb2FkLm1lbWJlckNhcmRJZCwgcGF5bG9hZC50b2tlbilcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgbWFwKChtZW1iZXJDYXJkOiBNZW1iZXJDYXJkKSA9PiByZXRyaWV2ZVB1YmxpY01lbWJlckNhcmRSZWdpc3RlclN1Y2Nlc3NBY3Rpb24oe3BheWxvYWQ6IG1lbWJlckNhcmR9KSksXG4gICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiBvZihyZXRyaWV2ZVB1YmxpY01lbWJlckNhcmRSZWdpc3RlckZhaWx1cmVBY3Rpb24oe3BheWxvYWQ6IGVycm9yfSkpKVxuICAgICAgICApXG4gICAgICApXG4gICAgKVxuICApXG5cbiAgcmV0cmlldmVQdWJsaWNNZW1iZXJDYXJkVGlja2V0cyQgPSBjcmVhdGVFZmZlY3QoKCkgPT4gdGhpcy5hY3Rpb25zJFxuICAgIC5waXBlKFxuICAgICAgb2ZUeXBlKHJldHJpZXZlUHVibGljTWVtYmVyQ2FyZFRpY2tldHNBY3Rpb24pLFxuICAgICAgZXhoYXVzdE1hcCgoe3BheWxvYWR9OiB7IHBheWxvYWQ6IHsgdG9rZW46IHN0cmluZywgbWVtYmVyQ2FyZElkOiBzdHJpbmcgfSB9KSA9PiB0aGlzLm1lbWJlckNhcmRTZXJ2aWNlLmdldFB1YmxpY01lbWJlckNhcmRUaWNrZXRzKHBheWxvYWQubWVtYmVyQ2FyZElkLCBwYXlsb2FkLnRva2VuKVxuICAgICAgICAucGlwZShcbiAgICAgICAgICBtYXAoKGNhcmRUaWNrZXRzOiBDb2xsZWN0aW9uPENhcmRUaWNrZXQ+KSA9PiByZXRyaWV2ZVB1YmxpY01lbWJlckNhcmRUaWNrZXRzU3VjY2Vzc0FjdGlvbih7XG4gICAgICAgICAgICBwYXlsb2FkOiB7XG4gICAgICAgICAgICAgIG1lbWJlckNhcmRJZDogcGF5bG9hZC5tZW1iZXJDYXJkSWQsXG4gICAgICAgICAgICAgIHRpY2tldHM6IGNhcmRUaWNrZXRzLnRvQXJyYXkoKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pKSxcbiAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IG9mKHJldHJpZXZlUHVibGljTWVtYmVyQ2FyZFRpY2tldHNGYWlsdXJlQWN0aW9uKHtwYXlsb2FkOiBlcnJvcn0pKSlcbiAgICAgICAgKVxuICAgICAgKVxuICAgIClcbiAgKTtcblxuICByZXRyaWV2ZVFSQ29kZSQgPSBjcmVhdGVFZmZlY3QoKCkgPT4gdGhpcy5hY3Rpb25zJFxuICAgIC5waXBlKFxuICAgICAgb2ZUeXBlKHJldHJpZXZlTWVtYmVyQ2FyZFFSQ29kZUFjdGlvbiksXG4gICAgICBleGhhdXN0TWFwKCh7cGF5bG9hZH06IHtcbiAgICAgICAgICBwYXlsb2FkOiB7IG1lbWJlcklkOiBzdHJpbmcsIG1lbWJlckNhcmRJZDogc3RyaW5nIH1cbiAgICAgICAgfSkgPT4gdGhpcy5tZW1iZXJDYXJkU2VydmljZS5nZXRNZW1iZXJDYXJkUVJDb2RlKHBheWxvYWQubWVtYmVySWQsIHBheWxvYWQubWVtYmVyQ2FyZElkKVxuICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgbWFwKChtZW1iZXJDYXJkOiBNZW1iZXJDYXJkKSA9PiByZXRyaWV2ZU1lbWJlckNhcmRRUkNvZGVTdWNjZXNzQWN0aW9uKHtwYXlsb2FkOiBtZW1iZXJDYXJkfSkpLFxuICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiBvZihyZXRyaWV2ZU1lbWJlckNhcmRRUkNvZGVGYWlsdXJlQWN0aW9uKHtwYXlsb2FkOiBlcnJvcn0pKSlcbiAgICAgICAgICApXG4gICAgICApXG4gICAgKVxuICApO1xuXG4gIHJldHJpZXZlVGlja2V0cyQgPSBjcmVhdGVFZmZlY3QoKCkgPT4gdGhpcy5hY3Rpb25zJFxuICAgIC5waXBlKFxuICAgICAgb2ZUeXBlKHJldHJpZXZlTWVtYmVyQ2FyZFRpY2tldHNBY3Rpb24pLFxuICAgICAgZXhoYXVzdE1hcCgoe3BheWxvYWR9OiB7XG4gICAgICAgICAgcGF5bG9hZDogeyBtZW1iZXJJZDogc3RyaW5nLCBtZW1iZXJDYXJkSWQ6IHN0cmluZyB9XG4gICAgICAgIH0pID0+IHRoaXMubWVtYmVyQ2FyZFNlcnZpY2UuZ2V0TWVtYmVyQ2FyZFRpY2tldHMocGF5bG9hZC5tZW1iZXJJZCwgcGF5bG9hZC5tZW1iZXJDYXJkSWQpXG4gICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICBtYXAoKGNhcmRUaWNrZXRzOiBDb2xsZWN0aW9uPENhcmRUaWNrZXQ+KSA9PiByZXRyaWV2ZU1lbWJlckNhcmRUaWNrZXRzU3VjY2Vzc0FjdGlvbih7XG4gICAgICAgICAgICAgIHBheWxvYWQ6IHtcbiAgICAgICAgICAgICAgICBtZW1iZXJDYXJkSWQ6IHBheWxvYWQubWVtYmVyQ2FyZElkLFxuICAgICAgICAgICAgICAgIHRpY2tldHM6IGNhcmRUaWNrZXRzLnRvQXJyYXkoKVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KSksXG4gICAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IG9mKHJldHJpZXZlTWVtYmVyQ2FyZFRpY2tldHNGYWlsdXJlQWN0aW9uKHtwYXlsb2FkOiBlcnJvcn0pKSlcbiAgICAgICAgICApXG4gICAgICApXG4gICAgKSk7XG59XG4iXX0=
|
|
83
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtYmVyLWNhcmQuZWZmZWN0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGEtYWNjZXNzL3NyYy9saWIvc3RvcmUvZWZmZWN0cy9tZW1iZXItY2FyZC5lZmZlY3RzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU5RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRCxPQUFPLEVBQ0wsd0JBQXdCLEVBQ3hCLCtCQUErQixFQUMvQiwrQkFBK0IsRUFDL0IsOEJBQThCLEVBQzlCLHFDQUFxQyxFQUNyQyxxQ0FBcUMsRUFDckMscUJBQXFCLEVBQ3JCLDRCQUE0QixFQUM1Qiw0QkFBNEIsRUFDNUIsd0JBQXdCLEVBQ3hCLDZCQUE2QixFQUM3QixvQ0FBb0MsRUFDcEMsb0NBQW9DLEVBQ3BDLCtCQUErQixFQUMvQiw4QkFBOEIsRUFDOUIscUNBQXFDLEVBQ3JDLHFDQUFxQyxFQUNyQywrQkFBK0IsRUFDL0IsK0JBQStCLEVBQy9CLHNDQUFzQyxFQUN0QyxzQ0FBc0MsRUFDdEMsOEJBQThCLEVBQzlCLG1DQUFtQyxFQUNuQywwQ0FBMEMsRUFDMUMsMENBQTBDLEVBQzFDLHFDQUFxQyxFQUNyQyxvQ0FBb0MsRUFDcEMsMkNBQTJDLEVBQzNDLDJDQUEyQyxFQUMzQyxzQ0FBc0MsRUFDdEMsNkNBQTZDLEVBQzdDLDZDQUE2QyxFQUM3QyxxQ0FBcUMsRUFDckMscUNBQXFDLEVBQ3JDLDRDQUE0QyxFQUM1Qyw0Q0FBNEMsR0FDN0MsTUFBTSxZQUFZLENBQUM7QUFDcEIsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxNQUFNLE1B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RTtZQUNQLFlBQVksRUFBRSxPQUFPLENBQUMsWUFBWTtZQUNsQyxPQUFPLEVBQUUsV0FBVyxDQUFDLE9BQU8sRUFBRTtTQUMvQjtLQUNGLENBQUMsQ0FBQyxFQUNILFVBQVUsQ0FBQyxDQUFDLEtBQXdCLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxzQ0FBc0MsQ0FBQyxFQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FDdkcsQ0FDSixDQUNGLENBQUMsQ0FBQzt1R0FqTU0saUJBQWlCOzJHQUFqQixpQkFBaUI7OzJGQUFqQixpQkFBaUI7a0JBRDdCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGlvbnMsIGNyZWF0ZUVmZmVjdCwgb2ZUeXBlIH0gZnJvbSAnQG5ncngvZWZmZWN0cyc7XG5pbXBvcnQgeyBDYXJkRGVhbCwgQ2FyZE1lbWJlclRpY2tldCwgQ2FyZFRpY2tldCwgQ29sbGVjdGlvbiwgTWVtYmVyQ2FyZCwgU2VhcmNoTWVtYmVyQ2FyZCB9IGZyb20gJy4uLy4uL21vZGVscyc7XG5pbXBvcnQgeyBNZW1iZXJDYXJkU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzJztcbmltcG9ydCB7XG4gIGFjdGl2YXRlQ2FyZFRpY2tldEFjdGlvbixcbiAgYWN0aXZhdGVDYXJkVGlja2V0RmFpbHVyZUFjdGlvbixcbiAgYWN0aXZhdGVDYXJkVGlja2V0U3VjY2Vzc0FjdGlvbixcbiAgYWN0aXZhdGVQdWJsaWNDYXJkVGlja2V0QWN0aW9uLFxuICBhY3RpdmF0ZVB1YmxpY0NhcmRUaWNrZXRGYWlsdXJlQWN0aW9uLFxuICBhY3RpdmF0ZVB1YmxpY0NhcmRUaWNrZXRTdWNjZXNzQWN0aW9uLFxuICBsaXN0TWVtYmVyQ2FyZHNBY3Rpb24sXG4gIGxpc3RNZW1iZXJDYXJkc0ZhaWx1cmVBY3Rpb24sXG4gIGxpc3RNZW1iZXJDYXJkc1N1Y2Nlc3NBY3Rpb24sXG4gIHJldHJpZXZlTWVtYmVyQ2FyZEFjdGlvbixcbiAgcmV0cmlldmVNZW1iZXJDYXJkRGVhbHNBY3Rpb24sXG4gIHJldHJpZXZlTWVtYmVyQ2FyZERlYWxzRmFpbHVyZUFjdGlvbixcbiAgcmV0cmlldmVNZW1iZXJDYXJkRGVhbHNTdWNjZXNzQWN0aW9uLFxuICByZXRyaWV2ZU1lbWJlckNhcmRGYWlsdXJlQWN0aW9uLFxuICByZXRyaWV2ZU1lbWJlckNhcmRRUkNvZGVBY3Rpb24sXG4gIHJldHJpZXZlTWVtYmVyQ2FyZFFSQ29kZUZhaWx1cmVBY3Rpb24sXG4gIHJldHJpZXZlTWVtYmVyQ2FyZFFSQ29kZVN1Y2Nlc3NBY3Rpb24sXG4gIHJldHJpZXZlTWVtYmVyQ2FyZFN1Y2Nlc3NBY3Rpb24sXG4gIHJldHJpZXZlTWVtYmVyQ2FyZFRpY2tldHNBY3Rpb24sXG4gIHJldHJpZXZlTWVtYmVyQ2FyZFRpY2tldHNGYWlsdXJlQWN0aW9uLFxuICByZXRyaWV2ZU1lbWJlckNhcmRUaWNrZXRzU3VjY2Vzc0FjdGlvbixcbiAgcmV0cmlldmVQdWJsaWNNZW1iZXJDYXJkQWN0aW9uLFxuICByZXRyaWV2ZVB1YmxpY01lbWJlckNhcmREZWFsc0FjdGlvbixcbiAgcmV0cmlldmVQdWJsaWNNZW1iZXJDYXJkRGVhbHNGYWlsdXJlQWN0aW9uLFxuICByZXRyaWV2ZVB1YmxpY01lbWJlckNhcmREZWFsc1N1Y2Nlc3NBY3Rpb24sXG4gIHJldHJpZXZlUHVibGljTWVtYmVyQ2FyZEZhaWx1cmVBY3Rpb24sXG4gIHJldHJpZXZlUHVibGljTWVtYmVyQ2FyZFFSQ29kZUFjdGlvbixcbiAgcmV0cmlldmVQdWJsaWNNZW1iZXJDYXJkUVJDb2RlRmFpbHVyZUFjdGlvbixcbiAgcmV0cmlldmVQdWJsaWNNZW1iZXJDYXJkUVJDb2RlU3VjY2Vzc0FjdGlvbixcbiAgcmV0cmlldmVQdWJsaWNNZW1iZXJDYXJkUmVnaXN0ZXJBY3Rpb24sXG4gIHJldHJpZXZlUHVibGljTWVtYmVyQ2FyZFJlZ2lzdGVyRmFpbHVyZUFjdGlvbixcbiAgcmV0cmlldmVQdWJsaWNNZW1iZXJDYXJkUmVnaXN0ZXJTdWNjZXNzQWN0aW9uLFxuICByZXRyaWV2ZVB1YmxpY01lbWJlckNhcmRTdWNjZXNzQWN0aW9uLFxuICByZXRyaWV2ZVB1YmxpY01lbWJlckNhcmRUaWNrZXRzQWN0aW9uLFxuICByZXRyaWV2ZVB1YmxpY01lbWJlckNhcmRUaWNrZXRzRmFpbHVyZUFjdGlvbixcbiAgcmV0cmlldmVQdWJsaWNNZW1iZXJDYXJkVGlja2V0c1N1Y2Nlc3NBY3Rpb24sXG59IGZyb20gJy4uL2FjdGlvbnMnO1xuaW1wb3J0IHsgZXhoYXVzdE1hcCwgZm9ya0pvaW4sIG1lcmdlTWFwLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgSHR0cEVycm9yUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBBY3RpdmF0ZUNhcmRUaWNrZXRJbnRlcmZhY2UsIFB1YmxpY0FjdGl2YXRlQ2FyZFRpY2tldEludGVyZmFjZSB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuXG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBNZW1iZXJDYXJkRWZmZWN0cyB7XG4gIHByaXZhdGUgYWN0aW9ucyQgPSBpbmplY3QoQWN0aW9ucyk7XG4gIHByaXZhdGUgbWVtYmVyQ2FyZFNlcnZpY2UgPSBpbmplY3QoTWVtYmVyQ2FyZFNlcnZpY2UpO1xuXG4gIGFjdGl2YXRlQ2FyZFRpY2tldCQgPSBjcmVhdGVFZmZlY3QoKCkgPT4gdGhpcy5hY3Rpb25zJFxuICAgIC5waXBlKFxuICAgICAgb2ZUeXBlKGFjdGl2YXRlQ2FyZFRpY2tldEFjdGlvbiksXG4gICAgICBleGhhdXN0TWFwKCh7cGF5bG9hZH06IHtcbiAgICAgICAgICBwYXlsb2FkOiBBY3RpdmF0ZUNhcmRUaWNrZXRJbnRlcmZhY2VcbiAgICAgICAgfSkgPT4gdGhpcy5tZW1iZXJDYXJkU2VydmljZS5hY3RpdmF0ZU1lbWJlckNhcmRUaWNrZXQocGF5bG9hZC5tZW1iZXJJZCwgcGF5bG9hZC5jYXJkSWQsIHBheWxvYWQuaWQsIHBheWxvYWQucGluQ29kZSlcbiAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgIG1lcmdlTWFwKChtZW1iZXJUaWNrZXQ6IENhcmRNZW1iZXJUaWNrZXQpID0+IFtcbiAgICAgICAgICAgICAgYWN0aXZhdGVDYXJkVGlja2V0U3VjY2Vzc0FjdGlvbih7cGF5bG9hZDogbWVtYmVyVGlja2V0fSksXG4gICAgICAgICAgICAgIHJldHJpZXZlTWVtYmVyQ2FyZFRpY2tldHNBY3Rpb24oe3BheWxvYWQ6IHttZW1iZXJJZDogcGF5bG9hZC5tZW1iZXJJZCwgbWVtYmVyQ2FyZElkOiBwYXlsb2FkLmNhcmRJZH19KVxuICAgICAgICAgICAgXSksXG4gICAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IG9mKGFjdGl2YXRlQ2FyZFRpY2tldEZhaWx1cmVBY3Rpb24oe3BheWxvYWQ6IGVycm9yfSkpKVxuICAgICAgICAgIClcbiAgICAgIClcbiAgICApXG4gICk7XG5cbiAgYWN0aXZhdGVQdWJsaWNDYXJkVGlja2V0JCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiB0aGlzLmFjdGlvbnMkXG4gICAgLnBpcGUoXG4gICAgICBvZlR5cGUoYWN0aXZhdGVQdWJsaWNDYXJkVGlja2V0QWN0aW9uKSxcbiAgICAgIGV4aGF1c3RNYXAoKHtwYXlsb2FkfToge1xuICAgICAgICAgIHBheWxvYWQ6IFB1YmxpY0FjdGl2YXRlQ2FyZFRpY2tldEludGVyZmFjZVxuICAgICAgICB9KSA9PiB0aGlzLm1lbWJlckNhcmRTZXJ2aWNlLmFjdGl2YXRlUHVibGljQ2FyZFRpY2tldChwYXlsb2FkLmNhcmRJZCwgcGF5bG9hZC50b2tlbiwgcGF5bG9hZC5pZCwgcGF5bG9hZC5waW5Db2RlKVxuICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgbWFwKChtZW1iZXJUaWNrZXQ6IENhcmRNZW1iZXJUaWNrZXQpID0+IGFjdGl2YXRlUHVibGljQ2FyZFRpY2tldFN1Y2Nlc3NBY3Rpb24oe3BheWxvYWQ6IG1lbWJlclRpY2tldH0pKSxcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4gb2YoYWN0aXZhdGVQdWJsaWNDYXJkVGlja2V0RmFpbHVyZUFjdGlvbih7cGF5bG9hZDogZXJyb3J9KSkpXG4gICAgICAgICAgKVxuICAgICAgKVxuICAgIClcbiAgKTtcblxuICBsaXN0TWVtYmVyQ2FyZHMkID0gY3JlYXRlRWZmZWN0KCgpID0+IHRoaXMuYWN0aW9ucyRcbiAgICAucGlwZShcbiAgICAgIG9mVHlwZShsaXN0TWVtYmVyQ2FyZHNBY3Rpb24pLFxuICAgICAgbWVyZ2VNYXAoKHtwYXlsb2FkfTogeyBwYXlsb2FkOiBBcnJheTxzdHJpbmc+IH0pID0+XG4gICAgICAgIGZvcmtKb2luKHBheWxvYWQubWFwKChpZDogc3RyaW5nKSA9PlxuICAgICAgICAgIHRoaXMubWVtYmVyQ2FyZFNlcnZpY2UuZ2V0TWVtYmVyQ2FyZHMoaWQpLnBpcGUoXG4gICAgICAgICAgICBtYXAoKGNhcmRzOiBDb2xsZWN0aW9uPFNlYXJjaE1lbWJlckNhcmQ+KSA9PiAoe2lkLCBjYXJkczogY2FyZHMudG9BcnJheSgpfSkpLFxuICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiBvZih7aWQsIGVycm9yfSkpXG4gICAgICAgICAgKVxuICAgICAgICApKS5waXBlKFxuICAgICAgICAgIG1hcChyZXN1bHRzID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdE1hcCA9IG5ldyBNYXA8c3RyaW5nLCBBcnJheTxTZWFyY2hNZW1iZXJDYXJkPj4oKTtcbiAgICAgICAgICAgIHJlc3VsdHMuZm9yRWFjaCgocmVzdWx0OiB7IGlkOiBzdHJpbmcsIGNhcmRzPzogQXJyYXk8U2VhcmNoTWVtYmVyQ2FyZD4sIGVycm9yPzogSHR0cEVycm9yUmVzcG9uc2UgfSkgPT4ge1xuICAgICAgICAgICAgICBpZiAocmVzdWx0LmNhcmRzKSB7XG4gICAgICAgICAgICAgICAgcmVzdWx0TWFwLnNldChyZXN1bHQuaWQsIHJlc3VsdC5jYXJkcyk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuIGxpc3RNZW1iZXJDYXJkc1N1Y2Nlc3NBY3Rpb24oe3BheWxvYWQ6IHJlc3VsdE1hcH0pO1xuICAgICAgICAgIH0pLFxuICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4gb2YobGlzdE1lbWJlckNhcmRzRmFpbHVyZUFjdGlvbih7cGF5bG9hZDogZXJyb3J9KSkpXG4gICAgICAgIClcbiAgICAgIClcbiAgICApXG4gICk7XG5cbiAgcmV0cmlldmVNZW1iZXJDYXJkJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiB0aGlzLmFjdGlvbnMkXG4gICAgLnBpcGUoXG4gICAgICBvZlR5cGUocmV0cmlldmVNZW1iZXJDYXJkQWN0aW9uKSxcbiAgICAgIGV4aGF1c3RNYXAoKHtwYXlsb2FkfToge1xuICAgICAgICAgIHBheWxvYWQ6IHsgbWVtYmVySWQ6IHN0cmluZywgbWVtYmVyQ2FyZElkOiBzdHJpbmcgfVxuICAgICAgICB9KSA9PiB0aGlzLm1lbWJlckNhcmRTZXJ2aWNlLmdldE1lbWJlckNhcmQocGF5bG9hZC5tZW1iZXJJZCwgcGF5bG9hZC5tZW1iZXJDYXJkSWQpXG4gICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICBtYXAoKGNhcmQ6IE1lbWJlckNhcmQpID0+IHJldHJpZXZlTWVtYmVyQ2FyZFN1Y2Nlc3NBY3Rpb24oe3BheWxvYWQ6IGNhcmR9KSksXG4gICAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IG9mKHJldHJpZXZlTWVtYmVyQ2FyZEZhaWx1cmVBY3Rpb24oe3BheWxvYWQ6IGVycm9yfSkpKVxuICAgICAgICAgIClcbiAgICAgIClcbiAgICApXG4gICk7XG5cbiAgcmV0cmlldmVEZWFscyQgPSBjcmVhdGVFZmZlY3QoKCkgPT4gdGhpcy5hY3Rpb25zJFxuICAgIC5waXBlKFxuICAgICAgb2ZUeXBlKHJldHJpZXZlTWVtYmVyQ2FyZERlYWxzQWN0aW9uKSxcbiAgICAgIGV4aGF1c3RNYXAoKHtwYXlsb2FkfToge1xuICAgICAgICAgIHBheWxvYWQ6IHsgbWVtYmVySWQ6IHN0cmluZywgbWVtYmVyQ2FyZElkOiBzdHJpbmcgfVxuICAgICAgICB9KSA9PiB0aGlzLm1lbWJlckNhcmRTZXJ2aWNlLmdldE1lbWJlckNhcmREZWFscyhwYXlsb2FkLm1lbWJlcklkLCBwYXlsb2FkLm1lbWJlckNhcmRJZClcbiAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgIG1hcCgoY2FyZERlYWxzOiBDb2xsZWN0aW9uPENhcmREZWFsPikgPT4gcmV0cmlldmVNZW1iZXJDYXJkRGVhbHNTdWNjZXNzQWN0aW9uKHtcbiAgICAgICAgICAgICAgcGF5bG9hZDoge1xuICAgICAgICAgICAgICAgIG1lbWJlckNhcmRJZDogcGF5bG9hZC5tZW1iZXJDYXJkSWQsXG4gICAgICAgICAgICAgICAgZGVhbHM6IGNhcmREZWFscy50b0FycmF5KClcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSkpLFxuICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiBvZihyZXRyaWV2ZU1lbWJlckNhcmREZWFsc0ZhaWx1cmVBY3Rpb24oe3BheWxvYWQ6IGVycm9yfSkpKVxuICAgICAgICAgIClcbiAgICAgIClcbiAgICApXG4gICk7XG5cbiAgcmV0cmlldmVQdWJsaWNNZW1iZXJDYXJkJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiB0aGlzLmFjdGlvbnMkXG4gICAgLnBpcGUoXG4gICAgICBvZlR5cGUocmV0cmlldmVQdWJsaWNNZW1iZXJDYXJkQWN0aW9uKSxcbiAgICAgIGV4aGF1c3RNYXAoKHtwYXlsb2FkfTogeyBwYXlsb2FkOiB7IHRva2VuOiBzdHJpbmcsIG1lbWJlckNhcmRJZDogc3RyaW5nIH0gfSkgPT4gdGhpcy5tZW1iZXJDYXJkU2VydmljZS5nZXRQdWJsaWNNZW1iZXJDYXJkKHBheWxvYWQubWVtYmVyQ2FyZElkLCBwYXlsb2FkLnRva2VuKVxuICAgICAgICAucGlwZShcbiAgICAgICAgICBtYXAoKGNhcmQ6IE1lbWJlckNhcmQpID0+IHJldHJpZXZlUHVibGljTWVtYmVyQ2FyZFN1Y2Nlc3NBY3Rpb24oe3BheWxvYWQ6IGNhcmR9KSksXG4gICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiBvZihyZXRyaWV2ZVB1YmxpY01lbWJlckNhcmRGYWlsdXJlQWN0aW9uKHtwYXlsb2FkOiBlcnJvcn0pKSlcbiAgICAgICAgKVxuICAgICAgKVxuICAgIClcbiAgKTtcblxuICByZXRyaWV2ZVB1YmxpY01lbWJlckNhcmREZWFscyQgPSBjcmVhdGVFZmZlY3QoKCkgPT4gdGhpcy5hY3Rpb25zJFxuICAgIC5waXBlKFxuICAgICAgb2ZUeXBlKHJldHJpZXZlUHVibGljTWVtYmVyQ2FyZERlYWxzQWN0aW9uKSxcbiAgICAgIGV4aGF1c3RNYXAoKHtwYXlsb2FkfTogeyBwYXlsb2FkOiB7IHRva2VuOiBzdHJpbmcsIG1lbWJlckNhcmRJZDogc3RyaW5nIH0gfSkgPT4gdGhpcy5tZW1iZXJDYXJkU2VydmljZS5nZXRQdWJsaWNNZW1iZXJDYXJkRGVhbHMocGF5bG9hZC5tZW1iZXJDYXJkSWQsIHBheWxvYWQudG9rZW4pXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIG1hcCgoY2FyZERlYWxzOiBDb2xsZWN0aW9uPENhcmREZWFsPikgPT4gcmV0cmlldmVQdWJsaWNNZW1iZXJDYXJkRGVhbHNTdWNjZXNzQWN0aW9uKHtcbiAgICAgICAgICAgIHBheWxvYWQ6IHtcbiAgICAgICAgICAgICAgbWVtYmVyQ2FyZElkOiBwYXlsb2FkLm1lbWJlckNhcmRJZCxcbiAgICAgICAgICAgICAgZGVhbHM6IGNhcmREZWFscy50b0FycmF5KClcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KSksXG4gICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiBvZihyZXRyaWV2ZVB1YmxpY01lbWJlckNhcmREZWFsc0ZhaWx1cmVBY3Rpb24oe3BheWxvYWQ6IGVycm9yfSkpKVxuICAgICAgICApXG4gICAgICApXG4gICAgKVxuICApO1xuXG4gIHJldHJpZXZlUHVibGljTWVtYmVyQ2FyZFFSQ29kZSQgPSBjcmVhdGVFZmZlY3QoKCkgPT4gdGhpcy5hY3Rpb25zJFxuICAgIC5waXBlKFxuICAgICAgb2ZUeXBlKHJldHJpZXZlUHVibGljTWVtYmVyQ2FyZFFSQ29kZUFjdGlvbiksXG4gICAgICBleGhhdXN0TWFwKCh7cGF5bG9hZH06IHsgcGF5bG9hZDogeyB0b2tlbjogc3RyaW5nLCBtZW1iZXJDYXJkSWQ6IHN0cmluZyB9IH0pID0+IHRoaXMubWVtYmVyQ2FyZFNlcnZpY2UuZ2V0UHVibGljTWVtYmVyQ2FyZFFSQ29kZShwYXlsb2FkLm1lbWJlckNhcmRJZCwgcGF5bG9hZC50b2tlbilcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgbWFwKChtZW1iZXJDYXJkOiBNZW1iZXJDYXJkKSA9PiByZXRyaWV2ZVB1YmxpY01lbWJlckNhcmRRUkNvZGVTdWNjZXNzQWN0aW9uKHtwYXlsb2FkOiBtZW1iZXJDYXJkfSkpLFxuICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4gb2YocmV0cmlldmVQdWJsaWNNZW1iZXJDYXJkUVJDb2RlRmFpbHVyZUFjdGlvbih7cGF5bG9hZDogZXJyb3J9KSkpXG4gICAgICAgIClcbiAgICAgIClcbiAgICApXG4gICk7XG5cbiAgcmV0cmlldmVQdWJsaWNNZW1iZXJDYXJkUmVnaXN0cmF0aW9uJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiB0aGlzLmFjdGlvbnMkXG4gICAgLnBpcGUoXG4gICAgICBvZlR5cGUocmV0cmlldmVQdWJsaWNNZW1iZXJDYXJkUmVnaXN0ZXJBY3Rpb24pLFxuICAgICAgZXhoYXVzdE1hcCgoe3BheWxvYWR9OiB7IHBheWxvYWQ6IHsgdG9rZW46IHN0cmluZywgbWVtYmVyQ2FyZElkOiBzdHJpbmcgfSB9KSA9PiB0aGlzLm1lbWJlckNhcmRTZXJ2aWNlLmdldFB1YmxpY01lbWJlckNhcmRSZWdpc3RyYXRpb24ocGF5bG9hZC5tZW1iZXJDYXJkSWQsIHBheWxvYWQudG9rZW4pXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIG1hcCgobWVtYmVyQ2FyZDogTWVtYmVyQ2FyZCkgPT4gcmV0cmlldmVQdWJsaWNNZW1iZXJDYXJkUmVnaXN0ZXJTdWNjZXNzQWN0aW9uKHtwYXlsb2FkOiBtZW1iZXJDYXJkfSkpLFxuICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4gb2YocmV0cmlldmVQdWJsaWNNZW1iZXJDYXJkUmVnaXN0ZXJGYWlsdXJlQWN0aW9uKHtwYXlsb2FkOiBlcnJvcn0pKSlcbiAgICAgICAgKVxuICAgICAgKVxuICAgIClcbiAgKVxuXG4gIHJldHJpZXZlUHVibGljTWVtYmVyQ2FyZFRpY2tldHMkID0gY3JlYXRlRWZmZWN0KCgpID0+IHRoaXMuYWN0aW9ucyRcbiAgICAucGlwZShcbiAgICAgIG9mVHlwZShyZXRyaWV2ZVB1YmxpY01lbWJlckNhcmRUaWNrZXRzQWN0aW9uKSxcbiAgICAgIGV4aGF1c3RNYXAoKHtwYXlsb2FkfTogeyBwYXlsb2FkOiB7IHRva2VuOiBzdHJpbmcsIG1lbWJlckNhcmRJZDogc3RyaW5nIH0gfSkgPT4gdGhpcy5tZW1iZXJDYXJkU2VydmljZS5nZXRQdWJsaWNNZW1iZXJDYXJkVGlja2V0cyhwYXlsb2FkLm1lbWJlckNhcmRJZCwgcGF5bG9hZC50b2tlbilcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgbWFwKChjYXJkVGlja2V0czogQ29sbGVjdGlvbjxDYXJkVGlja2V0PikgPT4gcmV0cmlldmVQdWJsaWNNZW1iZXJDYXJkVGlja2V0c1N1Y2Nlc3NBY3Rpb24oe1xuICAgICAgICAgICAgcGF5bG9hZDoge1xuICAgICAgICAgICAgICBtZW1iZXJDYXJkSWQ6IHBheWxvYWQubWVtYmVyQ2FyZElkLFxuICAgICAgICAgICAgICB0aWNrZXRzOiBjYXJkVGlja2V0cy50b0FycmF5KClcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KSksXG4gICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiBvZihyZXRyaWV2ZVB1YmxpY01lbWJlckNhcmRUaWNrZXRzRmFpbHVyZUFjdGlvbih7cGF5bG9hZDogZXJyb3J9KSkpXG4gICAgICAgIClcbiAgICAgIClcbiAgICApXG4gICk7XG5cbiAgcmV0cmlldmVRUkNvZGUkID0gY3JlYXRlRWZmZWN0KCgpID0+IHRoaXMuYWN0aW9ucyRcbiAgICAucGlwZShcbiAgICAgIG9mVHlwZShyZXRyaWV2ZU1lbWJlckNhcmRRUkNvZGVBY3Rpb24pLFxuICAgICAgZXhoYXVzdE1hcCgoe3BheWxvYWR9OiB7XG4gICAgICAgICAgcGF5bG9hZDogeyBtZW1iZXJJZDogc3RyaW5nLCBtZW1iZXJDYXJkSWQ6IHN0cmluZyB9XG4gICAgICAgIH0pID0+IHRoaXMubWVtYmVyQ2FyZFNlcnZpY2UuZ2V0TWVtYmVyQ2FyZFFSQ29kZShwYXlsb2FkLm1lbWJlcklkLCBwYXlsb2FkLm1lbWJlckNhcmRJZClcbiAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgIG1hcCgobWVtYmVyQ2FyZDogTWVtYmVyQ2FyZCkgPT4gcmV0cmlldmVNZW1iZXJDYXJkUVJDb2RlU3VjY2Vzc0FjdGlvbih7cGF5bG9hZDogbWVtYmVyQ2FyZH0pKSxcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4gb2YocmV0cmlldmVNZW1iZXJDYXJkUVJDb2RlRmFpbHVyZUFjdGlvbih7cGF5bG9hZDogZXJyb3J9KSkpXG4gICAgICAgICAgKVxuICAgICAgKVxuICAgIClcbiAgKTtcblxuICByZXRyaWV2ZVRpY2tldHMkID0gY3JlYXRlRWZmZWN0KCgpID0+IHRoaXMuYWN0aW9ucyRcbiAgICAucGlwZShcbiAgICAgIG9mVHlwZShyZXRyaWV2ZU1lbWJlckNhcmRUaWNrZXRzQWN0aW9uKSxcbiAgICAgIGV4aGF1c3RNYXAoKHtwYXlsb2FkfToge1xuICAgICAgICAgIHBheWxvYWQ6IHsgbWVtYmVySWQ6IHN0cmluZywgbWVtYmVyQ2FyZElkOiBzdHJpbmcgfVxuICAgICAgICB9KSA9PiB0aGlzLm1lbWJlckNhcmRTZXJ2aWNlLmdldE1lbWJlckNhcmRUaWNrZXRzKHBheWxvYWQubWVtYmVySWQsIHBheWxvYWQubWVtYmVyQ2FyZElkKVxuICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgbWFwKChjYXJkVGlja2V0czogQ29sbGVjdGlvbjxDYXJkVGlja2V0PikgPT4gcmV0cmlldmVNZW1iZXJDYXJkVGlja2V0c1N1Y2Nlc3NBY3Rpb24oe1xuICAgICAgICAgICAgICBwYXlsb2FkOiB7XG4gICAgICAgICAgICAgICAgbWVtYmVyQ2FyZElkOiBwYXlsb2FkLm1lbWJlckNhcmRJZCxcbiAgICAgICAgICAgICAgICB0aWNrZXRzOiBjYXJkVGlja2V0cy50b0FycmF5KClcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSkpLFxuICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiBvZihyZXRyaWV2ZU1lbWJlckNhcmRUaWNrZXRzRmFpbHVyZUFjdGlvbih7cGF5bG9hZDogZXJyb3J9KSkpXG4gICAgICAgICAgKVxuICAgICAgKVxuICAgICkpO1xufVxuIl19
|
|
@@ -15,4 +15,4 @@ export class MemberFeeEffects {
|
|
|
15
15
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: MemberFeeEffects, decorators: [{
|
|
16
16
|
type: Injectable
|
|
17
17
|
}] });
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtYmVyLWZlZS5lZmZlY3RzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YS1hY2Nlc3Mvc3JjL2xpYi9zdG9yZS9lZmZlY3RzL21lbWJlci1mZWUuZWZmZWN0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFOUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLDJCQUEyQixFQUFFLDJCQUEyQixHQUFHLE1BQU0sWUFBWSxDQUFDO0FBQzdHLE9BQU8sRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBS2pELE1BQU0sT0FBTyxnQkFBZ0I7SUFDbkIsUUFBUSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMzQixnQkFBZ0IsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUVwRCxlQUFlLEdBQUcsWUFBWSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUNyRCxNQUFNLENBQUMsb0JBQW9CLENBQUMsRUFDNUIsVUFBVSxDQUNSLENBQUMsRUFBQyxJQUFJLEVBQUUsTUFBTSxFQUdiLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FDMUQsR0FBRyxDQUNELENBQUMsSUFBMkIsRUFBRSxFQUFFLENBQUMsMkJBQTJCLENBQUMsRUFBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFDLENBQUMsQ0FDckYsQ0FDRixDQUNGLEVBQ0QsVUFBVSxDQUFDLENBQUMsS0FBd0IsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLDJCQUEyQixDQUFDLEVBQUMsT0FBTyxFQUFFLEtBQUssRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUM1RixDQUFDLENBQUM7dUdBakJRLGdCQUFnQjsyR0FBaEIsZ0JBQWdCOzsyRkFBaEIsZ0JBQWdCO2tCQUQ1QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3Rpb25zLCBjcmVhdGVFZmZlY3QsIG9mVHlwZSB9IGZyb20gJ0BuZ3J4L2VmZmVjdHMnO1xuaW1wb3J0IHsgQ29sbGVjdGlvbiwgTWVtYmVyRmVlLCBSb2xlIH0gZnJvbSAnLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7IE1lbWJlckZlZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcyc7XG5pbXBvcnQgeyBsaXN0TWVtYmVyRmVlc0FjdGlvbiwgbGlzdE1lbWJlckZlZXNGYWlsdXJlQWN0aW9uLCBsaXN0TWVtYmVyRmVlc1N1Y2Nlc3NBY3Rpb24sIH0gZnJvbSAnLi4vYWN0aW9ucyc7XG5pbXBvcnQgeyBleGhhdXN0TWFwLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgSHR0cEVycm9yUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE1lbWJlckZlZUVmZmVjdHMge1xuICBwcml2YXRlIGFjdGlvbnMkID0gaW5qZWN0KEFjdGlvbnMpO1xuICBwcml2YXRlIG1lbWJlckZlZVNlcnZpY2UgPSBpbmplY3QoTWVtYmVyRmVlU2VydmljZSk7XG5cbiAgbGlzdE1lbWJlckZlZXMkID0gY3JlYXRlRWZmZWN0KCgpID0+IHRoaXMuYWN0aW9ucyQucGlwZShcbiAgICBvZlR5cGUobGlzdE1lbWJlckZlZXNBY3Rpb24pLFxuICAgIGV4aGF1c3RNYXAoXG4gICAgICAoe3JvbGUsIGl0ZW1JZH06IHtcbiAgICAgICAgcm9sZTogUm9sZSxcbiAgICAgICAgaXRlbUlkOiBzdHJpbmdcbiAgICAgIH0pID0+IHRoaXMubWVtYmVyRmVlU2VydmljZS5nZXRNZW1iZXJGZWVzKHJvbGUsIGl0ZW1JZCkucGlwZShcbiAgICAgICAgbWFwKFxuICAgICAgICAgIChmZWVzOiBDb2xsZWN0aW9uPE1lbWJlckZlZT4pID0+IGxpc3RNZW1iZXJGZWVzU3VjY2Vzc0FjdGlvbih7ZmVlczogZmVlcy50b0FycmF5KCl9KSxcbiAgICAgICAgKSxcbiAgICAgICksXG4gICAgKSxcbiAgICBjYXRjaEVycm9yKChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IG9mKGxpc3RNZW1iZXJGZWVzRmFpbHVyZUFjdGlvbih7cGF5bG9hZDogZXJyb3J9KSkpLFxuICApKTtcbn1cbiJdfQ==
|