@eui/showcase 15.0.0-rc.3 → 15.0.0-rc.5

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.
@@ -38,6 +38,7 @@ export class DocPageComponent {
38
38
  setTimeout(() => {
39
39
  this.asService.isBlockDocumentActive = true;
40
40
  });
41
+ this.appMetadata = this.asService.state.appMetadata;
41
42
  if (this.id && !this.label) {
42
43
  this.label = this.id;
43
44
  }
@@ -63,7 +64,6 @@ export class DocPageComponent {
63
64
  // construct cmp module import string
64
65
  // eslint-disable-next-line
65
66
  this.cmpModuleImport = `import { ${this.cmp.metadata?.moduleName} } from '@eui/${this.cmp.metadata?.subEntryName}';`;
66
- console.log(this.cmpModuleImport);
67
67
  }
68
68
  }
69
69
  catch (e) {
@@ -79,15 +79,10 @@ export class DocPageComponent {
79
79
  console.log(`Fetching API url from : ${this.apiUrl}`);
80
80
  setTimeout(() => {
81
81
  this.apiUrlSafe = this.sanitizer.bypassSecurityTrustResourceUrl(this.apiUrl);
82
- // setTimeout(() => {
83
- // const iFrame: HTMLIFrameElement = <HTMLIFrameElement>document.getElementById('iframe_api');
84
- // console.log(iFrame);
85
- // const iFrameContent = iFrame.contentWindow;
86
- // console.log(iFrameContent);
87
- // });
88
82
  });
89
83
  }
90
84
  catch (e) {
85
+ console.log(e);
91
86
  }
92
87
  setTimeout(() => {
93
88
  let tab = this.TABS_DEF.filter(t => t.id === this.fragmentId)[0];
@@ -118,7 +113,6 @@ export class DocPageComponent {
118
113
  this.isNavClicked = false;
119
114
  }
120
115
  _scrollToFragment(fragmentId, tabIndex, init, changeTab) {
121
- // console.log(`Navigating to fragment: ${fragmentId} - tabIndex: ${tabIndex}`);
122
116
  if (init) {
123
117
  if (this.tabsContent) {
124
118
  this.tabsContent.changeTab(tabIndex);
@@ -183,20 +177,12 @@ export class DocPageComponent {
183
177
  const name = pathNameArray[pathNameArray.length - 1];
184
178
  let category = pathNameArray[pathNameArray.length - 2];
185
179
  let protocolGen = protocol, hostGen = host;
186
- let docTypeRoot;
187
180
  if (host.indexOf('localhost') > -1) {
188
181
  protocolGen = 'https:';
189
182
  hostGen = 'euidev.ecdevops.eu';
190
183
  }
191
- if (name.indexOf('ux-') > -1) {
192
- docTypeRoot = 'eui-docs-eui-13.x';
193
- }
194
- else if (name.indexOf('eui-') > -1) {
195
- docTypeRoot = 'eui-docs-eui-13.x';
196
- }
197
- else if (name.indexOf('ecl-') > -1) {
198
- docTypeRoot = 'eui-docs-ecl-13.x';
199
- }
184
+ const appVersionNumber = this.appMetadata.appVersion.split('.')[0];
185
+ const docTypeRoot = `eui-docs-eui-${appVersionNumber}.x`;
200
186
  if (category === 'layout-components' || category === 'externals') {
201
187
  category = 'components';
202
188
  }
@@ -206,6 +192,7 @@ export class DocPageComponent {
206
192
  }
207
193
  const formattedName = this._camelCaseString(name + '-' + category.slice(0, -1), '-', true);
208
194
  const docPath = `${protocolGen}//${hostGen}/${docTypeRoot}/${category}/${formattedName}.html`;
195
+ console.log(`fetching API from: ${docPath}`);
209
196
  return docPath;
210
197
  }
211
198
  _camelCaseString(string, separator, first) {
@@ -348,4 +335,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0-next.4",
348
335
  type: Directive,
349
336
  args: [{ selector: 'docPageTheming' }]
350
337
  }] });
351
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jLXBhZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2RvYy1wYWdlL2RvYy1wYWdlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9kb2MtcGFnZS9kb2MtcGFnZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULEtBQUssRUFDTCxTQUFTLEVBRVQsZUFBZSxFQUNmLFVBQVUsRUFHVixpQkFBaUIsRUFDakIsU0FBUyxHQUVaLE1BQU0sZUFBZSxDQUFDO0FBSXZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDOzs7Ozs7Ozs7Ozs7QUFVM0UsTUFBTSxPQUFPLGdCQUFnQjtJQTBEekIsWUFDWSxNQUFjLEVBQ2QsS0FBcUIsRUFDckIsU0FBNEIsRUFDN0IsU0FBdUIsRUFDdEIsUUFBa0I7UUFKbEIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQ3JCLGNBQVMsR0FBVCxTQUFTLENBQW1CO1FBQzdCLGNBQVMsR0FBVCxTQUFTLENBQWM7UUFDdEIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQTNEckIsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUNuQixpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUNyQixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBRWpCLGFBQVEsR0FBVyxJQUFJLENBQUM7UUFDeEIsd0JBQW1CLEdBQVksSUFBSSxDQUFDO1FBWTdDLGNBQVMsR0FBRyxJQUFJLENBQUM7UUFDakIsaUJBQVksR0FBRyxJQUFJLENBQUM7UUE0QlosYUFBUSxHQUFHO1lBQ2YsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxLQUFL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QyxrQ0FBa0M7a0JBRDlDLFNBQVM7bUJBQUMsRUFBRSxRQUFRLEVBQUUsb0JBQW9CLEVBQUU7OEJBRWhDLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLOztBQUdWLE1BQU0sT0FBTyw4QkFBOEI7O3FKQUE5Qiw4QkFBOEI7eUlBQTlCLDhCQUE4QjtrR0FBOUIsOEJBQThCO2tCQUQxQyxTQUFTO21CQUFDLEVBQUUsUUFBUSxFQUFFLGdCQUFnQixFQUFFOztBQUd6QyxNQUFNLE9BQU8sK0JBQStCOztzSkFBL0IsK0JBQStCOzBJQUEvQiwrQkFBK0I7a0dBQS9CLCtCQUErQjtrQkFEM0MsU0FBUzttQkFBQyxFQUFFLFFBQVEsRUFBRSxpQkFBaUIsRUFBRTs7QUFHMUMsTUFBTSxPQUFPLG9DQUFvQzs7MkpBQXBDLG9DQUFvQzsrSUFBcEMsb0NBQW9DO2tHQUFwQyxvQ0FBb0M7a0JBRGhELFNBQVM7bUJBQUMsRUFBRSxRQUFRLEVBQUUsc0JBQXNCLEVBQUU7O0FBRy9DLE1BQU0sT0FBTywwQkFBMEI7O2lKQUExQiwwQkFBMEI7cUlBQTFCLDBCQUEwQjtrR0FBMUIsMEJBQTBCO2tCQUR0QyxTQUFTO21CQUFDLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRTs7QUFJckMsTUFBTSxPQUFPLDhCQUE4Qjs7cUpBQTlCLDhCQUE4Qjt5SUFBOUIsOEJBQThCO2tHQUE5Qiw4QkFBOEI7a0JBRDFDLFNBQVM7bUJBQUMsRUFBRSxRQUFRLEVBQUUsZ0JBQWdCLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBJbnB1dCxcbiAgICBEaXJlY3RpdmUsXG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDb250ZW50Q2hpbGRyZW4sXG4gICAgZm9yd2FyZFJlZixcbiAgICBPbkluaXQsXG4gICAgUXVlcnlMaXN0LFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxuICAgIFZpZXdDaGlsZCxcbiAgICBFbGVtZW50UmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IExvY2F0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFNhZmVSZXNvdXJjZVVybCwgRG9tU2FuaXRpemVyIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBSb3V0ZXIsIEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IERvY1NhbXBsZUNvbXBvbmVudCB9IGZyb20gJy4uL2RvYy1zYW1wbGUvZG9jLXNhbXBsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRG9jU2VjdGlvbkNvbXBvbmVudCB9IGZyb20gJy4uL2RvYy1zZWN0aW9uL2RvYy1zZWN0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBVeEFwcFNoZWxsU2VydmljZSB9IGZyb20gJ0BldWkvY29yZSc7XG5pbXBvcnQgeyBFdWlUYWJzQ29tcG9uZW50IH0gZnJvbSAnQGV1aS9jb21wb25lbnRzL2V1aS10YWJzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdldWktc2hvd2Nhc2UtZG9jLXBhZ2UnLFxuICAgIHRlbXBsYXRlVXJsOiAnZG9jLXBhZ2UuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2RvYy1wYWdlLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgRG9jUGFnZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XG4gICAgQElucHV0KCkgaWQ7XG4gICAgQElucHV0KCkgbGFiZWw7XG4gICAgQElucHV0KCkgc3ViTGFiZWw6IHN0cmluZztcbiAgICBASW5wdXQoKSBpc05vdFJlYWR5ID0gZmFsc2U7XG4gICAgQElucHV0KCkgaXNEZXByZWNhdGVkID0gZmFsc2U7XG4gICAgQElucHV0KCkgaXNMZWdhY3kgPSBmYWxzZTtcbiAgICBASW5wdXQoKSBjb2RlRm9sZGVyOiBzdHJpbmc7XG4gICAgQElucHV0KCkgc2hvd2Nhc2U6IHN0cmluZyA9ICd1eCc7XG4gICAgQElucHV0KCkgaXNOYXZpZ2F0aW9uVmlzaWJsZTogYm9vbGVhbiA9IHRydWU7XG5cbiAgICBzdGF0ZVR5cGVDbGFzcztcbiAgICBzdGF0ZUxhYmVsO1xuICAgIGNtcDtcbiAgICBmcmFnbWVudElkO1xuICAgIGNtcE1vZHVsZUltcG9ydDtcblxuICAgIGFwaVVybFNhZmU6IFNhZmVSZXNvdXJjZVVybDtcbiAgICBhcGlVcmw6IHN0cmluZztcbiAgICBpRnJhbWVDb250ZW50O1xuXG4gICAgaXNMb2FkaW5nID0gdHJ1ZTtcbiAgICBpc05hdkNsaWNrZWQgPSB0cnVlO1xuXG4gICAgQENvbnRlbnRDaGlsZHJlbihEb2NTYW1wbGVDb21wb25lbnQsIHsgZGVzY2VuZGFudHM6IHRydWUgfSkgc2FtcGxlczogUXVlcnlMaXN0PERvY1NhbXBsZUNvbXBvbmVudD47XG4gICAgQENvbnRlbnRDaGlsZHJlbihEb2NTZWN0aW9uQ29tcG9uZW50LCB7IGRlc2NlbmRhbnRzOiB0cnVlIH0pIHNlY3Rpb25zOiBRdWVyeUxpc3Q8RG9jU2VjdGlvbkNvbXBvbmVudD47XG5cbiAgICBAQ29udGVudENoaWxkcmVuKGZvcndhcmRSZWYoKCkgPT4gRG9jUGFnZU92ZXJ2aWV3Q29udGVudERpcmVjdGl2ZSkpXG4gICAgcGFnZU92ZXJ2aWV3Q29udGVudDogUXVlcnlMaXN0PERvY1BhZ2VPdmVydmlld0NvbnRlbnREaXJlY3RpdmU+O1xuXG4gICAgQENvbnRlbnRDaGlsZHJlbihmb3J3YXJkUmVmKCgpID0+IERvY1BhZ2VTYW1wbGVzQ29udGVudERpcmVjdGl2ZSkpXG4gICAgcGFnZVNhbXBsZXNDb250ZW50OiBRdWVyeUxpc3Q8RG9jUGFnZVNhbXBsZXNDb250ZW50RGlyZWN0aXZlPjtcblxuICAgIEBDb250ZW50Q2hpbGRyZW4oZm9yd2FyZFJlZigoKSA9PiBEb2NQYWdlU2VjdGlvbnNDb250ZW50RGlyZWN0aXZlKSlcbiAgICBwYWdlU2VjdGlvbnNDb250ZW50OiBRdWVyeUxpc3Q8RG9jUGFnZVNlY3Rpb25zQ29udGVudERpcmVjdGl2ZT47XG5cbiAgICBAQ29udGVudENoaWxkcmVuKGZvcndhcmRSZWYoKCkgPT4gRG9jUGFnZUludGVyYWN0aXZlQ29udGVudERpcmVjdGl2ZSkpXG4gICAgcGFnZUludGVyYWN0aXZlQ29udGVudDogUXVlcnlMaXN0PERvY1BhZ2VJbnRlcmFjdGl2ZUNvbnRlbnREaXJlY3RpdmU+O1xuXG4gICAgQENvbnRlbnRDaGlsZHJlbihmb3J3YXJkUmVmKCgpID0+IERvY1BhZ2VBY2Nlc3NpYmlsaXR5Q29udGVudERpcmVjdGl2ZSkpXG4gICAgcGFnZUFjY2Vzc2liaWxpdHlDb250ZW50OiBRdWVyeUxpc3Q8RG9jUGFnZUFjY2Vzc2liaWxpdHlDb250ZW50RGlyZWN0aXZlPjtcblxuICAgIEBDb250ZW50Q2hpbGRyZW4oZm9yd2FyZFJlZigoKSA9PiBEb2NQYWdlQXBpQ29udGVudERpcmVjdGl2ZSkpXG4gICAgcGFnZUFwaUNvbnRlbnQ6IFF1ZXJ5TGlzdDxEb2NQYWdlQXBpQ29udGVudERpcmVjdGl2ZT47XG5cbiAgICBAQ29udGVudENoaWxkcmVuKGZvcndhcmRSZWYoKCkgPT4gRG9jUGFnZVRoZW1pbmdDb250ZW50RGlyZWN0aXZlKSlcbiAgICBwYWdlVGhlbWluZ0NvbnRlbnQ6IFF1ZXJ5TGlzdDxEb2NQYWdlVGhlbWluZ0NvbnRlbnREaXJlY3RpdmU+O1xuXG4gICAgQFZpZXdDaGlsZCgndGFic0NvbnRlbnQnKSB0YWJzQ29udGVudDogRXVpVGFic0NvbXBvbmVudDtcblxuICAgIHByaXZhdGUgVEFCU19ERUYgPSBbXG4gICAgICAgIHsgaW5kZXg6IDAsIGlkOiAnYXBpJyB9LFxuICAgICAgICB7IGluZGV4OiAxLCBpZDogJ2ExMXknIH0sXG4gICAgICAgIHsgaW5kZXg6IDIsIGlkOiAnc2FtcGxlcycgfSxcbiAgICAgICAgeyBpbmRleDogMywgaWQ6ICd0aGVtaW5nJyB9LFxuICAgICAgICB7IGluZGV4OiA0LCBpZDogJ2FkdmFuY2VkJyB9LFxuICAgIF07XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICAgICAgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgICAgIHByaXZhdGUgYXNTZXJ2aWNlOiBVeEFwcFNoZWxsU2VydmljZSxcbiAgICAgICAgcHVibGljIHNhbml0aXplcjogRG9tU2FuaXRpemVyLFxuICAgICAgICBwcml2YXRlIGxvY2F0aW9uOiBMb2NhdGlvbixcbiAgICApIHtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmFzU2VydmljZS5pc0Jsb2NrRG9jdW1lbnRBY3RpdmUgPSB0cnVlO1xuICAgICAgICB9KTtcblxuICAgICAgICBpZiAodGhpcy5pZCAmJiAhdGhpcy5sYWJlbCkge1xuICAgICAgICAgICAgdGhpcy5sYWJlbCA9IHRoaXMuaWQ7XG4gICAgICAgIH1cblxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgdGhpcy5jbXAgPSB0aGlzLl9nZXRDb21wb25lbnRTdGF0dXModGhpcy5pZCk7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLmNtcCkge1xuICAgICAgICAgICAgICAgIHN3aXRjaCAodGhpcy5jbXAuc3RhdHVzKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAnc3VjY2Vzcyc6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdGVMYWJlbCA9ICdBQ1RJVkUnO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXRlVHlwZUNsYXNzID0gJ3N1Y2Nlc3MnO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgIGNhc2UgJ3dhcm5pbmcnOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXRlTGFiZWwgPSAnREVQUkVDQVRFRCc7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdGVUeXBlQ2xhc3MgPSAnd2FybmluZyc7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaXNEZXByZWNhdGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgICAgICBjYXNlICdkYW5nZXInOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXRlTGFiZWwgPSAnTEVHQUNZIC0gd2lsbCBiZSByZW1vdmVkIGluIG5leHQgdmVyc2lvbic7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdGVUeXBlQ2xhc3MgPSAnZGFuZ2VyJztcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pc0xlZ2FjeSA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC8vIGNvbnN0cnVjdCBjbXAgbW9kdWxlIGltcG9ydCBzdHJpbmdcbiAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgICAgICAgICAgICAgICB0aGlzLmNtcE1vZHVsZUltcG9ydCA9IGBpbXBvcnQgeyAke3RoaXMuY21wLm1ldGFkYXRhPy5tb2R1bGVOYW1lfSB9IGZyb20gJ0BldWkvJHt0aGlzLmNtcC5tZXRhZGF0YT8uc3ViRW50cnlOYW1lfSc7YDtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyh0aGlzLmNtcE1vZHVsZUltcG9ydCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdXYXJuaW5nLCBlcnJvcnMgZGV0ZWN0ZWQgd2hpbGUgZ2V0dGluZyBwYWdlIHN0YXRlJyk7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhlKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmZyYWdtZW50SWQgPSB0aGlzLnJvdXRlLnNuYXBzaG90LmZyYWdtZW50O1xuXG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgICAgICAvLyBnZXR0aW5nIEFQSSB1cmxcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHRoaXMuYXBpVXJsID0gdGhpcy5fZ2V0QXBpVXJsKCk7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhgRmV0Y2hpbmcgQVBJIHVybCBmcm9tIDogJHt0aGlzLmFwaVVybH1gKTtcblxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5hcGlVcmxTYWZlID0gdGhpcy5zYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdFJlc291cmNlVXJsKHRoaXMuYXBpVXJsKTtcblxuICAgICAgICAgICAgICAgIC8vIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIC8vICAgICBjb25zdCBpRnJhbWU6IEhUTUxJRnJhbWVFbGVtZW50ID0gPEhUTUxJRnJhbWVFbGVtZW50PmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpZnJhbWVfYXBpJyk7XG4gICAgICAgICAgICAgICAgLy8gICAgIGNvbnNvbGUubG9nKGlGcmFtZSk7XG4gICAgICAgICAgICAgICAgLy8gICAgIGNvbnN0IGlGcmFtZUNvbnRlbnQgPSBpRnJhbWUuY29udGVudFdpbmRvdztcbiAgICAgICAgICAgICAgICAvLyAgICAgY29uc29sZS5sb2coaUZyYW1lQ29udGVudCk7XG4gICAgICAgICAgICAgICAgLy8gfSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICB9XG5cbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICBsZXQgdGFiID0gdGhpcy5UQUJTX0RFRi5maWx0ZXIodCA9PiB0LmlkID09PSB0aGlzLmZyYWdtZW50SWQpWzBdO1xuICAgICAgICAgICAgbGV0IHRhYkluZGV4O1xuXG4gICAgICAgICAgICBpZiAoIXRhYikge1xuICAgICAgICAgICAgICAgIHRhYkluZGV4ID0gMjtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGFiSW5kZXggPSB0YWIuaW5kZXg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMuX3Njcm9sbFRvRnJhZ21lbnQodGhpcy5mcmFnbWVudElkLCB0YWJJbmRleCwgdHJ1ZSwgdHJ1ZSk7XG5cbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuYXNTZXJ2aWNlLmlzQmxvY2tEb2N1bWVudEFjdGl2ZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgb25OYXZDbGljayhmcmFnbWVudElkOiBzdHJpbmcsIHRhYkluZGV4OiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5mcmFnbWVudElkID0gZnJhZ21lbnRJZDtcbiAgICAgICAgdGhpcy5pc05hdkNsaWNrZWQgPSB0cnVlO1xuICAgICAgICB0aGlzLl9zY3JvbGxUb0ZyYWdtZW50KHRoaXMuZnJhZ21lbnRJZCwgdGFiSW5kZXgsIGZhbHNlLCB0cnVlKTtcbiAgICB9XG5cbiAgICBvblRhYlNlbGVjdGVkKGV2ZW50OiBhbnkpIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzTG9hZGluZyAmJiAhdGhpcy5pc05hdkNsaWNrZWQpIHtcbiAgICAgICAgICAgIGxldCB0YWJJZCA9IHRoaXMuVEFCU19ERUYuZmlsdGVyKHQgPT4gdC5pbmRleCA9PT0gZXZlbnQuaW5kZXgpWzBdLmlkO1xuICAgICAgICAgICAgdGhpcy5fc2Nyb2xsVG9GcmFnbWVudCh0YWJJZCwgZXZlbnQuaW5kZXgsIGZhbHNlLCBmYWxzZSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5pc05hdkNsaWNrZWQgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9zY3JvbGxUb0ZyYWdtZW50KGZyYWdtZW50SWQ6IHN0cmluZywgdGFiSW5kZXg6IG51bWJlciwgaW5pdDogYm9vbGVhbiwgY2hhbmdlVGFiOiBib29sZWFuKSB7XG4gICAgICAgIC8vIGNvbnNvbGUubG9nKGBOYXZpZ2F0aW5nIHRvIGZyYWdtZW50OiAke2ZyYWdtZW50SWR9IC0gdGFiSW5kZXg6ICR7dGFiSW5kZXh9YCk7XG5cbiAgICAgICAgaWYgKGluaXQpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLnRhYnNDb250ZW50KSB7XG4gICAgICAgICAgICAgICAgdGhpcy50YWJzQ29udGVudC5jaGFuZ2VUYWIodGFiSW5kZXgpO1xuXG4gICAgICAgICAgICAgICAgaWYgKGZyYWdtZW50SWQpIHtcbiAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBmZ20gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChmcmFnbWVudElkKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHlPZmZzZXQgPSAtODA7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZmdtKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeSA9IGZnbS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3AgKyB3aW5kb3cucGFnZVlPZmZzZXQgKyB5T2Zmc2V0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvdy5zY3JvbGxUbyh7dG9wOiB5fSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmIChjaGFuZ2VUYWIpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJvdXRlci5vblNhbWVVcmxOYXZpZ2F0aW9uID0gJ3JlbG9hZCc7XG4gICAgICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycuJ10sIHsgcmVsYXRpdmVUbzogdGhpcy5yb3V0ZSwgZnJhZ21lbnQ6IGZyYWdtZW50SWQgfSkudGhlbigoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnRhYnNDb250ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRhYnNDb250ZW50LmNoYW5nZVRhYih0YWJJbmRleCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgcm91dGVSb290ID0gdGhpcy5yb3V0ZXIudXJsLnNwbGl0KCcjJylbMF07XG4gICAgICAgICAgICAgICAgdGhpcy5sb2NhdGlvbi5nbyhgJHtyb3V0ZVJvb3R9IyR7ZnJhZ21lbnRJZH1gKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgX2dldENvbXBvbmVudFN0YXR1cyhpZCkge1xuXG4gICAgICAgIGNvbnN0IGZsYXR0ZW4gPSAobGlua3MpID0+IGxpbmtzID8gbGlua3MucmVkdWNlKChyZXN1bHQsIGl0ZW0pID0+IFtcbiAgICAgICAgICAgICAgICAuLi5yZXN1bHQsXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBpZDogaXRlbS5sYWJlbCxcbiAgICAgICAgICAgICAgICAgICAgYWx0ZXJuYXRlSWQ6IGl0ZW0ubmFtZSxcbiAgICAgICAgICAgICAgICAgICAgc3RhdHVzOiBpdGVtLm1hcmtlclR5cGVDbGFzcyxcbiAgICAgICAgICAgICAgICAgICAgY21wUmVwbGFjZW1lbnQ6IGl0ZW0uY21wUmVwbGFjZW1lbnQsXG4gICAgICAgICAgICAgICAgICAgIGNtcFJlcGxhY2VtZW50VXJsOiBpdGVtLmNtcFJlcGxhY2VtZW50VXJsLFxuICAgICAgICAgICAgICAgICAgICBjbXBSZXBsYWNlbWVudE5vdGU6IGl0ZW0uY21wUmVwbGFjZW1lbnROb3RlLFxuICAgICAgICAgICAgICAgICAgICBhbHRlcm5hdGVBcGlDYXRlZ29yeTogaXRlbS5hbHRlcm5hdGVBcGlDYXRlZ29yeSxcbiAgICAgICAgICAgICAgICAgICAgbWV0YWRhdGE6IGl0ZW0ubWV0YWRhdGEsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAuLi5mbGF0dGVuKGl0ZW0uY2hpbGRyZW4pXG4gICAgICAgICAgICBdLCBbXSkgOiBbXTtcblxuICAgICAgICBjb25zdCBmbGF0TGlua3MgPSBmbGF0dGVuKHRoaXMuYXNTZXJ2aWNlLnN0YXRlLnNpZGViYXJMaW5rcyk7XG4gICAgICAgIGNvbnN0IGlkQmFzZWRDbXAgPSBmbGF0TGlua3MuZmlsdGVyKChpdGVtKSA9PiBpdGVtLmlkID09PSBpZClbMF07XG4gICAgICAgIGlmIChpZEJhc2VkQ21wKSB7XG4gICAgICAgICAgICByZXR1cm4gaWRCYXNlZENtcDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGFsdGVybmF0ZUlkQmFzZWRDbXAgPSBmbGF0TGlua3MuZmlsdGVyKChpdGVtKSA9PiBpdGVtLmFsdGVybmF0ZUlkID09PSBpZClbMF07XG4gICAgICAgICAgICByZXR1cm4gYWx0ZXJuYXRlSWRCYXNlZENtcDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgX2dldEFwaVVybCgpIHtcbiAgICAgICAgY29uc3QgdXJsID0gd2luZG93LmxvY2F0aW9uO1xuICAgICAgICBjb25zdCBwcm90b2NvbCA9IHVybC5wcm90b2NvbDtcbiAgICAgICAgY29uc3QgaG9zdCA9IHVybC5ob3N0O1xuICAgICAgICBjb25zdCBwYXRoTmFtZSA9IHVybC5wYXRobmFtZTtcbiAgICAgICAgY29uc3QgcGF0aE5hbWVBcnJheSA9IHBhdGhOYW1lLnNwbGl0KCcvJyk7XG4gICAgICAgIGNvbnN0IG5hbWUgPSBwYXRoTmFtZUFycmF5W3BhdGhOYW1lQXJyYXkubGVuZ3RoIC0gMV07XG4gICAgICAgIGxldCBjYXRlZ29yeSA9IHBhdGhOYW1lQXJyYXlbcGF0aE5hbWVBcnJheS5sZW5ndGggLSAyXTtcblxuICAgICAgICBsZXQgcHJvdG9jb2xHZW4gPSBwcm90b2NvbCwgaG9zdEdlbiA9IGhvc3Q7XG4gICAgICAgIGxldCBkb2NUeXBlUm9vdDtcblxuICAgICAgICBpZiAoaG9zdC5pbmRleE9mKCdsb2NhbGhvc3QnKSA+IC0xKSB7XG4gICAgICAgICAgICBwcm90b2NvbEdlbiA9ICdodHRwczonO1xuICAgICAgICAgICAgaG9zdEdlbiA9ICdldWlkZXYuZWNkZXZvcHMuZXUnO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKG5hbWUuaW5kZXhPZigndXgtJykgPiAtMSkge1xuICAgICAgICAgICAgZG9jVHlwZVJvb3QgPSAnZXVpLWRvY3MtZXVpLTEzLngnO1xuICAgICAgICB9IGVsc2UgaWYgKG5hbWUuaW5kZXhPZignZXVpLScpID4gLTEpIHtcbiAgICAgICAgICAgIGRvY1R5cGVSb290ID0gJ2V1aS1kb2NzLWV1aS0xMy54JztcbiAgICAgICAgfSBlbHNlIGlmIChuYW1lLmluZGV4T2YoJ2VjbC0nKSA+IC0xKSB7XG4gICAgICAgICAgICBkb2NUeXBlUm9vdCA9ICdldWktZG9jcy1lY2wtMTMueCc7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoY2F0ZWdvcnkgPT09ICdsYXlvdXQtY29tcG9uZW50cycgfHwgY2F0ZWdvcnkgPT09ICdleHRlcm5hbHMnKSB7XG4gICAgICAgICAgICBjYXRlZ29yeSA9ICdjb21wb25lbnRzJztcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGNtcCA9IHRoaXMuX2dldENvbXBvbmVudFN0YXR1cyhuYW1lKTtcblxuICAgICAgICBpZiAoY21wLmFsdGVybmF0ZUFwaUNhdGVnb3J5KSB7XG4gICAgICAgICAgICBjYXRlZ29yeSA9IGNtcC5hbHRlcm5hdGVBcGlDYXRlZ29yeTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGZvcm1hdHRlZE5hbWUgPSB0aGlzLl9jYW1lbENhc2VTdHJpbmcobmFtZSArICctJyArIGNhdGVnb3J5LnNsaWNlKDAsIC0xKSwgJy0nLCB0cnVlKTtcbiAgICAgICAgY29uc3QgZG9jUGF0aCA9IGAke3Byb3RvY29sR2VufS8vJHtob3N0R2VufS8ke2RvY1R5cGVSb290fS8ke2NhdGVnb3J5fS8ke2Zvcm1hdHRlZE5hbWV9Lmh0bWxgO1xuXG4gICAgICAgIHJldHVybiBkb2NQYXRoO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2NhbWVsQ2FzZVN0cmluZyhzdHJpbmcsIHNlcGFyYXRvciwgZmlyc3QpIHtcbiAgICAgICAgY29uc3Qgc3RyaW5nQXJyYXkgPSBzdHJpbmcuc3BsaXQoc2VwYXJhdG9yKTtcbiAgICAgICAgbGV0IHJlc3VsdCA9ICcnO1xuICAgICAgICBsZXQgcztcblxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHN0cmluZ0FycmF5Lmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBzID0gc3RyaW5nQXJyYXlbaV07XG4gICAgICAgICAgICBpZiAoaSA9PT0gMCkge1xuICAgICAgICAgICAgICAgIGlmIChmaXJzdCkge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQgKz0gcy5zdWJzdHJpbmcoMCwgMSkudG9VcHBlckNhc2UoKSArIHMuc3Vic3RyKDEpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSBzO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmVzdWx0ICs9IHMuc3Vic3RyaW5nKDAsIDEpLnRvVXBwZXJDYXNlKCkgKyBzLnN1YnN0cigxKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG59XG5cbi8qIGVzbGludC1kaXNhYmxlIEBhbmd1bGFyLWVzbGludC9kaXJlY3RpdmUtc2VsZWN0b3IgKi9cbkBEaXJlY3RpdmUoeyBzZWxlY3RvcjogJ2RvY1BhZ2VPdmVydmlldycgfSlcbmV4cG9ydCBjbGFzcyBEb2NQYWdlT3ZlcnZpZXdDb250ZW50RGlyZWN0aXZlIHsgfVxuQERpcmVjdGl2ZSh7IHNlbGVjdG9yOiAnZG9jUGFnZUludGVyYWN0aXZlJyB9KVxuZXhwb3J0IGNsYXNzIERvY1BhZ2VJbnRlcmFjdGl2ZUNvbnRlbnREaXJlY3RpdmUge1xuICAgIEBJbnB1dCgpIHRpdGxlOiBzdHJpbmcgPSAnQURWQU5DRUQgRVhBTVBMRVMnO1xuICAgIEBJbnB1dCgpIHN1YlRpdGxlOiBzdHJpbmcgPSAnQWR2YW5jZWQgdXNlIGNhc2VzJztcbn1cbkBEaXJlY3RpdmUoeyBzZWxlY3RvcjogJ2RvY1BhZ2VTYW1wbGVzJyB9KVxuZXhwb3J0IGNsYXNzIERvY1BhZ2VTYW1wbGVzQ29udGVudERpcmVjdGl2ZSB7IH1cbkBEaXJlY3RpdmUoeyBzZWxlY3RvcjogJ2RvY1BhZ2VTZWN0aW9ucycgfSlcbmV4cG9ydCBjbGFzcyBEb2NQYWdlU2VjdGlvbnNDb250ZW50RGlyZWN0aXZlIHsgfVxuQERpcmVjdGl2ZSh7IHNlbGVjdG9yOiAnZG9jUGFnZUFjY2Vzc2liaWxpdHknIH0pXG5leHBvcnQgY2xhc3MgRG9jUGFnZUFjY2Vzc2liaWxpdHlDb250ZW50RGlyZWN0aXZlIHsgfVxuQERpcmVjdGl2ZSh7IHNlbGVjdG9yOiAnZG9jUGFnZUFwaScgfSlcbmV4cG9ydCBjbGFzcyBEb2NQYWdlQXBpQ29udGVudERpcmVjdGl2ZSB7IH1cblxuQERpcmVjdGl2ZSh7IHNlbGVjdG9yOiAnZG9jUGFnZVRoZW1pbmcnIH0pXG5leHBvcnQgY2xhc3MgRG9jUGFnZVRoZW1pbmdDb250ZW50RGlyZWN0aXZlIHsgfVxuLyogZXNsaW50LWVuYWJsZSBAYW5ndWxhci1lc2xpbnQvZGlyZWN0aXZlLXNlbGVjdG9yICovXG4iLCI8ZGl2IGNsYXNzPVwiZG9jLXBhZ2UtbmF2aWdhdGlvbi13cmFwcGVyXCIgW2NsYXNzLmV1aS11LWhpZGRlbl09XCJpc0xvYWRpbmdcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZG9jLXBhZ2UtbWFpbi1jb2x1bW5cIj5cbiAgICAgICAgPGV1aS1wYWdlPlxuICAgICAgICAgICAgPGV1aS1wYWdlLWhlYWRlciBsYWJlbD1cInt7bGFiZWx9fVwiIHN1YkxhYmVsPVwie3tzdWJMYWJlbH19XCI+XG4gICAgICAgICAgICAgICAgPGV1aS1wYWdlLWhlYWRlci1hY3Rpb24taXRlbXM+XG4gICAgICAgICAgICAgICAgICAgIDxldWktc2hvd2Nhc2UtZG9jLXBhZ2UtY29kZSAqbmdJZj1cImNvZGVGb2xkZXJcIiBjb2RlRm9sZGVyPVwie3tjb2RlRm9sZGVyfX1cIiBzaG93Y2FzZT1cInt7c2hvd2Nhc2V9fVwiPjwvZXVpLXNob3djYXNlLWRvYy1wYWdlLWNvZGU+XG4gICAgICAgICAgICAgICAgICAgIDxldWktY2hpcCAqbmdJZj1cInN0YXRlTGFiZWxcIiBbZXVpU3VjY2Vzc109XCJzdGF0ZUxhYmVsID09PSAnQUNUSVZFJ1wiIFtldWlXYXJuaW5nXT1cInN0YXRlTGFiZWwgPT09ICdERVBSRUNBVEVEJ1wiIFtldWlEYW5nZXJdPVwiaXNMZWdhY3lcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGV1aUxhYmVsPjxzdHJvbmc+e3tzdGF0ZUxhYmVsfX08L3N0cm9uZz48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvZXVpLWNoaXA+XG4gICAgICAgICAgICAgICAgPC9ldWktcGFnZS1oZWFkZXItYWN0aW9uLWl0ZW1zPlxuICAgICAgICAgICAgPC9ldWktcGFnZS1oZWFkZXI+XG5cbiAgICAgICAgICAgIDxldWktcGFnZS1jb250ZW50PlxuICAgICAgICAgICAgICAgIDxldWktYWxlcnQgKm5nSWY9XCJzdGF0ZUxhYmVsID09PSAnTEVHQUNZJyB8fCBpc0xlZ2FjeVwiIGV1aURhbmdlcj5cbiAgICAgICAgICAgICAgICAgICAgPHA+XG4gICAgICAgICAgICAgICAgICAgICAgICBUaGlzIGNvbXBvbmVudCB3aWxsIGJlIDxzdHJvbmcgY2xhc3M9XCJldWktdS1jb2xvci1kYW5nZXJcIj5yZW1vdmVkPC9zdHJvbmc+IGluIHRoZSBuZXh0IHZlcnNpb24gb2YgZVVJICEhXG4gICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImNtcFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImNtcC5jbXBSZXBsYWNlbWVudCAhPT0gJ05PTkUnXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgSXQgaGFzIGJlZW4gcmVwbGFjZWQgYnkgOiA8c3Ryb25nIGNsYXNzPVwiZXVpLXUtY29sb3Itc3VjY2Vzcy1kYXJrZXN0XCI+e3tjbXAuY21wUmVwbGFjZW1lbnR9fTwvc3Ryb25nPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPGRpdiAqbmdJZj1cImNtcC5jbXBSZXBsYWNlbWVudFVybFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnI+PGJyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBZb3UgY2FuIGZpbmQgbW9yZSBpbmZvcm1hdGlvbiBvbiB0aGUgbmV3IGNvbXBvbmVudCBoZXJlIDogPGEgW3JvdXRlckxpbmtdPVwiY21wLmNtcFJlcGxhY2VtZW50VXJsXCI+e3tjbXAuY21wUmVwbGFjZW1lbnRVcmx9fTwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4gLS0+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJjbXAuY21wUmVwbGFjZW1lbnQgPT09ICdOT05FJ1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRoaXMgY29tcG9uZW50IHdpbGwgYmUgPHN0cm9uZyBjbGFzcz1cImV1aS11LWNvbG9yLWRhbmdlclwiPmRpc2NvbnRpbnVlZCBpbiBmdXR1cmUgdmVyc2lvbiBvZiBlVUk8L3N0cm9uZz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImNtcC5jbXBSZXBsYWNlbWVudE5vdGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Ryb25nIGNsYXNzPVwiZXVpLXUtY29sb3Itd2FybmluZ1wiPnt7Y21wLmNtcFJlcGxhY2VtZW50Tm90ZX19PC9zdHJvbmc+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9ldWktYWxlcnQ+XG5cbiAgICAgICAgICAgICAgICA8ZXVpLWFsZXJ0ICpuZ0lmPVwic3RhdGVMYWJlbCA9PT0gJ0RFUFJFQ0FURUQnIHx8IGlzRGVwcmVjYXRlZFwiIGV1aVdhcm5pbmc+XG4gICAgICAgICAgICAgICAgICAgIDxwPlxuICAgICAgICAgICAgICAgICAgICAgICAgVGhpcyBjb21wb25lbnQgaGFzIGJlZW4gPHN0cm9uZyBjbGFzcz1cImV1aS11LWNvbG9yLWRhbmdlclwiPmRlcHJlY2F0ZWQ8L3N0cm9uZz5cbiAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiY21wXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICBUaGlzIGNvbXBvbmVudCBoYXMgbm8gcmVwbGFjZW1lbnQgaW4gY3VycmVudCB2ZXJzaW9uIEFORCB3b24ndCBoYXZlIHJlcGxhY2VtZW50IGluIG5leHQgdmVyc2lvbiBvZiBlVUksIGl0IGlzIGtlcHQgZm9yIDxzdHJvbmcgY2xhc3M9XCJldWktdS1jb2xvci13YXJuaW5nXCI+aGlzdG9yaWNhbCB1c2FnZSBvbmx5PC9zdHJvbmc+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZXVpLWFsZXJ0PlxuXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIihzdGF0ZUxhYmVsIHx8IGlzTm90UmVhZHkgfHwgaXNEZXByZWNhdGVkKSAmJiBzdGF0ZUxhYmVsICE9PSAnQUNUSVZFJ1wiIGNsYXNzPVwibWItNVwiPjwvZGl2PlxuXG5cbiAgICAgICAgICAgICAgICA8ZXVpLXRhYnMgI3RhYnNDb250ZW50ICpuZ0lmPVwicGFnZVNlY3Rpb25zQ29udGVudC5sZW5ndGggPT09IDBcIiAodGFiU2VsZWN0ZWQpPVwib25UYWJTZWxlY3RlZCgkZXZlbnQpXCI+XG4gICAgICAgICAgICAgICAgICAgIDxldWktdGFiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGV1aVRhYkxhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFQSVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9ldWlUYWJMYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxldWlUYWJDb250ZW50PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJhcGlVcmxTYWZlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4LWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj1cInt7YXBpVXJsfX1cIiB0YXJnZXQ9XCJfYmxhbmtcIiBjbGFzcz1cIm1zLWF1dG8gcGItMiBldWktdS10ZXh0LWxpbmstZXh0ZXJuYWxcIj5PcGVuIEFQSSBwYWdlPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRvYy1wYWdlLWFwaS1pZnJhbWUtd3JhcHBlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlmcmFtZSBpZD1cImlmcmFtZV9hcGlcIiBbd2lkdGhdPVwiJzEwMCUnXCIgaGVpZ2h0PVwiNzAwcHhcIiBmcmFtZUJvcmRlcj1cIjBcIiBbc3JjXT1cImFwaVVybFNhZmVcIj48L2lmcmFtZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2V1aVRhYkNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgICAgIDwvZXVpLXRhYj5cblxuICAgICAgICAgICAgICAgICAgICA8ZXVpLXRhYj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxldWlUYWJMYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBMTFZXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2V1aVRhYkxhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGV1aVRhYkNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGlkPVwiYWNjZXNzaWJpbGl0eVwiIGNsYXNzPVwiZXVpLXUtZm9udC1ib2xkIGV1aS11LWNvbG9yLWluZm8gbXQtMyBtYi0yXCI+QWNjZXNzaWJpbGl0eTwvaDM+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiZG9jUGFnZUFjY2Vzc2liaWxpdHlcIj48L25nLWNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2V1aVRhYkNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgICAgIDwvZXVpLXRhYj5cblxuICAgICAgICAgICAgICAgICAgICA8ZXVpLXRhYj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxldWlUYWJMYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBPUFRJT05TICYgU0FNUExFU1xuICAgICAgICAgICAgICAgICAgICAgICAgPC9ldWlUYWJMYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxldWlUYWJDb250ZW50PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjbXAgJiYgY21wLm1ldGFkYXRhXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz1cImV1aS11LWZvbnQtYm9sZCBldWktdS1jb2xvci1pbmZvIG10LTMgbWItM1wiPk1vZHVsZSBpbXBvcnQ8L2gzPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cHJlPjxjb2RlIGNsYXNzPVwibGFuZ3VhZ2UtamF2YXNjcmlwdCBldWktdS1iZy1jb2xvci1ncmV5LTVcIiBldWlDb2RlPnt7IGNtcE1vZHVsZUltcG9ydCB9fTwvY29kZT48L3ByZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGlkPVwib3ZlcnZpZXdcIiBjbGFzcz1cImV1aS11LWZvbnQtYm9sZCBldWktdS1jb2xvci1pbmZvIG10LTMgbWItM1wiPk92ZXJ2aWV3ICYgc2V0dXA8L2gzPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJwYWdlT3ZlcnZpZXdDb250ZW50Lmxlbmd0aCA+IDA7IGVsc2Ugbm9PdmVydmlld1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJkb2NQYWdlT3ZlcnZpZXdcIj48L25nLWNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNub092ZXJ2aWV3PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb21pbmcgc29vbi4uLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJyPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGlkPVwic2FtcGxlc1wiIGNsYXNzPVwiZXVpLXUtZm9udC1ib2xkIGV1aS11LWNvbG9yLWluZm8gbXQtOCBtYi0yXCI+T3B0aW9ucyAmIHNhbXBsZXM8L2gzPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImRvY1BhZ2VTYW1wbGVzXCI+PC9uZy1jb250ZW50PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9ldWlUYWJDb250ZW50PlxuICAgICAgICAgICAgICAgICAgICA8L2V1aS10YWI+XG5cbiAgICAgICAgICAgICAgICAgICAgPGV1aS10YWIgKm5nSWY9XCJwYWdlVGhlbWluZ0NvbnRlbnQubGVuZ3RoID4gMFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGV1aVRhYkxhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRIRU1JTkdcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZXVpVGFiTGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZXVpVGFiQ29udGVudD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDMgaWQ9XCJ0aGVtaW5nXCIgY2xhc3M9XCJldWktdS1mb250LWJvbGQgZXVpLXUtY29sb3ItaW5mbyBtdC0zIG1iLTJcIj5UaGVtaW5nPC9oMz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJkb2NQYWdlVGhlbWluZ1wiPjwvbmctY29udGVudD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZXVpVGFiQ29udGVudD5cbiAgICAgICAgICAgICAgICAgICAgPC9ldWktdGFiPlxuXG4gICAgICAgICAgICAgICAgICAgIDxldWktdGFiICpuZ0lmPVwicGFnZUludGVyYWN0aXZlQ29udGVudC5sZW5ndGggPiAwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZXVpVGFiTGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3twYWdlSW50ZXJhY3RpdmVDb250ZW50LmZpcnN0LnRpdGxlfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZXVpVGFiTGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZXVpVGFiQ29udGVudD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDMgaWQ9XCJpbnRlcmFjdGl2ZVwiIGNsYXNzPVwiZXVpLXUtZm9udC1ib2xkIGV1aS11LWNvbG9yLWluZm8gbXQtMyBtYi0yXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7cGFnZUludGVyYWN0aXZlQ29udGVudC5maXJzdC5zdWJUaXRsZX19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9oMz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJkb2NQYWdlSW50ZXJhY3RpdmVcIj48L25nLWNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2V1aVRhYkNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgICAgIDwvZXVpLXRhYj5cbiAgICAgICAgICAgICAgICA8L2V1aS10YWJzPlxuXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInBhZ2VTZWN0aW9uc0NvbnRlbnQubGVuZ3RoID4gMFwiPlxuICAgICAgICAgICAgICAgICAgICA8aDMgaWQ9XCJkZW1vXCIgKm5nSWY9XCJzZWN0aW9ucy5sZW5ndGggPT09IDBcIiBjbGFzcz1cImV1aS11LWZvbnQtYm9sZCBldWktdS1jb2xvci1pbmZvIG10LTMgbWItMlwiPkRlbW88L2gzPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJkb2NQYWdlU2VjdGlvbnNcIj48L25nLWNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L2V1aS1wYWdlLWNvbnRlbnQ+XG4gICAgICAgIDwvZXVpLXBhZ2U+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2ICpuZ0lmPVwiaXNOYXZpZ2F0aW9uVmlzaWJsZVwiIGNsYXNzPVwiZG9jLXBhZ2UtbmF2aWdhdGlvbi1jb2x1bW4gZXVpLXUtaGlkZGVuLWRlc2t0b3AtZG93blwiPlxuICAgICAgICA8ZGl2IGlkPVwiZG9jLXBhZ2UtbmF2XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZG9jLXBhZ2UtbmF2aWdhdGlvbi10aXRsZVwiPkluIHRoaXMgcGFnZTwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRvYy1wYWdlLW5hdmlnYXRpb24tY29udGVudFwiIHRhYmluZGV4PVwiMFwiPlxuICAgICAgICAgICAgICAgIDx1bCBjbGFzcz1cImRvYy1wYWdlLW5hdmlnYXRpb25cIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInBhZ2VTZWN0aW9uc0NvbnRlbnQubGVuZ3RoID09PSAwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8IS0tIEFMV0FZUyBQUkVTRU5UIGluIGVhY2ggcGFnZS0tPlxuICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8bGkgY2xhc3M9XCJkb2MtcGFnZS1uYXZpZ2F0aW9uLWl0ZW1cIiBbY2xhc3MuZG9jLXBhZ2UtbmF2aWdhdGlvbi1pdGVtLS1zZWxlY3RlZF09XCJmcmFnbWVudElkID09PSAnb3ZlcnZpZXcnXCIgKGNsaWNrKT1cIm9uTmF2Q2xpY2soJ292ZXJ2aWV3JywgMClcIj48c3Bhbj5PVkVSVklFVzwvc3Bhbj48L2xpPiAtLT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cImRvYy1wYWdlLW5hdmlnYXRpb24taXRlbVwiIFtjbGFzcy5kb2MtcGFnZS1uYXZpZ2F0aW9uLWl0ZW0tLXNlbGVjdGVkXT1cImZyYWdtZW50SWQgPT09ICdhcGknXCIgKGNsaWNrKT1cIm9uTmF2Q2xpY2soJ2FwaScsIDApXCI+PHNwYW4+QVBJPC9zcGFuPjwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJkb2MtcGFnZS1uYXZpZ2F0aW9uLWl0ZW1cIiBbY2xhc3MuZG9jLXBhZ2UtbmF2aWdhdGlvbi1pdGVtLS1zZWxlY3RlZF09XCJmcmFnbWVudElkID09PSAnYTExeSdcIiAoY2xpY2spPVwib25OYXZDbGljaygnYTExeScsIDEpXCI+PHNwYW4+QTExWTwvc3Bhbj48L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwiZG9jLXBhZ2UtbmF2aWdhdGlvbi1pdGVtXCIgW2NsYXNzLmRvYy1wYWdlLW5hdmlnYXRpb24taXRlbS0tc2VsZWN0ZWRdPVwiZnJhZ21lbnRJZCA9PT0gJ3NhbXBsZXMnXCIgKGNsaWNrKT1cIm9uTmF2Q2xpY2soJ3NhbXBsZXMnLCAyKVwiPjxzcGFuPk9QVElPTlMgJiBTQU1QTEVTPC9zcGFuPjwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJkb2MtcGFnZS1uYXZpZ2F0aW9uLWl0ZW0gZG9jLXBhZ2UtbmF2aWdhdGlvbi1zdWJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWwgKm5nRm9yPVwibGV0IHNhbXBsZSBvZiBzYW1wbGVzXCIgY2xhc3M9XCJkb2MtcGFnZS1uYXZpZ2F0aW9uLWxpc3RcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwiZG9jLXBhZ2UtbmF2aWdhdGlvbi1pdGVtXCIgW2NsYXNzLmRvYy1wYWdlLW5hdmlnYXRpb24taXRlbS0tc2VsZWN0ZWRdPVwiZnJhZ21lbnRJZCA9PT0gc2FtcGxlLmlkXCIgKGNsaWNrKT1cIm9uTmF2Q2xpY2soc2FtcGxlLmlkLCAyKVwiPjxzcGFuPnt7c2FtcGxlLmxhYmVsfX08L3NwYW4+PC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cblxuICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBPUFRJT05BTCBUQUJTLS0+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicGFnZVRoZW1pbmdDb250ZW50Lmxlbmd0aCA+IDBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgKm5nSWY9XCJwYWdlVGhlbWluZ0NvbnRlbnQubGVuZ3RoID4gMFwiIGNsYXNzPVwiZG9jLXBhZ2UtbmF2aWdhdGlvbi1pdGVtXCIgW2NsYXNzLmRvYy1wYWdlLW5hdmlnYXRpb24taXRlbS0tc2VsZWN0ZWRdPVwiZnJhZ21lbnRJZCA9PT0gJ3RoZW1pbmcnXCIgKGNsaWNrKT1cIm9uTmF2Q2xpY2soJ3RoZW1pbmcnLCAzKVwiPjxzcGFuPlRIRU1JTkc8L3NwYW4+PC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgKm5nSWY9XCJwYWdlSW50ZXJhY3RpdmVDb250ZW50Lmxlbmd0aCA+IDBcIiBjbGFzcz1cImRvYy1wYWdlLW5hdmlnYXRpb24taXRlbVwiIFtjbGFzcy5kb2MtcGFnZS1uYXZpZ2F0aW9uLWl0ZW0tLXNlbGVjdGVkXT1cImZyYWdtZW50SWQgPT09ICdhZHZhbmNlZCdcIiAoY2xpY2spPVwib25OYXZDbGljaygnYWR2YW5jZWQnLCA0KVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj57e3BhZ2VJbnRlcmFjdGl2ZUNvbnRlbnQuZmlyc3QudGl0bGV9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicGFnZVRoZW1pbmdDb250ZW50Lmxlbmd0aCAgPT09IDBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgKm5nSWY9XCJwYWdlSW50ZXJhY3RpdmVDb250ZW50Lmxlbmd0aCA+IDBcIiBjbGFzcz1cImRvYy1wYWdlLW5hdmlnYXRpb24taXRlbVwiIFtjbGFzcy5kb2MtcGFnZS1uYXZpZ2F0aW9uLWl0ZW0tLXNlbGVjdGVkXT1cImZyYWdtZW50SWQgPT09ICdhZHZhbmNlZCdcIiAoY2xpY2spPVwib25OYXZDbGljaygnYWR2YW5jZWQnLCAzKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj57e3BhZ2VJbnRlcmFjdGl2ZUNvbnRlbnQuZmlyc3QudGl0bGV9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJwYWdlU2VjdGlvbnNDb250ZW50Lmxlbmd0aCA+IDBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cImRvYy1wYWdlLW5hdmlnYXRpb24taXRlbVwiIFtjbGFzcy5kb2MtcGFnZS1uYXZpZ2F0aW9uLWl0ZW0tLXNlbGVjdGVkXT1cImZyYWdtZW50SWQgPT09ICdzZWN0aW9ucydcIiAoY2xpY2spPVwib25OYXZDbGljaygnc2VjdGlvbnMnLCBudWxsKVwiPjxzcGFuPlNlY3Rpb25zPC9zcGFuPjwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGkgKm5nSWY9XCJzZWN0aW9ucy5sZW5ndGggPT09IDBcIiBjbGFzcz1cImRvYy1wYWdlLW5hdmlnYXRpb24taXRlbVwiIFtjbGFzcy5kb2MtcGFnZS1uYXZpZ2F0aW9uLWl0ZW0tLXNlbGVjdGVkXT1cImZyYWdtZW50SWQgPT09ICdkZW1vJ1wiIChjbGljayk9XCJvbk5hdkNsaWNrKCdkZW1vJywgbnVsbClcIj48c3Bhbj5EZW1vPC9zcGFuPjwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGkgKm5nSWY9XCJzZWN0aW9ucy5sZW5ndGggPiAwXCIgY2xhc3M9XCJkb2MtcGFnZS1uYXZpZ2F0aW9uLWl0ZW0gZG9jLXBhZ2UtbmF2aWdhdGlvbi1zdWJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWwgKm5nRm9yPVwibGV0IHNlY3Rpb24gb2Ygc2VjdGlvbnNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwiZG9jLXBhZ2UtbmF2aWdhdGlvbi1pdGVtXCIgW2NsYXNzLmRvYy1wYWdlLW5hdmlnYXRpb24taXRlbS0tc2VsZWN0ZWRdPVwiZnJhZ21lbnRJZCA9PT0gc2VjdGlvbi5pZFwiIChjbGljayk9XCJvbk5hdkNsaWNrKHNlY3Rpb24uaWQsIG51bGwpXCI+PHNwYW4+e3tzZWN0aW9uLmxhYmVsfX08L3NwYW4+PC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuIl19
338
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jLXBhZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2RvYy1wYWdlL2RvYy1wYWdlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9kb2MtcGFnZS9kb2MtcGFnZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULEtBQUssRUFDTCxTQUFTLEVBRVQsZUFBZSxFQUNmLFVBQVUsRUFHVixpQkFBaUIsRUFDakIsU0FBUyxHQUVaLE1BQU0sZUFBZSxDQUFDO0FBSXZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDOzs7Ozs7Ozs7Ozs7QUFVM0UsTUFBTSxPQUFPLGdCQUFnQjtJQTJEekIsWUFDWSxNQUFjLEVBQ2QsS0FBcUIsRUFDckIsU0FBNEIsRUFDN0IsU0FBdUIsRUFDdEIsUUFBa0I7UUFKbEIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQ3JCLGNBQVMsR0FBVCxTQUFTLENBQW1CO1FBQzdCLGNBQVMsR0FBVCxTQUFTLENBQWM7UUFDdEIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQTVEckIsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUNuQixpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUNyQixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBRWpCLGFBQVEsR0FBVyxJQUFJLENBQUM7UUFDeEIsd0JBQW1CLEdBQVksSUFBSSxDQUFDO1FBYTdDLGNBQVMsR0FBRyxJQUFJLENBQUM7UUFDakIsaUJBQVksR0FBRyxJQUFJLENBQUM7UUE0QlosYUFBUSxHQUFHO1lBQ2YsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxLQUFL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QjtrR0FBOUIsOEJBQThCO2tCQUQxQyxTQUFTO21CQUFDLEVBQUUsUUFBUSxFQUFFLGdCQUFnQixFQUFFOztBQUd6QyxNQUFNLE9BQU8sK0JBQStCOztzSkFBL0IsK0JBQStCOzBJQUEvQiwrQkFBK0I7a0dBQS9CLCtCQUErQjtrQkFEM0MsU0FBUzttQkFBQyxFQUFFLFFBQVEsRUFBRSxpQkFBaUIsRUFBRTs7QUFHMUMsTUFBTSxPQUFPLG9DQUFvQzs7MkpBQXBDLG9DQUFvQzsrSUFBcEMsb0NBQW9DO2tHQUFwQyxvQ0FBb0M7a0JBRGhELFNBQVM7bUJBQUMsRUFBRSxRQUFRLEVBQUUsc0JBQXNCLEVBQUU7O0FBRy9DLE1BQU0sT0FBTywwQkFBMEI7O2lKQUExQiwwQkFBMEI7cUlBQTFCLDBCQUEwQjtrR0FBMUIsMEJBQTBCO2tCQUR0QyxTQUFTO21CQUFDLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRTs7QUFJckMsTUFBTSxPQUFPLDhCQUE4Qjs7cUpBQTlCLDhCQUE4Qjt5SUFBOUIsOEJBQThCO2tHQUE5Qiw4QkFBOEI7a0JBRDFDLFNBQVM7bUJBQUMsRUFBRSxRQUFRLEVBQUUsZ0JBQWdCLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBJbnB1dCxcbiAgICBEaXJlY3RpdmUsXG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDb250ZW50Q2hpbGRyZW4sXG4gICAgZm9yd2FyZFJlZixcbiAgICBPbkluaXQsXG4gICAgUXVlcnlMaXN0LFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxuICAgIFZpZXdDaGlsZCxcbiAgICBFbGVtZW50UmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IExvY2F0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFNhZmVSZXNvdXJjZVVybCwgRG9tU2FuaXRpemVyIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBSb3V0ZXIsIEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IERvY1NhbXBsZUNvbXBvbmVudCB9IGZyb20gJy4uL2RvYy1zYW1wbGUvZG9jLXNhbXBsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRG9jU2VjdGlvbkNvbXBvbmVudCB9IGZyb20gJy4uL2RvYy1zZWN0aW9uL2RvYy1zZWN0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBVeEFwcFNoZWxsU2VydmljZSB9IGZyb20gJ0BldWkvY29yZSc7XG5pbXBvcnQgeyBFdWlUYWJzQ29tcG9uZW50IH0gZnJvbSAnQGV1aS9jb21wb25lbnRzL2V1aS10YWJzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdldWktc2hvd2Nhc2UtZG9jLXBhZ2UnLFxuICAgIHRlbXBsYXRlVXJsOiAnZG9jLXBhZ2UuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2RvYy1wYWdlLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgRG9jUGFnZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XG4gICAgQElucHV0KCkgaWQ7XG4gICAgQElucHV0KCkgbGFiZWw7XG4gICAgQElucHV0KCkgc3ViTGFiZWw6IHN0cmluZztcbiAgICBASW5wdXQoKSBpc05vdFJlYWR5ID0gZmFsc2U7XG4gICAgQElucHV0KCkgaXNEZXByZWNhdGVkID0gZmFsc2U7XG4gICAgQElucHV0KCkgaXNMZWdhY3kgPSBmYWxzZTtcbiAgICBASW5wdXQoKSBjb2RlRm9sZGVyOiBzdHJpbmc7XG4gICAgQElucHV0KCkgc2hvd2Nhc2U6IHN0cmluZyA9ICd1eCc7XG4gICAgQElucHV0KCkgaXNOYXZpZ2F0aW9uVmlzaWJsZTogYm9vbGVhbiA9IHRydWU7XG5cbiAgICBzdGF0ZVR5cGVDbGFzcztcbiAgICBzdGF0ZUxhYmVsO1xuICAgIGNtcDtcbiAgICBmcmFnbWVudElkO1xuICAgIGNtcE1vZHVsZUltcG9ydDtcbiAgICBhcHBNZXRhZGF0YTtcblxuICAgIGFwaVVybFNhZmU6IFNhZmVSZXNvdXJjZVVybDtcbiAgICBhcGlVcmw6IHN0cmluZztcbiAgICBpRnJhbWVDb250ZW50O1xuXG4gICAgaXNMb2FkaW5nID0gdHJ1ZTtcbiAgICBpc05hdkNsaWNrZWQgPSB0cnVlO1xuXG4gICAgQENvbnRlbnRDaGlsZHJlbihEb2NTYW1wbGVDb21wb25lbnQsIHsgZGVzY2VuZGFudHM6IHRydWUgfSkgc2FtcGxlczogUXVlcnlMaXN0PERvY1NhbXBsZUNvbXBvbmVudD47XG4gICAgQENvbnRlbnRDaGlsZHJlbihEb2NTZWN0aW9uQ29tcG9uZW50LCB7IGRlc2NlbmRhbnRzOiB0cnVlIH0pIHNlY3Rpb25zOiBRdWVyeUxpc3Q8RG9jU2VjdGlvbkNvbXBvbmVudD47XG5cbiAgICBAQ29udGVudENoaWxkcmVuKGZvcndhcmRSZWYoKCkgPT4gRG9jUGFnZU92ZXJ2aWV3Q29udGVudERpcmVjdGl2ZSkpXG4gICAgcGFnZU92ZXJ2aWV3Q29udGVudDogUXVlcnlMaXN0PERvY1BhZ2VPdmVydmlld0NvbnRlbnREaXJlY3RpdmU+O1xuXG4gICAgQENvbnRlbnRDaGlsZHJlbihmb3J3YXJkUmVmKCgpID0+IERvY1BhZ2VTYW1wbGVzQ29udGVudERpcmVjdGl2ZSkpXG4gICAgcGFnZVNhbXBsZXNDb250ZW50OiBRdWVyeUxpc3Q8RG9jUGFnZVNhbXBsZXNDb250ZW50RGlyZWN0aXZlPjtcblxuICAgIEBDb250ZW50Q2hpbGRyZW4oZm9yd2FyZFJlZigoKSA9PiBEb2NQYWdlU2VjdGlvbnNDb250ZW50RGlyZWN0aXZlKSlcbiAgICBwYWdlU2VjdGlvbnNDb250ZW50OiBRdWVyeUxpc3Q8RG9jUGFnZVNlY3Rpb25zQ29udGVudERpcmVjdGl2ZT47XG5cbiAgICBAQ29udGVudENoaWxkcmVuKGZvcndhcmRSZWYoKCkgPT4gRG9jUGFnZUludGVyYWN0aXZlQ29udGVudERpcmVjdGl2ZSkpXG4gICAgcGFnZUludGVyYWN0aXZlQ29udGVudDogUXVlcnlMaXN0PERvY1BhZ2VJbnRlcmFjdGl2ZUNvbnRlbnREaXJlY3RpdmU+O1xuXG4gICAgQENvbnRlbnRDaGlsZHJlbihmb3J3YXJkUmVmKCgpID0+IERvY1BhZ2VBY2Nlc3NpYmlsaXR5Q29udGVudERpcmVjdGl2ZSkpXG4gICAgcGFnZUFjY2Vzc2liaWxpdHlDb250ZW50OiBRdWVyeUxpc3Q8RG9jUGFnZUFjY2Vzc2liaWxpdHlDb250ZW50RGlyZWN0aXZlPjtcblxuICAgIEBDb250ZW50Q2hpbGRyZW4oZm9yd2FyZFJlZigoKSA9PiBEb2NQYWdlQXBpQ29udGVudERpcmVjdGl2ZSkpXG4gICAgcGFnZUFwaUNvbnRlbnQ6IFF1ZXJ5TGlzdDxEb2NQYWdlQXBpQ29udGVudERpcmVjdGl2ZT47XG5cbiAgICBAQ29udGVudENoaWxkcmVuKGZvcndhcmRSZWYoKCkgPT4gRG9jUGFnZVRoZW1pbmdDb250ZW50RGlyZWN0aXZlKSlcbiAgICBwYWdlVGhlbWluZ0NvbnRlbnQ6IFF1ZXJ5TGlzdDxEb2NQYWdlVGhlbWluZ0NvbnRlbnREaXJlY3RpdmU+O1xuXG4gICAgQFZpZXdDaGlsZCgndGFic0NvbnRlbnQnKSB0YWJzQ29udGVudDogRXVpVGFic0NvbXBvbmVudDtcblxuICAgIHByaXZhdGUgVEFCU19ERUYgPSBbXG4gICAgICAgIHsgaW5kZXg6IDAsIGlkOiAnYXBpJyB9LFxuICAgICAgICB7IGluZGV4OiAxLCBpZDogJ2ExMXknIH0sXG4gICAgICAgIHsgaW5kZXg6IDIsIGlkOiAnc2FtcGxlcycgfSxcbiAgICAgICAgeyBpbmRleDogMywgaWQ6ICd0aGVtaW5nJyB9LFxuICAgICAgICB7IGluZGV4OiA0LCBpZDogJ2FkdmFuY2VkJyB9LFxuICAgIF07XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICAgICAgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgICAgIHByaXZhdGUgYXNTZXJ2aWNlOiBVeEFwcFNoZWxsU2VydmljZSxcbiAgICAgICAgcHVibGljIHNhbml0aXplcjogRG9tU2FuaXRpemVyLFxuICAgICAgICBwcml2YXRlIGxvY2F0aW9uOiBMb2NhdGlvbixcbiAgICApIHtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmFzU2VydmljZS5pc0Jsb2NrRG9jdW1lbnRBY3RpdmUgPSB0cnVlO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmFwcE1ldGFkYXRhID0gdGhpcy5hc1NlcnZpY2Uuc3RhdGUuYXBwTWV0YWRhdGE7XG5cbiAgICAgICAgaWYgKHRoaXMuaWQgJiYgIXRoaXMubGFiZWwpIHtcbiAgICAgICAgICAgIHRoaXMubGFiZWwgPSB0aGlzLmlkO1xuICAgICAgICB9XG5cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHRoaXMuY21wID0gdGhpcy5fZ2V0Q29tcG9uZW50U3RhdHVzKHRoaXMuaWQpO1xuXG4gICAgICAgICAgICBpZiAodGhpcy5jbXApIHtcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKHRoaXMuY21wLnN0YXR1cykge1xuICAgICAgICAgICAgICAgIGNhc2UgJ3N1Y2Nlc3MnOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXRlTGFiZWwgPSAnQUNUSVZFJztcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGF0ZVR5cGVDbGFzcyA9ICdzdWNjZXNzJztcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgICAgICBjYXNlICd3YXJuaW5nJzpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGF0ZUxhYmVsID0gJ0RFUFJFQ0FURUQnO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXRlVHlwZUNsYXNzID0gJ3dhcm5pbmcnO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmlzRGVwcmVjYXRlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICAgICAgY2FzZSAnZGFuZ2VyJzpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGF0ZUxhYmVsID0gJ0xFR0FDWSAtIHdpbGwgYmUgcmVtb3ZlZCBpbiBuZXh0IHZlcnNpb24nO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXRlVHlwZUNsYXNzID0gJ2Rhbmdlcic7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaXNMZWdhY3kgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAvLyBjb25zdHJ1Y3QgY21wIG1vZHVsZSBpbXBvcnQgc3RyaW5nXG4gICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG4gICAgICAgICAgICAgICAgdGhpcy5jbXBNb2R1bGVJbXBvcnQgPSBgaW1wb3J0IHsgJHt0aGlzLmNtcC5tZXRhZGF0YT8ubW9kdWxlTmFtZX0gfSBmcm9tICdAZXVpLyR7dGhpcy5jbXAubWV0YWRhdGE/LnN1YkVudHJ5TmFtZX0nO2A7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdXYXJuaW5nLCBlcnJvcnMgZGV0ZWN0ZWQgd2hpbGUgZ2V0dGluZyBwYWdlIHN0YXRlJyk7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhlKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmZyYWdtZW50SWQgPSB0aGlzLnJvdXRlLnNuYXBzaG90LmZyYWdtZW50O1xuXG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgICAgICAvLyBnZXR0aW5nIEFQSSB1cmxcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHRoaXMuYXBpVXJsID0gdGhpcy5fZ2V0QXBpVXJsKCk7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhgRmV0Y2hpbmcgQVBJIHVybCBmcm9tIDogJHt0aGlzLmFwaVVybH1gKTtcblxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5hcGlVcmxTYWZlID0gdGhpcy5zYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdFJlc291cmNlVXJsKHRoaXMuYXBpVXJsKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgbGV0IHRhYiA9IHRoaXMuVEFCU19ERUYuZmlsdGVyKHQgPT4gdC5pZCA9PT0gdGhpcy5mcmFnbWVudElkKVswXTtcbiAgICAgICAgICAgIGxldCB0YWJJbmRleDtcblxuICAgICAgICAgICAgaWYgKCF0YWIpIHtcbiAgICAgICAgICAgICAgICB0YWJJbmRleCA9IDI7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRhYkluZGV4ID0gdGFiLmluZGV4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLl9zY3JvbGxUb0ZyYWdtZW50KHRoaXMuZnJhZ21lbnRJZCwgdGFiSW5kZXgsIHRydWUsIHRydWUpO1xuXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmFzU2VydmljZS5pc0Jsb2NrRG9jdW1lbnRBY3RpdmUgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG9uTmF2Q2xpY2soZnJhZ21lbnRJZDogc3RyaW5nLCB0YWJJbmRleDogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuZnJhZ21lbnRJZCA9IGZyYWdtZW50SWQ7XG4gICAgICAgIHRoaXMuaXNOYXZDbGlja2VkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5fc2Nyb2xsVG9GcmFnbWVudCh0aGlzLmZyYWdtZW50SWQsIHRhYkluZGV4LCBmYWxzZSwgdHJ1ZSk7XG4gICAgfVxuXG4gICAgb25UYWJTZWxlY3RlZChldmVudDogYW55KSB7XG4gICAgICAgIGlmICghdGhpcy5pc0xvYWRpbmcgJiYgIXRoaXMuaXNOYXZDbGlja2VkKSB7XG4gICAgICAgICAgICBsZXQgdGFiSWQgPSB0aGlzLlRBQlNfREVGLmZpbHRlcih0ID0+IHQuaW5kZXggPT09IGV2ZW50LmluZGV4KVswXS5pZDtcbiAgICAgICAgICAgIHRoaXMuX3Njcm9sbFRvRnJhZ21lbnQodGFiSWQsIGV2ZW50LmluZGV4LCBmYWxzZSwgZmFsc2UpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuaXNOYXZDbGlja2VkID0gZmFsc2U7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfc2Nyb2xsVG9GcmFnbWVudChmcmFnbWVudElkOiBzdHJpbmcsIHRhYkluZGV4OiBudW1iZXIsIGluaXQ6IGJvb2xlYW4sIGNoYW5nZVRhYjogYm9vbGVhbikge1xuICAgICAgICBpZiAoaW5pdCkge1xuICAgICAgICAgICAgaWYgKHRoaXMudGFic0NvbnRlbnQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnRhYnNDb250ZW50LmNoYW5nZVRhYih0YWJJbmRleCk7XG5cbiAgICAgICAgICAgICAgICBpZiAoZnJhZ21lbnRJZCkge1xuICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGZnbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGZyYWdtZW50SWQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeU9mZnNldCA9IC04MDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmZ20pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB5ID0gZmdtLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcCArIHdpbmRvdy5wYWdlWU9mZnNldCArIHlPZmZzZXQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2luZG93LnNjcm9sbFRvKHt0b3A6IHl9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKGNoYW5nZVRhYikge1xuICAgICAgICAgICAgICAgIHRoaXMucm91dGVyLm9uU2FtZVVybE5hdmlnYXRpb24gPSAncmVsb2FkJztcbiAgICAgICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy4nXSwgeyByZWxhdGl2ZVRvOiB0aGlzLnJvdXRlLCBmcmFnbWVudDogZnJhZ21lbnRJZCB9KS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMudGFic0NvbnRlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudGFic0NvbnRlbnQuY2hhbmdlVGFiKHRhYkluZGV4KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb25zdCByb3V0ZVJvb3QgPSB0aGlzLnJvdXRlci51cmwuc3BsaXQoJyMnKVswXTtcbiAgICAgICAgICAgICAgICB0aGlzLmxvY2F0aW9uLmdvKGAke3JvdXRlUm9vdH0jJHtmcmFnbWVudElkfWApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfZ2V0Q29tcG9uZW50U3RhdHVzKGlkKSB7XG5cbiAgICAgICAgY29uc3QgZmxhdHRlbiA9IChsaW5rcykgPT4gbGlua3MgPyBsaW5rcy5yZWR1Y2UoKHJlc3VsdCwgaXRlbSkgPT4gW1xuICAgICAgICAgICAgICAgIC4uLnJlc3VsdCxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGlkOiBpdGVtLmxhYmVsLFxuICAgICAgICAgICAgICAgICAgICBhbHRlcm5hdGVJZDogaXRlbS5uYW1lLFxuICAgICAgICAgICAgICAgICAgICBzdGF0dXM6IGl0ZW0ubWFya2VyVHlwZUNsYXNzLFxuICAgICAgICAgICAgICAgICAgICBjbXBSZXBsYWNlbWVudDogaXRlbS5jbXBSZXBsYWNlbWVudCxcbiAgICAgICAgICAgICAgICAgICAgY21wUmVwbGFjZW1lbnRVcmw6IGl0ZW0uY21wUmVwbGFjZW1lbnRVcmwsXG4gICAgICAgICAgICAgICAgICAgIGNtcFJlcGxhY2VtZW50Tm90ZTogaXRlbS5jbXBSZXBsYWNlbWVudE5vdGUsXG4gICAgICAgICAgICAgICAgICAgIGFsdGVybmF0ZUFwaUNhdGVnb3J5OiBpdGVtLmFsdGVybmF0ZUFwaUNhdGVnb3J5LFxuICAgICAgICAgICAgICAgICAgICBtZXRhZGF0YTogaXRlbS5tZXRhZGF0YSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIC4uLmZsYXR0ZW4oaXRlbS5jaGlsZHJlbilcbiAgICAgICAgICAgIF0sIFtdKSA6IFtdO1xuXG4gICAgICAgIGNvbnN0IGZsYXRMaW5rcyA9IGZsYXR0ZW4odGhpcy5hc1NlcnZpY2Uuc3RhdGUuc2lkZWJhckxpbmtzKTtcbiAgICAgICAgY29uc3QgaWRCYXNlZENtcCA9IGZsYXRMaW5rcy5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0uaWQgPT09IGlkKVswXTtcbiAgICAgICAgaWYgKGlkQmFzZWRDbXApIHtcbiAgICAgICAgICAgIHJldHVybiBpZEJhc2VkQ21wO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgYWx0ZXJuYXRlSWRCYXNlZENtcCA9IGZsYXRMaW5rcy5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0uYWx0ZXJuYXRlSWQgPT09IGlkKVswXTtcbiAgICAgICAgICAgIHJldHVybiBhbHRlcm5hdGVJZEJhc2VkQ21wO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfZ2V0QXBpVXJsKCkge1xuICAgICAgICBjb25zdCB1cmwgPSB3aW5kb3cubG9jYXRpb247XG4gICAgICAgIGNvbnN0IHByb3RvY29sID0gdXJsLnByb3RvY29sO1xuICAgICAgICBjb25zdCBob3N0ID0gdXJsLmhvc3Q7XG4gICAgICAgIGNvbnN0IHBhdGhOYW1lID0gdXJsLnBhdGhuYW1lO1xuICAgICAgICBjb25zdCBwYXRoTmFtZUFycmF5ID0gcGF0aE5hbWUuc3BsaXQoJy8nKTtcbiAgICAgICAgY29uc3QgbmFtZSA9IHBhdGhOYW1lQXJyYXlbcGF0aE5hbWVBcnJheS5sZW5ndGggLSAxXTtcbiAgICAgICAgbGV0IGNhdGVnb3J5ID0gcGF0aE5hbWVBcnJheVtwYXRoTmFtZUFycmF5Lmxlbmd0aCAtIDJdO1xuXG4gICAgICAgIGxldCBwcm90b2NvbEdlbiA9IHByb3RvY29sLCBob3N0R2VuID0gaG9zdDtcblxuICAgICAgICBpZiAoaG9zdC5pbmRleE9mKCdsb2NhbGhvc3QnKSA+IC0xKSB7XG4gICAgICAgICAgICBwcm90b2NvbEdlbiA9ICdodHRwczonO1xuICAgICAgICAgICAgaG9zdEdlbiA9ICdldWlkZXYuZWNkZXZvcHMuZXUnO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgYXBwVmVyc2lvbk51bWJlciA9IHRoaXMuYXBwTWV0YWRhdGEuYXBwVmVyc2lvbi5zcGxpdCgnLicpWzBdO1xuICAgICAgICBjb25zdCBkb2NUeXBlUm9vdCA9IGBldWktZG9jcy1ldWktJHthcHBWZXJzaW9uTnVtYmVyfS54YDtcblxuICAgICAgICBpZiAoY2F0ZWdvcnkgPT09ICdsYXlvdXQtY29tcG9uZW50cycgfHwgY2F0ZWdvcnkgPT09ICdleHRlcm5hbHMnKSB7XG4gICAgICAgICAgICBjYXRlZ29yeSA9ICdjb21wb25lbnRzJztcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGNtcCA9IHRoaXMuX2dldENvbXBvbmVudFN0YXR1cyhuYW1lKTtcblxuICAgICAgICBpZiAoY21wLmFsdGVybmF0ZUFwaUNhdGVnb3J5KSB7XG4gICAgICAgICAgICBjYXRlZ29yeSA9IGNtcC5hbHRlcm5hdGVBcGlDYXRlZ29yeTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGZvcm1hdHRlZE5hbWUgPSB0aGlzLl9jYW1lbENhc2VTdHJpbmcobmFtZSArICctJyArIGNhdGVnb3J5LnNsaWNlKDAsIC0xKSwgJy0nLCB0cnVlKTtcbiAgICAgICAgY29uc3QgZG9jUGF0aCA9IGAke3Byb3RvY29sR2VufS8vJHtob3N0R2VufS8ke2RvY1R5cGVSb290fS8ke2NhdGVnb3J5fS8ke2Zvcm1hdHRlZE5hbWV9Lmh0bWxgO1xuXG4gICAgICAgIGNvbnNvbGUubG9nKGBmZXRjaGluZyBBUEkgZnJvbTogJHtkb2NQYXRofWApO1xuXG4gICAgICAgIHJldHVybiBkb2NQYXRoO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2NhbWVsQ2FzZVN0cmluZyhzdHJpbmcsIHNlcGFyYXRvciwgZmlyc3QpIHtcbiAgICAgICAgY29uc3Qgc3RyaW5nQXJyYXkgPSBzdHJpbmcuc3BsaXQoc2VwYXJhdG9yKTtcbiAgICAgICAgbGV0IHJlc3VsdCA9ICcnO1xuICAgICAgICBsZXQgcztcblxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHN0cmluZ0FycmF5Lmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBzID0gc3RyaW5nQXJyYXlbaV07XG4gICAgICAgICAgICBpZiAoaSA9PT0gMCkge1xuICAgICAgICAgICAgICAgIGlmIChmaXJzdCkge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQgKz0gcy5zdWJzdHJpbmcoMCwgMSkudG9VcHBlckNhc2UoKSArIHMuc3Vic3RyKDEpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSBzO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmVzdWx0ICs9IHMuc3Vic3RyaW5nKDAsIDEpLnRvVXBwZXJDYXNlKCkgKyBzLnN1YnN0cigxKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG59XG5cbi8qIGVzbGludC1kaXNhYmxlIEBhbmd1bGFyLWVzbGludC9kaXJlY3RpdmUtc2VsZWN0b3IgKi9cbkBEaXJlY3RpdmUoeyBzZWxlY3RvcjogJ2RvY1BhZ2VPdmVydmlldycgfSlcbmV4cG9ydCBjbGFzcyBEb2NQYWdlT3ZlcnZpZXdDb250ZW50RGlyZWN0aXZlIHsgfVxuQERpcmVjdGl2ZSh7IHNlbGVjdG9yOiAnZG9jUGFnZUludGVyYWN0aXZlJyB9KVxuZXhwb3J0IGNsYXNzIERvY1BhZ2VJbnRlcmFjdGl2ZUNvbnRlbnREaXJlY3RpdmUge1xuICAgIEBJbnB1dCgpIHRpdGxlOiBzdHJpbmcgPSAnQURWQU5DRUQgRVhBTVBMRVMnO1xuICAgIEBJbnB1dCgpIHN1YlRpdGxlOiBzdHJpbmcgPSAnQWR2YW5jZWQgdXNlIGNhc2VzJztcbn1cbkBEaXJlY3RpdmUoeyBzZWxlY3RvcjogJ2RvY1BhZ2VTYW1wbGVzJyB9KVxuZXhwb3J0IGNsYXNzIERvY1BhZ2VTYW1wbGVzQ29udGVudERpcmVjdGl2ZSB7IH1cbkBEaXJlY3RpdmUoeyBzZWxlY3RvcjogJ2RvY1BhZ2VTZWN0aW9ucycgfSlcbmV4cG9ydCBjbGFzcyBEb2NQYWdlU2VjdGlvbnNDb250ZW50RGlyZWN0aXZlIHsgfVxuQERpcmVjdGl2ZSh7IHNlbGVjdG9yOiAnZG9jUGFnZUFjY2Vzc2liaWxpdHknIH0pXG5leHBvcnQgY2xhc3MgRG9jUGFnZUFjY2Vzc2liaWxpdHlDb250ZW50RGlyZWN0aXZlIHsgfVxuQERpcmVjdGl2ZSh7IHNlbGVjdG9yOiAnZG9jUGFnZUFwaScgfSlcbmV4cG9ydCBjbGFzcyBEb2NQYWdlQXBpQ29udGVudERpcmVjdGl2ZSB7IH1cblxuQERpcmVjdGl2ZSh7IHNlbGVjdG9yOiAnZG9jUGFnZVRoZW1pbmcnIH0pXG5leHBvcnQgY2xhc3MgRG9jUGFnZVRoZW1pbmdDb250ZW50RGlyZWN0aXZlIHsgfVxuLyogZXNsaW50LWVuYWJsZSBAYW5ndWxhci1lc2xpbnQvZGlyZWN0aXZlLXNlbGVjdG9yICovXG4iLCI8ZGl2IGNsYXNzPVwiZG9jLXBhZ2UtbmF2aWdhdGlvbi13cmFwcGVyXCIgW2NsYXNzLmV1aS11LWhpZGRlbl09XCJpc0xvYWRpbmdcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZG9jLXBhZ2UtbWFpbi1jb2x1bW5cIj5cbiAgICAgICAgPGV1aS1wYWdlPlxuICAgICAgICAgICAgPGV1aS1wYWdlLWhlYWRlciBsYWJlbD1cInt7bGFiZWx9fVwiIHN1YkxhYmVsPVwie3tzdWJMYWJlbH19XCI+XG4gICAgICAgICAgICAgICAgPGV1aS1wYWdlLWhlYWRlci1hY3Rpb24taXRlbXM+XG4gICAgICAgICAgICAgICAgICAgIDxldWktc2hvd2Nhc2UtZG9jLXBhZ2UtY29kZSAqbmdJZj1cImNvZGVGb2xkZXJcIiBjb2RlRm9sZGVyPVwie3tjb2RlRm9sZGVyfX1cIiBzaG93Y2FzZT1cInt7c2hvd2Nhc2V9fVwiPjwvZXVpLXNob3djYXNlLWRvYy1wYWdlLWNvZGU+XG4gICAgICAgICAgICAgICAgICAgIDxldWktY2hpcCAqbmdJZj1cInN0YXRlTGFiZWxcIiBbZXVpU3VjY2Vzc109XCJzdGF0ZUxhYmVsID09PSAnQUNUSVZFJ1wiIFtldWlXYXJuaW5nXT1cInN0YXRlTGFiZWwgPT09ICdERVBSRUNBVEVEJ1wiIFtldWlEYW5nZXJdPVwiaXNMZWdhY3lcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGV1aUxhYmVsPjxzdHJvbmc+e3tzdGF0ZUxhYmVsfX08L3N0cm9uZz48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvZXVpLWNoaXA+XG4gICAgICAgICAgICAgICAgPC9ldWktcGFnZS1oZWFkZXItYWN0aW9uLWl0ZW1zPlxuICAgICAgICAgICAgPC9ldWktcGFnZS1oZWFkZXI+XG5cbiAgICAgICAgICAgIDxldWktcGFnZS1jb250ZW50PlxuICAgICAgICAgICAgICAgIDxldWktYWxlcnQgKm5nSWY9XCJzdGF0ZUxhYmVsID09PSAnTEVHQUNZJyB8fCBpc0xlZ2FjeVwiIGV1aURhbmdlcj5cbiAgICAgICAgICAgICAgICAgICAgPHA+XG4gICAgICAgICAgICAgICAgICAgICAgICBUaGlzIGNvbXBvbmVudCB3aWxsIGJlIDxzdHJvbmcgY2xhc3M9XCJldWktdS1jb2xvci1kYW5nZXJcIj5yZW1vdmVkPC9zdHJvbmc+IGluIHRoZSBuZXh0IHZlcnNpb24gb2YgZVVJICEhXG4gICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImNtcFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImNtcC5jbXBSZXBsYWNlbWVudCAhPT0gJ05PTkUnXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgSXQgaGFzIGJlZW4gcmVwbGFjZWQgYnkgOiA8c3Ryb25nIGNsYXNzPVwiZXVpLXUtY29sb3Itc3VjY2Vzcy1kYXJrZXN0XCI+e3tjbXAuY21wUmVwbGFjZW1lbnR9fTwvc3Ryb25nPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPGRpdiAqbmdJZj1cImNtcC5jbXBSZXBsYWNlbWVudFVybFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnI+PGJyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBZb3UgY2FuIGZpbmQgbW9yZSBpbmZvcm1hdGlvbiBvbiB0aGUgbmV3IGNvbXBvbmVudCBoZXJlIDogPGEgW3JvdXRlckxpbmtdPVwiY21wLmNtcFJlcGxhY2VtZW50VXJsXCI+e3tjbXAuY21wUmVwbGFjZW1lbnRVcmx9fTwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4gLS0+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJjbXAuY21wUmVwbGFjZW1lbnQgPT09ICdOT05FJ1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRoaXMgY29tcG9uZW50IHdpbGwgYmUgPHN0cm9uZyBjbGFzcz1cImV1aS11LWNvbG9yLWRhbmdlclwiPmRpc2NvbnRpbnVlZCBpbiBmdXR1cmUgdmVyc2lvbiBvZiBlVUk8L3N0cm9uZz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImNtcC5jbXBSZXBsYWNlbWVudE5vdGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Ryb25nIGNsYXNzPVwiZXVpLXUtY29sb3Itd2FybmluZ1wiPnt7Y21wLmNtcFJlcGxhY2VtZW50Tm90ZX19PC9zdHJvbmc+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9ldWktYWxlcnQ+XG5cbiAgICAgICAgICAgICAgICA8ZXVpLWFsZXJ0ICpuZ0lmPVwic3RhdGVMYWJlbCA9PT0gJ0RFUFJFQ0FURUQnIHx8IGlzRGVwcmVjYXRlZFwiIGV1aVdhcm5pbmc+XG4gICAgICAgICAgICAgICAgICAgIDxwPlxuICAgICAgICAgICAgICAgICAgICAgICAgVGhpcyBjb21wb25lbnQgaGFzIGJlZW4gPHN0cm9uZyBjbGFzcz1cImV1aS11LWNvbG9yLWRhbmdlclwiPmRlcHJlY2F0ZWQ8L3N0cm9uZz5cbiAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiY21wXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICBUaGlzIGNvbXBvbmVudCBoYXMgbm8gcmVwbGFjZW1lbnQgaW4gY3VycmVudCB2ZXJzaW9uIEFORCB3b24ndCBoYXZlIHJlcGxhY2VtZW50IGluIG5leHQgdmVyc2lvbiBvZiBlVUksIGl0IGlzIGtlcHQgZm9yIDxzdHJvbmcgY2xhc3M9XCJldWktdS1jb2xvci13YXJuaW5nXCI+aGlzdG9yaWNhbCB1c2FnZSBvbmx5PC9zdHJvbmc+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZXVpLWFsZXJ0PlxuXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIihzdGF0ZUxhYmVsIHx8IGlzTm90UmVhZHkgfHwgaXNEZXByZWNhdGVkKSAmJiBzdGF0ZUxhYmVsICE9PSAnQUNUSVZFJ1wiIGNsYXNzPVwibWItNVwiPjwvZGl2PlxuXG5cbiAgICAgICAgICAgICAgICA8ZXVpLXRhYnMgI3RhYnNDb250ZW50ICpuZ0lmPVwicGFnZVNlY3Rpb25zQ29udGVudC5sZW5ndGggPT09IDBcIiAodGFiU2VsZWN0ZWQpPVwib25UYWJTZWxlY3RlZCgkZXZlbnQpXCI+XG4gICAgICAgICAgICAgICAgICAgIDxldWktdGFiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGV1aVRhYkxhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFQSVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9ldWlUYWJMYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxldWlUYWJDb250ZW50PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJhcGlVcmxTYWZlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4LWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj1cInt7YXBpVXJsfX1cIiB0YXJnZXQ9XCJfYmxhbmtcIiBjbGFzcz1cIm1zLWF1dG8gcGItMiBldWktdS10ZXh0LWxpbmstZXh0ZXJuYWxcIj5PcGVuIEFQSSBwYWdlPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRvYy1wYWdlLWFwaS1pZnJhbWUtd3JhcHBlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlmcmFtZSBpZD1cImlmcmFtZV9hcGlcIiBbd2lkdGhdPVwiJzEwMCUnXCIgaGVpZ2h0PVwiNzAwcHhcIiBmcmFtZUJvcmRlcj1cIjBcIiBbc3JjXT1cImFwaVVybFNhZmVcIj48L2lmcmFtZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2V1aVRhYkNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgICAgIDwvZXVpLXRhYj5cblxuICAgICAgICAgICAgICAgICAgICA8ZXVpLXRhYj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxldWlUYWJMYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBMTFZXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2V1aVRhYkxhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGV1aVRhYkNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGlkPVwiYWNjZXNzaWJpbGl0eVwiIGNsYXNzPVwiZXVpLXUtZm9udC1ib2xkIGV1aS11LWNvbG9yLWluZm8gbXQtMyBtYi0yXCI+QWNjZXNzaWJpbGl0eTwvaDM+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiZG9jUGFnZUFjY2Vzc2liaWxpdHlcIj48L25nLWNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2V1aVRhYkNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgICAgIDwvZXVpLXRhYj5cblxuICAgICAgICAgICAgICAgICAgICA8ZXVpLXRhYj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxldWlUYWJMYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBPUFRJT05TICYgU0FNUExFU1xuICAgICAgICAgICAgICAgICAgICAgICAgPC9ldWlUYWJMYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxldWlUYWJDb250ZW50PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjbXAgJiYgY21wLm1ldGFkYXRhXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz1cImV1aS11LWZvbnQtYm9sZCBldWktdS1jb2xvci1pbmZvIG10LTMgbWItM1wiPk1vZHVsZSBpbXBvcnQ8L2gzPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cHJlPjxjb2RlIGNsYXNzPVwibGFuZ3VhZ2UtamF2YXNjcmlwdCBldWktdS1iZy1jb2xvci1ncmV5LTVcIiBldWlDb2RlPnt7IGNtcE1vZHVsZUltcG9ydCB9fTwvY29kZT48L3ByZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGlkPVwib3ZlcnZpZXdcIiBjbGFzcz1cImV1aS11LWZvbnQtYm9sZCBldWktdS1jb2xvci1pbmZvIG10LTMgbWItM1wiPk92ZXJ2aWV3ICYgc2V0dXA8L2gzPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJwYWdlT3ZlcnZpZXdDb250ZW50Lmxlbmd0aCA+IDA7IGVsc2Ugbm9PdmVydmlld1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJkb2NQYWdlT3ZlcnZpZXdcIj48L25nLWNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNub092ZXJ2aWV3PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb21pbmcgc29vbi4uLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJyPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGlkPVwic2FtcGxlc1wiIGNsYXNzPVwiZXVpLXUtZm9udC1ib2xkIGV1aS11LWNvbG9yLWluZm8gbXQtOCBtYi0yXCI+T3B0aW9ucyAmIHNhbXBsZXM8L2gzPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImRvY1BhZ2VTYW1wbGVzXCI+PC9uZy1jb250ZW50PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9ldWlUYWJDb250ZW50PlxuICAgICAgICAgICAgICAgICAgICA8L2V1aS10YWI+XG5cbiAgICAgICAgICAgICAgICAgICAgPGV1aS10YWIgKm5nSWY9XCJwYWdlVGhlbWluZ0NvbnRlbnQubGVuZ3RoID4gMFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGV1aVRhYkxhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRIRU1JTkdcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZXVpVGFiTGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZXVpVGFiQ29udGVudD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDMgaWQ9XCJ0aGVtaW5nXCIgY2xhc3M9XCJldWktdS1mb250LWJvbGQgZXVpLXUtY29sb3ItaW5mbyBtdC0zIG1iLTJcIj5UaGVtaW5nPC9oMz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJkb2NQYWdlVGhlbWluZ1wiPjwvbmctY29udGVudD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZXVpVGFiQ29udGVudD5cbiAgICAgICAgICAgICAgICAgICAgPC9ldWktdGFiPlxuXG4gICAgICAgICAgICAgICAgICAgIDxldWktdGFiICpuZ0lmPVwicGFnZUludGVyYWN0aXZlQ29udGVudC5sZW5ndGggPiAwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZXVpVGFiTGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3twYWdlSW50ZXJhY3RpdmVDb250ZW50LmZpcnN0LnRpdGxlfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZXVpVGFiTGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZXVpVGFiQ29udGVudD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDMgaWQ9XCJpbnRlcmFjdGl2ZVwiIGNsYXNzPVwiZXVpLXUtZm9udC1ib2xkIGV1aS11LWNvbG9yLWluZm8gbXQtMyBtYi0yXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7cGFnZUludGVyYWN0aXZlQ29udGVudC5maXJzdC5zdWJUaXRsZX19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9oMz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJkb2NQYWdlSW50ZXJhY3RpdmVcIj48L25nLWNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2V1aVRhYkNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgICAgIDwvZXVpLXRhYj5cbiAgICAgICAgICAgICAgICA8L2V1aS10YWJzPlxuXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInBhZ2VTZWN0aW9uc0NvbnRlbnQubGVuZ3RoID4gMFwiPlxuICAgICAgICAgICAgICAgICAgICA8aDMgaWQ9XCJkZW1vXCIgKm5nSWY9XCJzZWN0aW9ucy5sZW5ndGggPT09IDBcIiBjbGFzcz1cImV1aS11LWZvbnQtYm9sZCBldWktdS1jb2xvci1pbmZvIG10LTMgbWItMlwiPkRlbW88L2gzPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJkb2NQYWdlU2VjdGlvbnNcIj48L25nLWNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L2V1aS1wYWdlLWNvbnRlbnQ+XG4gICAgICAgIDwvZXVpLXBhZ2U+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2ICpuZ0lmPVwiaXNOYXZpZ2F0aW9uVmlzaWJsZVwiIGNsYXNzPVwiZG9jLXBhZ2UtbmF2aWdhdGlvbi1jb2x1bW4gZXVpLXUtaGlkZGVuLWRlc2t0b3AtZG93blwiPlxuICAgICAgICA8ZGl2IGlkPVwiZG9jLXBhZ2UtbmF2XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZG9jLXBhZ2UtbmF2aWdhdGlvbi10aXRsZVwiPkluIHRoaXMgcGFnZTwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRvYy1wYWdlLW5hdmlnYXRpb24tY29udGVudFwiIHRhYmluZGV4PVwiMFwiPlxuICAgICAgICAgICAgICAgIDx1bCBjbGFzcz1cImRvYy1wYWdlLW5hdmlnYXRpb25cIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInBhZ2VTZWN0aW9uc0NvbnRlbnQubGVuZ3RoID09PSAwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8IS0tIEFMV0FZUyBQUkVTRU5UIGluIGVhY2ggcGFnZS0tPlxuICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8bGkgY2xhc3M9XCJkb2MtcGFnZS1uYXZpZ2F0aW9uLWl0ZW1cIiBbY2xhc3MuZG9jLXBhZ2UtbmF2aWdhdGlvbi1pdGVtLS1zZWxlY3RlZF09XCJmcmFnbWVudElkID09PSAnb3ZlcnZpZXcnXCIgKGNsaWNrKT1cIm9uTmF2Q2xpY2soJ292ZXJ2aWV3JywgMClcIj48c3Bhbj5PVkVSVklFVzwvc3Bhbj48L2xpPiAtLT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cImRvYy1wYWdlLW5hdmlnYXRpb24taXRlbVwiIFtjbGFzcy5kb2MtcGFnZS1uYXZpZ2F0aW9uLWl0ZW0tLXNlbGVjdGVkXT1cImZyYWdtZW50SWQgPT09ICdhcGknXCIgKGNsaWNrKT1cIm9uTmF2Q2xpY2soJ2FwaScsIDApXCI+PHNwYW4+QVBJPC9zcGFuPjwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJkb2MtcGFnZS1uYXZpZ2F0aW9uLWl0ZW1cIiBbY2xhc3MuZG9jLXBhZ2UtbmF2aWdhdGlvbi1pdGVtLS1zZWxlY3RlZF09XCJmcmFnbWVudElkID09PSAnYTExeSdcIiAoY2xpY2spPVwib25OYXZDbGljaygnYTExeScsIDEpXCI+PHNwYW4+QTExWTwvc3Bhbj48L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwiZG9jLXBhZ2UtbmF2aWdhdGlvbi1pdGVtXCIgW2NsYXNzLmRvYy1wYWdlLW5hdmlnYXRpb24taXRlbS0tc2VsZWN0ZWRdPVwiZnJhZ21lbnRJZCA9PT0gJ3NhbXBsZXMnXCIgKGNsaWNrKT1cIm9uTmF2Q2xpY2soJ3NhbXBsZXMnLCAyKVwiPjxzcGFuPk9QVElPTlMgJiBTQU1QTEVTPC9zcGFuPjwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJkb2MtcGFnZS1uYXZpZ2F0aW9uLWl0ZW0gZG9jLXBhZ2UtbmF2aWdhdGlvbi1zdWJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWwgKm5nRm9yPVwibGV0IHNhbXBsZSBvZiBzYW1wbGVzXCIgY2xhc3M9XCJkb2MtcGFnZS1uYXZpZ2F0aW9uLWxpc3RcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwiZG9jLXBhZ2UtbmF2aWdhdGlvbi1pdGVtXCIgW2NsYXNzLmRvYy1wYWdlLW5hdmlnYXRpb24taXRlbS0tc2VsZWN0ZWRdPVwiZnJhZ21lbnRJZCA9PT0gc2FtcGxlLmlkXCIgKGNsaWNrKT1cIm9uTmF2Q2xpY2soc2FtcGxlLmlkLCAyKVwiPjxzcGFuPnt7c2FtcGxlLmxhYmVsfX08L3NwYW4+PC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cblxuICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBPUFRJT05BTCBUQUJTLS0+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicGFnZVRoZW1pbmdDb250ZW50Lmxlbmd0aCA+IDBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgKm5nSWY9XCJwYWdlVGhlbWluZ0NvbnRlbnQubGVuZ3RoID4gMFwiIGNsYXNzPVwiZG9jLXBhZ2UtbmF2aWdhdGlvbi1pdGVtXCIgW2NsYXNzLmRvYy1wYWdlLW5hdmlnYXRpb24taXRlbS0tc2VsZWN0ZWRdPVwiZnJhZ21lbnRJZCA9PT0gJ3RoZW1pbmcnXCIgKGNsaWNrKT1cIm9uTmF2Q2xpY2soJ3RoZW1pbmcnLCAzKVwiPjxzcGFuPlRIRU1JTkc8L3NwYW4+PC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgKm5nSWY9XCJwYWdlSW50ZXJhY3RpdmVDb250ZW50Lmxlbmd0aCA+IDBcIiBjbGFzcz1cImRvYy1wYWdlLW5hdmlnYXRpb24taXRlbVwiIFtjbGFzcy5kb2MtcGFnZS1uYXZpZ2F0aW9uLWl0ZW0tLXNlbGVjdGVkXT1cImZyYWdtZW50SWQgPT09ICdhZHZhbmNlZCdcIiAoY2xpY2spPVwib25OYXZDbGljaygnYWR2YW5jZWQnLCA0KVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj57e3BhZ2VJbnRlcmFjdGl2ZUNvbnRlbnQuZmlyc3QudGl0bGV9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicGFnZVRoZW1pbmdDb250ZW50Lmxlbmd0aCAgPT09IDBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgKm5nSWY9XCJwYWdlSW50ZXJhY3RpdmVDb250ZW50Lmxlbmd0aCA+IDBcIiBjbGFzcz1cImRvYy1wYWdlLW5hdmlnYXRpb24taXRlbVwiIFtjbGFzcy5kb2MtcGFnZS1uYXZpZ2F0aW9uLWl0ZW0tLXNlbGVjdGVkXT1cImZyYWdtZW50SWQgPT09ICdhZHZhbmNlZCdcIiAoY2xpY2spPVwib25OYXZDbGljaygnYWR2YW5jZWQnLCAzKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj57e3BhZ2VJbnRlcmFjdGl2ZUNvbnRlbnQuZmlyc3QudGl0bGV9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJwYWdlU2VjdGlvbnNDb250ZW50Lmxlbmd0aCA+IDBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cImRvYy1wYWdlLW5hdmlnYXRpb24taXRlbVwiIFtjbGFzcy5kb2MtcGFnZS1uYXZpZ2F0aW9uLWl0ZW0tLXNlbGVjdGVkXT1cImZyYWdtZW50SWQgPT09ICdzZWN0aW9ucydcIiAoY2xpY2spPVwib25OYXZDbGljaygnc2VjdGlvbnMnLCBudWxsKVwiPjxzcGFuPlNlY3Rpb25zPC9zcGFuPjwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGkgKm5nSWY9XCJzZWN0aW9ucy5sZW5ndGggPT09IDBcIiBjbGFzcz1cImRvYy1wYWdlLW5hdmlnYXRpb24taXRlbVwiIFtjbGFzcy5kb2MtcGFnZS1uYXZpZ2F0aW9uLWl0ZW0tLXNlbGVjdGVkXT1cImZyYWdtZW50SWQgPT09ICdkZW1vJ1wiIChjbGljayk9XCJvbk5hdkNsaWNrKCdkZW1vJywgbnVsbClcIj48c3Bhbj5EZW1vPC9zcGFuPjwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGkgKm5nSWY9XCJzZWN0aW9ucy5sZW5ndGggPiAwXCIgY2xhc3M9XCJkb2MtcGFnZS1uYXZpZ2F0aW9uLWl0ZW0gZG9jLXBhZ2UtbmF2aWdhdGlvbi1zdWJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWwgKm5nRm9yPVwibGV0IHNlY3Rpb24gb2Ygc2VjdGlvbnNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwiZG9jLXBhZ2UtbmF2aWdhdGlvbi1pdGVtXCIgW2NsYXNzLmRvYy1wYWdlLW5hdmlnYXRpb24taXRlbS0tc2VsZWN0ZWRdPVwiZnJhZ21lbnRJZCA9PT0gc2VjdGlvbi5pZFwiIChjbGljayk9XCJvbk5hdkNsaWNrKHNlY3Rpb24uaWQsIG51bGwpXCI+PHNwYW4+e3tzZWN0aW9uLmxhYmVsfX08L3NwYW4+PC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -646,6 +646,7 @@ class DocPageComponent {
646
646
  setTimeout(() => {
647
647
  this.asService.isBlockDocumentActive = true;
648
648
  });
649
+ this.appMetadata = this.asService.state.appMetadata;
649
650
  if (this.id && !this.label) {
650
651
  this.label = this.id;
651
652
  }
@@ -671,7 +672,6 @@ class DocPageComponent {
671
672
  // construct cmp module import string
672
673
  // eslint-disable-next-line
673
674
  this.cmpModuleImport = `import { ${(_a = this.cmp.metadata) === null || _a === void 0 ? void 0 : _a.moduleName} } from '@eui/${(_b = this.cmp.metadata) === null || _b === void 0 ? void 0 : _b.subEntryName}';`;
674
- console.log(this.cmpModuleImport);
675
675
  }
676
676
  }
677
677
  catch (e) {
@@ -687,15 +687,10 @@ class DocPageComponent {
687
687
  console.log(`Fetching API url from : ${this.apiUrl}`);
688
688
  setTimeout(() => {
689
689
  this.apiUrlSafe = this.sanitizer.bypassSecurityTrustResourceUrl(this.apiUrl);
690
- // setTimeout(() => {
691
- // const iFrame: HTMLIFrameElement = <HTMLIFrameElement>document.getElementById('iframe_api');
692
- // console.log(iFrame);
693
- // const iFrameContent = iFrame.contentWindow;
694
- // console.log(iFrameContent);
695
- // });
696
690
  });
697
691
  }
698
692
  catch (e) {
693
+ console.log(e);
699
694
  }
700
695
  setTimeout(() => {
701
696
  let tab = this.TABS_DEF.filter(t => t.id === this.fragmentId)[0];
@@ -726,7 +721,6 @@ class DocPageComponent {
726
721
  this.isNavClicked = false;
727
722
  }
728
723
  _scrollToFragment(fragmentId, tabIndex, init, changeTab) {
729
- // console.log(`Navigating to fragment: ${fragmentId} - tabIndex: ${tabIndex}`);
730
724
  if (init) {
731
725
  if (this.tabsContent) {
732
726
  this.tabsContent.changeTab(tabIndex);
@@ -791,20 +785,12 @@ class DocPageComponent {
791
785
  const name = pathNameArray[pathNameArray.length - 1];
792
786
  let category = pathNameArray[pathNameArray.length - 2];
793
787
  let protocolGen = protocol, hostGen = host;
794
- let docTypeRoot;
795
788
  if (host.indexOf('localhost') > -1) {
796
789
  protocolGen = 'https:';
797
790
  hostGen = 'euidev.ecdevops.eu';
798
791
  }
799
- if (name.indexOf('ux-') > -1) {
800
- docTypeRoot = 'eui-docs-eui-13.x';
801
- }
802
- else if (name.indexOf('eui-') > -1) {
803
- docTypeRoot = 'eui-docs-eui-13.x';
804
- }
805
- else if (name.indexOf('ecl-') > -1) {
806
- docTypeRoot = 'eui-docs-ecl-13.x';
807
- }
792
+ const appVersionNumber = this.appMetadata.appVersion.split('.')[0];
793
+ const docTypeRoot = `eui-docs-eui-${appVersionNumber}.x`;
808
794
  if (category === 'layout-components' || category === 'externals') {
809
795
  category = 'components';
810
796
  }
@@ -814,6 +800,7 @@ class DocPageComponent {
814
800
  }
815
801
  const formattedName = this._camelCaseString(name + '-' + category.slice(0, -1), '-', true);
816
802
  const docPath = `${protocolGen}//${hostGen}/${docTypeRoot}/${category}/${formattedName}.html`;
803
+ console.log(`fetching API from: ${docPath}`);
817
804
  return docPath;
818
805
  }
819
806
  _camelCaseString(string, separator, first) {