simpo-component-library 1.9.5 → 1.9.6
Sign up to get free protection for your applications and to get access to all the features.
@@ -199,7 +199,7 @@ export class CartComponent extends BaseSection {
|
|
199
199
|
for (let cartItem of this.cartInfo.orderedItems) {
|
200
200
|
if (cartItem.varientId === product.varientId) {
|
201
201
|
itemFound = true;
|
202
|
-
cartItem.quantity = product.quantity;
|
202
|
+
// cartItem.quantity = product.quantity;
|
203
203
|
}
|
204
204
|
}
|
205
205
|
if (!itemFound) {
|
@@ -667,4 +667,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImpor
|
|
667
667
|
}], customClass: [{
|
668
668
|
type: Input
|
669
669
|
}] } });
|
670
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FydC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL2Vjb21tZXJjZS9zZWN0aW9ucy9jYXJ0L2NhcnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9lY29tbWVyY2Uvc2VjdGlvbnMvY2FydC9jYXJ0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsTUFBTSxFQUFFLEtBQUssRUFBcUIsUUFBUSxFQUFlLE1BQU0sZUFBZSxDQUFDO0FBRS9HLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUN6RixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDakQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDNUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2pFLE9BQU8sV0FBVyxNQUFNLCtCQUErQixDQUFDO0FBR3hELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBR2hFLE9BQU8sRUFBRSxlQUFlLEVBQWEsZUFBZSxFQUFnQixNQUFNLDBCQUEwQixDQUFDO0FBS3JHLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxN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cEIsV0FBVzt3QkFDWCx3QkFBd0I7d0JBQ3hCLGtCQUFrQjt3QkFDbEIsbUJBQW1CO3dCQUNuQixjQUFjO3dCQUNkLGdCQUFnQjt3QkFDaEIsV0FBVzt3QkFDWCx1QkFBdUI7cUJBQ3hCLGFBQ1UsQ0FBQyxjQUFjLENBQUM7OzBCQXlCeEIsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxlQUFlOzswQkFDbEMsUUFBUTt5Q0FyQkYsSUFBSTtzQkFBWixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5qZWN0LCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE9wdGlvbmFsLCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBZGRyZXNzLCBDYXJ0U2VjdGlvbk1vZGFsLCBDYXJ0U2VjdGlvblN0eWxlc01vZGVsIH0gZnJvbSAnLi9jYXJ0Lm1vZGFsJztcclxuaW1wb3J0IHsgVG9hc3RNb2R1bGUgfSBmcm9tICdwcmltZW5nL3RvYXN0JztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEJ1dHRvbkRpcmVjdGl2ZURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZS9idXR0b24tZGlyZWN0aXZlLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IE1hdEljb24gfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcclxuaW1wb3J0IHsgQW5pbWF0aW9uRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vZGlyZWN0aXZlL2FuaW1hdGlvbi1kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBIb3ZlckRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZS9ob3Zlci1lbGVtZW50LWRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IENvbnRlbnRGaXREaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9kaXJlY3RpdmUvY29udGVudC1maXQtZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgU2ltcG9Db21wb25lbnRNb2R1bGUgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL2luZGV4JztcclxuaW1wb3J0IEJhc2VTZWN0aW9uIGZyb20gJy4uLy4uLy4uL3NlY3Rpb25zL0Jhc2VTZWN0aW9uJztcclxuaW1wb3J0IHsgRXZlbnRzU2VydmljZSB9IGZyb20gJy4uLy4vLi4vLi4vc2VydmljZXMvZXZlbnRzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDYXJ0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2NhcnQuc2VydmljZSc7XHJcbmltcG9ydCB7IEFkZHJlc3NDb21wb25lbnQgfSBmcm9tIFwiLi4vYWRkcmVzcy9hZGRyZXNzLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBBdXRoZW50aWNhdGVVc2VyQ29tcG9uZW50IH0gZnJvbSAnLi4vYXV0aGVudGljYXRlLXVzZXIvYXV0aGVudGljYXRlLXVzZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTUFUX0RJQUxPR19EQVRBLCBNYXREaWFsb2csIE1hdERpYWxvZ01vZHVsZSwgTWF0RGlhbG9nUmVmIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHsgUmVzdFNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vLi4vc2VydmljZXMvcmVzdC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFN0b3JhZ2VTZXJ2aWNlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3N0b3JhZ2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IFVzZXIgfSBmcm9tICcuLi8uLi9zdHlsZXMvdXNlci5tb2RhbCc7XHJcbmltcG9ydCB7IE9yZGVyZWRJdGVtcyB9IGZyb20gJy4uLy4uL3N0eWxlcy9PcmRlcmVkSXRlbXMubW9kYWwnO1xyXG5pbXBvcnQgeyBCVVNJTkVTU19DT05TVEFOVFMgfSBmcm9tICcuLi8uLi8uLi9jb25zdGFudHMvYnVzaW5lc3MuY29uc3RhbnQnO1xyXG5pbXBvcnQgeyBNZXNzYWdlU2VydmljZSB9IGZyb20gJ3ByaW1lbmcvYXBpJztcclxuaW1wb3J0IFN3YWwgZnJvbSAnc3dlZXRhbGVydDInO1xyXG5pbXBvcnQgeyBCYWNrZ3JvdW5kRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vZGlyZWN0aXZlL2JhY2tncm91bmQtZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgTWF0Qm90dG9tU2hlZXQsIE1hdEJvdHRvbVNoZWV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYm90dG9tLXNoZWV0JztcclxuaW1wb3J0IHsgUHJvZHVjdCB9IGZyb20gJy4uLy4uL3N0eWxlcy9wcm9kdWN0Lm1vZGFsJztcclxuaW1wb3J0IHsgQ3VzdG9tZXJSZXZpZXdDb21wb25lbnQgfSBmcm9tICcuLi9jdXN0b21lci1yZXZpZXcvY3VzdG9tZXItcmV2aWV3LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEF1dGhlbnRpY2F0aW9uUmVxdWlyZWRDb21wb25lbnQgfSBmcm9tICcuLi9hdXRoZW50aWNhdGlvbi1yZXF1aXJlZC9hdXRoZW50aWNhdGlvbi1yZXF1aXJlZC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBtZXJnZSwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IHJlc3BvbnNlIH0gZnJvbSAnZXhwcmVzcyc7XHJcblxyXG5pbnRlcmZhY2UgQ291cG9uIHtcclxuICBkaXNjb3VudFR5cGU6IHN0cmluZztcclxuICBkaXNjb3VudE5hbWU6IHN0cmluZztcclxuICBkaXNjb3VudERlc2NyaXB0aW9uOiBzdHJpbmc7XHJcbiAgYXBwbGljYWJsZTogYm9vbGVhbjtcclxuICBjb3Vwb25Db2RlOiBzdHJpbmc7XHJcbiAgY291cG9uSWQ6IHN0cmluZztcclxuICBzdGF0dXM6IGJvb2xlYW47XHJcbiAgdmFsaWRGcm9tOiBEYXRlO1xyXG4gIHZhbGlkVG86IERhdGU7XHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnc2ltcG8tY2FydCcsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIE1hdEljb24sXHJcbiAgICBNYXREaWFsb2dNb2R1bGUsXHJcbiAgICBTaW1wb0NvbXBvbmVudE1vZHVsZSxcclxuICAgIEJhY2tncm91bmREaXJlY3RpdmUsXHJcbiAgICBNYXRCb3R0b21TaGVldE1vZHVsZSxcclxuICAgIC8vRElSRUNUSVZFXHJcbiAgICBCdXR0b25EaXJlY3RpdmVEaXJlY3RpdmUsXHJcbiAgICBBbmltYXRpb25EaXJlY3RpdmUsXHJcbiAgICBDb250ZW50Rml0RGlyZWN0aXZlLFxyXG4gICAgSG92ZXJEaXJlY3RpdmUsXHJcbiAgICBBZGRyZXNzQ29tcG9uZW50LFxyXG4gICAgVG9hc3RNb2R1bGUsXHJcbiAgICBDdXN0b21lclJldmlld0NvbXBvbmVudFxyXG4gIF0sXHJcbiAgcHJvdmlkZXJzOiBbTWVzc2FnZVNlcnZpY2VdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jYXJ0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vY2FydC5jb21wb25lbnQuY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQ2FydENvbXBvbmVudCBleHRlbmRzIEJhc2VTZWN0aW9uIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIEBJbnB1dCgpIGRhdGE/OiBDYXJ0U2VjdGlvbk1vZGFsO1xyXG4gIEBJbnB1dCgpIHJlc3BvbnNlRGF0YT86IGFueTtcclxuICBASW5wdXQoKSBpbmRleD8gOiBudW1iZXI7XHJcbiAgQElucHV0KCkgZWRpdD8gOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgZGVsZXRlPyA6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgY3VzdG9tQ2xhc3M/OiBzdHJpbmc7XHJcbiAgaXNMb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIHN0eWxlcz86IENhcnRTZWN0aW9uU3R5bGVzTW9kZWw7XHJcbiAgcHVibGljIGN1cnJlbnRUYWI6ICdCQUcnIHwgJ0FERFJFU1MnIHwgJ1BBWU1FTlQnID0gXCJCQUdcIjtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9ldmVudFNlcnZpY2UgOiBFdmVudHNTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBjYXJ0U2VydmljZTogQ2FydFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlcjogUm91dGVyLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSByZXN0U2VydmljZTogUmVzdFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IG1hdERpYWxvZzogTWF0RGlhbG9nLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBzdG9yYWdlU2VydmljZTogU3RvcmFnZVNlcnZpY2VTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGJvdHRvbVNoZWV0OiBNYXRCb3R0b21TaGVldCxcclxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwdWJsaWMgbWF0RGlhbG9nRGF0YTogYW55LFxyXG4gICAgQE9wdGlvbmFsKCkgcHVibGljIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPENhcnRDb21wb25lbnQ+XHJcbiAgKXtcclxuICAgIHN1cGVyKClcclxuICB9XHJcblxyXG4gIHByaXZhdGUgdXNlckRldGFpbHM6IFVzZXIgfCBudWxsID0gbnVsbDtcclxuICBwcml2YXRlIFVTRVJfQ0FSVF9JVEVNUzogT3JkZXJlZEl0ZW1zW10gfCBudWxsID0gbnVsbDtcclxuICBwdWJsaWMgc2VsZWN0ZWRBZGRyZXNzSWR4OiBudW1iZXIgPSAwO1xyXG4gIHB1YmxpYyBlbnRlcmVkQ291cG9uQ29kZTogc3RyaW5nID0gXCJcIjtcclxuICBwdWJsaWMgY291cG9uTGlzdDogQ291cG9uW10gPSBbXTtcclxuXHJcbiAgY2FydEluZm86IGFueSA9IHtcclxuICAgIG9yZGVyZWRJdGVtczogbnVsbCxcclxuICAgIGJ1c2luZXNzSWQ6IGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiYklkXCIpID8/IGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiYnVzaW5lc3NJZFwiKSxcclxuICAgIGJpbGxkZXRhaWxzOiB7XHJcbiAgICAgIFwidG90YWxOZXRWYWx1ZVwiOiAwLFxyXG4gICAgICBcInRvdGFsVGF4QWZ0ZXJEaXNjb3VudFwiOiAwLFxyXG4gICAgICBcInRvdGFsR3Jvc3NWYWx1ZVwiOiAwLFxyXG4gICAgICBcInRvdGFsVGF4XCI6IDAsXHJcbiAgICAgIFwidG90YWxPZmZlcmVkVmFsdWVcIjogMCxcclxuICAgICAgXCJkaXNjb3VudEFtb3VudFwiOiAwLFxyXG4gICAgICBcImRlbGl2ZXJ5Q2hhcmdlc1wiOiAwXHJcbiAgICB9LFxyXG4gICAgcGxhdGZvcm06IFwiV0VCXCIsXHJcbiAgICBjYXJ0VHlwZTogXCJDQVJUXCIsXHJcbiAgICBhZGRyZXNzRGV0YWlsczogbnVsbCxcclxuICAgIHVzZXJEZXRhaWxzOiB7XHJcbiAgICAgIFwidXNlcklkXCI6IFwiXCIsXHJcbiAgICAgIFwidXNlck5hbWVcIjogXCJcIixcclxuICAgICAgXCJtb2JpbGVcIjogXCJcIixcclxuICAgICAgXCJlbWFpbFwiOiBcIlwiXHJcbiAgICB9LFxyXG4gICAgdG90YWxBbW91bnQ6IDBcclxuICB9XHJcblxyXG4gIGxvYWRpbmdTdWJzY3JpcHRpb24/OiBTdWJzY3JpcHRpb247XHJcbiAgbmdPbkluaXQoKXtcclxuICAgIHRoaXMubG9hZGluZ1N1YnNjcmlwdGlvbiA9IHRoaXMuX2V2ZW50U2VydmljZS5zaG93TG9hZGluZ1NjcmVlbi5zdWJzY3JpYmUoKHJlc3BvbnNlKT0+IHtcclxuICAgICAgdGhpcy5pc0xvYWRpbmcgPSByZXNwb25zZTtcclxuICAgICAgaWYgKCF0aGlzLmlzTG9hZGluZykge1xyXG4gICAgICAgIHRoaXMuZ2V0SW5kZXhEQkRhdGEoKTtcclxuICAgICAgfVxyXG4gICAgfSlcclxuICAgIC8vIGlmICh0aGlzLnN0b3JhZ2VTZXJ2aWNlLmdldFVzZXIoKSkge1xyXG4gICAgLy8gICB0aGlzLnVwZGF0ZVVzZXJDYXJ0KCk7XHJcbiAgICAvLyB9IGVsc2Uge1xyXG4gICAgLy8gICB0aGlzLmdldEluZGV4REJEYXRhKCk7XHJcbiAgICAvLyAgIGNvbnNvbGUubG9nKHRoaXMucmVzcG9uc2VEYXRhKTtcclxuICAgIC8vIH1cclxuICAgIGNvbnNvbGUubG9nKHRoaXMucmVzcG9uc2VEYXRhKTtcclxuICAgIHRoaXMuc3R5bGVzID0gdGhpcy5kYXRhPy5zdHlsZXM7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMubG9hZGluZ1N1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZVVzZXJDYXJ0KCkge1xyXG4gICAgY29uc3QgZGVsaXZlcnlPcHRpb24gPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiZGVsaXZlcnlPcHRpb25zXCIpID8/IFwie31cIik7XHJcblxyXG4gICAgdGhpcy51c2VyRGV0YWlscyA9IHRoaXMuc3RvcmFnZVNlcnZpY2UuZ2V0VXNlcigpIGFzIFVzZXI7XHJcbiAgICB0aGlzLmNhcnRJbmZvLnVzZXJEZXRhaWxzID0ge1xyXG4gICAgICBcInVzZXJJZFwiOiB0aGlzLnVzZXJEZXRhaWxzPy51c2VySWQsXHJcbiAgICAgIFwidXNlck5hbWVcIjogdGhpcy51c2VyRGV0YWlscz8uY29udGFjdC5uYW1lLFxyXG4gICAgICBcIm1vYmlsZVwiOiB0aGlzLnVzZXJEZXRhaWxzPy5jb250YWN0Lm1vYmlsZSxcclxuICAgICAgXCJlbWFpbFwiOiB0aGlzLnVzZXJEZXRhaWxzPy5jb250YWN0LmVtYWlsLFxyXG4gICAgfVxyXG4gICAgdGhpcy5yZXN0U2VydmljZS5nZXRVc2VySXRlbXModGhpcy51c2VyRGV0YWlscy51c2VySWQsIFwiQ0FSVFwiKS5zdWJzY3JpYmUoKHJlc3BvbnNlOiBhbnkpPT4ge1xyXG4gICAgICBjb25zdCB0ZW1wVXNlckNhcnQgPSByZXNwb25zZT8uZGF0YT8uWzBdPy5vcmRlcmVkSXRlbXMgPz8gW107XHJcbiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdjYXJ0SWQnLCByZXNwb25zZS5kYXRhPy5bMF0/LmNhcnRJZCk7XHJcbiAgICAgIHRoaXMuY2FydEluZm9bXCJjYXJ0SWRcIl0gPSByZXNwb25zZS5kYXRhPy5bMF0/LmNhcnRJZDtcclxuICAgICAgdGhpcy5nZXRDb3Vwb25MaXN0KCk7XHJcbiAgICAgIGlmIChyZXNwb25zZS5kYXRhPy5bMF0/Lm9yZGVyZWRJdGVtcz8ubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIHRoaXMubWVyZ2VPcmRlckl0ZW1zKHRlbXBVc2VyQ2FydCk7XHJcbiAgICAgICAgdGhpcy5zdG9yYWdlU2VydmljZS5hZGRBbGxQcm9kdWN0c1RvQ2FydCh0aGlzLmNhcnRJbmZvLm9yZGVyZWRJdGVtcykub25jb21wbGV0ZSA9ICgpPT4ge1xyXG5cclxuICAgICAgICAgIHRoaXMuc3RvcmFnZVNlcnZpY2UuZ2V0VXNlckNhcnQoKS50aGVuKChjYXJ0UmVzcG9uc2UpPT4ge1xyXG4gICAgICAgICAgICBjYXJ0UmVzcG9uc2Uub25zdWNjZXNzID0gKGNhcnREYXRhOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICBpZiAoIShsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImNvdXBvbklkXCIpID09IFwidW5kZWZpbmVkXCIgfHwgbG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJjb3Vwb25JZFwiKSA9PSBcIm51bGxcIikpXHJcbiAgICAgICAgICAgICAgICB0aGlzLmNhcnRJbmZvLmJpbGxkZXRhaWxzLmNvdXBvbklkID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJjb3Vwb25JZFwiKTtcclxuICAgICAgICAgICAgICBpZiAoIShsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImNvdXBvbkNvZGVcIikgPT0gXCJ1bmRlZmluZWRcIiB8fCBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImNvdXBvbkNvZGVcIikgPT0gXCJudWxsXCIpKVxyXG4gICAgICAgICAgICAgICAgdGhpcy5jYXJ0SW5mby5iaWxsZGV0YWlscy5jb3Vwb25Db2RlID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJjb3Vwb25Db2RlXCIpO1xyXG4gICAgICAgICAgICAgIGNvbnN0IHJlc3RSZXNwb25zZSA9IHRoaXMucmVzdFNlcnZpY2UuYWRkSXRlbVRvREIodGhpcy5jYXJ0SW5mbykudG9Qcm9taXNlKCk7XHJcbiAgICAgICAgICAgICAgcmVzdFJlc3BvbnNlLnRoZW4oKHJlc3BvbnNlOiBhbnkpPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jYXJ0SW5mby5iaWxsZGV0YWlscy50b3RhbEdyb3NzVmFsdWUgPSAwO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jYXJ0SW5mby5iaWxsZGV0YWlscy50b3RhbFRheCA9IDA7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNhcnRJbmZvLmJpbGxkZXRhaWxzLmRlbGl2ZXJ5Q2hhcmdlcyA9IDA7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNhcnRJbmZvLmJpbGxkZXRhaWxzLnRvdGFsTmV0VmFsdWUgPSAwO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jYXJ0SW5mby50b3RhbEFtb3VudCA9IDA7XHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy5VU0VSX0NBUlRfSVRFTVMgPSBjYXJ0RGF0YS50YXJnZXQucmVzdWx0IGFzIHVua25vd24gYXMgT3JkZXJlZEl0ZW1zW107XHJcbiAgICAgICAgICAgICAgICB0aGlzLlVTRVJfQ0FSVF9JVEVNUy5mb3JFYWNoKChpdGVtKT0+IHtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5jYXJ0SW5mby5iaWxsZGV0YWlscy50b3RhbEdyb3NzVmFsdWUgKz0gKGl0ZW0uZGlzY291bnRlZFByaWNlICogKGl0ZW0ucXVhbnRpdHkgPz8gMSkpO1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLmNhcnRJbmZvLmJpbGxkZXRhaWxzLnRvdGFsVGF4ICs9IChpdGVtLnF1YW50aXR5ICogKGl0ZW0uaXRlbVRheCA/PyAwKSk7XHJcbiAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgdGhpcy5jYXJ0SW5mby5iaWxsZGV0YWlscy5kZWxpdmVyeUNoYXJnZXMgPSAoZGVsaXZlcnlPcHRpb24/Lm1pbk9yZGVyQW1vdW50ID4gdGhpcy5jYXJ0SW5mby5iaWxsZGV0YWlscy50b3RhbEdyb3NzVmFsdWUpID8gMCA6IChkZWxpdmVyeU9wdGlvbj8uZGVsaXZlcnlDaGFyZ2VzID8/IDApO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jYXJ0SW5mby5iaWxsZGV0YWlscy50b3RhbE5ldFZhbHVlID0gdGhpcy5jYXJ0SW5mby5iaWxsZGV0YWlscy50b3RhbEdyb3NzVmFsdWU7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNhcnRJbmZvLm9yZGVyZWRJdGVtcyA9IHRoaXMuVVNFUl9DQVJUX0lURU1TO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jYXJ0SW5mby5iaWxsZGV0YWlscy5kaXNjb3VudEFtb3VudCA9IHJlc3BvbnNlPy5kYXRhPy5iaWxsZGV0YWlscz8uZGlzY291bnRBbW91bnQgPz8gMDtcclxuICAgICAgICAgICAgICAgIHRoaXMuY2FydEluZm8uYmlsbGRldGFpbHMudG90YWxUYXhBZnRlckRpc2NvdW50ID0gcmVzcG9uc2U/LmRhdGE/LmJpbGxkZXRhaWxzPy50b3RhbFRheEFmdGVyRGlzY291bnQgPz8gMDtcclxuICAgICAgICAgICAgICAgIHRoaXMuY2FydEluZm8udG90YWxBbW91bnQgPSB0aGlzLmNhcnRJbmZvLmJpbGxkZXRhaWxzLnRvdGFsTmV0VmFsdWUgKyB0aGlzLmdldFRheEFtb3VudCgpICsgdGhpcy5jYXJ0SW5mby5iaWxsZGV0YWlscy5kZWxpdmVyeUNoYXJnZXM7XHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy5yZXNwb25zZURhdGEgPSB0aGlzLmNhcnRJbmZvO1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2codGhpcy5yZXNwb25zZURhdGEpO1xyXG4gICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY2FydFJlc3BvbnNlLm9uZXJyb3IgPSAoY2FydERhdGE6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuYWRkKHsgc2V2ZXJpdHk6ICdlcnJvcicsIHN1bW1hcnk6ICdFcnJvcicsIGRldGFpbDogJ0ZhaWxlZCB0byB1cGRhdGUgY2FydCBkZXRhaWxzJyB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSlcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5zdG9yYWdlU2VydmljZS5nZXRVc2VyQ2FydCgpLnRoZW4oKGNhcnRSZXNwb25zZSk9PiB7XHJcbiAgICAgICAgICBjYXJ0UmVzcG9uc2Uub25zdWNjZXNzID0gKGNhcnREYXRhOiBhbnkpID0+IHtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuVVNFUl9DQVJUX0lURU1TID0gY2FydERhdGEudGFyZ2V0LnJlc3VsdCBhcyB1bmtub3duIGFzIE9yZGVyZWRJdGVtc1tdO1xyXG4gICAgICAgICAgICB0aGlzLmNhcnRJbmZvLmJpbGxkZXRhaWxzLnRvdGFsR3Jvc3NWYWx1ZSA9IDA7XHJcbiAgICAgICAgICAgIHRoaXMuY2FydEluZm8uYmlsbGRldGFpbHMudG90YWxUYXggPSAwO1xyXG4gICAgICAgICAgICB0aGlzLmNhcnRJbmZvLmJpbGxkZXRhaWxzLnRvdGFsVGF4QWZ0ZXJEaXNjb3VudCA9IGNhcnREYXRhLmJpbGxkZXRhaWxzPy50b3RhbFRheEFmdGVyRGlzY291bnQgPz8gMDtcclxuICAgICAgICAgICAgdGhpcy5jYXJ0SW5mby5iaWxsZGV0YWlscy5kZWxpdmVyeUNoYXJnZXMgPSAwO1xyXG4gICAgICAgICAgICB0aGlzLmNhcnRJbmZvLmJpbGxkZXRhaWxzLnRvdGFsTmV0VmFsdWUgPSAwO1xyXG4gICAgICAgICAgICB0aGlzLmNhcnRJbmZvLnRvdGFsQW1vdW50ID0gMDtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuVVNFUl9DQVJUX0lURU1TLmZvckVhY2goKGl0ZW0pPT4ge1xyXG4gICAgICAgICAgICAgIHRoaXMuY2FydEluZm8uYmlsbGRldGFpbHMudG90YWxHcm9zc1ZhbHVlICs9IChpdGVtLmRpc2NvdW50ZWRQcmljZSAqIChpdGVtLnF1YW50aXR5ID8/IDEpKTtcclxuICAgICAgICAgICAgICB0aGlzLmNhcnRJbmZvLmJpbGxkZXRhaWxzLnRvdGFsVGF4ICs9IChpdGVtLnF1YW50aXR5ICogKGl0ZW0uaXRlbVRheCA/PyAwKSk7XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIHRoaXMuY2FydEluZm8uYmlsbGRldGFpbHMuZGVsaXZlcnlDaGFyZ2VzID0gKGRlbGl2ZXJ5T3B0aW9uPy5taW5PcmRlckFtb3VudCA+IHRoaXMuY2FydEluZm8uYmlsbGRldGFpbHMudG90YWxHcm9zc1ZhbHVlKSA/IDAgOiAoZGVsaXZlcnlPcHRpb24/LmRlbGl2ZXJ5Q2hhcmdlcyA/PyAwKTtcclxuICAgICAgICAgICAgdGhpcy5jYXJ0SW5mby5iaWxsZGV0YWlscy50b3RhbE5ldFZhbHVlID0gdGhpcy5jYXJ0SW5mby5iaWxsZGV0YWlscy50b3RhbEdyb3NzVmFsdWUgLSB0aGlzLmNhcnRJbmZvLmJpbGxkZXRhaWxzLmRlbGl2ZXJ5Q2hhcmdlcztcclxuICAgICAgICAgICAgY29uc29sZS5sb2codGhpcy5jYXJ0SW5mby5iaWxsZGV0YWlscy50b3RhbE5ldFZhbHVlLCB0aGlzLmNhcnRJbmZvLmJpbGxkZXRhaWxzLnRvdGFsVGF4LCB0aGlzLmNhcnRJbmZvLmJpbGxkZXRhaWxzLmRlbGl2ZXJ5Q2hhcmdlcyk7XHJcbiAgICAgICAgICAgIHRoaXMuY2FydEluZm8udG90YWxBbW91bnQgPSB0aGlzLmNhcnRJbmZvLmJpbGxkZXRhaWxzLnRvdGFsTmV0VmFsdWUgKyB0aGlzLmdldFRheEFtb3VudCgpOyArIHRoaXMuY2FydEluZm8uYmlsbGRldGFpbHMuZGVsaXZlcnlDaGFyZ2VzO1xyXG4gICAgICAgICAgICB0aGlzLmNhcnRJbmZvLm9yZGVyZWRJdGVtcyA9IHRoaXMuVVNFUl9DQVJUX0lURU1TO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5yZXNwb25zZURhdGEgPSB0aGlzLmNhcnRJbmZvO1xyXG4gICAgICAgICAgICB0aGlzLnJlc3RTZXJ2aWNlLmFkZEl0ZW1Ub0RCKHRoaXMucmVzcG9uc2VEYXRhKS5zdWJzY3JpYmUoKHJlc3BvbnNlOiBhbnkpPT4ge1xyXG4gICAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdjYXJ0SWQnLCByZXNwb25zZS5kYXRhPy5jYXJ0SWQpO1xyXG4gICAgICAgICAgICAgIHRoaXMuY2FydEluZm9bXCJjYXJ0SWRcIl0gPSByZXNwb25zZS5kYXRhPy5jYXJ0SWQ7XHJcbiAgICAgICAgICAgICAgdGhpcy5yZXNwb25zZURhdGFbXCJjYXJ0SWRcIl0gPSB0aGlzLmNhcnRJbmZvW1wiY2FydElkXCJdO1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pXHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICAvLyB1cGRhdGVVc2VyQ2FydDIoKSB7XHJcbiAgLy8gICBjb25zdCBkZWxpdmVyeU9wdGlvbiA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJkZWxpdmVyeU9wdGlvbnNcIikgPz8gXCJ7fVwiKTtcclxuXHJcbiAgLy8gICB0aGlzLnVzZXJEZXRhaWxzID0gdGhpcy5zdG9yYWdlU2VydmljZS5nZXRVc2VyKCkgYXMgVXNlcjtcclxuICAvLyAgIHRoaXMuY2FydEluZm8udXNlckRldGFpbHMgPSB7XHJcbiAgLy8gICAgIFwidXNlcklkXCI6IHRoaXMudXNlckRldGFpbHM/LnVzZXJJZCxcclxuICAvLyAgICAgXCJ1c2VyTmFtZVwiOiB0aGlzLnVzZXJEZXRhaWxzPy5jb250YWN0Lm5hbWUsXHJcbiAgLy8gICAgIFwibW9iaWxlXCI6IHRoaXMudXNlckRldGFpbHM/LmNvbnRhY3QubW9iaWxlLFxyXG4gIC8vICAgICBcImVtYWlsXCI6IHRoaXMudXNlckRldGFpbHM/LmNvbnRhY3QuZW1haWwsXHJcbiAgLy8gICB9XHJcbiAgLy8gICB0aGlzLnJlc3RTZXJ2aWNlLmdldFVzZXJJdGVtcyh0aGlzLnVzZXJEZXRhaWxzLnVzZXJJZCwgXCJDQVJUXCIpLnN1YnNjcmliZSgocmVzcG9uc2U6IGFueSkgPT4ge1xyXG4gIC8vICAgICBjb25zdCB0ZW1wVXNlckNhcnQgPSByZXNwb25zZT8uZGF0YT8uWzBdPy5vcmRlcmVkSXRlbXMgPz8gW107XHJcbiAgLy8gICAgIHRoaXMubWVyZ2VPcmRlckl0ZW1zKHRlbXBVc2VyQ2FydCk7XHJcbiAgLy8gICB9KVxyXG4gIC8vIH1cclxuXHJcbiAgbWVyZ2VPcmRlckl0ZW1zKHN5bmNlZEl0ZW1zOiBhbnlbXSkge1xyXG4gICAgZm9yKGxldCBwcm9kdWN0IG9mIHN5bmNlZEl0ZW1zKSB7XHJcbiAgICAgIGxldCBpdGVtRm91bmQgPSBmYWxzZTtcclxuICAgICAgZm9yKGxldCBjYXJ0SXRlbSBvZiB0aGlzLmNhcnRJbmZvLm9yZGVyZWRJdGVtcykge1xyXG4gICAgICAgIGlmKGNhcnRJdGVtLnZhcmllbnRJZCA9PT0gcHJvZHVjdC52YXJpZW50SWQpIHtcclxuICAgICAgICAgIGl0ZW1Gb3VuZCA9IHRydWU7XHJcbiAgICAgICAgICBjYXJ0SXRlbS5xdWFudGl0eSA9IHByb2R1Y3QucXVhbnRpdHk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGlmKCFpdGVtRm91bmQpIHtcclxuICAgICAgICB0aGlzLmNhcnRJbmZvLm9yZGVyZWRJdGVtcy5wdXNoKHByb2R1Y3QpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRDb3Vwb25MaXN0KCkge1xyXG4gICAgaWYgKCF0aGlzLmNhcnRJbmZvLmNhcnRJZCAmJiAhKGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiY2FydElkXCIpID09IFwidW5kZWZpbmVkXCIgfHwgbG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJjYXJ0SWRcIikgPT0gXCJudWxsXCIpKVxyXG4gICAgICB0aGlzLmNhcnRJbmZvLmNhcnRJZCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiY2FydElkXCIpO1xyXG4gICAgdGhpcy5yZXN0U2VydmljZS5hcHBsaWNhYmxlRGlzY291bnRMaXN0KHRoaXMuY2FydEluZm8uY2FydElkKS5zdWJzY3JpYmUoKHJlc3BvbnNlOiBhbnkpPT4ge1xyXG4gICAgICB0aGlzLmNvdXBvbkxpc3QgPSByZXNwb25zZS5kYXRhPy5maWx0ZXIoKGNvdXBvbjogYW55KT0+IGNvdXBvbi5hY3RpdmUpPy5tYXAoKGNvdXBvbjogYW55KT0+IHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgZGlzY291bnRUeXBlOiBjb3Vwb24uZGlzY291bnQsXHJcbiAgICAgICAgICBkaXNjb3VudE5hbWU6IGNvdXBvbi5jb3Vwb25UaXRsZSxcclxuICAgICAgICAgIGRpc2NvdW50RGVzY3JpcHRpb246IGNvdXBvbi5jb3Vwb25EZXNjcmlwdGlvbixcclxuICAgICAgICAgIGNvdXBvbkNvZGU6IGNvdXBvbi5jb3Vwb25Db2RlLFxyXG4gICAgICAgICAgY291cG9uSWQ6IGNvdXBvbi5jb3Vwb25JZCxcclxuICAgICAgICAgIGFwcGxpY2FibGU6IGNvdXBvbi5hcHBsaWNhYmxlLFxyXG4gICAgICAgICAgc3RhdHVzOiBjb3Vwb24uYWN0aXZlLFxyXG4gICAgICAgICAgdmFsaWRUbzogY291cG9uLmV4cGlyZXMsXHJcbiAgICAgICAgICB2YWxpZEZyb206IGNvdXBvbi52YWxpZEZyb21cclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG5cclxuICAgIH0pXHJcbiAgfVxyXG4gIHJlbW92ZUNvdXBvbihldmVudDogTW91c2VFdmVudCkge1xyXG4gICAgdGhpcy5jYXJ0SW5mby5iaWxsZGV0YWlscy5jb3Vwb25JZCA9IFwiXCI7XHJcbiAgICB0aGlzLmNhcnRJbmZvLmJpbGxkZXRhaWxzLmNvdXBvbkNvZGUgPSBcIlwiO1xyXG4gICAgY29uc3QgcmVzdFJlc3BvbnNlID0gdGhpcy5yZXN0U2VydmljZS5hZGRJdGVtVG9EQih0aGlzLmNhcnRJbmZvKS50b1Byb21pc2UoKTtcclxuICAgIHJlc3RSZXNwb25zZS50aGVuKChyZXNwb25zZTogYW55KT0+IHtcclxuXHJcbiAgICAgIHRoaXMuY2FsY3VsYXRlQ2FydChyZXNwb25zZSk7XHJcbiAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKFwiY291cG9uSWRcIik7XHJcbiAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKFwiY291cG9uQ29kZVwiKTtcclxuICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5hZGQoeyBzZXZlcml0eTogJ2Vycm9yJywgc3VtbWFyeTogJ0NvdXBvbicsIGRldGFpbDogJ0NvdXBvbiBSZW1vdmVkJyB9KTtcclxuICAgICAgdGhpcy5jYXJ0SW5mby5iaWxsZGV0YWlscy5kaXNjb3VudEFtb3VudCA9IDA7XHJcbiAgICAgIHRoaXMuY291cG9uRGlhbG9nUmVmPy5jbG9zZSgpO1xyXG4gICAgfSlcclxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgfVxyXG5cclxuICBnZXRJbmRleERCRGF0YSgpIHtcclxuICAgIHRoaXMuc3RvcmFnZVNlcnZpY2UuZ2V0VXNlckNhcnQoKS50aGVuKChjYXJ0UmVzcG9uc2UpPT4ge1xyXG4gICAgICBjb25zb2xlLmxvZyhjYXJ0UmVzcG9uc2UpO1xyXG4gICAgICBjb25zdCBkZWxpdmVyeU9wdGlvbiA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJkZWxpdmVyeU9wdGlvbnNcIikgPz8gXCJ7fVwiKTtcclxuICAgICAgdGhpcy5jYXJ0SW5mby5iaWxsZGV0YWlscy50b3RhbEdyb3NzVmFsdWUgPSAwO1xyXG4gICAgICB0aGlzLmNhcnRJbmZvLmJpbGxkZXRhaWxzLnRvdGFsVGF4ID0gMDtcclxuICAgICAgdGhpcy5jYXJ0SW5mby5iaWxsZGV0YWlscy50b3RhbE5ldFZhbHVlID0gMDtcclxuICAgICAgdGhpcy5jYXJ0SW5mby50b3RhbEFtb3VudCA9IDA7XHJcbiAgICAgIHRoaXMuY2FydEluZm8uYmlsbGRldGFpbHMuZGVsaXZlcnlDaGFyZ2VzID0gMDtcclxuXHJcbiAgICAgIGNhcnRSZXNwb25zZS5vbnN1Y2Nlc3MgPSAoY2FydERhdGE6IGFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMuVVNFUl9DQVJUX0lURU1TID0gY2FydERhdGEudGFyZ2V0LnJlc3VsdCBhcyB1bmtub3duIGFzIE9yZGVyZWRJdGVtc1tdO1xyXG4gICAgICAgIHRoaXMuVVNFUl9DQVJUX0lURU1TLmZvckVhY2goKGl0ZW0pPT4ge1xyXG4gICAgICAgICAgdGhpcy5jYXJ0SW5mby5iaWxsZGV0YWlscy50b3RhbEdyb3NzVmFsdWUgKz0gKGl0ZW0uZGlzY291bnRlZFByaWNlICogKGl0ZW0ucXVhbnRpdHkgPz8gMSkpO1xyXG4gICAgICAgICAgdGhpcy5jYXJ0SW5mby5iaWxsZGV0YWlscy50b3RhbFRheCArPSAoaXRlbS5xdWFudGl0eSAqIChpdGVtLml0ZW1UYXggPz8gMCkpO1xyXG4gICAgICAgIH0pXHJcblxyXG4gICAgICAgIHRoaXMuY2FydEluZm8uYmlsbGRldGFpbHMudG90YWxUYXhBZnRlckRpc2NvdW50ID0gY2FydERhdGEuYmlsbGRldGFpbHM/LnRvdGFsVGF4QWZ0ZXJEaXNjb3VudCA/PyAwO1xyXG4gICAgICAgIHRoaXMuY2FydEluZm8uYmlsbGRldGFpbHMuZGVsaXZlcnlDaGFyZ2VzID0gKGRlbGl2ZXJ5T3B0aW9uPy5taW5PcmRlckFtb3VudCA+IHRoaXMuY2FydEluZm8uYmlsbGRldGFpbHMudG90YWxHcm9zc1ZhbHVlKSA/IDAgOiAoZGVsaXZlcnlPcHRpb24/LmRlbGl2ZXJ5Q2hhcmdlcyA/PyAwKTtcclxuICAgICAgICB0aGlzLmNhcnRJbmZvLmJpbGxkZXRhaWxzLnRvdGFsTmV0VmFsdWUgPSB0aGlzLmNhcnRJbmZvLmJpbGxkZXRhaWxzLnRvdGFsR3Jvc3NWYWx1ZTtcclxuICAgICAgICBjb25zb2xlLmxvZyh0aGlzLmNhcnRJbmZvLmJpbGxkZXRhaWxzLnRvdGFsTmV0VmFsdWUsIHRoaXMuY2FydEluZm8uYmlsbGRldGFpbHMudG90YWxUYXgsIHRoaXMuY2FydEluZm8uYmlsbGRldGFpbHMuZGVsaXZlcnlDaGFyZ2VzKTtcclxuICAgICAgICB0aGlzLmNhcnRJbmZvLnRvdGFsQW1vdW50ID0gdGhpcy5jYXJ0SW5mby5iaWxsZGV0YWlscy50b3RhbE5ldFZhbHVlICsgdGhpcy5nZXRUYXhBbW91bnQoKSArIHRoaXMuY2FydEluZm8uYmlsbGRldGFpbHMuZGVsaXZlcnlDaGFyZ2VzO1xyXG4gICAgICAgIHRoaXMuY2FydEluZm8ub3JkZXJlZEl0ZW1zID0gdGhpcy5VU0VSX0NBUlRfSVRFTVM7XHJcblxyXG4gICAgICAgIGlmKHRoaXMuc3RvcmFnZVNlcnZpY2UuZ2V0VXNlcigpKVxyXG4gICAgICAgICAgdGhpcy51cGRhdGVVc2VyQ2FydCgpO1xyXG5cclxuICAgICAgICB0aGlzLnJlc3BvbnNlRGF0YSA9IHRoaXMuY2FydEluZm87XHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG4gIHByb2NlZWRUb0NoZWNrb3V0KCl7XHJcbiAgICBpZih0aGlzLnN0b3JhZ2VTZXJ2aWNlLmdldFVzZXIoKSl7XHJcbiAgICAgIHRoaXMuY3VycmVudFRhYiA9IFwiQUREUkVTU1wiO1xyXG4gICAgICBpZiAodGhpcy5pc01vYmlsZSkge1xyXG4gICAgICAgIGRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wID0gMDtcclxuICAgICAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsVG9wID0gMDtcclxuICAgICAgfVxyXG5cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5hZGQoeyBzZXZlcml0eTogJ2luZm8nLCBzdW1tYXJ5OiAnTG9naW4nLCBkZXRhaWw6ICdQbGVhc2UgbG9naW4gd2l0aCBtb2JpbGUgbnVtYmVyIHRvIG9yZGVyJyB9KTtcclxuXHJcbiAgICAgICB0aGlzLm1hdERpYWxvZy5vcGVuKEF1dGhlbnRpY2F0aW9uUmVxdWlyZWRDb21wb25lbnQsIHsgd2lkdGg6ICcxMDAlJywgcGFuZWxDbGFzczogXCJhdXRoZW50aWNhdGVcIiB9KS5hZnRlckNsb3NlZCgpLnN1YnNjcmliZSgocmVzcG9uc2UpPT4ge1xyXG4gICAgICAgIHRoaXMudXNlckRldGFpbHMgPSB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmdldFVzZXIoKTtcclxuICAgICAgICAgICAgdGhpcy5jYXJ0SW5mby51c2VyRGV0YWlscyA9IHtcclxuICAgICAgICAgICAgICBcInVzZXJJZFwiOiB0aGlzLnVzZXJEZXRhaWxzPy51c2VySWQsXHJcbiAgICAgICAgICAgICAgXCJ1c2VyTmFtZVwiOiB0aGlzLnVzZXJEZXRhaWxzPy5jb250YWN0Lm5hbWUsXHJcbiAgICAgICAgICAgICAgXCJtb2JpbGVcIjogdGhpcy51c2VyRGV0YWlscz8uY29udGFjdC5tb2JpbGUsXHJcbiAgICAgICAgICAgICAgXCJlbWFpbFwiOiB0aGlzLnVzZXJEZXRhaWxzPy5jb250YWN0LmVtYWlsLFxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAoIShsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImNhcnRJZFwiKSA9PSBcInVuZGVmaW5lZFwiIHx8IGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiY2FydElkXCIpID09IFwibnVsbFwiKSlcclxuICAgICAgICAgICAgICB0aGlzLmNhcnRJbmZvW1wiY2FydElkXCJdID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJjYXJ0SWRcIik7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiUmVzcG9uc2UgOiBcIiwgcmVzcG9uc2UpO1xyXG4gICAgICAgICAgICBpZiAocmVzcG9uc2UgJiYgcmVzcG9uc2UgPT09ICdzdWNjZXNzJykge1xyXG4gICAgICAgICAgICAgIHRoaXMudXBkYXRlVXNlckNhcnQoKVxyXG4gICAgICAgICAgICAgIC8vIHRoaXMucHJvY2VlZFRvQ2hlY2tvdXQoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgfSlcclxuICAgICAgLy8gICBpZiAod2luZG93LmlubmVyV2lkdGggPD0gNDc1KSB7XHJcbiAgICAgIC8vICAgICAgIHRoaXMuYm90dG9tU2hlZXQub3BlbihBdXRoZW50aWNhdGVVc2VyQ29tcG9uZW50LCB7ZGF0YTogdGhpcy5kYXRhfSkuYWZ0ZXJEaXNtaXNzZWQoKS5zdWJzY3JpYmUoKHJlc3BvbnNlKT0+IHtcclxuICAgICAgLy8gICAgICAgICB0aGlzLnVzZXJEZXRhaWxzID0gdGhpcy5zdG9yYWdlU2VydmljZS5nZXRVc2VyKCk7XHJcbiAgICAgIC8vICAgICAgICAgdGhpcy5jYXJ0SW5mby51c2VyRGV0YWlscyA9IHtcclxuICAgICAgLy8gICAgICAgICAgIFwidXNlcklkXCI6IHRoaXMudXNlckRldGFpbHM/LnVzZXJJZCxcclxuICAgICAgLy8gICAgICAgICAgIFwidXNlck5hbWVcIjogdGhpcy51c2VyRGV0YWlscz8uY29udGFjdC5uYW1lLFxyXG4gICAgICAvLyAgICAgICAgICAgXCJtb2JpbGVcIjogdGhpcy51c2VyRGV0YWlscz8uY29udGFjdC5tb2JpbGUsXHJcbiAgICAgIC8vICAgICAgICAgICBcImVtYWlsXCI6IHRoaXMudXNlckRldGFpbHM/LmNvbnRhY3QuZW1haWwsXHJcbiAgICAgIC8vICAgICAgICAgfVxyXG5cclxuICAgICAgLy8gICAgICAgICBpZiAoIShsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImNhcnRJZFwiKSA9PSBcInVuZGVmaW5lZFwiIHx8IGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiY2FydElkXCIpID09IFwibnVsbFwiKSlcclxuICAgICAgLy8gICAgICAgICAgIHRoaXMuY2FydEluZm9bXCJjYXJ0SWRcIl0gPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImNhcnRJZFwiKTtcclxuICAgICAgLy8gICAgICAgICBjb25zb2xlLmxvZyhcIlJlc3BvbnNlIDogXCIsIHJlc3BvbnNlKTtcclxuICAgICAgLy8gICAgICAgICBpZiAocmVzcG9uc2UpXHJcbiAgICAgIC8vICAgICAgICAgICB0aGlzLnByb2NlZWRUb0NoZWNrb3V0KCk7XHJcbiAgICAgIC8vICAgICAgIH1cclxuICAgICAgLy8gICAgICk7XHJcbiAgICAgIC8vIH1cclxuICAgICAgLy8gICBlbHNlIHtcclxuICAgICAgLy8gICAgIHRoaXMubWF0RGlhbG9nLm9wZW4oQXV0aGVudGljYXRlVXNlckNvbXBvbmVudCwge1xyXG4gICAgICAvLyAgICAgICBoZWlnaHQ6ICdmaXQtY29udGVudCcsXHJcbiAgICAgIC8vICAgICAgIHdpZHRoOiAnMzV2dycsXHJcbiAgICAgIC8vICAgICAgIGRhdGE6IHRoaXMuZGF0YVxyXG4gICAgICAvLyAgICAgfSkuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUoKHJlc3BvbnNlKT0+IHtcclxuICAgICAgLy8gICAgICAgdGhpcy51c2VyRGV0YWlscyA9IHRoaXMuc3RvcmFnZVNlcnZpY2UuZ2V0VXNlcigpO1xyXG4gICAgICAvLyAgICAgICB0aGlzLmNhcnRJbmZvLnVzZXJEZXRhaWxzID0ge1xyXG4gICAgICAvLyAgICAgICAgIFwidXNlcklkXCI6IHRoaXMudXNlckRldGFpbHM/LnVzZXJJZCxcclxuICAgICAgLy8gICAgICAgICBcInVzZXJOYW1lXCI6IHRoaXMudXNlckRldGFpbHM/LmNvbnRhY3QubmFtZSxcclxuICAgICAgLy8gICAgICAgICBcIm1vYmlsZVwiOiB0aGlzLnVzZXJEZXRhaWxzPy5jb250YWN0Lm1vYmlsZSxcclxuICAgICAgLy8gICAgICAgICBcImVtYWlsXCI6IHRoaXMudXNlckRldGFpbHM/LmNvbnRhY3QuZW1haWwsXHJcbiAgICAgIC8vICAgICAgIH1cclxuXHJcbiAgICAgIC8vICAgICAgIGlmICghKGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiY2FydElkXCIpID09IFwidW5kZWZpbmVkXCIgfHwgbG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJjYXJ0SWRcIikgPT0gXCJudWxsXCIpKVxyXG4gICAgICAvLyAgICAgICAgIHRoaXMuY2FydEluZm9bXCJjYXJ0SWRcIl0gPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImNhcnRJZFwiKTtcclxuICAgICAgLy8gICAgICAgY29uc29sZS5sb2coXCJSZXNwb25zZSA6IFwiLCByZXNwb25zZSk7XHJcbiAgICAgIC8vICAgICAgIGlmIChyZXNwb25zZSlcclxuICAgICAgLy8gICAgICAgICB0aGlzLnByb2NlZWRUb0NoZWNrb3V0KCk7XHJcbiAgICAgIC8vICAgICB9KVxyXG4gICAgICAvLyAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgZ29Ub1Byb2R1Y3REZXRhaWxzKHByb2R1Y3Q6IE9yZGVyZWRJdGVtcykge1xyXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvZGV0YWlscyddLCB7cXVlcnlQYXJhbXM6IHtpZDogcHJvZHVjdC5pdGVtSWQsIHZhcmllbnRJZDogcHJvZHVjdC52YXJpZW50SWR9fSk7XHJcbiAgfVxyXG4gIHByb2NlZWRUb0xpc3RQYWdlKCl7XHJcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy8nXSk7XHJcbiAgfVxyXG4gIHJlbW92ZUl0ZW0oaXRlbTogT3JkZXJlZEl0ZW1zKSB7XHJcblxyXG4gICAgU3dhbC5maXJlKHtcclxuICAgICAgaWNvbjogXCJ3YXJuaW5nXCIsXHJcbiAgICAgIGh0bWw6IFwiPHNwYW4+WW91IGNhbiBtb3ZlIDwvc3Bhbj4gPGI+XCIgKyBpdGVtLml0ZW1OYW1lICsgXCI8L2I+IDxzcGFuPnRvIHdpc2hsaXN0IHNvIHlvdSBjYW4gYnV5IGxhdGVyLjwvc3Bhbj5cIixcclxuICAgICAgY29uZmlybUJ1dHRvblRleHQ6IFwiTW92ZSB0byB3aXNobGlzdFwiLFxyXG4gICAgICBzaG93RGVueUJ1dHRvbjogdHJ1ZSxcclxuICAgICAgZGVueUJ1dHRvblRleHQ6IFwiRGVsZXRlIGl0ZW1cIixcclxuICAgICAgZGVueUJ1dHRvbkNvbG9yOiBcIiM5MjhjOGNcIlxyXG4gICAgfSkudGhlbigocmVzcG9uc2UpPT4ge1xyXG4gICAgICBpZiAocmVzcG9uc2UuaXNDb25maXJtZWQpIHtcclxuICAgICAgICB0aGlzLnJlbW92ZUl0ZW1Gcm9tQ2FydChpdGVtKTtcclxuICAgICAgICB0aGlzLm1vdmVJdGVtVG9XaXNobGlzdChpdGVtKTtcclxuICAgICAgfSBlbHNlIGlmIChyZXNwb25zZS5pc0RlbmllZCkge1xyXG4gICAgICAgIHRoaXMucmVtb3ZlSXRlbUZyb21DYXJ0KGl0ZW0pO1xyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuICBwcml2YXRlIG1vdmVJdGVtVG9XaXNobGlzdChpdGVtOiBPcmRlcmVkSXRlbXMpIHtcclxuICAgIHRoaXMuY2FydFNlcnZpY2UuYWRkSXRlbVRvRmF2RnJvbUNhcnQoaXRlbSk7XHJcbiAgfVxyXG4gIHByaXZhdGUgcmVtb3ZlSXRlbUZyb21DYXJ0KGl0ZW06IE9yZGVyZWRJdGVtcykge1xyXG4gICAgaXRlbS5xdWFudGl0eSA9IDA7XHJcbiAgICBpZiAodGhpcy5VU0VSX0NBUlRfSVRFTVMpXHJcbiAgICAgIHRoaXMuVVNFUl9DQVJUX0lURU1TID0gdGhpcy5VU0VSX0NBUlRfSVRFTVMuZmlsdGVyKChwcm9kdWN0OiBhbnkpPT4gcHJvZHVjdC52YXJpZW50SWQgIT0gaXRlbS52YXJpZW50SWQpO1xyXG4gICAgdGhpcy5jYXJ0SW5mby5vcmRlcmVkSXRlbXMgPSB0aGlzLlVTRVJfQ0FSVF9JVEVNUztcclxuICAgIHRoaXMucmVzcG9uc2VEYXRhID0gdGhpcy5jYXJ0SW5mbztcclxuICAgIHRoaXMuY2FydFNlcnZpY2UuYWRkSXRlbUZyb21DYXJ0UGFnZShpdGVtLCB0aGlzLnJlc3BvbnNlRGF0YSkuc3Vic2NyaWJlKChyZXNwb25zZTogYW55KT0+IHtcclxuICAgICAgY29uc3QgZGVsaXZlcnlPcHRpb24gPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiZGVsaXZlcnlPcHRpb25zXCIpID8/IFwie31cIik7XHJcbiAgICAgIHRoaXMuY2FydEluZm8uYmlsbGRldGFpbHMudG90YWxHcm9zc1ZhbHVlID0gMDtcclxuICAgICAgdGhpcy5jYXJ0SW5mby5iaWxsZGV0YWlscy50b3RhbFRheCA9IDA7XHJcbiAgICAgIHRoaXMuY2FydEluZm8uYmlsbGRldGFpbHMudG90YWxUYXhBZnRlckRpc2NvdW50ID0gcmVzcG9uc2U/LmRhdGE/LmJpbGxkZXRhaWxzPy50b3RhbFRheEFmdGVyRGlzY291bnQgPz8gMDtcclxuICAgICAgdGhpcy5jYXJ0SW5mby5iaWxsZGV0YWlscy5kaXNjb3VudEFtb3VudCA9IHJlc3BvbnNlPy5kYXRhPy5iaWxsZGV0YWlscz8uZGlzY291bnRBbW91bnQgPz8gMDtcclxuICAgICAgdGhpcy5jYXJ0SW5mby5iaWxsZGV0YWlscy50b3RhbE5ldFZhbHVlID0gMDtcclxuICAgICAgdGhpcy5jYXJ0SW5mby50b3RhbEFtb3VudCA9IDA7XHJcbiAgICAgIHRoaXMuY2FydEluZm8uYmlsbGRldGFpbHMuZGVsaXZlcnlDaGFyZ2VzID0gMDtcclxuICAgICAgdGhpcy5jYXJ0SW5mby5jb3Vwb25Db2RlID0gcmVzcG9uc2UuZGF0YT8uYmlsbGRldGFpbHM/LmNvdXBvbkNvZGU7XHJcbiAgICAgIHRoaXMuY2FydEluZm8uY291cG9uSWQgPSByZXNwb25zZS5kYXRhPy5iaWxsZGV0YWlscz8uY291cG9uSWQ7XHJcblxyXG4gICAgICByZXNwb25zZT8uZGF0YT8ub3JkZXJlZEl0ZW1zLmZvckVhY2goKGl0ZW06IGFueSk9PiB7XHJcbiAgICAgICAgdGhpcy5jYXJ0SW5mby5iaWxsZGV0YWlscy50b3RhbEdyb3NzVmFsdWUgKz0gKGl0ZW0uZGlzY291bnRlZFByaWNlICogKGl0ZW0ucXVhbnRpdHkgPz8gMSkpO1xyXG4gICAgICAgIHRoaXMuY2FydEluZm8uYmlsbGRldGFpbHMudG90YWxUYXggKz0gKGl0ZW0ucXVhbnRpdHkgKiAoaXRlbS5pdGVtVGF4ID8/IDApKTtcclxuICAgICAgfSlcclxuICAgICAgdGhpcy5jYXJ0SW5mby5iaWxsZGV0YWlscy5kZWxpdmVyeUNoYXJnZXMgPSAoZGVsaXZlcnlPcHRpb24/Lm1pbk9yZGVyQW1vdW50ID4gdGhpcy5jYXJ0SW5mby5iaWxsZGV0YWlscy50b3RhbEdyb3NzVmFsdWUpID8gMCA6IChkZWxpdmVyeU9wdGlvbj8uZGVsaXZlcnlDaGFyZ2VzID8/IDApO1xyXG4gICAgICB0aGlzLmNhcnRJbmZvLmJpbGxkZXRhaWxzLnRvdGFsTmV0VmFsdWUgPSB0aGlzLmNhcnRJbmZvLmJpbGxkZXRhaWxzLnRvdGFsR3Jvc3NWYWx1ZTtcclxuICAgICAgY29uc29sZS5sb2codGhpcy5jYXJ0SW5mby5iaWxsZGV0YWlscy50b3RhbE5ldFZhbHVlLCB0aGlzLmNhcnRJbmZvLmJpbGxkZXRhaWxzLnRvdGFsVGF4LCB0aGlzLmNhcnRJbmZvLmJpbGxkZXRhaWxzLmRlbGl2ZXJ5Q2hhcmdlcyk7XHJcbiAgICAgIHRoaXMuY2FydEluZm8udG90YWxBbW91bnQgPSB0aGlzLmNhcnRJbmZvLmJpbGxkZXRhaWxzLnRvdGFsTmV0VmFsdWUgKyB0aGlzLmdldFRheEFtb3VudCgpICsgdGhpcy5jYXJ0SW5mby5iaWxsZGV0YWlscy5kZWxpdmVyeUNoYXJnZXM7XHJcbiAgICAgIHRoaXMuY2FydEluZm8ub3JkZXJlZEl0ZW1zID0gdGhpcy5VU0VSX0NBUlRfSVRFTVM7XHJcbiAgICB9KVxyXG4gIH1cclxuICBhZGRUb0NhcnQoaXRlbTogT3JkZXJlZEl0ZW1zLCB0eXBlOiAnQUREJyB8ICdTVUJTVFJBQ1QnKSB7XHJcbiAgICBpZiAodHlwZSA9PSAnQUREJykge1xyXG4gICAgICBpdGVtLnF1YW50aXR5ICs9IDE7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgaXRlbS5xdWFudGl0eSAtPSAxO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChpdGVtLnF1YW50aXR5KSB7XHJcbiAgICAgIHRoaXMuY2FydFNlcnZpY2UuYWRkSXRlbUZyb21DYXJ0UGFnZShpdGVtLCB0aGlzLnJlc3BvbnNlRGF0YSkuc3Vic2NyaWJlKChyZXNwb25zZTogYW55KT0+IHtcclxuICAgICAgICBjb25zdCBkZWxpdmVyeU9wdGlvbiA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJkZWxpdmVyeU9wdGlvbnNcIikgPz8gXCJ7fVwiKTtcclxuICAgICAgICB0aGlzLmNhcnRJbmZvLmJpbGxkZXRhaWxzLnRvdGFsR3Jvc3NWYWx1ZSA9IDA7XHJcbiAgICAgICAgdGhpcy5jYXJ0SW5mby5iaWxsZGV0YWlscy50b3RhbFRheCA9IDA7XHJcbiAgICAgICAgdGhpcy5jYXJ0SW5mby5iaWxsZGV0YWlscy50b3RhbFRheEFmdGVyRGlzY291bnQgPSByZXNwb25zZT8uZGF0YT8uYmlsbGRldGFpbHM/LnRvdGFsVGF4QWZ0ZXJEaXNjb3VudCA/PyAwO1xyXG4gICAgICAgIHRoaXMuY2FydEluZm8uYmlsbGRldGFpbHMudG90YWxOZXRWYWx1ZSA9IDA7XHJcbiAgICAgICAgdGhpcy5jYXJ0SW5mby50b3RhbEFtb3VudCA9IDA7XHJcbiAgICAgICAgdGhpcy5jYXJ0SW5mby5iaWxsZGV0YWlscy5kZWxpdmVyeUNoYXJnZXMgPSAwO1xyXG4gICAgICAgIHRoaXMuY2FydEluZm8uYmlsbGRldGFpbHMuZGlzY291bnRBbW91bnQgPSByZXNwb25zZT8uZGF0YT8uYmlsbGRldGFpbHM/LmRpc2NvdW50QW1vdW50ID8/IDA7XHJcblxyXG4gICAgICAgIHJlc3BvbnNlPy5kYXRhPy5vcmRlcmVkSXRlbXMuZm9yRWFjaCgoaXRlbTogYW55KT0+IHtcclxuICAgICAgICAgIHRoaXMuY2FydEluZm8uYmlsbGRldGFpbHMudG90YWxHcm9zc1ZhbHVlICs9IChpdGVtLmRpc2NvdW50ZWRQcmljZSAqIChpdGVtLnF1YW50aXR5ID8/IDEpKTtcclxuICAgICAgICAgIHRoaXMuY2FydEluZm8uYmlsbGRldGFpbHMudG90YWxUYXggKz0gKGl0ZW0ucXVhbnRpdHkgKiAoaXRlbS5pdGVtVGF4ID8/IDApKTtcclxuICAgICAgICB9KVxyXG4gICAgICAgIHRoaXMuY2FydEluZm8uYmlsbGRldGFpbHMuZGVsaXZlcnlDaGFyZ2VzID0gKGRlbGl2ZXJ5T3B0aW9uPy5taW5PcmRlckFtb3VudCA+IHRoaXMuY2FydEluZm8uYmlsbGRldGFpbHMudG90YWxHcm9zc1ZhbHVlKSA/IDAgOiAoZGVsaXZlcnlPcHRpb24/LmRlbGl2ZXJ5Q2hhcmdlcyA/PyAwKTtcclxuICAgICAgICB0aGlzLmNhcnRJbmZvLmJpbGxkZXRhaWxzLnRvdGFsTmV0VmFsdWUgPSB0aGlzLmNhcnRJbmZvLmJpbGxkZXRhaWxzLnRvdGFsR3Jvc3NWYWx1ZTtcclxuICAgICAgICBjb25zb2xlLmxvZyh0aGlzLmNhcnRJbmZvLmJpbGxkZXRhaWxzLnRvdGFsTmV0VmFsdWUsIHRoaXMuY2FydEluZm8uYmlsbGRldGFpbHMudG90YWxUYXgsIHRoaXMuY2FydEluZm8uYmlsbGRldGFpbHMuZGVsaXZlcnlDaGFyZ2VzKTtcclxuICAgICAgICB0aGlzLmNhcnRJbmZvLnRvdGFsQW1vdW50ID0gdGhpcy5jYXJ0SW5mby5iaWxsZGV0YWlscy50b3RhbE5ldFZhbHVlICsgdGhpcy5nZXRUYXhBbW91bnQoKSArIHRoaXMuY2FydEluZm8uYmlsbGRldGFpbHMuZGVsaXZlcnlDaGFyZ2VzO1xyXG4gICAgICAgIHRoaXMuY2FydEluZm8ub3JkZXJlZEl0ZW1zID0gdGhpcy5VU0VSX0NBUlRfSVRFTVM7XHJcbiAgICAgIH0pXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnJlbW92ZUl0ZW0oaXRlbSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGFzeW5jIHByb2NlZWRUb1BheW1lbnQoKSB7XHJcblxyXG4gICAgaWYgKCF0aGlzLnN0b3JhZ2VTZXJ2aWNlLmdldFVzZXIoKSkge1xyXG4gICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7IHNldmVyaXR5OiAnaW5mbycsIHN1bW1hcnk6ICdMb2dpbicsIGRldGFpbDogJ1BsZWFzZSBsb2dpbiB3aXRoIG1vYmlsZSBudW1iZXIgdG8gb3JkZXInIH0pO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgaXNQYXltZW50R2F0ZXdheUVuYWJsZWQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImlzUGF5bWVudEdhdGV3YXlFbmFibGVkXCIpID8gbG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJpc1BheW1lbnRHYXRld2F5RW5hYmxlZFwiKSA9PSBcInRydWVcIiA6IHRydWU7XHJcbiAgICBjb25zdCBtZXJjaGFudElkID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3BNSWQnKSA9PSBcIm51bGxcIiB8fCBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgncE1JZCcpID09IFwidW5kZWZpbmVkXCIgPyBudWxsIDogbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3BNSWQnKTtcclxuXHJcbiAgICBpZihpc1BheW1lbnRHYXRld2F5RW5hYmxlZCAmJiAhbWVyY2hhbnRJZCl7XHJcbiAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuYWRkKHsgc2V2ZXJpdHk6ICdlcnJvcicsIHN1bW1hcnk6ICdNZXJjaGFudCBvbmJvYXJkZWQnLCBkZXRhaWw6ICdNZXJjaGFudCBpcyBub3Qgb25ib2FyZGVkJyB9KTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHVzZXJEZXRhaWwgPSB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmdldFVzZXIoKSBhcyBVc2VyO1xyXG4gICAgY29uc3QgYWRkcmVzcyA9IHVzZXJEZXRhaWw/LmFkZHJlc3NEZXRhaWxzTGlzdFt0aGlzLnNlbGVjdGVkQWRkcmVzc0lkeF0gYXMgQWRkcmVzcztcclxuICAgIGlmIChhZGRyZXNzPy5yZWNlaXZlck5hbWU/Lmxlbmd0aCA9PSAwKSB7XHJcbiAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuYWRkKHsgc2V2ZXJpdHk6ICdlcnJvcicsIHN1bW1hcnk6ICdQYXltZW50IEZhaWx1cmUnLCBkZXRhaWw6ICdQbGVhc2UgcHJvdmlkZSBhZGRyZXNzIGRldGFpbHMnIH0pO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBpZiAoIShsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImNhcnRJZFwiKSA9PSBcInVuZGVmaW5lZFwiIHx8IGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiY2FydElkXCIpID09IFwibnVsbFwiKSlcclxuICAgICAgdGhpcy5jYXJ0SW5mb1tcImNhcnRJZFwiXSA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiY2FydElkXCIpO1xyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuYWRkKHsgc2V2ZXJpdHk6ICdpbmZvJywgc3VtbWFyeTogJ1BsZWFzZSB3YWl0JywgZGV0YWlsOiAnV2UgYXJlIHByb2Nlc3NpbmcgeW91ciBwYXltZW50JywgbGlmZTogMjAwMCB9KTtcclxuICAgICAgYXdhaXQgdGhpcy5yZXN0U2VydmljZS5hZGRJdGVtVG9EQih0aGlzLmNhcnRJbmZvKS50b1Byb21pc2UoKS50aGVuKChyZXNwb25zZTogYW55KT0+IHtcclxuICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShcImNhcnRJZFwiLCByZXNwb25zZS5kYXRhPy5jYXJ0SWQpO1xyXG4gICAgICAgIHRoaXMuY2FydEluZm9bXCJjYXJ0SWRcIl0gPSByZXNwb25zZS5kYXRhPy5jYXJ0SWQ7XHJcbiAgICAgIH0pXHJcbiAgICB9XHJcbiAgICB0aGlzLmNhcnRJbmZvW1wiYWRkcmVzc0RldGFpbHNcIl0gPSBhZGRyZXNzO1xyXG4gICAgY29uc3QgdXBkYXRlQWRkcmVzcyA9IGF3YWl0IHRoaXMucmVzdFNlcnZpY2UuYWRkSXRlbVRvREIodGhpcy5jYXJ0SW5mbykudG9Qcm9taXNlKCk7XHJcbiAgICBjb25zdCBwYXlsb2FkID0ge1xyXG4gICAgICBcInVzZXJJZFwiOiB1c2VyRGV0YWlsLnVzZXJJZCxcclxuICAgICAgXCJjYXJ0SWRcIjogbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2NhcnRJZCcpLFxyXG4gICAgICBcIm9yZGVyQW1vdW50XCI6IE51bWJlcihOdW1iZXIoKCh0aGlzLnJlc3BvbnNlRGF0YT8udG90YWxBbW91bnQgPz8gMCkgLSAodGhpcy5yZXNwb25zZURhdGE/LmJpbGxkZXRhaWxzPy5kaXNjb3VudEFtb3VudCA/PyAwKSkpLnRvRml4ZWQoMikpLFxyXG4gICAgICBcImlzUGF5bWVudEdhdGV3YXlFbmFibGVkXCI6IGlzUGF5bWVudEdhdGV3YXlFbmFibGVkLFxyXG4gICAgICBcImNvbnRhY3REZXRhaWxzXCI6IHtcclxuICAgICAgICBcIm5hbWVcIjogYWRkcmVzcy5yZWNlaXZlck5hbWUsXHJcbiAgICAgICAgXCJtb2JpbGVcIjogYWRkcmVzcy5yZWNlaXZlclBob25lLFxyXG4gICAgICAgIFwiY291bnRyeUNvZGVcIjogXCI5MVwiLFxyXG4gICAgICAgIFwiZW1haWxcIjogYWRkcmVzcy5yZWNlaXZlckVtYWlsXHJcbiAgICAgIH0sXHJcbiAgICAgIFwicGF5bWVudE1lcmNoYW50SWRcIjptZXJjaGFudElkXHJcbiAgICB9XHJcbiAgICB0aGlzLnJlc3RTZXJ2aWNlLmNyZWF0ZVBheW1lbnRUb2tlbihwYXlsb2FkKS5zdWJzY3JpYmUoKHBheW1lbnREZXRhaWxzOiBhbnkpPT4ge1xyXG4gICAgICBpZiAoaXNQYXltZW50R2F0ZXdheUVuYWJsZWQpXHJcbiAgICAgICAgdGhpcy5fZXZlbnRTZXJ2aWNlLmNhc2hGcmVlRXZlbnQuZW1pdChwYXltZW50RGV0YWlscyk7XHJcbiAgICAgIGVsc2Uge1xyXG5cclxuICAgICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShcIm9yZGVySWRcIik7XHJcbiAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oXCJjYXJ0SWRcIik7XHJcbiAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oXCJwYXltZW50Rm9yXCIpO1xyXG4gICAgICAgIHRoaXMuc3RvcmFnZVNlcnZpY2UuY2xlYXJVc2VyQ2FydCgpO1xyXG4gICAgICAgIFN3YWwuZmlyZSh7XHJcbiAgICAgICAgICBpY29uOiBcInN1Y2Nlc3NcIixcclxuICAgICAgICAgIHRpdGxlOiBcIkh1cnJheVwiLFxyXG4gICAgICAgICAgdGV4dDogXCJPcmRlciBwbGFjZWQgc3VjY2Vzc2Z1bGx5XCIsXHJcbiAgICAgICAgICBjb25maXJtQnV0dG9uVGV4dDogXCJTZWUgRGV0YWlsc1wiXHJcbiAgICAgICAgfSkudGhlbigocmVzcG9uc2UpPT4ge1xyXG4gICAgICAgICAgaWYgKHJlc3BvbnNlLmlzQ29uZmlybWVkKSB7XHJcbiAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL3Byb2ZpbGUnXSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSlcclxuICAgICAgfVxyXG4gICAgfSwgKGVycm9yKT0+IHtcclxuICAgICAgaWYgKGVycm9yLmVycm9yQ29kZSA9PSAxMDAxIHx8IGVycm9yLmVycm9yQ29kZSA9PSAxMDAyKSB7XHJcbiAgICAgICAgU3dhbC5maXJlKHtcclxuICAgICAgICAgIGljb246IFwiaW5mb1wiLFxyXG4gICAgICAgICAgaHRtbDogXCI8cD5cIiArIGVycm9yLm1lc3NhZ2UucmVwbGFjZSgvICpcXChbXildKlxcKSAqL2csIFwiXCIpICsgXCI8L3A+XCIsXHJcbiAgICAgICAgICBzaG93Q2FuY2VsQnV0dG9uOiBlcnJvci5lcnJvckNvZGUgPT0gMTAwMixcclxuICAgICAgICAgIGNvbmZpcm1CdXR0b25UZXh0OiBcIlJlbW92ZSBpdGVtICYgUGxhY2UgT3JkZXJcIixcclxuICAgICAgICAgIGNhbmNlbEJ1dHRvblRleHQ6IFwiUmVkdWNlIHF1YW50aXR5XCIsXHJcbiAgICAgICAgICBjYW5jZWxCdXR0b25Db2xvcjogXCIjOTI4YzhjXCIsXHJcbiAgICAgICAgfSkudGhlbihhc3luYyAocmVzcG9uc2UpPT4ge1xyXG4gICAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5hZGQoeyBzZXZlcml0eTogJ2luZm8nLCBzdW1tYXJ5OiAnUHJvY2Vzc2luZycsIGRldGFpbDogJ1BsZWFzZSB3YWl0LCB1cGRhaW5nIHlvdXIgY2FydCcsIGxpZmU6IDIwMDB9KTtcclxuICAgICAgICAgIGNvbnN0IHJlZ0V4cCA9IC97KFtefV0rKX0vZztcclxuICAgICAgICAgIGNvbnN0IGlkID0gcmVnRXhwLmV4ZWMoZXJyb3IubWVzc2FnZSk/LlsxXTtcclxuICAgICAgICAgIGxldCBpdGVtRGV0YWlsOiBQcm9kdWN0IHwgbnVsbCA9IG51bGw7XHJcbiAgICAgICAgICBjb25zdCBwcm9kdWN0RGV0YWlsc0FzeW5jID0gYXdhaXQgdGhpcy5yZXN0U2VydmljZS5nZXRQcm9kdWN0RGV0YWlscyhpZCkudG9Qcm9taXNlKCkudGhlbigocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgICAgaXRlbURldGFpbCA9IHJlc3BvbnNlWzBdIGFzIFByb2R1Y3Q7XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICAgaWYgKHJlc3BvbnNlLmlzRGlzbWlzc2VkKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY2FydEluZm8ub3JkZXJlZEl0ZW1zLmZvckVhY2goKGl0ZW06IE9yZGVyZWRJdGVtcyk9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKGl0ZW0uaXRlbUlkID09IGl0ZW1EZXRhaWw/Lml0ZW1JZClcclxuICAgICAgICAgICAgICAgIGl0ZW0ucXVhbnRpdHkgPSBpdGVtRGV0YWlsPy5pdGVtSW52ZW50b3J5Lm9wZW5pbmdTdG9jaztcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgY29uc3QgYWRkSXRlbURCQXN5bmMgPSBhd2FpdCB0aGlzLnJlc3RTZXJ2aWNlLmFkZEl0ZW1Ub0RCKHRoaXMuY2FydEluZm8pLnRvUHJvbWlzZSgpO1xyXG4gICAgICAgICAgICBjb25zdCBhZGRJdGVtSW5kZXhEQkFzeW5jID0gYXdhaXQgdGhpcy5zdG9yYWdlU2VydmljZS5hZGRBbGxQcm9kdWN0c1RvQ2FydCh0aGlzLmNhcnRJbmZvLm9yZGVyZWRJdGVtcyk7XHJcbiAgICAgICAgICB9IGVsc2UgaWYgKHJlc3BvbnNlLmlzQ29uZmlybWVkKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY2FydEluZm8ub3JkZXJlZEl0ZW1zID0gdGhpcy5jYXJ0SW5mby5vcmRlcmVkSXRlbXMuZmlsdGVyKChpdGVtOiBPcmRlcmVkSXRlbXMpPT4gaXRlbS5pdGVtSWQgIT0gaXRlbURldGFpbD8uaXRlbUlkKTtcclxuICAgICAgICAgICAgY29uc3QgYWRkSXRlbURCQXN5bmMgPSBhd2FpdCB0aGlzLnJlc3RTZXJ2aWNlLmFkZEl0ZW1Ub0RCKHRoaXMuY2FydEluZm8pLnRvUHJvbWlzZSgpO1xyXG4gICAgICAgICAgICBjb25zdCBhZGRJdGVtSW5kZXhEQkFzeW5jID0gYXdhaXQgdGhpcy5zdG9yYWdlU2VydmljZS5hZGRBbGxQcm9kdWN0c1RvQ2FydCh0aGlzLmNhcnRJbmZvLm9yZGVyZWRJdGVtcyk7XHJcbiAgICAgICAgICAgIHRoaXMucHJvY2VlZFRvUGF5bWVudCgpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pXHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5hZGQoeyBzZXZlcml0eTogJ2Vycm9yJywgc3VtbWFyeTogJ1BheW1lbnQgRmFpbHVyZScsIGRldGFpbDogJ1BsZWFzZSB0cnkgYWdhaW4nIH0pO1xyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcblxyXG4gIGFkZHJlc3NTZWxlY3RlZChpbmRleDogbnVtYmVyKSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkQWRkcmVzc0lkeCA9IGluZGV4O1xyXG4gIH1cclxuXHJcbiAgaXNJdGVtT3V0T2ZTdG9jayhwcm9kdWN0OiBPcmRlcmVkSXRlbXMpIHtcclxuICAgIHJldHVybiBmYWxzZTsgLy8gbmVlZCBjb25kaXRpb25cclxuICB9XHJcbiAgZ2V0S2V5cyhvYmplY3Q6IE9iamVjdCk6IHN0cmluZ1tdIHtcclxuICAgIGlmIChvYmplY3QpXHJcbiAgICAgIHJldHVybiBPYmplY3Qua2V5cyhvYmplY3QpO1xyXG4gICAgcmV0dXJuIFtdO1xyXG4gIH1cclxuXHJcbiAgZWRpdFNlY3Rpb24oKXtcclxuXHJcbiAgICBpZih3aW5kb3cuaW5uZXJXaWR0aCA8PSA0NzUpXHJcbiAgICAgIHJldHVybjtcclxuXHJcbiAgICB0aGlzLl9ldmVudFNlcnZpY2UudG9nZ2xlRWRpdG9yRXZlbnQuZW1pdChmYWxzZSk7XHJcbiAgICBzZXRUaW1lb3V0KCgpPT4ge1xyXG4gICAgICB0aGlzLl9ldmVudFNlcnZpY2UuZWRpdFNlY3Rpb24uZW1pdCh7ZGF0YTp0aGlzLmRhdGF9KTtcclxuICAgIH0sIDEwMCk7XHJcbiAgfVxyXG4gIGNsb3NlV2luZG93KCkge1xyXG4gICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoKTtcclxuICB9XHJcbiAgY291cG9uRGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8dW5rbm93bj4gfCBudWxsID0gbnVsbDtcclxuICBvcGVuRGlhbG9nKGNvbnRhaW5lcjogYW55KSB7XHJcblxyXG4gICAgaWYgKHRoaXMuY2FydEluZm8/LmJpbGxkZXRhaWxzPy5jb3Vwb25JZClcclxuICAgICAgcmV0dXJuO1xyXG5cclxuICAgIGlmICghdGhpcy5jYXJ0SW5mby5jYXJ0SWQgJiYgIShsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImNhcnRJZFwiKSA9PSBcInVuZGVmaW5lZFwiIHx8IGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiY2FydElkXCIpID09IFwibnVsbFwiKSlcclxuICAgICAgdGhpcy5jYXJ0SW5mby5jYXJ0SWQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImNhcnRJZFwiKTtcclxuXHJcbiAgICBpZighdGhpcy5jYXJ0SW5mbz8uY2FydElkKSB7XHJcbiAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuYWRkKHsgc2V2ZXJpdHk6ICdlcnJvcicsIHN1bW1hcnk6ICdZb3UgYXJlIG5vdCBsb2dnZWQgaW4nLCBkZXRhaWw6ICdQbGVhc2UgbG9naW4gZmlyc3QgdG8gYXBwbHkgY291cG9uJyB9KTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMucmVzdFNlcnZpY2UuYXBwbGljYWJsZURpc2NvdW50TGlzdCh0aGlzLmNhcnRJbmZvLmNhcnRJZCkuc3Vic2NyaWJlKChyZXNwb25zZTogYW55KT0+IHtcclxuICAgICAgdGhpcy5jb3Vwb25MaXN0ID0gcmVzcG9uc2UuZGF0YT8uZmlsdGVyKChjb3Vwb246IGFueSk9PiBjb3Vwb24uYWN0aXZlKT8ubWFwKChjb3Vwb246IGFueSk9PiB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgIGRpc2NvdW50VHlwZTogY291cG9uLmRpc2NvdW50LFxyXG4gICAgICAgICAgZGlzY291bnROYW1lOiBjb3Vwb24uY291cG9uVGl0bGUsXHJcbiAgICAgICAgICBkaXNjb3VudERlc2NyaXB0aW9uOiBjb3Vwb24uY291cG9uRGVzY3JpcHRpb24sXHJcbiAgICAgICAgICBjb3Vwb25Db2RlOiBjb3Vwb24uY291cG9uQ29kZSxcclxuICAgICAgICAgIGNvdXBvbklkOiBjb3Vwb24uY291cG9uSWQsXHJcbiAgICAgICAgICBhcHBsaWNhYmxlOiBjb3Vwb24uYXBwbGljYWJsZSxcclxuICAgICAgICAgIHN0YXR1czogY291cG9uLmFjdGl2ZSxcclxuICAgICAgICAgIHZhbGlkVG86IGNvdXBvbi5leHBpcmVzLFxyXG4gICAgICAgICAgdmFsaWRGcm9tOiBjb3Vwb24udmFsaWRGcm9tXHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgaWYgKCEhdGhpcy51c2VyRGV0YWlscylcclxuICAgICAgICB0aGlzLmNvdXBvbkRpYWxvZ1JlZiA9IHRoaXMubWF0RGlhbG9nLm9wZW4oY29udGFpbmVyLCB7cGFuZWxDbGFzczogJ3NpZGVwYW5lbC1jbGFzcyd9KTtcclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5hZGQoeyBzZXZlcml0eTogJ2luZm8nLCBzdW1tYXJ5OiAnTG9naW4nLCBkZXRhaWw6ICdQbGVhc2UgbG9naW4gd2l0aCBtb2JpbGUgbnVtYmVyIHRvIGFwcGx5IGNvdXBvbicgfSk7XHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG4gIHNlYXJjaElmQXBwbGljYWJsZSgpIHt9XHJcbiAgY2xvc2VEaWFsb2dSZWYoKSB7XHJcbiAgICB0aGlzLmNvdXBvbkRpYWxvZ1JlZj8uY2xvc2UoKTtcclxuICB9XHJcbiAgYXBwbHlDb3Vwb24oY291cG9uOiBDb3Vwb24pIHtcclxuXHJcbiAgICBpZiAoIWNvdXBvbi5hcHBsaWNhYmxlKVxyXG4gICAgICByZXR1cm47XHJcblxyXG4gICAgdGhpcy5jYXJ0SW5mby5iaWxsZGV0YWlscy5jb3Vwb25Db2RlID0gY291cG9uLmNvdXBvbkNvZGU7XHJcbiAgICB0aGlzLmNhcnRJbmZvLmJpbGxkZXRhaWxzLmNvdXBvbklkID0gY291cG9uLmNvdXBvbklkO1xyXG4gICAgY29uc29sZS5sb2codGhpcy5jYXJ0SW5mbyk7XHJcbiAgICBjb25zdCByZXN0UmVzcG9uc2UgPSB0aGlzLnJlc3RTZXJ2aWNlLmFkZEl0ZW1Ub0RCKHRoaXMuY2FydEluZm8pLnRvUHJvbWlzZSgpO1xyXG4gICAgcmVzdFJlc3BvbnNlLnRoZW4oKHJlc3BvbnNlOiBhbnkpPT4ge1xyXG5cclxuICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oXCJjb3Vwb25JZFwiLCBjb3Vwb24uY291cG9uSWQpO1xyXG4gICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShcImNvdXBvbkNvZGVcIiwgY291cG9uLmNvdXBvbkNvZGUpO1xyXG4gICAgICBjb25zb2xlLmxvZyhcIlJlc3BvbnNlOiBcIixyZXNwb25zZSk7XHJcbiAgICAgIHRoaXMuY2FsY3VsYXRlQ2FydChyZXNwb25zZSk7XHJcblxyXG4gICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7IHNldmVyaXR5OiAnc3VjY2VzcycsIHN1bW1hcnk6ICdDb3Vwb24nLCBkZXRhaWw6ICdDb3Vwb24gQXBwbGllZCcgfSk7XHJcbiAgICAgIHRoaXMuY2FydEluZm8uYmlsbGRldGFpbHMuZGlzY291bnRBbW91bnQgPSByZXNwb25zZT8uZGF0YT8uYmlsbGRldGFpbHM/LmRpc2NvdW50QW1vdW50ID8/IDA7XHJcbiAgICAgIHRoaXMuY291cG9uRGlhbG9nUmVmPy5jbG9zZSgpO1xyXG4gICAgfSlcclxuICB9XHJcbiAgY2FsY3VsYXRlQ2FydChyZXNwb25zZTogYW55KSB7XHJcbiAgICBjb25zdCBkZWxpdmVyeU9wdGlvbiA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJkZWxpdmVyeU9wdGlvbnNcIikgPz8gXCJ7fVwiKTtcclxuICAgIHRoaXMuY2FydEluZm8uYmlsbGRldGFpbHMudG90YWxHcm9zc1ZhbHVlID0gMDtcclxuICAgIHRoaXMuY2FydEluZm8uYmlsbGRldGFpbHMudG90YWxUYXggPSAwO1xyXG4gICAgdGhpcy5jYXJ0SW5mby5iaWxsZGV0YWlscy50b3RhbFRheEFmdGVyRGlzY291bnQgPSByZXNwb25zZT8uZGF0YT8uYmlsbGRldGFpbHM/LnRvdGFsVGF4QWZ0ZXJEaXNjb3VudCA/PyAwO1xyXG4gICAgdGhpcy5jYXJ0SW5mby5iaWxsZGV0YWlscy5kZWxpdmVyeUNoYXJnZXMgPSAwO1xyXG4gICAgdGhpcy5jYXJ0SW5mby5iaWxsZGV0YWlscy50b3RhbE5ldFZhbHVlID0gMDtcclxuICAgIHRoaXMuY2FydEluZm8uYmlsbGRldGFpbHMuZGlzY291bnRBbW91bnQgPSByZXNwb25zZT8uZGF0YT8uYmlsbGRldGFpbHM/LmRpc2NvdW50QW1vdW50ID8/IDA7XHJcbiAgICB0aGlzLmNhcnRJbmZvLnRvdGFsQW1vdW50ID0gMDtcclxuXHJcbiAgICBpZiAodGhpcy5VU0VSX0NBUlRfSVRFTVMpIHtcclxuXHJcbiAgICAgIHRoaXMuVVNFUl9DQVJUX0lURU1TLmZvckVhY2goKGl0ZW0pPT4ge1xyXG4gICAgICAgIHRoaXMuY2FydEluZm8uYmlsbGRldGFpbHMudG90YWxHcm9zc1ZhbHVlICs9IChpdGVtLmRpc2NvdW50ZWRQcmljZSAqIChpdGVtLnF1YW50aXR5ID8/IDEpKTtcclxuICAgICAgICB0aGlzLmNhcnRJbmZvLmJpbGxkZXRhaWxzLnRvdGFsVGF4ICs9IChpdGVtLnF1YW50aXR5ICogKGl0ZW0uaXRlbVRheCA/PyAwKSk7XHJcbiAgICAgIH0pXHJcbiAgICAgIHRoaXMuY2FydEluZm8uYmlsbGRldGFpbHMuZGVsaXZlcnlDaGFyZ2VzID0gKGRlbGl2ZXJ5T3B0aW9uPy5taW5PcmRlckFtb3VudCA+IHRoaXMuY2FydEluZm8uYmlsbGRldGFpbHMudG90YWxHcm9zc1ZhbHVlKSA/IDAgOiAoZGVsaXZlcnlPcHRpb24/LmRlbGl2ZXJ5Q2hhcmdlcyA/PyAwKTtcclxuICAgICAgdGhpcy5jYXJ0SW5mby5iaWxsZGV0YWlscy50b3RhbE5ldFZhbHVlID0gdGhpcy5jYXJ0SW5mby5iaWxsZGV0YWlscy50b3RhbEdyb3NzVmFsdWUgLSB0aGlzLmNhcnRJbmZvLmJpbGxkZXRhaWxzLmRlbGl2ZXJ5Q2hhcmdlcztcclxuICAgICAgdGhpcy5jYXJ0SW5mby50b3RhbEFtb3VudCA9IHRoaXMuY2FydEluZm8uYmlsbGRldGFpbHMudG90YWxOZXRWYWx1ZSArIHRoaXMuZ2V0VGF4QW1vdW50KCkgKyB0aGlzLmNhcnRJbmZvLmJpbGxkZXRhaWxzLmRlbGl2ZXJ5Q2hhcmdlcztcclxuICAgICAgdGhpcy5jYXJ0SW5mby5vcmRlcmVkSXRlbXMgPSB0aGlzLlVTRVJfQ0FSVF9JVEVNUztcclxuICAgIH1cclxuICAgIHRoaXMucmVzcG9uc2VEYXRhID0gdGhpcy5jYXJ0SW5mbztcclxuICB9XHJcblxyXG4gIGdldFRheEFtb3VudCgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuICF0aGlzLmNhcnRJbmZvLmJpbGxkZXRhaWxzPy5jb3Vwb25JZCA/ICh0aGlzLmNhcnRJbmZvLmJpbGxkZXRhaWxzLnRvdGFsVGF4ID8/IDApIDogKHRoaXMuY2FydEluZm8uYmlsbGRldGFpbHM/LnRvdGFsVGF4QWZ0ZXJEaXNjb3VudCA/PyAwKSA7XHJcbiAgfVxyXG5cclxuICBnZXQgZ2V0QWRkcmVzc0xpc3QoKSB7XHJcbiAgICByZXR1cm4gdGhpcy51c2VyRGV0YWlscyA/IFsuLi50aGlzLnVzZXJEZXRhaWxzPy5hZGRyZXNzRGV0YWlsc0xpc3RdIDogW107XHJcbiAgfVxyXG4gIGdldCBpc01vYmlsZSgpIHtcclxuICAgIHJldHVybiB3aW5kb3cuaW5uZXJXaWR0aCA8PSA0NzU7XHJcbiAgfVxyXG4gIGdldCBjdXJyZW5jeSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIEJVU0lORVNTX0NPTlNUQU5UUy5DVVJSRU5DWTtcclxuICB9XHJcbn1cclxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc0xvYWRpbmdcIj5cclxuICA8cC10b2FzdCBwb3NpdGlvbj1cImJvdHRvbS1yaWdodFwiIFtiYXNlWkluZGV4XT1cIjEwMDAwMDAwMDAwXCIgW2F1dG9aSW5kZXhdPVwidHJ1ZVwiIFtzaG93VHJhbnNmb3JtT3B0aW9uc109XCJpc01vYmlsZSA/ICd0cmFuc2xhdGVZKC0xMDAlKScgOiAnJ1wiPjwvcC10b2FzdD5cclxuXHJcbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImRhdGFcIj5cclxuICAgIDxzZWN0aW9uIFtpZF09XCJkYXRhPy5pZFwiIFtzaW1wb0xheW91dF09XCJzdHlsZXM/LmxheW91dFwiIFtpZF09XCJkYXRhPy5pZFwiIFtzaW1wb0JhY2tncm91bmRdPVwic3R5bGVzPy5iYWNrZ3JvdW5kXCIgW2F0dHIuY2xhc3NdPVwiaXNNb2JpbGUgPyAncHktNSBwb3NpdGlvbi1yZWxhdGl2ZScgOiAncG9zaXRpb24tcmVsYXRpdmUnXCIgc2ltcG9Ib3ZlciAoaG92ZXJpbmcpPVwic2hvd0VkaXRUYWJzKCRldmVudClcIiBbYXR0ci5zdHlsZV09XCJjdXN0b21DbGFzc1wiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIG0tYXV0byBtYi00XCIgW3N0eWxlLm1hcmdpblRvcC5weF09XCJpc01vYmlsZSA/ICcnOiAnNTAnXCIgW3N0eWxlLndpZHRoLiVdPVwiaXNNb2JpbGUgPyAnOTAnIDogJydcIiAqbmdJZj1cInJlc3BvbnNlRGF0YT8ub3JkZXJlZEl0ZW1zPy5sZW5ndGhcIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cInRpbWVsaW5lXCIgW25nQ2xhc3NdPVwieydpc0FjdGl2ZSc6IGN1cnJlbnRUYWIgPT0gJ0JBRyd9XCIgKGNsaWNrKT1cImN1cnJlbnRUYWIgPSAnQkFHJ1wiPkJhZzwvc3Bhbj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiYmFyXCI+PC9kaXY+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJ0aW1lbGluZVwiIFtuZ0NsYXNzXT1cInsnaXNBY3RpdmUnOiBjdXJyZW50VGFiID09ICdBRERSRVNTJ31cIiAoY2xpY2spPVwiY3VycmVudFRhYiA9ICdBRERSRVNTJ1wiPkFkZHJlc3M8L3NwYW4+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImJhclwiPjwvZGl2PlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwidGltZWxpbmVcIiBbbmdDbGFzc109XCJ7J2lzQWN0aXZlJzogY3VycmVudFRhYiA9PSAnUEFZTUVOVCd9XCIgc3R5bGU9XCJjdXJzb3I6IGF1dG87XCI+UGF5bWVudDwvc3Bhbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjYXJ0LXBhcmVudCBjb250YWluZXJcIiAqbmdJZj1cIihyZXNwb25zZURhdGE/Lm9yZGVyZWRJdGVtcz8ubGVuZ3RoIHx8IDApID4gMFwiICBbaWRdPVwiZGF0YT8uaWRcIiBbc2ltcG9BbmltYXRpb25dPVwic3R5bGVzPy5hbmltYXRpb25cIj5cclxuICAgICAgICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJjdXJyZW50VGFiXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibGVmdC1wYW5lbFwiICpuZ1N3aXRjaENhc2U9XCInQkFHJ1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXktYmFnXCI+XHJcbiAgICAgICAgICAgICAgTXkgQmFnJm5ic3A7IDxzcGFuPih7e3Jlc3BvbnNlRGF0YT8ub3JkZXJlZEl0ZW1zPy5sZW5ndGh9fSBJdGVtcyk8L3NwYW4+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FydC1pdGVtc1wiPlxyXG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgcmVzcG9uc2VEYXRhPy5vcmRlcmVkSXRlbXM7IGxldCBpZHggPSBpbmRleFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIml0ZW0tcGFyZW50IGQtZmxleFwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaC0xMDBcIiBzdHlsZT1cInBhZGRpbmc6IDBweDsgd2lkdGg6IGZpdC1jb250ZW50O1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbWcgbG9hZGluZz1cImxhenlcIiBvbmVycm9yPVwidGhpcy5zcmM9J2h0dHBzOi8vaS5wb3N0aW1nLmNjL2hQUzJKcFYwL25vLWltYWdlLWF2YWlsYWJsZS5qcGcnXCIgY2xhc3M9XCJwcm9kdWN0LWltZ1wiIFtzcmNdPVwiaXRlbS5pbWdVcmwgPz8gJ2h0dHBzOi8vaS5wb3N0aW1nLmNjL2hQUzJKcFYwL25vLWltYWdlLWF2YWlsYWJsZS5qcGcnXCIgYWx0PVwiXCIgKGNsaWNrKT1cImdvVG9Qcm9kdWN0RGV0YWlscyhpdGVtKVwiPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02IGgtMTAwXCIgW3N0eWxlLndpZHRoLnB4XT1cImlzTW9iaWxlID8gJzIwMCcgOiAnJ1wiIHN0eWxlPVwibWFyZ2luLWxlZnQ6IHB4O1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsaC0yM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIml0ZW0tbmFtZSB0cmltLXRleHQgaGVhZGluZy1sYXJnZVwiPnt7aXRlbS5pdGVtTmFtZX19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJpY2Utd2l0aC10YXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gW2lubmVySFRNTF09J2N1cnJlbmN5Jz48L3NwYW4+IHt7KGl0ZW0uZGlzY291bnRlZFByaWNlKSB8IG51bWJlcjogJzEuMC0yJ319XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpdGVtLml0ZW1WYXJpYW50XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCIgKm5nRm9yPVwibGV0IHZhcmllbnQgb2YgZ2V0S2V5cyhpdGVtLml0ZW1WYXJpYW50LnByb3BlcnRpZXMpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cm9uZyBjbGFzcz1cImZ3LWJvbGRcIj57eyB2YXJpZW50IH19IDogPC9zdHJvbmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwiZnctbm9ybWFsXCIgc3R5bGU9XCJtYXJnaW4tbGVmdDogNXB4OyBoZWlnaHQ6IDEzcHg7IHdpZHRoOiAxM3B4OyBib3JkZXItcmFkaXVzOiA1MCU7XCIgKm5nSWY9XCJ2YXJpZW50LnRvTG93ZXJDYXNlKCkgPT0gJ2NvbG9yJ1wiIFtzdHlsZS5iYWNrZ3JvdW5kQ29sb3JdPVwiaXRlbS5pdGVtVmFyaWFudC5wcm9wZXJ0aWVzW3ZhcmllbnRdXCI+PC9kaXY+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBpdGVtLml0ZW1WYXJpYW50LnByb3BlcnRpZXNbdmFyaWVudF0gfCB1cHBlcmNhc2UgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpdGVtLXF1YW50aXR5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjdXJzb3JcIiAoY2xpY2spPVwiYWRkVG9DYXJ0KGl0ZW0sICdTVUJTVFJBQ1QnKVwiPi08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3tpdGVtLnF1YW50aXR5fX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjdXJzb3JcIiAoY2xpY2spPVwiYWRkVG9DYXJ0KGl0ZW0sICdBREQnKVwiPis8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNCBwb3NpdGlvbi1yZWxhdGl2ZVwiIHN0eWxlPVwibWFyZ2luLWxlZnQ6IGF1dG87IHdpZHRoOiAwcHg7IFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpdGVtLXByaWNlXCI+PHNwYW4gW2lubmVySFRNTF09J2N1cnJlbmN5Jz48L3NwYW4+IHt7KChpdGVtLmRpc2NvdW50ZWRQcmljZSkgKiBpdGVtLnF1YW50aXR5KSAgfCBudW1iZXI6ICcxLjAtMid9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJkZWxldGUtaXRlbVwiIChjbGljayk9XCJyZW1vdmVJdGVtKGl0ZW0pXCIgW3N0eWxlLnJpZ2h0LnB4XT1cImlzTW9iaWxlID8gJzUnIDogJzAnXCI+ZGVsZXRlPC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxociAqbmdJZj1cInJlc3BvbnNlRGF0YT8ub3JkZXJlZEl0ZW1zPy5sZW5ndGggIT0gKGlkeCArMSlcIj5cclxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJsZWZ0LXBhbmVsXCIgKm5nU3dpdGNoQ2FzZT1cIidBRERSRVNTJ1wiPlxyXG4gICAgICAgICAgICA8c2ltcG8tYWRkcmVzcyBbaXNDYXJ0XT1cInRydWVcIiBbcmVzcG9uc2VEYXRhXT1cImdldEFkZHJlc3NMaXN0XCIgW2RhdGFdPVwiZGF0YVwiIChzZWxlY3RlZEFkZHJlc3MpPVwiYWRkcmVzc1NlbGVjdGVkKCRldmVudClcIj48L3NpbXBvLWFkZHJlc3M+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJsZWZ0LXBhbmVsXCIgKm5nU3dpdGNoQ2FzZT1cIidQQVlNRU5UJ1wiPjwvZGl2PlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyaWdodC1wYW5lbFwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm15LWJhZ1wiPlxyXG4gICAgICAgICAgICBDb3Vwb25cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvdXBvbnNcIiAoY2xpY2spPVwib3BlbkRpYWxvZyhDb3Vwb25MaXN0KVwiPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIXJlc3BvbnNlRGF0YS5iaWxsZGV0YWlscz8uY291cG9uSWRcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBzdHlsZT1cImZvbnQtd2VpZ2h0OiA2MDA7XCI+QXBwbHkgQ291cG9uPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gc3R5bGU9XCJmb250LXNpemU6IDEzcHg7XCI+U2F2ZSBtb3JlIHdpdGggY291cG9uIGFuZCBvZmZlcnM8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBbc3R5bGUuY29sb3JdPVwic3R5bGVzPy5iYWNrZ3JvdW5kPy5hY2NlbnRDb2xvclwiIHN0eWxlPVwiZm9udC13ZWlnaHQ6IDYwMDtcIj5BcHBseTwvZGl2PlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInJlc3BvbnNlRGF0YS5iaWxsZGV0YWlscz8uY291cG9uSWRcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBzdHlsZT1cImZvbnQtd2VpZ2h0OiA2MDA7XCI+Q291cG9uPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gc3R5bGU9XCJmb250LXNpemU6IDEzcHg7XCI+U2F2ZSBtb3JlIHdpdGggY291cG9uIGFuZCBvZmZlcnM8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBbc3R5bGUuY29sb3JdPVwic3R5bGVzPy5iYWNrZ3JvdW5kPy5hY2NlbnRDb2xvclwiIChjbGljayk9XCJyZW1vdmVDb3Vwb24oJGV2ZW50KVwiPlJlbW92ZTwvZGl2PlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm15LWJhZ1wiPlxyXG4gICAgICAgICAgICBQcmljZSBEZXRhaWxzXHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcmljZS1kZXRhaWxzXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcmljZS1wYXJlbnQtYmxvY2tcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJpY2UtdHlwZVwiPlRvdGFsIFByaWNlPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByaWNlLXZhbHVlXCI+PHNwYW4gW2lubmVySFRNTF09J2N1cnJlbmN5Jz48L3NwYW4+IHt7KHJlc3BvbnNlRGF0YT8uYmlsbGRldGFpbHM/LnRvdGFsTmV0VmFsdWUgPz8gMCkgfCBudW1iZXI6ICcxLjAtMid9fTwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByaWNlLXBhcmVudC1ibG9ja1wiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcmljZS10eXBlXCI+VG90YWwgVGF4PC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByaWNlLXZhbHVlXCI+PHNwYW4gW2lubmVySFRNTF09J2N1cnJlbmN5Jz48L3NwYW4+IHt7KCghcmVzcG9uc2VEYXRhLmJpbGxkZXRhaWxzPy5jb3Vwb25JZCA/IHJlc3BvbnNlRGF0YT8uYmlsbGRldGFpbHM/LnRvdGFsVGF4IDogcmVzcG9uc2VEYXRhPy5iaWxsZGV0YWlscz8udG90YWxUYXhBZnRlckRpc2NvdW50KSA/PyAwKSB8IG51bWJlcjogJzEuMC0yJ319PC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJpY2UtcGFyZW50LWJsb2NrXCJcclxuICAgICAgICAgICAgICAqbmdJZj1cInJlc3BvbnNlRGF0YT8uYmlsbGRldGFpbHM/LmRlbGl2ZXJ5Q2hhcmdlcyAmJiByZXNwb25zZURhdGEuYmlsbGRldGFpbHMuZGVsaXZlcnlDaGFyZ2VzID4gMFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcmljZS10eXBlXCI+RGVsaXZlcnkgQ2hhcmdlPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByaWNlLXZhbHVlXCI+PHNwYW4gW2lubmVySHRtbF09J2N1cnJlbmN5Jz48L3NwYW4+IHt7cmVzcG9uc2VEYXRhLmJpbGxkZXRhaWxzLmRlbGl2ZXJ5Q2hhcmdlcyB8IG51bWJlcjogJzEuMC0yJ319PC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJpY2UtcGFyZW50LWJsb2NrXCJcclxuICAgICAgICAgICAgICAqbmdJZj1cInJlc3BvbnNlRGF0YT8uYmlsbGRldGFpbHM/LmRpc2NvdW50QW1vdW50XCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByaWNlLXR5cGVcIj5EaXNjb3VudCBBbW91bnQ8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJpY2UtdmFsdWVcIj48c3BhbiBbaW5uZXJIdG1sXT0nY3VycmVuY3knPjwvc3Bhbj4ge3tyZXNwb25zZURhdGE/LmJpbGxkZXRhaWxzPy5kaXNjb3VudEFtb3VudCB8IG51bWJlcjogJzEuMC0yJ319PC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8aHI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcmljZS1wYXJlbnQtYmxvY2tcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJpY2UtdHlwZVwiIHN0eWxlPVwiY29sb3I6IGJsYWNrO2ZvbnQtd2VpZ2h0OiA2MDA7XCI+VG90YWwgQW1vdW50PC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByaWNlLXZhbHVlXCIgc3R5bGU9XCJmb250LXdlaWdodDogNjAwO1wiPjxzcGFuIFtpbm5lckh0bWxdPSdjdXJyZW5jeSc+PC9zcGFuPiB7eygocmVzcG9uc2VEYXRhPy50b3RhbEFtb3VudCA/PyAwKSAtIChyZXNwb25zZURhdGE/LmJpbGxkZXRhaWxzPy5kaXNjb3VudEFtb3VudCA/PyAwKSkgfCBudW1iZXI6ICcxLjAtMid9fTwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJidXR0b24tcGFyZW50XCI+XHJcbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImN1cnJlbnRUYWIgPT0gJ0JBRydcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJidG4gbW9iaWxlLWZpeGVkXCIgKGNsaWNrKT1cInByb2NlZWRUb0NoZWNrb3V0KClcIiAgW3N0eWxlLmJhY2tncm91bmRDb2xvcl09XCJkYXRhPy5zdHlsZXM/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yXCIgW3N0eWxlLmNvbG9yXT1cImRhdGE/LnN0eWxlcz8uYmFja2dyb3VuZD8uY29sb3JcIj57e2RhdGE/LmFjdGlvbj8uYnV0dG9ucz8uWzBdPy5jb250ZW50Py5sYWJlbCA/PyAnQ2hlY2tvdXQgQ2FydCd9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJ0blwiIChjbGljayk9XCJwcm9jZWVkVG9MaXN0UGFnZSgpXCIgc2ltcG9CdXR0b25EaXJlY3RpdmUgW2J1dHRvblN0eWxlXT1cImRhdGE/LmFjdGlvbj8uYnV0dG9ucz8uWzFdPy5zdHlsZXNcIiBbY29sb3JdPVwiZGF0YT8uc3R5bGVzPy5iYWNrZ3JvdW5kPy5hY2NlbnRDb2xvclwiPnt7ZGF0YT8uYWN0aW9uPy5idXR0b25zPy5bMV0/LmNvbnRlbnQ/LmxhYmVsID8/ICdDb250aW51ZSBTaG9wcGluZyd9fTwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY3VycmVudFRhYiA9PSAnQUREUkVTUydcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJidG4gbW9iaWxlLWZpeGVkXCIgKGNsaWNrKT1cInByb2NlZWRUb1BheW1lbnQoKVwiIFtzdHlsZS5iYWNrZ3JvdW5kQ29sb3JdPVwiZGF0YT8uc3R5bGVzPy5iYWNrZ3JvdW5kPy5hY2NlbnRDb2xvclwiIFtzdHlsZS5jb2xvcl09XCJkYXRhPy5zdHlsZXM/LmJhY2tncm91bmQ/LmNvbG9yXCI+e3tkYXRhPy5hY3Rpb24/LmJ1dHRvbnM/LlsyXT8uY29udGVudD8ubGFiZWwgPz8gJ1BsYWNlIE9yZGVyJ319PC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgPCEtLSA8ZGl2ICpuZ0Zvcj1cImxldCBidXR0b24gb2YgZGF0YT8uYWN0aW9uPy5idXR0b25zO2xldCBpID0gaW5kZXhcIj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG5cIiAoY2xpY2spPVwiaSA9PSAwID8gcHJvY2VlZFRvQ2hlY2tvdXQoKSA6IHByb2NlZWRUb0xpc3RQYWdlKClcIiBzaW1wb0J1dHRvbkRpcmVjdGl2ZSBbaWRdPVwiZGF0YT8uaWQrYnV0dG9uLmlkXCIgW2J1dHRvblN0eWxlXT1cImJ1dHRvbj8uc3R5bGVzXCJcclxuICAgICAgICAgICAgICAgICAgW2NvbG9yXT1cInN0eWxlcz8uYmFja2dyb3VuZD8uYWNjZW50Q29sb3JcIj57e2J1dHRvbj8uY29udGVudD8ubGFiZWx9fTwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgIDwvZGl2PiAtLT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8c2VjdGlvbiBjbGFzcz1cImVtcHR5LWNhcnRcIiAqbmdJZj1cIihyZXNwb25zZURhdGE/Lm9yZGVyZWRJdGVtcz8ubGVuZ3RoIHx8IDApID09IDBcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZW1wdHktY2FydC1jb250YWluZXJcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJ0LWltYWdlXCI+XHJcbiAgICAgICAgICAgIDxpbWcgbG9hZGluZz1cImxhenlcIiBvbmVycm9yPVwidGhpcy5zcmM9J2h0dHBzOi8vaS5wb3N0aW1nLmNjL2hQUzJKcFYwL25vLWltYWdlLWF2YWlsYWJsZS5qcGcnXCIgICBbc3JjXT1cImRhdGE/LmNvbnRlbnQ/LmltYWdlPy51cmxcIiBbYWx0XT1cImRhdGE/LmNvbnRlbnQ/LmltYWdlPy5hbHRUZXh0XCI+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJ0LXRleHRcIj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgdGV4dCBvZiBkYXRhPy5jb250ZW50Py5pbnB1dFRleHRcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXJcIiBbbmdDbGFzc109XCJ7J2hlYWRpbmctbWVkaXVtJzogdGV4dC5sYWJlbCA9PSAnSGVhZGluZycsICdkZXNjcmlwdGlvbic6IHRleHQubGFiZWwgPT0gJ1RleHQnfVwiPnt7dGV4dC52YWx1ZX19PC9kaXY+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJkZXNjcmlwdGlvbiBkLWZsZXggbXQtNFwiPlxyXG4gICAgICAgICAgICAgIExvb2tzIGxpa2UgeW91IGhhdmUgbm90IGFkZGVkIGFueXRoaW5nIHRvIHlvdXIgY2FydC4gR28gYWhlYWQgJiBleHBsb3JlIHRvcCBjYXRlZ29yaWVzLlxyXG4gICAgICAgICAgICA8L2Rpdj4gLS0+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICA8ZGl2IFtuZ0NsYXNzXT1cInsnaG92ZXJfZWZmZWN0JzogZWRpdH1cIiAqbmdJZj1cInNob3dFZGl0b3JzXCI+XHJcbiAgICAgICAgPHNpbXBvLWhvdmVyLWVsZW1lbnRzIFtkYXRhXT1cImRhdGFcIiBbaW5kZXhdPVwiaW5kZXhcIiBbZWRpdE9wdGlvbnNdPVwiZWRpdFwiIFtpc0Vjb21tZXJjZV09XCJ0cnVlXCI+PC9zaW1wby1ob3Zlci1lbGVtZW50cz5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgKm5nSWY9XCJzaG93RGVsZXRlXCIgW25nQ2xhc3NdPVwieydob3Zlcl9lZmZlY3QnOiBkZWxldGV9XCI+XHJcbiAgICAgICAgPHNpbXBvLWRlbGV0ZS1ob3Zlci1lbGVtZW50IFtkYXRhXT1cImRhdGFcIiBbaW5kZXhdPVwiaW5kZXhcIj48L3NpbXBvLWRlbGV0ZS1ob3Zlci1lbGVtZW50PlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICA8L3NlY3Rpb24+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFkYXRhXCI+XHJcbiAgICA8c2VjdGlvbiBjbGFzcz1cImNhcnQtd2luZG93XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJoZWFkaW5nLWxhcmdlIGxoLTIgbWItMyBoZWFkZXItc2VjXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgIDxtYXQtaWNvbiAoY2xpY2spPVwiY2xvc2VXaW5kb3coKVwiPmtleWJvYXJkX2Fycm93X2xlZnQ8L21hdC1pY29uPlxyXG4gICAgICAgICAgPHNwYW4+WW91ciBDYXJ0PC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzYXZpbmdcIj48L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJvZmZlcnNcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiIHN0eWxlPVwiZ2FwOiA1cHg7XCI+XHJcbiAgICAgICAgICA8aW1nIHNyYz1cImh0dHBzOi8vaS5wb3N0aW1nLmNjL2h0WTU1c3FZL2Rpc2NvdW50LnBuZ1wiIGFsdD1cIlwiIGhlaWdodD1cIjIwXCIgd2lkdGg9XCIyMFwiPlxyXG4gICAgICAgICAgPHNwYW4+QXZhaWwgT2ZmZXJzIC8gQ291cG9uczwvc3Bhbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8bWF0LWljb24+a2V5Ym9hcmRfYXJyb3dfcmlnaHQ8L21hdC1pY29uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cInNtYWxsLWl0ZW1zXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiByZXNwb25zZURhdGE/Lm9yZGVyZWRJdGVtc1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNtYWxsLWl0ZW1cIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleFwiIHN0eWxlPVwiZ2FwOiA1cHg7XCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImgtMTAwXCIgc3R5bGU9XCJwYWRkaW5nOiAwcHg7IHdpZHRoOiBmaXQtY29udGVudDtcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgbG9hZGluZz1cImxhenlcIiBvbmVycm9yPVwidGhpcy5zcmM9J2h0dHBzOi8vaS5wb3N0aW1nLmNjL2hQUzJKcFYwL25vLWltYWdlLWF2YWlsYWJsZS5qcGcnXCIgY2xhc3M9XCJzbWFsbC1wcm9kdWN0LWltZ1wiIFtzcmNdPVwiaXRlbS5pbWdVcmwgPz8gJ2h0dHBzOi8vaS5wb3N0aW1nLmNjL2hQUzJKcFYwL25vLWltYWdlLWF2YWlsYWJsZS5qcGcnXCIgYWx0PVwiXCIgKGNsaWNrKT1cImdvVG9Qcm9kdWN0RGV0YWlscyhpdGVtKVwiPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzbWFsbC1pdGVtLW5hbWUgdHJpbS10ZXh0XCI+e3sgaXRlbS5pdGVtTmFtZSB8IHRpdGxlY2FzZSB9fTwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzbWFsbC1pdGVtLXF1YW50aXR5XCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImN1cnNvclwiIChjbGljayk9XCJhZGRUb0NhcnQoaXRlbSwgJ1NVQlNUUkFDVCcpXCI+LTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPnt7aXRlbS5xdWFudGl0eX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjdXJzb3JcIiAoY2xpY2spPVwiYWRkVG9DYXJ0KGl0ZW0sICdBREQnKVwiPis8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNtYWxsLWl0ZW0tcHJpY2VcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcmljZS13aXRoLXRheFwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3BhbiBbaW5uZXJIVE1MXT0nY3VycmVuY3knPjwvc3Bhbj4ge3soaXRlbS5kaXNjb3VudGVkUHJpY2UpIHwgbnVtYmVyOiAnMS4wLTInfX1cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwicHJpY2Utd2l0aC10YXhcIj5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4gW2lubmVySFRNTF09J2N1cnJlbmN5Jz48L3NwYW4+IHt7KGl0ZW0uc2VsbGluZykgfCBudW1iZXI6ICcxLjAtMid9fVxyXG4gICAgICAgICAgICAgICAgPC9kaXY+IC0tPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImZvdHRlci1zZWNcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZGVsaXZlcnktYWRkIGQtZmxleFwiPlxyXG4gICAgICAgICAgPG1hdC1pY29uPmhvbWU8L21hdC1pY29uPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImFkZHJlc3NcIj5UZXRzdGluZzwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJwYXltZW50LWJ0blwiIFtkaXNhYmxlZF09XCJjYXJ0SW5mby5hZGRyZXNzRGV0YWlsc1wiIChjbGljayk9XCJwcm9jZWVkVG9DaGVja291dCgpXCI+IDxzcGFuIHN0eWxlPVwibWFyZ2luLXJpZ2h0OiA1cHg7XCI+Q2xpY2sgdG8gUGF5PC9zcGFuPiA8c3BhbiBbaW5uZXJIdG1sXT0nY3VycmVuY3knPjwvc3Bhbj4ge3socmVzcG9uc2VEYXRhPy50b3RhbEFtb3VudCA/PyAwKSB8IG51bWJlcjogJzEuMC0yJ319PC9idXR0b24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9zZWN0aW9uPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG48L25nLWNvbnRhaW5lcj5cclxuXHJcbjxuZ3gtc2tlbGV0b24tbG9hZGVyICpuZ0lmPVwiaXNMb2FkaW5nXCIgY291bnQ9XCIxXCIgYXBwZWFyYW5jZT1cImNpcmNsZVwiIFt0aGVtZV09XCJ7XHJcbiAgd2lkdGg6ICcxMDAlJyxcclxuICBoZWlnaHQ6ICc0MHZoJyxcclxuICAnYm9yZGVyLXJhZGl1cyc6ICcxMHB4JyxcclxuICAncG9zaXRpb24nOiAncmVsYXRpdmUnLFxyXG4gICdyaWdodCc6ICc1cHgnXHJcbn1cIj5cclxuPC9uZ3gtc2tlbGV0b24tbG9hZGVyPlxyXG5cclxuPG5nLXRlbXBsYXRlICNDb3Vwb25MaXN0PlxyXG4gIDxzZWN0aW9uIGNsYXNzPVwiY291cG9ucy1saXN0aW5nLXNlY3Rpb25cIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjb3Vwb24taGVhZGluZ1wiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiYmFjay1idG5cIiAoY2xpY2spPVwiY2xvc2VEaWFsb2dSZWYoKVwiPlxyXG4gICAgICAgIDxtYXQtaWNvbj5rZXlib2FyZF9hcnJvd19sZWZ0PC9tYXQtaWNvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJoZWFkZXItdGV4dFwiPkFwcGx5IENvdXBvbjwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8IS0tIDxkaXYgY2xhc3M9XCJjb3Vwb24tc2VhcmNoLXNlY1wiPlxyXG4gICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBwbGFjZWhvbGRlcj1cIlR5cGUgQ291cG9uIENvZGVcIiBbKG5nTW9kZWwpXT1cImVudGVyZWRDb3Vwb25Db2RlXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJhcHBseS1idG4tc2VhcmNoXCIgKGNsaWNrKT1cInNlYXJjaElmQXBwbGljYWJsZSgpXCI+QXBwbHk8L2Rpdj5cclxuICAgIDwvZGl2PiAtLT5cclxuICAgIDxkaXYgY2xhc3M9XCJjb3Vwb24tbGlzdGluZ1wiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY291cG9uTGlzdC5sZW5ndGggPiAwOyBlbHNlIHNob3dFbXB0eVNjcmVlblwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGNvdXBvbkRldGFpbHMgb2YgY291cG9uTGlzdDsgbGV0IGlkeCA9IGluZGV4XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY291cG9uLWRldGFpbHNcIlxyXG4gICAgICAgICAgICBbbmdTdHlsZV09XCJ7J2JhY2tncm91bmQtY29sb3InOiAhY291cG9uRGV0YWlscy5hcHBsaWNhYmxlID8gJyNGRkYyRjQnIDogJyNFREZGRkEnfVwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGV0YWlsc19fY291cG9uLWhlYWRpbmdcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY291cG9uLWJyaWVmXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY291cG9uLWJyaWVmX19sZWZ0LXNlY1wiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY291cG9uLW5hbWVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtuZ1N0eWxlXT1cInsnY29sb3InOiAhY291cG9uRGV0YWlscy5hcHBsaWNhYmxlID8gJyNEQjFBMUEnIDogJyMwOTdENUYnfVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7IGNvdXBvbkRldGFpbHMuY291cG9uQ29kZSB8IHVwcGVyY2FzZSB9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY291cG9uLWRlc2NcIj57eyBjb3Vwb25EZXRhaWxzLmRpc2NvdW50RGVzY3JpcHRpb24gfCB0aXRsZWNhc2UgfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvdXBvbi1icmllZl9fcmlnaHQtc2VjXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhcHBseS1vZmZlci1idG5cIlxyXG4gICAgICAgICAgICAgICAgICAgIFtzdHlsZS5vcGFjaXR5XT1cImNvdXBvbkRldGFpbHMuYXBwbGljYWJsZSA/ICcxJyA6ICcwLjMnXCIgW25nU3R5bGVdPVwieydjdXJzb3InOiBjb3Vwb25EZXRhaWxzLmFwcGxpY2FibGUgPyAncG9pbnRlcicgOiAnJ31cIiAoY2xpY2spPVwiYXBwbHlDb3Vwb24oY291cG9uRGV0YWlscylcIj5BcHBseTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwiY291cG9uLXRvZ2dsZS1kZXRhaWxzLWJ0blwiIChjbGljayk9XCJjb3Vwb25EZXRhaWxzLnN0YXR1cyA9ICFjb3Vwb25EZXRhaWxzLnN0YXR1c1wiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJoaWRlLWRldGFpbHMtYnRuXCIgKm5nSWY9XCJjb3Vwb25EZXRhaWxzLnN0YXR1c1wiPkhpZGUgZGV0YWlsczwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaG93LWRldGFpbHMtYnRuXCIgKm5nSWY9XCIhY291cG9uRGV0YWlscy5zdGF0dXNcIj5WaWV3IGRldGFpbHM8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj4gLS0+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY291cG9uRGV0YWlscy5zdGF0dXNcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGV0YWlscy1kaXZpZGVyXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgPHVsIGNsYXNzPVwiZGV0YWlsc19fY291cG9uLXRlcm1zXCI+XHJcbiAgICAgICAgICAgICAgICA8bGk+T2ZmZXIgdmFsaWQgZnJvbSB7eyBjb3Vwb25EZXRhaWxzLnZhbGlkRnJvbSB8IGRhdGUgfX0gLSB7eyBjb3Vwb25EZXRhaWxzLnZhbGlkVG8gfCBkYXRlIH19PC9saT5cclxuICAgICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPG5nLXRlbXBsYXRlICNzaG93RW1wdHlTY3JlZW4+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImVtcHR5LXNjcmVlbi1jb250YWluZXJcIj5cclxuICAgICAgICAgIDxpbWcgbG9hZGluZz1cImxhenlcIiBzcmM9XCIuLi8uLi8uLi8uLi8uLi9hc3NldHMvY29tbW9uL2NvdXBvbi1lbXB0eS1pbWcuc3ZnXCIgYWx0PVwiXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZW1wdHktc2NyZWVuX19wcmltYXJ5LXRleHRcIj5ObyBDb3Vwb24gQXZhaWxhYmxlPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZW1wdHktc2NyZWVuX19zZWNvbmRhcnktdGV4dFwiPlxyXG4gICAgICAgICAgICBMb29rcyBsaWtlIHRoZXJlIGFyZSBubyBjb3Vwb25zIGF0IHRoZSBtb21lbnRcclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwiZW1wdHktc2NyZWVuX19idXR0b25cIj5FeHBsb3JlPC9kaXY+IC0tPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9zZWN0aW9uPlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuIl19
|
670
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FydC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL2Vjb21tZXJjZS9zZWN0aW9ucy9jYXJ0L2NhcnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9lY29tbWVyY2Uvc2VjdGlvbnMvY2FydC9jYXJ0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsTUFBTSxFQUFFLEtBQUssRUFBcUIsUUFBUSxFQUFlLE1BQU0sZUFBZSxDQUFDO0FBRS9HLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUN6RixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDakQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDNUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2pFLE9BQU8sV0FBVyxNQUFNLCtCQUErQixDQUFDO0FBR3hELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBR2hFLE9BQU8sRUFBRSxlQUFlLEVBQWEsZUFBZSxFQUFnQixNQUFNLDBCQUEwQixDQUFDO0FBS3JHLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxN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Qjt3QkFDbEIsbUJBQW1CO3dCQUNuQixjQUFjO3dCQUNkLGdCQUFnQjt3QkFDaEIsV0FBVzt3QkFDWCx1QkFBdUI7cUJBQ3hCLGFBQ1UsQ0FBQyxjQUFjLENBQUM7OzBCQXlCeEIsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxlQUFlOzswQkFDbEMsUUFBUTt5Q0FyQkYsSUFBSTtzQkFBWixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5qZWN0LCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE9wdGlvbmFsLCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBZGRyZXNzLCBDYXJ0U2VjdGlvbk1vZGFsLCBDYXJ0U2VjdGlvblN0eWxlc01vZGVsIH0gZnJvbSAnLi9jYXJ0Lm1vZGFsJztcclxuaW1wb3J0IHsgVG9hc3RNb2R1bGUgfSBmcm9tICdwcmltZW5nL3RvYXN0JztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEJ1dHRvbkRpcmVjdGl2ZURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZS9idXR0b24tZGlyZWN0aXZlLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IE1hdEljb24gfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcclxuaW1wb3J0IHsgQW5pbWF0aW9uRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vZGlyZWN0aXZlL2FuaW1hdGlvbi1kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBIb3ZlckRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZS9ob3Zlci1lbGVtZW50LWRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IENvbnRlbnRGaXREaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9kaXJlY3RpdmUvY29udGVudC1maXQtZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgU2ltcG9Db21wb25lbnRNb2R1bGUgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL2luZGV4JztcclxuaW1wb3J0IEJhc2VTZWN0aW9uIGZyb20gJy4uLy4uLy4uL3NlY3Rpb25zL0Jhc2VTZWN0aW9uJztcclxuaW1wb3J0IHsgRXZlbnRzU2VydmljZSB9IGZyb20gJy4uLy4vLi4vLi4vc2VydmljZXMvZXZlbnRzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDYXJ0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2NhcnQuc2VydmljZSc7XHJcbmltcG9ydCB7IEFkZHJlc3NDb21wb25lbnQgfSBmcm9tIFwiLi4vYWRkcmVzcy9hZGRyZXNzLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBBdXRoZW50aWNhdGVVc2VyQ29tcG9uZW50IH0gZnJvbSAnLi4vYXV0aGVudGljYXRlLXVzZXIvYXV0aGVudGljYXRlLXVzZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTUFUX0RJQUxPR19EQVRBLCBNYXREaWFsb2csIE1hdERpYWxvZ01vZHVsZSwgTWF0RGlhbG9nUmVmIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHsgUmVzdFNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vLi4vc2VydmljZXMvcmVzdC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFN0b3JhZ2VTZXJ2aWNlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3N0b3JhZ2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IFVzZXIgfSBmcm9tICcuLi8uLi9zdHlsZXMvdXNlci5tb2RhbCc7XHJcbmltcG9ydCB7IE9yZGVyZWRJdGVtcyB9IGZyb20gJy4uLy4uL3N0eWxlcy9PcmRlcmVkSXRlbXMubW9kYWwnO1xyXG5pbXBvcnQgeyBCVVNJTkVTU19DT05TVEFOVFMgfSBmcm9tICcuLi8uLi8uLi9jb25zdGFudHMvYnVzaW5lc3MuY29uc3RhbnQnO1xyXG5pbXBvcnQgeyBNZXNzYWdlU2VydmljZSB9IGZyb20gJ3ByaW1lbmcvYXBpJztcclxuaW1wb3J0IFN3YWwgZnJvbSAnc3dlZXRhbGVydDInO1xyXG5pbXBvcnQgeyBCYWNrZ3JvdW5kRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vZGlyZWN0aXZlL2JhY2tncm91bmQtZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgTWF0Qm90dG9tU2hlZXQsIE1hdEJvdHRvbVNoZWV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYm90dG9tLXNoZWV0JztcclxuaW1wb3J0IHsgUHJvZHVjdCB9IGZyb20gJy4uLy4uL3N0eWxlcy9wcm9kdWN0Lm1vZGFsJztcclxuaW1wb3J0IHsgQ3VzdG9tZXJSZXZpZXdDb21wb25lbnQgfSBmcm9tICcuLi9jdXN0b21lci1yZXZpZXcvY3VzdG9tZXItcmV2aWV3LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEF1dGhlbnRpY2F0aW9uUmVxdWlyZWRDb21wb25lbnQgfSBmcm9tICcuLi9hdXRoZW50aWNhdGlvbi1yZXF1aXJlZC9hdXRoZW50aWNhdGlvbi1yZXF1aXJlZC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBtZXJnZSwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IHJlc3BvbnNlIH0gZnJvbSAnZXhwcmVzcyc7XHJcblxyXG5pbnRlcmZhY2UgQ291cG9uIHtcclxuICBkaXNjb3VudFR5cGU6IHN0cmluZztcclxuICBkaXNjb3VudE5hbWU6IHN0cmluZztcclxuICBkaXNjb3VudERlc2NyaXB0aW9uOiBzdHJpbmc7XHJcbiAgYXBwbGljYWJsZTogYm9vbGVhbjtcclxuICBjb3Vwb25Db2RlOiBzdHJpbmc7XHJcbiAgY291cG9uSWQ6IHN0cmluZztcclxuICBzdGF0dXM6IGJvb2xlYW47XHJcbiAgdmFsaWRGcm9tOiBEYXRlO1xyXG4gIHZhbGlkVG86IERhdGU7XHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnc2ltcG8tY2FydCcsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIE1hdEljb24sXHJcbiAgICBNYXREaWFsb2dNb2R1bGUsXHJcbiAgICBTaW1wb0NvbXBvbmVudE1vZHVsZSxcclxuICAgIEJhY2tncm91bmREaXJlY3RpdmUsXHJcbiAgICBNYXRCb3R0b21TaGVldE1vZHVsZSxcclxuICAgIC8vRElSRUNUSVZFXHJcbiAgICBCdXR0b25EaXJlY3RpdmVEaXJlY3RpdmUsXHJcbiAgICBBbmltYXRpb25EaXJlY3RpdmUsXHJcbiAgICBDb250ZW50Rml0RGlyZWN0aXZlLFxyXG4gICAgSG92ZXJEaXJlY3RpdmUsXHJcbiAgICBBZGRyZXNzQ29tcG9uZW50LFxyXG4gICAgVG9hc3RNb2R1bGUsXHJcbiAgICBDdXN0b21lclJldmlld0NvbXBvbmVudFxyXG4gIF0sXHJcbiAgcHJvdmlkZXJzOiBbTWVzc2FnZVNlcnZpY2VdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jYXJ0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vY2FydC5jb21wb25lbnQuY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQ2FydENvbXBvbmVudCBleHRlbmRzIEJhc2VTZWN0aW9uIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIEBJbnB1dCgpIGRhdGE/OiBDYXJ0U2VjdGlvbk1vZGFsO1xyXG4gIEBJbnB1dCgpIHJlc3BvbnNlRGF0YT86IGFueTtcclxuICBASW5wdXQoKSBpbmRleD8gOiBudW1iZXI7XHJcbiAgQElucHV0KCkgZWRpdD8gOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgZGVsZXRlPyA6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgY3VzdG9tQ2xhc3M/OiBzdHJpbmc7XHJcbiAgaXNMb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIHN0eWxlcz86IENhcnRTZWN0aW9uU3R5bGVzTW9kZWw7XHJcbiAgcHVibGljIGN1cnJlbnRUYWI6ICdCQUcnIHwgJ0FERFJFU1MnIHwgJ1BBWU1FTlQnID0gXCJCQUdcIjtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9ldmVudFNlcnZpY2UgOiBFdmVudHNTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBjYXJ0U2VydmljZTogQ2FydFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlcjogUm91dGVyLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSByZXN0U2VydmljZTogUmVzdFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IG1hdERpYWxvZzogTWF0RGlhbG9nLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBzdG9yYWdlU2VydmljZTogU3RvcmFnZVNlcnZpY2VTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGJvdHRvbVNoZWV0OiBNYXRCb3R0b21TaGVldCxcclxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwdWJsaWMgbWF0RGlhbG9nRGF0YTogYW55LFxyXG4gICAgQE9wdGlvbmFsKCkgcHVibGljIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPENhcnRDb21wb25lbnQ+XHJcbiAgKXtcclxuICAgIHN1cGVyKClcclxuICB9XHJcblxyXG4gIHByaXZhdGUgdXNlckRldGFpbHM6IFVzZXIgfCBudWxsID0gbnVsbDtcclxuICBwcml2YXRlIFVTRVJfQ0FSVF9JVEVNUzogT3JkZXJlZEl0ZW1zW10gfCBudWxsID0gbnVsbDtcclxuICBwdWJsaWMgc2VsZWN0ZWRBZGRyZXNzSWR4OiBudW1iZXIgPSAwO1xyXG4gIHB1YmxpYyBlbnRlcmVkQ291cG9uQ29kZTogc3RyaW5nID0gXCJcIjtcclxuICBwdWJsaWMgY291cG9uTGlzdDogQ291cG9uW10gPSBbXTtcclxuXHJcbiAgY2FydEluZm86IGFueSA9IHtcclxuICAgIG9yZGVyZWRJdGVtczogbnVsbCxcclxuICAgIGJ1c2luZXNzSWQ6IGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiYklkXCIpID8/IGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiYnVzaW5lc3NJZFwiKSxcclxuICAgIGJpbGxkZXRhaWxzOiB7XHJcbiAgICAgIFwidG90YWxOZXRWYWx1ZVwiOiAwLFxyXG4gICAgICBcInRvdGFsVGF4QWZ0ZXJEaXNjb3VudFwiOiAwLFxyXG4gICAgICBcInRvdGFsR3Jvc3NWYWx1ZVwiOiAwLFxyXG4gICAgICBcInRvdGFsVGF4XCI6IDAsXHJcbiAgICAgIFwidG90YWxPZmZlcmVkVmFsdWVcIjogMCxcclxuICAgICAgXCJkaXNjb3VudEFtb3VudFwiOiAwLFxyXG4gICAgICBcImRlbGl2ZXJ5Q2hhcmdlc1wiOiAwXHJcbiAgICB9LFxyXG4gICAgcGxhdGZvcm06IFwiV0VCXCIsXHJcbiAgICBjYXJ0VHlwZTogXCJDQVJUXCIsXHJcbiAgICBhZGRyZXNzRGV0YWlsczogbnVsbCxcclxuICAgIHVzZXJEZXRhaWxzOiB7XHJcbiAgICAgIFwidXNlcklkXCI6IFwiXCIsXHJcbiAgICAgIFwidXNlck5hbWVcIjogXCJcIixcclxuICAgICAgXCJtb2JpbGVcIjogXCJcIixcclxuICAgICAgXCJlbWFpbFwiOiBcIlwiXHJcbiAgICB9LFxyXG4gICAgdG90YWxBbW91bnQ6IDBcclxuICB9XHJcblxyXG4gIGxvYWRpbmdTdWJzY3JpcHRpb24/OiBTdWJzY3JpcHRpb247XHJcbiAgbmdPbkluaXQoKXtcclxuICAgIHRoaXMubG9hZGluZ1N1YnNjcmlwdGlvbiA9IHRoaXMuX2V2ZW50U2VydmljZS5zaG93TG9hZGluZ1NjcmVlbi5zdWJzY3JpYmUoKHJlc3BvbnNlKT0+IHtcclxuICAgICAgdGhpcy5pc0xvYWRpbmcgPSByZXNwb25zZTtcclxuICAgICAgaWYgKCF0aGlzLmlzTG9hZGluZykge1xyXG4gICAgICAgIHRoaXMuZ2V0SW5kZXhEQkRhdGEoKTtcclxuICAgICAgfVxyXG4gICAgfSlcclxuICAgIC8vIGlmICh0aGlzLnN0b3JhZ2VTZXJ2aWNlLmdldFVzZXIoKSkge1xyXG4gICAgLy8gICB0aGlzLnVwZGF0ZVVzZXJDYXJ0KCk7XHJcbiAgICAvLyB9IGVsc2Uge1xyXG4gICAgLy8gICB0aGlzLmdldEluZGV4REJEYXRhKCk7XHJcbiAgICAvLyAgIGNvbnNvbGUubG9nKHRoaXMucmVzcG9uc2VEYXRhKTtcclxuICAgIC8vIH1cclxuICAgIGNvbnNvbGUubG9nKHRoaXMucmVzcG9uc2VEYXRhKTtcclxuICAgIHRoaXMuc3R5bGVzID0gdGhpcy5kYXRhPy5zdHlsZXM7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMubG9hZGluZ1N1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZVVzZXJDYXJ0KCkge1xyXG4gICAgY29uc3QgZGVsaXZlcnlPcHRpb24gPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiZGVsaXZlcnlPcHRpb25zXCIpID8/IFwie31cIik7XHJcblxyXG4gICAgdGhpcy51c2VyRGV0YWlscyA9IHRoaXMuc3RvcmFnZVNlcnZpY2UuZ2V0VXNlcigpIGFzIFVzZXI7XHJcbiAgICB0aGlzLmNhcnRJbmZvLnVzZXJEZXRhaWxzID0ge1xyXG4gICAgICBcInVzZXJJZFwiOiB0aGlzLnVzZXJEZXRhaWxzPy51c2VySWQsXHJcbiAgICAgIFwidXNlck5hbWVcIjogdGhpcy51c2VyRGV0YWlscz8uY29udGFjdC5uYW1lLFxyXG4gICAgICBcIm1vYmlsZVwiOiB0aGlzLnVzZXJEZXRhaWxzPy5jb250YWN0Lm1vYmlsZSxcclxuICAgICAgXCJlbWFpbFwiOiB0aGlzLnVzZXJEZXRhaWxzPy5jb250YWN0LmVtYWlsLFxyXG4gICAgfVxyXG4gICAgdGhpcy5yZXN0U2VydmljZS5nZXRVc2VySXRlbXModGhpcy51c2VyRGV0YWlscy51c2VySWQsIFwiQ0FSVFwiKS5zdWJzY3JpYmUoKHJlc3BvbnNlOiBhbnkpPT4ge1xyXG4gICAgICBjb25zdCB0ZW1wVXNlckNhcnQgPSByZXNwb25zZT8uZGF0YT8uWzBdPy5vcmRlcmVkSXRlbXMgPz8gW107XHJcbiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdjYXJ0SWQnLCByZXNwb25zZS5kYXRhPy5bMF0/LmNhcnRJZCk7XHJcbiAgICAgIHRoaXMuY2FydEluZm9bXCJjYXJ0SWRcIl0gPSByZXNwb25zZS5kYXRhPy5bMF0/LmNhcnRJZDtcclxuICAgICAgdGhpcy5nZXRDb3Vwb25MaXN0KCk7XHJcbiAgICAgIGlmIChyZXNwb25zZS5kYXRhPy5bMF0/Lm9yZGVyZWRJdGVtcz8ubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIHRoaXMubWVyZ2VPcmRlckl0ZW1zKHRlbXBVc2VyQ2FydCk7XHJcbiAgICAgICAgdGhpcy5zdG9yYWdlU2VydmljZS5hZGRBbGxQcm9kdWN0c1RvQ2FydCh0aGlzLmNhcnRJbmZvLm9yZGVyZWRJdGVtcykub25jb21wbGV0ZSA9ICgpPT4ge1xyXG5cclxuICAgICAgICAgIHRoaXMuc3RvcmFnZVNlcnZpY2UuZ2V0VXNlckNhcnQoKS50aGVuKChjYXJ0UmVzcG9uc2UpPT4ge1xyXG4gICAgICAgICAgICBjYXJ0UmVzcG9uc2Uub25zdWNjZXNzID0gKGNhcnREYXRhOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICBpZiAoIShsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImNvdXBvbklkXCIpID09IFwidW5kZWZpbmVkXCIgfHwgbG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJjb3Vwb25JZFwiKSA9PSBcIm51bGxcIikpXHJcbiAgICAgICAgICAgICAgICB0aGlzLmNhcnRJbmZvLmJpbGxkZXRhaWxzLmNvdXBvbklkID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJjb3Vwb25JZFwiKTtcclxuICAgICAgICAgICAgICBpZiAoIShsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImNvdXBvbkNvZGVcIikgPT0gXCJ1bmRlZmluZWRcIiB8fCBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImNvdXBvbkNvZGVcIikgPT0gXCJudWxsXCIpKVxyXG4gICAgICAgICAgICAgICAgdGhpcy5jYXJ0SW5mby5iaWxsZGV0YWlscy5jb3Vwb25Db2RlID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJjb3Vwb25Db2RlXCIpO1xyXG4gICAgICAgICAgICAgIGNvbnN0IHJlc3RSZXNwb25zZSA9IHRoaXMucmVzdFNlcnZpY2UuYWRkSXRlbVRvREIodGhpcy5jYXJ0SW5mbykudG9Qcm9taXNlKCk7XHJcbiAgICAgICAgICAgICAgcmVzdFJlc3BvbnNlLnRoZW4oKHJlc3BvbnNlOiBhbnkpPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jYXJ0SW5mby5iaWxsZGV0YWlscy50b3RhbEdyb3NzVmFsdWUgPSAwO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jYXJ0SW5mby5iaWxsZGV0YWlscy50b3RhbFRheCA9IDA7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNhcnRJbmZvLmJpbGxkZXRhaWxzLmRlbGl2ZXJ5Q2hhcmdlcyA9IDA7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNhcnRJbmZvLmJpbGxkZXRhaWxzLnRvdGFsTmV0VmFsdWUgPSAwO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jYXJ0SW5mby50b3RhbEFtb3VudCA9IDA7XHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy5VU0VSX0NBUlRfSVRFTVMgPSBjYXJ0RGF0YS50YXJnZXQucmVzdWx0IGFzIHVua25vd24gYXMgT3JkZXJlZEl0ZW1zW107XHJcbiAgICAgICAgICAgICAgICB0aGlzLlVTRVJfQ0FSVF9JVEVNUy5mb3JFYWNoKChpdGVtKT0+IHtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5jYXJ0SW5mby5iaWxsZGV0YWlscy50b3RhbEdyb3NzVmFsdWUgKz0gKGl0ZW0uZGlzY291bnRlZFByaWNlICogKGl0ZW0ucXVhbnRpdHkgPz8gMSkpO1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLmNhcnRJbmZvLmJpbGxkZXRhaWxzLnRvdGFsVGF4ICs9IChpdGVtLnF1YW50aXR5ICogKGl0ZW0uaXRlbVRheCA/PyAwKSk7XHJcbiAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgdGhpcy5jYXJ0SW5mby5iaWxsZGV0YWlscy5kZWxpdmVyeUNoYXJnZXMgPSAoZGVsaXZlcnlPcHRpb24/Lm1pbk9yZGVyQW1vdW50ID4gdGhpcy5jYXJ0SW5mby5iaWxsZGV0YWlscy50b3RhbEdyb3NzVmFsdWUpID8gMCA6IChkZWxpdmVyeU9wdGlvbj8uZGVsaXZlcnlDaGFyZ2VzID8/IDApO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jYXJ0SW5mby5iaWxsZGV0YWlscy50b3RhbE5ldFZhbHVlID0gdGhpcy5jYXJ0SW5mby5iaWxsZGV0YWlscy50b3RhbEdyb3NzVmFsdWU7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNhcnRJbmZvLm9yZGVyZWRJdGVtcyA9IHRoaXMuVVNFUl9DQVJUX0lURU1TO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jYXJ0SW5mby5iaWxsZGV0YWlscy5kaXNjb3VudEFtb3VudCA9IHJlc3BvbnNlPy5kYXRhPy5iaWxsZGV0YWlscz8uZGlzY291bnRBbW91bnQgPz8gMDtcclxuICAgICAgICAgICAgICAgIHRoaXMuY2FydEluZm8uYmlsbGRldGFpbHMudG90YWxUYXhBZnRlckRpc2NvdW50ID0gcmVzcG9uc2U/LmRhdGE/LmJpbGxkZXRhaWxzPy50b3RhbFRheEFmdGVyRGlzY291bnQgPz8gMDtcclxuICAgICAgICAgICAgICAgIHRoaXMuY2FydEluZm8udG90YWxBbW91bnQgPSB0aGlzLmNhcnRJbmZvLmJpbGxkZXRhaWxzLnRvdGFsTmV0VmFsdWUgKyB0aGlzLmdldFRheEFtb3VudCgpICsgdGhpcy5jYXJ0SW5mby5iaWxsZGV0YWlscy5kZWxpdmVyeUNoYXJnZXM7XHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy5yZXNwb25zZURhdGEgPSB0aGlzLmNhcnRJbmZvO1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2codGhpcy5yZXNwb25zZURhdGEpO1xyXG4gICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY2FydFJlc3BvbnNlLm9uZXJyb3IgPSAoY2FydERhdGE6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuYWRkKHsgc2V2ZXJpdHk6ICdlcnJvcicsIHN1bW1hcnk6ICdFcnJvcicsIGRldGFpbDogJ0ZhaWxlZCB0byB1cGRhdGUgY2FydCBkZXRhaWxzJyB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSlcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5zdG9yYWdlU2VydmljZS5nZXRVc2VyQ2FydCgpLnRoZW4oKGNhcnRSZXNwb25zZSk9PiB7XHJcbiAgICAgICAgICBjYXJ0UmVzcG9uc2Uub25zdWNjZXNzID0gKGNhcnREYXRhOiBhbnkpID0+IHtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuVVNFUl9DQVJUX0lURU1TID0gY2FydERhdGEudGFyZ2V0LnJlc3VsdCBhcyB1bmtub3duIGFzIE9yZGVyZWRJdGVtc1tdO1xyXG4gICAgICAgICAgICB0aGlzLmNhcnRJbmZvLmJpbGxkZXRhaWxzLnRvdGFsR3Jvc3NWYWx1ZSA9IDA7XHJcbiAgICAgICAgICAgIHRoaXMuY2FydEluZm8uYmlsbGRldGFpbHMudG90YWxUYXggPSAwO1xyXG4gICAgICAgICAgICB0aGlzLmNhcnRJbmZvLmJpbGxkZXRhaWxzLnRvdGFsVGF4QWZ0ZXJEaXNjb3VudCA9IGNhcnREYXRhLmJpbGxkZXRhaWxzPy50b3RhbFRheEFmdGVyRGlzY291bnQgPz8gMDtcclxuICAgICAgICAgICAgdGhpcy5jYXJ0SW5mby5iaWxsZGV0YWlscy5kZWxpdmVyeUNoYXJnZXMgPSAwO1xyXG4gICAgICAgICAgICB0aGlzLmNhcnRJbmZvLmJpbGxkZXRhaWxzLnRvdGFsTmV0VmFsdWUgPSAwO1xyXG4gICAgICAgICAgICB0aGlzLmNhcnRJbmZvLnRvdGFsQW1vdW50ID0gMDtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuVVNFUl9DQVJUX0lURU1TLmZvckVhY2goKGl0ZW0pPT4ge1xyXG4gICAgICAgICAgICAgIHRoaXMuY2FydEluZm8uYmlsbGRldGFpbHMudG90YWxHcm9zc1ZhbHVlICs9IChpdGVtLmRpc2NvdW50ZWRQcmljZSAqIChpdGVtLnF1YW50aXR5ID8/IDEpKTtcclxuICAgICAgICAgICAgICB0aGlzLmNhcnRJbmZvLmJpbGxkZXRhaWxzLnRvdGFsVGF4ICs9IChpdGVtLnF1YW50aXR5ICogKGl0ZW0uaXRlbVRheCA/PyAwKSk7XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIHRoaXMuY2FydEluZm8uYmlsbGRldGFpbHMuZGVsaXZlcnlDaGFyZ2VzID0gKGRlbGl2ZXJ5T3B0aW9uPy5taW5PcmRlckFtb3VudCA+IHRoaXMuY2FydEluZm8uYmlsbGRldGFpbHMudG90YWxHcm9zc1ZhbHVlKSA/IDAgOiAoZGVsaXZlcnlPcHRpb24/LmRlbGl2ZXJ5Q2hhcmdlcyA/PyAwKTtcclxuICAgICAgICAgICAgdGhpcy5jYXJ0SW5mby5iaWxsZGV0YWlscy50b3RhbE5ldFZhbHVlID0gdGhpcy5jYXJ0SW5mby5iaWxsZGV0YWlscy50b3RhbEdyb3NzVmFsdWUgLSB0aGlzLmNhcnRJbmZvLmJpbGxkZXRhaWxzLmRlbGl2ZXJ5Q2hhcmdlcztcclxuICAgICAgICAgICAgY29uc29sZS5sb2codGhpcy5jYXJ0SW5mby5iaWxsZGV0YWlscy50b3RhbE5ldFZhbHVlLCB0aGlzLmNhcnRJbmZvLmJpbGxkZXRhaWxzLnRvdGFsVGF4LCB0aGlzLmNhcnRJbmZvLmJpbGxkZXRhaWxzLmRlbGl2ZXJ5Q2hhcmdlcyk7XHJcbiAgICAgICAgICAgIHRoaXMuY2FydEluZm8udG90YWxBbW91bnQgPSB0aGlzLmNhcnRJbmZvLmJpbGxkZXRhaWxzLnRvdGFsTmV0VmFsdWUgKyB0aGlzLmdldFRheEFtb3VudCgpOyArIHRoaXMuY2FydEluZm8uYmlsbGRldGFpbHMuZGVsaXZlcnlDaGFyZ2VzO1xyXG4gICAgICAgICAgICB0aGlzLmNhcnRJbmZvLm9yZGVyZWRJdGVtcyA9IHRoaXMuVVNFUl9DQVJUX0lURU1TO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5yZXNwb25zZURhdGEgPSB0aGlzLmNhcnRJbmZvO1xyXG4gICAgICAgICAgICB0aGlzLnJlc3RTZXJ2aWNlLmFkZEl0ZW1Ub0RCKHRoaXMucmVzcG9uc2VEYXRhKS5zdWJzY3JpYmUoKHJlc3BvbnNlOiBhbnkpPT4ge1xyXG4gICAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdjYXJ0SWQnLCByZXNwb25zZS5kYXRhPy5jYXJ0SWQpO1xyXG4gICAgICAgICAgICAgIHRoaXMuY2FydEluZm9bXCJjYXJ0SWRcIl0gPSByZXNwb25zZS5kYXRhPy5jYXJ0SWQ7XHJcbiAgICAgICAgICAgICAgdGhpcy5yZXNwb25zZURhdGFbXCJjYXJ0SWRcIl0gPSB0aGlzLmNhcnRJbmZvW1wiY2FydElkXCJdO1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pXHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICAvLyB1cGRhdGVVc2VyQ2FydDIoKSB7XHJcbiAgLy8gICBjb25zdCBkZWxpdmVyeU9wdGlvbiA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJkZWxpdmVyeU9wdGlvbnNcIikgPz8gXCJ7fVwiKTtcclxuXHJcbiAgLy8gICB0aGlzLnVzZXJEZXRhaWxzID0gdGhpcy5zdG9yYWdlU2VydmljZS5nZXRVc2VyKCkgYXMgVXNlcjtcclxuICAvLyAgIHRoaXMuY2FydEluZm8udXNlckRldGFpbHMgPSB7XHJcbiAgLy8gICAgIFwidXNlcklkXCI6IHRoaXMudXNlckRldGFpbHM/LnVzZXJJZCxcclxuICAvLyAgICAgXCJ1c2VyTmFtZVwiOiB0aGlzLnVzZXJEZXRhaWxzPy5jb250YWN0Lm5hbWUsXHJcbiAgLy8gICAgIFwibW9iaWxlXCI6IHRoaXMudXNlckRldGFpbHM/LmNvbnRhY3QubW9iaWxlLFxyXG4gIC8vICAgICBcImVtYWlsXCI6IHRoaXMudXNlckRldGFpbHM/LmNvbnRhY3QuZW1haWwsXHJcbiAgLy8gICB9XHJcbiAgLy8gICB0aGlzLnJlc3RTZXJ2aWNlLmdldFVzZXJJdGVtcyh0aGlzLnVzZXJEZXRhaWxzLnVzZXJJZCwgXCJDQVJUXCIpLnN1YnNjcmliZSgocmVzcG9uc2U6IGFueSkgPT4ge1xyXG4gIC8vICAgICBjb25zdCB0ZW1wVXNlckNhcnQgPSByZXNwb25zZT8uZGF0YT8uWzBdPy5vcmRlcmVkSXRlbXMgPz8gW107XHJcbiAgLy8gICAgIHRoaXMubWVyZ2VPcmRlckl0ZW1zKHRlbXBVc2VyQ2FydCk7XHJcbiAgLy8gICB9KVxyXG4gIC8vIH1cclxuXHJcbiAgbWVyZ2VPcmRlckl0ZW1zKHN5bmNlZEl0ZW1zOiBhbnlbXSkge1xyXG4gICAgZm9yKGxldCBwcm9kdWN0IG9mIHN5bmNlZEl0ZW1zKSB7XHJcbiAgICAgIGxldCBpdGVtRm91bmQgPSBmYWxzZTtcclxuICAgICAgZm9yKGxldCBjYXJ0SXRlbSBvZiB0aGlzLmNhcnRJbmZvLm9yZGVyZWRJdGVtcykge1xyXG4gICAgICAgIGlmKGNhcnRJdGVtLnZhcmllbnRJZCA9PT0gcHJvZHVjdC52YXJpZW50SWQpIHtcclxuICAgICAgICAgIGl0ZW1Gb3VuZCA9IHRydWU7XHJcbiAgICAgICAgICAvLyBjYXJ0SXRlbS5xdWFudGl0eSA9IHByb2R1Y3QucXVhbnRpdHk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGlmKCFpdGVtRm91bmQpIHtcclxuICAgICAgICB0aGlzLmNhcnRJbmZvLm9yZGVyZWRJdGVtcy5wdXNoKHByb2R1Y3QpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRDb3Vwb25MaXN0KCkge1xyXG4gICAgaWYgKCF0aGlzLmNhcnRJbmZvLmNhcnRJZCAmJiAhKGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiY2FydElkXCIpID09IFwidW5kZWZpbmVkXCIgfHwgbG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJjYXJ0SWRcIikgPT0gXCJudWxsXCIpKVxyXG4gICAgICB0aGlzLmNhcnRJbmZvLmNhcnRJZCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiY2FydElkXCIpO1xyXG4gICAgdGhpcy5yZXN0U2VydmljZS5hcHBsaWNhYmxlRGlzY291bnRMaXN0KHRoaXMuY2FydEluZm8uY2FydElkKS5zdWJzY3JpYmUoKHJlc3BvbnNlOiBhbnkpPT4ge1xyXG4gICAgICB0aGlzLmNvdXBvbkxpc3QgPSByZXNwb25zZS5kYXRhPy5maWx0ZXIoKGNvdXBvbjogYW55KT0+IGNvdXBvbi5hY3RpdmUpPy5tYXAoKGNvdXBvbjogYW55KT0+IHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgZGlzY291bnRUeXBlOiBjb3Vwb24uZGlzY291bnQsXHJcbiAgICAgICAgICBkaXNjb3VudE5hbWU6IGNvdXBvbi5jb3Vwb25UaXRsZSxcclxuICAgICAgICAgIGRpc2NvdW50RGVzY3JpcHRpb246IGNvdXBvbi5jb3Vwb25EZXNjcmlwdGlvbixcclxuICAgICAgICAgIGNvdXBvbkNvZGU6IGNvdXBvbi5jb3Vwb25Db2RlLFxyXG4gICAgICAgICAgY291cG9uSWQ6IGNvdXBvbi5jb3Vwb25JZCxcclxuICAgICAgICAgIGFwcGxpY2FibGU6IGNvdXBvbi5hcHBsaWNhYmxlLFxyXG4gICAgICAgICAgc3RhdHVzOiBjb3Vwb24uYWN0aXZlLFxyXG4gICAgICAgICAgdmFsaWRUbzogY291cG9uLmV4cGlyZXMsXHJcbiAgICAgICAgICB2YWxpZEZyb206IGNvdXBvbi52YWxpZEZyb21cclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG5cclxuICAgIH0pXHJcbiAgfVxyXG4gIHJlbW92ZUNvdXBvbihldmVudDogTW91c2VFdmVudCkge1xyXG4gICAgdGhpcy5jYXJ0SW5mby5iaWxsZGV0YWlscy5jb3Vwb25JZCA9IFwiXCI7XHJcbiAgICB0aGlzLmNhcnRJbmZvLmJpbGxkZXRhaWxzLmNvdXBvbkNvZGUgPSBcIlwiO1xyXG4gICAgY29uc3QgcmVzdFJlc3BvbnNlID0gdGhpcy5yZXN0U2VydmljZS5hZGRJdGVtVG9EQih0aGlzLmNhcnRJbmZvKS50b1Byb21pc2UoKTtcclxuICAgIHJlc3RSZXNwb25zZS50aGVuKChyZXNwb25zZTogYW55KT0+IHtcclxuXHJcbiAgICAgIHRoaXMuY2FsY3VsYXRlQ2FydChyZXNwb25zZSk7XHJcbiAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKFwiY291cG9uSWRcIik7XHJcbiAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKFwiY291cG9uQ29kZVwiKTtcclxuICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5hZGQoeyBzZXZlcml0eTogJ2Vycm9yJywgc3VtbWFyeTogJ0NvdXBvbicsIGRldGFpbDogJ0NvdXBvbiBSZW1vdmVkJyB9KTtcclxuICAgICAgdGhpcy5jYXJ0SW5mby5iaWxsZGV0YWlscy5kaXNjb3VudEFtb3VudCA9IDA7XHJcbiAgICAgIHRoaXMuY291cG9uRGlhbG9nUmVmPy5jbG9zZSgpO1xyXG4gICAgfSlcclxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgfVxyXG5cclxuICBnZXRJbmRleERCRGF0YSgpIHtcclxuICAgIHRoaXMuc3RvcmFnZVNlcnZpY2UuZ2V0VXNlckNhcnQoKS50aGVuKChjYXJ0UmVzcG9uc2UpPT4ge1xyXG4gICAgICBjb25zb2xlLmxvZyhjYXJ0UmVzcG9uc2UpO1xyXG4gICAgICBjb25zdCBkZWxpdmVyeU9wdGlvbiA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJkZWxpdmVyeU9wdGlvbnNcIikgPz8gXCJ7fVwiKTtcclxuICAgICAgdGhpcy5jYXJ0SW5mby5iaWxsZGV0YWlscy50b3RhbEdyb3NzVmFsdWUgPSAwO1xyXG4gICAgICB0aGlzLmNhcnRJbmZvLmJpbGxkZXRhaWxzLnRvdGFsVGF4ID0gMDtcclxuICAgICAgdGhpcy5jYXJ0SW5mby5iaWxsZGV0YWlscy50b3RhbE5ldFZhbHVlID0gMDtcclxuICAgICAgdGhpcy5jYXJ0SW5mby50b3RhbEFtb3VudCA9IDA7XHJcbiAgICAgIHRoaXMuY2FydEluZm8uYmlsbGRldGFpbHMuZGVsaXZlcnlDaGFyZ2VzID0gMDtcclxuXHJcbiAgICAgIGNhcnRSZXNwb25zZS5vbnN1Y2Nlc3MgPSAoY2FydERhdGE6IGFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMuVVNFUl9DQVJUX0lURU1TID0gY2FydERhdGEudGFyZ2V0LnJlc3VsdCBhcyB1bmtub3duIGFzIE9yZGVyZWRJdGVtc1tdO1xyXG4gICAgICAgIHRoaXMuVVNFUl9DQVJUX0lURU1TLmZvckVhY2goKGl0ZW0pPT4ge1xyXG4gICAgICAgICAgdGhpcy5jYXJ0SW5mby5iaWxsZGV0YWlscy50b3RhbEdyb3NzVmFsdWUgKz0gKGl0ZW0uZGlzY291bnRlZFByaWNlICogKGl0ZW0ucXVhbnRpdHkgPz8gMSkpO1xyXG4gICAgICAgICAgdGhpcy5jYXJ0SW5mby5iaWxsZGV0YWlscy50b3RhbFRheCArPSAoaXRlbS5xdWFudGl0eSAqIChpdGVtLml0ZW1UYXggPz8gMCkpO1xyXG4gICAgICAgIH0pXHJcblxyXG4gICAgICAgIHRoaXMuY2FydEluZm8uYmlsbGRldGFpbHMudG90YWxUYXhBZnRlckRpc2NvdW50ID0gY2FydERhdGEuYmlsbGRldGFpbHM/LnRvdGFsVGF4QWZ0ZXJEaXNjb3VudCA/PyAwO1xyXG4gICAgICAgIHRoaXMuY2FydEluZm8uYmlsbGRldGFpbHMuZGVsaXZlcnlDaGFyZ2VzID0gKGRlbGl2ZXJ5T3B0aW9uPy5taW5PcmRlckFtb3VudCA+IHRoaXMuY2FydEluZm8uYmlsbGRldGFpbHMudG90YWxHcm9zc1ZhbHVlKSA/IDAgOiAoZGVsaXZlcnlPcHRpb24/LmRlbGl2ZXJ5Q2hhcmdlcyA/PyAwKTtcclxuICAgICAgICB0aGlzLmNhcnRJbmZvLmJpbGxkZXRhaWxzLnRvdGFsTmV0VmFsdWUgPSB0aGlzLmNhcnRJbmZvLmJpbGxkZXRhaWxzLnRvdGFsR3Jvc3NWYWx1ZTtcclxuICAgICAgICBjb25zb2xlLmxvZyh0aGlzLmNhcnRJbmZvLmJpbGxkZXRhaWxzLnRvdGFsTmV0VmFsdWUsIHRoaXMuY2FydEluZm8uYmlsbGRldGFpbHMudG90YWxUYXgsIHRoaXMuY2FydEluZm8uYmlsbGRldGFpbHMuZGVsaXZlcnlDaGFyZ2VzKTtcclxuICAgICAgICB0aGlzLmNhcnRJbmZvLnRvdGFsQW1vdW50ID0gdGhpcy5jYXJ0SW5mby5iaWxsZGV0YWlscy50b3RhbE5ldFZhbHVlICsgdGhpcy5nZXRUYXhBbW91bnQoKSArIHRoaXMuY2FydEluZm8uYmlsbGRldGFpbHMuZGVsaXZlcnlDaGFyZ2VzO1xyXG4gICAgICAgIHRoaXMuY2FydEluZm8ub3JkZXJlZEl0ZW1zID0gdGhpcy5VU0VSX0NBUlRfSVRFTVM7XHJcblxyXG4gICAgICAgIGlmKHRoaXMuc3RvcmFnZVNlcnZpY2UuZ2V0VXNlcigpKVxyXG4gICAgICAgICAgdGhpcy51cGRhdGVVc2VyQ2FydCgpO1xyXG5cclxuICAgICAgICB0aGlzLnJlc3BvbnNlRGF0YSA9IHRoaXMuY2FydEluZm87XHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG4gIHByb2NlZWRUb0NoZWNrb3V0KCl7XHJcbiAgICBpZih0aGlzLnN0b3JhZ2VTZXJ2aWNlLmdldFVzZXIoKSl7XHJcbiAgICAgIHRoaXMuY3VycmVudFRhYiA9IFwiQUREUkVTU1wiO1xyXG4gICAgICBpZiAodGhpcy5pc01vYmlsZSkge1xyXG4gICAgICAgIGRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wID0gMDtcclxuICAgICAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsVG9wID0gMDtcclxuICAgICAgfVxyXG5cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5hZGQoeyBzZXZlcml0eTogJ2luZm8nLCBzdW1tYXJ5OiAnTG9naW4nLCBkZXRhaWw6ICdQbGVhc2UgbG9naW4gd2l0aCBtb2JpbGUgbnVtYmVyIHRvIG9yZGVyJyB9KTtcclxuXHJcbiAgICAgICB0aGlzLm1hdERpYWxvZy5vcGVuKEF1dGhlbnRpY2F0aW9uUmVxdWlyZWRDb21wb25lbnQsIHsgd2lkdGg6ICcxMDAlJywgcGFuZWxDbGFzczogXCJhdXRoZW50aWNhdGVcIiB9KS5hZnRlckNsb3NlZCgpLnN1YnNjcmliZSgocmVzcG9uc2UpPT4ge1xyXG4gICAgICAgIHRoaXMudXNlckRldGFpbHMgPSB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmdldFVzZXIoKTtcclxuICAgICAgICAgICAgdGhpcy5jYXJ0SW5mby51c2VyRGV0YWlscyA9IHtcclxuICAgICAgICAgICAgICBcInVzZXJJZFwiOiB0aGlzLnVzZXJEZXRhaWxzPy51c2VySWQsXHJcbiAgICAgICAgICAgICAgXCJ1c2VyTmFtZVwiOiB0aGlzLnVzZXJEZXRhaWxzPy5jb250YWN0Lm5hbWUsXHJcbiAgICAgICAgICAgICAgXCJtb2JpbGVcIjogdGhpcy51c2VyRGV0YWlscz8uY29udGFjdC5tb2JpbGUsXHJcbiAgICAgICAgICAgICAgXCJlbWFpbFwiOiB0aGlzLnVzZXJEZXRhaWxzPy5jb250YWN0LmVtYWlsLFxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAoIShsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImNhcnRJZFwiKSA9PSBcInVuZGVmaW5lZFwiIHx8IGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiY2FydElkXCIpID09IFwibnVsbFwiKSlcclxuICAgICAgICAgICAgICB0aGlzLmNhcnRJbmZvW1wiY2FydElkXCJdID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJjYXJ0SWRcIik7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiUmVzcG9uc2UgOiBcIiwgcmVzcG9uc2UpO1xyXG4gICAgICAgICAgICBpZiAocmVzcG9uc2UgJiYgcmVzcG9uc2UgPT09ICdzdWNjZXNzJykge1xyXG4gICAgICAgICAgICAgIHRoaXMudXBkYXRlVXNlckNhcnQoKVxyXG4gICAgICAgICAgICAgIC8vIHRoaXMucHJvY2VlZFRvQ2hlY2tvdXQoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgfSlcclxuICAgICAgLy8gICBpZiAod2luZG93LmlubmVyV2lkdGggPD0gNDc1KSB7XHJcbiAgICAgIC8vICAgICAgIHRoaXMuYm90dG9tU2hlZXQub3BlbihBdXRoZW50aWNhdGVVc2VyQ29tcG9uZW50LCB7ZGF0YTogdGhpcy5kYXRhfSkuYWZ0ZXJEaXNtaXNzZWQoKS5zdWJzY3JpYmUoKHJlc3BvbnNlKT0+IHtcclxuICAgICAgLy8gICAgICAgICB0aGlzLnVzZXJEZXRhaWxzID0gdGhpcy5zdG9yYWdlU2VydmljZS5nZXRVc2VyKCk7XHJcbiAgICAgIC8vICAgICAgICAgdGhpcy5jYXJ0SW5mby51c2VyRGV0YWlscyA9IHtcclxuICAgICAgLy8gICAgICAgICAgIFwidXNlcklkXCI6IHRoaXMudXNlckRldGFpbHM/LnVzZXJJZCxcclxuICAgICAgLy8gICAgICAgICAgIFwidXNlck5hbWVcIjogdGhpcy51c2VyRGV0YWlscz8uY29udGFjdC5uYW1lLFxyXG4gICAgICAvLyAgICAgICAgICAgXCJtb2JpbGVcIjogdGhpcy51c2VyRGV0YWlscz8uY29udGFjdC5tb2JpbGUsXHJcbiAgICAgIC8vICAgICAgICAgICBcImVtYWlsXCI6IHRoaXMudXNlckRldGFpbHM/LmNvbnRhY3QuZW1haWwsXHJcbiAgICAgIC8vICAgICAgICAgfVxyXG5cclxuICAgICAgLy8gICAgICAgICBpZiAoIShsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImNhcnRJZFwiKSA9PSBcInVuZGVmaW5lZFwiIHx8IGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiY2FydElkXCIpID09IFwibnVsbFwiKSlcclxuICAgICAgLy8gICAgICAgICAgIHRoaXMuY2FydEluZm9bXCJjYXJ0SWRcIl0gPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImNhcnRJZFwiKTtcclxuICAgICAgLy8gICAgICAgICBjb25zb2xlLmxvZyhcIlJlc3BvbnNlIDogXCIsIHJlc3BvbnNlKTtcclxuICAgICAgLy8gICAgICAgICBpZiAocmVzcG9uc2UpXHJcbiAgICAgIC8vICAgICAgICAgICB0aGlzLnByb2NlZWRUb0NoZWNrb3V0KCk7XHJcbiAgICAgIC8vICAgICAgIH1cclxuICAgICAgLy8gICAgICk7XHJcbiAgICAgIC8vIH1cclxuICAgICAgLy8gICBlbHNlIHtcclxuICAgICAgLy8gICAgIHRoaXMubWF0RGlhbG9nLm9wZW4oQXV0aGVudGljYXRlVXNlckNvbXBvbmVudCwge1xyXG4gICAgICAvLyAgICAgICBoZWlnaHQ6ICdmaXQtY29udGVudCcsXHJcbiAgICAgIC8vICAgICAgIHdpZHRoOiAnMzV2dycsXHJcbiAgICAgIC8vICAgICAgIGRhdGE6IHRoaXMuZGF0YVxyXG4gICAgICAvLyAgICAgfSkuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUoKHJlc3BvbnNlKT0+IHtcclxuICAgICAgLy8gICAgICAgdGhpcy51c2VyRGV0YWlscyA9IHRoaXMuc3RvcmFnZVNlcnZpY2UuZ2V0VXNlcigpO1xyXG4gICAgICAvLyAgICAgICB0aGlzLmNhcnRJbmZvLnVzZXJEZXRhaWxzID0ge1xyXG4gICAgICAvLyAgICAgICAgIFwidXNlcklkXCI6IHRoaXMudXNlckRldGFpbHM/LnVzZXJJZCxcclxuICAgICAgLy8gICAgICAgICBcInVzZXJOYW1lXCI6IHRoaXMudXNlckRldGFpbHM/LmNvbnRhY3QubmFtZSxcclxuICAgICAgLy8gICAgICAgICBcIm1vYmlsZVwiOiB0aGlzLnVzZXJEZXRhaWxzPy5jb250YWN0Lm1vYmlsZSxcclxuICAgICAgLy8gICAgICAgICBcImVtYWlsXCI6IHRoaXMudXNlckRldGFpbHM/LmNvbnRhY3QuZW1haWwsXHJcbiAgICAgIC8vICAgICAgIH1cclxuXHJcbiAgICAgIC8vICAgICAgIGlmICghKGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiY2FydElkXCIpID09IFwidW5kZWZpbmVkXCIgfHwgbG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJjYXJ0SWRcIikgPT0gXCJudWxsXCIpKVxyXG4gICAgICAvLyAgICAgICAgIHRoaXMuY2FydEluZm9bXCJjYXJ0SWRcIl0gPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImNhcnRJZFwiKTtcclxuICAgICAgLy8gICAgICAgY29uc29sZS5sb2coXCJSZXNwb25zZSA6IFwiLCByZXNwb25zZSk7XHJcbiAgICAgIC8vICAgICAgIGlmIChyZXNwb25zZSlcclxuICAgICAgLy8gICAgICAgICB0aGlzLnByb2NlZWRUb0NoZWNrb3V0KCk7XHJcbiAgICAgIC8vICAgICB9KVxyXG4gICAgICAvLyAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgZ29Ub1Byb2R1Y3REZXRhaWxzKHByb2R1Y3Q6IE9yZGVyZWRJdGVtcykge1xyXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvZGV0YWlscyddLCB7cXVlcnlQYXJhbXM6IHtpZDogcHJvZHVjdC5pdGVtSWQsIHZhcmllbnRJZDogcHJvZHVjdC52YXJpZW50SWR9fSk7XHJcbiAgfVxyXG4gIHByb2NlZWRUb0xpc3RQYWdlKCl7XHJcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy8nXSk7XHJcbiAgfVxyXG4gIHJlbW92ZUl0ZW0oaXRlbTogT3JkZXJlZEl0ZW1zKSB7XHJcblxyXG4gICAgU3dhbC5maXJlKHtcclxuICAgICAgaWNvbjogXCJ3YXJuaW5nXCIsXHJcbiAgICAgIGh0bWw6IFwiPHNwYW4+WW91IGNhbiBtb3ZlIDwvc3Bhbj4gPGI+XCIgKyBpdGVtLml0ZW1OYW1lICsgXCI8L2I+IDxzcGFuPnRvIHdpc2hsaXN0IHNvIHlvdSBjYW4gYnV5IGxhdGVyLjwvc3Bhbj5cIixcclxuICAgICAgY29uZmlybUJ1dHRvblRleHQ6IFwiTW92ZSB0byB3aXNobGlzdFwiLFxyXG4gICAgICBzaG93RGVueUJ1dHRvbjogdHJ1ZSxcclxuICAgICAgZGVueUJ1dHRvblRleHQ6IFwiRGVsZXRlIGl0ZW1cIixcclxuICAgICAgZGVueUJ1dHRvbkNvbG9yOiBcIiM5MjhjOGNcIlxyXG4gICAgfSkudGhlbigocmVzcG9uc2UpPT4ge1xyXG4gICAgICBpZiAocmVzcG9uc2UuaXNDb25maXJtZWQpIHtcclxuICAgICAgICB0aGlzLnJlbW92ZUl0ZW1Gcm9tQ2FydChpdGVtKTtcclxuICAgICAgICB0aGlzLm1vdmVJdGVtVG9XaXNobGlzdChpdGVtKTtcclxuICAgICAgfSBlbHNlIGlmIChyZXNwb25zZS5pc0RlbmllZCkge1xyXG4gICAgICAgIHRoaXMucmVtb3ZlSXRlbUZyb21DYXJ0KGl0ZW0pO1xyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuICBwcml2YXRlIG1vdmVJdGVtVG9XaXNobGlzdChpdGVtOiBPcmRlcmVkSXRlbXMpIHtcclxuICAgIHRoaXMuY2FydFNlcnZpY2UuYWRkSXRlbVRvRmF2RnJvbUNhcnQoaXRlbSk7XHJcbiAgfVxyXG4gIHByaXZhdGUgcmVtb3ZlSXRlbUZyb21DYXJ0KGl0ZW06IE9yZGVyZWRJdGVtcykge1xyXG4gICAgaXRlbS5xdWFudGl0eSA9IDA7XHJcbiAgICBpZiAodGhpcy5VU0VSX0NBUlRfSVRFTVMpXHJcbiAgICAgIHRoaXMuVVNFUl9DQVJUX0lURU1TID0gdGhpcy5VU0VSX0NBUlRfSVRFTVMuZmlsdGVyKChwcm9kdWN0OiBhbnkpPT4gcHJvZHVjdC52YXJpZW50SWQgIT0gaXRlbS52YXJpZW50SWQpO1xyXG4gICAgdGhpcy5jYXJ0SW5mby5vcmRlcmVkSXRlbXMgPSB0aGlzLlVTRVJfQ0FSVF9JVEVNUztcclxuICAgIHRoaXMucmVzcG9uc2VEYXRhID0gdGhpcy5jYXJ0SW5mbztcclxuICAgIHRoaXMuY2FydFNlcnZpY2UuYWRkSXRlbUZyb21DYXJ0UGFnZShpdGVtLCB0aGlzLnJlc3BvbnNlRGF0YSkuc3Vic2NyaWJlKChyZXNwb25zZTogYW55KT0+IHtcclxuICAgICAgY29uc3QgZGVsaXZlcnlPcHRpb24gPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiZGVsaXZlcnlPcHRpb25zXCIpID8/IFwie31cIik7XHJcbiAgICAgIHRoaXMuY2FydEluZm8uYmlsbGRldGFpbHMudG90YWxHcm9zc1ZhbHVlID0gMDtcclxuICAgICAgdGhpcy5jYXJ0SW5mby5iaWxsZGV0YWlscy50b3RhbFRheCA9IDA7XHJcbiAgICAgIHRoaXMuY2FydEluZm8uYmlsbGRldGFpbHMudG90YWxUYXhBZnRlckRpc2NvdW50ID0gcmVzcG9uc2U/LmRhdGE/LmJpbGxkZXRhaWxzPy50b3RhbFRheEFmdGVyRGlzY291bnQgPz8gMDtcclxuICAgICAgdGhpcy5jYXJ0SW5mby5iaWxsZGV0YWlscy5kaXNjb3VudEFtb3VudCA9IHJlc3BvbnNlPy5kYXRhPy5iaWxsZGV0YWlscz8uZGlzY291bnRBbW91bnQgPz8gMDtcclxuICAgICAgdGhpcy5jYXJ0SW5mby5iaWxsZGV0YWlscy50b3RhbE5ldFZhbHVlID0gMDtcclxuICAgICAgdGhpcy5jYXJ0SW5mby50b3RhbEFtb3VudCA9IDA7XHJcbiAgICAgIHRoaXMuY2FydEluZm8uYmlsbGRldGFpbHMuZGVsaXZlcnlDaGFyZ2VzID0gMDtcclxuICAgICAgdGhpcy5jYXJ0SW5mby5jb3Vwb25Db2RlID0gcmVzcG9uc2UuZGF0YT8uYmlsbGRldGFpbHM/LmNvdXBvbkNvZGU7XHJcbiAgICAgIHRoaXMuY2FydEluZm8uY291cG9uSWQgPSByZXNwb25zZS5kYXRhPy5iaWxsZGV0YWlscz8uY291cG9uSWQ7XHJcblxyXG4gICAgICByZXNwb25zZT8uZGF0YT8ub3JkZXJlZEl0ZW1zLmZvckVhY2goKGl0ZW06IGFueSk9PiB7XHJcbiAgICAgICAgdGhpcy5jYXJ0SW5mby5iaWxsZGV0YWlscy50b3RhbEdyb3NzVmFsdWUgKz0gKGl0ZW0uZGlzY291bnRlZFByaWNlICogKGl0ZW0ucXVhbnRpdHkgPz8gMSkpO1xyXG4gICAgICAgIHRoaXMuY2FydEluZm8uYmlsbGRldGFpbHMudG90YWxUYXggKz0gKGl0ZW0ucXVhbnRpdHkgKiAoaXRlbS5pdGVtVGF4ID8/IDApKTtcclxuICAgICAgfSlcclxuICAgICAgdGhpcy5jYXJ0SW5mby5iaWxsZGV0YWlscy5kZWxpdmVyeUNoYXJnZXMgPSAoZGVsaXZlcnlPcHRpb24/Lm1pbk9yZGVyQW1vdW50ID4gdGhpcy5jYXJ0SW5mby5iaWxsZGV0YWlscy50b3RhbEdyb3NzVmFsdWUpID8gMCA6IChkZWxpdmVyeU9wdGlvbj8uZGVsaXZlcnlDaGFyZ2VzID8/IDApO1xyXG4gICAgICB0aGlzLmNhcnRJbmZvLmJpbGxkZXRhaWxzLnRvdGFsTmV0VmFsdWUgPSB0aGlzLmNhcnRJbmZvLmJpbGxkZXRhaWxzLnRvdGFsR3Jvc3NWYWx1ZTtcclxuICAgICAgY29uc29sZS5sb2codGhpcy5jYXJ0SW5mby5iaWxsZGV0YWlscy50b3RhbE5ldFZhbHVlLCB0aGlzLmNhcnRJbmZvLmJpbGxkZXRhaWxzLnRvdGFsVGF4LCB0aGlzLmNhcnRJbmZvLmJpbGxkZXRhaWxzLmRlbGl2ZXJ5Q2hhcmdlcyk7XHJcbiAgICAgIHRoaXMuY2FydEluZm8udG90YWxBbW91bnQgPSB0aGlzLmNhcnRJbmZvLmJpbGxkZXRhaWxzLnRvdGFsTmV0VmFsdWUgKyB0aGlzLmdldFRheEFtb3VudCgpICsgdGhpcy5jYXJ0SW5mby5iaWxsZGV0YWlscy5kZWxpdmVyeUNoYXJnZXM7XHJcbiAgICAgIHRoaXMuY2FydEluZm8ub3JkZXJlZEl0ZW1zID0gdGhpcy5VU0VSX0NBUlRfSVRFTVM7XHJcbiAgICB9KVxyXG4gIH1cclxuICBhZGRUb0NhcnQoaXRlbTogT3JkZXJlZEl0ZW1zLCB0eXBlOiAnQUREJyB8ICdTVUJTVFJBQ1QnKSB7XHJcbiAgICBpZiAodHlwZSA9PSAnQUREJykge1xyXG4gICAgICBpdGVtLnF1YW50aXR5ICs9IDE7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgaXRlbS5xdWFudGl0eSAtPSAxO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChpdGVtLnF1YW50aXR5KSB7XHJcbiAgICAgIHRoaXMuY2FydFNlcnZpY2UuYWRkSXRlbUZyb21DYXJ0UGFnZShpdGVtLCB0aGlzLnJlc3BvbnNlRGF0YSkuc3Vic2NyaWJlKChyZXNwb25zZTogYW55KT0+IHtcclxuICAgICAgICBjb25zdCBkZWxpdmVyeU9wdGlvbiA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJkZWxpdmVyeU9wdGlvbnNcIikgPz8gXCJ7fVwiKTtcclxuICAgICAgICB0aGlzLmNhcnRJbmZvLmJpbGxkZXRhaWxzLnRvdGFsR3Jvc3NWYWx1ZSA9IDA7XHJcbiAgICAgICAgdGhpcy5jYXJ0SW5mby5iaWxsZGV0YWlscy50b3RhbFRheCA9IDA7XHJcbiAgICAgICAgdGhpcy5jYXJ0SW5mby5iaWxsZGV0YWlscy50b3RhbFRheEFmdGVyRGlzY291bnQgPSByZXNwb25zZT8uZGF0YT8uYmlsbGRldGFpbHM/LnRvdGFsVGF4QWZ0ZXJEaXNjb3VudCA/PyAwO1xyXG4gICAgICAgIHRoaXMuY2FydEluZm8uYmlsbGRldGFpbHMudG90YWxOZXRWYWx1ZSA9IDA7XHJcbiAgICAgICAgdGhpcy5jYXJ0SW5mby50b3RhbEFtb3VudCA9IDA7XHJcbiAgICAgICAgdGhpcy5jYXJ0SW5mby5iaWxsZGV0YWlscy5kZWxpdmVyeUNoYXJnZXMgPSAwO1xyXG4gICAgICAgIHRoaXMuY2FydEluZm8uYmlsbGRldGFpbHMuZGlzY291bnRBbW91bnQgPSByZXNwb25zZT8uZGF0YT8uYmlsbGRldGFpbHM/LmRpc2NvdW50QW1vdW50ID8/IDA7XHJcblxyXG4gICAgICAgIHJlc3BvbnNlPy5kYXRhPy5vcmRlcmVkSXRlbXMuZm9yRWFjaCgoaXRlbTogYW55KT0+IHtcclxuICAgICAgICAgIHRoaXMuY2FydEluZm8uYmlsbGRldGFpbHMudG90YWxHcm9zc1ZhbHVlICs9IChpdGVtLmRpc2NvdW50ZWRQcmljZSAqIChpdGVtLnF1YW50aXR5ID8/IDEpKTtcclxuICAgICAgICAgIHRoaXMuY2FydEluZm8uYmlsbGRldGFpbHMudG90YWxUYXggKz0gKGl0ZW0ucXVhbnRpdHkgKiAoaXRlbS5pdGVtVGF4ID8/IDApKTtcclxuICAgICAgICB9KVxyXG4gICAgICAgIHRoaXMuY2FydEluZm8uYmlsbGRldGFpbHMuZGVsaXZlcnlDaGFyZ2VzID0gKGRlbGl2ZXJ5T3B0aW9uPy5taW5PcmRlckFtb3VudCA+IHRoaXMuY2FydEluZm8uYmlsbGRldGFpbHMudG90YWxHcm9zc1ZhbHVlKSA/IDAgOiAoZGVsaXZlcnlPcHRpb24/LmRlbGl2ZXJ5Q2hhcmdlcyA/PyAwKTtcclxuICAgICAgICB0aGlzLmNhcnRJbmZvLmJpbGxkZXRhaWxzLnRvdGFsTmV0VmFsdWUgPSB0aGlzLmNhcnRJbmZvLmJpbGxkZXRhaWxzLnRvdGFsR3Jvc3NWYWx1ZTtcclxuICAgICAgICBjb25zb2xlLmxvZyh0aGlzLmNhcnRJbmZvLmJpbGxkZXRhaWxzLnRvdGFsTmV0VmFsdWUsIHRoaXMuY2FydEluZm8uYmlsbGRldGFpbHMudG90YWxUYXgsIHRoaXMuY2FydEluZm8uYmlsbGRldGFpbHMuZGVsaXZlcnlDaGFyZ2VzKTtcclxuICAgICAgICB0aGlzLmNhcnRJbmZvLnRvdGFsQW1vdW50ID0gdGhpcy5jYXJ0SW5mby5iaWxsZGV0YWlscy50b3RhbE5ldFZhbHVlICsgdGhpcy5nZXRUYXhBbW91bnQoKSArIHRoaXMuY2FydEluZm8uYmlsbGRldGFpbHMuZGVsaXZlcnlDaGFyZ2VzO1xyXG4gICAgICAgIHRoaXMuY2FydEluZm8ub3JkZXJlZEl0ZW1zID0gdGhpcy5VU0VSX0NBUlRfSVRFTVM7XHJcbiAgICAgIH0pXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnJlbW92ZUl0ZW0oaXRlbSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGFzeW5jIHByb2NlZWRUb1BheW1lbnQoKSB7XHJcblxyXG4gICAgaWYgKCF0aGlzLnN0b3JhZ2VTZXJ2aWNlLmdldFVzZXIoKSkge1xyXG4gICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7IHNldmVyaXR5OiAnaW5mbycsIHN1bW1hcnk6ICdMb2dpbicsIGRldGFpbDogJ1BsZWFzZSBsb2dpbiB3aXRoIG1vYmlsZSBudW1iZXIgdG8gb3JkZXInIH0pO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgaXNQYXltZW50R2F0ZXdheUVuYWJsZWQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImlzUGF5bWVudEdhdGV3YXlFbmFibGVkXCIpID8gbG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJpc1BheW1lbnRHYXRld2F5RW5hYmxlZFwiKSA9PSBcInRydWVcIiA6IHRydWU7XHJcbiAgICBjb25zdCBtZXJjaGFudElkID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3BNSWQnKSA9PSBcIm51bGxcIiB8fCBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgncE1JZCcpID09IFwidW5kZWZpbmVkXCIgPyBudWxsIDogbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3BNSWQnKTtcclxuXHJcbiAgICBpZihpc1BheW1lbnRHYXRld2F5RW5hYmxlZCAmJiAhbWVyY2hhbnRJZCl7XHJcbiAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuYWRkKHsgc2V2ZXJpdHk6ICdlcnJvcicsIHN1bW1hcnk6ICdNZXJjaGFudCBvbmJvYXJkZWQnLCBkZXRhaWw6ICdNZXJjaGFudCBpcyBub3Qgb25ib2FyZGVkJyB9KTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHVzZXJEZXRhaWwgPSB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmdldFVzZXIoKSBhcyBVc2VyO1xyXG4gICAgY29uc3QgYWRkcmVzcyA9IHVzZXJEZXRhaWw/LmFkZHJlc3NEZXRhaWxzTGlzdFt0aGlzLnNlbGVjdGVkQWRkcmVzc0lkeF0gYXMgQWRkcmVzcztcclxuICAgIGlmIChhZGRyZXNzPy5yZWNlaXZlck5hbWU/Lmxlbmd0aCA9PSAwKSB7XHJcbiAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuYWRkKHsgc2V2ZXJpdHk6ICdlcnJvcicsIHN1bW1hcnk6ICdQYXltZW50IEZhaWx1cmUnLCBkZXRhaWw6ICdQbGVhc2UgcHJvdmlkZSBhZGRyZXNzIGRldGFpbHMnIH0pO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBpZiAoIShsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImNhcnRJZFwiKSA9PSBcInVuZGVmaW5lZFwiIHx8IGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiY2FydElkXCIpID09IFwibnVsbFwiKSlcclxuICAgICAgdGhpcy5jYXJ0SW5mb1tcImNhcnRJZFwiXSA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiY2FydElkXCIpO1xyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuYWRkKHsgc2V2ZXJpdHk6ICdpbmZvJywgc3VtbWFyeTogJ1BsZWFzZSB3YWl0JywgZGV0YWlsOiAnV2UgYXJlIHByb2Nlc3NpbmcgeW91ciBwYXltZW50JywgbGlmZTogMjAwMCB9KTtcclxuICAgICAgYXdhaXQgdGhpcy5yZXN0U2VydmljZS5hZGRJdGVtVG9EQih0aGlzLmNhcnRJbmZvKS50b1Byb21pc2UoKS50aGVuKChyZXNwb25zZTogYW55KT0+IHtcclxuICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShcImNhcnRJZFwiLCByZXNwb25zZS5kYXRhPy5jYXJ0SWQpO1xyXG4gICAgICAgIHRoaXMuY2FydEluZm9bXCJjYXJ0SWRcIl0gPSByZXNwb25zZS5kYXRhPy5jYXJ0SWQ7XHJcbiAgICAgIH0pXHJcbiAgICB9XHJcbiAgICB0aGlzLmNhcnRJbmZvW1wiYWRkcmVzc0RldGFpbHNcIl0gPSBhZGRyZXNzO1xyXG4gICAgY29uc3QgdXBkYXRlQWRkcmVzcyA9IGF3YWl0IHRoaXMucmVzdFNlcnZpY2UuYWRkSXRlbVRvREIodGhpcy5jYXJ0SW5mbykudG9Qcm9taXNlKCk7XHJcbiAgICBjb25zdCBwYXlsb2FkID0ge1xyXG4gICAgICBcInVzZXJJZFwiOiB1c2VyRGV0YWlsLnVzZXJJZCxcclxuICAgICAgXCJjYXJ0SWRcIjogbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2NhcnRJZCcpLFxyXG4gICAgICBcIm9yZGVyQW1vdW50XCI6IE51bWJlcihOdW1iZXIoKCh0aGlzLnJlc3BvbnNlRGF0YT8udG90YWxBbW91bnQgPz8gMCkgLSAodGhpcy5yZXNwb25zZURhdGE/LmJpbGxkZXRhaWxzPy5kaXNjb3VudEFtb3VudCA/PyAwKSkpLnRvRml4ZWQoMikpLFxyXG4gICAgICBcImlzUGF5bWVudEdhdGV3YXlFbmFibGVkXCI6IGlzUGF5bWVudEdhdGV3YXlFbmFibGVkLFxyXG4gICAgICBcImNvbnRhY3REZXRhaWxzXCI6IHtcclxuICAgICAgICBcIm5hbWVcIjogYWRkcmVzcy5yZWNlaXZlck5hbWUsXHJcbiAgICAgICAgXCJtb2JpbGVcIjogYWRkcmVzcy5yZWNlaXZlclBob25lLFxyXG4gICAgICAgIFwiY291bnRyeUNvZGVcIjogXCI5MVwiLFxyXG4gICAgICAgIFwiZW1haWxcIjogYWRkcmVzcy5yZWNlaXZlckVtYWlsXHJcbiAgICAgIH0sXHJcbiAgICAgIFwicGF5bWVudE1lcmNoYW50SWRcIjptZXJjaGFudElkXHJcbiAgICB9XHJcbiAgICB0aGlzLnJlc3RTZXJ2aWNlLmNyZWF0ZVBheW1lbnRUb2tlbihwYXlsb2FkKS5zdWJzY3JpYmUoKHBheW1lbnREZXRhaWxzOiBhbnkpPT4ge1xyXG4gICAgICBpZiAoaXNQYXltZW50R2F0ZXdheUVuYWJsZWQpXHJcbiAgICAgICAgdGhpcy5fZXZlbnRTZXJ2aWNlLmNhc2hGcmVlRXZlbnQuZW1pdChwYXltZW50RGV0YWlscyk7XHJcbiAgICAgIGVsc2Uge1xyXG5cclxuICAgICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShcIm9yZGVySWRcIik7XHJcbiAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oXCJjYXJ0SWRcIik7XHJcbiAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oXCJwYXltZW50Rm9yXCIpO1xyXG4gICAgICAgIHRoaXMuc3RvcmFnZVNlcnZpY2UuY2xlYXJVc2VyQ2FydCgpO1xyXG4gICAgICAgIFN3YWwuZmlyZSh7XHJcbiAgICAgICAgICBpY29uOiBcInN1Y2Nlc3NcIixcclxuICAgICAgICAgIHRpdGxlOiBcIkh1cnJheVwiLFxyXG4gICAgICAgICAgdGV4dDogXCJPcmRlciBwbGFjZWQgc3VjY2Vzc2Z1bGx5XCIsXHJcbiAgICAgICAgICBjb25maXJtQnV0dG9uVGV4dDogXCJTZWUgRGV0YWlsc1wiXHJcbiAgICAgICAgfSkudGhlbigocmVzcG9uc2UpPT4ge1xyXG4gICAgICAgICAgaWYgKHJlc3BvbnNlLmlzQ29uZmlybWVkKSB7XHJcbiAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL3Byb2ZpbGUnXSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSlcclxuICAgICAgfVxyXG4gICAgfSwgKGVycm9yKT0+IHtcclxuICAgICAgaWYgKGVycm9yLmVycm9yQ29kZSA9PSAxMDAxIHx8IGVycm9yLmVycm9yQ29kZSA9PSAxMDAyKSB7XHJcbiAgICAgICAgU3dhbC5maXJlKHtcclxuICAgICAgICAgIGljb246IFwiaW5mb1wiLFxyXG4gICAgICAgICAgaHRtbDogXCI8cD5cIiArIGVycm9yLm1lc3NhZ2UucmVwbGFjZSgvICpcXChbXildKlxcKSAqL2csIFwiXCIpICsgXCI8L3A+XCIsXHJcbiAgICAgICAgICBzaG93Q2FuY2VsQnV0dG9uOiBlcnJvci5lcnJvckNvZGUgPT0gMTAwMixcclxuICAgICAgICAgIGNvbmZpcm1CdXR0b25UZXh0OiBcIlJlbW92ZSBpdGVtICYgUGxhY2UgT3JkZXJcIixcclxuICAgICAgICAgIGNhbmNlbEJ1dHRvblRleHQ6IFwiUmVkdWNlIHF1YW50aXR5XCIsXHJcbiAgICAgICAgICBjYW5jZWxCdXR0b25Db2xvcjogXCIjOTI4YzhjXCIsXHJcbiAgICAgICAgfSkudGhlbihhc3luYyAocmVzcG9uc2UpPT4ge1xyXG4gICAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5hZGQoeyBzZXZlcml0eTogJ2luZm8nLCBzdW1tYXJ5OiAnUHJvY2Vzc2luZycsIGRldGFpbDogJ1BsZWFzZSB3YWl0LCB1cGRhaW5nIHlvdXIgY2FydCcsIGxpZmU6IDIwMDB9KTtcclxuICAgICAgICAgIGNvbnN0IHJlZ0V4cCA9IC97KFtefV0rKX0vZztcclxuICAgICAgICAgIGNvbnN0IGlkID0gcmVnRXhwLmV4ZWMoZXJyb3IubWVzc2FnZSk/LlsxXTtcclxuICAgICAgICAgIGxldCBpdGVtRGV0YWlsOiBQcm9kdWN0IHwgbnVsbCA9IG51bGw7XHJcbiAgICAgICAgICBjb25zdCBwcm9kdWN0RGV0YWlsc0FzeW5jID0gYXdhaXQgdGhpcy5yZXN0U2VydmljZS5nZXRQcm9kdWN0RGV0YWlscyhpZCkudG9Qcm9taXNlKCkudGhlbigocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgICAgaXRlbURldGFpbCA9IHJlc3BvbnNlWzBdIGFzIFByb2R1Y3Q7XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICAgaWYgKHJlc3BvbnNlLmlzRGlzbWlzc2VkKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY2FydEluZm8ub3JkZXJlZEl0ZW1zLmZvckVhY2goKGl0ZW06IE9yZGVyZWRJdGVtcyk9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKGl0ZW0uaXRlbUlkID09IGl0ZW1EZXRhaWw/Lml0ZW1JZClcclxuICAgICAgICAgICAgICAgIGl0ZW0ucXVhbnRpdHkgPSBpdGVtRGV0YWlsPy5pdGVtSW52ZW50b3J5Lm9wZW5pbmdTdG9jaztcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgY29uc3QgYWRkSXRlbURCQXN5bmMgPSBhd2FpdCB0aGlzLnJlc3RTZXJ2aWNlLmFkZEl0ZW1Ub0RCKHRoaXMuY2FydEluZm8pLnRvUHJvbWlzZSgpO1xyXG4gICAgICAgICAgICBjb25zdCBhZGRJdGVtSW5kZXhEQkFzeW5jID0gYXdhaXQgdGhpcy5zdG9yYWdlU2VydmljZS5hZGRBbGxQcm9kdWN0c1RvQ2FydCh0aGlzLmNhcnRJbmZvLm9yZGVyZWRJdGVtcyk7XHJcbiAgICAgICAgICB9IGVsc2UgaWYgKHJlc3BvbnNlLmlzQ29uZmlybWVkKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY2FydEluZm8ub3JkZXJlZEl0ZW1zID0gdGhpcy5jYXJ0SW5mby5vcmRlcmVkSXRlbXMuZmlsdGVyKChpdGVtOiBPcmRlcmVkSXRlbXMpPT4gaXRlbS5pdGVtSWQgIT0gaXRlbURldGFpbD8uaXRlbUlkKTtcclxuICAgICAgICAgICAgY29uc3QgYWRkSXRlbURCQXN5bmMgPSBhd2FpdCB0aGlzLnJlc3RTZXJ2aWNlLmFkZEl0ZW1Ub0RCKHRoaXMuY2FydEluZm8pLnRvUHJvbWlzZSgpO1xyXG4gICAgICAgICAgICBjb25zdCBhZGRJdGVtSW5kZXhEQkFzeW5jID0gYXdhaXQgdGhpcy5zdG9yYWdlU2VydmljZS5hZGRBbGxQcm9kdWN0c1RvQ2FydCh0aGlzLmNhcnRJbmZvLm9yZGVyZWRJdGVtcyk7XHJcbiAgICAgICAgICAgIHRoaXMucHJvY2VlZFRvUGF5bWVudCgpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pXHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5hZGQoeyBzZXZlcml0eTogJ2Vycm9yJywgc3VtbWFyeTogJ1BheW1lbnQgRmFpbHVyZScsIGRldGFpbDogJ1BsZWFzZSB0cnkgYWdhaW4nIH0pO1xyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcblxyXG4gIGFkZHJlc3NTZWxlY3RlZChpbmRleDogbnVtYmVyKSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkQWRkcmVzc0lkeCA9IGluZGV4O1xyXG4gIH1cclxuXHJcbiAgaXNJdGVtT3V0T2ZTdG9jayhwcm9kdWN0OiBPcmRlcmVkSXRlbXMpIHtcclxuICAgIHJldHVybiBmYWxzZTsgLy8gbmVlZCBjb25kaXRpb25cclxuICB9XHJcbiAgZ2V0S2V5cyhvYmplY3Q6IE9iamVjdCk6IHN0cmluZ1tdIHtcclxuICAgIGlmIChvYmplY3QpXHJcbiAgICAgIHJldHVybiBPYmplY3Qua2V5cyhvYmplY3QpO1xyXG4gICAgcmV0dXJuIFtdO1xyXG4gIH1cclxuXHJcbiAgZWRpdFNlY3Rpb24oKXtcclxuXHJcbiAgICBpZih3aW5kb3cuaW5uZXJXaWR0aCA8PSA0NzUpXHJcbiAgICAgIHJldHVybjtcclxuXHJcbiAgICB0aGlzLl9ldmVudFNlcnZpY2UudG9nZ2xlRWRpdG9yRXZlbnQuZW1pdChmYWxzZSk7XHJcbiAgICBzZXRUaW1lb3V0KCgpPT4ge1xyXG4gICAgICB0aGlzLl9ldmVudFNlcnZpY2UuZWRpdFNlY3Rpb24uZW1pdCh7ZGF0YTp0aGlzLmRhdGF9KTtcclxuICAgIH0sIDEwMCk7XHJcbiAgfVxyXG4gIGNsb3NlV2luZG93KCkge1xyXG4gICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoKTtcclxuICB9XHJcbiAgY291cG9uRGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8dW5rbm93bj4gfCBudWxsID0gbnVsbDtcclxuICBvcGVuRGlhbG9nKGNvbnRhaW5lcjogYW55KSB7XHJcblxyXG4gICAgaWYgKHRoaXMuY2FydEluZm8/LmJpbGxkZXRhaWxzPy5jb3Vwb25JZClcclxuICAgICAgcmV0dXJuO1xyXG5cclxuICAgIGlmICghdGhpcy5jYXJ0SW5mby5jYXJ0SWQgJiYgIShsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImNhcnRJZFwiKSA9PSBcInVuZGVmaW5lZFwiIHx8IGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiY2FydElkXCIpID09IFwibnVsbFwiKSlcclxuICAgICAgdGhpcy5jYXJ0SW5mby5jYXJ0SWQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImNhcnRJZFwiKTtcclxuXHJcbiAgICBpZighdGhpcy5jYXJ0SW5mbz8uY2FydElkKSB7XHJcbiAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuYWRkKHsgc2V2ZXJpdHk6ICdlcnJvcicsIHN1bW1hcnk6ICdZb3UgYXJlIG5vdCBsb2dnZWQgaW4nLCBkZXRhaWw6ICdQbGVhc2UgbG9naW4gZmlyc3QgdG8gYXBwbHkgY291cG9uJyB9KTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMucmVzdFNlcnZpY2UuYXBwbGljYWJsZURpc2NvdW50TGlzdCh0aGlzLmNhcnRJbmZvLmNhcnRJZCkuc3Vic2NyaWJlKChyZXNwb25zZTogYW55KT0+IHtcclxuICAgICAgdGhpcy5jb3Vwb25MaXN0ID0gcmVzcG9uc2UuZGF0YT8uZmlsdGVyKChjb3Vwb246IGFueSk9PiBjb3Vwb24uYWN0aXZlKT8ubWFwKChjb3Vwb246IGFueSk9PiB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgIGRpc2NvdW50VHlwZTogY291cG9uLmRpc2NvdW50LFxyXG4gICAgICAgICAgZGlzY291bnROYW1lOiBjb3Vwb24uY291cG9uVGl0bGUsXHJcbiAgICAgICAgICBkaXNjb3VudERlc2NyaXB0aW9uOiBjb3Vwb24uY291cG9uRGVzY3JpcHRpb24sXHJcbiAgICAgICAgICBjb3Vwb25Db2RlOiBjb3Vwb24uY291cG9uQ29kZSxcclxuICAgICAgICAgIGNvdXBvbklkOiBjb3Vwb24uY291cG9uSWQsXHJcbiAgICAgICAgICBhcHBsaWNhYmxlOiBjb3Vwb24uYXBwbGljYWJsZSxcclxuICAgICAgICAgIHN0YXR1czogY291cG9uLmFjdGl2ZSxcclxuICAgICAgICAgIHZhbGlkVG86IGNvdXBvbi5leHBpcmVzLFxyXG4gICAgICAgICAgdmFsaWRGcm9tOiBjb3Vwb24udmFsaWRGcm9tXHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgaWYgKCEhdGhpcy51c2VyRGV0YWlscylcclxuICAgICAgICB0aGlzLmNvdXBvbkRpYWxvZ1JlZiA9IHRoaXMubWF0RGlhbG9nLm9wZW4oY29udGFpbmVyLCB7cGFuZWxDbGFzczogJ3NpZGVwYW5lbC1jbGFzcyd9KTtcclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5hZGQoeyBzZXZlcml0eTogJ2luZm8nLCBzdW1tYXJ5OiAnTG9naW4nLCBkZXRhaWw6ICdQbGVhc2UgbG9naW4gd2l0aCBtb2JpbGUgbnVtYmVyIHRvIGFwcGx5IGNvdXBvbicgfSk7XHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG4gIHNlYXJjaElmQXBwbGljYWJsZSgpIHt9XHJcbiAgY2xvc2VEaWFsb2dSZWYoKSB7XHJcbiAgICB0aGlzLmNvdXBvbkRpYWxvZ1JlZj8uY2xvc2UoKTtcclxuICB9XHJcbiAgYXBwbHlDb3Vwb24oY291cG9uOiBDb3Vwb24pIHtcclxuXHJcbiAgICBpZiAoIWNvdXBvbi5hcHBsaWNhYmxlKVxyXG4gICAgICByZXR1cm47XHJcblxyXG4gICAgdGhpcy5jYXJ0SW5mby5iaWxsZGV0YWlscy5jb3Vwb25Db2RlID0gY291cG9uLmNvdXBvbkNvZGU7XHJcbiAgICB0aGlzLmNhcnRJbmZvLmJpbGxkZXRhaWxzLmNvdXBvbklkID0gY291cG9uLmNvdXBvbklkO1xyXG4gICAgY29uc29sZS5sb2codGhpcy5jYXJ0SW5mbyk7XHJcbiAgICBjb25zdCByZXN0UmVzcG9uc2UgPSB0aGlzLnJlc3RTZXJ2aWNlLmFkZEl0ZW1Ub0RCKHRoaXMuY2FydEluZm8pLnRvUHJvbWlzZSgpO1xyXG4gICAgcmVzdFJlc3BvbnNlLnRoZW4oKHJlc3BvbnNlOiBhbnkpPT4ge1xyXG5cclxuICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oXCJjb3Vwb25JZFwiLCBjb3Vwb24uY291cG9uSWQpO1xyXG4gICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShcImNvdXBvbkNvZGVcIiwgY291cG9uLmNvdXBvbkNvZGUpO1xyXG4gICAgICBjb25zb2xlLmxvZyhcIlJlc3BvbnNlOiBcIixyZXNwb25zZSk7XHJcbiAgICAgIHRoaXMuY2FsY3VsYXRlQ2FydChyZXNwb25zZSk7XHJcblxyXG4gICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7IHNldmVyaXR5OiAnc3VjY2VzcycsIHN1bW1hcnk6ICdDb3Vwb24nLCBkZXRhaWw6ICdDb3Vwb24gQXBwbGllZCcgfSk7XHJcbiAgICAgIHRoaXMuY2FydEluZm8uYmlsbGRldGFpbHMuZGlzY291bnRBbW91bnQgPSByZXNwb25zZT8uZGF0YT8uYmlsbGRldGFpbHM/LmRpc2NvdW50QW1vdW50ID8/IDA7XHJcbiAgICAgIHRoaXMuY291cG9uRGlhbG9nUmVmPy5jbG9zZSgpO1xyXG4gICAgfSlcclxuICB9XHJcbiAgY2FsY3VsYXRlQ2FydChyZXNwb25zZTogYW55KSB7XHJcbiAgICBjb25zdCBkZWxpdmVyeU9wdGlvbiA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJkZWxpdmVyeU9wdGlvbnNcIikgPz8gXCJ7fVwiKTtcclxuICAgIHRoaXMuY2FydEluZm8uYmlsbGRldGFpbHMudG90YWxHcm9zc1ZhbHVlID0gMDtcclxuICAgIHRoaXMuY2FydEluZm8uYmlsbGRldGFpbHMudG90YWxUYXggPSAwO1xyXG4gICAgdGhpcy5jYXJ0SW5mby5iaWxsZGV0YWlscy50b3RhbFRheEFmdGVyRGlzY291bnQgPSByZXNwb25zZT8uZGF0YT8uYmlsbGRldGFpbHM/LnRvdGFsVGF4QWZ0ZXJEaXNjb3VudCA/PyAwO1xyXG4gICAgdGhpcy5jYXJ0SW5mby5iaWxsZGV0YWlscy5kZWxpdmVyeUNoYXJnZXMgPSAwO1xyXG4gICAgdGhpcy5jYXJ0SW5mby5iaWxsZGV0YWlscy50b3RhbE5ldFZhbHVlID0gMDtcclxuICAgIHRoaXMuY2FydEluZm8uYmlsbGRldGFpbHMuZGlzY291bnRBbW91bnQgPSByZXNwb25zZT8uZGF0YT8uYmlsbGRldGFpbHM/LmRpc2NvdW50QW1vdW50ID8/IDA7XHJcbiAgICB0aGlzLmNhcnRJbmZvLnRvdGFsQW1vdW50ID0gMDtcclxuXHJcbiAgICBpZiAodGhpcy5VU0VSX0NBUlRfSVRFTVMpIHtcclxuXHJcbiAgICAgIHRoaXMuVVNFUl9DQVJUX0lURU1TLmZvckVhY2goKGl0ZW0pPT4ge1xyXG4gICAgICAgIHRoaXMuY2FydEluZm8uYmlsbGRldGFpbHMudG90YWxHcm9zc1ZhbHVlICs9IChpdGVtLmRpc2NvdW50ZWRQcmljZSAqIChpdGVtLnF1YW50aXR5ID8/IDEpKTtcclxuICAgICAgICB0aGlzLmNhcnRJbmZvLmJpbGxkZXRhaWxzLnRvdGFsVGF4ICs9IChpdGVtLnF1YW50aXR5ICogKGl0ZW0uaXRlbVRheCA/PyAwKSk7XHJcbiAgICAgIH0pXHJcbiAgICAgIHRoaXMuY2FydEluZm8uYmlsbGRldGFpbHMuZGVsaXZlcnlDaGFyZ2VzID0gKGRlbGl2ZXJ5T3B0aW9uPy5taW5PcmRlckFtb3VudCA+IHRoaXMuY2FydEluZm8uYmlsbGRldGFpbHMudG90YWxHcm9zc1ZhbHVlKSA/IDAgOiAoZGVsaXZlcnlPcHRpb24/LmRlbGl2ZXJ5Q2hhcmdlcyA/PyAwKTtcclxuICAgICAgdGhpcy5jYXJ0SW5mby5iaWxsZGV0YWlscy50b3RhbE5ldFZhbHVlID0gdGhpcy5jYXJ0SW5mby5iaWxsZGV0YWlscy50b3RhbEdyb3NzVmFsdWUgLSB0aGlzLmNhcnRJbmZvLmJpbGxkZXRhaWxzLmRlbGl2ZXJ5Q2hhcmdlcztcclxuICAgICAgdGhpcy5jYXJ0SW5mby50b3RhbEFtb3VudCA9IHRoaXMuY2FydEluZm8uYmlsbGRldGFpbHMudG90YWxOZXRWYWx1ZSArIHRoaXMuZ2V0VGF4QW1vdW50KCkgKyB0aGlzLmNhcnRJbmZvLmJpbGxkZXRhaWxzLmRlbGl2ZXJ5Q2hhcmdlcztcclxuICAgICAgdGhpcy5jYXJ0SW5mby5vcmRlcmVkSXRlbXMgPSB0aGlzLlVTRVJfQ0FSVF9JVEVNUztcclxuICAgIH1cclxuICAgIHRoaXMucmVzcG9uc2VEYXRhID0gdGhpcy5jYXJ0SW5mbztcclxuICB9XHJcblxyXG4gIGdldFRheEFtb3VudCgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuICF0aGlzLmNhcnRJbmZvLmJpbGxkZXRhaWxzPy5jb3Vwb25JZCA/ICh0aGlzLmNhcnRJbmZvLmJpbGxkZXRhaWxzLnRvdGFsVGF4ID8/IDApIDogKHRoaXMuY2FydEluZm8uYmlsbGRldGFpbHM/LnRvdGFsVGF4QWZ0ZXJEaXNjb3VudCA/PyAwKSA7XHJcbiAgfVxyXG5cclxuICBnZXQgZ2V0QWRkcmVzc0xpc3QoKSB7XHJcbiAgICByZXR1cm4gdGhpcy51c2VyRGV0YWlscyA/IFsuLi50aGlzLnVzZXJEZXRhaWxzPy5hZGRyZXNzRGV0YWlsc0xpc3RdIDogW107XHJcbiAgfVxyXG4gIGdldCBpc01vYmlsZSgpIHtcclxuICAgIHJldHVybiB3aW5kb3cuaW5uZXJXaWR0aCA8PSA0NzU7XHJcbiAgfVxyXG4gIGdldCBjdXJyZW5jeSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIEJVU0lORVNTX0NPTlNUQU5UUy5DVVJSRU5DWTtcclxuICB9XHJcbn1cclxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc0xvYWRpbmdcIj5cclxuICA8cC10b2FzdCBwb3NpdGlvbj1cImJvdHRvbS1yaWdodFwiIFtiYXNlWkluZGV4XT1cIjEwMDAwMDAwMDAwXCIgW2F1dG9aSW5kZXhdPVwidHJ1ZVwiIFtzaG93VHJhbnNmb3JtT3B0aW9uc109XCJpc01vYmlsZSA/ICd0cmFuc2xhdGVZKC0xMDAlKScgOiAnJ1wiPjwvcC10b2FzdD5cclxuXHJcbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImRhdGFcIj5cclxuICAgIDxzZWN0aW9uIFtpZF09XCJkYXRhPy5pZFwiIFtzaW1wb0xheW91dF09XCJzdHlsZXM/LmxheW91dFwiIFtpZF09XCJkYXRhPy5pZFwiIFtzaW1wb0JhY2tncm91bmRdPVwic3R5bGVzPy5iYWNrZ3JvdW5kXCIgW2F0dHIuY2xhc3NdPVwiaXNNb2JpbGUgPyAncHktNSBwb3NpdGlvbi1yZWxhdGl2ZScgOiAncG9zaXRpb24tcmVsYXRpdmUnXCIgc2ltcG9Ib3ZlciAoaG92ZXJpbmcpPVwic2hvd0VkaXRUYWJzKCRldmVudClcIiBbYXR0ci5zdHlsZV09XCJjdXN0b21DbGFzc1wiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIG0tYXV0byBtYi00XCIgW3N0eWxlLm1hcmdpblRvcC5weF09XCJpc01vYmlsZSA/ICcnOiAnNTAnXCIgW3N0eWxlLndpZHRoLiVdPVwiaXNNb2JpbGUgPyAnOTAnIDogJydcIiAqbmdJZj1cInJlc3BvbnNlRGF0YT8ub3JkZXJlZEl0ZW1zPy5sZW5ndGhcIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cInRpbWVsaW5lXCIgW25nQ2xhc3NdPVwieydpc0FjdGl2ZSc6IGN1cnJlbnRUYWIgPT0gJ0JBRyd9XCIgKGNsaWNrKT1cImN1cnJlbnRUYWIgPSAnQkFHJ1wiPkJhZzwvc3Bhbj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiYmFyXCI+PC9kaXY+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJ0aW1lbGluZVwiIFtuZ0NsYXNzXT1cInsnaXNBY3RpdmUnOiBjdXJyZW50VGFiID09ICdBRERSRVNTJ31cIiAoY2xpY2spPVwiY3VycmVudFRhYiA9ICdBRERSRVNTJ1wiPkFkZHJlc3M8L3NwYW4+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImJhclwiPjwvZGl2PlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwidGltZWxpbmVcIiBbbmdDbGFzc109XCJ7J2lzQWN0aXZlJzogY3VycmVudFRhYiA9PSAnUEFZTUVOVCd9XCIgc3R5bGU9XCJjdXJzb3I6IGF1dG87XCI+UGF5bWVudDwvc3Bhbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjYXJ0LXBhcmVudCBjb250YWluZXJcIiAqbmdJZj1cIihyZXNwb25zZURhdGE/Lm9yZGVyZWRJdGVtcz8ubGVuZ3RoIHx8IDApID4gMFwiICBbaWRdPVwiZGF0YT8uaWRcIiBbc2ltcG9BbmltYXRpb25dPVwic3R5bGVzPy5hbmltYXRpb25cIj5cclxuICAgICAgICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJjdXJyZW50VGFiXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibGVmdC1wYW5lbFwiICpuZ1N3aXRjaENhc2U9XCInQkFHJ1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXktYmFnXCI+XHJcbiAgICAgICAgICAgICAgTXkgQmFnJm5ic3A7IDxzcGFuPih7e3Jlc3BvbnNlRGF0YT8ub3JkZXJlZEl0ZW1zPy5sZW5ndGh9fSBJdGVtcyk8L3NwYW4+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FydC1pdGVtc1wiPlxyXG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgcmVzcG9uc2VEYXRhPy5vcmRlcmVkSXRlbXM7IGxldCBpZHggPSBpbmRleFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIml0ZW0tcGFyZW50IGQtZmxleFwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaC0xMDBcIiBzdHlsZT1cInBhZGRpbmc6IDBweDsgd2lkdGg6IGZpdC1jb250ZW50O1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbWcgbG9hZGluZz1cImxhenlcIiBvbmVycm9yPVwidGhpcy5zcmM9J2h0dHBzOi8vaS5wb3N0aW1nLmNjL2hQUzJKcFYwL25vLWltYWdlLWF2YWlsYWJsZS5qcGcnXCIgY2xhc3M9XCJwcm9kdWN0LWltZ1wiIFtzcmNdPVwiaXRlbS5pbWdVcmwgPz8gJ2h0dHBzOi8vaS5wb3N0aW1nLmNjL2hQUzJKcFYwL25vLWltYWdlLWF2YWlsYWJsZS5qcGcnXCIgYWx0PVwiXCIgKGNsaWNrKT1cImdvVG9Qcm9kdWN0RGV0YWlscyhpdGVtKVwiPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02IGgtMTAwXCIgW3N0eWxlLndpZHRoLnB4XT1cImlzTW9iaWxlID8gJzIwMCcgOiAnJ1wiIHN0eWxlPVwibWFyZ2luLWxlZnQ6IHB4O1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsaC0yM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIml0ZW0tbmFtZSB0cmltLXRleHQgaGVhZGluZy1sYXJnZVwiPnt7aXRlbS5pdGVtTmFtZX19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJpY2Utd2l0aC10YXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gW2lubmVySFRNTF09J2N1cnJlbmN5Jz48L3NwYW4+IHt7KGl0ZW0uZGlzY291bnRlZFByaWNlKSB8IG51bWJlcjogJzEuMC0yJ319XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpdGVtLml0ZW1WYXJpYW50XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCIgKm5nRm9yPVwibGV0IHZhcmllbnQgb2YgZ2V0S2V5cyhpdGVtLml0ZW1WYXJpYW50LnByb3BlcnRpZXMpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cm9uZyBjbGFzcz1cImZ3LWJvbGRcIj57eyB2YXJpZW50IH19IDogPC9zdHJvbmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwiZnctbm9ybWFsXCIgc3R5bGU9XCJtYXJnaW4tbGVmdDogNXB4OyBoZWlnaHQ6IDEzcHg7IHdpZHRoOiAxM3B4OyBib3JkZXItcmFkaXVzOiA1MCU7XCIgKm5nSWY9XCJ2YXJpZW50LnRvTG93ZXJDYXNlKCkgPT0gJ2NvbG9yJ1wiIFtzdHlsZS5iYWNrZ3JvdW5kQ29sb3JdPVwiaXRlbS5pdGVtVmFyaWFudC5wcm9wZXJ0aWVzW3ZhcmllbnRdXCI+PC9kaXY+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBpdGVtLml0ZW1WYXJpYW50LnByb3BlcnRpZXNbdmFyaWVudF0gfCB1cHBlcmNhc2UgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpdGVtLXF1YW50aXR5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjdXJzb3JcIiAoY2xpY2spPVwiYWRkVG9DYXJ0KGl0ZW0sICdTVUJTVFJBQ1QnKVwiPi08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3tpdGVtLnF1YW50aXR5fX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjdXJzb3JcIiAoY2xpY2spPVwiYWRkVG9DYXJ0KGl0ZW0sICdBREQnKVwiPis8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNCBwb3NpdGlvbi1yZWxhdGl2ZVwiIHN0eWxlPVwibWFyZ2luLWxlZnQ6IGF1dG87IHdpZHRoOiAwcHg7IFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpdGVtLXByaWNlXCI+PHNwYW4gW2lubmVySFRNTF09J2N1cnJlbmN5Jz48L3NwYW4+IHt7KChpdGVtLmRpc2NvdW50ZWRQcmljZSkgKiBpdGVtLnF1YW50aXR5KSAgfCBudW1iZXI6ICcxLjAtMid9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJkZWxldGUtaXRlbVwiIChjbGljayk9XCJyZW1vdmVJdGVtKGl0ZW0pXCIgW3N0eWxlLnJpZ2h0LnB4XT1cImlzTW9iaWxlID8gJzUnIDogJzAnXCI+ZGVsZXRlPC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxociAqbmdJZj1cInJlc3BvbnNlRGF0YT8ub3JkZXJlZEl0ZW1zPy5sZW5ndGggIT0gKGlkeCArMSlcIj5cclxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJsZWZ0LXBhbmVsXCIgKm5nU3dpdGNoQ2FzZT1cIidBRERSRVNTJ1wiPlxyXG4gICAgICAgICAgICA8c2ltcG8tYWRkcmVzcyBbaXNDYXJ0XT1cInRydWVcIiBbcmVzcG9uc2VEYXRhXT1cImdldEFkZHJlc3NMaXN0XCIgW2RhdGFdPVwiZGF0YVwiIChzZWxlY3RlZEFkZHJlc3MpPVwiYWRkcmVzc1NlbGVjdGVkKCRldmVudClcIj48L3NpbXBvLWFkZHJlc3M+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJsZWZ0LXBhbmVsXCIgKm5nU3dpdGNoQ2FzZT1cIidQQVlNRU5UJ1wiPjwvZGl2PlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyaWdodC1wYW5lbFwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm15LWJhZ1wiPlxyXG4gICAgICAgICAgICBDb3Vwb25cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvdXBvbnNcIiAoY2xpY2spPVwib3BlbkRpYWxvZyhDb3Vwb25MaXN0KVwiPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIXJlc3BvbnNlRGF0YS5iaWxsZGV0YWlscz8uY291cG9uSWRcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBzdHlsZT1cImZvbnQtd2VpZ2h0OiA2MDA7XCI+QXBwbHkgQ291cG9uPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gc3R5bGU9XCJmb250LXNpemU6IDEzcHg7XCI+U2F2ZSBtb3JlIHdpdGggY291cG9uIGFuZCBvZmZlcnM8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBbc3R5bGUuY29sb3JdPVwic3R5bGVzPy5iYWNrZ3JvdW5kPy5hY2NlbnRDb2xvclwiIHN0eWxlPVwiZm9udC13ZWlnaHQ6IDYwMDtcIj5BcHBseTwvZGl2PlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInJlc3BvbnNlRGF0YS5iaWxsZGV0YWlscz8uY291cG9uSWRcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBzdHlsZT1cImZvbnQtd2VpZ2h0OiA2MDA7XCI+Q291cG9uPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gc3R5bGU9XCJmb250LXNpemU6IDEzcHg7XCI+U2F2ZSBtb3JlIHdpdGggY291cG9uIGFuZCBvZmZlcnM8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBbc3R5bGUuY29sb3JdPVwic3R5bGVzPy5iYWNrZ3JvdW5kPy5hY2NlbnRDb2xvclwiIChjbGljayk9XCJyZW1vdmVDb3Vwb24oJGV2ZW50KVwiPlJlbW92ZTwvZGl2PlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm15LWJhZ1wiPlxyXG4gICAgICAgICAgICBQcmljZSBEZXRhaWxzXHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcmljZS1kZXRhaWxzXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcmljZS1wYXJlbnQtYmxvY2tcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJpY2UtdHlwZVwiPlRvdGFsIFByaWNlPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByaWNlLXZhbHVlXCI+PHNwYW4gW2lubmVySFRNTF09J2N1cnJlbmN5Jz48L3NwYW4+IHt7KHJlc3BvbnNlRGF0YT8uYmlsbGRldGFpbHM/LnRvdGFsTmV0VmFsdWUgPz8gMCkgfCBudW1iZXI6ICcxLjAtMid9fTwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByaWNlLXBhcmVudC1ibG9ja1wiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcmljZS10eXBlXCI+VG90YWwgVGF4PC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByaWNlLXZhbHVlXCI+PHNwYW4gW2lubmVySFRNTF09J2N1cnJlbmN5Jz48L3NwYW4+IHt7KCghcmVzcG9uc2VEYXRhLmJpbGxkZXRhaWxzPy5jb3Vwb25JZCA/IHJlc3BvbnNlRGF0YT8uYmlsbGRldGFpbHM/LnRvdGFsVGF4IDogcmVzcG9uc2VEYXRhPy5iaWxsZGV0YWlscz8udG90YWxUYXhBZnRlckRpc2NvdW50KSA/PyAwKSB8IG51bWJlcjogJzEuMC0yJ319PC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJpY2UtcGFyZW50LWJsb2NrXCJcclxuICAgICAgICAgICAgICAqbmdJZj1cInJlc3BvbnNlRGF0YT8uYmlsbGRldGFpbHM/LmRlbGl2ZXJ5Q2hhcmdlcyAmJiByZXNwb25zZURhdGEuYmlsbGRldGFpbHMuZGVsaXZlcnlDaGFyZ2VzID4gMFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcmljZS10eXBlXCI+RGVsaXZlcnkgQ2hhcmdlPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByaWNlLXZhbHVlXCI+PHNwYW4gW2lubmVySHRtbF09J2N1cnJlbmN5Jz48L3NwYW4+IHt7cmVzcG9uc2VEYXRhLmJpbGxkZXRhaWxzLmRlbGl2ZXJ5Q2hhcmdlcyB8IG51bWJlcjogJzEuMC0yJ319PC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJpY2UtcGFyZW50LWJsb2NrXCJcclxuICAgICAgICAgICAgICAqbmdJZj1cInJlc3BvbnNlRGF0YT8uYmlsbGRldGFpbHM/LmRpc2NvdW50QW1vdW50XCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByaWNlLXR5cGVcIj5EaXNjb3VudCBBbW91bnQ8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJpY2UtdmFsdWVcIj48c3BhbiBbaW5uZXJIdG1sXT0nY3VycmVuY3knPjwvc3Bhbj4ge3tyZXNwb25zZURhdGE/LmJpbGxkZXRhaWxzPy5kaXNjb3VudEFtb3VudCB8IG51bWJlcjogJzEuMC0yJ319PC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8aHI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcmljZS1wYXJlbnQtYmxvY2tcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJpY2UtdHlwZVwiIHN0eWxlPVwiY29sb3I6IGJsYWNrO2ZvbnQtd2VpZ2h0OiA2MDA7XCI+VG90YWwgQW1vdW50PC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByaWNlLXZhbHVlXCIgc3R5bGU9XCJmb250LXdlaWdodDogNjAwO1wiPjxzcGFuIFtpbm5lckh0bWxdPSdjdXJyZW5jeSc+PC9zcGFuPiB7eygocmVzcG9uc2VEYXRhPy50b3RhbEFtb3VudCA/PyAwKSAtIChyZXNwb25zZURhdGE/LmJpbGxkZXRhaWxzPy5kaXNjb3VudEFtb3VudCA/PyAwKSkgfCBudW1iZXI6ICcxLjAtMid9fTwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJidXR0b24tcGFyZW50XCI+XHJcbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImN1cnJlbnRUYWIgPT0gJ0JBRydcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJidG4gbW9iaWxlLWZpeGVkXCIgKGNsaWNrKT1cInByb2NlZWRUb0NoZWNrb3V0KClcIiAgW3N0eWxlLmJhY2tncm91bmRDb2xvcl09XCJkYXRhPy5zdHlsZXM/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yXCIgW3N0eWxlLmNvbG9yXT1cImRhdGE/LnN0eWxlcz8uYmFja2dyb3VuZD8uY29sb3JcIj57e2RhdGE/LmFjdGlvbj8uYnV0dG9ucz8uWzBdPy5jb250ZW50Py5sYWJlbCA/PyAnQ2hlY2tvdXQgQ2FydCd9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJ0blwiIChjbGljayk9XCJwcm9jZWVkVG9MaXN0UGFnZSgpXCIgc2ltcG9CdXR0b25EaXJlY3RpdmUgW2J1dHRvblN0eWxlXT1cImRhdGE/LmFjdGlvbj8uYnV0dG9ucz8uWzFdPy5zdHlsZXNcIiBbY29sb3JdPVwiZGF0YT8uc3R5bGVzPy5iYWNrZ3JvdW5kPy5hY2NlbnRDb2xvclwiPnt7ZGF0YT8uYWN0aW9uPy5idXR0b25zPy5bMV0/LmNvbnRlbnQ/LmxhYmVsID8/ICdDb250aW51ZSBTaG9wcGluZyd9fTwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY3VycmVudFRhYiA9PSAnQUREUkVTUydcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJidG4gbW9iaWxlLWZpeGVkXCIgKGNsaWNrKT1cInByb2NlZWRUb1BheW1lbnQoKVwiIFtzdHlsZS5iYWNrZ3JvdW5kQ29sb3JdPVwiZGF0YT8uc3R5bGVzPy5iYWNrZ3JvdW5kPy5hY2NlbnRDb2xvclwiIFtzdHlsZS5jb2xvcl09XCJkYXRhPy5zdHlsZXM/LmJhY2tncm91bmQ/LmNvbG9yXCI+e3tkYXRhPy5hY3Rpb24/LmJ1dHRvbnM/LlsyXT8uY29udGVudD8ubGFiZWwgPz8gJ1BsYWNlIE9yZGVyJ319PC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgPCEtLSA8ZGl2ICpuZ0Zvcj1cImxldCBidXR0b24gb2YgZGF0YT8uYWN0aW9uPy5idXR0b25zO2xldCBpID0gaW5kZXhcIj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG5cIiAoY2xpY2spPVwiaSA9PSAwID8gcHJvY2VlZFRvQ2hlY2tvdXQoKSA6IHByb2NlZWRUb0xpc3RQYWdlKClcIiBzaW1wb0J1dHRvbkRpcmVjdGl2ZSBbaWRdPVwiZGF0YT8uaWQrYnV0dG9uLmlkXCIgW2J1dHRvblN0eWxlXT1cImJ1dHRvbj8uc3R5bGVzXCJcclxuICAgICAgICAgICAgICAgICAgW2NvbG9yXT1cInN0eWxlcz8uYmFja2dyb3VuZD8uYWNjZW50Q29sb3JcIj57e2J1dHRvbj8uY29udGVudD8ubGFiZWx9fTwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgIDwvZGl2PiAtLT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8c2VjdGlvbiBjbGFzcz1cImVtcHR5LWNhcnRcIiAqbmdJZj1cIihyZXNwb25zZURhdGE/Lm9yZGVyZWRJdGVtcz8ubGVuZ3RoIHx8IDApID09IDBcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZW1wdHktY2FydC1jb250YWluZXJcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJ0LWltYWdlXCI+XHJcbiAgICAgICAgICAgIDxpbWcgbG9hZGluZz1cImxhenlcIiBvbmVycm9yPVwidGhpcy5zcmM9J2h0dHBzOi8vaS5wb3N0aW1nLmNjL2hQUzJKcFYwL25vLWltYWdlLWF2YWlsYWJsZS5qcGcnXCIgICBbc3JjXT1cImRhdGE/LmNvbnRlbnQ/LmltYWdlPy51cmxcIiBbYWx0XT1cImRhdGE/LmNvbnRlbnQ/LmltYWdlPy5hbHRUZXh0XCI+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJ0LXRleHRcIj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgdGV4dCBvZiBkYXRhPy5jb250ZW50Py5pbnB1dFRleHRcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXJcIiBbbmdDbGFzc109XCJ7J2hlYWRpbmctbWVkaXVtJzogdGV4dC5sYWJlbCA9PSAnSGVhZGluZycsICdkZXNjcmlwdGlvbic6IHRleHQubGFiZWwgPT0gJ1RleHQnfVwiPnt7dGV4dC52YWx1ZX19PC9kaXY+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJkZXNjcmlwdGlvbiBkLWZsZXggbXQtNFwiPlxyXG4gICAgICAgICAgICAgIExvb2tzIGxpa2UgeW91IGhhdmUgbm90IGFkZGVkIGFueXRoaW5nIHRvIHlvdXIgY2FydC4gR28gYWhlYWQgJiBleHBsb3JlIHRvcCBjYXRlZ29yaWVzLlxyXG4gICAgICAgICAgICA8L2Rpdj4gLS0+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICA8ZGl2IFtuZ0NsYXNzXT1cInsnaG92ZXJfZWZmZWN0JzogZWRpdH1cIiAqbmdJZj1cInNob3dFZGl0b3JzXCI+XHJcbiAgICAgICAgPHNpbXBvLWhvdmVyLWVsZW1lbnRzIFtkYXRhXT1cImRhdGFcIiBbaW5kZXhdPVwiaW5kZXhcIiBbZWRpdE9wdGlvbnNdPVwiZWRpdFwiIFtpc0Vjb21tZXJjZV09XCJ0cnVlXCI+PC9zaW1wby1ob3Zlci1lbGVtZW50cz5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgKm5nSWY9XCJzaG93RGVsZXRlXCIgW25nQ2xhc3NdPVwieydob3Zlcl9lZmZlY3QnOiBkZWxldGV9XCI+XHJcbiAgICAgICAgPHNpbXBvLWRlbGV0ZS1ob3Zlci1lbGVtZW50IFtkYXRhXT1cImRhdGFcIiBbaW5kZXhdPVwiaW5kZXhcIj48L3NpbXBvLWRlbGV0ZS1ob3Zlci1lbGVtZW50PlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICA8L3NlY3Rpb24+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFkYXRhXCI+XHJcbiAgICA8c2VjdGlvbiBjbGFzcz1cImNhcnQtd2luZG93XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJoZWFkaW5nLWxhcmdlIGxoLTIgbWItMyBoZWFkZXItc2VjXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgIDxtYXQtaWNvbiAoY2xpY2spPVwiY2xvc2VXaW5kb3coKVwiPmtleWJvYXJkX2Fycm93X2xlZnQ8L21hdC1pY29uPlxyXG4gICAgICAgICAgPHNwYW4+WW91ciBDYXJ0PC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzYXZpbmdcIj48L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJvZmZlcnNcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiIHN0eWxlPVwiZ2FwOiA1cHg7XCI+XHJcbiAgICAgICAgICA8aW1nIHNyYz1cImh0dHBzOi8vaS5wb3N0aW1nLmNjL2h0WTU1c3FZL2Rpc2NvdW50LnBuZ1wiIGFsdD1cIlwiIGhlaWdodD1cIjIwXCIgd2lkdGg9XCIyMFwiPlxyXG4gICAgICAgICAgPHNwYW4+QXZhaWwgT2ZmZXJzIC8gQ291cG9uczwvc3Bhbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8bWF0LWljb24+a2V5Ym9hcmRfYXJyb3dfcmlnaHQ8L21hdC1pY29uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cInNtYWxsLWl0ZW1zXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiByZXNwb25zZURhdGE/Lm9yZGVyZWRJdGVtc1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNtYWxsLWl0ZW1cIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleFwiIHN0eWxlPVwiZ2FwOiA1cHg7XCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImgtMTAwXCIgc3R5bGU9XCJwYWRkaW5nOiAwcHg7IHdpZHRoOiBmaXQtY29udGVudDtcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgbG9hZGluZz1cImxhenlcIiBvbmVycm9yPVwidGhpcy5zcmM9J2h0dHBzOi8vaS5wb3N0aW1nLmNjL2hQUzJKcFYwL25vLWltYWdlLWF2YWlsYWJsZS5qcGcnXCIgY2xhc3M9XCJzbWFsbC1wcm9kdWN0LWltZ1wiIFtzcmNdPVwiaXRlbS5pbWdVcmwgPz8gJ2h0dHBzOi8vaS5wb3N0aW1nLmNjL2hQUzJKcFYwL25vLWltYWdlLWF2YWlsYWJsZS5qcGcnXCIgYWx0PVwiXCIgKGNsaWNrKT1cImdvVG9Qcm9kdWN0RGV0YWlscyhpdGVtKVwiPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzbWFsbC1pdGVtLW5hbWUgdHJpbS10ZXh0XCI+e3sgaXRlbS5pdGVtTmFtZSB8IHRpdGxlY2FzZSB9fTwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzbWFsbC1pdGVtLXF1YW50aXR5XCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImN1cnNvclwiIChjbGljayk9XCJhZGRUb0NhcnQoaXRlbSwgJ1NVQlNUUkFDVCcpXCI+LTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPnt7aXRlbS5xdWFudGl0eX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjdXJzb3JcIiAoY2xpY2spPVwiYWRkVG9DYXJ0KGl0ZW0sICdBREQnKVwiPis8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNtYWxsLWl0ZW0tcHJpY2VcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcmljZS13aXRoLXRheFwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3BhbiBbaW5uZXJIVE1MXT0nY3VycmVuY3knPjwvc3Bhbj4ge3soaXRlbS5kaXNjb3VudGVkUHJpY2UpIHwgbnVtYmVyOiAnMS4wLTInfX1cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwicHJpY2Utd2l0aC10YXhcIj5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4gW2lubmVySFRNTF09J2N1cnJlbmN5Jz48L3NwYW4+IHt7KGl0ZW0uc2VsbGluZykgfCBudW1iZXI6ICcxLjAtMid9fVxyXG4gICAgICAgICAgICAgICAgPC9kaXY+IC0tPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImZvdHRlci1zZWNcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZGVsaXZlcnktYWRkIGQtZmxleFwiPlxyXG4gICAgICAgICAgPG1hdC1pY29uPmhvbWU8L21hdC1pY29uPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImFkZHJlc3NcIj5UZXRzdGluZzwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJwYXltZW50LWJ0blwiIFtkaXNhYmxlZF09XCJjYXJ0SW5mby5hZGRyZXNzRGV0YWlsc1wiIChjbGljayk9XCJwcm9jZWVkVG9DaGVja291dCgpXCI+IDxzcGFuIHN0eWxlPVwibWFyZ2luLXJpZ2h0OiA1cHg7XCI+Q2xpY2sgdG8gUGF5PC9zcGFuPiA8c3BhbiBbaW5uZXJIdG1sXT0nY3VycmVuY3knPjwvc3Bhbj4ge3socmVzcG9uc2VEYXRhPy50b3RhbEFtb3VudCA/PyAwKSB8IG51bWJlcjogJzEuMC0yJ319PC9idXR0b24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9zZWN0aW9uPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG48L25nLWNvbnRhaW5lcj5cclxuXHJcbjxuZ3gtc2tlbGV0b24tbG9hZGVyICpuZ0lmPVwiaXNMb2FkaW5nXCIgY291bnQ9XCIxXCIgYXBwZWFyYW5jZT1cImNpcmNsZVwiIFt0aGVtZV09XCJ7XHJcbiAgd2lkdGg6ICcxMDAlJyxcclxuICBoZWlnaHQ6ICc0MHZoJyxcclxuICAnYm9yZGVyLXJhZGl1cyc6ICcxMHB4JyxcclxuICAncG9zaXRpb24nOiAncmVsYXRpdmUnLFxyXG4gICdyaWdodCc6ICc1cHgnXHJcbn1cIj5cclxuPC9uZ3gtc2tlbGV0b24tbG9hZGVyPlxyXG5cclxuPG5nLXRlbXBsYXRlICNDb3Vwb25MaXN0PlxyXG4gIDxzZWN0aW9uIGNsYXNzPVwiY291cG9ucy1saXN0aW5nLXNlY3Rpb25cIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjb3Vwb24taGVhZGluZ1wiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiYmFjay1idG5cIiAoY2xpY2spPVwiY2xvc2VEaWFsb2dSZWYoKVwiPlxyXG4gICAgICAgIDxtYXQtaWNvbj5rZXlib2FyZF9hcnJvd19sZWZ0PC9tYXQtaWNvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJoZWFkZXItdGV4dFwiPkFwcGx5IENvdXBvbjwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8IS0tIDxkaXYgY2xhc3M9XCJjb3Vwb24tc2VhcmNoLXNlY1wiPlxyXG4gICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBwbGFjZWhvbGRlcj1cIlR5cGUgQ291cG9uIENvZGVcIiBbKG5nTW9kZWwpXT1cImVudGVyZWRDb3Vwb25Db2RlXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJhcHBseS1idG4tc2VhcmNoXCIgKGNsaWNrKT1cInNlYXJjaElmQXBwbGljYWJsZSgpXCI+QXBwbHk8L2Rpdj5cclxuICAgIDwvZGl2PiAtLT5cclxuICAgIDxkaXYgY2xhc3M9XCJjb3Vwb24tbGlzdGluZ1wiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY291cG9uTGlzdC5sZW5ndGggPiAwOyBlbHNlIHNob3dFbXB0eVNjcmVlblwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGNvdXBvbkRldGFpbHMgb2YgY291cG9uTGlzdDsgbGV0IGlkeCA9IGluZGV4XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY291cG9uLWRldGFpbHNcIlxyXG4gICAgICAgICAgICBbbmdTdHlsZV09XCJ7J2JhY2tncm91bmQtY29sb3InOiAhY291cG9uRGV0YWlscy5hcHBsaWNhYmxlID8gJyNGRkYyRjQnIDogJyNFREZGRkEnfVwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGV0YWlsc19fY291cG9uLWhlYWRpbmdcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY291cG9uLWJyaWVmXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY291cG9uLWJyaWVmX19sZWZ0LXNlY1wiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY291cG9uLW5hbWVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtuZ1N0eWxlXT1cInsnY29sb3InOiAhY291cG9uRGV0YWlscy5hcHBsaWNhYmxlID8gJyNEQjFBMUEnIDogJyMwOTdENUYnfVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7IGNvdXBvbkRldGFpbHMuY291cG9uQ29kZSB8IHVwcGVyY2FzZSB9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY291cG9uLWRlc2NcIj57eyBjb3Vwb25EZXRhaWxzLmRpc2NvdW50RGVzY3JpcHRpb24gfCB0aXRsZWNhc2UgfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvdXBvbi1icmllZl9fcmlnaHQtc2VjXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhcHBseS1vZmZlci1idG5cIlxyXG4gICAgICAgICAgICAgICAgICAgIFtzdHlsZS5vcGFjaXR5XT1cImNvdXBvbkRldGFpbHMuYXBwbGljYWJsZSA/ICcxJyA6ICcwLjMnXCIgW25nU3R5bGVdPVwieydjdXJzb3InOiBjb3Vwb25EZXRhaWxzLmFwcGxpY2FibGUgPyAncG9pbnRlcicgOiAnJ31cIiAoY2xpY2spPVwiYXBwbHlDb3Vwb24oY291cG9uRGV0YWlscylcIj5BcHBseTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwiY291cG9uLXRvZ2dsZS1kZXRhaWxzLWJ0blwiIChjbGljayk9XCJjb3Vwb25EZXRhaWxzLnN0YXR1cyA9ICFjb3Vwb25EZXRhaWxzLnN0YXR1c1wiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJoaWRlLWRldGFpbHMtYnRuXCIgKm5nSWY9XCJjb3Vwb25EZXRhaWxzLnN0YXR1c1wiPkhpZGUgZGV0YWlsczwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaG93LWRldGFpbHMtYnRuXCIgKm5nSWY9XCIhY291cG9uRGV0YWlscy5zdGF0dXNcIj5WaWV3IGRldGFpbHM8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj4gLS0+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY291cG9uRGV0YWlscy5zdGF0dXNcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGV0YWlscy1kaXZpZGVyXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgPHVsIGNsYXNzPVwiZGV0YWlsc19fY291cG9uLXRlcm1zXCI+XHJcbiAgICAgICAgICAgICAgICA8bGk+T2ZmZXIgdmFsaWQgZnJvbSB7eyBjb3Vwb25EZXRhaWxzLnZhbGlkRnJvbSB8IGRhdGUgfX0gLSB7eyBjb3Vwb25EZXRhaWxzLnZhbGlkVG8gfCBkYXRlIH19PC9saT5cclxuICAgICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPG5nLXRlbXBsYXRlICNzaG93RW1wdHlTY3JlZW4+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImVtcHR5LXNjcmVlbi1jb250YWluZXJcIj5cclxuICAgICAgICAgIDxpbWcgbG9hZGluZz1cImxhenlcIiBzcmM9XCIuLi8uLi8uLi8uLi8uLi9hc3NldHMvY29tbW9uL2NvdXBvbi1lbXB0eS1pbWcuc3ZnXCIgYWx0PVwiXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZW1wdHktc2NyZWVuX19wcmltYXJ5LXRleHRcIj5ObyBDb3Vwb24gQXZhaWxhYmxlPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZW1wdHktc2NyZWVuX19zZWNvbmRhcnktdGV4dFwiPlxyXG4gICAgICAgICAgICBMb29rcyBsaWtlIHRoZXJlIGFyZSBubyBjb3Vwb25zIGF0IHRoZSBtb21lbnRcclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwiZW1wdHktc2NyZWVuX19idXR0b25cIj5FeHBsb3JlPC9kaXY+IC0tPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9zZWN0aW9uPlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuIl19
|
@@ -4706,7 +4706,7 @@ class CartComponent extends BaseSection {
|
|
4706
4706
|
for (let cartItem of this.cartInfo.orderedItems) {
|
4707
4707
|
if (cartItem.varientId === product.varientId) {
|
4708
4708
|
itemFound = true;
|
4709
|
-
cartItem.quantity = product.quantity;
|
4709
|
+
// cartItem.quantity = product.quantity;
|
4710
4710
|
}
|
4711
4711
|
}
|
4712
4712
|
if (!itemFound) {
|