@colijnit/sharedcomponents 254.1.1 → 254.1.3
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.
- package/3rdpartylicenses.txt +1408 -0
- package/bundles/colijnit-sharedcomponents.umd.js +701 -179
- package/bundles/colijnit-sharedcomponents.umd.js.map +1 -1
- package/colijnit-sharedcomponents.d.ts +2 -0
- package/colijnit-sharedcomponents.metadata.json +1 -1
- package/esm2015/colijnit-sharedcomponents.js +3 -1
- package/esm2015/lib/components/activity-list/activity-list.component.js +7 -3
- package/esm2015/lib/components/activity-overview-component/component-activity-overview.component.js +8 -7
- package/esm2015/lib/components/activity-overview-component/components/base-activity-overview.component.js +15 -21
- package/esm2015/lib/components/modify-task-form/components/base-activity-summary.component.js +8 -10
- package/esm2015/lib/components/modify-task-form/components/creation-summary-block/creation-summary-block.component.js +2 -2
- package/esm2015/lib/components/modify-task-form/components/executive-summary-block/executive-summary-block.component.js +5 -5
- package/esm2015/lib/components/modify-task-form/components/notification-summary-block/notification-summary-block.component.js +2 -2
- package/esm2015/lib/components/modify-task-form/components/status-summary-block/status-summary-block.component.js +7 -4
- package/esm2015/lib/components/modify-task-form/components/task-details/task-details.component.js +7 -4
- package/esm2015/lib/components/modify-task-form/modify-task-form.component.js +39 -13
- package/esm2015/lib/components/modify-task-form/modify-task-form.module.js +10 -3
- package/esm2015/lib/components/open-activity-list/component-activity-list.component.js +48 -57
- package/esm2015/lib/components/open-activity-list/components/base-open-activity-list.component.js +5 -3
- package/esm2015/lib/components/simple-tags/simple-tags.component.js +5 -147
- package/esm2015/lib/components/simple-tags/simple-tags.module.js +4 -2
- package/esm2015/lib/components/simple-tags-form/simple-tags-form.component.js +196 -0
- package/esm2015/lib/components/simple-tags-form/simple-tags-form.module.js +26 -0
- package/esm2015/lib/components/stock/components/stock-location/components/stock-location-popup/stock-location-popup.component.js +3 -3
- package/esm2015/lib/components/stock/components/stock-location/stock-location.component.js +28 -2
- package/esm2015/lib/components/stock/localization/translation.js +3 -1
- package/esm2015/lib/components/stock/stock-tabs/stock-tabs.component.js +7 -2
- package/esm2015/lib/components/stock/stock-transfer/stock-transfer.component.js +144 -85
- package/esm2015/lib/components/stock/stock.component.js +11 -42
- package/esm2015/lib/components/stock/stock.module.js +4 -3
- package/esm2015/lib/components/task-modifyer/task-modifier.component.js +9 -9
- package/esm2015/lib/components/workflow-info-tiles/components/workflow-info-tile.component.js +45 -0
- package/esm2015/lib/components/workflow-info-tiles/components/workflow-info-tile.module.js +22 -0
- package/esm2015/lib/components/workflow-info-tiles/workflow-info-tiles.component.js +55 -0
- package/esm2015/lib/components/workflow-info-tiles/workflow-info-tiles.module.js +22 -0
- package/esm2015/lib/enum/icon.enum.js +1 -1
- package/esm2015/lib/model/icon-svg.js +1 -1
- package/esm2015/lib/service/shared-connector.service.js +93 -1
- package/esm2015/lib/service/shared.service.js +44 -1
- package/esm2015/public-api.js +5 -1
- package/favicon.ico +0 -0
- package/fesm2015/colijnit-sharedcomponents.js +765 -349
- package/fesm2015/colijnit-sharedcomponents.js.map +1 -1
- package/index.html +12 -0
- package/lib/components/activity-list/style/_layout.scss +17 -6
- package/lib/components/activity-overview-component/component-activity-overview.component.d.ts +3 -1
- package/lib/components/activity-overview-component/components/base-activity-overview.component.d.ts +3 -8
- package/lib/components/modify-task-form/components/base-activity-summary.component.d.ts +3 -4
- package/lib/components/modify-task-form/components/executive-summary-block/executive-summary-block.component.d.ts +2 -2
- package/lib/components/modify-task-form/components/status-summary-block/status-summary-block.component.d.ts +3 -1
- package/lib/components/modify-task-form/components/task-details/task-details.component.d.ts +3 -1
- package/lib/components/modify-task-form/modify-task-form.component.d.ts +9 -4
- package/lib/components/modify-task-form/style/_layout.scss +4 -0
- package/lib/components/open-activity-list/component-activity-list.component.d.ts +10 -11
- package/lib/components/open-activity-list/components/base-open-activity-list.component.d.ts +2 -0
- package/lib/components/simple-tags/simple-tags.component.d.ts +1 -8
- package/lib/components/simple-tags-form/simple-tags-form.component.d.ts +29 -0
- package/lib/components/simple-tags-form/simple-tags-form.module.d.ts +2 -0
- package/lib/components/simple-tags-form/style/_layout.scss +257 -0
- package/lib/components/simple-tags-form/style/_material-definition.scss +39 -0
- package/lib/components/simple-tags-form/style/_theme.scss +4 -0
- package/lib/components/simple-tags-form/style/material.scss +4 -0
- package/lib/components/stock/components/stock-location/stock-location.component.d.ts +7 -1
- package/lib/components/stock/localization/translation.d.ts +2 -0
- package/lib/components/stock/stock-tabs/stock-tabs.component.d.ts +2 -0
- package/lib/components/stock/stock-transfer/stock-transfer.component.d.ts +19 -6
- package/lib/components/stock/stock.component.d.ts +3 -0
- package/lib/components/stock/style/_layout.scss +64 -31
- package/lib/components/task-modifyer/task-modifier.component.d.ts +3 -5
- package/lib/components/workflow-info-tiles/components/style/_layout.scss +49 -0
- package/lib/components/workflow-info-tiles/components/style/_material-definition.scss +0 -0
- package/lib/components/workflow-info-tiles/components/style/_theme.scss +4 -0
- package/lib/components/workflow-info-tiles/components/style/material.scss +4 -0
- package/lib/components/workflow-info-tiles/components/workflow-info-tile.component.d.ts +15 -0
- package/lib/components/workflow-info-tiles/components/workflow-info-tile.module.d.ts +2 -0
- package/lib/components/workflow-info-tiles/style/_layout.scss +16 -0
- package/lib/components/workflow-info-tiles/style/_material-definition.scss +0 -0
- package/lib/components/workflow-info-tiles/style/_theme.scss +4 -0
- package/lib/components/workflow-info-tiles/style/material.scss +4 -0
- package/lib/components/workflow-info-tiles/workflow-info-tiles.component.d.ts +21 -0
- package/lib/components/workflow-info-tiles/workflow-info-tiles.module.d.ts +2 -0
- package/lib/service/shared-connector.service.d.ts +10 -0
- package/lib/service/shared.service.d.ts +12 -0
- package/lib/style/_variables.scss +2 -0
- package/main.b62bfdc80736ecda90e4.js +1 -0
- package/package.json +2 -1
- package/polyfills.907fe9d1887c5de17993.js +1 -0
- package/public-api.d.ts +4 -0
- package/runtime.8aac21847ed3d3829cca.js +1 -0
- package/styles.051675db76590b099897.css +1 -0
|
@@ -58,6 +58,9 @@ export class StockTabsComponent {
|
|
|
58
58
|
},
|
|
59
59
|
];
|
|
60
60
|
}
|
|
61
|
+
onShowStockTransferChange(show) {
|
|
62
|
+
this.showStockTransfer = show;
|
|
63
|
+
}
|
|
61
64
|
handleLocationClicked(data) {
|
|
62
65
|
this.tabs[0].active = false;
|
|
63
66
|
this.tabs[2].active = true;
|
|
@@ -197,7 +200,8 @@ StockTabsComponent.decorators = [
|
|
|
197
200
|
[stockLocations]="stockLocations"
|
|
198
201
|
(transferIconClicked)="transferIconClicked.emit($event)"
|
|
199
202
|
(sendMethodDialogClicked)="sendMethodDialogClicked.emit($event)"
|
|
200
|
-
|
|
203
|
+
[showStockTransfer]="showStockTransfer"
|
|
204
|
+
(showStockTransferChange)="onShowStockTransferChange($event)"
|
|
201
205
|
></co-stock-location>
|
|
202
206
|
|
|
203
207
|
<co-order-tab *ngIf="tabs[3].active"
|
|
@@ -244,8 +248,9 @@ StockTabsComponent.propDecorators = {
|
|
|
244
248
|
stockInformation: [{ type: Input }],
|
|
245
249
|
article: [{ type: Input }],
|
|
246
250
|
articleFlat: [{ type: Input }],
|
|
251
|
+
showStockTransfer: [{ type: Input }],
|
|
247
252
|
warehouses: [{ type: Input }],
|
|
248
253
|
transferIconClicked: [{ type: Output }],
|
|
249
254
|
sendMethodDialogClicked: [{ type: Output }]
|
|
250
255
|
};
|
|
251
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvY2stdGFicy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaGFyZWRjb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9zdG9jay9zdG9jay10YWJzL3N0b2NrLXRhYnMuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDbkgsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBRTdDLE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLDREQUE0RCxDQUFDO0FBQ2xHLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUc1RCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxzREFBc0QsQ0FBQztBQUV4RixPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSxpRUFBaUUsQ0FBQztBQUcxRyxPQUFPLEVBQUMsc0JBQXNCLEVBQUMsTUFBTSwyREFBMkQsQ0FBQztBQUVqRyxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sd0NBQXdDLENBQUM7QUEyRXZFLE1BQU0sT0FBTyxrQkFBa0I7SUF5QzdCLFlBQ1UsYUFBMkIsRUFDM0IsZ0JBQWlDLEVBQ2pDLGVBQWtDO1FBRmxDLGtCQUFhLEdBQWIsYUFBYSxDQUFjO1FBQzNCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBaUI7UUFDakMsb0JBQWUsR0FBZixlQUFlLENBQW1CO1FBM0M1QixVQUFLLEdBQWdCLElBQUksQ0FBQztRQUduQyxxQkFBZ0IsR0FBcUIsRUFBRSxDQUFDO1FBVXhDLGVBQVUsR0FBZ0MsRUFBRSxDQUFDO1FBR3BDLHdCQUFtQixHQUFpQyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBR3ZFLDRCQUF1QixH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QUFJLENBQUMsMEJBQTBCLEVBQUUsQ0FBQztRQUNsQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNwQyxJQUFJLENBQUMsZUFBZSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBRXZDLENBQUM7SUFFTSxnQkFBZ0IsQ0FBQyxJQUFZO1FBQ2xDLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsV0FBVyxLQUFLLElBQUksQ0FBQyxDQUFDO0lBQzNFLENBQUM7OztZQXpRRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLGVBQWU7Z0JBQ3pCLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpRVQ7Z0JBQ0QsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7YUFDdEM7OztZQXBGTyxZQUFZO1lBVVosZUFBZTtZQWRmLGlCQUFpQjs7OytCQTRGdEIsS0FBSztzQkFHTCxLQUFLOzBCQUdMLEtBQUs7eUJBSUwsS0FBSztrQ0FHTCxNQUFNO3NDQUdOLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3RW5jYXBzdWxhdGlvbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7SWNvbn0gZnJvbSBcIi4uLy4uLy4uL2VudW0vaWNvbi5lbnVtXCI7XHJcbmltcG9ydCB7QXJ0aWNsZVN0b2NrIGFzIEFydGljbGVTdG9ja0JvfSBmcm9tIFwiQGNvbGlqbml0L2FydGljbGVhcGkvYnVpbGQvbW9kZWwvYXJ0aWNsZS1zdG9jay5ib1wiO1xyXG5pbXBvcnQge0dldFN0b2NrSGlzdG9yeVJlcXVlc3R9IGZyb20gXCJAY29saWpuaXQvYXJ0aWNsZWFwaS9idWlsZC9tb2RlbC9nZXQtc3RvY2staGlzdG9yeS1yZXF1ZXN0XCI7XHJcbmltcG9ydCB7U3RvY2tTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vLi4vc2VydmljZS9zdG9jay5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7U3RvY2tIaXN0b3J5Qm99IGZyb20gXCJAY29saWpuaXQvYXJ0aWNsZWFwaS9idWlsZC9tb2RlbC9zdG9jay1oaXN0b3J5LmJvXCI7XHJcbmltcG9ydCB7VGFifSBmcm9tIFwiLi4vLi4vdGFiLWJhci90YWIuaW50ZXJmYWNlXCI7XHJcbmltcG9ydCB7QXJ0aWNsZVRyYW5zYWN0aW9ufSBmcm9tIFwiQGNvbGlqbml0L2FydGljbGVhcGkvYnVpbGQvbW9kZWwvYXJ0aWNsZS10cmFuc2FjdGlvblwiO1xyXG5pbXBvcnQge0FydGljbGVUcmFuc2FjdGlvbiBhcyBBcnRpY2xlVHJhbnNhY3Rpb25Cb30gZnJvbSBcIkBjb2xpam5pdC9hcnRpY2xlYXBpL2J1aWxkL21vZGVsL2FydGljbGUtdHJhbnNhY3Rpb24uYm9cIjtcclxuaW1wb3J0IHtTdG9ja01hbmFnZW1lbnRXYXJlaG91c2VzfSBmcm9tIFwiQGNvbGlqbml0L2FydGljbGVhcGkvYnVpbGQvbW9kZWwvc3RvY2stbWFuYWdlbWVudC13YXJlaG91c2VzLmJvXCI7XHJcbmltcG9ydCB7UHJpbnRQcmljZVN0aWNrZXJzfSBmcm9tIFwiQGNvbGlqbml0L3NoYXJlZGFwaS9idWlsZC9tb2RlbC9wcmludC1wcmljZS1zdGlja2Vycy5ib1wiO1xyXG5pbXBvcnQge1N0b2NrRm9yZWNhc3R9IGZyb20gXCJAY29saWpuaXQvYXJ0aWNsZWFwaS9idWlsZC9tb2RlbC9zdG9jay1mb3JlY2FzdC5ib1wiO1xyXG5pbXBvcnQge0FydGljbGVTdG9ja01hbmFnZW1lbnR9IGZyb20gXCJAY29saWpuaXQvYXJ0aWNsZWFwaS9idWlsZC9tb2RlbC9hcnRpY2xlLXN0b2NrLW1hbmFnZW1lbnRcIjtcclxuaW1wb3J0IHtBcnRpY2xlRGV0YWlsc0JvfSBmcm9tIFwiQGNvbGlqbml0L2FydGljbGVhcGkvYnVpbGQvbW9kZWwvYXJ0aWNsZS1kZXRhaWxzLmJvXCI7XHJcbmltcG9ydCB7TG9jYWxpemVTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9sb2NhbGl6YXRpb24vbG9jYWxpemUuc2VydmljZSc7XHJcbmltcG9ydCB7QXJ0aWNsZUV4dGVuZGVkfSBmcm9tIFwiQGNvbGlqbml0L2FydGljbGVhcGkvYnVpbGQvbW9kZWwvYXJ0aWNsZS1leHRlbmRlZC5ib1wiO1xyXG5pbXBvcnQge0FydGljbGVGbGF0fSBmcm9tIFwiQGNvbGlqbml0L2FydGljbGVhcGkvYnVpbGQvbW9kZWwvYXJ0aWNsZS1mbGF0LmJvXCI7XHJcbmltcG9ydCB7U3RvY2tMb2NhdGlvbn0gZnJvbSBcIkBjb2xpam5pdC9hcnRpY2xlYXBpL2J1aWxkL21vZGVsL3N0b2NrLWxvY2F0aW9uLmJvXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJjby1zdG9jay10YWJzXCIsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxjby10YWItYmFyIFt3YXJlSG91c2VMYWJlbF09XCInQ0hPSUNFUycgfCBsb2NhbGl6ZVwiXHJcbiAgICAgICAgICAgICAgICBbd2FyZUhvdXNlU2VhcmNoTGFiZWxdPVwiJ1NFQVJDSCcgfCBsb2NhbGl6ZVwiXHJcbiAgICAgICAgICAgICAgICBbdGFic109XCJ0YWJzXCJcclxuICAgICAgICAgICAgICAgIFtkYXRhV2FyZUhvdXNlQ29kZV09XCJ3YXJlaG91c2VzXCJcclxuICAgICAgICAgICAgICAgIFtzZWxlY3RlZFdhcmVob3VzZV09XCJzZWxlY3RlZFdhcmVob3VzZVwiXHJcbiAgICAgICAgICAgICAgICBbc2Vjb25kYXJ5VGFic109XCJoaXN0b3J5VGFic1wiXHJcbiAgICAgICAgICAgICAgICBbQWN0aXZhdGVTZWNvbmRhcnlUYWJzXT1cInRhYnNbNV0uYWN0aXZlXCJcclxuICAgICAgICAgICAgICAgIFtzaG93V2FyZWhvdXNlU2VsZWN0aW9uXT1cInRhYnNbMV0uYWN0aXZlIHx8IHRhYnNbMl0uYWN0aXZlXCJcclxuICAgICAgICAgICAgICAgICh3YXJlaG91c2VTZWxlY3RlZCk9XCJoYW5kbGVXYXJlaG91c2VTZWxlY3RlZCgkZXZlbnQpXCJcclxuICAgID48L2NvLXRhYi1iYXI+XHJcblxyXG4gICAgPGNvLXN0b2NrLXRhYiAqbmdJZj1cInRhYnNbMF0uYWN0aXZlXCJcclxuICAgICAgICAgICAgICAgICAgW2FydGljbGVTdG9ja0luZm9ybWF0aW9uXT1cInN0b2NrSW5mb3JtYXRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAobG9jYXRpb25DbGlja2VkKT1cImhhbmRsZUxvY2F0aW9uQ2xpY2tlZCgkZXZlbnQpXCJcclxuICAgID48L2NvLXN0b2NrLXRhYj5cclxuXHJcbiAgICA8Y28tc3RvY2stcHJvZ25vc2UgKm5nSWY9XCJ0YWJzWzFdLmFjdGl2ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgW3N0b2NrUHJvZ25vc2VdPVwic3RvY2tQcm9nbm9zZVwiXHJcbiAgICA+PC9jby1zdG9jay1wcm9nbm9zZT5cclxuXHJcbiAgICA8Y28tc3RvY2stbG9jYXRpb24gKm5nSWY9XCJ0YWJzWzJdLmFjdGl2ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgW2FydGljbGVTdG9ja0luZm9dPVwiYXJ0aWNsZURldGFpbHNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIFthcnRpY2xlU3RvY2tJbmZvcm1hdGlvbl09XCJzdG9ja0luZm9ybWF0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICBbYXJ0aWNsZV09XCJhcnRpY2xlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICBbYXJ0aWNsZUZsYXRdPVwiYXJ0aWNsZUZsYXRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIFtzZWxlY3RlZFdhcmVob3VzZV09XCJzZWxlY3RlZFdhcmVob3VzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgW2RhdGFXYXJlSG91c2VDb2RlXT1cIndhcmVob3VzZXNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIFtzdG9ja0xvY2F0aW9uc109XCJzdG9ja0xvY2F0aW9uc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgKHRyYW5zZmVySWNvbkNsaWNrZWQpPVwidHJhbnNmZXJJY29uQ2xpY2tlZC5lbWl0KCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIChzZW5kTWV0aG9kRGlhbG9nQ2xpY2tlZCk9XCJzZW5kTWV0aG9kRGlhbG9nQ2xpY2tlZC5lbWl0KCRldmVudClcIlxyXG5cclxuICAgID48L2NvLXN0b2NrLWxvY2F0aW9uPlxyXG5cclxuICAgIDxjby1vcmRlci10YWIgKm5nSWY9XCJ0YWJzWzNdLmFjdGl2ZVwiXHJcbiAgICAgICAgICAgICAgICAgIFthcnRpY2xlU3RvY2tJbmZvcm1hdGlvbl09XCJzdG9ja0luZm9ybWF0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgW2luT3JkZXJJbmZvcm1hdGlvbl09XCJpbk9yZGVySW5mb3JtYXRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAodHJhbnNmZXJJY29uQ2xpY2tlZCk9XCJ0cmFuc2Zlckljb25DbGlja2VkLmVtaXQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgIChzZW5kTWV0aG9kRGlhbG9nQ2xpY2tlZCk9XCJzZW5kTWV0aG9kRGlhbG9nQ2xpY2tlZC5lbWl0KCRldmVudClcIlxyXG4gICAgPjwvY28tb3JkZXItdGFiPlxyXG5cclxuICAgIDxjby1vcmRlci1zdG9jay10YWIgKm5nSWY9XCJ0YWJzWzRdLmFjdGl2ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtvcmRlckluZm9ybWF0aW9uXT1cIm9yZGVySW5mb3JtYXRpb25cIlxyXG4gICAgPjwvY28tb3JkZXItc3RvY2stdGFiPlxyXG5cclxuICAgIDxjby1zdG9jay1oaXN0b3J5ICpuZ0lmPVwiaGlzdG9yeVRhYnNbMF0uYWN0aXZlICYmIHRhYnNbNV0uYWN0aXZlXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFtzdG9ja0hpc3RvcnldPVwic3RvY2tIaXN0b3J5XCJcclxuICAgID48L2NvLXN0b2NrLWhpc3Rvcnk+XHJcblxyXG4gICAgPGNvLW9yZGVyLXN1cHBseS1zdG9jay1oaXN0b3J5ICpuZ0lmPVwiaGlzdG9yeVRhYnNbMV0uYWN0aXZlICYmIHRhYnNbNV0uYWN0aXZlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbb3JkZXJTdXBwbHlTdG9ja0hpc3RvcnldPVwib3JkZXJTdXBwbHlTdG9ja0hpc3RvcnlcIlxyXG4gICAgPjwvY28tb3JkZXItc3VwcGx5LXN0b2NrLWhpc3Rvcnk+XHJcblxyXG4gICAgPGNvLW9yZGVyLXN0b2NrLWNvbW1pc3Npb24taGlzdG9yeSAqbmdJZj1cImhpc3RvcnlUYWJzWzJdLmFjdGl2ZSAmJiB0YWJzWzVdLmFjdGl2ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtvcmRlclN0b2NrQ29tbWlzc2lvbkhpc3RvcnldPVwib3JkZXJDb21taXNzaW9uU3RvY2tIaXN0b3J5XCJcclxuICAgID48L2NvLW9yZGVyLXN0b2NrLWNvbW1pc3Npb24taGlzdG9yeT5cclxuXHJcbiAgICA8Y28tb3JkZXItc3RvY2staGlzdG9yeSAqbmdJZj1cImhpc3RvcnlUYWJzWzNdLmFjdGl2ZSAmJiB0YWJzWzVdLmFjdGl2ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbb3JkZXJTdG9ja0hpc3RvcnldPVwib3JkZXJTdG9ja0hpc3RvcnlcIlxyXG4gICAgPjwvY28tb3JkZXItc3RvY2staGlzdG9yeT5cclxuXHJcbiAgICA8Y28tYWxsb2NhdGlvbi1zdG9jay1oaXN0b3J5ICpuZ0lmPVwiaGlzdG9yeVRhYnNbNF0uYWN0aXZlICYmIHRhYnNbNV0uYWN0aXZlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2FsbG9jYXRpb25TdG9ja0hpc3RvcnldPVwib3JkZXJBbGxvY2F0aW9uU3RvY2tIaXN0b3J5XCJcclxuICAgID48L2NvLWFsbG9jYXRpb24tc3RvY2staGlzdG9yeT5cclxuXHJcbiAgYCxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTdG9ja1RhYnNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIHB1YmxpYyByZWFkb25seSBpY29uczogdHlwZW9mIEljb24gPSBJY29uO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzdG9ja0luZm9ybWF0aW9uOiBBcnRpY2xlU3RvY2tCb1tdID0gW107XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGFydGljbGU6IEFydGljbGVFeHRlbmRlZDtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgYXJ0aWNsZUZsYXQ6IEFydGljbGVGbGF0O1xyXG5cclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgd2FyZWhvdXNlczogU3RvY2tNYW5hZ2VtZW50V2FyZWhvdXNlc1tdID0gW107XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyByZWFkb25seSB0cmFuc2Zlckljb25DbGlja2VkOiBFdmVudEVtaXR0ZXI8QXJ0aWNsZVN0b2NrQm8+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgcmVhZG9ubHkgc2VuZE1ldGhvZERpYWxvZ0NsaWNrZWQ6IEV2ZW50RW1pdHRlcjxQcmludFByaWNlU3RpY2tlcnM+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuXHJcbiAgcHVibGljIHN0b2NrTG9jYXRpb25zOiBTdG9ja0xvY2F0aW9uW10gPSBbXTtcclxuICBwdWJsaWMgc2VsZWN0ZWRMb2NhdGlvbk5vOiBzdHJpbmc7XHJcbiAgcHVibGljIHN0b2NrSGlzdG9yeTogU3RvY2tIaXN0b3J5Qm9bXSA9IFtdO1xyXG4gIHB1YmxpYyBvcmRlclN1cHBseVN0b2NrSGlzdG9yeTogU3RvY2tIaXN0b3J5Qm9bXSA9IFtdO1xyXG4gIHB1YmxpYyBvcmRlckNvbW1pc3Npb25TdG9ja0hpc3Rvcnk6IFN0b2NrSGlzdG9yeUJvW10gPSBbXTtcclxuICBwdWJsaWMgb3JkZXJTdG9ja0hpc3Rvcnk6IFN0b2NrSGlzdG9yeUJvW10gPSBbXTtcclxuICBwdWJsaWMgb3JkZXJBbGxvY2F0aW9uU3RvY2tIaXN0b3J5OiBTdG9ja0hpc3RvcnlCb1tdID0gW107XHJcbiAgcHVibGljIGluT3JkZXJJbmZvcm1hdGlvbjogQXJ0aWNsZVRyYW5zYWN0aW9uQm9bXSA9IFtdO1xyXG4gIHB1YmxpYyBvcmRlckluZm9ybWF0aW9uOiBBcnRpY2xlVHJhbnNhY3Rpb25Cb1tdID0gW107XHJcbiAgcHVibGljIHN0b2NrUHJvZ25vc2U6IFN0b2NrRm9yZWNhc3RbXSA9IFtdO1xyXG4gIHB1YmxpYyBzZWxlY3RlZFdhcmVob3VzZTogU3RvY2tNYW5hZ2VtZW50V2FyZWhvdXNlcyA9IG5ldyBTdG9ja01hbmFnZW1lbnRXYXJlaG91c2VzKCk7XHJcbiAgcHVibGljIGFydGljbGVEZXRhaWxzSW5mb3JtYXRpb246IEFydGljbGVTdG9ja01hbmFnZW1lbnQgPSBuZXcgQXJ0aWNsZVN0b2NrTWFuYWdlbWVudCgpXHJcbiAgcHVibGljIHNob3dXYXJlaG91c2VTZWxlY3Rpb246IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgYXJ0aWNsZURldGFpbHM6IEFydGljbGVEZXRhaWxzQm9bXSA9IFtdO1xyXG5cclxuICBwdWJsaWMgdGFiczogVGFiW10gPSBbXTtcclxuICBwdWJsaWMgaGlzdG9yeVRhYnM6IFRhYltdID0gW107XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBfc3RvY2tTZXJ2aWNlOiBTdG9ja1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9sb2NhbGl6ZVNlcnZpY2U6IExvY2FsaXplU2VydmljZSxcclxuICAgIHByaXZhdGUgX2NoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICApIHtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy50YWJzID0gW1xyXG4gICAgICB7dGl0bGU6IHRoaXMuX2xvY2FsaXplU2VydmljZS5nZXQoJ09WRVJWSUVXJyksIGFjdGl2ZTogdHJ1ZX0sXHJcbiAgICAgIHt0aXRsZTogdGhpcy5fbG9jYWxpemVTZXJ2aWNlLmdldCgnU1RPQ0tfRk9SRUNBU1QnKSwgYWN0aXZlOiBmYWxzZX0sXHJcbiAgICAgIHt0aXRsZTogdGhpcy5fbG9jYWxpemVTZXJ2aWNlLmdldCgnU1RPQ0tfREVUQUlMUycpLCBhY3RpdmU6IGZhbHNlfSxcclxuICAgICAge3RpdGxlOiB0aGlzLl9sb2NhbGl6ZVNlcnZpY2UuZ2V0KCdBTFJFQURZX0lOX09SREVSJyksIGFjdGl2ZTogZmFsc2V9LFxyXG4gICAgICB7dGl0bGU6IHRoaXMuX2xvY2FsaXplU2VydmljZS5nZXQoJ0lOX09SREVSJyksIGFjdGl2ZTogZmFsc2V9LFxyXG4gICAgICB7dGl0bGU6IHRoaXMuX2xvY2FsaXplU2VydmljZS5nZXQoJ0hJU1RPUlknKSwgYWN0aXZlOiBmYWxzZX0sXHJcbiAgICBdO1xyXG5cclxuICAgIHRoaXMuaGlzdG9yeVRhYnMgPSBbXHJcbiAgICAgIHt0aXRsZTogdGhpcy5fbG9jYWxpemVTZXJ2aWNlLmdldCgnU1RPQ0snKSwgYWN0aXZlOiB0cnVlfSxcclxuICAgICAge1xyXG4gICAgICAgIHRpdGxlOiB0aGlzLl9sb2NhbGl6ZVNlcnZpY2UuZ2V0KCdPUkRFUl9TVE9DSycpLFxyXG4gICAgICAgIGFjdGl2ZTogZmFsc2VcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIHRpdGxlOiB0aGlzLl9sb2NhbGl6ZVNlcnZpY2UuZ2V0KCdPUkRFUl9DT01NSVNTSU9OJyksXHJcbiAgICAgICAgYWN0aXZlOiBmYWxzZVxyXG4gICAgICB9LFxyXG4gICAgICB7dGl0bGU6IHRoaXMuX2xvY2FsaXplU2VydmljZS5nZXQoJ09SREVSJyksIGFjdGl2ZTogZmFsc2V9LFxyXG4gICAgICB7XHJcbiAgICAgICAgdGl0bGU6IHRoaXMuX2xvY2FsaXplU2VydmljZS5nZXQoJ0FMTE9DQVRJT04nKSxcclxuICAgICAgICBhY3RpdmU6IGZhbHNlXHJcbiAgICAgIH0sXHJcbiAgICBdO1xyXG5cclxuXHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlTG9jYXRpb25DbGlja2VkKGRhdGE6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy50YWJzWzBdLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgdGhpcy50YWJzWzJdLmFjdGl2ZSA9IHRydWU7XHJcbiAgICB0aGlzLnNlbGVjdGVkV2FyZWhvdXNlID0gdGhpcy53YXJlSG91c2VGb3JDb2RlKHBhcnNlSW50KGRhdGEpKTtcclxuICAgIHRoaXMuaGFuZGxlV2FyZWhvdXNlU2VsZWN0ZWQodGhpcy5zZWxlY3RlZFdhcmVob3VzZSk7XHJcbiAgICB0aGlzLmdldFN0b2NrRGF0YSh0aGlzLnNlbGVjdGVkV2FyZWhvdXNlKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRTdG9ja0hpc3RvcnkoKTogdm9pZCB7XHJcbiAgICBjb25zdCBzdG9ja0hpc3RvcnlJbmZvcm1hdGlvbjogR2V0U3RvY2tIaXN0b3J5UmVxdWVzdCA9IG5ldyBHZXRTdG9ja0hpc3RvcnlSZXF1ZXN0KCk7XHJcbiAgICBzdG9ja0hpc3RvcnlJbmZvcm1hdGlvbi50eXBlID0gXCJWXCI7XHJcbiAgICBzdG9ja0hpc3RvcnlJbmZvcm1hdGlvbi5nb29kSWQgPSB0aGlzLmFydGljbGUuZ29vZElkLnRvU3RyaW5nKCk7XHJcbiAgICB0aGlzLl9zdG9ja1NlcnZpY2UuZ2V0U3RvY2tIaXN0b3J5KHN0b2NrSGlzdG9yeUluZm9ybWF0aW9uKS50aGVuKHJlc3VsdCA9PiB7XHJcbiAgICAgIHRoaXMuc3RvY2tIaXN0b3J5ID0gcmVzdWx0XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRPcmRlclN1cHBseVN0b2NrSGlzdG9yeSgpOiB2b2lkIHtcclxuICAgIGNvbnN0IHN0b2NrSGlzdG9yeUluZm9ybWF0aW9uOiBHZXRTdG9ja0hpc3RvcnlSZXF1ZXN0ID0gbmV3IEdldFN0b2NrSGlzdG9yeVJlcXVlc3QoKTtcclxuICAgIHN0b2NrSGlzdG9yeUluZm9ybWF0aW9uLnR5cGUgPSBcIk9cIjtcclxuICAgIHN0b2NrSGlzdG9yeUluZm9ybWF0aW9uLmdvb2RJZCA9IHRoaXMuYXJ0aWNsZS5nb29kSWQudG9TdHJpbmcoKTtcclxuICAgIHRoaXMuX3N0b2NrU2VydmljZS5nZXRTdG9ja0hpc3Rvcnkoc3RvY2tIaXN0b3J5SW5mb3JtYXRpb24pLnRoZW4ocmVzdWx0ID0+IHtcclxuICAgICAgdGhpcy5vcmRlclN1cHBseVN0b2NrSGlzdG9yeSA9IHJlc3VsdDtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldE9yZGVyQ29tbWlzc2lvblN0b2NrSGlzdG9yeSgpOiB2b2lkIHtcclxuICAgIGNvbnN0IHN0b2NrSGlzdG9yeUluZm9ybWF0aW9uOiBHZXRTdG9ja0hpc3RvcnlSZXF1ZXN0ID0gbmV3IEdldFN0b2NrSGlzdG9yeVJlcXVlc3QoKTtcclxuICAgIHN0b2NrSGlzdG9yeUluZm9ybWF0aW9uLnR5cGUgPSBcIkNcIjtcclxuICAgIHN0b2NrSGlzdG9yeUluZm9ybWF0aW9uLmdvb2RJZCA9IHRoaXMuYXJ0aWNsZS5nb29kSWQudG9TdHJpbmcoKTtcclxuICAgIHRoaXMuX3N0b2NrU2VydmljZS5nZXRTdG9ja0hpc3Rvcnkoc3RvY2tIaXN0b3J5SW5mb3JtYXRpb24pLnRoZW4ocmVzdWx0ID0+IHtcclxuICAgICAgdGhpcy5vcmRlckNvbW1pc3Npb25TdG9ja0hpc3RvcnkgPSByZXN1bHQ7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRPcmRlclN0b2NrSGlzdG9yeSgpOiB2b2lkIHtcclxuICAgIGNvbnN0IHN0b2NrSGlzdG9yeUluZm9ybWF0aW9uOiBHZXRTdG9ja0hpc3RvcnlSZXF1ZXN0ID0gbmV3IEdldFN0b2NrSGlzdG9yeVJlcXVlc3QoKTtcclxuICAgIHN0b2NrSGlzdG9yeUluZm9ybWF0aW9uLnR5cGUgPSBcIkJcIjtcclxuICAgIHN0b2NrSGlzdG9yeUluZm9ybWF0aW9uLmdvb2RJZCA9IHRoaXMuYXJ0aWNsZS5nb29kSWQudG9TdHJpbmcoKTtcclxuICAgIHRoaXMuX3N0b2NrU2VydmljZS5nZXRTdG9ja0hpc3Rvcnkoc3RvY2tIaXN0b3J5SW5mb3JtYXRpb24pLnRoZW4ocmVzdWx0ID0+IHtcclxuICAgICAgdGhpcy5vcmRlclN0b2NrSGlzdG9yeSA9IHJlc3VsdDtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldEFsbG9jYXRpb25TdG9ja0hpc3RvcnkoKTogdm9pZCB7XHJcbiAgICBjb25zdCBzdG9ja0hpc3RvcnlJbmZvcm1hdGlvbjogR2V0U3RvY2tIaXN0b3J5UmVxdWVzdCA9IG5ldyBHZXRTdG9ja0hpc3RvcnlSZXF1ZXN0KCk7XHJcbiAgICBzdG9ja0hpc3RvcnlJbmZvcm1hdGlvbi50eXBlID0gXCJUXCI7XHJcbiAgICBzdG9ja0hpc3RvcnlJbmZvcm1hdGlvbi5nb29kSWQgPSB0aGlzLmFydGljbGUuZ29vZElkLnRvU3RyaW5nKCk7XHJcbiAgICB0aGlzLl9zdG9ja1NlcnZpY2UuZ2V0U3RvY2tIaXN0b3J5KHN0b2NrSGlzdG9yeUluZm9ybWF0aW9uKS50aGVuKHJlc3VsdCA9PiB7XHJcbiAgICAgIHRoaXMub3JkZXJBbGxvY2F0aW9uU3RvY2tIaXN0b3J5ID0gcmVzdWx0O1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0SW5PcmRlckRhdGEoKTogdm9pZCB7XHJcbiAgICBjb25zdCBpbk9yZGVyRGF0YTogQXJ0aWNsZVRyYW5zYWN0aW9uID0gbmV3IEFydGljbGVUcmFuc2FjdGlvbigpO1xyXG4gICAgaW5PcmRlckRhdGEudHlwZSA9IFwiVlwiO1xyXG4gICAgaW5PcmRlckRhdGEuZ29vZElkID0gdGhpcy5zdG9ja0luZm9ybWF0aW9uWzBdLmdvb2RJZC50b1N0cmluZygpO1xyXG4gICAgdGhpcy5fc3RvY2tTZXJ2aWNlLmdldEFydGljbGVUcmFuc2FjdGlvbihpbk9yZGVyRGF0YSkudGhlbihyZXN1bHQgPT4ge1xyXG4gICAgICB0aGlzLmluT3JkZXJJbmZvcm1hdGlvbiA9IHJlc3VsdDtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldE9yZGVyRGF0YSgpOiB2b2lkIHtcclxuICAgIGNvbnN0IG9yZGVyRGF0YTogQXJ0aWNsZVRyYW5zYWN0aW9uID0gbmV3IEFydGljbGVUcmFuc2FjdGlvbigpO1xyXG4gICAgb3JkZXJEYXRhLnR5cGUgPSBcIklcIjtcclxuICAgIG9yZGVyRGF0YS5nb29kSWQgPSB0aGlzLnN0b2NrSW5mb3JtYXRpb25bMF0uZ29vZElkLnRvU3RyaW5nKCk7XHJcbiAgICB0aGlzLl9zdG9ja1NlcnZpY2UuZ2V0QXJ0aWNsZVRyYW5zYWN0aW9uKG9yZGVyRGF0YSkudGhlbihyZXN1bHQgPT4ge1xyXG4gICAgICB0aGlzLm9yZGVySW5mb3JtYXRpb24gPSByZXN1bHQ7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRTdG9ja1Byb2dub3NlKHdhcmVob3VzZU5vOiBudW1iZXIpOiB2b2lkIHtcclxuICAgIHRoaXMuX3N0b2NrU2VydmljZS5zdG9ja1Byb2dub3NlKHRoaXMuYXJ0aWNsZS5nb29kSWQsIHdhcmVob3VzZU5vKS50aGVuKHJlc3VsdCA9PiB7XHJcbiAgICAgIHRoaXMuc3RvY2tQcm9nbm9zZSA9IHJlc3VsdDtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZVdhcmVob3VzZVNlbGVjdGVkKGV2ZW50OiBTdG9ja01hbmFnZW1lbnRXYXJlaG91c2VzKTogdm9pZCB7XHJcbiAgICB0aGlzLnNlbGVjdGVkV2FyZWhvdXNlID0gZXZlbnQ7XHJcbiAgICB0aGlzLl9zdG9ja1NlcnZpY2Uud2FyZWhvdXNlU2VsZWN0ZWQuZW1pdChldmVudCk7XHJcbiAgICBpZiAodGhpcy50YWJzWzFdLmFjdGl2ZSkge1xyXG4gICAgICB0aGlzLmdldFN0b2NrUHJvZ25vc2UodGhpcy5zZWxlY3RlZFdhcmVob3VzZS53YXJlaG91c2VObyk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy50YWJzWzJdLmFjdGl2ZSkge1xyXG4gICAgICB0aGlzLmFydGljbGVEZXRhaWxzSW5mb3JtYXRpb24ud2FyZWhvdXNlTnVtYmVyID0gZXZlbnQud2FyZWhvdXNlTm87XHJcbiAgICAgIHRoaXMuYXJ0aWNsZURldGFpbHNJbmZvcm1hdGlvbi5nb29kSWQgPSB0aGlzLmFydGljbGUuZ29vZElkLnRvU3RyaW5nKCk7XHJcbiAgICAgIHRoaXMuX3N0b2NrU2VydmljZS5nZXRBcnRpY2xlRGV0YWlscyh0aGlzLmFydGljbGVEZXRhaWxzSW5mb3JtYXRpb24pLnRoZW4oKGRldGFpbHMpID0+IHtcclxuICAgICAgICB0aGlzLmFydGljbGVEZXRhaWxzID0gZGV0YWlscztcclxuICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldFN0b2NrTG9jYXRpb25zKCkge1xyXG4gICAgdGhpcy5fc3RvY2tTZXJ2aWNlLmdldFN0b2NrTWFuYWdlbWVudExvY2F0aW9ucyh0aGlzLnNlbGVjdGVkV2FyZWhvdXNlLndhcmVob3VzZU5vKS50aGVuKCByZXN1bHQgPT4ge1xyXG4gICAgICB0aGlzLnN0b2NrTG9jYXRpb25zID0gcmVzdWx0O1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0U3RvY2tEYXRhKHdhcmVob3VzZTogU3RvY2tNYW5hZ2VtZW50V2FyZWhvdXNlcykge1xyXG4gICAgdGhpcy5oYW5kbGVXYXJlaG91c2VTZWxlY3RlZCh3YXJlaG91c2UpO1xyXG4gICAgdGhpcy5nZXRTdG9ja1Byb2dub3NlKHdhcmVob3VzZS53YXJlaG91c2VObyk7XHJcbiAgICB0aGlzLmdldE9yZGVyRGF0YSgpO1xyXG4gICAgdGhpcy5nZXRJbk9yZGVyRGF0YSgpO1xyXG4gICAgdGhpcy5nZXRBbGxvY2F0aW9uU3RvY2tIaXN0b3J5KCk7XHJcbiAgICB0aGlzLmdldE9yZGVyU3RvY2tIaXN0b3J5KCk7XHJcbiAgICB0aGlzLmdldE9yZGVyQ29tbWlzc2lvblN0b2NrSGlzdG9yeSgpO1xyXG4gICAgdGhpcy5nZXRPcmRlclN1cHBseVN0b2NrSGlzdG9yeSgpO1xyXG4gICAgdGhpcy5nZXRTdG9ja0hpc3RvcnkoKTtcclxuICAgIHRoaXMuZ2V0U3RvY2tMb2NhdGlvbnMoKTtcclxuICAgIHRoaXMuX2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xyXG5cclxuICB9XHJcblxyXG4gIHB1YmxpYyB3YXJlSG91c2VGb3JDb2RlKGNvZGU6IG51bWJlcikge1xyXG4gICAgcmV0dXJuIHRoaXMud2FyZWhvdXNlcy5maW5kKHdhcmVob3VzZSA9PiB3YXJlaG91c2Uud2FyZWhvdXNlTm8gPT09IGNvZGUpO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
256
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvY2stdGFicy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaGFyZWRjb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9zdG9jay9zdG9jay10YWJzL3N0b2NrLXRhYnMuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDbkgsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBRTdDLE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLDREQUE0RCxDQUFDO0FBQ2xHLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUc1RCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxzREFBc0QsQ0FBQztBQUV4RixPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSxpRUFBaUUsQ0FBQztBQUcxRyxPQUFPLEVBQUMsc0JBQXNCLEVBQUMsTUFBTSwyREFBMkQsQ0FBQztBQUVqRyxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sd0NBQXdDLENBQUM7QUE0RXZFLE1BQU0sT0FBTyxrQkFBa0I7SUEyQzdCLFlBQ1UsYUFBMkIsRUFDM0IsZ0JBQWlDLEVBQ2pDLGVBQWtDO1FBRmxDLGtCQUFhLEdBQWIsYUFBYSxDQUFjO1FBQzNCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBaUI7UUFDakMsb0JBQWUsR0FBZixlQUFlLENBQW1CO1FBN0M1QixVQUFLLEdBQWdCLElBQUksQ0FBQztRQUduQyxxQkFBZ0IsR0FBcUIsRUFBRSxDQUFDO1FBWXhDLGVBQVUsR0FBZ0MsRUFBRSxDQUFDO1FBR3BDLHdCQUFtQixHQUFpQyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBR3ZFLDRCQUF1QixHQUFxQyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBR3hGLG1CQUFjLEdBQW9CLEVBQUUsQ0FBQztRQUVyQyxpQkFBWSxHQUFxQixFQUFFLENBQUM7UUFDcEMsNEJBQXVCLEdBQXFCLEVBQUUsQ0FBQztRQUMvQyxnQ0FBMkIsR0FBcUIsRUFBRSxDQUFDO1FBQ25ELHNCQUFpQixHQUFxQixFQUFFLENBQUM7UUFDekMsZ0NBQTJCLEdBQXFCLEVBQUUsQ0FBQztRQUNuRCx1QkFBa0IsR0FBMkIsRUFBRSxDQUFDO1FBQ2hELHFCQUFnQixHQUEyQixFQUFFLENBQUM7UUFDOUMsa0JBQWEsR0FBb0IsRUFBRSxDQUFDO1FBQ3BDLHNCQUFpQixHQUE4QixJQUFJLHlCQUF5QixFQUFFLENBQUM7UUFDL0UsOEJBQXlCLEdBQTJCLElBQUksc0JBQXNCLEVBQUUsQ0FBQTtRQUNoRiwyQkFBc0IsR0FBWSxLQUFLLENBQUM7UUFDeEMsbUJBQWMsR0FBdUIsRUFBRSxDQUFDO1FBRXhDLFNBQUksR0FBVSxFQUFFLENBQUM7UUFDakIsZ0JBQVcsR0FBVSxFQUFFLENBQUM7SUFPL0IsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsSUFBSSxHQUFHO1lBQ1YsRUFBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFDO1lBQzVELEVBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFDO1lBQ25FLEVBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBQztZQUNsRSxFQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBQztZQUNyRSxFQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUM7WUFDN0QsRUFBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFDO1NBQzdELENBQUM7UUFFRixJQUFJLENBQUMsV0FBVyxHQUFHO1lBQ2pCLEVBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBQztZQUN6RDtnQkFDRSxLQUFLLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUM7Z0JBQy9DLE1BQU0sRUFBRSxLQUFLO2FBQ2Q7WUFDRDtnQkFDRSxLQUFLLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQztnQkFDcEQsTUFBTSxFQUFFLEtBQUs7YUFDZDtZQUNELEVBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBQztZQUMxRDtnQkFDRSxLQUFLLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUM7Z0JBQzlDLE1BQU0sRUFBRSxLQUFLO2FBQ2Q7U0FDRixDQUFDO0lBR0osQ0FBQztJQUNNLHlCQUF5QixDQUFDLElBQWE7UUFDNUMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQztJQUNoQyxDQUFDO0lBQ00scUJBQXFCLENBQUMsSUFBWTtRQUN2QyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDNUIsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1FBQzNCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDL0QsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3JELElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVNLGVBQWU7UUFDcEIsTUFBTSx1QkFBdUIsR0FBMkIsSUFBSSxzQkFBc0IsRUFBRSxDQUFDO1FBQ3JGLHVCQUF1QixDQUFDLElBQUksR0FBRyxHQUFHLENBQUM7UUFDbkMsdUJBQXVCLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2hFLElBQUksQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDLHVCQUF1QixDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ3hFLElBQUksQ0FBQyxZQUFZLEdBQUcsTUFBTSxDQUFBO1FBQzVCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLDBCQUEwQjtRQUMvQixNQUFNLHVCQUF1QixHQUEyQixJQUFJLHNCQUFzQixFQUFFLENBQUM7UUFDckYsdUJBQXVCLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQztRQUNuQyx1QkFBdUIsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDaEUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDeEUsSUFBSSxDQUFDLHVCQUF1QixHQUFHLE1BQU0sQ0FBQztRQUN4QyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSw4QkFBOEI7UUFDbkMsTUFBTSx1QkFBdUIsR0FBMkIsSUFBSSxzQkFBc0IsRUFBRSxDQUFDO1FBQ3JGLHVCQUF1QixDQUFDLElBQUksR0FBRyxHQUFHLENBQUM7UUFDbkMsdUJBQXVCLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2hFLElBQUksQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDLHVCQUF1QixDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ3hFLElBQUksQ0FBQywyQkFBMkIsR0FBRyxNQUFNLENBQUM7UUFDNUMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sb0JBQW9CO1FBQ3pCLE1BQU0sdUJBQXVCLEdBQTJCLElBQUksc0JBQXNCLEVBQUUsQ0FBQztRQUNyRix1QkFBdUIsQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDO1FBQ25DLHVCQUF1QixDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNoRSxJQUFJLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUN4RSxJQUFJLENBQUMsaUJBQWlCLEdBQUcsTUFBTSxDQUFDO1FBQ2xDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLHlCQUF5QjtRQUM5QixNQUFNLHVCQUF1QixHQUEyQixJQUFJLHNCQUFzQixFQUFFLENBQUM7UUFDckYsdUJBQXVCLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQztRQUNuQyx1QkFBdUIsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDaEUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDeEUsSUFBSSxDQUFDLDJCQUEyQixHQUFHLE1BQU0sQ0FBQztRQUM1QyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxjQUFjO1FBQ25CLE1BQU0sV0FBVyxHQUF1QixJQUFJLGtCQUFrQixFQUFFLENBQUM7UUFDakUsV0FBVyxDQUFDLElBQUksR0FBRyxHQUFHLENBQUM7UUFDdkIsV0FBVyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2hFLElBQUksQ0FBQyxhQUFhLENBQUMscUJBQXFCLENBQUMsV0FBVyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ2xFLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxNQUFNLENBQUM7UUFDbkMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sWUFBWTtRQUNqQixNQUFNLFNBQVMsR0FBdUIsSUFBSSxrQkFBa0IsRUFBRSxDQUFDO1FBQy9ELFNBQVMsQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDO1FBQ3JCLFNBQVMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUM5RCxJQUFJLENBQUMsYUFBYSxDQUFDLHFCQUFxQixDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNoRSxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsTUFBTSxDQUFDO1FBQ2pDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLGdCQUFnQixDQUFDLFdBQW1CO1FBQ3pDLElBQUksQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUMvRSxJQUFJLENBQUMsYUFBYSxHQUFHLE1BQU0sQ0FBQztRQUM5QixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSx1QkFBdUIsQ0FBQyxLQUFnQztRQUM3RCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsS0FBSyxDQUFDO1FBQy9CLElBQUksQ0FBQyxhQUFhLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pELElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUU7WUFDdkIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsQ0FBQztTQUMzRDtRQUNELElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUU7WUFDdkIsSUFBSSxDQUFDLHlCQUF5QixDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUMsV0FBVyxDQUFDO1lBQ25FLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDdkUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMseUJBQXlCLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtnQkFDcEYsSUFBSSxDQUFDLGNBQWMsR0FBRyxPQUFPLENBQUM7WUFDaEMsQ0FBQyxDQUFDLENBQUM7U0FDSjtJQUVILENBQUM7SUFFTSxpQkFBaUI7UUFDdEIsSUFBSSxDQUFDLGFBQWEsQ0FBQywyQkFBMkIsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsV0FBVyxDQUFDLENBQUMsSUFBSSxDQUFFLE1BQU0sQ0FBQyxFQUFFO1lBQ2hHLElBQUksQ0FBQyxjQUFjLEdBQUcsTUFBTSxDQUFDO1FBQy9CLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLFlBQVksQ0FBQyxTQUFvQztRQUN0RCxJQUFJLENBQUMsdUJBQXVCLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDeEMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUM3QyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDcEIsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyx5QkFBeUIsRUFBRSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1FBQzVCLElBQUksQ0FBQyw4QkFBOEIsRUFBRSxDQUFDO1FBQ3RDLElBQUksQ0FBQywwQkFBMEIsRUFBRSxDQUFDO1FBQ2xDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUN6QixJQUFJLENBQUMsZUFBZSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxlQUFlLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDdkMsQ0FBQztJQUVNLGdCQUFnQixDQUFDLElBQVk7UUFDbEMsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxXQUFXLEtBQUssSUFBSSxDQUFDLENBQUM7SUFDM0UsQ0FBQzs7O1lBN1FGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsZUFBZTtnQkFDekIsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FrRVQ7Z0JBQ0QsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7YUFDdEM7OztZQXJGTyxZQUFZO1lBVVosZUFBZTtZQWRmLGlCQUFpQjs7OytCQTZGdEIsS0FBSztzQkFHTCxLQUFLOzBCQUdMLEtBQUs7Z0NBR0wsS0FBSzt5QkFHTCxLQUFLO2tDQUdMLE1BQU07c0NBR04sTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFZpZXdFbmNhcHN1bGF0aW9ufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtJY29ufSBmcm9tIFwiLi4vLi4vLi4vZW51bS9pY29uLmVudW1cIjtcclxuaW1wb3J0IHtBcnRpY2xlU3RvY2sgYXMgQXJ0aWNsZVN0b2NrQm99IGZyb20gXCJAY29saWpuaXQvYXJ0aWNsZWFwaS9idWlsZC9tb2RlbC9hcnRpY2xlLXN0b2NrLmJvXCI7XHJcbmltcG9ydCB7R2V0U3RvY2tIaXN0b3J5UmVxdWVzdH0gZnJvbSBcIkBjb2xpam5pdC9hcnRpY2xlYXBpL2J1aWxkL21vZGVsL2dldC1zdG9jay1oaXN0b3J5LXJlcXVlc3RcIjtcclxuaW1wb3J0IHtTdG9ja1NlcnZpY2V9IGZyb20gXCIuLi8uLi8uLi9zZXJ2aWNlL3N0b2NrLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtTdG9ja0hpc3RvcnlCb30gZnJvbSBcIkBjb2xpam5pdC9hcnRpY2xlYXBpL2J1aWxkL21vZGVsL3N0b2NrLWhpc3RvcnkuYm9cIjtcclxuaW1wb3J0IHtUYWJ9IGZyb20gXCIuLi8uLi90YWItYmFyL3RhYi5pbnRlcmZhY2VcIjtcclxuaW1wb3J0IHtBcnRpY2xlVHJhbnNhY3Rpb259IGZyb20gXCJAY29saWpuaXQvYXJ0aWNsZWFwaS9idWlsZC9tb2RlbC9hcnRpY2xlLXRyYW5zYWN0aW9uXCI7XHJcbmltcG9ydCB7QXJ0aWNsZVRyYW5zYWN0aW9uIGFzIEFydGljbGVUcmFuc2FjdGlvbkJvfSBmcm9tIFwiQGNvbGlqbml0L2FydGljbGVhcGkvYnVpbGQvbW9kZWwvYXJ0aWNsZS10cmFuc2FjdGlvbi5ib1wiO1xyXG5pbXBvcnQge1N0b2NrTWFuYWdlbWVudFdhcmVob3VzZXN9IGZyb20gXCJAY29saWpuaXQvYXJ0aWNsZWFwaS9idWlsZC9tb2RlbC9zdG9jay1tYW5hZ2VtZW50LXdhcmVob3VzZXMuYm9cIjtcclxuaW1wb3J0IHtQcmludFByaWNlU3RpY2tlcnN9IGZyb20gXCJAY29saWpuaXQvc2hhcmVkYXBpL2J1aWxkL21vZGVsL3ByaW50LXByaWNlLXN0aWNrZXJzLmJvXCI7XHJcbmltcG9ydCB7U3RvY2tGb3JlY2FzdH0gZnJvbSBcIkBjb2xpam5pdC9hcnRpY2xlYXBpL2J1aWxkL21vZGVsL3N0b2NrLWZvcmVjYXN0LmJvXCI7XHJcbmltcG9ydCB7QXJ0aWNsZVN0b2NrTWFuYWdlbWVudH0gZnJvbSBcIkBjb2xpam5pdC9hcnRpY2xlYXBpL2J1aWxkL21vZGVsL2FydGljbGUtc3RvY2stbWFuYWdlbWVudFwiO1xyXG5pbXBvcnQge0FydGljbGVEZXRhaWxzQm99IGZyb20gXCJAY29saWpuaXQvYXJ0aWNsZWFwaS9idWlsZC9tb2RlbC9hcnRpY2xlLWRldGFpbHMuYm9cIjtcclxuaW1wb3J0IHtMb2NhbGl6ZVNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL2xvY2FsaXphdGlvbi9sb2NhbGl6ZS5zZXJ2aWNlJztcclxuaW1wb3J0IHtBcnRpY2xlRXh0ZW5kZWR9IGZyb20gXCJAY29saWpuaXQvYXJ0aWNsZWFwaS9idWlsZC9tb2RlbC9hcnRpY2xlLWV4dGVuZGVkLmJvXCI7XHJcbmltcG9ydCB7QXJ0aWNsZUZsYXR9IGZyb20gXCJAY29saWpuaXQvYXJ0aWNsZWFwaS9idWlsZC9tb2RlbC9hcnRpY2xlLWZsYXQuYm9cIjtcclxuaW1wb3J0IHtTdG9ja0xvY2F0aW9ufSBmcm9tIFwiQGNvbGlqbml0L2FydGljbGVhcGkvYnVpbGQvbW9kZWwvc3RvY2stbG9jYXRpb24uYm9cIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcImNvLXN0b2NrLXRhYnNcIixcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPGNvLXRhYi1iYXIgW3dhcmVIb3VzZUxhYmVsXT1cIidDSE9JQ0VTJyB8IGxvY2FsaXplXCJcclxuICAgICAgICAgICAgICAgIFt3YXJlSG91c2VTZWFyY2hMYWJlbF09XCInU0VBUkNIJyB8IGxvY2FsaXplXCJcclxuICAgICAgICAgICAgICAgIFt0YWJzXT1cInRhYnNcIlxyXG4gICAgICAgICAgICAgICAgW2RhdGFXYXJlSG91c2VDb2RlXT1cIndhcmVob3VzZXNcIlxyXG4gICAgICAgICAgICAgICAgW3NlbGVjdGVkV2FyZWhvdXNlXT1cInNlbGVjdGVkV2FyZWhvdXNlXCJcclxuICAgICAgICAgICAgICAgIFtzZWNvbmRhcnlUYWJzXT1cImhpc3RvcnlUYWJzXCJcclxuICAgICAgICAgICAgICAgIFtBY3RpdmF0ZVNlY29uZGFyeVRhYnNdPVwidGFic1s1XS5hY3RpdmVcIlxyXG4gICAgICAgICAgICAgICAgW3Nob3dXYXJlaG91c2VTZWxlY3Rpb25dPVwidGFic1sxXS5hY3RpdmUgfHwgdGFic1syXS5hY3RpdmVcIlxyXG4gICAgICAgICAgICAgICAgKHdhcmVob3VzZVNlbGVjdGVkKT1cImhhbmRsZVdhcmVob3VzZVNlbGVjdGVkKCRldmVudClcIlxyXG4gICAgPjwvY28tdGFiLWJhcj5cclxuXHJcbiAgICA8Y28tc3RvY2stdGFiICpuZ0lmPVwidGFic1swXS5hY3RpdmVcIlxyXG4gICAgICAgICAgICAgICAgICBbYXJ0aWNsZVN0b2NrSW5mb3JtYXRpb25dPVwic3RvY2tJbmZvcm1hdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgIChsb2NhdGlvbkNsaWNrZWQpPVwiaGFuZGxlTG9jYXRpb25DbGlja2VkKCRldmVudClcIlxyXG4gICAgPjwvY28tc3RvY2stdGFiPlxyXG5cclxuICAgIDxjby1zdG9jay1wcm9nbm9zZSAqbmdJZj1cInRhYnNbMV0uYWN0aXZlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICBbc3RvY2tQcm9nbm9zZV09XCJzdG9ja1Byb2dub3NlXCJcclxuICAgID48L2NvLXN0b2NrLXByb2dub3NlPlxyXG5cclxuICAgIDxjby1zdG9jay1sb2NhdGlvbiAqbmdJZj1cInRhYnNbMl0uYWN0aXZlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICBbYXJ0aWNsZVN0b2NrSW5mb109XCJhcnRpY2xlRGV0YWlsc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgW2FydGljbGVTdG9ja0luZm9ybWF0aW9uXT1cInN0b2NrSW5mb3JtYXRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIFthcnRpY2xlXT1cImFydGljbGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIFthcnRpY2xlRmxhdF09XCJhcnRpY2xlRmxhdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgW3NlbGVjdGVkV2FyZWhvdXNlXT1cInNlbGVjdGVkV2FyZWhvdXNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICBbZGF0YVdhcmVIb3VzZUNvZGVdPVwid2FyZWhvdXNlc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgW3N0b2NrTG9jYXRpb25zXT1cInN0b2NrTG9jYXRpb25zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAodHJhbnNmZXJJY29uQ2xpY2tlZCk9XCJ0cmFuc2Zlckljb25DbGlja2VkLmVtaXQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgKHNlbmRNZXRob2REaWFsb2dDbGlja2VkKT1cInNlbmRNZXRob2REaWFsb2dDbGlja2VkLmVtaXQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgW3Nob3dTdG9ja1RyYW5zZmVyXT1cInNob3dTdG9ja1RyYW5zZmVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAoc2hvd1N0b2NrVHJhbnNmZXJDaGFuZ2UpPVwib25TaG93U3RvY2tUcmFuc2ZlckNoYW5nZSgkZXZlbnQpXCJcclxuICAgID48L2NvLXN0b2NrLWxvY2F0aW9uPlxyXG5cclxuICAgIDxjby1vcmRlci10YWIgKm5nSWY9XCJ0YWJzWzNdLmFjdGl2ZVwiXHJcbiAgICAgICAgICAgICAgICAgIFthcnRpY2xlU3RvY2tJbmZvcm1hdGlvbl09XCJzdG9ja0luZm9ybWF0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgW2luT3JkZXJJbmZvcm1hdGlvbl09XCJpbk9yZGVySW5mb3JtYXRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAodHJhbnNmZXJJY29uQ2xpY2tlZCk9XCJ0cmFuc2Zlckljb25DbGlja2VkLmVtaXQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgIChzZW5kTWV0aG9kRGlhbG9nQ2xpY2tlZCk9XCJzZW5kTWV0aG9kRGlhbG9nQ2xpY2tlZC5lbWl0KCRldmVudClcIlxyXG4gICAgPjwvY28tb3JkZXItdGFiPlxyXG5cclxuICAgIDxjby1vcmRlci1zdG9jay10YWIgKm5nSWY9XCJ0YWJzWzRdLmFjdGl2ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtvcmRlckluZm9ybWF0aW9uXT1cIm9yZGVySW5mb3JtYXRpb25cIlxyXG4gICAgPjwvY28tb3JkZXItc3RvY2stdGFiPlxyXG5cclxuICAgIDxjby1zdG9jay1oaXN0b3J5ICpuZ0lmPVwiaGlzdG9yeVRhYnNbMF0uYWN0aXZlICYmIHRhYnNbNV0uYWN0aXZlXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFtzdG9ja0hpc3RvcnldPVwic3RvY2tIaXN0b3J5XCJcclxuICAgID48L2NvLXN0b2NrLWhpc3Rvcnk+XHJcblxyXG4gICAgPGNvLW9yZGVyLXN1cHBseS1zdG9jay1oaXN0b3J5ICpuZ0lmPVwiaGlzdG9yeVRhYnNbMV0uYWN0aXZlICYmIHRhYnNbNV0uYWN0aXZlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbb3JkZXJTdXBwbHlTdG9ja0hpc3RvcnldPVwib3JkZXJTdXBwbHlTdG9ja0hpc3RvcnlcIlxyXG4gICAgPjwvY28tb3JkZXItc3VwcGx5LXN0b2NrLWhpc3Rvcnk+XHJcblxyXG4gICAgPGNvLW9yZGVyLXN0b2NrLWNvbW1pc3Npb24taGlzdG9yeSAqbmdJZj1cImhpc3RvcnlUYWJzWzJdLmFjdGl2ZSAmJiB0YWJzWzVdLmFjdGl2ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtvcmRlclN0b2NrQ29tbWlzc2lvbkhpc3RvcnldPVwib3JkZXJDb21taXNzaW9uU3RvY2tIaXN0b3J5XCJcclxuICAgID48L2NvLW9yZGVyLXN0b2NrLWNvbW1pc3Npb24taGlzdG9yeT5cclxuXHJcbiAgICA8Y28tb3JkZXItc3RvY2staGlzdG9yeSAqbmdJZj1cImhpc3RvcnlUYWJzWzNdLmFjdGl2ZSAmJiB0YWJzWzVdLmFjdGl2ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbb3JkZXJTdG9ja0hpc3RvcnldPVwib3JkZXJTdG9ja0hpc3RvcnlcIlxyXG4gICAgPjwvY28tb3JkZXItc3RvY2staGlzdG9yeT5cclxuXHJcbiAgICA8Y28tYWxsb2NhdGlvbi1zdG9jay1oaXN0b3J5ICpuZ0lmPVwiaGlzdG9yeVRhYnNbNF0uYWN0aXZlICYmIHRhYnNbNV0uYWN0aXZlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2FsbG9jYXRpb25TdG9ja0hpc3RvcnldPVwib3JkZXJBbGxvY2F0aW9uU3RvY2tIaXN0b3J5XCJcclxuICAgID48L2NvLWFsbG9jYXRpb24tc3RvY2staGlzdG9yeT5cclxuXHJcbiAgYCxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTdG9ja1RhYnNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIHB1YmxpYyByZWFkb25seSBpY29uczogdHlwZW9mIEljb24gPSBJY29uO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzdG9ja0luZm9ybWF0aW9uOiBBcnRpY2xlU3RvY2tCb1tdID0gW107XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGFydGljbGU6IEFydGljbGVFeHRlbmRlZDtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgYXJ0aWNsZUZsYXQ6IEFydGljbGVGbGF0O1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzaG93U3RvY2tUcmFuc2ZlcjogYm9vbGVhbjtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgd2FyZWhvdXNlczogU3RvY2tNYW5hZ2VtZW50V2FyZWhvdXNlc1tdID0gW107XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyByZWFkb25seSB0cmFuc2Zlckljb25DbGlja2VkOiBFdmVudEVtaXR0ZXI8QXJ0aWNsZVN0b2NrQm8+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgcmVhZG9ubHkgc2VuZE1ldGhvZERpYWxvZ0NsaWNrZWQ6IEV2ZW50RW1pdHRlcjxQcmludFByaWNlU3RpY2tlcnM+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuXHJcbiAgcHVibGljIHN0b2NrTG9jYXRpb25zOiBTdG9ja0xvY2F0aW9uW10gPSBbXTtcclxuICBwdWJsaWMgc2VsZWN0ZWRMb2NhdGlvbk5vOiBzdHJpbmc7XHJcbiAgcHVibGljIHN0b2NrSGlzdG9yeTogU3RvY2tIaXN0b3J5Qm9bXSA9IFtdO1xyXG4gIHB1YmxpYyBvcmRlclN1cHBseVN0b2NrSGlzdG9yeTogU3RvY2tIaXN0b3J5Qm9bXSA9IFtdO1xyXG4gIHB1YmxpYyBvcmRlckNvbW1pc3Npb25TdG9ja0hpc3Rvcnk6IFN0b2NrSGlzdG9yeUJvW10gPSBbXTtcclxuICBwdWJsaWMgb3JkZXJTdG9ja0hpc3Rvcnk6IFN0b2NrSGlzdG9yeUJvW10gPSBbXTtcclxuICBwdWJsaWMgb3JkZXJBbGxvY2F0aW9uU3RvY2tIaXN0b3J5OiBTdG9ja0hpc3RvcnlCb1tdID0gW107XHJcbiAgcHVibGljIGluT3JkZXJJbmZvcm1hdGlvbjogQXJ0aWNsZVRyYW5zYWN0aW9uQm9bXSA9IFtdO1xyXG4gIHB1YmxpYyBvcmRlckluZm9ybWF0aW9uOiBBcnRpY2xlVHJhbnNhY3Rpb25Cb1tdID0gW107XHJcbiAgcHVibGljIHN0b2NrUHJvZ25vc2U6IFN0b2NrRm9yZWNhc3RbXSA9IFtdO1xyXG4gIHB1YmxpYyBzZWxlY3RlZFdhcmVob3VzZTogU3RvY2tNYW5hZ2VtZW50V2FyZWhvdXNlcyA9IG5ldyBTdG9ja01hbmFnZW1lbnRXYXJlaG91c2VzKCk7XHJcbiAgcHVibGljIGFydGljbGVEZXRhaWxzSW5mb3JtYXRpb246IEFydGljbGVTdG9ja01hbmFnZW1lbnQgPSBuZXcgQXJ0aWNsZVN0b2NrTWFuYWdlbWVudCgpXHJcbiAgcHVibGljIHNob3dXYXJlaG91c2VTZWxlY3Rpb246IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgYXJ0aWNsZURldGFpbHM6IEFydGljbGVEZXRhaWxzQm9bXSA9IFtdO1xyXG5cclxuICBwdWJsaWMgdGFiczogVGFiW10gPSBbXTtcclxuICBwdWJsaWMgaGlzdG9yeVRhYnM6IFRhYltdID0gW107XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBfc3RvY2tTZXJ2aWNlOiBTdG9ja1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9sb2NhbGl6ZVNlcnZpY2U6IExvY2FsaXplU2VydmljZSxcclxuICAgIHByaXZhdGUgX2NoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICApIHtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy50YWJzID0gW1xyXG4gICAgICB7dGl0bGU6IHRoaXMuX2xvY2FsaXplU2VydmljZS5nZXQoJ09WRVJWSUVXJyksIGFjdGl2ZTogdHJ1ZX0sXHJcbiAgICAgIHt0aXRsZTogdGhpcy5fbG9jYWxpemVTZXJ2aWNlLmdldCgnU1RPQ0tfRk9SRUNBU1QnKSwgYWN0aXZlOiBmYWxzZX0sXHJcbiAgICAgIHt0aXRsZTogdGhpcy5fbG9jYWxpemVTZXJ2aWNlLmdldCgnU1RPQ0tfREVUQUlMUycpLCBhY3RpdmU6IGZhbHNlfSxcclxuICAgICAge3RpdGxlOiB0aGlzLl9sb2NhbGl6ZVNlcnZpY2UuZ2V0KCdBTFJFQURZX0lOX09SREVSJyksIGFjdGl2ZTogZmFsc2V9LFxyXG4gICAgICB7dGl0bGU6IHRoaXMuX2xvY2FsaXplU2VydmljZS5nZXQoJ0lOX09SREVSJyksIGFjdGl2ZTogZmFsc2V9LFxyXG4gICAgICB7dGl0bGU6IHRoaXMuX2xvY2FsaXplU2VydmljZS5nZXQoJ0hJU1RPUlknKSwgYWN0aXZlOiBmYWxzZX0sXHJcbiAgICBdO1xyXG5cclxuICAgIHRoaXMuaGlzdG9yeVRhYnMgPSBbXHJcbiAgICAgIHt0aXRsZTogdGhpcy5fbG9jYWxpemVTZXJ2aWNlLmdldCgnU1RPQ0snKSwgYWN0aXZlOiB0cnVlfSxcclxuICAgICAge1xyXG4gICAgICAgIHRpdGxlOiB0aGlzLl9sb2NhbGl6ZVNlcnZpY2UuZ2V0KCdPUkRFUl9TVE9DSycpLFxyXG4gICAgICAgIGFjdGl2ZTogZmFsc2VcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIHRpdGxlOiB0aGlzLl9sb2NhbGl6ZVNlcnZpY2UuZ2V0KCdPUkRFUl9DT01NSVNTSU9OJyksXHJcbiAgICAgICAgYWN0aXZlOiBmYWxzZVxyXG4gICAgICB9LFxyXG4gICAgICB7dGl0bGU6IHRoaXMuX2xvY2FsaXplU2VydmljZS5nZXQoJ09SREVSJyksIGFjdGl2ZTogZmFsc2V9LFxyXG4gICAgICB7XHJcbiAgICAgICAgdGl0bGU6IHRoaXMuX2xvY2FsaXplU2VydmljZS5nZXQoJ0FMTE9DQVRJT04nKSxcclxuICAgICAgICBhY3RpdmU6IGZhbHNlXHJcbiAgICAgIH0sXHJcbiAgICBdO1xyXG5cclxuXHJcbiAgfVxyXG4gIHB1YmxpYyBvblNob3dTdG9ja1RyYW5zZmVyQ2hhbmdlKHNob3c6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuc2hvd1N0b2NrVHJhbnNmZXIgPSBzaG93O1xyXG4gIH1cclxuICBwdWJsaWMgaGFuZGxlTG9jYXRpb25DbGlja2VkKGRhdGE6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy50YWJzWzBdLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgdGhpcy50YWJzWzJdLmFjdGl2ZSA9IHRydWU7XHJcbiAgICB0aGlzLnNlbGVjdGVkV2FyZWhvdXNlID0gdGhpcy53YXJlSG91c2VGb3JDb2RlKHBhcnNlSW50KGRhdGEpKTtcclxuICAgIHRoaXMuaGFuZGxlV2FyZWhvdXNlU2VsZWN0ZWQodGhpcy5zZWxlY3RlZFdhcmVob3VzZSk7XHJcbiAgICB0aGlzLmdldFN0b2NrRGF0YSh0aGlzLnNlbGVjdGVkV2FyZWhvdXNlKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRTdG9ja0hpc3RvcnkoKTogdm9pZCB7XHJcbiAgICBjb25zdCBzdG9ja0hpc3RvcnlJbmZvcm1hdGlvbjogR2V0U3RvY2tIaXN0b3J5UmVxdWVzdCA9IG5ldyBHZXRTdG9ja0hpc3RvcnlSZXF1ZXN0KCk7XHJcbiAgICBzdG9ja0hpc3RvcnlJbmZvcm1hdGlvbi50eXBlID0gXCJWXCI7XHJcbiAgICBzdG9ja0hpc3RvcnlJbmZvcm1hdGlvbi5nb29kSWQgPSB0aGlzLmFydGljbGUuZ29vZElkLnRvU3RyaW5nKCk7XHJcbiAgICB0aGlzLl9zdG9ja1NlcnZpY2UuZ2V0U3RvY2tIaXN0b3J5KHN0b2NrSGlzdG9yeUluZm9ybWF0aW9uKS50aGVuKHJlc3VsdCA9PiB7XHJcbiAgICAgIHRoaXMuc3RvY2tIaXN0b3J5ID0gcmVzdWx0XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRPcmRlclN1cHBseVN0b2NrSGlzdG9yeSgpOiB2b2lkIHtcclxuICAgIGNvbnN0IHN0b2NrSGlzdG9yeUluZm9ybWF0aW9uOiBHZXRTdG9ja0hpc3RvcnlSZXF1ZXN0ID0gbmV3IEdldFN0b2NrSGlzdG9yeVJlcXVlc3QoKTtcclxuICAgIHN0b2NrSGlzdG9yeUluZm9ybWF0aW9uLnR5cGUgPSBcIk9cIjtcclxuICAgIHN0b2NrSGlzdG9yeUluZm9ybWF0aW9uLmdvb2RJZCA9IHRoaXMuYXJ0aWNsZS5nb29kSWQudG9TdHJpbmcoKTtcclxuICAgIHRoaXMuX3N0b2NrU2VydmljZS5nZXRTdG9ja0hpc3Rvcnkoc3RvY2tIaXN0b3J5SW5mb3JtYXRpb24pLnRoZW4ocmVzdWx0ID0+IHtcclxuICAgICAgdGhpcy5vcmRlclN1cHBseVN0b2NrSGlzdG9yeSA9IHJlc3VsdDtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldE9yZGVyQ29tbWlzc2lvblN0b2NrSGlzdG9yeSgpOiB2b2lkIHtcclxuICAgIGNvbnN0IHN0b2NrSGlzdG9yeUluZm9ybWF0aW9uOiBHZXRTdG9ja0hpc3RvcnlSZXF1ZXN0ID0gbmV3IEdldFN0b2NrSGlzdG9yeVJlcXVlc3QoKTtcclxuICAgIHN0b2NrSGlzdG9yeUluZm9ybWF0aW9uLnR5cGUgPSBcIkNcIjtcclxuICAgIHN0b2NrSGlzdG9yeUluZm9ybWF0aW9uLmdvb2RJZCA9IHRoaXMuYXJ0aWNsZS5nb29kSWQudG9TdHJpbmcoKTtcclxuICAgIHRoaXMuX3N0b2NrU2VydmljZS5nZXRTdG9ja0hpc3Rvcnkoc3RvY2tIaXN0b3J5SW5mb3JtYXRpb24pLnRoZW4ocmVzdWx0ID0+IHtcclxuICAgICAgdGhpcy5vcmRlckNvbW1pc3Npb25TdG9ja0hpc3RvcnkgPSByZXN1bHQ7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRPcmRlclN0b2NrSGlzdG9yeSgpOiB2b2lkIHtcclxuICAgIGNvbnN0IHN0b2NrSGlzdG9yeUluZm9ybWF0aW9uOiBHZXRTdG9ja0hpc3RvcnlSZXF1ZXN0ID0gbmV3IEdldFN0b2NrSGlzdG9yeVJlcXVlc3QoKTtcclxuICAgIHN0b2NrSGlzdG9yeUluZm9ybWF0aW9uLnR5cGUgPSBcIkJcIjtcclxuICAgIHN0b2NrSGlzdG9yeUluZm9ybWF0aW9uLmdvb2RJZCA9IHRoaXMuYXJ0aWNsZS5nb29kSWQudG9TdHJpbmcoKTtcclxuICAgIHRoaXMuX3N0b2NrU2VydmljZS5nZXRTdG9ja0hpc3Rvcnkoc3RvY2tIaXN0b3J5SW5mb3JtYXRpb24pLnRoZW4ocmVzdWx0ID0+IHtcclxuICAgICAgdGhpcy5vcmRlclN0b2NrSGlzdG9yeSA9IHJlc3VsdDtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldEFsbG9jYXRpb25TdG9ja0hpc3RvcnkoKTogdm9pZCB7XHJcbiAgICBjb25zdCBzdG9ja0hpc3RvcnlJbmZvcm1hdGlvbjogR2V0U3RvY2tIaXN0b3J5UmVxdWVzdCA9IG5ldyBHZXRTdG9ja0hpc3RvcnlSZXF1ZXN0KCk7XHJcbiAgICBzdG9ja0hpc3RvcnlJbmZvcm1hdGlvbi50eXBlID0gXCJUXCI7XHJcbiAgICBzdG9ja0hpc3RvcnlJbmZvcm1hdGlvbi5nb29kSWQgPSB0aGlzLmFydGljbGUuZ29vZElkLnRvU3RyaW5nKCk7XHJcbiAgICB0aGlzLl9zdG9ja1NlcnZpY2UuZ2V0U3RvY2tIaXN0b3J5KHN0b2NrSGlzdG9yeUluZm9ybWF0aW9uKS50aGVuKHJlc3VsdCA9PiB7XHJcbiAgICAgIHRoaXMub3JkZXJBbGxvY2F0aW9uU3RvY2tIaXN0b3J5ID0gcmVzdWx0O1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0SW5PcmRlckRhdGEoKTogdm9pZCB7XHJcbiAgICBjb25zdCBpbk9yZGVyRGF0YTogQXJ0aWNsZVRyYW5zYWN0aW9uID0gbmV3IEFydGljbGVUcmFuc2FjdGlvbigpO1xyXG4gICAgaW5PcmRlckRhdGEudHlwZSA9IFwiVlwiO1xyXG4gICAgaW5PcmRlckRhdGEuZ29vZElkID0gdGhpcy5zdG9ja0luZm9ybWF0aW9uWzBdLmdvb2RJZC50b1N0cmluZygpO1xyXG4gICAgdGhpcy5fc3RvY2tTZXJ2aWNlLmdldEFydGljbGVUcmFuc2FjdGlvbihpbk9yZGVyRGF0YSkudGhlbihyZXN1bHQgPT4ge1xyXG4gICAgICB0aGlzLmluT3JkZXJJbmZvcm1hdGlvbiA9IHJlc3VsdDtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldE9yZGVyRGF0YSgpOiB2b2lkIHtcclxuICAgIGNvbnN0IG9yZGVyRGF0YTogQXJ0aWNsZVRyYW5zYWN0aW9uID0gbmV3IEFydGljbGVUcmFuc2FjdGlvbigpO1xyXG4gICAgb3JkZXJEYXRhLnR5cGUgPSBcIklcIjtcclxuICAgIG9yZGVyRGF0YS5nb29kSWQgPSB0aGlzLnN0b2NrSW5mb3JtYXRpb25bMF0uZ29vZElkLnRvU3RyaW5nKCk7XHJcbiAgICB0aGlzLl9zdG9ja1NlcnZpY2UuZ2V0QXJ0aWNsZVRyYW5zYWN0aW9uKG9yZGVyRGF0YSkudGhlbihyZXN1bHQgPT4ge1xyXG4gICAgICB0aGlzLm9yZGVySW5mb3JtYXRpb24gPSByZXN1bHQ7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRTdG9ja1Byb2dub3NlKHdhcmVob3VzZU5vOiBudW1iZXIpOiB2b2lkIHtcclxuICAgIHRoaXMuX3N0b2NrU2VydmljZS5zdG9ja1Byb2dub3NlKHRoaXMuYXJ0aWNsZS5nb29kSWQsIHdhcmVob3VzZU5vKS50aGVuKHJlc3VsdCA9PiB7XHJcbiAgICAgIHRoaXMuc3RvY2tQcm9nbm9zZSA9IHJlc3VsdDtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZVdhcmVob3VzZVNlbGVjdGVkKGV2ZW50OiBTdG9ja01hbmFnZW1lbnRXYXJlaG91c2VzKTogdm9pZCB7XHJcbiAgICB0aGlzLnNlbGVjdGVkV2FyZWhvdXNlID0gZXZlbnQ7XHJcbiAgICB0aGlzLl9zdG9ja1NlcnZpY2Uud2FyZWhvdXNlU2VsZWN0ZWQuZW1pdChldmVudCk7XHJcbiAgICBpZiAodGhpcy50YWJzWzFdLmFjdGl2ZSkge1xyXG4gICAgICB0aGlzLmdldFN0b2NrUHJvZ25vc2UodGhpcy5zZWxlY3RlZFdhcmVob3VzZS53YXJlaG91c2VObyk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy50YWJzWzJdLmFjdGl2ZSkge1xyXG4gICAgICB0aGlzLmFydGljbGVEZXRhaWxzSW5mb3JtYXRpb24ud2FyZWhvdXNlTnVtYmVyID0gZXZlbnQud2FyZWhvdXNlTm87XHJcbiAgICAgIHRoaXMuYXJ0aWNsZURldGFpbHNJbmZvcm1hdGlvbi5nb29kSWQgPSB0aGlzLmFydGljbGUuZ29vZElkLnRvU3RyaW5nKCk7XHJcbiAgICAgIHRoaXMuX3N0b2NrU2VydmljZS5nZXRBcnRpY2xlRGV0YWlscyh0aGlzLmFydGljbGVEZXRhaWxzSW5mb3JtYXRpb24pLnRoZW4oKGRldGFpbHMpID0+IHtcclxuICAgICAgICB0aGlzLmFydGljbGVEZXRhaWxzID0gZGV0YWlscztcclxuICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldFN0b2NrTG9jYXRpb25zKCkge1xyXG4gICAgdGhpcy5fc3RvY2tTZXJ2aWNlLmdldFN0b2NrTWFuYWdlbWVudExvY2F0aW9ucyh0aGlzLnNlbGVjdGVkV2FyZWhvdXNlLndhcmVob3VzZU5vKS50aGVuKCByZXN1bHQgPT4ge1xyXG4gICAgICB0aGlzLnN0b2NrTG9jYXRpb25zID0gcmVzdWx0O1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0U3RvY2tEYXRhKHdhcmVob3VzZTogU3RvY2tNYW5hZ2VtZW50V2FyZWhvdXNlcykge1xyXG4gICAgdGhpcy5oYW5kbGVXYXJlaG91c2VTZWxlY3RlZCh3YXJlaG91c2UpO1xyXG4gICAgdGhpcy5nZXRTdG9ja1Byb2dub3NlKHdhcmVob3VzZS53YXJlaG91c2VObyk7XHJcbiAgICB0aGlzLmdldE9yZGVyRGF0YSgpO1xyXG4gICAgdGhpcy5nZXRJbk9yZGVyRGF0YSgpO1xyXG4gICAgdGhpcy5nZXRBbGxvY2F0aW9uU3RvY2tIaXN0b3J5KCk7XHJcbiAgICB0aGlzLmdldE9yZGVyU3RvY2tIaXN0b3J5KCk7XHJcbiAgICB0aGlzLmdldE9yZGVyQ29tbWlzc2lvblN0b2NrSGlzdG9yeSgpO1xyXG4gICAgdGhpcy5nZXRPcmRlclN1cHBseVN0b2NrSGlzdG9yeSgpO1xyXG4gICAgdGhpcy5nZXRTdG9ja0hpc3RvcnkoKTtcclxuICAgIHRoaXMuZ2V0U3RvY2tMb2NhdGlvbnMoKTtcclxuICAgIHRoaXMuX2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHdhcmVIb3VzZUZvckNvZGUoY29kZTogbnVtYmVyKSB7XHJcbiAgICByZXR1cm4gdGhpcy53YXJlaG91c2VzLmZpbmQod2FyZWhvdXNlID0+IHdhcmVob3VzZS53YXJlaG91c2VObyA9PT0gY29kZSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -1,17 +1,28 @@
|
|
|
1
|
-
import { Component, EventEmitter, Input, Output, ViewEncapsulation } from "@angular/core";
|
|
1
|
+
import { ChangeDetectorRef, Component, EventEmitter, Input, Output, ViewEncapsulation } from "@angular/core";
|
|
2
2
|
import { StockService } from "../../../service/stock.service";
|
|
3
|
+
import { ArticleDetailsBo } from "@colijnit/articleapi/build/model/article-details.bo";
|
|
3
4
|
import { IconCacheService } from "../../../service/icon-cache.service";
|
|
4
5
|
import { Icon } from "../../../enum/icon.enum";
|
|
6
|
+
import { ArticleStockManagement } from "@colijnit/articleapi/build/model/article-stock-management";
|
|
5
7
|
export class StockTransferComponent {
|
|
6
|
-
constructor(_stockService, iconCacheService) {
|
|
8
|
+
constructor(_stockService, iconCacheService, _changeDetector) {
|
|
7
9
|
this._stockService = _stockService;
|
|
8
10
|
this.iconCacheService = iconCacheService;
|
|
11
|
+
this._changeDetector = _changeDetector;
|
|
12
|
+
this.selectedArticleDetailsData = new ArticleDetailsBo();
|
|
13
|
+
this.articleDetailsInformation = new ArticleStockManagement();
|
|
14
|
+
this.articleStockInfo = [];
|
|
15
|
+
this.stockLocations = [];
|
|
9
16
|
this.handleClick = new EventEmitter();
|
|
10
17
|
this.handleStickerClicked = new EventEmitter();
|
|
18
|
+
this.updateGridData = new EventEmitter();
|
|
19
|
+
this.showStockTransferChange = new EventEmitter();
|
|
11
20
|
this.showSendMethodDialog = false;
|
|
21
|
+
this.transferFull = false;
|
|
12
22
|
this.warehouses = [];
|
|
13
23
|
this.stockState = [];
|
|
14
24
|
this.locations = [];
|
|
25
|
+
this.stockStatus = [];
|
|
15
26
|
this.icons = Icon;
|
|
16
27
|
}
|
|
17
28
|
ngAfterViewInit() {
|
|
@@ -19,21 +30,31 @@ export class StockTransferComponent {
|
|
|
19
30
|
this.getStockState();
|
|
20
31
|
}
|
|
21
32
|
handleOkClick(data) {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
33
|
+
if (this.articleToTransfer.amountTransfer > this.articleToTransfer.amountInStockFree) {
|
|
34
|
+
this.transferFull = true;
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
data.selected = true;
|
|
38
|
+
data.entryDate = new Date;
|
|
39
|
+
this._stockService.updateArticleDetails(data).then((result) => {
|
|
40
|
+
this.handleClick.emit();
|
|
41
|
+
this.showStockTransferChange.emit(false);
|
|
42
|
+
this._stockService.getArticleDetails(this.articleDetailsInformation).then((details) => {
|
|
43
|
+
this.articleStockInfo = details;
|
|
44
|
+
this.updateGridData.emit(details);
|
|
45
|
+
});
|
|
46
|
+
}).catch((result) => {
|
|
47
|
+
// Log failure message
|
|
48
|
+
});
|
|
49
|
+
}
|
|
29
50
|
}
|
|
30
|
-
|
|
31
|
-
this.
|
|
51
|
+
onCloseClick() {
|
|
52
|
+
this.showStockTransferChange.emit(false);
|
|
32
53
|
}
|
|
33
54
|
handleSelectedWarehouse(event) {
|
|
34
55
|
this.articleToTransfer.targetWarehouse = event.warehouseNo;
|
|
35
56
|
this.selectedWarehouse = event;
|
|
36
|
-
this.getStockManagementLocations(
|
|
57
|
+
this.getStockManagementLocations();
|
|
37
58
|
}
|
|
38
59
|
handleSelectedLocation(event) {
|
|
39
60
|
this.articleToTransfer.targetLocation = event.locationNo;
|
|
@@ -50,9 +71,9 @@ export class StockTransferComponent {
|
|
|
50
71
|
this.warehouses = warehouses;
|
|
51
72
|
});
|
|
52
73
|
}
|
|
53
|
-
getStockManagementLocations(
|
|
54
|
-
this._stockService.getStockManagementLocations(
|
|
55
|
-
this.
|
|
74
|
+
getStockManagementLocations() {
|
|
75
|
+
this._stockService.getStockManagementLocations(this.selectedWarehouse.warehouseNo).then((locations) => {
|
|
76
|
+
this.stockLocations = locations;
|
|
56
77
|
});
|
|
57
78
|
}
|
|
58
79
|
getStockState() {
|
|
@@ -66,95 +87,133 @@ StockTransferComponent.decorators = [
|
|
|
66
87
|
selector: "co-stock-transfer",
|
|
67
88
|
template: `
|
|
68
89
|
<div class="stock-transfer">
|
|
69
|
-
<
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
90
|
+
<co-dialog
|
|
91
|
+
(closeClick)="onCloseClick()"
|
|
92
|
+
[showCloseIcon]="true"
|
|
93
|
+
[modal]="true"
|
|
94
|
+
[headerTemplate]="headerTemplate"
|
|
95
|
+
[footerTemplate]="footerTemplate">
|
|
96
|
+
<ng-template #headerTemplate>
|
|
97
|
+
<div class="co-dialog-header-title-wrapper">
|
|
98
|
+
<co-icon [iconData]="iconCacheService.getIcon(icons.Cubes)"></co-icon>
|
|
99
|
+
<div class="co-dialog-header-title" [textContent]="'TRANSFER_STOCK' | localize"></div>
|
|
100
|
+
</div>
|
|
101
|
+
</ng-template>
|
|
102
|
+
<div class="dialog-wrapper">
|
|
103
|
+
<div class="stock-transfer-columns">
|
|
104
|
+
<div *ngIf="articleToTransfer" class="stock-transfer-top-column">
|
|
105
|
+
<div class="transfer-items">
|
|
106
|
+
<div class="transfer-item">
|
|
107
|
+
<label class="item-label" [textContent]="'WAREHOUSE' | localize"></label>
|
|
108
|
+
<span class="item-value" [textContent]="articleToTransfer.warehouseDescription"></span>
|
|
109
|
+
</div>
|
|
110
|
+
<div class="transfer-item">
|
|
111
|
+
<label class="item-label" [textContent]="'LOCATION' | localize"></label>
|
|
112
|
+
<span class="item-value" [textContent]="articleToTransfer.locationNo"></span>
|
|
113
|
+
</div>
|
|
114
|
+
<div class="transfer-item" *ngIf="articleToTransfer?.batchNo">
|
|
115
|
+
<label class="item-label" [textContent]="'BATCH_NO' | localize"></label>
|
|
116
|
+
<span class="item-value" [textContent]="articleToTransfer.batchNo"></span>
|
|
117
|
+
</div>
|
|
118
|
+
<div class="transfer-item" *ngIf="articleToTransfer?.serialNo">
|
|
119
|
+
<label class="item-label" [textContent]="'SERIE_NO' | localize"></label>
|
|
120
|
+
<span class="item-value" [textContent]="articleToTransfer.serialNo"></span>
|
|
121
|
+
</div>
|
|
122
|
+
</div>
|
|
123
|
+
<div class="transfer-quantity">
|
|
124
|
+
<co-input-number-picker
|
|
125
|
+
[(model)]="articleToTransfer.amountTransfer"
|
|
126
|
+
[min]="1"
|
|
127
|
+
[label]="'QUANTITY' | localize">
|
|
128
|
+
</co-input-number-picker>
|
|
129
|
+
<span *ngIf="transferFull" [textContent]="this.articleToTransfer.amountInStockFree + (' AVAILABLE' | localize)"></span>
|
|
130
|
+
</div>
|
|
75
131
|
</div>
|
|
76
|
-
<div class="transfer-
|
|
77
|
-
<
|
|
78
|
-
<
|
|
132
|
+
<div class="transfer-arrow-wrapper">
|
|
133
|
+
<span class="half-circle"></span>
|
|
134
|
+
<div class="icon-wrapper">
|
|
135
|
+
<co-icon [iconData]="iconCacheService.getIcon(icons.ArrowDownRegular)"></co-icon>
|
|
136
|
+
</div>
|
|
79
137
|
</div>
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
138
|
+
|
|
139
|
+
|
|
140
|
+
<div class="stock-transfer-bottom-column">
|
|
141
|
+
<div class="transfer-bottom-row">
|
|
142
|
+
<co-list-of-values [collection]="warehouses"
|
|
143
|
+
[displayField]="'warehouseDescription'"
|
|
144
|
+
(modelChange)="handleSelectedWarehouse($event)"
|
|
145
|
+
[label]="'WAREHOUSE' | localize"
|
|
146
|
+
>
|
|
147
|
+
</co-list-of-values>
|
|
148
|
+
<co-list-of-values [collection]="stockLocations"
|
|
149
|
+
[displayField]="'locationNo'"
|
|
150
|
+
(modelChange)="handleSelectedLocation($event)"
|
|
151
|
+
[label]="'LOCATION' | localize"
|
|
152
|
+
>
|
|
153
|
+
</co-list-of-values>
|
|
154
|
+
</div>
|
|
155
|
+
<div class="transfer-bottom-row">
|
|
156
|
+
<co-list-of-values [collection]="stockState"
|
|
157
|
+
[displayField]="'stateDescription'"
|
|
158
|
+
[label]="'STOCK_STATE' | localize"
|
|
159
|
+
(modelChange)="handleSelectedStockState($event)"
|
|
160
|
+
>
|
|
161
|
+
</co-list-of-values>
|
|
162
|
+
</div>
|
|
163
|
+
|
|
83
164
|
</div>
|
|
84
|
-
<div class="transfer-
|
|
85
|
-
<
|
|
86
|
-
|
|
165
|
+
<div class="transfer-sticker-buttons">
|
|
166
|
+
<co-button
|
|
167
|
+
[label]="'STICKER' | localize"
|
|
168
|
+
(click)="handleStickerClick()"
|
|
169
|
+
[iconData]="iconCacheService.getIcon(icons.BarcodeReadRegular)">
|
|
170
|
+
</co-button>
|
|
87
171
|
</div>
|
|
88
172
|
</div>
|
|
89
|
-
<div class="transfer-quantity">
|
|
90
|
-
<co-input-number-picker
|
|
91
|
-
[(model)]="articleToTransfer.amountTransfer"
|
|
92
|
-
[min]="1"
|
|
93
|
-
[label]="'QUANTITY' | localize">
|
|
94
|
-
</co-input-number-picker>
|
|
95
|
-
</div>
|
|
96
173
|
</div>
|
|
97
|
-
<
|
|
98
|
-
<
|
|
99
|
-
|
|
100
|
-
|
|
174
|
+
<ng-template #footerTemplate>
|
|
175
|
+
<div class="button-wrapper ok-cancel-buttons">
|
|
176
|
+
<co-button class="save-button"
|
|
177
|
+
(click)="handleOkClick(articleToTransfer)"
|
|
178
|
+
[iconData]="iconCacheService.getIcon(icons.CheckDuotone)">
|
|
179
|
+
</co-button>
|
|
180
|
+
<co-button class="cancel-button"
|
|
181
|
+
(click)="onCloseClick()"
|
|
182
|
+
[iconData]="iconCacheService.getIcon(icons.CrossSkinny)">
|
|
183
|
+
</co-button>
|
|
101
184
|
</div>
|
|
102
|
-
</
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
<div class="stock-transfer-bottom-column">
|
|
106
|
-
<div class="transfer-bottom-row">
|
|
107
|
-
<co-list-of-values [collection]="warehouses"
|
|
108
|
-
[displayField]="'warehouseDescription'"
|
|
109
|
-
(modelChange)="handleSelectedWarehouse($event)"
|
|
110
|
-
[label]="'WAREHOUSE' | localize"
|
|
111
|
-
>
|
|
112
|
-
</co-list-of-values>
|
|
113
|
-
<co-list-of-values [collection]="locations"
|
|
114
|
-
[displayField]="'description'"
|
|
115
|
-
(modelChange)="handleSelectedLocation($event)"
|
|
116
|
-
[label]="'LOCATION' | localize"
|
|
117
|
-
>
|
|
118
|
-
</co-list-of-values>
|
|
119
|
-
</div>
|
|
120
|
-
<div class="transfer-bottom-row">
|
|
121
|
-
<co-list-of-values [collection]="stockState"
|
|
122
|
-
[displayField]="'stateDescription'"
|
|
123
|
-
[label]="'STOCK_STATE' | localize"
|
|
124
|
-
(modelChange)="handleSelectedStockState($event)"
|
|
125
|
-
>
|
|
126
|
-
</co-list-of-values>
|
|
127
|
-
</div>
|
|
128
|
-
<div class="transfer-bottom-row">
|
|
129
|
-
<co-input-text [placeholder]="'DESCRIPTION' | localize"
|
|
130
|
-
[(model)]="articleToTransfer.stockStateRemark">
|
|
131
|
-
</co-input-text>
|
|
132
|
-
</div>
|
|
133
|
-
</div>
|
|
134
|
-
<div class="transfer-sticker-buttons">
|
|
135
|
-
<co-button
|
|
136
|
-
[label]="'STICKER' | localize"
|
|
137
|
-
(click)="handleStickerClick()"
|
|
138
|
-
[iconData]="iconCacheService.getIcon(icons.BarcodeReadRegular)">
|
|
139
|
-
</co-button>
|
|
140
|
-
</div>
|
|
141
|
-
</div>
|
|
185
|
+
</ng-template>
|
|
186
|
+
</co-dialog>
|
|
142
187
|
</div>
|
|
188
|
+
<co-send-method-dialog *ngIf="showSendMethodDialog"
|
|
189
|
+
(closeClick)="showSendMethodDialog = false">
|
|
190
|
+
|
|
191
|
+
</co-send-method-dialog>
|
|
143
192
|
`,
|
|
144
193
|
encapsulation: ViewEncapsulation.None
|
|
145
194
|
},] }
|
|
146
195
|
];
|
|
147
196
|
StockTransferComponent.ctorParameters = () => [
|
|
148
197
|
{ type: StockService },
|
|
149
|
-
{ type: IconCacheService }
|
|
198
|
+
{ type: IconCacheService },
|
|
199
|
+
{ type: ChangeDetectorRef }
|
|
150
200
|
];
|
|
151
201
|
StockTransferComponent.propDecorators = {
|
|
152
202
|
stockSticker: [{ type: Input }],
|
|
153
203
|
article: [{ type: Input }],
|
|
154
204
|
articleToTransfer: [{ type: Input }],
|
|
155
|
-
articleWarehouse: [{ type: Input }],
|
|
156
205
|
allWarehouses: [{ type: Input }],
|
|
206
|
+
showStockTransfer: [{ type: Input }],
|
|
207
|
+
selectedArticleDetailsData: [{ type: Input }],
|
|
208
|
+
articleFlat: [{ type: Input }],
|
|
209
|
+
articleDetailsInformation: [{ type: Input }],
|
|
210
|
+
selectedWarehouse: [{ type: Input }],
|
|
211
|
+
selectedLocationNo: [{ type: Input }],
|
|
212
|
+
articleStockInfo: [{ type: Input }],
|
|
213
|
+
stockLocations: [{ type: Input }],
|
|
157
214
|
handleClick: [{ type: Output }],
|
|
158
|
-
handleStickerClicked: [{ type: Output }]
|
|
215
|
+
handleStickerClicked: [{ type: Output }],
|
|
216
|
+
updateGridData: [{ type: Output }],
|
|
217
|
+
showStockTransferChange: [{ type: Output }]
|
|
159
218
|
};
|
|
160
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvY2stdHJhbnNmZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2hhcmVkY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvc3RvY2svc3RvY2stdHJhbnNmZXIvc3RvY2stdHJhbnNmZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZ0IsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLGlCQUFpQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRXZHLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQU81RCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUNyRSxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFtRjdDLE1BQU0sT0FBTyxzQkFBc0I7SUE4QmpDLFlBQ1UsYUFBMkIsRUFDNUIsZ0JBQWtDO1FBRGpDLGtCQUFhLEdBQWIsYUFBYSxDQUFjO1FBQzVCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFkcEMsZ0JBQVcsR0FBeUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUd2RCx5QkFBb0IsR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUM3RCx5QkFBb0IsR0FBWSxLQUFLLENBQUM7UUFDdEMsZUFBVSxHQUFnQyxFQUFFLENBQUM7UUFDN0MsZUFBVSxHQUFrQixFQUFFLENBQUM7UUFDL0IsY0FBUyxHQUFvQixFQUFFLENBQUM7UUFHdkIsVUFBSyxHQUFnQixJQUFJLENBQUM7SUFNMUMsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsNEJBQTRCLEVBQUUsQ0FBQztRQUNwQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVNLGFBQWEsQ0FBQyxJQUFzQjtRQUN6QyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztRQUNyQixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksSUFBSSxDQUFDO1FBQzFCLElBQUksQ0FBQyxhQUFhLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFFLE1BQU0sQ0FBQyxFQUFFO1lBQzNELElBQUcsTUFBTSxFQUFFO2dCQUNULElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQzthQUNwQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBRUwsQ0FBQztJQUVNLGlCQUFpQjtRQUN0QixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFTSx1QkFBdUIsQ0FBQyxLQUFnQztRQUM3RCxJQUFJLENBQUMsaUJBQWlCLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQyxXQUFXLENBQUM7UUFDM0QsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEtBQUssQ0FBQztRQUMvQixJQUFJLENBQUMsMkJBQTJCLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFFTSxzQkFBc0IsQ0FBQyxLQUFvQjtRQUNoRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQyxVQUFVLENBQUM7SUFDM0QsQ0FBQztJQUVNLHdCQUF3QixDQUFDLEtBQWtCO1FBQ2hELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDLFlBQVksQ0FBQztJQUMzRCxDQUFDO0lBRU0sa0JBQWtCO1FBQ3ZCLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNqQyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDO0lBQ25DLENBQUM7SUFFTSw0QkFBNEI7UUFDakMsSUFBSSxDQUFDLGFBQWEsQ0FBQyw0QkFBNEIsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFO1lBQ3BFLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQy9CLENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVNLDJCQUEyQixDQUFDLElBQUk7UUFDckMsSUFBSSxDQUFDLGFBQWEsQ0FBQywyQkFBMkIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRTtZQUN0RSxJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztRQUM3QixDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFTSxhQUFhO1FBQ2xCLElBQUksQ0FBQyxhQUFhLENBQUMsYUFBYSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBb0IsRUFBRSxFQUFFO1lBQy9ELElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1FBQzFCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7O1lBNUtGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsbUJBQW1CO2dCQUM3QixRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E0RVQ7Z0JBQ0QsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7YUFDdEM7OztZQTFGTyxZQUFZO1lBT1osZ0JBQWdCOzs7MkJBc0ZyQixLQUFLO3NCQUdMLEtBQUs7Z0NBR0wsS0FBSzsrQkFHTCxLQUFLOzRCQUdMLEtBQUs7MEJBR0wsTUFBTTttQ0FHTixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCwgVmlld0VuY2Fwc3VsYXRpb259IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7UHJpbnRTdG9ja1N0aWNrZXJzfSBmcm9tIFwiQGNvbGlqbml0L2FydGljbGVhcGkvYnVpbGQvbW9kZWwvcHJpbnQtc3RvY2stc3RpY2tlcnNcIjtcclxuaW1wb3J0IHtTdG9ja1NlcnZpY2V9IGZyb20gXCIuLi8uLi8uLi9zZXJ2aWNlL3N0b2NrLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtDb0Ryb3BEb3duTGlzdEZpZWxkc30gZnJvbSBcIi4vY28tZHJvcC1kb3duLWxpc3QtZmllbGRzLmludGVyZmFjZVwiO1xyXG5pbXBvcnQge0FydGljbGVTdG9jayBhcyBBcnRpY2xlU3RvY2tCb30gZnJvbSBcIkBjb2xpam5pdC9hcnRpY2xlYXBpL2J1aWxkL21vZGVsL2FydGljbGUtc3RvY2suYm9cIjtcclxuaW1wb3J0IHtBcnRpY2xlRGV0YWlsc0JvfSBmcm9tIFwiQGNvbGlqbml0L2FydGljbGVhcGkvYnVpbGQvbW9kZWwvYXJ0aWNsZS1kZXRhaWxzLmJvXCI7XHJcbmltcG9ydCB7U3RvY2tNYW5hZ2VtZW50V2FyZWhvdXNlc30gZnJvbSBcIkBjb2xpam5pdC9hcnRpY2xlYXBpL2J1aWxkL21vZGVsL3N0b2NrLW1hbmFnZW1lbnQtd2FyZWhvdXNlcy5ib1wiO1xyXG5pbXBvcnQge1N0b2NrU3RhdHVzfSBmcm9tIFwiQGNvbGlqbml0L2FydGljbGVhcGkvYnVpbGQvbW9kZWwvc3RvY2stc3RhdHVzLmJvXCI7XHJcbmltcG9ydCB7U3RvY2tMb2NhdGlvbn0gZnJvbSBcIkBjb2xpam5pdC9hcnRpY2xlYXBpL2J1aWxkL21vZGVsL3N0b2NrLWxvY2F0aW9uLmJvXCI7XHJcbmltcG9ydCB7SWNvbkNhY2hlU2VydmljZX0gZnJvbSBcIi4uLy4uLy4uL3NlcnZpY2UvaWNvbi1jYWNoZS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7SWNvbn0gZnJvbSBcIi4uLy4uLy4uL2VudW0vaWNvbi5lbnVtXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJjby1zdG9jay10cmFuc2ZlclwiLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJzdG9jay10cmFuc2ZlclwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzdG9jay10cmFuc2Zlci1jb2x1bW5zXCI+XHJcbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwiYXJ0aWNsZVRvVHJhbnNmZXJcIiBjbGFzcz1cInN0b2NrLXRyYW5zZmVyLXRvcC1jb2x1bW5cIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRyYW5zZmVyLWl0ZW1zXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRyYW5zZmVyLWl0ZW1cIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cIml0ZW0tbGFiZWxcIiBbdGV4dENvbnRlbnRdPVwiJ1dBUkVIT1VTRScgfCBsb2NhbGl6ZVwiPjwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIml0ZW0tdmFsdWVcIiBbdGV4dENvbnRlbnRdPVwiYXJ0aWNsZVRvVHJhbnNmZXIud2FyZWhvdXNlRGVzY3JpcHRpb25cIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRyYW5zZmVyLWl0ZW1cIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cIml0ZW0tbGFiZWxcIiBbdGV4dENvbnRlbnRdPVwiJ0xPQ0FUSU9OJyB8IGxvY2FsaXplXCI+PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaXRlbS12YWx1ZVwiIFt0ZXh0Q29udGVudF09XCJhcnRpY2xlVG9UcmFuc2Zlci5sb2NhdGlvbk5vXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0cmFuc2Zlci1pdGVtXCIgKm5nSWY9XCJhcnRpY2xlVG9UcmFuc2Zlcj8uYmF0Y2hOb1wiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiaXRlbS1sYWJlbFwiIFt0ZXh0Q29udGVudF09XCInQkFUQ0hfTk8nIHwgbG9jYWxpemVcIj48L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJpdGVtLXZhbHVlXCIgW3RleHRDb250ZW50XT1cImFydGljbGVUb1RyYW5zZmVyLmJhdGNoTm9cIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRyYW5zZmVyLWl0ZW1cIiAqbmdJZj1cImFydGljbGVUb1RyYW5zZmVyPy5zZXJpYWxOb1wiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiaXRlbS1sYWJlbFwiIFt0ZXh0Q29udGVudF09XCInU0VSSUVfTk8nIHwgbG9jYWxpemVcIj48L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJpdGVtLXZhbHVlXCIgW3RleHRDb250ZW50XT1cImFydGljbGVUb1RyYW5zZmVyLnNlcmlhbE5vXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRyYW5zZmVyLXF1YW50aXR5XCI+XHJcbiAgICAgICAgICAgICAgPGNvLWlucHV0LW51bWJlci1waWNrZXJcclxuICAgICAgICAgICAgICAgIFsobW9kZWwpXT1cImFydGljbGVUb1RyYW5zZmVyLmFtb3VudFRyYW5zZmVyXCJcclxuICAgICAgICAgICAgICAgIFttaW5dPVwiMVwiXHJcbiAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ1FVQU5USVRZJyB8IGxvY2FsaXplXCI+XHJcbiAgICAgICAgICAgICAgPC9jby1pbnB1dC1udW1iZXItcGlja2VyPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRyYW5zZmVyLWFycm93LXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJoYWxmLWNpcmNsZVwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImljb24td3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgIDxjby1pY29uIFtpY29uRGF0YV09XCJpY29uQ2FjaGVTZXJ2aWNlLmdldEljb24oaWNvbnMuQXJyb3dEb3duUmVndWxhcilcIj48L2NvLWljb24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdG9jay10cmFuc2Zlci1ib3R0b20tY29sdW1uXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0cmFuc2Zlci1ib3R0b20tcm93XCI+XHJcbiAgICAgICAgICAgICAgPGNvLWxpc3Qtb2YtdmFsdWVzIFtjb2xsZWN0aW9uXT1cIndhcmVob3VzZXNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGlzcGxheUZpZWxkXT1cIid3YXJlaG91c2VEZXNjcmlwdGlvbidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9kZWxDaGFuZ2UpPVwiaGFuZGxlU2VsZWN0ZWRXYXJlaG91c2UoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCInV0FSRUhPVVNFJyB8IGxvY2FsaXplXCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPC9jby1saXN0LW9mLXZhbHVlcz5cclxuICAgICAgICAgICAgICA8Y28tbGlzdC1vZi12YWx1ZXMgW2NvbGxlY3Rpb25dPVwibG9jYXRpb25zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc3BsYXlGaWVsZF09XCInZGVzY3JpcHRpb24nXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vZGVsQ2hhbmdlKT1cImhhbmRsZVNlbGVjdGVkTG9jYXRpb24oJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCInTE9DQVRJT04nIHwgbG9jYWxpemVcIlxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8L2NvLWxpc3Qtb2YtdmFsdWVzPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRyYW5zZmVyLWJvdHRvbS1yb3dcIj5cclxuICAgICAgICAgICAgICA8Y28tbGlzdC1vZi12YWx1ZXMgW2NvbGxlY3Rpb25dPVwic3RvY2tTdGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNwbGF5RmllbGRdPVwiJ3N0YXRlRGVzY3JpcHRpb24nXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidTVE9DS19TVEFURScgfCBsb2NhbGl6ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb2RlbENoYW5nZSk9XCJoYW5kbGVTZWxlY3RlZFN0b2NrU3RhdGUoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDwvY28tbGlzdC1vZi12YWx1ZXM+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidHJhbnNmZXItYm90dG9tLXJvd1wiPlxyXG4gICAgICAgICAgICAgIDxjby1pbnB1dC10ZXh0IFtwbGFjZWhvbGRlcl09XCInREVTQ1JJUFRJT04nIHwgbG9jYWxpemVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobW9kZWwpXT1cImFydGljbGVUb1RyYW5zZmVyLnN0b2NrU3RhdGVSZW1hcmtcIj5cclxuICAgICAgICAgICAgICA8L2NvLWlucHV0LXRleHQ+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidHJhbnNmZXItc3RpY2tlci1idXR0b25zXCI+XHJcbiAgICAgICAgICAgIDxjby1idXR0b25cclxuICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ1NUSUNLRVInIHwgbG9jYWxpemVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJoYW5kbGVTdGlja2VyQ2xpY2soKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgW2ljb25EYXRhXT1cImljb25DYWNoZVNlcnZpY2UuZ2V0SWNvbihpY29ucy5CYXJjb2RlUmVhZFJlZ3VsYXIpXCI+XHJcbiAgICAgICAgICAgIDwvY28tYnV0dG9uPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gIGAsXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgU3RvY2tUcmFuc2ZlckNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzdG9ja1N0aWNrZXI6IFByaW50U3RvY2tTdGlja2VycztcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgYXJ0aWNsZTogQXJ0aWNsZVN0b2NrQm87XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGFydGljbGVUb1RyYW5zZmVyOiBBcnRpY2xlRGV0YWlsc0JvO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBhcnRpY2xlV2FyZWhvdXNlOiBhbnlbXTtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgYWxsV2FyZWhvdXNlczogYW55W107XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBoYW5kbGVDbGljazogRXZlbnRFbWl0dGVyPG51bWJlcj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBoYW5kbGVTdGlja2VyQ2xpY2tlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgcHVibGljIHNob3dTZW5kTWV0aG9kRGlhbG9nOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIHdhcmVob3VzZXM6IFN0b2NrTWFuYWdlbWVudFdhcmVob3VzZXNbXSA9IFtdO1xyXG4gIHB1YmxpYyBzdG9ja1N0YXRlOiBTdG9ja1N0YXR1c1tdID0gW107XHJcbiAgcHVibGljIGxvY2F0aW9uczogU3RvY2tMb2NhdGlvbltdID0gW107XHJcbiAgcHVibGljIHNlbGVjdGVkV2FyZWhvdXNlOiBTdG9ja01hbmFnZW1lbnRXYXJlaG91c2VzO1xyXG5cclxuICBwdWJsaWMgcmVhZG9ubHkgaWNvbnM6IHR5cGVvZiBJY29uID0gSWNvbjtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIF9zdG9ja1NlcnZpY2U6IFN0b2NrU2VydmljZSxcclxuICAgIHB1YmxpYyBpY29uQ2FjaGVTZXJ2aWNlOiBJY29uQ2FjaGVTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICB0aGlzLmdldFN0b2NrTWFuYWdlbWVudFdhcmVob3VzZXMoKTtcclxuICAgIHRoaXMuZ2V0U3RvY2tTdGF0ZSgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZU9rQ2xpY2soZGF0YTogQXJ0aWNsZURldGFpbHNCbyk6IHZvaWQge1xyXG4gICAgZGF0YS5zZWxlY3RlZCA9IHRydWU7XHJcbiAgICBkYXRhLmVudHJ5RGF0ZSA9IG5ldyBEYXRlO1xyXG4gICAgdGhpcy5fc3RvY2tTZXJ2aWNlLnVwZGF0ZUFydGljbGVEZXRhaWxzKGRhdGEpLnRoZW4oIHJlc3VsdCA9PiB7XHJcbiAgICAgIGlmKHJlc3VsdCkge1xyXG4gICAgICAgIHRoaXMuaGFuZGxlQ2xpY2suZW1pdChkYXRhLmdvb2RJZCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVDYW5jZWxDbGljaygpOiB2b2lkIHtcclxuICAgIHRoaXMuaGFuZGxlQ2xpY2suZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZVNlbGVjdGVkV2FyZWhvdXNlKGV2ZW50OiBTdG9ja01hbmFnZW1lbnRXYXJlaG91c2VzKTogdm9pZCB7XHJcbiAgICB0aGlzLmFydGljbGVUb1RyYW5zZmVyLnRhcmdldFdhcmVob3VzZSA9IGV2ZW50LndhcmVob3VzZU5vO1xyXG4gICAgdGhpcy5zZWxlY3RlZFdhcmVob3VzZSA9IGV2ZW50O1xyXG4gICAgdGhpcy5nZXRTdG9ja01hbmFnZW1lbnRMb2NhdGlvbnModGhpcy5zZWxlY3RlZFdhcmVob3VzZS53YXJlaG91c2VObyk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlU2VsZWN0ZWRMb2NhdGlvbihldmVudDogU3RvY2tMb2NhdGlvbik6IHZvaWQge1xyXG4gICAgdGhpcy5hcnRpY2xlVG9UcmFuc2Zlci50YXJnZXRMb2NhdGlvbiA9IGV2ZW50LmxvY2F0aW9uTm87XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlU2VsZWN0ZWRTdG9ja1N0YXRlKGV2ZW50OiBTdG9ja1N0YXR1cyk6IHZvaWQge1xyXG4gICAgdGhpcy5hcnRpY2xlVG9UcmFuc2Zlci5zdG9ja1N0YXRlSWQgPSBldmVudC5zdG9ja1N0YXRlSWQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlU3RpY2tlckNsaWNrKCk6IHZvaWQge1xyXG4gICAgdGhpcy5oYW5kbGVTdGlja2VyQ2xpY2tlZC5lbWl0KCk7XHJcbiAgICB0aGlzLnNob3dTZW5kTWV0aG9kRGlhbG9nID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRTdG9ja01hbmFnZW1lbnRXYXJlaG91c2VzKCk6IHZvaWQge1xyXG4gICAgdGhpcy5fc3RvY2tTZXJ2aWNlLmdldFN0b2NrTWFuYWdlbWVudFdhcmVob3VzZXMoKS50aGVuKCh3YXJlaG91c2VzKSA9PiB7XHJcbiAgICAgIHRoaXMud2FyZWhvdXNlcyA9IHdhcmVob3VzZXM7XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldFN0b2NrTWFuYWdlbWVudExvY2F0aW9ucyhkYXRhKTogdm9pZCB7XHJcbiAgICB0aGlzLl9zdG9ja1NlcnZpY2UuZ2V0U3RvY2tNYW5hZ2VtZW50TG9jYXRpb25zKGRhdGEpLnRoZW4oKGxvY2F0aW9ucykgPT4ge1xyXG4gICAgICB0aGlzLmxvY2F0aW9ucyA9IGxvY2F0aW9ucztcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0U3RvY2tTdGF0ZSgpOiB2b2lkIHtcclxuICAgIHRoaXMuX3N0b2NrU2VydmljZS5nZXRTdG9ja1N0YXRlKCkudGhlbigoc3RhdGU6IFN0b2NrU3RhdHVzW10pID0+IHtcclxuICAgICAgdGhpcy5zdG9ja1N0YXRlID0gc3RhdGU7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG59XHJcbiJdfQ==
|
|
219
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvY2stdHJhbnNmZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2hhcmVkY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvc3RvY2svc3RvY2stdHJhbnNmZXIvc3RvY2stdHJhbnNmZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUNOLGlCQUFpQixFQUNsQixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFHNUQsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0scURBQXFELENBQUM7QUFJckYsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFDckUsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBRTdDLE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLDJEQUEyRCxDQUFDO0FBK0dqRyxNQUFNLE9BQU8sc0JBQXNCO0lBOERqQyxZQUNVLGFBQTJCLEVBQzVCLGdCQUFrQyxFQUNqQyxlQUFrQztRQUZsQyxrQkFBYSxHQUFiLGFBQWEsQ0FBYztRQUM1QixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2pDLG9CQUFlLEdBQWYsZUFBZSxDQUFtQjtRQS9DckMsK0JBQTBCLEdBQXFCLElBQUksZ0JBQWdCLEVBQUUsQ0FBQztRQU10RSw4QkFBeUIsR0FBMkIsSUFBSSxzQkFBc0IsRUFBRSxDQUFDO1FBU2pGLHFCQUFnQixHQUF1QixFQUFFLENBQUM7UUFHMUMsbUJBQWMsR0FBb0IsRUFBRSxDQUFDO1FBR3JDLGdCQUFXLEdBQXlCLElBQUksWUFBWSxFQUFFLENBQUM7UUFHdkQseUJBQW9CLEdBQXNCLElBQUksWUFBWSxFQUFF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Q0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsV0FBVyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUU7WUFDcEcsSUFBSSxDQUFDLGNBQWMsR0FBRyxTQUFTLENBQUM7UUFDbEMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sYUFBYTtRQUNsQixJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQW9CLEVBQUUsRUFBRTtZQUMvRCxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztRQUMxQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7OztZQWhQRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLG1CQUFtQjtnQkFDN0IsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXdHVDtnQkFDRCxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTthQUN0Qzs7O1lBeEhPLFlBQVk7WUFPWixnQkFBZ0I7WUFmdEIsaUJBQWlCOzs7MkJBbUloQixLQUFLO3NCQUdMLEtBQUs7Z0NBR0wsS0FBSzs0QkFHTCxLQUFLO2dDQUdMLEtBQUs7eUNBR0wsS0FBSzswQkFHTCxLQUFLO3dDQUdMLEtBQUs7Z0NBR0wsS0FBSztpQ0FHTCxLQUFLOytCQUdMLEtBQUs7NkJBR0wsS0FBSzswQkFHTCxNQUFNO21DQUdOLE1BQU07NkJBR04sTUFBTTtzQ0FHTixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBBZnRlclZpZXdJbml0LFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENvbXBvbmVudCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSW5wdXQsXHJcbiAgT3V0cHV0LFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uXHJcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtQcmludFN0b2NrU3RpY2tlcnN9IGZyb20gXCJAY29saWpuaXQvYXJ0aWNsZWFwaS9idWlsZC9tb2RlbC9wcmludC1zdG9jay1zdGlja2Vyc1wiO1xyXG5pbXBvcnQge1N0b2NrU2VydmljZX0gZnJvbSBcIi4uLy4uLy4uL3NlcnZpY2Uvc3RvY2suc2VydmljZVwiO1xyXG5pbXBvcnQge0NvRHJvcERvd25MaXN0RmllbGRzfSBmcm9tIFwiLi9jby1kcm9wLWRvd24tbGlzdC1maWVsZHMuaW50ZXJmYWNlXCI7XHJcbmltcG9ydCB7QXJ0aWNsZVN0b2NrIGFzIEFydGljbGVTdG9ja0JvfSBmcm9tIFwiQGNvbGlqbml0L2FydGljbGVhcGkvYnVpbGQvbW9kZWwvYXJ0aWNsZS1zdG9jay5ib1wiO1xyXG5pbXBvcnQge0FydGljbGVEZXRhaWxzQm99IGZyb20gXCJAY29saWpuaXQvYXJ0aWNsZWFwaS9idWlsZC9tb2RlbC9hcnRpY2xlLWRldGFpbHMuYm9cIjtcclxuaW1wb3J0IHtTdG9ja01hbmFnZW1lbnRXYXJlaG91c2VzfSBmcm9tIFwiQGNvbGlqbml0L2FydGljbGVhcGkvYnVpbGQvbW9kZWwvc3RvY2stbWFuYWdlbWVudC13YXJlaG91c2VzLmJvXCI7XHJcbmltcG9ydCB7U3RvY2tTdGF0dXN9IGZyb20gXCJAY29saWpuaXQvYXJ0aWNsZWFwaS9idWlsZC9tb2RlbC9zdG9jay1zdGF0dXMuYm9cIjtcclxuaW1wb3J0IHtTdG9ja0xvY2F0aW9ufSBmcm9tIFwiQGNvbGlqbml0L2FydGljbGVhcGkvYnVpbGQvbW9kZWwvc3RvY2stbG9jYXRpb24uYm9cIjtcclxuaW1wb3J0IHtJY29uQ2FjaGVTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vLi4vc2VydmljZS9pY29uLWNhY2hlLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtJY29ufSBmcm9tIFwiLi4vLi4vLi4vZW51bS9pY29uLmVudW1cIjtcclxuaW1wb3J0IHtBcnRpY2xlRmxhdH0gZnJvbSBcIkBjb2xpam5pdC9hcnRpY2xlYXBpL2J1aWxkL21vZGVsL2FydGljbGUtZmxhdC5ib1wiO1xyXG5pbXBvcnQge0FydGljbGVTdG9ja01hbmFnZW1lbnR9IGZyb20gXCJAY29saWpuaXQvYXJ0aWNsZWFwaS9idWlsZC9tb2RlbC9hcnRpY2xlLXN0b2NrLW1hbmFnZW1lbnRcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcImNvLXN0b2NrLXRyYW5zZmVyXCIsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgICAgPGRpdiBjbGFzcz1cInN0b2NrLXRyYW5zZmVyXCI+XHJcbiAgICAgICAgPGNvLWRpYWxvZ1xyXG4gICAgICAgICAgICAgICAgICAgKGNsb3NlQ2xpY2spPVwib25DbG9zZUNsaWNrKClcIlxyXG4gICAgICAgICAgICAgICAgICAgW3Nob3dDbG9zZUljb25dPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICBbbW9kYWxdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICBbaGVhZGVyVGVtcGxhdGVdPVwiaGVhZGVyVGVtcGxhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgW2Zvb3RlclRlbXBsYXRlXT1cImZvb3RlclRlbXBsYXRlXCI+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgI2hlYWRlclRlbXBsYXRlPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY28tZGlhbG9nLWhlYWRlci10aXRsZS13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgPGNvLWljb24gW2ljb25EYXRhXT1cImljb25DYWNoZVNlcnZpY2UuZ2V0SWNvbihpY29ucy5DdWJlcylcIj48L2NvLWljb24+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvLWRpYWxvZy1oZWFkZXItdGl0bGVcIiBbdGV4dENvbnRlbnRdPVwiJ1RSQU5TRkVSX1NUT0NLJyB8IGxvY2FsaXplXCI+PC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJkaWFsb2ctd3JhcHBlclwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3RvY2stdHJhbnNmZXItY29sdW1uc1wiPlxyXG4gICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJhcnRpY2xlVG9UcmFuc2ZlclwiIGNsYXNzPVwic3RvY2stdHJhbnNmZXItdG9wLWNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRyYW5zZmVyLWl0ZW1zXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0cmFuc2Zlci1pdGVtXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiaXRlbS1sYWJlbFwiIFt0ZXh0Q29udGVudF09XCInV0FSRUhPVVNFJyB8IGxvY2FsaXplXCI+PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIml0ZW0tdmFsdWVcIiBbdGV4dENvbnRlbnRdPVwiYXJ0aWNsZVRvVHJhbnNmZXIud2FyZWhvdXNlRGVzY3JpcHRpb25cIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidHJhbnNmZXItaXRlbVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cIml0ZW0tbGFiZWxcIiBbdGV4dENvbnRlbnRdPVwiJ0xPQ0FUSU9OJyB8IGxvY2FsaXplXCI+PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIml0ZW0tdmFsdWVcIiBbdGV4dENvbnRlbnRdPVwiYXJ0aWNsZVRvVHJhbnNmZXIubG9jYXRpb25Ob1wiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0cmFuc2Zlci1pdGVtXCIgKm5nSWY9XCJhcnRpY2xlVG9UcmFuc2Zlcj8uYmF0Y2hOb1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cIml0ZW0tbGFiZWxcIiBbdGV4dENvbnRlbnRdPVwiJ0JBVENIX05PJyB8IGxvY2FsaXplXCI+PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIml0ZW0tdmFsdWVcIiBbdGV4dENvbnRlbnRdPVwiYXJ0aWNsZVRvVHJhbnNmZXIuYmF0Y2hOb1wiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0cmFuc2Zlci1pdGVtXCIgKm5nSWY9XCJhcnRpY2xlVG9UcmFuc2Zlcj8uc2VyaWFsTm9cIj5cclxuICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJpdGVtLWxhYmVsXCIgW3RleHRDb250ZW50XT1cIidTRVJJRV9OTycgfCBsb2NhbGl6ZVwiPjwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJpdGVtLXZhbHVlXCIgW3RleHRDb250ZW50XT1cImFydGljbGVUb1RyYW5zZmVyLnNlcmlhbE5vXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRyYW5zZmVyLXF1YW50aXR5XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxjby1pbnB1dC1udW1iZXItcGlja2VyXHJcbiAgICAgICAgICAgICAgICAgICAgWyhtb2RlbCldPVwiYXJ0aWNsZVRvVHJhbnNmZXIuYW1vdW50VHJhbnNmZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgIFttaW5dPVwiMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidRVUFOVElUWScgfCBsb2NhbGl6ZVwiPlxyXG4gICAgICAgICAgICAgICAgICA8L2NvLWlucHV0LW51bWJlci1waWNrZXI+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwidHJhbnNmZXJGdWxsXCIgW3RleHRDb250ZW50XT1cInRoaXMuYXJ0aWNsZVRvVHJhbnNmZXIuYW1vdW50SW5TdG9ja0ZyZWUgKyAoJyBBVkFJTEFCTEUnIHwgbG9jYWxpemUpXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRyYW5zZmVyLWFycm93LXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaGFsZi1jaXJjbGVcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaWNvbi13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxjby1pY29uIFtpY29uRGF0YV09XCJpY29uQ2FjaGVTZXJ2aWNlLmdldEljb24oaWNvbnMuQXJyb3dEb3duUmVndWxhcilcIj48L2NvLWljb24+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcblxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdG9jay10cmFuc2Zlci1ib3R0b20tY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidHJhbnNmZXItYm90dG9tLXJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICA8Y28tbGlzdC1vZi12YWx1ZXMgW2NvbGxlY3Rpb25dPVwid2FyZWhvdXNlc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGlzcGxheUZpZWxkXT1cIid3YXJlaG91c2VEZXNjcmlwdGlvbidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vZGVsQ2hhbmdlKT1cImhhbmRsZVNlbGVjdGVkV2FyZWhvdXNlKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidXQVJFSE9VU0UnIHwgbG9jYWxpemVcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgIDwvY28tbGlzdC1vZi12YWx1ZXM+XHJcbiAgICAgICAgICAgICAgICAgIDxjby1saXN0LW9mLXZhbHVlcyBbY29sbGVjdGlvbl09XCJzdG9ja0xvY2F0aW9uc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGlzcGxheUZpZWxkXT1cIidsb2NhdGlvbk5vJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9kZWxDaGFuZ2UpPVwiaGFuZGxlU2VsZWN0ZWRMb2NhdGlvbigkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCInTE9DQVRJT04nIHwgbG9jYWxpemVcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgIDwvY28tbGlzdC1vZi12YWx1ZXM+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0cmFuc2Zlci1ib3R0b20tcm93XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxjby1saXN0LW9mLXZhbHVlcyBbY29sbGVjdGlvbl09XCJzdG9ja1N0YXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNwbGF5RmllbGRdPVwiJ3N0YXRlRGVzY3JpcHRpb24nXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCInU1RPQ0tfU1RBVEUnIHwgbG9jYWxpemVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vZGVsQ2hhbmdlKT1cImhhbmRsZVNlbGVjdGVkU3RvY2tTdGF0ZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICA8L2NvLWxpc3Qtb2YtdmFsdWVzPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0cmFuc2Zlci1zdGlja2VyLWJ1dHRvbnNcIj5cclxuICAgICAgICAgICAgICAgIDxjby1idXR0b25cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidTVElDS0VSJyB8IGxvY2FsaXplXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImhhbmRsZVN0aWNrZXJDbGljaygpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ljb25EYXRhXT1cImljb25DYWNoZVNlcnZpY2UuZ2V0SWNvbihpY29ucy5CYXJjb2RlUmVhZFJlZ3VsYXIpXCI+XHJcbiAgICAgICAgICAgICAgICA8L2NvLWJ1dHRvbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZm9vdGVyVGVtcGxhdGU+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJidXR0b24td3JhcHBlciBvay1jYW5jZWwtYnV0dG9uc1wiPlxyXG4gICAgICAgICAgICAgIDxjby1idXR0b24gY2xhc3M9XCJzYXZlLWJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiaGFuZGxlT2tDbGljayhhcnRpY2xlVG9UcmFuc2ZlcilcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgW2ljb25EYXRhXT1cImljb25DYWNoZVNlcnZpY2UuZ2V0SWNvbihpY29ucy5DaGVja0R1b3RvbmUpXCI+XHJcbiAgICAgICAgICAgICAgPC9jby1idXR0b24+XHJcbiAgICAgICAgICAgICAgPGNvLWJ1dHRvbiBjbGFzcz1cImNhbmNlbC1idXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uQ2xvc2VDbGljaygpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIFtpY29uRGF0YV09XCJpY29uQ2FjaGVTZXJ2aWNlLmdldEljb24oaWNvbnMuQ3Jvc3NTa2lubnkpXCI+XHJcbiAgICAgICAgICAgICAgPC9jby1idXR0b24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L2NvLWRpYWxvZz5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxjby1zZW5kLW1ldGhvZC1kaWFsb2cgKm5nSWY9XCJzaG93U2VuZE1ldGhvZERpYWxvZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsb3NlQ2xpY2spPVwic2hvd1NlbmRNZXRob2REaWFsb2cgPSBmYWxzZVwiPlxyXG5cclxuICAgICAgPC9jby1zZW5kLW1ldGhvZC1kaWFsb2c+XHJcbiAgYCxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTdG9ja1RyYW5zZmVyQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHN0b2NrU3RpY2tlcjogUHJpbnRTdG9ja1N0aWNrZXJzO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBhcnRpY2xlOiBBcnRpY2xlU3RvY2tCbztcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgYXJ0aWNsZVRvVHJhbnNmZXI6IEFydGljbGVEZXRhaWxzQm87XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGFsbFdhcmVob3VzZXM6IGFueVtdO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzaG93U3RvY2tUcmFuc2ZlcjogYm9vbGVhbjtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2VsZWN0ZWRBcnRpY2xlRGV0YWlsc0RhdGE6IEFydGljbGVEZXRhaWxzQm8gPSBuZXcgQXJ0aWNsZURldGFpbHNCbygpO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBhcnRpY2xlRmxhdDogQXJ0aWNsZUZsYXQ7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGFydGljbGVEZXRhaWxzSW5mb3JtYXRpb246IEFydGljbGVTdG9ja01hbmFnZW1lbnQgPSBuZXcgQXJ0aWNsZVN0b2NrTWFuYWdlbWVudCgpO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZWxlY3RlZFdhcmVob3VzZTogU3RvY2tNYW5hZ2VtZW50V2FyZWhvdXNlcztcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2VsZWN0ZWRMb2NhdGlvbk5vOiBzdHJpbmc7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGFydGljbGVTdG9ja0luZm86IEFydGljbGVEZXRhaWxzQm9bXSA9IFtdO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzdG9ja0xvY2F0aW9uczogU3RvY2tMb2NhdGlvbltdID0gW107XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBoYW5kbGVDbGljazogRXZlbnRFbWl0dGVyPG51bWJlcj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBoYW5kbGVTdGlja2VyQ2xpY2tlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyB1cGRhdGVHcmlkRGF0YTogRXZlbnRFbWl0dGVyPEFydGljbGVEZXRhaWxzQm9bXT4gPSBuZXcgRXZlbnRFbWl0dGVyPEFydGljbGVEZXRhaWxzQm9bXT4oKTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIHNob3dTdG9ja1RyYW5zZmVyQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG5cclxuICBwdWJsaWMgc2hvd1NlbmRNZXRob2REaWFsb2c6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgdHJhbnNmZXJGdWxsOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIHdhcmVob3VzZXM6IFN0b2NrTWFuYWdlbWVudFdhcmVob3VzZXNbXSA9IFtdO1xyXG4gIHB1YmxpYyBzdG9ja1N0YXRlOiBTdG9ja1N0YXR1c1tdID0gW107XHJcblxyXG4gIHB1YmxpYyBsb2NhdGlvbnM6IFN0b2NrTG9jYXRpb25bXSA9IFtdO1xyXG4gIHB1YmxpYyBzdG9ja1N0YXR1czogU3RvY2tTdGF0dXNbXSA9IFtdO1xyXG5cclxuXHJcblxyXG4gIHB1YmxpYyByZWFkb25seSBpY29uczogdHlwZW9mIEljb24gPSBJY29uO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgX3N0b2NrU2VydmljZTogU3RvY2tTZXJ2aWNlLFxyXG4gICAgcHVibGljIGljb25DYWNoZVNlcnZpY2U6IEljb25DYWNoZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9jaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgKSB7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICB0aGlzLmdldFN0b2NrTWFuYWdlbWVudFdhcmVob3VzZXMoKTtcclxuICAgIHRoaXMuZ2V0U3RvY2tTdGF0ZSgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZU9rQ2xpY2soZGF0YTogQXJ0aWNsZURldGFpbHNCbyk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuYXJ0aWNsZVRvVHJhbnNmZXIuYW1vdW50VHJhbnNmZXIgPiB0aGlzLmFydGljbGVUb1RyYW5zZmVyLmFtb3VudEluU3RvY2tGcmVlKSB7XHJcbiAgICAgIHRoaXMudHJhbnNmZXJGdWxsID0gdHJ1ZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGRhdGEuc2VsZWN0ZWQgPSB0cnVlO1xyXG4gICAgICBkYXRhLmVudHJ5RGF0ZSA9IG5ldyBEYXRlO1xyXG4gICAgICB0aGlzLl9zdG9ja1NlcnZpY2UudXBkYXRlQXJ0aWNsZURldGFpbHMoZGF0YSkudGhlbigocmVzdWx0OiBib29sZWFuKSA9PiB7XHJcbiAgICAgICAgdGhpcy5oYW5kbGVDbGljay5lbWl0KCk7XHJcbiAgICAgICAgdGhpcy5zaG93U3RvY2tUcmFuc2ZlckNoYW5nZS5lbWl0KGZhbHNlKTtcclxuICAgICAgICB0aGlzLl9zdG9ja1NlcnZpY2UuZ2V0QXJ0aWNsZURldGFpbHModGhpcy5hcnRpY2xlRGV0YWlsc0luZm9ybWF0aW9uKS50aGVuKChkZXRhaWxzKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmFydGljbGVTdG9ja0luZm8gPSBkZXRhaWxzO1xyXG4gICAgICAgICAgdGhpcy51cGRhdGVHcmlkRGF0YS5lbWl0KGRldGFpbHMpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9KS5jYXRjaCgocmVzdWx0OiBzdHJpbmcpID0+IHtcclxuICAgICAgICAvLyBMb2cgZmFpbHVyZSBtZXNzYWdlXHJcblxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcbiAgcHVibGljIG9uQ2xvc2VDbGljaygpIHtcclxuICAgIHRoaXMuc2hvd1N0b2NrVHJhbnNmZXJDaGFuZ2UuZW1pdChmYWxzZSk7XHJcbiAgfVxyXG4gIHB1YmxpYyBoYW5kbGVTZWxlY3RlZFdhcmVob3VzZShldmVudDogU3RvY2tNYW5hZ2VtZW50V2FyZWhvdXNlcyk6IHZvaWQge1xyXG4gICAgdGhpcy5hcnRpY2xlVG9UcmFuc2Zlci50YXJnZXRXYXJlaG91c2UgPSBldmVudC53YXJlaG91c2VObztcclxuICAgIHRoaXMuc2VsZWN0ZWRXYXJlaG91c2UgPSBldmVudDtcclxuICAgIHRoaXMuZ2V0U3RvY2tNYW5hZ2VtZW50TG9jYXRpb25zKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlU2VsZWN0ZWRMb2NhdGlvbihldmVudDogU3RvY2tMb2NhdGlvbik6IHZvaWQge1xyXG4gICAgdGhpcy5hcnRpY2xlVG9UcmFuc2Zlci50YXJnZXRMb2NhdGlvbiA9IGV2ZW50LmxvY2F0aW9uTm87XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlU2VsZWN0ZWRTdG9ja1N0YXRlKGV2ZW50OiBTdG9ja1N0YXR1cyk6IHZvaWQge1xyXG4gICAgdGhpcy5hcnRpY2xlVG9UcmFuc2Zlci5zdG9ja1N0YXRlSWQgPSBldmVudC5zdG9ja1N0YXRlSWQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlU3RpY2tlckNsaWNrKCk6IHZvaWQge1xyXG4gICAgdGhpcy5oYW5kbGVTdGlja2VyQ2xpY2tlZC5lbWl0KCk7XHJcbiAgICB0aGlzLnNob3dTZW5kTWV0aG9kRGlhbG9nID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRTdG9ja01hbmFnZW1lbnRXYXJlaG91c2VzKCk6IHZvaWQge1xyXG4gICAgdGhpcy5fc3RvY2tTZXJ2aWNlLmdldFN0b2NrTWFuYWdlbWVudFdhcmVob3VzZXMoKS50aGVuKCh3YXJlaG91c2VzKSA9PiB7XHJcbiAgICAgIHRoaXMud2FyZWhvdXNlcyA9IHdhcmVob3VzZXM7XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldFN0b2NrTWFuYWdlbWVudExvY2F0aW9ucygpOiB2b2lkIHtcclxuICAgIHRoaXMuX3N0b2NrU2VydmljZS5nZXRTdG9ja01hbmFnZW1lbnRMb2NhdGlvbnModGhpcy5zZWxlY3RlZFdhcmVob3VzZS53YXJlaG91c2VObykudGhlbigobG9jYXRpb25zKSA9PiB7XHJcbiAgICAgIHRoaXMuc3RvY2tMb2NhdGlvbnMgPSBsb2NhdGlvbnM7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRTdG9ja1N0YXRlKCk6IHZvaWQge1xyXG4gICAgdGhpcy5fc3RvY2tTZXJ2aWNlLmdldFN0b2NrU3RhdGUoKS50aGVuKChzdGF0ZTogU3RvY2tTdGF0dXNbXSkgPT4ge1xyXG4gICAgICB0aGlzLnN0b2NrU3RhdGUgPSBzdGF0ZTtcclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG4iXX0=
|