vcomply-workflow-engine 6.0.4 → 6.0.6

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.
@@ -197,13 +197,10 @@ export class LinkProgramComponent {
197
197
  method: 'get',
198
198
  action: 'programEndpoint',
199
199
  payloadObject: {
200
- start_date: this.currentBusinessCycle?.start_date,
201
- end_date: this.currentBusinessCycle?.end_date,
202
- selected_cycle_arr: this.currentBusinessCycle?.selected_cycle_arr,
203
- selected_cycle: this.currentBusinessCycle?.selected_cycle,
204
200
  categoryIds: this.selectedIds?.categories,
205
201
  pageNo: this.responsibilitiesList?.currentPage,
206
202
  searchText: data?.search ? this.searchText?.responsibility : '',
203
+ pageName: 'policyWorkroom',
207
204
  },
208
205
  };
209
206
  this.restApiService
@@ -469,4 +466,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
469
466
  type: ViewChild,
470
467
  args: ['searchProgram']
471
468
  }] } });
472
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluay1wcm9ncmFtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Z4LXdvcmtmbG93LWVuZ2luZS9zcmMvbGliL3NoYXJlZENvbXBvbmVudHMvbGluay1wcm9ncmFtL2xpbmstcHJvZ3JhbS9saW5rLXByb2dyYW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvc2hhcmVkQ29tcG9uZW50cy9saW5rLXByb2dyYW0vbGluay1wcm9ncmFtL2xpbmstcHJvZ3JhbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7Ozs7Ozs7O0FBWTNDLE1BQU0sT0FBTyxvQkFBb0I7SUF5RC9CLElBQThCLGtCQUFrQixDQUFDLE9BQVk7UUFDM0QsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSTtZQUMzRCxPQUFPLEVBQUUsRUFBRTtZQUNYLFVBQVUsRUFBRSxFQUFFO1lBQ2QsZ0JBQWdCLEVBQUUsRUFBRTtTQUNyQixDQUFDO0lBQ0osQ0FBQztJQXdDRCxTQUFTO0lBRVQsWUFDVSxjQUE4QixFQUM5QixRQUF5QjtRQUR6QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsYUFBUSxHQUFSLFFBQVEsQ0FBaUI7UUExR25D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MkNsQixNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0ksU0FBUztzQkFBbEIsTUFBTTtnQkFDRyxxQkFBcUI7c0JBQTlCLE1BQU07Z0JBT0csSUFBSTtzQkFBYixNQUFNO2dCQUNHLEtBQUs7c0JBQWQsTUFBTTtnQkFFRyxxQkFBcUI7c0JBQTlCLE1BQU07Z0JBR0UsWUFBWTtzQkFBcEIsS0FBSztnQkFDd0Isa0JBQWtCO3NCQUEvQyxLQUFLO3VCQUFDLGlCQUFpQjtnQkFPZixrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csbUJBQW1CO3NCQUEzQixLQUFLO2dCQUdHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDc0IsYUFBYTtzQkFBeEMsU0FBUzt1QkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cFBhcmFtcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IFJlc3RBcGlTZXJ2aWNlIH0gZnJvbSAnLi4vcmVzdGFwaS5zZXJ2aWNlJztcbmltcG9ydCB7IFNuYWNrQmFyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3VpLWtpdC9zbmFjay1iYXIvc25hY2stYmFyLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2VsZWN0ZWRJZHMsIFNlbGVjdGVkVmFsdWVzIH0gZnJvbSAnLi4vcHJvZ3JhbS1pbnRlZ3JhdGlvbi1pbnRlcmZhY2VzJztcbmltcG9ydCB7IHByb2dyYW1MaXN0IH0gZnJvbSAnLi9wcm9ncmFtLWxpc3QtbW9kZWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2Yy1saW5rLXByb2dyYW0nLFxuICB0ZW1wbGF0ZVVybDogJy4vbGluay1wcm9ncmFtLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbGluay1wcm9ncmFtLmNvbXBvbmVudC5sZXNzJ10sXG59KVxuZXhwb3J0IGNsYXNzIExpbmtQcm9ncmFtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgYW5pbWF0aW9uID0gZmFsc2U7XG5cbiAgc3ViQ2F0ZWdvcmllc0xpc3QgPSB7XG4gICAgZnJvbTogMSxcbiAgICB0bzogMCxcbiAgICBjdXJyZW50UGFnZTogMSxcbiAgICB0b3RhbFBhZ2U6IDAsXG4gICAgdG90YWxSZWNvcmRzOiAwLFxuICAgIGRhdGE6IFtdLFxuICB9O1xuICByZXNwb25zaWJpbGl0aWVzTGlzdCA9IHtcbiAgICBmcm9tOiAxLFxuICAgIHRvOiAwLFxuICAgIGN1cnJlbnRQYWdlOiAxLFxuICAgIHRvdGFsUGFnZTogMCxcbiAgICB0b3RhbFJlY29yZHM6IDAsXG4gICAgZGF0YTogW10sXG4gIH07XG5cbiAgc2VhcmNoVGV4dCA9IHtcbiAgICBwcm9ncmFtOiAnJyxcbiAgICBjYXRlZ29yeTogJycsXG4gICAgcmVzcG9uc2liaWxpdHk6ICcnLFxuICB9O1xuXG4gIHNlbGVjdGVkVmFsdWVzOiBTZWxlY3RlZFZhbHVlcyA9IHtcbiAgICBwcm9ncmFtOiB7fSxcbiAgICBjYXRlZ29yaWVzOiBbXSxcbiAgICByZXNwb25zaWJpbGl0aWVzOiBbXSxcbiAgfTtcbiAgc2VsZWN0ZWRJZHM6IFNlbGVjdGVkSWRzID0ge1xuICAgIGNhdGVnb3JpZXM6IFtdLFxuICAgIHJlc3BvbnNpYmlsaXRpZXM6IFtdLFxuICB9O1xuXG4gIHN1Ym1pc3Npb25Mb2FkZXIgPSBmYWxzZTtcbiAgY3VycmVudENhdGVnb3J5OiBhbnkgPSB7fTtcblxuICBASW5wdXQoKSBwb2xpY3k6IGFueSA9IHt9O1xuICBASW5wdXQoKSBjdXJyZW50VGFiITogYW55O1xuICBASW5wdXQoKSBtb2RlOiBzdHJpbmcgPSAnJztcbiAgQE91dHB1dCgpIGNoYW5nZVRhYiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIHVwZGF0ZWRQcm9ncmFtRGV0YWlscyA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBjdXJyZW50QnVzaW5lc3NDeWNsZSE6IGFueTtcbiAgbG9hZGVyID0gZmFsc2U7XG4gIHByb2dyYW1Tb3J0Qnk6ICdkZXNjJyB8ICdhc2MnID0gJ2Rlc2MnO1xuICBjdXJyZW50TGlzdDogJ3Byb2dyYW1zJyB8ICdjYXRlZ29yaWVzJyB8ICdyZXNwb25zaWJpbGl0aWVzJyA9ICdwcm9ncmFtcyc7XG4gIHVuc3Vic2NyaWJlID0gbmV3IFN1YmplY3QoKTtcbiAgQE91dHB1dCgpIHNhdmUgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBjbG9zZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBAT3V0cHV0KCkgcmVmcmVzaExpbmtlZFBvbGljaWVzID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAvL3Byb2dyYW1cbiAgc3ViTGlzdCA9IGZhbHNlO1xuICBASW5wdXQoKSBwcm9ncmFtc0xpc3Q6IGFueTtcbiAgQElucHV0KCdzZWxlY3RlZFByb2dyYW0nKSBzZXQgZ2V0U2VsZWN0ZWRQcm9ncmFtKHByb2dyYW06IGFueSkge1xuICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZXMgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHByb2dyYW0pKSA/PyB7XG4gICAgICBwcm9ncmFtOiB7fSxcbiAgICAgIGNhdGVnb3JpZXM6IFtdLFxuICAgICAgcmVzcG9uc2liaWxpdGllczogW10sXG4gICAgfTtcbiAgfVxuICBASW5wdXQoKSBzZWxlY3RlZENhdGVnb3JpZXM6IGFueVtdID0gW107XG4gIEBJbnB1dCgpIHNlbGVjdGVkTGlua1Byb2dyYW0gPSB7XG4gICAgX2lkOiAnJyxcbiAgfTtcbiAgQElucHV0KCkgaGlkZVByb2dyYW1zTGlzdCE6IGFueTtcbiAgQFZpZXdDaGlsZCgnc2VhcmNoUHJvZ3JhbScpIHNlYXJjaFByb2dyYW0hOiBhbnk7XG5cbiAgcHJldmlvdXNTZWxlY3RlZFZhbHVlczogYW55ID0ge1xuICAgIHByb2dyYW06IHt9LFxuICAgIGNhdGVnb3JpZXM6IFtdLFxuICB9O1xuICBwcm9ncmFtRGF0YTogcHJvZ3JhbUxpc3QgPSB7XG4gICAgZGF0YTogW10sXG4gICAgZnJvbTogMCxcbiAgICB0bzogMCxcbiAgICB0b3RhbFBhZ2VzOiAwLFxuICAgIHRvdGFsUmVjb3JkczogMCxcbiAgICBjdXJyZW50UGFnZTogMSxcbiAgICBBbGxJbnRlcm5hbENvbnRyb2xzUHJvZ3JhbXNDb3VudDogMCxcbiAgICBBbGxPdGhlcnNQcm9ncmFtc0NvdW50OiAwLFxuICAgIEFsbFJlZ3VsYXRpb25Qcm9ncmFtc0NvdW50OiAwLFxuICAgIEFsbFN0YW5kYXJkUHJvZ3JhbXNDb3VudDogMCxcbiAgICBTZWxlY3RlZEludGVybmFsQ29udHJvbHNQcm9ncmFtc0NvdW50OiAwLFxuICAgIFNlbGVjdGVkT3RoZXJzUHJvZ3JhbXNDb3VudDogMCxcbiAgICBTZWxlY3RlZFJlZ3VsYXRpb25Qcm9ncmFtc0NvdW50OiAwLFxuICAgIFNlbGVjdGVkU3RhbmRhcmRQcm9ncmFtc0NvdW50OiAwLFxuICB9O1xuICBwcm9ncmFtVHlwZU9iamVjdCA9IHtcbiAgICByZWd1bGF0aW9uczogMSxcbiAgICBzdGFuZGFyZHM6IDIsXG4gICAgaW50ZXJuYWxfY29udHJvbHM6IDMsXG4gICAgb3RoZXJzOiAwLFxuICB9O1xuXG4gIGRpc3BsYXlDb25maXJtYXRpb25NZXNzYWdlID0gZmFsc2U7XG5cbiAgYWN0aXZlVGFiOiAncmVndWxhdGlvbnMnIHwgJ3N0YW5kYXJkcycgfCAnaW50ZXJuYWxfY29udHJvbHMnIHwgJ290aGVycycgPVxuICAgICdyZWd1bGF0aW9ucyc7XG5cbiAgLy9wcm9ncmFtXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZXN0QXBpU2VydmljZTogUmVzdEFwaVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBzbmFja2JhcjogU25hY2tCYXJTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMuZ2V0UHJvZ3JhbXMoKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuYW5pbWF0aW9uID0gdHJ1ZTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuYW5pbWF0aW9uID0gZmFsc2U7XG4gICAgfSwgMzAwKTtcbiAgICB0aGlzLmN1cnJlbnRCdXNpbmVzc0N5Y2xlID0gdGhpcy5yZXN0QXBpU2VydmljZS5nZXRCdXNpbmVzc0N5Y2xlKCk7XG4gIH1cblxuICBnZXRQcm9ncmFtcyhkYXRhPzogYW55KSB7XG4gICAgdGhpcy5sb2FkZXIgPSB0cnVlO1xuICAgIGxldCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpO1xuICAgIC8vIHBhcmFtcyA9IHBhcmFtcy5hcHBlbmQoJ21vZGUnLCAnY29tcGxpYW5jZUNhdGVnb3J5L3Byb2dyYW1MaXN0Jyk7XG4gICAgcGFyYW1zID0gcGFyYW1zLmFwcGVuZChcbiAgICAgICdwcm9ncmFtVHlwZScsXG4gICAgICB0aGlzLnByb2dyYW1UeXBlT2JqZWN0W3RoaXMuYWN0aXZlVGFiXVxuICAgICk7XG4gICAgcGFyYW1zID0gcGFyYW1zLmFwcGVuZCgncGFnZU5hbWUnLCAncG9saWN5V29ya3Jvb20nKTtcbiAgICBpZiAoZGF0YT8uc2VhcmNoIHx8IHRoaXMuc2VhcmNoVGV4dC5wcm9ncmFtKSB7XG4gICAgICBwYXJhbXMgPSBwYXJhbXMuYXBwZW5kKCdzZWFyY2hUZXh0JywgdGhpcy5zZWFyY2hUZXh0LnByb2dyYW0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBwYXJhbXMgPSBwYXJhbXMuYXBwZW5kKCdwYWdlTm8nLCB0aGlzLnByb2dyYW1EYXRhLmN1cnJlbnRQYWdlKTtcbiAgICB9XG4gICAgY29uc3QgcmVxdWVzdCA9IHtcbiAgICAgIG1ldGhvZDogJ2dldCcsXG4gICAgICBhY3Rpb246ICdjb21wbGlhbmNlR2V0JyxcbiAgICAgIHBhcmFtcyxcbiAgICB9O1xuICAgIHRoaXMucmVzdEFwaVNlcnZpY2VcbiAgICAgIC5hcGlEZWxlZ2F0ZShyZXF1ZXN0LCAnY29tcGxpYW5jZUNhdGVnb3J5L3Byb2dyYW1MaXN0JylcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLnVuc3Vic2NyaWJlKSlcbiAgICAgIC5zdWJzY3JpYmUoe1xuICAgICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcbiAgICAgICAgICB0aGlzLnByb2dyYW1EYXRhLmRhdGEgPSByZXMuZGF0YTtcbiAgICAgICAgICB0aGlzLnByb2dyYW1EYXRhLmZyb20gPSByZXMuZnJvbTtcbiAgICAgICAgICB0aGlzLnByb2dyYW1EYXRhLnRvID0gcmVzLnRvO1xuICAgICAgICAgIHRoaXMucHJvZ3JhbURhdGEudG90YWxQYWdlcyA9IHJlcy50b3RhbFBhZ2VzO1xuICAgICAgICAgIHRoaXMucHJvZ3JhbURhdGEudG90YWxSZWNvcmRzID0gcmVzLnRvdGFsUmVjb3JkcztcbiAgICAgICAgICB0aGlzLnByb2dyYW1EYXRhLkFsbEludGVybmFsQ29udHJvbHNQcm9ncmFtc0NvdW50ID1cbiAgICAgICAgICAgIHJlcy5BbGxJbnRlcm5hbENvbnRyb2xzUHJvZ3JhbXNDb3VudDtcbiAgICAgICAgICB0aGlzLnByb2dyYW1EYXRhLkFsbE90aGVyc1Byb2dyYW1zQ291bnQgPSByZXMuQWxsT3RoZXJzUHJvZ3JhbXNDb3VudDtcbiAgICAgICAgICB0aGlzLnByb2dyYW1EYXRhLkFsbFJlZ3VsYXRpb25Qcm9ncmFtc0NvdW50ID1cbiAgICAgICAgICAgIHJlcy5BbGxSZWd1bGF0aW9uUHJvZ3JhbXNDb3VudDtcbiAgICAgICAgICB0aGlzLnByb2dyYW1EYXRhLkFsbFN0YW5kYXJkUHJvZ3JhbXNDb3VudCA9XG4gICAgICAgICAgICByZXMuQWxsU3RhbmRhcmRQcm9ncmFtc0NvdW50O1xuICAgICAgICAgIHRoaXMubG9hZGVyID0gZmFsc2U7XG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yOiAoZXJyOiBhbnkpID0+IHtcbiAgICAgICAgICB0aGlzLmxvYWRlciA9IGZhbHNlO1xuICAgICAgICB9LFxuICAgICAgfSk7XG4gIH1cblxuICBnZXRDYXRlZ29yaWVzKGRhdGE/OiBhbnkpIHtcbiAgICB0aGlzLmxvYWRlciA9IHRydWU7XG4gICAgbGV0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKCk7XG4gICAgcGFyYW1zID0gcGFyYW1zLmFwcGVuZCgncGFyZW50SWQnLCB0aGlzLnNlbGVjdGVkVmFsdWVzLnByb2dyYW0/Ll9pZCk7XG5cbiAgICBpZiAoZGF0YT8uc2VhcmNoKSB7XG4gICAgICBwYXJhbXMgPSBwYXJhbXMuYXBwZW5kKCdxJywgdGhpcy5zZWFyY2hUZXh0LmNhdGVnb3J5KTtcbiAgICB9XG5cbiAgICBjb25zdCByZXF1ZXN0ID0ge1xuICAgICAgbWV0aG9kOiAnZ2V0JyxcbiAgICAgIGFjdGlvbjogJ3Byb2dyYW1FbmRwb2ludCcsXG4gICAgICBwYXJhbXMsXG4gICAgfTtcbiAgICB0aGlzLnJlc3RBcGlTZXJ2aWNlXG4gICAgICAuYXBpRGVsZWdhdGUocmVxdWVzdCwgJy9zdWJDYXRlZ29yaWVzJylcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLnVuc3Vic2NyaWJlKSlcbiAgICAgIC5zdWJzY3JpYmUoe1xuICAgICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcbiAgICAgICAgICB0aGlzLnN1YkNhdGVnb3JpZXNMaXN0LmZyb20gPSByZXMuaXRlbXNfZnJvbSA/PyAxO1xuICAgICAgICAgIHRoaXMuc3ViQ2F0ZWdvcmllc0xpc3QudG8gPSByZXMuaXRlbXNfdG8gPz8gMDtcbiAgICAgICAgICB0aGlzLnN1YkNhdGVnb3JpZXNMaXN0LnRvdGFsUGFnZSA9IHJlcy50b3RhbF9wYWdlcyA/PyAwO1xuICAgICAgICAgIHRoaXMuc3ViQ2F0ZWdvcmllc0xpc3QudG90YWxSZWNvcmRzID0gcmVzLnRvdGFsX2l0ZW1zID8/IDA7XG4gICAgICAgICAgdGhpcy5zdWJDYXRlZ29yaWVzTGlzdC5kYXRhID0gcmVzLmRhdGEgPz8gW107XG4gICAgICAgICAgdGhpcy5sb2FkZXIgPSBmYWxzZTtcbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3I6IChlcnI6IGFueSkgPT4ge1xuICAgICAgICAgIHRoaXMubG9hZGVyID0gZmFsc2U7XG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgfVxuICBjaGFuZ2VUYWJQcm9ncmFtKFxuICAgIHR5cGU6ICdyZWd1bGF0aW9ucycgfCAnc3RhbmRhcmRzJyB8ICdpbnRlcm5hbF9jb250cm9scycgfCAnb3RoZXJzJ1xuICApIHtcbiAgICB0aGlzLmFjdGl2ZVRhYiA9IHR5cGU7XG4gICAgdGhpcy5wcm9ncmFtRGF0YS5jdXJyZW50UGFnZSA9IDE7XG4gICAgdGhpcy5zZWFyY2hUZXh0LnByb2dyYW0gPSAnJztcbiAgICB0aGlzLnNlYXJjaFByb2dyYW0ubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xuICAgIHRoaXMuZ2V0UHJvZ3JhbXMoKTtcbiAgfVxuXG4gIGdldFJlc3BvbnNpYmlsaXRpZXMoZGF0YT86IGFueSkge1xuICAgIHRoaXMubG9hZGVyID0gdHJ1ZTtcblxuICAgIGNvbnN0IHJlcXVlc3QgPSB7XG4gICAgICBtZXRob2Q6ICdnZXQnLFxuICAgICAgYWN0aW9uOiAncHJvZ3JhbUVuZHBvaW50JyxcbiAgICAgIHBheWxvYWRPYmplY3Q6IHtcbiAgICAgICAgc3RhcnRfZGF0ZTogdGhpcy5jdXJyZW50QnVzaW5lc3NDeWNsZT8uc3RhcnRfZGF0ZSxcbiAgICAgICAgZW5kX2RhdGU6IHRoaXMuY3VycmVudEJ1c2luZXNzQ3ljbGU/LmVuZF9kYXRlLFxuICAgICAgICBzZWxlY3RlZF9jeWNsZV9hcnI6IHRoaXMuY3VycmVudEJ1c2luZXNzQ3ljbGU/LnNlbGVjdGVkX2N5Y2xlX2FycixcbiAgICAgICAgc2VsZWN0ZWRfY3ljbGU6IHRoaXMuY3VycmVudEJ1c2luZXNzQ3ljbGU/LnNlbGVjdGVkX2N5Y2xlLFxuICAgICAgICBjYXRlZ29yeUlkczogdGhpcy5zZWxlY3RlZElkcz8uY2F0ZWdvcmllcyxcbiAgICAgICAgcGFnZU5vOiB0aGlzLnJlc3BvbnNpYmlsaXRpZXNMaXN0Py5jdXJyZW50UGFnZSxcbiAgICAgICAgc2VhcmNoVGV4dDogZGF0YT8uc2VhcmNoID8gdGhpcy5zZWFyY2hUZXh0Py5yZXNwb25zaWJpbGl0eSA6ICcnLFxuICAgICAgfSxcbiAgICB9O1xuICAgIHRoaXMucmVzdEFwaVNlcnZpY2VcbiAgICAgIC5hcGlEZWxlZ2F0ZShyZXF1ZXN0LCAnL2NhdGVnb3J5UmVzcG9uc2liaWxpdGllcycpXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZSkpXG4gICAgICAuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XG4gICAgICAgICAgdGhpcy5sb2FkZXIgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLnJlc3BvbnNpYmlsaXRpZXNMaXN0LmZyb20gPSByZXMuaXRlbXNfZnJvbSA/PyAxO1xuICAgICAgICAgIHRoaXMucmVzcG9uc2liaWxpdGllc0xpc3QudG8gPSByZXMuaXRlbXNfdG8gPz8gMDtcbiAgICAgICAgICB0aGlzLnJlc3BvbnNpYmlsaXRpZXNMaXN0LnRvdGFsUGFnZSA9IHJlcy50b3RhbF9wYWdlcyA/PyAxO1xuICAgICAgICAgIHRoaXMucmVzcG9uc2liaWxpdGllc0xpc3QudG90YWxSZWNvcmRzID0gcmVzLnRvdGFsX2l0ZW1zID8/IDA7XG4gICAgICAgICAgdGhpcy5yZXNwb25zaWJpbGl0aWVzTGlzdC5kYXRhID0gcmVzLmRhdGEgPz8gW107XG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yOiAoZXJyOiBhbnkpID0+IHtcbiAgICAgICAgICB0aGlzLmxvYWRlciA9IGZhbHNlO1xuICAgICAgICB9LFxuICAgICAgfSk7XG4gIH1cblxuICBjaGFuZ2VQYWdlKGV2ZW50OiBhbnksIHR5cGU6ICdwcm9ncmFtcycgfCAnY2F0ZWdvcmllcycgfCAncmVzcG9uc2liaWxpdGllcycpIHtcbiAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgIGNhc2UgJ3Byb2dyYW1zJzpcbiAgICAgICAgdGhpcy5wcm9ncmFtRGF0YS5jdXJyZW50UGFnZSA9IGV2ZW50O1xuICAgICAgICB0aGlzLmdldFByb2dyYW1zKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnY2F0ZWdvcmllcyc6XG4gICAgICAgIHRoaXMuc3ViQ2F0ZWdvcmllc0xpc3QuY3VycmVudFBhZ2UgPSBldmVudDtcbiAgICAgICAgdGhpcy5nZXRDYXRlZ29yaWVzKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAncmVzcG9uc2liaWxpdGllcyc6XG4gICAgICAgIHRoaXMucmVzcG9uc2liaWxpdGllc0xpc3QuY3VycmVudFBhZ2UgPSBldmVudDtcbiAgICAgICAgdGhpcy5nZXRSZXNwb25zaWJpbGl0aWVzKCk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuICBzZWFyY2hCeShldmVudDogYW55LCB0eXBlOiAncHJvZ3JhbXMnIHwgJ2NhdGVnb3JpZXMnIHwgJ3Jlc3BvbnNpYmlsaXRpZXMnKSB7XG4gICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICBjYXNlICdwcm9ncmFtcyc6XG4gICAgICAgIGlmICh0aGlzLnNlYXJjaFRleHQucHJvZ3JhbSAhPSBldmVudCkge1xuICAgICAgICAgIHRoaXMuc2VhcmNoVGV4dC5wcm9ncmFtID0gZXZlbnQ7XG4gICAgICAgICAgdGhpcy5nZXRQcm9ncmFtcyh7IHNlYXJjaDogdHJ1ZSB9KTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2NhdGVnb3JpZXMnOlxuICAgICAgICBpZiAodGhpcy5zZWFyY2hUZXh0LmNhdGVnb3J5ICE9IGV2ZW50KSB7XG4gICAgICAgICAgdGhpcy5zZWFyY2hUZXh0LmNhdGVnb3J5ID0gZXZlbnQ7XG4gICAgICAgICAgdGhpcy5nZXRDYXRlZ29yaWVzKHsgc2VhcmNoOiB0cnVlIH0pO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAncmVzcG9uc2liaWxpdGllcyc6XG4gICAgICAgIGlmICh0aGlzLnNlYXJjaFRleHQucmVzcG9uc2liaWxpdHkgIT0gZXZlbnQpIHtcbiAgICAgICAgICB0aGlzLnNlYXJjaFRleHQucmVzcG9uc2liaWxpdHkgPSBldmVudDtcbiAgICAgICAgICB0aGlzLmdldFJlc3BvbnNpYmlsaXRpZXMoeyBzZWFyY2g6IHRydWUgfSk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgc2VsZWN0UHJvZ3JhbShldmVudDogYW55LCBkYXRhOiBhbnkpIHtcbiAgICBpZiAoZXZlbnQpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZXMucHJvZ3JhbSA9IGRhdGE7XG4gICAgICB0aGlzLnNlbGVjdGVkSWRzLmNhdGVnb3JpZXMgPSBbXTtcbiAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZXMuY2F0ZWdvcmllcyA9IFtdO1xuICAgICAgdGhpcy5zZWxlY3RlZElkcy5yZXNwb25zaWJpbGl0aWVzID0gW107XG4gICAgICB0aGlzLnNlbGVjdGVkVmFsdWVzLnJlc3BvbnNpYmlsaXRpZXMgPSBbXTtcbiAgICB9XG4gIH1cblxuICBzZWxlY3RDYXRlZ29yeShldmVudDogYW55LCBjYXRlZ29yeTogYW55KSB7XG4gICAgaWYgKGV2ZW50KSB7XG4gICAgICB0aGlzLnNlbGVjdGVkSWRzLmNhdGVnb3JpZXMucHVzaChjYXRlZ29yeS5jYXRlZ29yeV9pZCk7XG4gICAgICB0aGlzLnNlbGVjdGVkVmFsdWVzLmNhdGVnb3JpZXMucHVzaChjYXRlZ29yeSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5zZWxlY3RlZElkcy5jYXRlZ29yaWVzLmZpbmRJbmRleChcbiAgICAgICAgKGVsZW1lbnQ6IGFueSkgPT4gZWxlbWVudCA9PSBjYXRlZ29yeS5jYXRlZ29yeV9pZFxuICAgICAgKTtcbiAgICAgIHRoaXMuc2VsZWN0ZWRJZHMuY2F0ZWdvcmllcy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgY29uc3QgY2F0ZWdvcnlJbmRleCA9IHRoaXMuc2VsZWN0ZWRWYWx1ZXMuY2F0ZWdvcmllcy5maW5kSW5kZXgoXG4gICAgICAgIChlbGU6IGFueSkgPT4gZWxlLmNhdGVnb3J5X2lkID09IGNhdGVnb3J5LmNhdGVnb3J5X2lkXG4gICAgICApO1xuICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlcy5jYXRlZ29yaWVzLnNwbGljZShjYXRlZ29yeUluZGV4LCAxKTtcbiAgICB9XG4gIH1cbiAgc2VsZWN0UmVzcG9uc2liaWxpdHkoZXZlbnQ6IGFueSwgZGF0YTogYW55KSB7XG4gICAgaWYgKGV2ZW50KSB7XG4gICAgICB0aGlzLnNlbGVjdGVkSWRzLnJlc3BvbnNpYmlsaXRpZXMucHVzaChkYXRhLlJlcG9ydElkKTtcbiAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZXMucmVzcG9uc2liaWxpdGllcy5wdXNoKGRhdGEpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBpbmRleCA9IHRoaXMuc2VsZWN0ZWRJZHMucmVzcG9uc2liaWxpdGllcy5maW5kSW5kZXgoXG4gICAgICAgIChlbGVtZW50OiBhbnkpID0+IGVsZW1lbnQgPT0gZGF0YS5SZXBvcnRJZFxuICAgICAgKTtcbiAgICAgIHRoaXMuc2VsZWN0ZWRJZHMucmVzcG9uc2liaWxpdGllcy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgY29uc3QgcmVwb3J0SW5kZXggPSB0aGlzLnNlbGVjdGVkVmFsdWVzLnJlc3BvbnNpYmlsaXRpZXMuZmluZEluZGV4KFxuICAgICAgICAoZWxlOiBhbnkpID0+IGVsZS5SZXBvcnRJZCA9PSBkYXRhLlJlcG9ydElkXG4gICAgICApO1xuICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlcy5yZXNwb25zaWJpbGl0aWVzLnNwbGljZShyZXBvcnRJbmRleCwgMSk7XG4gICAgfVxuICB9XG4gIGdvQmFjayhmcm9tPzogJ2NhdGVnb3JpZXMnIHwgJ3Jlc3BvbnNpYmlsaXRpZXMnKSB7XG4gICAgaWYgKGZyb20pIHtcbiAgICAgIHN3aXRjaCAoZnJvbSkge1xuICAgICAgICBjYXNlICdjYXRlZ29yaWVzJzpcbiAgICAgICAgICB0aGlzLmN1cnJlbnRMaXN0ID0gJ3Byb2dyYW1zJztcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkSWRzLmNhdGVnb3JpZXMgPSBbXTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAncmVzcG9uc2liaWxpdGllcyc6XG4gICAgICAgICAgdGhpcy5jdXJyZW50TGlzdCA9ICdjYXRlZ29yaWVzJztcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkSWRzLnJlc3BvbnNpYmlsaXRpZXMgPSBbXTtcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jbG9zZS5lbWl0KCk7XG4gICAgfVxuICB9XG5cbiAgcmVtb3ZlKHR5cGU6ICdwcm9ncmFtcycgfCAnY2F0ZWdvcmllcycgfCAncmVzcG9uc2liaWxpdGllcycsIGl0ZW06IGFueSkge1xuICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgY2FzZSAncHJvZ3JhbXMnOlxuICAgICAgICB0aGlzLnNlbGVjdGVkVmFsdWVzLnByb2dyYW0gPSB7fTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlcy5jYXRlZ29yaWVzID0gW107XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZXMucmVzcG9uc2liaWxpdGllcyA9IFtdO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2NhdGVnb3JpZXMnOlxuICAgICAgICBjb25zdCBjYXRlZ29yeUluZGV4ID0gdGhpcy5zZWxlY3RlZFZhbHVlcy5jYXRlZ29yaWVzLmZpbmRJbmRleChcbiAgICAgICAgICAoZWxlOiBhbnkpID0+IGVsZS5jYXRlZ29yeV9pZCA9PSBpdGVtLmNhdGVnb3J5X2lkXG4gICAgICAgICk7XG4gICAgICAgIGlmIChjYXRlZ29yeUluZGV4ICE9IC0xKSB7XG4gICAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlcy5jYXRlZ29yaWVzLnNwbGljZShjYXRlZ29yeUluZGV4LCAxKTtcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkVmFsdWVzLnJlc3BvbnNpYmlsaXRpZXMgPSBbXTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjYXRlZ29yeUlkSW5kZXggPSB0aGlzLnNlbGVjdGVkSWRzLmNhdGVnb3JpZXMuZmluZEluZGV4KFxuICAgICAgICAgIChlbGVtZW50OiBhbnkpID0+IGVsZW1lbnQgPT0gaXRlbS5jYXRlZ29yeV9pZFxuICAgICAgICApO1xuICAgICAgICBpZiAoY2F0ZWdvcnlJZEluZGV4ICE9IC0xKSB7XG4gICAgICAgICAgdGhpcy5zZWxlY3RlZElkcy5jYXRlZ29yaWVzLnNwbGljZShjYXRlZ29yeUlkSW5kZXgsIDEpO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAncmVzcG9uc2liaWxpdGllcyc6XG4gICAgICAgIGNvbnN0IHJlc3BJbmRleCA9IHRoaXMuc2VsZWN0ZWRWYWx1ZXMucmVzcG9uc2liaWxpdGllcy5maW5kSW5kZXgoXG4gICAgICAgICAgKGVsZTogYW55KSA9PiBlbGUuUmVwb3J0SWQgPT0gaXRlbS5SZXBvcnRJZFxuICAgICAgICApO1xuICAgICAgICBpZiAocmVzcEluZGV4ICE9IC0xKSB7XG4gICAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlcy5yZXNwb25zaWJpbGl0aWVzLnNwbGljZShyZXNwSW5kZXgsIDEpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5zZWxlY3RlZElkcy5yZXNwb25zaWJpbGl0aWVzLmZpbmRJbmRleChcbiAgICAgICAgICAoZWxlbWVudDogYW55KSA9PiBlbGVtZW50ID09IGl0ZW0uUmVwb3J0SWRcbiAgICAgICAgKTtcbiAgICAgICAgaWYgKGluZGV4ICE9IC0xKSB7XG4gICAgICAgICAgdGhpcy5zZWxlY3RlZElkcy5yZXNwb25zaWJpbGl0aWVzLnNwbGljZShpbmRleCwgMSk7XG4gICAgICAgIH1cblxuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICBzYXZlQ2hhbmdlcyhcbiAgICB0eXBlOiAncHJvZ3JhbXMnIHwgJ2NhdGVnb3JpZXMnIHwgJ3Jlc3BvbnNpYmlsaXRpZXMnIHwgJ3Byb2dyYW1zT25seSdcbiAgKSB7XG4gICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICBjYXNlICdwcm9ncmFtcyc6XG4gICAgICAgIHRoaXMuY3VycmVudExpc3QgPSAnY2F0ZWdvcmllcyc7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZXMuY2F0ZWdvcmllcyA9IFtdO1xuICAgICAgICB0aGlzLnNlbGVjdGVkVmFsdWVzLnJlc3BvbnNpYmlsaXRpZXMgPSBbXTtcbiAgICAgICAgdGhpcy5nZXRDYXRlZ29yaWVzKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnY2F0ZWdvcmllcyc6XG4gICAgICAgIHRoaXMuY3VycmVudExpc3QgPSAncmVzcG9uc2liaWxpdGllcyc7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZXMucmVzcG9uc2liaWxpdGllcyA9IFtdO1xuICAgICAgICB0aGlzLmdldFJlc3BvbnNpYmlsaXRpZXMoKTtcblxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3Jlc3BvbnNpYmlsaXRpZXMnOlxuICAgICAgICB0aGlzLnN1Ym1pdHByb2dyYW1JbnRlZ3JhdGlvbigpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3Byb2dyYW1zT25seSc6XG4gICAgICAgIHRoaXMuZGlzcGxheUNvbmZpcm1hdGlvbk1lc3NhZ2UgPSB0cnVlO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cbiAgc2F2ZUNoYW5nZXNGcm9tUHJvZ3JhbShldmVudDogYm9vbGVhbikge1xuICAgIGlmIChldmVudCkge1xuICAgICAgdGhpcy5kaXNwbGF5Q29uZmlybWF0aW9uTWVzc2FnZSA9IGZhbHNlO1xuICAgICAgdGhpcy5zdWJtaXRwcm9ncmFtSW50ZWdyYXRpb24oKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5kaXNwbGF5Q29uZmlybWF0aW9uTWVzc2FnZSA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHN1Ym1pdHByb2dyYW1JbnRlZ3JhdGlvbigpIHtcbiAgICAvLyB0aGlzLnN1Ym1pc3Npb25Mb2FkZXIgPSB0cnVlO1xuICAgIGxldCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpO1xuICAgIHBhcmFtcyA9IHBhcmFtcy5hcHBlbmQoJ21vZGUnLCAncHJvZ3JhbVBvbGljeVVwZGF0ZS91cGRhdGUnKTtcblxuICAgIGNvbnN0IGNhdGVnb3J5QXJyYXkgPSB0aGlzLnNlbGVjdGVkSWRzPy5jYXRlZ29yaWVzO1xuXG4gICAgY29uc3QgcGF5bG9hZCA9IHtcbiAgICAgIHBvbGljeUlkOiB0aGlzLnBvbGljeT8ucG9saWN5X2lkID8/IDAsXG4gICAgICByZXBvcnRfaWRzOiB0aGlzLnNlbGVjdGVkSWRzPy5yZXNwb25zaWJpbGl0aWVzID8/IDAsXG4gICAgICBjYXRlZ29yeV9pZDogWy4uLm5ldyBTZXQoY2F0ZWdvcnlBcnJheSldLFxuICAgICAgcGFyZW50SWQ6IHRoaXMuc2VsZWN0ZWRWYWx1ZXM/LnByb2dyYW0/LmNhdGVnb3J5X2lkLFxuICAgIH07XG4gICAgbGV0IHJlbW92ZSA9IHt9O1xuICAgIGlmIChcbiAgICAgIHRoaXMuc2VsZWN0ZWRMaW5rUHJvZ3JhbT8uX2lkICYmXG4gICAgICB0aGlzLnNlbGVjdGVkVmFsdWVzPy5wcm9ncmFtPy5faWQgIT09IHRoaXMuc2VsZWN0ZWRMaW5rUHJvZ3JhbT8uX2lkXG4gICAgKSB7XG4gICAgICByZW1vdmUgPSB7XG4gICAgICAgIHBvbGljeUlkczogW3RoaXMucG9saWN5Py5wb2xpY3lfaWQgPz8gMF0sXG4gICAgICAgIHByb2dyYW1JZDogdGhpcy5zZWxlY3RlZExpbmtQcm9ncmFtPy5faWQsXG4gICAgICB9O1xuICAgIH1cbiAgICBjb25zdCBjdXJyZW50QnVzaW5lc3NDeWNsZSA9IHtcbiAgICAgIHN0YXJ0X2RhdGU6IHRoaXMuY3VycmVudEJ1c2luZXNzQ3ljbGU/LnN0YXJ0X2RhdGUsXG4gICAgICBlbmRfZGF0ZTogdGhpcy5jdXJyZW50QnVzaW5lc3NDeWNsZT8uZW5kX2RhdGUsXG4gICAgICBzZWxlY3RlZF9jeWNsZV9hcnI6IHRoaXMuY3VycmVudEJ1c2luZXNzQ3ljbGU/LnNlbGVjdGVkX2N5Y2xlX2FycixcbiAgICAgIHNlbGVjdGVkX2N5Y2xlOiB0aGlzLmN1cnJlbnRCdXNpbmVzc0N5Y2xlPy5zZWxlY3RlZF9jeWNsZSxcbiAgICB9O1xuICAgIGxldCBsaW5rUHJvZ3JhbSA9IHtcbiAgICAgIGFkZGVkOiBPYmplY3Qua2V5cyhwYXlsb2FkKS5sZW5ndGggPyBbcGF5bG9hZF0gOiBbXSxcbiAgICAgIHJlbW92ZWQ6IE9iamVjdC5rZXlzKHJlbW92ZSkubGVuZ3RoID8gW3JlbW92ZV0gOiBbXSxcbiAgICB9O1xuICAgIGxldCBzZWxlY3RlZFByb2dyYW0gPSB7XG4gICAgICBzZWxlY3RlZFZhbHVlczogdGhpcy5zZWxlY3RlZFZhbHVlcyxcbiAgICAgIGxpbmtQcm9ncmFtOiBsaW5rUHJvZ3JhbSxcbiAgICAgIGJ1c2luZXNzQ3ljbGU6IGN1cnJlbnRCdXNpbmVzc0N5Y2xlLFxuICAgIH07XG4gICAgdGhpcy51cGRhdGVkUHJvZ3JhbURldGFpbHMuZW1pdChcbiAgICAgIEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoc2VsZWN0ZWRQcm9ncmFtKSlcbiAgICApO1xuICAgIHRoaXMuc3VibWlzc2lvbkxvYWRlciA9IGZhbHNlO1xuXG4gICAgY29uc3QgcmVxdWVzdCA9IHtcbiAgICAgIG1ldGhvZDogJ3Bvc3QnLFxuICAgICAgYWN0aW9uOiAnL2NvbXBsaWFuY2VfcG9zdCcsXG4gICAgICBwYXJhbXMsXG4gICAgICBkYXRhOiBwYXlsb2FkLFxuICAgICAgYnVzaW5lc3NDeWNsZTogY3VycmVudEJ1c2luZXNzQ3ljbGUsXG4gICAgfTtcbiAgICAvLyB0aGlzLnJlc3RBcGlTZXJ2aWNlLmFwaURlbGVnYXRlKHJlcXVlc3QpLnBpcGUodGFrZVVudGlsKHRoaXMudW5zdWJzY3JpYmUpKS5zdWJzY3JpYmUoe1xuICAgIC8vICAgbmV4dDogKHJlczogYW55KSA9PiB7XG4gICAgLy8gICAgIHRoaXMuc3VibWlzc2lvbkxvYWRlciA9IGZhbHNlO1xuICAgIC8vICAgICB0aGlzLnNuYWNrYmFyLnNob3coJ1RoZSBwcm9ncmFtIGhhcyBiZWVuIGxpbmtlZCB3aXRoIHRoaXMgUG9saWN5LicsICdzdWNjZXNzJyk7XG4gICAgLy8gICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgIC8vICAgICAgIGlmKHRoaXMuY3VycmVudFRhYiAhPSAnbGlua2VkX3Byb2dyYW1zJyl7XG4gICAgLy8gICAgICAgICB0aGlzLnJlZnJlc2hMaW5rZWRQb2xpY2llcy5lbWl0KCk7XG4gICAgLy8gICAgICAgICAvLyB0aGlzLmNoYW5nZVRhYi5lbWl0KCk7XG4gICAgLy8gICAgICAgfVxuICAgIC8vICAgICAgIHRoaXMuY2xvc2UuZW1pdCgpO1xuICAgIC8vICAgICB9LCAxMDAwKTtcblxuICAgIC8vICAgfSxcbiAgICAvLyAgIGVycm9yOiAoZXJyOiBhbnkpID0+IHtcbiAgICAvLyAgICAgdGhpcy5zdWJtaXNzaW9uTG9hZGVyID0gZmFsc2U7XG4gICAgLy8gICAgIHRoaXMuc25hY2tiYXIuc2hvdyhcIk9vcHMgU29tZXRoaW5nIHdlbnQgd3JvbmcgYW5kIHdlIHdlcmUgdW5hYmxlIHRvIGNvbXBsZXRlIHRoaXMgYWN0aW9uLiBMZXQncyBnaXZlIGl0IGFub3RoZXIgdHJ5IHNoYWxsIHdlID9cIik7XG4gICAgLy8gICB9LFxuICAgIC8vIH0pO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwibGluay1wb2xpY3lcIiBbY2xhc3MuYW5pbWF0ZV09XCJhbmltYXRpb25cIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY3VycmVudExpc3QgPT0ncHJvZ3JhbXMnXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJwcm9ncmFtLWxpc3RpbmctaGVhZCB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWp1c3RpZnktYmV0d2VlbiB2eC1wbC00IHZ4LXByLTRcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2eC1mcy0xNCB2eC1mdy01MDAgdngtbGFiZWwtdHh0XCI+U2VsZWN0IGEgUHJvZ3JhbTwvZGl2PlxuICAgICAgICAgICAgPCEtLSA8YnV0dG9uIChjbGljayk9XCJnb0JhY2soKVwiIGNsYXNzPVwiYmFjay1idG4gdngtZnMtMTIgdngtZnctNTAwIHZ4LWxhYmxlLXR4dCB2eC10dC11cHBlcmNhc2UgdngtcC0wIHZ4LW0tMCB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyXCI+PGkgY2xhc3M9XCJpY29ucyB2eC1tci0xXCI+JiN4ZTkxZDs8L2k+IEJhY2s8L2J1dHRvbj4gLS0+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwicHJvZ3JhbS1saXN0aW5nLWJvZHlcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWx0ZXItY2FyZC1yb3cgdngtZC1mbGV4IHZ4LW1iLTJcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmlsdGVyLWNhcmQgdngtYmctd2hpdGUgdngtZC1mbGV4IHZ4LWp1c3RpZnktYmV0d2VlbiB2eC1hbGlnbi1jZW50ZXIgdngtcHQtMiB2eC1wYi0yIHZ4LXBsLTMgdngtcHItMyB2eC13LTEwMFwiIFtjbGFzcy5hY3RpdmVdPVwiYWN0aXZlVGFiID09ICdyZWd1bGF0aW9ucydcIiAoY2xpY2spPVwiY2hhbmdlVGFiUHJvZ3JhbSgncmVndWxhdGlvbnMnKVwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGVmdCB2eC1kLWJsb2NrIHZ4LXctMTAwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGFiZWwgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2eC1kLWJsb2NrIHZ4LWxoLTNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwidngtcGFyYWdyYXBoLXR4dCB2eC1mdy01MDAgdngtdHQtdXBwZXJjYXNlIHZ4LWQtZmxleCB2eC1qdXN0aWZ5LWJldHdlZW4gdngtYWxpZ24tY2VudGVyXCI+UkVHVUxBVElPTlM8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZ4LWZzLTEwIHZ4LWZ3LTYwMCB2eC1sYWJlbC10eHQgdngtbGgtNFwiICpuZ0lmPVwicHJvZ3JhbURhdGE/LlNlbGVjdGVkUmVndWxhdGlvblByb2dyYW1zQ291bnQ+IDBcIj57e3Byb2dyYW1EYXRhPy5TZWxlY3RlZFJlZ3VsYXRpb25Qcm9ncmFtc0NvdW50fX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7KHByb2dyYW1EYXRhPy5TZWxlY3RlZFJlZ3VsYXRpb25Qcm9ncmFtc0NvdW50PT0xKT8nUHJvZ3JhbSc6J1Byb2dyYW1zJ319IHNlbGVjdGVkPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmlnaHQgdngtZC1mbGV4IHZ4LWp1c3RpZnktZW5kIHZ4LXctMTAwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNvdW50ZXIgdngtdHh0LXdoaXRlIHZ4LWZ3LTUwMCB2eC1kLWlubGluZS1ibG9jayB2eC10ZXh0LWNlbnRlclwiPnt7cHJvZ3JhbURhdGE/LkFsbFJlZ3VsYXRpb25Qcm9ncmFtc0NvdW50fX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWx0ZXItY2FyZCB2eC1iZy13aGl0ZSB2eC1kLWZsZXggdngtanVzdGlmeS1iZXR3ZWVuIHZ4LWFsaWduLWNlbnRlciB2eC1wdC0yIHZ4LXBiLTIgdngtcGwtMyB2eC1wci0zIHZ4LXctMTAwXCIgW2NsYXNzLmFjdGl2ZV09XCJhY3RpdmVUYWIgPT0gJ3N0YW5kYXJkcydcIiAoY2xpY2spPVwiY2hhbmdlVGFiUHJvZ3JhbSgnc3RhbmRhcmRzJylcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxlZnQgdngtZC1ibG9jayB2eC13LTEwMFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxhYmVsIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidngtZC1ibG9jayB2eC1saC0zXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cInZ4LXBhcmFncmFwaC10eHQgdngtZnctNTAwIHZ4LXR0LXVwcGVyY2FzZSB2eC1kLWZsZXggdngtanVzdGlmeS1iZXR3ZWVuIHZ4LWFsaWduLWNlbnRlclwiPlNUQU5EQVJEUzwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidngtZnMtMTAgdngtZnctNjAwIHZ4LWxhYmVsLXR4dCB2eC1saC00XCIgKm5nSWY9XCJwcm9ncmFtRGF0YT8uU2VsZWN0ZWRTdGFuZGFyZFByb2dyYW1zQ291bnQ+IDBcIj57e3Byb2dyYW1EYXRhPy5TZWxlY3RlZFN0YW5kYXJkUHJvZ3JhbXNDb3VudH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyhwcm9ncmFtRGF0YT8uU2VsZWN0ZWRTdGFuZGFyZFByb2dyYW1zQ291bnQ9PTEpPydQcm9ncmFtJzonUHJvZ3JhbXMnfX0gc2VsZWN0ZWQ8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmlnaHQgdngtZC1mbGV4IHZ4LWp1c3RpZnktZW5kIHZ4LXctMTAwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNvdW50ZXIgdngtdHh0LXdoaXRlIHZ4LWZ3LTUwMCB2eC1kLWlubGluZS1ibG9jayB2eC10ZXh0LWNlbnRlclwiPnt7cHJvZ3JhbURhdGE/LkFsbFN0YW5kYXJkUHJvZ3JhbXNDb3VudH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmlsdGVyLWNhcmQgdngtYmctd2hpdGUgdngtZC1mbGV4IHZ4LWp1c3RpZnktYmV0d2VlbiB2eC1hbGlnbi1jZW50ZXIgdngtcHQtMiB2eC1wYi0yIHZ4LXBsLTMgdngtcHItMyB2eC13LTEwMFwiIFtjbGFzcy5hY3RpdmVdPVwiYWN0aXZlVGFiID09ICdpbnRlcm5hbF9jb250cm9scydcIiAoY2xpY2spPVwiY2hhbmdlVGFiUHJvZ3JhbSgnaW50ZXJuYWxfY29udHJvbHMnKVwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGVmdCB2eC1kLWJsb2NrIHZ4LXctMTAwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGFiZWwgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2eC1kLWJsb2NrIHZ4LWxoLTNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwidngtcGFyYWdyYXBoLXR4dCB2eC1mdy01MDAgdngtdHQtdXBwZXJjYXNlIHZ4LWQtZmxleCB2eC1qdXN0aWZ5LWJldHdlZW4gdngtYWxpZ24tY2VudGVyXCI+SU5URVJOQUwgQ09OVFJPTFM8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZ4LWZzLTEwIHZ4LWZ3LTYwMCB2eC1sYWJlbC10eHQgdngtbGgtNFwiICpuZ0lmPVwicHJvZ3JhbURhdGE/LlNlbGVjdGVkSW50ZXJuYWxDb250cm9sc1Byb2dyYW1zQ291bnQ+IDBcIj57e3Byb2dyYW1EYXRhPy5TZWxlY3RlZEludGVybmFsQ29udHJvbHNQcm9ncmFtc0NvdW50fX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7KHByb2dyYW1EYXRhPy5TZWxlY3RlZEludGVybmFsQ29udHJvbHNQcm9ncmFtc0NvdW50PT0xKT8nUHJvZ3JhbSc6J1Byb2dyYW1zJ319IHNlbGVjdGVkPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmlnaHQgdngtZC1mbGV4IHZ4LWp1c3RpZnktZW5kIHZ4LXctMTAwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNvdW50ZXIgdngtdHh0LXdoaXRlIHZ4LWZ3LTUwMCB2eC1kLWlubGluZS1ibG9jayB2eC10ZXh0LWNlbnRlclwiPnt7cHJvZ3JhbURhdGE/LkFsbEludGVybmFsQ29udHJvbHNQcm9ncmFtc0NvdW50fX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWx0ZXItY2FyZCB2eC1iZy13aGl0ZSB2eC1kLWZsZXggdngtanVzdGlmeS1iZXR3ZWVuIHZ4LWFsaWduLWNlbnRlciB2eC1wdC0yIHZ4LXBiLTIgdngtcGwtMyB2eC1wci0zIHZ4LXctMTAwXCIgW2NsYXNzLmFjdGl2ZV09XCJhY3RpdmVUYWIgPT0gJ290aGVycydcIiAoY2xpY2spPVwiY2hhbmdlVGFiUHJvZ3JhbSgnb3RoZXJzJylcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxlZnQgdngtZC1ibG9jayB2eC13LTEwMFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxhYmVsIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidngtZC1ibG9jayB2eC1saC0zXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cInZ4LXBhcmFncmFwaC10eHQgdngtZnctNTAwIHZ4LXR0LXVwcGVyY2FzZSB2eC1kLWZsZXggdngtanVzdGlmeS1iZXR3ZWVuIHZ4LWFsaWduLWNlbnRlclwiPk9USEVSUzwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidngtZnMtMTAgdngtZnctNjAwIHZ4LWxhYmVsLXR4dCB2eC1saC00XCIgKm5nSWY9XCJwcm9ncmFtRGF0YT8uU2VsZWN0ZWRPdGhlcnNQcm9ncmFtc0NvdW50PiAwXCI+e3twcm9ncmFtRGF0YT8uU2VsZWN0ZWRPdGhlcnNQcm9ncmFtc0NvdW50fX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7KHByb2dyYW1EYXRhPy5TZWxlY3RlZE90aGVyc1Byb2dyYW1zQ291bnQ9PTEpPydQcm9ncmFtJzonUHJvZ3JhbXMnfX0gc2VsZWN0ZWQ8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyaWdodCB2eC1kLWZsZXggdngtanVzdGlmeS1lbmQgdngtdy0xMDBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY291bnRlciB2eC10eHQtd2hpdGUgdngtZnctNTAwIHZ4LWQtaW5saW5lLWJsb2NrIHZ4LXRleHQtY2VudGVyXCI+e3twcm9ncmFtRGF0YT8uQWxsT3RoZXJzUHJvZ3JhbXNDb3VudH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cblxuXG4gICAgICAgICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwiZmlsdGVyLWNhcmRcIiBbY2xhc3MuYWN0aXZlXT1cImFjdGl2ZVRhYiA9PSAncmVndWxhdGlvbnMnXCIgKGNsaWNrKT1cImNoYW5nZVRhYlByb2dyYW0oJ3JlZ3VsYXRpb25zJylcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxlZnRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbD5SRUdVTEFUSU9OUzwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICA8cCAqbmdJZj1cInByb2dyYW1EYXRhPy5TZWxlY3RlZFJlZ3VsYXRpb25Qcm9ncmFtc0NvdW50PiAwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3twcm9ncmFtRGF0YT8uU2VsZWN0ZWRSZWd1bGF0aW9uUHJvZ3JhbXNDb3VudH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3socHJvZ3JhbURhdGE/LlNlbGVjdGVkUmVndWxhdGlvblByb2dyYW1zQ291bnQ9PTEpPydQcm9ncmFtJzonUHJvZ3JhbXMnfX0gc2VsZWN0ZWRcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY291bnRlclwiPnt7cHJvZ3JhbURhdGE/LkFsbFJlZ3VsYXRpb25Qcm9ncmFtc0NvdW50fX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9kaXY+IC0tPlxuICAgICAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImZpbHRlci1jYXJkXCIgW2NsYXNzLmFjdGl2ZV09XCJhY3RpdmVUYWIgPT0gJ3N0YW5kYXJkcydcIiAoY2xpY2spPVwiY2hhbmdlVGFiUHJvZ3JhbSgnc3RhbmRhcmRzJylcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxlZnRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbD5TVEFOREFSRFM8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHAgKm5nSWY9XCJwcm9ncmFtRGF0YT8uU2VsZWN0ZWRTdGFuZGFyZFByb2dyYW1zQ291bnQ+IDBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e3Byb2dyYW1EYXRhPy5TZWxlY3RlZFN0YW5kYXJkUHJvZ3JhbXNDb3VudH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3socHJvZ3JhbURhdGE/LlNlbGVjdGVkU3RhbmRhcmRQcm9ncmFtc0NvdW50PT0xKT8nUHJvZ3JhbSc6J1Byb2dyYW1zJ319IHNlbGVjdGVkXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNvdW50ZXJcIj57e3Byb2dyYW1EYXRhPy5BbGxTdGFuZGFyZFByb2dyYW1zQ291bnR9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj4gLS0+XG4gICAgICAgICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwiZmlsdGVyLWNhcmRcIiBbY2xhc3MuYWN0aXZlXT1cImFjdGl2ZVRhYiA9PSAnaW50ZXJuYWxfY29udHJvbHMnXCIgKGNsaWNrKT1cImNoYW5nZVRhYlByb2dyYW0oJ2ludGVybmFsX2NvbnRyb2xzJylcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxlZnRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbD5JTlRFUk5BTCBDT05UUk9MUzwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICA8cCAqbmdJZj1cInByb2dyYW1EYXRhPy5TZWxlY3RlZEludGVybmFsQ29udHJvbHNQcm9ncmFtc0NvdW50PiAwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3twcm9ncmFtRGF0YT8uU2VsZWN0ZWRJbnRlcm5hbENvbnRyb2xzUHJvZ3JhbXNDb3VudH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3socHJvZ3JhbURhdGE/LlNlbGVjdGVkSW50ZXJuYWxDb250cm9sc1Byb2dyYW1zQ291bnQ9PTEpPydQcm9ncmFtJzonUHJvZ3JhbXMnfX0gc2VsZWN0ZWRcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY291bnRlclwiPnt7cHJvZ3JhbURhdGE/LkFsbEludGVybmFsQ29udHJvbHNQcm9ncmFtc0NvdW50fX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9kaXY+IC0tPlxuICAgICAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImZpbHRlci1jYXJkXCIgW2NsYXNzLmFjdGl2ZV09XCJhY3RpdmVUYWIgPT0gJ290aGVycydcIiAoY2xpY2spPVwiY2hhbmdlVGFiUHJvZ3JhbSgnb3RoZXJzJylcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxlZnRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbD5PVEhFUlM8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHAgKm5nSWY9XCJwcm9ncmFtRGF0YT8uU2VsZWN0ZWRPdGhlcnNQcm9ncmFtc0NvdW50PiAwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3twcm9ncmFtRGF0YT8uU2VsZWN0ZWRPdGhlcnNQcm9ncmFtc0NvdW50fX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyhwcm9ncmFtRGF0YT8uU2VsZWN0ZWRPdGhlcnNQcm9ncmFtc0NvdW50PT0xKT8nUHJvZ3JhbSc6J1Byb2dyYW1zJ319IHNlbGVjdGVkXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNvdW50ZXJcIj57e3Byb2dyYW1EYXRhPy5BbGxPdGhlcnNQcm9ncmFtc0NvdW50fX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9kaXY+IC0tPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGluay1wb2xpY3ktc2VhcmNoIHZ4LW1iLTJcIj5cbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb25zIHZ4LWZzLTEyXCI+JiN4ZTkwYjs8L2k+XG4gIDxpbnB1dCB0eXBlPVwidGV4dFwiIHBsYWNlaG9sZGVyPVwiU2VhcmNoIFByb2dyYW1zXCIgI3NlYXJjaFByb2dyYW1cbiAgICAgICAgICAgICAgICAgICAgKGtleXVwLmVudGVyKT1cInNlYXJjaEJ5KCRldmVudC50YXJnZXQudmFsdWUsJ3Byb2dyYW1zJylcIiAvPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8dnVpLXBhZ2luYXRpb24gKm5nSWY9XCIoIWxvYWRlcikgJiYgcHJvZ3JhbURhdGEudG90YWxQYWdlcz4xXCIgW2Zyb21dPVwicHJvZ3JhbURhdGEuZnJvbVwiXG4gICAgICAgICAgICAgICAgW3RvXT1cInByb2dyYW1EYXRhLnRvXCIgW3RvdGFsXT1cInByb2dyYW1EYXRhLnRvdGFsUmVjb3Jkc1wiIFtzaG93UGFnZURldGFpbF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICBbdG90YWxQYWdlXT1cInByb2dyYW1EYXRhLnRvdGFsUGFnZXNcIiBbY3VycmVudFBhZ2VdPVwicHJvZ3JhbURhdGEuY3VycmVudFBhZ2VcIiBbcGFnZUluU2luZ2xlVmlld109XCI1XCJcbiAgICAgICAgICAgICAgICAocGFnZUNoYW5nZWQpPVwiY2hhbmdlUGFnZSgkZXZlbnQsJ3Byb2dyYW1zJylcIj5cbiAgICAgICAgICAgIDwvdnVpLXBhZ2luYXRpb24+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJvZ3JhbS1saXN0aW5nLXBhcnQgdngtbWItNFwiIFtjbGFzcy53aXRoLXBhZ2luYXRpb25dPVwiKCFsb2FkZXIpICYmIHByb2dyYW1EYXRhLnRvdGFsUGFnZXM+MVwiPlxuICAgICAgICAgICAgICAgIDxhcHAtbm8tZGF0YSAqbmdJZj1cInByb2dyYW1EYXRhPy5kYXRhPy5sZW5ndGg9PTAgJiYgIWxvYWRlclwiXG4gICAgICAgICAgICAgICAgICAgIFtub0RhdGFJbWFnZV09XCInaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L3NlYXJjaC1kYXRhLnN2ZydcIiBbbm9EYXRhVGV4dF09XCInTm8gZGF0YSB0byBkaXNwbGF5J1wiPjwvYXBwLW5vLWRhdGE+XG5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJvZ3JhbS1saXN0aW5nLWl0ZW1cIiBbY2xhc3MuYWN0aXZlXT1cInNlbGVjdGVkVmFsdWVzPy5wcm9ncmFtPy5jYXRlZ29yeV9pZCA9PSBwcm9ncmFtPy5jYXRlZ29yeV9pZFwiXG4gICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBwcm9ncmFtIG9mIHByb2dyYW1EYXRhLmRhdGE7bGV0IGkgPSBpbmRleFwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFibGUtcm93IG1haW4tbGlzdFwiIFtjbGFzcy5hY3RpdmVdPVwic2VsZWN0ZWRWYWx1ZXM/LnByb2dyYW0/LmNhdGVnb3J5X2lkID09IHByb2dyYW0/LmNhdGVnb3J5X2lkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCJwcm9ncmFtPy5wcm9ncmFtUmVwb3J0RXhpc3RzPT0wXCIgKGNsaWNrKT1cInNlbGVjdFByb2dyYW0odHJ1ZSxwcm9ncmFtKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLWNvbHVtbiBzZXJpYWxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Itbm9cIiBbYXBwVG9vbHRpcF09XCJpK3Byb2dyYW1EYXRhLmZyb21cIiBwbGFjZW1lbnQ9XCJib3R0b21cIiBkZWxheT1cIjBcIiB0eXBlPVwiYmxhY2tcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJ0cnVlXCI+e3tpK3Byb2dyYW1EYXRhLmZyb219fTwvZGl2PlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhcHAtY3MtcmFkaW8gW25hbWVdPVwiJ3BvbGljeU5hbWUnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cInNlbGVjdGVkVmFsdWVzPy5wcm9ncmFtPy5jYXRlZ29yeV9pZCA9PSBwcm9ncmFtPy5jYXRlZ29yeV9pZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hlY2tlZEV2ZW50KT1cInNlbGVjdFByb2dyYW0oJGV2ZW50LnRhcmdldC5jaGVja2VkLHByb2dyYW0pXCI+PC9hcHAtY3MtcmFkaW8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0YWJsZS1jb2x1bW4gbmFtZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJuYW1lLWlubmVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJuYW1lLXdpdGgtY291bnRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2YWx1ZVwiIGFwcFRvb2x0aXA9XCJ7e3Byb2dyYW0/Lm5hbWUgfCB0b29sdGlwVmFsaWRhdGlvbn19XCIgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIiBkZWxheT1cIjBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJibGFja1wiIFt0b29sdGlwTWFuZGF0b3J5XT1cImZhbHNlXCI+e3twcm9ncmFtPy5uYW1lfX08L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsaW5rLXBvbGljeS1mbG9hdGluZy1iYXIgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1qdXN0aWZ5LWJldHdlZW4gdngtcC0zXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxpbmstcG9saWN5LWZsb2F0aW5nLWJhci1sZWZ0IHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoaXBDb250YWluZXIgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1wbC0yIHZ4LXByLTJcIiAqbmdJZj1cInNlbGVjdGVkVmFsdWVzPy5wcm9ncmFtPy5uYW1lXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb25zIGNyb3NzIHZ4LWZzLTEwIHZ4LXBhcmFncmFwaC10eHQgdngtbXItMVwiIChjbGljayk9XCJyZW1vdmUoJ3Byb2dyYW1zJywnJylcIj4mI3hlOWFlOzwvaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2hpcE5hbWUgdngtZnMtMTEgdngtbGFiZWwtdHh0XCIgW2FwcFRvb2x0aXBdPVwic2VsZWN0ZWRWYWx1ZXM/LnByb2dyYW0/Lm5hbWVcIiBwbGFjZW1lbnQ9XCJib3R0b20tbGVmdFwiIGRlbGF5PVwiMFwiIHR5cGU9XCJibGFja1wiIFt0b29sdGlwTWFuZGF0b3J5XT1cImZhbHNlXCI+e3tzZWxlY3RlZFZhbHVlcz8ucHJvZ3JhbT8ubmFtZX19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJjaGlwIHZ4LXBsLTIgdngtcHItMiB2eC10eHQtYmx1ZSB2eC1mcy0xMiB2eC1saC02IHZ4LW1yLTFcIiAqbmdJZj1cInNlbGVjdGVkVmFsdWVzPy5wcm9ncmFtPy5uYW1lXCI+PGkgY2xhc3M9XCJpY29ucyB2eC1tci0xXCIgKGNsaWNrKT1cInJlbW92ZSgncHJvZ3JhbXMnLCcnKVwiPiYjeGU5YWU7PC9pPnt7c2VsZWN0ZWRWYWx1ZXM/LnByb2dyYW0/Lm5hbWV9fTwvZGl2PiAtLT5cbiAgICAgICAgICAgICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwidngtZnMtMTIgdngtZnctNTAwIHZ4LXBhcmFncmFwaC10eHQgdngtbWwtMlwiPlBvbGljeSBzZWxlY3RlZDwvZGl2PiAtLT5cblxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsaW5rLXBvbGljeS1mbG9hdGluZy1iYXItcmlnaHQgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlclwiPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJnb0JhY2soKVwiIGNsYXNzPVwiY2FuY2VsLWJ0biB2eC1mcy0xMSB2eC1mdy01MDAgdngtdHQtdXBwZXJjYXNlIHZ4LW0tMCB2eC1tci0yIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtanVzdGlmeS1jZW50ZXIgdngtdHh0LXJlZFwiPkNBTkNFTDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8IS0tIDxidXR0b24gKGNsaWNrKT1cInNhdmVDaGFuZ2VzKCdwcm9ncmFtcycpXCIgW2NsYXNzLmRpc2FibGVkXT1cIiFzZWxlY3RlZFZhbHVlcz8ucHJvZ3JhbT8ubmFtZVwiIGNsYXNzPVwid2hpdGUtYnRuIHZ4LWZzLTExIHZ4LWZ3LTUwMCB2eC10dC11cHBlcmNhc2UgdngtbS0wIHZ4LW1yLTEgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1qdXN0aWZ5LWNlbnRlciB2eC10eHQtYmx1ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgTElOSyBDQVRFR09SSUVTIEFORCBSRVNQT05TSUJJTElUSUVTPC9idXR0b24+IC0tPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJzYXZlQ2hhbmdlcygncHJvZ3JhbXMnKVwiIFtjbGFzcy5kaXNhYmxlZF09XCIhc2VsZWN0ZWRWYWx1ZXM/LnByb2dyYW0/Lm5hbWVcIiBjbGFzcz1cIm5leHQtYnRuIHZ4LWZzLTExIHZ4LWZ3LTUwMCB2eC10dC11cHBlcmNhc2UgdngtbS0wIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtanVzdGlmeS1jZW50ZXIgdngtdHh0LXdoaXRlXCI+TGlua1xuICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29ucyB2eC1tbC0yXCI+JiN4ZTkxZTs8L2k+PC9idXR0b24+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cInByb2dyYW0tbGlzdGluZy1jb25maXJtYXRpb25cIiAqbmdJZj1cImRpc3BsYXlDb25maXJtYXRpb25NZXNzYWdlXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29uZmlybWF0aW9uLXRvcFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpY29uLWJsb2NrXCI+PGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5MzA7PC9pPjwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0XCI+WW91IGhhdmUgb3B0ZWQgdG8gbGluayBhbGwgdGhlIHJlc3BvbnNpYmlsaXRpZXMgdW5kZXIgdGhlIHNlbGVjdGVkIHByb2dyYW0gXCJ7e3NlbGVjdGVkVmFsdWVzPy5wcm9ncmFtPy5uYW1lIH19XCIgYW5kIGl0J3Mgc3ViLWNhdGVnb3JpZXMuPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb25maXJtYXRpb24tYm90dG9tXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1lc3NhZ2VcIj5BcmUgeW91IHN1cmUgeW91IHdvdWxkIGxpa2UgdG8gcHJvY2VlZD88L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYnV0dG9uLWdyb3VwXCI+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJuby1idG5cIiAoY2xpY2spPVwic2F2ZUNoYW5nZXNGcm9tUHJvZ3JhbShmYWxzZSlcIj5OTzwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwieWVzLWJ0blwiIChjbGljayk9XCJzYXZlQ2hhbmdlc0Zyb21Qcm9ncmFtKHRydWUpXCI+WUVTPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY3VycmVudExpc3Q9PSdjYXRlZ29yaWVzJ1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibGluay1wb2xpY3ktaGVhZCB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWp1c3RpZnktYmV0d2VlbiB2eC1wbC00IHZ4LXByLTRcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2eC1mcy0xNCB2eC1mdy01MDAgdngtbGFiZWwtdHh0IHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXJcIj48YnV0dG9uIChjbGljayk9XCJnb0JhY2soJ2NhdGVnb3JpZXMnKVwiIGNsYXNzPVwiYmFjay1idG4gdngtZnMtMTQgdngtZnctNTAwIHZ4LWxhYmxlLXR4dCB2eC1wLTAgdngtbXItMiB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyXCI+PGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5MWQ7PC9pPjwvYnV0dG9uPiBTZWxlY3QgcHJvZ3JhbSBjYXRlZ29yaWVzIHRvIGxpbmsgd2l0aCB0aGlzIHBvbGljeTwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImxpbmstcG9saWN5LWJvZHlcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsaW5rLXBvbGljeS1zZWFyY2ggdngtbWItMlwiPlxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnMgdngtZnMtMTJcIj4mI3hlOTBiOzwvaT5cbiAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBwbGFjZWhvbGRlcj1cIlNlYXJjaCBwcm9ncmFtIGNhdGVnb3JpZXNcIiAgI3NlYXJjaENhdGVnb3J5XG4gICAgICAgICAgICAgICAgICAgIChrZXl1cC5lbnRlcik9XCJzZWFyY2hCeSgkZXZlbnQudGFyZ2V0LnZhbHVlLCdjYXRlZ29yaWVzJylcIiAvPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8dnVpLXBhZ2luYXRpb24gKm5nSWY9XCIoIWxvYWRlcikgJiYgc3ViQ2F0ZWdvcmllc0xpc3QudG90YWxQYWdlPjFcIiBbZnJvbV09XCJzdWJDYXRlZ29yaWVzTGlzdC5mcm9tXCJcbiAgICAgICAgICAgICAgICBbdG9dPVwic3ViQ2F0ZWdvcmllc0xpc3QudG9cIiBbdG90YWxdPVwic3ViQ2F0ZWdvcmllc0xpc3QudG90YWxSZWNvcmRzXCIgW3Nob3dQYWdlRGV0YWlsXT1cInRydWVcIlxuICAgICAgICAgICAgICAgIFt0b3RhbFBhZ2VdPVwic3ViQ2F0ZWdvcmllc0xpc3QudG90YWxQYWdlXCIgW2N1cnJlbnRQYWdlXT1cInN1YkNhdGVnb3JpZXNMaXN0LmN1cnJlbnRQYWdlXCIgW3BhZ2VJblNpbmdsZVZpZXddPVwiNVwiXG4gICAgICAgICAgICAgICAgKHBhZ2VDaGFuZ2VkKT1cImNoYW5nZVBhZ2UoJGV2ZW50LCdwcm9ncmFtcycpXCI+XG4gICAgICAgICAgICA8L3Z1aS1wYWdpbmF0aW9uPlxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGluay1wb2xpY3ktdGFibGUgdngtbWItNFwiIFtjbGFzcy53aXRoLXBhZ2luYXRpb25dPVwiKCFsb2FkZXIpICYmIHN1YkNhdGVnb3JpZXNMaXN0LnRvdGFsUGFnZT4xXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFsb2FkZXIgJiYgc3ViQ2F0ZWdvcmllc0xpc3QuZGF0YT8ubGVuZ3RoPjBcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLWhlYWRlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLXJvd1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0YWJsZS1jb2x1bW4gdngtZnMtMTAgdngtZnctNTAwIHZ4LWxhYmVsLXR4dCB2eC1saC01IHZ4LXR0LXVwcGVyY2FzZSB2eC1wbC0xIHZ4LXByLTEgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciBzZXJpYWxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIzwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0YWJsZS1jb2x1bW4gdngtZnMtMTAgdngtZnctNTAwIHZ4LWxhYmVsLXR4dCB2eC1saC01IHZ4LXR0LXVwcGVyY2FzZSB2eC1wbC0xIHZ4LXByLTEgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciBjYXRlZ29yeS1uYW1lXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENBVEVHT1JJRVM8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLWJvZHlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gd2hlbiBjaGVja2JveCB3YXMgY2hlY2tlZCB0aGVuIGFjdGl2ZSBjbGFzcyB3YXMgdHJ1ZSAtLT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0YWJsZS1yb3dcIiBbY2xhc3MuYWN0aXZlXT1cInNlbGVjdGVkSWRzLmNhdGVnb3JpZXMuaW5jbHVkZXMoY2F0ZWdvcnkuY2F0ZWdvcnlfaWQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgY2F0ZWdvcnkgb2Ygc3ViQ2F0ZWdvcmllc0xpc3QuZGF0YTsgbGV0IGkgPSBpbmRleDtcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFibGUtY29sdW1uIHZ4LXBsLTEgdngtcHItMSB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHNlcmlhbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Itbm9cIiBbYXBwVG9vbHRpcF09XCJpK3N1YkNhdGVnb3JpZXNMaXN0LmZyb21cIiBwbGFjZW1lbnQ9XCJib3R0b21cIiBkZWxheT1cIjBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJsYWNrXCIgW3Rvb2x0aXBNYW5kYXRvcnldPVwidHJ1ZVwiPnt7aStzdWJDYXRlZ29yaWVzTGlzdC5mcm9tfX08L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHZ1aS1jaGVja2JveCBbY2hlY2tlZF09XCJzZWxlY3RlZElkcy5jYXRlZ29yaWVzLmluY2x1ZGVzKGNhdGVnb3J5LmNhdGVnb3J5X2lkKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cInNlbGVjdENhdGVnb3J5KCRldmVudC50YXJnZXQuY2hlY2tlZCxjYXRlZ29yeSlcIj48L3Z1aS1jaGVja2JveD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFibGUtY29sdW1uIHZ4LXBsLTEgdngtcHItMSB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIGNhdGVnb3J5LW5hbWVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZ4LWQtYmxvY2sgdngtdy0xMDBcIj5cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZhbHVlIHZ4LWZzLTEyIHZ4LWxhYmVsLXR4dFwiIFthcHBUb29sdGlwXT1cImNhdGVnb3J5Py5pdGVtX25hbWUgfCB0b29sdGlwVmFsaWRhdGlvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIiBkZWxheT1cIjBcIiB0eXBlPVwiYmxhY2tcIiBbdG9vbHRpcE1hbmRhdG9yeV09XCJmYWxzZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7Y2F0ZWdvcnk/Lml0ZW1fbmFtZX19PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG5cbiAgICAgICAgICAgICAgICA8YXBwLW5vLWRhdGEgKm5nSWY9XCIhbG9hZGVyICYmIHN1YkNhdGVnb3JpZXNMaXN0LmRhdGE/Lmxlbmd0aD09MFwiXG4gICAgICAgICAgICAgICAgICAgIFtub0RhdGFJbWFnZV09XCInaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L3NlYXJjaC1kYXRhLnN2ZydcIiBbbm9EYXRhVGV4dF09XCInTm8gZGF0YSB0byBkaXNwbGF5J1wiPjwvYXBwLW5vLWRhdGE+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxpbmstcG9saWN5LWZsb2F0aW5nLWJhciB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWp1c3RpZnktYmV0d2VlbiB2eC1wLTNcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGluay1wb2xpY3ktZmxvYXRpbmctYmFyLWxlZnQgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlclwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hpcENvbnRhaW5lciB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LXBsLTIgdngtcHItMlwiICpuZ0lmPVwic2VsZWN0ZWRWYWx1ZXM/LmNhdGVnb3JpZXM/Lmxlbmd0aD4wXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb25zIGNyb3NzIHZ4LWZzLTEwIHZ4LXBhcmFncmFwaC10eHQgdngtbXItMVwiIChjbGljayk9XCJyZW1vdmUoJ2NhdGVnb3JpZXMnLHNlbGVjdGVkVmFsdWVzPy5jYXRlZ29yaWVzWzBdKVwiPiYjeGU5YWU7PC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjaGlwTmFtZSB2eC1mcy0xMSB2eC1sYWJlbC10eHRcIiBbYXBwVG9vbHRpcF09XCJzZWxlY3RlZFZhbHVlcz8uY2F0ZWdvcmllc1swXT8uaXRlbV9uYW1lXCIgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIiBkZWxheT1cIjBcIiB0eXBlPVwiYmxhY2tcIiBbdG9vbHRpcE1hbmRhdG9yeV09XCJmYWxzZVwiPnt7c2VsZWN0ZWRWYWx1ZXM/LmNhdGVnb3JpZXNbMF0/Lml0ZW1fbmFtZX19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImNvdW50QnRuIHZ4LWZzLTkgdngtZnctNTAwIHZ4LXR4dC13aGl0ZSB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWp1c3RpZnktY2VudGVyIHZ4LWxoLTRcIiBhcHBQb3BvdmVyIChjbGljayk9XCJwcm9ncmFtQ291bnQucG9wb3ZlcigpXCIgcGxhY2VtZW50PVwibGVmdFwiICpuZ0lmPVwic2VsZWN0ZWRWYWx1ZXM/LmNhdGVnb3JpZXM/Lmxlbmd0aD4xXCI+K3t7c2VsZWN0ZWRWYWx1ZXM/LmNhdGVnb3JpZXM/LnNsaWNlKDEpLmxlbmd0aH19PC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJzZWxlY3RlZFZhbHVlcz8uY2F0ZWdvcmllcz8uc2xpY2UoMSkubGVuZ3RoXCIgY2xhc3M9XCJ2eC1mcy0xMiB2eC1mdy01MDAgdngtcGFyYWdyYXBoLXR4dCB2eC1tbC0yXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyhzZWxlY3RlZFZhbHVlcz8uY2F0ZWdvcmllcz8uc2xpY2UoMSkubGVuZ3RoID09PSAxKT8gJ1Byb2dyYW0gY2F0ZWdvcnlcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkJzonUHJvZ3JhbSBjYXRlZ29yaWVzIHNlbGVjdGVkJ319XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8YXBwLXBvcG92ZXIgI3Byb2dyYW1Db3VudD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3Zi1hY3Rpb24tbGlzdFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz1cImFjdGlvbi1pdGVtXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSAqbmdGb3I9XCJsZXQgc2VsZWN0ZWRDYXRlZ29yeSBvZiBzZWxlY3RlZFZhbHVlcz8uY2F0ZWdvcmllcz8uc2xpY2UoMSlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhdmF0YXItY2FyZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnMgY3Jvc3MtYnRuIHZ4LWZzLTEyIHZ4LXBhcmFncmFwaC10eHQgdngtbXItMlwiIChjbGljayk9XCJyZW1vdmUoJ2NhdGVnb3JpZXMnLHNlbGVjdGVkQ2F0ZWdvcnkpXCI+JiN4ZTlhZTs8L2k+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2YWx1ZVwiPnt7c2VsZWN0ZWRDYXRlZ29yeT8uaXRlbV9uYW1lfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvYXBwLXBvcG92ZXI+XG5cblxuICAgICAgICAgICAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJjaGlwIHZ4LXBsLTIgdngtcHItMiB2eC10eHQtYmx1ZSB2eC1mcy0xMiB2eC1saC02IHZ4LW1yLTFcIiAqbmdJZj1cInNlbGVjdGVkVmFsdWVzLmNhdGVnb3JpZXMubGVuZ3RoPjBcIj48aSAoY2xpY2spPVwicmVtb3ZlKCdjYXRlZ29yaWVzJyxzZWxlY3RlZFZhbHVlcz8uY2F0ZWdvcmllc1swXSlcIiBjbGFzcz1cImljb25zIHZ4LW1yLTFcIj4mI3hlOWFlOzwvaT4ge3tzZWxlY3RlZFZhbHVlcz8uY2F0ZWdvcmllc1swXT8uaXRlbV9uYW1lfX08L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNlbGVjdGVkVmFsdWVzLmNhdGVnb3JpZXMubGVuZ3RoPjFcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJjb3VudCB2eC1mcy0xMiB2eC1mdy01MDAgdngtdHh0LXdoaXRlIHZ4LXAtMCB2eC1wbC0xIHZ4LXByLTEgdngtbS0wIHZ4LW1sLTEgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1qdXN0aWZ5LWNlbnRlclwiIHZjUG9wb3ZlciAoY2xpY2spPVwicHJvZ3JhbUNvdW50LnBvcG92ZXIoKVwiIHBvc2l0aW9uPVwibGVmdFwiPit7e3NlbGVjdGVkVmFsdWVzPy5jYXRlZ29yaWVzPy5zbGljZSgxKS5sZW5ndGh9fTwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZ4LWZzLTEyIHZ4LWZ3LTUwMCB2eC1wYXJhZ3JhcGgtdHh0IHZ4LW1sLTJcIj57eyhzZWxlY3RlZFZhbHVlcz8uY2F0ZWdvcmllcz8uc2xpY2UoMSk/Lmxlbmd0aD09MSk/J0NhdGVnb3J5IHNlbGVjdGVkJzonQ2F0ZWdvcmllcyBzZWxlY3RlZCd9fTwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGFwcC1wb3BvdmVyICNwcm9ncmFtQ291bnQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndmLWFjdGlvbi1saXN0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz1cImFjdGlvbi1pdGVtXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgKm5nRm9yPVwibGV0IHNlbGVjdGVkQ2F0ZWdvcnkgb2Ygc2VsZWN0ZWRWYWx1ZXM/LmNhdGVnb3JpZXM/LnNsaWNlKDEpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF2YXRhci1jYXJkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnMgY3Jvc3MtYnRuIHZ4LWZzLTEyIHZ4LXR4dC1ibHVlIHZ4LW1yLTJcIiAoY2xpY2spPVwicmVtb3ZlKCdjYXRlZ29yaWVzJyxzZWxlY3RlZENhdGVnb3J5KVwiPiYjeGU5YWU7PC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZhbHVlXCI+e3tzZWxlY3RlZENhdGVnb3J5Py5pdGVtX25hbWV9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2FwcC1wb3BvdmVyPlxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj4gLS0+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxpbmstcG9saWN5LWZsb2F0aW5nLWJhci1yaWdodCB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cImdvQmFjaygnY2F0ZWdvcmllcycpXCIgY2xhc3M9XCJjYW5jZWwtYnRuIHZ4LWZzLTExIHZ4LWZ3LTUwMCB2eC10dC11cHBlcmNhc2UgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1qdXN0aWZ5LWNlbnRlciB2eC10eHQtcmVkXCI+Q0FOQ0VMPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cInNhdmVDaGFuZ2VzKCdjYXRlZ29yaWVzJylcIiBbY2xhc3MuZGlzYWJsZWRdPVwiIXNlbGVjdGVkVmFsdWVzPy5jYXRlZ29yaWVzPy5sZW5ndGhcIiBjbGFzcz1cIm5leHQtYnRuIHZ4LWZzLTExIHZ4LWZ3LTUwMCB2eC10dC11cHBlcmNhc2UgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1qdXN0aWZ5LWNlbnRlciB2eC10eHQtd2hpdGUgdngtbWwtNVwiPkFkZCA8aSBjbGFzcz1cImljb25zIHZ4LW1sLTJcIj4mI3hlOTFlOzwvaT48L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjdXJyZW50TGlzdD09J3Jlc3BvbnNpYmlsaXRpZXMnXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJsaW5rLXBvbGljeS1oZWFkIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtanVzdGlmeS1iZXR3ZWVuIHZ4LXBsLTQgdngtcHItNFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZ4LWZzLTE0IHZ4LWZ3LTUwMCB2eC1sYWJlbC10eHQgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlclwiPjxidXR0b24gKGNsaWNrKT1cImdvQmFjaygncmVzcG9uc2liaWxpdGllcycpXCIgY2xhc3M9XCJiYWNrLWJ0biB2eC1mcy0xNCB2eC1mdy01MDAgdngtbGFibGUtdHh0IHZ4LXAtMCB2eC1tci0yIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXJcIj48aSBjbGFzcz1cImljb25zXCI+JiN4ZTkxZDs8L2k+PC9idXR0b24+IFNlbGVjdCBSZXNwb25zaWJpbGl0aWVzIHRvIGxpbmsgd2l0aCB0aGlzIHBvbGljeSA8L2Rpdj5cbiAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cInBhZ2UtdGl0bGUgdngtZnMtMTQgdngtZnctNTAwIHZ4LWxhYmVsLXR4dFwiPlNlbGVjdCBSZXNwb25zaWJpbGl0aWVzIHRvIGxpbmsgd2l0aCB0aGlzIHBvbGljeSA8L2Rpdj4gLS0+XG5cbiAgICAgICAgICAgIDwhLS0gPGJ1dHRvbiAgKGNsaWNrKT1cImdvQmFjaygncmVzcG9uc2liaWxpdGllcycpXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImJhY2stYnRuIHZ4LWZzLTE0IHZ4LWZ3LTUwMCB2eC1sYWJlbC10eHQgdngtdHQtdXBwZXJjYXNlIHZ4LXAtMCB2eC1tLTAgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlclwiPjxpXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaWNvbnMgdngtbXItMVwiPiYjeGU5MWQ7PC9pPiBCQUNLPC9idXR0b24+IC0tPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImxpbmstcG9saWN5LWJvZHlcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsaW5rLXBvbGljeS1zZWFyY2ggdngtbWItMlwiPlxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnMgdngtZnMtMTJcIj4mI3hlOTBiOzwvaT5cbiAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBwbGFjZWhvbGRlcj1cIlNlYXJjaCBSZXNwb25zaWJpbGl0aWVzXCIgKGtleXVwLmVudGVyKT1cInNlYXJjaEJ5KCRldmVudC50YXJnZXQudmFsdWUsJ3Jlc3BvbnNpYmlsaXRpZXMnKVwiIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDx2dWktcGFnaW5hdGlvbiAqbmdJZj1cIighbG9hZGVyKSAmJiByZXNwb25zaWJpbGl0aWVzTGlzdC50b3RhbFBhZ2U+MVwiIFtmcm9tXT1cInJlc3BvbnNpYmlsaXRpZXNMaXN0LmZyb21cIlxuICAgICAgICAgICAgICAgIFt0b109XCJyZXNwb25zaWJpbGl0aWVzTGlzdC50b1wiIFt0b3RhbF09XCJyZXNwb25zaWJpbGl0aWVzTGlzdC50b3RhbFJlY29yZHNcIiBbc2hvd1BhZ2VEZXRhaWxdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgW3RvdGFsUGFnZV09XCJyZXNwb25zaWJpbGl0aWVzTGlzdC50b3RhbFBhZ2VcIiBbY3VycmVudFBhZ2VdPVwicmVzcG9uc2liaWxpdGllc0xpc3QuY3VycmVudFBhZ2VcIiBbcGFnZUluU2luZ2xlVmlld109XCI1XCJcbiAgICAgICAgICAgICAgICAocGFnZUNoYW5nZWQpPVwiY2hhbmdlUGFnZSgkZXZlbnQsJ3Jlc3BvbnNpYmlsaXRpZXMnKVwiPlxuICAgICAgICAgICAgPC92dWktcGFnaW5hdGlvbj5cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxpbmstcG9saWN5LXRhYmxlIHZ4LW1iLTRcIiBbY2xhc3Mud2l0aC1wYWdpbmF0aW9uXT1cIighbG9hZGVyKSAmJiBzdWJDYXRlZ29yaWVzTGlzdC50b3RhbFBhZ2U+MVwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhbG9hZGVyICYmIHJlc3BvbnNpYmlsaXRpZXNMaXN0LmRhdGE/Lmxlbmd0aD4wXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0YWJsZS1oZWFkZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0YWJsZS1yb3dcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidGFibGUtY29sdW1uIHZ4LWZzLTEwIHZ4LWZ3LTUwMCB2eC1sYWJlbC10eHQgdngtbGgtNSB2eC10dC11cHBlcmNhc2UgdngtcGwtMSB2eC1wci0xIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgc2VyaWFsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICM8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidGFibGUtY29sdW1uIHZ4LWZzLTEwIHZ4LWZ3LTUwMCB2eC1sYWJlbC10eHQgdngtbGgtNSB2eC10dC11cHBlcmNhc2UgdngtcGwtMSB2eC1wci0xIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgY2F0ZWdvcnktbmFtZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSRVNQT05TSUJMSVRJRVM8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLWJvZHlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gd2hlbiBjaGVja2JveCB3YXMgY2hlY2tlZCB0aGVuIGFjdGl2ZSBjbGFzcyB3YXMgdHJ1ZSAtLT5cblxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLXJvd1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJzZWxlY3RlZElkcy5yZXNwb25zaWJpbGl0aWVzLmluY2x1ZGVzKHJlc3BvbnNpYmlsaXR5LlJlcG9ydElkKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IHJlc3BvbnNpYmlsaXR5IG9mIHJlc3BvbnNpYmlsaXRpZXNMaXN0LmRhdGE7IGxldCBpID0gaW5kZXg7XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLWNvbHVtbiB2eC1wbC0xIHZ4LXByLTEgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciBzZXJpYWxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNyLW5vXCIgW2FwcFRvb2x0aXBdPVwiaStyZXNwb25zaWJpbGl0aWVzTGlzdC5mcm9tXCIgcGxhY2VtZW50PVwiYm90dG9tXCIgZGVsYXk9XCIwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJibGFja1wiIFt0b29sdGlwTWFuZGF0b3J5XT1cInRydWVcIj57e2krcmVzcG9uc2liaWxpdGllc0xpc3QuZnJvbX19PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx2dWktY2hlY2tib3hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cInNlbGVjdGVkSWRzLnJlc3BvbnNpYmlsaXRpZXMuaW5jbHVkZXMocmVzcG9uc2liaWxpdHkuUmVwb3J0SWQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwic2VsZWN0UmVzcG9uc2liaWxpdHkoJGV2ZW50LnRhcmdldC5jaGVja2VkLHJlc3BvbnNpYmlsaXR5KVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3Z1aS1jaGVja2JveD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFibGUtY29sdW1uIHZ4LXBsLTEgdngtcHItMSB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIGNhdGVnb3J5LW5hbWVcIj5cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZhbHVlIHZ4LWZzLTEyIHZ4LWxhYmVsLXR4dFwiIFthcHBUb29sdGlwXT1cInJlc3BvbnNpYmlsaXR5Py5jb250cm9sX2lkICsgcmVzcG9uc2liaWxpdHk/LlJlcG9ydE5hbWUgfCB0b29sdGlwVmFsaWRhdGlvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIiBkZWxheT1cIjBcIiB0eXBlPVwiYmxhY2tcIiBbdG9vbHRpcE1hbmRhdG9yeV09XCJmYWxzZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidngtZnMtMTAgdngtZnctNTAwIHZ4LXR0LXVwcGVyY2FzZSB2eC1tci0xXCI+e3tyZXNwb25zaWJpbGl0eT8uY29udHJvbF9pZH19PC9zcGFuPiB7e3Jlc3BvbnNpYmlsaXR5Py5SZXBvcnROYW1lfX08L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJ0YWJsZS1jb2x1bW4gdngtcGwtMSB2eC1wci0xIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgY2F0ZWdvcnktbmFtZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZhbHVlIHZ4LWZzLTEyIHZ4LWxhYmVsLXR4dFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwiJ1tDSUQtMjAyMTAwMDVdIEEuOC4xLjMgQWNjZXB0YWJsZSBVc2Ugb2YgQXNzZXRzJ1wiIHBsYWNlbWVudD1cImJvdHRvbS1sZWZ0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWxheT1cIjBcIiB0eXBlPVwiYmxhY2tcIiBbdG9vbHRpcE1hbmRhdG9yeV09XCJmYWxzZVwiPjxzcGFuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidngtZnMtMTAgdngtZnctNTAwIHZ4LXR0LXVwcGVyY2FzZSB2eC1tci0xXCI+W0NJRC0yMDIxMDAwNV08L3NwYW4+IEEuOC4xLjNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY2NlcHRhYmxlIFVzZSBvZiBBc3NldHM8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+IC0tPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICAgICAgPGFwcC1uby1kYXRhICpuZ0lmPVwiIWxvYWRlciAmJiByZXNwb25zaWJpbGl0aWVzTGlzdC5kYXRhPy5sZW5ndGg9PTBcIlxuICAgICAgICAgICAgICAgICAgICBbbm9EYXRhSW1hZ2VdPVwiJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9zZWFyY2gtZGF0YS5zdmcnXCIgW25vRGF0YVRleHRdPVwiJ05vIGRhdGEgdG8gZGlzcGxheSdcIj48L2FwcC1uby1kYXRhPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGluay1wb2xpY3ktZmxvYXRpbmctYmFyIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtanVzdGlmeS1iZXR3ZWVuIHZ4LXAtMyB2eC1tdC0xXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxpbmstcG9saWN5LWZsb2F0aW5nLWJhci1sZWZ0IHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoaXBDb250YWluZXIgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1wbC0yIHZ4LXByLTJcIiAqbmdJZj1cInNlbGVjdGVkVmFsdWVzLnJlc3BvbnNpYmlsaXRpZXMubGVuZ3RoPjBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnMgY3Jvc3MgdngtZnMtMTAgdngtcGFyYWdyYXBoLXR4dCB2eC1tci0xXCIgKGNsaWNrKT1cInJlbW92ZSgncmVzcG9uc2liaWxpdGllcycsc2VsZWN0ZWRWYWx1ZXM/LnJlc3BvbnNpYmlsaXRpZXNbMF0pXCI+JiN4ZTlhZTs8L2k+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNoaXBOYW1lIHZ4LWZzLTExIHZ4LWxhYmVsLXR4dFwiIFthcHBUb29sdGlwXT1cInNlbGVjdGVkVmFsdWVzPy5yZXNwb25zaWJpbGl0aWVzWzBdPy5SZXBvcnROYW1lXCIgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIiBkZWxheT1cIjBcIiB0eXBlPVwiYmxhY2tcIiBbdG9vbHRpcE1hbmRhdG9yeV09XCJmYWxzZVwiPnt7c2VsZWN0ZWRWYWx1ZXM/LnJlc3BvbnNpYmlsaXRpZXNbMF0/LlJlcG9ydE5hbWV9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJjb3VudEJ0biB2eC1mcy05IHZ4LWZ3LTUwMCB2eC10eHQtd2hpdGUgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1qdXN0aWZ5LWNlbnRlciB2eC1saC00XCIgYXBwUG9wb3ZlciAoY2xpY2spPVwicmVzcG9uc2liaWxpdGllc1BvcG92ZXIucG9wb3ZlcigpXCIgcGxhY2VtZW50PVwibGVmdFwiICpuZ0lmPVwic2VsZWN0ZWRWYWx1ZXMucmVzcG9uc2liaWxpdGllcy5sZW5ndGg+MVwiPit7e3NlbGVjdGVkVmFsdWVzPy5yZXNwb25zaWJpbGl0aWVzPy5zbGljZSgxKS5sZW5ndGh9fTwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGFwcC1wb3BvdmVyICNyZXNwb25zaWJpbGl0aWVzUG9wb3Zlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwid2YtYWN0aW9uLWxpc3RcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPVwiYWN0aW9uLWl0ZW1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSAqbmdGb3I9XCJsZXQgc2VsZWN0ZWRyZXMgb2Ygc2VsZWN0ZWRWYWx1ZXM/LnJlc3BvbnNpYmlsaXRpZXM/LnNsaWNlKDEpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF2YXRhci1jYXJkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnMgY3Jvc3MtYnRuIHZ4LWZzLTEyIHZ4LXBhcmFncmFwaC10eHQgdngtbXItMlwiIChjbGljayk9XCJyZW1vdmUoJ3Jlc3BvbnNpYmlsaXRpZXMnLHNlbGVjdGVkcmVzKVwiPiYjeGU5YWU7PC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZhbHVlXCI+e3tzZWxlY3RlZHJlcz8uUmVwb3J0TmFtZX19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYXBwLXBvcG92ZXI+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsaW5rLXBvbGljeS1mbG9hdGluZy1iYXItcmlnaHQgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlclwiPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJnb0JhY2soJ3Jlc3BvbnNpYmlsaXRpZXMnKVwiIGNsYXNzPVwiY2FuY2VsLWJ0biB2eC1mcy0xMSB2eC1mdy01MDAgdngtdHQtdXBwZXJjYXNlIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtanVzdGlmeS1jZW50ZXIgdngtdHh0LXJlZFwiPkNBTkNFTDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJzYXZlQ2hhbmdlcygncmVzcG9uc2liaWxpdGllcycpXCIgW2NsYXNzLmRpc2FibGVkXT1cIiFzZWxlY3RlZFZhbHVlcz8ucmVzcG9uc2liaWxpdGllcz8ubGVuZ3RoXCIgY2xhc3M9XCJuZXh0LWJ0biB2eC1mcy0xMSB2eC1mdy01MDAgdngtdHQtdXBwZXJjYXNlIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtanVzdGlmeS1jZW50ZXIgdngtdHh0LXdoaXRlIHZ4LW1sLTVcIj5BREQgPGkgY2xhc3M9XCJpY29ucyB2eC1tbC0yXCI+JiN4ZTkxZTs8L2k+PC9idXR0b24+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPGFwcC1sb2FkZXItaW5saW5lICpuZ0lmPVwibG9hZGVyIHx8IHN1Ym1pc3Npb25Mb2FkZXJcIj48L2FwcC1sb2FkZXItaW5saW5lPlxuPC9kaXY+XG4iXX0=
469
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluay1wcm9ncmFtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Z4LXdvcmtmbG93LWVuZ2luZS9zcmMvbGliL3NoYXJlZENvbXBvbmVudHMvbGluay1wcm9ncmFtL2xpbmstcHJvZ3JhbS9saW5rLXByb2dyYW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvc2hhcmVkQ29tcG9uZW50cy9saW5rLXByb2dyYW0vbGluay1wcm9ncmFtL2xpbmstcHJvZ3JhbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7Ozs7Ozs7O0FBWTNDLE1BQU0sT0FBTyxvQkFBb0I7SUF5RC9CLElBQThCLGtCQUFrQixDQUFDLE9BQVk7UUFDM0QsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSTtZQUMzRCxPQUFPLEVBQUUsRUFBRTtZQUNYLFVBQVUsRUFBRSxFQUFFO1lBQ2QsZ0JBQWdCLEVBQUUsRUFBRTtTQUNyQixDQUFDO0lBQ0osQ0FBQztJQXdDRCxTQUFTO0lBRVQsWUFDVSxjQUE4QixFQUM5QixRQUF5QjtRQUR6QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsYUFBUSxHQUFSLFFBQVEsQ0FBaUI7UUExR25D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TTtnQkFFRyxxQkFBcUI7c0JBQTlCLE1BQU07Z0JBR0UsWUFBWTtzQkFBcEIsS0FBSztnQkFDd0Isa0JBQWtCO3NCQUEvQyxLQUFLO3VCQUFDLGlCQUFpQjtnQkFPZixrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csbUJBQW1CO3NCQUEzQixLQUFLO2dCQUdHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDc0IsYUFBYTtzQkFBeEMsU0FBUzt1QkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cFBhcmFtcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IFJlc3RBcGlTZXJ2aWNlIH0gZnJvbSAnLi4vcmVzdGFwaS5zZXJ2aWNlJztcbmltcG9ydCB7IFNuYWNrQmFyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3VpLWtpdC9zbmFjay1iYXIvc25hY2stYmFyLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2VsZWN0ZWRJZHMsIFNlbGVjdGVkVmFsdWVzIH0gZnJvbSAnLi4vcHJvZ3JhbS1pbnRlZ3JhdGlvbi1pbnRlcmZhY2VzJztcbmltcG9ydCB7IHByb2dyYW1MaXN0IH0gZnJvbSAnLi9wcm9ncmFtLWxpc3QtbW9kZWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2Yy1saW5rLXByb2dyYW0nLFxuICB0ZW1wbGF0ZVVybDogJy4vbGluay1wcm9ncmFtLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbGluay1wcm9ncmFtLmNvbXBvbmVudC5sZXNzJ10sXG59KVxuZXhwb3J0IGNsYXNzIExpbmtQcm9ncmFtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgYW5pbWF0aW9uID0gZmFsc2U7XG5cbiAgc3ViQ2F0ZWdvcmllc0xpc3QgPSB7XG4gICAgZnJvbTogMSxcbiAgICB0bzogMCxcbiAgICBjdXJyZW50UGFnZTogMSxcbiAgICB0b3RhbFBhZ2U6IDAsXG4gICAgdG90YWxSZWNvcmRzOiAwLFxuICAgIGRhdGE6IFtdLFxuICB9O1xuICByZXNwb25zaWJpbGl0aWVzTGlzdCA9IHtcbiAgICBmcm9tOiAxLFxuICAgIHRvOiAwLFxuICAgIGN1cnJlbnRQYWdlOiAxLFxuICAgIHRvdGFsUGFnZTogMCxcbiAgICB0b3RhbFJlY29yZHM6IDAsXG4gICAgZGF0YTogW10sXG4gIH07XG5cbiAgc2VhcmNoVGV4dCA9IHtcbiAgICBwcm9ncmFtOiAnJyxcbiAgICBjYXRlZ29yeTogJycsXG4gICAgcmVzcG9uc2liaWxpdHk6ICcnLFxuICB9O1xuXG4gIHNlbGVjdGVkVmFsdWVzOiBTZWxlY3RlZFZhbHVlcyA9IHtcbiAgICBwcm9ncmFtOiB7fSxcbiAgICBjYXRlZ29yaWVzOiBbXSxcbiAgICByZXNwb25zaWJpbGl0aWVzOiBbXSxcbiAgfTtcbiAgc2VsZWN0ZWRJZHM6IFNlbGVjdGVkSWRzID0ge1xuICAgIGNhdGVnb3JpZXM6IFtdLFxuICAgIHJlc3BvbnNpYmlsaXRpZXM6IFtdLFxuICB9O1xuXG4gIHN1Ym1pc3Npb25Mb2FkZXIgPSBmYWxzZTtcbiAgY3VycmVudENhdGVnb3J5OiBhbnkgPSB7fTtcblxuICBASW5wdXQoKSBwb2xpY3k6IGFueSA9IHt9O1xuICBASW5wdXQoKSBjdXJyZW50VGFiITogYW55O1xuICBASW5wdXQoKSBtb2RlOiBzdHJpbmcgPSAnJztcbiAgQE91dHB1dCgpIGNoYW5nZVRhYiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIHVwZGF0ZWRQcm9ncmFtRGV0YWlscyA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBjdXJyZW50QnVzaW5lc3NDeWNsZSE6IGFueTtcbiAgbG9hZGVyID0gZmFsc2U7XG4gIHByb2dyYW1Tb3J0Qnk6ICdkZXNjJyB8ICdhc2MnID0gJ2Rlc2MnO1xuICBjdXJyZW50TGlzdDogJ3Byb2dyYW1zJyB8ICdjYXRlZ29yaWVzJyB8ICdyZXNwb25zaWJpbGl0aWVzJyA9ICdwcm9ncmFtcyc7XG4gIHVuc3Vic2NyaWJlID0gbmV3IFN1YmplY3QoKTtcbiAgQE91dHB1dCgpIHNhdmUgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBjbG9zZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBAT3V0cHV0KCkgcmVmcmVzaExpbmtlZFBvbGljaWVzID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAvL3Byb2dyYW1cbiAgc3ViTGlzdCA9IGZhbHNlO1xuICBASW5wdXQoKSBwcm9ncmFtc0xpc3Q6IGFueTtcbiAgQElucHV0KCdzZWxlY3RlZFByb2dyYW0nKSBzZXQgZ2V0U2VsZWN0ZWRQcm9ncmFtKHByb2dyYW06IGFueSkge1xuICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZXMgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHByb2dyYW0pKSA/PyB7XG4gICAgICBwcm9ncmFtOiB7fSxcbiAgICAgIGNhdGVnb3JpZXM6IFtdLFxuICAgICAgcmVzcG9uc2liaWxpdGllczogW10sXG4gICAgfTtcbiAgfVxuICBASW5wdXQoKSBzZWxlY3RlZENhdGVnb3JpZXM6IGFueVtdID0gW107XG4gIEBJbnB1dCgpIHNlbGVjdGVkTGlua1Byb2dyYW0gPSB7XG4gICAgX2lkOiAnJyxcbiAgfTtcbiAgQElucHV0KCkgaGlkZVByb2dyYW1zTGlzdCE6IGFueTtcbiAgQFZpZXdDaGlsZCgnc2VhcmNoUHJvZ3JhbScpIHNlYXJjaFByb2dyYW0hOiBhbnk7XG5cbiAgcHJldmlvdXNTZWxlY3RlZFZhbHVlczogYW55ID0ge1xuICAgIHByb2dyYW06IHt9LFxuICAgIGNhdGVnb3JpZXM6IFtdLFxuICB9O1xuICBwcm9ncmFtRGF0YTogcHJvZ3JhbUxpc3QgPSB7XG4gICAgZGF0YTogW10sXG4gICAgZnJvbTogMCxcbiAgICB0bzogMCxcbiAgICB0b3RhbFBhZ2VzOiAwLFxuICAgIHRvdGFsUmVjb3JkczogMCxcbiAgICBjdXJyZW50UGFnZTogMSxcbiAgICBBbGxJbnRlcm5hbENvbnRyb2xzUHJvZ3JhbXNDb3VudDogMCxcbiAgICBBbGxPdGhlcnNQcm9ncmFtc0NvdW50OiAwLFxuICAgIEFsbFJlZ3VsYXRpb25Qcm9ncmFtc0NvdW50OiAwLFxuICAgIEFsbFN0YW5kYXJkUHJvZ3JhbXNDb3VudDogMCxcbiAgICBTZWxlY3RlZEludGVybmFsQ29udHJvbHNQcm9ncmFtc0NvdW50OiAwLFxuICAgIFNlbGVjdGVkT3RoZXJzUHJvZ3JhbXNDb3VudDogMCxcbiAgICBTZWxlY3RlZFJlZ3VsYXRpb25Qcm9ncmFtc0NvdW50OiAwLFxuICAgIFNlbGVjdGVkU3RhbmRhcmRQcm9ncmFtc0NvdW50OiAwLFxuICB9O1xuICBwcm9ncmFtVHlwZU9iamVjdCA9IHtcbiAgICByZWd1bGF0aW9uczogMSxcbiAgICBzdGFuZGFyZHM6IDIsXG4gICAgaW50ZXJuYWxfY29udHJvbHM6IDMsXG4gICAgb3RoZXJzOiAwLFxuICB9O1xuXG4gIGRpc3BsYXlDb25maXJtYXRpb25NZXNzYWdlID0gZmFsc2U7XG5cbiAgYWN0aXZlVGFiOiAncmVndWxhdGlvbnMnIHwgJ3N0YW5kYXJkcycgfCAnaW50ZXJuYWxfY29udHJvbHMnIHwgJ290aGVycycgPVxuICAgICdyZWd1bGF0aW9ucyc7XG5cbiAgLy9wcm9ncmFtXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZXN0QXBpU2VydmljZTogUmVzdEFwaVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBzbmFja2JhcjogU25hY2tCYXJTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMuZ2V0UHJvZ3JhbXMoKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuYW5pbWF0aW9uID0gdHJ1ZTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuYW5pbWF0aW9uID0gZmFsc2U7XG4gICAgfSwgMzAwKTtcbiAgICB0aGlzLmN1cnJlbnRCdXNpbmVzc0N5Y2xlID0gdGhpcy5yZXN0QXBpU2VydmljZS5nZXRCdXNpbmVzc0N5Y2xlKCk7XG4gIH1cblxuICBnZXRQcm9ncmFtcyhkYXRhPzogYW55KSB7XG4gICAgdGhpcy5sb2FkZXIgPSB0cnVlO1xuICAgIGxldCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpO1xuICAgIC8vIHBhcmFtcyA9IHBhcmFtcy5hcHBlbmQoJ21vZGUnLCAnY29tcGxpYW5jZUNhdGVnb3J5L3Byb2dyYW1MaXN0Jyk7XG4gICAgcGFyYW1zID0gcGFyYW1zLmFwcGVuZChcbiAgICAgICdwcm9ncmFtVHlwZScsXG4gICAgICB0aGlzLnByb2dyYW1UeXBlT2JqZWN0W3RoaXMuYWN0aXZlVGFiXVxuICAgICk7XG4gICAgcGFyYW1zID0gcGFyYW1zLmFwcGVuZCgncGFnZU5hbWUnLCAncG9saWN5V29ya3Jvb20nKTtcbiAgICBpZiAoZGF0YT8uc2VhcmNoIHx8IHRoaXMuc2VhcmNoVGV4dC5wcm9ncmFtKSB7XG4gICAgICBwYXJhbXMgPSBwYXJhbXMuYXBwZW5kKCdzZWFyY2hUZXh0JywgdGhpcy5zZWFyY2hUZXh0LnByb2dyYW0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBwYXJhbXMgPSBwYXJhbXMuYXBwZW5kKCdwYWdlTm8nLCB0aGlzLnByb2dyYW1EYXRhLmN1cnJlbnRQYWdlKTtcbiAgICB9XG4gICAgY29uc3QgcmVxdWVzdCA9IHtcbiAgICAgIG1ldGhvZDogJ2dldCcsXG4gICAgICBhY3Rpb246ICdjb21wbGlhbmNlR2V0JyxcbiAgICAgIHBhcmFtcyxcbiAgICB9O1xuICAgIHRoaXMucmVzdEFwaVNlcnZpY2VcbiAgICAgIC5hcGlEZWxlZ2F0ZShyZXF1ZXN0LCAnY29tcGxpYW5jZUNhdGVnb3J5L3Byb2dyYW1MaXN0JylcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLnVuc3Vic2NyaWJlKSlcbiAgICAgIC5zdWJzY3JpYmUoe1xuICAgICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcbiAgICAgICAgICB0aGlzLnByb2dyYW1EYXRhLmRhdGEgPSByZXMuZGF0YTtcbiAgICAgICAgICB0aGlzLnByb2dyYW1EYXRhLmZyb20gPSByZXMuZnJvbTtcbiAgICAgICAgICB0aGlzLnByb2dyYW1EYXRhLnRvID0gcmVzLnRvO1xuICAgICAgICAgIHRoaXMucHJvZ3JhbURhdGEudG90YWxQYWdlcyA9IHJlcy50b3RhbFBhZ2VzO1xuICAgICAgICAgIHRoaXMucHJvZ3JhbURhdGEudG90YWxSZWNvcmRzID0gcmVzLnRvdGFsUmVjb3JkcztcbiAgICAgICAgICB0aGlzLnByb2dyYW1EYXRhLkFsbEludGVybmFsQ29udHJvbHNQcm9ncmFtc0NvdW50ID1cbiAgICAgICAgICAgIHJlcy5BbGxJbnRlcm5hbENvbnRyb2xzUHJvZ3JhbXNDb3VudDtcbiAgICAgICAgICB0aGlzLnByb2dyYW1EYXRhLkFsbE90aGVyc1Byb2dyYW1zQ291bnQgPSByZXMuQWxsT3RoZXJzUHJvZ3JhbXNDb3VudDtcbiAgICAgICAgICB0aGlzLnByb2dyYW1EYXRhLkFsbFJlZ3VsYXRpb25Qcm9ncmFtc0NvdW50ID1cbiAgICAgICAgICAgIHJlcy5BbGxSZWd1bGF0aW9uUHJvZ3JhbXNDb3VudDtcbiAgICAgICAgICB0aGlzLnByb2dyYW1EYXRhLkFsbFN0YW5kYXJkUHJvZ3JhbXNDb3VudCA9XG4gICAgICAgICAgICByZXMuQWxsU3RhbmRhcmRQcm9ncmFtc0NvdW50O1xuICAgICAgICAgIHRoaXMubG9hZGVyID0gZmFsc2U7XG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yOiAoZXJyOiBhbnkpID0+IHtcbiAgICAgICAgICB0aGlzLmxvYWRlciA9IGZhbHNlO1xuICAgICAgICB9LFxuICAgICAgfSk7XG4gIH1cblxuICBnZXRDYXRlZ29yaWVzKGRhdGE/OiBhbnkpIHtcbiAgICB0aGlzLmxvYWRlciA9IHRydWU7XG4gICAgbGV0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKCk7XG4gICAgcGFyYW1zID0gcGFyYW1zLmFwcGVuZCgncGFyZW50SWQnLCB0aGlzLnNlbGVjdGVkVmFsdWVzLnByb2dyYW0/Ll9pZCk7XG5cbiAgICBpZiAoZGF0YT8uc2VhcmNoKSB7XG4gICAgICBwYXJhbXMgPSBwYXJhbXMuYXBwZW5kKCdxJywgdGhpcy5zZWFyY2hUZXh0LmNhdGVnb3J5KTtcbiAgICB9XG5cbiAgICBjb25zdCByZXF1ZXN0ID0ge1xuICAgICAgbWV0aG9kOiAnZ2V0JyxcbiAgICAgIGFjdGlvbjogJ3Byb2dyYW1FbmRwb2ludCcsXG4gICAgICBwYXJhbXMsXG4gICAgfTtcbiAgICB0aGlzLnJlc3RBcGlTZXJ2aWNlXG4gICAgICAuYXBpRGVsZWdhdGUocmVxdWVzdCwgJy9zdWJDYXRlZ29yaWVzJylcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLnVuc3Vic2NyaWJlKSlcbiAgICAgIC5zdWJzY3JpYmUoe1xuICAgICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcbiAgICAgICAgICB0aGlzLnN1YkNhdGVnb3JpZXNMaXN0LmZyb20gPSByZXMuaXRlbXNfZnJvbSA/PyAxO1xuICAgICAgICAgIHRoaXMuc3ViQ2F0ZWdvcmllc0xpc3QudG8gPSByZXMuaXRlbXNfdG8gPz8gMDtcbiAgICAgICAgICB0aGlzLnN1YkNhdGVnb3JpZXNMaXN0LnRvdGFsUGFnZSA9IHJlcy50b3RhbF9wYWdlcyA/PyAwO1xuICAgICAgICAgIHRoaXMuc3ViQ2F0ZWdvcmllc0xpc3QudG90YWxSZWNvcmRzID0gcmVzLnRvdGFsX2l0ZW1zID8/IDA7XG4gICAgICAgICAgdGhpcy5zdWJDYXRlZ29yaWVzTGlzdC5kYXRhID0gcmVzLmRhdGEgPz8gW107XG4gICAgICAgICAgdGhpcy5sb2FkZXIgPSBmYWxzZTtcbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3I6IChlcnI6IGFueSkgPT4ge1xuICAgICAgICAgIHRoaXMubG9hZGVyID0gZmFsc2U7XG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgfVxuICBjaGFuZ2VUYWJQcm9ncmFtKFxuICAgIHR5cGU6ICdyZWd1bGF0aW9ucycgfCAnc3RhbmRhcmRzJyB8ICdpbnRlcm5hbF9jb250cm9scycgfCAnb3RoZXJzJ1xuICApIHtcbiAgICB0aGlzLmFjdGl2ZVRhYiA9IHR5cGU7XG4gICAgdGhpcy5wcm9ncmFtRGF0YS5jdXJyZW50UGFnZSA9IDE7XG4gICAgdGhpcy5zZWFyY2hUZXh0LnByb2dyYW0gPSAnJztcbiAgICB0aGlzLnNlYXJjaFByb2dyYW0ubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xuICAgIHRoaXMuZ2V0UHJvZ3JhbXMoKTtcbiAgfVxuXG4gIGdldFJlc3BvbnNpYmlsaXRpZXMoZGF0YT86IGFueSkge1xuICAgIHRoaXMubG9hZGVyID0gdHJ1ZTtcblxuICAgIGNvbnN0IHJlcXVlc3QgPSB7XG4gICAgICBtZXRob2Q6ICdnZXQnLFxuICAgICAgYWN0aW9uOiAncHJvZ3JhbUVuZHBvaW50JyxcbiAgICAgIHBheWxvYWRPYmplY3Q6IHtcbiAgICAgICAgY2F0ZWdvcnlJZHM6IHRoaXMuc2VsZWN0ZWRJZHM/LmNhdGVnb3JpZXMsXG4gICAgICAgIHBhZ2VObzogdGhpcy5yZXNwb25zaWJpbGl0aWVzTGlzdD8uY3VycmVudFBhZ2UsXG4gICAgICAgIHNlYXJjaFRleHQ6IGRhdGE/LnNlYXJjaCA/IHRoaXMuc2VhcmNoVGV4dD8ucmVzcG9uc2liaWxpdHkgOiAnJyxcbiAgICAgICAgcGFnZU5hbWU6ICdwb2xpY3lXb3Jrcm9vbScsXG4gICAgICB9LFxuICAgIH07XG4gICAgdGhpcy5yZXN0QXBpU2VydmljZVxuICAgICAgLmFwaURlbGVnYXRlKHJlcXVlc3QsICcvY2F0ZWdvcnlSZXNwb25zaWJpbGl0aWVzJylcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLnVuc3Vic2NyaWJlKSlcbiAgICAgIC5zdWJzY3JpYmUoe1xuICAgICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcbiAgICAgICAgICB0aGlzLmxvYWRlciA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMucmVzcG9uc2liaWxpdGllc0xpc3QuZnJvbSA9IHJlcy5pdGVtc19mcm9tID8/IDE7XG4gICAgICAgICAgdGhpcy5yZXNwb25zaWJpbGl0aWVzTGlzdC50byA9IHJlcy5pdGVtc190byA/PyAwO1xuICAgICAgICAgIHRoaXMucmVzcG9uc2liaWxpdGllc0xpc3QudG90YWxQYWdlID0gcmVzLnRvdGFsX3BhZ2VzID8/IDE7XG4gICAgICAgICAgdGhpcy5yZXNwb25zaWJpbGl0aWVzTGlzdC50b3RhbFJlY29yZHMgPSByZXMudG90YWxfaXRlbXMgPz8gMDtcbiAgICAgICAgICB0aGlzLnJlc3BvbnNpYmlsaXRpZXNMaXN0LmRhdGEgPSByZXMuZGF0YSA/PyBbXTtcbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3I6IChlcnI6IGFueSkgPT4ge1xuICAgICAgICAgIHRoaXMubG9hZGVyID0gZmFsc2U7XG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgfVxuXG4gIGNoYW5nZVBhZ2UoZXZlbnQ6IGFueSwgdHlwZTogJ3Byb2dyYW1zJyB8ICdjYXRlZ29yaWVzJyB8ICdyZXNwb25zaWJpbGl0aWVzJykge1xuICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgY2FzZSAncHJvZ3JhbXMnOlxuICAgICAgICB0aGlzLnByb2dyYW1EYXRhLmN1cnJlbnRQYWdlID0gZXZlbnQ7XG4gICAgICAgIHRoaXMuZ2V0UHJvZ3JhbXMoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdjYXRlZ29yaWVzJzpcbiAgICAgICAgdGhpcy5zdWJDYXRlZ29yaWVzTGlzdC5jdXJyZW50UGFnZSA9IGV2ZW50O1xuICAgICAgICB0aGlzLmdldENhdGVnb3JpZXMoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdyZXNwb25zaWJpbGl0aWVzJzpcbiAgICAgICAgdGhpcy5yZXNwb25zaWJpbGl0aWVzTGlzdC5jdXJyZW50UGFnZSA9IGV2ZW50O1xuICAgICAgICB0aGlzLmdldFJlc3BvbnNpYmlsaXRpZXMoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG4gIHNlYXJjaEJ5KGV2ZW50OiBhbnksIHR5cGU6ICdwcm9ncmFtcycgfCAnY2F0ZWdvcmllcycgfCAncmVzcG9uc2liaWxpdGllcycpIHtcbiAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgIGNhc2UgJ3Byb2dyYW1zJzpcbiAgICAgICAgaWYgKHRoaXMuc2VhcmNoVGV4dC5wcm9ncmFtICE9IGV2ZW50KSB7XG4gICAgICAgICAgdGhpcy5zZWFyY2hUZXh0LnByb2dyYW0gPSBldmVudDtcbiAgICAgICAgICB0aGlzLmdldFByb2dyYW1zKHsgc2VhcmNoOiB0cnVlIH0pO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnY2F0ZWdvcmllcyc6XG4gICAgICAgIGlmICh0aGlzLnNlYXJjaFRleHQuY2F0ZWdvcnkgIT0gZXZlbnQpIHtcbiAgICAgICAgICB0aGlzLnNlYXJjaFRleHQuY2F0ZWdvcnkgPSBldmVudDtcbiAgICAgICAgICB0aGlzLmdldENhdGVnb3JpZXMoeyBzZWFyY2g6IHRydWUgfSk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdyZXNwb25zaWJpbGl0aWVzJzpcbiAgICAgICAgaWYgKHRoaXMuc2VhcmNoVGV4dC5yZXNwb25zaWJpbGl0eSAhPSBldmVudCkge1xuICAgICAgICAgIHRoaXMuc2VhcmNoVGV4dC5yZXNwb25zaWJpbGl0eSA9IGV2ZW50O1xuICAgICAgICAgIHRoaXMuZ2V0UmVzcG9uc2liaWxpdGllcyh7IHNlYXJjaDogdHJ1ZSB9KTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICBzZWxlY3RQcm9ncmFtKGV2ZW50OiBhbnksIGRhdGE6IGFueSkge1xuICAgIGlmIChldmVudCkge1xuICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlcy5wcm9ncmFtID0gZGF0YTtcbiAgICAgIHRoaXMuc2VsZWN0ZWRJZHMuY2F0ZWdvcmllcyA9IFtdO1xuICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlcy5jYXRlZ29yaWVzID0gW107XG4gICAgICB0aGlzLnNlbGVjdGVkSWRzLnJlc3BvbnNpYmlsaXRpZXMgPSBbXTtcbiAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZXMucmVzcG9uc2liaWxpdGllcyA9IFtdO1xuICAgIH1cbiAgfVxuXG4gIHNlbGVjdENhdGVnb3J5KGV2ZW50OiBhbnksIGNhdGVnb3J5OiBhbnkpIHtcbiAgICBpZiAoZXZlbnQpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRJZHMuY2F0ZWdvcmllcy5wdXNoKGNhdGVnb3J5LmNhdGVnb3J5X2lkKTtcbiAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZXMuY2F0ZWdvcmllcy5wdXNoKGNhdGVnb3J5KTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgaW5kZXggPSB0aGlzLnNlbGVjdGVkSWRzLmNhdGVnb3JpZXMuZmluZEluZGV4KFxuICAgICAgICAoZWxlbWVudDogYW55KSA9PiBlbGVtZW50ID09IGNhdGVnb3J5LmNhdGVnb3J5X2lkXG4gICAgICApO1xuICAgICAgdGhpcy5zZWxlY3RlZElkcy5jYXRlZ29yaWVzLnNwbGljZShpbmRleCwgMSk7XG4gICAgICBjb25zdCBjYXRlZ29yeUluZGV4ID0gdGhpcy5zZWxlY3RlZFZhbHVlcy5jYXRlZ29yaWVzLmZpbmRJbmRleChcbiAgICAgICAgKGVsZTogYW55KSA9PiBlbGUuY2F0ZWdvcnlfaWQgPT0gY2F0ZWdvcnkuY2F0ZWdvcnlfaWRcbiAgICAgICk7XG4gICAgICB0aGlzLnNlbGVjdGVkVmFsdWVzLmNhdGVnb3JpZXMuc3BsaWNlKGNhdGVnb3J5SW5kZXgsIDEpO1xuICAgIH1cbiAgfVxuICBzZWxlY3RSZXNwb25zaWJpbGl0eShldmVudDogYW55LCBkYXRhOiBhbnkpIHtcbiAgICBpZiAoZXZlbnQpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRJZHMucmVzcG9uc2liaWxpdGllcy5wdXNoKGRhdGEuUmVwb3J0SWQpO1xuICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlcy5yZXNwb25zaWJpbGl0aWVzLnB1c2goZGF0YSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5zZWxlY3RlZElkcy5yZXNwb25zaWJpbGl0aWVzLmZpbmRJbmRleChcbiAgICAgICAgKGVsZW1lbnQ6IGFueSkgPT4gZWxlbWVudCA9PSBkYXRhLlJlcG9ydElkXG4gICAgICApO1xuICAgICAgdGhpcy5zZWxlY3RlZElkcy5yZXNwb25zaWJpbGl0aWVzLnNwbGljZShpbmRleCwgMSk7XG4gICAgICBjb25zdCByZXBvcnRJbmRleCA9IHRoaXMuc2VsZWN0ZWRWYWx1ZXMucmVzcG9uc2liaWxpdGllcy5maW5kSW5kZXgoXG4gICAgICAgIChlbGU6IGFueSkgPT4gZWxlLlJlcG9ydElkID09IGRhdGEuUmVwb3J0SWRcbiAgICAgICk7XG4gICAgICB0aGlzLnNlbGVjdGVkVmFsdWVzLnJlc3BvbnNpYmlsaXRpZXMuc3BsaWNlKHJlcG9ydEluZGV4LCAxKTtcbiAgICB9XG4gIH1cbiAgZ29CYWNrKGZyb20/OiAnY2F0ZWdvcmllcycgfCAncmVzcG9uc2liaWxpdGllcycpIHtcbiAgICBpZiAoZnJvbSkge1xuICAgICAgc3dpdGNoIChmcm9tKSB7XG4gICAgICAgIGNhc2UgJ2NhdGVnb3JpZXMnOlxuICAgICAgICAgIHRoaXMuY3VycmVudExpc3QgPSAncHJvZ3JhbXMnO1xuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJZHMuY2F0ZWdvcmllcyA9IFtdO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdyZXNwb25zaWJpbGl0aWVzJzpcbiAgICAgICAgICB0aGlzLmN1cnJlbnRMaXN0ID0gJ2NhdGVnb3JpZXMnO1xuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJZHMucmVzcG9uc2liaWxpdGllcyA9IFtdO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNsb3NlLmVtaXQoKTtcbiAgICB9XG4gIH1cblxuICByZW1vdmUodHlwZTogJ3Byb2dyYW1zJyB8ICdjYXRlZ29yaWVzJyB8ICdyZXNwb25zaWJpbGl0aWVzJywgaXRlbTogYW55KSB7XG4gICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICBjYXNlICdwcm9ncmFtcyc6XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZXMucHJvZ3JhbSA9IHt9O1xuICAgICAgICB0aGlzLnNlbGVjdGVkVmFsdWVzLmNhdGVnb3JpZXMgPSBbXTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlcy5yZXNwb25zaWJpbGl0aWVzID0gW107XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnY2F0ZWdvcmllcyc6XG4gICAgICAgIGNvbnN0IGNhdGVnb3J5SW5kZXggPSB0aGlzLnNlbGVjdGVkVmFsdWVzLmNhdGVnb3JpZXMuZmluZEluZGV4KFxuICAgICAgICAgIChlbGU6IGFueSkgPT4gZWxlLmNhdGVnb3J5X2lkID09IGl0ZW0uY2F0ZWdvcnlfaWRcbiAgICAgICAgKTtcbiAgICAgICAgaWYgKGNhdGVnb3J5SW5kZXggIT0gLTEpIHtcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkVmFsdWVzLmNhdGVnb3JpZXMuc3BsaWNlKGNhdGVnb3J5SW5kZXgsIDEpO1xuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZXMucmVzcG9uc2liaWxpdGllcyA9IFtdO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGNhdGVnb3J5SWRJbmRleCA9IHRoaXMuc2VsZWN0ZWRJZHMuY2F0ZWdvcmllcy5maW5kSW5kZXgoXG4gICAgICAgICAgKGVsZW1lbnQ6IGFueSkgPT4gZWxlbWVudCA9PSBpdGVtLmNhdGVnb3J5X2lkXG4gICAgICAgICk7XG4gICAgICAgIGlmIChjYXRlZ29yeUlkSW5kZXggIT0gLTEpIHtcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkSWRzLmNhdGVnb3JpZXMuc3BsaWNlKGNhdGVnb3J5SWRJbmRleCwgMSk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdyZXNwb25zaWJpbGl0aWVzJzpcbiAgICAgICAgY29uc3QgcmVzcEluZGV4ID0gdGhpcy5zZWxlY3RlZFZhbHVlcy5yZXNwb25zaWJpbGl0aWVzLmZpbmRJbmRleChcbiAgICAgICAgICAoZWxlOiBhbnkpID0+IGVsZS5SZXBvcnRJZCA9PSBpdGVtLlJlcG9ydElkXG4gICAgICAgICk7XG4gICAgICAgIGlmIChyZXNwSW5kZXggIT0gLTEpIHtcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkVmFsdWVzLnJlc3BvbnNpYmlsaXRpZXMuc3BsaWNlKHJlc3BJbmRleCwgMSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLnNlbGVjdGVkSWRzLnJlc3BvbnNpYmlsaXRpZXMuZmluZEluZGV4KFxuICAgICAgICAgIChlbGVtZW50OiBhbnkpID0+IGVsZW1lbnQgPT0gaXRlbS5SZXBvcnRJZFxuICAgICAgICApO1xuICAgICAgICBpZiAoaW5kZXggIT0gLTEpIHtcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkSWRzLnJlc3BvbnNpYmlsaXRpZXMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIHNhdmVDaGFuZ2VzKFxuICAgIHR5cGU6ICdwcm9ncmFtcycgfCAnY2F0ZWdvcmllcycgfCAncmVzcG9uc2liaWxpdGllcycgfCAncHJvZ3JhbXNPbmx5J1xuICApIHtcbiAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgIGNhc2UgJ3Byb2dyYW1zJzpcbiAgICAgICAgdGhpcy5jdXJyZW50TGlzdCA9ICdjYXRlZ29yaWVzJztcbiAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlcy5jYXRlZ29yaWVzID0gW107XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZXMucmVzcG9uc2liaWxpdGllcyA9IFtdO1xuICAgICAgICB0aGlzLmdldENhdGVnb3JpZXMoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdjYXRlZ29yaWVzJzpcbiAgICAgICAgdGhpcy5jdXJyZW50TGlzdCA9ICdyZXNwb25zaWJpbGl0aWVzJztcbiAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlcy5yZXNwb25zaWJpbGl0aWVzID0gW107XG4gICAgICAgIHRoaXMuZ2V0UmVzcG9uc2liaWxpdGllcygpO1xuXG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAncmVzcG9uc2liaWxpdGllcyc6XG4gICAgICAgIHRoaXMuc3VibWl0cHJvZ3JhbUludGVncmF0aW9uKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAncHJvZ3JhbXNPbmx5JzpcbiAgICAgICAgdGhpcy5kaXNwbGF5Q29uZmlybWF0aW9uTWVzc2FnZSA9IHRydWU7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuICBzYXZlQ2hhbmdlc0Zyb21Qcm9ncmFtKGV2ZW50OiBib29sZWFuKSB7XG4gICAgaWYgKGV2ZW50KSB7XG4gICAgICB0aGlzLmRpc3BsYXlDb25maXJtYXRpb25NZXNzYWdlID0gZmFsc2U7XG4gICAgICB0aGlzLnN1Ym1pdHByb2dyYW1JbnRlZ3JhdGlvbigpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmRpc3BsYXlDb25maXJtYXRpb25NZXNzYWdlID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgc3VibWl0cHJvZ3JhbUludGVncmF0aW9uKCkge1xuICAgIC8vIHRoaXMuc3VibWlzc2lvbkxvYWRlciA9IHRydWU7XG4gICAgbGV0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKCk7XG4gICAgcGFyYW1zID0gcGFyYW1zLmFwcGVuZCgnbW9kZScsICdwcm9ncmFtUG9saWN5VXBkYXRlL3VwZGF0ZScpO1xuXG4gICAgY29uc3QgY2F0ZWdvcnlBcnJheSA9IHRoaXMuc2VsZWN0ZWRJZHM/LmNhdGVnb3JpZXM7XG5cbiAgICBjb25zdCBwYXlsb2FkID0ge1xuICAgICAgcG9saWN5SWQ6IHRoaXMucG9saWN5Py5wb2xpY3lfaWQgPz8gMCxcbiAgICAgIHJlcG9ydF9pZHM6IHRoaXMuc2VsZWN0ZWRJZHM/LnJlc3BvbnNpYmlsaXRpZXMgPz8gMCxcbiAgICAgIGNhdGVnb3J5X2lkOiBbLi4ubmV3IFNldChjYXRlZ29yeUFycmF5KV0sXG4gICAgICBwYXJlbnRJZDogdGhpcy5zZWxlY3RlZFZhbHVlcz8ucHJvZ3JhbT8uY2F0ZWdvcnlfaWQsXG4gICAgfTtcbiAgICBsZXQgcmVtb3ZlID0ge307XG4gICAgaWYgKFxuICAgICAgdGhpcy5zZWxlY3RlZExpbmtQcm9ncmFtPy5faWQgJiZcbiAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZXM/LnByb2dyYW0/Ll9pZCAhPT0gdGhpcy5zZWxlY3RlZExpbmtQcm9ncmFtPy5faWRcbiAgICApIHtcbiAgICAgIHJlbW92ZSA9IHtcbiAgICAgICAgcG9saWN5SWRzOiBbdGhpcy5wb2xpY3k/LnBvbGljeV9pZCA/PyAwXSxcbiAgICAgICAgcHJvZ3JhbUlkOiB0aGlzLnNlbGVjdGVkTGlua1Byb2dyYW0/Ll9pZCxcbiAgICAgIH07XG4gICAgfVxuICAgIGNvbnN0IGN1cnJlbnRCdXNpbmVzc0N5Y2xlID0ge1xuICAgICAgc3RhcnRfZGF0ZTogdGhpcy5jdXJyZW50QnVzaW5lc3NDeWNsZT8uc3RhcnRfZGF0ZSxcbiAgICAgIGVuZF9kYXRlOiB0aGlzLmN1cnJlbnRCdXNpbmVzc0N5Y2xlPy5lbmRfZGF0ZSxcbiAgICAgIHNlbGVjdGVkX2N5Y2xlX2FycjogdGhpcy5jdXJyZW50QnVzaW5lc3NDeWNsZT8uc2VsZWN0ZWRfY3ljbGVfYXJyLFxuICAgICAgc2VsZWN0ZWRfY3ljbGU6IHRoaXMuY3VycmVudEJ1c2luZXNzQ3ljbGU/LnNlbGVjdGVkX2N5Y2xlLFxuICAgIH07XG4gICAgbGV0IGxpbmtQcm9ncmFtID0ge1xuICAgICAgYWRkZWQ6IE9iamVjdC5rZXlzKHBheWxvYWQpLmxlbmd0aCA/IFtwYXlsb2FkXSA6IFtdLFxuICAgICAgcmVtb3ZlZDogT2JqZWN0LmtleXMocmVtb3ZlKS5sZW5ndGggPyBbcmVtb3ZlXSA6IFtdLFxuICAgIH07XG4gICAgbGV0IHNlbGVjdGVkUHJvZ3JhbSA9IHtcbiAgICAgIHNlbGVjdGVkVmFsdWVzOiB0aGlzLnNlbGVjdGVkVmFsdWVzLFxuICAgICAgbGlua1Byb2dyYW06IGxpbmtQcm9ncmFtLFxuICAgICAgYnVzaW5lc3NDeWNsZTogY3VycmVudEJ1c2luZXNzQ3ljbGUsXG4gICAgfTtcbiAgICB0aGlzLnVwZGF0ZWRQcm9ncmFtRGV0YWlscy5lbWl0KFxuICAgICAgSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShzZWxlY3RlZFByb2dyYW0pKVxuICAgICk7XG4gICAgdGhpcy5zdWJtaXNzaW9uTG9hZGVyID0gZmFsc2U7XG5cbiAgICBjb25zdCByZXF1ZXN0ID0ge1xuICAgICAgbWV0aG9kOiAncG9zdCcsXG4gICAgICBhY3Rpb246ICcvY29tcGxpYW5jZV9wb3N0JyxcbiAgICAgIHBhcmFtcyxcbiAgICAgIGRhdGE6IHBheWxvYWQsXG4gICAgICBidXNpbmVzc0N5Y2xlOiBjdXJyZW50QnVzaW5lc3NDeWNsZSxcbiAgICB9O1xuICAgIC8vIHRoaXMucmVzdEFwaVNlcnZpY2UuYXBpRGVsZWdhdGUocmVxdWVzdCkucGlwZSh0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZSkpLnN1YnNjcmliZSh7XG4gICAgLy8gICBuZXh0OiAocmVzOiBhbnkpID0+IHtcbiAgICAvLyAgICAgdGhpcy5zdWJtaXNzaW9uTG9hZGVyID0gZmFsc2U7XG4gICAgLy8gICAgIHRoaXMuc25hY2tiYXIuc2hvdygnVGhlIHByb2dyYW0gaGFzIGJlZW4gbGlua2VkIHdpdGggdGhpcyBQb2xpY3kuJywgJ3N1Y2Nlc3MnKTtcbiAgICAvLyAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgLy8gICAgICAgaWYodGhpcy5jdXJyZW50VGFiICE9ICdsaW5rZWRfcHJvZ3JhbXMnKXtcbiAgICAvLyAgICAgICAgIHRoaXMucmVmcmVzaExpbmtlZFBvbGljaWVzLmVtaXQoKTtcbiAgICAvLyAgICAgICAgIC8vIHRoaXMuY2hhbmdlVGFiLmVtaXQoKTtcbiAgICAvLyAgICAgICB9XG4gICAgLy8gICAgICAgdGhpcy5jbG9zZS5lbWl0KCk7XG4gICAgLy8gICAgIH0sIDEwMDApO1xuXG4gICAgLy8gICB9LFxuICAgIC8vICAgZXJyb3I6IChlcnI6IGFueSkgPT4ge1xuICAgIC8vICAgICB0aGlzLnN1Ym1pc3Npb25Mb2FkZXIgPSBmYWxzZTtcbiAgICAvLyAgICAgdGhpcy5zbmFja2Jhci5zaG93KFwiT29wcyBTb21ldGhpbmcgd2VudCB3cm9uZyBhbmQgd2Ugd2VyZSB1bmFibGUgdG8gY29tcGxldGUgdGhpcyBhY3Rpb24uIExldCdzIGdpdmUgaXQgYW5vdGhlciB0cnkgc2hhbGwgd2UgP1wiKTtcbiAgICAvLyAgIH0sXG4gICAgLy8gfSk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJsaW5rLXBvbGljeVwiIFtjbGFzcy5hbmltYXRlXT1cImFuaW1hdGlvblwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjdXJyZW50TGlzdCA9PSdwcm9ncmFtcydcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInByb2dyYW0tbGlzdGluZy1oZWFkIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtanVzdGlmeS1iZXR3ZWVuIHZ4LXBsLTQgdngtcHItNFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZ4LWZzLTE0IHZ4LWZ3LTUwMCB2eC1sYWJlbC10eHRcIj5TZWxlY3QgYSBQcm9ncmFtPC9kaXY+XG4gICAgICAgICAgICA8IS0tIDxidXR0b24gKGNsaWNrKT1cImdvQmFjaygpXCIgY2xhc3M9XCJiYWNrLWJ0biB2eC1mcy0xMiB2eC1mdy01MDAgdngtbGFibGUtdHh0IHZ4LXR0LXVwcGVyY2FzZSB2eC1wLTAgdngtbS0wIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXJcIj48aSBjbGFzcz1cImljb25zIHZ4LW1yLTFcIj4mI3hlOTFkOzwvaT4gQmFjazwvYnV0dG9uPiAtLT5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJwcm9ncmFtLWxpc3RpbmctYm9keVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpbHRlci1jYXJkLXJvdyB2eC1kLWZsZXggdngtbWItMlwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWx0ZXItY2FyZCB2eC1iZy13aGl0ZSB2eC1kLWZsZXggdngtanVzdGlmeS1iZXR3ZWVuIHZ4LWFsaWduLWNlbnRlciB2eC1wdC0yIHZ4LXBiLTIgdngtcGwtMyB2eC1wci0zIHZ4LXctMTAwXCIgW2NsYXNzLmFjdGl2ZV09XCJhY3RpdmVUYWIgPT0gJ3JlZ3VsYXRpb25zJ1wiIChjbGljayk9XCJjaGFuZ2VUYWJQcm9ncmFtKCdyZWd1bGF0aW9ucycpXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsZWZ0IHZ4LWQtYmxvY2sgdngtdy0xMDBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsYWJlbCB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZ4LWQtYmxvY2sgdngtbGgtM1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJ2eC1wYXJhZ3JhcGgtdHh0IHZ4LWZ3LTUwMCB2eC10dC11cHBlcmNhc2UgdngtZC1mbGV4IHZ4LWp1c3RpZnktYmV0d2VlbiB2eC1hbGlnbi1jZW50ZXJcIj5SRUdVTEFUSU9OUzwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidngtZnMtMTAgdngtZnctNjAwIHZ4LWxhYmVsLXR4dCB2eC1saC00XCIgKm5nSWY9XCJwcm9ncmFtRGF0YT8uU2VsZWN0ZWRSZWd1bGF0aW9uUHJvZ3JhbXNDb3VudD4gMFwiPnt7cHJvZ3JhbURhdGE/LlNlbGVjdGVkUmVndWxhdGlvblByb2dyYW1zQ291bnR9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3socHJvZ3JhbURhdGE/LlNlbGVjdGVkUmVndWxhdGlvblByb2dyYW1zQ291bnQ9PTEpPydQcm9ncmFtJzonUHJvZ3JhbXMnfX0gc2VsZWN0ZWQ8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyaWdodCB2eC1kLWZsZXggdngtanVzdGlmeS1lbmQgdngtdy0xMDBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY291bnRlciB2eC10eHQtd2hpdGUgdngtZnctNTAwIHZ4LWQtaW5saW5lLWJsb2NrIHZ4LXRleHQtY2VudGVyXCI+e3twcm9ncmFtRGF0YT8uQWxsUmVndWxhdGlvblByb2dyYW1zQ291bnR9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpbHRlci1jYXJkIHZ4LWJnLXdoaXRlIHZ4LWQtZmxleCB2eC1qdXN0aWZ5LWJldHdlZW4gdngtYWxpZ24tY2VudGVyIHZ4LXB0LTIgdngtcGItMiB2eC1wbC0zIHZ4LXByLTMgdngtdy0xMDBcIiBbY2xhc3MuYWN0aXZlXT1cImFjdGl2ZVRhYiA9PSAnc3RhbmRhcmRzJ1wiIChjbGljayk9XCJjaGFuZ2VUYWJQcm9ncmFtKCdzdGFuZGFyZHMnKVwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGVmdCB2eC1kLWJsb2NrIHZ4LXctMTAwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGFiZWwgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2eC1kLWJsb2NrIHZ4LWxoLTNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwidngtcGFyYWdyYXBoLXR4dCB2eC1mdy01MDAgdngtdHQtdXBwZXJjYXNlIHZ4LWQtZmxleCB2eC1qdXN0aWZ5LWJldHdlZW4gdngtYWxpZ24tY2VudGVyXCI+U1RBTkRBUkRTPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2eC1mcy0xMCB2eC1mdy02MDAgdngtbGFiZWwtdHh0IHZ4LWxoLTRcIiAqbmdJZj1cInByb2dyYW1EYXRhPy5TZWxlY3RlZFN0YW5kYXJkUHJvZ3JhbXNDb3VudD4gMFwiPnt7cHJvZ3JhbURhdGE/LlNlbGVjdGVkU3RhbmRhcmRQcm9ncmFtc0NvdW50fX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7KHByb2dyYW1EYXRhPy5TZWxlY3RlZFN0YW5kYXJkUHJvZ3JhbXNDb3VudD09MSk/J1Byb2dyYW0nOidQcm9ncmFtcyd9fSBzZWxlY3RlZDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyaWdodCB2eC1kLWZsZXggdngtanVzdGlmeS1lbmQgdngtdy0xMDBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY291bnRlciB2eC10eHQtd2hpdGUgdngtZnctNTAwIHZ4LWQtaW5saW5lLWJsb2NrIHZ4LXRleHQtY2VudGVyXCI+e3twcm9ncmFtRGF0YT8uQWxsU3RhbmRhcmRQcm9ncmFtc0NvdW50fX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWx0ZXItY2FyZCB2eC1iZy13aGl0ZSB2eC1kLWZsZXggdngtanVzdGlmeS1iZXR3ZWVuIHZ4LWFsaWduLWNlbnRlciB2eC1wdC0yIHZ4LXBiLTIgdngtcGwtMyB2eC1wci0zIHZ4LXctMTAwXCIgW2NsYXNzLmFjdGl2ZV09XCJhY3RpdmVUYWIgPT0gJ2ludGVybmFsX2NvbnRyb2xzJ1wiIChjbGljayk9XCJjaGFuZ2VUYWJQcm9ncmFtKCdpbnRlcm5hbF9jb250cm9scycpXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsZWZ0IHZ4LWQtYmxvY2sgdngtdy0xMDBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsYWJlbCB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZ4LWQtYmxvY2sgdngtbGgtM1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJ2eC1wYXJhZ3JhcGgtdHh0IHZ4LWZ3LTUwMCB2eC10dC11cHBlcmNhc2UgdngtZC1mbGV4IHZ4LWp1c3RpZnktYmV0d2VlbiB2eC1hbGlnbi1jZW50ZXJcIj5JTlRFUk5BTCBDT05UUk9MUzwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidngtZnMtMTAgdngtZnctNjAwIHZ4LWxhYmVsLXR4dCB2eC1saC00XCIgKm5nSWY9XCJwcm9ncmFtRGF0YT8uU2VsZWN0ZWRJbnRlcm5hbENvbnRyb2xzUHJvZ3JhbXNDb3VudD4gMFwiPnt7cHJvZ3JhbURhdGE/LlNlbGVjdGVkSW50ZXJuYWxDb250cm9sc1Byb2dyYW1zQ291bnR9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3socHJvZ3JhbURhdGE/LlNlbGVjdGVkSW50ZXJuYWxDb250cm9sc1Byb2dyYW1zQ291bnQ9PTEpPydQcm9ncmFtJzonUHJvZ3JhbXMnfX0gc2VsZWN0ZWQ8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyaWdodCB2eC1kLWZsZXggdngtanVzdGlmeS1lbmQgdngtdy0xMDBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY291bnRlciB2eC10eHQtd2hpdGUgdngtZnctNTAwIHZ4LWQtaW5saW5lLWJsb2NrIHZ4LXRleHQtY2VudGVyXCI+e3twcm9ncmFtRGF0YT8uQWxsSW50ZXJuYWxDb250cm9sc1Byb2dyYW1zQ291bnR9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpbHRlci1jYXJkIHZ4LWJnLXdoaXRlIHZ4LWQtZmxleCB2eC1qdXN0aWZ5LWJldHdlZW4gdngtYWxpZ24tY2VudGVyIHZ4LXB0LTIgdngtcGItMiB2eC1wbC0zIHZ4LXByLTMgdngtdy0xMDBcIiBbY2xhc3MuYWN0aXZlXT1cImFjdGl2ZVRhYiA9PSAnb3RoZXJzJ1wiIChjbGljayk9XCJjaGFuZ2VUYWJQcm9ncmFtKCdvdGhlcnMnKVwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGVmdCB2eC1kLWJsb2NrIHZ4LXctMTAwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGFiZWwgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2eC1kLWJsb2NrIHZ4LWxoLTNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwidngtcGFyYWdyYXBoLXR4dCB2eC1mdy01MDAgdngtdHQtdXBwZXJjYXNlIHZ4LWQtZmxleCB2eC1qdXN0aWZ5LWJldHdlZW4gdngtYWxpZ24tY2VudGVyXCI+T1RIRVJTPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2eC1mcy0xMCB2eC1mdy02MDAgdngtbGFiZWwtdHh0IHZ4LWxoLTRcIiAqbmdJZj1cInByb2dyYW1EYXRhPy5TZWxlY3RlZE90aGVyc1Byb2dyYW1zQ291bnQ+IDBcIj57e3Byb2dyYW1EYXRhPy5TZWxlY3RlZE90aGVyc1Byb2dyYW1zQ291bnR9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3socHJvZ3JhbURhdGE/LlNlbGVjdGVkT3RoZXJzUHJvZ3JhbXNDb3VudD09MSk/J1Byb2dyYW0nOidQcm9ncmFtcyd9fSBzZWxlY3RlZDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJpZ2h0IHZ4LWQtZmxleCB2eC1qdXN0aWZ5LWVuZCB2eC13LTEwMFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjb3VudGVyIHZ4LXR4dC13aGl0ZSB2eC1mdy01MDAgdngtZC1pbmxpbmUtYmxvY2sgdngtdGV4dC1jZW50ZXJcIj57e3Byb2dyYW1EYXRhPy5BbGxPdGhlcnNQcm9ncmFtc0NvdW50fX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG5cbiAgICAgICAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJmaWx0ZXItY2FyZFwiIFtjbGFzcy5hY3RpdmVdPVwiYWN0aXZlVGFiID09ICdyZWd1bGF0aW9ucydcIiAoY2xpY2spPVwiY2hhbmdlVGFiUHJvZ3JhbSgncmVndWxhdGlvbnMnKVwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGVmdFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPlJFR1VMQVRJT05TPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwICpuZ0lmPVwicHJvZ3JhbURhdGE/LlNlbGVjdGVkUmVndWxhdGlvblByb2dyYW1zQ291bnQ+IDBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e3Byb2dyYW1EYXRhPy5TZWxlY3RlZFJlZ3VsYXRpb25Qcm9ncmFtc0NvdW50fX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyhwcm9ncmFtRGF0YT8uU2VsZWN0ZWRSZWd1bGF0aW9uUHJvZ3JhbXNDb3VudD09MSk/J1Byb2dyYW0nOidQcm9ncmFtcyd9fSBzZWxlY3RlZFxuICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjb3VudGVyXCI+e3twcm9ncmFtRGF0YT8uQWxsUmVndWxhdGlvblByb2dyYW1zQ291bnR9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj4gLS0+XG4gICAgICAgICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwiZmlsdGVyLWNhcmRcIiBbY2xhc3MuYWN0aXZlXT1cImFjdGl2ZVRhYiA9PSAnc3RhbmRhcmRzJ1wiIChjbGljayk9XCJjaGFuZ2VUYWJQcm9ncmFtKCdzdGFuZGFyZHMnKVwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGVmdFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPlNUQU5EQVJEUzwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICA8cCAqbmdJZj1cInByb2dyYW1EYXRhPy5TZWxlY3RlZFN0YW5kYXJkUHJvZ3JhbXNDb3VudD4gMFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7cHJvZ3JhbURhdGE/LlNlbGVjdGVkU3RhbmRhcmRQcm9ncmFtc0NvdW50fX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyhwcm9ncmFtRGF0YT8uU2VsZWN0ZWRTdGFuZGFyZFByb2dyYW1zQ291bnQ9PTEpPydQcm9ncmFtJzonUHJvZ3JhbXMnfX0gc2VsZWN0ZWRcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY291bnRlclwiPnt7cHJvZ3JhbURhdGE/LkFsbFN0YW5kYXJkUHJvZ3JhbXNDb3VudH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvZGl2PiAtLT5cbiAgICAgICAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJmaWx0ZXItY2FyZFwiIFtjbGFzcy5hY3RpdmVdPVwiYWN0aXZlVGFiID09ICdpbnRlcm5hbF9jb250cm9scydcIiAoY2xpY2spPVwiY2hhbmdlVGFiUHJvZ3JhbSgnaW50ZXJuYWxfY29udHJvbHMnKVwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGVmdFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPklOVEVSTkFMIENPTlRST0xTPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwICpuZ0lmPVwicHJvZ3JhbURhdGE/LlNlbGVjdGVkSW50ZXJuYWxDb250cm9sc1Byb2dyYW1zQ291bnQ+IDBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e3Byb2dyYW1EYXRhPy5TZWxlY3RlZEludGVybmFsQ29udHJvbHNQcm9ncmFtc0NvdW50fX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyhwcm9ncmFtRGF0YT8uU2VsZWN0ZWRJbnRlcm5hbENvbnRyb2xzUHJvZ3JhbXNDb3VudD09MSk/J1Byb2dyYW0nOidQcm9ncmFtcyd9fSBzZWxlY3RlZFxuICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjb3VudGVyXCI+e3twcm9ncmFtRGF0YT8uQWxsSW50ZXJuYWxDb250cm9sc1Byb2dyYW1zQ291bnR9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj4gLS0+XG4gICAgICAgICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwiZmlsdGVyLWNhcmRcIiBbY2xhc3MuYWN0aXZlXT1cImFjdGl2ZVRhYiA9PSAnb3RoZXJzJ1wiIChjbGljayk9XCJjaGFuZ2VUYWJQcm9ncmFtKCdvdGhlcnMnKVwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGVmdFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPk9USEVSUzwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICA8cCAqbmdJZj1cInByb2dyYW1EYXRhPy5TZWxlY3RlZE90aGVyc1Byb2dyYW1zQ291bnQ+IDBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e3Byb2dyYW1EYXRhPy5TZWxlY3RlZE90aGVyc1Byb2dyYW1zQ291bnR9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7KHByb2dyYW1EYXRhPy5TZWxlY3RlZE90aGVyc1Byb2dyYW1zQ291bnQ9PTEpPydQcm9ncmFtJzonUHJvZ3JhbXMnfX0gc2VsZWN0ZWRcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY291bnRlclwiPnt7cHJvZ3JhbURhdGE/LkFsbE90aGVyc1Byb2dyYW1zQ291bnR9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj4gLS0+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsaW5rLXBvbGljeS1zZWFyY2ggdngtbWItMlwiPlxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnMgdngtZnMtMTJcIj4mI3hlOTBiOzwvaT5cbiAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgcGxhY2Vob2xkZXI9XCJTZWFyY2ggUHJvZ3JhbXNcIiAjc2VhcmNoUHJvZ3JhbVxuICAgICAgICAgICAgICAgICAgICAoa2V5dXAuZW50ZXIpPVwic2VhcmNoQnkoJGV2ZW50LnRhcmdldC52YWx1ZSwncHJvZ3JhbXMnKVwiIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDx2dWktcGFnaW5hdGlvbiAqbmdJZj1cIighbG9hZGVyKSAmJiBwcm9ncmFtRGF0YS50b3RhbFBhZ2VzPjFcIiBbZnJvbV09XCJwcm9ncmFtRGF0YS5mcm9tXCJcbiAgICAgICAgICAgICAgICBbdG9dPVwicHJvZ3JhbURhdGEudG9cIiBbdG90YWxdPVwicHJvZ3JhbURhdGEudG90YWxSZWNvcmRzXCIgW3Nob3dQYWdlRGV0YWlsXT1cInRydWVcIlxuICAgICAgICAgICAgICAgIFt0b3RhbFBhZ2VdPVwicHJvZ3JhbURhdGEudG90YWxQYWdlc1wiIFtjdXJyZW50UGFnZV09XCJwcm9ncmFtRGF0YS5jdXJyZW50UGFnZVwiIFtwYWdlSW5TaW5nbGVWaWV3XT1cIjVcIlxuICAgICAgICAgICAgICAgIChwYWdlQ2hhbmdlZCk9XCJjaGFuZ2VQYWdlKCRldmVudCwncHJvZ3JhbXMnKVwiPlxuICAgICAgICAgICAgPC92dWktcGFnaW5hdGlvbj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcm9ncmFtLWxpc3RpbmctcGFydCB2eC1tYi00XCIgW2NsYXNzLndpdGgtcGFnaW5hdGlvbl09XCIoIWxvYWRlcikgJiYgcHJvZ3JhbURhdGEudG90YWxQYWdlcz4xXCI+XG4gICAgICAgICAgICAgICAgPGFwcC1uby1kYXRhICpuZ0lmPVwicHJvZ3JhbURhdGE/LmRhdGE/Lmxlbmd0aD09MCAmJiAhbG9hZGVyXCJcbiAgICAgICAgICAgICAgICAgICAgW25vRGF0YUltYWdlXT1cIidodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvc2VhcmNoLWRhdGEuc3ZnJ1wiIFtub0RhdGFUZXh0XT1cIidObyBkYXRhIHRvIGRpc3BsYXknXCI+PC9hcHAtbm8tZGF0YT5cblxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcm9ncmFtLWxpc3RpbmctaXRlbVwiIFtjbGFzcy5hY3RpdmVdPVwic2VsZWN0ZWRWYWx1ZXM/LnByb2dyYW0/LmNhdGVnb3J5X2lkID09IHByb2dyYW0/LmNhdGVnb3J5X2lkXCJcbiAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IHByb2dyYW0gb2YgcHJvZ3JhbURhdGEuZGF0YTtsZXQgaSA9IGluZGV4XCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0YWJsZS1yb3cgbWFpbi1saXN0XCIgW2NsYXNzLmFjdGl2ZV09XCJzZWxlY3RlZFZhbHVlcz8ucHJvZ3JhbT8uY2F0ZWdvcnlfaWQgPT0gcHJvZ3JhbT8uY2F0ZWdvcnlfaWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cInByb2dyYW0/LnByb2dyYW1SZXBvcnRFeGlzdHM9PTBcIiAoY2xpY2spPVwic2VsZWN0UHJvZ3JhbSh0cnVlLHByb2dyYW0pXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFibGUtY29sdW1uIHNlcmlhbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzci1ub1wiIFthcHBUb29sdGlwXT1cImkrcHJvZ3JhbURhdGEuZnJvbVwiIHBsYWNlbWVudD1cImJvdHRvbVwiIGRlbGF5PVwiMFwiIHR5cGU9XCJibGFja1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0b29sdGlwTWFuZGF0b3J5XT1cInRydWVcIj57e2krcHJvZ3JhbURhdGEuZnJvbX19PC9kaXY+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFwcC1jcy1yYWRpbyBbbmFtZV09XCIncG9saWN5TmFtZSdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwic2VsZWN0ZWRWYWx1ZXM/LnByb2dyYW0/LmNhdGVnb3J5X2lkID09IHByb2dyYW0/LmNhdGVnb3J5X2lkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGVja2VkRXZlbnQpPVwic2VsZWN0UHJvZ3JhbSgkZXZlbnQudGFyZ2V0LmNoZWNrZWQscHJvZ3JhbSlcIj48L2FwcC1jcy1yYWRpbz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLWNvbHVtbiBuYW1lXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm5hbWUtaW5uZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm5hbWUtd2l0aC1jb3VudFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZhbHVlXCIgYXBwVG9vbHRpcD1cInt7cHJvZ3JhbT8ubmFtZSB8IHRvb2x0aXBWYWxpZGF0aW9ufX1cIiBwbGFjZW1lbnQ9XCJib3R0b20tbGVmdFwiIGRlbGF5PVwiMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJsYWNrXCIgW3Rvb2x0aXBNYW5kYXRvcnldPVwiZmFsc2VcIj57e3Byb2dyYW0/Lm5hbWV9fTwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxpbmstcG9saWN5LWZsb2F0aW5nLWJhciB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWp1c3RpZnktYmV0d2VlbiB2eC1wLTNcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGluay1wb2xpY3ktZmxvYXRpbmctYmFyLWxlZnQgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlclwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hpcENvbnRhaW5lciB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LXBsLTIgdngtcHItMlwiICpuZ0lmPVwic2VsZWN0ZWRWYWx1ZXM/LnByb2dyYW0/Lm5hbWVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnMgY3Jvc3MgdngtZnMtMTAgdngtcGFyYWdyYXBoLXR4dCB2eC1tci0xXCIgKGNsaWNrKT1cInJlbW92ZSgncHJvZ3JhbXMnLCcnKVwiPiYjeGU5YWU7PC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjaGlwTmFtZSB2eC1mcy0xMSB2eC1sYWJlbC10eHRcIiBbYXBwVG9vbHRpcF09XCJzZWxlY3RlZFZhbHVlcz8ucHJvZ3JhbT8ubmFtZVwiIHBsYWNlbWVudD1cImJvdHRvbS1sZWZ0XCIgZGVsYXk9XCIwXCIgdHlwZT1cImJsYWNrXCIgW3Rvb2x0aXBNYW5kYXRvcnldPVwiZmFsc2VcIj57e3NlbGVjdGVkVmFsdWVzPy5wcm9ncmFtPy5uYW1lfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImNoaXAgdngtcGwtMiB2eC1wci0yIHZ4LXR4dC1ibHVlIHZ4LWZzLTEyIHZ4LWxoLTYgdngtbXItMVwiICpuZ0lmPVwic2VsZWN0ZWRWYWx1ZXM/LnByb2dyYW0/Lm5hbWVcIj48aSBjbGFzcz1cImljb25zIHZ4LW1yLTFcIiAoY2xpY2spPVwicmVtb3ZlKCdwcm9ncmFtcycsJycpXCI+JiN4ZTlhZTs8L2k+e3tzZWxlY3RlZFZhbHVlcz8ucHJvZ3JhbT8ubmFtZX19PC9kaXY+IC0tPlxuICAgICAgICAgICAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJ2eC1mcy0xMiB2eC1mdy01MDAgdngtcGFyYWdyYXBoLXR4dCB2eC1tbC0yXCI+UG9saWN5IHNlbGVjdGVkPC9kaXY+IC0tPlxuXG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxpbmstcG9saWN5LWZsb2F0aW5nLWJhci1yaWdodCB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cImdvQmFjaygpXCIgY2xhc3M9XCJjYW5jZWwtYnRuIHZ4LWZzLTExIHZ4LWZ3LTUwMCB2eC10dC11cHBlcmNhc2UgdngtbS0wIHZ4LW1yLTIgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1qdXN0aWZ5LWNlbnRlciB2eC10eHQtcmVkXCI+Q0FOQ0VMPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwhLS0gPGJ1dHRvbiAoY2xpY2spPVwic2F2ZUNoYW5nZXMoJ3Byb2dyYW1zJylcIiBbY2xhc3MuZGlzYWJsZWRdPVwiIXNlbGVjdGVkVmFsdWVzPy5wcm9ncmFtPy5uYW1lXCIgY2xhc3M9XCJ3aGl0ZS1idG4gdngtZnMtMTEgdngtZnctNTAwIHZ4LXR0LXVwcGVyY2FzZSB2eC1tLTAgdngtbXItMSB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWp1c3RpZnktY2VudGVyIHZ4LXR4dC1ibHVlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICBMSU5LIENBVEVHT1JJRVMgQU5EIFJFU1BPTlNJQklMSVRJRVM8L2J1dHRvbj4gLS0+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cInNhdmVDaGFuZ2VzKCdwcm9ncmFtcycpXCIgW2NsYXNzLmRpc2FibGVkXT1cIiFzZWxlY3RlZFZhbHVlcz8ucHJvZ3JhbT8ubmFtZVwiIGNsYXNzPVwibmV4dC1idG4gdngtZnMtMTEgdngtZnctNTAwIHZ4LXR0LXVwcGVyY2FzZSB2eC1tLTAgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1qdXN0aWZ5LWNlbnRlciB2eC10eHQtd2hpdGVcIj5MaW5rXG4gICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb25zIHZ4LW1sLTJcIj4mI3hlOTFlOzwvaT48L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwicHJvZ3JhbS1saXN0aW5nLWNvbmZpcm1hdGlvblwiICpuZ0lmPVwiZGlzcGxheUNvbmZpcm1hdGlvbk1lc3NhZ2VcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb25maXJtYXRpb24tdG9wXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImljb24tYmxvY2tcIj48aSBjbGFzcz1cImljb25zXCI+JiN4ZTkzMDs8L2k+PC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHRcIj5Zb3UgaGF2ZSBvcHRlZCB0byBsaW5rIGFsbCB0aGUgcmVzcG9uc2liaWxpdGllcyB1bmRlciB0aGUgc2VsZWN0ZWQgcHJvZ3JhbSBcInt7c2VsZWN0ZWRWYWx1ZXM/LnByb2dyYW0/Lm5hbWUgfX1cIiBhbmQgaXQncyBzdWItY2F0ZWdvcmllcy48L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbmZpcm1hdGlvbi1ib3R0b21cIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWVzc2FnZVwiPkFyZSB5b3Ugc3VyZSB5b3Ugd291bGQgbGlrZSB0byBwcm9jZWVkPzwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJidXR0b24tZ3JvdXBcIj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cIm5vLWJ0blwiIChjbGljayk9XCJzYXZlQ2hhbmdlc0Zyb21Qcm9ncmFtKGZhbHNlKVwiPk5PPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJ5ZXMtYnRuXCIgKGNsaWNrKT1cInNhdmVDaGFuZ2VzRnJvbVByb2dyYW0odHJ1ZSlcIj5ZRVM8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjdXJyZW50TGlzdD09J2NhdGVnb3JpZXMnXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJsaW5rLXBvbGljeS1oZWFkIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtanVzdGlmeS1iZXR3ZWVuIHZ4LXBsLTQgdngtcHItNFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZ4LWZzLTE0IHZ4LWZ3LTUwMCB2eC1sYWJlbC10eHQgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlclwiPjxidXR0b24gKGNsaWNrKT1cImdvQmFjaygnY2F0ZWdvcmllcycpXCIgY2xhc3M9XCJiYWNrLWJ0biB2eC1mcy0xNCB2eC1mdy01MDAgdngtbGFibGUtdHh0IHZ4LXAtMCB2eC1tci0yIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXJcIj48aSBjbGFzcz1cImljb25zXCI+JiN4ZTkxZDs8L2k+PC9idXR0b24+IFNlbGVjdCBwcm9ncmFtIGNhdGVnb3JpZXMgdG8gbGluayB3aXRoIHRoaXMgcG9saWN5PC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwibGluay1wb2xpY3ktYm9keVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxpbmstcG9saWN5LXNlYXJjaCB2eC1tYi0yXCI+XG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29ucyB2eC1mcy0xMlwiPiYjeGU5MGI7PC9pPlxuICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIHBsYWNlaG9sZGVyPVwiU2VhcmNoIHByb2dyYW0gY2F0ZWdvcmllc1wiICAjc2VhcmNoQ2F0ZWdvcnlcbiAgICAgICAgICAgICAgICAgICAgKGtleXVwLmVudGVyKT1cInNlYXJjaEJ5KCRldmVudC50YXJnZXQudmFsdWUsJ2NhdGVnb3JpZXMnKVwiIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDx2dWktcGFnaW5hdGlvbiAqbmdJZj1cIighbG9hZGVyKSAmJiBzdWJDYXRlZ29yaWVzTGlzdC50b3RhbFBhZ2U+MVwiIFtmcm9tXT1cInN1YkNhdGVnb3JpZXNMaXN0LmZyb21cIlxuICAgICAgICAgICAgICAgIFt0b109XCJzdWJDYXRlZ29yaWVzTGlzdC50b1wiIFt0b3RhbF09XCJzdWJDYXRlZ29yaWVzTGlzdC50b3RhbFJlY29yZHNcIiBbc2hvd1BhZ2VEZXRhaWxdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgW3RvdGFsUGFnZV09XCJzdWJDYXRlZ29yaWVzTGlzdC50b3RhbFBhZ2VcIiBbY3VycmVudFBhZ2VdPVwic3ViQ2F0ZWdvcmllc0xpc3QuY3VycmVudFBhZ2VcIiBbcGFnZUluU2luZ2xlVmlld109XCI1XCJcbiAgICAgICAgICAgICAgICAocGFnZUNoYW5nZWQpPVwiY2hhbmdlUGFnZSgkZXZlbnQsJ3Byb2dyYW1zJylcIj5cbiAgICAgICAgICAgIDwvdnVpLXBhZ2luYXRpb24+XG5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsaW5rLXBvbGljeS10YWJsZSB2eC1tYi00XCIgW2NsYXNzLndpdGgtcGFnaW5hdGlvbl09XCIoIWxvYWRlcikgJiYgc3ViQ2F0ZWdvcmllc0xpc3QudG90YWxQYWdlPjFcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWxvYWRlciAmJiBzdWJDYXRlZ29yaWVzTGlzdC5kYXRhPy5sZW5ndGg+MFwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFibGUtaGVhZGVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFibGUtcm93XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInRhYmxlLWNvbHVtbiB2eC1mcy0xMCB2eC1mdy01MDAgdngtbGFiZWwtdHh0IHZ4LWxoLTUgdngtdHQtdXBwZXJjYXNlIHZ4LXBsLTEgdngtcHItMSB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHNlcmlhbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInRhYmxlLWNvbHVtbiB2eC1mcy0xMCB2eC1mdy01MDAgdngtbGFiZWwtdHh0IHZ4LWxoLTUgdngtdHQtdXBwZXJjYXNlIHZ4LXBsLTEgdngtcHItMSB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIGNhdGVnb3J5LW5hbWVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ0FURUdPUklFUzwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFibGUtYm9keVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSB3aGVuIGNoZWNrYm94IHdhcyBjaGVja2VkIHRoZW4gYWN0aXZlIGNsYXNzIHdhcyB0cnVlIC0tPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLXJvd1wiIFtjbGFzcy5hY3RpdmVdPVwic2VsZWN0ZWRJZHMuY2F0ZWdvcmllcy5pbmNsdWRlcyhjYXRlZ29yeS5jYXRlZ29yeV9pZClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBjYXRlZ29yeSBvZiBzdWJDYXRlZ29yaWVzTGlzdC5kYXRhOyBsZXQgaSA9IGluZGV4O1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0YWJsZS1jb2x1bW4gdngtcGwtMSB2eC1wci0xIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgc2VyaWFsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzci1ub1wiIFthcHBUb29sdGlwXT1cImkrc3ViQ2F0ZWdvcmllc0xpc3QuZnJvbVwiIHBsYWNlbWVudD1cImJvdHRvbVwiIGRlbGF5PVwiMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYmxhY2tcIiBbdG9vbHRpcE1hbmRhdG9yeV09XCJ0cnVlXCI+e3tpK3N1YkNhdGVnb3JpZXNMaXN0LmZyb219fTwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dnVpLWNoZWNrYm94IFtjaGVja2VkXT1cInNlbGVjdGVkSWRzLmNhdGVnb3JpZXMuaW5jbHVkZXMoY2F0ZWdvcnkuY2F0ZWdvcnlfaWQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwic2VsZWN0Q2F0ZWdvcnkoJGV2ZW50LnRhcmdldC5jaGVja2VkLGNhdGVnb3J5KVwiPjwvdnVpLWNoZWNrYm94PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0YWJsZS1jb2x1bW4gdngtcGwtMSB2eC1wci0xIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgY2F0ZWdvcnktbmFtZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidngtZC1ibG9jayB2eC13LTEwMFwiPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidmFsdWUgdngtZnMtMTIgdngtbGFiZWwtdHh0XCIgW2FwcFRvb2x0aXBdPVwiY2F0ZWdvcnk/Lml0ZW1fbmFtZSB8IHRvb2x0aXBWYWxpZGF0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tbGVmdFwiIGRlbGF5PVwiMFwiIHR5cGU9XCJibGFja1wiIFt0b29sdGlwTWFuZGF0b3J5XT1cImZhbHNlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tjYXRlZ29yeT8uaXRlbV9uYW1lfX08L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cblxuICAgICAgICAgICAgICAgIDxhcHAtbm8tZGF0YSAqbmdJZj1cIiFsb2FkZXIgJiYgc3ViQ2F0ZWdvcmllc0xpc3QuZGF0YT8ubGVuZ3RoPT0wXCJcbiAgICAgICAgICAgICAgICAgICAgW25vRGF0YUltYWdlXT1cIidodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvc2VhcmNoLWRhdGEuc3ZnJ1wiIFtub0RhdGFUZXh0XT1cIidObyBkYXRhIHRvIGRpc3BsYXknXCI+PC9hcHAtbm8tZGF0YT5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGluay1wb2xpY3ktZmxvYXRpbmctYmFyIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtanVzdGlmeS1iZXR3ZWVuIHZ4LXAtM1wiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsaW5rLXBvbGljeS1mbG9hdGluZy1iYXItbGVmdCB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGlwQ29udGFpbmVyIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtcGwtMiB2eC1wci0yXCIgKm5nSWY9XCJzZWxlY3RlZFZhbHVlcz8uY2F0ZWdvcmllcz8ubGVuZ3RoPjBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnMgY3Jvc3MgdngtZnMtMTAgdngtcGFyYWdyYXBoLXR4dCB2eC1tci0xXCIgKGNsaWNrKT1cInJlbW92ZSgnY2F0ZWdvcmllcycsc2VsZWN0ZWRWYWx1ZXM/LmNhdGVnb3JpZXNbMF0pXCI+JiN4ZTlhZTs8L2k+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNoaXBOYW1lIHZ4LWZzLTExIHZ4LWxhYmVsLXR4dFwiIFthcHBUb29sdGlwXT1cInNlbGVjdGVkVmFsdWVzPy5jYXRlZ29yaWVzWzBdPy5pdGVtX25hbWVcIiBwbGFjZW1lbnQ9XCJib3R0b20tbGVmdFwiIGRlbGF5PVwiMFwiIHR5cGU9XCJibGFja1wiIFt0b29sdGlwTWFuZGF0b3J5XT1cImZhbHNlXCI+e3tzZWxlY3RlZFZhbHVlcz8uY2F0ZWdvcmllc1swXT8uaXRlbV9uYW1lfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiY291bnRCdG4gdngtZnMtOSB2eC1mdy01MDAgdngtdHh0LXdoaXRlIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtanVzdGlmeS1jZW50ZXIgdngtbGgtNFwiIGFwcFBvcG92ZXIgKGNsaWNrKT1cInByb2dyYW1Db3VudC5wb3BvdmVyKClcIiBwbGFjZW1lbnQ9XCJsZWZ0XCIgKm5nSWY9XCJzZWxlY3RlZFZhbHVlcz8uY2F0ZWdvcmllcz8ubGVuZ3RoPjFcIj4re3tzZWxlY3RlZFZhbHVlcz8uY2F0ZWdvcmllcz8uc2xpY2UoMSkubGVuZ3RofX08L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInNlbGVjdGVkVmFsdWVzPy5jYXRlZ29yaWVzPy5zbGljZSgxKS5sZW5ndGhcIiBjbGFzcz1cInZ4LWZzLTEyIHZ4LWZ3LTUwMCB2eC1wYXJhZ3JhcGgtdHh0IHZ4LW1sLTJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7KHNlbGVjdGVkVmFsdWVzPy5jYXRlZ29yaWVzPy5zbGljZSgxKS5sZW5ndGggPT09IDEpPyAnUHJvZ3JhbSBjYXRlZ29yeVxuICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWQnOidQcm9ncmFtIGNhdGVnb3JpZXMgc2VsZWN0ZWQnfX1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxhcHAtcG9wb3ZlciAjcHJvZ3JhbUNvdW50PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndmLWFjdGlvbi1saXN0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPVwiYWN0aW9uLWl0ZW1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpICpuZ0Zvcj1cImxldCBzZWxlY3RlZENhdGVnb3J5IG9mIHNlbGVjdGVkVmFsdWVzPy5jYXRlZ29yaWVzPy5zbGljZSgxKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF2YXRhci1jYXJkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29ucyBjcm9zcy1idG4gdngtZnMtMTIgdngtcGFyYWdyYXBoLXR4dCB2eC1tci0yXCIgKGNsaWNrKT1cInJlbW92ZSgnY2F0ZWdvcmllcycsc2VsZWN0ZWRDYXRlZ29yeSlcIj4mI3hlOWFlOzwvaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZhbHVlXCI+e3tzZWxlY3RlZENhdGVnb3J5Py5pdGVtX25hbWV9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9hcHAtcG9wb3Zlcj5cblxuXG4gICAgICAgICAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImNoaXAgdngtcGwtMiB2eC1wci0yIHZ4LXR4dC1ibHVlIHZ4LWZzLTEyIHZ4LWxoLTYgdngtbXItMVwiICpuZ0lmPVwic2VsZWN0ZWRWYWx1ZXMuY2F0ZWdvcmllcy5sZW5ndGg+MFwiPjxpIChjbGljayk9XCJyZW1vdmUoJ2NhdGVnb3JpZXMnLHNlbGVjdGVkVmFsdWVzPy5jYXRlZ29yaWVzWzBdKVwiIGNsYXNzPVwiaWNvbnMgdngtbXItMVwiPiYjeGU5YWU7PC9pPiB7e3NlbGVjdGVkVmFsdWVzPy5jYXRlZ29yaWVzWzBdPy5pdGVtX25hbWV9fTwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2VsZWN0ZWRWYWx1ZXMuY2F0ZWdvcmllcy5sZW5ndGg+MVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImNvdW50IHZ4LWZzLTEyIHZ4LWZ3LTUwMCB2eC10eHQtd2hpdGUgdngtcC0wIHZ4LXBsLTEgdngtcHItMSB2eC1tLTAgdngtbWwtMSB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWp1c3RpZnktY2VudGVyXCIgdmNQb3BvdmVyIChjbGljayk9XCJwcm9ncmFtQ291bnQucG9wb3ZlcigpXCIgcG9zaXRpb249XCJsZWZ0XCI+K3t7c2VsZWN0ZWRWYWx1ZXM/LmNhdGVnb3JpZXM/LnNsaWNlKDEpLmxlbmd0aH19PC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidngtZnMtMTIgdngtZnctNTAwIHZ4LXBhcmFncmFwaC10eHQgdngtbWwtMlwiPnt7KHNlbGVjdGVkVmFsdWVzPy5jYXRlZ29yaWVzPy5zbGljZSgxKT8ubGVuZ3RoPT0xKT8nQ2F0ZWdvcnkgc2VsZWN0ZWQnOidDYXRlZ29yaWVzIHNlbGVjdGVkJ319PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YXBwLXBvcG92ZXIgI3Byb2dyYW1Db3VudD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwid2YtYWN0aW9uLWxpc3RcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPVwiYWN0aW9uLWl0ZW1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSAqbmdGb3I9XCJsZXQgc2VsZWN0ZWRDYXRlZ29yeSBvZiBzZWxlY3RlZFZhbHVlcz8uY2F0ZWdvcmllcz8uc2xpY2UoMSlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXZhdGFyLWNhcmRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29ucyBjcm9zcy1idG4gdngtZnMtMTIgdngtdHh0LWJsdWUgdngtbXItMlwiIChjbGljayk9XCJyZW1vdmUoJ2NhdGVnb3JpZXMnLHNlbGVjdGVkQ2F0ZWdvcnkpXCI+JiN4ZTlhZTs8L2k+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmFsdWVcIj57e3NlbGVjdGVkQ2F0ZWdvcnk/Lml0ZW1fbmFtZX19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYXBwLXBvcG92ZXI+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPiAtLT5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGluay1wb2xpY3ktZmxvYXRpbmctYmFyLXJpZ2h0IHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwiZ29CYWNrKCdjYXRlZ29yaWVzJylcIiBjbGFzcz1cImNhbmNlbC1idG4gdngtZnMtMTEgdngtZnctNTAwIHZ4LXR0LXVwcGVyY2FzZSB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWp1c3RpZnktY2VudGVyIHZ4LXR4dC1yZWRcIj5DQU5DRUw8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwic2F2ZUNoYW5nZXMoJ2NhdGVnb3JpZXMnKVwiIFtjbGFzcy5kaXNhYmxlZF09XCIhc2VsZWN0ZWRWYWx1ZXM/LmNhdGVnb3JpZXM/Lmxlbmd0aFwiIGNsYXNzPVwibmV4dC1idG4gdngtZnMtMTEgdngtZnctNTAwIHZ4LXR0LXVwcGVyY2FzZSB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWp1c3RpZnktY2VudGVyIHZ4LXR4dC13aGl0ZSB2eC1tbC01XCI+QWRkIDxpIGNsYXNzPVwiaWNvbnMgdngtbWwtMlwiPiYjeGU5MWU7PC9pPjwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImN1cnJlbnRMaXN0PT0ncmVzcG9uc2liaWxpdGllcydcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImxpbmstcG9saWN5LWhlYWQgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1qdXN0aWZ5LWJldHdlZW4gdngtcGwtNCB2eC1wci00XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidngtZnMtMTQgdngtZnctNTAwIHZ4LWxhYmVsLXR4dCB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyXCI+PGJ1dHRvbiAoY2xpY2spPVwiZ29CYWNrKCdyZXNwb25zaWJpbGl0aWVzJylcIiBjbGFzcz1cImJhY2stYnRuIHZ4LWZzLTE0IHZ4LWZ3LTUwMCB2eC1sYWJsZS10eHQgdngtcC0wIHZ4LW1yLTIgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlclwiPjxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOTFkOzwvaT48L2J1dHRvbj4gU2VsZWN0IFJlc3BvbnNpYmlsaXRpZXMgdG8gbGluayB3aXRoIHRoaXMgcG9saWN5IDwvZGl2PlxuICAgICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwicGFnZS10aXRsZSB2eC1mcy0xNCB2eC1mdy01MDAgdngtbGFiZWwtdHh0XCI+U2VsZWN0IFJlc3BvbnNpYmlsaXRpZXMgdG8gbGluayB3aXRoIHRoaXMgcG9saWN5IDwvZGl2PiAtLT5cblxuICAgICAgICAgICAgPCEtLSA8YnV0dG9uICAoY2xpY2spPVwiZ29CYWNrKCdyZXNwb25zaWJpbGl0aWVzJylcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYmFjay1idG4gdngtZnMtMTQgdngtZnctNTAwIHZ4LWxhYmVsLXR4dCB2eC10dC11cHBlcmNhc2UgdngtcC0wIHZ4LW0tMCB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyXCI+PGlcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJpY29ucyB2eC1tci0xXCI+JiN4ZTkxZDs8L2k+IEJBQ0s8L2J1dHRvbj4gLS0+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwibGluay1wb2xpY3ktYm9keVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxpbmstcG9saWN5LXNlYXJjaCB2eC1tYi0yXCI+XG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29ucyB2eC1mcy0xMlwiPiYjeGU5MGI7PC9pPlxuICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIHBsYWNlaG9sZGVyPVwiU2VhcmNoIFJlc3BvbnNpYmlsaXRpZXNcIiAoa2V5dXAuZW50ZXIpPVwic2VhcmNoQnkoJGV2ZW50LnRhcmdldC52YWx1ZSwncmVzcG9uc2liaWxpdGllcycpXCIgLz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPHZ1aS1wYWdpbmF0aW9uICpuZ0lmPVwiKCFsb2FkZXIpICYmIHJlc3BvbnNpYmlsaXRpZXNMaXN0LnRvdGFsUGFnZT4xXCIgW2Zyb21dPVwicmVzcG9uc2liaWxpdGllc0xpc3QuZnJvbVwiXG4gICAgICAgICAgICAgICAgW3RvXT1cInJlc3BvbnNpYmlsaXRpZXNMaXN0LnRvXCIgW3RvdGFsXT1cInJlc3BvbnNpYmlsaXRpZXNMaXN0LnRvdGFsUmVjb3Jkc1wiIFtzaG93UGFnZURldGFpbF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICBbdG90YWxQYWdlXT1cInJlc3BvbnNpYmlsaXRpZXNMaXN0LnRvdGFsUGFnZVwiIFtjdXJyZW50UGFnZV09XCJyZXNwb25zaWJpbGl0aWVzTGlzdC5jdXJyZW50UGFnZVwiIFtwYWdlSW5TaW5nbGVWaWV3XT1cIjVcIlxuICAgICAgICAgICAgICAgIChwYWdlQ2hhbmdlZCk9XCJjaGFuZ2VQYWdlKCRldmVudCwncmVzcG9uc2liaWxpdGllcycpXCI+XG4gICAgICAgICAgICA8L3Z1aS1wYWdpbmF0aW9uPlxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGluay1wb2xpY3ktdGFibGUgdngtbWItNFwiIFtjbGFzcy53aXRoLXBhZ2luYXRpb25dPVwiKCFsb2FkZXIpICYmIHN1YkNhdGVnb3JpZXNMaXN0LnRvdGFsUGFnZT4xXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFsb2FkZXIgJiYgcmVzcG9uc2liaWxpdGllc0xpc3QuZGF0YT8ubGVuZ3RoPjBcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLWhlYWRlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLXJvd1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0YWJsZS1jb2x1bW4gdngtZnMtMTAgdngtZnctNTAwIHZ4LWxhYmVsLXR4dCB2eC1saC01IHZ4LXR0LXVwcGVyY2FzZSB2eC1wbC0xIHZ4LXByLTEgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciBzZXJpYWxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIzwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0YWJsZS1jb2x1bW4gdngtZnMtMTAgdngtZnctNTAwIHZ4LWxhYmVsLXR4dCB2eC1saC01IHZ4LXR0LXVwcGVyY2FzZSB2eC1wbC0xIHZ4LXByLTEgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciBjYXRlZ29yeS1uYW1lXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJFU1BPTlNJQkxJVElFUzwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFibGUtYm9keVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSB3aGVuIGNoZWNrYm94IHdhcyBjaGVja2VkIHRoZW4gYWN0aXZlIGNsYXNzIHdhcyB0cnVlIC0tPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFibGUtcm93XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuYWN0aXZlXT1cInNlbGVjdGVkSWRzLnJlc3BvbnNpYmlsaXRpZXMuaW5jbHVkZXMocmVzcG9uc2liaWxpdHkuUmVwb3J0SWQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgcmVzcG9uc2liaWxpdHkgb2YgcmVzcG9uc2liaWxpdGllc0xpc3QuZGF0YTsgbGV0IGkgPSBpbmRleDtcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFibGUtY29sdW1uIHZ4LXBsLTEgdngtcHItMSB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHNlcmlhbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Itbm9cIiBbYXBwVG9vbHRpcF09XCJpK3Jlc3BvbnNpYmlsaXRpZXNMaXN0LmZyb21cIiBwbGFjZW1lbnQ9XCJib3R0b21cIiBkZWxheT1cIjBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJsYWNrXCIgW3Rvb2x0aXBNYW5kYXRvcnldPVwidHJ1ZVwiPnt7aStyZXNwb25zaWJpbGl0aWVzTGlzdC5mcm9tfX08L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHZ1aS1jaGVja2JveFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwic2VsZWN0ZWRJZHMucmVzcG9uc2liaWxpdGllcy5pbmNsdWRlcyhyZXNwb25zaWJpbGl0eS5SZXBvcnRJZClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJzZWxlY3RSZXNwb25zaWJpbGl0eSgkZXZlbnQudGFyZ2V0LmNoZWNrZWQscmVzcG9uc2liaWxpdHkpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdnVpLWNoZWNrYm94PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0YWJsZS1jb2x1bW4gdngtcGwtMSB2eC1wci0xIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgY2F0ZWdvcnktbmFtZVwiPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidmFsdWUgdngtZnMtMTIgdngtbGFiZWwtdHh0XCIgW2FwcFRvb2x0aXBdPVwicmVzcG9uc2liaWxpdHk/LmNvbnRyb2xfaWQgKyByZXNwb25zaWJpbGl0eT8uUmVwb3J0TmFtZSB8IHRvb2x0aXBWYWxpZGF0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tbGVmdFwiIGRlbGF5PVwiMFwiIHR5cGU9XCJibGFja1wiIFt0b29sdGlwTWFuZGF0b3J5XT1cImZhbHNlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2eC1mcy0xMCB2eC1mdy01MDAgdngtdHQtdXBwZXJjYXNlIHZ4LW1yLTFcIj57e3Jlc3BvbnNpYmlsaXR5Py5jb250cm9sX2lkfX08L3NwYW4+IHt7cmVzcG9uc2liaWxpdHk/LlJlcG9ydE5hbWV9fTwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cInRhYmxlLWNvbHVtbiB2eC1wbC0xIHZ4LXByLTEgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciBjYXRlZ29yeS1uYW1lXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidmFsdWUgdngtZnMtMTIgdngtbGFiZWwtdHh0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXBwVG9vbHRpcF09XCInW0NJRC0yMDIxMDAwNV0gQS44LjEuMyBBY2NlcHRhYmxlIFVzZSBvZiBBc3NldHMnXCIgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlbGF5PVwiMFwiIHR5cGU9XCJibGFja1wiIFt0b29sdGlwTWFuZGF0b3J5XT1cImZhbHNlXCI+PHNwYW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ2eC1mcy0xMCB2eC1mdy01MDAgdngtdHQtdXBwZXJjYXNlIHZ4LW1yLTFcIj5bQ0lELTIwMjEwMDA1XTwvc3Bhbj4gQS44LjEuM1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjY2VwdGFibGUgVXNlIG9mIEFzc2V0czwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj4gLS0+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgICAgICA8YXBwLW5vLWRhdGEgKm5nSWY9XCIhbG9hZGVyICYmIHJlc3BvbnNpYmlsaXRpZXNMaXN0LmRhdGE/Lmxlbmd0aD09MFwiXG4gICAgICAgICAgICAgICAgICAgIFtub0RhdGFJbWFnZV09XCInaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L3NlYXJjaC1kYXRhLnN2ZydcIiBbbm9EYXRhVGV4dF09XCInTm8gZGF0YSB0byBkaXNwbGF5J1wiPjwvYXBwLW5vLWRhdGE+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsaW5rLXBvbGljeS1mbG9hdGluZy1iYXIgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1qdXN0aWZ5LWJldHdlZW4gdngtcC0zIHZ4LW10LTFcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGluay1wb2xpY3ktZmxvYXRpbmctYmFyLWxlZnQgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlclwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hpcENvbnRhaW5lciB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LXBsLTIgdngtcHItMlwiICpuZ0lmPVwic2VsZWN0ZWRWYWx1ZXMucmVzcG9uc2liaWxpdGllcy5sZW5ndGg+MFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29ucyBjcm9zcyB2eC1mcy0xMCB2eC1wYXJhZ3JhcGgtdHh0IHZ4LW1yLTFcIiAoY2xpY2spPVwicmVtb3ZlKCdyZXNwb25zaWJpbGl0aWVzJyxzZWxlY3RlZFZhbHVlcz8ucmVzcG9uc2liaWxpdGllc1swXSlcIj4mI3hlOWFlOzwvaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2hpcE5hbWUgdngtZnMtMTEgdngtbGFiZWwtdHh0XCIgW2FwcFRvb2x0aXBdPVwic2VsZWN0ZWRWYWx1ZXM/LnJlc3BvbnNpYmlsaXRpZXNbMF0/LlJlcG9ydE5hbWVcIiBwbGFjZW1lbnQ9XCJib3R0b20tbGVmdFwiIGRlbGF5PVwiMFwiIHR5cGU9XCJibGFja1wiIFt0b29sdGlwTWFuZGF0b3J5XT1cImZhbHNlXCI+e3tzZWxlY3RlZFZhbHVlcz8ucmVzcG9uc2liaWxpdGllc1swXT8uUmVwb3J0TmFtZX19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImNvdW50QnRuIHZ4LWZzLTkgdngtZnctNTAwIHZ4LXR4dC13aGl0ZSB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWp1c3RpZnktY2VudGVyIHZ4LWxoLTRcIiBhcHBQb3BvdmVyIChjbGljayk9XCJyZXNwb25zaWJpbGl0aWVzUG9wb3Zlci5wb3BvdmVyKClcIiBwbGFjZW1lbnQ9XCJsZWZ0XCIgKm5nSWY9XCJzZWxlY3RlZFZhbHVlcy5yZXNwb25zaWJpbGl0aWVzLmxlbmd0aD4xXCI+K3t7c2VsZWN0ZWRWYWx1ZXM/LnJlc3BvbnNpYmlsaXRpZXM/LnNsaWNlKDEpLmxlbmd0aH19PC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YXBwLXBvcG92ZXIgI3Jlc3BvbnNpYmlsaXRpZXNQb3BvdmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3Zi1hY3Rpb24tbGlzdFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9XCJhY3Rpb24taXRlbVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpICpuZ0Zvcj1cImxldCBzZWxlY3RlZHJlcyBvZiBzZWxlY3RlZFZhbHVlcz8ucmVzcG9uc2liaWxpdGllcz8uc2xpY2UoMSlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXZhdGFyLWNhcmRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29ucyBjcm9zcy1idG4gdngtZnMtMTIgdngtcGFyYWdyYXBoLXR4dCB2eC1tci0yXCIgKGNsaWNrKT1cInJlbW92ZSgncmVzcG9uc2liaWxpdGllcycsc2VsZWN0ZWRyZXMpXCI+JiN4ZTlhZTs8L2k+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmFsdWVcIj57e3NlbGVjdGVkcmVzPy5SZXBvcnROYW1lfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9hcHAtcG9wb3Zlcj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxpbmstcG9saWN5LWZsb2F0aW5nLWJhci1yaWdodCB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cImdvQmFjaygncmVzcG9uc2liaWxpdGllcycpXCIgY2xhc3M9XCJjYW5jZWwtYnRuIHZ4LWZzLTExIHZ4LWZ3LTUwMCB2eC10dC11cHBlcmNhc2UgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1qdXN0aWZ5LWNlbnRlciB2eC10eHQtcmVkXCI+Q0FOQ0VMPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cInNhdmVDaGFuZ2VzKCdyZXNwb25zaWJpbGl0aWVzJylcIiBbY2xhc3MuZGlzYWJsZWRdPVwiIXNlbGVjdGVkVmFsdWVzPy5yZXNwb25zaWJpbGl0aWVzPy5sZW5ndGhcIiBjbGFzcz1cIm5leHQtYnRuIHZ4LWZzLTExIHZ4LWZ3LTUwMCB2eC10dC11cHBlcmNhc2UgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1qdXN0aWZ5LWNlbnRlciB2eC10eHQtd2hpdGUgdngtbWwtNVwiPkFERCA8aSBjbGFzcz1cImljb25zIHZ4LW1sLTJcIj4mI3hlOTFlOzwvaT48L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8YXBwLWxvYWRlci1pbmxpbmUgKm5nSWY9XCJsb2FkZXIgfHwgc3VibWlzc2lvbkxvYWRlclwiPjwvYXBwLWxvYWRlci1pbmxpbmU+XG48L2Rpdj5cbiJdfQ==