@seniorsistemas/yms-integration 1.32.0-7a92407d-4195-45d3-80d8-96605c56a35a → 1.32.0-ff302779-aa64-4fa8-b207-6d6eb93c6d69

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -38,13 +38,11 @@ let DocumentGridComponent = class DocumentGridComponent {
38
38
  this.getProcessTypeByScheduling();
39
39
  this.listDocuments(false);
40
40
  }
41
- ngAfterContentChecked() {
42
- this.gridColumns = this.getGridColumns();
43
- }
44
41
  verifyClienteExterno() {
45
42
  this.agendaService.isClienteExterno()
46
43
  .subscribe((result) => {
47
44
  this.isClienteExterno = result.isClienteExterno;
45
+ this.gridColumns = this.getGridColumns();
48
46
  this.cantEditStatus();
49
47
  });
50
48
  }
@@ -213,28 +211,46 @@ let DocumentGridComponent = class DocumentGridComponent {
213
211
  });
214
212
  }
215
213
  getGridColumns() {
216
- if (this.isWmsSeniorConnect()) {
217
- return [
218
- { field: "key", header: this.translate.instant("yms.int.wms_purchaseOrder") },
219
- ...this.getColumnPartner(),
220
- this.getColumninvoiceCondition(),
221
- ];
222
- }
223
- else if (this.isWmsWIS()) {
224
- return [
225
- ...this.getColumnInvoiceAndlogistcUnit(),
226
- this.getColumninvoiceCondition(),
227
- ];
228
- }
229
- else {
230
- return [
231
- { field: "invoiceKey", header: this.translate.instant("yms.int.wms_register_document_invoice_key") },
232
- ...this.getColumnInvoiceAndlogistcUnit(),
233
- { field: "ownerName", header: this.translate.instant("yms.int.wms_register_document_owner_name") },
234
- { field: "ownerDocument", header: this.translate.instant("yms.int.wms_register_document_owner_document") },
235
- this.getColumninvoiceCondition(),
236
- ];
214
+ let result;
215
+ switch (this.wmsSystem) {
216
+ case WmsSystem.SENIOR_CONNECT:
217
+ result = this.wmsSeniorConnectIntegration();
218
+ break;
219
+ case WmsSystem.WIS:
220
+ result = this.wmsWisIntegration();
221
+ break;
222
+ case WmsSystem.SENIOR:
223
+ result = this.wmsSiltIntegration();
224
+ break;
225
+ default:
226
+ result = [];
237
227
  }
228
+ return result;
229
+ }
230
+ wmsSeniorConnectIntegration() {
231
+ const columns = [
232
+ { field: "key", header: this.translate.instant("yms.int.wms_purchaseOrder") },
233
+ ...this.getColumnPartner(),
234
+ ];
235
+ this.addInvoiceSituationIfNotClienteExterno(columns);
236
+ return columns;
237
+ }
238
+ wmsWisIntegration() {
239
+ const columns = [
240
+ ...this.getColumnInvoiceAndlogistcUnit(),
241
+ ];
242
+ this.addInvoiceSituationIfNotClienteExterno(columns);
243
+ return columns;
244
+ }
245
+ wmsSiltIntegration() {
246
+ const columns = [
247
+ { field: "invoiceKey", header: this.translate.instant("yms.int.wms_register_document_invoice_key") },
248
+ ...this.getColumnInvoiceAndlogistcUnit(),
249
+ { field: "ownerName", header: this.translate.instant("yms.int.wms_register_document_owner_name") },
250
+ { field: "ownerDocument", header: this.translate.instant("yms.int.wms_register_document_owner_document") },
251
+ ];
252
+ this.addInvoiceSituationIfNotClienteExterno(columns);
253
+ return columns;
238
254
  }
239
255
  getColumninvoiceCondition() {
240
256
  return { field: "invoiceCondition", header: this.translate.instant("yms.int.wms_grid_document_invoice_condition") };
@@ -254,6 +270,11 @@ let DocumentGridComponent = class DocumentGridComponent {
254
270
  { field: "partnerDocument", header: this.translate.instant("yms.int.wms_register_document_partner_document") },
255
271
  ];
256
272
  }
273
+ addInvoiceSituationIfNotClienteExterno(columns) {
274
+ if (!this.isClienteExterno) {
275
+ columns.push(this.getColumninvoiceCondition());
276
+ }
277
+ }
257
278
  isWmsSeniorConnect() {
258
279
  return this.wmsSystem === WmsSystem.SENIOR_CONNECT;
259
280
  }
@@ -314,7 +335,7 @@ tslib_1.__decorate([
314
335
  DocumentGridComponent = tslib_1.__decorate([
315
336
  Component({
316
337
  selector: 'document-grid',
317
- template: "<div *ngIf=\"this.processType === 'RECEBIMENTO_WMS'; else processNotConfigured\">\n <p-panel>\n <p-header>\n <div class=\"buttons\">\n <div>\n <s-button\n label=\"{{'yms.int.wms_add_document' | translate}}\"\n priority=\"primary\"\n [model]=\"getActions()\"\n [auxiliary]=\"false\"\n [disabled]=\"!enableButtonIsClienteExterno\">\n </s-button>\n <s-button\n label=\"{{'yms.wms_view_button' | translate}}\"\n priority=\"secondary\"\n [auxiliary]=\"false\"\n [disabled]=\"!selection || selection.length !== 1\"\n (onClick)=\"view()\">\n </s-button>\n <s-button\n label=\"{{'yms.wms_delete_button' | translate}}\"\n priority=\"secondary\"\n [disabled]=\"!selection || !selection.length || !enableButtonIsClienteExterno\"\n (click)=\"onDelete()\">\n </s-button>\n </div>\n <s-button\n id=\"refresh-button\"\n priority=\"default\"\n iconClass=\"fa fa-refresh\"\n (onClick)=\"listDocuments(false)\"\n >\n </s-button>\n </div>\n </p-header>\n <div class=\"ui-g\">\n <div class=\"ui-g-12\" *ngIf=\"gridData && gridData.length; else emptyList\">\n <p-table #documentTable [value]=\"gridData\"\n [columns]=\"gridColumns\" dataKey=\"key\" [lazy]=\"true\" [scrollable]=\"true\" [resizableColumns]=\"true\"\n sortMode=\"multiple\" [paginator]=\"true\" [totalRecords]=\"documentTotalRecords\" rows=\"10\"\n [rowsPerPageOptions]=\"[10, 20, 50, 100]\" [(selection)]=\"selection\"\n [loading]=\"loading\">\n <ng-template pTemplate=\"colgroup\" let-columns>\n <colgroup>\n <col *ngFor=\"let col of columns\" [style.width]=\"col.width\"/>\n </colgroup>\n </ng-template>\n <ng-template pTemplate=\"header\" let-columns>\n <tr>\n <th id=\"checkbox\" class=\"table-checkbox\">\n <p-tableHeaderCheckbox></p-tableHeaderCheckbox>\n </th>\n <th id=\"col\" *ngFor=\"let col of columns\" [pSortableColumn]=\"col.field\" pResizableColumn>\n <div class=\"senior-header\">\n <span class=\"senior-header-title\">{{ col.header }}</span>\n <p-sortIcon [field]=\"col.field\"></p-sortIcon>\n </div>\n </th>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"body\" let-rowData let-columns let-expanded=\"expanded\">\n <tr [pSelectableRow]=\"rowData\">\n <td class=\"table-checkbox\">\n <p-tableCheckbox [value]=\"rowData\"></p-tableCheckbox>\n </td>\n <td *ngIf=\"isWmsSeniorConnect()\" (click)=\"selection = [rowData]\">\n <span>{{rowData[\"key\"]}}</span>\n </td>\n <td *ngIf=\"isWmsSilt()\" (click)=\"selection = [rowData]\">\n <span>{{rowData[\"invoiceKey\"]}}</span>\n </td>\n <td *ngIf=\"isWmsWIS() || isWmsSilt()\" (click)=\"selection = [rowData]\">\n <span>{{rowData[\"invoiceNumber\"]}}</span>\n </td>\n <td *ngIf=\"isWmsWIS() || isWmsSilt()\" (click)=\"selection = [rowData]\">\n <span>{{rowData[\"invoiceSerialNumber\"]}}</span>\n </td>\n <td *ngIf=\"isWmsWIS() || isWmsSeniorConnect() || isWmsSilt()\" (click)=\"selection = [rowData]\">\n <span>{{rowData[\"partnerName\"]}}</span>\n </td>\n <td *ngIf=\"isWmsWIS() || isWmsSeniorConnect() || isWmsSilt()\" (click)=\"selection = [rowData]\">\n <span>{{rowData[\"partnerDocument\"]}}</span>\n </td>\n <td *ngIf=\"isWmsWIS() || isWmsSilt()\" (click)=\"selection = [rowData]\">\n <span>{{rowData[\"logistcUnitName\"]}}</span>\n </td>\n <td *ngIf=\"isWmsWIS() || isWmsSilt()\" (click)=\"selection = [rowData]\">\n <span>{{rowData[\"logistcUnitDocument\"]}}</span>\n </td>\n <td *ngIf=\"isWmsSilt()\" (click)=\"selection = [rowData]\">\n <span>{{rowData[\"ownerName\"]}}</span>\n </td>\n <td *ngIf=\"isWmsSilt()\" (click)=\"selection = [rowData]\">\n <span>{{rowData[\"ownerDocument\"]}}</span>\n </td>\n <td (click)=\"selection = [rowData]\">\n <p-dropdown\n inputId=\"invoiceCondition\"\n name=\"invoiceCondition\"\n [autoWidth]=\"false\"\n [options]=\"invoiceCondition\"\n appendTo=\"body\"\n [(ngModel)]=\"rowData.invoiceCondition\"\n (onChange)=\"disabled = false\">\n </p-dropdown>\n </td>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"paginatorright\">\n <span [translate]=\"'total_records'\" [translateParams]=\"{ value: documentTotalRecords }\"></span>\n </ng-template>\n </p-table> \n </div>\n </div>\n <register-document\n [wmsSystem]=\"wmsSystem\"\n [edit]=\"edit\"\n [viewDocument]=\"selection\"\n (document)=\"onChangeDocument($event)\"\n [(visible)]=\"visibleDocumentRegister\"\n [agenda]=\"agenda\">\n </register-document> \n <insert-key\n [wmsSystem]=\"wmsSystem\" \n (document)=\"onChangeDocument($event)\"\n [(visible)]=\"visibleInvoiceKey\">\n </insert-key>\n </p-panel>\n</div>\n <div class=\"button-save\">\n <s-button \n priority=\"primary\" [label]=\"'save' | translate\"\n [disabled]=\"disabled || !this.gridData || !enableButtonIsClienteExterno\"\n (click)=\"save()\">\n </s-button>\n </div>\n\n<ng-template #emptyList>\n <div class=\"center\">\n <s-empty-state\n iconClass=\"fa fa-exclamation-triangle\" [title]=\"'detail_empty_state_title' | translate\"\n [description]=\"'detail_empty_state_description' | translate\">\n </s-empty-state>\n </div>\n</ng-template>\n\n<ng-template #processNotConfigured>\n <div class=\"center\">\n <s-empty-state\n iconClass=\"fa fa-exclamation-triangle\"\n [title]=\"'yms.int.wms_there_no_process_type_configured_for_this_type_scheduling' | translate\">\n </s-empty-state>\n </div>\n</ng-template>",
338
+ template: "<div *ngIf=\"this.processType === 'RECEBIMENTO_WMS'; else processNotConfigured\">\n <p-panel>\n <p-header>\n <div class=\"buttons\">\n <div>\n <s-button\n label=\"{{'yms.int.wms_add_document' | translate}}\"\n priority=\"primary\"\n [model]=\"getActions()\"\n [auxiliary]=\"false\"\n [disabled]=\"!enableButtonIsClienteExterno\">\n </s-button>\n <s-button\n label=\"{{'yms.wms_view_button' | translate}}\"\n priority=\"secondary\"\n [auxiliary]=\"false\"\n [disabled]=\"!selection || selection.length !== 1\"\n (onClick)=\"view()\">\n </s-button>\n <s-button\n label=\"{{'yms.wms_delete_button' | translate}}\"\n priority=\"secondary\"\n [disabled]=\"!selection || !selection.length || !enableButtonIsClienteExterno\"\n (click)=\"onDelete()\">\n </s-button>\n </div>\n <s-button\n id=\"refresh-button\"\n priority=\"default\"\n iconClass=\"fa fa-refresh\"\n (onClick)=\"listDocuments(false)\"\n >\n </s-button>\n </div>\n </p-header>\n <div class=\"ui-g\">\n <div class=\"ui-g-12\" *ngIf=\"gridData && gridData.length; else emptyList\">\n <p-table #documentTable [value]=\"gridData\"\n [columns]=\"gridColumns\" dataKey=\"key\" [lazy]=\"true\" [scrollable]=\"true\" [resizableColumns]=\"true\"\n sortMode=\"multiple\" [paginator]=\"true\" [totalRecords]=\"documentTotalRecords\" rows=\"10\"\n [rowsPerPageOptions]=\"[10, 20, 50, 100]\" [(selection)]=\"selection\"\n [loading]=\"loading\">\n <ng-template pTemplate=\"colgroup\" let-columns>\n <colgroup>\n <col *ngFor=\"let col of columns\" [style.width]=\"col.width\"/>\n </colgroup>\n </ng-template>\n <ng-template pTemplate=\"header\" let-columns>\n <tr>\n <th id=\"checkbox\" class=\"table-checkbox\">\n <p-tableHeaderCheckbox></p-tableHeaderCheckbox>\n </th>\n <th id=\"col\" *ngFor=\"let col of columns\" [pSortableColumn]=\"col.field\" pResizableColumn>\n <div class=\"senior-header\">\n <span class=\"senior-header-title\">{{ col.header }}</span>\n <p-sortIcon [field]=\"col.field\"></p-sortIcon>\n </div>\n </th>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"body\" let-rowData let-columns let-expanded=\"expanded\">\n <tr [pSelectableRow]=\"rowData\">\n <td class=\"table-checkbox\">\n <p-tableCheckbox [value]=\"rowData\"></p-tableCheckbox>\n </td>\n <td *ngIf=\"isWmsSeniorConnect()\" (click)=\"selection = [rowData]\">\n <span>{{rowData[\"key\"]}}</span>\n </td>\n <td *ngIf=\"isWmsSilt()\" (click)=\"selection = [rowData]\">\n <span>{{rowData[\"invoiceKey\"]}}</span>\n </td>\n <td *ngIf=\"isWmsWIS() || isWmsSilt()\" (click)=\"selection = [rowData]\">\n <span>{{rowData[\"invoiceNumber\"]}}</span>\n </td>\n <td *ngIf=\"isWmsWIS() || isWmsSilt()\" (click)=\"selection = [rowData]\">\n <span>{{rowData[\"invoiceSerialNumber\"]}}</span>\n </td>\n <td *ngIf=\"isWmsWIS() || isWmsSeniorConnect() || isWmsSilt()\" (click)=\"selection = [rowData]\">\n <span>{{rowData[\"partnerName\"]}}</span>\n </td>\n <td *ngIf=\"isWmsWIS() || isWmsSeniorConnect() || isWmsSilt()\" (click)=\"selection = [rowData]\">\n <span>{{rowData[\"partnerDocument\"]}}</span>\n </td>\n <td *ngIf=\"isWmsWIS() || isWmsSilt()\" (click)=\"selection = [rowData]\">\n <span>{{rowData[\"logistcUnitName\"]}}</span>\n </td>\n <td *ngIf=\"isWmsWIS() || isWmsSilt()\" (click)=\"selection = [rowData]\">\n <span>{{rowData[\"logistcUnitDocument\"]}}</span>\n </td>\n <td *ngIf=\"isWmsSilt()\" (click)=\"selection = [rowData]\">\n <span>{{rowData[\"ownerName\"]}}</span>\n </td>\n <td *ngIf=\"isWmsSilt()\" (click)=\"selection = [rowData]\">\n <span>{{rowData[\"ownerDocument\"]}}</span>\n </td>\n <td *ngIf=\"!isClienteExterno\" (click)=\"selection = [rowData]\">\n <p-dropdown\n inputId=\"invoiceCondition\"\n name=\"invoiceCondition\"\n [autoWidth]=\"false\"\n [options]=\"invoiceCondition\"\n appendTo=\"body\"\n [(ngModel)]=\"rowData.invoiceCondition\"\n (onChange)=\"disabled = false\">\n </p-dropdown>\n </td>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"paginatorright\">\n <span [translate]=\"'total_records'\" [translateParams]=\"{ value: documentTotalRecords }\"></span>\n </ng-template>\n </p-table> \n </div>\n </div>\n <register-document\n [wmsSystem]=\"wmsSystem\"\n [edit]=\"edit\"\n [viewDocument]=\"selection\"\n (document)=\"onChangeDocument($event)\"\n [(visible)]=\"visibleDocumentRegister\"\n [agenda]=\"agenda\"\n [isClienteExterno]=\"isClienteExterno\">\n </register-document> \n <insert-key\n [wmsSystem]=\"wmsSystem\" \n (document)=\"onChangeDocument($event)\"\n [(visible)]=\"visibleInvoiceKey\">\n </insert-key>\n </p-panel>\n</div>\n <div class=\"button-save\">\n <s-button \n priority=\"primary\" [label]=\"'save' | translate\"\n [disabled]=\"disabled || !this.gridData || !enableButtonIsClienteExterno\"\n (click)=\"save()\">\n </s-button>\n </div>\n\n<ng-template #emptyList>\n <div class=\"center\">\n <s-empty-state\n iconClass=\"fa fa-exclamation-triangle\" [title]=\"'detail_empty_state_title' | translate\"\n [description]=\"'detail_empty_state_description' | translate\">\n </s-empty-state>\n </div>\n</ng-template>\n\n<ng-template #processNotConfigured>\n <div class=\"center\">\n <s-empty-state\n iconClass=\"fa fa-exclamation-triangle\"\n [title]=\"'yms.int.wms_there_no_process_type_configured_for_this_type_scheduling' | translate\">\n </s-empty-state>\n </div>\n</ng-template>",
318
339
  styles: [".buttons{display:flex;justify-content:space-between}.center{flex-direction:column;text-align:center}.ui-g{display:block}.button-save{margin:5px 0}#refresh-button{color:#fff}.table-checkbox{width:50px}.invoice-condition .p-dropdown{position:relative;z-index:1000}"]
319
340
  }),
320
341
  tslib_1.__metadata("design:paramtypes", [TranslateService,
@@ -325,4 +346,4 @@ DocumentGridComponent = tslib_1.__decorate([
325
346
  UtilsMessageService])
326
347
  ], DocumentGridComponent);
327
348
  export { DocumentGridComponent };
328
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnQtZ3JpZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yc2lzdGVtYXMveW1zLWludGVncmF0aW9uLyIsInNvdXJjZXMiOlsic3JjL3dtcy9jb21wb25lbnRzL2RvY3VtZW50LWdyaWQvZG9jdW1lbnQtZ3JpZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBdUIsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUgsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLG1CQUFtQixFQUFZLE1BQU0sYUFBYSxDQUFDO0FBQzVELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsYUFBYSxFQUFvQixNQUFNLHNDQUFzQyxDQUFDO0FBRXZGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDakUsT0FBTyxFQUFvQyxrQkFBa0IsRUFBZSxNQUFNLGtEQUFrRCxDQUFDO0FBQ3JJLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGtFQUFrRSxDQUFDO0FBT3BHLElBQWEscUJBQXFCLEdBQWxDLE1BQWEscUJBQXFCO0lBa0Q5QixZQUNxQixTQUEyQixFQUMzQixlQUFnQyxFQUNoQyxtQkFBd0MsRUFDeEMsa0JBQXNDLEVBQ3RDLGFBQTRCLEVBQzVC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QUE0QjtBQUMzQjtJQUFULE1BQU0sRUFBRTs7c0VBQWtDO0FBRWpDO0lBQVQsTUFBTSxFQUFFO3NDQUFlLFlBQVk7MkRBQWdDO0FBa0JwRTtJQURDLFNBQVMsQ0FBQyxlQUFlLENBQUM7c0NBQ2IsS0FBSztvREFBQztBQUdwQjtJQURDLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQztzQ0FDTCxXQUFXOzZEQUFNO0FBR3hDO0lBREMsU0FBUyxDQUFDLG9CQUFvQixDQUFDO3NDQUNMLFdBQVc7aUVBQU07QUFHNUM7SUFEQyxTQUFTLENBQUMsb0JBQW9CLENBQUM7c0NBQ0wsV0FBVztpRUFBTTtBQUc1QztJQURDLFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQztzQ0FDTCxXQUFXOytEQUFNO0FBRzFDO0lBREMsU0FBUyxDQUFDLGdCQUFnQixDQUFDO3NDQUNMLFdBQVc7NkRBQU07QUF4Qy9CLHFCQUFxQjtJQUxqQyxTQUFTLENBQUM7UUFDUCxRQUFRLEVBQUUsZUFBZTtRQUN6QiwrcVBBQTZDOztLQUVoRCxDQUFDOzZDQW9Ea0MsZ0JBQWdCO1FBQ1YsZUFBZTtRQUNYLG1CQUFtQjtRQUNwQixrQkFBa0I7UUFDdkIsYUFBYTtRQUNyQixtQkFBbUI7R0F4RHRDLHFCQUFxQixDQXFVakM7U0FyVVkscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJDb250ZW50Q2hlY2tlZCwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSBcIkBuZ3gtdHJhbnNsYXRlL2NvcmVcIjtcbmltcG9ydCB7IENvbmZpcm1hdGlvblNlcnZpY2UsIE1lbnVJdGVtIH0gZnJvbSBcInByaW1lbmcvYXBpXCI7XG5pbXBvcnQgeyBUYWJsZSB9IGZyb20gXCJwcmltZW5nL3RhYmxlXCI7XG5pbXBvcnQgeyBTdWJqZWN0LCBlbXB0eSwgZm9ya0pvaW4gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFV0aWxzTWVzc2FnZVNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vLi4vdXRpbHMvdXRpbHMtbWVzc2FnZVwiO1xuaW1wb3J0IHsgQWdlbmRhU2VydmljZSwgSXNDbGllbnRlRXh0ZXJubyB9IGZyb20gJy4uLy4uL2VudGl0aWVzL2FnZW5kYS9hZ2VuZGEuc2VydmljZSc7XG5pbXBvcnQgeyBEb2N1bWVudCB9IGZyb20gXCIuLi8uLi9lbnRpdGllcy9kb2N1bWVudC9kb2N1bWVudFwiO1xuaW1wb3J0IHsgRG9jdW1lbnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZW50aXRpZXMvZG9jdW1lbnQvZG9jdW1lbnQuc2VydmljZSc7XG5pbXBvcnQgeyBXbXNTeXN0ZW0gfSBmcm9tICcuLi8uLi9lbnRpdGllcy93bXMtc3lzdGVtL3dtcy1zeXN0ZW0nO1xuaW1wb3J0IHsgR2V0UHJvY2Vzc1R5cGVCeVNjaGVkdWxpbmdPdXRwdXQsIEludGVncmF0aW9uU2VydmljZSwgUHJvY2Vzc1R5cGUgfSBmcm9tICcuLy4uLy4uL2VudGl0aWVzL2ludGVncmF0aW9uL2ludGVncmF0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgSW52b2ljZUNvbmRpdGlvbiB9IGZyb20gXCIuLi8uLi8uLi8uLi9zcmMvd21zL2VudGl0aWVzL2ludm9pY2UtY29uZGl0aW9uL2ludm9pY2UtY29uZGl0aW9uXCI7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZG9jdW1lbnQtZ3JpZCcsXG4gICAgdGVtcGxhdGVVcmw6IFwiLi9kb2N1bWVudC1ncmlkLmNvbXBvbmVudC5odG1sXCIsXG4gICAgc3R5bGVVcmxzOiBbXCIuL2RvY3VtZW50LWdyaWQuY29tcG9uZW50LnNjc3NcIl1cbn0pXG5leHBvcnQgY2xhc3MgRG9jdW1lbnRHcmlkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlckNvbnRlbnRDaGVja2VkIHtcblxuICAgIEBJbnB1dCgpIGFnZW5kYTtcbiAgICBASW5wdXQoKSB3bXNTeXN0ZW06IFdtc1N5c3RlbTtcbiAgICBAT3V0cHV0KCkgdmlzaWJsZUludm9pY2VLZXk6IGJvb2xlYW47XG4gICAgQE91dHB1dCgpIHZpc2libGVEb2N1bWVudFJlZ2lzdGVyOiBib29sZWFuO1xuXG4gICAgQE91dHB1dCgpIHZpZXdEb2N1bWVudDogRXZlbnRFbWl0dGVyPERvY3VtZW50PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIHB1YmxpYyBkb2N1bWVudFRvdGFsUmVjb3JkczogbnVtYmVyO1xuICAgIHB1YmxpYyBncmlkQ29sdW1uczogYW55O1xuICAgIHB1YmxpYyBncmlkRGF0YTogRG9jdW1lbnRbXSA9IFtdO1xuICAgIHB1YmxpYyBzZWxlY3Rpb246IERvY3VtZW50W107XG4gICAgcHVibGljIGRpc2FibGVkOiBib29sZWFuO1xuICAgIHB1YmxpYyBsb2FkaW5nOiBib29sZWFuO1xuICAgIHB1YmxpYyBkb2N1bWVudDogRG9jdW1lbnQ7XG4gICAgcHVibGljIGVkaXQ6IGJvb2xlYW47XG4gICAgcHVibGljIHByb2Nlc3NUeXBlOiBQcm9jZXNzVHlwZTtcbiAgICBwcml2YXRlIGlzQ2xpZW50ZUV4dGVybm86IGJvb2xlYW47XG4gICAgcHVibGljIGVuYWJsZUJ1dHRvbklzQ2xpZW50ZUV4dGVybm8gPSB0cnVlO1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBzdW1tYXJ5ID0gXCJ5bXMuaW50Lndtc19zYXZlZF9kb2N1bWVudF9tZXNzYWdlX3RpdGxlXCI7XG4gICAgcHJpdmF0ZSByZWFkb25seSBuZ1Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3QoKTtcblxuICAgIEBWaWV3Q2hpbGQoXCJkb2N1bWVudFRhYmxlXCIpXG4gICAgcHVibGljIHRhYmxlOiBUYWJsZTtcblxuICAgIEBWaWV3Q2hpbGQoXCJjdXN0b21UZW1wbGF0ZVwiKVxuICAgIHB1YmxpYyBjdXN0b21UZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIEBWaWV3Q2hpbGQoXCJjdXN0b21GaWx0ZXJGaWVsZHNcIilcbiAgICBwdWJsaWMgY3VzdG9tRmlsdGVyRmllbGRzOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgQFZpZXdDaGlsZChcImN1c3RvbUdyaWRDb2xncm91cFwiKVxuICAgIHB1YmxpYyBjdXN0b21HcmlkQ29sZ3JvdXA6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBAVmlld0NoaWxkKFwiY3VzdG9tR3JpZEhlYWRlclwiKVxuICAgIHB1YmxpYyBjdXN0b21HcmlkSGVhZGVyOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgQFZpZXdDaGlsZChcImN1c3RvbUdyaWRCb2R5XCIpXG4gICAgcHVibGljIGN1c3RvbUdyaWRCb2R5OiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgcHVibGljIGludm9pY2VDb25kaXRpb246IHsgbGFiZWw6IHN0cmluZzsgdmFsdWU6IEludm9pY2VDb25kaXRpb24gfVtdID0gW1xuICAgICAgICB7IGxhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFwieW1zLmludC53bXNfZ3JpZF9kb2N1bWVudF9pbnZvaWNlX25vX3dheVwiKSwgdmFsdWU6IG51bGwgfSxcbiAgICAgICAgeyBsYWJlbDogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcInltcy5pbnQud21zX2dyaWRfZG9jdW1lbnRfaW52b2ljZV9jb25kaXRpb25fYXV0aG9yaXplZFwiKSwgdmFsdWU6IEludm9pY2VDb25kaXRpb24uQVVUSE9SSVpFRCB9LFxuICAgICAgICB7IGxhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFwieW1zLmludC53bXNfZ3JpZF9kb2N1bWVudF9pbnZvaWNlX2NvbmRpdGlvbl9tYW51YWxfYXV0aG9yaXplZFwiKSwgdmFsdWU6IEludm9pY2VDb25kaXRpb24uTUFOVUFMX0FVVEhPUklaRUQgfSxcbiAgICAgICAgeyBsYWJlbDogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcInltcy5pbnQud21zX2dyaWRfZG9jdW1lbnRfaW52b2ljZV9jb25kaXRpb25fcGFydGlhbF9hdXRob3JpemVkXCIpLCB2YWx1ZTogSW52b2ljZUNvbmRpdGlvbi5QQVJUSUFMX0FVVEhPUklaRUQgfSxcbiAgICAgICAgeyBsYWJlbDogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcInltcy5pbnQud21zX2dyaWRfZG9jdW1lbnRfaW52b2ljZV9jb25kaXRpb25fZGV2b2x1Y2lvblwiKSwgdmFsdWU6IEludm9pY2VDb25kaXRpb24uQVVUSE9SSVpFRCB9LFxuICAgIF07XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgZG9jdW1lbnRTZXJ2aWNlOiBEb2N1bWVudFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgY29uZmlybWF0aW9uU2VydmljZTogQ29uZmlybWF0aW9uU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBpbnRlZ3JhdGlvblNlcnZpY2U6IEludGVncmF0aW9uU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBhZ2VuZGFTZXJ2aWNlOiBBZ2VuZGFTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHV0aWxzOiBVdGlsc01lc3NhZ2VTZXJ2aWNlLFxuICAgICkge1xuICAgICAgICB0aGlzLnNlbGVjdGlvbiA9IFtdO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnZlcmlmeUNsaWVudGVFeHRlcm5vKCk7XG4gICAgICAgIHRoaXMuZ2V0UHJvY2Vzc1R5cGVCeVNjaGVkdWxpbmcoKTtcbiAgICAgICAgdGhpcy5saXN0RG9jdW1lbnRzKGZhbHNlKTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyQ29udGVudENoZWNrZWQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZ3JpZENvbHVtbnMgPSB0aGlzLmdldEdyaWRDb2x1bW5zKCk7XG4gICAgfVxuXG5cbiAgICBwcml2YXRlIHZlcmlmeUNsaWVudGVFeHRlcm5vKCkge1xuICAgICAgICB0aGlzLmFnZW5kYVNlcnZpY2UuaXNDbGllbnRlRXh0ZXJubygpXG4gICAgICAgIC5zdWJzY3JpYmUoKHJlc3VsdDogSXNDbGllbnRlRXh0ZXJubykgPT4ge1xuICAgICAgICAgICAgdGhpcy5pc0NsaWVudGVFeHRlcm5vID0gcmVzdWx0LmlzQ2xpZW50ZUV4dGVybm87XG4gICAgICAgICAgICB0aGlzLmNhbnRFZGl0U3RhdHVzKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0UHJvY2Vzc1R5cGVCeVNjaGVkdWxpbmcoKSB7XG4gICAgICAgIHRoaXMuaW50ZWdyYXRpb25TZXJ2aWNlLmdldFByb2Nlc3NUeXBlQnlTY2hlZHVsaW5nKHRoaXMuYWdlbmRhLnRpcG9BZ2VuZGFtZW50by5pZClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHJlc3VsdDogR2V0UHJvY2Vzc1R5cGVCeVNjaGVkdWxpbmdPdXRwdXQpID0+IHRoaXMucHJvY2Vzc1R5cGUgPSByZXN1bHQucHJvY2Vzc1R5cGUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbkNoYW5nZURvY3VtZW50KGRvY3VtZW50OiBEb2N1bWVudCkge1xuICAgICAgICBpZiAoIXRoaXMuaGFzRmlsbGVkVmFsdWVzKGRvY3VtZW50KSl7XG4gICAgICAgICAgICB0aGlzLnV0aWxzLm1lc3NhZ2UoXCJlcnJvclwiLFwieW1zLmludC53bXNfc2F2ZV9lcnJvcl9yZWdpc3Rlcl9kb2N1bWVudF9tZXNzYWdlX3RpdGxlXCIsXCJ5bXMuaW50Lndtc19zYXZlX2Vycm9yX3JlZ2lzdGVyX2RvY3VtZW50X21lc3NhZ2VfZGVzY3JpcHRpb25cIik7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmFzc2lnbktleXMoZG9jdW1lbnQpO1xuXG4gICAgICAgIGNvbnN0IGR1cGxpY2F0ZURvY3VtZW50ID0gdGhpcy5ncmlkRGF0YS5maW5kKGdyaWREYXRhID0+IGdyaWREYXRhLmtleSA9PT0gZG9jdW1lbnQua2V5KTtcbiAgICAgICAgaWYgKGR1cGxpY2F0ZURvY3VtZW50KSB7XG4gICAgICAgICAgICB0aGlzLnV0aWxzLm1lc3NhZ2UoXCJlcnJvclwiLFwieW1zLmludC53bXNfZXJyb3JfcmVnaXN0ZXJfZG9jdW1lbnRfbWVzc2FnZV90aXRsZVwiLFwieW1zLmludC53bXNfZXJyb3JfcmVnaXN0ZXJfZG9jdW1lbnRfbWVzc2FnZV9kZXNjcmlwdGlvblwiKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZ3JpZERhdGEucHVzaChkb2N1bWVudCk7XG4gICAgICAgIHRoaXMuZGlzYWJsZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy51dGlscy5tZXNzYWdlKFwic3VjY2Vzc1wiLCB0aGlzLnN1bW1hcnksIFwieW1zLmludC53bXNfc3VjY2Vzc19tZXNzYWdlX2Rlc2NyaXB0aW9uXCIpO1xuICAgICAgICB0aGlzLnZpc2libGVEb2N1bWVudFJlZ2lzdGVyID0gZmFsc2U7XG4gICAgICAgIHRoaXMudmlzaWJsZUludm9pY2VLZXkgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFzc2lnbktleXMoZG9jdW1lbnQ6IERvY3VtZW50KSB7XG4gICAgICAgIGlmIChkb2N1bWVudC5pZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5hZ2VuZGEuaWQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIGRvY3VtZW50LnNjaGVkdWxpbmdJZCA9IHRoaXMuYWdlbmRhLmlkO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRvY3VtZW50LmtleSA9PT0gdW5kZWZpbmVkIHx8IGRvY3VtZW50LmtleSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIGRvY3VtZW50LmtleSA9IGRvY3VtZW50Lmludm9pY2VLZXk7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNXbXNXSVMoKSkge1xuICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5rZXkgPSBgJHtkb2N1bWVudC5pbnZvaWNlTnVtYmVyfToke2RvY3VtZW50Lmludm9pY2VTZXJpYWxOdW1iZXJ9OiR7ZG9jdW1lbnQucGFydG5lckRvY3VtZW50fWA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBoYXNGaWxsZWRWYWx1ZXMoZG9jdW1lbnQ6IERvY3VtZW50KTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IGZvcm1WYWx1ZXMgPSBPYmplY3QudmFsdWVzKGRvY3VtZW50KTtcbiAgICAgICAgcmV0dXJuIGZvcm1WYWx1ZXMuc29tZSh2YWx1ZSA9PiB2YWx1ZSAhPT0gbnVsbCAmJiB2YWx1ZSAhPT0gJycpO1xuICAgIH1cblxuXG4gICAgcHJpdmF0ZSBjYW50RWRpdFN0YXR1cygpIHtcbiAgICAgICAgY29uc3QgY2FudEVkaXRTdGF0dXMgPSBbXG4gICAgICAgICAgICAnQ0FOQ0VMQURPJyxcbiAgICAgICAgICAgICdFTV9FWEVDVUNBTycsXG4gICAgICAgICAgICAnQ09OQ0xVSURPJyxcbiAgICAgICAgICAgICdBR1VBUkRBTkRPX1BPUl9WQUxJREFDQU8nXG4gICAgICAgIF0uaW5jbHVkZXModGhpcy5hZ2VuZGEuc3RhdHVzLnRvU3RyaW5nKCkpO1xuXG4gICAgICAgIGlmKGNhbnRFZGl0U3RhdHVzKSB7XG4gICAgICAgICAgICB0aGlzLmVuYWJsZUJ1dHRvbklzQ2xpZW50ZUV4dGVybm8gPSBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBnZXRBY3Rpb25zKCk6IE1lbnVJdGVtW10ge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGRpc2FibGVkOiB0aGlzLmNoZWNrV21zU3lzdGVtSW52YWxpZCgpLFxuICAgICAgICAgICAgICAgIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFwieW1zLmludC53bXNfc2VhcmNoXCIpLFxuICAgICAgICAgICAgICAgIGNvbW1hbmQ6ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb24gPSBbXTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy52aXNpYmxlSW52b2ljZUtleSA9IHRydWU7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBpY29uOiBcImZhIGZhLXNlYXJjaFwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGRpc2FibGVkOiB0aGlzLmNoZWNrV21zU3lzdGVtSW52YWxpZCgpLFxuICAgICAgICAgICAgICAgIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFwieW1zLmludC53bXNfYWRkX2RvY3VtZW50X3JlZ2lzdGVyXCIpLFxuICAgICAgICAgICAgICAgIGNvbW1hbmQ6ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb24gPSBbXTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lZGl0ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy52aXNpYmxlRG9jdW1lbnRSZWdpc3RlciA9IHRydWU7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBpY29uOiBcImZhcyBmYS1wZW4tc3F1YXJlXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgXTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2hlY2tXbXNTeXN0ZW1JbnZhbGlkKCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAodGhpcy53bXNTeXN0ZW0gJiYgdGhpcy53bXNTeXN0ZW0gPT09IFdtc1N5c3RlbS5OT05FKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFByb3Aob2JqOiBhbnksIHBhdGg6IGFueSkge1xuICAgICAgICByZXR1cm4gcGF0aC5zcGxpdChcIi5cIikucmVkdWNlKChyZXN1bHQ6IGFueSwgcHJvcDogYW55KSA9PiAocmVzdWx0W3Byb3BdID09PSB1bmRlZmluZWQgPyBcIlwiIDogcmVzdWx0W3Byb3BdKSwgb2JqKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdmlldygpIHtcbiAgICAgICAgdGhpcy52aWV3RG9jdW1lbnQuZW1pdCh0aGlzLnNlbGVjdGlvblswXSk7XG4gICAgICAgIHRoaXMudmlzaWJsZURvY3VtZW50UmVnaXN0ZXIgPSB0cnVlO1xuICAgICAgICB0aGlzLmVkaXQgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2F2ZSgpIHtcbiAgICAgICAgaWYodGhpcy5ncmlkRGF0YS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICB0aGlzLmdyaWREYXRhLmZvckVhY2goZGF0YSA9PiB7XG4gICAgICAgICAgICAgICAgaWYoIWRhdGEuaWQpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYoIWRhdGEuc2NoZWR1bGluZ0lkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRhLnNjaGVkdWxpbmdJZCA9IHRoaXMuYWdlbmRhLmlkO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGRhdGEua2V5ID0gdGhpcy51cGRhdGVLZXlCeVdtcyhkYXRhKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kb2N1bWVudFNlcnZpY2UuaW5zZXJ0KGRhdGEpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnN1Y2Vzc01lc3NhZ2UoKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGlzYWJsZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmxpc3REb2N1bWVudHMoZmFsc2UpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZG9jdW1lbnRTZXJ2aWNlLnVwZGF0ZShkYXRhLmlkLCBkYXRhKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zdWNlc3NNZXNzYWdlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmRpc2FibGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZUtleUJ5V21zKGRhdGE6IGFueSk6IHN0cmluZyB7XG4gICAgICAgIGlmICghZGF0YS5rZXkpIHtcbiAgICAgICAgICAgIGRhdGEua2V5ID0gZGF0YS5pbnZvaWNlS2V5O1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLndtc1N5c3RlbSA9PT0gV21zU3lzdGVtLldJUykge1xuICAgICAgICAgICAgZGF0YS5rZXkgPSBgJHtkYXRhLmludm9pY2VOdW1iZXJ9OiR7ZGF0YS5pbnZvaWNlU2VyaWFsTnVtYmVyfToke2RhdGEucGFydG5lckRvY3VtZW50fWA7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGRhdGEua2V5O1xuICAgIH1cblxuICAgIHB1YmxpYyBvbkRlbGV0ZSgpIHtcbiAgICAgICAgdGhpcy5jb25maXJtYXRpb25TZXJ2aWNlLmNvbmZpcm0oe1xuICAgICAgICAgICAgbWVzc2FnZTogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcImRlbGV0ZV9jb25maXJtYXRpb25fbWVzc2FnZVwiKSxcbiAgICAgICAgICAgIGhlYWRlcjogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcImRlbGV0ZV9jb25maXJtYXRpb25fdGl0bGVcIiksXG4gICAgICAgICAgICBhY2NlcHQ6ICgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlbW92ZURvY3VtZW50SWZJZFVuZGZpbmVkKCk7XG5cbiAgICAgICAgICAgICAgICBpZiAodGhpcy5zZWxlY3Rpb24ubGVuZ3RoIDwgMSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZW1wdHkoKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gZm9ya0pvaW4odGhpcy5zZWxlY3Rpb24ubWFwKGRvY3VtZW50ID0+IHRoaXMuZG9jdW1lbnRTZXJ2aWNlLmRlbGV0ZShkb2N1bWVudC5pZCkpKVxuICAgICAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnV0aWxzLm1lc3NhZ2UoXCJzdWNjZXNzXCIsIFwiZGVsZXRlZF9tZXNzYWdlX3RpdGxlXCIsIFwiZGVsZXRlZF9tZXNzYWdlX2NvbnRlbnRcIik7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubGlzdERvY3VtZW50cyh0cnVlKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZW1vdmVEb2N1bWVudElmSWRVbmRmaW5lZCgpIHtcbiAgICAgICAgdGhpcy5zZWxlY3Rpb24uZm9yRWFjaCgodmFsdWUsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICBpZiAoIXZhbHVlLmlkKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgaW5kZXhHcmlkRGF0YSA9IHRoaXMuZ3JpZERhdGEuZmluZEluZGV4KGRvY3VtZW50ID0+IGRvY3VtZW50LmtleSA9PT0gdmFsdWUua2V5KTtcblxuICAgICAgICAgICAgICAgIHRoaXMuZ3JpZERhdGEuc3BsaWNlKGluZGV4R3JpZERhdGEsIDEpO1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uLnNwbGljZShpbmRleCwgMSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBsaXN0RG9jdW1lbnRzKGlzRGVsZXRlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuZG9jdW1lbnRTZXJ2aWNlLmxpc3Qoe1xuICAgICAgICAgICAgZmlsdGVyUXVlcnk6IGBzY2hlZHVsaW5nSWQgZXEgJyR7dGhpcy5hZ2VuZGEuaWR9J2BcbiAgICAgICAgfSlcbiAgICAgICAgLnN1YnNjcmliZSgoY29udGVudHM6IGFueSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5ncmlkRGF0YSA9IGlzRGVsZXRlID8gdGhpcy5ncmlkRGF0YS5maWx0ZXIoaXRlbSA9PiAhaXRlbS5pZCkgOiBbXTtcblxuICAgICAgICAgICAgaWYoY29udGVudHMudG90YWxFbGVtZW50cyA+IDApIHtcbiAgICAgICAgICAgICAgICB0aGlzLmdyaWREYXRhLnB1c2goLi4uY29udGVudHMuY29udGVudHMpO1xuICAgICAgICAgICAgICAgIHRoaXMuZG9jdW1lbnRUb3RhbFJlY29yZHMgPSBjb250ZW50cy50b3RhbEVsZW1lbnRzO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmRvY3VtZW50VG90YWxSZWNvcmRzID0gdGhpcy5ncmlkRGF0YS5sZW5ndGg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBoYXNFbGVtZW50V2l0aG91dElkID0gdGhpcy5ncmlkRGF0YS5zb21lKGl0ZW0gPT4gIWl0ZW0uaWQpO1xuXG4gICAgICAgICAgICB0aGlzLmRpc2FibGVkID0gIWhhc0VsZW1lbnRXaXRob3V0SWQ7XG4gICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uID0gW107XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRHcmlkQ29sdW1ucygpIHtcbiAgICAgICAgaWYgKHRoaXMuaXNXbXNTZW5pb3JDb25uZWN0KCkpIHtcbiAgICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAgICAgeyBmaWVsZDogXCJrZXlcIiwgaGVhZGVyOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFwieW1zLmludC53bXNfcHVyY2hhc2VPcmRlclwiKSB9LFxuICAgICAgICAgICAgICAgIC4uLnRoaXMuZ2V0Q29sdW1uUGFydG5lcigpLFxuICAgICAgICAgICAgICAgIHRoaXMuZ2V0Q29sdW1uaW52b2ljZUNvbmRpdGlvbigpLFxuICAgICAgICAgICAgXTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmlzV21zV0lTKCkpIHtcbiAgICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAgICAgLi4udGhpcy5nZXRDb2x1bW5JbnZvaWNlQW5kbG9naXN0Y1VuaXQoKSxcbiAgICAgICAgICAgICAgICB0aGlzLmdldENvbHVtbmludm9pY2VDb25kaXRpb24oKSxcbiAgICAgICAgICAgIF07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgICAgIHsgZmllbGQ6IFwiaW52b2ljZUtleVwiLCBoZWFkZXI6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXCJ5bXMuaW50Lndtc19yZWdpc3Rlcl9kb2N1bWVudF9pbnZvaWNlX2tleVwiKSB9LFxuICAgICAgICAgICAgICAgIC4uLnRoaXMuZ2V0Q29sdW1uSW52b2ljZUFuZGxvZ2lzdGNVbml0KCksXG4gICAgICAgICAgICAgICAgeyBmaWVsZDogXCJvd25lck5hbWVcIiwgaGVhZGVyOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFwieW1zLmludC53bXNfcmVnaXN0ZXJfZG9jdW1lbnRfb3duZXJfbmFtZVwiKSB9LFxuICAgICAgICAgICAgICAgIHsgZmllbGQ6IFwib3duZXJEb2N1bWVudFwiLCBoZWFkZXI6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXCJ5bXMuaW50Lndtc19yZWdpc3Rlcl9kb2N1bWVudF9vd25lcl9kb2N1bWVudFwiKSB9LFxuICAgICAgICAgICAgICAgIHRoaXMuZ2V0Q29sdW1uaW52b2ljZUNvbmRpdGlvbigpLFxuICAgICAgICAgICAgXTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0Q29sdW1uaW52b2ljZUNvbmRpdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHsgZmllbGQ6IFwiaW52b2ljZUNvbmRpdGlvblwiLCBoZWFkZXI6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXCJ5bXMuaW50Lndtc19ncmlkX2RvY3VtZW50X2ludm9pY2VfY29uZGl0aW9uXCIpIH07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRDb2x1bW5JbnZvaWNlQW5kbG9naXN0Y1VuaXQoKSB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICB7IGZpZWxkOiBcImludm9pY2VOdW1iZXJcIiwgaGVhZGVyOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFwieW1zLmludC53bXNfcmVnaXN0ZXJfZG9jdW1lbnRfaW52b2ljZV9udW1iZXJcIikgfSxcbiAgICAgICAgICAgIHsgZmllbGQ6IFwiaW52b2ljZVNlcmlhbE51bWJlclwiLCBoZWFkZXI6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXCJ5bXMuaW50Lndtc19yZWdpc3Rlcl9kb2N1bWVudF9pbnZvaWNlX3NlcmlhbF9udW1iZXJcIikgfSxcbiAgICAgICAgICAgIC4uLnRoaXMuZ2V0Q29sdW1uUGFydG5lcigpLFxuICAgICAgICAgICAgeyBmaWVsZDogXCJsb2dpc3RjVW5pdE5hbWVcIiwgaGVhZGVyOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFwieW1zLmludC53bXNfcmVnaXN0ZXJfZG9jdW1lbnRfbG9naXN0Y191bml0X25hbWVcIikgfSxcbiAgICAgICAgICAgIHsgZmllbGQ6IFwibG9naXN0Y1VuaXREb2N1bWVudFwiLCBoZWFkZXI6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXCJ5bXMuaW50Lndtc19yZWdpc3Rlcl9kb2N1bWVudF9sb2dpc3RjX3VuaXRfZG9jdW1lbnRcIikgfSxcbiAgICAgICAgXTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldENvbHVtblBhcnRuZXIoKSB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICB7IGZpZWxkOiBcInBhcnRuZXJOYW1lXCIsIGhlYWRlcjogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcInltcy5pbnQud21zX3JlZ2lzdGVyX2RvY3VtZW50X3BhcnRuZXJfbmFtZVwiKSB9LFxuICAgICAgICAgICAgeyBmaWVsZDogXCJwYXJ0bmVyRG9jdW1lbnRcIiwgaGVhZGVyOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFwieW1zLmludC53bXNfcmVnaXN0ZXJfZG9jdW1lbnRfcGFydG5lcl9kb2N1bWVudFwiKSB9LFxuICAgICAgICBdO1xuICAgIH1cblxuICAgIHB1YmxpYyBpc1dtc1NlbmlvckNvbm5lY3QoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLndtc1N5c3RlbSA9PT0gV21zU3lzdGVtLlNFTklPUl9DT05ORUNUO1xuICAgIH1cblxuICAgIHB1YmxpYyBpc1dtc1dJUygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMud21zU3lzdGVtID09PSBXbXNTeXN0ZW0uV0lTO1xuICAgIH1cblxuICAgIHB1YmxpYyBpc1dtc1NpbHQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLndtc1N5c3RlbSA9PT0gV21zU3lzdGVtLlNFTklPUjtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN1Y2Vzc01lc3NhZ2UoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnV0aWxzLm1lc3NhZ2UoXCJzdWNjZXNzXCIsIHRoaXMuc3VtbWFyeSwgXCJzYXZlZF9tZXNzYWdlX2NvbnRlbnRcIik7XG4gICAgfVxufVxuIl19
349
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnQtZ3JpZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yc2lzdGVtYXMveW1zLWludGVncmF0aW9uLyIsInNvdXJjZXMiOlsic3JjL3dtcy9jb21wb25lbnRzL2RvY3VtZW50LWdyaWQvZG9jdW1lbnQtZ3JpZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsbUJBQW1CLEVBQVksTUFBTSxhQUFhLENBQUM7QUFDNUQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0QyxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDaEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ25FLE9BQU8sRUFBRSxhQUFhLEVBQW9CLE1BQU0sc0NBQXNDLENBQUM7QUFFdkYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUNqRSxPQUFPLEVBQW9DLGtCQUFrQixFQUFlLE1BQU0sa0RBQWtELENBQUM7QUFDckksT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0VBQWtFLENBQUM7QUFPcEcsSUFBYSxxQkFBcUIsR0FBbEMsTUFBYSxxQkFBcUI7SUFrRDlCLFlBQ3FCLFNBQTJCLEVBQzNCLGVBQWdDLEVBQ2hDLG1CQUF3QyxFQUN4QyxrQkFBc0MsRUFDdEMsYUFBNEIsRUFDNUIs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UyxDQUFDLGdCQUFnQixDQUFDO3NDQUNMLFdBQVc7NkRBQU07QUF4Qy9CLHFCQUFxQjtJQUxqQyxTQUFTLENBQUM7UUFDUCxRQUFRLEVBQUUsZUFBZTtRQUN6Qixnd1BBQTZDOztLQUVoRCxDQUFDOzZDQW9Ea0MsZ0JBQWdCO1FBQ1YsZUFBZTtRQUNYLG1CQUFtQjtRQUNwQixrQkFBa0I7UUFDdkIsYUFBYTtRQUNyQixtQkFBbUI7R0F4RHRDLHFCQUFxQixDQWdXakM7U0FoV1kscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSBcIkBuZ3gtdHJhbnNsYXRlL2NvcmVcIjtcbmltcG9ydCB7IENvbmZpcm1hdGlvblNlcnZpY2UsIE1lbnVJdGVtIH0gZnJvbSBcInByaW1lbmcvYXBpXCI7XG5pbXBvcnQgeyBUYWJsZSB9IGZyb20gXCJwcmltZW5nL3RhYmxlXCI7XG5pbXBvcnQgeyBTdWJqZWN0LCBlbXB0eSwgZm9ya0pvaW4gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFV0aWxzTWVzc2FnZVNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vLi4vdXRpbHMvdXRpbHMtbWVzc2FnZVwiO1xuaW1wb3J0IHsgQWdlbmRhU2VydmljZSwgSXNDbGllbnRlRXh0ZXJubyB9IGZyb20gJy4uLy4uL2VudGl0aWVzL2FnZW5kYS9hZ2VuZGEuc2VydmljZSc7XG5pbXBvcnQgeyBEb2N1bWVudCB9IGZyb20gXCIuLi8uLi9lbnRpdGllcy9kb2N1bWVudC9kb2N1bWVudFwiO1xuaW1wb3J0IHsgRG9jdW1lbnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZW50aXRpZXMvZG9jdW1lbnQvZG9jdW1lbnQuc2VydmljZSc7XG5pbXBvcnQgeyBXbXNTeXN0ZW0gfSBmcm9tICcuLi8uLi9lbnRpdGllcy93bXMtc3lzdGVtL3dtcy1zeXN0ZW0nO1xuaW1wb3J0IHsgR2V0UHJvY2Vzc1R5cGVCeVNjaGVkdWxpbmdPdXRwdXQsIEludGVncmF0aW9uU2VydmljZSwgUHJvY2Vzc1R5cGUgfSBmcm9tICcuLy4uLy4uL2VudGl0aWVzL2ludGVncmF0aW9uL2ludGVncmF0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgSW52b2ljZUNvbmRpdGlvbiB9IGZyb20gXCIuLi8uLi8uLi8uLi9zcmMvd21zL2VudGl0aWVzL2ludm9pY2UtY29uZGl0aW9uL2ludm9pY2UtY29uZGl0aW9uXCI7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZG9jdW1lbnQtZ3JpZCcsXG4gICAgdGVtcGxhdGVVcmw6IFwiLi9kb2N1bWVudC1ncmlkLmNvbXBvbmVudC5odG1sXCIsXG4gICAgc3R5bGVVcmxzOiBbXCIuL2RvY3VtZW50LWdyaWQuY29tcG9uZW50LnNjc3NcIl1cbn0pXG5leHBvcnQgY2xhc3MgRG9jdW1lbnRHcmlkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICAgIEBJbnB1dCgpIGFnZW5kYTtcbiAgICBASW5wdXQoKSB3bXNTeXN0ZW06IFdtc1N5c3RlbTtcbiAgICBAT3V0cHV0KCkgdmlzaWJsZUludm9pY2VLZXk6IGJvb2xlYW47XG4gICAgQE91dHB1dCgpIHZpc2libGVEb2N1bWVudFJlZ2lzdGVyOiBib29sZWFuO1xuXG4gICAgQE91dHB1dCgpIHZpZXdEb2N1bWVudDogRXZlbnRFbWl0dGVyPERvY3VtZW50PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIHB1YmxpYyBkb2N1bWVudFRvdGFsUmVjb3JkczogbnVtYmVyO1xuICAgIHB1YmxpYyBncmlkQ29sdW1uczogYW55O1xuICAgIHB1YmxpYyBncmlkRGF0YTogRG9jdW1lbnRbXSA9IFtdO1xuICAgIHB1YmxpYyBzZWxlY3Rpb246IERvY3VtZW50W107XG4gICAgcHVibGljIGRpc2FibGVkOiBib29sZWFuO1xuICAgIHB1YmxpYyBsb2FkaW5nOiBib29sZWFuO1xuICAgIHB1YmxpYyBkb2N1bWVudDogRG9jdW1lbnQ7XG4gICAgcHVibGljIGVkaXQ6IGJvb2xlYW47XG4gICAgcHVibGljIHByb2Nlc3NUeXBlOiBQcm9jZXNzVHlwZTtcbiAgICBwdWJsaWMgaXNDbGllbnRlRXh0ZXJubzogYm9vbGVhbjtcbiAgICBwdWJsaWMgZW5hYmxlQnV0dG9uSXNDbGllbnRlRXh0ZXJubyA9IHRydWU7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IHN1bW1hcnkgPSBcInltcy5pbnQud21zX3NhdmVkX2RvY3VtZW50X21lc3NhZ2VfdGl0bGVcIjtcbiAgICBwcml2YXRlIHJlYWRvbmx5IG5nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdCgpO1xuXG4gICAgQFZpZXdDaGlsZChcImRvY3VtZW50VGFibGVcIilcbiAgICBwdWJsaWMgdGFibGU6IFRhYmxlO1xuXG4gICAgQFZpZXdDaGlsZChcImN1c3RvbVRlbXBsYXRlXCIpXG4gICAgcHVibGljIGN1c3RvbVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgQFZpZXdDaGlsZChcImN1c3RvbUZpbHRlckZpZWxkc1wiKVxuICAgIHB1YmxpYyBjdXN0b21GaWx0ZXJGaWVsZHM6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBAVmlld0NoaWxkKFwiY3VzdG9tR3JpZENvbGdyb3VwXCIpXG4gICAgcHVibGljIGN1c3RvbUdyaWRDb2xncm91cDogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIEBWaWV3Q2hpbGQoXCJjdXN0b21HcmlkSGVhZGVyXCIpXG4gICAgcHVibGljIGN1c3RvbUdyaWRIZWFkZXI6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBAVmlld0NoaWxkKFwiY3VzdG9tR3JpZEJvZHlcIilcbiAgICBwdWJsaWMgY3VzdG9tR3JpZEJvZHk6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBwdWJsaWMgaW52b2ljZUNvbmRpdGlvbjogeyBsYWJlbDogc3RyaW5nOyB2YWx1ZTogSW52b2ljZUNvbmRpdGlvbiB9W10gPSBbXG4gICAgICAgIHsgbGFiZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXCJ5bXMuaW50Lndtc19ncmlkX2RvY3VtZW50X2ludm9pY2Vfbm9fd2F5XCIpLCB2YWx1ZTogbnVsbCB9LFxuICAgICAgICB7IGxhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFwieW1zLmludC53bXNfZ3JpZF9kb2N1bWVudF9pbnZvaWNlX2NvbmRpdGlvbl9hdXRob3JpemVkXCIpLCB2YWx1ZTogSW52b2ljZUNvbmRpdGlvbi5BVVRIT1JJWkVEIH0sXG4gICAgICAgIHsgbGFiZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXCJ5bXMuaW50Lndtc19ncmlkX2RvY3VtZW50X2ludm9pY2VfY29uZGl0aW9uX21hbnVhbF9hdXRob3JpemVkXCIpLCB2YWx1ZTogSW52b2ljZUNvbmRpdGlvbi5NQU5VQUxfQVVUSE9SSVpFRCB9LFxuICAgICAgICB7IGxhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFwieW1zLmludC53bXNfZ3JpZF9kb2N1bWVudF9pbnZvaWNlX2NvbmRpdGlvbl9wYXJ0aWFsX2F1dGhvcml6ZWRcIiksIHZhbHVlOiBJbnZvaWNlQ29uZGl0aW9uLlBBUlRJQUxfQVVUSE9SSVpFRCB9LFxuICAgICAgICB7IGxhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFwieW1zLmludC53bXNfZ3JpZF9kb2N1bWVudF9pbnZvaWNlX2NvbmRpdGlvbl9kZXZvbHVjaW9uXCIpLCB2YWx1ZTogSW52b2ljZUNvbmRpdGlvbi5BVVRIT1JJWkVEIH0sXG4gICAgXTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBkb2N1bWVudFNlcnZpY2U6IERvY3VtZW50U2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBjb25maXJtYXRpb25TZXJ2aWNlOiBDb25maXJtYXRpb25TZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGludGVncmF0aW9uU2VydmljZTogSW50ZWdyYXRpb25TZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGFnZW5kYVNlcnZpY2U6IEFnZW5kYVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgdXRpbHM6IFV0aWxzTWVzc2FnZVNlcnZpY2UsXG4gICAgKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0aW9uID0gW107XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudmVyaWZ5Q2xpZW50ZUV4dGVybm8oKTtcbiAgICAgICAgdGhpcy5nZXRQcm9jZXNzVHlwZUJ5U2NoZWR1bGluZygpO1xuICAgICAgICB0aGlzLmxpc3REb2N1bWVudHMoZmFsc2UpO1xuICAgIH1cblxuICAgIHByaXZhdGUgdmVyaWZ5Q2xpZW50ZUV4dGVybm8oKSB7XG4gICAgICAgIHRoaXMuYWdlbmRhU2VydmljZS5pc0NsaWVudGVFeHRlcm5vKClcbiAgICAgICAgLnN1YnNjcmliZSgocmVzdWx0OiBJc0NsaWVudGVFeHRlcm5vKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmlzQ2xpZW50ZUV4dGVybm8gPSByZXN1bHQuaXNDbGllbnRlRXh0ZXJubztcbiAgICAgICAgICAgIHRoaXMuZ3JpZENvbHVtbnMgPSB0aGlzLmdldEdyaWRDb2x1bW5zKCk7XG4gICAgICAgICAgICB0aGlzLmNhbnRFZGl0U3RhdHVzKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0UHJvY2Vzc1R5cGVCeVNjaGVkdWxpbmcoKSB7XG4gICAgICAgIHRoaXMuaW50ZWdyYXRpb25TZXJ2aWNlLmdldFByb2Nlc3NUeXBlQnlTY2hlZHVsaW5nKHRoaXMuYWdlbmRhLnRpcG9BZ2VuZGFtZW50by5pZClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHJlc3VsdDogR2V0UHJvY2Vzc1R5cGVCeVNjaGVkdWxpbmdPdXRwdXQpID0+IHRoaXMucHJvY2Vzc1R5cGUgPSByZXN1bHQucHJvY2Vzc1R5cGUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbkNoYW5nZURvY3VtZW50KGRvY3VtZW50OiBEb2N1bWVudCkge1xuICAgICAgICBpZiAoIXRoaXMuaGFzRmlsbGVkVmFsdWVzKGRvY3VtZW50KSl7XG4gICAgICAgICAgICB0aGlzLnV0aWxzLm1lc3NhZ2UoXCJlcnJvclwiLFwieW1zLmludC53bXNfc2F2ZV9lcnJvcl9yZWdpc3Rlcl9kb2N1bWVudF9tZXNzYWdlX3RpdGxlXCIsXCJ5bXMuaW50Lndtc19zYXZlX2Vycm9yX3JlZ2lzdGVyX2RvY3VtZW50X21lc3NhZ2VfZGVzY3JpcHRpb25cIik7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmFzc2lnbktleXMoZG9jdW1lbnQpO1xuXG4gICAgICAgIGNvbnN0IGR1cGxpY2F0ZURvY3VtZW50ID0gdGhpcy5ncmlkRGF0YS5maW5kKGdyaWREYXRhID0+IGdyaWREYXRhLmtleSA9PT0gZG9jdW1lbnQua2V5KTtcbiAgICAgICAgaWYgKGR1cGxpY2F0ZURvY3VtZW50KSB7XG4gICAgICAgICAgICB0aGlzLnV0aWxzLm1lc3NhZ2UoXCJlcnJvclwiLFwieW1zLmludC53bXNfZXJyb3JfcmVnaXN0ZXJfZG9jdW1lbnRfbWVzc2FnZV90aXRsZVwiLFwieW1zLmludC53bXNfZXJyb3JfcmVnaXN0ZXJfZG9jdW1lbnRfbWVzc2FnZV9kZXNjcmlwdGlvblwiKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZ3JpZERhdGEucHVzaChkb2N1bWVudCk7XG4gICAgICAgIHRoaXMuZGlzYWJsZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy51dGlscy5tZXNzYWdlKFwic3VjY2Vzc1wiLCB0aGlzLnN1bW1hcnksIFwieW1zLmludC53bXNfc3VjY2Vzc19tZXNzYWdlX2Rlc2NyaXB0aW9uXCIpO1xuICAgICAgICB0aGlzLnZpc2libGVEb2N1bWVudFJlZ2lzdGVyID0gZmFsc2U7XG4gICAgICAgIHRoaXMudmlzaWJsZUludm9pY2VLZXkgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFzc2lnbktleXMoZG9jdW1lbnQ6IERvY3VtZW50KSB7XG4gICAgICAgIGlmIChkb2N1bWVudC5pZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5hZ2VuZGEuaWQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIGRvY3VtZW50LnNjaGVkdWxpbmdJZCA9IHRoaXMuYWdlbmRhLmlkO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRvY3VtZW50LmtleSA9PT0gdW5kZWZpbmVkIHx8IGRvY3VtZW50LmtleSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIGRvY3VtZW50LmtleSA9IGRvY3VtZW50Lmludm9pY2VLZXk7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNXbXNXSVMoKSkge1xuICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5rZXkgPSBgJHtkb2N1bWVudC5pbnZvaWNlTnVtYmVyfToke2RvY3VtZW50Lmludm9pY2VTZXJpYWxOdW1iZXJ9OiR7ZG9jdW1lbnQucGFydG5lckRvY3VtZW50fWA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBoYXNGaWxsZWRWYWx1ZXMoZG9jdW1lbnQ6IERvY3VtZW50KTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IGZvcm1WYWx1ZXMgPSBPYmplY3QudmFsdWVzKGRvY3VtZW50KTtcbiAgICAgICAgcmV0dXJuIGZvcm1WYWx1ZXMuc29tZSh2YWx1ZSA9PiB2YWx1ZSAhPT0gbnVsbCAmJiB2YWx1ZSAhPT0gJycpO1xuICAgIH1cblxuXG4gICAgcHJpdmF0ZSBjYW50RWRpdFN0YXR1cygpIHtcbiAgICAgICAgY29uc3QgY2FudEVkaXRTdGF0dXMgPSBbXG4gICAgICAgICAgICAnQ0FOQ0VMQURPJyxcbiAgICAgICAgICAgICdFTV9FWEVDVUNBTycsXG4gICAgICAgICAgICAnQ09OQ0xVSURPJyxcbiAgICAgICAgICAgICdBR1VBUkRBTkRPX1BPUl9WQUxJREFDQU8nXG4gICAgICAgIF0uaW5jbHVkZXModGhpcy5hZ2VuZGEuc3RhdHVzLnRvU3RyaW5nKCkpO1xuXG4gICAgICAgIGlmKGNhbnRFZGl0U3RhdHVzKSB7XG4gICAgICAgICAgICB0aGlzLmVuYWJsZUJ1dHRvbklzQ2xpZW50ZUV4dGVybm8gPSBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBnZXRBY3Rpb25zKCk6IE1lbnVJdGVtW10ge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGRpc2FibGVkOiB0aGlzLmNoZWNrV21zU3lzdGVtSW52YWxpZCgpLFxuICAgICAgICAgICAgICAgIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFwieW1zLmludC53bXNfc2VhcmNoXCIpLFxuICAgICAgICAgICAgICAgIGNvbW1hbmQ6ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb24gPSBbXTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy52aXNpYmxlSW52b2ljZUtleSA9IHRydWU7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBpY29uOiBcImZhIGZhLXNlYXJjaFwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGRpc2FibGVkOiB0aGlzLmNoZWNrV21zU3lzdGVtSW52YWxpZCgpLFxuICAgICAgICAgICAgICAgIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFwieW1zLmludC53bXNfYWRkX2RvY3VtZW50X3JlZ2lzdGVyXCIpLFxuICAgICAgICAgICAgICAgIGNvbW1hbmQ6ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb24gPSBbXTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lZGl0ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy52aXNpYmxlRG9jdW1lbnRSZWdpc3RlciA9IHRydWU7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBpY29uOiBcImZhcyBmYS1wZW4tc3F1YXJlXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgXTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2hlY2tXbXNTeXN0ZW1JbnZhbGlkKCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAodGhpcy53bXNTeXN0ZW0gJiYgdGhpcy53bXNTeXN0ZW0gPT09IFdtc1N5c3RlbS5OT05FKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFByb3Aob2JqOiBhbnksIHBhdGg6IGFueSkge1xuICAgICAgICByZXR1cm4gcGF0aC5zcGxpdChcIi5cIikucmVkdWNlKChyZXN1bHQ6IGFueSwgcHJvcDogYW55KSA9PiAocmVzdWx0W3Byb3BdID09PSB1bmRlZmluZWQgPyBcIlwiIDogcmVzdWx0W3Byb3BdKSwgb2JqKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdmlldygpIHtcbiAgICAgICAgdGhpcy52aWV3RG9jdW1lbnQuZW1pdCh0aGlzLnNlbGVjdGlvblswXSk7XG4gICAgICAgIHRoaXMudmlzaWJsZURvY3VtZW50UmVnaXN0ZXIgPSB0cnVlO1xuICAgICAgICB0aGlzLmVkaXQgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2F2ZSgpIHtcbiAgICAgICAgaWYodGhpcy5ncmlkRGF0YS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICB0aGlzLmdyaWREYXRhLmZvckVhY2goZGF0YSA9PiB7XG4gICAgICAgICAgICAgICAgaWYoIWRhdGEuaWQpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYoIWRhdGEuc2NoZWR1bGluZ0lkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRhLnNjaGVkdWxpbmdJZCA9IHRoaXMuYWdlbmRhLmlkO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGRhdGEua2V5ID0gdGhpcy51cGRhdGVLZXlCeVdtcyhkYXRhKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kb2N1bWVudFNlcnZpY2UuaW5zZXJ0KGRhdGEpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnN1Y2Vzc01lc3NhZ2UoKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGlzYWJsZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmxpc3REb2N1bWVudHMoZmFsc2UpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZG9jdW1lbnRTZXJ2aWNlLnVwZGF0ZShkYXRhLmlkLCBkYXRhKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zdWNlc3NNZXNzYWdlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmRpc2FibGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZUtleUJ5V21zKGRhdGE6IGFueSk6IHN0cmluZyB7XG4gICAgICAgIGlmICghZGF0YS5rZXkpIHtcbiAgICAgICAgICAgIGRhdGEua2V5ID0gZGF0YS5pbnZvaWNlS2V5O1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLndtc1N5c3RlbSA9PT0gV21zU3lzdGVtLldJUykge1xuICAgICAgICAgICAgZGF0YS5rZXkgPSBgJHtkYXRhLmludm9pY2VOdW1iZXJ9OiR7ZGF0YS5pbnZvaWNlU2VyaWFsTnVtYmVyfToke2RhdGEucGFydG5lckRvY3VtZW50fWA7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGRhdGEua2V5O1xuICAgIH1cblxuICAgIHB1YmxpYyBvbkRlbGV0ZSgpIHtcbiAgICAgICAgdGhpcy5jb25maXJtYXRpb25TZXJ2aWNlLmNvbmZpcm0oe1xuICAgICAgICAgICAgbWVzc2FnZTogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcImRlbGV0ZV9jb25maXJtYXRpb25fbWVzc2FnZVwiKSxcbiAgICAgICAgICAgIGhlYWRlcjogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcImRlbGV0ZV9jb25maXJtYXRpb25fdGl0bGVcIiksXG4gICAgICAgICAgICBhY2NlcHQ6ICgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlbW92ZURvY3VtZW50SWZJZFVuZGZpbmVkKCk7XG5cbiAgICAgICAgICAgICAgICBpZiAodGhpcy5zZWxlY3Rpb24ubGVuZ3RoIDwgMSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZW1wdHkoKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gZm9ya0pvaW4odGhpcy5zZWxlY3Rpb24ubWFwKGRvY3VtZW50ID0+IHRoaXMuZG9jdW1lbnRTZXJ2aWNlLmRlbGV0ZShkb2N1bWVudC5pZCkpKVxuICAgICAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnV0aWxzLm1lc3NhZ2UoXCJzdWNjZXNzXCIsIFwiZGVsZXRlZF9tZXNzYWdlX3RpdGxlXCIsIFwiZGVsZXRlZF9tZXNzYWdlX2NvbnRlbnRcIik7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubGlzdERvY3VtZW50cyh0cnVlKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZW1vdmVEb2N1bWVudElmSWRVbmRmaW5lZCgpIHtcbiAgICAgICAgdGhpcy5zZWxlY3Rpb24uZm9yRWFjaCgodmFsdWUsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICBpZiAoIXZhbHVlLmlkKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgaW5kZXhHcmlkRGF0YSA9IHRoaXMuZ3JpZERhdGEuZmluZEluZGV4KGRvY3VtZW50ID0+IGRvY3VtZW50LmtleSA9PT0gdmFsdWUua2V5KTtcblxuICAgICAgICAgICAgICAgIHRoaXMuZ3JpZERhdGEuc3BsaWNlKGluZGV4R3JpZERhdGEsIDEpO1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uLnNwbGljZShpbmRleCwgMSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBsaXN0RG9jdW1lbnRzKGlzRGVsZXRlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuZG9jdW1lbnRTZXJ2aWNlLmxpc3Qoe1xuICAgICAgICAgICAgZmlsdGVyUXVlcnk6IGBzY2hlZHVsaW5nSWQgZXEgJyR7dGhpcy5hZ2VuZGEuaWR9J2BcbiAgICAgICAgfSlcbiAgICAgICAgLnN1YnNjcmliZSgoY29udGVudHM6IGFueSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5ncmlkRGF0YSA9IGlzRGVsZXRlID8gdGhpcy5ncmlkRGF0YS5maWx0ZXIoaXRlbSA9PiAhaXRlbS5pZCkgOiBbXTtcblxuICAgICAgICAgICAgaWYoY29udGVudHMudG90YWxFbGVtZW50cyA+IDApIHtcbiAgICAgICAgICAgICAgICB0aGlzLmdyaWREYXRhLnB1c2goLi4uY29udGVudHMuY29udGVudHMpO1xuICAgICAgICAgICAgICAgIHRoaXMuZG9jdW1lbnRUb3RhbFJlY29yZHMgPSBjb250ZW50cy50b3RhbEVsZW1lbnRzO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmRvY3VtZW50VG90YWxSZWNvcmRzID0gdGhpcy5ncmlkRGF0YS5sZW5ndGg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBoYXNFbGVtZW50V2l0aG91dElkID0gdGhpcy5ncmlkRGF0YS5zb21lKGl0ZW0gPT4gIWl0ZW0uaWQpO1xuXG4gICAgICAgICAgICB0aGlzLmRpc2FibGVkID0gIWhhc0VsZW1lbnRXaXRob3V0SWQ7XG4gICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uID0gW107XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0R3JpZENvbHVtbnMoKSB7XG4gICAgICAgIGxldCByZXN1bHQ7XG5cbiAgICAgICAgc3dpdGNoICh0aGlzLndtc1N5c3RlbSkge1xuICAgICAgICAgICAgY2FzZSBXbXNTeXN0ZW0uU0VOSU9SX0NPTk5FQ1Q6XG4gICAgICAgICAgICAgICAgcmVzdWx0ID0gdGhpcy53bXNTZW5pb3JDb25uZWN0SW50ZWdyYXRpb24oKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgV21zU3lzdGVtLldJUzpcbiAgICAgICAgICAgICAgICByZXN1bHQgPSB0aGlzLndtc1dpc0ludGVncmF0aW9uKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIFdtc1N5c3RlbS5TRU5JT1I6XG4gICAgICAgICAgICAgICAgcmVzdWx0ID0gdGhpcy53bXNTaWx0SW50ZWdyYXRpb24oKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmVzdWx0ID0gW107XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIHByaXZhdGUgd21zU2VuaW9yQ29ubmVjdEludGVncmF0aW9uKCkge1xuICAgICAgICBjb25zdCBjb2x1bW5zID0gW1xuICAgICAgICAgICAgeyBmaWVsZDogXCJrZXlcIiwgaGVhZGVyOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFwieW1zLmludC53bXNfcHVyY2hhc2VPcmRlclwiKSB9LFxuICAgICAgICAgICAgLi4udGhpcy5nZXRDb2x1bW5QYXJ0bmVyKCksXG4gICAgICAgIF07XG4gICAgICAgIHRoaXMuYWRkSW52b2ljZVNpdHVhdGlvbklmTm90Q2xpZW50ZUV4dGVybm8oY29sdW1ucyk7XG4gICAgICAgIHJldHVybiBjb2x1bW5zO1xuICAgIH1cblxuICAgIHByaXZhdGUgd21zV2lzSW50ZWdyYXRpb24oKSB7XG4gICAgICAgIGNvbnN0IGNvbHVtbnMgPSBbXG4gICAgICAgICAgICAuLi50aGlzLmdldENvbHVtbkludm9pY2VBbmRsb2dpc3RjVW5pdCgpLFxuICAgICAgICBdO1xuICAgICAgICB0aGlzLmFkZEludm9pY2VTaXR1YXRpb25JZk5vdENsaWVudGVFeHRlcm5vKGNvbHVtbnMpO1xuICAgICAgICByZXR1cm4gY29sdW1ucztcbiAgICB9XG5cbiAgICBwcml2YXRlIHdtc1NpbHRJbnRlZ3JhdGlvbigpIHtcbiAgICAgICAgY29uc3QgY29sdW1ucyA9IFtcbiAgICAgICAgICAgIHsgZmllbGQ6IFwiaW52b2ljZUtleVwiLCBoZWFkZXI6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXCJ5bXMuaW50Lndtc19yZWdpc3Rlcl9kb2N1bWVudF9pbnZvaWNlX2tleVwiKSB9LFxuICAgICAgICAgICAgLi4udGhpcy5nZXRDb2x1bW5JbnZvaWNlQW5kbG9naXN0Y1VuaXQoKSxcbiAgICAgICAgICAgIHsgZmllbGQ6IFwib3duZXJOYW1lXCIsIGhlYWRlcjogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcInltcy5pbnQud21zX3JlZ2lzdGVyX2RvY3VtZW50X293bmVyX25hbWVcIikgfSxcbiAgICAgICAgICAgIHsgZmllbGQ6IFwib3duZXJEb2N1bWVudFwiLCBoZWFkZXI6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXCJ5bXMuaW50Lndtc19yZWdpc3Rlcl9kb2N1bWVudF9vd25lcl9kb2N1bWVudFwiKSB9LFxuICAgICAgICBdO1xuICAgICAgICB0aGlzLmFkZEludm9pY2VTaXR1YXRpb25JZk5vdENsaWVudGVFeHRlcm5vKGNvbHVtbnMpO1xuICAgICAgICByZXR1cm4gY29sdW1ucztcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldENvbHVtbmludm9pY2VDb25kaXRpb24oKSB7XG4gICAgICAgIHJldHVybiB7IGZpZWxkOiBcImludm9pY2VDb25kaXRpb25cIiwgaGVhZGVyOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFwieW1zLmludC53bXNfZ3JpZF9kb2N1bWVudF9pbnZvaWNlX2NvbmRpdGlvblwiKSB9O1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0Q29sdW1uSW52b2ljZUFuZGxvZ2lzdGNVbml0KCkge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgeyBmaWVsZDogXCJpbnZvaWNlTnVtYmVyXCIsIGhlYWRlcjogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcInltcy5pbnQud21zX3JlZ2lzdGVyX2RvY3VtZW50X2ludm9pY2VfbnVtYmVyXCIpIH0sXG4gICAgICAgICAgICB7IGZpZWxkOiBcImludm9pY2VTZXJpYWxOdW1iZXJcIiwgaGVhZGVyOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFwieW1zLmludC53bXNfcmVnaXN0ZXJfZG9jdW1lbnRfaW52b2ljZV9zZXJpYWxfbnVtYmVyXCIpIH0sXG4gICAgICAgICAgICAuLi50aGlzLmdldENvbHVtblBhcnRuZXIoKSxcbiAgICAgICAgICAgIHsgZmllbGQ6IFwibG9naXN0Y1VuaXROYW1lXCIsIGhlYWRlcjogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcInltcy5pbnQud21zX3JlZ2lzdGVyX2RvY3VtZW50X2xvZ2lzdGNfdW5pdF9uYW1lXCIpIH0sXG4gICAgICAgICAgICB7IGZpZWxkOiBcImxvZ2lzdGNVbml0RG9jdW1lbnRcIiwgaGVhZGVyOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFwieW1zLmludC53bXNfcmVnaXN0ZXJfZG9jdW1lbnRfbG9naXN0Y191bml0X2RvY3VtZW50XCIpIH0sXG4gICAgICAgIF07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRDb2x1bW5QYXJ0bmVyKCkge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgeyBmaWVsZDogXCJwYXJ0bmVyTmFtZVwiLCBoZWFkZXI6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXCJ5bXMuaW50Lndtc19yZWdpc3Rlcl9kb2N1bWVudF9wYXJ0bmVyX25hbWVcIikgfSxcbiAgICAgICAgICAgIHsgZmllbGQ6IFwicGFydG5lckRvY3VtZW50XCIsIGhlYWRlcjogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcInltcy5pbnQud21zX3JlZ2lzdGVyX2RvY3VtZW50X3BhcnRuZXJfZG9jdW1lbnRcIikgfSxcbiAgICAgICAgXTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFkZEludm9pY2VTaXR1YXRpb25JZk5vdENsaWVudGVFeHRlcm5vKGNvbHVtbnM6IGFueVtdKSB7XG4gICAgICAgIGlmICghdGhpcy5pc0NsaWVudGVFeHRlcm5vKSB7XG4gICAgICAgICAgICBjb2x1bW5zLnB1c2godGhpcy5nZXRDb2x1bW5pbnZvaWNlQ29uZGl0aW9uKCkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGlzV21zU2VuaW9yQ29ubmVjdCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMud21zU3lzdGVtID09PSBXbXNTeXN0ZW0uU0VOSU9SX0NPTk5FQ1Q7XG4gICAgfVxuXG4gICAgcHVibGljIGlzV21zV0lTKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy53bXNTeXN0ZW0gPT09IFdtc1N5c3RlbS5XSVM7XG4gICAgfVxuXG4gICAgcHVibGljIGlzV21zU2lsdCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMud21zU3lzdGVtID09PSBXbXNTeXN0ZW0uU0VOSU9SO1xuICAgIH1cblxuICAgIHByaXZhdGUgc3VjZXNzTWVzc2FnZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudXRpbHMubWVzc2FnZShcInN1Y2Nlc3NcIiwgdGhpcy5zdW1tYXJ5LCBcInNhdmVkX21lc3NhZ2VfY29udGVudFwiKTtcbiAgICB9XG59XG4iXX0=
@@ -107,6 +107,10 @@ tslib_1.__decorate([
107
107
  Input(),
108
108
  tslib_1.__metadata("design:type", Agenda)
109
109
  ], RegisterDocumentComponent.prototype, "agenda", void 0);
110
+ tslib_1.__decorate([
111
+ Input(),
112
+ tslib_1.__metadata("design:type", Boolean)
113
+ ], RegisterDocumentComponent.prototype, "isClienteExterno", void 0);
110
114
  tslib_1.__decorate([
111
115
  Output(),
112
116
  tslib_1.__metadata("design:type", EventEmitter)
@@ -126,9 +130,9 @@ tslib_1.__decorate([
126
130
  RegisterDocumentComponent = tslib_1.__decorate([
127
131
  Component({
128
132
  selector: "register-document",
129
- template: "<s-sidebar\n [visible]=\"visible\"\n header=\"{{ 'yms.int.wms_register_document_add_document' | translate }} {{ wmsSystem }}\"\n (visibleChange)=\"close()\"\n (onclose)=\"close()\">\n <form [formGroup]=\"formGroup\">\n <div class=\"ui-g ui-fluid\">\n <div class=\"ui-g-6\" *ngIf=\"isWmsSeniorConnect()\">\n <label for=\"key\">{{'yms.int.wms_purchaseOrder' | translate}}</label>\n <input id=\"key\" pInputText type=\"text\" formControlName=\"key\">\n </div>\n <div class=\"ui-g-6\" *ngIf=\"!isWmsSeniorConnect() && !isWmsWis()\">\n <label for=\"invoiceKey\">{{'yms.int.wms_register_document_invoice_key' | translate}}</label>\n <input id=\"invoiceKey\" pInputText type=\"text\" formControlName=\"invoiceKey\">\n </div>\n <div class=\"ui-g-6\" *ngIf=\"!isWmsSeniorConnect()\">\n <label for=\"invoiceNumber\">{{'yms.int.wms_register_document_invoice_number' | translate}}</label>\n <input id=\"invoiceNumber\" pInputText type=\"text\" formControlName=\"invoiceNumber\">\n </div>\n <div class=\"ui-g-6\" *ngIf=\"!isWmsSeniorConnect()\">\n <label for=\"invoiceSerialNumber\">\n {{'yms.int.wms_register_document_invoice_serial_number' | translate}}\n </label>\n <input id=\"invoiceSerialNumber\" pInputText type=\"text\" formControlName=\"invoiceSerialNumber\">\n </div>\n <div class=\"ui-g-8\">\n <label for=\"logistcUnitName\">{{'yms.int.wms_register_document_logistc_unit_name' | translate}}</label>\n <input id=\"logistcUnitName\" pInputText type=\"text\" formControlName=\"logistcUnitName\">\n </div>\n <div class=\"ui-g-4\">\n <label for=\"logistcUnitDocument\">\n {{'yms.int.wms_register_document_logistc_unit_document' | translate}}\n </label>\n <input id=\"logistcUnitDocument\" pInputText type=\"text\" formControlName=\"logistcUnitDocument\">\n </div>\n <div class=\"ui-g-8\" *ngIf=\"!isWmsSeniorConnect() && !isWmsWis()\">\n <label for=\"documentOwnerName\">{{'yms.int.wms_register_document_owner_name' | translate}}</label>\n <input id=\"documentOwnerName\" pInputText type=\"text\" formControlName=\"ownerName\">\n </div>\n <div class=\"ui-g-4\" *ngIf=\"!isWmsSeniorConnect() && !isWmsWis()\">\n <label for=\"ownerDocument\">{{'yms.int.wms_register_document_owner_document' | translate}}</label>\n <input id=\"ownerDocument\" pInputText type=\"text\" formControlName=\"ownerDocument\">\n </div>\n <div class=\"ui-g-8\">\n <label for=\"partnerName\">{{'yms.int.wms_register_document_partner_name' | translate}}</label>\n <input id=\"partnerName\" pInputText type=\"text\" formControlName=\"partnerName\">\n </div>\n <div class=\"ui-g-4\">\n <label for=\"partnerDocument\">{{'yms.int.wms_register_document_partner_document' | translate}}</label>\n <input id=\"partnerDocument\" pInputText type=\"text\" formControlName=\"partnerDocument\">\n </div>\n <div class=\"ui-g-12\">\n <label for=\"notes\" id=\"notes\">{{'yms.int.wms_register_document_notes' | translate}}</label>\n <textarea id=\"notes\" rows=\"4\" pInputTextarea autoResize=\"autoResize\" formControlName=\"notes\"></textarea>\n </div>\n <div class=\"ui-g-4\">\n <label for=\"code\">\n {{'yms.int.wms_register_document_order_receiving_code' | translate}}\n </label>\n <input id=\"code\" pInputText type=\"text\" formControlName=\"code\">\n </div>\n <div class=\"ui-g-4\">\n <label for=\"invoiceCondition\" id=\"invoiceCondition\">\n {{'yms.int.wms_grid_document_invoice_condition' | translate}}\n </label>\n <p-dropdown\n inputId=\"invoiceCondition\"\n name=\"invoiceCondition\"\n [autoWidth]=\"false\"\n [options]=\"invoiceCondition\"\n formControlName=\"invoiceCondition\"\n ></p-dropdown>\n </div>\n </div>\n </form>\n <div class=\"space-between\">\n <button\n pButton label=\"{{'save' | translate}}\"\n (click)=\"save()\"\n [attr.data-hidden]=\"hideSaveButton\"\n [disabled]=\"!isSaveFormValid\">\n </button>\n <button\n type=\"button\" class=\"ui-button-link\" pButton label=\"{{'cancel' | translate}}\" (click)=\"close()\">\n </button>\n </div>\n</s-sidebar>"
133
+ template: "<s-sidebar\n [visible]=\"visible\"\n header=\"{{ 'yms.int.wms_register_document_add_document' | translate }} {{ wmsSystem }}\"\n (visibleChange)=\"close()\"\n (onclose)=\"close()\">\n <form [formGroup]=\"formGroup\">\n <div class=\"ui-g ui-fluid\">\n <div class=\"ui-g-6\" *ngIf=\"isWmsSeniorConnect()\">\n <label for=\"key\">{{'yms.int.wms_purchaseOrder' | translate}}</label>\n <input id=\"key\" pInputText type=\"text\" formControlName=\"key\">\n </div>\n <div class=\"ui-g-6\" *ngIf=\"!isWmsSeniorConnect() && !isWmsWis()\">\n <label for=\"invoiceKey\">{{'yms.int.wms_register_document_invoice_key' | translate}}</label>\n <input id=\"invoiceKey\" pInputText type=\"text\" formControlName=\"invoiceKey\">\n </div>\n <div class=\"ui-g-6\" *ngIf=\"!isWmsSeniorConnect()\">\n <label for=\"invoiceNumber\">{{'yms.int.wms_register_document_invoice_number' | translate}}</label>\n <input id=\"invoiceNumber\" pInputText type=\"text\" formControlName=\"invoiceNumber\">\n </div>\n <div class=\"ui-g-6\" *ngIf=\"!isWmsSeniorConnect()\">\n <label for=\"invoiceSerialNumber\">\n {{'yms.int.wms_register_document_invoice_serial_number' | translate}}\n </label>\n <input id=\"invoiceSerialNumber\" pInputText type=\"text\" formControlName=\"invoiceSerialNumber\">\n </div>\n <div class=\"ui-g-8\">\n <label for=\"logistcUnitName\">{{'yms.int.wms_register_document_logistc_unit_name' | translate}}</label>\n <input id=\"logistcUnitName\" pInputText type=\"text\" formControlName=\"logistcUnitName\">\n </div>\n <div class=\"ui-g-4\">\n <label for=\"logistcUnitDocument\">\n {{'yms.int.wms_register_document_logistc_unit_document' | translate}}\n </label>\n <input id=\"logistcUnitDocument\" pInputText type=\"text\" formControlName=\"logistcUnitDocument\">\n </div>\n <div class=\"ui-g-8\" *ngIf=\"!isWmsSeniorConnect() && !isWmsWis()\">\n <label for=\"documentOwnerName\">{{'yms.int.wms_register_document_owner_name' | translate}}</label>\n <input id=\"documentOwnerName\" pInputText type=\"text\" formControlName=\"ownerName\">\n </div>\n <div class=\"ui-g-4\" *ngIf=\"!isWmsSeniorConnect() && !isWmsWis()\">\n <label for=\"ownerDocument\">{{'yms.int.wms_register_document_owner_document' | translate}}</label>\n <input id=\"ownerDocument\" pInputText type=\"text\" formControlName=\"ownerDocument\">\n </div>\n <div class=\"ui-g-8\">\n <label for=\"partnerName\">{{'yms.int.wms_register_document_partner_name' | translate}}</label>\n <input id=\"partnerName\" pInputText type=\"text\" formControlName=\"partnerName\">\n </div>\n <div class=\"ui-g-4\">\n <label for=\"partnerDocument\">{{'yms.int.wms_register_document_partner_document' | translate}}</label>\n <input id=\"partnerDocument\" pInputText type=\"text\" formControlName=\"partnerDocument\">\n </div>\n <div class=\"ui-g-12\">\n <label for=\"notes\" id=\"notes\">{{'yms.int.wms_register_document_notes' | translate}}</label>\n <textarea id=\"notes\" rows=\"4\" pInputTextarea autoResize=\"autoResize\" formControlName=\"notes\"></textarea>\n </div>\n <div class=\"ui-g-4\">\n <label for=\"code\">\n {{'yms.int.wms_register_document_order_receiving_code' | translate}}\n </label>\n <input id=\"code\" pInputText type=\"text\" formControlName=\"code\">\n </div>\n <div class=\"ui-g-4\" *ngIf=\"!isClienteExterno\">\n <label for=\"invoiceCondition\" id=\"invoiceCondition\">\n {{'yms.int.wms_grid_document_invoice_condition' | translate}}\n </label>\n <p-dropdown\n inputId=\"invoiceCondition\"\n name=\"invoiceCondition\"\n [autoWidth]=\"false\"\n [options]=\"invoiceCondition\"\n formControlName=\"invoiceCondition\"\n ></p-dropdown>\n </div>\n </div>\n </form>\n <div class=\"space-between\">\n <button\n pButton label=\"{{'save' | translate}}\"\n (click)=\"save()\"\n [attr.data-hidden]=\"hideSaveButton\"\n [disabled]=\"!isSaveFormValid\">\n </button>\n <button\n type=\"button\" class=\"ui-button-link\" pButton label=\"{{'cancel' | translate}}\" (click)=\"close()\">\n </button>\n </div>\n</s-sidebar>"
130
134
  }),
131
135
  tslib_1.__metadata("design:paramtypes", [FormBuilder, TranslateService])
132
136
  ], RegisterDocumentComponent);
133
137
  export { RegisterDocumentComponent };
134
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaXN0ZXItZG9jdW1lbnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvcnNpc3RlbWFzL3ltcy1pbnRlZ3JhdGlvbi8iLCJzb3VyY2VzIjpbInNyYy93bXMvY29tcG9uZW50cy9kb2N1bWVudC1ncmlkL3JlZ2lzdGVyLWRvY3VtZW50L3JlZ2lzdGVyLWRvY3VtZW50LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUYsT0FBTyxFQUFFLFdBQVcsRUFBYSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFDNUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQy9ELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUNwRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUN6RixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUt2RCxJQUFhLHlCQUF5QixHQUF0QyxNQUFhLHlCQUF5QjtJQWNsQyxZQUE2QixFQUFlLEVBQW1CLFNBQTJCO1FBQTdELE9BQUUsR0FBRixFQUFFLENBQWE7UUFBbUIsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFUaEYsYUFBUSxHQUEyQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBRXZELFlBQU8sR0FBMEIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNuRCxrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFJdEMsb0JBQWUsR0FBRyxLQUFLLENBQUM7UUFJeEIscUJBQWdCLEdBQWlEO1lBQ3BFLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLDBDQUEw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VSxZQUFZOzBEQUErQjtBQUNuRDtJQUFULE1BQU0sRUFBRTs7Z0VBQW9DO0FBUnBDLHlCQUF5QjtJQUpyQyxTQUFTLENBQUM7UUFDUCxRQUFRLEVBQUUsbUJBQW1CO1FBQzdCLDAzSkFBaUQ7S0FDcEQsQ0FBQzs2Q0FlbUMsV0FBVyxFQUE4QixnQkFBZ0I7R0FkakYseUJBQXlCLENBMEdyQztTQTFHWSx5QkFBeUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBPdXRwdXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuaW1wb3J0IHsgQWdlbmRhIH0gZnJvbSAnLi4vLi4vLi4vLi4vZXJwLXNlbmlvci9jb3JlL2VudGl0aWVzL2FnZW5kYS9hZ2VuZGEnO1xuaW1wb3J0IHsgRG9jdW1lbnQgfSBmcm9tICcuLi8uLi8uLi9lbnRpdGllcy9kb2N1bWVudC9kb2N1bWVudCc7XG5pbXBvcnQgeyBXbXNTeXN0ZW0gfSBmcm9tIFwiLi4vLi4vLi4vZW50aXRpZXMvd21zLXN5c3RlbS93bXMtc3lzdGVtXCI7XG5pbXBvcnQgeyBJbnZvaWNlQ29uZGl0aW9uIH0gZnJvbSBcIi4uLy4uLy4uL2VudGl0aWVzL2ludm9pY2UtY29uZGl0aW9uL2ludm9pY2UtY29uZGl0aW9uXCI7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSBcIkBuZ3gtdHJhbnNsYXRlL2NvcmVcIjtcbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiBcInJlZ2lzdGVyLWRvY3VtZW50XCIsXG4gICAgdGVtcGxhdGVVcmw6IFwiLi9yZWdpc3Rlci1kb2N1bWVudC5jb21wb25lbnQuaHRtbFwiLFxufSlcbmV4cG9ydCBjbGFzcyBSZWdpc3RlckRvY3VtZW50Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuXG4gICAgQElucHV0KCkgdmlld0RvY3VtZW50OiBEb2N1bWVudFtdO1xuICAgIEBJbnB1dCgpIGVkaXQ6IGJvb2xlYW47XG4gICAgQElucHV0KCkgYWdlbmRhOiBBZ2VuZGE7XG4gICAgQE91dHB1dCgpIGRvY3VtZW50OiBFdmVudEVtaXR0ZXI8RG9jdW1lbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBJbnB1dCgpIHdtc1N5c3RlbTogV21zU3lzdGVtO1xuICAgIEBJbnB1dCgpIHZpc2libGU6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KCkgdmlzaWJsZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIHB1YmxpYyBmb3JtR3JvdXA6IEZvcm1Hcm91cDtcbiAgICBwdWJsaWMgaGlkZVNhdmVCdXR0b246IGJvb2xlYW47XG4gICAgcHVibGljIGlzU2F2ZUZvcm1WYWxpZCA9IGZhbHNlO1xuICAgIFxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgZmI6IEZvcm1CdWlsZGVyLCBwcml2YXRlIHJlYWRvbmx5IHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSkge31cblxuICAgIHB1YmxpYyBpbnZvaWNlQ29uZGl0aW9uOiB7IGxhYmVsOiBzdHJpbmc7IHZhbHVlOiBJbnZvaWNlQ29uZGl0aW9uIH1bXSA9IFtcbiAgICAgICAgeyBsYWJlbDogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcInltcy5pbnQud21zX2dyaWRfZG9jdW1lbnRfaW52b2ljZV9ub193YXlcIiksIHZhbHVlOiBudWxsIH0sXG4gICAgICAgIHsgbGFiZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXCJ5bXMuaW50Lndtc19ncmlkX2RvY3VtZW50X2ludm9pY2VfY29uZGl0aW9uX2F1dGhvcml6ZWRcIiksIHZhbHVlOiBJbnZvaWNlQ29uZGl0aW9uLkFVVEhPUklaRUQgfSxcbiAgICAgICAgeyBsYWJlbDogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcInltcy5pbnQud21zX2dyaWRfZG9jdW1lbnRfaW52b2ljZV9jb25kaXRpb25fbWFudWFsX2F1dGhvcml6ZWRcIiksIHZhbHVlOiBJbnZvaWNlQ29uZGl0aW9uLk1BTlVBTF9BVVRIT1JJWkVEIH0sXG4gICAgICAgIHsgbGFiZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXCJ5bXMuaW50Lndtc19ncmlkX2RvY3VtZW50X2ludm9pY2VfY29uZGl0aW9uX3BhcnRpYWxfYXV0aG9yaXplZFwiKSwgdmFsdWU6IEludm9pY2VDb25kaXRpb24uUEFSVElBTF9BVVRIT1JJWkVEIH0sXG4gICAgICAgIHsgbGFiZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXCJ5bXMuaW50Lndtc19ncmlkX2RvY3VtZW50X2ludm9pY2VfY29uZGl0aW9uX2Rldm9sdWNpb25cIiksIHZhbHVlOiBJbnZvaWNlQ29uZGl0aW9uLkFVVEhPUklaRUQgfSxcbiAgICBdO1xuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZ2V0Rm9ybUdyb3VwKCk7XG4gICAgICAgIHRoaXMud2F0Y2hGb3JtQ2hhbmdlcygpO1xuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnZpc2liaWxpdHlDb25maWcoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdmlzaWJpbGl0eUNvbmZpZygpIHtcbiAgICAgICAgaWYgKCF0aGlzLmVkaXQgJiYgdGhpcy52aXNpYmxlKSB7XG4gICAgICAgICAgICB0aGlzLmZvcm1Hcm91cC5kaXNhYmxlKCk7XG4gICAgICAgICAgICB0aGlzLnNldFZhbHVlc0Zvcm1Hcm91cCh0aGlzLnZpZXdEb2N1bWVudFswXSk7XG4gICAgICAgICAgICB0aGlzLmhpZGVTYXZlQnV0dG9uID0gdHJ1ZTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5mb3JtR3JvdXAgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5mb3JtR3JvdXAuZW5hYmxlKCk7XG4gICAgICAgICAgICB0aGlzLmhpZGVTYXZlQnV0dG9uID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgY2xvc2UoKSB7XG4gICAgICAgIHRoaXMuZm9ybUdyb3VwLnJlc2V0KCk7XG4gICAgICAgIHRoaXMudmlzaWJsZUNoYW5nZS5lbWl0KGZhbHNlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldFZhbHVlc0Zvcm1Hcm91cChkb2N1bWVudDogRG9jdW1lbnQpIHtcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAuZ2V0KCdrZXknKS5zZXRWYWx1ZShkb2N1bWVudC5rZXkpO1xuICAgICAgICB0aGlzLmZvcm1Hcm91cC5nZXQoJ2ludm9pY2VLZXknKS5zZXRWYWx1ZShkb2N1bWVudC5pbnZvaWNlS2V5KTtcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAuZ2V0KCdpbnZvaWNlTnVtYmVyJykuc2V0VmFsdWUoZG9jdW1lbnQuaW52b2ljZU51bWJlcik7XG4gICAgICAgIHRoaXMuZm9ybUdyb3VwLmdldCgnaW52b2ljZVNlcmlhbE51bWJlcicpLnNldFZhbHVlKGRvY3VtZW50Lmludm9pY2VTZXJpYWxOdW1iZXIpO1xuICAgICAgICB0aGlzLmZvcm1Hcm91cC5nZXQoJ2xvZ2lzdGNVbml0RG9jdW1lbnQnKS5zZXRWYWx1ZShkb2N1bWVudC5sb2dpc3RjVW5pdERvY3VtZW50KTtcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAuZ2V0KCdsb2dpc3RjVW5pdE5hbWUnKS5zZXRWYWx1ZShkb2N1bWVudC5sb2dpc3RjVW5pdE5hbWUpO1xuICAgICAgICB0aGlzLmZvcm1Hcm91cC5nZXQoJ25vdGVzJykuc2V0VmFsdWUoZG9jdW1lbnQubm90ZXMpO1xuICAgICAgICB0aGlzLmZvcm1Hcm91cC5nZXQoJ2NvZGUnKS5zZXRWYWx1ZShkb2N1bWVudC5jb2RlKTtcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAuZ2V0KCdwYXJ0bmVyTmFtZScpLnNldFZhbHVlKGRvY3VtZW50LnBhcnRuZXJOYW1lKTtcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAuZ2V0KCdwYXJ0bmVyRG9jdW1lbnQnKS5zZXRWYWx1ZShkb2N1bWVudC5wYXJ0bmVyRG9jdW1lbnQpO1xuICAgICAgICB0aGlzLmZvcm1Hcm91cC5nZXQoJ293bmVyRG9jdW1lbnQnKS5zZXRWYWx1ZShkb2N1bWVudC5vd25lckRvY3VtZW50KTtcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAuZ2V0KCdvd25lck5hbWUnKS5zZXRWYWx1ZShkb2N1bWVudC5vd25lck5hbWUpO1xuICAgICAgICB0aGlzLmZvcm1Hcm91cC5nZXQoJ2ludm9pY2VDb25kaXRpb24nKS5zZXRWYWx1ZShkb2N1bWVudC5pbnZvaWNlQ29uZGl0aW9uKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEZvcm1Hcm91cCgpIHtcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAgPSB0aGlzLmZiLmdyb3VwKHtcbiAgICAgICAgICAgIGtleTogW3VuZGVmaW5lZCwgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXG4gICAgICAgICAgICBpbnZvaWNlS2V5OiBbdW5kZWZpbmVkXSxcbiAgICAgICAgICAgIHNjaGVkdWxpbmdJZDogW3VuZGVmaW5lZF0sXG4gICAgICAgICAgICBpbnZvaWNlTnVtYmVyOiBbdW5kZWZpbmVkXSxcbiAgICAgICAgICAgIGludm9pY2VTZXJpYWxOdW1iZXI6IFt1bmRlZmluZWRdLFxuICAgICAgICAgICAgbG9naXN0Y1VuaXROYW1lOiBbdW5kZWZpbmVkXSxcbiAgICAgICAgICAgIGxvZ2lzdGNVbml0RG9jdW1lbnQ6IFt1bmRlZmluZWRdLFxuICAgICAgICAgICAgb3duZXJOYW1lOiBbdW5kZWZpbmVkXSxcbiAgICAgICAgICAgIG93bmVyRG9jdW1lbnQ6IFt1bmRlZmluZWRdLFxuICAgICAgICAgICAgcGFydG5lck5hbWU6IFt1bmRlZmluZWRdLFxuICAgICAgICAgICAgcGFydG5lckRvY3VtZW50OiBbdW5kZWZpbmVkXSxcbiAgICAgICAgICAgIG5vdGVzOiBbdW5kZWZpbmVkXSxcbiAgICAgICAgICAgIGNvZGU6IFt1bmRlZmluZWRdLFxuICAgICAgICAgICAgaW52b2ljZUNvbmRpdGlvbjogW3VuZGVmaW5lZF0sXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBzYXZlKCkge1xuICAgICAgICB0aGlzLmRvY3VtZW50LmVtaXQoRG9jdW1lbnQuZnJvbUR0byh0aGlzLmZvcm1Hcm91cC5nZXRSYXdWYWx1ZSgpKSk7XG4gICAgICAgIHRoaXMuZm9ybUdyb3VwLnJlc2V0KCk7XG4gICAgfVxuXG4gICAgcHVibGljIGlzV21zV2lzKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy53bXNTeXN0ZW0gPT09IFdtc1N5c3RlbS5XSVM7XG4gICAgfVxuXG4gICAgcHVibGljIGlzV21zU2VuaW9yQ29ubmVjdCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMud21zU3lzdGVtID09PSBXbXNTeXN0ZW0uU0VOSU9SX0NPTk5FQ1Q7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB3YXRjaEZvcm1DaGFuZ2VzKCkge1xuICAgICAgICB0aGlzLmZvcm1Hcm91cC52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGZvcm1WYWx1ZXMgPSBPYmplY3QudmFsdWVzKHRoaXMuZm9ybUdyb3VwLnZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMuaXNTYXZlRm9ybVZhbGlkID0gZm9ybVZhbHVlcy5zb21lKHZhbHVlID0+IHZhbHVlICE9PSBudWxsICYmIHZhbHVlICE9PSAnJyk7XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==
138
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaXN0ZXItZG9jdW1lbnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvcnNpc3RlbWFzL3ltcy1pbnRlZ3JhdGlvbi8iLCJzb3VyY2VzIjpbInNyYy93bXMvY29tcG9uZW50cy9kb2N1bWVudC1ncmlkL3JlZ2lzdGVyLWRvY3VtZW50L3JlZ2lzdGVyLWRvY3VtZW50LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUYsT0FBTyxFQUFFLFdBQVcsRUFBYSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFDNUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQy9ELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUNwRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUN6RixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUt2RCxJQUFhLHlCQUF5QixHQUF0QyxNQUFhLHlCQUF5QjtJQWVsQyxZQUE2QixFQUFlLEVBQW1CLFNBQTJCO1FBQTdELE9BQUUsR0FBRixFQUFFLENBQWE7UUFBbUIsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFUaEYsYUFBUSxHQUEyQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBRXZELFlBQU8sR0FBMEIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNuRCxrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFJdEMsb0JBQWUsR0FBRyxLQUFLLENBQUM7UUFJeEIscUJBQWdCLEdBQWlEO1lBQ3BFLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLDBDQUEw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QXNCO0FBQ3JCO0lBQVIsS0FBSyxFQUFFO3NDQUFVLFlBQVk7MERBQStCO0FBQ25EO0lBQVQsTUFBTSxFQUFFOztnRUFBb0M7QUFUcEMseUJBQXlCO0lBSnJDLFNBQVMsQ0FBQztRQUNQLFFBQVEsRUFBRSxtQkFBbUI7UUFDN0IsczVKQUFpRDtLQUNwRCxDQUFDOzZDQWdCbUMsV0FBVyxFQUE4QixnQkFBZ0I7R0FmakYseUJBQXlCLENBMkdyQztTQTNHWSx5QkFBeUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBPdXRwdXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuaW1wb3J0IHsgQWdlbmRhIH0gZnJvbSAnLi4vLi4vLi4vLi4vZXJwLXNlbmlvci9jb3JlL2VudGl0aWVzL2FnZW5kYS9hZ2VuZGEnO1xuaW1wb3J0IHsgRG9jdW1lbnQgfSBmcm9tICcuLi8uLi8uLi9lbnRpdGllcy9kb2N1bWVudC9kb2N1bWVudCc7XG5pbXBvcnQgeyBXbXNTeXN0ZW0gfSBmcm9tIFwiLi4vLi4vLi4vZW50aXRpZXMvd21zLXN5c3RlbS93bXMtc3lzdGVtXCI7XG5pbXBvcnQgeyBJbnZvaWNlQ29uZGl0aW9uIH0gZnJvbSBcIi4uLy4uLy4uL2VudGl0aWVzL2ludm9pY2UtY29uZGl0aW9uL2ludm9pY2UtY29uZGl0aW9uXCI7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSBcIkBuZ3gtdHJhbnNsYXRlL2NvcmVcIjtcbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiBcInJlZ2lzdGVyLWRvY3VtZW50XCIsXG4gICAgdGVtcGxhdGVVcmw6IFwiLi9yZWdpc3Rlci1kb2N1bWVudC5jb21wb25lbnQuaHRtbFwiLFxufSlcbmV4cG9ydCBjbGFzcyBSZWdpc3RlckRvY3VtZW50Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuXG4gICAgQElucHV0KCkgdmlld0RvY3VtZW50OiBEb2N1bWVudFtdO1xuICAgIEBJbnB1dCgpIGVkaXQ6IGJvb2xlYW47XG4gICAgQElucHV0KCkgYWdlbmRhOiBBZ2VuZGE7XG4gICAgQElucHV0KCkgaXNDbGllbnRlRXh0ZXJubzogYm9vbGVhbjtcbiAgICBAT3V0cHV0KCkgZG9jdW1lbnQ6IEV2ZW50RW1pdHRlcjxEb2N1bWVudD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQElucHV0KCkgd21zU3lzdGVtOiBXbXNTeXN0ZW07XG4gICAgQElucHV0KCkgdmlzaWJsZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKSB2aXNpYmxlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgcHVibGljIGZvcm1Hcm91cDogRm9ybUdyb3VwO1xuICAgIHB1YmxpYyBoaWRlU2F2ZUJ1dHRvbjogYm9vbGVhbjtcbiAgICBwdWJsaWMgaXNTYXZlRm9ybVZhbGlkID0gZmFsc2U7XG4gICAgXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBmYjogRm9ybUJ1aWxkZXIsIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlKSB7fVxuXG4gICAgcHVibGljIGludm9pY2VDb25kaXRpb246IHsgbGFiZWw6IHN0cmluZzsgdmFsdWU6IEludm9pY2VDb25kaXRpb24gfVtdID0gW1xuICAgICAgICB7IGxhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFwieW1zLmludC53bXNfZ3JpZF9kb2N1bWVudF9pbnZvaWNlX25vX3dheVwiKSwgdmFsdWU6IG51bGwgfSxcbiAgICAgICAgeyBsYWJlbDogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcInltcy5pbnQud21zX2dyaWRfZG9jdW1lbnRfaW52b2ljZV9jb25kaXRpb25fYXV0aG9yaXplZFwiKSwgdmFsdWU6IEludm9pY2VDb25kaXRpb24uQVVUSE9SSVpFRCB9LFxuICAgICAgICB7IGxhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFwieW1zLmludC53bXNfZ3JpZF9kb2N1bWVudF9pbnZvaWNlX2NvbmRpdGlvbl9tYW51YWxfYXV0aG9yaXplZFwiKSwgdmFsdWU6IEludm9pY2VDb25kaXRpb24uTUFOVUFMX0FVVEhPUklaRUQgfSxcbiAgICAgICAgeyBsYWJlbDogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcInltcy5pbnQud21zX2dyaWRfZG9jdW1lbnRfaW52b2ljZV9jb25kaXRpb25fcGFydGlhbF9hdXRob3JpemVkXCIpLCB2YWx1ZTogSW52b2ljZUNvbmRpdGlvbi5QQVJUSUFMX0FVVEhPUklaRUQgfSxcbiAgICAgICAgeyBsYWJlbDogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcInltcy5pbnQud21zX2dyaWRfZG9jdW1lbnRfaW52b2ljZV9jb25kaXRpb25fZGV2b2x1Y2lvblwiKSwgdmFsdWU6IEludm9pY2VDb25kaXRpb24uQVVUSE9SSVpFRCB9LFxuICAgIF07XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5nZXRGb3JtR3JvdXAoKTtcbiAgICAgICAgdGhpcy53YXRjaEZvcm1DaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudmlzaWJpbGl0eUNvbmZpZygpO1xuICAgIH1cblxuICAgIHB1YmxpYyB2aXNpYmlsaXR5Q29uZmlnKCkge1xuICAgICAgICBpZiAoIXRoaXMuZWRpdCAmJiB0aGlzLnZpc2libGUpIHtcbiAgICAgICAgICAgIHRoaXMuZm9ybUdyb3VwLmRpc2FibGUoKTtcbiAgICAgICAgICAgIHRoaXMuc2V0VmFsdWVzRm9ybUdyb3VwKHRoaXMudmlld0RvY3VtZW50WzBdKTtcbiAgICAgICAgICAgIHRoaXMuaGlkZVNhdmVCdXR0b24gPSB0cnVlO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMudmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmZvcm1Hcm91cCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLmZvcm1Hcm91cC5lbmFibGUoKTtcbiAgICAgICAgICAgIHRoaXMuaGlkZVNhdmVCdXR0b24gPSBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBjbG9zZSgpIHtcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAucmVzZXQoKTtcbiAgICAgICAgdGhpcy52aXNpYmxlQ2hhbmdlLmVtaXQoZmFsc2UpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0VmFsdWVzRm9ybUdyb3VwKGRvY3VtZW50OiBEb2N1bWVudCkge1xuICAgICAgICB0aGlzLmZvcm1Hcm91cC5nZXQoJ2tleScpLnNldFZhbHVlKGRvY3VtZW50LmtleSk7XG4gICAgICAgIHRoaXMuZm9ybUdyb3VwLmdldCgnaW52b2ljZUtleScpLnNldFZhbHVlKGRvY3VtZW50Lmludm9pY2VLZXkpO1xuICAgICAgICB0aGlzLmZvcm1Hcm91cC5nZXQoJ2ludm9pY2VOdW1iZXInKS5zZXRWYWx1ZShkb2N1bWVudC5pbnZvaWNlTnVtYmVyKTtcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAuZ2V0KCdpbnZvaWNlU2VyaWFsTnVtYmVyJykuc2V0VmFsdWUoZG9jdW1lbnQuaW52b2ljZVNlcmlhbE51bWJlcik7XG4gICAgICAgIHRoaXMuZm9ybUdyb3VwLmdldCgnbG9naXN0Y1VuaXREb2N1bWVudCcpLnNldFZhbHVlKGRvY3VtZW50LmxvZ2lzdGNVbml0RG9jdW1lbnQpO1xuICAgICAgICB0aGlzLmZvcm1Hcm91cC5nZXQoJ2xvZ2lzdGNVbml0TmFtZScpLnNldFZhbHVlKGRvY3VtZW50LmxvZ2lzdGNVbml0TmFtZSk7XG4gICAgICAgIHRoaXMuZm9ybUdyb3VwLmdldCgnbm90ZXMnKS5zZXRWYWx1ZShkb2N1bWVudC5ub3Rlcyk7XG4gICAgICAgIHRoaXMuZm9ybUdyb3VwLmdldCgnY29kZScpLnNldFZhbHVlKGRvY3VtZW50LmNvZGUpO1xuICAgICAgICB0aGlzLmZvcm1Hcm91cC5nZXQoJ3BhcnRuZXJOYW1lJykuc2V0VmFsdWUoZG9jdW1lbnQucGFydG5lck5hbWUpO1xuICAgICAgICB0aGlzLmZvcm1Hcm91cC5nZXQoJ3BhcnRuZXJEb2N1bWVudCcpLnNldFZhbHVlKGRvY3VtZW50LnBhcnRuZXJEb2N1bWVudCk7XG4gICAgICAgIHRoaXMuZm9ybUdyb3VwLmdldCgnb3duZXJEb2N1bWVudCcpLnNldFZhbHVlKGRvY3VtZW50Lm93bmVyRG9jdW1lbnQpO1xuICAgICAgICB0aGlzLmZvcm1Hcm91cC5nZXQoJ293bmVyTmFtZScpLnNldFZhbHVlKGRvY3VtZW50Lm93bmVyTmFtZSk7XG4gICAgICAgIHRoaXMuZm9ybUdyb3VwLmdldCgnaW52b2ljZUNvbmRpdGlvbicpLnNldFZhbHVlKGRvY3VtZW50Lmludm9pY2VDb25kaXRpb24pO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0Rm9ybUdyb3VwKCkge1xuICAgICAgICB0aGlzLmZvcm1Hcm91cCA9IHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgICAgICAga2V5OiBbdW5kZWZpbmVkLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcbiAgICAgICAgICAgIGludm9pY2VLZXk6IFt1bmRlZmluZWRdLFxuICAgICAgICAgICAgc2NoZWR1bGluZ0lkOiBbdW5kZWZpbmVkXSxcbiAgICAgICAgICAgIGludm9pY2VOdW1iZXI6IFt1bmRlZmluZWRdLFxuICAgICAgICAgICAgaW52b2ljZVNlcmlhbE51bWJlcjogW3VuZGVmaW5lZF0sXG4gICAgICAgICAgICBsb2dpc3RjVW5pdE5hbWU6IFt1bmRlZmluZWRdLFxuICAgICAgICAgICAgbG9naXN0Y1VuaXREb2N1bWVudDogW3VuZGVmaW5lZF0sXG4gICAgICAgICAgICBvd25lck5hbWU6IFt1bmRlZmluZWRdLFxuICAgICAgICAgICAgb3duZXJEb2N1bWVudDogW3VuZGVmaW5lZF0sXG4gICAgICAgICAgICBwYXJ0bmVyTmFtZTogW3VuZGVmaW5lZF0sXG4gICAgICAgICAgICBwYXJ0bmVyRG9jdW1lbnQ6IFt1bmRlZmluZWRdLFxuICAgICAgICAgICAgbm90ZXM6IFt1bmRlZmluZWRdLFxuICAgICAgICAgICAgY29kZTogW3VuZGVmaW5lZF0sXG4gICAgICAgICAgICBpbnZvaWNlQ29uZGl0aW9uOiBbdW5kZWZpbmVkXSxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIHNhdmUoKSB7XG4gICAgICAgIHRoaXMuZG9jdW1lbnQuZW1pdChEb2N1bWVudC5mcm9tRHRvKHRoaXMuZm9ybUdyb3VwLmdldFJhd1ZhbHVlKCkpKTtcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAucmVzZXQoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNXbXNXaXMoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLndtc1N5c3RlbSA9PT0gV21zU3lzdGVtLldJUztcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNXbXNTZW5pb3JDb25uZWN0KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy53bXNTeXN0ZW0gPT09IFdtc1N5c3RlbS5TRU5JT1JfQ09OTkVDVDtcbiAgICB9XG5cbiAgICBwcml2YXRlIHdhdGNoRm9ybUNoYW5nZXMoKSB7XG4gICAgICAgIHRoaXMuZm9ybUdyb3VwLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgZm9ybVZhbHVlcyA9IE9iamVjdC52YWx1ZXModGhpcy5mb3JtR3JvdXAudmFsdWUpO1xuICAgICAgICAgICAgdGhpcy5pc1NhdmVGb3JtVmFsaWQgPSBmb3JtVmFsdWVzLnNvbWUodmFsdWUgPT4gdmFsdWUgIT09IG51bGwgJiYgdmFsdWUgIT09ICcnKTtcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl19