@pmcretail/mapper-library 0.0.32 → 0.0.34
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/bundles/pmcretail-mapper-library.umd.js +3 -7
- package/bundles/pmcretail-mapper-library.umd.js.map +1 -1
- package/bundles/pmcretail-mapper-library.umd.min.js +1 -1
- package/bundles/pmcretail-mapper-library.umd.min.js.map +1 -1
- package/esm2015/lib/WebReturnSalesforceMapper.class.js +4 -8
- package/esm2015/lib/mapper-library.component.js +5 -5
- package/esm2015/lib/mapper-library.model.js +1 -1
- package/esm2015/lib/mapper-library.module.js +1 -1
- package/esm5/lib/WebReturnSalesforceMapper.class.js +4 -8
- package/esm5/lib/mapper-library.component.js +1 -1
- package/esm5/lib/mapper-library.model.js +1 -1
- package/esm5/lib/mapper-library.module.js +1 -1
- package/fesm2015/pmcretail-mapper-library.js +7 -11
- package/fesm2015/pmcretail-mapper-library.js.map +1 -1
- package/fesm5/pmcretail-mapper-library.js +3 -7
- package/fesm5/pmcretail-mapper-library.js.map +1 -1
- package/lib/mapper-library.model.d.ts +1 -1
- package/package.json +1 -1
|
@@ -286,7 +286,7 @@ var WebReturnSalesforceMapperBuilderClass = /** @class */ (function () {
|
|
|
286
286
|
var transactionPromotionObj = (/** @type {?} */ ({}));
|
|
287
287
|
transactionPromotionObj.displayText = transactionPromotion.item_text ? transactionPromotion.item_text : '';
|
|
288
288
|
transactionPromotionObj.name = transactionPromotion.coupon_code ? transactionPromotion.coupon_code : (transactionPromotion.item_text ? transactionPromotion.item_text : '');
|
|
289
|
-
transactionPromotionObj.promotionAmount = transactionPromotion.price ?
|
|
289
|
+
transactionPromotionObj.promotionAmount = transactionPromotion.price ? Math.abs(transactionPromotion.price) : 0;
|
|
290
290
|
transactionPromotionObj.promotionId = transactionPromotion.promotion_id ? transactionPromotion.promotion_id : '';
|
|
291
291
|
transactionPromotionObj.promotionInfo = transactionPromotion.item_text ? transactionPromotion.item_text : '';
|
|
292
292
|
transactionPromotionObj.promotionType = transactionPromotion.applied_discount && transactionPromotion.applied_discount.type ? transactionPromotion.applied_discount.type : '';
|
|
@@ -407,18 +407,14 @@ var WebReturnSalesforceMapperBuilderClass = /** @class */ (function () {
|
|
|
407
407
|
*/
|
|
408
408
|
function () {
|
|
409
409
|
var _this = this;
|
|
410
|
-
/** @type {?} */
|
|
411
|
-
var doc;
|
|
412
|
-
if ((/** @type {?} */ (this)).webReturnObject.basket.transactionPromotion) {
|
|
410
|
+
if ((/** @type {?} */ (this)).webReturnObject.basket.transactionPromotion && (/** @type {?} */ (this)).webReturnObject.basket.transactionPromotion.length > 0) {
|
|
413
411
|
(/** @type {?} */ (this)).webReturnObject.basket.transactionPromotion.forEach((/**
|
|
414
412
|
* @param {?} tr
|
|
415
413
|
* @return {?}
|
|
416
414
|
*/
|
|
417
415
|
function (tr) {
|
|
418
|
-
|
|
419
|
-
(/** @type {?} */ (_this)).transactionPromotionProductPortionCalc((/** @type {?} */ (_this)).webReturnObject, tr);
|
|
416
|
+
(/** @type {?} */ (_this)).transactionPromotionProductPortionCalc((/** @type {?} */ (_this)).webReturnObject, tr);
|
|
420
417
|
}));
|
|
421
|
-
(/** @type {?} */ (this)).webReturnObject = doc;
|
|
422
418
|
}
|
|
423
419
|
return (/** @type {?} */ (this));
|
|
424
420
|
};
|
|
@@ -858,4 +854,4 @@ if (false) {
|
|
|
858
854
|
*/
|
|
859
855
|
WebReturnSalesforceMapperBuilderClass.prototype.currencyPipe;
|
|
860
856
|
}
|
|
861
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiV2ViUmV0dXJuU2FsZXNmb3JjZU1hcHBlci5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BwbWNyZXRhaWwvbWFwcGVyLWxpYnJhcnkvIiwic291cmNlcyI6WyJsaWIvV2ViUmV0dXJuU2FsZXNmb3JjZU1hcHBlci5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUNBLE9BQU8sRUFBcUYsZ0JBQWdCLEVBQUUsZUFBZSxFQUFFLGNBQWMsRUFBRSxpQkFBaUIsRUFBZ0MsU0FBUyxFQUFtQixnQkFBZ0IsRUFBa0ksTUFBTSx3QkFBd0IsQ0FBQztBQUM3WSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUUxRDtJQWdDSSwrQ0FBWSxZQUEwQixFQUMxQixZQUEyQjtRQUEzQixpQkFBWSxHQUFaLFlBQVksQ0FBZTtRQTlCL0Isb0JBQWUsR0FBd0I7WUFDM0MsRUFBRSxFQUFFLEVBQUU7WUFDTixPQUFPLEVBQUUsRUFBRTtZQUNYLE9BQU8sRUFBRSxFQUFFO1lBQ1gsV0FBVyxFQUFFLEVBQUU7WUFDZixrQkFBa0IsRUFBRSxFQUFFO1lBQ3RCLFFBQVEsRUFBRSxFQUFFO1lBQ1osVUFBVSxFQUFFLEVBQUU7WUFDZCxnQkFBZ0IsRUFBRSxFQUFFO1lBQ3BCLE1BQU0sRUFBRSxLQUFLO1lBQ2IsTUFBTSxFQUFFLEVBQUU7WUFDVixhQUFhLEVBQUUsRUFBRTtZQUNqQixZQUFZLEVBQUUsRUFBRTtZQUNoQixRQUFRLEVBQUU7Z0JBQ04sRUFBRSxFQUFFLEVBQUU7Z0JBQ04sS0FBSyxFQUFFLEVBQUU7Z0JBQ1QsU0FBUyxFQUFFLEVBQUU7Z0JBQ2IsUUFBUSxFQUFFLEVBQUU7Z0JBQ1osY0FBYyxFQUFFLEVBQUU7Z0JBQ2xCLGVBQWUsRUFBRSxFQUFFO2dCQUNuQixlQUFlLEVBQUUsRUFBRTtnQkFDbkIsU0FBUyxFQUFFLEVBQUU7Z0JBQ2IsUUFBUSxFQUFFLEVBQUU7Z0JBQ1osa0JBQWtCLEVBQUUsS0FBSzthQUM1QjtZ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QUMsa0JBQWtCLEdBQUcsa0JBQWtCLENBQUM7UUFDN0QsT0FBTyxtQkFBQSxJQUFJLEVBQUEsQ0FBQztJQUNoQixDQUFDOzs7Ozs7O0lBRUQscURBQUs7Ozs7OztJQUFMLFVBQU0sS0FBSztRQUNQLG1CQUFBLElBQUksRUFBQSxDQUFDLGVBQWUsQ0FBQyxFQUFFLEdBQUcsS0FBSyxDQUFDO1FBQ2hDLE9BQU8sbUJBQUEsSUFBSSxFQUFBLENBQUM7SUFDaEIsQ0FBQzs7Ozs7OztJQUVELDREQUFZOzs7Ozs7SUFBWixVQUFhLE1BQWM7UUFDdkIsbUJBQUEsSUFBSSxFQUFBLENBQUMsZUFBZSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDckMsT0FBTyxtQkFBQSxJQUFJLEVBQUEsQ0FBQztJQUNoQixDQUFDOzs7Ozs7O0lBRUQsOERBQWM7Ozs7OztJQUFkLFVBQWUsSUFBSTtRQUNmLG1CQUFBLElBQUksRUFBQSxDQUFDLGVBQWUsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ3JDLE9BQU8sbUJBQUEsSUFBSSxFQUFBLENBQUM7SUFDaEIsQ0FBQzs7OztJQUVELHFEQUFLOzs7SUFBTDtRQUNJLE9BQU8sQ0FBQyxHQUFHLENBQUMsd0VBQXdFLENBQUMsQ0FBQztRQUN0RixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUM7SUFDaEMsQ0FBQzs7Ozs7SUFFRCw4REFBYzs7OztJQUFkLFVBQWUsSUFBSTtRQUNmLElBQUksSUFBSSxFQUFFO1lBQ04sT0FBTyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUN2QztJQUNMLENBQUM7SUFDTCw0Q0FBQztBQUFELENBQUMsQUFqZkQsSUFpZkM7Ozs7Ozs7SUEvZUcsNkRBQW1DOzs7OztJQUNuQyxnRUEwQkM7O0lBQ0Qsa0VBQXVCOzs7OztJQUduQiw2REFBbUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDdXJyZW5jeVBpcGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XHJcbmltcG9ydCB7IEFkZHJlc3MsIEJhc2tldFN1bW1hcnksIEJhc2tldFN1bW1hcnlEZXRhaWxzLCBDdXJyZW50VHJhbnNhY3Rpb25EZXRhaWxzLCBDdXN0b21lciwgREVMSVZFUllfTUVUSE9EUywgUFJPTU9USU9OX0xFVkVMLCBQUk9NT1RJT05fVFlQRSwgSU5JVElBVElOR19NT0RVTEUsIExpbmVQcm9tb3Rpb25zLCBPcmRlckRldGFpbHMsIFBST1ZJREVSUywgU2hpcG1lbnREZXRhaWxzLCBUUkFOU0FDVElPTl9UWVBFLCBUcmFuc2FjdGlvbkRvY3VtZW50LCBUcmFuc2FjdGlvbkluZm8sIFRyYW5zYWN0aW9uUHJvbW90aW9uLCBUcmlnZ2VyLCBleHRlcm5hbFRyYW5zYWN0aW9uRGV0YWlscywgVFByb2R1Y3QsIFJlZnVuZFByb2R1Y3RDaGFuZ2UgfSBmcm9tIFwiLi9tYXBwZXItbGlicmFyeS5tb2RlbFwiO1xyXG5pbXBvcnQgeyBOdW1iZXJVdGlsU2VydmljZSB9IGZyb20gXCIuL251bWJlci11dGlsLnNlcnZpY2VcIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBXZWJSZXR1cm5TYWxlc2ZvcmNlTWFwcGVyQnVpbGRlckNsYXNzIHtcclxuXHJcbiAgICBwcml2YXRlIG9yZGVyRGV0YWlsczogT3JkZXJEZXRhaWxzO1xyXG4gICAgcHJpdmF0ZSB3ZWJSZXR1cm5PYmplY3Q6IFRyYW5zYWN0aW9uRG9jdW1lbnQgPSB7XHJcbiAgICAgICAgaWQ6ICcnLFxyXG4gICAgICAgIG9yZ0NvZGU6IFwiXCIsXHJcbiAgICAgICAgc3RvcmVJZDogXCJcIixcclxuICAgICAgICBzdG9yZU5vZGVJZDogXCJcIixcclxuICAgICAgICBzdG9yZU5vZGVTdHJ1Y3R1cmU6IFwiXCIsXHJcbiAgICAgICAgZGV2aWNlSWQ6IFwiXCIsXHJcbiAgICAgICAgdGVybWluYWxJZDogXCJcIixcclxuICAgICAgICBpbml0aWF0aW5nTW9kdWxlOiBcIlwiLFxyXG4gICAgICAgIGV4cG9ydDogZmFsc2UsXHJcbiAgICAgICAgYmFza2V0OiB7fSxcclxuICAgICAgICBiYXNrZXRTdW1tYXJ5OiB7fSxcclxuICAgICAgICBiYXNlQ3VycmVuY3k6IFwiXCIsXHJcbiAgICAgICAgY3VzdG9tZXI6IHtcclxuICAgICAgICAgICAgaWQ6ICcnLFxyXG4gICAgICAgICAgICBlbWFpbDogJycsXHJcbiAgICAgICAgICAgIGZpcnN0TmFtZTogJycsXHJcbiAgICAgICAgICAgIGxhc3ROYW1lOiAnJyxcclxuICAgICAgICAgICAgYmlsbGluZ0FkZHJlc3M6IFtdLFxyXG4gICAgICAgICAgICBzaGlwcGluZ0FkZHJlc3M6IFtdLFxyXG4gICAgICAgICAgICBzaGlwbWVudERldGFpbHM6IFtdLFxyXG4gICAgICAgICAgICB0ZWxlcGhvbmU6ICcnLFxyXG4gICAgICAgICAgICBwb3N0Q29kZTogJycsXHJcbiAgICAgICAgICAgIG5vQ3VzdG9tZXJTZWxlY3RlZDogZmFsc2VcclxuICAgICAgICB9LFxyXG4gICAgICAgIGN1cnJlbnRUcmFuc2FjdGlvbkRldGFpbHM6IHt9IGFzIEN1cnJlbnRUcmFuc2FjdGlvbkRldGFpbHNcclxuICAgIH1cclxuICAgIG51bWJlclV0aWxTZXJ2aWNlOiBhbnk7XHJcblxyXG4gICAgY29uc3RydWN0b3Iob3JkZXJEZXRhaWxzOiBPcmRlckRldGFpbHMsXHJcbiAgICAgICAgcHJpdmF0ZSBjdXJyZW5jeVBpcGU/OiBDdXJyZW5jeVBpcGVcclxuICAgICAgICApIHtcclxuICAgICAgICBpZiAob3JkZXJEZXRhaWxzKSB7XHJcbiAgICAgICAgICAgIHRoaXMub3JkZXJEZXRhaWxzID0gb3JkZXJEZXRhaWxzO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLm51bWJlclV0aWxTZXJ2aWNlID0gbmV3IE51bWJlclV0aWxTZXJ2aWNlKGN1cnJlbmN5UGlwZSk7XHJcbiAgICB9XHJcblxyXG4gICAgd2ViUmV0dXJuQ29tbW9uTWFwcGVyKCkge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKFwiTWFwcGVyIGxpYnJhcnk6IFdlYlJldHVyblNhbGVzZm9yY2VNYXBwZXJCdWlsZGVyQ2xhc3M6IHdlYlJldHVybkNvbW1vbk1hcHBlciBzdGFydGVkLi4uXCIpO1xyXG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0Wyd0eXBlJ10gPSBUUkFOU0FDVElPTl9UWVBFLldFQl9SRVRVUk5TO1xyXG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0WydkYXRldGltZSddID0gdGhpcy5nZXRVVENEYXRlVGltZSh0aGlzLm9yZGVyRGV0YWlscy5sYXN0X21vZGlmaWVkKTtcclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC5iYXNlQ3VycmVuY3kgPSB0aGlzLm9yZGVyRGV0YWlscy5jdXJyZW5jeTtcclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC5zdWJzaWRpYXJ5SWQgPSAnMSc7XHJcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3QuZXhwb3J0ID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC5pbml0aWF0aW5nTW9kdWxlID0gSU5JVElBVElOR19NT0RVTEUuRUJBU0tFVDtcclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC5jcmVhdGVkQXQgPSB0aGlzLmdldFVUQ0RhdGVUaW1lKHRoaXMub3JkZXJEZXRhaWxzLmNyZWF0aW9uX2RhdGUpO1xyXG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0LnVwZGF0ZWRBdCA9IHRoaXMuZ2V0VVRDRGF0ZVRpbWUodGhpcy5vcmRlckRldGFpbHMubGFzdF9tb2RpZmllZCk7XHJcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3QudHJhbnNDb21wbGV0ZWRBdCA9IHRoaXMuZ2V0VVRDRGF0ZVRpbWUodGhpcy5vcmRlckRldGFpbHMubGFzdF9tb2RpZmllZCk7XHJcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3RbJ2V4dGVybmFsVHJhbnNhY3Rpb25JZCddID0gdGhpcy5vcmRlckRldGFpbHMub3JkZXJfbm87XHJcbiAgICAgICAgY29uc29sZS5sb2coXCJNYXBwZXIgbGlicmFyeTogV2ViUmV0dXJuU2FsZXNmb3JjZU1hcHBlckJ1aWxkZXJDbGFzczogd2ViUmV0dXJuQ29tbW9uTWFwcGVyIGVuZGVkLi4uXCIpO1xyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIGV4cG9ydChzdGF0dXMsIGRldGFpbHMpIHtcclxuICAgIC8vICAgICBjb25zb2xlLmxvZyhcIk1hcHBlciBsaWJyYXJ5OiBXZWJSZXR1cm5TYWxlc2ZvcmNlTWFwcGVyQnVpbGRlckNsYXNzOiBleHBvcnQgbWFwcGluZyBzdGFydGVkLi4uXCIpO1xyXG4gICAgLy8gICAgIGNvbnNvbGUubG9nKFwiTWFwcGVyIGxpYnJhcnk6IFdlYlJldHVyblNhbGVzZm9yY2VNYXBwZXJCdWlsZGVyQ2xhc3M6IHN0YXR1czpcIiwgc3RhdHVzKTtcclxuICAgIC8vICAgICBjb25zb2xlLmxvZyhcIk1hcHBlciBsaWJyYXJ5OiBXZWJSZXR1cm5TYWxlc2ZvcmNlTWFwcGVyQnVpbGRlckNsYXNzOiBkZXRhaWxzOlwiLCBKU09OLnN0cmluZ2lmeShkZXRhaWxzKSk7XHJcbiAgICAvLyAgICAgaWYgKHN0YXR1cyAmJiBkZXRhaWxzICYmIGRldGFpbHMucHJvdmlkZXJzICYmIGRldGFpbHMucHJvdmlkZXJzLmxlbmd0aCA+IDApIHtcclxuICAgIC8vICAgICAgICAgZGV0YWlscy5wcm92aWRlcnMuZm9yRWFjaChcclxuICAgIC8vICAgICAgICAgICAgIHByb3ZpZGVyT2JqID0+IHtcclxuICAgIC8vICAgICAgICAgICAgICAgICBpZiAocHJvdmlkZXJPYmoucHJvdmlkZXIgJiYgcHJvdmlkZXJPYmoucHJvdmlkZXIgPT09IFBST1ZJREVSUy5TQUxFU0ZPUkNFKSB7XHJcbiAgICAvLyAgICAgICAgICAgICAgICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0LmV4cG9ydCA9IHRydWU7XHJcbiAgICAvLyAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgIC8vICAgICAgICAgICAgICAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3QuZXhwb3J0ID0gZmFsc2U7XHJcbiAgICAvLyAgICAgICAgICAgICAgICAgfVxyXG4gICAgLy8gICAgICAgICAgICAgfVxyXG4gICAgLy8gICAgICAgICApO1xyXG4gICAgLy8gICAgIH0gZWxzZSB7XHJcbiAgICAvLyAgICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0LmV4cG9ydCA9IGZhbHNlO1xyXG4gICAgLy8gICAgIH1cclxuICAgIC8vICAgICBjb25zb2xlLmxvZyhcIk1hcHBlciBsaWJyYXJ5OiBXZWJSZXR1cm5TYWxlc2ZvcmNlTWFwcGVyQnVpbGRlckNsYXNzOiBleHBvcnQgbWFwcGluZyBlbmQuLi5cIilcclxuICAgIC8vICAgICByZXR1cm4gdGhpcztcclxuICAgIC8vIH1cclxuXHJcbiAgICBnZXREZWxpdmVyeU1ldGhvZCgpIHtcclxuICAgICAgICBpZih0aGlzLm9yZGVyRGV0YWlscy5zaGlwbWVudHMgJiYgdGhpcy5vcmRlckRldGFpbHMuc2hpcG1lbnRzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgY29uc3Qgc2hpcFRvU3RvcmVTaGlwbWVudCA9IHRoaXMub3JkZXJEZXRhaWxzLnNoaXBtZW50cy5maW5kKHNoaXBtZW50ID0+IHNoaXBtZW50LmNfZnJvbVN0b3JlSWQpO1xyXG4gICAgICAgICAgICBpZihzaGlwVG9TdG9yZVNoaXBtZW50KSByZXR1cm4gREVMSVZFUllfTUVUSE9EUy5TSElQX1RPX1NUT1JFO1xyXG4gICAgICAgICAgICBlbHNlIHJldHVybiBERUxJVkVSWV9NRVRIT0RTLkRFTElWRVJZO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiAnJztcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJvZHVjdCgpIHtcclxuICAgICAgICBjb25zb2xlLmxvZyhcIk1hcHBlciBsaWJyYXJ5OiBXZWJSZXR1cm5TYWxlc2ZvcmNlTWFwcGVyQnVpbGRlckNsYXNzOiBwcm9kdWN0IG1hcHBpbmcgc3RhcnRlZC4uLlwiKTtcclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC5iYXNrZXRbJ3Byb2R1Y3RzJ10gPSBbXTtcclxuICAgICAgICBpZiAodGhpcy5vcmRlckRldGFpbHMucHJvZHVjdF9pdGVtcyAmJiB0aGlzLm9yZGVyRGV0YWlscy5wcm9kdWN0X2l0ZW1zLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgdGhpcy5vcmRlckRldGFpbHMucHJvZHVjdF9pdGVtcy5mb3JFYWNoKFxyXG4gICAgICAgICAgICAgICAgKHByb2R1Y3QsIGluZGV4KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcHJvZHVjdE9iaiA9IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IHByb2R1Y3QuaXRlbV90ZXh0ID8gcHJvZHVjdC5pdGVtX3RleHQgOiAnJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgU0tVOiBwcm9kdWN0LnByb2R1Y3RfaWQgPyBwcm9kdWN0LnByb2R1Y3RfaWQgOiAnJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgcXVhbnRpdHk6IHByb2R1Y3QucXVhbnRpdHkgPyBwcm9kdWN0LnF1YW50aXR5IDogMCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVmdW5kZWRRdWFudGl0eTogMCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgcHJpY2U6IHByb2R1Y3QuYmFzZV9wcmljZSA/IHByb2R1Y3QuYmFzZV9wcmljZSA6IDAsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1MaW5lSWQ6IChpbmRleCArIDEpLnRvU3RyaW5nKCksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlbGl2ZXJ5TWV0aG9kOiB0aGlzLmdldERlbGl2ZXJ5TWV0aG9kKCkudG9TdHJpbmcoKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxMaW5lUHJpY2U6IHByb2R1Y3QucHJpY2UgPyBwcm9kdWN0LnByaWNlIDogMFxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBpZiAocHJvZHVjdCAmJiBwcm9kdWN0LnByaWNlICE9IDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3QuYmFza2V0Wydwcm9kdWN0cyddLnB1c2gocHJvZHVjdE9iaik7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zb2xlLmxvZyhcIk1hcHBlciBsaWJyYXJ5OiBXZWJSZXR1cm5TYWxlc2ZvcmNlTWFwcGVyQnVpbGRlckNsYXNzOiBwcm9kdWN0IG1hcHBpbmcgZW5kZWQuLi5cIik7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgbGluZVByb21vdGlvbigpIHtcclxuICAgICAgICBjb25zb2xlLmxvZyhcIk1hcHBlciBsaWJyYXJ5OiBXZWJSZXR1cm5TYWxlc2ZvcmNlTWFwcGVyQnVpbGRlckNsYXNzOiBsaW5lUHJvbW90aW9uIG1hcHBpbmcgc3RhcnRlZC4uLlwiKTtcclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC5iYXNrZXQubGluZVByb21vdGlvbiA9IFtdIGFzIExpbmVQcm9tb3Rpb25zW107XHJcbiAgICAgICAgbGV0IGxpbmVQcm9tb3Rpb25BcnJheSA9IFtdIGFzIExpbmVQcm9tb3Rpb25zW107XHJcbiAgICAgICAgaWYgKHRoaXMub3JkZXJEZXRhaWxzLnByb2R1Y3RfaXRlbXMgJiYgdGhpcy5vcmRlckRldGFpbHMucHJvZHVjdF9pdGVtcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMub3JkZXJEZXRhaWxzLnByb2R1Y3RfaXRlbXMuZm9yRWFjaChcclxuICAgICAgICAgICAgICAgIChwcm9kdWN0LCBpbmRleCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHByb2R1Y3QuaXRlbV9pZCA9IChpbmRleCArIDEpLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHByb2R1Y3QucHJpY2VfYWRqdXN0bWVudHMgJiYgcHJvZHVjdC5wcmljZV9hZGp1c3RtZW50cy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb2R1Y3QucHJpY2VfYWRqdXN0bWVudHMuZm9yRWFjaChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwcm9tb3Rpb24pID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXByb21vdGlvbi5jb3Vwb25fY29kZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbGluZVByb21vdGlvbk9iaiA9IHt9IGFzIExpbmVQcm9tb3Rpb25zO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdHJpZ2dlciA9IHt9IGFzIFRyaWdnZXI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyaWdnZXIuaXRlbUxpbmVJZCA9IHByb2R1Y3QuaXRlbV9pZDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJpZ2dlci5xdWFudGl0eSA9IHByb2R1Y3QucXVhbnRpdHkgPyBwcm9kdWN0LnF1YW50aXR5IDogMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZVByb21vdGlvbk9iai50cmlnZ2VyID0gW10gYXMgVHJpZ2dlcltdO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5lUHJvbW90aW9uT2JqLnRyaWdnZXIucHVzaCh0cmlnZ2VyKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVQcm9tb3Rpb25PYmouaXRlbUxpbmVJZCA9IGluZGV4ICsgMTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZVByb21vdGlvbk9iai5wcm9tb3Rpb25JZCA9IHByb21vdGlvbi5wcm9tb3Rpb25faWQgPyBwcm9tb3Rpb24ucHJvbW90aW9uX2lkIDogJyc7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVQcm9tb3Rpb25PYmouZGlzcGxheVRleHQgPSBwcm9tb3Rpb24uaXRlbV90ZXh0ID8gcHJvbW90aW9uLml0ZW1fdGV4dCA6ICcnO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5lUHJvbW90aW9uT2JqLnByb21vdGlvblR5cGUgPSBwcm9tb3Rpb24uYXBwbGllZF9kaXNjb3VudCAmJiBwcm9tb3Rpb24uYXBwbGllZF9kaXNjb3VudC50eXBlID8gcHJvbW90aW9uLmFwcGxpZWRfZGlzY291bnQudHlwZSA6ICcnO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5lUHJvbW90aW9uT2JqLnByb21vdGlvbkFtb3VudCA9IHByb21vdGlvbi5wcmljZSA/IE1hdGguYWJzKHByb21vdGlvbi5wcmljZSkgOiAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5lUHJvbW90aW9uT2JqLm5hbWUgPSBwcm9tb3Rpb24uY291cG9uX2NvZGUgID8gcHJvbW90aW9uLmNvdXBvbl9jb2RlIDogKHByb21vdGlvbi5pdGVtX3RleHQgPyBwcm9tb3Rpb24uaXRlbV90ZXh0IDonJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVQcm9tb3Rpb25PYmoucHJvbW90aW9uSW5mbyA9IHByb21vdGlvbi5pdGVtX3RleHQgPyBwcm9tb3Rpb24uaXRlbV90ZXh0IDogJyc7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVQcm9tb3Rpb25PYmoucHJvbW90aW9uTGluZVByaWNlID0gcHJvZHVjdC5wcmljZSAtIE1hdGguYWJzKHByb21vdGlvbi5wcmljZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVQcm9tb3Rpb25BcnJheS5wdXNoKGxpbmVQcm9tb3Rpb25PYmopO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0LmJhc2tldC5saW5lUHJvbW90aW9uID0gbGluZVByb21vdGlvbkFycmF5O1xyXG4gICAgICAgIGNvbnNvbGUubG9nKFwiTWFwcGVyIGxpYnJhcnk6IFdlYlJldHVyblNhbGVzZm9yY2VNYXBwZXJCdWlsZGVyQ2xhc3M6IGxpbmVQcm9tb3Rpb24gbWFwcGluZyBlbmRlZC4uLlwiKTtcclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICB0cmFuc2FjdGlvblByb21vdGlvbigpIHtcclxuICAgICAgICBjb25zb2xlLmxvZyhcIk1hcHBlciBsaWJyYXJ5OiBXZWJSZXR1cm5TYWxlc2ZvcmNlTWFwcGVyQnVpbGRlckNsYXNzOiB0cmFuc2FjdGlvblByb21vdGlvbiBtYXBwaW5nIHN0YXJ0ZWQuLi5cIik7XHJcblxyXG4gICAgICAgIGxldCB0cmFuc2FjdGlvblByb21vdGlvbkFycmF5ID0gdGhpcy5nZXRUcmFuc2FjdGlvblByb21vdGlvbnModGhpcy5vcmRlckRldGFpbHMpO1xyXG5cclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC5iYXNrZXQudHJhbnNhY3Rpb25Qcm9tb3Rpb24gPSB0cmFuc2FjdGlvblByb21vdGlvbkFycmF5O1xyXG4gICAgICAgIGNvbnNvbGUubG9nKFwiTWFwcGVyIGxpYnJhcnk6IFdlYlJldHVyblNhbGVzZm9yY2VNYXBwZXJCdWlsZGVyQ2xhc3M6IHRyYW5zYWN0aW9uUHJvbW90aW9uIG1hcHBpbmcgZW5kZWQuLi5cIik7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0VHJhbnNhY3Rpb25Qcm9tb3Rpb25zKGJhc2tldCk6IFRyYW5zYWN0aW9uUHJvbW90aW9uW10ge1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIGxldCB0cmFuc2FjdGlvblByb21vdGlvbkFycmF5ID0gW10gYXMgVHJhbnNhY3Rpb25Qcm9tb3Rpb25bXTtcclxuICAgICAgICAgICAgaWYgKGJhc2tldC5vcmRlcl9wcmljZV9hZGp1c3RtZW50cyAmJiBiYXNrZXQub3JkZXJfcHJpY2VfYWRqdXN0bWVudHMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgICAgYmFza2V0Lm9yZGVyX3ByaWNlX2FkanVzdG1lbnRzLmZvckVhY2goXHJcbiAgICAgICAgICAgICAgICAgICAgKHRyYW5zYWN0aW9uUHJvbW90aW9uKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0cmFuc2FjdGlvblByb21vdGlvbk9iaiA9IHt9IGFzIFRyYW5zYWN0aW9uUHJvbW90aW9uO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNhY3Rpb25Qcm9tb3Rpb25PYmouZGlzcGxheVRleHQgPSB0cmFuc2FjdGlvblByb21vdGlvbi5pdGVtX3RleHQgPyB0cmFuc2FjdGlvblByb21vdGlvbi5pdGVtX3RleHQgOiAnJztcclxuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNhY3Rpb25Qcm9tb3Rpb25PYmoubmFtZSA9IHRyYW5zYWN0aW9uUHJvbW90aW9uLmNvdXBvbl9jb2RlID8gdHJhbnNhY3Rpb25Qcm9tb3Rpb24uY291cG9uX2NvZGUgOiAodHJhbnNhY3Rpb25Qcm9tb3Rpb24gLml0ZW1fdGV4dD90cmFuc2FjdGlvblByb21vdGlvbi5pdGVtX3RleHQgOiAnJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zYWN0aW9uUHJvbW90aW9uT2JqLnByb21vdGlvbkFtb3VudCA9IHRyYW5zYWN0aW9uUHJvbW90aW9uLnByaWNlID8gLU1hdGguYWJzKHRyYW5zYWN0aW9uUHJvbW90aW9uLnByaWNlKSA6IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zYWN0aW9uUHJvbW90aW9uT2JqLnByb21vdGlvbklkID0gdHJhbnNhY3Rpb25Qcm9tb3Rpb24ucHJvbW90aW9uX2lkID8gdHJhbnNhY3Rpb25Qcm9tb3Rpb24ucHJvbW90aW9uX2lkIDogJyc7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zYWN0aW9uUHJvbW90aW9uT2JqLnByb21vdGlvbkluZm8gPSB0cmFuc2FjdGlvblByb21vdGlvbi5pdGVtX3RleHQgPyB0cmFuc2FjdGlvblByb21vdGlvbi5pdGVtX3RleHQgOiAnJztcclxuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNhY3Rpb25Qcm9tb3Rpb25PYmoucHJvbW90aW9uVHlwZSA9IHRyYW5zYWN0aW9uUHJvbW90aW9uLmFwcGxpZWRfZGlzY291bnQgJiYgdHJhbnNhY3Rpb25Qcm9tb3Rpb24uYXBwbGllZF9kaXNjb3VudC50eXBlID8gdHJhbnNhY3Rpb25Qcm9tb3Rpb24uYXBwbGllZF9kaXNjb3VudC50eXBlIDogJyc7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zYWN0aW9uUHJvbW90aW9uT2JqLml0ZW1MaW5lSWRzID0gdGhpcy5vcmRlckRldGFpbHMucHJvZHVjdF9pdGVtcy5tYXAoKHByb2R1Y3QsIGluZGV4KSA9PiBpbmRleCArIDEpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodHJhbnNhY3Rpb25Qcm9tb3Rpb24uY291cG9uX2NvZGUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zYWN0aW9uUHJvbW90aW9uT2JqLnR5cGUgPSBQUk9NT1RJT05fVFlQRS5DT1VQT047XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2FjdGlvblByb21vdGlvbk9iai5jb3Vwb25Db2RlID0gdHJhbnNhY3Rpb25Qcm9tb3Rpb24uY291cG9uX2NvZGU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2FjdGlvblByb21vdGlvbk9iai5zdWJMZXZlbFR5cGUgPSBQUk9NT1RJT05fTEVWRUwuVFJBTlNBQ1RJT047XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNhY3Rpb25Qcm9tb3Rpb25BcnJheS5wdXNoKHRyYW5zYWN0aW9uUHJvbW90aW9uT2JqKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB9XHJcblxyXG5cclxuICAgICAgICAgICAgY29uc29sZS5sb2coXCJNYXBwZXIgbGlicmFyeTogV2ViUmV0dXJuU2FsZXNmb3JjZU1hcHBlckJ1aWxkZXJDbGFzczogZ2V0VHJhbnNhY3Rpb25Qcm9tb3Rpb25zIDogXCIsIEpTT04uc3RyaW5naWZ5KHRyYW5zYWN0aW9uUHJvbW90aW9uQXJyYXkpKTtcclxuICAgICAgICAgICAgcmV0dXJuIHRyYW5zYWN0aW9uUHJvbW90aW9uQXJyYXk7XHJcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coXCJNYXBwZXIgbGlicmFyeTogV2ViUmV0dXJuU2FsZXNmb3JjZU1hcHBlckJ1aWxkZXJDbGFzczogIGZhaWxlZDpcIiwgZXJyb3IpO1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcIk1hcHBlciBsaWJyYXJ5OiBXZWJSZXR1cm5TYWxlc2ZvcmNlTWFwcGVyQnVpbGRlckNsYXNzOiAgZmFpbGVkOlwiLCBKU09OLnN0cmluZ2lmeShlcnJvcikpO1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoZXJyb3IpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB1cGRhdGVMaW5lUHJvbW90aW9uV2l0aENvdXBvbigpIHtcclxuICAgICAgICB0cnkge1xyXG5cclxuICAgICAgICAgICAgbGV0IHRyYW5zYWN0aW9uUHJvbW90aW9uID0ge30gYXMgVHJhbnNhY3Rpb25Qcm9tb3Rpb247XHJcbiAgICAgICAgICAgIGxldCB0cmlnZ2VyUHJvbW90aW9uID0gW10gYXMgVHJpZ2dlcltdO1xyXG4gICAgICAgICAgICBpZiAodGhpcy5vcmRlckRldGFpbHMucHJvZHVjdF9pdGVtcyAmJiB0aGlzLm9yZGVyRGV0YWlscy5wcm9kdWN0X2l0ZW1zLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgICAgIHRoaXMub3JkZXJEZXRhaWxzLnByb2R1Y3RfaXRlbXMuZm9yRWFjaChcclxuICAgICAgICAgICAgICAgICAgICAocHJvZHVjdCwgaW5kZXgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcHJvZHVjdC5pdGVtX2lkID0gKGluZGV4ICsgMSkudG9TdHJpbmcoKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwcm9kdWN0LnByaWNlX2FkanVzdG1lbnRzICYmIHByb2R1Y3QucHJpY2VfYWRqdXN0bWVudHMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvZHVjdC5wcmljZV9hZGp1c3RtZW50cy5mb3JFYWNoKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwcm9tb3Rpb24pID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHByb21vdGlvbi5jb3Vwb25fY29kZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRyaWdnZXIgPSB7fSBhcyBUcmlnZ2VyO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJpZ2dlci5pdGVtTGluZUlkID0gcHJvZHVjdC5pdGVtX2lkO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJpZ2dlci5xdWFudGl0eSA9IHByb2R1Y3QucXVhbnRpdHkgPyBwcm9kdWN0LnF1YW50aXR5IDogMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyaWdnZXIudG90YWxRdWFudGl0eSA9IHByb2R1Y3QucXVhbnRpdHkgPyBwcm9kdWN0LnF1YW50aXR5IDogMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyaWdnZXIucHJvbW90aW9uQW1vdW50ID0gcHJvbW90aW9uLnByaWNlID8gTWF0aC5hYnMocHJvbW90aW9uLnByaWNlKSA6IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmlnZ2VyLnJlZnVuZGVkUmVhc29uID0gcHJvbW90aW9uLmNvdXBvbl9jb2RlID8gcHJvbW90aW9uLmNvdXBvbl9jb2RlIDogJyc7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmlnZ2VyLnJlZnVuZGVkUmVhc29uRGVzY3JpcHRpb24gPSBwcm9tb3Rpb24uaXRlbV90ZXh0ID8gcHJvbW90aW9uLml0ZW1fdGV4dCA6ICcnO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJpZ2dlci5wcm9tb3Rpb25JZCA9IHByb21vdGlvbi5wcm9tb3Rpb25faWQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmlnZ2VyUHJvbW90aW9uLnB1c2godHJpZ2dlcik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKHRyaWdnZXJQcm9tb3Rpb24ubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgICAgdHJhbnNhY3Rpb25Qcm9tb3Rpb24uZGlzcGxheVRleHQgPSB0cmlnZ2VyUHJvbW90aW9uWzBdLnJlZnVuZGVkUmVhc29uRGVzY3JpcHRpb247XHJcbiAgICAgICAgICAgICAgICB0cmFuc2FjdGlvblByb21vdGlvbi5uYW1lID0gdHJpZ2dlclByb21vdGlvblswXS5yZWZ1bmRlZFJlYXNvbjtcclxuICAgICAgICAgICAgICAgIHRyYW5zYWN0aW9uUHJvbW90aW9uLnByb21vdGlvbkFtb3VudCA9IC0odHJpZ2dlclByb21vdGlvbi5yZWR1Y2UoKG4sIHsgcHJvbW90aW9uQW1vdW50IH0pID0+IG4gKyBwcm9tb3Rpb25BbW91bnQsIDApKTtcclxuICAgICAgICAgICAgICAgIHRyYW5zYWN0aW9uUHJvbW90aW9uLnByb21vdGlvbklkID0gdHJpZ2dlclByb21vdGlvblswXS5wcm9tb3Rpb25JZDtcclxuICAgICAgICAgICAgICAgIHRyYW5zYWN0aW9uUHJvbW90aW9uLnByb21vdGlvbkluZm8gPSB0cmlnZ2VyUHJvbW90aW9uWzBdLnJlZnVuZGVkUmVhc29uRGVzY3JpcHRpb247XHJcbiAgICAgICAgICAgICAgICB0cmFuc2FjdGlvblByb21vdGlvbi5jb3Vwb25Db2RlID0gdHJpZ2dlclByb21vdGlvblswXS5yZWZ1bmRlZFJlYXNvbjtcclxuICAgICAgICAgICAgICAgIHRyYW5zYWN0aW9uUHJvbW90aW9uLml0ZW1MaW5lSWRzID0gW107XHJcbiAgICAgICAgICAgICAgICB0cmFuc2FjdGlvblByb21vdGlvbi50eXBlID0gUFJPTU9USU9OX1RZUEUuQ09VUE9OO1xyXG4gICAgICAgICAgICAgICAgdHJhbnNhY3Rpb25Qcm9tb3Rpb24uc3ViTGV2ZWxUeXBlID0gUFJPTU9USU9OX0xFVkVMLkxJTkU7XHJcbiAgICAgICAgICAgICAgICB0cmFuc2FjdGlvblByb21vdGlvbi50cmlnZ2VyID0gdHJpZ2dlclByb21vdGlvbjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcImxpbmVQcm9tb3Rpb24gbWFwcGluZyBlbmRlZC4uLlwiKTtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coXCJlLWJhc2tldDogdXBkYXRlTGluZVByb21vdGlvbldpdGhDb3Vwb25cIiwgSlNPTi5zdHJpbmdpZnkodHJhbnNhY3Rpb25Qcm9tb3Rpb24pKTtcclxuXHJcbiAgICAgICAgICAgIGlmICghdGhpcy53ZWJSZXR1cm5PYmplY3QuYmFza2V0LnRyYW5zYWN0aW9uUHJvbW90aW9uICkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3QuYmFza2V0LnRyYW5zYWN0aW9uUHJvbW90aW9uID0gW107XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmICh0cmFuc2FjdGlvblByb21vdGlvbiAmJiB0cmFuc2FjdGlvblByb21vdGlvbi5wcm9tb3Rpb25JZCApIHtcclxuICAgICAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3QuYmFza2V0LnRyYW5zYWN0aW9uUHJvbW90aW9uLnB1c2godHJhbnNhY3Rpb25Qcm9tb3Rpb24pO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICByZXR1cm4gdGhpcztcclxuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcIkViYXNrZXQ6IFNhbGVzZm9yY2U6IGxpbmVQcm9tb3Rpb24gbWFwcGluZz0+IGZhaWxlZDpcIiwgZXJyb3IpO1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcIkViYXNrZXQ6IFNhbGVzZm9yY2U6IGxpbmVQcm9tb3Rpb24gbWFwcGluZz0+IGZhaWxlZDpcIiwgSlNPTi5zdHJpbmdpZnkoZXJyb3IpKTtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGVycm9yKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdXBkYXRlVHJhbnNhY3Rpb25Qcm9tb3Rpb25QcnRpb25DYWxjKCkge1xyXG4gICAgICAgIGxldCBkb2M6IGFueTtcclxuICAgICAgICBpZiAodGhpcy53ZWJSZXR1cm5PYmplY3QuYmFza2V0LnRyYW5zYWN0aW9uUHJvbW90aW9uKSB7XHJcbiAgICAgICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0LmJhc2tldC50cmFuc2FjdGlvblByb21vdGlvbi5mb3JFYWNoKHRyID0+IHtcclxuICAgICAgICAgICAgICAgIGRvYyA9XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50cmFuc2FjdGlvblByb21vdGlvblByb2R1Y3RQb3J0aW9uQ2FsYyh0aGlzLndlYlJldHVybk9iamVjdCAsIHRyKVxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdCA9IGRvYztcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgdHJhbnNhY3Rpb25Qcm9tb3Rpb25Qcm9kdWN0UG9ydGlvbkNhbGMoXHJcbiAgICAgICAgdHhEb2M6IFRyYW5zYWN0aW9uRG9jdW1lbnQsXHJcbiAgICAgICAgcHJvbW90aW9uOiBUcmFuc2FjdGlvblByb21vdGlvblxyXG4gICAgICApIHtcclxuICAgICAgICBsZXQgdG90YWwgPSAwO1xyXG4gICAgICAgIGxldCBwZXJjZW50YWdlID0gMDtcclxuICAgICAgICB7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZyhcclxuICAgICAgICAgICAgYGViYXNrZXQ6IHRyYW5zYWN0aW9uUHJvbW90aW9uUHJvZHVjdFBvcnRpb25DYWxjOiB0cm5zYWN0aW9uUHJvbW90aW9uOiAke0pTT04uc3RyaW5naWZ5KFxyXG4gICAgICAgICAgICAgIHByb21vdGlvblxyXG4gICAgICAgICAgICApfWBcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICBpZihwcm9tb3Rpb24udHlwZSA9PT0gUFJPTU9USU9OX1RZUEUuQ09VUE9OICYmIHByb21vdGlvbi5zdWJMZXZlbFR5cGUgPT09IFBST01PVElPTl9MRVZFTC5MSU5FKVxyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICB0eERvYy5iYXNrZXQucHJvZHVjdHMuZm9yRWFjaCgocHJvZHVjdCkgPT4ge1xyXG4gICAgICAgICAgICAgIHByb2R1Y3QgPSB0aGlzLnZhbGlkYXRlUHJvZHVjdEl0ZW1EaXNjb3VudChwcm9kdWN0KTtcclxuICAgICAgXHJcbiAgICAgICAgICAgICAgaWYgKHByb21vdGlvbi50cmlnZ2VyICYmIHByb21vdGlvbi50cmlnZ2VyLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgICAgIHByb21vdGlvbi50cmlnZ2VyLmZvckVhY2goKHQpPT57XHJcbiAgICAgICAgICAgICAgICAgIGlmKHQuaXRlbUxpbmVJZCA9PT0gcHJvZHVjdC5pdGVtTGluZUlkLnRvU3RyaW5nKCkpXHJcbiAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgIHByb2R1Y3QuaXRlbURpc2NvdW50cy50cm5Qcm9tb3Rpb25zUG9ydGlvbiArPSB0LnByb21vdGlvbkFtb3VudDtcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGVsc2VcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgdHhEb2MuYmFza2V0LnByb2R1Y3RzLmZvckVhY2goKHApID0+IHtcclxuICAgICAgICAgICAgaWYgKHByb21vdGlvbi5pdGVtTGluZUlkcyAmJiBwcm9tb3Rpb24uaXRlbUxpbmVJZHMuaW5jbHVkZXMocC5pdGVtTGluZUlkKSAmJiAhcC5naWZ0Q2FyZCkge1xyXG4gICAgICAgICAgICAgIHAgPSB0aGlzLnZhbGlkYXRlUHJvZHVjdEl0ZW1EaXNjb3VudChwKTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHByb2R1Y3RDb250cmlidXRpb25JblRvdGFsID1cclxuICAgICAgICAgICAgICAgIHRoaXMubnVtYmVyVXRpbFNlcnZpY2UudHJpbVRvMkRlY2ltYWwyKHAuaXRlbURpc2NvdW50cy50cm5EaXNjb3VudHNQb3J0aW9uKSArXHJcbiAgICAgICAgICAgICAgICB0aGlzLm51bWJlclV0aWxTZXJ2aWNlLnRyaW1UbzJEZWNpbWFsMihwLml0ZW1EaXNjb3VudHMudHJuUHJvbW90aW9uc1BvcnRpb24pIC1cclxuICAgICAgICAgICAgICAgIHRoaXMubnVtYmVyVXRpbFNlcnZpY2UudHJpbVRvMkRlY2ltYWwyKHAuaXRlbURpc2NvdW50cy5yZWZ1bmRQb3J0aW9uKTtcclxuICAgICAgICAgICAgICB0b3RhbCArPSAocC50b3RhbCAtIHRoaXMubnVtYmVyVXRpbFNlcnZpY2UudHJpbVRvMkRlY2ltYWwyKHByb2R1Y3RDb250cmlidXRpb25JblRvdGFsKSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgY29uc29sZS5sb2coXHJcbiAgICAgICAgICAgIGBlYmFza2V0OiB0cm5zYWN0aW9uUHJvbW90aW9uOiAke0pTT04uc3RyaW5naWZ5KFxyXG4gICAgICAgICAgICAgIHByb21vdGlvblxyXG4gICAgICAgICAgICApfSwgc2VsZWN0ZWQgcHJvZHVjdHMgdG90YWw6ICR7dG90YWx9YFxyXG4gICAgICAgICAgKTtcclxuICAgICAgICAgIHR4RG9jLmJhc2tldC5wcm9kdWN0cy5mb3JFYWNoKChwcm9kdWN0KSA9PiB7XHJcbiAgICAgICAgICAgIHByb2R1Y3QgPSB0aGlzLnZhbGlkYXRlUHJvZHVjdEl0ZW1EaXNjb3VudChwcm9kdWN0KTtcclxuICAgIFxyXG4gICAgICAgICAgICBjb25zdCBwcm9kdWN0Q29udHJpYnV0aW9uSW5Ub3RhbCA9XHJcbiAgICAgICAgICAgIHRoaXMubnVtYmVyVXRpbFNlcnZpY2UudHJpbVRvMkRlY2ltYWwyKHByb2R1Y3QuaXRlbURpc2NvdW50cy50cm5EaXNjb3VudHNQb3J0aW9uKSArXHJcbiAgICAgICAgICAgIHRoaXMubnVtYmVyVXRpbFNlcnZpY2UudHJpbVRvMkRlY2ltYWwyKHByb2R1Y3QuaXRlbURpc2NvdW50cy50cm5Qcm9tb3Rpb25zUG9ydGlvbikgLVxyXG4gICAgICAgICAgICB0aGlzLm51bWJlclV0aWxTZXJ2aWNlLnRyaW1UbzJEZWNpbWFsMihwcm9kdWN0Lml0ZW1EaXNjb3VudHMucmVmdW5kUG9ydGlvbik7XHJcbiAgICBcclxuICAgICAgICAgICAgaWYgKHByb21vdGlvbi5pdGVtTGluZUlkcy5pbmNsdWRlcyhwcm9kdWN0Lml0ZW1MaW5lSWQpKSB7XHJcbiAgICAgICAgICAgICAgcGVyY2VudGFnZSA9ICgocHJvZHVjdC50b3RhbC0gdGhpcy5udW1iZXJVdGlsU2VydmljZS50cmltVG8yRGVjaW1hbDIocHJvZHVjdENvbnRyaWJ1dGlvbkluVG90YWwpKSAvIHRvdGFsKSAqIDEwMDtcclxuICAgICAgICAgICAgICBwcm9kdWN0Lml0ZW1EaXNjb3VudHMudHJuUHJvbW90aW9uc1BvcnRpb24gKz1cclxuICAgICAgICAgICAgICAocHJvbW90aW9uLnByb21vdGlvbkFtb3VudCAqIHBlcmNlbnRhZ2UpIC8gMTAwO1xyXG4gICAgICAgICAgICAgIHByb2R1Y3QuaXRlbURpc2NvdW50cy50cm5Qcm9tb3Rpb25zUG9ydGlvbiA9IHRoaXMubnVtYmVyVXRpbFNlcnZpY2UudHJpbVRvMkRlY2ltYWwyKHByb2R1Y3QuaXRlbURpc2NvdW50cy50cm5Qcm9tb3Rpb25zUG9ydGlvbik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHR4RG9jO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBcclxuICAgICAgcHVibGljIHZhbGlkYXRlUHJvZHVjdEl0ZW1EaXNjb3VudChwcm9kdWN0OiBUUHJvZHVjdCkge1xyXG4gICAgICAgIGlmICghcHJvZHVjdC5pdGVtRGlzY291bnRzKSB7XHJcbiAgICAgICAgICBwcm9kdWN0Lml0ZW1EaXNjb3VudHMgPSB7XHJcbiAgICAgICAgICAgIHRybkRpc2NvdW50c1BvcnRpb246IDAsXHJcbiAgICAgICAgICAgIHRyblByb21vdGlvbnNQb3J0aW9uOiAwLFxyXG4gICAgICAgICAgICByZWZ1bmRQb3J0aW9uOiAwLFxyXG4gICAgICAgICAgfTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHByb2R1Y3Q7XHJcbiAgICAgIH1cclxuICAgIFxyXG4gICAgICBcclxuICAgIGN1c3RvbWVyKCkge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKFwiTWFwcGVyIGxpYnJhcnk6IFdlYlJldHVyblNhbGVzZm9yY2VNYXBwZXJCdWlsZGVyQ2xhc3M6IGN1c3RvbWVyIG1hcHBpbmcgc3RhcnRlZC4uLlwiKTtcclxuICAgICAgICBsZXQgY3VzdG9tZXJPYmogPSB7fSBhcyBDdXN0b21lcjtcclxuICAgICAgICBjdXN0b21lck9iai5lbWFpbCA9IHRoaXMub3JkZXJEZXRhaWxzLmN1c3RvbWVyX2luZm8gJiYgdGhpcy5vcmRlckRldGFpbHMuY3VzdG9tZXJfaW5mby5lbWFpbCA/IHRoaXMub3JkZXJEZXRhaWxzLmN1c3RvbWVyX2luZm8uZW1haWwgOiAnJztcclxuICAgICAgICBjdXN0b21lck9iai5maXJzdE5hbWUgPSB0aGlzLm9yZGVyRGV0YWlscy5iaWxsaW5nX2FkZHJlc3MgJiYgdGhpcy5vcmRlckRldGFpbHMuYmlsbGluZ19hZGRyZXNzLmZpcnN0X25hbWUgPyB0aGlzLm9yZGVyRGV0YWlscy5iaWxsaW5nX2FkZHJlc3MuZmlyc3RfbmFtZSA6ICcnO1xyXG4gICAgICAgIGN1c3RvbWVyT2JqLmxhc3ROYW1lID0gdGhpcy5vcmRlckRldGFpbHMuYmlsbGluZ19hZGRyZXNzICYmIHRoaXMub3JkZXJEZXRhaWxzLmJpbGxpbmdfYWRkcmVzcy5sYXN0X25hbWUgPyB0aGlzLm9yZGVyRGV0YWlscy5iaWxsaW5nX2FkZHJlc3MubGFzdF9uYW1lIDogJyc7XHJcblxyXG4gICAgICAgIGxldCBzaGlwcGluZ0FkZHJlc3MgPSBbXSBhcyBBZGRyZXNzW107XHJcbiAgICAgICAgdGhpcy5vcmRlckRldGFpbHMuc2hpcG1lbnRzLmZvckVhY2goXHJcbiAgICAgICAgICAgIHNoaXBtZW50ID0+IHtcclxuICAgICAgICAgICAgICAgIGxldCBzaGlwcGluZ0FkZHJlc3NPYmogPSB7fSBhcyBBZGRyZXNzO1xyXG4gICAgICAgICAgICAgICAgc2hpcHBpbmdBZGRyZXNzT2JqLmlkID0gc2hpcG1lbnQuc2hpcHBpbmdfYWRkcmVzcyAmJiBzaGlwbWVudC5zaGlwcGluZ19hZGRyZXNzLmlkID8gc2hpcG1lbnQuc2hpcHBpbmdfYWRkcmVzcy5pZCA6ICcnO1xyXG4gICAgICAgICAgICAgICAgc2hpcHBpbmdBZGRyZXNzT2JqLmNvdW50cnlDb2RlID0gc2hpcG1lbnQuc2hpcHBpbmdfYWRkcmVzcyAmJiBzaGlwbWVudC5zaGlwcGluZ19hZGRyZXNzLmNvdW50cnlfY29kZSA/IHNoaXBtZW50LnNoaXBwaW5nX2FkZHJlc3MuY291bnRyeV9jb2RlIDogJyc7XHJcbiAgICAgICAgICAgICAgICBzaGlwcGluZ0FkZHJlc3NPYmouYWRkcmVzczEgPSBzaGlwbWVudC5zaGlwcGluZ19hZGRyZXNzICYmIHNoaXBtZW50LnNoaXBwaW5nX2FkZHJlc3MuYWRkcmVzczEgPyBzaGlwbWVudC5zaGlwcGluZ19hZGRyZXNzLmFkZHJlc3MxIDogJyc7XHJcbiAgICAgICAgICAgICAgICBzaGlwcGluZ0FkZHJlc3NPYmouY2l0eSA9IHNoaXBtZW50LnNoaXBwaW5nX2FkZHJlc3MgJiYgc2hpcG1lbnQuc2hpcHBpbmdfYWRkcmVzcy5jaXR5ID8gc2hpcG1lbnQuc2hpcHBpbmdfYWRkcmVzcy5jaXR5IDogJyc7XHJcbiAgICAgICAgICAgICAgICBzaGlwcGluZ0FkZHJlc3NPYmouY291bnRyeSA9ICcnO1xyXG4gICAgICAgICAgICAgICAgc2hpcHBpbmdBZGRyZXNzT2JqLnBvc3RDb2RlID0gc2hpcG1lbnQuc2hpcHBpbmdfYWRkcmVzcyAmJiBzaGlwbWVudC5zaGlwcGluZ19hZGRyZXNzLnBvc3RhbF9jb2RlID8gc2hpcG1lbnQuc2hpcHBpbmdfYWRkcmVzcy5wb3N0YWxfY29kZSA6ICcnO1xyXG4gICAgICAgICAgICAgICAgc2hpcHBpbmdBZGRyZXNzLnB1c2goc2hpcHBpbmdBZGRyZXNzT2JqKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIClcclxuICAgICAgICBjdXN0b21lck9iai5zaGlwcGluZ0FkZHJlc3MgPSBzaGlwcGluZ0FkZHJlc3M7XHJcblxyXG4gICAgICAgIGxldCBiaWxsaW5nQWRkcmVzcyA9IFtdIGFzIEFkZHJlc3NbXTtcclxuICAgICAgICBsZXQgYmlsbGluZ0FkZHJlc3NPYmogPSB7fSBhcyBBZGRyZXNzO1xyXG4gICAgICAgIGJpbGxpbmdBZGRyZXNzT2JqLmlkID0gdGhpcy5vcmRlckRldGFpbHMuYmlsbGluZ19hZGRyZXNzICYmIHRoaXMub3JkZXJEZXRhaWxzLmJpbGxpbmdfYWRkcmVzcy5pZCA/IHRoaXMub3JkZXJEZXRhaWxzLmJpbGxpbmdfYWRkcmVzcy5pZCA6ICcnO1xyXG4gICAgICAgIGJpbGxpbmdBZGRyZXNzT2JqLmNvdW50cnlDb2RlID0gdGhpcy5vcmRlckRldGFpbHMuYmlsbGluZ19hZGRyZXNzICYmIHRoaXMub3JkZXJEZXRhaWxzLmJpbGxpbmdfYWRkcmVzcy5jb3VudHJ5X2NvZGUgPyB0aGlzLm9yZGVyRGV0YWlscy5iaWxsaW5nX2FkZHJlc3MuY291bnRyeV9jb2RlIDogJyc7XHJcbiAgICAgICAgYmlsbGluZ0FkZHJlc3NPYmouYWRkcmVzczEgPSB0aGlzLm9yZGVyRGV0YWlscy5iaWxsaW5nX2FkZHJlc3MgJiYgdGhpcy5vcmRlckRldGFpbHMuYmlsbGluZ19hZGRyZXNzLmFkZHJlc3MxID8gdGhpcy5vcmRlckRldGFpbHMuYmlsbGluZ19hZGRyZXNzLmFkZHJlc3MxIDogJyc7XHJcbiAgICAgICAgYmlsbGluZ0FkZHJlc3NPYmouY2l0eSA9IHRoaXMub3JkZXJEZXRhaWxzLmJpbGxpbmdfYWRkcmVzcyAmJiB0aGlzLm9yZGVyRGV0YWlscy5iaWxsaW5nX2FkZHJlc3MuY2l0eSA/IHRoaXMub3JkZXJEZXRhaWxzLmJpbGxpbmdfYWRkcmVzcy5jaXR5IDogJyc7XHJcbiAgICAgICAgYmlsbGluZ0FkZHJlc3NPYmouY291bnRyeSA9ICcnO1xyXG4gICAgICAgIGJpbGxpbmdBZGRyZXNzT2JqLnBvc3RDb2RlID0gJyc7XHJcbiAgICAgICAgYmlsbGluZ0FkZHJlc3MucHVzaChiaWxsaW5nQWRkcmVzc09iaik7XHJcbiAgICAgICAgY3VzdG9tZXJPYmouYmlsbGluZ0FkZHJlc3MgPSBiaWxsaW5nQWRkcmVzcztcclxuXHJcbiAgICAgICAgbGV0IHNoaXBtZW50RGV0YWlscyA9IFtdIGFzIFNoaXBtZW50RGV0YWlsc1tdO1xyXG4gICAgICAgIHRoaXMub3JkZXJEZXRhaWxzLnNoaXBtZW50cy5mb3JFYWNoKFxyXG4gICAgICAgICAgICBzaGlwbWVudCA9PiB7XHJcbiAgICAgICAgICAgICAgICBsZXQgc2hpcG1lbnREZXRhaWxzT2JqID0ge30gYXMgU2hpcG1lbnREZXRhaWxzO1xyXG4gICAgICAgICAgICAgICAgc2hpcG1lbnREZXRhaWxzT2JqLmlkID0gc2hpcG1lbnQuc2hpcG1lbnRfaWQgPyBzaGlwbWVudC5zaGlwbWVudF9pZCA6ICcnO1xyXG4gICAgICAgICAgICAgICAgc2hpcG1lbnREZXRhaWxzT2JqLmRlbGl2ZXJ5R3JvdXAgPSBzaGlwbWVudC5zaGlwbWVudF9pZCA/IHNoaXBtZW50LnNoaXBtZW50X2lkIDogJyc7XHJcbiAgICAgICAgICAgICAgICBzaGlwbWVudERldGFpbHMucHVzaChzaGlwbWVudERldGFpbHNPYmopO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgKTtcclxuICAgICAgICBjdXN0b21lck9iai5zaGlwbWVudERldGFpbHMgPSBzaGlwbWVudERldGFpbHM7XHJcblxyXG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0LmN1c3RvbWVyID0gY3VzdG9tZXJPYmo7XHJcbiAgICAgICAgY29uc29sZS5sb2coXCJNYXBwZXIgbGlicmFyeTogV2ViUmV0dXJuU2FsZXNmb3JjZU1hcHBlckJ1aWxkZXJDbGFzczogY3VzdG9tZXIgbWFwcGluZyBlbmRlZC4uLlwiKTtcclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICBleHRlcm5hbFRyYW5zYWN0aW9uRGV0YWlscygpIHtcclxuICAgICAgICBjb25zb2xlLmxvZyhcIk1hcHBlciBsaWJyYXJ5OiBXZWJSZXR1cm5TYWxlc2ZvcmNlTWFwcGVyQnVpbGRlckNsYXNzOiBleHRlcm5hbFRyYW5zYWN0aW9uRGV0YWlscyBtYXBwaW5nIHN0YXJ0ZWQuLi5cIik7XHJcbiAgICAgICAgbGV0IGV4dGVybmFsVHJhbnNhY3Rpb25EZXRhaWxzID0gW10gYXMgZXh0ZXJuYWxUcmFuc2FjdGlvbkRldGFpbHNbXTtcclxuICAgICAgICBpZiAodGhpcy5vcmRlckRldGFpbHMuc2hpcG1lbnRzICYmIHRoaXMub3JkZXJEZXRhaWxzLnNoaXBtZW50cy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMub3JkZXJEZXRhaWxzLnNoaXBtZW50cy5mb3JFYWNoKFxyXG4gICAgICAgICAgICAgICAgc2hpcG1lbnQgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBleHRlcm5hbFRyYW5zYWN0aW9uRGV0YWlsc09iaiA9IHt9IGFzIGV4dGVybmFsVHJhbnNhY3Rpb25EZXRhaWxzO1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCB0cmFuc2FjdGlvbkluZm8gPSB7fSBhcyBUcmFuc2FjdGlvbkluZm87XHJcbiAgICAgICAgICAgICAgICAgICAgZXh0ZXJuYWxUcmFuc2FjdGlvbkRldGFpbHNPYmoudW5pcXVlSWQgPSB0aGlzLm9yZGVyRGV0YWlscy5vcmRlcl9ubyA/IHRoaXMub3JkZXJEZXRhaWxzLm9yZGVyX25vIDogJyc7XHJcbiAgICAgICAgICAgICAgICAgICAgZXh0ZXJuYWxUcmFuc2FjdGlvbkRldGFpbHNPYmoucHJvdmlkZXJUeXBlID0gUFJPVklERVJTLlNBTEVTRk9SQ0U7XHJcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNhY3Rpb25JbmZvLnNoaXBwaW5nSWQgPSBzaGlwbWVudC5zaGlwcGluZ19tZXRob2QgJiYgc2hpcG1lbnQuc2hpcHBpbmdfbWV0aG9kLmlkID8gc2hpcG1lbnQuc2hpcHBpbmdfbWV0aG9kLmlkIDogJyc7XHJcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNhY3Rpb25JbmZvLmV4dGVybmFsU2hpcHBpbmdJZCA9IHNoaXBtZW50LnNoaXBtZW50X2lkID8gc2hpcG1lbnQuc2hpcG1lbnRfaWQgOiAnJztcclxuICAgICAgICAgICAgICAgICAgICBleHRlcm5hbFRyYW5zYWN0aW9uRGV0YWlsc09iai5kZXRhaWxzID0gdHJhbnNhY3Rpb25JbmZvO1xyXG4gICAgICAgICAgICAgICAgICAgIGV4dGVybmFsVHJhbnNhY3Rpb25EZXRhaWxzLnB1c2goZXh0ZXJuYWxUcmFuc2FjdGlvbkRldGFpbHNPYmopO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC5leHRlcm5hbFRyYW5zYWN0aW9uRGV0YWlscyA9IGV4dGVybmFsVHJhbnNhY3Rpb25EZXRhaWxzO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKFwiTWFwcGVyIGxpYnJhcnk6IFdlYlJldHVyblNhbGVzZm9yY2VNYXBwZXJCdWlsZGVyQ2xhc3M6IGV4dGVybmFsVHJhbnNhY3Rpb25EZXRhaWxzIG1hcHBpbmcgZW5kZWQuLi5cIik7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgYmFza2V0U3VtbWFyeSgpIHtcclxuICAgICAgICBjb25zb2xlLmxvZyhcIk1hcHBlciBsaWJyYXJ5OiBXZWJSZXR1cm5TYWxlc2ZvcmNlTWFwcGVyQnVpbGRlckNsYXNzOiBiYXNrZXRTdW1tYXJ5IG1hcHBpbmcgc3RhcnRlZC4uLlwiKTtcclxuICAgICAgICBsZXQgYmFza2V0U3VtbWFyeSA9IHt9IGFzIEJhc2tldFN1bW1hcnk7XHJcbiAgICAgICAgbGV0IGJhc2tldFN1bW1hcnlXZWJPcmRlciA9IHt9IGFzIEJhc2tldFN1bW1hcnlEZXRhaWxzO1xyXG4gICAgICAgIGNvbnN0IGxpbmVQcm9tb3Rpb25Ub3RhbCA9IHRoaXMud2ViUmV0dXJuT2JqZWN0LmJhc2tldC5saW5lUHJvbW90aW9uLm1hcChsaW5lUHJvbW90aW9uID0+IGxpbmVQcm9tb3Rpb24ucHJvbW90aW9uQW1vdW50KS5yZWR1Y2UoKGFjY3VtdWxhdG9yLCBjdXJyZW50VmFsdWUpID0+IGFjY3VtdWxhdG9yICsgY3VycmVudFZhbHVlLCAwKTtcclxuICAgICAgICBjb25zdCB0cmFuc2FjdGlvblByb21vdGlvblRvdGFsID0gdGhpcy53ZWJSZXR1cm5PYmplY3QuYmFza2V0LnRyYW5zYWN0aW9uUHJvbW90aW9uLm1hcCh0cmFuc2FjdGlvblByb21vdGlvbiA9PiB0cmFuc2FjdGlvblByb21vdGlvbi5wcm9tb3Rpb25BbW91bnQpLnJlZHVjZSgoYWNjdW11bGF0b3IsIGN1cnJlbnRWYWx1ZSkgPT4gYWNjdW11bGF0b3IgKyBjdXJyZW50VmFsdWUsIDApO1xyXG4gICAgICAgIGJhc2tldFN1bW1hcnkuZGlzY291bnRUb3RhbCA9IGxpbmVQcm9tb3Rpb25Ub3RhbCArIHRyYW5zYWN0aW9uUHJvbW90aW9uVG90YWw7XHJcbiAgICAgICAgYmFza2V0U3VtbWFyeS5WQVRUb3RhbCA9IHRoaXMub3JkZXJEZXRhaWxzLnRheF90b3RhbCA/IHRoaXMub3JkZXJEZXRhaWxzLnRheF90b3RhbCA6IDA7XHJcbiAgICAgICAgYmFza2V0U3VtbWFyeS5zYWxlVG90YWwgPSB0aGlzLm9yZGVyRGV0YWlscy5vcmRlcl90b3RhbCA/IHRoaXMub3JkZXJEZXRhaWxzLm9yZGVyX3RvdGFsIDogMDtcclxuICAgICAgICBiYXNrZXRTdW1tYXJ5LmJhc2tldFRvdGFsID0gdGhpcy5vcmRlckRldGFpbHMub3JkZXJfdG90YWwgPyB0aGlzLm9yZGVyRGV0YWlscy5vcmRlcl90b3RhbCA6IDA7XHJcbiAgICAgICAgYmFza2V0U3VtbWFyeS50b3RhbEl0ZW1zID0gdGhpcy5vcmRlckRldGFpbHMucHJvZHVjdF9pdGVtcyAmJiB0aGlzLm9yZGVyRGV0YWlscy5wcm9kdWN0X2l0ZW1zLmxlbmd0aCA+IDAgPyB0aGlzLm9yZGVyRGV0YWlscy5wcm9kdWN0X2l0ZW1zLmxlbmd0aCA6IDA7XHJcbiAgICAgICAgYmFza2V0U3VtbWFyeS5zaGlwcGluZ1RvdGFsID0gdGhpcy5vcmRlckRldGFpbHMuc2hpcHBpbmdfdG90YWwgPyB0aGlzLm9yZGVyRGV0YWlscy5zaGlwcGluZ190b3RhbCA6IDA7XHJcbiAgICAgICAgYmFza2V0U3VtbWFyeS5iYXNrZXRUb3RhbFdpdGhTaGlwcGluZ1RvdGFsID0gdGhpcy5vcmRlckRldGFpbHMub3JkZXJfdG90YWwgPyB0aGlzLm9yZGVyRGV0YWlscy5vcmRlcl90b3RhbCA6IDA7XHJcbiAgICAgICAgYmFza2V0U3VtbWFyeVdlYk9yZGVyLnNoaXBwaW5nVG90YWwgPSB0aGlzLm9yZGVyRGV0YWlscy5zaGlwcGluZ190b3RhbCA/IHRoaXMub3JkZXJEZXRhaWxzLnNoaXBwaW5nX3RvdGFsIDogMDtcclxuICAgICAgICBiYXNrZXRTdW1tYXJ5V2ViT3JkZXIuYmFza2V0VG90YWxXaXRoU2hpcHBpbmdUb3RhbCA9IHRoaXMub3JkZXJEZXRhaWxzLm9yZGVyX3RvdGFsID8gdGhpcy5vcmRlckRldGFpbHMub3JkZXJfdG90YWwgOiAwO1xyXG4gICAgICAgIGJhc2tldFN1bW1hcnkud2ViT3JkZXIgPSBiYXNrZXRTdW1tYXJ5V2ViT3JkZXI7XHJcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3QuYmFza2V0U3VtbWFyeSA9IGJhc2tldFN1bW1hcnk7XHJcbiAgICAgICAgY29uc29sZS5sb2coXCJNYXBwZXIgbGlicmFyeTogV2ViUmV0dXJuU2FsZXNmb3JjZU1hcHBlckJ1aWxkZXJDbGFzczogYmFza2V0U3VtbWFyeSBtYXBwaW5nIGVuZGVkLi4uXCIpO1xyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIGRldmljZUlkKGRldmljZUlkKSB7XHJcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3QuZGV2aWNlSWQgPSBkZXZpY2VJZDtcclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICB0ZXJtaW5hbElkKHRlcm1pbmFsSWQpIHtcclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC50ZXJtaW5hbElkID0gdGVybWluYWxJZDtcclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICBvcmdDb2RlKG9yZ0NvZGUpIHtcclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC5vcmdDb2RlID0gb3JnQ29kZTtcclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICBzdG9yZUlkKHN0b3JlSWQpIHtcclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC5zdG9yZUlkID0gc3RvcmVJZDtcclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICBzdG9yZU5vZGVJZChzdG9yZU5vZGVJZDogc3RyaW5nKSB7XHJcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3Quc3RvcmVOb2RlSWQgPSBzdG9yZU5vZGVJZDtcclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICBzdG9yZU5vZGVTdHJ1Y3R1cmUoc3RvcmVOb2RlU3RydWN0dXJlOiBzdHJpbmcpIHtcclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC5zdG9yZU5vZGVTdHJ1Y3R1cmUgPSBzdG9yZU5vZGVTdHJ1Y3R1cmU7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgZG9jSWQoZG9jSWQpIHtcclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC5pZCA9IGRvY0lkO1xyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIHVwZGF0ZVVzZXJJRCh1c2VySUQ6IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0LnVzZXJJZCA9IHVzZXJJRDtcclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICB1cGRhdGVVc2VyTmFtZShuYW1lKSB7XHJcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3QudXNlck5hbWUgPSBuYW1lO1xyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIGJ1aWxkKCkge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKFwiTWFwcGVyIGxpYnJhcnk6IFdlYlJldHVyblNhbGVzZm9yY2VNYXBwZXJCdWlsZGVyQ2xhc3M6IG1hcHBpbmcgZG9uZS4uLlwiKTtcclxuICAgICAgICByZXR1cm4gdGhpcy53ZWJSZXR1cm5PYmplY3Q7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0VVRDRGF0ZVRpbWUoZGF0ZSkge1xyXG4gICAgICAgIGlmIChkYXRlKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBuZXcgRGF0ZShkYXRlKS50b0lTT1N0cmluZygpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iXX0=
|
|
857
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiV2ViUmV0dXJuU2FsZXNmb3JjZU1hcHBlci5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BwbWNyZXRhaWwvbWFwcGVyLWxpYnJhcnkvIiwic291cmNlcyI6WyJsaWIvV2ViUmV0dXJuU2FsZXNmb3JjZU1hcHBlci5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUNBLE9BQU8sRUFBcUYsZ0JBQWdCLEVBQUUsZUFBZSxFQUFFLGNBQWMsRUFBRSxpQkFBaUIsRUFBZ0MsU0FBUyxFQUFtQixnQkFBZ0IsRUFBa0ksTUFBTSx3QkFBd0IsQ0FBQztBQUM3WSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUUxRDtJQWdDSSwrQ0FBWSxZQUEwQixFQUMxQixZQUEyQjtRQUEzQixpQkFBWSxHQUFaLFlBQVksQ0FBZTtRQTlCL0Isb0JBQWUsR0FBd0I7WUFDM0MsRUFBRSxFQUFFLEVBQUU7WUFDTixPQUFPLEVBQUUsRUFBRTtZQUNYLE9BQU8sRUFBRSxFQUFFO1lBQ1gsV0FBVyxFQUFFLEVBQUU7WUFDZixrQkFBa0IsRUFBRSxFQUFFO1lBQ3RCLFFBQVEsRUFBRSxFQUFFO1lBQ1osVUFBVSxFQUFFLEVBQUU7WUFDZCxnQkFBZ0IsRUFBRSxFQUFFO1lBQ3BCLE1BQU0sRUFBRSxLQUFLO1lBQ2IsTUFBTSxFQUFFLEVBQUU7WUFDVixhQUFhLEVBQUUsRUFBRTtZQUNqQixZQUFZLEVBQUUsRUFBRTtZQUNoQixRQUFRLEVBQUU7Z0JBQ04sRUFBRSxFQUFFLEVBQUU7Z0JBQ04sS0FBSyxFQUFFLEVBQUU7Z0JBQ1QsU0FBUyxFQUFFLEVBQUU7Z0JBQ2IsUUFBUSxFQUFFLEVBQUU7Z0JBQ1osY0FBYyxFQUFFLEVBQUU7Z0JBQ2xCLGVBQWUsRUFBRSxFQUFFO2dCQUNuQixlQUFlLEVBQUUsRUFBRTtnQkFDbkIsU0FBUyxFQUFFLEVBQUU7Z0JBQ2IsUUFBUSxFQUFFLEVBQUU7Z0JBQ1osa0JBQWtCLEVBQUUsS0FBSzthQUM1QjtZ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QyxrQkFBa0IsR0FBRyxrQkFBa0IsQ0FBQztRQUM3RCxPQUFPLG1CQUFBLElBQUksRUFBQSxDQUFDO0lBQ2hCLENBQUM7Ozs7Ozs7SUFFRCxxREFBSzs7Ozs7O0lBQUwsVUFBTSxLQUFLO1FBQ1AsbUJBQUEsSUFBSSxFQUFBLENBQUMsZUFBZSxDQUFDLEVBQUUsR0FBRyxLQUFLLENBQUM7UUFDaEMsT0FBTyxtQkFBQSxJQUFJLEVBQUEsQ0FBQztJQUNoQixDQUFDOzs7Ozs7O0lBRUQsNERBQVk7Ozs7OztJQUFaLFVBQWEsTUFBYztRQUN2QixtQkFBQSxJQUFJLEVBQUEsQ0FBQyxlQUFlLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQyxPQUFPLG1CQUFBLElBQUksRUFBQSxDQUFDO0lBQ2hCLENBQUM7Ozs7Ozs7SUFFRCw4REFBYzs7Ozs7O0lBQWQsVUFBZSxJQUFJO1FBQ2YsbUJBQUEsSUFBSSxFQUFBLENBQUMsZUFBZSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7UUFDckMsT0FBTyxtQkFBQSxJQUFJLEVBQUEsQ0FBQztJQUNoQixDQUFDOzs7O0lBRUQscURBQUs7OztJQUFMO1FBQ0ksT0FBTyxDQUFDLEdBQUcsQ0FBQyx3RUFBd0UsQ0FBQyxDQUFDO1FBQ3RGLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQztJQUNoQyxDQUFDOzs7OztJQUVELDhEQUFjOzs7O0lBQWQsVUFBZSxJQUFJO1FBQ2YsSUFBSSxJQUFJLEVBQUU7WUFDTixPQUFPLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ3ZDO0lBQ0wsQ0FBQztJQUNMLDRDQUFDO0FBQUQsQ0FBQyxBQS9lRCxJQStlQzs7Ozs7OztJQTdlRyw2REFBbUM7Ozs7O0lBQ25DLGdFQTBCQzs7SUFDRCxrRUFBdUI7Ozs7O0lBR25CLDZEQUFtQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEN1cnJlbmN5UGlwZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcclxuaW1wb3J0IHsgQWRkcmVzcywgQmFza2V0U3VtbWFyeSwgQmFza2V0U3VtbWFyeURldGFpbHMsIEN1cnJlbnRUcmFuc2FjdGlvbkRldGFpbHMsIEN1c3RvbWVyLCBERUxJVkVSWV9NRVRIT0RTLCBQUk9NT1RJT05fTEVWRUwsIFBST01PVElPTl9UWVBFLCBJTklUSUFUSU5HX01PRFVMRSwgTGluZVByb21vdGlvbnMsIE9yZGVyRGV0YWlscywgUFJPVklERVJTLCBTaGlwbWVudERldGFpbHMsIFRSQU5TQUNUSU9OX1RZUEUsIFRyYW5zYWN0aW9uRG9jdW1lbnQsIFRyYW5zYWN0aW9uSW5mbywgVHJhbnNhY3Rpb25Qcm9tb3Rpb24sIFRyaWdnZXIsIGV4dGVybmFsVHJhbnNhY3Rpb25EZXRhaWxzLCBUUHJvZHVjdCwgUmVmdW5kUHJvZHVjdENoYW5nZSB9IGZyb20gXCIuL21hcHBlci1saWJyYXJ5Lm1vZGVsXCI7XHJcbmltcG9ydCB7IE51bWJlclV0aWxTZXJ2aWNlIH0gZnJvbSBcIi4vbnVtYmVyLXV0aWwuc2VydmljZVwiO1xyXG5cclxuZXhwb3J0IGNsYXNzIFdlYlJldHVyblNhbGVzZm9yY2VNYXBwZXJCdWlsZGVyQ2xhc3Mge1xyXG5cclxuICAgIHByaXZhdGUgb3JkZXJEZXRhaWxzOiBPcmRlckRldGFpbHM7XHJcbiAgICBwcml2YXRlIHdlYlJldHVybk9iamVjdDogVHJhbnNhY3Rpb25Eb2N1bWVudCA9IHtcclxuICAgICAgICBpZDogJycsXHJcbiAgICAgICAgb3JnQ29kZTogXCJcIixcclxuICAgICAgICBzdG9yZUlkOiBcIlwiLFxyXG4gICAgICAgIHN0b3JlTm9kZUlkOiBcIlwiLFxyXG4gICAgICAgIHN0b3JlTm9kZVN0cnVjdHVyZTogXCJcIixcclxuICAgICAgICBkZXZpY2VJZDogXCJcIixcclxuICAgICAgICB0ZXJtaW5hbElkOiBcIlwiLFxyXG4gICAgICAgIGluaXRpYXRpbmdNb2R1bGU6IFwiXCIsXHJcbiAgICAgICAgZXhwb3J0OiBmYWxzZSxcclxuICAgICAgICBiYXNrZXQ6IHt9LFxyXG4gICAgICAgIGJhc2tldFN1bW1hcnk6IHt9LFxyXG4gICAgICAgIGJhc2VDdXJyZW5jeTogXCJcIixcclxuICAgICAgICBjdXN0b21lcjoge1xyXG4gICAgICAgICAgICBpZDogJycsXHJcbiAgICAgICAgICAgIGVtYWlsOiAnJyxcclxuICAgICAgICAgICAgZmlyc3ROYW1lOiAnJyxcclxuICAgICAgICAgICAgbGFzdE5hbWU6ICcnLFxyXG4gICAgICAgICAgICBiaWxsaW5nQWRkcmVzczogW10sXHJcbiAgICAgICAgICAgIHNoaXBwaW5nQWRkcmVzczogW10sXHJcbiAgICAgICAgICAgIHNoaXBtZW50RGV0YWlsczogW10sXHJcbiAgICAgICAgICAgIHRlbGVwaG9uZTogJycsXHJcbiAgICAgICAgICAgIHBvc3RDb2RlOiAnJyxcclxuICAgICAgICAgICAgbm9DdXN0b21lclNlbGVjdGVkOiBmYWxzZVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgY3VycmVudFRyYW5zYWN0aW9uRGV0YWlsczoge30gYXMgQ3VycmVudFRyYW5zYWN0aW9uRGV0YWlsc1xyXG4gICAgfVxyXG4gICAgbnVtYmVyVXRpbFNlcnZpY2U6IGFueTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihvcmRlckRldGFpbHM6IE9yZGVyRGV0YWlscyxcclxuICAgICAgICBwcml2YXRlIGN1cnJlbmN5UGlwZT86IEN1cnJlbmN5UGlwZVxyXG4gICAgICAgICkge1xyXG4gICAgICAgIGlmIChvcmRlckRldGFpbHMpIHtcclxuICAgICAgICAgICAgdGhpcy5vcmRlckRldGFpbHMgPSBvcmRlckRldGFpbHM7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMubnVtYmVyVXRpbFNlcnZpY2UgPSBuZXcgTnVtYmVyVXRpbFNlcnZpY2UoY3VycmVuY3lQaXBlKTtcclxuICAgIH1cclxuXHJcbiAgICB3ZWJSZXR1cm5Db21tb25NYXBwZXIoKSB7XHJcbiAgICAgICAgY29uc29sZS5sb2coXCJNYXBwZXIgbGlicmFyeTogV2ViUmV0dXJuU2FsZXNmb3JjZU1hcHBlckJ1aWxkZXJDbGFzczogd2ViUmV0dXJuQ29tbW9uTWFwcGVyIHN0YXJ0ZWQuLi5cIik7XHJcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3RbJ3R5cGUnXSA9IFRSQU5TQUNUSU9OX1RZUEUuV0VCX1JFVFVSTlM7XHJcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3RbJ2RhdGV0aW1lJ10gPSB0aGlzLmdldFVUQ0RhdGVUaW1lKHRoaXMub3JkZXJEZXRhaWxzLmxhc3RfbW9kaWZpZWQpO1xyXG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0LmJhc2VDdXJyZW5jeSA9IHRoaXMub3JkZXJEZXRhaWxzLmN1cnJlbmN5O1xyXG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0LnN1YnNpZGlhcnlJZCA9ICcxJztcclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC5leHBvcnQgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0LmluaXRpYXRpbmdNb2R1bGUgPSBJTklUSUFUSU5HX01PRFVMRS5FQkFTS0VUO1xyXG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0LmNyZWF0ZWRBdCA9IHRoaXMuZ2V0VVRDRGF0ZVRpbWUodGhpcy5vcmRlckRldGFpbHMuY3JlYXRpb25fZGF0ZSk7XHJcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3QudXBkYXRlZEF0ID0gdGhpcy5nZXRVVENEYXRlVGltZSh0aGlzLm9yZGVyRGV0YWlscy5sYXN0X21vZGlmaWVkKTtcclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC50cmFuc0NvbXBsZXRlZEF0ID0gdGhpcy5nZXRVVENEYXRlVGltZSh0aGlzLm9yZGVyRGV0YWlscy5sYXN0X21vZGlmaWVkKTtcclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdFsnZXh0ZXJuYWxUcmFuc2FjdGlvbklkJ10gPSB0aGlzLm9yZGVyRGV0YWlscy5vcmRlcl9ubztcclxuICAgICAgICBjb25zb2xlLmxvZyhcIk1hcHBlciBsaWJyYXJ5OiBXZWJSZXR1cm5TYWxlc2ZvcmNlTWFwcGVyQnVpbGRlckNsYXNzOiB3ZWJSZXR1cm5Db21tb25NYXBwZXIgZW5kZWQuLi5cIik7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gZXhwb3J0KHN0YXR1cywgZGV0YWlscykge1xyXG4gICAgLy8gICAgIGNvbnNvbGUubG9nKFwiTWFwcGVyIGxpYnJhcnk6IFdlYlJldHVyblNhbGVzZm9yY2VNYXBwZXJCdWlsZGVyQ2xhc3M6IGV4cG9ydCBtYXBwaW5nIHN0YXJ0ZWQuLi5cIik7XHJcbiAgICAvLyAgICAgY29uc29sZS5sb2coXCJNYXBwZXIgbGlicmFyeTogV2ViUmV0dXJuU2FsZXNmb3JjZU1hcHBlckJ1aWxkZXJDbGFzczogc3RhdHVzOlwiLCBzdGF0dXMpO1xyXG4gICAgLy8gICAgIGNvbnNvbGUubG9nKFwiTWFwcGVyIGxpYnJhcnk6IFdlYlJldHVyblNhbGVzZm9yY2VNYXBwZXJCdWlsZGVyQ2xhc3M6IGRldGFpbHM6XCIsIEpTT04uc3RyaW5naWZ5KGRldGFpbHMpKTtcclxuICAgIC8vICAgICBpZiAoc3RhdHVzICYmIGRldGFpbHMgJiYgZGV0YWlscy5wcm92aWRlcnMgJiYgZGV0YWlscy5wcm92aWRlcnMubGVuZ3RoID4gMCkge1xyXG4gICAgLy8gICAgICAgICBkZXRhaWxzLnByb3ZpZGVycy5mb3JFYWNoKFxyXG4gICAgLy8gICAgICAgICAgICAgcHJvdmlkZXJPYmogPT4ge1xyXG4gICAgLy8gICAgICAgICAgICAgICAgIGlmIChwcm92aWRlck9iai5wcm92aWRlciAmJiBwcm92aWRlck9iai5wcm92aWRlciA9PT0gUFJPVklERVJTLlNBTEVTRk9SQ0UpIHtcclxuICAgIC8vICAgICAgICAgICAgICAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3QuZXhwb3J0ID0gdHJ1ZTtcclxuICAgIC8vICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgLy8gICAgICAgICAgICAgICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC5leHBvcnQgPSBmYWxzZTtcclxuICAgIC8vICAgICAgICAgICAgICAgICB9XHJcbiAgICAvLyAgICAgICAgICAgICB9XHJcbiAgICAvLyAgICAgICAgICk7XHJcbiAgICAvLyAgICAgfSBlbHNlIHtcclxuICAgIC8vICAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3QuZXhwb3J0ID0gZmFsc2U7XHJcbiAgICAvLyAgICAgfVxyXG4gICAgLy8gICAgIGNvbnNvbGUubG9nKFwiTWFwcGVyIGxpYnJhcnk6IFdlYlJldHVyblNhbGVzZm9yY2VNYXBwZXJCdWlsZGVyQ2xhc3M6IGV4cG9ydCBtYXBwaW5nIGVuZC4uLlwiKVxyXG4gICAgLy8gICAgIHJldHVybiB0aGlzO1xyXG4gICAgLy8gfVxyXG5cclxuICAgIGdldERlbGl2ZXJ5TWV0aG9kKCkge1xyXG4gICAgICAgIGlmKHRoaXMub3JkZXJEZXRhaWxzLnNoaXBtZW50cyAmJiB0aGlzLm9yZGVyRGV0YWlscy5zaGlwbWVudHMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICBjb25zdCBzaGlwVG9TdG9yZVNoaXBtZW50ID0gdGhpcy5vcmRlckRldGFpbHMuc2hpcG1lbnRzLmZpbmQoc2hpcG1lbnQgPT4gc2hpcG1lbnQuY19mcm9tU3RvcmVJZCk7XHJcbiAgICAgICAgICAgIGlmKHNoaXBUb1N0b3JlU2hpcG1lbnQpIHJldHVybiBERUxJVkVSWV9NRVRIT0RTLlNISVBfVE9fU1RPUkU7XHJcbiAgICAgICAgICAgIGVsc2UgcmV0dXJuIERFTElWRVJZX01FVEhPRFMuREVMSVZFUlk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuICcnO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcm9kdWN0KCkge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKFwiTWFwcGVyIGxpYnJhcnk6IFdlYlJldHVyblNhbGVzZm9yY2VNYXBwZXJCdWlsZGVyQ2xhc3M6IHByb2R1Y3QgbWFwcGluZyBzdGFydGVkLi4uXCIpO1xyXG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0LmJhc2tldFsncHJvZHVjdHMnXSA9IFtdO1xyXG4gICAgICAgIGlmICh0aGlzLm9yZGVyRGV0YWlscy5wcm9kdWN0X2l0ZW1zICYmIHRoaXMub3JkZXJEZXRhaWxzLnByb2R1Y3RfaXRlbXMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICB0aGlzLm9yZGVyRGV0YWlscy5wcm9kdWN0X2l0ZW1zLmZvckVhY2goXHJcbiAgICAgICAgICAgICAgICAocHJvZHVjdCwgaW5kZXgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBwcm9kdWN0T2JqID0ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogcHJvZHVjdC5pdGVtX3RleHQgPyBwcm9kdWN0Lml0ZW1fdGV4dCA6ICcnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBTS1U6IHByb2R1Y3QucHJvZHVjdF9pZCA/IHByb2R1Y3QucHJvZHVjdF9pZCA6ICcnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBxdWFudGl0eTogcHJvZHVjdC5xdWFudGl0eSA/IHByb2R1Y3QucXVhbnRpdHkgOiAwLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZWZ1bmRlZFF1YW50aXR5OiAwLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwcmljZTogcHJvZHVjdC5iYXNlX3ByaWNlID8gcHJvZHVjdC5iYXNlX3ByaWNlIDogMCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbUxpbmVJZDogKGluZGV4ICsgMSkudG9TdHJpbmcoKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgZGVsaXZlcnlNZXRob2Q6IHRoaXMuZ2V0RGVsaXZlcnlNZXRob2QoKS50b1N0cmluZygpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0b3RhbExpbmVQcmljZTogcHJvZHVjdC5wcmljZSA/IHByb2R1Y3QucHJpY2UgOiAwXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGlmIChwcm9kdWN0ICYmIHByb2R1Y3QucHJpY2UgIT0gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC5iYXNrZXRbJ3Byb2R1Y3RzJ10ucHVzaChwcm9kdWN0T2JqKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnNvbGUubG9nKFwiTWFwcGVyIGxpYnJhcnk6IFdlYlJldHVyblNhbGVzZm9yY2VNYXBwZXJCdWlsZGVyQ2xhc3M6IHByb2R1Y3QgbWFwcGluZyBlbmRlZC4uLlwiKTtcclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICBsaW5lUHJvbW90aW9uKCkge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKFwiTWFwcGVyIGxpYnJhcnk6IFdlYlJldHVyblNhbGVzZm9yY2VNYXBwZXJCdWlsZGVyQ2xhc3M6IGxpbmVQcm9tb3Rpb24gbWFwcGluZyBzdGFydGVkLi4uXCIpO1xyXG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0LmJhc2tldC5saW5lUHJvbW90aW9uID0gW10gYXMgTGluZVByb21vdGlvbnNbXTtcclxuICAgICAgICBsZXQgbGluZVByb21vdGlvbkFycmF5ID0gW10gYXMgTGluZVByb21vdGlvbnNbXTtcclxuICAgICAgICBpZiAodGhpcy5vcmRlckRldGFpbHMucHJvZHVjdF9pdGVtcyAmJiB0aGlzLm9yZGVyRGV0YWlscy5wcm9kdWN0X2l0ZW1zLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgdGhpcy5vcmRlckRldGFpbHMucHJvZHVjdF9pdGVtcy5mb3JFYWNoKFxyXG4gICAgICAgICAgICAgICAgKHByb2R1Y3QsIGluZGV4KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgcHJvZHVjdC5pdGVtX2lkID0gKGluZGV4ICsgMSkudG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAocHJvZHVjdC5wcmljZV9hZGp1c3RtZW50cyAmJiBwcm9kdWN0LnByaWNlX2FkanVzdG1lbnRzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcHJvZHVjdC5wcmljZV9hZGp1c3RtZW50cy5mb3JFYWNoKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHByb21vdGlvbikgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghcHJvbW90aW9uLmNvdXBvbl9jb2RlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsaW5lUHJvbW90aW9uT2JqID0ge30gYXMgTGluZVByb21vdGlvbnM7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0cmlnZ2VyID0ge30gYXMgVHJpZ2dlcjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJpZ2dlci5pdGVtTGluZUlkID0gcHJvZHVjdC5pdGVtX2lkO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmlnZ2VyLnF1YW50aXR5ID0gcHJvZHVjdC5xdWFudGl0eSA/IHByb2R1Y3QucXVhbnRpdHkgOiAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5lUHJvbW90aW9uT2JqLnRyaWdnZXIgPSBbXSBhcyBUcmlnZ2VyW107XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVQcm9tb3Rpb25PYmoudHJpZ2dlci5wdXNoKHRyaWdnZXIpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZVByb21vdGlvbk9iai5pdGVtTGluZUlkID0gaW5kZXggKyAxO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5lUHJvbW90aW9uT2JqLnByb21vdGlvbklkID0gcHJvbW90aW9uLnByb21vdGlvbl9pZCA/IHByb21vdGlvbi5wcm9tb3Rpb25faWQgOiAnJztcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZVByb21vdGlvbk9iai5kaXNwbGF5VGV4dCA9IHByb21vdGlvbi5pdGVtX3RleHQgPyBwcm9tb3Rpb24uaXRlbV90ZXh0IDogJyc7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVQcm9tb3Rpb25PYmoucHJvbW90aW9uVHlwZSA9IHByb21vdGlvbi5hcHBsaWVkX2Rpc2NvdW50ICYmIHByb21vdGlvbi5hcHBsaWVkX2Rpc2NvdW50LnR5cGUgPyBwcm9tb3Rpb24uYXBwbGllZF9kaXNjb3VudC50eXBlIDogJyc7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVQcm9tb3Rpb25PYmoucHJvbW90aW9uQW1vdW50ID0gcHJvbW90aW9uLnByaWNlID8gTWF0aC5hYnMocHJvbW90aW9uLnByaWNlKSA6IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVQcm9tb3Rpb25PYmoubmFtZSA9IHByb21vdGlvbi5jb3Vwb25fY29kZSAgPyBwcm9tb3Rpb24uY291cG9uX2NvZGUgOiAocHJvbW90aW9uLml0ZW1fdGV4dCA/IHByb21vdGlvbi5pdGVtX3RleHQgOicnKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZVByb21vdGlvbk9iai5wcm9tb3Rpb25JbmZvID0gcHJvbW90aW9uLml0ZW1fdGV4dCA/IHByb21vdGlvbi5pdGVtX3RleHQgOiAnJztcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZVByb21vdGlvbk9iai5wcm9tb3Rpb25MaW5lUHJpY2UgPSBwcm9kdWN0LnByaWNlIC0gTWF0aC5hYnMocHJvbW90aW9uLnByaWNlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZVByb21vdGlvbkFycmF5LnB1c2gobGluZVByb21vdGlvbk9iaik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3QuYmFza2V0LmxpbmVQcm9tb3Rpb24gPSBsaW5lUHJvbW90aW9uQXJyYXk7XHJcbiAgICAgICAgY29uc29sZS5sb2coXCJNYXBwZXIgbGlicmFyeTogV2ViUmV0dXJuU2FsZXNmb3JjZU1hcHBlckJ1aWxkZXJDbGFzczogbGluZVByb21vdGlvbiBtYXBwaW5nIGVuZGVkLi4uXCIpO1xyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIHRyYW5zYWN0aW9uUHJvbW90aW9uKCkge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKFwiTWFwcGVyIGxpYnJhcnk6IFdlYlJldHVyblNhbGVzZm9yY2VNYXBwZXJCdWlsZGVyQ2xhc3M6IHRyYW5zYWN0aW9uUHJvbW90aW9uIG1hcHBpbmcgc3RhcnRlZC4uLlwiKTtcclxuXHJcbiAgICAgICAgbGV0IHRyYW5zYWN0aW9uUHJvbW90aW9uQXJyYXkgPSB0aGlzLmdldFRyYW5zYWN0aW9uUHJvbW90aW9ucyh0aGlzLm9yZGVyRGV0YWlscyk7XHJcblxyXG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0LmJhc2tldC50cmFuc2FjdGlvblByb21vdGlvbiA9IHRyYW5zYWN0aW9uUHJvbW90aW9uQXJyYXk7XHJcbiAgICAgICAgY29uc29sZS5sb2coXCJNYXBwZXIgbGlicmFyeTogV2ViUmV0dXJuU2FsZXNmb3JjZU1hcHBlckJ1aWxkZXJDbGFzczogdHJhbnNhY3Rpb25Qcm9tb3Rpb24gbWFwcGluZyBlbmRlZC4uLlwiKTtcclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICBnZXRUcmFuc2FjdGlvblByb21vdGlvbnMoYmFza2V0KTogVHJhbnNhY3Rpb25Qcm9tb3Rpb25bXSB7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgbGV0IHRyYW5zYWN0aW9uUHJvbW90aW9uQXJyYXkgPSBbXSBhcyBUcmFuc2FjdGlvblByb21vdGlvbltdO1xyXG4gICAgICAgICAgICBpZiAoYmFza2V0Lm9yZGVyX3ByaWNlX2FkanVzdG1lbnRzICYmIGJhc2tldC5vcmRlcl9wcmljZV9hZGp1c3RtZW50cy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgICAgICBiYXNrZXQub3JkZXJfcHJpY2VfYWRqdXN0bWVudHMuZm9yRWFjaChcclxuICAgICAgICAgICAgICAgICAgICAodHJhbnNhY3Rpb25Qcm9tb3Rpb24pID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRyYW5zYWN0aW9uUHJvbW90aW9uT2JqID0ge30gYXMgVHJhbnNhY3Rpb25Qcm9tb3Rpb247XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2FjdGlvblByb21vdGlvbk9iai5kaXNwbGF5VGV4dCA9IHRyYW5zYWN0aW9uUHJvbW90aW9uLml0ZW1fdGV4dCA/IHRyYW5zYWN0aW9uUHJvbW90aW9uLml0ZW1fdGV4dCA6ICcnO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2FjdGlvblByb21vdGlvbk9iai5uYW1lID0gdHJhbnNhY3Rpb25Qcm9tb3Rpb24uY291cG9uX2NvZGUgPyB0cmFuc2FjdGlvblByb21vdGlvbi5jb3Vwb25fY29kZSA6ICh0cmFuc2FjdGlvblByb21vdGlvbiAuaXRlbV90ZXh0P3RyYW5zYWN0aW9uUHJvbW90aW9uLml0ZW1fdGV4dCA6ICcnKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNhY3Rpb25Qcm9tb3Rpb25PYmoucHJvbW90aW9uQW1vdW50ID0gdHJhbnNhY3Rpb25Qcm9tb3Rpb24ucHJpY2UgPyBNYXRoLmFicyh0cmFuc2FjdGlvblByb21vdGlvbi5wcmljZSkgOiAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2FjdGlvblByb21vdGlvbk9iai5wcm9tb3Rpb25JZCA9IHRyYW5zYWN0aW9uUHJvbW90aW9uLnByb21vdGlvbl9pZCA/IHRyYW5zYWN0aW9uUHJvbW90aW9uLnByb21vdGlvbl9pZCA6ICcnO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2FjdGlvblByb21vdGlvbk9iai5wcm9tb3Rpb25JbmZvID0gdHJhbnNhY3Rpb25Qcm9tb3Rpb24uaXRlbV90ZXh0ID8gdHJhbnNhY3Rpb25Qcm9tb3Rpb24uaXRlbV90ZXh0IDogJyc7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zYWN0aW9uUHJvbW90aW9uT2JqLnByb21vdGlvblR5cGUgPSB0cmFuc2FjdGlvblByb21vdGlvbi5hcHBsaWVkX2Rpc2NvdW50ICYmIHRyYW5zYWN0aW9uUHJvbW90aW9uLmFwcGxpZWRfZGlzY291bnQudHlwZSA/IHRyYW5zYWN0aW9uUHJvbW90aW9uLmFwcGxpZWRfZGlzY291bnQudHlwZSA6ICcnO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2FjdGlvblByb21vdGlvbk9iai5pdGVtTGluZUlkcyA9IHRoaXMub3JkZXJEZXRhaWxzLnByb2R1Y3RfaXRlbXMubWFwKChwcm9kdWN0LCBpbmRleCkgPT4gaW5kZXggKyAxKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRyYW5zYWN0aW9uUHJvbW90aW9uLmNvdXBvbl9jb2RlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2FjdGlvblByb21vdGlvbk9iai50eXBlID0gUFJPTU9USU9OX1RZUEUuQ09VUE9OO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNhY3Rpb25Qcm9tb3Rpb25PYmouY291cG9uQ29kZSA9IHRyYW5zYWN0aW9uUHJvbW90aW9uLmNvdXBvbl9jb2RlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNhY3Rpb25Qcm9tb3Rpb25PYmouc3ViTGV2ZWxUeXBlID0gUFJPTU9USU9OX0xFVkVMLlRSQU5TQUNUSU9OO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zYWN0aW9uUHJvbW90aW9uQXJyYXkucHVzaCh0cmFuc2FjdGlvblByb21vdGlvbk9iaik7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuXHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiTWFwcGVyIGxpYnJhcnk6IFdlYlJldHVyblNhbGVzZm9yY2VNYXBwZXJCdWlsZGVyQ2xhc3M6IGdldFRyYW5zYWN0aW9uUHJvbW90aW9ucyA6IFwiLCBKU09OLnN0cmluZ2lmeSh0cmFuc2FjdGlvblByb21vdGlvbkFycmF5KSk7XHJcbiAgICAgICAgICAgIHJldHVybiB0cmFuc2FjdGlvblByb21vdGlvbkFycmF5O1xyXG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiTWFwcGVyIGxpYnJhcnk6IFdlYlJldHVyblNhbGVzZm9yY2VNYXBwZXJCdWlsZGVyQ2xhc3M6ICBmYWlsZWQ6XCIsIGVycm9yKTtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coXCJNYXBwZXIgbGlicmFyeTogV2ViUmV0dXJuU2FsZXNmb3JjZU1hcHBlckJ1aWxkZXJDbGFzczogIGZhaWxlZDpcIiwgSlNPTi5zdHJpbmdpZnkoZXJyb3IpKTtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGVycm9yKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdXBkYXRlTGluZVByb21vdGlvbldpdGhDb3Vwb24oKSB7XHJcbiAgICAgICAgdHJ5IHtcclxuXHJcbiAgICAgICAgICAgIGxldCB0cmFuc2FjdGlvblByb21vdGlvbiA9IHt9IGFzIFRyYW5zYWN0aW9uUHJvbW90aW9uO1xyXG4gICAgICAgICAgICBsZXQgdHJpZ2dlclByb21vdGlvbiA9IFtdIGFzIFRyaWdnZXJbXTtcclxuICAgICAgICAgICAgaWYgKHRoaXMub3JkZXJEZXRhaWxzLnByb2R1Y3RfaXRlbXMgJiYgdGhpcy5vcmRlckRldGFpbHMucHJvZHVjdF9pdGVtcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm9yZGVyRGV0YWlscy5wcm9kdWN0X2l0ZW1zLmZvckVhY2goXHJcbiAgICAgICAgICAgICAgICAgICAgKHByb2R1Y3QsIGluZGV4KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb2R1Y3QuaXRlbV9pZCA9IChpbmRleCArIDEpLnRvU3RyaW5nKCk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocHJvZHVjdC5wcmljZV9hZGp1c3RtZW50cyAmJiBwcm9kdWN0LnByaWNlX2FkanVzdG1lbnRzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2R1Y3QucHJpY2VfYWRqdXN0bWVudHMuZm9yRWFjaChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocHJvbW90aW9uKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwcm9tb3Rpb24uY291cG9uX2NvZGUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0cmlnZ2VyID0ge30gYXMgVHJpZ2dlcjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyaWdnZXIuaXRlbUxpbmVJZCA9IHByb2R1Y3QuaXRlbV9pZDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyaWdnZXIucXVhbnRpdHkgPSBwcm9kdWN0LnF1YW50aXR5ID8gcHJvZHVjdC5xdWFudGl0eSA6IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmlnZ2VyLnRvdGFsUXVhbnRpdHkgPSBwcm9kdWN0LnF1YW50aXR5ID8gcHJvZHVjdC5xdWFudGl0eSA6IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmlnZ2VyLnByb21vdGlvbkFtb3VudCA9IHByb21vdGlvbi5wcmljZSA/IE1hdGguYWJzKHByb21vdGlvbi5wcmljZSkgOiAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJpZ2dlci5yZWZ1bmRlZFJlYXNvbiA9IHByb21vdGlvbi5jb3Vwb25fY29kZSA/IHByb21vdGlvbi5jb3Vwb25fY29kZSA6ICcnO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJpZ2dlci5yZWZ1bmRlZFJlYXNvbkRlc2NyaXB0aW9uID0gcHJvbW90aW9uLml0ZW1fdGV4dCA/IHByb21vdGlvbi5pdGVtX3RleHQgOiAnJztcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyaWdnZXIucHJvbW90aW9uSWQgPSBwcm9tb3Rpb24ucHJvbW90aW9uX2lkO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJpZ2dlclByb21vdGlvbi5wdXNoKHRyaWdnZXIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmICh0cmlnZ2VyUHJvbW90aW9uLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgICAgIHRyYW5zYWN0aW9uUHJvbW90aW9uLmRpc3BsYXlUZXh0ID0gdHJpZ2dlclByb21vdGlvblswXS5yZWZ1bmRlZFJlYXNvbkRlc2NyaXB0aW9uO1xyXG4gICAgICAgICAgICAgICAgdHJhbnNhY3Rpb25Qcm9tb3Rpb24ubmFtZSA9IHRyaWdnZXJQcm9tb3Rpb25bMF0ucmVmdW5kZWRSZWFzb247XHJcbiAgICAgICAgICAgICAgICB0cmFuc2FjdGlvblByb21vdGlvbi5wcm9tb3Rpb25BbW91bnQgPSAtKHRyaWdnZXJQcm9tb3Rpb24ucmVkdWNlKChuLCB7IHByb21vdGlvbkFtb3VudCB9KSA9PiBuICsgcHJvbW90aW9uQW1vdW50LCAwKSk7XHJcbiAgICAgICAgICAgICAgICB0cmFuc2FjdGlvblByb21vdGlvbi5wcm9tb3Rpb25JZCA9IHRyaWdnZXJQcm9tb3Rpb25bMF0ucHJvbW90aW9uSWQ7XHJcbiAgICAgICAgICAgICAgICB0cmFuc2FjdGlvblByb21vdGlvbi5wcm9tb3Rpb25JbmZvID0gdHJpZ2dlclByb21vdGlvblswXS5yZWZ1bmRlZFJlYXNvbkRlc2NyaXB0aW9uO1xyXG4gICAgICAgICAgICAgICAgdHJhbnNhY3Rpb25Qcm9tb3Rpb24uY291cG9uQ29kZSA9IHRyaWdnZXJQcm9tb3Rpb25bMF0ucmVmdW5kZWRSZWFzb247XHJcbiAgICAgICAgICAgICAgICB0cmFuc2FjdGlvblByb21vdGlvbi5pdGVtTGluZUlkcyA9IFtdO1xyXG4gICAgICAgICAgICAgICAgdHJhbnNhY3Rpb25Qcm9tb3Rpb24udHlwZSA9IFBST01PVElPTl9UWVBFLkNPVVBPTjtcclxuICAgICAgICAgICAgICAgIHRyYW5zYWN0aW9uUHJvbW90aW9uLnN1YkxldmVsVHlwZSA9IFBST01PVElPTl9MRVZFTC5MSU5FO1xyXG4gICAgICAgICAgICAgICAgdHJhbnNhY3Rpb25Qcm9tb3Rpb24udHJpZ2dlciA9IHRyaWdnZXJQcm9tb3Rpb247XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY29uc29sZS5sb2coXCJsaW5lUHJvbW90aW9uIG1hcHBpbmcgZW5kZWQuLi5cIik7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZS1iYXNrZXQ6IHVwZGF0ZUxpbmVQcm9tb3Rpb25XaXRoQ291cG9uXCIsIEpTT04uc3RyaW5naWZ5KHRyYW5zYWN0aW9uUHJvbW90aW9uKSk7XHJcblxyXG4gICAgICAgICAgICBpZiAoIXRoaXMud2ViUmV0dXJuT2JqZWN0LmJhc2tldC50cmFuc2FjdGlvblByb21vdGlvbiApIHtcclxuICAgICAgICAgICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0LmJhc2tldC50cmFuc2FjdGlvblByb21vdGlvbiA9IFtdO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAodHJhbnNhY3Rpb25Qcm9tb3Rpb24gJiYgdHJhbnNhY3Rpb25Qcm9tb3Rpb24ucHJvbW90aW9uSWQgKSB7XHJcbiAgICAgICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0LmJhc2tldC50cmFuc2FjdGlvblByb21vdGlvbi5wdXNoKHRyYW5zYWN0aW9uUHJvbW90aW9uKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coXCJFYmFza2V0OiBTYWxlc2ZvcmNlOiBsaW5lUHJvbW90aW9uIG1hcHBpbmc9PiBmYWlsZWQ6XCIsIGVycm9yKTtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coXCJFYmFza2V0OiBTYWxlc2ZvcmNlOiBsaW5lUHJvbW90aW9uIG1hcHBpbmc9PiBmYWlsZWQ6XCIsIEpTT04uc3RyaW5naWZ5KGVycm9yKSk7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihlcnJvcik7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHVwZGF0ZVRyYW5zYWN0aW9uUHJvbW90aW9uUHJ0aW9uQ2FsYygpIHtcclxuICAgICAgICBpZiAodGhpcy53ZWJSZXR1cm5PYmplY3QuYmFza2V0LnRyYW5zYWN0aW9uUHJvbW90aW9uICYmIHRoaXMud2ViUmV0dXJuT2JqZWN0LmJhc2tldC50cmFuc2FjdGlvblByb21vdGlvbi5sZW5ndGggPiAwKSB7XHJcblxyXG4gICAgICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC5iYXNrZXQudHJhbnNhY3Rpb25Qcm9tb3Rpb24uZm9yRWFjaCh0ciA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgIHRoaXMudHJhbnNhY3Rpb25Qcm9tb3Rpb25Qcm9kdWN0UG9ydGlvbkNhbGModGhpcy53ZWJSZXR1cm5PYmplY3QgLCB0cilcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgdHJhbnNhY3Rpb25Qcm9tb3Rpb25Qcm9kdWN0UG9ydGlvbkNhbGMoXHJcbiAgICAgICAgdHhEb2M6IFRyYW5zYWN0aW9uRG9jdW1lbnQsXHJcbiAgICAgICAgcHJvbW90aW9uOiBUcmFuc2FjdGlvblByb21vdGlvblxyXG4gICAgICApIHtcclxuICAgICAgICBsZXQgdG90YWwgPSAwO1xyXG4gICAgICAgIGxldCBwZXJjZW50YWdlID0gMDtcclxuICAgICAgICB7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZyhcclxuICAgICAgICAgICAgYGViYXNrZXQ6IHRyYW5zYWN0aW9uUHJvbW90aW9uUHJvZHVjdFBvcnRpb25DYWxjOiB0cm5zYWN0aW9uUHJvbW90aW9uOiAke0pTT04uc3RyaW5naWZ5KFxyXG4gICAgICAgICAgICAgIHByb21vdGlvblxyXG4gICAgICAgICAgICApfWBcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICBpZihwcm9tb3Rpb24udHlwZSA9PT0gUFJPTU9USU9OX1RZUEUuQ09VUE9OICYmIHByb21vdGlvbi5zdWJMZXZlbFR5cGUgPT09IFBST01PVElPTl9MRVZFTC5MSU5FKVxyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICB0eERvYy5iYXNrZXQucHJvZHVjdHMuZm9yRWFjaCgocHJvZHVjdCkgPT4ge1xyXG4gICAgICAgICAgICAgIHByb2R1Y3QgPSB0aGlzLnZhbGlkYXRlUHJvZHVjdEl0ZW1EaXNjb3VudChwcm9kdWN0KTtcclxuICAgICAgXHJcbiAgICAgICAgICAgICAgaWYgKHByb21vdGlvbi50cmlnZ2VyICYmIHByb21vdGlvbi50cmlnZ2VyLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgICAgIHByb21vdGlvbi50cmlnZ2VyLmZvckVhY2goKHQpPT57XHJcbiAgICAgICAgICAgICAgICAgIGlmKHQuaXRlbUxpbmVJZCA9PT0gcHJvZHVjdC5pdGVtTGluZUlkLnRvU3RyaW5nKCkpXHJcbiAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgIHByb2R1Y3QuaXRlbURpc2NvdW50cy50cm5Qcm9tb3Rpb25zUG9ydGlvbiArPSB0LnByb21vdGlvbkFtb3VudDtcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGVsc2VcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgdHhEb2MuYmFza2V0LnByb2R1Y3RzLmZvckVhY2goKHApID0+IHtcclxuICAgICAgICAgICAgaWYgKHByb21vdGlvbi5pdGVtTGluZUlkcyAmJiBwcm9tb3Rpb24uaXRlbUxpbmVJZHMuaW5jbHVkZXMocC5pdGVtTGluZUlkKSAmJiAhcC5naWZ0Q2FyZCkge1xyXG4gICAgICAgICAgICAgIHAgPSB0aGlzLnZhbGlkYXRlUHJvZHVjdEl0ZW1EaXNjb3VudChwKTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHByb2R1Y3RDb250cmlidXRpb25JblRvdGFsID1cclxuICAgICAgICAgICAgICAgIHRoaXMubnVtYmVyVXRpbFNlcnZpY2UudHJpbVRvMkRlY2ltYWwyKHAuaXRlbURpc2NvdW50cy50cm5EaXNjb3VudHNQb3J0aW9uKSArXHJcbiAgICAgICAgICAgICAgICB0aGlzLm51bWJlclV0aWxTZXJ2aWNlLnRyaW1UbzJEZWNpbWFsMihwLml0ZW1EaXNjb3VudHMudHJuUHJvbW90aW9uc1BvcnRpb24pIC1cclxuICAgICAgICAgICAgICAgIHRoaXMubnVtYmVyVXRpbFNlcnZpY2UudHJpbVRvMkRlY2ltYWwyKHAuaXRlbURpc2NvdW50cy5yZWZ1bmRQb3J0aW9uKTtcclxuICAgICAgICAgICAgICB0b3RhbCArPSAocC50b3RhbCAtIHRoaXMubnVtYmVyVXRpbFNlcnZpY2UudHJpbVRvMkRlY2ltYWwyKHByb2R1Y3RDb250cmlidXRpb25JblRvdGFsKSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgY29uc29sZS5sb2coXHJcbiAgICAgICAgICAgIGBlYmFza2V0OiB0cm5zYWN0aW9uUHJvbW90aW9uOiAke0pTT04uc3RyaW5naWZ5KFxyXG4gICAgICAgICAgICAgIHByb21vdGlvblxyXG4gICAgICAgICAgICApfSwgc2VsZWN0ZWQgcHJvZHVjdHMgdG90YWw6ICR7dG90YWx9YFxyXG4gICAgICAgICAgKTtcclxuICAgICAgICAgIHR4RG9jLmJhc2tldC5wcm9kdWN0cy5mb3JFYWNoKChwcm9kdWN0KSA9PiB7XHJcbiAgICAgICAgICAgIHByb2R1Y3QgPSB0aGlzLnZhbGlkYXRlUHJvZHVjdEl0ZW1EaXNjb3VudChwcm9kdWN0KTtcclxuICAgIFxyXG4gICAgICAgICAgICBjb25zdCBwcm9kdWN0Q29udHJpYnV0aW9uSW5Ub3RhbCA9XHJcbiAgICAgICAgICAgIHRoaXMubnVtYmVyVXRpbFNlcnZpY2UudHJpbVRvMkRlY2ltYWwyKHByb2R1Y3QuaXRlbURpc2NvdW50cy50cm5EaXNjb3VudHNQb3J0aW9uKSArXHJcbiAgICAgICAgICAgIHRoaXMubnVtYmVyVXRpbFNlcnZpY2UudHJpbVRvMkRlY2ltYWwyKHByb2R1Y3QuaXRlbURpc2NvdW50cy50cm5Qcm9tb3Rpb25zUG9ydGlvbikgLVxyXG4gICAgICAgICAgICB0aGlzLm51bWJlclV0aWxTZXJ2aWNlLnRyaW1UbzJEZWNpbWFsMihwcm9kdWN0Lml0ZW1EaXNjb3VudHMucmVmdW5kUG9ydGlvbik7XHJcbiAgICBcclxuICAgICAgICAgICAgaWYgKHByb21vdGlvbi5pdGVtTGluZUlkcy5pbmNsdWRlcyhwcm9kdWN0Lml0ZW1MaW5lSWQpKSB7XHJcbiAgICAgICAgICAgICAgcGVyY2VudGFnZSA9ICgocHJvZHVjdC50b3RhbC0gdGhpcy5udW1iZXJVdGlsU2VydmljZS50cmltVG8yRGVjaW1hbDIocHJvZHVjdENvbnRyaWJ1dGlvbkluVG90YWwpKSAvIHRvdGFsKSAqIDEwMDtcclxuICAgICAgICAgICAgICBwcm9kdWN0Lml0ZW1EaXNjb3VudHMudHJuUHJvbW90aW9uc1BvcnRpb24gKz1cclxuICAgICAgICAgICAgICAocHJvbW90aW9uLnByb21vdGlvbkFtb3VudCAqIHBlcmNlbnRhZ2UpIC8gMTAwO1xyXG4gICAgICAgICAgICAgIHByb2R1Y3QuaXRlbURpc2NvdW50cy50cm5Qcm9tb3Rpb25zUG9ydGlvbiA9IHRoaXMubnVtYmVyVXRpbFNlcnZpY2UudHJpbVRvMkRlY2ltYWwyKHByb2R1Y3QuaXRlbURpc2NvdW50cy50cm5Qcm9tb3Rpb25zUG9ydGlvbik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHR4RG9jO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBcclxuICAgICAgcHVibGljIHZhbGlkYXRlUHJvZHVjdEl0ZW1EaXNjb3VudChwcm9kdWN0OiBUUHJvZHVjdCkge1xyXG4gICAgICAgIGlmICghcHJvZHVjdC5pdGVtRGlzY291bnRzKSB7XHJcbiAgICAgICAgICBwcm9kdWN0Lml0ZW1EaXNjb3VudHMgPSB7XHJcbiAgICAgICAgICAgIHRybkRpc2NvdW50c1BvcnRpb246IDAsXHJcbiAgICAgICAgICAgIHRyblByb21vdGlvbnNQb3J0aW9uOiAwLFxyXG4gICAgICAgICAgICByZWZ1bmRQb3J0aW9uOiAwLFxyXG4gICAgICAgICAgfTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHByb2R1Y3Q7XHJcbiAgICAgIH1cclxuICAgIFxyXG4gICAgICBcclxuICAgIGN1c3RvbWVyKCkge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKFwiTWFwcGVyIGxpYnJhcnk6IFdlYlJldHVyblNhbGVzZm9yY2VNYXBwZXJCdWlsZGVyQ2xhc3M6IGN1c3RvbWVyIG1hcHBpbmcgc3RhcnRlZC4uLlwiKTtcclxuICAgICAgICBsZXQgY3VzdG9tZXJPYmogPSB7fSBhcyBDdXN0b21lcjtcclxuICAgICAgICBjdXN0b21lck9iai5lbWFpbCA9IHRoaXMub3JkZXJEZXRhaWxzLmN1c3RvbWVyX2luZm8gJiYgdGhpcy5vcmRlckRldGFpbHMuY3VzdG9tZXJfaW5mby5lbWFpbCA/IHRoaXMub3JkZXJEZXRhaWxzLmN1c3RvbWVyX2luZm8uZW1haWwgOiAnJztcclxuICAgICAgICBjdXN0b21lck9iai5maXJzdE5hbWUgPSB0aGlzLm9yZGVyRGV0YWlscy5iaWxsaW5nX2FkZHJlc3MgJiYgdGhpcy5vcmRlckRldGFpbHMuYmlsbGluZ19hZGRyZXNzLmZpcnN0X25hbWUgPyB0aGlzLm9yZGVyRGV0YWlscy5iaWxsaW5nX2FkZHJlc3MuZmlyc3RfbmFtZSA6ICcnO1xyXG4gICAgICAgIGN1c3RvbWVyT2JqLmxhc3ROYW1lID0gdGhpcy5vcmRlckRldGFpbHMuYmlsbGluZ19hZGRyZXNzICYmIHRoaXMub3JkZXJEZXRhaWxzLmJpbGxpbmdfYWRkcmVzcy5sYXN0X25hbWUgPyB0aGlzLm9yZGVyRGV0YWlscy5iaWxsaW5nX2FkZHJlc3MubGFzdF9uYW1lIDogJyc7XHJcblxyXG4gICAgICAgIGxldCBzaGlwcGluZ0FkZHJlc3MgPSBbXSBhcyBBZGRyZXNzW107XHJcbiAgICAgICAgdGhpcy5vcmRlckRldGFpbHMuc2hpcG1lbnRzLmZvckVhY2goXHJcbiAgICAgICAgICAgIHNoaXBtZW50ID0+IHtcclxuICAgICAgICAgICAgICAgIGxldCBzaGlwcGluZ0FkZHJlc3NPYmogPSB7fSBhcyBBZGRyZXNzO1xyXG4gICAgICAgICAgICAgICAgc2hpcHBpbmdBZGRyZXNzT2JqLmlkID0gc2hpcG1lbnQuc2hpcHBpbmdfYWRkcmVzcyAmJiBzaGlwbWVudC5zaGlwcGluZ19hZGRyZXNzLmlkID8gc2hpcG1lbnQuc2hpcHBpbmdfYWRkcmVzcy5pZCA6ICcnO1xyXG4gICAgICAgICAgICAgICAgc2hpcHBpbmdBZGRyZXNzT2JqLmNvdW50cnlDb2RlID0gc2hpcG1lbnQuc2hpcHBpbmdfYWRkcmVzcyAmJiBzaGlwbWVudC5zaGlwcGluZ19hZGRyZXNzLmNvdW50cnlfY29kZSA/IHNoaXBtZW50LnNoaXBwaW5nX2FkZHJlc3MuY291bnRyeV9jb2RlIDogJyc7XHJcbiAgICAgICAgICAgICAgICBzaGlwcGluZ0FkZHJlc3NPYmouYWRkcmVzczEgPSBzaGlwbWVudC5zaGlwcGluZ19hZGRyZXNzICYmIHNoaXBtZW50LnNoaXBwaW5nX2FkZHJlc3MuYWRkcmVzczEgPyBzaGlwbWVudC5zaGlwcGluZ19hZGRyZXNzLmFkZHJlc3MxIDogJyc7XHJcbiAgICAgICAgICAgICAgICBzaGlwcGluZ0FkZHJlc3NPYmouY2l0eSA9IHNoaXBtZW50LnNoaXBwaW5nX2FkZHJlc3MgJiYgc2hpcG1lbnQuc2hpcHBpbmdfYWRkcmVzcy5jaXR5ID8gc2hpcG1lbnQuc2hpcHBpbmdfYWRkcmVzcy5jaXR5IDogJyc7XHJcbiAgICAgICAgICAgICAgICBzaGlwcGluZ0FkZHJlc3NPYmouY291bnRyeSA9ICcnO1xyXG4gICAgICAgICAgICAgICAgc2hpcHBpbmdBZGRyZXNzT2JqLnBvc3RDb2RlID0gc2hpcG1lbnQuc2hpcHBpbmdfYWRkcmVzcyAmJiBzaGlwbWVudC5zaGlwcGluZ19hZGRyZXNzLnBvc3RhbF9jb2RlID8gc2hpcG1lbnQuc2hpcHBpbmdfYWRkcmVzcy5wb3N0YWxfY29kZSA6ICcnO1xyXG4gICAgICAgICAgICAgICAgc2hpcHBpbmdBZGRyZXNzLnB1c2goc2hpcHBpbmdBZGRyZXNzT2JqKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIClcclxuICAgICAgICBjdXN0b21lck9iai5zaGlwcGluZ0FkZHJlc3MgPSBzaGlwcGluZ0FkZHJlc3M7XHJcblxyXG4gICAgICAgIGxldCBiaWxsaW5nQWRkcmVzcyA9IFtdIGFzIEFkZHJlc3NbXTtcclxuICAgICAgICBsZXQgYmlsbGluZ0FkZHJlc3NPYmogPSB7fSBhcyBBZGRyZXNzO1xyXG4gICAgICAgIGJpbGxpbmdBZGRyZXNzT2JqLmlkID0gdGhpcy5vcmRlckRldGFpbHMuYmlsbGluZ19hZGRyZXNzICYmIHRoaXMub3JkZXJEZXRhaWxzLmJpbGxpbmdfYWRkcmVzcy5pZCA/IHRoaXMub3JkZXJEZXRhaWxzLmJpbGxpbmdfYWRkcmVzcy5pZCA6ICcnO1xyXG4gICAgICAgIGJpbGxpbmdBZGRyZXNzT2JqLmNvdW50cnlDb2RlID0gdGhpcy5vcmRlckRldGFpbHMuYmlsbGluZ19hZGRyZXNzICYmIHRoaXMub3JkZXJEZXRhaWxzLmJpbGxpbmdfYWRkcmVzcy5jb3VudHJ5X2NvZGUgPyB0aGlzLm9yZGVyRGV0YWlscy5iaWxsaW5nX2FkZHJlc3MuY291bnRyeV9jb2RlIDogJyc7XHJcbiAgICAgICAgYmlsbGluZ0FkZHJlc3NPYmouYWRkcmVzczEgPSB0aGlzLm9yZGVyRGV0YWlscy5iaWxsaW5nX2FkZHJlc3MgJiYgdGhpcy5vcmRlckRldGFpbHMuYmlsbGluZ19hZGRyZXNzLmFkZHJlc3MxID8gdGhpcy5vcmRlckRldGFpbHMuYmlsbGluZ19hZGRyZXNzLmFkZHJlc3MxIDogJyc7XHJcbiAgICAgICAgYmlsbGluZ0FkZHJlc3NPYmouY2l0eSA9IHRoaXMub3JkZXJEZXRhaWxzLmJpbGxpbmdfYWRkcmVzcyAmJiB0aGlzLm9yZGVyRGV0YWlscy5iaWxsaW5nX2FkZHJlc3MuY2l0eSA/IHRoaXMub3JkZXJEZXRhaWxzLmJpbGxpbmdfYWRkcmVzcy5jaXR5IDogJyc7XHJcbiAgICAgICAgYmlsbGluZ0FkZHJlc3NPYmouY291bnRyeSA9ICcnO1xyXG4gICAgICAgIGJpbGxpbmdBZGRyZXNzT2JqLnBvc3RDb2RlID0gJyc7XHJcbiAgICAgICAgYmlsbGluZ0FkZHJlc3MucHVzaChiaWxsaW5nQWRkcmVzc09iaik7XHJcbiAgICAgICAgY3VzdG9tZXJPYmouYmlsbGluZ0FkZHJlc3MgPSBiaWxsaW5nQWRkcmVzcztcclxuXHJcbiAgICAgICAgbGV0IHNoaXBtZW50RGV0YWlscyA9IFtdIGFzIFNoaXBtZW50RGV0YWlsc1tdO1xyXG4gICAgICAgIHRoaXMub3JkZXJEZXRhaWxzLnNoaXBtZW50cy5mb3JFYWNoKFxyXG4gICAgICAgICAgICBzaGlwbWVudCA9PiB7XHJcbiAgICAgICAgICAgICAgICBsZXQgc2hpcG1lbnREZXRhaWxzT2JqID0ge30gYXMgU2hpcG1lbnREZXRhaWxzO1xyXG4gICAgICAgICAgICAgICAgc2hpcG1lbnREZXRhaWxzT2JqLmlkID0gc2hpcG1lbnQuc2hpcG1lbnRfaWQgPyBzaGlwbWVudC5zaGlwbWVudF9pZCA6ICcnO1xyXG4gICAgICAgICAgICAgICAgc2hpcG1lbnREZXRhaWxzT2JqLmRlbGl2ZXJ5R3JvdXAgPSBzaGlwbWVudC5zaGlwbWVudF9pZCA/IHNoaXBtZW50LnNoaXBtZW50X2lkIDogJyc7XHJcbiAgICAgICAgICAgICAgICBzaGlwbWVudERldGFpbHMucHVzaChzaGlwbWVudERldGFpbHNPYmopO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgKTtcclxuICAgICAgICBjdXN0b21lck9iai5zaGlwbWVudERldGFpbHMgPSBzaGlwbWVudERldGFpbHM7XHJcblxyXG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0LmN1c3RvbWVyID0gY3VzdG9tZXJPYmo7XHJcbiAgICAgICAgY29uc29sZS5sb2coXCJNYXBwZXIgbGlicmFyeTogV2ViUmV0dXJuU2FsZXNmb3JjZU1hcHBlckJ1aWxkZXJDbGFzczogY3VzdG9tZXIgbWFwcGluZyBlbmRlZC4uLlwiKTtcclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICBleHRlcm5hbFRyYW5zYWN0aW9uRGV0YWlscygpIHtcclxuICAgICAgICBjb25zb2xlLmxvZyhcIk1hcHBlciBsaWJyYXJ5OiBXZWJSZXR1cm5TYWxlc2ZvcmNlTWFwcGVyQnVpbGRlckNsYXNzOiBleHRlcm5hbFRyYW5zYWN0aW9uRGV0YWlscyBtYXBwaW5nIHN0YXJ0ZWQuLi5cIik7XHJcbiAgICAgICAgbGV0IGV4dGVybmFsVHJhbnNhY3Rpb25EZXRhaWxzID0gW10gYXMgZXh0ZXJuYWxUcmFuc2FjdGlvbkRldGFpbHNbXTtcclxuICAgICAgICBpZiAodGhpcy5vcmRlckRldGFpbHMuc2hpcG1lbnRzICYmIHRoaXMub3JkZXJEZXRhaWxzLnNoaXBtZW50cy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMub3JkZXJEZXRhaWxzLnNoaXBtZW50cy5mb3JFYWNoKFxyXG4gICAgICAgICAgICAgICAgc2hpcG1lbnQgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBleHRlcm5hbFRyYW5zYWN0aW9uRGV0YWlsc09iaiA9IHt9IGFzIGV4dGVybmFsVHJhbnNhY3Rpb25EZXRhaWxzO1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCB0cmFuc2FjdGlvbkluZm8gPSB7fSBhcyBUcmFuc2FjdGlvbkluZm87XHJcbiAgICAgICAgICAgICAgICAgICAgZXh0ZXJuYWxUcmFuc2FjdGlvbkRldGFpbHNPYmoudW5pcXVlSWQgPSB0aGlzLm9yZGVyRGV0YWlscy5vcmRlcl9ubyA/IHRoaXMub3JkZXJEZXRhaWxzLm9yZGVyX25vIDogJyc7XHJcbiAgICAgICAgICAgICAgICAgICAgZXh0ZXJuYWxUcmFuc2FjdGlvbkRldGFpbHNPYmoucHJvdmlkZXJUeXBlID0gUFJPVklERVJTLlNBTEVTRk9SQ0U7XHJcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNhY3Rpb25JbmZvLnNoaXBwaW5nSWQgPSBzaGlwbWVudC5zaGlwcGluZ19tZXRob2QgJiYgc2hpcG1lbnQuc2hpcHBpbmdfbWV0aG9kLmlkID8gc2hpcG1lbnQuc2hpcHBpbmdfbWV0aG9kLmlkIDogJyc7XHJcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNhY3Rpb25JbmZvLmV4dGVybmFsU2hpcHBpbmdJZCA9IHNoaXBtZW50LnNoaXBtZW50X2lkID8gc2hpcG1lbnQuc2hpcG1lbnRfaWQgOiAnJztcclxuICAgICAgICAgICAgICAgICAgICBleHRlcm5hbFRyYW5zYWN0aW9uRGV0YWlsc09iai5kZXRhaWxzID0gdHJhbnNhY3Rpb25JbmZvO1xyXG4gICAgICAgICAgICAgICAgICAgIGV4dGVybmFsVHJhbnNhY3Rpb25EZXRhaWxzLnB1c2goZXh0ZXJuYWxUcmFuc2FjdGlvbkRldGFpbHNPYmopO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC5leHRlcm5hbFRyYW5zYWN0aW9uRGV0YWlscyA9IGV4dGVybmFsVHJhbnNhY3Rpb25EZXRhaWxzO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKFwiTWFwcGVyIGxpYnJhcnk6IFdlYlJldHVyblNhbGVzZm9yY2VNYXBwZXJCdWlsZGVyQ2xhc3M6IGV4dGVybmFsVHJhbnNhY3Rpb25EZXRhaWxzIG1hcHBpbmcgZW5kZWQuLi5cIik7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgYmFza2V0U3VtbWFyeSgpIHtcclxuICAgICAgICBjb25zb2xlLmxvZyhcIk1hcHBlciBsaWJyYXJ5OiBXZWJSZXR1cm5TYWxlc2ZvcmNlTWFwcGVyQnVpbGRlckNsYXNzOiBiYXNrZXRTdW1tYXJ5IG1hcHBpbmcgc3RhcnRlZC4uLlwiKTtcclxuICAgICAgICBsZXQgYmFza2V0U3VtbWFyeSA9IHt9IGFzIEJhc2tldFN1bW1hcnk7XHJcbiAgICAgICAgbGV0IGJhc2tldFN1bW1hcnlXZWJPcmRlciA9IHt9IGFzIEJhc2tldFN1bW1hcnlEZXRhaWxzO1xyXG4gICAgICAgIGNvbnN0IGxpbmVQcm9tb3Rpb25Ub3RhbCA9IHRoaXMud2ViUmV0dXJuT2JqZWN0LmJhc2tldC5saW5lUHJvbW90aW9uLm1hcChsaW5lUHJvbW90aW9uID0+IGxpbmVQcm9tb3Rpb24ucHJvbW90aW9uQW1vdW50KS5yZWR1Y2UoKGFjY3VtdWxhdG9yLCBjdXJyZW50VmFsdWUpID0+IGFjY3VtdWxhdG9yICsgY3VycmVudFZhbHVlLCAwKTtcclxuICAgICAgICBjb25zdCB0cmFuc2FjdGlvblByb21vdGlvblRvdGFsID0gdGhpcy53ZWJSZXR1cm5PYmplY3QuYmFza2V0LnRyYW5zYWN0aW9uUHJvbW90aW9uLm1hcCh0cmFuc2FjdGlvblByb21vdGlvbiA9PiB0cmFuc2FjdGlvblByb21vdGlvbi5wcm9tb3Rpb25BbW91bnQpLnJlZHVjZSgoYWNjdW11bGF0b3IsIGN1cnJlbnRWYWx1ZSkgPT4gYWNjdW11bGF0b3IgKyBjdXJyZW50VmFsdWUsIDApO1xyXG4gICAgICAgIGJhc2tldFN1bW1hcnkuZGlzY291bnRUb3RhbCA9IGxpbmVQcm9tb3Rpb25Ub3RhbCArIHRyYW5zYWN0aW9uUHJvbW90aW9uVG90YWw7XHJcbiAgICAgICAgYmFza2V0U3VtbWFyeS5WQVRUb3RhbCA9IHRoaXMub3JkZXJEZXRhaWxzLnRheF90b3RhbCA/IHRoaXMub3JkZXJEZXRhaWxzLnRheF90b3RhbCA6IDA7XHJcbiAgICAgICAgYmFza2V0U3VtbWFyeS5zYWxlVG90YWwgPSB0aGlzLm9yZGVyRGV0YWlscy5vcmRlcl90b3RhbCA/IHRoaXMub3JkZXJEZXRhaWxzLm9yZGVyX3RvdGFsIDogMDtcclxuICAgICAgICBiYXNrZXRTdW1tYXJ5LmJhc2tldFRvdGFsID0gdGhpcy5vcmRlckRldGFpbHMub3JkZXJfdG90YWwgPyB0aGlzLm9yZGVyRGV0YWlscy5vcmRlcl90b3RhbCA6IDA7XHJcbiAgICAgICAgYmFza2V0U3VtbWFyeS50b3RhbEl0ZW1zID0gdGhpcy5vcmRlckRldGFpbHMucHJvZHVjdF9pdGVtcyAmJiB0aGlzLm9yZGVyRGV0YWlscy5wcm9kdWN0X2l0ZW1zLmxlbmd0aCA+IDAgPyB0aGlzLm9yZGVyRGV0YWlscy5wcm9kdWN0X2l0ZW1zLmxlbmd0aCA6IDA7XHJcbiAgICAgICAgYmFza2V0U3VtbWFyeS5zaGlwcGluZ1RvdGFsID0gdGhpcy5vcmRlckRldGFpbHMuc2hpcHBpbmdfdG90YWwgPyB0aGlzLm9yZGVyRGV0YWlscy5zaGlwcGluZ190b3RhbCA6IDA7XHJcbiAgICAgICAgYmFza2V0U3VtbWFyeS5iYXNrZXRUb3RhbFdpdGhTaGlwcGluZ1RvdGFsID0gdGhpcy5vcmRlckRldGFpbHMub3JkZXJfdG90YWwgPyB0aGlzLm9yZGVyRGV0YWlscy5vcmRlcl90b3RhbCA6IDA7XHJcbiAgICAgICAgYmFza2V0U3VtbWFyeVdlYk9yZGVyLnNoaXBwaW5nVG90YWwgPSB0aGlzLm9yZGVyRGV0YWlscy5zaGlwcGluZ190b3RhbCA/IHRoaXMub3JkZXJEZXRhaWxzLnNoaXBwaW5nX3RvdGFsIDogMDtcclxuICAgICAgICBiYXNrZXRTdW1tYXJ5V2ViT3JkZXIuYmFza2V0VG90YWxXaXRoU2hpcHBpbmdUb3RhbCA9IHRoaXMub3JkZXJEZXRhaWxzLm9yZGVyX3RvdGFsID8gdGhpcy5vcmRlckRldGFpbHMub3JkZXJfdG90YWwgOiAwO1xyXG4gICAgICAgIGJhc2tldFN1bW1hcnkud2ViT3JkZXIgPSBiYXNrZXRTdW1tYXJ5V2ViT3JkZXI7XHJcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3QuYmFza2V0U3VtbWFyeSA9IGJhc2tldFN1bW1hcnk7XHJcbiAgICAgICAgY29uc29sZS5sb2coXCJNYXBwZXIgbGlicmFyeTogV2ViUmV0dXJuU2FsZXNmb3JjZU1hcHBlckJ1aWxkZXJDbGFzczogYmFza2V0U3VtbWFyeSBtYXBwaW5nIGVuZGVkLi4uXCIpO1xyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIGRldmljZUlkKGRldmljZUlkKSB7XHJcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3QuZGV2aWNlSWQgPSBkZXZpY2VJZDtcclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICB0ZXJtaW5hbElkKHRlcm1pbmFsSWQpIHtcclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC50ZXJtaW5hbElkID0gdGVybWluYWxJZDtcclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICBvcmdDb2RlKG9yZ0NvZGUpIHtcclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC5vcmdDb2RlID0gb3JnQ29kZTtcclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICBzdG9yZUlkKHN0b3JlSWQpIHtcclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC5zdG9yZUlkID0gc3RvcmVJZDtcclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICBzdG9yZU5vZGVJZChzdG9yZU5vZGVJZDogc3RyaW5nKSB7XHJcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3Quc3RvcmVOb2RlSWQgPSBzdG9yZU5vZGVJZDtcclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICBzdG9yZU5vZGVTdHJ1Y3R1cmUoc3RvcmVOb2RlU3RydWN0dXJlOiBzdHJpbmcpIHtcclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC5zdG9yZU5vZGVTdHJ1Y3R1cmUgPSBzdG9yZU5vZGVTdHJ1Y3R1cmU7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgZG9jSWQoZG9jSWQpIHtcclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC5pZCA9IGRvY0lkO1xyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIHVwZGF0ZVVzZXJJRCh1c2VySUQ6IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0LnVzZXJJZCA9IHVzZXJJRDtcclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICB1cGRhdGVVc2VyTmFtZShuYW1lKSB7XHJcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3QudXNlck5hbWUgPSBuYW1lO1xyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIGJ1aWxkKCkge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKFwiTWFwcGVyIGxpYnJhcnk6IFdlYlJldHVyblNhbGVzZm9yY2VNYXBwZXJCdWlsZGVyQ2xhc3M6IG1hcHBpbmcgZG9uZS4uLlwiKTtcclxuICAgICAgICByZXR1cm4gdGhpcy53ZWJSZXR1cm5PYmplY3Q7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0VVRDRGF0ZVRpbWUoZGF0ZSkge1xyXG4gICAgICAgIGlmIChkYXRlKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBuZXcgRGF0ZShkYXRlKS50b0lTT1N0cmluZygpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iXX0=
|
|
@@ -26,4 +26,4 @@ var MapperLibraryComponent = /** @class */ (function () {
|
|
|
26
26
|
return MapperLibraryComponent;
|
|
27
27
|
}());
|
|
28
28
|
export { MapperLibraryComponent };
|
|
29
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwcGVyLWxpYnJhcnkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHBtY3JldGFpbC9tYXBwZXItbGlicmFyeS8iLCJzb3VyY2VzIjpbImxpYi9tYXBwZXItbGlicmFyeS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBRWxEO0lBWUU7SUFBZ0IsQ0FBQzs7OztJQUVqQix5Q0FBUTs7O0lBQVI7SUFDQSxDQUFDOztnQkFmRixTQUFTLFNBQUM7b0JBQ1QsUUFBUSxFQUFFLG9CQUFvQjtvQkFDOUIsUUFBUSxFQUFFLHNEQUlUO2lCQUdGOzs7O0lBUUQsNkJBQUM7Q0FBQSxBQWpCRCxJQWlCQztTQVBZLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1tYXBwZXItbGlicmFyeScsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxwPlxyXG4gICAgICBtYXBwZXItbGlicmFyeSB3b3JrcyFcclxuICAgIDwvcD5cclxuICBgLFxyXG4gIHN0eWxlczogW1xyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIE1hcHBlckxpYnJhcnlDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICB9XHJcblxyXG59XHJcbiJdfQ==
|
|
@@ -1435,4 +1435,4 @@ var PROMOTION_TYPE = {
|
|
|
1435
1435
|
COUPON: "COUPON",
|
|
1436
1436
|
};
|
|
1437
1437
|
export { PROMOTION_TYPE };
|
|
1438
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwcGVyLWxpYnJhcnkubW9kZWwuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AcG1jcmV0YWlsL21hcHBlci1saWJyYXJ5LyIsInNvdXJjZXMiOlsibGliL21hcHBlci1saWJyYXJ5Lm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUVBLElBQVksZ0JBQWdCO0lBQzFCLElBQUksUUFBUztJQUNiLE1BQU0sVUFBVztJQUNqQixXQUFXLGVBQWdCO0lBQzNCLGFBQWEsaUJBQWtCO0lBQy9CLElBQUksUUFBUztJQUNiLFdBQVcsZUFBZ0I7RUFDNUI7Ozs7O0FBRUQsa0NBS0M7OztJQUpDLDJDQUE0Qjs7SUFDNUIsNENBQTZCOztJQUM3QixxQ0FBc0I7O0lBQ3RCLDRDQUE4Qjs7O0FBR2hDLElBQVksZ0JBQWdCO0lBQzFCLFFBQVEsR0FBSTtJQUNaLFNBQVMsR0FBSTtJQUNiLGtCQUFrQixHQUFJO0lBQ3RCLGFBQWEsR0FBSTtFQUNsQjs7Ozs7Ozs7O0FBRUQsbUNBaUJDOzs7SUFoQkMsbUNBQW9COztJQUNwQiw0QkFBWTs7SUFDWixpQ0FBaUI7O0lBQ2pCLHNDQUF1Qjs7SUFDdkIscUNBQTRCOztJQUM1Qix1Q0FBZ0M7O0lBQ2hDLGlDQUFvQjs7SUFDcEIseUNBQTBCOztJQUMxQixrREFBbUM7O0lBQ25DLGlDQUFtQjs7SUFDbkIsc0NBQXVCOztJQUN2Qix1Q0FBd0I7O0lBQ3hCLGtEQUFtQzs7SUFDbkMsa0NBQW9COztJQUNwQiwrQkFBaUI7O0lBQ2pCLHdDQUEwQjs7Ozs7O0FBTTVCLDZCQXlFQzs7O0lBeEVDLDZCQUFvQjs7SUFDcEIseUJBQWU7O0lBQ2YsMkJBQWlCOztJQUNqQix3QkFBYzs7SUFDZCwyQkFBaUI7O0lBQ2pCLDJCQUFpQjs7SUFDakIsa0NBQXdCOztJQUN4Qiw0QkFBa0I7O0lBQ2xCLDhCQUFvQjs7SUFDcEIsdUJBQWM7O0lBQ2QsNEJBQW9COztJQUNwQixvQ0FBNEI7O0lBQzVCLHVCQUFhOztJQUNiLHVCQUFhOztJQUNiLHlCQUFlOztJQUNmLCtCQUFxQjs7SUFDckIsNEJBQWtCOztJQUNsQixnQ0FBK0I7O0lBQy9CLDBCQUFnQjs7SUFDaEIsd0JBQWU7O0lBQ2YseUJBQWU7O0lBQ2YsOEJBQW9COztJQUNwQixpQ0FBdUI7O0lBQ3ZCLHdCQUFjOztJQUNkLGdDQUF3Qjs7SUFDeEIsOEJBQXFCOztJQUNyQixrQ0FBeUI7O0lBQ3pCLG1DQUEwQjs7SUFDMUIsK0JBQTRCOztJQUM1QiwyQkFBb0I7O0lBTXBCLDRDQUFtQzs7SUFDbkMsaUNBQXdCOztJQUN4QixtQ0FBMEI7O0lBQzFCLGdDQUE0Qjs7SUFFNUIsdUNBQThCOztJQUM5QixpQ0FBd0I7O0lBQ3hCLHlDQUFnQzs7SUFDaEMscUNBQTRCOztJQUM1Qix3Q0FBK0I7O0lBQy9CLDJCQUFtQjs7SUFFbkIsK0JBQXNCOztJQUV0QixtQ0FBMEI7O0lBQzFCLDZCQUF5Qjs7SUFDekIsK0JBQTZCOztJQUM3QiwyQkFBbUI7O0lBR25CLDZCQUFtQjs7SUFDbkIsOEJBQW9COztJQUNwQiw4QkFBb0I7O0lBQ3BCLDRCQUFrQjs7SUFDbEIsNEJBQWtCOztJQUNsQiw2QkFBNEI7O0lBQzVCLHFCQUFXOztJQUNYLG1DQUF5Qjs7SUFHekIsNkJBQXFCOztJQUNyQixnQ0FBc0I7O0lBQ3RCLDBDQUFpQzs7SUFDakMsaUNBQXdCOztJQUN4QixnQ0FBdUI7O0lBQ3ZCLG9DQUFrQzs7SUFDbEMsMkJBQW1COzs7OztBQUVyQiw4QkFHQzs7O0lBRkMsd0JBQWE7O0lBQ2IseUJBQWE7Ozs7O0FBR2YsOEJBTUM7OztJQUxDLDhCQUFtQjs7SUFDbkIsOEJBQW1COztJQUNuQiwwQkFBZTs7SUFDZiw0QkFBaUI7O0lBQ2pCLDRCQUFvQjs7Ozs7QUFHdEIsZ0NBTUM7OztJQUxDLHdCQUFXOztJQUNYLDhCQUFpQjs7SUFDakIsMEJBQWE7O0lBQ2IsZ0NBQW1COztJQUNuQiw0QkFBZ0I7Ozs7O0FBR2xCLGtDQUlDOzs7SUFIQyw0QkFBYTs7SUFDYixtQ0FBb0I7O0lBQ3BCLDZCQUFjOzs7OztBQUdoQixtQ0FLQzs7O0lBSkMsNkJBQWE7O0lBQ2IsOEJBQWM7O0lBQ2QsbUNBQW9COztJQUNwQixvQ0FBb0I7Ozs7OztBQU90Qiw0QkFpQkM7OztJQWhCQyw4QkFBc0I7O0lBQ3RCLDBCQUFvQjs7SUFDcEIscUNBQTJCOztJQUMzQiwwQkFBaUI7O0lBQ2pCLHVCQUFjOztJQUNkLDJCQUFrQjs7SUFDbEIsK0JBQXVCOztJQUN2QiwrQkFBdUI7O0lBQ3ZCLHNDQUE4Qjs7SUFDOUIsOEJBQXFCOztJQUNyQiw2QkFBcUI7O0lBQ3JCLDZCQUFxQjs7SUFDckIsc0NBQThDOztJQUM5QywwQkFBZTs7SUFDZiwwQkFBc0I7O0lBQ3RCLDZCQUFxQjs7Ozs7O0FBUXZCLDJCQU1DOzs7SUFMQyxvQkFBWTs7SUFDWix3QkFBZ0I7O0lBQ2hCLDJCQUFtQjs7SUFDbkIsNkJBQXFCOztJQUNyQix5QkFBaUI7Ozs7OztBQU1uQiw0QkFPQzs7O0lBTkMsK0JBQWdCOztJQUNoQiw2QkFBYTs7SUFDYixpQ0FBaUI7O0lBQ2pCLG1DQUFvQjs7SUFDcEIsK0JBQWU7O0lBQ2YsaUNBQWlCOzs7Ozs7QUFNbkIsa0NBZ0JDOzs7SUFmQyxrQ0FBbUI7O0lBQ25CLHNDQUF1Qjs7SUFDdkIsb0NBQXFCOztJQUVyQiw0QkFBYzs7SUFDZCxpQ0FBa0I7O0lBQ2xCLDJDQUE2Qjs7SUFDN0IsNENBQW9DOztJQUNwQywrQ0FBaUM7O0lBQ2pDLCtDQUFpQzs7SUFDakMsMkNBQTZCOztJQUM3Qix5REFBaUQ7O0lBQ2pELG9EQUFzQzs7SUFDdEMsb0RBQXNDOztJQUN0QywrQ0FBZ0M7Ozs7OztBQU1sQyxrQ0FJQzs7O0lBSEMsOEJBQWU7O0lBQ2Ysd0NBQXlCOztJQUN6QixzQ0FBc0I7Ozs7OztBQU14QixvQ0FZQzs7O0lBVkMsaUNBQW1COztJQUNuQixvQ0FBbUI7O0lBQ25CLHFDQUFvQjs7SUFDcEIscUNBQW9COztJQUNwQix1Q0FBc0I7O0lBQ3RCLHlDQUF3Qjs7SUFDeEIsOEJBQWE7O0lBQ2IsdUNBQXNCOztJQUN0Qiw0Q0FBMEI7O0lBQzFCLGtDQUFtQjs7Ozs7O0FBTXJCLDZCQVNDOzs7SUFSQyw2QkFBbUI7O0lBQ25CLDJCQUFrQjs7SUFDbEIsZ0NBQXVCOztJQUN2QixzQ0FBNEI7O0lBQzVCLGtDQUF3Qjs7SUFDeEIsaUNBQXdCOztJQUN4Qiw0Q0FBa0M7O0lBQ2xDLDhCQUFvQjs7Ozs7O0FBTXRCLDBDQVlDOzs7SUFYQywyQ0FBb0I7O0lBQ3BCLG9DQUFhOztJQUNiLCtDQUF3Qjs7SUFDeEIsMkNBQW9COztJQUNwQiw2Q0FBc0I7O0lBQ3RCLDZDQUFzQjs7SUFDdEIsMkNBQXNCOztJQUN0QixvQ0FBYTs7SUFDYiw0Q0FBNkI7O0lBQzdCLHVDQUFtQjs7SUFDbkIsMENBQW1COzs7OztBQUdyQix5Q0FTQzs7O0lBUkMseUNBQW9COztJQUNwQiwrQ0FBMEI7O0lBQzFCLDBEQUFxQzs7SUFDckMsMENBQXFCOztJQUNyQiw2Q0FBd0I7O0lBQ3hCLHdEQUFtQzs7SUFDbkMsa0RBQTZCOztJQUM3Qiw4Q0FBMEI7Ozs7O0FBRzVCLG1DQUtDOzs7SUFKQyxrQ0FBa0I7O0lBQ2xCLGdDQUFnQjs7SUFDaEIsMENBQTBCOztJQUMxQix5Q0FBd0I7Ozs7O0FBRzFCLDBDQUdDOzs7SUFGQyxpREFBMEI7O0lBQzFCLCtDQUFpQzs7Ozs7QUFHbkMsa0NBRUM7OztJQURDLDhCQUEyQjs7Ozs7QUFHN0IsdUNBSUM7OztJQUhDLHdDQUFvQjs7SUFDcEIsa0NBQWlCOztJQUNqQixxQ0FBb0I7Ozs7O0FBR3RCLDhCQUdDOzs7SUFGQyx3QkFBYTs7SUFDYix5QkFBYTs7Ozs7QUFHZix5Q0EyQ0M7OztJQTFDQyw0Q0FBdUI7O0lBQ3ZCLDJDQUFzQjs7SUFDdEIsbURBQTZCOztJQUM3Qiw2Q0FBd0I7O0lBQ3hCLHVDQUFrQjs7SUFDbEIsc0NBQWdCOztJQUNoQixzQ0FBZ0I7O0lBQ2hCLDBDQUFtQjs7SUFDbkIsaURBQTBCOztJQUMxQix1Q0FBaUI7O0lBQ2pCLHlDQUFrQjs7SUFDbEIsK0NBQXlCOztJQUN6QixxQ0FBZTs7SUFDZixxQ0FBZ0I7O0lBQ2hCLHVDQUFpQjs7SUFDakIsdUNBQW9COztJQUNwQixxQ0FBWTs7SUFDWiw0Q0FBNkI7O0lBRTdCLDJDQUFxQjs7SUFDckIsMkNBQXNCOztJQUN0QixpREFBNEI7O0lBQzVCLDZDQUFxQjs7SUFDckIsbUNBQWM7O0lBQ2QsOENBQXlCOztJQUN6Qix3Q0FBbUI7O0lBQ25CLHdDQUFtQjs7SUFDbkIsK0NBQTBCOztJQUMxQixpQ0FBWTs7SUFDWix3Q0FBbUI7O0lBQ25CLHlDQUFvQjs7SUFDcEIsZ0RBQTJCOztJQUMzQix1Q0FBd0I7O0lBQ3hCLDhDQUF3Qjs7SUFDeEIsaURBQTRCOztJQUM1QiwwQ0FBMEI7O0lBQzFCLGlEQUE0Qjs7SUFDNUIsNENBQXVCOztJQUN2Qix3REFBK0I7O0lBQy9CLHdDQUFtQjs7SUFDbkIseURBQTBEOztJQUMxRCw0Q0FBbUI7Ozs7O0FBR3JCLGlDQUlDOzs7SUFGQyxpQ0FBbUI7O0lBQ25CLDZCQUFjOzs7OztBQUdoQiwrQ0FTQzs7O0lBUkMsNkNBQW9COztJQUNwQixpREFBNkI7O0lBQzdCLGtEQUFnQzs7SUFDaEMseURBQTZDOztJQUM3Qyx3REFBMkM7O0lBQzNDLGtEQUE2Qjs7SUFDN0IsaURBQTJCOztJQUMzQixvREFBbUM7Ozs7O0FBRXJDLG1DQVlDOzs7SUFYQyxtQ0FBb0I7O0lBQ3BCLGtDQUFtQjs7SUFDbkIsaUNBQWtCOztJQUNsQixzQ0FBdUI7O0lBQ3ZCLG9DQUFxQjs7SUFDckIsb0NBQW9COztJQUNwQixzQ0FBdUI7O0lBQ3ZCLHFEQUFzQzs7SUFDdEMsZ0NBQStCOztJQUMvQixpQ0FBZ0M7O0lBQ2hDLDRCQUEyQjs7Ozs7QUFHN0IsMENBU0M7OztJQVJDLDBDQUFvQjs7SUFDcEIseUNBQW1COztJQUNuQix3Q0FBa0I7O0lBQ2xCLDZDQUF1Qjs7SUFDdkIsMkNBQXFCOztJQUNyQiwyQ0FBb0I7O0lBQ3BCLDZDQUF1Qjs7SUFDdkIsNERBQXNDOzs7OztBQUd4Qyx5Q0FNQzs7O0lBTEMsNkNBQXNCOztJQUN0QiwyQ0FBb0I7O0lBQ3BCLHlDQUFrQjs7SUFDbEIsdUNBQXdCOztJQUN4QiwwQ0FBc0I7Ozs7O0FBR3hCLDZCQVdDOzs7SUFWQywyQkFBcUI7O0lBQ3JCLCtCQUE0Qjs7SUFDNUIsMkJBQW9COztJQUNwQixnQ0FBK0I7O0lBQy9CLHVDQUE2Qzs7SUFDN0Msc0NBQTJDOztJQUMzQywrQkFBMkI7O0lBQzNCLGtDQUFtQzs7Ozs7QUFLckMsK0JBTUc7OztJQUxELCtCQUFtQjs7SUFDbkIsK0JBQW9COztJQUNwQiwyQkFBZ0I7O0lBQ2hCLDZCQUFrQjs7SUFDbEIsNkJBQXNCOzs7OztBQUd0QiwrQkFHQzs7O0lBRkQsK0JBQWtCOztJQUNqQiw2QkFBZTs7Ozs7QUFHbEIsOEJBOENDOzs7SUE3Q0MsOEJBQW1COztJQUNuQix1QkFBWTs7SUFDWiwrQkFBb0I7O0lBQ3BCLDZCQUFvQjs7SUFDcEIseUJBQWM7O0lBQ2QsMkJBQWlCOztJQUNqQiw4QkFBb0I7O0lBQ3BCLDRCQUFpQjs7SUFDakIsb0NBQTBCOztJQUMxQiwrQ0FBb0M7O0lBQ3BDLDRCQUFtQjs7SUFDbkIsaUNBQXVCOztJQUN2QixrQ0FBdUI7O0lBQ3ZCLDZDQUFrQzs7SUFDbEMsb0NBQTBCOztJQUMxQixrQ0FBdUI7O0lBQ3ZCLDJCQUFpQjs7SUFDakIsNEJBQW9COztJQUNwQiwyQkFBa0I7O0lBQ2xCLDRCQUFtQjs7SUFDbkIsb0NBQXlCOztJQUN6QixnQ0FBc0I7O0lBRXRCLGlDQUE2Qjs7SUFDN0IsbUNBQTBCOztJQUcxQixpQ0FBcUI7O0lBQ3JCLDJDQUErQjs7SUFDL0Isa0NBQXVCOztJQUN2QixpQ0FBc0I7O0lBQ3RCLHdDQUE4Qjs7SUFDOUIsa0NBQXdCOztJQUN4QiwwQ0FBZ0M7O0lBQ2hDLHNDQUE2Qjs7SUFDN0IseUNBQStCOztJQUMvQiw0QkFBa0I7O0lBQ2xCLDRCQUFpQjs7SUFDakIsOEJBQW9COztJQUNwQiw0QkFBbUI7O0lBR25CLGdDQUFpQjs7SUFFakIsOEJBQTRCOzs7OztBQUc5QixtQ0FJQzs7O0lBSEMsNENBQTJCOztJQUMzQiw2Q0FBNEI7O0lBQzVCLHNDQUFxQjs7Ozs7QUFLdkIsOEJBY0M7OztJQWJDLHNCQUFXOztJQUNYLHlCQUFlOztJQUNmLDZCQUFrQjs7SUFDbEIsNEJBQWlCOztJQUNqQix5QkFBYzs7SUFDZCw0QkFBaUI7O0lBQ2pCLDZCQUFtQjs7SUFDbkIsa0NBQXFDOztJQUNyQyxtQ0FBc0M7O0lBQ3RDLG1DQUFvQzs7SUFDcEMsaUNBQXVCOztJQUN2QixzQ0FBNkI7O0lBQzdCLDhCQUFvQjs7Ozs7QUFHdEIsNkJBV0U7OztJQVRBLHFCQUFZOztJQUNaLDhCQUFxQjs7SUFDckIsMkJBQWtCOztJQUNsQiwyQkFBa0I7O0lBQ2xCLDJCQUFrQjs7SUFDbEIsdUJBQWM7O0lBQ2QseUJBQWdCOztJQUNoQiwyQkFBa0I7O0lBQ2xCLDBCQUFpQjs7Ozs7QUFHbEIscUNBR0E7OztJQUZDLDZCQUFZOztJQUNaLHdDQUF1Qjs7Ozs7QUFHekIsb0NBdUJDOzs7SUF0QkMsb0NBQWlCOztJQUNqQiw4QkFBYTs7SUFDYixnQ0FBZ0I7O0lBQ2hCLGtDQUFpQjs7SUFDakIsZ0NBQWU7O0lBQ2Ysa0NBQWtCOztJQUNsQiw2QkFBYTs7SUFDYixrQ0FBa0I7O0lBQ2xCLHlDQUF5Qjs7SUFDekIsNkJBQWE7O0lBQ2IsNkJBQWE7O0lBQ2IsNkJBQWE7O0lBQ2IseUNBQXlCOztJQUN6Qiw2QkFBYTs7SUFDYixtQ0FBbUI7O0lBQ25CLG9DQUFvQjs7SUFDcEIsOENBQTZCOztJQUM3Qiw0Q0FBNEI7O0lBQzVCLHFDQUFvQjs7SUFDcEIseUNBQXVCOztJQUN2QixxQ0FBbUI7O0lBQ25CLHFDQUFvQjs7Ozs7QUFHdEIsa0NBSUM7OztJQUZDLGdDQUFxQjs7SUFDckIsMENBQTJCOzs7OztBQUc3QixxQ0FNQzs7O0lBTEMsa0NBQWU7O0lBQ2YsOEJBQWE7O0lBQ2Isb0NBQWtCOztJQUNsQixpQ0FBZTs7SUFDZixvQ0FBaUI7Ozs7O0FBR25CLDZCQVFDOzs7SUFORyw2QkFBbUI7O0lBQ25CLGdDQUFzQjs7SUFDdEIsK0JBQXFCOztJQUNyQixzQkFBWTs7SUFDWiwwQkFBaUI7O0lBQ2pCLHlCQUFjOzs7QUFHbEIsSUFBWSxZQUFZO0lBQ3RCLE9BQU8sV0FBWTtJQUNuQixNQUFNLFVBQVc7RUFDbEI7Ozs7O0FBRUQscUNBR0M7OztJQUZDLHFDQUFvQjs7SUFDcEIsNkNBQTJCOzs7OztBQUc3QixnREFJQzs7O0lBSEMsOENBQWtCOztJQUNsQixrREFBc0I7O0lBQ3RCLDZDQUF5Qjs7O0FBRzNCLElBQVksaUJBQWlCO0lBQzNCLE9BQU8sV0FBWTtFQUNwQjs7Ozs7QUFFRCxtQ0FNQzs7O0lBTEMsOEJBQWU7O0lBQ2YsNkJBQWM7O0lBQ2QsZ0NBQWlCOztJQUNqQiw2QkFBYzs7SUFDZCxnQ0FBcUI7Ozs7O0FBR3ZCLGdDQUVDOzs7SUFEQyxnQ0FBb0I7Ozs7O0FBR3RCLHFDQWlCQzs7O0lBaEJDLGdDQUFlOztJQUNmLGdDQUFlOztJQUNmLG1DQUFrQjs7SUFDbEIsK0JBQWM7O0lBQ2QsdUNBQXNCOztJQUN0QixxQ0FBb0I7O0lBQ3BCLG9DQUFtQjs7SUFDbkIsNkJBQVk7O0lBQ1osb0NBQW1COztJQUNuQixnQ0FBZTs7SUFDZixxQ0FBb0I7O0lBQ3BCLGlDQUFnQjs7SUFDaEIsa0NBQWlCOztJQUNqQiwwQ0FBeUI7O0lBQ3pCLHFDQUFvQjs7SUFDcEIsc0NBQXFCOzs7OztBQUd2QixrQ0FJQzs7O0lBSEMsNkJBQWU7O0lBQ2YsbUNBQXFCOztJQUNyQiw2QkFBZTs7Ozs7QUFHakIsb0NBSUM7OztJQUhDLCtCQUFlOztJQUNmLGtDQUFrQjs7SUFDbEIsbUNBQW1COzs7OztBQUdyQixxQ0FHQzs7O0lBRkMsZ0NBQWU7O0lBQ2YsK0JBQWM7Ozs7O0FBR2hCLGlDQXFCQzs7O0lBcEJDLDRCQUFlOztJQUNmLG1DQUFzQjs7SUFDdEIsaUNBQW9COztJQUNwQiw4Q0FBa0M7O0lBQ2xDLDJCQUFlOztJQUNmLDhCQUFpQjs7SUFDakIsZ0NBQW1COztJQUNuQiw0QkFBZTs7SUFDZix3Q0FBc0M7O0lBQ3RDLGdEQUFtQzs7SUFDbkMsaURBQW9DOztJQUNwQyxpQ0FBb0I7O0lBQ3BCLG1DQUFzQjs7SUFDdEIsK0JBQWtCOztJQUNsQixrQ0FBcUI7O0lBQ3JCLDBCQUFhOztJQUNiLGdDQUFtQjs7SUFDbkIsbUNBQXNCOztJQUN0QiwrQkFBa0I7O0lBQ2xCLHNDQUF3Qjs7Ozs7QUFHMUIsb0NBV0M7OztJQVZDLCtCQUFlOztJQUNmLHFDQUFxQjs7SUFDckIsNEJBQVk7O0lBQ1osOEJBQWM7O0lBQ2QsK0JBQWU7O0lBQ2YsdURBQXVDOztJQUN2QyxnREFBZ0M7O0lBQ2hDLG1DQUFvQjs7SUFDcEIsOENBQStCOztJQUMvQiwwQ0FBMEI7Ozs7O0FBRzVCLDhCQWlCQzs7O0lBaEJDLHlCQUFlOztJQUNmLGtEQUF3Qzs7SUFDeEMsK0NBQXFDOztJQUNyQyx3QkFBZTs7SUFDZix5Q0FBK0I7O0lBQy9CLHFDQUEyQjs7SUFDM0IsaUNBQXVCOztJQUN2QiwrQkFBcUI7O0lBQ3JCLGtDQUF3Qjs7SUFDeEIsb0NBQW1DOztJQUNuQyxtQ0FBaUM7O0lBQ2pDLG1DQUF5Qjs7SUFDekIsa0NBQXdCOztJQUN4QixzQ0FBNEI7O0lBQzVCLDZCQUFtQjs7SUFDbkIsaUNBQXVCOzs7OztBQUd6QixrQ0FhQzs7O0lBWkMsNkJBQWU7O0lBQ2Ysb0NBQXNCOztJQUN0QixrQ0FBb0I7O0lBQ3BCLCtCQUFpQjs7SUFDakIsaUNBQW1COztJQUNuQiw2QkFBZTs7SUFDZixpREFBbUM7O0lBQ25DLG1DQUFxQjs7SUFDckIsMkJBQWE7O0lBQ2IsaUNBQW1COztJQUNuQixvQ0FBc0I7O0lBQ3RCLGdDQUFrQjs7Ozs7QUFHcEIscUNBS0M7OztJQUpDLGdDQUFlOztJQUNmLGlDQUFnQjs7SUFDaEIscUNBQW9COztJQUNwQiwrQkFBYTs7Ozs7QUFHZixxQ0FhQzs7O0lBWkMsZ0NBQWU7O0lBQ2YsMkNBQW1DOztJQUNuQyxzQ0FBcUI7O0lBQ3JCLHdDQUF1Qjs7SUFDdkIsaUNBQWlCOztJQUNqQixvQ0FBbUI7O0lBQ25CLHdDQUF1Qjs7SUFDdkIsaUNBQWlCOztJQUNqQixnQ0FBYzs7SUFDZCw4Q0FBNkI7O0lBQzdCLHVDQUFzQjs7SUFDdEIseUNBQXVCOzs7OztBQUd6QixrQ0ErQkM7OztJQTlCQywwQkFBWTs7SUFDWiw2QkFBZTs7SUFDZix1Q0FBeUI7O0lBQ3pCLDhCQUF5Qjs7SUFDekIsc0RBQXdDOztJQUN4QyxtREFBcUM7O0lBQ3JDLG9DQUF1Qjs7SUFDdkIsaUNBQW1COztJQUNuQix1Q0FBa0M7O0lBQ2xDLG9DQUFzQjs7SUFDdEIscUNBQXVCOztJQUN2QixnQ0FBa0I7O0lBQ2xCLHFDQUE2Qjs7SUFDN0IseUNBQXFDOztJQUNyQyxxQ0FBdUI7O0lBQ3ZCLDZDQUErQjs7SUFDL0IsNkJBQXdCOztJQUN4QiwrQ0FBNEM7O0lBQzVDLGdDQUFrQjs7SUFDbEIsbUNBQXFCOztJQUNyQixxQ0FBOEI7O0lBQzlCLHlDQUEyQjs7SUFDM0IscUNBQXVCOztJQUN2QixpQ0FBdUI7O0lBQ3ZCLHNDQUFnQzs7SUFDaEMsc0NBQXdCOztJQUN4QiwwQ0FBNEI7O0lBQzVCLGdDQUFrQjs7SUFDbEIsNENBQStCOztJQUMvQixpQ0FBbUI7OztBQUdyQixJQUFZLFNBQVM7SUFDbkIsVUFBVSxjQUFlO0VBQzFCOzs7QUFFRCxJQUFZLGVBQWU7SUFFekIsSUFBSSxRQUFPO0lBQ1gsV0FBVyxlQUFjO0VBQzFCOzs7QUFFRCxJQUFZLGNBQWM7SUFFeEIsTUFBTSxVQUFTO0VBQ2hCIiwic291cmNlc0NvbnRlbnQiOlsiXHJcblxyXG5leHBvcnQgZW51bSBUUkFOU0FDVElPTl9UWVBFIHtcclxuICBTQUxFID0gXCJTQUxFXCIsXHJcbiAgUkVGVU5EID0gXCJSRUZVTkRcIixcclxuICBTQUxFX1JFRlVORCA9IFwiU0FMRV9SRUZVTkRcIixcclxuICBTQUxFX0VYQ0hBTkdFID0gXCJTQUxFX0VYQ0hBTkdFXCIsXHJcbiAgVk9JRCA9IFwiVk9JRFwiLFxyXG4gIFdFQl9SRVRVUk5TID0gXCJXRUJfUkVUVVJOU1wiXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSXRlbURpc2NvdW50IHtcclxuICB0cm5EaXNjb3VudHNQb3J0aW9uOiBudW1iZXI7XHJcbiAgdHJuUHJvbW90aW9uc1BvcnRpb246IG51bWJlcjtcclxuICByZWZ1bmRQb3J0aW9uOiBudW1iZXI7XHJcbiAgY3VycmVudFJlZnVuZFBvcnRpb24/OiBudW1iZXI7XHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIERFTElWRVJZX01FVEhPRFMge1xyXG4gIERFTElWRVJZID0gMSxcclxuICBEUk9QX1NISVAgPSAyLFxyXG4gIENPTExFQ1RfRlJPTV9TVE9SRSA9IDMsXHJcbiAgU0hJUF9UT19TVE9SRSA9IDRcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBQcm9kdWN0Q2hhbmdlIHtcclxuICBpdGVtTGluZUlkPzogbnVtYmVyO1xyXG4gIFNLVTogc3RyaW5nO1xyXG4gIHF1YW50aXR5OiBudW1iZXI7XHJcbiAgc2VsZWN0ZWRQcmljZT86IG51bWJlcjtcclxuICBsaW5lRGlzY291bnQ/OiBMaW5lRGlzY291bnQ7XHJcbiAgbGluZVByb21vdGlvbnM/OiBMaW5lUHJvbW90aW9ucztcclxuICBleGNoYW5nZT86IEV4Y2hhbmdlO1xyXG4gIHJlZnVuZGVkUXVhbnRpdHk/OiBudW1iZXI7ICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29udGFpbnMgcXVhbnRpdHkgb2YgYm90aCBmdWxsIHByaWNlZCBhbmQgcHJvbW90aW9uYWwgcXVhbnRpdGllc1xyXG4gIHJlZnVuZFByb21vdGlvbmFsUXVhbnRpdHk/OiBudW1iZXI7ICAgICAgICAgICAgICAgLy8gcHJvbW90aW9uYWwgcXVhbnRpdHlcclxuICByZWZ1bmRlZD86IGJvb2xlYW47XHJcbiAgcmVmdW5kZWRUb3RhbD86IG51bWJlcjtcclxuICByZWZ1bmRlZFJlYXNvbj86IHN0cmluZztcclxuICByZWZ1bmRlZFJlYXNvbkRlc2NyaXB0aW9uPzogc3RyaW5nO1xyXG4gIGlzQ2hlY2tlZD86IGJvb2xlYW47XHJcbiAgc2VhbGVkPzogYm9vbGVhbjtcclxuICBpc0xhc3RFeGNoYW5nZWQ/OiBib29sZWFuO1xyXG59XHJcblxyXG4vKipcclxuICogUHJvZHVjdFxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBQcm9kdWN0IGV4dGVuZHMgUHJvZHVjdENoYW5nZSB7XHJcbiAgaXRlbUxpbmVJZD86IG51bWJlcjtcclxuICBzdGF0dXM6IG51bWJlcjtcclxuICBzdWJHcm91cDogbnVtYmVyO1xyXG4gIGJyYW5kOiBzdHJpbmc7XHJcbiAgY3VycmVuY3k6IHN0cmluZztcclxuICBjYXRlZ29yeTogc3RyaW5nO1xyXG4gIGNvdW50cnlvZk9yaWdpbjogc3RyaW5nO1xyXG4gIHByb2R1Y3RJZDogc3RyaW5nO1xyXG4gIHByb2R1Y3RUeXBlOiBudW1iZXI7XHJcbiAgbmFtZT86IHN0cmluZztcclxuICBpbWFnZVVybHM6IFtzdHJpbmddO1xyXG4gIGlzSW1hZ2VGYWlsVG9Mb2FkPzogYm9vbGVhbjtcclxuICBzaXplOiBzdHJpbmc7XHJcbiAgdHlwZTogc3RyaW5nO1xyXG4gIHNlYXNvbjogbnVtYmVyO1xyXG4gIHByb2R1Y3RHcm91cDogbnVtYmVyO1xyXG4gIHN0eWxlQ29kZTogc3RyaW5nO1xyXG4gIG5vZGVTdHJ1Y3R1cmU6IE5vZGVTdHJ1Y3R1cmVbXTtcclxuICBiYXJjb2RlOiBzdHJpbmc7XHJcbiAgcHJpY2U6IFByaWNlW107XHJcbiAgY29sb3VyOiBzdHJpbmc7XHJcbiAgZGVzY3JpcHRpb246IHN0cmluZztcclxuICB0b3RhbExpbmVQcmljZTogbnVtYmVyO1xyXG4gIHRvdGFsOiBudW1iZXI7XHJcbiAgYWRkZWRJbkJhc2tldD86IGJvb2xlYW47XHJcbiAgc2VsZWN0ZWRWQVQ/OiBudW1iZXI7XHJcbiAgc2VsZWN0ZWRWQVRDb2RlPzogc3RyaW5nO1xyXG4gIHNlbGVjdGVkUlJQUHJpY2U/OiBudW1iZXI7XHJcbiAgbGluZURpc2NvdW50PzogTGluZURpc2NvdW50O1xyXG4gIGV4Y2hhbmdlPzogRXhjaGFuZ2U7XHJcbiAgLy8gcmVmdW5kZWRRdWFudGl0eT86IG51bWJlcjtcclxuICAvLyByZWZ1bmRlZD86IGJvb2xlYW47XHJcbiAgLy8gcmVmdW5kZWRUb3RhbD86IG51bWJlcjtcclxuICAvLyByZWZ1bmRlZFJlYXNvbkRlc2NyaXB0aW9uPzpzdHJpbmc7XHJcbiAgLy8gaXNDaGVja2VkPzpib29sZWFuO1xyXG4gIHJlZnVuZFByb21vdGlvbmFsUXVhbnRpdHk/OiBudW1iZXI7ICAgICAgICAgICAgICAgLy8gcHJvbW90aW9uYWwgcXVhbnRpdHlcclxuICBleGNoYW5nZVJlYXNvbj86IHN0cmluZztcclxuICBleGNoYW5nZVF1YW50aXR5PzogbnVtYmVyO1xyXG4gIGl0ZW1EaXNjb3VudHM6IEl0ZW1EaXNjb3VudDtcclxuXHJcbiAgZ2lmdENhcmROdW1iZXJJc3N1ZWQ/OiBzdHJpbmc7XHJcbiAgZ2lmdENhcmRBbW91bnQ/OiBudW1iZXI7XHJcbiAgZ2lmdENhcmRSZWNpcGllbnRFbWFpbD86IHN0cmluZztcclxuICBnaWZ0Q2FyZEV4cGlyeURhdGU/OiBzdHJpbmc7XHJcbiAgZ2lmdENhcmRSZWNpcGllbnROYW1lPzogc3RyaW5nO1xyXG4gIGdpZnRDYXJkPzogYm9vbGVhbjtcclxuXHJcbiAgZGlzY291bnRhYmxlOiBib29sZWFuO1xyXG4gIC8vIHNlYWxlZD86Ym9vbGVhbjtcclxuICBleGNsdWRlUHJvbW90aW9uOiBib29sZWFuO1xyXG4gIGNhdGVnb3JpZXM6IENhdGVnb3JpZXNbXTtcclxuICBkZXNjcmlwdGlvbnM6IERlc2NyaXB0aW9uc1tdO1xyXG4gIGJhcmNvZGVzOiBzdHJpbmdbXTtcclxuXHJcbiAgLy9OZXcgRmVpbGRzXHJcbiAgZXh0ZXJuYWxJZDogc3RyaW5nO1xyXG4gIGNyZWF0ZWREYXRlOiBzdHJpbmc7XHJcbiAgdXBkYXRlZERhdGU6IHN0cmluZztcclxuICBjcmVhdGVkQnk6IHN0cmluZztcclxuICB1cGRhdGVkQnk6IHN0cmluZztcclxuICBhdHRyaWJ1dGVzOiBDb3JlQXR0cmlidXRlW107XHJcbiAgaWQ6IHN0cmluZztcclxuICBsb25nX2Rlc2NyaXB0aW9uOiBzdHJpbmc7XHJcblxyXG4gIC8vIE1peGVkIFNhbGVzIGZpZWxkc1xyXG4gIGlzV2ViT3JkZXI/OiBib29sZWFuLFxyXG4gIGZ1bGxmaWxtZW50SWQ6IHN0cmluZyxcclxuICBmdWxsZmlsbWVudExvY2F0aW9uTmFtZT86IHN0cmluZyxcclxuICBkZWxpdmVyeU1ldGhvZD86IHN0cmluZyxcclxuICBkZWxpdmVyeUdyb3VwPzogc3RyaW5nLFxyXG4gIHNlbGVjdGVkSW52ZW50b3J5PzogSW52ZW50b3J5SW5mbztcclxuICBsZWFkVGltZT86IGxlYWRUaW1lXHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBsZWFkVGltZSB7XHJcbiAgdHlwZTogc3RyaW5nLFxyXG4gIHZhbHVlOiBzdHJpbmdcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBFeGNoYW5nZSB7XHJcbiAgZXhjaGFuZ2VJZDogbnVtYmVyLFxyXG4gIGxpbmVJdGVtSWQ6IG51bWJlcixcclxuICByZWFzb246IHN0cmluZyxcclxuICBxdWFudGl0eTogbnVtYmVyLFxyXG4gIG5ld0l0ZW1zOiBQcm9kdWN0W107XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ2F0ZWdvcmllcyB7XHJcbiAgaWQ6IHN0cmluZztcclxuICBwYXJlbnRJZDogc3RyaW5nO1xyXG4gIG5hbWU6IHN0cmluZztcclxuICBjYXRlZ29yeUlkOiBzdHJpbmc7XHJcbiAgc3RhdHVzOiBib29sZWFuO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIERlc2NyaXB0aW9ucyB7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIGNvdW50cnlDb2RlOiBzdHJpbmc7XHJcbiAgdmFsdWU6IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDb3JlQXR0cmlidXRlIHtcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgdmFsdWU6IHN0cmluZztcclxuICBzZWFyY2hhYmxlOiBib29sZWFuO1xyXG4gIGNvdW50cnlDb2RlOiBzdHJpbmc7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBCYXNrZXRcclxuICovXHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEJhc2tldCB7XHJcbiAgc3Vic2lkaWFyeUlkPzogc3RyaW5nO1xyXG4gIHByb2R1Y3RzOiBQcm9kdWN0W107XHJcbiAgdHJhbnNhY3Rpb25EaXNjb3VudDogYW55W107XHJcbiAgcXVhbnRpdHk6IG51bWJlcjtcclxuICB0b3RhbDogbnVtYmVyO1xyXG4gIHNhbGVUb3RhbDogbnVtYmVyO1xyXG4gIGRpc2NvdW50VG90YWw/OiBudW1iZXI7XHJcbiAgdHJhbnNhY3Rpb25JZD86IHN0cmluZztcclxuICBvZmZsaW5lVHJhbnNhY3Rpb25JZD86IHN0cmluZztcclxuICBiYXNlQ3VycmVuY3k6IHN0cmluZztcclxuICBiYXNrZXRUb3RhbD86IG51bWJlcjtcclxuICByZWZ1bmRUb3RhbD86IG51bWJlcjtcclxuICB0cmFuc2FjdGlvblByb21vdGlvbj86IFRyYW5zYWN0aW9uUHJvbW90aW9uW107XHJcbiAgY3VzdG9tZXI/OiBhbnk7XHJcbiAgZXhjaGFuZ2U/OiBFeGNoYW5nZVtdO1xyXG4gIGluU3RvcmVGbGFnPzogYm9vbGVhblxyXG59XHJcblxyXG5cclxuXHJcbi8qKlxyXG4gKiBQcmljZVxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBQcmljZSB7XHJcbiAgVkFUOiBudW1iZXI7XHJcbiAgVkFUQ29kZTogc3RyaW5nO1xyXG4gIHNhbGVzUHJpY2U6IG51bWJlcjtcclxuICBjdXJyZW5jeUNvZGU6IHN0cmluZztcclxuICBSUlBQcmljZTogbnVtYmVyO1xyXG59XHJcblxyXG4vKipcclxuICogTm9kZSBzdHJ1Y3R1cmVcclxuICovXHJcbmludGVyZmFjZSBOb2RlU3RydWN0dXJlIHtcclxuICBzdGF0dXM6IGJvb2xlYW47XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIG5vZGVUeXBlOiBzdHJpbmc7XHJcbiAgaXNPdmVycmlkZTogYm9vbGVhbjtcclxuICBub2RlSWQ6IHN0cmluZztcclxuICBwYXJlbnRJZDogc3RyaW5nO1xyXG59XHJcblxyXG4vKipcclxuICogTGluZSBEaXNjb3VudFxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBMaW5lRGlzY291bnQge1xyXG4gIGl0ZW1MaW5lSWQ6IHN0cmluZyxcclxuICBkaXNjb3VudEFtb3VudDogbnVtYmVyLFxyXG4gIGRpc2NvdW50VHlwZTogc3RyaW5nLFxyXG4gIC8vIHJlYXNvbkNvZGU6IHN0cmluZyxcclxuICBuYW1lPzogc3RyaW5nLFxyXG4gIHVuaXRQcmljZTogbnVtYmVyLFxyXG4gIGRpc2NvdW50ZWRMaW5lUHJpY2U/OiBudW1iZXIsXHJcbiAgcHJpY2VNYW5hZ2VyT3ZlcnJpZGU/OiBVc2VyT3ZlcnJpZGUsXHJcbiAgcHJpY2VPdmVycmlkZVJlYXNvbkNvZGU/OiBzdHJpbmcsXHJcbiAgcHJpY2VPdmVycmlkZVJlYXNvbk5hbWU/OiBzdHJpbmcsXHJcbiAgcHJpY2VPdmVycmlkZUFtb3VudD86IG51bWJlcixcclxuICBwZXJjZW50YWdlRGlzY291bnRNYW5hZ2VyT3ZlcnJpZGU/OiBVc2VyT3ZlcnJpZGUsXHJcbiAgcGVyY2VudGFnZURpc2NvdW50UmVhc29uQ29kZT86IHN0cmluZyxcclxuICBwZXJjZW50YWdlRGlzY291bnRSZWFzb25OYW1lPzogc3RyaW5nLFxyXG4gIHBlcmNlbnRhZ2VEaXNjb3VudFZhbHVlPzogbnVtYmVyXHJcbn1cclxuXHJcbi8qKlxyXG4gKiBVc2VyIE92ZXJyaWRlXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIFVzZXJPdmVycmlkZSB7XHJcbiAgdXNlcklkOiBzdHJpbmcsXHJcbiAgYXV0b21hdGljQXBwcm92ZTogc3RyaW5nLFxyXG4gIG9yaWdpbmFsVXNlcklkOiBzdHJpbmdcclxufVxyXG5cclxuLyoqXHJcbiogbGluZSBQcm9tb3Rpb25zXHJcbiovXHJcbmV4cG9ydCBpbnRlcmZhY2UgTGluZVByb21vdGlvbnMge1xyXG5cclxuICB0cmlnZ2VyOiBUcmlnZ2VyW10sXHJcbiAgaXRlbUxpbmVJZDogbnVtYmVyLFxyXG4gIHByb21vdGlvbklkOiBzdHJpbmcsXHJcbiAgZGlzcGxheVRleHQ6IHN0cmluZyxcclxuICBwcm9tb3Rpb25UeXBlOiBzdHJpbmcsXHJcbiAgcHJvbW90aW9uQW1vdW50OiBudW1iZXIsXHJcbiAgbmFtZTogc3RyaW5nLFxyXG4gIHByb21vdGlvbkluZm86IHN0cmluZyxcclxuICBwcm9tb3Rpb25MaW5lUHJpY2U6IG51bWJlclxyXG4gIHJlZnVuZGVkPzogYm9vbGVhbjtcclxufVxyXG5cclxuLyoqXHJcbiogdHJpZ2dlclxyXG4qL1xyXG5leHBvcnQgaW50ZXJmYWNlIFRyaWdnZXIge1xyXG4gIGl0ZW1MaW5lSWQ6IHN0cmluZztcclxuICBxdWFudGl0eT86IG51bWJlcjtcclxuICB0b3RhbFF1YW50aXR5PzogbnVtYmVyO1xyXG4gIGxpbmVQcm9tb3Rpb25BbW91bnQ/Om51bWJlcjsgICAvLyBwcm9tb3Rpb24gYW1vdW50IGFwcGxpZWQgYWNjcm9zcyB0aGUgbGluZVxyXG4gIHByb21vdGlvbkFtb3VudD86bnVtYmVyOyAgIC8vIHByb21vdGlvbiBhbW91bnQgYXBwbGllZCBvbiAxIHVuaXRcclxuICByZWZ1bmRlZFJlYXNvbj86IHN0cmluZztcclxuICByZWZ1bmRlZFJlYXNvbkRlc2NyaXB0aW9uPzpzdHJpbmc7XHJcbiAgcHJvbW90aW9uSWQ/OnN0cmluZztcclxufVxyXG5cclxuLyoqXHJcbiogVHJhbnNhY3Rpb24gUHJvbW90aW9uXHJcbiovXHJcbmV4cG9ydCBpbnRlcmZhY2UgVHJhbnNhY3Rpb25Qcm9tb3Rpb24ge1xyXG4gIGRpc3BsYXlUZXh0OiBzdHJpbmc7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIHByb21vdGlvbkFtb3VudDogbnVtYmVyO1xyXG4gIHByb21vdGlvbklkOiBzdHJpbmc7XHJcbiAgcHJvbW90aW9uSW5mbzogc3RyaW5nO1xyXG4gIHByb21vdGlvblR5cGU6IHN0cmluZztcclxuICBpdGVtTGluZUlkczogbnVtYmVyW107XHJcbiAgdHlwZT86c3RyaW5nO1xyXG4gIHN1YkxldmVsVHlwZT86UFJPTU9USU9OX0xFVkVMXHJcbiAgdHJpZ2dlcj86VHJpZ2dlcltdO1xyXG4gIGNvdXBvbkNvZGU/OnN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBSZWZ1bmRQcm9kdWN0Q2hhbmdlIHtcclxuICBpdGVtTGluZUlkPzogbnVtYmVyO1xyXG4gIHJlZnVuZGVkUXVhbnRpdHk/OiBudW1iZXI7XHJcbiAgcmVmdW5kZWRQcm9tb3Rpb25hbFF1YW50aXR5PzogbnVtYmVyO1xyXG4gIHJlZnVuZFRvdGFsPzogbnVtYmVyO1xyXG4gIHJlZnVuZGVkUmVhc29uPzogc3RyaW5nO1xyXG4gIHJlZnVuZGVkUmVhc29uRGVzY3JpcHRpb24/OiBzdHJpbmc7XHJcbiAgcmVmdW5kV2l0aFByb21vdGlvbjogYm9vbGVhbjtcclxuICBpc0xhc3RFeGNoYW5nZWQ/OiBib29sZWFuO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEludmVudG9yeUluZm8ge1xyXG4gIHN0b3JlTmFtZTogc3RyaW5nLFxyXG4gIHN0b3JlSWQ6IHN0cmluZyxcclxuICBxdWFudGl0eUF2YWlsYWJsZTogbnVtYmVyLFxyXG4gIHF1YW50aXR5UmVxdWlyZWQ6IG51bWJlclxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEludmVudG9yeVJlcXVlc3RJbmZvIGV4dGVuZHMgSW52ZW50b3J5SW5mbyB7XHJcbiAgcmVxdWVzdGVkUXVhbnRpdHk6IG51bWJlcixcclxuICByZXF1ZXN0ZWRBY3Rpb246IERFTElWRVJZX01FVEhPRFNcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBEZWxpdmVyeUluZm8ge1xyXG4gIGdyb3VwczogRGVsaXZlcnlHcm91cEluZm9bXVxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIERlbGl2ZXJ5R3JvdXBJbmZvIHtcclxuICBncm91cE51bWJlcjogbnVtYmVyO1xyXG4gIGl0ZW1zOiBQcm9kdWN0W107XHJcbiAgZXN0aW1hdGU/OiBFc3RpbWF0ZTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBFc3RpbWF0ZSB7XHJcbiAgdHlwZTogc3RyaW5nLFxyXG4gIHZhbHVlOiBzdHJpbmdcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBUcmFuc2FjdGlvbkRvY3VtZW50IHtcclxuICB0cmFuc2FjdGlvbklkPzogc3RyaW5nO1xyXG4gIHN1YnNpZGlhcnlJZD86IHN0cmluZztcclxuICBvZmZsaW5lVHJhbnNhY3Rpb25JZD86c3RyaW5nO1xyXG4gIHRyYW5zYWN0aW9uUmVmPzogc3RyaW5nO1xyXG4gIGRhdGVUaW1lPzogc3RyaW5nO1xyXG4gIG9yZ0NvZGU6IHN0cmluZztcclxuICBzdG9yZUlkOiBzdHJpbmc7XHJcbiAgc3RvcmVOb2RlSWQ6c3RyaW5nO1xyXG4gIHN0b3JlTm9kZVN0cnVjdHVyZTpzdHJpbmc7XHJcbiAgZGV2aWNlSWQ6IHN0cmluZztcclxuICB0ZXJtaW5hbElkOnN0cmluZztcclxuICBpbml0aWF0aW5nTW9kdWxlIDpzdHJpbmc7XHJcbiAgZXhwb3J0OmJvb2xlYW47XHJcbiAgdXNlcklkPzogc3RyaW5nO1xyXG4gIHVzZXJOYW1lPzpzdHJpbmc7XHJcbiAgY3VzdG9tZXI/OiBDdXN0b21lcjtcclxuICBiYXNrZXQ6IGFueTtcclxuICBiYXNrZXRTdW1tYXJ5OiBCYXNrZXRTdW1tYXJ5O1xyXG4gIC8vIGxpbmVEaXNjb3VudDogTGluZURpc2NvdW50W107XHJcbiAgYmFzZUN1cnJlbmN5OiBzdHJpbmc7XHJcbiAgc3BsaXRQYXltZW50Pzpib29sZWFuO1xyXG4gIGlzUGF5bWVudENvbXBsZXRlZD86Ym9vbGVhbjtcclxuICBwYXltZW50RGV0YWlscz86IGFueTtcclxuICB0eXBlPzogc3RyaW5nO1xyXG4gIG9wZXJhdGlvblN0YXR1cz86IHN0cmluZztcclxuICBjcmVhdGVkQXQ/OiBzdHJpbmc7XHJcbiAgdXBkYXRlZEF0Pzogc3RyaW5nO1xyXG4gIHRyYW5zQ29tcGxldGVkQXQ/OiBzdHJpbmc7XHJcbiAgaWQ/OiBzdHJpbmc7XHJcbiAgc2FsZVRvdGFsPzogbnVtYmVyO1xyXG4gIHJlYXNvbkNvZGU/OiBzdHJpbmc7XHJcbiAgcmVhc29uRGVzY3JpcHRpb24/OiBzdHJpbmc7XHJcbiAgb3ZlcnJpZGU/OiBVc2VyT3ZlcnJpZGU7XHJcbiAgb3JpZ2luYWxUcmFuc0lkPzpzdHJpbmc7XHJcbiAgb3JpZ2luYWxFeHRlcm5hbElkPzogc3RyaW5nO1xyXG4gIGFwaVJlc3BvbnNlPzogQVBJUmVzcG9uc2U7ICAgIC8vIFRPRE8gYWRkIGhhbmRsZXIgYXMgcGVyIGV4cG9ydCBwcm92aWRlclxyXG4gIHVucmVmZXJlbmNlZFJlZnVuZD86Ym9vbGVhbjtcclxuICBnaWZ0ZWRSZWNlaXB0Pzpib29sZWFuO1xyXG4gIGN1cnJlbnRUcmFuc2FjdGlvbkRldGFpbHM/OmFueTtcclxuICBpc0NoZWNrZWQ/OmJvb2xlYW47XHJcbiAgZXh0ZXJuYWxUcmFuc2FjdGlvbkRldGFpbHM/OiBleHRlcm5hbFRyYW5zYWN0aW9uRGV0YWlsc1tdO1xyXG4gIHJlZnVuZFJlcXVlc3Q/IDphbnlcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBBUElSZXNwb25zZVxyXG57XHJcbiAgaW50ZXJuYWxJZD86bnVtYmVyO1xyXG4gIHRyYW5pZD86c3RyaW5nXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ3VycmVudFRyYW5zYWN0aW9uRGV0YWlsc3tcclxuICBwcm9kdWN0czogUHJvZHVjdFtdO1xyXG4gIGxpbmVEaXNjb3VudD86TGluZURpc2NvdW50W107XHJcbiAgbGluZVByb21vdGlvbj86TGluZVByb21vdGlvbnNbXTtcclxuICB0cmFuc2FjdGlvblByb21vdGlvbj86VHJhbnNhY3Rpb25Qcm9tb3Rpb25bXTtcclxuICB0cmFuc2FjdGlvbkRpc2NvdW50PzpUcmFuc2FjdGlvbkRpc2NvdW50W107XHJcbiAgYmFza2V0U3VtbWFyeT86QmFza2V0U3VtbWFyeTsgIFxyXG4gIHRheEJyZWFrZG93bj86VGF4QnJlYWtkb3duOyAgXHJcbiAgdG90YWxUYXhTdW1tYXJ5PzpUb3RhbFRheFN1bW1hcnlbXTtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIEJhc2tldFN1bW1hcnkge1xyXG4gIHRvdGFsSXRlbXM/OiBudW1iZXI7XHJcbiAgc2FsZVRvdGFsPzogbnVtYmVyO1xyXG4gIFZBVFRvdGFsPzogbnVtYmVyO1xyXG4gIGRpc2NvdW50VG90YWw/OiBudW1iZXI7XHJcbiAgYmFza2V0VG90YWw/OiBudW1iZXI7XHJcbiAgcmVmdW5kVG90YWw/Om51bWJlcjtcclxuICBzaGlwcGluZ1RvdGFsPzogbnVtYmVyO1xyXG4gIGJhc2tldFRvdGFsV2l0aFNoaXBwaW5nVG90YWw/OiBudW1iZXI7XHJcbiAgaW5TdG9yZT86IEJhc2tldFN1bW1hcnlEZXRhaWxzO1xyXG4gIHdlYk9yZGVyPzogQmFza2V0U3VtbWFyeURldGFpbHM7XHJcbiAgY25jPzogQmFza2V0U3VtbWFyeURldGFpbHM7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQmFza2V0U3VtbWFyeURldGFpbHMge1xyXG4gIHRvdGFsSXRlbXM/OiBudW1iZXI7XHJcbiAgc2FsZVRvdGFsPzogbnVtYmVyO1xyXG4gIFZBVFRvdGFsPzogbnVtYmVyO1xyXG4gIGRpc2NvdW50VG90YWw/OiBudW1iZXI7XHJcbiAgYmFza2V0VG90YWw/OiBudW1iZXI7XHJcbiAgcmVmdW5kVG90YWw/Om51bWJlcjtcclxuICBzaGlwcGluZ1RvdGFsPzogbnVtYmVyO1xyXG4gIGJhc2tldFRvdGFsV2l0aFNoaXBwaW5nVG90YWw/OiBudW1iZXI7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgVHJhbnNhY3Rpb25EaXNjb3VudHtcclxuICBkaXNjb3VudEFtb3VudDpudW1iZXI7XHJcbiAgZGlzY291bnRUeXBlOlN0cmluZztcclxuICByZWFzb25Db2RlOnN0cmluZztcclxuICBvdmVycmlkZT86IFVzZXJPdmVycmlkZTtcclxuICBpdGVtTGluZUlkcz86bnVtYmVyW107XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgVEJhc2tldCB7XHJcbiAgcHJvZHVjdHM6IFRQcm9kdWN0W107XHJcbiAgbGluZURpc2NvdW50OkxpbmVEaXNjb3VudFtdO1xyXG4gIGV4Y2hhbmdlOkV4Y2hhbmdlW107XHJcbiAgbGluZVByb21vdGlvbjpMaW5lUHJvbW90aW9uc1tdO1xyXG4gIHRyYW5zYWN0aW9uUHJvbW90aW9uPzpUcmFuc2FjdGlvblByb21vdGlvbltdO1xyXG4gIHRyYW5zYWN0aW9uRGlzY291bnQ/OlRyYW5zYWN0aW9uRGlzY291bnRbXTtcclxuICB0YXhCcmVha2Rvd24/OlRheEJyZWFrZG93bjtcclxuICB0b3RhbFRheFN1bW1hcnk/OlRvdGFsVGF4U3VtbWFyeVtdO1xyXG5cclxuICBcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBURXhjaGFuZ2V7XHJcbiAgZXhjaGFuZ2VJZD86bnVtYmVyLFxyXG4gIGxpbmVJdGVtSWQ/OiBudW1iZXIsXHJcbiAgcmVhc29uPzogc3RyaW5nLFxyXG4gIHF1YW50aXR5PzogbnVtYmVyLFxyXG4gIG5ld0l0ZW1zPzpUTmV3SXRlbXNbXTtcclxuICB9XHJcbiAgXHJcbiAgZXhwb3J0IGludGVyZmFjZSBUTmV3SXRlbXN7XHJcbiAgbGluZUl0ZW1JZDpudW1iZXIsXHJcbiAgIFF1YW50aXR5Om51bWJlclxyXG4gIH1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgVFByb2R1Y3Qge1xyXG4gIGl0ZW1MaW5lSWQ6IHN0cmluZztcclxuICBTS1U6IHN0cmluZztcclxuICBkZXNjcmlwdGlvbjogc3RyaW5nO1xyXG4gIGltYWdlVXJsczogW3N0cmluZ107XHJcbiAgcHJpY2U6IG51bWJlcjtcclxuICB0YXhDb2RlPzogc3RyaW5nO1xyXG4gIHRheFBlcmNlbnQ/OiBzdHJpbmc7XHJcbiAgcXVhbnRpdHk6IG51bWJlcjtcclxuICByZWZ1bmRlZFF1YW50aXR5PzogbnVtYmVyO1xyXG4gIHJlZnVuZGVkUHJvbW90aW9uYWxRdWFudGl0eT86bnVtYmVyO1xyXG4gIHJlZnVuZGVkPzogYm9vbGVhbjtcclxuICByZWZ1bmRlZFRvdGFsPzogbnVtYmVyO1xyXG4gIHJlZnVuZGVkUmVhc29uPzpzdHJpbmc7XHJcbiAgcmVmdW5kZWRSZWFzb25EZXNjcmlwdGlvbj86c3RyaW5nO1xyXG4gIHNlbGVjdGVkUlJQUHJpY2U/OiBudW1iZXI7XHJcbiAgdG90YWxMaW5lUHJpY2U6IG51bWJlcjtcclxuICBiYXJDb2RlPzogc3RyaW5nO1xyXG4gIGJhcmNvZGVzPzogc3RyaW5nW107XHJcbiAgZmxhZ2dlZD86IGJvb2xlYW47XHJcbiAgZXhjaGFuZ2U/OkV4Y2hhbmdlO1xyXG4gIGV4Y2x1ZGVQcm9tb3Rpb246Ym9vbGVhbjtcclxuICBkaXNjb3VudGFibGU/OmJvb2xlYW47XHJcblxyXG4gIGl0ZW1EaXNjb3VudHM/Okl0ZW1EaXNjb3VudHM7XHJcbiAgaXNMYXN0RXhjaGFuZ2VkPzogYm9vbGVhbjtcclxuXHJcbiAgLy8gTWl4ZWQgU2FsZXMgZmllbGRzXHJcbiAgZnVsbGZpbG1lbnRJZDpzdHJpbmcsXHJcbiAgZnVsbGZpbG1lbnRMb2NhdGlvbk5hbWU6c3RyaW5nLFxyXG4gIGRlbGl2ZXJ5TWV0aG9kPzpzdHJpbmcsXHJcbiAgZGVsaXZlcnlHcm91cD86c3RyaW5nLFxyXG4gIGdpZnRDYXJkTnVtYmVySXNzdWVkPzogc3RyaW5nLFxyXG4gIGdpZnRDYXJkQW1vdW50PzogbnVtYmVyLFxyXG4gIGdpZnRDYXJkUmVjaXBpZW50RW1haWw/OiBzdHJpbmcsXHJcbiAgZ2lmdENhcmRFeHBpcnlEYXRlPzogc3RyaW5nICxcclxuICBnaWZ0Q2FyZFJlY2lwaWVudE5hbWU/OiBzdHJpbmcsXHJcbiAgZ2lmdENhcmQ/OmJvb2xlYW4sXHJcbiAgY3VycmVuY3k/OnN0cmluZyxcclxuICBpc1dlYk9yZGVyPzpib29sZWFuLFxyXG4gIGxlYWRUaW1lPzogbGVhZFRpbWVcclxuICBcclxuICAvLyBjdXJyZW50dHJhbnNhY3Rpb24gZG9jIGNoYW5nZXNcclxuICBsaW5lRGlzY291bnQ/OmFueVxyXG5cclxuICBhdHRyaWJ1dGVzPzpDb3JlQXR0cmlidXRlW107XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSXRlbURpc2NvdW50c3tcclxuICB0cm5EaXNjb3VudHNQb3J0aW9uOm51bWJlcjtcclxuICB0cm5Qcm9tb3Rpb25zUG9ydGlvbjpudW1iZXI7XHJcbiAgcmVmdW5kUG9ydGlvbjpudW1iZXI7XHJcbn1cclxuXHJcblxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDdXN0b21lciB7XHJcbiAgaWQ6IHN0cmluZztcclxuICB0aXRsZT86IHN0cmluZztcclxuICBmaXJzdE5hbWU6IHN0cmluZztcclxuICBsYXN0TmFtZTogc3RyaW5nO1xyXG4gIGVtYWlsOiBzdHJpbmc7XHJcbiAgcG9zdENvZGU6IHN0cmluZztcclxuICB0ZWxlcGhvbmU/OiBzdHJpbmc7XHJcbiAgYmlsbGluZ0FkZHJlc3M/OiBBZGRyZXNzIHwgQWRkcmVzc1tdO1xyXG4gIHNoaXBwaW5nQWRkcmVzcz86IEFkZHJlc3MgfCBBZGRyZXNzW107XHJcbiAgc2hpcG1lbnREZXRhaWxzPzogU2hpcG1lbnREZXRhaWxzW107XHJcbiAgYWRkcmVzc0RldGFpbD86IHN0cmluZztcclxuICBub0N1c3RvbWVyU2VsZWN0ZWQ/OiBib29sZWFuO1xyXG4gIGV4dGVybmFsSWQ/OiBzdHJpbmc7IFxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEFkZHJlc3MgXHJcbntcclxuICBpZD86IHN0cmluZztcclxuICBjb3VudHJ5Q29kZT86IHN0cmluZztcclxuICBhZGRyZXNzMT86IHN0cmluZztcclxuICBhZGRyZXNzMj86IHN0cmluZztcclxuICBhZGRyZXNzMz86IHN0cmluZztcclxuICBjaXR5Pzogc3RyaW5nO1xyXG4gIGNvdW50eT86IHN0cmluZztcclxuICBwb3N0Q29kZT86IHN0cmluZztcclxuICBjb3VudHJ5Pzogc3RyaW5nO1xyXG4gfVxyXG5cclxuIGV4cG9ydCBpbnRlcmZhY2UgU2hpcG1lbnREZXRhaWxzIHtcclxuICBpZD86IHN0cmluZyxcclxuICBkZWxpdmVyeUdyb3VwPzogc3RyaW5nLFxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFBheW1lbnREZXRhaWxzIHtcclxuICBjYXJkTnVtYmVyPzogYW55O1xyXG4gIHNxTm8/Om51bWJlcjtcclxuICByZXN1bHQ/OiBzdHJpbmc7XHJcbiAgY3VycmVuY3k6IHN0cmluZztcclxuICBhbW91bnQ6IHN0cmluZztcclxuICBhdXRoY29kZT86IHN0cmluZztcclxuICBwYW4/OiBzdHJpbmc7XHJcbiAgY2FyZFR5cGU/OiBzdHJpbmc7XHJcbiAgdHJhbnNhY3Rpb25EYXRlPzogc3RyaW5nO1xyXG4gIG1pZD86IHN0cmluZztcclxuICB0aWQ/OiBzdHJpbmc7XHJcbiAgY3ZtPzogc3RyaW5nO1xyXG4gIGhvc3RSZWZlcmVuY2VJZD86IHN0cmluZztcclxuICBhaWQ/OiBzdHJpbmc7XHJcbiAgcmVjZWlwdE5vPzogc3RyaW5nO1xyXG4gIGV4cGlyeWRhdGU/OiBzdHJpbmc7XHJcbiAgdHJhbnNhY3Rpb25SZWZlcmVuY2U6IHN0cmluZztcclxuICBhcHBsaWNhdGlvblZlcnNpb24/OiBzdHJpbmc7XHJcbiAgZW50cnlNZXRob2Q/OnN0cmluZztcclxuICB0cmFuc2FjdGlvblR5cGU6c3RyaW5nO1xyXG4gIHRvdGFsYW1vdW50OnN0cmluZztcclxuICBwYXltZW50VHlwZT86c3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFRheEJyZWFrZG93blxyXG57XHJcbiAgdGF4TGluZXMgOiBUYXhMaW5lW10sXHJcbiAgdG90YWxUYXhhYmxlQW1vdW50OiBudW1iZXI7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgVG90YWxUYXhTdW1tYXJ5e1xyXG4gIFZBVENvZGU6c3RyaW5nLFxyXG4gIFZBVCA6IG51bWJlcjtcclxuICBQcmVUYXhTdW06ICBudW1iZXJcclxuICBUYXhTdW06ICBudW1iZXJcclxuICBUWHJhdGVTdW06IG51bWJlclxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFRheExpbmVcclxue1xyXG4gICAgaXRlbUxpbmVJZDogbnVtYmVyLFxyXG4gICAgdGF4YWJsZUFtb3VudDogbnVtYmVyLFxyXG4gICAgdGF4TGluZVRvdGFsOiBudW1iZXIsXHJcbiAgICBWQVQ6IG51bWJlcixcclxuICAgIFZBVENvZGUgOiBzdHJpbmcsXHJcbiAgICBQcmVUYXg6IG51bWJlclxyXG59XHJcblxyXG5leHBvcnQgZW51bSBESVNDT1VOVFRZUEUge1xyXG4gIFBFUkNFTlQgPSAnUGVyY2VudCcsXHJcbiAgQU1PVU5UID0gJ0FNT1VOVCdcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBUcmFuc2FjdGlvbkluZm8ge1xyXG4gIHNoaXBwaW5nSWQ/OiBzdHJpbmcsXHJcbiAgZXh0ZXJuYWxTaGlwcGluZ0lkPzogc3RyaW5nXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgZXh0ZXJuYWxUcmFuc2FjdGlvbkRldGFpbHMge1xyXG4gIHVuaXF1ZUlkPzogc3RyaW5nLFxyXG4gIHByb3ZpZGVyVHlwZT86IHN0cmluZyxcclxuICBkZXRhaWxzPzogVHJhbnNhY3Rpb25JbmZvXHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIElOSVRJQVRJTkdfTU9EVUxFIHtcclxuICBFQkFTS0VUID0gXCJlQmFza2V0XCJcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBwZW5kaW5nTWV0aG9kIHtcclxuICBfdHlwZT86IHN0cmluZztcclxuICB0eXBlPzogc3RyaW5nO1xyXG4gIG1lc3NhZ2U/OiBzdHJpbmc7XHJcbiAgcGF0aD86IHN0cmluZztcclxuICBkZXRhaWxzPzogU2hpcG1lbnRJZDtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTaGlwbWVudElkIHtcclxuICBzaGlwbWVudElkPzogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEN1c3RvbWVyQWRkcmVzcyB7XHJcbiAgX3R5cGU/OiBzdHJpbmc7XHJcbiAgZW1haWw/OiBzdHJpbmc7XHJcbiAgYWRkcmVzczE/OiBzdHJpbmc7XHJcbiAgY2l0eT86IHN0cmluZztcclxuICBjb3VudHJ5X2NvZGU/OiBzdHJpbmc7XHJcbiAgZmlyc3RfbmFtZT86IHN0cmluZztcclxuICBmdWxsX25hbWU/OiBzdHJpbmc7XHJcbiAgaWQ/OiBzdHJpbmc7XHJcbiAgbGFzdF9uYW1lPzogc3RyaW5nO1xyXG4gIHBob25lPzogc3RyaW5nO1xyXG4gIHNhbHV0YXRpb24/OiBzdHJpbmc7XHJcbiAgY19hcmVhPzogc3RyaW5nO1xyXG4gIGNfZW1haWw/OiBzdHJpbmc7XHJcbiAgY19waG9uZVdoYXRzQXBwPzogc3RyaW5nO1xyXG4gIGNfc3RyVmFsdWU/OiBzdHJpbmc7XHJcbiAgcG9zdGFsX2NvZGU/OiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ3VzdG9tZXJJbmZvIHtcclxuICBfdHlwZT86IHN0cmluZztcclxuICBjdXN0b21lcl9pZD86IHN0cmluZztcclxuICBlbWFpbD86IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBHcm91cGVkVGF4SXRlbSB7XHJcbiAgX3R5cGU/OiBzdHJpbmc7XHJcbiAgdGF4X3JhdGU/OiBudW1iZXI7XHJcbiAgdGF4X3ZhbHVlPzogbnVtYmVyO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIGFkZGl0aW9uYWxOb3RlcyB7XHJcbiAgX3R5cGU/OiBzdHJpbmc7XHJcbiAgbGluaz86IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBQcm9kdWN0SXRlbSB7XHJcbiAgX3R5cGU/OiBzdHJpbmc7XHJcbiAgYWRqdXN0ZWRfdGF4PzogbnVtYmVyO1xyXG4gIGJhc2VfcHJpY2U/OiBudW1iZXI7XHJcbiAgYm9udXNfcHJvZHVjdF9saW5lX2l0ZW0/OiBib29sZWFuO1xyXG4gIGdpZnQ/OiBib29sZWFuO1xyXG4gIGl0ZW1faWQ/OiBzdHJpbmc7XHJcbiAgaXRlbV90ZXh0Pzogc3RyaW5nO1xyXG4gIHByaWNlPzogbnVtYmVyO1xyXG4gIHByaWNlX2FkanVzdG1lbnRzPzogUHJpY2VBZGp1c3RtZW50W107XHJcbiAgcHJpY2VfYWZ0ZXJfaXRlbV9kaXNjb3VudD86IG51bWJlcjtcclxuICBwcmljZV9hZnRlcl9vcmRlcl9kaXNjb3VudD86IG51bWJlcjtcclxuICBwcm9kdWN0X2lkPzogc3RyaW5nO1xyXG4gIHByb2R1Y3RfbmFtZT86IHN0cmluZztcclxuICBxdWFudGl0eT86IG51bWJlcjtcclxuICBzaGlwbWVudF9pZD86IHN0cmluZztcclxuICB0YXg/OiBudW1iZXI7XHJcbiAgdGF4X2Jhc2lzPzogbnVtYmVyO1xyXG4gIHRheF9jbGFzc19pZD86IHN0cmluZztcclxuICB0YXhfcmF0ZT86IG51bWJlcjtcclxuICBjX29zdU9iamVjdERhdGE/OnN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTaGlwcGluZ01ldGhvZCB7XHJcbiAgX3R5cGU/OiBzdHJpbmc7XHJcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XHJcbiAgaWQ/OiBzdHJpbmc7XHJcbiAgbmFtZT86IHN0cmluZztcclxuICBwcmljZT86IG51bWJlcjtcclxuICBjX2FwcHJvYWNoaW5nVGhyZXNob2xkTWVzc2FnZT86IHN0cmluZztcclxuICBjX2VzdGltYXRlZEFycml2YWxUaW1lPzogc3RyaW5nO1xyXG4gIGNfaXNFbWFpbD86IGJvb2xlYW47XHJcbiAgY19zdG9yZVBpY2t1cEVuYWJsZWQ/OiBib29sZWFuO1xyXG4gIGNfdGhyZXNob2xkVmFsdWU/OiBudW1iZXI7XHJcbn0gXHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIHNoaXBtZW50IHtcclxuICBfdHlwZT86IHN0cmluZztcclxuICBhZGp1c3RlZF9tZXJjaGFuZGl6ZV90b3RhbF90YXg/OiBudW1iZXI7XHJcbiAgYWRqdXN0ZWRfc2hpcHBpbmdfdG90YWxfdGF4PzogbnVtYmVyO1xyXG4gIGdpZnQ/OiBib29sZWFuO1xyXG4gIG1lcmNoYW5kaXplX3RvdGFsX3RheD86IG51bWJlcjtcclxuICBwcm9kdWN0X3N1Yl90b3RhbD86IG51bWJlcjtcclxuICBwcm9kdWN0X3RvdGFsPzogbnVtYmVyO1xyXG4gIHNoaXBtZW50X2lkPzogc3RyaW5nO1xyXG4gIHNoaXBtZW50X3RvdGFsPzogbnVtYmVyO1xyXG4gIHNoaXBwaW5nX2FkZHJlc3M/OiBDdXN0b21lckFkZHJlc3M7XHJcbiAgc2hpcHBpbmdfbWV0aG9kPzogU2hpcHBpbmdNZXRob2Q7XHJcbiAgc2hpcHBpbmdfc3RhdHVzPzogc3RyaW5nO1xyXG4gIHNoaXBwaW5nX3RvdGFsPzogbnVtYmVyO1xyXG4gIHNoaXBwaW5nX3RvdGFsX3RheD86IG51bWJlcjtcclxuICB0YXhfdG90YWw/OiBudW1iZXI7XHJcbiAgY19mcm9tU3RvcmVJZD86IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTaGlwcGluZ0l0ZW0ge1xyXG4gIF90eXBlPzogc3RyaW5nO1xyXG4gIGFkanVzdGVkX3RheD86IG51bWJlcjtcclxuICBiYXNlX3ByaWNlPzogbnVtYmVyO1xyXG4gIGl0ZW1faWQ/OiBzdHJpbmc7XHJcbiAgaXRlbV90ZXh0Pzogc3RyaW5nO1xyXG4gIHByaWNlPzogbnVtYmVyO1xyXG4gIHByaWNlX2FmdGVyX2l0ZW1fZGlzY291bnQ/OiBudW1iZXI7XHJcbiAgc2hpcG1lbnRfaWQ/OiBzdHJpbmc7XHJcbiAgdGF4PzogbnVtYmVyO1xyXG4gIHRheF9iYXNpcz86IG51bWJlcjtcclxuICB0YXhfY2xhc3NfaWQ/OiBzdHJpbmc7XHJcbiAgdGF4X3JhdGU/OiBudW1iZXI7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQXBwbGllZERpc2NvdW50IHtcclxuICBfdHlwZT86IHN0cmluZyxcclxuICBhbW91bnQ/OiBudW1iZXIsXHJcbiAgcGVyY2VudGFnZT86IG51bWJlcixcclxuICB0eXBlPzogc3RyaW5nXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgUHJpY2VBZGp1c3RtZW50IHtcclxuICBfdHlwZT86IHN0cmluZyxcclxuICBhcHBsaWVkX2Rpc2NvdW50PzogQXBwbGllZERpc2NvdW50LFxyXG4gIGNvdXBvbl9jb2RlPzogc3RyaW5nLFxyXG4gIGNyZWF0aW9uX2RhdGU/OiBzdHJpbmcsXHJcbiAgY3VzdG9tPzogYm9vbGVhbixcclxuICBpdGVtX3RleHQ/OiBzdHJpbmcsXHJcbiAgbGFzdF9tb2RpZmllZD86IHN0cmluZyxcclxuICBtYW51YWw/OiBib29sZWFuLFxyXG4gIHByaWNlPzogbnVtYmVyXHJcbiAgcHJpY2VfYWRqdXN0bWVudF9pZD86IHN0cmluZyxcclxuICBwcm9tb3Rpb25faWQ/OiBzdHJpbmcsXHJcbiAgcHJvbW90aW9uX2xpbms/OiBzdHJpbmdcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBPcmRlckRldGFpbHMge1xyXG4gIF92Pzogc3RyaW5nO1xyXG4gIF90eXBlPzogc3RyaW5nO1xyXG4gIF9yZXNvdXJjZV9zdGF0ZT86IHN0cmluZztcclxuICBfZmxhc2g/OiBwZW5kaW5nTWV0aG9kW107XHJcbiAgYWRqdXN0ZWRfbWVyY2hhbmRpemVfdG90YWxfdGF4PzogbnVtYmVyO1xyXG4gIGFkanVzdGVkX3NoaXBwaW5nX3RvdGFsX3RheD86IG51bWJlcjtcclxuICBhZ2VudF9iYXNrZXQ/OiBib29sZWFuO1xyXG4gIGJhc2tldF9pZD86IHN0cmluZztcclxuICBiaWxsaW5nX2FkZHJlc3M/OiBDdXN0b21lckFkZHJlc3M7XHJcbiAgY2hhbm5lbF90eXBlPzogc3RyaW5nO1xyXG4gIGNyZWF0aW9uX2RhdGU/OiBzdHJpbmc7XHJcbiAgY3VycmVuY3k/OiBzdHJpbmc7XHJcbiAgY3VzdG9tZXJfaW5mbz86IEN1c3RvbWVySW5mbztcclxuICBncm91cGVkX3RheF9pdGVtcz86IEdyb3VwZWRUYXhJdGVtW107XHJcbiAgbGFzdF9tb2RpZmllZD86IHN0cmluZztcclxuICBtZXJjaGFuZGl6ZV90b3RhbF90YXg/OiBudW1iZXI7XHJcbiAgbm90ZXM/OiBhZGRpdGlvbmFsTm90ZXM7XHJcbiAgb3JkZXJfcHJpY2VfYWRqdXN0bWVudHM/OiBQcmljZUFkanVzdG1lbnRbXSxcclxuICBvcmRlcl9ubz86IHN0cmluZztcclxuICBvcmRlcl90b3RhbD86IG51bWJlcjtcclxuICBwcm9kdWN0X2l0ZW1zPzogUHJvZHVjdEl0ZW1bXTtcclxuICBwcm9kdWN0X3N1Yl90b3RhbD86IG51bWJlcjtcclxuICBwcm9kdWN0X3RvdGFsPzogbnVtYmVyO1xyXG4gIHNoaXBtZW50cz86IHNoaXBtZW50W107XHJcbiAgc2hpcHBpbmdfaXRlbXM/OiBTaGlwcGluZ0l0ZW1bXTtcclxuICBzaGlwcGluZ190b3RhbD86IG51bWJlcjtcclxuICBzaGlwcGluZ190b3RhbF90YXg/OiBudW1iZXI7XHJcbiAgdGF4YXRpb24/OiBzdHJpbmc7XHJcbiAgdGF4X3JvdW5kZWRfYXRfZ3JvdXA/OiBib29sZWFuO1xyXG4gIHRheF90b3RhbD86IG51bWJlcjtcclxufVxyXG5cclxuZXhwb3J0IGVudW0gUFJPVklERVJTIHtcclxuICBTQUxFU0ZPUkNFID0gXCJTYWxlc2ZvcmNlXCJcclxufVxyXG5cclxuZXhwb3J0IGVudW0gUFJPTU9USU9OX0xFVkVMXHJcbntcclxuICBMSU5FPVwiTElORVwiLFxyXG4gIFRSQU5TQUNUSU9OPVwiVFJBTlNBQ1RJT05cIlxyXG59XHJcblxyXG5leHBvcnQgZW51bSBQUk9NT1RJT05fVFlQRVxyXG57XHJcbiAgQ09VUE9OPVwiQ09VUE9OXCJcclxufVxyXG5cclxuIl19
|
|
1438
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwcGVyLWxpYnJhcnkubW9kZWwuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AcG1jcmV0YWlsL21hcHBlci1saWJyYXJ5LyIsInNvdXJjZXMiOlsibGliL21hcHBlci1saWJyYXJ5Lm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUVBLElBQVksZ0JBQWdCO0lBQzFCLElBQUksUUFBUztJQUNiLE1BQU0sVUFBVztJQUNqQixXQUFXLGVBQWdCO0lBQzNCLGFBQWEsaUJBQWtCO0lBQy9CLElBQUksUUFBUztJQUNiLFdBQVcsZUFBZ0I7RUFDNUI7Ozs7O0FBRUQsa0NBS0M7OztJQUpDLDJDQUE0Qjs7SUFDNUIsNENBQTZCOztJQUM3QixxQ0FBc0I7O0lBQ3RCLDRDQUE4Qjs7O0FBR2hDLElBQVksZ0JBQWdCO0lBQzFCLFFBQVEsR0FBSTtJQUNaLFNBQVMsR0FBSTtJQUNiLGtCQUFrQixHQUFJO0lBQ3RCLGFBQWEsR0FBSTtFQUNsQjs7Ozs7Ozs7O0FBRUQsbUNBaUJDOzs7SUFoQkMsbUNBQW9COztJQUNwQiw0QkFBWTs7SUFDWixpQ0FBaUI7O0lBQ2pCLHNDQUF1Qjs7SUFDdkIscUNBQTRCOztJQUM1Qix1Q0FBZ0M7O0lBQ2hDLGlDQUFvQjs7SUFDcEIseUNBQTBCOztJQUMxQixrREFBbUM7O0lBQ25DLGlDQUFtQjs7SUFDbkIsc0NBQXVCOztJQUN2Qix1Q0FBd0I7O0lBQ3hCLGtEQUFtQzs7SUFDbkMsa0NBQW9COztJQUNwQiwrQkFBaUI7O0lBQ2pCLHdDQUEwQjs7Ozs7O0FBTTVCLDZCQXlFQzs7O0lBeEVDLDZCQUFvQjs7SUFDcEIseUJBQWU7O0lBQ2YsMkJBQWlCOztJQUNqQix3QkFBYzs7SUFDZCwyQkFBaUI7O0lBQ2pCLDJCQUFpQjs7SUFDakIsa0NBQXdCOztJQUN4Qiw0QkFBa0I7O0lBQ2xCLDhCQUFvQjs7SUFDcEIsdUJBQWM7O0lBQ2QsNEJBQW9COztJQUNwQixvQ0FBNEI7O0lBQzVCLHVCQUFhOztJQUNiLHVCQUFhOztJQUNiLHlCQUFlOztJQUNmLCtCQUFxQjs7SUFDckIsNEJBQWtCOztJQUNsQixnQ0FBK0I7O0lBQy9CLDBCQUFnQjs7SUFDaEIsd0JBQWU7O0lBQ2YseUJBQWU7O0lBQ2YsOEJBQW9COztJQUNwQixpQ0FBdUI7O0lBQ3ZCLHdCQUFjOztJQUNkLGdDQUF3Qjs7SUFDeEIsOEJBQXFCOztJQUNyQixrQ0FBeUI7O0lBQ3pCLG1DQUEwQjs7SUFDMUIsK0JBQTRCOztJQUM1QiwyQkFBb0I7O0lBTXBCLDRDQUFtQzs7SUFDbkMsaUNBQXdCOztJQUN4QixtQ0FBMEI7O0lBQzFCLGdDQUE0Qjs7SUFFNUIsdUNBQThCOztJQUM5QixpQ0FBd0I7O0lBQ3hCLHlDQUFnQzs7SUFDaEMscUNBQTRCOztJQUM1Qix3Q0FBK0I7O0lBQy9CLDJCQUFtQjs7SUFFbkIsK0JBQXNCOztJQUV0QixtQ0FBMEI7O0lBQzFCLDZCQUF5Qjs7SUFDekIsK0JBQTZCOztJQUM3QiwyQkFBbUI7O0lBR25CLDZCQUFtQjs7SUFDbkIsOEJBQW9COztJQUNwQiw4QkFBb0I7O0lBQ3BCLDRCQUFrQjs7SUFDbEIsNEJBQWtCOztJQUNsQiw2QkFBNEI7O0lBQzVCLHFCQUFXOztJQUNYLG1DQUF5Qjs7SUFHekIsNkJBQXFCOztJQUNyQixnQ0FBc0I7O0lBQ3RCLDBDQUFpQzs7SUFDakMsaUNBQXdCOztJQUN4QixnQ0FBdUI7O0lBQ3ZCLG9DQUFrQzs7SUFDbEMsMkJBQW1COzs7OztBQUVyQiw4QkFHQzs7O0lBRkMsd0JBQWE7O0lBQ2IseUJBQWE7Ozs7O0FBR2YsOEJBTUM7OztJQUxDLDhCQUFtQjs7SUFDbkIsOEJBQW1COztJQUNuQiwwQkFBZTs7SUFDZiw0QkFBaUI7O0lBQ2pCLDRCQUFvQjs7Ozs7QUFHdEIsZ0NBTUM7OztJQUxDLHdCQUFXOztJQUNYLDhCQUFpQjs7SUFDakIsMEJBQWE7O0lBQ2IsZ0NBQW1COztJQUNuQiw0QkFBZ0I7Ozs7O0FBR2xCLGtDQUlDOzs7SUFIQyw0QkFBYTs7SUFDYixtQ0FBb0I7O0lBQ3BCLDZCQUFjOzs7OztBQUdoQixtQ0FLQzs7O0lBSkMsNkJBQWE7O0lBQ2IsOEJBQWM7O0lBQ2QsbUNBQW9COztJQUNwQixvQ0FBb0I7Ozs7OztBQU90Qiw0QkFpQkM7OztJQWhCQyw4QkFBc0I7O0lBQ3RCLDBCQUFvQjs7SUFDcEIscUNBQTJCOztJQUMzQiwwQkFBaUI7O0lBQ2pCLHVCQUFjOztJQUNkLDJCQUFrQjs7SUFDbEIsK0JBQXVCOztJQUN2QiwrQkFBdUI7O0lBQ3ZCLHNDQUE4Qjs7SUFDOUIsOEJBQXFCOztJQUNyQiw2QkFBcUI7O0lBQ3JCLDZCQUFxQjs7SUFDckIsc0NBQThDOztJQUM5QywwQkFBZTs7SUFDZiwwQkFBc0I7O0lBQ3RCLDZCQUFxQjs7Ozs7O0FBUXZCLDJCQU1DOzs7SUFMQyxvQkFBWTs7SUFDWix3QkFBZ0I7O0lBQ2hCLDJCQUFtQjs7SUFDbkIsNkJBQXFCOztJQUNyQix5QkFBaUI7Ozs7OztBQU1uQiw0QkFPQzs7O0lBTkMsK0JBQWdCOztJQUNoQiw2QkFBYTs7SUFDYixpQ0FBaUI7O0lBQ2pCLG1DQUFvQjs7SUFDcEIsK0JBQWU7O0lBQ2YsaUNBQWlCOzs7Ozs7QUFNbkIsa0NBZ0JDOzs7SUFmQyxrQ0FBbUI7O0lBQ25CLHNDQUF1Qjs7SUFDdkIsb0NBQXFCOztJQUVyQiw0QkFBYzs7SUFDZCxpQ0FBa0I7O0lBQ2xCLDJDQUE2Qjs7SUFDN0IsNENBQW9DOztJQUNwQywrQ0FBaUM7O0lBQ2pDLCtDQUFpQzs7SUFDakMsMkNBQTZCOztJQUM3Qix5REFBaUQ7O0lBQ2pELG9EQUFzQzs7SUFDdEMsb0RBQXNDOztJQUN0QywrQ0FBZ0M7Ozs7OztBQU1sQyxrQ0FJQzs7O0lBSEMsOEJBQWU7O0lBQ2Ysd0NBQXlCOztJQUN6QixzQ0FBc0I7Ozs7OztBQU14QixvQ0FZQzs7O0lBVkMsaUNBQW1COztJQUNuQixvQ0FBbUI7O0lBQ25CLHFDQUFvQjs7SUFDcEIscUNBQW9COztJQUNwQix1Q0FBc0I7O0lBQ3RCLHlDQUF3Qjs7SUFDeEIsOEJBQWE7O0lBQ2IsdUNBQXNCOztJQUN0Qiw0Q0FBMEI7O0lBQzFCLGtDQUFtQjs7Ozs7O0FBTXJCLDZCQVNDOzs7SUFSQyw2QkFBbUI7O0lBQ25CLDJCQUFrQjs7SUFDbEIsZ0NBQXVCOztJQUN2QixzQ0FBNEI7O0lBQzVCLGtDQUF3Qjs7SUFDeEIsaUNBQXdCOztJQUN4Qiw0Q0FBa0M7O0lBQ2xDLDhCQUFvQjs7Ozs7O0FBTXRCLDBDQVlDOzs7SUFYQywyQ0FBb0I7O0lBQ3BCLG9DQUFhOztJQUNiLCtDQUF3Qjs7SUFDeEIsMkNBQW9COztJQUNwQiw2Q0FBc0I7O0lBQ3RCLDZDQUFzQjs7SUFDdEIsMkNBQXNCOztJQUN0QixvQ0FBYTs7SUFDYiw0Q0FBNkI7O0lBQzdCLHVDQUFtQjs7SUFDbkIsMENBQW1COzs7OztBQUdyQix5Q0FTQzs7O0lBUkMseUNBQW9COztJQUNwQiwrQ0FBMEI7O0lBQzFCLDBEQUFxQzs7SUFDckMsMENBQXFCOztJQUNyQiw2Q0FBd0I7O0lBQ3hCLHdEQUFtQzs7SUFDbkMsa0RBQTZCOztJQUM3Qiw4Q0FBMEI7Ozs7O0FBRzVCLG1DQUtDOzs7SUFKQyxrQ0FBa0I7O0lBQ2xCLGdDQUFnQjs7SUFDaEIsMENBQTBCOztJQUMxQix5Q0FBd0I7Ozs7O0FBRzFCLDBDQUdDOzs7SUFGQyxpREFBMEI7O0lBQzFCLCtDQUFpQzs7Ozs7QUFHbkMsa0NBRUM7OztJQURDLDhCQUEyQjs7Ozs7QUFHN0IsdUNBSUM7OztJQUhDLHdDQUFvQjs7SUFDcEIsa0NBQWlCOztJQUNqQixxQ0FBb0I7Ozs7O0FBR3RCLDhCQUdDOzs7SUFGQyx3QkFBYTs7SUFDYix5QkFBYTs7Ozs7QUFHZix5Q0EyQ0M7OztJQTFDQyw0Q0FBdUI7O0lBQ3ZCLDJDQUFzQjs7SUFDdEIsbURBQTZCOztJQUM3Qiw2Q0FBd0I7O0lBQ3hCLHVDQUFrQjs7SUFDbEIsc0NBQWdCOztJQUNoQixzQ0FBZ0I7O0lBQ2hCLDBDQUFtQjs7SUFDbkIsaURBQTBCOztJQUMxQix1Q0FBaUI7O0lBQ2pCLHlDQUFrQjs7SUFDbEIsK0NBQXlCOztJQUN6QixxQ0FBZTs7SUFDZixxQ0FBZ0I7O0lBQ2hCLHVDQUFpQjs7SUFDakIsdUNBQW9COztJQUNwQixxQ0FBWTs7SUFDWiw0Q0FBNkI7O0lBRTdCLDJDQUFxQjs7SUFDckIsMkNBQXNCOztJQUN0QixpREFBNEI7O0lBQzVCLDZDQUFxQjs7SUFDckIsbUNBQWM7O0lBQ2QsOENBQXlCOztJQUN6Qix3Q0FBbUI7O0lBQ25CLHdDQUFtQjs7SUFDbkIsK0NBQTBCOztJQUMxQixpQ0FBWTs7SUFDWix3Q0FBbUI7O0lBQ25CLHlDQUFvQjs7SUFDcEIsZ0RBQTJCOztJQUMzQix1Q0FBd0I7O0lBQ3hCLDhDQUF3Qjs7SUFDeEIsaURBQTRCOztJQUM1QiwwQ0FBMEI7O0lBQzFCLGlEQUE0Qjs7SUFDNUIsNENBQXVCOztJQUN2Qix3REFBK0I7O0lBQy9CLHdDQUFtQjs7SUFDbkIseURBQTBEOztJQUMxRCw0Q0FBcUI7Ozs7O0FBR3ZCLGlDQUlDOzs7SUFGQyxpQ0FBbUI7O0lBQ25CLDZCQUFjOzs7OztBQUdoQiwrQ0FTQzs7O0lBUkMsNkNBQW9COztJQUNwQixpREFBNkI7O0lBQzdCLGtEQUFnQzs7SUFDaEMseURBQTZDOztJQUM3Qyx3REFBMkM7O0lBQzNDLGtEQUE2Qjs7SUFDN0IsaURBQTJCOztJQUMzQixvREFBbUM7Ozs7O0FBRXJDLG1DQVlDOzs7SUFYQyxtQ0FBb0I7O0lBQ3BCLGtDQUFtQjs7SUFDbkIsaUNBQWtCOztJQUNsQixzQ0FBdUI7O0lBQ3ZCLG9DQUFxQjs7SUFDckIsb0NBQW9COztJQUNwQixzQ0FBdUI7O0lBQ3ZCLHFEQUFzQzs7SUFDdEMsZ0NBQStCOztJQUMvQixpQ0FBZ0M7O0lBQ2hDLDRCQUEyQjs7Ozs7QUFHN0IsMENBU0M7OztJQVJDLDBDQUFvQjs7SUFDcEIseUNBQW1COztJQUNuQix3Q0FBa0I7O0lBQ2xCLDZDQUF1Qjs7SUFDdkIsMkNBQXFCOztJQUNyQiwyQ0FBb0I7O0lBQ3BCLDZDQUF1Qjs7SUFDdkIsNERBQXNDOzs7OztBQUd4Qyx5Q0FNQzs7O0lBTEMsNkNBQXNCOztJQUN0QiwyQ0FBb0I7O0lBQ3BCLHlDQUFrQjs7SUFDbEIsdUNBQXdCOztJQUN4QiwwQ0FBc0I7Ozs7O0FBR3hCLDZCQVdDOzs7SUFWQywyQkFBcUI7O0lBQ3JCLCtCQUE0Qjs7SUFDNUIsMkJBQW9COztJQUNwQixnQ0FBK0I7O0lBQy9CLHVDQUE2Qzs7SUFDN0Msc0NBQTJDOztJQUMzQywrQkFBMkI7O0lBQzNCLGtDQUFtQzs7Ozs7QUFLckMsK0JBTUc7OztJQUxELCtCQUFtQjs7SUFDbkIsK0JBQW9COztJQUNwQiwyQkFBZ0I7O0lBQ2hCLDZCQUFrQjs7SUFDbEIsNkJBQXNCOzs7OztBQUd0QiwrQkFHQzs7O0lBRkQsK0JBQWtCOztJQUNqQiw2QkFBZTs7Ozs7QUFHbEIsOEJBOENDOzs7SUE3Q0MsOEJBQW1COztJQUNuQix1QkFBWTs7SUFDWiwrQkFBb0I7O0lBQ3BCLDZCQUFvQjs7SUFDcEIseUJBQWM7O0lBQ2QsMkJBQWlCOztJQUNqQiw4QkFBb0I7O0lBQ3BCLDRCQUFpQjs7SUFDakIsb0NBQTBCOztJQUMxQiwrQ0FBb0M7O0lBQ3BDLDRCQUFtQjs7SUFDbkIsaUNBQXVCOztJQUN2QixrQ0FBdUI7O0lBQ3ZCLDZDQUFrQzs7SUFDbEMsb0NBQTBCOztJQUMxQixrQ0FBdUI7O0lBQ3ZCLDJCQUFpQjs7SUFDakIsNEJBQW9COztJQUNwQiwyQkFBa0I7O0lBQ2xCLDRCQUFtQjs7SUFDbkIsb0NBQXlCOztJQUN6QixnQ0FBc0I7O0lBRXRCLGlDQUE2Qjs7SUFDN0IsbUNBQTBCOztJQUcxQixpQ0FBcUI7O0lBQ3JCLDJDQUErQjs7SUFDL0Isa0NBQXVCOztJQUN2QixpQ0FBc0I7O0lBQ3RCLHdDQUE4Qjs7SUFDOUIsa0NBQXdCOztJQUN4QiwwQ0FBZ0M7O0lBQ2hDLHNDQUE2Qjs7SUFDN0IseUNBQStCOztJQUMvQiw0QkFBa0I7O0lBQ2xCLDRCQUFpQjs7SUFDakIsOEJBQW9COztJQUNwQiw0QkFBbUI7O0lBR25CLGdDQUFpQjs7SUFFakIsOEJBQTRCOzs7OztBQUc5QixtQ0FJQzs7O0lBSEMsNENBQTJCOztJQUMzQiw2Q0FBNEI7O0lBQzVCLHNDQUFxQjs7Ozs7QUFLdkIsOEJBY0M7OztJQWJDLHNCQUFXOztJQUNYLHlCQUFlOztJQUNmLDZCQUFrQjs7SUFDbEIsNEJBQWlCOztJQUNqQix5QkFBYzs7SUFDZCw0QkFBaUI7O0lBQ2pCLDZCQUFtQjs7SUFDbkIsa0NBQXFDOztJQUNyQyxtQ0FBc0M7O0lBQ3RDLG1DQUFvQzs7SUFDcEMsaUNBQXVCOztJQUN2QixzQ0FBNkI7O0lBQzdCLDhCQUFvQjs7Ozs7QUFHdEIsNkJBV0U7OztJQVRBLHFCQUFZOztJQUNaLDhCQUFxQjs7SUFDckIsMkJBQWtCOztJQUNsQiwyQkFBa0I7O0lBQ2xCLDJCQUFrQjs7SUFDbEIsdUJBQWM7O0lBQ2QseUJBQWdCOztJQUNoQiwyQkFBa0I7O0lBQ2xCLDBCQUFpQjs7Ozs7QUFHbEIscUNBR0E7OztJQUZDLDZCQUFZOztJQUNaLHdDQUF1Qjs7Ozs7QUFHekIsb0NBdUJDOzs7SUF0QkMsb0NBQWlCOztJQUNqQiw4QkFBYTs7SUFDYixnQ0FBZ0I7O0lBQ2hCLGtDQUFpQjs7SUFDakIsZ0NBQWU7O0lBQ2Ysa0NBQWtCOztJQUNsQiw2QkFBYTs7SUFDYixrQ0FBa0I7O0lBQ2xCLHlDQUF5Qjs7SUFDekIsNkJBQWE7O0lBQ2IsNkJBQWE7O0lBQ2IsNkJBQWE7O0lBQ2IseUNBQXlCOztJQUN6Qiw2QkFBYTs7SUFDYixtQ0FBbUI7O0lBQ25CLG9DQUFvQjs7SUFDcEIsOENBQTZCOztJQUM3Qiw0Q0FBNEI7O0lBQzVCLHFDQUFvQjs7SUFDcEIseUNBQXVCOztJQUN2QixxQ0FBbUI7O0lBQ25CLHFDQUFvQjs7Ozs7QUFHdEIsa0NBSUM7OztJQUZDLGdDQUFxQjs7SUFDckIsMENBQTJCOzs7OztBQUc3QixxQ0FNQzs7O0lBTEMsa0NBQWU7O0lBQ2YsOEJBQWE7O0lBQ2Isb0NBQWtCOztJQUNsQixpQ0FBZTs7SUFDZixvQ0FBaUI7Ozs7O0FBR25CLDZCQVFDOzs7SUFORyw2QkFBbUI7O0lBQ25CLGdDQUFzQjs7SUFDdEIsK0JBQXFCOztJQUNyQixzQkFBWTs7SUFDWiwwQkFBaUI7O0lBQ2pCLHlCQUFjOzs7QUFHbEIsSUFBWSxZQUFZO0lBQ3RCLE9BQU8sV0FBWTtJQUNuQixNQUFNLFVBQVc7RUFDbEI7Ozs7O0FBRUQscUNBR0M7OztJQUZDLHFDQUFvQjs7SUFDcEIsNkNBQTJCOzs7OztBQUc3QixnREFJQzs7O0lBSEMsOENBQWtCOztJQUNsQixrREFBc0I7O0lBQ3RCLDZDQUF5Qjs7O0FBRzNCLElBQVksaUJBQWlCO0lBQzNCLE9BQU8sV0FBWTtFQUNwQjs7Ozs7QUFFRCxtQ0FNQzs7O0lBTEMsOEJBQWU7O0lBQ2YsNkJBQWM7O0lBQ2QsZ0NBQWlCOztJQUNqQiw2QkFBYzs7SUFDZCxnQ0FBcUI7Ozs7O0FBR3ZCLGdDQUVDOzs7SUFEQyxnQ0FBb0I7Ozs7O0FBR3RCLHFDQWlCQzs7O0lBaEJDLGdDQUFlOztJQUNmLGdDQUFlOztJQUNmLG1DQUFrQjs7SUFDbEIsK0JBQWM7O0lBQ2QsdUNBQXNCOztJQUN0QixxQ0FBb0I7O0lBQ3BCLG9DQUFtQjs7SUFDbkIsNkJBQVk7O0lBQ1osb0NBQW1COztJQUNuQixnQ0FBZTs7SUFDZixxQ0FBb0I7O0lBQ3BCLGlDQUFnQjs7SUFDaEIsa0NBQWlCOztJQUNqQiwwQ0FBeUI7O0lBQ3pCLHFDQUFvQjs7SUFDcEIsc0NBQXFCOzs7OztBQUd2QixrQ0FJQzs7O0lBSEMsNkJBQWU7O0lBQ2YsbUNBQXFCOztJQUNyQiw2QkFBZTs7Ozs7QUFHakIsb0NBSUM7OztJQUhDLCtCQUFlOztJQUNmLGtDQUFrQjs7SUFDbEIsbUNBQW1COzs7OztBQUdyQixxQ0FHQzs7O0lBRkMsZ0NBQWU7O0lBQ2YsK0JBQWM7Ozs7O0FBR2hCLGlDQXFCQzs7O0lBcEJDLDRCQUFlOztJQUNmLG1DQUFzQjs7SUFDdEIsaUNBQW9COztJQUNwQiw4Q0FBa0M7O0lBQ2xDLDJCQUFlOztJQUNmLDhCQUFpQjs7SUFDakIsZ0NBQW1COztJQUNuQiw0QkFBZTs7SUFDZix3Q0FBc0M7O0lBQ3RDLGdEQUFtQzs7SUFDbkMsaURBQW9DOztJQUNwQyxpQ0FBb0I7O0lBQ3BCLG1DQUFzQjs7SUFDdEIsK0JBQWtCOztJQUNsQixrQ0FBcUI7O0lBQ3JCLDBCQUFhOztJQUNiLGdDQUFtQjs7SUFDbkIsbUNBQXNCOztJQUN0QiwrQkFBa0I7O0lBQ2xCLHNDQUF3Qjs7Ozs7QUFHMUIsb0NBV0M7OztJQVZDLCtCQUFlOztJQUNmLHFDQUFxQjs7SUFDckIsNEJBQVk7O0lBQ1osOEJBQWM7O0lBQ2QsK0JBQWU7O0lBQ2YsdURBQXVDOztJQUN2QyxnREFBZ0M7O0lBQ2hDLG1DQUFvQjs7SUFDcEIsOENBQStCOztJQUMvQiwwQ0FBMEI7Ozs7O0FBRzVCLDhCQWlCQzs7O0lBaEJDLHlCQUFlOztJQUNmLGtEQUF3Qzs7SUFDeEMsK0NBQXFDOztJQUNyQyx3QkFBZTs7SUFDZix5Q0FBK0I7O0lBQy9CLHFDQUEyQjs7SUFDM0IsaUNBQXVCOztJQUN2QiwrQkFBcUI7O0lBQ3JCLGtDQUF3Qjs7SUFDeEIsb0NBQW1DOztJQUNuQyxtQ0FBaUM7O0lBQ2pDLG1DQUF5Qjs7SUFDekIsa0NBQXdCOztJQUN4QixzQ0FBNEI7O0lBQzVCLDZCQUFtQjs7SUFDbkIsaUNBQXVCOzs7OztBQUd6QixrQ0FhQzs7O0lBWkMsNkJBQWU7O0lBQ2Ysb0NBQXNCOztJQUN0QixrQ0FBb0I7O0lBQ3BCLCtCQUFpQjs7SUFDakIsaUNBQW1COztJQUNuQiw2QkFBZTs7SUFDZixpREFBbUM7O0lBQ25DLG1DQUFxQjs7SUFDckIsMkJBQWE7O0lBQ2IsaUNBQW1COztJQUNuQixvQ0FBc0I7O0lBQ3RCLGdDQUFrQjs7Ozs7QUFHcEIscUNBS0M7OztJQUpDLGdDQUFlOztJQUNmLGlDQUFnQjs7SUFDaEIscUNBQW9COztJQUNwQiwrQkFBYTs7Ozs7QUFHZixxQ0FhQzs7O0lBWkMsZ0NBQWU7O0lBQ2YsMkNBQW1DOztJQUNuQyxzQ0FBcUI7O0lBQ3JCLHdDQUF1Qjs7SUFDdkIsaUNBQWlCOztJQUNqQixvQ0FBbUI7O0lBQ25CLHdDQUF1Qjs7SUFDdkIsaUNBQWlCOztJQUNqQixnQ0FBYzs7SUFDZCw4Q0FBNkI7O0lBQzdCLHVDQUFzQjs7SUFDdEIseUNBQXVCOzs7OztBQUd6QixrQ0ErQkM7OztJQTlCQywwQkFBWTs7SUFDWiw2QkFBZTs7SUFDZix1Q0FBeUI7O0lBQ3pCLDhCQUF5Qjs7SUFDekIsc0RBQXdDOztJQUN4QyxtREFBcUM7O0lBQ3JDLG9DQUF1Qjs7SUFDdkIsaUNBQW1COztJQUNuQix1Q0FBa0M7O0lBQ2xDLG9DQUFzQjs7SUFDdEIscUNBQXVCOztJQUN2QixnQ0FBa0I7O0lBQ2xCLHFDQUE2Qjs7SUFDN0IseUNBQXFDOztJQUNyQyxxQ0FBdUI7O0lBQ3ZCLDZDQUErQjs7SUFDL0IsNkJBQXdCOztJQUN4QiwrQ0FBNEM7O0lBQzVDLGdDQUFrQjs7SUFDbEIsbUNBQXFCOztJQUNyQixxQ0FBOEI7O0lBQzlCLHlDQUEyQjs7SUFDM0IscUNBQXVCOztJQUN2QixpQ0FBdUI7O0lBQ3ZCLHNDQUFnQzs7SUFDaEMsc0NBQXdCOztJQUN4QiwwQ0FBNEI7O0lBQzVCLGdDQUFrQjs7SUFDbEIsNENBQStCOztJQUMvQixpQ0FBbUI7OztBQUdyQixJQUFZLFNBQVM7SUFDbkIsVUFBVSxjQUFlO0VBQzFCOzs7QUFFRCxJQUFZLGVBQWU7SUFFekIsSUFBSSxRQUFPO0lBQ1gsV0FBVyxlQUFjO0VBQzFCOzs7QUFFRCxJQUFZLGNBQWM7SUFFeEIsTUFBTSxVQUFTO0VBQ2hCIiwic291cmNlc0NvbnRlbnQiOlsiXHJcblxyXG5leHBvcnQgZW51bSBUUkFOU0FDVElPTl9UWVBFIHtcclxuICBTQUxFID0gXCJTQUxFXCIsXHJcbiAgUkVGVU5EID0gXCJSRUZVTkRcIixcclxuICBTQUxFX1JFRlVORCA9IFwiU0FMRV9SRUZVTkRcIixcclxuICBTQUxFX0VYQ0hBTkdFID0gXCJTQUxFX0VYQ0hBTkdFXCIsXHJcbiAgVk9JRCA9IFwiVk9JRFwiLFxyXG4gIFdFQl9SRVRVUk5TID0gXCJXRUJfUkVUVVJOU1wiXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSXRlbURpc2NvdW50IHtcclxuICB0cm5EaXNjb3VudHNQb3J0aW9uOiBudW1iZXI7XHJcbiAgdHJuUHJvbW90aW9uc1BvcnRpb246IG51bWJlcjtcclxuICByZWZ1bmRQb3J0aW9uOiBudW1iZXI7XHJcbiAgY3VycmVudFJlZnVuZFBvcnRpb24/OiBudW1iZXI7XHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIERFTElWRVJZX01FVEhPRFMge1xyXG4gIERFTElWRVJZID0gMSxcclxuICBEUk9QX1NISVAgPSAyLFxyXG4gIENPTExFQ1RfRlJPTV9TVE9SRSA9IDMsXHJcbiAgU0hJUF9UT19TVE9SRSA9IDRcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBQcm9kdWN0Q2hhbmdlIHtcclxuICBpdGVtTGluZUlkPzogbnVtYmVyO1xyXG4gIFNLVTogc3RyaW5nO1xyXG4gIHF1YW50aXR5OiBudW1iZXI7XHJcbiAgc2VsZWN0ZWRQcmljZT86IG51bWJlcjtcclxuICBsaW5lRGlzY291bnQ/OiBMaW5lRGlzY291bnQ7XHJcbiAgbGluZVByb21vdGlvbnM/OiBMaW5lUHJvbW90aW9ucztcclxuICBleGNoYW5nZT86IEV4Y2hhbmdlO1xyXG4gIHJlZnVuZGVkUXVhbnRpdHk/OiBudW1iZXI7ICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29udGFpbnMgcXVhbnRpdHkgb2YgYm90aCBmdWxsIHByaWNlZCBhbmQgcHJvbW90aW9uYWwgcXVhbnRpdGllc1xyXG4gIHJlZnVuZFByb21vdGlvbmFsUXVhbnRpdHk/OiBudW1iZXI7ICAgICAgICAgICAgICAgLy8gcHJvbW90aW9uYWwgcXVhbnRpdHlcclxuICByZWZ1bmRlZD86IGJvb2xlYW47XHJcbiAgcmVmdW5kZWRUb3RhbD86IG51bWJlcjtcclxuICByZWZ1bmRlZFJlYXNvbj86IHN0cmluZztcclxuICByZWZ1bmRlZFJlYXNvbkRlc2NyaXB0aW9uPzogc3RyaW5nO1xyXG4gIGlzQ2hlY2tlZD86IGJvb2xlYW47XHJcbiAgc2VhbGVkPzogYm9vbGVhbjtcclxuICBpc0xhc3RFeGNoYW5nZWQ/OiBib29sZWFuO1xyXG59XHJcblxyXG4vKipcclxuICogUHJvZHVjdFxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBQcm9kdWN0IGV4dGVuZHMgUHJvZHVjdENoYW5nZSB7XHJcbiAgaXRlbUxpbmVJZD86IG51bWJlcjtcclxuICBzdGF0dXM6IG51bWJlcjtcclxuICBzdWJHcm91cDogbnVtYmVyO1xyXG4gIGJyYW5kOiBzdHJpbmc7XHJcbiAgY3VycmVuY3k6IHN0cmluZztcclxuICBjYXRlZ29yeTogc3RyaW5nO1xyXG4gIGNvdW50cnlvZk9yaWdpbjogc3RyaW5nO1xyXG4gIHByb2R1Y3RJZDogc3RyaW5nO1xyXG4gIHByb2R1Y3RUeXBlOiBudW1iZXI7XHJcbiAgbmFtZT86IHN0cmluZztcclxuICBpbWFnZVVybHM6IFtzdHJpbmddO1xyXG4gIGlzSW1hZ2VGYWlsVG9Mb2FkPzogYm9vbGVhbjtcclxuICBzaXplOiBzdHJpbmc7XHJcbiAgdHlwZTogc3RyaW5nO1xyXG4gIHNlYXNvbjogbnVtYmVyO1xyXG4gIHByb2R1Y3RHcm91cDogbnVtYmVyO1xyXG4gIHN0eWxlQ29kZTogc3RyaW5nO1xyXG4gIG5vZGVTdHJ1Y3R1cmU6IE5vZGVTdHJ1Y3R1cmVbXTtcclxuICBiYXJjb2RlOiBzdHJpbmc7XHJcbiAgcHJpY2U6IFByaWNlW107XHJcbiAgY29sb3VyOiBzdHJpbmc7XHJcbiAgZGVzY3JpcHRpb246IHN0cmluZztcclxuICB0b3RhbExpbmVQcmljZTogbnVtYmVyO1xyXG4gIHRvdGFsOiBudW1iZXI7XHJcbiAgYWRkZWRJbkJhc2tldD86IGJvb2xlYW47XHJcbiAgc2VsZWN0ZWRWQVQ/OiBudW1iZXI7XHJcbiAgc2VsZWN0ZWRWQVRDb2RlPzogc3RyaW5nO1xyXG4gIHNlbGVjdGVkUlJQUHJpY2U/OiBudW1iZXI7XHJcbiAgbGluZURpc2NvdW50PzogTGluZURpc2NvdW50O1xyXG4gIGV4Y2hhbmdlPzogRXhjaGFuZ2U7XHJcbiAgLy8gcmVmdW5kZWRRdWFudGl0eT86IG51bWJlcjtcclxuICAvLyByZWZ1bmRlZD86IGJvb2xlYW47XHJcbiAgLy8gcmVmdW5kZWRUb3RhbD86IG51bWJlcjtcclxuICAvLyByZWZ1bmRlZFJlYXNvbkRlc2NyaXB0aW9uPzpzdHJpbmc7XHJcbiAgLy8gaXNDaGVja2VkPzpib29sZWFuO1xyXG4gIHJlZnVuZFByb21vdGlvbmFsUXVhbnRpdHk/OiBudW1iZXI7ICAgICAgICAgICAgICAgLy8gcHJvbW90aW9uYWwgcXVhbnRpdHlcclxuICBleGNoYW5nZVJlYXNvbj86IHN0cmluZztcclxuICBleGNoYW5nZVF1YW50aXR5PzogbnVtYmVyO1xyXG4gIGl0ZW1EaXNjb3VudHM6IEl0ZW1EaXNjb3VudDtcclxuXHJcbiAgZ2lmdENhcmROdW1iZXJJc3N1ZWQ/OiBzdHJpbmc7XHJcbiAgZ2lmdENhcmRBbW91bnQ/OiBudW1iZXI7XHJcbiAgZ2lmdENhcmRSZWNpcGllbnRFbWFpbD86IHN0cmluZztcclxuICBnaWZ0Q2FyZEV4cGlyeURhdGU/OiBzdHJpbmc7XHJcbiAgZ2lmdENhcmRSZWNpcGllbnROYW1lPzogc3RyaW5nO1xyXG4gIGdpZnRDYXJkPzogYm9vbGVhbjtcclxuXHJcbiAgZGlzY291bnRhYmxlOiBib29sZWFuO1xyXG4gIC8vIHNlYWxlZD86Ym9vbGVhbjtcclxuICBleGNsdWRlUHJvbW90aW9uOiBib29sZWFuO1xyXG4gIGNhdGVnb3JpZXM6IENhdGVnb3JpZXNbXTtcclxuICBkZXNjcmlwdGlvbnM6IERlc2NyaXB0aW9uc1tdO1xyXG4gIGJhcmNvZGVzOiBzdHJpbmdbXTtcclxuXHJcbiAgLy9OZXcgRmVpbGRzXHJcbiAgZXh0ZXJuYWxJZDogc3RyaW5nO1xyXG4gIGNyZWF0ZWREYXRlOiBzdHJpbmc7XHJcbiAgdXBkYXRlZERhdGU6IHN0cmluZztcclxuICBjcmVhdGVkQnk6IHN0cmluZztcclxuICB1cGRhdGVkQnk6IHN0cmluZztcclxuICBhdHRyaWJ1dGVzOiBDb3JlQXR0cmlidXRlW107XHJcbiAgaWQ6IHN0cmluZztcclxuICBsb25nX2Rlc2NyaXB0aW9uOiBzdHJpbmc7XHJcblxyXG4gIC8vIE1peGVkIFNhbGVzIGZpZWxkc1xyXG4gIGlzV2ViT3JkZXI/OiBib29sZWFuLFxyXG4gIGZ1bGxmaWxtZW50SWQ6IHN0cmluZyxcclxuICBmdWxsZmlsbWVudExvY2F0aW9uTmFtZT86IHN0cmluZyxcclxuICBkZWxpdmVyeU1ldGhvZD86IHN0cmluZyxcclxuICBkZWxpdmVyeUdyb3VwPzogc3RyaW5nLFxyXG4gIHNlbGVjdGVkSW52ZW50b3J5PzogSW52ZW50b3J5SW5mbztcclxuICBsZWFkVGltZT86IGxlYWRUaW1lXHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBsZWFkVGltZSB7XHJcbiAgdHlwZTogc3RyaW5nLFxyXG4gIHZhbHVlOiBzdHJpbmdcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBFeGNoYW5nZSB7XHJcbiAgZXhjaGFuZ2VJZDogbnVtYmVyLFxyXG4gIGxpbmVJdGVtSWQ6IG51bWJlcixcclxuICByZWFzb246IHN0cmluZyxcclxuICBxdWFudGl0eTogbnVtYmVyLFxyXG4gIG5ld0l0ZW1zOiBQcm9kdWN0W107XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ2F0ZWdvcmllcyB7XHJcbiAgaWQ6IHN0cmluZztcclxuICBwYXJlbnRJZDogc3RyaW5nO1xyXG4gIG5hbWU6IHN0cmluZztcclxuICBjYXRlZ29yeUlkOiBzdHJpbmc7XHJcbiAgc3RhdHVzOiBib29sZWFuO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIERlc2NyaXB0aW9ucyB7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIGNvdW50cnlDb2RlOiBzdHJpbmc7XHJcbiAgdmFsdWU6IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDb3JlQXR0cmlidXRlIHtcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgdmFsdWU6IHN0cmluZztcclxuICBzZWFyY2hhYmxlOiBib29sZWFuO1xyXG4gIGNvdW50cnlDb2RlOiBzdHJpbmc7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBCYXNrZXRcclxuICovXHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEJhc2tldCB7XHJcbiAgc3Vic2lkaWFyeUlkPzogc3RyaW5nO1xyXG4gIHByb2R1Y3RzOiBQcm9kdWN0W107XHJcbiAgdHJhbnNhY3Rpb25EaXNjb3VudDogYW55W107XHJcbiAgcXVhbnRpdHk6IG51bWJlcjtcclxuICB0b3RhbDogbnVtYmVyO1xyXG4gIHNhbGVUb3RhbDogbnVtYmVyO1xyXG4gIGRpc2NvdW50VG90YWw/OiBudW1iZXI7XHJcbiAgdHJhbnNhY3Rpb25JZD86IHN0cmluZztcclxuICBvZmZsaW5lVHJhbnNhY3Rpb25JZD86IHN0cmluZztcclxuICBiYXNlQ3VycmVuY3k6IHN0cmluZztcclxuICBiYXNrZXRUb3RhbD86IG51bWJlcjtcclxuICByZWZ1bmRUb3RhbD86IG51bWJlcjtcclxuICB0cmFuc2FjdGlvblByb21vdGlvbj86IFRyYW5zYWN0aW9uUHJvbW90aW9uW107XHJcbiAgY3VzdG9tZXI/OiBhbnk7XHJcbiAgZXhjaGFuZ2U/OiBFeGNoYW5nZVtdO1xyXG4gIGluU3RvcmVGbGFnPzogYm9vbGVhblxyXG59XHJcblxyXG5cclxuXHJcbi8qKlxyXG4gKiBQcmljZVxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBQcmljZSB7XHJcbiAgVkFUOiBudW1iZXI7XHJcbiAgVkFUQ29kZTogc3RyaW5nO1xyXG4gIHNhbGVzUHJpY2U6IG51bWJlcjtcclxuICBjdXJyZW5jeUNvZGU6IHN0cmluZztcclxuICBSUlBQcmljZTogbnVtYmVyO1xyXG59XHJcblxyXG4vKipcclxuICogTm9kZSBzdHJ1Y3R1cmVcclxuICovXHJcbmludGVyZmFjZSBOb2RlU3RydWN0dXJlIHtcclxuICBzdGF0dXM6IGJvb2xlYW47XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIG5vZGVUeXBlOiBzdHJpbmc7XHJcbiAgaXNPdmVycmlkZTogYm9vbGVhbjtcclxuICBub2RlSWQ6IHN0cmluZztcclxuICBwYXJlbnRJZDogc3RyaW5nO1xyXG59XHJcblxyXG4vKipcclxuICogTGluZSBEaXNjb3VudFxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBMaW5lRGlzY291bnQge1xyXG4gIGl0ZW1MaW5lSWQ6IHN0cmluZyxcclxuICBkaXNjb3VudEFtb3VudDogbnVtYmVyLFxyXG4gIGRpc2NvdW50VHlwZTogc3RyaW5nLFxyXG4gIC8vIHJlYXNvbkNvZGU6IHN0cmluZyxcclxuICBuYW1lPzogc3RyaW5nLFxyXG4gIHVuaXRQcmljZTogbnVtYmVyLFxyXG4gIGRpc2NvdW50ZWRMaW5lUHJpY2U/OiBudW1iZXIsXHJcbiAgcHJpY2VNYW5hZ2VyT3ZlcnJpZGU/OiBVc2VyT3ZlcnJpZGUsXHJcbiAgcHJpY2VPdmVycmlkZVJlYXNvbkNvZGU/OiBzdHJpbmcsXHJcbiAgcHJpY2VPdmVycmlkZVJlYXNvbk5hbWU/OiBzdHJpbmcsXHJcbiAgcHJpY2VPdmVycmlkZUFtb3VudD86IG51bWJlcixcclxuICBwZXJjZW50YWdlRGlzY291bnRNYW5hZ2VyT3ZlcnJpZGU/OiBVc2VyT3ZlcnJpZGUsXHJcbiAgcGVyY2VudGFnZURpc2NvdW50UmVhc29uQ29kZT86IHN0cmluZyxcclxuICBwZXJjZW50YWdlRGlzY291bnRSZWFzb25OYW1lPzogc3RyaW5nLFxyXG4gIHBlcmNlbnRhZ2VEaXNjb3VudFZhbHVlPzogbnVtYmVyXHJcbn1cclxuXHJcbi8qKlxyXG4gKiBVc2VyIE92ZXJyaWRlXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIFVzZXJPdmVycmlkZSB7XHJcbiAgdXNlcklkOiBzdHJpbmcsXHJcbiAgYXV0b21hdGljQXBwcm92ZTogc3RyaW5nLFxyXG4gIG9yaWdpbmFsVXNlcklkOiBzdHJpbmdcclxufVxyXG5cclxuLyoqXHJcbiogbGluZSBQcm9tb3Rpb25zXHJcbiovXHJcbmV4cG9ydCBpbnRlcmZhY2UgTGluZVByb21vdGlvbnMge1xyXG5cclxuICB0cmlnZ2VyOiBUcmlnZ2VyW10sXHJcbiAgaXRlbUxpbmVJZDogbnVtYmVyLFxyXG4gIHByb21vdGlvbklkOiBzdHJpbmcsXHJcbiAgZGlzcGxheVRleHQ6IHN0cmluZyxcclxuICBwcm9tb3Rpb25UeXBlOiBzdHJpbmcsXHJcbiAgcHJvbW90aW9uQW1vdW50OiBudW1iZXIsXHJcbiAgbmFtZTogc3RyaW5nLFxyXG4gIHByb21vdGlvbkluZm86IHN0cmluZyxcclxuICBwcm9tb3Rpb25MaW5lUHJpY2U6IG51bWJlclxyXG4gIHJlZnVuZGVkPzogYm9vbGVhbjtcclxufVxyXG5cclxuLyoqXHJcbiogdHJpZ2dlclxyXG4qL1xyXG5leHBvcnQgaW50ZXJmYWNlIFRyaWdnZXIge1xyXG4gIGl0ZW1MaW5lSWQ6IHN0cmluZztcclxuICBxdWFudGl0eT86IG51bWJlcjtcclxuICB0b3RhbFF1YW50aXR5PzogbnVtYmVyO1xyXG4gIGxpbmVQcm9tb3Rpb25BbW91bnQ/Om51bWJlcjsgICAvLyBwcm9tb3Rpb24gYW1vdW50IGFwcGxpZWQgYWNjcm9zcyB0aGUgbGluZVxyXG4gIHByb21vdGlvbkFtb3VudD86bnVtYmVyOyAgIC8vIHByb21vdGlvbiBhbW91bnQgYXBwbGllZCBvbiAxIHVuaXRcclxuICByZWZ1bmRlZFJlYXNvbj86IHN0cmluZztcclxuICByZWZ1bmRlZFJlYXNvbkRlc2NyaXB0aW9uPzpzdHJpbmc7XHJcbiAgcHJvbW90aW9uSWQ/OnN0cmluZztcclxufVxyXG5cclxuLyoqXHJcbiogVHJhbnNhY3Rpb24gUHJvbW90aW9uXHJcbiovXHJcbmV4cG9ydCBpbnRlcmZhY2UgVHJhbnNhY3Rpb25Qcm9tb3Rpb24ge1xyXG4gIGRpc3BsYXlUZXh0OiBzdHJpbmc7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIHByb21vdGlvbkFtb3VudDogbnVtYmVyO1xyXG4gIHByb21vdGlvbklkOiBzdHJpbmc7XHJcbiAgcHJvbW90aW9uSW5mbzogc3RyaW5nO1xyXG4gIHByb21vdGlvblR5cGU6IHN0cmluZztcclxuICBpdGVtTGluZUlkczogbnVtYmVyW107XHJcbiAgdHlwZT86c3RyaW5nO1xyXG4gIHN1YkxldmVsVHlwZT86UFJPTU9USU9OX0xFVkVMXHJcbiAgdHJpZ2dlcj86VHJpZ2dlcltdO1xyXG4gIGNvdXBvbkNvZGU/OnN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBSZWZ1bmRQcm9kdWN0Q2hhbmdlIHtcclxuICBpdGVtTGluZUlkPzogbnVtYmVyO1xyXG4gIHJlZnVuZGVkUXVhbnRpdHk/OiBudW1iZXI7XHJcbiAgcmVmdW5kZWRQcm9tb3Rpb25hbFF1YW50aXR5PzogbnVtYmVyO1xyXG4gIHJlZnVuZFRvdGFsPzogbnVtYmVyO1xyXG4gIHJlZnVuZGVkUmVhc29uPzogc3RyaW5nO1xyXG4gIHJlZnVuZGVkUmVhc29uRGVzY3JpcHRpb24/OiBzdHJpbmc7XHJcbiAgcmVmdW5kV2l0aFByb21vdGlvbjogYm9vbGVhbjtcclxuICBpc0xhc3RFeGNoYW5nZWQ/OiBib29sZWFuO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEludmVudG9yeUluZm8ge1xyXG4gIHN0b3JlTmFtZTogc3RyaW5nLFxyXG4gIHN0b3JlSWQ6IHN0cmluZyxcclxuICBxdWFudGl0eUF2YWlsYWJsZTogbnVtYmVyLFxyXG4gIHF1YW50aXR5UmVxdWlyZWQ6IG51bWJlclxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEludmVudG9yeVJlcXVlc3RJbmZvIGV4dGVuZHMgSW52ZW50b3J5SW5mbyB7XHJcbiAgcmVxdWVzdGVkUXVhbnRpdHk6IG51bWJlcixcclxuICByZXF1ZXN0ZWRBY3Rpb246IERFTElWRVJZX01FVEhPRFNcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBEZWxpdmVyeUluZm8ge1xyXG4gIGdyb3VwczogRGVsaXZlcnlHcm91cEluZm9bXVxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIERlbGl2ZXJ5R3JvdXBJbmZvIHtcclxuICBncm91cE51bWJlcjogbnVtYmVyO1xyXG4gIGl0ZW1zOiBQcm9kdWN0W107XHJcbiAgZXN0aW1hdGU/OiBFc3RpbWF0ZTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBFc3RpbWF0ZSB7XHJcbiAgdHlwZTogc3RyaW5nLFxyXG4gIHZhbHVlOiBzdHJpbmdcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBUcmFuc2FjdGlvbkRvY3VtZW50IHtcclxuICB0cmFuc2FjdGlvbklkPzogc3RyaW5nO1xyXG4gIHN1YnNpZGlhcnlJZD86IHN0cmluZztcclxuICBvZmZsaW5lVHJhbnNhY3Rpb25JZD86c3RyaW5nO1xyXG4gIHRyYW5zYWN0aW9uUmVmPzogc3RyaW5nO1xyXG4gIGRhdGVUaW1lPzogc3RyaW5nO1xyXG4gIG9yZ0NvZGU6IHN0cmluZztcclxuICBzdG9yZUlkOiBzdHJpbmc7XHJcbiAgc3RvcmVOb2RlSWQ6c3RyaW5nO1xyXG4gIHN0b3JlTm9kZVN0cnVjdHVyZTpzdHJpbmc7XHJcbiAgZGV2aWNlSWQ6IHN0cmluZztcclxuICB0ZXJtaW5hbElkOnN0cmluZztcclxuICBpbml0aWF0aW5nTW9kdWxlIDpzdHJpbmc7XHJcbiAgZXhwb3J0OmJvb2xlYW47XHJcbiAgdXNlcklkPzogc3RyaW5nO1xyXG4gIHVzZXJOYW1lPzpzdHJpbmc7XHJcbiAgY3VzdG9tZXI/OiBDdXN0b21lcjtcclxuICBiYXNrZXQ6IGFueTtcclxuICBiYXNrZXRTdW1tYXJ5OiBCYXNrZXRTdW1tYXJ5O1xyXG4gIC8vIGxpbmVEaXNjb3VudDogTGluZURpc2NvdW50W107XHJcbiAgYmFzZUN1cnJlbmN5OiBzdHJpbmc7XHJcbiAgc3BsaXRQYXltZW50Pzpib29sZWFuO1xyXG4gIGlzUGF5bWVudENvbXBsZXRlZD86Ym9vbGVhbjtcclxuICBwYXltZW50RGV0YWlscz86IGFueTtcclxuICB0eXBlPzogc3RyaW5nO1xyXG4gIG9wZXJhdGlvblN0YXR1cz86IHN0cmluZztcclxuICBjcmVhdGVkQXQ/OiBzdHJpbmc7XHJcbiAgdXBkYXRlZEF0Pzogc3RyaW5nO1xyXG4gIHRyYW5zQ29tcGxldGVkQXQ/OiBzdHJpbmc7XHJcbiAgaWQ/OiBzdHJpbmc7XHJcbiAgc2FsZVRvdGFsPzogbnVtYmVyO1xyXG4gIHJlYXNvbkNvZGU/OiBzdHJpbmc7XHJcbiAgcmVhc29uRGVzY3JpcHRpb24/OiBzdHJpbmc7XHJcbiAgb3ZlcnJpZGU/OiBVc2VyT3ZlcnJpZGU7XHJcbiAgb3JpZ2luYWxUcmFuc0lkPzpzdHJpbmc7XHJcbiAgb3JpZ2luYWxFeHRlcm5hbElkPzogc3RyaW5nO1xyXG4gIGFwaVJlc3BvbnNlPzogQVBJUmVzcG9uc2U7ICAgIC8vIFRPRE8gYWRkIGhhbmRsZXIgYXMgcGVyIGV4cG9ydCBwcm92aWRlclxyXG4gIHVucmVmZXJlbmNlZFJlZnVuZD86Ym9vbGVhbjtcclxuICBnaWZ0ZWRSZWNlaXB0Pzpib29sZWFuO1xyXG4gIGN1cnJlbnRUcmFuc2FjdGlvbkRldGFpbHM/OmFueTtcclxuICBpc0NoZWNrZWQ/OmJvb2xlYW47XHJcbiAgZXh0ZXJuYWxUcmFuc2FjdGlvbkRldGFpbHM/OiBleHRlcm5hbFRyYW5zYWN0aW9uRGV0YWlsc1tdO1xyXG4gIHJlZnVuZFJlcXVlc3Q/IDphbnlbXVxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEFQSVJlc3BvbnNlXHJcbntcclxuICBpbnRlcm5hbElkPzpudW1iZXI7XHJcbiAgdHJhbmlkPzpzdHJpbmdcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDdXJyZW50VHJhbnNhY3Rpb25EZXRhaWxze1xyXG4gIHByb2R1Y3RzOiBQcm9kdWN0W107XHJcbiAgbGluZURpc2NvdW50PzpMaW5lRGlzY291bnRbXTtcclxuICBsaW5lUHJvbW90aW9uPzpMaW5lUHJvbW90aW9uc1tdO1xyXG4gIHRyYW5zYWN0aW9uUHJvbW90aW9uPzpUcmFuc2FjdGlvblByb21vdGlvbltdO1xyXG4gIHRyYW5zYWN0aW9uRGlzY291bnQ/OlRyYW5zYWN0aW9uRGlzY291bnRbXTtcclxuICBiYXNrZXRTdW1tYXJ5PzpCYXNrZXRTdW1tYXJ5OyAgXHJcbiAgdGF4QnJlYWtkb3duPzpUYXhCcmVha2Rvd247ICBcclxuICB0b3RhbFRheFN1bW1hcnk/OlRvdGFsVGF4U3VtbWFyeVtdO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgQmFza2V0U3VtbWFyeSB7XHJcbiAgdG90YWxJdGVtcz86IG51bWJlcjtcclxuICBzYWxlVG90YWw/OiBudW1iZXI7XHJcbiAgVkFUVG90YWw/OiBudW1iZXI7XHJcbiAgZGlzY291bnRUb3RhbD86IG51bWJlcjtcclxuICBiYXNrZXRUb3RhbD86IG51bWJlcjtcclxuICByZWZ1bmRUb3RhbD86bnVtYmVyO1xyXG4gIHNoaXBwaW5nVG90YWw/OiBudW1iZXI7XHJcbiAgYmFza2V0VG90YWxXaXRoU2hpcHBpbmdUb3RhbD86IG51bWJlcjtcclxuICBpblN0b3JlPzogQmFza2V0U3VtbWFyeURldGFpbHM7XHJcbiAgd2ViT3JkZXI/OiBCYXNrZXRTdW1tYXJ5RGV0YWlscztcclxuICBjbmM/OiBCYXNrZXRTdW1tYXJ5RGV0YWlscztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBCYXNrZXRTdW1tYXJ5RGV0YWlscyB7XHJcbiAgdG90YWxJdGVtcz86IG51bWJlcjtcclxuICBzYWxlVG90YWw/OiBudW1iZXI7XHJcbiAgVkFUVG90YWw/OiBudW1iZXI7XHJcbiAgZGlzY291bnRUb3RhbD86IG51bWJlcjtcclxuICBiYXNrZXRUb3RhbD86IG51bWJlcjtcclxuICByZWZ1bmRUb3RhbD86bnVtYmVyO1xyXG4gIHNoaXBwaW5nVG90YWw/OiBudW1iZXI7XHJcbiAgYmFza2V0VG90YWxXaXRoU2hpcHBpbmdUb3RhbD86IG51bWJlcjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBUcmFuc2FjdGlvbkRpc2NvdW50e1xyXG4gIGRpc2NvdW50QW1vdW50Om51bWJlcjtcclxuICBkaXNjb3VudFR5cGU6U3RyaW5nO1xyXG4gIHJlYXNvbkNvZGU6c3RyaW5nO1xyXG4gIG92ZXJyaWRlPzogVXNlck92ZXJyaWRlO1xyXG4gIGl0ZW1MaW5lSWRzPzpudW1iZXJbXTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBUQmFza2V0IHtcclxuICBwcm9kdWN0czogVFByb2R1Y3RbXTtcclxuICBsaW5lRGlzY291bnQ6TGluZURpc2NvdW50W107XHJcbiAgZXhjaGFuZ2U6RXhjaGFuZ2VbXTtcclxuICBsaW5lUHJvbW90aW9uOkxpbmVQcm9tb3Rpb25zW107XHJcbiAgdHJhbnNhY3Rpb25Qcm9tb3Rpb24/OlRyYW5zYWN0aW9uUHJvbW90aW9uW107XHJcbiAgdHJhbnNhY3Rpb25EaXNjb3VudD86VHJhbnNhY3Rpb25EaXNjb3VudFtdO1xyXG4gIHRheEJyZWFrZG93bj86VGF4QnJlYWtkb3duO1xyXG4gIHRvdGFsVGF4U3VtbWFyeT86VG90YWxUYXhTdW1tYXJ5W107XHJcblxyXG4gIFxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFRFeGNoYW5nZXtcclxuICBleGNoYW5nZUlkPzpudW1iZXIsXHJcbiAgbGluZUl0ZW1JZD86IG51bWJlcixcclxuICByZWFzb24/OiBzdHJpbmcsXHJcbiAgcXVhbnRpdHk/OiBudW1iZXIsXHJcbiAgbmV3SXRlbXM/OlROZXdJdGVtc1tdO1xyXG4gIH1cclxuICBcclxuICBleHBvcnQgaW50ZXJmYWNlIFROZXdJdGVtc3tcclxuICBsaW5lSXRlbUlkOm51bWJlcixcclxuICAgUXVhbnRpdHk6bnVtYmVyXHJcbiAgfVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBUUHJvZHVjdCB7XHJcbiAgaXRlbUxpbmVJZDogc3RyaW5nO1xyXG4gIFNLVTogc3RyaW5nO1xyXG4gIGRlc2NyaXB0aW9uOiBzdHJpbmc7XHJcbiAgaW1hZ2VVcmxzOiBbc3RyaW5nXTtcclxuICBwcmljZTogbnVtYmVyO1xyXG4gIHRheENvZGU/OiBzdHJpbmc7XHJcbiAgdGF4UGVyY2VudD86IHN0cmluZztcclxuICBxdWFudGl0eTogbnVtYmVyO1xyXG4gIHJlZnVuZGVkUXVhbnRpdHk/OiBudW1iZXI7XHJcbiAgcmVmdW5kZWRQcm9tb3Rpb25hbFF1YW50aXR5PzpudW1iZXI7XHJcbiAgcmVmdW5kZWQ/OiBib29sZWFuO1xyXG4gIHJlZnVuZGVkVG90YWw/OiBudW1iZXI7XHJcbiAgcmVmdW5kZWRSZWFzb24/OnN0cmluZztcclxuICByZWZ1bmRlZFJlYXNvbkRlc2NyaXB0aW9uPzpzdHJpbmc7XHJcbiAgc2VsZWN0ZWRSUlBQcmljZT86IG51bWJlcjtcclxuICB0b3RhbExpbmVQcmljZTogbnVtYmVyO1xyXG4gIGJhckNvZGU/OiBzdHJpbmc7XHJcbiAgYmFyY29kZXM/OiBzdHJpbmdbXTtcclxuICBmbGFnZ2VkPzogYm9vbGVhbjtcclxuICBleGNoYW5nZT86RXhjaGFuZ2U7XHJcbiAgZXhjbHVkZVByb21vdGlvbjpib29sZWFuO1xyXG4gIGRpc2NvdW50YWJsZT86Ym9vbGVhbjtcclxuXHJcbiAgaXRlbURpc2NvdW50cz86SXRlbURpc2NvdW50cztcclxuICBpc0xhc3RFeGNoYW5nZWQ/OiBib29sZWFuO1xyXG5cclxuICAvLyBNaXhlZCBTYWxlcyBmaWVsZHNcclxuICBmdWxsZmlsbWVudElkOnN0cmluZyxcclxuICBmdWxsZmlsbWVudExvY2F0aW9uTmFtZTpzdHJpbmcsXHJcbiAgZGVsaXZlcnlNZXRob2Q/OnN0cmluZyxcclxuICBkZWxpdmVyeUdyb3VwPzpzdHJpbmcsXHJcbiAgZ2lmdENhcmROdW1iZXJJc3N1ZWQ/OiBzdHJpbmcsXHJcbiAgZ2lmdENhcmRBbW91bnQ/OiBudW1iZXIsXHJcbiAgZ2lmdENhcmRSZWNpcGllbnRFbWFpbD86IHN0cmluZyxcclxuICBnaWZ0Q2FyZEV4cGlyeURhdGU/OiBzdHJpbmcgLFxyXG4gIGdpZnRDYXJkUmVjaXBpZW50TmFtZT86IHN0cmluZyxcclxuICBnaWZ0Q2FyZD86Ym9vbGVhbixcclxuICBjdXJyZW5jeT86c3RyaW5nLFxyXG4gIGlzV2ViT3JkZXI/OmJvb2xlYW4sXHJcbiAgbGVhZFRpbWU/OiBsZWFkVGltZVxyXG4gIFxyXG4gIC8vIGN1cnJlbnR0cmFuc2FjdGlvbiBkb2MgY2hhbmdlc1xyXG4gIGxpbmVEaXNjb3VudD86YW55XHJcblxyXG4gIGF0dHJpYnV0ZXM/OkNvcmVBdHRyaWJ1dGVbXTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJdGVtRGlzY291bnRze1xyXG4gIHRybkRpc2NvdW50c1BvcnRpb246bnVtYmVyO1xyXG4gIHRyblByb21vdGlvbnNQb3J0aW9uOm51bWJlcjtcclxuICByZWZ1bmRQb3J0aW9uOm51bWJlcjtcclxufVxyXG5cclxuXHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEN1c3RvbWVyIHtcclxuICBpZDogc3RyaW5nO1xyXG4gIHRpdGxlPzogc3RyaW5nO1xyXG4gIGZpcnN0TmFtZTogc3RyaW5nO1xyXG4gIGxhc3ROYW1lOiBzdHJpbmc7XHJcbiAgZW1haWw6IHN0cmluZztcclxuICBwb3N0Q29kZTogc3RyaW5nO1xyXG4gIHRlbGVwaG9uZT86IHN0cmluZztcclxuICBiaWxsaW5nQWRkcmVzcz86IEFkZHJlc3MgfCBBZGRyZXNzW107XHJcbiAgc2hpcHBpbmdBZGRyZXNzPzogQWRkcmVzcyB8IEFkZHJlc3NbXTtcclxuICBzaGlwbWVudERldGFpbHM/OiBTaGlwbWVudERldGFpbHNbXTtcclxuICBhZGRyZXNzRGV0YWlsPzogc3RyaW5nO1xyXG4gIG5vQ3VzdG9tZXJTZWxlY3RlZD86IGJvb2xlYW47XHJcbiAgZXh0ZXJuYWxJZD86IHN0cmluZzsgXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQWRkcmVzcyBcclxue1xyXG4gIGlkPzogc3RyaW5nO1xyXG4gIGNvdW50cnlDb2RlPzogc3RyaW5nO1xyXG4gIGFkZHJlc3MxPzogc3RyaW5nO1xyXG4gIGFkZHJlc3MyPzogc3RyaW5nO1xyXG4gIGFkZHJlc3MzPzogc3RyaW5nO1xyXG4gIGNpdHk/OiBzdHJpbmc7XHJcbiAgY291bnR5Pzogc3RyaW5nO1xyXG4gIHBvc3RDb2RlPzogc3RyaW5nO1xyXG4gIGNvdW50cnk/OiBzdHJpbmc7XHJcbiB9XHJcblxyXG4gZXhwb3J0IGludGVyZmFjZSBTaGlwbWVudERldGFpbHMge1xyXG4gIGlkPzogc3RyaW5nLFxyXG4gIGRlbGl2ZXJ5R3JvdXA/OiBzdHJpbmcsXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgUGF5bWVudERldGFpbHMge1xyXG4gIGNhcmROdW1iZXI/OiBhbnk7XHJcbiAgc3FObz86bnVtYmVyO1xyXG4gIHJlc3VsdD86IHN0cmluZztcclxuICBjdXJyZW5jeTogc3RyaW5nO1xyXG4gIGFtb3VudDogc3RyaW5nO1xyXG4gIGF1dGhjb2RlPzogc3RyaW5nO1xyXG4gIHBhbj86IHN0cmluZztcclxuICBjYXJkVHlwZT86IHN0cmluZztcclxuICB0cmFuc2FjdGlvbkRhdGU/OiBzdHJpbmc7XHJcbiAgbWlkPzogc3RyaW5nO1xyXG4gIHRpZD86IHN0cmluZztcclxuICBjdm0/OiBzdHJpbmc7XHJcbiAgaG9zdFJlZmVyZW5jZUlkPzogc3RyaW5nO1xyXG4gIGFpZD86IHN0cmluZztcclxuICByZWNlaXB0Tm8/OiBzdHJpbmc7XHJcbiAgZXhwaXJ5ZGF0ZT86IHN0cmluZztcclxuICB0cmFuc2FjdGlvblJlZmVyZW5jZTogc3RyaW5nO1xyXG4gIGFwcGxpY2F0aW9uVmVyc2lvbj86IHN0cmluZztcclxuICBlbnRyeU1ldGhvZD86c3RyaW5nO1xyXG4gIHRyYW5zYWN0aW9uVHlwZTpzdHJpbmc7XHJcbiAgdG90YWxhbW91bnQ6c3RyaW5nO1xyXG4gIHBheW1lbnRUeXBlPzpzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgVGF4QnJlYWtkb3duXHJcbntcclxuICB0YXhMaW5lcyA6IFRheExpbmVbXSxcclxuICB0b3RhbFRheGFibGVBbW91bnQ6IG51bWJlcjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBUb3RhbFRheFN1bW1hcnl7XHJcbiAgVkFUQ29kZTpzdHJpbmcsXHJcbiAgVkFUIDogbnVtYmVyO1xyXG4gIFByZVRheFN1bTogIG51bWJlclxyXG4gIFRheFN1bTogIG51bWJlclxyXG4gIFRYcmF0ZVN1bTogbnVtYmVyXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgVGF4TGluZVxyXG57XHJcbiAgICBpdGVtTGluZUlkOiBudW1iZXIsXHJcbiAgICB0YXhhYmxlQW1vdW50OiBudW1iZXIsXHJcbiAgICB0YXhMaW5lVG90YWw6IG51bWJlcixcclxuICAgIFZBVDogbnVtYmVyLFxyXG4gICAgVkFUQ29kZSA6IHN0cmluZyxcclxuICAgIFByZVRheDogbnVtYmVyXHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIERJU0NPVU5UVFlQRSB7XHJcbiAgUEVSQ0VOVCA9ICdQZXJjZW50JyxcclxuICBBTU9VTlQgPSAnQU1PVU5UJ1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFRyYW5zYWN0aW9uSW5mbyB7XHJcbiAgc2hpcHBpbmdJZD86IHN0cmluZyxcclxuICBleHRlcm5hbFNoaXBwaW5nSWQ/OiBzdHJpbmdcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBleHRlcm5hbFRyYW5zYWN0aW9uRGV0YWlscyB7XHJcbiAgdW5pcXVlSWQ/OiBzdHJpbmcsXHJcbiAgcHJvdmlkZXJUeXBlPzogc3RyaW5nLFxyXG4gIGRldGFpbHM/OiBUcmFuc2FjdGlvbkluZm9cclxufVxyXG5cclxuZXhwb3J0IGVudW0gSU5JVElBVElOR19NT0RVTEUge1xyXG4gIEVCQVNLRVQgPSBcImVCYXNrZXRcIlxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIHBlbmRpbmdNZXRob2Qge1xyXG4gIF90eXBlPzogc3RyaW5nO1xyXG4gIHR5cGU/OiBzdHJpbmc7XHJcbiAgbWVzc2FnZT86IHN0cmluZztcclxuICBwYXRoPzogc3RyaW5nO1xyXG4gIGRldGFpbHM/OiBTaGlwbWVudElkO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNoaXBtZW50SWQge1xyXG4gIHNoaXBtZW50SWQ/OiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ3VzdG9tZXJBZGRyZXNzIHtcclxuICBfdHlwZT86IHN0cmluZztcclxuICBlbWFpbD86IHN0cmluZztcclxuICBhZGRyZXNzMT86IHN0cmluZztcclxuICBjaXR5Pzogc3RyaW5nO1xyXG4gIGNvdW50cnlfY29kZT86IHN0cmluZztcclxuICBmaXJzdF9uYW1lPzogc3RyaW5nO1xyXG4gIGZ1bGxfbmFtZT86IHN0cmluZztcclxuICBpZD86IHN0cmluZztcclxuICBsYXN0X25hbWU/OiBzdHJpbmc7XHJcbiAgcGhvbmU/OiBzdHJpbmc7XHJcbiAgc2FsdXRhdGlvbj86IHN0cmluZztcclxuICBjX2FyZWE/OiBzdHJpbmc7XHJcbiAgY19lbWFpbD86IHN0cmluZztcclxuICBjX3Bob25lV2hhdHNBcHA/OiBzdHJpbmc7XHJcbiAgY19zdHJWYWx1ZT86IHN0cmluZztcclxuICBwb3N0YWxfY29kZT86IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDdXN0b21lckluZm8ge1xyXG4gIF90eXBlPzogc3RyaW5nO1xyXG4gIGN1c3RvbWVyX2lkPzogc3RyaW5nO1xyXG4gIGVtYWlsPzogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEdyb3VwZWRUYXhJdGVtIHtcclxuICBfdHlwZT86IHN0cmluZztcclxuICB0YXhfcmF0ZT86IG51bWJlcjtcclxuICB0YXhfdmFsdWU/OiBudW1iZXI7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgYWRkaXRpb25hbE5vdGVzIHtcclxuICBfdHlwZT86IHN0cmluZztcclxuICBsaW5rPzogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFByb2R1Y3RJdGVtIHtcclxuICBfdHlwZT86IHN0cmluZztcclxuICBhZGp1c3RlZF90YXg/OiBudW1iZXI7XHJcbiAgYmFzZV9wcmljZT86IG51bWJlcjtcclxuICBib251c19wcm9kdWN0X2xpbmVfaXRlbT86IGJvb2xlYW47XHJcbiAgZ2lmdD86IGJvb2xlYW47XHJcbiAgaXRlbV9pZD86IHN0cmluZztcclxuICBpdGVtX3RleHQ/OiBzdHJpbmc7XHJcbiAgcHJpY2U/OiBudW1iZXI7XHJcbiAgcHJpY2VfYWRqdXN0bWVudHM/OiBQcmljZUFkanVzdG1lbnRbXTtcclxuICBwcmljZV9hZnRlcl9pdGVtX2Rpc2NvdW50PzogbnVtYmVyO1xyXG4gIHByaWNlX2FmdGVyX29yZGVyX2Rpc2NvdW50PzogbnVtYmVyO1xyXG4gIHByb2R1Y3RfaWQ/OiBzdHJpbmc7XHJcbiAgcHJvZHVjdF9uYW1lPzogc3RyaW5nO1xyXG4gIHF1YW50aXR5PzogbnVtYmVyO1xyXG4gIHNoaXBtZW50X2lkPzogc3RyaW5nO1xyXG4gIHRheD86IG51bWJlcjtcclxuICB0YXhfYmFzaXM/OiBudW1iZXI7XHJcbiAgdGF4X2NsYXNzX2lkPzogc3RyaW5nO1xyXG4gIHRheF9yYXRlPzogbnVtYmVyO1xyXG4gIGNfb3N1T2JqZWN0RGF0YT86c3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNoaXBwaW5nTWV0aG9kIHtcclxuICBfdHlwZT86IHN0cmluZztcclxuICBkZXNjcmlwdGlvbj86IHN0cmluZztcclxuICBpZD86IHN0cmluZztcclxuICBuYW1lPzogc3RyaW5nO1xyXG4gIHByaWNlPzogbnVtYmVyO1xyXG4gIGNfYXBwcm9hY2hpbmdUaHJlc2hvbGRNZXNzYWdlPzogc3RyaW5nO1xyXG4gIGNfZXN0aW1hdGVkQXJyaXZhbFRpbWU/OiBzdHJpbmc7XHJcbiAgY19pc0VtYWlsPzogYm9vbGVhbjtcclxuICBjX3N0b3JlUGlja3VwRW5hYmxlZD86IGJvb2xlYW47XHJcbiAgY190aHJlc2hvbGRWYWx1ZT86IG51bWJlcjtcclxufSBcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2Ugc2hpcG1lbnQge1xyXG4gIF90eXBlPzogc3RyaW5nO1xyXG4gIGFkanVzdGVkX21lcmNoYW5kaXplX3RvdGFsX3RheD86IG51bWJlcjtcclxuICBhZGp1c3RlZF9zaGlwcGluZ190b3RhbF90YXg/OiBudW1iZXI7XHJcbiAgZ2lmdD86IGJvb2xlYW47XHJcbiAgbWVyY2hhbmRpemVfdG90YWxfdGF4PzogbnVtYmVyO1xyXG4gIHByb2R1Y3Rfc3ViX3RvdGFsPzogbnVtYmVyO1xyXG4gIHByb2R1Y3RfdG90YWw/OiBudW1iZXI7XHJcbiAgc2hpcG1lbnRfaWQ/OiBzdHJpbmc7XHJcbiAgc2hpcG1lbnRfdG90YWw/OiBudW1iZXI7XHJcbiAgc2hpcHBpbmdfYWRkcmVzcz86IEN1c3RvbWVyQWRkcmVzcztcclxuICBzaGlwcGluZ19tZXRob2Q/OiBTaGlwcGluZ01ldGhvZDtcclxuICBzaGlwcGluZ19zdGF0dXM/OiBzdHJpbmc7XHJcbiAgc2hpcHBpbmdfdG90YWw/OiBudW1iZXI7XHJcbiAgc2hpcHBpbmdfdG90YWxfdGF4PzogbnVtYmVyO1xyXG4gIHRheF90b3RhbD86IG51bWJlcjtcclxuICBjX2Zyb21TdG9yZUlkPzogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNoaXBwaW5nSXRlbSB7XHJcbiAgX3R5cGU/OiBzdHJpbmc7XHJcbiAgYWRqdXN0ZWRfdGF4PzogbnVtYmVyO1xyXG4gIGJhc2VfcHJpY2U/OiBudW1iZXI7XHJcbiAgaXRlbV9pZD86IHN0cmluZztcclxuICBpdGVtX3RleHQ/OiBzdHJpbmc7XHJcbiAgcHJpY2U/OiBudW1iZXI7XHJcbiAgcHJpY2VfYWZ0ZXJfaXRlbV9kaXNjb3VudD86IG51bWJlcjtcclxuICBzaGlwbWVudF9pZD86IHN0cmluZztcclxuICB0YXg/OiBudW1iZXI7XHJcbiAgdGF4X2Jhc2lzPzogbnVtYmVyO1xyXG4gIHRheF9jbGFzc19pZD86IHN0cmluZztcclxuICB0YXhfcmF0ZT86IG51bWJlcjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBBcHBsaWVkRGlzY291bnQge1xyXG4gIF90eXBlPzogc3RyaW5nLFxyXG4gIGFtb3VudD86IG51bWJlcixcclxuICBwZXJjZW50YWdlPzogbnVtYmVyLFxyXG4gIHR5cGU/OiBzdHJpbmdcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBQcmljZUFkanVzdG1lbnQge1xyXG4gIF90eXBlPzogc3RyaW5nLFxyXG4gIGFwcGxpZWRfZGlzY291bnQ/OiBBcHBsaWVkRGlzY291bnQsXHJcbiAgY291cG9uX2NvZGU/OiBzdHJpbmcsXHJcbiAgY3JlYXRpb25fZGF0ZT86IHN0cmluZyxcclxuICBjdXN0b20/OiBib29sZWFuLFxyXG4gIGl0ZW1fdGV4dD86IHN0cmluZyxcclxuICBsYXN0X21vZGlmaWVkPzogc3RyaW5nLFxyXG4gIG1hbnVhbD86IGJvb2xlYW4sXHJcbiAgcHJpY2U/OiBudW1iZXJcclxuICBwcmljZV9hZGp1c3RtZW50X2lkPzogc3RyaW5nLFxyXG4gIHByb21vdGlvbl9pZD86IHN0cmluZyxcclxuICBwcm9tb3Rpb25fbGluaz86IHN0cmluZ1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIE9yZGVyRGV0YWlscyB7XHJcbiAgX3Y/OiBzdHJpbmc7XHJcbiAgX3R5cGU/OiBzdHJpbmc7XHJcbiAgX3Jlc291cmNlX3N0YXRlPzogc3RyaW5nO1xyXG4gIF9mbGFzaD86IHBlbmRpbmdNZXRob2RbXTtcclxuICBhZGp1c3RlZF9tZXJjaGFuZGl6ZV90b3RhbF90YXg/OiBudW1iZXI7XHJcbiAgYWRqdXN0ZWRfc2hpcHBpbmdfdG90YWxfdGF4PzogbnVtYmVyO1xyXG4gIGFnZW50X2Jhc2tldD86IGJvb2xlYW47XHJcbiAgYmFza2V0X2lkPzogc3RyaW5nO1xyXG4gIGJpbGxpbmdfYWRkcmVzcz86IEN1c3RvbWVyQWRkcmVzcztcclxuICBjaGFubmVsX3R5cGU/OiBzdHJpbmc7XHJcbiAgY3JlYXRpb25fZGF0ZT86IHN0cmluZztcclxuICBjdXJyZW5jeT86IHN0cmluZztcclxuICBjdXN0b21lcl9pbmZvPzogQ3VzdG9tZXJJbmZvO1xyXG4gIGdyb3VwZWRfdGF4X2l0ZW1zPzogR3JvdXBlZFRheEl0ZW1bXTtcclxuICBsYXN0X21vZGlmaWVkPzogc3RyaW5nO1xyXG4gIG1lcmNoYW5kaXplX3RvdGFsX3RheD86IG51bWJlcjtcclxuICBub3Rlcz86IGFkZGl0aW9uYWxOb3RlcztcclxuICBvcmRlcl9wcmljZV9hZGp1c3RtZW50cz86IFByaWNlQWRqdXN0bWVudFtdLFxyXG4gIG9yZGVyX25vPzogc3RyaW5nO1xyXG4gIG9yZGVyX3RvdGFsPzogbnVtYmVyO1xyXG4gIHByb2R1Y3RfaXRlbXM/OiBQcm9kdWN0SXRlbVtdO1xyXG4gIHByb2R1Y3Rfc3ViX3RvdGFsPzogbnVtYmVyO1xyXG4gIHByb2R1Y3RfdG90YWw/OiBudW1iZXI7XHJcbiAgc2hpcG1lbnRzPzogc2hpcG1lbnRbXTtcclxuICBzaGlwcGluZ19pdGVtcz86IFNoaXBwaW5nSXRlbVtdO1xyXG4gIHNoaXBwaW5nX3RvdGFsPzogbnVtYmVyO1xyXG4gIHNoaXBwaW5nX3RvdGFsX3RheD86IG51bWJlcjtcclxuICB0YXhhdGlvbj86IHN0cmluZztcclxuICB0YXhfcm91bmRlZF9hdF9ncm91cD86IGJvb2xlYW47XHJcbiAgdGF4X3RvdGFsPzogbnVtYmVyO1xyXG59XHJcblxyXG5leHBvcnQgZW51bSBQUk9WSURFUlMge1xyXG4gIFNBTEVTRk9SQ0UgPSBcIlNhbGVzZm9yY2VcIlxyXG59XHJcblxyXG5leHBvcnQgZW51bSBQUk9NT1RJT05fTEVWRUxcclxue1xyXG4gIExJTkU9XCJMSU5FXCIsXHJcbiAgVFJBTlNBQ1RJT049XCJUUkFOU0FDVElPTlwiXHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIFBST01PVElPTl9UWVBFXHJcbntcclxuICBDT1VQT049XCJDT1VQT05cIlxyXG59XHJcblxyXG4iXX0=
|
|
@@ -22,4 +22,4 @@ var MapperLibraryModule = /** @class */ (function () {
|
|
|
22
22
|
return MapperLibraryModule;
|
|
23
23
|
}());
|
|
24
24
|
export { MapperLibraryModule };
|
|
25
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwcGVyLWxpYnJhcnkubW9kdWxlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHBtY3JldGFpbC9tYXBwZXItbGlicmFyeS8iLCJzb3VyY2VzIjpbImxpYi9tYXBwZXItbGlicmFyeS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBSXBFO0lBQUE7SUFVbUMsQ0FBQzs7Z0JBVm5DLFFBQVEsU0FBQztvQkFDUixZQUFZLEVBQUU7d0JBQ1osc0JBQXNCO3FCQUN2QjtvQkFDRCxPQUFPLEVBQUUsRUFDUjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1Asc0JBQXNCO3FCQUN2QjtpQkFDRjs7SUFDa0MsMEJBQUM7Q0FBQSxBQVZwQyxJQVVvQztTQUF2QixtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXBwZXJMaWJyYXJ5Q29tcG9uZW50IH0gZnJvbSAnLi9tYXBwZXItbGlicmFyeS5jb21wb25lbnQnO1xyXG5cclxuXHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGRlY2xhcmF0aW9uczogW1xyXG4gICAgTWFwcGVyTGlicmFyeUNvbXBvbmVudFxyXG4gIF0sXHJcbiAgaW1wb3J0czogW1xyXG4gIF0sXHJcbiAgZXhwb3J0czogW1xyXG4gICAgTWFwcGVyTGlicmFyeUNvbXBvbmVudFxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIE1hcHBlckxpYnJhcnlNb2R1bGUgeyB9XHJcbiJdfQ==
|
|
@@ -18,10 +18,10 @@ class MapperLibraryComponent {
|
|
|
18
18
|
MapperLibraryComponent.decorators = [
|
|
19
19
|
{ type: Component, args: [{
|
|
20
20
|
selector: 'lib-mapper-library',
|
|
21
|
-
template: `
|
|
22
|
-
<p>
|
|
23
|
-
mapper-library works!
|
|
24
|
-
</p>
|
|
21
|
+
template: `
|
|
22
|
+
<p>
|
|
23
|
+
mapper-library works!
|
|
24
|
+
</p>
|
|
25
25
|
`
|
|
26
26
|
}] }
|
|
27
27
|
];
|
|
@@ -5895,7 +5895,7 @@ class WebReturnSalesforceMapperBuilderClass {
|
|
|
5895
5895
|
let transactionPromotionObj = (/** @type {?} */ ({}));
|
|
5896
5896
|
transactionPromotionObj.displayText = transactionPromotion.item_text ? transactionPromotion.item_text : '';
|
|
5897
5897
|
transactionPromotionObj.name = transactionPromotion.coupon_code ? transactionPromotion.coupon_code : (transactionPromotion.item_text ? transactionPromotion.item_text : '');
|
|
5898
|
-
transactionPromotionObj.promotionAmount = transactionPromotion.price ?
|
|
5898
|
+
transactionPromotionObj.promotionAmount = transactionPromotion.price ? Math.abs(transactionPromotion.price) : 0;
|
|
5899
5899
|
transactionPromotionObj.promotionId = transactionPromotion.promotion_id ? transactionPromotion.promotion_id : '';
|
|
5900
5900
|
transactionPromotionObj.promotionInfo = transactionPromotion.item_text ? transactionPromotion.item_text : '';
|
|
5901
5901
|
transactionPromotionObj.promotionType = transactionPromotion.applied_discount && transactionPromotion.applied_discount.type ? transactionPromotion.applied_discount.type : '';
|
|
@@ -6002,18 +6002,14 @@ class WebReturnSalesforceMapperBuilderClass {
|
|
|
6002
6002
|
* @return {THIS}
|
|
6003
6003
|
*/
|
|
6004
6004
|
updateTransactionPromotionPrtionCalc() {
|
|
6005
|
-
/** @type {?} */
|
|
6006
|
-
let doc;
|
|
6007
|
-
if ((/** @type {?} */ (this)).webReturnObject.basket.transactionPromotion) {
|
|
6005
|
+
if ((/** @type {?} */ (this)).webReturnObject.basket.transactionPromotion && (/** @type {?} */ (this)).webReturnObject.basket.transactionPromotion.length > 0) {
|
|
6008
6006
|
(/** @type {?} */ (this)).webReturnObject.basket.transactionPromotion.forEach((/**
|
|
6009
6007
|
* @param {?} tr
|
|
6010
6008
|
* @return {?}
|
|
6011
6009
|
*/
|
|
6012
6010
|
tr => {
|
|
6013
|
-
|
|
6014
|
-
(/** @type {?} */ (this)).transactionPromotionProductPortionCalc((/** @type {?} */ (this)).webReturnObject, tr);
|
|
6011
|
+
(/** @type {?} */ (this)).transactionPromotionProductPortionCalc((/** @type {?} */ (this)).webReturnObject, tr);
|
|
6015
6012
|
}));
|
|
6016
|
-
(/** @type {?} */ (this)).webReturnObject = doc;
|
|
6017
6013
|
}
|
|
6018
6014
|
return (/** @type {?} */ (this));
|
|
6019
6015
|
}
|