@c8y/ngx-components 1021.55.1 → 1021.55.2

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.
@@ -1 +1 @@
1
- {"version":3,"file":"workspace-configuration.component.d.ts","sourceRoot":"","sources":["../../../../datapoint-explorer/view/configuration/workspace-configuration.component.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,YAAY,EAGZ,SAAS,EACT,MAAM,EAEN,aAAa,EACd,MAAM,eAAe,CAAC;AACvB,OAAO,EAA0B,SAAS,EAAe,MAAM,gBAAgB,CAAC;AAUhF,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AACzE,OAAO,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAC;;AAMzE,qBAMa,wBAAyB,YAAW,MAAM,EAAE,SAAS;IACvD,aAAa,EAAE,2BAA2B,CAAC;IAC1C,qBAAqB,4CAAmD;IAElF,oBAAoB,EAAE,sBAAsB,CAAC;IAC7C,cAAc,EAAE,sBAAsB,EAAE,CAAM;IAC9C,uBAAuB,EAAE,SAAS,CAAC;IACnC,mBAAmB,2CAAqD;IACxE,mBAAmB,yBAAmC;IAEtD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAuB;IACnD,OAAO,CAAC,QAAQ,CAAC,6BAA6B,CAAyC;IACvF,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAA+B;IACnE,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAA4B;IAC7D,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA0B;IACzD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;IAEzC,QAAQ,IAAI,IAAI;IAMhB,WAAW,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IAMzC,SAAS,CAAC,gBAAgB,CAAC,EAAE,2BAA2B,GAAG,IAAI;IAsB/D,mBAAmB,CAAC,QAAQ,EAAE,OAAO,EAAE,aAAa,EAAE,sBAAsB,GAAG,IAAI;IAYnF,wBAAwB,CAAC,aAAa,EAAE,sBAAsB,GAAG,IAAI;IAYrE,mBAAmB,CAAC,aAAa,EAAE,sBAAsB,GAAG,IAAI;IAShE,QAAQ,IAAI,IAAI;IASV,WAAW,CAAC,aAAa,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC;IAIvE,OAAO,CAAC,gBAAgB;IAMxB,OAAO,CAAC,oBAAoB;IAiB5B,OAAO,CAAC,wBAAwB;IA+BhC,OAAO,CAAC,iBAAiB;IAQzB,OAAO,CAAC,SAAS;IAOjB,OAAO,CAAC,WAAW;IAQnB,OAAO,CAAC,yBAAyB;yCA9KtB,wBAAwB;2CAAxB,wBAAwB;CAwLpC"}
1
+ {"version":3,"file":"workspace-configuration.component.d.ts","sourceRoot":"","sources":["../../../../datapoint-explorer/view/configuration/workspace-configuration.component.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,YAAY,EAGZ,SAAS,EACT,MAAM,EAEN,aAAa,EACd,MAAM,eAAe,CAAC;AACvB,OAAO,EAA0B,SAAS,EAAe,MAAM,gBAAgB,CAAC;AAUhF,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AACzE,OAAO,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAC;;AAMzE,qBAMa,wBAAyB,YAAW,MAAM,EAAE,SAAS;IACvD,aAAa,EAAE,2BAA2B,CAAC;IAC1C,qBAAqB,4CAAmD;IAElF,oBAAoB,EAAE,sBAAsB,CAAC;IAC7C,cAAc,EAAE,sBAAsB,EAAE,CAAM;IAC9C,uBAAuB,EAAE,SAAS,CAAC;IACnC,mBAAmB,2CAAqD;IACxE,mBAAmB,yBAAmC;IAEtD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAuB;IACnD,OAAO,CAAC,QAAQ,CAAC,6BAA6B,CAAyC;IACvF,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAA+B;IACnE,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAA4B;IAC7D,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA0B;IACzD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;IAEzC,QAAQ,IAAI,IAAI;IAMhB,WAAW,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IAMzC,SAAS,CAAC,gBAAgB,CAAC,EAAE,2BAA2B,GAAG,IAAI;IAe/D,mBAAmB,CAAC,QAAQ,EAAE,OAAO,EAAE,aAAa,EAAE,sBAAsB,GAAG,IAAI;IAYnF,wBAAwB,CAAC,aAAa,EAAE,sBAAsB,GAAG,IAAI;IAYrE,mBAAmB,CAAC,aAAa,EAAE,sBAAsB,GAAG,IAAI;IAShE,QAAQ,IAAI,IAAI;IASV,WAAW,CAAC,aAAa,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC;IAIvE,OAAO,CAAC,gBAAgB;IAMxB,OAAO,CAAC,oBAAoB;IA0B5B,OAAO,CAAC,wBAAwB;IA+BhC,OAAO,CAAC,iBAAiB;IAQzB,OAAO,CAAC,SAAS;IAOjB,OAAO,CAAC,WAAW;IAQnB,OAAO,CAAC,yBAAyB;yCAhLtB,wBAAwB;2CAAxB,wBAAwB;CA0LpC"}
@@ -1 +1 @@
1
- {"version":3,"file":"charts.component.d.ts","sourceRoot":"","sources":["../../echart/charts.component.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,UAAU,EACV,YAAY,EAGZ,SAAS,EACT,SAAS,EACT,MAAM,EAGP,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAgB,MAAM,SAAS,CAAC;AACpE,OAAO,EAEL,oBAAoB,EACpB,yBAAyB,EACzB,2BAA2B,EAI5B,MAAM,UAAU,CAAC;AAClB,OAAO,EAA4C,UAAU,EAAM,MAAM,MAAM,CAAC;AAGhF,OAAO,EAKL,+BAA+B,EAKhC,MAAM,qBAAqB,CAAC;AAe7B,OAAO,EAAgC,MAAM,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAU3E,OAAO,EAAE,QAAQ,EAAa,MAAM,qCAAqC,CAAC;;AAE1E,qBA8Ba,eAAgB,YAAW,SAAS,EAAE,MAAM,EAAE,SAAS;IAClE,YAAY,EAAE,UAAU,CAAC,aAAa,CAAC,CAAC;IACxC,eAAe,EAAG,OAAO,CAAC;IAC1B,YAAY,UAAS;IACrB,MAAM,EAAE,MAAM,EAAE,CAAM;IACtB,MAAM,EAAE,MAAM,EAAE,CAAM;IACtB,cAAc,UAAS;IACd,MAAM,EAAG,2BAA2B,CAAC;IACrC,MAAM,EAAG,+BAA+B,CAAC;IACxC,qBAAqB;kBACnB,IAAI;gBACN,IAAI;mBACD,QAAQ,CAAC,IAAI,CAAC;OACtB;IACK,yBAAyB,yEAE/B;IACM,kBAAkB,0CAAiD;IACnE,qBAAqB,uCAA8C;IACnE,mBAAmB,wBAA+B;IACxC,KAAK,EAAE,UAAU,CAAC;IACtC,OAAO,CAAC,oBAAoB,CAA0C;IAEtE,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAoC;IACvE,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAiC;IACvE,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAgC;IACrE,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAA8B;IACjE,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAA8B;IACjE,OAAO,CAAC,QAAQ,CAAC,iCAAiC,CAA6C;;IAkC/F,WAAW;IAIX,QAAQ;IASR,WAAW;IAIX,WAAW,CAAC,EAAE,EAAE,OAAO;IA0EvB,YAAY,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE;YAAE,QAAQ,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,GAAG,IAAI;IA8D1D,YAAY,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO;IAIlC,WAAW,CAAC,OAAO,EAAE,GAAG,GAAG,OAAO;IAIlC,WAAW,IAAI,IAAI;IAwBnB,YAAY,IAAI,IAAI;IA0BpB,QAAQ,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,EACzC,IAAI,EAAE,CAAC,EACP,IAAI,EAAE,MAAM,GACX,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,IAAI;IAQnC,OAAO,CAAC,sBAAsB;IAiB9B,OAAO,CAAC,iBAAiB;IA0BzB,OAAO,CAAC,iBAAiB;YAuCX,mBAAmB;IA6BjC,OAAO,CAAC,uBAAuB;YAqBjB,eAAe;YAoBf,eAAe;IA+E7B,OAAO,CAAC,yBAAyB;IA4CjC,OAAO,CAAC,qBAAqB;IAY7B,OAAO,CAAC,YAAY;yCA3jBT,eAAe;2CAAf,eAAe;CAgmB3B"}
1
+ {"version":3,"file":"charts.component.d.ts","sourceRoot":"","sources":["../../echart/charts.component.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,UAAU,EACV,YAAY,EAGZ,SAAS,EACT,SAAS,EACT,MAAM,EAGP,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAgB,MAAM,SAAS,CAAC;AACpE,OAAO,EAEL,oBAAoB,EACpB,yBAAyB,EACzB,2BAA2B,EAI5B,MAAM,UAAU,CAAC;AAClB,OAAO,EAA4C,UAAU,EAAM,MAAM,MAAM,CAAC;AAGhF,OAAO,EAKL,+BAA+B,EAKhC,MAAM,qBAAqB,CAAC;AAe7B,OAAO,EAAgC,MAAM,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAU3E,OAAO,EAAE,QAAQ,EAAa,MAAM,qCAAqC,CAAC;;AAE1E,qBA2Ba,eAAgB,YAAW,SAAS,EAAE,MAAM,EAAE,SAAS;IAClE,YAAY,EAAE,UAAU,CAAC,aAAa,CAAC,CAAC;IACxC,eAAe,EAAG,OAAO,CAAC;IAC1B,YAAY,UAAS;IACrB,MAAM,EAAE,MAAM,EAAE,CAAM;IACtB,MAAM,EAAE,MAAM,EAAE,CAAM;IACtB,cAAc,UAAS;IACd,MAAM,EAAG,2BAA2B,CAAC;IACrC,MAAM,EAAG,+BAA+B,CAAC;IACxC,qBAAqB;kBACnB,IAAI;gBACN,IAAI;mBACD,QAAQ,CAAC,IAAI,CAAC;OACtB;IACK,yBAAyB,yEAE/B;IACM,kBAAkB,0CAAiD;IACnE,qBAAqB,uCAA8C;IACnE,mBAAmB,wBAA+B;IACxC,KAAK,EAAE,UAAU,CAAC;IACtC,OAAO,CAAC,oBAAoB,CAA0C;IAEtE,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAoC;IACvE,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAiC;IACvE,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAgC;IACrE,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAA8B;IACjE,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAA8B;IACjE,OAAO,CAAC,QAAQ,CAAC,iCAAiC,CAA6C;;IAkC/F,WAAW;IAIX,QAAQ;IASR,WAAW;IAIX,WAAW,CAAC,EAAE,EAAE,OAAO;IAwEvB,YAAY,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE;YAAE,QAAQ,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,GAAG,IAAI;IAoC1D,YAAY,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO;IAIlC,WAAW,CAAC,OAAO,EAAE,GAAG,GAAG,OAAO;IAIlC,WAAW,IAAI,IAAI;IAgBnB,YAAY,IAAI,IAAI;IA0BpB,QAAQ,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,EACzC,IAAI,EAAE,CAAC,EACP,IAAI,EAAE,MAAM,GACX,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,IAAI;IAQnC,OAAO,CAAC,sBAAsB;IAe9B,OAAO,CAAC,iBAAiB;IA0BzB,OAAO,CAAC,iBAAiB;YA8BX,mBAAmB;IA6BjC,OAAO,CAAC,uBAAuB;YAqBjB,eAAe;YAoBf,eAAe;IA4E7B,OAAO,CAAC,yBAAyB;IA4CjC,OAAO,CAAC,qBAAqB;IAY7B,OAAO,CAAC,YAAY;yCAzgBT,eAAe;2CAAf,eAAe;CAqiB3B"}
@@ -39,9 +39,7 @@ export class WorkspaceConfigComponent {
39
39
  }
40
40
  }
41
41
  addConfig(duplicatedConfig) {
42
- const name = uniqueNamesGenerator({
43
- dictionaries: [adjectives, nouns]
44
- });
42
+ const name = uniqueNamesGenerator({ dictionaries: [adjectives, nouns] });
45
43
  const workspace = {
46
44
  id: new Date().toISOString(),
47
45
  label: name,
@@ -50,11 +48,9 @@ export class WorkspaceConfigComponent {
50
48
  if (duplicatedConfig) {
51
49
  workspace.config = duplicatedConfig;
52
50
  }
53
- this.currentConfiguration = { ...workspace };
54
- this.configurations.unshift(workspace);
51
+ this.configurations = [workspace, ...this.configurations];
55
52
  this.initWorkspaceForm();
56
- this.workspaceConfigurationService.saveConfigurations(this.configurations, this.currentConfiguration.id);
57
- this.onConfigurationChange.emit(this.currentConfiguration.config);
53
+ this.changeConfiguration(true, workspace);
58
54
  }
59
55
  changeConfiguration(selected, configuration) {
60
56
  if (!selected) {
@@ -97,6 +93,15 @@ export class WorkspaceConfigComponent {
97
93
  config: JSON.stringify(this.updatedConfig)
98
94
  };
99
95
  this.workspaceConfigurationService.saveConfigurations(this.configurations, this.currentConfiguration.id);
96
+ const control = this.configurationsFormGroup.controls['configurations'];
97
+ const index = this.configurations.findIndex(c => c.id === this.currentConfiguration.id);
98
+ if (index !== -1) {
99
+ control.at(index).patchValue({
100
+ label: this.currentConfiguration.label,
101
+ config: this.currentConfiguration.config,
102
+ id: this.currentConfiguration.id
103
+ });
104
+ }
100
105
  this.router.navigate([], { queryParams });
101
106
  }
102
107
  initializeConfigurations() {
@@ -166,4 +171,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
166
171
  }], onConfigurationChange: [{
167
172
  type: Output
168
173
  }] } });
169
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya3NwYWNlLWNvbmZpZ3VyYXRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vZGF0YXBvaW50LWV4cGxvcmVyL3ZpZXcvY29uZmlndXJhdGlvbi93b3Jrc3BhY2UtY29uZmlndXJhdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9kYXRhcG9pbnQtZXhwbG9yZXIvdmlldy9jb25maWd1cmF0aW9uL3dvcmtzcGFjZS1jb25maWd1cmF0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMvQyxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUdMLE1BQU0sRUFFUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQWEsV0FBVyxFQUFhLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2hGLE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsbUJBQW1CLEVBQ25CLFVBQVUsRUFDVixPQUFPLEVBQ1AsV0FBVyxFQUNaLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBR3RELE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7Ozs7QUFReEQsTUFBTSxPQUFPLHdCQUF3QjtJQU5yQztRQVFZLDBCQUFxQixHQUFHLElB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LENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztTQUNuQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8seUJBQXlCO1FBQy9CLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ2xGLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUNsQixPQUFPO1FBQ1QsQ0FBQztRQUNELE1BQU0sRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLEdBQUcsWUFBWSxDQUFDO1FBQzlDLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUM5RCxJQUFJLENBQUMsNkJBQTZCLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDMUUsQ0FBQztJQUNILENBQUM7K0dBdkxVLHdCQUF3QjttR0FBeEIsd0JBQXdCLDhNQ2xDckMsdzlKQTZJQSwyQ0Q3R1ksVUFBVSxpekVBQUUsZ0JBQWdCLHNsQkFBRSxXQUFXLDhCQUFFLFVBQVUseUxBQUUsYUFBYTs7NEZBRW5FLHdCQUF3QjtrQkFOcEMsU0FBUzsrQkFDRSxzQkFBc0IsY0FFcEIsSUFBSSxXQUNQLENBQUMsVUFBVSxFQUFFLGdCQUFnQixFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsYUFBYSxDQUFDOzhCQUd0RSxhQUFhO3NCQUFyQixLQUFLO2dCQUNJLHFCQUFxQjtzQkFBOUIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEExMXlNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgaW5qZWN0LFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlc1xufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1BcnJheSwgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1xuICBDbGlwYm9hcmRTZXJ2aWNlLFxuICBDb250ZXh0Um91dGVTZXJ2aWNlLFxuICBDb3JlTW9kdWxlLFxuICBnZXR0ZXh0LFxuICBWaWV3Q29udGV4dFxufSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcbmltcG9ydCB7IEJzRHJvcGRvd25Nb2R1bGUgfSBmcm9tICduZ3gtYm9vdHN0cmFwL2Ryb3Bkb3duJztcbmltcG9ydCB7IFRvb2x0aXBNb2R1bGUgfSBmcm9tICduZ3gtYm9vdHN0cmFwL3Rvb2x0aXAnO1xuaW1wb3J0IHsgV29ya3NwYWNlQ29uZmlndXJhdGlvbiB9IGZyb20gJy4vd29ya3NwYWNlLWNvbmZpZ3VyYXRpb24ubW9kZWwnO1xuaW1wb3J0IHsgRGF0YXBvaW50c0dyYXBoV2lkZ2V0Q29uZmlnIH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cy9lY2hhcnQnO1xuaW1wb3J0IHsgV29ya3NwYWNlQ29uZmlndXJhdGlvblNlcnZpY2UgfSBmcm9tICcuL3dvcmtzcGFjZS1jb25maWd1cmF0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyB1bmlxdWVOYW1lc0dlbmVyYXRvciB9IGZyb20gJ3VuaXF1ZS1uYW1lcy1nZW5lcmF0b3InO1xuaW1wb3J0IHsgYWRqZWN0aXZlcywgbm91bnMgfSBmcm9tICcuL25hbWluZy1kaWN0aW9uYXJ5JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYzh5LXdvcmtzcGFjZS1jb25maWcnLFxuICB0ZW1wbGF0ZVVybDogJy4vd29ya3NwYWNlLWNvbmZpZ3VyYXRpb24uY29tcG9uZW50Lmh0bWwnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29yZU1vZHVsZSwgQnNEcm9wZG93bk1vZHVsZSwgRm9ybXNNb2R1bGUsIEExMXlNb2R1bGUsIFRvb2x0aXBNb2R1bGVdXG59KVxuZXhwb3J0IGNsYXNzIFdvcmtzcGFjZUNvbmZpZ0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgQElucHV0KCkgdXBkYXRlZENvbmZpZzogRGF0YXBvaW50c0dyYXBoV2lkZ2V0Q29uZmlnO1xuICBAT3V0cHV0KCkgb25Db25maWd1cmF0aW9uQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRhcG9pbnRzR3JhcGhXaWRnZXRDb25maWc+KCk7XG5cbiAgY3VycmVudENvbmZpZ3VyYXRpb246IFdvcmtzcGFjZUNvbmZpZ3VyYXRpb247XG4gIGNvbmZpZ3VyYXRpb25zOiBXb3Jrc3BhY2VDb25maWd1cmF0aW9uW10gPSBbXTtcbiAgY29uZmlndXJhdGlvbnNGb3JtR3JvdXA6IEZvcm1Hcm91cDtcbiAgYWN0aXZlQ29uZmlnVG9vbHRpcCA9IGdldHRleHQoJ0FjdGl2ZSBjb25maWd1cmF0aW9uIGNhbm5vdCBiZSByZW1vdmVkJyk7XG4gIHJlbW92ZUNvbmZpZ1Rvb2x0aXAgPSBnZXR0ZXh0KCdSZW1vdmUgY29uZmlndXJhdGlvbicpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgZm9ybUJ1aWxkZXIgPSBpbmplY3QoRm9ybUJ1aWxkZXIpO1xuICBwcml2YXRlIHJlYWRvbmx5IHdvcmtzcGFjZUNvbmZpZ3VyYXRpb25TZXJ2aWNlID0gaW5qZWN0KFdvcmtzcGFjZUNvbmZpZ3VyYXRpb25TZXJ2aWNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBjb250ZXh0Um91dGVTZXJ2aWNlID0gaW5qZWN0KENvbnRleHRSb3V0ZVNlcnZpY2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IGNsaXBib2FyZFNlcnZpY2UgPSBpbmplY3QoQ2xpcGJvYXJkU2VydmljZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgYWN0aXZhdGVkUm91dGUgPSBpbmplY3QoQWN0aXZhdGVkUm91dGUpO1xuICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlciA9IGluamVjdChSb3V0ZXIpO1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaW5pdGlhbGl6ZUNvbnRleHRTb3VyY2VJZCgpO1xuICAgIHRoaXMuaW5pdGlhbGl6ZUNvbmZpZ3VyYXRpb25zKCk7XG4gICAgdGhpcy5pbml0V29ya3NwYWNlRm9ybSgpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzLnVwZGF0ZWRDb25maWcgJiYgIWNoYW5nZXMudXBkYXRlZENvbmZpZy5maXJzdENoYW5nZSkge1xuICAgICAgdGhpcy51cGRhdGVDb25maWd1cmF0aW9ucygpO1xuICAgIH1cbiAgfVxuXG4gIGFkZENvbmZpZyhkdXBsaWNhdGVkQ29uZmlnPzogRGF0YXBvaW50c0dyYXBoV2lkZ2V0Q29uZmlnKTogdm9pZCB7XG4gICAgY29uc3QgbmFtZSA9IHVuaXF1ZU5hbWVzR2VuZXJhdG9yKHtcbiAgICAgIGRpY3Rpb25hcmllczogW2FkamVjdGl2ZXMsIG5vdW5zXVxuICAgIH0pO1xuICAgIGNvbnN0IHdvcmtzcGFjZTogV29ya3NwYWNlQ29uZmlndXJhdGlvbiA9IHtcbiAgICAgIGlkOiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCksXG4gICAgICBsYWJlbDogbmFtZSxcbiAgICAgIGNvbmZpZzogeyBkYXRhcG9pbnRzOiBbXSwgYWxhcm1zRXZlbnRzQ29uZmlnczogW10gfVxuICAgIH07XG4gICAgaWYgKGR1cGxpY2F0ZWRDb25maWcpIHtcbiAgICAgIHdvcmtzcGFjZS5jb25maWcgPSBkdXBsaWNhdGVkQ29uZmlnO1xuICAgIH1cbiAgICB0aGlzLmN1cnJlbnRDb25maWd1cmF0aW9uID0geyAuLi53b3Jrc3BhY2UgfTtcbiAgICB0aGlzLmNvbmZpZ3VyYXRpb25zLnVuc2hpZnQod29ya3NwYWNlKTtcbiAgICB0aGlzLmluaXRXb3Jrc3BhY2VGb3JtKCk7XG4gICAgdGhpcy53b3Jrc3BhY2VDb25maWd1cmF0aW9uU2VydmljZS5zYXZlQ29uZmlndXJhdGlvbnMoXG4gICAgICB0aGlzLmNvbmZpZ3VyYXRpb25zLFxuICAgICAgdGhpcy5jdXJyZW50Q29uZmlndXJhdGlvbi5pZFxuICAgICk7XG4gICAgdGhpcy5vbkNvbmZpZ3VyYXRpb25DaGFuZ2UuZW1pdCh0aGlzLmN1cnJlbnRDb25maWd1cmF0aW9uLmNvbmZpZyk7XG4gIH1cblxuICBjaGFuZ2VDb25maWd1cmF0aW9uKHNlbGVjdGVkOiBib29sZWFuLCBjb25maWd1cmF0aW9uOiBXb3Jrc3BhY2VDb25maWd1cmF0aW9uKTogdm9pZCB7XG4gICAgaWYgKCFzZWxlY3RlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmN1cnJlbnRDb25maWd1cmF0aW9uID0gY29uZmlndXJhdGlvbjtcbiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShcbiAgICAgIHRoaXMud29ya3NwYWNlQ29uZmlndXJhdGlvblNlcnZpY2UuTE9DQUxfU1RPUkFHRV9ERUZBVUxUX0lEX0tFWSxcbiAgICAgIHRoaXMuY3VycmVudENvbmZpZ3VyYXRpb24uaWRcbiAgICApO1xuICAgIHRoaXMub25Db25maWd1cmF0aW9uQ2hhbmdlLmVtaXQoY29uZmlndXJhdGlvbi5jb25maWcpO1xuICB9XG5cbiAgdXBkYXRlQ29uZmlndXJhdGlvbkxhYmVsKGNvbmZpZ3VyYXRpb246IFdvcmtzcGFjZUNvbmZpZ3VyYXRpb24pOiB2b2lkIHtcbiAgICB0aGlzLmNvbmZpZ3VyYXRpb25zID0gdGhpcy5jb25maWd1cmF0aW9ucy5tYXAoYyA9PlxuICAgICAgYy5pZCA9PT0gY29uZmlndXJhdGlvbi5pZCA/IGNvbmZpZ3VyYXRpb24gOiBjXG4gICAgKTtcbiAgICB0aGlzLndvcmtzcGFjZUNvbmZpZ3VyYXRpb25TZXJ2aWNlLnNhdmVDb25maWd1cmF0aW9ucyhcbiAgICAgIHRoaXMuY29uZmlndXJhdGlvbnMsXG4gICAgICB0aGlzLmN1cnJlbnRDb25maWd1cmF0aW9uPy5pZCB8fCAnJ1xuICAgICk7XG4gICAgdGhpcy5jdXJyZW50Q29uZmlndXJhdGlvbiA9IGNvbmZpZ3VyYXRpb247XG4gICAgdGhpcy5vbkNvbmZpZ3VyYXRpb25DaGFuZ2UuZW1pdChjb25maWd1cmF0aW9uLmNvbmZpZyk7XG4gIH1cblxuICBkZWxldGVDb25maWd1cmF0aW9uKGNvbmZpZ3VyYXRpb246IFdvcmtzcGFjZUNvbmZpZ3VyYXRpb24pOiB2b2lkIHtcbiAgICB0aGlzLmNvbmZpZ3VyYXRpb25zID0gdGhpcy5jb25maWd1cmF0aW9ucy5maWx0ZXIoYyA9PiBjLmlkICE9PSBjb25maWd1cmF0aW9uLmlkKTtcbiAgICB0aGlzLmluaXRXb3Jrc3BhY2VGb3JtKCk7XG4gICAgdGhpcy53b3Jrc3BhY2VDb25maWd1cmF0aW9uU2VydmljZS5zYXZlQ29uZmlndXJhdGlvbnMoXG4gICAgICB0aGlzLmNvbmZpZ3VyYXRpb25zLFxuICAgICAgdGhpcy5jdXJyZW50Q29uZmlndXJhdGlvbj8uaWQgfHwgJydcbiAgICApO1xuICB9XG5cbiAgY2xlYXJBbGwoKTogdm9pZCB7XG4gICAgdGhpcy5jb25maWd1cmF0aW9ucyA9IFt0aGlzLmN1cnJlbnRDb25maWd1cmF0aW9uXTtcbiAgICB0aGlzLmluaXRXb3Jrc3BhY2VGb3JtKCk7XG4gICAgdGhpcy53b3Jrc3BhY2VDb25maWd1cmF0aW9uU2VydmljZS5zYXZlQ29uZmlndXJhdGlvbnMoXG4gICAgICB0aGlzLmNvbmZpZ3VyYXRpb25zLFxuICAgICAgdGhpcy5jdXJyZW50Q29uZmlndXJhdGlvbj8uaWQgfHwgJydcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgc2hhcmVDb25maWcoY29uZmlndXJhdGlvbjogV29ya3NwYWNlQ29uZmlndXJhdGlvbik6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMuY2xpcGJvYXJkU2VydmljZS53cml0ZVRleHQoSlNPTi5zdHJpbmdpZnkoY29uZmlndXJhdGlvbi5jb25maWcpKTtcbiAgfVxuXG4gIHByaXZhdGUgYWRkQ29uZmlnRnJvbVVybChxdWVyeVBhcmFtczogYW55KTogdm9pZCB7XG4gICAgdGhpcy5hZGRDb25maWcoKTtcbiAgICBjb25zdCBjb25maWcgPSBKU09OLnBhcnNlKHF1ZXJ5UGFyYW1zLmNvbmZpZyk7XG4gICAgdGhpcy5vbkNvbmZpZ3VyYXRpb25DaGFuZ2UuZW1pdChjb25maWcpO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVDb25maWd1cmF0aW9ucygpOiB2b2lkIHtcbiAgICB0aGlzLmN1cnJlbnRDb25maWd1cmF0aW9uLmNvbmZpZyA9IHRoaXMudXBkYXRlZENvbmZpZztcbiAgICB0aGlzLmNvbmZpZ3VyYXRpb25zID0gdGhpcy5jb25maWd1cmF0aW9ucy5tYXAoY3VycmVudENvbmZpZyA9PlxuICAgICAgY3VycmVudENvbmZpZy5pZCA9PT0gdGhpcy5jdXJyZW50Q29uZmlndXJhdGlvbi5pZCA/IHRoaXMuY3VycmVudENvbmZpZ3VyYXRpb24gOiBjdXJyZW50Q29uZmlnXG4gICAgKTtcbiAgICBjb25zdCBxdWVyeVBhcmFtcyA9IHtcbiAgICAgIGNvbmZpZ0lkOiB0aGlzLmN1cnJlbnRDb25maWd1cmF0aW9uLmlkLFxuICAgICAgbGFiZWw6IHRoaXMuY3VycmVudENvbmZpZ3VyYXRpb24ubGFiZWwsXG4gICAgICBjb25maWc6IEpTT04uc3RyaW5naWZ5KHRoaXMudXBkYXRlZENvbmZpZylcbiAgICB9O1xuICAgIHRoaXMud29ya3NwYWNlQ29uZmlndXJhdGlvblNlcnZpY2Uuc2F2ZUNvbmZpZ3VyYXRpb25zKFxuICAgICAgdGhpcy5jb25maWd1cmF0aW9ucyxcbiAgICAgIHRoaXMuY3VycmVudENvbmZpZ3VyYXRpb24uaWRcbiAgICApO1xuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtdLCB7IHF1ZXJ5UGFyYW1zIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0aWFsaXplQ29uZmlndXJhdGlvbnMoKTogdm9pZCB7XG4gICAgY29uc3QgY29uZmlndXJhdGlvbnMgPSB0aGlzLndvcmtzcGFjZUNvbmZpZ3VyYXRpb25TZXJ2aWNlLmdldENvbmZpZ3VyYXRpb25zKCk7XG4gICAgY29uc3QgZGVmYXVsdElkID0gdGhpcy53b3Jrc3BhY2VDb25maWd1cmF0aW9uU2VydmljZS5nZXREZWZhdWx0Q29uZmlndXJhdGlvbklkKCk7XG4gICAgY29uc3QgcXVlcnlQYXJhbXMgPSB0aGlzLnJvdXRlci5wYXJzZVVybCh0aGlzLnJvdXRlci51cmwpLnF1ZXJ5UGFyYW1zO1xuICAgIGlmIChjb25maWd1cmF0aW9ucy5sZW5ndGgpIHtcbiAgICAgIHRoaXMuY29uZmlndXJhdGlvbnMgPSBjb25maWd1cmF0aW9ucztcbiAgICAgIHRoaXMuY3VycmVudENvbmZpZ3VyYXRpb24gPVxuICAgICAgICB0aGlzLmNvbmZpZ3VyYXRpb25zLmZpbmQoYyA9PiBjLmlkID09PSBkZWZhdWx0SWQpIHx8IHRoaXMuY29uZmlndXJhdGlvbnNbMF07XG5cbiAgICAgIHRoaXMub25Db25maWd1cmF0aW9uQ2hhbmdlLmVtaXQodGhpcy5jdXJyZW50Q29uZmlndXJhdGlvbi5jb25maWcpO1xuICAgICAgaWYgKHF1ZXJ5UGFyYW1zPy5jb25maWdJZCAmJiAhdGhpcy5jb25maWd1cmF0aW9ucy5maW5kKGMgPT4gYy5pZCA9PT0gcXVlcnlQYXJhbXMuY29uZmlnSWQpKSB7XG4gICAgICAgIHRoaXMuYWRkQ29uZmlnRnJvbVVybChxdWVyeVBhcmFtcyk7XG4gICAgICB9IGVsc2UgaWYgKFxuICAgICAgICBxdWVyeVBhcmFtcz8uY29uZmlnSWQgJiZcbiAgICAgICAgdGhpcy5jb25maWd1cmF0aW9ucy5maW5kKGMgPT4gYy5pZCA9PT0gcXVlcnlQYXJhbXMuY29uZmlnSWQpICYmXG4gICAgICAgIHRoaXMuY3VycmVudENvbmZpZ3VyYXRpb24uaWQgIT09IHF1ZXJ5UGFyYW1zLmNvbmZpZ0lkXG4gICAgICApIHtcbiAgICAgICAgdGhpcy5jdXJyZW50Q29uZmlndXJhdGlvbiA9IHRoaXMuY29uZmlndXJhdGlvbnMuZmluZChjID0+IGMuaWQgPT09IHF1ZXJ5UGFyYW1zLmNvbmZpZ0lkKTtcbiAgICAgICAgdGhpcy5jaGFuZ2VDb25maWd1cmF0aW9uKHRydWUsIHRoaXMuY3VycmVudENvbmZpZ3VyYXRpb24pO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICghdGhpcy5jdXJyZW50Q29uZmlndXJhdGlvbikge1xuICAgICAgaWYgKE9iamVjdC5rZXlzKHF1ZXJ5UGFyYW1zKS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgdGhpcy5hZGRDb25maWcoKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgdGhpcy5hZGRDb25maWdGcm9tVXJsKHF1ZXJ5UGFyYW1zKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGluaXRXb3Jrc3BhY2VGb3JtKCk6IHZvaWQge1xuICAgIHRoaXMuY29uZmlndXJhdGlvbnNGb3JtR3JvdXAgPSB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwKHtcbiAgICAgIGNvbmZpZ3VyYXRpb25zOiB0aGlzLmZvcm1CdWlsZGVyLmFycmF5KFtdKVxuICAgIH0pO1xuXG4gICAgdGhpcy5wYXRjaEZvcm0oKTtcbiAgfVxuXG4gIHByaXZhdGUgcGF0Y2hGb3JtKCk6IHZvaWQge1xuICAgIGNvbnN0IGNvbnRyb2wgPSA8Rm9ybUFycmF5PnRoaXMuY29uZmlndXJhdGlvbnNGb3JtR3JvdXAuY29udHJvbHNbJ2NvbmZpZ3VyYXRpb25zJ107XG4gICAgdGhpcy5jb25maWd1cmF0aW9ucy5mb3JFYWNoKHdvcmtzcGFjZSA9PiB7XG4gICAgICBjb250cm9sLnB1c2godGhpcy5wYXRjaFZhbHVlcyh3b3Jrc3BhY2UpKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgcGF0Y2hWYWx1ZXMod29ya3NwYWNlOiBXb3Jrc3BhY2VDb25maWd1cmF0aW9uKTogRm9ybUdyb3VwIHtcbiAgICByZXR1cm4gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XG4gICAgICBsYWJlbDogW3dvcmtzcGFjZS5sYWJlbF0sXG4gICAgICBjb25maWc6IFt3b3Jrc3BhY2UuY29uZmlnXSxcbiAgICAgIGlkOiBbd29ya3NwYWNlLmlkXVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0aWFsaXplQ29udGV4dFNvdXJjZUlkKCk6IHZvaWQge1xuICAgIGNvbnN0IHJvdXRlQ29udGV4dCA9IHRoaXMuY29udGV4dFJvdXRlU2VydmljZS5nZXRDb250ZXh0RGF0YSh0aGlzLmFjdGl2YXRlZFJvdXRlKTtcbiAgICBpZiAoIXJvdXRlQ29udGV4dCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCB7IGNvbnRleHQsIGNvbnRleHREYXRhIH0gPSByb3V0ZUNvbnRleHQ7XG4gICAgaWYgKFtWaWV3Q29udGV4dC5EZXZpY2UsIFZpZXdDb250ZXh0Lkdyb3VwXS5pbmNsdWRlcyhjb250ZXh0KSkge1xuICAgICAgdGhpcy53b3Jrc3BhY2VDb25maWd1cmF0aW9uU2VydmljZS5jb250ZXh0SWRTaWduYWwuc2V0KGNvbnRleHREYXRhPy5pZCk7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2XG4gIGNsYXNzPVwiZHJvcGRvd25cIlxuICAjYWN0aW9uYmFyX2Ryb3Bkb3duPVwiYnMtZHJvcGRvd25cIlxuICBbY2RrVHJhcEZvY3VzXT1cImFjdGlvbmJhcl9kcm9wZG93bi5pc09wZW5cIlxuICBkcm9wZG93blxuICBbaW5zaWRlQ2xpY2tdPVwidHJ1ZVwiXG4+XG5cbiAgPGJ1dHRvblxuICAgIGNsYXNzPVwiZHJvcGRvd24tdG9nZ2xlIGZvcm0tY29udHJvbCBsLWgtdGlnaHQgZC1mbGV4IGEtaS1jZW50ZXJcIlxuICAgIGF0dHIuYXJpYS1sYWJlbD1cInt7IGN1cnJlbnRDb25maWd1cmF0aW9uLmxhYmVsIH19XCJcbiAgICB0b29sdGlwPVwie3sgJ1NlbGVjdGVkIGNvbmZpZ3VyYXRpb24nIHwgdHJhbnNsYXRlIH19XCJcbiAgICBwbGFjZW1lbnQ9XCJ0b3BcIlxuICAgIGNvbnRhaW5lcj1cImJvZHlcIlxuICAgIGRhdGEtY3k9XCJjdXJyZW50LWNvbmZpZ3VyYXRpb24tZHJvcGRvd24tYnV0dG9uXCJcbiAgICBbYWRhcHRpdmVQb3NpdGlvbl09XCJmYWxzZVwiXG4gICAgW2RlbGF5XT1cIjUwMFwiXG4gICAgZHJvcGRvd25Ub2dnbGVcbiAgPlxuICAgIDxpXG4gICAgICBjbGFzcz1cIm0tci00XCJcbiAgICAgIGM4eUljb249XCJsaXN0XCJcbiAgICA+PC9pPlxuICAgIDxkaXYgY2xhc3M9XCJkLWNvbCB0ZXh0LWxlZnQgZml0LXdcIj5cbiAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC0xMlwiPlxuICAgICAgICB7eyAnQ29uZmlndXJhdGlvbicgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvc3Bhbj5cbiAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC0xMCB0ZXh0LW11dGVkIHRleHQtdHJ1bmNhdGVcIj5cbiAgICAgICAge3sgY3VycmVudENvbmZpZ3VyYXRpb24ubGFiZWwgfX1cbiAgICAgIDwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgICA8c3BhbiBjbGFzcz1cImNhcmV0IG0tci0xNiBtLWwtNFwiPjwvc3Bhbj5cbiAgPC9idXR0b24+XG4gIDxkaXZcbiAgICBjbGFzcz1cImRyb3Bkb3duLW1lbnUgZHJvcGRvd24tbWVudS13aWRlIGRyb3Bkb3duLW1lbnUtYWN0aW9uLWJhclwiXG4gICAgKmRyb3Bkb3duTWVudVxuICA+XG4gICAgPGRpdiBjbGFzcz1cInN0aWNreS10b3Agc2VwYXJhdG9yLWJvdHRvbSBwLXQtOCBwLWItOCBwLWwtMTYgcC1yLTE2XCI+XG4gICAgICA8cD5cbiAgICAgICAgPHN0cm9uZz57eyAnRGF0YSBleHBsb3JlciBjb25maWd1cmF0aW9ucycgfCB0cmFuc2xhdGUgfX08L3N0cm9uZz5cbiAgICAgIDwvcD5cbiAgICAgIDxwPlxuICAgICAgICA8c21hbGw+e3sgJ0Vhc2lseSBzd2l0Y2ggYW5kIG1hbmFnZSBjb25maWd1cmF0aW9ucy4nIHwgdHJhbnNsYXRlIH19PC9zbWFsbD5cbiAgICAgIDwvcD5cbiAgICA8L2Rpdj5cbiAgICA8Yzh5LWxpc3QtZ3JvdXAgY2xhc3M9XCJuby1ib3JkZXItbGFzdFwiPlxuICAgICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJjb25maWd1cmF0aW9uc0Zvcm1Hcm91cFwiPlxuICAgICAgICA8ZGl2IGZvcm1BcnJheU5hbWU9XCJjb25maWd1cmF0aW9uc1wiPlxuICAgICAgICAgIDxjOHktbGlcbiAgICAgICAgICAgIGNsYXNzPVwicC0wXCJcbiAgICAgICAgICAgICpuZ0Zvcj1cIlxuICAgICAgICAgICAgICBsZXQgY29uZmlndXJhdGlvbiBvZiBjb25maWd1cmF0aW9uc0Zvcm1Hcm91cC5jb250cm9scy5jb25maWd1cmF0aW9uc1snY29udHJvbHMnXTtcbiAgICAgICAgICAgICAgbGV0IGkgPSBpbmRleFxuICAgICAgICAgICAgXCJcbiAgICAgICAgICAgIFtkZW5zZV09XCJ0cnVlXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8Yzh5LWxpLXJhZGlvXG4gICAgICAgICAgICAgIFtzZWxlY3RlZF09XCJjb25maWd1cmF0aW9uLnZhbHVlLmlkID09PSBjdXJyZW50Q29uZmlndXJhdGlvbi5pZFwiXG4gICAgICAgICAgICAgIChvblNlbGVjdCk9XCJjaGFuZ2VDb25maWd1cmF0aW9uKCRldmVudCwgY29uZmlndXJhdGlvbi52YWx1ZSlcIlxuICAgICAgICAgICAgPjwvYzh5LWxpLXJhZGlvPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhLWktY2VudGVyIGdhcC04XCI+XG4gICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZsZXgtZ3JvdyBtaW4td2lkdGgtMFwiXG4gICAgICAgICAgICAgICAgW2Zvcm1Hcm91cE5hbWVdPVwiaVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8bGFiZWxcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZWRpdGFibGVcIlxuICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAgICAgICB1cGRhdGVkOlxuICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZ3VyYXRpb24uY29udHJvbHMubGFiZWwudG91Y2hlZCAmJiBjb25maWd1cmF0aW9uLmNvbnRyb2xzLmxhYmVsLmRpcnR5XG4gICAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgICAgICAgICAgICBbc3R5bGUud2lkdGguY2hdPVwiY29uZmlndXJhdGlvbi52YWx1ZS5sYWJlbCB8fCAyNVwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ0NvbmZpZ3VyYXRpb24gbGFiZWwnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJ7eyAnQ29uZmlndXJhdGlvbiAxJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgYXV0b2NvbXBsZXRlPVwib2ZmXCJcbiAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWRcbiAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwibGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICAoYmx1cik9XCJ1cGRhdGVDb25maWd1cmF0aW9uTGFiZWwoY29uZmlndXJhdGlvbi52YWx1ZSlcIlxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgtbm9ncm93IGQtZmxleCBnYXAtOFwiPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuLWRvdCBidG5cIlxuICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInRHVwbGljYXRlIGNvbmZpZ3VyYXRpb24nIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgIHRvb2x0aXA9XCJ7eyAnRHVwbGljYXRlIGNvbmZpZ3VyYXRpb24nIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImxlZnRcIlxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImFkZENvbmZpZyhjb25maWd1cmF0aW9uLnZhbHVlLmNvbmZpZylcIlxuICAgICAgICAgICAgICAgICAgW2RlbGF5XT1cIjUwMFwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPGkgYzh5SWNvbj1cImNvcHlcIj48L2k+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0bi1kb3QgYnRuIGJ0bi1kb3QtLWRhbmdlclwiXG4gICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidSZW1vdmUgY29uZmlndXJhdGlvbnMnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgIHRvb2x0aXA9XCJ7e1xuICAgICAgICAgICAgICAgICAgICAoY29uZmlndXJhdGlvbi52YWx1ZS5pZCA9PT0gY3VycmVudENvbmZpZ3VyYXRpb24uaWRcbiAgICAgICAgICAgICAgICAgICAgICA/IGFjdGl2ZUNvbmZpZ1Rvb2x0aXBcbiAgICAgICAgICAgICAgICAgICAgICA6IHJlbW92ZUNvbmZpZ1Rvb2x0aXBcbiAgICAgICAgICAgICAgICAgICAgKSB8IHRyYW5zbGF0ZVxuICAgICAgICAgICAgICAgICAgfX1cIlxuICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwibGVmdFwiXG4gICAgICAgICAgICAgICAgICBbZGVsYXldPVwiNTAwXCJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7IGRlbGV0ZUNvbmZpZ3VyYXRpb24oY29uZmlndXJhdGlvbi52YWx1ZSlcIlxuICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImNvbmZpZ3VyYXRpb24udmFsdWUuaWQgPT09IGN1cnJlbnRDb25maWd1cmF0aW9uLmlkXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8aSBjOHlJY29uPVwibWludXMtY2lyY2xlXCI+PC9pPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvYzh5LWxpPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZm9ybT5cbiAgICA8L2M4eS1saXN0LWdyb3VwPlxuICAgIDxkaXYgY2xhc3M9XCJzdGlja3ktYm90dG9tIHNlcGFyYXRvci10b3BcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggcC1sLTE2IHAtci0xNiBwLXQtOCBwLWItOFwiPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgY2xhc3M9XCJidG4gYnRuLWRhbmdlciBidG4tc20gZmxleC1ncm93XCJcbiAgICAgICAgICAoY2xpY2spPVwiY2xlYXJBbGwoKVwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cImNvbmZpZ3VyYXRpb25zLmxlbmd0aCA8IDJcIlxuICAgICAgICA+XG4gICAgICAgICAgPGkgW2M4eUljb25dPVwiJ2RlbGV0ZSdcIj48L2k+XG4gICAgICAgICAge3sgJ0RlbGV0ZSBhbGwgY29uZmlndXJhdGlvbnMnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgY2xhc3M9XCJidG4gYnRuLWRlZmF1bHQgYnRuLXNtIGZsZXgtZ3Jvd1wiXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgKGNsaWNrKT1cImFkZENvbmZpZygpXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxpIFtjOHlJY29uXT1cIidhZGQtY2lyY2xlLW91dGxpbmUnXCI+PC9pPlxuICAgICAgICAgIHt7ICdBZGQgY29uZmlndXJhdGlvbicgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
174
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya3NwYWNlLWNvbmZpZ3VyYXRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vZGF0YXBvaW50LWV4cGxvcmVyL3ZpZXcvY29uZmlndXJhdGlvbi93b3Jrc3BhY2UtY29uZmlndXJhdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9kYXRhcG9pbnQtZXhwbG9yZXIvdmlldy9jb25maWd1cmF0aW9uL3dvcmtzcGFjZS1jb25maWd1cmF0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMvQyxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUdMLE1BQU0sRUFFUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQWEsV0FBVyxFQUFhLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2hGLE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsbUJBQW1CLEVBQ25CLFVBQVUsRUFDVixPQUFPLEVBQ1AsV0FBVyxFQUNaLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBR3RELE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7Ozs7QUFReEQsTUFBTSxPQUFPLHdCQUF3QjtJQU5yQztRQVFZLDBCQUFxQixHQUFHLElB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Z0IsRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLGFBQWEsQ0FBQzs4QkFHdEUsYUFBYTtzQkFBckIsS0FBSztnQkFDSSxxQkFBcUI7c0JBQTlCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBMTF5TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIGluamVjdCxcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXNcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQXJyYXksIEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtcbiAgQ2xpcGJvYXJkU2VydmljZSxcbiAgQ29udGV4dFJvdXRlU2VydmljZSxcbiAgQ29yZU1vZHVsZSxcbiAgZ2V0dGV4dCxcbiAgVmlld0NvbnRleHRcbn0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5pbXBvcnQgeyBCc0Ryb3Bkb3duTW9kdWxlIH0gZnJvbSAnbmd4LWJvb3RzdHJhcC9kcm9wZG93bic7XG5pbXBvcnQgeyBUb29sdGlwTW9kdWxlIH0gZnJvbSAnbmd4LWJvb3RzdHJhcC90b29sdGlwJztcbmltcG9ydCB7IFdvcmtzcGFjZUNvbmZpZ3VyYXRpb24gfSBmcm9tICcuL3dvcmtzcGFjZS1jb25maWd1cmF0aW9uLm1vZGVsJztcbmltcG9ydCB7IERhdGFwb2ludHNHcmFwaFdpZGdldENvbmZpZyB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMvZWNoYXJ0JztcbmltcG9ydCB7IFdvcmtzcGFjZUNvbmZpZ3VyYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi93b3Jrc3BhY2UtY29uZmlndXJhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgdW5pcXVlTmFtZXNHZW5lcmF0b3IgfSBmcm9tICd1bmlxdWUtbmFtZXMtZ2VuZXJhdG9yJztcbmltcG9ydCB7IGFkamVjdGl2ZXMsIG5vdW5zIH0gZnJvbSAnLi9uYW1pbmctZGljdGlvbmFyeSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2M4eS13b3Jrc3BhY2UtY29uZmlnJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3dvcmtzcGFjZS1jb25maWd1cmF0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvcmVNb2R1bGUsIEJzRHJvcGRvd25Nb2R1bGUsIEZvcm1zTW9kdWxlLCBBMTF5TW9kdWxlLCBUb29sdGlwTW9kdWxlXVxufSlcbmV4cG9ydCBjbGFzcyBXb3Jrc3BhY2VDb25maWdDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpIHVwZGF0ZWRDb25maWc6IERhdGFwb2ludHNHcmFwaFdpZGdldENvbmZpZztcbiAgQE91dHB1dCgpIG9uQ29uZmlndXJhdGlvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8RGF0YXBvaW50c0dyYXBoV2lkZ2V0Q29uZmlnPigpO1xuXG4gIGN1cnJlbnRDb25maWd1cmF0aW9uOiBXb3Jrc3BhY2VDb25maWd1cmF0aW9uO1xuICBjb25maWd1cmF0aW9uczogV29ya3NwYWNlQ29uZmlndXJhdGlvbltdID0gW107XG4gIGNvbmZpZ3VyYXRpb25zRm9ybUdyb3VwOiBGb3JtR3JvdXA7XG4gIGFjdGl2ZUNvbmZpZ1Rvb2x0aXAgPSBnZXR0ZXh0KCdBY3RpdmUgY29uZmlndXJhdGlvbiBjYW5ub3QgYmUgcmVtb3ZlZCcpO1xuICByZW1vdmVDb25maWdUb29sdGlwID0gZ2V0dGV4dCgnUmVtb3ZlIGNvbmZpZ3VyYXRpb24nKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IGZvcm1CdWlsZGVyID0gaW5qZWN0KEZvcm1CdWlsZGVyKTtcbiAgcHJpdmF0ZSByZWFkb25seSB3b3Jrc3BhY2VDb25maWd1cmF0aW9uU2VydmljZSA9IGluamVjdChXb3Jrc3BhY2VDb25maWd1cmF0aW9uU2VydmljZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgY29udGV4dFJvdXRlU2VydmljZSA9IGluamVjdChDb250ZXh0Um91dGVTZXJ2aWNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBjbGlwYm9hcmRTZXJ2aWNlID0gaW5qZWN0KENsaXBib2FyZFNlcnZpY2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IGFjdGl2YXRlZFJvdXRlID0gaW5qZWN0KEFjdGl2YXRlZFJvdXRlKTtcbiAgcHJpdmF0ZSByZWFkb25seSByb3V0ZXIgPSBpbmplY3QoUm91dGVyKTtcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmluaXRpYWxpemVDb250ZXh0U291cmNlSWQoKTtcbiAgICB0aGlzLmluaXRpYWxpemVDb25maWd1cmF0aW9ucygpO1xuICAgIHRoaXMuaW5pdFdvcmtzcGFjZUZvcm0oKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlcy51cGRhdGVkQ29uZmlnICYmICFjaGFuZ2VzLnVwZGF0ZWRDb25maWcuZmlyc3RDaGFuZ2UpIHtcbiAgICAgIHRoaXMudXBkYXRlQ29uZmlndXJhdGlvbnMoKTtcbiAgICB9XG4gIH1cblxuICBhZGRDb25maWcoZHVwbGljYXRlZENvbmZpZz86IERhdGFwb2ludHNHcmFwaFdpZGdldENvbmZpZyk6IHZvaWQge1xuICAgIGNvbnN0IG5hbWUgPSB1bmlxdWVOYW1lc0dlbmVyYXRvcih7IGRpY3Rpb25hcmllczogW2FkamVjdGl2ZXMsIG5vdW5zXSB9KTtcbiAgICBjb25zdCB3b3Jrc3BhY2U6IFdvcmtzcGFjZUNvbmZpZ3VyYXRpb24gPSB7XG4gICAgICBpZDogbmV3IERhdGUoKS50b0lTT1N0cmluZygpLFxuICAgICAgbGFiZWw6IG5hbWUsXG4gICAgICBjb25maWc6IHsgZGF0YXBvaW50czogW10sIGFsYXJtc0V2ZW50c0NvbmZpZ3M6IFtdIH1cbiAgICB9O1xuICAgIGlmIChkdXBsaWNhdGVkQ29uZmlnKSB7XG4gICAgICB3b3Jrc3BhY2UuY29uZmlnID0gZHVwbGljYXRlZENvbmZpZztcbiAgICB9XG4gICAgdGhpcy5jb25maWd1cmF0aW9ucyA9IFt3b3Jrc3BhY2UsIC4uLnRoaXMuY29uZmlndXJhdGlvbnNdO1xuICAgIHRoaXMuaW5pdFdvcmtzcGFjZUZvcm0oKTtcbiAgICB0aGlzLmNoYW5nZUNvbmZpZ3VyYXRpb24odHJ1ZSwgd29ya3NwYWNlKTtcbiAgfVxuXG4gIGNoYW5nZUNvbmZpZ3VyYXRpb24oc2VsZWN0ZWQ6IGJvb2xlYW4sIGNvbmZpZ3VyYXRpb246IFdvcmtzcGFjZUNvbmZpZ3VyYXRpb24pOiB2b2lkIHtcbiAgICBpZiAoIXNlbGVjdGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuY3VycmVudENvbmZpZ3VyYXRpb24gPSBjb25maWd1cmF0aW9uO1xuICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKFxuICAgICAgdGhpcy53b3Jrc3BhY2VDb25maWd1cmF0aW9uU2VydmljZS5MT0NBTF9TVE9SQUdFX0RFRkFVTFRfSURfS0VZLFxuICAgICAgdGhpcy5jdXJyZW50Q29uZmlndXJhdGlvbi5pZFxuICAgICk7XG4gICAgdGhpcy5vbkNvbmZpZ3VyYXRpb25DaGFuZ2UuZW1pdChjb25maWd1cmF0aW9uLmNvbmZpZyk7XG4gIH1cblxuICB1cGRhdGVDb25maWd1cmF0aW9uTGFiZWwoY29uZmlndXJhdGlvbjogV29ya3NwYWNlQ29uZmlndXJhdGlvbik6IHZvaWQge1xuICAgIHRoaXMuY29uZmlndXJhdGlvbnMgPSB0aGlzLmNvbmZpZ3VyYXRpb25zLm1hcChjID0+XG4gICAgICBjLmlkID09PSBjb25maWd1cmF0aW9uLmlkID8gY29uZmlndXJhdGlvbiA6IGNcbiAgICApO1xuICAgIHRoaXMud29ya3NwYWNlQ29uZmlndXJhdGlvblNlcnZpY2Uuc2F2ZUNvbmZpZ3VyYXRpb25zKFxuICAgICAgdGhpcy5jb25maWd1cmF0aW9ucyxcbiAgICAgIHRoaXMuY3VycmVudENvbmZpZ3VyYXRpb24/LmlkIHx8ICcnXG4gICAgKTtcbiAgICB0aGlzLmN1cnJlbnRDb25maWd1cmF0aW9uID0gY29uZmlndXJhdGlvbjtcbiAgICB0aGlzLm9uQ29uZmlndXJhdGlvbkNoYW5nZS5lbWl0KGNvbmZpZ3VyYXRpb24uY29uZmlnKTtcbiAgfVxuXG4gIGRlbGV0ZUNvbmZpZ3VyYXRpb24oY29uZmlndXJhdGlvbjogV29ya3NwYWNlQ29uZmlndXJhdGlvbik6IHZvaWQge1xuICAgIHRoaXMuY29uZmlndXJhdGlvbnMgPSB0aGlzLmNvbmZpZ3VyYXRpb25zLmZpbHRlcihjID0+IGMuaWQgIT09IGNvbmZpZ3VyYXRpb24uaWQpO1xuICAgIHRoaXMuaW5pdFdvcmtzcGFjZUZvcm0oKTtcbiAgICB0aGlzLndvcmtzcGFjZUNvbmZpZ3VyYXRpb25TZXJ2aWNlLnNhdmVDb25maWd1cmF0aW9ucyhcbiAgICAgIHRoaXMuY29uZmlndXJhdGlvbnMsXG4gICAgICB0aGlzLmN1cnJlbnRDb25maWd1cmF0aW9uPy5pZCB8fCAnJ1xuICAgICk7XG4gIH1cblxuICBjbGVhckFsbCgpOiB2b2lkIHtcbiAgICB0aGlzLmNvbmZpZ3VyYXRpb25zID0gW3RoaXMuY3VycmVudENvbmZpZ3VyYXRpb25dO1xuICAgIHRoaXMuaW5pdFdvcmtzcGFjZUZvcm0oKTtcbiAgICB0aGlzLndvcmtzcGFjZUNvbmZpZ3VyYXRpb25TZXJ2aWNlLnNhdmVDb25maWd1cmF0aW9ucyhcbiAgICAgIHRoaXMuY29uZmlndXJhdGlvbnMsXG4gICAgICB0aGlzLmN1cnJlbnRDb25maWd1cmF0aW9uPy5pZCB8fCAnJ1xuICAgICk7XG4gIH1cblxuICBhc3luYyBzaGFyZUNvbmZpZyhjb25maWd1cmF0aW9uOiBXb3Jrc3BhY2VDb25maWd1cmF0aW9uKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgdGhpcy5jbGlwYm9hcmRTZXJ2aWNlLndyaXRlVGV4dChKU09OLnN0cmluZ2lmeShjb25maWd1cmF0aW9uLmNvbmZpZykpO1xuICB9XG5cbiAgcHJpdmF0ZSBhZGRDb25maWdGcm9tVXJsKHF1ZXJ5UGFyYW1zOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLmFkZENvbmZpZygpO1xuICAgIGNvbnN0IGNvbmZpZyA9IEpTT04ucGFyc2UocXVlcnlQYXJhbXMuY29uZmlnKTtcbiAgICB0aGlzLm9uQ29uZmlndXJhdGlvbkNoYW5nZS5lbWl0KGNvbmZpZyk7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZUNvbmZpZ3VyYXRpb25zKCk6IHZvaWQge1xuICAgIHRoaXMuY3VycmVudENvbmZpZ3VyYXRpb24uY29uZmlnID0gdGhpcy51cGRhdGVkQ29uZmlnO1xuICAgIHRoaXMuY29uZmlndXJhdGlvbnMgPSB0aGlzLmNvbmZpZ3VyYXRpb25zLm1hcChjdXJyZW50Q29uZmlnID0+XG4gICAgICBjdXJyZW50Q29uZmlnLmlkID09PSB0aGlzLmN1cnJlbnRDb25maWd1cmF0aW9uLmlkID8gdGhpcy5jdXJyZW50Q29uZmlndXJhdGlvbiA6IGN1cnJlbnRDb25maWdcbiAgICApO1xuICAgIGNvbnN0IHF1ZXJ5UGFyYW1zID0ge1xuICAgICAgY29uZmlnSWQ6IHRoaXMuY3VycmVudENvbmZpZ3VyYXRpb24uaWQsXG4gICAgICBsYWJlbDogdGhpcy5jdXJyZW50Q29uZmlndXJhdGlvbi5sYWJlbCxcbiAgICAgIGNvbmZpZzogSlNPTi5zdHJpbmdpZnkodGhpcy51cGRhdGVkQ29uZmlnKVxuICAgIH07XG4gICAgdGhpcy53b3Jrc3BhY2VDb25maWd1cmF0aW9uU2VydmljZS5zYXZlQ29uZmlndXJhdGlvbnMoXG4gICAgICB0aGlzLmNvbmZpZ3VyYXRpb25zLFxuICAgICAgdGhpcy5jdXJyZW50Q29uZmlndXJhdGlvbi5pZFxuICAgICk7XG4gICAgY29uc3QgY29udHJvbCA9IDxGb3JtQXJyYXk+dGhpcy5jb25maWd1cmF0aW9uc0Zvcm1Hcm91cC5jb250cm9sc1snY29uZmlndXJhdGlvbnMnXTtcbiAgICBjb25zdCBpbmRleCA9IHRoaXMuY29uZmlndXJhdGlvbnMuZmluZEluZGV4KGMgPT4gYy5pZCA9PT0gdGhpcy5jdXJyZW50Q29uZmlndXJhdGlvbi5pZCk7XG4gICAgaWYgKGluZGV4ICE9PSAtMSkge1xuICAgICAgY29udHJvbC5hdChpbmRleCkucGF0Y2hWYWx1ZSh7XG4gICAgICAgIGxhYmVsOiB0aGlzLmN1cnJlbnRDb25maWd1cmF0aW9uLmxhYmVsLFxuICAgICAgICBjb25maWc6IHRoaXMuY3VycmVudENvbmZpZ3VyYXRpb24uY29uZmlnLFxuICAgICAgICBpZDogdGhpcy5jdXJyZW50Q29uZmlndXJhdGlvbi5pZFxuICAgICAgfSk7XG4gICAgfVxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtdLCB7IHF1ZXJ5UGFyYW1zIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0aWFsaXplQ29uZmlndXJhdGlvbnMoKTogdm9pZCB7XG4gICAgY29uc3QgY29uZmlndXJhdGlvbnMgPSB0aGlzLndvcmtzcGFjZUNvbmZpZ3VyYXRpb25TZXJ2aWNlLmdldENvbmZpZ3VyYXRpb25zKCk7XG4gICAgY29uc3QgZGVmYXVsdElkID0gdGhpcy53b3Jrc3BhY2VDb25maWd1cmF0aW9uU2VydmljZS5nZXREZWZhdWx0Q29uZmlndXJhdGlvbklkKCk7XG4gICAgY29uc3QgcXVlcnlQYXJhbXMgPSB0aGlzLnJvdXRlci5wYXJzZVVybCh0aGlzLnJvdXRlci51cmwpLnF1ZXJ5UGFyYW1zO1xuICAgIGlmIChjb25maWd1cmF0aW9ucy5sZW5ndGgpIHtcbiAgICAgIHRoaXMuY29uZmlndXJhdGlvbnMgPSBjb25maWd1cmF0aW9ucztcbiAgICAgIHRoaXMuY3VycmVudENvbmZpZ3VyYXRpb24gPVxuICAgICAgICB0aGlzLmNvbmZpZ3VyYXRpb25zLmZpbmQoYyA9PiBjLmlkID09PSBkZWZhdWx0SWQpIHx8IHRoaXMuY29uZmlndXJhdGlvbnNbMF07XG5cbiAgICAgIHRoaXMub25Db25maWd1cmF0aW9uQ2hhbmdlLmVtaXQodGhpcy5jdXJyZW50Q29uZmlndXJhdGlvbi5jb25maWcpO1xuICAgICAgaWYgKHF1ZXJ5UGFyYW1zPy5jb25maWdJZCAmJiAhdGhpcy5jb25maWd1cmF0aW9ucy5maW5kKGMgPT4gYy5pZCA9PT0gcXVlcnlQYXJhbXMuY29uZmlnSWQpKSB7XG4gICAgICAgIHRoaXMuYWRkQ29uZmlnRnJvbVVybChxdWVyeVBhcmFtcyk7XG4gICAgICB9IGVsc2UgaWYgKFxuICAgICAgICBxdWVyeVBhcmFtcz8uY29uZmlnSWQgJiZcbiAgICAgICAgdGhpcy5jb25maWd1cmF0aW9ucy5maW5kKGMgPT4gYy5pZCA9PT0gcXVlcnlQYXJhbXMuY29uZmlnSWQpICYmXG4gICAgICAgIHRoaXMuY3VycmVudENvbmZpZ3VyYXRpb24uaWQgIT09IHF1ZXJ5UGFyYW1zLmNvbmZpZ0lkXG4gICAgICApIHtcbiAgICAgICAgdGhpcy5jdXJyZW50Q29uZmlndXJhdGlvbiA9IHRoaXMuY29uZmlndXJhdGlvbnMuZmluZChjID0+IGMuaWQgPT09IHF1ZXJ5UGFyYW1zLmNvbmZpZ0lkKTtcbiAgICAgICAgdGhpcy5jaGFuZ2VDb25maWd1cmF0aW9uKHRydWUsIHRoaXMuY3VycmVudENvbmZpZ3VyYXRpb24pO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICghdGhpcy5jdXJyZW50Q29uZmlndXJhdGlvbikge1xuICAgICAgaWYgKE9iamVjdC5rZXlzKHF1ZXJ5UGFyYW1zKS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgdGhpcy5hZGRDb25maWcoKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgdGhpcy5hZGRDb25maWdGcm9tVXJsKHF1ZXJ5UGFyYW1zKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGluaXRXb3Jrc3BhY2VGb3JtKCk6IHZvaWQge1xuICAgIHRoaXMuY29uZmlndXJhdGlvbnNGb3JtR3JvdXAgPSB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwKHtcbiAgICAgIGNvbmZpZ3VyYXRpb25zOiB0aGlzLmZvcm1CdWlsZGVyLmFycmF5KFtdKVxuICAgIH0pO1xuXG4gICAgdGhpcy5wYXRjaEZvcm0oKTtcbiAgfVxuXG4gIHByaXZhdGUgcGF0Y2hGb3JtKCk6IHZvaWQge1xuICAgIGNvbnN0IGNvbnRyb2wgPSA8Rm9ybUFycmF5PnRoaXMuY29uZmlndXJhdGlvbnNGb3JtR3JvdXAuY29udHJvbHNbJ2NvbmZpZ3VyYXRpb25zJ107XG4gICAgdGhpcy5jb25maWd1cmF0aW9ucy5mb3JFYWNoKHdvcmtzcGFjZSA9PiB7XG4gICAgICBjb250cm9sLnB1c2godGhpcy5wYXRjaFZhbHVlcyh3b3Jrc3BhY2UpKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgcGF0Y2hWYWx1ZXMod29ya3NwYWNlOiBXb3Jrc3BhY2VDb25maWd1cmF0aW9uKTogRm9ybUdyb3VwIHtcbiAgICByZXR1cm4gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XG4gICAgICBsYWJlbDogW3dvcmtzcGFjZS5sYWJlbF0sXG4gICAgICBjb25maWc6IFt3b3Jrc3BhY2UuY29uZmlnXSxcbiAgICAgIGlkOiBbd29ya3NwYWNlLmlkXVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0aWFsaXplQ29udGV4dFNvdXJjZUlkKCk6IHZvaWQge1xuICAgIGNvbnN0IHJvdXRlQ29udGV4dCA9IHRoaXMuY29udGV4dFJvdXRlU2VydmljZS5nZXRDb250ZXh0RGF0YSh0aGlzLmFjdGl2YXRlZFJvdXRlKTtcbiAgICBpZiAoIXJvdXRlQ29udGV4dCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCB7IGNvbnRleHQsIGNvbnRleHREYXRhIH0gPSByb3V0ZUNvbnRleHQ7XG4gICAgaWYgKFtWaWV3Q29udGV4dC5EZXZpY2UsIFZpZXdDb250ZXh0Lkdyb3VwXS5pbmNsdWRlcyhjb250ZXh0KSkge1xuICAgICAgdGhpcy53b3Jrc3BhY2VDb25maWd1cmF0aW9uU2VydmljZS5jb250ZXh0SWRTaWduYWwuc2V0KGNvbnRleHREYXRhPy5pZCk7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2XG4gIGNsYXNzPVwiZHJvcGRvd25cIlxuICAjYWN0aW9uYmFyX2Ryb3Bkb3duPVwiYnMtZHJvcGRvd25cIlxuICBbY2RrVHJhcEZvY3VzXT1cImFjdGlvbmJhcl9kcm9wZG93bi5pc09wZW5cIlxuICBkcm9wZG93blxuICBbaW5zaWRlQ2xpY2tdPVwidHJ1ZVwiXG4+XG5cbiAgPGJ1dHRvblxuICAgIGNsYXNzPVwiZHJvcGRvd24tdG9nZ2xlIGZvcm0tY29udHJvbCBsLWgtdGlnaHQgZC1mbGV4IGEtaS1jZW50ZXJcIlxuICAgIGF0dHIuYXJpYS1sYWJlbD1cInt7IGN1cnJlbnRDb25maWd1cmF0aW9uLmxhYmVsIH19XCJcbiAgICB0b29sdGlwPVwie3sgJ1NlbGVjdGVkIGNvbmZpZ3VyYXRpb24nIHwgdHJhbnNsYXRlIH19XCJcbiAgICBwbGFjZW1lbnQ9XCJ0b3BcIlxuICAgIGNvbnRhaW5lcj1cImJvZHlcIlxuICAgIGRhdGEtY3k9XCJjdXJyZW50LWNvbmZpZ3VyYXRpb24tZHJvcGRvd24tYnV0dG9uXCJcbiAgICBbYWRhcHRpdmVQb3NpdGlvbl09XCJmYWxzZVwiXG4gICAgW2RlbGF5XT1cIjUwMFwiXG4gICAgZHJvcGRvd25Ub2dnbGVcbiAgPlxuICAgIDxpXG4gICAgICBjbGFzcz1cIm0tci00XCJcbiAgICAgIGM4eUljb249XCJsaXN0XCJcbiAgICA+PC9pPlxuICAgIDxkaXYgY2xhc3M9XCJkLWNvbCB0ZXh0LWxlZnQgZml0LXdcIj5cbiAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC0xMlwiPlxuICAgICAgICB7eyAnQ29uZmlndXJhdGlvbicgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvc3Bhbj5cbiAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC0xMCB0ZXh0LW11dGVkIHRleHQtdHJ1bmNhdGVcIj5cbiAgICAgICAge3sgY3VycmVudENvbmZpZ3VyYXRpb24ubGFiZWwgfX1cbiAgICAgIDwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgICA8c3BhbiBjbGFzcz1cImNhcmV0IG0tci0xNiBtLWwtNFwiPjwvc3Bhbj5cbiAgPC9idXR0b24+XG4gIDxkaXZcbiAgICBjbGFzcz1cImRyb3Bkb3duLW1lbnUgZHJvcGRvd24tbWVudS13aWRlIGRyb3Bkb3duLW1lbnUtYWN0aW9uLWJhclwiXG4gICAgKmRyb3Bkb3duTWVudVxuICA+XG4gICAgPGRpdiBjbGFzcz1cInN0aWNreS10b3Agc2VwYXJhdG9yLWJvdHRvbSBwLXQtOCBwLWItOCBwLWwtMTYgcC1yLTE2XCI+XG4gICAgICA8cD5cbiAgICAgICAgPHN0cm9uZz57eyAnRGF0YSBleHBsb3JlciBjb25maWd1cmF0aW9ucycgfCB0cmFuc2xhdGUgfX08L3N0cm9uZz5cbiAgICAgIDwvcD5cbiAgICAgIDxwPlxuICAgICAgICA8c21hbGw+e3sgJ0Vhc2lseSBzd2l0Y2ggYW5kIG1hbmFnZSBjb25maWd1cmF0aW9ucy4nIHwgdHJhbnNsYXRlIH19PC9zbWFsbD5cbiAgICAgIDwvcD5cbiAgICA8L2Rpdj5cbiAgICA8Yzh5LWxpc3QtZ3JvdXAgY2xhc3M9XCJuby1ib3JkZXItbGFzdFwiPlxuICAgICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJjb25maWd1cmF0aW9uc0Zvcm1Hcm91cFwiPlxuICAgICAgICA8ZGl2IGZvcm1BcnJheU5hbWU9XCJjb25maWd1cmF0aW9uc1wiPlxuICAgICAgICAgIDxjOHktbGlcbiAgICAgICAgICAgIGNsYXNzPVwicC0wXCJcbiAgICAgICAgICAgICpuZ0Zvcj1cIlxuICAgICAgICAgICAgICBsZXQgY29uZmlndXJhdGlvbiBvZiBjb25maWd1cmF0aW9uc0Zvcm1Hcm91cC5jb250cm9scy5jb25maWd1cmF0aW9uc1snY29udHJvbHMnXTtcbiAgICAgICAgICAgICAgbGV0IGkgPSBpbmRleFxuICAgICAgICAgICAgXCJcbiAgICAgICAgICAgIFtkZW5zZV09XCJ0cnVlXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8Yzh5LWxpLXJhZGlvXG4gICAgICAgICAgICAgIFtzZWxlY3RlZF09XCJjb25maWd1cmF0aW9uLnZhbHVlLmlkID09PSBjdXJyZW50Q29uZmlndXJhdGlvbi5pZFwiXG4gICAgICAgICAgICAgIChvblNlbGVjdCk9XCJjaGFuZ2VDb25maWd1cmF0aW9uKCRldmVudCwgY29uZmlndXJhdGlvbi52YWx1ZSlcIlxuICAgICAgICAgICAgPjwvYzh5LWxpLXJhZGlvPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhLWktY2VudGVyIGdhcC04XCI+XG4gICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZsZXgtZ3JvdyBtaW4td2lkdGgtMFwiXG4gICAgICAgICAgICAgICAgW2Zvcm1Hcm91cE5hbWVdPVwiaVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8bGFiZWxcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZWRpdGFibGVcIlxuICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAgICAgICB1cGRhdGVkOlxuICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZ3VyYXRpb24uY29udHJvbHMubGFiZWwudG91Y2hlZCAmJiBjb25maWd1cmF0aW9uLmNvbnRyb2xzLmxhYmVsLmRpcnR5XG4gICAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgICAgICAgICAgICBbc3R5bGUud2lkdGguY2hdPVwiY29uZmlndXJhdGlvbi52YWx1ZS5sYWJlbCB8fCAyNVwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ0NvbmZpZ3VyYXRpb24gbGFiZWwnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJ7eyAnQ29uZmlndXJhdGlvbiAxJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgYXV0b2NvbXBsZXRlPVwib2ZmXCJcbiAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWRcbiAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwibGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICAoYmx1cik9XCJ1cGRhdGVDb25maWd1cmF0aW9uTGFiZWwoY29uZmlndXJhdGlvbi52YWx1ZSlcIlxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgtbm9ncm93IGQtZmxleCBnYXAtOFwiPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuLWRvdCBidG5cIlxuICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInRHVwbGljYXRlIGNvbmZpZ3VyYXRpb24nIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgIHRvb2x0aXA9XCJ7eyAnRHVwbGljYXRlIGNvbmZpZ3VyYXRpb24nIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImxlZnRcIlxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImFkZENvbmZpZyhjb25maWd1cmF0aW9uLnZhbHVlLmNvbmZpZylcIlxuICAgICAgICAgICAgICAgICAgW2RlbGF5XT1cIjUwMFwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPGkgYzh5SWNvbj1cImNvcHlcIj48L2k+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0bi1kb3QgYnRuIGJ0bi1kb3QtLWRhbmdlclwiXG4gICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidSZW1vdmUgY29uZmlndXJhdGlvbnMnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgIHRvb2x0aXA9XCJ7e1xuICAgICAgICAgICAgICAgICAgICAoY29uZmlndXJhdGlvbi52YWx1ZS5pZCA9PT0gY3VycmVudENvbmZpZ3VyYXRpb24uaWRcbiAgICAgICAgICAgICAgICAgICAgICA/IGFjdGl2ZUNvbmZpZ1Rvb2x0aXBcbiAgICAgICAgICAgICAgICAgICAgICA6IHJlbW92ZUNvbmZpZ1Rvb2x0aXBcbiAgICAgICAgICAgICAgICAgICAgKSB8IHRyYW5zbGF0ZVxuICAgICAgICAgICAgICAgICAgfX1cIlxuICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwibGVmdFwiXG4gICAgICAgICAgICAgICAgICBbZGVsYXldPVwiNTAwXCJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7IGRlbGV0ZUNvbmZpZ3VyYXRpb24oY29uZmlndXJhdGlvbi52YWx1ZSlcIlxuICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImNvbmZpZ3VyYXRpb24udmFsdWUuaWQgPT09IGN1cnJlbnRDb25maWd1cmF0aW9uLmlkXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8aSBjOHlJY29uPVwibWludXMtY2lyY2xlXCI+PC9pPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvYzh5LWxpPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZm9ybT5cbiAgICA8L2M4eS1saXN0LWdyb3VwPlxuICAgIDxkaXYgY2xhc3M9XCJzdGlja3ktYm90dG9tIHNlcGFyYXRvci10b3BcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggcC1sLTE2IHAtci0xNiBwLXQtOCBwLWItOFwiPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgY2xhc3M9XCJidG4gYnRuLWRhbmdlciBidG4tc20gZmxleC1ncm93XCJcbiAgICAgICAgICAoY2xpY2spPVwiY2xlYXJBbGwoKVwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cImNvbmZpZ3VyYXRpb25zLmxlbmd0aCA8IDJcIlxuICAgICAgICA+XG4gICAgICAgICAgPGkgW2M4eUljb25dPVwiJ2RlbGV0ZSdcIj48L2k+XG4gICAgICAgICAge3sgJ0RlbGV0ZSBhbGwgY29uZmlndXJhdGlvbnMnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgY2xhc3M9XCJidG4gYnRuLWRlZmF1bHQgYnRuLXNtIGZsZXgtZ3Jvd1wiXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgKGNsaWNrKT1cImFkZENvbmZpZygpXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxpIFtjOHlJY29uXT1cIidhZGQtY2lyY2xlLW91dGxpbmUnXCI+PC9pPlxuICAgICAgICAgIHt7ICdBZGQgY29uZmlndXJhdGlvbicgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==