@hmcts/ccpay-web-component 6.3.1-beta07 → 6.3.2-beta01

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.
@@ -47,7 +47,6 @@ export class PaymentLibComponent {
47
47
  LOGGEDINUSERROLES;
48
48
  LOGGEDINUSEREMAIL;
49
49
  isFromServiceRequestPage;
50
- telephonySelectionEnable;
51
50
  paymentMethod;
52
51
  bspaymentdcn;
53
52
  unProcessedPaymentServiceId = null;
@@ -239,7 +238,7 @@ export class PaymentLibComponent {
239
238
  return false;
240
239
  }
241
240
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PaymentLibComponent, deps: [{ token: i1.PaymentLibService }, { token: i0.ChangeDetectorRef }, { token: i2.OrderslistService }], target: i0.ɵɵFactoryTarget.Component });
242
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: PaymentLibComponent, selector: "ccpay-payment-lib", inputs: { API_ROOT: "API_ROOT", BULKSCAN_API_ROOT: "BULKSCAN_API_ROOT", REFUNDS_API_ROOT: "REFUNDS_API_ROOT", NOTIFICATION_API_ROOT: "NOTIFICATION_API_ROOT", CARDPAYMENTRETURNURL: "CARDPAYMENTRETURNURL", CCD_CASE_NUMBER: "CCD_CASE_NUMBER", EXC_REFERENCE: "EXC_REFERENCE", PAYMENT_METHOD: "PAYMENT_METHOD", VIEW: "VIEW", VIEWSERVICE: "VIEWSERVICE", PAYMENT_GROUP_REF: "PAYMENT_GROUP_REF", TAKEPAYMENT: "TAKEPAYMENT", SERVICEREQUEST: "SERVICEREQUEST", DCN_NUMBER: "DCN_NUMBER", SELECTED_OPTION: "SELECTED_OPTION", ISBSENABLE: "ISBSENABLE", ISSFENABLE: "ISSFENABLE", ISTURNOFF: "ISTURNOFF", CASETYPE: "CASETYPE", ISPAYMENTSTATUSENABLED: "ISPAYMENTSTATUSENABLED", rootUrl: "rootUrl", REFUNDLIST: "REFUNDLIST", USERID: "USERID", LOGGEDINUSERROLES: "LOGGEDINUSERROLES", LOGGEDINUSEREMAIL: "LOGGEDINUSEREMAIL", isFromServiceRequestPage: "isFromServiceRequestPage", telephonySelectionEnable: "telephonySelectionEnable" }, providers: [{ provide: 'PAYMENT_LIB', useExisting: forwardRef(() => PaymentLibComponent) }], ngImport: i0, template: `
241
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: PaymentLibComponent, selector: "ccpay-payment-lib", inputs: { API_ROOT: "API_ROOT", BULKSCAN_API_ROOT: "BULKSCAN_API_ROOT", REFUNDS_API_ROOT: "REFUNDS_API_ROOT", NOTIFICATION_API_ROOT: "NOTIFICATION_API_ROOT", CARDPAYMENTRETURNURL: "CARDPAYMENTRETURNURL", CCD_CASE_NUMBER: "CCD_CASE_NUMBER", EXC_REFERENCE: "EXC_REFERENCE", PAYMENT_METHOD: "PAYMENT_METHOD", VIEW: "VIEW", VIEWSERVICE: "VIEWSERVICE", PAYMENT_GROUP_REF: "PAYMENT_GROUP_REF", TAKEPAYMENT: "TAKEPAYMENT", SERVICEREQUEST: "SERVICEREQUEST", DCN_NUMBER: "DCN_NUMBER", SELECTED_OPTION: "SELECTED_OPTION", ISBSENABLE: "ISBSENABLE", ISSFENABLE: "ISSFENABLE", ISTURNOFF: "ISTURNOFF", CASETYPE: "CASETYPE", ISPAYMENTSTATUSENABLED: "ISPAYMENTSTATUSENABLED", rootUrl: "rootUrl", REFUNDLIST: "REFUNDLIST", USERID: "USERID", LOGGEDINUSERROLES: "LOGGEDINUSERROLES", LOGGEDINUSEREMAIL: "LOGGEDINUSEREMAIL", isFromServiceRequestPage: "isFromServiceRequestPage" }, providers: [{ provide: 'PAYMENT_LIB', useExisting: forwardRef(() => PaymentLibComponent) }], ngImport: i0, template: `
243
242
  <ccpay-refund-list [USERID]="USERID" [LOGGEDINUSERROLES]="LOGGEDINUSERROLES" [LOGGEDINUSEREMAIL]="LOGGEDINUSEREMAIL" *ngIf="viewName === 'refund-list'"></ccpay-refund-list>
244
243
  <ccpay-payment-list *ngIf="viewName === 'payment-list'"></ccpay-payment-list>
245
244
  <ccpay-refund-status
@@ -272,12 +271,11 @@ export class PaymentLibComponent {
272
271
  [paymentGroupRef]="paymentGroupReference"
273
272
  [isTurnOff]="ISTURNOFF"
274
273
  [caseType]="CASETYPE"
275
- [telephonySelectionEnable] ="telephonySelectionEnable"
276
274
  ></ccpay-fee-summary>
277
275
  <ccpay-reports *ngIf="viewName === 'reports'"
278
276
  [ISPAYMENTSTATUSENABLED] = "ISPAYMENTSTATUSENABLED"
279
277
  ></ccpay-reports>
280
- `, isInline: true, dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.PaymentViewComponent, selector: "ccpay-payment-view", inputs: ["isTurnOff", "isTakePayment", "caseType", "orderRef", "orderStatus", "orderTotalPayments", "payment", "LOGGEDINUSERROLES", "ISPAYMENTSTATUSENABLED", "orderParty", "orderCreated", "orderCCDEvent", "orderFeesTotal", "orderRemissionTotal", "orderDetail", "isServiceRequest"] }, { kind: "component", type: i5.CaseTransactionsComponent, selector: "ccpay-case-transactions", inputs: ["LOGGEDINUSERROLES", "isTakePayment", "isFromServiceRequestPage"] }, { kind: "component", type: i6.RefundStatusComponent, selector: "ccpay-refund-status", inputs: ["LOGGEDINUSERROLES", "API_ROOT", "ccdCaseNumber", "isTurnOff", "orderParty"] }, { kind: "component", type: i7.PbaPaymentComponent, selector: "ccpay-pba-payment", inputs: ["pbaPayOrderRef"] }, { kind: "component", type: i8.PaymentListComponent, selector: "ccpay-payment-list" }, { kind: "component", type: i9.ProcessRefundComponent, selector: "ccpay-process-refund", inputs: ["refundReference", "refundlistsource"] }, { kind: "component", type: i10.RefundListComponent, selector: "ccpay-refund-list", inputs: ["USERID", "LOGGEDINUSERROLES", "LOGGEDINUSEREMAIL"] }, { kind: "component", type: i11.MarkUnidentifiedPaymentComponent, selector: "app-mark-unidentified-payment", inputs: ["caseType"] }, { kind: "component", type: i12.MarkUnsolicitedPaymentComponent, selector: "app-mark-unsolicited-payment", inputs: ["caseType"] }, { kind: "component", type: i13.AllocatePaymentsComponent, selector: "app-allocate-payments", inputs: ["isTurnOff", "caseType"], outputs: ["reasonEventEmitter", "explanationEventEmitter"] }, { kind: "component", type: i14.FeeSummaryComponent, selector: "ccpay-fee-summary", inputs: ["paymentGroupRef", "ccdCaseNumber", "isTurnOff", "caseType", "telephonySelectionEnable"] }, { kind: "component", type: i15.ReportsComponent, selector: "ccpay-reports", inputs: ["ISPAYMENTSTATUSENABLED"] }] });
278
+ `, isInline: true, dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.PaymentViewComponent, selector: "ccpay-payment-view", inputs: ["isTurnOff", "isTakePayment", "caseType", "orderRef", "orderStatus", "orderTotalPayments", "payment", "LOGGEDINUSERROLES", "ISPAYMENTSTATUSENABLED", "orderParty", "orderCreated", "orderCCDEvent", "orderFeesTotal", "orderRemissionTotal", "orderDetail", "isServiceRequest"] }, { kind: "component", type: i5.CaseTransactionsComponent, selector: "ccpay-case-transactions", inputs: ["LOGGEDINUSERROLES", "isTakePayment", "isFromServiceRequestPage"] }, { kind: "component", type: i6.RefundStatusComponent, selector: "ccpay-refund-status", inputs: ["LOGGEDINUSERROLES", "API_ROOT", "ccdCaseNumber", "isTurnOff", "orderParty"] }, { kind: "component", type: i7.PbaPaymentComponent, selector: "ccpay-pba-payment", inputs: ["pbaPayOrderRef"] }, { kind: "component", type: i8.PaymentListComponent, selector: "ccpay-payment-list" }, { kind: "component", type: i9.ProcessRefundComponent, selector: "ccpay-process-refund", inputs: ["refundReference", "refundlistsource"] }, { kind: "component", type: i10.RefundListComponent, selector: "ccpay-refund-list", inputs: ["USERID", "LOGGEDINUSERROLES", "LOGGEDINUSEREMAIL"] }, { kind: "component", type: i11.MarkUnidentifiedPaymentComponent, selector: "app-mark-unidentified-payment", inputs: ["caseType"] }, { kind: "component", type: i12.MarkUnsolicitedPaymentComponent, selector: "app-mark-unsolicited-payment", inputs: ["caseType"] }, { kind: "component", type: i13.AllocatePaymentsComponent, selector: "app-allocate-payments", inputs: ["isTurnOff", "caseType"], outputs: ["reasonEventEmitter", "explanationEventEmitter"] }, { kind: "component", type: i14.FeeSummaryComponent, selector: "ccpay-fee-summary", inputs: ["paymentGroupRef", "ccdCaseNumber", "isTurnOff", "caseType"] }, { kind: "component", type: i15.ReportsComponent, selector: "ccpay-reports", inputs: ["ISPAYMENTSTATUSENABLED"] }] });
281
279
  }
282
280
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PaymentLibComponent, decorators: [{
283
281
  type: Component,
@@ -316,7 +314,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
316
314
  [paymentGroupRef]="paymentGroupReference"
317
315
  [isTurnOff]="ISTURNOFF"
318
316
  [caseType]="CASETYPE"
319
- [telephonySelectionEnable] ="telephonySelectionEnable"
320
317
  ></ccpay-fee-summary>
321
318
  <ccpay-reports *ngIf="viewName === 'reports'"
322
319
  [ISPAYMENTSTATUSENABLED] = "ISPAYMENTSTATUSENABLED"
@@ -402,8 +399,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
402
399
  }], isFromServiceRequestPage: [{
403
400
  type: Input,
404
401
  args: ['isFromServiceRequestPage']
405
- }], telephonySelectionEnable: [{
406
- type: Input,
407
- args: ['telephonySelectionEnable']
408
402
  }] } });
409
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5bWVudC1saWIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvcGF5bWVudC1saWIvc3JjL2xpYi9wYXltZW50LWxpYi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFTLE1BQU0sZUFBZSxDQUFDO0FBQ3RGLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBRXhELE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLCtCQUErQixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7OztBQXFEaEUsTUFBTSxPQUFPLG1CQUFtQjtJQXFFVjtJQUNWO0lBQ0E7SUF0RVMsUUFBUSxDQUFTO0lBQ1IsaUJBQWlCLENBQVM7SUFDM0IsZ0JBQWdCLENBQVM7SUFDcEIscUJBQXFCLENBQVM7SUFDL0Isb0JBQW9CLENBQVM7SUFDbEMsZUFBZSxDQUFTO0lBQzFCLGFBQWEsQ0FBUztJQUNyQixjQUFjLENBQVM7SUFDakMsSUFBSSxDQUFTO0lBQ04sV0FBVyxDQUFTO0lBQ2QsaUJBQWlCLENBQVU7SUFDakMsV0FBVyxDQUFVO0lBQ2xCLGNBQWMsQ0FBUztJQUMzQixVQUFVLENBQVM7SUFDZCxlQUFlLENBQVM7SUFDN0IsVUFBVSxDQUFVO0lBQ3BCLFVBQVUsQ0FBVTtJQUNyQixTQUFTLENBQVU7SUFDcEIsUUFBUSxDQUFTO0lBQ0gsc0JBQXNCLENBQVU7SUFDL0MsT0FBTyxDQUFVO0lBQ2QsVUFBVSxDQUFTO0lBQ3ZCLE1BQU0sQ0FBUztJQUNKLGlCQUFpQixDQUFRO0lBQ3pCLGlCQUFpQixDQUFTO0lBQ25CLHdCQUF3QixDQUFVO0lBQ2xDLHdCQUF3QixDQUFVO0lBSXJFLGFBQWEsQ0FBUztJQUN0QixZQUFZLENBQVM7SUFDckIsMkJBQTJCLEdBQVcsSUFBSSxDQUFDO0lBQzNDLHFCQUFx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QUMsWUFBWTtnQkFDRixNQUFNO3NCQUF0QixLQUFLO3VCQUFDLFFBQVE7Z0JBQ2EsaUJBQWlCO3NCQUE1QyxLQUFLO3VCQUFDLG1CQUFtQjtnQkFDRSxpQkFBaUI7c0JBQTVDLEtBQUs7dUJBQUMsbUJBQW1CO2dCQUNTLHdCQUF3QjtzQkFBMUQsS0FBSzt1QkFBQywwQkFBMEI7Z0JBQ0Usd0JBQXdCO3NCQUExRCxLQUFLO3VCQUFDLDBCQUEwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgZm9yd2FyZFJlZiwgSW5wdXQsIE9uSW5pdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1BheW1lbnRMaWJTZXJ2aWNlfSBmcm9tICcuL3BheW1lbnQtbGliLnNlcnZpY2UnO1xuaW1wb3J0IHtJQlNQYXltZW50c30gZnJvbSAnLi9pbnRlcmZhY2VzL0lCU1BheW1lbnRzJztcbmltcG9ydCB7T3JkZXJzbGlzdFNlcnZpY2V9IGZyb20gJy4vc2VydmljZXMvb3JkZXJzbGlzdC5zZXJ2aWNlJztcbmltcG9ydCB7SVBheW1lbnR9IGZyb20gJy4vaW50ZXJmYWNlcy9JUGF5bWVudCc7XG5pbXBvcnQge0lQYXltZW50R3JvdXB9IGZyb20gXCIuL2ludGVyZmFjZXMvSVBheW1lbnRHcm91cFwiO1xuaW1wb3J0IHtJUmVmdW5kTGlzdH0gZnJvbSBcIi4vaW50ZXJmYWNlcy9JUmVmdW5kTGlzdFwiO1xuaW1wb3J0IHtJRmVlfSBmcm9tIFwiLi9pbnRlcmZhY2VzL0lGZWVcIjtcbmltcG9ydCB7SVJlbWlzc2lvbn0gZnJvbSBcIi4vaW50ZXJmYWNlcy9JUmVtaXNzaW9uXCI7XG5pbXBvcnQge0FkZFJldHJvUmVtaXNzaW9uUmVxdWVzdH0gZnJvbSBcIi4vaW50ZXJmYWNlcy9BZGRSZXRyb1JlbWlzc2lvblJlcXVlc3RcIjtcblxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjY3BheS1wYXltZW50LWxpYicsXG4gIHRlbXBsYXRlOiBgXG4gIDxjY3BheS1yZWZ1bmQtbGlzdCBbVVNFUklEXT1cIlVTRVJJRFwiIFtMT0dHRURJTlVTRVJST0xFU109XCJMT0dHRURJTlVTRVJST0xFU1wiIFtMT0dHRURJTlVTRVJFTUFJTF09XCJMT0dHRURJTlVTRVJFTUFJTFwiICpuZ0lmPVwidmlld05hbWUgPT09ICdyZWZ1bmQtbGlzdCdcIj48L2NjcGF5LXJlZnVuZC1saXN0PlxuICAgIDxjY3BheS1wYXltZW50LWxpc3QgKm5nSWY9XCJ2aWV3TmFtZSA9PT0gJ3BheW1lbnQtbGlzdCdcIj48L2NjcGF5LXBheW1lbnQtbGlzdD5cbiAgICA8Y2NwYXktcmVmdW5kLXN0YXR1c1xuICAgIFtMT0dHRURJTlVTRVJST0xFU109XCJMT0dHRURJTlVTRVJST0xFU1wiXG4gICAgW0FQSV9ST09UXT1cIkFQSV9ST09UXCJcbiAgICAqbmdJZj1cInZpZXdOYW1lID09PSAncmVmdW5kc3RhdHVzbGlzdCdcIj4gPC9jY3BheS1yZWZ1bmQtc3RhdHVzID5cbiAgICA8Y2NwYXktcGF5bWVudC12aWV3IFtMT0dHRURJTlVTRVJST0xFU109XCJMT0dHRURJTlVTRVJST0xFU1wiICpuZ0lmPVwidmlld05hbWUgPT09ICdwYXltZW50LXZpZXcnXCJcbiAgICBbaXNUdXJuT2ZmXT1cIklTVFVSTk9GRlwiIFtpc1Rha2VQYXltZW50XT1cIlRBS0VQQVlNRU5UXCIgIFtjYXNlVHlwZV09XCJDQVNFVFlQRVwiXG4gICAgW0lTUEFZTUVOVFNUQVRVU0VOQUJMRURdID0gXCJJU1BBWU1FTlRTVEFUVVNFTkFCTEVEXCJcbiAgICA+PC9jY3BheS1wYXltZW50LXZpZXc+XG5cbiAgICA8Y2NwYXktcHJvY2Vzcy1yZWZ1bmQgKm5nSWY9XCJ2aWV3TmFtZSA9PT0gJ3Byb2Nlc3MtcmVmdW5kJ1wiXG4gICAgW3JlZnVuZFJlZmVyZW5jZV09XCJyZWZ1bmRSZWZlcmVuY2VcIlxuICAgIFtyZWZ1bmRsaXN0c291cmNlXT1cInJlZnVuZGxpc3Rzb3VyY2VcIlxuICAgID48L2NjcGF5LXByb2Nlc3MtcmVmdW5kPlxuICAgIDxjY3BheS1wYmEtcGF5bWVudCAqbmdJZj1cInZpZXdOYW1lID09PSAncGJhLXBheW1lbnQnXCJcbiAgICBbcGJhUGF5T3JkZXJSZWZdPVwicGJhUGF5T3JkZXJSZWZcIlxuICAgID48L2NjcGF5LXBiYS1wYXltZW50PlxuICAgIDxjY3BheS1jYXNlLXRyYW5zYWN0aW9ucyBbaXNUYWtlUGF5bWVudF09XCJpc1Rha2VQYXltZW50XCIgW2lzRnJvbVNlcnZpY2VSZXF1ZXN0UGFnZV09XCJpc0Zyb21TZXJ2aWNlUmVxdWVzdFBhZ2VcIiBbTE9HR0VESU5VU0VSUk9MRVNdPVwiTE9HR0VESU5VU0VSUk9MRVNcIiAqbmdJZj1cInZpZXdOYW1lID09PSAnY2FzZS10cmFuc2FjdGlvbnMnXCI+PC9jY3BheS1jYXNlLXRyYW5zYWN0aW9ucz5cbiAgICA8YXBwLW1hcmstdW5pZGVudGlmaWVkLXBheW1lbnQgKm5nSWY9XCJ2aWV3TmFtZSA9PT0gJ3VuaWRlbnRpZmllZFBhZ2UnXCJcbiAgICBbY2FzZVR5cGVdPVwiQ0FTRVRZUEVcIj48L2FwcC1tYXJrLXVuaWRlbnRpZmllZC1wYXltZW50PlxuICAgIDxhcHAtbWFyay11bnNvbGljaXRlZC1wYXltZW50ICpuZ0lmPVwidmlld05hbWUgPT09ICd1bnNvbGljaXRlZFBhZ2UnXCJcbiAgICBbY2FzZVR5cGVdPVwiQ0FTRVRZUEVcIj48L2FwcC1tYXJrLXVuc29saWNpdGVkLXBheW1lbnQ+XG4gICAgPGFwcC1hbGxvY2F0ZS1wYXltZW50cyAqbmdJZj1cInZpZXdOYW1lID09PSAnYWxsb2NhdGUtcGF5bWVudHMnXCJcbiAgICBbaXNUdXJuT2ZmXT1cIklTVFVSTk9GRlwiXG4gICAgW2Nhc2VUeXBlXT1cIkNBU0VUWVBFXCJcbiAgICA+PC9hcHAtYWxsb2NhdGUtcGF5bWVudHM+XG4gICAgPGNjcGF5LWZlZS1zdW1tYXJ5ICpuZ0lmPVwidmlld05hbWUgPT09ICdmZWUtc3VtbWFyeSdcIlxuICAgICAgW2NjZENhc2VOdW1iZXJdPVwiQ0NEX0NBU0VfTlVNQkVSXCJcbiAgICAgIFtwYXltZW50R3JvdXBSZWZdPVwicGF5bWVudEdyb3VwUmVmZXJlbmNlXCJcbiAgICAgIFtpc1R1cm5PZmZdPVwiSVNUVVJOT0ZGXCJcbiAgICAgIFtjYXNlVHlwZV09XCJDQVNFVFlQRVwiXG4gICAgICBbdGVsZXBob255U2VsZWN0aW9uRW5hYmxlXSA9XCJ0ZWxlcGhvbnlTZWxlY3Rpb25FbmFibGVcIlxuICAgICAgPjwvY2NwYXktZmVlLXN1bW1hcnk+XG4gICAgPGNjcGF5LXJlcG9ydHMgKm5nSWY9XCJ2aWV3TmFtZSA9PT0gJ3JlcG9ydHMnXCJcbiAgICBbSVNQQVlNRU5UU1RBVFVTRU5BQkxFRF0gPSBcIklTUEFZTUVOVFNUQVRVU0VOQUJMRURcIlxuICAgID48L2NjcGF5LXJlcG9ydHM+XG4gICAgYCxcbiAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiAnUEFZTUVOVF9MSUInLCB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBQYXltZW50TGliQ29tcG9uZW50KSB9XVxufSlcblxuZXhwb3J0IGNsYXNzIFBheW1lbnRMaWJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoJ0FQSV9ST09UJykgQVBJX1JPT1Q6IHN0cmluZztcbiAgQElucHV0KCdCVUxLU0NBTl9BUElfUk9PVCcpIEJVTEtTQ0FOX0FQSV9ST09UOiBzdHJpbmc7XG4gIEBJbnB1dCgnUkVGVU5EU19BUElfUk9PVCcpIFJFRlVORFNfQVBJX1JPT1Q6IHN0cmluZztcbiAgQElucHV0KCdOT1RJRklDQVRJT05fQVBJX1JPT1QnKSBOT1RJRklDQVRJT05fQVBJX1JPT1Q6IHN0cmluZztcbiAgQElucHV0KCdDQVJEUEFZTUVOVFJFVFVSTlVSTCcpIENBUkRQQVlNRU5UUkVUVVJOVVJMOiBzdHJpbmc7XG4gIEBJbnB1dCgnQ0NEX0NBU0VfTlVNQkVSJykgQ0NEX0NBU0VfTlVNQkVSOiBzdHJpbmc7XG4gIEBJbnB1dCgnRVhDX1JFRkVSRU5DRScpIEVYQ19SRUZFUkVOQ0U6IHN0cmluZztcbiAgQElucHV0KCdQQVlNRU5UX01FVEhPRCcpIFBBWU1FTlRfTUVUSE9EOiBzdHJpbmc7XG4gIEBJbnB1dCgnVklFVycpIFZJRVc6IHN0cmluZztcbiAgQElucHV0KCdWSUVXU0VSVklDRScpIFZJRVdTRVJWSUNFOiBzdHJpbmc7XG4gIEBJbnB1dCgnUEFZTUVOVF9HUk9VUF9SRUYnKSBQQVlNRU5UX0dST1VQX1JFRj86IHN0cmluZztcbiAgQElucHV0KCdUQUtFUEFZTUVOVCcpIFRBS0VQQVlNRU5UOiBib29sZWFuO1xuICBASW5wdXQoJ1NFUlZJQ0VSRVFVRVNUJykgU0VSVklDRVJFUVVFU1Q6IHN0cmluZztcbiAgQElucHV0KCdEQ05fTlVNQkVSJykgRENOX05VTUJFUjogc3RyaW5nO1xuICBASW5wdXQoJ1NFTEVDVEVEX09QVElPTicpIFNFTEVDVEVEX09QVElPTjogc3RyaW5nO1xuICBASW5wdXQoJ0lTQlNFTkFCTEUnKSBJU0JTRU5BQkxFOiBCb29sZWFuO1xuICBASW5wdXQoJ0lTU0ZFTkFCTEUnKSBJU1NGRU5BQkxFOiBib29sZWFuO1xuICBASW5wdXQoJ0lTVFVSTk9GRicpIElTVFVSTk9GRjogYm9vbGVhbjtcbiAgQElucHV0KCdDQVNFVFlQRScpIENBU0VUWVBFOiBzdHJpbmc7XG4gIEBJbnB1dCgnSVNQQVlNRU5UU1RBVFVTRU5BQkxFRCcpIElTUEFZTUVOVFNUQVRVU0VOQUJMRUQ6IGJvb2xlYW47XG4gIEBJbnB1dCgncm9vdFVybCcpIHJvb3RVcmw6IGJvb2xlYW47XG4gIEBJbnB1dCgnUkVGVU5ETElTVCcpIFJFRlVORExJU1Q6IHN0cmluZztcbiAgQElucHV0KCdVU0VSSUQnKSBVU0VSSUQ6IHN0cmluZztcbiAgQElucHV0KCdMT0dHRURJTlVTRVJST0xFUycpIExPR0dFRElOVVNFUlJPTEVTOiBhbnlbXTtcbiAgQElucHV0KCdMT0dHRURJTlVTRVJFTUFJTCcpIExPR0dFRElOVVNFUkVNQUlMOiBzdHJpbmc7XG4gIEBJbnB1dCgnaXNGcm9tU2VydmljZVJlcXVlc3RQYWdlJykgaXNGcm9tU2VydmljZVJlcXVlc3RQYWdlOiBib29sZWFuO1xuICBASW5wdXQoJ3RlbGVwaG9ueVNlbGVjdGlvbkVuYWJsZScpIHRlbGVwaG9ueVNlbGVjdGlvbkVuYWJsZTogYm9vbGVhbjtcblxuXG5cbiAgcGF5bWVudE1ldGhvZDogc3RyaW5nO1xuICBic3BheW1lbnRkY246IHN0cmluZztcbiAgdW5Qcm9jZXNzZWRQYXltZW50U2VydmljZUlkOiBzdHJpbmcgPSBudWxsO1xuICBwYXltZW50R3JvdXBSZWZlcmVuY2U6IHN0cmluZztcbiAgcGF5bWVudFJlZmVyZW5jZTogc3RyaW5nO1xuICByZWZ1bmRSZWZlcmVuY2U6IHN0cmluZztcbiAgaXNGcm9tUGF5QnViYmxlOiBib29sZWFuID0gZmFsc2U7XG4gIHJlZnVuZGxpc3Rzb3VyY2U6IGFueTtcbiAgdmlld05hbWU6IHN0cmluZztcbiAgaXNUdXJuT2ZmOiBib29sZWFuO1xuICBjYXNlVHlwZTogc3RyaW5nO1xuICB1blByb2Nlc3NlZFBheW1lbnQ6IElCU1BheW1lbnRzID0gbnVsbDtcbiAgaXNSZWZ1bmRTdGF0dXNWaWV3OiBib29sZWFuO1xuICBpc1JlZGlyZWN0RnJvbUNhc2VUcmFuc2FjdGlvblBhZ2U6IHN0cmluZztcbiAgaXNDYWxsRnJvbVJlZnVuZExpc3Q6IGJvb2xlYW47XG4gIGlzRnJvbVJlZnVuZFN0YXR1c1BhZ2U6IGJvb2xlYW47XG4gIGlzY2FuY2VsQ2xpY2tlZDogYm9vbGVhbjtcbiAgaXNGcm9tUGF5bWVudERldGFpbFBhZ2U6IGJvb2xlYW47XG4gIHBiYVBheU9yZGVyUmVmOiBJUGF5bWVudDtcbiAgaXNUYWtlUGF5bWVudDogYm9vbGVhbjtcblxuICBvcmRlckRldGFpbDogYW55W107XG4gIG9yZGVyUmVmOiBzdHJpbmc7XG4gIG9yZGVyU3RhdHVzOiBzdHJpbmc7XG4gIG9yZGVyUGFydHk6IHN0cmluZztcbiAgb3JkZXJDcmVhdGVkOiBEYXRlO1xuICBvcmRlckNDREV2ZW50OiBzdHJpbmc7XG4gIHNlcnZpY2VSZXF1ZXN0VmFsdWU6IHN0cmluZztcbiAgb3JkZXJBZGRCdG5FbmFibGU6IGJvb2xlYW47XG4gIG9yZGVyRmVlc1RvdGFsOiBudW1iZXIgPSAwLjAwO1xuICBvcmRlclJlbWlzc2lvblRvdGFsOiBudW1iZXIgPSAwLjAwO1xuICBvcmRlclRvdGFsUGF5bWVudHM6IG51bWJlciA9IDAuMDA7XG4gIG9yZGVyUGVuZGluZ1BheW1lbnRzOiBudW1iZXIgPSAwLjAwO1xuXG4gIHBheW1lbnRHcm91cDpJUGF5bWVudEdyb3VwXG4gIG92ZXJQYXltZW50QW1vdW50OiBudW1iZXIgPSAwLjAwO1xuICByZWZ1bmRzOiBJUmVmdW5kTGlzdFtdO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcGF5bWVudExpYlNlcnZpY2U6IFBheW1lbnRMaWJTZXJ2aWNlLFxuICAgIHByaXZhdGUgY2Q6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgT3JkZXJzbGlzdFNlcnZpY2U6IE9yZGVyc2xpc3RTZXJ2aWNlKSB7IH1cbiAgbmdBZnRlckNvbnRlbnRDaGVja2VkKCk6IHZvaWQge1xuICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cblxuICBuZ09uSW5pdCgpIHtcblxuICAgIHRoaXMucGF5bWVudExpYlNlcnZpY2Uuc2V0QXBpUm9vdFVybCh0aGlzLkFQSV9ST09UKTtcbiAgICB0aGlzLnBheW1lbnRMaWJTZXJ2aWNlLnNldEJ1bGtTY2FuQXBpUm9vdFVybCh0aGlzLkJVTEtTQ0FOX0FQSV9ST09UKTtcbiAgICB0aGlzLnBheW1lbnRMaWJTZXJ2aWNlLnNldFJlZnVuZG5kc0FwaVJvb3RVcmwodGhpcy5SRUZVTkRTX0FQSV9ST09UKTtcbiAgICB0aGlzLnBheW1lbnRMaWJTZXJ2aWNlLnNldE5vdGljYXRpb25BcGlSb290VXJsKHRoaXMuTk9USUZJQ0FUSU9OX0FQSV9ST09UKTtcbiAgICB0aGlzLnBheW1lbnRMaWJTZXJ2aWNlLnNldENhcmRQYXltZW50UmV0dXJuVXJsKHRoaXMuQ0FSRFBBWU1FTlRSRVRVUk5VUkwpO1xuXG4gICAgaWYgKHRoaXMuTE9HR0VESU5VU0VSUk9MRVMubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5PcmRlcnNsaXN0U2VydmljZS5zZXRVc2VyUm9sZXNMaXN0KHRoaXMuTE9HR0VESU5VU0VSUk9MRVMpO1xuICAgIH1cbiAgICBpZiAodGhpcy5QQVlNRU5UX0dST1VQX1JFRikge1xuICAgICAgdGhpcy5wYXltZW50R3JvdXBSZWZlcmVuY2UgPSB0aGlzLlBBWU1FTlRfR1JPVVBfUkVGO1xuICAgIH1cbiAgICBpZiAodGhpcy5EQ05fTlVNQkVSKSB7XG4gICAgICB0aGlzLmJzcGF5bWVudGRjbiA9IHRoaXMuRENOX05VTUJFUjtcbiAgICB9XG4gICAgaWYgKHRoaXMuUkVGVU5ETElTVCA9PT0gXCJ0cnVlXCIpIHtcbiAgICAgIHRoaXMuVklFVyA9ICdyZWZ1bmQtbGlzdCc7XG4gICAgICB0aGlzLnZpZXdOYW1lID0gdGhpcy5WSUVXO1xuICAgIH1cbiAgICBpZiAodGhpcy5WSUVXID09PSAnZmVlLXN1bW1hcnknKSB7XG4gICAgICB0aGlzLnZpZXdOYW1lID0gJ2ZlZS1zdW1tYXJ5JztcbiAgICB9IGVsc2UgaWYgKHRoaXMuVklFVyAhPT0gJ3JlcG9ydHMnICYmIHRoaXMuVklFVyAhPT0gJ3JlZnVuZC1saXN0Jykge1xuICAgICAgdGhpcy52aWV3TmFtZSA9ICdjYXNlLXRyYW5zYWN0aW9ucyc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudmlld05hbWUgPSB0aGlzLlZJRVc7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaXNUYWtlUGF5bWVudCkge1xuICAgICAgdGhpcy5UQUtFUEFZTUVOVCA9IHRydWU7XG4gICAgfVxuICAgIGlmICh0aGlzLkFQSV9ST09UID09ICdhcGkvcGF5bWVudC1oaXN0b3J5Jykge1xuICAgICAgdGhpcy5pc0Zyb21QYXlCdWJibGUgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG5cbiAgLyoqXG4gICAqIEFkZHMgYSByZW1pc3Npb24gdG8gdGhlIHBheW1lbnQgZ3JvdXAgdXNpbmcgZGF0YSBmcm9tIHRoZSBwcm92aWRlZCBmb3JtIGdyb3VwLlxuICAgKlxuICAgKiBUaGlzIG1ldGhvZCBjaGVja3MgaWYgdGhlIGBwYXltZW50R3JvdXBgIGlzIG5vdCBudWxsIGJlZm9yZSBhdHRlbXB0aW5nIHRvIGFkZCB0aGUgcmVtaXNzaW9uLlxuICAgKiBJZiB0aGUgYHBheW1lbnRHcm91cGAgZXhpc3RzLCBhIG5ldyByZW1pc3Npb24gaXMgY3JlYXRlZCB1c2luZyB0aGUgdmFsdWVzIGZyb20gdGhlIHByb3ZpZGVkXG4gICAqIGZvcm0gZ3JvdXAgKGBjdXJyZW50UmVtaXNzaW9uRm9ybUdyb3VwYCksIGFuZCBpdCBpcyBwdXNoZWQgaW50byB0aGUgYHJlbWlzc2lvbnNgIGFycmF5IG9mIHRoZSBwYXltZW50IGdyb3VwLlxuICAgKlxuICAgKiBAcGFyYW0ge0FkZFJldHJvUmVtaXNzaW9uUmVxdWVzdH0gY3VycmVudFJlbWlzc2lvbkZvcm1Hcm91cCAtIFRoZSBmb3JtIGdyb3VwIGNvbnRhaW5pbmcgcmVtaXNzaW9uIGRhdGFcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZS5nLiwgYGh3Zl9hbW91bnRgLCBgaHdmX3JlZmVyZW5jZWApLlxuICAgKi9cbiAgYWRkUmVtaXNzaW9uKGN1cnJlbnRSZW1pc3Npb25Gb3JtR3JvdXA6IEFkZFJldHJvUmVtaXNzaW9uUmVxdWVzdCkge1xuXG4gICAgaWYgKHRoaXMucGF5bWVudEdyb3VwICE9IG51bGwpIHtcblxuICAgICAgY29uc3QgcmVtaXNzaW9uOiBJUmVtaXNzaW9uID0ge1xuXG4gICAgICAgIHJlbWlzc2lvbl9yZWZlcmVuY2U6IG51bGwsXG4gICAgICAgIGh3Zl9yZWZlcmVuY2U6IGN1cnJlbnRSZW1pc3Npb25Gb3JtR3JvdXAuaHdmX3JlZmVyZW5jZSxcbiAgICAgICAgaHdmX2Ftb3VudDogY3VycmVudFJlbWlzc2lvbkZvcm1Hcm91cC5od2ZfYW1vdW50LFxuICAgICAgICBiZW5lZmljaWFyeV9uYW1lOiBudWxsLFxuICAgICAgICBjY2RfY2FzZV9udW1iZXI6IG51bGwsXG4gICAgICAgIGZlZV9jb2RlOiBudWxsLFxuICAgICAgICBkYXRlX2NyZWF0ZWQ6IG51bGwsXG4gICAgICAgIGZlZV9pZDogbnVsbCxcbiAgICAgICAgaXNzdWVfcmVmdW5kX2FkZF9yZWZ1bmRfYWRkX3JlbWlzc2lvbjogZmFsc2UsXG4gICAgICAgIGFkZF9yZWZ1bmQ6IGZhbHNlLFxuICAgICAgICBvdmVyYWxsX2JhbGFuY2U6Y3VycmVudFJlbWlzc2lvbkZvcm1Hcm91cC5od2ZfYW1vdW50LFxuICAgICAgICBhY29sbGVjdGlvbl9vZl9mZXNzOiB0cnVlXG4gICAgICB9O1xuICAgICAgdGhpcy5wYXltZW50R3JvdXAucmVtaXNzaW9ucy5wdXNoKHJlbWlzc2lvbik7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFRoaXMgbWV0aG9kIGlzIHVzZWQgdG8gc2V0IHRoZSBwYXltZW50R3JvdXAgZm9yIHRoZSBhZGQgcmVtaXNzaW9uIGpvdXJuZXkuXG4gICAqIEBwYXJhbSB1cGRhdGVkUGF5bWVudEdyb3VwIHRoaXMgaXMgYW4gdXBkYXRlZCBwYXltZW50R3JvdXAgdmVyc2lvbi5cbiAgICovXG4gIGFkZFBheW1lbnRHcm91cCh1cGRhdGVkUGF5bWVudEdyb3VwOklQYXltZW50R3JvdXApe1xuICAgIGlmICh0aGlzLnBheW1lbnRHcm91cCA9PSBudWxsKXtcbiAgICAgICAgdGhpcy5wYXltZW50R3JvdXAgPSB1cGRhdGVkUGF5bWVudEdyb3VwO1xuICAgIH1cbiAgfVxuXG5cbiAgLyoqXG4gICAqIENhbGN1bGF0ZXMgdGhlIHRvdGFsIHJlbWlzc2lvbiBhbW91bnQgZm9yIHRoZSBjdXJyZW50IHBheW1lbnQgZ3JvdXAuXG4gICAqXG4gICAqIFRoaXMgbWV0aG9kIGNoZWNrcyBpZiB0aGUgcGF5bWVudCBncm91cCBjb250YWlucyBhbnkgcmVtaXNzaW9ucyBhbmQsIGlmIHNvLFxuICAgKiBzdW1zIHVwIHRoZSBgaHdmX2Ftb3VudGAgb2YgYWxsIHJlbWlzc2lvbnMgdXNpbmcgdGhlIGByZWR1Y2UoKWAgbWV0aG9kLlxuICAgKiBJZiBubyByZW1pc3Npb25zIGFyZSBmb3VuZCwgaXQgcmV0dXJucyBhIGRlZmF1bHQgdmFsdWUgb2YgMC5cbiAgICpcbiAgICogQHJldHVybnMge251bWJlcn0gVGhlIHRvdGFsIHJlbWlzc2lvbiBhbW91bnQsIG9yIDAgaWYgbm8gcmVtaXNzaW9ucyBhcmUgcHJlc2VudC5cbiAgICovXG5cbiAgZ2V0VG90YWxSZW1pc3Npb24oKTogbnVtYmVyIHtcbiAgICBsZXQgcmVtaXNzaW9uVG90YWwgPSAwO1xuICAgIGlmICh0aGlzLnBheW1lbnRHcm91cC5yZW1pc3Npb25zKSB7XG4gICAgICByZW1pc3Npb25Ub3RhbCA9IHRoaXMucGF5bWVudEdyb3VwLnJlbWlzc2lvbnMucmVkdWNlKCh0b3RhbFJlbWlzc2lvbiwgcmVtaXNzaW9uKSA9PiB0b3RhbFJlbWlzc2lvbiArIHJlbWlzc2lvbi5od2ZfYW1vdW50LCAwKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlbWlzc2lvblRvdGFsO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGN1bGF0ZXMgdGhlIHRvdGFsIGZlZSBhbW91bnQgZm9yIHRoZSBjdXJyZW50IHBheW1lbnQgZ3JvdXAuXG4gICAqXG4gICAqIFRoaXMgbWV0aG9kIGNoZWNrcyBpZiB0aGUgcGF5bWVudCBncm91cCBjb250YWlucyBhbnkgZmVlcyBhbmQsIGlmIHNvLFxuICAgKiBzdW1zIHVwIHRoZSBgY2FsY3VsYXRlZF9hbW91bnRgIG9mIGFsbCBmZWVzIHVzaW5nIHRoZSBgcmVkdWNlKClgIG1ldGhvZC5cbiAgICogSWYgbm8gZmVlcyBhcmUgZm91bmQsIGl0IHJldHVybnMgYSBkZWZhdWx0IHZhbHVlIG9mIDAuXG4gICAqXG4gICAqIEByZXR1cm5zIHtudW1iZXJ9IFRoZSB0b3RhbCBmZWUgYW1vdW50LCBvciAwIGlmIG5vIGZlZXMgYXJlIHByZXNlbnQuXG4gICAqL1xuICBnZXRUb3RhbEZlZXMoKTogbnVtYmVyIHtcbiAgICBsZXQgZmVlc1RvdGFsID0gMDtcbiAgICBpZiAodGhpcy5wYXltZW50R3JvdXAuZmVlcykge1xuICAgICAgZmVlc1RvdGFsID0gdGhpcy5wYXltZW50R3JvdXAuZmVlcy5yZWR1Y2UoKHRvdGFsRmVlcywgZmVlKSA9PiB0b3RhbEZlZXMgKyBmZWUuY2FsY3VsYXRlZF9hbW91bnQsIDApO1xuICAgIH1cbiAgICByZXR1cm4gZmVlc1RvdGFsO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGN1bGF0ZXMgdGhlIHRvdGFsIHBheW1lbnQgYW1vdW50IGZvciB0aGUgY3VycmVudCBwYXltZW50IGdyb3VwLlxuICAgKlxuICAgKiBUaGlzIG1ldGhvZCBjaGVja3MgaWYgdGhlIHBheW1lbnQgZ3JvdXAgY29udGFpbnMgYW55IHBheW1lbnRzIGFuZCwgaWYgc28sXG4gICAqIHN1bXMgdXAgdGhlIGBhbW91bnRgIG9mIGFsbCBwYXltZW50cyB1c2luZyB0aGUgYHJlZHVjZSgpYCBtZXRob2QuXG4gICAqIElmIG5vIHBheW1lbnRzIGFyZSBmb3VuZCwgaXQgcmV0dXJucyBhIGRlZmF1bHQgdmFsdWUgb2YgMC5cbiAgICpcbiAgICogQHJldHVybnMge251bWJlcn0gVGhlIHRvdGFsIHBheW1lbnQgYW1vdW50LCBvciAwIGlmIG5vIHBheW1lbnRzIGFyZSBwcmVzZW50LlxuICAgKi9cbiAgZ2V0VG90YWxQYXltZW50cygpOiBudW1iZXIge1xuICAgIGxldCBwYXltZW50c1RvdGFsID0gMDtcbiAgICBpZiAodGhpcy5wYXltZW50R3JvdXAucGF5bWVudHMpIHtcbiAgICAgIHBheW1lbnRzVG90YWwgPSB0aGlzLnBheW1lbnRHcm91cC5wYXltZW50cy5yZWR1Y2UoKHRvdGFsRmVlcywgcGF5bWVudCkgPT4gdG90YWxGZWVzICsgcGF5bWVudC5hbW91bnQsIDApO1xuICAgIH1cbiAgICByZXR1cm4gcGF5bWVudHNUb3RhbDtcbiAgfVxuXG5cbiAgLy8gUmVmdW5kcyBsaWJzIHNlY3Rpb24uXG5cbiAgLyoqXG4gICAqIFRoaXMgZnVuY3Rpb24gaXMgdXNlZCB0byBmaW5kIG91dCBpZiB0aGUgY3VycmVudCByZWZ1bmRzIGxpc3QgYXJlIGluIHByb2dyZXNzIGZvciB0aGUgZmVlIHBhc3NlZCBhcyBwYXJhbWV0ZXJcbiAgICogQHBhcmFtIGZlZSB0aGlzIGlzIHRoZSBmZWUgdXNlZCB0byBmaW5kIG91dCBpZiB0aGUgcmVmdW5kcyBhcmUgaW4gcHJvZ3Jlc3MuXG4gICAqL1xuICBpc1RoZUN1cnJlbnRSZWZ1bmRJblByb2Nlc3NGb3JUaGlzRmVlKGZlZTogSUZlZSk6IGJvb2xlYW57XG4gICAgLy8gTm8gcmVmdW5kc1xuICAgIGlmICh0aGlzLnJlZnVuZHMgPT0gbnVsbCB8fCB0aGlzLnJlZnVuZHMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiAhdGhpcy5pc1RoZUN1cnJlbnRSZWZ1bmRSZWplY3RlZEZvclRoZUZlZShmZWUuaWQudG9TdHJpbmcoKSk7XG4gIH1cblxuICAvKipcbiAgICogVGhpcyBmdW5jdGlvbiBpcyB1c2VkIHRvIGZpbmQgb3V0IGlmIGluIGN1cnJlbnQgbGlzdCBvZiByZWZ1bmRzIGFsbCByZWZ1bmRzIGhhcyBiZWVuIHJlamVjdGVkXG4gICAqIGZvciB0aGUgZmVlIHBhc3NlZCBhcyBwYXJhbWV0ZXIuXG4gICAqIEBwYXJhbSBmZWVDb2RlIHRoaXMgaXMgdGhlIGZlZSBjb2RlIHVzZWQgdG8gZmluZCBvdXQgYWxsIHJlZnVuZHMgcmVqZWN0ZWQgcmVmdW5kcy5cbiAgICovXG4gIGlzVGhlQ3VycmVudFJlZnVuZFJlamVjdGVkRm9yVGhlRmVlKGZlZUNvZGU6IHN0cmluZyk6IGJvb2xlYW4ge1xuXG4gICAgbGV0IHJlZnVuZHNCeUZlZSA9IHRoaXMucmVmdW5kcy5maWx0ZXIocmVmdW5kID0+IHJlZnVuZC5mZWVfaWRzID09PSBmZWVDb2RlKTtcbiAgICBsZXQgcmVmdW5kc0J5RmVlQW5kUmVqZWN0ZWQgPSB0aGlzLnJlZnVuZHMuZmlsdGVyKHJlZnVuZCA9PiByZWZ1bmQucmVmdW5kX3N0YXR1cy5uYW1lID09PSAnUmVqZWN0ZWQnKTtcblxuICAgIC8vIFJlZnVuZHMgPiAwICBhbmQgb3ZlclBheW1lbnQgLS0+IHJlZnVuZHMgaW4gcHJvY2VzcyBvciBSZWplY3RlZC5cbiAgICBpZiAocmVmdW5kc0J5RmVlLmxlbmd0aCA9PT0gcmVmdW5kc0J5RmVlQW5kUmVqZWN0ZWQubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbn1cblxuXG5cbiJdfQ==
403
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5bWVudC1saWIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvcGF5bWVudC1saWIvc3JjL2xpYi9wYXltZW50LWxpYi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFTLE1BQU0sZUFBZSxDQUFDO0FBQ3RGLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBRXhELE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLCtCQUErQixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7OztBQW1EaEUsTUFBTSxPQUFPLG1CQUFtQjtJQWtFVjtJQUNWO0lBQ0E7SUFuRVMsUUFBUSxDQUFTO0lBQ1IsaUJBQWlCLENBQVM7SUFDM0IsZ0JBQWdCLENBQVM7SUFDcEIscUJBQXFCLENBQVM7SUFDL0Isb0JBQW9CLENBQVM7SUFDbEMsZUFBZSxDQUFTO0lBQzFCLGFBQWEsQ0FBUztJQUNyQixjQUFjLENBQVM7SUFDakMsSUFBSSxDQUFTO0lBQ04sV0FBVyxDQUFTO0lBQ2QsaUJBQWlCLENBQVU7SUFDakMsV0FBVyxDQUFVO0lBQ2xCLGNBQWMsQ0FBUztJQUMzQixVQUFVLENBQVM7SUFDZCxlQUFlLENBQVM7SUFDN0IsVUFBVSxDQUFVO0lBQ3BCLFVBQVUsQ0FBVTtJQUNyQixTQUFTLENBQVU7SUFDcEIsUUFBUSxDQUFTO0lBQ0gsc0JBQXNCLENBQVU7SUFDL0MsT0FBTyxDQUFVO0lBQ2QsVUFBVSxDQUFTO0lBQ3ZCLE1BQU0sQ0FBUztJQUNKLGlCQUFpQixDQUFRO0lBQ3pCLGlCQUFpQixDQUFTO0lBQ25CLHdCQUF3QixDQUFVO0lBRXJFLGFBQWEsQ0FBUztJQUN0QixZQUFZLENBQVM7SUFDckIsMkJBQTJCLEdBQVcsSUFBSSxDQUFDO0lBQzNDLHFCQUFxQixDQUFTO0lBQzlCLGdCQUFn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QkFBdEIsS0FBSzt1QkFBQyxRQUFRO2dCQUNhLGlCQUFpQjtzQkFBNUMsS0FBSzt1QkFBQyxtQkFBbUI7Z0JBQ0UsaUJBQWlCO3NCQUE1QyxLQUFLO3VCQUFDLG1CQUFtQjtnQkFDUyx3QkFBd0I7c0JBQTFELEtBQUs7dUJBQUMsMEJBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBmb3J3YXJkUmVmLCBJbnB1dCwgT25Jbml0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7UGF5bWVudExpYlNlcnZpY2V9IGZyb20gJy4vcGF5bWVudC1saWIuc2VydmljZSc7XG5pbXBvcnQge0lCU1BheW1lbnRzfSBmcm9tICcuL2ludGVyZmFjZXMvSUJTUGF5bWVudHMnO1xuaW1wb3J0IHtPcmRlcnNsaXN0U2VydmljZX0gZnJvbSAnLi9zZXJ2aWNlcy9vcmRlcnNsaXN0LnNlcnZpY2UnO1xuaW1wb3J0IHtJUGF5bWVudH0gZnJvbSAnLi9pbnRlcmZhY2VzL0lQYXltZW50JztcbmltcG9ydCB7SVBheW1lbnRHcm91cH0gZnJvbSBcIi4vaW50ZXJmYWNlcy9JUGF5bWVudEdyb3VwXCI7XG5pbXBvcnQge0lSZWZ1bmRMaXN0fSBmcm9tIFwiLi9pbnRlcmZhY2VzL0lSZWZ1bmRMaXN0XCI7XG5pbXBvcnQge0lGZWV9IGZyb20gXCIuL2ludGVyZmFjZXMvSUZlZVwiO1xuaW1wb3J0IHtJUmVtaXNzaW9ufSBmcm9tIFwiLi9pbnRlcmZhY2VzL0lSZW1pc3Npb25cIjtcbmltcG9ydCB7QWRkUmV0cm9SZW1pc3Npb25SZXF1ZXN0fSBmcm9tIFwiLi9pbnRlcmZhY2VzL0FkZFJldHJvUmVtaXNzaW9uUmVxdWVzdFwiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjY3BheS1wYXltZW50LWxpYicsXG4gIHRlbXBsYXRlOiBgXG4gIDxjY3BheS1yZWZ1bmQtbGlzdCBbVVNFUklEXT1cIlVTRVJJRFwiIFtMT0dHRURJTlVTRVJST0xFU109XCJMT0dHRURJTlVTRVJST0xFU1wiIFtMT0dHRURJTlVTRVJFTUFJTF09XCJMT0dHRURJTlVTRVJFTUFJTFwiICpuZ0lmPVwidmlld05hbWUgPT09ICdyZWZ1bmQtbGlzdCdcIj48L2NjcGF5LXJlZnVuZC1saXN0PlxuICAgIDxjY3BheS1wYXltZW50LWxpc3QgKm5nSWY9XCJ2aWV3TmFtZSA9PT0gJ3BheW1lbnQtbGlzdCdcIj48L2NjcGF5LXBheW1lbnQtbGlzdD5cbiAgICA8Y2NwYXktcmVmdW5kLXN0YXR1c1xuICAgIFtMT0dHRURJTlVTRVJST0xFU109XCJMT0dHRURJTlVTRVJST0xFU1wiXG4gICAgW0FQSV9ST09UXT1cIkFQSV9ST09UXCJcbiAgICAqbmdJZj1cInZpZXdOYW1lID09PSAncmVmdW5kc3RhdHVzbGlzdCdcIj4gPC9jY3BheS1yZWZ1bmQtc3RhdHVzID5cbiAgICA8Y2NwYXktcGF5bWVudC12aWV3IFtMT0dHRURJTlVTRVJST0xFU109XCJMT0dHRURJTlVTRVJST0xFU1wiICpuZ0lmPVwidmlld05hbWUgPT09ICdwYXltZW50LXZpZXcnXCJcbiAgICBbaXNUdXJuT2ZmXT1cIklTVFVSTk9GRlwiIFtpc1Rha2VQYXltZW50XT1cIlRBS0VQQVlNRU5UXCIgIFtjYXNlVHlwZV09XCJDQVNFVFlQRVwiXG4gICAgW0lTUEFZTUVOVFNUQVRVU0VOQUJMRURdID0gXCJJU1BBWU1FTlRTVEFUVVNFTkFCTEVEXCJcbiAgICA+PC9jY3BheS1wYXltZW50LXZpZXc+XG5cbiAgICA8Y2NwYXktcHJvY2Vzcy1yZWZ1bmQgKm5nSWY9XCJ2aWV3TmFtZSA9PT0gJ3Byb2Nlc3MtcmVmdW5kJ1wiXG4gICAgW3JlZnVuZFJlZmVyZW5jZV09XCJyZWZ1bmRSZWZlcmVuY2VcIlxuICAgIFtyZWZ1bmRsaXN0c291cmNlXT1cInJlZnVuZGxpc3Rzb3VyY2VcIlxuICAgID48L2NjcGF5LXByb2Nlc3MtcmVmdW5kPlxuICAgIDxjY3BheS1wYmEtcGF5bWVudCAqbmdJZj1cInZpZXdOYW1lID09PSAncGJhLXBheW1lbnQnXCJcbiAgICBbcGJhUGF5T3JkZXJSZWZdPVwicGJhUGF5T3JkZXJSZWZcIlxuICAgID48L2NjcGF5LXBiYS1wYXltZW50PlxuICAgIDxjY3BheS1jYXNlLXRyYW5zYWN0aW9ucyBbaXNUYWtlUGF5bWVudF09XCJpc1Rha2VQYXltZW50XCIgW2lzRnJvbVNlcnZpY2VSZXF1ZXN0UGFnZV09XCJpc0Zyb21TZXJ2aWNlUmVxdWVzdFBhZ2VcIiBbTE9HR0VESU5VU0VSUk9MRVNdPVwiTE9HR0VESU5VU0VSUk9MRVNcIiAqbmdJZj1cInZpZXdOYW1lID09PSAnY2FzZS10cmFuc2FjdGlvbnMnXCI+PC9jY3BheS1jYXNlLXRyYW5zYWN0aW9ucz5cbiAgICA8YXBwLW1hcmstdW5pZGVudGlmaWVkLXBheW1lbnQgKm5nSWY9XCJ2aWV3TmFtZSA9PT0gJ3VuaWRlbnRpZmllZFBhZ2UnXCJcbiAgICBbY2FzZVR5cGVdPVwiQ0FTRVRZUEVcIj48L2FwcC1tYXJrLXVuaWRlbnRpZmllZC1wYXltZW50PlxuICAgIDxhcHAtbWFyay11bnNvbGljaXRlZC1wYXltZW50ICpuZ0lmPVwidmlld05hbWUgPT09ICd1bnNvbGljaXRlZFBhZ2UnXCJcbiAgICBbY2FzZVR5cGVdPVwiQ0FTRVRZUEVcIj48L2FwcC1tYXJrLXVuc29saWNpdGVkLXBheW1lbnQ+XG4gICAgPGFwcC1hbGxvY2F0ZS1wYXltZW50cyAqbmdJZj1cInZpZXdOYW1lID09PSAnYWxsb2NhdGUtcGF5bWVudHMnXCJcbiAgICBbaXNUdXJuT2ZmXT1cIklTVFVSTk9GRlwiXG4gICAgW2Nhc2VUeXBlXT1cIkNBU0VUWVBFXCJcbiAgICA+PC9hcHAtYWxsb2NhdGUtcGF5bWVudHM+XG4gICAgPGNjcGF5LWZlZS1zdW1tYXJ5ICpuZ0lmPVwidmlld05hbWUgPT09ICdmZWUtc3VtbWFyeSdcIlxuICAgICAgW2NjZENhc2VOdW1iZXJdPVwiQ0NEX0NBU0VfTlVNQkVSXCJcbiAgICAgIFtwYXltZW50R3JvdXBSZWZdPVwicGF5bWVudEdyb3VwUmVmZXJlbmNlXCJcbiAgICAgIFtpc1R1cm5PZmZdPVwiSVNUVVJOT0ZGXCJcbiAgICAgIFtjYXNlVHlwZV09XCJDQVNFVFlQRVwiXG4gICAgICA+PC9jY3BheS1mZWUtc3VtbWFyeT5cbiAgICA8Y2NwYXktcmVwb3J0cyAqbmdJZj1cInZpZXdOYW1lID09PSAncmVwb3J0cydcIlxuICAgIFtJU1BBWU1FTlRTVEFUVVNFTkFCTEVEXSA9IFwiSVNQQVlNRU5UU1RBVFVTRU5BQkxFRFwiXG4gICAgPjwvY2NwYXktcmVwb3J0cz5cbiAgICBgLFxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6ICdQQVlNRU5UX0xJQicsIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFBheW1lbnRMaWJDb21wb25lbnQpIH1dXG59KVxuXG5leHBvcnQgY2xhc3MgUGF5bWVudExpYkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgnQVBJX1JPT1QnKSBBUElfUk9PVDogc3RyaW5nO1xuICBASW5wdXQoJ0JVTEtTQ0FOX0FQSV9ST09UJykgQlVMS1NDQU5fQVBJX1JPT1Q6IHN0cmluZztcbiAgQElucHV0KCdSRUZVTkRTX0FQSV9ST09UJykgUkVGVU5EU19BUElfUk9PVDogc3RyaW5nO1xuICBASW5wdXQoJ05PVElGSUNBVElPTl9BUElfUk9PVCcpIE5PVElGSUNBVElPTl9BUElfUk9PVDogc3RyaW5nO1xuICBASW5wdXQoJ0NBUkRQQVlNRU5UUkVUVVJOVVJMJykgQ0FSRFBBWU1FTlRSRVRVUk5VUkw6IHN0cmluZztcbiAgQElucHV0KCdDQ0RfQ0FTRV9OVU1CRVInKSBDQ0RfQ0FTRV9OVU1CRVI6IHN0cmluZztcbiAgQElucHV0KCdFWENfUkVGRVJFTkNFJykgRVhDX1JFRkVSRU5DRTogc3RyaW5nO1xuICBASW5wdXQoJ1BBWU1FTlRfTUVUSE9EJykgUEFZTUVOVF9NRVRIT0Q6IHN0cmluZztcbiAgQElucHV0KCdWSUVXJykgVklFVzogc3RyaW5nO1xuICBASW5wdXQoJ1ZJRVdTRVJWSUNFJykgVklFV1NFUlZJQ0U6IHN0cmluZztcbiAgQElucHV0KCdQQVlNRU5UX0dST1VQX1JFRicpIFBBWU1FTlRfR1JPVVBfUkVGPzogc3RyaW5nO1xuICBASW5wdXQoJ1RBS0VQQVlNRU5UJykgVEFLRVBBWU1FTlQ6IGJvb2xlYW47XG4gIEBJbnB1dCgnU0VSVklDRVJFUVVFU1QnKSBTRVJWSUNFUkVRVUVTVDogc3RyaW5nO1xuICBASW5wdXQoJ0RDTl9OVU1CRVInKSBEQ05fTlVNQkVSOiBzdHJpbmc7XG4gIEBJbnB1dCgnU0VMRUNURURfT1BUSU9OJykgU0VMRUNURURfT1BUSU9OOiBzdHJpbmc7XG4gIEBJbnB1dCgnSVNCU0VOQUJMRScpIElTQlNFTkFCTEU6IEJvb2xlYW47XG4gIEBJbnB1dCgnSVNTRkVOQUJMRScpIElTU0ZFTkFCTEU6IGJvb2xlYW47XG4gIEBJbnB1dCgnSVNUVVJOT0ZGJykgSVNUVVJOT0ZGOiBib29sZWFuO1xuICBASW5wdXQoJ0NBU0VUWVBFJykgQ0FTRVRZUEU6IHN0cmluZztcbiAgQElucHV0KCdJU1BBWU1FTlRTVEFUVVNFTkFCTEVEJykgSVNQQVlNRU5UU1RBVFVTRU5BQkxFRDogYm9vbGVhbjtcbiAgQElucHV0KCdyb290VXJsJykgcm9vdFVybDogYm9vbGVhbjtcbiAgQElucHV0KCdSRUZVTkRMSVNUJykgUkVGVU5ETElTVDogc3RyaW5nO1xuICBASW5wdXQoJ1VTRVJJRCcpIFVTRVJJRDogc3RyaW5nO1xuICBASW5wdXQoJ0xPR0dFRElOVVNFUlJPTEVTJykgTE9HR0VESU5VU0VSUk9MRVM6IGFueVtdO1xuICBASW5wdXQoJ0xPR0dFRElOVVNFUkVNQUlMJykgTE9HR0VESU5VU0VSRU1BSUw6IHN0cmluZztcbiAgQElucHV0KCdpc0Zyb21TZXJ2aWNlUmVxdWVzdFBhZ2UnKSBpc0Zyb21TZXJ2aWNlUmVxdWVzdFBhZ2U6IGJvb2xlYW47XG5cbiAgcGF5bWVudE1ldGhvZDogc3RyaW5nO1xuICBic3BheW1lbnRkY246IHN0cmluZztcbiAgdW5Qcm9jZXNzZWRQYXltZW50U2VydmljZUlkOiBzdHJpbmcgPSBudWxsO1xuICBwYXltZW50R3JvdXBSZWZlcmVuY2U6IHN0cmluZztcbiAgcGF5bWVudFJlZmVyZW5jZTogc3RyaW5nO1xuICByZWZ1bmRSZWZlcmVuY2U6IHN0cmluZztcbiAgaXNGcm9tUGF5QnViYmxlOiBib29sZWFuID0gZmFsc2U7XG4gIHJlZnVuZGxpc3Rzb3VyY2U6IGFueTtcbiAgdmlld05hbWU6IHN0cmluZztcbiAgaXNUdXJuT2ZmOiBib29sZWFuO1xuICBjYXNlVHlwZTogc3RyaW5nO1xuICB1blByb2Nlc3NlZFBheW1lbnQ6IElCU1BheW1lbnRzID0gbnVsbDtcbiAgaXNSZWZ1bmRTdGF0dXNWaWV3OiBib29sZWFuO1xuICBpc1JlZGlyZWN0RnJvbUNhc2VUcmFuc2FjdGlvblBhZ2U6IHN0cmluZztcbiAgaXNDYWxsRnJvbVJlZnVuZExpc3Q6IGJvb2xlYW47XG4gIGlzRnJvbVJlZnVuZFN0YXR1c1BhZ2U6IGJvb2xlYW47XG4gIGlzY2FuY2VsQ2xpY2tlZDogYm9vbGVhbjtcbiAgaXNGcm9tUGF5bWVudERldGFpbFBhZ2U6IGJvb2xlYW47XG4gIHBiYVBheU9yZGVyUmVmOiBJUGF5bWVudDtcbiAgaXNUYWtlUGF5bWVudDogYm9vbGVhbjtcblxuICBvcmRlckRldGFpbDogYW55W107XG4gIG9yZGVyUmVmOiBzdHJpbmc7XG4gIG9yZGVyU3RhdHVzOiBzdHJpbmc7XG4gIG9yZGVyUGFydHk6IHN0cmluZztcbiAgb3JkZXJDcmVhdGVkOiBEYXRlO1xuICBvcmRlckNDREV2ZW50OiBzdHJpbmc7XG4gIHNlcnZpY2VSZXF1ZXN0VmFsdWU6IHN0cmluZztcbiAgb3JkZXJBZGRCdG5FbmFibGU6IGJvb2xlYW47XG4gIG9yZGVyRmVlc1RvdGFsOiBudW1iZXIgPSAwLjAwO1xuICBvcmRlclJlbWlzc2lvblRvdGFsOiBudW1iZXIgPSAwLjAwO1xuICBvcmRlclRvdGFsUGF5bWVudHM6IG51bWJlciA9IDAuMDA7XG4gIG9yZGVyUGVuZGluZ1BheW1lbnRzOiBudW1iZXIgPSAwLjAwO1xuXG4gIHBheW1lbnRHcm91cDpJUGF5bWVudEdyb3VwXG4gIG92ZXJQYXltZW50QW1vdW50OiBudW1iZXIgPSAwLjAwO1xuICByZWZ1bmRzOiBJUmVmdW5kTGlzdFtdO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcGF5bWVudExpYlNlcnZpY2U6IFBheW1lbnRMaWJTZXJ2aWNlLFxuICAgIHByaXZhdGUgY2Q6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgT3JkZXJzbGlzdFNlcnZpY2U6IE9yZGVyc2xpc3RTZXJ2aWNlKSB7IH1cbiAgbmdBZnRlckNvbnRlbnRDaGVja2VkKCk6IHZvaWQge1xuICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cblxuICBuZ09uSW5pdCgpIHtcblxuICAgIHRoaXMucGF5bWVudExpYlNlcnZpY2Uuc2V0QXBpUm9vdFVybCh0aGlzLkFQSV9ST09UKTtcbiAgICB0aGlzLnBheW1lbnRMaWJTZXJ2aWNlLnNldEJ1bGtTY2FuQXBpUm9vdFVybCh0aGlzLkJVTEtTQ0FOX0FQSV9ST09UKTtcbiAgICB0aGlzLnBheW1lbnRMaWJTZXJ2aWNlLnNldFJlZnVuZG5kc0FwaVJvb3RVcmwodGhpcy5SRUZVTkRTX0FQSV9ST09UKTtcbiAgICB0aGlzLnBheW1lbnRMaWJTZXJ2aWNlLnNldE5vdGljYXRpb25BcGlSb290VXJsKHRoaXMuTk9USUZJQ0FUSU9OX0FQSV9ST09UKTtcbiAgICB0aGlzLnBheW1lbnRMaWJTZXJ2aWNlLnNldENhcmRQYXltZW50UmV0dXJuVXJsKHRoaXMuQ0FSRFBBWU1FTlRSRVRVUk5VUkwpO1xuXG4gICAgaWYgKHRoaXMuTE9HR0VESU5VU0VSUk9MRVMubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5PcmRlcnNsaXN0U2VydmljZS5zZXRVc2VyUm9sZXNMaXN0KHRoaXMuTE9HR0VESU5VU0VSUk9MRVMpO1xuICAgIH1cbiAgICBpZiAodGhpcy5QQVlNRU5UX0dST1VQX1JFRikge1xuICAgICAgdGhpcy5wYXltZW50R3JvdXBSZWZlcmVuY2UgPSB0aGlzLlBBWU1FTlRfR1JPVVBfUkVGO1xuICAgIH1cbiAgICBpZiAodGhpcy5EQ05fTlVNQkVSKSB7XG4gICAgICB0aGlzLmJzcGF5bWVudGRjbiA9IHRoaXMuRENOX05VTUJFUjtcbiAgICB9XG4gICAgaWYgKHRoaXMuUkVGVU5ETElTVCA9PT0gXCJ0cnVlXCIpIHtcbiAgICAgIHRoaXMuVklFVyA9ICdyZWZ1bmQtbGlzdCc7XG4gICAgICB0aGlzLnZpZXdOYW1lID0gdGhpcy5WSUVXO1xuICAgIH1cbiAgICBpZiAodGhpcy5WSUVXID09PSAnZmVlLXN1bW1hcnknKSB7XG4gICAgICB0aGlzLnZpZXdOYW1lID0gJ2ZlZS1zdW1tYXJ5JztcbiAgICB9IGVsc2UgaWYgKHRoaXMuVklFVyAhPT0gJ3JlcG9ydHMnICYmIHRoaXMuVklFVyAhPT0gJ3JlZnVuZC1saXN0Jykge1xuICAgICAgdGhpcy52aWV3TmFtZSA9ICdjYXNlLXRyYW5zYWN0aW9ucyc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudmlld05hbWUgPSB0aGlzLlZJRVc7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaXNUYWtlUGF5bWVudCkge1xuICAgICAgdGhpcy5UQUtFUEFZTUVOVCA9IHRydWU7XG4gICAgfVxuICAgIGlmICh0aGlzLkFQSV9ST09UID09ICdhcGkvcGF5bWVudC1oaXN0b3J5Jykge1xuICAgICAgdGhpcy5pc0Zyb21QYXlCdWJibGUgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG5cbiAgLyoqXG4gICAqIEFkZHMgYSByZW1pc3Npb24gdG8gdGhlIHBheW1lbnQgZ3JvdXAgdXNpbmcgZGF0YSBmcm9tIHRoZSBwcm92aWRlZCBmb3JtIGdyb3VwLlxuICAgKlxuICAgKiBUaGlzIG1ldGhvZCBjaGVja3MgaWYgdGhlIGBwYXltZW50R3JvdXBgIGlzIG5vdCBudWxsIGJlZm9yZSBhdHRlbXB0aW5nIHRvIGFkZCB0aGUgcmVtaXNzaW9uLlxuICAgKiBJZiB0aGUgYHBheW1lbnRHcm91cGAgZXhpc3RzLCBhIG5ldyByZW1pc3Npb24gaXMgY3JlYXRlZCB1c2luZyB0aGUgdmFsdWVzIGZyb20gdGhlIHByb3ZpZGVkXG4gICAqIGZvcm0gZ3JvdXAgKGBjdXJyZW50UmVtaXNzaW9uRm9ybUdyb3VwYCksIGFuZCBpdCBpcyBwdXNoZWQgaW50byB0aGUgYHJlbWlzc2lvbnNgIGFycmF5IG9mIHRoZSBwYXltZW50IGdyb3VwLlxuICAgKlxuICAgKiBAcGFyYW0ge0FkZFJldHJvUmVtaXNzaW9uUmVxdWVzdH0gY3VycmVudFJlbWlzc2lvbkZvcm1Hcm91cCAtIFRoZSBmb3JtIGdyb3VwIGNvbnRhaW5pbmcgcmVtaXNzaW9uIGRhdGFcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZS5nLiwgYGh3Zl9hbW91bnRgLCBgaHdmX3JlZmVyZW5jZWApLlxuICAgKi9cbiAgYWRkUmVtaXNzaW9uKGN1cnJlbnRSZW1pc3Npb25Gb3JtR3JvdXA6IEFkZFJldHJvUmVtaXNzaW9uUmVxdWVzdCkge1xuXG4gICAgaWYgKHRoaXMucGF5bWVudEdyb3VwICE9IG51bGwpIHtcblxuICAgICAgY29uc3QgcmVtaXNzaW9uOiBJUmVtaXNzaW9uID0ge1xuXG4gICAgICAgIHJlbWlzc2lvbl9yZWZlcmVuY2U6IG51bGwsXG4gICAgICAgIGh3Zl9yZWZlcmVuY2U6IGN1cnJlbnRSZW1pc3Npb25Gb3JtR3JvdXAuaHdmX3JlZmVyZW5jZSxcbiAgICAgICAgaHdmX2Ftb3VudDogY3VycmVudFJlbWlzc2lvbkZvcm1Hcm91cC5od2ZfYW1vdW50LFxuICAgICAgICBiZW5lZmljaWFyeV9uYW1lOiBudWxsLFxuICAgICAgICBjY2RfY2FzZV9udW1iZXI6IG51bGwsXG4gICAgICAgIGZlZV9jb2RlOiBudWxsLFxuICAgICAgICBkYXRlX2NyZWF0ZWQ6IG51bGwsXG4gICAgICAgIGZlZV9pZDogbnVsbCxcbiAgICAgICAgaXNzdWVfcmVmdW5kX2FkZF9yZWZ1bmRfYWRkX3JlbWlzc2lvbjogZmFsc2UsXG4gICAgICAgIGFkZF9yZWZ1bmQ6IGZhbHNlLFxuICAgICAgICBvdmVyYWxsX2JhbGFuY2U6Y3VycmVudFJlbWlzc2lvbkZvcm1Hcm91cC5od2ZfYW1vdW50LFxuICAgICAgICBhY29sbGVjdGlvbl9vZl9mZXNzOiB0cnVlXG4gICAgICB9O1xuICAgICAgdGhpcy5wYXltZW50R3JvdXAucmVtaXNzaW9ucy5wdXNoKHJlbWlzc2lvbik7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFRoaXMgbWV0aG9kIGlzIHVzZWQgdG8gc2V0IHRoZSBwYXltZW50R3JvdXAgZm9yIHRoZSBhZGQgcmVtaXNzaW9uIGpvdXJuZXkuXG4gICAqIEBwYXJhbSB1cGRhdGVkUGF5bWVudEdyb3VwIHRoaXMgaXMgYW4gdXBkYXRlZCBwYXltZW50R3JvdXAgdmVyc2lvbi5cbiAgICovXG4gIGFkZFBheW1lbnRHcm91cCh1cGRhdGVkUGF5bWVudEdyb3VwOklQYXltZW50R3JvdXApe1xuICAgIGlmICh0aGlzLnBheW1lbnRHcm91cCA9PSBudWxsKXtcbiAgICAgICAgdGhpcy5wYXltZW50R3JvdXAgPSB1cGRhdGVkUGF5bWVudEdyb3VwO1xuICAgIH1cbiAgfVxuXG5cbiAgLyoqXG4gICAqIENhbGN1bGF0ZXMgdGhlIHRvdGFsIHJlbWlzc2lvbiBhbW91bnQgZm9yIHRoZSBjdXJyZW50IHBheW1lbnQgZ3JvdXAuXG4gICAqXG4gICAqIFRoaXMgbWV0aG9kIGNoZWNrcyBpZiB0aGUgcGF5bWVudCBncm91cCBjb250YWlucyBhbnkgcmVtaXNzaW9ucyBhbmQsIGlmIHNvLFxuICAgKiBzdW1zIHVwIHRoZSBgaHdmX2Ftb3VudGAgb2YgYWxsIHJlbWlzc2lvbnMgdXNpbmcgdGhlIGByZWR1Y2UoKWAgbWV0aG9kLlxuICAgKiBJZiBubyByZW1pc3Npb25zIGFyZSBmb3VuZCwgaXQgcmV0dXJucyBhIGRlZmF1bHQgdmFsdWUgb2YgMC5cbiAgICpcbiAgICogQHJldHVybnMge251bWJlcn0gVGhlIHRvdGFsIHJlbWlzc2lvbiBhbW91bnQsIG9yIDAgaWYgbm8gcmVtaXNzaW9ucyBhcmUgcHJlc2VudC5cbiAgICovXG5cbiAgZ2V0VG90YWxSZW1pc3Npb24oKTogbnVtYmVyIHtcbiAgICBsZXQgcmVtaXNzaW9uVG90YWwgPSAwO1xuICAgIGlmICh0aGlzLnBheW1lbnRHcm91cC5yZW1pc3Npb25zKSB7XG4gICAgICByZW1pc3Npb25Ub3RhbCA9IHRoaXMucGF5bWVudEdyb3VwLnJlbWlzc2lvbnMucmVkdWNlKCh0b3RhbFJlbWlzc2lvbiwgcmVtaXNzaW9uKSA9PiB0b3RhbFJlbWlzc2lvbiArIHJlbWlzc2lvbi5od2ZfYW1vdW50LCAwKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlbWlzc2lvblRvdGFsO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGN1bGF0ZXMgdGhlIHRvdGFsIGZlZSBhbW91bnQgZm9yIHRoZSBjdXJyZW50IHBheW1lbnQgZ3JvdXAuXG4gICAqXG4gICAqIFRoaXMgbWV0aG9kIGNoZWNrcyBpZiB0aGUgcGF5bWVudCBncm91cCBjb250YWlucyBhbnkgZmVlcyBhbmQsIGlmIHNvLFxuICAgKiBzdW1zIHVwIHRoZSBgY2FsY3VsYXRlZF9hbW91bnRgIG9mIGFsbCBmZWVzIHVzaW5nIHRoZSBgcmVkdWNlKClgIG1ldGhvZC5cbiAgICogSWYgbm8gZmVlcyBhcmUgZm91bmQsIGl0IHJldHVybnMgYSBkZWZhdWx0IHZhbHVlIG9mIDAuXG4gICAqXG4gICAqIEByZXR1cm5zIHtudW1iZXJ9IFRoZSB0b3RhbCBmZWUgYW1vdW50LCBvciAwIGlmIG5vIGZlZXMgYXJlIHByZXNlbnQuXG4gICAqL1xuICBnZXRUb3RhbEZlZXMoKTogbnVtYmVyIHtcbiAgICBsZXQgZmVlc1RvdGFsID0gMDtcbiAgICBpZiAodGhpcy5wYXltZW50R3JvdXAuZmVlcykge1xuICAgICAgZmVlc1RvdGFsID0gdGhpcy5wYXltZW50R3JvdXAuZmVlcy5yZWR1Y2UoKHRvdGFsRmVlcywgZmVlKSA9PiB0b3RhbEZlZXMgKyBmZWUuY2FsY3VsYXRlZF9hbW91bnQsIDApO1xuICAgIH1cbiAgICByZXR1cm4gZmVlc1RvdGFsO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGN1bGF0ZXMgdGhlIHRvdGFsIHBheW1lbnQgYW1vdW50IGZvciB0aGUgY3VycmVudCBwYXltZW50IGdyb3VwLlxuICAgKlxuICAgKiBUaGlzIG1ldGhvZCBjaGVja3MgaWYgdGhlIHBheW1lbnQgZ3JvdXAgY29udGFpbnMgYW55IHBheW1lbnRzIGFuZCwgaWYgc28sXG4gICAqIHN1bXMgdXAgdGhlIGBhbW91bnRgIG9mIGFsbCBwYXltZW50cyB1c2luZyB0aGUgYHJlZHVjZSgpYCBtZXRob2QuXG4gICAqIElmIG5vIHBheW1lbnRzIGFyZSBmb3VuZCwgaXQgcmV0dXJucyBhIGRlZmF1bHQgdmFsdWUgb2YgMC5cbiAgICpcbiAgICogQHJldHVybnMge251bWJlcn0gVGhlIHRvdGFsIHBheW1lbnQgYW1vdW50LCBvciAwIGlmIG5vIHBheW1lbnRzIGFyZSBwcmVzZW50LlxuICAgKi9cbiAgZ2V0VG90YWxQYXltZW50cygpOiBudW1iZXIge1xuICAgIGxldCBwYXltZW50c1RvdGFsID0gMDtcbiAgICBpZiAodGhpcy5wYXltZW50R3JvdXAucGF5bWVudHMpIHtcbiAgICAgIHBheW1lbnRzVG90YWwgPSB0aGlzLnBheW1lbnRHcm91cC5wYXltZW50cy5yZWR1Y2UoKHRvdGFsRmVlcywgcGF5bWVudCkgPT4gdG90YWxGZWVzICsgcGF5bWVudC5hbW91bnQsIDApO1xuICAgIH1cbiAgICByZXR1cm4gcGF5bWVudHNUb3RhbDtcbiAgfVxuXG5cbiAgLy8gUmVmdW5kcyBsaWJzIHNlY3Rpb24uXG5cbiAgLyoqXG4gICAqIFRoaXMgZnVuY3Rpb24gaXMgdXNlZCB0byBmaW5kIG91dCBpZiB0aGUgY3VycmVudCByZWZ1bmRzIGxpc3QgYXJlIGluIHByb2dyZXNzIGZvciB0aGUgZmVlIHBhc3NlZCBhcyBwYXJhbWV0ZXJcbiAgICogQHBhcmFtIGZlZSB0aGlzIGlzIHRoZSBmZWUgdXNlZCB0byBmaW5kIG91dCBpZiB0aGUgcmVmdW5kcyBhcmUgaW4gcHJvZ3Jlc3MuXG4gICAqL1xuICBpc1RoZUN1cnJlbnRSZWZ1bmRJblByb2Nlc3NGb3JUaGlzRmVlKGZlZTogSUZlZSk6IGJvb2xlYW57XG4gICAgLy8gTm8gcmVmdW5kc1xuICAgIGlmICh0aGlzLnJlZnVuZHMgPT0gbnVsbCB8fCB0aGlzLnJlZnVuZHMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiAhdGhpcy5pc1RoZUN1cnJlbnRSZWZ1bmRSZWplY3RlZEZvclRoZUZlZShmZWUuaWQudG9TdHJpbmcoKSk7XG4gIH1cblxuICAvKipcbiAgICogVGhpcyBmdW5jdGlvbiBpcyB1c2VkIHRvIGZpbmQgb3V0IGlmIGluIGN1cnJlbnQgbGlzdCBvZiByZWZ1bmRzIGFsbCByZWZ1bmRzIGhhcyBiZWVuIHJlamVjdGVkXG4gICAqIGZvciB0aGUgZmVlIHBhc3NlZCBhcyBwYXJhbWV0ZXIuXG4gICAqIEBwYXJhbSBmZWVDb2RlIHRoaXMgaXMgdGhlIGZlZSBjb2RlIHVzZWQgdG8gZmluZCBvdXQgYWxsIHJlZnVuZHMgcmVqZWN0ZWQgcmVmdW5kcy5cbiAgICovXG4gIGlzVGhlQ3VycmVudFJlZnVuZFJlamVjdGVkRm9yVGhlRmVlKGZlZUNvZGU6IHN0cmluZyk6IGJvb2xlYW4ge1xuXG4gICAgbGV0IHJlZnVuZHNCeUZlZSA9IHRoaXMucmVmdW5kcy5maWx0ZXIocmVmdW5kID0+IHJlZnVuZC5mZWVfaWRzID09PSBmZWVDb2RlKTtcbiAgICBsZXQgcmVmdW5kc0J5RmVlQW5kUmVqZWN0ZWQgPSB0aGlzLnJlZnVuZHMuZmlsdGVyKHJlZnVuZCA9PiByZWZ1bmQucmVmdW5kX3N0YXR1cy5uYW1lID09PSAnUmVqZWN0ZWQnKTtcblxuICAgIC8vIFJlZnVuZHMgPiAwICBhbmQgb3ZlclBheW1lbnQgLS0+IHJlZnVuZHMgaW4gcHJvY2VzcyBvciBSZWplY3RlZC5cbiAgICBpZiAocmVmdW5kc0J5RmVlLmxlbmd0aCA9PT0gcmVmdW5kc0J5RmVlQW5kUmVqZWN0ZWQubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbn1cblxuXG5cbiJdfQ==
@@ -14,7 +14,7 @@ export class ErrorHandlerService {
14
14
  }
15
15
  else {
16
16
  // Check if the error is from the server-side
17
- if (err.status === 400 || err.status === 404 || err.status === 500 || err.status === 412) {
17
+ if (err.status === 400 || err.status === 404 || err.status === 500) {
18
18
  try {
19
19
  // Attempt to parse error as JSON
20
20
  const parsedError = typeof err.error === 'string' ? JSON.parse(err.error) : err.error;
@@ -81,4 +81,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
81
81
  providedIn: 'root'
82
82
  }]
83
83
  }], ctorParameters: () => [] });
84
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3ItaGFuZGxlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcGF5bWVudC1saWIvc3JjL2xpYi9zZXJ2aWNlcy9zaGFyZWQvZXJyb3ItaGFuZGxlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFjLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFPOUMsTUFBTSxPQUFPLG1CQUFtQjtJQUU5QixnQkFBZ0IsQ0FBQztJQUVuQixXQUFXLENBQUMsR0FBc0I7UUFDaEMsSUFBSSxZQUFvQixDQUFDO1FBRXhCLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNOLE9BQU8sVUFBVSxDQUFDLDhCQUE4QixDQUFDLENBQUM7UUFDcEQsQ0FBQztRQUVMLHFEQUFxRDtRQUNyRCxJQUFJLEdBQUcsQ0FBQyxLQUFLLFlBQVksVUFBVSxFQUFFLENBQUM7WUFDcEMsWUFBWSxHQUFHLHNCQUFzQixHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQzNELENBQUM7YUFBTSxDQUFDO1lBQ04sNkNBQTZDO1lBQzdDLElBQUksR0FBRyxDQUFDLE1BQU0sS0FBSyxHQUFHLElBQUksR0FBRyxDQUFDLE1BQU0sS0FBSyxHQUFHLElBQUksR0FBRyxDQUFDLE1BQU0sS0FBSyxHQUFHLElBQUksR0FBRyxDQUFDLE1BQU0sS0FBSyxHQUFHLEVBQUUsQ0FBQztnQkFDekYsSUFBSSxDQUFDO29CQUNILGlDQUFpQztvQkFDakMsTUFBTSxXQUFXLEdBQUcsT0FBTyxHQUFHLENBQUMsS0FBSyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUM7b0JBQ3RGLElBQUcsV0FBVyxFQUFDLENBQUM7d0JBQ2QsSUFBSSxXQUFXLENBQUMsVUFBVSxJQUFJLFdBQVcsQ0FBQyxVQUFVLEtBQUssR0FBRyxFQUFFLENBQUM7NEJBQzdELFlBQVksR0FBRyx1QkFBdUIsQ0FBQzt3QkFDekMsQ0FBQzs2QkFBTSxJQUFJLFdBQVcsQ0FBQyxPQUFPLEVBQUUsQ0FBQzs0QkFDN0IsSUFBRyxXQUFXLENBQUMsS0FBSyxJQUFHLFNBQVMsSUFBSSxXQUFXLENBQUMsVUFBVSxLQUFLLEdBQUcsRUFBQyxDQUFDO2dDQUNoRSxZQUFZLEdBQUcsV0FBVyxDQUFDLEtBQUssQ0FBQzs0QkFDckMsQ0FBQztpQ0FBSSxDQUFDO2dDQUNKLFlBQVksR0FBRyxXQUFXLENBQUMsT0FBTyxDQUFDOzRCQUNyQyxDQUFDO3dCQUNMLENBQUM7NkJBQU0sSUFBSSxXQUFXLENBQUMsS0FBSyxFQUFFLENBQUM7NEJBQzdCLFlBQVksR0FBRyxXQUFXLENBQUMsS0FBSyxDQUFDO3dCQUNuQyxDQUFDOzZCQUFNLENBQUM7NEJBQ04sTUFBTSxtQkFBbUIsR0FBRyxvQkFBb0IsQ0FBQzs0QkFDakQsTUFBTSxLQUFLLEdBQUcsV0FBVyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsbUJBQW1CLENBQUMsQ0FBQzs0QkFDekQsSUFBSSxLQUFLLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0NBQ3RCLFlBQVksR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7NEJBQzFCLENBQUM7aUNBQU0sQ0FBQztnQ0FDTiw4Q0FBOEM7Z0NBQzlDLFlBQVksR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDOzRCQUMzQixDQUFDO3dCQUNILENBQUM7b0JBQ0gsQ0FBQzt5QkFBSSxDQUFDO3dCQUNKLFlBQVksR0FBRyw4QkFBOEIsQ0FBQztvQkFDaEQsQ0FBQztnQkFDSCxDQUFDO2dCQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7b0JBQ1gsNEJBQTRCO29CQUM1QixZQUFZLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQztnQkFDM0IsQ0FBQztZQUNILENBQUM7aUJBQU0sSUFBSSxHQUFHLENBQUMsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDO2dCQUM5QixZQUFZLEdBQUcsdUJBQXVCLENBQUM7WUFDekMsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLDBDQUEwQztnQkFDMUMsWUFBWSxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxJQUFJLEdBQUcsQ0FBQyxLQUFLLENBQUM7WUFDaEQsQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPLFVBQVUsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBTUMscUJBQXFCLENBQUMsWUFBWSxFQUFFLGNBQWMsR0FBRyxLQUFLLEVBQUUsS0FBSyxHQUFDLEVBQUU7UUFDbEUsTUFBTSxXQUFXLEdBQUcsY0FBYyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDO1FBQy9ELE9BQU87WUFDTCxLQUFLLEVBQUUscUNBQXFDO1lBQzVDLElBQUksRUFBRSxXQUFXO1lBQ2pCLFNBQVMsRUFBRSxZQUFZO1NBQ3hCLENBQUM7SUFDSixDQUFDO3dHQXJFVSxtQkFBbUI7NEdBQW5CLG1CQUFtQixjQUpsQixNQUFNOzs0RkFJUCxtQkFBbUI7a0JBTC9CLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSHR0cEVycm9yUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuXG5cbmV4cG9ydCBjbGFzcyBFcnJvckhhbmRsZXJTZXJ2aWNlIHtcblxuICBjb25zdHJ1Y3RvcigpIHsgfVxuXG5oYW5kbGVFcnJvcihlcnI6IEh0dHBFcnJvclJlc3BvbnNlKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgbGV0IGVycm9yTWVzc2FnZTogc3RyaW5nO1xuXG4gICBpZiAoIWVycikge1xuICAgICAgICByZXR1cm4gdGhyb3dFcnJvcignQW4gdW5leHBlY3RlZCBlcnJvciBvY2N1cnJlZCcpO1xuICAgICAgfVxuXG4gIC8vIENoZWNrIGlmIHRoZSBlcnJvciBpcyBjbGllbnQtc2lkZSBvciBuZXR3b3JrIGVycm9yXG4gIGlmIChlcnIuZXJyb3IgaW5zdGFuY2VvZiBFcnJvckV2ZW50KSB7XG4gICAgZXJyb3JNZXNzYWdlID0gYEFuIGVycm9yIG9jY3VycmVkOiAke2Vyci5lcnJvci5tZXNzYWdlfWA7XG4gIH0gZWxzZSB7XG4gICAgLy8gQ2hlY2sgaWYgdGhlIGVycm9yIGlzIGZyb20gdGhlIHNlcnZlci1zaWRlXG4gICAgaWYgKGVyci5zdGF0dXMgPT09IDQwMCB8fCBlcnIuc3RhdHVzID09PSA0MDQgfHwgZXJyLnN0YXR1cyA9PT0gNTAwIHx8IGVyci5zdGF0dXMgPT09IDQxMikge1xuICAgICAgdHJ5IHtcbiAgICAgICAgLy8gQXR0ZW1wdCB0byBwYXJzZSBlcnJvciBhcyBKU09OXG4gICAgICAgIGNvbnN0IHBhcnNlZEVycm9yID0gdHlwZW9mIGVyci5lcnJvciA9PT0gJ3N0cmluZycgPyBKU09OLnBhcnNlKGVyci5lcnJvcikgOiBlcnIuZXJyb3I7XG4gICAgICAgIGlmKHBhcnNlZEVycm9yKXtcbiAgICAgICAgICBpZiAocGFyc2VkRXJyb3Iuc3RhdHVzQ29kZSAmJiBwYXJzZWRFcnJvci5zdGF0dXNDb2RlID09PSA1MDApIHtcbiAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9ICdJbnRlcm5hbCBzZXJ2ZXIgZXJyb3InO1xuICAgICAgICAgIH0gZWxzZSBpZiAocGFyc2VkRXJyb3IubWVzc2FnZSkge1xuICAgICAgICAgICAgICBpZihwYXJzZWRFcnJvci5lcnJvciAhPXVuZGVmaW5lZCAmJiBwYXJzZWRFcnJvci5zdGF0dXNDb2RlID09PSA0MDApe1xuICAgICAgICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gcGFyc2VkRXJyb3IuZXJyb3I7XG4gICAgICAgICAgICAgIH1lbHNle1xuICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IHBhcnNlZEVycm9yLm1lc3NhZ2U7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2UgaWYgKHBhcnNlZEVycm9yLmVycm9yKSB7XG4gICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBwYXJzZWRFcnJvci5lcnJvcjtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgZXJyb3JNZXNzYWdlUGF0dGVybiA9IC9eXFxkK1xccy1cXHNcXFwiKC4rKVxcXCIkLztcbiAgICAgICAgICAgIGNvbnN0IG1hdGNoID0gcGFyc2VkRXJyb3IuZXJyLm1hdGNoKGVycm9yTWVzc2FnZVBhdHRlcm4pO1xuICAgICAgICAgICAgaWYgKG1hdGNoICYmIG1hdGNoWzFdKSB7XG4gICAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IG1hdGNoWzFdO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgLy8gRmFsbGJhY2sgaW4gY2FzZSB0aGUgcGF0dGVybiBkb2VzIG5vdCBtYXRjaFxuICAgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBlcnIuZXJyb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9ZWxzZXtcbiAgICAgICAgICBlcnJvck1lc3NhZ2UgPSAnQW4gdW5leHBlY3RlZCBlcnJvciBvY2N1cnJlZCc7XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgLy8gRmFsbGJhY2sgaWYgcGFyc2luZyBmYWlsc1xuICAgICAgICBlcnJvck1lc3NhZ2UgPSBlcnIuZXJyb3I7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChlcnIuc3RhdHVzID09PSA1MDApIHtcbiAgICAgIGVycm9yTWVzc2FnZSA9ICdJbnRlcm5hbCBzZXJ2ZXIgZXJyb3InO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBHZW5lcmFsIGZhbGxiYWNrIGZvciBvdGhlciBzdGF0dXMgY29kZXNcbiAgICAgIGVycm9yTWVzc2FnZSA9IGVyci5lcnJvci5tZXNzYWdlIHx8IGVyci5lcnJvcjtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHRocm93RXJyb3IoZXJyb3JNZXNzYWdlKTtcbn1cblxuXG5cblxuXG4gIGdldFNlcnZlckVycm9yTWVzc2FnZShpc0Vycm9yRXhpc3QsIGlzRGF0YU5vdEV4aXN0ID0gZmFsc2UsIGVycm9yPScnKSB7XG4gICAgY29uc3QgYm9keUNvbnRlbnQgPSBpc0RhdGFOb3RFeGlzdCA/IGVycm9yIDogJ1RyeSBhZ2FpbiBsYXRlcic7XG4gICAgcmV0dXJuIHtcbiAgICAgIHRpdGxlOiBcIlRoZXJlIGlzIGEgcHJvYmxlbSB3aXRoIHRoZSBzZXJ2aWNlXCIsXG4gICAgICBib2R5OiBib2R5Q29udGVudCxcbiAgICAgIHNob3dFcnJvcjogaXNFcnJvckV4aXN0XG4gICAgfTtcbiAgfVxufVxuIl19
84
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3ItaGFuZGxlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcGF5bWVudC1saWIvc3JjL2xpYi9zZXJ2aWNlcy9zaGFyZWQvZXJyb3ItaGFuZGxlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFjLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFPOUMsTUFBTSxPQUFPLG1CQUFtQjtJQUU5QixnQkFBZ0IsQ0FBQztJQUVuQixXQUFXLENBQUMsR0FBc0I7UUFDaEMsSUFBSSxZQUFvQixDQUFDO1FBRXhCLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNOLE9BQU8sVUFBVSxDQUFDLDhCQUE4QixDQUFDLENBQUM7UUFDcEQsQ0FBQztRQUVMLHFEQUFxRDtRQUNyRCxJQUFJLEdBQUcsQ0FBQyxLQUFLLFlBQVksVUFBVSxFQUFFLENBQUM7WUFDcEMsWUFBWSxHQUFHLHNCQUFzQixHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQzNELENBQUM7YUFBTSxDQUFDO1lBQ04sNkNBQTZDO1lBQzdDLElBQUksR0FBRyxDQUFDLE1BQU0sS0FBSyxHQUFHLElBQUksR0FBRyxDQUFDLE1BQU0sS0FBSyxHQUFHLElBQUksR0FBRyxDQUFDLE1BQU0sS0FBSyxHQUFHLEVBQUUsQ0FBQztnQkFDbkUsSUFBSSxDQUFDO29CQUNILGlDQUFpQztvQkFDakMsTUFBTSxXQUFXLEdBQUcsT0FBTyxHQUFHLENBQUMsS0FBSyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUM7b0JBQ3RGLElBQUcsV0FBVyxFQUFDLENBQUM7d0JBQ2QsSUFBSSxXQUFXLENBQUMsVUFBVSxJQUFJLFdBQVcsQ0FBQyxVQUFVLEtBQUssR0FBRyxFQUFFLENBQUM7NEJBQzdELFlBQVksR0FBRyx1QkFBdUIsQ0FBQzt3QkFDekMsQ0FBQzs2QkFBTSxJQUFJLFdBQVcsQ0FBQyxPQUFPLEVBQUUsQ0FBQzs0QkFDN0IsSUFBRyxXQUFXLENBQUMsS0FBSyxJQUFHLFNBQVMsSUFBSSxXQUFXLENBQUMsVUFBVSxLQUFLLEdBQUcsRUFBQyxDQUFDO2dDQUNoRSxZQUFZLEdBQUcsV0FBVyxDQUFDLEtBQUssQ0FBQzs0QkFDckMsQ0FBQztpQ0FBSSxDQUFDO2dDQUNKLFlBQVksR0FBRyxXQUFXLENBQUMsT0FBTyxDQUFDOzRCQUNyQyxDQUFDO3dCQUNMLENBQUM7NkJBQU0sSUFBSSxXQUFXLENBQUMsS0FBSyxFQUFFLENBQUM7NEJBQzdCLFlBQVksR0FBRyxXQUFXLENBQUMsS0FBSyxDQUFDO3dCQUNuQyxDQUFDOzZCQUFNLENBQUM7NEJBQ04sTUFBTSxtQkFBbUIsR0FBRyxvQkFBb0IsQ0FBQzs0QkFDakQsTUFBTSxLQUFLLEdBQUcsV0FBVyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsbUJBQW1CLENBQUMsQ0FBQzs0QkFDekQsSUFBSSxLQUFLLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0NBQ3RCLFlBQVksR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7NEJBQzFCLENBQUM7aUNBQU0sQ0FBQztnQ0FDTiw4Q0FBOEM7Z0NBQzlDLFlBQVksR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDOzRCQUMzQixDQUFDO3dCQUNILENBQUM7b0JBQ0gsQ0FBQzt5QkFBSSxDQUFDO3dCQUNKLFlBQVksR0FBRyw4QkFBOEIsQ0FBQztvQkFDaEQsQ0FBQztnQkFDSCxDQUFDO2dCQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7b0JBQ1gsNEJBQTRCO29CQUM1QixZQUFZLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQztnQkFDM0IsQ0FBQztZQUNILENBQUM7aUJBQU0sSUFBSSxHQUFHLENBQUMsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDO2dCQUM5QixZQUFZLEdBQUcsdUJBQXVCLENBQUM7WUFDekMsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLDBDQUEwQztnQkFDMUMsWUFBWSxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxJQUFJLEdBQUcsQ0FBQyxLQUFLLENBQUM7WUFDaEQsQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPLFVBQVUsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBTUMscUJBQXFCLENBQUMsWUFBWSxFQUFFLGNBQWMsR0FBRyxLQUFLLEVBQUUsS0FBSyxHQUFDLEVBQUU7UUFDbEUsTUFBTSxXQUFXLEdBQUcsY0FBYyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDO1FBQy9ELE9BQU87WUFDTCxLQUFLLEVBQUUscUNBQXFDO1lBQzVDLElBQUksRUFBRSxXQUFXO1lBQ2pCLFNBQVMsRUFBRSxZQUFZO1NBQ3hCLENBQUM7SUFDSixDQUFDO3dHQXJFVSxtQkFBbUI7NEdBQW5CLG1CQUFtQixjQUpsQixNQUFNOzs0RkFJUCxtQkFBbUI7a0JBTC9CLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSHR0cEVycm9yUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuXG5cbmV4cG9ydCBjbGFzcyBFcnJvckhhbmRsZXJTZXJ2aWNlIHtcblxuICBjb25zdHJ1Y3RvcigpIHsgfVxuXG5oYW5kbGVFcnJvcihlcnI6IEh0dHBFcnJvclJlc3BvbnNlKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgbGV0IGVycm9yTWVzc2FnZTogc3RyaW5nO1xuXG4gICBpZiAoIWVycikge1xuICAgICAgICByZXR1cm4gdGhyb3dFcnJvcignQW4gdW5leHBlY3RlZCBlcnJvciBvY2N1cnJlZCcpO1xuICAgICAgfVxuXG4gIC8vIENoZWNrIGlmIHRoZSBlcnJvciBpcyBjbGllbnQtc2lkZSBvciBuZXR3b3JrIGVycm9yXG4gIGlmIChlcnIuZXJyb3IgaW5zdGFuY2VvZiBFcnJvckV2ZW50KSB7XG4gICAgZXJyb3JNZXNzYWdlID0gYEFuIGVycm9yIG9jY3VycmVkOiAke2Vyci5lcnJvci5tZXNzYWdlfWA7XG4gIH0gZWxzZSB7XG4gICAgLy8gQ2hlY2sgaWYgdGhlIGVycm9yIGlzIGZyb20gdGhlIHNlcnZlci1zaWRlXG4gICAgaWYgKGVyci5zdGF0dXMgPT09IDQwMCB8fCBlcnIuc3RhdHVzID09PSA0MDQgfHwgZXJyLnN0YXR1cyA9PT0gNTAwKSB7XG4gICAgICB0cnkge1xuICAgICAgICAvLyBBdHRlbXB0IHRvIHBhcnNlIGVycm9yIGFzIEpTT05cbiAgICAgICAgY29uc3QgcGFyc2VkRXJyb3IgPSB0eXBlb2YgZXJyLmVycm9yID09PSAnc3RyaW5nJyA/IEpTT04ucGFyc2UoZXJyLmVycm9yKSA6IGVyci5lcnJvcjtcbiAgICAgICAgaWYocGFyc2VkRXJyb3Ipe1xuICAgICAgICAgIGlmIChwYXJzZWRFcnJvci5zdGF0dXNDb2RlICYmIHBhcnNlZEVycm9yLnN0YXR1c0NvZGUgPT09IDUwMCkge1xuICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gJ0ludGVybmFsIHNlcnZlciBlcnJvcic7XG4gICAgICAgICAgfSBlbHNlIGlmIChwYXJzZWRFcnJvci5tZXNzYWdlKSB7XG4gICAgICAgICAgICAgIGlmKHBhcnNlZEVycm9yLmVycm9yICE9dW5kZWZpbmVkICYmIHBhcnNlZEVycm9yLnN0YXR1c0NvZGUgPT09IDQwMCl7XG4gICAgICAgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBwYXJzZWRFcnJvci5lcnJvcjtcbiAgICAgICAgICAgICAgfWVsc2V7XG4gICAgICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gcGFyc2VkRXJyb3IubWVzc2FnZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSBpZiAocGFyc2VkRXJyb3IuZXJyb3IpIHtcbiAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IHBhcnNlZEVycm9yLmVycm9yO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBlcnJvck1lc3NhZ2VQYXR0ZXJuID0gL15cXGQrXFxzLVxcc1xcXCIoLispXFxcIiQvO1xuICAgICAgICAgICAgY29uc3QgbWF0Y2ggPSBwYXJzZWRFcnJvci5lcnIubWF0Y2goZXJyb3JNZXNzYWdlUGF0dGVybik7XG4gICAgICAgICAgICBpZiAobWF0Y2ggJiYgbWF0Y2hbMV0pIHtcbiAgICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gbWF0Y2hbMV07XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAvLyBGYWxsYmFjayBpbiBjYXNlIHRoZSBwYXR0ZXJuIGRvZXMgbm90IG1hdGNoXG4gICAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IGVyci5lcnJvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1lbHNle1xuICAgICAgICAgIGVycm9yTWVzc2FnZSA9ICdBbiB1bmV4cGVjdGVkIGVycm9yIG9jY3VycmVkJztcbiAgICAgICAgfVxuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAvLyBGYWxsYmFjayBpZiBwYXJzaW5nIGZhaWxzXG4gICAgICAgIGVycm9yTWVzc2FnZSA9IGVyci5lcnJvcjtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGVyci5zdGF0dXMgPT09IDUwMCkge1xuICAgICAgZXJyb3JNZXNzYWdlID0gJ0ludGVybmFsIHNlcnZlciBlcnJvcic7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIEdlbmVyYWwgZmFsbGJhY2sgZm9yIG90aGVyIHN0YXR1cyBjb2Rlc1xuICAgICAgZXJyb3JNZXNzYWdlID0gZXJyLmVycm9yLm1lc3NhZ2UgfHwgZXJyLmVycm9yO1xuICAgIH1cbiAgfVxuICByZXR1cm4gdGhyb3dFcnJvcihlcnJvck1lc3NhZ2UpO1xufVxuXG5cblxuXG5cbiAgZ2V0U2VydmVyRXJyb3JNZXNzYWdlKGlzRXJyb3JFeGlzdCwgaXNEYXRhTm90RXhpc3QgPSBmYWxzZSwgZXJyb3I9JycpIHtcbiAgICBjb25zdCBib2R5Q29udGVudCA9IGlzRGF0YU5vdEV4aXN0ID8gZXJyb3IgOiAnVHJ5IGFnYWluIGxhdGVyJztcbiAgICByZXR1cm4ge1xuICAgICAgdGl0bGU6IFwiVGhlcmUgaXMgYSBwcm9ibGVtIHdpdGggdGhlIHNlcnZpY2VcIixcbiAgICAgIGJvZHk6IGJvZHlDb250ZW50LFxuICAgICAgc2hvd0Vycm9yOiBpc0Vycm9yRXhpc3RcbiAgICB9O1xuICB9XG59XG4iXX0=