@colijnit/transaction 255.1.5 → 255.1.7

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.
Files changed (27) hide show
  1. package/bundles/colijnit-transaction.umd.js +77 -26
  2. package/bundles/colijnit-transaction.umd.js.map +1 -1
  3. package/colijnit-transaction-255.1.6.tgz +0 -0
  4. package/colijnit-transaction.metadata.json +1 -1
  5. package/esm2015/lib/component/add-product/add-product.component.js +2 -2
  6. package/esm2015/lib/component/transaction-header/transaction-header-popup/transaction-header-popup-create-service.component.js +2 -1
  7. package/esm2015/lib/component/transaction-line/transaction-purchase-line/transaction-purchase-line-base.component.js +4 -1
  8. package/esm2015/lib/component/transaction-line/transaction-purchase-line/transaction-purchase-line.component.js +2 -2
  9. package/esm2015/lib/component/transaction-line/transaction-receive-goods-line/transaction-receive-goods-line.component.js +2 -2
  10. package/esm2015/lib/component/transaction-quick-access/transaction-quick-access-sales-quotation/transaction-quick-access-sales-quotation.component.js +6 -5
  11. package/esm2015/lib/component/transaction-quick-access/transaction-quick-access-sales-quotation/transaction-quick-access-sales-quotation.module.js +4 -2
  12. package/esm2015/lib/component/transaction-search/service/transaction-search.service.js +4 -2
  13. package/esm2015/lib/component/transaction-search/transaction-search-tile/transaction-search-sales-line-select-tile/transaction-search-sales-line-select-tile.module.js +1 -1
  14. package/esm2015/lib/component/transaction-service-overview/transaction-service-overview.component.js +8 -3
  15. package/esm2015/lib/service/transaction-connector-adapter.service.js +13 -1
  16. package/esm2015/lib/service/transaction-event.service.js +2 -1
  17. package/esm2015/lib/service/transaction-mapping.service.js +5 -5
  18. package/esm2015/lib/service/transaction-payment-connector.service.js +6 -1
  19. package/esm2015/lib/service/transaction-payment.service.js +7 -1
  20. package/esm2015/lib/transaction-version.js +3 -3
  21. package/fesm2015/colijnit-transaction.js +53 -17
  22. package/fesm2015/colijnit-transaction.js.map +1 -1
  23. package/lib/component/transaction-line/transaction-purchase-line/transaction-purchase-line-base.component.d.ts +1 -0
  24. package/lib/service/transaction-connector-adapter.service.d.ts +1 -0
  25. package/lib/service/transaction-event.service.d.ts +1 -0
  26. package/lib/service/transaction-payment-connector.service.d.ts +1 -0
  27. package/package.json +3 -3
@@ -8,6 +8,7 @@ import { TransactionNavigationButtonListModule } from "../../transaction-navigat
8
8
  import { PipeModule } from "../../../pipe/pipe.module";
9
9
  import { TransactionSendDocumentsModule } from "../../transaction-send-documents/transaction-send-documents.module";
10
10
  import { DigitalSignatureModule } from "../../digital-signature/digital-signature.module";
11
+ import { TransactionButtonModule } from "../../transaction-button/transaction-button.module";
11
12
  export class TransactionQuickAccessSalesQuotationModule {
12
13
  }
13
14
  TransactionQuickAccessSalesQuotationModule.decorators = [
@@ -20,7 +21,8 @@ TransactionQuickAccessSalesQuotationModule.decorators = [
20
21
  TransactionNavigationButtonListModule,
21
22
  PipeModule,
22
23
  TransactionSendDocumentsModule,
23
- DigitalSignatureModule
24
+ DigitalSignatureModule,
25
+ TransactionButtonModule
24
26
  ],
25
27
  declarations: [
26
28
  TransactionQuickAccessSalesQuotationComponent
@@ -30,4 +32,4 @@ TransactionQuickAccessSalesQuotationModule.decorators = [
30
32
  ]
31
33
  },] }
32
34
  ];
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tcXVpY2stYWNjZXNzLXNhbGVzLXF1b3RhdGlvbi5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cmFuc2FjdGlvbi9zcmMvbGliL2NvbXBvbmVudC90cmFuc2FjdGlvbi1xdWljay1hY2Nlc3MvdHJhbnNhY3Rpb24tcXVpY2stYWNjZXNzLXNhbGVzLXF1b3RhdGlvbi90cmFuc2FjdGlvbi1xdWljay1hY2Nlc3Mtc2FsZXMtcXVvdGF0aW9uLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUMsNkNBQTZDLEVBQUMsTUFBTSxzREFBc0QsQ0FBQztBQUNuSCxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSxrREFBa0QsQ0FBQztBQUN2RixPQUFPLEVBQUMsc0JBQXNCLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUNsRSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDMUQsT0FBTyxFQUNMLHFDQUFxQyxFQUN0QyxNQUFNLG9GQUFvRixDQUFDO0FBQzVGLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUNyRCxPQUFPLEVBQUMsOEJBQThCLEVBQUMsTUFBTSxvRUFBb0UsQ0FBQztBQUNsSCxPQUFPLEVBQUMsc0JBQXNCLEVBQUMsTUFBTSxrREFBa0QsQ0FBQztBQW9CeEYsTUFBTSxPQUFPLDBDQUEwQzs7O1lBbEJ0RCxRQUFRLFNBQUM7Z0JBQ1IsT0FBTyxFQUFFO29CQUNQLFlBQVk7b0JBQ1oscUJBQXFCO29CQUNyQixzQkFBc0I7b0JBQ3RCLFlBQVk7b0JBQ1oscUNBQXFDO29CQUNyQyxVQUFVO29CQUNWLDhCQUE4QjtvQkFDOUIsc0JBQXNCO2lCQUN2QjtnQkFDQyxZQUFZLEVBQUU7b0JBQ1YsNkNBQTZDO2lCQUNoRDtnQkFDRCxPQUFPLEVBQUU7b0JBQ0wsNkNBQTZDO2lCQUNoRDthQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtOZ01vZHVsZX0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvblF1aWNrQWNjZXNzU2FsZXNRdW90YXRpb25Db21wb25lbnR9IGZyb20gXCIuL3RyYW5zYWN0aW9uLXF1aWNrLWFjY2Vzcy1zYWxlcy1xdW90YXRpb24uY29tcG9uZW50XCI7XHJcbmltcG9ydCB7UXVpY2tTZW5kQnV0dG9uTW9kdWxlfSBmcm9tIFwiLi4vLi4vcXVpY2stc2VuZC1idXR0b24vcXVpY2stc2VuZC1idXR0b24ubW9kdWxlXCI7XHJcbmltcG9ydCB7U2VuZE1ldGhvZERpYWxvZ01vZHVsZX0gZnJvbSBcIkBjb2xpam5pdC9zaGFyZWRjb21wb25lbnRzXCI7XHJcbmltcG9ydCB7QnV0dG9uTW9kdWxlfSBmcm9tIFwiQGNvbGlqbml0L2NvcmVjb21wb25lbnRzX3YxMlwiO1xyXG5pbXBvcnQge1xyXG4gIFRyYW5zYWN0aW9uTmF2aWdhdGlvbkJ1dHRvbkxpc3RNb2R1bGVcclxufSBmcm9tIFwiLi4vLi4vdHJhbnNhY3Rpb24tbmF2aWdhdGlvbi1idXR0b24tbGlzdC90cmFuc2FjdGlvbi1uYXZpZ2F0aW9uLWJ1dHRvbi1saXN0Lm1vZHVsZVwiO1xyXG5pbXBvcnQge1BpcGVNb2R1bGV9IGZyb20gXCIuLi8uLi8uLi9waXBlL3BpcGUubW9kdWxlXCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25TZW5kRG9jdW1lbnRzTW9kdWxlfSBmcm9tIFwiLi4vLi4vdHJhbnNhY3Rpb24tc2VuZC1kb2N1bWVudHMvdHJhbnNhY3Rpb24tc2VuZC1kb2N1bWVudHMubW9kdWxlXCI7XHJcbmltcG9ydCB7RGlnaXRhbFNpZ25hdHVyZU1vZHVsZX0gZnJvbSBcIi4uLy4uL2RpZ2l0YWwtc2lnbmF0dXJlL2RpZ2l0YWwtc2lnbmF0dXJlLm1vZHVsZVwiO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBRdWlja1NlbmRCdXR0b25Nb2R1bGUsXHJcbiAgICBTZW5kTWV0aG9kRGlhbG9nTW9kdWxlLFxyXG4gICAgQnV0dG9uTW9kdWxlLFxyXG4gICAgVHJhbnNhY3Rpb25OYXZpZ2F0aW9uQnV0dG9uTGlzdE1vZHVsZSxcclxuICAgIFBpcGVNb2R1bGUsXHJcbiAgICBUcmFuc2FjdGlvblNlbmREb2N1bWVudHNNb2R1bGUsXHJcbiAgICBEaWdpdGFsU2lnbmF0dXJlTW9kdWxlXHJcbiAgXSxcclxuICAgIGRlY2xhcmF0aW9uczogW1xyXG4gICAgICAgIFRyYW5zYWN0aW9uUXVpY2tBY2Nlc3NTYWxlc1F1b3RhdGlvbkNvbXBvbmVudFxyXG4gICAgXSxcclxuICAgIGV4cG9ydHM6IFtcclxuICAgICAgICBUcmFuc2FjdGlvblF1aWNrQWNjZXNzU2FsZXNRdW90YXRpb25Db21wb25lbnRcclxuICAgIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIFRyYW5zYWN0aW9uUXVpY2tBY2Nlc3NTYWxlc1F1b3RhdGlvbk1vZHVsZSB7XHJcbn1cclxuIl19
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tcXVpY2stYWNjZXNzLXNhbGVzLXF1b3RhdGlvbi5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cmFuc2FjdGlvbi9zcmMvbGliL2NvbXBvbmVudC90cmFuc2FjdGlvbi1xdWljay1hY2Nlc3MvdHJhbnNhY3Rpb24tcXVpY2stYWNjZXNzLXNhbGVzLXF1b3RhdGlvbi90cmFuc2FjdGlvbi1xdWljay1hY2Nlc3Mtc2FsZXMtcXVvdGF0aW9uLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUMsNkNBQTZDLEVBQUMsTUFBTSxzREFBc0QsQ0FBQztBQUNuSCxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSxrREFBa0QsQ0FBQztBQUN2RixPQUFPLEVBQUMsc0JBQXNCLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUNsRSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDMUQsT0FBTyxFQUNMLHFDQUFxQyxFQUN0QyxNQUFNLG9GQUFvRixDQUFDO0FBQzVGLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUNyRCxPQUFPLEVBQUMsOEJBQThCLEVBQUMsTUFBTSxvRUFBb0UsQ0FBQztBQUNsSCxPQUFPLEVBQUMsc0JBQXNCLEVBQUMsTUFBTSxrREFBa0QsQ0FBQztBQUN4RixPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSxvREFBb0QsQ0FBQztBQXFCM0YsTUFBTSxPQUFPLDBDQUEwQzs7O1lBbkJ0RCxRQUFRLFNBQUM7Z0JBQ1IsT0FBTyxFQUFFO29CQUNQLFlBQVk7b0JBQ1oscUJBQXFCO29CQUNyQixzQkFBc0I7b0JBQ3RCLFlBQVk7b0JBQ1oscUNBQXFDO29CQUNyQyxVQUFVO29CQUNWLDhCQUE4QjtvQkFDOUIsc0JBQXNCO29CQUN0Qix1QkFBdUI7aUJBQ3hCO2dCQUNDLFlBQVksRUFBRTtvQkFDViw2Q0FBNkM7aUJBQ2hEO2dCQUNELE9BQU8sRUFBRTtvQkFDTCw2Q0FBNkM7aUJBQ2hEO2FBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge05nTW9kdWxlfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uUXVpY2tBY2Nlc3NTYWxlc1F1b3RhdGlvbkNvbXBvbmVudH0gZnJvbSBcIi4vdHJhbnNhY3Rpb24tcXVpY2stYWNjZXNzLXNhbGVzLXF1b3RhdGlvbi5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtRdWlja1NlbmRCdXR0b25Nb2R1bGV9IGZyb20gXCIuLi8uLi9xdWljay1zZW5kLWJ1dHRvbi9xdWljay1zZW5kLWJ1dHRvbi5tb2R1bGVcIjtcclxuaW1wb3J0IHtTZW5kTWV0aG9kRGlhbG9nTW9kdWxlfSBmcm9tIFwiQGNvbGlqbml0L3NoYXJlZGNvbXBvbmVudHNcIjtcclxuaW1wb3J0IHtCdXR0b25Nb2R1bGV9IGZyb20gXCJAY29saWpuaXQvY29yZWNvbXBvbmVudHNfdjEyXCI7XHJcbmltcG9ydCB7XHJcbiAgVHJhbnNhY3Rpb25OYXZpZ2F0aW9uQnV0dG9uTGlzdE1vZHVsZVxyXG59IGZyb20gXCIuLi8uLi90cmFuc2FjdGlvbi1uYXZpZ2F0aW9uLWJ1dHRvbi1saXN0L3RyYW5zYWN0aW9uLW5hdmlnYXRpb24tYnV0dG9uLWxpc3QubW9kdWxlXCI7XHJcbmltcG9ydCB7UGlwZU1vZHVsZX0gZnJvbSBcIi4uLy4uLy4uL3BpcGUvcGlwZS5tb2R1bGVcIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvblNlbmREb2N1bWVudHNNb2R1bGV9IGZyb20gXCIuLi8uLi90cmFuc2FjdGlvbi1zZW5kLWRvY3VtZW50cy90cmFuc2FjdGlvbi1zZW5kLWRvY3VtZW50cy5tb2R1bGVcIjtcclxuaW1wb3J0IHtEaWdpdGFsU2lnbmF0dXJlTW9kdWxlfSBmcm9tIFwiLi4vLi4vZGlnaXRhbC1zaWduYXR1cmUvZGlnaXRhbC1zaWduYXR1cmUubW9kdWxlXCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25CdXR0b25Nb2R1bGV9IGZyb20gXCIuLi8uLi90cmFuc2FjdGlvbi1idXR0b24vdHJhbnNhY3Rpb24tYnV0dG9uLm1vZHVsZVwiO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBRdWlja1NlbmRCdXR0b25Nb2R1bGUsXHJcbiAgICBTZW5kTWV0aG9kRGlhbG9nTW9kdWxlLFxyXG4gICAgQnV0dG9uTW9kdWxlLFxyXG4gICAgVHJhbnNhY3Rpb25OYXZpZ2F0aW9uQnV0dG9uTGlzdE1vZHVsZSxcclxuICAgIFBpcGVNb2R1bGUsXHJcbiAgICBUcmFuc2FjdGlvblNlbmREb2N1bWVudHNNb2R1bGUsXHJcbiAgICBEaWdpdGFsU2lnbmF0dXJlTW9kdWxlLFxyXG4gICAgVHJhbnNhY3Rpb25CdXR0b25Nb2R1bGVcclxuICBdLFxyXG4gICAgZGVjbGFyYXRpb25zOiBbXHJcbiAgICAgICAgVHJhbnNhY3Rpb25RdWlja0FjY2Vzc1NhbGVzUXVvdGF0aW9uQ29tcG9uZW50XHJcbiAgICBdLFxyXG4gICAgZXhwb3J0czogW1xyXG4gICAgICAgIFRyYW5zYWN0aW9uUXVpY2tBY2Nlc3NTYWxlc1F1b3RhdGlvbkNvbXBvbmVudFxyXG4gICAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVHJhbnNhY3Rpb25RdWlja0FjY2Vzc1NhbGVzUXVvdGF0aW9uTW9kdWxlIHtcclxufVxyXG4iXX0=
@@ -9,6 +9,7 @@ import { PagingParameters } from '@colijnit/ioneconnector/build/model/paging-par
9
9
  import { TransactionSettingsService } from '../../../service/transaction-settings.service';
10
10
  import { BehaviorSubject } from 'rxjs';
11
11
  import { TransactionConnectorService } from '../../../service/transaction-connector.service';
12
+ import { TransactionSettings } from "../../../model/transaction-settings";
12
13
  import * as i0 from "@angular/core";
13
14
  import * as i1 from "../../../service/transaction.service";
14
15
  import * as i2 from "../../../service/transaction-connector.service";
@@ -149,7 +150,8 @@ export class TransactionSearchService {
149
150
  this.transactions.length = 0;
150
151
  }
151
152
  _resetRequest() {
152
- this.searchRequest = this._settingsService.settings.transactionParameters;
153
+ //Object.assign(new TransactionSettings(), this.settings, obj);
154
+ this.searchRequest = Object.assign(new TransactionSettings(), this._settingsService.settings.transactionParameters);
153
155
  this._settingsService.settings.tempTransactionParameters = undefined;
154
156
  }
155
157
  }
@@ -164,4 +166,4 @@ TransactionSearchService.ctorParameters = () => [
164
166
  { type: TransactionConnectorService },
165
167
  { type: TransactionSettingsService }
166
168
  ];
167
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tc2VhcmNoLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cmFuc2FjdGlvbi9zcmMvbGliL2NvbXBvbmVudC90cmFuc2FjdGlvbi1zZWFyY2gvc2VydmljZS90cmFuc2FjdGlvbi1zZWFyY2guc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sMkRBQTJELENBQUM7QUFDMUYsT0FBTyxFQUFDLDRCQUE0QixFQUFDLE1BQU0sc0VBQXNFLENBQUM7QUFFbEgsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBQ25FLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLHdDQUF3QyxDQUFDO0FBRXpFLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBQ3hFLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHVEQUF1RCxDQUFDO0FBQ3ZGLE9BQU8sRUFBQywwQkFBMEIsRUFBQyxNQUFNLCtDQUErQyxDQUFDO0FBQ3pGLE9BQU8sRUFBQyxlQUFlLEVBQWUsTUFBTSxNQUFNLENBQUM7QUFDbkQsT0FBTyxFQUFDLDJCQUEyQixFQUFDLE1BQU0sZ0RBQWdELENBQUM7Ozs7O0FBUzNGLE1BQU0sT0FBTyx3QkFBd0I7SUEwRG5DLFlBQ1ksbUJBQXVDLEVBQ3ZDLDRCQUF5RCxFQUN6RCxnQkFBNEM7UUFGNUMsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFvQjtRQUN2QyxpQ0FBNEIsR0FBNUIsNEJBQTRCLENBQTZCO1FBQ3pELHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBNEI7UUEzRGpELGtCQUFhLEdBQWlDLElBQUksNEJBQTRCLEVBQUUsQ0FBQztRQUNqRiwwQkFBcUIsR0FBaUMsSUFBSSw0QkFBNEIs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QWtCO1lBSWxCLDJCQUEyQjtZQUYzQiwwQkFBMEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uS2luZH0gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL2VudW0vdHJhbnNhY3Rpb24ta2luZC5lbnVtJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvblNlYXJjaFZpZXdSZXF1ZXN0fSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvdHJhbnNhY3Rpb24tc2VhcmNoLXZpZXctcmVxdWVzdCc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25TZWFyY2hWaWV3fSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvdHJhbnNhY3Rpb24tc2VhcmNoLXZpZXcuYm8nO1xyXG5pbXBvcnQge1NlYXJjaFZpZXdNb2RlfSBmcm9tICcuLi8uLi8uLi9lbnVtL3NlYXJjaC12aWV3LW1vZGUuZW51bSc7XHJcbmltcG9ydCB7U2VhcmNoYmFyVmlld01vZGV9IGZyb20gJy4uLy4uLy4uL2VudW0vc2VhcmNoYmFyLXZpZXctbW9kZS5lbnVtJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvblNlYXJjaFJlc3VsdH0gZnJvbSAnLi4vLi4vLi4vbW9kZWwvdHJhbnNhY3Rpb24tc2VhcmNoLXJlc3VsdCc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25TZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQge1BhZ2luZ1BhcmFtZXRlcnN9IGZyb20gJ0Bjb2xpam5pdC9pb25lY29ubmVjdG9yL2J1aWxkL21vZGVsL3BhZ2luZy1wYXJhbWV0ZXJzJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvblNldHRpbmdzU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi1zZXR0aW5ncy5zZXJ2aWNlJztcclxuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIFN1YnNjcmlwdGlvbn0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25Db25uZWN0b3JTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLWNvbm5lY3Rvci5zZXJ2aWNlJztcclxuaW1wb3J0IHtcclxuICBQZGZUcmFuc2FjdGlvblNlYXJjaE92ZXJ2aWV3UmVzcG9uc2VcclxufSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3BkZi10cmFuc2FjdGlvbi1zZWFyY2gtb3ZlcnZpZXctcmVzcG9uc2VcIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkxpbmVJbmZvfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3RyYW5zYWN0aW9uLWxpbmUtaW5mby5ib1wiO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46IFwicm9vdFwiXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUcmFuc2FjdGlvblNlYXJjaFNlcnZpY2Uge1xyXG5cclxuICBwdWJsaWMgc2VhcmNoUmVxdWVzdDogVHJhbnNhY3Rpb25TZWFyY2hWaWV3UmVxdWVzdCA9IG5ldyBUcmFuc2FjdGlvblNlYXJjaFZpZXdSZXF1ZXN0KCk7XHJcbiAgcHVibGljIHByZXZpb3VzU2VhcmNoUmVxdWVzdDogVHJhbnNhY3Rpb25TZWFyY2hWaWV3UmVxdWVzdCA9IG5ldyBUcmFuc2FjdGlvblNlYXJjaFZpZXdSZXF1ZXN0KCk7XHJcblxyXG4gIHB1YmxpYyBhY3RpdmVTZWFyY2hWaWV3TW9kZTogU2VhcmNoVmlld01vZGUgPSBTZWFyY2hWaWV3TW9kZS5GdWxsU2NyZWVuO1xyXG4gIHB1YmxpYyBhY3RpdmVTZWFyY2hCYXJWaWV3TW9kZTogU2VhcmNoYmFyVmlld01vZGUgPSBTZWFyY2hiYXJWaWV3TW9kZS5FeHBhbmRlZDtcclxuICBwdWJsaWMgc2hvd0ZpbHRlclNpZGViYXI6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgc2VhcmNoUGxhY2Vob2xkZXI6IHN0cmluZztcclxuXHJcbiAgcHVibGljIHRyYW5zYWN0aW9uczogVHJhbnNhY3Rpb25TZWFyY2hWaWV3W10gPSBbXTtcclxuICBwdWJsaWMgdHJhbnNhY3Rpb25MaW5lczogVHJhbnNhY3Rpb25MaW5lSW5mb1tdID0gW107XHJcbiAgcHVibGljIHNlYXJjaFJlcXVlc3RTZXQ6IEJlaGF2aW9yU3ViamVjdDxUcmFuc2FjdGlvblNlYXJjaFZpZXdSZXF1ZXN0PiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VHJhbnNhY3Rpb25TZWFyY2hWaWV3UmVxdWVzdD4odW5kZWZpbmVkKTtcclxuXHJcbiAgcHVibGljIHNldCB0cmFuc2FjdGlvblR5cGUodmFsdWU6IFRyYW5zYWN0aW9uS2luZCkge1xyXG4gICAgaWYgKHRoaXMuX3RyYW5zYWN0aW9uVHlwZSAhPT0gdmFsdWUpIHtcclxuICAgICAgdGhpcy5fcmVzZXRSZXF1ZXN0KCk7XHJcbiAgICAgIHRoaXMudHJhbnNhY3Rpb25zLmxlbmd0aCA9IDA7XHJcbiAgICB9XHJcbiAgICB0aGlzLl90cmFuc2FjdGlvblR5cGUgPSB2YWx1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgdHJhbnNhY3Rpb25UeXBlKCk6IFRyYW5zYWN0aW9uS2luZCB7XHJcbiAgICByZXR1cm4gdGhpcy5fdHJhbnNhY3Rpb25UeXBlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGxhYmVsQmFzZWRPblRyYW5zYWN0aW9uVHlwZTogTWFwPHN0cmluZywgc3RyaW5nPiA9IG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KFtcclxuICAgIFtUcmFuc2FjdGlvbktpbmQuU2FsZXNPcmRlciwgXCJTQUxFU09SREVSU1wiXSxcclxuICAgIFtUcmFuc2FjdGlvbktpbmQuUHVyY2hhc2VPcmRlciwgXCJQVVJDSEFTRU9SREVSU1wiXSxcclxuICAgIFtUcmFuc2FjdGlvbktpbmQuU2VydmljZU9yZGVyLCBcIlNFUlZJQ0VPUkRFUlNcIl0sXHJcbiAgICBbVHJhbnNhY3Rpb25LaW5kLlNhbGVzUXVvdGF0aW9uLCBcIlNBTEVTX1FVT1RBVElPTlNcIl0sXHJcbiAgICBbVHJhbnNhY3Rpb25LaW5kLkNhc2hEZXNrLCBcIlBPU19PUkRFUlNcIl1cclxuICBdKVxyXG5cclxuICBwdWJsaWMgcGxhY2Vob2xkZXJCYXNlZE9uVHJhbnNhY3Rpb25UeXBlOiBNYXA8c3RyaW5nLCBzdHJpbmc+ID0gbmV3IE1hcDxzdHJpbmcsIHN0cmluZz4oW1xyXG4gICAgW1RyYW5zYWN0aW9uS2luZC5TYWxlc09yZGVyLCBcIlNFQVJDSF9OVU1CRVJfT1JfQ1VTVE9NRVJcIl0sXHJcbiAgICBbVHJhbnNhY3Rpb25LaW5kLlB1cmNoYXNlT3JkZXIsIFwiU0VBUkNIX05VTUJFUl9PUl9TVVBQTElFUlwiXSxcclxuICAgIFtUcmFuc2FjdGlvbktpbmQuU2VydmljZU9yZGVyLCBcIlNFQVJDSF9OVU1CRVJfT1JfQ1VTVE9NRVJcIl0sXHJcbiAgICBbVHJhbnNhY3Rpb25LaW5kLlNhbGVzUXVvdGF0aW9uLCBcIlNFQVJDSF9OVU1CRVJfT1JfQ1VTVE9NRVJcIl0sXHJcbiAgICBbVHJhbnNhY3Rpb25LaW5kLkNhc2hEZXNrLCBcIlNFQVJDSF9OVU1CRVJfT1JfQ1VTVE9NRVJcIl1cclxuICBdKVxyXG5cclxuICBwdWJsaWMgdHJhbnNhY3Rpb25zUGVyUGFnZTogbnVtYmVyID0gMjA7XHJcbiAgcHVibGljIHJlc3VsdENvdW50OiBudW1iZXI7XHJcblxyXG4gIHB1YmxpYyBnZXQgY3VycmVudFBhZ2UoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLl9jdXJyZW50UGFnZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXQgY3VycmVudFBhZ2UodmFsdWU6IG51bWJlcikge1xyXG4gICAgdGhpcy5fY3VycmVudFBhZ2UgPSB2YWx1ZTtcclxuICAgIHRoaXMuc2VhcmNoVHJhbnNhY3Rpb25zKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9jdXJyZW50UGFnZSA9IDE7XHJcbiAgcHJpdmF0ZSBfdHJhbnNhY3Rpb25UeXBlOiBUcmFuc2FjdGlvbktpbmQgPSBUcmFuc2FjdGlvbktpbmQuU2FsZXNPcmRlcjtcclxuICBwcml2YXRlIF9zdWJzOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgICAgcHJpdmF0ZSBfdHJhbnNhY3Rpb25TZXJ2aWNlOiBUcmFuc2FjdGlvblNlcnZpY2UsXHJcbiAgICAgIHByaXZhdGUgX3RyYW5zYWN0aW9uQ29ubmVjdG9yU2VydmljZTogVHJhbnNhY3Rpb25Db25uZWN0b3JTZXJ2aWNlLFxyXG4gICAgICBwcml2YXRlIF9zZXR0aW5nc1NlcnZpY2U6IFRyYW5zYWN0aW9uU2V0dGluZ3NTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICB0aGlzLl9zdWJzLnB1c2goXHJcbiAgICAgICAgdGhpcy5fc2V0dGluZ3NTZXJ2aWNlLnNldHRpbmdzTG9hZGVkLnN1YnNjcmliZSgobG9hZGVkOiBib29sZWFuKSA9PiB7XHJcbiAgICAgICAgICBpZiAobG9hZGVkKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLl9zZXR0aW5nc1NlcnZpY2Uuc2V0dGluZ3MudGVtcFRyYW5zYWN0aW9uUGFyYW1ldGVycykge1xyXG4gICAgICAgICAgICAgIHRoaXMuc2VhcmNoUmVxdWVzdCA9IHRoaXMuX3NldHRpbmdzU2VydmljZS5zZXR0aW5ncy50ZW1wVHJhbnNhY3Rpb25QYXJhbWV0ZXJzO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIHRoaXMuc2VhcmNoUmVxdWVzdCA9IHRoaXMuX3NldHRpbmdzU2VydmljZS5zZXR0aW5ncy50cmFuc2FjdGlvblBhcmFtZXRlcnM7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9KSxcclxuICAgICAgICB0aGlzLl90cmFuc2FjdGlvbkNvbm5lY3RvclNlcnZpY2UuY29ubmVjdGlvbkluaXRpYWxpemVkLnN1YnNjcmliZSgoaW5pdGlhbGl6ZWQ6IGJvb2xlYW4pID0+IHtcclxuICAgICAgICAgIGlmIChpbml0aWFsaXplZCkge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5fc2V0dGluZ3NTZXJ2aWNlLnNldHRpbmdzLm9wdGlvbnMuc2VhcmNoT25TdGFydCkge1xyXG4gICAgICAgICAgICAgIGlmICh0aGlzLl9zZXR0aW5nc1NlcnZpY2Uuc2V0dGluZ3Mub3B0aW9ucy5zZWFyY2hPblN0YXJ0T25jZSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fc2V0dGluZ3NTZXJ2aWNlLnNldHRpbmdzLm9wdGlvbnMuc2VhcmNoT25TdGFydCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB0aGlzLnNlYXJjaFRyYW5zYWN0aW9ucygpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSksXHJcbiAgICAgICAgdGhpcy5fdHJhbnNhY3Rpb25TZXJ2aWNlLmxvZ291dC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5fcmVzZXRDYWNoZSgpO1xyXG4gICAgICAgIH0pXHJcbiAgICApXHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgc2VhcmNoVHJhbnNhY3Rpb25zKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgdGhpcy5zZWFyY2hSZXF1ZXN0LnRyYW5zYWN0aW9uS2luZCA9IHRoaXMudHJhbnNhY3Rpb25UeXBlO1xyXG5cclxuICAgIGlmICh0aGlzLmlzTmV3R2VuZXJhbFNlYXJjaCgpKSB7XHJcbiAgICAgIHRoaXMuX2N1cnJlbnRQYWdlID0gMTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBsb3dlckJvdW5kOiBudW1iZXIgPSAoKHRoaXMuY3VycmVudFBhZ2UgLSAxKSAqIHRoaXMudHJhbnNhY3Rpb25zUGVyUGFnZSkgKyAxO1xyXG4gICAgdGhpcy5zZWFyY2hSZXF1ZXN0LnBhZ2luZyA9IG5ldyBQYWdpbmdQYXJhbWV0ZXJzKGxvd2VyQm91bmQsIGxvd2VyQm91bmQgKyB0aGlzLnRyYW5zYWN0aW9uc1BlclBhZ2UgLSAxLCB0aGlzLnRyYW5zYWN0aW9uc1BlclBhZ2UpO1xyXG4gICAgdGhpcy5zZWFyY2hSZXF1ZXN0U2V0Lm5leHQodGhpcy5zZWFyY2hSZXF1ZXN0KTtcclxuICAgIHRoaXMuX3RyYW5zYWN0aW9uU2VydmljZS5zZWFyY2hUcmFuc2FjdGlvbnModGhpcy5zZWFyY2hSZXF1ZXN0KS50aGVuKChyZXN1bHQ6IFRyYW5zYWN0aW9uU2VhcmNoUmVzdWx0KSA9PiB7XHJcbiAgICAgIHRoaXMudHJhbnNhY3Rpb25zID0gcmVzdWx0LnRyYW5zYWN0aW9ucyA/PyBbXTtcclxuICAgICAgdGhpcy5yZXN1bHRDb3VudCA9IHJlc3VsdC5jb3VudCA/PyB1bmRlZmluZWQ7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuc2V0UHJldmlvdXNTZWFyY2hSZXF1ZXN0KCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0TGFiZWxCYXNlZE9uVHJhbnNhY3Rpb25UeXBlKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5sYWJlbEJhc2VkT25UcmFuc2FjdGlvblR5cGUuZ2V0KHRoaXMuX3RyYW5zYWN0aW9uVHlwZSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0U2VhcmNoUGxhY2Vob2xkZXJCYXNlZE9uVHJhbnNhY3Rpb25UeXBlKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5wbGFjZWhvbGRlckJhc2VkT25UcmFuc2FjdGlvblR5cGUuZ2V0KHRoaXMuX3RyYW5zYWN0aW9uVHlwZSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcmVzZXRGaWx0ZXJzKCk6IHZvaWQge1xyXG4gICAgdGhpcy5zZXRQcmV2aW91c1NlYXJjaFJlcXVlc3QoKTtcclxuXHJcbiAgICB0aGlzLl9yZXNldFJlcXVlc3QoKTtcclxuICAgIHRoaXMuc2VhcmNoUmVxdWVzdC5nZW5lcmFsID0gdGhpcy5wcmV2aW91c1NlYXJjaFJlcXVlc3QuZ2VuZXJhbDtcclxuICAgIHRoaXMuc2VhcmNoVHJhbnNhY3Rpb25zKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0UHJldmlvdXNTZWFyY2hSZXF1ZXN0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5wcmV2aW91c1NlYXJjaFJlcXVlc3QgPSB7Li4udGhpcy5zZWFyY2hSZXF1ZXN0fTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBpc05ld0dlbmVyYWxTZWFyY2goKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5wcmV2aW91c1NlYXJjaFJlcXVlc3QgJiYgdGhpcy5wcmV2aW91c1NlYXJjaFJlcXVlc3QuZ2VuZXJhbCAhPT0gdGhpcy5zZWFyY2hSZXF1ZXN0LmdlbmVyYWw7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGZ1bGxzY3JlZW4oKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5hY3RpdmVTZWFyY2hWaWV3TW9kZSA9PT0gU2VhcmNoVmlld01vZGUuRnVsbFNjcmVlbjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgY29sbGFwc2VkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuYWN0aXZlU2VhcmNoQmFyVmlld01vZGUgPT09IFNlYXJjaGJhclZpZXdNb2RlLkNvbGxhcHNlZDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyB0b2dnbGVGaWx0ZXIoKTogdm9pZCB7XHJcbiAgICB0aGlzLnNob3dGaWx0ZXJTaWRlYmFyID0gIXRoaXMuc2hvd0ZpbHRlclNpZGViYXI7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlSGlkZUZpbHRlcigpOiB2b2lkIHtcclxuICAgIHRoaXMuc2hvd0ZpbHRlclNpZGViYXIgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVSZXNldEZpbHRlcigpOiB2b2lkIHtcclxuICAgIHRoaXMucmVzZXRGaWx0ZXJzKCk7XHJcbiAgICB0aGlzLnNob3dGaWx0ZXJTaWRlYmFyID0gZmFsc2U7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5zaG93RmlsdGVyU2lkZWJhciA9IHRydWVcclxuICAgIH0sIDEwKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBwcmludFNhbGVzT3JkZXJzT3ZlcnZpZXcoKTogUHJvbWlzZTxQZGZUcmFuc2FjdGlvblNlYXJjaE92ZXJ2aWV3UmVzcG9uc2U+IHtcclxuICAgIGlmICh0aGlzLnNlYXJjaFJlcXVlc3QpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuX3RyYW5zYWN0aW9uU2VydmljZS5wcmludFNhbGVzT3JkZXJzT3ZlcnZpZXcodGhpcy5zZWFyY2hSZXF1ZXN0KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3Jlc2V0Q2FjaGUoKTogdm9pZCB7XHJcbiAgICB0aGlzLnNlYXJjaFJlcXVlc3QgPSBuZXcgVHJhbnNhY3Rpb25TZWFyY2hWaWV3UmVxdWVzdCgpO1xyXG4gICAgdGhpcy5fc2V0dGluZ3NTZXJ2aWNlLnNldHRpbmdzLnRyYW5zYWN0aW9uUGFyYW1ldGVycyA9IG5ldyBUcmFuc2FjdGlvblNlYXJjaFZpZXdSZXF1ZXN0KCk7XHJcbiAgICB0aGlzLl9zZXR0aW5nc1NlcnZpY2Uuc2V0dGluZ3MudGVtcFRyYW5zYWN0aW9uUGFyYW1ldGVycyA9IHVuZGVmaW5lZDtcclxuICAgIHRoaXMudHJhbnNhY3Rpb25zLmxlbmd0aCA9IDA7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9yZXNldFJlcXVlc3QoKTogdm9pZCB7XHJcbiAgICB0aGlzLnNlYXJjaFJlcXVlc3QgPSB0aGlzLl9zZXR0aW5nc1NlcnZpY2Uuc2V0dGluZ3MudHJhbnNhY3Rpb25QYXJhbWV0ZXJzO1xyXG4gICAgdGhpcy5fc2V0dGluZ3NTZXJ2aWNlLnNldHRpbmdzLnRlbXBUcmFuc2FjdGlvblBhcmFtZXRlcnMgPSB1bmRlZmluZWQ7XHJcbiAgfVxyXG59XHJcbiJdfQ==
169
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tc2VhcmNoLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cmFuc2FjdGlvbi9zcmMvbGliL2NvbXBvbmVudC90cmFuc2FjdGlvbi1zZWFyY2gvc2VydmljZS90cmFuc2FjdGlvbi1zZWFyY2guc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sMkRBQTJELENBQUM7QUFDMUYsT0FBTyxFQUFDLDRCQUE0QixFQUFDLE1BQU0sc0VBQXNFLENBQUM7QUFFbEgsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBQ25FLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLHdDQUF3QyxDQUFDO0FBRXpFLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBQ3hFLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHVEQUF1RCxDQUFDO0FBQ3ZGLE9BQU8sRUFBQywwQkFBMEIsRUFBQyxNQUFNLCtDQUErQyxDQUFDO0FBQ3pGLE9BQU8sRUFBQyxlQUFlLEVBQWUsTUFBTSxNQUFNLENBQUM7QUFDbkQsT0FBTyxFQUFDLDJCQUEyQixFQUFDLE1BQU0sZ0RBQWdELENBQUM7QUFLM0YsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0scUNBQXFDLENBQUM7Ozs7O0FBS3hFLE1BQU0sT0FBTyx3QkFBd0I7SUEwRG5DLFlBQ1ksbUJBQXVDLEVBQ3ZDLDRCQUF5RCxFQUN6RCxnQkFBNEM7UUFGNUMsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFvQjtRQUN2QyxpQ0FBNEIsR0FBNUIsNEJBQTRCLENBQTZCO1FBQ3pELHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBNEI7UUEzRGpELGtCQUFhLEdBQWlDLElBQUksNEJBQTRCLEVBQUUsQ0FBQztRQUNqRiwwQkFBcUIsR0FBaUMsSUFBSSw0QkFBNEIsRUFBRSxDQUFDO1FBRXpGLHlCQUFvQixHQUFtQixjQUFjLENBQUMsVUFBVSxDQUFDO1FBQ2pFLDRCQUF1QixHQUFzQixpQkFBaUIsQ0FBQyxRQUFRLENBQUM7UUFDeEUsc0JBQWlCLEdBQVksS0FBSyxDQUFDO1FBR25DLGlCQUFZLEdBQTRCLEVBQUUsQ0FBQztRQUMzQyxxQkFBZ0IsR0FBMEIsRUFBRSxDQUFDO1FBQzdDLHFCQUFnQixHQUFrRCxJQUFJLGVBQWUsQ0FBK0IsU0FBUyxDQUFDLENBQUM7UUFjL0gsZ0NBQTJCLEdBQXdCLElBQUksR0FBRyxDQUFpQjtZQUNoRixDQUFDLGVBQWUsQ0FBQyxVQUFVLEVBQUUsYUFBYSxDQUFDO1lBQzNDLENBQUMsZUFBZSxDQUFDLGFBQWEsRUFBRSxnQkFBZ0IsQ0FBQztZQUNqRCxDQUFDLGVBQWUsQ0FBQyxZQUFZLEVBQUUsZUFBZSxDQUFDO1lBQy9DLENBQUMsZUFBZSxDQUFDLGNBQWMsRUFBRSxrQkFBa0IsQ0FBQztZQUNwRCxDQUFDLGVBQWUsQ0FBQyxRQUFRLEVBQUUsWUFBWSxDQUFDO1NBQ3pDLENBQUMsQ0FBQTtRQUVLLHNDQUFpQyxHQUF3QixJQUFJLEdBQUcsQ0FBaUI7WUFDdEYsQ0FBQyxlQUFlLENBQUMsVUFBVSxFQUFFLDJCQUEyQixDQUFDO1lBQ3pELENBQUMsZUFBZSxDQUFDLGFBQWEsRUFBRSwyQkFBMkIsQ0FBQztZQUM1RCxDQUFDLGVBQWUsQ0FBQyxZQUFZLEVBQUUsMkJBQTJCLENBQUM7WUFDM0QsQ0FBQyxlQUFlLENBQUMsY0FBYyxFQUFFLDJCQUEyQixDQUFDO1lBQzdELENBQUMsZUFBZSxDQUFDLFFBQVEsRUFBRSwyQkFBMkIsQ0FBQztTQUN4RCxDQUFDLENBQUE7UUFFSyx3QkFBbUIsR0FBVyxFQUFFLENBQUM7UUFZaEMsaUJBQVksR0FBRyxDQUFDLENBQUM7UUFDakIscUJBQWdCLEdBQW9CLGVBQWUsQ0FBQyxVQUFVLENBQUM7UUFDL0QsVUFBSyxHQUFtQixFQUFFLENBQUM7UUFPakMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQ1gsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFlLEVBQUUsRUFBRTtZQUNqRSxJQUFJLE1BQU0sRUFBRTtnQkFDVixJQUFJLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMseUJBQXlCLEVBQUU7b0JBQzVELElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyx5QkFBeUIsQ0FBQztpQkFDL0U7cUJBQU07b0JBQ0wsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLHFCQUFxQixDQUFDO2lCQUMzRTthQUNGO1FBQ0gsQ0FBQyxDQUFDLEVBQ0YsSUFBSSxDQUFDLDRCQUE0QixDQUFDLHFCQUFxQixDQUFDLFNBQVMsQ0FBQyxDQUFDLFdBQW9CLEVBQUUsRUFBRTtZQUN6RixJQUFJLFdBQVcsRUFBRTtnQkFDZixJQUFJLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRTtvQkFDeEQsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsRUFBRTt3QkFDNUQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztxQkFDOUQ7b0JBQ0QsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7aUJBQzNCO2FBQ0Y7UUFDSCxDQUFDLENBQUMsRUFDRixJQUFJLENBQUMsbUJBQW1CLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDN0MsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3JCLENBQUMsQ0FBQyxDQUNMLENBQUE7SUFDSCxDQUFDO0lBekVELElBQVcsZUFBZSxDQUFDLEtBQXNCO1FBQy9DLElBQUksSUFBSSxDQUFDLGdCQUFnQixLQUFLLEtBQUssRUFBRTtZQUNuQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDckIsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1NBQzlCO1FBQ0QsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEtBQUssQ0FBQztJQUNoQyxDQUFDO0lBRUQsSUFBVyxlQUFlO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDO0lBQy9CLENBQUM7SUFxQkQsSUFBVyxXQUFXO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUMzQixDQUFDO0lBRUQsSUFBVyxXQUFXLENBQUMsS0FBYTtRQUNsQyxJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztRQUMxQixJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBcUNZLGtCQUFrQjs7WUFDN0IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQztZQUUxRCxJQUFJLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxFQUFFO2dCQUM3QixJQUFJLENBQUMsWUFBWSxHQUFHLENBQUMsQ0FBQzthQUN2QjtZQUVELE1BQU0sVUFBVSxHQUFXLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNuRixJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sR0FBRyxJQUFJLGdCQUFnQixDQUFDLFVBQVUsRUFBRSxVQUFVLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixHQUFHLENBQUMsRUFBRSxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQztZQUNsSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUMvQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQStCLEVBQUUsRUFBRTs7Z0JBQ3ZHLElBQUksQ0FBQyxZQUFZLEdBQUcsTUFBQSxNQUFNLENBQUMsWUFBWSxtQ0FBSSxFQUFFLENBQUM7Z0JBQzlDLElBQUksQ0FBQyxXQUFXLEdBQUcsTUFBQSxNQUFNLENBQUMsS0FBSyxtQ0FBSSxTQUFTLENBQUM7WUFDL0MsQ0FBQyxDQUFDLENBQUM7WUFDSCxJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztRQUNsQyxDQUFDO0tBQUE7SUFFTSw4QkFBOEI7UUFDbkMsT0FBTyxJQUFJLENBQUMsMkJBQTJCLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7SUFFTSwwQ0FBMEM7UUFDL0MsT0FBTyxJQUFJLENBQUMsaUNBQWlDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQzNFLENBQUM7SUFFTSxZQUFZO1FBQ2pCLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO1FBRWhDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsT0FBTyxDQUFDO1FBQ2hFLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFTSx3QkFBd0I7UUFDN0IsSUFBSSxDQUFDLHFCQUFxQixxQkFBTyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVNLGtCQUFrQjtRQUN2QixPQUFPLElBQUksQ0FBQyxxQkFBcUIsSUFBSSxJQUFJLENBQUMscUJBQXFCLENBQUMsT0FBTyxLQUFLLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDO0lBQ3pHLENBQUM7SUFFRCxJQUFXLFVBQVU7UUFDbkIsT0FBTyxJQUFJLENBQUMsb0JBQW9CLEtBQUssY0FBYyxDQUFDLFVBQVUsQ0FBQztJQUNqRSxDQUFDO0lBRUQsSUFBVyxTQUFTO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLHVCQUF1QixLQUFLLGlCQUFpQixDQUFDLFNBQVMsQ0FBQztJQUN0RSxDQUFDO0lBRU0sWUFBWTtRQUNqQixJQUFJLENBQUMsaUJBQWlCLEdBQUcsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUM7SUFDbkQsQ0FBQztJQUVNLGdCQUFnQjtRQUNyQixJQUFJLENBQUMsaUJBQWlCLEdBQUcsS0FBSyxDQUFDO0lBQ2pDLENBQUM7SUFFTSxpQkFBaUI7UUFDdEIsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxLQUFLLENBQUM7UUFDL0IsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUE7UUFDL0IsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ1QsQ0FBQztJQUVNLHdCQUF3QjtRQUM3QixJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDdEIsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUMsd0JBQXdCLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1NBQzlFO0lBQ0gsQ0FBQztJQUVPLFdBQVc7UUFDakIsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLDRCQUE0QixFQUFFLENBQUM7UUFDeEQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxxQkFBcUIsR0FBRyxJQUFJLDRCQUE0QixFQUFFLENBQUM7UUFDMUYsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyx5QkFBeUIsR0FBRyxTQUFTLENBQUM7UUFDckUsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFTyxhQUFhO1FBQ25CLCtEQUErRDtRQUMvRCxJQUFJLENBQUMsYUFBYSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxtQkFBbUIsRUFBRSxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUNwSCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLHlCQUF5QixHQUFHLFNBQVMsQ0FBQztJQUN2RSxDQUFDOzs7O1lBOUtGLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQjs7O1lBYk8sa0JBQWtCO1lBSWxCLDJCQUEyQjtZQUYzQiwwQkFBMEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uS2luZH0gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL2VudW0vdHJhbnNhY3Rpb24ta2luZC5lbnVtJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvblNlYXJjaFZpZXdSZXF1ZXN0fSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvdHJhbnNhY3Rpb24tc2VhcmNoLXZpZXctcmVxdWVzdCc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25TZWFyY2hWaWV3fSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvdHJhbnNhY3Rpb24tc2VhcmNoLXZpZXcuYm8nO1xyXG5pbXBvcnQge1NlYXJjaFZpZXdNb2RlfSBmcm9tICcuLi8uLi8uLi9lbnVtL3NlYXJjaC12aWV3LW1vZGUuZW51bSc7XHJcbmltcG9ydCB7U2VhcmNoYmFyVmlld01vZGV9IGZyb20gJy4uLy4uLy4uL2VudW0vc2VhcmNoYmFyLXZpZXctbW9kZS5lbnVtJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvblNlYXJjaFJlc3VsdH0gZnJvbSAnLi4vLi4vLi4vbW9kZWwvdHJhbnNhY3Rpb24tc2VhcmNoLXJlc3VsdCc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25TZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQge1BhZ2luZ1BhcmFtZXRlcnN9IGZyb20gJ0Bjb2xpam5pdC9pb25lY29ubmVjdG9yL2J1aWxkL21vZGVsL3BhZ2luZy1wYXJhbWV0ZXJzJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvblNldHRpbmdzU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi1zZXR0aW5ncy5zZXJ2aWNlJztcclxuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIFN1YnNjcmlwdGlvbn0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25Db25uZWN0b3JTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLWNvbm5lY3Rvci5zZXJ2aWNlJztcclxuaW1wb3J0IHtcclxuICBQZGZUcmFuc2FjdGlvblNlYXJjaE92ZXJ2aWV3UmVzcG9uc2VcclxufSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3BkZi10cmFuc2FjdGlvbi1zZWFyY2gtb3ZlcnZpZXctcmVzcG9uc2VcIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkxpbmVJbmZvfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3RyYW5zYWN0aW9uLWxpbmUtaW5mby5ib1wiO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uU2V0dGluZ3N9IGZyb20gXCIuLi8uLi8uLi9tb2RlbC90cmFuc2FjdGlvbi1zZXR0aW5nc1wiO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46IFwicm9vdFwiXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUcmFuc2FjdGlvblNlYXJjaFNlcnZpY2Uge1xyXG5cclxuICBwdWJsaWMgc2VhcmNoUmVxdWVzdDogVHJhbnNhY3Rpb25TZWFyY2hWaWV3UmVxdWVzdCA9IG5ldyBUcmFuc2FjdGlvblNlYXJjaFZpZXdSZXF1ZXN0KCk7XHJcbiAgcHVibGljIHByZXZpb3VzU2VhcmNoUmVxdWVzdDogVHJhbnNhY3Rpb25TZWFyY2hWaWV3UmVxdWVzdCA9IG5ldyBUcmFuc2FjdGlvblNlYXJjaFZpZXdSZXF1ZXN0KCk7XHJcblxyXG4gIHB1YmxpYyBhY3RpdmVTZWFyY2hWaWV3TW9kZTogU2VhcmNoVmlld01vZGUgPSBTZWFyY2hWaWV3TW9kZS5GdWxsU2NyZWVuO1xyXG4gIHB1YmxpYyBhY3RpdmVTZWFyY2hCYXJWaWV3TW9kZTogU2VhcmNoYmFyVmlld01vZGUgPSBTZWFyY2hiYXJWaWV3TW9kZS5FeHBhbmRlZDtcclxuICBwdWJsaWMgc2hvd0ZpbHRlclNpZGViYXI6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgc2VhcmNoUGxhY2Vob2xkZXI6IHN0cmluZztcclxuXHJcbiAgcHVibGljIHRyYW5zYWN0aW9uczogVHJhbnNhY3Rpb25TZWFyY2hWaWV3W10gPSBbXTtcclxuICBwdWJsaWMgdHJhbnNhY3Rpb25MaW5lczogVHJhbnNhY3Rpb25MaW5lSW5mb1tdID0gW107XHJcbiAgcHVibGljIHNlYXJjaFJlcXVlc3RTZXQ6IEJlaGF2aW9yU3ViamVjdDxUcmFuc2FjdGlvblNlYXJjaFZpZXdSZXF1ZXN0PiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VHJhbnNhY3Rpb25TZWFyY2hWaWV3UmVxdWVzdD4odW5kZWZpbmVkKTtcclxuXHJcbiAgcHVibGljIHNldCB0cmFuc2FjdGlvblR5cGUodmFsdWU6IFRyYW5zYWN0aW9uS2luZCkge1xyXG4gICAgaWYgKHRoaXMuX3RyYW5zYWN0aW9uVHlwZSAhPT0gdmFsdWUpIHtcclxuICAgICAgdGhpcy5fcmVzZXRSZXF1ZXN0KCk7XHJcbiAgICAgIHRoaXMudHJhbnNhY3Rpb25zLmxlbmd0aCA9IDA7XHJcbiAgICB9XHJcbiAgICB0aGlzLl90cmFuc2FjdGlvblR5cGUgPSB2YWx1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgdHJhbnNhY3Rpb25UeXBlKCk6IFRyYW5zYWN0aW9uS2luZCB7XHJcbiAgICByZXR1cm4gdGhpcy5fdHJhbnNhY3Rpb25UeXBlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGxhYmVsQmFzZWRPblRyYW5zYWN0aW9uVHlwZTogTWFwPHN0cmluZywgc3RyaW5nPiA9IG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KFtcclxuICAgIFtUcmFuc2FjdGlvbktpbmQuU2FsZXNPcmRlciwgXCJTQUxFU09SREVSU1wiXSxcclxuICAgIFtUcmFuc2FjdGlvbktpbmQuUHVyY2hhc2VPcmRlciwgXCJQVVJDSEFTRU9SREVSU1wiXSxcclxuICAgIFtUcmFuc2FjdGlvbktpbmQuU2VydmljZU9yZGVyLCBcIlNFUlZJQ0VPUkRFUlNcIl0sXHJcbiAgICBbVHJhbnNhY3Rpb25LaW5kLlNhbGVzUXVvdGF0aW9uLCBcIlNBTEVTX1FVT1RBVElPTlNcIl0sXHJcbiAgICBbVHJhbnNhY3Rpb25LaW5kLkNhc2hEZXNrLCBcIlBPU19PUkRFUlNcIl1cclxuICBdKVxyXG5cclxuICBwdWJsaWMgcGxhY2Vob2xkZXJCYXNlZE9uVHJhbnNhY3Rpb25UeXBlOiBNYXA8c3RyaW5nLCBzdHJpbmc+ID0gbmV3IE1hcDxzdHJpbmcsIHN0cmluZz4oW1xyXG4gICAgW1RyYW5zYWN0aW9uS2luZC5TYWxlc09yZGVyLCBcIlNFQVJDSF9OVU1CRVJfT1JfQ1VTVE9NRVJcIl0sXHJcbiAgICBbVHJhbnNhY3Rpb25LaW5kLlB1cmNoYXNlT3JkZXIsIFwiU0VBUkNIX05VTUJFUl9PUl9TVVBQTElFUlwiXSxcclxuICAgIFtUcmFuc2FjdGlvbktpbmQuU2VydmljZU9yZGVyLCBcIlNFQVJDSF9OVU1CRVJfT1JfQ1VTVE9NRVJcIl0sXHJcbiAgICBbVHJhbnNhY3Rpb25LaW5kLlNhbGVzUXVvdGF0aW9uLCBcIlNFQVJDSF9OVU1CRVJfT1JfQ1VTVE9NRVJcIl0sXHJcbiAgICBbVHJhbnNhY3Rpb25LaW5kLkNhc2hEZXNrLCBcIlNFQVJDSF9OVU1CRVJfT1JfQ1VTVE9NRVJcIl1cclxuICBdKVxyXG5cclxuICBwdWJsaWMgdHJhbnNhY3Rpb25zUGVyUGFnZTogbnVtYmVyID0gMjA7XHJcbiAgcHVibGljIHJlc3VsdENvdW50OiBudW1iZXI7XHJcblxyXG4gIHB1YmxpYyBnZXQgY3VycmVudFBhZ2UoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLl9jdXJyZW50UGFnZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXQgY3VycmVudFBhZ2UodmFsdWU6IG51bWJlcikge1xyXG4gICAgdGhpcy5fY3VycmVudFBhZ2UgPSB2YWx1ZTtcclxuICAgIHRoaXMuc2VhcmNoVHJhbnNhY3Rpb25zKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9jdXJyZW50UGFnZSA9IDE7XHJcbiAgcHJpdmF0ZSBfdHJhbnNhY3Rpb25UeXBlOiBUcmFuc2FjdGlvbktpbmQgPSBUcmFuc2FjdGlvbktpbmQuU2FsZXNPcmRlcjtcclxuICBwcml2YXRlIF9zdWJzOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgICAgcHJpdmF0ZSBfdHJhbnNhY3Rpb25TZXJ2aWNlOiBUcmFuc2FjdGlvblNlcnZpY2UsXHJcbiAgICAgIHByaXZhdGUgX3RyYW5zYWN0aW9uQ29ubmVjdG9yU2VydmljZTogVHJhbnNhY3Rpb25Db25uZWN0b3JTZXJ2aWNlLFxyXG4gICAgICBwcml2YXRlIF9zZXR0aW5nc1NlcnZpY2U6IFRyYW5zYWN0aW9uU2V0dGluZ3NTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICB0aGlzLl9zdWJzLnB1c2goXHJcbiAgICAgICAgdGhpcy5fc2V0dGluZ3NTZXJ2aWNlLnNldHRpbmdzTG9hZGVkLnN1YnNjcmliZSgobG9hZGVkOiBib29sZWFuKSA9PiB7XHJcbiAgICAgICAgICBpZiAobG9hZGVkKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLl9zZXR0aW5nc1NlcnZpY2Uuc2V0dGluZ3MudGVtcFRyYW5zYWN0aW9uUGFyYW1ldGVycykge1xyXG4gICAgICAgICAgICAgIHRoaXMuc2VhcmNoUmVxdWVzdCA9IHRoaXMuX3NldHRpbmdzU2VydmljZS5zZXR0aW5ncy50ZW1wVHJhbnNhY3Rpb25QYXJhbWV0ZXJzO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIHRoaXMuc2VhcmNoUmVxdWVzdCA9IHRoaXMuX3NldHRpbmdzU2VydmljZS5zZXR0aW5ncy50cmFuc2FjdGlvblBhcmFtZXRlcnM7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9KSxcclxuICAgICAgICB0aGlzLl90cmFuc2FjdGlvbkNvbm5lY3RvclNlcnZpY2UuY29ubmVjdGlvbkluaXRpYWxpemVkLnN1YnNjcmliZSgoaW5pdGlhbGl6ZWQ6IGJvb2xlYW4pID0+IHtcclxuICAgICAgICAgIGlmIChpbml0aWFsaXplZCkge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5fc2V0dGluZ3NTZXJ2aWNlLnNldHRpbmdzLm9wdGlvbnMuc2VhcmNoT25TdGFydCkge1xyXG4gICAgICAgICAgICAgIGlmICh0aGlzLl9zZXR0aW5nc1NlcnZpY2Uuc2V0dGluZ3Mub3B0aW9ucy5zZWFyY2hPblN0YXJ0T25jZSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fc2V0dGluZ3NTZXJ2aWNlLnNldHRpbmdzLm9wdGlvbnMuc2VhcmNoT25TdGFydCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB0aGlzLnNlYXJjaFRyYW5zYWN0aW9ucygpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSksXHJcbiAgICAgICAgdGhpcy5fdHJhbnNhY3Rpb25TZXJ2aWNlLmxvZ291dC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5fcmVzZXRDYWNoZSgpO1xyXG4gICAgICAgIH0pXHJcbiAgICApXHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgc2VhcmNoVHJhbnNhY3Rpb25zKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgdGhpcy5zZWFyY2hSZXF1ZXN0LnRyYW5zYWN0aW9uS2luZCA9IHRoaXMudHJhbnNhY3Rpb25UeXBlO1xyXG5cclxuICAgIGlmICh0aGlzLmlzTmV3R2VuZXJhbFNlYXJjaCgpKSB7XHJcbiAgICAgIHRoaXMuX2N1cnJlbnRQYWdlID0gMTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBsb3dlckJvdW5kOiBudW1iZXIgPSAoKHRoaXMuY3VycmVudFBhZ2UgLSAxKSAqIHRoaXMudHJhbnNhY3Rpb25zUGVyUGFnZSkgKyAxO1xyXG4gICAgdGhpcy5zZWFyY2hSZXF1ZXN0LnBhZ2luZyA9IG5ldyBQYWdpbmdQYXJhbWV0ZXJzKGxvd2VyQm91bmQsIGxvd2VyQm91bmQgKyB0aGlzLnRyYW5zYWN0aW9uc1BlclBhZ2UgLSAxLCB0aGlzLnRyYW5zYWN0aW9uc1BlclBhZ2UpO1xyXG4gICAgdGhpcy5zZWFyY2hSZXF1ZXN0U2V0Lm5leHQodGhpcy5zZWFyY2hSZXF1ZXN0KTtcclxuICAgIHRoaXMuX3RyYW5zYWN0aW9uU2VydmljZS5zZWFyY2hUcmFuc2FjdGlvbnModGhpcy5zZWFyY2hSZXF1ZXN0KS50aGVuKChyZXN1bHQ6IFRyYW5zYWN0aW9uU2VhcmNoUmVzdWx0KSA9PiB7XHJcbiAgICAgIHRoaXMudHJhbnNhY3Rpb25zID0gcmVzdWx0LnRyYW5zYWN0aW9ucyA/PyBbXTtcclxuICAgICAgdGhpcy5yZXN1bHRDb3VudCA9IHJlc3VsdC5jb3VudCA/PyB1bmRlZmluZWQ7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuc2V0UHJldmlvdXNTZWFyY2hSZXF1ZXN0KCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0TGFiZWxCYXNlZE9uVHJhbnNhY3Rpb25UeXBlKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5sYWJlbEJhc2VkT25UcmFuc2FjdGlvblR5cGUuZ2V0KHRoaXMuX3RyYW5zYWN0aW9uVHlwZSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0U2VhcmNoUGxhY2Vob2xkZXJCYXNlZE9uVHJhbnNhY3Rpb25UeXBlKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5wbGFjZWhvbGRlckJhc2VkT25UcmFuc2FjdGlvblR5cGUuZ2V0KHRoaXMuX3RyYW5zYWN0aW9uVHlwZSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcmVzZXRGaWx0ZXJzKCk6IHZvaWQge1xyXG4gICAgdGhpcy5zZXRQcmV2aW91c1NlYXJjaFJlcXVlc3QoKTtcclxuXHJcbiAgICB0aGlzLl9yZXNldFJlcXVlc3QoKTtcclxuICAgIHRoaXMuc2VhcmNoUmVxdWVzdC5nZW5lcmFsID0gdGhpcy5wcmV2aW91c1NlYXJjaFJlcXVlc3QuZ2VuZXJhbDtcclxuICAgIHRoaXMuc2VhcmNoVHJhbnNhY3Rpb25zKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0UHJldmlvdXNTZWFyY2hSZXF1ZXN0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5wcmV2aW91c1NlYXJjaFJlcXVlc3QgPSB7Li4udGhpcy5zZWFyY2hSZXF1ZXN0fTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBpc05ld0dlbmVyYWxTZWFyY2goKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5wcmV2aW91c1NlYXJjaFJlcXVlc3QgJiYgdGhpcy5wcmV2aW91c1NlYXJjaFJlcXVlc3QuZ2VuZXJhbCAhPT0gdGhpcy5zZWFyY2hSZXF1ZXN0LmdlbmVyYWw7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGZ1bGxzY3JlZW4oKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5hY3RpdmVTZWFyY2hWaWV3TW9kZSA9PT0gU2VhcmNoVmlld01vZGUuRnVsbFNjcmVlbjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgY29sbGFwc2VkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuYWN0aXZlU2VhcmNoQmFyVmlld01vZGUgPT09IFNlYXJjaGJhclZpZXdNb2RlLkNvbGxhcHNlZDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyB0b2dnbGVGaWx0ZXIoKTogdm9pZCB7XHJcbiAgICB0aGlzLnNob3dGaWx0ZXJTaWRlYmFyID0gIXRoaXMuc2hvd0ZpbHRlclNpZGViYXI7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlSGlkZUZpbHRlcigpOiB2b2lkIHtcclxuICAgIHRoaXMuc2hvd0ZpbHRlclNpZGViYXIgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVSZXNldEZpbHRlcigpOiB2b2lkIHtcclxuICAgIHRoaXMucmVzZXRGaWx0ZXJzKCk7XHJcbiAgICB0aGlzLnNob3dGaWx0ZXJTaWRlYmFyID0gZmFsc2U7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5zaG93RmlsdGVyU2lkZWJhciA9IHRydWVcclxuICAgIH0sIDEwKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBwcmludFNhbGVzT3JkZXJzT3ZlcnZpZXcoKTogUHJvbWlzZTxQZGZUcmFuc2FjdGlvblNlYXJjaE92ZXJ2aWV3UmVzcG9uc2U+IHtcclxuICAgIGlmICh0aGlzLnNlYXJjaFJlcXVlc3QpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuX3RyYW5zYWN0aW9uU2VydmljZS5wcmludFNhbGVzT3JkZXJzT3ZlcnZpZXcodGhpcy5zZWFyY2hSZXF1ZXN0KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3Jlc2V0Q2FjaGUoKTogdm9pZCB7XHJcbiAgICB0aGlzLnNlYXJjaFJlcXVlc3QgPSBuZXcgVHJhbnNhY3Rpb25TZWFyY2hWaWV3UmVxdWVzdCgpO1xyXG4gICAgdGhpcy5fc2V0dGluZ3NTZXJ2aWNlLnNldHRpbmdzLnRyYW5zYWN0aW9uUGFyYW1ldGVycyA9IG5ldyBUcmFuc2FjdGlvblNlYXJjaFZpZXdSZXF1ZXN0KCk7XHJcbiAgICB0aGlzLl9zZXR0aW5nc1NlcnZpY2Uuc2V0dGluZ3MudGVtcFRyYW5zYWN0aW9uUGFyYW1ldGVycyA9IHVuZGVmaW5lZDtcclxuICAgIHRoaXMudHJhbnNhY3Rpb25zLmxlbmd0aCA9IDA7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9yZXNldFJlcXVlc3QoKTogdm9pZCB7XHJcbiAgICAvL09iamVjdC5hc3NpZ24obmV3IFRyYW5zYWN0aW9uU2V0dGluZ3MoKSwgdGhpcy5zZXR0aW5ncywgb2JqKTtcclxuICAgIHRoaXMuc2VhcmNoUmVxdWVzdCA9IE9iamVjdC5hc3NpZ24obmV3IFRyYW5zYWN0aW9uU2V0dGluZ3MoKSwgdGhpcy5fc2V0dGluZ3NTZXJ2aWNlLnNldHRpbmdzLnRyYW5zYWN0aW9uUGFyYW1ldGVycyk7XHJcbiAgICB0aGlzLl9zZXR0aW5nc1NlcnZpY2Uuc2V0dGluZ3MudGVtcFRyYW5zYWN0aW9uUGFyYW1ldGVycyA9IHVuZGVmaW5lZDtcclxuICB9XHJcbn1cclxuIl19
@@ -26,4 +26,4 @@ TransactionSearchSalesLineSelectTileModule.decorators = [
26
26
  ]
27
27
  },] }
28
28
  ];
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tc2VhcmNoLXNhbGVzLWxpbmUtc2VsZWN0LXRpbGUubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHJhbnNhY3Rpb24vc3JjL2xpYi9jb21wb25lbnQvdHJhbnNhY3Rpb24tc2VhcmNoL3RyYW5zYWN0aW9uLXNlYXJjaC10aWxlL3RyYW5zYWN0aW9uLXNlYXJjaC1zYWxlcy1saW5lLXNlbGVjdC10aWxlL3RyYW5zYWN0aW9uLXNlYXJjaC1zYWxlcy1saW5lLXNlbGVjdC10aWxlLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBQyw2Q0FBNkMsRUFBQyxNQUFNLHVEQUF1RCxDQUFDO0FBQ3BILE9BQU8sRUFDTCxxQ0FBcUMsRUFDdEMsTUFBTSxtRkFBbUYsQ0FBQztBQUMzRixPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUNyRSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFFN0MsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQ3JELE9BQU8sRUFBQyw4QkFBOEIsRUFBQyxNQUFNLHVFQUF1RSxDQUFDO0FBRXJILE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLHNEQUFzRCxDQUFDO0FBa0IvRixNQUFNLE9BQU8sMENBQTBDOzs7WUFoQnRELFFBQVEsU0FBQztnQkFDUixPQUFPLEVBQUU7b0JBQ1AscUNBQXFDO29CQUNyQyx1QkFBdUI7b0JBQ3ZCLFlBQVk7b0JBQ1osVUFBVTtvQkFDViw4QkFBOEI7b0JBQzlCLHlCQUF5QjtpQkFDMUI7Z0JBQ0QsWUFBWSxFQUFFO29CQUNaLDZDQUE2QztpQkFDOUM7Z0JBQ0QsT0FBTyxFQUFFO29CQUNQLDZDQUE2QztpQkFDOUM7YUFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uU2VhcmNoU2FsZXNMaW5lU2VsZWN0VGlsZUNvbXBvbmVudH0gZnJvbSAnLi90cmFuc2FjdGlvbi1zZWFyY2gtc2FsZXMtbGluZS1zZWxlY3QtdGlsZS5jb21wb25lbnQnO1xyXG5pbXBvcnQge1xyXG4gIFRyYW5zYWN0aW9uU2VhcmNoU2FsZXNPcmRlclRpbGVNb2R1bGVcclxufSBmcm9tIFwiLi4vdHJhbnNhY3Rpb24tc2VhcmNoLXNhbGVzLW9yZGVyLXRpbGUvdHJhbnNhY3Rpb24tc2VhcmNoLXNhbGVzLW9yZGVyLXRpbGUubW9kdWxlXCI7XHJcbmltcG9ydCB7T2JzZXJ2ZVZpc2liaWxpdHlNb2R1bGV9IGZyb20gXCJAY29saWpuaXQvY29yZWNvbXBvbmVudHNfdjEyXCI7XHJcbmltcG9ydCB7Q29tbW9uTW9kdWxlfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XHJcbmltcG9ydCB7SW1hZ2VEaXNwbGF5TW9kdWxlfSBmcm9tIFwiQGNvbGlqbml0L3NoYXJlZGNvbXBvbmVudHMvbGliL2NvbXBvbmVudHMvaW1hZ2UtZGlzcGxheS9pbWFnZS1kaXNwbGF5Lm1vZHVsZVwiO1xyXG5pbXBvcnQge0NvcmVNb2R1bGV9IGZyb20gXCIuLi8uLi8uLi9jb3JlL2NvcmUubW9kdWxlXCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25MaW5lU3RhdHVzYmFyTW9kdWxlfSBmcm9tIFwiLi4vLi4vLi4vdHJhbnNhY3Rpb24tbGluZS1zdGF0dXNiYXIvdHJhbnNhY3Rpb24tbGluZS1zdGF0dXNiYXIubW9kdWxlXCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25MaW5lVGlsZUNvbXBvbmVudH0gZnJvbSBcIi4vdHJhbnNhY3Rpb24tbGluZS10aWxlL3RyYW5zYWN0aW9uLWxpbmUtdGlsZS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkxpbmVUaWxlTW9kdWxlfSBmcm9tIFwiLi90cmFuc2FjdGlvbi1saW5lLXRpbGUvdHJhbnNhY3Rpb24tbGluZS10aWxlLm1vZHVsZVwiO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBpbXBvcnRzOiBbXHJcbiAgICBUcmFuc2FjdGlvblNlYXJjaFNhbGVzT3JkZXJUaWxlTW9kdWxlLFxyXG4gICAgT2JzZXJ2ZVZpc2liaWxpdHlNb2R1bGUsXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBDb3JlTW9kdWxlLFxyXG4gICAgVHJhbnNhY3Rpb25MaW5lU3RhdHVzYmFyTW9kdWxlLFxyXG4gICAgVHJhbnNhY3Rpb25MaW5lVGlsZU1vZHVsZSxcclxuICBdLFxyXG4gIGRlY2xhcmF0aW9uczogW1xyXG4gICAgVHJhbnNhY3Rpb25TZWFyY2hTYWxlc0xpbmVTZWxlY3RUaWxlQ29tcG9uZW50XHJcbiAgXSxcclxuICBleHBvcnRzOiBbXHJcbiAgICBUcmFuc2FjdGlvblNlYXJjaFNhbGVzTGluZVNlbGVjdFRpbGVDb21wb25lbnRcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUcmFuc2FjdGlvblNlYXJjaFNhbGVzTGluZVNlbGVjdFRpbGVNb2R1bGUge1xyXG59XHJcbiJdfQ==
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tc2VhcmNoLXNhbGVzLWxpbmUtc2VsZWN0LXRpbGUubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHJhbnNhY3Rpb24vc3JjL2xpYi9jb21wb25lbnQvdHJhbnNhY3Rpb24tc2VhcmNoL3RyYW5zYWN0aW9uLXNlYXJjaC10aWxlL3RyYW5zYWN0aW9uLXNlYXJjaC1zYWxlcy1saW5lLXNlbGVjdC10aWxlL3RyYW5zYWN0aW9uLXNlYXJjaC1zYWxlcy1saW5lLXNlbGVjdC10aWxlLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBQyw2Q0FBNkMsRUFBQyxNQUFNLHVEQUF1RCxDQUFDO0FBQ3BILE9BQU8sRUFDTCxxQ0FBcUMsRUFDdEMsTUFBTSxtRkFBbUYsQ0FBQztBQUMzRixPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUNyRSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQ3JELE9BQU8sRUFBQyw4QkFBOEIsRUFBQyxNQUFNLHVFQUF1RSxDQUFDO0FBQ3JILE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLHNEQUFzRCxDQUFDO0FBa0IvRixNQUFNLE9BQU8sMENBQTBDOzs7WUFoQnRELFFBQVEsU0FBQztnQkFDUixPQUFPLEVBQUU7b0JBQ1AscUNBQXFDO29CQUNyQyx1QkFBdUI7b0JBQ3ZCLFlBQVk7b0JBQ1osVUFBVTtvQkFDViw4QkFBOEI7b0JBQzlCLHlCQUF5QjtpQkFDMUI7Z0JBQ0QsWUFBWSxFQUFFO29CQUNaLDZDQUE2QztpQkFDOUM7Z0JBQ0QsT0FBTyxFQUFFO29CQUNQLDZDQUE2QztpQkFDOUM7YUFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uU2VhcmNoU2FsZXNMaW5lU2VsZWN0VGlsZUNvbXBvbmVudH0gZnJvbSAnLi90cmFuc2FjdGlvbi1zZWFyY2gtc2FsZXMtbGluZS1zZWxlY3QtdGlsZS5jb21wb25lbnQnO1xyXG5pbXBvcnQge1xyXG4gIFRyYW5zYWN0aW9uU2VhcmNoU2FsZXNPcmRlclRpbGVNb2R1bGVcclxufSBmcm9tIFwiLi4vdHJhbnNhY3Rpb24tc2VhcmNoLXNhbGVzLW9yZGVyLXRpbGUvdHJhbnNhY3Rpb24tc2VhcmNoLXNhbGVzLW9yZGVyLXRpbGUubW9kdWxlXCI7XHJcbmltcG9ydCB7T2JzZXJ2ZVZpc2liaWxpdHlNb2R1bGV9IGZyb20gXCJAY29saWpuaXQvY29yZWNvbXBvbmVudHNfdjEyXCI7XHJcbmltcG9ydCB7Q29tbW9uTW9kdWxlfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XHJcbmltcG9ydCB7Q29yZU1vZHVsZX0gZnJvbSBcIi4uLy4uLy4uL2NvcmUvY29yZS5tb2R1bGVcIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkxpbmVTdGF0dXNiYXJNb2R1bGV9IGZyb20gXCIuLi8uLi8uLi90cmFuc2FjdGlvbi1saW5lLXN0YXR1c2Jhci90cmFuc2FjdGlvbi1saW5lLXN0YXR1c2Jhci5tb2R1bGVcIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkxpbmVUaWxlTW9kdWxlfSBmcm9tIFwiLi90cmFuc2FjdGlvbi1saW5lLXRpbGUvdHJhbnNhY3Rpb24tbGluZS10aWxlLm1vZHVsZVwiO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBpbXBvcnRzOiBbXHJcbiAgICBUcmFuc2FjdGlvblNlYXJjaFNhbGVzT3JkZXJUaWxlTW9kdWxlLFxyXG4gICAgT2JzZXJ2ZVZpc2liaWxpdHlNb2R1bGUsXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBDb3JlTW9kdWxlLFxyXG4gICAgVHJhbnNhY3Rpb25MaW5lU3RhdHVzYmFyTW9kdWxlLFxyXG4gICAgVHJhbnNhY3Rpb25MaW5lVGlsZU1vZHVsZSxcclxuICBdLFxyXG4gIGRlY2xhcmF0aW9uczogW1xyXG4gICAgVHJhbnNhY3Rpb25TZWFyY2hTYWxlc0xpbmVTZWxlY3RUaWxlQ29tcG9uZW50XHJcbiAgXSxcclxuICBleHBvcnRzOiBbXHJcbiAgICBUcmFuc2FjdGlvblNlYXJjaFNhbGVzTGluZVNlbGVjdFRpbGVDb21wb25lbnRcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUcmFuc2FjdGlvblNlYXJjaFNhbGVzTGluZVNlbGVjdFRpbGVNb2R1bGUge1xyXG59XHJcbiJdfQ==
@@ -35,6 +35,7 @@ export class TransactionServiceOverviewComponent extends TransactionBaseComponen
35
35
  this.priorityDomainColl = [];
36
36
  this.causeCodeColl = [];
37
37
  this.entryTypeColl = [];
38
+ this.serviceMessageModel = '';
38
39
  this.documents = [];
39
40
  this.activities = [];
40
41
  this.showActivityHeader = false;
@@ -47,7 +48,7 @@ export class TransactionServiceOverviewComponent extends TransactionBaseComponen
47
48
  this.priorityDomainColl = yield this.transactionService.getPriority("NL");
48
49
  this.causeCodeColl = yield this.transactionService.getCauseCodes();
49
50
  this.entryTypeColl = yield this.transactionService.getEntryTypes("NL");
50
- this.serviceMessageModel = this.transactionServiceInfo.reportMessage;
51
+ this.serviceMessageModel = this.transactionServiceInfo.reportMessage ? this.transactionServiceInfo.reportMessage : '';
51
52
  this.priorityModel = this.priorityDomainColl.find(p => p.codeAsNumber === this.transactionServiceInfo.priority);
52
53
  this.causeCodeModel = this.causeCodeColl.find(c => c.causeCode === this.transactionServiceInfo.causeCode);
53
54
  this.entryTypeModel = this.entryTypeColl.find(e => e.code === this.transactionServiceInfo.entryType);
@@ -117,7 +118,11 @@ export class TransactionServiceOverviewComponent extends TransactionBaseComponen
117
118
  serviceReportChange() {
118
119
  return __awaiter(this, void 0, void 0, function* () {
119
120
  if (this.transactionServiceInfo.reportMessage !== this.serviceMessageModel) {
120
- this.transactionServiceInfo.reportMessage = this.serviceMessageModel;
121
+ if (!(this.serviceMessageModel === null) && !(this.serviceMessageModel === undefined))
122
+ this.transactionServiceInfo.reportMessage = this.serviceMessageModel;
123
+ else {
124
+ this.transactionServiceInfo.reportMessage = '';
125
+ }
121
126
  }
122
127
  yield this.transactionService.updateServiceHeaderReportMessage(this.transactionServiceInfo.reportMessage, true);
123
128
  });
@@ -217,4 +222,4 @@ TransactionServiceOverviewComponent.propDecorators = {
217
222
  openActivities: [{ type: ViewChild, args: [ComponentActivityListComponent,] }],
218
223
  showClass: [{ type: HostBinding, args: ["class.co-transaction-service-overview",] }]
219
224
  };
220
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tc2VydmljZS1vdmVydmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cmFuc2FjdGlvbi9zcmMvbGliL2NvbXBvbmVudC90cmFuc2FjdGlvbi1zZXJ2aWNlLW92ZXJ2aWV3L3RyYW5zYWN0aW9uLXNlcnZpY2Utb3ZlcnZpZXcuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0wsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxXQUFXLEVBRUgsU0FBUyxFQUNqQixpQkFBaUIsRUFDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFHakYsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBRTFDLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUMzRCxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQztBQUNoRixPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUNsRSxPQUFPLEVBQUMscUNBQXFDLEVBQUMsTUFBTSx3REFBd0QsQ0FBQztBQUM3RyxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQztBQUNoRixPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUNuRSxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUVyRSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0saURBQWlELENBQUM7QUFDM0UsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGdEQUFnRCxDQUFDO0FBQ3pFLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxtREFBbUQsQ0FBQztBQUNoRixPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sbURBQW1E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bnQiOlsiaW1wb3J0IHtcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDb21wb25lbnQsXHJcbiAgSG9zdEJpbmRpbmcsXHJcbiAgT25EZXN0cm95LFxyXG4gIE9uSW5pdCwgVmlld0NoaWxkLFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25CYXNlQ29tcG9uZW50fSBmcm9tICcuLi9jb3JlL2Jhc2UvdHJhbnNhY3Rpb24tYmFzZS5jb21wb25lbnQnO1xyXG5pbXBvcnQge0NvRG9tYWluVmFsdWV9IGZyb20gXCJAY29saWpuaXQvbWFpbmFwaS9idWlsZC9tb2RlbC9jby1kb21haW4tdmFsdWUuYm9cIjtcclxuaW1wb3J0IHtDYXVzZUNvZGV9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvY2F1c2UtY29kZS5ib1wiO1xyXG5pbXBvcnQge0ljb259IGZyb20gXCIuLi8uLi9lbnVtL2ljb24uZW51bVwiO1xyXG5pbXBvcnQge0NvRG9jdW1lbnR9IGZyb20gXCJAY29saWpuaXQvbWFpbmFwaS9idWlsZC9tb2RlbC9jby1kb2N1bWVudFwiO1xyXG5pbXBvcnQge0RpYWxvZ1NlcnZpY2V9IGZyb20gXCIuLi8uLi9zZXJ2aWNlL2RpYWxvZy5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25FdmVudFNlcnZpY2V9IGZyb20gXCIuLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLWV2ZW50LnNlcnZpY2VcIjtcclxuaW1wb3J0IHtJY29uQ2FjaGVTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vc2VydmljZS9pY29uLWNhY2hlLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvblNjcmVlbkNvbmZpZ3VyYXRpb25TZXJ2aWNlfSBmcm9tIFwiLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi1zY3JlZW4tY29uZmlndXJhdGlvbi5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25JbWFnZVNlcnZpY2V9IGZyb20gXCIuLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLWltYWdlLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtEaWN0aW9uYXJ5U2VydmljZX0gZnJvbSBcIi4uLy4uL3NlcnZpY2UvZGljdGlvbmFyeS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25TZXJ2aWNlfSBmcm9tIFwiLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7VmFsaWRhdGlvblJlc3VsdH0gZnJvbSBcIkBjb2xpam5pdC9pb25lY29ubmVjdG9yL2J1aWxkL21vZGVsL3ZhbGlkYXRpb24tcmVzdWx0XCI7XHJcbmltcG9ydCB7QXJyYXlVdGlsc30gZnJvbSBcIkBjb2xpam5pdC9pb25lY29ubmVjdG9yL2J1aWxkL3V0aWxzL2FycmF5LXV0aWxzXCI7XHJcbmltcG9ydCB7U29ydFV0aWxzfSBmcm9tIFwiQGNvbGlqbml0L2lvbmVjb25uZWN0b3IvYnVpbGQvdXRpbHMvc29ydC11dGlsc1wiO1xyXG5pbXBvcnQge1NvcnREaXJlY3Rpb259IGZyb20gXCJAY29saWpuaXQvaW9uZWNvbm5lY3Rvci9idWlsZC9lbnVtL3NvcnQtZGlyZWN0aW9uXCI7XHJcbmltcG9ydCB7U29ydFR5cGV9IGZyb20gXCJAY29saWpuaXQvaW9uZWNvbm5lY3Rvci9idWlsZC9lbnVtL3NvcnQtdHlwZS5lbnVtXCI7XHJcbmltcG9ydCB7QWN0aXZpdHl9IGZyb20gXCJAY29saWpuaXQvbWFpbmFwaS9idWlsZC9tb2RlbC9hY3Rpdml0eS5ib1wiO1xyXG5pbXBvcnQge1RhYmxlTmFtZX0gZnJvbSBcIkBjb2xpam5pdC9tYWluYXBpL2J1aWxkL2VudW0vdGFibGUtbmFtZS5lbnVtXCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25SZWxhdGlvblNlcnZpY2V9IGZyb20gXCIuLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLXJlbGF0aW9uLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtXb3JrZmxvd0NhdGVnb3J5VHlwZX0gZnJvbSBcIkBjb2xpam5pdC9tYWluYXBpL2J1aWxkL2VudW0vd29ya2Zsb3ctY2F0ZWdvcnkuZW51bVwiO1xyXG5pbXBvcnQge0NvbXBvbmVudEFjdGl2aXR5TGlzdENvbXBvbmVudH0gZnJvbSBcIkBjb2xpam5pdC9zaGFyZWRjb21wb25lbnRzXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJjby10cmFuc2FjdGlvbi1zZXJ2aWNlLW92ZXJ2aWV3XCIsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxkaXYgY2xhc3M9XCJzZXJ2aWNlLW92ZXJ2aWV3LXdyYXBwZXJcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cIm1lc3NhZ2UtYW5kLXRhc2std3JhcHBlclwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzZXJ2aWNlLW1lc3NhZ2UtYW5kLWltYWdlLXdyYXBwZXJcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZXJ2aWNlLW1lc3NhZ2Utd3JhcHBlclwiPlxyXG4gICAgICAgICAgICA8Y28taW5wdXQtdGV4dGFyZWEgW2xhYmVsXT1cIidTRVJWSUNFX1JFUE9SVCd8IGxvY2FsaXplXCIgWyhtb2RlbCldPVwic2VydmljZU1lc3NhZ2VNb2RlbFwiIChibHVyKT1cInNlcnZpY2VSZXBvcnRDaGFuZ2UoKVwiPlxyXG4gICAgICAgICAgICA8L2NvLWlucHV0LXRleHRhcmVhPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VydmljZS1tZXNzYWdlLWV4dHJhLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICA8Y28tbGlzdC1vZi12YWx1ZXMgW2xhYmVsXT1cIidQUklPUklUWSd8IGxvY2FsaXplXCIgZGlzcGxheUZpZWxkPVwiZGVzY3JpcHRpb25cIiBbbW9kZWxdPVwicHJpb3JpdHlNb2RlbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjb2xsZWN0aW9uXT1cInByaW9yaXR5RG9tYWluQ29sbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb2RlbENoYW5nZSk9XCJzZXRQcmlvcml0eSgkZXZlbnQpXCI+PC9jby1saXN0LW9mLXZhbHVlcz5cclxuICAgICAgICAgICAgICA8Y28tbGlzdC1vZi12YWx1ZXMgW2xhYmVsXT1cIidDQVVTRV9DT0RFJyB8IGxvY2FsaXplXCIgZGlzcGxheUZpZWxkPVwiZGVzY3JpcHRpb25cIiBbbW9kZWxdPVwiY2F1c2VDb2RlTW9kZWxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY29sbGVjdGlvbl09XCJjYXVzZUNvZGVDb2xsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vZGVsQ2hhbmdlKT1cInNldENhdXNlQ29kZSgkZXZlbnQpXCI+PC9jby1saXN0LW9mLXZhbHVlcz5cclxuICAgICAgICAgICAgICA8Y28tbGlzdC1vZi12YWx1ZXMgW2xhYmVsXT1cIidFTlRSWV9UWVBFJyB8IGxvY2FsaXplXCIgZGlzcGxheUZpZWxkPVwiZGVzY3JpcHRpb25cIiBbbW9kZWxdPVwiZW50cnlUeXBlTW9kZWxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY29sbGVjdGlvbl09XCJlbnRyeVR5cGVDb2xsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vZGVsQ2hhbmdlKT1cInNldEVudHJ5VHlwZSgkZXZlbnQpXCI+PC9jby1saXN0LW9mLXZhbHVlcz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxjby1maWxlcy11cGxvYWQgKGRvY3VtZW50Q2hhbmdlRXZlbnQpPVwidXBzZXJ0RG9jdW1lbnQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChkb2N1bWVudERlbGV0ZWQpPVwiZGVsZXRlRG9jdW1lbnQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCInQUREX0lNQUdFUycgfCBsb2NhbGl6ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkb2N1bWVudHNdPVwiZG9jdW1lbnRzXCI+PC9jby1maWxlcy11cGxvYWQ+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGNvLWFjdGl2aXR5LWxpc3QgW2FjdGl2aXRpZXNdPVwiYWN0aXZpdGllc1wiPjwvY28tYWN0aXZpdHktbGlzdD5cclxuICAgICAgICA8Y28tY29tcG9uZW50LWFjdGl2aXR5LWxpc3QgI29wZW5BY3Rpdml0aWVzIFtzaG93QWN0aXZpdHlIZWFkZXJdPVwic2hvd0FjdGl2aXR5SGVhZGVyXCIgW3RhYmxlXT1cIlRhYmxlTmFtZS5UcmFuc2FjdGlvbnNcIiBba2V5XT1cInRyYW5zYWN0aW9uSW5mby5pZC50b1N0cmluZygpXCIgKHJlZnJlc2hSZXF1ZXN0ZWQpPVwiZmluaXNoZWRBY3Rpdml0aWVzUmVmcmVzaFJlcXVlc3RlZCgpXCI+XHJcbiAgICAgICAgPC9jby1jb21wb25lbnQtYWN0aXZpdHktbGlzdD5cclxuICAgICAgICA8Y28tdGFzay1jcmVhdG9yIFt0YWJsZV09XCJUYWJsZU5hbWUuVHJhbnNhY3Rpb25zXCIgW3JlbWFya0FuZFdvcmtLZXldPVwidHJhbnNhY3Rpb25JbmZvLmlkLnRvU3RyaW5nKClcIiBbdGFza0tleV09XCJ0cmFuc2FjdGlvbkluZm8udHJhbnNhY3Rpb25Oci50b1N0cmluZygpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIFthdXRob3JdPVwidHJhbnNhY3Rpb25TZXJ2aWNlLmxvZ2dlZEluVXNlclwiIFticmFuY2hOb109XCJ0cmFuc2FjdGlvbkluZm8uYnJhbmNoLnJlbGF0aW9uTnIudG9TdHJpbmcoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbd29ya2Zsb3dDYXRlZ29yeVR5cGVdPVwiV29ya2Zsb3dDYXRlZ29yeVR5cGUuU2VydmljZU9yZGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIChhY3Rpdml0eUNyZWF0ZWQpPVwiZnVsbEFjdGl2aXRpZXNSZWZyZXNoUmVxdWVzdGVkKClcIj48L2NvLXRhc2stY3JlYXRvcj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICBgLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcclxufSlcclxuZXhwb3J0IGNsYXNzIFRyYW5zYWN0aW9uU2VydmljZU92ZXJ2aWV3Q29tcG9uZW50IGV4dGVuZHMgVHJhbnNhY3Rpb25CYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIHB1YmxpYyByZWFkb25seSBUYWJsZU5hbWUgPSBUYWJsZU5hbWU7XHJcbiAgcHVibGljIHJlYWRvbmx5IFdvcmtmbG93Q2F0ZWdvcnlUeXBlID0gV29ya2Zsb3dDYXRlZ29yeVR5cGU7XHJcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IEljb24gPSBJY29uO1xyXG5cclxuICBAVmlld0NoaWxkKENvbXBvbmVudEFjdGl2aXR5TGlzdENvbXBvbmVudClcclxuICBwdWJsaWMgb3BlbkFjdGl2aXRpZXM6IENvbXBvbmVudEFjdGl2aXR5TGlzdENvbXBvbmVudDtcclxuICBASG9zdEJpbmRpbmcoXCJjbGFzcy5jby10cmFuc2FjdGlvbi1zZXJ2aWNlLW92ZXJ2aWV3XCIpXHJcbiAgcHVibGljIHNob3dDbGFzcygpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHByaW9yaXR5RG9tYWluQ29sbDogQ29Eb21haW5WYWx1ZVtdID0gW107XHJcbiAgcHVibGljIGNhdXNlQ29kZUNvbGw6IENhdXNlQ29kZVtdID0gW107XHJcbiAgcHVibGljIGVudHJ5VHlwZUNvbGw6IENvRG9tYWluVmFsdWVbXSA9IFtdO1xyXG5cclxuICBwdWJsaWMgc2VydmljZU1lc3NhZ2VNb2RlbDogc3RyaW5nO1xyXG4gIHB1YmxpYyBwcmlvcml0eU1vZGVsOiBDb0RvbWFpblZhbHVlO1xyXG4gIHB1YmxpYyBjYXVzZUNvZGVNb2RlbDogQ2F1c2VDb2RlO1xyXG4gIHB1YmxpYyBlbnRyeVR5cGVNb2RlbDogQ29Eb21haW5WYWx1ZTtcclxuXHJcbiAgcHVibGljIGRvY3VtZW50czogQ29Eb2N1bWVudFtdID0gW107XHJcbiAgcHVibGljIGFjdGl2aXRpZXM6IEFjdGl2aXR5W10gPSBbXTtcclxuXHJcbiAgcHVibGljIHNob3dBY3Rpdml0eUhlYWRlcjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBjb25zdHJ1Y3RvciAocHVibGljIHRyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlOiBUcmFuc2FjdGlvbkV2ZW50U2VydmljZSxcclxuICAgICAgICAgICAgICBwdWJsaWMgaWNvbkNhY2hlU2VydmljZTogSWNvbkNhY2hlU2VydmljZSxcclxuICAgICAgICAgICAgICBwdWJsaWMgc2NyZWVuQ29uZmlnU2VydmljZTogVHJhbnNhY3Rpb25TY3JlZW5Db25maWd1cmF0aW9uU2VydmljZSxcclxuICAgICAgICAgICAgICBwcm90ZWN0ZWQgaW1hZ2VTZXJ2aWNlOiBUcmFuc2FjdGlvbkltYWdlU2VydmljZSxcclxuICAgICAgICAgICAgICBwcm90ZWN0ZWQgZGljdGlvbmFyeVNlcnZpY2U6IERpY3Rpb25hcnlTZXJ2aWNlLFxyXG4gICAgICAgICAgICAgIHB1YmxpYyB0cmFuc2FjdGlvblNlcnZpY2U6IFRyYW5zYWN0aW9uU2VydmljZSxcclxuICAgICAgICAgICAgICBwcm90ZWN0ZWQgcmVsYXRpb25TZXJ2aWNlOiBUcmFuc2FjdGlvblJlbGF0aW9uU2VydmljZSxcclxuICAgICAgICAgICAgICBwcm90ZWN0ZWQgY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgICAgICAgICAgIHByaXZhdGUgX2RpYWxvZ1NlcnZpY2U6IERpYWxvZ1NlcnZpY2UpIHtcclxuICAgIHN1cGVyKHRyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlLCBpY29uQ2FjaGVTZXJ2aWNlLCBzY3JlZW5Db25maWdTZXJ2aWNlLCBpbWFnZVNlcnZpY2UsIGRpY3Rpb25hcnlTZXJ2aWNlLCB0cmFuc2FjdGlvblNlcnZpY2UsIGNoYW5nZURldGVjdG9yKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBuZ09uSW5pdCgpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIHRoaXMucHJpb3JpdHlEb21haW5Db2xsID0gYXdhaXQgdGhpcy50cmFuc2FjdGlvblNlcnZpY2UuZ2V0UHJpb3JpdHkoXCJOTFwiKTtcclxuICAgIHRoaXMuY2F1c2VDb2RlQ29sbCA9IGF3YWl0IHRoaXMudHJhbnNhY3Rpb25TZXJ2aWNlLmdldENhdXNlQ29kZXMoKTtcclxuICAgIHRoaXMuZW50cnlUeXBlQ29sbCA9IGF3YWl0IHRoaXMudHJhbnNhY3Rpb25TZXJ2aWNlLmdldEVudHJ5VHlwZXMoXCJOTFwiKTtcclxuICAgIHRoaXMuc2VydmljZU1lc3NhZ2VNb2RlbCA9IHRoaXMudHJhbnNhY3Rpb25TZXJ2aWNlSW5mby5yZXBvcnRNZXNzYWdlO1xyXG4gICAgdGhpcy5wcmlvcml0eU1vZGVsID0gdGhpcy5wcmlvcml0eURvbWFpbkNvbGwuZmluZChwID0+IHAuY29kZUFzTnVtYmVyID09PSB0aGlzLnRyYW5zYWN0aW9uU2VydmljZUluZm8ucHJpb3JpdHkpO1xyXG4gICAgdGhpcy5jYXVzZUNvZGVNb2RlbCA9IHRoaXMuY2F1c2VDb2RlQ29sbC5maW5kKGMgPT4gYy5jYXVzZUNvZGUgPT09IHRoaXMudHJhbnNhY3Rpb25TZXJ2aWNlSW5mby5jYXVzZUNvZGUpO1xyXG4gICAgdGhpcy5lbnRyeVR5cGVNb2RlbCA9IHRoaXMuZW50cnlUeXBlQ29sbC5maW5kKGUgPT4gZS5jb2RlID09PSB0aGlzLnRyYW5zYWN0aW9uU2VydmljZUluZm8uZW50cnlUeXBlKTtcclxuICAgIHRoaXMudHJhbnNhY3Rpb25TZXJ2aWNlLmxvYWREb2N1bWVudHNPZlRyYW5zYWN0aW9uKHRoaXMudHJhbnNhY3Rpb25JbmZvLmlkLnRvU3RyaW5nKCkpLnRoZW4oKGZldGNoZWREb2N1bWVudHM6IENvRG9jdW1lbnRbXSkgPT4ge1xyXG4gICAgICB0aGlzLmRvY3VtZW50cyA9IGZldGNoZWREb2N1bWVudHM7XHJcbiAgICAgIHRoaXMuZG9jdW1lbnRzLmZvckVhY2goYXN5bmMgZCA9PlxyXG4gICAgICAgIGQuZG9jdW1lbnRCb2R5ID0gYXdhaXQgdGhpcy50cmFuc2FjdGlvblNlcnZpY2UubG9hZERvY3VtZW50Q29udGVudChkLmRvY3VtZW50SWQsIGZhbHNlKVxyXG4gICAgICApO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLmdldEFjdGl2aXRpZXMoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICB9XHJcblxyXG4gIC8qcHVibGljIHNldCB0cmFuc2FjdGlvblNlcnZpY2VJbmZvKHZhbHVlOiBUcmFuc2FjdGlvblNlcnZpY2VJbmZvKSB7XHJcbiAgICBzdXBlci50cmFuc2FjdGlvblNlcnZpY2VJbmZvID0gdmFsdWU7XHJcbiAgICBpZiAodGhpcy5wcmlvcml0eURvbWFpbkNvbGwubGVuZ3RoID4gMCkge1xyXG4gICAgICB0aGlzLnByaW9yaXR5TW9kZWwgPSB0aGlzLnByaW9yaXR5RG9tYWluQ29sbC5maW5kKHAgPT4gcC5jb2RlQXNOdW1iZXIgPT09IHZhbHVlLnByaW9yaXR5KTtcclxuICAgIH1cclxuICB9Ki9cclxuXHJcbiAgcHVibGljIGFzeW5jIGdldEFjdGl2aXRpZXMoKTpQcm9taXNlPHZvaWQ+IHtcclxuICAgIHRoaXMuYWN0aXZpdGllcyA9IGF3YWl0IHRoaXMudHJhbnNhY3Rpb25TZXJ2aWNlLmdldEhpc3RvcmljQWN0aXZpdGllcyh0aGlzLnRyYW5zYWN0aW9uSW5mby5pZCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZmluaXNoZWRBY3Rpdml0aWVzUmVmcmVzaFJlcXVlc3RlZCgpIDogdm9pZCB7XHJcbiAgICB0aGlzLmdldEFjdGl2aXRpZXMoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBmdWxsQWN0aXZpdGllc1JlZnJlc2hSZXF1ZXN0ZWQoKSA6IHZvaWQge1xyXG4gICAgdGhpcy5nZXRBY3Rpdml0aWVzKCk7XHJcbiAgICB0aGlzLm9wZW5BY3Rpdml0aWVzLmdldEFjdGl2aXRpZXMoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBzZXRQcmlvcml0eShwcmlvcml0eTogQ29Eb21haW5WYWx1ZSkgOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGlmIChwcmlvcml0eSkge1xyXG4gICAgICB0aGlzLnByaW9yaXR5TW9kZWwgPSB0aGlzLnByaW9yaXR5RG9tYWluQ29sbC5maW5kKHAgPT4gcC5jb2RlID09PSBwcmlvcml0eS5jb2RlKTtcclxuICAgICAgdGhpcy50cmFuc2FjdGlvblNlcnZpY2VJbmZvLnByaW9yaXR5ID0gdGhpcy5wcmlvcml0eU1vZGVsLmNvZGVBc051bWJlcjtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMucHJpb3JpdHlNb2RlbCA9IG51bGw7XHJcbiAgICB9XHJcbiAgICBhd2FpdCB0aGlzLnRyYW5zYWN0aW9uU2VydmljZS51cGRhdGVTZXJ2aWNlSGVhZGVyUHJpb3JpdHkodGhpcy50cmFuc2FjdGlvblNlcnZpY2VJbmZvLnByaW9yaXR5LCB0cnVlKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBzZXRDYXVzZUNvZGUoY2F1c2VDb2RlOiBDYXVzZUNvZGUpIDogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBpZiAoY2F1c2VDb2RlKSB7XHJcbiAgICAgIHRoaXMuY2F1c2VDb2RlTW9kZWwgPSB0aGlzLmNhdXNlQ29kZUNvbGwuZmluZChjID0+IGMuY2F1c2VDb2RlID09PSBjYXVzZUNvZGUuY2F1c2VDb2RlKTtcclxuICAgICAgdGhpcy50cmFuc2FjdGlvblNlcnZpY2VJbmZvLmNhdXNlQ29kZSA9IHRoaXMuY2F1c2VDb2RlTW9kZWwuY2F1c2VDb2RlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5jYXVzZUNvZGVNb2RlbCA9IG51bGw7XHJcbiAgICB9XHJcbiAgICBhd2FpdCB0aGlzLnRyYW5zYWN0aW9uU2VydmljZS51cGRhdGVTZXJ2aWNlSGVhZGVyQ2F1c2VDb2RlKHRoaXMudHJhbnNhY3Rpb25TZXJ2aWNlSW5mby5jYXVzZUNvZGUsIHRydWUpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIHNldEVudHJ5VHlwZShlbnRyeVR5cGU6IENvRG9tYWluVmFsdWUpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGlmIChlbnRyeVR5cGUpIHtcclxuICAgICAgdGhpcy5lbnRyeVR5cGVNb2RlbCA9IHRoaXMuZW50cnlUeXBlQ29sbC5maW5kKGUgPT4gZS5jb2RlID09PSBlbnRyeVR5cGUuY29kZSk7XHJcbiAgICAgIHRoaXMudHJhbnNhY3Rpb25TZXJ2aWNlSW5mby5lbnRyeVR5cGUgPSB0aGlzLmVudHJ5VHlwZU1vZGVsLmNvZGU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmVudHJ5VHlwZU1vZGVsID0gbnVsbDtcclxuICAgIH1cclxuICAgIGF3YWl0IHRoaXMudHJhbnNhY3Rpb25TZXJ2aWNlLnVwZGF0ZVNlcnZpY2VIZWFkZXJFbnRyeVR5cGUodGhpcy50cmFuc2FjdGlvblNlcnZpY2VJbmZvLmVudHJ5VHlwZSwgdHJ1ZSk7XHJcbiAgfVxyXG4gIHB1YmxpYyBhc3luYyBzZXJ2aWNlUmVwb3J0Q2hhbmdlKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgaWYgKHRoaXMudHJhbnNhY3Rpb25TZXJ2aWNlSW5mby5yZXBvcnRNZXNzYWdlICE9PSB0aGlzLnNlcnZpY2VNZXNzYWdlTW9kZWwpIHtcclxuICAgICAgdGhpcy50cmFuc2FjdGlvblNlcnZpY2VJbmZvLnJlcG9ydE1lc3NhZ2UgPSB0aGlzLnNlcnZpY2VNZXNzYWdlTW9kZWw7XHJcbiAgICB9XHJcbiAgICBhd2FpdCB0aGlzLnRyYW5zYWN0aW9uU2VydmljZS51cGRhdGVTZXJ2aWNlSGVhZGVyUmVwb3J0TWVzc2FnZSh0aGlzLnRyYW5zYWN0aW9uU2VydmljZUluZm8ucmVwb3J0TWVzc2FnZSwgdHJ1ZSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgdXBzZXJ0RG9jdW1lbnQoZG9jOiBDb0RvY3VtZW50KTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBjb25zdCByZXNwb25zZTogQ29Eb2N1bWVudCA9IGF3YWl0IHRoaXMudHJhbnNhY3Rpb25TZXJ2aWNlLm1lcmdlRG9jdW1lbnRPblRyYW5zYWN0aW9uKHRoaXMudHJhbnNhY3Rpb25JbmZvLmlkLnRvU3RyaW5nKCksIGRvYyk7XHJcbiAgICBpZiAocmVzcG9uc2UpIHtcclxuICAgICAgdGhpcy5wdXREb2N1bWVudEluTGlzdChkb2MpO1xyXG4gICAgICBhd2FpdCB0aGlzLl9kaWFsb2dTZXJ2aWNlLnNob3dUb2FzdChcIkRBVEFfU0FWRURcIiwgdHJ1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgZGVsZXRlRG9jdW1lbnQoZG9jOiBDb0RvY3VtZW50KTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBjb25zdCByZXNwb25zZTogVmFsaWRhdGlvblJlc3VsdCA9IGF3YWl0IHRoaXMudHJhbnNhY3Rpb25TZXJ2aWNlLmRlbGV0ZURvY3VtZW50KGRvYy5kb2N1bWVudElkKTtcclxuICAgIGlmIChyZXNwb25zZSAmJiByZXNwb25zZS5zdWNjZXNzKSB7XHJcbiAgICAgIHRoaXMucmVtb3ZlRG9jdW1lbnRGcm9tTGlzdChkb2MpO1xyXG4gICAgICBhd2FpdCB0aGlzLl9kaWFsb2dTZXJ2aWNlLnNob3dUb2FzdChcIkRBVEFfU0FWRURcIiwgdHJ1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHB1YmxpYyBwdXREb2N1bWVudEluTGlzdChkb2M6IENvRG9jdW1lbnQpOiB2b2lkIHtcclxuICAgIGxldCBmb3VuZERvY3VtZW50OiBDb0RvY3VtZW50ID0gdGhpcy5kb2N1bWVudHMuZmluZChkb2N1bWVudCA9PiBkb2N1bWVudC5kb2N1bWVudElkID09PSBkb2MuZG9jdW1lbnRJZCk7XHJcbiAgICBpZiAoZm91bmREb2N1bWVudCkge1xyXG4gICAgICBBcnJheVV0aWxzLlJlcGxhY2VFbGVtZW50KGRvYywgZm91bmREb2N1bWVudCwgdGhpcy5kb2N1bWVudHMpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5kb2N1bWVudHMucHVzaChkb2MpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zb3J0RG9jdW1lbnRMaXN0KCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcmVtb3ZlRG9jdW1lbnRGcm9tTGlzdChkb2M6IENvRG9jdW1lbnQpOiB2b2lkIHtcclxuICAgIEFycmF5VXRpbHMuUmVtb3ZlRWxlbWVudChkb2MsIHRoaXMuZG9jdW1lbnRzKTtcclxuICAgIHRoaXMuc29ydERvY3VtZW50TGlzdCgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNvcnREb2N1bWVudExpc3QoKTogdm9pZCB7XHJcbiAgICBTb3J0VXRpbHMuU29ydE9iamVjdEFycmF5KHRoaXMuZG9jdW1lbnRzLCBbe1xyXG4gICAgICBwcm9wZXJ0eTogXCJkb2N1bWVudElkXCIsXHJcbiAgICAgIGRpcmVjdGlvbjogU29ydERpcmVjdGlvbi5Bc2NlbmRpbmcsXHJcbiAgICAgIHR5cGU6IFNvcnRUeXBlLk51bWJlclxyXG4gICAgfV0pO1xyXG4gIH1cclxufVxyXG4iXX0=
225
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tc2VydmljZS1vdmVydmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cmFuc2FjdGlvbi9zcmMvbGliL2NvbXBvbmVudC90cmFuc2FjdGlvbi1zZXJ2aWNlLW92ZXJ2aWV3L3RyYW5zYWN0aW9uLXNlcnZpY2Utb3ZlcnZpZXcuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0wsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxXQUFXLEVBRUgsU0FBUyxFQUNqQixpQkFBaUIsRUFDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFHakYsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBRTFDLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUMzRCxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQztBQUNoRixPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUNsRSxPQUFPLEVBQUMscUNBQXFDLEVBQUMsTUFBTSx3REFBd0QsQ0FBQztBQUM3RyxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQztBQUNoRixPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUNuRSxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUVyRSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0saURBQWlELENBQUM7QUFDM0UsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGdEQUFnRCxDQUFDO0FBQ3pFLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxtREFBbUQsQ0FBQztBQUNoRixPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sbURBQW1E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Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBaUNUO2dCQUNELGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2FBQ3RDOzs7WUF0RE8sdUJBQXVCO1lBQ3ZCLGdCQUFnQjtZQUNoQixxQ0FBcUM7WUFDckMsdUJBQXVCO1lBQ3ZCLGlCQUFpQjtZQUNqQixrQkFBa0I7WUFRbEIsMEJBQTBCO1lBMUJoQyxpQkFBaUI7WUFZWCxhQUFhOzs7NkJBNkRsQixTQUFTLFNBQUMsOEJBQThCO3dCQUV4QyxXQUFXLFNBQUMsdUNBQXVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDb21wb25lbnQsXHJcbiAgSG9zdEJpbmRpbmcsXHJcbiAgT25EZXN0cm95LFxyXG4gIE9uSW5pdCwgVmlld0NoaWxkLFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25CYXNlQ29tcG9uZW50fSBmcm9tICcuLi9jb3JlL2Jhc2UvdHJhbnNhY3Rpb24tYmFzZS5jb21wb25lbnQnO1xyXG5pbXBvcnQge0NvRG9tYWluVmFsdWV9IGZyb20gXCJAY29saWpuaXQvbWFpbmFwaS9idWlsZC9tb2RlbC9jby1kb21haW4tdmFsdWUuYm9cIjtcclxuaW1wb3J0IHtDYXVzZUNvZGV9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvY2F1c2UtY29kZS5ib1wiO1xyXG5pbXBvcnQge0ljb259IGZyb20gXCIuLi8uLi9lbnVtL2ljb24uZW51bVwiO1xyXG5pbXBvcnQge0NvRG9jdW1lbnR9IGZyb20gXCJAY29saWpuaXQvbWFpbmFwaS9idWlsZC9tb2RlbC9jby1kb2N1bWVudFwiO1xyXG5pbXBvcnQge0RpYWxvZ1NlcnZpY2V9IGZyb20gXCIuLi8uLi9zZXJ2aWNlL2RpYWxvZy5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25FdmVudFNlcnZpY2V9IGZyb20gXCIuLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLWV2ZW50LnNlcnZpY2VcIjtcclxuaW1wb3J0IHtJY29uQ2FjaGVTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vc2VydmljZS9pY29uLWNhY2hlLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvblNjcmVlbkNvbmZpZ3VyYXRpb25TZXJ2aWNlfSBmcm9tIFwiLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi1zY3JlZW4tY29uZmlndXJhdGlvbi5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25JbWFnZVNlcnZpY2V9IGZyb20gXCIuLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLWltYWdlLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtEaWN0aW9uYXJ5U2VydmljZX0gZnJvbSBcIi4uLy4uL3NlcnZpY2UvZGljdGlvbmFyeS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25TZXJ2aWNlfSBmcm9tIFwiLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7VmFsaWRhdGlvblJlc3VsdH0gZnJvbSBcIkBjb2xpam5pdC9pb25lY29ubmVjdG9yL2J1aWxkL21vZGVsL3ZhbGlkYXRpb24tcmVzdWx0XCI7XHJcbmltcG9ydCB7QXJyYXlVdGlsc30gZnJvbSBcIkBjb2xpam5pdC9pb25lY29ubmVjdG9yL2J1aWxkL3V0aWxzL2FycmF5LXV0aWxzXCI7XHJcbmltcG9ydCB7U29ydFV0aWxzfSBmcm9tIFwiQGNvbGlqbml0L2lvbmVjb25uZWN0b3IvYnVpbGQvdXRpbHMvc29ydC11dGlsc1wiO1xyXG5pbXBvcnQge1NvcnREaXJlY3Rpb259IGZyb20gXCJAY29saWpuaXQvaW9uZWNvbm5lY3Rvci9idWlsZC9lbnVtL3NvcnQtZGlyZWN0aW9uXCI7XHJcbmltcG9ydCB7U29ydFR5cGV9IGZyb20gXCJAY29saWpuaXQvaW9uZWNvbm5lY3Rvci9idWlsZC9lbnVtL3NvcnQtdHlwZS5lbnVtXCI7XHJcbmltcG9ydCB7QWN0aXZpdHl9IGZyb20gXCJAY29saWpuaXQvbWFpbmFwaS9idWlsZC9tb2RlbC9hY3Rpdml0eS5ib1wiO1xyXG5pbXBvcnQge1RhYmxlTmFtZX0gZnJvbSBcIkBjb2xpam5pdC9tYWluYXBpL2J1aWxkL2VudW0vdGFibGUtbmFtZS5lbnVtXCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25SZWxhdGlvblNlcnZpY2V9IGZyb20gXCIuLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLXJlbGF0aW9uLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtXb3JrZmxvd0NhdGVnb3J5VHlwZX0gZnJvbSBcIkBjb2xpam5pdC9tYWluYXBpL2J1aWxkL2VudW0vd29ya2Zsb3ctY2F0ZWdvcnkuZW51bVwiO1xyXG5pbXBvcnQge0NvbXBvbmVudEFjdGl2aXR5TGlzdENvbXBvbmVudH0gZnJvbSBcIkBjb2xpam5pdC9zaGFyZWRjb21wb25lbnRzXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJjby10cmFuc2FjdGlvbi1zZXJ2aWNlLW92ZXJ2aWV3XCIsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxkaXYgY2xhc3M9XCJzZXJ2aWNlLW92ZXJ2aWV3LXdyYXBwZXJcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cIm1lc3NhZ2UtYW5kLXRhc2std3JhcHBlclwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzZXJ2aWNlLW1lc3NhZ2UtYW5kLWltYWdlLXdyYXBwZXJcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZXJ2aWNlLW1lc3NhZ2Utd3JhcHBlclwiPlxyXG4gICAgICAgICAgICA8Y28taW5wdXQtdGV4dGFyZWEgW2xhYmVsXT1cIidTRVJWSUNFX1JFUE9SVCd8IGxvY2FsaXplXCIgWyhtb2RlbCldPVwic2VydmljZU1lc3NhZ2VNb2RlbFwiIChibHVyKT1cInNlcnZpY2VSZXBvcnRDaGFuZ2UoKVwiPlxyXG4gICAgICAgICAgICA8L2NvLWlucHV0LXRleHRhcmVhPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VydmljZS1tZXNzYWdlLWV4dHJhLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICA8Y28tbGlzdC1vZi12YWx1ZXMgW2xhYmVsXT1cIidQUklPUklUWSd8IGxvY2FsaXplXCIgZGlzcGxheUZpZWxkPVwiZGVzY3JpcHRpb25cIiBbbW9kZWxdPVwicHJpb3JpdHlNb2RlbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjb2xsZWN0aW9uXT1cInByaW9yaXR5RG9tYWluQ29sbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb2RlbENoYW5nZSk9XCJzZXRQcmlvcml0eSgkZXZlbnQpXCI+PC9jby1saXN0LW9mLXZhbHVlcz5cclxuICAgICAgICAgICAgICA8Y28tbGlzdC1vZi12YWx1ZXMgW2xhYmVsXT1cIidDQVVTRV9DT0RFJyB8IGxvY2FsaXplXCIgZGlzcGxheUZpZWxkPVwiZGVzY3JpcHRpb25cIiBbbW9kZWxdPVwiY2F1c2VDb2RlTW9kZWxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY29sbGVjdGlvbl09XCJjYXVzZUNvZGVDb2xsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vZGVsQ2hhbmdlKT1cInNldENhdXNlQ29kZSgkZXZlbnQpXCI+PC9jby1saXN0LW9mLXZhbHVlcz5cclxuICAgICAgICAgICAgICA8Y28tbGlzdC1vZi12YWx1ZXMgW2xhYmVsXT1cIidFTlRSWV9UWVBFJyB8IGxvY2FsaXplXCIgZGlzcGxheUZpZWxkPVwiZGVzY3JpcHRpb25cIiBbbW9kZWxdPVwiZW50cnlUeXBlTW9kZWxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY29sbGVjdGlvbl09XCJlbnRyeVR5cGVDb2xsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vZGVsQ2hhbmdlKT1cInNldEVudHJ5VHlwZSgkZXZlbnQpXCI+PC9jby1saXN0LW9mLXZhbHVlcz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxjby1maWxlcy11cGxvYWQgKGRvY3VtZW50Q2hhbmdlRXZlbnQpPVwidXBzZXJ0RG9jdW1lbnQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChkb2N1bWVudERlbGV0ZWQpPVwiZGVsZXRlRG9jdW1lbnQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCInQUREX0lNQUdFUycgfCBsb2NhbGl6ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkb2N1bWVudHNdPVwiZG9jdW1lbnRzXCI+PC9jby1maWxlcy11cGxvYWQ+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGNvLWFjdGl2aXR5LWxpc3QgW2FjdGl2aXRpZXNdPVwiYWN0aXZpdGllc1wiPjwvY28tYWN0aXZpdHktbGlzdD5cclxuICAgICAgICA8Y28tY29tcG9uZW50LWFjdGl2aXR5LWxpc3QgI29wZW5BY3Rpdml0aWVzIFtzaG93QWN0aXZpdHlIZWFkZXJdPVwic2hvd0FjdGl2aXR5SGVhZGVyXCIgW3RhYmxlXT1cIlRhYmxlTmFtZS5UcmFuc2FjdGlvbnNcIiBba2V5XT1cInRyYW5zYWN0aW9uSW5mby5pZC50b1N0cmluZygpXCIgKHJlZnJlc2hSZXF1ZXN0ZWQpPVwiZmluaXNoZWRBY3Rpdml0aWVzUmVmcmVzaFJlcXVlc3RlZCgpXCI+XHJcbiAgICAgICAgPC9jby1jb21wb25lbnQtYWN0aXZpdHktbGlzdD5cclxuICAgICAgICA8Y28tdGFzay1jcmVhdG9yIFt0YWJsZV09XCJUYWJsZU5hbWUuVHJhbnNhY3Rpb25zXCIgW3JlbWFya0FuZFdvcmtLZXldPVwidHJhbnNhY3Rpb25JbmZvLmlkLnRvU3RyaW5nKClcIiBbdGFza0tleV09XCJ0cmFuc2FjdGlvbkluZm8udHJhbnNhY3Rpb25Oci50b1N0cmluZygpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIFthdXRob3JdPVwidHJhbnNhY3Rpb25TZXJ2aWNlLmxvZ2dlZEluVXNlclwiIFticmFuY2hOb109XCJ0cmFuc2FjdGlvbkluZm8uYnJhbmNoLnJlbGF0aW9uTnIudG9TdHJpbmcoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbd29ya2Zsb3dDYXRlZ29yeVR5cGVdPVwiV29ya2Zsb3dDYXRlZ29yeVR5cGUuU2VydmljZU9yZGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIChhY3Rpdml0eUNyZWF0ZWQpPVwiZnVsbEFjdGl2aXRpZXNSZWZyZXNoUmVxdWVzdGVkKClcIj48L2NvLXRhc2stY3JlYXRvcj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICBgLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcclxufSlcclxuZXhwb3J0IGNsYXNzIFRyYW5zYWN0aW9uU2VydmljZU92ZXJ2aWV3Q29tcG9uZW50IGV4dGVuZHMgVHJhbnNhY3Rpb25CYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIHB1YmxpYyByZWFkb25seSBUYWJsZU5hbWUgPSBUYWJsZU5hbWU7XHJcbiAgcHVibGljIHJlYWRvbmx5IFdvcmtmbG93Q2F0ZWdvcnlUeXBlID0gV29ya2Zsb3dDYXRlZ29yeVR5cGU7XHJcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IEljb24gPSBJY29uO1xyXG5cclxuICBAVmlld0NoaWxkKENvbXBvbmVudEFjdGl2aXR5TGlzdENvbXBvbmVudClcclxuICBwdWJsaWMgb3BlbkFjdGl2aXRpZXM6IENvbXBvbmVudEFjdGl2aXR5TGlzdENvbXBvbmVudDtcclxuICBASG9zdEJpbmRpbmcoXCJjbGFzcy5jby10cmFuc2FjdGlvbi1zZXJ2aWNlLW92ZXJ2aWV3XCIpXHJcbiAgcHVibGljIHNob3dDbGFzcygpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHByaW9yaXR5RG9tYWluQ29sbDogQ29Eb21haW5WYWx1ZVtdID0gW107XHJcbiAgcHVibGljIGNhdXNlQ29kZUNvbGw6IENhdXNlQ29kZVtdID0gW107XHJcbiAgcHVibGljIGVudHJ5VHlwZUNvbGw6IENvRG9tYWluVmFsdWVbXSA9IFtdO1xyXG5cclxuICBwdWJsaWMgc2VydmljZU1lc3NhZ2VNb2RlbDogc3RyaW5nID0gJyc7XHJcbiAgcHVibGljIHByaW9yaXR5TW9kZWw6IENvRG9tYWluVmFsdWU7XHJcbiAgcHVibGljIGNhdXNlQ29kZU1vZGVsOiBDYXVzZUNvZGU7XHJcbiAgcHVibGljIGVudHJ5VHlwZU1vZGVsOiBDb0RvbWFpblZhbHVlO1xyXG5cclxuICBwdWJsaWMgZG9jdW1lbnRzOiBDb0RvY3VtZW50W10gPSBbXTtcclxuICBwdWJsaWMgYWN0aXZpdGllczogQWN0aXZpdHlbXSA9IFtdO1xyXG5cclxuICBwdWJsaWMgc2hvd0FjdGl2aXR5SGVhZGVyOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0cnVjdG9yIChwdWJsaWMgdHJhbnNhY3Rpb25FdmVudFNlcnZpY2U6IFRyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlLFxyXG4gICAgICAgICAgICAgIHB1YmxpYyBpY29uQ2FjaGVTZXJ2aWNlOiBJY29uQ2FjaGVTZXJ2aWNlLFxyXG4gICAgICAgICAgICAgIHB1YmxpYyBzY3JlZW5Db25maWdTZXJ2aWNlOiBUcmFuc2FjdGlvblNjcmVlbkNvbmZpZ3VyYXRpb25TZXJ2aWNlLFxyXG4gICAgICAgICAgICAgIHByb3RlY3RlZCBpbWFnZVNlcnZpY2U6IFRyYW5zYWN0aW9uSW1hZ2VTZXJ2aWNlLFxyXG4gICAgICAgICAgICAgIHByb3RlY3RlZCBkaWN0aW9uYXJ5U2VydmljZTogRGljdGlvbmFyeVNlcnZpY2UsXHJcbiAgICAgICAgICAgICAgcHVibGljIHRyYW5zYWN0aW9uU2VydmljZTogVHJhbnNhY3Rpb25TZXJ2aWNlLFxyXG4gICAgICAgICAgICAgIHByb3RlY3RlZCByZWxhdGlvblNlcnZpY2U6IFRyYW5zYWN0aW9uUmVsYXRpb25TZXJ2aWNlLFxyXG4gICAgICAgICAgICAgIHByb3RlY3RlZCBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfZGlhbG9nU2VydmljZTogRGlhbG9nU2VydmljZSkge1xyXG4gICAgc3VwZXIodHJhbnNhY3Rpb25FdmVudFNlcnZpY2UsIGljb25DYWNoZVNlcnZpY2UsIHNjcmVlbkNvbmZpZ1NlcnZpY2UsIGltYWdlU2VydmljZSwgZGljdGlvbmFyeVNlcnZpY2UsIHRyYW5zYWN0aW9uU2VydmljZSwgY2hhbmdlRGV0ZWN0b3IpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIG5nT25Jbml0KCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgdGhpcy5wcmlvcml0eURvbWFpbkNvbGwgPSBhd2FpdCB0aGlzLnRyYW5zYWN0aW9uU2VydmljZS5nZXRQcmlvcml0eShcIk5MXCIpO1xyXG4gICAgdGhpcy5jYXVzZUNvZGVDb2xsID0gYXdhaXQgdGhpcy50cmFuc2FjdGlvblNlcnZpY2UuZ2V0Q2F1c2VDb2RlcygpO1xyXG4gICAgdGhpcy5lbnRyeVR5cGVDb2xsID0gYXdhaXQgdGhpcy50cmFuc2FjdGlvblNlcnZpY2UuZ2V0RW50cnlUeXBlcyhcIk5MXCIpO1xyXG4gICAgdGhpcy5zZXJ2aWNlTWVzc2FnZU1vZGVsID0gdGhpcy50cmFuc2FjdGlvblNlcnZpY2VJbmZvLnJlcG9ydE1lc3NhZ2UgPyB0aGlzLnRyYW5zYWN0aW9uU2VydmljZUluZm8ucmVwb3J0TWVzc2FnZSA6ICcnO1xyXG4gICAgdGhpcy5wcmlvcml0eU1vZGVsID0gdGhpcy5wcmlvcml0eURvbWFpbkNvbGwuZmluZChwID0+IHAuY29kZUFzTnVtYmVyID09PSB0aGlzLnRyYW5zYWN0aW9uU2VydmljZUluZm8ucHJpb3JpdHkpO1xyXG4gICAgdGhpcy5jYXVzZUNvZGVNb2RlbCA9IHRoaXMuY2F1c2VDb2RlQ29sbC5maW5kKGMgPT4gYy5jYXVzZUNvZGUgPT09IHRoaXMudHJhbnNhY3Rpb25TZXJ2aWNlSW5mby5jYXVzZUNvZGUpO1xyXG4gICAgdGhpcy5lbnRyeVR5cGVNb2RlbCA9IHRoaXMuZW50cnlUeXBlQ29sbC5maW5kKGUgPT4gZS5jb2RlID09PSB0aGlzLnRyYW5zYWN0aW9uU2VydmljZUluZm8uZW50cnlUeXBlKTtcclxuICAgIHRoaXMudHJhbnNhY3Rpb25TZXJ2aWNlLmxvYWREb2N1bWVudHNPZlRyYW5zYWN0aW9uKHRoaXMudHJhbnNhY3Rpb25JbmZvLmlkLnRvU3RyaW5nKCkpLnRoZW4oKGZldGNoZWREb2N1bWVudHM6IENvRG9jdW1lbnRbXSkgPT4ge1xyXG4gICAgICB0aGlzLmRvY3VtZW50cyA9IGZldGNoZWREb2N1bWVudHM7XHJcbiAgICAgIHRoaXMuZG9jdW1lbnRzLmZvckVhY2goYXN5bmMgZCA9PlxyXG4gICAgICAgIGQuZG9jdW1lbnRCb2R5ID0gYXdhaXQgdGhpcy50cmFuc2FjdGlvblNlcnZpY2UubG9hZERvY3VtZW50Q29udGVudChkLmRvY3VtZW50SWQsIGZhbHNlKVxyXG4gICAgICApO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLmdldEFjdGl2aXRpZXMoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICB9XHJcblxyXG4gIC8qcHVibGljIHNldCB0cmFuc2FjdGlvblNlcnZpY2VJbmZvKHZhbHVlOiBUcmFuc2FjdGlvblNlcnZpY2VJbmZvKSB7XHJcbiAgICBzdXBlci50cmFuc2FjdGlvblNlcnZpY2VJbmZvID0gdmFsdWU7XHJcbiAgICBpZiAodGhpcy5wcmlvcml0eURvbWFpbkNvbGwubGVuZ3RoID4gMCkge1xyXG4gICAgICB0aGlzLnByaW9yaXR5TW9kZWwgPSB0aGlzLnByaW9yaXR5RG9tYWluQ29sbC5maW5kKHAgPT4gcC5jb2RlQXNOdW1iZXIgPT09IHZhbHVlLnByaW9yaXR5KTtcclxuICAgIH1cclxuICB9Ki9cclxuXHJcbiAgcHVibGljIGFzeW5jIGdldEFjdGl2aXRpZXMoKTpQcm9taXNlPHZvaWQ+IHtcclxuICAgIHRoaXMuYWN0aXZpdGllcyA9IGF3YWl0IHRoaXMudHJhbnNhY3Rpb25TZXJ2aWNlLmdldEhpc3RvcmljQWN0aXZpdGllcyh0aGlzLnRyYW5zYWN0aW9uSW5mby5pZCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZmluaXNoZWRBY3Rpdml0aWVzUmVmcmVzaFJlcXVlc3RlZCgpIDogdm9pZCB7XHJcbiAgICB0aGlzLmdldEFjdGl2aXRpZXMoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBmdWxsQWN0aXZpdGllc1JlZnJlc2hSZXF1ZXN0ZWQoKSA6IHZvaWQge1xyXG4gICAgdGhpcy5nZXRBY3Rpdml0aWVzKCk7XHJcbiAgICB0aGlzLm9wZW5BY3Rpdml0aWVzLmdldEFjdGl2aXRpZXMoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBzZXRQcmlvcml0eShwcmlvcml0eTogQ29Eb21haW5WYWx1ZSkgOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGlmIChwcmlvcml0eSkge1xyXG4gICAgICB0aGlzLnByaW9yaXR5TW9kZWwgPSB0aGlzLnByaW9yaXR5RG9tYWluQ29sbC5maW5kKHAgPT4gcC5jb2RlID09PSBwcmlvcml0eS5jb2RlKTtcclxuICAgICAgdGhpcy50cmFuc2FjdGlvblNlcnZpY2VJbmZvLnByaW9yaXR5ID0gdGhpcy5wcmlvcml0eU1vZGVsLmNvZGVBc051bWJlcjtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMucHJpb3JpdHlNb2RlbCA9IG51bGw7XHJcbiAgICB9XHJcbiAgICBhd2FpdCB0aGlzLnRyYW5zYWN0aW9uU2VydmljZS51cGRhdGVTZXJ2aWNlSGVhZGVyUHJpb3JpdHkodGhpcy50cmFuc2FjdGlvblNlcnZpY2VJbmZvLnByaW9yaXR5LCB0cnVlKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBzZXRDYXVzZUNvZGUoY2F1c2VDb2RlOiBDYXVzZUNvZGUpIDogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBpZiAoY2F1c2VDb2RlKSB7XHJcbiAgICAgIHRoaXMuY2F1c2VDb2RlTW9kZWwgPSB0aGlzLmNhdXNlQ29kZUNvbGwuZmluZChjID0+IGMuY2F1c2VDb2RlID09PSBjYXVzZUNvZGUuY2F1c2VDb2RlKTtcclxuICAgICAgdGhpcy50cmFuc2FjdGlvblNlcnZpY2VJbmZvLmNhdXNlQ29kZSA9IHRoaXMuY2F1c2VDb2RlTW9kZWwuY2F1c2VDb2RlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5jYXVzZUNvZGVNb2RlbCA9IG51bGw7XHJcbiAgICB9XHJcbiAgICBhd2FpdCB0aGlzLnRyYW5zYWN0aW9uU2VydmljZS51cGRhdGVTZXJ2aWNlSGVhZGVyQ2F1c2VDb2RlKHRoaXMudHJhbnNhY3Rpb25TZXJ2aWNlSW5mby5jYXVzZUNvZGUsIHRydWUpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIHNldEVudHJ5VHlwZShlbnRyeVR5cGU6IENvRG9tYWluVmFsdWUpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGlmIChlbnRyeVR5cGUpIHtcclxuICAgICAgdGhpcy5lbnRyeVR5cGVNb2RlbCA9IHRoaXMuZW50cnlUeXBlQ29sbC5maW5kKGUgPT4gZS5jb2RlID09PSBlbnRyeVR5cGUuY29kZSk7XHJcbiAgICAgIHRoaXMudHJhbnNhY3Rpb25TZXJ2aWNlSW5mby5lbnRyeVR5cGUgPSB0aGlzLmVudHJ5VHlwZU1vZGVsLmNvZGU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmVudHJ5VHlwZU1vZGVsID0gbnVsbDtcclxuICAgIH1cclxuICAgIGF3YWl0IHRoaXMudHJhbnNhY3Rpb25TZXJ2aWNlLnVwZGF0ZVNlcnZpY2VIZWFkZXJFbnRyeVR5cGUodGhpcy50cmFuc2FjdGlvblNlcnZpY2VJbmZvLmVudHJ5VHlwZSwgdHJ1ZSk7XHJcbiAgfVxyXG4gIHB1YmxpYyBhc3luYyBzZXJ2aWNlUmVwb3J0Q2hhbmdlKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgaWYgKHRoaXMudHJhbnNhY3Rpb25TZXJ2aWNlSW5mby5yZXBvcnRNZXNzYWdlICE9PSB0aGlzLnNlcnZpY2VNZXNzYWdlTW9kZWwpIHtcclxuICAgICAgaWYoISh0aGlzLnNlcnZpY2VNZXNzYWdlTW9kZWwgPT09IG51bGwpICYmICEodGhpcy5zZXJ2aWNlTWVzc2FnZU1vZGVsID09PSB1bmRlZmluZWQpKVxyXG4gICAgICAgIHRoaXMudHJhbnNhY3Rpb25TZXJ2aWNlSW5mby5yZXBvcnRNZXNzYWdlID0gdGhpcy5zZXJ2aWNlTWVzc2FnZU1vZGVsO1xyXG4gICAgICBlbHNlIHtcclxuICAgICAgICB0aGlzLnRyYW5zYWN0aW9uU2VydmljZUluZm8ucmVwb3J0TWVzc2FnZSA9ICcnO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBhd2FpdCB0aGlzLnRyYW5zYWN0aW9uU2VydmljZS51cGRhdGVTZXJ2aWNlSGVhZGVyUmVwb3J0TWVzc2FnZSh0aGlzLnRyYW5zYWN0aW9uU2VydmljZUluZm8ucmVwb3J0TWVzc2FnZSwgdHJ1ZSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgdXBzZXJ0RG9jdW1lbnQoZG9jOiBDb0RvY3VtZW50KTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBjb25zdCByZXNwb25zZTogQ29Eb2N1bWVudCA9IGF3YWl0IHRoaXMudHJhbnNhY3Rpb25TZXJ2aWNlLm1lcmdlRG9jdW1lbnRPblRyYW5zYWN0aW9uKHRoaXMudHJhbnNhY3Rpb25JbmZvLmlkLnRvU3RyaW5nKCksIGRvYyk7XHJcbiAgICBpZiAocmVzcG9uc2UpIHtcclxuICAgICAgdGhpcy5wdXREb2N1bWVudEluTGlzdChkb2MpO1xyXG4gICAgICBhd2FpdCB0aGlzLl9kaWFsb2dTZXJ2aWNlLnNob3dUb2FzdChcIkRBVEFfU0FWRURcIiwgdHJ1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgZGVsZXRlRG9jdW1lbnQoZG9jOiBDb0RvY3VtZW50KTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBjb25zdCByZXNwb25zZTogVmFsaWRhdGlvblJlc3VsdCA9IGF3YWl0IHRoaXMudHJhbnNhY3Rpb25TZXJ2aWNlLmRlbGV0ZURvY3VtZW50KGRvYy5kb2N1bWVudElkKTtcclxuICAgIGlmIChyZXNwb25zZSAmJiByZXNwb25zZS5zdWNjZXNzKSB7XHJcbiAgICAgIHRoaXMucmVtb3ZlRG9jdW1lbnRGcm9tTGlzdChkb2MpO1xyXG4gICAgICBhd2FpdCB0aGlzLl9kaWFsb2dTZXJ2aWNlLnNob3dUb2FzdChcIkRBVEFfU0FWRURcIiwgdHJ1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHB1YmxpYyBwdXREb2N1bWVudEluTGlzdChkb2M6IENvRG9jdW1lbnQpOiB2b2lkIHtcclxuICAgIGxldCBmb3VuZERvY3VtZW50OiBDb0RvY3VtZW50ID0gdGhpcy5kb2N1bWVudHMuZmluZChkb2N1bWVudCA9PiBkb2N1bWVudC5kb2N1bWVudElkID09PSBkb2MuZG9jdW1lbnRJZCk7XHJcbiAgICBpZiAoZm91bmREb2N1bWVudCkge1xyXG4gICAgICBBcnJheVV0aWxzLlJlcGxhY2VFbGVtZW50KGRvYywgZm91bmREb2N1bWVudCwgdGhpcy5kb2N1bWVudHMpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5kb2N1bWVudHMucHVzaChkb2MpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zb3J0RG9jdW1lbnRMaXN0KCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcmVtb3ZlRG9jdW1lbnRGcm9tTGlzdChkb2M6IENvRG9jdW1lbnQpOiB2b2lkIHtcclxuICAgIEFycmF5VXRpbHMuUmVtb3ZlRWxlbWVudChkb2MsIHRoaXMuZG9jdW1lbnRzKTtcclxuICAgIHRoaXMuc29ydERvY3VtZW50TGlzdCgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNvcnREb2N1bWVudExpc3QoKTogdm9pZCB7XHJcbiAgICBTb3J0VXRpbHMuU29ydE9iamVjdEFycmF5KHRoaXMuZG9jdW1lbnRzLCBbe1xyXG4gICAgICBwcm9wZXJ0eTogXCJkb2N1bWVudElkXCIsXHJcbiAgICAgIGRpcmVjdGlvbjogU29ydERpcmVjdGlvbi5Bc2NlbmRpbmcsXHJcbiAgICAgIHR5cGU6IFNvcnRUeXBlLk51bWJlclxyXG4gICAgfV0pO1xyXG4gIH1cclxufVxyXG4iXX0=