ng-easycommerce 0.1.1 → 1.1.3

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.
Files changed (115) hide show
  1. package/README.md +14 -0
  2. package/assets/ec-i18n/ct.json +4 -0
  3. package/assets/ec-i18n/en.json +4 -0
  4. package/assets/ec-i18n/es.json +4 -0
  5. package/assets/ec-i18n/fr.json +4 -0
  6. package/assets/ec-i18n/gl.json +4 -0
  7. package/assets/ec-i18n/pr.json +4 -0
  8. package/bundles/ng-easycommerce.umd.js +5191 -3521
  9. package/bundles/ng-easycommerce.umd.js.map +1 -1
  10. package/bundles/ng-easycommerce.umd.min.js +1 -1
  11. package/bundles/ng-easycommerce.umd.min.js.map +1 -1
  12. package/esm2015/lib/api/connection.service.js +2 -2
  13. package/esm2015/lib/core.consts.js +4 -5
  14. package/esm2015/lib/ec-component/account-ec/order-ec/order-ec.component.js +2 -2
  15. package/esm2015/lib/ec-component/cart-bootstrap-navigation.js +27 -0
  16. package/esm2015/lib/ec-component/cart-ec/cart-ec.component.js +11 -1
  17. package/esm2015/lib/ec-component/checkout-ec/checkout-ec.component.js +28 -3
  18. package/esm2015/lib/ec-component/checkout-ec/dataform-ec/dataform-ec.component.js +185 -13
  19. package/esm2015/lib/ec-component/checkout-ec/detail-checkout-block-ec/detail-checkout-block-ec.component.js +6 -2
  20. package/esm2015/lib/ec-component/checkout-ec/payment-ec/payment-ec.component.js +26 -9
  21. package/esm2015/lib/ec-component/checkout-ec/payment-ec-single/payment-ec-single.component.js +11 -3
  22. package/esm2015/lib/ec-component/checkout-ec/shipment-ec/shipment-ec.component.js +4 -2
  23. package/esm2015/lib/ec-component/coupon-ec/coupon-ec.component.js +6 -1
  24. package/esm2015/lib/guards/able-buyer-guard.service.js +2 -2
  25. package/esm2015/lib/guards/auth-guard.service.js +2 -2
  26. package/esm2015/lib/guards/checkout-ready.service.js +3 -3
  27. package/esm2015/lib/guards/loggedin-guard.service.js +2 -2
  28. package/esm2015/lib/guards/user-role-guard.service.js +2 -2
  29. package/esm2015/lib/interfaces/checkout-data.js +1 -1
  30. package/esm2015/lib/services/account/orders.service.js +6 -4
  31. package/esm2015/lib/services/auth.service.js +4 -3
  32. package/esm2015/lib/services/captcha.service.js +6 -4
  33. package/esm2015/lib/services/cart.service.js +1194 -74
  34. package/esm2015/lib/services/channel-config.service.js +4 -6
  35. package/esm2015/lib/services/checkout/addressing.service.js +65 -9
  36. package/esm2015/lib/services/checkout/checkout.service.js +58 -9
  37. package/esm2015/lib/services/checkout/error-handler.service.js +4 -3
  38. package/esm2015/lib/services/checkout/payment.service.js +35 -15
  39. package/esm2015/lib/services/checkout/shipment.service.js +54 -3
  40. package/esm2015/lib/services/concatenated-associations.service.js +4 -3
  41. package/esm2015/lib/services/currency.service.js +5 -3
  42. package/esm2015/lib/services/filters.service.js +2 -2
  43. package/esm2015/lib/services/footer/footer.service.js +4 -3
  44. package/esm2015/lib/services/gift-card.service.js +56 -5
  45. package/esm2015/lib/services/parameters.service.js +5 -3
  46. package/esm2015/lib/services/reviews.service.js +5 -4
  47. package/esm2015/lib/services/seo.service.js +4 -5
  48. package/esm2015/lib/services/stores.service.js +4 -3
  49. package/esm2015/lib/services/wishlist.service.js +3 -4
  50. package/esm2015/lib/utils/analytics/google-analytics.service.js +1 -1
  51. package/esm2015/lib/utils/order-util.service.js +22 -2
  52. package/esm2015/lib/utils/price-presentation.service.js +2 -3
  53. package/esm2015/lib/utils/shipping-price-display.service.js +2 -3
  54. package/esm5/lib/api/connection.service.js +2 -2
  55. package/esm5/lib/core.consts.js +4 -5
  56. package/esm5/lib/ec-component/account-ec/order-ec/order-ec.component.js +2 -2
  57. package/esm5/lib/ec-component/cart-bootstrap-navigation.js +27 -0
  58. package/esm5/lib/ec-component/cart-ec/cart-ec.component.js +11 -1
  59. package/esm5/lib/ec-component/checkout-ec/checkout-ec.component.js +28 -3
  60. package/esm5/lib/ec-component/checkout-ec/dataform-ec/dataform-ec.component.js +206 -12
  61. package/esm5/lib/ec-component/checkout-ec/detail-checkout-block-ec/detail-checkout-block-ec.component.js +6 -2
  62. package/esm5/lib/ec-component/checkout-ec/payment-ec/payment-ec.component.js +31 -14
  63. package/esm5/lib/ec-component/checkout-ec/payment-ec-single/payment-ec-single.component.js +11 -3
  64. package/esm5/lib/ec-component/checkout-ec/shipment-ec/shipment-ec.component.js +5 -3
  65. package/esm5/lib/ec-component/coupon-ec/coupon-ec.component.js +6 -1
  66. package/esm5/lib/guards/able-buyer-guard.service.js +2 -2
  67. package/esm5/lib/guards/auth-guard.service.js +2 -2
  68. package/esm5/lib/guards/checkout-ready.service.js +3 -3
  69. package/esm5/lib/guards/loggedin-guard.service.js +2 -2
  70. package/esm5/lib/guards/user-role-guard.service.js +2 -2
  71. package/esm5/lib/interfaces/checkout-data.js +1 -1
  72. package/esm5/lib/services/account/orders.service.js +6 -4
  73. package/esm5/lib/services/auth.service.js +4 -3
  74. package/esm5/lib/services/captcha.service.js +6 -4
  75. package/esm5/lib/services/cart.service.js +1243 -94
  76. package/esm5/lib/services/channel-config.service.js +4 -6
  77. package/esm5/lib/services/checkout/addressing.service.js +65 -9
  78. package/esm5/lib/services/checkout/checkout.service.js +65 -13
  79. package/esm5/lib/services/checkout/error-handler.service.js +4 -3
  80. package/esm5/lib/services/checkout/payment.service.js +29 -11
  81. package/esm5/lib/services/checkout/shipment.service.js +58 -7
  82. package/esm5/lib/services/concatenated-associations.service.js +4 -3
  83. package/esm5/lib/services/currency.service.js +5 -3
  84. package/esm5/lib/services/filters.service.js +2 -2
  85. package/esm5/lib/services/footer/footer.service.js +4 -3
  86. package/esm5/lib/services/gift-card.service.js +59 -5
  87. package/esm5/lib/services/parameters.service.js +5 -3
  88. package/esm5/lib/services/reviews.service.js +5 -4
  89. package/esm5/lib/services/seo.service.js +4 -5
  90. package/esm5/lib/services/stores.service.js +4 -3
  91. package/esm5/lib/services/wishlist.service.js +3 -4
  92. package/esm5/lib/utils/analytics/google-analytics.service.js +1 -1
  93. package/esm5/lib/utils/order-util.service.js +22 -2
  94. package/esm5/lib/utils/price-presentation.service.js +2 -3
  95. package/esm5/lib/utils/shipping-price-display.service.js +2 -3
  96. package/fesm2015/ng-easycommerce.js +4360 -2745
  97. package/fesm2015/ng-easycommerce.js.map +1 -1
  98. package/fesm5/ng-easycommerce.js +5193 -3523
  99. package/fesm5/ng-easycommerce.js.map +1 -1
  100. package/lib/ec-component/cart-bootstrap-navigation.d.ts +7 -0
  101. package/lib/ec-component/cart-ec/cart-ec.component.d.ts +5 -2
  102. package/lib/ec-component/checkout-ec/checkout-ec.component.d.ts +6 -1
  103. package/lib/ec-component/checkout-ec/dataform-ec/dataform-ec.component.d.ts +27 -3
  104. package/lib/ec-component/checkout-ec/detail-checkout-block-ec/detail-checkout-block-ec.component.d.ts +1 -1
  105. package/lib/ec-component/checkout-ec/payment-ec/payment-ec.component.d.ts +3 -0
  106. package/lib/ec-component/checkout-ec/payment-ec-single/payment-ec-single.component.d.ts +3 -0
  107. package/lib/interfaces/checkout-data.d.ts +6 -1
  108. package/lib/services/cart.service.d.ts +123 -7
  109. package/lib/services/checkout/addressing.service.d.ts +1 -1
  110. package/lib/services/checkout/checkout.service.d.ts +3 -0
  111. package/lib/services/checkout/shipment.service.d.ts +2 -2
  112. package/lib/services/gift-card.service.d.ts +1 -0
  113. package/lib/utils/order-util.service.d.ts +1 -0
  114. package/ng-easycommerce.metadata.json +1 -1
  115. package/package.json +1 -1
@@ -17,6 +17,8 @@ let PaymentEcSingleComponent = class PaymentEcSingleComponent {
17
17
  this.balanceMethodRejected = false;
18
18
  this.methods = [];
19
19
  this.totalAmount = null;
20
+ this.getPaymentMethodAdjustmentPreview = () => null;
21
+ this.getPaymentMethodAdjustmentPreviewSign = () => '';
20
22
  this.isMethodDisabled = () => false;
21
23
  this.isMP = () => false;
22
24
  this.isMPTarjetaDeCredito = () => false;
@@ -74,6 +76,12 @@ __decorate([
74
76
  __decorate([
75
77
  Input()
76
78
  ], PaymentEcSingleComponent.prototype, "totalAmount", void 0);
79
+ __decorate([
80
+ Input()
81
+ ], PaymentEcSingleComponent.prototype, "getPaymentMethodAdjustmentPreview", void 0);
82
+ __decorate([
83
+ Input()
84
+ ], PaymentEcSingleComponent.prototype, "getPaymentMethodAdjustmentPreviewSign", void 0);
77
85
  __decorate([
78
86
  Input()
79
87
  ], PaymentEcSingleComponent.prototype, "isMethodDisabled", void 0);
@@ -149,9 +157,9 @@ __decorate([
149
157
  PaymentEcSingleComponent = __decorate([
150
158
  Component({
151
159
  selector: 'app-payment-ec-single',
152
- template: "<div *ngIf=\"methods?.length\">\n <div class=\"payment-compact payment-compact-flat payment-step-surface\">\n <div class=\"single-step-overlay\" *ngIf=\"loadingInternalMp\">\n <app-loading-full-ec></app-loading-full-ec>\n </div>\n <div class=\"card-body\">\n <div class=\"payment-lock-message\" *ngIf=\"paymentLocked\">\n {{ 'shipment-method-required' | translate }}\n </div>\n <div class=\"payment-options\" [class.is-locked]=\"paymentLocked\">\n <ng-container *ngFor=\"let method of methods\">\n <label class=\"payment-option\"\n [class.is-selected]=\"selectedMethodCode === method.code\"\n [class.is-disabled]=\"isMethodDisabled(method)\">\n <input class=\"payment-option-input\" type=\"radio\" name=\"payment-option\"\n [checked]=\"selectedMethodCode === method.code\"\n [disabled]=\"paymentLocked || isMethodDisabled(method)\"\n (click)=\"selectMethod.emit(method)\">\n <span class=\"payment-option-title\">{{ method.name | translate }}</span>\n <span class=\"payment-option-logos\" *ngIf=\"method.images?.length\">\n <img class=\"payment-option-logo\"\n *ngFor=\"let logo of getVisibleImages(method.images)\"\n [src]=\"getImageUrl ? getImageUrl(logo) : (logo?.path || logo?.url || logo?.src || logo)\"\n [alt]=\"logo?.name || (method.name || '')\"\n [title]=\"logo?.name || (method.name || '')\">\n <span class=\"payment-option-more\"\n *ngIf=\"method.images.length > 4\"\n [tooltip]=\"hiddenImagesTpl\"\n placement=\"top\"\n container=\"body\"\n triggers=\"hover\">\n +{{ method.images.length - 3 }}\n </span>\n <ng-template #hiddenImagesTpl>\n <span class=\"payment-tooltip-logos\">\n <img class=\"payment-tooltip-logo\"\n *ngFor=\"let logo of getHiddenImages(method.images)\"\n [src]=\"getImageUrl ? getImageUrl(logo) : (logo?.path || logo?.url || logo?.src || logo)\"\n [alt]=\"logo?.name || ''\">\n </span>\n </ng-template>\n </span>\n </label>\n <div class=\"payment-option-details\" *ngIf=\"selectedMethodCode === method.code\">\n <ng-container *ngIf=\"validatingMethodCode === method.code; else methodContent\">\n <div class=\"d-flex justify-content-center py-2\">\n <app-loading-inline-ec></app-loading-inline-ec>\n </div>\n </ng-container>\n <ng-template #methodContent>\n <ng-container *ngIf=\"!showMethodError && currentMethod?.code === method.code\">\n <div class=\"method-container text-dark\" *ngIf=\"isMP(method.code)\">\n <p id=\"faqs\" class=\"qt px-5 \">{{ method.description }}</p>\n <p class=\"px-5\">{{ method.instructions }}</p>\n <app-mp-redirect-ec (ready)=\"verifyValidate.emit($event)\" [method]=\"method\"\n [paymentServiceInst]=\"paymentServiceInst\"\n [allData]=\"allData()\"></app-mp-redirect-ec>\n </div>\n <div class=\"method-container text-dark text-left\"\n *ngIf=\"isMPTarjetaDeCredito(method.code)\">\n <div class=\"row\">\n <div class=\"col-12\">\n <p id=\"faqs\" class=\"qt px-5 \">{{ method.description }}</p>\n <p class=\"px-5\">{{ method.instructions }}</p>\n <div app-mp-credit-ec (ready)=\"verifyValidate.emit()\"\n [public_key]=\"getPK(method)\" [user_data]=\"allData()\"\n [total_amount]=\"totalAmount\">\n </div>\n </div>\n </div>\n </div>\n <div class=\"method-container text-dark text-start\"\n *ngIf=\"isRedirectRedsys(method.code)\">\n <div class=\"row\">\n <div class=\"col-12\">\n <ng-container\n *ngIf=\"!method.code.includes('bizum') && !method.code.includes('_out_')\">\n <app-redsys-redirect-ec (ready)=\"verifyValidate.emit($event)\"\n [method]=\"method\" [user_data]=\"allData()\">\n </app-redsys-redirect-ec>\n </ng-container>\n <ng-container\n *ngIf=\"method.code.includes('bizum') || method.code.includes('_out_')\">\n <app-redsys-redirect-out-ec (ready)=\"verifyValidate.emit($event)\"\n [method]=\"method\" [user_data]=\"allData()\">\n </app-redsys-redirect-out-ec>\n </ng-container>\n </div>\n </div>\n </div>\n <div class=\"method-container text-dark text-start\"\n *ngIf=\"isRedirectCecaBank(method.code)\">\n <div class=\"row\">\n <div class=\"col-12\">\n <app-ceca-redirect-ec (ready)=\"verifyValidate.emit($event)\" [method]=\"method\"\n [user_data]=\"allData()\">\n </app-ceca-redirect-ec>\n </div>\n </div>\n </div>\n <div class=\"method-container text-dark text-start\" *ngIf=\"isPeyPalExpress(method.code)\">\n <div class=\"container\">\n <div class=\"row justify-content-center\">\n <div class=\"col-12\">\n <app-paypal-express-ec (ready)=\"verifyValidate.emit($event)\"\n [method]=\"method\" [user_data]=\"allData()\"\n [total_amount]=\"totalAmount\">\n </app-paypal-express-ec>\n </div>\n </div>\n </div>\n </div>\n <div class=\"method-container text-dark text-start\" *ngIf=\"isMobbex(method.code)\">\n <div class=\"container\">\n <div class=\"row justify-content-center\">\n <div class=\"col-12\">\n <app-mobbex-ec (ready)=\"verifyValidate.emit($event)\" [method]=\"method\"\n [user_data]=\"allData()\" [paymentServiceInst]=\"paymentServiceInst\"\n [total_amount]=\"totalAmount\">\n </app-mobbex-ec>\n </div>\n </div>\n </div>\n </div>\n <div class=\"method-container text-dark text-start\" *ngIf=\"isBancard(method.code)\">\n <div class=\"container\">\n <div class=\"row justify-content-center\">\n <div class=\"col-12\">\n <app-bancard-ec (ready)=\"verifyValidate.emit($event)\" [method]=\"method\"\n [user_data]=\"allData()\" [paymentServiceInst]=\"paymentServiceInst\"\n [total_amount]=\"totalAmount\">\n </app-bancard-ec>\n </div>\n </div>\n </div>\n </div>\n <div class=\"method-container text-dark text-start\" *ngIf=\"isDecidir(method.code)\">\n <div class=\"container\">\n <div class=\"row justify-content-center\">\n <div class=\"col-12\">\n <app-decidir-ec (ready)=\"verifyValidate.emit($event)\" [method]=\"method\"\n [user_data]=\"allData()\" [paymentServiceInst]=\"paymentServiceInst\"\n [total_amount]=\"totalAmount\">\n </app-decidir-ec>\n </div>\n </div>\n </div>\n </div>\n <div class=\"method-container text-dark\" *ngIf=\"isMethodOffline(method.code)\">\n <p id=\"faqs\" class=\"qt px-5\">{{ method.description }}</p>\n <p class=\"px-5\">{{ method.instructions }}</p>\n <div class=\"end-button\">\n <button class=\"btn comprar\" (click)=\"setLoading.emit(); verifyValidate.emit()\">{{\n ('pay-with-offline'| translate) }}</button>\n </div>\n <ng-container *ngIf=\"loadingInternal\">\n <div class=\"mt-2\">\n <app-loading-inline-ec></app-loading-inline-ec>\n </div>\n </ng-container>\n </div>\n <div class=\"method-container text-dark text-start\" *ngIf=\"isCulqi(method.code)\">\n <div class=\"container\">\n <div class=\"row justify-content-center\">\n <div class=\"col-12\">\n <app-culqi-ec [apiKey]=\"getPKCulqi(method)\" [method]=\"method\"\n [amount]=\"totalAmount\" [customStyle]=\"true\"\n (ready)=\"verifyValidate.emit()\"></app-culqi-ec>\n </div>\n </div>\n </div>\n </div>\n <div class=\"method-container text-dark text-start\" *ngIf=\"isCatastro(method.code)\">\n <div class=\"container\">\n <div class=\"row justify-content-center\">\n <div class=\"col-12\">\n <app-bancard-catastro-ec (ready)=\"verifyValidate.emit($event)\"\n [method]=\"method\" [user_data]=\"allData()\"\n [paymentServiceInst]=\"paymentServiceInst\"\n [total_amount]=\"totalAmount\"></app-bancard-catastro-ec>\n </div>\n </div>\n </div>\n </div>\n <div class=\"method-container text-dark text-start\" *ngIf=\"isBamboo(method.code)\">\n <div class=\"container\">\n <div class=\"row justify-content-center\">\n <div class=\"col-12\">\n <app-bamboo-ec (ready)=\"verifyValidate.emit($event)\" [method]=\"method\"\n [user_data]=\"allData()\" [paymentServiceInst]=\"paymentServiceInst\"\n [total_amount]=\"totalAmount\"></app-bamboo-ec>\n </div>\n </div>\n </div>\n </div>\n <div class=\"method-container text-dark\" *ngIf=\"isBankTransfer(method.code)\">\n <div class=\"row px-0 description-cont\">\n <ng-container\n *ngFor=\"let line of method.description.split('\\r\\n'); let i=index\">\n <p [id]=\"'faqs-'+i\" [class]=\"'qt px-5 m-0 line-'+i\">{{ line }}</p>\n </ng-container>\n </div>\n <hr *ngIf=\"method.instructions\">\n <div *ngIf=\"method.instructions\" class=\"row px-0 instructions-cont mb-1\">\n <h5 class=\"instructions-title\">{{ ('instructions' | translate) }}</h5>\n <ng-container\n *ngFor=\"let line of method.instructions.split('\\r\\n'); let i=index\">\n <p [class]=\"'px-5 m-0 instructions-text line-'+i \">{{ line }}</p>\n </ng-container>\n </div>\n\n <div class=\"end-button\">\n <button class=\"btn comprar\" (click)=\"setLoading.emit(); verifyValidate.emit()\">{{\n ('pay-with-transfer'\n | translate) }}</button>\n </div>\n <ng-container *ngIf=\"loadingInternal\">\n <div class=\"mt-2\">\n <app-loading-inline-ec></app-loading-inline-ec>\n </div>\n </ng-container>\n </div>\n <div class=\"method-container text-dark\" *ngIf=\"isPlaceToPay(method.code)\">\n <p id=\"faqs\" *ngIf=\"method.description\" class=\"qt px-5 \">{{ method.description }}\n </p>\n <p class=\"px-5\" *ngIf=\"method.instructions\">{{ method.instructions }}</p>\n <app-place-to-pay-ec (ready)=\"verifyValidate.emit($event)\" [method]=\"method\"\n [paymentServiceInst]=\"paymentServiceInst\" [allData]=\"allData()\">\n </app-place-to-pay-ec>\n </div>\n </ng-container>\n <ng-container *ngIf=\"showMethodError\">\n <div class=\"text-danger mt-2 px-3 fw-bold\">\n {{ 'this-payment-method-cannot-be-used' | translate }}\n </div>\n </ng-container>\n <div class=\"method-container text-dark\"\n *ngIf=\"currentMethod?.code === method.code && isBalanceInAccount(method.code) && !showMethodError\">\n <div class=\"row px-0 description-cont\" *ngIf=\"method.description\">\n <ng-container *ngFor=\"let line of method.description.split('\\r\\n'); let i = index\">\n <p [id]=\"'cc-desc-'+i\" [class]=\"'qt px-5 m-0 line-'+i\">{{ line }}</p>\n </ng-container>\n </div>\n\n <hr *ngIf=\"method.instructions\">\n\n <div *ngIf=\"method.instructions\" class=\"row px-0 instructions-cont mb-1\">\n <h5 class=\"instructions-title\">{{ ('instructions' | translate) }}</h5>\n <ng-container *ngFor=\"let line of method.instructions.split('\\r\\n'); let i = index\">\n <p [class]=\"'px-5 m-0 instructions-text line-'+i \">{{ line }}</p>\n </ng-container>\n </div>\n\n <ng-container *ngIf=\"!balanceMethodRejected; else showCreditError\">\n <div class=\"end-button\">\n <button class=\"btn comprar\" (click)=\"setLoading.emit(); verifyValidate.emit()\">\n {{ 'pay-with' | translate }} {{ method.name }}\n </button>\n </div>\n </ng-container>\n\n <ng-template #showCreditError>\n <div class=\"text-danger mt-2 px-3 fw-bold\">\n {{ 'not-enough-credits-to-complete' | translate }}\n </div>\n </ng-template>\n <ng-container *ngIf=\"loadingInternal\">\n <div class=\"mt-2\">\n <app-loading-inline-ec></app-loading-inline-ec>\n </div>\n </ng-container>\n </div>\n </ng-template>\n </div>\n </ng-container>\n </div>\n </div>\n </div>\n</div>\n",
153
- styles: [".payment-compact{border:1px solid var(--ec-border,#e3e3e3);border-radius:6px;width:100%}.payment-compact-flat{border:0;background:0 0;width:100%}.payment-compact-flat .card-body{padding:0}.payment-step-surface{position:relative}.single-step-overlay{position:absolute;inset:0;background:rgba(255,255,255,.6);display:flex;align-items:center;justify-content:center;z-index:5}.payment-options{display:-ms-grid;display:grid;gap:0;border:1px solid var(--ec-border,#e3e3e3);border-radius:6px;overflow:visible;background:var(--ec-surface,#fff);width:100%}.payment-option{display:-ms-grid;display:grid;-ms-grid-columns:auto 1fr auto;grid-template-columns:auto 1fr auto;gap:.75rem;padding:.75rem;border-top:1px solid var(--ec-border,#e3e3e3);cursor:pointer;align-items:center;background:var(--ec-surface,#fff);transition:border-color .2s,box-shadow .2s;margin:0}.payment-option:first-child{border-top:0}.payment-option.is-selected{border-color:var(--ec-accent,#2563eb);background:var(--ec-accent-soft,#f5f8ff);box-shadow:inset 0 0 0 1px var(--ec-accent,#2563eb)}.payment-option.is-disabled{opacity:.6;cursor:not-allowed}.payment-option-input{margin-top:.1rem}.payment-option-title{font-weight:600}.payment-option-logos{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.payment-option-logo{width:44px;height:28px;-o-object-fit:contain;object-fit:contain;background:#fff;border:1px solid #e5e7eb;border-radius:6px;box-shadow:0 1px 2px rgba(15,23,42,.08);padding:3px;filter:saturate(.96) contrast(1.02)}.payment-option-more{width:44px;height:28px;display:inline-flex;align-items:center;justify-content:center;background:#f8fafc;border:1px solid #e5e7eb;border-radius:6px;font-size:12px;font-weight:600;color:#475569;box-shadow:0 1px 2px rgba(15,23,42,.08)}.payment-tooltip-logos{display:flex;gap:.5rem;align-items:center;padding:.25rem .4rem}.payment-tooltip-logo{width:44px;height:28px;-o-object-fit:contain;object-fit:contain;background:#fff;border:1px solid #e5e7eb;border-radius:6px;box-shadow:0 1px 2px rgba(15,23,42,.08);padding:3px}.payment-option-details{border-top:1px solid var(--ec-border,#e3e3e3);padding:1rem;background:var(--ec-surface-alt,#fafafa)}.payment-option-details .method-container{padding:0 .5rem .5rem}.payment-option-details .container,.payment-option-details .row{margin-left:0;margin-right:0}.payment-option-details .px-5{padding-left:.75rem!important;padding-right:.75rem!important}.payment-option-details .end-button{padding:0 .75rem .5rem}.payment-option-details .instructions-text,.payment-option-details .instructions-title{padding-left:.75rem;padding-right:.75rem}.payment-compact-flat .comprar{font-size:14px;padding:8px 16px;border-radius:6px}.comprar{background:var(--ec-accent,#000);color:var(--ec-accent-contrast,#fff);display:inline-block;font-weight:600;text-decoration:none;text-transform:uppercase;border:0}.payment-lock-message{background:#fff7e6;border:1px solid #f0c36d;color:#8a5a00;padding:.75rem 1rem;border-radius:8px;margin-bottom:.75rem;font-weight:600}.payment-options.is-locked{opacity:.55;filter:grayscale(.2)}"]
160
+ template: "<div *ngIf=\"methods?.length\">\n <div class=\"payment-compact payment-compact-flat payment-step-surface\">\n <div class=\"single-step-overlay\" *ngIf=\"loadingInternalMp\">\n <app-loading-full-ec></app-loading-full-ec>\n </div>\n <div class=\"card-body\">\n <div class=\"payment-lock-message\" *ngIf=\"paymentLocked\">\n {{ 'shipment-method-required' | translate }}\n </div>\n <div class=\"payment-options\" [class.is-locked]=\"paymentLocked\">\n <ng-container *ngFor=\"let method of methods\">\n <label class=\"payment-option\"\n [class.is-selected]=\"selectedMethodCode === method.code\"\n [class.is-disabled]=\"isMethodDisabled(method)\">\n <input class=\"payment-option-input\" type=\"radio\" name=\"payment-option\"\n [checked]=\"selectedMethodCode === method.code\"\n [disabled]=\"paymentLocked || isMethodDisabled(method)\"\n (click)=\"selectMethod.emit(method)\">\n <span class=\"payment-option-info\">\n <span class=\"payment-option-title\">{{ method.name | translate }}</span>\n <span class=\"payment-option-adjustment\"\n *ngIf=\"getPaymentMethodAdjustmentPreview(method) as adjustmentPreview\">\n <ng-container *ngIf=\"adjustmentPreview.type === 'percentage'; else fixedAdjustment\">\n {{ getPaymentMethodAdjustmentPreviewSign(adjustmentPreview.value) }}{{ adjustmentPreview.value }}%\n </ng-container>\n <ng-template #fixedAdjustment>\n {{ getPaymentMethodAdjustmentPreviewSign(adjustmentPreview.value) }}{{ adjustmentPreview.value | ecCurrencySymbol:'alwaysShowDecimals' }}\n </ng-template>\n </span>\n </span>\n <span class=\"payment-option-logos\" *ngIf=\"method.images?.length\">\n <img class=\"payment-option-logo\"\n *ngFor=\"let logo of getVisibleImages(method.images)\"\n [src]=\"getImageUrl ? getImageUrl(logo) : (logo?.path || logo?.url || logo?.src || logo)\"\n [alt]=\"logo?.name || (method.name || '')\"\n [title]=\"logo?.name || (method.name || '')\">\n <span class=\"payment-option-more\"\n *ngIf=\"method.images.length > 4\"\n [tooltip]=\"hiddenImagesTpl\"\n placement=\"top\"\n container=\"body\"\n triggers=\"hover\">\n +{{ method.images.length - 3 }}\n </span>\n <ng-template #hiddenImagesTpl>\n <span class=\"payment-tooltip-logos\">\n <img class=\"payment-tooltip-logo\"\n *ngFor=\"let logo of getHiddenImages(method.images)\"\n [src]=\"getImageUrl ? getImageUrl(logo) : (logo?.path || logo?.url || logo?.src || logo)\"\n [alt]=\"logo?.name || ''\">\n </span>\n </ng-template>\n </span>\n </label>\n <div class=\"payment-option-details\" *ngIf=\"selectedMethodCode === method.code\">\n <ng-container *ngIf=\"validatingMethodCode === method.code; else methodContent\">\n <div class=\"d-flex justify-content-center py-2\">\n <app-loading-inline-ec></app-loading-inline-ec>\n </div>\n </ng-container>\n <ng-template #methodContent>\n <ng-container *ngIf=\"!showMethodError && currentMethod?.code === method.code\">\n <div class=\"method-container text-dark\" *ngIf=\"isMP(method.code)\">\n <p id=\"faqs\" class=\"qt px-5 \">{{ method.description }}</p>\n <p class=\"px-5\">{{ method.instructions }}</p>\n <app-mp-redirect-ec (ready)=\"verifyValidate.emit($event)\" [method]=\"method\"\n [paymentServiceInst]=\"paymentServiceInst\"\n [allData]=\"allData()\"></app-mp-redirect-ec>\n </div>\n <div class=\"method-container text-dark text-left\"\n *ngIf=\"isMPTarjetaDeCredito(method.code)\">\n <div class=\"row\">\n <div class=\"col-12\">\n <p id=\"faqs\" class=\"qt px-5 \">{{ method.description }}</p>\n <p class=\"px-5\">{{ method.instructions }}</p>\n <div app-mp-credit-ec (ready)=\"verifyValidate.emit()\"\n [public_key]=\"getPK(method)\" [user_data]=\"allData()\"\n [total_amount]=\"totalAmount\">\n </div>\n </div>\n </div>\n </div>\n <div class=\"method-container text-dark text-start\"\n *ngIf=\"isRedirectRedsys(method.code)\">\n <div class=\"row\">\n <div class=\"col-12\">\n <ng-container\n *ngIf=\"!method.code.includes('bizum') && !method.code.includes('_out_')\">\n <app-redsys-redirect-ec (ready)=\"verifyValidate.emit($event)\"\n [method]=\"method\" [user_data]=\"allData()\">\n </app-redsys-redirect-ec>\n </ng-container>\n <ng-container\n *ngIf=\"method.code.includes('bizum') || method.code.includes('_out_')\">\n <app-redsys-redirect-out-ec (ready)=\"verifyValidate.emit($event)\"\n [method]=\"method\" [user_data]=\"allData()\">\n </app-redsys-redirect-out-ec>\n </ng-container>\n </div>\n </div>\n </div>\n <div class=\"method-container text-dark text-start\"\n *ngIf=\"isRedirectCecaBank(method.code)\">\n <div class=\"row\">\n <div class=\"col-12\">\n <app-ceca-redirect-ec (ready)=\"verifyValidate.emit($event)\" [method]=\"method\"\n [user_data]=\"allData()\">\n </app-ceca-redirect-ec>\n </div>\n </div>\n </div>\n <div class=\"method-container text-dark text-start\" *ngIf=\"isPeyPalExpress(method.code)\">\n <div class=\"container\">\n <div class=\"row justify-content-center\">\n <div class=\"col-12\">\n <app-paypal-express-ec (ready)=\"verifyValidate.emit($event)\"\n [method]=\"method\" [user_data]=\"allData()\"\n [total_amount]=\"totalAmount\">\n </app-paypal-express-ec>\n </div>\n </div>\n </div>\n </div>\n <div class=\"method-container text-dark text-start\" *ngIf=\"isMobbex(method.code)\">\n <div class=\"container\">\n <div class=\"row justify-content-center\">\n <div class=\"col-12\">\n <app-mobbex-ec (ready)=\"verifyValidate.emit($event)\" [method]=\"method\"\n [user_data]=\"allData()\" [paymentServiceInst]=\"paymentServiceInst\"\n [total_amount]=\"totalAmount\">\n </app-mobbex-ec>\n </div>\n </div>\n </div>\n </div>\n <div class=\"method-container text-dark text-start\" *ngIf=\"isBancard(method.code)\">\n <div class=\"container\">\n <div class=\"row justify-content-center\">\n <div class=\"col-12\">\n <app-bancard-ec (ready)=\"verifyValidate.emit($event)\" [method]=\"method\"\n [user_data]=\"allData()\" [paymentServiceInst]=\"paymentServiceInst\"\n [total_amount]=\"totalAmount\">\n </app-bancard-ec>\n </div>\n </div>\n </div>\n </div>\n <div class=\"method-container text-dark text-start\" *ngIf=\"isDecidir(method.code)\">\n <div class=\"container\">\n <div class=\"row justify-content-center\">\n <div class=\"col-12\">\n <app-decidir-ec (ready)=\"verifyValidate.emit($event)\" [method]=\"method\"\n [user_data]=\"allData()\" [paymentServiceInst]=\"paymentServiceInst\"\n [total_amount]=\"totalAmount\">\n </app-decidir-ec>\n </div>\n </div>\n </div>\n </div>\n <div class=\"method-container text-dark\" *ngIf=\"isMethodOffline(method.code)\">\n <p id=\"faqs\" class=\"qt px-5\">{{ method.description }}</p>\n <p class=\"px-5\">{{ method.instructions }}</p>\n <div class=\"end-button\">\n <button class=\"btn comprar\" (click)=\"setLoading.emit(); verifyValidate.emit()\">{{\n ('pay-with-offline'| translate) }}</button>\n </div>\n <ng-container *ngIf=\"loadingInternal\">\n <div class=\"mt-2\">\n <app-loading-inline-ec></app-loading-inline-ec>\n </div>\n </ng-container>\n </div>\n <div class=\"method-container text-dark text-start\" *ngIf=\"isCulqi(method.code)\">\n <div class=\"container\">\n <div class=\"row justify-content-center\">\n <div class=\"col-12\">\n <app-culqi-ec [apiKey]=\"getPKCulqi(method)\" [method]=\"method\"\n [amount]=\"totalAmount\" [customStyle]=\"true\"\n (ready)=\"verifyValidate.emit()\"></app-culqi-ec>\n </div>\n </div>\n </div>\n </div>\n <div class=\"method-container text-dark text-start\" *ngIf=\"isCatastro(method.code)\">\n <div class=\"container\">\n <div class=\"row justify-content-center\">\n <div class=\"col-12\">\n <app-bancard-catastro-ec (ready)=\"verifyValidate.emit($event)\"\n [method]=\"method\" [user_data]=\"allData()\"\n [paymentServiceInst]=\"paymentServiceInst\"\n [total_amount]=\"totalAmount\"></app-bancard-catastro-ec>\n </div>\n </div>\n </div>\n </div>\n <div class=\"method-container text-dark text-start\" *ngIf=\"isBamboo(method.code)\">\n <div class=\"container\">\n <div class=\"row justify-content-center\">\n <div class=\"col-12\">\n <app-bamboo-ec (ready)=\"verifyValidate.emit($event)\" [method]=\"method\"\n [user_data]=\"allData()\" [paymentServiceInst]=\"paymentServiceInst\"\n [total_amount]=\"totalAmount\"></app-bamboo-ec>\n </div>\n </div>\n </div>\n </div>\n <div class=\"method-container text-dark\" *ngIf=\"isBankTransfer(method.code)\">\n <div class=\"row px-0 description-cont\">\n <ng-container\n *ngFor=\"let line of method.description.split('\\r\\n'); let i=index\">\n <p [id]=\"'faqs-'+i\" [class]=\"'qt px-5 m-0 line-'+i\">{{ line }}</p>\n </ng-container>\n </div>\n <hr *ngIf=\"method.instructions\">\n <div *ngIf=\"method.instructions\" class=\"row px-0 instructions-cont mb-1\">\n <h5 class=\"instructions-title\">{{ ('instructions' | translate) }}</h5>\n <ng-container\n *ngFor=\"let line of method.instructions.split('\\r\\n'); let i=index\">\n <p [class]=\"'px-5 m-0 instructions-text line-'+i \">{{ line }}</p>\n </ng-container>\n </div>\n\n <div class=\"end-button\">\n <button class=\"btn comprar\" (click)=\"setLoading.emit(); verifyValidate.emit()\">{{\n ('pay-with-transfer'\n | translate) }}</button>\n </div>\n <ng-container *ngIf=\"loadingInternal\">\n <div class=\"mt-2\">\n <app-loading-inline-ec></app-loading-inline-ec>\n </div>\n </ng-container>\n </div>\n <div class=\"method-container text-dark\" *ngIf=\"isPlaceToPay(method.code)\">\n <p id=\"faqs\" *ngIf=\"method.description\" class=\"qt px-5 \">{{ method.description }}\n </p>\n <p class=\"px-5\" *ngIf=\"method.instructions\">{{ method.instructions }}</p>\n <app-place-to-pay-ec (ready)=\"verifyValidate.emit($event)\" [method]=\"method\"\n [paymentServiceInst]=\"paymentServiceInst\" [allData]=\"allData()\">\n </app-place-to-pay-ec>\n </div>\n </ng-container>\n <ng-container *ngIf=\"showMethodError\">\n <div class=\"text-danger mt-2 px-3 fw-bold\">\n {{ 'this-payment-method-cannot-be-used' | translate }}\n </div>\n </ng-container>\n <div class=\"method-container text-dark\"\n *ngIf=\"currentMethod?.code === method.code && isBalanceInAccount(method.code) && !showMethodError\">\n <div class=\"row px-0 description-cont\" *ngIf=\"method.description\">\n <ng-container *ngFor=\"let line of method.description.split('\\r\\n'); let i = index\">\n <p [id]=\"'cc-desc-'+i\" [class]=\"'qt px-5 m-0 line-'+i\">{{ line }}</p>\n </ng-container>\n </div>\n\n <hr *ngIf=\"method.instructions\">\n\n <div *ngIf=\"method.instructions\" class=\"row px-0 instructions-cont mb-1\">\n <h5 class=\"instructions-title\">{{ ('instructions' | translate) }}</h5>\n <ng-container *ngFor=\"let line of method.instructions.split('\\r\\n'); let i = index\">\n <p [class]=\"'px-5 m-0 instructions-text line-'+i \">{{ line }}</p>\n </ng-container>\n </div>\n\n <ng-container *ngIf=\"!balanceMethodRejected; else showCreditError\">\n <div class=\"end-button\">\n <button class=\"btn comprar\" (click)=\"setLoading.emit(); verifyValidate.emit()\">\n {{ 'pay-with' | translate }} {{ method.name }}\n </button>\n </div>\n </ng-container>\n\n <ng-template #showCreditError>\n <div class=\"text-danger mt-2 px-3 fw-bold\">\n {{ 'not-enough-credits-to-complete' | translate }}\n </div>\n </ng-template>\n <ng-container *ngIf=\"loadingInternal\">\n <div class=\"mt-2\">\n <app-loading-inline-ec></app-loading-inline-ec>\n </div>\n </ng-container>\n </div>\n </ng-template>\n </div>\n </ng-container>\n </div>\n </div>\n </div>\n</div>\n",
161
+ styles: [".payment-compact{border:1px solid var(--ec-border,#e3e3e3);border-radius:6px;width:100%}.payment-compact-flat{border:0;background:0 0;width:100%}.payment-compact-flat .card-body{padding:0}.payment-step-surface{position:relative}.single-step-overlay{position:absolute;inset:0;background:rgba(255,255,255,.6);display:flex;align-items:center;justify-content:center;z-index:5}.payment-options{display:-ms-grid;display:grid;gap:0;border:1px solid var(--ec-border,#e3e3e3);border-radius:6px;overflow:visible;background:var(--ec-surface,#fff);width:100%}.payment-option{display:-ms-grid;display:grid;-ms-grid-columns:auto 1fr auto;grid-template-columns:auto 1fr auto;gap:.75rem;padding:.75rem;border-top:1px solid var(--ec-border,#e3e3e3);cursor:pointer;align-items:center;background:var(--ec-surface,#fff);transition:border-color .2s,box-shadow .2s;margin:0}.payment-option:first-child{border-top:0}.payment-option.is-selected{border-color:var(--ec-accent,#2563eb);background:var(--ec-accent-soft,#f5f8ff);box-shadow:inset 0 0 0 1px var(--ec-accent,#2563eb)}.payment-option.is-disabled{opacity:.6;cursor:not-allowed}.payment-option-input{margin-top:.1rem}.payment-option-title{font-weight:600}.payment-option-info{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-width:0}.payment-option-adjustment{color:#dc3545;font-weight:700;white-space:nowrap}.payment-option-logos{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.payment-option-logo{width:44px;height:28px;-o-object-fit:contain;object-fit:contain;background:#fff;border:1px solid #e5e7eb;border-radius:6px;box-shadow:0 1px 2px rgba(15,23,42,.08);padding:3px;filter:saturate(.96) contrast(1.02)}.payment-option-more{width:44px;height:28px;display:inline-flex;align-items:center;justify-content:center;background:#f8fafc;border:1px solid #e5e7eb;border-radius:6px;font-size:12px;font-weight:600;color:#475569;box-shadow:0 1px 2px rgba(15,23,42,.08)}.payment-tooltip-logos{display:flex;gap:.5rem;align-items:center;padding:.25rem .4rem}.payment-tooltip-logo{width:44px;height:28px;-o-object-fit:contain;object-fit:contain;background:#fff;border:1px solid #e5e7eb;border-radius:6px;box-shadow:0 1px 2px rgba(15,23,42,.08);padding:3px}.payment-option-details{border-top:1px solid var(--ec-border,#e3e3e3);padding:1rem;background:var(--ec-surface-alt,#fafafa)}.payment-option-details .method-container{padding:0 .5rem .5rem}.payment-option-details .container,.payment-option-details .row{margin-left:0;margin-right:0}.payment-option-details .px-5{padding-left:.75rem!important;padding-right:.75rem!important}.payment-option-details .end-button{padding:0 .75rem .5rem}.payment-option-details .instructions-text,.payment-option-details .instructions-title{padding-left:.75rem;padding-right:.75rem}.payment-compact-flat .comprar{font-size:14px;padding:8px 16px;border-radius:6px}.comprar{background:var(--ec-accent,#000);color:var(--ec-accent-contrast,#fff);display:inline-block;font-weight:600;text-decoration:none;text-transform:uppercase;border:0}.payment-lock-message{background:#fff7e6;border:1px solid #f0c36d;color:#8a5a00;padding:.75rem 1rem;border-radius:8px;margin-bottom:.75rem;font-weight:600}.payment-options.is-locked{opacity:.55;filter:grayscale(.2)}"]
154
162
  })
155
163
  ], PaymentEcSingleComponent);
156
164
  export { PaymentEcSingleComponent };
157
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5bWVudC1lYy1zaW5nbGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmctZWFzeWNvbW1lcmNlLyIsInNvdXJjZXMiOlsibGliL2VjLWNvbXBvbmVudC9jaGVja291dC1lYy9wYXltZW50LWVjLXNpbmdsZS9wYXltZW50LWVjLXNpbmdsZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQU92RSxJQUFhLHdCQUF3QixHQUFyQyxNQUFhLHdCQUF3QjtJQUFyQztRQUNhLG9CQUFlLEdBQUcsS0FBSyxDQUFDO1FBQ3hCLHNCQUFpQixHQUFHLEtBQUssQ0FBQztRQUMxQixrQkFBYSxHQUFHLEtBQUssQ0FBQztRQUN0Qix5QkFBb0IsR0FBa0IsSUFBSSxDQUFDO1FBQzNDLHVCQUFrQixHQUFrQixJQUFJLENBQUM7UUFDekMsa0JBQWEsR0FBUSxJQUFJLENBQUM7UUFDMUIsb0JBQWUsR0FBRyxLQUFLLENBQUM7UUFDeEIsMEJBQXFCLEdBQUcsS0FBSyxDQUFDO1FBQzlCLFlBQU8sR0FBVSxFQUFFLENBQUM7UUFDcEIsZ0JBQVcsR0FBa0IsSUFBSSxDQUFDO1FBQ2xDLHFCQUFnQixHQUE2QixHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUM7UUFDekQsU0FBSSxHQUE4QixHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUM7UUFDOUMseUJBQW9CLEdBQThCLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQztRQUM5RCxxQkFBZ0IsR0FBOEIsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDO1FBQzFELHVCQUFrQixHQUE4QixHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUM7UUFDNUQsb0JBQWUsR0FBOEIsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDO1FBQ3pELGFBQVEsR0FBOEIsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFD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cEQ7SUFBUixLQUFLLEVBQUU7eURBQWlDO0FBQ2hDO0lBQVIsS0FBSyxFQUFFO29FQUF5QjtBQUV2QjtJQUFULE1BQU0sRUFBRTs4REFBd0M7QUFDdkM7SUFBVCxNQUFNLEVBQUU7Z0VBQTBDO0FBQ3pDO0lBQVQsTUFBTSxFQUFFOzREQUF1QztBQW5DdkMsd0JBQXdCO0lBTHBDLFNBQVMsQ0FBQztRQUNQLFFBQVEsRUFBRSx1QkFBdUI7UUFDakMseThuQkFBaUQ7O0tBRXBELENBQUM7R0FDVyx3QkFBd0IsQ0F3Q3BDO1NBeENZLHdCQUF3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYXBwLXBheW1lbnQtZWMtc2luZ2xlJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vcGF5bWVudC1lYy1zaW5nbGUuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3BheW1lbnQtZWMtc2luZ2xlLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgUGF5bWVudEVjU2luZ2xlQ29tcG9uZW50IHtcbiAgICBASW5wdXQoKSBsb2FkaW5nSW50ZXJuYWwgPSBmYWxzZTtcbiAgICBASW5wdXQoKSBsb2FkaW5nSW50ZXJuYWxNcCA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIHBheW1lbnRMb2NrZWQgPSBmYWxzZTtcbiAgICBASW5wdXQoKSB2YWxpZGF0aW5nTWV0aG9kQ29kZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gICAgQElucHV0KCkgc2VsZWN0ZWRNZXRob2RDb2RlOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgICBASW5wdXQoKSBjdXJyZW50TWV0aG9kOiBhbnkgPSBudWxsO1xuICAgIEBJbnB1dCgpIHNob3dNZXRob2RFcnJvciA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIGJhbGFuY2VNZXRob2RSZWplY3RlZCA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIG1ldGhvZHM6IGFueVtdID0gW107XG4gICAgQElucHV0KCkgdG90YWxBbW91bnQ6IG51bWJlciB8IG51bGwgPSBudWxsO1xuICAgIEBJbnB1dCgpIGlzTWV0aG9kRGlzYWJsZWQ6IChtZXRob2Q6IGFueSkgPT4gYm9vbGVhbiA9ICgpID0+IGZhbHNlO1xuICAgIEBJbnB1dCgpIGlzTVA6IChjb2RlOiBzdHJpbmcpID0+IGJvb2xlYW4gPSAoKSA9PiBmYWxzZTtcbiAgICBASW5wdXQoKSBpc01QVGFyamV0YURlQ3JlZGl0bzogKGNvZGU6IHN0cmluZykgPT4gYm9vbGVhbiA9ICgpID0+IGZhbHNlO1xuICAgIEBJbnB1dCgpIGlzUmVkaXJlY3RSZWRzeXM6IChjb2RlOiBzdHJpbmcpID0+IGJvb2xlYW4gPSAoKSA9PiBmYWxzZTtcbiAgICBASW5wdXQoKSBpc1JlZGlyZWN0Q2VjYUJhbms6IChjb2RlOiBzdHJpbmcpID0+IGJvb2xlYW4gPSAoKSA9PiBmYWxzZTtcbiAgICBASW5wdXQoKSBpc1BleVBhbEV4cHJlc3M6IChjb2RlOiBzdHJpbmcpID0+IGJvb2xlYW4gPSAoKSA9PiBmYWxzZTtcbiAgICBASW5wdXQoKSBpc01vYmJleDogKGNvZGU6IHN0cmluZykgPT4gYm9vbGVhbiA9ICgpID0+IGZhbHNlO1xuICAgIEBJbnB1dCgpIGlzQmFuY2FyZDogKGNvZGU6IHN0cmluZykgPT4gYm9vbGVhbiA9ICgpID0+IGZhbHNlO1xuICAgIEBJbnB1dCgpIGlzRGVjaWRpcjogKGNvZGU6IHN0cmluZykgPT4gYm9vbGVhbiA9ICgpID0+IGZhbHNlO1xuICAgIEBJbnB1dCgpIGlzTWV0aG9kT2ZmbGluZTogKGNvZGU6IHN0cmluZykgPT4gYm9vbGVhbiA9ICgpID0+IGZhbHNlO1xuICAgIEBJbnB1dCgpIGlzQ3VscWk6IChjb2RlOiBzdHJpbmcpID0+IGJvb2xlYW4gPSAoKSA9PiBmYWxzZTtcbiAgICBASW5wdXQoKSBpc0NhdGFzdHJvOiAoY29kZTogc3RyaW5nKSA9PiBib29sZWFuID0gKCkgPT4gZmFsc2U7XG4gICAgQElucHV0KCkgaXNCYW1ib286IChjb2RlOiBzdHJpbmcpID0+IGJvb2xlYW4gPSAoKSA9PiBmYWxzZTtcbiAgICBASW5wdXQoKSBpc0JhbmtUcmFuc2ZlcjogKGNvZGU6IHN0cmluZykgPT4gYm9vbGVhbiA9ICgpID0+IGZhbHNlO1xuICAgIEBJbnB1dCgpIGlzUGxhY2VUb1BheTogKGNvZGU6IHN0cmluZykgPT4gYm9vbGVhbiA9ICgpID0+IGZhbHNlO1xuICAgIEBJbnB1dCgpIGlzQmFsYW5jZUluQWNjb3VudDogKGNvZGU6IHN0cmluZykgPT4gYm9vbGVhbiA9ICgpID0+IGZhbHNlO1xuICAgIEBJbnB1dCgpIGdldFBLOiAobWV0aG9kOiBhbnkpID0+IHN0cmluZyA9ICgpID0+ICcnO1xuICAgIEBJbnB1dCgpIGdldFBLQ3VscWk6IChtZXRob2Q6IGFueSkgPT4gc3RyaW5nID0gKCkgPT4gJyc7XG4gICAgQElucHV0KCkgZ2V0SW1hZ2VVcmw6ICgoaW1hZ2U6IGFueSkgPT4gc3RyaW5nKSB8IG51bGwgPSBudWxsO1xuICAgIEBJbnB1dCgpIGFsbERhdGE6ICgpID0+IGFueSA9ICgpID0+ICh7fSk7XG4gICAgQElucHV0KCkgcGF5bWVudFNlcnZpY2VJbnN0OiBhbnk7XG5cbiAgICBAT3V0cHV0KCkgc2VsZWN0TWV0aG9kID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgQE91dHB1dCgpIHZlcmlmeVZhbGlkYXRlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgQE91dHB1dCgpIHNldExvYWRpbmcgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICBnZXRWaXNpYmxlSW1hZ2VzID0gKGltYWdlczogYW55W10gPSBbXSkgPT4gaW1hZ2VzLnNsaWNlKDAsIGltYWdlcy5sZW5ndGggPiA0ID8gMyA6IDQpO1xuXG4gICAgZ2V0SGlkZGVuSW1hZ2VzID0gKGltYWdlczogYW55W10gPSBbXSkgPT4gKGltYWdlcy5sZW5ndGggPiA0ID8gaW1hZ2VzLnNsaWNlKDMpIDogW10pO1xufVxuIl19
165
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5bWVudC1lYy1zaW5nbGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmctZWFzeWNvbW1lcmNlLyIsInNvdXJjZXMiOlsibGliL2VjLWNvbXBvbmVudC9jaGVja291dC1lYy9wYXltZW50LWVjLXNpbmdsZS9wYXltZW50LWVjLXNpbmdsZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQVF2RSxJQUFhLHdCQUF3QixHQUFyQyxNQUFhLHdCQUF3QjtJQUFyQztRQUNhLG9CQUFlLEdBQUcsS0FBSyxDQUFDO1FBQ3hCLHNCQUFpQixHQUFHLEtBQUssQ0FBQztRQUMxQixrQkFBYSxHQUFHLEtBQUssQ0FBQztRQUN0Qix5QkFBb0IsR0FBa0IsSUFBSSxDQUFDO1FBQzNDLHVCQUFrQixHQUFrQixJQUFJLENBQUM7UUFDekMsa0JBQWEsR0FBUSxJQUFJLENBQUM7UUFDMUIsb0JBQWUsR0FBRyxLQUFLLENBQUM7UUFDeEIsMEJBQXFCLEdBQUcsS0FBSyxDQUFDO1FBQzlCLFlBQU8sR0FBVSxFQUFFLENBQUM7UUFDcEIsZ0JBQVcsR0FBa0IsSUFBSSxDQUFDO1FBQ2xDLHNDQUFpQyxHQUEyRCxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUM7UUFDdkcsMENBQXFDLEdBQWdDLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQztRQUM5RSxxQkFBZ0IsR0FBNkIsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDO1FBQ3pELFNBQUksR0FBOEIsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDO1FBQzlDLHlCQUFvQixHQUE4QixHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUM7UUFDOUQscUJBQWdCLEdBQThCLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQztRQUMxRCx1QkFBa0IsR0FBOEIsR0FBRyxFQUFFLENBQUMsS0FBSyxD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O0FBQ3hEO0lBQVIsS0FBSyxFQUFFOzhEQUF1RDtBQUN0RDtJQUFSLEtBQUssRUFBRTtvRUFBNkQ7QUFDNUQ7SUFBUixLQUFLLEVBQUU7dURBQTJDO0FBQzFDO0lBQVIsS0FBSyxFQUFFOzREQUFnRDtBQUMvQztJQUFSLEtBQUssRUFBRTs2REFBcUQ7QUFDcEQ7SUFBUixLQUFLLEVBQUU7eURBQWlDO0FBQ2hDO0lBQVIsS0FBSyxFQUFFO29FQUF5QjtBQUV2QjtJQUFULE1BQU0sRUFBRTs4REFBd0M7QUFDdkM7SUFBVCxNQUFNLEVBQUU7Z0VBQTBDO0FBQ3pDO0lBQVQsTUFBTSxFQUFFOzREQUF1QztBQXJDdkMsd0JBQXdCO0lBTHBDLFNBQVMsQ0FBQztRQUNQLFFBQVEsRUFBRSx1QkFBdUI7UUFDakMsKzNwQkFBaUQ7O0tBRXBELENBQUM7R0FDVyx3QkFBd0IsQ0EwQ3BDO1NBMUNZLHdCQUF3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQYXltZW50TWV0aG9kQWRqdXN0bWVudFByZXZpZXcgfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzL2NoZWNrb3V0LWRhdGEnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2FwcC1wYXltZW50LWVjLXNpbmdsZScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3BheW1lbnQtZWMtc2luZ2xlLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9wYXltZW50LWVjLXNpbmdsZS5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFBheW1lbnRFY1NpbmdsZUNvbXBvbmVudCB7XG4gICAgQElucHV0KCkgbG9hZGluZ0ludGVybmFsID0gZmFsc2U7XG4gICAgQElucHV0KCkgbG9hZGluZ0ludGVybmFsTXAgPSBmYWxzZTtcbiAgICBASW5wdXQoKSBwYXltZW50TG9ja2VkID0gZmFsc2U7XG4gICAgQElucHV0KCkgdmFsaWRhdGluZ01ldGhvZENvZGU6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICAgIEBJbnB1dCgpIHNlbGVjdGVkTWV0aG9kQ29kZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gICAgQElucHV0KCkgY3VycmVudE1ldGhvZDogYW55ID0gbnVsbDtcbiAgICBASW5wdXQoKSBzaG93TWV0aG9kRXJyb3IgPSBmYWxzZTtcbiAgICBASW5wdXQoKSBiYWxhbmNlTWV0aG9kUmVqZWN0ZWQgPSBmYWxzZTtcbiAgICBASW5wdXQoKSBtZXRob2RzOiBhbnlbXSA9IFtdO1xuICAgIEBJbnB1dCgpIHRvdGFsQW1vdW50OiBudW1iZXIgfCBudWxsID0gbnVsbDtcbiAgICBASW5wdXQoKSBnZXRQYXltZW50TWV0aG9kQWRqdXN0bWVudFByZXZpZXc6IChtZXRob2Q6IGFueSkgPT4gUGF5bWVudE1ldGhvZEFkanVzdG1lbnRQcmV2aWV3IHwgbnVsbCA9ICgpID0+IG51bGw7XG4gICAgQElucHV0KCkgZ2V0UGF5bWVudE1ldGhvZEFkanVzdG1lbnRQcmV2aWV3U2lnbjogKHZhbHVlOiBudW1iZXIpID0+ICcrJyB8ICcnID0gKCkgPT4gJyc7XG4gICAgQElucHV0KCkgaXNNZXRob2REaXNhYmxlZDogKG1ldGhvZDogYW55KSA9PiBib29sZWFuID0gKCkgPT4gZmFsc2U7XG4gICAgQElucHV0KCkgaXNNUDogKGNvZGU6IHN0cmluZykgPT4gYm9vbGVhbiA9ICgpID0+IGZhbHNlO1xuICAgIEBJbnB1dCgpIGlzTVBUYXJqZXRhRGVDcmVkaXRvOiAoY29kZTogc3RyaW5nKSA9PiBib29sZWFuID0gKCkgPT4gZmFsc2U7XG4gICAgQElucHV0KCkgaXNSZWRpcmVjdFJlZHN5czogKGNvZGU6IHN0cmluZykgPT4gYm9vbGVhbiA9ICgpID0+IGZhbHNlO1xuICAgIEBJbnB1dCgpIGlzUmVkaXJlY3RDZWNhQmFuazogKGNvZGU6IHN0cmluZykgPT4gYm9vbGVhbiA9ICgpID0+IGZhbHNlO1xuICAgIEBJbnB1dCgpIGlzUGV5UGFsRXhwcmVzczogKGNvZGU6IHN0cmluZykgPT4gYm9vbGVhbiA9ICgpID0+IGZhbHNlO1xuICAgIEBJbnB1dCgpIGlzTW9iYmV4OiAoY29kZTogc3RyaW5nKSA9PiBib29sZWFuID0gKCkgPT4gZmFsc2U7XG4gICAgQElucHV0KCkgaXNCYW5jYXJkOiAoY29kZTogc3RyaW5nKSA9PiBib29sZWFuID0gKCkgPT4gZmFsc2U7XG4gICAgQElucHV0KCkgaXNEZWNpZGlyOiAoY29kZTogc3RyaW5nKSA9PiBib29sZWFuID0gKCkgPT4gZmFsc2U7XG4gICAgQElucHV0KCkgaXNNZXRob2RPZmZsaW5lOiAoY29kZTogc3RyaW5nKSA9PiBib29sZWFuID0gKCkgPT4gZmFsc2U7XG4gICAgQElucHV0KCkgaXNDdWxxaTogKGNvZGU6IHN0cmluZykgPT4gYm9vbGVhbiA9ICgpID0+IGZhbHNlO1xuICAgIEBJbnB1dCgpIGlzQ2F0YXN0cm86IChjb2RlOiBzdHJpbmcpID0+IGJvb2xlYW4gPSAoKSA9PiBmYWxzZTtcbiAgICBASW5wdXQoKSBpc0JhbWJvbzogKGNvZGU6IHN0cmluZykgPT4gYm9vbGVhbiA9ICgpID0+IGZhbHNlO1xuICAgIEBJbnB1dCgpIGlzQmFua1RyYW5zZmVyOiAoY29kZTogc3RyaW5nKSA9PiBib29sZWFuID0gKCkgPT4gZmFsc2U7XG4gICAgQElucHV0KCkgaXNQbGFjZVRvUGF5OiAoY29kZTogc3RyaW5nKSA9PiBib29sZWFuID0gKCkgPT4gZmFsc2U7XG4gICAgQElucHV0KCkgaXNCYWxhbmNlSW5BY2NvdW50OiAoY29kZTogc3RyaW5nKSA9PiBib29sZWFuID0gKCkgPT4gZmFsc2U7XG4gICAgQElucHV0KCkgZ2V0UEs6IChtZXRob2Q6IGFueSkgPT4gc3RyaW5nID0gKCkgPT4gJyc7XG4gICAgQElucHV0KCkgZ2V0UEtDdWxxaTogKG1ldGhvZDogYW55KSA9PiBzdHJpbmcgPSAoKSA9PiAnJztcbiAgICBASW5wdXQoKSBnZXRJbWFnZVVybDogKChpbWFnZTogYW55KSA9PiBzdHJpbmcpIHwgbnVsbCA9IG51bGw7XG4gICAgQElucHV0KCkgYWxsRGF0YTogKCkgPT4gYW55ID0gKCkgPT4gKHt9KTtcbiAgICBASW5wdXQoKSBwYXltZW50U2VydmljZUluc3Q6IGFueTtcblxuICAgIEBPdXRwdXQoKSBzZWxlY3RNZXRob2QgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICBAT3V0cHV0KCkgdmVyaWZ5VmFsaWRhdGUgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICBAT3V0cHV0KCkgc2V0TG9hZGluZyA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAgIGdldFZpc2libGVJbWFnZXMgPSAoaW1hZ2VzOiBhbnlbXSA9IFtdKSA9PiBpbWFnZXMuc2xpY2UoMCwgaW1hZ2VzLmxlbmd0aCA+IDQgPyAzIDogNCk7XG5cbiAgICBnZXRIaWRkZW5JbWFnZXMgPSAoaW1hZ2VzOiBhbnlbXSA9IFtdKSA9PiAoaW1hZ2VzLmxlbmd0aCA+IDQgPyBpbWFnZXMuc2xpY2UoMykgOiBbXSk7XG59XG4iXX0=
@@ -168,7 +168,9 @@ let ShipmentEcComponent = class ShipmentEcComponent extends ComponentHelper {
168
168
  delete sanitizedContractData.option;
169
169
  const requestPayload = Object.assign(Object.assign({}, sanitizedContractData), { shippingId: option.method.code, method: option.method.code, option: option.costName, contract: contractType, name: contractName, price: contractData.price, selected: true, shipping_method_contract: shippingMethodContract, shipping_method_branch_code: shippingMethodBranchCode });
170
170
  const stepData = Object.assign(Object.assign({}, requestPayload), { originalPrice: this.shippingPriceDisplay.normalizePriceValue(contractData.originalPrice), method_name: (_g = option.method) === null || _g === void 0 ? void 0 : _g.name, contract_name: contractName });
171
- yield this.shipmentService.setShippingOption(requestPayload, stepData);
171
+ const applied = yield this.shipmentService.setShippingOption(requestPayload, stepData);
172
+ if (!applied)
173
+ return;
172
174
  const methodLabel = ((_h = option.method) === null || _h === void 0 ? void 0 : _h.name) ? this.translateService.instant(option.method.name)
173
175
  : '';
174
176
  const contractLabel = ((_j = option.contract) === null || _j === void 0 ? void 0 : _j.name) ? this.translateService.instant(option.contract.name)
@@ -333,4 +335,4 @@ ShipmentEcComponent = __decorate([
333
335
  })
334
336
  ], ShipmentEcComponent);
335
337
  export { ShipmentEcComponent };
336
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hpcG1lbnQtZWMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmctZWFzeWNvbW1lcmNlLyIsInNvdXJjZXMiOlsibGliL2VjLWNvbXBvbmVudC9jaGVja291dC1lYy9zaGlwbWVudC1lYy9zaGlwbWVudC1lYy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFFMUYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDOUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQVE1RixJQUFhLG1CQUFtQixHQUFoQyxNQUFhLG1CQUFvQixTQUFRLGVBQWU7SUF5QnBELFlBQW1CLGVBQWdDLEVBQVksYUFBMkIsRUFDL0UsZUFBZ0MsRUFBUyxlQUFnQyxFQUN4RSxnQkFBa0MsRUFDbEMsb0JBQWlEO1FBQ3pELEtBQUssRUFBRSxDQUFDO1FBSk8sb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQVksa0JBQWEsR0FBYixhQUFhLENBQWM7UUFDL0Usb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQVMsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ3hFLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMseUJBQW9CLEdBQXBCLG9CQUFvQixDQUE2QjtRQXpC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Q0FBQztnQkFDbkUsT0FBTyxFQUFFLFlBQVk7YUFDeEIsQ0FBQyxDQUFBO1NBQUEsQ0FBQyxDQUFDO0lBQ1IsQ0FBQztJQUVPLGlCQUFpQixDQUFDLFFBQW1DLEVBQUUsVUFBbUI7UUFDOUUsSUFBSSxRQUFRLEVBQUU7WUFDVixNQUFNLFVBQVUsR0FBRyxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDMUMsSUFBSSxVQUFVLEtBQUssaUJBQWlCO2dCQUFFLE9BQU8sb0JBQW9CLENBQUM7WUFDbEUsSUFBSSxVQUFVLEtBQUssZUFBZTtnQkFBRSxPQUFPLG1CQUFtQixDQUFDO1NBQ2xFO1FBQ0QsT0FBTyxVQUFVLElBQUksQ0FBQyxRQUFRLElBQUksRUFBRSxDQUFDLENBQUM7SUFDMUMsQ0FBQztDQUVKLENBQUE7O1lBOVJ1QyxlQUFlO1lBQTJCLFlBQVk7WUFDOUQsZUFBZTtZQUEwQixlQUFlO1lBQ3RELGdCQUFnQjtZQUNaLDJCQUEyQjs7QUExQnBEO0lBQVIsS0FBSyxFQUFFO29EQUFTO0FBQ1I7SUFBUixLQUFLLEVBQUU7Z0VBQXNDO0FBQ3BDO0lBQVQsTUFBTSxFQUFFOzBEQUF5RTtBQUN4RTtJQUFULE1BQU0sRUFBRTt3REFBd0M7QUFMeEMsbUJBQW1CO0lBTi9CLFNBQVMsQ0FBQztRQUNQLFFBQVEsRUFBRSxpQkFBaUI7UUFDM0IsNC9QQUEyQztRQUUzQyxTQUFTLEVBQUUsQ0FBQyxlQUFlLENBQUM7O0tBQy9CLENBQUM7R0FDVyxtQkFBbUIsQ0F1VC9CO1NBdlRZLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBPbkluaXQsIE9uQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy1jb21wYXQvb3BlcmF0b3IvbWFwJztcbmltcG9ydCB7IENvbXBvbmVudEhlbHBlciB9IGZyb20gJy4uLy4uLy4uL2NsYXNzZXMvY29tcG9uZW50LWhlbHBlcic7XG5pbXBvcnQgeyBDaGVja291dFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9jaGVja291dC9jaGVja291dC5zZXJ2aWNlJztcbmltcG9ydCB7IFNoaXBtZW50U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2NoZWNrb3V0L3NoaXBtZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgUHJvZHVjdHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvcHJvZHVjdHMvcHJvZHVjdHMuc2VydmljZSc7XG5pbXBvcnQgeyBUb2FzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi91dGlscy90b2FzdC5zZXJ2aWNlJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IFNoaXBwaW5nUHJpY2VEaXNwbGF5U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL3NoaXBwaW5nLXByaWNlLWRpc3BsYXkuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYXBwLXNoaXBtZW50LWVjJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vc2hpcG1lbnQtZWMuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3NoaXBtZW50LWVjLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgcHJvdmlkZXJzOiBbU2hpcG1lbnRTZXJ2aWNlXVxufSlcbmV4cG9ydCBjbGFzcyBTaGlwbWVudEVjQ29tcG9uZW50IGV4dGVuZHMgQ29tcG9uZW50SGVscGVyIGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuXG4gICAgQElucHV0KCkgc3RlcF9pZDtcbiAgICBASW5wdXQoKSBjb21wYWN0U2hpcG1lbnRWaWV3OiBib29sZWFuID0gZmFsc2U7XG4gICAgQE91dHB1dCgpIHN1bW1hcnlDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHsgbGFiZWw/OiBzdHJpbmc7IGRldGFpbD86IHN0cmluZyB9PigpO1xuICAgIEBPdXRwdXQoKSBhZHZhbmNlU3RlcCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgICBwdWJsaWMgbWV0aG9kc19saXN0OiBhbnlbXTtcbiAgICBwdWJsaWMgbWV0aG9kU2VsZWN0OiBhbnk7XG4gICAgcHVibGljIGxvYWRpbmdfaW50ZXJuYWwgPSBmYWxzZTtcbiAgICBwdWJsaWMgcG9pbnRzOiBhbnlbXSA9IFtdO1xuICAgIHB1YmxpYyBzZWxlY3RlZF9maW5hbDtcbiAgICBwdWJsaWMgY29zdG9zID0gbnVsbFxuICAgIHB1YmxpYyBjb3N0cyA9ICBbXVxuICAgIHB1YmxpYyBtb3JlSW5mb0luTWV0aG9kOiBhbnlcbiAgICBidXR0b25zRGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBwcml2YXRlIGxhc3RBZGRyZXNzS2V5OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgICBwdWJsaWMgc2hpcG1lbnRFcnJvcktleTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gICAgcHVibGljIHNpbmdsZU9wdGlvbnM6IGFueVtdID0gW107XG4gICAgcHVibGljIGxvYWRpbmdfcHJlbG9hZCA9IGZhbHNlO1xuICAgIHB1YmxpYyBzZWxlY3RlZE9wdGlvbklkOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgICBwdWJsaWMgdW5hdmFpbGFibGVNZXRob2RzOiBSZWNvcmQ8c3RyaW5nLCBib29sZWFuPiA9IHt9O1xuICAgIHB1YmxpYyBncm91cGVkT3B0aW9uczogeyBrZXk6IHN0cmluZzsgbGFiZWw6IHN0cmluZzsgb3B0aW9uczogYW55W10gfVtdID0gW107XG5cbiAgICBjb250cmFjdHMgPSBbXTtcblxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBzaGlwbWVudFNlcnZpY2U6IFNoaXBtZW50U2VydmljZSwgcHJvdGVjdGVkIHRvYXN0clNlcnZpY2U6IFRvYXN0U2VydmljZSxcbiAgICAgICAgcHVibGljIHByb2R1Y3RzU2VydmljZTogUHJvZHVjdHNTZXJ2aWNlLCBwdWJsaWMgY2hlY2tvdXRTZXJ2aWNlOiBDaGVja291dFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBzaGlwcGluZ1ByaWNlRGlzcGxheTogU2hpcHBpbmdQcmljZURpc3BsYXlTZXJ2aWNlKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuZWNPbkNvbnN0cnVjdCgpXG4gICAgfVxuXG4gICAgZW1pdFJlc3VsdCA9IChtZXRob2RfbmFtZSwgY29udHJhY3RfZGF0YSkgPT4ge1xuICAgICAgICBjb250cmFjdF9kYXRhID0ge1xuICAgICAgICAgICAgLi4uY29udHJhY3RfZGF0YSxcbiAgICAgICAgICAgIHNoaXBwaW5nX21ldGhvZF9jb250cmFjdDogbWV0aG9kX25hbWUgKyAnXycgKyBjb250cmFjdF9kYXRhLm5hbWUsXG4gICAgICAgICAgICBzaGlwcGluZ19tZXRob2RfYnJhbmNoX2NvZGU6IG1ldGhvZF9uYW1lID09IFwiYnJhbmNoX2RlbGl2ZXJ5XCIgPyBjb250cmFjdF9kYXRhLnN1Y3Vyc2FsX2lkIDogY29udHJhY3RfZGF0YS5uYW1lLFxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLnNoaXBtZW50U2VydmljZS5zZXRDb250cmFjdChjb250cmFjdF9kYXRhKTtcbiAgICB9XG5cbiAgICB2ZXJpZnlWYWxpZGF0ZSA9IChjb250cmFjdCwgZGF0YSkgPT4ge1xuICAgICAgICBpZiAodGhpcy5jb21wYWN0U2hpcG1lbnRWaWV3IHx8ICF0aGlzLmNvc3RzPy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMuZW1pdFJlc3VsdChjb250cmFjdCwgZGF0YSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHRoaXMuY29zdHMuZm9yRWFjaChjb3N0ID0+IGNvc3QuY29udHJhY3RzLmZvckVhY2goY28gPT4gY28uc2VsZWN0ZWQgPSBmYWxzZSkpXG4gICAgICAgICAgICB0aGlzLmNvc3RzLmZpbmQoY29zdCA9PiBjb3N0Lm5hbWUgPT0gY29udHJhY3QpLmNvbnRyYWN0cy5maW5kKGNvbnRyYSA9PiBjb250cmEubmFtZSA9PSBkYXRhLm5hbWUpLnNlbGVjdGVkID0gdHJ1ZVxuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgY29uc29sZS5sb2coXCJlcnJvciBhbCBidXNjYXIgY29udHJhdG9cIiwgZXJyb3IpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLmVtaXRSZXN1bHQoY29udHJhY3QsIGRhdGEpO1xuICAgIH07XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5zaGlwbWVudFNlcnZpY2UuaW5pdGlhbGl6ZSh0aGlzLnN0ZXBfaWQpO1xuICAgICAgICBpZiAoIXRoaXMuY29tcGFjdFNoaXBtZW50Vmlldykge1xuICAgICAgICAgICAgdGhpcy5zaGlwbWVudFNlcnZpY2UuZ2V0U2hpcG1lbnRNZXRob2RzKCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jaGVja291dFNlcnZpY2UuYXNvY2lhdGVkRGF0YSQuc3Vic2NyaWJlKGRhdGEgPT4ge1xuICAgICAgICAgICAgdGhpcy5jb3N0b3MgPSBkYXRhICYmIGRhdGEuZmluZCh2YWx1ZSA9PiB2YWx1ZS50eXBlID09IFwic2hpcG1lbnRcIikgfHwgbnVsbFxuICAgICAgICB9KVxuICAgICAgICB0aGlzLnNoaXBtZW50U2VydmljZS5jb3N0cy5zdWJzY3JpYmUoY29zID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLmNvbXBhY3RTaGlwbWVudFZpZXcpIHJldHVybjtcbiAgICAgICAgICAgIHRoaXMuY29zdHMgPSBjb3MubWFwKGNvc3QgPT4geyByZXR1cm4geyAuLi5jb3N0LCBjb250cmFjdHM6IGNvc3QuY29udHJhY3RzLm1hcChjbyA9PiB7IHJldHVybiB7IC4uLmNvLCBzZWxlY3RlZDogZmFsc2UgfSB9ICkgfSB9KVxuICAgICAgICAgICAgaWYgKHRoaXMuY29zdHMubGVuZ3RoICYmIHRoaXMuY29zdHNbMF0/Lm5hbWUgJiYgdGhpcy5jb3N0c1swXT8uY29udHJhY3RzWzBdKSB7XG4gICAgICAgICAgICAgICAgdGhpcy52ZXJpZnlWYWxpZGF0ZSh0aGlzLmNvc3RzWzBdLm5hbWUsIHRoaXMuY29zdHNbMF0uY29udHJhY3RzWzBdKVxuICAgICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgICB0aGlzLnNoaXBtZW50U2VydmljZS5lcnJvciQuc3Vic2NyaWJlKGVycm9yS2V5ID0+IHtcbiAgICAgICAgICAgIHRoaXMuc2hpcG1lbnRFcnJvcktleSA9IGVycm9yS2V5O1xuICAgICAgICB9KVxuICAgICAgICB0aGlzLm1vcmVJbmZvSW5NZXRob2QgPSB0cnVlIC8vU2hpcG1lbnRTZXJ2aWNlLm1vcmVJbmZvSW5NZXRob2Q7XG4gICAgICAgIHRoaXMuY2hlY2tvdXRTZXJ2aWNlLnN0YXRlJC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgaWYgKCF0aGlzLmNvbXBhY3RTaGlwbWVudFZpZXcpIHJldHVybjtcbiAgICAgICAgICAgIGNvbnN0IGFkZHJlc3NEYXRhID0gdGhpcy5jaGVja291dFNlcnZpY2UuZ2V0U3RlcERhdGEoJ2FkZHJlc3MnKTtcbiAgICAgICAgICAgIGlmICghYWRkcmVzc0RhdGEpIHJldHVybjtcbiAgICAgICAgICAgIGNvbnN0IGtleSA9IEpTT04uc3RyaW5naWZ5KGFkZHJlc3NEYXRhKTtcbiAgICAgICAgICAgIGlmICh0aGlzLmxhc3RBZGRyZXNzS2V5ID09PSBrZXkpIHJldHVybjtcbiAgICAgICAgICAgIHRoaXMubGFzdEFkZHJlc3NLZXkgPSBrZXk7XG4gICAgICAgICAgICB0aGlzLnNoaXBtZW50U2VydmljZS5yZXN0YXJ0U3RlcCgpO1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZE9wdGlvbklkID0gbnVsbDtcbiAgICAgICAgICAgIHRoaXMuc3VtbWFyeUNoYW5nZS5lbWl0KHt9KTtcbiAgICAgICAgICAgIHRoaXMucHJlbG9hZFNpbmdsZU9wdGlvbnMoKTtcbiAgICAgICAgICAgIHRoaXMuY29zdHMgPSBbXTtcbiAgICAgICAgICAgIHRoaXMuZ3JvdXBlZE9wdGlvbnMgPSBbXTtcbiAgICAgICAgfSlcbiAgICAgICAgdGhpcy5lY09uSW5pdCgpXG5cbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcygpIHtcbiAgICAgICAgaWYgKCF0aGlzLmNvbXBhY3RTaGlwbWVudFZpZXcpIHtcbiAgICAgICAgICAgIHRoaXMuc2hpcG1lbnRTZXJ2aWNlLmdldFNoaXBtZW50TWV0aG9kcygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdG9UcmFkdWNpYmxlID0gKG5hbWUpID0+IG5hbWUucmVwbGFjZSgvXy9nLCAnLScpO1xuXG4gICAgZGVsZXRlVVBTID0gKG1ldGhvZHMpID0+IG1ldGhvZHMuZmlsdGVyKG1ldGhvZCA9PiBtZXRob2QubmFtZSAhPSAnVVBTJyk7XG5cbiAgICAgc2V0TWV0aG9kID0gKG1ldGhvZCkgPT4ge1xuICAgICAgICAgdGhpcy5tZXRob2RTZWxlY3QgPSBtZXRob2Q7XG4gICAgICAgICB0aGlzLmxvYWRpbmdfaW50ZXJuYWwgPSB0cnVlO1xuICAgICAgICAgdGhpcy5zaGlwbWVudEVycm9yS2V5ID0gbnVsbDtcbiAgICAgICAgIHRoaXMuc2hpcG1lbnRTZXJ2aWNlLnJlc3RhcnRTdGVwKCk7XG5cbiAgICAgICAgIC8vIERlc2hhYmlsaXRhciB0b2RvcyBsb3MgYm90b25lc1xuICAgICAgICAgdGhpcy5idXR0b25zRGlzYWJsZWQgPSB0cnVlO1xuXG4gICAgIC8vICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICB0aGlzLnNoaXBtZW50U2VydmljZS5zZXRNZXRob2QobWV0aG9kLmNvZGUpLnRoZW4ocmVzID0+IHtcbiAgICAgICAgICAgICAgICAgdGhpcy5sb2FkaW5nX2ludGVybmFsID0gZmFsc2U7XG5cbiAgICAgICAgICAgICAgICAgLy8gSGFiaWxpdGFyIHRvZG9zIGxvcyBib3RvbmVzXG4gICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge3RoaXMuYnV0dG9uc0Rpc2FibGVkID0gZmFsc2U7fSwgMTAwMCk7XG4gICAgICAgICAgICAgfSkuY2F0Y2goZXJyb3IgPT4ge1xuICAgICAgICAgICAgICAgICAvLyBFbiBjYXNvIGRlIGVycm9yLCB0YW1iacOpbiBoYWJpbGl0YXIgbG9zIGJvdG9uZXNcbiAgICAgICAgICAgICAgICAgdGhpcy5sb2FkaW5nX2ludGVybmFsID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgIHRoaXMuYnV0dG9uc0Rpc2FibGVkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgIHRoaXMuc2hpcG1lbnRFcnJvcktleSA9ICdvcGVyYXRpb24tZXJyb3InO1xuICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKFwiRXJyb3I6XCIsIGVycm9yKTtcbiAgICAgICAgICAgICB9KTtcbiAgICAgLy8gICAgIH0sIDEwMDApO1xuICAgICB9XG5cbiAgICAgcHJlbG9hZFNpbmdsZU9wdGlvbnMgPSBhc3luYyAoKSA9PiB7XG4gICAgICAgICB0aGlzLmxvYWRpbmdfcHJlbG9hZCA9IHRydWU7XG4gICAgICAgICB0aGlzLnNpbmdsZU9wdGlvbnMgPSBbXTtcbiAgICAgICAgIHRoaXMuZ3JvdXBlZE9wdGlvbnMgPSBbXTtcbiAgICAgICAgIHRoaXMuc2VsZWN0ZWRPcHRpb25JZCA9IG51bGw7XG4gICAgICAgICB0aGlzLnVuYXZhaWxhYmxlTWV0aG9kcyA9IHt9O1xuICAgICAgICAgdGhpcy5zaGlwbWVudEVycm9yS2V5ID0gbnVsbDtcbiAgICAgICAgIGNvbnN0IG1ldGhvZE9wdGlvbnMgPSBhd2FpdCB0aGlzLnNoaXBtZW50U2VydmljZS5nZXRTaGlwcGluZ09wdGlvbnMoKTtcbiAgICAgICAgIGlmICghbWV0aG9kT3B0aW9ucyB8fCAhbWV0aG9kT3B0aW9ucy5sZW5ndGgpIHtcbiAgICAgICAgICAgICB0aGlzLmxvYWRpbmdfcHJlbG9hZCA9IGZhbHNlO1xuICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgIH1cbiAgICAgICAgIGxldCBvcHRpb25JbmRleCA9IDA7XG4gICAgICAgICBmb3IgKGNvbnN0IGVudHJ5IG9mIG1ldGhvZE9wdGlvbnMpIHtcbiAgICAgICAgICAgICBjb25zdCBtZXRob2QgPSBlbnRyeT8ubWV0aG9kO1xuICAgICAgICAgICAgIGlmICghbWV0aG9kIHx8IG1ldGhvZC5uYW1lID09PSAnVVBTJykgY29udGludWU7XG4gICAgICAgICAgICAgY29uc3Qgb3B0aW9ucyA9IGVudHJ5Py5vcHRpb25zIHx8IFtdO1xuICAgICAgICAgICAgIGxldCBoYXNDb250cmFjdHMgPSBmYWxzZTtcbiAgICAgICAgICAgICBvcHRpb25zLmZvckVhY2gob3B0aW9uID0+IHtcbiAgICAgICAgICAgICAgICAgY29uc3QgY29udHJhY3RzID0gb3B0aW9uPy5jb250cmFjdHMgfHwgW107XG4gICAgICAgICAgICAgICAgIGlmICghY29udHJhY3RzLmxlbmd0aCkgcmV0dXJuO1xuICAgICAgICAgICAgICAgICBoYXNDb250cmFjdHMgPSB0cnVlO1xuICAgICAgICAgICAgICAgICBjb250cmFjdHMuZm9yRWFjaChjb250cmFjdCA9PiB7XG4gICAgICAgICAgICAgICAgICAgICBjb25zdCBub3JtYWxpemVkQ29udHJhY3QgPSB7IC4uLmNvbnRyYWN0IH07XG4gICAgICAgICAgICAgICAgICAgICBpZiAoIW5vcm1hbGl6ZWRDb250cmFjdC5jb250cmFjdCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgIG5vcm1hbGl6ZWRDb250cmFjdC5jb250cmFjdCA9IG9wdGlvbi5uYW1lO1xuICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgb3B0aW9uSW5kZXggKz0gMTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zaW5nbGVPcHRpb25zLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBgJHttZXRob2QuY29kZX0tJHtvcHRpb24ubmFtZX0tJHtjb250cmFjdC5uYW1lfS0ke29wdGlvbkluZGV4fWAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgbWV0aG9kLFxuICAgICAgICAgICAgICAgICAgICAgICAgIGNvc3ROYW1lOiBvcHRpb24ubmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICBjb250cmFjdDogbm9ybWFsaXplZENvbnRyYWN0XG4gICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgaWYgKCFoYXNDb250cmFjdHMpIHtcbiAgICAgICAgICAgICAgICAgdGhpcy51bmF2YWlsYWJsZU1ldGhvZHNbbWV0aG9kLmNvZGVdID0gdHJ1ZTtcbiAgICAgICAgICAgICB9XG4gICAgICAgICB9XG4gICAgICAgICB0aGlzLmdyb3VwZWRPcHRpb25zID0gdGhpcy5idWlsZEdyb3VwZWRPcHRpb25zKHRoaXMuc2luZ2xlT3B0aW9ucyk7XG4gICAgICAgICBpZiAoIXRoaXMuc2luZ2xlT3B0aW9ucy5sZW5ndGggJiYgT2JqZWN0LmtleXModGhpcy51bmF2YWlsYWJsZU1ldGhvZHMpLmxlbmd0aCkge1xuICAgICAgICAgICAgIHRoaXMuc2hpcG1lbnRFcnJvcktleSA9ICdvcGVyYXRpb24tZXJyb3InO1xuICAgICAgICAgfVxuICAgICAgICAgdGhpcy5sb2FkaW5nX3ByZWxvYWQgPSBmYWxzZTtcbiAgICAgfVxuXG4gICAgc2VsZWN0U2luZ2xlT3B0aW9uID0gYXN5bmMgKG9wdGlvbikgPT4ge1xuICAgICAgICBpZiAoIW9wdGlvbikgcmV0dXJuO1xuICAgICAgICBpZiAodGhpcy5zZWxlY3RlZE9wdGlvbklkID09PSBvcHRpb24uaWQgJiYgIXRoaXMubG9hZGluZ19pbnRlcm5hbCkgcmV0dXJuO1xuICAgICAgICAgdGhpcy5zZWxlY3RlZE9wdGlvbklkID0gb3B0aW9uLmlkO1xuICAgICAgICAgdGhpcy5sb2FkaW5nX2ludGVybmFsID0gdHJ1ZTtcbiAgICAgICAgIHRoaXMuc2hpcG1lbnRFcnJvcktleSA9IG51bGw7XG4gICAgICAgICB0cnkge1xuICAgICAgICAgICAgbGV0IGNvbnRyYWN0RGF0YSA9IHsgLi4uKG9wdGlvbi5jb250cmFjdCB8fCB7fSkgfTtcbiAgICAgICAgICAgIGNvbnN0IGluaXRpYWxDb250cmFjdE5hbWUgPSBjb250cmFjdERhdGEubmFtZSB8fCBvcHRpb24uY29udHJhY3Q/Lm5hbWU7XG4gICAgICAgICAgICBpZiAodGhpcy5zaG91bGRFbnJpY2hGcm9tTGVnYWN5KG9wdGlvbikpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBsZWdhY3lDb250cmFjdERhdGEgPSBhd2FpdCB0aGlzLmdldExlZ2FjeUNvbnRyYWN0RGF0YShcbiAgICAgICAgICAgICAgICAgICAgb3B0aW9uLm1ldGhvZD8uY29kZSxcbiAgICAgICAgICAgICAgICAgICAgb3B0aW9uLmNvc3ROYW1lLFxuICAgICAgICAgICAgICAgICAgICBpbml0aWFsQ29udHJhY3ROYW1lXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBpZiAobGVnYWN5Q29udHJhY3REYXRhKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRyYWN0RGF0YSA9IHsgLi4uY29udHJhY3REYXRhLCAuLi5sZWdhY3lDb250cmFjdERhdGEgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBjb250cmFjdFR5cGUgPSBjb250cmFjdERhdGEuY29udHJhY3QgfHwgb3B0aW9uLmNvc3ROYW1lO1xuICAgICAgICAgICAgY29uc3QgY29udHJhY3ROYW1lID0gY29udHJhY3REYXRhLm5hbWUgfHwgb3B0aW9uLmNvbnRyYWN0Py5uYW1lO1xuICAgICAgICAgICAgY29uc3Qgc2hpcHBpbmdNZXRob2RDb250cmFjdCA9IGAke29wdGlvbi5jb3N0TmFtZX1fJHtjb250cmFjdE5hbWV9YDtcbiAgICAgICAgICAgIGNvbnN0IHNoaXBwaW5nTWV0aG9kQnJhbmNoQ29kZSA9IG9wdGlvbi5jb3N0TmFtZSA9PT0gJ2JyYW5jaF9kZWxpdmVyeSdcbiAgICAgICAgICAgICAgICA/IChjb250cmFjdERhdGEuc3VjdXJzYWxfaWQgfHwgY29udHJhY3REYXRhLm51bWJlciB8fCBjb250cmFjdERhdGEuYnJhbmNoX3Byb3BlcnR5Py5udW1iZXIgfHwgY29udHJhY3ROYW1lKVxuICAgICAgICAgICAgICAgIDogY29udHJhY3ROYW1lO1xuICAgICAgICAgICAgY29uc3Qgc2FuaXRpemVkQ29udHJhY3REYXRhID0geyAuLi5jb250cmFjdERhdGEgfTtcbiAgICAgICAgICAgIGRlbGV0ZSBzYW5pdGl6ZWRDb250cmFjdERhdGEuYnJhbmNoX3Byb3BlcnR5O1xuICAgICAgICAgICAgZGVsZXRlIHNhbml0aXplZENvbnRyYWN0RGF0YS5vcmlnaW5hbFByaWNlO1xuICAgICAgICAgICAgZGVsZXRlIHNhbml0aXplZENvbnRyYWN0RGF0YS5vcHRpb247XG4gICAgICAgICAgICBjb25zdCByZXF1ZXN0UGF5bG9hZCA9IHtcbiAgICAgICAgICAgICAgICAuLi5zYW5pdGl6ZWRDb250cmFjdERhdGEsXG4gICAgICAgICAgICAgICAgc2hpcHBpbmdJZDogb3B0aW9uLm1ldGhvZC5jb2RlLFxuICAgICAgICAgICAgICAgIG1ldGhvZDogb3B0aW9uLm1ldGhvZC5jb2RlLFxuICAgICAgICAgICAgICAgIG9wdGlvbjogb3B0aW9uLmNvc3ROYW1lLFxuICAgICAgICAgICAgICAgIGNvbnRyYWN0OiBjb250cmFjdFR5cGUsXG4gICAgICAgICAgICAgICAgbmFtZTogY29udHJhY3ROYW1lLFxuICAgICAgICAgICAgICAgIHByaWNlOiBjb250cmFjdERhdGEucHJpY2UsXG4gICAgICAgICAgICAgICAgc2VsZWN0ZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgc2hpcHBpbmdfbWV0aG9kX2NvbnRyYWN0OiBzaGlwcGluZ01ldGhvZENvbnRyYWN0LFxuICAgICAgICAgICAgICAgIHNoaXBwaW5nX21ldGhvZF9icmFuY2hfY29kZTogc2hpcHBpbmdNZXRob2RCcmFuY2hDb2RlXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgY29uc3Qgc3RlcERhdGEgPSB7XG4gICAgICAgICAgICAgICAgLi4ucmVxdWVzdFBheWxvYWQsXG4gICAgICAgICAgICAgICAgb3JpZ2luYWxQcmljZTogdGhpcy5zaGlwcGluZ1ByaWNlRGlzcGxheS5ub3JtYWxpemVQcmljZVZhbHVlKGNvbnRyYWN0RGF0YS5vcmlnaW5hbFByaWNlKSxcbiAgICAgICAgICAgICAgICBtZXRob2RfbmFtZTogb3B0aW9uLm1ldGhvZD8ubmFtZSxcbiAgICAgICAgICAgICAgICBjb250cmFjdF9uYW1lOiBjb250cmFjdE5hbWVcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBhd2FpdCB0aGlzLnNoaXBtZW50U2VydmljZS5zZXRTaGlwcGluZ09wdGlvbihyZXF1ZXN0UGF5bG9hZCwgc3RlcERhdGEpO1xuICAgICAgICAgICAgY29uc3QgbWV0aG9kTGFiZWwgPSBvcHRpb24ubWV0aG9kPy5uYW1lXG4gICAgICAgICAgICAgICAgPyB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChvcHRpb24ubWV0aG9kLm5hbWUpXG4gICAgICAgICAgICAgICAgOiAnJztcbiAgICAgICAgICAgIGNvbnN0IGNvbnRyYWN0TGFiZWwgPSBvcHRpb24uY29udHJhY3Q/Lm5hbWVcbiAgICAgICAgICAgICAgICA/IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KG9wdGlvbi5jb250cmFjdC5uYW1lKVxuICAgICAgICAgICAgICAgIDogJyc7XG4gICAgICAgICAgICBjb25zdCBncm91cExhYmVsID0gb3B0aW9uLmNvc3ROYW1lXG4gICAgICAgICAgICAgICAgPyB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCh0aGlzLnJlc29sdmVHcm91cExhYmVsKG9wdGlvbi5jb3N0TmFtZSkpXG4gICAgICAgICAgICAgICAgOiAnJztcbiAgICAgICAgICAgIGNvbnN0IGxhYmVsID0gW2dyb3VwTGFiZWwsIG1ldGhvZExhYmVsLCBjb250cmFjdExhYmVsXS5maWx0ZXIoQm9vbGVhbikuam9pbignIMK3ICcpO1xuICAgICAgICAgICAgY29uc3QgZGV0YWlsID0gb3B0aW9uLmNvbnRyYWN0Py5jb21wdXRlZCB8fCBvcHRpb24uY29udHJhY3Q/LmRldGFpbCB8fCAnJztcbiAgICAgICAgICAgIHRoaXMuc3VtbWFyeUNoYW5nZS5lbWl0KHtcbiAgICAgICAgICAgICAgICBsYWJlbDogbGFiZWwgfHwgdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgIGRldGFpbDogZGV0YWlsIHx8IHVuZGVmaW5lZFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgaWYgKHRoaXMuY29tcGFjdFNoaXBtZW50Vmlldykge1xuICAgICAgICAgICAgICAgICB0aGlzLmFkdmFuY2VTdGVwLmVtaXQoKTtcbiAgICAgICAgICAgICB9XG4gICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgIHRoaXMuc2hpcG1lbnRFcnJvcktleSA9ICdvcGVyYXRpb24tZXJyb3InO1xuICAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICAgICB0aGlzLmxvYWRpbmdfaW50ZXJuYWwgPSBmYWxzZTtcbiAgICAgICAgIH1cbiAgICAgfVxuXG4gICAgcHJpdmF0ZSBzaG91bGRFbnJpY2hGcm9tTGVnYWN5KG9wdGlvbjogYW55KTogYm9vbGVhbiB7XG4gICAgICAgIGlmICghb3B0aW9uIHx8IG9wdGlvbi5jb3N0TmFtZSAhPT0gJ2JyYW5jaF9kZWxpdmVyeScpIHJldHVybiBmYWxzZTtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRMZWdhY3lDb250cmFjdERhdGEgPSBhc3luYyAoXG4gICAgICAgIG1ldGhvZENvZGU6IHN0cmluZyB8IHVuZGVmaW5lZCxcbiAgICAgICAgY29zdE5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZCxcbiAgICAgICAgY29udHJhY3ROYW1lOiBzdHJpbmcgfCB1bmRlZmluZWRcbiAgICApID0+IHtcbiAgICAgICAgaWYgKCFtZXRob2RDb2RlIHx8ICFjb3N0TmFtZSB8fCAhY29udHJhY3ROYW1lKSByZXR1cm4gbnVsbDtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IGNvc3RzID0gYXdhaXQgdGhpcy5zaGlwbWVudFNlcnZpY2UuZ2V0Q29zdHNGb3JNZXRob2QobWV0aG9kQ29kZSk7XG4gICAgICAgICAgICBjb25zdCBzZWxlY3RlZENvc3QgPSAoY29zdHMgfHwgW10pLmZpbmQoY29zdCA9PiBTdHJpbmcoY29zdD8ubmFtZSB8fCAnJykgPT09IFN0cmluZyhjb3N0TmFtZSkpO1xuICAgICAgICAgICAgaWYgKCFzZWxlY3RlZENvc3Q/LmNvbnRyYWN0cz8ubGVuZ3RoKSByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkQ29udHJhY3QgPSBzZWxlY3RlZENvc3QuY29udHJhY3RzLmZpbmQoY29udHJhY3QgPT5cbiAgICAgICAgICAgICAgICBTdHJpbmcoY29udHJhY3Q/Lm5hbWUgfHwgJycpID09PSBTdHJpbmcoY29udHJhY3ROYW1lKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHJldHVybiBzZWxlY3RlZENvbnRyYWN0IHx8IG51bGw7XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICBzZXRBY3RpdmUoZSkge1xuICAgICAgICBjb25zdCBwYXJlbnQgPSBlLnRhcmdldC5wYXJlbnRFbGVtZW50LmNoaWxkcmVuO1xuICAgICAgICBmb3IgKGNvbnN0IGJ1dHRvbiBvZiBwYXJlbnQpIHtcbiAgICAgICAgICAgIGlmIChidXR0b24uY2xhc3NMaXN0LmNvbnRhaW5zKCdhY3RpdmUnKSkge1xuICAgICAgICAgICAgICAgIGJ1dHRvbi5jbGFzc0xpc3QucmVtb3ZlKCdhY3RpdmUnKVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGUudGFyZ2V0LmNsYXNzTGlzdC5hZGQoXCJhY3RpdmVcIilcbiAgICB9XG5cbiAgICB2YWxpZE5hbWUgPSAobmFtZSkgPT4gaXNOYU4obmFtZSk7XG5cbiAgICBnZXRDb250cmFjdFByaWNlVmlldyA9IChjb250cmFjdDogYW55KSA9PlxuICAgICAgICB0aGlzLnNoaXBwaW5nUHJpY2VEaXNwbGF5LmdldENvbnRyYWN0Vmlldyhjb250cmFjdCk7XG5cbiAgICBwcml2YXRlIGJ1aWxkR3JvdXBlZE9wdGlvbnMob3B0aW9uczogYW55W10pIHtcbiAgICAgICAgaWYgKCFvcHRpb25zPy5sZW5ndGgpIHJldHVybiBbXTtcbiAgICAgICAgY29uc3QgZ3JvdXBzID0gbmV3IE1hcDxzdHJpbmcsIGFueVtdPigpO1xuICAgICAgICBvcHRpb25zLmZvckVhY2gob3B0aW9uID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGtleSA9IG9wdGlvbj8uY29zdE5hbWUgfHwgJ2RlZmF1bHQnO1xuICAgICAgICAgICAgaWYgKCFncm91cHMuaGFzKGtleSkpIGdyb3Vwcy5zZXQoa2V5LCBbXSk7XG4gICAgICAgICAgICBncm91cHMuZ2V0KGtleSk/LnB1c2gob3B0aW9uKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBBcnJheS5mcm9tKGdyb3Vwcy5lbnRyaWVzKCkpLm1hcCgoW2tleSwgZ3JvdXBPcHRpb25zXSkgPT4gKHtcbiAgICAgICAgICAgIGtleSxcbiAgICAgICAgICAgIGxhYmVsOiB0aGlzLnJlc29sdmVHcm91cExhYmVsKGtleSwgZ3JvdXBPcHRpb25zPy5bMF0/Lm1ldGhvZD8ubmFtZSksXG4gICAgICAgICAgICBvcHRpb25zOiBncm91cE9wdGlvbnNcbiAgICAgICAgfSkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVzb2x2ZUdyb3VwTGFiZWwoY29zdE5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZCB8IG51bGwsIG1ldGhvZE5hbWU/OiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKGNvc3ROYW1lKSB7XG4gICAgICAgICAgICBjb25zdCBub3JtYWxpemVkID0gY29zdE5hbWUudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgICAgIGlmIChub3JtYWxpemVkID09PSAnYnJhbmNoX2RlbGl2ZXJ5JykgcmV0dXJuICdSZXRpcm8gZW4gc3VjdXJzYWwnO1xuICAgICAgICAgICAgaWYgKG5vcm1hbGl6ZWQgPT09ICdob21lX2RlbGl2ZXJ5JykgcmV0dXJuICdFbnbDrW8gYSBkb21pY2lsaW8nO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBtZXRob2ROYW1lIHx8IChjb3N0TmFtZSB8fCAnJyk7XG4gICAgfVxuXG59XG4iXX0=
338
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hpcG1lbnQtZWMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmctZWFzeWNvbW1lcmNlLyIsInNvdXJjZXMiOlsibGliL2VjLWNvbXBvbmVudC9jaGVja291dC1lYy9zaGlwbWVudC1lYy9zaGlwbWVudC1lYy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFFMUYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDOUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQVE1RixJQUFhLG1CQUFtQixHQUFoQyxNQUFhLG1CQUFvQixTQUFRLGVBQWU7SUF5QnBELFlBQW1CLGVBQWdDLEVBQVksYUFBMkIsRUFDL0UsZUFBZ0MsRUFBUyxlQUFnQyxFQUN4RSxnQkFBa0MsRUFDbEMsb0JBQWlEO1FBQ3pELEtBQUssRUFBRSxDQUFDO1FBSk8sb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQVksa0JBQWEsR0FBYixhQUFhLENBQWM7UUFDL0Usb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQVMsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ3hFLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMseUJBQW9CLEdBQXBCLG9CQUFvQixDQUE2QjtRQXpC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QUFHLG9CQUFFLFlBQVksMENBQUcsQ0FBQywyQ0FBRyxNQUFNLDBDQUFFLElBQUksQ0FBQztnQkFDbkUsT0FBTyxFQUFFLFlBQVk7YUFDeEIsQ0FBQyxDQUFBO1NBQUEsQ0FBQyxDQUFDO0lBQ1IsQ0FBQztJQUVPLGlCQUFpQixDQUFDLFFBQW1DLEVBQUUsVUFBbUI7UUFDOUUsSUFBSSxRQUFRLEVBQUU7WUFDVixNQUFNLFVBQVUsR0FBRyxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDMUMsSUFBSSxVQUFVLEtBQUssaUJBQWlCO2dCQUFFLE9BQU8sb0JBQW9CLENBQUM7WUFDbEUsSUFBSSxVQUFVLEtBQUssZUFBZTtnQkFBRSxPQUFPLG1CQUFtQixDQUFDO1NBQ2xFO1FBQ0QsT0FBTyxVQUFVLElBQUksQ0FBQyxRQUFRLElBQUksRUFBRSxDQUFDLENBQUM7SUFDMUMsQ0FBQztDQUVKLENBQUE7O1lBL1J1QyxlQUFlO1lBQTJCLFlBQVk7WUFDOUQsZUFBZTtZQUEwQixlQUFlO1lBQ3RELGdCQUFnQjtZQUNaLDJCQUEyQjs7QUExQnBEO0lBQVIsS0FBSyxFQUFFO29EQUFTO0FBQ1I7SUFBUixLQUFLLEVBQUU7Z0VBQXNDO0FBQ3BDO0lBQVQsTUFBTSxFQUFFOzBEQUF5RTtBQUN4RTtJQUFULE1BQU0sRUFBRTt3REFBd0M7QUFMeEMsbUJBQW1CO0lBTi9CLFNBQVMsQ0FBQztRQUNQLFFBQVEsRUFBRSxpQkFBaUI7UUFDM0IsNC9QQUEyQztRQUUzQyxTQUFTLEVBQUUsQ0FBQyxlQUFlLENBQUM7O0tBQy9CLENBQUM7R0FDVyxtQkFBbUIsQ0F3VC9CO1NBeFRZLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBPbkluaXQsIE9uQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy1jb21wYXQvb3BlcmF0b3IvbWFwJztcbmltcG9ydCB7IENvbXBvbmVudEhlbHBlciB9IGZyb20gJy4uLy4uLy4uL2NsYXNzZXMvY29tcG9uZW50LWhlbHBlcic7XG5pbXBvcnQgeyBDaGVja291dFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9jaGVja291dC9jaGVja291dC5zZXJ2aWNlJztcbmltcG9ydCB7IFNoaXBtZW50U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2NoZWNrb3V0L3NoaXBtZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgUHJvZHVjdHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvcHJvZHVjdHMvcHJvZHVjdHMuc2VydmljZSc7XG5pbXBvcnQgeyBUb2FzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi91dGlscy90b2FzdC5zZXJ2aWNlJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IFNoaXBwaW5nUHJpY2VEaXNwbGF5U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL3NoaXBwaW5nLXByaWNlLWRpc3BsYXkuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYXBwLXNoaXBtZW50LWVjJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vc2hpcG1lbnQtZWMuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3NoaXBtZW50LWVjLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgcHJvdmlkZXJzOiBbU2hpcG1lbnRTZXJ2aWNlXVxufSlcbmV4cG9ydCBjbGFzcyBTaGlwbWVudEVjQ29tcG9uZW50IGV4dGVuZHMgQ29tcG9uZW50SGVscGVyIGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuXG4gICAgQElucHV0KCkgc3RlcF9pZDtcbiAgICBASW5wdXQoKSBjb21wYWN0U2hpcG1lbnRWaWV3OiBib29sZWFuID0gZmFsc2U7XG4gICAgQE91dHB1dCgpIHN1bW1hcnlDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHsgbGFiZWw/OiBzdHJpbmc7IGRldGFpbD86IHN0cmluZyB9PigpO1xuICAgIEBPdXRwdXQoKSBhZHZhbmNlU3RlcCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgICBwdWJsaWMgbWV0aG9kc19saXN0OiBhbnlbXTtcbiAgICBwdWJsaWMgbWV0aG9kU2VsZWN0OiBhbnk7XG4gICAgcHVibGljIGxvYWRpbmdfaW50ZXJuYWwgPSBmYWxzZTtcbiAgICBwdWJsaWMgcG9pbnRzOiBhbnlbXSA9IFtdO1xuICAgIHB1YmxpYyBzZWxlY3RlZF9maW5hbDtcbiAgICBwdWJsaWMgY29zdG9zID0gbnVsbFxuICAgIHB1YmxpYyBjb3N0cyA9ICBbXVxuICAgIHB1YmxpYyBtb3JlSW5mb0luTWV0aG9kOiBhbnlcbiAgICBidXR0b25zRGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBwcml2YXRlIGxhc3RBZGRyZXNzS2V5OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgICBwdWJsaWMgc2hpcG1lbnRFcnJvcktleTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gICAgcHVibGljIHNpbmdsZU9wdGlvbnM6IGFueVtdID0gW107XG4gICAgcHVibGljIGxvYWRpbmdfcHJlbG9hZCA9IGZhbHNlO1xuICAgIHB1YmxpYyBzZWxlY3RlZE9wdGlvbklkOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgICBwdWJsaWMgdW5hdmFpbGFibGVNZXRob2RzOiBSZWNvcmQ8c3RyaW5nLCBib29sZWFuPiA9IHt9O1xuICAgIHB1YmxpYyBncm91cGVkT3B0aW9uczogeyBrZXk6IHN0cmluZzsgbGFiZWw6IHN0cmluZzsgb3B0aW9uczogYW55W10gfVtdID0gW107XG5cbiAgICBjb250cmFjdHMgPSBbXTtcblxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBzaGlwbWVudFNlcnZpY2U6IFNoaXBtZW50U2VydmljZSwgcHJvdGVjdGVkIHRvYXN0clNlcnZpY2U6IFRvYXN0U2VydmljZSxcbiAgICAgICAgcHVibGljIHByb2R1Y3RzU2VydmljZTogUHJvZHVjdHNTZXJ2aWNlLCBwdWJsaWMgY2hlY2tvdXRTZXJ2aWNlOiBDaGVja291dFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBzaGlwcGluZ1ByaWNlRGlzcGxheTogU2hpcHBpbmdQcmljZURpc3BsYXlTZXJ2aWNlKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuZWNPbkNvbnN0cnVjdCgpXG4gICAgfVxuXG4gICAgZW1pdFJlc3VsdCA9IChtZXRob2RfbmFtZSwgY29udHJhY3RfZGF0YSkgPT4ge1xuICAgICAgICBjb250cmFjdF9kYXRhID0ge1xuICAgICAgICAgICAgLi4uY29udHJhY3RfZGF0YSxcbiAgICAgICAgICAgIHNoaXBwaW5nX21ldGhvZF9jb250cmFjdDogbWV0aG9kX25hbWUgKyAnXycgKyBjb250cmFjdF9kYXRhLm5hbWUsXG4gICAgICAgICAgICBzaGlwcGluZ19tZXRob2RfYnJhbmNoX2NvZGU6IG1ldGhvZF9uYW1lID09IFwiYnJhbmNoX2RlbGl2ZXJ5XCIgPyBjb250cmFjdF9kYXRhLnN1Y3Vyc2FsX2lkIDogY29udHJhY3RfZGF0YS5uYW1lLFxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLnNoaXBtZW50U2VydmljZS5zZXRDb250cmFjdChjb250cmFjdF9kYXRhKTtcbiAgICB9XG5cbiAgICB2ZXJpZnlWYWxpZGF0ZSA9IChjb250cmFjdCwgZGF0YSkgPT4ge1xuICAgICAgICBpZiAodGhpcy5jb21wYWN0U2hpcG1lbnRWaWV3IHx8ICF0aGlzLmNvc3RzPy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMuZW1pdFJlc3VsdChjb250cmFjdCwgZGF0YSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHRoaXMuY29zdHMuZm9yRWFjaChjb3N0ID0+IGNvc3QuY29udHJhY3RzLmZvckVhY2goY28gPT4gY28uc2VsZWN0ZWQgPSBmYWxzZSkpXG4gICAgICAgICAgICB0aGlzLmNvc3RzLmZpbmQoY29zdCA9PiBjb3N0Lm5hbWUgPT0gY29udHJhY3QpLmNvbnRyYWN0cy5maW5kKGNvbnRyYSA9PiBjb250cmEubmFtZSA9PSBkYXRhLm5hbWUpLnNlbGVjdGVkID0gdHJ1ZVxuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgY29uc29sZS5sb2coXCJlcnJvciBhbCBidXNjYXIgY29udHJhdG9cIiwgZXJyb3IpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLmVtaXRSZXN1bHQoY29udHJhY3QsIGRhdGEpO1xuICAgIH07XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5zaGlwbWVudFNlcnZpY2UuaW5pdGlhbGl6ZSh0aGlzLnN0ZXBfaWQpO1xuICAgICAgICBpZiAoIXRoaXMuY29tcGFjdFNoaXBtZW50Vmlldykge1xuICAgICAgICAgICAgdGhpcy5zaGlwbWVudFNlcnZpY2UuZ2V0U2hpcG1lbnRNZXRob2RzKCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jaGVja291dFNlcnZpY2UuYXNvY2lhdGVkRGF0YSQuc3Vic2NyaWJlKGRhdGEgPT4ge1xuICAgICAgICAgICAgdGhpcy5jb3N0b3MgPSBkYXRhICYmIGRhdGEuZmluZCh2YWx1ZSA9PiB2YWx1ZS50eXBlID09IFwic2hpcG1lbnRcIikgfHwgbnVsbFxuICAgICAgICB9KVxuICAgICAgICB0aGlzLnNoaXBtZW50U2VydmljZS5jb3N0cy5zdWJzY3JpYmUoY29zID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLmNvbXBhY3RTaGlwbWVudFZpZXcpIHJldHVybjtcbiAgICAgICAgICAgIHRoaXMuY29zdHMgPSBjb3MubWFwKGNvc3QgPT4geyByZXR1cm4geyAuLi5jb3N0LCBjb250cmFjdHM6IGNvc3QuY29udHJhY3RzLm1hcChjbyA9PiB7IHJldHVybiB7IC4uLmNvLCBzZWxlY3RlZDogZmFsc2UgfSB9ICkgfSB9KVxuICAgICAgICAgICAgaWYgKHRoaXMuY29zdHMubGVuZ3RoICYmIHRoaXMuY29zdHNbMF0/Lm5hbWUgJiYgdGhpcy5jb3N0c1swXT8uY29udHJhY3RzWzBdKSB7XG4gICAgICAgICAgICAgICAgdGhpcy52ZXJpZnlWYWxpZGF0ZSh0aGlzLmNvc3RzWzBdLm5hbWUsIHRoaXMuY29zdHNbMF0uY29udHJhY3RzWzBdKVxuICAgICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgICB0aGlzLnNoaXBtZW50U2VydmljZS5lcnJvciQuc3Vic2NyaWJlKGVycm9yS2V5ID0+IHtcbiAgICAgICAgICAgIHRoaXMuc2hpcG1lbnRFcnJvcktleSA9IGVycm9yS2V5O1xuICAgICAgICB9KVxuICAgICAgICB0aGlzLm1vcmVJbmZvSW5NZXRob2QgPSB0cnVlIC8vU2hpcG1lbnRTZXJ2aWNlLm1vcmVJbmZvSW5NZXRob2Q7XG4gICAgICAgIHRoaXMuY2hlY2tvdXRTZXJ2aWNlLnN0YXRlJC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgaWYgKCF0aGlzLmNvbXBhY3RTaGlwbWVudFZpZXcpIHJldHVybjtcbiAgICAgICAgICAgIGNvbnN0IGFkZHJlc3NEYXRhID0gdGhpcy5jaGVja291dFNlcnZpY2UuZ2V0U3RlcERhdGEoJ2FkZHJlc3MnKTtcbiAgICAgICAgICAgIGlmICghYWRkcmVzc0RhdGEpIHJldHVybjtcbiAgICAgICAgICAgIGNvbnN0IGtleSA9IEpTT04uc3RyaW5naWZ5KGFkZHJlc3NEYXRhKTtcbiAgICAgICAgICAgIGlmICh0aGlzLmxhc3RBZGRyZXNzS2V5ID09PSBrZXkpIHJldHVybjtcbiAgICAgICAgICAgIHRoaXMubGFzdEFkZHJlc3NLZXkgPSBrZXk7XG4gICAgICAgICAgICB0aGlzLnNoaXBtZW50U2VydmljZS5yZXN0YXJ0U3RlcCgpO1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZE9wdGlvbklkID0gbnVsbDtcbiAgICAgICAgICAgIHRoaXMuc3VtbWFyeUNoYW5nZS5lbWl0KHt9KTtcbiAgICAgICAgICAgIHRoaXMucHJlbG9hZFNpbmdsZU9wdGlvbnMoKTtcbiAgICAgICAgICAgIHRoaXMuY29zdHMgPSBbXTtcbiAgICAgICAgICAgIHRoaXMuZ3JvdXBlZE9wdGlvbnMgPSBbXTtcbiAgICAgICAgfSlcbiAgICAgICAgdGhpcy5lY09uSW5pdCgpXG5cbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcygpIHtcbiAgICAgICAgaWYgKCF0aGlzLmNvbXBhY3RTaGlwbWVudFZpZXcpIHtcbiAgICAgICAgICAgIHRoaXMuc2hpcG1lbnRTZXJ2aWNlLmdldFNoaXBtZW50TWV0aG9kcygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdG9UcmFkdWNpYmxlID0gKG5hbWUpID0+IG5hbWUucmVwbGFjZSgvXy9nLCAnLScpO1xuXG4gICAgZGVsZXRlVVBTID0gKG1ldGhvZHMpID0+IG1ldGhvZHMuZmlsdGVyKG1ldGhvZCA9PiBtZXRob2QubmFtZSAhPSAnVVBTJyk7XG5cbiAgICAgc2V0TWV0aG9kID0gKG1ldGhvZCkgPT4ge1xuICAgICAgICAgdGhpcy5tZXRob2RTZWxlY3QgPSBtZXRob2Q7XG4gICAgICAgICB0aGlzLmxvYWRpbmdfaW50ZXJuYWwgPSB0cnVlO1xuICAgICAgICAgdGhpcy5zaGlwbWVudEVycm9yS2V5ID0gbnVsbDtcbiAgICAgICAgIHRoaXMuc2hpcG1lbnRTZXJ2aWNlLnJlc3RhcnRTdGVwKCk7XG5cbiAgICAgICAgIC8vIERlc2hhYmlsaXRhciB0b2RvcyBsb3MgYm90b25lc1xuICAgICAgICAgdGhpcy5idXR0b25zRGlzYWJsZWQgPSB0cnVlO1xuXG4gICAgIC8vICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICB0aGlzLnNoaXBtZW50U2VydmljZS5zZXRNZXRob2QobWV0aG9kLmNvZGUpLnRoZW4ocmVzID0+IHtcbiAgICAgICAgICAgICAgICAgdGhpcy5sb2FkaW5nX2ludGVybmFsID0gZmFsc2U7XG5cbiAgICAgICAgICAgICAgICAgLy8gSGFiaWxpdGFyIHRvZG9zIGxvcyBib3RvbmVzXG4gICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge3RoaXMuYnV0dG9uc0Rpc2FibGVkID0gZmFsc2U7fSwgMTAwMCk7XG4gICAgICAgICAgICAgfSkuY2F0Y2goZXJyb3IgPT4ge1xuICAgICAgICAgICAgICAgICAvLyBFbiBjYXNvIGRlIGVycm9yLCB0YW1iacOpbiBoYWJpbGl0YXIgbG9zIGJvdG9uZXNcbiAgICAgICAgICAgICAgICAgdGhpcy5sb2FkaW5nX2ludGVybmFsID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgIHRoaXMuYnV0dG9uc0Rpc2FibGVkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgIHRoaXMuc2hpcG1lbnRFcnJvcktleSA9ICdvcGVyYXRpb24tZXJyb3InO1xuICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKFwiRXJyb3I6XCIsIGVycm9yKTtcbiAgICAgICAgICAgICB9KTtcbiAgICAgLy8gICAgIH0sIDEwMDApO1xuICAgICB9XG5cbiAgICAgcHJlbG9hZFNpbmdsZU9wdGlvbnMgPSBhc3luYyAoKSA9PiB7XG4gICAgICAgICB0aGlzLmxvYWRpbmdfcHJlbG9hZCA9IHRydWU7XG4gICAgICAgICB0aGlzLnNpbmdsZU9wdGlvbnMgPSBbXTtcbiAgICAgICAgIHRoaXMuZ3JvdXBlZE9wdGlvbnMgPSBbXTtcbiAgICAgICAgIHRoaXMuc2VsZWN0ZWRPcHRpb25JZCA9IG51bGw7XG4gICAgICAgICB0aGlzLnVuYXZhaWxhYmxlTWV0aG9kcyA9IHt9O1xuICAgICAgICAgdGhpcy5zaGlwbWVudEVycm9yS2V5ID0gbnVsbDtcbiAgICAgICAgIGNvbnN0IG1ldGhvZE9wdGlvbnMgPSBhd2FpdCB0aGlzLnNoaXBtZW50U2VydmljZS5nZXRTaGlwcGluZ09wdGlvbnMoKTtcbiAgICAgICAgIGlmICghbWV0aG9kT3B0aW9ucyB8fCAhbWV0aG9kT3B0aW9ucy5sZW5ndGgpIHtcbiAgICAgICAgICAgICB0aGlzLmxvYWRpbmdfcHJlbG9hZCA9IGZhbHNlO1xuICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgIH1cbiAgICAgICAgIGxldCBvcHRpb25JbmRleCA9IDA7XG4gICAgICAgICBmb3IgKGNvbnN0IGVudHJ5IG9mIG1ldGhvZE9wdGlvbnMpIHtcbiAgICAgICAgICAgICBjb25zdCBtZXRob2QgPSBlbnRyeT8ubWV0aG9kO1xuICAgICAgICAgICAgIGlmICghbWV0aG9kIHx8IG1ldGhvZC5uYW1lID09PSAnVVBTJykgY29udGludWU7XG4gICAgICAgICAgICAgY29uc3Qgb3B0aW9ucyA9IGVudHJ5Py5vcHRpb25zIHx8IFtdO1xuICAgICAgICAgICAgIGxldCBoYXNDb250cmFjdHMgPSBmYWxzZTtcbiAgICAgICAgICAgICBvcHRpb25zLmZvckVhY2gob3B0aW9uID0+IHtcbiAgICAgICAgICAgICAgICAgY29uc3QgY29udHJhY3RzID0gb3B0aW9uPy5jb250cmFjdHMgfHwgW107XG4gICAgICAgICAgICAgICAgIGlmICghY29udHJhY3RzLmxlbmd0aCkgcmV0dXJuO1xuICAgICAgICAgICAgICAgICBoYXNDb250cmFjdHMgPSB0cnVlO1xuICAgICAgICAgICAgICAgICBjb250cmFjdHMuZm9yRWFjaChjb250cmFjdCA9PiB7XG4gICAgICAgICAgICAgICAgICAgICBjb25zdCBub3JtYWxpemVkQ29udHJhY3QgPSB7IC4uLmNvbnRyYWN0IH07XG4gICAgICAgICAgICAgICAgICAgICBpZiAoIW5vcm1hbGl6ZWRDb250cmFjdC5jb250cmFjdCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgIG5vcm1hbGl6ZWRDb250cmFjdC5jb250cmFjdCA9IG9wdGlvbi5uYW1lO1xuICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgb3B0aW9uSW5kZXggKz0gMTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zaW5nbGVPcHRpb25zLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBgJHttZXRob2QuY29kZX0tJHtvcHRpb24ubmFtZX0tJHtjb250cmFjdC5uYW1lfS0ke29wdGlvbkluZGV4fWAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgbWV0aG9kLFxuICAgICAgICAgICAgICAgICAgICAgICAgIGNvc3ROYW1lOiBvcHRpb24ubmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICBjb250cmFjdDogbm9ybWFsaXplZENvbnRyYWN0XG4gICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgaWYgKCFoYXNDb250cmFjdHMpIHtcbiAgICAgICAgICAgICAgICAgdGhpcy51bmF2YWlsYWJsZU1ldGhvZHNbbWV0aG9kLmNvZGVdID0gdHJ1ZTtcbiAgICAgICAgICAgICB9XG4gICAgICAgICB9XG4gICAgICAgICB0aGlzLmdyb3VwZWRPcHRpb25zID0gdGhpcy5idWlsZEdyb3VwZWRPcHRpb25zKHRoaXMuc2luZ2xlT3B0aW9ucyk7XG4gICAgICAgICBpZiAoIXRoaXMuc2luZ2xlT3B0aW9ucy5sZW5ndGggJiYgT2JqZWN0LmtleXModGhpcy51bmF2YWlsYWJsZU1ldGhvZHMpLmxlbmd0aCkge1xuICAgICAgICAgICAgIHRoaXMuc2hpcG1lbnRFcnJvcktleSA9ICdvcGVyYXRpb24tZXJyb3InO1xuICAgICAgICAgfVxuICAgICAgICAgdGhpcy5sb2FkaW5nX3ByZWxvYWQgPSBmYWxzZTtcbiAgICAgfVxuXG4gICAgc2VsZWN0U2luZ2xlT3B0aW9uID0gYXN5bmMgKG9wdGlvbikgPT4ge1xuICAgICAgICBpZiAoIW9wdGlvbikgcmV0dXJuO1xuICAgICAgICBpZiAodGhpcy5zZWxlY3RlZE9wdGlvbklkID09PSBvcHRpb24uaWQgJiYgIXRoaXMubG9hZGluZ19pbnRlcm5hbCkgcmV0dXJuO1xuICAgICAgICAgdGhpcy5zZWxlY3RlZE9wdGlvbklkID0gb3B0aW9uLmlkO1xuICAgICAgICAgdGhpcy5sb2FkaW5nX2ludGVybmFsID0gdHJ1ZTtcbiAgICAgICAgIHRoaXMuc2hpcG1lbnRFcnJvcktleSA9IG51bGw7XG4gICAgICAgICB0cnkge1xuICAgICAgICAgICAgbGV0IGNvbnRyYWN0RGF0YSA9IHsgLi4uKG9wdGlvbi5jb250cmFjdCB8fCB7fSkgfTtcbiAgICAgICAgICAgIGNvbnN0IGluaXRpYWxDb250cmFjdE5hbWUgPSBjb250cmFjdERhdGEubmFtZSB8fCBvcHRpb24uY29udHJhY3Q/Lm5hbWU7XG4gICAgICAgICAgICBpZiAodGhpcy5zaG91bGRFbnJpY2hGcm9tTGVnYWN5KG9wdGlvbikpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBsZWdhY3lDb250cmFjdERhdGEgPSBhd2FpdCB0aGlzLmdldExlZ2FjeUNvbnRyYWN0RGF0YShcbiAgICAgICAgICAgICAgICAgICAgb3B0aW9uLm1ldGhvZD8uY29kZSxcbiAgICAgICAgICAgICAgICAgICAgb3B0aW9uLmNvc3ROYW1lLFxuICAgICAgICAgICAgICAgICAgICBpbml0aWFsQ29udHJhY3ROYW1lXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBpZiAobGVnYWN5Q29udHJhY3REYXRhKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRyYWN0RGF0YSA9IHsgLi4uY29udHJhY3REYXRhLCAuLi5sZWdhY3lDb250cmFjdERhdGEgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBjb250cmFjdFR5cGUgPSBjb250cmFjdERhdGEuY29udHJhY3QgfHwgb3B0aW9uLmNvc3ROYW1lO1xuICAgICAgICAgICAgY29uc3QgY29udHJhY3ROYW1lID0gY29udHJhY3REYXRhLm5hbWUgfHwgb3B0aW9uLmNvbnRyYWN0Py5uYW1lO1xuICAgICAgICAgICAgY29uc3Qgc2hpcHBpbmdNZXRob2RDb250cmFjdCA9IGAke29wdGlvbi5jb3N0TmFtZX1fJHtjb250cmFjdE5hbWV9YDtcbiAgICAgICAgICAgIGNvbnN0IHNoaXBwaW5nTWV0aG9kQnJhbmNoQ29kZSA9IG9wdGlvbi5jb3N0TmFtZSA9PT0gJ2JyYW5jaF9kZWxpdmVyeSdcbiAgICAgICAgICAgICAgICA/IChjb250cmFjdERhdGEuc3VjdXJzYWxfaWQgfHwgY29udHJhY3REYXRhLm51bWJlciB8fCBjb250cmFjdERhdGEuYnJhbmNoX3Byb3BlcnR5Py5udW1iZXIgfHwgY29udHJhY3ROYW1lKVxuICAgICAgICAgICAgICAgIDogY29udHJhY3ROYW1lO1xuICAgICAgICAgICAgY29uc3Qgc2FuaXRpemVkQ29udHJhY3REYXRhID0geyAuLi5jb250cmFjdERhdGEgfTtcbiAgICAgICAgICAgIGRlbGV0ZSBzYW5pdGl6ZWRDb250cmFjdERhdGEuYnJhbmNoX3Byb3BlcnR5O1xuICAgICAgICAgICAgZGVsZXRlIHNhbml0aXplZENvbnRyYWN0RGF0YS5vcmlnaW5hbFByaWNlO1xuICAgICAgICAgICAgZGVsZXRlIHNhbml0aXplZENvbnRyYWN0RGF0YS5vcHRpb247XG4gICAgICAgICAgICBjb25zdCByZXF1ZXN0UGF5bG9hZCA9IHtcbiAgICAgICAgICAgICAgICAuLi5zYW5pdGl6ZWRDb250cmFjdERhdGEsXG4gICAgICAgICAgICAgICAgc2hpcHBpbmdJZDogb3B0aW9uLm1ldGhvZC5jb2RlLFxuICAgICAgICAgICAgICAgIG1ldGhvZDogb3B0aW9uLm1ldGhvZC5jb2RlLFxuICAgICAgICAgICAgICAgIG9wdGlvbjogb3B0aW9uLmNvc3ROYW1lLFxuICAgICAgICAgICAgICAgIGNvbnRyYWN0OiBjb250cmFjdFR5cGUsXG4gICAgICAgICAgICAgICAgbmFtZTogY29udHJhY3ROYW1lLFxuICAgICAgICAgICAgICAgIHByaWNlOiBjb250cmFjdERhdGEucHJpY2UsXG4gICAgICAgICAgICAgICAgc2VsZWN0ZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgc2hpcHBpbmdfbWV0aG9kX2NvbnRyYWN0OiBzaGlwcGluZ01ldGhvZENvbnRyYWN0LFxuICAgICAgICAgICAgICAgIHNoaXBwaW5nX21ldGhvZF9icmFuY2hfY29kZTogc2hpcHBpbmdNZXRob2RCcmFuY2hDb2RlXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgY29uc3Qgc3RlcERhdGEgPSB7XG4gICAgICAgICAgICAgICAgLi4ucmVxdWVzdFBheWxvYWQsXG4gICAgICAgICAgICAgICAgb3JpZ2luYWxQcmljZTogdGhpcy5zaGlwcGluZ1ByaWNlRGlzcGxheS5ub3JtYWxpemVQcmljZVZhbHVlKGNvbnRyYWN0RGF0YS5vcmlnaW5hbFByaWNlKSxcbiAgICAgICAgICAgICAgICBtZXRob2RfbmFtZTogb3B0aW9uLm1ldGhvZD8ubmFtZSxcbiAgICAgICAgICAgICAgICBjb250cmFjdF9uYW1lOiBjb250cmFjdE5hbWVcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBjb25zdCBhcHBsaWVkID0gYXdhaXQgdGhpcy5zaGlwbWVudFNlcnZpY2Uuc2V0U2hpcHBpbmdPcHRpb24ocmVxdWVzdFBheWxvYWQsIHN0ZXBEYXRhKTtcbiAgICAgICAgICAgIGlmICghYXBwbGllZCkgcmV0dXJuO1xuICAgICAgICAgICAgY29uc3QgbWV0aG9kTGFiZWwgPSBvcHRpb24ubWV0aG9kPy5uYW1lXG4gICAgICAgICAgICAgICAgPyB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChvcHRpb24ubWV0aG9kLm5hbWUpXG4gICAgICAgICAgICAgICAgOiAnJztcbiAgICAgICAgICAgIGNvbnN0IGNvbnRyYWN0TGFiZWwgPSBvcHRpb24uY29udHJhY3Q/Lm5hbWVcbiAgICAgICAgICAgICAgICA/IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KG9wdGlvbi5jb250cmFjdC5uYW1lKVxuICAgICAgICAgICAgICAgIDogJyc7XG4gICAgICAgICAgICBjb25zdCBncm91cExhYmVsID0gb3B0aW9uLmNvc3ROYW1lXG4gICAgICAgICAgICAgICAgPyB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCh0aGlzLnJlc29sdmVHcm91cExhYmVsKG9wdGlvbi5jb3N0TmFtZSkpXG4gICAgICAgICAgICAgICAgOiAnJztcbiAgICAgICAgICAgIGNvbnN0IGxhYmVsID0gW2dyb3VwTGFiZWwsIG1ldGhvZExhYmVsLCBjb250cmFjdExhYmVsXS5maWx0ZXIoQm9vbGVhbikuam9pbignIMK3ICcpO1xuICAgICAgICAgICAgY29uc3QgZGV0YWlsID0gb3B0aW9uLmNvbnRyYWN0Py5jb21wdXRlZCB8fCBvcHRpb24uY29udHJhY3Q/LmRldGFpbCB8fCAnJztcbiAgICAgICAgICAgIHRoaXMuc3VtbWFyeUNoYW5nZS5lbWl0KHtcbiAgICAgICAgICAgICAgICBsYWJlbDogbGFiZWwgfHwgdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgIGRldGFpbDogZGV0YWlsIHx8IHVuZGVmaW5lZFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgaWYgKHRoaXMuY29tcGFjdFNoaXBtZW50Vmlldykge1xuICAgICAgICAgICAgICAgICB0aGlzLmFkdmFuY2VTdGVwLmVtaXQoKTtcbiAgICAgICAgICAgICB9XG4gICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgIHRoaXMuc2hpcG1lbnRFcnJvcktleSA9ICdvcGVyYXRpb24tZXJyb3InO1xuICAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICAgICB0aGlzLmxvYWRpbmdfaW50ZXJuYWwgPSBmYWxzZTtcbiAgICAgICAgIH1cbiAgICAgfVxuXG4gICAgcHJpdmF0ZSBzaG91bGRFbnJpY2hGcm9tTGVnYWN5KG9wdGlvbjogYW55KTogYm9vbGVhbiB7XG4gICAgICAgIGlmICghb3B0aW9uIHx8IG9wdGlvbi5jb3N0TmFtZSAhPT0gJ2JyYW5jaF9kZWxpdmVyeScpIHJldHVybiBmYWxzZTtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRMZWdhY3lDb250cmFjdERhdGEgPSBhc3luYyAoXG4gICAgICAgIG1ldGhvZENvZGU6IHN0cmluZyB8IHVuZGVmaW5lZCxcbiAgICAgICAgY29zdE5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZCxcbiAgICAgICAgY29udHJhY3ROYW1lOiBzdHJpbmcgfCB1bmRlZmluZWRcbiAgICApID0+IHtcbiAgICAgICAgaWYgKCFtZXRob2RDb2RlIHx8ICFjb3N0TmFtZSB8fCAhY29udHJhY3ROYW1lKSByZXR1cm4gbnVsbDtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IGNvc3RzID0gYXdhaXQgdGhpcy5zaGlwbWVudFNlcnZpY2UuZ2V0Q29zdHNGb3JNZXRob2QobWV0aG9kQ29kZSk7XG4gICAgICAgICAgICBjb25zdCBzZWxlY3RlZENvc3QgPSAoY29zdHMgfHwgW10pLmZpbmQoY29zdCA9PiBTdHJpbmcoY29zdD8ubmFtZSB8fCAnJykgPT09IFN0cmluZyhjb3N0TmFtZSkpO1xuICAgICAgICAgICAgaWYgKCFzZWxlY3RlZENvc3Q/LmNvbnRyYWN0cz8ubGVuZ3RoKSByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkQ29udHJhY3QgPSBzZWxlY3RlZENvc3QuY29udHJhY3RzLmZpbmQoY29udHJhY3QgPT5cbiAgICAgICAgICAgICAgICBTdHJpbmcoY29udHJhY3Q/Lm5hbWUgfHwgJycpID09PSBTdHJpbmcoY29udHJhY3ROYW1lKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHJldHVybiBzZWxlY3RlZENvbnRyYWN0IHx8IG51bGw7XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICBzZXRBY3RpdmUoZSkge1xuICAgICAgICBjb25zdCBwYXJlbnQgPSBlLnRhcmdldC5wYXJlbnRFbGVtZW50LmNoaWxkcmVuO1xuICAgICAgICBmb3IgKGNvbnN0IGJ1dHRvbiBvZiBwYXJlbnQpIHtcbiAgICAgICAgICAgIGlmIChidXR0b24uY2xhc3NMaXN0LmNvbnRhaW5zKCdhY3RpdmUnKSkge1xuICAgICAgICAgICAgICAgIGJ1dHRvbi5jbGFzc0xpc3QucmVtb3ZlKCdhY3RpdmUnKVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGUudGFyZ2V0LmNsYXNzTGlzdC5hZGQoXCJhY3RpdmVcIilcbiAgICB9XG5cbiAgICB2YWxpZE5hbWUgPSAobmFtZSkgPT4gaXNOYU4obmFtZSk7XG5cbiAgICBnZXRDb250cmFjdFByaWNlVmlldyA9IChjb250cmFjdDogYW55KSA9PlxuICAgICAgICB0aGlzLnNoaXBwaW5nUHJpY2VEaXNwbGF5LmdldENvbnRyYWN0Vmlldyhjb250cmFjdCk7XG5cbiAgICBwcml2YXRlIGJ1aWxkR3JvdXBlZE9wdGlvbnMob3B0aW9uczogYW55W10pIHtcbiAgICAgICAgaWYgKCFvcHRpb25zPy5sZW5ndGgpIHJldHVybiBbXTtcbiAgICAgICAgY29uc3QgZ3JvdXBzID0gbmV3IE1hcDxzdHJpbmcsIGFueVtdPigpO1xuICAgICAgICBvcHRpb25zLmZvckVhY2gob3B0aW9uID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGtleSA9IG9wdGlvbj8uY29zdE5hbWUgfHwgJ2RlZmF1bHQnO1xuICAgICAgICAgICAgaWYgKCFncm91cHMuaGFzKGtleSkpIGdyb3Vwcy5zZXQoa2V5LCBbXSk7XG4gICAgICAgICAgICBncm91cHMuZ2V0KGtleSk/LnB1c2gob3B0aW9uKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBBcnJheS5mcm9tKGdyb3Vwcy5lbnRyaWVzKCkpLm1hcCgoW2tleSwgZ3JvdXBPcHRpb25zXSkgPT4gKHtcbiAgICAgICAgICAgIGtleSxcbiAgICAgICAgICAgIGxhYmVsOiB0aGlzLnJlc29sdmVHcm91cExhYmVsKGtleSwgZ3JvdXBPcHRpb25zPy5bMF0/Lm1ldGhvZD8ubmFtZSksXG4gICAgICAgICAgICBvcHRpb25zOiBncm91cE9wdGlvbnNcbiAgICAgICAgfSkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVzb2x2ZUdyb3VwTGFiZWwoY29zdE5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZCB8IG51bGwsIG1ldGhvZE5hbWU/OiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKGNvc3ROYW1lKSB7XG4gICAgICAgICAgICBjb25zdCBub3JtYWxpemVkID0gY29zdE5hbWUudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgICAgIGlmIChub3JtYWxpemVkID09PSAnYnJhbmNoX2RlbGl2ZXJ5JykgcmV0dXJuICdSZXRpcm8gZW4gc3VjdXJzYWwnO1xuICAgICAgICAgICAgaWYgKG5vcm1hbGl6ZWQgPT09ICdob21lX2RlbGl2ZXJ5JykgcmV0dXJuICdFbnbDrW8gYSBkb21pY2lsaW8nO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBtZXRob2ROYW1lIHx8IChjb3N0TmFtZSB8fCAnJyk7XG4gICAgfVxuXG59XG4iXX0=
@@ -18,6 +18,11 @@ let CouponEcComponent = class CouponEcComponent extends ComponentHelper {
18
18
  this.loading = false;
19
19
  this.addCoupon = () => {
20
20
  this.validCoupon() && this.cartService.addCoupon(this.coupon_value).then(res => {
21
+ var _a;
22
+ if (((_a = res) === null || _a === void 0 ? void 0 : _a.message) === 'cart-not-active') {
23
+ this.loading = false;
24
+ return;
25
+ }
21
26
  res.error ? this.invalidCoupon() : this.applyCoupon();
22
27
  });
23
28
  };
@@ -50,4 +55,4 @@ CouponEcComponent = __decorate([
50
55
  })
51
56
  ], CouponEcComponent);
52
57
  export { CouponEcComponent };
53
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY291cG9uLWVjLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25nLWVhc3ljb21tZXJjZS8iLCJzb3VyY2VzIjpbImxpYi9lYy1jb21wb25lbnQvY291cG9uLWVjL2NvdXBvbi1lYy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDakUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzFELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQU96RCxJQUFhLGlCQUFpQixHQUE5QixNQUFhLGlCQUFrQixTQUFRLGVBQWU7SUFNakQsWUFBbUIsV0FBd0IsRUFBWSxNQUFvQjtRQUN4RSxLQUFLLEVBQUUsQ0FBQztRQURRLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQVksV0FBTSxHQUFOLE1BQU0sQ0FBYztRQUpwRSxpQkFBWSxHQUFHLEVBQUUsQ0FBQztRQUNsQixXQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ2YsWUFBTyxHQUFHLEtBQUssQ0FBQztRQVd2QixjQUFTLEdBQUcsR0FBRyxFQUFFO1lBQ1osSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxJQUFJLENBQ25FLEdBQUcsQ0FBQyxFQUFFO2dCQUNELEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQzNELENBQUMsQ0FDTCxDQUFBO1FBQ04sQ0FBQyxDQUFBO1FBRUQsa0JBQWEsR0FBRyxHQUFHLEVBQUU7WUFDaEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztZQUNuQyxJQUFJLENBQUMsWUFBWSxHQUFHLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztRQUMxQixDQUFDLENBQUE7UUFFRCxnQkFBVyxHQUFHLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1lBQ25CLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1FBQzFCLENBQUMsQ0FBQTtRQUVELGVBQVUsR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztRQUV2QyxnQkFBVyxHQUFHLEdBQVksRUFBRSxDQUN2QixJQUFJLENBQUMsWUFBWSxJQUFJLHVCQUF1QixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUE3QnZFLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQTtJQUN2QixDQUFDO0lBRUQsUUFBUTtRQUNMLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQTtJQUNuQixDQUFDO0NBeUJKLENBQUE7O1lBaENvQyxXQUFXO1lBQW9CLFlBQVk7O0FBTm5FLGlCQUFpQjtJQUw3QixTQUFTLENBQUM7UUFDTixRQUFRLEVBQUUsZUFBZTtRQUN6Qiw4b0JBQXVDOztLQUUzQyxDQUFDO0dBQ1csaUJBQWlCLENBc0M3QjtTQXRDWSxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tcG9uZW50SGVscGVyIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9jb21wb25lbnQtaGVscGVyJztcbmltcG9ydCB7IENhcnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY2FydC5zZXJ2aWNlJztcbmltcG9ydCB7IFRvYXN0U2VydmljZSB9IGZyb20gJy4uLy4uL3V0aWxzL3RvYXN0LnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgICAgc2VsZWN0b3I6ICdhcHAtY291cG9uLWVjJyxcbiAgICAgdGVtcGxhdGVVcmw6ICdjb3Vwb24tZWMuY29tcG9uZW50Lmh0bWwnLFxuICAgICBzdHlsZVVybHM6IFsnY291cG9uLWVjLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQ291cG9uRWNDb21wb25lbnQgZXh0ZW5kcyBDb21wb25lbnRIZWxwZXIge1xuXG4gICAgIHB1YmxpYyBjb3Vwb25fdmFsdWUgPSBcIlwiO1xuICAgICBwdWJsaWMgYXBsaWVkID0gZmFsc2U7XG4gICAgIHB1YmxpYyBsb2FkaW5nID0gZmFsc2U7XG5cbiAgICAgY29uc3RydWN0b3IocHVibGljIGNhcnRTZXJ2aWNlOiBDYXJ0U2VydmljZSwgcHJvdGVjdGVkIHRvYXN0cjogVG9hc3RTZXJ2aWNlKSB7IFxuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLmVjT25Db25zdHJ1Y3QoKVxuICAgICB9XG4gICAgIFxuICAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5lY09uSW5pdCgpXG4gICAgfVxuXG4gICAgIGFkZENvdXBvbiA9ICgpID0+IHtcbiAgICAgICAgICB0aGlzLnZhbGlkQ291cG9uKCkgJiYgdGhpcy5jYXJ0U2VydmljZS5hZGRDb3Vwb24odGhpcy5jb3Vwb25fdmFsdWUpLnRoZW4oXG4gICAgICAgICAgICAgICByZXMgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXMuZXJyb3IgPyB0aGlzLmludmFsaWRDb3Vwb24oKSA6IHRoaXMuYXBwbHlDb3Vwb24oKTtcbiAgICAgICAgICAgICAgIH1cbiAgICAgICAgICApXG4gICAgIH1cblxuICAgICBpbnZhbGlkQ291cG9uID0gKCkgPT4ge1xuICAgICAgICAgIHRoaXMudG9hc3RyLnNob3coJ2ludmFsaWQtY291cG9uJyk7XG4gICAgICAgICAgdGhpcy5jb3Vwb25fdmFsdWUgPSAnJztcbiAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgfVxuXG4gICAgIGFwcGx5Q291cG9uID0gKCkgPT4ge1xuICAgICAgICAgIHRoaXMuYXBsaWVkID0gdHJ1ZTtcbiAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgfVxuXG4gICAgIHNldExvYWRpbmcgPSAoKSA9PiB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuXG4gICAgIHZhbGlkQ291cG9uID0gKCk6IGJvb2xlYW4gPT4gXG4gICAgICAgICAgdGhpcy5jb3Vwb25fdmFsdWUgJiYgL14oW0EtWmEtelxcLTAtOV0qKVxcdyskLy50ZXN0KHRoaXMuY291cG9uX3ZhbHVlKTtcbn0iXX0=
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY291cG9uLWVjLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25nLWVhc3ljb21tZXJjZS8iLCJzb3VyY2VzIjpbImxpYi9lYy1jb21wb25lbnQvY291cG9uLWVjL2NvdXBvbi1lYy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDakUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzFELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQU96RCxJQUFhLGlCQUFpQixHQUE5QixNQUFhLGlCQUFrQixTQUFRLGVBQWU7SUFNakQsWUFBbUIsV0FBd0IsRUFBWSxNQUFvQjtRQUN4RSxLQUFLLEVBQUUsQ0FBQztRQURRLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQVksV0FBTSxHQUFOLE1BQU0sQ0FBYztRQUpwRSxpQkFBWSxHQUFHLEVBQUUsQ0FBQztRQUNsQixXQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ2YsWUFBTyxHQUFHLEtBQUssQ0FBQztRQVd2QixjQUFTLEdBQUcsR0FBRyxFQUFFO1lBQ1osSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxJQUFJLENBQ25FLEdBQUcsQ0FBQyxFQUFFOztnQkFDRCxJQUFJLE9BQUEsR0FBRywwQ0FBRSxPQUFPLE1BQUssaUJBQWlCLEVBQUU7b0JBQ25DLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO29CQUNyQixPQUFPO2lCQUNYO2dCQUNELEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQzNELENBQUMsQ0FDTCxDQUFBO1FBQ04sQ0FBQyxDQUFBO1FBRUQsa0JBQWEsR0FBRyxHQUFHLEVBQUU7WUFDaEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztZQUNuQyxJQUFJLENBQUMsWUFBWSxHQUFHLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztRQUMxQixDQUFDLENBQUE7UUFFRCxnQkFBVyxHQUFHLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1lBQ25CLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1FBQzFCLENBQUMsQ0FBQTtRQUVELGVBQVUsR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztRQUV2QyxnQkFBVyxHQUFHLEdBQVksRUFBRSxDQUN2QixJQUFJLENBQUMsWUFBWSxJQUFJLHVCQUF1QixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFqQ3ZFLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQTtJQUN2QixDQUFDO0lBRUQsUUFBUTtRQUNMLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQTtJQUNuQixDQUFDO0NBNkJKLENBQUE7O1lBcENvQyxXQUFXO1lBQW9CLFlBQVk7O0FBTm5FLGlCQUFpQjtJQUw3QixTQUFTLENBQUM7UUFDTixRQUFRLEVBQUUsZUFBZTtRQUN6Qiw4b0JBQXVDOztLQUUzQyxDQUFDO0dBQ1csaUJBQWlCLENBMEM3QjtTQTFDWSxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tcG9uZW50SGVscGVyIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9jb21wb25lbnQtaGVscGVyJztcbmltcG9ydCB7IENhcnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY2FydC5zZXJ2aWNlJztcbmltcG9ydCB7IFRvYXN0U2VydmljZSB9IGZyb20gJy4uLy4uL3V0aWxzL3RvYXN0LnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgICAgc2VsZWN0b3I6ICdhcHAtY291cG9uLWVjJyxcbiAgICAgdGVtcGxhdGVVcmw6ICdjb3Vwb24tZWMuY29tcG9uZW50Lmh0bWwnLFxuICAgICBzdHlsZVVybHM6IFsnY291cG9uLWVjLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQ291cG9uRWNDb21wb25lbnQgZXh0ZW5kcyBDb21wb25lbnRIZWxwZXIge1xuXG4gICAgIHB1YmxpYyBjb3Vwb25fdmFsdWUgPSBcIlwiO1xuICAgICBwdWJsaWMgYXBsaWVkID0gZmFsc2U7XG4gICAgIHB1YmxpYyBsb2FkaW5nID0gZmFsc2U7XG5cbiAgICAgY29uc3RydWN0b3IocHVibGljIGNhcnRTZXJ2aWNlOiBDYXJ0U2VydmljZSwgcHJvdGVjdGVkIHRvYXN0cjogVG9hc3RTZXJ2aWNlKSB7IFxuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLmVjT25Db25zdHJ1Y3QoKVxuICAgICB9XG4gICAgIFxuICAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5lY09uSW5pdCgpXG4gICAgfVxuXG4gICAgIGFkZENvdXBvbiA9ICgpID0+IHtcbiAgICAgICAgICB0aGlzLnZhbGlkQ291cG9uKCkgJiYgdGhpcy5jYXJ0U2VydmljZS5hZGRDb3Vwb24odGhpcy5jb3Vwb25fdmFsdWUpLnRoZW4oXG4gICAgICAgICAgICAgICByZXMgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAocmVzPy5tZXNzYWdlID09PSAnY2FydC1ub3QtYWN0aXZlJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXMuZXJyb3IgPyB0aGlzLmludmFsaWRDb3Vwb24oKSA6IHRoaXMuYXBwbHlDb3Vwb24oKTtcbiAgICAgICAgICAgICAgIH1cbiAgICAgICAgICApXG4gICAgIH1cblxuICAgICBpbnZhbGlkQ291cG9uID0gKCkgPT4ge1xuICAgICAgICAgIHRoaXMudG9hc3RyLnNob3coJ2ludmFsaWQtY291cG9uJyk7XG4gICAgICAgICAgdGhpcy5jb3Vwb25fdmFsdWUgPSAnJztcbiAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgfVxuXG4gICAgIGFwcGx5Q291cG9uID0gKCkgPT4ge1xuICAgICAgICAgIHRoaXMuYXBsaWVkID0gdHJ1ZTtcbiAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgfVxuXG4gICAgIHNldExvYWRpbmcgPSAoKSA9PiB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuXG4gICAgIHZhbGlkQ291cG9uID0gKCk6IGJvb2xlYW4gPT4gXG4gICAgICAgICAgdGhpcy5jb3Vwb25fdmFsdWUgJiYgL14oW0EtWmEtelxcLTAtOV0qKVxcdyskLy50ZXN0KHRoaXMuY291cG9uX3ZhbHVlKTtcbn1cbiJdfQ==
@@ -8,7 +8,7 @@ import { Injectable } from '@angular/core';
8
8
  import { Router, CanActivate, ActivatedRouteSnapshot } from '@angular/router';
9
9
  import { AuthService } from '../services/auth.service';
10
10
  import * as i0 from "@angular/core";
11
- import * as i1 from "../../public-api";
11
+ import * as i1 from "../services/auth.service";
12
12
  import * as i2 from "@angular/router";
13
13
  let AbleBuyerGuardService = class AbleBuyerGuardService {
14
14
  constructor(auth, router) {
@@ -26,7 +26,7 @@ AbleBuyerGuardService.ctorParameters = () => [
26
26
  { type: AuthService },
27
27
  { type: Router }
28
28
  ];
29
- AbleBuyerGuardService.ɵprov = i0.ɵɵdefineInjectable({ factory: function AbleBuyerGuardService_Factory() { return new i1.AbleBuyerGuardService(i0.ɵɵinject(i1.AuthService), i0.ɵɵinject(i2.Router)); }, token: i1.AbleBuyerGuardService, providedIn: "root" });
29
+ AbleBuyerGuardService.ɵprov = i0.ɵɵdefineInjectable({ factory: function AbleBuyerGuardService_Factory() { return new AbleBuyerGuardService(i0.ɵɵinject(i1.AuthService), i0.ɵɵinject(i2.Router)); }, token: AbleBuyerGuardService, providedIn: "root" });
30
30
  AbleBuyerGuardService = __decorate([
31
31
  Injectable({
32
32
  providedIn: 'root'
@@ -8,7 +8,7 @@ import { Injectable } from '@angular/core';
8
8
  import { Router, CanActivate, ActivatedRouteSnapshot } from '@angular/router';
9
9
  import { AuthService } from '../services/auth.service';
10
10
  import * as i0 from "@angular/core";
11
- import * as i1 from "../../public-api";
11
+ import * as i1 from "../services/auth.service";
12
12
  import * as i2 from "@angular/router";
13
13
  let AuthGuardService = class AuthGuardService {
14
14
  constructor(auth, router) {
@@ -26,7 +26,7 @@ AuthGuardService.ctorParameters = () => [
26
26
  { type: AuthService },
27
27
  { type: Router }
28
28
  ];
29
- AuthGuardService.ɵprov = i0.ɵɵdefineInjectable({ factory: function AuthGuardService_Factory() { return new i1.AuthGuardService(i0.ɵɵinject(i1.AuthService), i0.ɵɵinject(i2.Router)); }, token: i1.AuthGuardService, providedIn: "root" });
29
+ AuthGuardService.ɵprov = i0.ɵɵdefineInjectable({ factory: function AuthGuardService_Factory() { return new AuthGuardService(i0.ɵɵinject(i1.AuthService), i0.ɵɵinject(i2.Router)); }, token: AuthGuardService, providedIn: "root" });
30
30
  AuthGuardService = __decorate([
31
31
  Injectable({
32
32
  providedIn: 'root'
@@ -8,8 +8,8 @@ import { Injectable } from '@angular/core';
8
8
  import { Router, CanActivate } from '@angular/router';
9
9
  import { CheckoutService } from '../services/checkout/checkout.service';
10
10
  import * as i0 from "@angular/core";
11
- import * as i1 from "../../public-api";
12
- import * as i2 from "@angular/router";
11
+ import * as i1 from "@angular/router";
12
+ import * as i2 from "../services/checkout/checkout.service";
13
13
  let CheckoutReadyGuard = class CheckoutReadyGuard {
14
14
  constructor(router, checkoutService) {
15
15
  this.router = router;
@@ -26,7 +26,7 @@ CheckoutReadyGuard.ctorParameters = () => [
26
26
  { type: Router },
27
27
  { type: CheckoutService }
28
28
  ];
29
- CheckoutReadyGuard.ɵprov = i0.ɵɵdefineInjectable({ factory: function CheckoutReadyGuard_Factory() { return new i1.CheckoutReadyGuard(i0.ɵɵinject(i2.Router), i0.ɵɵinject(i1.CheckoutService)); }, token: i1.CheckoutReadyGuard, providedIn: "root" });
29
+ CheckoutReadyGuard.ɵprov = i0.ɵɵdefineInjectable({ factory: function CheckoutReadyGuard_Factory() { return new CheckoutReadyGuard(i0.ɵɵinject(i1.Router), i0.ɵɵinject(i2.CheckoutService)); }, token: CheckoutReadyGuard, providedIn: "root" });
30
30
  CheckoutReadyGuard = __decorate([
31
31
  Injectable({
32
32
  providedIn: 'root'
@@ -8,7 +8,7 @@ import { Injectable } from '@angular/core';
8
8
  import { Router, CanActivate } from '@angular/router';
9
9
  import { AuthService } from '../services/auth.service';
10
10
  import * as i0 from "@angular/core";
11
- import * as i1 from "../../public-api";
11
+ import * as i1 from "../services/auth.service";
12
12
  import * as i2 from "@angular/router";
13
13
  let LoggedInGuard = class LoggedInGuard {
14
14
  constructor(auth, router) {
@@ -26,7 +26,7 @@ LoggedInGuard.ctorParameters = () => [
26
26
  { type: AuthService },
27
27
  { type: Router }
28
28
  ];
29
- LoggedInGuard.ɵprov = i0.ɵɵdefineInjectable({ factory: function LoggedInGuard_Factory() { return new i1.LoggedInGuard(i0.ɵɵinject(i1.AuthService), i0.ɵɵinject(i2.Router)); }, token: i1.LoggedInGuard, providedIn: "root" });
29
+ LoggedInGuard.ɵprov = i0.ɵɵdefineInjectable({ factory: function LoggedInGuard_Factory() { return new LoggedInGuard(i0.ɵɵinject(i1.AuthService), i0.ɵɵinject(i2.Router)); }, token: LoggedInGuard, providedIn: "root" });
30
30
  LoggedInGuard = __decorate([
31
31
  Injectable({
32
32
  providedIn: 'root'
@@ -8,7 +8,7 @@ import { Injectable } from '@angular/core';
8
8
  import { Router, CanActivate, ActivatedRouteSnapshot } from '@angular/router';
9
9
  import { AuthService } from '../services/auth.service';
10
10
  import * as i0 from "@angular/core";
11
- import * as i1 from "../../public-api";
11
+ import * as i1 from "../services/auth.service";
12
12
  import * as i2 from "@angular/router";
13
13
  let UserRoleGuardService = class UserRoleGuardService {
14
14
  constructor(auth, router) {
@@ -28,7 +28,7 @@ UserRoleGuardService.ctorParameters = () => [
28
28
  { type: AuthService },
29
29
  { type: Router }
30
30
  ];
31
- UserRoleGuardService.ɵprov = i0.ɵɵdefineInjectable({ factory: function UserRoleGuardService_Factory() { return new i1.UserRoleGuardService(i0.ɵɵinject(i1.AuthService), i0.ɵɵinject(i2.Router)); }, token: i1.UserRoleGuardService, providedIn: "root" });
31
+ UserRoleGuardService.ɵprov = i0.ɵɵdefineInjectable({ factory: function UserRoleGuardService_Factory() { return new UserRoleGuardService(i0.ɵɵinject(i1.AuthService), i0.ɵɵinject(i2.Router)); }, token: UserRoleGuardService, providedIn: "root" });
32
32
  UserRoleGuardService = __decorate([
33
33
  Injectable({
34
34
  providedIn: 'root'
@@ -1 +1 @@
1
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tvdXQtZGF0YS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25nLWVhc3ljb21tZXJjZS8iLCJzb3VyY2VzIjpbImxpYi9pbnRlcmZhY2VzL2NoZWNrb3V0LWRhdGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIENoZWNrb3V0RGF0YVR5cGUgPSAndG90YWwnIHwgJ3N1YnRvdGFsJyB8ICdwcm9kdWN0c0JlZm9yZURpc2NvdW50cycgfCAnc2hpcG1lbnQnIHwgJ2NvdXBvbicgfCAnZGlzY291bnQnIHwgJ2xpbmVEaXNjb3VudCcgfCAndGF4ZXMnIHwgJ2NsaWVudFRheGVzJztcblxuZXhwb3J0IGludGVyZmFjZSBDaGVja291dERhdGEge1xuICAgICB0eXBlOiBDaGVja291dERhdGFUeXBlLFxuICAgICBhbW91bnQ6IG51bWJlcixcbiAgICAgbmFtZTogc3RyaW5nLFxuICAgICB0YXhlc0luY2x1ZGVkSW5Ub3RhbD86IGJvb2xlYW5cbn1cbiJdfQ==
1
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tvdXQtZGF0YS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25nLWVhc3ljb21tZXJjZS8iLCJzb3VyY2VzIjpbImxpYi9pbnRlcmZhY2VzL2NoZWNrb3V0LWRhdGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIENoZWNrb3V0RGF0YVR5cGUgPSAndG90YWwnIHwgJ3N1YnRvdGFsJyB8ICdwcm9kdWN0c0JlZm9yZURpc2NvdW50cycgfCAnc2hpcG1lbnQnIHwgJ2NvdXBvbicgfCAnZGlzY291bnQnIHwgJ3BheW1lbnRNZXRob2RBZGp1c3RtZW50JyB8ICdsaW5lRGlzY291bnQnIHwgJ3RheGVzJyB8ICdjbGllbnRUYXhlcyc7XG5cbmV4cG9ydCB0eXBlIFBheW1lbnRNZXRob2RDaGFyZ2VUeXBlID0gJ3BlcmNlbnRhZ2UnIHwgJ2ZpeGVkJztcblxuZXhwb3J0IGludGVyZmFjZSBQYXltZW50TWV0aG9kQWRqdXN0bWVudFByZXZpZXcge1xuICAgIHR5cGU6IFBheW1lbnRNZXRob2RDaGFyZ2VUeXBlO1xuICAgIHZhbHVlOiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2hlY2tvdXREYXRhIHtcbiAgICAgdHlwZTogQ2hlY2tvdXREYXRhVHlwZSxcbiAgICAgYW1vdW50OiBudW1iZXIsXG4gICAgIG5hbWU6IHN0cmluZyxcbiAgICAgdGF4ZXNJbmNsdWRlZEluVG90YWw/OiBib29sZWFuXG59XG4iXX0=
@@ -12,8 +12,10 @@ import { ConnectionService } from '../../api/connection.service';
12
12
  import { CartService } from '../cart.service';
13
13
  import { Constants } from '../../core.consts';
14
14
  import * as i0 from "@angular/core";
15
- import * as i1 from "../../../public-api";
16
- import * as i2 from "@angular/router";
15
+ import * as i1 from "../../api/connection.service";
16
+ import * as i2 from "../cart.service";
17
+ import * as i3 from "@angular/router";
18
+ import * as i4 from "../../core.consts";
17
19
  let OrdersService = class OrdersService {
18
20
  constructor(connection, cartService, router, consts) {
19
21
  // this.updateOrders();
@@ -107,11 +109,11 @@ OrdersService.ctorParameters = () => [
107
109
  { type: Router },
108
110
  { type: Constants }
109
111
  ];
110
- OrdersService.ɵprov = i0.ɵɵdefineInjectable({ factory: function OrdersService_Factory() { return new i1.OrdersService(i0.ɵɵinject(i1.ConnectionService), i0.ɵɵinject(i1.CartService), i0.ɵɵinject(i2.Router), i0.ɵɵinject(i1.Constants)); }, token: i1.OrdersService, providedIn: "root" });
112
+ OrdersService.ɵprov = i0.ɵɵdefineInjectable({ factory: function OrdersService_Factory() { return new OrdersService(i0.ɵɵinject(i1.ConnectionService), i0.ɵɵinject(i2.CartService), i0.ɵɵinject(i3.Router), i0.ɵɵinject(i4.Constants)); }, token: OrdersService, providedIn: "root" });
111
113
  OrdersService = __decorate([
112
114
  Injectable({
113
115
  providedIn: 'root'
114
116
  })
115
117
  ], OrdersService);
116
118
  export { OrdersService };
117
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXJzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZy1lYXN5Y29tbWVyY2UvIiwic291cmNlcyI6WyJsaWIvc2VydmljZXMvYWNjb3VudC9vcmRlcnMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkMsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFOUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7O0FBTTlDLElBQWEsYUFBYSxHQUExQixNQUFhLGFBQWE7SUFjdEIsWUFBb0IsVUFBNkIsRUFBVSxXQUF3QixFQUFVLE1BQWMsRUFBVSxNQUFpQjtRQUNsSSx1QkFBdUI7UUFEUCxlQUFVLEdBQVYsVUFBVSxDQUFtQjtRQUFVLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQVUsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUFVLFdBQU0sR0FBTixNQUFNLENBQVc7UUFiL0gsa0JBQWEsR0FBUSxFQUFFLENBQUM7UUFDdkIsa0JBQWEsR0FBeUIsSUFBSSxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDaEUsaUJBQVksR0FBcUMsSUFBSSxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDM0UseUJBQW9CLEdBQXlCLElBQUksZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXhFLFlBQU8sR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQzVDLFdBQU0sR0FBRyxJQUFJ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IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBDb25uZWN0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL2FwaS9jb25uZWN0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ2FydFNlcnZpY2UgfSBmcm9tICcuLi9jYXJ0LnNlcnZpY2UnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZUVycm9yIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9vYnNlcnZhYmxlLWVycm9yLmludGVyZmFjZSc7XG5pbXBvcnQgeyBDb25zdGFudHMgfSBmcm9tICcuLi8uLi9jb3JlLmNvbnN0cyc7XG5cblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBPcmRlcnNTZXJ2aWNlIHtcbiAgICBwdWJsaWMgY2hhbm5lbENvbmZpZzogYW55ID0ge307XG4gICAgcHJpdmF0ZSBvcmRlcnNTdWJqZWN0OiBCZWhhdmlvclN1YmplY3Q8YW55PiA9IG5ldyBCZWhhdmlvclN1YmplY3QobnVsbCk7XG4gICAgcHJpdmF0ZSBlcnJvclN1YmplY3Q6IEJlaGF2aW9yU3ViamVjdDxPYnNlcnZhYmxlRXJyb3I+ID0gbmV3IEJlaGF2aW9yU3ViamVjdChudWxsKTtcbiAgICBwcml2YXRlIHNlbGVjdGVkT3JkZXJTdWJqZWN0OiBCZWhhdmlvclN1YmplY3Q8YW55PiA9IG5ldyBCZWhhdmlvclN1YmplY3QobnVsbCk7XG5cbiAgICBwdWJsaWMgb3JkZXJzJCA9IHRoaXMub3JkZXJzU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgICBwdWJsaWMgZXJyb3IkID0gdGhpcy5lcnJvclN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gICAgcHVibGljIHNlbGVjdGVkT3JkZXIkID0gdGhpcy5zZWxlY3RlZE9yZGVyU3ViamVjdC5hc09ic2VydmFibGUoKTtcblxuICAgIHByaXZhdGUgbG9hZGluZyA9IGZhbHNlO1xuXG4gICAgb3JkZXJzTGlzdGFwaSA9ICgpID0+IGBzaG9wLWFwaS8ke3RoaXMuY29uc3RzLmdldENoYW5uZWwoKX0vb3JkZXJzYDtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgY29ubmVjdGlvbjogQ29ubmVjdGlvblNlcnZpY2UsIHByaXZhdGUgY2FydFNlcnZpY2U6IENhcnRTZXJ2aWNlLCBwcml2YXRlIHJvdXRlcjogUm91dGVyLCBwcml2YXRlIGNvbnN0czogQ29uc3RhbnRzKSB7XG4gICAgICAgIC8vIHRoaXMudXBkYXRlT3JkZXJzKCk7XG5cbiAgICB9XG5cbiAgICB1cGRhdGVPcmRlcnMgPSAoKSA9PiB7XG4gICAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7XG4gICAgICAgIHRoaXMuY29ubmVjdGlvbi5nZXQodGhpcy5vcmRlcnNMaXN0YXBpKCkpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAocmVzID0+IHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IG9yZGVycyA9IHRoaXMubWFwT3JkZXJzQW5kQWRkSW5mbyhyZXMpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gb3JkZXJzO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKFxuICAgICAgICAgICAgICAgIHJlc3BvbnNlID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vcmRlcnNTdWJqZWN0Lm5leHQocmVzcG9uc2UpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGVyciA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZXJyb3JTdWJqZWN0Lm5leHQoeyBtZXNzYWdlOiAndW5hYmxlLWdldC1vcmRlcnMnIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIClcblxuICAgIH1cblxuICAgIG1hcE9yZGVyc0FuZEFkZEluZm8gPSAob3JkZXJzKSA9PlxuICAgICAgICBvcmRlcnMubWFwKG9yZGVyID0+IHtcbiAgICAgICAgICAgIGNvbnN0IG5vcm1hbGl6ZWRPcmRlciA9IHRoaXMubm9ybWFsaXplT3JkZXJQcmljaW5nKG9yZGVyKTtcbiAgICAgICAgICAgIG5vcm1hbGl6ZWRPcmRlci50b3RhbCA9IG5vcm1hbGl6ZWRPcmRlci5wYXltZW50cy5yZWR1Y2UoKGEsIGIpID0+IGEgKyBiLnByaWNlLmN1cnJlbnQsIDApO1xuICAgICAgICAgICAgcmV0dXJuIG5vcm1hbGl6ZWRPcmRlcjtcbiAgICAgICAgfSlcblxuICAgIC8qKlxuICAgICAqIE5vcm1hbGl6YSDDum5pY2FtZW50ZSBsb3MgYWxpYXNlcyBkZSBsb3MgY29udHJhdG9zIGhpc3TDs3JpY29zIG51ZXZvcy5cbiAgICAgKiBMYSByZXNwdWVzdGEgb3JpZ2luYWwgc2UgY29uc2VydmEgcGFyYSBubyBhZmVjdGFyIG90cm9zIGNvbnN1bWlkb3Jlcy5cbiAgICAgKi9cbiAgICBwcml2YXRlIG5vcm1hbGl6ZU9yZGVyUHJpY2luZyA9IChvcmRlcjogYW55KTogYW55ID0+IHtcbiAgICAgICAgY29uc3QgdG90YWxzID0gb3JkZXI/LnRvdGFscztcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLi4ub3JkZXIsXG4gICAgICAgICAgICBpdGVtczogQXJyYXkuaXNBcnJheShvcmRlcj8uaXRlbXMpXG4gICAgICAgICAgICAgICAgPyBvcmRlci5pdGVtcy5tYXAoaXRlbSA9PiAoe1xuICAgICAgICAgICAgICAgICAgICAuLi5pdGVtLFxuICAgICAgICAgICAgICAgICAgICBsaW5lUHJpY2luZzogaXRlbT8ubGluZVByaWNpbmcgfHwgaXRlbT8ubGluZV9wcmljaW5nXG4gICAgICAgICAgICAgICAgfSkpXG4gICAgICAgICAgICAgICAgOiBvcmRlcj8uaXRlbXMsXG4gICAgICAgICAgICB0b3RhbHM6IHRvdGFscyA/IHtcbiAgICAgICAgICAgICAgICAuLi50b3RhbHMsXG4gICAgICAgICAgICAgICAgb3JkZXJEaXNjb3VudFByaWNpbmc6IHRvdGFscy5vcmRlckRpc2NvdW50UHJpY2luZyB8fCB0b3RhbHMub3JkZXJfZGlzY291bnRfcHJpY2luZyxcbiAgICAgICAgICAgICAgICBjb3Vwb25EaXNjb3VudFByaWNpbmc6IHRvdGFscy5jb3Vwb25EaXNjb3VudFByaWNpbmcgfHwgdG90YWxzLmNvdXBvbl9kaXNjb3VudF9wcmljaW5nLFxuICAgICAgICAgICAgICAgIHNoaXBwaW5nUHJpY2luZzogdG90YWxzLnNoaXBwaW5nUHJpY2luZyB8fCB0b3RhbHMuc2hpcHBpbmdfcHJpY2luZ1xuICAgICAgICAgICAgfSA6IHRvdGFsc1xuICAgICAgICB9O1xuICAgIH1cblxuICAgIHNldFNlbGVjdGVkT3JkZXIgKG9yZGVyOiBhbnkpIHsgdGhpcy5zZWxlY3RlZE9yZGVyU3ViamVjdC5uZXh0KG9yZGVyKTtcbiAgICAgdGhpcy5jaGFubmVsQ29uZmlnID0gKHRoaXMuY2FydFNlcnZpY2UuY2hhbm5lbENvbmZpZyk7XG4gICAgIH1cblxuICAgIGZpbmRPcmRlciA9IChvcmRlcl9udW1iZXIpID0+XG4gICAgICAgIHRoaXMub3JkZXJzU3ViamVjdC52YWx1ZSA/IHRoaXMuZ2V0T3JkZXJCeU51bWJlcihvcmRlcl9udW1iZXIpIDogdGhpcy53YWl0VW50aWxPcmRlcnMob3JkZXJfbnVtYmVyLCB0aGlzLmdldE9yZGVyQnlOdW1iZXIpO1xuXG4gICAgZ2V0T3JkZXJCeU51bWJlciA9IChvcmRlcl9udW1iZXIpID0+IHtcbiAgICAgICAgLy8gRWwgZGlhIGRlIG1hw7FhbmEsIGN1YW5kbyB2ZW5nYW4gcGFnaW5hZGFzIHkgaGF5YSBxdWUgcHJlZ3VudGFybGUgYWwgc2Vydmlkb3IsIHNlIGNhbWJpYSBlc3RlIG1ldG9kb1xuICAgICAgICBjb25zdCBvcmRlcnMgPSB0aGlzLm9yZGVyc1N1YmplY3QudmFsdWU7XG4gICAgICAgIGxldCBvcmRlciA9IG9yZGVycy5maW5kKG9yZGVyID0+IG9yZGVyLm51bWJlciA9PSBvcmRlcl9udW1iZXIpXG4gICAgICAgIHJldHVybiBvcmRlcjtcbiAgICB9XG5cbiAgICB3YWl0VW50aWxPcmRlcnMgPSAob3JkZXJfbnVtYmVyLCBuZXh0KSA9PiB7XG4gICAgICAgIHRoaXMub3JkZXJzJC50b1Byb21pc2UoKS50aGVuKG9yZGVycyA9PiB7XG4gICAgICAgICAgICBpZiAoIW9yZGVycykge1xuICAgICAgICAgICAgICAgIGlmICghdGhpcy5sb2FkaW5nKSB0aGlzLnVwZGF0ZU9yZGVycygpO1xuICAgICAgICAgICAgICAgIHRoaXMud2FpdFVudGlsT3JkZXJzKG9yZGVyX251bWJlciwgbmV4dCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmdldE9yZGVyQnlOdW1iZXIob3JkZXJfbnVtYmVyKTtcbiAgICAgICAgfSlcbiAgICB9XG5cbiAgICByZUJ1eShvcmRlcikge1xuICAgICAgICAvLyB0aGlzLmNhcnRTZXJ2aWNlLmNsZWFyQ2FydCgpO1xuICAgICAgICBvcmRlci5pdGVtcy5tYXAoaXRlbSA9PiB7XG4gICAgICAgICAgICB0aGlzLmNhcnRTZXJ2aWNlLmFkZFRvQ2FydCh0aGlzLmZvcm1hdFByb2R1Y3QoaXRlbS5wcm9kdWN0LCBpdGVtLnByb2R1Y3QuZGlzY291bnQpLCBpdGVtLnF1YW50aXR5LCBpdGVtLnZhcmlhbnRfaWQpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCgnL2NhcnQnKTtcbiAgICB9XG5cbiAgICBmb3JtYXRQcm9kdWN0KHByb2R1Y3QsIGRpc2NvdW50KSB7XG4gICAgICAgIGxldCBwZXJjZW50YWplID0gcGFyc2VGbG9hdCgnMC4nICsgZGlzY291bnQudG9TdHJpbmcoKSkudG9GaXhlZCgyKTtcbiAgICAgICAgcHJvZHVjdC5wcmljZSA9IHByb2R1Y3QudmFyaWFudHNbMF0ucHJpY2U7XG4gICAgICAgIHByb2R1Y3Quc2FsZXByaWNlID0gKHByb2R1Y3QucHJpY2UgLSAocHJvZHVjdC5wcmljZSAqIHBhcnNlRmxvYXQocGVyY2VudGFqZSkpKTtcbiAgICAgICAgcHJvZHVjdC5vcHRpb25zID0ge307XG4gICAgICAgIHByb2R1Y3QudmFyaWFudHNbMF0ub3B0aW9ucy5mb3JFYWNoKG9wdGlvbiA9PiBwcm9kdWN0Lm9wdGlvbnMgPSB7IC4uLnByb2R1Y3Qub3B0aW9ucywgLi4ub3B0aW9uIH0pO1xuICAgICAgICByZXR1cm4gcHJvZHVjdDtcbiAgICB9XG59XG4iXX0=
119
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXJzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZy1lYXN5Y29tbWVyY2UvIiwic291cmNlcyI6WyJsaWIvc2VydmljZXMvYWNjb3VudC9vcmRlcnMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkMsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFOUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7Ozs7QUFNOUMsSUFBYSxhQUFhLEdBQTFCLE1BQWEsYUFBYTtJQWN0QixZQUFvQixVQUE2QixFQUFVLFdBQXdCLEVBQVUsTUFBYyxFQUFVLE1BQWlCO1FBQ2xJLHVCQUF1QjtRQURQLGVBQVUsR0FBVixVQUFVLENBQW1CO1FBQVUsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFBVSxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQVUsV0FBTSxHQUFOLE1BQU0sQ0FBVztRQWIvSCxrQkFBYSxHQUFRLEVBQUUsQ0FBQztRQUN2QixrQkFBYSxHQUF5QixJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNoRSxpQkFBWSxHQUFxQyxJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMzRSx5QkFBb0IsR0FBeUIsSUFBSSxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFeEUsWUFBTyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDNUMsV0FBTSxHQUFHLElB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bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IENvbm5lY3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vYXBpL2Nvbm5lY3Rpb24uc2VydmljZSc7XG5pbXBvcnQgeyBDYXJ0U2VydmljZSB9IGZyb20gJy4uL2NhcnQuc2VydmljZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlRXJyb3IgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL29ic2VydmFibGUtZXJyb3IuaW50ZXJmYWNlJztcbmltcG9ydCB7IENvbnN0YW50cyB9IGZyb20gJy4uLy4uL2NvcmUuY29uc3RzJztcblxuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIE9yZGVyc1NlcnZpY2Uge1xuICAgIHB1YmxpYyBjaGFubmVsQ29uZmlnOiBhbnkgPSB7fTtcbiAgICBwcml2YXRlIG9yZGVyc1N1YmplY3Q6IEJlaGF2aW9yU3ViamVjdDxhbnk+ID0gbmV3IEJlaGF2aW9yU3ViamVjdChudWxsKTtcbiAgICBwcml2YXRlIGVycm9yU3ViamVjdDogQmVoYXZpb3JTdWJqZWN0PE9ic2VydmFibGVFcnJvcj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KG51bGwpO1xuICAgIHByaXZhdGUgc2VsZWN0ZWRPcmRlclN1YmplY3Q6IEJlaGF2aW9yU3ViamVjdDxhbnk+ID0gbmV3IEJlaGF2aW9yU3ViamVjdChudWxsKTtcblxuICAgIHB1YmxpYyBvcmRlcnMkID0gdGhpcy5vcmRlcnNTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICAgIHB1YmxpYyBlcnJvciQgPSB0aGlzLmVycm9yU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgICBwdWJsaWMgc2VsZWN0ZWRPcmRlciQgPSB0aGlzLnNlbGVjdGVkT3JkZXJTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuXG4gICAgcHJpdmF0ZSBsb2FkaW5nID0gZmFsc2U7XG5cbiAgICBvcmRlcnNMaXN0YXBpID0gKCkgPT4gYHNob3AtYXBpLyR7dGhpcy5jb25zdHMuZ2V0Q2hhbm5lbCgpfS9vcmRlcnNgO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBjb25uZWN0aW9uOiBDb25uZWN0aW9uU2VydmljZSwgcHJpdmF0ZSBjYXJ0U2VydmljZTogQ2FydFNlcnZpY2UsIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsIHByaXZhdGUgY29uc3RzOiBDb25zdGFudHMpIHtcbiAgICAgICAgLy8gdGhpcy51cGRhdGVPcmRlcnMoKTtcblxuICAgIH1cblxuICAgIHVwZGF0ZU9yZGVycyA9ICgpID0+IHtcbiAgICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5jb25uZWN0aW9uLmdldCh0aGlzLm9yZGVyc0xpc3RhcGkoKSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcChyZXMgPT4ge1xuICAgICAgICAgICAgICAgICAgICBsZXQgb3JkZXJzID0gdGhpcy5tYXBPcmRlcnNBbmRBZGRJbmZvKHJlcyk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBvcmRlcnM7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoXG4gICAgICAgICAgICAgICAgcmVzcG9uc2UgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm9yZGVyc1N1YmplY3QubmV4dChyZXNwb25zZSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgZXJyID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lcnJvclN1YmplY3QubmV4dCh7IG1lc3NhZ2U6ICd1bmFibGUtZ2V0LW9yZGVycycgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKVxuXG4gICAgfVxuXG4gICAgbWFwT3JkZXJzQW5kQWRkSW5mbyA9IChvcmRlcnMpID0+XG4gICAgICAgIG9yZGVycy5tYXAob3JkZXIgPT4ge1xuICAgICAgICAgICAgY29uc3Qgbm9ybWFsaXplZE9yZGVyID0gdGhpcy5ub3JtYWxpemVPcmRlclByaWNpbmcob3JkZXIpO1xuICAgICAgICAgICAgbm9ybWFsaXplZE9yZGVyLnRvdGFsID0gbm9ybWFsaXplZE9yZGVyLnBheW1lbnRzLnJlZHVjZSgoYSwgYikgPT4gYSArIGIucHJpY2UuY3VycmVudCwgMCk7XG4gICAgICAgICAgICByZXR1cm4gbm9ybWFsaXplZE9yZGVyO1xuICAgICAgICB9KVxuXG4gICAgLyoqXG4gICAgICogTm9ybWFsaXphIMO6bmljYW1lbnRlIGxvcyBhbGlhc2VzIGRlIGxvcyBjb250cmF0b3MgaGlzdMOzcmljb3MgbnVldm9zLlxuICAgICAqIExhIHJlc3B1ZXN0YSBvcmlnaW5hbCBzZSBjb25zZXJ2YSBwYXJhIG5vIGFmZWN0YXIgb3Ryb3MgY29uc3VtaWRvcmVzLlxuICAgICAqL1xuICAgIHByaXZhdGUgbm9ybWFsaXplT3JkZXJQcmljaW5nID0gKG9yZGVyOiBhbnkpOiBhbnkgPT4ge1xuICAgICAgICBjb25zdCB0b3RhbHMgPSBvcmRlcj8udG90YWxzO1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAuLi5vcmRlcixcbiAgICAgICAgICAgIGl0ZW1zOiBBcnJheS5pc0FycmF5KG9yZGVyPy5pdGVtcylcbiAgICAgICAgICAgICAgICA/IG9yZGVyLml0ZW1zLm1hcChpdGVtID0+ICh7XG4gICAgICAgICAgICAgICAgICAgIC4uLml0ZW0sXG4gICAgICAgICAgICAgICAgICAgIGxpbmVQcmljaW5nOiBpdGVtPy5saW5lUHJpY2luZyB8fCBpdGVtPy5saW5lX3ByaWNpbmdcbiAgICAgICAgICAgICAgICB9KSlcbiAgICAgICAgICAgICAgICA6IG9yZGVyPy5pdGVtcyxcbiAgICAgICAgICAgIHRvdGFsczogdG90YWxzID8ge1xuICAgICAgICAgICAgICAgIC4uLnRvdGFscyxcbiAgICAgICAgICAgICAgICBvcmRlckRpc2NvdW50UHJpY2luZzogdG90YWxzLm9yZGVyRGlzY291bnRQcmljaW5nIHx8IHRvdGFscy5vcmRlcl9kaXNjb3VudF9wcmljaW5nLFxuICAgICAgICAgICAgICAgIGNvdXBvbkRpc2NvdW50UHJpY2luZzogdG90YWxzLmNvdXBvbkRpc2NvdW50UHJpY2luZyB8fCB0b3RhbHMuY291cG9uX2Rpc2NvdW50X3ByaWNpbmcsXG4gICAgICAgICAgICAgICAgc2hpcHBpbmdQcmljaW5nOiB0b3RhbHMuc2hpcHBpbmdQcmljaW5nIHx8IHRvdGFscy5zaGlwcGluZ19wcmljaW5nXG4gICAgICAgICAgICB9IDogdG90YWxzXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgc2V0U2VsZWN0ZWRPcmRlciAob3JkZXI6IGFueSkgeyB0aGlzLnNlbGVjdGVkT3JkZXJTdWJqZWN0Lm5leHQob3JkZXIpO1xuICAgICB0aGlzLmNoYW5uZWxDb25maWcgPSAodGhpcy5jYXJ0U2VydmljZS5jaGFubmVsQ29uZmlnKTtcbiAgICAgfVxuXG4gICAgZmluZE9yZGVyID0gKG9yZGVyX251bWJlcikgPT5cbiAgICAgICAgdGhpcy5vcmRlcnNTdWJqZWN0LnZhbHVlID8gdGhpcy5nZXRPcmRlckJ5TnVtYmVyKG9yZGVyX251bWJlcikgOiB0aGlzLndhaXRVbnRpbE9yZGVycyhvcmRlcl9udW1iZXIsIHRoaXMuZ2V0T3JkZXJCeU51bWJlcik7XG5cbiAgICBnZXRPcmRlckJ5TnVtYmVyID0gKG9yZGVyX251bWJlcikgPT4ge1xuICAgICAgICAvLyBFbCBkaWEgZGUgbWHDsWFuYSwgY3VhbmRvIHZlbmdhbiBwYWdpbmFkYXMgeSBoYXlhIHF1ZSBwcmVndW50YXJsZSBhbCBzZXJ2aWRvciwgc2UgY2FtYmlhIGVzdGUgbWV0b2RvXG4gICAgICAgIGNvbnN0IG9yZGVycyA9IHRoaXMub3JkZXJzU3ViamVjdC52YWx1ZTtcbiAgICAgICAgbGV0IG9yZGVyID0gb3JkZXJzLmZpbmQob3JkZXIgPT4gb3JkZXIubnVtYmVyID09IG9yZGVyX251bWJlcilcbiAgICAgICAgcmV0dXJuIG9yZGVyO1xuICAgIH1cblxuICAgIHdhaXRVbnRpbE9yZGVycyA9IChvcmRlcl9udW1iZXIsIG5leHQpID0+IHtcbiAgICAgICAgdGhpcy5vcmRlcnMkLnRvUHJvbWlzZSgpLnRoZW4ob3JkZXJzID0+IHtcbiAgICAgICAgICAgIGlmICghb3JkZXJzKSB7XG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLmxvYWRpbmcpIHRoaXMudXBkYXRlT3JkZXJzKCk7XG4gICAgICAgICAgICAgICAgdGhpcy53YWl0VW50aWxPcmRlcnMob3JkZXJfbnVtYmVyLCBuZXh0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuZ2V0T3JkZXJCeU51bWJlcihvcmRlcl9udW1iZXIpO1xuICAgICAgICB9KVxuICAgIH1cblxuICAgIHJlQnV5KG9yZGVyKSB7XG4gICAgICAgIC8vIHRoaXMuY2FydFNlcnZpY2UuY2xlYXJDYXJ0KCk7XG4gICAgICAgIG9yZGVyLml0ZW1zLm1hcChpdGVtID0+IHtcbiAgICAgICAgICAgIHRoaXMuY2FydFNlcnZpY2UuYWRkVG9DYXJ0KHRoaXMuZm9ybWF0UHJvZHVjdChpdGVtLnByb2R1Y3QsIGl0ZW0ucHJvZHVjdC5kaXNjb3VudCksIGl0ZW0ucXVhbnRpdHksIGl0ZW0udmFyaWFudF9pZCk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKCcvY2FydCcpO1xuICAgIH1cblxuICAgIGZvcm1hdFByb2R1Y3QocHJvZHVjdCwgZGlzY291bnQpIHtcbiAgICAgICAgbGV0IHBlcmNlbnRhamUgPSBwYXJzZUZsb2F0KCcwLicgKyBkaXNjb3VudC50b1N0cmluZygpKS50b0ZpeGVkKDIpO1xuICAgICAgICBwcm9kdWN0LnByaWNlID0gcHJvZHVjdC52YXJpYW50c1swXS5wcmljZTtcbiAgICAgICAgcHJvZHVjdC5zYWxlcHJpY2UgPSAocHJvZHVjdC5wcmljZSAtIChwcm9kdWN0LnByaWNlICogcGFyc2VGbG9hdChwZXJjZW50YWplKSkpO1xuICAgICAgICBwcm9kdWN0Lm9wdGlvbnMgPSB7fTtcbiAgICAgICAgcHJvZHVjdC52YXJpYW50c1swXS5vcHRpb25zLmZvckVhY2gob3B0aW9uID0+IHByb2R1Y3Qub3B0aW9ucyA9IHsgLi4ucHJvZHVjdC5vcHRpb25zLCAuLi5vcHRpb24gfSk7XG4gICAgICAgIHJldHVybiBwcm9kdWN0O1xuICAgIH1cbn1cbiJdfQ==