@colijnit/transaction 12.1.3 → 12.1.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/app/app.component.scss +39 -0
- package/app/component/checkout/checkout/checkout.component.d.ts +2 -0
- package/app/component/checkout/checkout/checkout.component.scss +137 -0
- package/app/component/checkout/checkout-login/checkout-login.component.scss +35 -0
- package/app/component/checkout/checkout-overview/checkout-overview.component.scss +0 -0
- package/app/component/checkout/checkout-overview-block/checkout-overview-block.component.scss +0 -0
- package/app/component/checkout/checkout-overview-delivery-address/checkout-overview-delivery-address.component.scss +0 -0
- package/app/component/checkout/checkout-overview-delivery-edit/checkout-overview-delivery-edit.component.scss +3 -0
- package/app/component/checkout/checkout-overview-relation-address/checkout-overview-relation-address.component.d.ts +1 -0
- package/app/component/checkout/checkout-overview-relation-address/style/_layout.scss +19 -0
- package/app/component/checkout/checkout-overview-relation-address/style/_material-definition.scss +0 -0
- package/app/component/checkout/checkout-overview-relation-address/style/_theme.scss +7 -0
- package/app/component/checkout/checkout-overview-relation-address/style/material.scss +4 -0
- package/app/component/checkout/checkout-overview-relation-edit/checkout-overview-relation-edit.component.d.ts +1 -2
- package/app/component/checkout/checkout-overview-relation-edit/style/_layout.scss +92 -0
- package/app/component/checkout/checkout-overview-relation-edit/style/_material-definition.scss +15 -0
- package/app/component/checkout/checkout-overview-relation-edit/style/_theme.scss +9 -0
- package/app/component/checkout/checkout-overview-relation-edit/style/material.scss +5 -0
- package/app/component/checkout/checkout-relation-suggestions-list/checkout-relation-suggestions-list.component.d.ts +2 -3
- package/app/component/checkout/checkout-relation-suggestions-list/style/_layout.scss +7 -0
- package/app/component/checkout/checkout-relation-suggestions-list/style/_material-definition.scss +0 -0
- package/app/component/checkout/checkout-relation-suggestions-list/style/_theme.scss +6 -0
- package/app/component/checkout/checkout-relation-suggestions-list/style/material.scss +5 -0
- package/app/component/checkout/checkout-relation-suggestions-list-item/checkout-relation-suggestions-list-item.component.d.ts +5 -9
- package/app/component/checkout/checkout-relation-suggestions-list-item/style/_layout.scss +34 -0
- package/app/component/checkout/checkout-relation-suggestions-list-item/style/_material-definition.scss +8 -0
- package/app/component/checkout/checkout-relation-suggestions-list-item/style/_theme.scss +6 -0
- package/app/component/checkout/checkout-relation-suggestions-list-item/style/material.scss +4 -0
- package/app/component/checkout/{retail-transaction-checkout/retail-transaction-checkout.component.d.ts → checkout-transaction/checkout-transaction.component.d.ts} +4 -1
- package/app/component/checkout/checkout-transaction/checkout-transaction.component.scss +11 -0
- package/app/component/checkout/ione-checkout.component.d.ts +3 -3
- package/app/component/core/base/default-ok-cancel-buttons.component.d.ts +2 -2
- package/app/component/core/base/style/_layout.scss +7 -0
- package/app/component/core/base/style/_material-definition.scss +0 -0
- package/app/component/core/base/style/_theme.scss +6 -0
- package/app/component/core/base/style/material.scss +4 -0
- package/app/component/core/characteristic-answer/characteristic-answer.component.scss +18 -0
- package/app/component/{common → core}/icon/icon.component.d.ts +0 -0
- package/app/component/core/icon/icon.component.scss +85 -0
- package/app/component/{common → core}/image-display/image-display.component.d.ts +1 -0
- package/app/component/core/image-display/style/_layout.scss +39 -0
- package/app/component/core/image-display/style/_material-definition.scss +0 -0
- package/app/component/core/image-display/style/_theme.scss +6 -0
- package/app/component/core/image-display/style/material.scss +4 -0
- package/app/component/{common → core}/no-image-display/no-image-display.component.d.ts +0 -0
- package/app/component/core/no-image-display/no-image-display.component.scss +0 -0
- package/app/component/core/relation/customer-groups.component.d.ts +13 -0
- package/app/component/core/stock-status-indicator/stock-status-indicator.component.scss +45 -0
- package/app/component/service-order/service-order.component.d.ts +4 -5
- package/app/component/service-order/service-order.component.scss +152 -0
- package/app/component/service-order/summary/transaction-delivery-summary.component.scss +20 -0
- package/app/component/service-order/summary/transaction-summary-block.component.scss +107 -0
- package/app/component/service-order/transaction-article-text/transaction-article-text.component.d.ts +22 -13
- package/app/component/service-order/transaction-article-text/transaction-article-text.component.scss +6 -0
- package/app/component/service-order/transaction-article-text-overview/transaction-article-text-overview.component.d.ts +23 -0
- package/app/component/service-order/transaction-article-text-overview/transaction-article-text-overview.component.scss +0 -0
- package/app/component/service-order/transaction-edit-article-text/transaction-edit-article-text.component.d.ts +19 -0
- package/app/component/service-order/transaction-edit-article-text/transaction-edit-article-text.component.scss +0 -0
- package/app/component/service-order/transaction-header-block/transaction-header-block.component.scss +65 -0
- package/app/component/service-order/transaction-manager/transaction-manager.component.d.ts +3 -2
- package/app/component/service-order/transaction-manager/transaction-manager.component.scss +52 -0
- package/app/component/service-order/transaction-order-line-view/transaction-order-line-view.component.scss +88 -0
- package/app/component/service-order/transaction-order-lines/transaction-order-lines.component.scss +83 -0
- package/app/component/service-order/transaction-order-totals/transaction-order-totals.component.scss +24 -0
- package/app/component/service-order/transaction-relation/transaction-relation-edit.component.scss +24 -0
- package/app/component/service-order/transaction-sidebar/transaction-line-accordion.component.scss +0 -0
- package/app/component/service-order/transaction-sidebar/transaction-sidebar-right.component.scss +17 -0
- package/app/component/{core → service-order}/warehouse/warehouse.component.d.ts +0 -0
- package/app/component/service-order/warehouse/warehouse.component.scss +52 -0
- package/app/component/shopping-cart/ione-shopping-cart.component.d.ts +1 -1
- package/app/component/shopping-cart/shopping-cart/shopping-cart.component.scss +79 -0
- package/app/component/shopping-cart/shopping-cart-line/shopping-cart-line.component.scss +107 -0
- package/app/component/shopping-cart/shopping-cart-manager/shopping-cart-manager.component.d.ts +1 -1
- package/app/component/shopping-cart/shopping-cart-manager/shopping-cart-manager.component.scss +52 -0
- package/{enum → app/enum}/position-grid-row.enum.d.ts +0 -0
- package/app/model/standard-text.d.ts +5 -0
- package/app/model/transaction-add-text-line-request.d.ts +9 -0
- package/app/service/dictionary.service.d.ts +1 -0
- package/app/service/ione-connector-adapter.service.d.ts +8 -2
- package/app/service/options.service.d.ts +2 -3
- package/app/service/transaction-event.service.d.ts +1 -1
- package/app/service/transaction.service.d.ts +8 -2
- package/bundles/colijnit-transaction.umd.js +970 -608
- package/bundles/colijnit-transaction.umd.js.map +1 -1
- package/colijnit-transaction.d.ts +57 -54
- package/colijnit-transaction.metadata.json +1 -1
- package/esm2015/app/component/checkout/checkout/checkout.component.js +13 -5
- package/esm2015/app/component/checkout/checkout-overview/checkout-overview.component.js +4 -4
- package/esm2015/app/component/checkout/checkout-overview-block/checkout-overview-block.component.js +1 -1
- package/esm2015/app/component/checkout/checkout-overview-delivery-address/checkout-overview-delivery-address.component.js +1 -1
- package/esm2015/app/component/checkout/checkout-overview-delivery-edit/checkout-overview-delivery-edit.component.js +4 -4
- package/esm2015/app/component/checkout/checkout-overview-relation-address/checkout-overview-relation-address.component.js +37 -49
- package/esm2015/app/component/checkout/checkout-overview-relation-edit/checkout-overview-relation-edit.component.js +140 -159
- package/esm2015/app/component/checkout/checkout-relation-suggestions-list/checkout-relation-suggestions-list.component.js +16 -19
- package/esm2015/app/component/checkout/checkout-relation-suggestions-list-item/checkout-relation-suggestions-list-item.component.js +17 -39
- package/esm2015/app/component/checkout/checkout-transaction/checkout-transaction.component.js +55 -0
- package/esm2015/app/component/checkout/ione-checkout.component.js +6 -6
- package/esm2015/app/component/checkout/ione-checkout.module.js +9 -7
- package/esm2015/app/component/core/base/default-ok-cancel-buttons.component.js +13 -11
- package/esm2015/app/component/core/base/transaction-base.component.js +1 -1
- package/esm2015/app/component/core/characteristic-answer/characteristic-answer.component.js +1 -1
- package/esm2015/app/component/core/core.module.js +12 -7
- package/esm2015/app/component/core/icon/icon.component.js +32 -0
- package/esm2015/app/component/core/image-display/image-display.component.js +45 -0
- package/esm2015/app/component/core/no-image-display/no-image-display.component.js +26 -0
- package/esm2015/app/component/core/relation/customer-groups.component.js +40 -0
- package/esm2015/app/component/core/stock-status-indicator/stock-status-indicator.component.js +1 -1
- package/esm2015/app/component/service-order/ione-service-order-module.js +11 -5
- package/esm2015/app/component/service-order/service-order.component.js +23 -19
- package/esm2015/app/component/service-order/summary/transaction-delivery-summary.component.js +1 -1
- package/esm2015/app/component/service-order/summary/transaction-summary-block.component.js +3 -3
- package/esm2015/app/component/service-order/transaction-article-text/transaction-article-text.component.js +107 -161
- package/esm2015/app/component/service-order/transaction-article-text-overview/transaction-article-text-overview.component.js +105 -0
- package/esm2015/app/component/service-order/transaction-edit-article-text/transaction-edit-article-text.component.js +73 -0
- package/esm2015/app/component/service-order/transaction-header-block/transaction-header-block.component.js +1 -1
- package/esm2015/app/component/service-order/transaction-manager/transaction-manager.component.js +12 -3
- package/esm2015/app/component/service-order/transaction-order-line-view/transaction-order-line-view.component.js +3 -3
- package/esm2015/app/component/service-order/transaction-order-lines/transaction-order-lines.component.js +3 -3
- package/esm2015/app/component/service-order/transaction-order-totals/transaction-order-totals.component.js +1 -1
- package/esm2015/app/component/service-order/transaction-relation/transaction-relation-edit.component.js +3 -3
- package/esm2015/app/component/service-order/warehouse/warehouse.component.js +133 -0
- package/esm2015/app/component/shopping-cart/ione-shopping-cart.component.js +2 -2
- package/esm2015/app/component/shopping-cart/shopping-cart/shopping-cart.component.js +3 -3
- package/esm2015/app/component/shopping-cart/shopping-cart-line/shopping-cart-line.component.js +3 -3
- package/esm2015/app/component/shopping-cart/shopping-cart-manager/shopping-cart-manager.component.js +4 -4
- package/esm2015/app/enum/position-grid-row.enum.js +6 -0
- package/esm2015/app/model/standard-text.js +3 -0
- package/esm2015/app/model/transaction-add-text-line-request.js +11 -0
- package/esm2015/app/service/dictionary.service.js +20 -9
- package/esm2015/app/service/ione-connector-adapter.service.js +45 -2
- package/esm2015/app/service/options.service.js +2 -3
- package/esm2015/app/service/transaction-event.service.js +1 -1
- package/esm2015/app/service/transaction.service.js +52 -14
- package/esm2015/assets/dictionary/text.properties.js +9 -1
- package/esm2015/colijnit-transaction.js +58 -55
- package/fesm2015/colijnit-transaction.js +1105 -869
- package/fesm2015/colijnit-transaction.js.map +1 -1
- package/package.json +4 -4
- package/style/_mixin.scss +9 -0
- package/style/_variables.scss +75 -0
- package/style/styles.scss +367 -0
- package/styles.scss +11 -0
- package/app/enum/direction.enum.d.ts +0 -6
- package/css/styles.css +0 -38
- package/esm2015/app/component/checkout/retail-transaction-checkout/retail-transaction-checkout.component.js +0 -53
- package/esm2015/app/component/common/icon/icon.component.js +0 -32
- package/esm2015/app/component/common/image-display/image-display.component.js +0 -41
- package/esm2015/app/component/common/no-image-display/no-image-display.component.js +0 -26
- package/esm2015/app/component/core/warehouse/warehouse.component.js +0 -133
- package/esm2015/app/enum/direction.enum.js +0 -9
- package/esm2015/enum/position-grid-row.enum.js +0 -6
package/esm2015/app/component/shopping-cart/shopping-cart-manager/shopping-cart-manager.component.js
CHANGED
|
@@ -9,7 +9,7 @@ import { TransactionLineType } from "@colijnit/transactionapi/build/enum/transac
|
|
|
9
9
|
import { PromptService } from "@colijnit/corecomponents_v12";
|
|
10
10
|
import { PendingReasonType } from "@colijnit/transactionapi/build/enum/pending-reason-type.enum";
|
|
11
11
|
import { DictionaryService } from "../../../service/dictionary.service";
|
|
12
|
-
import { PositionGridRow } from "
|
|
12
|
+
import { PositionGridRow } from "../../../enum/position-grid-row.enum";
|
|
13
13
|
export class ShoppingCartManagerComponent {
|
|
14
14
|
constructor(service, transactionEvents, promptService, _dictionaryService) {
|
|
15
15
|
this.service = service;
|
|
@@ -97,7 +97,7 @@ export class ShoppingCartManagerComponent {
|
|
|
97
97
|
}
|
|
98
98
|
addTextLineToCartAt(text, lineNr, beforeOrAfter) {
|
|
99
99
|
return __awaiter(this, void 0, void 0, function* () {
|
|
100
|
-
yield this.service.
|
|
100
|
+
yield this.service.addTextLine(0, text, 0, false, 0, beforeOrAfter === PositionGridRow.Before ? lineNr : undefined, beforeOrAfter === PositionGridRow.After ? lineNr : undefined)
|
|
101
101
|
.then((value) => {
|
|
102
102
|
this._handleLineOperationStatus();
|
|
103
103
|
}, (error) => this.promptService.showError(error));
|
|
@@ -431,7 +431,7 @@ ShoppingCartManagerComponent.decorators = [
|
|
|
431
431
|
(okClick)="handleCharacteristicAnswerOkClick($event)"
|
|
432
432
|
></characteristic-answer>
|
|
433
433
|
`,
|
|
434
|
-
styles: ["html,body{height:100%}body{margin:0;font-family:Roboto,\"Helvetica Neue\",sans-serif}.flex-center,.warehouse-line-container{display:flex}.flex-center,.warehouse-line-container{flex-direction:row}.flex-center{align-items:center!important;justify-content:center!important}::ng-deep #warehouseDialog ::ng-deep .form-content .message-field,.commission-fields{margin-left:11px}.triangle{border-radius:3px}.full-width{width:100%}.flex-center{margin:10px 0}::ng-deep #warehouseDialog{align-items:center;max-height:100%}::ng-deep #warehouseDialog ::ng-deep co-form{height:100%;width:500px}::ng-deep #warehouseDialog ::ng-deep .form-content{height:calc(100% - 80px);width:100%}::ng-deep #warehouseDialog ::ng-deep .form-content .message-field{height:20px;word-wrap:break-word;white-space:normal}co-button:not(:last-child){margin-right:10px}.commission-fields{justify-content:space-between;margin:10px 0}.warehouse-description-item{width:15rem}.warehouse-nr-item{width:5rem}co-input-number-picker co-button{max-width:20px}\n"]
|
|
434
|
+
styles: ["@font-face{font-family:iOneOpenSans;font-style:normal;font-weight:400;src:url(data:application/font-woff2;charset=utf-8;base64,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) format(\"woff2\")}@font-face{font-family:iOneOpenSans;font-style:normal;font-weight:700;src:url(data:application/font-woff2;charset=utf-8;base64,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) format(\"woff2\")}html,body{height:100%}body{margin:0;font-family:Roboto,\"Helvetica Neue\",sans-serif}.warehouse-line-container,.flex-center{display:flex}.warehouse-line-container,.flex-center{flex-direction:row}.flex-center{align-items:center!important;justify-content:center!important}.commission-fields,::ng-deep #warehouseDialog ::ng-deep .form-content .message-field{margin-left:11px}.triangle{border-radius:3px}.full-width{width:100%}.flex-center{margin:10px 0}::ng-deep #warehouseDialog{align-items:center;max-height:100%}::ng-deep #warehouseDialog ::ng-deep co-form{height:100%;width:500px}::ng-deep #warehouseDialog ::ng-deep .form-content{height:calc(100% - 80px);width:100%}::ng-deep #warehouseDialog ::ng-deep .form-content .message-field{height:20px;word-wrap:break-word;white-space:normal}co-button:not(:last-child){margin-right:10px}.commission-fields{justify-content:space-between;margin:10px 0}.warehouse-description-item{width:15rem}.warehouse-nr-item{width:5rem}co-input-number-picker co-button{max-width:20px}\n"]
|
|
435
435
|
},] }
|
|
436
436
|
];
|
|
437
437
|
ShoppingCartManagerComponent.ctorParameters = () => [
|
|
@@ -448,4 +448,4 @@ ShoppingCartManagerComponent.propDecorators = {
|
|
|
448
448
|
openCart: [{ type: Output }],
|
|
449
449
|
articleAdded: [{ type: Output }]
|
|
450
450
|
};
|
|
451
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hvcHBpbmctY2FydC1tYW5hZ2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50L3Nob3BwaW5nLWNhcnQvc2hvcHBpbmctY2FydC1tYW5hZ2VyL3Nob3BwaW5nLWNhcnQtbWFuYWdlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUE2QixNQUFNLEVBQUUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3BHLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBQ3hFLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxtREFBbUQsQ0FBQztBQUM5RSxPQUFPLEVBQWUsVUFBVSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQzlDLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLDRDQUE0QyxDQUFDO0FBR25GLE9BQU8sRUFBQywrQkFBK0IsRUFBQyxNQUFNLHdFQUF3RSxDQUFDO0FBQ3ZILE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLGdFQUFnRSxDQUFDO0FBSW5HLE9BQU8sRUFBcUMsYUFBYSxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDL0YsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sOERBQThELENBQUM7QUFFL0YsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFHdEUsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHlDQUF5QyxDQUFDO0FBcUR4RSxNQUFNLE9BQU8sNEJBQTRCO0lBK0R2QyxZQUNTLE9BQTJCLEVBQzNCLGlCQUEwQyxFQUMxQyxhQUE0QixFQUM1QixrQkFBcUM7UUFIckMsWUFBTyxHQUFQLE9BQU8sQ0FBb0I7UUFDM0Isc0JBQWlCLEdBQWpCLGlCQUFpQixDQUF5QjtRQUMxQyxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM1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QU8sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE1BQU0sS0FBSyxNQUFNLENBQUMsQ0FBQztRQUM1SCxPQUFPLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDakMsQ0FBQztJQUVPLDhCQUE4QixDQUFDLEtBQWE7UUFDbEQsSUFBSSxLQUFLLElBQUksQ0FBQyxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUU7WUFDMUQsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQTtTQUN4QztJQUNILENBQUM7OztZQW5mRixTQUFTLFNBQUM7Z0JBQ1QsOERBQThEO2dCQUM5RCxRQUFRLEVBQUUsdUJBQXVCO2dCQUNqQyxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTZDVDs7YUFFRjs7O1lBckVPLGtCQUFrQjtZQUdsQix1QkFBdUI7WUFRYSxhQUFhO1lBR2pELGlCQUFpQjs7OzhCQXlEdEIsU0FBUyxTQUFDLGlCQUFpQjs0QkFHM0IsU0FBUyxTQUFDLGVBQWU7bUNBR3pCLFNBQVMsU0FBQyxzQkFBc0I7MkJBR2hDLE1BQU07dUJBR04sTUFBTTsyQkFHTixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5qZWN0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGR9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQge1RyYW5zYWN0aW9uU2VydmljZX0gZnJvbSBcIi4uLy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24uc2VydmljZVwiO1xuaW1wb3J0IHtOdW1iZXJVdGlsc30gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC91dGlscy9udW1iZXItdXRpbHNcIjtcbmltcG9ydCB7U3Vic2NyaXB0aW9uLCB0aHJvd0Vycm9yfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHtUcmFuc2FjdGlvbkV2ZW50U2VydmljZX0gZnJvbSBcIi4uLy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24tZXZlbnQuc2VydmljZVwiO1xuaW1wb3J0IHtDb21taXNzaW9uQ29kZVR5cGV9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvZW51bS9yZWZjb2RlL2NvbW1pc3Npb24tY29kZS10eXBlLmVudW1cIjtcbmltcG9ydCB7VHJhbnNhY3Rpb25MaW5lSW5mb30gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC90cmFuc2FjdGlvbi1saW5lLWluZm8uYm9cIjtcbmltcG9ydCB7UmVzb2x2ZVBlbmRpbmdMaW5lUmVhc29uUmVxdWVzdH0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9yZXNvbHZlLXBlbmRpbmctcmVhc29uLXJlcXVlc3QuYm9cIjtcbmltcG9ydCB7VHJhbnNhY3Rpb25MaW5lVHlwZX0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9lbnVtL3RyYW5zYWN0aW9uLWxpbmUtdHlwZS5lbnVtXCI7XG5pbXBvcnQge0NvRG9tYWluVmFsdWV9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvY28tZG9tYWluLXZhbHVlLmJvXCI7XG5pbXBvcnQge1RyYW5zYWN0aW9uQXJ0aWNsZVdhcmVob3VzZX0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC90cmFuc2FjdGlvbi1hcnRpY2xlLXdhcmVob3VzZS5ib1wiO1xuaW1wb3J0IHtMaW5lT3BlcmF0aW9uU3RhdHVzfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL2xpbmUtb3BlcmF0aW9uLXN0YXR1cy5ib1wiO1xuaW1wb3J0IHtDb0RpYWxvZ0NvbXBvbmVudCwgQ29HcmlkQ29tcG9uZW50LCBQcm9tcHRTZXJ2aWNlfSBmcm9tIFwiQGNvbGlqbml0L2NvcmVjb21wb25lbnRzX3YxMlwiO1xuaW1wb3J0IHtQZW5kaW5nUmVhc29uVHlwZX0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9lbnVtL3BlbmRpbmctcmVhc29uLXR5cGUuZW51bVwiO1xuaW1wb3J0IHtBcnRpY2xlRnVsbE9iamVjdH0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9hcnRpY2xlLWZ1bGwtb2JqZWN0XCI7XG5pbXBvcnQge0RpY3Rpb25hcnlTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vLi4vc2VydmljZS9kaWN0aW9uYXJ5LnNlcnZpY2VcIjtcbmltcG9ydCB7TGluZU9wZXJhdGlvblJlc3BvbnNlfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL2xpbmUtb3BlcmF0aW9uLXJlc3BvbnNlLmJvXCI7XG5pbXBvcnQge0NoYXJhY3RlcmlzdGljQW5zd2VyQ29tcG9uZW50fSBmcm9tIFwiLi4vLi4vY29yZS9jaGFyYWN0ZXJpc3RpYy1hbnN3ZXIvY2hhcmFjdGVyaXN0aWMtYW5zd2VyLmNvbXBvbmVudFwiO1xuaW1wb3J0IHtQb3NpdGlvbkdyaWRSb3d9IGZyb20gXCIuLi8uLi8uLi8uLi9lbnVtL3Bvc2l0aW9uLWdyaWQtcm93LmVudW1cIjtcblxuQENvbXBvbmVudCh7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yXG4gIHNlbGVjdG9yOiBcInNob3BwaW5nLWNhcnQtbWFuYWdlclwiLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxjby1kaWFsb2cgI3dhcmVob3VzZURpYWxvZ1xuICAgICAgICAgICAgICAgKGNsb3NlQ2xpY2spPVwiaGlkZSgpXCJcbiAgICAgICAgICAgICAgIChvdmVybGF5Q2xpY2spPVwib25TdG9ja01hbmFnZXJDYW5jZWxDbGljaygpXCJcbiAgICAgID5cbiAgICAgIDxuZy1jb250YWluZXIgaGVhZGVyPnt7ICdTVE9DS19OT1RJRklDQVRJT04nIHwgbG9jYWxpemUgfX08L25nLWNvbnRhaW5lcj5cblxuICAgICAgPG5nLWNvbnRhaW5lciBjb250ZW50PlxuICAgICAgICA8Y28tZm9ybT5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jb250ZW50XCI+XG4gICAgICAgICAgICA8c3BhbiAqbmdJZj1cIm1lc3NhZ2VcIiBjbGFzcz1cIm1lc3NhZ2UtZmllbGRcIiBbdGV4dENvbnRlbnRdPVwibWVzc2FnZSB8IGxvY2FsaXplXCI+PC9zcGFuPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29tbWlzc2lvbi1maWVsZHNcIiBmeExheW91dD1cInJvd1wiPlxuICAgICAgICAgICAgICAgIDxjby1pbnB1dC1udW1iZXItcGlja2VyIGNsYXNzPVwiaG9yaXpvbnRhbFwiIFsobW9kZWwpXT1cImFtb3VudFwiIFttaW5dPVwiMFwiIGRlY2ltYWxzPVwiM1wiPjwvY28taW5wdXQtbnVtYmVyLXBpY2tlcj5cbiAgICAgICAgICAgICAgICA8Y28taW5wdXQtY29tYm8tYm94IFsobW9kZWwpXT1cImNvbW1pc3Npb25Db2RlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NvdXJjZV09XCJjb21taXNzaW9uQ29kZXNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZmllbGRzXT1cImNvbW1pc3Npb25GaWVsZHNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ0NPTU1JU1NJT05fQ09ERScgfCBsb2NhbGl6ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyZXF1aXJlZF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICA+PC9jby1pbnB1dC1jb21iby1ib3g+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgIDxjby1ncmlkICN3YXJlaG91c2VHcmlkXG4gICAgICAgICAgICAgICAgICBbZGF0YV09XCJ0cmFuc2FjdGlvbkFydGljbGVXYXJlaG91c2VzXCJcbiAgICAgICAgICAgICAgICAgIFtjb2x1bW5zXT1cImNvbHVtbnNcIlxuICAgICAgICAgICAgICAgICAgW3BhZ2luZ0VuYWJsZWRdPVwiJ3RydWUnXCJcbiAgICAgICAgICAgICAgICAgIFttYXhOdW1iZXJPZlJvd3NdPVwiJzIwJ1wiXG4gICAgICAgICAgICAgICAgICAocm93c1NlbGVjdGVkKT1cImhhbmRsZVJvd3NTZWxlY3RlZCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICA+PC9jby1ncmlkPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9jby1mb3JtPlxuICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDxuZy1jb250YWluZXIgZm9vdGVyPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4LWNlbnRlclwiPlxuICAgICAgICAgICAgPGNvLWJ1dHRvbiBbbGFiZWxdPVwiJ09LJyB8IGxvY2FsaXplXCIgKGNsaWNrKT1cIm9uU3RvY2tNYW5hZ2VyT2tDbGljaygpXCI+PC9jby1idXR0b24+XG4gICAgICAgICAgICA8Y28tYnV0dG9uIFtsYWJlbF09XCInQ0FOQ0VMJyB8IGxvY2FsaXplXCIgKGNsaWNrKT1cIm9uU3RvY2tNYW5hZ2VyQ2FuY2VsQ2xpY2soKVwiPjwvY28tYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9jby1kaWFsb2c+XG5cbiAgICA8Y2hhcmFjdGVyaXN0aWMtYW5zd2VyXG4gICAgICAjY2hhcmFjdGVyaXN0aWNBbnN3ZXJcbiAgICAgIChva0NsaWNrKT1cImhhbmRsZUNoYXJhY3RlcmlzdGljQW5zd2VyT2tDbGljaygkZXZlbnQpXCJcbiAgICA+PC9jaGFyYWN0ZXJpc3RpYy1hbnN3ZXI+XG4gIGAsXG4gIHN0eWxlVXJsczogW1wiLi9zaG9wcGluZy1jYXJ0LW1hbmFnZXIuY29tcG9uZW50LnNjc3NcIl1cbn0pXG5leHBvcnQgY2xhc3MgU2hvcHBpbmdDYXJ0TWFuYWdlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgQFZpZXdDaGlsZChcIndhcmVob3VzZURpYWxvZ1wiKVxuICBwdWJsaWMgd2FyZWhvdXNlRGlhbG9nOiBDb0RpYWxvZ0NvbXBvbmVudDtcblxuICBAVmlld0NoaWxkKFwid2FyZWhvdXNlR3JpZFwiKVxuICBwdWJsaWMgd2FyZWhvdXNlR3JpZDogQ29HcmlkQ29tcG9uZW50PGFueT47XG5cbiAgQFZpZXdDaGlsZChcImNoYXJhY3RlcmlzdGljQW5zd2VyXCIpXG4gIHB1YmxpYyBjaGFyYWN0ZXJpc3RpY0Fuc3dlcjogQ2hhcmFjdGVyaXN0aWNBbnN3ZXJDb21wb25lbnQ7XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyByZWFkb25seSBsaW5lc0NoYW5nZWQ6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICBAT3V0cHV0KClcbiAgcHVibGljIHJlYWRvbmx5IG9wZW5DYXJ0OiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyByZWFkb25seSBhcnRpY2xlQWRkZWQ6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICBwdWJsaWMgZ2V0IGFtb3VudE9mTGluZXMoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gTnVtYmVyVXRpbHMuTnJPckRlZmF1bHQodGhpcy5zZXJ2aWNlLmFydGljbGVBbW91bnQsIDApO1xuICB9XG5cbiAgcHVibGljIGdldCBzaG93Q2hhcmFjdGVyaXN0aWNEaWFsb2coKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX3Nob3dDaGFyYWN0ZXJpc3RpYztcbiAgfVxuXG4gIHB1YmxpYyBzZXQgc2hvd0NoYXJhY3RlcmlzdGljRGlhbG9nKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fc2hvd0NoYXJhY3RlcmlzdGljID0gdmFsdWU7XG4gIH1cblxuICBwdWJsaWMgYnJhbmNoTnI6IHN0cmluZztcbiAgcHVibGljIG5ld0FydGljbGVOcjogc3RyaW5nO1xuICBwdWJsaWMgbmV3QXJ0aWNsZTogQXJ0aWNsZUZ1bGxPYmplY3Q7XG4gIHB1YmxpYyBzZWxlY3RlZFdhcmVob3VzZU5yOiBudW1iZXI7XG4gIHB1YmxpYyBhbW91bnQ6IG51bWJlcjtcbiAgcHVibGljIGlzUmV0dXJuOiBib29sZWFuID0gZmFsc2U7XG5cbiAgcHVibGljIHdhaXRGb3JMaW5lc0NoYW5nZWRUb09wZW5DYXJ0OiBib29sZWFuID0gZmFsc2U7XG4gIHB1YmxpYyBtZXNzYWdlOiBzdHJpbmcgPSBcIkNIRUNLX1dBUkVIT1VTRV9BTkRfQ09NTUlTU0lPTkNPREVcIjtcblxuICBwdWJsaWMgY29tbWlzc2lvbkNvZGU6IENvbW1pc3Npb25Db2RlVHlwZTtcbiAgcHVibGljIGNvbW1pc3Npb25Db2RlczogQ29Eb21haW5WYWx1ZVtdID0gW107XG4gIHB1YmxpYyBjb21taXNzaW9uRmllbGRzOiBPYmplY3QgPSB7IHRleHQ6IFwiZGVzY3JpcHRpb25cIiwgdmFsdWU6IFwiY29kZVwiIH07XG5cbiAgcHVibGljIHRyYW5zYWN0aW9uQXJ0aWNsZVdhcmVob3VzZXM6IFRyYW5zYWN0aW9uQXJ0aWNsZVdhcmVob3VzZVtdID0gW107XG4gIHB1YmxpYyB0cmFuc2FjdGlvbkFydGljbGVXYXJlaG91c2VGaWVsZHM6IE9iamVjdCA9IHsgdGV4dDogXCJ3YXJlaG91c2VEZXNjXCIsIHZhbHVlOiBcIndhcmVob3VzZU5yXCIgfTtcbiAgcHVibGljIGNvbHVtbnM6IGFueVtdID0gW107XG5cbiAgcHVibGljIGN1cnJlbnRQZW5kaW5nTGluZTogVHJhbnNhY3Rpb25MaW5lSW5mbztcbiAgcHVibGljIGN1cnJlbnRSZWFzb246IFJlc29sdmVQZW5kaW5nTGluZVJlYXNvblJlcXVlc3Q7XG4gIHB1YmxpYyBlZGl0aW5nTGluZTogVHJhbnNhY3Rpb25MaW5lSW5mbztcblxuICBwdWJsaWMgZGlhbG9nUHJvbXB0SGVhZGVyOiBzdHJpbmcgPSBcIlwiO1xuXG4gIHB1YmxpYyByb290RWxlbWVudDogSFRNTEVsZW1lbnQgPSBudWxsO1xuXG4gIHByaXZhdGUgX3N1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbltdID0gW107XG4gIHByaXZhdGUgY3VycmVudE9wZXJhdGlvblN0YXR1czogTGluZU9wZXJhdGlvblN0YXR1cztcbiAgcHJpdmF0ZSBfaW5PdXRDb2xsZWN0aW9uOiBDb0RvbWFpblZhbHVlW10gPSBbXTtcbiAgcHJpdmF0ZSBfb2tPckNhbmNlbENsaWNrOiBib29sZWFuID0gZmFsc2U7XG4gIHByaXZhdGUgX3Nob3dDaGFyYWN0ZXJpc3RpYzogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBzZXJ2aWNlOiBUcmFuc2FjdGlvblNlcnZpY2UsXG4gICAgcHVibGljIHRyYW5zYWN0aW9uRXZlbnRzOiBUcmFuc2FjdGlvbkV2ZW50U2VydmljZSxcbiAgICBwdWJsaWMgcHJvbXB0U2VydmljZTogUHJvbXB0U2VydmljZSxcbiAgICBwdWJsaWMgX2RpY3Rpb25hcnlTZXJ2aWNlOiBEaWN0aW9uYXJ5U2VydmljZSxcbiAgKSB7XG4gICAgdGhpcy5fc3Vic2NyaXB0aW9ucy5wdXNoKFxuICAgICAgdGhpcy5zZXJ2aWNlLnRyYW5zYWN0aW9uVXBkYXRlZC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLmxpbmVzQ2hhbmdlZC5lbWl0KHRoaXMud2FpdEZvckxpbmVzQ2hhbmdlZFRvT3BlbkNhcnQpO1xuICAgICAgICB0aGlzLndhaXRGb3JMaW5lc0NoYW5nZWRUb09wZW5DYXJ0ID0gZmFsc2U7XG4gICAgICB9KSxcblxuICAgICAgdGhpcy50cmFuc2FjdGlvbkV2ZW50cy5hZGRUb0NhcnRCeVNrdS5zdWJzY3JpYmUoKHBhcmFtczoge3NrdTogc3RyaW5nLCBhbW91bnQ6IG51bWJlciwgcG9wQ2FydDogYm9vbGVhbn0pID0+IHtcbiAgICAgICAgICB0aGlzLndhaXRGb3JMaW5lc0NoYW5nZWRUb09wZW5DYXJ0ID0gcGFyYW1zLnBvcENhcnQ7XG4gICAgICAgICAgdGhpcy5hZGRUb0NhcnQocGFyYW1zLnNrdSwgcGFyYW1zLmFtb3VudCkudGhlbigpO1xuICAgICAgICB9KSxcblxuICAgICAgdGhpcy50cmFuc2FjdGlvbkV2ZW50cy5hZGRBcnRpY2xlTGluZUF0LnN1YnNjcmliZSgocGFyYW1zOiB7c2t1OiBzdHJpbmcsIGFtb3VudDogbnVtYmVyLCBsaW5lTnI6IG51bWJlciwgYmVmb3JlT3JBZnRlcjogUG9zaXRpb25HcmlkUm93fSkgPT4ge1xuICAgICAgICAgIHRoaXMuYWRkQXJ0aWNsZUxpbmVUb0NhcnRBdChwYXJhbXMuc2t1LCBwYXJhbXMuYW1vdW50LCBwYXJhbXMubGluZU5yLCBwYXJhbXMuYmVmb3JlT3JBZnRlcikudGhlbigpO1xuICAgICAgfSksXG5cbiAgICAgIHRoaXMudHJhbnNhY3Rpb25FdmVudHMuYWRkVGV4dExpbmVBdC5zdWJzY3JpYmUoKHBhcmFtczoge3RleHQ6IHN0cmluZywgbGluZU5yOiBudW1iZXIsIGJlZm9yZU9yQWZ0ZXI6IFBvc2l0aW9uR3JpZFJvd30pID0+IHtcbiAgICAgICAgdGhpcy5hZGRUZXh0TGluZVRvQ2FydEF0KHBhcmFtcy50ZXh0LCBwYXJhbXMubGluZU5yLCBwYXJhbXMuYmVmb3JlT3JBZnRlcikudGhlbigpO1xuICAgICAgfSksXG5cbiAgICAgIHRoaXMudHJhbnNhY3Rpb25FdmVudHMuY2hhbmdlTGluZVNlcXVlbmNlLnN1YnNjcmliZSgocGFyYW1zOiB7ZnJvbUluZGV4OiBudW1iZXIsIHRvSW5kZXg6IG51bWJlcn0pID0+IHtcbiAgICAgICAgdGhpcy5jaGFuZ2VMaW5lU2VxdWVuY2UocGFyYW1zLmZyb21JbmRleCwgcGFyYW1zLnRvSW5kZXgpLnRoZW4oKTtcbiAgICAgIH0pLFxuXG4gICAgICB0aGlzLnRyYW5zYWN0aW9uRXZlbnRzLmFkZFRvQ2FydEJ5U2VsZWN0b3JSZXN1bHQuc3Vic2NyaWJlKFxuICAgICAgICAocGFyYW1zOiB7c2VsZWN0b3JSZXN1bHQ6IHtnb29kSWQ6IG51bWJlciwgYmFzZUdvb2RJZDogbnVtYmVyLCBzZWxlY3RvckRhdGE6IGFueSwgcXVhbnRpdHk6IG51bWJlcn0sIHBvcENhcnQ6IGJvb2xlYW59KSA9PiB7XG4gICAgICAgICAgdGhpcy53YWl0Rm9yTGluZXNDaGFuZ2VkVG9PcGVuQ2FydCA9IHBhcmFtcy5wb3BDYXJ0O1xuICAgICAgICAgIHRoaXMuYWRkVG9DYXJ0QnlTZWxlY3RvclJlc3VsdChwYXJhbXMuc2VsZWN0b3JSZXN1bHQpLnRoZW4oKTtcbiAgICAgICAgfSksXG5cbiAgICAgIHRoaXMudHJhbnNhY3Rpb25FdmVudHMub3BlblNob3BwaW5nQ2FydE1vZHVsZS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLm9wZW5DYXJ0LmVtaXQoZmFsc2UpO1xuICAgICAgfSksXG5cbiAgICAgIHRoaXMudHJhbnNhY3Rpb25FdmVudHMuYWRkVXNlclJlbGF0aW9uU2hvcHBpbmdDYXJ0TW9kdWxlLnN1YnNjcmliZSgobG9naW46IHt1c2VyOiBzdHJpbmcsIHB3OiBzdHJpbmd9KSA9PiB7XG4gICAgICAgIHRoaXMuYWRkVXNlclJlbGF0aW9uVG9UcmFuc2FjdGlvbkFuZExvZ2luKGxvZ2luLnVzZXIsIGxvZ2luLnB3KTtcbiAgICAgIH0pLFxuXG4gICAgICB0aGlzLnRyYW5zYWN0aW9uRXZlbnRzLmFkZE5ld1VzZXJUb1Nob3BwaW5nQ2FydE1vZHVsZS5zdWJzY3JpYmUoKGVtYWlsQWRkcmVzcykgPT4ge1xuICAgICAgICB0aGlzLmFkZEVtYWlsQWRkcmVzc1RvVHJhbnNhY3Rpb24oZW1haWxBZGRyZXNzKTtcbiAgICAgIH0pXG4gICAgKTtcblxuICAgIHRoaXMuY29sdW1ucy5wdXNoKFxuICAgICAge2ZpZWxkOiBcIndhcmVob3VzZU5yXCIsIGhlYWRlclRleHQ6IHRoaXMuX2RpY3Rpb25hcnlTZXJ2aWNlLmdldChcIldBUkVIT1VTRVwiKSwgYWxsb3dGaWx0ZXJpbmc6IGZhbHNlfSxcbiAgICAgIHtmaWVsZDogXCJ3YXJlaG91c2VEZXNjXCIsIGhlYWRlclRleHQ6IHRoaXMuX2RpY3Rpb25hcnlTZXJ2aWNlLmdldChcIkRFU0NSSVBUSU9OXCIpfSxcbiAgICAgIHtmaWVsZDogXCJzdG9ja0Ftb3VudFwiLCBoZWFkZXJUZXh0OiB0aGlzLl9kaWN0aW9uYXJ5U2VydmljZS5nZXQoXCJTVE9DS1wiKX1cbiAgICApO1xuXG4gIH1cblxuICBhc3luYyBuZ09uSW5pdCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLmNvbW1pc3Npb25Db2RlcyA9IGF3YWl0IHRoaXMuc2VydmljZS5nZXRDb21taXNzaW9uQ29kZXMoXCJOTFwiKTtcbiAgICB0aGlzLmxpbmVzQ2hhbmdlZC5lbWl0KHRoaXMud2FpdEZvckxpbmVzQ2hhbmdlZFRvT3BlbkNhcnQpO1xuICAgIHRoaXMud2FpdEZvckxpbmVzQ2hhbmdlZFRvT3BlbkNhcnQgPSBmYWxzZTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMuZm9yRWFjaChzdWIgPT4gc3ViLnVuc3Vic2NyaWJlKCkpO1xuICAgIHRoaXMud2FyZWhvdXNlRGlhbG9nLmNsb3NlKCk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgYWRkVG9DYXJ0KHNrdTogc3RyaW5nLCBhbW91bnQ6IG51bWJlcik6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGdvb2RJZDogbnVtYmVyICA9IGF3YWl0IHRoaXMuc2VydmljZS5nZXRHb29kSWRGcm9tQXJ0aWNsZU5yKHNrdSk7XG4gICAgYXdhaXQgdGhpcy5fbG9hZEFydGljbGUoZ29vZElkKTtcbiAgICBhd2FpdCB0aGlzLl9jcmVhdGVUcmFuc2FjdGlvbigpO1xuICAgIGF3YWl0IHRoaXMuX2hhbmRsZUFkZEFydGljbGUoYW1vdW50KTtcbiAgICB0aGlzLmFydGljbGVBZGRlZC5lbWl0KCk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgYWRkQXJ0aWNsZUxpbmVUb0NhcnRBdChza3U6IHN0cmluZywgYW1vdW50OiBudW1iZXIsIGxpbmVOcjogbnVtYmVyLCBiZWZvcmVPckFmdGVyOiBQb3NpdGlvbkdyaWRSb3cpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBnb29kSWQ6IG51bWJlciA9IGF3YWl0IHRoaXMuc2VydmljZS5nZXRHb29kSWRGcm9tQXJ0aWNsZU5yKHNrdSk7XG4gICAgYXdhaXQgdGhpcy5fbG9hZEFydGljbGUoZ29vZElkKTtcbiAgICBhd2FpdCB0aGlzLl9jcmVhdGVUcmFuc2FjdGlvbigpO1xuICAgIGF3YWl0IHRoaXMuX2hhbmRsZUFkZEFydGljbGVMaW5lQXQoYW1vdW50LCBsaW5lTnIsIGJlZm9yZU9yQWZ0ZXIpO1xuICAgIHRoaXMuYXJ0aWNsZUFkZGVkLmVtaXQoKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBhZGRUZXh0TGluZVRvQ2FydEF0KHRleHQ6IHN0cmluZywgbGluZU5yOiBudW1iZXIsIGJlZm9yZU9yQWZ0ZXI6IFBvc2l0aW9uR3JpZFJvdyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMuc2VydmljZS5hZGRUZXh0TGluZVRvVHJhbnNhY3Rpb24oMCwgdGV4dCwgMCwgZmFsc2UsIDAsXG4gICAgICBiZWZvcmVPckFmdGVyID09PSBQb3NpdGlvbkdyaWRSb3cuQmVmb3JlID8gbGluZU5yIDogdW5kZWZpbmVkLFxuICAgICAgYmVmb3JlT3JBZnRlciA9PT0gUG9zaXRpb25HcmlkUm93LkFmdGVyID8gbGluZU5yIDogdW5kZWZpbmVkKVxuICAgICAgLnRoZW4oKHZhbHVlOiBMaW5lT3BlcmF0aW9uUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICB0aGlzLl9oYW5kbGVMaW5lT3BlcmF0aW9uU3RhdHVzKCk7XG4gICAgICAgIH0sXG4gICAgICAgIChlcnJvcikgPT4gdGhpcy5wcm9tcHRTZXJ2aWNlLnNob3dFcnJvcihlcnJvcikpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGNoYW5nZUxpbmVTZXF1ZW5jZShmcm9tSW5kZXg6IG51bWJlciwgdG9JbmRleDogbnVtYmVyKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgbGV0IGZyb21MaW5lOiBUcmFuc2FjdGlvbkxpbmVJbmZvID0gdGhpcy5fZ2V0VHJhbnNhY3Rpb25MaW5lSW5mb0J5SW5kZXgoZnJvbUluZGV4KVxuICAgIGxldCB0b0xpbmU6IFRyYW5zYWN0aW9uTGluZUluZm8gPSB0aGlzLl9nZXRUcmFuc2FjdGlvbkxpbmVJbmZvQnlJbmRleCh0b0luZGV4KTtcbiAgICBsZXQgYWJvdmVMaW5lTnI6IG51bWJlcjtcbiAgICBsZXQgYmVsb3dMaW5lTnI6IG51bWJlcjtcblxuICAgIGlmIChmcm9tSW5kZXggPiB0b0luZGV4KSB7XG4gICAgICBhYm92ZUxpbmVOciA9IHRvTGluZS5saW5lTnI7XG4gICAgfSBlbHNlIHtcbiAgICAgIGJlbG93TGluZU5yID0gdG9MaW5lLmxpbmVOcjtcbiAgICB9XG5cbiAgICBhd2FpdCB0aGlzLnNlcnZpY2UuY2hhbmdlTGluZVNlcXVlbmNlKGZyb21MaW5lLnV1aWQsIGFib3ZlTGluZU5yLCBiZWxvd0xpbmVOcilcbiAgICAgIC50aGVuKCh2YWx1ZTogTGluZU9wZXJhdGlvblJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgdGhpcy5faGFuZGxlTGluZU9wZXJhdGlvblN0YXR1cygpO1xuICAgICAgICB9LFxuICAgICAgICAoZXJyb3IpID0+IHRoaXMucHJvbXB0U2VydmljZS5zaG93RXJyb3IoZXJyb3IpKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBhZGRUb0NhcnRCeVNlbGVjdG9yUmVzdWx0KHJlc3VsdDoge2dvb2RJZDogbnVtYmVyLCBiYXNlR29vZElkOiBudW1iZXIsIHNlbGVjdG9yRGF0YTogYW55LCBxdWFudGl0eTogbnVtYmVyfSk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMuX2xvYWRBcnRpY2xlKHJlc3VsdC5nb29kSWQpO1xuICAgIGF3YWl0IHRoaXMuX2NyZWF0ZVRyYW5zYWN0aW9uKCk7XG4gICAgYXdhaXQgdGhpcy5faGFuZGxlQWRkQXJ0aWNsZShyZXN1bHQucXVhbnRpdHkpO1xuICAgIHRoaXMuYXJ0aWNsZUFkZGVkLmVtaXQoKTtcbiAgfVxuXG4gIC8vIFRPRE8gcHVibGljIHVzZXIgbG9ncyBpbi4uLi4gaG93IHJlY29ubmVjdCB0aGUgQ29ubmVjdG9yP1xuICBwdWJsaWMgYXN5bmMgYWRkVXNlclJlbGF0aW9uVG9UcmFuc2FjdGlvbkFuZExvZ2luKHVzZXJOYW1lOiBzdHJpbmcsIHBhc3N3b3JkOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBzdWNjZXNzOiBib29sZWFuID0gYXdhaXQgdGhpcy5zZXJ2aWNlLnNldFJlbGF0aW9uQnlVc2VyKHVzZXJOYW1lLCBwYXNzd29yZCk7XG4gICAgaWYgKHN1Y2Nlc3MpIHtcbiAgICAgICAgdGhpcy50cmFuc2FjdGlvbkV2ZW50cy5sb2dnZWRJbi5uZXh0KCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGFzeW5jIHNob3dTdG9ja01hbmFnZXIobGluZTogVHJhbnNhY3Rpb25MaW5lSW5mbyk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMuc2VsZWN0ZWRXYXJlaG91c2VOciA9IGxpbmUud2FyZWhvdXNlTnVtYmVyO1xuICAgIHRoaXMuYW1vdW50ID0gbGluZS5hbW91bnQ7XG4gICAgdGhpcy5jb21taXNzaW9uQ29kZSA9IGxpbmUuY29tbWlzc2lvbkNvZGU7XG4gICAgdGhpcy5zaG93KGxpbmUuYXJ0aWNsZU51bWJlcik7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgaGlkZSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAodGhpcy5fb2tPckNhbmNlbENsaWNrKSB7XG4gICAgICB0aGlzLl9va09yQ2FuY2VsQ2xpY2sgPSBmYWxzZTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgYXdhaXQgdGhpcy5vblN0b2NrTWFuYWdlckNhbmNlbENsaWNrKCk7XG4gIH1cblxuICBwdWJsaWMgc2hvdyhhcnRpY2xlTnI6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuX3JlbG9hZERhdGFDb2xsZWN0aW9ucyhhcnRpY2xlTnIpLnRoZW4oKTtcblxuICAgIHRoaXMubWVzc2FnZSA9IHRoaXMuY3VycmVudE9wZXJhdGlvblN0YXR1cy5wZW5kaW5nUmVhc29uO1xuICAgIHRoaXMud2FyZWhvdXNlR3JpZC5zZWxlY3RSb3codGhpcy5zZWxlY3RlZFdhcmVob3VzZU5yKTtcbiAgICB0aGlzLndhcmVob3VzZURpYWxvZy50YXJnZXRFbGVtZW50ID0gbnVsbDtcbiAgICB0aGlzLndhcmVob3VzZURpYWxvZy5vcGVuKCk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgb25TdG9ja01hbmFnZXJDYW5jZWxDbGljaygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLl9va09yQ2FuY2VsQ2xpY2sgPSB0cnVlO1xuICAgIHRoaXMud2FyZWhvdXNlRGlhbG9nLmNsb3NlKCk7XG5cbiAgICBpZiAodGhpcy5jdXJyZW50UmVhc29uKSB7XG4gICAgICBhd2FpdCB0aGlzLnNlcnZpY2UuY2FuY2VsQWRkVHJhbnNhY3Rpb25MaW5lKHRoaXMuY3VycmVudFJlYXNvbi5saW5lVXVpZCk7XG4gICAgfVxuXG4gICAgdGhpcy5lZGl0aW5nTGluZSA9IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBvblN0b2NrTWFuYWdlck9rQ2xpY2soKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhpcy5fb2tPckNhbmNlbENsaWNrID0gdHJ1ZTtcbiAgICB0aGlzLndhcmVob3VzZURpYWxvZy5jbG9zZSgpO1xuXG4gICAgaWYgKHRoaXMuY29tbWlzc2lvbkNvZGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5jdXJyZW50UmVhc29uLmNvbW1pc3Npb25Db2RlID0gdGhpcy5jb21taXNzaW9uQ29kZS52YWx1ZU9mKCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuYW1vdW50ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuY3VycmVudFJlYXNvbi5xdWFudGl0eSA9IHRoaXMuYW1vdW50LnZhbHVlT2YoKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5zZWxlY3RlZFdhcmVob3VzZU5yICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuY3VycmVudFJlYXNvbi53YXJlaG91c2VOciA9IHRoaXMuc2VsZWN0ZWRXYXJlaG91c2VOcjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5jdXJyZW50UmVhc29uKSB7XG4gICAgICBhd2FpdCB0aGlzLnNlcnZpY2UucmVzb2x2ZVBlbmRpbmdMaW5lUmVhc29uKHRoaXMuY3VycmVudFJlYXNvbilcbiAgICAgICAgLnRoZW4oKHZhbHVlOiBMaW5lT3BlcmF0aW9uUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICB0aGlzLl9oYW5kbGVMaW5lT3BlcmF0aW9uU3RhdHVzKCk7XG4gICAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodGhpcy5lZGl0aW5nTGluZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGF3YWl0IHRoaXMuc2VydmljZS5hZGRUcmFuc2FjdGlvbkxpbmUoVHJhbnNhY3Rpb25MaW5lVHlwZS5BcnRpY2xlTGluZSwgdGhpcy5uZXdBcnRpY2xlTnIsIHRoaXMuYW1vdW50LCB0aGlzLnNlbGVjdGVkV2FyZWhvdXNlTnIsIHRoaXMuY29tbWlzc2lvbkNvZGUsIHRoaXMuaXNSZXR1cm4sIDAsIDApXG4gICAgICAgICAgLnRoZW4oKHZhbHVlOiBMaW5lT3BlcmF0aW9uUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX2hhbmRsZUxpbmVPcGVyYXRpb25TdGF0dXMoKTtcbiAgICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGF3YWl0IHRoaXMuc2VydmljZS5jaGFuZ2VUcmFuc2FjdGlvbkxpbmVRdWFudGl0eSh0aGlzLmVkaXRpbmdMaW5lLnV1aWQsIHRoaXMuYW1vdW50KVxuICAgICAgICAgIC50aGVuKCh2YWx1ZTogTGluZU9wZXJhdGlvblJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICB0aGlzLl9oYW5kbGVMaW5lT3BlcmF0aW9uU3RhdHVzKCk7XG4gICAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5lZGl0aW5nTGluZSA9IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHB1YmxpYyBoYW5kbGVSb3dzU2VsZWN0ZWQocm93czogYW55KTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RlZFdhcmVob3VzZU5yID0gKHJvd3MuZmluZCh4ID0+IHggIT09IHVuZGVmaW5lZCkpLndhcmVob3VzZU5yO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGhhbmRsZUNoYXJhY3RlcmlzdGljQW5zd2VyT2tDbGljayhhbnN3ZXI6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMuY3VycmVudFJlYXNvbiA9IG5ldyBSZXNvbHZlUGVuZGluZ0xpbmVSZWFzb25SZXF1ZXN0KHRoaXMuY3VycmVudE9wZXJhdGlvblN0YXR1cy51dWlkLCB0aGlzLmN1cnJlbnRPcGVyYXRpb25TdGF0dXMucGVuZGluZ1JlYXNvbiwgdGhpcy5jdXJyZW50T3BlcmF0aW9uU3RhdHVzLnBlbmRpbmdSZWFzb25UeXBlKTtcbiAgICB0aGlzLmN1cnJlbnRSZWFzb24udGV4dHVhbFVzZXJJbnB1dCA9IGFuc3dlcjtcbiAgICBhd2FpdCB0aGlzLnNlcnZpY2UucmVzb2x2ZVBlbmRpbmdMaW5lUmVhc29uKHRoaXMuY3VycmVudFJlYXNvbilcbiAgICAgIC50aGVuKCh2YWx1ZTogTGluZU9wZXJhdGlvblJlc3BvbnNlKSA9PiB7XG4gICAgICAgIHRoaXMuX2hhbmRsZUxpbmVPcGVyYXRpb25TdGF0dXMoKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBfcmVsb2FkRGF0YUNvbGxlY3Rpb25zKGFydGljbGVOcjogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgZ29vZElkOiBudW1iZXIgID0gYXdhaXQgdGhpcy5zZXJ2aWNlLmdldEdvb2RJZEZyb21BcnRpY2xlTnIoYXJ0aWNsZU5yKTtcbiAgICB0aGlzLnRyYW5zYWN0aW9uQXJ0aWNsZVdhcmVob3VzZXMgPSBhd2FpdCB0aGlzLnNlcnZpY2UuZ2V0VHJhbnNhY3Rpb25BcnRpY2xlV2FyZWhvdXNlcyhnb29kSWQpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBfaGFuZGxlQWRkQXJ0aWNsZShhbW91bnQ6IG51bWJlciA9IDEpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLnNlcnZpY2UuYWRkVHJhbnNhY3Rpb25MaW5lKFRyYW5zYWN0aW9uTGluZVR5cGUuQXJ0aWNsZUxpbmUsXG4gICAgICB0aGlzLm5ld0FydGljbGVOcixcbiAgICAgIGFtb3VudCxcbiAgICAgIHRoaXMubmV3QXJ0aWNsZS5zdGFuZGFyZFdhcmVIb3VzZSxcbiAgICAgIHRoaXMubmV3QXJ0aWNsZS5jb21taXNzaW9uQ29kZSxcbiAgICAgIGZhbHNlLFxuICAgICAgMCxcbiAgICAgIDApXG4gICAgICAudGhlbigodmFsdWU6IExpbmVPcGVyYXRpb25SZXNwb25zZSkgPT4ge1xuICAgICAgICB0aGlzLl9oYW5kbGVMaW5lT3BlcmF0aW9uU3RhdHVzKCk7XG4gICAgICB9LFxuICAgICAgKGVycm9yKSA9PiB0aGlzLnByb21wdFNlcnZpY2Uuc2hvd0Vycm9yKGVycm9yKSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIF9oYW5kbGVBZGRBcnRpY2xlTGluZUF0KGFtb3VudDogbnVtYmVyLCBsaW5lTnI6IG51bWJlciwgYmVmb3JlT3JBZnRlcjogUG9zaXRpb25HcmlkUm93KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgdGhpcy5zZXJ2aWNlLmFkZFRyYW5zYWN0aW9uTGluZShUcmFuc2FjdGlvbkxpbmVUeXBlLkFydGljbGVMaW5lLFxuICAgICAgdGhpcy5uZXdBcnRpY2xlTnIsXG4gICAgICBhbW91bnQsXG4gICAgICB0aGlzLm5ld0FydGljbGUuc3RhbmRhcmRXYXJlSG91c2UsXG4gICAgICB0aGlzLm5ld0FydGljbGUuY29tbWlzc2lvbkNvZGUsXG4gICAgICBmYWxzZSxcbiAgICAgIGJlZm9yZU9yQWZ0ZXIgPT09IFBvc2l0aW9uR3JpZFJvdy5CZWZvcmUgPyBsaW5lTnIgOiB1bmRlZmluZWQsXG4gICAgICBiZWZvcmVPckFmdGVyID09PSBQb3NpdGlvbkdyaWRSb3cuQWZ0ZXIgPyBsaW5lTnIgOiB1bmRlZmluZWQpXG4gICAgICAudGhlbigodmFsdWU6IExpbmVPcGVyYXRpb25SZXNwb25zZSkgPT4ge1xuICAgICAgICAgIHRoaXMuX2hhbmRsZUxpbmVPcGVyYXRpb25TdGF0dXMoKTtcbiAgICAgICAgfSxcbiAgICAgICAgKGVycm9yKSA9PiB0aGlzLnByb21wdFNlcnZpY2Uuc2hvd0Vycm9yKGVycm9yKSk7XG4gIH1cblxuICBwcml2YXRlIF9nZXRXYXJlSG91c2VOb0Zyb21BcnRpY2xlKCk6IG51bWJlciB7XG4gICAgaWYgKHRoaXMubmV3QXJ0aWNsZSAhPT0gdW5kZWZpbmVkICYmIHRoaXMubmV3QXJ0aWNsZS5zdG9ja0xvY2F0aW9ucyAhPT0gdW5kZWZpbmVkICYmIHRoaXMubmV3QXJ0aWNsZS5zdG9ja0xvY2F0aW9ucy5sZW5ndGgpIHtcbiAgICAgIHJldHVybiB0aGlzLm5ld0FydGljbGUuc3RvY2tMb2NhdGlvbnNbMF0ud2FyZWhvdXNlTnI7XG4gICAgfVxuICAgIHJldHVybiAwO1xuICB9XG5cbiAgcHJpdmF0ZSBfaXNMaW5lT3BlcmF0aW9uU3RhdHVzKCk6IGJvb2xlYW4ge1xuICAgIHRoaXMuY3VycmVudE9wZXJhdGlvblN0YXR1cyA9IHRoaXMuc2VydmljZS5jdXJyZW50TGluZU9wZXJhdGlvblN0YXR1cztcbiAgICBpZiAodGhpcy5jdXJyZW50T3BlcmF0aW9uU3RhdHVzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIF9jaGVja0lmU2hvcHBpbmdDYXJ0TmVlZHNUb0Rpc3BsYXkoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc2VydmljZS5jdXJyZW50VHJhbnNhY3Rpb24gJiYgdGhpcy5zZXJ2aWNlLmN1cnJlbnRUcmFuc2FjdGlvbi50cmFuc2FjdGlvbk5yKSB7XG4gICAgICB0aGlzLmxpbmVzQ2hhbmdlZC5lbWl0KHRoaXMud2FpdEZvckxpbmVzQ2hhbmdlZFRvT3BlbkNhcnQpO1xuICAgICAgdGhpcy53YWl0Rm9yTGluZXNDaGFuZ2VkVG9PcGVuQ2FydCA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgX2NvbmZpcm1BY3Rpb24oKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhpcy5jdXJyZW50UmVhc29uID0gbmV3IFJlc29sdmVQZW5kaW5nTGluZVJlYXNvblJlcXVlc3QodGhpcy5jdXJyZW50T3BlcmF0aW9uU3RhdHVzLnV1aWQsIHRoaXMuY3VycmVudE9wZXJhdGlvblN0YXR1cy5wZW5kaW5nUmVhc29uLCB0aGlzLmN1cnJlbnRPcGVyYXRpb25TdGF0dXMucGVuZGluZ1JlYXNvblR5cGUpO1xuICAgIGNvbnN0IHBlbmRpbmdSZWFzb25UZXh0OiBzdHJpbmcgPSBhd2FpdCB0aGlzLl9nZXRQZW5kaW5nUmVhc29uVGV4dCh0aGlzLmN1cnJlbnRPcGVyYXRpb25TdGF0dXMucGVuZGluZ1JlYXNvbik7XG4gICAgdGhpcy5jdXJyZW50UmVhc29uLmNvbmZpcm1hdGlvbiAgPSBhd2FpdCB0aGlzLnByb21wdFNlcnZpY2Uuc2hvd1llc05vKHBlbmRpbmdSZWFzb25UZXh0LCBcIiBcIik7XG4gICAgYXdhaXQgdGhpcy5zZXJ2aWNlLnJlc29sdmVQZW5kaW5nTGluZVJlYXNvbih0aGlzLmN1cnJlbnRSZWFzb24pXG4gICAgICAudGhlbigodmFsdWU6IExpbmVPcGVyYXRpb25SZXNwb25zZSkgPT4ge1xuICAgICAgICB0aGlzLl9oYW5kbGVMaW5lT3BlcmF0aW9uU3RhdHVzKCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgX3Nob3dJbmZvcm1hdGlvbigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLmN1cnJlbnRSZWFzb24gPSBuZXcgUmVzb2x2ZVBlbmRpbmdMaW5lUmVhc29uUmVxdWVzdCh0aGlzLmN1cnJlbnRPcGVyYXRpb25TdGF0dXMudXVpZCwgdGhpcy5jdXJyZW50T3BlcmF0aW9uU3RhdHVzLnBlbmRpbmdSZWFzb24sIHRoaXMuY3VycmVudE9wZXJhdGlvblN0YXR1cy5wZW5kaW5nUmVhc29uVHlwZSk7XG4gICAgY29uc3QgcGVuZGluZ1JlYXNvblRleHQ6IHN0cmluZyA9IGF3YWl0IHRoaXMuX2dldFBlbmRpbmdSZWFzb25UZXh0KHRoaXMuY3VycmVudE9wZXJhdGlvblN0YXR1cy5wZW5kaW5nUmVhc29uKTtcbiAgICBhd2FpdCB0aGlzLnByb21wdFNlcnZpY2Uuc2hvd09rTW9kYWwocGVuZGluZ1JlYXNvblRleHQsIFwiIFwiKTtcbiAgICBhd2FpdCB0aGlzLnNlcnZpY2UucmVzb2x2ZVBlbmRpbmdMaW5lUmVhc29uKHRoaXMuY3VycmVudFJlYXNvbilcbiAgICAgIC50aGVuKCh2YWx1ZTogTGluZU9wZXJhdGlvblJlc3BvbnNlKSA9PiB7XG4gICAgICAgIHRoaXMuX2hhbmRsZUxpbmVPcGVyYXRpb25TdGF0dXMoKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBfZ2V0UGVuZGluZ1JlYXNvblRleHQocGVuZGluZ1JlYXNvbjogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBpZiAocGVuZGluZ1JlYXNvbiA9PT0gXCJBUlRJQ0xFX0lTX0RJU0NPTlRJTlVFRF9ET19ZT1VfV0FOVF9UT19DT05USU5VRV9QTEVBU0VfQ09ORklSTVwiKSB7XG4gICAgICByZXR1cm4gdGhpcy5fZGljdGlvbmFyeVNlcnZpY2UuZ2V0KFwiQVJUSUNMRV9JTl9PVVRfQ09MTEVDVElPTlwiKS5yZXBsYWNlKFwifH5cIiwgYXdhaXQgdGhpcy5nZXRJbk91dENvbGxlY3Rpb25PZkFydGljbGUoKSk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9kaWN0aW9uYXJ5U2VydmljZS5nZXQocGVuZGluZ1JlYXNvbik7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGdldEluT3V0Q29sbGVjdGlvbk9mQXJ0aWNsZSgpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGlmICghdGhpcy5faW5PdXRDb2xsZWN0aW9uLmxlbmd0aCkge1xuICAgICAgdGhpcy5faW5PdXRDb2xsZWN0aW9uID0gYXdhaXQgdGhpcy5zZXJ2aWNlLmdldEluT3V0Q29sbGVjdGlvbihcIk5MXCIpO1xuICAgIH1cblxuICAgIGNvbnN0IGRvbWFpblZhbHVlOiBDb0RvbWFpblZhbHVlID0gdGhpcy5faW5PdXRDb2xsZWN0aW9uLmZpbmQoZWxlbWVudCA9PiBlbGVtZW50LmNvZGUgPT09IHRoaXMubmV3QXJ0aWNsZS5pbk91dENvbGxlY3Rpb24pO1xuICAgIGlmIChkb21haW5WYWx1ZSkge1xuICAgICAgcmV0dXJuIGRvbWFpblZhbHVlLmRlc2NyaXB0aW9uO1xuICAgIH1cbiAgICByZXR1cm4gXCJcIjtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgX2hhbmRsZUxpbmVPcGVyYXRpb25TdGF0dXMoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKHRoaXMuX2lzTGluZU9wZXJhdGlvblN0YXR1cygpKSB7XG4gICAgICBhd2FpdCB0aGlzLl9oYW5kbGVQZW5kaW5nTGluZSh0aGlzLmN1cnJlbnRPcGVyYXRpb25TdGF0dXMudXVpZCkudGhlbigpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9jaGVja0lmU2hvcHBpbmdDYXJ0TmVlZHNUb0Rpc3BsYXkoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlICBhc3luYyBfaGFuZGxlUGVuZGluZ0xpbmUobGluZVV1aWQ6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMuY3VycmVudFJlYXNvbiA9IG5ldyBSZXNvbHZlUGVuZGluZ0xpbmVSZWFzb25SZXF1ZXN0KHRoaXMuY3VycmVudE9wZXJhdGlvblN0YXR1cy51dWlkLCB0aGlzLmN1cnJlbnRPcGVyYXRpb25TdGF0dXMucGVuZGluZ1JlYXNvbiwgdGhpcy5jdXJyZW50T3BlcmF0aW9uU3RhdHVzLnBlbmRpbmdSZWFzb25UeXBlKTtcbiAgICB0aGlzLmN1cnJlbnRQZW5kaW5nTGluZSA9IHRoaXMuc2VydmljZS5jdXJyZW50TGluZXMuZmluZChsID0+IGwudXVpZCA9PT0gbGluZVV1aWQpO1xuXG4gICAgc3dpdGNoICh0aGlzLmN1cnJlbnRPcGVyYXRpb25TdGF0dXMucGVuZGluZ1JlYXNvblR5cGUpIHtcbiAgICAgIGNhc2UgUGVuZGluZ1JlYXNvblR5cGUuQUJPUlRFRDpcbiAgICAgIGNhc2UgUGVuZGluZ1JlYXNvblR5cGUuQ0FOQ0VMTEVEOlxuICAgICAgICB0aGlzLnNlcnZpY2UuY2FuY2VsQWRkVHJhbnNhY3Rpb25MaW5lKHRoaXMuY3VycmVudFBlbmRpbmdMaW5lLnV1aWQpLnRoZW4oKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFBlbmRpbmdSZWFzb25UeXBlLkNPTkZJUk1BVElPTl9ORUVERUQ6XG4gICAgICAgIGF3YWl0IHRoaXMuX2NvbmZpcm1BY3Rpb24oKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFBlbmRpbmdSZWFzb25UeXBlLklOVkFMSURfTE9HSVNUSUNTOlxuICAgICAgICBhd2FpdCB0aGlzLnNob3dTdG9ja01hbmFnZXIodGhpcy5jdXJyZW50UGVuZGluZ0xpbmUpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgUGVuZGluZ1JlYXNvblR5cGUuTk9OX0NSSVRJQ0FMX0RJU0NPTlRJTlVBVElPTjpcbiAgICAgICAgYXdhaXQgdGhpcy5fc2hvd0luZm9ybWF0aW9uKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBQZW5kaW5nUmVhc29uVHlwZS5DSEFSQUNURVJJU1RJQ1NfQU5TV0VSX05FRURFRDpcbiAgICAgICAgdGhpcy5DaGFyYWN0ZXJpc3RpY3NBbnN3ZXJOZWVkZWQoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFBlbmRpbmdSZWFzb25UeXBlLk5PTkU6XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aGlzLmN1cnJlbnRSZWFzb24gPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuY3VycmVudFBlbmRpbmdMaW5lID0gdW5kZWZpbmVkO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIF9jcmVhdGVUcmFuc2FjdGlvbigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAoIXRoaXMuc2VydmljZS5jdXJyZW50VHJhbnNhY3Rpb24udHJhbnNhY3Rpb25Ocikge1xuICAgICAgaWYgKCFhd2FpdCB0aGlzLnNlcnZpY2UuY3JlYXRlVHJhbnNhY3Rpb24oKSkge1xuICAgICAgICB0aHJvd0Vycm9yKFwiRmFpbGVkIHRvIGNyZWF0ZSB0cmFuc2FjdGlvblwiKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIF9sb2FkQXJ0aWNsZShnb29kSWQ6IG51bWJlcik6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMubmV3QXJ0aWNsZSA9IGF3YWl0IHRoaXMuc2VydmljZS5nZXRBcnRpY2xlRnVsbE9iamVjdChnb29kSWQpO1xuICAgIHRoaXMubmV3QXJ0aWNsZU5yID0gdGhpcy5uZXdBcnRpY2xlLmFydGljbGVOcjtcbiAgfVxuXG4gIHByaXZhdGUgYWRkRW1haWxBZGRyZXNzVG9UcmFuc2FjdGlvbihlbWFpbEFkZHJlc3M6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuc2VydmljZS5lbWFpbEFkZHJlc3MgPSBlbWFpbEFkZHJlc3M7XG4gIH1cblxuICBwcml2YXRlIENoYXJhY3RlcmlzdGljc0Fuc3dlck5lZWRlZCgpOiB2b2lkIHtcbiAgICB0aGlzLmNoYXJhY3RlcmlzdGljQW5zd2VyLnF1ZXN0aW9uID0gdGhpcy5jdXJyZW50T3BlcmF0aW9uU3RhdHVzLmNoYXJhY3RlcmlzdGljLnF1ZXN0aW9uO1xuICAgIHRoaXMuY2hhcmFjdGVyaXN0aWNBbnN3ZXIudGl0bGUgPSB0aGlzLm5ld0FydGljbGUuZGVzY3JpcHRpb247XG4gICAgdGhpcy5jaGFyYWN0ZXJpc3RpY0Fuc3dlci52YWx1ZSA9IHRoaXMuY3VycmVudE9wZXJhdGlvblN0YXR1cy5jaGFyYWN0ZXJpc3RpYy52YWx1ZTtcbiAgICB0aGlzLmNoYXJhY3RlcmlzdGljQW5zd2VyLmNoYXJhY3RlcmlzdGljcyA9IHRoaXMuY3VycmVudE9wZXJhdGlvblN0YXR1cy5jaGFyYWN0ZXJpc3RpYy50cmFuc2FjdGlvbkxpbmVDaGFyYWN0ZXJpc3RpY0Nob2ljZXM7XG5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuY2hhcmFjdGVyaXN0aWNBbnN3ZXIub3BlbigpO1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLW1hZ2ljLW51bWJlcnNcbiAgICB9LCAxMDAwKTtcblxuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0TGluZVV1aWRCeUxpbmVOcihsaW5lTnI6IG51bWJlcik6IHN0cmluZyB7XG4gICAgY29uc3QgdHJhbnNhY3Rpb25MaW5lOiBUcmFuc2FjdGlvbkxpbmVJbmZvW10gPSB0aGlzLnNlcnZpY2UuY3VycmVudExpbmVzLmZpbHRlcih0cmFuc0xpbmVzID0+IHRyYW5zTGluZXMubGluZU5yID09PSBsaW5lTnIpO1xuICAgIHJldHVybiB0cmFuc2FjdGlvbkxpbmVbMF0udXVpZDtcbiAgfVxuXG4gIHByaXZhdGUgX2dldFRyYW5zYWN0aW9uTGluZUluZm9CeUluZGV4KGluZGV4OiBudW1iZXIpOiBUcmFuc2FjdGlvbkxpbmVJbmZvIHtcbiAgICBpZiAoaW5kZXggPj0gMCAmJiBpbmRleCA8IHRoaXMuc2VydmljZS5jdXJyZW50TGluZXMubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gdGhpcy5zZXJ2aWNlLmN1cnJlbnRMaW5lc1tpbmRleF1cbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
451
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hvcHBpbmctY2FydC1tYW5hZ2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50L3Nob3BwaW5nLWNhcnQvc2hvcHBpbmctY2FydC1tYW5hZ2VyL3Nob3BwaW5nLWNhcnQtbWFuYWdlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUE2QixNQUFNLEVBQUUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3BHLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBQ3hFLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxtREFBbUQsQ0FBQztBQUM5RSxPQUFPLEVBQWUsVUFBVSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQzlDLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLDRDQUE0QyxDQUFDO0FBR25GLE9BQU8sRUFBQywrQkFBK0IsRUFBQyxNQUFNLHdFQUF3RSxDQUFDO0FBQ3ZILE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLGdFQUFnRSxDQUFDO0FBSW5HLE9BQU8sRUFBcUMsYUFBYSxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDL0YsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sOERBQThELENBQUM7QUFFL0YsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFHdEUsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBcURyRSxNQUFNLE9BQU8sNEJBQTRCO0lBK0R2QyxZQUNTLE9BQTJCLEVBQzNCLGlCQUEwQyxFQUMxQyxhQUE0QixFQUM1QixrQkFBcUM7UUFIckMsWUFBTyxHQUFQLE9BQU8sQ0FBb0I7UUFDM0Isc0JBQWlCLEdBQWpCLGlCQUFpQixDQUF5QjtRQUMxQyxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM1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LENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEtBQUssTUFBTSxDQUFDLENBQUM7UUFDNUgsT0FBTyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ2pDLENBQUM7SUFFTyw4QkFBOEIsQ0FBQyxLQUFhO1FBQ2xELElBQUksS0FBSyxJQUFJLENBQUMsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFO1lBQzFELE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUE7U0FDeEM7SUFDSCxDQUFDOzs7WUFuZkYsU0FBUyxTQUFDO2dCQUNULDhEQUE4RDtnQkFDOUQsUUFBUSxFQUFFLHVCQUF1QjtnQkFDakMsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E2Q1Q7O2FBRUY7OztZQXJFTyxrQkFBa0I7WUFHbEIsdUJBQXVCO1lBUWEsYUFBYTtZQUdqRCxpQkFBaUI7Ozs4QkF5RHRCLFNBQVMsU0FBQyxpQkFBaUI7NEJBRzNCLFNBQVMsU0FBQyxlQUFlO21DQUd6QixTQUFTLFNBQUMsc0JBQXNCOzJCQUdoQyxNQUFNO3VCQUdOLE1BQU07MkJBR04sTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIEluamVjdCwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHtUcmFuc2FjdGlvblNlcnZpY2V9IGZyb20gXCIuLi8uLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLnNlcnZpY2VcIjtcbmltcG9ydCB7TnVtYmVyVXRpbHN9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvdXRpbHMvbnVtYmVyLXV0aWxzXCI7XG5pbXBvcnQge1N1YnNjcmlwdGlvbiwgdGhyb3dFcnJvcn0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7VHJhbnNhY3Rpb25FdmVudFNlcnZpY2V9IGZyb20gXCIuLi8uLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLWV2ZW50LnNlcnZpY2VcIjtcbmltcG9ydCB7Q29tbWlzc2lvbkNvZGVUeXBlfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL2VudW0vcmVmY29kZS9jb21taXNzaW9uLWNvZGUtdHlwZS5lbnVtXCI7XG5pbXBvcnQge1RyYW5zYWN0aW9uTGluZUluZm99IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvdHJhbnNhY3Rpb24tbGluZS1pbmZvLmJvXCI7XG5pbXBvcnQge1Jlc29sdmVQZW5kaW5nTGluZVJlYXNvblJlcXVlc3R9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvcmVzb2x2ZS1wZW5kaW5nLXJlYXNvbi1yZXF1ZXN0LmJvXCI7XG5pbXBvcnQge1RyYW5zYWN0aW9uTGluZVR5cGV9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvZW51bS90cmFuc2FjdGlvbi1saW5lLXR5cGUuZW51bVwiO1xuaW1wb3J0IHtDb0RvbWFpblZhbHVlfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL2NvLWRvbWFpbi12YWx1ZS5ib1wiO1xuaW1wb3J0IHtUcmFuc2FjdGlvbkFydGljbGVXYXJlaG91c2V9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvdHJhbnNhY3Rpb24tYXJ0aWNsZS13YXJlaG91c2UuYm9cIjtcbmltcG9ydCB7TGluZU9wZXJhdGlvblN0YXR1c30gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9saW5lLW9wZXJhdGlvbi1zdGF0dXMuYm9cIjtcbmltcG9ydCB7Q29EaWFsb2dDb21wb25lbnQsIENvR3JpZENvbXBvbmVudCwgUHJvbXB0U2VydmljZX0gZnJvbSBcIkBjb2xpam5pdC9jb3JlY29tcG9uZW50c192MTJcIjtcbmltcG9ydCB7UGVuZGluZ1JlYXNvblR5cGV9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvZW51bS9wZW5kaW5nLXJlYXNvbi10eXBlLmVudW1cIjtcbmltcG9ydCB7QXJ0aWNsZUZ1bGxPYmplY3R9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvYXJ0aWNsZS1mdWxsLW9iamVjdFwiO1xuaW1wb3J0IHtEaWN0aW9uYXJ5U2VydmljZX0gZnJvbSBcIi4uLy4uLy4uL3NlcnZpY2UvZGljdGlvbmFyeS5zZXJ2aWNlXCI7XG5pbXBvcnQge0xpbmVPcGVyYXRpb25SZXNwb25zZX0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9saW5lLW9wZXJhdGlvbi1yZXNwb25zZS5ib1wiO1xuaW1wb3J0IHtDaGFyYWN0ZXJpc3RpY0Fuc3dlckNvbXBvbmVudH0gZnJvbSBcIi4uLy4uL2NvcmUvY2hhcmFjdGVyaXN0aWMtYW5zd2VyL2NoYXJhY3RlcmlzdGljLWFuc3dlci5jb21wb25lbnRcIjtcbmltcG9ydCB7UG9zaXRpb25HcmlkUm93fSBmcm9tIFwiLi4vLi4vLi4vZW51bS9wb3NpdGlvbi1ncmlkLXJvdy5lbnVtXCI7XG5cbkBDb21wb25lbnQoe1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvclxuICBzZWxlY3RvcjogXCJzaG9wcGluZy1jYXJ0LW1hbmFnZXJcIixcbiAgdGVtcGxhdGU6IGBcbiAgICA8Y28tZGlhbG9nICN3YXJlaG91c2VEaWFsb2dcbiAgICAgICAgICAgICAgIChjbG9zZUNsaWNrKT1cImhpZGUoKVwiXG4gICAgICAgICAgICAgICAob3ZlcmxheUNsaWNrKT1cIm9uU3RvY2tNYW5hZ2VyQ2FuY2VsQ2xpY2soKVwiXG4gICAgICA+XG4gICAgICA8bmctY29udGFpbmVyIGhlYWRlcj57eyAnU1RPQ0tfTk9USUZJQ0FUSU9OJyB8IGxvY2FsaXplIH19PC9uZy1jb250YWluZXI+XG5cbiAgICAgIDxuZy1jb250YWluZXIgY29udGVudD5cbiAgICAgICAgPGNvLWZvcm0+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY29udGVudFwiPlxuICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJtZXNzYWdlXCIgY2xhc3M9XCJtZXNzYWdlLWZpZWxkXCIgW3RleHRDb250ZW50XT1cIm1lc3NhZ2UgfCBsb2NhbGl6ZVwiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbW1pc3Npb24tZmllbGRzXCIgZnhMYXlvdXQ9XCJyb3dcIj5cbiAgICAgICAgICAgICAgICA8Y28taW5wdXQtbnVtYmVyLXBpY2tlciBjbGFzcz1cImhvcml6b250YWxcIiBbKG1vZGVsKV09XCJhbW91bnRcIiBbbWluXT1cIjBcIiBkZWNpbWFscz1cIjNcIj48L2NvLWlucHV0LW51bWJlci1waWNrZXI+XG4gICAgICAgICAgICAgICAgPGNvLWlucHV0LWNvbWJvLWJveCBbKG1vZGVsKV09XCJjb21taXNzaW9uQ29kZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzb3VyY2VdPVwiY29tbWlzc2lvbkNvZGVzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ZpZWxkc109XCJjb21taXNzaW9uRmllbGRzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidDT01NSVNTSU9OX0NPREUnIHwgbG9jYWxpemVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVxdWlyZWRdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgPjwvY28taW5wdXQtY29tYm8tYm94PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICA8Y28tZ3JpZCAjd2FyZWhvdXNlR3JpZFxuICAgICAgICAgICAgICAgICAgW2RhdGFdPVwidHJhbnNhY3Rpb25BcnRpY2xlV2FyZWhvdXNlc1wiXG4gICAgICAgICAgICAgICAgICBbY29sdW1uc109XCJjb2x1bW5zXCJcbiAgICAgICAgICAgICAgICAgIFtwYWdpbmdFbmFibGVkXT1cIid0cnVlJ1wiXG4gICAgICAgICAgICAgICAgICBbbWF4TnVtYmVyT2ZSb3dzXT1cIicyMCdcIlxuICAgICAgICAgICAgICAgICAgKHJvd3NTZWxlY3RlZCk9XCJoYW5kbGVSb3dzU2VsZWN0ZWQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgPjwvY28tZ3JpZD5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvY28tZm9ybT5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICA8bmctY29udGFpbmVyIGZvb3Rlcj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC1jZW50ZXJcIj5cbiAgICAgICAgICAgIDxjby1idXR0b24gW2xhYmVsXT1cIidPSycgfCBsb2NhbGl6ZVwiIChjbGljayk9XCJvblN0b2NrTWFuYWdlck9rQ2xpY2soKVwiPjwvY28tYnV0dG9uPlxuICAgICAgICAgICAgPGNvLWJ1dHRvbiBbbGFiZWxdPVwiJ0NBTkNFTCcgfCBsb2NhbGl6ZVwiIChjbGljayk9XCJvblN0b2NrTWFuYWdlckNhbmNlbENsaWNrKClcIj48L2NvLWJ1dHRvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvY28tZGlhbG9nPlxuXG4gICAgPGNoYXJhY3RlcmlzdGljLWFuc3dlclxuICAgICAgI2NoYXJhY3RlcmlzdGljQW5zd2VyXG4gICAgICAob2tDbGljayk9XCJoYW5kbGVDaGFyYWN0ZXJpc3RpY0Fuc3dlck9rQ2xpY2soJGV2ZW50KVwiXG4gICAgPjwvY2hhcmFjdGVyaXN0aWMtYW5zd2VyPlxuICBgLFxuICBzdHlsZVVybHM6IFtcIi4vc2hvcHBpbmctY2FydC1tYW5hZ2VyLmNvbXBvbmVudC5zY3NzXCJdXG59KVxuZXhwb3J0IGNsYXNzIFNob3BwaW5nQ2FydE1hbmFnZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIEBWaWV3Q2hpbGQoXCJ3YXJlaG91c2VEaWFsb2dcIilcbiAgcHVibGljIHdhcmVob3VzZURpYWxvZzogQ29EaWFsb2dDb21wb25lbnQ7XG5cbiAgQFZpZXdDaGlsZChcIndhcmVob3VzZUdyaWRcIilcbiAgcHVibGljIHdhcmVob3VzZUdyaWQ6IENvR3JpZENvbXBvbmVudDxhbnk+O1xuXG4gIEBWaWV3Q2hpbGQoXCJjaGFyYWN0ZXJpc3RpY0Fuc3dlclwiKVxuICBwdWJsaWMgY2hhcmFjdGVyaXN0aWNBbnN3ZXI6IENoYXJhY3RlcmlzdGljQW5zd2VyQ29tcG9uZW50O1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgcmVhZG9ubHkgbGluZXNDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyByZWFkb25seSBvcGVuQ2FydDogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgcmVhZG9ubHkgYXJ0aWNsZUFkZGVkOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgcHVibGljIGdldCBhbW91bnRPZkxpbmVzKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIE51bWJlclV0aWxzLk5yT3JEZWZhdWx0KHRoaXMuc2VydmljZS5hcnRpY2xlQW1vdW50LCAwKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgc2hvd0NoYXJhY3RlcmlzdGljRGlhbG9nKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9zaG93Q2hhcmFjdGVyaXN0aWM7XG4gIH1cblxuICBwdWJsaWMgc2V0IHNob3dDaGFyYWN0ZXJpc3RpY0RpYWxvZyh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX3Nob3dDaGFyYWN0ZXJpc3RpYyA9IHZhbHVlO1xuICB9XG5cbiAgcHVibGljIGJyYW5jaE5yOiBzdHJpbmc7XG4gIHB1YmxpYyBuZXdBcnRpY2xlTnI6IHN0cmluZztcbiAgcHVibGljIG5ld0FydGljbGU6IEFydGljbGVGdWxsT2JqZWN0O1xuICBwdWJsaWMgc2VsZWN0ZWRXYXJlaG91c2VOcjogbnVtYmVyO1xuICBwdWJsaWMgYW1vdW50OiBudW1iZXI7XG4gIHB1YmxpYyBpc1JldHVybjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHB1YmxpYyB3YWl0Rm9yTGluZXNDaGFuZ2VkVG9PcGVuQ2FydDogYm9vbGVhbiA9IGZhbHNlO1xuICBwdWJsaWMgbWVzc2FnZTogc3RyaW5nID0gXCJDSEVDS19XQVJFSE9VU0VfQU5EX0NPTU1JU1NJT05DT0RFXCI7XG5cbiAgcHVibGljIGNvbW1pc3Npb25Db2RlOiBDb21taXNzaW9uQ29kZVR5cGU7XG4gIHB1YmxpYyBjb21taXNzaW9uQ29kZXM6IENvRG9tYWluVmFsdWVbXSA9IFtdO1xuICBwdWJsaWMgY29tbWlzc2lvbkZpZWxkczogT2JqZWN0ID0geyB0ZXh0OiBcImRlc2NyaXB0aW9uXCIsIHZhbHVlOiBcImNvZGVcIiB9O1xuXG4gIHB1YmxpYyB0cmFuc2FjdGlvbkFydGljbGVXYXJlaG91c2VzOiBUcmFuc2FjdGlvbkFydGljbGVXYXJlaG91c2VbXSA9IFtdO1xuICBwdWJsaWMgdHJhbnNhY3Rpb25BcnRpY2xlV2FyZWhvdXNlRmllbGRzOiBPYmplY3QgPSB7IHRleHQ6IFwid2FyZWhvdXNlRGVzY1wiLCB2YWx1ZTogXCJ3YXJlaG91c2VOclwiIH07XG4gIHB1YmxpYyBjb2x1bW5zOiBhbnlbXSA9IFtdO1xuXG4gIHB1YmxpYyBjdXJyZW50UGVuZGluZ0xpbmU6IFRyYW5zYWN0aW9uTGluZUluZm87XG4gIHB1YmxpYyBjdXJyZW50UmVhc29uOiBSZXNvbHZlUGVuZGluZ0xpbmVSZWFzb25SZXF1ZXN0O1xuICBwdWJsaWMgZWRpdGluZ0xpbmU6IFRyYW5zYWN0aW9uTGluZUluZm87XG5cbiAgcHVibGljIGRpYWxvZ1Byb21wdEhlYWRlcjogc3RyaW5nID0gXCJcIjtcblxuICBwdWJsaWMgcm9vdEVsZW1lbnQ6IEhUTUxFbGVtZW50ID0gbnVsbDtcblxuICBwcml2YXRlIF9zdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xuICBwcml2YXRlIGN1cnJlbnRPcGVyYXRpb25TdGF0dXM6IExpbmVPcGVyYXRpb25TdGF0dXM7XG4gIHByaXZhdGUgX2luT3V0Q29sbGVjdGlvbjogQ29Eb21haW5WYWx1ZVtdID0gW107XG4gIHByaXZhdGUgX29rT3JDYW5jZWxDbGljazogYm9vbGVhbiA9IGZhbHNlO1xuICBwcml2YXRlIF9zaG93Q2hhcmFjdGVyaXN0aWM6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgc2VydmljZTogVHJhbnNhY3Rpb25TZXJ2aWNlLFxuICAgIHB1YmxpYyB0cmFuc2FjdGlvbkV2ZW50czogVHJhbnNhY3Rpb25FdmVudFNlcnZpY2UsXG4gICAgcHVibGljIHByb21wdFNlcnZpY2U6IFByb21wdFNlcnZpY2UsXG4gICAgcHVibGljIF9kaWN0aW9uYXJ5U2VydmljZTogRGljdGlvbmFyeVNlcnZpY2UsXG4gICkge1xuICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMucHVzaChcbiAgICAgIHRoaXMuc2VydmljZS50cmFuc2FjdGlvblVwZGF0ZWQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5saW5lc0NoYW5nZWQuZW1pdCh0aGlzLndhaXRGb3JMaW5lc0NoYW5nZWRUb09wZW5DYXJ0KTtcbiAgICAgICAgdGhpcy53YWl0Rm9yTGluZXNDaGFuZ2VkVG9PcGVuQ2FydCA9IGZhbHNlO1xuICAgICAgfSksXG5cbiAgICAgIHRoaXMudHJhbnNhY3Rpb25FdmVudHMuYWRkVG9DYXJ0QnlTa3Uuc3Vic2NyaWJlKChwYXJhbXM6IHtza3U6IHN0cmluZywgYW1vdW50OiBudW1iZXIsIHBvcENhcnQ6IGJvb2xlYW59KSA9PiB7XG4gICAgICAgICAgdGhpcy53YWl0Rm9yTGluZXNDaGFuZ2VkVG9PcGVuQ2FydCA9IHBhcmFtcy5wb3BDYXJ0O1xuICAgICAgICAgIHRoaXMuYWRkVG9DYXJ0KHBhcmFtcy5za3UsIHBhcmFtcy5hbW91bnQpLnRoZW4oKTtcbiAgICAgICAgfSksXG5cbiAgICAgIHRoaXMudHJhbnNhY3Rpb25FdmVudHMuYWRkQXJ0aWNsZUxpbmVBdC5zdWJzY3JpYmUoKHBhcmFtczoge3NrdTogc3RyaW5nLCBhbW91bnQ6IG51bWJlciwgbGluZU5yOiBudW1iZXIsIGJlZm9yZU9yQWZ0ZXI6IFBvc2l0aW9uR3JpZFJvd30pID0+IHtcbiAgICAgICAgICB0aGlzLmFkZEFydGljbGVMaW5lVG9DYXJ0QXQocGFyYW1zLnNrdSwgcGFyYW1zLmFtb3VudCwgcGFyYW1zLmxpbmVOciwgcGFyYW1zLmJlZm9yZU9yQWZ0ZXIpLnRoZW4oKTtcbiAgICAgIH0pLFxuXG4gICAgICB0aGlzLnRyYW5zYWN0aW9uRXZlbnRzLmFkZFRleHRMaW5lQXQuc3Vic2NyaWJlKChwYXJhbXM6IHt0ZXh0OiBzdHJpbmcsIGxpbmVOcjogbnVtYmVyLCBiZWZvcmVPckFmdGVyOiBQb3NpdGlvbkdyaWRSb3d9KSA9PiB7XG4gICAgICAgIHRoaXMuYWRkVGV4dExpbmVUb0NhcnRBdChwYXJhbXMudGV4dCwgcGFyYW1zLmxpbmVOciwgcGFyYW1zLmJlZm9yZU9yQWZ0ZXIpLnRoZW4oKTtcbiAgICAgIH0pLFxuXG4gICAgICB0aGlzLnRyYW5zYWN0aW9uRXZlbnRzLmNoYW5nZUxpbmVTZXF1ZW5jZS5zdWJzY3JpYmUoKHBhcmFtczoge2Zyb21JbmRleDogbnVtYmVyLCB0b0luZGV4OiBudW1iZXJ9KSA9PiB7XG4gICAgICAgIHRoaXMuY2hhbmdlTGluZVNlcXVlbmNlKHBhcmFtcy5mcm9tSW5kZXgsIHBhcmFtcy50b0luZGV4KS50aGVuKCk7XG4gICAgICB9KSxcblxuICAgICAgdGhpcy50cmFuc2FjdGlvbkV2ZW50cy5hZGRUb0NhcnRCeVNlbGVjdG9yUmVzdWx0LnN1YnNjcmliZShcbiAgICAgICAgKHBhcmFtczoge3NlbGVjdG9yUmVzdWx0OiB7Z29vZElkOiBudW1iZXIsIGJhc2VHb29kSWQ6IG51bWJlciwgc2VsZWN0b3JEYXRhOiBhbnksIHF1YW50aXR5OiBudW1iZXJ9LCBwb3BDYXJ0OiBib29sZWFufSkgPT4ge1xuICAgICAgICAgIHRoaXMud2FpdEZvckxpbmVzQ2hhbmdlZFRvT3BlbkNhcnQgPSBwYXJhbXMucG9wQ2FydDtcbiAgICAgICAgICB0aGlzLmFkZFRvQ2FydEJ5U2VsZWN0b3JSZXN1bHQocGFyYW1zLnNlbGVjdG9yUmVzdWx0KS50aGVuKCk7XG4gICAgICAgIH0pLFxuXG4gICAgICB0aGlzLnRyYW5zYWN0aW9uRXZlbnRzLm9wZW5TaG9wcGluZ0NhcnRNb2R1bGUuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5vcGVuQ2FydC5lbWl0KGZhbHNlKTtcbiAgICAgIH0pLFxuXG4gICAgICB0aGlzLnRyYW5zYWN0aW9uRXZlbnRzLmFkZFVzZXJSZWxhdGlvblNob3BwaW5nQ2FydE1vZHVsZS5zdWJzY3JpYmUoKGxvZ2luOiB7dXNlcjogc3RyaW5nLCBwdzogc3RyaW5nfSkgPT4ge1xuICAgICAgICB0aGlzLmFkZFVzZXJSZWxhdGlvblRvVHJhbnNhY3Rpb25BbmRMb2dpbihsb2dpbi51c2VyLCBsb2dpbi5wdyk7XG4gICAgICB9KSxcblxuICAgICAgdGhpcy50cmFuc2FjdGlvbkV2ZW50cy5hZGROZXdVc2VyVG9TaG9wcGluZ0NhcnRNb2R1bGUuc3Vic2NyaWJlKChlbWFpbEFkZHJlc3MpID0+IHtcbiAgICAgICAgdGhpcy5hZGRFbWFpbEFkZHJlc3NUb1RyYW5zYWN0aW9uKGVtYWlsQWRkcmVzcyk7XG4gICAgICB9KVxuICAgICk7XG5cbiAgICB0aGlzLmNvbHVtbnMucHVzaChcbiAgICAgIHtmaWVsZDogXCJ3YXJlaG91c2VOclwiLCBoZWFkZXJUZXh0OiB0aGlzLl9kaWN0aW9uYXJ5U2VydmljZS5nZXQoXCJXQVJFSE9VU0VcIiksIGFsbG93RmlsdGVyaW5nOiBmYWxzZX0sXG4gICAgICB7ZmllbGQ6IFwid2FyZWhvdXNlRGVzY1wiLCBoZWFkZXJUZXh0OiB0aGlzLl9kaWN0aW9uYXJ5U2VydmljZS5nZXQoXCJERVNDUklQVElPTlwiKX0sXG4gICAgICB7ZmllbGQ6IFwic3RvY2tBbW91bnRcIiwgaGVhZGVyVGV4dDogdGhpcy5fZGljdGlvbmFyeVNlcnZpY2UuZ2V0KFwiU1RPQ0tcIil9XG4gICAgKTtcblxuICB9XG5cbiAgYXN5bmMgbmdPbkluaXQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhpcy5jb21taXNzaW9uQ29kZXMgPSBhd2FpdCB0aGlzLnNlcnZpY2UuZ2V0Q29tbWlzc2lvbkNvZGVzKFwiTkxcIik7XG4gICAgdGhpcy5saW5lc0NoYW5nZWQuZW1pdCh0aGlzLndhaXRGb3JMaW5lc0NoYW5nZWRUb09wZW5DYXJ0KTtcbiAgICB0aGlzLndhaXRGb3JMaW5lc0NoYW5nZWRUb09wZW5DYXJ0ID0gZmFsc2U7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9zdWJzY3JpcHRpb25zLmZvckVhY2goc3ViID0+IHN1Yi51bnN1YnNjcmliZSgpKTtcbiAgICB0aGlzLndhcmVob3VzZURpYWxvZy5jbG9zZSgpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGFkZFRvQ2FydChza3U6IHN0cmluZywgYW1vdW50OiBudW1iZXIpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBnb29kSWQ6IG51bWJlciAgPSBhd2FpdCB0aGlzLnNlcnZpY2UuZ2V0R29vZElkRnJvbUFydGljbGVOcihza3UpO1xuICAgIGF3YWl0IHRoaXMuX2xvYWRBcnRpY2xlKGdvb2RJZCk7XG4gICAgYXdhaXQgdGhpcy5fY3JlYXRlVHJhbnNhY3Rpb24oKTtcbiAgICBhd2FpdCB0aGlzLl9oYW5kbGVBZGRBcnRpY2xlKGFtb3VudCk7XG4gICAgdGhpcy5hcnRpY2xlQWRkZWQuZW1pdCgpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGFkZEFydGljbGVMaW5lVG9DYXJ0QXQoc2t1OiBzdHJpbmcsIGFtb3VudDogbnVtYmVyLCBsaW5lTnI6IG51bWJlciwgYmVmb3JlT3JBZnRlcjogUG9zaXRpb25HcmlkUm93KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgZ29vZElkOiBudW1iZXIgPSBhd2FpdCB0aGlzLnNlcnZpY2UuZ2V0R29vZElkRnJvbUFydGljbGVOcihza3UpO1xuICAgIGF3YWl0IHRoaXMuX2xvYWRBcnRpY2xlKGdvb2RJZCk7XG4gICAgYXdhaXQgdGhpcy5fY3JlYXRlVHJhbnNhY3Rpb24oKTtcbiAgICBhd2FpdCB0aGlzLl9oYW5kbGVBZGRBcnRpY2xlTGluZUF0KGFtb3VudCwgbGluZU5yLCBiZWZvcmVPckFmdGVyKTtcbiAgICB0aGlzLmFydGljbGVBZGRlZC5lbWl0KCk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgYWRkVGV4dExpbmVUb0NhcnRBdCh0ZXh0OiBzdHJpbmcsIGxpbmVOcjogbnVtYmVyLCBiZWZvcmVPckFmdGVyOiBQb3NpdGlvbkdyaWRSb3cpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLnNlcnZpY2UuYWRkVGV4dExpbmUoMCwgdGV4dCwgMCwgZmFsc2UsIDAsXG4gICAgICBiZWZvcmVPckFmdGVyID09PSBQb3NpdGlvbkdyaWRSb3cuQmVmb3JlID8gbGluZU5yIDogdW5kZWZpbmVkLFxuICAgICAgYmVmb3JlT3JBZnRlciA9PT0gUG9zaXRpb25HcmlkUm93LkFmdGVyID8gbGluZU5yIDogdW5kZWZpbmVkKVxuICAgICAgLnRoZW4oKHZhbHVlOiBMaW5lT3BlcmF0aW9uUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICB0aGlzLl9oYW5kbGVMaW5lT3BlcmF0aW9uU3RhdHVzKCk7XG4gICAgICAgIH0sXG4gICAgICAgIChlcnJvcikgPT4gdGhpcy5wcm9tcHRTZXJ2aWNlLnNob3dFcnJvcihlcnJvcikpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGNoYW5nZUxpbmVTZXF1ZW5jZShmcm9tSW5kZXg6IG51bWJlciwgdG9JbmRleDogbnVtYmVyKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgbGV0IGZyb21MaW5lOiBUcmFuc2FjdGlvbkxpbmVJbmZvID0gdGhpcy5fZ2V0VHJhbnNhY3Rpb25MaW5lSW5mb0J5SW5kZXgoZnJvbUluZGV4KVxuICAgIGxldCB0b0xpbmU6IFRyYW5zYWN0aW9uTGluZUluZm8gPSB0aGlzLl9nZXRUcmFuc2FjdGlvbkxpbmVJbmZvQnlJbmRleCh0b0luZGV4KTtcbiAgICBsZXQgYWJvdmVMaW5lTnI6IG51bWJlcjtcbiAgICBsZXQgYmVsb3dMaW5lTnI6IG51bWJlcjtcblxuICAgIGlmIChmcm9tSW5kZXggPiB0b0luZGV4KSB7XG4gICAgICBhYm92ZUxpbmVOciA9IHRvTGluZS5saW5lTnI7XG4gICAgfSBlbHNlIHtcbiAgICAgIGJlbG93TGluZU5yID0gdG9MaW5lLmxpbmVOcjtcbiAgICB9XG5cbiAgICBhd2FpdCB0aGlzLnNlcnZpY2UuY2hhbmdlTGluZVNlcXVlbmNlKGZyb21MaW5lLnV1aWQsIGFib3ZlTGluZU5yLCBiZWxvd0xpbmVOcilcbiAgICAgIC50aGVuKCh2YWx1ZTogTGluZU9wZXJhdGlvblJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgdGhpcy5faGFuZGxlTGluZU9wZXJhdGlvblN0YXR1cygpO1xuICAgICAgICB9LFxuICAgICAgICAoZXJyb3IpID0+IHRoaXMucHJvbXB0U2VydmljZS5zaG93RXJyb3IoZXJyb3IpKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBhZGRUb0NhcnRCeVNlbGVjdG9yUmVzdWx0KHJlc3VsdDoge2dvb2RJZDogbnVtYmVyLCBiYXNlR29vZElkOiBudW1iZXIsIHNlbGVjdG9yRGF0YTogYW55LCBxdWFudGl0eTogbnVtYmVyfSk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMuX2xvYWRBcnRpY2xlKHJlc3VsdC5nb29kSWQpO1xuICAgIGF3YWl0IHRoaXMuX2NyZWF0ZVRyYW5zYWN0aW9uKCk7XG4gICAgYXdhaXQgdGhpcy5faGFuZGxlQWRkQXJ0aWNsZShyZXN1bHQucXVhbnRpdHkpO1xuICAgIHRoaXMuYXJ0aWNsZUFkZGVkLmVtaXQoKTtcbiAgfVxuXG4gIC8vIFRPRE8gcHVibGljIHVzZXIgbG9ncyBpbi4uLi4gaG93IHJlY29ubmVjdCB0aGUgQ29ubmVjdG9yP1xuICBwdWJsaWMgYXN5bmMgYWRkVXNlclJlbGF0aW9uVG9UcmFuc2FjdGlvbkFuZExvZ2luKHVzZXJOYW1lOiBzdHJpbmcsIHBhc3N3b3JkOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBzdWNjZXNzOiBib29sZWFuID0gYXdhaXQgdGhpcy5zZXJ2aWNlLnNldFJlbGF0aW9uQnlVc2VyKHVzZXJOYW1lLCBwYXNzd29yZCk7XG4gICAgaWYgKHN1Y2Nlc3MpIHtcbiAgICAgICAgdGhpcy50cmFuc2FjdGlvbkV2ZW50cy5sb2dnZWRJbi5uZXh0KCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGFzeW5jIHNob3dTdG9ja01hbmFnZXIobGluZTogVHJhbnNhY3Rpb25MaW5lSW5mbyk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMuc2VsZWN0ZWRXYXJlaG91c2VOciA9IGxpbmUud2FyZWhvdXNlTnVtYmVyO1xuICAgIHRoaXMuYW1vdW50ID0gbGluZS5hbW91bnQ7XG4gICAgdGhpcy5jb21taXNzaW9uQ29kZSA9IGxpbmUuY29tbWlzc2lvbkNvZGU7XG4gICAgdGhpcy5zaG93KGxpbmUuYXJ0aWNsZU51bWJlcik7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgaGlkZSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAodGhpcy5fb2tPckNhbmNlbENsaWNrKSB7XG4gICAgICB0aGlzLl9va09yQ2FuY2VsQ2xpY2sgPSBmYWxzZTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgYXdhaXQgdGhpcy5vblN0b2NrTWFuYWdlckNhbmNlbENsaWNrKCk7XG4gIH1cblxuICBwdWJsaWMgc2hvdyhhcnRpY2xlTnI6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuX3JlbG9hZERhdGFDb2xsZWN0aW9ucyhhcnRpY2xlTnIpLnRoZW4oKTtcblxuICAgIHRoaXMubWVzc2FnZSA9IHRoaXMuY3VycmVudE9wZXJhdGlvblN0YXR1cy5wZW5kaW5nUmVhc29uO1xuICAgIHRoaXMud2FyZWhvdXNlR3JpZC5zZWxlY3RSb3codGhpcy5zZWxlY3RlZFdhcmVob3VzZU5yKTtcbiAgICB0aGlzLndhcmVob3VzZURpYWxvZy50YXJnZXRFbGVtZW50ID0gbnVsbDtcbiAgICB0aGlzLndhcmVob3VzZURpYWxvZy5vcGVuKCk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgb25TdG9ja01hbmFnZXJDYW5jZWxDbGljaygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLl9va09yQ2FuY2VsQ2xpY2sgPSB0cnVlO1xuICAgIHRoaXMud2FyZWhvdXNlRGlhbG9nLmNsb3NlKCk7XG5cbiAgICBpZiAodGhpcy5jdXJyZW50UmVhc29uKSB7XG4gICAgICBhd2FpdCB0aGlzLnNlcnZpY2UuY2FuY2VsQWRkVHJhbnNhY3Rpb25MaW5lKHRoaXMuY3VycmVudFJlYXNvbi5saW5lVXVpZCk7XG4gICAgfVxuXG4gICAgdGhpcy5lZGl0aW5nTGluZSA9IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBvblN0b2NrTWFuYWdlck9rQ2xpY2soKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhpcy5fb2tPckNhbmNlbENsaWNrID0gdHJ1ZTtcbiAgICB0aGlzLndhcmVob3VzZURpYWxvZy5jbG9zZSgpO1xuXG4gICAgaWYgKHRoaXMuY29tbWlzc2lvbkNvZGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5jdXJyZW50UmVhc29uLmNvbW1pc3Npb25Db2RlID0gdGhpcy5jb21taXNzaW9uQ29kZS52YWx1ZU9mKCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuYW1vdW50ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuY3VycmVudFJlYXNvbi5xdWFudGl0eSA9IHRoaXMuYW1vdW50LnZhbHVlT2YoKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5zZWxlY3RlZFdhcmVob3VzZU5yICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuY3VycmVudFJlYXNvbi53YXJlaG91c2VOciA9IHRoaXMuc2VsZWN0ZWRXYXJlaG91c2VOcjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5jdXJyZW50UmVhc29uKSB7XG4gICAgICBhd2FpdCB0aGlzLnNlcnZpY2UucmVzb2x2ZVBlbmRpbmdMaW5lUmVhc29uKHRoaXMuY3VycmVudFJlYXNvbilcbiAgICAgICAgLnRoZW4oKHZhbHVlOiBMaW5lT3BlcmF0aW9uUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICB0aGlzLl9oYW5kbGVMaW5lT3BlcmF0aW9uU3RhdHVzKCk7XG4gICAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodGhpcy5lZGl0aW5nTGluZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGF3YWl0IHRoaXMuc2VydmljZS5hZGRUcmFuc2FjdGlvbkxpbmUoVHJhbnNhY3Rpb25MaW5lVHlwZS5BcnRpY2xlTGluZSwgdGhpcy5uZXdBcnRpY2xlTnIsIHRoaXMuYW1vdW50LCB0aGlzLnNlbGVjdGVkV2FyZWhvdXNlTnIsIHRoaXMuY29tbWlzc2lvbkNvZGUsIHRoaXMuaXNSZXR1cm4sIDAsIDApXG4gICAgICAgICAgLnRoZW4oKHZhbHVlOiBMaW5lT3BlcmF0aW9uUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX2hhbmRsZUxpbmVPcGVyYXRpb25TdGF0dXMoKTtcbiAgICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGF3YWl0IHRoaXMuc2VydmljZS5jaGFuZ2VUcmFuc2FjdGlvbkxpbmVRdWFudGl0eSh0aGlzLmVkaXRpbmdMaW5lLnV1aWQsIHRoaXMuYW1vdW50KVxuICAgICAgICAgIC50aGVuKCh2YWx1ZTogTGluZU9wZXJhdGlvblJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICB0aGlzLl9oYW5kbGVMaW5lT3BlcmF0aW9uU3RhdHVzKCk7XG4gICAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5lZGl0aW5nTGluZSA9IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHB1YmxpYyBoYW5kbGVSb3dzU2VsZWN0ZWQocm93czogYW55KTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RlZFdhcmVob3VzZU5yID0gKHJvd3MuZmluZCh4ID0+IHggIT09IHVuZGVmaW5lZCkpLndhcmVob3VzZU5yO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGhhbmRsZUNoYXJhY3RlcmlzdGljQW5zd2VyT2tDbGljayhhbnN3ZXI6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMuY3VycmVudFJlYXNvbiA9IG5ldyBSZXNvbHZlUGVuZGluZ0xpbmVSZWFzb25SZXF1ZXN0KHRoaXMuY3VycmVudE9wZXJhdGlvblN0YXR1cy51dWlkLCB0aGlzLmN1cnJlbnRPcGVyYXRpb25TdGF0dXMucGVuZGluZ1JlYXNvbiwgdGhpcy5jdXJyZW50T3BlcmF0aW9uU3RhdHVzLnBlbmRpbmdSZWFzb25UeXBlKTtcbiAgICB0aGlzLmN1cnJlbnRSZWFzb24udGV4dHVhbFVzZXJJbnB1dCA9IGFuc3dlcjtcbiAgICBhd2FpdCB0aGlzLnNlcnZpY2UucmVzb2x2ZVBlbmRpbmdMaW5lUmVhc29uKHRoaXMuY3VycmVudFJlYXNvbilcbiAgICAgIC50aGVuKCh2YWx1ZTogTGluZU9wZXJhdGlvblJlc3BvbnNlKSA9PiB7XG4gICAgICAgIHRoaXMuX2hhbmRsZUxpbmVPcGVyYXRpb25TdGF0dXMoKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBfcmVsb2FkRGF0YUNvbGxlY3Rpb25zKGFydGljbGVOcjogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgZ29vZElkOiBudW1iZXIgID0gYXdhaXQgdGhpcy5zZXJ2aWNlLmdldEdvb2RJZEZyb21BcnRpY2xlTnIoYXJ0aWNsZU5yKTtcbiAgICB0aGlzLnRyYW5zYWN0aW9uQXJ0aWNsZVdhcmVob3VzZXMgPSBhd2FpdCB0aGlzLnNlcnZpY2UuZ2V0VHJhbnNhY3Rpb25BcnRpY2xlV2FyZWhvdXNlcyhnb29kSWQpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBfaGFuZGxlQWRkQXJ0aWNsZShhbW91bnQ6IG51bWJlciA9IDEpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLnNlcnZpY2UuYWRkVHJhbnNhY3Rpb25MaW5lKFRyYW5zYWN0aW9uTGluZVR5cGUuQXJ0aWNsZUxpbmUsXG4gICAgICB0aGlzLm5ld0FydGljbGVOcixcbiAgICAgIGFtb3VudCxcbiAgICAgIHRoaXMubmV3QXJ0aWNsZS5zdGFuZGFyZFdhcmVIb3VzZSxcbiAgICAgIHRoaXMubmV3QXJ0aWNsZS5jb21taXNzaW9uQ29kZSxcbiAgICAgIGZhbHNlLFxuICAgICAgMCxcbiAgICAgIDApXG4gICAgICAudGhlbigodmFsdWU6IExpbmVPcGVyYXRpb25SZXNwb25zZSkgPT4ge1xuICAgICAgICB0aGlzLl9oYW5kbGVMaW5lT3BlcmF0aW9uU3RhdHVzKCk7XG4gICAgICB9LFxuICAgICAgKGVycm9yKSA9PiB0aGlzLnByb21wdFNlcnZpY2Uuc2hvd0Vycm9yKGVycm9yKSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIF9oYW5kbGVBZGRBcnRpY2xlTGluZUF0KGFtb3VudDogbnVtYmVyLCBsaW5lTnI6IG51bWJlciwgYmVmb3JlT3JBZnRlcjogUG9zaXRpb25HcmlkUm93KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgdGhpcy5zZXJ2aWNlLmFkZFRyYW5zYWN0aW9uTGluZShUcmFuc2FjdGlvbkxpbmVUeXBlLkFydGljbGVMaW5lLFxuICAgICAgdGhpcy5uZXdBcnRpY2xlTnIsXG4gICAgICBhbW91bnQsXG4gICAgICB0aGlzLm5ld0FydGljbGUuc3RhbmRhcmRXYXJlSG91c2UsXG4gICAgICB0aGlzLm5ld0FydGljbGUuY29tbWlzc2lvbkNvZGUsXG4gICAgICBmYWxzZSxcbiAgICAgIGJlZm9yZU9yQWZ0ZXIgPT09IFBvc2l0aW9uR3JpZFJvdy5CZWZvcmUgPyBsaW5lTnIgOiB1bmRlZmluZWQsXG4gICAgICBiZWZvcmVPckFmdGVyID09PSBQb3NpdGlvbkdyaWRSb3cuQWZ0ZXIgPyBsaW5lTnIgOiB1bmRlZmluZWQpXG4gICAgICAudGhlbigodmFsdWU6IExpbmVPcGVyYXRpb25SZXNwb25zZSkgPT4ge1xuICAgICAgICAgIHRoaXMuX2hhbmRsZUxpbmVPcGVyYXRpb25TdGF0dXMoKTtcbiAgICAgICAgfSxcbiAgICAgICAgKGVycm9yKSA9PiB0aGlzLnByb21wdFNlcnZpY2Uuc2hvd0Vycm9yKGVycm9yKSk7XG4gIH1cblxuICBwcml2YXRlIF9nZXRXYXJlSG91c2VOb0Zyb21BcnRpY2xlKCk6IG51bWJlciB7XG4gICAgaWYgKHRoaXMubmV3QXJ0aWNsZSAhPT0gdW5kZWZpbmVkICYmIHRoaXMubmV3QXJ0aWNsZS5zdG9ja0xvY2F0aW9ucyAhPT0gdW5kZWZpbmVkICYmIHRoaXMubmV3QXJ0aWNsZS5zdG9ja0xvY2F0aW9ucy5sZW5ndGgpIHtcbiAgICAgIHJldHVybiB0aGlzLm5ld0FydGljbGUuc3RvY2tMb2NhdGlvbnNbMF0ud2FyZWhvdXNlTnI7XG4gICAgfVxuICAgIHJldHVybiAwO1xuICB9XG5cbiAgcHJpdmF0ZSBfaXNMaW5lT3BlcmF0aW9uU3RhdHVzKCk6IGJvb2xlYW4ge1xuICAgIHRoaXMuY3VycmVudE9wZXJhdGlvblN0YXR1cyA9IHRoaXMuc2VydmljZS5jdXJyZW50TGluZU9wZXJhdGlvblN0YXR1cztcbiAgICBpZiAodGhpcy5jdXJyZW50T3BlcmF0aW9uU3RhdHVzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIF9jaGVja0lmU2hvcHBpbmdDYXJ0TmVlZHNUb0Rpc3BsYXkoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc2VydmljZS5jdXJyZW50VHJhbnNhY3Rpb24gJiYgdGhpcy5zZXJ2aWNlLmN1cnJlbnRUcmFuc2FjdGlvbi50cmFuc2FjdGlvbk5yKSB7XG4gICAgICB0aGlzLmxpbmVzQ2hhbmdlZC5lbWl0KHRoaXMud2FpdEZvckxpbmVzQ2hhbmdlZFRvT3BlbkNhcnQpO1xuICAgICAgdGhpcy53YWl0Rm9yTGluZXNDaGFuZ2VkVG9PcGVuQ2FydCA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgX2NvbmZpcm1BY3Rpb24oKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhpcy5jdXJyZW50UmVhc29uID0gbmV3IFJlc29sdmVQZW5kaW5nTGluZVJlYXNvblJlcXVlc3QodGhpcy5jdXJyZW50T3BlcmF0aW9uU3RhdHVzLnV1aWQsIHRoaXMuY3VycmVudE9wZXJhdGlvblN0YXR1cy5wZW5kaW5nUmVhc29uLCB0aGlzLmN1cnJlbnRPcGVyYXRpb25TdGF0dXMucGVuZGluZ1JlYXNvblR5cGUpO1xuICAgIGNvbnN0IHBlbmRpbmdSZWFzb25UZXh0OiBzdHJpbmcgPSBhd2FpdCB0aGlzLl9nZXRQZW5kaW5nUmVhc29uVGV4dCh0aGlzLmN1cnJlbnRPcGVyYXRpb25TdGF0dXMucGVuZGluZ1JlYXNvbik7XG4gICAgdGhpcy5jdXJyZW50UmVhc29uLmNvbmZpcm1hdGlvbiAgPSBhd2FpdCB0aGlzLnByb21wdFNlcnZpY2Uuc2hvd1llc05vKHBlbmRpbmdSZWFzb25UZXh0LCBcIiBcIik7XG4gICAgYXdhaXQgdGhpcy5zZXJ2aWNlLnJlc29sdmVQZW5kaW5nTGluZVJlYXNvbih0aGlzLmN1cnJlbnRSZWFzb24pXG4gICAgICAudGhlbigodmFsdWU6IExpbmVPcGVyYXRpb25SZXNwb25zZSkgPT4ge1xuICAgICAgICB0aGlzLl9oYW5kbGVMaW5lT3BlcmF0aW9uU3RhdHVzKCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgX3Nob3dJbmZvcm1hdGlvbigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLmN1cnJlbnRSZWFzb24gPSBuZXcgUmVzb2x2ZVBlbmRpbmdMaW5lUmVhc29uUmVxdWVzdCh0aGlzLmN1cnJlbnRPcGVyYXRpb25TdGF0dXMudXVpZCwgdGhpcy5jdXJyZW50T3BlcmF0aW9uU3RhdHVzLnBlbmRpbmdSZWFzb24sIHRoaXMuY3VycmVudE9wZXJhdGlvblN0YXR1cy5wZW5kaW5nUmVhc29uVHlwZSk7XG4gICAgY29uc3QgcGVuZGluZ1JlYXNvblRleHQ6IHN0cmluZyA9IGF3YWl0IHRoaXMuX2dldFBlbmRpbmdSZWFzb25UZXh0KHRoaXMuY3VycmVudE9wZXJhdGlvblN0YXR1cy5wZW5kaW5nUmVhc29uKTtcbiAgICBhd2FpdCB0aGlzLnByb21wdFNlcnZpY2Uuc2hvd09rTW9kYWwocGVuZGluZ1JlYXNvblRleHQsIFwiIFwiKTtcbiAgICBhd2FpdCB0aGlzLnNlcnZpY2UucmVzb2x2ZVBlbmRpbmdMaW5lUmVhc29uKHRoaXMuY3VycmVudFJlYXNvbilcbiAgICAgIC50aGVuKCh2YWx1ZTogTGluZU9wZXJhdGlvblJlc3BvbnNlKSA9PiB7XG4gICAgICAgIHRoaXMuX2hhbmRsZUxpbmVPcGVyYXRpb25TdGF0dXMoKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBfZ2V0UGVuZGluZ1JlYXNvblRleHQocGVuZGluZ1JlYXNvbjogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBpZiAocGVuZGluZ1JlYXNvbiA9PT0gXCJBUlRJQ0xFX0lTX0RJU0NPTlRJTlVFRF9ET19ZT1VfV0FOVF9UT19DT05USU5VRV9QTEVBU0VfQ09ORklSTVwiKSB7XG4gICAgICByZXR1cm4gdGhpcy5fZGljdGlvbmFyeVNlcnZpY2UuZ2V0KFwiQVJUSUNMRV9JTl9PVVRfQ09MTEVDVElPTlwiKS5yZXBsYWNlKFwifH5cIiwgYXdhaXQgdGhpcy5nZXRJbk91dENvbGxlY3Rpb25PZkFydGljbGUoKSk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9kaWN0aW9uYXJ5U2VydmljZS5nZXQocGVuZGluZ1JlYXNvbik7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGdldEluT3V0Q29sbGVjdGlvbk9mQXJ0aWNsZSgpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGlmICghdGhpcy5faW5PdXRDb2xsZWN0aW9uLmxlbmd0aCkge1xuICAgICAgdGhpcy5faW5PdXRDb2xsZWN0aW9uID0gYXdhaXQgdGhpcy5zZXJ2aWNlLmdldEluT3V0Q29sbGVjdGlvbihcIk5MXCIpO1xuICAgIH1cblxuICAgIGNvbnN0IGRvbWFpblZhbHVlOiBDb0RvbWFpblZhbHVlID0gdGhpcy5faW5PdXRDb2xsZWN0aW9uLmZpbmQoZWxlbWVudCA9PiBlbGVtZW50LmNvZGUgPT09IHRoaXMubmV3QXJ0aWNsZS5pbk91dENvbGxlY3Rpb24pO1xuICAgIGlmIChkb21haW5WYWx1ZSkge1xuICAgICAgcmV0dXJuIGRvbWFpblZhbHVlLmRlc2NyaXB0aW9uO1xuICAgIH1cbiAgICByZXR1cm4gXCJcIjtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgX2hhbmRsZUxpbmVPcGVyYXRpb25TdGF0dXMoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKHRoaXMuX2lzTGluZU9wZXJhdGlvblN0YXR1cygpKSB7XG4gICAgICBhd2FpdCB0aGlzLl9oYW5kbGVQZW5kaW5nTGluZSh0aGlzLmN1cnJlbnRPcGVyYXRpb25TdGF0dXMudXVpZCkudGhlbigpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9jaGVja0lmU2hvcHBpbmdDYXJ0TmVlZHNUb0Rpc3BsYXkoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlICBhc3luYyBfaGFuZGxlUGVuZGluZ0xpbmUobGluZVV1aWQ6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMuY3VycmVudFJlYXNvbiA9IG5ldyBSZXNvbHZlUGVuZGluZ0xpbmVSZWFzb25SZXF1ZXN0KHRoaXMuY3VycmVudE9wZXJhdGlvblN0YXR1cy51dWlkLCB0aGlzLmN1cnJlbnRPcGVyYXRpb25TdGF0dXMucGVuZGluZ1JlYXNvbiwgdGhpcy5jdXJyZW50T3BlcmF0aW9uU3RhdHVzLnBlbmRpbmdSZWFzb25UeXBlKTtcbiAgICB0aGlzLmN1cnJlbnRQZW5kaW5nTGluZSA9IHRoaXMuc2VydmljZS5jdXJyZW50TGluZXMuZmluZChsID0+IGwudXVpZCA9PT0gbGluZVV1aWQpO1xuXG4gICAgc3dpdGNoICh0aGlzLmN1cnJlbnRPcGVyYXRpb25TdGF0dXMucGVuZGluZ1JlYXNvblR5cGUpIHtcbiAgICAgIGNhc2UgUGVuZGluZ1JlYXNvblR5cGUuQUJPUlRFRDpcbiAgICAgIGNhc2UgUGVuZGluZ1JlYXNvblR5cGUuQ0FOQ0VMTEVEOlxuICAgICAgICB0aGlzLnNlcnZpY2UuY2FuY2VsQWRkVHJhbnNhY3Rpb25MaW5lKHRoaXMuY3VycmVudFBlbmRpbmdMaW5lLnV1aWQpLnRoZW4oKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFBlbmRpbmdSZWFzb25UeXBlLkNPTkZJUk1BVElPTl9ORUVERUQ6XG4gICAgICAgIGF3YWl0IHRoaXMuX2NvbmZpcm1BY3Rpb24oKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFBlbmRpbmdSZWFzb25UeXBlLklOVkFMSURfTE9HSVNUSUNTOlxuICAgICAgICBhd2FpdCB0aGlzLnNob3dTdG9ja01hbmFnZXIodGhpcy5jdXJyZW50UGVuZGluZ0xpbmUpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgUGVuZGluZ1JlYXNvblR5cGUuTk9OX0NSSVRJQ0FMX0RJU0NPTlRJTlVBVElPTjpcbiAgICAgICAgYXdhaXQgdGhpcy5fc2hvd0luZm9ybWF0aW9uKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBQZW5kaW5nUmVhc29uVHlwZS5DSEFSQUNURVJJU1RJQ1NfQU5TV0VSX05FRURFRDpcbiAgICAgICAgdGhpcy5DaGFyYWN0ZXJpc3RpY3NBbnN3ZXJOZWVkZWQoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFBlbmRpbmdSZWFzb25UeXBlLk5PTkU6XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aGlzLmN1cnJlbnRSZWFzb24gPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuY3VycmVudFBlbmRpbmdMaW5lID0gdW5kZWZpbmVkO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIF9jcmVhdGVUcmFuc2FjdGlvbigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAoIXRoaXMuc2VydmljZS5jdXJyZW50VHJhbnNhY3Rpb24udHJhbnNhY3Rpb25Ocikge1xuICAgICAgaWYgKCFhd2FpdCB0aGlzLnNlcnZpY2UuY3JlYXRlVHJhbnNhY3Rpb24oKSkge1xuICAgICAgICB0aHJvd0Vycm9yKFwiRmFpbGVkIHRvIGNyZWF0ZSB0cmFuc2FjdGlvblwiKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIF9sb2FkQXJ0aWNsZShnb29kSWQ6IG51bWJlcik6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMubmV3QXJ0aWNsZSA9IGF3YWl0IHRoaXMuc2VydmljZS5nZXRBcnRpY2xlRnVsbE9iamVjdChnb29kSWQpO1xuICAgIHRoaXMubmV3QXJ0aWNsZU5yID0gdGhpcy5uZXdBcnRpY2xlLmFydGljbGVOcjtcbiAgfVxuXG4gIHByaXZhdGUgYWRkRW1haWxBZGRyZXNzVG9UcmFuc2FjdGlvbihlbWFpbEFkZHJlc3M6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuc2VydmljZS5lbWFpbEFkZHJlc3MgPSBlbWFpbEFkZHJlc3M7XG4gIH1cblxuICBwcml2YXRlIENoYXJhY3RlcmlzdGljc0Fuc3dlck5lZWRlZCgpOiB2b2lkIHtcbiAgICB0aGlzLmNoYXJhY3RlcmlzdGljQW5zd2VyLnF1ZXN0aW9uID0gdGhpcy5jdXJyZW50T3BlcmF0aW9uU3RhdHVzLmNoYXJhY3RlcmlzdGljLnF1ZXN0aW9uO1xuICAgIHRoaXMuY2hhcmFjdGVyaXN0aWNBbnN3ZXIudGl0bGUgPSB0aGlzLm5ld0FydGljbGUuZGVzY3JpcHRpb247XG4gICAgdGhpcy5jaGFyYWN0ZXJpc3RpY0Fuc3dlci52YWx1ZSA9IHRoaXMuY3VycmVudE9wZXJhdGlvblN0YXR1cy5jaGFyYWN0ZXJpc3RpYy52YWx1ZTtcbiAgICB0aGlzLmNoYXJhY3RlcmlzdGljQW5zd2VyLmNoYXJhY3RlcmlzdGljcyA9IHRoaXMuY3VycmVudE9wZXJhdGlvblN0YXR1cy5jaGFyYWN0ZXJpc3RpYy50cmFuc2FjdGlvbkxpbmVDaGFyYWN0ZXJpc3RpY0Nob2ljZXM7XG5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuY2hhcmFjdGVyaXN0aWNBbnN3ZXIub3BlbigpO1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLW1hZ2ljLW51bWJlcnNcbiAgICB9LCAxMDAwKTtcblxuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0TGluZVV1aWRCeUxpbmVOcihsaW5lTnI6IG51bWJlcik6IHN0cmluZyB7XG4gICAgY29uc3QgdHJhbnNhY3Rpb25MaW5lOiBUcmFuc2FjdGlvbkxpbmVJbmZvW10gPSB0aGlzLnNlcnZpY2UuY3VycmVudExpbmVzLmZpbHRlcih0cmFuc0xpbmVzID0+IHRyYW5zTGluZXMubGluZU5yID09PSBsaW5lTnIpO1xuICAgIHJldHVybiB0cmFuc2FjdGlvbkxpbmVbMF0udXVpZDtcbiAgfVxuXG4gIHByaXZhdGUgX2dldFRyYW5zYWN0aW9uTGluZUluZm9CeUluZGV4KGluZGV4OiBudW1iZXIpOiBUcmFuc2FjdGlvbkxpbmVJbmZvIHtcbiAgICBpZiAoaW5kZXggPj0gMCAmJiBpbmRleCA8IHRoaXMuc2VydmljZS5jdXJyZW50TGluZXMubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gdGhpcy5zZXJ2aWNlLmN1cnJlbnRMaW5lc1tpbmRleF1cbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export var PositionGridRow;
|
|
2
|
+
(function (PositionGridRow) {
|
|
3
|
+
PositionGridRow["Before"] = "before";
|
|
4
|
+
PositionGridRow["After"] = "after";
|
|
5
|
+
})(PositionGridRow || (PositionGridRow = {}));
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9zaXRpb24tZ3JpZC1yb3cuZW51bS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hcHAvZW51bS9wb3NpdGlvbi1ncmlkLXJvdy5lbnVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBTixJQUFZLGVBR1g7QUFIRCxXQUFZLGVBQWU7SUFDekIsb0NBQWlCLENBQUE7SUFDakIsa0NBQWUsQ0FBQTtBQUNqQixDQUFDLEVBSFcsZUFBZSxLQUFmLGVBQWUsUUFHMUIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBQb3NpdGlvbkdyaWRSb3cge1xyXG4gIEJlZm9yZSA9IFwiYmVmb3JlXCIsXHJcbiAgQWZ0ZXIgPSBcImFmdGVyXCIsXHJcbn1cclxuIl19
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export class StandardText {
|
|
2
|
+
}
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhbmRhcmQtdGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kZWwvc3RhbmRhcmQtdGV4dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sWUFBWTtDQUl4QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBTdGFuZGFyZFRleHQge1xyXG4gIHB1YmxpYyB0ZXh0SWQ6IG51bWJlcjtcclxuICBwdWJsaWMgZGVzY3JpcHRpb246IHN0cmluZztcclxuICBwdWJsaWMgdGV4dDogc3RyaW5nO1xyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export class TransactionAddTextLineRequest {
|
|
2
|
+
constructor() {
|
|
3
|
+
this.showOnDocuments = false;
|
|
4
|
+
this.text = "";
|
|
5
|
+
this.articleBound = false;
|
|
6
|
+
this.refArticleLineNr = 0;
|
|
7
|
+
this.aboveLineNr = 0;
|
|
8
|
+
this.belowLineNr = 0;
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tYWRkLXRleHQtbGluZS1yZXF1ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FwcC9tb2RlbC90cmFuc2FjdGlvbi1hZGQtdGV4dC1saW5lLXJlcXVlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFPLDZCQUE2QjtJQUExQztRQUVTLG9CQUFlLEdBQVksS0FBSyxDQUFDO1FBQ2pDLFNBQUksR0FBVyxFQUFFLENBQUM7UUFDbEIsaUJBQVksR0FBWSxLQUFLLENBQUM7UUFDOUIscUJBQWdCLEdBQVcsQ0FBQyxDQUFDO1FBQzdCLGdCQUFXLEdBQVcsQ0FBQyxDQUFDO1FBQ3hCLGdCQUFXLEdBQVcsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7Q0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBUcmFuc2FjdGlvbkFkZFRleHRMaW5lUmVxdWVzdCAge1xyXG4gIHB1YmxpYyB0cmFuc2FjdGlvblV1aWQ6IHN0cmluZztcclxuICBwdWJsaWMgc2hvd09uRG9jdW1lbnRzOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIHRleHQ6IHN0cmluZyA9IFwiXCI7XHJcbiAgcHVibGljIGFydGljbGVCb3VuZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyByZWZBcnRpY2xlTGluZU5yOiBudW1iZXIgPSAwO1xyXG4gIHB1YmxpYyBhYm92ZUxpbmVOcjogbnVtYmVyID0gMDtcclxuICBwdWJsaWMgYmVsb3dMaW5lTnI6IG51bWJlciA9IDA7XHJcbn1cclxuIl19
|
|
@@ -3,6 +3,7 @@ import { Injectable } from "@angular/core";
|
|
|
3
3
|
import { LanguageCode } from "../enum/language-code.enum";
|
|
4
4
|
import { StringUtils } from "../utils/string-utils";
|
|
5
5
|
import { Dictionary } from "../../assets/dictionary/text.properties";
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
6
7
|
// The localization service, providing peers with text translation functionality.
|
|
7
8
|
export class DictionaryService {
|
|
8
9
|
constructor() {
|
|
@@ -23,15 +24,18 @@ export class DictionaryService {
|
|
|
23
24
|
setDictionary(language) {
|
|
24
25
|
return __awaiter(this, void 0, void 0, function* () {
|
|
25
26
|
this._language = language || LanguageCode.Dutch;
|
|
26
|
-
|
|
27
|
-
|
|
27
|
+
this._loadDictionary();
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
_loadDictionary() {
|
|
31
|
+
if (!this._dictionaries.has(this._language)) {
|
|
32
|
+
const dictionary = new Dictionary();
|
|
33
|
+
// eslint-disable-next-line no-magic-numbers
|
|
34
|
+
if (dictionary.strings[this._language.substr(0, 2).toLowerCase()] !== undefined) {
|
|
28
35
|
// eslint-disable-next-line no-magic-numbers
|
|
29
|
-
|
|
30
|
-
// eslint-disable-next-line no-magic-numbers
|
|
31
|
-
this._dictionaries.set(this._language, dictionary.strings[this._language.substr(0, 2).toLowerCase()]);
|
|
32
|
-
}
|
|
36
|
+
this._dictionaries.set(this._language, dictionary.strings[this._language.substr(0, 2).toLowerCase()]);
|
|
33
37
|
}
|
|
34
|
-
}
|
|
38
|
+
}
|
|
35
39
|
}
|
|
36
40
|
/**
|
|
37
41
|
* Returns the localized text for the given dictionary key.
|
|
@@ -44,6 +48,10 @@ export class DictionaryService {
|
|
|
44
48
|
if (!StringUtils.IsStringWithLength(key)) {
|
|
45
49
|
return key || "";
|
|
46
50
|
}
|
|
51
|
+
if (this.language === undefined) {
|
|
52
|
+
this._language = LanguageCode.Dutch;
|
|
53
|
+
this._loadDictionary();
|
|
54
|
+
}
|
|
47
55
|
let text = this._dictionaries.get(this.language)[key];
|
|
48
56
|
text = StringUtils.IsStringWithLength(text) ? text : key;
|
|
49
57
|
if (upperCaseFirst) {
|
|
@@ -58,8 +66,11 @@ export class DictionaryService {
|
|
|
58
66
|
return text;
|
|
59
67
|
}
|
|
60
68
|
}
|
|
69
|
+
DictionaryService.ɵprov = i0.ɵɵdefineInjectable({ factory: function DictionaryService_Factory() { return new DictionaryService(); }, token: DictionaryService, providedIn: "root" });
|
|
61
70
|
DictionaryService.decorators = [
|
|
62
|
-
{ type: Injectable
|
|
71
|
+
{ type: Injectable, args: [{
|
|
72
|
+
providedIn: "root"
|
|
73
|
+
},] }
|
|
63
74
|
];
|
|
64
75
|
DictionaryService.ctorParameters = () => [];
|
|
65
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
76
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGljdGlvbmFyeS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FwcC9zZXJ2aWNlL2RpY3Rpb25hcnkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3BELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQzs7QUFFckUsaUZBQWlGO0FBSWpGLE1BQU0sT0FBTyxpQkFBaUI7SUF1QjVCO1FBdEJpQixrQkFBYSxHQUFXLDRCQUE0QixDQUFDO1FBZXRFLG1KQUFtSjtRQUMzSSxrQkFBYSxHQUEyQyxJQUFJLEdBQUcsRUFBcUMsQ0FBQztRQUc3RyxpSEFBaUg7UUFDaEcsaUJBQVksR0FBVyxJQUFJLENBQUM7SUFJN0MsQ0FBQztJQXRCRCxJQUFXLFFBQVE7UUFDakIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxJQUFXLE9BQU8sQ0FBQyxLQUFhO1FBQzlCLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLFFBQVEsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUNoRSxDQUFDO0lBaUJELHFEQUFxRDtJQUN4QyxhQUFhLENBQUMsUUFBZ0I7O1lBQ3pDLElBQUksQ0FBQyxTQUFTLEdBQUcsUUFBUSxJQUFJLFlBQVksQ0FBQyxLQUFLLENBQUM7WUFDaEQsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3pCLENBQUM7S0FBQTtJQUVPLGVBQWU7UUFDckIsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRTtZQUMzQyxNQUFNLFVBQVUsR0FBZSxJQUFJLFVBQVUsRUFBRSxDQUFDO1lBQ2hELDRDQUE0QztZQUM1QyxJQUFJLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLEtBQUssU0FBUyxFQUFFO2dCQUMvRSw0Q0FBNEM7Z0JBQzVDLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsVUFBVSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDO2FBQ3ZHO1NBQ0Y7SUFDSCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksR0FBRyxDQUFDLEdBQVcsRUFBRSxpQkFBMEIsSUFBSSxFQUFFLEdBQUcsZ0JBQTBCO1FBQ25GLElBQUksQ0FBQyxXQUFXLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDeEMsT0FBTyxHQUFHLElBQUksRUFBRSxDQUFDO1NBQ2xCO1FBRUQsSUFBSSxJQUFJLENBQUMsUUFBUSxLQUFLLFNBQVMsRUFBRTtZQUMvQixJQUFJLENBQUMsU0FBUyxHQUFHLFlBQVksQ0FBQyxLQUFLLENBQUM7WUFDcEMsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1NBQ3hCO1FBRUQsSUFBSSxJQUFJLEdBQVcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzlELElBQUksR0FBRyxXQUFXLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO1FBRXpELElBQUksY0FBYyxFQUFFO1lBQ2xCLElBQUksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDckQ7YUFBTTtZQUNMLElBQUksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDckQ7UUFFRCxJQUFJLGdCQUFnQixDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDL0IsSUFBSSxHQUFHLFdBQVcsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFlBQVksRUFBRSxHQUFHLGdCQUFnQixDQUFDLENBQUM7U0FDdkY7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7Ozs7WUE5RUYsVUFBVSxTQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IExhbmd1YWdlQ29kZSB9IGZyb20gXCIuLi9lbnVtL2xhbmd1YWdlLWNvZGUuZW51bVwiO1xyXG5pbXBvcnQgeyBTdHJpbmdVdGlscyB9IGZyb20gXCIuLi91dGlscy9zdHJpbmctdXRpbHNcIjtcclxuaW1wb3J0IHsgRGljdGlvbmFyeSB9IGZyb20gXCIuLi8uLi9hc3NldHMvZGljdGlvbmFyeS90ZXh0LnByb3BlcnRpZXNcIjtcclxuXHJcbi8vIFRoZSBsb2NhbGl6YXRpb24gc2VydmljZSwgcHJvdmlkaW5nIHBlZXJzIHdpdGggdGV4dCB0cmFuc2xhdGlvbiBmdW5jdGlvbmFsaXR5LlxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogXCJyb290XCJcclxufSlcclxuZXhwb3J0IGNsYXNzIERpY3Rpb25hcnlTZXJ2aWNlIHtcclxuICBwcml2YXRlIHJlYWRvbmx5IGRpY3Rpb25hcnlVcmw6IHN0cmluZyA9IFwianMvYnJvd3Nlci9yZXMvZGljdGlvbmFyeS9cIjtcclxuXHJcbiAgcHVibGljIGdldCBsYW5ndWFnZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX2xhbmd1YWdlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldCByb290VXJsKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuX3Jvb3RVcmwgPSB2YWx1ZTtcclxuICAgIHRoaXMuX2RpY3RCYXNlUGF0aCA9IHRoaXMuX3Jvb3RVcmwgKyBcIi9cIiArIHRoaXMuZGljdGlvbmFyeVVybDtcclxuICB9XHJcblxyXG4gIC8vIHB1YmxpYyBkaWN0aW9uYXJ5TG9hZGVkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3QoKTtcclxuXHJcbiAgcHJpdmF0ZSBfZGljdEJhc2VQYXRoOiBzdHJpbmc7XHJcbiAgcHJpdmF0ZSBfcm9vdFVybDogc3RyaW5nO1xyXG4gIC8vIHByaXZhdGUgX2RpY3Rpb25hcnlQcm9taXNlOiBNYXA8TGFuZ3VhZ2VDb2RlLCBQcm9taXNlPHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0+PiA9IG5ldyBNYXA8TGFuZ3VhZ2VDb2RlLCBQcm9taXNlPHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0+PigpO1xyXG4gIHByaXZhdGUgX2RpY3Rpb25hcmllczogTWFwPHN0cmluZywgeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfT4gPSBuZXcgTWFwPHN0cmluZywgeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfT4oKTtcclxuICBwcml2YXRlIF9sYW5ndWFnZTogc3RyaW5nO1xyXG5cclxuICAvLyBTb21lIGRpY3Rpb25hcnkgdmFsdWVzIGhhdmUgb25lIG9yIG1vcmUgJ3x+JyB0ZXh0cyBpbiB0aGVtLCBtZWFudCB0byBiZSByZXBsYWNlZCB3aXRoIGNsaWVudC1zaWRlIGdpdmVuIHRleHRzLlxyXG4gIHByaXZhdGUgcmVhZG9ubHkgX3BsYWNlaG9sZGVyOiBzdHJpbmcgPSBcInx+XCI7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICkge1xyXG4gIH1cclxuXHJcbiAgLy8gTG9hZHMgdGhlIGRpY3Rpb25hcnkgZm9yIGdpdmVuIGxhbmd1YWdlIGluIG1lbW9yeS5cclxuICBwdWJsaWMgYXN5bmMgc2V0RGljdGlvbmFyeShsYW5ndWFnZTogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICB0aGlzLl9sYW5ndWFnZSA9IGxhbmd1YWdlIHx8IExhbmd1YWdlQ29kZS5EdXRjaDtcclxuICAgIHRoaXMuX2xvYWREaWN0aW9uYXJ5KCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9sb2FkRGljdGlvbmFyeSgpIHtcclxuICAgIGlmICghdGhpcy5fZGljdGlvbmFyaWVzLmhhcyh0aGlzLl9sYW5ndWFnZSkpIHtcclxuICAgICAgY29uc3QgZGljdGlvbmFyeTogRGljdGlvbmFyeSA9IG5ldyBEaWN0aW9uYXJ5KCk7XHJcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1tYWdpYy1udW1iZXJzXHJcbiAgICAgIGlmIChkaWN0aW9uYXJ5LnN0cmluZ3NbdGhpcy5fbGFuZ3VhZ2Uuc3Vic3RyKDAsIDIpLnRvTG93ZXJDYXNlKCldICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tbWFnaWMtbnVtYmVyc1xyXG4gICAgICAgIHRoaXMuX2RpY3Rpb25hcmllcy5zZXQodGhpcy5fbGFuZ3VhZ2UsIGRpY3Rpb25hcnkuc3RyaW5nc1t0aGlzLl9sYW5ndWFnZS5zdWJzdHIoMCwgMikudG9Mb3dlckNhc2UoKV0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm5zIHRoZSBsb2NhbGl6ZWQgdGV4dCBmb3IgdGhlIGdpdmVuIGRpY3Rpb25hcnkga2V5LlxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBrZXlcclxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IFt1cHBlckNhc2VGaXJzdCA9IHRydWVdIEZhbHNlIGZvciBmaXJzdCBsZXR0ZXIgbG93ZXJjYXNlLCB0cnVlIGZvciBmaXJzdCBsZXR0ZXIgdXBwZXJjYXNlIGZvciByZXR1cm5lZCBkaWN0IHZhbFxyXG4gICAqIEBwYXJhbSB7c3RyaW5nW119IHJlcGxhY2VtZW50VGV4dHMgUmVzdCBwYXJhbXMgZm9yIHJlcGxhY2VtZW50IG9mICd8ficgaW4gcmV0dXJuZWQgZGljdCB2YWx1ZVxyXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9IFRoZSB0cmFuc2xhdGVkIHRleHQgZm9yIGdpdmVuIGRpY3Rpb25hcnkga2V5XHJcbiAgICovXHJcbiAgcHVibGljIGdldChrZXk6IHN0cmluZywgdXBwZXJDYXNlRmlyc3Q6IGJvb2xlYW4gPSB0cnVlLCAuLi5yZXBsYWNlbWVudFRleHRzOiBzdHJpbmdbXSk6IHN0cmluZyB7XHJcbiAgICBpZiAoIVN0cmluZ1V0aWxzLklzU3RyaW5nV2l0aExlbmd0aChrZXkpKSB7XHJcbiAgICAgIHJldHVybiBrZXkgfHwgXCJcIjtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5sYW5ndWFnZSA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHRoaXMuX2xhbmd1YWdlID0gTGFuZ3VhZ2VDb2RlLkR1dGNoO1xyXG4gICAgICB0aGlzLl9sb2FkRGljdGlvbmFyeSgpO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCB0ZXh0OiBzdHJpbmcgPSB0aGlzLl9kaWN0aW9uYXJpZXMuZ2V0KHRoaXMubGFuZ3VhZ2UpW2tleV07XHJcbiAgICB0ZXh0ID0gU3RyaW5nVXRpbHMuSXNTdHJpbmdXaXRoTGVuZ3RoKHRleHQpID8gdGV4dCA6IGtleTtcclxuXHJcbiAgICBpZiAodXBwZXJDYXNlRmlyc3QpIHtcclxuICAgICAgdGV4dCA9IHRleHQuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyB0ZXh0LnNsaWNlKDEpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGV4dCA9IHRleHQuY2hhckF0KDApLnRvTG93ZXJDYXNlKCkgKyB0ZXh0LnNsaWNlKDEpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChyZXBsYWNlbWVudFRleHRzLmxlbmd0aCA+IDApIHtcclxuICAgICAgdGV4dCA9IFN0cmluZ1V0aWxzLlJlcGxhY2VPY2N1cnJlbmNlc0luKHRleHQsIHRoaXMuX3BsYWNlaG9sZGVyLCAuLi5yZXBsYWNlbWVudFRleHRzKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGV4dDtcclxuICB9XHJcbn1cclxuIl19
|