buildingproduct-library 0.2.76 → 0.2.78
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/images/pdf-icon.svg +45 -0
- package/{buildingproduct-library-0.2.76.tgz → buildingproduct-library-0.2.78.tgz} +0 -0
- package/bundles/buildingproduct-library.umd.js +3471 -2489
- package/bundles/buildingproduct-library.umd.js.map +1 -1
- package/esm2015/lib/account-dropdown/account-dropdown.component.js +38 -4
- package/esm2015/lib/account-dropdown/account-dropdown.service.js +3 -3
- package/esm2015/lib/checkout/add-new-address/add-new-address.component.js +22 -13
- package/esm2015/lib/checkout/checkout.module.js +10 -2
- package/esm2015/lib/checkout/custom-checkout/custom-checkout.component.js +7 -28
- package/esm2015/lib/checkout/order-confirmation/order-confirmation.component.js +2 -3
- package/esm2015/lib/checkout/order-review/delivery-information/delivery-information.component.js +1 -1
- package/esm2015/lib/checkout/order-review/order-review-grid/order-review-grid.component.js +86 -16
- package/esm2015/lib/checkout/order-review/order-review-list/order-review-list.component.js +72 -15
- package/esm2015/lib/checkout/order-review/order-review.component.js +3 -27
- package/esm2015/lib/contact-us/contact-us.component.js +1 -1
- package/esm2015/lib/custom-cart/addto-saved-carts/addto-saved-carts.component.js +2 -2
- package/esm2015/lib/custom-cart/custom-cart.component.js +3 -27
- package/esm2015/lib/custom-cart/custom-cart.module.js +3 -3
- package/esm2015/lib/custom-mini-cart/custom-mini-cart.component.js +110 -52
- package/esm2015/lib/custom-mini-cart/custom-mini-cart.module.js +2 -2
- package/esm2015/lib/custom-navigation/custom-navigation.component.js +122 -0
- package/esm2015/lib/custom-navigation/custom-navigation.module.js +3 -3
- package/esm2015/lib/custom-order-details/custom-order-details.component.js +26 -21
- package/esm2015/lib/custom-order-details/custom-order-details.module.js +15 -7
- package/esm2015/lib/custom-order-details/download-popup/download-popup.component.js +1 -1
- package/esm2015/lib/custom-order-details/order-detail-grid/order-detail-grid.component.js +105 -22
- package/esm2015/lib/custom-order-details/order-detail-list/order-detail-list.component.js +89 -23
- package/esm2015/lib/custom-order-history/custom-order-history.component.js +49 -22
- package/esm2015/lib/custom-order-history/custom-order-history.module.js +10 -2
- package/esm2015/lib/custom-order-history/slider-progress/slider-progress.component.js +1 -1
- package/esm2015/lib/custom-saved-cart/custom-saved-cart-details/custom-save-cart-dtl/custom-save-cart-dtl.component.js +2 -2
- package/esm2015/lib/custom-saved-cart/custom-saved-cart-details/custom-saved-cart-details.module.js +2 -2
- package/esm2015/lib/custom-saved-cart/custom-saved-cart-details/saved-cart-details-action/saved-cart-details-action.component.js +4 -28
- package/esm2015/lib/custom-saved-cart/custom-saved-cart-details/saved-cart-details-overview/saved-cart-details-overview.component.js +1 -1
- package/esm2015/lib/custom-saved-cart/custom-saved-cart.component.js +6 -4
- package/esm2015/lib/custom-saved-cart/custom-saved-cart.module.js +2 -2
- package/esm2015/lib/custom-saved-cart/saved-cart.service.js +11 -2
- package/esm2015/lib/custom-search/custom-search.component.js +3 -3
- package/esm2015/lib/custom-user-account/custom-user-account.component.js +2 -2
- package/esm2015/lib/directives/custom-directives.module.js +1 -1
- package/esm2015/lib/directives/custom-paginatior.directive.js +101 -31
- package/esm2015/lib/find-store/find-store.component.js +2 -2
- package/esm2015/lib/help-support/help-support.component.js +1 -1
- package/esm2015/lib/my-account/account-dashboard/account-dashboard.component.js +2 -2
- package/esm2015/lib/my-account/account-statements/account-statements.component.js +2 -2
- package/esm2015/lib/my-account/invoice-credit/invoice-credit.component.js +51 -17
- package/esm2015/lib/my-account/my-account.component.js +2 -2
- package/esm2015/lib/my-account/my-account.module.js +11 -3
- package/esm2015/lib/my-team/my-team.component.js +25 -17
- package/esm2015/lib/my-team/my-team.module.js +11 -7
- package/esm2015/lib/services/endPointURL.js +6 -1
- package/esm2015/lib/services/user-account-detail-service.service.js +172 -4
- package/esm2015/lib/shared/CustomProduct.js +5 -4
- package/esm2015/lib/shared/active-saved-cart/active-saved-cart.component.js +20 -11
- package/esm2015/lib/shared/custom-breadcrum/custom-breadcrum.component.js +17 -7
- package/esm2015/lib/shared/custom-cart-detail/custom-cart-detail.component.js +1 -1
- package/esm2015/lib/shared/custom-cart-detail/custom-cart-grid/custom-cart-grid.component.js +198 -102
- package/esm2015/lib/shared/custom-cart-detail/custom-cart-list/custom-cart-list.component.js +64 -22
- package/esm2015/lib/shared/custom-cart-detail/custom-product-quantity-form/custom-product-quantity-form.component.js +129 -80
- package/esm2015/lib/shared/date-range-picker/date-range-picker.component.js +59 -9
- package/esm2015/lib/shared/regEx.validator.js +3 -1
- package/esm2015/lib/shared/saved-cart-popup/saved-cart-popup.component.js +1 -1
- package/esm2015/lib/shared/shared-components.module.js +21 -10
- package/esm2015/lib/shared/shared-download-order/shared-download-order.component.js +116 -31
- package/esm2015/lib/spa-custom-header.module.js +14 -13
- package/esm2015/public-api.js +2 -2
- package/fesm2015/buildingproduct-library.js +1996 -1081
- package/fesm2015/buildingproduct-library.js.map +1 -1
- package/lib/checkout/add-new-address/add-new-address.component.d.ts +1 -0
- package/lib/checkout/checkout.module.d.ts +12 -10
- package/lib/checkout/custom-checkout/custom-checkout.component.d.ts +2 -5
- package/lib/checkout/order-review/order-review-grid/order-review-grid.component.d.ts +8 -2
- package/lib/checkout/order-review/order-review-list/order-review-list.component.d.ts +5 -2
- package/lib/checkout/order-review/order-review.component.d.ts +1 -4
- package/lib/custom-cart/custom-cart.component.d.ts +1 -4
- package/lib/custom-mini-cart/custom-mini-cart.component.d.ts +11 -3
- package/lib/custom-navigation/{custom-navigation/custom-navigation.component.d.ts → custom-navigation.component.d.ts} +1 -1
- package/lib/custom-navigation/custom-navigation.module.d.ts +1 -1
- package/lib/custom-order-details/custom-order-details.component.d.ts +5 -2
- package/lib/custom-order-details/custom-order-details.module.d.ts +6 -4
- package/lib/custom-order-details/order-detail-grid/order-detail-grid.component.d.ts +14 -4
- package/lib/custom-order-details/order-detail-list/order-detail-list.component.d.ts +10 -3
- package/lib/custom-order-history/custom-order-history.component.d.ts +3 -0
- package/lib/custom-order-history/custom-order-history.module.d.ts +8 -6
- package/lib/custom-saved-cart/custom-saved-cart-details/saved-cart-details-action/saved-cart-details-action.component.d.ts +1 -4
- package/lib/custom-saved-cart/custom-saved-cart.component.d.ts +1 -0
- package/lib/custom-saved-cart/saved-cart.service.d.ts +1 -0
- package/lib/custom-search/custom-search.component.d.ts +1 -1
- package/lib/directives/custom-paginatior.directive.d.ts +6 -1
- package/lib/find-store/find-store.component.d.ts +1 -1
- package/lib/my-account/account-statements/account-statements.component.d.ts +1 -1
- package/lib/my-account/invoice-credit/invoice-credit.component.d.ts +8 -2
- package/lib/my-account/my-account.component.d.ts +1 -1
- package/lib/my-account/my-account.module.d.ts +7 -5
- package/lib/my-team/my-team.component.d.ts +2 -0
- package/lib/my-team/my-team.module.d.ts +7 -6
- package/lib/services/endPointURL.d.ts +3 -0
- package/lib/services/user-account-detail-service.service.d.ts +27 -1
- package/lib/shared/CustomProduct.d.ts +1 -0
- package/lib/shared/active-saved-cart/active-saved-cart.component.d.ts +3 -1
- package/lib/shared/custom-breadcrum/custom-breadcrum.component.d.ts +3 -1
- package/lib/shared/custom-cart-detail/custom-cart-grid/custom-cart-grid.component.d.ts +17 -9
- package/lib/shared/custom-cart-detail/custom-cart-list/custom-cart-list.component.d.ts +8 -6
- package/lib/shared/custom-cart-detail/custom-product-quantity-form/custom-product-quantity-form.component.d.ts +11 -3
- package/lib/shared/date-range-picker/date-range-picker.component.d.ts +11 -3
- package/lib/shared/regEx.validator.d.ts +2 -0
- package/lib/shared/shared-components.module.d.ts +10 -8
- package/lib/shared/shared-download-order/shared-download-order.component.d.ts +6 -4
- package/lib/spa-custom-header.module.d.ts +7 -6
- package/package.json +3 -1
- package/public-api.d.ts +1 -1
- package/esm2015/lib/custom-navigation/custom-navigation/custom-navigation.component.js +0 -121
- package/esm2015/lib/preference/preference.component.js +0 -19
- package/esm2015/lib/preference/preference.module.js +0 -45
- package/lib/preference/preference.component.d.ts +0 -8
- package/lib/preference/preference.module.d.ts +0 -10
|
@@ -1,20 +1,28 @@
|
|
|
1
|
+
import { __awaiter } from "tslib";
|
|
1
2
|
import { Component, Input } from '@angular/core';
|
|
2
3
|
import { BehaviorSubject } from 'rxjs';
|
|
3
4
|
import * as i0 from "@angular/core";
|
|
4
5
|
import * as i1 from "../../services/cart.service";
|
|
5
|
-
import * as i2 from "
|
|
6
|
-
import * as i3 from "@
|
|
6
|
+
import * as i2 from "../../services/user-account-detail-service.service";
|
|
7
|
+
import * as i3 from "@spartacus/storefront";
|
|
8
|
+
import * as i4 from "@angular/common";
|
|
7
9
|
export class OrderDetailListComponent {
|
|
8
|
-
constructor(cartService, cdr) {
|
|
10
|
+
constructor(cartService, userProfileDetailsService, cdr) {
|
|
9
11
|
this.cartService = cartService;
|
|
12
|
+
this.userProfileDetailsService = userProfileDetailsService;
|
|
10
13
|
this.cdr = cdr;
|
|
11
14
|
this.showDetails = [];
|
|
12
15
|
this.cartDetails = [];
|
|
13
16
|
this.showWaitCursor = new BehaviorSubject(false);
|
|
14
|
-
this.
|
|
15
|
-
this.env =
|
|
17
|
+
this.isOrderPermissions = true;
|
|
18
|
+
this.env = sessionStorage.getItem('env');
|
|
19
|
+
this.environment = JSON.parse(this.env);
|
|
16
20
|
}
|
|
17
21
|
ngOnInit() {
|
|
22
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
23
|
+
this.isOrderPermissions =
|
|
24
|
+
yield this.userProfileDetailsService.isPlaceOrdersPermission();
|
|
25
|
+
});
|
|
18
26
|
}
|
|
19
27
|
ngOnChanges(changes) {
|
|
20
28
|
var _a, _b, _c;
|
|
@@ -27,7 +35,7 @@ export class OrderDetailListComponent {
|
|
|
27
35
|
}
|
|
28
36
|
else {
|
|
29
37
|
this.showWaitCursor.next(false);
|
|
30
|
-
this.noRecord =
|
|
38
|
+
this.noRecord = "No data";
|
|
31
39
|
}
|
|
32
40
|
for (let i = 0; i < this.cartDetails.length; i++) {
|
|
33
41
|
this.showDetails.push(false);
|
|
@@ -38,27 +46,57 @@ export class OrderDetailListComponent {
|
|
|
38
46
|
}
|
|
39
47
|
});
|
|
40
48
|
}
|
|
49
|
+
getColourDetails(configInfo, type) {
|
|
50
|
+
var _a, _b, _c, _d;
|
|
51
|
+
let name;
|
|
52
|
+
let background;
|
|
53
|
+
if (configInfo && (configInfo === null || configInfo === void 0 ? void 0 : configInfo.length) > 0) {
|
|
54
|
+
const colour = configInfo === null || configInfo === void 0 ? void 0 : configInfo.filter((col) => {
|
|
55
|
+
var _a;
|
|
56
|
+
return ((_a = col === null || col === void 0 ? void 0 : col.configurationLabel) === null || _a === void 0 ? void 0 : _a.toLowerCase()) == "color";
|
|
57
|
+
});
|
|
58
|
+
if (colour && (colour === null || colour === void 0 ? void 0 : colour.length)) {
|
|
59
|
+
name = (_b = (_a = colour[0]) === null || _a === void 0 ? void 0 : _a.configurationValue) === null || _b === void 0 ? void 0 : _b.split('|')[1];
|
|
60
|
+
background = (_d = (_c = colour[0]) === null || _c === void 0 ? void 0 : _c.configurationValue) === null || _d === void 0 ? void 0 : _d.split('|')[2];
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
return (type == "background") ? background : name;
|
|
64
|
+
}
|
|
65
|
+
// Check if any value is empty or undefined
|
|
66
|
+
isNullOrEmpty(value) {
|
|
67
|
+
return value == null || value == undefined || value == "";
|
|
68
|
+
}
|
|
41
69
|
// Get the Image Details based on Products
|
|
42
70
|
getImageDetails(cartDetails, thumbnail = true) {
|
|
43
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
|
|
71
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
|
|
44
72
|
let imageUrl = (_a = cartDetails === null || cartDetails === void 0 ? void 0 : cartDetails.product) === null || _a === void 0 ? void 0 : _a.images;
|
|
45
73
|
if (this.isCardData) {
|
|
46
|
-
imageUrl =
|
|
74
|
+
//imageUrl = cartDetails?.product?.images?.find((img: any) => img.format == "cartIcon");
|
|
75
|
+
const colorCode = (cartDetails === null || cartDetails === void 0 ? void 0 : cartDetails.configurationInfos) || (cartDetails === null || cartDetails === void 0 ? void 0 : cartDetails.configurationInfos[0])
|
|
76
|
+
? (_c = (_b = cartDetails === null || cartDetails === void 0 ? void 0 : cartDetails.configurationInfos[0]) === null || _b === void 0 ? void 0 : _b.configurationValue) === null || _c === void 0 ? void 0 : _c.split("|")[0]
|
|
77
|
+
: "";
|
|
78
|
+
imageUrl = (_e = (_d = cartDetails === null || cartDetails === void 0 ? void 0 : cartDetails.product) === null || _d === void 0 ? void 0 : _d.images) === null || _e === void 0 ? void 0 : _e.filter((img) => {
|
|
79
|
+
var _a, _b;
|
|
80
|
+
return ((img === null || img === void 0 ? void 0 : img.format) == "cartIcon" && (img === null || img === void 0 ? void 0 : img.colorCode) == colorCode) ||
|
|
81
|
+
((img === null || img === void 0 ? void 0 : img.format) == "cartIcon" &&
|
|
82
|
+
this.isNullOrEmpty(colorCode) &&
|
|
83
|
+
((_b = (_a = cartDetails === null || cartDetails === void 0 ? void 0 : cartDetails.product) === null || _a === void 0 ? void 0 : _a.images) === null || _b === void 0 ? void 0 : _b.length) <= 4);
|
|
84
|
+
});
|
|
47
85
|
}
|
|
48
86
|
else {
|
|
49
|
-
imageUrl = (
|
|
87
|
+
imageUrl = (_h = (_g = (_f = cartDetails === null || cartDetails === void 0 ? void 0 : cartDetails.product) === null || _f === void 0 ? void 0 : _f.images) === null || _g === void 0 ? void 0 : _g.GALLERY) === null || _h === void 0 ? void 0 : _h.cartIcon;
|
|
50
88
|
}
|
|
51
89
|
let srcUrl;
|
|
52
90
|
if ((cartDetails === null || cartDetails === void 0 ? void 0 : cartDetails.attachments) &&
|
|
53
|
-
((
|
|
54
|
-
((
|
|
91
|
+
((_j = cartDetails === null || cartDetails === void 0 ? void 0 : cartDetails.attachments) === null || _j === void 0 ? void 0 : _j.length) &&
|
|
92
|
+
((_k = cartDetails === null || cartDetails === void 0 ? void 0 : cartDetails.product) === null || _k === void 0 ? void 0 : _k.flashingProduct)) {
|
|
55
93
|
srcUrl =
|
|
56
|
-
thumbnail && ((
|
|
57
|
-
? (
|
|
58
|
-
: (
|
|
94
|
+
thumbnail && ((_l = cartDetails === null || cartDetails === void 0 ? void 0 : cartDetails.attachments) === null || _l === void 0 ? void 0 : _l.length) > 1
|
|
95
|
+
? (_m = cartDetails === null || cartDetails === void 0 ? void 0 : cartDetails.attachments[1]) === null || _m === void 0 ? void 0 : _m.downloadURL
|
|
96
|
+
: (_o = cartDetails === null || cartDetails === void 0 ? void 0 : cartDetails.attachments[0]) === null || _o === void 0 ? void 0 : _o.downloadURL;
|
|
59
97
|
imageUrl = {
|
|
60
|
-
url: (
|
|
61
|
-
srcUrl)) === null ||
|
|
98
|
+
url: (_p = (this.environment.occBaseUrl.slice(0, this.environment.occBaseUrl.length - 1) +
|
|
99
|
+
srcUrl)) === null || _p === void 0 ? void 0 : _p.replace("&attachment=true", ""),
|
|
62
100
|
};
|
|
63
101
|
}
|
|
64
102
|
return imageUrl;
|
|
@@ -81,17 +119,45 @@ export class OrderDetailListComponent {
|
|
|
81
119
|
const mimeArray = ["image/png", "image/jpg", "image/jpeg"];
|
|
82
120
|
return mimeArray.includes(mimeType);
|
|
83
121
|
}
|
|
122
|
+
hasColour(cartDetails) {
|
|
123
|
+
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
124
|
+
if ((_a = cartDetails === null || cartDetails === void 0 ? void 0 : cartDetails.product) === null || _a === void 0 ? void 0 : _a.finishedProduct) {
|
|
125
|
+
const code = (_b = cartDetails === null || cartDetails === void 0 ? void 0 : cartDetails.product) === null || _b === void 0 ? void 0 : _b.code;
|
|
126
|
+
const colour = (_d = (_c = cartDetails === null || cartDetails === void 0 ? void 0 : cartDetails.product) === null || _c === void 0 ? void 0 : _c.variantOptions) === null || _d === void 0 ? void 0 : _d.filter((item) => item.code == code);
|
|
127
|
+
if (colour && ((_e = colour[0]) === null || _e === void 0 ? void 0 : _e.colours) && ((_g = (_f = colour[0]) === null || _f === void 0 ? void 0 : _f.colours) === null || _g === void 0 ? void 0 : _g.length) > 0) {
|
|
128
|
+
cartDetails.colour = (_h = colour[0]) === null || _h === void 0 ? void 0 : _h.colours[0];
|
|
129
|
+
return true;
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
return false;
|
|
133
|
+
}
|
|
134
|
+
// Get Summary Heading
|
|
135
|
+
getClassifications(data) {
|
|
136
|
+
let featureArray = [];
|
|
137
|
+
data === null || data === void 0 ? void 0 : data.forEach((element) => {
|
|
138
|
+
element === null || element === void 0 ? void 0 : element.features.forEach((feature) => {
|
|
139
|
+
var _a, _b, _c;
|
|
140
|
+
if (feature === null || feature === void 0 ? void 0 : feature.featureUnit) {
|
|
141
|
+
featureArray.push(((_a = feature === null || feature === void 0 ? void 0 : feature.featureValues[0]) === null || _a === void 0 ? void 0 : _a.value) + ' ' + ((_b = feature === null || feature === void 0 ? void 0 : feature.featureUnit) === null || _b === void 0 ? void 0 : _b.symbol));
|
|
142
|
+
}
|
|
143
|
+
else {
|
|
144
|
+
featureArray.push((_c = feature === null || feature === void 0 ? void 0 : feature.featureValues[0]) === null || _c === void 0 ? void 0 : _c.value);
|
|
145
|
+
}
|
|
146
|
+
});
|
|
147
|
+
});
|
|
148
|
+
return featureArray === null || featureArray === void 0 ? void 0 : featureArray.join(" | ");
|
|
149
|
+
}
|
|
84
150
|
}
|
|
85
|
-
OrderDetailListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: OrderDetailListComponent, deps: [{ token: i1.CartService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
86
|
-
OrderDetailListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: OrderDetailListComponent, selector: "app-order-detail-list", inputs: { cartDetails: "cartDetails", sortByVal: "sortByVal", orderDate: "orderDate", isCardData: "isCardData" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"loading\" *ngIf=\"showWaitCursor | async \">Loading…</div>\r\n<div class=\"revieworder-table-container py-3\">\r\n <table class=\"w-100 table\">\r\n <tr class=\"revieworder-header-container\">\r\n <th>#</th>\r\n <th class=\"item\">ITEM</th>\r\n <th>JOB REFERENCE</th>\r\n <th>DELIVERY DATE</th>\r\n <!-- <th>DELIVERY #</th> -->\r\n <th>QUANTITY ORDERED</th>\r\n <!-- <th>QUANTITY SHIPPED</th> -->\r\n <th class=\"colHD\"><div class=\"text-right\">TOTAL PRICE</div> <span class=\"text-right\">excl GST</span></th>\r\n <th>STATUS</th>\r\n </tr>\r\n <ng-container *ngIf=\"cartDetails.length; else nodata\">\r\n <ng-container *ngFor=\"let cart of cartDetails;let i = index\">\r\n <tr class=\"revieworder-body-container\" [ngClass]=\"cart?.configurationInfos.length ? '' : 'borderNew' \">\r\n <td>\r\n <ng-container *ngIf=\"cart.entryNumber.length>9; else entryId\">{{cart.entryNumber}}</ng-container>\r\n <ng-template #entryId>0{{cart.entryNumber+1}}</ng-template>\r\n </td>\r\n <td>\r\n <div class=\"row product-image-container\">\r\n <div class=\"col-sm-4 col-lg-2 p-2 product-img\">\r\n <ng-container\r\n *ngIf=\"\r\n cartDetails[i]?.product?.flashingProduct;\r\n else normalImage\r\n \"\r\n >\r\n <a data-toggle=\"modal\" class=\"flashing-expand\" (click)=\"viewImage($event,cartDetails[i])\" [attr.data-target]=\"'#imageModal'\" *ngIf=\"hasImage(cartDetails[i]);else hasPdf\">\r\n <cx-media\r\n [container]=\"getImageDetails(cartDetails[i])\"\r\n format=\"cartIcon\"\r\n role=\"presentation\"\r\n ></cx-media>\r\n </a>\r\n <ng-template #hasPdf>\r\n <a class=\"flashing-expand flashing-open\" [href]=\"getPdfLink(cartDetails[i])\" target=\"_blank\">\r\n <img class=\"pdf-icon\" src=\"../../../../../assets/images/pdf-icon.svg\" alt=\"Click to open PDF\" title=\"Click to open PDF\" />\r\n </a>\r\n </ng-template>\r\n </ng-container>\r\n <ng-template #normalImage>\r\n <cx-media\r\n [container]=\"getImageDetails(cartDetails[i])\"\r\n format=\"cartIcon\"\r\n role=\"presentation\"\r\n ></cx-media>\r\n </ng-template>\r\n </div>\r\n <div class=\"col-sm-8 col-lg-10\">\r\n <p class=\"reviewproduct-name mb-2\">{{cart?.product?.name}}</p>\r\n <p class=\"sku-text mb-0\">SKU: {{cart?.product?.code }}</p>\r\n </div>\r\n </div>\r\n </td>\r\n <td>{{cart?.jobReference || '-'}}</td>\r\n <td>{{orderDate | date:\"dd/MM/yyyy\"}}</td>\r\n <td>{{cart.quantityDouble}}{{cart?.totalPrice?.unitType}}<br>\r\n <span class=\"subPrice\">@ {{cart?.totalPrice?.formattedValue}}/{{cart?.totalPrice?.unitType}}</span></td>\r\n <td>{{cart?.totalPrice?.formattedValue}} <span class=\"d-block\">excl GST</span></td>\r\n <td class=\"statusColm\">\r\n <small class=\"statusColor\"\r\n [ngStyle]=\"{'background-color':\r\n (cart?.status=='CREATED') ? ('#F3A931') :\r\n (cart?.status=='APPROVED') ? ('#f26522') :\r\n (cart?.status=='PROCESSING') ? ('#75578A') :\r\n (cart?.status=='READY') ? ('#496471') :\r\n (cart?.status=='DELIVERING') ? ('#00ACBD') :\r\n (cart?.status=='COMPLETED') ? ('#8DC440') :\r\n (cart?.status=='RETURNED') ? ('#8DC440') :\r\n (cart?.status=='CANCELLED') ? ('#000000') :\r\n ('')}\"\r\n ></small>\r\n {{cart?.statusDisplay || '-'}}\r\n </td>\r\n </tr>\r\n <ng-container *ngIf=\"cart?.product?.classifications\">\r\n <tr class=\"revieworder-body-container\">\r\n <td colspan=\"9\">\r\n <span *ngFor=\"let attributes of cart?.product?.classifications[0]?.features;last as isLast\">\r\n {{attributes?.featureValues[0]?.value }} <span *ngIf=\"!isLast\"> | </span>\r\n </span>\r\n mm\r\n </td>\r\n </tr>\r\n </ng-container>\r\n <tr class=\"revieworder-body-container\" *ngIf=\"cart?.configurationInfos.length\" [ngClass]=\"cart?.configurationInfos.length ? 'borderNew' : '' \">\r\n <td colspan=\"9\">\r\n <p class=\"colors-paragraph mb-0\">\r\n <span class=\"revieworder-color mr-3\"\r\n [ngStyle]=\"{ background: cart?.configurationInfos[0]?.configurationValue.split('|') | slice:2}\"></span>\r\n {{cart?.configurationInfos[0]?.configurationValue.split('|') | slice:1:2}}\r\n </p> \r\n <ng-container *ngIf=\"cart?.subLineConfigInfos.length>0\">\r\n <p class=\"m-0\">\r\n <a href=\"javascript:void(0)\" (click)=\"showHide(i)\" class=\"see-more-link\">\r\n {{showDetails[i] == true ? 'Hide' : 'See'}} more details\r\n </a>\r\n </p>\r\n <div class=\"revieworder-collapse\" *ngIf=\"showDetails[i]\">\r\n <div class=\"row\">\r\n <div class=\"col-sm-6 bundle-details\">\r\n <div class=\"row bundle-details-header\">\r\n <div class=\"col-3\">Quantity</div>\r\n <div class=\"col-3\">Length (LM)</div>\r\n <ng-container *ngIf=\"cart?.subLineConfigInfos[i]?.bundleName\">\r\n <div class=\"col-3\">Bundle</div>\r\n <div class=\"col-3\">Reference</div>\r\n </ng-container>\r\n </div>\r\n <div class=\"row\" *ngFor=\"let subLine of cart?.subLineConfigInfos\">\r\n <div class=\"col-3\">{{subLine?.quantity}}</div>\r\n <div class=\"col-3\">{{subLine?.length | number:'0.3-3'}}</div>\r\n <ng-container *ngIf=\"subLine?.bundleName\">\r\n <div class=\"col-3\">{{subLine?.bundleName}}</div>\r\n <div class=\"col-3\">{{subLine?.reference}}</div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td colspan=\"9\" class=\"p-0\">\r\n <div *ngIf=\"cartDetails[i]?.product?.flashingProduct && cartDetails[i]?.productConfiguredInfos\">\r\n <div class=\"flashing-block \" *ngFor=\"let data of cartDetails[i]?.productConfiguredInfos\">\r\n <div class=\"row\">\r\n <div class=\"col-sm-3\">\r\n <h3 class=\"flash-title\">{{ data?.product?.name }}</h3>\r\n <h6 class=\"skuId\">SKU: {{ data?.product?.code }}</h6>\r\n <span *ngIf=\"data?.girth\">Grith: +{{data.girth}}mm </span>\r\n </div>\r\n <div class=\"offset-sm-3 col-sm-2\">\r\n {{data?.quantityDouble}}{{data?.unitType}}\r\n </div>\r\n <div class=\"col-sm-2\">\r\n {{data?.basePrice?.formattedValue}}/{{data?.unitType}}\r\n </div>\r\n <div class=\"col-sm-2\">\r\n {{data?.totalPrice?.formattedValue}}\r\n <span class=\"gst-text\">excl GST</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </td>\r\n </tr>\r\n </ng-container>\r\n </ng-container>\r\n <ng-template #nodata>\r\n <tr class=\"revieworder-body-container\">\r\n <td colspan=\"7\" class=\"text-center\">{{noRecord}}</td>\r\n </tr>\r\n </ng-template>\r\n \r\n </table>\r\n\r\n\r\n</div>\r\n<div class=\"modal fade\" id=\"imageModal\" role=\"dialog\" aria-labelledby=\"imageModal\" aria-hidden=\"true\" #imageModal>\r\n <div class=\"modal-dialog modal-lg\" role=\"document\">\r\n <div class=\"modal-content\">\r\n <div class=\"modal-header\">\r\n <i class=\"icon-close invite-pop-close\" #closeInviteModal data-dismiss=\"modal\" aria-label=\"Close\"></i>\r\n </div>\r\n <div class=\"modal-body m-4\">\r\n <img [src]=\"imageModalSrc\" alt=\"alert\" />\r\n </div>\r\n </div>\r\n </div>\r\n</div>", styles: ["@charset \"UTF-8\";@media screen and (min-width: 1366px){:root{--fontsize12: .75rem;--fontsize14: .875rem;--fontsize16: 1rem;--fontsize17: 1.063rem;--fontsize17-5: 1.1rem;--fontsize18: 1.125rem;--fontsize18-4: 1.5rem;--fontsize20: 1.25rem;--fontsize21: 1.313rem;--fontsize22: 1.375rem;--fontsize23: 1.438rem;--fontsize24: 1.5rem;--fontsize26: 1.625rem;--fontsize28: 1.75rem;--fontsize30: 1.625rem;--fontsize32: 2rem;--fontsize34: 2.125rem;--fontsize36: 2rem;--fontsize40: 2.25rem;--fontsize46: 2.875rem;--fontsize80: 5rem}}@media screen and (max-width: 1365px) and (min-width: 768px){:root{--fontsize12: .75rem;--fontsize14: .875rem;--fontsize16: 1rem;--fontsize17: .9rem;--fontsize17-5: 1rem;--fontsize18: .875rem;--fontsize20: 1rem;--fontsize21: 1.063rem;--fontsize22: 1.125rem;--fontsize23: 1.188rem;--fontsize24: 1rem;--fontsize28: 1.5rem;--fontsize30: 1.25rem;--fontsize32: 1.75rem;--fontsize34: 1.875rem;--fontsize36: 1.625rem;--fontsize40: 2.5rem;--fontsize46: 2.875rem;--fontsize80: 3.5rem}}@media screen and (max-width: 767px){:root{--fontsize12: .75rem;--fontsize14: .875rem;--fontsize16: 1rem;--fontsize16-5: .77rem;--fontsize17: .9rem;--fontsize17-5: 1rem;--fontsize18: .875rem;--fontsize19: .938rem;--fontsize20: 1rem;--fontsize21: 1.063rem;--fontsize22: 1.125rem;--fontsize23: 1.188rem;--fontsize24: 1rem;--fontsize26: 1.25rem;--fontsize28: 1.5rem;--fontsize30: 1.25rem;--fontsize32: 1.75rem;--fontsize34: 1.875rem;--fontsize36: 1.625rem;--fontsize40: 2.5rem;--fontsize46: 2rem;--fontsize80: 2.5rem}}@font-face{font-family:icomoon;font-weight:400;src:url(../assets/fonts/icomoon.ttf) format(\"ttf\"),url(../assets/fonts/icomoon.woff) format(\"woff\");font-weight:normal;font-style:normal;font-display:swap}@font-face{font-family:\"Arial Regular\";src:url(../assets/fonts/arial-webfont.woff) format(\"woff\"),url(../assets/fonts/arial-webfont.woff2) format(\"woff2\");font-weight:normal;font-style:normal}@font-face{font-family:\"Arial Bold\";src:url(../assets/fonts/arialbold-webfont.woff) format(\"woff\"),url(../assets/fonts/arialbold-webfont.woff2) format(\"woff2\");font-weight:normal;font-style:normal}@font-face{font-family:\"Arial Black\";src:url(../assets/fonts/arialblack-webfont.woff) format(\"woff\"),url(../assets/fonts/arialblack-webfont.woff2) format(\"woff2\");font-weight:normal;font-style:normal}@font-face{font-family:\"Helvetica Neue Reqular\";src:url(../assets/fonts/helveticaneue.woff) format(\"woff\"),url(../assets/fonts/helveticaneue.woff2) format(\"woff2\");font-weight:normal;font-style:normal}@font-face{font-family:\"Helvetica Neue Thin\";src:url(../assets/fonts/helveticaneuethin-webfont.woff) format(\"woff\"),url(../assets/fonts/helveticaneuethin-webfont.woff2) format(\"woff2\");font-weight:normal;font-style:normal}@font-face{font-family:\"Helvetica Neue Medium\";src:url(../assets/fonts/helveticaneuemedium-webfont.woff) format(\"woff\"),url(../assets/fonts/helveticaneuemedium-webfont.woff2) format(\"woff2\");font-weight:normal;font-style:normal}[class*=\" icon-\"],[class^=icon-]{font-family:icomoon!important;font-feature-settings:normal;font-variant:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-style:normal;font-weight:400;line-height:1;text-transform:none;font-display:swap}.icon-right:before{content:\"\\e902\"}.icon-materials:before{content:\"\\e900\"}.icon-natural-lighting:before{content:\"\\e90a\"}.icon-rainwater:before{content:\"\\e901\"}.icon-roofing:before{content:\"\\e90b\"}.icon-flashing{position:relative;display:inline-block;height:32px;text-align:center;width:32px}.icon-flashing:before,.mainnav-link-level-2.show .navTagChild .icon-flashing:before{content:url(../assets/images/icon-flashing-white.svg);height:20px;width:20px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);line-height:15px}li.megamenuSubChild:hover .icon-flashing:before{content:url(../assets/images/icon-flashing-black.svg)}.icon-structural:before{content:\"\\e90c\"}.icon-accessories-old .path1:before{content:\"\\e903\"}.icon-accessories-old .path2:before{margin-left:-1em;content:\"\\e904\"}.icon-accessories-old .path3:before{margin-left:-1em;content:\"\\e905\"}.icon-cladding-old .path1:before{content:\"\\e90d\"}.icon-cladding-old .path2:before{margin-left:-1em;content:\"\\e90e\"}.icon-close:before{content:\"\\e90f\"}.icon-message:before{content:\"\\e910\"}.icon-search .path1:before{content:\"\\e906\"}.icon-search .path2:before{content:\"\\e907\"}.icon-search .path3:before{margin-left:-1.0156em;content:\"\\e908\"}.icon-summary:before{content:\"\\e911\"}.icon-branch:before{content:\"\\e912\"}.icon-delivery:before{content:\"\\e913\"}.icon-downloads:before{content:\"\\e909\"}.icon-drawings:before{content:\"\\e914\"}.icon-full:before{content:\"\\e915\"}.icon-manual:before{content:\"\\e916\"}.icon-payment:before{content:\"\\e917\"}.icon-empty .path1:before{content:\"\\e918\"}.icon-empty .path2:before{margin-left:-1em;content:\"\\e919\"}.icon-empty .path3:before{margin-left:-1em;content:\"\\e91a\"}.icon-product-overview:before{content:\"\\e91b\"}.icon-arrows:before{content:\"\\e91c\"}.icon-selected:before{content:\"\\e91d\"}.icon-accessories:before{content:\"\\e91b\"}.icon-cladding:before{content:\"\\e91e\"}.icon-Triangle:before{content:\"\\e91f\"}.icon-home:before{content:\"\\e920\"}.icon-faq:before{content:\"\\e921\"}.icon-temperature:before{content:\"\\e922\"}body header{font-family:\"Arial Regular\",sans-serif}header{background-color:#1d1d1b;position:sticky;top:0;background-size:100% 25%!important;background-repeat:no-repeat;z-index:10}header .header{max-width:100%;padding:0}header cx-banner cx-media img{margin-top:.7rem;margin-bottom:0}header label{display:inline-flex}header .SiteLinks{height:52px;display:flex;align-items:center;justify-content:space-between;padding-top:5px;padding-bottom:5px}header .SiteLinks cx-paragraph p{color:#fff;font-size:var(--fontsize16);line-height:var(--fontsize16);margin-bottom:0}header .SiteLinks cx-paragraph{font-size:var(--fontsize16)}header .SiteLinks app-account-dropdown,header .SiteLinks app-find-store{width:calc(25% - 25px);max-width:328px;margin-right:25px}header .SiteLinks app-contact-us{width:calc(20% - 25px);max-width:100px;margin-left:auto}header .SiteLinks app-custom-mini-cart{width:10%}header .SiteLinks .preferenceLink{margin-left:auto}header .SiteLinks .preferenceLink cx-generic-link{margin:0}header .SiteLinks .preferenceLink cx-generic-link cx-media img{height:22px;margin:0}header .SiteLogo .storeLogo{position:absolute;z-index:99;left:40px;bottom:10px}header .SiteLogo .homeLogo{max-width:28px;height:28px;position:absolute;z-index:99;bottom:47px}header .NavigationBar{flex:70%;background-color:#b61828;min-height:40px;display:flex;align-items:center;position:relative;z-index:10}header .logoutMenu{margin-top:0!important}header .logoutMenu li{cursor:pointer;background-color:#4c4c4c;color:#fff}header .logoutMenu li:hover{text-decoration:underline;background-color:#4c4c4c}header .MarketingContext{width:100%;margin:auto}.customer-service-icon{cursor:pointer}.helpSupport{width:20rem;border:0;margin-top:.5rem!important;transform:translate(-42%,36px)!important;padding:1rem 1rem 0;background-color:#393939;color:#fff;top:0}.helpSupport .arrow-up{position:absolute;top:-8px;right:44%;width:0;height:0;border-left:15px solid rgba(0,0,0,0);border-right:15px solid rgba(0,0,0,0);border-bottom:15px solid #393939}.helpSupport .contact-us-info .heading{font-family:\"Arial Bold\",sans-serif}.helpSupport .contact-us-info .detail{font-size:var(--fontsize14);line-height:2rem}.helpSupport .contact-us-info .detail .service-icon{height:20px;width:20px;margin-right:10px}.helpSupport .contact-us-info .contactLink a{font-size:var(--fontsize14);text-decoration:underline;text-transform:uppercase}.helpSupport .contact-us-info a{color:#fff;text-decoration:none}.helpSupport .contact-us-info a:hover{text-decoration:underline}.pageTitle{font-family:\"Helvetica Neue Regular\",sans-serif;font-size:var(--fontsize54)}#visualization-container{text-align:center;margin:0 auto}#cds-viewer-container-3d{width:320px;height:200px}#cds-viewer-container-2d{width:320px;height:200px}[aria-label=Close]{cursor:pointer}cx-media.is-missing{background:url(./assets/images/search-noimage.svg);background-size:cover;background-position:center;background-repeat:no-repeat}cx-global-message{position:fixed;top:9rem;width:100%;z-index:13}@media screen and (max-width: 991px){cx-global-message{top:3.75rem}cx-storefront header{background-color:#b61828}cx-storefront header cx-banner cx-media img{margin:auto}cx-storefront header .SiteLogo{width:100%;max-width:211px;margin:auto;padding-left:30px;box-sizing:border-box}cx-storefront header .SiteLogo .storeLogo{position:unset}cx-storefront header .SearchBox{margin:14px 0 10px;width:30px}cx-storefront header .SiteLinks{background-color:transparent;width:110px;margin:auto 25px auto 0}cx-storefront header .SiteLinks app-account-dropdown,cx-storefront header .SiteLinks app-find-store,cx-storefront header .SiteLinks app-contact-us,cx-storefront header .SiteLinks cx-paragraph,cx-storefront header .SiteLinks .preferenceLink{display:none}cx-storefront header .SiteLinks app-custom-mini-cart,cx-storefront header .SiteLinks app-custom-user-account{width:35px}cx-storefront header.is-expanded{overflow-y:auto;position:fixed;bottom:0;top:0;width:calc(100% - 99px)}cx-storefront header.is-expanded .header{background-color:#b61828;margin-left:0}cx-storefront header.is-expanded .PreHeader{position:absolute;right:15px;top:15px}cx-storefront header.is-expanded .SearchBox{display:none}cx-storefront header.is-expanded .SiteLogo{position:absolute;top:25px;z-index:9}cx-storefront header.is-expanded .SiteLinks{background-color:#1d1d1b;width:100%;margin:15px auto 15px 0;height:unset;padding:15px;max-width:100%;position:relative;z-index:9;top:60px}cx-storefront header.is-expanded .SiteLinks app-account-dropdown,cx-storefront header.is-expanded .SiteLinks app-find-store,cx-storefront header.is-expanded .SiteLinks app-contact-us,cx-storefront header.is-expanded .SiteLinks cx-paragraph,cx-storefront header.is-expanded .SiteLinks .preferenceLink{display:block}cx-storefront header.is-expanded .SiteLinks app-custom-mini-cart,cx-storefront header.is-expanded .SiteLinks app-custom-user-account{display:none}cx-storefront header.is-expanded .SiteLinks app-account-dropdown{width:100%;max-width:100%}cx-storefront header.is-expanded .SiteLinks app-find-store{width:50%;max-width:328px;min-width:328px}cx-storefront header.is-expanded .SiteLinks app-contact-us{margin-right:15px;margin-left:auto;width:115px;max-width:unset}cx-storefront header.is-expanded .navigation{position:relative;top:45px}cx-storefront header.is-expanded:before{background-color:#0000004d;right:0;content:\"\";position:fixed;z-index:2;top:0;bottom:0;height:100vh;width:99px}cx-storefront header.is-expanded:after{background-color:transparent}}@media screen and (max-width: 576px){cx-storefront header .SiteLogo{max-width:80px}cx-storefront header .SiteLogo .storeLogo{display:none}cx-storefront header .searchBox{height:45px}cx-storefront header.is-expanded{width:100%}cx-storefront header.is-expanded .header,cx-storefront header.is-expanded .navigation{width:100%}cx-storefront header.is-expanded .SiteLogo{max-width:211px!important}cx-storefront header.is-expanded .SiteLogo .storeLogo{display:block}cx-storefront header.is-expanded .SiteLinks{max-width:100%;width:100%}cx-storefront header.is-expanded .SiteLinks app-account-dropdown,cx-storefront header.is-expanded .SiteLinks app-find-store,cx-storefront header.is-expanded .SiteLinks app-contact-us,cx-storefront header.is-expanded .SiteLinks cx-paragraph,cx-storefront header.is-expanded .SiteLinks .preferenceLink{display:block}cx-storefront header.is-expanded .SiteLinks app-custom-mini-cart,cx-storefront header.is-expanded .SiteLinks app-custom-user-account{display:none}cx-storefront header.is-expanded .SiteLinks app-find-store{width:100%;max-width:100%;margin-bottom:10px}cx-storefront header.is-expanded .SiteLinks app-contact-us{margin-left:0}cx-storefront header.is-expanded .SiteLinks cx-paragraph{margin-left:auto}cx-storefront header.is-expanded:before{display:none}.pageTitle{font-size:28px}}.table{color:#1d1d1b;background:#ffffff}.table td{border:0;vertical-align:top!important}.revieworder-table-container{padding-bottom:15rem}.revieworder-table-container .revieworder-header-container{background:#646363;color:#fff;font-family:\"Arial Bold\",sans-serif}.revieworder-table-container .revieworder-header-container th{vertical-align:middle!important}.revieworder-table-container .revieworder-header-container .colHD{width:120px;font-size:14px;display:flex;flex-direction:column;align-self:center;line-height:18px}.revieworder-table-container .revieworder-header-container .colHD span{text-align:right;display:block;font-size:12px}.revieworder-table-container .revieworder-header-container .item{width:350px}.revieworder-table-container .product-img{width:50px;height:50px;border:1px solid #E0E0E0;min-width:50px}.revieworder-table-container .product-img cx-media{top:-1px}.revieworder-table-container .borderNew{border-bottom:1px solid #E0E0E0}.revieworder-table-container .statusColm{width:140px}.revieworder-table-container .statusColor{display:inline-block;width:12px;height:12px;border-radius:50%}.revieworder-table-container .subPrice{color:#707070}.revieworder-table-container .revieworder-body-container{padding-bottom:1rem}.revieworder-table-container .revieworder-body-container .product-image-container{display:flex}.revieworder-table-container .revieworder-body-container .product-image-container .reviewproduct-image{width:71px;height:71px}.revieworder-table-container .revieworder-body-container .product-image-container .reviewproduct-name{font-family:\"Arial Bold\",sans-serif}.revieworder-table-container .revieworder-body-container .product-image-container .sku-text{font-size:var(--fontsize14);font-family:\"Arial Bold\",sans-serif;color:#6f6f6f}.revieworder-table-container .revieworder-body-container .see-more-link{text-decoration:underline}.revieworder-table-container .revieworder-body-container .see-more-link:hover{color:#d51317}.revieworder-table-container .revieworder-body-container .seemoredetails-link{font-size:var(--fontsize16);font-family:\"Arial Regular\",sans-serif;text-decoration:underline;cursor:pointer}.revieworder-table-container .revieworder-body-container .seemoredetails-link:hover{color:#b61828}.revieworder-table-container .revieworder-body-container .revieworder-collapse .bundle-details{background:#F6F6F6;border:1px solid #E0E0E0;margin-left:15px;padding:1rem;line-height:2.5rem}.revieworder-table-container .revieworder-body-container .revieworder-collapse .bundle-details .bundle-details-header{font-family:\"Arial Bold\",sans-serif}.revieworder-table-container .colors-paragraph{display:flex;align-items:center}.revieworder-table-container .colors-paragraph .revieworder-color{width:20px;height:20px;border:1px solid #000000;display:inline-flex}::ng-deep .flashing-expand{cursor:pointer}::ng-deep .flashing-expand:after{background:url(../../../../assets/images/expand-icon.svg) no-repeat center;z-index:2;width:24px;content:\"\";height:24px;position:absolute;top:0;right:0}::ng-deep .flashing-expand img{max-height:40px;max-width:40px}::ng-deep .flashing-expand.flashing-open:after{background:url(\"data:image/svg+xml,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 width%3D%2224%22 height%3D%2224%22 viewBox%3D%220 0 24 24%22%3E%0D %3Cg id%3D%22Group_14477%22 data-name%3D%22Group 14477%22 transform%3D%22translate(-5533.5 11452.992)%22%3E%0D %3Cg id%3D%22Group_14476%22 data-name%3D%22Group 14476%22%3E%0D %3Cg id%3D%22Group_14475%22 data-name%3D%22Group 14475%22 transform%3D%22translate(5164.5 -12321.992)%22%3E%0D %3Crect id%3D%22Rectangle_1116%22 data-name%3D%22Rectangle 1116%22 width%3D%2224%22 height%3D%2224%22 transform%3D%22translate(369 869)%22 fill%3D%22%23fff%22%2F%3E%0D %3C%2Fg%3E%0D %3Cpath id%3D%22Path_11366%22 data-name%3D%22Path 11366%22 d%3D%22M142.587%2C65.954v4.569a1.963%2C1.963%2C0%2C0%2C1-1.839%2C2.068H127.833a1.965%2C1.965%2C0%2C0%2C1-1.839-2.068V58.066A1.963%2C1.963%2C0%2C0%2C1%2C127.833%2C56h4.8a.83.83%2C0%2C1%2C1%2C0%2C1.659h-4.505a.516.516%2C0%2C0%2C0-.472.553V70.378a.521.521%2C0%2C0%2C0%2C.472.553h12.33a.516.516%2C0%2C0%2C0%2C.472-.553V65.954a.83.83%2C0%2C1%2C1%2C1.659%2C0Z%22 transform%3D%22translate(5411.209 -11505.287)%22 fill-rule%3D%22evenodd%22%2F%3E%0D %3C%2Fg%3E%0D %3Cpath id%3D%22Path_11367%22 data-name%3D%22Path 11367%22 d%3D%22M26.413%2C4.5H21.5a.607.607%2C0%2C0%2C0-.608.608v.009a.607.607%2C0%2C0%2C0%2C.608.608h3.4l-5.091%2C5.126a.608.608%2C0%2C0%2C0%2C.858.862l5.126-5.1v3.4a.607.607%2C0%2C0%2C0%2C.608.608h.009a.607.607%2C0%2C0%2C0%2C.608-.608V5.108A.607.607%2C0%2C0%2C0%2C26.413%2C4.5Z%22 transform%3D%22translate(5526.775 -11453.789)%22%2F%3E%0D %3C%2Fg%3E%0D%3C%2Fsvg%3E%0D\") no-repeat center}#imageModal.show{display:flex!important;vertical-align:middle!important;align-items:center!important}#imageModal.show .modal-header{justify-content:right;border:none}#imageModal.show .modal-body{text-align:center;vertical-align:middle;margin:0 auto}#imageModal.show .modal-body img{max-width:100%;max-height:80vh}.flashing-block{background-color:#e8e8e8;padding:12px;border-bottom:1px solid #C6C6C6}.flashing-block .flash-title{font-size:var(--fontsize16);font-family:\"Arial Bold\",sans-serif}.flashing-block .skuId{color:#707070;font-size:var(--fontsize14);font-family:\"Arial Bold\",sans-serif}.flashing-block .gst-text{display:block;font-size:var(--fontsize16);font-family:\"Arial Regular\",sans-serif}\n"], components: [{ type: i2.MediaComponent, selector: "cx-media", inputs: ["container", "format", "alt", "role", "loading"], outputs: ["loaded"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], pipes: { "async": i3.AsyncPipe, "date": i3.DatePipe, "slice": i3.SlicePipe, "number": i3.DecimalPipe } });
|
|
151
|
+
OrderDetailListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: OrderDetailListComponent, deps: [{ token: i1.CartService }, { token: i2.UserAccountDetailServiceService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
152
|
+
OrderDetailListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: OrderDetailListComponent, selector: "app-order-detail-list", inputs: { cartDetails: "cartDetails", sortByVal: "sortByVal", orderDate: "orderDate", isCardData: "isCardData" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"loading\" *ngIf=\"showWaitCursor | async\">Loading…</div>\r\n<div class=\"revieworder-table-container py-3\">\r\n <table class=\"w-100 table\">\r\n <tr class=\"revieworder-header-container\">\r\n <th>#</th>\r\n <th class=\"item\">ITEM</th>\r\n <th>JOB REFERENCE</th>\r\n <th>DELIVERY DATE</th>\r\n <th>QUANTITY ORDERED</th>\r\n <th class=\"colHD\">\r\n <div class=\"text-right\">TOTAL PRICE</div>\r\n <span class=\"text-right\">excl GST</span>\r\n </th>\r\n <th>STATUS</th>\r\n </tr>\r\n <ng-container *ngIf=\"cartDetails.length; else nodata\">\r\n <ng-container *ngFor=\"let cart of cartDetails; let i = index\">\r\n <tr\r\n class=\"revieworder-body-container\"\r\n [ngClass]=\"\r\n !hasColour(cart) && cart?.product?.finishedProduct\r\n ? 'borderNew'\r\n : ''\r\n \"\r\n >\r\n <td>\r\n <ng-container *ngIf=\"cart.entryNumber.length > 9; else entryId\">{{\r\n cart.entryNumber\r\n }}</ng-container>\r\n <ng-template #entryId>0{{ cart.entryNumber + 1 }}</ng-template>\r\n </td>\r\n <td>\r\n <div class=\"row product-image-container\">\r\n <div class=\"col-sm-4 col-lg-2 p-2 product-img\">\r\n <ng-container\r\n *ngIf=\"\r\n cartDetails[i]?.product?.flashingProduct;\r\n else normalImage\r\n \"\r\n >\r\n <a\r\n data-toggle=\"modal\"\r\n class=\"flashing-expand\"\r\n (click)=\"viewImage($event, cartDetails[i])\"\r\n [attr.data-target]=\"'#imageModal'\"\r\n *ngIf=\"hasImage(cartDetails[i]); else hasPdf\"\r\n >\r\n <cx-media\r\n [container]=\"getImageDetails(cartDetails[i])\"\r\n format=\"cartIcon\"\r\n role=\"presentation\"\r\n ></cx-media>\r\n </a>\r\n <ng-template #hasPdf>\r\n <a\r\n class=\"flashing-expand flashing-open\"\r\n [href]=\"getPdfLink(cartDetails[i])\"\r\n target=\"_blank\"\r\n >\r\n <img\r\n class=\"pdf-icon\"\r\n src=\"../../../../../assets/images/pdf-icon.svg\"\r\n alt=\"Click to open PDF\"\r\n title=\"Click to open PDF\"\r\n />\r\n </a>\r\n </ng-template>\r\n </ng-container>\r\n <ng-template #normalImage>\r\n <cx-media\r\n [container]=\"getImageDetails(cartDetails[i])\"\r\n format=\"cartIcon\"\r\n role=\"presentation\"\r\n ></cx-media>\r\n </ng-template>\r\n </div>\r\n <div class=\"col-sm-8 col-lg-10\">\r\n <p class=\"reviewproduct-name mb-2\">{{ cart?.product?.name }}</p>\r\n <p class=\"sku-text mb-0\">SKU: {{ cart?.product?.code }}</p>\r\n </div>\r\n </div>\r\n </td>\r\n <td>{{ cart?.jobReference || \"-\" }}</td>\r\n <td>{{ orderDate | date : \"dd/MM/yyyy\" }}</td>\r\n <td>\r\n {{ cart.quantityDouble }} {{ cart?.unit?.code }}<br />\r\n <span *ngIf=\"isOrderPermissions\" class=\"subPrice\"\r\n >@ {{ cart?.totalPrice?.formattedValue }}/{{\r\n cart?.totalPrice?.unitType\r\n }}</span\r\n >\r\n </td>\r\n <td>\r\n {{ cart?.totalPrice?.formattedValue || \"-\" }}\r\n <span *ngIf=\"isOrderPermissions\" class=\"d-block\">excl GST</span>\r\n </td>\r\n <td class=\"statusColm\">\r\n <small\r\n class=\"statusColor\"\r\n [ngStyle]=\"{\r\n 'background-color':\r\n cart?.status == 'CREATED'\r\n ? '#F3A931'\r\n : cart?.status == 'APPROVED'\r\n ? '#f26522'\r\n : cart?.status == 'PROCESSING'\r\n ? '#75578A'\r\n : cart?.status == 'READY'\r\n ? '#496471'\r\n : cart?.status == 'DELIVERING'\r\n ? '#00ACBD'\r\n : cart?.status == 'COMPLETED'\r\n ? '#8DC440'\r\n : cart?.status == 'RETURNED'\r\n ? '#8DC440'\r\n : cart?.status == 'CANCELLED'\r\n ? '#000000'\r\n : ''\r\n }\"\r\n ></small>\r\n {{ cart?.statusDisplay || \"-\" }}\r\n </td>\r\n </tr>\r\n <ng-container *ngIf=\"cart?.product?.classifications\">\r\n <tr class=\"revieworder-body-container\">\r\n <td colspan=\"9\">\r\n <span *ngIf=\"cart?.product?.classifications[0]?.features\">\r\n {{ getClassifications(cartDetails[i]?.product?.classifications) }}\r\n \r\n </span> \r\n </td>\r\n </tr>\r\n </ng-container>\r\n <tr\r\n class=\"revieworder-body-container borderNew\"\r\n *ngIf=\"!cart?.configurationInfos?.length && hasColour(cart)\"\r\n >\r\n <td colspan=\"9\">\r\n <p class=\"colors-paragraph mb-0\">\r\n <span\r\n class=\"revieworder-color mr-3\"\r\n [ngStyle]=\"{ background: cart?.colour?.hexadecimalCode }\"\r\n ></span>\r\n {{ cart?.colour?.name }}\r\n </p>\r\n </td>\r\n </tr>\r\n <tr\r\n class=\"revieworder-body-container\"\r\n *ngIf=\"cart?.configurationInfos.length\"\r\n [ngClass]=\"cart?.configurationInfos.length ? 'borderNew' : ''\"\r\n >\r\n <td colspan=\"9\">\r\n <ng-container\r\n *ngIf=\"cart?.configurationInfos.length; else accessoriesColor\"\r\n >\r\n <p\r\n class=\"colors-paragraph mb-0\"\r\n *ngIf=\"!cart?.product?.flashingProduct; else flashingColour\"\r\n >\r\n <span\r\n class=\"revieworder-color mr-3\"\r\n [ngStyle]=\"{\r\n background:\r\n cart?.configurationInfos[0]?.configurationValue.split('|')\r\n | slice : 2\r\n }\"\r\n ></span>\r\n {{\r\n cart?.configurationInfos[0]?.configurationValue.split(\"|\")\r\n | slice : 1 : 2\r\n }}\r\n </p>\r\n <ng-template #flashingColour>\r\n <p class=\"colors-paragraph mb-0\">\r\n <span\r\n class=\"revieworder-color mr-3\"\r\n [ngStyle]=\"{\r\n background: getColourDetails(\r\n cartDetails[i]?.configurationInfos,\r\n 'background'\r\n )\r\n }\"\r\n ></span>\r\n {{\r\n getColourDetails(cartDetails[i]?.configurationInfos, \"name\")\r\n }}\r\n </p>\r\n </ng-template>\r\n </ng-container>\r\n <ng-template #accessoriesColor>\r\n <p class=\"colors-paragraph my-2\" *ngIf=\"hasColour(cart)\">\r\n <span\r\n class=\"revieworder-color mr-2\"\r\n [ngStyle]=\"{\r\n background: cart?.colour?.hexadecimalCode\r\n }\"\r\n ></span>\r\n {{ cart?.colour?.name }}\r\n </p>\r\n </ng-template>\r\n <ng-container *ngIf=\"cart?.subLineConfigInfos.length > 0\">\r\n <p class=\"m-0\">\r\n <a\r\n href=\"javascript:void(0)\"\r\n (click)=\"showHide(i)\"\r\n class=\"see-more-link\"\r\n >\r\n {{ showDetails[i] == true ? \"Hide\" : \"See\" }} more details\r\n </a>\r\n </p>\r\n <div class=\"revieworder-collapse\" *ngIf=\"showDetails[i]\">\r\n <div class=\"row\">\r\n <div class=\"col-sm-6 bundle-details\">\r\n <div class=\"row bundle-details-header\">\r\n <div class=\"col-3\">Quantity</div>\r\n <div class=\"col-3\">Length (LM)</div>\r\n <ng-container\r\n *ngIf=\"cart?.subLineConfigInfos[i]?.bundleName\"\r\n >\r\n <div class=\"col-3\">Bundle</div>\r\n <div class=\"col-3\">Reference</div>\r\n </ng-container>\r\n </div>\r\n <div\r\n class=\"row\"\r\n *ngFor=\"let subLine of cart?.subLineConfigInfos\"\r\n >\r\n <div class=\"col-3\">{{ subLine?.quantity }}</div>\r\n <div class=\"col-3\">\r\n {{ subLine?.length | number : \"0.3-3\" }}\r\n </div>\r\n <ng-container *ngIf=\"subLine?.bundleName\">\r\n <div class=\"col-3\">{{ subLine?.bundleName }}</div>\r\n <div class=\"col-3\">{{ subLine?.reference }}</div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td colspan=\"9\" class=\"p-0\">\r\n <div\r\n *ngIf=\"\r\n cartDetails[i]?.product?.flashingProduct &&\r\n cartDetails[i]?.productConfiguredInfos\r\n \"\r\n >\r\n <div\r\n class=\"flashing-block\"\r\n *ngFor=\"let data of cartDetails[i]?.productConfiguredInfos\"\r\n >\r\n <div class=\"row\">\r\n <div class=\"col-sm-3\">\r\n <h3 class=\"flash-title\">{{ data?.product?.name }}</h3>\r\n <h6 class=\"skuId\">SKU: {{ data?.product?.code }}</h6>\r\n <span *ngIf=\"data?.girth\">Grith: +{{ data.girth }}mm </span>\r\n </div>\r\n <div class=\"offset-sm-3 col-sm-2\">\r\n {{ data?.quantityDouble }} {{ data?.unitType }}\r\n </div>\r\n <div class=\"col-sm-2\">\r\n {{ data?.basePrice?.formattedValue || \"-\"\r\n }}<span *ngIf=\"isOrderPermissions\"\r\n >/{{ data?.unitType }}</span\r\n >\r\n </div>\r\n <div class=\"col-sm-2\">\r\n {{ data?.totalPrice?.formattedValue || \"-\" }}\r\n <span *ngIf=\"isOrderPermissions\" class=\"gst-text\"\r\n >excl GST</span\r\n >\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </td>\r\n </tr>\r\n </ng-container>\r\n </ng-container>\r\n <ng-template #nodata>\r\n <tr class=\"revieworder-body-container\">\r\n <td colspan=\"7\" class=\"text-center\">{{ noRecord }}</td>\r\n </tr>\r\n </ng-template>\r\n </table>\r\n</div>\r\n<div\r\n class=\"modal fade\"\r\n id=\"imageModal\"\r\n role=\"dialog\"\r\n aria-labelledby=\"imageModal\"\r\n aria-hidden=\"true\"\r\n #imageModal\r\n>\r\n <div class=\"modal-dialog modal-lg\" role=\"document\">\r\n <div class=\"modal-content\">\r\n <div class=\"modal-header\">\r\n <i\r\n class=\"icon-close invite-pop-close\"\r\n #closeInviteModal\r\n data-dismiss=\"modal\"\r\n aria-label=\"Close\"\r\n ></i>\r\n </div>\r\n <div class=\"modal-body m-4\">\r\n <img [src]=\"imageModalSrc\" alt=\"alert\" />\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";@media screen and (min-width: 1366px){:root{--fontsize12: .75rem;--fontsize14: .875rem;--fontsize16: 1rem;--fontsize17: 1.063rem;--fontsize17-5: 1.1rem;--fontsize18: 1.125rem;--fontsize18-4: 1.5rem;--fontsize20: 1.25rem;--fontsize21: 1.313rem;--fontsize22: 1.375rem;--fontsize23: 1.438rem;--fontsize24: 1.5rem;--fontsize26: 1.625rem;--fontsize28: 1.75rem;--fontsize30: 1.625rem;--fontsize32: 2rem;--fontsize34: 2.125rem;--fontsize36: 2rem;--fontsize40: 2.25rem;--fontsize46: 2.875rem;--fontsize80: 5rem}}@media screen and (max-width: 1365px) and (min-width: 768px){:root{--fontsize12: .75rem;--fontsize14: .875rem;--fontsize16: 1rem;--fontsize17: .9rem;--fontsize17-5: 1rem;--fontsize18: .875rem;--fontsize20: 1rem;--fontsize21: 1.063rem;--fontsize22: 1.125rem;--fontsize23: 1.188rem;--fontsize24: 1rem;--fontsize28: 1.5rem;--fontsize30: 1.25rem;--fontsize32: 1.75rem;--fontsize34: 1.875rem;--fontsize36: 1.625rem;--fontsize40: 2.5rem;--fontsize46: 2.875rem;--fontsize80: 3.5rem}}@media screen and (max-width: 767px){:root{--fontsize12: .75rem;--fontsize14: .875rem;--fontsize16: 1rem;--fontsize16-5: .77rem;--fontsize17: .9rem;--fontsize17-5: 1rem;--fontsize18: .875rem;--fontsize19: .938rem;--fontsize20: 1rem;--fontsize21: 1.063rem;--fontsize22: 1.125rem;--fontsize23: 1.188rem;--fontsize24: 1rem;--fontsize26: 1.25rem;--fontsize28: 1.5rem;--fontsize30: 1.25rem;--fontsize32: 1.75rem;--fontsize34: 1.875rem;--fontsize36: 1.625rem;--fontsize40: 2.5rem;--fontsize46: 2rem;--fontsize80: 2.5rem}}@font-face{font-family:icomoon;font-weight:400;src:url(../assets/fonts/icomoon.ttf) format(\"ttf\"),url(../assets/fonts/icomoon.woff) format(\"woff\");font-weight:normal;font-style:normal;font-display:swap}@font-face{font-family:\"Arial Regular\";src:url(../assets/fonts/arial-webfont.woff) format(\"woff\"),url(../assets/fonts/arial-webfont.woff2) format(\"woff2\");font-weight:normal;font-style:normal}@font-face{font-family:\"Arial Bold\";src:url(../assets/fonts/arialbold-webfont.woff) format(\"woff\"),url(../assets/fonts/arialbold-webfont.woff2) format(\"woff2\");font-weight:normal;font-style:normal}@font-face{font-family:\"Arial Black\";src:url(../assets/fonts/arialblack-webfont.woff) format(\"woff\"),url(../assets/fonts/arialblack-webfont.woff2) format(\"woff2\");font-weight:normal;font-style:normal}@font-face{font-family:\"Helvetica Neue Reqular\";src:url(../assets/fonts/helveticaneue.woff) format(\"woff\"),url(../assets/fonts/helveticaneue.woff2) format(\"woff2\");font-weight:normal;font-style:normal}@font-face{font-family:\"Helvetica Neue Thin\";src:url(../assets/fonts/helveticaneuethin-webfont.woff) format(\"woff\"),url(../assets/fonts/helveticaneuethin-webfont.woff2) format(\"woff2\");font-weight:normal;font-style:normal}@font-face{font-family:\"Helvetica Neue Medium\";src:url(../assets/fonts/helveticaneuemedium-webfont.woff) format(\"woff\"),url(../assets/fonts/helveticaneuemedium-webfont.woff2) format(\"woff2\");font-weight:normal;font-style:normal}[class*=\" icon-\"],[class^=icon-]{font-family:icomoon!important;font-feature-settings:normal;font-variant:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-style:normal;font-weight:400;line-height:1;text-transform:none;font-display:swap}.icon-right:before{content:\"\\e902\"}.icon-materials:before{content:\"\\e900\"}.icon-natural-lighting:before{content:\"\\e90a\"}.icon-rainwater:before{content:\"\\e901\"}.icon-roofing:before{content:\"\\e90b\"}.icon-flashing{position:relative;display:inline-block;height:32px;text-align:center;width:32px}.icon-flashing:before,.mainnav-link-level-2.show .navTagChild .icon-flashing:before{content:url(../assets/images/icon-flashing-white.svg);height:20px;width:20px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);line-height:15px}li.megamenuSubChild:hover .icon-flashing:before{content:url(../assets/images/icon-flashing-black.svg)}.icon-structural:before{content:\"\\e90c\"}.icon-accessories-old .path1:before{content:\"\\e903\"}.icon-accessories-old .path2:before{margin-left:-1em;content:\"\\e904\"}.icon-accessories-old .path3:before{margin-left:-1em;content:\"\\e905\"}.icon-cladding-old .path1:before{content:\"\\e90d\"}.icon-cladding-old .path2:before{margin-left:-1em;content:\"\\e90e\"}.icon-close:before{content:\"\\e90f\"}.icon-message:before{content:\"\\e910\"}.icon-search .path1:before{content:\"\\e906\"}.icon-search .path2:before{content:\"\\e907\"}.icon-search .path3:before{margin-left:-1.0156em;content:\"\\e908\"}.icon-summary:before{content:\"\\e911\"}.icon-branch:before{content:\"\\e912\"}.icon-delivery:before{content:\"\\e913\"}.icon-downloads:before{content:\"\\e909\"}.icon-drawings:before{content:\"\\e914\"}.icon-full:before{content:\"\\e915\"}.icon-manual:before{content:\"\\e916\"}.icon-payment:before{content:\"\\e917\"}.icon-empty .path1:before{content:\"\\e918\"}.icon-empty .path2:before{margin-left:-1em;content:\"\\e919\"}.icon-empty .path3:before{margin-left:-1em;content:\"\\e91a\"}.icon-product-overview:before{content:\"\\e91b\"}.icon-arrows:before{content:\"\\e91c\"}.icon-selected:before{content:\"\\e91d\"}.icon-accessories:before{content:\"\\e91b\"}.icon-cladding:before{content:\"\\e91e\"}.icon-Triangle:before{content:\"\\e91f\"}.icon-home:before{content:\"\\e920\"}.icon-faq:before{content:\"\\e921\"}.icon-temperature:before{content:\"\\e922\"}body header{font-family:\"Arial Regular\",sans-serif}header{background-color:#1d1d1b;position:sticky;top:0;background-size:100% 25%!important;background-repeat:no-repeat;z-index:10}header .header{max-width:100%;padding:0}header cx-banner cx-media img{margin-top:.7rem;margin-bottom:0}header label{display:inline-flex}header .SiteLinks{height:52px;display:flex;align-items:center;justify-content:space-between;padding-top:5px;padding-bottom:5px}header .SiteLinks cx-paragraph p{color:#fff;font-size:var(--fontsize16);line-height:var(--fontsize16);margin-bottom:0}header .SiteLinks cx-paragraph{font-size:var(--fontsize16)}header .SiteLinks app-account-dropdown,header .SiteLinks app-find-store{width:calc(25% - 25px);max-width:328px;margin-right:25px}header .SiteLinks app-contact-us{width:calc(20% - 25px);max-width:100px;margin-left:auto}header .SiteLinks app-custom-mini-cart{width:10%}header .SiteLinks .preferenceLink{margin-left:auto}header .SiteLinks .preferenceLink cx-generic-link{margin:0}header .SiteLinks .preferenceLink cx-generic-link cx-media img{height:22px;margin:0}header .SiteLogo .storeLogo{position:absolute;z-index:99;left:40px;bottom:10px}header .SiteLogo .homeLogo{max-width:28px;height:28px;position:absolute;z-index:99;bottom:47px}header .NavigationBar{flex:70%;background-color:#b61828;min-height:40px;display:flex;align-items:center;position:relative}header .logoutMenu{margin-top:0!important}header .logoutMenu li{cursor:pointer;background-color:#4c4c4c;color:#fff}header .logoutMenu li:hover{text-decoration:underline;background-color:#4c4c4c}header .MarketingContext{width:100%;margin:auto}.customer-service-icon{cursor:pointer}.helpSupport{width:20rem;border:0;margin-top:.5rem!important;transform:translate(-42%,36px)!important;padding:1rem 1rem 0;background-color:#393939;color:#fff;top:0}.helpSupport .arrow-up{position:absolute;top:-8px;right:44%;width:0;height:0;border-left:15px solid rgba(0,0,0,0);border-right:15px solid rgba(0,0,0,0);border-bottom:15px solid #393939}.helpSupport .contact-us-info .heading{font-family:\"Arial Bold\",sans-serif}.helpSupport .contact-us-info .detail{font-size:var(--fontsize14);line-height:2rem}.helpSupport .contact-us-info .detail .service-icon{height:20px;width:20px;margin-right:10px}.helpSupport .contact-us-info .contactLink a{font-size:var(--fontsize14);text-decoration:underline;text-transform:uppercase}.helpSupport .contact-us-info a{color:#fff;text-decoration:none}.helpSupport .contact-us-info a:hover{text-decoration:underline}.pageTitle{font-family:\"Helvetica Neue Regular\",sans-serif;font-size:var(--fontsize54)}#visualization-container{text-align:center;margin:0 auto}#cds-viewer-container-3d{width:320px;height:200px}#cds-viewer-container-2d{width:320px;height:200px}[aria-label=Close]{cursor:pointer}cx-media.is-missing{background:url(./assets/images/search-noimage.svg);background-size:cover;background-position:center;background-repeat:no-repeat}cx-global-message{position:fixed;top:9rem;width:100%;z-index:13}@media screen and (max-width: 991px){cx-global-message{top:3.75rem}cx-storefront header{background-color:#b61828}cx-storefront header cx-banner cx-media img{margin:auto}cx-storefront header .SiteLogo{width:100%;max-width:211px;margin:auto;padding-left:30px;box-sizing:border-box}cx-storefront header .SiteLogo .storeLogo{position:unset}cx-storefront header .SearchBox{margin:14px 0 10px;width:30px}cx-storefront header .SiteLinks{background-color:transparent;width:110px;margin:auto 25px auto 0}cx-storefront header .SiteLinks app-account-dropdown,cx-storefront header .SiteLinks app-find-store,cx-storefront header .SiteLinks app-contact-us,cx-storefront header .SiteLinks cx-paragraph,cx-storefront header .SiteLinks .preferenceLink{display:none}cx-storefront header .SiteLinks app-custom-mini-cart,cx-storefront header .SiteLinks app-custom-user-account{width:35px}cx-storefront header.is-expanded{overflow-y:auto;position:fixed;bottom:0;top:0;width:calc(100% - 99px)}cx-storefront header.is-expanded .header{background-color:#b61828;margin-left:0}cx-storefront header.is-expanded .PreHeader{position:absolute;right:15px;top:15px}cx-storefront header.is-expanded .SearchBox{display:none}cx-storefront header.is-expanded .SiteLogo{position:absolute;top:25px;z-index:9}cx-storefront header.is-expanded .SiteLinks{background-color:#1d1d1b;width:100%;margin:15px auto 15px 0;height:unset;padding:15px;max-width:100%;position:relative;z-index:9;top:60px}cx-storefront header.is-expanded .SiteLinks app-account-dropdown,cx-storefront header.is-expanded .SiteLinks app-find-store,cx-storefront header.is-expanded .SiteLinks app-contact-us,cx-storefront header.is-expanded .SiteLinks cx-paragraph,cx-storefront header.is-expanded .SiteLinks .preferenceLink{display:block}cx-storefront header.is-expanded .SiteLinks app-custom-mini-cart,cx-storefront header.is-expanded .SiteLinks app-custom-user-account{display:none}cx-storefront header.is-expanded .SiteLinks app-account-dropdown{width:100%;max-width:100%}cx-storefront header.is-expanded .SiteLinks app-find-store{width:50%;max-width:328px;min-width:328px}cx-storefront header.is-expanded .SiteLinks app-contact-us{margin-right:15px;margin-left:auto;width:115px;max-width:unset}cx-storefront header.is-expanded .navigation{position:relative;top:45px}cx-storefront header.is-expanded:before{background-color:#0000004d;right:0;content:\"\";position:fixed;z-index:2;top:0;bottom:0;height:100vh;width:99px}cx-storefront header.is-expanded:after{background-color:transparent}}@media screen and (max-width: 576px){cx-storefront header .SiteLogo{max-width:80px}cx-storefront header .SiteLogo .storeLogo{display:none}cx-storefront header .searchBox{height:45px}cx-storefront header.is-expanded{width:100%}cx-storefront header.is-expanded .header,cx-storefront header.is-expanded .navigation{width:100%}cx-storefront header.is-expanded .SiteLogo{max-width:211px!important}cx-storefront header.is-expanded .SiteLogo .storeLogo{display:block}cx-storefront header.is-expanded .SiteLinks{max-width:100%;width:100%}cx-storefront header.is-expanded .SiteLinks app-account-dropdown,cx-storefront header.is-expanded .SiteLinks app-find-store,cx-storefront header.is-expanded .SiteLinks app-contact-us,cx-storefront header.is-expanded .SiteLinks cx-paragraph,cx-storefront header.is-expanded .SiteLinks .preferenceLink{display:block}cx-storefront header.is-expanded .SiteLinks app-custom-mini-cart,cx-storefront header.is-expanded .SiteLinks app-custom-user-account{display:none}cx-storefront header.is-expanded .SiteLinks app-find-store{width:100%;max-width:100%;margin-bottom:10px}cx-storefront header.is-expanded .SiteLinks app-contact-us{margin-left:0}cx-storefront header.is-expanded .SiteLinks cx-paragraph{margin-left:auto}cx-storefront header.is-expanded:before{display:none}.pageTitle{font-size:28px}}.table{color:#1d1d1b;background:#ffffff}.table td{border:0;vertical-align:top!important}.revieworder-table-container{padding-bottom:15rem}.revieworder-table-container .revieworder-header-container{background:#646363;color:#fff;font-family:\"Arial Bold\",sans-serif}.revieworder-table-container .revieworder-header-container th{vertical-align:middle!important}.revieworder-table-container .revieworder-header-container .colHD{width:120px;font-size:14px;display:flex;flex-direction:column;align-self:center;line-height:18px}.revieworder-table-container .revieworder-header-container .colHD span{text-align:right;display:block;font-size:12px}.revieworder-table-container .revieworder-header-container .item{width:350px}.revieworder-table-container .product-img{width:50px;height:50px;border:1px solid #E0E0E0;min-width:50px}.revieworder-table-container .product-img cx-media{top:-1px}.revieworder-table-container .borderNew{border-bottom:1px solid #E0E0E0}.revieworder-table-container .statusColm{width:140px}.revieworder-table-container .statusColor{display:inline-block;width:12px;height:12px;border-radius:50%}.revieworder-table-container .subPrice{color:#707070}.revieworder-table-container .revieworder-body-container{padding-bottom:1rem}.revieworder-table-container .revieworder-body-container .product-image-container{display:flex}.revieworder-table-container .revieworder-body-container .product-image-container .reviewproduct-image{width:71px;height:71px}.revieworder-table-container .revieworder-body-container .product-image-container .reviewproduct-name{font-family:\"Arial Bold\",sans-serif}.revieworder-table-container .revieworder-body-container .product-image-container .sku-text{font-size:var(--fontsize14);font-family:\"Arial Bold\",sans-serif;color:#6f6f6f}.revieworder-table-container .revieworder-body-container .see-more-link{text-decoration:underline}.revieworder-table-container .revieworder-body-container .see-more-link:hover{color:#d51317}.revieworder-table-container .revieworder-body-container .seemoredetails-link{font-size:var(--fontsize16);font-family:\"Arial Regular\",sans-serif;text-decoration:underline;cursor:pointer}.revieworder-table-container .revieworder-body-container .seemoredetails-link:hover{color:#b61828}.revieworder-table-container .revieworder-body-container .revieworder-collapse .bundle-details{background:#F6F6F6;border:1px solid #E0E0E0;margin-left:15px;padding:1rem;line-height:2.5rem}.revieworder-table-container .revieworder-body-container .revieworder-collapse .bundle-details .bundle-details-header{font-family:\"Arial Bold\",sans-serif}.revieworder-table-container .colors-paragraph{display:flex;align-items:center}.revieworder-table-container .colors-paragraph .revieworder-color{width:20px;height:20px;border:1px solid #000000;display:inline-flex}::ng-deep .flashing-expand{cursor:pointer}::ng-deep .flashing-expand:after{background:url(../../../../assets/images/expand-icon.svg) no-repeat center;z-index:2;width:24px;content:\"\";height:24px;position:absolute;top:0;right:0}::ng-deep .flashing-expand img{max-height:40px;max-width:40px}::ng-deep .flashing-expand.flashing-open:after{background:url(\"data:image/svg+xml,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 width%3D%2224%22 height%3D%2224%22 viewBox%3D%220 0 24 24%22%3E%0D %3Cg id%3D%22Group_14477%22 data-name%3D%22Group 14477%22 transform%3D%22translate(-5533.5 11452.992)%22%3E%0D %3Cg id%3D%22Group_14476%22 data-name%3D%22Group 14476%22%3E%0D %3Cg id%3D%22Group_14475%22 data-name%3D%22Group 14475%22 transform%3D%22translate(5164.5 -12321.992)%22%3E%0D %3Crect id%3D%22Rectangle_1116%22 data-name%3D%22Rectangle 1116%22 width%3D%2224%22 height%3D%2224%22 transform%3D%22translate(369 869)%22 fill%3D%22%23fff%22%2F%3E%0D %3C%2Fg%3E%0D %3Cpath id%3D%22Path_11366%22 data-name%3D%22Path 11366%22 d%3D%22M142.587%2C65.954v4.569a1.963%2C1.963%2C0%2C0%2C1-1.839%2C2.068H127.833a1.965%2C1.965%2C0%2C0%2C1-1.839-2.068V58.066A1.963%2C1.963%2C0%2C0%2C1%2C127.833%2C56h4.8a.83.83%2C0%2C1%2C1%2C0%2C1.659h-4.505a.516.516%2C0%2C0%2C0-.472.553V70.378a.521.521%2C0%2C0%2C0%2C.472.553h12.33a.516.516%2C0%2C0%2C0%2C.472-.553V65.954a.83.83%2C0%2C1%2C1%2C1.659%2C0Z%22 transform%3D%22translate(5411.209 -11505.287)%22 fill-rule%3D%22evenodd%22%2F%3E%0D %3C%2Fg%3E%0D %3Cpath id%3D%22Path_11367%22 data-name%3D%22Path 11367%22 d%3D%22M26.413%2C4.5H21.5a.607.607%2C0%2C0%2C0-.608.608v.009a.607.607%2C0%2C0%2C0%2C.608.608h3.4l-5.091%2C5.126a.608.608%2C0%2C0%2C0%2C.858.862l5.126-5.1v3.4a.607.607%2C0%2C0%2C0%2C.608.608h.009a.607.607%2C0%2C0%2C0%2C.608-.608V5.108A.607.607%2C0%2C0%2C0%2C26.413%2C4.5Z%22 transform%3D%22translate(5526.775 -11453.789)%22%2F%3E%0D %3C%2Fg%3E%0D%3C%2Fsvg%3E%0D\") no-repeat center}#imageModal.show{display:flex!important;vertical-align:middle!important;align-items:center!important}#imageModal.show .modal-header{justify-content:right;border:none}#imageModal.show .modal-body{text-align:center;vertical-align:middle;margin:0 auto}#imageModal.show .modal-body img{max-width:100%;max-height:80vh}.flashing-block{background-color:#e8e8e8;padding:12px;border-bottom:1px solid #C6C6C6}.flashing-block .flash-title{font-size:var(--fontsize16);font-family:\"Arial Bold\",sans-serif}.flashing-block .skuId{color:#707070;font-size:var(--fontsize14);font-family:\"Arial Bold\",sans-serif}.flashing-block .gst-text{display:block;font-size:var(--fontsize16);font-family:\"Arial Regular\",sans-serif}\n"], components: [{ type: i3.MediaComponent, selector: "cx-media", inputs: ["container", "format", "alt", "role", "loading"], outputs: ["loaded"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i4.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], pipes: { "async": i4.AsyncPipe, "date": i4.DatePipe, "slice": i4.SlicePipe, "number": i4.DecimalPipe } });
|
|
87
153
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: OrderDetailListComponent, decorators: [{
|
|
88
154
|
type: Component,
|
|
89
155
|
args: [{
|
|
90
|
-
selector:
|
|
91
|
-
templateUrl:
|
|
92
|
-
styleUrls: [
|
|
156
|
+
selector: "app-order-detail-list",
|
|
157
|
+
templateUrl: "./order-detail-list.component.html",
|
|
158
|
+
styleUrls: ["./order-detail-list.component.scss"],
|
|
93
159
|
}]
|
|
94
|
-
}], ctorParameters: function () { return [{ type: i1.CartService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { cartDetails: [{
|
|
160
|
+
}], ctorParameters: function () { return [{ type: i1.CartService }, { type: i2.UserAccountDetailServiceService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { cartDetails: [{
|
|
95
161
|
type: Input
|
|
96
162
|
}], sortByVal: [{
|
|
97
163
|
type: Input
|
|
@@ -100,4 +166,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
100
166
|
}], isCardData: [{
|
|
101
167
|
type: Input
|
|
102
168
|
}] } });
|
|
103
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXItZGV0YWlsLWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYnVpbGRpbmdwcm9kdWN0X2xpYnJhcnkvc3JjL2xpYi9jdXN0b20tb3JkZXItZGV0YWlscy9vcmRlci1kZXRhaWwtbGlzdC9vcmRlci1kZXRhaWwtbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9idWlsZGluZ3Byb2R1Y3RfbGlicmFyeS9zcmMvbGliL2N1c3RvbS1vcmRlci1kZXRhaWxzL29yZGVyLWRldGFpbC1saXN0L29yZGVyLWRldGFpbC1saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBcUIsU0FBUyxFQUFnQixLQUFLLEVBQTRDLE1BQU0sZUFBZSxDQUFDO0FBQzVILE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7O0FBUXZDLE1BQU0sT0FBTyx3QkFBd0I7SUFZbkMsWUFBb0IsV0FBd0IsRUFDeEIsR0FBc0I7UUFEdEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFYMUMsZ0JBQVcsR0FBUSxFQUFFLENBQUM7UUFDYixnQkFBVyxHQUFNLEVBQUUsQ0FBQztRQUU3QixtQkFBYyxHQUFHLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBS3JELGdCQUFXLEdBQVEsY0FBYyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNqRCxRQUFHLEdBQVMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFFTSxDQUFDO0lBRWhELFFBQVE7SUFDUixDQUFDO0lBRUgsV0FBVyxDQUFDLE9BQXNCOztRQUNoQyxJQUFJLENBQUEsTUFBQSxPQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsV0FBVywwQ0FBRSxhQUFhLE1BQUksTUFBQSxPQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsV0FBVywwQ0FBRSxZQUFZLENBQUEsRUFBRTtZQUM3RSxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO1NBQzFCO1FBQ0QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDL0IsSUFBRyxNQUFBLElBQUksQ0FBQyxXQUFXLDBDQUFFLE1BQU0sRUFBQztZQUMxQixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQTtTQUNoQzthQUFJO1lBQ0gsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7WUFDL0IsSUFBSSxDQUFDLFFBQVEsR0FBQyxTQUFTLENBQUM7U0FDekI7UUFDRCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDaEQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDOUI7UUFDRCxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUM1QyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0JBQ2hELElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDO2FBQzVCO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0csMENBQTBDO0lBQzFDLGVBQWUsQ0FBQyxXQUFnQixFQUFFLFlBQWlCLElBQUk7O1FBQ3JELElBQUksUUFBUSxHQUFRLE1BQUEsV0FBVyxhQUFYLFdBQVcsdUJBQVgsV0FBVyxDQUFFLE9BQU8sMENBQUUsTUFBTSxDQUFDO1FBQ2pELElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNuQixRQUFRLEdBQUcsTUFBQSxNQUFBLFdBQVcsYUFBWCxXQUFXLHVCQUFYLFdBQVcsQ0FBRSxPQUFPLDBDQUFFLE1BQU0sMENBQUUsSUFBSSxDQUFDLENBQUMsR0FBUSxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsTUFBTSxJQUFJLFVBQVUsQ0FBQyxDQUFDO1NBQ3ZGO2FBQU07WUFDTCxRQUFRLEdBQUcsTUFBQSxNQUFBLE1BQUEsV0FBVyxhQUFYLFdBQVcsdUJBQVgsV0FBVyxDQUFFLE9BQU8sMENBQUUsTUFBTSwwQ0FBRSxPQUFPLDBDQUFFLFFBQVEsQ0FBQztTQUM1RDtRQUNELElBQUksTUFBVyxDQUFDO1FBQ2hCLElBQ0UsQ0FBQSxXQUFXLGFBQVgsV0FBVyx1QkFBWCxXQUFXLENBQUUsV0FBVzthQUN4QixNQUFBLFdBQVcsYUFBWCxXQUFXLHVCQUFYLFdBQVcsQ0FBRSxXQUFXLDBDQUFFLE1BQU0sQ0FBQTthQUNoQyxNQUFBLFdBQVcsYUFBWCxXQUFXLHVCQUFYLFdBQVcsQ0FBRSxPQUFPLDBDQUFFLGVBQWUsQ0FBQSxFQUNyQztZQUNBLE1BQU07Z0JBQ0osU0FBUyxJQUFJLENBQUEsTUFBQSxXQUFXLGFBQVgsV0FBVyx1QkFBWCxXQUFXLENBQUUsV0FBVywwQ0FBRSxNQUFNLElBQUcsQ0FBQztvQkFDL0MsQ0FBQyxDQUFDLE1BQUEsV0FBVyxhQUFYLFdBQVcsdUJBQVgsV0FBVyxDQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUMsMENBQUUsV0FBVztvQkFDMUMsQ0FBQyxDQUFDLE1BQUEsV0FBVyxhQUFYLFdBQVcsdUJBQVgsV0FBVyxDQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUMsMENBQUUsV0FBVyxDQUFDO1lBQy9DLFFBQVEsR0FBRztnQkFDVCxHQUFHLEVBQUUsTUFBQSxDQUNILElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztvQkFDNUQsTUFBTSxDQUNQLDBDQUFFLE9BQU8sQ0FBQyxrQkFBa0IsRUFBRSxFQUFFLENBQUM7YUFDbkMsQ0FBQztTQUNIO1FBQ0QsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQztJQUNILFFBQVEsQ0FBQyxHQUFXO1FBQ2xCLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFDRCxTQUFTLENBQUMsS0FBVSxFQUFFLFdBQWdCOztRQUNwQyxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLGFBQWEsR0FBRyxNQUFBLElBQUksQ0FBQyxlQUFlLENBQUMsV0FBVyxFQUFFLEtBQUssQ0FBQywwQ0FBRSxHQUFHLENBQUM7SUFDckUsQ0FBQztJQUVELFVBQVUsQ0FBQyxXQUFnQjs7UUFDekIsT0FBTyxNQUFBLElBQUksQ0FBQyxlQUFlLENBQUMsV0FBVyxFQUFFLEtBQUssQ0FBQywwQ0FBRSxHQUFHLENBQUM7SUFDdkQsQ0FBQztJQUVELFFBQVEsQ0FBQyxXQUFnQjs7UUFDdkIsTUFBTSxRQUFRLEdBQUcsTUFBQSxXQUFXLGFBQVgsV0FBVyx1QkFBWCxXQUFXLENBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQywwQ0FBRSxJQUFJLENBQUM7UUFDbkQsTUFBTSxTQUFTLEdBQUcsQ0FBQyxXQUFXLEVBQUUsV0FBVyxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBQzNELE9BQU8sU0FBUyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN0QyxDQUFDOztzSEFqRlUsd0JBQXdCOzBHQUF4Qix3QkFBd0Isb01DVHJDLHcvV0E4S007NEZEcktPLHdCQUF3QjtrQkFMcEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsdUJBQXVCO29CQUNqQyxXQUFXLEVBQUUsb0NBQW9DO29CQUNqRCxTQUFTLEVBQUUsQ0FBQyxvQ0FBb0MsQ0FBQztpQkFDbEQ7a0lBSVUsV0FBVztzQkFBbkIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUVHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IENhcnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY2FydC5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLW9yZGVyLWRldGFpbC1saXN0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vb3JkZXItZGV0YWlsLWxpc3QuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL29yZGVyLWRldGFpbC1saXN0LmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIE9yZGVyRGV0YWlsTGlzdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcclxuXHJcbiAgc2hvd0RldGFpbHM6IGFueSA9IFtdO1xyXG4gIEBJbnB1dCgpIGNhcnREZXRhaWxzOiBhbnk9W107XHJcbiAgQElucHV0KCkgc29ydEJ5VmFsOiBhbnk7XHJcbiAgc2hvd1dhaXRDdXJzb3IgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcclxuICBASW5wdXQoKSBvcmRlckRhdGU6YW55O1xyXG4gIEBJbnB1dCgpIGlzQ2FyZERhdGE6IGFueTtcclxuICBub1JlY29yZD86c3RyaW5nO1xyXG4gIGltYWdlTW9kYWxTcmM6IGFueTtcclxuICBlbnZpcm9ubWVudDogYW55ID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgnZW52Jyk7XHJcbiAgZW52IDogYW55ID0gSlNPTi5wYXJzZSh0aGlzLmVudmlyb25tZW50KTtcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNhcnRTZXJ2aWNlOiBDYXJ0U2VydmljZSxcclxuICAgICAgICAgICAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgfVxyXG5cclxubmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gIGlmIChjaGFuZ2VzPy5jYXJ0RGV0YWlscz8ucHJldmlvdXNWYWx1ZSAhPSBjaGFuZ2VzPy5jYXJ0RGV0YWlscz8uY3VycmVudFZhbHVlKSB7XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG4gIHRoaXMuc2hvd1dhaXRDdXJzb3IubmV4dCh0cnVlKTtcclxuICBpZih0aGlzLmNhcnREZXRhaWxzPy5sZW5ndGgpe1xyXG4gICAgdGhpcy5zaG93V2FpdEN1cnNvci5uZXh0KGZhbHNlKVxyXG4gIH1lbHNle1xyXG4gICAgdGhpcy5zaG93V2FpdEN1cnNvci5uZXh0KGZhbHNlKVxyXG4gICAgdGhpcy5ub1JlY29yZD0nTm8gZGF0YSc7XHJcbiAgfVxyXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5jYXJ0RGV0YWlscy5sZW5ndGg7IGkrKykge1xyXG4gICAgdGhpcy5zaG93RGV0YWlscy5wdXNoKGZhbHNlKTtcclxuICB9XHJcbiAgdGhpcy5jYXJ0U2VydmljZS5leHBhbmRBbGwuc3Vic2NyaWJlKChkYXRhKSA9PiB7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuY2FydERldGFpbHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgdGhpcy5zaG93RGV0YWlsc1tpXSA9IGRhdGE7XHJcbiAgICB9XHJcbiAgfSk7XHJcbn1cclxuICAgIC8vIEdldCB0aGUgSW1hZ2UgRGV0YWlscyBiYXNlZCBvbiBQcm9kdWN0c1xyXG4gICAgZ2V0SW1hZ2VEZXRhaWxzKGNhcnREZXRhaWxzOiBhbnksIHRodW1ibmFpbDogYW55ID0gdHJ1ZSk6IGFueSB7XHJcbiAgICAgIGxldCBpbWFnZVVybDogYW55ID0gY2FydERldGFpbHM/LnByb2R1Y3Q/LmltYWdlcztcclxuICAgICAgaWYgKHRoaXMuaXNDYXJkRGF0YSkge1xyXG4gICAgICAgIGltYWdlVXJsID0gY2FydERldGFpbHM/LnByb2R1Y3Q/LmltYWdlcz8uZmluZCgoaW1nOiBhbnkpID0+IGltZy5mb3JtYXQgPT0gXCJjYXJ0SWNvblwiKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBpbWFnZVVybCA9IGNhcnREZXRhaWxzPy5wcm9kdWN0Py5pbWFnZXM/LkdBTExFUlk/LmNhcnRJY29uO1xyXG4gICAgICB9XHJcbiAgICAgIGxldCBzcmNVcmw6IGFueTtcclxuICAgICAgaWYgKFxyXG4gICAgICAgIGNhcnREZXRhaWxzPy5hdHRhY2htZW50cyAmJlxyXG4gICAgICAgIGNhcnREZXRhaWxzPy5hdHRhY2htZW50cz8ubGVuZ3RoICYmXHJcbiAgICAgICAgY2FydERldGFpbHM/LnByb2R1Y3Q/LmZsYXNoaW5nUHJvZHVjdFxyXG4gICAgICApIHtcclxuICAgICAgICBzcmNVcmwgPVxyXG4gICAgICAgICAgdGh1bWJuYWlsICYmIGNhcnREZXRhaWxzPy5hdHRhY2htZW50cz8ubGVuZ3RoID4gMVxyXG4gICAgICAgICAgICA/IGNhcnREZXRhaWxzPy5hdHRhY2htZW50c1sxXT8uZG93bmxvYWRVUkxcclxuICAgICAgICAgICAgOiBjYXJ0RGV0YWlscz8uYXR0YWNobWVudHNbMF0/LmRvd25sb2FkVVJMO1xyXG4gICAgICAgIGltYWdlVXJsID0ge1xyXG4gICAgICAgICAgdXJsOiAoXHJcbiAgICAgICAgICAgIHRoaXMuZW52Lm9jY0Jhc2VVcmwuc2xpY2UoMCwgdGhpcy5lbnYub2NjQmFzZVVybC5sZW5ndGggLSAxKSArXHJcbiAgICAgICAgICAgIHNyY1VybFxyXG4gICAgICAgICAgKT8ucmVwbGFjZSgnJmF0dGFjaG1lbnQ9dHJ1ZScsICcnKSxcclxuICAgICAgICB9O1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiBpbWFnZVVybDtcclxuICAgIH1cclxuICBzaG93SGlkZShpbmQ6IG51bWJlcikge1xyXG4gICAgdGhpcy5zaG93RGV0YWlsc1tpbmRdID0gIXRoaXMuc2hvd0RldGFpbHNbaW5kXTtcclxuICB9XHJcbiAgdmlld0ltYWdlKGV2ZW50OiBhbnksIGNhcnREZXRhaWxzOiBhbnkpOiB2b2lkIHtcclxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICB0aGlzLmltYWdlTW9kYWxTcmMgPSB0aGlzLmdldEltYWdlRGV0YWlscyhjYXJ0RGV0YWlscywgZmFsc2UpPy51cmw7XHJcbiAgfVxyXG4gIFxyXG4gIGdldFBkZkxpbmsoY2FydERldGFpbHM6IGFueSk6IHZvaWQge1xyXG4gICAgcmV0dXJuIHRoaXMuZ2V0SW1hZ2VEZXRhaWxzKGNhcnREZXRhaWxzLCBmYWxzZSk/LnVybDtcclxuICB9XHJcblxyXG4gIGhhc0ltYWdlKGNhcnREZXRhaWxzOiBhbnkpOiBib29sZWFuIHtcclxuICAgIGNvbnN0IG1pbWVUeXBlID0gY2FydERldGFpbHM/LmF0dGFjaG1lbnRzWzBdPy5taW1lO1xyXG4gICAgY29uc3QgbWltZUFycmF5ID0gW1wiaW1hZ2UvcG5nXCIsIFwiaW1hZ2UvanBnXCIsIFwiaW1hZ2UvanBlZ1wiXTtcclxuICAgIHJldHVybiBtaW1lQXJyYXkuaW5jbHVkZXMobWltZVR5cGUpO1xyXG4gIH1cclxuXHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImxvYWRpbmdcIiAqbmdJZj1cInNob3dXYWl0Q3Vyc29yIHwgYXN5bmMgXCI+TG9hZGluZyYjODIzMDs8L2Rpdj5cclxuPGRpdiBjbGFzcz1cInJldmlld29yZGVyLXRhYmxlLWNvbnRhaW5lciBweS0zXCI+XHJcbiAgICAgICAgPHRhYmxlIGNsYXNzPVwidy0xMDAgdGFibGVcIj5cclxuICAgICAgICAgICAgPHRyIGNsYXNzPVwicmV2aWV3b3JkZXItaGVhZGVyLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgICAgPHRoPiM8L3RoPlxyXG4gICAgICAgICAgICAgICAgPHRoIGNsYXNzPVwiaXRlbVwiPklURU08L3RoPlxyXG4gICAgICAgICAgICAgICAgPHRoPkpPQiBSRUZFUkVOQ0U8L3RoPlxyXG4gICAgICAgICAgICAgICAgPHRoPkRFTElWRVJZIERBVEU8L3RoPlxyXG4gICAgICAgICAgICAgICAgPCEtLSA8dGg+REVMSVZFUlkgIzwvdGg+IC0tPlxyXG4gICAgICAgICAgICAgICAgPHRoPlFVQU5USVRZIE9SREVSRUQ8L3RoPlxyXG4gICAgICAgICAgICAgICAgPCEtLSA8dGg+UVVBTlRJVFkgU0hJUFBFRDwvdGg+IC0tPlxyXG4gICAgICAgICAgICAgICAgPHRoIGNsYXNzPVwiY29sSERcIj48ZGl2IGNsYXNzPVwidGV4dC1yaWdodFwiPlRPVEFMIFBSSUNFPC9kaXY+IDxzcGFuIGNsYXNzPVwidGV4dC1yaWdodFwiPmV4Y2wgR1NUPC9zcGFuPjwvdGg+XHJcbiAgICAgICAgICAgICAgICA8dGg+U1RBVFVTPC90aD5cclxuICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNhcnREZXRhaWxzLmxlbmd0aDsgZWxzZSBub2RhdGFcIj5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGNhcnQgb2YgY2FydERldGFpbHM7bGV0IGkgPSBpbmRleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDx0ciBjbGFzcz1cInJldmlld29yZGVyLWJvZHktY29udGFpbmVyXCIgW25nQ2xhc3NdPVwiY2FydD8uY29uZmlndXJhdGlvbkluZm9zLmxlbmd0aCA/ICcnIDogJ2JvcmRlck5ldycgXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjYXJ0LmVudHJ5TnVtYmVyLmxlbmd0aD45OyBlbHNlIGVudHJ5SWRcIj57e2NhcnQuZW50cnlOdW1iZXJ9fTwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNlbnRyeUlkPjB7e2NhcnQuZW50cnlOdW1iZXIrMX19PC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBwcm9kdWN0LWltYWdlLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tNCBjb2wtbGctMiBwLTIgcHJvZHVjdC1pbWdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXJ0RGV0YWlsc1tpXT8ucHJvZHVjdD8uZmxhc2hpbmdQcm9kdWN0O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Ugbm9ybWFsSW1hZ2VcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgZGF0YS10b2dnbGU9XCJtb2RhbFwiIGNsYXNzPVwiZmxhc2hpbmctZXhwYW5kXCIgKGNsaWNrKT1cInZpZXdJbWFnZSgkZXZlbnQsY2FydERldGFpbHNbaV0pXCIgW2F0dHIuZGF0YS10YXJnZXRdPVwiJyNpbWFnZU1vZGFsJ1wiICpuZ0lmPVwiaGFzSW1hZ2UoY2FydERldGFpbHNbaV0pO2Vsc2UgaGFzUGRmXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGN4LW1lZGlhXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY29udGFpbmVyXT1cImdldEltYWdlRGV0YWlscyhjYXJ0RGV0YWlsc1tpXSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybWF0PVwiY2FydEljb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cInByZXNlbnRhdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvY3gtbWVkaWE+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNoYXNQZGY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJmbGFzaGluZy1leHBhbmQgZmxhc2hpbmctb3BlblwiIFtocmVmXT1cImdldFBkZkxpbmsoY2FydERldGFpbHNbaV0pXCIgdGFyZ2V0PVwiX2JsYW5rXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwicGRmLWljb25cIiBzcmM9XCIuLi8uLi8uLi8uLi8uLi9hc3NldHMvaW1hZ2VzL3BkZi1pY29uLnN2Z1wiIGFsdD1cIkNsaWNrIHRvIG9wZW4gUERGXCIgdGl0bGU9XCJDbGljayB0byBvcGVuIFBERlwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI25vcm1hbEltYWdlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y3gtbWVkaWFcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY29udGFpbmVyXT1cImdldEltYWdlRGV0YWlscyhjYXJ0RGV0YWlsc1tpXSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1hdD1cImNhcnRJY29uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb2xlPVwicHJlc2VudGF0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvY3gtbWVkaWE+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tOCBjb2wtbGctMTBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJyZXZpZXdwcm9kdWN0LW5hbWUgbWItMlwiPnt7Y2FydD8ucHJvZHVjdD8ubmFtZX19PC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInNrdS10ZXh0IG1iLTBcIj5TS1U6IHt7Y2FydD8ucHJvZHVjdD8uY29kZSB9fTwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGQ+e3tjYXJ0Py5qb2JSZWZlcmVuY2UgfHwgJy0nfX08L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGQ+e3tvcmRlckRhdGUgfCBkYXRlOlwiZGQvTU0veXl5eVwifX08L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGQ+e3tjYXJ0LnF1YW50aXR5RG91YmxlfX17e2NhcnQ/LnRvdGFsUHJpY2U/LnVuaXRUeXBlfX08YnI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN1YlByaWNlXCI+QCB7e2NhcnQ/LnRvdGFsUHJpY2U/LmZvcm1hdHRlZFZhbHVlfX0ve3tjYXJ0Py50b3RhbFByaWNlPy51bml0VHlwZX19PC9zcGFuPjwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57e2NhcnQ/LnRvdGFsUHJpY2U/LmZvcm1hdHRlZFZhbHVlfX0gPHNwYW4gY2xhc3M9XCJkLWJsb2NrXCI+ZXhjbCBHU1Q8L3NwYW4+PC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwic3RhdHVzQ29sbVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNtYWxsIGNsYXNzPVwic3RhdHVzQ29sb3JcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nU3R5bGVdPVwieydiYWNrZ3JvdW5kLWNvbG9yJzpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjYXJ0Py5zdGF0dXM9PSdDUkVBVEVEJykgPyAoJyNGM0E5MzEnKSA6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2FydD8uc3RhdHVzPT0nQVBQUk9WRUQnKSA/ICgnI2YyNjUyMicpIDpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjYXJ0Py5zdGF0dXM9PSdQUk9DRVNTSU5HJykgPyAoJyM3NTU3OEEnKSA6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2FydD8uc3RhdHVzPT0nUkVBRFknKSA/ICgnIzQ5NjQ3MScpIDpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjYXJ0Py5zdGF0dXM9PSdERUxJVkVSSU5HJykgPyAoJyMwMEFDQkQnKSA6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2FydD8uc3RhdHVzPT0nQ09NUExFVEVEJykgPyAoJyM4REM0NDAnKSA6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2FydD8uc3RhdHVzPT0nUkVUVVJORUQnKSA/ICgnIzhEQzQ0MCcpIDpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjYXJ0Py5zdGF0dXM9PSdDQU5DRUxMRUQnKSA/ICgnIzAwMDAwMCcpIDpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICgnJyl9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L3NtYWxsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3tjYXJ0Py5zdGF0dXNEaXNwbGF5IHx8ICctJ319XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY2FydD8ucHJvZHVjdD8uY2xhc3NpZmljYXRpb25zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ciBjbGFzcz1cInJldmlld29yZGVyLWJvZHktY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY29sc3Bhbj1cIjlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdGb3I9XCJsZXQgYXR0cmlidXRlcyBvZiBjYXJ0Py5wcm9kdWN0Py5jbGFzc2lmaWNhdGlvbnNbMF0/LmZlYXR1cmVzO2xhc3QgYXMgaXNMYXN0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7YXR0cmlidXRlcz8uZmVhdHVyZVZhbHVlc1swXT8udmFsdWUgfX0gPHNwYW4gKm5nSWY9XCIhaXNMYXN0XCI+IHwgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtbVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICA8dHIgY2xhc3M9XCJyZXZpZXdvcmRlci1ib2R5LWNvbnRhaW5lclwiICpuZ0lmPVwiY2FydD8uY29uZmlndXJhdGlvbkluZm9zLmxlbmd0aFwiIFtuZ0NsYXNzXT1cImNhcnQ/LmNvbmZpZ3VyYXRpb25JbmZvcy5sZW5ndGggPyAnYm9yZGVyTmV3JyA6ICcnIFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGQgY29sc3Bhbj1cIjlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwiY29sb3JzLXBhcmFncmFwaCBtYi0wXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJyZXZpZXdvcmRlci1jb2xvciBtci0zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdTdHlsZV09XCJ7IGJhY2tncm91bmQ6IGNhcnQ/LmNvbmZpZ3VyYXRpb25JbmZvc1swXT8uY29uZmlndXJhdGlvblZhbHVlLnNwbGl0KCd8JykgfCBzbGljZToyfVwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2NhcnQ/LmNvbmZpZ3VyYXRpb25JbmZvc1swXT8uY29uZmlndXJhdGlvblZhbHVlLnNwbGl0KCd8JykgfCBzbGljZToxOjJ9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjYXJ0Py5zdWJMaW5lQ29uZmlnSW5mb3MubGVuZ3RoPjBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cIm0tMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPVwiamF2YXNjcmlwdDp2b2lkKDApXCIgKGNsaWNrKT1cInNob3dIaWRlKGkpXCIgY2xhc3M9XCJzZWUtbW9yZS1saW5rXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e3Nob3dEZXRhaWxzW2ldID09IHRydWUgPyAnSGlkZScgOiAnU2VlJ319IG1vcmUgZGV0YWlsc1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyZXZpZXdvcmRlci1jb2xsYXBzZVwiICpuZ0lmPVwic2hvd0RldGFpbHNbaV1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zbS02IGJ1bmRsZS1kZXRhaWxzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBidW5kbGUtZGV0YWlscy1oZWFkZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0zXCI+UXVhbnRpdHk8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0zXCI+TGVuZ3RoIChMTSk8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNhcnQ/LnN1YkxpbmVDb25maWdJbmZvc1tpXT8uYnVuZGxlTmFtZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0zXCI+QnVuZGxlPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTNcIj5SZWZlcmVuY2U8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiICpuZ0Zvcj1cImxldCBzdWJMaW5lIG9mIGNhcnQ/LnN1YkxpbmVDb25maWdJbmZvc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTNcIj57e3N1YkxpbmU/LnF1YW50aXR5fX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0zXCI+e3tzdWJMaW5lPy5sZW5ndGggfCBudW1iZXI6JzAuMy0zJ319PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzdWJMaW5lPy5idW5kbGVOYW1lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTNcIj57e3N1YkxpbmU/LmJ1bmRsZU5hbWV9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0zXCI+e3tzdWJMaW5lPy5yZWZlcmVuY2V9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHRyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGQgY29sc3Bhbj1cIjlcIiBjbGFzcz1cInAtMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImNhcnREZXRhaWxzW2ldPy5wcm9kdWN0Py5mbGFzaGluZ1Byb2R1Y3QgJiYgY2FydERldGFpbHNbaV0/LnByb2R1Y3RDb25maWd1cmVkSW5mb3NcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxhc2hpbmctYmxvY2sgXCIgKm5nRm9yPVwibGV0IGRhdGEgb2YgY2FydERldGFpbHNbaV0/LnByb2R1Y3RDb25maWd1cmVkSW5mb3NcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zbS0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPVwiZmxhc2gtdGl0bGVcIj57eyBkYXRhPy5wcm9kdWN0Py5uYW1lIH19PC9oMz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDYgY2xhc3M9XCJza3VJZFwiPlNLVToge3sgZGF0YT8ucHJvZHVjdD8uY29kZSB9fTwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJkYXRhPy5naXJ0aFwiPkdyaXRoOiAre3tkYXRhLmdpcnRofX1tbSA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvZmZzZXQtc20tMyBjb2wtc20tMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ZGF0YT8ucXVhbnRpdHlEb3VibGV9fXt7ZGF0YT8udW5pdFR5cGV9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXNtLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2RhdGE/LmJhc2VQcmljZT8uZm9ybWF0dGVkVmFsdWV9fS97e2RhdGE/LnVuaXRUeXBlfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zbS0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tkYXRhPy50b3RhbFByaWNlPy5mb3JtYXR0ZWRWYWx1ZX19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJnc3QtdGV4dFwiPmV4Y2wgR1NUPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNub2RhdGE+XHJcbiAgICAgICAgICAgICAgICA8dHIgY2xhc3M9XCJyZXZpZXdvcmRlci1ib2R5LWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDx0ZCBjb2xzcGFuPVwiN1wiIGNsYXNzPVwidGV4dC1jZW50ZXJcIj57e25vUmVjb3JkfX08L3RkPlxyXG4gICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgIFxyXG4gICAgICAgIDwvdGFibGU+XHJcblxyXG5cclxuPC9kaXY+XHJcbjxkaXYgY2xhc3M9XCJtb2RhbCBmYWRlXCIgaWQ9XCJpbWFnZU1vZGFsXCIgcm9sZT1cImRpYWxvZ1wiIGFyaWEtbGFiZWxsZWRieT1cImltYWdlTW9kYWxcIiBhcmlhLWhpZGRlbj1cInRydWVcIiAjaW1hZ2VNb2RhbD5cclxuICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1kaWFsb2cgbW9kYWwtbGdcIiByb2xlPVwiZG9jdW1lbnRcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtY29udGVudFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtaGVhZGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb24tY2xvc2UgaW52aXRlLXBvcC1jbG9zZVwiICNjbG9zZUludml0ZU1vZGFsIGRhdGEtZGlzbWlzcz1cIm1vZGFsXCIgYXJpYS1sYWJlbD1cIkNsb3NlXCI+PC9pPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWJvZHkgbS00XCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIFtzcmNdPVwiaW1hZ2VNb2RhbFNyY1wiIGFsdD1cImFsZXJ0XCIgLz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+Il19
|
|
169
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXItZGV0YWlsLWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYnVpbGRpbmdwcm9kdWN0X2xpYnJhcnkvc3JjL2xpYi9jdXN0b20tb3JkZXItZGV0YWlscy9vcmRlci1kZXRhaWwtbGlzdC9vcmRlci1kZXRhaWwtbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9idWlsZGluZ3Byb2R1Y3RfbGlicmFyeS9zcmMvbGliL2N1c3RvbS1vcmRlci1kZXRhaWxzL29yZGVyLWRldGFpbC1saXN0L29yZGVyLWRldGFpbC1saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQXFCLFNBQVMsRUFBZ0IsS0FBSyxFQUEyQyxNQUFNLGVBQWUsQ0FBQztBQUMzSCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7QUFTdkMsTUFBTSxPQUFPLHdCQUF3QjtJQWFuQyxZQUNVLFdBQXdCLEVBQ3hCLHlCQUEwRCxFQUMxRCxHQUFzQjtRQUZ0QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4Qiw4QkFBeUIsR0FBekIseUJBQXlCLENBQWlDO1FBQzFELFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBZmhDLGdCQUFXLEdBQVEsRUFBRSxDQUFDO1FBQ2IsZ0JBQVcsR0FBUSxFQUFFLENBQUM7UUFFL0IsbUJBQWMsR0FBRyxJQUFJLGVBQWUsQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUtyRCx1QkFBa0IsR0FBWSxJQUFJLENBQUM7UUFDbkMsUUFBRyxHQUFRLGNBQWMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekMsZ0JBQVcsR0FBUyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQU10QyxDQUFDO0lBRUUsUUFBUTs7WUFDWixJQUFJLENBQUMsa0JB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SlUsd0JBQXdCOzBHQUF4Qix3QkFBd0Isb01DVnJDLGc4WUEwVEE7NEZEaFRhLHdCQUF3QjtrQkFMcEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsdUJBQXVCO29CQUNqQyxXQUFXLEVBQUUsb0NBQW9DO29CQUNqRCxTQUFTLEVBQUUsQ0FBQyxvQ0FBb0MsQ0FBQztpQkFDbEQ7Z0xBR1UsV0FBVztzQkFBbkIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUVHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBPdXRwdXQsIFNpbXBsZUNoYW5nZXN9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQ2FydFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jYXJ0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBVc2VyQWNjb3VudERldGFpbFNlcnZpY2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdXNlci1hY2NvdW50LWRldGFpbC1zZXJ2aWNlLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwiYXBwLW9yZGVyLWRldGFpbC1saXN0XCIsXHJcbiAgdGVtcGxhdGVVcmw6IFwiLi9vcmRlci1kZXRhaWwtbGlzdC5jb21wb25lbnQuaHRtbFwiLFxyXG4gIHN0eWxlVXJsczogW1wiLi9vcmRlci1kZXRhaWwtbGlzdC5jb21wb25lbnQuc2Nzc1wiXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIE9yZGVyRGV0YWlsTGlzdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcclxuICBzaG93RGV0YWlsczogYW55ID0gW107XHJcbiAgQElucHV0KCkgY2FydERldGFpbHM6IGFueSA9IFtdO1xyXG4gIEBJbnB1dCgpIHNvcnRCeVZhbDogYW55O1xyXG4gIHNob3dXYWl0Q3Vyc29yID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XHJcbiAgQElucHV0KCkgb3JkZXJEYXRlOiBhbnk7XHJcbiAgQElucHV0KCkgaXNDYXJkRGF0YTogYW55O1xyXG4gIG5vUmVjb3JkPzogc3RyaW5nO1xyXG4gIGltYWdlTW9kYWxTcmM6IGFueTtcclxuICBpc09yZGVyUGVybWlzc2lvbnM6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIGVudjogYW55ID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgnZW52Jyk7XHJcbiAgZW52aXJvbm1lbnQgOiBhbnkgPSBKU09OLnBhcnNlKHRoaXMuZW52KTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGNhcnRTZXJ2aWNlOiBDYXJ0U2VydmljZSxcclxuICAgIHByaXZhdGUgdXNlclByb2ZpbGVEZXRhaWxzU2VydmljZTogVXNlckFjY291bnREZXRhaWxTZXJ2aWNlU2VydmljZSxcclxuICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZlxyXG4gICkge31cclxuXHJcbiAgYXN5bmMgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmlzT3JkZXJQZXJtaXNzaW9ucyA9XHJcbiAgICAgIGF3YWl0IHRoaXMudXNlclByb2ZpbGVEZXRhaWxzU2VydmljZS5pc1BsYWNlT3JkZXJzUGVybWlzc2lvbigpO1xyXG4gIH1cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBpZiAoXHJcbiAgICAgIGNoYW5nZXM/LmNhcnREZXRhaWxzPy5wcmV2aW91c1ZhbHVlICE9IGNoYW5nZXM/LmNhcnREZXRhaWxzPy5jdXJyZW50VmFsdWVcclxuICAgICkge1xyXG4gICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnNob3dXYWl0Q3Vyc29yLm5leHQodHJ1ZSk7XHJcbiAgICBpZiAodGhpcy5jYXJ0RGV0YWlscz8ubGVuZ3RoKSB7XHJcbiAgICAgIHRoaXMuc2hvd1dhaXRDdXJzb3IubmV4dChmYWxzZSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNob3dXYWl0Q3Vyc29yLm5leHQoZmFsc2UpO1xyXG4gICAgICB0aGlzLm5vUmVjb3JkID0gXCJObyBkYXRhXCI7XHJcbiAgICB9XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuY2FydERldGFpbHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgdGhpcy5zaG93RGV0YWlscy5wdXNoKGZhbHNlKTtcclxuICAgIH1cclxuICAgIHRoaXMuY2FydFNlcnZpY2UuZXhwYW5kQWxsLnN1YnNjcmliZSgoZGF0YSkgPT4ge1xyXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuY2FydERldGFpbHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICB0aGlzLnNob3dEZXRhaWxzW2ldID0gZGF0YTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIGdldENvbG91ckRldGFpbHMoY29uZmlnSW5mbzogYW55LCB0eXBlOiBhbnkpIHtcclxuICAgIGxldCBuYW1lOiBhbnk7XHJcbiAgICBsZXQgYmFja2dyb3VuZDogYW55O1xyXG4gICAgaWYgKGNvbmZpZ0luZm8gJiYgY29uZmlnSW5mbz8ubGVuZ3RoID4gMCkge1xyXG4gICAgICBjb25zdCBjb2xvdXIgPSBjb25maWdJbmZvPy5maWx0ZXIoKGNvbDogYW55KSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIGNvbD8uY29uZmlndXJhdGlvbkxhYmVsPy50b0xvd2VyQ2FzZSgpID09IFwiY29sb3JcIlxyXG4gICAgICB9KTtcclxuICAgICAgaWYgKGNvbG91ciAmJiBjb2xvdXI/Lmxlbmd0aCkge1xyXG4gICAgICAgIG5hbWUgPSBjb2xvdXJbMF0/LmNvbmZpZ3VyYXRpb25WYWx1ZT8uc3BsaXQoJ3wnKVsxXTtcclxuICAgICAgICBiYWNrZ3JvdW5kID0gY29sb3VyWzBdPy5jb25maWd1cmF0aW9uVmFsdWU/LnNwbGl0KCd8JylbMl07XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiAodHlwZSA9PSBcImJhY2tncm91bmRcIikgPyBiYWNrZ3JvdW5kIDogbmFtZTtcclxuICB9XHJcbiAgLy8gQ2hlY2sgaWYgYW55IHZhbHVlIGlzIGVtcHR5IG9yIHVuZGVmaW5lZFxyXG4gIGlzTnVsbE9yRW1wdHkodmFsdWU6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHZhbHVlID09IG51bGwgfHwgdmFsdWUgPT0gdW5kZWZpbmVkIHx8IHZhbHVlID09IFwiXCI7XHJcbiAgfVxyXG5cclxuICAvLyBHZXQgdGhlIEltYWdlIERldGFpbHMgYmFzZWQgb24gUHJvZHVjdHNcclxuICBnZXRJbWFnZURldGFpbHMoY2FydERldGFpbHM6IGFueSwgdGh1bWJuYWlsOiBhbnkgPSB0cnVlKTogYW55IHtcclxuICAgIGxldCBpbWFnZVVybDogYW55ID0gY2FydERldGFpbHM/LnByb2R1Y3Q/LmltYWdlcztcclxuICAgIGlmICh0aGlzLmlzQ2FyZERhdGEpIHtcclxuICAgICAgLy9pbWFnZVVybCA9IGNhcnREZXRhaWxzPy5wcm9kdWN0Py5pbWFnZXM/LmZpbmQoKGltZzogYW55KSA9PiBpbWcuZm9ybWF0ID09IFwiY2FydEljb25cIik7XHJcbiAgICAgIGNvbnN0IGNvbG9yQ29kZSA9XHJcbiAgICAgICAgY2FydERldGFpbHM/LmNvbmZpZ3VyYXRpb25JbmZvcyB8fCBjYXJ0RGV0YWlscz8uY29uZmlndXJhdGlvbkluZm9zWzBdXHJcbiAgICAgICAgICA/IGNhcnREZXRhaWxzPy5jb25maWd1cmF0aW9uSW5mb3NbMF0/LmNvbmZpZ3VyYXRpb25WYWx1ZT8uc3BsaXQoXHJcbiAgICAgICAgICAgICAgXCJ8XCJcclxuICAgICAgICAgICAgKVswXVxyXG4gICAgICAgICAgOiBcIlwiO1xyXG4gICAgICBpbWFnZVVybCA9IGNhcnREZXRhaWxzPy5wcm9kdWN0Py5pbWFnZXM/LmZpbHRlcihcclxuICAgICAgICAoaW1nOiBhbnkpID0+XHJcbiAgICAgICAgICAoaW1nPy5mb3JtYXQgPT0gXCJjYXJ0SWNvblwiICYmIGltZz8uY29sb3JDb2RlID09IGNvbG9yQ29kZSkgfHxcclxuICAgICAgICAgIChpbWc/LmZvcm1hdCA9PSBcImNhcnRJY29uXCIgJiZcclxuICAgICAgICAgICAgdGhpcy5pc051bGxPckVtcHR5KGNvbG9yQ29kZSkgJiZcclxuICAgICAgICAgICAgY2FydERldGFpbHM/LnByb2R1Y3Q/LmltYWdlcz8ubGVuZ3RoIDw9IDQpXHJcbiAgICAgICk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpbWFnZVVybCA9IGNhcnREZXRhaWxzPy5wcm9kdWN0Py5pbWFnZXM/LkdBTExFUlk/LmNhcnRJY29uO1xyXG4gICAgfVxyXG4gICAgbGV0IHNyY1VybDogYW55O1xyXG4gICAgaWYgKFxyXG4gICAgICBjYXJ0RGV0YWlscz8uYXR0YWNobWVudHMgJiZcclxuICAgICAgY2FydERldGFpbHM/LmF0dGFjaG1lbnRzPy5sZW5ndGggJiZcclxuICAgICAgY2FydERldGFpbHM/LnByb2R1Y3Q/LmZsYXNoaW5nUHJvZHVjdFxyXG4gICAgKSB7XHJcbiAgICAgIHNyY1VybCA9XHJcbiAgICAgICAgdGh1bWJuYWlsICYmIGNhcnREZXRhaWxzPy5hdHRhY2htZW50cz8ubGVuZ3RoID4gMVxyXG4gICAgICAgICAgPyBjYXJ0RGV0YWlscz8uYXR0YWNobWVudHNbMV0/LmRvd25sb2FkVVJMXHJcbiAgICAgICAgICA6IGNhcnREZXRhaWxzPy5hdHRhY2htZW50c1swXT8uZG93bmxvYWRVUkw7XHJcbiAgICAgIGltYWdlVXJsID0ge1xyXG4gICAgICAgIHVybDogKFxyXG4gICAgICAgICAgdGhpcy5lbnZpcm9ubWVudC5vY2NCYXNlVXJsLnNsaWNlKDAsIHRoaXMuZW52aXJvbm1lbnQub2NjQmFzZVVybC5sZW5ndGggLSAxKSArXHJcbiAgICAgICAgICBzcmNVcmxcclxuICAgICAgICApPy5yZXBsYWNlKFwiJmF0dGFjaG1lbnQ9dHJ1ZVwiLCBcIlwiKSxcclxuICAgICAgfTtcclxuICAgIH1cclxuICAgIHJldHVybiBpbWFnZVVybDtcclxuICB9XHJcbiAgc2hvd0hpZGUoaW5kOiBudW1iZXIpIHtcclxuICAgIHRoaXMuc2hvd0RldGFpbHNbaW5kXSA9ICF0aGlzLnNob3dEZXRhaWxzW2luZF07XHJcbiAgfVxyXG4gIHZpZXdJbWFnZShldmVudDogYW55LCBjYXJ0RGV0YWlsczogYW55KTogdm9pZCB7XHJcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgdGhpcy5pbWFnZU1vZGFsU3JjID0gdGhpcy5nZXRJbWFnZURldGFpbHMoY2FydERldGFpbHMsIGZhbHNlKT8udXJsO1xyXG4gIH1cclxuXHJcbiAgZ2V0UGRmTGluayhjYXJ0RGV0YWlsczogYW55KTogdm9pZCB7XHJcbiAgICByZXR1cm4gdGhpcy5nZXRJbWFnZURldGFpbHMoY2FydERldGFpbHMsIGZhbHNlKT8udXJsO1xyXG4gIH1cclxuXHJcbiAgaGFzSW1hZ2UoY2FydERldGFpbHM6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3QgbWltZVR5cGUgPSBjYXJ0RGV0YWlscz8uYXR0YWNobWVudHNbMF0/Lm1pbWU7XHJcbiAgICBjb25zdCBtaW1lQXJyYXkgPSBbXCJpbWFnZS9wbmdcIiwgXCJpbWFnZS9qcGdcIiwgXCJpbWFnZS9qcGVnXCJdO1xyXG4gICAgcmV0dXJuIG1pbWVBcnJheS5pbmNsdWRlcyhtaW1lVHlwZSk7XHJcbiAgfVxyXG5cclxuICBoYXNDb2xvdXIoY2FydERldGFpbHM6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKGNhcnREZXRhaWxzPy5wcm9kdWN0Py5maW5pc2hlZFByb2R1Y3QpIHtcclxuICAgICAgY29uc3QgY29kZSA9IGNhcnREZXRhaWxzPy5wcm9kdWN0Py5jb2RlO1xyXG4gICAgICBjb25zdCBjb2xvdXIgPSBjYXJ0RGV0YWlscz8ucHJvZHVjdD8udmFyaWFudE9wdGlvbnM/LmZpbHRlcihcclxuICAgICAgICAoaXRlbTogYW55KSA9PiBpdGVtLmNvZGUgPT0gY29kZVxyXG4gICAgICApO1xyXG4gICAgICBpZiAoY29sb3VyICYmIGNvbG91clswXT8uY29sb3VycyAmJiBjb2xvdXJbMF0/LmNvbG91cnM/Lmxlbmd0aCA+IDApIHtcclxuICAgICAgICBjYXJ0RGV0YWlscy5jb2xvdXIgPSBjb2xvdXJbMF0/LmNvbG91cnNbMF07XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcbiAgLy8gR2V0IFN1bW1hcnkgSGVhZGluZ1xyXG4gIGdldENsYXNzaWZpY2F0aW9ucyhkYXRhOiBhbnkpOiBhbnkge1xyXG4gICAgbGV0IGZlYXR1cmVBcnJheTogYW55ID0gW107XHJcbiAgICBkYXRhPy5mb3JFYWNoKChlbGVtZW50OiBhbnkpID0+IHtcclxuICAgICAgZWxlbWVudD8uZmVhdHVyZXMuZm9yRWFjaCgoZmVhdHVyZTogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKGZlYXR1cmU/LmZlYXR1cmVVbml0KSB7XHJcbiAgICAgICAgICBmZWF0dXJlQXJyYXkucHVzaChmZWF0dXJlPy5mZWF0dXJlVmFsdWVzWzBdPy52YWx1ZSArICcgJyArIGZlYXR1cmU/LmZlYXR1cmVVbml0Py5zeW1ib2wpXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGZlYXR1cmVBcnJheS5wdXNoKGZlYXR1cmU/LmZlYXR1cmVWYWx1ZXNbMF0/LnZhbHVlKVxyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBmZWF0dXJlQXJyYXk/LmpvaW4oIFwiIHwgXCIpXHJcbiAgfVxyXG5cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwibG9hZGluZ1wiICpuZ0lmPVwic2hvd1dhaXRDdXJzb3IgfCBhc3luY1wiPkxvYWRpbmcmIzgyMzA7PC9kaXY+XHJcbjxkaXYgY2xhc3M9XCJyZXZpZXdvcmRlci10YWJsZS1jb250YWluZXIgcHktM1wiPlxyXG4gIDx0YWJsZSBjbGFzcz1cInctMTAwIHRhYmxlXCI+XHJcbiAgICA8dHIgY2xhc3M9XCJyZXZpZXdvcmRlci1oZWFkZXItY29udGFpbmVyXCI+XHJcbiAgICAgIDx0aD4jPC90aD5cclxuICAgICAgPHRoIGNsYXNzPVwiaXRlbVwiPklURU08L3RoPlxyXG4gICAgICA8dGg+Sk9CIFJFRkVSRU5DRTwvdGg+XHJcbiAgICAgIDx0aD5ERUxJVkVSWSBEQVRFPC90aD5cclxuICAgICAgPHRoPlFVQU5USVRZIE9SREVSRUQ8L3RoPlxyXG4gICAgICA8dGggY2xhc3M9XCJjb2xIRFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXJpZ2h0XCI+VE9UQUwgUFJJQ0U8L2Rpdj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtcmlnaHRcIj5leGNsIEdTVDwvc3Bhbj5cclxuICAgICAgPC90aD5cclxuICAgICAgPHRoPlNUQVRVUzwvdGg+XHJcbiAgICA8L3RyPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNhcnREZXRhaWxzLmxlbmd0aDsgZWxzZSBub2RhdGFcIj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY2FydCBvZiBjYXJ0RGV0YWlsczsgbGV0IGkgPSBpbmRleFwiPlxyXG4gICAgICAgIDx0clxyXG4gICAgICAgICAgY2xhc3M9XCJyZXZpZXdvcmRlci1ib2R5LWNvbnRhaW5lclwiXHJcbiAgICAgICAgICBbbmdDbGFzc109XCJcclxuICAgICAgICAgICAgIWhhc0NvbG91cihjYXJ0KSAmJiBjYXJ0Py5wcm9kdWN0Py5maW5pc2hlZFByb2R1Y3RcclxuICAgICAgICAgICAgICA/ICdib3JkZXJOZXcnXHJcbiAgICAgICAgICAgICAgOiAnJ1xyXG4gICAgICAgICAgXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8dGQ+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjYXJ0LmVudHJ5TnVtYmVyLmxlbmd0aCA+IDk7IGVsc2UgZW50cnlJZFwiPnt7XHJcbiAgICAgICAgICAgICAgY2FydC5lbnRyeU51bWJlclxyXG4gICAgICAgICAgICB9fTwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI2VudHJ5SWQ+MHt7IGNhcnQuZW50cnlOdW1iZXIgKyAxIH19PC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICA8dGQ+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgcHJvZHVjdC1pbWFnZS1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXNtLTQgY29sLWxnLTIgcC0yIHByb2R1Y3QtaW1nXCI+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICAgICpuZ0lmPVwiXHJcbiAgICAgICAgICAgICAgICAgICAgY2FydERldGFpbHNbaV0/LnByb2R1Y3Q/LmZsYXNoaW5nUHJvZHVjdDtcclxuICAgICAgICAgICAgICAgICAgICBlbHNlIG5vcm1hbEltYWdlXHJcbiAgICAgICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgIDxhXHJcbiAgICAgICAgICAgICAgICAgICAgZGF0YS10b2dnbGU9XCJtb2RhbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmbGFzaGluZy1leHBhbmRcIlxyXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJ2aWV3SW1hZ2UoJGV2ZW50LCBjYXJ0RGV0YWlsc1tpXSlcIlxyXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtdGFyZ2V0XT1cIicjaW1hZ2VNb2RhbCdcIlxyXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaGFzSW1hZ2UoY2FydERldGFpbHNbaV0pOyBlbHNlIGhhc1BkZlwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8Y3gtbWVkaWFcclxuICAgICAgICAgICAgICAgICAgICAgIFtjb250YWluZXJdPVwiZ2V0SW1hZ2VEZXRhaWxzKGNhcnREZXRhaWxzW2ldKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBmb3JtYXQ9XCJjYXJ0SWNvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICByb2xlPVwicHJlc2VudGF0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICA+PC9jeC1tZWRpYT5cclxuICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2hhc1BkZj5cclxuICAgICAgICAgICAgICAgICAgICA8YVxyXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmbGFzaGluZy1leHBhbmQgZmxhc2hpbmctb3BlblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbaHJlZl09XCJnZXRQZGZMaW5rKGNhcnREZXRhaWxzW2ldKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxyXG4gICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgIDxpbWdcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwZGYtaWNvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNyYz1cIi4uLy4uLy4uLy4uLy4uL2Fzc2V0cy9pbWFnZXMvcGRmLWljb24uc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgYWx0PVwiQ2xpY2sgdG8gb3BlbiBQREZcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aXRsZT1cIkNsaWNrIHRvIG9wZW4gUERGXCJcclxuICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI25vcm1hbEltYWdlPlxyXG4gICAgICAgICAgICAgICAgICA8Y3gtbWVkaWFcclxuICAgICAgICAgICAgICAgICAgICBbY29udGFpbmVyXT1cImdldEltYWdlRGV0YWlscyhjYXJ0RGV0YWlsc1tpXSlcIlxyXG4gICAgICAgICAgICAgICAgICAgIGZvcm1hdD1cImNhcnRJY29uXCJcclxuICAgICAgICAgICAgICAgICAgICByb2xlPVwicHJlc2VudGF0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgPjwvY3gtbWVkaWE+XHJcbiAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tOCBjb2wtbGctMTBcIj5cclxuICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwicmV2aWV3cHJvZHVjdC1uYW1lIG1iLTJcIj57eyBjYXJ0Py5wcm9kdWN0Py5uYW1lIH19PC9wPlxyXG4gICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJza3UtdGV4dCBtYi0wXCI+U0tVOiB7eyBjYXJ0Py5wcm9kdWN0Py5jb2RlIH19PC9wPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICA8dGQ+e3sgY2FydD8uam9iUmVmZXJlbmNlIHx8IFwiLVwiIH19PC90ZD5cclxuICAgICAgICAgIDx0ZD57eyBvcmRlckRhdGUgfCBkYXRlIDogXCJkZC9NTS95eXl5XCIgfX08L3RkPlxyXG4gICAgICAgICAgPHRkPlxyXG4gICAgICAgICAgICB7eyBjYXJ0LnF1YW50aXR5RG91YmxlIH19IHt7IGNhcnQ/LnVuaXQ/LmNvZGUgfX08YnIgLz5cclxuICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJpc09yZGVyUGVybWlzc2lvbnNcIiBjbGFzcz1cInN1YlByaWNlXCJcclxuICAgICAgICAgICAgICA+QCB7eyBjYXJ0Py50b3RhbFByaWNlPy5mb3JtYXR0ZWRWYWx1ZSB9fS97e1xyXG4gICAgICAgICAgICAgICAgY2FydD8udG90YWxQcmljZT8udW5pdFR5cGVcclxuICAgICAgICAgICAgICB9fTwvc3BhblxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgPHRkPlxyXG4gICAgICAgICAgICB7eyBjYXJ0Py50b3RhbFByaWNlPy5mb3JtYXR0ZWRWYWx1ZSB8fCBcIi1cIiB9fVxyXG4gICAgICAgICAgICA8c3BhbiAqbmdJZj1cImlzT3JkZXJQZXJtaXNzaW9uc1wiIGNsYXNzPVwiZC1ibG9ja1wiPmV4Y2wgR1NUPC9zcGFuPlxyXG4gICAgICAgICAgPC90ZD5cclxuICAgICAgICAgIDx0ZCBjbGFzcz1cInN0YXR1c0NvbG1cIj5cclxuICAgICAgICAgICAgPHNtYWxsXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJzdGF0dXNDb2xvclwiXHJcbiAgICAgICAgICAgICAgW25nU3R5bGVdPVwie1xyXG4gICAgICAgICAgICAgICAgJ2JhY2tncm91bmQtY29sb3InOlxyXG4gICAgICAgICAgICAgICAgICBjYXJ0Py5zdGF0dXMgPT0gJ0NSRUFURUQnXHJcbiAgICAgICAgICAgICAgICAgICAgPyAnI0YzQTkzMSdcclxuICAgICAgICAgICAgICAgICAgICA6IGNhcnQ/LnN0YXR1cyA9PSAnQVBQUk9WRUQnXHJcbiAgICAgICAgICAgICAgICAgICAgPyAnI2YyNjUyMidcclxuICAgICAgICAgICAgICAgICAgICA6IGNhcnQ/LnN0YXR1cyA9PSAnUFJPQ0VTU0lORydcclxuICAgICAgICAgICAgICAgICAgICA/ICcjNzU1NzhBJ1xyXG4gICAgICAgICAgICAgICAgICAgIDogY2FydD8uc3RhdHVzID09ICdSRUFEWSdcclxuICAgICAgICAgICAgICAgICAgICA/ICcjNDk2NDcxJ1xyXG4gICAgICAgICAgICAgICAgICAgIDogY2FydD8uc3RhdHVzID09ICdERUxJVkVSSU5HJ1xyXG4gICAgICAgICAgICAgICAgICAgID8gJyMwMEFDQkQnXHJcbiAgICAgICAgICAgICAgICAgICAgOiBjYXJ0Py5zdGF0dXMgPT0gJ0NPTVBMRVRFRCdcclxuICAgICAgICAgICAgICAgICAgICA/ICcjOERDNDQwJ1xyXG4gICAgICAgICAgICAgICAgICAgIDogY2FydD8uc3RhdHVzID09ICdSRVRVUk5FRCdcclxuICAgICAgICAgICAgICAgICAgICA/ICcjOERDNDQwJ1xyXG4gICAgICAgICAgICAgICAgICAgIDogY2FydD8uc3RhdHVzID09ICdDQU5DRUxMRUQnXHJcbiAgICAgICAgICAgICAgICAgICAgPyAnIzAwMDAwMCdcclxuICAgICAgICAgICAgICAgICAgICA6ICcnXHJcbiAgICAgICAgICAgICAgfVwiXHJcbiAgICAgICAgICAgID48L3NtYWxsPlxyXG4gICAgICAgICAgICB7eyBjYXJ0Py5zdGF0dXNEaXNwbGF5IHx8IFwiLVwiIH19XHJcbiAgICAgICAgICA8L3RkPlxyXG4gICAgICAgIDwvdHI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNhcnQ/LnByb2R1Y3Q/LmNsYXNzaWZpY2F0aW9uc1wiPlxyXG4gICAgICAgICAgPHRyIGNsYXNzPVwicmV2aWV3b3JkZXItYm9keS1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgPHRkIGNvbHNwYW49XCI5XCI+XHJcbiAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJjYXJ0Py5wcm9kdWN0Py5jbGFzc2lmaWNhdGlvbnNbMF0/LmZlYXR1cmVzXCI+XHJcbiAgICAgICAgICAgICAgICB7eyBnZXRDbGFzc2lmaWNhdGlvbnMoY2FydERldGFpbHNbaV0/LnByb2R1Y3Q/LmNsYXNzaWZpY2F0aW9ucykgfX1cclxuICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgPC9zcGFuPiBcclxuICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPHRyXHJcbiAgICAgICAgICBjbGFzcz1cInJldmlld29yZGVyLWJvZHktY29udGFpbmVyIGJvcmRlck5ld1wiXHJcbiAgICAgICAgICAqbmdJZj1cIiFjYXJ0Py5jb25maWd1cmF0aW9uSW5mb3M/Lmxlbmd0aCAmJiBoYXNDb2xvdXIoY2FydClcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDx0ZCBjb2xzcGFuPVwiOVwiPlxyXG4gICAgICAgICAgICA8cCBjbGFzcz1cImNvbG9ycy1wYXJhZ3JhcGggbWItMFwiPlxyXG4gICAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInJldmlld29yZGVyLWNvbG9yIG1yLTNcIlxyXG4gICAgICAgICAgICAgICAgW25nU3R5bGVdPVwieyBiYWNrZ3JvdW5kOiBjYXJ0Py5jb2xvdXI/LmhleGFkZWNpbWFsQ29kZSB9XCJcclxuICAgICAgICAgICAgICA+PC9zcGFuPlxyXG4gICAgICAgICAgICAgIHt7IGNhcnQ/LmNvbG91cj8ubmFtZSB9fVxyXG4gICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICA8L3RkPlxyXG4gICAgICAgIDwvdHI+XHJcbiAgICAgICAgPHRyXHJcbiAgICAgICAgICBjbGFzcz1cInJldmlld29yZGVyLWJvZHktY29udGFpbmVyXCJcclxuICAgICAgICAgICpuZ0lmPVwiY2FydD8uY29uZmlndXJhdGlvbkluZm9zLmxlbmd0aFwiXHJcbiAgICAgICAgICBbbmdDbGFzc109XCJjYXJ0Py5jb25maWd1cmF0aW9uSW5mb3MubGVuZ3RoID8gJ2JvcmRlck5ldycgOiAnJ1wiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPHRkIGNvbHNwYW49XCI5XCI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICAqbmdJZj1cImNhcnQ/LmNvbmZpZ3VyYXRpb25JbmZvcy5sZW5ndGg7IGVsc2UgYWNjZXNzb3JpZXNDb2xvclwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8cFxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJjb2xvcnMtcGFyYWdyYXBoIG1iLTBcIlxyXG4gICAgICAgICAgICAgICAgKm5nSWY9XCIhY2FydD8ucHJvZHVjdD8uZmxhc2hpbmdQcm9kdWN0OyBlbHNlIGZsYXNoaW5nQ29sb3VyXCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cInJldmlld29yZGVyLWNvbG9yIG1yLTNcIlxyXG4gICAgICAgICAgICAgICAgICBbbmdTdHlsZV09XCJ7XHJcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDpcclxuICAgICAgICAgICAgICAgICAgICAgIGNhcnQ/LmNvbmZpZ3VyYXRpb25JbmZvc1swXT8uY29uZmlndXJhdGlvblZhbHVlLnNwbGl0KCd8JylcclxuICAgICAgICAgICAgICAgICAgICAgIHwgc2xpY2UgOiAyXHJcbiAgICAgICAgICAgICAgICAgIH1cIlxyXG4gICAgICAgICAgICAgICAgPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIHt7XHJcbiAgICAgICAgICAgICAgICAgIGNhcnQ/LmNvbmZpZ3VyYXRpb25JbmZvc1swXT8uY29uZmlndXJhdGlvblZhbHVlLnNwbGl0KFwifFwiKVxyXG4gICAgICAgICAgICAgICAgICAgIHwgc2xpY2UgOiAxIDogMlxyXG4gICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNmbGFzaGluZ0NvbG91cj5cclxuICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwiY29sb3JzLXBhcmFncmFwaCBtYi0wXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJyZXZpZXdvcmRlci1jb2xvciBtci0zXCJcclxuICAgICAgICAgICAgICAgICAgICBbbmdTdHlsZV09XCJ7XHJcbiAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBnZXRDb2xvdXJEZXRhaWxzKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYXJ0RGV0YWlsc1tpXT8uY29uZmlndXJhdGlvbkluZm9zLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAnYmFja2dyb3VuZCdcclxuICAgICAgICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICAgICAgICB9XCJcclxuICAgICAgICAgICAgICAgICAgPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAge3tcclxuICAgICAgICAgICAgICAgICAgICBnZXRDb2xvdXJEZXRhaWxzKGNhcnREZXRhaWxzW2ldPy5jb25maWd1cmF0aW9uSW5mb3MsIFwibmFtZVwiKVxyXG4gICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI2FjY2Vzc29yaWVzQ29sb3I+XHJcbiAgICAgICAgICAgICAgPHAgY2xhc3M9XCJjb2xvcnMtcGFyYWdyYXBoIG15LTJcIiAqbmdJZj1cImhhc0NvbG91cihjYXJ0KVwiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJyZXZpZXdvcmRlci1jb2xvciBtci0yXCJcclxuICAgICAgICAgICAgICAgICAgW25nU3R5bGVdPVwie1xyXG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IGNhcnQ/LmNvbG91cj8uaGV4YWRlY2ltYWxDb2RlXHJcbiAgICAgICAgICAgICAgICAgIH1cIlxyXG4gICAgICAgICAgICAgICAgPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIHt7IGNhcnQ/LmNvbG91cj8ubmFtZSB9fVxyXG4gICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNhcnQ/LnN1YkxpbmVDb25maWdJbmZvcy5sZW5ndGggPiAwXCI+XHJcbiAgICAgICAgICAgICAgPHAgY2xhc3M9XCJtLTBcIj5cclxuICAgICAgICAgICAgICAgIDxhXHJcbiAgICAgICAgICAgICAgICAgIGhyZWY9XCJqYXZhc2NyaXB0OnZvaWQoMClcIlxyXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2hvd0hpZGUoaSlcIlxyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cInNlZS1tb3JlLWxpbmtcIlxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICB7eyBzaG93RGV0YWlsc1tpXSA9PSB0cnVlID8gXCJIaWRlXCIgOiBcIlNlZVwiIH19IG1vcmUgZGV0YWlsc1xyXG4gICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmV2aWV3b3JkZXItY29sbGFwc2VcIiAqbmdJZj1cInNob3dEZXRhaWxzW2ldXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tNiBidW5kbGUtZGV0YWlsc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgYnVuZGxlLWRldGFpbHMtaGVhZGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTNcIj5RdWFudGl0eTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0zXCI+TGVuZ3RoIChMTSk8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJjYXJ0Py5zdWJMaW5lQ29uZmlnSW5mb3NbaV0/LmJ1bmRsZU5hbWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTNcIj5CdW5kbGU8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0zXCI+UmVmZXJlbmNlPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInJvd1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgc3ViTGluZSBvZiBjYXJ0Py5zdWJMaW5lQ29uZmlnSW5mb3NcIlxyXG4gICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtM1wiPnt7IHN1YkxpbmU/LnF1YW50aXR5IH19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3sgc3ViTGluZT8ubGVuZ3RoIHwgbnVtYmVyIDogXCIwLjMtM1wiIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzdWJMaW5lPy5idW5kbGVOYW1lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtM1wiPnt7IHN1YkxpbmU/LmJ1bmRsZU5hbWUgfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0zXCI+e3sgc3ViTGluZT8ucmVmZXJlbmNlIH19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICA8L3RkPlxyXG4gICAgICAgIDwvdHI+XHJcbiAgICAgICAgPHRyPlxyXG4gICAgICAgICAgPHRkIGNvbHNwYW49XCI5XCIgY2xhc3M9XCJwLTBcIj5cclxuICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICpuZ0lmPVwiXHJcbiAgICAgICAgICAgICAgICBjYXJ0RGV0YWlsc1tpXT8ucHJvZHVjdD8uZmxhc2hpbmdQcm9kdWN0ICYmXHJcbiAgICAgICAgICAgICAgICBjYXJ0RGV0YWlsc1tpXT8ucHJvZHVjdENvbmZpZ3VyZWRJbmZvc1xyXG4gICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZsYXNoaW5nLWJsb2NrXCJcclxuICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBkYXRhIG9mIGNhcnREZXRhaWxzW2ldPy5wcm9kdWN0Q29uZmlndXJlZEluZm9zXCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz1cImZsYXNoLXRpdGxlXCI+e3sgZGF0YT8ucHJvZHVjdD8ubmFtZSB9fTwvaDM+XHJcbiAgICAgICAgICAgICAgICAgICAgPGg2IGNsYXNzPVwic2t1SWRcIj5TS1U6IHt7IGRhdGE/LnByb2R1Y3Q/LmNvZGUgfX08L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiZGF0YT8uZ2lydGhcIj5Hcml0aDogK3t7IGRhdGEuZ2lydGggfX1tbSA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwib2Zmc2V0LXNtLTMgY29sLXNtLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICB7eyBkYXRhPy5xdWFudGl0eURvdWJsZSB9fSB7eyBkYXRhPy51bml0VHlwZSB9fVxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zbS0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3sgZGF0YT8uYmFzZVByaWNlPy5mb3JtYXR0ZWRWYWx1ZSB8fCBcIi1cIlxyXG4gICAgICAgICAgICAgICAgICAgIH19PHNwYW4gKm5nSWY9XCJpc09yZGVyUGVybWlzc2lvbnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgPi97eyBkYXRhPy51bml0VHlwZSB9fTwvc3BhblxyXG4gICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7IGRhdGE/LnRvdGFsUHJpY2U/LmZvcm1hdHRlZFZhbHVlIHx8IFwiLVwiIH19XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJpc09yZGVyUGVybWlzc2lvbnNcIiBjbGFzcz1cImdzdC10ZXh0XCJcclxuICAgICAgICAgICAgICAgICAgICAgID5leGNsIEdTVDwvc3BhblxyXG4gICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L3RkPlxyXG4gICAgICAgIDwvdHI+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8bmctdGVtcGxhdGUgI25vZGF0YT5cclxuICAgICAgPHRyIGNsYXNzPVwicmV2aWV3b3JkZXItYm9keS1jb250YWluZXJcIj5cclxuICAgICAgICA8dGQgY29sc3Bhbj1cIjdcIiBjbGFzcz1cInRleHQtY2VudGVyXCI+e3sgbm9SZWNvcmQgfX08L3RkPlxyXG4gICAgICA8L3RyPlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuICA8L3RhYmxlPlxyXG48L2Rpdj5cclxuPGRpdlxyXG4gIGNsYXNzPVwibW9kYWwgZmFkZVwiXHJcbiAgaWQ9XCJpbWFnZU1vZGFsXCJcclxuICByb2xlPVwiZGlhbG9nXCJcclxuICBhcmlhLWxhYmVsbGVkYnk9XCJpbWFnZU1vZGFsXCJcclxuICBhcmlhLWhpZGRlbj1cInRydWVcIlxyXG4gICNpbWFnZU1vZGFsXHJcbj5cclxuICA8ZGl2IGNsYXNzPVwibW9kYWwtZGlhbG9nIG1vZGFsLWxnXCIgcm9sZT1cImRvY3VtZW50XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwibW9kYWwtY29udGVudFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtaGVhZGVyXCI+XHJcbiAgICAgICAgPGlcclxuICAgICAgICAgIGNsYXNzPVwiaWNvbi1jbG9zZSBpbnZpdGUtcG9wLWNsb3NlXCJcclxuICAgICAgICAgICNjbG9zZUludml0ZU1vZGFsXHJcbiAgICAgICAgICBkYXRhLWRpc21pc3M9XCJtb2RhbFwiXHJcbiAgICAgICAgICBhcmlhLWxhYmVsPVwiQ2xvc2VcIlxyXG4gICAgICAgID48L2k+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtYm9keSBtLTRcIj5cclxuICAgICAgICA8aW1nIFtzcmNdPVwiaW1hZ2VNb2RhbFNyY1wiIGFsdD1cImFsZXJ0XCIgLz5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
|