tango-app-ui-manage-stores 3.0.11-dev → 3.0.12-dev

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.
@@ -9,8 +9,11 @@ export class AddStoresComponent {
9
9
  inputFile;
10
10
  phoneRegex = /^(\d{3})?\d{10}$/;
11
11
  emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
12
+ $headerFilters;
12
13
  constructor(storeService) {
13
14
  this.storeService = storeService;
15
+ let data = JSON.parse(localStorage.getItem('header-filters') || '');
16
+ this.$headerFilters = data;
14
17
  }
15
18
  onUpload(e) {
16
19
  let data;
@@ -140,7 +143,7 @@ export class AddStoresComponent {
140
143
  Promise.all(promises)
141
144
  .then(() => {
142
145
  this.storeService
143
- .storeBulkUpload({ stores: processedArray, clientId: "11" })
146
+ .storeBulkUpload({ stores: processedArray, clientId: this.$headerFilters?.client })
144
147
  .subscribe((res) => {
145
148
  if (res.code == 200) {
146
149
  Swal.fire({
@@ -213,4 +216,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImpor
213
216
  type: ViewChild,
214
217
  args: ["inputFile"]
215
218
  }] } });
216
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLXN0b3Jlcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1tYW5hZ2Utc3RvcmVzL3NyYy9saWIvY29tcG9uZW50cy9hZGQtc3RvcmVzL2FkZC1zdG9yZXMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tbWFuYWdlLXN0b3Jlcy9zcmMvbGliL2NvbXBvbmVudHMvYWRkLXN0b3Jlcy9hZGQtc3RvcmVzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pFLE9BQU8sSUFBSSxNQUFNLGFBQWEsQ0FBQztBQUMvQixPQUFPLEVBQVksSUFBSSxFQUFFLEtBQUssRUFBYSxNQUFNLE1BQU0sQ0FBQzs7OztBQWtCeEQsTUFBTSxPQUFPLGtCQUFrQjtJQU1UO0lBTEksU0FBUyxDQUFhO0lBRTlDLFVBQVUsR0FBVyxrQkFBa0IsQ0FBQztJQUN4QyxVQUFVLEdBQVcsNEJBQTRCLENBQUM7SUFFbEQsWUFBb0IsWUFBMkI7UUFBM0IsaUJBQVksR0FBWixZQUFZLENBQWU7SUFBRyxDQUFDO0lBRW5ELFFBQVEsQ0FBQyxDQUFNO1FBQ2IsSUFBSSxJQUFxQixDQUFDO1FBQzFCLE1BQU0sTUFBTSxHQUErQixDQUFDLENBQUMsTUFBTSxDQUFDO1FBQ3BELElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQzNCLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7U0FDekM7UUFDRCxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLEVBQUU7WUFDaEQsTUFBTSxNQUFNLEdB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O1NBQ3BFO1FBQ0QsSUFBSSxPQUFPLEtBQUssSUFBSSxRQUFRLEVBQUU7WUFDNUIsSUFBSSxLQUFLLENBQUMsSUFBSSxFQUFFLEtBQUssWUFBWSxDQUFDLElBQUksRUFBRSxFQUFFO2dCQUN4QyxPQUFPLHFCQUFxQixTQUFTLENBQUMsV0FBVyxFQUFFLFdBQVcsR0FBRyxHQUFHLENBQUMsRUFBRSxDQUFDO2FBQ3pFO1lBQ0QsSUFBSSxLQUFLLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFO2dCQUN0QyxPQUFPLHNCQUFzQixTQUFTLENBQUMsV0FBVyxFQUFFLFdBQ2xELEdBQUcsR0FBRyxDQUNSLEVBQUUsQ0FBQzthQUNKO1NBQ0Y7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7dUdBdk9VLGtCQUFrQjsyRkFBbEIsa0JBQWtCLDhKQ3BCL0IsMHNLQWlFQTs7MkZEN0NhLGtCQUFrQjtrQkFMOUIsU0FBUzsrQkFDRSxnQkFBZ0I7a0ZBS0YsU0FBUztzQkFBaEMsU0FBUzt1QkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBWaWV3Q2hpbGQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgU3dhbCBmcm9tIFwic3dlZXRhbGVydDJcIjtcclxuaW1wb3J0IHsgV29ya0Jvb2ssIHJlYWQsIHV0aWxzLCBXb3JrU2hlZXQgfSBmcm9tIFwieGxzeFwiO1xyXG5pbXBvcnQgeyBTdG9yZXNTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3NlcnZpY2VzL3N0b3Jlcy5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFN0b3JlQnVsa0l0ZW0gfSBmcm9tIFwiLi4vLi4vaW50ZXJmYWNlcy9zdG9yZS5pbnRlcmZhY2VcIjtcclxuXHJcbmRlY2xhcmUgdmFyICQ6IGFueTtcclxuaW50ZXJmYWNlIExvY2F0aW9uRGV0YWlscyB7XHJcbiAgY2l0eTogc3RyaW5nO1xyXG4gIHN0YXRlOiBzdHJpbmc7XHJcbiAgY291bnRyeTogc3RyaW5nO1xyXG4gIHBpbmNvZGU6IHN0cmluZztcclxuICBhZGRyZXNzOiBzdHJpbmc7XHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcImxpYi1hZGQtc3RvcmVzXCIsXHJcbiAgdGVtcGxhdGVVcmw6IFwiLi9hZGQtc3RvcmVzLmNvbXBvbmVudC5odG1sXCIsXHJcbiAgc3R5bGVVcmw6IFwiLi9hZGQtc3RvcmVzLmNvbXBvbmVudC5zY3NzXCIsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBZGRTdG9yZXNDb21wb25lbnQge1xyXG4gIEBWaWV3Q2hpbGQoXCJpbnB1dEZpbGVcIikgaW5wdXRGaWxlOiBFbGVtZW50UmVmO1xyXG5cclxuICBwaG9uZVJlZ2V4OiBSZWdFeHAgPSAvXihcXGR7M30pP1xcZHsxMH0kLztcclxuICBlbWFpbFJlZ2V4OiBSZWdFeHAgPSAvXlteXFxzQF0rQFteXFxzQF0rXFwuW15cXHNAXSskLztcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzdG9yZVNlcnZpY2U6IFN0b3Jlc1NlcnZpY2UpIHt9XHJcblxyXG4gIG9uVXBsb2FkKGU6IGFueSkge1xyXG4gICAgbGV0IGRhdGE6IFN0b3JlQnVsa0l0ZW1bXTtcclxuICAgIGNvbnN0IHRhcmdldDogRGF0YVRyYW5zZmVyID0gPERhdGFUcmFuc2Zlcj5lLnRhcmdldDtcclxuICAgIGlmICh0YXJnZXQuZmlsZXMubGVuZ3RoID4gMSkge1xyXG4gICAgICB0aGlzLmlucHV0RmlsZS5uYXRpdmVFbGVtZW50LnZhbHVlID0gXCJcIjtcclxuICAgIH1cclxuICAgIGlmICghIXRhcmdldC5maWxlc1swXS5uYW1lLm1hdGNoKC8oLnhsc3wueGxzeCkvKSkge1xyXG4gICAgICBjb25zdCByZWFkZXI6IEZpbGVSZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xyXG4gICAgICByZWFkZXIub25sb2FkID0gKGU6IGFueSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IGJzdHI6IHN0cmluZyA9IGUudGFyZ2V0LnJlc3VsdDtcclxuICAgICAgICBjb25zdCB3YjogV29ya0Jvb2sgPSByZWFkKGJzdHIsIHsgdHlwZTogXCJiaW5hcnlcIiB9KTtcclxuICAgICAgICBjb25zdCB3c25hbWU6IHN0cmluZyA9IHdiLlNoZWV0TmFtZXNbMF07XHJcbiAgICAgICAgY29uc3Qgd3M6IFdvcmtTaGVldCA9IHdiLlNoZWV0c1t3c25hbWVdO1xyXG4gICAgICAgIGlmICh3Yi5TaGVldE5hbWVzWzBdICE9IFwiU3RvcmVEYXRhXCIpIHtcclxuICAgICAgICAgIFN3YWwuZmlyZSh7XHJcbiAgICAgICAgICAgIGljb246IFwiZXJyb3JcIixcclxuICAgICAgICAgICAgdGV4dDogXCJQbGVhc2UgVXBsb2FkIHRoZSBWYWxpZCBGaWxlXCIsXHJcbiAgICAgICAgICAgIHNob3dDYW5jZWxCdXR0b246IGZhbHNlLFxyXG4gICAgICAgICAgICBzaG93Q29uZmlybUJ1dHRvbjogdHJ1ZSxcclxuICAgICAgICAgICAgY29uZmlybUJ1dHRvbkNvbG9yOiBcIiMwMDlFRjdcIixcclxuICAgICAgICAgICAgaGVpZ2h0QXV0bzogZmFsc2UsXHJcbiAgICAgICAgICAgIGNvbmZpcm1CdXR0b25UZXh0OiBcIk9LXCIsXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgZGF0YSA9IHV0aWxzLnNoZWV0X3RvX2pzb24od3MpO1xyXG4gICAgICB9O1xyXG5cclxuICAgICAgcmVhZGVyLnJlYWRBc0JpbmFyeVN0cmluZyh0YXJnZXQuZmlsZXNbMF0pO1xyXG5cclxuICAgICAgcmVhZGVyLm9ubG9hZGVuZCA9IGFzeW5jIChlKSA9PiB7XHJcbiAgICAgICAgbGV0IHByb2Nlc3NlZEFycmF5OiBhbnlbXSA9IFtdO1xyXG4gICAgICAgIGxldCBlcnJNc2dzOiBhbnlbXSA9IFtdO1xyXG4gICAgICAgIGxldCBwcm9taXNlcyA9IFtdO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZGF0YS5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgZXJyTXNncy5wdXNoKHRoaXMudmFsaWRhdGVGaWVsZChkYXRhW2ldLlN0b3JlTmFtZSwgXCJzdG9yZSBuYW1lXCIsIGkpKTtcclxuICAgICAgICAgIGVyck1zZ3MucHVzaCh0aGlzLnZhbGlkYXRlRmllbGQoZGF0YVtpXS5TdG9yZVR5cGUsIFwic3RvcmUgdHlwZVwiLCBpKSk7XHJcbiAgICAgICAgICBlcnJNc2dzLnB1c2godGhpcy52YWxpZGF0ZUZpZWxkKGRhdGFbaV0uU3BvY05hbWUsIFwic3BvYyBuYW1lXCIsIGkpKTtcclxuICAgICAgICAgIGVyck1zZ3MucHVzaChcclxuICAgICAgICAgICAgdGhpcy52YWxpZGF0ZUZpZWxkKGRhdGFbaV0uQnVzaW5lc3NUeXBlLCBcImJ1c2luZXNzIHR5cGVcIiwgaSlcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICBlcnJNc2dzLnB1c2goXHJcbiAgICAgICAgICAgIHRoaXMudmFsaWRhdGVGaWVsZChcclxuICAgICAgICAgICAgICBkYXRhW2ldLlNwb2NFbWFpbCxcclxuICAgICAgICAgICAgICBcInNwb2MgZW1haWxcIixcclxuICAgICAgICAgICAgICBpLFxyXG4gICAgICAgICAgICAgIHRoaXMuZW1haWxSZWdleFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgICAgZXJyTXNncy5wdXNoKFxyXG4gICAgICAgICAgICB0aGlzLnZhbGlkYXRlRmllbGQoXHJcbiAgICAgICAgICAgICAgZGF0YVtpXS5TcG9jQ29udGFjdCxcclxuICAgICAgICAgICAgICBcInNwb2MgY29udGFjdFwiLFxyXG4gICAgICAgICAgICAgIGksXHJcbiAgICAgICAgICAgICAgdGhpcy5waG9uZVJlZ2V4XHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICBlcnJNc2dzLnB1c2godGhpcy52YWxpZGF0ZUZpZWxkKGRhdGFbaV0uVGltZVpvbmUsIFwidGltZXpvbmVcIiwgaSkpO1xyXG4gICAgICAgICAgZXJyTXNncy5wdXNoKFxyXG4gICAgICAgICAgICB0aGlzLnZhbGlkYXRlRmllbGQoZGF0YVtpXS5DYW1lcmFDb3VudCwgXCJjYW1lcmEgY291bnRcIiwgaSlcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICBlcnJNc2dzLnB1c2godGhpcy52YWxpZGF0ZUZpZWxkKGRhdGFbaV0uTGF0aXR1ZGUsIFwibGF0aXR1ZGVcIiwgaSkpO1xyXG4gICAgICAgICAgZXJyTXNncy5wdXNoKHRoaXMudmFsaWRhdGVGaWVsZChkYXRhW2ldLkxvbmdpdHVkZSwgXCJsb25naXR1ZGVcIiwgaSkpO1xyXG5cclxuICAgICAgICAgIGVyck1zZ3MgPSBlcnJNc2dzLmZpbHRlcigoeCkgPT4geCAhPSBudWxsKTtcclxuICAgICAgICAgIGlmIChlcnJNc2dzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgbGV0IGVycm9ycyA9IGVyck1zZ3Muam9pbihcIjxicj5cIik7XHJcbiAgICAgICAgICAgIFN3YWwuZmlyZSh7XHJcbiAgICAgICAgICAgICAgaWNvbjogXCJlcnJvclwiLFxyXG4gICAgICAgICAgICAgIGh0bWw6IGVycm9ycyxcclxuICAgICAgICAgICAgICBjdXN0b21DbGFzczoge1xyXG4gICAgICAgICAgICAgICAgaHRtbENvbnRhaW5lcjogXCJlcnJvci1odG1sY29udGFpbmVyLWNsYXNzXCIsXHJcbiAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICBoZWlnaHRBdXRvOiBmYWxzZSxcclxuICAgICAgICAgICAgICBzaG93Q2FuY2VsQnV0dG9uOiBmYWxzZSxcclxuICAgICAgICAgICAgICBzaG93Q29uZmlybUJ1dHRvbjogdHJ1ZSxcclxuICAgICAgICAgICAgICBjb25maXJtQnV0dG9uQ29sb3I6IFwiIzAwOUVGN1wiLFxyXG4gICAgICAgICAgICAgIGNvbmZpcm1CdXR0b25UZXh0OiBcIk9LXCIsXHJcbiAgICAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4ge30pO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgY29uc3QgcHJvbWlzZSA9IHRoaXMuc3RvcmVTZXJ2aWNlXHJcbiAgICAgICAgICAgIC5nZXRBZGRyZXNzKE51bWJlcihkYXRhW2ldLkxhdGl0dWRlKSwgTnVtYmVyKGRhdGFbaV0uTG9uZ2l0dWRlKSlcclxuICAgICAgICAgICAgLnRoZW4oKHBsYWNlRGF0YTogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgbGV0IHN0b3JlUHJvZmlsZTogYW55ID0ge1xyXG4gICAgICAgICAgICAgICAgYWRkcmVzczogXCJcIixcclxuICAgICAgICAgICAgICAgIGNvdW50cnk6IFwiXCIsXHJcbiAgICAgICAgICAgICAgICBzdGF0ZTogXCJcIixcclxuICAgICAgICAgICAgICAgIGNpdHk6IFwiXCIsXHJcbiAgICAgICAgICAgICAgICBwaW5jb2RlOiBcIlwiLFxyXG4gICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgZm9yIChjb25zdCBjb21wb25lbnQgb2YgcGxhY2VEYXRhLmFkZHJlc3NfY29tcG9uZW50cykge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgdHlwZXMgPSBjb21wb25lbnQudHlwZXM7XHJcbiAgICAgICAgICAgICAgICBpZiAodHlwZXMuaW5jbHVkZXMoXCJsb2NhbGl0eVwiKSkge1xyXG4gICAgICAgICAgICAgICAgICBzdG9yZVByb2ZpbGUuY2l0eSA9IGNvbXBvbmVudC5sb25nX25hbWU7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHR5cGVzLmluY2x1ZGVzKFwiYWRtaW5pc3RyYXRpdmVfYXJlYV9sZXZlbF8xXCIpKSB7XHJcbiAgICAgICAgICAgICAgICAgIHN0b3JlUHJvZmlsZS5zdGF0ZSA9IGNvbXBvbmVudC5sb25nX25hbWU7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHR5cGVzLmluY2x1ZGVzKFwiY291bnRyeVwiKSkge1xyXG4gICAgICAgICAgICAgICAgICBzdG9yZVByb2ZpbGUuY291bnRyeSA9IGNvbXBvbmVudC5sb25nX25hbWU7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHR5cGVzLmluY2x1ZGVzKFwicG9zdGFsX2NvZGVcIikpIHtcclxuICAgICAgICAgICAgICAgICAgc3RvcmVQcm9maWxlLnBpbmNvZGUgPSBjb21wb25lbnQubG9uZ19uYW1lO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChcclxuICAgICAgICAgICAgICAgICAgdHlwZXMuaW5jbHVkZXMoXCJwcmVtaXNlXCIpIHx8XHJcbiAgICAgICAgICAgICAgICAgIHR5cGVzLmluY2x1ZGVzKFwic3VibG9jYWxpdHlfbGV2ZWxfMlwiKSB8fFxyXG4gICAgICAgICAgICAgICAgICB0eXBlcy5pbmNsdWRlcyhcInN1YmxvY2FsaXR5X2xldmVsXzFcIilcclxuICAgICAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgICBpZiAoY29tcG9uZW50LmxvbmdfbmFtZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHN0b3JlUHJvZmlsZS5hZGRyZXNzICs9IGNvbXBvbmVudC5sb25nX25hbWUgKyBcIixcIjtcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBpZiAoc3RvcmVQcm9maWxlLmFkZHJlc3MpIHtcclxuICAgICAgICAgICAgICAgIHN0b3JlUHJvZmlsZS5hZGRyZXNzID0gc3RvcmVQcm9maWxlLmFkZHJlc3Muc2xpY2UoMCwgLTEpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBkYXRhW2ldW1wic3RvcmVQcm9maWxlXCJdID0gc3RvcmVQcm9maWxlO1xyXG4gICAgICAgICAgICAgIHByb2Nlc3NlZEFycmF5LnB1c2goe1xyXG4gICAgICAgICAgICAgICAgc3RvcmVOYW1lOiBkYXRhW2ldLlN0b3JlTmFtZSxcclxuICAgICAgICAgICAgICAgIHN0b3JlVHlwZTogeyB0eXBlOiBkYXRhW2ldLlN0b3JlVHlwZSB9LFxyXG4gICAgICAgICAgICAgICAgZWRnZTogeyBjYW1EZXRhaWxzOiB7IGNhbWVyYXM6IGRhdGFbaV0uQ2FtZXJhQ291bnQgfSB9LFxyXG4gICAgICAgICAgICAgICAgc3BvY0RldGFpbHM6IHtcclxuICAgICAgICAgICAgICAgICAgbmFtZTogZGF0YVtpXS5TcG9jTmFtZSxcclxuICAgICAgICAgICAgICAgICAgZW1haWw6IGRhdGFbaV0uU3BvY0VtYWlsLFxyXG4gICAgICAgICAgICAgICAgICBjb250YWN0OiBkYXRhW2ldLlNwb2NDb250YWN0LnRvU3RyaW5nKCksXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgc3RvcmVQcm9maWxlOiB7XHJcbiAgICAgICAgICAgICAgICAgIC4uLmRhdGFbaV0uc3RvcmVQcm9maWxlLFxyXG4gICAgICAgICAgICAgICAgICAuLi57IHRpbWVab25lOiBkYXRhW2ldLlRpbWVab25lIH0sXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgYnVzaW5lc3NUeXBlOiBkYXRhW2ldLkJ1c2luZXNzVHlwZSxcclxuICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgLmNhdGNoKChlcnJvcikgPT4ge1xyXG4gICAgICAgICAgICAgIFN3YWwuZmlyZSh7XHJcbiAgICAgICAgICAgICAgICBpY29uOiBcImVycm9yXCIsXHJcbiAgICAgICAgICAgICAgICB0ZXh0OiBgUGxlYXNlIFVwbG9hZCB0aGUgRmlsZSB3aXRoIFZhbGlkIGxhdGl0dWRlIGFuZCBsb25naXR1ZGUgaW4gcm93ICR7XHJcbiAgICAgICAgICAgICAgICAgIGkgKyAxXHJcbiAgICAgICAgICAgICAgICB9YCxcclxuICAgICAgICAgICAgICAgIHNob3dDYW5jZWxCdXR0b246IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgc2hvd0NvbmZpcm1CdXR0b246IHRydWUsXHJcbiAgICAgICAgICAgICAgICBjb25maXJtQnV0dG9uQ29sb3I6IFwiIzAwOUVGN1wiLFxyXG4gICAgICAgICAgICAgICAgaGVpZ2h0QXV0bzogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICBjb25maXJtQnV0dG9uVGV4dDogXCJPS1wiLFxyXG4gICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIHByb21pc2VzLnB1c2gocHJvbWlzZSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBQcm9taXNlLmFsbChwcm9taXNlcylcclxuICAgICAgICAgIC50aGVuKCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5zdG9yZVNlcnZpY2VcclxuICAgICAgICAgICAgICAuc3RvcmVCdWxrVXBsb2FkKHsgc3RvcmVzOiBwcm9jZXNzZWRBcnJheSwgY2xpZW50SWQ6IFwiMTFcIiB9KVxyXG4gICAgICAgICAgICAgIC5zdWJzY3JpYmUoXHJcbiAgICAgICAgICAgICAgICAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgaWYgKHJlcy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgICAgICAgICAgICAgIFN3YWwuZmlyZSh7XHJcbiAgICAgICAgICAgICAgICAgICAgICBpY29uOiBcInN1Y2Nlc3NcIixcclxuICAgICAgICAgICAgICAgICAgICAgIGhlaWdodEF1dG86IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgaHRtbDogYDxoMz5TdG9yZXMgaGF2ZSBiZWVuIHVwbG9hZGVkIFN1Y2Nlc3NmdWxseSE8L2gzPmAsXHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAoZXJyb3I6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICBpZiAoZXJyb3IuY29kZSA9PSA0MDApIHtcclxuICAgICAgICAgICAgICAgICAgICBTd2FsLmZpcmUoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgaWNvbjogXCJlcnJvclwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgdGV4dDogZXJyb3IsXHJcbiAgICAgICAgICAgICAgICAgICAgICBoZWlnaHRBdXRvOiBmYWxzZSxcclxuICAgICAgICAgICAgICAgICAgICAgIHNob3dDb25maXJtQnV0dG9uOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgY29uZmlybUJ1dHRvblRleHQ6IFwiT0tcIixcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBTd2FsLmZpcmUoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgaWNvbjogXCJlcnJvclwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgdGV4dDogXCJVbmFibGUgdG8gY3JlYXRlIHN0b3JlcyFcIixcclxuICAgICAgICAgICAgICAgICAgICAgIGhlaWdodEF1dG86IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgc2hvd0NvbmZpcm1CdXR0b246IHRydWUsXHJcbiAgICAgICAgICAgICAgICAgICAgICBjb25maXJtQnV0dG9uVGV4dDogXCJPS1wiLFxyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgICAuY2F0Y2goKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICAgIFN3YWwuZmlyZSh7XHJcbiAgICAgICAgICAgICAgaWNvbjogXCJlcnJvclwiLFxyXG4gICAgICAgICAgICAgIHRleHQ6IFwiVW5hYmxlIHRvIGNyZWF0ZSBzdG9yZXMhXCIsXHJcbiAgICAgICAgICAgICAgaGVpZ2h0QXV0bzogZmFsc2UsXHJcbiAgICAgICAgICAgICAgc2hvd0NvbmZpcm1CdXR0b246IHRydWUsXHJcbiAgICAgICAgICAgICAgY29uZmlybUJ1dHRvblRleHQ6IFwiT0tcIixcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgfTtcclxuICAgICAgJChcIiNrdF9jcmVhdGVfYWNjb3VudF9mb3JtX2FjY291bnRfdHlwZV9wZXJzb25hbFwiKS52YWwoXCJcIik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB2YWxpZGF0ZUZpZWxkKFxyXG4gICAgdmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCB8IG51bGwgfCBudW1iZXIsXHJcbiAgICBmaWVsZE5hbWU6IHN0cmluZyxcclxuICAgIHJvdzogbnVtYmVyLFxyXG4gICAgcmVnZXg/OiBSZWdFeHBcclxuICApOiBzdHJpbmcgfCBudWxsIHtcclxuICAgIGlmICh0eXBlb2YgdmFsdWUgIT09IFwic3RyaW5nXCIgJiYgdHlwZW9mIHZhbHVlICE9PSBcIm51bWJlclwiKSB7XHJcbiAgICAgIHJldHVybiBgSW52YWxpZCB2YWx1ZSBmb3IgJHtmaWVsZE5hbWUudG9Mb3dlckNhc2UoKX0gaW4gcm93ICR7cm93ICsgMX1gO1xyXG4gICAgfVxyXG4gICAgY29uc3QgZGVmYXVsdFZhbHVlID0gYHBsZWFzZSBlbnRlciB0aGUgJHtmaWVsZE5hbWVcclxuICAgICAgLnRvTG93ZXJDYXNlKClcclxuICAgICAgLnJlcGxhY2UoL1xcYlxcdy9nLCAobCkgPT4gbC50b1VwcGVyQ2FzZSgpKX1gO1xyXG4gICAgaWYgKCF2YWx1ZSkge1xyXG4gICAgICByZXR1cm4gYFBsZWFzZSBlbnRlciAke2ZpZWxkTmFtZS50b0xvd2VyQ2FzZSgpfSBpbiByb3cgJHtyb3cgKyAxfWA7XHJcbiAgICB9XHJcbiAgICBpZiAodHlwZW9mIHZhbHVlID09IFwic3RyaW5nXCIpIHtcclxuICAgICAgaWYgKHZhbHVlLnRyaW0oKSA9PT0gZGVmYXVsdFZhbHVlLnRyaW0oKSkge1xyXG4gICAgICAgIHJldHVybiBgSW52YWxpZCB2YWx1ZSBmb3IgJHtmaWVsZE5hbWUudG9Mb3dlckNhc2UoKX0gaW4gcm93ICR7cm93ICsgMX1gO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChyZWdleCAmJiAhcmVnZXgudGVzdCh2YWx1ZS50cmltKCkpKSB7XHJcbiAgICAgICAgcmV0dXJuIGBQbGVhc2UgZW50ZXIgdmFsaWQgJHtmaWVsZE5hbWUudG9Mb3dlckNhc2UoKX0gaW4gcm93ICR7XHJcbiAgICAgICAgICByb3cgKyAxXHJcbiAgICAgICAgfWA7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiY2FyZFwiPlxyXG4gIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgZC1mbGV4IGZsZXgtY2VudGVyIGZsZXgtY29sdW1uIHAtOVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cIm1iLTVcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInN5bWJvbCBzeW1ib2wtNzVweCBzeW1ib2wtY2lyY2xlXCI+XHJcbiAgICAgICAgPGltZyBhbHQ9XCJQaWNcIiBzcmM9XCIuL2Fzc2V0cy90YW5nby9JY29ucy9hZGQtc3RvcmUtaWNvbi5zdmdcIj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxhIGNsYXNzPVwiZnMtNCB0ZXh0LWdyYXktODAwIHRleHQtaG92ZXItcHJpbWFyeSBmdy1ib2xkZXIgbWItMCB0aXRsZSBjdXJzb3ItcG9pbnRlclwiPiBBZGQgc3RvcmVzIDwvYT5cclxuICAgIDxkaXYgY2xhc3M9XCJmdy1ib2xkIHRleHQtZ3JheS01MDAgbXktNlwiPlxyXG4gICAgICA8dWwgY2xhc3M9XCJ0ZXh0LWdyYXktNDAwIGZ3LWJvbGQgZnMtNlwiPlxyXG4gICAgICAgIDxsaT5Vc2UgdGhlIHRlbXBsYXRlIHRvIHVwbG9hZCBtdWx0aXBsZSBzdG9yZXMgYXQgb25jZS48L2xpPlxyXG4gICAgICAgIDxsaT5Eb3dubG9hZCB0aGUgdGVtcGxhdGUgaGVyZSAtXHJcbiAgICAgICAgICA8YSBocmVmPVwiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2Fzc2V0cy9maWxlcy9zdG9yZXNVcGxvYWRUZW1wbGF0ZS54bHN4XCIgZG93bmxvYWQ+XHJcbiAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICBkPVwiTTE3LjUgMTIuNVYxNS44MzMzQzE3LjUgMTYuMjc1NCAxNy4zMjQ0IDE2LjY5OTMgMTcuMDExOCAxNy4wMTE4QzE2LjY5OTMgMTcuMzI0NCAxNi4yNzU0IDE3LjUgMTUuODMzMyAxNy41SDQuMTY2NjdDMy43MjQ2NCAxNy41IDMuMzAwNzIgMTcuMzI0NCAyLjk4ODE2IDE3LjAxMThDMi42NzU1OSAxNi42OTkzIDIuNSAxNi4yNzU0IDIuNSAxNS44MzMzVjEyLjVNNS44MzMzMyA4LjMzMzMzTDEwIDEyLjVNMTAgMTIuNUwxNC4xNjY3IDguMzMzMzNNMTAgMTIuNVYyLjVcIlxyXG4gICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzAwOUJGM1wiIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZW1wbGF0ZSBtcy0yXCI+RG93bmxvYWQgVGVtcGxhdGU8L3NwYW4+XHJcbiAgICAgICAgICA8L2E+XHJcbiAgICAgICAgPC9saT5cclxuICAgICAgICA8bGk+QWRkIHlvdXIgZGF0YSB0byB0aGUgVGVtcGxhdGUgRmlsZTwvbGk+XHJcbiAgICAgICAgPGxpPlVwbG9hZCBpdCBiZWxvdyBmb3IgcHJvY2Vzc2luZzwvbGk+XHJcbiAgICAgIDwvdWw+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1jZW50ZXIgZmxleC13cmFwIG1iLTVcIj5cclxuICAgICAgPGlucHV0IG5hbWU9XCJhY2NvdW50VHlwZVwiIHR5cGU9XCJyYWRpb1wiIGlkPVwia3RfY3JlYXRlX2FjY291bnRfZm9ybV9hY2NvdW50X3R5cGVfcGVyc29uYWxcIiB2YWx1ZT1cInBlcnNvbmFsXCJcclxuICAgICAgICBjbGFzcz1cImJ0bi1jaGVja1wiIG5nLXJlZmxlY3QtbmFtZT1cImFjY291bnRUeXBlXCIgbmctcmVmbGVjdC1mb3JtLWNvbnRyb2wtbmFtZT1cImFjY291bnRUeXBlXCJcclxuICAgICAgICAoY2hhbmdlKT1cIm9uVXBsb2FkKCRldmVudClcIlxyXG4gICAgICAgIG5nLXJlZmxlY3QtdmFsdWU9XCJwZXJzb25hbFwiIHR5cGU9XCJmaWxlXCIgI2lucHV0RmlsZSAvPlxyXG4gICAgICA8bGFiZWwgZm9yPVwia3RfY3JlYXRlX2FjY291bnRfZm9ybV9hY2NvdW50X3R5cGVfcGVyc29uYWxcIlxyXG4gICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lIGJ0bi1wcmltYXJ5IGJnLXByaW1hcnkgYnRuLW91dGxpbmUtZGVmYXVsdCByb3VuZGVkLTMgdy01MCBwLTQgbXQtNVwiPjxzcGFuXHJcbiAgICAgICAgICBjbGFzcz1cImZ3LWJvbGQgZnMtNFwiPlxyXG4gICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMVwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMSAyMFwiXHJcbiAgICAgICAgICAgIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgZD1cIk0xOCAxMi41VjE1LjgzMzNDMTggMTYuMjc1NCAxNy44MjQ0IDE2LjY5OTMgMTcuNTExOCAxNy4wMTE4QzE3LjE5OTMgMTcuMzI0NCAxNi43NzU0IDE3LjUgMTYuMzMzMyAxNy41SDQuNjY2NjdDNC4yMjQ2NCAxNy41IDMuODAwNzIgMTcuMzI0NCAzLjQ4ODE2IDE3LjAxMThDMy4xNzU1OSAxNi42OTkzIDMgMTYuMjc1NCAzIDE1LjgzMzNWMTIuNU0xNC42NjY3IDYuNjY2NjdMMTAuNSAyLjVNMTAuNSAyLjVMNi4zMzMzMyA2LjY2NjY3TTEwLjUgMi41VjEyLjVcIlxyXG4gICAgICAgICAgICAgIHN0cm9rZT1cIndoaXRlXCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICA8L3N2Zz4gXHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtd2hpdGUgbXgtMlwiPkFkZCBNdWx0aXBsZSBTdG9yZXM8L3NwYW4+PC9zcGFuPlxyXG4gICAgICA8L2xhYmVsPlxyXG4gICAgICA8cCBjbGFzcz1cInRleHQtZ3JheS00MDAgZnctYm9sZCBteS0zXCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJsaW5lLWJnIFwiPjxzdmcgd2lkdGg9XCIyMjRcIiBoZWlnaHQ9XCIyXCIgdmlld0JveD1cIjAgMCAxMjQgMlwiIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICA8cmVjdCB5PVwiMC41XCIgd2lkdGg9XCIxMjMuMzMzXCIgaGVpZ2h0PVwiMVwiIGZpbGw9XCIjRUFFQ0YwXCIgLz5cclxuICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgIDwvc3Bhbj48c3BhbiBjbGFzcz1cIm14LTJcIj5PciA8L3NwYW4+IDxzcGFuIGNsYXNzPVwibGluZS1iZyBcIj48c3ZnIHdpZHRoPVwiMjI0XCIgaGVpZ2h0PVwiMlwiIHZpZXdCb3g9XCIwIDAgMTI0IDJcIlxyXG4gICAgICAgICAgICBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgICAgPHJlY3QgeT1cIjAuNVwiIHdpZHRoPVwiMTIzLjMzM1wiIGhlaWdodD1cIjFcIiBmaWxsPVwiI0VBRUNGMFwiIC8+XHJcbiAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgIDwvcD5cclxuICAgICAgPGlucHV0IHR5cGU9XCJyYWRpb1wiIGlkPVwia3RfYWNjb3VudF90ZWFtX3NpemVfc2VsZWN0XzFcIiB2YWx1ZT1cIjEtMVwiIHJvdXRlckxpbms9XCIvbWFuYWdlL3N0b3Jlcy9hZGQtc2luZ2xlLXN0b3JlXCJcclxuICAgICAgICBjbGFzcz1cImJ0bi1jaGVjayBuZy11bnRvdWNoZWQgbmctcHJpc3RpbmUgbmctdmFsaWRcIiAvPlxyXG4gICAgICA8bGFiZWwgZm9yPVwia3RfYWNjb3VudF90ZWFtX3NpemVfc2VsZWN0XzFcIlxyXG4gICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lIGJ0bi1vdXRsaW5lLWRlZmF1bHQgcm91bmRlZC0zIHctNTAgcC00IG10LTNcIj5cclxuICAgICAgICA8c3ZnIHdpZHRoPVwiMTdcIiBoZWlnaHQ9XCIxNlwiIHZpZXdCb3g9XCIwIDAgMTcgMTZcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgIDxwYXRoIGQ9XCJNMS4xODAxNSAzLjgwMzc4TDEuMTI2OSAzLjg4Njk1QzAuNTY4ODYzIDQuODc0IDEuMTY0NjkgNi4xMjE0MyAyLjIzNjMgNi4yNjQ1MkMyLjMzMzM5IDYuMjc2MzkgMi40MjM3MyA2LjI4MjY3IDIuNTEyIDYuMjgyNjdDMy4wOTAxNSA2LjI4MjY3IDMuNjAxMzIgNi4wMzQ2NSAzLjk1NzU5IDUuNjQ3OTJMNC41MTA5MyA1LjA0NzNMNS4wNjIzOCA1LjY0OTY1QzUuNDE0MzIgNi4wMzQwNyA1LjkyNDMzIDYuMjgyNjcgNi41MDYzOSA2LjI4MjY3QzcuMDg1ODMgNi4yODI2NyA3LjU5ODc3IDYuMDMzNzIgNy45NTAzOSA1LjY0OTY1TDguNTAzNTggNS4wNDU0MUw5LjA1Njc2IDUuNjQ5NjVDOS40MDgzOSA2LjAzMzcyIDkuOTIxMzMgNi4yODI2NyAxMC41MDA4IDYuMjgyNjdDMTEuMDgwMiA2LjI4MjY3IDExLjU5MzIgNi4wMzM3MiAxMS45NDQ4IDUuNjQ5NjVMMTIuNDk4IDUuMDQ1NDFMMTMuMDUxMSA1LjY0OTY1QzEzLjQwMjggNi4wMzM3MiAxMy45MTU3IDYuMjgyNjcgMTQuNDk1MiA2LjI4MjY3QzE0LjU4MDUgNi4yODI2NyAxNC42NzM2IDYuMjc2MzggMTQuNzcgNi4yNjQ2MkMxNS44NjUyIDYuMTE1MyAxNi40NjMgNC44MDEwMyAxNS44MjQzIDMuODA0MjhDMTUuODI0MiAzLjgwNDIzIDE1LjgyNDIgMy44MDQxNyAxNS44MjQyIDMuODA0MTFMMTQuMDY2IDEuMDYyN0wxNC4wNjYgMS4wNjI3TDE0LjA2NTEgMS4wNjEyM0MxNC4wNDk5IDEuMDM3NCAxNC4wMTI0IDEuMDExODQgMTMuOTY1MiAxLjAxMTg0SDMuMDM1ODFDMi45ODg2NiAxLjAxMTg0IDIuOTUxMTcgMS4wMzc0IDIuOTM1OTcgMS4wNjEyNEwyLjkzNTM1IDEuMDYyMkwxLjE4MDE1IDMuODAzNzhaTTE0LjE1MTYgOC43MzcwNlYxMS44NjlWMTIuNjE5SDEzLjQwMTZIMy41OTk0M0gyLjg0OTQzVjExLjg2OVY4LjczNzUzQzIuNzM5MiA4Ljc0NTczIDIuNjI3NjggOC43NDk5NCAyLjUxNTA3IDguNzQ5OTRDMi40NzI3NiA4Ljc0OTk0IDIuNDMwNzQgOC43NDkzMSAyLjM4OSA4Ljc0ODA5VjExLjg2OVYxMy44MDM1QzIuMzg5IDE0LjQ0NjkgMi45MjI5IDE0Ljk4OCAzLjU5OTQzIDE0Ljk4OEgxMy40MDE2QzE0LjA3ODEgMTQuOTg4IDE0LjYxMiAxNC40NDY5IDE0LjYxMiAxMy44MDM1VjExLjg2OVY4Ljc0ODI3QzE0LjU3MjIgOC43NDkzNyAxNC41MzIyIDguNzQ5OTQgMTQuNDkyMSA4Ljc0OTk0QzE0LjM3NzcgOC43NDk5NCAxNC4yNjQxIDguNzQ1NTkgMTQuMTUxNiA4LjczNzA2WlwiIHN0cm9rZT1cIiMzNDQwNTRcIiBzdHJva2Utd2lkdGg9XCIxLjVcIi8+XHJcbiAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cImZ3LWJvbGQgZnMtNCBteC0yXCI+XHJcbiAgICAgICAgICAgIEFkZCBTaW5nbGVcclxuICAgICAgICAgIFN0b3JlPC9zcGFuPjwvbGFiZWw+XHJcbiAgICA8L2Rpdj5cclxuICBcclxuICA8L2Rpdj5cclxuIl19
219
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLXN0b3Jlcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1tYW5hZ2Utc3RvcmVzL3NyYy9saWIvY29tcG9uZW50cy9hZGQtc3RvcmVzL2FkZC1zdG9yZXMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tbWFuYWdlLXN0b3Jlcy9zcmMvbGliL2NvbXBvbmVudHMvYWRkLXN0b3Jlcy9hZGQtc3RvcmVzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pFLE9BQU8sSUFBSSxNQUFNLGFBQWEsQ0FBQztBQUMvQixPQUFPLEVBQVksSUFBSSxFQUFFLEtBQUssRUFBYSxNQUFNLE1BQU0sQ0FBQzs7OztBQWtCeEQsTUFBTSxPQUFPLGtCQUFrQjtJQU9UO0lBTkksU0FBUyxDQUFhO0lBRTlDLFVBQVUsR0FBVyxrQkFBa0IsQ0FBQztJQUN4QyxVQUFVLEdBQVcsNEJBQTRCLENBQUM7SUFDbEQsY0FBYyxDQUFNO0lBRXBCLFlBQW9CLFlBQTJCO1FBQTNCLGlCQUFZLEdBQVosWUFBWSxDQUFlO1FBQzdDLElBQUksSUFBSSxHQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ3hFLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO0lBQzdCLENBQUM7SUFFRCxRQUFRLENBQUMsQ0FBTTtRQUNiLElBQUksSUFBcUIsQ0FBQztRQUMxQixNQUFNLE1BQU0sR0FBK0IsQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUNwRCxJQUFJLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUMzQixJQUFJLENBQUMsU0FBUyxDQUFD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QUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsRUFBRSxDQUFDO1FBQzlDLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDVixPQUFPLGdCQUFnQixTQUFTLENBQUMsV0FBVyxFQUFFLFdBQVcsR0FBRyxHQUFHLENBQUMsRUFBRSxDQUFDO1NBQ3BFO1FBQ0QsSUFBSSxPQUFPLEtBQUssSUFBSSxRQUFRLEVBQUU7WUFDNUIsSUFBSSxLQUFLLENBQUMsSUFBSSxFQUFFLEtBQUssWUFBWSxDQUFDLElBQUksRUFBRSxFQUFFO2dCQUN4QyxPQUFPLHFCQUFxQixTQUFTLENBQUMsV0FBVyxFQUFFLFdBQVcsR0FBRyxHQUFHLENBQUMsRUFBRSxDQUFDO2FBQ3pFO1lBQ0QsSUFBSSxLQUFLLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFO2dCQUN0QyxPQUFPLHNCQUFzQixTQUFTLENBQUMsV0FBVyxFQUFFLFdBQ2xELEdBQUcsR0FBRyxDQUNSLEVBQUUsQ0FBQzthQUNKO1NBQ0Y7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7dUdBM09VLGtCQUFrQjsyRkFBbEIsa0JBQWtCLDhKQ3BCL0IsMHNLQWlFQTs7MkZEN0NhLGtCQUFrQjtrQkFMOUIsU0FBUzsrQkFDRSxnQkFBZ0I7a0ZBS0YsU0FBUztzQkFBaEMsU0FBUzt1QkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBWaWV3Q2hpbGQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgU3dhbCBmcm9tIFwic3dlZXRhbGVydDJcIjtcclxuaW1wb3J0IHsgV29ya0Jvb2ssIHJlYWQsIHV0aWxzLCBXb3JrU2hlZXQgfSBmcm9tIFwieGxzeFwiO1xyXG5pbXBvcnQgeyBTdG9yZXNTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3NlcnZpY2VzL3N0b3Jlcy5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFN0b3JlQnVsa0l0ZW0gfSBmcm9tIFwiLi4vLi4vaW50ZXJmYWNlcy9zdG9yZS5pbnRlcmZhY2VcIjtcclxuXHJcbmRlY2xhcmUgdmFyICQ6IGFueTtcclxuaW50ZXJmYWNlIExvY2F0aW9uRGV0YWlscyB7XHJcbiAgY2l0eTogc3RyaW5nO1xyXG4gIHN0YXRlOiBzdHJpbmc7XHJcbiAgY291bnRyeTogc3RyaW5nO1xyXG4gIHBpbmNvZGU6IHN0cmluZztcclxuICBhZGRyZXNzOiBzdHJpbmc7XHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcImxpYi1hZGQtc3RvcmVzXCIsXHJcbiAgdGVtcGxhdGVVcmw6IFwiLi9hZGQtc3RvcmVzLmNvbXBvbmVudC5odG1sXCIsXHJcbiAgc3R5bGVVcmw6IFwiLi9hZGQtc3RvcmVzLmNvbXBvbmVudC5zY3NzXCIsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBZGRTdG9yZXNDb21wb25lbnQge1xyXG4gIEBWaWV3Q2hpbGQoXCJpbnB1dEZpbGVcIikgaW5wdXRGaWxlOiBFbGVtZW50UmVmO1xyXG5cclxuICBwaG9uZVJlZ2V4OiBSZWdFeHAgPSAvXihcXGR7M30pP1xcZHsxMH0kLztcclxuICBlbWFpbFJlZ2V4OiBSZWdFeHAgPSAvXlteXFxzQF0rQFteXFxzQF0rXFwuW15cXHNAXSskLztcclxuICAkaGVhZGVyRmlsdGVyczogYW55O1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHN0b3JlU2VydmljZTogU3RvcmVzU2VydmljZSkge1xyXG4gICAgbGV0IGRhdGE6YW55ID0gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnaGVhZGVyLWZpbHRlcnMnKSB8fCAnJyk7XHJcbiAgICB0aGlzLiRoZWFkZXJGaWx0ZXJzID0gZGF0YTtcclxuICB9XHJcblxyXG4gIG9uVXBsb2FkKGU6IGFueSkge1xyXG4gICAgbGV0IGRhdGE6IFN0b3JlQnVsa0l0ZW1bXTtcclxuICAgIGNvbnN0IHRhcmdldDogRGF0YVRyYW5zZmVyID0gPERhdGFUcmFuc2Zlcj5lLnRhcmdldDtcclxuICAgIGlmICh0YXJnZXQuZmlsZXMubGVuZ3RoID4gMSkge1xyXG4gICAgICB0aGlzLmlucHV0RmlsZS5uYXRpdmVFbGVtZW50LnZhbHVlID0gXCJcIjtcclxuICAgIH1cclxuICAgIGlmICghIXRhcmdldC5maWxlc1swXS5uYW1lLm1hdGNoKC8oLnhsc3wueGxzeCkvKSkge1xyXG4gICAgICBjb25zdCByZWFkZXI6IEZpbGVSZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xyXG4gICAgICByZWFkZXIub25sb2FkID0gKGU6IGFueSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IGJzdHI6IHN0cmluZyA9IGUudGFyZ2V0LnJlc3VsdDtcclxuICAgICAgICBjb25zdCB3YjogV29ya0Jvb2sgPSByZWFkKGJzdHIsIHsgdHlwZTogXCJiaW5hcnlcIiB9KTtcclxuICAgICAgICBjb25zdCB3c25hbWU6IHN0cmluZyA9IHdiLlNoZWV0TmFtZXNbMF07XHJcbiAgICAgICAgY29uc3Qgd3M6IFdvcmtTaGVldCA9IHdiLlNoZWV0c1t3c25hbWVdO1xyXG4gICAgICAgIGlmICh3Yi5TaGVldE5hbWVzWzBdICE9IFwiU3RvcmVEYXRhXCIpIHtcclxuICAgICAgICAgIFN3YWwuZmlyZSh7XHJcbiAgICAgICAgICAgIGljb246IFwiZXJyb3JcIixcclxuICAgICAgICAgICAgdGV4dDogXCJQbGVhc2UgVXBsb2FkIHRoZSBWYWxpZCBGaWxlXCIsXHJcbiAgICAgICAgICAgIHNob3dDYW5jZWxCdXR0b246IGZhbHNlLFxyXG4gICAgICAgICAgICBzaG93Q29uZmlybUJ1dHRvbjogdHJ1ZSxcclxuICAgICAgICAgICAgY29uZmlybUJ1dHRvbkNvbG9yOiBcIiMwMDlFRjdcIixcclxuICAgICAgICAgICAgaGVpZ2h0QXV0bzogZmFsc2UsXHJcbiAgICAgICAgICAgIGNvbmZpcm1CdXR0b25UZXh0OiBcIk9LXCIsXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgZGF0YSA9IHV0aWxzLnNoZWV0X3RvX2pzb24od3MpO1xyXG4gICAgICB9O1xyXG5cclxuICAgICAgcmVhZGVyLnJlYWRBc0JpbmFyeVN0cmluZyh0YXJnZXQuZmlsZXNbMF0pO1xyXG5cclxuICAgICAgcmVhZGVyLm9ubG9hZGVuZCA9IGFzeW5jIChlKSA9PiB7XHJcbiAgICAgICAgbGV0IHByb2Nlc3NlZEFycmF5OiBhbnlbXSA9IFtdO1xyXG4gICAgICAgIGxldCBlcnJNc2dzOiBhbnlbXSA9IFtdO1xyXG4gICAgICAgIGxldCBwcm9taXNlcyA9IFtdO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZGF0YS5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgZXJyTXNncy5wdXNoKHRoaXMudmFsaWRhdGVGaWVsZChkYXRhW2ldLlN0b3JlTmFtZSwgXCJzdG9yZSBuYW1lXCIsIGkpKTtcclxuICAgICAgICAgIGVyck1zZ3MucHVzaCh0aGlzLnZhbGlkYXRlRmllbGQoZGF0YVtpXS5TdG9yZVR5cGUsIFwic3RvcmUgdHlwZVwiLCBpKSk7XHJcbiAgICAgICAgICBlcnJNc2dzLnB1c2godGhpcy52YWxpZGF0ZUZpZWxkKGRhdGFbaV0uU3BvY05hbWUsIFwic3BvYyBuYW1lXCIsIGkpKTtcclxuICAgICAgICAgIGVyck1zZ3MucHVzaChcclxuICAgICAgICAgICAgdGhpcy52YWxpZGF0ZUZpZWxkKGRhdGFbaV0uQnVzaW5lc3NUeXBlLCBcImJ1c2luZXNzIHR5cGVcIiwgaSlcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICBlcnJNc2dzLnB1c2goXHJcbiAgICAgICAgICAgIHRoaXMudmFsaWRhdGVGaWVsZChcclxuICAgICAgICAgICAgICBkYXRhW2ldLlNwb2NFbWFpbCxcclxuICAgICAgICAgICAgICBcInNwb2MgZW1haWxcIixcclxuICAgICAgICAgICAgICBpLFxyXG4gICAgICAgICAgICAgIHRoaXMuZW1haWxSZWdleFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgICAgZXJyTXNncy5wdXNoKFxyXG4gICAgICAgICAgICB0aGlzLnZhbGlkYXRlRmllbGQoXHJcbiAgICAgICAgICAgICAgZGF0YVtpXS5TcG9jQ29udGFjdCxcclxuICAgICAgICAgICAgICBcInNwb2MgY29udGFjdFwiLFxyXG4gICAgICAgICAgICAgIGksXHJcbiAgICAgICAgICAgICAgdGhpcy5waG9uZVJlZ2V4XHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICBlcnJNc2dzLnB1c2godGhpcy52YWxpZGF0ZUZpZWxkKGRhdGFbaV0uVGltZVpvbmUsIFwidGltZXpvbmVcIiwgaSkpO1xyXG4gICAgICAgICAgZXJyTXNncy5wdXNoKFxyXG4gICAgICAgICAgICB0aGlzLnZhbGlkYXRlRmllbGQoZGF0YVtpXS5DYW1lcmFDb3VudCwgXCJjYW1lcmEgY291bnRcIiwgaSlcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICBlcnJNc2dzLnB1c2godGhpcy52YWxpZGF0ZUZpZWxkKGRhdGFbaV0uTGF0aXR1ZGUsIFwibGF0aXR1ZGVcIiwgaSkpO1xyXG4gICAgICAgICAgZXJyTXNncy5wdXNoKHRoaXMudmFsaWRhdGVGaWVsZChkYXRhW2ldLkxvbmdpdHVkZSwgXCJsb25naXR1ZGVcIiwgaSkpO1xyXG5cclxuICAgICAgICAgIGVyck1zZ3MgPSBlcnJNc2dzLmZpbHRlcigoeCkgPT4geCAhPSBudWxsKTtcclxuICAgICAgICAgIGlmIChlcnJNc2dzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgbGV0IGVycm9ycyA9IGVyck1zZ3Muam9pbihcIjxicj5cIik7XHJcbiAgICAgICAgICAgIFN3YWwuZmlyZSh7XHJcbiAgICAgICAgICAgICAgaWNvbjogXCJlcnJvclwiLFxyXG4gICAgICAgICAgICAgIGh0bWw6IGVycm9ycyxcclxuICAgICAgICAgICAgICBjdXN0b21DbGFzczoge1xyXG4gICAgICAgICAgICAgICAgaHRtbENvbnRhaW5lcjogXCJlcnJvci1odG1sY29udGFpbmVyLWNsYXNzXCIsXHJcbiAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICBoZWlnaHRBdXRvOiBmYWxzZSxcclxuICAgICAgICAgICAgICBzaG93Q2FuY2VsQnV0dG9uOiBmYWxzZSxcclxuICAgICAgICAgICAgICBzaG93Q29uZmlybUJ1dHRvbjogdHJ1ZSxcclxuICAgICAgICAgICAgICBjb25maXJtQnV0dG9uQ29sb3I6IFwiIzAwOUVGN1wiLFxyXG4gICAgICAgICAgICAgIGNvbmZpcm1CdXR0b25UZXh0OiBcIk9LXCIsXHJcbiAgICAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4ge30pO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgY29uc3QgcHJvbWlzZSA9IHRoaXMuc3RvcmVTZXJ2aWNlXHJcbiAgICAgICAgICAgIC5nZXRBZGRyZXNzKE51bWJlcihkYXRhW2ldLkxhdGl0dWRlKSwgTnVtYmVyKGRhdGFbaV0uTG9uZ2l0dWRlKSlcclxuICAgICAgICAgICAgLnRoZW4oKHBsYWNlRGF0YTogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgbGV0IHN0b3JlUHJvZmlsZTogYW55ID0ge1xyXG4gICAgICAgICAgICAgICAgYWRkcmVzczogXCJcIixcclxuICAgICAgICAgICAgICAgIGNvdW50cnk6IFwiXCIsXHJcbiAgICAgICAgICAgICAgICBzdGF0ZTogXCJcIixcclxuICAgICAgICAgICAgICAgIGNpdHk6IFwiXCIsXHJcbiAgICAgICAgICAgICAgICBwaW5jb2RlOiBcIlwiLFxyXG4gICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgZm9yIChjb25zdCBjb21wb25lbnQgb2YgcGxhY2VEYXRhLmFkZHJlc3NfY29tcG9uZW50cykge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgdHlwZXMgPSBjb21wb25lbnQudHlwZXM7XHJcbiAgICAgICAgICAgICAgICBpZiAodHlwZXMuaW5jbHVkZXMoXCJsb2NhbGl0eVwiKSkge1xyXG4gICAgICAgICAgICAgICAgICBzdG9yZVByb2ZpbGUuY2l0eSA9IGNvbXBvbmVudC5sb25nX25hbWU7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHR5cGVzLmluY2x1ZGVzKFwiYWRtaW5pc3RyYXRpdmVfYXJlYV9sZXZlbF8xXCIpKSB7XHJcbiAgICAgICAgICAgICAgICAgIHN0b3JlUHJvZmlsZS5zdGF0ZSA9IGNvbXBvbmVudC5sb25nX25hbWU7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHR5cGVzLmluY2x1ZGVzKFwiY291bnRyeVwiKSkge1xyXG4gICAgICAgICAgICAgICAgICBzdG9yZVByb2ZpbGUuY291bnRyeSA9IGNvbXBvbmVudC5sb25nX25hbWU7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHR5cGVzLmluY2x1ZGVzKFwicG9zdGFsX2NvZGVcIikpIHtcclxuICAgICAgICAgICAgICAgICAgc3RvcmVQcm9maWxlLnBpbmNvZGUgPSBjb21wb25lbnQubG9uZ19uYW1lO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChcclxuICAgICAgICAgICAgICAgICAgdHlwZXMuaW5jbHVkZXMoXCJwcmVtaXNlXCIpIHx8XHJcbiAgICAgICAgICAgICAgICAgIHR5cGVzLmluY2x1ZGVzKFwic3VibG9jYWxpdHlfbGV2ZWxfMlwiKSB8fFxyXG4gICAgICAgICAgICAgICAgICB0eXBlcy5pbmNsdWRlcyhcInN1YmxvY2FsaXR5X2xldmVsXzFcIilcclxuICAgICAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgICBpZiAoY29tcG9uZW50LmxvbmdfbmFtZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHN0b3JlUHJvZmlsZS5hZGRyZXNzICs9IGNvbXBvbmVudC5sb25nX25hbWUgKyBcIixcIjtcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBpZiAoc3RvcmVQcm9maWxlLmFkZHJlc3MpIHtcclxuICAgICAgICAgICAgICAgIHN0b3JlUHJvZmlsZS5hZGRyZXNzID0gc3RvcmVQcm9maWxlLmFkZHJlc3Muc2xpY2UoMCwgLTEpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBkYXRhW2ldW1wic3RvcmVQcm9maWxlXCJdID0gc3RvcmVQcm9maWxlO1xyXG4gICAgICAgICAgICAgIHByb2Nlc3NlZEFycmF5LnB1c2goe1xyXG4gICAgICAgICAgICAgICAgc3RvcmVOYW1lOiBkYXRhW2ldLlN0b3JlTmFtZSxcclxuICAgICAgICAgICAgICAgIHN0b3JlVHlwZTogeyB0eXBlOiBkYXRhW2ldLlN0b3JlVHlwZSB9LFxyXG4gICAgICAgICAgICAgICAgZWRnZTogeyBjYW1EZXRhaWxzOiB7IGNhbWVyYXM6IGRhdGFbaV0uQ2FtZXJhQ291bnQgfSB9LFxyXG4gICAgICAgICAgICAgICAgc3BvY0RldGFpbHM6IHtcclxuICAgICAgICAgICAgICAgICAgbmFtZTogZGF0YVtpXS5TcG9jTmFtZSxcclxuICAgICAgICAgICAgICAgICAgZW1haWw6IGRhdGFbaV0uU3BvY0VtYWlsLFxyXG4gICAgICAgICAgICAgICAgICBjb250YWN0OiBkYXRhW2ldLlNwb2NDb250YWN0LnRvU3RyaW5nKCksXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgc3RvcmVQcm9maWxlOiB7XHJcbiAgICAgICAgICAgICAgICAgIC4uLmRhdGFbaV0uc3RvcmVQcm9maWxlLFxyXG4gICAgICAgICAgICAgICAgICAuLi57IHRpbWVab25lOiBkYXRhW2ldLlRpbWVab25lIH0sXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgYnVzaW5lc3NUeXBlOiBkYXRhW2ldLkJ1c2luZXNzVHlwZSxcclxuICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgLmNhdGNoKChlcnJvcikgPT4ge1xyXG4gICAgICAgICAgICAgIFN3YWwuZmlyZSh7XHJcbiAgICAgICAgICAgICAgICBpY29uOiBcImVycm9yXCIsXHJcbiAgICAgICAgICAgICAgICB0ZXh0OiBgUGxlYXNlIFVwbG9hZCB0aGUgRmlsZSB3aXRoIFZhbGlkIGxhdGl0dWRlIGFuZCBsb25naXR1ZGUgaW4gcm93ICR7XHJcbiAgICAgICAgICAgICAgICAgIGkgKyAxXHJcbiAgICAgICAgICAgICAgICB9YCxcclxuICAgICAgICAgICAgICAgIHNob3dDYW5jZWxCdXR0b246IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgc2hvd0NvbmZpcm1CdXR0b246IHRydWUsXHJcbiAgICAgICAgICAgICAgICBjb25maXJtQnV0dG9uQ29sb3I6IFwiIzAwOUVGN1wiLFxyXG4gICAgICAgICAgICAgICAgaGVpZ2h0QXV0bzogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICBjb25maXJtQnV0dG9uVGV4dDogXCJPS1wiLFxyXG4gICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIHByb21pc2VzLnB1c2gocHJvbWlzZSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBQcm9taXNlLmFsbChwcm9taXNlcylcclxuICAgICAgICAgIC50aGVuKCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5zdG9yZVNlcnZpY2VcclxuICAgICAgICAgICAgICAuc3RvcmVCdWxrVXBsb2FkKHsgc3RvcmVzOiBwcm9jZXNzZWRBcnJheSwgY2xpZW50SWQ6IHRoaXMuJGhlYWRlckZpbHRlcnM/LmNsaWVudCB9KVxyXG4gICAgICAgICAgICAgIC5zdWJzY3JpYmUoXHJcbiAgICAgICAgICAgICAgICAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgaWYgKHJlcy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgICAgICAgICAgICAgIFN3YWwuZmlyZSh7XHJcbiAgICAgICAgICAgICAgICAgICAgICBpY29uOiBcInN1Y2Nlc3NcIixcclxuICAgICAgICAgICAgICAgICAgICAgIGhlaWdodEF1dG86IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgaHRtbDogYDxoMz5TdG9yZXMgaGF2ZSBiZWVuIHVwbG9hZGVkIFN1Y2Nlc3NmdWxseSE8L2gzPmAsXHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAoZXJyb3I6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICBpZiAoZXJyb3IuY29kZSA9PSA0MDApIHtcclxuICAgICAgICAgICAgICAgICAgICBTd2FsLmZpcmUoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgaWNvbjogXCJlcnJvclwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgdGV4dDogZXJyb3IsXHJcbiAgICAgICAgICAgICAgICAgICAgICBoZWlnaHRBdXRvOiBmYWxzZSxcclxuICAgICAgICAgICAgICAgICAgICAgIHNob3dDb25maXJtQnV0dG9uOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgY29uZmlybUJ1dHRvblRleHQ6IFwiT0tcIixcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBTd2FsLmZpcmUoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgaWNvbjogXCJlcnJvclwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgdGV4dDogXCJVbmFibGUgdG8gY3JlYXRlIHN0b3JlcyFcIixcclxuICAgICAgICAgICAgICAgICAgICAgIGhlaWdodEF1dG86IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgc2hvd0NvbmZpcm1CdXR0b246IHRydWUsXHJcbiAgICAgICAgICAgICAgICAgICAgICBjb25maXJtQnV0dG9uVGV4dDogXCJPS1wiLFxyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgICAuY2F0Y2goKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICAgIFN3YWwuZmlyZSh7XHJcbiAgICAgICAgICAgICAgaWNvbjogXCJlcnJvclwiLFxyXG4gICAgICAgICAgICAgIHRleHQ6IFwiVW5hYmxlIHRvIGNyZWF0ZSBzdG9yZXMhXCIsXHJcbiAgICAgICAgICAgICAgaGVpZ2h0QXV0bzogZmFsc2UsXHJcbiAgICAgICAgICAgICAgc2hvd0NvbmZpcm1CdXR0b246IHRydWUsXHJcbiAgICAgICAgICAgICAgY29uZmlybUJ1dHRvblRleHQ6IFwiT0tcIixcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgfTtcclxuICAgICAgJChcIiNrdF9jcmVhdGVfYWNjb3VudF9mb3JtX2FjY291bnRfdHlwZV9wZXJzb25hbFwiKS52YWwoXCJcIik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB2YWxpZGF0ZUZpZWxkKFxyXG4gICAgdmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCB8IG51bGwgfCBudW1iZXIsXHJcbiAgICBmaWVsZE5hbWU6IHN0cmluZyxcclxuICAgIHJvdzogbnVtYmVyLFxyXG4gICAgcmVnZXg/OiBSZWdFeHBcclxuICApOiBzdHJpbmcgfCBudWxsIHtcclxuICAgIGlmICh0eXBlb2YgdmFsdWUgIT09IFwic3RyaW5nXCIgJiYgdHlwZW9mIHZhbHVlICE9PSBcIm51bWJlclwiKSB7XHJcbiAgICAgIHJldHVybiBgSW52YWxpZCB2YWx1ZSBmb3IgJHtmaWVsZE5hbWUudG9Mb3dlckNhc2UoKX0gaW4gcm93ICR7cm93ICsgMX1gO1xyXG4gICAgfVxyXG4gICAgY29uc3QgZGVmYXVsdFZhbHVlID0gYHBsZWFzZSBlbnRlciB0aGUgJHtmaWVsZE5hbWVcclxuICAgICAgLnRvTG93ZXJDYXNlKClcclxuICAgICAgLnJlcGxhY2UoL1xcYlxcdy9nLCAobCkgPT4gbC50b1VwcGVyQ2FzZSgpKX1gO1xyXG4gICAgaWYgKCF2YWx1ZSkge1xyXG4gICAgICByZXR1cm4gYFBsZWFzZSBlbnRlciAke2ZpZWxkTmFtZS50b0xvd2VyQ2FzZSgpfSBpbiByb3cgJHtyb3cgKyAxfWA7XHJcbiAgICB9XHJcbiAgICBpZiAodHlwZW9mIHZhbHVlID09IFwic3RyaW5nXCIpIHtcclxuICAgICAgaWYgKHZhbHVlLnRyaW0oKSA9PT0gZGVmYXVsdFZhbHVlLnRyaW0oKSkge1xyXG4gICAgICAgIHJldHVybiBgSW52YWxpZCB2YWx1ZSBmb3IgJHtmaWVsZE5hbWUudG9Mb3dlckNhc2UoKX0gaW4gcm93ICR7cm93ICsgMX1gO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChyZWdleCAmJiAhcmVnZXgudGVzdCh2YWx1ZS50cmltKCkpKSB7XHJcbiAgICAgICAgcmV0dXJuIGBQbGVhc2UgZW50ZXIgdmFsaWQgJHtmaWVsZE5hbWUudG9Mb3dlckNhc2UoKX0gaW4gcm93ICR7XHJcbiAgICAgICAgICByb3cgKyAxXHJcbiAgICAgICAgfWA7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiY2FyZFwiPlxyXG4gIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgZC1mbGV4IGZsZXgtY2VudGVyIGZsZXgtY29sdW1uIHAtOVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cIm1iLTVcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInN5bWJvbCBzeW1ib2wtNzVweCBzeW1ib2wtY2lyY2xlXCI+XHJcbiAgICAgICAgPGltZyBhbHQ9XCJQaWNcIiBzcmM9XCIuL2Fzc2V0cy90YW5nby9JY29ucy9hZGQtc3RvcmUtaWNvbi5zdmdcIj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxhIGNsYXNzPVwiZnMtNCB0ZXh0LWdyYXktODAwIHRleHQtaG92ZXItcHJpbWFyeSBmdy1ib2xkZXIgbWItMCB0aXRsZSBjdXJzb3ItcG9pbnRlclwiPiBBZGQgc3RvcmVzIDwvYT5cclxuICAgIDxkaXYgY2xhc3M9XCJmdy1ib2xkIHRleHQtZ3JheS01MDAgbXktNlwiPlxyXG4gICAgICA8dWwgY2xhc3M9XCJ0ZXh0LWdyYXktNDAwIGZ3LWJvbGQgZnMtNlwiPlxyXG4gICAgICAgIDxsaT5Vc2UgdGhlIHRlbXBsYXRlIHRvIHVwbG9hZCBtdWx0aXBsZSBzdG9yZXMgYXQgb25jZS48L2xpPlxyXG4gICAgICAgIDxsaT5Eb3dubG9hZCB0aGUgdGVtcGxhdGUgaGVyZSAtXHJcbiAgICAgICAgICA8YSBocmVmPVwiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2Fzc2V0cy9maWxlcy9zdG9yZXNVcGxvYWRUZW1wbGF0ZS54bHN4XCIgZG93bmxvYWQ+XHJcbiAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICBkPVwiTTE3LjUgMTIuNVYxNS44MzMzQzE3LjUgMTYuMjc1NCAxNy4zMjQ0IDE2LjY5OTMgMTcuMDExOCAxNy4wMTE4QzE2LjY5OTMgMTcuMzI0NCAxNi4yNzU0IDE3LjUgMTUuODMzMyAxNy41SDQuMTY2NjdDMy43MjQ2NCAxNy41IDMuMzAwNzIgMTcuMzI0NCAyLjk4ODE2IDE3LjAxMThDMi42NzU1OSAxNi42OTkzIDIuNSAxNi4yNzU0IDIuNSAxNS44MzMzVjEyLjVNNS44MzMzMyA4LjMzMzMzTDEwIDEyLjVNMTAgMTIuNUwxNC4xNjY3IDguMzMzMzNNMTAgMTIuNVYyLjVcIlxyXG4gICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzAwOUJGM1wiIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZW1wbGF0ZSBtcy0yXCI+RG93bmxvYWQgVGVtcGxhdGU8L3NwYW4+XHJcbiAgICAgICAgICA8L2E+XHJcbiAgICAgICAgPC9saT5cclxuICAgICAgICA8bGk+QWRkIHlvdXIgZGF0YSB0byB0aGUgVGVtcGxhdGUgRmlsZTwvbGk+XHJcbiAgICAgICAgPGxpPlVwbG9hZCBpdCBiZWxvdyBmb3IgcHJvY2Vzc2luZzwvbGk+XHJcbiAgICAgIDwvdWw+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1jZW50ZXIgZmxleC13cmFwIG1iLTVcIj5cclxuICAgICAgPGlucHV0IG5hbWU9XCJhY2NvdW50VHlwZVwiIHR5cGU9XCJyYWRpb1wiIGlkPVwia3RfY3JlYXRlX2FjY291bnRfZm9ybV9hY2NvdW50X3R5cGVfcGVyc29uYWxcIiB2YWx1ZT1cInBlcnNvbmFsXCJcclxuICAgICAgICBjbGFzcz1cImJ0bi1jaGVja1wiIG5nLXJlZmxlY3QtbmFtZT1cImFjY291bnRUeXBlXCIgbmctcmVmbGVjdC1mb3JtLWNvbnRyb2wtbmFtZT1cImFjY291bnRUeXBlXCJcclxuICAgICAgICAoY2hhbmdlKT1cIm9uVXBsb2FkKCRldmVudClcIlxyXG4gICAgICAgIG5nLXJlZmxlY3QtdmFsdWU9XCJwZXJzb25hbFwiIHR5cGU9XCJmaWxlXCIgI2lucHV0RmlsZSAvPlxyXG4gICAgICA8bGFiZWwgZm9yPVwia3RfY3JlYXRlX2FjY291bnRfZm9ybV9hY2NvdW50X3R5cGVfcGVyc29uYWxcIlxyXG4gICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lIGJ0bi1wcmltYXJ5IGJnLXByaW1hcnkgYnRuLW91dGxpbmUtZGVmYXVsdCByb3VuZGVkLTMgdy01MCBwLTQgbXQtNVwiPjxzcGFuXHJcbiAgICAgICAgICBjbGFzcz1cImZ3LWJvbGQgZnMtNFwiPlxyXG4gICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMVwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMSAyMFwiXHJcbiAgICAgICAgICAgIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgZD1cIk0xOCAxMi41VjE1LjgzMzNDMTggMTYuMjc1NCAxNy44MjQ0IDE2LjY5OTMgMTcuNTExOCAxNy4wMTE4QzE3LjE5OTMgMTcuMzI0NCAxNi43NzU0IDE3LjUgMTYuMzMzMyAxNy41SDQuNjY2NjdDNC4yMjQ2NCAxNy41IDMuODAwNzIgMTcuMzI0NCAzLjQ4ODE2IDE3LjAxMThDMy4xNzU1OSAxNi42OTkzIDMgMTYuMjc1NCAzIDE1LjgzMzNWMTIuNU0xNC42NjY3IDYuNjY2NjdMMTAuNSAyLjVNMTAuNSAyLjVMNi4zMzMzMyA2LjY2NjY3TTEwLjUgMi41VjEyLjVcIlxyXG4gICAgICAgICAgICAgIHN0cm9rZT1cIndoaXRlXCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICA8L3N2Zz4gXHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtd2hpdGUgbXgtMlwiPkFkZCBNdWx0aXBsZSBTdG9yZXM8L3NwYW4+PC9zcGFuPlxyXG4gICAgICA8L2xhYmVsPlxyXG4gICAgICA8cCBjbGFzcz1cInRleHQtZ3JheS00MDAgZnctYm9sZCBteS0zXCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJsaW5lLWJnIFwiPjxzdmcgd2lkdGg9XCIyMjRcIiBoZWlnaHQ9XCIyXCIgdmlld0JveD1cIjAgMCAxMjQgMlwiIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICA8cmVjdCB5PVwiMC41XCIgd2lkdGg9XCIxMjMuMzMzXCIgaGVpZ2h0PVwiMVwiIGZpbGw9XCIjRUFFQ0YwXCIgLz5cclxuICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgIDwvc3Bhbj48c3BhbiBjbGFzcz1cIm14LTJcIj5PciA8L3NwYW4+IDxzcGFuIGNsYXNzPVwibGluZS1iZyBcIj48c3ZnIHdpZHRoPVwiMjI0XCIgaGVpZ2h0PVwiMlwiIHZpZXdCb3g9XCIwIDAgMTI0IDJcIlxyXG4gICAgICAgICAgICBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgICAgPHJlY3QgeT1cIjAuNVwiIHdpZHRoPVwiMTIzLjMzM1wiIGhlaWdodD1cIjFcIiBmaWxsPVwiI0VBRUNGMFwiIC8+XHJcbiAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgIDwvcD5cclxuICAgICAgPGlucHV0IHR5cGU9XCJyYWRpb1wiIGlkPVwia3RfYWNjb3VudF90ZWFtX3NpemVfc2VsZWN0XzFcIiB2YWx1ZT1cIjEtMVwiIHJvdXRlckxpbms9XCIvbWFuYWdlL3N0b3Jlcy9hZGQtc2luZ2xlLXN0b3JlXCJcclxuICAgICAgICBjbGFzcz1cImJ0bi1jaGVjayBuZy11bnRvdWNoZWQgbmctcHJpc3RpbmUgbmctdmFsaWRcIiAvPlxyXG4gICAgICA8bGFiZWwgZm9yPVwia3RfYWNjb3VudF90ZWFtX3NpemVfc2VsZWN0XzFcIlxyXG4gICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lIGJ0bi1vdXRsaW5lLWRlZmF1bHQgcm91bmRlZC0zIHctNTAgcC00IG10LTNcIj5cclxuICAgICAgICA8c3ZnIHdpZHRoPVwiMTdcIiBoZWlnaHQ9XCIxNlwiIHZpZXdCb3g9XCIwIDAgMTcgMTZcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgIDxwYXRoIGQ9XCJNMS4xODAxNSAzLjgwMzc4TDEuMTI2OSAzLjg4Njk1QzAuNTY4ODYzIDQuODc0IDEuMTY0NjkgNi4xMjE0MyAyLjIzNjMgNi4yNjQ1MkMyLjMzMzM5IDYuMjc2MzkgMi40MjM3MyA2LjI4MjY3IDIuNTEyIDYuMjgyNjdDMy4wOTAxNSA2LjI4MjY3IDMuNjAxMzIgNi4wMzQ2NSAzLjk1NzU5IDUuNjQ3OTJMNC41MTA5MyA1LjA0NzNMNS4wNjIzOCA1LjY0OTY1QzUuNDE0MzIgNi4wMzQwNyA1LjkyNDMzIDYuMjgyNjcgNi41MDYzOSA2LjI4MjY3QzcuMDg1ODMgNi4yODI2NyA3LjU5ODc3IDYuMDMzNzIgNy45NTAzOSA1LjY0OTY1TDguNTAzNTggNS4wNDU0MUw5LjA1Njc2IDUuNjQ5NjVDOS40MDgzOSA2LjAzMzcyIDkuOTIxMzMgNi4yODI2NyAxMC41MDA4IDYuMjgyNjdDMTEuMDgwMiA2LjI4MjY3IDExLjU5MzIgNi4wMzM3MiAxMS45NDQ4IDUuNjQ5NjVMMTIuNDk4IDUuMDQ1NDFMMTMuMDUxMSA1LjY0OTY1QzEzLjQwMjggNi4wMzM3MiAxMy45MTU3IDYuMjgyNjcgMTQuNDk1MiA2LjI4MjY3QzE0LjU4MDUgNi4yODI2NyAxNC42NzM2IDYuMjc2MzggMTQuNzcgNi4yNjQ2MkMxNS44NjUyIDYuMTE1MyAxNi40NjMgNC44MDEwMyAxNS44MjQzIDMuODA0MjhDMTUuODI0MiAzLjgwNDIzIDE1LjgyNDIgMy44MDQxNyAxNS44MjQyIDMuODA0MTFMMTQuMDY2IDEuMDYyN0wxNC4wNjYgMS4wNjI3TDE0LjA2NTEgMS4wNjEyM0MxNC4wNDk5IDEuMDM3NCAxNC4wMTI0IDEuMDExODQgMTMuOTY1MiAxLjAxMTg0SDMuMDM1ODFDMi45ODg2NiAxLjAxMTg0IDIuOTUxMTcgMS4wMzc0IDIuOTM1OTcgMS4wNjEyNEwyLjkzNTM1IDEuMDYyMkwxLjE4MDE1IDMuODAzNzhaTTE0LjE1MTYgOC43MzcwNlYxMS44NjlWMTIuNjE5SDEzLjQwMTZIMy41OTk0M0gyLjg0OTQzVjExLjg2OVY4LjczNzUzQzIuNzM5MiA4Ljc0NTczIDIuNjI3NjggOC43NDk5NCAyLjUxNTA3IDguNzQ5OTRDMi40NzI3NiA4Ljc0OTk0IDIuNDMwNzQgOC43NDkzMSAyLjM4OSA4Ljc0ODA5VjExLjg2OVYxMy44MDM1QzIuMzg5IDE0LjQ0NjkgMi45MjI5IDE0Ljk4OCAzLjU5OTQzIDE0Ljk4OEgxMy40MDE2QzE0LjA3ODEgMTQuOTg4IDE0LjYxMiAxNC40NDY5IDE0LjYxMiAxMy44MDM1VjExLjg2OVY4Ljc0ODI3QzE0LjU3MjIgOC43NDkzNyAxNC41MzIyIDguNzQ5OTQgMTQuNDkyMSA4Ljc0OTk0QzE0LjM3NzcgOC43NDk5NCAxNC4yNjQxIDguNzQ1NTkgMTQuMTUxNiA4LjczNzA2WlwiIHN0cm9rZT1cIiMzNDQwNTRcIiBzdHJva2Utd2lkdGg9XCIxLjVcIi8+XHJcbiAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cImZ3LWJvbGQgZnMtNCBteC0yXCI+XHJcbiAgICAgICAgICAgIEFkZCBTaW5nbGVcclxuICAgICAgICAgIFN0b3JlPC9zcGFuPjwvbGFiZWw+XHJcbiAgICA8L2Rpdj5cclxuICBcclxuICA8L2Rpdj5cclxuIl19