@colijnit/transaction 12.1.118 → 12.1.119
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/bundles/colijnit-transaction.umd.js +723 -424
- package/bundles/colijnit-transaction.umd.js.map +1 -1
- package/colijnit-transaction.d.ts +353 -347
- package/colijnit-transaction.metadata.json +1 -1
- package/esm2015/colijnit-transaction.js +354 -348
- package/esm2015/lib/component/dialog/catalog/dialog-catalog/dialog-catalog.component.js +27 -4
- package/esm2015/lib/component/dialog/catalog/dialog-catalog/dialog-catalog.module.js +4 -2
- package/esm2015/lib/component/dialog/transaction-header/dialog-transaction-header-discount/dialog-transaction-header-discount.module.js +9 -9
- package/esm2015/lib/component/dialog/transaction-line/dialog-transaction-line-discount/dialog-transaction-line-discount.module.js +12 -12
- package/esm2015/lib/component/payment/payment.component.js +2 -5
- package/esm2015/lib/component/payment/payment.module.js +4 -2
- package/esm2015/lib/component/payment-to-pay/payment-to-pay.component.js +26 -0
- package/esm2015/lib/component/payment-to-pay/payment-to-pay.module.js +21 -0
- package/esm2015/lib/component/transaction/transaction.module.js +4 -2
- package/esm2015/lib/component/transaction-button/transaction-button.component.js +16 -14
- package/esm2015/lib/component/transaction-header/transaction-header/transaction-header.component.js +6 -6
- package/esm2015/lib/component/transaction-header/transaction-header/transaction-header.module.js +10 -10
- package/esm2015/lib/component/transaction-header/transaction-header-delivery/transaction-header-delivery.component.js +4 -4
- package/esm2015/lib/component/transaction-header/transaction-header-delivery/transaction-header-delivery.module.js +17 -17
- package/esm2015/lib/component/transaction-header/transaction-header-order/transaction-header-order.module.js +1 -1
- package/esm2015/lib/component/transaction-header/transaction-header-payment/transaction-header-payment.module.js +12 -12
- package/esm2015/lib/component/transaction-header/transaction-header-popup/transaction-header-popup-delivery.component.js +1 -1
- package/esm2015/lib/component/transaction-header/transaction-header-popup/transaction-header-popup.component.js +1 -1
- package/esm2015/lib/component/transaction-header/transaction-header-relation/transaction-header-relation.module.js +16 -16
- package/esm2015/lib/component/transaction-header-fields/transaction-header-branch.component.js +1 -1
- package/esm2015/lib/component/transaction-header-fields/transaction-header-delivery-date.component.js +4 -4
- package/esm2015/lib/component/transaction-header-fields/transaction-header-delivery-options/transaction-header-delivery-options.component.js +1 -1
- package/esm2015/lib/component/transaction-header-fields/transaction-header-delivery-options/transaction-header-delivery-options.module.js +5 -5
- package/esm2015/lib/component/transaction-header-fields/transaction-header-deposit-amount.component.js +1 -1
- package/esm2015/lib/component/transaction-header-fields/transaction-header-deposit-percentage.component.js +1 -1
- package/esm2015/lib/component/transaction-header-fields/transaction-header-discount-amount.component.js +5 -5
- package/esm2015/lib/component/transaction-header-fields/transaction-header-discount-percentage.component.js +5 -5
- package/esm2015/lib/component/transaction-header-fields/transaction-header-hold-codes.component.js +1 -1
- package/esm2015/lib/component/transaction-header-fields/transaction-header-preferred-delivery-date.component.js +4 -4
- package/esm2015/lib/component/transaction-header-fields/transaction-header-reference.component.js +4 -4
- package/esm2015/lib/component/transaction-header-fields/transaction-header-reference.module.js +5 -5
- package/esm2015/lib/component/transaction-header-fields/transaction-header-relation-reference.component.js +4 -4
- package/esm2015/lib/component/transaction-header-fields/transaction-header-relation-reference.module.js +5 -5
- package/esm2015/lib/component/transaction-header-fields/transaction-header-remarks.component.js +4 -4
- package/esm2015/lib/component/transaction-header-fields/transaction-header-remarks.module.js +5 -5
- package/esm2015/lib/component/transaction-labeled-price-input/transaction-labeled-price-input.component.js +78 -0
- package/esm2015/lib/component/transaction-labeled-price-input/transaction-labeled-price-input.module.js +23 -0
- package/esm2015/lib/component/transaction-labeled-warehouse-location-button/transaction-labeled-warehouse-location-button.component.js +11 -10
- package/esm2015/lib/component/transaction-labeled-warehouse-location-button/transaction-labeled-warehouse-location-button.module.js +6 -6
- package/esm2015/lib/component/transaction-line/transaction-cash-register-order-line/transaction-cash-register-order-line.component.js +52 -0
- package/esm2015/lib/component/transaction-line/transaction-cash-register-order-line/transaction-cash-register-order-line.module.js +34 -0
- package/esm2015/lib/component/transaction-line/transaction-purchase-order-line/transaction-purchase-order-line-base.component.js +3 -2
- package/esm2015/lib/component/transaction-line/transaction-purchase-order-line/transaction-purchase-order-line.component.js +9 -10
- package/esm2015/lib/component/transaction-line/transaction-purchase-order-line/transaction-purchase-order-line.module.js +19 -19
- package/esm2015/lib/component/transaction-line-fields/transaction-line-commission-button.component.js +1 -1
- package/esm2015/lib/component/transaction-line-fields/transaction-line-commission-button.module.js +6 -6
- package/esm2015/lib/component/transaction-line-fields/transaction-line-delivery-button.component.js +3 -3
- package/esm2015/lib/component/transaction-line-fields/transaction-line-delivery-button.module.js +6 -6
- package/esm2015/lib/component/transaction-line-fields/transaction-line-delivery-date-button.module.js +6 -6
- package/esm2015/lib/component/transaction-line-fields/transaction-line-discount-button.component.js +3 -3
- package/esm2015/lib/component/transaction-line-fields/transaction-line-discount-button.module.js +7 -7
- package/esm2015/lib/component/transaction-line-fields/transaction-line-drop-shipment-button.component.js +4 -4
- package/esm2015/lib/component/transaction-line-fields/transaction-line-drop-shipment-button.module.js +7 -7
- package/esm2015/lib/component/transaction-line-fields/transaction-line-supplier-button.component.js +5 -5
- package/esm2015/lib/component/transaction-line-fields/transaction-line-supplier-button.module.js +8 -8
- package/esm2015/lib/component/transaction-line-fields/transaction-line-vat-button.component.js +1 -1
- package/esm2015/lib/component/transaction-line-fields/transaction-line-vat-button.module.js +5 -5
- package/esm2015/lib/component/transaction-line-fields/transaction-line-warehouse-button.module.js +6 -6
- package/esm2015/lib/component/transaction-line-fields/transaction-line-warehouse-location-button.component.js +4 -4
- package/esm2015/lib/component/transaction-line-fields/transaction-line-warehouse-location-button.module.js +7 -7
- package/esm2015/lib/component/transaction-line-fields/transaction-purchase-portal-line-confirmed-delivery-date.component.js +4 -4
- package/esm2015/lib/component/transaction-line-fields/transaction-purchase-portal-line-confirmed-delivery-date.module.js +6 -6
- package/esm2015/lib/component/transaction-line-fields/transaction-purchase-portal-line-confirmed-price.component.js +31 -12
- package/esm2015/lib/component/transaction-line-fields/transaction-purchase-portal-line-delivery-date.component.js +4 -4
- package/esm2015/lib/component/transaction-line-fields/transaction-purchase-portal-line-delivery-date.module.js +6 -6
- package/esm2015/lib/component/transaction-line-purchase-confirmation/transaction-line-purchase-confirmation.component.js +42 -60
- package/esm2015/lib/component/transaction-line-purchase-confirmation/transaction-line-purchase-confirmation.module.js +4 -2
- package/esm2015/lib/component/transaction-line-purchase-receive-goods/transaction-line-purchase-receive-goods.component.js +4 -3
- package/esm2015/lib/component/transaction-navigation-button/transaction-navigation-button.component.js +4 -4
- package/esm2015/lib/component/transaction-navigation-button/transaction-navigation-button.module.js +6 -6
- package/esm2015/lib/component/transaction-search/transaction-filter-content/purchase-order-filter-content/transaction-purchase-order-filter-content-logistics/transaction-purchase-order-filter-content-logistics.component.js +7 -7
- package/esm2015/lib/component/transaction-search/transaction-filter-content/purchase-order-filter-content/transaction-purchase-order-filter-content-order/transaction-purchase-order-filter-content-order.component.js +10 -10
- package/esm2015/lib/component/transaction-search/transaction-filter-content/sales-order-filter-content/transaction-sales-order-filter-content-logistics/transaction-sales-order-filter-content-logistics.component.js +7 -7
- package/esm2015/lib/component/transaction-search/transaction-filter-content/sales-order-filter-content/transaction-sales-order-filter-content-order/transaction-sales-order-filter-content-order.component.js +10 -10
- package/esm2015/lib/enum/transaction-type-category.enum.js +2 -1
- package/esm2015/lib/res/dictionary/dictionaries.js +3 -3
- package/esm2015/lib/service/relation.service.js +14 -14
- package/esm2015/lib/service/transaction-connector-adapter.service.js +1 -1
- package/esm2015/lib/service/transaction-connector.service.js +1 -1
- package/esm2015/lib/service/transaction-event.service.js +3 -3
- package/esm2015/lib/service/transaction-mapping.service.js +3 -1
- package/esm2015/lib/service/transaction.service.js +1 -1
- package/esm2015/lib/transaction-version.js +3 -3
- package/fesm2015/colijnit-transaction.js +352 -110
- package/fesm2015/colijnit-transaction.js.map +1 -1
- package/lib/component/dialog/catalog/dialog-catalog/dialog-catalog.component.d.ts +11 -4
- package/lib/component/payment/style/_layout.scss +0 -20
- package/lib/component/payment/style/_material-definition.scss +0 -7
- package/lib/component/payment/style/_theme.scss +0 -24
- package/lib/component/payment/style/material.scss +1 -0
- package/lib/component/payment-to-pay/payment-to-pay.component.d.ts +4 -0
- package/lib/component/payment-to-pay/payment-to-pay.module.d.ts +2 -0
- package/lib/component/payment-to-pay/style/_layout.scss +26 -0
- package/lib/component/payment-to-pay/style/_material-definition.scss +6 -0
- package/lib/component/payment-to-pay/style/_theme.scss +9 -0
- package/lib/component/payment-to-pay/style/material.scss +4 -0
- package/lib/component/tile/style/_layout.scss +4 -0
- package/lib/component/transaction-button/style/_layout.scss +10 -2
- package/lib/component/transaction-button/style/_material-definition.scss +2 -0
- package/lib/component/transaction-button/transaction-button.component.d.ts +1 -0
- package/lib/component/transaction-cash-register-order/style/_layout.scss +126 -0
- package/lib/component/transaction-cash-register-order/style/_material-definition.scss +0 -0
- package/lib/component/transaction-cash-register-order/style/_theme.scss +4 -0
- package/lib/component/transaction-cash-register-order/style/material.scss +5 -0
- package/lib/component/transaction-header/transaction-header/transaction-header.component.d.ts +3 -3
- package/lib/component/transaction-header/transaction-header-delivery/transaction-header-delivery.component.d.ts +2 -2
- package/lib/component/transaction-header-fields/transaction-header-delivery-date.component.d.ts +2 -2
- package/lib/component/transaction-header-fields/transaction-header-discount-amount.component.d.ts +2 -2
- package/lib/component/transaction-header-fields/transaction-header-discount-percentage.component.d.ts +2 -2
- package/lib/component/transaction-header-fields/transaction-header-preferred-delivery-date.component.d.ts +2 -2
- package/lib/component/transaction-header-fields/transaction-header-reference.component.d.ts +2 -2
- package/lib/component/transaction-header-fields/transaction-header-relation-reference.component.d.ts +2 -2
- package/lib/component/transaction-header-fields/transaction-header-remarks.component.d.ts +2 -2
- package/lib/component/transaction-labeled-price-input/style/_layout.scss +8 -0
- package/lib/component/transaction-labeled-price-input/style/_material-definition.scss +0 -0
- package/lib/component/transaction-labeled-price-input/style/_theme.scss +4 -0
- package/lib/component/transaction-labeled-price-input/style/material.scss +4 -0
- package/lib/component/transaction-labeled-price-input/transaction-labeled-price-input.component.d.ts +16 -0
- package/lib/component/transaction-labeled-price-input/transaction-labeled-price-input.module.d.ts +2 -0
- package/lib/component/transaction-labeled-warehouse-location-button/style/_layout.scss +4 -37
- package/lib/component/transaction-labeled-warehouse-location-button/transaction-labeled-warehouse-location-button.component.d.ts +9 -9
- package/lib/component/transaction-line/transaction-cash-register-order-line/style/_layout.scss +4 -0
- package/lib/component/transaction-line/transaction-cash-register-order-line/style/_material-definition.scss +0 -0
- package/lib/component/transaction-line/transaction-cash-register-order-line/style/_theme.scss +4 -0
- package/lib/component/transaction-line/transaction-cash-register-order-line/style/material.scss +4 -0
- package/lib/component/transaction-line/transaction-cash-register-order-line/transaction-cash-register-order-line.component.d.ts +4 -0
- package/lib/component/transaction-line/transaction-cash-register-order-line/transaction-cash-register-order-line.module.d.ts +2 -0
- package/lib/component/transaction-line/transaction-purchase-order-line/style/_layout.scss +1 -1
- package/lib/component/transaction-line-fields/transaction-line-delivery-button.component.d.ts +2 -2
- package/lib/component/transaction-line-fields/transaction-line-discount-button.component.d.ts +1 -1
- package/lib/component/transaction-line-fields/transaction-line-drop-shipment-button.component.d.ts +3 -3
- package/lib/component/transaction-line-fields/transaction-line-supplier-button.component.d.ts +3 -3
- package/lib/component/transaction-line-fields/transaction-line-warehouse-location-button.component.d.ts +3 -3
- package/lib/component/transaction-line-fields/transaction-purchase-portal-line-confirmed-delivery-date.component.d.ts +3 -3
- package/lib/component/transaction-line-fields/transaction-purchase-portal-line-confirmed-price.component.d.ts +2 -2
- package/lib/component/transaction-line-fields/transaction-purchase-portal-line-delivery-date.component.d.ts +3 -3
- package/lib/component/transaction-line-purchase-confirmation/style/_layout.scss +20 -25
- package/lib/component/transaction-line-purchase-confirmation/style/material.scss +1 -0
- package/lib/component/transaction-line-purchase-confirmation/transaction-line-purchase-confirmation.component.d.ts +1 -3
- package/lib/component/transaction-line-purchase-receive-goods/style/_layout.scss +1 -9
- package/lib/component/transaction-line-side-panel/style/_layout.scss +1 -1
- package/lib/component/transaction-navigation-button/transaction-navigation-button.component.d.ts +3 -3
- package/lib/component/transaction-quick-access/transaction-quick-access-order-confirmation/style/_layout.scss +5 -0
- package/lib/component/transaction-quick-access/transaction-quick-access-received-goods/style/_layout.scss +8 -0
- package/lib/component/transaction-search/transaction-filter-content/purchase-order-filter-content/transaction-purchase-order-filter-content-logistics/transaction-purchase-order-filter-content-logistics.component.d.ts +5 -5
- package/lib/component/transaction-search/transaction-filter-content/purchase-order-filter-content/transaction-purchase-order-filter-content-order/transaction-purchase-order-filter-content-order.component.d.ts +6 -6
- package/lib/component/transaction-search/transaction-filter-content/sales-order-filter-content/transaction-sales-order-filter-content-logistics/transaction-sales-order-filter-content-logistics.component.d.ts +5 -5
- package/lib/component/transaction-search/transaction-filter-content/sales-order-filter-content/transaction-sales-order-filter-content-order/transaction-sales-order-filter-content-order.component.d.ts +6 -6
- package/lib/enum/transaction-type-category.enum.d.ts +2 -1
- package/lib/res/dictionary/dictionaries.d.ts +3 -0
- package/lib/service/relation.service.d.ts +14 -14
- package/lib/service/transaction-event.service.d.ts +6 -6
- package/lib/style/_variables.scss +12 -0
- package/package.json +2 -2
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import { __awaiter } from "tslib";
|
|
2
|
-
import { Injectable } from
|
|
3
|
-
import { SelectMultipleCacheService } from
|
|
4
|
-
import { RelationConnectorService } from
|
|
5
|
-
import { RelationKind } from
|
|
6
|
-
import { ValidationResult } from
|
|
7
|
-
import { CustomerFullObject } from
|
|
8
|
-
import { RelationRequest } from
|
|
9
|
-
import { RelationListObject } from
|
|
10
|
-
import { BranchLov } from
|
|
11
|
-
import { SupplierFullObject } from
|
|
12
|
-
import { SelectSingleCacheService } from
|
|
13
|
-
import { SelectMultipleParameterizedCacheService } from
|
|
14
|
-
import { Relation } from
|
|
2
|
+
import { Injectable } from '@angular/core';
|
|
3
|
+
import { SelectMultipleCacheService } from '../cache/service/select-multiple-cache.service';
|
|
4
|
+
import { RelationConnectorService } from './relation-connector.service';
|
|
5
|
+
import { RelationKind } from '@colijnit/articleapi/build/enum/relation-kind.enum';
|
|
6
|
+
import { ValidationResult } from '@colijnit/ioneconnector/build/model/validation-result';
|
|
7
|
+
import { CustomerFullObject } from '@colijnit/relationapi/build/model/customer-full-object.bo';
|
|
8
|
+
import { RelationRequest } from '@colijnit/relationapi/build/model/relation-request';
|
|
9
|
+
import { RelationListObject } from '@colijnit/relationapi/build/model/relation-list-object.bo';
|
|
10
|
+
import { BranchLov } from '@colijnit/relationapi/build/model/branch-lov.bo';
|
|
11
|
+
import { SupplierFullObject } from '@colijnit/relationapi/build/model/supplier-full-object.bo';
|
|
12
|
+
import { SelectSingleCacheService } from '../cache/service/select-single-cache.service';
|
|
13
|
+
import { SelectMultipleParameterizedCacheService } from '../cache/service/select-multiple-parameterized-cache.service';
|
|
14
|
+
import { Relation } from '@colijnit/relationapi/build/model/relation.bo';
|
|
15
15
|
import { BusinessObjectFactory } from '@colijnit/ioneconnector/build/factory/business-object-factory';
|
|
16
16
|
import * as i0 from "@angular/core";
|
|
17
17
|
import * as i1 from "./relation-connector.service";
|
|
@@ -184,4 +184,4 @@ RelationService.ctorParameters = () => [
|
|
|
184
184
|
{ type: SelectSingleCacheService },
|
|
185
185
|
{ type: SelectMultipleParameterizedCacheService }
|
|
186
186
|
];
|
|
187
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVsYXRpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RyYW5zYWN0aW9uL3NyYy9saWIvc2VydmljZS9yZWxhdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBQywwQkFBMEIsRUFBQyxNQUFNLGdEQUFnRCxDQUFDO0FBQzFGLE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQ3RFLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxvREFBb0QsQ0FBQztBQUNoRixPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSx1REFBdUQsQ0FBQztBQUN2RixPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSwyREFBMkQsQ0FBQztBQUM3RixPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sb0RBQW9ELENBQUM7QUFDbkYsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sMkRBQTJELENBQUM7QUFDN0YsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGlEQUFpRCxDQUFDO0FBQzFFLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLDJEQUEyRCxDQUFDO0FBQzdGLE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLDhDQUE4QyxDQUFDO0FBQ3RGLE9BQU8sRUFBQyx1Q0FBdUMsRUFBQyxNQUFNLDhEQUE4RCxDQUFDO0FBQ3JILE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSwrQ0FBK0MsQ0FBQztBQUd2RSxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSwrREFBK0QsQ0FBQzs7Ozs7O0FBV3BHLE1BQU0sT0FBTyxlQUFlO0lBMkIxQixZQUNVLGVBQXlDLEVBQ3pDLDJCQUF1RCxFQUN2RCx5QkFBbUQsRUFDbkQsd0NBQWlGO1FBSGpGLG9CQUFlLEdBQWYsZUFBZSxDQUEwQjtRQUN6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bnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge1NlbGVjdE11bHRpcGxlQ2FjaGVTZXJ2aWNlfSBmcm9tIFwiLi4vY2FjaGUvc2VydmljZS9zZWxlY3QtbXVsdGlwbGUtY2FjaGUuc2VydmljZVwiO1xyXG5pbXBvcnQge1JlbGF0aW9uQ29ubmVjdG9yU2VydmljZX0gZnJvbSBcIi4vcmVsYXRpb24tY29ubmVjdG9yLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtSZWxhdGlvbktpbmR9IGZyb20gXCJAY29saWpuaXQvYXJ0aWNsZWFwaS9idWlsZC9lbnVtL3JlbGF0aW9uLWtpbmQuZW51bVwiO1xyXG5pbXBvcnQge1ZhbGlkYXRpb25SZXN1bHR9IGZyb20gXCJAY29saWpuaXQvaW9uZWNvbm5lY3Rvci9idWlsZC9tb2RlbC92YWxpZGF0aW9uLXJlc3VsdFwiO1xyXG5pbXBvcnQge0N1c3RvbWVyRnVsbE9iamVjdH0gZnJvbSBcIkBjb2xpam5pdC9yZWxhdGlvbmFwaS9idWlsZC9tb2RlbC9jdXN0b21lci1mdWxsLW9iamVjdC5ib1wiO1xyXG5pbXBvcnQge1JlbGF0aW9uUmVxdWVzdH0gZnJvbSBcIkBjb2xpam5pdC9yZWxhdGlvbmFwaS9idWlsZC9tb2RlbC9yZWxhdGlvbi1yZXF1ZXN0XCI7XHJcbmltcG9ydCB7UmVsYXRpb25MaXN0T2JqZWN0fSBmcm9tIFwiQGNvbGlqbml0L3JlbGF0aW9uYXBpL2J1aWxkL21vZGVsL3JlbGF0aW9uLWxpc3Qtb2JqZWN0LmJvXCI7XHJcbmltcG9ydCB7QnJhbmNoTG92fSBmcm9tIFwiQGNvbGlqbml0L3JlbGF0aW9uYXBpL2J1aWxkL21vZGVsL2JyYW5jaC1sb3YuYm9cIjtcclxuaW1wb3J0IHtTdXBwbGllckZ1bGxPYmplY3R9IGZyb20gXCJAY29saWpuaXQvcmVsYXRpb25hcGkvYnVpbGQvbW9kZWwvc3VwcGxpZXItZnVsbC1vYmplY3QuYm9cIjtcclxuaW1wb3J0IHtTZWxlY3RTaW5nbGVDYWNoZVNlcnZpY2V9IGZyb20gXCIuLi9jYWNoZS9zZXJ2aWNlL3NlbGVjdC1zaW5nbGUtY2FjaGUuc2VydmljZVwiO1xyXG5pbXBvcnQge1NlbGVjdE11bHRpcGxlUGFyYW1ldGVyaXplZENhY2hlU2VydmljZX0gZnJvbSBcIi4uL2NhY2hlL3NlcnZpY2Uvc2VsZWN0LW11bHRpcGxlLXBhcmFtZXRlcml6ZWQtY2FjaGUuc2VydmljZVwiO1xyXG5pbXBvcnQge1JlbGF0aW9ufSBmcm9tIFwiQGNvbGlqbml0L3JlbGF0aW9uYXBpL2J1aWxkL21vZGVsL3JlbGF0aW9uLmJvXCI7XHJcbmltcG9ydCB7UmVsYXRpb25BbnlUeXBlfSBmcm9tIFwiQGNvbGlqbml0L3JlbGF0aW9uYXBpL2J1aWxkL21vZGVsL3JlbGF0aW9uLWFueS10eXBlXCI7XHJcbmltcG9ydCB7QWRkcmVzc30gZnJvbSBcIkBjb2xpam5pdC9yZWxhdGlvbmFwaS9idWlsZC9tb2RlbC9hZGRyZXNzLmJvXCI7XHJcbmltcG9ydCB7QnVzaW5lc3NPYmplY3RGYWN0b3J5fSBmcm9tICdAY29saWpuaXQvaW9uZWNvbm5lY3Rvci9idWlsZC9mYWN0b3J5L2J1c2luZXNzLW9iamVjdC1mYWN0b3J5JztcclxuXHJcbnR5cGUgTG9ja0ZuSGVhZGVyID0gKHJlbGF0aW9uTnI6IG51bWJlcikgPT4gUHJvbWlzZTxWYWxpZGF0aW9uUmVzdWx0PjtcclxudHlwZSBHZXRSZWxhdGlvbkZuSGVhZGVyID0gKHJlbGF0aW9uTnI6IG51bWJlcikgPT4gUHJvbWlzZTxSZWxhdGlvbkFueVR5cGU+O1xyXG50eXBlIEluc2VydFJlbGF0aW9uRm4gPSAocmVsYXRpb246IFJlbGF0aW9uQW55VHlwZSkgPT4gUHJvbWlzZTxSZWxhdGlvbkFueVR5cGU+O1xyXG50eXBlIFVwZGF0ZVJlbGF0aW9uRm4gPSAocmVsYXRpb246IFJlbGF0aW9uQW55VHlwZSkgPT4gUHJvbWlzZTxSZWxhdGlvbkFueVR5cGU+O1xyXG5cclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiBcInJvb3RcIlxyXG59KVxyXG5leHBvcnQgY2xhc3MgUmVsYXRpb25TZXJ2aWNlIHtcclxuICBwcml2YXRlIHJlYWRvbmx5IF9sb2NrTWV0aG9kczogTWFwPFJlbGF0aW9uS2luZCwgTG9ja0ZuSGVhZGVyPiA9IG5ldyBNYXA8UmVsYXRpb25LaW5kLCBMb2NrRm5IZWFkZXI+KFtcclxuICAgIFtSZWxhdGlvbktpbmQuQ3VzdG9tZXIsIChyZWxhdGlvbk5yOiBudW1iZXIpID0+IHRoaXMuX2xvY2tDdXN0b21lckZ1bGxPYmplY3QocmVsYXRpb25OcildLFxyXG4gICAgW1JlbGF0aW9uS2luZC5TdXBwbGllciwgKHJlbGF0aW9uTnI6IG51bWJlcikgPT4gdGhpcy5fbG9ja1N1cHBsaWVyRnVsbE9iamVjdChyZWxhdGlvbk5yKV0sXHJcbiAgICBbUmVsYXRpb25LaW5kLlBlcnNvbm5lbCwgKHJlbGF0aW9uTnI6IG51bWJlcikgPT4gdGhpcy5fbG9ja0VtcGxveWVlRnVsbE9iamVjdChyZWxhdGlvbk5yKV0sXHJcbiAgICBbUmVsYXRpb25LaW5kLkJyYW5jaCwgKHJlbGF0aW9uTnI6IG51bWJlcikgPT4gdGhpcy5fbG9ja0JyYW5jaEZ1bGxPYmplY3QocmVsYXRpb25OcildLFxyXG4gICAgW1JlbGF0aW9uS2luZC5Db21wYW55LCAocmVsYXRpb25OcjogbnVtYmVyKSA9PiB0aGlzLl9sb2NrQ29tcGFueUZ1bGxPYmplY3QocmVsYXRpb25OcildLFxyXG4gICAgW1JlbGF0aW9uS2luZC5Db250YWN0UGVyc29uLCAocmVsYXRpb25OcjogbnVtYmVyKSA9PiB0aGlzLl9sb2NrQ29udGFjdFBlcnNvbihyZWxhdGlvbk5yKV0sXHJcbiAgXSk7XHJcblxyXG4gIHByaXZhdGUgcmVhZG9ubHkgX2dldE1ldGhvZHM6IE1hcDxSZWxhdGlvbktpbmQsIEdldFJlbGF0aW9uRm5IZWFkZXI+ID0gbmV3IE1hcDxSZWxhdGlvbktpbmQsIEdldFJlbGF0aW9uRm5IZWFkZXI+KFtcclxuICAgIFtSZWxhdGlvbktpbmQuQ3VzdG9tZXIsIChyZWxhdGlvbk5yOiBudW1iZXIpID0+IHRoaXMuZ2V0Q3VzdG9tZXJGdWxsT2JqZWN0KHJlbGF0aW9uTnIpXSxcclxuICAgIFtSZWxhdGlvbktpbmQuU3VwcGxpZXIsIChyZWxhdGlvbk5yOiBudW1iZXIpID0+IHRoaXMuZ2V0U3VwcGxpZXJGdWxsT2JqZWN0KHJlbGF0aW9uTnIpXVxyXG4gIF0pO1xyXG5cclxuICBwcml2YXRlIHJlYWRvbmx5IF91cGRhdGVNZXRob2RzOiBNYXA8UmVsYXRpb25LaW5kLCBVcGRhdGVSZWxhdGlvbkZuPiA9IG5ldyBNYXA8UmVsYXRpb25LaW5kLCBVcGRhdGVSZWxhdGlvbkZuPihbXHJcbiAgICBbUmVsYXRpb25LaW5kLkN1c3RvbWVyLCAocmVsYXRpb246IEN1c3RvbWVyRnVsbE9iamVjdCkgPT4gdGhpcy51cGRhdGVDdXN0b21lcihyZWxhdGlvbildLFxyXG4gICAgW1JlbGF0aW9uS2luZC5TdXBwbGllciwgKHJlbGF0aW9uOiBTdXBwbGllckZ1bGxPYmplY3QpID0+IHRoaXMudXBkYXRlU3VwcGxpZXIocmVsYXRpb24pXVxyXG4gIF0pO1xyXG5cclxuICBwcml2YXRlIHJlYWRvbmx5IF9pbnNlcnRNZXRob2RzOiBNYXA8UmVsYXRpb25LaW5kLCBJbnNlcnRSZWxhdGlvbkZuPiA9IG5ldyBNYXA8UmVsYXRpb25LaW5kLCBJbnNlcnRSZWxhdGlvbkZuPihbXHJcbiAgICBbUmVsYXRpb25LaW5kLkN1c3RvbWVyLCAocmVsYXRpb246IEN1c3RvbWVyRnVsbE9iamVjdCkgPT4gdGhpcy5pbnNlcnRDdXN0b21lcihyZWxhdGlvbildLFxyXG4gICAgW1JlbGF0aW9uS2luZC5TdXBwbGllciwgKHJlbGF0aW9uOiBTdXBwbGllckZ1bGxPYmplY3QpID0+IHRoaXMuaW5zZXJ0U3VwcGxpZXIocmVsYXRpb24pXVxyXG4gIF0pXHJcblxyXG4gIHByaXZhdGUgX2JvRmFjdG9yeTogQnVzaW5lc3NPYmplY3RGYWN0b3J5ID0gbmV3IEJ1c2luZXNzT2JqZWN0RmFjdG9yeSgpO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgX2FkYXB0ZXJTZXJ2aWNlOiBSZWxhdGlvbkNvbm5lY3RvclNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9zZWxlY3RNdWx0aXBsZUNhY2hlU2VydmljZTogU2VsZWN0TXVsdGlwbGVDYWNoZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9zZWxlY3RTaW5nbGVDYWNoZVNlcnZpY2U6IFNlbGVjdFNpbmdsZUNhY2hlU2VydmljZSxcclxuICAgIHByaXZhdGUgX3NlbGVjdE11bHRpcGxlUGFyYW1ldGVyaXplZENhY2hlU2VydmljZTogU2VsZWN0TXVsdGlwbGVQYXJhbWV0ZXJpemVkQ2FjaGVTZXJ2aWNlXHJcbiAgKSB7fVxyXG5cclxuICBwdWJsaWMgZ2V0Q3VzdG9tZXJGdWxsT2JqZWN0KHJlbGF0aW9uTm86IG51bWJlcik6IFByb21pc2U8Q3VzdG9tZXJGdWxsT2JqZWN0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5fc2VsZWN0U2luZ2xlQ2FjaGVTZXJ2aWNlLnJlcXVlc3RDYWNoZTxDdXN0b21lckZ1bGxPYmplY3Q+KEN1c3RvbWVyRnVsbE9iamVjdCwgcmVsYXRpb25ObywgKCkgPT4ge1xyXG4gICAgICByZXR1cm4gdGhpcy5fYWRhcHRlclNlcnZpY2UuZ2V0Q3VzdG9tZXJGdWxsT2JqZWN0KHJlbGF0aW9uTm8pXHJcbiAgICB9KS5nZXRWYWx1ZSgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldFN1cHBsaWVyRnVsbE9iamVjdChyZWxhdGlvbk5vOiBudW1iZXIpOiBQcm9taXNlPFN1cHBsaWVyRnVsbE9iamVjdD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3NlbGVjdFNpbmdsZUNhY2hlU2VydmljZS5yZXF1ZXN0Q2FjaGU8U3VwcGxpZXJGdWxsT2JqZWN0PihTdXBwbGllckZ1bGxPYmplY3QsIHJlbGF0aW9uTm8sICgpID0+IHtcclxuICAgICAgcmV0dXJuIHRoaXMuX2FkYXB0ZXJTZXJ2aWNlLmdldFN1cHBsaWVyRnVsbE9iamVjdChyZWxhdGlvbk5vKVxyXG4gICAgfSkuZ2V0VmFsdWUoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBpbnNlcnRBZGRyZXNzKGFkZHJlc3M6IEFkZHJlc3MpOiBQcm9taXNlPEFkZHJlc3M+IHtcclxuICAgIHJldHVybiB0aGlzLl9hZGFwdGVyU2VydmljZS5pbnNlcnRBZGRyZXNzKGFkZHJlc3MpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHVwZGF0ZUFkZHJlc3MoYWRkcmVzczogQWRkcmVzcyk6IFByb21pc2U8QWRkcmVzcz4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2FkYXB0ZXJTZXJ2aWNlLnVwZGF0ZUFkZHJlc3MoYWRkcmVzcyk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaW5zZXJ0Q3VzdG9tZXIocmVsYXRpb246IEN1c3RvbWVyRnVsbE9iamVjdCk6IFByb21pc2U8Q3VzdG9tZXJGdWxsT2JqZWN0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5fYWRhcHRlclNlcnZpY2UuaW5zZXJ0Q3VzdG9tZXIocmVsYXRpb24pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIHVwZGF0ZUN1c3RvbWVyKHJlbGF0aW9uOiBDdXN0b21lckZ1bGxPYmplY3QpOiBQcm9taXNlPEN1c3RvbWVyRnVsbE9iamVjdD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2FkYXB0ZXJTZXJ2aWNlLnVwZGF0ZUN1c3RvbWVyKHJlbGF0aW9uKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBpbnNlcnRTdXBwbGllcihyZWxhdGlvbjogU3VwcGxpZXJGdWxsT2JqZWN0KTogUHJvbWlzZTxTdXBwbGllckZ1bGxPYmplY3Q+IHtcclxuICAgIHJldHVybiB0aGlzLl9hZGFwdGVyU2VydmljZS5pbnNlcnRTdXBwbGllcihyZWxhdGlvbik7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgdXBkYXRlU3VwcGxpZXIocmVsYXRpb246IFN1cHBsaWVyRnVsbE9iamVjdCk6IFByb21pc2U8U3VwcGxpZXJGdWxsT2JqZWN0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5fYWRhcHRlclNlcnZpY2UudXBkYXRlU3VwcGxpZXIocmVsYXRpb24pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldFJlbGF0aW9uTGlzdE9iamVjdHMocmVsYXRpb25SZXF1ZXN0OiBSZWxhdGlvblJlcXVlc3QpOiBQcm9taXNlPFJlbGF0aW9uTGlzdE9iamVjdFtdPiB7XHJcbiAgICAvLyByZXR1cm4gdGhpcy5fc2VsZWN0TXVsdGlwbGVQYXJhbWV0ZXJpemVkQ2FjaGVTZXJ2aWNlLnJlcXVlc3RDYWNoZTxSZWxhdGlvbkxpc3RPYmplY3Q+KFJlbGF0aW9uTGlzdE9iamVjdCwgKHJlbGF0aW9uUmVxdWVzdCkgPT4ge1xyXG4gICAgICByZXR1cm4gdGhpcy5fYWRhcHRlclNlcnZpY2UuZ2V0UmVsYXRpb25MaXN0T2JqZWN0cyhyZWxhdGlvblJlcXVlc3QpO1xyXG4gICAgLy8gfSkuZ2V0VmFsdWUocmVsYXRpb25SZXF1ZXN0KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRSZWxhdGlvbkJ5SWQoaWQ6IG51bWJlcik6IFByb21pc2U8UmVsYXRpb25MaXN0T2JqZWN0W10+IHtcclxuICAgIHJldHVybiB0aGlzLl9zZWxlY3RNdWx0aXBsZVBhcmFtZXRlcml6ZWRDYWNoZVNlcnZpY2UucmVxdWVzdENhY2hlPFJlbGF0aW9uTGlzdE9iamVjdD4oUmVsYXRpb25MaXN0T2JqZWN0LCAoaWQ6IG51bWJlcikgPT4ge1xyXG4gICAgICBjb25zdCByZXF1ZXN0OiBSZWxhdGlvblJlcXVlc3QgPSBuZXcgUmVsYXRpb25SZXF1ZXN0KCk7XHJcbiAgICAgIHJlcXVlc3QucmVsYXRpb25JZCA9IGlkO1xyXG4gICAgICByZXR1cm4gdGhpcy5nZXRSZWxhdGlvbkxpc3RPYmplY3RzKHJlcXVlc3QpO1xyXG4gICAgfSkuZ2V0VmFsdWUoaWQpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldFJlbGF0aW9uTnVtYmVyKHJlbGF0aW9uSWQ6IG51bWJlcik6IFByb21pc2U8c3RyaW5nPiB7XHJcbiAgICByZXR1cm4gdGhpcy5fYWRhcHRlclNlcnZpY2UuZ2V0UmVsYXRpb25OdW1iZXIocmVsYXRpb25JZCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0QnJhbmNoZXMoYnJhbmNoTnI/OiBzdHJpbmcpOiBQcm9taXNlPEJyYW5jaExvdltdPiB7XHJcbiAgICByZXR1cm4gdGhpcy5fc2VsZWN0TXVsdGlwbGVQYXJhbWV0ZXJpemVkQ2FjaGVTZXJ2aWNlLnJlcXVlc3RDYWNoZTxCcmFuY2hMb3Y+KEJyYW5jaExvdiwgKGJyYW5jaE5yPzogc3RyaW5nKSA9PiB7XHJcbiAgICAgIHJldHVybiB0aGlzLl9hZGFwdGVyU2VydmljZS5nZXRCcmFuY2hlcyhicmFuY2hOcilcclxuICAgIH0pLmdldFZhbHVlKGJyYW5jaE5yKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBpbnNlcnRSZWxhdGlvbihyZWxhdGlvbktpbmQ6IFJlbGF0aW9uS2luZCwgcmVsYXRpb246IFJlbGF0aW9uKTogUHJvbWlzZTxSZWxhdGlvbj4ge1xyXG4gICAgY29uc3QgaW5zZXJ0TWV0aG9kOiBJbnNlcnRSZWxhdGlvbkZuID0gdGhpcy5faW5zZXJ0TWV0aG9kcy5nZXQocmVsYXRpb25LaW5kKTtcclxuICAgIGlmIChpbnNlcnRNZXRob2QpIHtcclxuICAgICAgcmV0dXJuIGluc2VydE1ldGhvZC5jYWxsKHRoaXMsIHJlbGF0aW9uKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IHJlc3VsdDogUmVsYXRpb24gPSBuZXcgUmVsYXRpb24oKTtcclxuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShyZXN1bHQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIHVwZGF0ZVJlbGF0aW9uKHJlbGF0aW9uS2luZDogUmVsYXRpb25LaW5kLCByZWxhdGlvbjogUmVsYXRpb24pOiBQcm9taXNlPFJlbGF0aW9uPiB7XHJcbiAgICBjb25zdCB1cGRhdGVNZXRob2Q6IFVwZGF0ZVJlbGF0aW9uRm4gPSB0aGlzLl91cGRhdGVNZXRob2RzLmdldChyZWxhdGlvbktpbmQpO1xyXG4gICAgaWYgKHVwZGF0ZU1ldGhvZCkge1xyXG4gICAgICByZXR1cm4gdXBkYXRlTWV0aG9kLmNhbGwodGhpcywgcmVsYXRpb24pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc3QgcmVzdWx0OiBSZWxhdGlvbiA9IG5ldyBSZWxhdGlvbigpO1xyXG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHJlc3VsdCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbG9ja1JlbGF0aW9uKHJlbGF0aW9uS2luZDogUmVsYXRpb25LaW5kLCByZWxhdGlvbk5yOiBudW1iZXIpOiBQcm9taXNlPFZhbGlkYXRpb25SZXN1bHQ+IHtcclxuICAgIGNvbnN0IGxvY2tNZXRob2Q6IExvY2tGbkhlYWRlciA9IHRoaXMuX2xvY2tNZXRob2RzLmdldChyZWxhdGlvbktpbmQpO1xyXG4gICAgaWYgKGxvY2tNZXRob2QpIHtcclxuICAgICAgcmV0dXJuIGxvY2tNZXRob2QuY2FsbCh0aGlzLCByZWxhdGlvbk5yKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IHJlc3VsdDogVmFsaWRhdGlvblJlc3VsdCA9IG5ldyBWYWxpZGF0aW9uUmVzdWx0KCk7XHJcbiAgICAgIHJlc3VsdC5zdWNjZXNzID0gZmFsc2U7XHJcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUocmVzdWx0KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRSZWxhdGlvbihyZWxhdGlvbktpbmQ6IFJlbGF0aW9uS2luZCwgcmVsYXRpb25OcjogbnVtYmVyKTogUHJvbWlzZTxSZWxhdGlvbkFueVR5cGU+IHtcclxuICAgIGNvbnN0IGdldE1ldGhvZDogR2V0UmVsYXRpb25GbkhlYWRlciA9IHRoaXMuX2dldE1ldGhvZHMuZ2V0KHJlbGF0aW9uS2luZCk7XHJcbiAgICBpZiAoZ2V0TWV0aG9kKSB7XHJcbiAgICAgIHJldHVybiBnZXRNZXRob2QuY2FsbCh0aGlzLCByZWxhdGlvbk5yKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IHJlc3VsdDogVmFsaWRhdGlvblJlc3VsdCA9IG5ldyBWYWxpZGF0aW9uUmVzdWx0KCk7XHJcbiAgICAgIHJlc3VsdC5zdWNjZXNzID0gZmFsc2U7XHJcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUobnVsbCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2xvbmVSZWxhdGlvbihyZWxhdGlvbjogUmVsYXRpb25BbnlUeXBlKTogUmVsYXRpb25BbnlUeXBlIHtcclxuICAgIHN3aXRjaCAocmVsYXRpb24ucmVsYXRpb25UeXBlKSB7XHJcbiAgICAgIGNhc2UgUmVsYXRpb25LaW5kLkN1c3RvbWVyOlxyXG4gICAgICAgIHJldHVybiB0aGlzLl9ib0ZhY3RvcnkuY2xvbmVDbGllbnRCTyhDdXN0b21lckZ1bGxPYmplY3QsIHJlbGF0aW9uKTtcclxuICAgICAgY2FzZSBSZWxhdGlvbktpbmQuU3VwcGxpZXI6XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2JvRmFjdG9yeS5jbG9uZUNsaWVudEJPKFN1cHBsaWVyRnVsbE9iamVjdCwgcmVsYXRpb24pO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHJldHVybiB0aGlzLl9ib0ZhY3RvcnkuY2xvbmVDbGllbnRCTyhDdXN0b21lckZ1bGxPYmplY3QsIHJlbGF0aW9uKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBjb21taXQoKTogUHJvbWlzZTxib29sZWFuPiB7XHJcbiAgICByZXR1cm4gdGhpcy5fYWRhcHRlclNlcnZpY2UuY29tbWl0KCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9sb2NrQ3VzdG9tZXJGdWxsT2JqZWN0KHJlbGF0aW9uTnI6IG51bWJlcik6IFByb21pc2U8VmFsaWRhdGlvblJlc3VsdD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2FkYXB0ZXJTZXJ2aWNlLmxvY2tDdXN0b21lckZ1bGxPYmplY3QocmVsYXRpb25Ocik7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9sb2NrU3VwcGxpZXJGdWxsT2JqZWN0KHJlbGF0aW9uTnI6IG51bWJlcik6IFByb21pc2U8VmFsaWRhdGlvblJlc3VsdD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2FkYXB0ZXJTZXJ2aWNlLmxvY2tTdXBwbGllckZ1bGxPYmplY3QocmVsYXRpb25Ocik7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9sb2NrRW1wbG95ZWVGdWxsT2JqZWN0KHJlbGF0aW9uTnI6IG51bWJlcik6IFByb21pc2U8VmFsaWRhdGlvblJlc3VsdD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2FkYXB0ZXJTZXJ2aWNlLmxvY2tFbXBsb3llZUZ1bGxPYmplY3QocmVsYXRpb25Ocik7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9sb2NrQnJhbmNoRnVsbE9iamVjdChyZWxhdGlvbk5yOiBudW1iZXIpOiBQcm9taXNlPFZhbGlkYXRpb25SZXN1bHQ+IHtcclxuICAgIHJldHVybiB0aGlzLl9hZGFwdGVyU2VydmljZS5sb2NrQnJhbmNoRnVsbE9iamVjdChyZWxhdGlvbk5yKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2xvY2tDb21wYW55RnVsbE9iamVjdChyZWxhdGlvbk5yOiBudW1iZXIpOiBQcm9taXNlPFZhbGlkYXRpb25SZXN1bHQ+IHtcclxuICAgIHJldHVybiB0aGlzLl9hZGFwdGVyU2VydmljZS5sb2NrQ29tcGFueUZ1bGxPYmplY3QocmVsYXRpb25Ocik7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9sb2NrQ29udGFjdFBlcnNvbihyZWxhdGlvbk5yOiBudW1iZXIpOiBQcm9taXNlPFZhbGlkYXRpb25SZXN1bHQ+IHtcclxuICAgIHJldHVybiB0aGlzLl9hZGFwdGVyU2VydmljZS5sb2NrQ29udGFjdFBlcnNvbihyZWxhdGlvbk5yKTtcclxuICB9XHJcbn1cclxuIl19
|
|
187
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVsYXRpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RyYW5zYWN0aW9uL3NyYy9saWIvc2VydmljZS9yZWxhdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBQywwQkFBMEIsRUFBQyxNQUFNLGdEQUFnRCxDQUFDO0FBQzFGLE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQ3RFLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxvREFBb0QsQ0FBQztBQUNoRixPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSx1REFBdUQsQ0FBQztBQUN2RixPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSwyREFBMkQsQ0FBQztBQUM3RixPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sb0RBQW9ELENBQUM7QUFDbkYsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sMkRBQTJELENBQUM7QUFDN0YsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGlEQUFpRCxDQUFDO0FBQzFFLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLDJEQUEyRCxDQUFDO0FBQzdGLE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLDhDQUE4QyxDQUFDO0FBQ3RGLE9BQU8sRUFBQyx1Q0FBdUMsRUFBQyxNQUFNLDhEQUE4RCxDQUFDO0FBQ3JILE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSwrQ0FBK0MsQ0FBQztBQUd2RSxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSwrREFBK0QsQ0FBQzs7Ozs7O0FBV3BHLE1BQU0sT0FBTyxlQUFlO0lBMkIxQixZQUNVLGVBQXlDLEVBQ3pDLDJCQUF1RCxFQUN2RCx5QkFBbUQsRUFDbkQsd0NBQWlGO1FBSGpGLG9CQUFlLEdBQWYsZUFBZSxDQUEwQjtRQUN6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bnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtTZWxlY3RNdWx0aXBsZUNhY2hlU2VydmljZX0gZnJvbSAnLi4vY2FjaGUvc2VydmljZS9zZWxlY3QtbXVsdGlwbGUtY2FjaGUuc2VydmljZSc7XHJcbmltcG9ydCB7UmVsYXRpb25Db25uZWN0b3JTZXJ2aWNlfSBmcm9tICcuL3JlbGF0aW9uLWNvbm5lY3Rvci5zZXJ2aWNlJztcclxuaW1wb3J0IHtSZWxhdGlvbktpbmR9IGZyb20gJ0Bjb2xpam5pdC9hcnRpY2xlYXBpL2J1aWxkL2VudW0vcmVsYXRpb24ta2luZC5lbnVtJztcclxuaW1wb3J0IHtWYWxpZGF0aW9uUmVzdWx0fSBmcm9tICdAY29saWpuaXQvaW9uZWNvbm5lY3Rvci9idWlsZC9tb2RlbC92YWxpZGF0aW9uLXJlc3VsdCc7XHJcbmltcG9ydCB7Q3VzdG9tZXJGdWxsT2JqZWN0fSBmcm9tICdAY29saWpuaXQvcmVsYXRpb25hcGkvYnVpbGQvbW9kZWwvY3VzdG9tZXItZnVsbC1vYmplY3QuYm8nO1xyXG5pbXBvcnQge1JlbGF0aW9uUmVxdWVzdH0gZnJvbSAnQGNvbGlqbml0L3JlbGF0aW9uYXBpL2J1aWxkL21vZGVsL3JlbGF0aW9uLXJlcXVlc3QnO1xyXG5pbXBvcnQge1JlbGF0aW9uTGlzdE9iamVjdH0gZnJvbSAnQGNvbGlqbml0L3JlbGF0aW9uYXBpL2J1aWxkL21vZGVsL3JlbGF0aW9uLWxpc3Qtb2JqZWN0LmJvJztcclxuaW1wb3J0IHtCcmFuY2hMb3Z9IGZyb20gJ0Bjb2xpam5pdC9yZWxhdGlvbmFwaS9idWlsZC9tb2RlbC9icmFuY2gtbG92LmJvJztcclxuaW1wb3J0IHtTdXBwbGllckZ1bGxPYmplY3R9IGZyb20gJ0Bjb2xpam5pdC9yZWxhdGlvbmFwaS9idWlsZC9tb2RlbC9zdXBwbGllci1mdWxsLW9iamVjdC5ibyc7XHJcbmltcG9ydCB7U2VsZWN0U2luZ2xlQ2FjaGVTZXJ2aWNlfSBmcm9tICcuLi9jYWNoZS9zZXJ2aWNlL3NlbGVjdC1zaW5nbGUtY2FjaGUuc2VydmljZSc7XHJcbmltcG9ydCB7U2VsZWN0TXVsdGlwbGVQYXJhbWV0ZXJpemVkQ2FjaGVTZXJ2aWNlfSBmcm9tICcuLi9jYWNoZS9zZXJ2aWNlL3NlbGVjdC1tdWx0aXBsZS1wYXJhbWV0ZXJpemVkLWNhY2hlLnNlcnZpY2UnO1xyXG5pbXBvcnQge1JlbGF0aW9ufSBmcm9tICdAY29saWpuaXQvcmVsYXRpb25hcGkvYnVpbGQvbW9kZWwvcmVsYXRpb24uYm8nO1xyXG5pbXBvcnQge1JlbGF0aW9uQW55VHlwZX0gZnJvbSAnQGNvbGlqbml0L3JlbGF0aW9uYXBpL2J1aWxkL21vZGVsL3JlbGF0aW9uLWFueS10eXBlJztcclxuaW1wb3J0IHtBZGRyZXNzfSBmcm9tICdAY29saWpuaXQvcmVsYXRpb25hcGkvYnVpbGQvbW9kZWwvYWRkcmVzcy5ibyc7XHJcbmltcG9ydCB7QnVzaW5lc3NPYmplY3RGYWN0b3J5fSBmcm9tICdAY29saWpuaXQvaW9uZWNvbm5lY3Rvci9idWlsZC9mYWN0b3J5L2J1c2luZXNzLW9iamVjdC1mYWN0b3J5JztcclxuXHJcbnR5cGUgTG9ja0ZuSGVhZGVyID0gKHJlbGF0aW9uTnI6IG51bWJlcikgPT4gUHJvbWlzZTxWYWxpZGF0aW9uUmVzdWx0PjtcclxudHlwZSBHZXRSZWxhdGlvbkZuSGVhZGVyID0gKHJlbGF0aW9uTnI6IG51bWJlcikgPT4gUHJvbWlzZTxSZWxhdGlvbkFueVR5cGU+O1xyXG50eXBlIEluc2VydFJlbGF0aW9uRm4gPSAocmVsYXRpb246IFJlbGF0aW9uQW55VHlwZSkgPT4gUHJvbWlzZTxSZWxhdGlvbkFueVR5cGU+O1xyXG50eXBlIFVwZGF0ZVJlbGF0aW9uRm4gPSAocmVsYXRpb246IFJlbGF0aW9uQW55VHlwZSkgPT4gUHJvbWlzZTxSZWxhdGlvbkFueVR5cGU+O1xyXG5cclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiBcInJvb3RcIlxyXG59KVxyXG5leHBvcnQgY2xhc3MgUmVsYXRpb25TZXJ2aWNlIHtcclxuICBwcml2YXRlIHJlYWRvbmx5IF9sb2NrTWV0aG9kczogTWFwPFJlbGF0aW9uS2luZCwgTG9ja0ZuSGVhZGVyPiA9IG5ldyBNYXA8UmVsYXRpb25LaW5kLCBMb2NrRm5IZWFkZXI+KFtcclxuICAgIFtSZWxhdGlvbktpbmQuQ3VzdG9tZXIsIChyZWxhdGlvbk5yOiBudW1iZXIpID0+IHRoaXMuX2xvY2tDdXN0b21lckZ1bGxPYmplY3QocmVsYXRpb25OcildLFxyXG4gICAgW1JlbGF0aW9uS2luZC5TdXBwbGllciwgKHJlbGF0aW9uTnI6IG51bWJlcikgPT4gdGhpcy5fbG9ja1N1cHBsaWVyRnVsbE9iamVjdChyZWxhdGlvbk5yKV0sXHJcbiAgICBbUmVsYXRpb25LaW5kLlBlcnNvbm5lbCwgKHJlbGF0aW9uTnI6IG51bWJlcikgPT4gdGhpcy5fbG9ja0VtcGxveWVlRnVsbE9iamVjdChyZWxhdGlvbk5yKV0sXHJcbiAgICBbUmVsYXRpb25LaW5kLkJyYW5jaCwgKHJlbGF0aW9uTnI6IG51bWJlcikgPT4gdGhpcy5fbG9ja0JyYW5jaEZ1bGxPYmplY3QocmVsYXRpb25OcildLFxyXG4gICAgW1JlbGF0aW9uS2luZC5Db21wYW55LCAocmVsYXRpb25OcjogbnVtYmVyKSA9PiB0aGlzLl9sb2NrQ29tcGFueUZ1bGxPYmplY3QocmVsYXRpb25OcildLFxyXG4gICAgW1JlbGF0aW9uS2luZC5Db250YWN0UGVyc29uLCAocmVsYXRpb25OcjogbnVtYmVyKSA9PiB0aGlzLl9sb2NrQ29udGFjdFBlcnNvbihyZWxhdGlvbk5yKV0sXHJcbiAgXSk7XHJcblxyXG4gIHByaXZhdGUgcmVhZG9ubHkgX2dldE1ldGhvZHM6IE1hcDxSZWxhdGlvbktpbmQsIEdldFJlbGF0aW9uRm5IZWFkZXI+ID0gbmV3IE1hcDxSZWxhdGlvbktpbmQsIEdldFJlbGF0aW9uRm5IZWFkZXI+KFtcclxuICAgIFtSZWxhdGlvbktpbmQuQ3VzdG9tZXIsIChyZWxhdGlvbk5yOiBudW1iZXIpID0+IHRoaXMuZ2V0Q3VzdG9tZXJGdWxsT2JqZWN0KHJlbGF0aW9uTnIpXSxcclxuICAgIFtSZWxhdGlvbktpbmQuU3VwcGxpZXIsIChyZWxhdGlvbk5yOiBudW1iZXIpID0+IHRoaXMuZ2V0U3VwcGxpZXJGdWxsT2JqZWN0KHJlbGF0aW9uTnIpXVxyXG4gIF0pO1xyXG5cclxuICBwcml2YXRlIHJlYWRvbmx5IF91cGRhdGVNZXRob2RzOiBNYXA8UmVsYXRpb25LaW5kLCBVcGRhdGVSZWxhdGlvbkZuPiA9IG5ldyBNYXA8UmVsYXRpb25LaW5kLCBVcGRhdGVSZWxhdGlvbkZuPihbXHJcbiAgICBbUmVsYXRpb25LaW5kLkN1c3RvbWVyLCAocmVsYXRpb246IEN1c3RvbWVyRnVsbE9iamVjdCkgPT4gdGhpcy51cGRhdGVDdXN0b21lcihyZWxhdGlvbildLFxyXG4gICAgW1JlbGF0aW9uS2luZC5TdXBwbGllciwgKHJlbGF0aW9uOiBTdXBwbGllckZ1bGxPYmplY3QpID0+IHRoaXMudXBkYXRlU3VwcGxpZXIocmVsYXRpb24pXVxyXG4gIF0pO1xyXG5cclxuICBwcml2YXRlIHJlYWRvbmx5IF9pbnNlcnRNZXRob2RzOiBNYXA8UmVsYXRpb25LaW5kLCBJbnNlcnRSZWxhdGlvbkZuPiA9IG5ldyBNYXA8UmVsYXRpb25LaW5kLCBJbnNlcnRSZWxhdGlvbkZuPihbXHJcbiAgICBbUmVsYXRpb25LaW5kLkN1c3RvbWVyLCAocmVsYXRpb246IEN1c3RvbWVyRnVsbE9iamVjdCkgPT4gdGhpcy5pbnNlcnRDdXN0b21lcihyZWxhdGlvbildLFxyXG4gICAgW1JlbGF0aW9uS2luZC5TdXBwbGllciwgKHJlbGF0aW9uOiBTdXBwbGllckZ1bGxPYmplY3QpID0+IHRoaXMuaW5zZXJ0U3VwcGxpZXIocmVsYXRpb24pXVxyXG4gIF0pXHJcblxyXG4gIHByaXZhdGUgX2JvRmFjdG9yeTogQnVzaW5lc3NPYmplY3RGYWN0b3J5ID0gbmV3IEJ1c2luZXNzT2JqZWN0RmFjdG9yeSgpO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgX2FkYXB0ZXJTZXJ2aWNlOiBSZWxhdGlvbkNvbm5lY3RvclNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9zZWxlY3RNdWx0aXBsZUNhY2hlU2VydmljZTogU2VsZWN0TXVsdGlwbGVDYWNoZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9zZWxlY3RTaW5nbGVDYWNoZVNlcnZpY2U6IFNlbGVjdFNpbmdsZUNhY2hlU2VydmljZSxcclxuICAgIHByaXZhdGUgX3NlbGVjdE11bHRpcGxlUGFyYW1ldGVyaXplZENhY2hlU2VydmljZTogU2VsZWN0TXVsdGlwbGVQYXJhbWV0ZXJpemVkQ2FjaGVTZXJ2aWNlXHJcbiAgKSB7fVxyXG5cclxuICBwdWJsaWMgZ2V0Q3VzdG9tZXJGdWxsT2JqZWN0KHJlbGF0aW9uTm86IG51bWJlcik6IFByb21pc2U8Q3VzdG9tZXJGdWxsT2JqZWN0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5fc2VsZWN0U2luZ2xlQ2FjaGVTZXJ2aWNlLnJlcXVlc3RDYWNoZTxDdXN0b21lckZ1bGxPYmplY3Q+KEN1c3RvbWVyRnVsbE9iamVjdCwgcmVsYXRpb25ObywgKCkgPT4ge1xyXG4gICAgICByZXR1cm4gdGhpcy5fYWRhcHRlclNlcnZpY2UuZ2V0Q3VzdG9tZXJGdWxsT2JqZWN0KHJlbGF0aW9uTm8pXHJcbiAgICB9KS5nZXRWYWx1ZSgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldFN1cHBsaWVyRnVsbE9iamVjdChyZWxhdGlvbk5vOiBudW1iZXIpOiBQcm9taXNlPFN1cHBsaWVyRnVsbE9iamVjdD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3NlbGVjdFNpbmdsZUNhY2hlU2VydmljZS5yZXF1ZXN0Q2FjaGU8U3VwcGxpZXJGdWxsT2JqZWN0PihTdXBwbGllckZ1bGxPYmplY3QsIHJlbGF0aW9uTm8sICgpID0+IHtcclxuICAgICAgcmV0dXJuIHRoaXMuX2FkYXB0ZXJTZXJ2aWNlLmdldFN1cHBsaWVyRnVsbE9iamVjdChyZWxhdGlvbk5vKVxyXG4gICAgfSkuZ2V0VmFsdWUoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBpbnNlcnRBZGRyZXNzKGFkZHJlc3M6IEFkZHJlc3MpOiBQcm9taXNlPEFkZHJlc3M+IHtcclxuICAgIHJldHVybiB0aGlzLl9hZGFwdGVyU2VydmljZS5pbnNlcnRBZGRyZXNzKGFkZHJlc3MpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHVwZGF0ZUFkZHJlc3MoYWRkcmVzczogQWRkcmVzcyk6IFByb21pc2U8QWRkcmVzcz4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2FkYXB0ZXJTZXJ2aWNlLnVwZGF0ZUFkZHJlc3MoYWRkcmVzcyk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaW5zZXJ0Q3VzdG9tZXIocmVsYXRpb246IEN1c3RvbWVyRnVsbE9iamVjdCk6IFByb21pc2U8Q3VzdG9tZXJGdWxsT2JqZWN0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5fYWRhcHRlclNlcnZpY2UuaW5zZXJ0Q3VzdG9tZXIocmVsYXRpb24pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIHVwZGF0ZUN1c3RvbWVyKHJlbGF0aW9uOiBDdXN0b21lckZ1bGxPYmplY3QpOiBQcm9taXNlPEN1c3RvbWVyRnVsbE9iamVjdD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2FkYXB0ZXJTZXJ2aWNlLnVwZGF0ZUN1c3RvbWVyKHJlbGF0aW9uKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBpbnNlcnRTdXBwbGllcihyZWxhdGlvbjogU3VwcGxpZXJGdWxsT2JqZWN0KTogUHJvbWlzZTxTdXBwbGllckZ1bGxPYmplY3Q+IHtcclxuICAgIHJldHVybiB0aGlzLl9hZGFwdGVyU2VydmljZS5pbnNlcnRTdXBwbGllcihyZWxhdGlvbik7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgdXBkYXRlU3VwcGxpZXIocmVsYXRpb246IFN1cHBsaWVyRnVsbE9iamVjdCk6IFByb21pc2U8U3VwcGxpZXJGdWxsT2JqZWN0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5fYWRhcHRlclNlcnZpY2UudXBkYXRlU3VwcGxpZXIocmVsYXRpb24pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldFJlbGF0aW9uTGlzdE9iamVjdHMocmVsYXRpb25SZXF1ZXN0OiBSZWxhdGlvblJlcXVlc3QpOiBQcm9taXNlPFJlbGF0aW9uTGlzdE9iamVjdFtdPiB7XHJcbiAgICAvLyByZXR1cm4gdGhpcy5fc2VsZWN0TXVsdGlwbGVQYXJhbWV0ZXJpemVkQ2FjaGVTZXJ2aWNlLnJlcXVlc3RDYWNoZTxSZWxhdGlvbkxpc3RPYmplY3Q+KFJlbGF0aW9uTGlzdE9iamVjdCwgKHJlbGF0aW9uUmVxdWVzdCkgPT4ge1xyXG4gICAgICByZXR1cm4gdGhpcy5fYWRhcHRlclNlcnZpY2UuZ2V0UmVsYXRpb25MaXN0T2JqZWN0cyhyZWxhdGlvblJlcXVlc3QpO1xyXG4gICAgLy8gfSkuZ2V0VmFsdWUocmVsYXRpb25SZXF1ZXN0KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRSZWxhdGlvbkJ5SWQoaWQ6IG51bWJlcik6IFByb21pc2U8UmVsYXRpb25MaXN0T2JqZWN0W10+IHtcclxuICAgIHJldHVybiB0aGlzLl9zZWxlY3RNdWx0aXBsZVBhcmFtZXRlcml6ZWRDYWNoZVNlcnZpY2UucmVxdWVzdENhY2hlPFJlbGF0aW9uTGlzdE9iamVjdD4oUmVsYXRpb25MaXN0T2JqZWN0LCAoaWQ6IG51bWJlcikgPT4ge1xyXG4gICAgICBjb25zdCByZXF1ZXN0OiBSZWxhdGlvblJlcXVlc3QgPSBuZXcgUmVsYXRpb25SZXF1ZXN0KCk7XHJcbiAgICAgIHJlcXVlc3QucmVsYXRpb25JZCA9IGlkO1xyXG4gICAgICByZXR1cm4gdGhpcy5nZXRSZWxhdGlvbkxpc3RPYmplY3RzKHJlcXVlc3QpO1xyXG4gICAgfSkuZ2V0VmFsdWUoaWQpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldFJlbGF0aW9uTnVtYmVyKHJlbGF0aW9uSWQ6IG51bWJlcik6IFByb21pc2U8c3RyaW5nPiB7XHJcbiAgICByZXR1cm4gdGhpcy5fYWRhcHRlclNlcnZpY2UuZ2V0UmVsYXRpb25OdW1iZXIocmVsYXRpb25JZCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0QnJhbmNoZXMoYnJhbmNoTnI/OiBzdHJpbmcpOiBQcm9taXNlPEJyYW5jaExvdltdPiB7XHJcbiAgICByZXR1cm4gdGhpcy5fc2VsZWN0TXVsdGlwbGVQYXJhbWV0ZXJpemVkQ2FjaGVTZXJ2aWNlLnJlcXVlc3RDYWNoZTxCcmFuY2hMb3Y+KEJyYW5jaExvdiwgKGJyYW5jaE5yPzogc3RyaW5nKSA9PiB7XHJcbiAgICAgIHJldHVybiB0aGlzLl9hZGFwdGVyU2VydmljZS5nZXRCcmFuY2hlcyhicmFuY2hOcilcclxuICAgIH0pLmdldFZhbHVlKGJyYW5jaE5yKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBpbnNlcnRSZWxhdGlvbihyZWxhdGlvbktpbmQ6IFJlbGF0aW9uS2luZCwgcmVsYXRpb246IFJlbGF0aW9uKTogUHJvbWlzZTxSZWxhdGlvbj4ge1xyXG4gICAgY29uc3QgaW5zZXJ0TWV0aG9kOiBJbnNlcnRSZWxhdGlvbkZuID0gdGhpcy5faW5zZXJ0TWV0aG9kcy5nZXQocmVsYXRpb25LaW5kKTtcclxuICAgIGlmIChpbnNlcnRNZXRob2QpIHtcclxuICAgICAgcmV0dXJuIGluc2VydE1ldGhvZC5jYWxsKHRoaXMsIHJlbGF0aW9uKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IHJlc3VsdDogUmVsYXRpb24gPSBuZXcgUmVsYXRpb24oKTtcclxuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShyZXN1bHQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIHVwZGF0ZVJlbGF0aW9uKHJlbGF0aW9uS2luZDogUmVsYXRpb25LaW5kLCByZWxhdGlvbjogUmVsYXRpb24pOiBQcm9taXNlPFJlbGF0aW9uPiB7XHJcbiAgICBjb25zdCB1cGRhdGVNZXRob2Q6IFVwZGF0ZVJlbGF0aW9uRm4gPSB0aGlzLl91cGRhdGVNZXRob2RzLmdldChyZWxhdGlvbktpbmQpO1xyXG4gICAgaWYgKHVwZGF0ZU1ldGhvZCkge1xyXG4gICAgICByZXR1cm4gdXBkYXRlTWV0aG9kLmNhbGwodGhpcywgcmVsYXRpb24pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc3QgcmVzdWx0OiBSZWxhdGlvbiA9IG5ldyBSZWxhdGlvbigpO1xyXG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHJlc3VsdCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbG9ja1JlbGF0aW9uKHJlbGF0aW9uS2luZDogUmVsYXRpb25LaW5kLCByZWxhdGlvbk5yOiBudW1iZXIpOiBQcm9taXNlPFZhbGlkYXRpb25SZXN1bHQ+IHtcclxuICAgIGNvbnN0IGxvY2tNZXRob2Q6IExvY2tGbkhlYWRlciA9IHRoaXMuX2xvY2tNZXRob2RzLmdldChyZWxhdGlvbktpbmQpO1xyXG4gICAgaWYgKGxvY2tNZXRob2QpIHtcclxuICAgICAgcmV0dXJuIGxvY2tNZXRob2QuY2FsbCh0aGlzLCByZWxhdGlvbk5yKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IHJlc3VsdDogVmFsaWRhdGlvblJlc3VsdCA9IG5ldyBWYWxpZGF0aW9uUmVzdWx0KCk7XHJcbiAgICAgIHJlc3VsdC5zdWNjZXNzID0gZmFsc2U7XHJcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUocmVzdWx0KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRSZWxhdGlvbihyZWxhdGlvbktpbmQ6IFJlbGF0aW9uS2luZCwgcmVsYXRpb25OcjogbnVtYmVyKTogUHJvbWlzZTxSZWxhdGlvbkFueVR5cGU+IHtcclxuICAgIGNvbnN0IGdldE1ldGhvZDogR2V0UmVsYXRpb25GbkhlYWRlciA9IHRoaXMuX2dldE1ldGhvZHMuZ2V0KHJlbGF0aW9uS2luZCk7XHJcbiAgICBpZiAoZ2V0TWV0aG9kKSB7XHJcbiAgICAgIHJldHVybiBnZXRNZXRob2QuY2FsbCh0aGlzLCByZWxhdGlvbk5yKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IHJlc3VsdDogVmFsaWRhdGlvblJlc3VsdCA9IG5ldyBWYWxpZGF0aW9uUmVzdWx0KCk7XHJcbiAgICAgIHJlc3VsdC5zdWNjZXNzID0gZmFsc2U7XHJcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUobnVsbCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2xvbmVSZWxhdGlvbihyZWxhdGlvbjogUmVsYXRpb25BbnlUeXBlKTogUmVsYXRpb25BbnlUeXBlIHtcclxuICAgIHN3aXRjaCAocmVsYXRpb24ucmVsYXRpb25UeXBlKSB7XHJcbiAgICAgIGNhc2UgUmVsYXRpb25LaW5kLkN1c3RvbWVyOlxyXG4gICAgICAgIHJldHVybiB0aGlzLl9ib0ZhY3RvcnkuY2xvbmVDbGllbnRCTyhDdXN0b21lckZ1bGxPYmplY3QsIHJlbGF0aW9uKTtcclxuICAgICAgY2FzZSBSZWxhdGlvbktpbmQuU3VwcGxpZXI6XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2JvRmFjdG9yeS5jbG9uZUNsaWVudEJPKFN1cHBsaWVyRnVsbE9iamVjdCwgcmVsYXRpb24pO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHJldHVybiB0aGlzLl9ib0ZhY3RvcnkuY2xvbmVDbGllbnRCTyhDdXN0b21lckZ1bGxPYmplY3QsIHJlbGF0aW9uKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBjb21taXQoKTogUHJvbWlzZTxib29sZWFuPiB7XHJcbiAgICByZXR1cm4gdGhpcy5fYWRhcHRlclNlcnZpY2UuY29tbWl0KCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9sb2NrQ3VzdG9tZXJGdWxsT2JqZWN0KHJlbGF0aW9uTnI6IG51bWJlcik6IFByb21pc2U8VmFsaWRhdGlvblJlc3VsdD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2FkYXB0ZXJTZXJ2aWNlLmxvY2tDdXN0b21lckZ1bGxPYmplY3QocmVsYXRpb25Ocik7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9sb2NrU3VwcGxpZXJGdWxsT2JqZWN0KHJlbGF0aW9uTnI6IG51bWJlcik6IFByb21pc2U8VmFsaWRhdGlvblJlc3VsdD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2FkYXB0ZXJTZXJ2aWNlLmxvY2tTdXBwbGllckZ1bGxPYmplY3QocmVsYXRpb25Ocik7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9sb2NrRW1wbG95ZWVGdWxsT2JqZWN0KHJlbGF0aW9uTnI6IG51bWJlcik6IFByb21pc2U8VmFsaWRhdGlvblJlc3VsdD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2FkYXB0ZXJTZXJ2aWNlLmxvY2tFbXBsb3llZUZ1bGxPYmplY3QocmVsYXRpb25Ocik7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9sb2NrQnJhbmNoRnVsbE9iamVjdChyZWxhdGlvbk5yOiBudW1iZXIpOiBQcm9taXNlPFZhbGlkYXRpb25SZXN1bHQ+IHtcclxuICAgIHJldHVybiB0aGlzLl9hZGFwdGVyU2VydmljZS5sb2NrQnJhbmNoRnVsbE9iamVjdChyZWxhdGlvbk5yKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2xvY2tDb21wYW55RnVsbE9iamVjdChyZWxhdGlvbk5yOiBudW1iZXIpOiBQcm9taXNlPFZhbGlkYXRpb25SZXN1bHQ+IHtcclxuICAgIHJldHVybiB0aGlzLl9hZGFwdGVyU2VydmljZS5sb2NrQ29tcGFueUZ1bGxPYmplY3QocmVsYXRpb25Ocik7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9sb2NrQ29udGFjdFBlcnNvbihyZWxhdGlvbk5yOiBudW1iZXIpOiBQcm9taXNlPFZhbGlkYXRpb25SZXN1bHQ+IHtcclxuICAgIHJldHVybiB0aGlzLl9hZGFwdGVyU2VydmljZS5sb2NrQ29udGFjdFBlcnNvbihyZWxhdGlvbk5yKTtcclxuICB9XHJcbn1cclxuIl19
|