@colijnit/transaction 12.1.15 → 12.1.16

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 (148) hide show
  1. package/bundles/colijnit-transaction.umd.js +2752 -471
  2. package/bundles/colijnit-transaction.umd.js.map +1 -1
  3. package/colijnit-transaction.d.ts +109 -100
  4. package/colijnit-transaction.metadata.json +1 -1
  5. package/esm2015/colijnit-transaction.js +110 -101
  6. package/esm2015/lib/assets/dictionary/text.properties.js +22 -2
  7. package/esm2015/lib/component/avatar/avatar.component.js +9 -6
  8. package/esm2015/lib/component/checkout/checkout.component.js +8 -7
  9. package/esm2015/lib/component/core/base/transaction-grid-base.component.js +5 -2
  10. package/esm2015/lib/component/core/relation/customer-groups.component.js +3 -3
  11. package/esm2015/lib/component/payment/payment.component.js +112 -30
  12. package/esm2015/lib/component/payment/payment.module.js +7 -3
  13. package/esm2015/lib/component/payment-tile/payment-tile.component.js +4 -2
  14. package/esm2015/lib/component/relation-address/relation-address.component.js +3 -3
  15. package/esm2015/lib/component/transaction/transaction.component.js +7 -3
  16. package/esm2015/lib/component/transaction-confirmation-history/transaction-confirmation-history.component.js +2 -2
  17. package/esm2015/lib/component/transaction-grid/transaction-base-grid/transaction-base-grid.component.js +7 -2
  18. package/esm2015/lib/component/transaction-grid/transaction-grid/transaction-grid.component.js +3 -1
  19. package/esm2015/lib/component/transaction-grid/transaction-history-grid/transaction-history-grid.component.js +31 -14
  20. package/esm2015/lib/component/transaction-grid/transaction-history-grid/transaction-history-grid.module.js +4 -3
  21. package/esm2015/lib/component/transaction-grid/transaction-received-goods-grid/transaction-received-goods-grid.component.js +131 -17
  22. package/esm2015/lib/component/transaction-grid/transaction-received-goods-grid/transaction-received-goods-grid.module.js +5 -3
  23. package/esm2015/lib/component/transaction-header/transaction-header-delivery/transaction-header-delivery.component.js +2 -2
  24. package/esm2015/lib/component/transaction-header/transaction-header-order/transaction-header-order.component.js +6 -2
  25. package/esm2015/lib/component/transaction-header/transaction-header-payment/transaction-header-payment.component.js +19 -2
  26. package/esm2015/lib/component/transaction-header/transaction-header-payment/transaction-header-payment.module.js +6 -3
  27. package/esm2015/lib/component/transaction-history-grid-status/transaction-history-grid-status.component.js +16 -3
  28. package/esm2015/lib/component/transaction-line-side-panel/transaction-line-side-panel.component.js +19 -7
  29. package/esm2015/lib/component/transaction-line-side-panel-purchase/transaction-line-side-panel-purchase.component.js +49 -6
  30. package/esm2015/lib/component/transaction-quick-access/transaction-quick-access/transaction-quick-access.component.js +1 -1
  31. package/esm2015/lib/component/transaction-quick-access/transaction-quick-access-received-goods/transaction-quick-access-received-goods.component.js +48 -10
  32. package/esm2015/lib/component/transaction-quick-access/transaction-quick-access-received-goods/transaction-quick-access-received-goods.module.js +4 -3
  33. package/esm2015/lib/component/transaction-receiving-goods-details/transaction-receiving-goods-details.component.js +131 -19
  34. package/esm2015/lib/component/transaction-receiving-goods-details/transaction-receiving-goods-details.module.js +5 -2
  35. package/esm2015/lib/component/transaction-receiving-goods-history/transaction-receiving-goods-history.component.js +57 -11
  36. package/esm2015/lib/component/transaction-receiving-goods-history/transaction-receiving-goods-history.module.js +6 -3
  37. package/esm2015/lib/component/transaction-search/service/filter-request.service.js +79 -21
  38. package/esm2015/lib/component/transaction-search/service/transaction-search.service.js +1 -1
  39. package/esm2015/lib/component/transaction-search/transaction-filter/transaction-filter.component.js +4 -7
  40. package/esm2015/lib/component/transaction-search/transaction-filter-content-article/transaction-filter-content-article.component.js +53 -37
  41. package/esm2015/lib/component/transaction-search/transaction-filter-content-logistics/transaction-filter-content-logistics.component.js +79 -76
  42. package/esm2015/lib/component/transaction-search/transaction-filter-content-order/transaction-filter-content-order.component.js +67 -66
  43. package/esm2015/lib/component/transaction-search/transaction-search-result/transaction-search-result.component.js +16 -6
  44. package/esm2015/lib/component/transaction-search/transaction-search-result/transaction-search-result.module.js +4 -2
  45. package/esm2015/lib/component/transaction-search/transaction-search.component.js +5 -6
  46. package/esm2015/lib/component/transaction-search/transaction-tile/transaction-tile.component.js +2 -5
  47. package/esm2015/lib/component/transaction-search-grid/transaction-search-grid.component.js +86 -0
  48. package/esm2015/lib/component/transaction-search-grid/transaction-search-grid.module.js +26 -0
  49. package/esm2015/lib/component/view-mode-buttons/view-mode-buttons.component.js +5 -3
  50. package/esm2015/lib/enum/icon.enum.js +3 -1
  51. package/esm2015/lib/enum/position-grid-row.enum.js +6 -0
  52. package/esm2015/lib/enum/status-type.enum.js +3 -1
  53. package/esm2015/lib/model/icon-svg.js +3 -1
  54. package/esm2015/lib/model/payment.viewmodel.js +6 -0
  55. package/esm2015/lib/model/received-goods-view-model.js +11 -0
  56. package/esm2015/lib/service/article-connector.service.js +60 -0
  57. package/esm2015/lib/service/article.service.js +25 -0
  58. package/esm2015/lib/service/ione-connector-adapter.service.js +48 -13
  59. package/esm2015/lib/service/options.service.js +3 -1
  60. package/esm2015/lib/service/payment.service.js +51 -0
  61. package/esm2015/lib/service/pending-reason.service.js +5 -5
  62. package/esm2015/lib/service/shared-connector.service.js +53 -0
  63. package/esm2015/lib/service/shared.service.js +38 -0
  64. package/esm2015/lib/service/transaction-connector.service.js +1015 -0
  65. package/esm2015/lib/service/transaction-event.service.js +29 -0
  66. package/esm2015/lib/service/transaction-image.service.js +5 -5
  67. package/esm2015/lib/service/transaction.service.js +25 -8
  68. package/fesm2015/colijnit-transaction.js +2464 -479
  69. package/fesm2015/colijnit-transaction.js.map +1 -1
  70. package/lib/component/avatar/avatar.component.d.ts +4 -2
  71. package/lib/component/core/base/components/transaction-header-block/style/_layout.scss +3 -3
  72. package/lib/component/core/base/components/transaction-header-block/style/_material-definition.scss +2 -2
  73. package/lib/component/core/base/transaction-grid-base.component.d.ts +2 -0
  74. package/lib/component/core/relation/customer-groups.component.d.ts +2 -2
  75. package/lib/component/payment/payment.component.d.ts +22 -5
  76. package/lib/component/payment/style/_layout.scss +23 -1
  77. package/lib/component/payment/style/_material-definition.scss +0 -1
  78. package/lib/component/payment/style/_theme.scss +24 -0
  79. package/lib/component/payment-tile/payment-tile.component.d.ts +1 -0
  80. package/lib/component/payment-tile/style/_layout.scss +2 -1
  81. package/lib/component/relation-address/relation-address.component.d.ts +2 -2
  82. package/lib/component/transaction/style/_material-definition.scss +1 -1
  83. package/lib/component/transaction/transaction.component.d.ts +2 -2
  84. package/lib/component/transaction-button-bar/style/_layout.scss +6 -3
  85. package/lib/component/transaction-button-bar/style/_material-definition.scss +4 -3
  86. package/lib/component/transaction-grid/transaction-base-grid/style/_theme.scss +6 -0
  87. package/lib/component/transaction-grid/transaction-grid/transaction-grid.component.d.ts +1 -0
  88. package/lib/component/transaction-grid/transaction-history-grid/style/_layout.scss +8 -0
  89. package/lib/component/transaction-grid/transaction-history-grid/style/_material-definition.scss +1 -0
  90. package/lib/component/transaction-grid/transaction-history-grid/transaction-history-grid.component.d.ts +10 -5
  91. package/lib/component/transaction-grid/transaction-received-goods-grid/transaction-received-goods-grid.component.d.ts +34 -1
  92. package/lib/component/transaction-header/transaction-header-delivery/style/_layout.scss +5 -0
  93. package/lib/component/transaction-header/transaction-header-delivery/style/_material-definition.scss +1 -0
  94. package/lib/component/transaction-header/transaction-header-delivery/style/_theme.scss +8 -0
  95. package/lib/component/transaction-header/transaction-header-order/style/_layout.scss +5 -0
  96. package/lib/component/transaction-header/transaction-header-payment/style/_layout.scss +1 -0
  97. package/lib/component/transaction-header/transaction-header-payment/transaction-header-payment.component.d.ts +2 -0
  98. package/lib/component/transaction-history-grid-status/style/_layout.scss +7 -7
  99. package/lib/component/transaction-history-grid-status/style/_material-definition.scss +8 -0
  100. package/lib/component/transaction-history-grid-status/transaction-history-grid-status.component.d.ts +2 -0
  101. package/lib/component/transaction-line/style/_layout.scss +2 -1
  102. package/lib/component/transaction-line/style/_material-definition.scss +4 -3
  103. package/lib/component/transaction-line/style/_theme.scss +5 -0
  104. package/lib/component/transaction-line-side-panel/style/_layout.scss +1 -0
  105. package/lib/component/transaction-line-side-panel/transaction-line-side-panel.component.d.ts +8 -3
  106. package/lib/component/transaction-line-side-panel-purchase/transaction-line-side-panel-purchase.component.d.ts +14 -1
  107. package/lib/component/transaction-quick-access/transaction-quick-access-received-goods/transaction-quick-access-received-goods.component.d.ts +24 -1
  108. package/lib/component/transaction-receiving-goods-details/style/_layout.scss +4 -4
  109. package/lib/component/transaction-receiving-goods-details/style/_material-definition.scss +3 -1
  110. package/lib/component/transaction-receiving-goods-details/transaction-receiving-goods-details.component.d.ts +27 -3
  111. package/lib/component/transaction-receiving-goods-history/transaction-receiving-goods-history.component.d.ts +14 -1
  112. package/lib/component/transaction-search/service/filter-request.service.d.ts +17 -5
  113. package/lib/component/transaction-search/style/_material-definition.scss +2 -0
  114. package/lib/component/transaction-search/transaction-filter-content-article/transaction-filter-content-article.component.d.ts +19 -9
  115. package/lib/component/transaction-search/transaction-filter-content-logistics/transaction-filter-content-logistics.component.d.ts +10 -12
  116. package/lib/component/transaction-search/transaction-filter-content-order/transaction-filter-content-order.component.d.ts +15 -19
  117. package/lib/component/transaction-search/transaction-search-result/style/_layout.scss +4 -0
  118. package/lib/component/transaction-search/transaction-search-result/style/_theme.scss +4 -0
  119. package/lib/component/transaction-search/transaction-search-result/transaction-search-result.component.d.ts +6 -2
  120. package/lib/component/transaction-search-grid/style/_layout.scss +6 -0
  121. package/lib/component/transaction-search-grid/style/_material-definition.scss +1 -0
  122. package/lib/component/transaction-search-grid/style/_theme.scss +6 -0
  123. package/lib/component/transaction-search-grid/style/material.scss +7 -0
  124. package/lib/component/transaction-search-grid/transaction-search-grid.component.d.ts +13 -0
  125. package/lib/component/transaction-search-grid/transaction-search-grid.module.d.ts +2 -0
  126. package/lib/component/view-mode-buttons/style/_material-definition.scss +1 -1
  127. package/lib/component/view-mode-buttons/view-mode-buttons.component.d.ts +4 -3
  128. package/lib/enum/icon.enum.d.ts +2 -0
  129. package/lib/enum/position-grid-row.enum.d.ts +4 -0
  130. package/lib/enum/status-type.enum.d.ts +3 -1
  131. package/lib/model/payment.viewmodel.d.ts +6 -0
  132. package/lib/model/received-goods-view-model.d.ts +10 -0
  133. package/lib/service/article-connector.service.d.ts +13 -0
  134. package/lib/service/article.service.d.ts +6 -0
  135. package/lib/service/ione-connector-adapter.service.d.ts +4 -1
  136. package/lib/service/options.service.d.ts +1 -0
  137. package/lib/service/payment.service.d.ts +9 -0
  138. package/lib/service/pending-reason.service.d.ts +3 -3
  139. package/lib/service/shared-connector.service.d.ts +12 -0
  140. package/lib/service/shared.service.d.ts +13 -0
  141. package/lib/service/transaction-connector.service.d.ts +119 -0
  142. package/lib/service/transaction-event.service.d.ts +65 -0
  143. package/lib/service/transaction-image.service.d.ts +2 -2
  144. package/lib/service/transaction.service.d.ts +8 -2
  145. package/lib/style/transaction-globals.scss +2 -0
  146. package/package.json +3 -3
  147. package/esm2015/lib/enum/tab-category.enum.js +0 -10
  148. package/lib/enum/tab-category.enum.d.ts +0 -8
@@ -1,18 +1,19 @@
1
- import { Component, EventEmitter, HostBinding, Input, Output } from "@angular/core";
1
+ import { Component, HostBinding } from "@angular/core";
2
2
  import { FilterViewmodel } from "../../../model/filter-viewmodel";
3
3
  import { TransactionService } from "../../../service/transaction.service";
4
4
  import { FilterRequestService } from "../service/filter-request.service";
5
5
  import { TransactionSearchService } from "../service/transaction-search.service";
6
6
  export class TransactionFilterContentLogisticsComponent {
7
- constructor(searchService, _transactionService, _filterRequestService) {
7
+ constructor(searchService, filterRequestService, _transactionService) {
8
8
  this.searchService = searchService;
9
+ this.filterRequestService = filterRequestService;
9
10
  this._transactionService = _transactionService;
10
- this._filterRequestService = _filterRequestService;
11
- this.searchRequestChange = new EventEmitter();
11
+ this.searchRequest = this.searchService.searchRequest;
12
12
  this.searchPlaceholder = "SEARCH_IN_COLLECTION";
13
+ this.showMoreLabel = "SHOW_MORE";
14
+ this.showLessLabel = "SHOW_LESS";
13
15
  this.deliveryMethods = [];
14
16
  this.deliveryMethodFields = { text: "description", value: "code" };
15
- this.warehouses = [];
16
17
  this.warehouseFields = { text: "description", value: "warehouseNo" };
17
18
  }
18
19
  showClass() {
@@ -20,41 +21,30 @@ export class TransactionFilterContentLogisticsComponent {
20
21
  }
21
22
  ngOnInit() {
22
23
  this._setRangeDates();
23
- this._getDeliveryMethods();
24
- this._getWarehouses();
24
+ this._setDeliveryMethods();
25
+ this._setWarehouses();
26
+ }
27
+ onFilterButtonClick() {
28
+ this.searchService.searchTransactions();
25
29
  }
26
30
  _setRangeDates() {
27
- this.confirmedDeliveryStartDate = this._filterRequestService.getDateFromFilterRequestRange(this.searchRequest.confirmedDeliveryDateRange, 0);
28
- this.confirmedDeliveryEndDate = this._filterRequestService.getDateFromFilterRequestRange(this.searchRequest.confirmedDeliveryDateRange, 1);
29
- this.arrivalStartDate = this._filterRequestService.getDateFromFilterRequestRange(this.searchRequest.arrivalDateRange, 0);
30
- this.arrivalEndDate = this._filterRequestService.getDateFromFilterRequestRange(this.searchRequest.arrivalDateRange, 1);
31
+ this.confirmedDeliveryStartDate = this.filterRequestService.getDateFromFilterRequestRange(this.searchRequest.confirmedDeliveryDateRange, 0);
32
+ this.confirmedDeliveryEndDate = this.filterRequestService.getDateFromFilterRequestRange(this.searchRequest.confirmedDeliveryDateRange, 1);
33
+ this.arrivalStartDate = this.filterRequestService.getDateFromFilterRequestRange(this.searchRequest.arrivalDateRange, 0);
34
+ this.arrivalEndDate = this.filterRequestService.getDateFromFilterRequestRange(this.searchRequest.arrivalDateRange, 1);
31
35
  }
32
36
  //Delivery Methods
33
- _getDeliveryMethods() {
37
+ _setDeliveryMethods() {
34
38
  this._transactionService.getDeliveryMethods().then((deliveryMethods) => {
35
39
  this.deliveryMethods = new FilterViewmodel(deliveryMethods, this.deliveryMethodFields).filterItems;
36
40
  });
37
41
  }
38
42
  //Warehouses
39
- _getWarehouses() {
43
+ _setWarehouses() {
40
44
  this._transactionService.getWarehouses().then((warehouses) => {
41
- this.warehouses = warehouses;
45
+ this.warehouses = new FilterViewmodel(warehouses, this.warehouseFields).filterItems;
42
46
  });
43
47
  }
44
- handleCollectionChangeForRange(collection, model) {
45
- this.searchRequest[model] = this._filterRequestService.getFilterRequestForCollectionRange(collection);
46
- }
47
- handleCollectionChangeForArray(collection, model) {
48
- this.searchRequest[model] = this._filterRequestService.getFilterRequestForCollectionArray(collection);
49
- }
50
- handleDateRangeChange(dates, model) {
51
- let startDate = dates[0];
52
- let endDate = dates[1];
53
- this.searchRequest[model] = this._filterRequestService.getFilterRequestForDateRange(startDate, endDate);
54
- }
55
- onFilterButtonClick() {
56
- this.searchService.searchTransactions();
57
- }
58
48
  }
59
49
  TransactionFilterContentLogisticsComponent.decorators = [
60
50
  { type: Component, args: [{
@@ -62,27 +52,30 @@ TransactionFilterContentLogisticsComponent.decorators = [
62
52
  template: `
63
53
  <div class="transaction-filter-content-logistics-wrapper">
64
54
 
65
- <!--Levermethode (werkt)-->
55
+ <!--Levermethode-->
66
56
  <co-filter-item
67
57
  [placeholder]="'DELIVERY_METHOD' | localize"
68
58
  [expanded]="true"
69
59
  [collection]="deliveryMethods"
70
60
  [searchPlaceholder]="searchPlaceholder | localize"
71
- (collectionChange)="handleCollectionChangeForRange($event, 'rangeDeliveryMethod')">
61
+ [showMoreLabel]="showMoreLabel | localize"
62
+ [showLessLabel]="showLessLabel | localize"
63
+ (collectionChange)="this.filterRequestService.handleCollectionChangeForRange($event, 'rangeDeliveryMethod')">
72
64
  </co-filter-item>
73
65
 
74
66
 
75
- <!--Leverdatum definitief: werkt nog niet: waarde uit domein moet boolean zijn?-->
67
+ <!--Leverdatum definitief-->
76
68
  <co-filter-item
77
69
  [placeholder]="'DELIVERY_DATE_FINAL' | localize"
78
70
  [customContent]="true"
79
71
  [expanded]="true">
80
72
  <co-input-checkbox
81
- [(model)]="!!searchRequest.deliveryDateDefinitive"
73
+ [model]="searchRequest.deliveryDateDefinitive === 'J'"
74
+ (modelChange)="this.filterRequestService.handleCheckboxValueChangeForString($event, 'deliveryDateDefinitive')"
82
75
  [label]="'DELIVERY_DATE_FINAL' | localize"></co-input-checkbox>
83
76
  </co-filter-item>
84
77
 
85
- <!--Toegewezen: dit is een quantity in het domain. Zoeken met range oid?-->
78
+ <!--Toegewezen: todo: enum uizoeken en verwerken-->
86
79
  <co-filter-item
87
80
  [placeholder]="'ALLOCATED' | localize"
88
81
  [customContent]="true"
@@ -91,7 +84,7 @@ TransactionFilterContentLogisticsComponent.decorators = [
91
84
  [placeholder]="'ALLOCATED' | localize"></co-input-text>
92
85
  </co-filter-item>
93
86
 
94
- <!--Geleverd: dit is een quantity in het domain. Zoeken met range oid?-->
87
+ <!--Geleverd: todo: enum uizoeken en verwerken-->
95
88
  <co-filter-item
96
89
  [placeholder]="'DELIVERED' | localize"
97
90
  [customContent]="true"
@@ -100,15 +93,17 @@ TransactionFilterContentLogisticsComponent.decorators = [
100
93
  [placeholder]="'DELIVERED' | localize"></co-input-text>
101
94
  </co-filter-item>
102
95
 
103
- <!--Gefactureerd: dit is een quantity in het domain. Zoeken met range oid?-->
96
+ <!--Gefactureerd: todo: enum uizoeken en verwerken-->
104
97
  <co-filter-item
105
98
  [placeholder]="'INVOICED' | localize"
106
99
  [customContent]="true"
107
100
  [expanded]="true">
108
- <co-input-text [(model)]="searchRequest.quantityInvoiced" [placeholder]="'INVOICED' | localize"></co-input-text>
101
+ <co-input-text
102
+ [(model)]="searchRequest.quantityInvoiced"
103
+ [placeholder]="'INVOICED' | localize"></co-input-text>
109
104
  </co-filter-item>
110
105
 
111
- <!--Te picken: dit is een quantity in het domain. Zoeken met range oid?-->
106
+ <!--Te picken: todo: enum uizoeken en verwerken-->
112
107
  <co-filter-item
113
108
  [placeholder]="'TO_BE_PICKED' | localize"
114
109
  [customContent]="true"
@@ -117,15 +112,17 @@ TransactionFilterContentLogisticsComponent.decorators = [
117
112
  [placeholder]="'TO_BE_PICKED' | localize"></co-input-text>
118
113
  </co-filter-item>
119
114
 
120
- <!--Gepicked: dit is een quantity in het domain. Zoeken met range oid?-->
115
+ <!--Gepicked: todo: enum uizoeken en verwerken-->
121
116
  <co-filter-item
122
117
  [placeholder]="'PICKED' | localize"
123
118
  [customContent]="true"
124
119
  [expanded]="true">
125
- <co-input-text [(model)]="searchRequest.quantityPicked" [placeholder]="'PICED' | localize"></co-input-text>
120
+ <co-input-text
121
+ [(model)]="searchRequest.quantityPicked"
122
+ [placeholder]="'PICKED' | localize"></co-input-text>
126
123
  </co-filter-item>
127
124
 
128
- <!--Bevestigde leverdatum: range picker werkt, alleen output filter niet goed? -->
125
+ <!--Bevestigde leverdatum-->
129
126
  <co-filter-item
130
127
  [placeholder]="'CONFIRMED_DELIVERY_DATE' | localize"
131
128
  [customContent]="true"
@@ -133,12 +130,12 @@ TransactionFilterContentLogisticsComponent.decorators = [
133
130
  <co-input-date-range
134
131
  [startDate]="confirmedDeliveryStartDate"
135
132
  [endDate]="confirmedDeliveryEndDate"
136
- (dateRangeChange)="handleDateRangeChange($event, 'confirmedDeliveryDateRange')"
133
+ (dateRangeChange)="this.filterRequestService.handleDateRangeChange($event, 'confirmedDeliveryDateRange')"
137
134
  [placeholder]="'SELECT_DATE' | localize">
138
135
  </co-input-date-range>
139
136
  </co-filter-item>
140
137
 
141
- <!--Aankomstdatum: range picker werkt, alleen output filter niet goed? -->
138
+ <!--Aankomstdatum-->
142
139
  <co-filter-item
143
140
  [placeholder]="'ARRIVAL_DATE' | localize"
144
141
  [customContent]="true"
@@ -146,39 +143,46 @@ TransactionFilterContentLogisticsComponent.decorators = [
146
143
  <co-input-date-range
147
144
  [startDate]="arrivalStartDate"
148
145
  [endDate]="arrivalEndDate"
149
- (dateRangeChange)="handleDateRangeChange($event, 'arrivalDateRange')"
146
+ (dateRangeChange)="this.filterRequestService.handleDateRangeChange($event, 'arrivalDateRange')"
150
147
  [placeholder]="'SELECT_DATE' | localize">
151
148
  </co-input-date-range>
152
149
  </co-filter-item>
153
150
 
154
- <!--Deellevering: Kan ik niet vinden in de transaction service. Zit dat in deliveryoptions???-->
151
+ <!--Deellevering-->
155
152
  <co-filter-item
156
153
  [placeholder]="'PART_DELIVERY' | localize"
157
154
  [customContent]="true"
158
155
  [expanded]="true">
159
- <co-input-text [(model)]="searchRequest.partialDelivery"
160
- [placeholder]="'PART_DELIVERY' | localize"></co-input-text>
156
+ <co-input-checkbox
157
+ [model]="searchRequest.partialDelivery === 'J'"
158
+ (modelChange)="this.filterRequestService.handleCheckboxValueChangeForString($event, 'partialDelivery')"
159
+ [label]="'PART_DELIVERY' | localize">
160
+ </co-input-checkbox>
161
161
  </co-filter-item>
162
162
 
163
163
  <!--Magazijn -->
164
- <!--<co-filter-item
164
+ <co-filter-item
165
165
  [placeholder]="'WAREHOUSE' | localize"
166
166
  [expanded]="true"
167
167
  [collection]="warehouses"
168
-
169
168
  [searchPlaceholder]="searchPlaceholder | localize"
170
- (collectionChange)="handlecollectionChange($event, 'deliveryMethod', warehouseFields)">
171
- </co-filter-item>-->
169
+ [showMoreLabel]="showMoreLabel | localize"
170
+ [showLessLabel]="showLessLabel | localize"
171
+ (collectionChange)="this.filterRequestService.handleCollectionChangeForSingleNumber($event, 'warehouse')">
172
+ </co-filter-item>
172
173
 
173
174
 
174
- <!--Bron magazijn: collectie zelfde als warehouses? -->
175
- <!-- <co-filter-item
176
- [placeholder]="'SOURCE_WAREHOUSE' | localize"
177
- [expanded]="true"
178
- [collection]="warehouses"
179
- [searchPlaceholder]="searchPlaceholder | localize"
180
- (collectionChange)="handlecollectionChanged($event, 'sourceWarehouse', warehouseFields)">
181
- </co-filter-item>-->
175
+ <!--Bron magazijn-->
176
+ <co-filter-item
177
+ [placeholder]="'SOURCE_WAREHOUSE' | localize"
178
+ [expanded]="true"
179
+ [collection]="warehouses"
180
+ [searchPlaceholder]="searchPlaceholder | localize"
181
+ [showMoreLabel]="showMoreLabel | localize"
182
+ [showLessLabel]="showLessLabel | localize"
183
+ (collectionChange)="this.filterRequestService.handleCollectionChangeForSingleNumber($event, 'sourceWarehouse')">
184
+ </co-filter-item>
185
+
182
186
 
183
187
  <!--Serienummer -->
184
188
  <co-filter-item
@@ -197,43 +201,42 @@ TransactionFilterContentLogisticsComponent.decorators = [
197
201
  <co-input-text [(model)]="searchRequest.batchNumber" [placeholder]="'BATCH_NUMBER' | localize"></co-input-text>
198
202
  </co-filter-item>
199
203
 
200
- <!--Inclusief retouren: is een number in het domein, moet boolean zijn?-->
204
+ <!--Inclusief retouren-->
201
205
  <co-filter-item
202
206
  [placeholder]="'INCLUDING_RETURNS' | localize"
203
207
  [customContent]="true"
204
208
  [expanded]="true">
205
209
  <co-input-checkbox
206
210
  [label]="'INCLUDING_RETURNS' | localize"
207
- ><!--[(model)]="searchRequest.includingReturns"-->
208
- </co-input-checkbox>
209
- </co-filter-item>
210
-
211
- <!--Levermethode op (regel/header): waar moet hier precies op gefilterd worden?-->
212
- <co-filter-item
213
- [placeholder]="'Levermethode op regel/header'"
214
- [customContent]="true"
215
- [expanded]="true">
216
- <co-input-checkbox
217
- [label]="'Levermethode op regel/header'"
211
+ [model]="searchRequest.includingReturns === 1"
212
+ (modelChange)="this.filterRequestService.handleCheckboxValueChangeForNumber($event, 'includingReturns')"
218
213
  >
219
214
  </co-input-checkbox>
220
215
  </co-filter-item>
216
+
217
+ <!--Levermethode op (regel/header): todo: nog uitzoeken welke filter dit is-->
218
+ <!-- <co-filter-item
219
+ [placeholder]="'Levermethode op regel/header'"
220
+ [customContent]="true"
221
+ [expanded]="true">
222
+ <co-input-checkbox
223
+ [label]="'Levermethode op regel/header'"
224
+ >
225
+ </co-input-checkbox>
226
+ </co-filter-item>-->
221
227
  <div class="filter-button-container">
222
228
  <co-button class="clickable" [label]="'Filter'" (click)="onFilterButtonClick()"></co-button>
223
229
  </div>
224
230
  </div>
225
-
226
231
  `
227
232
  },] }
228
233
  ];
229
234
  TransactionFilterContentLogisticsComponent.ctorParameters = () => [
230
235
  { type: TransactionSearchService },
231
- { type: TransactionService },
232
- { type: FilterRequestService }
236
+ { type: FilterRequestService },
237
+ { type: TransactionService }
233
238
  ];
234
239
  TransactionFilterContentLogisticsComponent.propDecorators = {
235
- searchRequest: [{ type: Input }],
236
- searchRequestChange: [{ type: Output }],
237
240
  showClass: [{ type: HostBinding, args: ["class.co-transaction-filter-content-logistics",] }]
238
241
  };
239
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tZmlsdGVyLWNvbnRlbnQtbG9naXN0aWNzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RyYW5zYWN0aW9uL3NyYy9saWIvY29tcG9uZW50L3RyYW5zYWN0aW9uLXNlYXJjaC90cmFuc2FjdGlvbi1maWx0ZXItY29udGVudC1sb2dpc3RpY3MvdHJhbnNhY3Rpb24tZmlsdGVyLWNvbnRlbnQtbG9naXN0aWNzLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUs1RixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDbEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDMUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDekUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUEwS2pGLE1BQU0sT0FBTywwQ0FBMEM7SUEyQnJELFlBQ1MsYUFBdUMsRUFDdEMsbUJBQXVDLEVBQ3ZDLHFCQUEyQztRQUY1QyxrQkFBYSxHQUFiLGFBQWEsQ0FBMEI7UUFDdEMsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFvQjtRQUN2QywwQkFBcUIsR0FBckIscUJBQXFCLENBQXNCO1FBeEI5Qyx3QkFBbUIsR0FBc0IsSUFBSSxZQUFZLEVBQWdDLENBQUM7UUFPMUYsc0JBQWlCLEdBQVcsc0JBQXNCLENBQUM7UUFFbkQsb0JBQWUsR0FBRyxFQUFFLENBQUM7UUFDckIseUJBQW9CLEdBQW9CLEVBQUMsSUFBSSxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFDLENBQUM7UUFFN0UsZUFBVSxHQUFHLEVBQUUsQ0FBQztRQUNoQixvQkFBZSxHQUFvQixFQUFDLElBQUksRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBQyxDQUFDO0lBYXRGLENBQUM7SUF2Qk0sU0FBUztRQUNkLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQXVCTSxRQUFRO1FBQ2IsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBQzNCLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRU8sY0FBYztRQUNwQixJQUFJLENBQUMsMEJBQTBCLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLDZCQUE2QixDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsMEJBQTBCLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDN0ksSUFBSSxDQUFDLHdCQUF3QixHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyw2QkFBNkIsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLDBCQUEwQixFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzNJLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsNkJBQTZCLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUN6SCxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyw2QkFBNkIsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3pILENBQUM7SUFFRCxrQkFBa0I7SUFDVixtQkFBbUI7UUFDekIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGtCQUFrQixFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsZUFBaUMsRUFBRSxFQUFFO1lBQ3ZGLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxlQUFlLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLFdBQVcsQ0FBQztRQUNyRyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxZQUFZO0lBQ0osY0FBYztRQUNwQixJQUFJLENBQUMsbUJBQW1CLENBQUMsYUFBYSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsVUFBdUIsRUFBRSxFQUFFO1lBQ3hFLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQy9CLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLDhCQUE4QixDQUFDLFVBQWlDLEVBQUUsS0FBYTtRQUNwRixJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxrQ0FBa0MsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN4RyxDQUFDO0lBRU0sOEJBQThCLENBQUMsVUFBaUMsRUFBRSxLQUFhO1FBQ3BGLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLGtDQUFrQyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3hHLENBQUM7SUFFTSxxQkFBcUIsQ0FBQyxLQUFhLEVBQUUsS0FBYTtRQUN2RCxJQUFJLFNBQVMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDekIsSUFBSSxPQUFPLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRXZCLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLDRCQUE0QixDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUMxRyxDQUFDO0lBRU0sbUJBQW1CO1FBQ3hCLElBQUksQ0FBQyxhQUFhLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUMxQyxDQUFDOzs7WUF0UEYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSx5Q0FBeUM7Z0JBQ25ELFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvS1Q7YUFDRjs7O1lBektRLHdCQUF3QjtZQUZ4QixrQkFBa0I7WUFDbEIsb0JBQW9COzs7NEJBNksxQixLQUFLO2tDQUdMLE1BQU07d0JBR04sV0FBVyxTQUFDLCtDQUErQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBIb3N0QmluZGluZywgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgRGVsaXZlcnlNZXRob2QgfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL2RlbGl2ZXJ5LW1ldGhvZC5ib1wiO1xyXG5pbXBvcnQgeyBUcmFuc2FjdGlvblNlYXJjaFZpZXdSZXF1ZXN0IH0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC90cmFuc2FjdGlvbi1zZWFyY2gtdmlldy1yZXF1ZXN0XCI7XHJcbmltcG9ydCB7IFdhcmVob3VzZSB9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvd2FyZWhvdXNlLmJvXCI7XHJcbmltcG9ydCB7IEZpbHRlckl0ZW1WaWV3bW9kZWwgfSBmcm9tIFwiLi4vLi4vLi4vbW9kZWwvZmlsdGVyLWl0ZW0udmlld21vZGVsXCI7XHJcbmltcG9ydCB7IEZpbHRlclZpZXdtb2RlbCB9IGZyb20gXCIuLi8uLi8uLi9tb2RlbC9maWx0ZXItdmlld21vZGVsXCI7XHJcbmltcG9ydCB7IFRyYW5zYWN0aW9uU2VydmljZSB9IGZyb20gXCIuLi8uLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgRmlsdGVyUmVxdWVzdFNlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZS9maWx0ZXItcmVxdWVzdC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFRyYW5zYWN0aW9uU2VhcmNoU2VydmljZSB9IGZyb20gXCIuLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLXNlYXJjaC5zZXJ2aWNlXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2NvLXRyYW5zYWN0aW9uLWZpbHRlci1jb250ZW50LWxvZ2lzdGljcycsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxkaXYgY2xhc3M9XCJ0cmFuc2FjdGlvbi1maWx0ZXItY29udGVudC1sb2dpc3RpY3Mtd3JhcHBlclwiPlxyXG5cclxuICAgICAgPCEtLUxldmVybWV0aG9kZSAod2Vya3QpLS0+XHJcbiAgICAgIDxjby1maWx0ZXItaXRlbVxyXG4gICAgICAgIFtwbGFjZWhvbGRlcl09XCInREVMSVZFUllfTUVUSE9EJyB8IGxvY2FsaXplXCJcclxuICAgICAgICBbZXhwYW5kZWRdPVwidHJ1ZVwiXHJcbiAgICAgICAgW2NvbGxlY3Rpb25dPVwiZGVsaXZlcnlNZXRob2RzXCJcclxuICAgICAgICBbc2VhcmNoUGxhY2Vob2xkZXJdPVwic2VhcmNoUGxhY2Vob2xkZXIgfCBsb2NhbGl6ZVwiXHJcbiAgICAgICAgKGNvbGxlY3Rpb25DaGFuZ2UpPVwiaGFuZGxlQ29sbGVjdGlvbkNoYW5nZUZvclJhbmdlKCRldmVudCwgJ3JhbmdlRGVsaXZlcnlNZXRob2QnKVwiPlxyXG4gICAgICA8L2NvLWZpbHRlci1pdGVtPlxyXG5cclxuXHJcbiAgICAgIDwhLS1MZXZlcmRhdHVtIGRlZmluaXRpZWY6IHdlcmt0IG5vZyBuaWV0OiB3YWFyZGUgdWl0IGRvbWVpbiBtb2V0IGJvb2xlYW4gemlqbj8tLT5cclxuICAgICAgPGNvLWZpbHRlci1pdGVtXHJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidERUxJVkVSWV9EQVRFX0ZJTkFMJyB8IGxvY2FsaXplXCJcclxuICAgICAgICBbY3VzdG9tQ29udGVudF09XCJ0cnVlXCJcclxuICAgICAgICBbZXhwYW5kZWRdPVwidHJ1ZVwiPlxyXG4gICAgICAgIDxjby1pbnB1dC1jaGVja2JveFxyXG4gICAgICAgICAgWyhtb2RlbCldPVwiISFzZWFyY2hSZXF1ZXN0LmRlbGl2ZXJ5RGF0ZURlZmluaXRpdmVcIlxyXG4gICAgICAgICAgW2xhYmVsXT1cIidERUxJVkVSWV9EQVRFX0ZJTkFMJyB8IGxvY2FsaXplXCI+PC9jby1pbnB1dC1jaGVja2JveD5cclxuICAgICAgPC9jby1maWx0ZXItaXRlbT5cclxuXHJcbiAgICAgIDwhLS1Ub2VnZXdlemVuOiBkaXQgaXMgZWVuIHF1YW50aXR5IGluIGhldCBkb21haW4uIFpvZWtlbiBtZXQgcmFuZ2Ugb2lkPy0tPlxyXG4gICAgICA8Y28tZmlsdGVyLWl0ZW1cclxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ0FMTE9DQVRFRCcgfCBsb2NhbGl6ZVwiXHJcbiAgICAgICAgW2N1c3RvbUNvbnRlbnRdPVwidHJ1ZVwiXHJcbiAgICAgICAgW2V4cGFuZGVkXT1cInRydWVcIj5cclxuICAgICAgICA8Y28taW5wdXQtdGV4dCBbKG1vZGVsKV09XCJzZWFyY2hSZXF1ZXN0LnF1YW50aXR5QWxsb2NhdGVkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ0FMTE9DQVRFRCcgfCBsb2NhbGl6ZVwiPjwvY28taW5wdXQtdGV4dD5cclxuICAgICAgPC9jby1maWx0ZXItaXRlbT5cclxuXHJcbiAgICAgIDwhLS1HZWxldmVyZDogZGl0IGlzIGVlbiBxdWFudGl0eSBpbiBoZXQgZG9tYWluLiBab2VrZW4gbWV0IHJhbmdlIG9pZD8tLT5cclxuICAgICAgPGNvLWZpbHRlci1pdGVtXHJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidERUxJVkVSRUQnIHwgbG9jYWxpemVcIlxyXG4gICAgICAgIFtjdXN0b21Db250ZW50XT1cInRydWVcIlxyXG4gICAgICAgIFtleHBhbmRlZF09XCJ0cnVlXCI+XHJcbiAgICAgICAgPGNvLWlucHV0LXRleHQgWyhtb2RlbCldPVwic2VhcmNoUmVxdWVzdC5xdWFudGl0eURlbGl2ZXJlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidERUxJVkVSRUQnIHwgbG9jYWxpemVcIj48L2NvLWlucHV0LXRleHQ+XHJcbiAgICAgIDwvY28tZmlsdGVyLWl0ZW0+XHJcblxyXG4gICAgICA8IS0tR2VmYWN0dXJlZXJkOiBkaXQgaXMgZWVuIHF1YW50aXR5IGluIGhldCBkb21haW4uIFpvZWtlbiBtZXQgcmFuZ2Ugb2lkPy0tPlxyXG4gICAgICA8Y28tZmlsdGVyLWl0ZW1cclxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ0lOVk9JQ0VEJyB8IGxvY2FsaXplXCJcclxuICAgICAgICBbY3VzdG9tQ29udGVudF09XCJ0cnVlXCJcclxuICAgICAgICBbZXhwYW5kZWRdPVwidHJ1ZVwiPlxyXG4gICAgICAgIDxjby1pbnB1dC10ZXh0IFsobW9kZWwpXT1cInNlYXJjaFJlcXVlc3QucXVhbnRpdHlJbnZvaWNlZFwiIFtwbGFjZWhvbGRlcl09XCInSU5WT0lDRUQnIHwgbG9jYWxpemVcIj48L2NvLWlucHV0LXRleHQ+XHJcbiAgICAgIDwvY28tZmlsdGVyLWl0ZW0+XHJcblxyXG4gICAgICA8IS0tVGUgcGlja2VuOiBkaXQgaXMgZWVuIHF1YW50aXR5IGluIGhldCBkb21haW4uIFpvZWtlbiBtZXQgcmFuZ2Ugb2lkPy0tPlxyXG4gICAgICA8Y28tZmlsdGVyLWl0ZW1cclxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ1RPX0JFX1BJQ0tFRCcgfCBsb2NhbGl6ZVwiXHJcbiAgICAgICAgW2N1c3RvbUNvbnRlbnRdPVwidHJ1ZVwiXHJcbiAgICAgICAgW2V4cGFuZGVkXT1cInRydWVcIj5cclxuICAgICAgICA8Y28taW5wdXQtdGV4dCBbKG1vZGVsKV09XCJzZWFyY2hSZXF1ZXN0LnF1YW50aXR5VG9CZVBpY2tlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidUT19CRV9QSUNLRUQnIHwgbG9jYWxpemVcIj48L2NvLWlucHV0LXRleHQ+XHJcbiAgICAgIDwvY28tZmlsdGVyLWl0ZW0+XHJcblxyXG4gICAgICA8IS0tR2VwaWNrZWQ6IGRpdCBpcyBlZW4gcXVhbnRpdHkgaW4gaGV0IGRvbWFpbi4gWm9la2VuIG1ldCByYW5nZSBvaWQ/LS0+XHJcbiAgICAgIDxjby1maWx0ZXItaXRlbVxyXG4gICAgICAgIFtwbGFjZWhvbGRlcl09XCInUElDS0VEJyB8IGxvY2FsaXplXCJcclxuICAgICAgICBbY3VzdG9tQ29udGVudF09XCJ0cnVlXCJcclxuICAgICAgICBbZXhwYW5kZWRdPVwidHJ1ZVwiPlxyXG4gICAgICAgIDxjby1pbnB1dC10ZXh0IFsobW9kZWwpXT1cInNlYXJjaFJlcXVlc3QucXVhbnRpdHlQaWNrZWRcIiBbcGxhY2Vob2xkZXJdPVwiJ1BJQ0VEJyB8IGxvY2FsaXplXCI+PC9jby1pbnB1dC10ZXh0PlxyXG4gICAgICA8L2NvLWZpbHRlci1pdGVtPlxyXG5cclxuICAgICAgPCEtLUJldmVzdGlnZGUgbGV2ZXJkYXR1bTogcmFuZ2UgcGlja2VyIHdlcmt0LCBhbGxlZW4gb3V0cHV0IGZpbHRlciBuaWV0IGdvZWQ/IC0tPlxyXG4gICAgICA8Y28tZmlsdGVyLWl0ZW1cclxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ0NPTkZJUk1FRF9ERUxJVkVSWV9EQVRFJyB8IGxvY2FsaXplXCJcclxuICAgICAgICBbY3VzdG9tQ29udGVudF09XCJ0cnVlXCJcclxuICAgICAgICBbZXhwYW5kZWRdPVwidHJ1ZVwiPlxyXG4gICAgICAgIDxjby1pbnB1dC1kYXRlLXJhbmdlXHJcbiAgICAgICAgICBbc3RhcnREYXRlXT1cImNvbmZpcm1lZERlbGl2ZXJ5U3RhcnREYXRlXCJcclxuICAgICAgICAgIFtlbmREYXRlXT1cImNvbmZpcm1lZERlbGl2ZXJ5RW5kRGF0ZVwiXHJcbiAgICAgICAgICAoZGF0ZVJhbmdlQ2hhbmdlKT1cImhhbmRsZURhdGVSYW5nZUNoYW5nZSgkZXZlbnQsICdjb25maXJtZWREZWxpdmVyeURhdGVSYW5nZScpXCJcclxuICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInU0VMRUNUX0RBVEUnIHwgbG9jYWxpemVcIj5cclxuICAgICAgICA8L2NvLWlucHV0LWRhdGUtcmFuZ2U+XHJcbiAgICAgIDwvY28tZmlsdGVyLWl0ZW0+XHJcblxyXG4gICAgICA8IS0tQWFua29tc3RkYXR1bTogcmFuZ2UgcGlja2VyIHdlcmt0LCBhbGxlZW4gb3V0cHV0IGZpbHRlciBuaWV0IGdvZWQ/IC0tPlxyXG4gICAgICA8Y28tZmlsdGVyLWl0ZW1cclxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ0FSUklWQUxfREFURScgfCBsb2NhbGl6ZVwiXHJcbiAgICAgICAgW2N1c3RvbUNvbnRlbnRdPVwidHJ1ZVwiXHJcbiAgICAgICAgW2V4cGFuZGVkXT1cInRydWVcIj5cclxuICAgICAgICA8Y28taW5wdXQtZGF0ZS1yYW5nZVxyXG4gICAgICAgICAgW3N0YXJ0RGF0ZV09XCJhcnJpdmFsU3RhcnREYXRlXCJcclxuICAgICAgICAgIFtlbmREYXRlXT1cImFycml2YWxFbmREYXRlXCJcclxuICAgICAgICAgIChkYXRlUmFuZ2VDaGFuZ2UpPVwiaGFuZGxlRGF0ZVJhbmdlQ2hhbmdlKCRldmVudCwgJ2Fycml2YWxEYXRlUmFuZ2UnKVwiXHJcbiAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ1NFTEVDVF9EQVRFJyB8IGxvY2FsaXplXCI+XHJcbiAgICAgICAgPC9jby1pbnB1dC1kYXRlLXJhbmdlPlxyXG4gICAgICA8L2NvLWZpbHRlci1pdGVtPlxyXG5cclxuICAgICAgPCEtLURlZWxsZXZlcmluZzogS2FuIGlrIG5pZXQgdmluZGVuIGluIGRlIHRyYW5zYWN0aW9uIHNlcnZpY2UuIFppdCBkYXQgaW4gZGVsaXZlcnlvcHRpb25zPz8/LS0+XHJcbiAgICAgIDxjby1maWx0ZXItaXRlbVxyXG4gICAgICAgIFtwbGFjZWhvbGRlcl09XCInUEFSVF9ERUxJVkVSWScgfCBsb2NhbGl6ZVwiXHJcbiAgICAgICAgW2N1c3RvbUNvbnRlbnRdPVwidHJ1ZVwiXHJcbiAgICAgICAgW2V4cGFuZGVkXT1cInRydWVcIj5cclxuICAgICAgICA8Y28taW5wdXQtdGV4dCBbKG1vZGVsKV09XCJzZWFyY2hSZXF1ZXN0LnBhcnRpYWxEZWxpdmVyeVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidQQVJUX0RFTElWRVJZJyB8IGxvY2FsaXplXCI+PC9jby1pbnB1dC10ZXh0PlxyXG4gICAgICA8L2NvLWZpbHRlci1pdGVtPlxyXG5cclxuICAgICAgPCEtLU1hZ2F6aWpuIC0tPlxyXG4gICAgICA8IS0tPGNvLWZpbHRlci1pdGVtXHJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidXQVJFSE9VU0UnIHwgbG9jYWxpemVcIlxyXG4gICAgICAgIFtleHBhbmRlZF09XCJ0cnVlXCJcclxuICAgICAgICBbY29sbGVjdGlvbl09XCJ3YXJlaG91c2VzXCJcclxuXHJcbiAgICAgICAgW3NlYXJjaFBsYWNlaG9sZGVyXT1cInNlYXJjaFBsYWNlaG9sZGVyIHwgbG9jYWxpemVcIlxyXG4gICAgICAgIChjb2xsZWN0aW9uQ2hhbmdlKT1cImhhbmRsZWNvbGxlY3Rpb25DaGFuZ2UoJGV2ZW50LCAnZGVsaXZlcnlNZXRob2QnLCB3YXJlaG91c2VGaWVsZHMpXCI+XHJcbiAgICAgIDwvY28tZmlsdGVyLWl0ZW0+LS0+XHJcblxyXG5cclxuICAgICAgPCEtLUJyb24gbWFnYXppam46IGNvbGxlY3RpZSB6ZWxmZGUgYWxzIHdhcmVob3VzZXM/IC0tPlxyXG4gICAgICA8IS0tICAgICAgPGNvLWZpbHRlci1pdGVtXHJcbiAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidTT1VSQ0VfV0FSRUhPVVNFJyB8IGxvY2FsaXplXCJcclxuICAgICAgICAgICAgICBbZXhwYW5kZWRdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgW2NvbGxlY3Rpb25dPVwid2FyZWhvdXNlc1wiXHJcbiAgICAgICAgICAgICAgW3NlYXJjaFBsYWNlaG9sZGVyXT1cInNlYXJjaFBsYWNlaG9sZGVyIHwgbG9jYWxpemVcIlxyXG4gICAgICAgICAgICAgIChjb2xsZWN0aW9uQ2hhbmdlKT1cImhhbmRsZWNvbGxlY3Rpb25DaGFuZ2VkKCRldmVudCwgJ3NvdXJjZVdhcmVob3VzZScsIHdhcmVob3VzZUZpZWxkcylcIj5cclxuICAgICAgICAgICAgPC9jby1maWx0ZXItaXRlbT4tLT5cclxuXHJcbiAgICAgIDwhLS1TZXJpZW51bW1lciAtLT5cclxuICAgICAgPGNvLWZpbHRlci1pdGVtXHJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidTRVJJQUxfTlVNQkVSJyB8IGxvY2FsaXplXCJcclxuICAgICAgICBbY3VzdG9tQ29udGVudF09XCJ0cnVlXCJcclxuICAgICAgICBbZXhwYW5kZWRdPVwidHJ1ZVwiPlxyXG4gICAgICAgIDxjby1pbnB1dC10ZXh0IFsobW9kZWwpXT1cInNlYXJjaFJlcXVlc3Quc2VyaWFsTnVtYmVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ1NFUklBTF9OVU1CRVInIHwgbG9jYWxpemVcIj48L2NvLWlucHV0LXRleHQ+XHJcbiAgICAgIDwvY28tZmlsdGVyLWl0ZW0+XHJcblxyXG4gICAgICA8IS0tQmF0Y2hudW1tZXIgLS0+XHJcbiAgICAgIDxjby1maWx0ZXItaXRlbVxyXG4gICAgICAgIFtwbGFjZWhvbGRlcl09XCInQkFUQ0hfTlVNQkVSJyB8IGxvY2FsaXplXCJcclxuICAgICAgICBbY3VzdG9tQ29udGVudF09XCJ0cnVlXCJcclxuICAgICAgICBbZXhwYW5kZWRdPVwidHJ1ZVwiPlxyXG4gICAgICAgIDxjby1pbnB1dC10ZXh0IFsobW9kZWwpXT1cInNlYXJjaFJlcXVlc3QuYmF0Y2hOdW1iZXJcIiBbcGxhY2Vob2xkZXJdPVwiJ0JBVENIX05VTUJFUicgfCBsb2NhbGl6ZVwiPjwvY28taW5wdXQtdGV4dD5cclxuICAgICAgPC9jby1maWx0ZXItaXRlbT5cclxuXHJcbiAgICAgIDwhLS1JbmNsdXNpZWYgcmV0b3VyZW46IGlzIGVlbiBudW1iZXIgaW4gaGV0IGRvbWVpbiwgbW9ldCBib29sZWFuIHppam4/LS0+XHJcbiAgICAgIDxjby1maWx0ZXItaXRlbVxyXG4gICAgICAgIFtwbGFjZWhvbGRlcl09XCInSU5DTFVESU5HX1JFVFVSTlMnIHwgbG9jYWxpemVcIlxyXG4gICAgICAgIFtjdXN0b21Db250ZW50XT1cInRydWVcIlxyXG4gICAgICAgIFtleHBhbmRlZF09XCJ0cnVlXCI+XHJcbiAgICAgICAgPGNvLWlucHV0LWNoZWNrYm94XHJcbiAgICAgICAgICBbbGFiZWxdPVwiJ0lOQ0xVRElOR19SRVRVUk5TJyB8IGxvY2FsaXplXCJcclxuICAgICAgICA+PCEtLVsobW9kZWwpXT1cInNlYXJjaFJlcXVlc3QuaW5jbHVkaW5nUmV0dXJuc1wiLS0+XHJcbiAgICAgICAgPC9jby1pbnB1dC1jaGVja2JveD5cclxuICAgICAgPC9jby1maWx0ZXItaXRlbT5cclxuXHJcbiAgICAgIDwhLS1MZXZlcm1ldGhvZGUgb3AgKHJlZ2VsL2hlYWRlcik6IHdhYXIgbW9ldCBoaWVyIHByZWNpZXMgb3AgZ2VmaWx0ZXJkIHdvcmRlbj8tLT5cclxuICAgICAgPGNvLWZpbHRlci1pdGVtXHJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidMZXZlcm1ldGhvZGUgb3AgcmVnZWwvaGVhZGVyJ1wiXHJcbiAgICAgICAgW2N1c3RvbUNvbnRlbnRdPVwidHJ1ZVwiXHJcbiAgICAgICAgW2V4cGFuZGVkXT1cInRydWVcIj5cclxuICAgICAgICA8Y28taW5wdXQtY2hlY2tib3hcclxuICAgICAgICAgIFtsYWJlbF09XCInTGV2ZXJtZXRob2RlIG9wIHJlZ2VsL2hlYWRlcidcIlxyXG4gICAgICAgID5cclxuICAgICAgICA8L2NvLWlucHV0LWNoZWNrYm94PlxyXG4gICAgICA8L2NvLWZpbHRlci1pdGVtPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZmlsdGVyLWJ1dHRvbi1jb250YWluZXJcIj5cclxuICAgICAgICA8Y28tYnV0dG9uIGNsYXNzPVwiY2xpY2thYmxlXCIgW2xhYmVsXT1cIidGaWx0ZXInXCIgKGNsaWNrKT1cIm9uRmlsdGVyQnV0dG9uQ2xpY2soKVwiPjwvY28tYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG5cclxuICBgXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUcmFuc2FjdGlvbkZpbHRlckNvbnRlbnRMb2dpc3RpY3NDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZWFyY2hSZXF1ZXN0OiBUcmFuc2FjdGlvblNlYXJjaFZpZXdSZXF1ZXN0O1xyXG5cclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgc2VhcmNoUmVxdWVzdENoYW5nZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPFRyYW5zYWN0aW9uU2VhcmNoVmlld1JlcXVlc3Q+KCk7XHJcblxyXG4gIEBIb3N0QmluZGluZyhcImNsYXNzLmNvLXRyYW5zYWN0aW9uLWZpbHRlci1jb250ZW50LWxvZ2lzdGljc1wiKVxyXG4gIHB1YmxpYyBzaG93Q2xhc3MoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZWFyY2hQbGFjZWhvbGRlcjogc3RyaW5nID0gXCJTRUFSQ0hfSU5fQ09MTEVDVElPTlwiO1xyXG5cclxuICBwdWJsaWMgZGVsaXZlcnlNZXRob2RzID0gW107XHJcbiAgcHVibGljIGRlbGl2ZXJ5TWV0aG9kRmllbGRzOiB7IHRleHQsIHZhbHVlIH0gPSB7dGV4dDogXCJkZXNjcmlwdGlvblwiLCB2YWx1ZTogXCJjb2RlXCJ9O1xyXG5cclxuICBwdWJsaWMgd2FyZWhvdXNlcyA9IFtdO1xyXG4gIHB1YmxpYyB3YXJlaG91c2VGaWVsZHM6IHsgdGV4dCwgdmFsdWUgfSA9IHt0ZXh0OiBcImRlc2NyaXB0aW9uXCIsIHZhbHVlOiBcIndhcmVob3VzZU5vXCJ9O1xyXG5cclxuICBwdWJsaWMgY29uZmlybWVkRGVsaXZlcnlTdGFydERhdGU6IERhdGU7XHJcbiAgcHVibGljIGNvbmZpcm1lZERlbGl2ZXJ5RW5kRGF0ZTogRGF0ZTtcclxuXHJcbiAgcHVibGljIGFycml2YWxTdGFydERhdGU6IERhdGU7XHJcbiAgcHVibGljIGFycml2YWxFbmREYXRlOiBEYXRlO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBzZWFyY2hTZXJ2aWNlOiBUcmFuc2FjdGlvblNlYXJjaFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF90cmFuc2FjdGlvblNlcnZpY2U6IFRyYW5zYWN0aW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgX2ZpbHRlclJlcXVlc3RTZXJ2aWNlOiBGaWx0ZXJSZXF1ZXN0U2VydmljZSxcclxuICApIHtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuX3NldFJhbmdlRGF0ZXMoKTtcclxuICAgIHRoaXMuX2dldERlbGl2ZXJ5TWV0aG9kcygpO1xyXG4gICAgdGhpcy5fZ2V0V2FyZWhvdXNlcygpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfc2V0UmFuZ2VEYXRlcygpIHtcclxuICAgIHRoaXMuY29uZmlybWVkRGVsaXZlcnlTdGFydERhdGUgPSB0aGlzLl9maWx0ZXJSZXF1ZXN0U2VydmljZS5nZXREYXRlRnJvbUZpbHRlclJlcXVlc3RSYW5nZSh0aGlzLnNlYXJjaFJlcXVlc3QuY29uZmlybWVkRGVsaXZlcnlEYXRlUmFuZ2UsIDApO1xyXG4gICAgdGhpcy5jb25maXJtZWREZWxpdmVyeUVuZERhdGUgPSB0aGlzLl9maWx0ZXJSZXF1ZXN0U2VydmljZS5nZXREYXRlRnJvbUZpbHRlclJlcXVlc3RSYW5nZSh0aGlzLnNlYXJjaFJlcXVlc3QuY29uZmlybWVkRGVsaXZlcnlEYXRlUmFuZ2UsIDEpO1xyXG4gICAgdGhpcy5hcnJpdmFsU3RhcnREYXRlID0gdGhpcy5fZmlsdGVyUmVxdWVzdFNlcnZpY2UuZ2V0RGF0ZUZyb21GaWx0ZXJSZXF1ZXN0UmFuZ2UodGhpcy5zZWFyY2hSZXF1ZXN0LmFycml2YWxEYXRlUmFuZ2UsIDApO1xyXG4gICAgdGhpcy5hcnJpdmFsRW5kRGF0ZSA9IHRoaXMuX2ZpbHRlclJlcXVlc3RTZXJ2aWNlLmdldERhdGVGcm9tRmlsdGVyUmVxdWVzdFJhbmdlKHRoaXMuc2VhcmNoUmVxdWVzdC5hcnJpdmFsRGF0ZVJhbmdlLCAxKTtcclxuICB9XHJcblxyXG4gIC8vRGVsaXZlcnkgTWV0aG9kc1xyXG4gIHByaXZhdGUgX2dldERlbGl2ZXJ5TWV0aG9kcygpOiB2b2lkIHtcclxuICAgIHRoaXMuX3RyYW5zYWN0aW9uU2VydmljZS5nZXREZWxpdmVyeU1ldGhvZHMoKS50aGVuKChkZWxpdmVyeU1ldGhvZHM6IERlbGl2ZXJ5TWV0aG9kW10pID0+IHtcclxuICAgICAgdGhpcy5kZWxpdmVyeU1ldGhvZHMgPSBuZXcgRmlsdGVyVmlld21vZGVsKGRlbGl2ZXJ5TWV0aG9kcywgdGhpcy5kZWxpdmVyeU1ldGhvZEZpZWxkcykuZmlsdGVySXRlbXM7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8vV2FyZWhvdXNlc1xyXG4gIHByaXZhdGUgX2dldFdhcmVob3VzZXMoKTogdm9pZCB7XHJcbiAgICB0aGlzLl90cmFuc2FjdGlvblNlcnZpY2UuZ2V0V2FyZWhvdXNlcygpLnRoZW4oKHdhcmVob3VzZXM6IFdhcmVob3VzZVtdKSA9PiB7XHJcbiAgICAgIHRoaXMud2FyZWhvdXNlcyA9IHdhcmVob3VzZXM7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVDb2xsZWN0aW9uQ2hhbmdlRm9yUmFuZ2UoY29sbGVjdGlvbjogRmlsdGVySXRlbVZpZXdtb2RlbFtdLCBtb2RlbDogc3RyaW5nKSB7XHJcbiAgICB0aGlzLnNlYXJjaFJlcXVlc3RbbW9kZWxdID0gdGhpcy5fZmlsdGVyUmVxdWVzdFNlcnZpY2UuZ2V0RmlsdGVyUmVxdWVzdEZvckNvbGxlY3Rpb25SYW5nZShjb2xsZWN0aW9uKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVDb2xsZWN0aW9uQ2hhbmdlRm9yQXJyYXkoY29sbGVjdGlvbjogRmlsdGVySXRlbVZpZXdtb2RlbFtdLCBtb2RlbDogc3RyaW5nKSB7XHJcbiAgICB0aGlzLnNlYXJjaFJlcXVlc3RbbW9kZWxdID0gdGhpcy5fZmlsdGVyUmVxdWVzdFNlcnZpY2UuZ2V0RmlsdGVyUmVxdWVzdEZvckNvbGxlY3Rpb25BcnJheShjb2xsZWN0aW9uKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVEYXRlUmFuZ2VDaGFuZ2UoZGF0ZXM6IERhdGVbXSwgbW9kZWw6IHN0cmluZykge1xyXG4gICAgbGV0IHN0YXJ0RGF0ZSA9IGRhdGVzWzBdO1xyXG4gICAgbGV0IGVuZERhdGUgPSBkYXRlc1sxXTtcclxuXHJcbiAgICB0aGlzLnNlYXJjaFJlcXVlc3RbbW9kZWxdID0gdGhpcy5fZmlsdGVyUmVxdWVzdFNlcnZpY2UuZ2V0RmlsdGVyUmVxdWVzdEZvckRhdGVSYW5nZShzdGFydERhdGUsIGVuZERhdGUpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uRmlsdGVyQnV0dG9uQ2xpY2soKTogdm9pZCB7XHJcbiAgICB0aGlzLnNlYXJjaFNlcnZpY2Uuc2VhcmNoVHJhbnNhY3Rpb25zKCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
242
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tZmlsdGVyLWNvbnRlbnQtbG9naXN0aWNzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RyYW5zYWN0aW9uL3NyYy9saWIvY29tcG9uZW50L3RyYW5zYWN0aW9uLXNlYXJjaC90cmFuc2FjdGlvbi1maWx0ZXItY29udGVudC1sb2dpc3RpY3MvdHJhbnNhY3Rpb24tZmlsdGVyLWNvbnRlbnQtbG9naXN0aWNzLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUsvRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDbEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDMUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDekUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUF5TGpGLE1BQU0sT0FBTywwQ0FBMEM7SUF5QnJELFlBQ1MsYUFBdUMsRUFDdkMsb0JBQTBDLEVBQ3pDLG1CQUF1QztRQUZ4QyxrQkFBYSxHQUFiLGFBQWEsQ0FBMEI7UUFDdkMseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFzQjtRQUN6Qyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQW9CO1FBckIxQyxrQkFBYSxHQUFpQyxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQztRQUUvRSxzQkFBaUIsR0FBVyxzQkFBc0IsQ0FBQztRQUNuRCxrQkFBYSxHQUFXLFdBQVcsQ0FBQztRQUNwQyxrQkFBYSxHQUFXLFdBQVcsQ0FBQztRQUVwQyxvQkFBZSxHQUFHLEVBQUUsQ0FBQztRQUNyQix5QkFBb0IsR0FBb0IsRUFBQyxJQUFJLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUMsQ0FBQztRQUc3RSxvQkFBZSxHQUFvQixFQUFDLElBQUksRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBQyxDQUFDO0lBYXRGLENBQUM7SUEzQk0sU0FBUztRQUNkLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQTJCTSxRQUFRO1FBQ2IsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBQzNCLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRU0sbUJBQW1CO1FBQ3hCLElBQUksQ0FBQyxhQUFhLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUMxQyxDQUFDO0lBRU8sY0FBYztRQUNwQixJQUFJLENBQUMsMEJBQTBCLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLDZCQUE2QixDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsMEJBQTBCLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDNUksSUFBSSxDQUFDLHdCQUF3QixHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyw2QkFBNkIsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLDBCQUEwQixFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzFJLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsNkJBQTZCLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUN4SCxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyw2QkFBNkIsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3hILENBQUM7SUFFRCxrQkFBa0I7SUFDVixtQkFBbUI7UUFDekIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGtCQUFrQixFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsZUFBaUMsRUFBRSxFQUFFO1lBQ3ZGLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxlQUFlLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLFdBQVcsQ0FBQztRQUNyRyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxZQUFZO0lBQ0osY0FBYztRQUNwQixJQUFJLENBQUMsbUJBQW1CLENBQUMsYUFBYSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsVUFBdUIsRUFBRSxFQUFFO1lBQ3hFLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxlQUFlLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxXQUFXLENBQUM7UUFDdEYsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzs7WUFwUEYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSx5Q0FBeUM7Z0JBQ25ELFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FtTFQ7YUFDRjs7O1lBeExRLHdCQUF3QjtZQUR4QixvQkFBb0I7WUFEcEIsa0JBQWtCOzs7d0JBNkx4QixXQUFXLFNBQUMsK0NBQStDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBIb3N0QmluZGluZywgT25Jbml0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgRGVsaXZlcnlNZXRob2QgfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL2RlbGl2ZXJ5LW1ldGhvZC5ib1wiO1xyXG5pbXBvcnQgeyBUcmFuc2FjdGlvblNlYXJjaFZpZXdSZXF1ZXN0IH0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC90cmFuc2FjdGlvbi1zZWFyY2gtdmlldy1yZXF1ZXN0XCI7XHJcbmltcG9ydCB7IFdhcmVob3VzZSB9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvd2FyZWhvdXNlLmJvXCI7XHJcbmltcG9ydCB7IEZpbHRlckl0ZW1WaWV3bW9kZWwgfSBmcm9tIFwiLi4vLi4vLi4vbW9kZWwvZmlsdGVyLWl0ZW0udmlld21vZGVsXCI7XHJcbmltcG9ydCB7IEZpbHRlclZpZXdtb2RlbCB9IGZyb20gXCIuLi8uLi8uLi9tb2RlbC9maWx0ZXItdmlld21vZGVsXCI7XHJcbmltcG9ydCB7IFRyYW5zYWN0aW9uU2VydmljZSB9IGZyb20gXCIuLi8uLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgRmlsdGVyUmVxdWVzdFNlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZS9maWx0ZXItcmVxdWVzdC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFRyYW5zYWN0aW9uU2VhcmNoU2VydmljZSB9IGZyb20gXCIuLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLXNlYXJjaC5zZXJ2aWNlXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2NvLXRyYW5zYWN0aW9uLWZpbHRlci1jb250ZW50LWxvZ2lzdGljcycsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxkaXYgY2xhc3M9XCJ0cmFuc2FjdGlvbi1maWx0ZXItY29udGVudC1sb2dpc3RpY3Mtd3JhcHBlclwiPlxyXG5cclxuICAgICAgPCEtLUxldmVybWV0aG9kZS0tPlxyXG4gICAgICA8Y28tZmlsdGVyLWl0ZW1cclxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ0RFTElWRVJZX01FVEhPRCcgfCBsb2NhbGl6ZVwiXHJcbiAgICAgICAgW2V4cGFuZGVkXT1cInRydWVcIlxyXG4gICAgICAgIFtjb2xsZWN0aW9uXT1cImRlbGl2ZXJ5TWV0aG9kc1wiXHJcbiAgICAgICAgW3NlYXJjaFBsYWNlaG9sZGVyXT1cInNlYXJjaFBsYWNlaG9sZGVyIHwgbG9jYWxpemVcIlxyXG4gICAgICAgIFtzaG93TW9yZUxhYmVsXT1cInNob3dNb3JlTGFiZWwgfCBsb2NhbGl6ZVwiXHJcbiAgICAgICAgW3Nob3dMZXNzTGFiZWxdPVwic2hvd0xlc3NMYWJlbCB8IGxvY2FsaXplXCJcclxuICAgICAgICAoY29sbGVjdGlvbkNoYW5nZSk9XCJ0aGlzLmZpbHRlclJlcXVlc3RTZXJ2aWNlLmhhbmRsZUNvbGxlY3Rpb25DaGFuZ2VGb3JSYW5nZSgkZXZlbnQsICdyYW5nZURlbGl2ZXJ5TWV0aG9kJylcIj5cclxuICAgICAgPC9jby1maWx0ZXItaXRlbT5cclxuXHJcblxyXG4gICAgICA8IS0tTGV2ZXJkYXR1bSBkZWZpbml0aWVmLS0+XHJcbiAgICAgIDxjby1maWx0ZXItaXRlbVxyXG4gICAgICAgIFtwbGFjZWhvbGRlcl09XCInREVMSVZFUllfREFURV9GSU5BTCcgfCBsb2NhbGl6ZVwiXHJcbiAgICAgICAgW2N1c3RvbUNvbnRlbnRdPVwidHJ1ZVwiXHJcbiAgICAgICAgW2V4cGFuZGVkXT1cInRydWVcIj5cclxuICAgICAgICA8Y28taW5wdXQtY2hlY2tib3hcclxuICAgICAgICAgIFttb2RlbF09XCJzZWFyY2hSZXF1ZXN0LmRlbGl2ZXJ5RGF0ZURlZmluaXRpdmUgPT09ICdKJ1wiXHJcbiAgICAgICAgICAobW9kZWxDaGFuZ2UpPVwidGhpcy5maWx0ZXJSZXF1ZXN0U2VydmljZS5oYW5kbGVDaGVja2JveFZhbHVlQ2hhbmdlRm9yU3RyaW5nKCRldmVudCwgJ2RlbGl2ZXJ5RGF0ZURlZmluaXRpdmUnKVwiXHJcbiAgICAgICAgICBbbGFiZWxdPVwiJ0RFTElWRVJZX0RBVEVfRklOQUwnIHwgbG9jYWxpemVcIj48L2NvLWlucHV0LWNoZWNrYm94PlxyXG4gICAgICA8L2NvLWZpbHRlci1pdGVtPlxyXG5cclxuICAgICAgPCEtLVRvZWdld2V6ZW46IHRvZG86IGVudW0gdWl6b2VrZW4gZW4gdmVyd2Vya2VuLS0+XHJcbiAgICAgIDxjby1maWx0ZXItaXRlbVxyXG4gICAgICAgIFtwbGFjZWhvbGRlcl09XCInQUxMT0NBVEVEJyB8IGxvY2FsaXplXCJcclxuICAgICAgICBbY3VzdG9tQ29udGVudF09XCJ0cnVlXCJcclxuICAgICAgICBbZXhwYW5kZWRdPVwidHJ1ZVwiPlxyXG4gICAgICAgIDxjby1pbnB1dC10ZXh0IFsobW9kZWwpXT1cInNlYXJjaFJlcXVlc3QucXVhbnRpdHlBbGxvY2F0ZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInQUxMT0NBVEVEJyB8IGxvY2FsaXplXCI+PC9jby1pbnB1dC10ZXh0PlxyXG4gICAgICA8L2NvLWZpbHRlci1pdGVtPlxyXG5cclxuICAgICAgPCEtLUdlbGV2ZXJkOiB0b2RvOiBlbnVtIHVpem9la2VuIGVuIHZlcndlcmtlbi0tPlxyXG4gICAgICA8Y28tZmlsdGVyLWl0ZW1cclxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ0RFTElWRVJFRCcgfCBsb2NhbGl6ZVwiXHJcbiAgICAgICAgW2N1c3RvbUNvbnRlbnRdPVwidHJ1ZVwiXHJcbiAgICAgICAgW2V4cGFuZGVkXT1cInRydWVcIj5cclxuICAgICAgICA8Y28taW5wdXQtdGV4dCBbKG1vZGVsKV09XCJzZWFyY2hSZXF1ZXN0LnF1YW50aXR5RGVsaXZlcmVkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ0RFTElWRVJFRCcgfCBsb2NhbGl6ZVwiPjwvY28taW5wdXQtdGV4dD5cclxuICAgICAgPC9jby1maWx0ZXItaXRlbT5cclxuXHJcbiAgICAgIDwhLS1HZWZhY3R1cmVlcmQ6IHRvZG86IGVudW0gdWl6b2VrZW4gZW4gdmVyd2Vya2VuLS0+XHJcbiAgICAgIDxjby1maWx0ZXItaXRlbVxyXG4gICAgICAgIFtwbGFjZWhvbGRlcl09XCInSU5WT0lDRUQnIHwgbG9jYWxpemVcIlxyXG4gICAgICAgIFtjdXN0b21Db250ZW50XT1cInRydWVcIlxyXG4gICAgICAgIFtleHBhbmRlZF09XCJ0cnVlXCI+XHJcbiAgICAgICAgPGNvLWlucHV0LXRleHRcclxuICAgICAgICAgIFsobW9kZWwpXT1cInNlYXJjaFJlcXVlc3QucXVhbnRpdHlJbnZvaWNlZFwiXHJcbiAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ0lOVk9JQ0VEJyB8IGxvY2FsaXplXCI+PC9jby1pbnB1dC10ZXh0PlxyXG4gICAgICA8L2NvLWZpbHRlci1pdGVtPlxyXG5cclxuICAgICAgPCEtLVRlIHBpY2tlbjogdG9kbzogZW51bSB1aXpvZWtlbiBlbiB2ZXJ3ZXJrZW4tLT5cclxuICAgICAgPGNvLWZpbHRlci1pdGVtXHJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidUT19CRV9QSUNLRUQnIHwgbG9jYWxpemVcIlxyXG4gICAgICAgIFtjdXN0b21Db250ZW50XT1cInRydWVcIlxyXG4gICAgICAgIFtleHBhbmRlZF09XCJ0cnVlXCI+XHJcbiAgICAgICAgPGNvLWlucHV0LXRleHQgWyhtb2RlbCldPVwic2VhcmNoUmVxdWVzdC5xdWFudGl0eVRvQmVQaWNrZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInVE9fQkVfUElDS0VEJyB8IGxvY2FsaXplXCI+PC9jby1pbnB1dC10ZXh0PlxyXG4gICAgICA8L2NvLWZpbHRlci1pdGVtPlxyXG5cclxuICAgICAgPCEtLUdlcGlja2VkOiB0b2RvOiBlbnVtIHVpem9la2VuIGVuIHZlcndlcmtlbi0tPlxyXG4gICAgICA8Y28tZmlsdGVyLWl0ZW1cclxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ1BJQ0tFRCcgfCBsb2NhbGl6ZVwiXHJcbiAgICAgICAgW2N1c3RvbUNvbnRlbnRdPVwidHJ1ZVwiXHJcbiAgICAgICAgW2V4cGFuZGVkXT1cInRydWVcIj5cclxuICAgICAgICA8Y28taW5wdXQtdGV4dFxyXG4gICAgICAgICAgWyhtb2RlbCldPVwic2VhcmNoUmVxdWVzdC5xdWFudGl0eVBpY2tlZFwiXHJcbiAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ1BJQ0tFRCcgfCBsb2NhbGl6ZVwiPjwvY28taW5wdXQtdGV4dD5cclxuICAgICAgPC9jby1maWx0ZXItaXRlbT5cclxuXHJcbiAgICAgIDwhLS1CZXZlc3RpZ2RlIGxldmVyZGF0dW0tLT5cclxuICAgICAgPGNvLWZpbHRlci1pdGVtXHJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidDT05GSVJNRURfREVMSVZFUllfREFURScgfCBsb2NhbGl6ZVwiXHJcbiAgICAgICAgW2N1c3RvbUNvbnRlbnRdPVwidHJ1ZVwiXHJcbiAgICAgICAgW2V4cGFuZGVkXT1cInRydWVcIj5cclxuICAgICAgICA8Y28taW5wdXQtZGF0ZS1yYW5nZVxyXG4gICAgICAgICAgW3N0YXJ0RGF0ZV09XCJjb25maXJtZWREZWxpdmVyeVN0YXJ0RGF0ZVwiXHJcbiAgICAgICAgICBbZW5kRGF0ZV09XCJjb25maXJtZWREZWxpdmVyeUVuZERhdGVcIlxyXG4gICAgICAgICAgKGRhdGVSYW5nZUNoYW5nZSk9XCJ0aGlzLmZpbHRlclJlcXVlc3RTZXJ2aWNlLmhhbmRsZURhdGVSYW5nZUNoYW5nZSgkZXZlbnQsICdjb25maXJtZWREZWxpdmVyeURhdGVSYW5nZScpXCJcclxuICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInU0VMRUNUX0RBVEUnIHwgbG9jYWxpemVcIj5cclxuICAgICAgICA8L2NvLWlucHV0LWRhdGUtcmFuZ2U+XHJcbiAgICAgIDwvY28tZmlsdGVyLWl0ZW0+XHJcblxyXG4gICAgICA8IS0tQWFua29tc3RkYXR1bS0tPlxyXG4gICAgICA8Y28tZmlsdGVyLWl0ZW1cclxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ0FSUklWQUxfREFURScgfCBsb2NhbGl6ZVwiXHJcbiAgICAgICAgW2N1c3RvbUNvbnRlbnRdPVwidHJ1ZVwiXHJcbiAgICAgICAgW2V4cGFuZGVkXT1cInRydWVcIj5cclxuICAgICAgICA8Y28taW5wdXQtZGF0ZS1yYW5nZVxyXG4gICAgICAgICAgW3N0YXJ0RGF0ZV09XCJhcnJpdmFsU3RhcnREYXRlXCJcclxuICAgICAgICAgIFtlbmREYXRlXT1cImFycml2YWxFbmREYXRlXCJcclxuICAgICAgICAgIChkYXRlUmFuZ2VDaGFuZ2UpPVwidGhpcy5maWx0ZXJSZXF1ZXN0U2VydmljZS5oYW5kbGVEYXRlUmFuZ2VDaGFuZ2UoJGV2ZW50LCAnYXJyaXZhbERhdGVSYW5nZScpXCJcclxuICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInU0VMRUNUX0RBVEUnIHwgbG9jYWxpemVcIj5cclxuICAgICAgICA8L2NvLWlucHV0LWRhdGUtcmFuZ2U+XHJcbiAgICAgIDwvY28tZmlsdGVyLWl0ZW0+XHJcblxyXG4gICAgICA8IS0tRGVlbGxldmVyaW5nLS0+XHJcbiAgICAgIDxjby1maWx0ZXItaXRlbVxyXG4gICAgICAgIFtwbGFjZWhvbGRlcl09XCInUEFSVF9ERUxJVkVSWScgfCBsb2NhbGl6ZVwiXHJcbiAgICAgICAgW2N1c3RvbUNvbnRlbnRdPVwidHJ1ZVwiXHJcbiAgICAgICAgW2V4cGFuZGVkXT1cInRydWVcIj5cclxuICAgICAgICA8Y28taW5wdXQtY2hlY2tib3hcclxuICAgICAgICAgIFttb2RlbF09XCJzZWFyY2hSZXF1ZXN0LnBhcnRpYWxEZWxpdmVyeSA9PT0gJ0onXCJcclxuICAgICAgICAgIChtb2RlbENoYW5nZSk9XCJ0aGlzLmZpbHRlclJlcXVlc3RTZXJ2aWNlLmhhbmRsZUNoZWNrYm94VmFsdWVDaGFuZ2VGb3JTdHJpbmcoJGV2ZW50LCAncGFydGlhbERlbGl2ZXJ5JylcIlxyXG4gICAgICAgICAgW2xhYmVsXT1cIidQQVJUX0RFTElWRVJZJyB8IGxvY2FsaXplXCI+XHJcbiAgICAgICAgPC9jby1pbnB1dC1jaGVja2JveD5cclxuICAgICAgPC9jby1maWx0ZXItaXRlbT5cclxuXHJcbiAgICAgIDwhLS1NYWdhemlqbiAtLT5cclxuICAgICAgPGNvLWZpbHRlci1pdGVtXHJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidXQVJFSE9VU0UnIHwgbG9jYWxpemVcIlxyXG4gICAgICAgIFtleHBhbmRlZF09XCJ0cnVlXCJcclxuICAgICAgICBbY29sbGVjdGlvbl09XCJ3YXJlaG91c2VzXCJcclxuICAgICAgICBbc2VhcmNoUGxhY2Vob2xkZXJdPVwic2VhcmNoUGxhY2Vob2xkZXIgfCBsb2NhbGl6ZVwiXHJcbiAgICAgICAgW3Nob3dNb3JlTGFiZWxdPVwic2hvd01vcmVMYWJlbCB8IGxvY2FsaXplXCJcclxuICAgICAgICBbc2hvd0xlc3NMYWJlbF09XCJzaG93TGVzc0xhYmVsIHwgbG9jYWxpemVcIlxyXG4gICAgICAgIChjb2xsZWN0aW9uQ2hhbmdlKT1cInRoaXMuZmlsdGVyUmVxdWVzdFNlcnZpY2UuaGFuZGxlQ29sbGVjdGlvbkNoYW5nZUZvclNpbmdsZU51bWJlcigkZXZlbnQsICd3YXJlaG91c2UnKVwiPlxyXG4gICAgICA8L2NvLWZpbHRlci1pdGVtPlxyXG5cclxuXHJcbiAgICAgIDwhLS1Ccm9uIG1hZ2F6aWpuLS0+XHJcbiAgICAgIDxjby1maWx0ZXItaXRlbVxyXG4gICAgICAgIFtwbGFjZWhvbGRlcl09XCInU09VUkNFX1dBUkVIT1VTRScgfCBsb2NhbGl6ZVwiXHJcbiAgICAgICAgW2V4cGFuZGVkXT1cInRydWVcIlxyXG4gICAgICAgIFtjb2xsZWN0aW9uXT1cIndhcmVob3VzZXNcIlxyXG4gICAgICAgIFtzZWFyY2hQbGFjZWhvbGRlcl09XCJzZWFyY2hQbGFjZWhvbGRlciB8IGxvY2FsaXplXCJcclxuICAgICAgICBbc2hvd01vcmVMYWJlbF09XCJzaG93TW9yZUxhYmVsIHwgbG9jYWxpemVcIlxyXG4gICAgICAgIFtzaG93TGVzc0xhYmVsXT1cInNob3dMZXNzTGFiZWwgfCBsb2NhbGl6ZVwiXHJcbiAgICAgICAgKGNvbGxlY3Rpb25DaGFuZ2UpPVwidGhpcy5maWx0ZXJSZXF1ZXN0U2VydmljZS5oYW5kbGVDb2xsZWN0aW9uQ2hhbmdlRm9yU2luZ2xlTnVtYmVyKCRldmVudCwgJ3NvdXJjZVdhcmVob3VzZScpXCI+XHJcbiAgICAgIDwvY28tZmlsdGVyLWl0ZW0+XHJcblxyXG5cclxuICAgICAgPCEtLVNlcmllbnVtbWVyIC0tPlxyXG4gICAgICA8Y28tZmlsdGVyLWl0ZW1cclxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ1NFUklBTF9OVU1CRVInIHwgbG9jYWxpemVcIlxyXG4gICAgICAgIFtjdXN0b21Db250ZW50XT1cInRydWVcIlxyXG4gICAgICAgIFtleHBhbmRlZF09XCJ0cnVlXCI+XHJcbiAgICAgICAgPGNvLWlucHV0LXRleHQgWyhtb2RlbCldPVwic2VhcmNoUmVxdWVzdC5zZXJpYWxOdW1iZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInU0VSSUFMX05VTUJFUicgfCBsb2NhbGl6ZVwiPjwvY28taW5wdXQtdGV4dD5cclxuICAgICAgPC9jby1maWx0ZXItaXRlbT5cclxuXHJcbiAgICAgIDwhLS1CYXRjaG51bW1lciAtLT5cclxuICAgICAgPGNvLWZpbHRlci1pdGVtXHJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidCQVRDSF9OVU1CRVInIHwgbG9jYWxpemVcIlxyXG4gICAgICAgIFtjdXN0b21Db250ZW50XT1cInRydWVcIlxyXG4gICAgICAgIFtleHBhbmRlZF09XCJ0cnVlXCI+XHJcbiAgICAgICAgPGNvLWlucHV0LXRleHQgWyhtb2RlbCldPVwic2VhcmNoUmVxdWVzdC5iYXRjaE51bWJlclwiIFtwbGFjZWhvbGRlcl09XCInQkFUQ0hfTlVNQkVSJyB8IGxvY2FsaXplXCI+PC9jby1pbnB1dC10ZXh0PlxyXG4gICAgICA8L2NvLWZpbHRlci1pdGVtPlxyXG5cclxuICAgICAgPCEtLUluY2x1c2llZiByZXRvdXJlbi0tPlxyXG4gICAgICA8Y28tZmlsdGVyLWl0ZW1cclxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ0lOQ0xVRElOR19SRVRVUk5TJyB8IGxvY2FsaXplXCJcclxuICAgICAgICBbY3VzdG9tQ29udGVudF09XCJ0cnVlXCJcclxuICAgICAgICBbZXhwYW5kZWRdPVwidHJ1ZVwiPlxyXG4gICAgICAgIDxjby1pbnB1dC1jaGVja2JveFxyXG4gICAgICAgICAgW2xhYmVsXT1cIidJTkNMVURJTkdfUkVUVVJOUycgfCBsb2NhbGl6ZVwiXHJcbiAgICAgICAgICBbbW9kZWxdPVwic2VhcmNoUmVxdWVzdC5pbmNsdWRpbmdSZXR1cm5zID09PSAxXCJcclxuICAgICAgICAgIChtb2RlbENoYW5nZSk9XCJ0aGlzLmZpbHRlclJlcXVlc3RTZXJ2aWNlLmhhbmRsZUNoZWNrYm94VmFsdWVDaGFuZ2VGb3JOdW1iZXIoJGV2ZW50LCAnaW5jbHVkaW5nUmV0dXJucycpXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgPC9jby1pbnB1dC1jaGVja2JveD5cclxuICAgICAgPC9jby1maWx0ZXItaXRlbT5cclxuXHJcbiAgICAgIDwhLS1MZXZlcm1ldGhvZGUgb3AgKHJlZ2VsL2hlYWRlcik6IHRvZG86IG5vZyB1aXR6b2VrZW4gd2Vsa2UgZmlsdGVyIGRpdCBpcy0tPlxyXG4gICAgICA8IS0tICAgICAgPGNvLWZpbHRlci1pdGVtXHJcbiAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidMZXZlcm1ldGhvZGUgb3AgcmVnZWwvaGVhZGVyJ1wiXHJcbiAgICAgICAgICAgICAgW2N1c3RvbUNvbnRlbnRdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgW2V4cGFuZGVkXT1cInRydWVcIj5cclxuICAgICAgICAgICAgICA8Y28taW5wdXQtY2hlY2tib3hcclxuICAgICAgICAgICAgICAgIFtsYWJlbF09XCInTGV2ZXJtZXRob2RlIG9wIHJlZ2VsL2hlYWRlcidcIlxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8L2NvLWlucHV0LWNoZWNrYm94PlxyXG4gICAgICAgICAgICA8L2NvLWZpbHRlci1pdGVtPi0tPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZmlsdGVyLWJ1dHRvbi1jb250YWluZXJcIj5cclxuICAgICAgICA8Y28tYnV0dG9uIGNsYXNzPVwiY2xpY2thYmxlXCIgW2xhYmVsXT1cIidGaWx0ZXInXCIgKGNsaWNrKT1cIm9uRmlsdGVyQnV0dG9uQ2xpY2soKVwiPjwvY28tYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIGBcclxufSlcclxuZXhwb3J0IGNsYXNzIFRyYW5zYWN0aW9uRmlsdGVyQ29udGVudExvZ2lzdGljc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIEBIb3N0QmluZGluZyhcImNsYXNzLmNvLXRyYW5zYWN0aW9uLWZpbHRlci1jb250ZW50LWxvZ2lzdGljc1wiKVxyXG4gIHB1YmxpYyBzaG93Q2xhc3MoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZWFyY2hSZXF1ZXN0OiBUcmFuc2FjdGlvblNlYXJjaFZpZXdSZXF1ZXN0ID0gdGhpcy5zZWFyY2hTZXJ2aWNlLnNlYXJjaFJlcXVlc3Q7XHJcblxyXG4gIHB1YmxpYyBzZWFyY2hQbGFjZWhvbGRlcjogc3RyaW5nID0gXCJTRUFSQ0hfSU5fQ09MTEVDVElPTlwiO1xyXG4gIHB1YmxpYyBzaG93TW9yZUxhYmVsOiBzdHJpbmcgPSBcIlNIT1dfTU9SRVwiO1xyXG4gIHB1YmxpYyBzaG93TGVzc0xhYmVsOiBzdHJpbmcgPSBcIlNIT1dfTEVTU1wiO1xyXG5cclxuICBwdWJsaWMgZGVsaXZlcnlNZXRob2RzID0gW107XHJcbiAgcHVibGljIGRlbGl2ZXJ5TWV0aG9kRmllbGRzOiB7IHRleHQsIHZhbHVlIH0gPSB7dGV4dDogXCJkZXNjcmlwdGlvblwiLCB2YWx1ZTogXCJjb2RlXCJ9O1xyXG5cclxuICBwdWJsaWMgd2FyZWhvdXNlczogRmlsdGVySXRlbVZpZXdtb2RlbFtdO1xyXG4gIHB1YmxpYyB3YXJlaG91c2VGaWVsZHM6IHsgdGV4dCwgdmFsdWUgfSA9IHt0ZXh0OiBcImRlc2NyaXB0aW9uXCIsIHZhbHVlOiBcIndhcmVob3VzZU5vXCJ9O1xyXG5cclxuICBwdWJsaWMgY29uZmlybWVkRGVsaXZlcnlTdGFydERhdGU6IERhdGU7XHJcbiAgcHVibGljIGNvbmZpcm1lZERlbGl2ZXJ5RW5kRGF0ZTogRGF0ZTtcclxuXHJcbiAgcHVibGljIGFycml2YWxTdGFydERhdGU6IERhdGU7XHJcbiAgcHVibGljIGFycml2YWxFbmREYXRlOiBEYXRlO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBzZWFyY2hTZXJ2aWNlOiBUcmFuc2FjdGlvblNlYXJjaFNlcnZpY2UsXHJcbiAgICBwdWJsaWMgZmlsdGVyUmVxdWVzdFNlcnZpY2U6IEZpbHRlclJlcXVlc3RTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfdHJhbnNhY3Rpb25TZXJ2aWNlOiBUcmFuc2FjdGlvblNlcnZpY2UsXHJcbiAgKSB7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9zZXRSYW5nZURhdGVzKCk7XHJcbiAgICB0aGlzLl9zZXREZWxpdmVyeU1ldGhvZHMoKTtcclxuICAgIHRoaXMuX3NldFdhcmVob3VzZXMoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvbkZpbHRlckJ1dHRvbkNsaWNrKCk6IHZvaWQge1xyXG4gICAgdGhpcy5zZWFyY2hTZXJ2aWNlLnNlYXJjaFRyYW5zYWN0aW9ucygpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfc2V0UmFuZ2VEYXRlcygpOiB2b2lkIHtcclxuICAgIHRoaXMuY29uZmlybWVkRGVsaXZlcnlTdGFydERhdGUgPSB0aGlzLmZpbHRlclJlcXVlc3RTZXJ2aWNlLmdldERhdGVGcm9tRmlsdGVyUmVxdWVzdFJhbmdlKHRoaXMuc2VhcmNoUmVxdWVzdC5jb25maXJtZWREZWxpdmVyeURhdGVSYW5nZSwgMCk7XHJcbiAgICB0aGlzLmNvbmZpcm1lZERlbGl2ZXJ5RW5kRGF0ZSA9IHRoaXMuZmlsdGVyUmVxdWVzdFNlcnZpY2UuZ2V0RGF0ZUZyb21GaWx0ZXJSZXF1ZXN0UmFuZ2UodGhpcy5zZWFyY2hSZXF1ZXN0LmNvbmZpcm1lZERlbGl2ZXJ5RGF0ZVJhbmdlLCAxKTtcclxuICAgIHRoaXMuYXJyaXZhbFN0YXJ0RGF0ZSA9IHRoaXMuZmlsdGVyUmVxdWVzdFNlcnZpY2UuZ2V0RGF0ZUZyb21GaWx0ZXJSZXF1ZXN0UmFuZ2UodGhpcy5zZWFyY2hSZXF1ZXN0LmFycml2YWxEYXRlUmFuZ2UsIDApO1xyXG4gICAgdGhpcy5hcnJpdmFsRW5kRGF0ZSA9IHRoaXMuZmlsdGVyUmVxdWVzdFNlcnZpY2UuZ2V0RGF0ZUZyb21GaWx0ZXJSZXF1ZXN0UmFuZ2UodGhpcy5zZWFyY2hSZXF1ZXN0LmFycml2YWxEYXRlUmFuZ2UsIDEpO1xyXG4gIH1cclxuXHJcbiAgLy9EZWxpdmVyeSBNZXRob2RzXHJcbiAgcHJpdmF0ZSBfc2V0RGVsaXZlcnlNZXRob2RzKCk6IHZvaWQge1xyXG4gICAgdGhpcy5fdHJhbnNhY3Rpb25TZXJ2aWNlLmdldERlbGl2ZXJ5TWV0aG9kcygpLnRoZW4oKGRlbGl2ZXJ5TWV0aG9kczogRGVsaXZlcnlNZXRob2RbXSkgPT4ge1xyXG4gICAgICB0aGlzLmRlbGl2ZXJ5TWV0aG9kcyA9IG5ldyBGaWx0ZXJWaWV3bW9kZWwoZGVsaXZlcnlNZXRob2RzLCB0aGlzLmRlbGl2ZXJ5TWV0aG9kRmllbGRzKS5maWx0ZXJJdGVtcztcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLy9XYXJlaG91c2VzXHJcbiAgcHJpdmF0ZSBfc2V0V2FyZWhvdXNlcygpOiB2b2lkIHtcclxuICAgIHRoaXMuX3RyYW5zYWN0aW9uU2VydmljZS5nZXRXYXJlaG91c2VzKCkudGhlbigod2FyZWhvdXNlczogV2FyZWhvdXNlW10pID0+IHtcclxuICAgICAgdGhpcy53YXJlaG91c2VzID0gbmV3IEZpbHRlclZpZXdtb2RlbCh3YXJlaG91c2VzLCB0aGlzLndhcmVob3VzZUZpZWxkcykuZmlsdGVySXRlbXM7XHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuIl19