@hitsoft/ovolt 0.0.2 → 0.0.4

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 (51) hide show
  1. package/config/providers/fuel-integration-log-route.provider.d.ts +9 -0
  2. package/esm2020/config/ovolt-config.module.mjs +4 -2
  3. package/esm2020/config/providers/fuel-integration-log-route.provider.mjs +19 -0
  4. package/esm2020/config/providers/process-log-route.provider.mjs +1 -1
  5. package/esm2020/config/providers/system-parameter-route.provider.mjs +1 -1
  6. package/esm2020/lib/components/hit-fuel-integration-logs/components/hit-fuel-integration-log.component.mjs +157 -0
  7. package/esm2020/lib/components/hit-fuel-integration-logs/hit-fuel-integration-log-routing.module.mjs +26 -0
  8. package/esm2020/lib/components/hit-fuel-integration-logs/hit-fuel-integration-log.module.mjs +71 -0
  9. package/esm2020/lib/components/hit-process-logs/components/hit-process-log.component.mjs +58 -30
  10. package/esm2020/lib/components/hit-process-logs/hit-process-log.module.mjs +8 -5
  11. package/esm2020/lib/components/hit-proxy/hit-fuel-integration-logs/hit-fuel-integration-log.service.mjs +40 -0
  12. package/esm2020/lib/components/hit-proxy/hit-fuel-integration-logs/models.mjs +2 -0
  13. package/esm2020/lib/components/hit-proxy/hit-process-logs/hit-process-log.service.mjs +5 -1
  14. package/esm2020/lib/components/hit-system-parameters/components/hit-system-parameter.component.mjs +10 -10
  15. package/esm2020/lib/fuel-integration-logs/fuel-integration-log/components/fuel-integration-log.component.mjs +103 -0
  16. package/esm2020/lib/fuel-integration-logs/fuel-integration-log/fuel-integration-log-routing.module.mjs +26 -0
  17. package/esm2020/lib/fuel-integration-logs/fuel-integration-log/fuel-integration-log.module.mjs +52 -0
  18. package/esm2020/lib/ovolt-routing.module.mjs +4 -2
  19. package/esm2020/lib/process-logs/process-log/components/process-log.component.mjs +3 -3
  20. package/esm2020/lib/process-logs/process-log/process-log-routing.module.mjs +1 -1
  21. package/esm2020/lib/process-logs/process-log/process-log.module.mjs +1 -1
  22. package/esm2020/lib/proxy/fuel-integration-logs/fuel-integration-log.service.mjs +41 -0
  23. package/esm2020/lib/proxy/fuel-integration-logs/models.mjs +2 -0
  24. package/esm2020/lib/proxy/general-transactions/rest-company-type.enum.mjs +1 -1
  25. package/esm2020/lib/proxy/rest-company-type.enum.mjs +8 -0
  26. package/esm2020/lib/proxy/system-parameters/models.mjs +1 -1
  27. package/esm2020/lib/proxy/system-parameters/system-parameter.service.mjs +2 -2
  28. package/fesm2015/hitsoft-ovolt-config.mjs +26 -8
  29. package/fesm2015/hitsoft-ovolt-config.mjs.map +1 -1
  30. package/fesm2015/hitsoft-ovolt.mjs +393 -59
  31. package/fesm2015/hitsoft-ovolt.mjs.map +1 -1
  32. package/fesm2020/hitsoft-ovolt-config.mjs +26 -8
  33. package/fesm2020/hitsoft-ovolt-config.mjs.map +1 -1
  34. package/fesm2020/hitsoft-ovolt.mjs +391 -59
  35. package/fesm2020/hitsoft-ovolt.mjs.map +1 -1
  36. package/lib/components/hit-fuel-integration-logs/components/hit-fuel-integration-log.component.d.ts +41 -0
  37. package/lib/components/hit-fuel-integration-logs/hit-fuel-integration-log-routing.module.d.ts +7 -0
  38. package/lib/components/hit-fuel-integration-logs/hit-fuel-integration-log.module.d.ts +16 -0
  39. package/lib/components/hit-process-logs/components/hit-process-log.component.d.ts +13 -8
  40. package/lib/components/hit-process-logs/hit-process-log.module.d.ts +1 -1
  41. package/lib/components/hit-proxy/hit-fuel-integration-logs/hit-fuel-integration-log.service.d.ts +16 -0
  42. package/lib/components/hit-proxy/hit-fuel-integration-logs/models.d.ts +3 -0
  43. package/lib/components/hit-proxy/hit-process-logs/hit-process-log.service.d.ts +1 -0
  44. package/lib/fuel-integration-logs/fuel-integration-log/components/fuel-integration-log.component.d.ts +33 -0
  45. package/lib/fuel-integration-logs/fuel-integration-log/fuel-integration-log-routing.module.d.ts +7 -0
  46. package/lib/fuel-integration-logs/fuel-integration-log/fuel-integration-log.module.d.ts +15 -0
  47. package/lib/proxy/fuel-integration-logs/fuel-integration-log.service.d.ts +16 -0
  48. package/lib/proxy/fuel-integration-logs/models.d.ts +42 -0
  49. package/lib/proxy/rest-company-type.enum.d.ts +5 -0
  50. package/lib/proxy/system-parameters/models.d.ts +17 -17
  51. package/package.json +1 -1
@@ -26,7 +26,7 @@ export class HitSystemParameterComponent {
26
26
  this.fields = [
27
27
  'sharzNetCustomerSeries', 'upEnerjiCustomerSeries', 'sharzNetCustomerGroupCode', 'upEnerjiCustomerGroupCode',
28
28
  'sharzNetCustomerDebitorAccount', 'upEnerjiCustomerDebitorAccount', 'vendorSeries', 'vendorGroupCode',
29
- 'itemCode', 'vatGroup', 'warehouseCode', 'cogsCostingCode1', 'cogsCostingCode2', 'cogsCostingCode3'
29
+ 'transactionItemCode', 'cogsCostingCode', 'cogsCostingCode2', 'cogsCostingCode3', 'bplId', 'purchaseOrderItemCode'
30
30
  ];
31
31
  this.fieldLocalizationMap = {
32
32
  sharzNetCustomerSeries: 'SharzNetCustomerSeries',
@@ -37,12 +37,12 @@ export class HitSystemParameterComponent {
37
37
  upEnerjiCustomerDebitorAccount: 'UpEnerjiCustomerDebitorAccount',
38
38
  vendorSeries: 'VendorSeries',
39
39
  vendorGroupCode: 'VendorGroupCode',
40
- itemCode: 'ItemCode',
41
- vatGroup: 'VatGroup',
42
- warehouseCode: 'WarehouseCode',
43
- cogsCostingCode1: 'COGSCostingCode1',
40
+ transactionItemCode: 'TransactionItemCode',
41
+ cogsCostingCode: 'COGSCostingCode',
44
42
  cogsCostingCode2: 'COGSCostingCode2',
45
43
  cogsCostingCode3: 'COGSCostingCode3',
44
+ bplId: 'BPLId',
45
+ purchaseOrderItemCode: 'PurchaseOrderItemCode',
46
46
  };
47
47
  }
48
48
  ngOnInit() {
@@ -60,13 +60,13 @@ export class HitSystemParameterComponent {
60
60
  upEnerjiCustomerDebitorAccount: [null, [Validators.required]],
61
61
  vendorSeries: [null, [Validators.required]],
62
62
  vendorGroupCode: [null, [Validators.required]],
63
- itemCode: [null, [Validators.required]],
64
- vatGroup: [null, [Validators.required]],
65
- warehouseCode: [null, [Validators.required, Validators.min(1)]],
66
- cogsCostingCode1: [null],
63
+ transactionItemCode: [null, [Validators.required]],
64
+ cogsCostingCode: [null],
67
65
  cogsCostingCode2: [null],
68
66
  cogsCostingCode3: [null],
69
67
  poKey: [null, [Validators.required]],
68
+ bplId: [null, [Validators.required]],
69
+ purchaseOrderItemCode: [null, [Validators.required]],
70
70
  });
71
71
  }
72
72
  loadData() {
@@ -119,4 +119,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
119
119
  type: Component,
120
120
  args: [{ selector: 'lib-hit-system-parameter', changeDetection: ChangeDetectionStrategy.Default, providers: [ListService, { provide: NgbDateAdapter, useClass: DateAdapter }], template: "<abp-page [title]=\"'Ovolt::SystemParameters' | abpLocalization\">\r\n <div class=\"card\">\r\n <div class=\"card-body\">\r\n <form [formGroup]=\"form\" (ngSubmit)=\"save()\">\r\n\r\n <!-- Rest Company Select -->\r\n <div class=\"row mb-2\">\r\n <div class=\"col-md-6\">\r\n <label class=\"form-label\" for=\"system-parameter-selected-rest-company\">\r\n {{ 'Ovolt::SelectedRestCompany' | abpLocalization }}\r\n </label>\r\n <select id=\"selectedRestCompany\" formControlName=\"selectedRestCompany\" class=\"form-select\">\r\n <option *ngFor=\"let option of restCompanyTypeOptions; trackBy: track.by('key')\"\r\n [value]=\"option.key\">\r\n {{ 'Ovolt::Enum:RestCompanyType.' + option.key | abpLocalization }}\r\n </option>\r\n </select>\r\n </div>\r\n <div class=\"col-md-6\">\r\n <label class=\"form-label\" for=\"system-parameter-pokey\">\r\n {{ 'Ovolt::POKey' | abpLocalization }}\r\n </label>\r\n <input id=\"system-parameter-pokey\" formControlName=\"poKey\" class=\"form-control\" />\r\n </div>\r\n </div>\r\n\r\n\r\n <!-- Di\u011Fer Alanlar Grid -->\r\n <div class=\"row\">\r\n <div class=\"col-md-6 mb-2\" *ngFor=\"let field of fields\">\r\n <label>{{ ('Ovolt::' + fieldLocalizationMap[field]) | abpLocalization }}</label>\r\n <input [type]=\"(field.includes('GroupCode') ) ? 'number' : 'text'\"\r\n class=\"form-control\" [formControlName]=\"field\" />\r\n <div *ngIf=\"form.get(field)?.touched && form.get(field)?.invalid\" class=\"text-danger\">\r\n {{ 'Ovolt::FieldRequiredOrInvalid' | abpLocalization }}\r\n </div>\r\n </div>\r\n </div>\r\n\r\n\r\n <div class=\"text-end mt-4\">\r\n <button type=\"submit\" class=\"btn btn-primary\" [disabled]=\"isBusy\">\r\n {{ 'AbpUi::Save' | abpLocalization }}\r\n </button>\r\n </div>\r\n </form>\r\n </div>\r\n </div>\r\n</abp-page>" }]
121
121
  }], ctorParameters: function () { return [{ type: i1.FormBuilder }, { type: i2.SystemParameterService }, { type: i3.HitSystemParameterService }, { type: i4.ToasterService }, { type: i5.TrackByService }]; } });
122
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGl0LXN5c3RlbS1wYXJhbWV0ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb3ZvbHQvc3JjL2xpYi9jb21wb25lbnRzL2hpdC1zeXN0ZW0tcGFyYW1ldGVycy9jb21wb25lbnRzL2hpdC1zeXN0ZW0tcGFyYW1ldGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL292b2x0L3NyYy9saWIvY29tcG9uZW50cy9oaXQtc3lzdGVtLXBhcmFtZXRlcnMvY29tcG9uZW50cy9oaXQtc3lzdGVtLXBhcmFtZXRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQU8sV0FBVyxFQUFrQyxNQUFNLGNBQWMsQ0FBQztBQUVoRixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDOUQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUMzRSxPQUFPLEVBQTBCLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM1RCxPQUFPLEVBQVUsUUFBUSxFQUFrQixNQUFNLGdCQUFnQixDQUFDO0FBUWxFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDREQUE0RCxDQUFDOzs7Ozs7Ozs7O0FBUXBHLE1BQU0sT0FBTywyQkFBMkI7SUE4QnBDLFlBQW9CLEVBQWUsRUFDdkIsT0FBK0IsRUFDL0IsVUFBcUMsRUFDckMsT0FBdUIsRUFDZixLQUFxQjtRQUpyQixPQUFFLEdBQUYsRUFBRSxDQUFhO1FBQ3ZCLFlBQU8sR0FBUCxPQUFPLENBQXdCO1FBQy9CLGVBQVUsR0FBVixVQUFVLENBQTJCO1FBQ3JDLFlBQU8sR0FBUCxPQUFPLENBQWdCO1FBQ2YsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7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LENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUVuQyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQzthQUM5QyxTQUFTLENBQUM7WUFDUCxJQUFJLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRTtnQkFDVixJQUFJLENBQUMsUUFBUSxHQUFHLEdBQUcsQ0FBQztnQkFDcEIsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQzFCLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQ3ZDLENBQUM7WUFDRCxLQUFLLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRTtnQkFDWCxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNuQixJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDO1lBQzFELENBQUM7U0FDSixDQUFDLENBQUM7SUFDWCxDQUFDOzt3SEE3R1EsMkJBQTJCOzRHQUEzQiwyQkFBMkIsbURBSnpCLENBQUMsV0FBVyxFQUFFLEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLENBQUMsMEJDbEJoRix3aUZBZ0RXOzJGRDFCRSwyQkFBMkI7a0JBUHZDLFNBQVM7K0JBQ0ksMEJBQTBCLG1CQUNuQix1QkFBdUIsQ0FBQyxPQUFPLGFBQ3JDLENBQUMsV0FBVyxFQUFFLEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBQlAsIExpc3RTZXJ2aWNlLCBQYWdlZFJlc3VsdER0bywgVHJhY2tCeVNlcnZpY2UgfSBmcm9tICdAYWJwL25nLmNvcmUnO1xyXG5pbXBvcnQgeyBDb25maXJtYXRpb24sIENvbmZpcm1hdGlvblNlcnZpY2UsIFRvYXN0ZXJTZXJ2aWNlIH0gZnJvbSAnQGFicC9uZy50aGVtZS5zaGFyZWQnO1xyXG5pbXBvcnQgeyBEYXRlQWRhcHRlciB9IGZyb20gJ0BhYnAvbmcudGhlbWUuc2hhcmVkL2V4dGVuc2lvbnMnO1xyXG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTmdiRGF0ZUFkYXB0ZXIgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XHJcbmltcG9ydCB7IGZpbHRlciwgZmluYWxpemUsIHN3aXRjaE1hcCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgdHlwZSB7XHJcbiAgICBHZXRTeXN0ZW1QYXJhbWV0ZXJzSW5wdXQsXHJcbiAgICBTeXN0ZW1QYXJhbWV0ZXJEdG8sXHJcbn0gZnJvbSAnLi4vLi4vLi4vcHJveHkvc3lzdGVtLXBhcmFtZXRlcnMvbW9kZWxzJztcclxuaW1wb3J0IHsgU3lzdGVtUGFyYW1ldGVyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3Byb3h5L3N5c3RlbS1wYXJhbWV0ZXJzL3N5c3RlbS1wYXJhbWV0ZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IEhpdFN5c3RlbVBhcmFtZXRlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9oaXQtcHJveHkvaGl0LXN5c3RlbS1wYXJhbWV0ZXJzL2hpdC1zeXN0ZW0tcGFyYW1ldGVyLnNlcnZpY2UnO1xyXG5cclxuaW1wb3J0IHsgcmVzdENvbXBhbnlUeXBlT3B0aW9ucyB9IGZyb20gJy4uLy4uLy4uL3Byb3h5L2dlbmVyYWwtdHJhbnNhY3Rpb25zL3Jlc3QtY29tcGFueS10eXBlLmVudW0nO1xyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnbGliLWhpdC1zeXN0ZW0tcGFyYW1ldGVyJyxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuRGVmYXVsdCxcclxuICAgIHByb3ZpZGVyczogW0xpc3RTZXJ2aWNlLCB7IHByb3ZpZGU6IE5nYkRhdGVBZGFwdGVyLCB1c2VDbGFzczogRGF0ZUFkYXB0ZXIgfV0sXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vaGl0LXN5c3RlbS1wYXJhbWV0ZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVzOiBbXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEhpdFN5c3RlbVBhcmFtZXRlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgICBmb3JtOiBGb3JtR3JvdXA7XHJcbiAgICBzZWxlY3RlZD86IFN5c3RlbVBhcmFtZXRlckR0bztcclxuICAgIGlzQnVzeSA9IGZhbHNlO1xyXG5cclxuICAgIHJlc3RDb21wYW55VHlwZU9wdGlvbnMgPSByZXN0Q29tcGFueVR5cGVPcHRpb25zO1xyXG5cclxuICAgIGZpZWxkcyA9IFtcclxuICAgICAgICAnc2hhcnpOZXRDdXN0b21lclNlcmllcycsICd1cEVuZXJqaUN1c3RvbWVyU2VyaWVzJywgJ3NoYXJ6TmV0Q3VzdG9tZXJHcm91cENvZGUnLCAndXBFbmVyamlDdXN0b21lckdyb3VwQ29kZScsXHJcbiAgICAgICAgJ3NoYXJ6TmV0Q3VzdG9tZXJEZWJpdG9yQWNjb3VudCcsICd1cEVuZXJqaUN1c3RvbWVyRGViaXRvckFjY291bnQnLCAndmVuZG9yU2VyaWVzJywgJ3ZlbmRvckdyb3VwQ29kZScsXHJcbiAgICAgICAgJ2l0ZW1Db2RlJywgJ3ZhdEdyb3VwJywgJ3dhcmVob3VzZUNvZGUnLCAnY29nc0Nvc3RpbmdDb2RlMScsICdjb2dzQ29zdGluZ0NvZGUyJywgJ2NvZ3NDb3N0aW5nQ29kZTMnXHJcbiAgICBdO1xyXG5cclxuICAgIGZpZWxkTG9jYWxpemF0aW9uTWFwOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9ID0ge1xyXG4gICAgICAgIHNoYXJ6TmV0Q3VzdG9tZXJTZXJpZXM6ICdTaGFyek5ldEN1c3RvbWVyU2VyaWVzJyxcclxuICAgICAgICB1cEVuZXJqaUN1c3RvbWVyU2VyaWVzOiAnVXBFbmVyamlDdXN0b21lclNlcmllcycsXHJcbiAgICAgICAgc2hhcnpOZXRDdXN0b21lckdyb3VwQ29kZTogJ1NoYXJ6TmV0Q3VzdG9tZXJHcm91cENvZGUnLFxyXG4gICAgICAgIHVwRW5lcmppQ3VzdG9tZXJHcm91cENvZGU6ICdVcEVuZXJqaUN1c3RvbWVyR3JvdXBDb2RlJyxcclxuICAgICAgICBzaGFyek5ldEN1c3RvbWVyRGViaXRvckFjY291bnQ6ICdTaGFyek5ldEN1c3RvbWVyRGViaXRvckFjY291bnQnLFxyXG4gICAgICAgIHVwRW5lcmppQ3VzdG9tZXJEZWJpdG9yQWNjb3VudDogJ1VwRW5lcmppQ3VzdG9tZXJEZWJpdG9yQWNjb3VudCcsXHJcbiAgICAgICAgdmVuZG9yU2VyaWVzOiAnVmVuZG9yU2VyaWVzJyxcclxuICAgICAgICB2ZW5kb3JHcm91cENvZGU6ICdWZW5kb3JHcm91cENvZGUnLFxyXG4gICAgICAgIGl0ZW1Db2RlOiAnSXRlbUNvZGUnLFxyXG4gICAgICAgIHZhdEdyb3VwOiAnVmF0R3JvdXAnLFxyXG4gICAgICAgIHdhcmVob3VzZUNvZGU6ICdXYXJlaG91c2VDb2RlJyxcclxuICAgICAgICBjb2dzQ29zdGluZ0NvZGUxOiAnQ09HU0Nvc3RpbmdDb2RlMScsXHJcbiAgICAgICAgY29nc0Nvc3RpbmdDb2RlMjogJ0NPR1NDb3N0aW5nQ29kZTInLFxyXG4gICAgICAgIGNvZ3NDb3N0aW5nQ29kZTM6ICdDT0dTQ29zdGluZ0NvZGUzJyxcclxuICAgIH07XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIsXHJcbiAgICAgICAgcHJpdmF0ZSBzZXJ2aWNlOiBTeXN0ZW1QYXJhbWV0ZXJTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgaGl0U2VydmljZTogSGl0U3lzdGVtUGFyYW1ldGVyU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIHRvYXN0ZXI6IFRvYXN0ZXJTZXJ2aWNlLFxyXG4gICAgICAgIHB1YmxpYyByZWFkb25seSB0cmFjazogVHJhY2tCeVNlcnZpY2UsXHJcbiAgICApIHsgfVxyXG5cclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuYnVpbGRGb3JtKCk7XHJcbiAgICAgICAgdGhpcy5sb2FkRGF0YSgpO1xyXG4gICAgfVxyXG5cclxuICAgIGJ1aWxkRm9ybSgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcclxuICAgICAgICAgICAgc2VsZWN0ZWRSZXN0Q29tcGFueTogW251bGwsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxyXG4gICAgICAgICAgICBzaGFyek5ldEN1c3RvbWVyU2VyaWVzOiBbbnVsbCwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcclxuICAgICAgICAgICAgdXBFbmVyamlDdXN0b21lclNlcmllczogW251bGwsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXHJcbiAgICAgICAgICAgIHNoYXJ6TmV0Q3VzdG9tZXJHcm91cENvZGU6IFtudWxsLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5taW4oMSldXSxcclxuICAgICAgICAgICAgdXBFbmVyamlDdXN0b21lckdyb3VwQ29kZTogW251bGwsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLm1pbigxKV1dLFxyXG4gICAgICAgICAgICBzaGFyek5ldEN1c3RvbWVyRGViaXRvckFjY291bnQ6IFtudWxsLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxyXG4gICAgICAgICAgICB1cEVuZXJqaUN1c3RvbWVyRGViaXRvckFjY291bnQ6IFtudWxsLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxyXG4gICAgICAgICAgICB2ZW5kb3JTZXJpZXM6IFtudWxsLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxyXG4gICAgICAgICAgICB2ZW5kb3JHcm91cENvZGU6IFtudWxsLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxyXG4gICAgICAgICAgICBpdGVtQ29kZTogW251bGwsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXHJcbiAgICAgICAgICAgIHZhdEdyb3VwOiBbbnVsbCwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcclxuICAgICAgICAgICAgd2FyZWhvdXNlQ29kZTogW251bGwsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLm1pbigxKV1dLFxyXG4gICAgICAgICAgICBjb2dzQ29zdGluZ0NvZGUxOiBbbnVsbF0sXHJcbiAgICAgICAgICAgIGNvZ3NDb3N0aW5nQ29kZTI6IFtudWxsXSxcclxuICAgICAgICAgICAgY29nc0Nvc3RpbmdDb2RlMzogW251bGxdLFxyXG4gICAgICAgICAgICBwb0tleTogW251bGwsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgbG9hZERhdGEoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5pc0J1c3kgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuaGl0U2VydmljZS5nZXRTeXN0ZW1QYXJhbWV0ZXIoKVxyXG4gICAgICAgICAgICAucGlwZShmaW5hbGl6ZSgoKSA9PiAodGhpcy5pc0J1c3kgPSBmYWxzZSkpKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICAgICAgICAgIG5leHQ6IChyZXN1bHQpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWQgPSByZXN1bHQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybS5wYXRjaFZhbHVlKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLnJlc3VsdCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkUmVzdENvbXBhbnk6IHJlc3VsdC5zZWxlY3RlZFJlc3RDb21wYW55IC8vIHphdGVuIFwiT3ZvbHRcIiB2ZXlhIFwiRXZzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIGVycm9yOiAoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihlcnIpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMudG9hc3Rlci5lcnJvcignVmVyaSB5w7xrbGVuaXJrZW4gaGF0YSBvbHXFn3R1LicpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBzYXZlKCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLmZvcm0uaW52YWxpZCkge1xyXG4gICAgICAgICAgICB0aGlzLmZvcm0ubWFya0FsbEFzVG91Y2hlZCgpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCBwYXlsb2FkID0gdGhpcy5mb3JtLnZhbHVlIGFzIFN5c3RlbVBhcmFtZXRlckR0bztcclxuICAgICAgICB0aGlzLmlzQnVzeSA9IHRydWU7XHJcblxyXG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSB0aGlzLnNlbGVjdGVkPy5pZFxyXG4gICAgICAgICAgICA/IHRoaXMuc2VydmljZS51cGRhdGUodGhpcy5zZWxlY3RlZC5pZCwgcGF5bG9hZClcclxuICAgICAgICAgICAgOiB0aGlzLnNlcnZpY2UuY3JlYXRlKHBheWxvYWQpO1xyXG5cclxuICAgICAgICByZXF1ZXN0LnBpcGUoZmluYWxpemUoKCkgPT4gKHRoaXMuaXNCdXN5ID0gZmFsc2UpKSlcclxuICAgICAgICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgICAgICAgICAgICBuZXh0OiAocmVzKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZCA9IHJlcztcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmZvcm0ucGF0Y2hWYWx1ZShyZXMpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMudG9hc3Rlci5zdWNjZXNzKCdLYXlkZWRpbGRpJyk7XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgZXJyb3I6IChlcnIpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGVycik7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50b2FzdGVyLmVycm9yKCdLYXlkZXRtZSBzxLFyYXPEsW5kYSBoYXRhIG9sdcWfdHUuJyk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxufSIsIjxhYnAtcGFnZSBbdGl0bGVdPVwiJ092b2x0OjpTeXN0ZW1QYXJhbWV0ZXJzJyB8IGFicExvY2FsaXphdGlvblwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNhcmRcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5XCI+XHJcbiAgICAgICAgICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwiZm9ybVwiIChuZ1N1Ym1pdCk9XCJzYXZlKClcIj5cclxuXHJcbiAgICAgICAgICAgICAgICA8IS0tIFJlc3QgQ29tcGFueSBTZWxlY3QgLS0+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IG1iLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cInN5c3RlbS1wYXJhbWV0ZXItc2VsZWN0ZWQtcmVzdC1jb21wYW55XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyAnT3ZvbHQ6OlNlbGVjdGVkUmVzdENvbXBhbnknIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzZWxlY3QgaWQ9XCJzZWxlY3RlZFJlc3RDb21wYW55XCIgZm9ybUNvbnRyb2xOYW1lPVwic2VsZWN0ZWRSZXN0Q29tcGFueVwiIGNsYXNzPVwiZm9ybS1zZWxlY3RcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IG9wdGlvbiBvZiByZXN0Q29tcGFueVR5cGVPcHRpb25zOyB0cmFja0J5OiB0cmFjay5ieSgna2V5JylcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJvcHRpb24ua2V5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgJ092b2x0OjpFbnVtOlJlc3RDb21wYW55VHlwZS4nICsgb3B0aW9uLmtleSB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwic3lzdGVtLXBhcmFtZXRlci1wb2tleVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgJ092b2x0OjpQT0tleScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGlkPVwic3lzdGVtLXBhcmFtZXRlci1wb2tleVwiIGZvcm1Db250cm9sTmFtZT1cInBvS2V5XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG5cclxuICAgICAgICAgICAgICAgIDwhLS0gRGnEn2VyIEFsYW5sYXIgR3JpZCAtLT5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTYgbWItMlwiICpuZ0Zvcj1cImxldCBmaWVsZCBvZiBmaWVsZHNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPnt7ICgnT3ZvbHQ6OicgKyBmaWVsZExvY2FsaXphdGlvbk1hcFtmaWVsZF0pIHwgYWJwTG9jYWxpemF0aW9uIH19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IFt0eXBlXT1cIihmaWVsZC5pbmNsdWRlcygnR3JvdXBDb2RlJykgKSA/ICdudW1iZXInIDogJ3RleHQnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgW2Zvcm1Db250cm9sTmFtZV09XCJmaWVsZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJmb3JtLmdldChmaWVsZCk/LnRvdWNoZWQgJiYgZm9ybS5nZXQoZmllbGQpPy5pbnZhbGlkXCIgY2xhc3M9XCJ0ZXh0LWRhbmdlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgJ092b2x0OjpGaWVsZFJlcXVpcmVkT3JJbnZhbGlkJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1lbmQgbXQtNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cInN1Ym1pdFwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCIgW2Rpc2FibGVkXT1cImlzQnVzeVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7eyAnQWJwVWk6OlNhdmUnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9mb3JtPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvYWJwLXBhZ2U+Il19
122
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGl0LXN5c3RlbS1wYXJhbWV0ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb3ZvbHQvc3JjL2xpYi9jb21wb25lbnRzL2hpdC1zeXN0ZW0tcGFyYW1ldGVycy9jb21wb25lbnRzL2hpdC1zeXN0ZW0tcGFyYW1ldGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL292b2x0L3NyYy9saWIvY29tcG9uZW50cy9oaXQtc3lzdGVtLXBhcmFtZXRlcnMvY29tcG9uZW50cy9oaXQtc3lzdGVtLXBhcmFtZXRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQU8sV0FBVyxFQUFrQyxNQUFNLGNBQWMsQ0FBQztBQUVoRixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDOUQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUMzRSxPQUFPLEVBQTBCLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM1RCxPQUFPLEVBQVUsUUFBUSxFQUFrQixNQUFNLGdCQUFnQixDQUFDO0FBUWxFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDREQUE0RCxDQUFDOzs7Ozs7Ozs7O0FBUXBHLE1BQU0sT0FBTywyQkFBMkI7SUE4QnBDLFlBQW9CLEVBQWUsRUFDdkIsT0FBK0IsRUFDL0IsVUFBcUMsRUFDckMsT0FBdUIsRUFDZixLQUFxQjtRQUpyQixPQUFFLEdBQUYsRUFBRSxDQUFhO1FBQ3ZCLFlBQU8sR0FBUCxPQUFPLENBQXdCO1FBQy9CLGVBQVUsR0FBVixVQUFVLENBQTJCO1FBQ3JDLFlBQU8sR0FBUCxPQUFPLENBQWdCO1FBQ2YsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7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TyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUVuQyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQzthQUM5QyxTQUFTLENBQUM7WUFDUCxJQUFJLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRTtnQkFDVixJQUFJLENBQUMsUUFBUSxHQUFHLEdBQUcsQ0FBQztnQkFDcEIsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQzFCLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQ3ZDLENBQUM7WUFDRCxLQUFLLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRTtnQkFDWCxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNuQixJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDO1lBQzFELENBQUM7U0FDSixDQUFDLENBQUM7SUFDWCxDQUFDOzt3SEE3R1EsMkJBQTJCOzRHQUEzQiwyQkFBMkIsbURBSnpCLENBQUMsV0FBVyxFQUFFLEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLENBQUMsMEJDbEJoRix3aUZBZ0RXOzJGRDFCRSwyQkFBMkI7a0JBUHZDLFNBQVM7K0JBQ0ksMEJBQTBCLG1CQUNuQix1QkFBdUIsQ0FBQyxPQUFPLGFBQ3JDLENBQUMsV0FBVyxFQUFFLEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBQlAsIExpc3RTZXJ2aWNlLCBQYWdlZFJlc3VsdER0bywgVHJhY2tCeVNlcnZpY2UgfSBmcm9tICdAYWJwL25nLmNvcmUnO1xyXG5pbXBvcnQgeyBDb25maXJtYXRpb24sIENvbmZpcm1hdGlvblNlcnZpY2UsIFRvYXN0ZXJTZXJ2aWNlIH0gZnJvbSAnQGFicC9uZy50aGVtZS5zaGFyZWQnO1xyXG5pbXBvcnQgeyBEYXRlQWRhcHRlciB9IGZyb20gJ0BhYnAvbmcudGhlbWUuc2hhcmVkL2V4dGVuc2lvbnMnO1xyXG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTmdiRGF0ZUFkYXB0ZXIgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XHJcbmltcG9ydCB7IGZpbHRlciwgZmluYWxpemUsIHN3aXRjaE1hcCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgdHlwZSB7XHJcbiAgICBHZXRTeXN0ZW1QYXJhbWV0ZXJzSW5wdXQsXHJcbiAgICBTeXN0ZW1QYXJhbWV0ZXJEdG8sXHJcbn0gZnJvbSAnLi4vLi4vLi4vcHJveHkvc3lzdGVtLXBhcmFtZXRlcnMvbW9kZWxzJztcclxuaW1wb3J0IHsgU3lzdGVtUGFyYW1ldGVyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3Byb3h5L3N5c3RlbS1wYXJhbWV0ZXJzL3N5c3RlbS1wYXJhbWV0ZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IEhpdFN5c3RlbVBhcmFtZXRlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9oaXQtcHJveHkvaGl0LXN5c3RlbS1wYXJhbWV0ZXJzL2hpdC1zeXN0ZW0tcGFyYW1ldGVyLnNlcnZpY2UnO1xyXG5cclxuaW1wb3J0IHsgcmVzdENvbXBhbnlUeXBlT3B0aW9ucyB9IGZyb20gJy4uLy4uLy4uL3Byb3h5L2dlbmVyYWwtdHJhbnNhY3Rpb25zL3Jlc3QtY29tcGFueS10eXBlLmVudW0nO1xyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnbGliLWhpdC1zeXN0ZW0tcGFyYW1ldGVyJyxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuRGVmYXVsdCxcclxuICAgIHByb3ZpZGVyczogW0xpc3RTZXJ2aWNlLCB7IHByb3ZpZGU6IE5nYkRhdGVBZGFwdGVyLCB1c2VDbGFzczogRGF0ZUFkYXB0ZXIgfV0sXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vaGl0LXN5c3RlbS1wYXJhbWV0ZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVzOiBbXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEhpdFN5c3RlbVBhcmFtZXRlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgICBmb3JtOiBGb3JtR3JvdXA7XHJcbiAgICBzZWxlY3RlZD86IFN5c3RlbVBhcmFtZXRlckR0bztcclxuICAgIGlzQnVzeSA9IGZhbHNlO1xyXG5cclxuICAgIHJlc3RDb21wYW55VHlwZU9wdGlvbnMgPSByZXN0Q29tcGFueVR5cGVPcHRpb25zO1xyXG5cclxuICAgIGZpZWxkcyA9IFtcclxuICAgICAgICAnc2hhcnpOZXRDdXN0b21lclNlcmllcycsICd1cEVuZXJqaUN1c3RvbWVyU2VyaWVzJywgJ3NoYXJ6TmV0Q3VzdG9tZXJHcm91cENvZGUnLCAndXBFbmVyamlDdXN0b21lckdyb3VwQ29kZScsXHJcbiAgICAgICAgJ3NoYXJ6TmV0Q3VzdG9tZXJEZWJpdG9yQWNjb3VudCcsICd1cEVuZXJqaUN1c3RvbWVyRGViaXRvckFjY291bnQnLCAndmVuZG9yU2VyaWVzJywgJ3ZlbmRvckdyb3VwQ29kZScsXHJcbiAgICAgICAgJ3RyYW5zYWN0aW9uSXRlbUNvZGUnLCAnY29nc0Nvc3RpbmdDb2RlJywgJ2NvZ3NDb3N0aW5nQ29kZTInLCAnY29nc0Nvc3RpbmdDb2RlMycsJ2JwbElkJywncHVyY2hhc2VPcmRlckl0ZW1Db2RlJ1xyXG4gICAgXTtcclxuXHJcbiAgICBmaWVsZExvY2FsaXphdGlvbk1hcDogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHtcclxuICAgICAgICBzaGFyek5ldEN1c3RvbWVyU2VyaWVzOiAnU2hhcnpOZXRDdXN0b21lclNlcmllcycsXHJcbiAgICAgICAgdXBFbmVyamlDdXN0b21lclNlcmllczogJ1VwRW5lcmppQ3VzdG9tZXJTZXJpZXMnLFxyXG4gICAgICAgIHNoYXJ6TmV0Q3VzdG9tZXJHcm91cENvZGU6ICdTaGFyek5ldEN1c3RvbWVyR3JvdXBDb2RlJyxcclxuICAgICAgICB1cEVuZXJqaUN1c3RvbWVyR3JvdXBDb2RlOiAnVXBFbmVyamlDdXN0b21lckdyb3VwQ29kZScsXHJcbiAgICAgICAgc2hhcnpOZXRDdXN0b21lckRlYml0b3JBY2NvdW50OiAnU2hhcnpOZXRDdXN0b21lckRlYml0b3JBY2NvdW50JyxcclxuICAgICAgICB1cEVuZXJqaUN1c3RvbWVyRGViaXRvckFjY291bnQ6ICdVcEVuZXJqaUN1c3RvbWVyRGViaXRvckFjY291bnQnLFxyXG4gICAgICAgIHZlbmRvclNlcmllczogJ1ZlbmRvclNlcmllcycsXHJcbiAgICAgICAgdmVuZG9yR3JvdXBDb2RlOiAnVmVuZG9yR3JvdXBDb2RlJyxcclxuICAgICAgICB0cmFuc2FjdGlvbkl0ZW1Db2RlOiAnVHJhbnNhY3Rpb25JdGVtQ29kZScsXHJcbiAgICAgICAgY29nc0Nvc3RpbmdDb2RlOiAnQ09HU0Nvc3RpbmdDb2RlJyxcclxuICAgICAgICBjb2dzQ29zdGluZ0NvZGUyOiAnQ09HU0Nvc3RpbmdDb2RlMicsXHJcbiAgICAgICAgY29nc0Nvc3RpbmdDb2RlMzogJ0NPR1NDb3N0aW5nQ29kZTMnLFxyXG4gICAgICAgIGJwbElkOiAnQlBMSWQnLFxyXG4gICAgICAgIHB1cmNoYXNlT3JkZXJJdGVtQ29kZTogJ1B1cmNoYXNlT3JkZXJJdGVtQ29kZScsXHJcbiAgICB9O1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyLFxyXG4gICAgICAgIHByaXZhdGUgc2VydmljZTogU3lzdGVtUGFyYW1ldGVyU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIGhpdFNlcnZpY2U6IEhpdFN5c3RlbVBhcmFtZXRlclNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSB0b2FzdGVyOiBUb2FzdGVyU2VydmljZSxcclxuICAgICAgICBwdWJsaWMgcmVhZG9ubHkgdHJhY2s6IFRyYWNrQnlTZXJ2aWNlLFxyXG4gICAgKSB7IH1cclxuXHJcbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmJ1aWxkRm9ybSgpO1xyXG4gICAgICAgIHRoaXMubG9hZERhdGEoKTtcclxuICAgIH1cclxuXHJcbiAgICBidWlsZEZvcm0oKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5mb3JtID0gdGhpcy5mYi5ncm91cCh7XHJcbiAgICAgICAgICAgIHNlbGVjdGVkUmVzdENvbXBhbnk6IFtudWxsLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcclxuICAgICAgICAgICAgc2hhcnpOZXRDdXN0b21lclNlcmllczogW251bGwsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXHJcbiAgICAgICAgICAgIHVwRW5lcmppQ3VzdG9tZXJTZXJpZXM6IFtudWxsLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxyXG4gICAgICAgICAgICBzaGFyek5ldEN1c3RvbWVyR3JvdXBDb2RlOiBbbnVsbCwgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMubWluKDEpXV0sXHJcbiAgICAgICAgICAgIHVwRW5lcmppQ3VzdG9tZXJHcm91cENvZGU6IFtudWxsLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5taW4oMSldXSxcclxuICAgICAgICAgICAgc2hhcnpOZXRDdXN0b21lckRlYml0b3JBY2NvdW50OiBbbnVsbCwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcclxuICAgICAgICAgICAgdXBFbmVyamlDdXN0b21lckRlYml0b3JBY2NvdW50OiBbbnVsbCwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcclxuICAgICAgICAgICAgdmVuZG9yU2VyaWVzOiBbbnVsbCwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcclxuICAgICAgICAgICAgdmVuZG9yR3JvdXBDb2RlOiBbbnVsbCwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcclxuICAgICAgICAgICAgdHJhbnNhY3Rpb25JdGVtQ29kZTogW251bGwsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXHJcbiAgICAgICAgICAgIGNvZ3NDb3N0aW5nQ29kZTogW251bGxdLFxyXG4gICAgICAgICAgICBjb2dzQ29zdGluZ0NvZGUyOiBbbnVsbF0sXHJcbiAgICAgICAgICAgIGNvZ3NDb3N0aW5nQ29kZTM6IFtudWxsXSxcclxuICAgICAgICAgICAgcG9LZXk6IFtudWxsLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxyXG4gICAgICAgICAgICBicGxJZDogW251bGwsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXHJcbiAgICAgICAgICAgIHB1cmNoYXNlT3JkZXJJdGVtQ29kZTogW251bGwsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgbG9hZERhdGEoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5pc0J1c3kgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuaGl0U2VydmljZS5nZXRTeXN0ZW1QYXJhbWV0ZXIoKVxyXG4gICAgICAgICAgICAucGlwZShmaW5hbGl6ZSgoKSA9PiAodGhpcy5pc0J1c3kgPSBmYWxzZSkpKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICAgICAgICAgIG5leHQ6IChyZXN1bHQpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWQgPSByZXN1bHQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybS5wYXRjaFZhbHVlKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLnJlc3VsdCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkUmVzdENvbXBhbnk6IHJlc3VsdC5zZWxlY3RlZFJlc3RDb21wYW55IC8vIHphdGVuIFwiT3ZvbHRcIiB2ZXlhIFwiRXZzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIGVycm9yOiAoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihlcnIpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMudG9hc3Rlci5lcnJvcignVmVyaSB5w7xrbGVuaXJrZW4gaGF0YSBvbHXFn3R1LicpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBzYXZlKCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLmZvcm0uaW52YWxpZCkge1xyXG4gICAgICAgICAgICB0aGlzLmZvcm0ubWFya0FsbEFzVG91Y2hlZCgpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCBwYXlsb2FkID0gdGhpcy5mb3JtLnZhbHVlIGFzIFN5c3RlbVBhcmFtZXRlckR0bztcclxuICAgICAgICB0aGlzLmlzQnVzeSA9IHRydWU7XHJcblxyXG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSB0aGlzLnNlbGVjdGVkPy5pZFxyXG4gICAgICAgICAgICA/IHRoaXMuc2VydmljZS51cGRhdGUodGhpcy5zZWxlY3RlZC5pZCwgcGF5bG9hZClcclxuICAgICAgICAgICAgOiB0aGlzLnNlcnZpY2UuY3JlYXRlKHBheWxvYWQpO1xyXG5cclxuICAgICAgICByZXF1ZXN0LnBpcGUoZmluYWxpemUoKCkgPT4gKHRoaXMuaXNCdXN5ID0gZmFsc2UpKSlcclxuICAgICAgICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgICAgICAgICAgICBuZXh0OiAocmVzKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZCA9IHJlcztcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmZvcm0ucGF0Y2hWYWx1ZShyZXMpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMudG9hc3Rlci5zdWNjZXNzKCdLYXlkZWRpbGRpJyk7XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgZXJyb3I6IChlcnIpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGVycik7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50b2FzdGVyLmVycm9yKCdLYXlkZXRtZSBzxLFyYXPEsW5kYSBoYXRhIG9sdcWfdHUuJyk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxufSIsIjxhYnAtcGFnZSBbdGl0bGVdPVwiJ092b2x0OjpTeXN0ZW1QYXJhbWV0ZXJzJyB8IGFicExvY2FsaXphdGlvblwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNhcmRcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5XCI+XHJcbiAgICAgICAgICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwiZm9ybVwiIChuZ1N1Ym1pdCk9XCJzYXZlKClcIj5cclxuXHJcbiAgICAgICAgICAgICAgICA8IS0tIFJlc3QgQ29tcGFueSBTZWxlY3QgLS0+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IG1iLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cInN5c3RlbS1wYXJhbWV0ZXItc2VsZWN0ZWQtcmVzdC1jb21wYW55XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyAnT3ZvbHQ6OlNlbGVjdGVkUmVzdENvbXBhbnknIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzZWxlY3QgaWQ9XCJzZWxlY3RlZFJlc3RDb21wYW55XCIgZm9ybUNvbnRyb2xOYW1lPVwic2VsZWN0ZWRSZXN0Q29tcGFueVwiIGNsYXNzPVwiZm9ybS1zZWxlY3RcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IG9wdGlvbiBvZiByZXN0Q29tcGFueVR5cGVPcHRpb25zOyB0cmFja0J5OiB0cmFjay5ieSgna2V5JylcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJvcHRpb24ua2V5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgJ092b2x0OjpFbnVtOlJlc3RDb21wYW55VHlwZS4nICsgb3B0aW9uLmtleSB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwic3lzdGVtLXBhcmFtZXRlci1wb2tleVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgJ092b2x0OjpQT0tleScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGlkPVwic3lzdGVtLXBhcmFtZXRlci1wb2tleVwiIGZvcm1Db250cm9sTmFtZT1cInBvS2V5XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG5cclxuICAgICAgICAgICAgICAgIDwhLS0gRGnEn2VyIEFsYW5sYXIgR3JpZCAtLT5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTYgbWItMlwiICpuZ0Zvcj1cImxldCBmaWVsZCBvZiBmaWVsZHNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPnt7ICgnT3ZvbHQ6OicgKyBmaWVsZExvY2FsaXphdGlvbk1hcFtmaWVsZF0pIHwgYWJwTG9jYWxpemF0aW9uIH19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IFt0eXBlXT1cIihmaWVsZC5pbmNsdWRlcygnR3JvdXBDb2RlJykgKSA/ICdudW1iZXInIDogJ3RleHQnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgW2Zvcm1Db250cm9sTmFtZV09XCJmaWVsZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJmb3JtLmdldChmaWVsZCk/LnRvdWNoZWQgJiYgZm9ybS5nZXQoZmllbGQpPy5pbnZhbGlkXCIgY2xhc3M9XCJ0ZXh0LWRhbmdlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgJ092b2x0OjpGaWVsZFJlcXVpcmVkT3JJbnZhbGlkJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1lbmQgbXQtNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cInN1Ym1pdFwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCIgW2Rpc2FibGVkXT1cImlzQnVzeVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7eyAnQWJwVWk6OlNhdmUnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9mb3JtPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvYWJwLXBhZ2U+Il19
@@ -0,0 +1,103 @@
1
+ import { ListService } from '@abp/ng.core';
2
+ import { Confirmation } from '@abp/ng.theme.shared';
3
+ import { DateAdapter } from '@abp/ng.theme.shared/extensions';
4
+ import { ChangeDetectionStrategy, Component } from '@angular/core';
5
+ import { NgbDateAdapter } from '@ng-bootstrap/ng-bootstrap';
6
+ import { filter, finalize, switchMap, tap } from 'rxjs/operators';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "@abp/ng.core";
9
+ import * as i2 from "../../../proxy/fuel-integration-logs/fuel-integration-log.service";
10
+ import * as i3 from "@abp/ng.theme.shared";
11
+ import * as i4 from "@angular/forms";
12
+ import * as i5 from "@angular/common";
13
+ import * as i6 from "@swimlane/ngx-datatable";
14
+ import * as i7 from "@volo/abp.commercial.ng.ui";
15
+ import * as i8 from "@ngx-validate/core";
16
+ import * as i9 from "@ng-bootstrap/ng-bootstrap";
17
+ import * as i10 from "@abp/ng.components/page";
18
+ export class FuelIntegrationLogComponent {
19
+ constructor(list, track, service, confirmation, fb) {
20
+ this.list = list;
21
+ this.track = track;
22
+ this.service = service;
23
+ this.confirmation = confirmation;
24
+ this.fb = fb;
25
+ this.data = {
26
+ items: [],
27
+ totalCount: 0,
28
+ };
29
+ this.filters = {};
30
+ this.isFiltersHidden = true;
31
+ this.isModalBusy = false;
32
+ this.isModalOpen = false;
33
+ }
34
+ ngOnInit() {
35
+ const getData = (query) => this.service.getList({
36
+ ...query,
37
+ ...this.filters,
38
+ filterText: query.filter,
39
+ });
40
+ const setData = (list) => (this.data = list);
41
+ this.list.hookToQuery(getData).subscribe(setData);
42
+ }
43
+ clearFilters() {
44
+ this.filters = {};
45
+ }
46
+ buildForm() {
47
+ const { path, method, requestBody, responseBody, statusCode, requestTime, responseTime } = this.selected || {};
48
+ this.form = this.fb.group({
49
+ path: [path ?? null, []],
50
+ method: [method ?? null, []],
51
+ requestBody: [requestBody ?? null, []],
52
+ responseBody: [responseBody ?? null, []],
53
+ statusCode: [statusCode ?? null, []],
54
+ requestTime: [requestTime ? new Date(requestTime) : null, []],
55
+ responseTime: [responseTime ? new Date(responseTime) : null, []],
56
+ });
57
+ }
58
+ hideForm() {
59
+ this.isModalOpen = false;
60
+ this.form.reset();
61
+ }
62
+ showForm() {
63
+ this.buildForm();
64
+ this.isModalOpen = true;
65
+ }
66
+ submitForm() {
67
+ if (this.form.invalid)
68
+ return;
69
+ const request = this.selected
70
+ ? this.service.update(this.selected.id, {
71
+ ...this.form.value,
72
+ concurrencyStamp: this.selected.concurrencyStamp,
73
+ })
74
+ : this.service.create(this.form.value);
75
+ this.isModalBusy = true;
76
+ request
77
+ .pipe(finalize(() => (this.isModalBusy = false)), tap(() => this.hideForm()))
78
+ .subscribe(this.list.get);
79
+ }
80
+ create() {
81
+ this.selected = undefined;
82
+ this.showForm();
83
+ }
84
+ update(record) {
85
+ this.selected = record;
86
+ this.showForm();
87
+ }
88
+ delete(record) {
89
+ this.confirmation
90
+ .warn('Ovolt::DeleteConfirmationMessage', 'Ovolt::AreYouSure', {
91
+ messageLocalizationParams: [],
92
+ })
93
+ .pipe(filter(status => status === Confirmation.Status.confirm), switchMap(() => this.service.delete(record.id)))
94
+ .subscribe(this.list.get);
95
+ }
96
+ }
97
+ FuelIntegrationLogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: FuelIntegrationLogComponent, deps: [{ token: i1.ListService }, { token: i1.TrackByService }, { token: i2.FuelIntegrationLogService }, { token: i3.ConfirmationService }, { token: i4.FormBuilder }], target: i0.ɵɵFactoryTarget.Component });
98
+ FuelIntegrationLogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: FuelIntegrationLogComponent, selector: "lib-fuel-integration-log", providers: [ListService, { provide: NgbDateAdapter, useClass: DateAdapter }], ngImport: i0, template: "<abp-page [title]=\"'Ovolt::FuelIntegrationLogs' | abpLocalization\">\r\n <abp-page-toolbar-container class=\"col\">\r\n <div class=\"text-lg-end pt-2\">\r\n <button\r\n *abpPermission=\"'Ovolt.FuelIntegrationLogs.Create'\"\r\n class=\"btn btn-primary btn-sm\"\r\n type=\"button\"\r\n (click)=\"create()\"\r\n >\r\n <i class=\"fa fa-plus me-1\" aria-hidden=\"true\"></i>\r\n {{ 'Ovolt::NewFuelIntegrationLog' | abpLocalization }}\r\n </button>\r\n </div>\r\n </abp-page-toolbar-container>\r\n\r\n <abp-advanced-entity-filters localizationSourceName=\"Ovolt\" [list]=\"list\">\r\n <abp-advanced-entity-filters-form>\r\n <form #filterForm (keyup.enter)=\"list.get()\">\r\n <div class=\"row\">\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"pathFilter\">\r\n {{ 'Ovolt::Path' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"pathFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.path\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"methodFilter\">\r\n {{ 'Ovolt::Method' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"methodFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.method\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"requestBodyFilter\">\r\n {{ 'Ovolt::RequestBody' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"requestBodyFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.requestBody\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"responseBodyFilter\">\r\n {{ 'Ovolt::ResponseBody' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"responseBodyFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.responseBody\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"statusCodeFilter\">\r\n {{ 'Ovolt::StatusCode' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"statusCodeFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.statusCode\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"minRequestTime\">\r\n {{ 'Ovolt::MinRequestTime' | abpLocalization }}\r\n </label>\r\n\r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n id=\"minRequestTime\"\r\n class=\"form-control\"\r\n #minRequestTimeInput\r\n #minRequestTimeDatepicker=\"ngbDatepicker\"\r\n name=\"minRequestTime\"\r\n ngbDatepicker\r\n container=\"body\"\r\n readonly\r\n (click)=\"minRequestTimeDatepicker.toggle()\"\r\n (keyup.space)=\"minRequestTimeDatepicker.toggle()\"\r\n [(ngModel)]=\"filters.requestTimeMin\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n <div *ngIf=\"minRequestTimeInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n minRequestTimeDatepicker.writeValue(null);\r\n minRequestTimeDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"maxRequestTime\">\r\n {{ 'Ovolt::MaxRequestTime' | abpLocalization }}\r\n </label>\r\n\r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n id=\"maxRequestTime\"\r\n class=\"form-control\"\r\n #maxRequestTimeInput\r\n #maxRequestTimeDatepicker=\"ngbDatepicker\"\r\n name=\"maxRequestTime\"\r\n ngbDatepicker\r\n readonly\r\n (click)=\"maxRequestTimeDatepicker.toggle()\"\r\n (keyup.space)=\"maxRequestTimeDatepicker.toggle()\"\r\n [(ngModel)]=\"filters.requestTimeMax\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n <div *ngIf=\"maxRequestTimeInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n maxRequestTimeDatepicker.writeValue(null);\r\n maxRequestTimeDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"minResponseTime\">\r\n {{ 'Ovolt::MinResponseTime' | abpLocalization }}\r\n </label>\r\n\r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n id=\"minResponseTime\"\r\n class=\"form-control\"\r\n #minResponseTimeInput\r\n #minResponseTimeDatepicker=\"ngbDatepicker\"\r\n name=\"minResponseTime\"\r\n ngbDatepicker\r\n container=\"body\"\r\n readonly\r\n (click)=\"minResponseTimeDatepicker.toggle()\"\r\n (keyup.space)=\"minResponseTimeDatepicker.toggle()\"\r\n [(ngModel)]=\"filters.responseTimeMin\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n <div *ngIf=\"minResponseTimeInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n minResponseTimeDatepicker.writeValue(null);\r\n minResponseTimeDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"maxResponseTime\">\r\n {{ 'Ovolt::MaxResponseTime' | abpLocalization }}\r\n </label>\r\n\r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n id=\"maxResponseTime\"\r\n class=\"form-control\"\r\n #maxResponseTimeInput\r\n #maxResponseTimeDatepicker=\"ngbDatepicker\"\r\n name=\"maxResponseTime\"\r\n ngbDatepicker\r\n readonly\r\n (click)=\"maxResponseTimeDatepicker.toggle()\"\r\n (keyup.space)=\"maxResponseTimeDatepicker.toggle()\"\r\n [(ngModel)]=\"filters.responseTimeMax\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n <div *ngIf=\"maxResponseTimeInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n maxResponseTimeDatepicker.writeValue(null);\r\n maxResponseTimeDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 col-sm-auto align-self-end mb-3\">\r\n <div class=\"row\">\r\n <div class=\"col-6 col-sm-auto d-grid\">\r\n <button type=\"button\" class=\"btn btn-outline-primary\" (click)=\"clearFilters()\">\r\n <span>{{ 'AbpUi::Clear' | abpLocalization }}</span>\r\n </button>\r\n </div>\r\n <div class=\"col-6 col-sm-auto d-grid\">\r\n <button type=\"button\" class=\"btn btn-primary\" (click)=\"list.get()\">\r\n <span>{{ 'AbpUi::Refresh' | abpLocalization }}</span>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </form>\r\n </abp-advanced-entity-filters-form>\r\n </abp-advanced-entity-filters>\r\n\r\n <div class=\"card\">\r\n <div class=\"card-body\">\r\n <ngx-datatable [rows]=\"data.items\" [count]=\"data.totalCount\" [list]=\"list\" default>\r\n <ngx-datatable-column\r\n [name]=\"'AbpUi::Actions' | abpLocalization\"\r\n [maxWidth]=\"150\"\r\n [width]=\"150\"\r\n [sortable]=\"false\"\r\n >\r\n <ng-template let-row=\"row\" let-i=\"rowIndex\" ngx-datatable-cell-template>\r\n <div ngbDropdown container=\"body\" class=\"d-inline-block\">\r\n <button\r\n class=\"btn btn-primary btn-sm dropdown-toggle\"\r\n data-toggle=\"dropdown\"\r\n aria-haspopup=\"true\"\r\n ngbDropdownToggle\r\n >\r\n <i class=\"fa fa-cog me-1\" aria-hidden=\"true\"></i>\r\n {{ 'AbpUi::Actions' | abpLocalization }}\r\n </button>\r\n\r\n <div ngbDropdownMenu>\r\n <button\r\n ngbDropdownItem\r\n *abpPermission=\"'Ovolt.FuelIntegrationLogs.Edit'\"\r\n (click)=\"update(row)\"\r\n >\r\n {{ 'AbpUi::Edit' | abpLocalization }}\r\n </button>\r\n\r\n <button\r\n ngbDropdownItem\r\n *abpPermission=\"'Ovolt.FuelIntegrationLogs.Delete'\"\r\n (click)=\"delete(row)\"\r\n >\r\n {{ 'AbpUi::Delete' | abpLocalization }}\r\n </button>\r\n </div>\r\n </div>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column name=\"{{ 'Ovolt::Path' | abpLocalization }}\" prop=\"path\">\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.path }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column name=\"{{ 'Ovolt::Method' | abpLocalization }}\" prop=\"method\">\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.method }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'Ovolt::RequestBody' | abpLocalization }}\"\r\n prop=\"requestBody\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.requestBody }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'Ovolt::ResponseBody' | abpLocalization }}\"\r\n prop=\"responseBody\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.responseBody }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column name=\"{{ 'Ovolt::StatusCode' | abpLocalization }}\" prop=\"statusCode\">\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.statusCode }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'Ovolt::RequestTime' | abpLocalization }}\"\r\n prop=\"requestTime\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.requestTime | date }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'Ovolt::ResponseTime' | abpLocalization }}\"\r\n prop=\"responseTime\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.responseTime | date }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n </ngx-datatable>\r\n </div>\r\n </div>\r\n</abp-page>\r\n\r\n<abp-modal [busy]=\"isModalBusy\" [(visible)]=\"isModalOpen\">\r\n <ng-template #abpHeader>\r\n <h3>\r\n {{ (selected ? 'AbpUi::Edit' : 'Ovolt::NewFuelIntegrationLog') | abpLocalization }}\r\n </h3>\r\n </ng-template>\r\n\r\n <ng-template #abpBody>\r\n <form [formGroup]=\"form\" id=\"fuel-integration-log\" (ngSubmit)=\"submitForm()\" validateOnSubmit>\r\n <div class=\"mt-2 fade-in-top\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"fuel-integration-log-path\">\r\n {{ 'Ovolt::Path' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"fuel-integration-log-path\"\r\n formControlName=\"path\"\r\n class=\"form-control\"\r\n autofocus\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"fuel-integration-log-method\">\r\n {{ 'Ovolt::Method' | abpLocalization }}\r\n </label>\r\n\r\n <input id=\"fuel-integration-log-method\" formControlName=\"method\" class=\"form-control\" />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"fuel-integration-log-request-body\">\r\n {{ 'Ovolt::RequestBody' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"fuel-integration-log-request-body\"\r\n formControlName=\"requestBody\"\r\n class=\"form-control\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"fuel-integration-log-response-body\">\r\n {{ 'Ovolt::ResponseBody' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"fuel-integration-log-response-body\"\r\n formControlName=\"responseBody\"\r\n class=\"form-control\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"fuel-integration-log-status-code\">\r\n {{ 'Ovolt::StatusCode' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"fuel-integration-log-status-code\"\r\n formControlName=\"statusCode\"\r\n class=\"form-control\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"fuel-integration-log-request-time\">\r\n {{ 'Ovolt::RequestTime' | abpLocalization }}\r\n </label>\r\n\r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n readonly\r\n id=\"fuel-integration-log-request-time\"\r\n formControlName=\"requestTime\"\r\n class=\"form-control\"\r\n ngbDatepicker\r\n #requestTimeInput\r\n #requestTimeDatepicker=\"ngbDatepicker\"\r\n (click)=\"requestTimeDatepicker.open()\"\r\n (keyup.space)=\"requestTimeDatepicker.open()\"\r\n />\r\n <div *ngIf=\"requestTimeInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n requestTimeDatepicker.writeValue(null);\r\n requestTimeDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"fuel-integration-log-response-time\">\r\n {{ 'Ovolt::ResponseTime' | abpLocalization }}\r\n </label>\r\n\r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n readonly\r\n id=\"fuel-integration-log-response-time\"\r\n formControlName=\"responseTime\"\r\n class=\"form-control\"\r\n ngbDatepicker\r\n #responseTimeInput\r\n #responseTimeDatepicker=\"ngbDatepicker\"\r\n (click)=\"responseTimeDatepicker.open()\"\r\n (keyup.space)=\"responseTimeDatepicker.open()\"\r\n />\r\n <div *ngIf=\"responseTimeInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n responseTimeDatepicker.writeValue(null);\r\n responseTimeDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </form>\r\n </ng-template>\r\n\r\n <ng-template #abpFooter>\r\n <button type=\"button\" class=\"btn btn-secondary\" abpClose>\r\n {{ 'AbpUi::Cancel' | abpLocalization }}\r\n </button>\r\n\r\n <abp-button iconClass=\"fa fa-check\" buttonType=\"submit\" formName=\"fuel-integration-log\">\r\n {{ 'AbpUi::Save' | abpLocalization }}\r\n </abp-button>\r\n </ng-template>\r\n</abp-modal>\r\n", dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1.AutofocusDirective, selector: "[autofocus]", inputs: ["autofocus"] }, { kind: "directive", type: i1.FormSubmitDirective, selector: "form[ngSubmit][formGroup]", inputs: ["debounce", "notValidateOnSubmit", "markAsDirtyWhenSubmit"], outputs: ["ngSubmit"] }, { kind: "directive", type: i1.PermissionDirective, selector: "[abpPermission]", inputs: ["abpPermission", "abpPermissionRunChangeDetection"] }, { kind: "component", type: i6.DatatableComponent, selector: "ngx-datatable", inputs: ["targetMarkerTemplate", "rows", "groupRowsBy", "groupedRows", "columns", "selected", "scrollbarV", "scrollbarH", "rowHeight", "columnMode", "headerHeight", "footerHeight", "externalPaging", "externalSorting", "limit", "count", "offset", "loadingIndicator", "selectionType", "reorderable", "swapColumns", "sortType", "sorts", "cssClasses", "messages", "rowClass", "selectCheck", "displayCheck", "groupExpansionDefault", "trackByProp", "selectAllRowsOnPage", "virtualization", "treeFromRelation", "treeToRelation", "summaryRow", "summaryHeight", "summaryPosition", "rowIdentity"], outputs: ["scroll", "activate", "select", "sort", "page", "reorder", "resize", "tableContextmenu", "treeAction"] }, { kind: "directive", type: i6.DataTableColumnDirective, selector: "ngx-datatable-column", inputs: ["name", "prop", "frozenLeft", "frozenRight", "flexGrow", "resizeable", "comparator", "pipe", "sortable", "draggable", "canAutoResize", "minWidth", "width", "maxWidth", "checkboxable", "headerCheckboxable", "headerClass", "cellClass", "isTreeColumn", "treeLevelIndent", "summaryFunc", "summaryTemplate", "cellTemplate", "headerTemplate", "treeToggleTemplate"] }, { kind: "directive", type: i6.DataTableColumnCellDirective, selector: "[ngx-datatable-cell-template]" }, { kind: "component", type: i3.ButtonComponent, selector: "abp-button", inputs: ["buttonId", "buttonClass", "buttonType", "formName", "iconClass", "loading", "disabled", "attributes"], outputs: ["click", "focus", "blur", "abpClick", "abpFocus", "abpBlur"] }, { kind: "component", type: i3.ModalComponent, selector: "abp-modal", inputs: ["visible", "busy", "options", "suppressUnsavedChangesWarning"], outputs: ["visibleChange", "init", "appear", "disappear"] }, { kind: "directive", type: i3.NgxDatatableDefaultDirective, selector: "ngx-datatable[default]", inputs: ["class"], exportAs: ["ngxDatatableDefault"] }, { kind: "directive", type: i3.NgxDatatableListDirective, selector: "ngx-datatable[list]", inputs: ["list"], exportAs: ["ngxDatatableList"] }, { kind: "directive", type: i3.ModalCloseDirective, selector: "[abpClose]" }, { kind: "component", type: i7.AdvancedEntityFiltersComponent, selector: "abp-advanced-entity-filters", inputs: ["list", "localizationSourceName", "entityFilterPlaceholder"] }, { kind: "component", type: i7.AdvancedEntityFiltersFormComponent, selector: "abp-advanced-entity-filters-form" }, { kind: "directive", type: i8.ValidationGroupDirective, selector: "[formGroup],[formGroupName]", exportAs: ["validationGroup"] }, { kind: "directive", type: i8.ValidationTargetDirective, selector: "[validationTarget]", exportAs: ["validationTarget"] }, { kind: "directive", type: i8.ValidationDirective, selector: "[formControl],[formControlName]", exportAs: ["validationDirective"] }, { kind: "directive", type: i9.NgbInputDatepicker, selector: "input[ngbDatepicker]", inputs: ["autoClose", "datepickerClass", "dayTemplate", "dayTemplateData", "displayMonths", "firstDayOfWeek", "footerTemplate", "markDisabled", "minDate", "maxDate", "navigation", "outsideDays", "placement", "restoreFocus", "showWeekNumbers", "startDate", "container", "positionTarget", "weekdays", "disabled"], outputs: ["dateSelect", "navigate", "closed"], exportAs: ["ngbDatepicker"] }, { kind: "directive", type: i9.NgbDropdown, selector: "[ngbDropdown]", inputs: ["autoClose", "dropdownClass", "open", "placement", "container", "display"], outputs: ["openChange"], exportAs: ["ngbDropdown"] }, { kind: "directive", type: i9.NgbDropdownToggle, selector: "[ngbDropdownToggle]" }, { kind: "directive", type: i9.NgbDropdownMenu, selector: "[ngbDropdownMenu]" }, { kind: "directive", type: i9.NgbDropdownItem, selector: "[ngbDropdownItem]", inputs: ["disabled"] }, { kind: "component", type: i10.PageComponent, selector: "abp-page", inputs: ["title", "toolbar", "breadcrumb"] }, { kind: "component", type: i10.PageToolbarContainerComponent, selector: "abp-page-toolbar-container" }, { kind: "pipe", type: i5.DatePipe, name: "date" }, { kind: "pipe", type: i1.LocalizationPipe, name: "abpLocalization" }], changeDetection: i0.ChangeDetectionStrategy.Default });
99
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: FuelIntegrationLogComponent, decorators: [{
100
+ type: Component,
101
+ args: [{ selector: 'lib-fuel-integration-log', changeDetection: ChangeDetectionStrategy.Default, providers: [ListService, { provide: NgbDateAdapter, useClass: DateAdapter }], template: "<abp-page [title]=\"'Ovolt::FuelIntegrationLogs' | abpLocalization\">\r\n <abp-page-toolbar-container class=\"col\">\r\n <div class=\"text-lg-end pt-2\">\r\n <button\r\n *abpPermission=\"'Ovolt.FuelIntegrationLogs.Create'\"\r\n class=\"btn btn-primary btn-sm\"\r\n type=\"button\"\r\n (click)=\"create()\"\r\n >\r\n <i class=\"fa fa-plus me-1\" aria-hidden=\"true\"></i>\r\n {{ 'Ovolt::NewFuelIntegrationLog' | abpLocalization }}\r\n </button>\r\n </div>\r\n </abp-page-toolbar-container>\r\n\r\n <abp-advanced-entity-filters localizationSourceName=\"Ovolt\" [list]=\"list\">\r\n <abp-advanced-entity-filters-form>\r\n <form #filterForm (keyup.enter)=\"list.get()\">\r\n <div class=\"row\">\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"pathFilter\">\r\n {{ 'Ovolt::Path' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"pathFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.path\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"methodFilter\">\r\n {{ 'Ovolt::Method' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"methodFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.method\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"requestBodyFilter\">\r\n {{ 'Ovolt::RequestBody' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"requestBodyFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.requestBody\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"responseBodyFilter\">\r\n {{ 'Ovolt::ResponseBody' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"responseBodyFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.responseBody\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"statusCodeFilter\">\r\n {{ 'Ovolt::StatusCode' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"statusCodeFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.statusCode\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"minRequestTime\">\r\n {{ 'Ovolt::MinRequestTime' | abpLocalization }}\r\n </label>\r\n\r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n id=\"minRequestTime\"\r\n class=\"form-control\"\r\n #minRequestTimeInput\r\n #minRequestTimeDatepicker=\"ngbDatepicker\"\r\n name=\"minRequestTime\"\r\n ngbDatepicker\r\n container=\"body\"\r\n readonly\r\n (click)=\"minRequestTimeDatepicker.toggle()\"\r\n (keyup.space)=\"minRequestTimeDatepicker.toggle()\"\r\n [(ngModel)]=\"filters.requestTimeMin\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n <div *ngIf=\"minRequestTimeInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n minRequestTimeDatepicker.writeValue(null);\r\n minRequestTimeDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"maxRequestTime\">\r\n {{ 'Ovolt::MaxRequestTime' | abpLocalization }}\r\n </label>\r\n\r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n id=\"maxRequestTime\"\r\n class=\"form-control\"\r\n #maxRequestTimeInput\r\n #maxRequestTimeDatepicker=\"ngbDatepicker\"\r\n name=\"maxRequestTime\"\r\n ngbDatepicker\r\n readonly\r\n (click)=\"maxRequestTimeDatepicker.toggle()\"\r\n (keyup.space)=\"maxRequestTimeDatepicker.toggle()\"\r\n [(ngModel)]=\"filters.requestTimeMax\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n <div *ngIf=\"maxRequestTimeInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n maxRequestTimeDatepicker.writeValue(null);\r\n maxRequestTimeDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"minResponseTime\">\r\n {{ 'Ovolt::MinResponseTime' | abpLocalization }}\r\n </label>\r\n\r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n id=\"minResponseTime\"\r\n class=\"form-control\"\r\n #minResponseTimeInput\r\n #minResponseTimeDatepicker=\"ngbDatepicker\"\r\n name=\"minResponseTime\"\r\n ngbDatepicker\r\n container=\"body\"\r\n readonly\r\n (click)=\"minResponseTimeDatepicker.toggle()\"\r\n (keyup.space)=\"minResponseTimeDatepicker.toggle()\"\r\n [(ngModel)]=\"filters.responseTimeMin\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n <div *ngIf=\"minResponseTimeInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n minResponseTimeDatepicker.writeValue(null);\r\n minResponseTimeDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"maxResponseTime\">\r\n {{ 'Ovolt::MaxResponseTime' | abpLocalization }}\r\n </label>\r\n\r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n id=\"maxResponseTime\"\r\n class=\"form-control\"\r\n #maxResponseTimeInput\r\n #maxResponseTimeDatepicker=\"ngbDatepicker\"\r\n name=\"maxResponseTime\"\r\n ngbDatepicker\r\n readonly\r\n (click)=\"maxResponseTimeDatepicker.toggle()\"\r\n (keyup.space)=\"maxResponseTimeDatepicker.toggle()\"\r\n [(ngModel)]=\"filters.responseTimeMax\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n <div *ngIf=\"maxResponseTimeInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n maxResponseTimeDatepicker.writeValue(null);\r\n maxResponseTimeDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 col-sm-auto align-self-end mb-3\">\r\n <div class=\"row\">\r\n <div class=\"col-6 col-sm-auto d-grid\">\r\n <button type=\"button\" class=\"btn btn-outline-primary\" (click)=\"clearFilters()\">\r\n <span>{{ 'AbpUi::Clear' | abpLocalization }}</span>\r\n </button>\r\n </div>\r\n <div class=\"col-6 col-sm-auto d-grid\">\r\n <button type=\"button\" class=\"btn btn-primary\" (click)=\"list.get()\">\r\n <span>{{ 'AbpUi::Refresh' | abpLocalization }}</span>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </form>\r\n </abp-advanced-entity-filters-form>\r\n </abp-advanced-entity-filters>\r\n\r\n <div class=\"card\">\r\n <div class=\"card-body\">\r\n <ngx-datatable [rows]=\"data.items\" [count]=\"data.totalCount\" [list]=\"list\" default>\r\n <ngx-datatable-column\r\n [name]=\"'AbpUi::Actions' | abpLocalization\"\r\n [maxWidth]=\"150\"\r\n [width]=\"150\"\r\n [sortable]=\"false\"\r\n >\r\n <ng-template let-row=\"row\" let-i=\"rowIndex\" ngx-datatable-cell-template>\r\n <div ngbDropdown container=\"body\" class=\"d-inline-block\">\r\n <button\r\n class=\"btn btn-primary btn-sm dropdown-toggle\"\r\n data-toggle=\"dropdown\"\r\n aria-haspopup=\"true\"\r\n ngbDropdownToggle\r\n >\r\n <i class=\"fa fa-cog me-1\" aria-hidden=\"true\"></i>\r\n {{ 'AbpUi::Actions' | abpLocalization }}\r\n </button>\r\n\r\n <div ngbDropdownMenu>\r\n <button\r\n ngbDropdownItem\r\n *abpPermission=\"'Ovolt.FuelIntegrationLogs.Edit'\"\r\n (click)=\"update(row)\"\r\n >\r\n {{ 'AbpUi::Edit' | abpLocalization }}\r\n </button>\r\n\r\n <button\r\n ngbDropdownItem\r\n *abpPermission=\"'Ovolt.FuelIntegrationLogs.Delete'\"\r\n (click)=\"delete(row)\"\r\n >\r\n {{ 'AbpUi::Delete' | abpLocalization }}\r\n </button>\r\n </div>\r\n </div>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column name=\"{{ 'Ovolt::Path' | abpLocalization }}\" prop=\"path\">\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.path }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column name=\"{{ 'Ovolt::Method' | abpLocalization }}\" prop=\"method\">\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.method }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'Ovolt::RequestBody' | abpLocalization }}\"\r\n prop=\"requestBody\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.requestBody }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'Ovolt::ResponseBody' | abpLocalization }}\"\r\n prop=\"responseBody\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.responseBody }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column name=\"{{ 'Ovolt::StatusCode' | abpLocalization }}\" prop=\"statusCode\">\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.statusCode }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'Ovolt::RequestTime' | abpLocalization }}\"\r\n prop=\"requestTime\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.requestTime | date }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'Ovolt::ResponseTime' | abpLocalization }}\"\r\n prop=\"responseTime\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.responseTime | date }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n </ngx-datatable>\r\n </div>\r\n </div>\r\n</abp-page>\r\n\r\n<abp-modal [busy]=\"isModalBusy\" [(visible)]=\"isModalOpen\">\r\n <ng-template #abpHeader>\r\n <h3>\r\n {{ (selected ? 'AbpUi::Edit' : 'Ovolt::NewFuelIntegrationLog') | abpLocalization }}\r\n </h3>\r\n </ng-template>\r\n\r\n <ng-template #abpBody>\r\n <form [formGroup]=\"form\" id=\"fuel-integration-log\" (ngSubmit)=\"submitForm()\" validateOnSubmit>\r\n <div class=\"mt-2 fade-in-top\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"fuel-integration-log-path\">\r\n {{ 'Ovolt::Path' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"fuel-integration-log-path\"\r\n formControlName=\"path\"\r\n class=\"form-control\"\r\n autofocus\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"fuel-integration-log-method\">\r\n {{ 'Ovolt::Method' | abpLocalization }}\r\n </label>\r\n\r\n <input id=\"fuel-integration-log-method\" formControlName=\"method\" class=\"form-control\" />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"fuel-integration-log-request-body\">\r\n {{ 'Ovolt::RequestBody' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"fuel-integration-log-request-body\"\r\n formControlName=\"requestBody\"\r\n class=\"form-control\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"fuel-integration-log-response-body\">\r\n {{ 'Ovolt::ResponseBody' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"fuel-integration-log-response-body\"\r\n formControlName=\"responseBody\"\r\n class=\"form-control\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"fuel-integration-log-status-code\">\r\n {{ 'Ovolt::StatusCode' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"fuel-integration-log-status-code\"\r\n formControlName=\"statusCode\"\r\n class=\"form-control\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"fuel-integration-log-request-time\">\r\n {{ 'Ovolt::RequestTime' | abpLocalization }}\r\n </label>\r\n\r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n readonly\r\n id=\"fuel-integration-log-request-time\"\r\n formControlName=\"requestTime\"\r\n class=\"form-control\"\r\n ngbDatepicker\r\n #requestTimeInput\r\n #requestTimeDatepicker=\"ngbDatepicker\"\r\n (click)=\"requestTimeDatepicker.open()\"\r\n (keyup.space)=\"requestTimeDatepicker.open()\"\r\n />\r\n <div *ngIf=\"requestTimeInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n requestTimeDatepicker.writeValue(null);\r\n requestTimeDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"fuel-integration-log-response-time\">\r\n {{ 'Ovolt::ResponseTime' | abpLocalization }}\r\n </label>\r\n\r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n readonly\r\n id=\"fuel-integration-log-response-time\"\r\n formControlName=\"responseTime\"\r\n class=\"form-control\"\r\n ngbDatepicker\r\n #responseTimeInput\r\n #responseTimeDatepicker=\"ngbDatepicker\"\r\n (click)=\"responseTimeDatepicker.open()\"\r\n (keyup.space)=\"responseTimeDatepicker.open()\"\r\n />\r\n <div *ngIf=\"responseTimeInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n responseTimeDatepicker.writeValue(null);\r\n responseTimeDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </form>\r\n </ng-template>\r\n\r\n <ng-template #abpFooter>\r\n <button type=\"button\" class=\"btn btn-secondary\" abpClose>\r\n {{ 'AbpUi::Cancel' | abpLocalization }}\r\n </button>\r\n\r\n <abp-button iconClass=\"fa fa-check\" buttonType=\"submit\" formName=\"fuel-integration-log\">\r\n {{ 'AbpUi::Save' | abpLocalization }}\r\n </abp-button>\r\n </ng-template>\r\n</abp-modal>\r\n" }]
102
+ }], ctorParameters: function () { return [{ type: i1.ListService }, { type: i1.TrackByService }, { type: i2.FuelIntegrationLogService }, { type: i3.ConfirmationService }, { type: i4.FormBuilder }]; } });
103
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVlbC1pbnRlZ3JhdGlvbi1sb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb3ZvbHQvc3JjL2xpYi9mdWVsLWludGVncmF0aW9uLWxvZ3MvZnVlbC1pbnRlZ3JhdGlvbi1sb2cvY29tcG9uZW50cy9mdWVsLWludGVncmF0aW9uLWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vdm9sdC9zcmMvbGliL2Z1ZWwtaW50ZWdyYXRpb24tbG9ncy9mdWVsLWludGVncmF0aW9uLWxvZy9jb21wb25lbnRzL2Z1ZWwtaW50ZWdyYXRpb24tbG9nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBTyxXQUFXLEVBQWtDLE1BQU0sY0FBYyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxZQUFZLEVBQXVCLE1BQU0sc0JBQXNCLENBQUM7QUFDekUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzlELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFFM0UsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzVELE9BQU8sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7Ozs7O0FBYWxFLE1BQU0sT0FBTywyQkFBMkI7SUFrQnRDLFlBQ2tCLElBQWlCLEVBQ2pCLEtBQXFCLEVBQ3JCLE9BQWtDLEVBQzFDLFlBQWlDLEVBQ2pDLEVBQWU7UUFKUCxTQUFJLEdBQUosSUFBSSxDQUFhO1FBQ2pCLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQ3JCLFlBQU8sR0FBUCxPQUFPLENBQTJCO1FBQzFDLGlCQUFZLEdBQVosWUFBWSxDQUFxQjtRQUNqQyxPQUFFLEdBQUYsRUFB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RkQ5ZGEsMkJBQTJCO2tCQVB2QyxTQUFTOytCQUNFLDBCQUEwQixtQkFDbkIsdUJBQXVCLENBQUMsT0FBTyxhQUNyQyxDQUFDLFdBQVcsRUFBRSxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQUJQLCBMaXN0U2VydmljZSwgUGFnZWRSZXN1bHREdG8sIFRyYWNrQnlTZXJ2aWNlIH0gZnJvbSAnQGFicC9uZy5jb3JlJztcclxuaW1wb3J0IHsgQ29uZmlybWF0aW9uLCBDb25maXJtYXRpb25TZXJ2aWNlIH0gZnJvbSAnQGFicC9uZy50aGVtZS5zaGFyZWQnO1xyXG5pbXBvcnQgeyBEYXRlQWRhcHRlciB9IGZyb20gJ0BhYnAvbmcudGhlbWUuc2hhcmVkL2V4dGVuc2lvbnMnO1xyXG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTmdiRGF0ZUFkYXB0ZXIgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XHJcbmltcG9ydCB7IGZpbHRlciwgZmluYWxpemUsIHN3aXRjaE1hcCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgdHlwZSB7XHJcbiAgR2V0RnVlbEludGVncmF0aW9uTG9nc0lucHV0LFxyXG4gIEZ1ZWxJbnRlZ3JhdGlvbkxvZ0R0byxcclxufSBmcm9tICcuLi8uLi8uLi9wcm94eS9mdWVsLWludGVncmF0aW9uLWxvZ3MvbW9kZWxzJztcclxuaW1wb3J0IHsgRnVlbEludGVncmF0aW9uTG9nU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3Byb3h5L2Z1ZWwtaW50ZWdyYXRpb24tbG9ncy9mdWVsLWludGVncmF0aW9uLWxvZy5zZXJ2aWNlJztcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItZnVlbC1pbnRlZ3JhdGlvbi1sb2cnLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuRGVmYXVsdCxcclxuICBwcm92aWRlcnM6IFtMaXN0U2VydmljZSwgeyBwcm92aWRlOiBOZ2JEYXRlQWRhcHRlciwgdXNlQ2xhc3M6IERhdGVBZGFwdGVyIH1dLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9mdWVsLWludGVncmF0aW9uLWxvZy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVzOiBbXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEZ1ZWxJbnRlZ3JhdGlvbkxvZ0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgZGF0YTogUGFnZWRSZXN1bHREdG88RnVlbEludGVncmF0aW9uTG9nRHRvPiA9IHtcclxuICAgIGl0ZW1zOiBbXSxcclxuICAgIHRvdGFsQ291bnQ6IDAsXHJcbiAgfTtcclxuXHJcbiAgZmlsdGVycyA9IHt9IGFzIEdldEZ1ZWxJbnRlZ3JhdGlvbkxvZ3NJbnB1dDtcclxuXHJcbiAgZm9ybTogRm9ybUdyb3VwO1xyXG5cclxuICBpc0ZpbHRlcnNIaWRkZW4gPSB0cnVlO1xyXG5cclxuICBpc01vZGFsQnVzeSA9IGZhbHNlO1xyXG5cclxuICBpc01vZGFsT3BlbiA9IGZhbHNlO1xyXG5cclxuICBzZWxlY3RlZD86IEZ1ZWxJbnRlZ3JhdGlvbkxvZ0R0bztcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgbGlzdDogTGlzdFNlcnZpY2UsXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgdHJhY2s6IFRyYWNrQnlTZXJ2aWNlLFxyXG4gICAgcHVibGljIHJlYWRvbmx5IHNlcnZpY2U6IEZ1ZWxJbnRlZ3JhdGlvbkxvZ1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIGNvbmZpcm1hdGlvbjogQ29uZmlybWF0aW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyXHJcbiAgKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIGNvbnN0IGdldERhdGEgPSAocXVlcnk6IEFCUC5QYWdlUXVlcnlQYXJhbXMpID0+XHJcbiAgICAgIHRoaXMuc2VydmljZS5nZXRMaXN0KHtcclxuICAgICAgICAuLi5xdWVyeSxcclxuICAgICAgICAuLi50aGlzLmZpbHRlcnMsXHJcbiAgICAgICAgZmlsdGVyVGV4dDogcXVlcnkuZmlsdGVyLFxyXG4gICAgICB9KTtcclxuXHJcbiAgICBjb25zdCBzZXREYXRhID0gKGxpc3Q6IFBhZ2VkUmVzdWx0RHRvPEZ1ZWxJbnRlZ3JhdGlvbkxvZ0R0bz4pID0+ICh0aGlzLmRhdGEgPSBsaXN0KTtcclxuXHJcbiAgICB0aGlzLmxpc3QuaG9va1RvUXVlcnkoZ2V0RGF0YSkuc3Vic2NyaWJlKHNldERhdGEpO1xyXG4gIH1cclxuXHJcbiAgY2xlYXJGaWx0ZXJzKCkge1xyXG4gICAgdGhpcy5maWx0ZXJzID0ge30gYXMgR2V0RnVlbEludGVncmF0aW9uTG9nc0lucHV0O1xyXG4gIH1cclxuXHJcbiAgYnVpbGRGb3JtKCkge1xyXG4gICAgY29uc3QgeyBwYXRoLCBtZXRob2QsIHJlcXVlc3RCb2R5LCByZXNwb25zZUJvZHksIHN0YXR1c0NvZGUsIHJlcXVlc3RUaW1lLCByZXNwb25zZVRpbWUgfSA9XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWQgfHwge307XHJcblxyXG4gICAgdGhpcy5mb3JtID0gdGhpcy5mYi5ncm91cCh7XHJcbiAgICAgIHBhdGg6IFtwYXRoID8/IG51bGwsIFtdXSxcclxuICAgICAgbWV0aG9kOiBbbWV0aG9kID8/IG51bGwsIFtdXSxcclxuICAgICAgcmVxdWVzdEJvZHk6IFtyZXF1ZXN0Qm9keSA/PyBudWxsLCBbXV0sXHJcbiAgICAgIHJlc3BvbnNlQm9keTogW3Jlc3BvbnNlQm9keSA/PyBudWxsLCBbXV0sXHJcbiAgICAgIHN0YXR1c0NvZGU6IFtzdGF0dXNDb2RlID8/IG51bGwsIFtdXSxcclxuICAgICAgcmVxdWVzdFRpbWU6IFtyZXF1ZXN0VGltZSA/IG5ldyBEYXRlKHJlcXVlc3RUaW1lKSA6IG51bGwsIFtdXSxcclxuICAgICAgcmVzcG9uc2VUaW1lOiBbcmVzcG9uc2VUaW1lID8gbmV3IERhdGUocmVzcG9uc2VUaW1lKSA6IG51bGwsIFtdXSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgaGlkZUZvcm0oKSB7XHJcbiAgICB0aGlzLmlzTW9kYWxPcGVuID0gZmFsc2U7XHJcbiAgICB0aGlzLmZvcm0ucmVzZXQoKTtcclxuICB9XHJcblxyXG4gIHNob3dGb3JtKCkge1xyXG4gICAgdGhpcy5idWlsZEZvcm0oKTtcclxuICAgIHRoaXMuaXNNb2RhbE9wZW4gPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgc3VibWl0Rm9ybSgpIHtcclxuICAgIGlmICh0aGlzLmZvcm0uaW52YWxpZCkgcmV0dXJuO1xyXG5cclxuICAgIGNvbnN0IHJlcXVlc3QgPSB0aGlzLnNlbGVjdGVkXHJcbiAgICAgID8gdGhpcy5zZXJ2aWNlLnVwZGF0ZSh0aGlzLnNlbGVjdGVkLmlkLCB7XHJcbiAgICAgICAgICAuLi50aGlzLmZvcm0udmFsdWUsXHJcbiAgICAgICAgICBjb25jdXJyZW5jeVN0YW1wOiB0aGlzLnNlbGVjdGVkLmNvbmN1cnJlbmN5U3RhbXAsXHJcbiAgICAgICAgfSlcclxuICAgICAgOiB0aGlzLnNlcnZpY2UuY3JlYXRlKHRoaXMuZm9ybS52YWx1ZSk7XHJcblxyXG4gICAgdGhpcy5pc01vZGFsQnVzeSA9IHRydWU7XHJcblxyXG4gICAgcmVxdWVzdFxyXG4gICAgICAucGlwZShcclxuICAgICAgICBmaW5hbGl6ZSgoKSA9PiAodGhpcy5pc01vZGFsQnVzeSA9IGZhbHNlKSksXHJcbiAgICAgICAgdGFwKCgpID0+IHRoaXMuaGlkZUZvcm0oKSlcclxuICAgICAgKVxyXG4gICAgICAuc3Vic2NyaWJlKHRoaXMubGlzdC5nZXQpO1xyXG4gIH1cclxuXHJcbiAgY3JlYXRlKCkge1xyXG4gICAgdGhpcy5zZWxlY3RlZCA9IHVuZGVmaW5lZDtcclxuICAgIHRoaXMuc2hvd0Zvcm0oKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZShyZWNvcmQ6IEZ1ZWxJbnRlZ3JhdGlvbkxvZ0R0bykge1xyXG4gICAgdGhpcy5zZWxlY3RlZCA9IHJlY29yZDtcclxuICAgIHRoaXMuc2hvd0Zvcm0oKTtcclxuICB9XHJcblxyXG4gIGRlbGV0ZShyZWNvcmQ6IEZ1ZWxJbnRlZ3JhdGlvbkxvZ0R0bykge1xyXG4gICAgdGhpcy5jb25maXJtYXRpb25cclxuICAgICAgLndhcm4oJ092b2x0OjpEZWxldGVDb25maXJtYXRpb25NZXNzYWdlJywgJ092b2x0OjpBcmVZb3VTdXJlJywge1xyXG4gICAgICAgIG1lc3NhZ2VMb2NhbGl6YXRpb25QYXJhbXM6IFtdLFxyXG4gICAgICB9KVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBmaWx0ZXIoc3RhdHVzID0+IHN0YXR1cyA9PT0gQ29uZmlybWF0aW9uLlN0YXR1cy5jb25maXJtKSxcclxuICAgICAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy5zZXJ2aWNlLmRlbGV0ZShyZWNvcmQuaWQpKVxyXG4gICAgICApXHJcbiAgICAgIC5zdWJzY3JpYmUodGhpcy5saXN0LmdldCk7XHJcbiAgfVxyXG59XHJcbiIsIjxhYnAtcGFnZSBbdGl0bGVdPVwiJ092b2x0OjpGdWVsSW50ZWdyYXRpb25Mb2dzJyB8IGFicExvY2FsaXphdGlvblwiPlxyXG4gIDxhYnAtcGFnZS10b29sYmFyLWNvbnRhaW5lciBjbGFzcz1cImNvbFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInRleHQtbGctZW5kIHB0LTJcIj5cclxuICAgICAgPGJ1dHRvblxyXG4gICAgICAgICphYnBQZXJtaXNzaW9uPVwiJ092b2x0LkZ1ZWxJbnRlZ3JhdGlvbkxvZ3MuQ3JlYXRlJ1wiXHJcbiAgICAgICAgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgYnRuLXNtXCJcclxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAoY2xpY2spPVwiY3JlYXRlKClcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1wbHVzIG1lLTFcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAge3sgJ092b2x0OjpOZXdGdWVsSW50ZWdyYXRpb25Mb2cnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9hYnAtcGFnZS10b29sYmFyLWNvbnRhaW5lcj5cclxuXHJcbiAgPGFicC1hZHZhbmNlZC1lbnRpdHktZmlsdGVycyBsb2NhbGl6YXRpb25Tb3VyY2VOYW1lPVwiT3ZvbHRcIiBbbGlzdF09XCJsaXN0XCI+XHJcbiAgICA8YWJwLWFkdmFuY2VkLWVudGl0eS1maWx0ZXJzLWZvcm0+XHJcbiAgICAgIDxmb3JtICNmaWx0ZXJGb3JtIChrZXl1cC5lbnRlcik9XCJsaXN0LmdldCgpXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtc20tYXV0b1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJwYXRoRmlsdGVyXCI+XHJcbiAgICAgICAgICAgICAgICB7eyAnT3ZvbHQ6OlBhdGgnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgICAgPC9sYWJlbD5cclxuXHJcbiAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICBpZD1cInBhdGhGaWx0ZXJcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJmaWx0ZXJzLnBhdGhcIlxyXG4gICAgICAgICAgICAgICAgW25nTW9kZWxPcHRpb25zXT1cInsgc3RhbmRhbG9uZTogdHJ1ZSB9XCJcclxuICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtc20tYXV0b1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJtZXRob2RGaWx0ZXJcIj5cclxuICAgICAgICAgICAgICAgIHt7ICdPdm9sdDo6TWV0aG9kJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgaWQ9XCJtZXRob2RGaWx0ZXJcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJmaWx0ZXJzLm1ldGhvZFwiXHJcbiAgICAgICAgICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwieyBzdGFuZGFsb25lOiB0cnVlIH1cIlxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS1hdXRvXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cInJlcXVlc3RCb2R5RmlsdGVyXCI+XHJcbiAgICAgICAgICAgICAgICB7eyAnT3ZvbHQ6OlJlcXVlc3RCb2R5JyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgaWQ9XCJyZXF1ZXN0Qm9keUZpbHRlclwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImZpbHRlcnMucmVxdWVzdEJvZHlcIlxyXG4gICAgICAgICAgICAgICAgW25nTW9kZWxPcHRpb25zXT1cInsgc3RhbmRhbG9uZTogdHJ1ZSB9XCJcclxuICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtc20tYXV0b1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJyZXNwb25zZUJvZHlGaWx0ZXJcIj5cclxuICAgICAgICAgICAgICAgIHt7ICdPdm9sdDo6UmVzcG9uc2VCb2R5JyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgaWQ9XCJyZXNwb25zZUJvZHlGaWx0ZXJcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJmaWx0ZXJzLnJlc3BvbnNlQm9keVwiXHJcbiAgICAgICAgICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwieyBzdGFuZGFsb25lOiB0cnVlIH1cIlxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS1hdXRvXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cInN0YXR1c0NvZGVGaWx0ZXJcIj5cclxuICAgICAgICAgICAgICAgIHt7ICdPdm9sdDo6U3RhdHVzQ29kZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgIGlkPVwic3RhdHVzQ29kZUZpbHRlclwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImZpbHRlcnMuc3RhdHVzQ29kZVwiXHJcbiAgICAgICAgICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwieyBzdGFuZGFsb25lOiB0cnVlIH1cIlxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS1hdXRvXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cIm1pblJlcXVlc3RUaW1lXCI+XHJcbiAgICAgICAgICAgICAgICB7eyAnT3ZvbHQ6Ok1pblJlcXVlc3RUaW1lJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cFwiIHZhbGlkYXRpb25UYXJnZXQ+XHJcbiAgICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgICAgaWQ9XCJtaW5SZXF1ZXN0VGltZVwiXHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICAgICAgI21pblJlcXVlc3RUaW1lSW5wdXRcclxuICAgICAgICAgICAgICAgICAgI21pblJlcXVlc3RUaW1lRGF0ZXBpY2tlcj1cIm5nYkRhdGVwaWNrZXJcIlxyXG4gICAgICAgICAgICAgICAgICBuYW1lPVwibWluUmVxdWVzdFRpbWVcIlxyXG4gICAgICAgICAgICAgICAgICBuZ2JEYXRlcGlja2VyXHJcbiAgICAgICAgICAgICAgICAgIGNvbnRhaW5lcj1cImJvZHlcIlxyXG4gICAgICAgICAgICAgICAgICByZWFkb25seVxyXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwibWluUmVxdWVzdFRpbWVEYXRlcGlja2VyLnRvZ2dsZSgpXCJcclxuICAgICAgICAgICAgICAgICAgKGtleXVwLnNwYWNlKT1cIm1pblJlcXVlc3RUaW1lRGF0ZXBpY2tlci50b2dnbGUoKVwiXHJcbiAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZmlsdGVycy5yZXF1ZXN0VGltZU1pblwiXHJcbiAgICAgICAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7IHN0YW5kYWxvbmU6IHRydWUgfVwiXHJcbiAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIm1pblJlcXVlc3RUaW1lSW5wdXQudmFsdWVcIiBjbGFzcz1cImlucHV0LWdyb3VwLWFwcGVuZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLWxpbmsgcHgtMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cIidBYnBVaTo6Q2xlYXInIHwgYWJwTG9jYWxpemF0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBtaW5SZXF1ZXN0VGltZURhdGVwaWNrZXIud3JpdGVWYWx1ZShudWxsKTtcclxuICAgICAgICAgICAgICAgICAgICAgIG1pblJlcXVlc3RUaW1lRGF0ZXBpY2tlci5tYW51YWxEYXRlQ2hhbmdlKG51bGwsIHRydWUpXHJcbiAgICAgICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtdGltZXNcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtc20tYXV0b1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJtYXhSZXF1ZXN0VGltZVwiPlxyXG4gICAgICAgICAgICAgICAge3sgJ092b2x0OjpNYXhSZXF1ZXN0VGltZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXBcIiB2YWxpZGF0aW9uVGFyZ2V0PlxyXG4gICAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICAgIGlkPVwibWF4UmVxdWVzdFRpbWVcIlxyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICAgICNtYXhSZXF1ZXN0VGltZUlucHV0XHJcbiAgICAgICAgICAgICAgICAgICNtYXhSZXF1ZXN0VGltZURhdGVwaWNrZXI9XCJuZ2JEYXRlcGlja2VyXCJcclxuICAgICAgICAgICAgICAgICAgbmFtZT1cIm1heFJlcXVlc3RUaW1lXCJcclxuICAgICAgICAgICAgICAgICAgbmdiRGF0ZXBpY2tlclxyXG4gICAgICAgICAgICAgICAgICByZWFkb25seVxyXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwibWF4UmVxdWVzdFRpbWVEYXRlcGlja2VyLnRvZ2dsZSgpXCJcclxuICAgICAgICAgICAgICAgICAgKGtleXVwLnNwYWNlKT1cIm1heFJlcXVlc3RUaW1lRGF0ZXBpY2tlci50b2dnbGUoKVwiXHJcbiAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZmlsdGVycy5yZXF1ZXN0VGltZU1heFwiXHJcbiAgICAgICAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7IHN0YW5kYWxvbmU6IHRydWUgfVwiXHJcbiAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIm1heFJlcXVlc3RUaW1lSW5wdXQudmFsdWVcIiBjbGFzcz1cImlucHV0LWdyb3VwLWFwcGVuZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLWxpbmsgcHgtMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cIidBYnBVaTo6Q2xlYXInIHwgYWJwTG9jYWxpemF0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBtYXhSZXF1ZXN0VGltZURhdGVwaWNrZXIud3JpdGVWYWx1ZShudWxsKTtcclxuICAgICAgICAgICAgICAgICAgICAgIG1heFJlcXVlc3RUaW1lRGF0ZXBpY2tlci5tYW51YWxEYXRlQ2hhbmdlKG51bGwsIHRydWUpXHJcbiAgICAgICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtdGltZXNcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS1hdXRvXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cIm1pblJlc3BvbnNlVGltZVwiPlxyXG4gICAgICAgICAgICAgICAge3sgJ092b2x0OjpNaW5SZXNwb25zZVRpbWUnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgICAgPC9sYWJlbD5cclxuXHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwXCIgdmFsaWRhdGlvblRhcmdldD5cclxuICAgICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgICBpZD1cIm1pblJlc3BvbnNlVGltZVwiXHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICAgICAgI21pblJlc3BvbnNlVGltZUlucHV0XHJcbiAgICAgICAgICAgICAgICAgICNtaW5SZXNwb25zZVRpbWVEYXRlcGlja2VyPVwibmdiRGF0ZXBpY2tlclwiXHJcbiAgICAgICAgICAgICAgICAgIG5hbWU9XCJtaW5SZXNwb25zZVRpbWVcIlxyXG4gICAgICAgICAgICAgICAgICBuZ2JEYXRlcGlja2VyXHJcbiAgICAgICAgICAgICAgICAgIGNvbnRhaW5lcj1cImJvZHlcIlxyXG4gICAgICAgICAgICAgICAgICByZWFkb25seVxyXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwibWluUmVzcG9uc2VUaW1lRGF0ZXBpY2tlci50b2dnbGUoKVwiXHJcbiAgICAgICAgICAgICAgICAgIChrZXl1cC5zcGFjZSk9XCJtaW5SZXNwb25zZVRpbWVEYXRlcGlja2VyLnRvZ2dsZSgpXCJcclxuICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJmaWx0ZXJzLnJlc3BvbnNlVGltZU1pblwiXHJcbiAgICAgICAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7IHN0YW5kYWxvbmU6IHRydWUgfVwiXHJcbiAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIm1pblJlc3BvbnNlVGltZUlucHV0LnZhbHVlXCIgY2xhc3M9XCJpbnB1dC1ncm91cC1hcHBlbmRcIj5cclxuICAgICAgICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1saW5rIHB4LTJcIlxyXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCInQWJwVWk6OkNsZWFyJyB8IGFicExvY2FsaXphdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgbWluUmVzcG9uc2VUaW1lRGF0ZXBpY2tlci53cml0ZVZhbHVlKG51bGwpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgbWluUmVzcG9uc2VUaW1lRGF0ZXBpY2tlci5tYW51YWxEYXRlQ2hhbmdlKG51bGwsIHRydWUpXHJcbiAgICAgICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtdGltZXNcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtc20tYXV0b1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJtYXhSZXNwb25zZVRpbWVcIj5cclxuICAgICAgICAgICAgICAgIHt7ICdPdm9sdDo6TWF4UmVzcG9uc2VUaW1lJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cFwiIHZhbGlkYXRpb25UYXJnZXQ+XHJcbiAgICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgICAgaWQ9XCJtYXhSZXNwb25zZVRpbWVcIlxyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICAgICNtYXhSZXNwb25zZVRpbWVJbnB1dFxyXG4gICAgICAgICAgICAgICAgICAjbWF4UmVzcG9uc2VUaW1lRGF0ZXBpY2tlcj1cIm5nYkRhdGVwaWNrZXJcIlxyXG4gICAgICAgICAgICAgICAgICBuYW1lPVwibWF4UmVzcG9uc2VUaW1lXCJcclxuICAgICAgICAgICAgICAgICAgbmdiRGF0ZXBpY2tlclxyXG4gICAgICAgICAgICAgICAgICByZWFkb25seVxyXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwibWF4UmVzcG9uc2VUaW1lRGF0ZXBpY2tlci50b2dnbGUoKVwiXHJcbiAgICAgICAgICAgICAgICAgIChrZXl1cC5zcGFjZSk9XCJtYXhSZXNwb25zZVRpbWVEYXRlcGlja2VyLnRvZ2dsZSgpXCJcclxuICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJmaWx0ZXJzLnJlc3BvbnNlVGltZU1heFwiXHJcbiAgICAgICAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7IHN0YW5kYWxvbmU6IHRydWUgfVwiXHJcbiAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIm1heFJlc3BvbnNlVGltZUlucHV0LnZhbHVlXCIgY2xhc3M9XCJpbnB1dC1ncm91cC1hcHBlbmRcIj5cclxuICAgICAgICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1saW5rIHB4LTJcIlxyXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCInQWJwVWk6OkNsZWFyJyB8IGFicExvY2FsaXphdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgbWF4UmVzcG9uc2VUaW1lRGF0ZXBpY2tlci53cml0ZVZhbHVlKG51bGwpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgbWF4UmVzcG9uc2VUaW1lRGF0ZXBpY2tlci5tYW51YWxEYXRlQ2hhbmdlKG51bGwsIHRydWUpXHJcbiAgICAgICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtdGltZXNcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtc20tYXV0byBhbGlnbi1zZWxmLWVuZCBtYi0zXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTYgY29sLXNtLWF1dG8gZC1ncmlkXCI+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tb3V0bGluZS1wcmltYXJ5XCIgKGNsaWNrKT1cImNsZWFyRmlsdGVycygpXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuPnt7ICdBYnBVaTo6Q2xlYXInIHwgYWJwTG9jYWxpemF0aW9uIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC02IGNvbC1zbS1hdXRvIGQtZ3JpZFwiPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnlcIiAoY2xpY2spPVwibGlzdC5nZXQoKVwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3Bhbj57eyAnQWJwVWk6OlJlZnJlc2gnIHwgYWJwTG9jYWxpemF0aW9uIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZm9ybT5cclxuICAgIDwvYWJwLWFkdmFuY2VkLWVudGl0eS1maWx0ZXJzLWZvcm0+XHJcbiAgPC9hYnAtYWR2YW5jZWQtZW50aXR5LWZpbHRlcnM+XHJcblxyXG4gIDxkaXYgY2xhc3M9XCJjYXJkXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5XCI+XHJcbiAgICAgIDxuZ3gtZGF0YXRhYmxlIFtyb3dzXT1cImRhdGEuaXRlbXNcIiBbY291bnRdPVwiZGF0YS50b3RhbENvdW50XCIgW2xpc3RdPVwibGlzdFwiIGRlZmF1bHQ+XHJcbiAgICAgICAgPG5neC1kYXRhdGFibGUtY29sdW1uXHJcbiAgICAgICAgICBbbmFtZV09XCInQWJwVWk6OkFjdGlvbnMnIHwgYWJwTG9jYWxpemF0aW9uXCJcclxuICAgICAgICAgIFttYXhXaWR0aF09XCIxNTBcIlxyXG4gICAgICAgICAgW3dpZHRoXT1cIjE1MFwiXHJcbiAgICAgICAgICBbc29ydGFibGVdPVwiZmFsc2VcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtcm93PVwicm93XCIgbGV0LWk9XCJyb3dJbmRleFwiIG5neC1kYXRhdGFibGUtY2VsbC10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgPGRpdiBuZ2JEcm9wZG93biBjb250YWluZXI9XCJib2R5XCIgY2xhc3M9XCJkLWlubGluZS1ibG9ja1wiPlxyXG4gICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IGJ0bi1zbSBkcm9wZG93bi10b2dnbGVcIlxyXG4gICAgICAgICAgICAgICAgZGF0YS10b2dnbGU9XCJkcm9wZG93blwiXHJcbiAgICAgICAgICAgICAgICBhcmlhLWhhc3BvcHVwPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICBuZ2JEcm9wZG93blRvZ2dsZVxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtY29nIG1lLTFcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICAgICAgICB7eyAnQWJwVWk6OkFjdGlvbnMnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgICAgPC9idXR0b24+XHJcblxyXG4gICAgICAgICAgICAgIDxkaXYgbmdiRHJvcGRvd25NZW51PlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICBuZ2JEcm9wZG93bkl0ZW1cclxuICAgICAgICAgICAgICAgICAgKmFicFBlcm1pc3Npb249XCInT3ZvbHQuRnVlbEludGVncmF0aW9uTG9ncy5FZGl0J1wiXHJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJ1cGRhdGUocm93KVwiXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgIHt7ICdBYnBVaTo6RWRpdCcgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG5cclxuICAgICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgICAgbmdiRHJvcGRvd25JdGVtXHJcbiAgICAgICAgICAgICAgICAgICphYnBQZXJtaXNzaW9uPVwiJ092b2x0LkZ1ZWxJbnRlZ3JhdGlvbkxvZ3MuRGVsZXRlJ1wiXHJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJkZWxldGUocm93KVwiXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgIHt7ICdBYnBVaTo6RGVsZXRlJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L25neC1kYXRhdGFibGUtY29sdW1uPlxyXG5cclxuICAgICAgICA8bmd4LWRhdGF0YWJsZS1jb2x1bW4gbmFtZT1cInt7ICdPdm9sdDo6UGF0aCcgfCBhYnBMb2NhbGl6YXRpb24gfX1cIiBwcm9wPVwicGF0aFwiPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1yb3c9XCJyb3dcIiBuZ3gtZGF0YXRhYmxlLWNlbGwtdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIHt7IHJvdy5wYXRoIH19XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvbmd4LWRhdGF0YWJsZS1jb2x1bW4+XHJcblxyXG4gICAgICAgIDxuZ3gtZGF0YXRhYmxlLWNvbHVtbiBuYW1lPVwie3sgJ092b2x0OjpNZXRob2QnIHwgYWJwTG9jYWxpemF0aW9uIH19XCIgcHJvcD1cIm1ldGhvZFwiPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1yb3c9XCJyb3dcIiBuZ3gtZGF0YXRhYmxlLWNlbGwtdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIHt7IHJvdy5tZXRob2QgfX1cclxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC9uZ3gtZGF0YXRhYmxlLWNvbHVtbj5cclxuXHJcbiAgICAgICAgPG5neC1kYXRhdGFibGUtY29sdW1uXHJcbiAgICAgICAgICBuYW1lPVwie3sgJ092b2x0OjpSZXF1ZXN0Qm9keScgfCBhYnBMb2NhbGl6YXRpb24gfX1cIlxyXG4gICAgICAgICAgcHJvcD1cInJlcXVlc3RCb2R5XCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LXJvdz1cInJvd1wiIG5neC1kYXRhdGFibGUtY2VsbC10ZW1wbGF0ZT5cclxuICAgICAgICAgICAge3sgcm93LnJlcXVlc3RCb2R5IH19XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvbmd4LWRhdGF0YWJsZS1jb2x1bW4+XHJcblxyXG4gICAgICAgIDxuZ3gtZGF0YXRhYmxlLWNvbHVtblxyXG4gICAgICAgICAgbmFtZT1cInt7ICdPdm9sdDo6UmVzcG9uc2VCb2R5JyB8IGFicExvY2FsaXphdGlvbiB9fVwiXHJcbiAgICAgICAgICBwcm9wPVwicmVzcG9uc2VCb2R5XCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LXJvdz1cInJvd1wiIG5neC1kYXRhdGFibGUtY2VsbC10ZW1wbGF0ZT5cclxuICAgICAgICAgICAge3sgcm93LnJlc3BvbnNlQm9keSB9fVxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L25neC1kYXRhdGFibGUtY29sdW1uPlxyXG5cclxuICAgICAgICA8bmd4LWRhdGF0YWJsZS1jb2x1bW4gbmFtZT1cInt7ICdPdm9sdDo6U3RhdHVzQ29kZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cIiBwcm9wPVwic3RhdHVzQ29kZVwiPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1yb3c9XCJyb3dcIiBuZ3gtZGF0YXRhYmxlLWNlbGwtdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIHt7IHJvdy5zdGF0dXNDb2RlIH19XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvbmd4LWRhdGF0YWJsZS1jb2x1bW4+XHJcblxyXG4gICAgICAgIDxuZ3gtZGF0YXRhYmxlLWNvbHVtblxyXG4gICAgICAgICAgbmFtZT1cInt7ICdPdm9sdDo6UmVxdWVzdFRpbWUnIHwgYWJwTG9jYWxpemF0aW9uIH19XCJcclxuICAgICAgICAgIHByb3A9XCJyZXF1ZXN0VGltZVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1yb3c9XCJyb3dcIiBuZ3gtZGF0YXRhYmxlLWNlbGwtdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIHt7IHJvdy5yZXF1ZXN0VGltZSB8IGRhdGUgfX1cclxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC9uZ3gtZGF0YXRhYmxlLWNvbHVtbj5cclxuXHJcbiAgICAgICAgPG5neC1kYXRhdGFibGUtY29sdW1uXHJcbiAgICAgICAgICBuYW1lPVwie3sgJ092b2x0OjpSZXNwb25zZVRpbWUnIHwgYWJwTG9jYWxpemF0aW9uIH19XCJcclxuICAgICAgICAgIHByb3A9XCJyZXNwb25zZVRpbWVcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtcm93PVwicm93XCIgbmd4LWRhdGF0YWJsZS1jZWxsLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICB7eyByb3cucmVzcG9uc2VUaW1lIHwgZGF0ZSB9fVxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L25neC1kYXRhdGFibGUtY29sdW1uPlxyXG4gICAgICA8L25neC1kYXRhdGFibGU+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9hYnAtcGFnZT5cclxuXHJcbjxhYnAtbW9kYWwgW2J1c3ldPVwiaXNNb2RhbEJ1c3lcIiBbKHZpc2libGUpXT1cImlzTW9kYWxPcGVuXCI+XHJcbiAgPG5nLXRlbXBsYXRlICNhYnBIZWFkZXI+XHJcbiAgICA8aDM+XHJcbiAgICAgIHt7IChzZWxlY3RlZCA/ICdBYnBVaTo6RWRpdCcgOiAnT3ZvbHQ6Ok5ld0Z1ZWxJbnRlZ3JhdGlvbkxvZycpIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICA8L2gzPlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gIDxuZy10ZW1wbGF0ZSAjYWJwQm9keT5cclxuICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwiZm9ybVwiIGlkPVwiZnVlbC1pbnRlZ3JhdGlvbi1sb2dcIiAobmdTdWJtaXQpPVwic3VibWl0Rm9ybSgpXCIgdmFsaWRhdGVPblN1Ym1pdD5cclxuICAgICAgPGRpdiBjbGFzcz1cIm10LTIgZmFkZS1pbi10b3BcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cImZ1ZWwtaW50ZWdyYXRpb24tbG9nLXBhdGhcIj5cclxuICAgICAgICAgICAge3sgJ092b2x0OjpQYXRoJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgPC9sYWJlbD5cclxuXHJcbiAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgaWQ9XCJmdWVsLWludGVncmF0aW9uLWxvZy1wYXRoXCJcclxuICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwicGF0aFwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgYXV0b2ZvY3VzXHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiZnVlbC1pbnRlZ3JhdGlvbi1sb2ctbWV0aG9kXCI+XHJcbiAgICAgICAgICAgIHt7ICdPdm9sdDo6TWV0aG9kJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgPC9sYWJlbD5cclxuXHJcbiAgICAgICAgICA8aW5wdXQgaWQ9XCJmdWVsLWludGVncmF0aW9uLWxvZy1tZXRob2RcIiBmb3JtQ29udHJvbE5hbWU9XCJtZXRob2RcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIC8+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJmdWVsLWludGVncmF0aW9uLWxvZy1yZXF1ZXN0LWJvZHlcIj5cclxuICAgICAgICAgICAge3sgJ092b2x0OjpSZXF1ZXN0Qm9keScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgIGlkPVwiZnVlbC1pbnRlZ3JhdGlvbi1sb2ctcmVxdWVzdC1ib2R5XCJcclxuICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwicmVxdWVzdEJvZHlcIlxyXG4gICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiZnVlbC1pbnRlZ3JhdGlvbi1sb2ctcmVzcG9uc2UtYm9keVwiPlxyXG4gICAgICAgICAgICB7eyAnT3ZvbHQ6OlJlc3BvbnNlQm9keScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgIGlkPVwiZnVlbC1pbnRlZ3JhdGlvbi1sb2ctcmVzcG9uc2UtYm9keVwiXHJcbiAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInJlc3BvbnNlQm9keVwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgIC8+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJmdWVsLWludGVncmF0aW9uLWxvZy1zdGF0dXMtY29kZVwiPlxyXG4gICAgICAgICAgICB7eyAnT3ZvbHQ6OlN0YXR1c0NvZGUnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICBpZD1cImZ1ZWwtaW50ZWdyYXRpb24tbG9nLXN0YXR1cy1jb2RlXCJcclxuICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwic3RhdHVzQ29kZVwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgIC8+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJmdWVsLWludGVncmF0aW9uLWxvZy1yZXF1ZXN0LXRpbWVcIj5cclxuICAgICAgICAgICAge3sgJ092b2x0OjpSZXF1ZXN0VGltZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwXCIgdmFsaWRhdGlvblRhcmdldD5cclxuICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgcmVhZG9ubHlcclxuICAgICAgICAgICAgICBpZD1cImZ1ZWwtaW50ZWdyYXRpb24tbG9nLXJlcXVlc3QtdGltZVwiXHJcbiAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwicmVxdWVzdFRpbWVcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICBuZ2JEYXRlcGlja2VyXHJcbiAgICAgICAgICAgICAgI3JlcXVlc3RUaW1lSW5wdXRcclxuICAgICAgICAgICAgICAjcmVxdWVzdFRpbWVEYXRlcGlja2VyPVwibmdiRGF0ZXBpY2tlclwiXHJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cInJlcXVlc3RUaW1lRGF0ZXBpY2tlci5vcGVuKClcIlxyXG4gICAgICAgICAgICAgIChrZXl1cC5zcGFjZSk9XCJyZXF1ZXN0VGltZURhdGVwaWNrZXIub3BlbigpXCJcclxuICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cInJlcXVlc3RUaW1lSW5wdXQudmFsdWVcIiBjbGFzcz1cImlucHV0LWdyb3VwLWFwcGVuZFwiPlxyXG4gICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1saW5rIHB4LTJcIlxyXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICBbdGl0bGVdPVwiJ0FicFVpOjpDbGVhcicgfCBhYnBMb2NhbGl6YXRpb25cIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIlxyXG4gICAgICAgICAgICAgICAgICByZXF1ZXN0VGltZURhdGVwaWNrZXIud3JpdGVWYWx1ZShudWxsKTtcclxuICAgICAgICAgICAgICAgICAgcmVxdWVzdFRpbWVEYXRlcGlja2VyLm1hbnVhbERhdGVDaGFuZ2UobnVsbCwgdHJ1ZSlcclxuICAgICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS10aW1lc1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cclxuICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cImZ1ZWwtaW50ZWdyYXRpb24tbG9nLXJlc3BvbnNlLXRpbWVcIj5cclxuICAgICAgICAgICAge3sgJ092b2x0OjpSZXNwb25zZVRpbWUnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cFwiIHZhbGlkYXRpb25UYXJnZXQ+XHJcbiAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgIHJlYWRvbmx5XHJcbiAgICAgICAgICAgICAgaWQ9XCJmdWVsLWludGVncmF0aW9uLWxvZy1yZXNwb25zZS10aW1lXCJcclxuICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJyZXNwb25zZVRpbWVcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICBuZ2JEYXRlcGlja2VyXHJcbiAgICAgICAgICAgICAgI3Jlc3BvbnNlVGltZUlucHV0XHJcbiAgICAgICAgICAgICAgI3Jlc3BvbnNlVGltZURhdGVwaWNrZXI9XCJuZ2JEYXRlcGlja2VyXCJcclxuICAgICAgICAgICAgICAoY2xpY2spPVwicmVzcG9uc2VUaW1lRGF0ZXBpY2tlci5vcGVuKClcIlxyXG4gICAgICAgICAgICAgIChrZXl1cC5zcGFjZSk9XCJyZXNwb25zZVRpbWVEYXRlcGlja2VyLm9wZW4oKVwiXHJcbiAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJyZXNwb25zZVRpbWVJbnB1dC52YWx1ZVwiIGNsYXNzPVwiaW5wdXQtZ3JvdXAtYXBwZW5kXCI+XHJcbiAgICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLWxpbmsgcHgtMlwiXHJcbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgIFt0aXRsZV09XCInQWJwVWk6OkNsZWFyJyB8IGFicExvY2FsaXphdGlvblwiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiXHJcbiAgICAgICAgICAgICAgICAgIHJlc3BvbnNlVGltZURhdGVwaWNrZXIud3JpdGVWYWx1ZShudWxsKTtcclxuICAgICAgICAgICAgICAgICAgcmVzcG9uc2VUaW1lRGF0ZXBpY2tlci5tYW51YWxEYXRlQ2hhbmdlKG51bGwsIHRydWUpXHJcbiAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtdGltZXNcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9mb3JtPlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gIDxuZy10ZW1wbGF0ZSAjYWJwRm9vdGVyPlxyXG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXNlY29uZGFyeVwiIGFicENsb3NlPlxyXG4gICAgICB7eyAnQWJwVWk6OkNhbmNlbCcgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgIDwvYnV0dG9uPlxyXG5cclxuICAgIDxhYnAtYnV0dG9uIGljb25DbGFzcz1cImZhIGZhLWNoZWNrXCIgYnV0dG9uVHlwZT1cInN1Ym1pdFwiIGZvcm1OYW1lPVwiZnVlbC1pbnRlZ3JhdGlvbi1sb2dcIj5cclxuICAgICAge3sgJ0FicFVpOjpTYXZlJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgPC9hYnAtYnV0dG9uPlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcbjwvYWJwLW1vZGFsPlxyXG4iXX0=
@@ -0,0 +1,26 @@
1
+ import { AuthGuard, PermissionGuard } from '@abp/ng.core';
2
+ import { NgModule } from '@angular/core';
3
+ import { RouterModule } from '@angular/router';
4
+ import { FuelIntegrationLogComponent } from './components/fuel-integration-log.component';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@angular/router";
7
+ const routes = [
8
+ {
9
+ path: '',
10
+ component: FuelIntegrationLogComponent,
11
+ canActivate: [AuthGuard, PermissionGuard],
12
+ },
13
+ ];
14
+ export class FuelIntegrationLogRoutingModule {
15
+ }
16
+ FuelIntegrationLogRoutingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: FuelIntegrationLogRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
17
+ FuelIntegrationLogRoutingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: FuelIntegrationLogRoutingModule, imports: [i1.RouterModule], exports: [RouterModule] });
18
+ FuelIntegrationLogRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: FuelIntegrationLogRoutingModule, imports: [RouterModule.forChild(routes), RouterModule] });
19
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: FuelIntegrationLogRoutingModule, decorators: [{
20
+ type: NgModule,
21
+ args: [{
22
+ imports: [RouterModule.forChild(routes)],
23
+ exports: [RouterModule],
24
+ }]
25
+ }] });
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVlbC1pbnRlZ3JhdGlvbi1sb2ctcm91dGluZy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vdm9sdC9zcmMvbGliL2Z1ZWwtaW50ZWdyYXRpb24tbG9ncy9mdWVsLWludGVncmF0aW9uLWxvZy9mdWVsLWludGVncmF0aW9uLWxvZy1yb3V0aW5nLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMxRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQVUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQzs7O0FBRTFGLE1BQU0sTUFBTSxHQUFXO0lBQ3JCO1FBQ0UsSUFBSSxFQUFFLEVBQUU7UUFDUixTQUFTLEVBQUUsMkJBQTJCO1FBQ3RDLFdBQVcsRUFBRSxDQUFDLFNBQVMsRUFBRSxlQUFlLENBQUM7S0FDMUM7Q0FDRixDQUFDO0FBTUYsTUFBTSxPQUFPLCtCQUErQjs7NEhBQS9CLCtCQUErQjs2SEFBL0IsK0JBQStCLHdDQUZoQyxZQUFZOzZIQUVYLCtCQUErQixZQUhoQyxZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUM3QixZQUFZOzJGQUVYLCtCQUErQjtrQkFKM0MsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUN4QyxPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7aUJBQ3hCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXV0aEd1YXJkLCBQZXJtaXNzaW9uR3VhcmQgfSBmcm9tICdAYWJwL25nLmNvcmUnO1xyXG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBSb3V0ZXJNb2R1bGUsIFJvdXRlcyB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IEZ1ZWxJbnRlZ3JhdGlvbkxvZ0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9mdWVsLWludGVncmF0aW9uLWxvZy5jb21wb25lbnQnO1xyXG5cclxuY29uc3Qgcm91dGVzOiBSb3V0ZXMgPSBbXHJcbiAge1xyXG4gICAgcGF0aDogJycsXHJcbiAgICBjb21wb25lbnQ6IEZ1ZWxJbnRlZ3JhdGlvbkxvZ0NvbXBvbmVudCxcclxuICAgIGNhbkFjdGl2YXRlOiBbQXV0aEd1YXJkLCBQZXJtaXNzaW9uR3VhcmRdLFxyXG4gIH0sXHJcbl07XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGltcG9ydHM6IFtSb3V0ZXJNb2R1bGUuZm9yQ2hpbGQocm91dGVzKV0sXHJcbiAgZXhwb3J0czogW1JvdXRlck1vZHVsZV0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGdWVsSW50ZWdyYXRpb25Mb2dSb3V0aW5nTW9kdWxlIHt9XHJcbiJdfQ==
@@ -0,0 +1,52 @@
1
+ import { CoreModule } from '@abp/ng.core';
2
+ import { ThemeSharedModule } from '@abp/ng.theme.shared';
3
+ import { NgModule } from '@angular/core';
4
+ import { NgbCollapseModule, NgbDatepickerModule, NgbDropdownModule, } from '@ng-bootstrap/ng-bootstrap';
5
+ import { NgxValidateCoreModule } from '@ngx-validate/core';
6
+ import { CommercialUiModule } from '@volo/abp.commercial.ng.ui';
7
+ import { PageModule } from '@abp/ng.components/page';
8
+ import { FuelIntegrationLogComponent } from './components/fuel-integration-log.component';
9
+ import { FuelIntegrationLogRoutingModule } from './fuel-integration-log-routing.module';
10
+ import * as i0 from "@angular/core";
11
+ export class FuelIntegrationLogModule {
12
+ }
13
+ FuelIntegrationLogModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: FuelIntegrationLogModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
14
+ FuelIntegrationLogModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: FuelIntegrationLogModule, declarations: [FuelIntegrationLogComponent], imports: [FuelIntegrationLogRoutingModule,
15
+ CoreModule,
16
+ ThemeSharedModule,
17
+ CommercialUiModule,
18
+ NgxValidateCoreModule,
19
+ NgbCollapseModule,
20
+ NgbDatepickerModule,
21
+ NgbDropdownModule,
22
+ PageModule] });
23
+ FuelIntegrationLogModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: FuelIntegrationLogModule, imports: [FuelIntegrationLogRoutingModule,
24
+ CoreModule,
25
+ ThemeSharedModule,
26
+ CommercialUiModule,
27
+ NgxValidateCoreModule,
28
+ NgbCollapseModule,
29
+ NgbDatepickerModule,
30
+ NgbDropdownModule,
31
+ PageModule] });
32
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: FuelIntegrationLogModule, decorators: [{
33
+ type: NgModule,
34
+ args: [{
35
+ declarations: [FuelIntegrationLogComponent],
36
+ imports: [
37
+ FuelIntegrationLogRoutingModule,
38
+ CoreModule,
39
+ ThemeSharedModule,
40
+ CommercialUiModule,
41
+ NgxValidateCoreModule,
42
+ NgbCollapseModule,
43
+ NgbDatepickerModule,
44
+ NgbDropdownModule,
45
+ PageModule,
46
+ ],
47
+ }]
48
+ }] });
49
+ export function loadFuelIntegrationLogModuleAsChild() {
50
+ return Promise.resolve(FuelIntegrationLogModule);
51
+ }
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVlbC1pbnRlZ3JhdGlvbi1sb2cubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb3ZvbHQvc3JjL2xpYi9mdWVsLWludGVncmF0aW9uLWxvZ3MvZnVlbC1pbnRlZ3JhdGlvbi1sb2cvZnVlbC1pbnRlZ3JhdGlvbi1sb2cubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDMUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQ0wsaUJBQWlCLEVBQ2pCLG1CQUFtQixFQUNuQixpQkFBaUIsR0FDbEIsTUFBTSw0QkFBNEIsQ0FBQztBQUNwQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDckQsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDMUYsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7O0FBaUJ4RixNQUFNLE9BQU8sd0JBQXdCOztxSEFBeEIsd0JBQXdCO3NIQUF4Qix3QkFBd0IsaUJBZHBCLDJCQUEyQixhQUV4QywrQkFBK0I7UUFDL0IsVUFBVTtRQUNWLGlCQUFpQjtRQUNqQixrQkFBa0I7UUFDbEIscUJBQXFCO1FBQ3JCLGlCQUFpQjtRQUNqQixtQkFBbUI7UUFDbkIsaUJBQWlCO1FBRWpCLFVBQVU7c0hBR0Qsd0JBQXdCLFlBWmpDLCtCQUErQjtRQUMvQixVQUFVO1FBQ1YsaUJBQWlCO1FBQ2pCLGtCQUFrQjtRQUNsQixxQkFBcUI7UUFDckIsaUJBQWlCO1FBQ2pCLG1CQUFtQjtRQUNuQixpQkFBaUI7UUFFakIsVUFBVTsyRkFHRCx3QkFBd0I7a0JBZnBDLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsMkJBQTJCLENBQUM7b0JBQzNDLE9BQU8sRUFBRTt3QkFDUCwrQkFBK0I7d0JBQy9CLFVBQVU7d0JBQ1YsaUJBQWlCO3dCQUNqQixrQkFBa0I7d0JBQ2xCLHFCQUFxQjt3QkFDckIsaUJBQWlCO3dCQUNqQixtQkFBbUI7d0JBQ25CLGlCQUFpQjt3QkFFakIsVUFBVTtxQkFDWDtpQkFDRjs7QUFHRCxNQUFNLFVBQVUsbUNBQW1DO0lBQ2pELE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO0FBQ25ELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb3JlTW9kdWxlIH0gZnJvbSAnQGFicC9uZy5jb3JlJztcclxuaW1wb3J0IHsgVGhlbWVTaGFyZWRNb2R1bGUgfSBmcm9tICdAYWJwL25nLnRoZW1lLnNoYXJlZCc7XHJcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgTmdiQ29sbGFwc2VNb2R1bGUsXHJcbiAgTmdiRGF0ZXBpY2tlck1vZHVsZSxcclxuICBOZ2JEcm9wZG93bk1vZHVsZSxcclxufSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XHJcbmltcG9ydCB7IE5neFZhbGlkYXRlQ29yZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdmFsaWRhdGUvY29yZSc7XHJcbmltcG9ydCB7IENvbW1lcmNpYWxVaU1vZHVsZSB9IGZyb20gJ0B2b2xvL2FicC5jb21tZXJjaWFsLm5nLnVpJztcclxuaW1wb3J0IHsgUGFnZU1vZHVsZSB9IGZyb20gJ0BhYnAvbmcuY29tcG9uZW50cy9wYWdlJztcclxuaW1wb3J0IHsgRnVlbEludGVncmF0aW9uTG9nQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2Z1ZWwtaW50ZWdyYXRpb24tbG9nLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEZ1ZWxJbnRlZ3JhdGlvbkxvZ1JvdXRpbmdNb2R1bGUgfSBmcm9tICcuL2Z1ZWwtaW50ZWdyYXRpb24tbG9nLXJvdXRpbmcubW9kdWxlJztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbRnVlbEludGVncmF0aW9uTG9nQ29tcG9uZW50XSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBGdWVsSW50ZWdyYXRpb25Mb2dSb3V0aW5nTW9kdWxlLFxyXG4gICAgQ29yZU1vZHVsZSxcclxuICAgIFRoZW1lU2hhcmVkTW9kdWxlLFxyXG4gICAgQ29tbWVyY2lhbFVpTW9kdWxlLFxyXG4gICAgTmd4VmFsaWRhdGVDb3JlTW9kdWxlLFxyXG4gICAgTmdiQ29sbGFwc2VNb2R1bGUsXHJcbiAgICBOZ2JEYXRlcGlja2VyTW9kdWxlLFxyXG4gICAgTmdiRHJvcGRvd25Nb2R1bGUsXHJcblxyXG4gICAgUGFnZU1vZHVsZSxcclxuICBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRnVlbEludGVncmF0aW9uTG9nTW9kdWxlIHt9XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gbG9hZEZ1ZWxJbnRlZ3JhdGlvbkxvZ01vZHVsZUFzQ2hpbGQoKSB7XHJcbiAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShGdWVsSW50ZWdyYXRpb25Mb2dNb2R1bGUpO1xyXG59XHJcbiJdfQ==
@@ -3,6 +3,7 @@ import { RouterModule } from '@angular/router';
3
3
  import { OvoltComponent } from './components/ovolt.component';
4
4
  import { loadHitProcessLogModuleAsChild } from './components/hit-process-logs/hit-process-log.module';
5
5
  import { loadHitSystemParameterModuleAsChild } from './components/hit-system-parameters/hit-system-parameter.module';
6
+ import { loadHitFuelIntegrationLogModuleAsChild } from './components/hit-fuel-integration-logs/hit-fuel-integration-log.module';
6
7
  import * as i0 from "@angular/core";
7
8
  import * as i1 from "@angular/router";
8
9
  const routes = [
@@ -11,8 +12,9 @@ const routes = [
11
12
  pathMatch: 'full',
12
13
  component: OvoltComponent,
13
14
  },
14
- { path: 'process-logs', loadChildren: loadHitProcessLogModuleAsChild },
15
15
  { path: 'system-parameters', loadChildren: loadHitSystemParameterModuleAsChild },
16
+ { path: 'process-logs', loadChildren: loadHitProcessLogModuleAsChild },
17
+ { path: 'fuel-integration-logs', loadChildren: loadHitFuelIntegrationLogModuleAsChild },
16
18
  ];
17
19
  export class OvoltRoutingModule {
18
20
  }
@@ -26,4 +28,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
26
28
  exports: [RouterModule],
27
29
  }]
28
30
  }] });
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZvbHQtcm91dGluZy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9vdm9sdC9zcmMvbGliL292b2x0LXJvdXRpbmcubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBVSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUU5RCxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUN0RyxPQUFPLEVBQUUsbUNBQW1DLEVBQUUsTUFBTSxnRUFBZ0UsQ0FBQzs7O0FBRXJILE1BQU0sTUFBTSxHQUFXO0lBQ3JCO1FBQ0UsSUFBSSxFQUFFLEVBQUU7UUFDUixTQUFTLEVBQUUsTUFBTTtRQUNqQixTQUFTLEVBQUUsY0FBYztLQUMxQjtJQUNELEVBQUUsSUFBSSxFQUFFLGNBQWMsRUFBRSxZQUFZLEVBQUUsOEJBQThCLEVBQUU7SUFDdEUsRUFBRSxJQUFJLEVBQUUsbUJBQW1CLEVBQUUsWUFBWSxFQUFFLG1DQUFtQyxFQUFFO0NBQ2pGLENBQUM7QUFNRixNQUFNLE9BQU8sa0JBQWtCOzsrR0FBbEIsa0JBQWtCO2dIQUFsQixrQkFBa0Isd0NBRm5CLFlBQVk7Z0hBRVgsa0JBQWtCLFlBSG5CLFlBQVksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQzdCLFlBQVk7MkZBRVgsa0JBQWtCO2tCQUo5QixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7b0JBQ3hDLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztpQkFDeEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyTW9kdWxlLCBSb3V0ZXMgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgT3ZvbHRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvb3ZvbHQuY29tcG9uZW50JztcbmltcG9ydCB7IGxvYWRQcm9jZXNzTG9nTW9kdWxlQXNDaGlsZCB9IGZyb20gJy4vcHJvY2Vzcy1sb2dzL3Byb2Nlc3MtbG9nL3Byb2Nlc3MtbG9nLm1vZHVsZSc7XG5pbXBvcnQgeyBsb2FkSGl0UHJvY2Vzc0xvZ01vZHVsZUFzQ2hpbGQgfSBmcm9tICcuL2NvbXBvbmVudHMvaGl0LXByb2Nlc3MtbG9ncy9oaXQtcHJvY2Vzcy1sb2cubW9kdWxlJztcbmltcG9ydCB7IGxvYWRIaXRTeXN0ZW1QYXJhbWV0ZXJNb2R1bGVBc0NoaWxkIH0gZnJvbSAnLi9jb21wb25lbnRzL2hpdC1zeXN0ZW0tcGFyYW1ldGVycy9oaXQtc3lzdGVtLXBhcmFtZXRlci5tb2R1bGUnO1xuXG5jb25zdCByb3V0ZXM6IFJvdXRlcyA9IFtcbiAge1xuICAgIHBhdGg6ICcnLFxuICAgIHBhdGhNYXRjaDogJ2Z1bGwnLFxuICAgIGNvbXBvbmVudDogT3ZvbHRDb21wb25lbnQsXG4gIH0sXG4gIHsgcGF0aDogJ3Byb2Nlc3MtbG9ncycsIGxvYWRDaGlsZHJlbjogbG9hZEhpdFByb2Nlc3NMb2dNb2R1bGVBc0NoaWxkIH0sXG4gIHsgcGF0aDogJ3N5c3RlbS1wYXJhbWV0ZXJzJywgbG9hZENoaWxkcmVuOiBsb2FkSGl0U3lzdGVtUGFyYW1ldGVyTW9kdWxlQXNDaGlsZCB9LFxuXTtcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1JvdXRlck1vZHVsZS5mb3JDaGlsZChyb3V0ZXMpXSxcbiAgZXhwb3J0czogW1JvdXRlck1vZHVsZV0sXG59KVxuZXhwb3J0IGNsYXNzIE92b2x0Um91dGluZ01vZHVsZSB7fVxuIl19
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZvbHQtcm91dGluZy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9vdm9sdC9zcmMvbGliL292b2x0LXJvdXRpbmcubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBVSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUU5RCxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUN0RyxPQUFPLEVBQUUsbUNBQW1DLEVBQUUsTUFBTSxnRUFBZ0UsQ0FBQztBQUVySCxPQUFPLEVBQUUsc0NBQXNDLEVBQUUsTUFBTSx3RUFBd0UsQ0FBQzs7O0FBRWhJLE1BQU0sTUFBTSxHQUFXO0lBQ3JCO1FBQ0UsSUFBSSxFQUFFLEVBQUU7UUFDUixTQUFTLEVBQUUsTUFBTTtRQUNqQixTQUFTLEVBQUUsY0FBYztLQUMxQjtJQUNELEVBQUUsSUFBSSxFQUFFLG1CQUFtQixFQUFFLFlBQVksRUFBRSxtQ0FBbUMsRUFBRTtJQUNoRixFQUFFLElBQUksRUFBRSxjQUFjLEVBQUUsWUFBWSxFQUFFLDhCQUE4QixFQUFFO0lBQ3RFLEVBQUUsSUFBSSxFQUFFLHVCQUF1QixFQUFFLFlBQVksRUFBRSxzQ0FBc0MsRUFBRTtDQUN4RixDQUFDO0FBTUYsTUFBTSxPQUFPLGtCQUFrQjs7K0dBQWxCLGtCQUFrQjtnSEFBbEIsa0JBQWtCLHdDQUZuQixZQUFZO2dIQUVYLGtCQUFrQixZQUhuQixZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUM3QixZQUFZOzJGQUVYLGtCQUFrQjtrQkFKOUIsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUN4QyxPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7aUJBQ3hCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUm91dGVyTW9kdWxlLCBSb3V0ZXMgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBPdm9sdENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9vdm9sdC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBsb2FkUHJvY2Vzc0xvZ01vZHVsZUFzQ2hpbGQgfSBmcm9tICcuL3Byb2Nlc3MtbG9ncy9wcm9jZXNzLWxvZy9wcm9jZXNzLWxvZy5tb2R1bGUnO1xyXG5pbXBvcnQgeyBsb2FkSGl0UHJvY2Vzc0xvZ01vZHVsZUFzQ2hpbGQgfSBmcm9tICcuL2NvbXBvbmVudHMvaGl0LXByb2Nlc3MtbG9ncy9oaXQtcHJvY2Vzcy1sb2cubW9kdWxlJztcclxuaW1wb3J0IHsgbG9hZEhpdFN5c3RlbVBhcmFtZXRlck1vZHVsZUFzQ2hpbGQgfSBmcm9tICcuL2NvbXBvbmVudHMvaGl0LXN5c3RlbS1wYXJhbWV0ZXJzL2hpdC1zeXN0ZW0tcGFyYW1ldGVyLm1vZHVsZSc7XHJcbmltcG9ydCB7IGxvYWRGdWVsSW50ZWdyYXRpb25Mb2dNb2R1bGVBc0NoaWxkIH0gZnJvbSAnLi9mdWVsLWludGVncmF0aW9uLWxvZ3MvZnVlbC1pbnRlZ3JhdGlvbi1sb2cvZnVlbC1pbnRlZ3JhdGlvbi1sb2cubW9kdWxlJztcclxuaW1wb3J0IHsgbG9hZEhpdEZ1ZWxJbnRlZ3JhdGlvbkxvZ01vZHVsZUFzQ2hpbGQgfSBmcm9tICcuL2NvbXBvbmVudHMvaGl0LWZ1ZWwtaW50ZWdyYXRpb24tbG9ncy9oaXQtZnVlbC1pbnRlZ3JhdGlvbi1sb2cubW9kdWxlJztcclxuXHJcbmNvbnN0IHJvdXRlczogUm91dGVzID0gW1xyXG4gIHtcclxuICAgIHBhdGg6ICcnLFxyXG4gICAgcGF0aE1hdGNoOiAnZnVsbCcsXHJcbiAgICBjb21wb25lbnQ6IE92b2x0Q29tcG9uZW50LFxyXG4gIH0sXHJcbiAgeyBwYXRoOiAnc3lzdGVtLXBhcmFtZXRlcnMnLCBsb2FkQ2hpbGRyZW46IGxvYWRIaXRTeXN0ZW1QYXJhbWV0ZXJNb2R1bGVBc0NoaWxkIH0sXHJcbiAgeyBwYXRoOiAncHJvY2Vzcy1sb2dzJywgbG9hZENoaWxkcmVuOiBsb2FkSGl0UHJvY2Vzc0xvZ01vZHVsZUFzQ2hpbGQgfSxcclxuICB7IHBhdGg6ICdmdWVsLWludGVncmF0aW9uLWxvZ3MnLCBsb2FkQ2hpbGRyZW46IGxvYWRIaXRGdWVsSW50ZWdyYXRpb25Mb2dNb2R1bGVBc0NoaWxkIH0sXHJcbl07XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGltcG9ydHM6IFtSb3V0ZXJNb2R1bGUuZm9yQ2hpbGQocm91dGVzKV0sXHJcbiAgZXhwb3J0czogW1JvdXRlck1vZHVsZV0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBPdm9sdFJvdXRpbmdNb2R1bGUge31cclxuIl19