@ieeesa-npm/groups 0.15.16 → 0.15.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/components/interest-form/interest-form.component.mjs +4 -4
- package/esm2022/lib/services/interest-form.service.mjs +8 -7
- package/fesm2022/ieeesa-npm-groups.mjs +10 -9
- package/fesm2022/ieeesa-npm-groups.mjs.map +1 -1
- package/lib/services/interest-form.service.d.ts +6 -5
- package/package.json +1 -1
|
@@ -110,13 +110,13 @@ export class InterestFormComponent {
|
|
|
110
110
|
* @memberof InterestFormComponent
|
|
111
111
|
*/
|
|
112
112
|
loadMembershipLevels() {
|
|
113
|
-
const
|
|
114
|
-
if (!
|
|
113
|
+
const groupTypeId = this.group?.groupType;
|
|
114
|
+
if (!groupTypeId) {
|
|
115
115
|
this.loadConfig();
|
|
116
116
|
return;
|
|
117
117
|
}
|
|
118
118
|
this.interestFormService
|
|
119
|
-
.getRoles(
|
|
119
|
+
.getRoles(groupTypeId)
|
|
120
120
|
.pipe(takeUntil(this.destroy$))
|
|
121
121
|
.subscribe({
|
|
122
122
|
next: (response) => {
|
|
@@ -509,4 +509,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
509
509
|
type: Inject,
|
|
510
510
|
args: [MAT_DIALOG_DATA]
|
|
511
511
|
}] }, { type: i2.InterestFormService }, { type: i3.GroupsService }, { type: i4.AlertsService }, { type: i1.MatDialog }]; } });
|
|
512
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJlc3QtZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ncm91cHMvc3JjL2xpYi9jb21wb25lbnRzL2ludGVyZXN0LWZvcm0vaW50ZXJlc3QtZm9ybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ncm91cHMvc3JjL2xpYi9jb21wb25lbnRzL2ludGVyZXN0LWZvcm0vaW50ZXJlc3QtZm9ybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULE1BQU0sRUFHTixRQUFRLEVBQ1IsaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQ0wsZUFBZSxHQUdoQixNQUFNLDBCQUEwQixDQUFDO0FBQ2xDLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFDLE9BQU8sRUFFTCxjQUFjLEVBQ2QsZUFBZSxHQUNoQixNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLE9BQU8sRUFDTCxjQUFjLEVBRWQsb0JBQW9CLEdBRXJCLE1BQU0sMEJBQTBCLENBQUM7QUFDbEMsT0FBTyxFQUFFLFNBQVMsRUFBaUIsTUFBTSxxQkFBcUIsQ0FBQztBQUMvRCxPQUFPLEVBR0wsWUFBWSxFQUNaLHNCQUFzQixFQUN0QixpQkFBaUIsR0FDbEIsTUFBTSxvQ0FBb0MsQ0FBQztBQUk1QyxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSw0REFBNEQsQ0FBQztBQUMzRyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUN4RyxPQUFPLEtBQUssU0FBUyxNQUFNLDZCQUE2QixDQUFDOzs7Ozs7OztBQWF6RDs7Ozs7Ozs7O0dBU0c7QUFlSCxNQUFNLE9BQU8scUJB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UyxJQUFJLEVBQUU7Z0JBQ3RDLGVBQWUsRUFBRSxJQUFJLENBQUMsZUFBZTthQUN0QztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7O09BR0c7SUFDSCxRQUFRO1FBQ04sSUFBSSxDQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsU0FBUyxDQUFDLEtBQWEsRUFBRSxRQUE2QjtRQUNwRCxPQUFPLFFBQVEsQ0FBQyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILGlCQUFpQixDQUFDLEtBQWEsRUFBRSxRQUF3QjtRQUN2RCxPQUFPLFFBQVEsQ0FBQyxVQUFvQixDQUFDO0lBQ3ZDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsV0FBVztRQUNULElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDM0IsQ0FBQzsrR0FwZVUscUJBQXFCLDhEQTJDVixlQUFlO21HQTNDMUIscUJBQXFCLGdGQzVFbEMsbzFSQThOQSxvNVlENUpJLFlBQVksK1BBQ1osY0FBYyw2akNBQ2Qsb0JBQW9CLHlLQUNwQixjQUFjLG9KQUNkLDZCQUE2Qjs7NEZBTXBCLHFCQUFxQjtrQkFkakMsU0FBUzsrQkFDRSxzQkFBc0IsY0FDcEIsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osY0FBYzt3QkFDZCxvQkFBb0I7d0JBQ3BCLGNBQWM7d0JBQ2QsNkJBQTZCO3FCQUM5QixpQkFHYyxpQkFBaUIsQ0FBQyxJQUFJOzswQkEyQ2xDLFFBQVE7OzBCQUVSLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIEluamVjdCxcclxuICBPbkRlc3Ryb3ksXHJcbiAgT25Jbml0LFxyXG4gIE9wdGlvbmFsLFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQge1xyXG4gIE1BVF9ESUFMT0dfREFUQSxcclxuICBNYXREaWFsb2csXHJcbiAgTWF0RGlhbG9nUmVmLFxyXG59IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQge1xyXG4gIENka0RyYWdEcm9wLFxyXG4gIERyYWdEcm9wTW9kdWxlLFxyXG4gIG1vdmVJdGVtSW5BcnJheSxcclxufSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcclxuaW1wb3J0IHtcclxuICBSYWRpb0NvbXBvbmVudCxcclxuICBSYWRpb09wdGlvbixcclxuICBTbGlkZVRvZ2dsZUNvbXBvbmVudCxcclxuICBTbGlkZVRvZ2dsZU9wdGlvbixcclxufSBmcm9tICdAaWVlZXNhLW5wbS9wcmVzZW50YXRpb24nO1xyXG5pbXBvcnQgeyBBbGVydFR5cGUsIEFsZXJ0c1NlcnZpY2UgfSBmcm9tICdAaWVlZXNhLW5wbS91dGlsaXR5JztcclxuaW1wb3J0IHtcclxuICBDdXN0b21RdWVzdGlvbixcclxuICBHcm91cFJvbGUsXHJcbiAgSW50ZXJlc3RNb2RlLFxyXG4gIE1FTUJFUl9MRVZFTF9ST0xFX1RZUEUsXHJcbiAgUXVlc3Rpb25GaWVsZFR5cGUsXHJcbn0gZnJvbSAnLi4vLi4vbW9kZWxzL2N1c3RvbS1xdWVzdGlvbi5tb2RlbCc7XHJcbmltcG9ydCB7IEdyb3VwSW5mbyB9IGZyb20gJy4uLy4uL21vZGVscy9ncm91cC1pbmZvLm1vZGVsJztcclxuaW1wb3J0IHsgR3JvdXBzU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2dyb3Vwcy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSW50ZXJlc3RGb3JtU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2ludGVyZXN0LWZvcm0uc2VydmljZSc7XHJcbmltcG9ydCB7IEN1c3RvbVF1ZXN0aW9uRWRpdG9yQ29tcG9uZW50IH0gZnJvbSAnLi4vY3VzdG9tLXF1ZXN0aW9uLWVkaXRvci9jdXN0b20tcXVlc3Rpb24tZWRpdG9yLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEludGVyZXN0Rm9ybVByZXZpZXdDb21wb25lbnQgfSBmcm9tICcuLi9pbnRlcmVzdC1mb3JtLXByZXZpZXcvaW50ZXJlc3QtZm9ybS1wcmV2aWV3LmNvbXBvbmVudCc7XHJcbmltcG9ydCAqIGFzIGNvbnN0YW50cyBmcm9tICcuLi8uLi9hc3NldHMvY29uc3RhbnRzLmpzb24nO1xyXG5cclxuLyoqXHJcbiAqIFN0YW5kYXJkIChsb2NrZWQpIHF1ZXN0aW9uIHJvdyBzaG93biBpbiB0aGUgSW50ZXJlc3QgRm9ybSB0YWIuXHJcbiAqIEBleHBvcnRcclxuICogQGludGVyZmFjZSBTdGFuZGFyZFF1ZXN0aW9uUm93XHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIFN0YW5kYXJkUXVlc3Rpb25Sb3cge1xyXG4gIGlkOiBudW1iZXI7XHJcbiAgbGFiZWw6IHN0cmluZztcclxuICB0YWc6IHN0cmluZztcclxufVxyXG5cclxuLyoqXHJcbiAqIFwiSW50ZXJlc3QgRm9ybVwiIHRhYiBjb250ZW50IG9mIHRoZSBSb3N0ZXIgSW50ZXJlc3RzIGRpYWxvZyAoU1AzTS0zMTcpLiBUaGVcclxuICogZ3JvdXAgYWRtaW4gZW5hYmxlcy9kaXNhYmxlcyB0aGUgZm9ybSwgdmlld3MgbG9ja2VkIHN0YW5kYXJkIHF1ZXN0aW9ucyxcclxuICogY2hvb3NlcyB0aGUgZGVmYXVsdCBtZW1iZXJzaGlwIGxldmVsIGFuZCBtYW5hZ2VzIGN1c3RvbSBxdWVzdGlvbnNcclxuICogKGFkZCAvIGVkaXQgLyByZW9yZGVyIC8gcmVtb3ZlKSwgcGVyc2lzdGVkIHRvIHRoZSBncm91cHMgYmFja2VuZCB2aWFcclxuICogSW50ZXJlc3RGb3JtU2VydmljZS4gRWFjaCBxdWVzdGlvbiBpcyBzYXZlZCBpbmRpdmlkdWFsbHkgKGNyZWF0ZS91cGRhdGUpIGFuZFxyXG4gKiB0aGUgZW5hYmxlIG1vZGUgKyBkZWZhdWx0IGxldmVsIGFyZSBzYXZlZCB2aWEgdGhlIGludGVyZXN0LWNvbmZpZyBlbmRwb2ludC5cclxuICogQGV4cG9ydFxyXG4gKiBAY2xhc3MgSW50ZXJlc3RGb3JtQ29tcG9uZW50XHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2llZWVzYS1pbnRlcmVzdC1mb3JtJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIERyYWdEcm9wTW9kdWxlLFxyXG4gICAgU2xpZGVUb2dnbGVDb21wb25lbnQsXHJcbiAgICBSYWRpb0NvbXBvbmVudCxcclxuICAgIEN1c3RvbVF1ZXN0aW9uRWRpdG9yQ29tcG9uZW50LFxyXG4gIF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2ludGVyZXN0LWZvcm0uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2ludGVyZXN0LWZvcm0uY29tcG9uZW50LnNjc3MnXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgSW50ZXJlc3RGb3JtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgY29uc3RhbnRzOiBhbnkgPSBjb25zdGFudHM7XHJcbiAgaW50ZXJlc3RGb3JtVGV4dHMgPSB0aGlzLmNvbnN0YW50cz8ucm9zdGVySW50ZXJlc3RzPy5pbnRlcmVzdEZvcm07XHJcbiAgY2hhbmdlc05vdGljZSA9IHRoaXMuaW50ZXJlc3RGb3JtVGV4dHM/LmNoYW5nZXNOb3RpY2U7XHJcbiAgc2VjdGlvblRpdGxlID0gdGhpcy5pbnRlcmVzdEZvcm1UZXh0cz8uc2VjdGlvblRpdGxlO1xyXG4gIHNlY3Rpb25EZXNjcmlwdGlvbiA9IHRoaXMuaW50ZXJlc3RGb3JtVGV4dHM/LnNlY3Rpb25EZXNjcmlwdGlvbjtcclxuICBzdGFuZGFyZFF1ZXN0aW9uc1RpdGxlID0gdGhpcy5pbnRlcmVzdEZvcm1UZXh0cz8uc3RhbmRhcmRRdWVzdGlvbnNUaXRsZTtcclxuICBzdGFuZGFyZFF1ZXN0aW9uc0hpbnQgPSB0aGlzLmludGVyZXN0Rm9ybVRleHRzPy5zdGFuZGFyZFF1ZXN0aW9uc0hpbnQ7XHJcbiAgZGVmYXVsdE1lbWJlcnNoaXBUaXRsZSA9IHRoaXMuaW50ZXJlc3RGb3JtVGV4dHM/LmRlZmF1bHRNZW1iZXJzaGlwVGl0bGU7XHJcbiAgZGVmYXVsdE1lbWJlcnNoaXBEZXNjcmlwdGlvbiA9XHJcbiAgICB0aGlzLmludGVyZXN0Rm9ybVRleHRzPy5kZWZhdWx0TWVtYmVyc2hpcERlc2NyaXB0aW9uO1xyXG4gIGN1c3RvbVF1ZXN0aW9uc1RpdGxlID0gdGhpcy5pbnRlcmVzdEZvcm1UZXh0cz8uY3VzdG9tUXVlc3Rpb25zVGl0bGU7XHJcbiAgYWRkUXVlc3Rpb25MYWJlbCA9IHRoaXMuaW50ZXJlc3RGb3JtVGV4dHM/LmFkZFF1ZXN0aW9uTGFiZWw7XHJcbiAgcmVxdWlyZWRUYWcgPSB0aGlzLmludGVyZXN0Rm9ybVRleHRzPy5yZXF1aXJlZFRhZztcclxuICBzdGFuZGFyZFRhZyA9IHRoaXMuaW50ZXJlc3RGb3JtVGV4dHM/LnN0YW5kYXJkVGFnO1xyXG4gIG5ld1F1ZXN0aW9uTGFiZWwgPSB0aGlzLmludGVyZXN0Rm9ybVRleHRzPy5uZXdRdWVzdGlvbkxhYmVsO1xyXG4gIGVkaXRRdWVzdGlvbkFyaWFMYWJlbCA9IHRoaXMuaW50ZXJlc3RGb3JtVGV4dHM/LmVkaXRRdWVzdGlvbkFyaWFMYWJlbDtcclxuICBkZWxldGVRdWVzdGlvbkFyaWFMYWJlbCA9IHRoaXMuaW50ZXJlc3RGb3JtVGV4dHM/LmRlbGV0ZVF1ZXN0aW9uQXJpYUxhYmVsO1xyXG4gIG5vTGV2ZWxzTWVzc2FnZSA9IHRoaXMuaW50ZXJlc3RGb3JtVGV4dHM/Lm5vTGV2ZWxzTWVzc2FnZTtcclxuICB0eXBlTGFiZWxzID0gdGhpcy5pbnRlcmVzdEZvcm1UZXh0cz8ucXVlc3Rpb25FZGl0b3I/LnR5cGVzO1xyXG4gIGNhbmNlbExhYmVsID0gdGhpcy5jb25zdGFudHM/LnJvc3RlckludGVyZXN0cz8uZm9vdGVyPy5jYW5jZWw7XHJcbiAgcHJldmlld0xhYmVsID0gdGhpcy5jb25zdGFudHM/LnJvc3RlckludGVyZXN0cz8uZm9vdGVyPy5wcmV2aWV3O1xyXG5cclxuICBlbmFibGVGb3JtVG9nZ2xlITogU2xpZGVUb2dnbGVPcHRpb247XHJcbiAgc3RhbmRhcmRRdWVzdGlvbnM6IFN0YW5kYXJkUXVlc3Rpb25Sb3dbXSA9IFtdO1xyXG4gIG1lbWJlcnNoaXBMZXZlbHM6IFJhZGlvT3B0aW9uW10gPSBbXTtcclxuICAvLyBEZWZhdWx0cyB0byBkaXNhYmxlZCAoT0ZGKS4gVGhlIHJlYWwgc3RhdGUgaXMgZHJpdmVuIGJ5IHRoZSBBUEkgcmVzcG9uc2UgaW5cclxuICAvLyBsb2FkQ29uZmlnOyB3aGVuIG5vIGNvbmZpZyBoYXMgYmVlbiBzYXZlZCB5ZXQgdGhlIGJhY2tlbmQgcmV0dXJucyBESVNBQkxFRCxcclxuICAvLyBzbyB0aGUgZmlyc3QtdGltZSB2aWV3IGNvcnJlY3RseSBzaG93cyB0aGUgdG9nZ2xlIE9GRi5cclxuICBpc0Zvcm1FbmFibGVkID0gZmFsc2U7XHJcbiAgc2VsZWN0ZWRMZXZlbElkOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcclxuICBsZXZlbHM6IEdyb3VwUm9sZVtdID0gW107XHJcblxyXG4gIGN1c3RvbVF1ZXN0aW9uczogQ3VzdG9tUXVlc3Rpb25bXSA9IFtdO1xyXG4gIGVkaXRpbmdRdWVzdGlvbklkOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcclxuICBwcml2YXRlIGlzRWRpdGluZ05ld1F1ZXN0aW9uID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXHJcbiAgICBAT3B0aW9uYWwoKSBwcml2YXRlIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPHVua25vd24+LFxyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXHJcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgcHVibGljIGdyb3VwOiBHcm91cEluZm8sXHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcclxuICAgIHByaXZhdGUgaW50ZXJlc3RGb3JtU2VydmljZTogSW50ZXJlc3RGb3JtU2VydmljZSxcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xyXG4gICAgcHJpdmF0ZSBncm91cHNTZXJ2aWNlOiBHcm91cHNTZXJ2aWNlLFxyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXHJcbiAgICBwcml2YXRlIGFsZXJ0U2VydmljZTogQWxlcnRzU2VydmljZSxcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xyXG4gICAgcHJpdmF0ZSBkaWFsb2c6IE1hdERpYWxvZ1xyXG4gICkge31cclxuXHJcbiAgLyoqXHJcbiAgICogSW5pdGlhbGl6ZXMgc3RhdGljIFVJIG9wdGlvbnMgYW5kIGxvYWRzIHRoZSBncm91cCdzIGludGVyZXN0IGNvbmZpZyBhbmRcclxuICAgKiBjdXN0b20gcXVlc3Rpb25zIGZyb20gdGhlIGJhY2tlbmQuXHJcbiAgICogQG1lbWJlcm9mIEludGVyZXN0Rm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5pbnRlcmVzdEZvcm1TZXJ2aWNlLnNldEFwaUJhc2VVcmwodGhpcy5ncm91cHNTZXJ2aWNlPy5hcGlCYXNlVXJsKTtcclxuICAgIHRoaXMuZW5hYmxlRm9ybVRvZ2dsZSA9IHtcclxuICAgICAgaWQ6IDEsXHJcbiAgICAgIGxhYmVsOiAnJyxcclxuICAgICAgY2hlY2tlZDogdGhpcy5pc0Zvcm1FbmFibGVkLFxyXG4gICAgICBhcmlhTGFiZWw6IHRoaXMuc2VjdGlvblRpdGxlLFxyXG4gICAgfTtcclxuICAgIHRoaXMuc3RhbmRhcmRRdWVzdGlvbnMgPSAoXHJcbiAgICAgIHRoaXMuaW50ZXJlc3RGb3JtVGV4dHM/LnN0YW5kYXJkUXVlc3Rpb25zID8/IFtdXHJcbiAgICApLm1hcCgobGFiZWw6IHN0cmluZywgaW5kZXg6IG51bWJlcikgPT4gKHtcclxuICAgICAgaWQ6IGluZGV4ICsgMSxcclxuICAgICAgbGFiZWwsXHJcbiAgICAgIHRhZzogdGhpcy5zdGFuZGFyZFRhZyxcclxuICAgIH0pKTtcclxuICAgIGlmICh0aGlzLmdyb3VwPy5ncm91cElkKSB7XHJcbiAgICAgIHRoaXMubG9hZE1lbWJlcnNoaXBMZXZlbHMoKTtcclxuICAgICAgdGhpcy5sb2FkUXVlc3Rpb25zKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBMb2FkcyB0aGUgcmVhbCBtZW1iZXJzaGlwIGxldmVscyBmb3IgdGhlIGdyb3VwJ3MgZ3JvdXAgdHlwZSBhbmQgdGhlbiB0aGVcclxuICAgKiBzYXZlZCBpbnRlcmVzdCBjb25maWd1cmF0aW9uIChzbyB0aGUgc2F2ZWQgZGVmYXVsdCBsZXZlbCBjYW4gYmVcclxuICAgKiBwcmVzZWxlY3RlZCkuXHJcbiAgICogQG1lbWJlcm9mIEludGVyZXN0Rm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIGxvYWRNZW1iZXJzaGlwTGV2ZWxzKCk6IHZvaWQge1xyXG4gICAgY29uc3QgYXBwSWQgPSB0aGlzLmdyb3Vwc1NlcnZpY2U/LmdldFVzZXJJbmZvKCk/LmFwcElkO1xyXG4gICAgaWYgKCFhcHBJZCkge1xyXG4gICAgICB0aGlzLmxvYWRDb25maWcoKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5pbnRlcmVzdEZvcm1TZXJ2aWNlXHJcbiAgICAgIC5nZXRSb2xlcyhhcHBJZClcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgIC8vIE1lbWJlciBsZXZlbHMgYXJlIHRoZSByb2xlcyB3aG9zZSByb2xlVHlwZU5hbWUgaXMgXCJNZW1iZXIgTGV2ZWxcIi5cclxuICAgICAgICAgIHRoaXMubGV2ZWxzID0gKHJlc3BvbnNlPy5ib2R5ID8/IFtdKS5maWx0ZXIoXHJcbiAgICAgICAgICAgIChyb2xlKSA9PiByb2xlLnJvbGVUeXBlTmFtZSA9PT0gTUVNQkVSX0xFVkVMX1JPTEVfVFlQRVxyXG4gICAgICAgICAgKTtcclxuICAgICAgICAgIHRoaXMubG9hZENvbmZpZygpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJyb3I6IChlcnJvcikgPT4ge1xyXG4gICAgICAgICAgdGhpcy5oYW5kbGVFcnJvcihlcnJvcik7XHJcbiAgICAgICAgICB0aGlzLmxvYWRDb25maWcoKTtcclxuICAgICAgICB9LFxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIExvYWRzIHRoZSBncm91cCdzIGludGVyZXN0IGNvbmZpZ3VyYXRpb24gKG1vZGUgKyBkZWZhdWx0IGxldmVsKSBhbmQgc3luY3NcclxuICAgKiB0aGUgdG9nZ2xlIGFuZCB0aGUgZGVmYXVsdC1sZXZlbCByYWRpbyBzZWxlY3Rpb24uXHJcbiAgICogQG1lbWJlcm9mIEludGVyZXN0Rm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIGxvYWRDb25maWcoKTogdm9pZCB7XHJcbiAgICB0aGlzLmludGVyZXN0Rm9ybVNlcnZpY2VcclxuICAgICAgLmdldEludGVyZXN0Q29uZmlnKHRoaXMuZ3JvdXAuZ3JvdXBJZClcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IHJlc3BvbnNlPy5ib2R5O1xyXG4gICAgICAgICAgdGhpcy5pc0Zvcm1FbmFibGVkID0gY29uZmlnPy5pbnRlcmVzdE1vZGUgPT09IEludGVyZXN0TW9kZS5GT1JNO1xyXG4gICAgICAgICAgdGhpcy5lbmFibGVGb3JtVG9nZ2xlID0ge1xyXG4gICAgICAgICAgICAuLi50aGlzLmVuYWJsZUZvcm1Ub2dnbGUsXHJcbiAgICAgICAgICAgIGNoZWNrZWQ6IHRoaXMuaXNGb3JtRW5hYmxlZCxcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgICAvLyBQcmVzZWxlY3QgdGhlIHNhdmVkIGRlZmF1bHQgbGV2ZWwsIGVsc2UgdGhlIGZpcnN0IG1lbWJlciBsZXZlbC5cclxuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRMZXZlbElkID1cclxuICAgICAgICAgICAgY29uZmlnPy5kZWZhdWx0TGV2ZWxJZCA/PyB0aGlzLmxldmVsc1swXT8ucm9sZUlkID8/IG51bGw7XHJcbiAgICAgICAgICB0aGlzLmJ1aWxkTWVtYmVyc2hpcExldmVsT3B0aW9ucygpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJyb3I6IChlcnJvcikgPT4gdGhpcy5oYW5kbGVFcnJvcihlcnJvciksXHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQnVpbGRzIHRoZSByYWRpbyBvcHRpb25zIGZyb20gdGhlIHJlYWwgbWVtYmVyc2hpcCBsZXZlbHMsIG1hcmtpbmcgdGhlXHJcbiAgICogY3VycmVudGx5IHNlbGVjdGVkIGxldmVsIGFzIGNoZWNrZWQuXHJcbiAgICogQG1lbWJlcm9mIEludGVyZXN0Rm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIGJ1aWxkTWVtYmVyc2hpcExldmVsT3B0aW9ucygpOiB2b2lkIHtcclxuICAgIHRoaXMubWVtYmVyc2hpcExldmVscyA9IHRoaXMubGV2ZWxzLm1hcCgobGV2ZWwpID0+ICh7XHJcbiAgICAgIGlkOiBsZXZlbC5yb2xlSWQsXHJcbiAgICAgIGxhYmVsOiBsZXZlbC5yb2xlTmFtZSxcclxuICAgICAgY2hlY2tlZDogbGV2ZWwucm9sZUlkID09PSB0aGlzLnNlbGVjdGVkTGV2ZWxJZCxcclxuICAgIH0pKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIExvYWRzIHRoZSBncm91cCdzIGN1c3RvbSBxdWVzdGlvbnMuXHJcbiAgICogQG1lbWJlcm9mIEludGVyZXN0Rm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIGxvYWRRdWVzdGlvbnMoKTogdm9pZCB7XHJcbiAgICB0aGlzLmludGVyZXN0Rm9ybVNlcnZpY2VcclxuICAgICAgLmdldFF1ZXN0aW9ucyh0aGlzLmdyb3VwLmdyb3VwSWQpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmN1c3RvbVF1ZXN0aW9ucyA9IHJlc3BvbnNlPy5ib2R5ID8/IFtdO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJyb3I6IChlcnJvcikgPT4gdGhpcy5oYW5kbGVFcnJvcihlcnJvciksXHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVXBkYXRlcyB0aGUgZm9ybS1lbmFibGVkIHN0YXRlIGFuZCBwZXJzaXN0cyB0aGUgbmV3IGludGVyZXN0IG1vZGUuXHJcbiAgICogQHBhcmFtIHtTbGlkZVRvZ2dsZU9wdGlvbn0gdG9nZ2xlXHJcbiAgICogQG1lbWJlcm9mIEludGVyZXN0Rm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uRW5hYmxlRm9ybVRvZ2dsZSh0b2dnbGU6IFNsaWRlVG9nZ2xlT3B0aW9uKTogdm9pZCB7XHJcbiAgICB0aGlzLmlzRm9ybUVuYWJsZWQgPSB0b2dnbGU/LmNoZWNrZWQ7XHJcbiAgICBpZiAoIXRoaXMuaXNGb3JtRW5hYmxlZCkge1xyXG4gICAgICAvLyBEaXNhYmxpbmcgYWx3YXlzIHBlcnNpc3RzIGltbWVkaWF0ZWx5IChubyBsZXZlbCBuZWVkZWQpLlxyXG4gICAgICB0aGlzLnNhdmVDb25maWcoKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgLy8gRW5hYmxpbmcgcmVxdWlyZXMgYSBkZWZhdWx0IGxldmVsIChiYWNrZW5kIHJlamVjdHMgRk9STSB3aXRob3V0IG9uZSkuIElmXHJcbiAgICAvLyBub25lIGlzIHNlbGVjdGVkIHlldCwgYXV0by1zZWxlY3QgdGhlIGxldmVsIGZsYWdnZWQgZGVmYXVsdCwgZWxzZSB0aGVcclxuICAgIC8vIGZpcnN0IGF2YWlsYWJsZSBsZXZlbCwgc28gdGhlIHRvZ2dsZSBwZXJzaXN0cyBpbW1lZGlhdGVseS5cclxuICAgIGlmICghdGhpcy5zZWxlY3RlZExldmVsSWQpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZExldmVsSWQgPSB0aGlzLmxldmVsc1swXT8ucm9sZUlkID8/IG51bGw7XHJcbiAgICAgIHRoaXMuYnVpbGRNZW1iZXJzaGlwTGV2ZWxPcHRpb25zKCk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5zZWxlY3RlZExldmVsSWQpIHtcclxuICAgICAgdGhpcy5zYXZlQ29uZmlnKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAvLyBObyBtZW1iZXJzaGlwIGxldmVscyBjb25maWd1cmVkIGZvciB0aGlzIGdyb3VwIHR5cGU6IGNhbm5vdCBlbmFibGUsIHNvXHJcbiAgICAgIC8vIHJldmVydCB0aGUgdG9nZ2xlL2VuYWJsZWQgc3RhdGUgdG8gZmFsc2UgYmVmb3JlIGFsZXJ0aW5nIChub3RoaW5nIHdhc1xyXG4gICAgICAvLyBwZXJzaXN0ZWQsIGFuZCB0aGUgZGVwZW5kZW50IHNlY3Rpb25zIG11c3Qgbm90IHN0YXkgdmlzaWJsZSkuXHJcbiAgICAgIHRoaXMuaXNGb3JtRW5hYmxlZCA9IGZhbHNlO1xyXG4gICAgICB0aGlzLmVuYWJsZUZvcm1Ub2dnbGUgPSB7XHJcbiAgICAgICAgLi4udGhpcy5lbmFibGVGb3JtVG9nZ2xlLFxyXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICB9O1xyXG4gICAgICB0aGlzLmFsZXJ0U2VydmljZT8uc2hvd01lc3NhZ2Uoe1xyXG4gICAgICAgIHN0YXR1czogJ2N1c3RvbScsXHJcbiAgICAgICAgbWVzc2FnZTogdGhpcy5pbnRlcmVzdEZvcm1UZXh0cz8ubm9MZXZlbHNNZXNzYWdlLFxyXG4gICAgICAgIGFsZXJ0VHlwZTogQWxlcnRUeXBlPy5FUlJPUixcclxuICAgICAgICBpc0Nsb3NlTmVlZGVkOiB0cnVlLFxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFBlcnNpc3RzIHRoZSBpbnRlcmVzdCBjb25maWcuIFRoZSBkZWZhdWx0IGxldmVsIGlzIG9ubHkgc2VudCBmb3IgdGhlXHJcbiAgICogZW5hYmxlZCAoRk9STSkgbW9kZTsgRElTQUJMRUQgY2xlYXJzIGl0LiBFbmFibGluZyB3aXRob3V0IGEgc2VsZWN0ZWQgbGV2ZWxcclxuICAgKiBpcyBza2lwcGVkIHNvIGFuIGludmFsaWQgcmVxdWVzdCBpcyBuZXZlciBzZW50LlxyXG4gICAqIEBtZW1iZXJvZiBJbnRlcmVzdEZvcm1Db21wb25lbnRcclxuICAgKi9cclxuICBzYXZlQ29uZmlnKCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLmdyb3VwPy5ncm91cElkKSByZXR1cm47XHJcbiAgICBpZiAodGhpcy5pc0Zvcm1FbmFibGVkICYmICF0aGlzLnNlbGVjdGVkTGV2ZWxJZCkgcmV0dXJuO1xyXG4gICAgdGhpcy5pbnRlcmVzdEZvcm1TZXJ2aWNlXHJcbiAgICAgIC5zYXZlSW50ZXJlc3RDb25maWcoe1xyXG4gICAgICAgIGdyb3VwSWQ6IHRoaXMuZ3JvdXAuZ3JvdXBJZCxcclxuICAgICAgICBpbnRlcmVzdE1vZGU6IHRoaXMuaXNGb3JtRW5hYmxlZFxyXG4gICAgICAgICAgPyBJbnRlcmVzdE1vZGUuRk9STVxyXG4gICAgICAgICAgOiBJbnRlcmVzdE1vZGUuRElTQUJMRUQsXHJcbiAgICAgICAgZGVmYXVsdExldmVsSWQ6IHRoaXMuaXNGb3JtRW5hYmxlZCA/IHRoaXMuc2VsZWN0ZWRMZXZlbElkIDogbnVsbCxcclxuICAgICAgfSlcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICBlcnJvcjogKGVycm9yKSA9PiB0aGlzLmhhbmRsZUVycm9yKGVycm9yKSxcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZWNvcmRzIHRoZSBzZWxlY3RlZCBkZWZhdWx0IG1lbWJlcnNoaXAgbGV2ZWwgYW5kIHBlcnNpc3RzIHRoZSBjb25maWcgd2hlblxyXG4gICAqIHRoZSBmb3JtIGlzIGVuYWJsZWQuXHJcbiAgICogQHBhcmFtIHtSYWRpb09wdGlvbn0gb3B0aW9uXHJcbiAgICogQG1lbWJlcm9mIEludGVyZXN0Rm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uTWVtYmVyc2hpcExldmVsQ2hhbmdlKG9wdGlvbjogUmFkaW9PcHRpb24pOiB2b2lkIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRMZXZlbElkID0gU3RyaW5nKG9wdGlvbj8uaWQpO1xyXG4gICAgaWYgKHRoaXMuaXNGb3JtRW5hYmxlZCkge1xyXG4gICAgICB0aGlzLnNhdmVDb25maWcoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEFkZHMgYSBuZXcgYmxhbmsgcXVlc3Rpb24gYW5kIG9wZW5zIGl0cyBlZGl0b3IuIE9ubHkgb25lIGVkaXRvciBpcyBvcGVuIGF0XHJcbiAgICogYSB0aW1lLlxyXG4gICAqIEBtZW1iZXJvZiBJbnRlcmVzdEZvcm1Db21wb25lbnRcclxuICAgKi9cclxuICBvbkFkZFF1ZXN0aW9uKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuZWRpdGluZ1F1ZXN0aW9uSWQpIHJldHVybjtcclxuICAgIGNvbnN0IHRlbXBJZCA9IGBuZXctJHtEYXRlLm5vdygpfWA7XHJcbiAgICBjb25zdCBuZXdRdWVzdGlvbjogQ3VzdG9tUXVlc3Rpb24gPSB7XHJcbiAgICAgIHF1ZXN0aW9uSWQ6IHRlbXBJZCxcclxuICAgICAgZ3JvdXBJZDogdGhpcy5ncm91cD8uZ3JvdXBJZCxcclxuICAgICAgcXVlc3Rpb25MYWJlbDogJycsXHJcbiAgICAgIGZpZWxkVHlwZTogbnVsbCxcclxuICAgICAgaXNSZXF1aXJlZDogdHJ1ZSxcclxuICAgICAgcGxhY2Vob2xkZXI6ICcnLFxyXG4gICAgICBoZWxwVGV4dDogJycsXHJcbiAgICAgIG9wdGlvbnM6IHVuZGVmaW5lZCxcclxuICAgICAgdmlld09yZGVyOiB0aGlzLmN1c3RvbVF1ZXN0aW9ucy5sZW5ndGgsXHJcbiAgICB9O1xyXG4gICAgdGhpcy5jdXN0b21RdWVzdGlvbnMgPSBbLi4udGhpcy5jdXN0b21RdWVzdGlvbnMsIG5ld1F1ZXN0aW9uXTtcclxuICAgIHRoaXMuZWRpdGluZ1F1ZXN0aW9uSWQgPSB0ZW1wSWQ7XHJcbiAgICB0aGlzLmlzRWRpdGluZ05ld1F1ZXN0aW9uID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE9wZW5zIHRoZSBlZGl0b3IgZm9yIGFuIGV4aXN0aW5nIHF1ZXN0aW9uLlxyXG4gICAqIEBwYXJhbSB7Q3VzdG9tUXVlc3Rpb259IHF1ZXN0aW9uXHJcbiAgICogQG1lbWJlcm9mIEludGVyZXN0Rm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uRWRpdFF1ZXN0aW9uKHF1ZXN0aW9uOiBDdXN0b21RdWVzdGlvbik6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuZWRpdGluZ1F1ZXN0aW9uSWQpIHJldHVybjtcclxuICAgIHRoaXMuZWRpdGluZ1F1ZXN0aW9uSWQgPSBxdWVzdGlvbi5xdWVzdGlvbklkID8/IG51bGw7XHJcbiAgICB0aGlzLmlzRWRpdGluZ05ld1F1ZXN0aW9uID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDcmVhdGVzIG9yIHVwZGF0ZXMgdGhlIHF1ZXN0aW9uIG9uIHRoZSBiYWNrZW5kIGFuZCByZWZyZXNoZXMgdGhlIGxpc3QuXHJcbiAgICogQHBhcmFtIHtDdXN0b21RdWVzdGlvbn0gcXVlc3Rpb25cclxuICAgKiBAbWVtYmVyb2YgSW50ZXJlc3RGb3JtQ29tcG9uZW50XHJcbiAgICovXHJcbiAgb25TYXZlUXVlc3Rpb24ocXVlc3Rpb246IEN1c3RvbVF1ZXN0aW9uKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5pc0VkaXRpbmdOZXdRdWVzdGlvbikge1xyXG4gICAgICBjb25zdCBwYXlsb2FkOiBDdXN0b21RdWVzdGlvbiA9IHsgLi4ucXVlc3Rpb24gfTtcclxuICAgICAgLy8gUmVtb3ZlIHRoZSB0ZW1wb3JhcnkgY2xpZW50IGlkIHNvIHRoZSBiYWNrZW5kIGdlbmVyYXRlcyBvbmUuXHJcbiAgICAgIGRlbGV0ZSBwYXlsb2FkLnF1ZXN0aW9uSWQ7XHJcbiAgICAgIHRoaXMuaW50ZXJlc3RGb3JtU2VydmljZVxyXG4gICAgICAgIC5jcmVhdGVRdWVzdGlvbihwYXlsb2FkKVxyXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICAgIG5leHQ6ICgpID0+IHRoaXMuYWZ0ZXJRdWVzdGlvblNhdmVkKCksXHJcbiAgICAgICAgICBlcnJvcjogKGVycm9yKSA9PiB0aGlzLmhhbmRsZUVycm9yKGVycm9yKSxcclxuICAgICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuaW50ZXJlc3RGb3JtU2VydmljZVxyXG4gICAgICAgIC51cGRhdGVRdWVzdGlvbihxdWVzdGlvbilcclxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgICAgICBuZXh0OiAoKSA9PiB0aGlzLmFmdGVyUXVlc3Rpb25TYXZlZCgpLFxyXG4gICAgICAgICAgZXJyb3I6IChlcnJvcikgPT4gdGhpcy5oYW5kbGVFcnJvcihlcnJvciksXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDbG9zZXMgdGhlIGVkaXRvciBhbmQgcmVsb2FkcyB0aGUgcXVlc3Rpb25zIGFmdGVyIGEgc3VjY2Vzc2Z1bCBzYXZlLlxyXG4gICAqIEBtZW1iZXJvZiBJbnRlcmVzdEZvcm1Db21wb25lbnRcclxuICAgKi9cclxuICBwcml2YXRlIGFmdGVyUXVlc3Rpb25TYXZlZCgpOiB2b2lkIHtcclxuICAgIHRoaXMuZWRpdGluZ1F1ZXN0aW9uSWQgPSBudWxsO1xyXG4gICAgdGhpcy5pc0VkaXRpbmdOZXdRdWVzdGlvbiA9IGZhbHNlO1xyXG4gICAgdGhpcy5sb2FkUXVlc3Rpb25zKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDbG9zZXMgdGhlIGVkaXRvci4gQSBuZXdseSBhZGRlZCBxdWVzdGlvbiBpcyByZW1vdmVkIG9uIGNhbmNlbDsgYW4gZXhpc3RpbmdcclxuICAgKiBxdWVzdGlvbiBrZWVwcyBpdHMgcHJldmlvdXMgdmFsdWVzLlxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBxdWVzdGlvbklkXHJcbiAgICogQG1lbWJlcm9mIEludGVyZXN0Rm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uQ2FuY2VsUXVlc3Rpb24ocXVlc3Rpb25JZDogc3RyaW5nIHwgdW5kZWZpbmVkKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5pc0VkaXRpbmdOZXdRdWVzdGlvbikge1xyXG4gICAgICB0aGlzLmN1c3RvbVF1ZXN0aW9ucyA9IHRoaXMuY3VzdG9tUXVlc3Rpb25zLmZpbHRlcihcclxuICAgICAgICAocXVlc3Rpb24pID0+IHF1ZXN0aW9uLnF1ZXN0aW9uSWQgIT09IHF1ZXN0aW9uSWRcclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIHRoaXMuZWRpdGluZ1F1ZXN0aW9uSWQgPSBudWxsO1xyXG4gICAgdGhpcy5pc0VkaXRpbmdOZXdRdWVzdGlvbiA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmVtb3ZlcyBhIHF1ZXN0aW9uIG9uIHRoZSBiYWNrZW5kIGFuZCByZWZyZXNoZXMgdGhlIGxpc3QuXHJcbiAgICogQHBhcmFtIHtzdHJpbmd9IHF1ZXN0aW9uSWRcclxuICAgKiBAbWVtYmVyb2YgSW50ZXJlc3RGb3JtQ29tcG9uZW50XHJcbiAgICovXHJcbiAgb25EZWxldGVRdWVzdGlvbihxdWVzdGlvbklkOiBzdHJpbmcgfCB1bmRlZmluZWQpOiB2b2lkIHtcclxuICAgIGlmICghcXVlc3Rpb25JZCkgcmV0dXJuO1xyXG4gICAgLy8gQSBub3QteWV0LXNhdmVkIHF1ZXN0aW9uIG9ubHkgZXhpc3RzIGNsaWVudC1zaWRlLlxyXG4gICAgaWYgKHF1ZXN0aW9uSWQuc3RhcnRzV2l0aCgnbmV3LScpKSB7XHJcbiAgICAgIHRoaXMub25DYW5jZWxRdWVzdGlvbihxdWVzdGlvbklkKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5pbnRlcmVzdEZvcm1TZXJ2aWNlXHJcbiAgICAgIC5yZW1vdmVRdWVzdGlvbihxdWVzdGlvbklkKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6ICgpID0+IHtcclxuICAgICAgICAgIGlmICh0aGlzLmVkaXRpbmdRdWVzdGlvbklkID09PSBxdWVzdGlvbklkKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZWRpdGluZ1F1ZXN0aW9uSWQgPSBudWxsO1xyXG4gICAgICAgICAgICB0aGlzLmlzRWRpdGluZ05ld1F1ZXN0aW9uID0gZmFsc2U7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLmxvYWRRdWVzdGlvbnMoKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIGVycm9yOiAoZXJyb3IpID0+IHRoaXMuaGFuZGxlRXJyb3IoZXJyb3IpLFxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJlb3JkZXJzIHF1ZXN0aW9ucyBvbiBkcmFnLWRyb3AgYW5kIHBlcnNpc3RzIHRoZSBuZXcgb3JkZXIuXHJcbiAgICogQHBhcmFtIHtDZGtEcmFnRHJvcDxDdXN0b21RdWVzdGlvbltdPn0gZXZlbnRcclxuICAgKiBAbWVtYmVyb2YgSW50ZXJlc3RGb3JtQ29tcG9uZW50XHJcbiAgICovXHJcbiAgb25SZW9yZGVyUXVlc3Rpb25zKGV2ZW50OiBDZGtEcmFnRHJvcDxDdXN0b21RdWVzdGlvbltdPik6IHZvaWQge1xyXG4gICAgY29uc3QgcmVvcmRlcmVkID0gWy4uLnRoaXMuY3VzdG9tUXVlc3Rpb25zXTtcclxuICAgIG1vdmVJdGVtSW5BcnJheShyZW9yZGVyZWQsIGV2ZW50LnByZXZpb3VzSW5kZXgsIGV2ZW50LmN1cnJlbnRJbmRleCk7XHJcbiAgICB0aGlzLmN1c3RvbVF1ZXN0aW9ucyA9IHJlb3JkZXJlZC5tYXAoKHF1ZXN0aW9uLCBpbmRleCkgPT4gKHtcclxuICAgICAgLi4ucXVlc3Rpb24sXHJcbiAgICAgIHZpZXdPcmRlcjogaW5kZXgsXHJcbiAgICB9KSk7XHJcbiAgICB0aGlzLmludGVyZXN0Rm9ybVNlcnZpY2VcclxuICAgICAgLnJlb3JkZXJRdWVzdGlvbnMoXHJcbiAgICAgICAgdGhpcy5jdXN0b21RdWVzdGlvbnMubWFwKChxdWVzdGlvbikgPT4gKHtcclxuICAgICAgICAgIHF1ZXN0aW9uSWQ6IHF1ZXN0aW9uLnF1ZXN0aW9uSWQgYXMgc3RyaW5nLFxyXG4gICAgICAgICAgdmlld09yZGVyOiBxdWVzdGlvbi52aWV3T3JkZXIsXHJcbiAgICAgICAgfSkpXHJcbiAgICAgIClcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICAvLyBUaGUgbGlzdCB3YXMgcmVvcmRlcmVkIG9wdGltaXN0aWNhbGx5OyBpZiB0aGUgYmFja2VuZCByZWplY3RlZCB0aGVcclxuICAgICAgICAvLyBuZXcgb3JkZXIsIHJlbG9hZCBzbyB0aGUgY2xpZW50IHJlZmxlY3RzIHRoZSBwZXJzaXN0ZWQgb3JkZXIuXHJcbiAgICAgICAgZXJyb3I6IChlcnJvcikgPT4ge1xyXG4gICAgICAgICAgdGhpcy5oYW5kbGVFcnJvcihlcnJvcik7XHJcbiAgICAgICAgICB0aGlzLmxvYWRRdWVzdGlvbnMoKTtcclxuICAgICAgICB9LFxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgdGhlIGRpc3BsYXkgbGFiZWwgZm9yIGEgcXVlc3Rpb24ncyBmaWVsZCB0eXBlLlxyXG4gICAqIEBwYXJhbSB7KFF1ZXN0aW9uRmllbGRUeXBlIHwgbnVsbCl9IHR5cGVcclxuICAgKiBAcmV0dXJuIHtzdHJpbmd9XHJcbiAgICogQG1lbWJlcm9mIEludGVyZXN0Rm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIGdldFR5cGVMYWJlbCh0eXBlOiBRdWVzdGlvbkZpZWxkVHlwZSB8IG51bGwpOiBzdHJpbmcge1xyXG4gICAgc3dpdGNoICh0eXBlKSB7XHJcbiAgICAgIGNhc2UgUXVlc3Rpb25GaWVsZFR5cGUuVEVYVDpcclxuICAgICAgICByZXR1cm4gdGhpcy50eXBlTGFiZWxzPy50ZXh0O1xyXG4gICAgICBjYXNlIFF1ZXN0aW9uRmllbGRUeXBlLlRFWFRBUkVBOlxyXG4gICAgICAgIHJldHVybiB0aGlzLnR5cGVMYWJlbHM/LnRleHRBcmVhO1xyXG4gICAgICBjYXNlIFF1ZXN0aW9uRmllbGRUeXBlLlNFTEVDVDpcclxuICAgICAgICByZXR1cm4gdGhpcy50eXBlTGFiZWxzPy5kcm9wZG93bjtcclxuICAgICAgY2FzZSBRdWVzdGlvbkZpZWxkVHlwZS5DSEVDS0JPWDpcclxuICAgICAgICByZXR1cm4gdGhpcy50eXBlTGFiZWxzPy5jaGVja2JveDtcclxuICAgICAgY2FzZSBRdWVzdGlvbkZpZWxkVHlwZS5SQURJTzpcclxuICAgICAgICByZXR1cm4gdGhpcy50eXBlTGFiZWxzPy5yYWRpbztcclxuICAgICAgY2FzZSBRdWVzdGlvbkZpZWxkVHlwZS5EQVRFOlxyXG4gICAgICAgIHJldHVybiB0aGlzLnR5cGVMYWJlbHM/LmRhdGU7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgcmV0dXJuICcnO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2hvd3MgYW4gZXJyb3IgYWxlcnQgZm9yIGEgZmFpbGVkIGludGVyZXN0LWZvcm0gb3BlcmF0aW9uLlxyXG4gICAqIEBwYXJhbSB7Kn0gZXJyb3JcclxuICAgKiBAbWVtYmVyb2YgSW50ZXJlc3RGb3JtQ29tcG9uZW50XHJcbiAgICovXHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICBoYW5kbGVFcnJvcihlcnJvcjogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLmFsZXJ0U2VydmljZT8uc2hvd01lc3NhZ2Uoe1xyXG4gICAgICBzdGF0dXM6ICdjdXN0b20nLFxyXG4gICAgICBtZXNzYWdlOiBlcnJvcj8uZXJyb3I/Lm1lc3NhZ2UgPz8gZXJyb3I/Lm1lc3NhZ2UsXHJcbiAgICAgIGFsZXJ0VHlwZTogQWxlcnRUeXBlPy5FUlJPUixcclxuICAgICAgaXNDbG9zZU5lZWRlZDogdHJ1ZSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogT3BlbnMgdGhlIGludGVyZXN0IGZvcm0gaW4gcmVhZC1vbmx5IHByZXZpZXcgbW9kZSAoU1AzTS0zMTcgUjYuNyksIHJldXNpbmdcclxuICAgKiB0aGUgc2hhcmVkIGV4cHJlc3MtaW50ZXJlc3QgZGlhbG9nLiBTaG93cyB0aGUgYWRtaW4ncyBjdXJyZW50IGN1c3RvbVxyXG4gICAqIHF1ZXN0aW9ucyBhcyBhbiBlbmQgdXNlciB3b3VsZCBzZWUgdGhlbTsgbm8gc3VibWl0LCBDYW5jZWwgb25seS5cclxuICAgKiBAbWVtYmVyb2YgSW50ZXJlc3RGb3JtQ29tcG9uZW50XHJcbiAgICovXHJcbiAgb25QcmV2aWV3KCk6IHZvaWQge1xyXG4gICAgdGhpcy5kaWFsb2c/Lm9wZW4oSW50ZXJlc3RGb3JtUHJldmlld0NvbXBvbmVudCwge1xyXG4gICAgICB3aWR0aDogJzcyMHB4JyxcclxuICAgICAgbWF4V2lkdGg6ICc5MnZ3JyxcclxuICAgICAgbWF4SGVpZ2h0OiAnOTB2aCcsXHJcbiAgICAgIHBhbmVsQ2xhc3M6IFsnaWVlZXNhLW1vZGFsLWRpYWxvZycsICdpZWVlc2EtaW50ZXJlc3QtZm9ybS1wcmV2aWV3J10sXHJcbiAgICAgIGFyaWFNb2RhbDogdHJ1ZSxcclxuICAgICAgZGF0YToge1xyXG4gICAgICAgIGdyb3VwTmFtZTogdGhpcy5ncm91cD8uZ3JvdXBOYW1lID8/ICcnLFxyXG4gICAgICAgIGN1c3RvbVF1ZXN0aW9uczogdGhpcy5jdXN0b21RdWVzdGlvbnMsXHJcbiAgICAgIH0sXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENsb3NlcyB0aGUgUm9zdGVyIEludGVyZXN0cyBkaWFsb2cgKENhbmNlbCBhY3Rpb24pLlxyXG4gICAqIEBtZW1iZXJvZiBJbnRlcmVzdEZvcm1Db21wb25lbnRcclxuICAgKi9cclxuICBvbkNhbmNlbCgpOiB2b2lkIHtcclxuICAgIHRoaXMuZGlhbG9nUmVmPy5jbG9zZSgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogbmdGb3IgdHJhY2tpbmcgZm9yIHN0YW5kYXJkIHF1ZXN0aW9uIHJvd3MuXHJcbiAgICogQHBhcmFtIHtudW1iZXJ9IGluZGV4XHJcbiAgICogQHBhcmFtIHtTdGFuZGFyZFF1ZXN0aW9uUm93fSBxdWVzdGlvblxyXG4gICAqIEByZXR1cm4ge251bWJlcn1cclxuICAgKiBAbWVtYmVyb2YgSW50ZXJlc3RGb3JtQ29tcG9uZW50XHJcbiAgICovXHJcbiAgdHJhY2tCeUZuKGluZGV4OiBudW1iZXIsIHF1ZXN0aW9uOiBTdGFuZGFyZFF1ZXN0aW9uUm93KTogbnVtYmVyIHtcclxuICAgIHJldHVybiBxdWVzdGlvbi5pZDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIG5nRm9yIHRyYWNraW5nIGZvciBjdXN0b20gcXVlc3Rpb25zLlxyXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBpbmRleFxyXG4gICAqIEBwYXJhbSB7Q3VzdG9tUXVlc3Rpb259IHF1ZXN0aW9uXHJcbiAgICogQHJldHVybiB7c3RyaW5nfVxyXG4gICAqIEBtZW1iZXJvZiBJbnRlcmVzdEZvcm1Db21wb25lbnRcclxuICAgKi9cclxuICB0cmFja0J5UXVlc3Rpb25JZChpbmRleDogbnVtYmVyLCBxdWVzdGlvbjogQ3VzdG9tUXVlc3Rpb24pOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHF1ZXN0aW9uLnF1ZXN0aW9uSWQgYXMgc3RyaW5nO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRW1pdHMgYW5kIGNvbXBsZXRlcyB0aGUgZGVzdHJveSBzdWJqZWN0IHNvIGFueSBpbi1mbGlnaHQgcmVxdWVzdHMgYXJlXHJcbiAgICogdW5zdWJzY3JpYmVkIHdoZW4gdGhlIGNvbXBvbmVudCBpcyBkZXN0cm95ZWQuXHJcbiAgICogQG1lbWJlcm9mIEludGVyZXN0Rm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KHRydWUpO1xyXG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiaWVlZXNhLWludGVyZXN0LWZvcm1cIj5cclxuICA8ZGl2IGNsYXNzPVwiaWVlZXNhLWludGVyZXN0LWZvcm1fX25vdGljZSBpZWVlc2EtYm9keS1zbS0xNFwiIHJvbGU9XCJub3RlXCI+XHJcbiAgICA8c3ZnXHJcbiAgICAgIGNsYXNzPVwiaWVlZXNhLWludGVyZXN0LWZvcm1fX25vdGljZS1pY29uXCJcclxuICAgICAgd2lkdGg9XCIxNlwiXHJcbiAgICAgIGhlaWdodD1cIjE2XCJcclxuICAgICAgdmlld0JveD1cIjAgMCAyNCAyNFwiXHJcbiAgICAgIGZpbGw9XCJub25lXCJcclxuICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcclxuICAgID5cclxuICAgICAgPHBhdGhcclxuICAgICAgICBkPVwiTTEyIDJMMSAyMWgyMkwxMiAyem0wIDQuNUwxOS41IDE5LjVoLTE1TDEyIDYuNXpNMTEgMTB2NWgydi01aC0yem0wIDZ2Mmgydi0yaC0yelwiXHJcbiAgICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXHJcbiAgICAgIC8+XHJcbiAgICA8L3N2Zz5cclxuICAgIDxzcGFuPnt7IGNoYW5nZXNOb3RpY2UgfX08L3NwYW4+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxzZWN0aW9uIGNsYXNzPVwiaWVlZXNhLWludGVyZXN0LWZvcm1fX3NlY3Rpb25cIj5cclxuICAgIDxkaXZcclxuICAgICAgY2xhc3M9XCJpZWVlc2EtaW50ZXJlc3QtZm9ybV9fcm93IGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1zdGFydFwiXHJcbiAgICA+XHJcbiAgICAgIDxkaXY+XHJcbiAgICAgICAgPGgyIGNsYXNzPVwiaWVlZXNhLWludGVyZXN0LWZvcm1fX3NlY3Rpb24tdGl0bGUgaWVlZXNhLWJvZHktbGctYm9sZC0xNiBtLTBcIj5cclxuICAgICAgICAgIHt7IHNlY3Rpb25UaXRsZSB9fVxyXG4gICAgICAgIDwvaDI+XHJcbiAgICAgICAgPHAgY2xhc3M9XCJpZWVlc2EtaW50ZXJlc3QtZm9ybV9fc2VjdGlvbi1kZXNjIGllZWVzYS1ib2R5LXNtLTE0IG0tMFwiPlxyXG4gICAgICAgICAge3sgc2VjdGlvbkRlc2NyaXB0aW9uIH19XHJcbiAgICAgICAgPC9wPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGllZWVzYS1zbGlkZS10b2dnbGVcclxuICAgICAgICBbc2xpZGVUb2dnbGVdPVwiZW5hYmxlRm9ybVRvZ2dsZVwiXHJcbiAgICAgICAgKHNsaWRlVG9nZ2xlQ2hhbmdlKT1cIm9uRW5hYmxlRm9ybVRvZ2dsZSgkZXZlbnQpXCJcclxuICAgICAgPjwvaWVlZXNhLXNsaWRlLXRvZ2dsZT5cclxuICAgIDwvZGl2PlxyXG4gIDwvc2VjdGlvbj5cclxuXHJcbiAgPHNlY3Rpb24gKm5nSWY9XCJpc0Zvcm1FbmFibGVkXCIgY2xhc3M9XCJpZWVlc2EtaW50ZXJlc3QtZm9ybV9fc2VjdGlvblwiPlxyXG4gICAgPGRpdlxyXG4gICAgICBjbGFzcz1cImllZWVzYS1pbnRlcmVzdC1mb3JtX19zZWN0aW9uLWhlYWRpbmcgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMlwiXHJcbiAgICA+XHJcbiAgICAgIDxzdmdcclxuICAgICAgICBjbGFzcz1cImllZWVzYS1pbnRlcmVzdC1mb3JtX19sb2NrXCJcclxuICAgICAgICB3aWR0aD1cIjE2XCJcclxuICAgICAgICBoZWlnaHQ9XCIxNlwiXHJcbiAgICAgICAgdmlld0JveD1cIjAgMCAyNCAyNFwiXHJcbiAgICAgICAgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXHJcbiAgICAgID5cclxuICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgZD1cIk0xMiAyYTUgNSAwIDAgMC01IDV2M0g2YTIgMiAwIDAgMC0yIDJ2OGEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJ2LThhMiAyIDAgMCAwLTItMmgtMVY3YTUgNSAwIDAgMC01LTV6bS0zIDVhMyAzIDAgMCAxIDYgMHYzSDlWN3ptLTMgNWgxMnY4SDZ2LTh6XCJcclxuICAgICAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxyXG4gICAgICAgIC8+XHJcbiAgICAgIDwvc3ZnPlxyXG4gICAgICA8aDIgY2xhc3M9XCJpZWVlc2EtaW50ZXJlc3QtZm9ybV9fc2VjdGlvbi10aXRsZSBpZWVlc2EtYm9keS1sZy1ib2xkLTE2IG0tMFwiPlxyXG4gICAgICAgIHt7IHN0YW5kYXJkUXVlc3Rpb25zVGl0bGUgfX1cclxuICAgICAgPC9oMj5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJpZWVlc2EtaW50ZXJlc3QtZm9ybV9faGludCBpZWVlc2EtYm9keS1zbS0xNFwiPnt7XHJcbiAgICAgICAgc3RhbmRhcmRRdWVzdGlvbnNIaW50XHJcbiAgICAgIH19PC9zcGFuPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8dWwgY2xhc3M9XCJpZWVlc2EtaW50ZXJlc3QtZm9ybV9fc3RhbmRhcmQtbGlzdFwiPlxyXG4gICAgICA8bGlcclxuICAgICAgICAqbmdGb3I9XCJsZXQgcXVlc3Rpb24gb2Ygc3RhbmRhcmRRdWVzdGlvbnM7IHRyYWNrQnk6IHRyYWNrQnlGblwiXHJcbiAgICAgICAgY2xhc3M9XCJpZWVlc2EtaW50ZXJlc3QtZm9ybV9fc3RhbmRhcmQtcm93IGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1jZW50ZXJcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJpZWVlc2EtaW50ZXJlc3QtZm9ybV9fc3RhbmRhcmQtbGFiZWwgaWVlZXNhLWJvZHktc20tMTRcIj57e1xyXG4gICAgICAgICAgcXVlc3Rpb24ubGFiZWxcclxuICAgICAgICB9fTwvc3Bhbj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cImllZWVzYS1pbnRlcmVzdC1mb3JtX19zdGFuZGFyZC10YWcgaWVlZXNhLWJvZHktc20tMTRcIj57e1xyXG4gICAgICAgICAgcXVlc3Rpb24udGFnXHJcbiAgICAgICAgfX08L3NwYW4+XHJcbiAgICAgIDwvbGk+XHJcbiAgICA8L3VsPlxyXG4gIDwvc2VjdGlvbj5cclxuXHJcbiAgPHNlY3Rpb24gKm5nSWY9XCJpc0Zvcm1FbmFibGVkXCIgY2xhc3M9XCJpZWVlc2EtaW50ZXJlc3QtZm9ybV9fc2VjdGlvblwiPlxyXG4gICAgPGgyIGNsYXNzPVwiaWVlZXNhLWludGVyZXN0LWZvcm1fX3NlY3Rpb24tdGl0bGUgaWVlZXNhLWJvZHktbGctYm9sZC0xNiBtLTBcIj5cclxuICAgICAge3sgZGVmYXVsdE1lbWJlcnNoaXBUaXRsZSB9fVxyXG4gICAgPC9oMj5cclxuICAgIDxwIGNsYXNzPVwiaWVlZXNhLWludGVyZXN0LWZvcm1fX3NlY3Rpb24tZGVzYyBpZWVlc2EtYm9keS1zbS0xNFwiPlxyXG4gICAgICB7eyBkZWZhdWx0TWVtYmVyc2hpcERlc2NyaXB0aW9uIH19XHJcbiAgICA8L3A+XHJcbiAgICA8aWVlZXNhLXJhZGlvXHJcbiAgICAgICpuZ0lmPVwibWVtYmVyc2hpcExldmVscy5sZW5ndGggPiAwXCJcclxuICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiZGVmYXVsdE1lbWJlcnNoaXBMZXZlbFwiXHJcbiAgICAgIFtyYWRpb0dyb3VwXT1cIm1lbWJlcnNoaXBMZXZlbHNcIlxyXG4gICAgICAoc2VsZWN0ZWRSYWRpb09wdGlvbik9XCJvbk1lbWJlcnNoaXBMZXZlbENoYW5nZSgkZXZlbnQpXCJcclxuICAgID48L2llZWVzYS1yYWRpbz5cclxuICAgIDxwXHJcbiAgICAgICpuZ0lmPVwibWVtYmVyc2hpcExldmVscy5sZW5ndGggPT09IDBcIlxyXG4gICAgICBjbGFzcz1cImllZWVzYS1pbnRlcmVzdC1mb3JtX19zZWN0aW9uLWRlc2MgaWVlZXNhLWJvZHktc20tMTRcIlxyXG4gICAgPlxyXG4gICAgICB7eyBub0xldmVsc01lc3NhZ2UgfX1cclxuICAgIDwvcD5cclxuICA8L3NlY3Rpb24+XHJcblxyXG4gIDxzZWN0aW9uICpuZ0lmPVwiaXNGb3JtRW5hYmxlZFwiIGNsYXNzPVwiaWVlZXNhLWludGVyZXN0LWZvcm1fX3NlY3Rpb25cIj5cclxuICAgIDxkaXZcclxuICAgICAgY2xhc3M9XCJpZWVlc2EtaW50ZXJlc3QtZm9ybV9fY3VzdG9tLWhlYWRlciBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyXCJcclxuICAgID5cclxuICAgICAgPGgyIGNsYXNzPVwiaWVlZXNhLWludGVyZXN0LWZvcm1fX3NlY3Rpb24tdGl0bGUgaWVlZXNhLWJvZHktbGctYm9sZC0xNiBtLTBcIj5cclxuICAgICAgICB7eyBjdXN0b21RdWVzdGlvbnNUaXRsZSB9fVxyXG4gICAgICA8L2gyPlxyXG4gICAgICA8YnV0dG9uXHJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgY2xhc3M9XCJpZWVlc2EtaW50ZXJlc3QtZm9ybV9fYWRkLXF1ZXN0aW9uIGllZWVzYS1ib2R5LXNtLTE0XCJcclxuICAgICAgICBbZGlzYWJsZWRdPVwiZWRpdGluZ1F1ZXN0aW9uSWRcIlxyXG4gICAgICAgIChjbGljayk9XCJvbkFkZFF1ZXN0aW9uKClcIlxyXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiYWRkUXVlc3Rpb25MYWJlbFwiXHJcbiAgICAgID5cclxuICAgICAgICB7eyBhZGRRdWVzdGlvbkxhYmVsIH19XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdlxyXG4gICAgICBjZGtEcm9wTGlzdFxyXG4gICAgICBjbGFzcz1cImllZWVzYS1pbnRlcmVzdC1mb3JtX19xdWVzdGlvbi1saXN0XCJcclxuICAgICAgKGNka0Ryb3BMaXN0RHJvcHBlZCk9XCJvblJlb3JkZXJRdWVzdGlvbnMoJGV2ZW50KVwiXHJcbiAgICA+XHJcbiAgICAgIDxkaXZcclxuICAgICAgICAqbmdGb3I9XCJsZXQgcXVlc3Rpb24gb2YgY3VzdG9tUXVlc3Rpb25zOyB0cmFja0J5OiB0cmFja0J5UXVlc3Rpb25JZFwiXHJcbiAgICAgICAgY2RrRHJhZ1xyXG4gICAgICAgIFtjZGtEcmFnRGlzYWJsZWRdPVwiZWRpdGluZ1F1ZXN0aW9uSWRcIlxyXG4gICAgICAgIGNsYXNzPVwiaWVlZXNhLWludGVyZXN0LWZvcm1fX3F1ZXN0aW9uXCJcclxuICAgICAgICBbY2xhc3MuaWVlZXNhLWludGVyZXN0LWZvcm1fX3F1ZXN0aW9uLS1lZGl0aW5nXT1cIlxyXG4gICAgICAgICAgZWRpdGluZ1F1ZXN0aW9uSWQgPT09IHF1ZXN0aW9uLnF1ZXN0aW9uSWRcclxuICAgICAgICBcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgY2xhc3M9XCJpZWVlc2EtaW50ZXJlc3QtZm9ybV9fcXVlc3Rpb24tcm93IGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWJldHdlZW4gZ2FwLTJcIlxyXG4gICAgICAgICAgW2NsYXNzLmllZWVzYS1pbnRlcmVzdC1mb3JtX19xdWVzdGlvbi1yb3ctLWVkaXRpbmddPVwiXHJcbiAgICAgICAgICAgIGVkaXRpbmdRdWVzdGlvbklkID09PSBxdWVzdGlvbi5xdWVzdGlvbklkXHJcbiAgICAgICAgICBcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yIGllZWVzYS1pbnRlcmVzdC1mb3JtX19xdWVzdGlvbi1tYWluXCI+XHJcbiAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJpZWVlc2EtaW50ZXJlc3QtZm9ybV9fZHJhZy1oYW5kbGVcIlxyXG4gICAgICAgICAgICAgIGNka0RyYWdIYW5kbGVcclxuICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjEyXCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDEyIDE2XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIzXCIgY3k9XCIyXCIgcj1cIjEuNVwiIGZpbGw9XCJjdXJyZW50Q29sb3JcIi8+XHJcbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiOVwiIGN5PVwiMlwiIHI9XCIxLjVcIiBmaWxsPVwiY3VycmVudENvbG9yXCIvPlxyXG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjNcIiBjeT1cIjhcIiByPVwiMS41XCIgZmlsbD1cImN1cnJlbnRDb2xvclwiLz5cclxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCI5XCIgY3k9XCI4XCIgcj1cIjEuNVwiIGZpbGw9XCJjdXJyZW50Q29sb3JcIi8+XHJcbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiM1wiIGN5PVwiMTRcIiByPVwiMS41XCIgZmlsbD1cImN1cnJlbnRDb2xvclwiLz5cclxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCI5XCIgY3k9XCIxNFwiIHI9XCIxLjVcIiBmaWxsPVwiY3VycmVudENvbG9yXCIvPlxyXG4gICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaWVlZXNhLWludGVyZXN0LWZvcm1fX3F1ZXN0aW9uLWxhYmVsIGllZWVzYS1ib2R5LXNtLTE0XCI+XHJcbiAgICAgICAgICAgICAge3sgcXVlc3Rpb24ucXVlc3Rpb25MYWJlbCB8fCBuZXdRdWVzdGlvbkxhYmVsIH19XHJcbiAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTJcIj5cclxuICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAqbmdJZj1cInF1ZXN0aW9uLmZpZWxkVHlwZVwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJpZWVlc2EtaW50ZXJlc3QtZm9ybV9fY2hpcCBpZWVlc2EtaW50ZXJlc3QtZm9ybV9fY2hpcC0tdHlwZSBpZWVlc2EtYm9keS1zbS0xNFwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICB7eyBnZXRUeXBlTGFiZWwocXVlc3Rpb24uZmllbGRUeXBlKSB9fVxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgKm5nSWY9XCJxdWVzdGlvbi5pc1JlcXVpcmVkXCJcclxuICAgICAgICAgICAgICBjbGFzcz1cImllZWVzYS1pbnRlcmVzdC1mb3JtX19jaGlwIGllZWVzYS1pbnRlcmVzdC1mb3JtX19jaGlwLS1yZXF1aXJlZCBpZWVlc2EtYm9keS1zbS0xNFwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICB7eyByZXF1aXJlZFRhZyB9fVxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAqbmdJZj1cImVkaXRpbmdRdWVzdGlvbklkICE9PSBxdWVzdGlvbi5xdWVzdGlvbklkXCJcclxuICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICBjbGFzcz1cImllZWVzYS1pbnRlcmVzdC1mb3JtX19pY29uLWJ0blwiXHJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uRWRpdFF1ZXN0aW9uKHF1ZXN0aW9uKVwiXHJcbiAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJlZGl0UXVlc3Rpb25BcmlhTGFiZWxcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDE4IDE4XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgIDxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBjbGlwLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0xNi4wNi41OWwxLjM1IDEuMzVjLjc5Ljc4Ljc5IDIuMDUgMCAyLjgzTDQuMTggMThIMHYtNC4xOEwxMC40IDMuNDEgMTMuMjMuNTljLjc4LS43OCAyLjA1LS43OCAyLjgzIDB6TTIgMTZsMS40MS4wNkwxMy4yMyA2LjIzbC0xLjQxLTEuNDFMMiAxNC42NFYxNnpcIiBmaWxsPVwiY3VycmVudENvbG9yXCIvPlxyXG4gICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiaWVlZXNhLWludGVyZXN0LWZvcm1fX2ljb24tYnRuIGllZWVzYS1pbnRlcmVzdC1mb3JtX19pY29uLWJ0bi0tZGVsZXRlXCJcclxuICAgICAgICAgICAgICAoY2xpY2spPVwib25EZWxldGVRdWVzdGlvbihxdWVzdGlvbi5xdWVzdGlvbklkKVwiXHJcbiAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJkZWxldGVRdWVzdGlvbkFyaWFMYWJlbFwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8c3ZnIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgPHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGNsaXAtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTE1IDNWNEgyMFY2SDE5VjE5QzE5IDIwLjEgMTguMSAyMSAxNyAyMUg3QzUuOSAyMSA1IDIwLjEgNSAxOVY2SDRWNEg5VjNIMTVaTTcgMTlIMTdWNkg3VjE5Wk05IDhIMTFWMTdIOVY4Wk0xNSA4SDEzVjE3SDE1VjhaXCIgZmlsbD1cImN1cnJlbnRDb2xvclwiLz5cclxuICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGllZWVzYS1jdXN0b20tcXVlc3Rpb24tZWRpdG9yXHJcbiAgICAgICAgICAqbmdJZj1cImVkaXRpbmdRdWVzdGlvbklkID09PSBxdWVzdGlvbi5xdWVzdGlvbklkXCJcclxuICAgICAgICAgIFtxdWVzdGlvbl09XCJxdWVzdGlvblwiXHJcbiAgICAgICAgICAoc2F2ZSk9XCJvblNhdmVRdWVzdGlvbigkZXZlbnQpXCJcclxuICAgICAgICAgIChjYW5jZWwpPVwib25DYW5jZWxRdWVzdGlvbihxdWVzdGlvbi5xdWVzdGlvbklkKVwiXHJcbiAgICAgICAgPjwvaWVlZXNhLWN1c3RvbS1xdWVzdGlvbi1lZGl0b3I+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9zZWN0aW9uPlxyXG5cclxuICA8ZGl2IGNsYXNzPVwiaWVlZXNhLWludGVyZXN0LWZvcm1fX2Zvb3RlciBkLWZsZXgganVzdGlmeS1jb250ZW50LXN0YXJ0IGdhcC0zXCI+XHJcbiAgICA8YnV0dG9uXHJcbiAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICBjbGFzcz1cImllZWVzYS1pbnRlcmVzdC1mb3JtX19jYW5jZWxcIlxyXG4gICAgICAoY2xpY2spPVwib25DYW5jZWwoKVwiXHJcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiY2FuY2VsTGFiZWxcIlxyXG4gICAgPlxyXG4gICAgICB7eyBjYW5jZWxMYWJlbCB9fVxyXG4gICAgPC9idXR0b24+XHJcbiAgICA8YnV0dG9uXHJcbiAgICAgICpuZ0lmPVwiaXNGb3JtRW5hYmxlZFwiXHJcbiAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICBjbGFzcz1cImllZWVzYS1pbnRlcmVzdC1mb3JtX19wcmV2aWV3XCJcclxuICAgICAgW2Rpc2FibGVkXT1cIiEhZWRpdGluZ1F1ZXN0aW9uSWRcIlxyXG4gICAgICAoY2xpY2spPVwib25QcmV2aWV3KClcIlxyXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInByZXZpZXdMYWJlbFwiXHJcbiAgICA+XHJcbiAgICAgIHt7IHByZXZpZXdMYWJlbCB9fVxyXG4gICAgPC9idXR0b24+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
|
|
512
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJlc3QtZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ncm91cHMvc3JjL2xpYi9jb21wb25lbnRzL2ludGVyZXN0LWZvcm0vaW50ZXJlc3QtZm9ybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ncm91cHMvc3JjL2xpYi9jb21wb25lbnRzL2ludGVyZXN0LWZvcm0vaW50ZXJlc3QtZm9ybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULE1BQU0sRUFHTixRQUFRLEVBQ1IsaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQ0wsZUFBZSxHQUdoQixNQUFNLDBCQUEwQixDQUFDO0FBQ2xDLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFDLE9BQU8sRUFFTCxjQUFjLEVBQ2QsZUFBZSxHQUNoQixNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLE9BQU8sRUFDTCxjQUFjLEVBRWQsb0JBQW9CLEdBRXJCLE1BQU0sMEJBQTBCLENBQUM7QUFDbEMsT0FBTyxFQUFFLFNBQVMsRUFBaUIsTUFBTSxxQkFBcUIsQ0FBQztBQUMvRCxPQUFPLEVBR0wsWUFBWSxFQUNaLHNCQUFzQixFQUN0QixpQkFBaUIsR0FDbEIsTUFBTSxvQ0FBb0MsQ0FBQztBQUk1QyxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSw0REFBNEQsQ0FBQztBQUMzRyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUN4RyxPQUFPLEtBQUssU0FBUyxNQUFNLDZCQUE2QixDQUFDOzs7Ozs7OztBQWF6RDs7Ozs7Ozs7O0dBU0c7QUFlSCxNQUFNLE9BQU8scUJB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QkFDdEMsZUFBZSxFQUFFLElBQUksQ0FBQyxlQUFlO2FBQ3RDO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7T0FHRztJQUNILFFBQVE7UUFDTixJQUFJLENBQUMsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxTQUFTLENBQUMsS0FBYSxFQUFFLFFBQTZCO1FBQ3BELE9BQU8sUUFBUSxDQUFDLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsaUJBQWlCLENBQUMsS0FBYSxFQUFFLFFBQXdCO1FBQ3ZELE9BQU8sUUFBUSxDQUFDLFVBQW9CLENBQUM7SUFDdkMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMzQixDQUFDOytHQXBlVSxxQkFBcUIsOERBMkNWLGVBQWU7bUdBM0MxQixxQkFBcUIsZ0ZDNUVsQyxvMVJBOE5BLG81WUQ1SkksWUFBWSwrUEFDWixjQUFjLDZqQ0FDZCxvQkFBb0IseUtBQ3BCLGNBQWMsb0pBQ2QsNkJBQTZCOzs0RkFNcEIscUJBQXFCO2tCQWRqQyxTQUFTOytCQUNFLHNCQUFzQixjQUNwQixJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixjQUFjO3dCQUNkLG9CQUFvQjt3QkFDcEIsY0FBYzt3QkFDZCw2QkFBNkI7cUJBQzlCLGlCQUdjLGlCQUFpQixDQUFDLElBQUk7OzBCQTJDbEMsUUFBUTs7MEJBRVIsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgSW5qZWN0LFxyXG4gIE9uRGVzdHJveSxcclxuICBPbkluaXQsXHJcbiAgT3B0aW9uYWwsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7XHJcbiAgTUFUX0RJQUxPR19EQVRBLFxyXG4gIE1hdERpYWxvZyxcclxuICBNYXREaWFsb2dSZWYsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHsgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7XHJcbiAgQ2RrRHJhZ0Ryb3AsXHJcbiAgRHJhZ0Ryb3BNb2R1bGUsXHJcbiAgbW92ZUl0ZW1JbkFycmF5LFxyXG59IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xyXG5pbXBvcnQge1xyXG4gIFJhZGlvQ29tcG9uZW50LFxyXG4gIFJhZGlvT3B0aW9uLFxyXG4gIFNsaWRlVG9nZ2xlQ29tcG9uZW50LFxyXG4gIFNsaWRlVG9nZ2xlT3B0aW9uLFxyXG59IGZyb20gJ0BpZWVlc2EtbnBtL3ByZXNlbnRhdGlvbic7XHJcbmltcG9ydCB7IEFsZXJ0VHlwZSwgQWxlcnRzU2VydmljZSB9IGZyb20gJ0BpZWVlc2EtbnBtL3V0aWxpdHknO1xyXG5pbXBvcnQge1xyXG4gIEN1c3RvbVF1ZXN0aW9uLFxyXG4gIEdyb3VwUm9sZSxcclxuICBJbnRlcmVzdE1vZGUsXHJcbiAgTUVNQkVSX0xFVkVMX1JPTEVfVFlQRSxcclxuICBRdWVzdGlvbkZpZWxkVHlwZSxcclxufSBmcm9tICcuLi8uLi9tb2RlbHMvY3VzdG9tLXF1ZXN0aW9uLm1vZGVsJztcclxuaW1wb3J0IHsgR3JvdXBJbmZvIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2dyb3VwLWluZm8ubW9kZWwnO1xyXG5pbXBvcnQgeyBHcm91cHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZ3JvdXBzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBJbnRlcmVzdEZvcm1TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvaW50ZXJlc3QtZm9ybS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ3VzdG9tUXVlc3Rpb25FZGl0b3JDb21wb25lbnQgfSBmcm9tICcuLi9jdXN0b20tcXVlc3Rpb24tZWRpdG9yL2N1c3RvbS1xdWVzdGlvbi1lZGl0b3IuY29tcG9uZW50JztcclxuaW1wb3J0IHsgSW50ZXJlc3RGb3JtUHJldmlld0NvbXBvbmVudCB9IGZyb20gJy4uL2ludGVyZXN0LWZvcm0tcHJldmlldy9pbnRlcmVzdC1mb3JtLXByZXZpZXcuY29tcG9uZW50JztcclxuaW1wb3J0ICogYXMgY29uc3RhbnRzIGZyb20gJy4uLy4uL2Fzc2V0cy9jb25zdGFudHMuanNvbic7XHJcblxyXG4vKipcclxuICogU3RhbmRhcmQgKGxvY2tlZCkgcXVlc3Rpb24gcm93IHNob3duIGluIHRoZSBJbnRlcmVzdCBGb3JtIHRhYi5cclxuICogQGV4cG9ydFxyXG4gKiBAaW50ZXJmYWNlIFN0YW5kYXJkUXVlc3Rpb25Sb3dcclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgU3RhbmRhcmRRdWVzdGlvblJvdyB7XHJcbiAgaWQ6IG51bWJlcjtcclxuICBsYWJlbDogc3RyaW5nO1xyXG4gIHRhZzogc3RyaW5nO1xyXG59XHJcblxyXG4vKipcclxuICogXCJJbnRlcmVzdCBGb3JtXCIgdGFiIGNvbnRlbnQgb2YgdGhlIFJvc3RlciBJbnRlcmVzdHMgZGlhbG9nIChTUDNNLTMxNykuIFRoZVxyXG4gKiBncm91cCBhZG1pbiBlbmFibGVzL2Rpc2FibGVzIHRoZSBmb3JtLCB2aWV3cyBsb2NrZWQgc3RhbmRhcmQgcXVlc3Rpb25zLFxyXG4gKiBjaG9vc2VzIHRoZSBkZWZhdWx0IG1lbWJlcnNoaXAgbGV2ZWwgYW5kIG1hbmFnZXMgY3VzdG9tIHF1ZXN0aW9uc1xyXG4gKiAoYWRkIC8gZWRpdCAvIHJlb3JkZXIgLyByZW1vdmUpLCBwZXJzaXN0ZWQgdG8gdGhlIGdyb3VwcyBiYWNrZW5kIHZpYVxyXG4gKiBJbnRlcmVzdEZvcm1TZXJ2aWNlLiBFYWNoIHF1ZXN0aW9uIGlzIHNhdmVkIGluZGl2aWR1YWxseSAoY3JlYXRlL3VwZGF0ZSkgYW5kXHJcbiAqIHRoZSBlbmFibGUgbW9kZSArIGRlZmF1bHQgbGV2ZWwgYXJlIHNhdmVkIHZpYSB0aGUgaW50ZXJlc3QtY29uZmlnIGVuZHBvaW50LlxyXG4gKiBAZXhwb3J0XHJcbiAqIEBjbGFzcyBJbnRlcmVzdEZvcm1Db21wb25lbnRcclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnaWVlZXNhLWludGVyZXN0LWZvcm0nLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgRHJhZ0Ryb3BNb2R1bGUsXHJcbiAgICBTbGlkZVRvZ2dsZUNvbXBvbmVudCxcclxuICAgIFJhZGlvQ29tcG9uZW50LFxyXG4gICAgQ3VzdG9tUXVlc3Rpb25FZGl0b3JDb21wb25lbnQsXHJcbiAgXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vaW50ZXJlc3QtZm9ybS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vaW50ZXJlc3QtZm9ybS5jb21wb25lbnQuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBJbnRlcmVzdEZvcm1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICBjb25zdGFudHM6IGFueSA9IGNvbnN0YW50cztcclxuICBpbnRlcmVzdEZvcm1UZXh0cyA9IHRoaXMuY29uc3RhbnRzPy5yb3N0ZXJJbnRlcmVzdHM/LmludGVyZXN0Rm9ybTtcclxuICBjaGFuZ2VzTm90aWNlID0gdGhpcy5pbnRlcmVzdEZvcm1UZXh0cz8uY2hhbmdlc05vdGljZTtcclxuICBzZWN0aW9uVGl0bGUgPSB0aGlzLmludGVyZXN0Rm9ybVRleHRzPy5zZWN0aW9uVGl0bGU7XHJcbiAgc2VjdGlvbkRlc2NyaXB0aW9uID0gdGhpcy5pbnRlcmVzdEZvcm1UZXh0cz8uc2VjdGlvbkRlc2NyaXB0aW9uO1xyXG4gIHN0YW5kYXJkUXVlc3Rpb25zVGl0bGUgPSB0aGlzLmludGVyZXN0Rm9ybVRleHRzPy5zdGFuZGFyZFF1ZXN0aW9uc1RpdGxlO1xyXG4gIHN0YW5kYXJkUXVlc3Rpb25zSGludCA9IHRoaXMuaW50ZXJlc3RGb3JtVGV4dHM/LnN0YW5kYXJkUXVlc3Rpb25zSGludDtcclxuICBkZWZhdWx0TWVtYmVyc2hpcFRpdGxlID0gdGhpcy5pbnRlcmVzdEZvcm1UZXh0cz8uZGVmYXVsdE1lbWJlcnNoaXBUaXRsZTtcclxuICBkZWZhdWx0TWVtYmVyc2hpcERlc2NyaXB0aW9uID1cclxuICAgIHRoaXMuaW50ZXJlc3RGb3JtVGV4dHM/LmRlZmF1bHRNZW1iZXJzaGlwRGVzY3JpcHRpb247XHJcbiAgY3VzdG9tUXVlc3Rpb25zVGl0bGUgPSB0aGlzLmludGVyZXN0Rm9ybVRleHRzPy5jdXN0b21RdWVzdGlvbnNUaXRsZTtcclxuICBhZGRRdWVzdGlvbkxhYmVsID0gdGhpcy5pbnRlcmVzdEZvcm1UZXh0cz8uYWRkUXVlc3Rpb25MYWJlbDtcclxuICByZXF1aXJlZFRhZyA9IHRoaXMuaW50ZXJlc3RGb3JtVGV4dHM/LnJlcXVpcmVkVGFnO1xyXG4gIHN0YW5kYXJkVGFnID0gdGhpcy5pbnRlcmVzdEZvcm1UZXh0cz8uc3RhbmRhcmRUYWc7XHJcbiAgbmV3UXVlc3Rpb25MYWJlbCA9IHRoaXMuaW50ZXJlc3RGb3JtVGV4dHM/Lm5ld1F1ZXN0aW9uTGFiZWw7XHJcbiAgZWRpdFF1ZXN0aW9uQXJpYUxhYmVsID0gdGhpcy5pbnRlcmVzdEZvcm1UZXh0cz8uZWRpdFF1ZXN0aW9uQXJpYUxhYmVsO1xyXG4gIGRlbGV0ZVF1ZXN0aW9uQXJpYUxhYmVsID0gdGhpcy5pbnRlcmVzdEZvcm1UZXh0cz8uZGVsZXRlUXVlc3Rpb25BcmlhTGFiZWw7XHJcbiAgbm9MZXZlbHNNZXNzYWdlID0gdGhpcy5pbnRlcmVzdEZvcm1UZXh0cz8ubm9MZXZlbHNNZXNzYWdlO1xyXG4gIHR5cGVMYWJlbHMgPSB0aGlzLmludGVyZXN0Rm9ybVRleHRzPy5xdWVzdGlvbkVkaXRvcj8udHlwZXM7XHJcbiAgY2FuY2VsTGFiZWwgPSB0aGlzLmNvbnN0YW50cz8ucm9zdGVySW50ZXJlc3RzPy5mb290ZXI/LmNhbmNlbDtcclxuICBwcmV2aWV3TGFiZWwgPSB0aGlzLmNvbnN0YW50cz8ucm9zdGVySW50ZXJlc3RzPy5mb290ZXI/LnByZXZpZXc7XHJcblxyXG4gIGVuYWJsZUZvcm1Ub2dnbGUhOiBTbGlkZVRvZ2dsZU9wdGlvbjtcclxuICBzdGFuZGFyZFF1ZXN0aW9uczogU3RhbmRhcmRRdWVzdGlvblJvd1tdID0gW107XHJcbiAgbWVtYmVyc2hpcExldmVsczogUmFkaW9PcHRpb25bXSA9IFtdO1xyXG4gIC8vIERlZmF1bHRzIHRvIGRpc2FibGVkIChPRkYpLiBUaGUgcmVhbCBzdGF0ZSBpcyBkcml2ZW4gYnkgdGhlIEFQSSByZXNwb25zZSBpblxyXG4gIC8vIGxvYWRDb25maWc7IHdoZW4gbm8gY29uZmlnIGhhcyBiZWVuIHNhdmVkIHlldCB0aGUgYmFja2VuZCByZXR1cm5zIERJU0FCTEVELFxyXG4gIC8vIHNvIHRoZSBmaXJzdC10aW1lIHZpZXcgY29ycmVjdGx5IHNob3dzIHRoZSB0b2dnbGUgT0ZGLlxyXG4gIGlzRm9ybUVuYWJsZWQgPSBmYWxzZTtcclxuICBzZWxlY3RlZExldmVsSWQ6IHN0cmluZyB8IG51bGwgPSBudWxsO1xyXG4gIGxldmVsczogR3JvdXBSb2xlW10gPSBbXTtcclxuXHJcbiAgY3VzdG9tUXVlc3Rpb25zOiBDdXN0b21RdWVzdGlvbltdID0gW107XHJcbiAgZWRpdGluZ1F1ZXN0aW9uSWQ6IHN0cmluZyB8IG51bGwgPSBudWxsO1xyXG4gIHByaXZhdGUgaXNFZGl0aW5nTmV3UXVlc3Rpb24gPSBmYWxzZTtcclxuICBwcml2YXRlIGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcclxuICAgIEBPcHRpb25hbCgpIHByaXZhdGUgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8dW5rbm93bj4sXHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcclxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwdWJsaWMgZ3JvdXA6IEdyb3VwSW5mbyxcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xyXG4gICAgcHJpdmF0ZSBpbnRlcmVzdEZvcm1TZXJ2aWNlOiBJbnRlcmVzdEZvcm1TZXJ2aWNlLFxyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXHJcbiAgICBwcml2YXRlIGdyb3Vwc1NlcnZpY2U6IEdyb3Vwc1NlcnZpY2UsXHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcclxuICAgIHByaXZhdGUgYWxlcnRTZXJ2aWNlOiBBbGVydHNTZXJ2aWNlLFxyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXHJcbiAgICBwcml2YXRlIGRpYWxvZzogTWF0RGlhbG9nXHJcbiAgKSB7fVxyXG5cclxuICAvKipcclxuICAgKiBJbml0aWFsaXplcyBzdGF0aWMgVUkgb3B0aW9ucyBhbmQgbG9hZHMgdGhlIGdyb3VwJ3MgaW50ZXJlc3QgY29uZmlnIGFuZFxyXG4gICAqIGN1c3RvbSBxdWVzdGlvbnMgZnJvbSB0aGUgYmFja2VuZC5cclxuICAgKiBAbWVtYmVyb2YgSW50ZXJlc3RGb3JtQ29tcG9uZW50XHJcbiAgICovXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmludGVyZXN0Rm9ybVNlcnZpY2Uuc2V0QXBpQmFzZVVybCh0aGlzLmdyb3Vwc1NlcnZpY2U/LmFwaUJhc2VVcmwpO1xyXG4gICAgdGhpcy5lbmFibGVGb3JtVG9nZ2xlID0ge1xyXG4gICAgICBpZDogMSxcclxuICAgICAgbGFiZWw6ICcnLFxyXG4gICAgICBjaGVja2VkOiB0aGlzLmlzRm9ybUVuYWJsZWQsXHJcbiAgICAgIGFyaWFMYWJlbDogdGhpcy5zZWN0aW9uVGl0bGUsXHJcbiAgICB9O1xyXG4gICAgdGhpcy5zdGFuZGFyZFF1ZXN0aW9ucyA9IChcclxuICAgICAgdGhpcy5pbnRlcmVzdEZvcm1UZXh0cz8uc3RhbmRhcmRRdWVzdGlvbnMgPz8gW11cclxuICAgICkubWFwKChsYWJlbDogc3RyaW5nLCBpbmRleDogbnVtYmVyKSA9PiAoe1xyXG4gICAgICBpZDogaW5kZXggKyAxLFxyXG4gICAgICBsYWJlbCxcclxuICAgICAgdGFnOiB0aGlzLnN0YW5kYXJkVGFnLFxyXG4gICAgfSkpO1xyXG4gICAgaWYgKHRoaXMuZ3JvdXA/Lmdyb3VwSWQpIHtcclxuICAgICAgdGhpcy5sb2FkTWVtYmVyc2hpcExldmVscygpO1xyXG4gICAgICB0aGlzLmxvYWRRdWVzdGlvbnMoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIExvYWRzIHRoZSByZWFsIG1lbWJlcnNoaXAgbGV2ZWxzIGZvciB0aGUgZ3JvdXAncyBncm91cCB0eXBlIGFuZCB0aGVuIHRoZVxyXG4gICAqIHNhdmVkIGludGVyZXN0IGNvbmZpZ3VyYXRpb24gKHNvIHRoZSBzYXZlZCBkZWZhdWx0IGxldmVsIGNhbiBiZVxyXG4gICAqIHByZXNlbGVjdGVkKS5cclxuICAgKiBAbWVtYmVyb2YgSW50ZXJlc3RGb3JtQ29tcG9uZW50XHJcbiAgICovXHJcbiAgbG9hZE1lbWJlcnNoaXBMZXZlbHMoKTogdm9pZCB7XHJcbiAgICBjb25zdCBncm91cFR5cGVJZCA9IHRoaXMuZ3JvdXA/Lmdyb3VwVHlwZTtcclxuICAgIGlmICghZ3JvdXBUeXBlSWQpIHtcclxuICAgICAgdGhpcy5sb2FkQ29uZmlnKCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuaW50ZXJlc3RGb3JtU2VydmljZVxyXG4gICAgICAuZ2V0Um9sZXMoZ3JvdXBUeXBlSWQpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICAvLyBNZW1iZXIgbGV2ZWxzIGFyZSB0aGUgcm9sZXMgd2hvc2Ugcm9sZVR5cGVOYW1lIGlzIFwiTWVtYmVyIExldmVsXCIuXHJcbiAgICAgICAgICB0aGlzLmxldmVscyA9IChyZXNwb25zZT8uYm9keSA/PyBbXSkuZmlsdGVyKFxyXG4gICAgICAgICAgICAocm9sZSkgPT4gcm9sZS5yb2xlVHlwZU5hbWUgPT09IE1FTUJFUl9MRVZFTF9ST0xFX1RZUEVcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICB0aGlzLmxvYWRDb25maWcoKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIGVycm9yOiAoZXJyb3IpID0+IHtcclxuICAgICAgICAgIHRoaXMuaGFuZGxlRXJyb3IoZXJyb3IpO1xyXG4gICAgICAgICAgdGhpcy5sb2FkQ29uZmlnKCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBMb2FkcyB0aGUgZ3JvdXAncyBpbnRlcmVzdCBjb25maWd1cmF0aW9uIChtb2RlICsgZGVmYXVsdCBsZXZlbCkgYW5kIHN5bmNzXHJcbiAgICogdGhlIHRvZ2dsZSBhbmQgdGhlIGRlZmF1bHQtbGV2ZWwgcmFkaW8gc2VsZWN0aW9uLlxyXG4gICAqIEBtZW1iZXJvZiBJbnRlcmVzdEZvcm1Db21wb25lbnRcclxuICAgKi9cclxuICBsb2FkQ29uZmlnKCk6IHZvaWQge1xyXG4gICAgdGhpcy5pbnRlcmVzdEZvcm1TZXJ2aWNlXHJcbiAgICAgIC5nZXRJbnRlcmVzdENvbmZpZyh0aGlzLmdyb3VwLmdyb3VwSWQpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICBjb25zdCBjb25maWcgPSByZXNwb25zZT8uYm9keTtcclxuICAgICAgICAgIHRoaXMuaXNGb3JtRW5hYmxlZCA9IGNvbmZpZz8uaW50ZXJlc3RNb2RlID09PSBJbnRlcmVzdE1vZGUuRk9STTtcclxuICAgICAgICAgIHRoaXMuZW5hYmxlRm9ybVRvZ2dsZSA9IHtcclxuICAgICAgICAgICAgLi4udGhpcy5lbmFibGVGb3JtVG9nZ2xlLFxyXG4gICAgICAgICAgICBjaGVja2VkOiB0aGlzLmlzRm9ybUVuYWJsZWQsXHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgICAgLy8gUHJlc2VsZWN0IHRoZSBzYXZlZCBkZWZhdWx0IGxldmVsLCBlbHNlIHRoZSBmaXJzdCBtZW1iZXIgbGV2ZWwuXHJcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkTGV2ZWxJZCA9XHJcbiAgICAgICAgICAgIGNvbmZpZz8uZGVmYXVsdExldmVsSWQgPz8gdGhpcy5sZXZlbHNbMF0/LnJvbGVJZCA/PyBudWxsO1xyXG4gICAgICAgICAgdGhpcy5idWlsZE1lbWJlcnNoaXBMZXZlbE9wdGlvbnMoKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIGVycm9yOiAoZXJyb3IpID0+IHRoaXMuaGFuZGxlRXJyb3IoZXJyb3IpLFxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEJ1aWxkcyB0aGUgcmFkaW8gb3B0aW9ucyBmcm9tIHRoZSByZWFsIG1lbWJlcnNoaXAgbGV2ZWxzLCBtYXJraW5nIHRoZVxyXG4gICAqIGN1cnJlbnRseSBzZWxlY3RlZCBsZXZlbCBhcyBjaGVja2VkLlxyXG4gICAqIEBtZW1iZXJvZiBJbnRlcmVzdEZvcm1Db21wb25lbnRcclxuICAgKi9cclxuICBidWlsZE1lbWJlcnNoaXBMZXZlbE9wdGlvbnMoKTogdm9pZCB7XHJcbiAgICB0aGlzLm1lbWJlcnNoaXBMZXZlbHMgPSB0aGlzLmxldmVscy5tYXAoKGxldmVsKSA9PiAoe1xyXG4gICAgICBpZDogbGV2ZWwucm9sZUlkLFxyXG4gICAgICBsYWJlbDogbGV2ZWwucm9sZU5hbWUsXHJcbiAgICAgIGNoZWNrZWQ6IGxldmVsLnJvbGVJZCA9PT0gdGhpcy5zZWxlY3RlZExldmVsSWQsXHJcbiAgICB9KSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBMb2FkcyB0aGUgZ3JvdXAncyBjdXN0b20gcXVlc3Rpb25zLlxyXG4gICAqIEBtZW1iZXJvZiBJbnRlcmVzdEZvcm1Db21wb25lbnRcclxuICAgKi9cclxuICBsb2FkUXVlc3Rpb25zKCk6IHZvaWQge1xyXG4gICAgdGhpcy5pbnRlcmVzdEZvcm1TZXJ2aWNlXHJcbiAgICAgIC5nZXRRdWVzdGlvbnModGhpcy5ncm91cC5ncm91cElkKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5jdXN0b21RdWVzdGlvbnMgPSByZXNwb25zZT8uYm9keSA/PyBbXTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIGVycm9yOiAoZXJyb3IpID0+IHRoaXMuaGFuZGxlRXJyb3IoZXJyb3IpLFxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFVwZGF0ZXMgdGhlIGZvcm0tZW5hYmxlZCBzdGF0ZSBhbmQgcGVyc2lzdHMgdGhlIG5ldyBpbnRlcmVzdCBtb2RlLlxyXG4gICAqIEBwYXJhbSB7U2xpZGVUb2dnbGVPcHRpb259IHRvZ2dsZVxyXG4gICAqIEBtZW1iZXJvZiBJbnRlcmVzdEZvcm1Db21wb25lbnRcclxuICAgKi9cclxuICBvbkVuYWJsZUZvcm1Ub2dnbGUodG9nZ2xlOiBTbGlkZVRvZ2dsZU9wdGlvbik6IHZvaWQge1xyXG4gICAgdGhpcy5pc0Zvcm1FbmFibGVkID0gdG9nZ2xlPy5jaGVja2VkO1xyXG4gICAgaWYgKCF0aGlzLmlzRm9ybUVuYWJsZWQpIHtcclxuICAgICAgLy8gRGlzYWJsaW5nIGFsd2F5cyBwZXJzaXN0cyBpbW1lZGlhdGVseSAobm8gbGV2ZWwgbmVlZGVkKS5cclxuICAgICAgdGhpcy5zYXZlQ29uZmlnKCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIC8vIEVuYWJsaW5nIHJlcXVpcmVzIGEgZGVmYXVsdCBsZXZlbCAoYmFja2VuZCByZWplY3RzIEZPUk0gd2l0aG91dCBvbmUpLiBJZlxyXG4gICAgLy8gbm9uZSBpcyBzZWxlY3RlZCB5ZXQsIGF1dG8tc2VsZWN0IHRoZSBsZXZlbCBmbGFnZ2VkIGRlZmF1bHQsIGVsc2UgdGhlXHJcbiAgICAvLyBmaXJzdCBhdmFpbGFibGUgbGV2ZWwsIHNvIHRoZSB0b2dnbGUgcGVyc2lzdHMgaW1tZWRpYXRlbHkuXHJcbiAgICBpZiAoIXRoaXMuc2VsZWN0ZWRMZXZlbElkKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRMZXZlbElkID0gdGhpcy5sZXZlbHNbMF0/LnJvbGVJZCA/PyBudWxsO1xyXG4gICAgICB0aGlzLmJ1aWxkTWVtYmVyc2hpcExldmVsT3B0aW9ucygpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRMZXZlbElkKSB7XHJcbiAgICAgIHRoaXMuc2F2ZUNvbmZpZygpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgLy8gTm8gbWVtYmVyc2hpcCBsZXZlbHMgY29uZmlndXJlZCBmb3IgdGhpcyBncm91cCB0eXBlOiBjYW5ub3QgZW5hYmxlLCBzb1xyXG4gICAgICAvLyByZXZlcnQgdGhlIHRvZ2dsZS9lbmFibGVkIHN0YXRlIHRvIGZhbHNlIGJlZm9yZSBhbGVydGluZyAobm90aGluZyB3YXNcclxuICAgICAgLy8gcGVyc2lzdGVkLCBhbmQgdGhlIGRlcGVuZGVudCBzZWN0aW9ucyBtdXN0IG5vdCBzdGF5IHZpc2libGUpLlxyXG4gICAgICB0aGlzLmlzRm9ybUVuYWJsZWQgPSBmYWxzZTtcclxuICAgICAgdGhpcy5lbmFibGVGb3JtVG9nZ2xlID0ge1xyXG4gICAgICAgIC4uLnRoaXMuZW5hYmxlRm9ybVRvZ2dsZSxcclxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgfTtcclxuICAgICAgdGhpcy5hbGVydFNlcnZpY2U/LnNob3dNZXNzYWdlKHtcclxuICAgICAgICBzdGF0dXM6ICdjdXN0b20nLFxyXG4gICAgICAgIG1lc3NhZ2U6IHRoaXMuaW50ZXJlc3RGb3JtVGV4dHM/Lm5vTGV2ZWxzTWVzc2FnZSxcclxuICAgICAgICBhbGVydFR5cGU6IEFsZXJ0VHlwZT8uRVJST1IsXHJcbiAgICAgICAgaXNDbG9zZU5lZWRlZDogdHJ1ZSxcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBQZXJzaXN0cyB0aGUgaW50ZXJlc3QgY29uZmlnLiBUaGUgZGVmYXVsdCBsZXZlbCBpcyBvbmx5IHNlbnQgZm9yIHRoZVxyXG4gICAqIGVuYWJsZWQgKEZPUk0pIG1vZGU7IERJU0FCTEVEIGNsZWFycyBpdC4gRW5hYmxpbmcgd2l0aG91dCBhIHNlbGVjdGVkIGxldmVsXHJcbiAgICogaXMgc2tpcHBlZCBzbyBhbiBpbnZhbGlkIHJlcXVlc3QgaXMgbmV2ZXIgc2VudC5cclxuICAgKiBAbWVtYmVyb2YgSW50ZXJlc3RGb3JtQ29tcG9uZW50XHJcbiAgICovXHJcbiAgc2F2ZUNvbmZpZygpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5ncm91cD8uZ3JvdXBJZCkgcmV0dXJuO1xyXG4gICAgaWYgKHRoaXMuaXNGb3JtRW5hYmxlZCAmJiAhdGhpcy5zZWxlY3RlZExldmVsSWQpIHJldHVybjtcclxuICAgIHRoaXMuaW50ZXJlc3RGb3JtU2VydmljZVxyXG4gICAgICAuc2F2ZUludGVyZXN0Q29uZmlnKHtcclxuICAgICAgICBncm91cElkOiB0aGlzLmdyb3VwLmdyb3VwSWQsXHJcbiAgICAgICAgaW50ZXJlc3RNb2RlOiB0aGlzLmlzRm9ybUVuYWJsZWRcclxuICAgICAgICAgID8gSW50ZXJlc3RNb2RlLkZPUk1cclxuICAgICAgICAgIDogSW50ZXJlc3RNb2RlLkRJU0FCTEVELFxyXG4gICAgICAgIGRlZmF1bHRMZXZlbElkOiB0aGlzLmlzRm9ybUVuYWJsZWQgPyB0aGlzLnNlbGVjdGVkTGV2ZWxJZCA6IG51bGwsXHJcbiAgICAgIH0pXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgICAgZXJyb3I6IChlcnJvcikgPT4gdGhpcy5oYW5kbGVFcnJvcihlcnJvciksXHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmVjb3JkcyB0aGUgc2VsZWN0ZWQgZGVmYXVsdCBtZW1iZXJzaGlwIGxldmVsIGFuZCBwZXJzaXN0cyB0aGUgY29uZmlnIHdoZW5cclxuICAgKiB0aGUgZm9ybSBpcyBlbmFibGVkLlxyXG4gICAqIEBwYXJhbSB7UmFkaW9PcHRpb259IG9wdGlvblxyXG4gICAqIEBtZW1iZXJvZiBJbnRlcmVzdEZvcm1Db21wb25lbnRcclxuICAgKi9cclxuICBvbk1lbWJlcnNoaXBMZXZlbENoYW5nZShvcHRpb246IFJhZGlvT3B0aW9uKTogdm9pZCB7XHJcbiAgICB0aGlzLnNlbGVjdGVkTGV2ZWxJZCA9IFN0cmluZyhvcHRpb24/LmlkKTtcclxuICAgIGlmICh0aGlzLmlzRm9ybUVuYWJsZWQpIHtcclxuICAgICAgdGhpcy5zYXZlQ29uZmlnKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBZGRzIGEgbmV3IGJsYW5rIHF1ZXN0aW9uIGFuZCBvcGVucyBpdHMgZWRpdG9yLiBPbmx5IG9uZSBlZGl0b3IgaXMgb3BlbiBhdFxyXG4gICAqIGEgdGltZS5cclxuICAgKiBAbWVtYmVyb2YgSW50ZXJlc3RGb3JtQ29tcG9uZW50XHJcbiAgICovXHJcbiAgb25BZGRRdWVzdGlvbigpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmVkaXRpbmdRdWVzdGlvbklkKSByZXR1cm47XHJcbiAgICBjb25zdCB0ZW1wSWQgPSBgbmV3LSR7RGF0ZS5ub3coKX1gO1xyXG4gICAgY29uc3QgbmV3UXVlc3Rpb246IEN1c3RvbVF1ZXN0aW9uID0ge1xyXG4gICAgICBxdWVzdGlvbklkOiB0ZW1wSWQsXHJcbiAgICAgIGdyb3VwSWQ6IHRoaXMuZ3JvdXA/Lmdyb3VwSWQsXHJcbiAgICAgIHF1ZXN0aW9uTGFiZWw6ICcnLFxyXG4gICAgICBmaWVsZFR5cGU6IG51bGwsXHJcbiAgICAgIGlzUmVxdWlyZWQ6IHRydWUsXHJcbiAgICAgIHBsYWNlaG9sZGVyOiAnJyxcclxuICAgICAgaGVscFRleHQ6ICcnLFxyXG4gICAgICBvcHRpb25zOiB1bmRlZmluZWQsXHJcbiAgICAgIHZpZXdPcmRlcjogdGhpcy5jdXN0b21RdWVzdGlvbnMubGVuZ3RoLFxyXG4gICAgfTtcclxuICAgIHRoaXMuY3VzdG9tUXVlc3Rpb25zID0gWy4uLnRoaXMuY3VzdG9tUXVlc3Rpb25zLCBuZXdRdWVzdGlvbl07XHJcbiAgICB0aGlzLmVkaXRpbmdRdWVzdGlvbklkID0gdGVtcElkO1xyXG4gICAgdGhpcy5pc0VkaXRpbmdOZXdRdWVzdGlvbiA9IHRydWU7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBPcGVucyB0aGUgZWRpdG9yIGZvciBhbiBleGlzdGluZyBxdWVzdGlvbi5cclxuICAgKiBAcGFyYW0ge0N1c3RvbVF1ZXN0aW9ufSBxdWVzdGlvblxyXG4gICAqIEBtZW1iZXJvZiBJbnRlcmVzdEZvcm1Db21wb25lbnRcclxuICAgKi9cclxuICBvbkVkaXRRdWVzdGlvbihxdWVzdGlvbjogQ3VzdG9tUXVlc3Rpb24pOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmVkaXRpbmdRdWVzdGlvbklkKSByZXR1cm47XHJcbiAgICB0aGlzLmVkaXRpbmdRdWVzdGlvbklkID0gcXVlc3Rpb24ucXVlc3Rpb25JZCA/PyBudWxsO1xyXG4gICAgdGhpcy5pc0VkaXRpbmdOZXdRdWVzdGlvbiA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ3JlYXRlcyBvciB1cGRhdGVzIHRoZSBxdWVzdGlvbiBvbiB0aGUgYmFja2VuZCBhbmQgcmVmcmVzaGVzIHRoZSBsaXN0LlxyXG4gICAqIEBwYXJhbSB7Q3VzdG9tUXVlc3Rpb259IHF1ZXN0aW9uXHJcbiAgICogQG1lbWJlcm9mIEludGVyZXN0Rm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uU2F2ZVF1ZXN0aW9uKHF1ZXN0aW9uOiBDdXN0b21RdWVzdGlvbik6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuaXNFZGl0aW5nTmV3UXVlc3Rpb24pIHtcclxuICAgICAgY29uc3QgcGF5bG9hZDogQ3VzdG9tUXVlc3Rpb24gPSB7IC4uLnF1ZXN0aW9uIH07XHJcbiAgICAgIC8vIFJlbW92ZSB0aGUgdGVtcG9yYXJ5IGNsaWVudCBpZCBzbyB0aGUgYmFja2VuZCBnZW5lcmF0ZXMgb25lLlxyXG4gICAgICBkZWxldGUgcGF5bG9hZC5xdWVzdGlvbklkO1xyXG4gICAgICB0aGlzLmludGVyZXN0Rm9ybVNlcnZpY2VcclxuICAgICAgICAuY3JlYXRlUXVlc3Rpb24ocGF5bG9hZClcclxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgICAgICBuZXh0OiAoKSA9PiB0aGlzLmFmdGVyUXVlc3Rpb25TYXZlZCgpLFxyXG4gICAgICAgICAgZXJyb3I6IChlcnJvcikgPT4gdGhpcy5oYW5kbGVFcnJvcihlcnJvciksXHJcbiAgICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmludGVyZXN0Rm9ybVNlcnZpY2VcclxuICAgICAgICAudXBkYXRlUXVlc3Rpb24ocXVlc3Rpb24pXHJcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgICAgbmV4dDogKCkgPT4gdGhpcy5hZnRlclF1ZXN0aW9uU2F2ZWQoKSxcclxuICAgICAgICAgIGVycm9yOiAoZXJyb3IpID0+IHRoaXMuaGFuZGxlRXJyb3IoZXJyb3IpLFxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2xvc2VzIHRoZSBlZGl0b3IgYW5kIHJlbG9hZHMgdGhlIHF1ZXN0aW9ucyBhZnRlciBhIHN1Y2Nlc3NmdWwgc2F2ZS5cclxuICAgKiBAbWVtYmVyb2YgSW50ZXJlc3RGb3JtQ29tcG9uZW50XHJcbiAgICovXHJcbiAgcHJpdmF0ZSBhZnRlclF1ZXN0aW9uU2F2ZWQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmVkaXRpbmdRdWVzdGlvbklkID0gbnVsbDtcclxuICAgIHRoaXMuaXNFZGl0aW5nTmV3UXVlc3Rpb24gPSBmYWxzZTtcclxuICAgIHRoaXMubG9hZFF1ZXN0aW9ucygpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2xvc2VzIHRoZSBlZGl0b3IuIEEgbmV3bHkgYWRkZWQgcXVlc3Rpb24gaXMgcmVtb3ZlZCBvbiBjYW5jZWw7IGFuIGV4aXN0aW5nXHJcbiAgICogcXVlc3Rpb24ga2VlcHMgaXRzIHByZXZpb3VzIHZhbHVlcy5cclxuICAgKiBAcGFyYW0ge3N0cmluZ30gcXVlc3Rpb25JZFxyXG4gICAqIEBtZW1iZXJvZiBJbnRlcmVzdEZvcm1Db21wb25lbnRcclxuICAgKi9cclxuICBvbkNhbmNlbFF1ZXN0aW9uKHF1ZXN0aW9uSWQ6IHN0cmluZyB8IHVuZGVmaW5lZCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuaXNFZGl0aW5nTmV3UXVlc3Rpb24pIHtcclxuICAgICAgdGhpcy5jdXN0b21RdWVzdGlvbnMgPSB0aGlzLmN1c3RvbVF1ZXN0aW9ucy5maWx0ZXIoXHJcbiAgICAgICAgKHF1ZXN0aW9uKSA9PiBxdWVzdGlvbi5xdWVzdGlvbklkICE9PSBxdWVzdGlvbklkXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmVkaXRpbmdRdWVzdGlvbklkID0gbnVsbDtcclxuICAgIHRoaXMuaXNFZGl0aW5nTmV3UXVlc3Rpb24gPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJlbW92ZXMgYSBxdWVzdGlvbiBvbiB0aGUgYmFja2VuZCBhbmQgcmVmcmVzaGVzIHRoZSBsaXN0LlxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBxdWVzdGlvbklkXHJcbiAgICogQG1lbWJlcm9mIEludGVyZXN0Rm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uRGVsZXRlUXVlc3Rpb24ocXVlc3Rpb25JZDogc3RyaW5nIHwgdW5kZWZpbmVkKTogdm9pZCB7XHJcbiAgICBpZiAoIXF1ZXN0aW9uSWQpIHJldHVybjtcclxuICAgIC8vIEEgbm90LXlldC1zYXZlZCBxdWVzdGlvbiBvbmx5IGV4aXN0cyBjbGllbnQtc2lkZS5cclxuICAgIGlmIChxdWVzdGlvbklkLnN0YXJ0c1dpdGgoJ25ldy0nKSkge1xyXG4gICAgICB0aGlzLm9uQ2FuY2VsUXVlc3Rpb24ocXVlc3Rpb25JZCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuaW50ZXJlc3RGb3JtU2VydmljZVxyXG4gICAgICAucmVtb3ZlUXVlc3Rpb24ocXVlc3Rpb25JZClcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAoKSA9PiB7XHJcbiAgICAgICAgICBpZiAodGhpcy5lZGl0aW5nUXVlc3Rpb25JZCA9PT0gcXVlc3Rpb25JZCkge1xyXG4gICAgICAgICAgICB0aGlzLmVkaXRpbmdRdWVzdGlvbklkID0gbnVsbDtcclxuICAgICAgICAgICAgdGhpcy5pc0VkaXRpbmdOZXdRdWVzdGlvbiA9IGZhbHNlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy5sb2FkUXVlc3Rpb25zKCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBlcnJvcjogKGVycm9yKSA9PiB0aGlzLmhhbmRsZUVycm9yKGVycm9yKSxcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZW9yZGVycyBxdWVzdGlvbnMgb24gZHJhZy1kcm9wIGFuZCBwZXJzaXN0cyB0aGUgbmV3IG9yZGVyLlxyXG4gICAqIEBwYXJhbSB7Q2RrRHJhZ0Ryb3A8Q3VzdG9tUXVlc3Rpb25bXT59IGV2ZW50XHJcbiAgICogQG1lbWJlcm9mIEludGVyZXN0Rm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uUmVvcmRlclF1ZXN0aW9ucyhldmVudDogQ2RrRHJhZ0Ryb3A8Q3VzdG9tUXVlc3Rpb25bXT4pOiB2b2lkIHtcclxuICAgIGNvbnN0IHJlb3JkZXJlZCA9IFsuLi50aGlzLmN1c3RvbVF1ZXN0aW9uc107XHJcbiAgICBtb3ZlSXRlbUluQXJyYXkocmVvcmRlcmVkLCBldmVudC5wcmV2aW91c0luZGV4LCBldmVudC5jdXJyZW50SW5kZXgpO1xyXG4gICAgdGhpcy5jdXN0b21RdWVzdGlvbnMgPSByZW9yZGVyZWQubWFwKChxdWVzdGlvbiwgaW5kZXgpID0+ICh7XHJcbiAgICAgIC4uLnF1ZXN0aW9uLFxyXG4gICAgICB2aWV3T3JkZXI6IGluZGV4LFxyXG4gICAgfSkpO1xyXG4gICAgdGhpcy5pbnRlcmVzdEZvcm1TZXJ2aWNlXHJcbiAgICAgIC5yZW9yZGVyUXVlc3Rpb25zKFxyXG4gICAgICAgIHRoaXMuY3VzdG9tUXVlc3Rpb25zLm1hcCgocXVlc3Rpb24pID0+ICh7XHJcbiAgICAgICAgICBxdWVzdGlvbklkOiBxdWVzdGlvbi5xdWVzdGlvbklkIGFzIHN0cmluZyxcclxuICAgICAgICAgIHZpZXdPcmRlcjogcXVlc3Rpb24udmlld09yZGVyLFxyXG4gICAgICAgIH0pKVxyXG4gICAgICApXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgICAgLy8gVGhlIGxpc3Qgd2FzIHJlb3JkZXJlZCBvcHRpbWlzdGljYWxseTsgaWYgdGhlIGJhY2tlbmQgcmVqZWN0ZWQgdGhlXHJcbiAgICAgICAgLy8gbmV3IG9yZGVyLCByZWxvYWQgc28gdGhlIGNsaWVudCByZWZsZWN0cyB0aGUgcGVyc2lzdGVkIG9yZGVyLlxyXG4gICAgICAgIGVycm9yOiAoZXJyb3IpID0+IHtcclxuICAgICAgICAgIHRoaXMuaGFuZGxlRXJyb3IoZXJyb3IpO1xyXG4gICAgICAgICAgdGhpcy5sb2FkUXVlc3Rpb25zKCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm5zIHRoZSBkaXNwbGF5IGxhYmVsIGZvciBhIHF1ZXN0aW9uJ3MgZmllbGQgdHlwZS5cclxuICAgKiBAcGFyYW0geyhRdWVzdGlvbkZpZWxkVHlwZSB8IG51bGwpfSB0eXBlXHJcbiAgICogQHJldHVybiB7c3RyaW5nfVxyXG4gICAqIEBtZW1iZXJvZiBJbnRlcmVzdEZvcm1Db21wb25lbnRcclxuICAgKi9cclxuICBnZXRUeXBlTGFiZWwodHlwZTogUXVlc3Rpb25GaWVsZFR5cGUgfCBudWxsKTogc3RyaW5nIHtcclxuICAgIHN3aXRjaCAodHlwZSkge1xyXG4gICAgICBjYXNlIFF1ZXN0aW9uRmllbGRUeXBlLlRFWFQ6XHJcbiAgICAgICAgcmV0dXJuIHRoaXMudHlwZUxhYmVscz8udGV4dDtcclxuICAgICAgY2FzZSBRdWVzdGlvbkZpZWxkVHlwZS5URVhUQVJFQTpcclxuICAgICAgICByZXR1cm4gdGhpcy50eXBlTGFiZWxzPy50ZXh0QXJlYTtcclxuICAgICAgY2FzZSBRdWVzdGlvbkZpZWxkVHlwZS5TRUxFQ1Q6XHJcbiAgICAgICAgcmV0dXJuIHRoaXMudHlwZUxhYmVscz8uZHJvcGRvd247XHJcbiAgICAgIGNhc2UgUXVlc3Rpb25GaWVsZFR5cGUuQ0hFQ0tCT1g6XHJcbiAgICAgICAgcmV0dXJuIHRoaXMudHlwZUxhYmVscz8uY2hlY2tib3g7XHJcbiAgICAgIGNhc2UgUXVlc3Rpb25GaWVsZFR5cGUuUkFESU86XHJcbiAgICAgICAgcmV0dXJuIHRoaXMudHlwZUxhYmVscz8ucmFkaW87XHJcbiAgICAgIGNhc2UgUXVlc3Rpb25GaWVsZFR5cGUuREFURTpcclxuICAgICAgICByZXR1cm4gdGhpcy50eXBlTGFiZWxzPy5kYXRlO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHJldHVybiAnJztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNob3dzIGFuIGVycm9yIGFsZXJ0IGZvciBhIGZhaWxlZCBpbnRlcmVzdC1mb3JtIG9wZXJhdGlvbi5cclxuICAgKiBAcGFyYW0geyp9IGVycm9yXHJcbiAgICogQG1lbWJlcm9mIEludGVyZXN0Rm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgaGFuZGxlRXJyb3IoZXJyb3I6IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5hbGVydFNlcnZpY2U/LnNob3dNZXNzYWdlKHtcclxuICAgICAgc3RhdHVzOiAnY3VzdG9tJyxcclxuICAgICAgbWVzc2FnZTogZXJyb3I/LmVycm9yPy5tZXNzYWdlID8/IGVycm9yPy5tZXNzYWdlLFxyXG4gICAgICBhbGVydFR5cGU6IEFsZXJ0VHlwZT8uRVJST1IsXHJcbiAgICAgIGlzQ2xvc2VOZWVkZWQ6IHRydWUsXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE9wZW5zIHRoZSBpbnRlcmVzdCBmb3JtIGluIHJlYWQtb25seSBwcmV2aWV3IG1vZGUgKFNQM00tMzE3IFI2LjcpLCByZXVzaW5nXHJcbiAgICogdGhlIHNoYXJlZCBleHByZXNzLWludGVyZXN0IGRpYWxvZy4gU2hvd3MgdGhlIGFkbWluJ3MgY3VycmVudCBjdXN0b21cclxuICAgKiBxdWVzdGlvbnMgYXMgYW4gZW5kIHVzZXIgd291bGQgc2VlIHRoZW07IG5vIHN1Ym1pdCwgQ2FuY2VsIG9ubHkuXHJcbiAgICogQG1lbWJlcm9mIEludGVyZXN0Rm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uUHJldmlldygpOiB2b2lkIHtcclxuICAgIHRoaXMuZGlhbG9nPy5vcGVuKEludGVyZXN0Rm9ybVByZXZpZXdDb21wb25lbnQsIHtcclxuICAgICAgd2lkdGg6ICc3MjBweCcsXHJcbiAgICAgIG1heFdpZHRoOiAnOTJ2dycsXHJcbiAgICAgIG1heEhlaWdodDogJzkwdmgnLFxyXG4gICAgICBwYW5lbENsYXNzOiBbJ2llZWVzYS1tb2RhbC1kaWFsb2cnLCAnaWVlZXNhLWludGVyZXN0LWZvcm0tcHJldmlldyddLFxyXG4gICAgICBhcmlhTW9kYWw6IHRydWUsXHJcbiAgICAgIGRhdGE6IHtcclxuICAgICAgICBncm91cE5hbWU6IHRoaXMuZ3JvdXA/Lmdyb3VwTmFtZSA/PyAnJyxcclxuICAgICAgICBjdXN0b21RdWVzdGlvbnM6IHRoaXMuY3VzdG9tUXVlc3Rpb25zLFxyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDbG9zZXMgdGhlIFJvc3RlciBJbnRlcmVzdHMgZGlhbG9nIChDYW5jZWwgYWN0aW9uKS5cclxuICAgKiBAbWVtYmVyb2YgSW50ZXJlc3RGb3JtQ29tcG9uZW50XHJcbiAgICovXHJcbiAgb25DYW5jZWwoKTogdm9pZCB7XHJcbiAgICB0aGlzLmRpYWxvZ1JlZj8uY2xvc2UoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIG5nRm9yIHRyYWNraW5nIGZvciBzdGFuZGFyZCBxdWVzdGlvbiByb3dzLlxyXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBpbmRleFxyXG4gICAqIEBwYXJhbSB7U3RhbmRhcmRRdWVzdGlvblJvd30gcXVlc3Rpb25cclxuICAgKiBAcmV0dXJuIHtudW1iZXJ9XHJcbiAgICogQG1lbWJlcm9mIEludGVyZXN0Rm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIHRyYWNrQnlGbihpbmRleDogbnVtYmVyLCBxdWVzdGlvbjogU3RhbmRhcmRRdWVzdGlvblJvdyk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gcXVlc3Rpb24uaWQ7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBuZ0ZvciB0cmFja2luZyBmb3IgY3VzdG9tIHF1ZXN0aW9ucy5cclxuICAgKiBAcGFyYW0ge251bWJlcn0gaW5kZXhcclxuICAgKiBAcGFyYW0ge0N1c3RvbVF1ZXN0aW9ufSBxdWVzdGlvblxyXG4gICAqIEByZXR1cm4ge3N0cmluZ31cclxuICAgKiBAbWVtYmVyb2YgSW50ZXJlc3RGb3JtQ29tcG9uZW50XHJcbiAgICovXHJcbiAgdHJhY2tCeVF1ZXN0aW9uSWQoaW5kZXg6IG51bWJlciwgcXVlc3Rpb246IEN1c3RvbVF1ZXN0aW9uKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBxdWVzdGlvbi5xdWVzdGlvbklkIGFzIHN0cmluZztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEVtaXRzIGFuZCBjb21wbGV0ZXMgdGhlIGRlc3Ryb3kgc3ViamVjdCBzbyBhbnkgaW4tZmxpZ2h0IHJlcXVlc3RzIGFyZVxyXG4gICAqIHVuc3Vic2NyaWJlZCB3aGVuIHRoZSBjb21wb25lbnQgaXMgZGVzdHJveWVkLlxyXG4gICAqIEBtZW1iZXJvZiBJbnRlcmVzdEZvcm1Db21wb25lbnRcclxuICAgKi9cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuZGVzdHJveSQubmV4dCh0cnVlKTtcclxuICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImllZWVzYS1pbnRlcmVzdC1mb3JtXCI+XHJcbiAgPGRpdiBjbGFzcz1cImllZWVzYS1pbnRlcmVzdC1mb3JtX19ub3RpY2UgaWVlZXNhLWJvZHktc20tMTRcIiByb2xlPVwibm90ZVwiPlxyXG4gICAgPHN2Z1xyXG4gICAgICBjbGFzcz1cImllZWVzYS1pbnRlcmVzdC1mb3JtX19ub3RpY2UtaWNvblwiXHJcbiAgICAgIHdpZHRoPVwiMTZcIlxyXG4gICAgICBoZWlnaHQ9XCIxNlwiXHJcbiAgICAgIHZpZXdCb3g9XCIwIDAgMjQgMjRcIlxyXG4gICAgICBmaWxsPVwibm9uZVwiXHJcbiAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXHJcbiAgICA+XHJcbiAgICAgIDxwYXRoXHJcbiAgICAgICAgZD1cIk0xMiAyTDEgMjFoMjJMMTIgMnptMCA0LjVMMTkuNSAxOS41aC0xNUwxMiA2LjV6TTExIDEwdjVoMnYtNWgtMnptMCA2djJoMnYtMmgtMnpcIlxyXG4gICAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxyXG4gICAgICAvPlxyXG4gICAgPC9zdmc+XHJcbiAgICA8c3Bhbj57eyBjaGFuZ2VzTm90aWNlIH19PC9zcGFuPlxyXG4gIDwvZGl2PlxyXG5cclxuICA8c2VjdGlvbiBjbGFzcz1cImllZWVzYS1pbnRlcmVzdC1mb3JtX19zZWN0aW9uXCI+XHJcbiAgICA8ZGl2XHJcbiAgICAgIGNsYXNzPVwiaWVlZXNhLWludGVyZXN0LWZvcm1fX3JvdyBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtc3RhcnRcIlxyXG4gICAgPlxyXG4gICAgICA8ZGl2PlxyXG4gICAgICAgIDxoMiBjbGFzcz1cImllZWVzYS1pbnRlcmVzdC1mb3JtX19zZWN0aW9uLXRpdGxlIGllZWVzYS1ib2R5LWxnLWJvbGQtMTYgbS0wXCI+XHJcbiAgICAgICAgICB7eyBzZWN0aW9uVGl0bGUgfX1cclxuICAgICAgICA8L2gyPlxyXG4gICAgICAgIDxwIGNsYXNzPVwiaWVlZXNhLWludGVyZXN0LWZvcm1fX3NlY3Rpb24tZGVzYyBpZWVlc2EtYm9keS1zbS0xNCBtLTBcIj5cclxuICAgICAgICAgIHt7IHNlY3Rpb25EZXNjcmlwdGlvbiB9fVxyXG4gICAgICAgIDwvcD5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxpZWVlc2Etc2xpZGUtdG9nZ2xlXHJcbiAgICAgICAgW3NsaWRlVG9nZ2xlXT1cImVuYWJsZUZvcm1Ub2dnbGVcIlxyXG4gICAgICAgIChzbGlkZVRvZ2dsZUNoYW5nZSk9XCJvbkVuYWJsZUZvcm1Ub2dnbGUoJGV2ZW50KVwiXHJcbiAgICAgID48L2llZWVzYS1zbGlkZS10b2dnbGU+XHJcbiAgICA8L2Rpdj5cclxuICA8L3NlY3Rpb24+XHJcblxyXG4gIDxzZWN0aW9uICpuZ0lmPVwiaXNGb3JtRW5hYmxlZFwiIGNsYXNzPVwiaWVlZXNhLWludGVyZXN0LWZvcm1fX3NlY3Rpb25cIj5cclxuICAgIDxkaXZcclxuICAgICAgY2xhc3M9XCJpZWVlc2EtaW50ZXJlc3QtZm9ybV9fc2VjdGlvbi1oZWFkaW5nIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTJcIlxyXG4gICAgPlxyXG4gICAgICA8c3ZnXHJcbiAgICAgICAgY2xhc3M9XCJpZWVlc2EtaW50ZXJlc3QtZm9ybV9fbG9ja1wiXHJcbiAgICAgICAgd2lkdGg9XCIxNlwiXHJcbiAgICAgICAgaGVpZ2h0PVwiMTZcIlxyXG4gICAgICAgIHZpZXdCb3g9XCIwIDAgMjQgMjRcIlxyXG4gICAgICAgIGZpbGw9XCJub25lXCJcclxuICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPHBhdGhcclxuICAgICAgICAgIGQ9XCJNMTIgMmE1IDUgMCAwIDAtNSA1djNINmEyIDIgMCAwIDAtMiAydjhhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0ydi04YTIgMiAwIDAgMC0yLTJoLTFWN2E1IDUgMCAwIDAtNS01em0tMyA1YTMgMyAwIDAgMSA2IDB2M0g5Vjd6bS0zIDVoMTJ2OEg2di04elwiXHJcbiAgICAgICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcclxuICAgICAgICAvPlxyXG4gICAgICA8L3N2Zz5cclxuICAgICAgPGgyIGNsYXNzPVwiaWVlZXNhLWludGVyZXN0LWZvcm1fX3NlY3Rpb24tdGl0bGUgaWVlZXNhLWJvZHktbGctYm9sZC0xNiBtLTBcIj5cclxuICAgICAgICB7eyBzdGFuZGFyZFF1ZXN0aW9uc1RpdGxlIH19XHJcbiAgICAgIDwvaDI+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwiaWVlZXNhLWludGVyZXN0LWZvcm1fX2hpbnQgaWVlZXNhLWJvZHktc20tMTRcIj57e1xyXG4gICAgICAgIHN0YW5kYXJkUXVlc3Rpb25zSGludFxyXG4gICAgICB9fTwvc3Bhbj5cclxuICAgIDwvZGl2PlxyXG4gICAgPHVsIGNsYXNzPVwiaWVlZXNhLWludGVyZXN0LWZvcm1fX3N0YW5kYXJkLWxpc3RcIj5cclxuICAgICAgPGxpXHJcbiAgICAgICAgKm5nRm9yPVwibGV0IHF1ZXN0aW9uIG9mIHN0YW5kYXJkUXVlc3Rpb25zOyB0cmFja0J5OiB0cmFja0J5Rm5cIlxyXG4gICAgICAgIGNsYXNzPVwiaWVlZXNhLWludGVyZXN0LWZvcm1fX3N0YW5kYXJkLXJvdyBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwiaWVlZXNhLWludGVyZXN0LWZvcm1fX3N0YW5kYXJkLWxhYmVsIGllZWVzYS1ib2R5LXNtLTE0XCI+e3tcclxuICAgICAgICAgIHF1ZXN0aW9uLmxhYmVsXHJcbiAgICAgICAgfX08L3NwYW4+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJpZWVlc2EtaW50ZXJlc3QtZm9ybV9fc3RhbmRhcmQtdGFnIGllZWVzYS1ib2R5LXNtLTE0XCI+e3tcclxuICAgICAgICAgIHF1ZXN0aW9uLnRhZ1xyXG4gICAgICAgIH19PC9zcGFuPlxyXG4gICAgICA8L2xpPlxyXG4gICAgPC91bD5cclxuICA8L3NlY3Rpb24+XHJcblxyXG4gIDxzZWN0aW9uICpuZ0lmPVwiaXNGb3JtRW5hYmxlZFwiIGNsYXNzPVwiaWVlZXNhLWludGVyZXN0LWZvcm1fX3NlY3Rpb25cIj5cclxuICAgIDxoMiBjbGFzcz1cImllZWVzYS1pbnRlcmVzdC1mb3JtX19zZWN0aW9uLXRpdGxlIGllZWVzYS1ib2R5LWxnLWJvbGQtMTYgbS0wXCI+XHJcbiAgICAgIHt7IGRlZmF1bHRNZW1iZXJzaGlwVGl0bGUgfX1cclxuICAgIDwvaDI+XHJcbiAgICA8cCBjbGFzcz1cImllZWVzYS1pbnRlcmVzdC1mb3JtX19zZWN0aW9uLWRlc2MgaWVlZXNhLWJvZHktc20tMTRcIj5cclxuICAgICAge3sgZGVmYXVsdE1lbWJlcnNoaXBEZXNjcmlwdGlvbiB9fVxyXG4gICAgPC9wPlxyXG4gICAgPGllZWVzYS1yYWRpb1xyXG4gICAgICAqbmdJZj1cIm1lbWJlcnNoaXBMZXZlbHMubGVuZ3RoID4gMFwiXHJcbiAgICAgIGZvcm1Db250cm9sTmFtZT1cImRlZmF1bHRNZW1iZXJzaGlwTGV2ZWxcIlxyXG4gICAgICBbcmFkaW9Hcm91cF09XCJtZW1iZXJzaGlwTGV2ZWxzXCJcclxuICAgICAgKHNlbGVjdGVkUmFkaW9PcHRpb24pPVwib25NZW1iZXJzaGlwTGV2ZWxDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICA+PC9pZWVlc2EtcmFkaW8+XHJcbiAgICA8cFxyXG4gICAgICAqbmdJZj1cIm1lbWJlcnNoaXBMZXZlbHMubGVuZ3RoID09PSAwXCJcclxuICAgICAgY2xhc3M9XCJpZWVlc2EtaW50ZXJlc3QtZm9ybV9fc2VjdGlvbi1kZXNjIGllZWVzYS1ib2R5LXNtLTE0XCJcclxuICAgID5cclxuICAgICAge3sgbm9MZXZlbHNNZXNzYWdlIH19XHJcbiAgICA8L3A+XHJcbiAgPC9zZWN0aW9uPlxyXG5cclxuICA8c2VjdGlvbiAqbmdJZj1cImlzRm9ybUVuYWJsZWRcIiBjbGFzcz1cImllZWVzYS1pbnRlcmVzdC1mb3JtX19zZWN0aW9uXCI+XHJcbiAgICA8ZGl2XHJcbiAgICAgIGNsYXNzPVwiaWVlZXNhLWludGVyZXN0LWZvcm1fX2N1c3RvbS1oZWFkZXIgZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlclwiXHJcbiAgICA+XHJcbiAgICAgIDxoMiBjbGFzcz1cImllZWVzYS1pbnRlcmVzdC1mb3JtX19zZWN0aW9uLXRpdGxlIGllZWVzYS1ib2R5LWxnLWJvbGQtMTYgbS0wXCI+XHJcbiAgICAgICAge3sgY3VzdG9tUXVlc3Rpb25zVGl0bGUgfX1cclxuICAgICAgPC9oMj5cclxuICAgICAgPGJ1dHRvblxyXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgIGNsYXNzPVwiaWVlZXNhLWludGVyZXN0LWZvcm1fX2FkZC1xdWVzdGlvbiBpZWVlc2EtYm9keS1zbS0xNFwiXHJcbiAgICAgICAgW2Rpc2FibGVkXT1cImVkaXRpbmdRdWVzdGlvbklkXCJcclxuICAgICAgICAoY2xpY2spPVwib25BZGRRdWVzdGlvbigpXCJcclxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImFkZFF1ZXN0aW9uTGFiZWxcIlxyXG4gICAgICA+XHJcbiAgICAgICAge3sgYWRkUXVlc3Rpb25MYWJlbCB9fVxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXZcclxuICAgICAgY2RrRHJvcExpc3RcclxuICAgICAgY2xhc3M9XCJpZWVlc2EtaW50ZXJlc3QtZm9ybV9fcXVlc3Rpb24tbGlzdFwiXHJcbiAgICAgIChjZGtEcm9wTGlzdERyb3BwZWQpPVwib25SZW9yZGVyUXVlc3Rpb25zKCRldmVudClcIlxyXG4gICAgPlxyXG4gICAgICA8ZGl2XHJcbiAgICAgICAgKm5nRm9yPVwibGV0IHF1ZXN0aW9uIG9mIGN1c3RvbVF1ZXN0aW9uczsgdHJhY2tCeTogdHJhY2tCeVF1ZXN0aW9uSWRcIlxyXG4gICAgICAgIGNka0RyYWdcclxuICAgICAgICBbY2RrRHJhZ0Rpc2FibGVkXT1cImVkaXRpbmdRdWVzdGlvbklkXCJcclxuICAgICAgICBjbGFzcz1cImllZWVzYS1pbnRlcmVzdC1mb3JtX19xdWVzdGlvblwiXHJcbiAgICAgICAgW2NsYXNzLmllZWVzYS1pbnRlcmVzdC1mb3JtX19xdWVzdGlvbi0tZWRpdGluZ109XCJcclxuICAgICAgICAgIGVkaXRpbmdRdWVzdGlvbklkID09PSBxdWVzdGlvbi5xdWVzdGlvbklkXHJcbiAgICAgICAgXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgIGNsYXNzPVwiaWVlZXNhLWludGVyZXN0LWZvcm1fX3F1ZXN0aW9uLXJvdyBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGdhcC0yXCJcclxuICAgICAgICAgIFtjbGFzcy5pZWVlc2EtaW50ZXJlc3QtZm9ybV9fcXVlc3Rpb24tcm93LS1lZGl0aW5nXT1cIlxyXG4gICAgICAgICAgICBlZGl0aW5nUXVlc3Rpb25JZCA9PT0gcXVlc3Rpb24ucXVlc3Rpb25JZFxyXG4gICAgICAgICAgXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMiBpZWVlc2EtaW50ZXJlc3QtZm9ybV9fcXVlc3Rpb24tbWFpblwiPlxyXG4gICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiaWVlZXNhLWludGVyZXN0LWZvcm1fX2RyYWctaGFuZGxlXCJcclxuICAgICAgICAgICAgICBjZGtEcmFnSGFuZGxlXHJcbiAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDxzdmcgd2lkdGg9XCIxMlwiIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAxMiAxNlwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiM1wiIGN5PVwiMlwiIHI9XCIxLjVcIiBmaWxsPVwiY3VycmVudENvbG9yXCIvPlxyXG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjlcIiBjeT1cIjJcIiByPVwiMS41XCIgZmlsbD1cImN1cnJlbnRDb2xvclwiLz5cclxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIzXCIgY3k9XCI4XCIgcj1cIjEuNVwiIGZpbGw9XCJjdXJyZW50Q29sb3JcIi8+XHJcbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiOVwiIGN5PVwiOFwiIHI9XCIxLjVcIiBmaWxsPVwiY3VycmVudENvbG9yXCIvPlxyXG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjNcIiBjeT1cIjE0XCIgcj1cIjEuNVwiIGZpbGw9XCJjdXJyZW50Q29sb3JcIi8+XHJcbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiOVwiIGN5PVwiMTRcIiByPVwiMS41XCIgZmlsbD1cImN1cnJlbnRDb2xvclwiLz5cclxuICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImllZWVzYS1pbnRlcmVzdC1mb3JtX19xdWVzdGlvbi1sYWJlbCBpZWVlc2EtYm9keS1zbS0xNFwiPlxyXG4gICAgICAgICAgICAgIHt7IHF1ZXN0aW9uLnF1ZXN0aW9uTGFiZWwgfHwgbmV3UXVlc3Rpb25MYWJlbCB9fVxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yXCI+XHJcbiAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgKm5nSWY9XCJxdWVzdGlvbi5maWVsZFR5cGVcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiaWVlZXNhLWludGVyZXN0LWZvcm1fX2NoaXAgaWVlZXNhLWludGVyZXN0LWZvcm1fX2NoaXAtLXR5cGUgaWVlZXNhLWJvZHktc20tMTRcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAge3sgZ2V0VHlwZUxhYmVsKHF1ZXN0aW9uLmZpZWxkVHlwZSkgfX1cclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgICpuZ0lmPVwicXVlc3Rpb24uaXNSZXF1aXJlZFwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJpZWVlc2EtaW50ZXJlc3QtZm9ybV9fY2hpcCBpZWVlc2EtaW50ZXJlc3QtZm9ybV9fY2hpcC0tcmVxdWlyZWQgaWVlZXNhLWJvZHktc20tMTRcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAge3sgcmVxdWlyZWRUYWcgfX1cclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgKm5nSWY9XCJlZGl0aW5nUXVlc3Rpb25JZCAhPT0gcXVlc3Rpb24ucXVlc3Rpb25JZFwiXHJcbiAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJpZWVlc2EtaW50ZXJlc3QtZm9ybV9faWNvbi1idG5cIlxyXG4gICAgICAgICAgICAgIChjbGljayk9XCJvbkVkaXRRdWVzdGlvbihxdWVzdGlvbilcIlxyXG4gICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiZWRpdFF1ZXN0aW9uQXJpYUxhYmVsXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDxzdmcgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAxOCAxOFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICA8cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgY2xpcC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMTYuMDYuNTlsMS4zNSAxLjM1Yy43OS43OC43OSAyLjA1IDAgMi44M0w0LjE4IDE4SDB2LTQuMThMMTAuNCAzLjQxIDEzLjIzLjU5Yy43OC0uNzggMi4wNS0uNzggMi44MyAwek0yIDE2bDEuNDEuMDZMMTMuMjMgNi4yM2wtMS40MS0xLjQxTDIgMTQuNjRWMTZ6XCIgZmlsbD1cImN1cnJlbnRDb2xvclwiLz5cclxuICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICBjbGFzcz1cImllZWVzYS1pbnRlcmVzdC1mb3JtX19pY29uLWJ0biBpZWVlc2EtaW50ZXJlc3QtZm9ybV9faWNvbi1idG4tLWRlbGV0ZVwiXHJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uRGVsZXRlUXVlc3Rpb24ocXVlc3Rpb24ucXVlc3Rpb25JZClcIlxyXG4gICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiZGVsZXRlUXVlc3Rpb25BcmlhTGFiZWxcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgIDxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBjbGlwLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0xNSAzVjRIMjBWNkgxOVYxOUMxOSAyMC4xIDE4LjEgMjEgMTcgMjFIN0M1LjkgMjEgNSAyMC4xIDUgMTlWNkg0VjRIOVYzSDE1Wk03IDE5SDE3VjZIN1YxOVpNOSA4SDExVjE3SDlWOFpNMTUgOEgxM1YxN0gxNVY4WlwiIGZpbGw9XCJjdXJyZW50Q29sb3JcIi8+XHJcbiAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxpZWVlc2EtY3VzdG9tLXF1ZXN0aW9uLWVkaXRvclxyXG4gICAgICAgICAgKm5nSWY9XCJlZGl0aW5nUXVlc3Rpb25JZCA9PT0gcXVlc3Rpb24ucXVlc3Rpb25JZFwiXHJcbiAgICAgICAgICBbcXVlc3Rpb25dPVwicXVlc3Rpb25cIlxyXG4gICAgICAgICAgKHNhdmUpPVwib25TYXZlUXVlc3Rpb24oJGV2ZW50KVwiXHJcbiAgICAgICAgICAoY2FuY2VsKT1cIm9uQ2FuY2VsUXVlc3Rpb24ocXVlc3Rpb24ucXVlc3Rpb25JZClcIlxyXG4gICAgICAgID48L2llZWVzYS1jdXN0b20tcXVlc3Rpb24tZWRpdG9yPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvc2VjdGlvbj5cclxuXHJcbiAgPGRpdiBjbGFzcz1cImllZWVzYS1pbnRlcmVzdC1mb3JtX19mb290ZXIgZC1mbGV4IGp1c3RpZnktY29udGVudC1zdGFydCBnYXAtM1wiPlxyXG4gICAgPGJ1dHRvblxyXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgY2xhc3M9XCJpZWVlc2EtaW50ZXJlc3QtZm9ybV9fY2FuY2VsXCJcclxuICAgICAgKGNsaWNrKT1cIm9uQ2FuY2VsKClcIlxyXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImNhbmNlbExhYmVsXCJcclxuICAgID5cclxuICAgICAge3sgY2FuY2VsTGFiZWwgfX1cclxuICAgIDwvYnV0dG9uPlxyXG4gICAgPGJ1dHRvblxyXG4gICAgICAqbmdJZj1cImlzRm9ybUVuYWJsZWRcIlxyXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgY2xhc3M9XCJpZWVlc2EtaW50ZXJlc3QtZm9ybV9fcHJldmlld1wiXHJcbiAgICAgIFtkaXNhYmxlZF09XCIhIWVkaXRpbmdRdWVzdGlvbklkXCJcclxuICAgICAgKGNsaWNrKT1cIm9uUHJldmlldygpXCJcclxuICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJwcmV2aWV3TGFiZWxcIlxyXG4gICAgPlxyXG4gICAgICB7eyBwcmV2aWV3TGFiZWwgfX1cclxuICAgIDwvYnV0dG9uPlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
|
|
@@ -61,16 +61,17 @@ export class InterestFormService {
|
|
|
61
61
|
}));
|
|
62
62
|
}
|
|
63
63
|
/**
|
|
64
|
-
* Loads the
|
|
65
|
-
*
|
|
66
|
-
*
|
|
67
|
-
*
|
|
64
|
+
* Loads the roles configured for a group type via
|
|
65
|
+
* GET /groups/config/rolesByGroupType/{groupTypeId}. Member levels (used to
|
|
66
|
+
* populate the default membership level options) are the subset where
|
|
67
|
+
* roleTypeName is "Member Level"; filtering is done by the caller.
|
|
68
|
+
* @param {string} groupTypeId
|
|
68
69
|
* @return {Observable<InterestApiResponse<GroupRole[]>>}
|
|
69
70
|
* @memberof InterestFormService
|
|
70
71
|
*/
|
|
71
|
-
getRoles(
|
|
72
|
+
getRoles(groupTypeId) {
|
|
72
73
|
return this.httpService
|
|
73
|
-
.getData(`${this.apiBaseUrl}/groups/
|
|
74
|
+
.getData(`${this.apiBaseUrl}/groups/config/rolesByGroupType/${groupTypeId}`)
|
|
74
75
|
.pipe(map((response) => response), catchError((error) => {
|
|
75
76
|
throw error;
|
|
76
77
|
}));
|
|
@@ -183,4 +184,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
183
184
|
providedIn: 'root',
|
|
184
185
|
}]
|
|
185
186
|
}], ctorParameters: function () { return [{ type: i1.HttpService }]; } });
|
|
186
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJlc3QtZm9ybS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ3JvdXBzL3NyYy9saWIvc2VydmljZXMvaW50ZXJlc3QtZm9ybS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFjLFVBQVUsRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7OztBQWtCbkQ7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFJSCxNQUFNLE9BQU8sbUJBQW1CO0lBRzlCLDBDQUEwQztJQUMxQyxZQUFvQixXQUF3QjtRQUF4QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtJQUFHLENBQUM7SUFFaEQ7Ozs7Ozs7T0FPRztJQUNILDhEQUE4RDtJQUN0RCxhQUFhLENBQUMsUUFBYTtRQUNqQyxNQUFNLE1BQU0sR0FBRyxRQUFRLEVBQUUsTUFBTSxDQUFDO1FBQ2hDLE1BQU0sU0FBUyxHQUNiLE1BQU0sS0FBSyxJQUFJLElBQUksTUFBTSxLQUFLLE1BQU0sSUFBSSxNQUFNLEtBQUssU0FBUyxDQUFDO1FBQy9ELElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDZCxNQUFNLFFBQVEsQ0FBQztTQUNoQjtRQUNELE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsYUFBYSxDQUFDLFVBQWtCO1FBQzlCLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO0lBQy9CLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILGlCQUFpQixDQUNmLE9BQWU7UUFFZixPQUFPLElBQUksQ0FBQyxXQUFXO2FBQ3BCLE9BQU8sQ0FBQyxHQUFHLElBQUksQ0FBQyxVQUFVLDJCQUEyQixPQUFPLEVBQUUsQ0FBQzthQUMvRCxJQUFJLENBQ0gsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsRUFD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QyxRQUFRLENBQUMsQ0FBQyxFQUMvQyxVQUFVLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNuQixNQUFNLEtBQUssQ0FBQztRQUNkLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDTixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxjQUFjLENBQ1osVUFBa0I7UUFFbEIsT0FBTyxJQUFJLENBQUMsV0FBVzthQUNwQixPQUFPLENBQ04sR0FBRyxJQUFJLENBQUMsVUFBVSw4QkFBOEIsVUFBVSxTQUFTLEVBQ25FLEVBQUUsQ0FDSDthQUNBLElBQUksQ0FDSCxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUMsRUFDL0MsVUFBVSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDbkIsTUFBTSxLQUFLLENBQUM7UUFDZCxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ04sQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsV0FBVyxDQUFDLE9BQWU7UUFDekIsT0FBTyxJQUFJLENBQUMsV0FBVzthQUNwQixPQUFPLENBQ04sR0FBRyxJQUFJLENBQUMsVUFBVSw4QkFBOEIsT0FBTyxVQUFVLENBQ2xFO2FBQ0EsSUFBSSxDQUNILEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLEVBQzNCLFVBQVUsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ25CLE1BQU0sS0FBSyxDQUFDO1FBQ2QsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNOLENBQUM7K0dBdE5VLG1CQUFtQjttSEFBbkIsbUJBQW1CLGNBRmxCLE1BQU07OzRGQUVQLG1CQUFtQjtrQkFIL0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIGNhdGNoRXJyb3IsIG1hcCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBIdHRwU2VydmljZSB9IGZyb20gJ0BpZWVlc2EtbnBtL3V0aWxpdHknO1xyXG5pbXBvcnQge1xyXG4gIEN1c3RvbVF1ZXN0aW9uLFxyXG4gIEdyb3VwSW50ZXJlc3RDb25maWcsXHJcbiAgR3JvdXBSb2xlLFxyXG4gIFF1ZXN0aW9uT3JkZXIsXHJcbn0gZnJvbSAnLi4vbW9kZWxzL2N1c3RvbS1xdWVzdGlvbi5tb2RlbCc7XHJcblxyXG4vKipcclxuICogU3RhbmRhcmQgQVBJIHJlc3BvbnNlIGVudmVsb3BlIHVzZWQgYnkgdGhlIGdyb3VwcyBiYWNrZW5kLlxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBJbnRlcmVzdEFwaVJlc3BvbnNlPFQ+IHtcclxuICBzdGF0dXM6IGJvb2xlYW4gfCBzdHJpbmc7XHJcbiAgbWVzc2FnZT86IHN0cmluZztcclxuICBib2R5PzogVDtcclxufVxyXG5cclxuLyoqXHJcbiAqIFNlcnZpY2UgZm9yIG1hbmFnaW5nIGEgZ3JvdXAncyBpbnRlcmVzdCBmb3JtIGNvbmZpZ3VyYXRpb24gYW5kIGN1c3RvbVxyXG4gKiBxdWVzdGlvbnMgKFNQM00tMzE3KS4gVGFsa3MgdG8gdGhlIGdyb3VwcyBiYWNrZW5kIGVuZHBvaW50czpcclxuICogICAtIEdFVCAgL3YxL2dyb3Vwcy9pbnRlcmVzdC1jb25maWcve2dyb3VwSWR9XHJcbiAqICAgLSBQVVQgIC92MS9ncm91cHMvaW50ZXJlc3QtY29uZmlnXHJcbiAqICAgLSBHRVQgIC92MS9ncm91cHMvaW50ZXJlc3QtcXVlc3Rpb25zL3tncm91cElkfVxyXG4gKiAgIC0gUE9TVCAvdjEvZ3JvdXBzL2ludGVyZXN0LXF1ZXN0aW9uc1xyXG4gKiAgIC0gUFVUICAvdjEvZ3JvdXBzL2ludGVyZXN0LXF1ZXN0aW9uc1xyXG4gKiAgIC0gUFVUICAvdjEvZ3JvdXBzL2ludGVyZXN0LXF1ZXN0aW9ucy9yZW9yZGVyXHJcbiAqICAgLSBQVVQgIC92MS9ncm91cHMvaW50ZXJlc3QtcXVlc3Rpb25zL3txdWVzdGlvbklkfS9yZW1vdmVcclxuICogICAtIEdFVCAgL3YxL2dyb3Vwcy9pbnRlcmVzdC1xdWVzdGlvbnMve2dyb3VwSWR9L3ByZXZpZXdcclxuICogQWxsIHdyaXRlIHBheWxvYWRzIGFyZSB3cmFwcGVkIGluIHRoZSBzaGFyZWQgUmVxdWVzdCBlbnZlbG9wZSAoeyBwYXlsb2FkIH0pLlxyXG4gKiBAZXhwb3J0XHJcbiAqIEBjbGFzcyBJbnRlcmVzdEZvcm1TZXJ2aWNlXHJcbiAqL1xyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgSW50ZXJlc3RGb3JtU2VydmljZSB7XHJcbiAgYXBpQmFzZVVybCE6IHN0cmluZztcclxuXHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwU2VydmljZTogSHR0cFNlcnZpY2UpIHt9XHJcblxyXG4gIC8qKlxyXG4gICAqIFZhbGlkYXRlcyB0aGUgYXBwbGljYXRpb24tbGV2ZWwgZW52ZWxvcGUgZm9yIGEgd3JpdGUgb3BlcmF0aW9uLiBBIDJ4eFxyXG4gICAqIHJlc3BvbnNlIGNhbiBzdGlsbCBjYXJyeSBhbiB1bnN1Y2Nlc3NmdWwgZW52ZWxvcGUgKHsgc3RhdHVzOiBmYWxzZSB9KTsgdGhpc1xyXG4gICAqIHRocm93cyBpdCBzbyBjYWxsZXJzJyBlcnJvciBoYW5kbGVycyBydW4gaW5zdGVhZCBvZiB0cmVhdGluZyBpdCBhcyBzdWNjZXNzLlxyXG4gICAqIEBwYXJhbSB7SW50ZXJlc3RBcGlSZXNwb25zZTxUPn0gcmVzcG9uc2VcclxuICAgKiBAcmV0dXJuIHtJbnRlcmVzdEFwaVJlc3BvbnNlPFQ+fVxyXG4gICAqIEBtZW1iZXJvZiBJbnRlcmVzdEZvcm1TZXJ2aWNlXHJcbiAgICovXHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICBwcml2YXRlIGFzc2VydFN1Y2Nlc3MocmVzcG9uc2U6IGFueSk6IGFueSB7XHJcbiAgICBjb25zdCBzdGF0dXMgPSByZXNwb25zZT8uc3RhdHVzO1xyXG4gICAgY29uc3QgaXNTdWNjZXNzID1cclxuICAgICAgc3RhdHVzID09PSB0cnVlIHx8IHN0YXR1cyA9PT0gJ3RydWUnIHx8IHN0YXR1cyA9PT0gJ1NVQ0NFU1MnO1xyXG4gICAgaWYgKCFpc1N1Y2Nlc3MpIHtcclxuICAgICAgdGhyb3cgcmVzcG9uc2U7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcmVzcG9uc2U7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZXRzIHRoZSBBUEkgYmFzZSBVUkwgKHJlc29sdmVkIGZyb20gdGhlIGhvc3RpbmcgYXBwbGljYXRpb24ncyBjb25maWcpLlxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBhcGlCYXNlVXJsXHJcbiAgICogQG1lbWJlcm9mIEludGVyZXN0Rm9ybVNlcnZpY2VcclxuICAgKi9cclxuICBzZXRBcGlCYXNlVXJsKGFwaUJhc2VVcmw6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5hcGlCYXNlVXJsID0gYXBpQmFzZVVybDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIExvYWRzIGEgZ3JvdXAncyBpbnRlcmVzdCBjb25maWd1cmF0aW9uIChtb2RlICsgZGVmYXVsdCBtZW1iZXIgbGV2ZWwpLlxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBncm91cElkXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxJbnRlcmVzdEFwaVJlc3BvbnNlPEdyb3VwSW50ZXJlc3RDb25maWc+Pn1cclxuICAgKiBAbWVtYmVyb2YgSW50ZXJlc3RGb3JtU2VydmljZVxyXG4gICAqL1xyXG4gIGdldEludGVyZXN0Q29uZmlnKFxyXG4gICAgZ3JvdXBJZDogc3RyaW5nXHJcbiAgKTogT2JzZXJ2YWJsZTxJbnRlcmVzdEFwaVJlc3BvbnNlPEdyb3VwSW50ZXJlc3RDb25maWc+PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZVxyXG4gICAgICAuZ2V0RGF0YShgJHt0aGlzLmFwaUJhc2VVcmx9L2dyb3Vwcy9pbnRlcmVzdC1jb25maWcvJHtncm91cElkfWApXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHJlc3BvbnNlKSxcclxuICAgICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4ge1xyXG4gICAgICAgICAgdGhyb3cgZXJyb3I7XHJcbiAgICAgICAgfSlcclxuICAgICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIExvYWRzIHRoZSB0ZW5hbnQncyByb2xlcy4gTWVtYmVyIGxldmVscyAodXNlZCB0byBwb3B1bGF0ZSB0aGUgZGVmYXVsdFxyXG4gICAqIG1lbWJlcnNoaXAgbGV2ZWwgb3B0aW9ucykgYXJlIHRoZSBzdWJzZXQgd2hlcmUgcm9sZVR5cGVOYW1lIGlzXHJcbiAgICogXCJNZW1iZXIgTGV2ZWxcIjsgZmlsdGVyaW5nIGlzIGRvbmUgYnkgdGhlIGNhbGxlci5cclxuICAgKiBAcGFyYW0ge3N0cmluZ30gYXBwSWRcclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPEludGVyZXN0QXBpUmVzcG9uc2U8R3JvdXBSb2xlW10+Pn1cclxuICAgKiBAbWVtYmVyb2YgSW50ZXJlc3RGb3JtU2VydmljZVxyXG4gICAqL1xyXG4gIGdldFJvbGVzKGFwcElkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPEludGVyZXN0QXBpUmVzcG9uc2U8R3JvdXBSb2xlW10+PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZVxyXG4gICAgICAuZ2V0RGF0YShgJHt0aGlzLmFwaUJhc2VVcmx9L2dyb3Vwcy9yb2xlLyR7YXBwSWR9YClcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgbWFwKChyZXNwb25zZSkgPT4gcmVzcG9uc2UpLFxyXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICB0aHJvdyBlcnJvcjtcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2F2ZXMgYSBncm91cCdzIGludGVyZXN0IGNvbmZpZ3VyYXRpb24uXHJcbiAgICogQHBhcmFtIHtHcm91cEludGVyZXN0Q29uZmlnfSBjb25maWdcclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPEludGVyZXN0QXBpUmVzcG9uc2U8c3RyaW5nPj59XHJcbiAgICogQG1lbWJlcm9mIEludGVyZXN0Rm9ybVNlcnZpY2VcclxuICAgKi9cclxuICBzYXZlSW50ZXJlc3RDb25maWcoXHJcbiAgICBjb25maWc6IEdyb3VwSW50ZXJlc3RDb25maWdcclxuICApOiBPYnNlcnZhYmxlPEludGVyZXN0QXBpUmVzcG9uc2U8c3RyaW5nPj4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2VcclxuICAgICAgLnB1dERhdGEoYCR7dGhpcy5hcGlCYXNlVXJsfS9ncm91cHMvaW50ZXJlc3QtY29uZmlnYCwge1xyXG4gICAgICAgIHBheWxvYWQ6IGNvbmZpZyxcclxuICAgICAgfSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgbWFwKChyZXNwb25zZSkgPT4gdGhpcy5hc3NlcnRTdWNjZXNzKHJlc3BvbnNlKSksXHJcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IHtcclxuICAgICAgICAgIHRocm93IGVycm9yO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBMb2FkcyBhIGdyb3VwJ3MgY3VzdG9tIGludGVyZXN0IHF1ZXN0aW9ucyAob3JkZXJlZCBieSB2aWV3IG9yZGVyKS5cclxuICAgKiBAcGFyYW0ge3N0cmluZ30gZ3JvdXBJZFxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8SW50ZXJlc3RBcGlSZXNwb25zZTxDdXN0b21RdWVzdGlvbltdPj59XHJcbiAgICogQG1lbWJlcm9mIEludGVyZXN0Rm9ybVNlcnZpY2VcclxuICAgKi9cclxuICBnZXRRdWVzdGlvbnMoXHJcbiAgICBncm91cElkOiBzdHJpbmdcclxuICApOiBPYnNlcnZhYmxlPEludGVyZXN0QXBpUmVzcG9uc2U8Q3VzdG9tUXVlc3Rpb25bXT4+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlXHJcbiAgICAgIC5nZXREYXRhKGAke3RoaXMuYXBpQmFzZVVybH0vZ3JvdXBzL2ludGVyZXN0LXF1ZXN0aW9ucy8ke2dyb3VwSWR9YClcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgbWFwKChyZXNwb25zZSkgPT4gcmVzcG9uc2UpLFxyXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICB0aHJvdyBlcnJvcjtcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ3JlYXRlcyBhIG5ldyBjdXN0b20gaW50ZXJlc3QgcXVlc3Rpb24uXHJcbiAgICogQHBhcmFtIHtDdXN0b21RdWVzdGlvbn0gcXVlc3Rpb25cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPEludGVyZXN0QXBpUmVzcG9uc2U8Q3VzdG9tUXVlc3Rpb24+Pn1cclxuICAgKiBAbWVtYmVyb2YgSW50ZXJlc3RGb3JtU2VydmljZVxyXG4gICAqL1xyXG4gIGNyZWF0ZVF1ZXN0aW9uKFxyXG4gICAgcXVlc3Rpb246IEN1c3RvbVF1ZXN0aW9uXHJcbiAgKTogT2JzZXJ2YWJsZTxJbnRlcmVzdEFwaVJlc3BvbnNlPEN1c3RvbVF1ZXN0aW9uPj4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2VcclxuICAgICAgLnBvc3REYXRhKGAke3RoaXMuYXBpQmFzZVVybH0vZ3JvdXBzL2ludGVyZXN0LXF1ZXN0aW9uc2AsIHtcclxuICAgICAgICBwYXlsb2FkOiBxdWVzdGlvbixcclxuICAgICAgfSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgbWFwKChyZXNwb25zZSkgPT4gdGhpcy5hc3NlcnRTdWNjZXNzKHJlc3BvbnNlKSksXHJcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IHtcclxuICAgICAgICAgIHRocm93IGVycm9yO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVcGRhdGVzIGFuIGV4aXN0aW5nIGN1c3RvbSBpbnRlcmVzdCBxdWVzdGlvbi5cclxuICAgKiBAcGFyYW0ge0N1c3RvbVF1ZXN0aW9ufSBxdWVzdGlvblxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8SW50ZXJlc3RBcGlSZXNwb25zZTxzdHJpbmc+Pn1cclxuICAgKiBAbWVtYmVyb2YgSW50ZXJlc3RGb3JtU2VydmljZVxyXG4gICAqL1xyXG4gIHVwZGF0ZVF1ZXN0aW9uKFxyXG4gICAgcXVlc3Rpb246IEN1c3RvbVF1ZXN0aW9uXHJcbiAgKTogT2JzZXJ2YWJsZTxJbnRlcmVzdEFwaVJlc3BvbnNlPHN0cmluZz4+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlXHJcbiAgICAgIC5wdXREYXRhKGAke3RoaXMuYXBpQmFzZVVybH0vZ3JvdXBzL2ludGVyZXN0LXF1ZXN0aW9uc2AsIHtcclxuICAgICAgICBwYXlsb2FkOiBxdWVzdGlvbixcclxuICAgICAgfSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgbWFwKChyZXNwb25zZSkgPT4gdGhpcy5hc3NlcnRTdWNjZXNzKHJlc3BvbnNlKSksXHJcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IHtcclxuICAgICAgICAgIHRocm93IGVycm9yO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBQZXJzaXN0cyB0aGUgdXBkYXRlZCB2aWV3IG9yZGVyIGZvciBhIGdyb3VwJ3MgY3VzdG9tIHF1ZXN0aW9ucy5cclxuICAgKiBAcGFyYW0ge1F1ZXN0aW9uT3JkZXJbXX0gcXVlc3Rpb25PcmRlcnNcclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPEludGVyZXN0QXBpUmVzcG9uc2U8c3RyaW5nPj59XHJcbiAgICogQG1lbWJlcm9mIEludGVyZXN0Rm9ybVNlcnZpY2VcclxuICAgKi9cclxuICByZW9yZGVyUXVlc3Rpb25zKFxyXG4gICAgcXVlc3Rpb25PcmRlcnM6IFF1ZXN0aW9uT3JkZXJbXVxyXG4gICk6IE9ic2VydmFibGU8SW50ZXJlc3RBcGlSZXNwb25zZTxzdHJpbmc+PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZVxyXG4gICAgICAucHV0RGF0YShgJHt0aGlzLmFwaUJhc2VVcmx9L2dyb3Vwcy9pbnRlcmVzdC1xdWVzdGlvbnMvcmVvcmRlcmAsIHtcclxuICAgICAgICBwYXlsb2FkOiBxdWVzdGlvbk9yZGVycyxcclxuICAgICAgfSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgbWFwKChyZXNwb25zZSkgPT4gdGhpcy5hc3NlcnRTdWNjZXNzKHJlc3BvbnNlKSksXHJcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IHtcclxuICAgICAgICAgIHRocm93IGVycm9yO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTb2Z0LWRlbGV0ZXMgYSBjdXN0b20gaW50ZXJlc3QgcXVlc3Rpb24gYnkgaWQuXHJcbiAgICogQHBhcmFtIHtzdHJpbmd9IHF1ZXN0aW9uSWRcclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPEludGVyZXN0QXBpUmVzcG9uc2U8c3RyaW5nPj59XHJcbiAgICogQG1lbWJlcm9mIEludGVyZXN0Rm9ybVNlcnZpY2VcclxuICAgKi9cclxuICByZW1vdmVRdWVzdGlvbihcclxuICAgIHF1ZXN0aW9uSWQ6IHN0cmluZ1xyXG4gICk6IE9ic2VydmFibGU8SW50ZXJlc3RBcGlSZXNwb25zZTxzdHJpbmc+PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZVxyXG4gICAgICAucHV0RGF0YShcclxuICAgICAgICBgJHt0aGlzLmFwaUJhc2VVcmx9L2dyb3Vwcy9pbnRlcmVzdC1xdWVzdGlvbnMvJHtxdWVzdGlvbklkfS9yZW1vdmVgLFxyXG4gICAgICAgIHt9XHJcbiAgICAgIClcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgbWFwKChyZXNwb25zZSkgPT4gdGhpcy5hc3NlcnRTdWNjZXNzKHJlc3BvbnNlKSksXHJcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IHtcclxuICAgICAgICAgIHRocm93IGVycm9yO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBCdWlsZHMgYSBub24tcHVibGlzaGluZyBwcmV2aWV3IG9mIGEgZ3JvdXAncyBpbnRlcmVzdCBmb3JtLlxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBncm91cElkXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxJbnRlcmVzdEFwaVJlc3BvbnNlPHVua25vd24+Pn1cclxuICAgKiBAbWVtYmVyb2YgSW50ZXJlc3RGb3JtU2VydmljZVxyXG4gICAqL1xyXG4gIHByZXZpZXdGb3JtKGdyb3VwSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8SW50ZXJlc3RBcGlSZXNwb25zZTx1bmtub3duPj4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2VcclxuICAgICAgLmdldERhdGEoXHJcbiAgICAgICAgYCR7dGhpcy5hcGlCYXNlVXJsfS9ncm91cHMvaW50ZXJlc3QtcXVlc3Rpb25zLyR7Z3JvdXBJZH0vcHJldmlld2BcclxuICAgICAgKVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBtYXAoKHJlc3BvbnNlKSA9PiByZXNwb25zZSksXHJcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IHtcclxuICAgICAgICAgIHRocm93IGVycm9yO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
187
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJlc3QtZm9ybS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ3JvdXBzL3NyYy9saWIvc2VydmljZXMvaW50ZXJlc3QtZm9ybS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFjLFVBQVUsRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7OztBQWtCbkQ7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFJSCxNQUFNLE9BQU8sbUJBQW1CO0lBRzlCLDBDQUEwQztJQUMxQyxZQUFvQixXQUF3QjtRQUF4QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtJQUFHLENBQUM7SUFFaEQ7Ozs7Ozs7T0FPRztJQUNILDhEQUE4RDtJQUN0RCxhQUFhLENBQUMsUUFBYTtRQUNqQyxNQUFNLE1BQU0sR0FBRyxRQUFRLEVBQUUsTUFBTSxDQUFDO1FBQ2hDLE1BQU0sU0FBUyxHQUNiLE1BQU0sS0FBSyxJQUFJLElBQUksTUFBTSxLQUFLLE1BQU0sSUFBSSxNQUFNLEtBQUssU0FBUyxDQUFDO1FBQy9ELElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDZCxNQUFNLFFBQVEsQ0FBQztTQUNoQjtRQUNELE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsYUFBYSxDQUFDLFVBQWtCO1FBQzlCLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO0lBQy9CLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILGlCQUFpQixDQUNmLE9BQWU7UUFFZixPQUFPLElBQUksQ0FBQyxXQUFXO2FBQ3BCLE9BQU8sQ0FBQyxHQUFHLElBQUksQ0FBQyxVQUFVLDJCQUEyQixPQUFPLEVBQUUsQ0FBQzthQUMvRCxJQUFJLENBQ0gsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsRUFD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QUFDLFFBQVEsQ0FBQyxDQUFDLEVBQy9DLFVBQVUsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ25CLE1BQU0sS0FBSyxDQUFDO1FBQ2QsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNOLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILGNBQWMsQ0FDWixVQUFrQjtRQUVsQixPQUFPLElBQUksQ0FBQyxXQUFXO2FBQ3BCLE9BQU8sQ0FDTixHQUFHLElBQUksQ0FBQyxVQUFVLDhCQUE4QixVQUFVLFNBQVMsRUFDbkUsRUFBRSxDQUNIO2FBQ0EsSUFBSSxDQUNILEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUMvQyxVQUFVLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNuQixNQUFNLEtBQUssQ0FBQztRQUNkLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDTixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxXQUFXLENBQUMsT0FBZTtRQUN6QixPQUFPLElBQUksQ0FBQyxXQUFXO2FBQ3BCLE9BQU8sQ0FDTixHQUFHLElBQUksQ0FBQyxVQUFVLDhCQUE4QixPQUFPLFVBQVUsQ0FDbEU7YUFDQSxJQUFJLENBQ0gsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsRUFDM0IsVUFBVSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDbkIsTUFBTSxLQUFLLENBQUM7UUFDZCxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ04sQ0FBQzsrR0F6TlUsbUJBQW1CO21IQUFuQixtQkFBbUIsY0FGbEIsTUFBTTs7NEZBRVAsbUJBQW1CO2tCQUgvQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgY2F0Y2hFcnJvciwgbWFwIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEh0dHBTZXJ2aWNlIH0gZnJvbSAnQGllZWVzYS1ucG0vdXRpbGl0eSc7XHJcbmltcG9ydCB7XHJcbiAgQ3VzdG9tUXVlc3Rpb24sXHJcbiAgR3JvdXBJbnRlcmVzdENvbmZpZyxcclxuICBHcm91cFJvbGUsXHJcbiAgUXVlc3Rpb25PcmRlcixcclxufSBmcm9tICcuLi9tb2RlbHMvY3VzdG9tLXF1ZXN0aW9uLm1vZGVsJztcclxuXHJcbi8qKlxyXG4gKiBTdGFuZGFyZCBBUEkgcmVzcG9uc2UgZW52ZWxvcGUgdXNlZCBieSB0aGUgZ3JvdXBzIGJhY2tlbmQuXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIEludGVyZXN0QXBpUmVzcG9uc2U8VD4ge1xyXG4gIHN0YXR1czogYm9vbGVhbiB8IHN0cmluZztcclxuICBtZXNzYWdlPzogc3RyaW5nO1xyXG4gIGJvZHk/OiBUO1xyXG59XHJcblxyXG4vKipcclxuICogU2VydmljZSBmb3IgbWFuYWdpbmcgYSBncm91cCdzIGludGVyZXN0IGZvcm0gY29uZmlndXJhdGlvbiBhbmQgY3VzdG9tXHJcbiAqIHF1ZXN0aW9ucyAoU1AzTS0zMTcpLiBUYWxrcyB0byB0aGUgZ3JvdXBzIGJhY2tlbmQgZW5kcG9pbnRzOlxyXG4gKiAgIC0gR0VUICAvdjEvZ3JvdXBzL2ludGVyZXN0LWNvbmZpZy97Z3JvdXBJZH1cclxuICogICAtIFBVVCAgL3YxL2dyb3Vwcy9pbnRlcmVzdC1jb25maWdcclxuICogICAtIEdFVCAgL3YxL2dyb3Vwcy9pbnRlcmVzdC1xdWVzdGlvbnMve2dyb3VwSWR9XHJcbiAqICAgLSBQT1NUIC92MS9ncm91cHMvaW50ZXJlc3QtcXVlc3Rpb25zXHJcbiAqICAgLSBQVVQgIC92MS9ncm91cHMvaW50ZXJlc3QtcXVlc3Rpb25zXHJcbiAqICAgLSBQVVQgIC92MS9ncm91cHMvaW50ZXJlc3QtcXVlc3Rpb25zL3Jlb3JkZXJcclxuICogICAtIFBVVCAgL3YxL2dyb3Vwcy9pbnRlcmVzdC1xdWVzdGlvbnMve3F1ZXN0aW9uSWR9L3JlbW92ZVxyXG4gKiAgIC0gR0VUICAvdjEvZ3JvdXBzL2ludGVyZXN0LXF1ZXN0aW9ucy97Z3JvdXBJZH0vcHJldmlld1xyXG4gKiBBbGwgd3JpdGUgcGF5bG9hZHMgYXJlIHdyYXBwZWQgaW4gdGhlIHNoYXJlZCBSZXF1ZXN0IGVudmVsb3BlICh7IHBheWxvYWQgfSkuXHJcbiAqIEBleHBvcnRcclxuICogQGNsYXNzIEludGVyZXN0Rm9ybVNlcnZpY2VcclxuICovXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBJbnRlcmVzdEZvcm1TZXJ2aWNlIHtcclxuICBhcGlCYXNlVXJsITogc3RyaW5nO1xyXG5cclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHBTZXJ2aWNlOiBIdHRwU2VydmljZSkge31cclxuXHJcbiAgLyoqXHJcbiAgICogVmFsaWRhdGVzIHRoZSBhcHBsaWNhdGlvbi1sZXZlbCBlbnZlbG9wZSBmb3IgYSB3cml0ZSBvcGVyYXRpb24uIEEgMnh4XHJcbiAgICogcmVzcG9uc2UgY2FuIHN0aWxsIGNhcnJ5IGFuIHVuc3VjY2Vzc2Z1bCBlbnZlbG9wZSAoeyBzdGF0dXM6IGZhbHNlIH0pOyB0aGlzXHJcbiAgICogdGhyb3dzIGl0IHNvIGNhbGxlcnMnIGVycm9yIGhhbmRsZXJzIHJ1biBpbnN0ZWFkIG9mIHRyZWF0aW5nIGl0IGFzIHN1Y2Nlc3MuXHJcbiAgICogQHBhcmFtIHtJbnRlcmVzdEFwaVJlc3BvbnNlPFQ+fSByZXNwb25zZVxyXG4gICAqIEByZXR1cm4ge0ludGVyZXN0QXBpUmVzcG9uc2U8VD59XHJcbiAgICogQG1lbWJlcm9mIEludGVyZXN0Rm9ybVNlcnZpY2VcclxuICAgKi9cclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIHByaXZhdGUgYXNzZXJ0U3VjY2VzcyhyZXNwb25zZTogYW55KTogYW55IHtcclxuICAgIGNvbnN0IHN0YXR1cyA9IHJlc3BvbnNlPy5zdGF0dXM7XHJcbiAgICBjb25zdCBpc1N1Y2Nlc3MgPVxyXG4gICAgICBzdGF0dXMgPT09IHRydWUgfHwgc3RhdHVzID09PSAndHJ1ZScgfHwgc3RhdHVzID09PSAnU1VDQ0VTUyc7XHJcbiAgICBpZiAoIWlzU3VjY2Vzcykge1xyXG4gICAgICB0aHJvdyByZXNwb25zZTtcclxuICAgIH1cclxuICAgIHJldHVybiByZXNwb25zZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldHMgdGhlIEFQSSBiYXNlIFVSTCAocmVzb2x2ZWQgZnJvbSB0aGUgaG9zdGluZyBhcHBsaWNhdGlvbidzIGNvbmZpZykuXHJcbiAgICogQHBhcmFtIHtzdHJpbmd9IGFwaUJhc2VVcmxcclxuICAgKiBAbWVtYmVyb2YgSW50ZXJlc3RGb3JtU2VydmljZVxyXG4gICAqL1xyXG4gIHNldEFwaUJhc2VVcmwoYXBpQmFzZVVybDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLmFwaUJhc2VVcmwgPSBhcGlCYXNlVXJsO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogTG9hZHMgYSBncm91cCdzIGludGVyZXN0IGNvbmZpZ3VyYXRpb24gKG1vZGUgKyBkZWZhdWx0IG1lbWJlciBsZXZlbCkuXHJcbiAgICogQHBhcmFtIHtzdHJpbmd9IGdyb3VwSWRcclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPEludGVyZXN0QXBpUmVzcG9uc2U8R3JvdXBJbnRlcmVzdENvbmZpZz4+fVxyXG4gICAqIEBtZW1iZXJvZiBJbnRlcmVzdEZvcm1TZXJ2aWNlXHJcbiAgICovXHJcbiAgZ2V0SW50ZXJlc3RDb25maWcoXHJcbiAgICBncm91cElkOiBzdHJpbmdcclxuICApOiBPYnNlcnZhYmxlPEludGVyZXN0QXBpUmVzcG9uc2U8R3JvdXBJbnRlcmVzdENvbmZpZz4+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlXHJcbiAgICAgIC5nZXREYXRhKGAke3RoaXMuYXBpQmFzZVVybH0vZ3JvdXBzL2ludGVyZXN0LWNvbmZpZy8ke2dyb3VwSWR9YClcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgbWFwKChyZXNwb25zZSkgPT4gcmVzcG9uc2UpLFxyXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICB0aHJvdyBlcnJvcjtcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogTG9hZHMgdGhlIHJvbGVzIGNvbmZpZ3VyZWQgZm9yIGEgZ3JvdXAgdHlwZSB2aWFcclxuICAgKiBHRVQgL2dyb3Vwcy9jb25maWcvcm9sZXNCeUdyb3VwVHlwZS97Z3JvdXBUeXBlSWR9LiBNZW1iZXIgbGV2ZWxzICh1c2VkIHRvXHJcbiAgICogcG9wdWxhdGUgdGhlIGRlZmF1bHQgbWVtYmVyc2hpcCBsZXZlbCBvcHRpb25zKSBhcmUgdGhlIHN1YnNldCB3aGVyZVxyXG4gICAqIHJvbGVUeXBlTmFtZSBpcyBcIk1lbWJlciBMZXZlbFwiOyBmaWx0ZXJpbmcgaXMgZG9uZSBieSB0aGUgY2FsbGVyLlxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBncm91cFR5cGVJZFxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8SW50ZXJlc3RBcGlSZXNwb25zZTxHcm91cFJvbGVbXT4+fVxyXG4gICAqIEBtZW1iZXJvZiBJbnRlcmVzdEZvcm1TZXJ2aWNlXHJcbiAgICovXHJcbiAgZ2V0Um9sZXMoZ3JvdXBUeXBlSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8SW50ZXJlc3RBcGlSZXNwb25zZTxHcm91cFJvbGVbXT4+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlXHJcbiAgICAgIC5nZXREYXRhKFxyXG4gICAgICAgIGAke3RoaXMuYXBpQmFzZVVybH0vZ3JvdXBzL2NvbmZpZy9yb2xlc0J5R3JvdXBUeXBlLyR7Z3JvdXBUeXBlSWR9YFxyXG4gICAgICApXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHJlc3BvbnNlKSxcclxuICAgICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4ge1xyXG4gICAgICAgICAgdGhyb3cgZXJyb3I7XHJcbiAgICAgICAgfSlcclxuICAgICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNhdmVzIGEgZ3JvdXAncyBpbnRlcmVzdCBjb25maWd1cmF0aW9uLlxyXG4gICAqIEBwYXJhbSB7R3JvdXBJbnRlcmVzdENvbmZpZ30gY29uZmlnXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxJbnRlcmVzdEFwaVJlc3BvbnNlPHN0cmluZz4+fVxyXG4gICAqIEBtZW1iZXJvZiBJbnRlcmVzdEZvcm1TZXJ2aWNlXHJcbiAgICovXHJcbiAgc2F2ZUludGVyZXN0Q29uZmlnKFxyXG4gICAgY29uZmlnOiBHcm91cEludGVyZXN0Q29uZmlnXHJcbiAgKTogT2JzZXJ2YWJsZTxJbnRlcmVzdEFwaVJlc3BvbnNlPHN0cmluZz4+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlXHJcbiAgICAgIC5wdXREYXRhKGAke3RoaXMuYXBpQmFzZVVybH0vZ3JvdXBzL2ludGVyZXN0LWNvbmZpZ2AsIHtcclxuICAgICAgICBwYXlsb2FkOiBjb25maWcsXHJcbiAgICAgIH0pXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHRoaXMuYXNzZXJ0U3VjY2VzcyhyZXNwb25zZSkpLFxyXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICB0aHJvdyBlcnJvcjtcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogTG9hZHMgYSBncm91cCdzIGN1c3RvbSBpbnRlcmVzdCBxdWVzdGlvbnMgKG9yZGVyZWQgYnkgdmlldyBvcmRlcikuXHJcbiAgICogQHBhcmFtIHtzdHJpbmd9IGdyb3VwSWRcclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPEludGVyZXN0QXBpUmVzcG9uc2U8Q3VzdG9tUXVlc3Rpb25bXT4+fVxyXG4gICAqIEBtZW1iZXJvZiBJbnRlcmVzdEZvcm1TZXJ2aWNlXHJcbiAgICovXHJcbiAgZ2V0UXVlc3Rpb25zKFxyXG4gICAgZ3JvdXBJZDogc3RyaW5nXHJcbiAgKTogT2JzZXJ2YWJsZTxJbnRlcmVzdEFwaVJlc3BvbnNlPEN1c3RvbVF1ZXN0aW9uW10+PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZVxyXG4gICAgICAuZ2V0RGF0YShgJHt0aGlzLmFwaUJhc2VVcmx9L2dyb3Vwcy9pbnRlcmVzdC1xdWVzdGlvbnMvJHtncm91cElkfWApXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHJlc3BvbnNlKSxcclxuICAgICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4ge1xyXG4gICAgICAgICAgdGhyb3cgZXJyb3I7XHJcbiAgICAgICAgfSlcclxuICAgICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENyZWF0ZXMgYSBuZXcgY3VzdG9tIGludGVyZXN0IHF1ZXN0aW9uLlxyXG4gICAqIEBwYXJhbSB7Q3VzdG9tUXVlc3Rpb259IHF1ZXN0aW9uXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxJbnRlcmVzdEFwaVJlc3BvbnNlPEN1c3RvbVF1ZXN0aW9uPj59XHJcbiAgICogQG1lbWJlcm9mIEludGVyZXN0Rm9ybVNlcnZpY2VcclxuICAgKi9cclxuICBjcmVhdGVRdWVzdGlvbihcclxuICAgIHF1ZXN0aW9uOiBDdXN0b21RdWVzdGlvblxyXG4gICk6IE9ic2VydmFibGU8SW50ZXJlc3RBcGlSZXNwb25zZTxDdXN0b21RdWVzdGlvbj4+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlXHJcbiAgICAgIC5wb3N0RGF0YShgJHt0aGlzLmFwaUJhc2VVcmx9L2dyb3Vwcy9pbnRlcmVzdC1xdWVzdGlvbnNgLCB7XHJcbiAgICAgICAgcGF5bG9hZDogcXVlc3Rpb24sXHJcbiAgICAgIH0pXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHRoaXMuYXNzZXJ0U3VjY2VzcyhyZXNwb25zZSkpLFxyXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICB0aHJvdyBlcnJvcjtcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVXBkYXRlcyBhbiBleGlzdGluZyBjdXN0b20gaW50ZXJlc3QgcXVlc3Rpb24uXHJcbiAgICogQHBhcmFtIHtDdXN0b21RdWVzdGlvbn0gcXVlc3Rpb25cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPEludGVyZXN0QXBpUmVzcG9uc2U8c3RyaW5nPj59XHJcbiAgICogQG1lbWJlcm9mIEludGVyZXN0Rm9ybVNlcnZpY2VcclxuICAgKi9cclxuICB1cGRhdGVRdWVzdGlvbihcclxuICAgIHF1ZXN0aW9uOiBDdXN0b21RdWVzdGlvblxyXG4gICk6IE9ic2VydmFibGU8SW50ZXJlc3RBcGlSZXNwb25zZTxzdHJpbmc+PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZVxyXG4gICAgICAucHV0RGF0YShgJHt0aGlzLmFwaUJhc2VVcmx9L2dyb3Vwcy9pbnRlcmVzdC1xdWVzdGlvbnNgLCB7XHJcbiAgICAgICAgcGF5bG9hZDogcXVlc3Rpb24sXHJcbiAgICAgIH0pXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHRoaXMuYXNzZXJ0U3VjY2VzcyhyZXNwb25zZSkpLFxyXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICB0aHJvdyBlcnJvcjtcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUGVyc2lzdHMgdGhlIHVwZGF0ZWQgdmlldyBvcmRlciBmb3IgYSBncm91cCdzIGN1c3RvbSBxdWVzdGlvbnMuXHJcbiAgICogQHBhcmFtIHtRdWVzdGlvbk9yZGVyW119IHF1ZXN0aW9uT3JkZXJzXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxJbnRlcmVzdEFwaVJlc3BvbnNlPHN0cmluZz4+fVxyXG4gICAqIEBtZW1iZXJvZiBJbnRlcmVzdEZvcm1TZXJ2aWNlXHJcbiAgICovXHJcbiAgcmVvcmRlclF1ZXN0aW9ucyhcclxuICAgIHF1ZXN0aW9uT3JkZXJzOiBRdWVzdGlvbk9yZGVyW11cclxuICApOiBPYnNlcnZhYmxlPEludGVyZXN0QXBpUmVzcG9uc2U8c3RyaW5nPj4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2VcclxuICAgICAgLnB1dERhdGEoYCR7dGhpcy5hcGlCYXNlVXJsfS9ncm91cHMvaW50ZXJlc3QtcXVlc3Rpb25zL3Jlb3JkZXJgLCB7XHJcbiAgICAgICAgcGF5bG9hZDogcXVlc3Rpb25PcmRlcnMsXHJcbiAgICAgIH0pXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHRoaXMuYXNzZXJ0U3VjY2VzcyhyZXNwb25zZSkpLFxyXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICB0aHJvdyBlcnJvcjtcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU29mdC1kZWxldGVzIGEgY3VzdG9tIGludGVyZXN0IHF1ZXN0aW9uIGJ5IGlkLlxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBxdWVzdGlvbklkXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxJbnRlcmVzdEFwaVJlc3BvbnNlPHN0cmluZz4+fVxyXG4gICAqIEBtZW1iZXJvZiBJbnRlcmVzdEZvcm1TZXJ2aWNlXHJcbiAgICovXHJcbiAgcmVtb3ZlUXVlc3Rpb24oXHJcbiAgICBxdWVzdGlvbklkOiBzdHJpbmdcclxuICApOiBPYnNlcnZhYmxlPEludGVyZXN0QXBpUmVzcG9uc2U8c3RyaW5nPj4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2VcclxuICAgICAgLnB1dERhdGEoXHJcbiAgICAgICAgYCR7dGhpcy5hcGlCYXNlVXJsfS9ncm91cHMvaW50ZXJlc3QtcXVlc3Rpb25zLyR7cXVlc3Rpb25JZH0vcmVtb3ZlYCxcclxuICAgICAgICB7fVxyXG4gICAgICApXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHRoaXMuYXNzZXJ0U3VjY2VzcyhyZXNwb25zZSkpLFxyXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICB0aHJvdyBlcnJvcjtcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQnVpbGRzIGEgbm9uLXB1Ymxpc2hpbmcgcHJldmlldyBvZiBhIGdyb3VwJ3MgaW50ZXJlc3QgZm9ybS5cclxuICAgKiBAcGFyYW0ge3N0cmluZ30gZ3JvdXBJZFxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8SW50ZXJlc3RBcGlSZXNwb25zZTx1bmtub3duPj59XHJcbiAgICogQG1lbWJlcm9mIEludGVyZXN0Rm9ybVNlcnZpY2VcclxuICAgKi9cclxuICBwcmV2aWV3Rm9ybShncm91cElkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPEludGVyZXN0QXBpUmVzcG9uc2U8dW5rbm93bj4+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlXHJcbiAgICAgIC5nZXREYXRhKFxyXG4gICAgICAgIGAke3RoaXMuYXBpQmFzZVVybH0vZ3JvdXBzL2ludGVyZXN0LXF1ZXN0aW9ucy8ke2dyb3VwSWR9L3ByZXZpZXdgXHJcbiAgICAgIClcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgbWFwKChyZXNwb25zZSkgPT4gcmVzcG9uc2UpLFxyXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICB0aHJvdyBlcnJvcjtcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -5870,16 +5870,17 @@ class InterestFormService {
|
|
|
5870
5870
|
}));
|
|
5871
5871
|
}
|
|
5872
5872
|
/**
|
|
5873
|
-
* Loads the
|
|
5874
|
-
*
|
|
5875
|
-
*
|
|
5876
|
-
*
|
|
5873
|
+
* Loads the roles configured for a group type via
|
|
5874
|
+
* GET /groups/config/rolesByGroupType/{groupTypeId}. Member levels (used to
|
|
5875
|
+
* populate the default membership level options) are the subset where
|
|
5876
|
+
* roleTypeName is "Member Level"; filtering is done by the caller.
|
|
5877
|
+
* @param {string} groupTypeId
|
|
5877
5878
|
* @return {Observable<InterestApiResponse<GroupRole[]>>}
|
|
5878
5879
|
* @memberof InterestFormService
|
|
5879
5880
|
*/
|
|
5880
|
-
getRoles(
|
|
5881
|
+
getRoles(groupTypeId) {
|
|
5881
5882
|
return this.httpService
|
|
5882
|
-
.getData(`${this.apiBaseUrl}/groups/
|
|
5883
|
+
.getData(`${this.apiBaseUrl}/groups/config/rolesByGroupType/${groupTypeId}`)
|
|
5883
5884
|
.pipe(map((response) => response), catchError((error) => {
|
|
5884
5885
|
throw error;
|
|
5885
5886
|
}));
|
|
@@ -6087,13 +6088,13 @@ class InterestFormComponent {
|
|
|
6087
6088
|
* @memberof InterestFormComponent
|
|
6088
6089
|
*/
|
|
6089
6090
|
loadMembershipLevels() {
|
|
6090
|
-
const
|
|
6091
|
-
if (!
|
|
6091
|
+
const groupTypeId = this.group?.groupType;
|
|
6092
|
+
if (!groupTypeId) {
|
|
6092
6093
|
this.loadConfig();
|
|
6093
6094
|
return;
|
|
6094
6095
|
}
|
|
6095
6096
|
this.interestFormService
|
|
6096
|
-
.getRoles(
|
|
6097
|
+
.getRoles(groupTypeId)
|
|
6097
6098
|
.pipe(takeUntil(this.destroy$))
|
|
6098
6099
|
.subscribe({
|
|
6099
6100
|
next: (response) => {
|