Sanakey
2021-04-30 8724a444c8a1d09dc8f9efd005e8443aad8df1ab
pages/flashSaleCreate/flashSaleCreate.js
@@ -393,7 +393,7 @@
                    maxlength: '长度不能大于15'
                },
                originalPrice: {
                    required: '请输入产品原价',
                    required: '请输入产品标价',
                    number: '价格必须为数字'
                },
                flashSalePrice: {
@@ -417,4 +417,4 @@
        console.log('hhhh,', validatorInstance);
    },
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxhc2hTYWxlQ3JlYXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZmxhc2hTYWxlQ3JlYXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNBLHVEQUFrRDtBQUVsRCxJQUFJLGlCQUE2QixDQUFDO0FBRWxDLElBQUksQ0FBQztJQUNILElBQUksRUFBRTtRQUNKLFFBQVEsRUFBQyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRTtRQUMxQyxpQkFBaUIsRUFBQyxFQUFFO1FBQ3BCLE1BQU0sRUFBQyxDQUFDO1FBQ1IsTUFBTSxFQUFDLE1BQU07UUFDYixRQUFRLEVBQUUsRUFBRTtRQUNaLE9BQU8sRUFBQyxFQUFFO1FBQ1YsUUFBUSxFQUFDLEVBQUU7UUFDWCxRQUFRLEVBQUMsRUFBRTtLQUNaO0lBQ0QsTUFBTSxZQUFDLE9BQU87UUFFWixJQUFJLE9BQU8sR0FBRSxPQUFPLENBQUMsT0FBTyxJQUFFLEVBQUUsQ0FBQztRQUNqQyxJQUFJLFFBQVEsR0FBRSxPQUFPLENBQUMsUUFBUSxJQUFFLEVBQUUsQ0FBQztRQUNuQyxJQUFJLENBQUMsT0FBTyxDQUFDO1lBQ1gsYUFBYSxFQUFFLHdEQUFzRCxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQVE7WUFDdkYsT0FBTyxTQUFBO1lBQ1AsUUFBUSxVQUFBO1NBQ1QsQ0FBQyxDQUFBO1FBQ0YsSUFBSSxPQUFPLEVBQUU7WUFDWCxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDcEI7SUFDSCxDQUFDO0lBQ0ssV0FBVzs7Ozs7O3dCQUNYLE9BQU8sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQzt3QkFDVixXQUFNLEVBQUUsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUN0QyxFQUFFLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQztnQ0FDZixHQUFHLEVBQUMsaURBQWlEO2dD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QkFDZCxNQUFNLEVBQUUsSUFBSTtpQkFDYjtnQkFDRCxjQUFjLEVBQUU7b0JBQ2QsUUFBUSxFQUFFLElBQUk7b0JBQ2QsTUFBTSxFQUFFLElBQUk7aUJBQ2I7Z0JBQ0QsY0FBYyxFQUFFO29CQUNkLFFBQVEsRUFBRSxJQUFJO29CQUNkLE1BQU0sRUFBRSxJQUFJO2lCQUNiO2dCQUNELGNBQWMsRUFBRTtvQkFDZCxRQUFRLEVBQUUsSUFBSTtvQkFDZCxNQUFNLEVBQUUsSUFBSTtpQkFDYjtnQkFDRCxvQkFBb0IsRUFBRTtvQkFDcEIsUUFBUSxFQUFFLElBQUk7aUJBQ2Y7YUFDRjtZQUNELFFBQVEsRUFBRTtnQkFDUixlQUFlLEVBQUU7b0JBQ2YsUUFBUSxFQUFFLFNBQVM7b0JBQ25CLFNBQVMsRUFBRSxVQUFVO2lCQUN0QjtnQkFDRCxhQUFhLEVBQUU7b0JBQ2IsUUFBUSxFQUFFLFNBQVM7b0JBQ25CLE1BQU0sRUFBRSxTQUFTO2lCQUNsQjtnQkFDRCxjQUFjLEVBQUU7b0JBQ2QsUUFBUSxFQUFFLFVBQVU7b0JBQ3BCLE1BQU0sRUFBRSxTQUFTO2lCQUNsQjtnQkFDRCxjQUFjLEVBQUU7b0JBQ2QsUUFBUSxFQUFFLFNBQVM7b0JBQ25CLE1BQU0sRUFBRSxTQUFTO2lCQUNsQjtnQkFDRCxjQUFjLEVBQUU7b0JBQ2QsUUFBUSxFQUFFLGFBQWE7b0JBQ3ZCLE1BQU0sRUFBRSxTQUFTO2lCQUNsQjtnQkFDRCxvQkFBb0IsRUFBRTtvQkFDcEIsUUFBUSxFQUFFLFNBQVM7aUJBQ3BCO2FBQ0Y7WUFDRCxVQUFVLEVBQUMsSUFBSTtTQUNoQixFQUFDLElBQUksQ0FBQyxDQUFBO1FBSVAsT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUN6QyxDQUFDO0NBQ0YsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiLy8gaW1wb3J0ICogYXMgZGF5anMgZnJvbSBcImRheWpzXCI7XHJcbmltcG9ydCBNeVZhbGlkYXRvciBmcm9tIFwiLi4vLi4vdXRpbHMvbXlWYWxpZGF0b3JcIjtcclxuXHJcbmxldCB2YWxpZGF0b3JJbnN0YW5jZTpNeVZhbGlkYXRvcjtcclxuLy8gY29uc3QgYXBwID0gZ2V0QXBwPElBcHBPcHRpb24+KCk7XHJcblBhZ2Uoe1xyXG4gIGRhdGE6IHtcclxuICAgIGF1dG9zaXplOnsgbWF4SGVpZ2h0OiAxMjAsIG1pbkhlaWdodDogNTAgfSxcclxuICAgIHZhbGlkYXRvckluc3RhbmNlOnt9LFxyXG4gICAgZnJlZUlkOjAsXHJcbiAgICBmb3JtSWQ6NzEwODAyLCAvL+WKn+iDveWPt++8muenkuadgCA3MTA4MDIg77yMIOaKpeWQjemCgOe6piA3MTA4MDMg77yM5Zui6LStIDcxMDgwNFxyXG4gICAgZm9ybURhdGE6IHt9LFxyXG4gICAgZG9jY29kZTonJyxcclxuICAgIGZyb21QYWdlOicnLFxyXG4gICAgZGVsaXZlcnk6e31cclxuICB9LFxyXG4gIG9uTG9hZChvcHRpb25zKSB7XHJcbiAgICAvLyBjb25zb2xlLmxvZyhhcHApO1xyXG4gICAgbGV0IGRvY2NvZGUgPW9wdGlvbnMuZG9jY29kZXx8Jyc7XHJcbiAgICBsZXQgZnJvbVBhZ2UgPW9wdGlvbnMuZnJvbVBhZ2V8fCcnO1xyXG4gICAgdGhpcy5zZXREYXRhKHtcclxuICAgICAgZmlsZVVwbG9hZFVybDogYC9zaG9wcGluZy9wYW5pY0J1eWluZy5kbz9tPXVwbG9hZEF0dGFjaG1lbnQmZm9ybWlkPSR7dGhpcy5kYXRhLmZvcm1JZH1gLFxyXG4gICAgICBkb2Njb2RlLFxyXG4gICAgICBmcm9tUGFnZVxyXG4gICAgfSlcclxuICAgIGlmIChkb2Njb2RlKSB7XHJcbiAgICAgIHRoaXMuZ2V0U2F2ZURhdGEoKTtcclxuICAgIH1cclxuICB9LFxyXG4gIGFzeW5jIGdldFNhdmVEYXRhKCkge1xyXG4gICAgbGV0IGRvY2NvZGUgPSB0aGlzLmRhdGEuZG9jY29kZTtcclxuICAgIGxldCBbZXJyb3IsIHJlc3VsdF0gPSBhd2FpdCB3eC4kdXRpbHMudG8oXHJcbiAgICAgIHd4LiRodHRwLnJlcXVlc3Qoe1xyXG4gICAgICAgIHVybDpgL3Nob3BwaW5nL3BhbmljQnV5aW5nLmRvP209Z2V0UGFuaWNCdXlpbmdEZXRhaWxgLFxyXG4gICAgICAgIGRhdGE6e1xyXG4gICAgICAgICAgZG9jY29kZSxcclxuICAgICAgICAgIGlzRWRpdDp0cnVlLFxyXG4gICAgICAgICAgUmVmT3BlbklkOnd4Lmdsb2JhbERhdGEuT3BlbklkXHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgKVxyXG4gICAgaWYgKGVycm9yKXtcclxuICAgICAgY29uc29sZS5sb2coZXJyb3IpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBjb25zb2xlLmxvZyhyZXN1bHQpO1xyXG4gICAgbGV0IGRhdGEgPSByZXN1bHQubGlzdFswXTtcclxuICAgIGxldCBmb3JtRGF0YSA9IHtcclxuICAgICAgcHJvbW90aW9uc1RpdGxlOiBkYXRhLnRpdGxlLFxyXG4gICAgICBvcmlnaW5hbFByaWNlOiBkYXRhLm9yaWdpbmFsUHJpY2UsXHJcbiAgICAgIGZsYXNoU2FsZVByaWNlOiBkYXRhLnNhbGVzUHJpY2UsXHJcbiAgICAgIGZsYXNoU2FsZVRvdGFsOiBkYXRhLnF1YW50aXR5LFxyXG4gICAgICBmbGFzaFNhbGVMaW1pdDogZGF0YS5yZXN0cmljdEJ1eWluZ1F1YW50aXR5LFxyXG4gICAgICBwcm9tb3Rpb25EZXNjcmlwdGlvbjogZGF0YS5kZXNjcmlwdGlvbixcclxuICAgICAgc3RhcnRUaW1lOiBkYXRhLmVmZmVjdGl2ZVN0YXJ0RGF0ZSxcclxuICAgICAgZW5kVGltZTogZGF0YS5lZmZlY3RpdmVFbmREYXRlLFxyXG4gICAgICBjb3ZlckltYWdlTGlzdDogKGRhdGEuY292ZXJJbWFnZVVybCYmdGhpcy5nZXRDb3ZlckltYWdlTGlzdChkYXRhKSl8fFtdLFxyXG4gICAgICAvLyBpbWFnZXNMaXN0OiAoZGF0YS5pbWFnZXNVcmwubGVuZ3RoPjAmJnRoaXMuZ2V0SW1hZ2VzTGlzdChkYXRhKSl8fFtdLFxyXG4gICAgICBpbWFnZXNMaXN0OiBkYXRhLmltYWdlc1VybCxcclxuICAgICAgY292ZXJJbWFnZTogZGF0YS5jb3ZlckltYWdlLFxyXG4gICAgICBpbWFnZXM6IGRhdGEuaW1hZ2VzLFxyXG4gICAgICBmcmVlSWQ6ZGF0YS5mcmVlSWQsXHJcbiAgICB9O1xyXG4gICAgdGhpcy5zZXREYXRhKHtcclxuICAgICAgLi4uZm9ybURhdGEsXHJcbiAgICAgIC8vIFtgZWZmZWN0aXZlU3RhcnREYXRlYF06IGRhdGEuZWZmZWN0aXZlU3RhcnREYXRlLFxyXG4gICAgICAvLyBbYGVmZmVjdGl2ZUVuZERhdGVgXTogZGF0YS5lZmZlY3RpdmVFbmREYXRlLFxyXG4gICAgICAvLyBbYGZyZWVJZGBdOiBkYXRhLmZyZWVJZCxcclxuICAgICAgLy8gW2B0aXRsZWBdOiBkYXRhLnRpdGxlLFxyXG4gICAgICAvLyBbYG9yaWdpbmFsUHJpY2VgXTogZGF0YS5vcmlnaW5hbFByaWNlLFxyXG4gICAgICAvLyBbYHNhbGVzUHJpY2VgXTogZGF0YS5zYWxlc1ByaWNlLFxyXG4gICAgICAvLyBbYHF1YW50aXR5YF06IGRhdGEucXVhbnRpdHksXHJcbiAgICAgIC8vIFtgcmVzdHJpY3RCdXlpbmdRdWFudGl0eWBdOiBkYXRhLnJlc3RyaWN0QnV5aW5nUXVhbnRpdHksXHJcbiAgICAgIC8vIFtgZGVzY3JpcHRpb25gXTogZGF0YS5kZXNjcmlwdGlvbixcclxuICAgICAgc2VsbGVyTGlzdDpyZXN1bHQuc2VsbGVyTGlzdCxcclxuICAgICAgc3RhdHVzOmRhdGEucGFuaWNCdXlpbmdTdGF0dXMsXHJcbiAgICAgIGRlbGl2ZXJ5OntcclxuICAgICAgICBmcmVlSWQ6ZGF0YS5mcmVlSWQsXHJcbiAgICAgICAgZnJlZU5hbWU6ZGF0YS5mcmVlTmFtZSxcclxuICAgICAgICBpc1JlcXVpcmVkQWRkcmVzczpkYXRhLmlzUmVxdWlyZWRBZGRyZXNzLFxyXG4gICAgICAgIHRyYW5zQ29zdHM6ZGF0YS50cmFuc0Nvc3RzLFxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIGNvbnNvbGUubG9nKCfphY3pgIHmlbDmja7jgILjgILjgIInLHRoaXMuZGF0YS5kZWxpdmVyeSk7XHJcbiAgfSxcclxuXHJcbiAgZ2V0Q292ZXJJbWFnZUxpc3QoZGF0YTphbnkpe1xyXG4gICAgbGV0IFt1bmlkLHNlcV0gPSBkYXRhLmNvdmVySW1hZ2Uuc3BsaXQoXCI7XCIpO1xyXG4gICAgcmV0dXJuIFt7XHJcbiAgICAgIHVybDogZGF0YS5jb3ZlckltYWdlVXJsfHwnJyxcclxuICAgICAgdW5pZCxcclxuICAgICAgc2VxXHJcbiAgICB9XVxyXG4gIH0sXHJcbiAgLy8gZ2V0SW1hZ2VzTGlzdChkYXRhOmFueSl7XHJcbiAgLy8gICBsZXQgW3VuaWQsc2VxXSA9IGRhdGEuaW1hZ2VzLnNwbGl0KFwiO1wiKTtcclxuICAvLyAgIHJldHVybiBkYXRhLmltYWdlc1VybC5tYXAoKGl0ZW06c3RyaW5nKT0+e1xyXG4gIC8vICAgICByZXR1cm4ge1xyXG4gIC8vICAgICAgIHVybDogaXRlbSxcclxuICAvLyAgICAgICB1bmlkLFxyXG4gIC8vICAgICAgIHNlcVxyXG4gIC8vICAgICB9XHJcbiAgLy8gICB9KVxyXG4gIC8vIH0sXHJcblxyXG4gIG9uUmVhZHkoKSB7XHJcbiAgICB0aGlzLmluaXRWYWxpZGF0b3IoKVxyXG4gIH0sXHJcbiAgc2VsZWN0ZWRTdGFydFRpbWUoZXZlbnQ6YW55KSB7XHJcbiAgICBjb25zb2xlLmxvZygn5byA5aeLJyxldmVudCk7XHJcbiAgICB0aGlzLnNldERhdGEoe1xyXG4gICAgICBzdGFydFRpbWU6IGV2ZW50LmRldGFpbC5zdGFydFRpbWUsXHJcbiAgICB9KVxyXG4gIH0sXHJcbiAgc2VsZWN0ZWRFbmRUaW1lKGV2ZW50OmFueSl7XHJcbiAgICBjb25zb2xlLmxvZygn57uT5p2fJyxldmVudCk7XHJcbiAgICB0aGlzLnNldERhdGEoe1xyXG4gICAgICBlbmRUaW1lOiBldmVudC5kZXRhaWwuZW5kVGltZSxcclxuICAgIH0pXHJcbiAgfSxcclxuICBnZXREZWxpdmVyeU1ldGhvZChldmVudDphbnkpe1xyXG4gICAgY29uc29sZS5sb2coZXZlbnQuZGV0YWlsKTtcclxuICAgIHRoaXMuc2V0RGF0YSh7XHJcbiAgICAgIC8vIGRlbGl2ZXJ5TWV0aG9kOiBldmVudC5kZXRhaWwuZGVsaXZlcnlNZXRob2QsXHJcbiAgICAgIGZyZWVJZDogZXZlbnQuZGV0YWlsLmZyZWVJZCxcclxuICAgIH0pXHJcbiAgICBjb25zb2xlLmxvZygndGhpcy5kYXRhLmZyZWVJZDsnLHRoaXMuZGF0YS5mcmVlSWQpO1xyXG4gIH0sXHJcblxyXG4gIGNoZWNrUHJvbW90aW9uc1RpdGxlKGU6YW55KXtcclxuICAgIGxldCB7IHZhbHVlIH0gPSBlLmRldGFpbFxyXG4gICAgY29uc29sZS5sb2coZSk7XHJcbiAgICB2YWxpZGF0b3JJbnN0YW5jZS5jaGVja0ZpZWxkKCdwcm9tb3Rpb25zVGl0bGUnLHZhbHVlKTtcclxuICAgIHRoaXMuc2V0RGF0YSh7XHJcbiAgICAgIHByb21vdGlvbnNUaXRsZTp2YWx1ZS50cmltKClcclxuICAgIH0pXHJcbiAgfSxcclxuICBjaGVja09yaWdpbmFsUHJpY2UoZTphbnkpe1xyXG4gICAgbGV0IHsgdmFsdWUgfSA9IGUuZGV0YWlsXHJcbiAgICBjb25zb2xlLmxvZyhlKTtcclxuICAgIHZhbGlkYXRvckluc3RhbmNlLmNoZWNrRmllbGQoJ29yaWdpbmFsUHJpY2UnLHZhbHVlKTtcclxuICAgIHRoaXMuc2V0RGF0YSh7XHJcbiAgICAgIG9yaWdpbmFsUHJpY2U6dmFsdWUudHJpbSgpXHJcbiAgICB9KVxyXG4gIH0sXHJcbiAgY2hlY2tGbGFzaFNhbGVQcmljZShlOmFueSl7XHJcbiAgICBsZXQgeyB2YWx1ZSB9ID0gZS5kZXRhaWxcclxuICAgIGNvbnNvbGUubG9nKGUpO1xyXG4gICAgdmFsaWRhdG9ySW5zdGFuY2UuY2hlY2tGaWVsZCgnZmxhc2hTYWxlUHJpY2UnLHZhbHVlKTtcclxuICAgIHRoaXMuc2V0RGF0YSh7XHJcbiAgICAgIGZsYXNoU2FsZVByaWNlOnZhbHVlLnRyaW0oKVxyXG4gICAgfSlcclxuICB9LFxyXG4gIGNoZWNrRmxhc2hTYWxlVG90YWwoZTphbnkpe1xyXG4gICAgbGV0IHsgdmFsdWUgfSA9IGUuZGV0YWlsXHJcbiAgICBjb25zb2xlLmxvZyhlKTtcclxuICAgIHZhbGlkYXRvckluc3RhbmNlLmNoZWNrRmllbGQoJ2ZsYXNoU2FsZVRvdGFsJyx2YWx1ZSk7XHJcbiAgICB0aGlzLnNldERhdGEoe1xyXG4gICAgICBmbGFzaFNhbGVUb3RhbDp2YWx1ZS50cmltKClcclxuICAgIH0pXHJcbiAgfSxcclxuICBjaGVja0ZsYXNoU2FsZUxpbWl0KGU6YW55KXtcclxuICAgIGxldCB7IHZhbHVlIH0gPSBlLmRldGFpbFxyXG4gICAgY29uc29sZS5sb2coZSk7XHJcbiAgICB2YWxpZGF0b3JJbnN0YW5jZS5jaGVja0ZpZWxkKCdmbGFzaFNhbGVMaW1pdCcsdmFsdWUpO1xyXG4gICAgdGhpcy5zZXREYXRhKHtcclxuICAgICAgZmxhc2hTYWxlTGltaXQ6dmFsdWUudHJpbSgpXHJcbiAgICB9KVxyXG4gIH0sXHJcbiAgY2hlY2tQcm9tb3Rpb25EZXNjcmlwdGlvbihlOmFueSl7XHJcbiAgICBsZXQgeyB2YWx1ZSB9ID0gZS5kZXRhaWxcclxuICAgIGNvbnNvbGUubG9nKGUpO1xyXG4gICAgdmFsaWRhdG9ySW5zdGFuY2UuY2hlY2tGaWVsZCgncHJvbW90aW9uRGVzY3JpcHRpb24nLHZhbHVlKTtcclxuICAgIHRoaXMuc2V0RGF0YSh7XHJcbiAgICAgIHByb21vdGlvbkRlc2NyaXB0aW9uOnZhbHVlLnRyaW0oKVxyXG4gICAgfSlcclxuICB9LFxyXG5cclxuICBhc3luYyBwb3N0Rm9ybURhdGEoZGF0YTpvYmplY3Qpe1xyXG4gICAgbGV0IFtlcnJvciwgcmVzXSA9IGF3YWl0IHd4LiR1dGlscy50byhcclxuICAgICAgd3guJGh0dHAucmVxdWVzdCh7XHJcbiAgICAgICAgdXJsOicvc2hvcHBpbmcvcGFuaWNCdXlpbmcuZG8/bT1zYXZlRG9jQ29kZScsXHJcbiAgICAgICAgZGF0YSxcclxuICAgICAgICBtZXRob2Q6J1BPU1QnXHJcbiAgICAgIH0pXHJcbiAgICApXHJcbiAgICBpZiAoZXJyb3IpIHtcclxuICAgICAgY29uc29sZS5sb2coZXJyb3IpO1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICBjb25zb2xlLmxvZyhyZXMpO1xyXG4gICAgd3guc2hvd1RvYXN0KHtcclxuICAgICAgdGl0bGU6ICfmiJDlip8nLFxyXG4gICAgICBkdXJhdGlvbjogMjAwMFxyXG4gICAgfSlcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH0sXHJcbiAgYXN5bmMgb25TdWJtaXQoKSB7XHJcbiAgICBsZXQgdGltZVF1YW50dW0gPSB0aGlzLnNlbGVjdENvbXBvbmVudCgnI3RpbWUtcXVhbnR1bScpO1xyXG4gICAgbGV0IHNlbGxlckVkaXQgPSB0aGlzLnNlbGVjdENvbXBvbmVudCgnI3NlbGxlci1lZGl0Jyk7XHJcbiAgICBsZXQgZmlsZVVwbG9hZGVyID0gdGhpcy5zZWxlY3RDb21wb25lbnQoJyNmaWxlLXVwbG9hZGVyJyk7XHJcbiAgICBsZXQgZmlsZVVwbG9hZGVyTXVsdGlwbGUgPSB0aGlzLnNlbGVjdENvbXBvbmVudCgnI2ZpbGUtdXBsb2FkZXItbXVsdGlwbGUnKTtcclxuXHJcbiAgICBsZXQgZGVsaXZlcnlNZXRob2QgPSB0aGlzLnNlbGVjdENvbXBvbmVudCgnI2RlbGl2ZXJ5LW1ldGhvZCcpO1xyXG4gICAgbGV0IGNoZWNrVHJhbnNDb3N0cyA9IHRydWU7XHJcbiAgICBsZXQgdHJhbnNDb3N0cyA9IDA7XHJcbiAgICBpZiAoZGVsaXZlcnlNZXRob2QuZGF0YS5pc1JlcXVpcmVkQWRkcmVzcyl7XHJcbiAgICAgIGNoZWNrVHJhbnNDb3N0cyA9IGRlbGl2ZXJ5TWV0aG9kLmNoZWNrRmllbGRzKCk7XHJcbiAgICAgIHRyYW5zQ29zdHMgPSBOdW1iZXIoZGVsaXZlcnlNZXRob2QuZGF0YS50cmFuc0Nvc3RzKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgY29uc29sZS5sb2coJ3NlbGxlckVkaXQnLCk7XHJcbiAgICBjb25zb2xlLmxvZyh0aW1lUXVhbnR1bSk7XHJcblxyXG4gICAgbGV0IGNoZWNrU3RhcnRUaW1lID0gdGltZVF1YW50dW0uY2hlY2tUaW1lKFwic3RhcnRUaW1lXCIsIFwi6K+36YCJ5oup6K6h5YiS5byA5aeL5pe26Ze0XCIpO1xyXG4gICAgbGV0IGNoZWNrRW5kVGltZSA9IHRpbWVRdWFudHVtLmNoZWNrVGltZShcImVuZFRpbWVcIiwgXCLor7fpgInmi6norqHliJLnu5PmnZ/ml7bpl7RcIik7XHJcbiAgICBsZXQgY2hlY2tDb3ZlckltYWdlID0gZmlsZVVwbG9hZGVyLmNoZWNrSW1hZ2VzKFwiY292ZXJJbWFnZVwiLCBcIuivt+S4iuS8oOS4gOW8oOWwgemdouWbvlwiKTtcclxuICAgIGxldCBjaGVja0ltYWdlcyA9IGZpbGVVcGxvYWRlck11bHRpcGxlLmNoZWNrSW1hZ2VzKFwiaW1hZ2VzXCIsIFwi6K+36Iez5bCR5LiK5Lyg5LiA5byg5Zu+54mHXCIpO1xyXG4gICAgbGV0IGNoZWNrQWxsRGF0YSA9IHZhbGlkYXRvckluc3RhbmNlLmNoZWNrQWxsRGF0YSgpO1xyXG4gICAgLy8gaWYgKHRoaXMuZGF0YS5nb29kc0ltZ0xpc3QubGVuZ3RoIDwgMSkge1xyXG4gICAgLy8gICBjb25zb2xlLmxvZygn6K+35LiK5Lyg5Lqn5ZOB5Zu+54mHJyk7XHJcbiAgICAvLyB9XHJcbiAgICBsZXQgc2VsbGVyTGlzdCA9IHNlbGxlckVkaXQuZ2V0U2VsbGVyTGlzdCgpO1xyXG4gICAgaWYgKHNlbGxlckxpc3QubGVuZ3RoPDEpIHtcclxuICAgICAgd3guc2hvd1RvYXN0KHtcclxuICAgICAgICB0aXRsZTogJ+ivt+mAieaLqeiQpemUgOS6uuWRmCcsXHJcbiAgICAgICAgaWNvbjogJ25vbmUnLFxyXG4gICAgICAgIGR1cmF0aW9uOiAyMDAwXHJcbiAgICAgIH0pXHJcbiAgICAgIHJldHVyblxyXG4gICAgfVxyXG4gICAgbGV0IGNoZWNrRGVmYXVsdFNlbGxlciA9IHNlbGxlckVkaXQuY2hlY2tEZWZhdWx0U2VsbGVyKCk7XHJcbiAgICBpZiAoIWNoZWNrRGVmYXVsdFNlbGxlcikge1xyXG4gICAgICB3eC5zaG93VG9hc3Qoe1xyXG4gICAgICAgIHRpdGxlOiAn6K+36YCJ5oup6buY6K6k6JCl6ZSA5Lq65ZGYJyxcclxuICAgICAgICBpY29uOiAnbm9uZScsXHJcbiAgICAgICAgZHVyYXRpb246IDIwMDBcclxuICAgICAgfSlcclxuICAgICAgcmV0dXJuXHJcbiAgICB9XHJcbiAgICBjb25zb2xlLmxvZygnY2hlY2tEZWZhdWx0U2VsbGVyJyxjaGVja0RlZmF1bHRTZWxsZXIpO1xyXG5cclxuICAgIGxldCBjaGVja0FyciA9IFtjaGVja1RyYW5zQ29zdHMsY2hlY2tTdGFydFRpbWUsY2hlY2tFbmRUaW1lLGNoZWNrQ292ZXJJbWFnZSxjaGVja0ltYWdlcyxjaGVja0FsbERhdGFdO1xyXG4gICAgbGV0IGRhdGEgPSB7fTtcclxuICAgIGlmIChjaGVja0Fyci5ldmVyeSgoaXRlbSk9PntcclxuICAgICAgcmV0dXJuIGl0ZW1cclxuICAgIH0pKXtcclxuICAgICAgY29uc29sZS5sb2coJy4uLi7mj5DkuqTmiJDlip8nKTtcclxuICAgICAgbGV0IGNvdmVySW1hZ2UgPSBmaWxlVXBsb2FkZXIuZ2V0Q292ZXJJbWFnZVVuaWQoKTtcclxuICAgICAgbGV0IGltYWdlcyA9IGZpbGVVcGxvYWRlck11bHRpcGxlLmdldEltYWdlc1VuaWQoKTtcclxuICAgICAgY29uc29sZS5sb2coY292ZXJJbWFnZSxpbWFnZXMpO1xyXG4gICAgICBsZXQgZm9ybURhdGE6IGFueSA9IHRoaXMuZGF0YTtcclxuICAgICAgZGF0YSA9IHtcclxuICAgICAgICBkb2NDb2RlOiBmb3JtRGF0YS5kb2Njb2RlLCAvL+a0u+WKqOWNleWPt++8jOaWsOW7uua0u+WKqOaXtuS4uuepuuWAvO+8jOe8lui+keaXtumcgOimgWRvY2NvZGXlgLxcclxuICAgICAgICBmb3JtSWQ6IGZvcm1EYXRhLmZvcm1JZCwgLy/lip/og73lj7fvvJrnp5LmnYAgNzEwODAyIO+8jCDmiqXlkI3pgoDnuqYgNzEwODAzIO+8jOWboui0rSA3MTA4MDRcclxuICAgICAgICBkb2NTdGF0dXM6MTAwLCAvL+WNleaNrueKtuaAgTogMCDkv53lrZjvvIjotbfojYnvvIkg77yMMTAwIOWPkeW4g1xyXG4gICAgICAgIGNvdmVySW1hZ2UsXHJcbiAgICAgICAgaW1hZ2VzLFxyXG4gICAgICAgIHRyYW5zQ29zdHMsIC8v6YCB6LSn5LiK6Zeo5pe2IOmFjemAgei0uVxyXG4gICAgICAgIC8vIC4uLnRoaXMuZGF0YS5mb3JtRGF0YSxcclxuXHJcbiAgICAgICAgZWZmZWN0aXZlU3RhcnREYXRlOiBmb3JtRGF0YS5zdGFydFRpbWUsXHJcbiAgICAgICAgZWZmZWN0aXZlRW5kRGF0ZTogZm9ybURhdGEuZW5kVGltZSxcclxuICAgICAgICBmcmVlSWQ6IGZvcm1EYXRhLmZyZWVJZCxcclxuICAgICAgICB0aXRsZTogZm9ybURhdGEucHJvbW90aW9uc1RpdGxlLFxyXG4gICAgICAgIG9yaWdpbmFsUHJpY2U6IE51bWJlcihmb3JtRGF0YS5vcmlnaW5hbFByaWNlKSxcclxuICAgICAgICBzYWxlc1ByaWNlOiBOdW1iZXIoZm9ybURhdGEuZmxhc2hTYWxlUHJpY2UpLFxyXG4gICAgICAgIHF1YW50aXR5OiBOdW1iZXIoZm9ybURhdGEuZmxhc2hTYWxlVG90YWwpLFxyXG4gICAgICAgIHJlc3RyaWN0QnV5aW5nUXVhbnRpdHk6IE51bWJlcihmb3JtRGF0YS5mbGFzaFNhbGVMaW1pdCksXHJcbiAgICAgICAgZGVzY3JpcHRpb246IGZvcm1EYXRhLnByb21vdGlvbkRlc2NyaXB0aW9uLFxyXG5cclxuICAgICAgICBzZWxsZXJMaXN0LFxyXG4gICAgICB9XHJcbiAgICAgIGNvbnNvbGUubG9nKCflvoXlj5HluIPmlbDmja4nLGRhdGEpO1xyXG4gICAgICBpZiAoIWF3YWl0IHRoaXMucG9zdEZvcm1EYXRhKGRhdGEpKSByZXR1cm47XHJcbiAgICAgIGlmICh0aGlzLmRhdGEuZnJvbVBhZ2U9PSdlZGl0Jyl7XHJcbiAgICAgICAgd3gubmF2aWdhdGVCYWNrKCk7XHJcbiAgICAgIH0gZWxzZXtcclxuICAgICAgICB3eC5yZWRpcmVjdFRvKHtcclxuICAgICAgICAgIHVybDonLi4vcHJvbW90aW9uc01hbmFnZUxpc3QvcHJvbW90aW9uc01hbmFnZUxpc3Q/dGFiPTEnXHJcbiAgICAgICAgfSlcclxuICAgICAgfVxyXG5cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHd4LnNob3dUb2FzdCh7XHJcbiAgICAgICAgdGl0bGU6ICfpobXpnaLov5jmnInplJnor6/mnKrlpITnkIYnLFxyXG4gICAgICAgIGljb246ICdub25lJyxcclxuICAgICAgICBkdXJhdGlvbjogMjAwMFxyXG4gICAgICB9KVxyXG4gICAgICBjb25zb2xlLmxvZygn6L+Y5pyJ6ZSZ6K+v5pyq5aSE55CGJyk7XHJcbiAgICB9XHJcblxyXG5cclxuICB9LFxyXG5cclxuICBvblNhdmUoKXtcclxuICAgIGxldCBzZWxsZXJFZGl0ID0gdGhpcy5zZWxlY3RDb21wb25lbnQoJyNzZWxsZXItZWRpdCcpO1xyXG4gICAgbGV0IHNlbGxlckxpc3QgPSBzZWxsZXJFZGl0LmdldFNlbGxlckxpc3QoKTtcclxuICAgIGxldCBmaWxlVXBsb2FkZXIgPSB0aGlzLnNlbGVjdENvbXBvbmVudCgnI2ZpbGUtdXBsb2FkZXInKTtcclxuICAgIGxldCBmaWxlVXBsb2FkZXJNdWx0aXBsZSA9IHRoaXMuc2VsZWN0Q29tcG9uZW50KCcjZmlsZS11cGxvYWRlci1tdWx0aXBsZScpO1xyXG4gICAgY29uc29sZS5sb2coJy4uLi7mj5DkuqTmiJDlip8nKTtcclxuICAgIGxldCBjb3ZlckltYWdlID0gZmlsZVVwbG9hZGVyLmdldENvdmVySW1hZ2VVbmlkKCk7XHJcbiAgICBsZXQgaW1hZ2VzID0gZmlsZVVwbG9hZGVyTXVsdGlwbGUuZ2V0SW1hZ2VzVW5pZCgpO1xyXG4gICAgbGV0IGRlbGl2ZXJ5TWV0aG9kID0gdGhpcy5zZWxlY3RDb21wb25lbnQoJyNkZWxpdmVyeS1tZXRob2QnKTtcclxuICAgIGxldCB0cmFuc0Nvc3RzID0gMDtcclxuICAgIGlmIChkZWxpdmVyeU1ldGhvZC5kYXRhLmlzUmVxdWlyZWRBZGRyZXNzKXtcclxuICAgICAgdHJhbnNDb3N0cyA9IE51bWJlcihkZWxpdmVyeU1ldGhvZC5kYXRhLnRyYW5zQ29zdHMpO1xyXG4gICAgfVxyXG4gICAgY29uc29sZS5sb2coY292ZXJJbWFnZSxpbWFnZXMpO1xyXG4gICAgbGV0IGZvcm1EYXRhOiBhbnkgPSB0aGlzLmRhdGE7XHJcbiAgICBjb25zb2xlLmxvZygnPj4+Pj4+Pj5mb3JtRGF0YScsZm9ybURhdGEpO1xyXG4gICAgbGV0IGRhdGEgPSB7XHJcbiAgICAgIGRvY0NvZGU6IGZvcm1EYXRhLmRvY2NvZGUsIC8v5rS75Yqo5Y2V5Y+377yM5paw5bu65rS75Yqo5pe25Li656m65YC877yM57yW6L6R5pe26ZyA6KaBZG9jY29kZeWAvFxyXG4gICAgICBmb3JtSWQ6IGZvcm1EYXRhLmZvcm1JZCwgLy/lip/og73lj7fvvJrnp5LmnYAgNzEwODAyIO+8jCDmiqXlkI3pgoDnuqYgNzEwODAzIO+8jOWboui0rSA3MTA4MDRcclxuICAgICAgZG9jU3RhdHVzOiAwLCAvL+WNleaNrueKtuaAgTogMCDkv53lrZjvvIjotbfojYnvvIkg77yMMTAwIOWPkeW4g1xyXG4gICAgICBjb3ZlckltYWdlLFxyXG4gICAgICBpbWFnZXMsXHJcbiAgICAgIHRyYW5zQ29zdHMsIC8v6YCB6LSn5LiK6Zeo5pe2IOmFjemAgei0uVxyXG4gICAgICAvLyAuLi50aGlzLmRhdGEuZm9ybURhdGEsXHJcblxyXG4gICAgICBlZmZlY3RpdmVTdGFydERhdGU6IGZvcm1EYXRhLnN0YXJ0VGltZSxcclxuICAgICAgZWZmZWN0aXZlRW5kRGF0ZTogZm9ybURhdGEuZW5kVGltZSxcclxuICAgICAgZnJlZUlkOiBmb3JtRGF0YS5mcmVlSWQsXHJcbiAgICAgIHRpdGxlOiBmb3JtRGF0YS5wcm9tb3Rpb25zVGl0bGUsXHJcbiAgICAgIG9yaWdpbmFsUHJpY2U6IE51bWJlcihmb3JtRGF0YS5vcmlnaW5hbFByaWNlKXx8MCxcclxuICAgICAgc2FsZXNQcmljZTogTnVtYmVyKGZvcm1EYXRhLmZsYXNoU2FsZVByaWNlKXx8MCxcclxuICAgICAgcXVhbnRpdHk6IE51bWJlcihmb3JtRGF0YS5mbGFzaFNhbGVUb3RhbCl8fDAsXHJcbiAgICAgIHJlc3RyaWN0QnV5aW5nUXVhbnRpdHk6IE51bWJlcihmb3JtRGF0YS5mbGFzaFNhbGVMaW1pdCl8fDAsXHJcbiAgICAgIGRlc2NyaXB0aW9uOiBmb3JtRGF0YS5wcm9tb3Rpb25EZXNjcmlwdGlvbixcclxuXHJcbiAgICAgIHNlbGxlckxpc3QsXHJcbiAgICB9XHJcbiAgICAvLyBsZXQgZGF0YSA9IHtcclxuICAgIC8vICAgZG9jQ29kZTp0aGlzLmRhdGEuZG9jY29kZSwgLy/mtLvliqjljZXlj7fvvIzmlrDlu7rmtLvliqjml7bkuLrnqbrlgLzvvIznvJbovpHml7bpnIDopoFkb2Njb2Rl5YC8XHJcbiAgICAvLyAgIGZvcm1JZDp0aGlzLmRhdGEuZm9ybUlkLCAvL+WKn+iDveWPt++8muenkuadgCA3MTA4MDIg77yMIOaKpeWQjemCgOe6piA3MTA4MDMg77yM5Zui6LStIDcxMDgwNFxyXG4gICAgLy8gICBkb2NTdGF0dXM6MCwgLy/ljZXmja7nirbmgIE6IDAg5L+d5a2Y77yI6LW36I2J77yJIO+8jDEwMCDlj5HluINcclxuICAgIC8vICAgY292ZXJJbWFnZSxcclxuICAgIC8vICAgaW1hZ2VzLFxyXG4gICAgLy8gICB0cmFuc0Nvc3RzLCAvL+mAgei0p+S4iumXqOaXtiDphY3pgIHotLlcclxuICAgIC8vICAgLi4udGhpcy5kYXRhLmZvcm1EYXRhLFxyXG4gICAgLy8gICBzZWxsZXJMaXN0LFxyXG4gICAgLy8gfVxyXG4gICAgY29uc29sZS5sb2coJ+W+heS/neWtmOaVsOaNricsZGF0YSk7XHJcbiAgICB0aGlzLnBvc3RGb3JtRGF0YShkYXRhKTtcclxuICB9LFxyXG4gIC8vIG9uSW5wdXRTdGFydERhdGUoKSB7fSxcclxuICAvLyBvbklucHV0RW5kRGF0ZSgpIHt9LFxyXG4gIGluaXRWYWxpZGF0b3IoKXtcclxuICAgIC8vIOWunuS+i+WMllxyXG4gICAgdmFsaWRhdG9ySW5zdGFuY2UgPSBuZXcgTXlWYWxpZGF0b3Ioe1xyXG4gICAgICBydWxlczoge1xyXG4gICAgICAgIHByb21vdGlvbnNUaXRsZToge1xyXG4gICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXHJcbiAgICAgICAgICBtYXhsZW5ndGg6IDE1XHJcbiAgICAgICAgfSxcclxuICAgICAgICBvcmlnaW5hbFByaWNlOiB7XHJcbiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcclxuICAgICAgICAgIG51bWJlcjogdHJ1ZVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZmxhc2hTYWxlUHJpY2U6IHtcclxuICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxyXG4gICAgICAgICAgbnVtYmVyOiB0cnVlXHJcbiAgICAgICAgfSxcclxuICAgICAgICBmbGFzaFNhbGVUb3RhbDoge1xyXG4gICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXHJcbiAgICAgICAgICBudW1iZXI6IHRydWVcclxuICAgICAgICB9LFxyXG4gICAgICAgIGZsYXNoU2FsZUxpbWl0OiB7XHJcbiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcclxuICAgICAgICAgIG51bWJlcjogdHJ1ZVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgcHJvbW90aW9uRGVzY3JpcHRpb246IHtcclxuICAgICAgICAgIHJlcXVpcmVkOiB0cnVlXHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuICAgICAgbWVzc2FnZXM6IHtcclxuICAgICAgICBwcm9tb3Rpb25zVGl0bGU6IHtcclxuICAgICAgICAgIHJlcXVpcmVkOiAn6K+36L6T5YWl5rS75Yqo5qCH6aKYJyxcclxuICAgICAgICAgIG1heGxlbmd0aDogJ+mVv+W6puS4jeiDveWkp+S6jjE1J1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgb3JpZ2luYWxQcmljZToge1xyXG4gICAgICAgICAgcmVxdWlyZWQ6ICfor7fovpPlhaXkuqflk4Hljp/ku7cnLFxyXG4gICAgICAgICAgbnVtYmVyOiAn5Lu35qC85b+F6aG75Li65pWw5a2XJ1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZmxhc2hTYWxlUHJpY2U6IHtcclxuICAgICAgICAgIHJlcXVpcmVkOiAn6K+36L6T5YWl5Lqn5ZOB56eS5p2A5Lu3JyxcclxuICAgICAgICAgIG51bWJlcjogJ+S7t+agvOW/hemhu+S4uuaVsOWtlydcclxuICAgICAgICB9LFxyXG4gICAgICAgIGZsYXNoU2FsZVRvdGFsOiB7XHJcbiAgICAgICAgICByZXF1aXJlZDogJ+ivt+i+k+WFpeS6p+WTgeaAu+mHjycsXHJcbiAgICAgICAgICBudW1iZXI6ICfmlbDph4/lv4XpobvkuLrmlbDlrZcnXHJcbiAgICAgICAgfSxcclxuICAgICAgICBmbGFzaFNhbGVMaW1pdDoge1xyXG4gICAgICAgICAgcmVxdWlyZWQ6ICfor7fovpPlhaXkuqflk4Hmr4/kurrpmZDotK3mlbDph48nLFxyXG4gICAgICAgICAgbnVtYmVyOiAn5pWw6YeP5b+F6aG75Li65pWw5a2XJ1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgcHJvbW90aW9uRGVzY3JpcHRpb246IHtcclxuICAgICAgICAgIHJlcXVpcmVkOiAn6K+36L6T5YWl5rS75Yqo5o+P6L+wJ1xyXG4gICAgICAgIH0sXHJcbiAgICAgIH0sXHJcbiAgICAgIG11bHRpQ2hlY2s6dHJ1ZVxyXG4gICAgfSx0aGlzKVxyXG4gICAgLy8gdGhpcy5zZXREYXRhKHtcclxuICAgIC8vICAgdmFsaWRhdG9ySW5zdGFuY2VcclxuICAgIC8vIH0pXHJcbiAgICBjb25zb2xlLmxvZygnaGhoaCwnLHZhbGlkYXRvckluc3RhbmNlKTtcclxuICB9LFxyXG59KVxyXG5leHBvcnQge31cclxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxhc2hTYWxlQ3JlYXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZmxhc2hTYWxlQ3JlYXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNBLHVEQUFrRDtBQUVsRCxJQUFJLGlCQUE2QixDQUFDO0FBRWxDLElBQUksQ0FBQztJQUNILElBQUksRUFBRTtRQUNKLFFBQVEsRUFBQyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRTtRQUMxQyxpQkFBaUIsRUFBQyxFQUFFO1FBQ3BCLE1BQU0sRUFBQyxDQUFDO1FBQ1IsTUFBTSxFQUFDLE1BQU07UUFDYixRQUFRLEVBQUUsRUFBRTtRQUNaLE9BQU8sRUFBQyxFQUFFO1FBQ1YsUUFBUSxFQUFDLEVBQUU7UUFDWCxRQUFRLEVBQUMsRUFBRTtLQUNaO0lBQ0QsTUFBTSxZQUFDLE9BQU87UUFFWixJQUFJLE9BQU8sR0FBRSxPQUFPLENBQUMsT0FBTyxJQUFFLEVBQUUsQ0FBQztRQUNqQyxJQUFJLFFBQVEsR0FBRSxPQUFPLENBQUMsUUFBUSxJQUFFLEVBQUUsQ0FBQztRQUNuQyxJQUFJLENBQUMsT0FBTyxDQUFDO1lBQ1gsYUFBYSxFQUFFLHdEQUFzRCxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQVE7WUFDdkYsT0FBTyxTQUFBO1lBQ1AsUUFBUSxVQUFBO1NBQ1QsQ0FBQyxDQUFBO1FBQ0YsSUFBSSxPQUFPLEVBQUU7WUFDWCxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDcEI7SUFDSCxDQUFDO0lBQ0ssV0FBVzs7Ozs7O3dCQUNYLE9BQU8sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQzt3QkFDVixXQUFNLEVBQUUsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUN0QyxFQUFFLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQztnQ0FDZixHQUFHLEVBQUMsaURBQWlEO2dD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QkFDZCxNQUFNLEVBQUUsSUFBSTtpQkFDYjtnQkFDRCxjQUFjLEVBQUU7b0JBQ2QsUUFBUSxFQUFFLElBQUk7b0JBQ2QsTUFBTSxFQUFFLElBQUk7aUJBQ2I7Z0JBQ0QsY0FBYyxFQUFFO29CQUNkLFFBQVEsRUFBRSxJQUFJO29CQUNkLE1BQU0sRUFBRSxJQUFJO2lCQUNiO2dCQUNELGNBQWMsRUFBRTtvQkFDZCxRQUFRLEVBQUUsSUFBSTtvQkFDZCxNQUFNLEVBQUUsSUFBSTtpQkFDYjtnQkFDRCxvQkFBb0IsRUFBRTtvQkFDcEIsUUFBUSxFQUFFLElBQUk7aUJBQ2Y7YUFDRjtZQUNELFFBQVEsRUFBRTtnQkFDUixlQUFlLEVBQUU7b0JBQ2YsUUFBUSxFQUFFLFNBQVM7b0JBQ25CLFNBQVMsRUFBRSxVQUFVO2lCQUN0QjtnQkFDRCxhQUFhLEVBQUU7b0JBQ2IsUUFBUSxFQUFFLFNBQVM7b0JBQ25CLE1BQU0sRUFBRSxTQUFTO2lCQUNsQjtnQkFDRCxjQUFjLEVBQUU7b0JBQ2QsUUFBUSxFQUFFLFVBQVU7b0JBQ3BCLE1BQU0sRUFBRSxTQUFTO2lCQUNsQjtnQkFDRCxjQUFjLEVBQUU7b0JBQ2QsUUFBUSxFQUFFLFNBQVM7b0JBQ25CLE1BQU0sRUFBRSxTQUFTO2lCQUNsQjtnQkFDRCxjQUFjLEVBQUU7b0JBQ2QsUUFBUSxFQUFFLGFBQWE7b0JBQ3ZCLE1BQU0sRUFBRSxTQUFTO2lCQUNsQjtnQkFDRCxvQkFBb0IsRUFBRTtvQkFDcEIsUUFBUSxFQUFFLFNBQVM7aUJBQ3BCO2FBQ0Y7WUFDRCxVQUFVLEVBQUMsSUFBSTtTQUNoQixFQUFDLElBQUksQ0FBQyxDQUFBO1FBSVAsT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUN6QyxDQUFDO0NBQ0YsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiLy8gaW1wb3J0ICogYXMgZGF5anMgZnJvbSBcImRheWpzXCI7XHJcbmltcG9ydCBNeVZhbGlkYXRvciBmcm9tIFwiLi4vLi4vdXRpbHMvbXlWYWxpZGF0b3JcIjtcclxuXHJcbmxldCB2YWxpZGF0b3JJbnN0YW5jZTpNeVZhbGlkYXRvcjtcclxuLy8gY29uc3QgYXBwID0gZ2V0QXBwPElBcHBPcHRpb24+KCk7XHJcblBhZ2Uoe1xyXG4gIGRhdGE6IHtcclxuICAgIGF1dG9zaXplOnsgbWF4SGVpZ2h0OiAxMjAsIG1pbkhlaWdodDogNTAgfSxcclxuICAgIHZhbGlkYXRvckluc3RhbmNlOnt9LFxyXG4gICAgZnJlZUlkOjAsXHJcbiAgICBmb3JtSWQ6NzEwODAyLCAvL+WKn+iDveWPt++8muenkuadgCA3MTA4MDIg77yMIOaKpeWQjemCgOe6piA3MTA4MDMg77yM5Zui6LStIDcxMDgwNFxyXG4gICAgZm9ybURhdGE6IHt9LFxyXG4gICAgZG9jY29kZTonJyxcclxuICAgIGZyb21QYWdlOicnLFxyXG4gICAgZGVsaXZlcnk6e31cclxuICB9LFxyXG4gIG9uTG9hZChvcHRpb25zKSB7XHJcbiAgICAvLyBjb25zb2xlLmxvZyhhcHApO1xyXG4gICAgbGV0IGRvY2NvZGUgPW9wdGlvbnMuZG9jY29kZXx8Jyc7XHJcbiAgICBsZXQgZnJvbVBhZ2UgPW9wdGlvbnMuZnJvbVBhZ2V8fCcnO1xyXG4gICAgdGhpcy5zZXREYXRhKHtcclxuICAgICAgZmlsZVVwbG9hZFVybDogYC9zaG9wcGluZy9wYW5pY0J1eWluZy5kbz9tPXVwbG9hZEF0dGFjaG1lbnQmZm9ybWlkPSR7dGhpcy5kYXRhLmZvcm1JZH1gLFxyXG4gICAgICBkb2Njb2RlLFxyXG4gICAgICBmcm9tUGFnZVxyXG4gICAgfSlcclxuICAgIGlmIChkb2Njb2RlKSB7XHJcbiAgICAgIHRoaXMuZ2V0U2F2ZURhdGEoKTtcclxuICAgIH1cclxuICB9LFxyXG4gIGFzeW5jIGdldFNhdmVEYXRhKCkge1xyXG4gICAgbGV0IGRvY2NvZGUgPSB0aGlzLmRhdGEuZG9jY29kZTtcclxuICAgIGxldCBbZXJyb3IsIHJlc3VsdF0gPSBhd2FpdCB3eC4kdXRpbHMudG8oXHJcbiAgICAgIHd4LiRodHRwLnJlcXVlc3Qoe1xyXG4gICAgICAgIHVybDpgL3Nob3BwaW5nL3BhbmljQnV5aW5nLmRvP209Z2V0UGFuaWNCdXlpbmdEZXRhaWxgLFxyXG4gICAgICAgIGRhdGE6e1xyXG4gICAgICAgICAgZG9jY29kZSxcclxuICAgICAgICAgIGlzRWRpdDp0cnVlLFxyXG4gICAgICAgICAgUmVmT3BlbklkOnd4Lmdsb2JhbERhdGEuT3BlbklkXHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgKVxyXG4gICAgaWYgKGVycm9yKXtcclxuICAgICAgY29uc29sZS5sb2coZXJyb3IpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBjb25zb2xlLmxvZyhyZXN1bHQpO1xyXG4gICAgbGV0IGRhdGEgPSByZXN1bHQubGlzdFswXTtcclxuICAgIGxldCBmb3JtRGF0YSA9IHtcclxuICAgICAgcHJvbW90aW9uc1RpdGxlOiBkYXRhLnRpdGxlLFxyXG4gICAgICBvcmlnaW5hbFByaWNlOiBkYXRhLm9yaWdpbmFsUHJpY2UsXHJcbiAgICAgIGZsYXNoU2FsZVByaWNlOiBkYXRhLnNhbGVzUHJpY2UsXHJcbiAgICAgIGZsYXNoU2FsZVRvdGFsOiBkYXRhLnF1YW50aXR5LFxyXG4gICAgICBmbGFzaFNhbGVMaW1pdDogZGF0YS5yZXN0cmljdEJ1eWluZ1F1YW50aXR5LFxyXG4gICAgICBwcm9tb3Rpb25EZXNjcmlwdGlvbjogZGF0YS5kZXNjcmlwdGlvbixcclxuICAgICAgc3RhcnRUaW1lOiBkYXRhLmVmZmVjdGl2ZVN0YXJ0RGF0ZSxcclxuICAgICAgZW5kVGltZTogZGF0YS5lZmZlY3RpdmVFbmREYXRlLFxyXG4gICAgICBjb3ZlckltYWdlTGlzdDogKGRhdGEuY292ZXJJbWFnZVVybCYmdGhpcy5nZXRDb3ZlckltYWdlTGlzdChkYXRhKSl8fFtdLFxyXG4gICAgICAvLyBpbWFnZXNMaXN0OiAoZGF0YS5pbWFnZXNVcmwubGVuZ3RoPjAmJnRoaXMuZ2V0SW1hZ2VzTGlzdChkYXRhKSl8fFtdLFxyXG4gICAgICBpbWFnZXNMaXN0OiBkYXRhLmltYWdlc1VybCxcclxuICAgICAgY292ZXJJbWFnZTogZGF0YS5jb3ZlckltYWdlLFxyXG4gICAgICBpbWFnZXM6IGRhdGEuaW1hZ2VzLFxyXG4gICAgICBmcmVlSWQ6ZGF0YS5mcmVlSWQsXHJcbiAgICB9O1xyXG4gICAgdGhpcy5zZXREYXRhKHtcclxuICAgICAgLi4uZm9ybURhdGEsXHJcbiAgICAgIC8vIFtgZWZmZWN0aXZlU3RhcnREYXRlYF06IGRhdGEuZWZmZWN0aXZlU3RhcnREYXRlLFxyXG4gICAgICAvLyBbYGVmZmVjdGl2ZUVuZERhdGVgXTogZGF0YS5lZmZlY3RpdmVFbmREYXRlLFxyXG4gICAgICAvLyBbYGZyZWVJZGBdOiBkYXRhLmZyZWVJZCxcclxuICAgICAgLy8gW2B0aXRsZWBdOiBkYXRhLnRpdGxlLFxyXG4gICAgICAvLyBbYG9yaWdpbmFsUHJpY2VgXTogZGF0YS5vcmlnaW5hbFByaWNlLFxyXG4gICAgICAvLyBbYHNhbGVzUHJpY2VgXTogZGF0YS5zYWxlc1ByaWNlLFxyXG4gICAgICAvLyBbYHF1YW50aXR5YF06IGRhdGEucXVhbnRpdHksXHJcbiAgICAgIC8vIFtgcmVzdHJpY3RCdXlpbmdRdWFudGl0eWBdOiBkYXRhLnJlc3RyaWN0QnV5aW5nUXVhbnRpdHksXHJcbiAgICAgIC8vIFtgZGVzY3JpcHRpb25gXTogZGF0YS5kZXNjcmlwdGlvbixcclxuICAgICAgc2VsbGVyTGlzdDpyZXN1bHQuc2VsbGVyTGlzdCxcclxuICAgICAgc3RhdHVzOmRhdGEucGFuaWNCdXlpbmdTdGF0dXMsXHJcbiAgICAgIGRlbGl2ZXJ5OntcclxuICAgICAgICBmcmVlSWQ6ZGF0YS5mcmVlSWQsXHJcbiAgICAgICAgZnJlZU5hbWU6ZGF0YS5mcmVlTmFtZSxcclxuICAgICAgICBpc1JlcXVpcmVkQWRkcmVzczpkYXRhLmlzUmVxdWlyZWRBZGRyZXNzLFxyXG4gICAgICAgIHRyYW5zQ29zdHM6ZGF0YS50cmFuc0Nvc3RzLFxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIGNvbnNvbGUubG9nKCfphY3pgIHmlbDmja7jgILjgILjgIInLHRoaXMuZGF0YS5kZWxpdmVyeSk7XHJcbiAgfSxcclxuXHJcbiAgZ2V0Q292ZXJJbWFnZUxpc3QoZGF0YTphbnkpe1xyXG4gICAgbGV0IFt1bmlkLHNlcV0gPSBkYXRhLmNvdmVySW1hZ2Uuc3BsaXQoXCI7XCIpO1xyXG4gICAgcmV0dXJuIFt7XHJcbiAgICAgIHVybDogZGF0YS5jb3ZlckltYWdlVXJsfHwnJyxcclxuICAgICAgdW5pZCxcclxuICAgICAgc2VxXHJcbiAgICB9XVxyXG4gIH0sXHJcbiAgLy8gZ2V0SW1hZ2VzTGlzdChkYXRhOmFueSl7XHJcbiAgLy8gICBsZXQgW3VuaWQsc2VxXSA9IGRhdGEuaW1hZ2VzLnNwbGl0KFwiO1wiKTtcclxuICAvLyAgIHJldHVybiBkYXRhLmltYWdlc1VybC5tYXAoKGl0ZW06c3RyaW5nKT0+e1xyXG4gIC8vICAgICByZXR1cm4ge1xyXG4gIC8vICAgICAgIHVybDogaXRlbSxcclxuICAvLyAgICAgICB1bmlkLFxyXG4gIC8vICAgICAgIHNlcVxyXG4gIC8vICAgICB9XHJcbiAgLy8gICB9KVxyXG4gIC8vIH0sXHJcblxyXG4gIG9uUmVhZHkoKSB7XHJcbiAgICB0aGlzLmluaXRWYWxpZGF0b3IoKVxyXG4gIH0sXHJcbiAgc2VsZWN0ZWRTdGFydFRpbWUoZXZlbnQ6YW55KSB7XHJcbiAgICBjb25zb2xlLmxvZygn5byA5aeLJyxldmVudCk7XHJcbiAgICB0aGlzLnNldERhdGEoe1xyXG4gICAgICBzdGFydFRpbWU6IGV2ZW50LmRldGFpbC5zdGFydFRpbWUsXHJcbiAgICB9KVxyXG4gIH0sXHJcbiAgc2VsZWN0ZWRFbmRUaW1lKGV2ZW50OmFueSl7XHJcbiAgICBjb25zb2xlLmxvZygn57uT5p2fJyxldmVudCk7XHJcbiAgICB0aGlzLnNldERhdGEoe1xyXG4gICAgICBlbmRUaW1lOiBldmVudC5kZXRhaWwuZW5kVGltZSxcclxuICAgIH0pXHJcbiAgfSxcclxuICBnZXREZWxpdmVyeU1ldGhvZChldmVudDphbnkpe1xyXG4gICAgY29uc29sZS5sb2coZXZlbnQuZGV0YWlsKTtcclxuICAgIHRoaXMuc2V0RGF0YSh7XHJcbiAgICAgIC8vIGRlbGl2ZXJ5TWV0aG9kOiBldmVudC5kZXRhaWwuZGVsaXZlcnlNZXRob2QsXHJcbiAgICAgIGZyZWVJZDogZXZlbnQuZGV0YWlsLmZyZWVJZCxcclxuICAgIH0pXHJcbiAgICBjb25zb2xlLmxvZygndGhpcy5kYXRhLmZyZWVJZDsnLHRoaXMuZGF0YS5mcmVlSWQpO1xyXG4gIH0sXHJcblxyXG4gIGNoZWNrUHJvbW90aW9uc1RpdGxlKGU6YW55KXtcclxuICAgIGxldCB7IHZhbHVlIH0gPSBlLmRldGFpbFxyXG4gICAgY29uc29sZS5sb2coZSk7XHJcbiAgICB2YWxpZGF0b3JJbnN0YW5jZS5jaGVja0ZpZWxkKCdwcm9tb3Rpb25zVGl0bGUnLHZhbHVlKTtcclxuICAgIHRoaXMuc2V0RGF0YSh7XHJcbiAgICAgIHByb21vdGlvbnNUaXRsZTp2YWx1ZS50cmltKClcclxuICAgIH0pXHJcbiAgfSxcclxuICBjaGVja09yaWdpbmFsUHJpY2UoZTphbnkpe1xyXG4gICAgbGV0IHsgdmFsdWUgfSA9IGUuZGV0YWlsXHJcbiAgICBjb25zb2xlLmxvZyhlKTtcclxuICAgIHZhbGlkYXRvckluc3RhbmNlLmNoZWNrRmllbGQoJ29yaWdpbmFsUHJpY2UnLHZhbHVlKTtcclxuICAgIHRoaXMuc2V0RGF0YSh7XHJcbiAgICAgIG9yaWdpbmFsUHJpY2U6dmFsdWUudHJpbSgpXHJcbiAgICB9KVxyXG4gIH0sXHJcbiAgY2hlY2tGbGFzaFNhbGVQcmljZShlOmFueSl7XHJcbiAgICBsZXQgeyB2YWx1ZSB9ID0gZS5kZXRhaWxcclxuICAgIGNvbnNvbGUubG9nKGUpO1xyXG4gICAgdmFsaWRhdG9ySW5zdGFuY2UuY2hlY2tGaWVsZCgnZmxhc2hTYWxlUHJpY2UnLHZhbHVlKTtcclxuICAgIHRoaXMuc2V0RGF0YSh7XHJcbiAgICAgIGZsYXNoU2FsZVByaWNlOnZhbHVlLnRyaW0oKVxyXG4gICAgfSlcclxuICB9LFxyXG4gIGNoZWNrRmxhc2hTYWxlVG90YWwoZTphbnkpe1xyXG4gICAgbGV0IHsgdmFsdWUgfSA9IGUuZGV0YWlsXHJcbiAgICBjb25zb2xlLmxvZyhlKTtcclxuICAgIHZhbGlkYXRvckluc3RhbmNlLmNoZWNrRmllbGQoJ2ZsYXNoU2FsZVRvdGFsJyx2YWx1ZSk7XHJcbiAgICB0aGlzLnNldERhdGEoe1xyXG4gICAgICBmbGFzaFNhbGVUb3RhbDp2YWx1ZS50cmltKClcclxuICAgIH0pXHJcbiAgfSxcclxuICBjaGVja0ZsYXNoU2FsZUxpbWl0KGU6YW55KXtcclxuICAgIGxldCB7IHZhbHVlIH0gPSBlLmRldGFpbFxyXG4gICAgY29uc29sZS5sb2coZSk7XHJcbiAgICB2YWxpZGF0b3JJbnN0YW5jZS5jaGVja0ZpZWxkKCdmbGFzaFNhbGVMaW1pdCcsdmFsdWUpO1xyXG4gICAgdGhpcy5zZXREYXRhKHtcclxuICAgICAgZmxhc2hTYWxlTGltaXQ6dmFsdWUudHJpbSgpXHJcbiAgICB9KVxyXG4gIH0sXHJcbiAgY2hlY2tQcm9tb3Rpb25EZXNjcmlwdGlvbihlOmFueSl7XHJcbiAgICBsZXQgeyB2YWx1ZSB9ID0gZS5kZXRhaWxcclxuICAgIGNvbnNvbGUubG9nKGUpO1xyXG4gICAgdmFsaWRhdG9ySW5zdGFuY2UuY2hlY2tGaWVsZCgncHJvbW90aW9uRGVzY3JpcHRpb24nLHZhbHVlKTtcclxuICAgIHRoaXMuc2V0RGF0YSh7XHJcbiAgICAgIHByb21vdGlvbkRlc2NyaXB0aW9uOnZhbHVlLnRyaW0oKVxyXG4gICAgfSlcclxuICB9LFxyXG5cclxuICBhc3luYyBwb3N0Rm9ybURhdGEoZGF0YTpvYmplY3Qpe1xyXG4gICAgbGV0IFtlcnJvciwgcmVzXSA9IGF3YWl0IHd4LiR1dGlscy50byhcclxuICAgICAgd3guJGh0dHAucmVxdWVzdCh7XHJcbiAgICAgICAgdXJsOicvc2hvcHBpbmcvcGFuaWNCdXlpbmcuZG8/bT1zYXZlRG9jQ29kZScsXHJcbiAgICAgICAgZGF0YSxcclxuICAgICAgICBtZXRob2Q6J1BPU1QnXHJcbiAgICAgIH0pXHJcbiAgICApXHJcbiAgICBpZiAoZXJyb3IpIHtcclxuICAgICAgY29uc29sZS5sb2coZXJyb3IpO1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICBjb25zb2xlLmxvZyhyZXMpO1xyXG4gICAgd3guc2hvd1RvYXN0KHtcclxuICAgICAgdGl0bGU6ICfmiJDlip8nLFxyXG4gICAgICBkdXJhdGlvbjogMjAwMFxyXG4gICAgfSlcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH0sXHJcbiAgYXN5bmMgb25TdWJtaXQoKSB7XHJcbiAgICBsZXQgdGltZVF1YW50dW0gPSB0aGlzLnNlbGVjdENvbXBvbmVudCgnI3RpbWUtcXVhbnR1bScpO1xyXG4gICAgbGV0IHNlbGxlckVkaXQgPSB0aGlzLnNlbGVjdENvbXBvbmVudCgnI3NlbGxlci1lZGl0Jyk7XHJcbiAgICBsZXQgZmlsZVVwbG9hZGVyID0gdGhpcy5zZWxlY3RDb21wb25lbnQoJyNmaWxlLXVwbG9hZGVyJyk7XHJcbiAgICBsZXQgZmlsZVVwbG9hZGVyTXVsdGlwbGUgPSB0aGlzLnNlbGVjdENvbXBvbmVudCgnI2ZpbGUtdXBsb2FkZXItbXVsdGlwbGUnKTtcclxuXHJcbiAgICBsZXQgZGVsaXZlcnlNZXRob2QgPSB0aGlzLnNlbGVjdENvbXBvbmVudCgnI2RlbGl2ZXJ5LW1ldGhvZCcpO1xyXG4gICAgbGV0IGNoZWNrVHJhbnNDb3N0cyA9IHRydWU7XHJcbiAgICBsZXQgdHJhbnNDb3N0cyA9IDA7XHJcbiAgICBpZiAoZGVsaXZlcnlNZXRob2QuZGF0YS5pc1JlcXVpcmVkQWRkcmVzcyl7XHJcbiAgICAgIGNoZWNrVHJhbnNDb3N0cyA9IGRlbGl2ZXJ5TWV0aG9kLmNoZWNrRmllbGRzKCk7XHJcbiAgICAgIHRyYW5zQ29zdHMgPSBOdW1iZXIoZGVsaXZlcnlNZXRob2QuZGF0YS50cmFuc0Nvc3RzKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgY29uc29sZS5sb2coJ3NlbGxlckVkaXQnLCk7XHJcbiAgICBjb25zb2xlLmxvZyh0aW1lUXVhbnR1bSk7XHJcblxyXG4gICAgbGV0IGNoZWNrU3RhcnRUaW1lID0gdGltZVF1YW50dW0uY2hlY2tUaW1lKFwic3RhcnRUaW1lXCIsIFwi6K+36YCJ5oup6K6h5YiS5byA5aeL5pe26Ze0XCIpO1xyXG4gICAgbGV0IGNoZWNrRW5kVGltZSA9IHRpbWVRdWFudHVtLmNoZWNrVGltZShcImVuZFRpbWVcIiwgXCLor7fpgInmi6norqHliJLnu5PmnZ/ml7bpl7RcIik7XHJcbiAgICBsZXQgY2hlY2tDb3ZlckltYWdlID0gZmlsZVVwbG9hZGVyLmNoZWNrSW1hZ2VzKFwiY292ZXJJbWFnZVwiLCBcIuivt+S4iuS8oOS4gOW8oOWwgemdouWbvlwiKTtcclxuICAgIGxldCBjaGVja0ltYWdlcyA9IGZpbGVVcGxvYWRlck11bHRpcGxlLmNoZWNrSW1hZ2VzKFwiaW1hZ2VzXCIsIFwi6K+36Iez5bCR5LiK5Lyg5LiA5byg5Zu+54mHXCIpO1xyXG4gICAgbGV0IGNoZWNrQWxsRGF0YSA9IHZhbGlkYXRvckluc3RhbmNlLmNoZWNrQWxsRGF0YSgpO1xyXG4gICAgLy8gaWYgKHRoaXMuZGF0YS5nb29kc0ltZ0xpc3QubGVuZ3RoIDwgMSkge1xyXG4gICAgLy8gICBjb25zb2xlLmxvZygn6K+35LiK5Lyg5Lqn5ZOB5Zu+54mHJyk7XHJcbiAgICAvLyB9XHJcbiAgICBsZXQgc2VsbGVyTGlzdCA9IHNlbGxlckVkaXQuZ2V0U2VsbGVyTGlzdCgpO1xyXG4gICAgaWYgKHNlbGxlckxpc3QubGVuZ3RoPDEpIHtcclxuICAgICAgd3guc2hvd1RvYXN0KHtcclxuICAgICAgICB0aXRsZTogJ+ivt+mAieaLqeiQpemUgOS6uuWRmCcsXHJcbiAgICAgICAgaWNvbjogJ25vbmUnLFxyXG4gICAgICAgIGR1cmF0aW9uOiAyMDAwXHJcbiAgICAgIH0pXHJcbiAgICAgIHJldHVyblxyXG4gICAgfVxyXG4gICAgbGV0IGNoZWNrRGVmYXVsdFNlbGxlciA9IHNlbGxlckVkaXQuY2hlY2tEZWZhdWx0U2VsbGVyKCk7XHJcbiAgICBpZiAoIWNoZWNrRGVmYXVsdFNlbGxlcikge1xyXG4gICAgICB3eC5zaG93VG9hc3Qoe1xyXG4gICAgICAgIHRpdGxlOiAn6K+36YCJ5oup6buY6K6k6JCl6ZSA5Lq65ZGYJyxcclxuICAgICAgICBpY29uOiAnbm9uZScsXHJcbiAgICAgICAgZHVyYXRpb246IDIwMDBcclxuICAgICAgfSlcclxuICAgICAgcmV0dXJuXHJcbiAgICB9XHJcbiAgICBjb25zb2xlLmxvZygnY2hlY2tEZWZhdWx0U2VsbGVyJyxjaGVja0RlZmF1bHRTZWxsZXIpO1xyXG5cclxuICAgIGxldCBjaGVja0FyciA9IFtjaGVja1RyYW5zQ29zdHMsY2hlY2tTdGFydFRpbWUsY2hlY2tFbmRUaW1lLGNoZWNrQ292ZXJJbWFnZSxjaGVja0ltYWdlcyxjaGVja0FsbERhdGFdO1xyXG4gICAgbGV0IGRhdGEgPSB7fTtcclxuICAgIGlmIChjaGVja0Fyci5ldmVyeSgoaXRlbSk9PntcclxuICAgICAgcmV0dXJuIGl0ZW1cclxuICAgIH0pKXtcclxuICAgICAgY29uc29sZS5sb2coJy4uLi7mj5DkuqTmiJDlip8nKTtcclxuICAgICAgbGV0IGNvdmVySW1hZ2UgPSBmaWxlVXBsb2FkZXIuZ2V0Q292ZXJJbWFnZVVuaWQoKTtcclxuICAgICAgbGV0IGltYWdlcyA9IGZpbGVVcGxvYWRlck11bHRpcGxlLmdldEltYWdlc1VuaWQoKTtcclxuICAgICAgY29uc29sZS5sb2coY292ZXJJbWFnZSxpbWFnZXMpO1xyXG4gICAgICBsZXQgZm9ybURhdGE6IGFueSA9IHRoaXMuZGF0YTtcclxuICAgICAgZGF0YSA9IHtcclxuICAgICAgICBkb2NDb2RlOiBmb3JtRGF0YS5kb2Njb2RlLCAvL+a0u+WKqOWNleWPt++8jOaWsOW7uua0u+WKqOaXtuS4uuepuuWAvO+8jOe8lui+keaXtumcgOimgWRvY2NvZGXlgLxcclxuICAgICAgICBmb3JtSWQ6IGZvcm1EYXRhLmZvcm1JZCwgLy/lip/og73lj7fvvJrnp5LmnYAgNzEwODAyIO+8jCDmiqXlkI3pgoDnuqYgNzEwODAzIO+8jOWboui0rSA3MTA4MDRcclxuICAgICAgICBkb2NTdGF0dXM6MTAwLCAvL+WNleaNrueKtuaAgTogMCDkv53lrZjvvIjotbfojYnvvIkg77yMMTAwIOWPkeW4g1xyXG4gICAgICAgIGNvdmVySW1hZ2UsXHJcbiAgICAgICAgaW1hZ2VzLFxyXG4gICAgICAgIHRyYW5zQ29zdHMsIC8v6YCB6LSn5LiK6Zeo5pe2IOmFjemAgei0uVxyXG4gICAgICAgIC8vIC4uLnRoaXMuZGF0YS5mb3JtRGF0YSxcclxuXHJcbiAgICAgICAgZWZmZWN0aXZlU3RhcnREYXRlOiBmb3JtRGF0YS5zdGFydFRpbWUsXHJcbiAgICAgICAgZWZmZWN0aXZlRW5kRGF0ZTogZm9ybURhdGEuZW5kVGltZSxcclxuICAgICAgICBmcmVlSWQ6IGZvcm1EYXRhLmZyZWVJZCxcclxuICAgICAgICB0aXRsZTogZm9ybURhdGEucHJvbW90aW9uc1RpdGxlLFxyXG4gICAgICAgIG9yaWdpbmFsUHJpY2U6IE51bWJlcihmb3JtRGF0YS5vcmlnaW5hbFByaWNlKSxcclxuICAgICAgICBzYWxlc1ByaWNlOiBOdW1iZXIoZm9ybURhdGEuZmxhc2hTYWxlUHJpY2UpLFxyXG4gICAgICAgIHF1YW50aXR5OiBOdW1iZXIoZm9ybURhdGEuZmxhc2hTYWxlVG90YWwpLFxyXG4gICAgICAgIHJlc3RyaWN0QnV5aW5nUXVhbnRpdHk6IE51bWJlcihmb3JtRGF0YS5mbGFzaFNhbGVMaW1pdCksXHJcbiAgICAgICAgZGVzY3JpcHRpb246IGZvcm1EYXRhLnByb21vdGlvbkRlc2NyaXB0aW9uLFxyXG5cclxuICAgICAgICBzZWxsZXJMaXN0LFxyXG4gICAgICB9XHJcbiAgICAgIGNvbnNvbGUubG9nKCflvoXlj5HluIPmlbDmja4nLGRhdGEpO1xyXG4gICAgICBpZiAoIWF3YWl0IHRoaXMucG9zdEZvcm1EYXRhKGRhdGEpKSByZXR1cm47XHJcbiAgICAgIGlmICh0aGlzLmRhdGEuZnJvbVBhZ2U9PSdlZGl0Jyl7XHJcbiAgICAgICAgd3gubmF2aWdhdGVCYWNrKCk7XHJcbiAgICAgIH0gZWxzZXtcclxuICAgICAgICB3eC5yZWRpcmVjdFRvKHtcclxuICAgICAgICAgIHVybDonLi4vcHJvbW90aW9uc01hbmFnZUxpc3QvcHJvbW90aW9uc01hbmFnZUxpc3Q/dGFiPTEnXHJcbiAgICAgICAgfSlcclxuICAgICAgfVxyXG5cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHd4LnNob3dUb2FzdCh7XHJcbiAgICAgICAgdGl0bGU6ICfpobXpnaLov5jmnInplJnor6/mnKrlpITnkIYnLFxyXG4gICAgICAgIGljb246ICdub25lJyxcclxuICAgICAgICBkdXJhdGlvbjogMjAwMFxyXG4gICAgICB9KVxyXG4gICAgICBjb25zb2xlLmxvZygn6L+Y5pyJ6ZSZ6K+v5pyq5aSE55CGJyk7XHJcbiAgICB9XHJcblxyXG5cclxuICB9LFxyXG5cclxuICBvblNhdmUoKXtcclxuICAgIGxldCBzZWxsZXJFZGl0ID0gdGhpcy5zZWxlY3RDb21wb25lbnQoJyNzZWxsZXItZWRpdCcpO1xyXG4gICAgbGV0IHNlbGxlckxpc3QgPSBzZWxsZXJFZGl0LmdldFNlbGxlckxpc3QoKTtcclxuICAgIGxldCBmaWxlVXBsb2FkZXIgPSB0aGlzLnNlbGVjdENvbXBvbmVudCgnI2ZpbGUtdXBsb2FkZXInKTtcclxuICAgIGxldCBmaWxlVXBsb2FkZXJNdWx0aXBsZSA9IHRoaXMuc2VsZWN0Q29tcG9uZW50KCcjZmlsZS11cGxvYWRlci1tdWx0aXBsZScpO1xyXG4gICAgY29uc29sZS5sb2coJy4uLi7mj5DkuqTmiJDlip8nKTtcclxuICAgIGxldCBjb3ZlckltYWdlID0gZmlsZVVwbG9hZGVyLmdldENvdmVySW1hZ2VVbmlkKCk7XHJcbiAgICBsZXQgaW1hZ2VzID0gZmlsZVVwbG9hZGVyTXVsdGlwbGUuZ2V0SW1hZ2VzVW5pZCgpO1xyXG4gICAgbGV0IGRlbGl2ZXJ5TWV0aG9kID0gdGhpcy5zZWxlY3RDb21wb25lbnQoJyNkZWxpdmVyeS1tZXRob2QnKTtcclxuICAgIGxldCB0cmFuc0Nvc3RzID0gMDtcclxuICAgIGlmIChkZWxpdmVyeU1ldGhvZC5kYXRhLmlzUmVxdWlyZWRBZGRyZXNzKXtcclxuICAgICAgdHJhbnNDb3N0cyA9IE51bWJlcihkZWxpdmVyeU1ldGhvZC5kYXRhLnRyYW5zQ29zdHMpO1xyXG4gICAgfVxyXG4gICAgY29uc29sZS5sb2coY292ZXJJbWFnZSxpbWFnZXMpO1xyXG4gICAgbGV0IGZvcm1EYXRhOiBhbnkgPSB0aGlzLmRhdGE7XHJcbiAgICBjb25zb2xlLmxvZygnPj4+Pj4+Pj5mb3JtRGF0YScsZm9ybURhdGEpO1xyXG4gICAgbGV0IGRhdGEgPSB7XHJcbiAgICAgIGRvY0NvZGU6IGZvcm1EYXRhLmRvY2NvZGUsIC8v5rS75Yqo5Y2V5Y+377yM5paw5bu65rS75Yqo5pe25Li656m65YC877yM57yW6L6R5pe26ZyA6KaBZG9jY29kZeWAvFxyXG4gICAgICBmb3JtSWQ6IGZvcm1EYXRhLmZvcm1JZCwgLy/lip/og73lj7fvvJrnp5LmnYAgNzEwODAyIO+8jCDmiqXlkI3pgoDnuqYgNzEwODAzIO+8jOWboui0rSA3MTA4MDRcclxuICAgICAgZG9jU3RhdHVzOiAwLCAvL+WNleaNrueKtuaAgTogMCDkv53lrZjvvIjotbfojYnvvIkg77yMMTAwIOWPkeW4g1xyXG4gICAgICBjb3ZlckltYWdlLFxyXG4gICAgICBpbWFnZXMsXHJcbiAgICAgIHRyYW5zQ29zdHMsIC8v6YCB6LSn5LiK6Zeo5pe2IOmFjemAgei0uVxyXG4gICAgICAvLyAuLi50aGlzLmRhdGEuZm9ybURhdGEsXHJcblxyXG4gICAgICBlZmZlY3RpdmVTdGFydERhdGU6IGZvcm1EYXRhLnN0YXJ0VGltZSxcclxuICAgICAgZWZmZWN0aXZlRW5kRGF0ZTogZm9ybURhdGEuZW5kVGltZSxcclxuICAgICAgZnJlZUlkOiBmb3JtRGF0YS5mcmVlSWQsXHJcbiAgICAgIHRpdGxlOiBmb3JtRGF0YS5wcm9tb3Rpb25zVGl0bGUsXHJcbiAgICAgIG9yaWdpbmFsUHJpY2U6IE51bWJlcihmb3JtRGF0YS5vcmlnaW5hbFByaWNlKXx8MCxcclxuICAgICAgc2FsZXNQcmljZTogTnVtYmVyKGZvcm1EYXRhLmZsYXNoU2FsZVByaWNlKXx8MCxcclxuICAgICAgcXVhbnRpdHk6IE51bWJlcihmb3JtRGF0YS5mbGFzaFNhbGVUb3RhbCl8fDAsXHJcbiAgICAgIHJlc3RyaWN0QnV5aW5nUXVhbnRpdHk6IE51bWJlcihmb3JtRGF0YS5mbGFzaFNhbGVMaW1pdCl8fDAsXHJcbiAgICAgIGRlc2NyaXB0aW9uOiBmb3JtRGF0YS5wcm9tb3Rpb25EZXNjcmlwdGlvbixcclxuXHJcbiAgICAgIHNlbGxlckxpc3QsXHJcbiAgICB9XHJcbiAgICAvLyBsZXQgZGF0YSA9IHtcclxuICAgIC8vICAgZG9jQ29kZTp0aGlzLmRhdGEuZG9jY29kZSwgLy/mtLvliqjljZXlj7fvvIzmlrDlu7rmtLvliqjml7bkuLrnqbrlgLzvvIznvJbovpHml7bpnIDopoFkb2Njb2Rl5YC8XHJcbiAgICAvLyAgIGZvcm1JZDp0aGlzLmRhdGEuZm9ybUlkLCAvL+WKn+iDveWPt++8muenkuadgCA3MTA4MDIg77yMIOaKpeWQjemCgOe6piA3MTA4MDMg77yM5Zui6LStIDcxMDgwNFxyXG4gICAgLy8gICBkb2NTdGF0dXM6MCwgLy/ljZXmja7nirbmgIE6IDAg5L+d5a2Y77yI6LW36I2J77yJIO+8jDEwMCDlj5HluINcclxuICAgIC8vICAgY292ZXJJbWFnZSxcclxuICAgIC8vICAgaW1hZ2VzLFxyXG4gICAgLy8gICB0cmFuc0Nvc3RzLCAvL+mAgei0p+S4iumXqOaXtiDphY3pgIHotLlcclxuICAgIC8vICAgLi4udGhpcy5kYXRhLmZvcm1EYXRhLFxyXG4gICAgLy8gICBzZWxsZXJMaXN0LFxyXG4gICAgLy8gfVxyXG4gICAgY29uc29sZS5sb2coJ+W+heS/neWtmOaVsOaNricsZGF0YSk7XHJcbiAgICB0aGlzLnBvc3RGb3JtRGF0YShkYXRhKTtcclxuICB9LFxyXG4gIC8vIG9uSW5wdXRTdGFydERhdGUoKSB7fSxcclxuICAvLyBvbklucHV0RW5kRGF0ZSgpIHt9LFxyXG4gIGluaXRWYWxpZGF0b3IoKXtcclxuICAgIC8vIOWunuS+i+WMllxyXG4gICAgdmFsaWRhdG9ySW5zdGFuY2UgPSBuZXcgTXlWYWxpZGF0b3Ioe1xyXG4gICAgICBydWxlczoge1xyXG4gICAgICAgIHByb21vdGlvbnNUaXRsZToge1xyXG4gICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXHJcbiAgICAgICAgICBtYXhsZW5ndGg6IDE1XHJcbiAgICAgICAgfSxcclxuICAgICAgICBvcmlnaW5hbFByaWNlOiB7XHJcbiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcclxuICAgICAgICAgIG51bWJlcjogdHJ1ZVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZmxhc2hTYWxlUHJpY2U6IHtcclxuICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxyXG4gICAgICAgICAgbnVtYmVyOiB0cnVlXHJcbiAgICAgICAgfSxcclxuICAgICAgICBmbGFzaFNhbGVUb3RhbDoge1xyXG4gICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXHJcbiAgICAgICAgICBudW1iZXI6IHRydWVcclxuICAgICAgICB9LFxyXG4gICAgICAgIGZsYXNoU2FsZUxpbWl0OiB7XHJcbiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcclxuICAgICAgICAgIG51bWJlcjogdHJ1ZVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgcHJvbW90aW9uRGVzY3JpcHRpb246IHtcclxuICAgICAgICAgIHJlcXVpcmVkOiB0cnVlXHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuICAgICAgbWVzc2FnZXM6IHtcclxuICAgICAgICBwcm9tb3Rpb25zVGl0bGU6IHtcclxuICAgICAgICAgIHJlcXVpcmVkOiAn6K+36L6T5YWl5rS75Yqo5qCH6aKYJyxcclxuICAgICAgICAgIG1heGxlbmd0aDogJ+mVv+W6puS4jeiDveWkp+S6jjE1J1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgb3JpZ2luYWxQcmljZToge1xyXG4gICAgICAgICAgcmVxdWlyZWQ6ICfor7fovpPlhaXkuqflk4HmoIfku7cnLFxyXG4gICAgICAgICAgbnVtYmVyOiAn5Lu35qC85b+F6aG75Li65pWw5a2XJ1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZmxhc2hTYWxlUHJpY2U6IHtcclxuICAgICAgICAgIHJlcXVpcmVkOiAn6K+36L6T5YWl5Lqn5ZOB56eS5p2A5Lu3JyxcclxuICAgICAgICAgIG51bWJlcjogJ+S7t+agvOW/hemhu+S4uuaVsOWtlydcclxuICAgICAgICB9LFxyXG4gICAgICAgIGZsYXNoU2FsZVRvdGFsOiB7XHJcbiAgICAgICAgICByZXF1aXJlZDogJ+ivt+i+k+WFpeS6p+WTgeaAu+mHjycsXHJcbiAgICAgICAgICBudW1iZXI6ICfmlbDph4/lv4XpobvkuLrmlbDlrZcnXHJcbiAgICAgICAgfSxcclxuICAgICAgICBmbGFzaFNhbGVMaW1pdDoge1xyXG4gICAgICAgICAgcmVxdWlyZWQ6ICfor7fovpPlhaXkuqflk4Hmr4/kurrpmZDotK3mlbDph48nLFxyXG4gICAgICAgICAgbnVtYmVyOiAn5pWw6YeP5b+F6aG75Li65pWw5a2XJ1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgcHJvbW90aW9uRGVzY3JpcHRpb246IHtcclxuICAgICAgICAgIHJlcXVpcmVkOiAn6K+36L6T5YWl5rS75Yqo5o+P6L+wJ1xyXG4gICAgICAgIH0sXHJcbiAgICAgIH0sXHJcbiAgICAgIG11bHRpQ2hlY2s6dHJ1ZVxyXG4gICAgfSx0aGlzKVxyXG4gICAgLy8gdGhpcy5zZXREYXRhKHtcclxuICAgIC8vICAgdmFsaWRhdG9ySW5zdGFuY2VcclxuICAgIC8vIH0pXHJcbiAgICBjb25zb2xlLmxvZygnaGhoaCwnLHZhbGlkYXRvckluc3RhbmNlKTtcclxuICB9LFxyXG59KVxyXG5leHBvcnQge31cclxuIl19