@renaissancerentals/renaissance-component 12.0.23 → 12.0.25
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/lib/announcement/Banner.js +13 -23
- package/lib/application/ApplicationModal.js +9 -7
- package/lib/application/ApplicationSection.js +46 -58
- package/lib/application/service/ApplicationService.js +3 -5
- package/lib/asset/AssetModal.js +15 -29
- package/lib/asset/VideoModal.js +9 -11
- package/lib/asset/service/AssetService.js +9 -17
- package/lib/card/Card.js +7 -5
- package/lib/contact/ContactModal.js +12 -10
- package/lib/contact/ContactSection.js +42 -82
- package/lib/contact/ContactSectionSkeleton.js +2 -2
- package/lib/contact/data/Contact.js +2 -3
- package/lib/contact/service/ContactService.js +6 -9
- package/lib/data/RenaissanceData.js +2 -3
- package/lib/feature/FeatureSection.js +5 -3
- package/lib/floorplan/card/FloorplanCard.js +31 -49
- package/lib/floorplan/card/FloorplanCardSkeleton.js +2 -2
- package/lib/floorplan/card/FloorplanCardSlider.js +18 -31
- package/lib/floorplan/card/FloorplanSliderCard.js +16 -18
- package/lib/floorplan/card/SimilarFloorplanCard.js +31 -43
- package/lib/floorplan/card/TestimonialsCard.js +6 -6
- package/lib/floorplan/data/Calendar.js +2 -3
- package/lib/floorplan/data/Floorplan.js +6 -11
- package/lib/floorplan/data/FloorplanFilters.js +4 -6
- package/lib/floorplan/data/Unit.js +4 -7
- package/lib/floorplan/filter/FloorplanDropDown.js +10 -18
- package/lib/floorplan/section/FloorplanHero.js +66 -118
- package/lib/floorplan/section/FloorplanSection.js +74 -133
- package/lib/floorplan/section/FloorplanSectionSkeleton.js +9 -15
- package/lib/floorplan/section/FloorplansHeader.js +97 -132
- package/lib/floorplan/section/FloorplansHeaderSekeleton.js +5 -3
- package/lib/floorplan/section/FloorplansSection.js +35 -51
- package/lib/floorplan/section/HeroBadgeStats.js +13 -13
- package/lib/floorplan/section/filter/Availability.js +17 -21
- package/lib/floorplan/section/filter/Bedroom.js +17 -21
- package/lib/floorplan/section/filter/Price.js +8 -6
- package/lib/floorplan/section/filter/Sort.js +17 -27
- package/lib/floorplan/section/filter/Style.js +16 -18
- package/lib/floorplan/service/FloorplanService.d.ts +8 -0
- package/lib/floorplan/service/FloorplanService.js +88 -127
- package/lib/footer/Footer.js +10 -6
- package/lib/gallery/DriveGallery.js +20 -37
- package/lib/gallery/Gallery.js +46 -79
- package/lib/gallery/GalleryHeroMain.js +41 -57
- package/lib/gallery/GalleryHeroMobile.js +31 -41
- package/lib/gallery/GalleryHeroSkeleton.js +2 -2
- package/lib/gallery/GalleryModal.js +20 -28
- package/lib/gallery/HeroImageCard.js +9 -7
- package/lib/gallery/ImageCard.js +7 -5
- package/lib/gallery/ImageCardSkeleton.js +6 -4
- package/lib/gallery/VideoTours.js +6 -4
- package/lib/gallery/VirtualTour.js +5 -3
- package/lib/header/InfoHeader.js +5 -3
- package/lib/index.js +91 -91
- package/lib/input/Captcha.js +10 -18
- package/lib/map/MapSection.js +5 -3
- package/lib/property/LeaseOfficeSkeleton.js +2 -2
- package/lib/property/PropertyLocation.js +18 -15
- package/lib/property/PropertyLocationSkeleton.js +2 -2
- package/lib/property/data/Property.js +4 -7
- package/lib/property/service/PropertyService.js +4 -6
- package/lib/review/ReviewSection.js +33 -51
- package/lib/service/AdminApi.js +3 -5
- package/lib/service/Api.js +3 -5
- package/lib/service/AssetApi.js +4 -7
- package/lib/service/GraphqlQuery.js +5 -8
- package/lib/service/RoundRobin.js +5 -8
- package/lib/sublet/SubletCard.js +10 -20
- package/lib/sublet/SubletImage.js +19 -35
- package/lib/sublet/SubletMessageModal.js +21 -44
- package/lib/sublet/SubletNotFound.js +2 -2
- package/lib/sublet/SubletSection.js +116 -165
- package/lib/sublet/SubletsSection.js +16 -29
- package/lib/sublet/data/Sublet.js +2 -3
- package/lib/sublet/services/SubletService.js +18 -28
- package/lib/summer-house/SummerHouseFeatures.js +2 -2
- package/lib/summer-house/SummerHousePricing.js +2 -2
- package/lib/summer-house/data/SummerHouseAmenities.js +2 -3
- package/lib/team/TeamSection.js +14 -22
- package/lib/team/card/TeamCard.js +8 -7
- package/lib/team/card/TeamCardSkeleton.js +2 -2
- package/lib/team/service/TeamService.js +3 -5
- package/lib/utils/PrettyPrintJson.js +5 -3
- package/lib/utils/Utils.d.ts +2 -0
- package/lib/utils/Utils.js +35 -55
- package/lib/video/Video.js +16 -30
- package/package.json +12 -11
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
4
3
|
Object.defineProperty(exports, "__esModule", {
|
|
5
4
|
value: true
|
|
6
5
|
});
|
|
@@ -19,105 +18,61 @@ var _VirtualTour = require("../../gallery/VirtualTour");
|
|
|
19
18
|
var _GalleryModal = require("../../gallery/GalleryModal");
|
|
20
19
|
var _GalleryHeroMobile = require("../../gallery/GalleryHeroMobile");
|
|
21
20
|
var _HeroBadgeStats = require("./HeroBadgeStats");
|
|
22
|
-
function _getRequireWildcardCache(
|
|
23
|
-
function _interopRequireWildcard(
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
_useState4 = _slicedToArray(_useState3, 2),
|
|
46
|
-
isAssetsLoading = _useState4[0],
|
|
47
|
-
setIsAssetsLoading = _useState4[1];
|
|
48
|
-
var _useState5 = (0, _react.useState)([]),
|
|
49
|
-
_useState6 = _slicedToArray(_useState5, 2),
|
|
50
|
-
videoTours = _useState6[0],
|
|
51
|
-
setVideoTours = _useState6[1];
|
|
52
|
-
var _useState7 = (0, _react.useState)(undefined),
|
|
53
|
-
_useState8 = _slicedToArray(_useState7, 2),
|
|
54
|
-
virtualTour = _useState8[0],
|
|
55
|
-
setVirtualTour = _useState8[1];
|
|
56
|
-
var _useState9 = (0, _react.useState)(false),
|
|
57
|
-
_useState10 = _slicedToArray(_useState9, 2),
|
|
58
|
-
showFloorplanModal = _useState10[0],
|
|
59
|
-
setShowFloorplanModal = _useState10[1];
|
|
60
|
-
var _useState11 = (0, _react.useState)(1),
|
|
61
|
-
_useState12 = _slicedToArray(_useState11, 2),
|
|
62
|
-
totalPages = _useState12[0],
|
|
63
|
-
setTotalPages = _useState12[1];
|
|
64
|
-
var _useState13 = (0, _react.useState)(0),
|
|
65
|
-
_useState14 = _slicedToArray(_useState13, 2),
|
|
66
|
-
toursCount = _useState14[0],
|
|
67
|
-
setToursCount = _useState14[1];
|
|
68
|
-
var _useState15 = (0, _react.useState)("photo"),
|
|
69
|
-
_useState16 = _slicedToArray(_useState15, 2),
|
|
70
|
-
currentView = _useState16[0],
|
|
71
|
-
setCurrentView = _useState16[1];
|
|
72
|
-
var _useState17 = (0, _react.useState)({}),
|
|
73
|
-
_useState18 = _slicedToArray(_useState17, 2),
|
|
74
|
-
assetInFocus = _useState18[0],
|
|
75
|
-
setAssetInFocus = _useState18[1];
|
|
76
|
-
var _useState19 = (0, _react.useState)(0),
|
|
77
|
-
_useState20 = _slicedToArray(_useState19, 2),
|
|
78
|
-
assetIndex = _useState20[0],
|
|
79
|
-
setAssetIndex = _useState20[1];
|
|
80
|
-
var _useState21 = (0, _react.useState)(false),
|
|
81
|
-
_useState22 = _slicedToArray(_useState21, 2),
|
|
82
|
-
showModal = _useState22[0],
|
|
83
|
-
setShowModal = _useState22[1];
|
|
84
|
-
var FIRST_PAGE_ASSET_COUNT = 5;
|
|
85
|
-
var GRID_SIZE = 8;
|
|
86
|
-
var imageClickedHandler = function imageClickedHandler(image) {
|
|
21
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
22
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
23
|
+
const FloorplanHero = _ref => {
|
|
24
|
+
let {
|
|
25
|
+
floorplan,
|
|
26
|
+
contactClickHandler,
|
|
27
|
+
applyClickHandler,
|
|
28
|
+
handleRefToMap
|
|
29
|
+
} = _ref;
|
|
30
|
+
const [assets, setAssets] = (0, _react.useState)([]);
|
|
31
|
+
const [isAssetsLoading, setIsAssetsLoading] = (0, _react.useState)(true);
|
|
32
|
+
const [videoTours, setVideoTours] = (0, _react.useState)([]);
|
|
33
|
+
const [virtualTour, setVirtualTour] = (0, _react.useState)(undefined);
|
|
34
|
+
const [showFloorplanModal, setShowFloorplanModal] = (0, _react.useState)(false);
|
|
35
|
+
const [totalPages, setTotalPages] = (0, _react.useState)(1);
|
|
36
|
+
const [toursCount, setToursCount] = (0, _react.useState)(0);
|
|
37
|
+
const [currentView, setCurrentView] = (0, _react.useState)("photo");
|
|
38
|
+
const [assetInFocus, setAssetInFocus] = (0, _react.useState)({});
|
|
39
|
+
const [assetIndex, setAssetIndex] = (0, _react.useState)(0);
|
|
40
|
+
const [showModal, setShowModal] = (0, _react.useState)(false);
|
|
41
|
+
const FIRST_PAGE_ASSET_COUNT = 5;
|
|
42
|
+
const GRID_SIZE = 8;
|
|
43
|
+
const imageClickedHandler = image => {
|
|
87
44
|
setShowModal(true);
|
|
88
45
|
setAssetInFocus(image);
|
|
89
|
-
setAssetIndex(assets.findIndex(
|
|
90
|
-
return value.id === image.id;
|
|
91
|
-
}));
|
|
46
|
+
setAssetIndex(assets.findIndex(value => value.id === image.id));
|
|
92
47
|
};
|
|
93
|
-
|
|
48
|
+
const modalCloseHandler = () => {
|
|
94
49
|
setShowModal(false);
|
|
95
50
|
setAssetInFocus({});
|
|
96
51
|
};
|
|
97
|
-
(0, _react.useEffect)(
|
|
52
|
+
(0, _react.useEffect)(() => {
|
|
98
53
|
if (floorplan.virtualTourLink) setVirtualTour(floorplan.virtualTourLink);
|
|
99
|
-
|
|
54
|
+
const tourLinks = [];
|
|
100
55
|
if (floorplan.videoTourLink) tourLinks.push(floorplan.videoTourLink);
|
|
101
56
|
if (floorplan.threeSixtyVideoTourLink) tourLinks.push(floorplan.threeSixtyVideoTourLink);
|
|
102
57
|
setVideoTours(tourLinks);
|
|
103
|
-
|
|
58
|
+
let otherAssetCounts = (tourLinks.length > 0 ? 1 : 0) + (floorplan.virtualTourLink ? 1 : 0);
|
|
104
59
|
setToursCount(otherAssetCounts);
|
|
105
|
-
|
|
60
|
+
const images = [];
|
|
106
61
|
images.push({
|
|
107
62
|
id: (0, _Utils.extractIdFrom)(floorplan.coverImage),
|
|
108
63
|
name: "cover image"
|
|
109
64
|
});
|
|
110
65
|
if (floorplan.photosFolderId) {
|
|
111
|
-
(0, _AssetService.getAssetsFrom)(floorplan.photosFolderId).then(
|
|
112
|
-
images.push
|
|
113
|
-
|
|
66
|
+
(0, _AssetService.getAssetsFrom)(floorplan.photosFolderId).then(galleryAssets => {
|
|
67
|
+
images.push(...galleryAssets);
|
|
68
|
+
let totalAssets = images.length + otherAssetCounts;
|
|
114
69
|
if (totalAssets > FIRST_PAGE_ASSET_COUNT) {
|
|
115
|
-
|
|
70
|
+
let pages = Math.trunc((totalAssets - FIRST_PAGE_ASSET_COUNT) / 8 + 1);
|
|
116
71
|
if ((totalAssets - FIRST_PAGE_ASSET_COUNT) % 8 === 0) {
|
|
117
72
|
setTotalPages(pages);
|
|
118
73
|
} else setTotalPages(pages + 1);
|
|
119
74
|
}
|
|
120
|
-
}).finally(
|
|
75
|
+
}).finally(() => {
|
|
121
76
|
setAssets(images);
|
|
122
77
|
setIsAssetsLoading(false);
|
|
123
78
|
});
|
|
@@ -127,19 +82,19 @@ var FloorplanHero = function FloorplanHero(_ref) {
|
|
|
127
82
|
setIsAssetsLoading(false);
|
|
128
83
|
}
|
|
129
84
|
}, [floorplan]);
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
return FIRST_PAGE_ASSET_COUNT - toursCount;
|
|
135
|
-
};
|
|
136
|
-
var getImagesForFirstSliderPage = assets.slice(0, assets.length >= imageCountForFirstPage() ? imageCountForFirstPage() : assets.length);
|
|
137
|
-
var assetsToShow = function assetsToShow(slideIndex) {
|
|
85
|
+
const isFirstSliderPage = slideIndex => slideIndex === 0;
|
|
86
|
+
const imageCountForFirstPage = () => FIRST_PAGE_ASSET_COUNT - toursCount;
|
|
87
|
+
const getImagesForFirstSliderPage = assets.slice(0, assets.length >= imageCountForFirstPage() ? imageCountForFirstPage() : assets.length);
|
|
88
|
+
const assetsToShow = slideIndex => {
|
|
138
89
|
if (isFirstSliderPage(slideIndex)) return getImagesForFirstSliderPage;
|
|
139
|
-
|
|
140
|
-
|
|
90
|
+
const startIndex = imageCountForFirstPage() + (slideIndex - 1) * 8;
|
|
91
|
+
const endIndex = startIndex + GRID_SIZE;
|
|
141
92
|
return assets.slice(startIndex, endIndex);
|
|
142
93
|
};
|
|
94
|
+
const printFloorplanAddress = () => {
|
|
95
|
+
const address = (0, _FloorplanService.floorplanAddress)(floorplan);
|
|
96
|
+
return address.address + ", " + address.city + " " + address.state + ", " + address.zipcode;
|
|
97
|
+
};
|
|
143
98
|
return /*#__PURE__*/_react.default.createElement("section", {
|
|
144
99
|
className: "section-floorplan--hero"
|
|
145
100
|
}, isAssetsLoading ? /*#__PURE__*/_react.default.createElement(_GalleryHeroSkeleton.GalleryHeroSkeleton, null) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
|
|
@@ -156,18 +111,16 @@ var FloorplanHero = function FloorplanHero(_ref) {
|
|
|
156
111
|
}), currentView === "photo" ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
|
|
157
112
|
className: "photo-view main"
|
|
158
113
|
}, /*#__PURE__*/_react.default.createElement(_muncherUi.ItemSlider, {
|
|
159
|
-
sliderItems:
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
});
|
|
170
|
-
})
|
|
114
|
+
sliderItems: [...Array(totalPages)].map((x, i) => /*#__PURE__*/_react.default.createElement(_GalleryHeroMain.GalleryHeroMain, {
|
|
115
|
+
isAvailableNow: (0, _FloorplanService.isFloorplanAvailable)(floorplan),
|
|
116
|
+
virtualTour: virtualTour,
|
|
117
|
+
isFirst: i === 0,
|
|
118
|
+
toursCount: toursCount,
|
|
119
|
+
setCurrentView: setCurrentView,
|
|
120
|
+
imageClickedHandler: imageClickedHandler,
|
|
121
|
+
assetsToShow: assetsToShow(i),
|
|
122
|
+
propertyId: floorplan.property.id
|
|
123
|
+
}))
|
|
171
124
|
})), /*#__PURE__*/_react.default.createElement("div", {
|
|
172
125
|
className: "photo-view mobile"
|
|
173
126
|
}, /*#__PURE__*/_react.default.createElement(_GalleryHeroMobile.GalleryHeroMobile, {
|
|
@@ -201,32 +154,27 @@ var FloorplanHero = function FloorplanHero(_ref) {
|
|
|
201
154
|
className: "floorplan-column-left"
|
|
202
155
|
}, /*#__PURE__*/_react.default.createElement("h3", null, floorplan.name), floorplan.units.length > 0 ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("h4", null, "$", (0, _Utils.rangeFrom)(floorplan.units, "rent"), "/mo"), /*#__PURE__*/_react.default.createElement("p", {
|
|
203
156
|
className: "floorplan--description"
|
|
204
|
-
}, (
|
|
157
|
+
}, printFloorplanAddress())) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null), /*#__PURE__*/_react.default.createElement("div", {
|
|
205
158
|
className: "floorplan--featured"
|
|
206
159
|
}, /*#__PURE__*/_react.default.createElement(_muncherUi.Button, {
|
|
207
160
|
size: "small",
|
|
208
|
-
onClick:
|
|
209
|
-
return setShowFloorplanModal(true);
|
|
210
|
-
}
|
|
161
|
+
onClick: () => setShowFloorplanModal(true)
|
|
211
162
|
}, /*#__PURE__*/_react.default.createElement(_muncherUi.Icon, {
|
|
212
163
|
name: "max",
|
|
213
164
|
orientation: "right"
|
|
214
|
-
}, "
|
|
165
|
+
}, "ViewFloorplan")), "|\xA0\xA0", /*#__PURE__*/_react.default.createElement(_muncherUi.Button, {
|
|
215
166
|
size: "small",
|
|
216
|
-
onClick:
|
|
217
|
-
return handleRefToMap();
|
|
218
|
-
}
|
|
167
|
+
onClick: () => handleRefToMap()
|
|
219
168
|
}, /*#__PURE__*/_react.default.createElement(_muncherUi.Icon, {
|
|
220
169
|
orientation: "right",
|
|
221
170
|
name: "map"
|
|
222
|
-
}, "View on Map")
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
})) : "")), /*#__PURE__*/_react.default.createElement("div", {
|
|
171
|
+
}, "View on Map")), floorplan.property.busRoutes.length > 0 ? /*#__PURE__*/_react.default.createElement("p", null, "Bus Routes:\xA0", floorplan.property.busRoutes.map((busRoute, index) => /*#__PURE__*/_react.default.createElement("span", {
|
|
172
|
+
key: "bus-route-" + index
|
|
173
|
+
}, /*#__PURE__*/_react.default.createElement("a", {
|
|
174
|
+
href: busRoute.busRouteLink,
|
|
175
|
+
target: "_blank",
|
|
176
|
+
rel: "noreferrer"
|
|
177
|
+
}, busRoute.busRoute), index < floorplan.property.busRoutes.length - 1 ? ", " : ""))) : "")), /*#__PURE__*/_react.default.createElement("div", {
|
|
230
178
|
className: "main"
|
|
231
179
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
232
180
|
className: " floorplan-column-right"
|
|
@@ -244,4 +192,4 @@ var FloorplanHero = function FloorplanHero(_ref) {
|
|
|
244
192
|
}))))));
|
|
245
193
|
};
|
|
246
194
|
exports.FloorplanHero = FloorplanHero;
|
|
247
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfbXVuY2hlclVpIiwiX0Fzc2V0U2VydmljZSIsIl9HYWxsZXJ5SGVyb1NrZWxldG9uIiwiX0dhbGxlcnlIZXJvTWFpbiIsIl9VdGlscyIsIl9Bc3NldE1vZGFsIiwiX0Zsb29ycGxhblNlcnZpY2UiLCJfVmlkZW9Ub3VycyIsIl9WaXJ0dWFsVG91ciIsIl9HYWxsZXJ5TW9kYWwiLCJfR2FsbGVyeUhlcm9Nb2JpbGUiLCJfSGVyb0JhZGdlU3RhdHMiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJub2RlSW50ZXJvcCIsIldlYWtNYXAiLCJjYWNoZUJhYmVsSW50ZXJvcCIsImNhY2hlTm9kZUludGVyb3AiLCJvYmoiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImRlZmF1bHQiLCJjYWNoZSIsImhhcyIsImdldCIsIm5ld09iaiIsImhhc1Byb3BlcnR5RGVzY3JpcHRvciIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwia2V5IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiZGVzYyIsInNldCIsIl90b0NvbnN1bWFibGVBcnJheSIsImFyciIsIl9hcnJheVdpdGhvdXRIb2xlcyIsIl9pdGVyYWJsZVRvQXJyYXkiLCJfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkiLCJfbm9uSXRlcmFibGVTcHJlYWQiLCJUeXBlRXJyb3IiLCJpdGVyIiwiU3ltYm9sIiwiaXRlcmF0b3IiLCJBcnJheSIsImZyb20iLCJpc0FycmF5IiwiX2FycmF5TGlrZVRvQXJyYXkiLCJfc2xpY2VkVG9BcnJheSIsImkiLCJfYXJyYXlXaXRoSG9sZXMiLCJfaXRlcmFibGVUb0FycmF5TGltaXQiLCJfbm9uSXRlcmFibGVSZXN0IiwibyIsIm1pbkxlbiIsIm4iLCJ0b1N0cmluZyIsInNsaWNlIiwiY29uc3RydWN0b3IiLCJuYW1lIiwidGVzdCIsImxlbiIsImxlbmd0aCIsImFycjIiLCJyIiwibCIsInQiLCJlIiwidSIsImEiLCJmIiwibmV4dCIsImRvbmUiLCJwdXNoIiwidmFsdWUiLCJyZXR1cm4iLCJGbG9vcnBsYW5IZXJvIiwiX3JlZiIsIl9mbG9vcnBsYW4kdW5pdHMkIiwiX2Zsb29ycGxhbiR1bml0cyQyIiwiZmxvb3JwbGFuIiwiY29udGFjdENsaWNrSGFuZGxlciIsImFwcGx5Q2xpY2tIYW5kbGVyIiwiaGFuZGxlUmVmVG9NYXAiLCJfdXNlU3RhdGUiLCJ1c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJhc3NldHMiLCJzZXRBc3NldHMiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsImlzQXNzZXRzTG9hZGluZyIsInNldElzQXNzZXRzTG9hZGluZyIsIl91c2VTdGF0ZTUiLCJfdXNlU3RhdGU2IiwidmlkZW9Ub3VycyIsInNldFZpZGVvVG91cnMiLCJfdXNlU3RhdGU3IiwidW5kZWZpbmVkIiwiX3VzZVN0YXRlOCIsInZpcnR1YWxUb3VyIiwic2V0VmlydHVhbFRvdXIiLCJfdXNlU3RhdGU5IiwiX3VzZVN0YXRlMTAiLCJzaG93Rmxvb3JwbGFuTW9kYWwiLCJzZXRTaG93Rmxvb3JwbGFuTW9kYWwiLCJfdXNlU3RhdGUxMSIsIl91c2VTdGF0ZTEyIiwidG90YWxQYWdlcyIsInNldFRvdGFsUGFnZXMiLCJfdXNlU3RhdGUxMyIsIl91c2VTdGF0ZTE0IiwidG91cnNDb3VudCIsInNldFRvdXJzQ291bnQiLCJfdXNlU3RhdGUxNSIsIl91c2VTdGF0ZTE2IiwiY3VycmVudFZpZXciLCJzZXRDdXJyZW50VmlldyIsIl91c2VTdGF0ZTE3IiwiX3VzZVN0YXRlMTgiLCJhc3NldEluRm9jdXMiLCJzZXRBc3NldEluRm9jdXMiLCJfdXNlU3RhdGUxOSIsIl91c2VTdGF0ZTIwIiwiYXNzZXRJbmRleCIsInNldEFzc2V0SW5kZXgiLCJfdXNlU3RhdGUyMSIsIl91c2VTdGF0ZTIyIiwic2hvd01vZGFsIiwic2V0U2hvd01vZGFsIiwiRklSU1RfUEFHRV9BU1NFVF9DT1VOVCIsIkdSSURfU0laRSIsImltYWdlQ2xpY2tlZEhhbmRsZXIiLCJpbWFnZSIsImZpbmRJbmRleCIsImlkIiwibW9kYWxDbG9zZUhhbmRsZXIiLCJ1c2VFZmZlY3QiLCJ2aXJ0dWFsVG91ckxpbmsiLCJ0b3VyTGlua3MiLCJ2aWRlb1RvdXJMaW5rIiwidGhyZWVTaXh0eVZpZGVvVG91ckxpbmsiLCJvdGhlckFzc2V0Q291bnRzIiwiaW1hZ2VzIiwiZXh0cmFjdElkRnJvbSIsImNvdmVySW1hZ2UiLCJwaG90b3NGb2xkZXJJZCIsImdldEFzc2V0c0Zyb20iLCJ0aGVuIiwiZ2FsbGVyeUFzc2V0cyIsImFwcGx5IiwidG90YWxBc3NldHMiLCJwYWdlcyIsIk1hdGgiLCJ0cnVuYyIsImZpbmFsbHkiLCJjb25zb2xlIiwibG9nIiwiaXNGaXJzdFNsaWRlclBhZ2UiLCJzbGlkZUluZGV4IiwiaW1hZ2VDb3VudEZvckZpcnN0UGFnZSIsImdldEltYWdlc0ZvckZpcnN0U2xpZGVyUGFnZSIsImFzc2V0c1RvU2hvdyIsInN0YXJ0SW5kZXgiLCJlbmRJbmRleCIsImNyZWF0ZUVsZW1lbnQiLCJjbGFzc05hbWUiLCJHYWxsZXJ5SGVyb1NrZWxldG9uIiwiRnJhZ21lbnQiLCJHYWxsZXJ5TW9kYWwiLCJwcm9wZXJ0eUlkIiwicHJvcGVydHkiLCJJdGVtU2xpZGVyIiwic2xpZGVySXRlbXMiLCJtYXAiLCJ4IiwiR2FsbGVyeUhlcm9NYWluIiwiaXNBdmFpbGFibGVOb3ciLCJpc0Zsb29ycGxhbkF2YWlsYWJsZSIsImlzRmlyc3QiLCJHYWxsZXJ5SGVyb01vYmlsZSIsIlZpZGVvVG91cnMiLCJ2aWRlb1RvdXJVcmxzIiwiVmlydHVhbFRvdXIiLCJ2aXJ0dWFsVG91clVybCIsIkhlcm9CYWRnZVN0YXRzIiwiQXNzZXRNb2RhbCIsImFzc2V0VXJsIiwicGhvdG8iLCJhc3NldFRpdGxlIiwidW5pdHMiLCJyYW5nZUZyb20iLCJhZGRyZXNzIiwiemlwY29kZSIsIkJ1dHRvbiIsInNpemUiLCJvbkNsaWNrIiwiSWNvbiIsIm9yaWVudGF0aW9uIiwiYnVzUm91dGVzIiwiYnVzUm91dGUiLCJpbmRleCIsImhyZWYiLCJidXNSb3V0ZUxpbmsiLCJ0YXJnZXQiLCJ2YXJpYW50IiwiU2hhcmVCdXR0b24iLCJ0aXRsZSIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZmxvb3JwbGFuL3NlY3Rpb24vRmxvb3JwbGFuSGVyby50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7dXNlRWZmZWN0LCB1c2VTdGF0ZX0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgXCIuL2Fzc2V0cy9GbG9vcnBsYW5IZXJvLnNjc3NcIjtcbmltcG9ydCB7QnV0dG9uLCBJY29uLCBJdGVtU2xpZGVyLCBTaGFyZUJ1dHRvbn0gZnJvbSBcIkBjb250ZW50bXVuY2gvbXVuY2hlci11aVwiO1xuaW1wb3J0IHtBc3NldH0gZnJvbSBcIi4uLy4uL2Fzc2V0L2RhdGEvQXNzZXRcIjtcbmltcG9ydCB7Z2V0QXNzZXRzRnJvbX0gZnJvbSBcIi4uLy4uL2Fzc2V0L3NlcnZpY2UvQXNzZXRTZXJ2aWNlXCI7XG5pbXBvcnQge0dhbGxlcnlIZXJvU2tlbGV0b259IGZyb20gXCIuLi8uLi9nYWxsZXJ5L0dhbGxlcnlIZXJvU2tlbGV0b25cIjtcbmltcG9ydCB7R2FsbGVyeUhlcm9NYWlufSBmcm9tIFwiLi4vLi4vZ2FsbGVyeS9HYWxsZXJ5SGVyb01haW5cIjtcbmltcG9ydCB7ZXh0cmFjdElkRnJvbSwgcmFuZ2VGcm9tfSBmcm9tIFwiLi4vLi4vdXRpbHMvVXRpbHNcIjtcbmltcG9ydCB7Rmxvb3JwbGFufSBmcm9tIFwiLi4vZGF0YS9GbG9vcnBsYW5cIjtcbmltcG9ydCB7QXNzZXRNb2RhbH0gZnJvbSBcIi4uLy4uL2Fzc2V0L0Fzc2V0TW9kYWxcIjtcbmltcG9ydCB7aXNGbG9vcnBsYW5BdmFpbGFibGV9IGZyb20gXCIuLi9zZXJ2aWNlL0Zsb29ycGxhblNlcnZpY2VcIjtcbmltcG9ydCB7VmlkZW9Ub3Vyc30gZnJvbSBcIi4uLy4uL2dhbGxlcnkvVmlkZW9Ub3Vyc1wiO1xuaW1wb3J0IHtWaXJ0dWFsVG91cn0gZnJvbSBcIi4uLy4uL2dhbGxlcnkvVmlydHVhbFRvdXJcIjtcbmltcG9ydCB7R2FsbGVyeU1vZGFsfSBmcm9tIFwiLi4vLi4vZ2FsbGVyeS9HYWxsZXJ5TW9kYWxcIjtcbmltcG9ydCB7R2FsbGVyeUhlcm9Nb2JpbGV9IGZyb20gXCIuLi8uLi9nYWxsZXJ5L0dhbGxlcnlIZXJvTW9iaWxlXCI7XG5pbXBvcnQge0hlcm9CYWRnZVN0YXRzfSBmcm9tIFwiLi9IZXJvQmFkZ2VTdGF0c1wiO1xuXG5leHBvcnQgY29uc3QgRmxvb3JwbGFuSGVybzogUmVhY3QuRkM8Rmxvb3JwbGFuUHJvcHM+ID0gKFxuICAgIHtmbG9vcnBsYW4sIGNvbnRhY3RDbGlja0hhbmRsZXIsIGFwcGx5Q2xpY2tIYW5kbGVyLCBoYW5kbGVSZWZUb01hcH0pID0+IHtcbiAgICBjb25zdCBbYXNzZXRzLCBzZXRBc3NldHNdID0gdXNlU3RhdGU8QXNzZXRbXT4oW10pO1xuICAgIGNvbnN0IFtpc0Fzc2V0c0xvYWRpbmcsIHNldElzQXNzZXRzTG9hZGluZ10gPSB1c2VTdGF0ZSh0cnVlKTtcbiAgICBjb25zdCBbdmlkZW9Ub3Vycywgc2V0VmlkZW9Ub3Vyc10gPSB1c2VTdGF0ZTxzdHJpbmdbXT4oW10pO1xuICAgIGNvbnN0IFt2aXJ0dWFsVG91ciwgc2V0VmlydHVhbFRvdXJdID0gdXNlU3RhdGU8c3RyaW5nIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICAgIGNvbnN0IFtzaG93Rmxvb3JwbGFuTW9kYWwsIHNldFNob3dGbG9vcnBsYW5Nb2RhbF0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gICAgY29uc3QgW3RvdGFsUGFnZXMsIHNldFRvdGFsUGFnZXNdID0gdXNlU3RhdGUoMSk7XG4gICAgY29uc3QgW3RvdXJzQ291bnQsIHNldFRvdXJzQ291bnRdID0gdXNlU3RhdGUoMCk7XG4gICAgY29uc3QgW2N1cnJlbnRWaWV3LCBzZXRDdXJyZW50Vmlld10gPSB1c2VTdGF0ZTxcInBob3RvXCIgfCBcInZpcnR1YWwgdG91clwiIHwgXCJ2aWRlbyB0b3VyXCI+KFwicGhvdG9cIik7XG4gICAgY29uc3QgW2Fzc2V0SW5Gb2N1cywgc2V0QXNzZXRJbkZvY3VzXSA9IHVzZVN0YXRlPEFzc2V0Pih7fSBhcyBBc3NldCk7XG4gICAgY29uc3QgW2Fzc2V0SW5kZXgsIHNldEFzc2V0SW5kZXhdID0gdXNlU3RhdGUoMCk7XG4gICAgY29uc3QgW3Nob3dNb2RhbCwgc2V0U2hvd01vZGFsXSA9IHVzZVN0YXRlKGZhbHNlKTtcblxuICAgIGNvbnN0IEZJUlNUX1BBR0VfQVNTRVRfQ09VTlQgPSA1O1xuICAgIGNvbnN0IEdSSURfU0laRSA9IDg7XG4gICAgY29uc3QgaW1hZ2VDbGlja2VkSGFuZGxlciA9IChpbWFnZTogQXNzZXQpID0+IHtcbiAgICAgICAgc2V0U2hvd01vZGFsKHRydWUpO1xuICAgICAgICBzZXRBc3NldEluRm9jdXMoaW1hZ2UpO1xuICAgICAgICBzZXRBc3NldEluZGV4KGFzc2V0cy5maW5kSW5kZXgodmFsdWUgPT4gdmFsdWUuaWQgPT09IGltYWdlLmlkKSk7XG4gICAgfTtcbiAgICBjb25zdCBtb2RhbENsb3NlSGFuZGxlciA9ICgpID0+IHtcbiAgICAgICAgc2V0U2hvd01vZGFsKGZhbHNlKTtcbiAgICAgICAgc2V0QXNzZXRJbkZvY3VzKHt9IGFzIEFzc2V0KTtcbiAgICB9O1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlmIChmbG9vcnBsYW4udmlydHVhbFRvdXJMaW5rKVxuICAgICAgICAgICAgc2V0VmlydHVhbFRvdXIoZmxvb3JwbGFuLnZpcnR1YWxUb3VyTGluayk7XG4gICAgICAgIGNvbnN0IHRvdXJMaW5rcyA9IFtdO1xuICAgICAgICBpZiAoZmxvb3JwbGFuLnZpZGVvVG91ckxpbmspXG4gICAgICAgICAgICB0b3VyTGlua3MucHVzaChmbG9vcnBsYW4udmlkZW9Ub3VyTGluayk7XG4gICAgICAgIGlmIChmbG9vcnBsYW4udGhyZWVTaXh0eVZpZGVvVG91ckxpbmspXG4gICAgICAgICAgICB0b3VyTGlua3MucHVzaChmbG9vcnBsYW4udGhyZWVTaXh0eVZpZGVvVG91ckxpbmspO1xuICAgICAgICBzZXRWaWRlb1RvdXJzKHRvdXJMaW5rcyk7XG5cbiAgICAgICAgbGV0IG90aGVyQXNzZXRDb3VudHMgPSAodG91ckxpbmtzLmxlbmd0aCA+IDAgPyAxIDogMCkgKyAoZmxvb3JwbGFuLnZpcnR1YWxUb3VyTGluayA/IDEgOiAwKTtcbiAgICAgICAgc2V0VG91cnNDb3VudChvdGhlckFzc2V0Q291bnRzKTtcbiAgICAgICAgY29uc3QgaW1hZ2VzOiBBc3NldFtdID0gW107XG4gICAgICAgIGltYWdlcy5wdXNoKHtpZDogZXh0cmFjdElkRnJvbShmbG9vcnBsYW4uY292ZXJJbWFnZSksIG5hbWU6IFwiY292ZXIgaW1hZ2VcIn0gYXMgQXNzZXQpO1xuXG4gICAgICAgIGlmIChmbG9vcnBsYW4ucGhvdG9zRm9sZGVySWQpIHtcbiAgICAgICAgICAgIGdldEFzc2V0c0Zyb20oZmxvb3JwbGFuLnBob3Rvc0ZvbGRlcklkKS50aGVuKGdhbGxlcnlBc3NldHMgPT4ge1xuICAgICAgICAgICAgICAgIGltYWdlcy5wdXNoKC4uLmdhbGxlcnlBc3NldHMpO1xuXG4gICAgICAgICAgICAgICAgbGV0IHRvdGFsQXNzZXRzID0gaW1hZ2VzLmxlbmd0aCArIG90aGVyQXNzZXRDb3VudHM7XG5cbiAgICAgICAgICAgICAgICBpZiAodG90YWxBc3NldHMgPiBGSVJTVF9QQUdFX0FTU0VUX0NPVU5UKSB7XG5cbiAgICAgICAgICAgICAgICAgICAgbGV0IHBhZ2VzID0gTWF0aC50cnVuYygoKHRvdGFsQXNzZXRzIC0gRklSU1RfUEFHRV9BU1NFVF9DT1VOVCkgLyA4KSArIDEpO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmICgodG90YWxBc3NldHMgLSBGSVJTVF9QQUdFX0FTU0VUX0NPVU5UKSAlIDggPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldFRvdGFsUGFnZXMocGFnZXMpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldFRvdGFsUGFnZXMocGFnZXMgKyAxKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIH0pLmZpbmFsbHkoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHNldEFzc2V0cyhpbWFnZXMpO1xuICAgICAgICAgICAgICAgIHNldElzQXNzZXRzTG9hZGluZyhmYWxzZSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHNldEFzc2V0cyhpbWFnZXMpO1xuICAgICAgICAgICAgY29uc29sZS5sb2coaW1hZ2VzKVxuICAgICAgICAgICAgc2V0SXNBc3NldHNMb2FkaW5nKGZhbHNlKTtcbiAgICAgICAgfVxuXG4gICAgfSwgW2Zsb29ycGxhbl0pXG5cbiAgICBjb25zdCBpc0ZpcnN0U2xpZGVyUGFnZSA9IChzbGlkZUluZGV4OiBudW1iZXIpID0+IHNsaWRlSW5kZXggPT09IDA7XG5cbiAgICBjb25zdCBpbWFnZUNvdW50Rm9yRmlyc3RQYWdlID0gKCkgPT4gRklSU1RfUEFHRV9BU1NFVF9DT1VOVCAtIHRvdXJzQ291bnQ7XG5cblxuICAgIGNvbnN0IGdldEltYWdlc0ZvckZpcnN0U2xpZGVyUGFnZSA9IGFzc2V0cy5zbGljZSgwLCBhc3NldHMubGVuZ3RoID49IGltYWdlQ291bnRGb3JGaXJzdFBhZ2UoKSA/IGltYWdlQ291bnRGb3JGaXJzdFBhZ2UoKSA6IGFzc2V0cy5sZW5ndGgpO1xuICAgIGNvbnN0IGFzc2V0c1RvU2hvdyA9IChzbGlkZUluZGV4OiBudW1iZXIpID0+IHtcblxuICAgICAgICBpZiAoaXNGaXJzdFNsaWRlclBhZ2Uoc2xpZGVJbmRleCkpXG4gICAgICAgICAgICByZXR1cm4gZ2V0SW1hZ2VzRm9yRmlyc3RTbGlkZXJQYWdlO1xuXG4gICAgICAgIGNvbnN0IHN0YXJ0SW5kZXggPSBpbWFnZUNvdW50Rm9yRmlyc3RQYWdlKCkgKyAoc2xpZGVJbmRleCAtIDEpICogODtcbiAgICAgICAgY29uc3QgZW5kSW5kZXggPSBzdGFydEluZGV4ICsgR1JJRF9TSVpFO1xuXG4gICAgICAgIHJldHVybiBhc3NldHMuc2xpY2Uoc3RhcnRJbmRleCwgZW5kSW5kZXgpO1xuXG5cbiAgICB9O1xuXG4gICAgcmV0dXJuIChcbiAgICAgICAgPHNlY3Rpb24gY2xhc3NOYW1lPVwic2VjdGlvbi1mbG9vcnBsYW4tLWhlcm9cIj5cbiAgICAgICAgICAgIHtpc0Fzc2V0c0xvYWRpbmcgPyA8R2FsbGVyeUhlcm9Ta2VsZXRvbi8+IDpcbiAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImdhbGxlcnktaGVyb1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPEdhbGxlcnlNb2RhbCBhc3NldHM9e2Fzc2V0c30gYXNzZXRJbkZvY3VzPXthc3NldEluRm9jdXN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldEFzc2V0SW5Gb2N1cz17c2V0QXNzZXRJbkZvY3VzfSBzaG93TW9kYWw9e3Nob3dNb2RhbH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXRJbmRleD17YXNzZXRJbmRleH0gc2V0QXNzZXRJbmRleD17c2V0QXNzZXRJbmRleH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kYWxDbG9zZUhhbmRsZXI9e21vZGFsQ2xvc2VIYW5kbGVyfSBwcm9wZXJ0eUlkPXtmbG9vcnBsYW4ucHJvcGVydHkuaWR9Lz5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtjdXJyZW50VmlldyA9PT0gXCJwaG90b1wiID9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInBob3RvLXZpZXcgbWFpblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW1TbGlkZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzbGlkZXJJdGVtcz17Wy4uLkFycmF5KHRvdGFsUGFnZXMpXS5tYXAoKHgsIGkpID0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxHYWxsZXJ5SGVyb01haW4gaXNBdmFpbGFibGVOb3c9e2lzRmxvb3JwbGFuQXZhaWxhYmxlKGZsb29ycGxhbil9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlydHVhbFRvdXI9e3ZpcnR1YWxUb3VyfSBpc0ZpcnN0PXtpID09PSAwfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvdXJzQ291bnQ9e3RvdXJzQ291bnR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0Q3VycmVudFZpZXc9e3NldEN1cnJlbnRWaWV3fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGltYWdlQ2xpY2tlZEhhbmRsZXI9e2ltYWdlQ2xpY2tlZEhhbmRsZXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXRzVG9TaG93PXthc3NldHNUb1Nob3coaSl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHlJZD17Zmxvb3JwbGFuLnByb3BlcnR5LmlkfS8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKX0vPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJwaG90by12aWV3IG1vYmlsZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEdhbGxlcnlIZXJvTW9iaWxlIGFzc2V0cz17YXNzZXRzfSB0b3Vyc0NvdW50PXt0b3Vyc0NvdW50fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpcnR1YWxUb3VyPXt2aXJ0dWFsVG91cn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRDdXJyZW50Vmlldz17c2V0Q3VycmVudFZpZXd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW1hZ2VDbGlja2VkSGFuZGxlcj17aW1hZ2VDbGlja2VkSGFuZGxlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eUlkPXtmbG9vcnBsYW4ucHJvcGVydHkuaWR9Lz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC8+IDogXCJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICB7Y3VycmVudFZpZXcgPT09IFwidmlkZW8gdG91clwiID8gPFZpZGVvVG91cnMgdmlkZW9Ub3VyVXJscz17dmlkZW9Ub3Vyc30vPiA6IFwiXCJ9XG4gICAgICAgICAgICAgICAgICAgICAgICB7Y3VycmVudFZpZXcgPT09IFwidmlydHVhbCB0b3VyXCIgPyA8VmlydHVhbFRvdXIgdmlydHVhbFRvdXJVcmw9e3ZpcnR1YWxUb3VyfS8+IDogXCJcIn1cbiAgICAgICAgICAgICAgICAgICAgICAgIDxIZXJvQmFkZ2VTdGF0cyBjdXJyZW50Vmlldz17Y3VycmVudFZpZXd9IHNldEN1cnJlbnRWaWV3PXtzZXRDdXJyZW50Vmlld31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3RhbEFzc2V0cz17YXNzZXRzPy5sZW5ndGh9IHZpZGVvVG91cnM9e3ZpZGVvVG91cnN9IHZpcnR1YWxUb3VyPXt2aXJ0dWFsVG91cn0vPlxuXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvPlxuXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICA8QXNzZXRNb2RhbCBhc3NldFVybD17Zmxvb3JwbGFuLnBob3RvfSBhc3NldFRpdGxlPVwiRmxvb3JwbGFuIGltYWdlXCIgc2hvd01vZGFsPXtzaG93Rmxvb3JwbGFuTW9kYWx9XG4gICAgICAgICAgICAgICAgICAgICAgICBzZXRTaG93TW9kYWw9e3NldFNob3dGbG9vcnBsYW5Nb2RhbH0gcHJvcGVydHlJZD17Zmxvb3JwbGFuLnByb3BlcnR5LmlkfS8+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxvb3JwbGFuLS10d28tY29sdW1uc1wiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsb29ycGxhbi1jb2x1bW4tbGVmdFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGgzPntmbG9vcnBsYW4ubmFtZX08L2gzPlxuICAgICAgICAgICAgICAgICAgICAgICAge2Zsb29ycGxhbi51bml0cy5sZW5ndGggPiAwID8gPD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDQ+JHtyYW5nZUZyb20oZmxvb3JwbGFuLnVuaXRzLCBcInJlbnRcIil9L21vPC9oND5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJmbG9vcnBsYW4tLWRlc2NyaXB0aW9uXCI+e2Zsb29ycGxhbi51bml0c1swXT8uYWRkcmVzc30sIHtmbG9vcnBsYW4udW5pdHNbMF0/LnppcGNvZGV9PC9wPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICA8Lz4gOiBcIlwifVxuXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsb29ycGxhbi0tZmVhdHVyZWRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QnV0dG9uIHNpemU9XCJzbWFsbFwiIG9uQ2xpY2s9eygpID0+IHNldFNob3dGbG9vcnBsYW5Nb2RhbCh0cnVlKX0+PEljb24gbmFtZT1cIm1heFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcmllbnRhdGlvbj1cInJpZ2h0XCI+Vmlld1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGbG9vcnBsYW48L0ljb24+IDwvQnV0dG9uPnwmbmJzcDsmbmJzcDs8QnV0dG9uIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gaGFuZGxlUmVmVG9NYXAoKX0+PEljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcmllbnRhdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwibWFwXCI+Vmlld1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uIE1hcDwvSWNvbj4gPC9CdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2Zsb29ycGxhbi5wcm9wZXJ0eS5idXNSb3V0ZXMubGVuZ3RoID4gMCA/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPkJ1cyBSb3V0ZXM6Jm5ic3A7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmbG9vcnBsYW4ucHJvcGVydHkuYnVzUm91dGVzLm1hcCgoYnVzUm91dGUsIGluZGV4KSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGtleT17XCJidXMtcm91dGUtXCIgKyBpbmRleH0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9e2J1c1JvdXRlLmJ1c1JvdXRlTGlua30gdGFyZ2V0PVwiX2JsYW5rXCI+e2J1c1JvdXRlLmJ1c1JvdXRlfTwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2luZGV4IDwgZmxvb3JwbGFuLnByb3BlcnR5LmJ1c1JvdXRlcy5sZW5ndGggLSAxID8gXCIsIFwiIDogXCJcIn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJcIn1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm1haW5cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiIGZsb29ycGxhbi1jb2x1bW4tcmlnaHRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QnV0dG9uIHZhcmlhbnQ9XCJwcmltYXJ5XCIgc2l6ZT1cIm1lZGl1bVwiIG9uQ2xpY2s9e2NvbnRhY3RDbGlja0hhbmRsZXJ9PmNvbnRhY3QgdXM8L0J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QnV0dG9uIHZhcmlhbnQ9XCJ0ZXJ0aWFyeVwiIHNpemU9XCJtZWRpdW1cIiBvbkNsaWNrPXthcHBseUNsaWNrSGFuZGxlcn0+YXBwbHk8L0J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U2hhcmVCdXR0b24gdGl0bGU9XCJDaGVjayBvdXQgdGhpcyBhcGFydG1lbnRcIiBzaXplPVwibGFyZ2VcIi8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9zZWN0aW9uPlxuICAgICk7XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIEZsb29ycGxhblByb3BzIHtcbiAgICBmbG9vcnBsYW46IEZsb29ycGxhbjtcbiAgICBjb250YWN0Q2xpY2tIYW5kbGVyOiAoKSA9PiB2b2lkO1xuICAgIGFwcGx5Q2xpY2tIYW5kbGVyOiAoKSA9PiB2b2lkO1xuICAgIGhhbmRsZVJlZlRvTWFwOiAoKSA9PiB2b2lkO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0FBLE9BQUE7QUFDQSxJQUFBQyxVQUFBLEdBQUFELE9BQUE7QUFFQSxJQUFBRSxhQUFBLEdBQUFGLE9BQUE7QUFDQSxJQUFBRyxvQkFBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksZ0JBQUEsR0FBQUosT0FBQTtBQUNBLElBQUFLLE1BQUEsR0FBQUwsT0FBQTtBQUVBLElBQUFNLFdBQUEsR0FBQU4sT0FBQTtBQUNBLElBQUFPLGlCQUFBLEdBQUFQLE9BQUE7QUFDQSxJQUFBUSxXQUFBLEdBQUFSLE9BQUE7QUFDQSxJQUFBUyxZQUFBLEdBQUFULE9BQUE7QUFDQSxJQUFBVSxhQUFBLEdBQUFWLE9BQUE7QUFDQSxJQUFBVyxrQkFBQSxHQUFBWCxPQUFBO0FBQ0EsSUFBQVksZUFBQSxH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
|
|
195
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfbXVuY2hlclVpIiwiX0Fzc2V0U2VydmljZSIsIl9HYWxsZXJ5SGVyb1NrZWxldG9uIiwiX0dhbGxlcnlIZXJvTWFpbiIsIl9VdGlscyIsIl9Bc3NldE1vZGFsIiwiX0Zsb29ycGxhblNlcnZpY2UiLCJfVmlkZW9Ub3VycyIsIl9WaXJ0dWFsVG91ciIsIl9HYWxsZXJ5TW9kYWwiLCJfR2FsbGVyeUhlcm9Nb2JpbGUiLCJfSGVyb0JhZGdlU3RhdHMiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJlIiwiV2Vha01hcCIsInIiLCJ0IiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJoYXMiLCJnZXQiLCJuIiwiX19wcm90b19fIiwiYSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwidSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImkiLCJzZXQiLCJGbG9vcnBsYW5IZXJvIiwiX3JlZiIsImZsb29ycGxhbiIsImNvbnRhY3RDbGlja0hhbmRsZXIiLCJhcHBseUNsaWNrSGFuZGxlciIsImhhbmRsZVJlZlRvTWFwIiwiYXNzZXRzIiwic2V0QXNzZXRzIiwidXNlU3RhdGUiLCJpc0Fzc2V0c0xvYWRpbmciLCJzZXRJc0Fzc2V0c0xvYWRpbmciLCJ2aWRlb1RvdXJzIiwic2V0VmlkZW9Ub3VycyIsInZpcnR1YWxUb3VyIiwic2V0VmlydHVhbFRvdXIiLCJ1bmRlZmluZWQiLCJzaG93Rmxvb3JwbGFuTW9kYWwiLCJzZXRTaG93Rmxvb3JwbGFuTW9kYWwiLCJ0b3RhbFBhZ2VzIiwic2V0VG90YWxQYWdlcyIsInRvdXJzQ291bnQiLCJzZXRUb3Vyc0NvdW50IiwiY3VycmVudFZpZXciLCJzZXRDdXJyZW50VmlldyIsImFzc2V0SW5Gb2N1cyIsInNldEFzc2V0SW5Gb2N1cyIsImFzc2V0SW5kZXgiLCJzZXRBc3NldEluZGV4Iiwic2hvd01vZGFsIiwic2V0U2hvd01vZGFsIiwiRklSU1RfUEFHRV9BU1NFVF9DT1VOVCIsIkdSSURfU0laRSIsImltYWdlQ2xpY2tlZEhhbmRsZXIiLCJpbWFnZSIsImZpbmRJbmRleCIsInZhbHVlIiwiaWQiLCJtb2RhbENsb3NlSGFuZGxlciIsInVzZUVmZmVjdCIsInZpcnR1YWxUb3VyTGluayIsInRvdXJMaW5rcyIsInZpZGVvVG91ckxpbmsiLCJwdXNoIiwidGhyZWVTaXh0eVZpZGVvVG91ckxpbmsiLCJvdGhlckFzc2V0Q291bnRzIiwibGVuZ3RoIiwiaW1hZ2VzIiwiZXh0cmFjdElkRnJvbSIsImNvdmVySW1hZ2UiLCJuYW1lIiwicGhvdG9zRm9sZGVySWQiLCJnZXRBc3NldHNGcm9tIiwidGhlbiIsImdhbGxlcnlBc3NldHMiLCJ0b3RhbEFzc2V0cyIsInBhZ2VzIiwiTWF0aCIsInRydW5jIiwiZmluYWxseSIsImNvbnNvbGUiLCJsb2ciLCJpc0ZpcnN0U2xpZGVyUGFnZSIsInNsaWRlSW5kZXgiLCJpbWFnZUNvdW50Rm9yRmlyc3RQYWdlIiwiZ2V0SW1hZ2VzRm9yRmlyc3RTbGlkZXJQYWdlIiwic2xpY2UiLCJhc3NldHNUb1Nob3ciLCJzdGFydEluZGV4IiwiZW5kSW5kZXgiLCJwcmludEZsb29ycGxhbkFkZHJlc3MiLCJhZGRyZXNzIiwiZmxvb3JwbGFuQWRkcmVzcyIsImNpdHkiLCJzdGF0ZSIsInppcGNvZGUiLCJjcmVhdGVFbGVtZW50IiwiY2xhc3NOYW1lIiwiR2FsbGVyeUhlcm9Ta2VsZXRvbiIsIkZyYWdtZW50IiwiR2FsbGVyeU1vZGFsIiwicHJvcGVydHlJZCIsInByb3BlcnR5IiwiSXRlbVNsaWRlciIsInNsaWRlckl0ZW1zIiwiQXJyYXkiLCJtYXAiLCJ4IiwiR2FsbGVyeUhlcm9NYWluIiwiaXNBdmFpbGFibGVOb3ciLCJpc0Zsb29ycGxhbkF2YWlsYWJsZSIsImlzRmlyc3QiLCJHYWxsZXJ5SGVyb01vYmlsZSIsIlZpZGVvVG91cnMiLCJ2aWRlb1RvdXJVcmxzIiwiVmlydHVhbFRvdXIiLCJ2aXJ0dWFsVG91clVybCIsIkhlcm9CYWRnZVN0YXRzIiwiQXNzZXRNb2RhbCIsImFzc2V0VXJsIiwicGhvdG8iLCJhc3NldFRpdGxlIiwidW5pdHMiLCJyYW5nZUZyb20iLCJCdXR0b24iLCJzaXplIiwib25DbGljayIsIkljb24iLCJvcmllbnRhdGlvbiIsImJ1c1JvdXRlcyIsImJ1c1JvdXRlIiwiaW5kZXgiLCJrZXkiLCJocmVmIiwiYnVzUm91dGVMaW5rIiwidGFyZ2V0IiwicmVsIiwidmFyaWFudCIsIlNoYXJlQnV0dG9uIiwidGl0bGUiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2Zsb29ycGxhbi9zZWN0aW9uL0Zsb29ycGxhbkhlcm8udHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwge3VzZUVmZmVjdCwgdXNlU3RhdGV9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IFwiLi9hc3NldHMvRmxvb3JwbGFuSGVyby5zY3NzXCI7XG5pbXBvcnQge0J1dHRvbiwgSWNvbiwgSXRlbVNsaWRlciwgU2hhcmVCdXR0b259IGZyb20gXCJAY29udGVudG11bmNoL211bmNoZXItdWlcIjtcbmltcG9ydCB7QXNzZXR9IGZyb20gXCIuLi8uLi9hc3NldC9kYXRhL0Fzc2V0XCI7XG5pbXBvcnQge2dldEFzc2V0c0Zyb219IGZyb20gXCIuLi8uLi9hc3NldC9zZXJ2aWNlL0Fzc2V0U2VydmljZVwiO1xuaW1wb3J0IHtHYWxsZXJ5SGVyb1NrZWxldG9ufSBmcm9tIFwiLi4vLi4vZ2FsbGVyeS9HYWxsZXJ5SGVyb1NrZWxldG9uXCI7XG5pbXBvcnQge0dhbGxlcnlIZXJvTWFpbn0gZnJvbSBcIi4uLy4uL2dhbGxlcnkvR2FsbGVyeUhlcm9NYWluXCI7XG5pbXBvcnQge2V4dHJhY3RJZEZyb20sIHJhbmdlRnJvbX0gZnJvbSBcIi4uLy4uL3V0aWxzL1V0aWxzXCI7XG5pbXBvcnQge0Zsb29ycGxhbn0gZnJvbSBcIi4uL2RhdGEvRmxvb3JwbGFuXCI7XG5pbXBvcnQge0Fzc2V0TW9kYWx9IGZyb20gXCIuLi8uLi9hc3NldC9Bc3NldE1vZGFsXCI7XG5pbXBvcnQge2Zsb29ycGxhbkFkZHJlc3MsIGlzRmxvb3JwbGFuQXZhaWxhYmxlfSBmcm9tIFwiLi4vc2VydmljZS9GbG9vcnBsYW5TZXJ2aWNlXCI7XG5pbXBvcnQge1ZpZGVvVG91cnN9IGZyb20gXCIuLi8uLi9nYWxsZXJ5L1ZpZGVvVG91cnNcIjtcbmltcG9ydCB7VmlydHVhbFRvdXJ9IGZyb20gXCIuLi8uLi9nYWxsZXJ5L1ZpcnR1YWxUb3VyXCI7XG5pbXBvcnQge0dhbGxlcnlNb2RhbH0gZnJvbSBcIi4uLy4uL2dhbGxlcnkvR2FsbGVyeU1vZGFsXCI7XG5pbXBvcnQge0dhbGxlcnlIZXJvTW9iaWxlfSBmcm9tIFwiLi4vLi4vZ2FsbGVyeS9HYWxsZXJ5SGVyb01vYmlsZVwiO1xuaW1wb3J0IHtIZXJvQmFkZ2VTdGF0c30gZnJvbSBcIi4vSGVyb0JhZGdlU3RhdHNcIjtcblxuZXhwb3J0IGNvbnN0IEZsb29ycGxhbkhlcm86IFJlYWN0LkZDPEZsb29ycGxhblByb3BzPiA9IChcbiAgICB7Zmxvb3JwbGFuLCBjb250YWN0Q2xpY2tIYW5kbGVyLCBhcHBseUNsaWNrSGFuZGxlciwgaGFuZGxlUmVmVG9NYXB9KSA9PiB7XG4gICAgY29uc3QgW2Fzc2V0cywgc2V0QXNzZXRzXSA9IHVzZVN0YXRlPEFzc2V0W10+KFtdKTtcbiAgICBjb25zdCBbaXNBc3NldHNMb2FkaW5nLCBzZXRJc0Fzc2V0c0xvYWRpbmddID0gdXNlU3RhdGUodHJ1ZSk7XG4gICAgY29uc3QgW3ZpZGVvVG91cnMsIHNldFZpZGVvVG91cnNdID0gdXNlU3RhdGU8c3RyaW5nW10+KFtdKTtcbiAgICBjb25zdCBbdmlydHVhbFRvdXIsIHNldFZpcnR1YWxUb3VyXSA9IHVzZVN0YXRlPHN0cmluZyB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgICBjb25zdCBbc2hvd0Zsb29ycGxhbk1vZGFsLCBzZXRTaG93Rmxvb3JwbGFuTW9kYWxdID0gdXNlU3RhdGUoZmFsc2UpO1xuICAgIGNvbnN0IFt0b3RhbFBhZ2VzLCBzZXRUb3RhbFBhZ2VzXSA9IHVzZVN0YXRlKDEpO1xuICAgIGNvbnN0IFt0b3Vyc0NvdW50LCBzZXRUb3Vyc0NvdW50XSA9IHVzZVN0YXRlKDApO1xuICAgIGNvbnN0IFtjdXJyZW50Vmlldywgc2V0Q3VycmVudFZpZXddID0gdXNlU3RhdGU8XCJwaG90b1wiIHwgXCJ2aXJ0dWFsIHRvdXJcIiB8IFwidmlkZW8gdG91clwiPihcInBob3RvXCIpO1xuICAgIGNvbnN0IFthc3NldEluRm9jdXMsIHNldEFzc2V0SW5Gb2N1c10gPSB1c2VTdGF0ZTxBc3NldD4oe30gYXMgQXNzZXQpO1xuICAgIGNvbnN0IFthc3NldEluZGV4LCBzZXRBc3NldEluZGV4XSA9IHVzZVN0YXRlKDApO1xuICAgIGNvbnN0IFtzaG93TW9kYWwsIHNldFNob3dNb2RhbF0gPSB1c2VTdGF0ZShmYWxzZSk7XG5cbiAgICBjb25zdCBGSVJTVF9QQUdFX0FTU0VUX0NPVU5UID0gNTtcbiAgICBjb25zdCBHUklEX1NJWkUgPSA4O1xuICAgIGNvbnN0IGltYWdlQ2xpY2tlZEhhbmRsZXIgPSAoaW1hZ2U6IEFzc2V0KSA9PiB7XG4gICAgICAgIHNldFNob3dNb2RhbCh0cnVlKTtcbiAgICAgICAgc2V0QXNzZXRJbkZvY3VzKGltYWdlKTtcbiAgICAgICAgc2V0QXNzZXRJbmRleChhc3NldHMuZmluZEluZGV4KHZhbHVlID0+IHZhbHVlLmlkID09PSBpbWFnZS5pZCkpO1xuICAgIH07XG4gICAgY29uc3QgbW9kYWxDbG9zZUhhbmRsZXIgPSAoKSA9PiB7XG4gICAgICAgIHNldFNob3dNb2RhbChmYWxzZSk7XG4gICAgICAgIHNldEFzc2V0SW5Gb2N1cyh7fSBhcyBBc3NldCk7XG4gICAgfTtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAoZmxvb3JwbGFuLnZpcnR1YWxUb3VyTGluaylcbiAgICAgICAgICAgIHNldFZpcnR1YWxUb3VyKGZsb29ycGxhbi52aXJ0dWFsVG91ckxpbmspO1xuICAgICAgICBjb25zdCB0b3VyTGlua3MgPSBbXTtcbiAgICAgICAgaWYgKGZsb29ycGxhbi52aWRlb1RvdXJMaW5rKVxuICAgICAgICAgICAgdG91ckxpbmtzLnB1c2goZmxvb3JwbGFuLnZpZGVvVG91ckxpbmspO1xuICAgICAgICBpZiAoZmxvb3JwbGFuLnRocmVlU2l4dHlWaWRlb1RvdXJMaW5rKVxuICAgICAgICAgICAgdG91ckxpbmtzLnB1c2goZmxvb3JwbGFuLnRocmVlU2l4dHlWaWRlb1RvdXJMaW5rKTtcbiAgICAgICAgc2V0VmlkZW9Ub3Vycyh0b3VyTGlua3MpO1xuXG4gICAgICAgIGxldCBvdGhlckFzc2V0Q291bnRzID0gKHRvdXJMaW5rcy5sZW5ndGggPiAwID8gMSA6IDApICsgKGZsb29ycGxhbi52aXJ0dWFsVG91ckxpbmsgPyAxIDogMCk7XG4gICAgICAgIHNldFRvdXJzQ291bnQob3RoZXJBc3NldENvdW50cyk7XG4gICAgICAgIGNvbnN0IGltYWdlczogQXNzZXRbXSA9IFtdO1xuICAgICAgICBpbWFnZXMucHVzaCh7aWQ6IGV4dHJhY3RJZEZyb20oZmxvb3JwbGFuLmNvdmVySW1hZ2UpLCBuYW1lOiBcImNvdmVyIGltYWdlXCJ9IGFzIEFzc2V0KTtcblxuICAgICAgICBpZiAoZmxvb3JwbGFuLnBob3Rvc0ZvbGRlcklkKSB7XG4gICAgICAgICAgICBnZXRBc3NldHNGcm9tKGZsb29ycGxhbi5waG90b3NGb2xkZXJJZCkudGhlbihnYWxsZXJ5QXNzZXRzID0+IHtcbiAgICAgICAgICAgICAgICBpbWFnZXMucHVzaCguLi5nYWxsZXJ5QXNzZXRzKTtcblxuICAgICAgICAgICAgICAgIGxldCB0b3RhbEFzc2V0cyA9IGltYWdlcy5sZW5ndGggKyBvdGhlckFzc2V0Q291bnRzO1xuXG4gICAgICAgICAgICAgICAgaWYgKHRvdGFsQXNzZXRzID4gRklSU1RfUEFHRV9BU1NFVF9DT1VOVCkge1xuXG4gICAgICAgICAgICAgICAgICAgIGxldCBwYWdlcyA9IE1hdGgudHJ1bmMoKCh0b3RhbEFzc2V0cyAtIEZJUlNUX1BBR0VfQVNTRVRfQ09VTlQpIC8gOCkgKyAxKTtcblxuICAgICAgICAgICAgICAgICAgICBpZiAoKHRvdGFsQXNzZXRzIC0gRklSU1RfUEFHRV9BU1NFVF9DT1VOVCkgJSA4ID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZXRUb3RhbFBhZ2VzKHBhZ2VzKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICBzZXRUb3RhbFBhZ2VzKHBhZ2VzICsgMSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB9KS5maW5hbGx5KCgpID0+IHtcbiAgICAgICAgICAgICAgICBzZXRBc3NldHMoaW1hZ2VzKTtcbiAgICAgICAgICAgICAgICBzZXRJc0Fzc2V0c0xvYWRpbmcoZmFsc2UpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzZXRBc3NldHMoaW1hZ2VzKTtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGltYWdlcylcbiAgICAgICAgICAgIHNldElzQXNzZXRzTG9hZGluZyhmYWxzZSk7XG4gICAgICAgIH1cblxuICAgIH0sIFtmbG9vcnBsYW5dKVxuXG4gICAgY29uc3QgaXNGaXJzdFNsaWRlclBhZ2UgPSAoc2xpZGVJbmRleDogbnVtYmVyKSA9PiBzbGlkZUluZGV4ID09PSAwO1xuICAgIGNvbnN0IGltYWdlQ291bnRGb3JGaXJzdFBhZ2UgPSAoKSA9PiBGSVJTVF9QQUdFX0FTU0VUX0NPVU5UIC0gdG91cnNDb3VudDtcblxuICAgIGNvbnN0IGdldEltYWdlc0ZvckZpcnN0U2xpZGVyUGFnZSA9IGFzc2V0cy5zbGljZSgwLCBhc3NldHMubGVuZ3RoID49IGltYWdlQ291bnRGb3JGaXJzdFBhZ2UoKSA/IGltYWdlQ291bnRGb3JGaXJzdFBhZ2UoKSA6IGFzc2V0cy5sZW5ndGgpO1xuICAgIGNvbnN0IGFzc2V0c1RvU2hvdyA9IChzbGlkZUluZGV4OiBudW1iZXIpID0+IHtcblxuICAgICAgICBpZiAoaXNGaXJzdFNsaWRlclBhZ2Uoc2xpZGVJbmRleCkpXG4gICAgICAgICAgICByZXR1cm4gZ2V0SW1hZ2VzRm9yRmlyc3RTbGlkZXJQYWdlO1xuXG4gICAgICAgIGNvbnN0IHN0YXJ0SW5kZXggPSBpbWFnZUNvdW50Rm9yRmlyc3RQYWdlKCkgKyAoc2xpZGVJbmRleCAtIDEpICogODtcbiAgICAgICAgY29uc3QgZW5kSW5kZXggPSBzdGFydEluZGV4ICsgR1JJRF9TSVpFO1xuXG4gICAgICAgIHJldHVybiBhc3NldHMuc2xpY2Uoc3RhcnRJbmRleCwgZW5kSW5kZXgpO1xuICAgIH07XG5cbiAgICBjb25zdCBwcmludEZsb29ycGxhbkFkZHJlc3MgPSAoKSA9PiB7XG4gICAgICAgIGNvbnN0IGFkZHJlc3MgPSBmbG9vcnBsYW5BZGRyZXNzKGZsb29ycGxhbik7XG4gICAgICAgIHJldHVybiBhZGRyZXNzLmFkZHJlc3MgKyBcIiwgXCIgKyBhZGRyZXNzLmNpdHkgKyBcIiBcIiArIGFkZHJlc3Muc3RhdGUgKyBcIiwgXCIgKyBhZGRyZXNzLnppcGNvZGU7XG4gICAgfVxuICAgIHJldHVybiAoXG4gICAgICAgIDxzZWN0aW9uIGNsYXNzTmFtZT1cInNlY3Rpb24tZmxvb3JwbGFuLS1oZXJvXCI+XG4gICAgICAgICAgICB7aXNBc3NldHNMb2FkaW5nID8gPEdhbGxlcnlIZXJvU2tlbGV0b24vPiA6XG4gICAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJnYWxsZXJ5LWhlcm9cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxHYWxsZXJ5TW9kYWwgYXNzZXRzPXthc3NldHN9IGFzc2V0SW5Gb2N1cz17YXNzZXRJbkZvY3VzfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRBc3NldEluRm9jdXM9e3NldEFzc2V0SW5Gb2N1c30gc2hvd01vZGFsPXtzaG93TW9kYWx9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2V0SW5kZXg9e2Fzc2V0SW5kZXh9IHNldEFzc2V0SW5kZXg9e3NldEFzc2V0SW5kZXh9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGFsQ2xvc2VIYW5kbGVyPXttb2RhbENsb3NlSGFuZGxlcn0gcHJvcGVydHlJZD17Zmxvb3JwbGFuLnByb3BlcnR5LmlkfS8+XG4gICAgICAgICAgICAgICAgICAgICAgICB7Y3VycmVudFZpZXcgPT09IFwicGhvdG9cIiA/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJwaG90by12aWV3IG1haW5cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtU2xpZGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2xpZGVySXRlbXM9e1suLi5BcnJheSh0b3RhbFBhZ2VzKV0ubWFwKCh4LCBpKSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8R2FsbGVyeUhlcm9NYWluIGlzQXZhaWxhYmxlTm93PXtpc0Zsb29ycGxhbkF2YWlsYWJsZShmbG9vcnBsYW4pfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpcnR1YWxUb3VyPXt2aXJ0dWFsVG91cn0gaXNGaXJzdD17aSA9PT0gMH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3Vyc0NvdW50PXt0b3Vyc0NvdW50fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldEN1cnJlbnRWaWV3PXtzZXRDdXJyZW50Vmlld31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbWFnZUNsaWNrZWRIYW5kbGVyPXtpbWFnZUNsaWNrZWRIYW5kbGVyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2V0c1RvU2hvdz17YXNzZXRzVG9TaG93KGkpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5SWQ9e2Zsb29ycGxhbi5wcm9wZXJ0eS5pZH0vPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9Lz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicGhvdG8tdmlldyBtb2JpbGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxHYWxsZXJ5SGVyb01vYmlsZSBhc3NldHM9e2Fzc2V0c30gdG91cnNDb3VudD17dG91cnNDb3VudH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aXJ0dWFsVG91cj17dmlydHVhbFRvdXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0Q3VycmVudFZpZXc9e3NldEN1cnJlbnRWaWV3fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGltYWdlQ2xpY2tlZEhhbmRsZXI9e2ltYWdlQ2xpY2tlZEhhbmRsZXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHlJZD17Zmxvb3JwbGFuLnByb3BlcnR5LmlkfS8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvPiA6IFwiXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAge2N1cnJlbnRWaWV3ID09PSBcInZpZGVvIHRvdXJcIiA/IDxWaWRlb1RvdXJzIHZpZGVvVG91clVybHM9e3ZpZGVvVG91cnN9Lz4gOiBcIlwifVxuICAgICAgICAgICAgICAgICAgICAgICAge2N1cnJlbnRWaWV3ID09PSBcInZpcnR1YWwgdG91clwiID8gPFZpcnR1YWxUb3VyIHZpcnR1YWxUb3VyVXJsPXt2aXJ0dWFsVG91cn0vPiA6IFwiXCJ9XG4gICAgICAgICAgICAgICAgICAgICAgICA8SGVyb0JhZGdlU3RhdHMgY3VycmVudFZpZXc9e2N1cnJlbnRWaWV3fSBzZXRDdXJyZW50Vmlldz17c2V0Q3VycmVudFZpZXd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxBc3NldHM9e2Fzc2V0cz8ubGVuZ3RofSB2aWRlb1RvdXJzPXt2aWRlb1RvdXJzfSB2aXJ0dWFsVG91cj17dmlydHVhbFRvdXJ9Lz5cblxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8Lz5cblxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgPEFzc2V0TW9kYWwgYXNzZXRVcmw9e2Zsb29ycGxhbi5waG90b30gYXNzZXRUaXRsZT1cIkZsb29ycGxhbiBpbWFnZVwiIHNob3dNb2RhbD17c2hvd0Zsb29ycGxhbk1vZGFsfVxuICAgICAgICAgICAgICAgICAgICAgICAgc2V0U2hvd01vZGFsPXtzZXRTaG93Rmxvb3JwbGFuTW9kYWx9IHByb3BlcnR5SWQ9e2Zsb29ycGxhbi5wcm9wZXJ0eS5pZH0vPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250YWluZXJcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsb29ycGxhbi0tdHdvLWNvbHVtbnNcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbG9vcnBsYW4tY29sdW1uLWxlZnRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxoMz57Zmxvb3JwbGFuLm5hbWV9PC9oMz5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9vcnBsYW4udW5pdHMubGVuZ3RoID4gMCA/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDQ+JHtyYW5nZUZyb20oZmxvb3JwbGFuLnVuaXRzLCBcInJlbnRcIil9L21vPC9oND5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cImZsb29ycGxhbi0tZGVzY3JpcHRpb25cIj57cHJpbnRGbG9vcnBsYW5BZGRyZXNzKCl9PC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Lz4gOiA8PjwvPlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbG9vcnBsYW4tLWZlYXR1cmVkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPEJ1dHRvbiBzaXplPVwic21hbGxcIiBvbkNsaWNrPXsoKSA9PiBzZXRTaG93Rmxvb3JwbGFuTW9kYWwodHJ1ZSl9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SWNvbiBuYW1lPVwibWF4XCIgb3JpZW50YXRpb249XCJyaWdodFwiPlZpZXdGbG9vcnBsYW48L0ljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCZuYnNwOyZuYnNwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxCdXR0b24gc2l6ZT1cInNtYWxsXCIgb25DbGljaz17KCkgPT4gaGFuZGxlUmVmVG9NYXAoKX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJY29uIG9yaWVudGF0aW9uPVwicmlnaHRcIiBuYW1lPVwibWFwXCI+VmlldyBvbiBNYXA8L0ljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2Zsb29ycGxhbi5wcm9wZXJ0eS5idXNSb3V0ZXMubGVuZ3RoID4gMCA/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPkJ1cyBSb3V0ZXM6Jm5ic3A7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Zmxvb3JwbGFuLnByb3BlcnR5LmJ1c1JvdXRlcy5tYXAoKGJ1c1JvdXRlLCBpbmRleCkgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBrZXk9e1wiYnVzLXJvdXRlLVwiICsgaW5kZXh9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPXtidXNSb3V0ZS5idXNSb3V0ZUxpbmt9IHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vcmVmZXJyZXJcIj57YnVzUm91dGUuYnVzUm91dGV9PC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7aW5kZXggPCBmbG9vcnBsYW4ucHJvcGVydHkuYnVzUm91dGVzLmxlbmd0aCAtIDEgPyBcIiwgXCIgOiBcIlwifVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBcIlwifVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm1haW5cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiIGZsb29ycGxhbi1jb2x1bW4tcmlnaHRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QnV0dG9uIHZhcmlhbnQ9XCJwcmltYXJ5XCIgc2l6ZT1cIm1lZGl1bVwiIG9uQ2xpY2s9e2NvbnRhY3RDbGlja0hhbmRsZXJ9PmNvbnRhY3QgdXM8L0J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QnV0dG9uIHZhcmlhbnQ9XCJ0ZXJ0aWFyeVwiIHNpemU9XCJtZWRpdW1cIiBvbkNsaWNrPXthcHBseUNsaWNrSGFuZGxlcn0+YXBwbHk8L0J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U2hhcmVCdXR0b24gdGl0bGU9XCJDaGVjayBvdXQgdGhpcyBhcGFydG1lbnRcIiBzaXplPVwibGFyZ2VcIi8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9zZWN0aW9uPlxuICAgICk7XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIEZsb29ycGxhblByb3BzIHtcbiAgICBmbG9vcnBsYW46IEZsb29ycGxhbjtcbiAgICBjb250YWN0Q2xpY2tIYW5kbGVyOiAoKSA9PiB2b2lkO1xuICAgIGFwcGx5Q2xpY2tIYW5kbGVyOiAoKSA9PiB2b2lkO1xuICAgIGhhbmRsZVJlZlRvTWFwOiAoKSA9PiB2b2lkO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxJQUFBQSxNQUFBLEdBQUFD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
|