@veloceapps/sdk 11.0.0-17 → 11.0.0-19
Sign up to get free protection for your applications and to get access to all the features.
- package/cms/cms.actions.d.ts +0 -13
- package/esm2020/cms/cms.actions.mjs +1 -13
- package/esm2020/core/services/flow-state.service.mjs +4 -4
- package/fesm2015/veloceapps-sdk-cms.mjs +0 -12
- package/fesm2015/veloceapps-sdk-cms.mjs.map +1 -1
- package/fesm2015/veloceapps-sdk-core.mjs +3 -3
- package/fesm2015/veloceapps-sdk-core.mjs.map +1 -1
- package/fesm2020/veloceapps-sdk-cms.mjs +0 -12
- package/fesm2020/veloceapps-sdk-cms.mjs.map +1 -1
- package/fesm2020/veloceapps-sdk-core.mjs +3 -3
- package/fesm2020/veloceapps-sdk-core.mjs.map +1 -1
- package/package.json +1 -1
package/cms/cms.actions.d.ts
CHANGED
@@ -1,4 +1,3 @@
|
|
1
|
-
import { CustomizationChanges } from '@veloceapps/core';
|
2
1
|
export declare namespace FlowAction {
|
3
2
|
const FLOW_CONFIGURE_PRODUCT = "[FLOW]_CONFIGURE_PRODUCT";
|
4
3
|
const FLOW_NAVIGATE_BACK = "[FLOW]_NAVIGATE_BACK";
|
@@ -93,7 +92,6 @@ export declare namespace FlowAction {
|
|
93
92
|
export declare namespace CmsAction {
|
94
93
|
const GO_TO_PAGE = "[CMS]_GO_TO_PAGE";
|
95
94
|
const UPDATE_CUSTOMIZATION = "[CMS]_UPDATE_CUSTOMIZATION";
|
96
|
-
const EMIT_CUSTOMIZATION_CHANGES = "[CMS]_EMIT_CUSTOMIZATION_CHANGES";
|
97
95
|
const SHOW_OVERLAY = "[CMS]_SHOW_OVERLAY";
|
98
96
|
const HIDE_OVERLAY = "[CMS]_HIDE_OVERLAY";
|
99
97
|
const HIDE_ALL_OVERLAYS = "[CMS]_HIDE_ALL_OVERLAYS";
|
@@ -119,17 +117,6 @@ export declare namespace CmsAction {
|
|
119
117
|
value: any;
|
120
118
|
};
|
121
119
|
};
|
122
|
-
/**
|
123
|
-
* Emit customization page changes
|
124
|
-
*
|
125
|
-
* @param changes - object with customization page changes
|
126
|
-
*/
|
127
|
-
const EmitCustomizationChanges: (changes: CustomizationChanges) => {
|
128
|
-
type: string;
|
129
|
-
payload: {
|
130
|
-
changes: CustomizationChanges;
|
131
|
-
};
|
132
|
-
};
|
133
120
|
/**
|
134
121
|
* Show an Overlay on the selected page
|
135
122
|
*
|
@@ -88,7 +88,6 @@ export var CmsAction;
|
|
88
88
|
(function (CmsAction) {
|
89
89
|
CmsAction.GO_TO_PAGE = '[CMS]_GO_TO_PAGE';
|
90
90
|
CmsAction.UPDATE_CUSTOMIZATION = '[CMS]_UPDATE_CUSTOMIZATION';
|
91
|
-
CmsAction.EMIT_CUSTOMIZATION_CHANGES = '[CMS]_EMIT_CUSTOMIZATION_CHANGES';
|
92
91
|
CmsAction.SHOW_OVERLAY = '[CMS]_SHOW_OVERLAY';
|
93
92
|
CmsAction.HIDE_OVERLAY = '[CMS]_HIDE_OVERLAY';
|
94
93
|
CmsAction.HIDE_ALL_OVERLAYS = '[CMS]_HIDE_ALL_OVERLAYS';
|
@@ -114,17 +113,6 @@ export var CmsAction;
|
|
114
113
|
payload: { value },
|
115
114
|
};
|
116
115
|
};
|
117
|
-
/**
|
118
|
-
* Emit customization page changes
|
119
|
-
*
|
120
|
-
* @param changes - object with customization page changes
|
121
|
-
*/
|
122
|
-
CmsAction.EmitCustomizationChanges = (changes) => {
|
123
|
-
return {
|
124
|
-
type: CmsAction.EMIT_CUSTOMIZATION_CHANGES,
|
125
|
-
payload: { changes },
|
126
|
-
};
|
127
|
-
};
|
128
116
|
/**
|
129
117
|
* Show an Overlay on the selected page
|
130
118
|
*
|
@@ -160,4 +148,4 @@ export var CmsAction;
|
|
160
148
|
};
|
161
149
|
};
|
162
150
|
})(CmsAction || (CmsAction = {}));
|
163
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY21zLmFjdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9jbXMvY21zLmFjdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsTUFBTSxLQUFXLFVBQVUsQ0F5RzFCO0FBekdELFdBQWlCLFVBQVU7SUFDWixpQ0FBc0IsR0FBRywwQkFBMEIsQ0FBQztJQUNwRCw2QkFBa0IsR0FBRyxzQkFBc0IsQ0FBQztJQUM1QywyQkFBZ0IsR0FBRyxvQkFBb0IsQ0FBQztJQUN4QyxtQ0FBd0IsR0FBRyw0QkFBNEIsQ0FBQztJQUN4RCx5Q0FBOEIsR0FBRyxrQ0FBa0MsQ0FBQztJQUNwRSwyQ0FBZ0MsR0FBRyxvQ0FBb0MsQ0FBQztJQUN4RSw0QkFBaUIsR0FBRyxxQkFBcUIsQ0FBQztJQUMxQyw2QkFBa0IsR0FBRyxzQkFBc0IsQ0FBQztJQUM1Qyw2QkFBa0IsR0FBRyxzQkFBc0IsQ0FBQztJQUM1Qyx1QkFBWSxHQUFHLHFCQUFxQixDQUFDO0lBQ3JDLHdCQUFhLEdBQUcsc0JBQXNCLENBQUM7SUFDdkMsOEJBQW1CLEdBQUcsNEJBQTRCLENBQUM7SUFDbkQsZ0NBQXFCLEdBQUcsOEJBQThCLENBQUM7SUFDdkQsK0JBQW9CLEdBQUcsNkJBQTZCLENBQUM7SUFDckQsc0JBQVcsR0FBRyxvQkFBb0IsQ0FBQztJQUVuQyxpQ0FBc0IsR0FBRyxDQUFDLEVBQ3JDLGlCQUFpQixFQUNqQixTQUFTLEdBSVYsRUFBRSxFQUFFO1FBQ0gsT0FBTztZQUNMLElBQUksRUFBRSxVQUFVLENBQUMsc0JBQXNCO1lBQ3ZDLE9BQU8sRUFBRSxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRTtTQUNkLENBQUM7SUFDaEMsQ0FBQyxDQUFDO0lBRVcsNkJBQWtCLEdBQUcsR0FBRyxFQUFFO1FBQ3JDLE9BQU87WUFDTCxJQUFJLEVBQUUsVUFBVSxDQUFDLGtCQUFrQjtTQUNSLENBQUM7SUFDaEMsQ0FBQyxDQUFDO0lBRVcsMkJB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QUlHO0lBQ1Usa0NBQXdCLEdBQUcsQ0FBQyxPQUE2QixFQUFFLEVBQUU7UUFDeEUsT0FBTztZQUNMLElBQUksRUFBRSxVQUFBLDBCQUEwQjtZQUNoQyxPQUFPLEVBQUUsRUFBRSxPQUFPLEVBQUU7U0FDTyxDQUFDO0lBQ2hDLENBQUMsQ0FBQztJQUVGOzs7OztPQUtHO0lBQ1UscUJBQVcsR0FBRyxDQUFDLElBQVksRUFBRSxFQUFFO1FBQzFDLE9BQU87WUFDTCxJQUFJLEVBQUUsVUFBQSxZQUFZO1lBQ2xCLE9BQU8sRUFBRSxFQUFFLElBQUksRUFBRTtTQUNVLENBQUM7SUFDaEMsQ0FBQyxDQUFDO0lBRUY7Ozs7O09BS0c7SUFDVSxxQkFBVyxHQUFHLENBQUMsSUFBWSxFQUFFLEVBQUU7UUFDMUMsT0FBTztZQUNMLElBQUksRUFBRSxVQUFBLFlBQVk7WUFDbEIsT0FBTyxFQUFFLEVBQUUsSUFBSSxFQUFFO1NBQ1UsQ0FBQztJQUNoQyxDQUFDLENBQUM7SUFFRjs7OztPQUlHO0lBQ1UseUJBQWUsR0FBRyxHQUFHLEVBQUU7UUFDbEMsT0FBTztZQUNMLElBQUksRUFBRSxVQUFBLGlCQUFpQjtTQUNJLENBQUM7SUFDaEMsQ0FBQyxDQUFDO0FBQ0osQ0FBQyxFQWhGZ0IsU0FBUyxLQUFULFNBQVMsUUFnRnpCIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLW5hbWVzcGFjZSAqL1xuaW1wb3J0IHsgQ3VzdG9taXphdGlvbkNoYW5nZXMgfSBmcm9tICdAdmVsb2NlYXBwcy9jb3JlJztcbmltcG9ydCB7IEludGVncmF0aW9uQWN0aW9uIH0gZnJvbSAnQHZlbG9jZWFwcHMvc2RrL2NvcmUnO1xuXG5leHBvcnQgbmFtZXNwYWNlIEZsb3dBY3Rpb24ge1xuICBleHBvcnQgY29uc3QgRkxPV19DT05GSUdVUkVfUFJPRFVDVCA9ICdbRkxPV11fQ09ORklHVVJFX1BST0RVQ1QnO1xuICBleHBvcnQgY29uc3QgRkxPV19OQVZJR0FURV9CQUNLID0gJ1tGTE9XXV9OQVZJR0FURV9CQUNLJztcbiAgZXhwb3J0IGNvbnN0IEZMT1dfTkFWSUdBVEVfVE8gPSAnW0ZMT1ddX05BVklHQVRFX1RPJztcbiAgZXhwb3J0IGNvbnN0IEZMT1dfTkFWSUdBVEVfVE9fQ0FUQUxPRyA9ICdbRkxPV11fTkFWSUdBVEVfVE9fQ0FUQUxPRyc7XG4gIGV4cG9ydCBjb25zdCBGTE9XX05BVklHQVRFX1RPX1NIT1BQSU5HX0NBUlQgPSAnW0ZMT1ddX05BVklHQVRFX1RPX1NIT1BQSU5HX0NBUlQnO1xuICBleHBvcnQgY29uc3QgRkxPV19BUFBMWV9QUk9EVUNUX0NPTkZJR1VSQVRJT04gPSAnW0ZMT1ddX0FQUExZX1BST0RVQ1RfQ09ORklHVVJBVElPTic7XG4gIGV4cG9ydCBjb25zdCBGTE9XX09QRU5fRE9DX0dFTiA9ICdbRkxPV11fT1BFTl9ET0NfR0VOJztcbiAgZXhwb3J0IGNvbnN0IEZMT1dfQ0xPU0VfRE9DX0dFTiA9ICdbRkxPV11fQ0xPU0VfRE9DX0dFTic7XG4gIGV4cG9ydCBjb25zdCBGTE9XX1NXSVRDSF9PQkpFQ1QgPSAnW0ZMT1ddX1NXSVRDSF9PQkpFQ1QnO1xuICBleHBvcnQgY29uc3QgUkVNT1RFX0FQUExZID0gJ1tGTE9XXV9SRU1PVEVfQVBQTFknO1xuICBleHBvcnQgY29uc3QgUkVNT1RFX0NBTkNFTCA9ICdbRkxPV11fUkVNT1RFX0NBTkNFTCc7XG4gIGV4cG9ydCBjb25zdCBPUEVOX0dVSURFRF9TRUxMSU5HID0gJ1tGTE9XXV9PUEVOX0dVSURFRF9TRUxMSU5HJztcbiAgZXhwb3J0IGNvbnN0IFNVQk1JVF9HVUlERURfU0VMTElORyA9ICdbRkxPV11fU1VCTUlUX0dVSURFRF9TRUxMSU5HJztcbiAgZXhwb3J0IGNvbnN0IENMT1NFX0dVSURFRF9TRUxMSU5HID0gJ1tGTE9XXV9DTE9TRV9HVUlERURfU0VMTElORyc7XG4gIGV4cG9ydCBjb25zdCBPUEVOX0RJQUxPRyA9ICdbRkxPV11fT1BFTl9ESUFMT0cnO1xuXG4gIGV4cG9ydCBjb25zdCBDb25maWd1cmVQcm9kdWN0QWN0aW9uID0gKHtcbiAgICB0cmFuc2FjdGlvbkl0ZW1JZCxcbiAgICBwcm9kdWN0SWQsXG4gIH06IHtcbiAgICB0cmFuc2FjdGlvbkl0ZW1JZD86IHN0cmluZztcbiAgICBwcm9kdWN0SWQ/OiBzdHJpbmc7XG4gIH0pID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogRmxvd0FjdGlvbi5GTE9XX0NPTkZJR1VSRV9QUk9EVUNULFxuICAgICAgcGF5bG9hZDogeyB0cmFuc2FjdGlvbkl0ZW1JZCwgcHJvZHVjdElkIH0sXG4gICAgfSBzYXRpc2ZpZXMgSW50ZWdyYXRpb25BY3Rpb247XG4gIH07XG5cbiAgZXhwb3J0IGNvbnN0IE5hdmlnYXRlQmFja0FjdGlvbiA9ICgpID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogRmxvd0FjdGlvbi5GTE9XX05BVklHQVRFX0JBQ0ssXG4gICAgfSBzYXRpc2ZpZXMgSW50ZWdyYXRpb25BY3Rpb247XG4gIH07XG5cbiAgZXhwb3J0IGNvbnN0IE5hdmlnYXRlVG9BY3Rpb24gPSAocGF0aDogc3RyaW5nLCBwcm9kdWN0SWQ/OiBzdHJpbmcsIHRyYW5zYWN0aW9uSXRlbUlkPzogc3RyaW5nKSA9PlxuICAgICh7XG4gICAgICB0eXBlOiBGbG93QWN0aW9uLkZMT1dfTkFWSUdBVEVfVE8sXG4gICAgICBwYXlsb2FkOiB7IHBhdGgsIHByb2R1Y3RJZCwgdHJhbnNhY3Rpb25JdGVtSWQgfSxcbiAgICB9IHNhdGlzZmllcyBJbnRlZ3JhdGlvbkFjdGlvbik7XG5cbiAgZXhwb3J0IGNvbnN0IE5hdmlnYXRlVG9DYXRhbG9nQWN0aW9uID0gKCkgPT5cbiAgICAoe1xuICAgICAgdHlwZTogRmxvd0FjdGlvbi5GTE9XX05BVklHQVRFX1RPX0NBVEFMT0csXG4gICAgfSBzYXRpc2ZpZXMgSW50ZWdyYXRpb25BY3Rpb24pO1xuXG4gIGV4cG9ydCBjb25zdCBOYXZpZ2F0ZVRvU2hvcHBpbmdDYXJ0QWN0aW9uID0gKCkgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiBGbG93QWN0aW9uLkZMT1dfTkFWSUdBVEVfVE9fU0hPUFBJTkdfQ0FSVCxcbiAgICB9IHNhdGlzZmllcyBJbnRlZ3JhdGlvbkFjdGlvbjtcbiAgfTtcblxuICBleHBvcnQgY29uc3QgQXBwbHlQcm9kdWN0Q29uZmlndXJhdGlvbkFjdGlvbiA9ICgpID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogRmxvd0FjdGlvbi5GTE9XX0FQUExZX1BST0RVQ1RfQ09ORklHVVJBVElPTixcbiAgICB9IHNhdGlzZmllcyBJbnRlZ3JhdGlvbkFjdGlvbjtcbiAgfTtcblxuICBleHBvcnQgY29uc3QgUmVtb3RlQXBwbHlBY3Rpb24gPSAoKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6IEZsb3dBY3Rpb24uUkVNT1RFX0FQUExZLFxuICAgIH0gc2F0aXNmaWVzIEludGVncmF0aW9uQWN0aW9uO1xuICB9O1xuXG4gIGV4cG9ydCBjb25zdCBSZW1vdGVDYW5jZWxBY3Rpb24gPSAoKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6IEZsb3dBY3Rpb24uUkVNT1RFX0NBTkNFTCxcbiAgICB9IHNhdGlzZmllcyBJbnRlZ3JhdGlvbkFjdGlvbjtcbiAgfTtcblxuICBleHBvcnQgY29uc3QgU3dpdGNoT2JqZWN0QWN0aW9uID0gKHBheWxvYWQ6IHsgaWQ6IHN0cmluZyB9KSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6IEZsb3dBY3Rpb24uRkxPV19TV0lUQ0hfT0JKRUNULFxuICAgICAgcGF5bG9hZCxcbiAgICB9IHNhdGlzZmllcyBJbnRlZ3JhdGlvbkFjdGlvbjtcbiAgfTtcblxuICBleHBvcnQgY29uc3QgT3Blbkd1aWRlZFNlbGxpbmcgPSAocGF5bG9hZDogeyBndWlkZWRTZWxsaW5nSWQ6IHN0cmluZyB9KSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6IEZsb3dBY3Rpb24uT1BFTl9HVUlERURfU0VMTElORyxcbiAgICAgIHBheWxvYWQsXG4gICAgfSBzYXRpc2ZpZXMgSW50ZWdyYXRpb25BY3Rpb247XG4gIH07XG5cbiAgZXhwb3J0IGNvbnN0IENsb3NlR3VpZGVkU2VsbGluZyA9IChwYXlsb2FkPzogeyBrZWVwU3RhdGU/OiBib29sZWFuIH0pID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogRmxvd0FjdGlvbi5DTE9TRV9HVUlERURfU0VMTElORyxcbiAgICAgIHBheWxvYWQsXG4gICAgfSBzYXRpc2ZpZXMgSW50ZWdyYXRpb25BY3Rpb247XG4gIH07XG5cbiAgZXhwb3J0IGNvbnN0IFN1Ym1pdEd1aWRlZFNlbGxpbmcgPSAocGF5bG9hZDogeyByZXN1bHQ6IFJlY29yZDxzdHJpbmcsIGFueT4gfSkgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiBGbG93QWN0aW9uLlNVQk1JVF9HVUlERURfU0VMTElORyxcbiAgICAgIHBheWxvYWQsXG4gICAgfSBzYXRpc2ZpZXMgSW50ZWdyYXRpb25BY3Rpb247XG4gIH07XG5cbiAgZXhwb3J0IGNvbnN0IE9wZW5EaWFsb2cgPSAoZGlhbG9nOiBzdHJpbmcpID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogRmxvd0FjdGlvbi5PUEVOX0RJQUxPRyxcbiAgICAgIHBheWxvYWQ6IHsgZGlhbG9nIH0sXG4gICAgfSBzYXRpc2ZpZXMgSW50ZWdyYXRpb25BY3Rpb247XG4gIH07XG59XG5cbnR5cGUgQSA9IFJldHVyblR5cGU8dHlwZW9mIEZsb3dBY3Rpb24uT3BlbkRpYWxvZz5bJ3BheWxvYWQnXTtcblxuZXhwb3J0IG5hbWVzcGFjZSBDbXNBY3Rpb24ge1xuICBleHBvcnQgY29uc3QgR09fVE9fUEFHRSA9ICdbQ01TXV9HT19UT19QQUdFJztcbiAgZXhwb3J0IGNvbnN0IFVQREFURV9DVVNUT01JWkFUSU9OID0gJ1tDTVNdX1VQREFURV9DVVNUT01JWkFUSU9OJztcbiAgZXhwb3J0IGNvbnN0IEVNSVRfQ1VTVE9NSVpBVElPTl9DSEFOR0VTID0gJ1tDTVNdX0VNSVRfQ1VTVE9NSVpBVElPTl9DSEFOR0VTJztcbiAgZXhwb3J0IGNvbnN0IFNIT1dfT1ZFUkxBWSA9ICdbQ01TXV9TSE9XX09WRVJMQVknO1xuICBleHBvcnQgY29uc3QgSElERV9PVkVSTEFZID0gJ1tDTVNdX0hJREVfT1ZFUkxBWSc7XG4gIGV4cG9ydCBjb25zdCBISURFX0FMTF9PVkVSTEFZUyA9ICdbQ01TXV9ISURFX0FMTF9PVkVSTEFZUyc7XG5cbiAgLyoqXG4gICAqIE5hdmlnYXRlIFVJIGRlZmluaXRpb24gdG8gYSBzcGVjaWZpYyBwYWdlXG4gICAqXG4gICAqIEBwYXJhbSBwYWdlTmFtZSBuYW1lIG9mIHRoZSBwYWdlXG4gICAqL1xuICBleHBvcnQgY29uc3QgR29Ub1BhZ2UgPSAocGFnZU5hbWU6IHN0cmluZykgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiBHT19UT19QQUdFLFxuICAgICAgcGF5bG9hZDogeyBwYWdlTmFtZSB9LFxuICAgIH0gc2F0aXNmaWVzIEludGVncmF0aW9uQWN0aW9uO1xuICB9O1xuXG4gIC8qKlxuICAgKiBVcGRhdGUgVUkgZGVmaW5pdGlvbiBjdXN0b21pemF0aW9uIHN0YXRlXG4gICAqXG4gICAqIEBwYXJhbSBwYWdlTmFtZSBuYW1lIG9mIHRoZSBwYWdlXG4gICAqL1xuICBleHBvcnQgY29uc3QgVXBkYXRlQ3VzdG9taXphdGlvbiA9ICh2YWx1ZTogYW55KSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6IFVQREFURV9DVVNUT01JWkFUSU9OLFxuICAgICAgcGF5bG9hZDogeyB2YWx1ZSB9LFxuICAgIH0gc2F0aXNmaWVzIEludGVncmF0aW9uQWN0aW9uO1xuICB9O1xuXG4gIC8qKlxuICAgKiBFbWl0IGN1c3RvbWl6YXRpb24gcGFnZSBjaGFuZ2VzXG4gICAqXG4gICAqIEBwYXJhbSBjaGFuZ2VzIC0gb2JqZWN0IHdpdGggY3VzdG9taXphdGlvbiBwYWdlIGNoYW5nZXNcbiAgICovXG4gIGV4cG9ydCBjb25zdCBFbWl0Q3VzdG9taXphdGlvbkNoYW5nZXMgPSAoY2hhbmdlczogQ3VzdG9taXphdGlvbkNoYW5nZXMpID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogRU1JVF9DVVNUT01JWkFUSU9OX0NIQU5HRVMsXG4gICAgICBwYXlsb2FkOiB7IGNoYW5nZXMgfSxcbiAgICB9IHNhdGlzZmllcyBJbnRlZ3JhdGlvbkFjdGlvbjtcbiAgfTtcblxuICAvKipcbiAgICogU2hvdyBhbiBPdmVybGF5IG9uIHRoZSBzZWxlY3RlZCBwYWdlXG4gICAqXG4gICAqIEBwYXJhbSBuYW1lIC0gbmFtZSBvZiB0aGUgb3ZlcmxheVxuICAgKiBAcmV0dXJucyB2b2lkXG4gICAqL1xuICBleHBvcnQgY29uc3QgU2hvd092ZXJsYXkgPSAobmFtZTogc3RyaW5nKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6IFNIT1dfT1ZFUkxBWSxcbiAgICAgIHBheWxvYWQ6IHsgbmFtZSB9LFxuICAgIH0gc2F0aXNmaWVzIEludGVncmF0aW9uQWN0aW9uO1xuICB9O1xuXG4gIC8qKlxuICAgKiBIaWRlIGFuIE92ZXJsYXkgb24gdGhlIHNlbGVjdGVkIHBhZ2VcbiAgICpcbiAgICogQHBhcmFtIG5hbWUgLSBuYW1lIG9mIHRoZSBvdmVybGF5XG4gICAqIEByZXR1cm5zIHZvaWRcbiAgICovXG4gIGV4cG9ydCBjb25zdCBIaWRlT3ZlcmxheSA9IChuYW1lOiBzdHJpbmcpID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogSElERV9PVkVSTEFZLFxuICAgICAgcGF5bG9hZDogeyBuYW1lIH0sXG4gICAgfSBzYXRpc2ZpZXMgSW50ZWdyYXRpb25BY3Rpb247XG4gIH07XG5cbiAgLyoqXG4gICAqIEhpZGUgYWxsIE92ZXJsYXlzIG9uIHRoZSBzZWxlY3RlZCBwYWdlXG4gICAqXG4gICAqIEByZXR1cm5zIHZvaWRcbiAgICovXG4gIGV4cG9ydCBjb25zdCBIaWRlQWxsT3ZlcmxheXMgPSAoKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6IEhJREVfQUxMX09WRVJMQVlTLFxuICAgIH0gc2F0aXNmaWVzIEludGVncmF0aW9uQWN0aW9uO1xuICB9O1xufVxuIl19
|
151
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY21zLmFjdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9jbXMvY21zLmFjdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsTUFBTSxLQUFXLFVBQVUsQ0F5RzFCO0FBekdELFdBQWlCLFVBQVU7SUFDWixpQ0FBc0IsR0FBRywwQkFBMEIsQ0FBQztJQUNwRCw2QkFBa0IsR0FBRyxzQkFBc0IsQ0FBQztJQUM1QywyQkFBZ0IsR0FBRyxvQkFBb0IsQ0FBQztJQUN4QyxtQ0FBd0IsR0FBRyw0QkFBNEIsQ0FBQztJQUN4RCx5Q0FBOEIsR0FBRyxrQ0FBa0MsQ0FBQztJQUNwRSwyQ0FBZ0MsR0FBRyxvQ0FBb0MsQ0FBQztJQUN4RSw0QkFBaUIsR0FBRyxxQkFBcUIsQ0FBQztJQUMxQyw2QkFBa0IsR0FBRyxzQkFBc0IsQ0FBQztJQUM1Qyw2QkFBa0IsR0FBRyxzQkFBc0IsQ0FBQztJQUM1Qyx1QkFBWSxHQUFHLHFCQUFxQixDQUFDO0lBQ3JDLHdCQUFhLEdBQUcsc0JBQXNCLENBQUM7SUFDdkMsOEJBQW1CLEdBQUcsNEJBQTRCLENBQUM7SUFDbkQsZ0NBQXFCLEdBQUcsOEJBQThCLENBQUM7SUFDdkQsK0JBQW9CLEdBQUcsNkJBQTZCLENBQUM7SUFDckQsc0JBQVcsR0FBRyxvQkFBb0IsQ0FBQztJQUVuQyxpQ0FBc0IsR0FBRyxDQUFDLEVBQ3JDLGlCQUFpQixFQUNqQixTQUFTLEdBSVYsRUFBRSxFQUFFO1FBQ0gsT0FBTztZQUNMLElBQUksRUFBRSxVQUFVLENBQUMsc0JBQXNCO1lBQ3ZDLE9BQU8sRUFBRSxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRTtTQUNkLENBQUM7SUFDaEMsQ0FBQyxDQUFDO0lBRVcsNkJBQWtCLEdBQUcsR0FBRyxFQUFFO1FBQ3JDLE9BQU87WUFDTCxJQUFJLEVBQUUsVUFBVSxDQUFDLGtCQUFrQjtTQUNSLENBQUM7SUFDaEMsQ0FBQyxDQUFDO0lBRVcsMkJBQWdCLEdBQUcsQ0FBQyxJQUFZLEVBQUUsU0FBa0IsRUFBRSxpQkFBMEIsRUFBRSxFQUFFLENBQy9GLENBQUM7UUFDQyxJQUFJLEVBQUUsVUFBVSxDQUFDLGdCQUFnQjtRQUNqQyxPQUFPLEVBQUUsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFO0tBQ3BCLENBQUMsQ0FBQztJQUVwQixrQ0FBdUIsR0FBRyxHQUFHLEVBQUUsQ0FDMUMsQ0FBQztRQUNDLElBQUksRUFBRSxVQUFVLENBQUMsd0JBQXdCO0tBQ2QsQ0FBQyxDQUFDO0lBRXBCLHVDQUE0QixHQUFHLEdBQUcsRUFBRTtRQUMvQyxPQUFPO1lBQ0wsSUFBSSxFQUFFLFVBQVUsQ0FBQyw4QkFBOEI7U0FDcEIsQ0FBQztJQUNoQyxDQUFDLENBQUM7SUFFVywwQ0FBK0IsR0FBRyxHQUFHLEVBQUU7UUFDbEQsT0FBTztZQUNMLElBQUksRUFBRSxVQUFVLENBQUMsZ0NBQWdDO1NBQ3RCLENBQUM7SUFDaEMsQ0FBQyxDQUFDO0lBRVcsNEJBQWlCLEdBQUcsR0FBRyxFQUFFO1FBQ3BDLE9BQU87WUFDTCxJQUFJLEVBQUUsVUFBVSxDQUFDLFlBQVk7U0FDRixDQUFDO0lBQ2hDLENBQUMsQ0FBQztJQUVXLDZCQUFrQixHQUFHLEdBQUcsRUFBRTtRQUNyQyxPQUFPO1lBQ0wsSUFBSSxFQUFFLFVBQVUsQ0FBQyxhQUFhO1NBQ0gsQ0FBQztJQUNoQyxDQUFDLENBQUM7SUFFVyw2QkFBa0IsR0FBRyxDQUFDLE9BQXVCLEVBQUUsRUFBRTtRQUM1RCxPQUFPO1lBQ0wsSUFBSSxFQUFFLFVBQVUsQ0FBQyxrQkFBa0I7WUFDbkMsT0FBTztTQUNvQixDQUFDO0lBQ2hDLENBQUMsQ0FBQztJQUVXLDRCQUFpQixHQUFHLENBQUMsT0FBb0MsRUFBRSxFQUFFO1FBQ3hFLE9BQU87WUFDTCxJQUFJLEVBQUUsVUFBVSxDQUFDLG1CQUFtQjtZQUNwQyxPQUFPO1NBQ29CLENBQUM7SUFDaEMsQ0FBQyxDQUFDO0lBRVcsNkJBQWtCLEdBQUcsQ0FBQyxPQUFpQyxFQUFFLEVBQUU7UUFDdEUsT0FBTztZQUNMLElBQUksRUFBRSxVQUFVLENBQUMsb0JBQW9CO1lBQ3JDLE9BQU87U0FDb0IsQ0FBQztJQUNoQyxDQUFDLENBQUM7SUFFVyw4QkFBbUIsR0FBRyxDQUFDLE9BQXdDLEVBQUUsRUFBRTtRQUM5RSxPQUFPO1lBQ0wsSUFBSSxFQUFFLFVBQVUsQ0FBQyxxQkFBcUI7WUFDdEMsT0FBTztTQUNvQixDQUFDO0lBQ2hDLENBQUMsQ0FBQztJQUVXLHFCQUFVLEdBQUcsQ0FBQyxNQUFjLEVBQUUsRUFBRTtRQUMzQyxPQUFPO1lBQ0wsSUFBSSxFQUFFLFVBQVUsQ0FBQyxXQUFXO1lBQzVCLE9BQU8sRUFBRSxFQUFFLE1BQU0sRUFBRTtTQUNRLENBQUM7SUFDaEMsQ0FBQyxDQUFDO0FBQ0osQ0FBQyxFQXpHZ0IsVUFBVSxLQUFWLFVBQVUsUUF5RzFCO0FBSUQsTUFBTSxLQUFXLFNBQVMsQ0FtRXpCO0FBbkVELFdBQWlCLFNBQVM7SUFDWCxvQkFBVSxHQUFHLGtCQUFrQixDQUFDO0lBQ2hDLDhCQUFvQixHQUFHLDRCQUE0QixDQUFDO0lBQ3BELHNCQUFZLEdBQUcsb0JBQW9CLENBQUM7SUFDcEMsc0JBQVksR0FBRyxvQkFBb0IsQ0FBQztJQUNwQywyQkFBaUIsR0FBRyx5QkFBeUIsQ0FBQztJQUUzRDs7OztPQUlHO0lBQ1Usa0JBQVEsR0FBRyxDQUFDLFFBQWdCLEVBQUUsRUFBRTtRQUMzQyxPQUFPO1lBQ0wsSUFBSSxFQUFFLFVBQUEsVUFBVTtZQUNoQixPQUFPLEVBQUUsRUFBRSxRQUFRLEVBQUU7U0FDTSxDQUFDO0lBQ2hDLENBQUMsQ0FBQztJQUVGOzs7O09BSUc7SUFDVSw2QkFBbUIsR0FBRyxDQUFDLEtBQVUsRUFBRSxFQUFFO1FBQ2hELE9BQU87WUFDTCxJQUFJLEVBQUUsVUFBQSxvQkFBb0I7WUFDMUIsT0FBTyxFQUFFLEVBQUUsS0FBSyxFQUFFO1NBQ1MsQ0FBQztJQUNoQyxDQUFDLENBQUM7SUFFRjs7Ozs7T0FLRztJQUNVLHFCQUFXLEdBQUcsQ0FBQyxJQUFZLEVBQUUsRUFBRTtRQUMxQyxPQUFPO1lBQ0wsSUFBSSxFQUFFLFVBQUEsWUFBWTtZQUNsQixPQUFPLEVBQUUsRUFBRSxJQUFJLEVBQUU7U0FDVSxDQUFDO0lBQ2hDLENBQUMsQ0FBQztJQUVGOzs7OztPQUtHO0lBQ1UscUJBQVcsR0FBRyxDQUFDLElBQVksRUFBRSxFQUFFO1FBQzFDLE9BQU87WUFDTCxJQUFJLEVBQUUsVUFBQSxZQUFZO1lBQ2xCLE9BQU8sRUFBRSxFQUFFLElBQUksRUFBRTtTQUNVLENBQUM7SUFDaEMsQ0FBQyxDQUFDO0lBRUY7Ozs7T0FJRztJQUNVLHlCQUFlLEdBQUcsR0FBRyxFQUFFO1FBQ2xDLE9BQU87WUFDTCxJQUFJLEVBQUUsVUFBQSxpQkFBaUI7U0FDSSxDQUFDO0lBQ2hDLENBQUMsQ0FBQztBQUNKLENBQUMsRUFuRWdCLFNBQVMsS0FBVCxTQUFTLFFBbUV6QiIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1uYW1lc3BhY2UgKi9cbmltcG9ydCB7IEludGVncmF0aW9uQWN0aW9uIH0gZnJvbSAnQHZlbG9jZWFwcHMvc2RrL2NvcmUnO1xuXG5leHBvcnQgbmFtZXNwYWNlIEZsb3dBY3Rpb24ge1xuICBleHBvcnQgY29uc3QgRkxPV19DT05GSUdVUkVfUFJPRFVDVCA9ICdbRkxPV11fQ09ORklHVVJFX1BST0RVQ1QnO1xuICBleHBvcnQgY29uc3QgRkxPV19OQVZJR0FURV9CQUNLID0gJ1tGTE9XXV9OQVZJR0FURV9CQUNLJztcbiAgZXhwb3J0IGNvbnN0IEZMT1dfTkFWSUdBVEVfVE8gPSAnW0ZMT1ddX05BVklHQVRFX1RPJztcbiAgZXhwb3J0IGNvbnN0IEZMT1dfTkFWSUdBVEVfVE9fQ0FUQUxPRyA9ICdbRkxPV11fTkFWSUdBVEVfVE9fQ0FUQUxPRyc7XG4gIGV4cG9ydCBjb25zdCBGTE9XX05BVklHQVRFX1RPX1NIT1BQSU5HX0NBUlQgPSAnW0ZMT1ddX05BVklHQVRFX1RPX1NIT1BQSU5HX0NBUlQnO1xuICBleHBvcnQgY29uc3QgRkxPV19BUFBMWV9QUk9EVUNUX0NPTkZJR1VSQVRJT04gPSAnW0ZMT1ddX0FQUExZX1BST0RVQ1RfQ09ORklHVVJBVElPTic7XG4gIGV4cG9ydCBjb25zdCBGTE9XX09QRU5fRE9DX0dFTiA9ICdbRkxPV11fT1BFTl9ET0NfR0VOJztcbiAgZXhwb3J0IGNvbnN0IEZMT1dfQ0xPU0VfRE9DX0dFTiA9ICdbRkxPV11fQ0xPU0VfRE9DX0dFTic7XG4gIGV4cG9ydCBjb25zdCBGTE9XX1NXSVRDSF9PQkpFQ1QgPSAnW0ZMT1ddX1NXSVRDSF9PQkpFQ1QnO1xuICBleHBvcnQgY29uc3QgUkVNT1RFX0FQUExZID0gJ1tGTE9XXV9SRU1PVEVfQVBQTFknO1xuICBleHBvcnQgY29uc3QgUkVNT1RFX0NBTkNFTCA9ICdbRkxPV11fUkVNT1RFX0NBTkNFTCc7XG4gIGV4cG9ydCBjb25zdCBPUEVOX0dVSURFRF9TRUxMSU5HID0gJ1tGTE9XXV9PUEVOX0dVSURFRF9TRUxMSU5HJztcbiAgZXhwb3J0IGNvbnN0IFNVQk1JVF9HVUlERURfU0VMTElORyA9ICdbRkxPV11fU1VCTUlUX0dVSURFRF9TRUxMSU5HJztcbiAgZXhwb3J0IGNvbnN0IENMT1NFX0dVSURFRF9TRUxMSU5HID0gJ1tGTE9XXV9DTE9TRV9HVUlERURfU0VMTElORyc7XG4gIGV4cG9ydCBjb25zdCBPUEVOX0RJQUxPRyA9ICdbRkxPV11fT1BFTl9ESUFMT0cnO1xuXG4gIGV4cG9ydCBjb25zdCBDb25maWd1cmVQcm9kdWN0QWN0aW9uID0gKHtcbiAgICB0cmFuc2FjdGlvbkl0ZW1JZCxcbiAgICBwcm9kdWN0SWQsXG4gIH06IHtcbiAgICB0cmFuc2FjdGlvbkl0ZW1JZD86IHN0cmluZztcbiAgICBwcm9kdWN0SWQ/OiBzdHJpbmc7XG4gIH0pID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogRmxvd0FjdGlvbi5GTE9XX0NPTkZJR1VSRV9QUk9EVUNULFxuICAgICAgcGF5bG9hZDogeyB0cmFuc2FjdGlvbkl0ZW1JZCwgcHJvZHVjdElkIH0sXG4gICAgfSBzYXRpc2ZpZXMgSW50ZWdyYXRpb25BY3Rpb247XG4gIH07XG5cbiAgZXhwb3J0IGNvbnN0IE5hdmlnYXRlQmFja0FjdGlvbiA9ICgpID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogRmxvd0FjdGlvbi5GTE9XX05BVklHQVRFX0JBQ0ssXG4gICAgfSBzYXRpc2ZpZXMgSW50ZWdyYXRpb25BY3Rpb247XG4gIH07XG5cbiAgZXhwb3J0IGNvbnN0IE5hdmlnYXRlVG9BY3Rpb24gPSAocGF0aDogc3RyaW5nLCBwcm9kdWN0SWQ/OiBzdHJpbmcsIHRyYW5zYWN0aW9uSXRlbUlkPzogc3RyaW5nKSA9PlxuICAgICh7XG4gICAgICB0eXBlOiBGbG93QWN0aW9uLkZMT1dfTkFWSUdBVEVfVE8sXG4gICAgICBwYXlsb2FkOiB7IHBhdGgsIHByb2R1Y3RJZCwgdHJhbnNhY3Rpb25JdGVtSWQgfSxcbiAgICB9IHNhdGlzZmllcyBJbnRlZ3JhdGlvbkFjdGlvbik7XG5cbiAgZXhwb3J0IGNvbnN0IE5hdmlnYXRlVG9DYXRhbG9nQWN0aW9uID0gKCkgPT5cbiAgICAoe1xuICAgICAgdHlwZTogRmxvd0FjdGlvbi5GTE9XX05BVklHQVRFX1RPX0NBVEFMT0csXG4gICAgfSBzYXRpc2ZpZXMgSW50ZWdyYXRpb25BY3Rpb24pO1xuXG4gIGV4cG9ydCBjb25zdCBOYXZpZ2F0ZVRvU2hvcHBpbmdDYXJ0QWN0aW9uID0gKCkgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiBGbG93QWN0aW9uLkZMT1dfTkFWSUdBVEVfVE9fU0hPUFBJTkdfQ0FSVCxcbiAgICB9IHNhdGlzZmllcyBJbnRlZ3JhdGlvbkFjdGlvbjtcbiAgfTtcblxuICBleHBvcnQgY29uc3QgQXBwbHlQcm9kdWN0Q29uZmlndXJhdGlvbkFjdGlvbiA9ICgpID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogRmxvd0FjdGlvbi5GTE9XX0FQUExZX1BST0RVQ1RfQ09ORklHVVJBVElPTixcbiAgICB9IHNhdGlzZmllcyBJbnRlZ3JhdGlvbkFjdGlvbjtcbiAgfTtcblxuICBleHBvcnQgY29uc3QgUmVtb3RlQXBwbHlBY3Rpb24gPSAoKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6IEZsb3dBY3Rpb24uUkVNT1RFX0FQUExZLFxuICAgIH0gc2F0aXNmaWVzIEludGVncmF0aW9uQWN0aW9uO1xuICB9O1xuXG4gIGV4cG9ydCBjb25zdCBSZW1vdGVDYW5jZWxBY3Rpb24gPSAoKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6IEZsb3dBY3Rpb24uUkVNT1RFX0NBTkNFTCxcbiAgICB9IHNhdGlzZmllcyBJbnRlZ3JhdGlvbkFjdGlvbjtcbiAgfTtcblxuICBleHBvcnQgY29uc3QgU3dpdGNoT2JqZWN0QWN0aW9uID0gKHBheWxvYWQ6IHsgaWQ6IHN0cmluZyB9KSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6IEZsb3dBY3Rpb24uRkxPV19TV0lUQ0hfT0JKRUNULFxuICAgICAgcGF5bG9hZCxcbiAgICB9IHNhdGlzZmllcyBJbnRlZ3JhdGlvbkFjdGlvbjtcbiAgfTtcblxuICBleHBvcnQgY29uc3QgT3Blbkd1aWRlZFNlbGxpbmcgPSAocGF5bG9hZDogeyBndWlkZWRTZWxsaW5nSWQ6IHN0cmluZyB9KSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6IEZsb3dBY3Rpb24uT1BFTl9HVUlERURfU0VMTElORyxcbiAgICAgIHBheWxvYWQsXG4gICAgfSBzYXRpc2ZpZXMgSW50ZWdyYXRpb25BY3Rpb247XG4gIH07XG5cbiAgZXhwb3J0IGNvbnN0IENsb3NlR3VpZGVkU2VsbGluZyA9IChwYXlsb2FkPzogeyBrZWVwU3RhdGU/OiBib29sZWFuIH0pID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogRmxvd0FjdGlvbi5DTE9TRV9HVUlERURfU0VMTElORyxcbiAgICAgIHBheWxvYWQsXG4gICAgfSBzYXRpc2ZpZXMgSW50ZWdyYXRpb25BY3Rpb247XG4gIH07XG5cbiAgZXhwb3J0IGNvbnN0IFN1Ym1pdEd1aWRlZFNlbGxpbmcgPSAocGF5bG9hZDogeyByZXN1bHQ6IFJlY29yZDxzdHJpbmcsIGFueT4gfSkgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiBGbG93QWN0aW9uLlNVQk1JVF9HVUlERURfU0VMTElORyxcbiAgICAgIHBheWxvYWQsXG4gICAgfSBzYXRpc2ZpZXMgSW50ZWdyYXRpb25BY3Rpb247XG4gIH07XG5cbiAgZXhwb3J0IGNvbnN0IE9wZW5EaWFsb2cgPSAoZGlhbG9nOiBzdHJpbmcpID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogRmxvd0FjdGlvbi5PUEVOX0RJQUxPRyxcbiAgICAgIHBheWxvYWQ6IHsgZGlhbG9nIH0sXG4gICAgfSBzYXRpc2ZpZXMgSW50ZWdyYXRpb25BY3Rpb247XG4gIH07XG59XG5cbnR5cGUgQSA9IFJldHVyblR5cGU8dHlwZW9mIEZsb3dBY3Rpb24uT3BlbkRpYWxvZz5bJ3BheWxvYWQnXTtcblxuZXhwb3J0IG5hbWVzcGFjZSBDbXNBY3Rpb24ge1xuICBleHBvcnQgY29uc3QgR09fVE9fUEFHRSA9ICdbQ01TXV9HT19UT19QQUdFJztcbiAgZXhwb3J0IGNvbnN0IFVQREFURV9DVVNUT01JWkFUSU9OID0gJ1tDTVNdX1VQREFURV9DVVNUT01JWkFUSU9OJztcbiAgZXhwb3J0IGNvbnN0IFNIT1dfT1ZFUkxBWSA9ICdbQ01TXV9TSE9XX09WRVJMQVknO1xuICBleHBvcnQgY29uc3QgSElERV9PVkVSTEFZID0gJ1tDTVNdX0hJREVfT1ZFUkxBWSc7XG4gIGV4cG9ydCBjb25zdCBISURFX0FMTF9PVkVSTEFZUyA9ICdbQ01TXV9ISURFX0FMTF9PVkVSTEFZUyc7XG5cbiAgLyoqXG4gICAqIE5hdmlnYXRlIFVJIGRlZmluaXRpb24gdG8gYSBzcGVjaWZpYyBwYWdlXG4gICAqXG4gICAqIEBwYXJhbSBwYWdlTmFtZSBuYW1lIG9mIHRoZSBwYWdlXG4gICAqL1xuICBleHBvcnQgY29uc3QgR29Ub1BhZ2UgPSAocGFnZU5hbWU6IHN0cmluZykgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiBHT19UT19QQUdFLFxuICAgICAgcGF5bG9hZDogeyBwYWdlTmFtZSB9LFxuICAgIH0gc2F0aXNmaWVzIEludGVncmF0aW9uQWN0aW9uO1xuICB9O1xuXG4gIC8qKlxuICAgKiBVcGRhdGUgVUkgZGVmaW5pdGlvbiBjdXN0b21pemF0aW9uIHN0YXRlXG4gICAqXG4gICAqIEBwYXJhbSBwYWdlTmFtZSBuYW1lIG9mIHRoZSBwYWdlXG4gICAqL1xuICBleHBvcnQgY29uc3QgVXBkYXRlQ3VzdG9taXphdGlvbiA9ICh2YWx1ZTogYW55KSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6IFVQREFURV9DVVNUT01JWkFUSU9OLFxuICAgICAgcGF5bG9hZDogeyB2YWx1ZSB9LFxuICAgIH0gc2F0aXNmaWVzIEludGVncmF0aW9uQWN0aW9uO1xuICB9O1xuXG4gIC8qKlxuICAgKiBTaG93IGFuIE92ZXJsYXkgb24gdGhlIHNlbGVjdGVkIHBhZ2VcbiAgICpcbiAgICogQHBhcmFtIG5hbWUgLSBuYW1lIG9mIHRoZSBvdmVybGF5XG4gICAqIEByZXR1cm5zIHZvaWRcbiAgICovXG4gIGV4cG9ydCBjb25zdCBTaG93T3ZlcmxheSA9IChuYW1lOiBzdHJpbmcpID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogU0hPV19PVkVSTEFZLFxuICAgICAgcGF5bG9hZDogeyBuYW1lIH0sXG4gICAgfSBzYXRpc2ZpZXMgSW50ZWdyYXRpb25BY3Rpb247XG4gIH07XG5cbiAgLyoqXG4gICAqIEhpZGUgYW4gT3ZlcmxheSBvbiB0aGUgc2VsZWN0ZWQgcGFnZVxuICAgKlxuICAgKiBAcGFyYW0gbmFtZSAtIG5hbWUgb2YgdGhlIG92ZXJsYXlcbiAgICogQHJldHVybnMgdm9pZFxuICAgKi9cbiAgZXhwb3J0IGNvbnN0IEhpZGVPdmVybGF5ID0gKG5hbWU6IHN0cmluZykgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiBISURFX09WRVJMQVksXG4gICAgICBwYXlsb2FkOiB7IG5hbWUgfSxcbiAgICB9IHNhdGlzZmllcyBJbnRlZ3JhdGlvbkFjdGlvbjtcbiAgfTtcblxuICAvKipcbiAgICogSGlkZSBhbGwgT3ZlcmxheXMgb24gdGhlIHNlbGVjdGVkIHBhZ2VcbiAgICpcbiAgICogQHJldHVybnMgdm9pZFxuICAgKi9cbiAgZXhwb3J0IGNvbnN0IEhpZGVBbGxPdmVybGF5cyA9ICgpID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogSElERV9BTExfT1ZFUkxBWVMsXG4gICAgfSBzYXRpc2ZpZXMgSW50ZWdyYXRpb25BY3Rpb247XG4gIH07XG59XG4iXX0=
|
@@ -40,8 +40,8 @@ export class FlowStateService {
|
|
40
40
|
this.cleanup$ = new Subject();
|
41
41
|
this.statefulExecutionRequest$ = this.initBufferedRequest$();
|
42
42
|
/*
|
43
|
-
In stateless mode watch
|
44
|
-
all subscriptions get their updates according to updated
|
43
|
+
In stateless mode watch State changes and call executeRequest so that
|
44
|
+
all subscriptions get their updates according to updated State
|
45
45
|
*/
|
46
46
|
this.isInitialized$()
|
47
47
|
.pipe(filter(Boolean), filter(() => !this.flowInfoService.flow.properties.stateful), switchMap(() => this.flowConfiguration.updated$), switchMap(() => this.executeRequest$({}, true)))
|
@@ -326,7 +326,7 @@ export class FlowStateService {
|
|
326
326
|
}
|
327
327
|
executeStatelessSelectors(request) {
|
328
328
|
if (!this.salesTransactionService.state) {
|
329
|
-
throw '
|
329
|
+
throw 'State is not initialized';
|
330
330
|
}
|
331
331
|
const flowState = this.salesTransactionService.state;
|
332
332
|
return EntityUtil.entries(request.selectors ?? {}).reduce((result, [key, selector]) => {
|
@@ -429,4 +429,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
|
|
429
429
|
type: Inject,
|
430
430
|
args: [FLOW_CUSTOMIZATION]
|
431
431
|
}] }]; } });
|
432
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxvdy1zdGF0ZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zZGsvY29yZS9zZXJ2aWNlcy9mbG93LXN0YXRlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSwwQkFBMEIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ25HLE9BQU8sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDakUsT0FBTyxFQUdMLDJCQUEyQixFQUMzQixVQUFVLEVBT1YsU0FBUyxFQUVULElBQUksR0FDTCxNQUFNLGtCQUFrQixDQUFDO0FBQzFCLE9BQU8sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFjLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDekUsT0FBTyxFQUNMLGVBQWUsRUFDZixNQUFNLEVBQ04sVUFBVSxFQUNWLGFBQWEsRUFDYixZQUFZLEVBQ1osTUFBTSxFQUNOLFFBQVEsRUFDUixRQUFRLEVBQ1IsR0FBRyxFQUNILElBQUksRUFFSixFQUFFLEVBQ0YsS0FBSyxFQUNMLE9BQU8sRUFDUCxTQUFTLEVBQ1QsSUFBSSxFQUNKLEdBQUcsRUFDSCxVQUFVLEdBQ1gsTUFBTSxNQUFNLENBQUM7QUFDZCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDdEQsT0FBTyxFQUFxQixrQkFBa0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRTFGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7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LGdCQUFnQjsyRkFBaEIsZ0JBQWdCO2tCQUQ1QixVQUFVOzswQkEyQk4sUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGbG93U3RhdGVBcGlTZXJ2aWNlIH0gZnJvbSAnQHZlbG9jZWFwcHMvYXBpJztcbmltcG9ydCB7IENvbmZpZ3VyYXRpb25Qcm9jZXNzb3JzQXBpU2VydmljZSwgU2FsZXNUcmFuc2FjdGlvbkFwaVNlcnZpY2UgfSBmcm9tICdAdmVsb2NlYXBwcy9hcGkvdjInO1xuaW1wb3J0IHsgVG9hc3RTZXJ2aWNlLCBUb2FzdFR5cGUgfSBmcm9tICdAdmVsb2NlYXBwcy9jb21wb25lbnRzJztcbmltcG9ydCB7XG4gIENvbmZpZ3VyYXRpb25Qcm9jZXNzb3IsXG4gIENvbmZpZ3VyYXRpb25Qcm9jZXNzb3JTY3JpcHRGbixcbiAgQ29uZmlndXJhdGlvblByb2Nlc3NvclR5cGVzLFxuICBFbnRpdHlVdGlsLFxuICBGbG93U3RhdGUsXG4gIEZsb3dTdGF0ZUV4ZWN1dGFibGVEVE8sXG4gIEZsb3dTdGF0ZUV4ZWN1dGlvblJlcXVlc3QsXG4gIEZsb3dTdGF0ZUV4ZWN1dGlvblJlcXVlc3REVE8sXG4gIEZsb3dTdGF0ZUV4ZWN1dGlvblJlc3VsdCxcbiAgRmxvd1N0YXRlU2VsZWN0b3JSZXNwb25zZSxcbiAgaXNEZWZpbmVkLFxuICBVSVRlbXBsYXRlVHlwZSxcbiAgVVVJRCxcbn0gZnJvbSAnQHZlbG9jZWFwcHMvY29yZSc7XG5pbXBvcnQgeyBhc3NpZ24sIGNsb25lRGVlcCwgRGljdGlvbmFyeSwgZmxhdHRlbiwgaXNFcXVhbCB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQge1xuICBCZWhhdmlvclN1YmplY3QsXG4gIGJ1ZmZlcixcbiAgY2F0Y2hFcnJvcixcbiAgY29tYmluZUxhdGVzdCxcbiAgZGVib3VuY2VUaW1lLFxuICBmaWx0ZXIsXG4gIGZpbmFsaXplLFxuICBmb3JrSm9pbixcbiAgbWFwLFxuICBub29wLFxuICBPYnNlcnZhYmxlLFxuICBvZixcbiAgc2hhcmUsXG4gIFN1YmplY3QsXG4gIHN3aXRjaE1hcCxcbiAgdGFrZSxcbiAgdGFwLFxuICB0aHJvd0Vycm9yLFxufSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEZsb3dDb25maWd1cmF0aW9uU2VydmljZSB9IGZyb20gJy4uL21vZHVsZXMnO1xuaW1wb3J0IHsgRmxvd0N1c3RvbWl6YXRpb24sIEZMT1dfQ1VTVE9NSVpBVElPTiB9IGZyb20gJy4uL3R5cGVzL2Zsb3ctY3VzdG9taXphdGlvbi50eXBlcyc7XG5pbXBvcnQgeyBGbG93U3RhdGVTdWJzY3JpcHRpb25PcHRpb25zLCBGbG93U3RvcmUgfSBmcm9tICcuLi90eXBlcy9mbG93LXN0YXRlLnR5cGVzJztcbmltcG9ydCB7IEZsb3dJbmZvU2VydmljZSB9IGZyb20gJy4vZmxvdy1pbmZvLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2FsZXNUcmFuc2FjdGlvblNlcnZpY2UgfSBmcm9tICcuL3NhbGVzLXRyYW5zYWN0aW9uLnNlcnZpY2UnO1xuXG50eXBlIFByb2Nlc3NvcnNNYXAgPSBQYXJ0aWFsPHtcbiAgW293bmVySWQ6IHN0cmluZ106IHtcbiAgICBbYXBpTmFtZTogc3RyaW5nXTogQ29uZmlndXJhdGlvblByb2Nlc3NvcjtcbiAgfTtcbn0+O1xuXG50eXBlIFN1YnNjcmlwdGlvbiA9IHtcbiAgcmVxdWVzdDogRmxvd1N0YXRlRXhlY3V0aW9uUmVxdWVzdERUTztcbiAgZGF0YSQ6IEJlaGF2aW9yU3ViamVjdDx1bmtub3duPjtcbn07XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBGbG93U3RhdGVTZXJ2aWNlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBOT1RfSU5JVElBTElaRUQgPSBTeW1ib2woKTtcbiAgcHJpdmF0ZSByZWFkb25seSBFWEVDVVRJT05fQlVGRkVSX1RJTUUgPSAxMDA7XG5cbiAgcHJpdmF0ZSBleGVjdXRlZEZ1bmN0aW9uczogRGljdGlvbmFyeTxDb25maWd1cmF0aW9uUHJvY2Vzc29yU2NyaXB0Rm4+ID0ge307XG4gIHByaXZhdGUgc3RhdGVJZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZyB8IG51bGw+KG51bGwpO1xuICBwcml2YXRlIGluaXRpYWxTdGF0ZWZ1bERhdGE6IERpY3Rpb25hcnk8dW5rbm93bj4gPSB7fTtcbiAgcHJpdmF0ZSB0cmFja2VkU3RhdGVmdWxDaGFuZ2VzTWFwOiBNYXA8c3RyaW5nLCBib29sZWFuPiA9IG5ldyBNYXAoKTtcbiAgcHJpdmF0ZSBwcm9jZXNzb3JzOiBQcm9jZXNzb3JzTWFwID0ge307XG4gIHByaXZhdGUgc3Vic2NyaXB0aW9uczogUmVjb3JkPHN0cmluZywgU3Vic2NyaXB0aW9uPiA9IHt9O1xuICBwcml2YXRlIGZsb3dTdG9yZTogRmxvd1N0b3JlID0ge307XG5cbiAgcHJpdmF0ZSBleGVjdXRpb25JblByb2dyZXNzJCA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xuICBwcml2YXRlIHN0YXRlZnVsUmVxdWVzdFN0cmVhbSQgPSBuZXcgU3ViamVjdDxGbG93U3RhdGVFeGVjdXRpb25SZXF1ZXN0RFRPPigpO1xuICBwcml2YXRlIHN0YXRlZnVsRXhlY3V0aW9uUmVxdWVzdCQ6IE9ic2VydmFibGU8Rmxvd1N0YXRlRXhlY3V0aW9uUmVzdWx0PjtcblxuICBwcml2YXRlIGNsZWFudXAkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGZsb3dDb25maWd1cmF0aW9uOiBGbG93Q29uZmlndXJhdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBmbG93SW5mb1NlcnZpY2U6IEZsb3dJbmZvU2VydmljZSxcbiAgICBwcml2YXRlIGZsb3dTdGF0ZUFwaVNlcnZpY2U6IEZsb3dTdGF0ZUFwaVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBwcm9jZXNzb3JzQXBpU2VydmljZTogQ29uZmlndXJhdGlvblByb2Nlc3NvcnNBcGlTZXJ2aWNlLFxuICAgIHByaXZhdGUgc2FsZXNUcmFuc2FjdGlvbkFwaVNlcnZpY2U6IFNhbGVzVHJhbnNhY3Rpb25BcGlTZXJ2aWNlLFxuICAgIHByaXZhdGUgc2FsZXNUcmFuc2FjdGlvblNlcnZpY2U6IFNhbGVzVHJhbnNhY3Rpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgdG9hc3RTZXJ2aWNlOiBUb2FzdFNlcnZpY2UsXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChGTE9XX0NVU1RPTUlaQVRJT04pIHByaXZhdGUgY3VzdG9taXphdGlvblNlcnZpY2U/OiBGbG93Q3VzdG9taXphdGlvbixcbiAgKSB7XG4gICAgdGhpcy5zdGF0ZWZ1bEV4ZWN1dGlvblJlcXVlc3QkID0gdGhpcy5pbml0QnVmZmVyZWRSZXF1ZXN0JCgpO1xuXG4gICAgLypcbiAgICAgIEluIHN0YXRlbGVzcyBtb2RlIHdhdGNoIFF1b3RlRHJhZnQgY2hhbmdlcyBhbmQgY2FsbCBleGVjdXRlUmVxdWVzdCBzbyB0aGF0XG4gICAgICBhbGwgc3Vic2NyaXB0aW9ucyBnZXQgdGhlaXIgdXBkYXRlcyBhY2NvcmRpbmcgdG8gdXBkYXRlZCBRdW90ZURyYWZ0XG4gICAgKi9cbiAgICB0aGlzLmlzSW5pdGlhbGl6ZWQkKClcbiAgICAgIC5waXBlKFxuICAgICAgICBmaWx0ZXIoQm9vbGVhbiksXG4gICAgICAgIGZpbHRlcigoKSA9PiAhdGhpcy5mbG93SW5mb1NlcnZpY2UuZmxvdy5wcm9wZXJ0aWVzLnN0YXRlZnVsKSxcbiAgICAgICAgc3dpdGNoTWFwKCgpID0+IHRoaXMuZmxvd0NvbmZpZ3VyYXRpb24udXBkYXRlZCQpLFxuICAgICAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy5leGVjdXRlUmVxdWVzdCQoe30sIHRydWUpKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHB1YmxpYyBpbml0JCgpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICBpZiAodGhpcy5mbG93SW5mb1NlcnZpY2UuZmxvdy5wcm9wZXJ0aWVzLnN0YXRlZnVsKSB7XG4gICAgICByZXR1cm4gdGhpcy5pbml0UHJvY2Vzc29ycyQoKS5waXBlKHN3aXRjaE1hcCgoKSA9PiB0aGlzLmluaXRTdGF0ZWZ1bCQoKSkpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gZm9ya0pvaW4oW3RoaXMuaW5pdFN0YXRlbGVzcyQoKSwgdGhpcy5pbml0UHJvY2Vzc29ycyQoKV0pLnBpcGUobWFwKG5vb3ApKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgcmVzZXQoKTogdm9pZCB7XG4gICAgT2JqZWN0LnZhbHVlcyh0aGlzLnN1YnNjcmlwdGlvbnMpLmZvckVhY2goKHsgZGF0YSQgfSkgPT4gZGF0YSQuY29tcGxldGUoKSk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zID0ge307XG5cbiAgICBpZiAodGhpcy5zdGF0ZUlkJC52YWx1ZSkge1xuICAgICAgdGhpcy5mbG93U3RhdGVBcGlTZXJ2aWNlLmNhbmNlbCh0aGlzLnN0YXRlSWQkLnZhbHVlKS5zdWJzY3JpYmUoKTtcbiAgICAgIHRoaXMuc3RhdGVJZCQubmV4dChudWxsKTtcbiAgICB9XG5cbiAgICB0aGlzLnByb2Nlc3NvcnMgPSB7fTtcbiAgICB0aGlzLmZsb3dTdG9yZSA9IHt9O1xuICAgIHRoaXMuY2xlYW51cCQubmV4dCgpO1xuICB9XG5cbiAgcHVibGljIGdldCBoYXNVbnNhdmVkQ2hhbmdlcygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5mbG93SW5mb1NlcnZpY2UuZmxvdy5wcm9wZXJ0aWVzLnN0YXRlZnVsXG4gICAgICA/IEFycmF5LmZyb20odGhpcy50cmFja2VkU3RhdGVmdWxDaGFuZ2VzTWFwLnZhbHVlcygpKS5zb21lKEJvb2xlYW4pXG4gICAgICA6IHRoaXMuc2FsZXNUcmFuc2FjdGlvblNlcnZpY2UuaGFzVW5zYXZlZENoYW5nZXM7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHN0YXRlSWQoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuc3RhdGVJZCQudmFsdWU7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGlzRXhlY3V0aW9uSW5Qcm9ncmVzcyQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZXhlY3V0aW9uSW5Qcm9ncmVzcyQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwdWJsaWMgaXNJbml0aWFsaXplZCQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIGNvbWJpbmVMYXRlc3QoW3RoaXMuc3RhdGVJZCQsIHRoaXMuc2FsZXNUcmFuc2FjdGlvblNlcnZpY2UuaXNJbml0aWFsaXplZCRdKS5waXBlKFxuICAgICAgbWFwKHZhbHVlcyA9PiB2YWx1ZXMuc29tZShCb29sZWFuKSksXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBpc0luaXRpYWxpemVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBCb29sZWFuKHRoaXMuc3RhdGVJZCQudmFsdWUpIHx8IHRoaXMuc2FsZXNUcmFuc2FjdGlvblNlcnZpY2UuaXNJbml0aWFsaXplZDtcbiAgfVxuXG4gIHB1YmxpYyBleGVjdXRlJChcbiAgICBzY29wZTogVUlUZW1wbGF0ZVR5cGUsXG4gICAgZXhlYzogRmxvd1N0YXRlRXhlY3V0aW9uUmVxdWVzdCxcbiAgKTogT2JzZXJ2YWJsZTxGbG93U3RhdGVFeGVjdXRpb25SZXN1bHRbJ3NlbGVjdG9ycyddPiB7XG4gICAgY29uc3QgcmVxdWVzdCA9IHRoaXMuZXhlY1RvUmVxdWVzdChzY29wZSwgZXhlYyk7XG5cbiAgICByZXR1cm4gdGhpcy5leGVjdXRlUmVxdWVzdCQocmVxdWVzdCkucGlwZShcbiAgICAgIG1hcChyZXN1bHQgPT4ge1xuICAgICAgICAvLyBLZWVwIG9ubHkgcmVxdWVzdGVkIHJlc3VsdHNcbiAgICAgICAgY29uc3QgYWN0dWFsU2VsZWN0b3JzID0gT2JqZWN0LmVudHJpZXMocmVzdWx0LnNlbGVjdG9ycykucmVkdWNlKFxuICAgICAgICAgICh0cnVuazogUmVjb3JkPHN0cmluZywgRmxvd1N0YXRlU2VsZWN0b3JSZXNwb25zZT4sIFtyZXF1ZXN0SWQsIHJlc3VsdF0pID0+IHtcbiAgICAgICAgICAgIGlmIChleGVjLnNlbGVjdG9ycz8uW3JlcXVlc3RJZF0pIHtcbiAgICAgICAgICAgICAgdHJ1bmtbcmVxdWVzdElkXSA9IHJlc3VsdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB0cnVuaztcbiAgICAgICAgICB9LFxuICAgICAgICAgIHt9LFxuICAgICAgICApO1xuXG4gICAgICAgIHJldHVybiBhY3R1YWxTZWxlY3RvcnM7XG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGRpc3BhdGNoJChzY29wZTogVUlUZW1wbGF0ZVR5cGUsIGFjdGlvbjogc3RyaW5nLCBpbnB1dERhdGE/OiB1bmtub3duKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgY29uc3QgZXhlYzogRmxvd1N0YXRlRXhlY3V0aW9uUmVxdWVzdCA9IHtcbiAgICAgIGFjdGlvbnM6IFt7IG5hbWU6IGFjdGlvbiwgaW5wdXREYXRhIH1dLFxuICAgIH07XG4gICAgY29uc3QgcmVxdWVzdCA9IHRoaXMuZXhlY1RvUmVxdWVzdChzY29wZSwgZXhlYyk7XG5cbiAgICByZXR1cm4gdGhpcy5leGVjdXRlUmVxdWVzdCQocmVxdWVzdCkucGlwZShtYXAobm9vcCkpO1xuICB9XG5cbiAgcHVibGljIHNlbGVjdCQ8UmVzcG9uc2UgPSB1bmtub3duPihcbiAgICBzY29wZTogVUlUZW1wbGF0ZVR5cGUsXG4gICAgc2VsZWN0b3JOYW1lOiBzdHJpbmcsXG4gICAgaW5wdXREYXRhPzogdW5rbm93bixcbiAgKTogT2JzZXJ2YWJsZTxGbG93U3RhdGVTZWxlY3RvclJlc3BvbnNlPFJlc3BvbnNlPj4ge1xuICAgIGNvbnN0IHJlcXVlc3RJZCA9IHRoaXMuZ2VuZXJhdGVSZXF1ZXN0SWQoc2NvcGUsIHNlbGVjdG9yTmFtZSwgaW5wdXREYXRhKTtcbiAgICBjb25zdCByZXF1ZXN0ID0gdGhpcy5leGVjVG9SZXF1ZXN0KHNjb3BlLCB7XG4gICAgICBzZWxlY3RvcnM6IHtcbiAgICAgICAgW3JlcXVlc3RJZF06IHtcbiAgICAgICAgICBuYW1lOiBzZWxlY3Rvck5hbWUsXG4gICAgICAgICAgaW5wdXREYXRhLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiB0aGlzLmV4ZWN1dGVSZXF1ZXN0JChyZXF1ZXN0KS5waXBlKFxuICAgICAgbWFwKHJlc3BvbnNlID0+IHJlc3BvbnNlLnNlbGVjdG9yc1tyZXF1ZXN0SWRdIGFzIEZsb3dTdGF0ZVNlbGVjdG9yUmVzcG9uc2U8UmVzcG9uc2U+KSxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIHN1YnNjcmliZSQ8UmVzcG9uc2UgPSB1bmtub3duPihcbiAgICBzY29wZTogVUlUZW1wbGF0ZVR5cGUsXG4gICAgc2VsZWN0b3JOYW1lOiBzdHJpbmcsXG4gICAgaW5wdXREYXRhPzogdW5rbm93bixcbiAgICBvcHRpb25zPzogRmxvd1N0YXRlU3Vic2NyaXB0aW9uT3B0aW9ucyxcbiAgKTogT2JzZXJ2YWJsZTxGbG93U3RhdGVTZWxlY3RvclJlc3BvbnNlPFJlc3BvbnNlPj4ge1xuICAgIGNvbnN0IHJlcXVlc3RJZCA9IHRoaXMuZ2VuZXJhdGVSZXF1ZXN0SWQoc2NvcGUsIHNlbGVjdG9yTmFtZSwgaW5wdXREYXRhKTtcblxuICAgIGxldCBzdWJzY3JpcHRpb24gPSB0aGlzLnN1YnNjcmlwdGlvbnNbcmVxdWVzdElkXTtcblxuICAgIGlmICghc3Vic2NyaXB0aW9uKSB7XG4gICAgICBjb25zdCByZXF1ZXN0ID0gdGhpcy5leGVjVG9SZXF1ZXN0KHNjb3BlLCB7XG4gICAgICAgIHNlbGVjdG9yczoge1xuICAgICAgICAgIFtyZXF1ZXN0SWRdOiB7XG4gICAgICAgICAgICBuYW1lOiBzZWxlY3Rvck5hbWUsXG4gICAgICAgICAgICBpbnB1dERhdGEsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuXG4gICAgICBzdWJzY3JpcHRpb24gPSB7XG4gICAgICAgIHJlcXVlc3QsXG4gICAgICAgIGRhdGEkOiBuZXcgQmVoYXZpb3JTdWJqZWN0PHVua25vd24+KHRoaXMuTk9UX0lOSVRJQUxJWkVEKSxcbiAgICAgIH07XG5cbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9uc1tyZXF1ZXN0SWRdID0gc3Vic2NyaXB0aW9uO1xuXG4gICAgICBpZiAob3B0aW9ucz8udHJhY2tlZENoYW5nZXMpIHtcbiAgICAgICAgdGhpcy50cmFja2VkU3RhdGVmdWxDaGFuZ2VzTWFwLnNldChyZXF1ZXN0SWQsIGZhbHNlKTtcbiAgICAgIH1cblxuICAgICAgaWYgKCFvcHRpb25zPy5jb2xkKSB7XG4gICAgICAgIHRoaXMuZXhlY3V0ZVJlcXVlc3QkKHJlcXVlc3QpLnN1YnNjcmliZSgpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBzdWJzY3JpcHRpb24uZGF0YSQucGlwZShcbiAgICAgIGZpbHRlcihkYXRhID0+IGRhdGEgIT0gdGhpcy5OT1RfSU5JVElBTElaRUQpLFxuICAgICAgbWFwKGRhdGEgPT4gZGF0YSBhcyBGbG93U3RhdGVTZWxlY3RvclJlc3BvbnNlPFJlc3BvbnNlPiksXG4gICAgICBmaW5hbGl6ZSgoKSA9PiB7XG4gICAgICAgIGlmICghdGhpcy5zdWJzY3JpcHRpb25zW3JlcXVlc3RJZF0/LmRhdGEkLm9ic2VydmVkKSB7XG4gICAgICAgICAgZGVsZXRlIHRoaXMuc3Vic2NyaXB0aW9uc1tyZXF1ZXN0SWRdO1xuICAgICAgICB9XG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIHNhdmUkKCk6IE9ic2VydmFibGU8eyBpZDogc3RyaW5nIH0+IHtcbiAgICBpZiAodGhpcy5mbG93SW5mb1NlcnZpY2UuZmxvdy5wcm9wZXJ0aWVzLnN0YXRlZnVsKSB7XG4gICAgICBpZiAodGhpcy5zdGF0ZUlkJC52YWx1ZSkge1xuICAgICAgICByZXR1cm4gdGhpcy5mbG93U3RhdGVBcGlTZXJ2aWNlLnNhdmUodGhpcy5zdGF0ZUlkJC52YWx1ZSkucGlwZShcbiAgICAgICAgICBtYXAoKHsgcXVvdGVJZCB9KSA9PiAoeyBpZDogcXVvdGVJZCB9KSksXG4gICAgICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgICAgIEFycmF5LmZyb20odGhpcy50cmFja2VkU3RhdGVmdWxDaGFuZ2VzTWFwLmtleXMoKSkuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgICAgICAgICB0aGlzLnRyYWNrZWRTdGF0ZWZ1bENoYW5nZXNNYXAuc2V0KGtleSwgZmFsc2UpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSksXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHN0YXRlID0gdGhpcy5zYWxlc1RyYW5zYWN0aW9uU2VydmljZS5zdGF0ZTtcbiAgICAgIGlmIChzdGF0ZSkge1xuICAgICAgICByZXR1cm4gdGhpcy5zYWxlc1RyYW5zYWN0aW9uQXBpU2VydmljZS51cHNlcnQoc3RhdGUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBvZih7IGlkOiAnJyB9KTtcbiAgfVxuXG4gIHB1YmxpYyBzdWJtaXQkKCk6IE9ic2VydmFibGU8eyBpZDogc3RyaW5nIH0+IHtcbiAgICBpZiAodGhpcy5mbG93SW5mb1NlcnZpY2UuZmxvdy5wcm9wZXJ0aWVzLnN0YXRlZnVsKSB7XG4gICAgICBpZiAodGhpcy5zdGF0ZUlkJC52YWx1ZSkge1xuICAgICAgICByZXR1cm4gdGhpcy5mbG93U3RhdGVBcGlTZXJ2aWNlLnN1Ym1pdCh0aGlzLnN0YXRlSWQkLnZhbHVlKS5waXBlKG1hcCgoeyBxdW90ZUlkIH0pID0+ICh7IGlkOiBxdW90ZUlkIH0pKSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHN0YXRlID0gdGhpcy5zYWxlc1RyYW5zYWN0aW9uU2VydmljZS5zdGF0ZTtcbiAgICAgIGlmIChzdGF0ZSkge1xuICAgICAgICByZXR1cm4gdGhpcy5zYWxlc1RyYW5zYWN0aW9uQXBpU2VydmljZS5zdWJtaXQoc3RhdGUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBvZih7IGlkOiAnJyB9KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRGbG93U3RvcmUoKTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4ge1xuICAgIHJldHVybiB0aGlzLmZsb3dTdG9yZTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0T3duZXJJZEJ5U2NvcGUoc2NvcGU6IFVJVGVtcGxhdGVUeXBlKTogc3RyaW5nIHtcbiAgICBjb25zdCBvd25lcklkID0gdGhpcy5mbG93SW5mb1NlcnZpY2UudGVtcGxhdGVzW3Njb3BlXT8uaWQ7XG4gICAgaWYgKCFvd25lcklkKSB7XG4gICAgICB0aHJvdyBgT3duZXJJZCBpcyBub3QgZm91bmQgZm9yIHNjb3BlICR7c2NvcGV9YDtcbiAgICB9XG5cbiAgICByZXR1cm4gb3duZXJJZDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0U2NvcGVCeU93bmVySWQoaWQ6IHN0cmluZyk6IFVJVGVtcGxhdGVUeXBlIHwgdW5kZWZpbmVkIHtcbiAgICBmb3IgKGNvbnN0IHRlbXBsYXRlIG9mIE9iamVjdC52YWx1ZXModGhpcy5mbG93SW5mb1NlcnZpY2UudGVtcGxhdGVzKSkge1xuICAgICAgaWYgKHRlbXBsYXRlLmlkID09PSBpZCkge1xuICAgICAgICByZXR1cm4gdGVtcGxhdGUudHlwZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm47XG4gIH1cblxuICBwcml2YXRlIGV4ZWNUb1JlcXVlc3Qoc2NvcGU6IFVJVGVtcGxhdGVUeXBlLCBleGVjOiBGbG93U3RhdGVFeGVjdXRpb25SZXF1ZXN0KTogRmxvd1N0YXRlRXhlY3V0aW9uUmVxdWVzdERUTyB7XG4gICAgY29uc3Qgb3duZXJJZCA9IHRoaXMuZ2V0T3duZXJJZEJ5U2NvcGUoc2NvcGUpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGFjdGlvbnM6IGV4ZWMuYWN0aW9ucz8ubWFwKGFjdGlvbiA9PiAoeyBhcGlOYW1lOiBhY3Rpb24ubmFtZSwgb3duZXJJZCwgaW5wdXREYXRhOiBhY3Rpb24uaW5wdXREYXRhID8/IHt9IH0pKSxcbiAgICAgIHNlbGVjdG9yczpcbiAgICAgICAgZXhlYy5zZWxlY3RvcnMgJiZcbiAgICAgICAgT2JqZWN0LmVudHJpZXMoZXhlYy5zZWxlY3RvcnMpLnJlZHVjZShcbiAgICAgICAgICAodHJ1bms6IFJlY29yZDxzdHJpbmcsIEZsb3dTdGF0ZUV4ZWN1dGFibGVEVE8+LCBba2V5LCBzZWxlY3Rvcl0pID0+ICh7XG4gICAgICAgICAgICAuLi50cnVuayxcbiAgICAgICAgICAgIFtrZXldOiB7IGFwaU5hbWU6IHNlbGVjdG9yLm5hbWUsIG93bmVySWQsIGlucHV0RGF0YTogc2VsZWN0b3IuaW5wdXREYXRhID8/IHt9IH0sXG4gICAgICAgICAgfSksXG4gICAgICAgICAge30sXG4gICAgICAgICksXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBleGVjdXRlUmVxdWVzdCQoXG4gICAgcmVxdWVzdDogRmxvd1N0YXRlRXhlY3V0aW9uUmVxdWVzdERUTyxcbiAgICBmb3JjZVN1YnNjcmlwdGlvbnM6IGJvb2xlYW4gPSBmYWxzZSxcbiAgKTogT2JzZXJ2YWJsZTxGbG93U3RhdGVFeGVjdXRpb25SZXN1bHQ+IHtcbiAgICBjb25zdCBmdWxsUmVxdWVzdCA9IGNsb25lRGVlcChyZXF1ZXN0KTtcbiAgICBpZiAoZnVsbFJlcXVlc3QuYWN0aW9ucz8ubGVuZ3RoIHx8IGZvcmNlU3Vic2NyaXB0aW9ucykge1xuICAgICAgZm9yIChjb25zdCBzdWJzY3JpcHRpb24gb2YgT2JqZWN0LnZhbHVlcyh0aGlzLnN1YnNjcmlwdGlvbnMpKSB7XG4gICAgICAgIGZ1bGxSZXF1ZXN0LnNlbGVjdG9ycyA9IGFzc2lnbihmdWxsUmVxdWVzdC5zZWxlY3RvcnMsIHN1YnNjcmlwdGlvbi5yZXF1ZXN0LnNlbGVjdG9ycyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgZXhlY3V0aW9uJCA9IHRoaXMuZmxvd0luZm9TZXJ2aWNlLmZsb3cucHJvcGVydGllcy5zdGF0ZWZ1bFxuICAgICAgPyB0aGlzLmV4ZWN1dGVTdGF0ZWZ1bCQoZnVsbFJlcXVlc3QpXG4gICAgICA6IHRoaXMuZXhlY3V0ZVN0YXRlbGVzcyQoZnVsbFJlcXVlc3QpO1xuXG4gICAgcmV0dXJuIGV4ZWN1dGlvbiQucGlwZSh0YXAocmVzdWx0ID0+IHRoaXMuaGFuZGxlU2VsZWN0b3JzUmVzcG9uc2UocmVzdWx0LnNlbGVjdG9ycykpKTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlU2VsZWN0b3JzUmVzcG9uc2Uoc2VsZWN0b3JzOiBSZWNvcmQ8c3RyaW5nLCBGbG93U3RhdGVTZWxlY3RvclJlc3BvbnNlPHVua25vd24+Pik6IHZvaWQge1xuICAgIE9iamVjdC5lbnRyaWVzKHNlbGVjdG9ycykuZm9yRWFjaCgoW3JlcXVlc3RJZCwgc2VsZWN0b3JSZXN1bHRdKSA9PiB7XG4gICAgICBpZiAoIXNlbGVjdG9yUmVzdWx0LnN1Y2Nlc3MpIHtcbiAgICAgICAgdGhpcy50b2FzdFNlcnZpY2UuYWRkKHsgc2V2ZXJpdHk6IFRvYXN0VHlwZS5lcnJvciwgc3VtbWFyeTogc2VsZWN0b3JSZXN1bHQuZXJyb3JNZXNzYWdlIH0pO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBzdWJzY3JpcHRpb24kID0gdGhpcy5zdWJzY3JpcHRpb25zW3JlcXVlc3RJZF0/LmRhdGEkO1xuICAgICAgaWYgKHN1YnNjcmlwdGlvbiQgJiYgc3Vic2NyaXB0aW9uJC52YWx1ZSAhPT0gc2VsZWN0b3JSZXN1bHQpIHtcbiAgICAgICAgdGhpcy5jaGVja1N0YXRlZnVsQ2hhbmdlcyhyZXF1ZXN0SWQsIHNlbGVjdG9yUmVzdWx0KTtcbiAgICAgICAgc3Vic2NyaXB0aW9uJC5uZXh0KHNlbGVjdG9yUmVzdWx0KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdFN0YXRlZnVsJCgpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICBjb25zdCBwcm9jZXNzb3JzTGlzdCA9IGZsYXR0ZW4oT2JqZWN0LnZhbHVlcyh0aGlzLnByb2Nlc3NvcnMpLm1hcChvd25lck1hcCA9PiBPYmplY3QudmFsdWVzKG93bmVyTWFwID8/IHt9KSkpO1xuICAgIGNvbnN0IHByb2Nlc3NvcnMgPSBwcm9jZXNzb3JzTGlzdC5sZW5ndGggPyBwcm9jZXNzb3JzTGlzdCA6IHVuZGVmaW5lZDtcbiAgICBjb25zdCBzZWxlY3RvcnMgPSBPYmplY3QudmFsdWVzKHRoaXMuc3Vic2NyaXB0aW9ucylcbiAgICAgIC5tYXAoKHsgcmVxdWVzdCB9KSA9PiByZXF1ZXN0LnNlbGVjdG9ycylcbiAgICAgIC5maWx0ZXIoaXNEZWZpbmVkKVxuICAgICAgLnJlZHVjZSgodHJ1bmssIHNlbGVjdG9ycykgPT4gKHsgLi4udHJ1bmssIC4uLnNlbGVjdG9ycyB9KSwge30pO1xuXG4gICAgcmV0dXJuIHRoaXMuZmxvd1N0YXRlQXBpU2VydmljZVxuICAgICAgLmluaXQoe1xuICAgICAgICBxdW90ZUlkOiB0aGlzLmZsb3dJbmZvU2VydmljZS5jb250ZXh0LmhlYWRlcklkLFxuICAgICAgICBwYXJhbXM6IHRoaXMuZmxvd0luZm9TZXJ2aWNlLmNvbnRleHQsXG4gICAgICAgIGFjdGlvbnNPdmVycmlkZTogcHJvY2Vzc29ycz8uZmlsdGVyKHByb2Nlc3NvciA9PiBwcm9jZXNzb3IudHlwZSA9PT0gQ29uZmlndXJhdGlvblByb2Nlc3NvclR5cGVzLkFDVElPTiksXG4gICAgICAgIHNlbGVjdG9yc092ZXJyaWRlOiBwcm9jZXNzb3JzPy5maWx0ZXIocHJvY2Vzc29yID0+IHByb2Nlc3Nvci50eXBlID09PSBDb25maWd1cmF0aW9uUHJvY2Vzc29yVHlwZXMuU0VMRUNUT1IpLFxuICAgICAgICBzZWxlY3RvcnM6IHNlbGVjdG9ycyxcbiAgICAgIH0pXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKCh7IHN0YXRlSWQsIHNlbGVjdG9ycyB9KSA9PiB7XG4gICAgICAgICAgdGhpcy5oYW5kbGVTZWxlY3RvcnNSZXNwb25zZShzZWxlY3RvcnMpO1xuICAgICAgICAgIHRoaXMuc3RhdGVJZCQubmV4dChzdGF0ZUlkKTtcbiAgICAgICAgfSksXG4gICAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0QnVmZmVyZWRSZXF1ZXN0JCgpIHtcbiAgICByZXR1cm4gdGhpcy5zdGF0ZWZ1bFJlcXVlc3RTdHJlYW0kLnBpcGUoXG4gICAgICBidWZmZXIodGhpcy5zdGF0ZWZ1bFJlcXVlc3RTdHJlYW0kLnBpcGUoZGVib3VuY2VUaW1lKHRoaXMuRVhFQ1VUSU9OX0JVRkZFUl9USU1FKSkpLFxuICAgICAgc3dpdGNoTWFwKHJlcXVlc3RzID0+IHtcbiAgICAgICAgaWYgKCF0aGlzLnN0YXRlSWQkLnZhbHVlKSB7XG4gICAgICAgICAgdGhyb3cgJ1N0YXRlZnVsIHNlc3Npb24gaXMgbm90IGluaXRpYWxpemVkJztcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIG1lcmdlIGJ1ZmZlcmVkIHJlcXVlc3RzXG4gICAgICAgIGNvbnN0IHJlcXVlc3Q6IEZsb3dTdGF0ZUV4ZWN1dGlvblJlcXVlc3REVE8gPSB7XG4gICAgICAgICAgYWN0aW9uczogcmVxdWVzdHMuZmxhdE1hcCgoeyBhY3Rpb25zIH0pID0+IGFjdGlvbnMpLmZpbHRlcihpc0RlZmluZWQpLFxuICAgICAgICAgIHNlbGVjdG9yczogcmVxdWVzdHNcbiAgICAgICAgICAgIC5tYXAoKHsgc2VsZWN0b3JzIH0pID0+IHNlbGVjdG9ycylcbiAgICAgICAgICAgIC5maWx0ZXIoaXNEZWZpbmVkKVxuICAgICAgICAgICAgLnJlZHVjZSgoYWNjLCBzZWxlY3RvcnNNYXApID0+IE9iamVjdC5hc3NpZ24oYWNjLCBzZWxlY3RvcnNNYXApLCB7fSksXG4gICAgICAgIH07XG5cbiAgICAgICAgdGhpcy5leGVjdXRpb25JblByb2dyZXNzJC5uZXh0KHRydWUpO1xuICAgICAgICByZXR1cm4gdGhpcy5mbG93U3RhdGVBcGlTZXJ2aWNlLmV4ZWN1dGUodGhpcy5zdGF0ZUlkJC52YWx1ZSwgcmVxdWVzdCk7XG4gICAgICB9KSxcbiAgICAgIHRhcCgoeyBzdGF0ZUlkIH0pID0+IHRoaXMuc3RhdGVJZCQubmV4dChzdGF0ZUlkKSksXG4gICAgICBzaGFyZSgpLFxuICAgICAgdGFwKCgpID0+IHRoaXMuZXhlY3V0aW9uSW5Qcm9ncmVzcyQubmV4dChmYWxzZSkpLFxuICAgICAgY2F0Y2hFcnJvcihlID0+IHtcbiAgICAgICAgdGhpcy5leGVjdXRpb25JblByb2dyZXNzJC5uZXh0KGZhbHNlKTtcbiAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gZSk7XG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBleGVjdXRlU3RhdGVmdWwkKHJlcXVlc3Q6IEZsb3dTdGF0ZUV4ZWN1dGlvblJlcXVlc3REVE8pOiBPYnNlcnZhYmxlPEZsb3dTdGF0ZUV4ZWN1dGlvblJlc3VsdD4ge1xuICAgIHJldHVybiB0aGlzLmV4ZWN1dGlvbkluUHJvZ3Jlc3MkLnBpcGUoXG4gICAgICBmaWx0ZXIoaW5Qcm9ncmVzcyA9PiAhaW5Qcm9ncmVzcyksXG4gICAgICB0YWtlKDEpLFxuICAgICAgc3dpdGNoTWFwKCgpID0+XG4gICAgICAgIC8vIG1ha2Ugc3VyZSBzdHJlYW0gc3dpdGNoZXMgdG8gc3RhdGVmdWxFeGVjdXRpb25SZXF1ZXN0JCBiZWZvcmUgcHVzaGluZyBhbiBleGVjdXRpb24gcmVxdWVzdFxuICAgICAgICBjb21iaW5lTGF0ZXN0KFtcbiAgICAgICAgICB0aGlzLnN0YXRlZnVsRXhlY3V0aW9uUmVxdWVzdCQsXG4gICAgICAgICAgb2YodW5kZWZpbmVkKS5waXBlKHRhcCgoKSA9PiB0aGlzLnN0YXRlZnVsUmVxdWVzdFN0cmVhbSQubmV4dChyZXF1ZXN0KSkpLFxuICAgICAgICBdKSxcbiAgICAgICksXG4gICAgICBtYXAoKFtyZXNwb25zZV0pID0+IHJlc3BvbnNlKSxcbiAgICAgIHRha2UoMSksXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdFN0YXRlbGVzcyQoKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuc2FsZXNUcmFuc2FjdGlvblNlcnZpY2UuaW5pdCh0aGlzLmZsb3dJbmZvU2VydmljZS5jb250ZXh0LmhlYWRlcklkLCB0aGlzLmZsb3dJbmZvU2VydmljZS5jb250ZXh0KS5waXBlKFxuICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgY29uc3QgYXNzZXRzID0gdGhpcy5zYWxlc1RyYW5zYWN0aW9uU2VydmljZS5zdGF0ZT8uYXNzZXRzO1xuICAgICAgICBpZiAoYXNzZXRzKSB7XG4gICAgICAgICAgdGhpcy5mbG93U3RvcmUgPSB7IC4uLnRoaXMuZmxvd1N0b3JlLCBhc3NldHMgfTtcbiAgICAgICAgfVxuICAgICAgfSksXG4gICAgICBzd2l0Y2hNYXAoc3RhdGUgPT4gdGhpcy5mbG93Q29uZmlndXJhdGlvbi5jYWxjdWxhdGUkKHN0YXRlKSksXG4gICAgICB0YXAoKCkgPT4gdGhpcy5zYWxlc1RyYW5zYWN0aW9uU2VydmljZS5maW5hbGl6ZUluaXQoKSksXG4gICAgICBtYXAobm9vcCksXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZXhlY3V0ZVN0YXRlbGVzcyQocmVxdWVzdDogRmxvd1N0YXRlRXhlY3V0aW9uUmVxdWVzdERUTyk6IE9ic2VydmFibGU8Rmxvd1N0YXRlRXhlY3V0aW9uUmVzdWx0PiB7XG4gICAgdGhpcy5leGVjdXRpb25JblByb2dyZXNzJC5uZXh0KHRydWUpO1xuXG4gICAgcmV0dXJuIG9mKHVuZGVmaW5lZCkucGlwZShcbiAgICAgIHRhcCgoKSA9PiB0aGlzLmV4ZWN1dGVTdGF0ZWxlc3NBY3Rpb25zKHJlcXVlc3QpKSxcbiAgICAgIHN3aXRjaE1hcCgoKSA9PiB7XG4gICAgICAgIC8qXG4gICAgICAgICAgU2tpcCBwcmljZSBjYWxjdWxhdGlvbiBpbiBjYXNlXG4gICAgICAgICAgMS4gTm8gYWN0aW9ucyBpbiB0aGUgcmVxdWVzdFxuICAgICAgICAgIDIuIEluaXRpYWxpemF0aW9uIHByb2Nlc3MgZXhlY3V0aW9uIChzdGF0ZSBub3QgaW5pdGlhbGl6ZWQgeWV0KVxuICAgICAgICAqL1xuICAgICAgICBjb25zdCB7IHN0YXRlIH0gPSB0aGlzLnNhbGVzVHJhbnNhY3Rpb25TZXJ2aWNlO1xuICAgICAgICBpZiAoIXN0YXRlIHx8ICFyZXF1ZXN0LmFjdGlvbnM/Lmxlbmd0aCB8fCAhdGhpcy5pc0luaXRpYWxpemVkKCkpIHtcbiAgICAgICAgICByZXR1cm4gb2YodW5kZWZpbmVkKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5mbG93Q29uZmlndXJhdGlvbi5jYWxjdWxhdGUkKHN0YXRlKTtcbiAgICAgICAgfVxuICAgICAgfSksXG4gICAgICBtYXAoKCkgPT4gdGhpcy5leGVjdXRlU3RhdGVsZXNzU2VsZWN0b3JzKHJlcXVlc3QpKSxcbiAgICAgIHRhcCgoKSA9PiB0aGlzLmV4ZWN1dGlvbkluUHJvZ3Jlc3MkLm5leHQoZmFsc2UpKSxcbiAgICAgIGNhdGNoRXJyb3IoZSA9PiB7XG4gICAgICAgIHRoaXMuZXhlY3V0aW9uSW5Qcm9ncmVzcyQubmV4dChmYWxzZSk7XG4gICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IGUpO1xuICAgICAgfSksXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZXhlY3V0ZVN0YXRlbGVzc0FjdGlvbnMocmVxdWVzdDogRmxvd1N0YXRlRXhlY3V0aW9uUmVxdWVzdERUTyk6IHZvaWQge1xuICAgIGNvbnN0IHN0YXRlID0gdGhpcy5zYWxlc1RyYW5zYWN0aW9uU2VydmljZS5zdGF0ZTtcbiAgICBpZiAoIXN0YXRlIHx8ICFyZXF1ZXN0LmFjdGlvbnM/Lmxlbmd0aCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxldCBmbG93U3RhdGUgPSBzdGF0ZTtcbiAgICByZXF1ZXN0LmFjdGlvbnMuZm9yRWFjaChhY3Rpb24gPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgZmxvd1N0YXRlID0gdGhpcy5leGVjdXRlQWN0aW9uU2NyaXB0KGZsb3dTdGF0ZSwgYWN0aW9uKSA/PyBmbG93U3RhdGU7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoZSk7XG4gICAgICAgIHRoaXMudG9hc3RTZXJ2aWNlLmFkZCh7IHNldmVyaXR5OiBUb2FzdFR5cGUuZXJyb3IsIHN1bW1hcnk6IFN0cmluZyhlKSB9KTtcbiAgICAgICAgdGhyb3cgZTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHRoaXMuc2FsZXNUcmFuc2FjdGlvblNlcnZpY2Uuc2V0U3RhdGUoZmxvd1N0YXRlKTtcbiAgfVxuXG4gIHByaXZhdGUgZXhlY3V0ZVN0YXRlbGVzc1NlbGVjdG9ycyhyZXF1ZXN0OiBGbG93U3RhdGVFeGVjdXRpb25SZXF1ZXN0RFRPKTogRmxvd1N0YXRlRXhlY3V0aW9uUmVzdWx0IHtcbiAgICBpZiAoIXRoaXMuc2FsZXNUcmFuc2FjdGlvblNlcnZpY2Uuc3RhdGUpIHtcbiAgICAgIHRocm93ICdRdW90ZURyYWZ0IGlzIG5vdCBpbml0aWFsaXplZCc7XG4gICAgfVxuXG4gICAgY29uc3QgZmxvd1N0YXRlID0gdGhpcy5zYWxlc1RyYW5zYWN0aW9uU2VydmljZS5zdGF0ZTtcbiAgICByZXR1cm4gRW50aXR5VXRpbC5lbnRyaWVzKHJlcXVlc3Quc2VsZWN0b3JzID8/IHt9KS5yZWR1Y2UoXG4gICAgICAocmVzdWx0OiBGbG93U3RhdGVFeGVjdXRpb25SZXN1bHQsIFtrZXksIHNlbGVjdG9yXSkgPT4ge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIHJlc3VsdC5zZWxlY3RvcnNba2V5XSA9IHtcbiAgICAgICAgICAgIHN1Y2Nlc3M6IHRydWUsXG4gICAgICAgICAgICByZXN1bHQ6IHRoaXMuZXhlY3V0ZVNlbGVjdG9yU2NyaXB0KGZsb3dTdGF0ZSwgc2VsZWN0b3IpLFxuICAgICAgICAgIH07XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKGUpO1xuICAgICAgICAgIHJlc3VsdC5zZWxlY3RvcnNba2V5XSA9IHtcbiAgICAgICAgICAgIHN1Y2Nlc3M6IGZhbHNlLFxuICAgICAgICAgICAgZXJyb3JNZXNzYWdlOiBTdHJpbmcoZSksXG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICB9LFxuICAgICAgeyBzdGF0ZUlkOiAnJywgc2VsZWN0b3JzOiB7fSB9LFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGluaXRQcm9jZXNzb3JzJCgpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICBjb25zdCBoYXNPdmVycmlkZXMgPSBCb29sZWFuKHRoaXMuY3VzdG9taXphdGlvblNlcnZpY2U/LmdldFRlbXBsYXRlQ29uZmlndXJhdGlvblByb2Nlc3NvcnMpO1xuICAgIGlmICh0aGlzLmZsb3dJbmZvU2VydmljZS5mbG93LnByb3BlcnRpZXMuc3RhdGVmdWwgJiYgIWhhc092ZXJyaWRlcykge1xuICAgICAgLy8gU2tpcCBpbml0aWFsaXphdGlvbiBhcyBiYWNrZW5kIHdpbGwgdGFrZSBwcm9jZXNzb3JzIGZyb20gU0ZcbiAgICAgIHJldHVybiBvZih1bmRlZmluZWQpO1xuICAgIH1cblxuICAgIGNvbnN0IG93bmVycyQgPSBPYmplY3QudmFsdWVzKHRoaXMuZmxvd0luZm9TZXJ2aWNlLnRlbXBsYXRlcylcbiAgICAgIC5tYXAodGVtcGxhdGUgPT4ge1xuICAgICAgICBpZiAoIXRlbXBsYXRlKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgbG9jYWxQcm9jZXNzb3JzJCA9XG4gICAgICAgICAgdGhpcy5jdXN0b21pemF0aW9uU2VydmljZT8uZ2V0VGVtcGxhdGVDb25maWd1cmF0aW9uUHJvY2Vzc29ycz8uKHRlbXBsYXRlLm5hbWUpID8/IG9mKG51bGwpO1xuXG4gICAgICAgIHJldHVybiBsb2NhbFByb2Nlc3NvcnMkLnBpcGUoXG4gICAgICAgICAgc3dpdGNoTWFwKHByb2Nlc3NvcnMgPT5cbiAgICAgICAgICAgIHByb2Nlc3NvcnMgPyBvZihwcm9jZXNzb3JzKSA6IHRoaXMucHJvY2Vzc29yc0FwaVNlcnZpY2UuZmV0Y2hDb25maWd1cmF0aW9uUHJvY2Vzc29ycyQodGVtcGxhdGUuaWQpLFxuICAgICAgICAgICksXG4gICAgICAgICAgdGFwKHByb2Nlc3NvcnMgPT4ge1xuICAgICAgICAgICAgY29uc3QgcHJvY2Vzc29yc01hcCA9IHByb2Nlc3NvcnMucmVkdWNlKChhY2M6IFJlY29yZDxzdHJpbmcsIENvbmZpZ3VyYXRpb25Qcm9jZXNzb3I+LCBwKSA9PiB7XG4gICAgICAgICAgICAgIGFjY1twLmFwaU5hbWVdID0gcDtcbiAgICAgICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgICAgIH0sIHt9KTtcblxuICAgICAgICAgICAgdGhpcy5wcm9jZXNzb3JzW3RlbXBsYXRlLmlkXSA9IHByb2Nlc3NvcnNNYXA7XG4gICAgICAgICAgfSksXG4gICAgICAgICk7XG4gICAgICB9KVxuICAgICAgLmZpbHRlcihpc0RlZmluZWQpO1xuXG4gICAgaWYgKCFvd25lcnMkLmxlbmd0aCkge1xuICAgICAgcmV0dXJuIG9mKHVuZGVmaW5lZCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZvcmtKb2luKG93bmVycyQpLnBpcGUobWFwKG5vb3ApKTtcbiAgfVxuXG4gIHByaXZhdGUgZXhlY3V0ZUFjdGlvblNjcmlwdChyZXF1ZXN0OiBGbG93U3RhdGUsIGV4ZWN1dGFibGU6IEZsb3dTdGF0ZUV4ZWN1dGFibGVEVE8pOiBGbG93U3RhdGUgfCBudWxsIHtcbiAgICBjb25zdCBjb25maWd1cmF0aW9uUHJvY2Vzc29yID0gdGhpcy5wcm9jZXNzb3JzW2V4ZWN1dGFibGUub3duZXJJZF0/LltleGVjdXRhYmxlLmFwaU5hbWVdO1xuXG4gICAgaWYgKCFjb25maWd1cmF0aW9uUHJvY2Vzc29yPy5zY3JpcHQpIHtcbiAgICAgIGNvbnN0IHNjb3BlID0gdGhpcy5nZXRTY29wZUJ5T3duZXJJZChleGVjdXRhYmxlLm93bmVySWQpO1xuICAgICAgY29uc3Qgc2NvcGVUZXh0ID0gc2NvcGUgPyBgIGluICR7c2NvcGV9YCA6ICcnO1xuICAgICAgdGhyb3cgYENvbmZpZ3VyYXRpb25Qcm9jZXNzb3IgJHtleGVjdXRhYmxlLmFwaU5hbWV9JHtzY29wZVRleHR9IG5vdCBmb3VuZGA7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuZXhlY3V0ZVByb2Nlc3NvclNjcmlwdChyZXF1ZXN0LCBjb25maWd1cmF0aW9uUHJvY2Vzc29yLCBleGVjdXRhYmxlLmlucHV0RGF0YSkgYXMgRmxvd1N0YXRlO1xuICB9XG5cbiAgcHJpdmF0ZSBleGVjdXRlU2VsZWN0b3JTY3JpcHQocmVxdWVzdDogRmxvd1N0YXRlLCBleGVjdXRhYmxlOiBGbG93U3RhdGVFeGVjdXRhYmxlRFRPKTogdW5rbm93biB7XG4gICAgY29uc3QgY29uZmlndXJhdGlvblByb2Nlc3NvciA9IHRoaXMucHJvY2Vzc29yc1tleGVjdXRhYmxlLm93bmVySWRdPy5bZXhlY3V0YWJsZS5hcGlOYW1lXTtcblxuICAgIGlmICghY29uZmlndXJhdGlvblByb2Nlc3Nvcj8uc2NyaXB0KSB7XG4gICAgICBjb25zdCBzY29wZSA9IHRoaXMuZ2V0U2NvcGVCeU93bmVySWQoZXhlY3V0YWJsZS5vd25lcklkKTtcbiAgICAgIGNvbnN0IHNjb3BlVGV4dCA9IHNjb3BlID8gYCBpbiAke3Njb3BlfWAgOiAnJztcbiAgICAgIHRocm93IGBDb25maWd1cmF0aW9uUHJvY2Vzc29yICR7ZXhlY3V0YWJsZS5hcGlOYW1lfSR7c2NvcGVUZXh0fSBub3QgZm91bmRgO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmV4ZWN1dGVQcm9jZXNzb3JTY3JpcHQocmVxdWVzdCwgY29uZmlndXJhdGlvblByb2Nlc3NvciwgZXhlY3V0YWJsZS5pbnB1dERhdGEpO1xuICB9XG5cbiAgcHJpdmF0ZSBleGVjdXRlUHJvY2Vzc29yU2NyaXB0KFxuICAgIHJlcXVlc3Q6IEZsb3dTdGF0ZSxcbiAgICBjb25maWd1cmF0aW9uUHJvY2Vzc29yOiBDb25maWd1cmF0aW9uUHJvY2Vzc29yLFxuICAgIGlucHV0RGF0YTogdW5rbm93bixcbiAgKTogdW5rbm93biB7XG4gICAgY29uc3Qgc2NvcGUgPSB0aGlzLmdldFNjb3BlQnlPd25lcklkKGNvbmZpZ3VyYXRpb25Qcm9jZXNzb3Iub3duZXJJZCA/PyAnJyk7XG4gICAgbGV0IGZ1bmN0aW9uVG9FeGVjdXRlID0gdGhpcy5leGVjdXRlZEZ1bmN0aW9uc1tzY29wZSArIGNvbmZpZ3VyYXRpb25Qcm9jZXNzb3IuYXBpTmFtZV07XG5cbiAgICBpZiAoIWZ1bmN0aW9uVG9FeGVjdXRlKSB7XG4gICAgICBjb25zdCBzY3JpcHQgPSBgJHtjb25maWd1cmF0aW9uUHJvY2Vzc29yLnNjcmlwdH1cXG5yZXR1cm4gdHJhbnNmb3JtO2A7XG4gICAgICBjb25zdCBzb3VyY2VNYXAgPSBgXFxuLy8jIHNvdXJjZVVSTD0ke3Njb3BlID8gc2NvcGUgKyAnLycgOiAnJ30ke2NvbmZpZ3VyYXRpb25Qcm9jZXNzb3IuYXBpTmFtZX0uanNgO1xuICAgICAgZnVuY3Rpb25Ub0V4ZWN1dGUgPSBuZXcgRnVuY3Rpb24oc2NyaXB0ICsgc291cmNlTWFwKSgpIGFzIENvbmZpZ3VyYXRpb25Qcm9jZXNzb3JTY3JpcHRGbjtcbiAgICAgIHRoaXMuZXhlY3V0ZWRGdW5jdGlvbnNbc2NvcGUgKyBjb25maWd1cmF0aW9uUHJvY2Vzc29yLmFwaU5hbWVdID0gZnVuY3Rpb25Ub0V4ZWN1dGU7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZ1bmN0aW9uVG9FeGVjdXRlKHtcbiAgICAgIHJlcXVlc3QsXG4gICAgICBpbnB1dERhdGEsXG4gICAgICBmbG93U3RvcmU6IHRoaXMuZmxvd1N0b3JlLFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZW5lcmF0ZVJlcXVlc3RJZChzY29wZTogVUlUZW1wbGF0ZVR5cGUsIHNlbGVjdG9yTmFtZTogc3RyaW5nLCBpbnB1dERhdGE/OiB1bmtub3duKTogc3RyaW5nIHtcbiAgICBjb25zdCBpbnB1dERhdGFIYXNoID0gVVVJRC5oZXgoSlNPTi5zdHJpbmdpZnkoaW5wdXREYXRhKSB8fCAnJykuc2xpY2UoMCwgOCk7XG4gICAgcmV0dXJuIGAke3Njb3BlfS8ke3NlbGVjdG9yTmFtZX0vJHtpbnB1dERhdGFIYXNofWA7XG4gIH1cblxuICBwcml2YXRlIGNoZWNrU3RhdGVmdWxDaGFuZ2VzKHJlcXVlc3RJZDogc3RyaW5nLCBzZWxlY3RvclJlc3VsdDogdW5rbm93bikge1xuICAgIGlmICh0aGlzLnRyYWNrZWRTdGF0ZWZ1bENoYW5nZXNNYXAuaGFzKHJlcXVlc3RJZCkpIHtcbiAgICAgIGlmICghdGhpcy5pbml0aWFsU3RhdGVmdWxEYXRhW3JlcXVlc3RJZF0pIHtcbiAgICAgICAgdGhpcy5pbml0aWFsU3RhdGVmdWxEYXRhW3JlcXVlc3RJZF0gPSBzZWxlY3RvclJlc3VsdDtcbiAgICAgIH1cblxuICAgICAgY29uc3QgaGFzQ2hhbmdlcyA9ICFpc0VxdWFsKHRoaXMuaW5pdGlhbFN0YXRlZnVsRGF0YVtyZXF1ZXN0SWRdLCBzZWxlY3RvclJlc3VsdCk7XG4gICAgICB0aGlzLnRyYWNrZWRTdGF0ZWZ1bENoYW5nZXNNYXAuc2V0KHJlcXVlc3RJZCwgaGFzQ2hhbmdlcyk7XG4gICAgfVxuICB9XG59XG4iXX0=
|
432
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxvdy1zdGF0ZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zZGsvY29yZS9zZXJ2aWNlcy9mbG93LXN0YXRlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSwwQkFBMEIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ25HLE9BQU8sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDakUsT0FBTyxFQUdMLDJCQUEyQixFQUMzQixVQUFVLEVBT1YsU0FBUyxFQUVULElBQUksR0FDTCxNQUFNLGtCQUFrQixDQUFDO0FBQzFCLE9BQU8sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFjLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDekUsT0FBTyxFQUNMLGVBQWUsRUFDZixNQUFNLEVBQ04sVUFBVSxFQUNWLGFBQWEsRUFDYixZQUFZLEVBQ1osTUFBTSxFQUNOLFFBQVEsRUFDUixRQUFRLEVBQ1IsR0FBRyxFQUNILElBQUksRUFFSixFQUFFLEVBQ0YsS0FBSyxFQUNMLE9BQU8sRUFDUCxTQUFTLEVBQ1QsSUFBSSxFQUNKLEdBQUcsRUFDSCxVQUFVLEdBQ1gsTUFBTSxNQUFNLENBQUM7QUFDZCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDdEQsT0FBTyxFQUFxQixrQkFBa0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRTFGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7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LGdCQUFnQjsyRkFBaEIsZ0JBQWdCO2tCQUQ1QixVQUFVOzswQkEyQk4sUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGbG93U3RhdGVBcGlTZXJ2aWNlIH0gZnJvbSAnQHZlbG9jZWFwcHMvYXBpJztcbmltcG9ydCB7IENvbmZpZ3VyYXRpb25Qcm9jZXNzb3JzQXBpU2VydmljZSwgU2FsZXNUcmFuc2FjdGlvbkFwaVNlcnZpY2UgfSBmcm9tICdAdmVsb2NlYXBwcy9hcGkvdjInO1xuaW1wb3J0IHsgVG9hc3RTZXJ2aWNlLCBUb2FzdFR5cGUgfSBmcm9tICdAdmVsb2NlYXBwcy9jb21wb25lbnRzJztcbmltcG9ydCB7XG4gIENvbmZpZ3VyYXRpb25Qcm9jZXNzb3IsXG4gIENvbmZpZ3VyYXRpb25Qcm9jZXNzb3JTY3JpcHRGbixcbiAgQ29uZmlndXJhdGlvblByb2Nlc3NvclR5cGVzLFxuICBFbnRpdHlVdGlsLFxuICBGbG93U3RhdGUsXG4gIEZsb3dTdGF0ZUV4ZWN1dGFibGVEVE8sXG4gIEZsb3dTdGF0ZUV4ZWN1dGlvblJlcXVlc3QsXG4gIEZsb3dTdGF0ZUV4ZWN1dGlvblJlcXVlc3REVE8sXG4gIEZsb3dTdGF0ZUV4ZWN1dGlvblJlc3VsdCxcbiAgRmxvd1N0YXRlU2VsZWN0b3JSZXNwb25zZSxcbiAgaXNEZWZpbmVkLFxuICBVSVRlbXBsYXRlVHlwZSxcbiAgVVVJRCxcbn0gZnJvbSAnQHZlbG9jZWFwcHMvY29yZSc7XG5pbXBvcnQgeyBhc3NpZ24sIGNsb25lRGVlcCwgRGljdGlvbmFyeSwgZmxhdHRlbiwgaXNFcXVhbCB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQge1xuICBCZWhhdmlvclN1YmplY3QsXG4gIGJ1ZmZlcixcbiAgY2F0Y2hFcnJvcixcbiAgY29tYmluZUxhdGVzdCxcbiAgZGVib3VuY2VUaW1lLFxuICBmaWx0ZXIsXG4gIGZpbmFsaXplLFxuICBmb3JrSm9pbixcbiAgbWFwLFxuICBub29wLFxuICBPYnNlcnZhYmxlLFxuICBvZixcbiAgc2hhcmUsXG4gIFN1YmplY3QsXG4gIHN3aXRjaE1hcCxcbiAgdGFrZSxcbiAgdGFwLFxuICB0aHJvd0Vycm9yLFxufSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEZsb3dDb25maWd1cmF0aW9uU2VydmljZSB9IGZyb20gJy4uL21vZHVsZXMnO1xuaW1wb3J0IHsgRmxvd0N1c3RvbWl6YXRpb24sIEZMT1dfQ1VTVE9NSVpBVElPTiB9IGZyb20gJy4uL3R5cGVzL2Zsb3ctY3VzdG9taXphdGlvbi50eXBlcyc7XG5pbXBvcnQgeyBGbG93U3RhdGVTdWJzY3JpcHRpb25PcHRpb25zLCBGbG93U3RvcmUgfSBmcm9tICcuLi90eXBlcy9mbG93LXN0YXRlLnR5cGVzJztcbmltcG9ydCB7IEZsb3dJbmZvU2VydmljZSB9IGZyb20gJy4vZmxvdy1pbmZvLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2FsZXNUcmFuc2FjdGlvblNlcnZpY2UgfSBmcm9tICcuL3NhbGVzLXRyYW5zYWN0aW9uLnNlcnZpY2UnO1xuXG50eXBlIFByb2Nlc3NvcnNNYXAgPSBQYXJ0aWFsPHtcbiAgW293bmVySWQ6IHN0cmluZ106IHtcbiAgICBbYXBpTmFtZTogc3RyaW5nXTogQ29uZmlndXJhdGlvblByb2Nlc3NvcjtcbiAgfTtcbn0+O1xuXG50eXBlIFN1YnNjcmlwdGlvbiA9IHtcbiAgcmVxdWVzdDogRmxvd1N0YXRlRXhlY3V0aW9uUmVxdWVzdERUTztcbiAgZGF0YSQ6IEJlaGF2aW9yU3ViamVjdDx1bmtub3duPjtcbn07XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBGbG93U3RhdGVTZXJ2aWNlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBOT1RfSU5JVElBTElaRUQgPSBTeW1ib2woKTtcbiAgcHJpdmF0ZSByZWFkb25seSBFWEVDVVRJT05fQlVGRkVSX1RJTUUgPSAxMDA7XG5cbiAgcHJpdmF0ZSBleGVjdXRlZEZ1bmN0aW9uczogRGljdGlvbmFyeTxDb25maWd1cmF0aW9uUHJvY2Vzc29yU2NyaXB0Rm4+ID0ge307XG4gIHByaXZhdGUgc3RhdGVJZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZyB8IG51bGw+KG51bGwpO1xuICBwcml2YXRlIGluaXRpYWxTdGF0ZWZ1bERhdGE6IERpY3Rpb25hcnk8dW5rbm93bj4gPSB7fTtcbiAgcHJpdmF0ZSB0cmFja2VkU3RhdGVmdWxDaGFuZ2VzTWFwOiBNYXA8c3RyaW5nLCBib29sZWFuPiA9IG5ldyBNYXAoKTtcbiAgcHJpdmF0ZSBwcm9jZXNzb3JzOiBQcm9jZXNzb3JzTWFwID0ge307XG4gIHByaXZhdGUgc3Vic2NyaXB0aW9uczogUmVjb3JkPHN0cmluZywgU3Vic2NyaXB0aW9uPiA9IHt9O1xuICBwcml2YXRlIGZsb3dTdG9yZTogRmxvd1N0b3JlID0ge307XG5cbiAgcHJpdmF0ZSBleGVjdXRpb25JblByb2dyZXNzJCA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xuICBwcml2YXRlIHN0YXRlZnVsUmVxdWVzdFN0cmVhbSQgPSBuZXcgU3ViamVjdDxGbG93U3RhdGVFeGVjdXRpb25SZXF1ZXN0RFRPPigpO1xuICBwcml2YXRlIHN0YXRlZnVsRXhlY3V0aW9uUmVxdWVzdCQ6IE9ic2VydmFibGU8Rmxvd1N0YXRlRXhlY3V0aW9uUmVzdWx0PjtcblxuICBwcml2YXRlIGNsZWFudXAkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGZsb3dDb25maWd1cmF0aW9uOiBGbG93Q29uZmlndXJhdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBmbG93SW5mb1NlcnZpY2U6IEZsb3dJbmZvU2VydmljZSxcbiAgICBwcml2YXRlIGZsb3dTdGF0ZUFwaVNlcnZpY2U6IEZsb3dTdGF0ZUFwaVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBwcm9jZXNzb3JzQXBpU2VydmljZTogQ29uZmlndXJhdGlvblByb2Nlc3NvcnNBcGlTZXJ2aWNlLFxuICAgIHByaXZhdGUgc2FsZXNUcmFuc2FjdGlvbkFwaVNlcnZpY2U6IFNhbGVzVHJhbnNhY3Rpb25BcGlTZXJ2aWNlLFxuICAgIHByaXZhdGUgc2FsZXNUcmFuc2FjdGlvblNlcnZpY2U6IFNhbGVzVHJhbnNhY3Rpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgdG9hc3RTZXJ2aWNlOiBUb2FzdFNlcnZpY2UsXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChGTE9XX0NVU1RPTUlaQVRJT04pIHByaXZhdGUgY3VzdG9taXphdGlvblNlcnZpY2U/OiBGbG93Q3VzdG9taXphdGlvbixcbiAgKSB7XG4gICAgdGhpcy5zdGF0ZWZ1bEV4ZWN1dGlvblJlcXVlc3QkID0gdGhpcy5pbml0QnVmZmVyZWRSZXF1ZXN0JCgpO1xuXG4gICAgLypcbiAgICAgIEluIHN0YXRlbGVzcyBtb2RlIHdhdGNoIFN0YXRlIGNoYW5nZXMgYW5kIGNhbGwgZXhlY3V0ZVJlcXVlc3Qgc28gdGhhdFxuICAgICAgYWxsIHN1YnNjcmlwdGlvbnMgZ2V0IHRoZWlyIHVwZGF0ZXMgYWNjb3JkaW5nIHRvIHVwZGF0ZWQgU3RhdGVcbiAgICAqL1xuICAgIHRoaXMuaXNJbml0aWFsaXplZCQoKVxuICAgICAgLnBpcGUoXG4gICAgICAgIGZpbHRlcihCb29sZWFuKSxcbiAgICAgICAgZmlsdGVyKCgpID0+ICF0aGlzLmZsb3dJbmZvU2VydmljZS5mbG93LnByb3BlcnRpZXMuc3RhdGVmdWwpLFxuICAgICAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy5mbG93Q29uZmlndXJhdGlvbi51cGRhdGVkJCksXG4gICAgICAgIHN3aXRjaE1hcCgoKSA9PiB0aGlzLmV4ZWN1dGVSZXF1ZXN0JCh7fSwgdHJ1ZSkpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHVibGljIGluaXQkKCk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIGlmICh0aGlzLmZsb3dJbmZvU2VydmljZS5mbG93LnByb3BlcnRpZXMuc3RhdGVmdWwpIHtcbiAgICAgIHJldHVybiB0aGlzLmluaXRQcm9jZXNzb3JzJCgpLnBpcGUoc3dpdGNoTWFwKCgpID0+IHRoaXMuaW5pdFN0YXRlZnVsJCgpKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBmb3JrSm9pbihbdGhpcy5pbml0U3RhdGVsZXNzJCgpLCB0aGlzLmluaXRQcm9jZXNzb3JzJCgpXSkucGlwZShtYXAobm9vcCkpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyByZXNldCgpOiB2b2lkIHtcbiAgICBPYmplY3QudmFsdWVzKHRoaXMuc3Vic2NyaXB0aW9ucykuZm9yRWFjaCgoeyBkYXRhJCB9KSA9PiBkYXRhJC5jb21wbGV0ZSgpKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMgPSB7fTtcblxuICAgIGlmICh0aGlzLnN0YXRlSWQkLnZhbHVlKSB7XG4gICAgICB0aGlzLmZsb3dTdGF0ZUFwaVNlcnZpY2UuY2FuY2VsKHRoaXMuc3RhdGVJZCQudmFsdWUpLnN1YnNjcmliZSgpO1xuICAgICAgdGhpcy5zdGF0ZUlkJC5uZXh0KG51bGwpO1xuICAgIH1cblxuICAgIHRoaXMucHJvY2Vzc29ycyA9IHt9O1xuICAgIHRoaXMuZmxvd1N0b3JlID0ge307XG4gICAgdGhpcy5jbGVhbnVwJC5uZXh0KCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGhhc1Vuc2F2ZWRDaGFuZ2VzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmZsb3dJbmZvU2VydmljZS5mbG93LnByb3BlcnRpZXMuc3RhdGVmdWxcbiAgICAgID8gQXJyYXkuZnJvbSh0aGlzLnRyYWNrZWRTdGF0ZWZ1bENoYW5nZXNNYXAudmFsdWVzKCkpLnNvbWUoQm9vbGVhbilcbiAgICAgIDogdGhpcy5zYWxlc1RyYW5zYWN0aW9uU2VydmljZS5oYXNVbnNhdmVkQ2hhbmdlcztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgc3RhdGVJZCgpOiBzdHJpbmcgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5zdGF0ZUlkJC52YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaXNFeGVjdXRpb25JblByb2dyZXNzJCgpIHtcbiAgICByZXR1cm4gdGhpcy5leGVjdXRpb25JblByb2dyZXNzJC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBpc0luaXRpYWxpemVkJCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gY29tYmluZUxhdGVzdChbdGhpcy5zdGF0ZUlkJCwgdGhpcy5zYWxlc1RyYW5zYWN0aW9uU2VydmljZS5pc0luaXRpYWxpemVkJF0pLnBpcGUoXG4gICAgICBtYXAodmFsdWVzID0+IHZhbHVlcy5zb21lKEJvb2xlYW4pKSxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGlzSW5pdGlhbGl6ZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIEJvb2xlYW4odGhpcy5zdGF0ZUlkJC52YWx1ZSkgfHwgdGhpcy5zYWxlc1RyYW5zYWN0aW9uU2VydmljZS5pc0luaXRpYWxpemVkO1xuICB9XG5cbiAgcHVibGljIGV4ZWN1dGUkKFxuICAgIHNjb3BlOiBVSVRlbXBsYXRlVHlwZSxcbiAgICBleGVjOiBGbG93U3RhdGVFeGVjdXRpb25SZXF1ZXN0LFxuICApOiBPYnNlcnZhYmxlPEZsb3dTdGF0ZUV4ZWN1dGlvblJlc3VsdFsnc2VsZWN0b3JzJ10+IHtcbiAgICBjb25zdCByZXF1ZXN0ID0gdGhpcy5leGVjVG9SZXF1ZXN0KHNjb3BlLCBleGVjKTtcblxuICAgIHJldHVybiB0aGlzLmV4ZWN1dGVSZXF1ZXN0JChyZXF1ZXN0KS5waXBlKFxuICAgICAgbWFwKHJlc3VsdCA9PiB7XG4gICAgICAgIC8vIEtlZXAgb25seSByZXF1ZXN0ZWQgcmVzdWx0c1xuICAgICAgICBjb25zdCBhY3R1YWxTZWxlY3RvcnMgPSBPYmplY3QuZW50cmllcyhyZXN1bHQuc2VsZWN0b3JzKS5yZWR1Y2UoXG4gICAgICAgICAgKHRydW5rOiBSZWNvcmQ8c3RyaW5nLCBGbG93U3RhdGVTZWxlY3RvclJlc3BvbnNlPiwgW3JlcXVlc3RJZCwgcmVzdWx0XSkgPT4ge1xuICAgICAgICAgICAgaWYgKGV4ZWMuc2VsZWN0b3JzPy5bcmVxdWVzdElkXSkge1xuICAgICAgICAgICAgICB0cnVua1tyZXF1ZXN0SWRdID0gcmVzdWx0O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHRydW5rO1xuICAgICAgICAgIH0sXG4gICAgICAgICAge30sXG4gICAgICAgICk7XG5cbiAgICAgICAgcmV0dXJuIGFjdHVhbFNlbGVjdG9ycztcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgZGlzcGF0Y2gkKHNjb3BlOiBVSVRlbXBsYXRlVHlwZSwgYWN0aW9uOiBzdHJpbmcsIGlucHV0RGF0YT86IHVua25vd24pOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICBjb25zdCBleGVjOiBGbG93U3RhdGVFeGVjdXRpb25SZXF1ZXN0ID0ge1xuICAgICAgYWN0aW9uczogW3sgbmFtZTogYWN0aW9uLCBpbnB1dERhdGEgfV0sXG4gICAgfTtcbiAgICBjb25zdCByZXF1ZXN0ID0gdGhpcy5leGVjVG9SZXF1ZXN0KHNjb3BlLCBleGVjKTtcblxuICAgIHJldHVybiB0aGlzLmV4ZWN1dGVSZXF1ZXN0JChyZXF1ZXN0KS5waXBlKG1hcChub29wKSk7XG4gIH1cblxuICBwdWJsaWMgc2VsZWN0JDxSZXNwb25zZSA9IHVua25vd24+KFxuICAgIHNjb3BlOiBVSVRlbXBsYXRlVHlwZSxcbiAgICBzZWxlY3Rvck5hbWU6IHN0cmluZyxcbiAgICBpbnB1dERhdGE/OiB1bmtub3duLFxuICApOiBPYnNlcnZhYmxlPEZsb3dTdGF0ZVNlbGVjdG9yUmVzcG9uc2U8UmVzcG9uc2U+PiB7XG4gICAgY29uc3QgcmVxdWVzdElkID0gdGhpcy5nZW5lcmF0ZVJlcXVlc3RJZChzY29wZSwgc2VsZWN0b3JOYW1lLCBpbnB1dERhdGEpO1xuICAgIGNvbnN0IHJlcXVlc3QgPSB0aGlzLmV4ZWNUb1JlcXVlc3Qoc2NvcGUsIHtcbiAgICAgIHNlbGVjdG9yczoge1xuICAgICAgICBbcmVxdWVzdElkXToge1xuICAgICAgICAgIG5hbWU6IHNlbGVjdG9yTmFtZSxcbiAgICAgICAgICBpbnB1dERhdGEsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRoaXMuZXhlY3V0ZVJlcXVlc3QkKHJlcXVlc3QpLnBpcGUoXG4gICAgICBtYXAocmVzcG9uc2UgPT4gcmVzcG9uc2Uuc2VsZWN0b3JzW3JlcXVlc3RJZF0gYXMgRmxvd1N0YXRlU2VsZWN0b3JSZXNwb25zZTxSZXNwb25zZT4pLFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgc3Vic2NyaWJlJDxSZXNwb25zZSA9IHVua25vd24+KFxuICAgIHNjb3BlOiBVSVRlbXBsYXRlVHlwZSxcbiAgICBzZWxlY3Rvck5hbWU6IHN0cmluZyxcbiAgICBpbnB1dERhdGE/OiB1bmtub3duLFxuICAgIG9wdGlvbnM/OiBGbG93U3RhdGVTdWJzY3JpcHRpb25PcHRpb25zLFxuICApOiBPYnNlcnZhYmxlPEZsb3dTdGF0ZVNlbGVjdG9yUmVzcG9uc2U8UmVzcG9uc2U+PiB7XG4gICAgY29uc3QgcmVxdWVzdElkID0gdGhpcy5nZW5lcmF0ZVJlcXVlc3RJZChzY29wZSwgc2VsZWN0b3JOYW1lLCBpbnB1dERhdGEpO1xuXG4gICAgbGV0IHN1YnNjcmlwdGlvbiA9IHRoaXMuc3Vic2NyaXB0aW9uc1tyZXF1ZXN0SWRdO1xuXG4gICAgaWYgKCFzdWJzY3JpcHRpb24pIHtcbiAgICAgIGNvbnN0IHJlcXVlc3QgPSB0aGlzLmV4ZWNUb1JlcXVlc3Qoc2NvcGUsIHtcbiAgICAgICAgc2VsZWN0b3JzOiB7XG4gICAgICAgICAgW3JlcXVlc3RJZF06IHtcbiAgICAgICAgICAgIG5hbWU6IHNlbGVjdG9yTmFtZSxcbiAgICAgICAgICAgIGlucHV0RGF0YSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSk7XG5cbiAgICAgIHN1YnNjcmlwdGlvbiA9IHtcbiAgICAgICAgcmVxdWVzdCxcbiAgICAgICAgZGF0YSQ6IG5ldyBCZWhhdmlvclN1YmplY3Q8dW5rbm93bj4odGhpcy5OT1RfSU5JVElBTElaRUQpLFxuICAgICAgfTtcblxuICAgICAgdGhpcy5zdWJzY3JpcHRpb25zW3JlcXVlc3RJZF0gPSBzdWJzY3JpcHRpb247XG5cbiAgICAgIGlmIChvcHRpb25zPy50cmFja2VkQ2hhbmdlcykge1xuICAgICAgICB0aGlzLnRyYWNrZWRTdGF0ZWZ1bENoYW5nZXNNYXAuc2V0KHJlcXVlc3RJZCwgZmFsc2UpO1xuICAgICAgfVxuXG4gICAgICBpZiAoIW9wdGlvbnM/LmNvbGQpIHtcbiAgICAgICAgdGhpcy5leGVjdXRlUmVxdWVzdCQocmVxdWVzdCkuc3Vic2NyaWJlKCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHN1YnNjcmlwdGlvbi5kYXRhJC5waXBlKFxuICAgICAgZmlsdGVyKGRhdGEgPT4gZGF0YSAhPSB0aGlzLk5PVF9JTklUSUFMSVpFRCksXG4gICAgICBtYXAoZGF0YSA9PiBkYXRhIGFzIEZsb3dTdGF0ZVNlbGVjdG9yUmVzcG9uc2U8UmVzcG9uc2U+KSxcbiAgICAgIGZpbmFsaXplKCgpID0+IHtcbiAgICAgICAgaWYgKCF0aGlzLnN1YnNjcmlwdGlvbnNbcmVxdWVzdElkXT8uZGF0YSQub2JzZXJ2ZWQpIHtcbiAgICAgICAgICBkZWxldGUgdGhpcy5zdWJzY3JpcHRpb25zW3JlcXVlc3RJZF07XG4gICAgICAgIH1cbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgc2F2ZSQoKTogT2JzZXJ2YWJsZTx7IGlkOiBzdHJpbmcgfT4ge1xuICAgIGlmICh0aGlzLmZsb3dJbmZvU2VydmljZS5mbG93LnByb3BlcnRpZXMuc3RhdGVmdWwpIHtcbiAgICAgIGlmICh0aGlzLnN0YXRlSWQkLnZhbHVlKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmZsb3dTdGF0ZUFwaVNlcnZpY2Uuc2F2ZSh0aGlzLnN0YXRlSWQkLnZhbHVlKS5waXBlKFxuICAgICAgICAgIG1hcCgoeyBxdW90ZUlkIH0pID0+ICh7IGlkOiBxdW90ZUlkIH0pKSxcbiAgICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgICAgQXJyYXkuZnJvbSh0aGlzLnRyYWNrZWRTdGF0ZWZ1bENoYW5nZXNNYXAua2V5cygpKS5mb3JFYWNoKGtleSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMudHJhY2tlZFN0YXRlZnVsQ2hhbmdlc01hcC5zZXQoa2V5LCBmYWxzZSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9KSxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3Qgc3RhdGUgPSB0aGlzLnNhbGVzVHJhbnNhY3Rpb25TZXJ2aWNlLnN0YXRlO1xuICAgICAgaWYgKHN0YXRlKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnNhbGVzVHJhbnNhY3Rpb25BcGlTZXJ2aWNlLnVwc2VydChzdGF0ZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIG9mKHsgaWQ6ICcnIH0pO1xuICB9XG5cbiAgcHVibGljIHN1Ym1pdCQoKTogT2JzZXJ2YWJsZTx7IGlkOiBzdHJpbmcgfT4ge1xuICAgIGlmICh0aGlzLmZsb3dJbmZvU2VydmljZS5mbG93LnByb3BlcnRpZXMuc3RhdGVmdWwpIHtcbiAgICAgIGlmICh0aGlzLnN0YXRlSWQkLnZhbHVlKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmZsb3dTdGF0ZUFwaVNlcnZpY2Uuc3VibWl0KHRoaXMuc3RhdGVJZCQudmFsdWUpLnBpcGUobWFwKCh7IHF1b3RlSWQgfSkgPT4gKHsgaWQ6IHF1b3RlSWQgfSkpKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3Qgc3RhdGUgPSB0aGlzLnNhbGVzVHJhbnNhY3Rpb25TZXJ2aWNlLnN0YXRlO1xuICAgICAgaWYgKHN0YXRlKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnNhbGVzVHJhbnNhY3Rpb25BcGlTZXJ2aWNlLnN1Ym1pdChzdGF0ZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIG9mKHsgaWQ6ICcnIH0pO1xuICB9XG5cbiAgcHVibGljIGdldEZsb3dTdG9yZSgpOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB7XG4gICAgcmV0dXJuIHRoaXMuZmxvd1N0b3JlO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRPd25lcklkQnlTY29wZShzY29wZTogVUlUZW1wbGF0ZVR5cGUpOiBzdHJpbmcge1xuICAgIGNvbnN0IG93bmVySWQgPSB0aGlzLmZsb3dJbmZvU2VydmljZS50ZW1wbGF0ZXNbc2NvcGVdPy5pZDtcbiAgICBpZiAoIW93bmVySWQpIHtcbiAgICAgIHRocm93IGBPd25lcklkIGlzIG5vdCBmb3VuZCBmb3Igc2NvcGUgJHtzY29wZX1gO1xuICAgIH1cblxuICAgIHJldHVybiBvd25lcklkO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRTY29wZUJ5T3duZXJJZChpZDogc3RyaW5nKTogVUlUZW1wbGF0ZVR5cGUgfCB1bmRlZmluZWQge1xuICAgIGZvciAoY29uc3QgdGVtcGxhdGUgb2YgT2JqZWN0LnZhbHVlcyh0aGlzLmZsb3dJbmZvU2VydmljZS50ZW1wbGF0ZXMpKSB7XG4gICAgICBpZiAodGVtcGxhdGUuaWQgPT09IGlkKSB7XG4gICAgICAgIHJldHVybiB0ZW1wbGF0ZS50eXBlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybjtcbiAgfVxuXG4gIHByaXZhdGUgZXhlY1RvUmVxdWVzdChzY29wZTogVUlUZW1wbGF0ZVR5cGUsIGV4ZWM6IEZsb3dTdGF0ZUV4ZWN1dGlvblJlcXVlc3QpOiBGbG93U3RhdGVFeGVjdXRpb25SZXF1ZXN0RFRPIHtcbiAgICBjb25zdCBvd25lcklkID0gdGhpcy5nZXRPd25lcklkQnlTY29wZShzY29wZSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgYWN0aW9uczogZXhlYy5hY3Rpb25zPy5tYXAoYWN0aW9uID0+ICh7IGFwaU5hbWU6IGFjdGlvbi5uYW1lLCBvd25lcklkLCBpbnB1dERhdGE6IGFjdGlvbi5pbnB1dERhdGEgPz8ge30gfSkpLFxuICAgICAgc2VsZWN0b3JzOlxuICAgICAgICBleGVjLnNlbGVjdG9ycyAmJlxuICAgICAgICBPYmplY3QuZW50cmllcyhleGVjLnNlbGVjdG9ycykucmVkdWNlKFxuICAgICAgICAgICh0cnVuazogUmVjb3JkPHN0cmluZywgRmxvd1N0YXRlRXhlY3V0YWJsZURUTz4sIFtrZXksIHNlbGVjdG9yXSkgPT4gKHtcbiAgICAgICAgICAgIC4uLnRydW5rLFxuICAgICAgICAgICAgW2tleV06IHsgYXBpTmFtZTogc2VsZWN0b3IubmFtZSwgb3duZXJJZCwgaW5wdXREYXRhOiBzZWxlY3Rvci5pbnB1dERhdGEgPz8ge30gfSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgICB7fSxcbiAgICAgICAgKSxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIGV4ZWN1dGVSZXF1ZXN0JChcbiAgICByZXF1ZXN0OiBGbG93U3RhdGVFeGVjdXRpb25SZXF1ZXN0RFRPLFxuICAgIGZvcmNlU3Vic2NyaXB0aW9uczogYm9vbGVhbiA9IGZhbHNlLFxuICApOiBPYnNlcnZhYmxlPEZsb3dTdGF0ZUV4ZWN1dGlvblJlc3VsdD4ge1xuICAgIGNvbnN0IGZ1bGxSZXF1ZXN0ID0gY2xvbmVEZWVwKHJlcXVlc3QpO1xuICAgIGlmIChmdWxsUmVxdWVzdC5hY3Rpb25zPy5sZW5ndGggfHwgZm9yY2VTdWJzY3JpcHRpb25zKSB7XG4gICAgICBmb3IgKGNvbnN0IHN1YnNjcmlwdGlvbiBvZiBPYmplY3QudmFsdWVzKHRoaXMuc3Vic2NyaXB0aW9ucykpIHtcbiAgICAgICAgZnVsbFJlcXVlc3Quc2VsZWN0b3JzID0gYXNzaWduKGZ1bGxSZXF1ZXN0LnNlbGVjdG9ycywgc3Vic2NyaXB0aW9uLnJlcXVlc3Quc2VsZWN0b3JzKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBleGVjdXRpb24kID0gdGhpcy5mbG93SW5mb1NlcnZpY2UuZmxvdy5wcm9wZXJ0aWVzLnN0YXRlZnVsXG4gICAgICA/IHRoaXMuZXhlY3V0ZVN0YXRlZnVsJChmdWxsUmVxdWVzdClcbiAgICAgIDogdGhpcy5leGVjdXRlU3RhdGVsZXNzJChmdWxsUmVxdWVzdCk7XG5cbiAgICByZXR1cm4gZXhlY3V0aW9uJC5waXBlKHRhcChyZXN1bHQgPT4gdGhpcy5oYW5kbGVTZWxlY3RvcnNSZXNwb25zZShyZXN1bHQuc2VsZWN0b3JzKSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVTZWxlY3RvcnNSZXNwb25zZShzZWxlY3RvcnM6IFJlY29yZDxzdHJpbmcsIEZsb3dTdGF0ZVNlbGVjdG9yUmVzcG9uc2U8dW5rbm93bj4+KTogdm9pZCB7XG4gICAgT2JqZWN0LmVudHJpZXMoc2VsZWN0b3JzKS5mb3JFYWNoKChbcmVxdWVzdElkLCBzZWxlY3RvclJlc3VsdF0pID0+IHtcbiAgICAgIGlmICghc2VsZWN0b3JSZXN1bHQuc3VjY2Vzcykge1xuICAgICAgICB0aGlzLnRvYXN0U2VydmljZS5hZGQoeyBzZXZlcml0eTogVG9hc3RUeXBlLmVycm9yLCBzdW1tYXJ5OiBzZWxlY3RvclJlc3VsdC5lcnJvck1lc3NhZ2UgfSk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHN1YnNjcmlwdGlvbiQgPSB0aGlzLnN1YnNjcmlwdGlvbnNbcmVxdWVzdElkXT8uZGF0YSQ7XG4gICAgICBpZiAoc3Vic2NyaXB0aW9uJCAmJiBzdWJzY3JpcHRpb24kLnZhbHVlICE9PSBzZWxlY3RvclJlc3VsdCkge1xuICAgICAgICB0aGlzLmNoZWNrU3RhdGVmdWxDaGFuZ2VzKHJlcXVlc3RJZCwgc2VsZWN0b3JSZXN1bHQpO1xuICAgICAgICBzdWJzY3JpcHRpb24kLm5leHQoc2VsZWN0b3JSZXN1bHQpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0U3RhdGVmdWwkKCk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIGNvbnN0IHByb2Nlc3NvcnNMaXN0ID0gZmxhdHRlbihPYmplY3QudmFsdWVzKHRoaXMucHJvY2Vzc29ycykubWFwKG93bmVyTWFwID0+IE9iamVjdC52YWx1ZXMob3duZXJNYXAgPz8ge30pKSk7XG4gICAgY29uc3QgcHJvY2Vzc29ycyA9IHByb2Nlc3NvcnNMaXN0Lmxlbmd0aCA/IHByb2Nlc3NvcnNMaXN0IDogdW5kZWZpbmVkO1xuICAgIGNvbnN0IHNlbGVjdG9ycyA9IE9iamVjdC52YWx1ZXModGhpcy5zdWJzY3JpcHRpb25zKVxuICAgICAgLm1hcCgoeyByZXF1ZXN0IH0pID0+IHJlcXVlc3Quc2VsZWN0b3JzKVxuICAgICAgLmZpbHRlcihpc0RlZmluZWQpXG4gICAgICAucmVkdWNlKCh0cnVuaywgc2VsZWN0b3JzKSA9PiAoeyAuLi50cnVuaywgLi4uc2VsZWN0b3JzIH0pLCB7fSk7XG5cbiAgICByZXR1cm4gdGhpcy5mbG93U3RhdGVBcGlTZXJ2aWNlXG4gICAgICAuaW5pdCh7XG4gICAgICAgIHF1b3RlSWQ6IHRoaXMuZmxvd0luZm9TZXJ2aWNlLmNvbnRleHQuaGVhZGVySWQsXG4gICAgICAgIHBhcmFtczogdGhpcy5mbG93SW5mb1NlcnZpY2UuY29udGV4dCxcbiAgICAgICAgYWN0aW9uc092ZXJyaWRlOiBwcm9jZXNzb3JzPy5maWx0ZXIocHJvY2Vzc29yID0+IHByb2Nlc3Nvci50eXBlID09PSBDb25maWd1cmF0aW9uUHJvY2Vzc29yVHlwZXMuQUNUSU9OKSxcbiAgICAgICAgc2VsZWN0b3JzT3ZlcnJpZGU6IHByb2Nlc3NvcnM/LmZpbHRlcihwcm9jZXNzb3IgPT4gcHJvY2Vzc29yLnR5cGUgPT09IENvbmZpZ3VyYXRpb25Qcm9jZXNzb3JUeXBlcy5TRUxFQ1RPUiksXG4gICAgICAgIHNlbGVjdG9yczogc2VsZWN0b3JzLFxuICAgICAgfSlcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKHsgc3RhdGVJZCwgc2VsZWN0b3JzIH0pID0+IHtcbiAgICAgICAgICB0aGlzLmhhbmRsZVNlbGVjdG9yc1Jlc3BvbnNlKHNlbGVjdG9ycyk7XG4gICAgICAgICAgdGhpcy5zdGF0ZUlkJC5uZXh0KHN0YXRlSWQpO1xuICAgICAgICB9KSxcbiAgICAgICk7XG4gIH1cblxuICBwcml2YXRlIGluaXRCdWZmZXJlZFJlcXVlc3QkKCkge1xuICAgIHJldHVybiB0aGlzLnN0YXRlZnVsUmVxdWVzdFN0cmVhbSQucGlwZShcbiAgICAgIGJ1ZmZlcih0aGlzLnN0YXRlZnVsUmVxdWVzdFN0cmVhbSQucGlwZShkZWJvdW5jZVRpbWUodGhpcy5FWEVDVVRJT05fQlVGRkVSX1RJTUUpKSksXG4gICAgICBzd2l0Y2hNYXAocmVxdWVzdHMgPT4ge1xuICAgICAgICBpZiAoIXRoaXMuc3RhdGVJZCQudmFsdWUpIHtcbiAgICAgICAgICB0aHJvdyAnU3RhdGVmdWwgc2Vzc2lvbiBpcyBub3QgaW5pdGlhbGl6ZWQnO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gbWVyZ2UgYnVmZmVyZWQgcmVxdWVzdHNcbiAgICAgICAgY29uc3QgcmVxdWVzdDogRmxvd1N0YXRlRXhlY3V0aW9uUmVxdWVzdERUTyA9IHtcbiAgICAgICAgICBhY3Rpb25zOiByZXF1ZXN0cy5mbGF0TWFwKCh7IGFjdGlvbnMgfSkgPT4gYWN0aW9ucykuZmlsdGVyKGlzRGVmaW5lZCksXG4gICAgICAgICAgc2VsZWN0b3JzOiByZXF1ZXN0c1xuICAgICAgICAgICAgLm1hcCgoeyBzZWxlY3RvcnMgfSkgPT4gc2VsZWN0b3JzKVxuICAgICAgICAgICAgLmZpbHRlcihpc0RlZmluZWQpXG4gICAgICAgICAgICAucmVkdWNlKChhY2MsIHNlbGVjdG9yc01hcCkgPT4gT2JqZWN0LmFzc2lnbihhY2MsIHNlbGVjdG9yc01hcCksIHt9KSxcbiAgICAgICAgfTtcblxuICAgICAgICB0aGlzLmV4ZWN1dGlvbkluUHJvZ3Jlc3MkLm5leHQodHJ1ZSk7XG4gICAgICAgIHJldHVybiB0aGlzLmZsb3dTdGF0ZUFwaVNlcnZpY2UuZXhlY3V0ZSh0aGlzLnN0YXRlSWQkLnZhbHVlLCByZXF1ZXN0KTtcbiAgICAgIH0pLFxuICAgICAgdGFwKCh7IHN0YXRlSWQgfSkgPT4gdGhpcy5zdGF0ZUlkJC5uZXh0KHN0YXRlSWQpKSxcbiAgICAgIHNoYXJlKCksXG4gICAgICB0YXAoKCkgPT4gdGhpcy5leGVjdXRpb25JblByb2dyZXNzJC5uZXh0KGZhbHNlKSksXG4gICAgICBjYXRjaEVycm9yKGUgPT4ge1xuICAgICAgICB0aGlzLmV4ZWN1dGlvbkluUHJvZ3Jlc3MkLm5leHQoZmFsc2UpO1xuICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBlKTtcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGV4ZWN1dGVTdGF0ZWZ1bCQocmVxdWVzdDogRmxvd1N0YXRlRXhlY3V0aW9uUmVxdWVzdERUTyk6IE9ic2VydmFibGU8Rmxvd1N0YXRlRXhlY3V0aW9uUmVzdWx0PiB7XG4gICAgcmV0dXJuIHRoaXMuZXhlY3V0aW9uSW5Qcm9ncmVzcyQucGlwZShcbiAgICAgIGZpbHRlcihpblByb2dyZXNzID0+ICFpblByb2dyZXNzKSxcbiAgICAgIHRha2UoMSksXG4gICAgICBzd2l0Y2hNYXAoKCkgPT5cbiAgICAgICAgLy8gbWFrZSBzdXJlIHN0cmVhbSBzd2l0Y2hlcyB0byBzdGF0ZWZ1bEV4ZWN1dGlvblJlcXVlc3QkIGJlZm9yZSBwdXNoaW5nIGFuIGV4ZWN1dGlvbiByZXF1ZXN0XG4gICAgICAgIGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICAgIHRoaXMuc3RhdGVmdWxFeGVjdXRpb25SZXF1ZXN0JCxcbiAgICAgICAgICBvZih1bmRlZmluZWQpLnBpcGUodGFwKCgpID0+IHRoaXMuc3RhdGVmdWxSZXF1ZXN0U3RyZWFtJC5uZXh0KHJlcXVlc3QpKSksXG4gICAgICAgIF0pLFxuICAgICAgKSxcbiAgICAgIG1hcCgoW3Jlc3BvbnNlXSkgPT4gcmVzcG9uc2UpLFxuICAgICAgdGFrZSgxKSxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0U3RhdGVsZXNzJCgpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5zYWxlc1RyYW5zYWN0aW9uU2VydmljZS5pbml0KHRoaXMuZmxvd0luZm9TZXJ2aWNlLmNvbnRleHQuaGVhZGVySWQsIHRoaXMuZmxvd0luZm9TZXJ2aWNlLmNvbnRleHQpLnBpcGUoXG4gICAgICB0YXAoKCkgPT4ge1xuICAgICAgICBjb25zdCBhc3NldHMgPSB0aGlzLnNhbGVzVHJhbnNhY3Rpb25TZXJ2aWNlLnN0YXRlPy5hc3NldHM7XG4gICAgICAgIGlmIChhc3NldHMpIHtcbiAgICAgICAgICB0aGlzLmZsb3dTdG9yZSA9IHsgLi4udGhpcy5mbG93U3RvcmUsIGFzc2V0cyB9O1xuICAgICAgICB9XG4gICAgICB9KSxcbiAgICAgIHN3aXRjaE1hcChzdGF0ZSA9PiB0aGlzLmZsb3dDb25maWd1cmF0aW9uLmNhbGN1bGF0ZSQoc3RhdGUpKSxcbiAgICAgIHRhcCgoKSA9PiB0aGlzLnNhbGVzVHJhbnNhY3Rpb25TZXJ2aWNlLmZpbmFsaXplSW5pdCgpKSxcbiAgICAgIG1hcChub29wKSxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBleGVjdXRlU3RhdGVsZXNzJChyZXF1ZXN0OiBGbG93U3RhdGVFeGVjdXRpb25SZXF1ZXN0RFRPKTogT2JzZXJ2YWJsZTxGbG93U3RhdGVFeGVjdXRpb25SZXN1bHQ+IHtcbiAgICB0aGlzLmV4ZWN1dGlvbkluUHJvZ3Jlc3MkLm5leHQodHJ1ZSk7XG5cbiAgICByZXR1cm4gb2YodW5kZWZpbmVkKS5waXBlKFxuICAgICAgdGFwKCgpID0+IHRoaXMuZXhlY3V0ZVN0YXRlbGVzc0FjdGlvbnMocmVxdWVzdCkpLFxuICAgICAgc3dpdGNoTWFwKCgpID0+IHtcbiAgICAgICAgLypcbiAgICAgICAgICBTa2lwIHByaWNlIGNhbGN1bGF0aW9uIGluIGNhc2VcbiAgICAgICAgICAxLiBObyBhY3Rpb25zIGluIHRoZSByZXF1ZXN0XG4gICAgICAgICAgMi4gSW5pdGlhbGl6YXRpb24gcHJvY2VzcyBleGVjdXRpb24gKHN0YXRlIG5vdCBpbml0aWFsaXplZCB5ZXQpXG4gICAgICAgICovXG4gICAgICAgIGNvbnN0IHsgc3RhdGUgfSA9IHRoaXMuc2FsZXNUcmFuc2FjdGlvblNlcnZpY2U7XG4gICAgICAgIGlmICghc3RhdGUgfHwgIXJlcXVlc3QuYWN0aW9ucz8ubGVuZ3RoIHx8ICF0aGlzLmlzSW5pdGlhbGl6ZWQoKSkge1xuICAgICAgICAgIHJldHVybiBvZih1bmRlZmluZWQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiB0aGlzLmZsb3dDb25maWd1cmF0aW9uLmNhbGN1bGF0ZSQoc3RhdGUpO1xuICAgICAgICB9XG4gICAgICB9KSxcbiAgICAgIG1hcCgoKSA9PiB0aGlzLmV4ZWN1dGVTdGF0ZWxlc3NTZWxlY3RvcnMocmVxdWVzdCkpLFxuICAgICAgdGFwKCgpID0+IHRoaXMuZXhlY3V0aW9uSW5Qcm9ncmVzcyQubmV4dChmYWxzZSkpLFxuICAgICAgY2F0Y2hFcnJvcihlID0+IHtcbiAgICAgICAgdGhpcy5leGVjdXRpb25JblByb2dyZXNzJC5uZXh0KGZhbHNlKTtcbiAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gZSk7XG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBleGVjdXRlU3RhdGVsZXNzQWN0aW9ucyhyZXF1ZXN0OiBGbG93U3RhdGVFeGVjdXRpb25SZXF1ZXN0RFRPKTogdm9pZCB7XG4gICAgY29uc3Qgc3RhdGUgPSB0aGlzLnNhbGVzVHJhbnNhY3Rpb25TZXJ2aWNlLnN0YXRlO1xuICAgIGlmICghc3RhdGUgfHwgIXJlcXVlc3QuYWN0aW9ucz8ubGVuZ3RoKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbGV0IGZsb3dTdGF0ZSA9IHN0YXRlO1xuICAgIHJlcXVlc3QuYWN0aW9ucy5mb3JFYWNoKGFjdGlvbiA9PiB7XG4gICAgICB0cnkge1xuICAgICAgICBmbG93U3RhdGUgPSB0aGlzLmV4ZWN1dGVBY3Rpb25TY3JpcHQoZmxvd1N0YXRlLCBhY3Rpb24pID8/IGZsb3dTdGF0ZTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihlKTtcbiAgICAgICAgdGhpcy50b2FzdFNlcnZpY2UuYWRkKHsgc2V2ZXJpdHk6IFRvYXN0VHlwZS5lcnJvciwgc3VtbWFyeTogU3RyaW5nKGUpIH0pO1xuICAgICAgICB0aHJvdyBlO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdGhpcy5zYWxlc1RyYW5zYWN0aW9uU2VydmljZS5zZXRTdGF0ZShmbG93U3RhdGUpO1xuICB9XG5cbiAgcHJpdmF0ZSBleGVjdXRlU3RhdGVsZXNzU2VsZWN0b3JzKHJlcXVlc3Q6IEZsb3dTdGF0ZUV4ZWN1dGlvblJlcXVlc3REVE8pOiBGbG93U3RhdGVFeGVjdXRpb25SZXN1bHQge1xuICAgIGlmICghdGhpcy5zYWxlc1RyYW5zYWN0aW9uU2VydmljZS5zdGF0ZSkge1xuICAgICAgdGhyb3cgJ1N0YXRlIGlzIG5vdCBpbml0aWFsaXplZCc7XG4gICAgfVxuXG4gICAgY29uc3QgZmxvd1N0YXRlID0gdGhpcy5zYWxlc1RyYW5zYWN0aW9uU2VydmljZS5zdGF0ZTtcbiAgICByZXR1cm4gRW50aXR5VXRpbC5lbnRyaWVzKHJlcXVlc3Quc2VsZWN0b3JzID8/IHt9KS5yZWR1Y2UoXG4gICAgICAocmVzdWx0OiBGbG93U3RhdGVFeGVjdXRpb25SZXN1bHQsIFtrZXksIHNlbGVjdG9yXSkgPT4ge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIHJlc3VsdC5zZWxlY3RvcnNba2V5XSA9IHtcbiAgICAgICAgICAgIHN1Y2Nlc3M6IHRydWUsXG4gICAgICAgICAgICByZXN1bHQ6IHRoaXMuZXhlY3V0ZVNlbGVjdG9yU2NyaXB0KGZsb3dTdGF0ZSwgc2VsZWN0b3IpLFxuICAgICAgICAgIH07XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKGUpO1xuICAgICAgICAgIHJlc3VsdC5zZWxlY3RvcnNba2V5XSA9IHtcbiAgICAgICAgICAgIHN1Y2Nlc3M6IGZhbHNlLFxuICAgICAgICAgICAgZXJyb3JNZXNzYWdlOiBTdHJpbmcoZSksXG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICB9LFxuICAgICAgeyBzdGF0ZUlkOiAnJywgc2VsZWN0b3JzOiB7fSB9LFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGluaXRQcm9jZXNzb3JzJCgpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICBjb25zdCBoYXNPdmVycmlkZXMgPSBCb29sZWFuKHRoaXMuY3VzdG9taXphdGlvblNlcnZpY2U/LmdldFRlbXBsYXRlQ29uZmlndXJhdGlvblByb2Nlc3NvcnMpO1xuICAgIGlmICh0aGlzLmZsb3dJbmZvU2VydmljZS5mbG93LnByb3BlcnRpZXMuc3RhdGVmdWwgJiYgIWhhc092ZXJyaWRlcykge1xuICAgICAgLy8gU2tpcCBpbml0aWFsaXphdGlvbiBhcyBiYWNrZW5kIHdpbGwgdGFrZSBwcm9jZXNzb3JzIGZyb20gU0ZcbiAgICAgIHJldHVybiBvZih1bmRlZmluZWQpO1xuICAgIH1cblxuICAgIGNvbnN0IG93bmVycyQgPSBPYmplY3QudmFsdWVzKHRoaXMuZmxvd0luZm9TZXJ2aWNlLnRlbXBsYXRlcylcbiAgICAgIC5tYXAodGVtcGxhdGUgPT4ge1xuICAgICAgICBpZiAoIXRlbXBsYXRlKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgbG9jYWxQcm9jZXNzb3JzJCA9XG4gICAgICAgICAgdGhpcy5jdXN0b21pemF0aW9uU2VydmljZT8uZ2V0VGVtcGxhdGVDb25maWd1cmF0aW9uUHJvY2Vzc29ycz8uKHRlbXBsYXRlLm5hbWUpID8/IG9mKG51bGwpO1xuXG4gICAgICAgIHJldHVybiBsb2NhbFByb2Nlc3NvcnMkLnBpcGUoXG4gICAgICAgICAgc3dpdGNoTWFwKHByb2Nlc3NvcnMgPT5cbiAgICAgICAgICAgIHByb2Nlc3NvcnMgPyBvZihwcm9jZXNzb3JzKSA6IHRoaXMucHJvY2Vzc29yc0FwaVNlcnZpY2UuZmV0Y2hDb25maWd1cmF0aW9uUHJvY2Vzc29ycyQodGVtcGxhdGUuaWQpLFxuICAgICAgICAgICksXG4gICAgICAgICAgdGFwKHByb2Nlc3NvcnMgPT4ge1xuICAgICAgICAgICAgY29uc3QgcHJvY2Vzc29yc01hcCA9IHByb2Nlc3NvcnMucmVkdWNlKChhY2M6IFJlY29yZDxzdHJpbmcsIENvbmZpZ3VyYXRpb25Qcm9jZXNzb3I+LCBwKSA9PiB7XG4gICAgICAgICAgICAgIGFjY1twLmFwaU5hbWVdID0gcDtcbiAgICAgICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgICAgIH0sIHt9KTtcblxuICAgICAgICAgICAgdGhpcy5wcm9jZXNzb3JzW3RlbXBsYXRlLmlkXSA9IHByb2Nlc3NvcnNNYXA7XG4gICAgICAgICAgfSksXG4gICAgICAgICk7XG4gICAgICB9KVxuICAgICAgLmZpbHRlcihpc0RlZmluZWQpO1xuXG4gICAgaWYgKCFvd25lcnMkLmxlbmd0aCkge1xuICAgICAgcmV0dXJuIG9mKHVuZGVmaW5lZCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZvcmtKb2luKG93bmVycyQpLnBpcGUobWFwKG5vb3ApKTtcbiAgfVxuXG4gIHByaXZhdGUgZXhlY3V0ZUFjdGlvblNjcmlwdChyZXF1ZXN0OiBGbG93U3RhdGUsIGV4ZWN1dGFibGU6IEZsb3dTdGF0ZUV4ZWN1dGFibGVEVE8pOiBGbG93U3RhdGUgfCBudWxsIHtcbiAgICBjb25zdCBjb25maWd1cmF0aW9uUHJvY2Vzc29yID0gdGhpcy5wcm9jZXNzb3JzW2V4ZWN1dGFibGUub3duZXJJZF0/LltleGVjdXRhYmxlLmFwaU5hbWVdO1xuXG4gICAgaWYgKCFjb25maWd1cmF0aW9uUHJvY2Vzc29yPy5zY3JpcHQpIHtcbiAgICAgIGNvbnN0IHNjb3BlID0gdGhpcy5nZXRTY29wZUJ5T3duZXJJZChleGVjdXRhYmxlLm93bmVySWQpO1xuICAgICAgY29uc3Qgc2NvcGVUZXh0ID0gc2NvcGUgPyBgIGluICR7c2NvcGV9YCA6ICcnO1xuICAgICAgdGhyb3cgYENvbmZpZ3VyYXRpb25Qcm9jZXNzb3IgJHtleGVjdXRhYmxlLmFwaU5hbWV9JHtzY29wZVRleHR9IG5vdCBmb3VuZGA7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuZXhlY3V0ZVByb2Nlc3NvclNjcmlwdChyZXF1ZXN0LCBjb25maWd1cmF0aW9uUHJvY2Vzc29yLCBleGVjdXRhYmxlLmlucHV0RGF0YSkgYXMgRmxvd1N0YXRlO1xuICB9XG5cbiAgcHJpdmF0ZSBleGVjdXRlU2VsZWN0b3JTY3JpcHQocmVxdWVzdDogRmxvd1N0YXRlLCBleGVjdXRhYmxlOiBGbG93U3RhdGVFeGVjdXRhYmxlRFRPKTogdW5rbm93biB7XG4gICAgY29uc3QgY29uZmlndXJhdGlvblByb2Nlc3NvciA9IHRoaXMucHJvY2Vzc29yc1tleGVjdXRhYmxlLm93bmVySWRdPy5bZXhlY3V0YWJsZS5hcGlOYW1lXTtcblxuICAgIGlmICghY29uZmlndXJhdGlvblByb2Nlc3Nvcj8uc2NyaXB0KSB7XG4gICAgICBjb25zdCBzY29wZSA9IHRoaXMuZ2V0U2NvcGVCeU93bmVySWQoZXhlY3V0YWJsZS5vd25lcklkKTtcbiAgICAgIGNvbnN0IHNjb3BlVGV4dCA9IHNjb3BlID8gYCBpbiAke3Njb3BlfWAgOiAnJztcbiAgICAgIHRocm93IGBDb25maWd1cmF0aW9uUHJvY2Vzc29yICR7ZXhlY3V0YWJsZS5hcGlOYW1lfSR7c2NvcGVUZXh0fSBub3QgZm91bmRgO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmV4ZWN1dGVQcm9jZXNzb3JTY3JpcHQocmVxdWVzdCwgY29uZmlndXJhdGlvblByb2Nlc3NvciwgZXhlY3V0YWJsZS5pbnB1dERhdGEpO1xuICB9XG5cbiAgcHJpdmF0ZSBleGVjdXRlUHJvY2Vzc29yU2NyaXB0KFxuICAgIHJlcXVlc3Q6IEZsb3dTdGF0ZSxcbiAgICBjb25maWd1cmF0aW9uUHJvY2Vzc29yOiBDb25maWd1cmF0aW9uUHJvY2Vzc29yLFxuICAgIGlucHV0RGF0YTogdW5rbm93bixcbiAgKTogdW5rbm93biB7XG4gICAgY29uc3Qgc2NvcGUgPSB0aGlzLmdldFNjb3BlQnlPd25lcklkKGNvbmZpZ3VyYXRpb25Qcm9jZXNzb3Iub3duZXJJZCA/PyAnJyk7XG4gICAgbGV0IGZ1bmN0aW9uVG9FeGVjdXRlID0gdGhpcy5leGVjdXRlZEZ1bmN0aW9uc1tzY29wZSArIGNvbmZpZ3VyYXRpb25Qcm9jZXNzb3IuYXBpTmFtZV07XG5cbiAgICBpZiAoIWZ1bmN0aW9uVG9FeGVjdXRlKSB7XG4gICAgICBjb25zdCBzY3JpcHQgPSBgJHtjb25maWd1cmF0aW9uUHJvY2Vzc29yLnNjcmlwdH1cXG5yZXR1cm4gdHJhbnNmb3JtO2A7XG4gICAgICBjb25zdCBzb3VyY2VNYXAgPSBgXFxuLy8jIHNvdXJjZVVSTD0ke3Njb3BlID8gc2NvcGUgKyAnLycgOiAnJ30ke2NvbmZpZ3VyYXRpb25Qcm9jZXNzb3IuYXBpTmFtZX0uanNgO1xuICAgICAgZnVuY3Rpb25Ub0V4ZWN1dGUgPSBuZXcgRnVuY3Rpb24oc2NyaXB0ICsgc291cmNlTWFwKSgpIGFzIENvbmZpZ3VyYXRpb25Qcm9jZXNzb3JTY3JpcHRGbjtcbiAgICAgIHRoaXMuZXhlY3V0ZWRGdW5jdGlvbnNbc2NvcGUgKyBjb25maWd1cmF0aW9uUHJvY2Vzc29yLmFwaU5hbWVdID0gZnVuY3Rpb25Ub0V4ZWN1dGU7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZ1bmN0aW9uVG9FeGVjdXRlKHtcbiAgICAgIHJlcXVlc3QsXG4gICAgICBpbnB1dERhdGEsXG4gICAgICBmbG93U3RvcmU6IHRoaXMuZmxvd1N0b3JlLFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZW5lcmF0ZVJlcXVlc3RJZChzY29wZTogVUlUZW1wbGF0ZVR5cGUsIHNlbGVjdG9yTmFtZTogc3RyaW5nLCBpbnB1dERhdGE/OiB1bmtub3duKTogc3RyaW5nIHtcbiAgICBjb25zdCBpbnB1dERhdGFIYXNoID0gVVVJRC5oZXgoSlNPTi5zdHJpbmdpZnkoaW5wdXREYXRhKSB8fCAnJykuc2xpY2UoMCwgOCk7XG4gICAgcmV0dXJuIGAke3Njb3BlfS8ke3NlbGVjdG9yTmFtZX0vJHtpbnB1dERhdGFIYXNofWA7XG4gIH1cblxuICBwcml2YXRlIGNoZWNrU3RhdGVmdWxDaGFuZ2VzKHJlcXVlc3RJZDogc3RyaW5nLCBzZWxlY3RvclJlc3VsdDogdW5rbm93bikge1xuICAgIGlmICh0aGlzLnRyYWNrZWRTdGF0ZWZ1bENoYW5nZXNNYXAuaGFzKHJlcXVlc3RJZCkpIHtcbiAgICAgIGlmICghdGhpcy5pbml0aWFsU3RhdGVmdWxEYXRhW3JlcXVlc3RJZF0pIHtcbiAgICAgICAgdGhpcy5pbml0aWFsU3RhdGVmdWxEYXRhW3JlcXVlc3RJZF0gPSBzZWxlY3RvclJlc3VsdDtcbiAgICAgIH1cblxuICAgICAgY29uc3QgaGFzQ2hhbmdlcyA9ICFpc0VxdWFsKHRoaXMuaW5pdGlhbFN0YXRlZnVsRGF0YVtyZXF1ZXN0SWRdLCBzZWxlY3RvclJlc3VsdCk7XG4gICAgICB0aGlzLnRyYWNrZWRTdGF0ZWZ1bENoYW5nZXNNYXAuc2V0KHJlcXVlc3RJZCwgaGFzQ2hhbmdlcyk7XG4gICAgfVxuICB9XG59XG4iXX0=
|
@@ -118,7 +118,6 @@ var CmsAction;
|
|
118
118
|
(function (CmsAction) {
|
119
119
|
CmsAction.GO_TO_PAGE = '[CMS]_GO_TO_PAGE';
|
120
120
|
CmsAction.UPDATE_CUSTOMIZATION = '[CMS]_UPDATE_CUSTOMIZATION';
|
121
|
-
CmsAction.EMIT_CUSTOMIZATION_CHANGES = '[CMS]_EMIT_CUSTOMIZATION_CHANGES';
|
122
121
|
CmsAction.SHOW_OVERLAY = '[CMS]_SHOW_OVERLAY';
|
123
122
|
CmsAction.HIDE_OVERLAY = '[CMS]_HIDE_OVERLAY';
|
124
123
|
CmsAction.HIDE_ALL_OVERLAYS = '[CMS]_HIDE_ALL_OVERLAYS';
|
@@ -144,17 +143,6 @@ var CmsAction;
|
|
144
143
|
payload: { value },
|
145
144
|
};
|
146
145
|
};
|
147
|
-
/**
|
148
|
-
* Emit customization page changes
|
149
|
-
*
|
150
|
-
* @param changes - object with customization page changes
|
151
|
-
*/
|
152
|
-
CmsAction.EmitCustomizationChanges = (changes) => {
|
153
|
-
return {
|
154
|
-
type: CmsAction.EMIT_CUSTOMIZATION_CHANGES,
|
155
|
-
payload: { changes },
|
156
|
-
};
|
157
|
-
};
|
158
146
|
/**
|
159
147
|
* Show an Overlay on the selected page
|
160
148
|
*
|