ng-easycommerce 0.0.686 → 0.0.687
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/README.md +7 -0
- package/assets/ec-i18n/ct.json +301 -299
- package/assets/ec-i18n/en.json +435 -433
- package/assets/ec-i18n/es.json +2 -2
- package/assets/ec-i18n/fr.json +308 -306
- package/assets/ec-i18n/gl.json +302 -300
- package/assets/ec-i18n/pr.json +302 -300
- package/bundles/ng-easycommerce.umd.js +221 -66
- package/bundles/ng-easycommerce.umd.js.map +1 -1
- package/bundles/ng-easycommerce.umd.min.js +1 -1
- package/bundles/ng-easycommerce.umd.min.js.map +1 -1
- package/esm2015/lib/classes/component-helper.js +51 -1
- package/esm2015/lib/ec-component/product-detail-ec/product-detail-ec.component.js +20 -1
- package/esm2015/lib/ec-component/widgets-ec/place-to-pay-ec/place-to-pay-ec.component.js +16 -6
- package/esm5/lib/classes/component-helper.js +92 -1
- package/esm5/lib/ec-component/product-detail-ec/product-detail-ec.component.js +55 -1
- package/esm5/lib/ec-component/widgets-ec/place-to-pay-ec/place-to-pay-ec.component.js +15 -5
- package/fesm2015/ng-easycommerce.js +115 -36
- package/fesm2015/ng-easycommerce.js.map +1 -1
- package/fesm5/ng-easycommerce.js +221 -66
- package/fesm5/ng-easycommerce.js.map +1 -1
- package/lib/classes/component-helper.d.ts +4 -0
- package/lib/ec-component/product-detail-ec/product-detail-ec.component.d.ts +2 -0
- package/package.json +1 -1
|
@@ -28,6 +28,42 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
28
28
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
29
29
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
30
30
|
};
|
|
31
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
32
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
33
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
34
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
35
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
36
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
37
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
38
|
+
});
|
|
39
|
+
};
|
|
40
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
41
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
42
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
43
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
44
|
+
function step(op) {
|
|
45
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
46
|
+
while (_) try {
|
|
47
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
48
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
49
|
+
switch (op[0]) {
|
|
50
|
+
case 0: case 1: t = op; break;
|
|
51
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
52
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
53
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
54
|
+
default:
|
|
55
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
56
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
57
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
58
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
59
|
+
if (t[2]) _.ops.pop();
|
|
60
|
+
_.trys.pop(); continue;
|
|
61
|
+
}
|
|
62
|
+
op = body.call(thisArg, _);
|
|
63
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
64
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
65
|
+
}
|
|
66
|
+
};
|
|
31
67
|
var __read = (this && this.__read) || function (o, n) {
|
|
32
68
|
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
33
69
|
if (!m) return o;
|
|
@@ -196,6 +232,24 @@ var ProductDetailEcComponent = /** @class */ (function (_super) {
|
|
|
196
232
|
_this.changeImgFocus = function (img) {
|
|
197
233
|
_this.focusImage = img;
|
|
198
234
|
};
|
|
235
|
+
_this.copyProductUrl = function () { return __awaiter(_this, void 0, void 0, function () {
|
|
236
|
+
var copied;
|
|
237
|
+
return __generator(this, function (_a) {
|
|
238
|
+
switch (_a.label) {
|
|
239
|
+
case 0: return [4 /*yield*/, this.copyTextToClipboard(this.getCurrentUrl())];
|
|
240
|
+
case 1:
|
|
241
|
+
copied = _a.sent();
|
|
242
|
+
this.toastrService.show(copied ? 'share-link-copied' : 'share-link-copy-failed');
|
|
243
|
+
return [2 /*return*/];
|
|
244
|
+
}
|
|
245
|
+
});
|
|
246
|
+
}); };
|
|
247
|
+
_this.openWhatsappShare = function () {
|
|
248
|
+
var shareUrl = _this.buildWhatsappShareUrl();
|
|
249
|
+
if (typeof window !== 'undefined') {
|
|
250
|
+
window.open(shareUrl, '_blank', 'noopener,noreferrer');
|
|
251
|
+
}
|
|
252
|
+
};
|
|
199
253
|
_this.mediaUrl = _this.consts.mediaUrl();
|
|
200
254
|
_this.activedRoute.params.subscribe(function (queryParams) {
|
|
201
255
|
var variant = (_this.activedRoute.snapshot.queryParamMap.get('variant'));
|
|
@@ -307,4 +361,4 @@ var ProductDetailEcComponent = /** @class */ (function (_super) {
|
|
|
307
361
|
return ProductDetailEcComponent;
|
|
308
362
|
}(ComponentHelper));
|
|
309
363
|
export { ProductDetailEcComponent };
|
|
310
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1kZXRhaWwtZWMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmctZWFzeWNvbW1lcmNlLyIsInNvdXJjZXMiOlsibGliL2VjLWNvbXBvbmVudC9wcm9kdWN0LWRldGFpbC1lYy9wcm9kdWN0LWRldGFpbC1lYy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsU0FBUyxFQUFjLE1BQU0sZUFBZSxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNqRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDOUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDcEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzFELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNoRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUN0RixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDM0UsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxhQUFhLEVBQWdCLE1BQU0sTUFBTSxD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QkFDYixlQUFlO2dCQUNkLGdCQUFnQjtnQkFDMUIsTUFBTTtnQkFDSSxZQUFZO2dCQUN2QixJQUFJO2dCQUNELFFBQVE7O0lBYlA7UUFBckIsU0FBUyxDQUFDLFNBQVMsQ0FBQzs2REFBcUI7SUF0QmpDLHdCQUF3QjtRQU5wQyxTQUFTLENBQUM7WUFDUCxRQUFRLEVBQUUsdUJBQXVCO1lBQ2pDLFlBQWlEO1lBRWpELFNBQVMsRUFBRSxDQUFDLG9CQUFvQixDQUFDOztTQUNwQyxDQUFDO09BQ1csd0JBQXdCLENBNE9wQztJQUFELCtCQUFDO0NBQUEsQUE1T0QsQ0FBOEMsZUFBZSxHQTRPNUQ7U0E1T1ksd0JBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIFZpZXdDaGlsZCwgRWxlbWVudFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBmaWx0ZXIgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBDb21wb25lbnRIZWxwZXIgfSBmcm9tICcuLi8uLi9jbGFzc2VzL2NvbXBvbmVudC1oZWxwZXInO1xuaW1wb3J0IHsgQ29uc3RhbnRzIH0gZnJvbSAnLi4vLi4vY29yZS5jb25zdHMnO1xuaW1wb3J0IHsgQW5hbHl0aWNzU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2FuYWx5dGljcy5zZXJ2aWNlJztcbmltcG9ydCB7IENhcnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY2FydC5zZXJ2aWNlJztcbmltcG9ydCB7IE9wdGlvbnNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvb3B0aW9ucy5zZXJ2aWNlJztcbmltcG9ydCB7IFByb2R1Y3REZXRhaWxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvcHJvZHVjdHMvcHJvZHVjdC1kZXRhaWwuc2VydmljZSc7XG5pbXBvcnQgeyBQcm9kdWN0c1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9wcm9kdWN0cy9wcm9kdWN0cy5zZXJ2aWNlJztcbmltcG9ydCB7IFRvYXN0U2VydmljZSB9IGZyb20gJy4uLy4uL3V0aWxzL3RvYXN0LnNlcnZpY2UnO1xuaW1wb3J0IHsgTWV0YSB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHsgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENoYW5uZWxDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY2hhbm5lbC1jb25maWcuc2VydmljZSc7XG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHN0YXJ0V2l0aCwgZmlsdGVyIGFzIHJ4RmlsdGVyIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYXBwLXByb2R1Y3QtZGV0YWlsLWVjJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vcHJvZHVjdC1kZXRhaWwtZWMuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3Byb2R1Y3QtZGV0YWlsLWVjLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgcHJvdmlkZXJzOiBbUHJvZHVjdERldGFpbFNlcnZpY2VdXG59KVxuZXhwb3J0IGNsYXNzIFByb2R1Y3REZXRhaWxFY0NvbXBvbmVudCBleHRlbmRzIENvbXBvbmVudEhlbHBlciBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgICBwdWJsaWMgcHJvZHVjdDogYW55O1xuICAgIHB1YmxpYyBtZWRpYVVybDtcbiAgICBwdWJsaWMgc2hvdyA9IGZhbHNlO1xuICAgIHB1YmxpYyBxdWFudGl0eSA9IDE7XG4gICAgcHVibGljIGNvbW1lbnRzOiBzdHJpbmcgPSAnJztcbiAgICBwdWJsaWMgYnJlYWRjcnVtYiA9IFtdO1xuICAgIHB1YmxpYyBjYXJvdXNlbDogYW55O1xuICAgIHB1YmxpYyBjb2RlID0gbnVsbDtcbiAgICBwdWJsaWMgZm9jdXNJbWFnZTogc3RyaW5nID0gbnVsbFxuICAgIHB1YmxpYyBvd2xPcHRpb25zID0ge31cbiAgICBwdWJsaWMgc2hvd1Jldmlld3M6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBwdWJsaWMgaGlkZVByaWNlczogYm9vbGVhbiA9IGZhbHNlO1xuICAgIHB1YmxpYyBjcmVkaXRBY2NvdW50U2hvd1ByaWNlczogYm9vbGVhbiB8IG51bGwgPSBudWxsO1xuICAgIHB1YmxpYyBlbmFibGVGaWVsZE5vdGVzSW5BcnRpY2xlRmlsZTogYm9vbGVhbiA9IGZhbHNlO1xuICAgIHB1YmxpYyBxdWFudGl0eUVycm9yOiBzdHJpbmcgPSAnJztcbiAgICBwdWJsaWMgbWluaW11bUl0ZW1zUXR5OiBudW1iZXIgPSBudWxsO1xuICAgIHB1YmxpYyBtdWx0aXBsZVF0eTogbnVtYmVyID0gbnVsbDtcbiAgICBwcml2YXRlIHByZWZpbGxTdWI/OiBTdWJzY3JpcHRpb247XG5cblxuICAgIEBWaWV3Q2hpbGQoJ2NvbnRhY3QnKSBjb250YWN0OiBFbGVtZW50UmVmO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHB1YmxpYyBwcm9kdWN0U2VydmljZTogUHJvZHVjdERldGFpbFNlcnZpY2UsXG4gICAgICAgIHB1YmxpYyBjb25zdHM6IENvbnN0YW50cyxcbiAgICAgICAgcHJvdGVjdGVkIGFjdGl2ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgICAgIHB1YmxpYyBjYXJ0U2VydmljZTogQ2FydFNlcnZpY2UsXG4gICAgICAgIHB1YmxpYyBvcHRpb25zU2VydmljZTogT3B0aW9uc1NlcnZpY2UsXG4gICAgICAgIHB1YmxpYyBwcm9kdWN0c1NlcnZpY2U6IFByb2R1Y3RzU2VydmljZSxcbiAgICAgICAgcHVibGljIGFuYWx5dGljc1NlcnZpY2U6IEFuYWx5dGljc1NlcnZpY2UsXG4gICAgICAgIHB1YmxpYyByb3V0ZXI6IFJvdXRlcixcbiAgICAgICAgcHJvdGVjdGVkIHRvYXN0clNlcnZpY2U6IFRvYXN0U2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBtZXRhOiBNZXRhLFxuICAgICAgICBwdWJsaWMgaW5qZWN0b3I6IEluamVjdG9yKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMubWVkaWFVcmwgPSB0aGlzLmNvbnN0cy5tZWRpYVVybCgpO1xuICAgICAgICB0aGlzLmFjdGl2ZWRSb3V0ZS5wYXJhbXMuc3Vic2NyaWJlKHF1ZXJ5UGFyYW1zID0+IHtcbiAgICAgICAgICAgIGxldCB2YXJpYW50OiBhbnkgPSAodGhpcy5hY3RpdmVkUm91dGUuc25hcHNob3QucXVlcnlQYXJhbU1hcC5nZXQoJ3ZhcmlhbnQnKSk7XG4gICAgICAgICAgICBsZXQgY29kZSA9IHF1ZXJ5UGFyYW1zLmlkO1xuICAgICAgICAgICAgdGhpcy5wcm9kdWN0U2VydmljZS5sb2FkUHJvZHVjdChjb2RlLCB2YXJpYW50KTtcbiAgICAgICAgICAgIHRoaXMuY29kZSA9IHF1ZXJ5UGFyYW1zLmlkXG4gICAgICAgIH0pXG4gICAgICAgIHRoaXMucHJvZHVjdFNlcnZpY2UucHJvZHVjdCQuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICAgICAgICBpZiAocmVzID09IG51bGwpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy8nXSlcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wcm9kdWN0ID0gcmVzO1xuICAgICAgICAgICAgICAgIHdpbmRvdy5zY3JvbGwoMCwgMCk7XG4gICAgICAgICAgICAgICAgdGhpcy5icmVhZGNydW1iID0gdGhpcy5vcHRpb25zU2VydmljZS5nZXRCcmVhZGNydW1iKHRoaXMucHJvZHVjdC5jYXRlZ29yeSk7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMucHJvZHVjdC5uYW1lKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubWV0YS51cGRhdGVUYWcoeyBwcm9wZXJ0eTogJ29nOnRpdGxlJywgY29udGVudDogdGhpcy5wcm9kdWN0Lm5hbWUgfSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubWV0YS51cGRhdGVUYWcoeyBwcm9wZXJ0eTogJ29nOmRlc2NyaXB0aW9uJywgY29udGVudDogdGhpcy5kZWxldGVIVE1MKHRoaXMucHJvZHVjdC5kZXNjcmlwdGlvbikgfSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubWV0YS51cGRhdGVUYWcoeyBwcm9wZXJ0eTogJ29nOmltYWdlJywgY29udGVudDogdGhpcy5jb25zdHMubWVkaWFVcmwoKSArIHRoaXMucHJvZHVjdC5waWN0dXJlc2RlZmF1bHRbMF0gfSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubWV0YS51cGRhdGVUYWcoeyBwcm9wZXJ0eTogJ29nOnR5cGUnLCBjb250ZW50OiAncHJvZHVjdCcgfSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubWV0YS51cGRhdGVUYWcoeyBwcm9wZXJ0eTogJ29nOnVybCcsIGNvbnRlbnQ6IHdpbmRvdy5sb2NhdGlvbi5ocmVmIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMucHJvZHVjdFNlcnZpY2UucHJvZHVjdCQucGlwZShmaWx0ZXIoZGF0YSA9PiBkYXRhICYmIGRhdGEuaWQgJiYgZGF0YS5pZCAhPSAwKSkuc3Vic2NyaWJlKFxuICAgICAgICAgICAgKHByb2R1Y3RQYXJhbSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuYW5hbHl0aWNzU2VydmljZS5jYWxsRXZlbnQoJ3ZpZXdfaXRlbScsIHsgLi4ucHJvZHVjdFBhcmFtLCBjdXJyZW5jeTogdGhpcy5jb25zdHMuY3VycmVuY3kuY29kZSB9KVxuICAgICAgICAgICAgICAgIHRoaXMuY2hhbmdlSW1nRm9jdXMocHJvZHVjdFBhcmFtLnBpY3R1cmVzZGVmYXVsdFswXSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgKVxuICAgICAgICB0aGlzLmluamVjdG9yLmdldChDaGFubmVsQ29uZmlnU2VydmljZSkuY2hhbm5lbENvbmZpZyQuc3Vic2NyaWJlKGNoYW5uZWwgPT4ge1xuICAgICAgICAgICAgdGhpcy5zaG93UmV2aWV3cyA9IGNoYW5uZWwuc2hvd1Jldmlld3M7XG4gICAgICAgICAgICB0aGlzLmhpZGVQcmljZXMgPSBjaGFubmVsPy5oaWRlUHJpY2VzID8/IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5lbmFibGVGaWVsZE5vdGVzSW5BcnRpY2xlRmlsZSA9IGNoYW5uZWw/LmVuYWJsZUZpZWxkTm90ZXNJbkFydGljbGVGaWxlID8/IGZhbHNlO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmNhcnRTZXJ2aWNlLnNob3dQcmljZSQuc3Vic2NyaWJlKChzaG93UHJpY2UpID0+IHtcbiAgICAgICAgICAgIHRoaXMuY3JlZGl0QWNjb3VudFNob3dQcmljZXMgPSBzaG93UHJpY2U7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmVjT25Db25zdHJ1Y3QoKVxuXG4gICAgfVxuXG4gICAgZGVsZXRlSFRNTChjYWRlbmE6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIC8vIEV4cHJlc2nDs24gcmVndWxhciBwYXJhIGJ1c2NhciBldGlxdWV0YXMgSFRNTFxuICAgICAgICBjb25zdCBleHByZXNpb25SZWd1bGFyID0gLzxbXj5dKj4vZztcbiAgICAgICAgLy8gUmVlbXBsYXphIHRvZGFzIGxhcyBldGlxdWV0YXMgSFRNTCBwb3IgdW5hIGNhZGVuYSB2YWPDrWFcbiAgICAgICAgcmV0dXJuIGNhZGVuYS5yZXBsYWNlKGV4cHJlc2lvblJlZ3VsYXIsICcnKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5lY09uSW5pdCgpXG5cbiAgICAgICAgLy8gUHJlbGxlbmFyIGNvbWVudGFyaW9zIGN1YW5kbzpcbiAgICAgICAgLy8gLSBjYXJndWUgZWwgcHJvZHVjdG9cbiAgICAgICAgLy8gLSBjYW1iaWUgbGEgdmFyaWFudGUgc2VsZWNjaW9uYWRhIChhc29jaWF0ZWREYXRhJClcbiAgICAgICAgLy8gLSBjYW1iaWVuIGxvcyDDrXRlbXMgZGVsIGNhcnJpdG8gICAgICAgIFxuICAgICAgICB0aGlzLnByZWZpbGxTdWIgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICAgICAgICAgIHRoaXMucHJvZHVjdFNlcnZpY2UucHJvZHVjdCQucGlwZShyeEZpbHRlcigocDogYW55KSA9PiAhIXAgJiYgISFwLmlkKSksXG4gICAgICAgICAgICB0aGlzLnByb2R1Y3RTZXJ2aWNlLmFzb2NpYXRlZERhdGEkLnBpcGUoc3RhcnRXaXRoKG51bGwgYXMgYW55KSksXG4gICAgICAgICAgICB0aGlzLmNhcnRTZXJ2aWNlLmNhcnRJdGVtcy5waXBlKHN0YXJ0V2l0aChbXSBhcyBhbnlbXSkpLFxuICAgICAgICBdKS5zdWJzY3JpYmUoKFtwcm9kdWN0LCBkYXRhLCBpdGVtc106IFthbnksIGFueSwgYW55W11dKSA9PiB7XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIGNvbnN0IHZhcmlhbnRJZCA9XG4gICAgICAgICAgICAgICAgZGF0YT8udmFyaWFudENvZGUgPz9cbiAgICAgICAgICAgICAgICBkYXRhPy52YXJpYW50X2lkID8/XG4gICAgICAgICAgICAgICAgcHJvZHVjdD8udmFyaWFudHM/LlswXT8uY29kZSA/P1xuICAgICAgICAgICAgICAgIG51bGw7XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIGNvbnN0IG1hdGNoID0gaXRlbXM/LmZpbmQoaXQgPT5cbiAgICAgICAgICAgICAgICBpdD8ucHJvZHVjdD8uaWQgPT09IHByb2R1Y3Q/LmlkICYmXG4gICAgICAgICAgICAgICAgKHZhcmlhbnRJZCA/IGl0Py52YXJpYW50X2lkID09PSB2YXJpYW50SWQgOiB0cnVlKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgdGhpcy5jb21tZW50cyA9IChtYXRjaD8uY29tbWVudHMgPz8gJycpO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLnByb2R1Y3RTZXJ2aWNlLmFzb2NpYXRlZERhdGEkLnN1YnNjcmliZShhZCA9PiB7XG4gICAgICAgICAgICB0aGlzLm1pbmltdW1JdGVtc1F0eSA9IGFkPy5taW5pbXVtSXRlbXNRdWFudGl0eSB8fCBudWxsO1xuICAgICAgICAgICAgdGhpcy5tdWx0aXBsZVF0eSA9IGFkPy5tdWx0aXBsZVF1YW50aXR5IHx8IG51bGw7XG4gICAgICAgICAgICB0aGlzLnF1YW50aXR5ID0gdGhpcy5taW5pbXVtSXRlbXNRdHkgfHwgdGhpcy5tdWx0aXBsZVF0eSB8fCAxO1xuICAgICAgICAgICAgdGhpcy5xdWFudGl0eUVycm9yID0gJyc7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnByZWZpbGxTdWI/LnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgYWRkVG9DYXJ0ID0gKCkgPT4ge1xuICAgICAgICBjb25zdCBub3RlID0gdGhpcy5jb21tZW50cz8udHJpbSgpIHx8IG51bGw7XG4gICAgICAgIHRoaXMucXVhbnRpdHkgPiAwICYmIHRoaXMucHJvZHVjdFNlcnZpY2UuYWRkVG9DYXJ0KHRoaXMucXVhbnRpdHksIHVuZGVmaW5lZCwgbm90ZSk7XG4gICAgfVxuXG4gICAgYWRkQWxsUHJvZHVjdG9zVG9DYXJ0ID0gKCkgPT4ge1xuICAgICAgICBsZXQgaXRlbXMgPSB0aGlzLnByb2R1Y3QucHJvZHVjdFdpdGhVbmlxdWVWYXJpYW50Py5maWx0ZXIocHJvZCA9PiBwcm9kLnByb2R1Y3RUb0NhcnRJdGVtKS5tYXAocHJvZCA9PiBwcm9kLnByb2R1Y3RUb0NhcnRJdGVtKVxuICAgICAgICBpdGVtcz8ubGVuZ3RoICYmIHRoaXMuY2FydFNlcnZpY2UuYWRkQWxsVG9DYXJ0KGl0ZW1zKVxuICAgIH1cblxuICAgIHNjcm9sbCgpIHtcbiAgICAgICAgbGV0IGVsID0gdGhpcy5jb250YWN0Lm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICAgIGVsLnNjcm9sbEludG9WaWV3KCk7XG4gICAgfVxuXG4gICAgc2F2ZVJlZiA9IChjYXJvdXNlbCkgPT4ge1xuICAgICAgICB0aGlzLmNhcm91c2VsID0gY2Fyb3VzZWw7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIGFjdHVhbGl6YSBsYSB2YXJpYWJsZSBxdWFudGl0eSBzdW1hbmRvbGUgJ3gnIGNvbnRlbmlkby5cbiAgICAgKiBTaSBoYXkgdW4gbXVsdGlwbGVRdWFudGl0eSBjb25maWd1cmFkbywgaGFjZSBzbmFwIGFsIHNpZ3VpZW50ZSBtw7psdGlwbG8gdsOhbGlkb1xuICAgICAqIGN1YW5kbyBsYSBjYW50aWRhZCBhY3R1YWwgeWEgZXMgaW52w6FsaWRhLlxuICAgICAqIEBwYXJhbSBzdG9jayBuw7ptZXJvIG3DoXhpbW8gZGlzcG9uaWJsZSBlbiBzdG9jay5cbiAgICAgKiBAcGFyYW0gY2hhbmdlQW1vdW50IGNhbnRpZGFkIHF1ZSBzZSBxdWllcmUgc3VtYXIgKGlnbm9yYWRvIHNpIG11bHRpcGxlUXR5IGVzdMOhIHNldGVhZG8pLlxuICAgICAqIEBwYXJhbSBmb3JjZU11bHRpcGxlIGxlZ2FjeSDigJQgc2kgZXMgdHJ1ZSwgb2JsaWdhIGEgcXVlIGVsIHJlc3VsdGFkbyBzZWEgbcO6bHRpcGxvIGRlIGNoYW5nZUFtb3VudC5cbiAgICAgKi9cbiAgICBwbHVzID0gKHN0b2NrPzogbnVtYmVyLCBjaGFuZ2VBbW91bnQ6IG51bWJlciA9IDEsIGZvcmNlTXVsdGlwbGU6IGJvb2xlYW4gPSBmYWxzZSkgPT4ge1xuICAgICAgICBjb25zdCBzdGVwID0gdGhpcy5tdWx0aXBsZVF0eSB8fCBjaGFuZ2VBbW91bnQ7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRRdWFudGl0eSA9IE51bWJlcih0aGlzLnF1YW50aXR5KTtcbiAgICAgICAgbGV0IG5ld1F1YW50aXR5OiBudW1iZXI7XG5cbiAgICAgICAgaWYgKHN0ZXAgPiAxKSB7XG4gICAgICAgICAgICBuZXdRdWFudGl0eSA9IGN1cnJlbnRRdWFudGl0eSAlIHN0ZXAgIT09IDBcbiAgICAgICAgICAgICAgICA/IE1hdGguY2VpbChjdXJyZW50UXVhbnRpdHkgLyBzdGVwKSAqIHN0ZXBcbiAgICAgICAgICAgICAgICA6IGN1cnJlbnRRdWFudGl0eSArIHN0ZXA7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBuZXdRdWFudGl0eSA9IGN1cnJlbnRRdWFudGl0eSArIHN0ZXA7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXN0b2NrIHx8IG5ld1F1YW50aXR5IDw9IHN0b2NrKSB7XG4gICAgICAgICAgICB0aGlzLnF1YW50aXR5ID0gbmV3UXVhbnRpdHk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnRvYXN0clNlcnZpY2Uuc2hvdygnb3V0LW9mLXN0b2NrLWFjdHVhbGx5Jyk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy52YWxpZGF0ZURldGFpbCgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBhY3R1YWxpemEgbGEgdmFyaWFibGUgcXVhbnRpdHkgcmVzdGFuZG9sZSAneCcgY29udGVuaWRvLlxuICAgICAqIFNpIGhheSB1biBtdWx0aXBsZVF1YW50aXR5IGNvbmZpZ3VyYWRvLCBoYWNlIHNuYXAgYWwgbcO6bHRpcGxvIHbDoWxpZG8gaW5mZXJpb3JcbiAgICAgKiBjdWFuZG8gbGEgY2FudGlkYWQgYWN0dWFsIHlhIGVzIGludsOhbGlkYS5cbiAgICAgKiBAcGFyYW0gY2hhbmdlQW1vdW50IGNhbnRpZGFkIHF1ZSBzZSBxdWllcmUgcmVzdGFyIChpZ25vcmFkbyBzaSBtdWx0aXBsZVF0eSBlc3TDoSBzZXRlYWRvKS5cbiAgICAgKiBAcGFyYW0gbWluaW11bSBjYW50aWRhZCBtw61uaW1hIHBlcm1pdGlkYSAoaWdub3JhZG8gc2kgbWluaW11bUl0ZW1zUXR5IGVzdMOhIHNldGVhZG8pLlxuICAgICAqIEBwYXJhbSBmb3JjZU11bHRpcGxlIGxlZ2FjeSDigJQgc2kgZXMgdHJ1ZSwgb2JsaWdhIGEgcXVlIGVsIHJlc3VsdGFkbyBzZWEgbcO6bHRpcGxvIGRlIGNoYW5nZUFtb3VudC5cbiAgICAgKi9cbiAgICBsZXNzID0gKGNoYW5nZUFtb3VudDogbnVtYmVyID0gMSwgbWluaW11bTogbnVtYmVyID0gMSwgZm9yY2VNdWx0aXBsZTogYm9vbGVhbiA9IGZhbHNlKSA9PiB7XG4gICAgICAgIGNvbnN0IHN0ZXAgPSB0aGlzLm11bHRpcGxlUXR5IHx8IGNoYW5nZUFtb3VudDtcbiAgICAgICAgY29uc3QgZmxvb3IgPSB0aGlzLm1pbmltdW1JdGVtc1F0eSB8fCAoc3RlcCA+IDEgPyBzdGVwIDogbWluaW11bSk7XG4gICAgICAgIGxldCBuZXdRdWFudGl0eTogbnVtYmVyO1xuXG4gICAgICAgIGlmIChzdGVwID4gMSkge1xuICAgICAgICAgICAgbmV3UXVhbnRpdHkgPSB0aGlzLnF1YW50aXR5ICUgc3RlcCAhPT0gMFxuICAgICAgICAgICAgICAgID8gTWF0aC5mbG9vcih0aGlzLnF1YW50aXR5IC8gc3RlcCkgKiBzdGVwXG4gICAgICAgICAgICAgICAgOiB0aGlzLnF1YW50aXR5IC0gc3RlcDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG5ld1F1YW50aXR5ID0gdGhpcy5xdWFudGl0eSAtIHN0ZXA7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnF1YW50aXR5ID0gbmV3UXVhbnRpdHkgPj0gZmxvb3IgPyBuZXdRdWFudGl0eSA6IGZsb29yO1xuICAgICAgICB0aGlzLnZhbGlkYXRlRGV0YWlsKCk7XG4gICAgfVxuXG4gICAgb25RdWFudGl0eUlucHV0ID0gKHZhbHVlOiBzdHJpbmcpID0+IHtcbiAgICAgICAgY29uc3QgcGFyc2VkID0gcGFyc2VJbnQodmFsdWUsIDEwKTtcbiAgICAgICAgaWYgKCFpc05hTihwYXJzZWQpKSB7XG4gICAgICAgICAgICB0aGlzLnF1YW50aXR5ID0gcGFyc2VkO1xuICAgICAgICAgICAgdGhpcy52YWxpZGF0ZURldGFpbCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdmFsaWRhdGVEZXRhaWwgPSAoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLm1pbmltdW1JdGVtc1F0eSAmJiB0aGlzLnF1YW50aXR5IDwgdGhpcy5taW5pbXVtSXRlbXNRdHkpIHtcbiAgICAgICAgICAgIHRoaXMucXVhbnRpdHlFcnJvciA9ICdMYSBjYW50aWRhZCBkZWJlIHNlciBhbCBtZW5vcyAnICsgdGhpcy5taW5pbXVtSXRlbXNRdHk7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5tdWx0aXBsZVF0eSAmJiB0aGlzLnF1YW50aXR5ICUgdGhpcy5tdWx0aXBsZVF0eSAhPT0gMCkge1xuICAgICAgICAgICAgdGhpcy5xdWFudGl0eUVycm9yID0gJ0xhIGNhbnRpZGFkIGRlYmUgc2VyIG1cXHUwMGZhbHRpcGxvIGRlICcgKyB0aGlzLm11bHRpcGxlUXR5O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5xdWFudGl0eUVycm9yID0gJyc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpc1F1YW50aXR5VmFsaWREZXRhaWwgPSAoKTogYm9vbGVhbiA9PiB7XG4gICAgICAgIGlmICh0aGlzLm1pbmltdW1JdGVtc1F0eSAmJiB0aGlzLnF1YW50aXR5IDwgdGhpcy5taW5pbXVtSXRlbXNRdHkpIHJldHVybiBmYWxzZTtcbiAgICAgICAgaWYgKHRoaXMubXVsdGlwbGVRdHkgJiYgdGhpcy5xdWFudGl0eSAlIHRoaXMubXVsdGlwbGVRdHkgIT09IDApIHJldHVybiBmYWxzZTtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgc2hvd0NvbnRhY3QgPSAoKSA9PiB0aGlzLnNob3cgPSB0cnVlO1xuICAgIGhpZGVDb250YWN0ID0gKCkgPT4gdGhpcy5zaG93ID0gZmFsc2U7XG5cbiAgICB0aGVyZUlzTW9yZUluZm8gPSAocHJvZHVjdDogYW55KSA9PiB7XG4gICAgICAgIGxldCByZXN1bHQ7XG4gICAgICAgIGlmIChwcm9kdWN0Py5zcGVjaWFsX21hcmsgJiYgcHJvZHVjdD8uc3BlY2lhbF9tYXJrLmxlbmd0aCkge1xuICAgICAgICAgICAgcmVzdWx0ID0gcHJvZHVjdD8uc3BlY2lhbF9tYXJrPy5maW5kKHNwZWNpYWxfbWFyayA9PiBzcGVjaWFsX21hcmsudHlwZSA9PSAnbW9yZV9pbmZvJyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICBjaGFuZ2VJbWdGb2N1cyA9IChpbWcpID0+IHtcbiAgICAgICAgdGhpcy5mb2N1c0ltYWdlID0gaW1nXG4gICAgfVxufVxuIl19
|
|
364
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1kZXRhaWwtZWMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmctZWFzeWNvbW1lcmNlLyIsInNvdXJjZXMiOlsibGliL2VjLWNvbXBvbmVudC9wcm9kdWN0LWRldGFpbC1lYy9wcm9kdWN0LWRldGFpbC1lYy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsU0FBUyxFQUFjLE1BQU0sZUFBZSxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNqRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDOUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDcEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzFELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNoRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUN0RixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDM0UsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FB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SSxDQUFDLFdBQVcsR0FBRyxPQUFBLEVBQUUsMENBQUUsZ0JBQWdCLEtBQUksSUFBSSxDQUFDO1lBQ2hELEtBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSSxDQUFDLGVBQWUsSUFBSSxLQUFJLENBQUMsV0FBVyxJQUFJLENBQUMsQ0FBQztZQUM5RCxLQUFJLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQztRQUM1QixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCw4Q0FBVyxHQUFYOztRQUNJLE1BQUEsSUFBSSxDQUFDLFVBQVUsMENBQUUsV0FBVyxHQUFHO0lBQ25DLENBQUM7SUFZRCx5Q0FBTSxHQUFOO1FBQ0ksSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUE0QixDQUFDO1FBQ25ELEVBQUUsQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUN4QixDQUFDOztnQkFqSDBCLG9CQUFvQjtnQkFDNUIsU0FBUztnQkFDQSxjQUFjO2dCQUNsQixXQUFXO2dCQUNSLGNBQWM7Z0JBQ2IsZUFBZTtnQkFDZCxnQkFBZ0I7Z0JBQzFCLE1BQU07Z0JBQ0ksWUFBWTtnQkFDdkIsSUFBSTtnQkFDRCxRQUFROztJQWJQO1FBQXJCLFNBQVMsQ0FBQyxTQUFTLENBQUM7NkRBQXFCO0lBdEJqQyx3QkFBd0I7UUFOcEMsU0FBUyxDQUFDO1lBQ1AsUUFBUSxFQUFFLHVCQUF1QjtZQUNqQyxZQUFpRDtZQUVqRCxTQUFTLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQzs7U0FDcEMsQ0FBQztPQUNXLHdCQUF3QixDQXVQcEM7SUFBRCwrQkFBQztDQUFBLEFBdlBELENBQThDLGVBQWUsR0F1UDVEO1NBdlBZLHdCQUF3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBWaWV3Q2hpbGQsIEVsZW1lbnRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgZmlsdGVyIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQ29tcG9uZW50SGVscGVyIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9jb21wb25lbnQtaGVscGVyJztcbmltcG9ydCB7IENvbnN0YW50cyB9IGZyb20gJy4uLy4uL2NvcmUuY29uc3RzJztcbmltcG9ydCB7IEFuYWx5dGljc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9hbmFseXRpY3Muc2VydmljZSc7XG5pbXBvcnQgeyBDYXJ0U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2NhcnQuc2VydmljZSc7XG5pbXBvcnQgeyBPcHRpb25zU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL29wdGlvbnMuc2VydmljZSc7XG5pbXBvcnQgeyBQcm9kdWN0RGV0YWlsU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3Byb2R1Y3RzL3Byb2R1Y3QtZGV0YWlsLnNlcnZpY2UnO1xuaW1wb3J0IHsgUHJvZHVjdHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvcHJvZHVjdHMvcHJvZHVjdHMuc2VydmljZSc7XG5pbXBvcnQgeyBUb2FzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi91dGlscy90b2FzdC5zZXJ2aWNlJztcbmltcG9ydCB7IE1ldGEgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7IEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDaGFubmVsQ29uZmlnU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2NoYW5uZWwtY29uZmlnLnNlcnZpY2UnO1xuaW1wb3J0IHsgY29tYmluZUxhdGVzdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBzdGFydFdpdGgsIGZpbHRlciBhcyByeEZpbHRlciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2FwcC1wcm9kdWN0LWRldGFpbC1lYycsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3Byb2R1Y3QtZGV0YWlsLWVjLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9wcm9kdWN0LWRldGFpbC1lYy5jb21wb25lbnQuc2NzcyddLFxuICAgIHByb3ZpZGVyczogW1Byb2R1Y3REZXRhaWxTZXJ2aWNlXVxufSlcbmV4cG9ydCBjbGFzcyBQcm9kdWN0RGV0YWlsRWNDb21wb25lbnQgZXh0ZW5kcyBDb21wb25lbnRIZWxwZXIgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gICAgcHVibGljIHByb2R1Y3Q6IGFueTtcbiAgICBwdWJsaWMgbWVkaWFVcmw7XG4gICAgcHVibGljIHNob3cgPSBmYWxzZTtcbiAgICBwdWJsaWMgcXVhbnRpdHkgPSAxO1xuICAgIHB1YmxpYyBjb21tZW50czogc3RyaW5nID0gJyc7XG4gICAgcHVibGljIGJyZWFkY3J1bWIgPSBbXTtcbiAgICBwdWJsaWMgY2Fyb3VzZWw6IGFueTtcbiAgICBwdWJsaWMgY29kZSA9IG51bGw7XG4gICAgcHVibGljIGZvY3VzSW1hZ2U6IHN0cmluZyA9IG51bGxcbiAgICBwdWJsaWMgb3dsT3B0aW9ucyA9IHt9XG4gICAgcHVibGljIHNob3dSZXZpZXdzOiBib29sZWFuID0gZmFsc2U7XG4gICAgcHVibGljIGhpZGVQcmljZXM6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBwdWJsaWMgY3JlZGl0QWNjb3VudFNob3dQcmljZXM6IGJvb2xlYW4gfCBudWxsID0gbnVsbDtcbiAgICBwdWJsaWMgZW5hYmxlRmllbGROb3Rlc0luQXJ0aWNsZUZpbGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBwdWJsaWMgcXVhbnRpdHlFcnJvcjogc3RyaW5nID0gJyc7XG4gICAgcHVibGljIG1pbmltdW1JdGVtc1F0eTogbnVtYmVyID0gbnVsbDtcbiAgICBwdWJsaWMgbXVsdGlwbGVRdHk6IG51bWJlciA9IG51bGw7XG4gICAgcHJpdmF0ZSBwcmVmaWxsU3ViPzogU3Vic2NyaXB0aW9uO1xuXG5cbiAgICBAVmlld0NoaWxkKCdjb250YWN0JykgY29udGFjdDogRWxlbWVudFJlZjtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwdWJsaWMgcHJvZHVjdFNlcnZpY2U6IFByb2R1Y3REZXRhaWxTZXJ2aWNlLFxuICAgICAgICBwdWJsaWMgY29uc3RzOiBDb25zdGFudHMsXG4gICAgICAgIHByb3RlY3RlZCBhY3RpdmVkUm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgICAgICBwdWJsaWMgY2FydFNlcnZpY2U6IENhcnRTZXJ2aWNlLFxuICAgICAgICBwdWJsaWMgb3B0aW9uc1NlcnZpY2U6IE9wdGlvbnNTZXJ2aWNlLFxuICAgICAgICBwdWJsaWMgcHJvZHVjdHNTZXJ2aWNlOiBQcm9kdWN0c1NlcnZpY2UsXG4gICAgICAgIHB1YmxpYyBhbmFseXRpY3NTZXJ2aWNlOiBBbmFseXRpY3NTZXJ2aWNlLFxuICAgICAgICBwdWJsaWMgcm91dGVyOiBSb3V0ZXIsXG4gICAgICAgIHByb3RlY3RlZCB0b2FzdHJTZXJ2aWNlOiBUb2FzdFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgbWV0YTogTWV0YSxcbiAgICAgICAgcHVibGljIGluamVjdG9yOiBJbmplY3Rvcikge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLm1lZGlhVXJsID0gdGhpcy5jb25zdHMubWVkaWFVcmwoKTtcbiAgICAgICAgdGhpcy5hY3RpdmVkUm91dGUucGFyYW1zLnN1YnNjcmliZShxdWVyeVBhcmFtcyA9PiB7XG4gICAgICAgICAgICBsZXQgdmFyaWFudDogYW55ID0gKHRoaXMuYWN0aXZlZFJvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1NYXAuZ2V0KCd2YXJpYW50JykpO1xuICAgICAgICAgICAgbGV0IGNvZGUgPSBxdWVyeVBhcmFtcy5pZDtcbiAgICAgICAgICAgIHRoaXMucHJvZHVjdFNlcnZpY2UubG9hZFByb2R1Y3QoY29kZSwgdmFyaWFudCk7XG4gICAgICAgICAgICB0aGlzLmNvZGUgPSBxdWVyeVBhcmFtcy5pZFxuICAgICAgICB9KVxuICAgICAgICB0aGlzLnByb2R1Y3RTZXJ2aWNlLnByb2R1Y3QkLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgICAgICAgaWYgKHJlcyA9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvJ10pXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMucHJvZHVjdCA9IHJlcztcbiAgICAgICAgICAgICAgICB3aW5kb3cuc2Nyb2xsKDAsIDApO1xuICAgICAgICAgICAgICAgIHRoaXMuYnJlYWRjcnVtYiA9IHRoaXMub3B0aW9uc1NlcnZpY2UuZ2V0QnJlYWRjcnVtYih0aGlzLnByb2R1Y3QuY2F0ZWdvcnkpO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLnByb2R1Y3QubmFtZSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm1ldGEudXBkYXRlVGFnKHsgcHJvcGVydHk6ICdvZzp0aXRsZScsIGNvbnRlbnQ6IHRoaXMucHJvZHVjdC5uYW1lIH0pO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm1ldGEudXBkYXRlVGFnKHsgcHJvcGVydHk6ICdvZzpkZXNjcmlwdGlvbicsIGNvbnRlbnQ6IHRoaXMuZGVsZXRlSFRNTCh0aGlzLnByb2R1Y3QuZGVzY3JpcHRpb24pIH0pO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm1ldGEudXBkYXRlVGFnKHsgcHJvcGVydHk6ICdvZzppbWFnZScsIGNvbnRlbnQ6IHRoaXMuY29uc3RzLm1lZGlhVXJsKCkgKyB0aGlzLnByb2R1Y3QucGljdHVyZXNkZWZhdWx0WzBdIH0pO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm1ldGEudXBkYXRlVGFnKHsgcHJvcGVydHk6ICdvZzp0eXBlJywgY29udGVudDogJ3Byb2R1Y3QnIH0pO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm1ldGEudXBkYXRlVGFnKHsgcHJvcGVydHk6ICdvZzp1cmwnLCBjb250ZW50OiB3aW5kb3cubG9jYXRpb24uaHJlZiB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnByb2R1Y3RTZXJ2aWNlLnByb2R1Y3QkLnBpcGUoZmlsdGVyKGRhdGEgPT4gZGF0YSAmJiBkYXRhLmlkICYmIGRhdGEuaWQgIT0gMCkpLnN1YnNjcmliZShcbiAgICAgICAgICAgIChwcm9kdWN0UGFyYW0pID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmFuYWx5dGljc1NlcnZpY2UuY2FsbEV2ZW50KCd2aWV3X2l0ZW0nLCB7IC4uLnByb2R1Y3RQYXJhbSwgY3VycmVuY3k6IHRoaXMuY29uc3RzLmN1cnJlbmN5LmNvZGUgfSlcbiAgICAgICAgICAgICAgICB0aGlzLmNoYW5nZUltZ0ZvY3VzKHByb2R1Y3RQYXJhbS5waWN0dXJlc2RlZmF1bHRbMF0pXG4gICAgICAgICAgICB9XG4gICAgICAgIClcbiAgICAgICAgdGhpcy5pbmplY3Rvci5nZXQoQ2hhbm5lbENvbmZpZ1NlcnZpY2UpLmNoYW5uZWxDb25maWckLnN1YnNjcmliZShjaGFubmVsID0+IHtcbiAgICAgICAgICAgIHRoaXMuc2hvd1Jldmlld3MgPSBjaGFubmVsLnNob3dSZXZpZXdzO1xuICAgICAgICAgICAgdGhpcy5oaWRlUHJpY2VzID0gY2hhbm5lbD8uaGlkZVByaWNlcyA/PyBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuZW5hYmxlRmllbGROb3Rlc0luQXJ0aWNsZUZpbGUgPSBjaGFubmVsPy5lbmFibGVGaWVsZE5vdGVzSW5BcnRpY2xlRmlsZSA/PyBmYWxzZTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5jYXJ0U2VydmljZS5zaG93UHJpY2UkLnN1YnNjcmliZSgoc2hvd1ByaWNlKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmNyZWRpdEFjY291bnRTaG93UHJpY2VzID0gc2hvd1ByaWNlO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5lY09uQ29uc3RydWN0KClcblxuICAgIH1cblxuICAgIGRlbGV0ZUhUTUwoY2FkZW5hOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICAvLyBFeHByZXNpw7NuIHJlZ3VsYXIgcGFyYSBidXNjYXIgZXRpcXVldGFzIEhUTUxcbiAgICAgICAgY29uc3QgZXhwcmVzaW9uUmVndWxhciA9IC88W14+XSo+L2c7XG4gICAgICAgIC8vIFJlZW1wbGF6YSB0b2RhcyBsYXMgZXRpcXVldGFzIEhUTUwgcG9yIHVuYSBjYWRlbmEgdmFjw61hXG4gICAgICAgIHJldHVybiBjYWRlbmEucmVwbGFjZShleHByZXNpb25SZWd1bGFyLCAnJyk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZWNPbkluaXQoKVxuXG4gICAgICAgIC8vIFByZWxsZW5hciBjb21lbnRhcmlvcyBjdWFuZG86XG4gICAgICAgIC8vIC0gY2FyZ3VlIGVsIHByb2R1Y3RvXG4gICAgICAgIC8vIC0gY2FtYmllIGxhIHZhcmlhbnRlIHNlbGVjY2lvbmFkYSAoYXNvY2lhdGVkRGF0YSQpXG4gICAgICAgIC8vIC0gY2FtYmllbiBsb3Mgw610ZW1zIGRlbCBjYXJyaXRvICAgICAgICBcbiAgICAgICAgdGhpcy5wcmVmaWxsU3ViID0gY29tYmluZUxhdGVzdChbXG4gICAgICAgICAgICB0aGlzLnByb2R1Y3RTZXJ2aWNlLnByb2R1Y3QkLnBpcGUocnhGaWx0ZXIoKHA6IGFueSkgPT4gISFwICYmICEhcC5pZCkpLFxuICAgICAgICAgICAgdGhpcy5wcm9kdWN0U2VydmljZS5hc29jaWF0ZWREYXRhJC5waXBlKHN0YXJ0V2l0aChudWxsIGFzIGFueSkpLFxuICAgICAgICAgICAgdGhpcy5jYXJ0U2VydmljZS5jYXJ0SXRlbXMucGlwZShzdGFydFdpdGgoW10gYXMgYW55W10pKSxcbiAgICAgICAgXSkuc3Vic2NyaWJlKChbcHJvZHVjdCwgZGF0YSwgaXRlbXNdOiBbYW55LCBhbnksIGFueVtdXSkgPT4ge1xuICAgICAgICAgICAgXG4gICAgICAgICAgICBjb25zdCB2YXJpYW50SWQgPVxuICAgICAgICAgICAgICAgIGRhdGE/LnZhcmlhbnRDb2RlID8/XG4gICAgICAgICAgICAgICAgZGF0YT8udmFyaWFudF9pZCA/P1xuICAgICAgICAgICAgICAgIHByb2R1Y3Q/LnZhcmlhbnRzPy5bMF0/LmNvZGUgPz9cbiAgICAgICAgICAgICAgICBudWxsO1xuICAgICAgICAgICAgXG4gICAgICAgICAgICBjb25zdCBtYXRjaCA9IGl0ZW1zPy5maW5kKGl0ID0+XG4gICAgICAgICAgICAgICAgaXQ/LnByb2R1Y3Q/LmlkID09PSBwcm9kdWN0Py5pZCAmJlxuICAgICAgICAgICAgICAgICh2YXJpYW50SWQgPyBpdD8udmFyaWFudF9pZCA9PT0gdmFyaWFudElkIDogdHJ1ZSlcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIHRoaXMuY29tbWVudHMgPSAobWF0Y2g/LmNvbW1lbnRzID8/ICcnKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5wcm9kdWN0U2VydmljZS5hc29jaWF0ZWREYXRhJC5zdWJzY3JpYmUoYWQgPT4ge1xuICAgICAgICAgICAgdGhpcy5taW5pbXVtSXRlbXNRdHkgPSBhZD8ubWluaW11bUl0ZW1zUXVhbnRpdHkgfHwgbnVsbDtcbiAgICAgICAgICAgIHRoaXMubXVsdGlwbGVRdHkgPSBhZD8ubXVsdGlwbGVRdWFudGl0eSB8fCBudWxsO1xuICAgICAgICAgICAgdGhpcy5xdWFudGl0eSA9IHRoaXMubWluaW11bUl0ZW1zUXR5IHx8IHRoaXMubXVsdGlwbGVRdHkgfHwgMTtcbiAgICAgICAgICAgIHRoaXMucXVhbnRpdHlFcnJvciA9ICcnO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5wcmVmaWxsU3ViPy51bnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIGFkZFRvQ2FydCA9ICgpID0+IHtcbiAgICAgICAgY29uc3Qgbm90ZSA9IHRoaXMuY29tbWVudHM/LnRyaW0oKSB8fCBudWxsO1xuICAgICAgICB0aGlzLnF1YW50aXR5ID4gMCAmJiB0aGlzLnByb2R1Y3RTZXJ2aWNlLmFkZFRvQ2FydCh0aGlzLnF1YW50aXR5LCB1bmRlZmluZWQsIG5vdGUpO1xuICAgIH1cblxuICAgIGFkZEFsbFByb2R1Y3Rvc1RvQ2FydCA9ICgpID0+IHtcbiAgICAgICAgbGV0IGl0ZW1zID0gdGhpcy5wcm9kdWN0LnByb2R1Y3RXaXRoVW5pcXVlVmFyaWFudD8uZmlsdGVyKHByb2QgPT4gcHJvZC5wcm9kdWN0VG9DYXJ0SXRlbSkubWFwKHByb2QgPT4gcHJvZC5wcm9kdWN0VG9DYXJ0SXRlbSlcbiAgICAgICAgaXRlbXM/Lmxlbmd0aCAmJiB0aGlzLmNhcnRTZXJ2aWNlLmFkZEFsbFRvQ2FydChpdGVtcylcbiAgICB9XG5cbiAgICBzY3JvbGwoKSB7XG4gICAgICAgIGxldCBlbCA9IHRoaXMuY29udGFjdC5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xuICAgICAgICBlbC5zY3JvbGxJbnRvVmlldygpO1xuICAgIH1cblxuICAgIHNhdmVSZWYgPSAoY2Fyb3VzZWwpID0+IHtcbiAgICAgICAgdGhpcy5jYXJvdXNlbCA9IGNhcm91c2VsO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBhY3R1YWxpemEgbGEgdmFyaWFibGUgcXVhbnRpdHkgc3VtYW5kb2xlICd4JyBjb250ZW5pZG8uXG4gICAgICogU2kgaGF5IHVuIG11bHRpcGxlUXVhbnRpdHkgY29uZmlndXJhZG8sIGhhY2Ugc25hcCBhbCBzaWd1aWVudGUgbcO6bHRpcGxvIHbDoWxpZG9cbiAgICAgKiBjdWFuZG8gbGEgY2FudGlkYWQgYWN0dWFsIHlhIGVzIGludsOhbGlkYS5cbiAgICAgKiBAcGFyYW0gc3RvY2sgbsO6bWVybyBtw6F4aW1vIGRpc3BvbmlibGUgZW4gc3RvY2suXG4gICAgICogQHBhcmFtIGNoYW5nZUFtb3VudCBjYW50aWRhZCBxdWUgc2UgcXVpZXJlIHN1bWFyIChpZ25vcmFkbyBzaSBtdWx0aXBsZVF0eSBlc3TDoSBzZXRlYWRvKS5cbiAgICAgKiBAcGFyYW0gZm9yY2VNdWx0aXBsZSBsZWdhY3kg4oCUIHNpIGVzIHRydWUsIG9ibGlnYSBhIHF1ZSBlbCByZXN1bHRhZG8gc2VhIG3Dumx0aXBsbyBkZSBjaGFuZ2VBbW91bnQuXG4gICAgICovXG4gICAgcGx1cyA9IChzdG9jaz86IG51bWJlciwgY2hhbmdlQW1vdW50OiBudW1iZXIgPSAxLCBmb3JjZU11bHRpcGxlOiBib29sZWFuID0gZmFsc2UpID0+IHtcbiAgICAgICAgY29uc3Qgc3RlcCA9IHRoaXMubXVsdGlwbGVRdHkgfHwgY2hhbmdlQW1vdW50O1xuICAgICAgICBjb25zdCBjdXJyZW50UXVhbnRpdHkgPSBOdW1iZXIodGhpcy5xdWFudGl0eSk7XG4gICAgICAgIGxldCBuZXdRdWFudGl0eTogbnVtYmVyO1xuXG4gICAgICAgIGlmIChzdGVwID4gMSkge1xuICAgICAgICAgICAgbmV3UXVhbnRpdHkgPSBjdXJyZW50UXVhbnRpdHkgJSBzdGVwICE9PSAwXG4gICAgICAgICAgICAgICAgPyBNYXRoLmNlaWwoY3VycmVudFF1YW50aXR5IC8gc3RlcCkgKiBzdGVwXG4gICAgICAgICAgICAgICAgOiBjdXJyZW50UXVhbnRpdHkgKyBzdGVwO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbmV3UXVhbnRpdHkgPSBjdXJyZW50UXVhbnRpdHkgKyBzdGVwO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFzdG9jayB8fCBuZXdRdWFudGl0eSA8PSBzdG9jaykge1xuICAgICAgICAgICAgdGhpcy5xdWFudGl0eSA9IG5ld1F1YW50aXR5O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy50b2FzdHJTZXJ2aWNlLnNob3coJ291dC1vZi1zdG9jay1hY3R1YWxseScpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMudmFsaWRhdGVEZXRhaWwoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gYWN0dWFsaXphIGxhIHZhcmlhYmxlIHF1YW50aXR5IHJlc3RhbmRvbGUgJ3gnIGNvbnRlbmlkby5cbiAgICAgKiBTaSBoYXkgdW4gbXVsdGlwbGVRdWFudGl0eSBjb25maWd1cmFkbywgaGFjZSBzbmFwIGFsIG3Dumx0aXBsbyB2w6FsaWRvIGluZmVyaW9yXG4gICAgICogY3VhbmRvIGxhIGNhbnRpZGFkIGFjdHVhbCB5YSBlcyBpbnbDoWxpZGEuXG4gICAgICogQHBhcmFtIGNoYW5nZUFtb3VudCBjYW50aWRhZCBxdWUgc2UgcXVpZXJlIHJlc3RhciAoaWdub3JhZG8gc2kgbXVsdGlwbGVRdHkgZXN0w6Egc2V0ZWFkbykuXG4gICAgICogQHBhcmFtIG1pbmltdW0gY2FudGlkYWQgbcOtbmltYSBwZXJtaXRpZGEgKGlnbm9yYWRvIHNpIG1pbmltdW1JdGVtc1F0eSBlc3TDoSBzZXRlYWRvKS5cbiAgICAgKiBAcGFyYW0gZm9yY2VNdWx0aXBsZSBsZWdhY3kg4oCUIHNpIGVzIHRydWUsIG9ibGlnYSBhIHF1ZSBlbCByZXN1bHRhZG8gc2VhIG3Dumx0aXBsbyBkZSBjaGFuZ2VBbW91bnQuXG4gICAgICovXG4gICAgbGVzcyA9IChjaGFuZ2VBbW91bnQ6IG51bWJlciA9IDEsIG1pbmltdW06IG51bWJlciA9IDEsIGZvcmNlTXVsdGlwbGU6IGJvb2xlYW4gPSBmYWxzZSkgPT4ge1xuICAgICAgICBjb25zdCBzdGVwID0gdGhpcy5tdWx0aXBsZVF0eSB8fCBjaGFuZ2VBbW91bnQ7XG4gICAgICAgIGNvbnN0IGZsb29yID0gdGhpcy5taW5pbXVtSXRlbXNRdHkgfHwgKHN0ZXAgPiAxID8gc3RlcCA6IG1pbmltdW0pO1xuICAgICAgICBsZXQgbmV3UXVhbnRpdHk6IG51bWJlcjtcblxuICAgICAgICBpZiAoc3RlcCA+IDEpIHtcbiAgICAgICAgICAgIG5ld1F1YW50aXR5ID0gdGhpcy5xdWFudGl0eSAlIHN0ZXAgIT09IDBcbiAgICAgICAgICAgICAgICA/IE1hdGguZmxvb3IodGhpcy5xdWFudGl0eSAvIHN0ZXApICogc3RlcFxuICAgICAgICAgICAgICAgIDogdGhpcy5xdWFudGl0eSAtIHN0ZXA7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBuZXdRdWFudGl0eSA9IHRoaXMucXVhbnRpdHkgLSBzdGVwO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5xdWFudGl0eSA9IG5ld1F1YW50aXR5ID49IGZsb29yID8gbmV3UXVhbnRpdHkgOiBmbG9vcjtcbiAgICAgICAgdGhpcy52YWxpZGF0ZURldGFpbCgpO1xuICAgIH1cblxuICAgIG9uUXVhbnRpdHlJbnB1dCA9ICh2YWx1ZTogc3RyaW5nKSA9PiB7XG4gICAgICAgIGNvbnN0IHBhcnNlZCA9IHBhcnNlSW50KHZhbHVlLCAxMCk7XG4gICAgICAgIGlmICghaXNOYU4ocGFyc2VkKSkge1xuICAgICAgICAgICAgdGhpcy5xdWFudGl0eSA9IHBhcnNlZDtcbiAgICAgICAgICAgIHRoaXMudmFsaWRhdGVEZXRhaWwoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHZhbGlkYXRlRGV0YWlsID0gKCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5taW5pbXVtSXRlbXNRdHkgJiYgdGhpcy5xdWFudGl0eSA8IHRoaXMubWluaW11bUl0ZW1zUXR5KSB7XG4gICAgICAgICAgICB0aGlzLnF1YW50aXR5RXJyb3IgPSAnTGEgY2FudGlkYWQgZGViZSBzZXIgYWwgbWVub3MgJyArIHRoaXMubWluaW11bUl0ZW1zUXR5O1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMubXVsdGlwbGVRdHkgJiYgdGhpcy5xdWFudGl0eSAlIHRoaXMubXVsdGlwbGVRdHkgIT09IDApIHtcbiAgICAgICAgICAgIHRoaXMucXVhbnRpdHlFcnJvciA9ICdMYSBjYW50aWRhZCBkZWJlIHNlciBtXFx1MDBmYWx0aXBsbyBkZSAnICsgdGhpcy5tdWx0aXBsZVF0eTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMucXVhbnRpdHlFcnJvciA9ICcnO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaXNRdWFudGl0eVZhbGlkRGV0YWlsID0gKCk6IGJvb2xlYW4gPT4ge1xuICAgICAgICBpZiAodGhpcy5taW5pbXVtSXRlbXNRdHkgJiYgdGhpcy5xdWFudGl0eSA8IHRoaXMubWluaW11bUl0ZW1zUXR5KSByZXR1cm4gZmFsc2U7XG4gICAgICAgIGlmICh0aGlzLm11bHRpcGxlUXR5ICYmIHRoaXMucXVhbnRpdHkgJSB0aGlzLm11bHRpcGxlUXR5ICE9PSAwKSByZXR1cm4gZmFsc2U7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIHNob3dDb250YWN0ID0gKCkgPT4gdGhpcy5zaG93ID0gdHJ1ZTtcbiAgICBoaWRlQ29udGFjdCA9ICgpID0+IHRoaXMuc2hvdyA9IGZhbHNlO1xuXG4gICAgdGhlcmVJc01vcmVJbmZvID0gKHByb2R1Y3Q6IGFueSkgPT4ge1xuICAgICAgICBsZXQgcmVzdWx0O1xuICAgICAgICBpZiAocHJvZHVjdD8uc3BlY2lhbF9tYXJrICYmIHByb2R1Y3Q/LnNwZWNpYWxfbWFyay5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJlc3VsdCA9IHByb2R1Y3Q/LnNwZWNpYWxfbWFyaz8uZmluZChzcGVjaWFsX21hcmsgPT4gc3BlY2lhbF9tYXJrLnR5cGUgPT0gJ21vcmVfaW5mbycpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgY2hhbmdlSW1nRm9jdXMgPSAoaW1nKSA9PiB7XG4gICAgICAgIHRoaXMuZm9jdXNJbWFnZSA9IGltZ1xuICAgIH1cbiAgICBjb3B5UHJvZHVjdFVybCA9IGFzeW5jICgpID0+IHtcbiAgICAgICAgY29uc3QgY29waWVkID0gYXdhaXQgdGhpcy5jb3B5VGV4dFRvQ2xpcGJvYXJkKHRoaXMuZ2V0Q3VycmVudFVybCgpKTtcbiAgICAgICAgdGhpcy50b2FzdHJTZXJ2aWNlLnNob3coY29waWVkID8gJ3NoYXJlLWxpbmstY29waWVkJyA6ICdzaGFyZS1saW5rLWNvcHktZmFpbGVkJyk7XG4gICAgfVxuXG4gICAgb3BlbldoYXRzYXBwU2hhcmUgPSAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHNoYXJlVXJsID0gdGhpcy5idWlsZFdoYXRzYXBwU2hhcmVVcmwoKTtcbiAgICAgICAgaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICB3aW5kb3cub3BlbihzaGFyZVVybCwgJ19ibGFuaycsICdub29wZW5lcixub3JlZmVycmVyJyk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
|
|
@@ -109,14 +109,24 @@ var PlaceToPayEcComponent = /** @class */ (function (_super) {
|
|
|
109
109
|
};
|
|
110
110
|
_this.getPreference = function () {
|
|
111
111
|
_this.paymentServiceInst.getCheckoutPlaceToPay(_this.allData).then(function (res) {
|
|
112
|
-
|
|
113
|
-
if (
|
|
112
|
+
// 1. Validamos que 'res' y 'res.status' existan antes de leer su interior
|
|
113
|
+
if (res && res.status && res.status.status === 'OK') {
|
|
114
114
|
_this.url = res.processUrl;
|
|
115
115
|
}
|
|
116
116
|
else {
|
|
117
|
-
|
|
117
|
+
// 2. Extraemos el mensaje de forma segura si existe
|
|
118
|
+
var errorMessage = (res && res.status && res.status.message)
|
|
119
|
+
? res.status.message
|
|
120
|
+
: 'Ocurrió un error al iniciar la pasarela. Inténtelo más tarde.';
|
|
121
|
+
_this.processError(errorMessage);
|
|
118
122
|
}
|
|
119
|
-
}, function (err) {
|
|
123
|
+
}, function (err) {
|
|
124
|
+
_this.processError('Ocurrió un error al procesar el pago. Inténtelo más tarde.');
|
|
125
|
+
}).catch(function (err) {
|
|
126
|
+
// 3. Capturamos cualquier otro error asíncrono para que no rompa la aplicación
|
|
127
|
+
_this.processError('Error interno al conectar con PlaceToPay.');
|
|
128
|
+
console.error('PlaceToPay Error:', err);
|
|
129
|
+
});
|
|
120
130
|
};
|
|
121
131
|
_this.ecOnConstruct();
|
|
122
132
|
console.log("method", _this.method);
|
|
@@ -167,4 +177,4 @@ var PlaceToPayEcComponent = /** @class */ (function (_super) {
|
|
|
167
177
|
return PlaceToPayEcComponent;
|
|
168
178
|
}(ComponentHelper));
|
|
169
179
|
export { PlaceToPayEcComponent };
|
|
170
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhY2UtdG8tcGF5LWVjLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25nLWVhc3ljb21tZXJjZS8iLCJzb3VyY2VzIjpbImxpYi9lYy1jb21wb25lbnQvd2lkZ2V0cy1lYy9wbGFjZS10by1wYXktZWMvcGxhY2UtdG8tcGF5LWVjLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDcEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDcEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzVELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDN0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBT2pEO0lBQTJDLHlDQUFlO0lBc0J0RCwrQkFDVyxRQUFtQixFQUNuQixVQUE2QixFQUM3QixhQUEyQixFQUMzQixNQUFpQixFQUNqQixXQUF3QixFQUN4QixZQUE0QjtRQU52QyxZQVFJLGlCQUFPLFNBU1Y7UUFoQlUsY0FBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQixnQkFBVSxHQUFWLFVBQVUsQ0FBbUI7UUFDN0IsbUJBQWEsR0FBYixhQUFhLENBQWM7UUFDM0IsWUFBTSxHQUFOLE1BQU0sQ0FBVztRQUNqQixpQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixrQkFBWSxHQUFaLFlBQVksQ0FBZ0I7UUExQjlCLFlBQU0sR0FBRyxJQUFJLENBQUM7UUFDZCxrQkFBWSxHQUFH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bEQsQ0FBQztPQUNXLHFCQUFxQixDQXdJakM7SUFBRCw0QkFBQztDQUFBLEFBeElELENBQTJDLGVBQWUsR0F3SXpEO1NBeElZLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT3V0cHV0LCBPbkluaXQsIElucHV0LCBFdmVudEVtaXR0ZXIsIE9uRGVzdHJveSwgUmVuZGVyZXIyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21wb25lbnRIZWxwZXIgfSBmcm9tIFwiLi4vLi4vLi4vY2xhc3Nlcy9jb21wb25lbnQtaGVscGVyXCI7XG5pbXBvcnQgeyBDb25uZWN0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2FwaS9jb25uZWN0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgVG9hc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvdG9hc3Quc2VydmljZSc7XG5pbXBvcnQgeyBDb25zdGFudHMgfSBmcm9tICcuLi8uLi8uLi9jb3JlLmNvbnN0cyc7XG5pbXBvcnQgeyBDYXJ0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2NhcnQuc2VydmljZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYXBwLXBsYWNlLXRvLXBheS1lYycsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3BsYWNlLXRvLXBheS1lYy5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vcGxhY2UtdG8tcGF5LWVjLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFBsYWNlVG9QYXlFY0NvbXBvbmVudCBleHRlbmRzIENvbXBvbmVudEhlbHBlciBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICAgIEBJbnB1dCgpIG1ldGhvZCA9IG51bGw7XG4gICAgQElucHV0KCkgdG90YWxfYW1vdW50ID0gMDtcbiAgICBASW5wdXQoKSBwYXltZW50U2VydmljZUluc3Q7XG4gICAgQElucHV0KCkgYWxsRGF0YTtcbiAgICBAT3V0cHV0KCkgcmVhZHkgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBwdWJsaWMgbG9hZGluZyA9IGZhbHNlO1xuICAgIHB1YmxpYyB1cmw6IHN0cmluZztcbiAgICBwdWJsaWMgY2xvc2VNb2RhbCA9ICcnO1xuICAgIHB1YmxpYyB2ZW50YW5hO1xuICAgIHByaXZhdGUgY2FydDogYW55O1xuXG4gICAgcHVibGljIGhhc1ByZXZpb3VzRmFpbHVyZSA9IGZhbHNlO1xuICAgIHB1YmxpYyBwcmV2aW91c0ZhaWx1cmVBbW91bnQ6IG51bWJlciA9IG51bGw7XG4gICAgcHVibGljIHByZXZpb3VzRmFpbHVyZURhdGU6IHN0cmluZyA9IG51bGw7XG4gICAgcHVibGljIGJ1dHRvblRleHQgPSAnUGFnYXInO1xuXG4gICAgcHJvdGVjdGVkIGRhdGFSZWRpcmVjdCA9ICgpID0+XG4gICAgICAgIHRoaXMuY29uc3RzLmdldFVybEJhc2UoKSArICdzaG9wLWFwaS8nICsgdGhpcy5jb25zdHMuZ2V0Q2hhbm5lbCgpICsgJy9wbGFjZS10by1wYXkvJyArIHRoaXMuY2FydFNlcnZpY2UuY2FydF90b2tlbiArICcvcHJvY2Vzcy1wYXltZW50JztcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwdWJsaWMgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICAgICAgcHVibGljIGNvbm5lY3Rpb246IENvbm5lY3Rpb25TZXJ2aWNlLFxuICAgICAgICBwdWJsaWMgdG9hc3RyU2VydmljZTogVG9hc3RTZXJ2aWNlLFxuICAgICAgICBwdWJsaWMgY29uc3RzOiBDb25zdGFudHMsXG4gICAgICAgIHB1YmxpYyBjYXJ0U2VydmljZTogQ2FydFNlcnZpY2UsXG4gICAgICAgIHB1YmxpYyBhY3RpdmVkUm91dGU6IEFjdGl2YXRlZFJvdXRlXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuZWNPbkNvbnN0cnVjdCgpO1xuICAgICAgICBjb25zb2xlLmxvZyhcIm1ldGhvZFwiLCB0aGlzLm1ldGhvZCk7XG4gICAgICAgIGNvbnNvbGUubG9nKFwicHJldmlvdXNGYWlsdXJlQW1vdW50XCIsIHRoaXMucHJldmlvdXNGYWlsdXJlQW1vdW50KTtcbiAgICAgICAgdGhpcy5jYXJ0U2VydmljZS5jYXJ0LnN1YnNjcmliZShjYXJ0ID0+IHtcbiAgICAgICAgICAgIHRoaXMuY2FydCA9IGNhcnQ7XG4gICAgICAgIH0pO1xuICAgICAgICBjb25zb2xlLmxvZyhcImNhcnRcIiwgdGhpcy5jYXJ0KTtcbiAgICAgICAgXG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuZ2V0UHJlZmVyZW5jZSgpO1xuICAgICAgICB0aGlzLmVjT25Jbml0KCk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIC8vIEPDs2RpZ28gbmVjZXNhcmlvIGFsIGRlc3RydWlyIGVsIGNvbXBvbmVudGVcbiAgICB9XG5cbiAgICBpbmljaWFyID0gKCkgPT4ge1xuICAgICAgICB0aGlzLmNsb3NlTW9kYWwgPSAnJztcbiAgICAgICAgdGhpcy5jbGVhclN0b3JhZ2VTdGF0ZSgpO1xuICAgICAgICB0aGlzLnZlbnRhbmEgPSB3aW5kb3cub3Blbih0aGlzLnVybCk7XG4gICAgICAgIHRoaXMuY2FsbFN0YXRlKCk7XG4gICAgfVxuXG4gICAgY2xlYXJTdG9yYWdlU3RhdGUgPSAoKSA9PiB7XG4gICAgICAgIHNlc3Npb25TdG9yYWdlLnJlbW92ZUl0ZW0oJ3N0YXRlJyk7XG4gICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCdzdGF0ZScpO1xuICAgIH1cblxuICAgIGNsaWNrQ2xvc2UgPSAoKSA9PiB7XG4gICAgICAgIHRoaXMuY2xvc2VNb2RhbCA9ICdjYW5jZWwnO1xuICAgICAgICB0aGlzLnZlbnRhbmE/LmNsb3NlKCk7XG4gICAgfVxuXG4gICAgY2FsbFN0YXRlID0gKCkgPT4ge1xuICAgICAgICBsZXQgc3RhdGUgPSB0aGlzLmNsb3NlTW9kYWwgIT09ICcnID8gdGhpcy5jbG9zZU1vZGFsIDogbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3N0YXRlJyk7XG4gICAgICAgICFzdGF0ZSAmJiB0aGlzLnZlbnRhbmE/LmNsb3NlZCAmJiAoc3RhdGUgPSAnY2FuY2VsJyk7XG5cbiAgICAgICAgdGhpcy5oYXNQcmV2aW91c0ZhaWx1cmUgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcbiAgICAgICAgaWYgKHN0YXRlKSB7XG4gICAgICAgICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgnc3RhdGUnKTtcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgaWYgKHN0YXRlID09PSAnc3VjY2VzcycgfHwgc3RhdGUgPT09ICdwZW5kaW5nJykge1xuICAgICAgICAgICAgICAgIHRoaXMudmVudGFuYT8uY2xvc2UoKTtcbiAgICAgICAgICAgICAgICB0aGlzLnJlYWR5LmVtaXQodHJ1ZSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgXG4gICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgIGlmIChzdGF0ZSA9PT0gJ2ZhaWx1cmUnIHx8IHN0YXRlID09PSAnY2FuY2VsJykge1xuICAgICAgICAgICAgICAgIHRoaXMudmVudGFuYT8uY2xvc2UoKTtcblxuICAgICAgICAgICAgICAgIGlmIChzdGF0ZSA9PT0gJ2ZhaWx1cmUnKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGFtdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCd0b3RhbF9hbW91bnQnKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGFtdCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5oYXNQcmV2aW91c0ZhaWx1cmUgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wcmV2aW91c0ZhaWx1cmVBbW91bnQgPSBwYXJzZUZsb2F0KGFtdCk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucHJldmlvdXNGYWlsdXJlRGF0ZSA9IG5ldyBEYXRlKCkudG9Mb2NhbGVEYXRlU3RyaW5nKCdlcy1BUicsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXk6ICcyLWRpZ2l0JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb250aDogJzItZGlnaXQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHllYXI6ICdudW1lcmljJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5idXR0b25UZXh0ID0gJ1JlaW50ZW50YXIgcGFnbyc7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCd0b3RhbF9hbW91bnQnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCdwYXltZW50X2RhdGUnKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHRoaXMuZ2V0UHJlZmVyZW5jZSgpO1xuICAgICAgICAgICAgICAgIHRoaXMucHJvY2Vzc0Vycm9yKHN0YXRlID09PSAnY2FuY2VsJyA/ICdTZSBjYW5jZWzDsyBlbCBwYWdvIGNvbiBQbGFjZSB0byBQYXknIDogJycpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy52ZW50YW5hPy5jbG9zZSgpO1xuICAgICAgICAgICAgdGhpcy5wcm9jZXNzRXJyb3IoJycpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmNhbGxTdGF0ZSgpO1xuICAgICAgICB9LCA1MDAwKTtcbiAgICB9XG5cbiAgICBwcm9jZXNzRXJyb3IgPSAoZXJyKSA9PiB7XG4gICAgICAgIHRoaXMudG9hc3RyU2VydmljZS5zaG93KGVyciAhPT0gJycgPyBlcnIgOiAncGF5bWVudC1lcnJvcicpO1xuICAgIH1cblxuICAgIGdldFByZWZlcmVuY2UgPSAoKSA9PiB7XG4gICAgICAgIHRoaXMucGF5bWVudFNlcnZpY2VJbnN0LmdldENoZWNrb3V0UGxhY2VUb1BheSh0aGlzLmFsbERhdGEpLnRoZW4oXG4gICAgICAgICAgICByZXMgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChyZXMuc3RhdHVzPy5zdGF0dXMgPT09ICdPSycpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy51cmwgPSByZXMucHJvY2Vzc1VybDtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnByb2Nlc3NFcnJvcihyZXMuc3RhdHVzPy5tZXNzYWdlIHx8ICdPY3VycmnDsyB1biBlcnJvci4gSW50w6ludGVsbyBtw6FzIHRhcmRlLicpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBlcnIgPT4gdGhpcy5wcm9jZXNzRXJyb3IoJ09jdXJyacOzIHVuIGVycm9yIGFsIHByb2Nlc2FyIGVsIHBhZ28uIEludMOpbnRlbG8gbcOhcyB0YXJkZS4nKVxuICAgICAgICApO1xuICAgIH1cblxufVxuIl19
|
|
180
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhY2UtdG8tcGF5LWVjLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25nLWVhc3ljb21tZXJjZS8iLCJzb3VyY2VzIjpbImxpYi9lYy1jb21wb25lbnQvd2lkZ2V0cy1lYy9wbGFjZS10by1wYXktZWMvcGxhY2UtdG8tcGF5LWVjLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDcEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDcEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzVELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDN0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBT2pEO0lBQTJDLHlDQUFlO0lBc0J0RCwrQkFDVyxRQUFtQixFQUNuQixVQUE2QixFQUM3QixhQUEyQixFQUMzQixNQUFpQixFQUNqQixXQUF3QixFQUN4QixZQUE0QjtRQU52QyxZQVFJLGlCQUFPLFNBU1Y7UUFoQlUsY0FBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQixnQkFBVSxHQUFWLFVBQVUsQ0FBbUI7UUFDN0IsbUJBQWEsR0FBYixhQUFhLENBQWM7UUFDM0IsWUFBTSxHQUFOLE1BQU0sQ0FBVztRQUNqQixpQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixrQkFBWSxHQUFaLFlBQVksQ0FBZ0I7UUExQjlCLFlBQU0sR0FBRyxJQUFJLENBQUM7UUFDZCxrQkFBWSxHQUFH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QUFDO0lBRUQsMkNBQVcsR0FBWDtRQUNJLDZDQUE2QztJQUNqRCxDQUFDOztnQkF6Qm9CLFNBQVM7Z0JBQ1AsaUJBQWlCO2dCQUNkLFlBQVk7Z0JBQ25CLFNBQVM7Z0JBQ0osV0FBVztnQkFDVixjQUFjOztJQTFCOUI7UUFBUixLQUFLLEVBQUU7eURBQWU7SUFDZDtRQUFSLEtBQUssRUFBRTsrREFBa0I7SUFDakI7UUFBUixLQUFLLEVBQUU7cUVBQW9CO0lBQ25CO1FBQVIsS0FBSyxFQUFFOzBEQUFTO0lBQ1A7UUFBVCxNQUFNLEVBQUU7d0RBQTRCO0lBTjVCLHFCQUFxQjtRQUxqQyxTQUFTLENBQUM7WUFDUCxRQUFRLEVBQUUscUJBQXFCO1lBQy9CLGkwREFBK0M7O1NBRWxELENBQUM7T0FDVyxxQkFBcUIsQ0FvSmpDO0lBQUQsNEJBQUM7Q0FBQSxBQXBKRCxDQUEyQyxlQUFlLEdBb0p6RDtTQXBKWSxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE91dHB1dCwgT25Jbml0LCBJbnB1dCwgRXZlbnRFbWl0dGVyLCBPbkRlc3Ryb3ksIFJlbmRlcmVyMiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tcG9uZW50SGVscGVyIH0gZnJvbSBcIi4uLy4uLy4uL2NsYXNzZXMvY29tcG9uZW50LWhlbHBlclwiO1xuaW1wb3J0IHsgQ29ubmVjdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9hcGkvY29ubmVjdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IFRvYXN0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL3RvYXN0LnNlcnZpY2UnO1xuaW1wb3J0IHsgQ29uc3RhbnRzIH0gZnJvbSAnLi4vLi4vLi4vY29yZS5jb25zdHMnO1xuaW1wb3J0IHsgQ2FydFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9jYXJ0LnNlcnZpY2UnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2FwcC1wbGFjZS10by1wYXktZWMnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9wbGFjZS10by1wYXktZWMuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3BsYWNlLXRvLXBheS1lYy5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBQbGFjZVRvUGF5RWNDb21wb25lbnQgZXh0ZW5kcyBDb21wb25lbnRIZWxwZXIgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgICBASW5wdXQoKSBtZXRob2QgPSBudWxsO1xuICAgIEBJbnB1dCgpIHRvdGFsX2Ftb3VudCA9IDA7XG4gICAgQElucHV0KCkgcGF5bWVudFNlcnZpY2VJbnN0O1xuICAgIEBJbnB1dCgpIGFsbERhdGE7XG4gICAgQE91dHB1dCgpIHJlYWR5ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgcHVibGljIGxvYWRpbmcgPSBmYWxzZTtcbiAgICBwdWJsaWMgdXJsOiBzdHJpbmc7XG4gICAgcHVibGljIGNsb3NlTW9kYWwgPSAnJztcbiAgICBwdWJsaWMgdmVudGFuYTtcbiAgICBwcml2YXRlIGNhcnQ6IGFueTtcblxuICAgIHB1YmxpYyBoYXNQcmV2aW91c0ZhaWx1cmUgPSBmYWxzZTtcbiAgICBwdWJsaWMgcHJldmlvdXNGYWlsdXJlQW1vdW50OiBudW1iZXIgPSBudWxsO1xuICAgIHB1YmxpYyBwcmV2aW91c0ZhaWx1cmVEYXRlOiBzdHJpbmcgPSBudWxsO1xuICAgIHB1YmxpYyBidXR0b25UZXh0ID0gJ1BhZ2FyJztcblxuICAgIHByb3RlY3RlZCBkYXRhUmVkaXJlY3QgPSAoKSA9PlxuICAgICAgICB0aGlzLmNvbnN0cy5nZXRVcmxCYXNlKCkgKyAnc2hvcC1hcGkvJyArIHRoaXMuY29uc3RzLmdldENoYW5uZWwoKSArICcvcGxhY2UtdG8tcGF5LycgKyB0aGlzLmNhcnRTZXJ2aWNlLmNhcnRfdG9rZW4gKyAnL3Byb2Nlc3MtcGF5bWVudCc7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHVibGljIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgICAgIHB1YmxpYyBjb25uZWN0aW9uOiBDb25uZWN0aW9uU2VydmljZSxcbiAgICAgICAgcHVibGljIHRvYXN0clNlcnZpY2U6IFRvYXN0U2VydmljZSxcbiAgICAgICAgcHVibGljIGNvbnN0czogQ29uc3RhbnRzLFxuICAgICAgICBwdWJsaWMgY2FydFNlcnZpY2U6IENhcnRTZXJ2aWNlLFxuICAgICAgICBwdWJsaWMgYWN0aXZlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVxuICAgICkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLmVjT25Db25zdHJ1Y3QoKTtcbiAgICAgICAgY29uc29sZS5sb2coXCJtZXRob2RcIiwgdGhpcy5tZXRob2QpO1xuICAgICAgICBjb25zb2xlLmxvZyhcInByZXZpb3VzRmFpbHVyZUFtb3VudFwiLCB0aGlzLnByZXZpb3VzRmFpbHVyZUFtb3VudCk7XG4gICAgICAgIHRoaXMuY2FydFNlcnZpY2UuY2FydC5zdWJzY3JpYmUoY2FydCA9PiB7XG4gICAgICAgICAgICB0aGlzLmNhcnQgPSBjYXJ0O1xuICAgICAgICB9KTtcbiAgICAgICAgY29uc29sZS5sb2coXCJjYXJ0XCIsIHRoaXMuY2FydCk7XG4gICAgICAgIFxuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLmdldFByZWZlcmVuY2UoKTtcbiAgICAgICAgdGhpcy5lY09uSW5pdCgpO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICAvLyBDw7NkaWdvIG5lY2VzYXJpbyBhbCBkZXN0cnVpciBlbCBjb21wb25lbnRlXG4gICAgfVxuXG4gICAgaW5pY2lhciA9ICgpID0+IHtcbiAgICAgICAgdGhpcy5jbG9zZU1vZGFsID0gJyc7XG4gICAgICAgIHRoaXMuY2xlYXJTdG9yYWdlU3RhdGUoKTtcbiAgICAgICAgdGhpcy52ZW50YW5hID0gd2luZG93Lm9wZW4odGhpcy51cmwpO1xuICAgICAgICB0aGlzLmNhbGxTdGF0ZSgpO1xuICAgIH1cblxuICAgIGNsZWFyU3RvcmFnZVN0YXRlID0gKCkgPT4ge1xuICAgICAgICBzZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKCdzdGF0ZScpO1xuICAgICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgnc3RhdGUnKTtcbiAgICB9XG5cbiAgICBjbGlja0Nsb3NlID0gKCkgPT4ge1xuICAgICAgICB0aGlzLmNsb3NlTW9kYWwgPSAnY2FuY2VsJztcbiAgICAgICAgdGhpcy52ZW50YW5hPy5jbG9zZSgpO1xuICAgIH1cblxuICAgIGNhbGxTdGF0ZSA9ICgpID0+IHtcbiAgICAgICAgbGV0IHN0YXRlID0gdGhpcy5jbG9zZU1vZGFsICE9PSAnJyA/IHRoaXMuY2xvc2VNb2RhbCA6IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdzdGF0ZScpO1xuICAgICAgICAhc3RhdGUgJiYgdGhpcy52ZW50YW5hPy5jbG9zZWQgJiYgKHN0YXRlID0gJ2NhbmNlbCcpO1xuXG4gICAgICAgIHRoaXMuaGFzUHJldmlvdXNGYWlsdXJlID0gZmFsc2U7XG4gICAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7XG4gICAgICAgIGlmIChzdGF0ZSkge1xuICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oJ3N0YXRlJyk7XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIGlmIChzdGF0ZSA9PT0gJ3N1Y2Nlc3MnIHx8IHN0YXRlID09PSAncGVuZGluZycpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnZlbnRhbmE/LmNsb3NlKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5yZWFkeS5lbWl0KHRydWUpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIFxuICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgICBpZiAoc3RhdGUgPT09ICdmYWlsdXJlJyB8fCBzdGF0ZSA9PT0gJ2NhbmNlbCcpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnZlbnRhbmE/LmNsb3NlKCk7XG5cbiAgICAgICAgICAgICAgICBpZiAoc3RhdGUgPT09ICdmYWlsdXJlJykge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBhbXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgndG90YWxfYW1vdW50Jyk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChhbXQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaGFzUHJldmlvdXNGYWlsdXJlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucHJldmlvdXNGYWlsdXJlQW1vdW50ID0gcGFyc2VGbG9hdChhbXQpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnByZXZpb3VzRmFpbHVyZURhdGUgPSBuZXcgRGF0ZSgpLnRvTG9jYWxlRGF0ZVN0cmluZygnZXMtQVInLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF5OiAnMi1kaWdpdCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9udGg6ICcyLWRpZ2l0JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB5ZWFyOiAnbnVtZXJpYycsXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYnV0dG9uVGV4dCA9ICdSZWludGVudGFyIHBhZ28nO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgndG90YWxfYW1vdW50Jyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgncGF5bWVudF9kYXRlJyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB0aGlzLmdldFByZWZlcmVuY2UoKTtcbiAgICAgICAgICAgICAgICB0aGlzLnByb2Nlc3NFcnJvcihzdGF0ZSA9PT0gJ2NhbmNlbCcgPyAnU2UgY2FuY2Vsw7MgZWwgcGFnbyBjb24gUGxhY2UgdG8gUGF5JyA6ICcnKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMudmVudGFuYT8uY2xvc2UoKTtcbiAgICAgICAgICAgIHRoaXMucHJvY2Vzc0Vycm9yKCcnKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5jYWxsU3RhdGUoKTtcbiAgICAgICAgfSwgNTAwMCk7XG4gICAgfVxuXG4gICAgcHJvY2Vzc0Vycm9yID0gKGVycikgPT4ge1xuICAgICAgICB0aGlzLnRvYXN0clNlcnZpY2Uuc2hvdyhlcnIgIT09ICcnID8gZXJyIDogJ3BheW1lbnQtZXJyb3InKTtcbiAgICB9XG5cbiAgICBnZXRQcmVmZXJlbmNlID0gKCkgPT4ge1xuICAgICAgICB0aGlzLnBheW1lbnRTZXJ2aWNlSW5zdC5nZXRDaGVja291dFBsYWNlVG9QYXkodGhpcy5hbGxEYXRhKS50aGVuKFxuICAgICAgICAgICAgKHJlczogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgLy8gMS4gVmFsaWRhbW9zIHF1ZSAncmVzJyB5ICdyZXMuc3RhdHVzJyBleGlzdGFuIGFudGVzIGRlIGxlZXIgc3UgaW50ZXJpb3JcbiAgICAgICAgICAgICAgICBpZiAocmVzICYmIHJlcy5zdGF0dXMgJiYgcmVzLnN0YXR1cy5zdGF0dXMgPT09ICdPSycpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy51cmwgPSByZXMucHJvY2Vzc1VybDtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAvLyAyLiBFeHRyYWVtb3MgZWwgbWVuc2FqZSBkZSBmb3JtYSBzZWd1cmEgc2kgZXhpc3RlXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGVycm9yTWVzc2FnZSA9IChyZXMgJiYgcmVzLnN0YXR1cyAmJiByZXMuc3RhdHVzLm1lc3NhZ2UpIFxuICAgICAgICAgICAgICAgICAgICAgICAgPyByZXMuc3RhdHVzLm1lc3NhZ2UgXG4gICAgICAgICAgICAgICAgICAgICAgICA6ICdPY3VycmnDsyB1biBlcnJvciBhbCBpbmljaWFyIGxhIHBhc2FyZWxhLiBJbnTDqW50ZWxvIG3DoXMgdGFyZGUuJztcbiAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucHJvY2Vzc0Vycm9yKGVycm9yTWVzc2FnZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIChlcnI6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMucHJvY2Vzc0Vycm9yKCdPY3VycmnDsyB1biBlcnJvciBhbCBwcm9jZXNhciBlbCBwYWdvLiBJbnTDqW50ZWxvIG3DoXMgdGFyZGUuJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICkuY2F0Y2goKGVycjogYW55KSA9PiB7XG4gICAgICAgICAgICAvLyAzLiBDYXB0dXJhbW9zIGN1YWxxdWllciBvdHJvIGVycm9yIGFzw61uY3Jvbm8gcGFyYSBxdWUgbm8gcm9tcGEgbGEgYXBsaWNhY2nDs25cbiAgICAgICAgICAgIHRoaXMucHJvY2Vzc0Vycm9yKCdFcnJvciBpbnRlcm5vIGFsIGNvbmVjdGFyIGNvbiBQbGFjZVRvUGF5LicpO1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcignUGxhY2VUb1BheSBFcnJvcjonLCBlcnIpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbn1cbiJdfQ==
|