@sumaris-net/ngx-components 18.22.13 → 18.22.15

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/doc/changelog.md CHANGED
@@ -2008,3 +2008,10 @@ enh: Environment: add useHash property to configure Angular router to use hash U
2008
2008
 
2009
2009
  # 18.22.12
2010
2010
  - enh(table, async-table) Add a getter: `get saving()`
2011
+
2012
+ # 18.22.14
2013
+ - enh(observables) Add utility function `firstPromise(Observable<T>): Promise<T>`
2014
+ - enh(StartableService,StartableObservableService) Add optional argument `options` to ready functions: `ready(options?: FirstOptions)`
2015
+
2016
+ # 18.22.15
2017
+ - enh(InMemoryDataService) Add `setOptions()` to allow to pass options after the constructor
@@ -129,6 +129,7 @@ export * from './src/app/shared/debug/debug-service.class';
129
129
  export * from './src/app/shared/types';
130
130
  export * from './src/app/shared/dates';
131
131
  export * from './src/app/shared/functions';
132
+ export * from './src/app/shared/focusable';
132
133
  export * from './src/app/shared/regexps';
133
134
  export * from './src/app/shared/services';
134
135
  export * from './src/app/shared/forms';
@@ -394,4 +395,4 @@ export * from './src/app/social/job/testing/job.testing.module';
394
395
  export * from './src/app/social/job/testing/job-progression.testing';
395
396
  export * from './src/app/social/job/testing/job-progression.testing.service';
396
397
  export * from './src/app/core/table/testing/table-validator.service';
397
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3B1YmxpY19hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYztBQUlkLGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyx1Q0FBdUMsQ0FBQztBQUV0RCxTQUFTO0FBQ1QsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUMxRSxjQUFjLCtDQUErQyxDQUFDO0FBQzlELGNBQWMsMENBQTBDLENBQUM7QUFFekQsa0JBQWtCO0FBQ2xCLGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLCtDQUErQyxDQUFDO0FBQzlELGNBQWMsa0RBQWtELENBQUM7QUFDakUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQ3JGLGNBQWMscUVBQXFFLENBQUM7QUFDcEYsY0FBYyw4REFBOEQsQ0FBQztBQUM3RSxjQUFjLHFFQUFxRSxDQUFDO0FBQ3BGLGNBQWMsb0VBQW9FLENBQUM7QUFDbkYsY0FBYyw4Q0FBOEMsQ0FBQztBQUM3RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDL0UsY0FBYyw2REFBNkQsQ0FBQztBQUM1RSxjQUFjLHlEQUF5RCxDQUFDO0FBQ3hFLGNBQWMsb0RBQW9ELENBQUM7QUFDbkUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUNuRixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDM0UsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9EQUFvRCxDQUFD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QUEwRCxDQUFDO0FBQ3pFLGNBQWMscUVBQXFFLENBQUM7QUFDcEYsY0FBYyxtRUFBbUUsQ0FBQztBQUVsRixpQkFBaUI7QUFDakIsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxjQUFjLCtEQUErRCxDQUFDO0FBQzlFLGNBQWMsd0RBQXdELENBQUM7QUFDdkUsY0FBYyxnRUFBZ0UsQ0FBQztBQUMvRSxjQUFjLGlEQUFpRCxDQUFDO0FBQ2hFLGNBQWMsc0RBQXNELENBQUM7QUFDckUsY0FBYyw4REFBOEQsQ0FBQztBQUM3RSxjQUFjLHNEQUFzRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gRW52aXJvbm1lbnRcblxuaW1wb3J0IHsgTWF0TGF0TG9uZ0ZpZWxkSW5wdXQgfSBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL21hdGVyaWFsL2xhdGxvbmcvbWF0ZXJpYWwubGF0bG9uZy1pbnB1dCc7XG5cbmV4cG9ydCAqIGZyb20gJy4vc3JjL2Vudmlyb25tZW50cy9lbnZpcm9ubWVudC5jbGFzcyc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9lbnZpcm9ubWVudHMvZW52aXJvbm1lbnQubG9hZGVyJztcblxuLy8gU2hhcmVkXG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL2NvbnN0YW50cyc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL3NoYXJlZC5tb2R1bGUnO1xuZXhwb3J0IHsgU2hhcmVkUm91dGluZ01vZHVsZSB9IGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvc2hhcmVkLXJvdXRpbmcubW9kdWxlJztcbmV4cG9ydCB7IFJ4U3RhdGVNb2R1bGUgfSBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL3J4LXN0YXRlL3J4LXN0YXRlLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL3J4LXN0YXRlL3J4LXN0YXRlLmRlY29yYXRvcnMnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC9yeC1zdGF0ZS9yeC1zdGF0ZS50eXBlcyc7XG5cbi8vIFNoYXJlZCBtYXRlcmlhbFxuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC9tYXRlcmlhbC9tYXRlcmlhbC5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC9tYXRlcmlhbC9tYXRlcmlhbC5jb25maWcnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC9tYXRlcmlhbC9tYXRlcmlhbC5hbmltYXRpb25zJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvbWF0ZXJpYWwvYm9vbGVhbi9ib29sZWFuLm1vZHVsZSc7XG5leHBvcnQgeyBNYXRCb29sZWFuRmllbGQgfSBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL21hdGVyaWFsL2Jvb2xlYW4vbWF0ZXJpYWwuYm9vbGVhbic7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL21hdGVyaWFsL2F1dG9jb21wbGV0ZS9tYXRlcmlhbC5hdXRvY29tcGxldGUubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvbWF0ZXJpYWwvYXV0b2NvbXBsZXRlL21hdGVyaWFsLmF1dG9jb21wbGV0ZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL21hdGVyaWFsL2F1dG9jb21wbGV0ZS9tYXRlcmlhbC5hdXRvY29tcGxldGUuY29uZmlnJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvbWF0ZXJpYWwvYXV0b2NvbXBsZXRlL21hdGVyaWFsLmF1dG9jb21wbGV0ZS51dGlscyc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL21hdGVyaWFsL2NoaXBzL2NoaXBzLm1vZHVsZSc7XG5leHBvcnQgeyBNYXRDaGlwc0ZpZWxkIH0gZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC9tYXRlcmlhbC9jaGlwcy9tYXRlcmlhbC5jaGlwcyc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL21hdGVyaWFsL3BhZ2luYXRvci9tYXRlcmlhbC5wYWdpbmF0b3ItaTE4bic7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL21hdGVyaWFsL3N0ZXBwZXIvbWF0ZXJpYWwuc3RlcHBlci1pMThuJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvbWF0ZXJpYWwvZGF0ZXRpbWUvZGF0ZXRpbWUubW9kdWxlJztcbmV4cG9ydCB7IE1hdERhdGVTaG9ydCB9IGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvbWF0ZXJpYWwvZGF0ZXRpbWUvbWF0ZXJpYWwuZGF0ZXNob3J0JztcbmV4cG9ydCB7IE1hdERhdGVUaW1lIH0gZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC9tYXRlcmlhbC9kYXRldGltZS9tYXRlcmlhbC5kYXRldGltZSc7XG5leHBvcnQgeyBNYXREYXRlIH0gZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC9tYXRlcmlhbC9kYXRldGltZS9tYXRlcmlhbC5kYXRlJztcbmV4cG9ydCB7IE1hdExhdExvbmdGaWVsZCB9IGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvbWF0ZXJpYWwvbGF0bG9uZy9tYXRlcmlhbC5sYXRsb25nJztcbmV4cG9ydCB7IE1hdExhdExvbmdGaWVsZElucHV0IH0gZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC9tYXRlcmlhbC9sYXRsb25nL21hdGVyaWFsLmxhdGxvbmctaW5wdXQnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC9tYXRlcmlhbC9sYXRsb25nL21hdGVyaWFsLmxhdGxvbmcubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvbWF0ZXJpYWwvZHVyYXRpb24vZHVyYXRpb24ubW9kdWxlJztcbmV4cG9ydCB7IE1hdER1cmF0aW9uIH0gZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC9tYXRlcmlhbC9kdXJhdGlvbi9tYXRlcmlhbC5kdXJhdGlvbic7XG4vLyBleHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL21hdGVyaWFsL251bXBhZC9udW1wYWQubW9kdWxlJztcbi8vIGV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvbWF0ZXJpYWwvbnVtcGFkL251bXBhZC5kaXJlY3RpdmUnO1xuLy8gZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC9tYXRlcmlhbC9udW1wYWQvbnVtcGFkLmFwcGVuZC10by1pbnB1dC5kaXJlY3RpdmUnO1xuLy8gZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC9tYXRlcmlhbC9udW1wYWQvbnVtcGFkLmNvbnRhaW5lcic7XG4vLyBleHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL21hdGVyaWFsL251bXBhZC9udW1wYWQuY29udGVudCc7XG4vLyBleHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL21hdGVyaWFsL251bXBhZC9udW1wYWQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvbWF0ZXJpYWwvc3dpcGUvc3dpcGUubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvbWF0ZXJpYWwvc3dpcGUvbWF0ZXJpYWwuc3dpcGUnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC9tYXRlcmlhbC9iYWRnZS9iYWRnZS5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC9tYXRlcmlhbC9iYWRnZS9iYWRnZS5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL2NvcmUvZm9ybS90ZXh0L3RleHQtZm9ybS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL2NvcmUvZm9ybS90ZXh0L3RleHQtZm9ybS5tb2R1bGUnO1xuXG4vLyBTaGFyZWQgY29tcG9uZW50c1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC9pbnB1dHMnO1xuZXhwb3J0IHsgQXBwRm9ybUZpZWxkIH0gZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC9mb3JtL2ZpZWxkLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL2Zvcm0vbG9hZGluZy1zcGlubmVyJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvZm9ybS9maWVsZC5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL3Rvb2xiYXIvdG9vbGJhcic7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL3Rvb2xiYXIvbW9kYWwtdG9vbGJhcic7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL3Rvb2xiYXIvdG9vbGJhci5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC9pbnRlcmNlcHRvcnMvcHJvZ2Vzcy5pbnRlcmNlcHRvcic7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL3RvYXN0L3RvYXN0cyc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL2d1YXJkL2NvbXBvbmVudC1kaXJ0eS5ndWFyZCc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL3VwbG9hZC1maWxlL3VwbG9hZC1maWxlLm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvdXBsb2FkLWZpbGUvdXBsb2FkLWZpbGUtcG9wb3Zlci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC91cGxvYWQtZmlsZS91cGxvYWQtZmlsZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC9pbWFnZS9nYWxsZXJ5L2ltYWdlLWdhbGxlcnkuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvaW1hZ2UvZ2FsbGVyeS9pbWFnZS1nYWxsZXJ5Lm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL2ltYWdlL2ltYWdlLm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvaW1hZ2UvaW1hZ2UubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvc3RvcmFnZS9zdG9yYWdlLWV4cGxvcmVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL3N0b3JhZ2Uvc3RvcmFnZS1leHBsb3Jlci5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC9sb2dnaW5nL2xvZy1sZXZlbC5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL2xvZ2dpbmcvbG9nZ2VyLm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvbG9nZ2luZy9sb2dnaW5nLXNlcnZpY2UuY2xhc3MnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC9sb2dnaW5nL2xvZ2dpbmctc2VydmljZS5jb25maWcnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC9sb2dnaW5nL2xvZ2dpbmctc2VydmljZS5tb2R1bGUnO1xuXG4vLyBTaGFyZWQgZGlyZWN0aXZlc1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC9kaXJlY3RpdmVzL2RpcmVjdGl2ZXMubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvZGlyZWN0aXZlcy9hdXRvZm9jdXMuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvZGlyZWN0aXZlcy9uZy12YXIuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvZGlyZWN0aXZlcy9kcmFnLWFuZC1kcm9wLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL2RpcmVjdGl2ZXMvYXV0b3RpdGxlLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL2RpcmVjdGl2ZXMvdGhyb3R0bGVkLWNsaWNrLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL2RpcmVjdGl2ZXMvcmVzaXphYmxlL3Jlc2l6YWJsZS5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC9kaXJlY3RpdmVzL3Jlc2l6YWJsZS9yZXNpemFibGUuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvZGlyZWN0aXZlcy9yZXNpemFibGUvcmVzaXphYmxlLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL2RpcmVjdGl2ZXMvYXV0b3Jlc2l6ZS5kaXJlY3RpdmUnO1xuXG4vLyBTaGFyZWQgcGlwZXNcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvcGlwZXMvcGlwZXMubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvcGlwZXMvZGF0ZS1mb3JtYXQucGlwZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL3BpcGVzL2RhdGUtZnJvbS5waXBlJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvcGlwZXMvZGF0ZS1mcm9tLW5vdy5waXBlJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvcGlwZXMvZGF0ZS1kaWZmLWR1cmF0aW9uLnBpcGUnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC9waXBlcy9kYXRlcy5waXBlJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvcGlwZXMvbGF0bG9uZy1mb3JtYXQucGlwZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL3BpcGVzL2hpZ2hsaWdodC5waXBlJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvcGlwZXMvbnVtYmVyLWZvcm1hdC5waXBlJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvcGlwZXMvZHVyYXRpb24ucGlwZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL3BpcGVzL2ZpbGUtc2l6ZS5waXBlJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvcGlwZXMvcHJvcGVydHkucGlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC9waXBlcy9tYXRoLnBpcGVzJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvcGlwZXMvYXJyYXlzLnBpcGUnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC9waXBlcy9tYXBzLnBpcGUnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC9waXBlcy9zdHJpbmcucGlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC9waXBlcy91cmwucGlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC9waXBlcy9vYnNlcnZhYmxlLnBpcGVzJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvcGlwZXMvdHJhbnNsYXRlLWNvbnRleHQucGlwZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL3BpcGVzL25nLWluaXQucGlwZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL3BpcGVzL2Zvcm0ucGlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC9waXBlcy9jb2xvcnMucGlwZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL3BpcGVzL3R5cGVzLnBpcGVzJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvcGlwZXMvbWFza2l0by5waXBlJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvcGlwZXMvc2VsZWN0aW9uLnBpcGVzJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvcGlwZXMvYmFkZ2UucGlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC9waXBlcy9odG1sLnBpcGVzJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvcGlwZXMvZGlzcGxheS13aXRoLnBpcGUnO1xuXG4vLyBTaGFyZWQgc2VydmljZXNcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvc2VydmljZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC9hdWRpby9hdWRpbyc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL2ZpbGUvZmlsZS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvaW1hZ2UvaW1hZ2Uuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL3NlcnZpY2VzL3N0YXJ0YWJsZS1zZXJ2aWNlLmNsYXNzJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvc2VydmljZXMvZW50aXR5LXNlcnZpY2UuY2xhc3MnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC9zZXJ2aWNlcy9tZW1vcnktZW50aXR5LXNlcnZpY2UuY2xhc3MnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC9zZXJ2aWNlcy9wcm9ncmVzcy1iYXIuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL3NlcnZpY2VzL3RyYW5zbGF0ZS1jb250ZXh0LnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC9zZXJ2aWNlcy9qb2IudXRpbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC9zdG9yYWdlL3N0b3JhZ2Uuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL3N0b3JhZ2Uvc3RvcmFnZS51dGlscyc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL3N0b3JhZ2Uvc3RvcmFnZS1leHBsb3Jlci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC9zdG9yYWdlL3N0b3JhZ2UtZXhwbG9yZXIubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvdmFsaWRhdG9yL2Zvcm0tZXJyb3ItYWRhcHRlci5jbGFzcyc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL2RlYnVnL2RlYnVnLXNlcnZpY2UuY2xhc3MnO1xuXG4vLyBTaGFyZWQgb3RoZXJcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC9kYXRlcyc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL2Z1bmN0aW9ucyc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL3JlZ2V4cHMnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC9zZXJ2aWNlcyc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL2Zvcm1zJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvb2JzZXJ2YWJsZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC9ldmVudHMnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC9hbGVydHMnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC9wbGF0Zm9ybXMnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC9odG1sLnV0aWxzJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvYmFzZTY0LnV0aWxzJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvZ2VvbG9jYXRpb24vZ2VvbG9jYXRpb24udXRpbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC92ZXJzaW9uL3ZlcnNpb25zJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvZmlsZS9maWxlLnV0aWxzJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvZmlsZS9jc3YudXRpbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC9maWxlL2ltYWdlcy51dGlscyc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL2ZpbGUvanNvbi51dGlscyc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL2ZpbGUvdXJpLnV0aWxzJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvZmlsZS91cmwudXRpbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC9ob3RrZXlzL3NoYXJlZC1ob3RrZXlzLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL2hvdGtleXMvaG90a2V5cy5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvaG90a2V5cy9kaWFsb2cvaG90a2V5cy1kaWFsb2cuY29tcG9uZW50JztcbmV4cG9ydCB7XG4gIENvbG9yLFxuICBDb2xvck5hbWUsXG4gIENvbG9yU2NhbGUsXG4gIENvbG9yU2NhbGVMZWdlbmQsXG4gIENvbG9yU2NhbGVPcHRpb25zLFxuICBDb2xvckdyYWRpZW50T3B0aW9ucyxcbiAgQ29sb3JTY2FsZUxlZ2VuZEl0ZW0sXG59IGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvZ3JhcGgvZ3JhcGgtY29sb3JzJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvZ3JhcGgvY29sb3JzLnV0aWxzJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvZ2VzdHVyZS9nZXN0dXJlLWNvbmZpZyc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL2dlc3R1cmUvaGFtbWVyLnV0aWxzJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvdmFsaWRhdG9yL3ZhbGlkYXRvcnMnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC92YWxpZGF0b3IvZm9ybS1lcnJvci1hZGFwdGVyLmNsYXNzJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvbWF0ZXJpYWwvbGF0bG9uZy9sYXRsb25nLnV0aWxzJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvZGVidWcvZGVidWcubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvZGVidWcvZGVidWcuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvbmFtZWQtZmlsdGVyL25hbWVkLWZpbHRlci5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC9uYW1lZC1maWx0ZXIvbmFtZWQtZmlsdGVyLm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvbmFtZWQtZmlsdGVyL25hbWVkLWZpbHRlci5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvbmFtZWQtZmlsdGVyL25hbWVkLWZpbHRlci1zZWxlY3Rvci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC9tYXJrZG93bi9tYXJrZG93bi5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC9tYXJrZG93bi9tYXJrZG93bi51dGlscyc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL21hcmtkb3duL21hcmtkb3duLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC9tYXJrZG93bi9tYXJrZG93bi5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC9tYXJrZG93bi9tYXJrZG93bi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC9tYXJrZG93bi9tYXJrZG93bi5tb2RhbCc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL3ByaW50L3ByaW50LnNlcnZpY2UnO1xuXG4vLyBDb3JlXG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvY29yZS9jb3JlLm1vZHVsZSc7XG5cbi8vIENvcmUgbW9kZWxcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9jb3JlL3NlcnZpY2VzL21vZGVsL2FjY291bnQubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL2NvcmUvc2VydmljZXMvbW9kZWwvdG9rZW4ubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL2NvcmUvc2VydmljZXMvbW9kZWwvY29uZmlnLm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9jb3JlL3NlcnZpY2VzL21vZGVsL2RlcGFydG1lbnQubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL2NvcmUvc2VydmljZXMvbW9kZWwvZW50aXR5Lm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9jb3JlL3NlcnZpY2VzL21vZGVsL3RyZWUtaXRlbS1lbnRpdHkubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL2NvcmUvc2VydmljZXMvbW9kZWwvZmlsdGVyLm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9jb3JlL3NlcnZpY2VzL21vZGVsL2hpc3RvcnkubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL2NvcmUvc2VydmljZXMvbW9kZWwvbW9kZWwuZW51bSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvY29yZS9zZXJ2aWNlcy9tb2RlbC9wZWVyLm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9jb3JlL3NlcnZpY2VzL21vZGVsL3BlcnNvbi5tb2RlbCc7XG5leHBvcnQge1xuICBJUmVmZXJlbnRpYWxSZWYsXG4gIFJlZmVyZW50aWFsUmVmLFxuICBCYXNlUmVmZXJlbnRpYWwsXG4gIFJlZmVyZW50aWFsLFxuICBSZWZlcmVudGlhbFV0aWxzLFxuICBSZWZlcmVudGlhbEFzT2JqZWN0T3B0aW9ucyxcbiAgcmVmZXJlbnRpYWxUb1N0cmluZyxcbiAgcmVmZXJlbnRpYWxzVG9TdHJpbmcsXG4gIElTdGF0dXMsXG4gIFN0YXR1c0xpc3QsXG4gIFN0YXR1c0J5SWQsXG4gIE1JTklGWV9FTlRJVFlfRk9SX0xPQ0FMX1NUT1JBR0UsXG4gIE1JTklGWV9FTlRJVFlfRk9SX1BPRCxcbn0gZnJvbSAnLi9zcmMvYXBwL2NvcmUvc2VydmljZXMvbW9kZWwvcmVmZXJlbnRpYWwubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL2NvcmUvc2VydmljZXMvbW9kZWwvc2V0dGluZ3MubW9kZWwnO1xuXG4vLyBHcmFwaFFMXG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvY29yZS9ncmFwaHFsL2dyYXBocWwubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9jb3JlL2dyYXBocWwvZ3JhcGhxbC5zZXJ2aWNlJztcblxuLy8gQ29yZSBwaXBlc1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL2NvcmUvc2VydmljZXMvcGlwZXMvYWNjb3VudC5waXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvY29yZS9zZXJ2aWNlcy9waXBlcy9kZXBhcnRtZW50LXRvLXN0cmluZy5waXBlJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9jb3JlL3NlcnZpY2VzL3BpcGVzL3BlcnNvbi10by1zdHJpbmcucGlwZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvY29yZS9zZXJ2aWNlcy9waXBlcy91c2FnZS1tb2RlLnBpcGVzJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9jb3JlL3NlcnZpY2VzL3BpcGVzL3JlZmVyZW50aWFsLXRvLXN0cmluZy5waXBlJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9jb3JlL3NlcnZpY2VzL3BpcGVzL3BpcGVzLm1vZHVsZSc7XG5cbi8vIENvcmUgc2VydmljZXNcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9jb3JlL3NlcnZpY2VzL2Jhc2U1OCc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvY29yZS9zZXJ2aWNlcy9lcnJvcnMnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL2NvcmUvc2VydmljZXMvcGxhdGZvcm0uc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvY29yZS9zZXJ2aWNlcy9uZXR3b3JrLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL2NvcmUvc2VydmljZXMvbmV0d29yay50eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvY29yZS9zZXJ2aWNlcy9uZXR3b3JrLnV0aWxzJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9jb3JlL3NlcnZpY2VzL2NvbmZpZy5zZXJ2aWNlJztcbmV4cG9ydCB7IENPUkVfQ09ORklHX09QVElPTlMgfSBmcm9tICcuL3NyYy9hcHAvY29yZS9zZXJ2aWNlcy9jb25maWcvY29yZS5jb25maWcnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL2NvcmUvc2VydmljZXMvbG9jYWwtc2V0dGluZ3Muc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvY29yZS9zZXJ2aWNlcy9hY2NvdW50LnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL2NvcmUvc2VydmljZXMvY3J5cHRvLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL2NvcmUvc2VydmljZXMvYXV0aC1ndWFyZC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9jb3JlL3NlcnZpY2VzL2Jhc2UtZ3JhcGhxbC1zZXJ2aWNlLmNsYXNzJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9jb3JlL3NlcnZpY2VzL2Jhc2UtZW50aXR5LXNlcnZpY2UuY2xhc3MnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL2NvcmUvc2VydmljZXMvc3RvcmFnZS9lbnRpdGllcy1zdG9yYWdlLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL2NvcmUvc2VydmljZXMvc3RvcmFnZS9lbnRpdHktc3RvcmUuY2xhc3MnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL2NvcmUvc2VydmljZXMvdmFsaWRhdG9yL2Jhc2UudmFsaWRhdG9yLmNsYXNzJztcblxuLy8gQ29yZSBjb21wb25lbnRzXG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvY29yZS9mb3JtL2Zvcm0uY2xhc3MnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL2NvcmUvZm9ybS9mb3JtLnV0aWxzJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9jb3JlL2Zvcm0vZm9ybS1jb250YWluZXIuY2xhc3MnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL2NvcmUvZm9ybS9mb3JtLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvY29yZS9mb3JtL2J1dHRvbnMvZm9ybS1idXR0b25zLWJhci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL2NvcmUvZm9ybS9idXR0b25zL2Zvcm0tYnV0dG9ucy1iYXIubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9jb3JlL2Zvcm0vZW50aXR5L2VkaXRvci5jbGFzcyc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvY29yZS9mb3JtL2VudGl0eS90YWItZWRpdG9yLmNsYXNzJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9jb3JlL2Zvcm0vZW50aXR5L2VudGl0eS1lZGl0b3IuY2xhc3MnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL2NvcmUvZm9ybS9lbnRpdHkvZW50aXR5LWVkaXRvci1tb2RhbC5jbGFzcyc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvY29yZS9mb3JtL2VudGl0eS9lbnRpdHktbWV0YWRhdGEuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9jb3JlL2Zvcm0vZW50aXR5L2VudGl0eS5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL2NvcmUvZm9ybS9saXN0L2xpc3QuZm9ybSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvY29yZS9mb3JtL2xpc3QvbGlzdC5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL2NvcmUvZm9ybS9wcm9wZXJ0aWVzL3Byb3BlcnRpZXMuZm9ybSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvY29yZS9mb3JtL3Byb3BlcnRpZXMvcHJvcGVydGllcy51dGlscyc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvY29yZS9mb3JtL3Byb3BlcnRpZXMvcHJvcGVydGllcy50YWJsZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvY29yZS9mb3JtL3Byb3BlcnRpZXMvcHJvcGVydGllcy5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL2NvcmUvZm9ybS90ZXh0LXBvcG92ZXIvdGV4dC1wb3BvdmVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvY29yZS9mb3JtL3RleHQtcG9wb3Zlci90ZXh0LXBvcG92ZXIubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9jb3JlL2Zvcm0vYXJyYXkvZm9ybS1hcnJheSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvY29yZS90YWJsZS90YWJsZS5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvY29yZS90YWJsZS90YWJsZS5jbGFzcyc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvY29yZS90YWJsZS9hc3luYy10YWJsZS5jbGFzcyc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvY29yZS90YWJsZS90YWJsZS51dGlscyc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvY29yZS90YWJsZS90YWJsZS5waXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvY29yZS90YWJsZS90YWJsZS5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL2NvcmUvdGFibGUvbWVtb3J5LXRhYmxlLmNsYXNzJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9jb3JlL3RhYmxlL2VudGl0aWVzLXRhYmxlLWRhdGFzb3VyY2UuY2xhc3MnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL2NvcmUvdGFibGUvZW50aXRpZXMtYXN5bmMtdGFibGUtZGF0YXNvdXJjZS5jbGFzcyc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvY29yZS90YWJsZS90YWJsZS1zZWxlY3QtY29sdW1ucy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL2NvcmUvdGFibGUvY29sdW1uL2FjdGlvbnMtY29sdW1uLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvY29yZS90YWJsZS9jb2x1bW4vbmF2LWFjdGlvbnMtY29sdW1uLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvY29yZS90YWJsZS9jb2x1bW4vcm93LWZpZWxkLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvY29yZS9pY29uL2ljb24uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9jb3JlL2ljb24vaWNvbi5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL2NvcmUvaG9tZS9ob21lJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9jb3JlL2hvbWUvaG9tZS5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL2NvcmUvc2V0dGluZ3Mvc2V0dGluZ3MucGFnZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvY29yZS9zZXR0aW5ncy9zZXR0aW5ncy5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL2NvcmUvYWNjb3VudC9hY2NvdW50LnBhZ2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL2NvcmUvYWNjb3VudC9hY2NvdW50Lm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvY29yZS9hY2NvdW50L2FjY291bnQucGFnZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvY29yZS9hY2NvdW50L3Rva2VuLnRhYmxlJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9jb3JlL2FjY291bnQvbmV3LXRva2VuLmZvcm0nO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL2NvcmUvYWNjb3VudC9uZXctdG9rZW4ubW9kYWwnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL2NvcmUvYWNjb3VudC9wYXNzd29yZC9jaGFuZ2UtcGFzc3dvcmQubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9jb3JlL2FjY291bnQvcGFzc3dvcmQvY2hhbmdlLXBhc3N3b3JkLmZvcm0nO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL2NvcmUvYWNjb3VudC9wYXNzd29yZC9jaGFuZ2UtcGFzc3dvcmQucGFnZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvY29yZS9hdXRoL2F1dGguZm9ybSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvY29yZS9hdXRoL2F1dGgubW9kYWwnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL2NvcmUvYXV0aC9hdXRoLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvY29yZS9hdXRoL3Jlc2V0LXBhc3N3b3JkLm1vZGFsJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9jb3JlL3JlZ2lzdGVyL3JlZ2lzdGVyLWNvbmZpcm0ucGFnZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvY29yZS9yZWdpc3Rlci9yZWdpc3Rlci5mb3JtJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9jb3JlL3JlZ2lzdGVyL3JlZ2lzdGVyLm1vZGFsJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9jb3JlL3JlZ2lzdGVyL3JlZ2lzdGVyLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvY29yZS9hYm91dC9hYm91dC5tb2RhbCc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvY29yZS9hYm91dC9hYm91dC5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL2NvcmUvcGVlci9zZWxlY3QtcGVlci5tb2RhbCc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvY29yZS9wZWVyL3NlbGVjdC1wZWVyLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvY29yZS9pbnN0YWxsL2luc3RhbGwtdXBncmFkZS1jYXJkLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvY29yZS9pbnN0YWxsL2luc3RhbGwtdXBncmFkZS1jYXJkLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvY29yZS9tZW51L21lbnUuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9jb3JlL21lbnUvbWVudS5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvY29yZS9tZW51L21lbnUubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9jb3JlL21lbnUvbWVudS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9jb3JlL21lbnUvc3ViLW1lbnUtdGFiLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvY29yZS9vZmZsaW5lL3VwZGF0ZS1vZmZsaW5lLW1vZGUtY2FyZC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL2NvcmUvb2ZmbGluZS91cGRhdGUtb2ZmbGluZS1tb2RlLWNhcmQubW9kdWxlJztcblxuLy8gQ29yZSBkZWNvcmF0b3JcbmV4cG9ydCB7IEVudGl0eUNsYXNzLCBFbnRpdHlDbGFzc2VzIH0gZnJvbSAnLi9zcmMvYXBwL2NvcmUvc2VydmljZXMvbW9kZWwvZW50aXR5LmRlY29yYXRvcnMnO1xuXG4vLyBTb2NpYWxcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zb2NpYWwvc29jaWFsLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc29jaWFsL2NvbmZpZy9zb2NpYWwuY29uZmlnJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zb2NpYWwvc29jaWFsLmVycm9ycyc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc29jaWFsL3VzZXItZXZlbnQvdXNlci1ldmVudC5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NvY2lhbC91c2VyLWV2ZW50L3VzZXItZXZlbnQubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NvY2lhbC91c2VyLWV2ZW50L3VzZXItZXZlbnQuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc29jaWFsL3VzZXItZXZlbnQvbm90aWZpY2F0aW9uL3VzZXItZXZlbnQtbm90aWZpY2F0aW9uLmljb24nO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NvY2lhbC91c2VyLWV2ZW50L25vdGlmaWNhdGlvbi91c2VyLWV2ZW50LW5vdGlmaWNhdGlvbi5saXN0JztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zb2NpYWwvdXNlci1ldmVudC9ub3RpZmljYXRpb24vdXNlci1ldmVudC1ub3RpZmljYXRpb24ubW9kYWwnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NvY2lhbC9qb2Ivam9iLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc29jaWFsL2pvYi9wcm9ncmVzc2lvbi9qb2ItcHJvZ3Jlc3Npb24uc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc29jaWFsL2pvYi9wcm9ncmVzc2lvbi9qb2ItcHJvZ3Jlc3Npb24ubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NvY2lhbC9qb2IvcHJvZ3Jlc3Npb24vam9iLXByb2dyZXNzaW9uLmljb24nO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NvY2lhbC9qb2IvcHJvZ3Jlc3Npb24vam9iLXByb2dyZXNzaW9uLmxpc3QnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NvY2lhbC9qb2IvcHJvZ3Jlc3Npb24vam9iLXByb2dyZXNzaW9uLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc29jaWFsL21lc3NhZ2UvbWVzc2FnZS5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NvY2lhbC9tZXNzYWdlL21lc3NhZ2UubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NvY2lhbC9tZXNzYWdlL21lc3NhZ2Uuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc29jaWFsL21lc3NhZ2UvbWVzc2FnZS5mb3JtJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zb2NpYWwvbWVzc2FnZS9tZXNzYWdlLm1vZGFsJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zb2NpYWwvZmVlZC9mZWVkLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc29jaWFsL2ZlZWQvZmVlZC5wYWdlJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zb2NpYWwvZmVlZC9mZWVkLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NvY2lhbC9mZWVkL2ZlZWQubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NvY2lhbC9mZWVkL2ZlZWQuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zb2NpYWwvZmVlZC9mZWVkLm1vZHVsZSc7XG5cbi8vIEZlZWQgdXNpbmcgZGlzY291cnNlIChub3QgbmVlZCBmb3Igbm93KVxuLy9leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc29jaWFsL2ZlZWQvZGlzY291cnNlL2Rpc2NvdXJzZS1mZWVkLnNlcnZpY2UnO1xuLy9leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc29jaWFsL2ZlZWQvZGlzY291cnNlL2Rpc2NvdXJzZS51dGlscyc7XG5cbi8vIEFkbWluXG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvYWRtaW4vYWRtaW4ubW9kdWxlJztcbmV4cG9ydCB7IEFkbWluUm91dGluZ01vZHVsZSB9IGZyb20gJy4vc3JjL2FwcC9hZG1pbi9hZG1pbi1yb3V0aW5nLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvYWRtaW4vdXNlcnMvcGVyc29uLmZpbHRlcic7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvYWRtaW4vdXNlcnMvcGVyc29uLnZhbGlkYXRvcic7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvYWRtaW4vdXNlcnMvcGVyc29uLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL2FkbWluL3VzZXJzL3VzZXJzLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvYWRtaW4vdXNlcnMvdXNlcnMnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL2FkbWluL3VzZXJzL3VzZXJzLnV0aWxzJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9hZG1pbi91c2Vycy91c2Vycy1zZWxlY3QubW9kYWwnO1xuXG4vLyBTaGFyZWQgdGVzdHMgcGFnZVxuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC90ZXN0aW5nL3Rlc3RzLnBhZ2UnO1xuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFRlc3RpbmcgbW9kdWxlIGFuZCBjb21wb25lbnRzXG4vL1xuLy8gVE9ETzogdG8gcmVtb3ZlIHdoZW4gbmd4LWNvbXBvbmVudHMgd2lsbCBiZSB3ZWxsIHRlc3RlZFxuLy8gKG9yIGV4cG9ydCBpbnRvIGEgc3ViIHBhY2thZ2UsIGxpa2UgJ0BzdW1hcmlzLW5ldC9uZ3gtY29tcG9uZW50cy90ZXN0aW5nJylcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBTaGFyZWQgbWF0ZXJpYWwgdGVzdFxuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC9tYXRlcmlhbC9tYXRlcmlhbC50ZXN0aW5nLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL21hdGVyaWFsL2F1dG9jb21wbGV0ZS90ZXN0aW5nL2F1dG9jb21wbGV0ZS50ZXN0JztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvbWF0ZXJpYWwvbGF0bG9uZy90ZXN0aW5nL2xhdGxvbmcudGVzdCc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL21hdGVyaWFsL3N3aXBlL3Rlc3Rpbmcvc3dpcGUudGVzdCc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL21hdGVyaWFsL2RhdGV0aW1lL3Rlc3RpbmcvbWF0LWRhdGUtdGltZS50ZXN0JztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvbWF0ZXJpYWwvZGF0ZXRpbWUvdGVzdGluZy9tYXQtZGF0ZS50ZXN0JztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvbWF0ZXJpYWwvZGF0ZXRpbWUvdGVzdGluZy9tYXQtZGF0ZXNob3J0LnRlc3QnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC9tYXRlcmlhbC9jaGlwcy90ZXN0aW5nL2NoaXBzLnRlc3QnO1xuLy9leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL21hdGVyaWFsL251bXBhZC90ZXN0aW5nL251bXBhZC50ZXN0JztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvdGVzdGluZy9vYnNlcnZhYmxlLnRlc3QnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC9tYXRlcmlhbC9iYWRnZS9iYWRnZS50ZXN0JztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvbWF0ZXJpYWwvdGVzdGluZy9jb21tb24udGVzdCc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL21hdGVyaWFsL2Jvb2xlYW4vdGVzdGluZy9ib29sZWFuLnRlc3QucGFnZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL21hdGVyaWFsL2R1cmF0aW9uL3Rlc3RpbmcvbWF0LWR1cmF0aW9uLnRlc3QnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC90ZXN0aW5nL21hc2tpdG8udGVzdCc7XG5cbi8vIFNoYXJlZCBvdGhlciB0ZXN0XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL3NoYXJlZC50ZXN0aW5nLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL3VwbG9hZC1maWxlL3Rlc3RpbmcvdXBsb2FkLWZpbGUudGVzdGluZyc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL3VwbG9hZC1maWxlL3Rlc3RpbmcvdXBsb2FkLWZpbGUudGVzdGluZy5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC90b2FzdC90b2FzdC50ZXN0aW5nJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvdG9hc3QvdG9hc3QudGVzdGluZy5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC9pbWFnZS9nYWxsZXJ5L3Rlc3RpbmcvZ2FsbGVyeS5zZXJ2aWNlLnRlc3RpbmcnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC9pbWFnZS9nYWxsZXJ5L3Rlc3RpbmcvZ2FsbGVyeS50ZXN0aW5nJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvaW1hZ2UvZ2FsbGVyeS90ZXN0aW5nL2dhbGxlcnkudGVzdGluZy5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC9zdG9yYWdlL3N0b3JhZ2UtZXhwbG9yZXIudGVzdGluZy5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC9zdG9yYWdlL3N0b3JhZ2UtZXhwbG9yZXIudGVzdGluZy1yb3V0aW5nLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL2F1ZGlvL2F1ZGlvLnRlc3RpbmcnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC9hdWRpby9hdWRpby50ZXN0aW5nLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL21hcmtkb3duL3Rlc3RpbmcvbWFya2Rvd24udGVzdCc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL21hcmtkb3duL3Rlc3RpbmcvbWFya2Rvd24udGVzdGluZy5tb2R1bGUnO1xuXG4vLyBDb3JlIHRlc3RpbmdcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9jb3JlL2NvcmUudGVzdGluZy5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL2NvcmUvc2VydmljZXMvdGVzdGluZy9yZWZlcmVudGlhbC1maWx0ZXIubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL2NvcmUvc2VydmljZXMvdGVzdGluZy9yZWZlcmVudGlhbC52YWxpZGF0b3InO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL2NvcmUvdGFibGUvdGVzdGluZy90YWJsZS50ZXN0aW5nLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvY29yZS90YWJsZS90ZXN0aW5nL3RhYmxlLnRlc3RpbmcnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL2NvcmUvdGFibGUvdGVzdGluZy90YWJsZTIudGVzdGluZyc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvY29yZS9mb3JtL3RleHQvdGVzdGluZy90ZXh0LWZvcm0udGVzdGluZyc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvY29yZS9mb3JtL3RleHQvdGVzdGluZy90ZXh0LWZvcm0udGVzdGluZy5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL2NvcmUvZm9ybS90ZXh0LXBvcG92ZXIvdGVzdGluZy90ZXh0LXBvcG92ZXIudGVzdGluZy5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL2NvcmUvZm9ybS90ZXh0LXBvcG92ZXIvdGVzdGluZy90ZXh0LXBvcG92ZXIudGVzdGluZyc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvY29yZS9mb3JtL3Byb3BlcnRpZXMvdGVzdGluZy9wcm9wZXJ0aWVzLWZvcm0udGVzdCc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvY29yZS9mb3JtL3Byb3BlcnRpZXMvdGVzdGluZy9wcm9wZXJ0aWVzLWZvcm0udGVzdGluZy5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL2NvcmUvbWVudS90ZXN0aW5nL21lbnUudGVzdGluZyc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvY29yZS9tZW51L3Rlc3RpbmcvbWVudS50ZXN0aW5nLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvY29yZS9tZW51L3Rlc3RpbmcvbWVudS1vdGhlci50ZXN0aW5nJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9jb3JlL2Zvcm0vYXJyYXkvdGVzdGluZy9mb3JtLWFycmF5LnRlc3QnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL2NvcmUvZm9ybS9hcnJheS90ZXN0aW5nL2Zvcm0tYXJyYXktdGVzdC5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC9uYW1lZC1maWx0ZXIvdGVzdGluZy9uYW1lZC1maWx0ZXItc2VsZWN0b3IudGVzdGluZyc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL25hbWVkLWZpbHRlci90ZXN0aW5nL25hbWVkLWZpbHRlci50ZXN0aW5nLm1vZHVsZSc7XG5cbi8vIFNvY2lhbCB0ZXN0aW5nXG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc29jaWFsL3NvY2lhbC50ZXN0aW5nLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc29jaWFsL3VzZXItZXZlbnQvdGVzdGluZy91c2VyLWV2ZW50LnRlc3RpbmcubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zb2NpYWwvdXNlci1ldmVudC90ZXN0aW5nL3VzZXItZXZlbnQudGVzdGluZyc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc29jaWFsL3VzZXItZXZlbnQvdGVzdGluZy91c2VyLWV2ZW50LnRlc3Rpbmcuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc29jaWFsL2pvYi90ZXN0aW5nL2pvYi50ZXN0aW5nLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc29jaWFsL2pvYi90ZXN0aW5nL2pvYi1wcm9ncmVzc2lvbi50ZXN0aW5nJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zb2NpYWwvam9iL3Rlc3Rpbmcvam9iLXByb2dyZXNzaW9uLnRlc3Rpbmcuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvY29yZS90YWJsZS90ZXN0aW5nL3RhYmxlLXZhbGlkYXRvci5zZXJ2aWNlJztcbiJdfQ==
398
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3B1YmxpY19hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYztBQUlkLGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyx1Q0FBdUMsQ0FBQztBQUV0RCxTQUFTO0FBQ1QsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUMxRSxjQUFjLCtDQUErQyxDQUFDO0FBQzlELGNBQWMsMENBQTBDLENBQUM7QUFFekQsa0JBQWtCO0FBQ2xCLGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLCtDQUErQyxDQUFDO0FBQzlELGNBQWMsa0RBQWtELENBQUM7QUFDakUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQ3JGLGNBQWMscUVBQXFFLENBQUM7QUFDcEYsY0FBYyw4REFBOEQsQ0FBQztBQUM3RSxjQUFjLHFFQUFxRSxDQUFDO0FBQ3BGLGNBQWMsb0VBQW9FLENBQUM7QUFDbkYsY0FBYyw4Q0FBOEMsQ0FBQztBQUM3RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDL0UsY0FBYyw2REFBNkQsQ0FBQztBQUM1RSxjQUFjLHlEQUF5RCxDQUFDO0FBQ3hFLGNBQWMsb0RBQW9ELENBQUM7QUFDbkUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUNuRixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDM0UsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9EQUFvRCxDQUFD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QUFtRCxDQUFDO0FBQ2xFLGNBQWMsMERBQTBELENBQUM7QUFDekUsY0FBYyxxRUFBcUUsQ0FBQztBQUNwRixjQUFjLG1FQUFtRSxDQUFDO0FBRWxGLGlCQUFpQjtBQUNqQixjQUFjLHdDQUF3QyxDQUFDO0FBQ3ZELGNBQWMsK0RBQStELENBQUM7QUFDOUUsY0FBYyx3REFBd0QsQ0FBQztBQUN2RSxjQUFjLGdFQUFnRSxDQUFDO0FBQy9FLGNBQWMsaURBQWlELENBQUM7QUFDaEUsY0FBYyxzREFBc0QsQ0FBQztBQUNyRSxjQUFjLDhEQUE4RCxDQUFDO0FBQzdFLGNBQWMsc0RBQXNELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBFbnZpcm9ubWVudFxuXG5pbXBvcnQgeyBNYXRMYXRMb25nRmllbGRJbnB1dCB9IGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvbWF0ZXJpYWwvbGF0bG9uZy9tYXRlcmlhbC5sYXRsb25nLWlucHV0JztcblxuZXhwb3J0ICogZnJvbSAnLi9zcmMvZW52aXJvbm1lbnRzL2Vudmlyb25tZW50LmNsYXNzJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2Vudmlyb25tZW50cy9lbnZpcm9ubWVudC5sb2FkZXInO1xuXG4vLyBTaGFyZWRcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvY29uc3RhbnRzJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvc2hhcmVkLm1vZHVsZSc7XG5leHBvcnQgeyBTaGFyZWRSb3V0aW5nTW9kdWxlIH0gZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC9zaGFyZWQtcm91dGluZy5tb2R1bGUnO1xuZXhwb3J0IHsgUnhTdGF0ZU1vZHVsZSB9IGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvcngtc3RhdGUvcngtc3RhdGUubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvcngtc3RhdGUvcngtc3RhdGUuZGVjb3JhdG9ycyc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL3J4LXN0YXRlL3J4LXN0YXRlLnR5cGVzJztcblxuLy8gU2hhcmVkIG1hdGVyaWFsXG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL21hdGVyaWFsL21hdGVyaWFsLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL21hdGVyaWFsL21hdGVyaWFsLmNvbmZpZyc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL21hdGVyaWFsL21hdGVyaWFsLmFuaW1hdGlvbnMnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC9tYXRlcmlhbC9ib29sZWFuL2Jvb2xlYW4ubW9kdWxlJztcbmV4cG9ydCB7IE1hdEJvb2xlYW5GaWVsZCB9IGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvbWF0ZXJpYWwvYm9vbGVhbi9tYXRlcmlhbC5ib29sZWFuJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvbWF0ZXJpYWwvYXV0b2NvbXBsZXRlL21hdGVyaWFsLmF1dG9jb21wbGV0ZS5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC9tYXRlcmlhbC9hdXRvY29tcGxldGUvbWF0ZXJpYWwuYXV0b2NvbXBsZXRlJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvbWF0ZXJpYWwvYXV0b2NvbXBsZXRlL21hdGVyaWFsLmF1dG9jb21wbGV0ZS5jb25maWcnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC9tYXRlcmlhbC9hdXRvY29tcGxldGUvbWF0ZXJpYWwuYXV0b2NvbXBsZXRlLnV0aWxzJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvbWF0ZXJpYWwvY2hpcHMvY2hpcHMubW9kdWxlJztcbmV4cG9ydCB7IE1hdENoaXBzRmllbGQgfSBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL21hdGVyaWFsL2NoaXBzL21hdGVyaWFsLmNoaXBzJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvbWF0ZXJpYWwvcGFnaW5hdG9yL21hdGVyaWFsLnBhZ2luYXRvci1pMThuJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvbWF0ZXJpYWwvc3RlcHBlci9tYXRlcmlhbC5zdGVwcGVyLWkxOG4nO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC9tYXRlcmlhbC9kYXRldGltZS9kYXRldGltZS5tb2R1bGUnO1xuZXhwb3J0IHsgTWF0RGF0ZVNob3J0IH0gZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC9tYXRlcmlhbC9kYXRldGltZS9tYXRlcmlhbC5kYXRlc2hvcnQnO1xuZXhwb3J0IHsgTWF0RGF0ZVRpbWUgfSBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL21hdGVyaWFsL2RhdGV0aW1lL21hdGVyaWFsLmRhdGV0aW1lJztcbmV4cG9ydCB7IE1hdERhdGUgfSBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL21hdGVyaWFsL2RhdGV0aW1lL21hdGVyaWFsLmRhdGUnO1xuZXhwb3J0IHsgTWF0TGF0TG9uZ0ZpZWxkIH0gZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC9tYXRlcmlhbC9sYXRsb25nL21hdGVyaWFsLmxhdGxvbmcnO1xuZXhwb3J0IHsgTWF0TGF0TG9uZ0ZpZWxkSW5wdXQgfSBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL21hdGVyaWFsL2xhdGxvbmcvbWF0ZXJpYWwubGF0bG9uZy1pbnB1dCc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL21hdGVyaWFsL2xhdGxvbmcvbWF0ZXJpYWwubGF0bG9uZy5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC9tYXRlcmlhbC9kdXJhdGlvbi9kdXJhdGlvbi5tb2R1bGUnO1xuZXhwb3J0IHsgTWF0RHVyYXRpb24gfSBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL21hdGVyaWFsL2R1cmF0aW9uL21hdGVyaWFsLmR1cmF0aW9uJztcbi8vIGV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvbWF0ZXJpYWwvbnVtcGFkL251bXBhZC5tb2R1bGUnO1xuLy8gZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC9tYXRlcmlhbC9udW1wYWQvbnVtcGFkLmRpcmVjdGl2ZSc7XG4vLyBleHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL21hdGVyaWFsL251bXBhZC9udW1wYWQuYXBwZW5kLXRvLWlucHV0LmRpcmVjdGl2ZSc7XG4vLyBleHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL21hdGVyaWFsL251bXBhZC9udW1wYWQuY29udGFpbmVyJztcbi8vIGV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvbWF0ZXJpYWwvbnVtcGFkL251bXBhZC5jb250ZW50Jztcbi8vIGV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvbWF0ZXJpYWwvbnVtcGFkL251bXBhZC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC9tYXRlcmlhbC9zd2lwZS9zd2lwZS5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC9tYXRlcmlhbC9zd2lwZS9tYXRlcmlhbC5zd2lwZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL21hdGVyaWFsL2JhZGdlL2JhZGdlLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL21hdGVyaWFsL2JhZGdlL2JhZGdlLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvY29yZS9mb3JtL3RleHQvdGV4dC1mb3JtLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvY29yZS9mb3JtL3RleHQvdGV4dC1mb3JtLm1vZHVsZSc7XG5cbi8vIFNoYXJlZCBjb21wb25lbnRzXG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL2lucHV0cyc7XG5leHBvcnQgeyBBcHBGb3JtRmllbGQgfSBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL2Zvcm0vZmllbGQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvZm9ybS9sb2FkaW5nLXNwaW5uZXInO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC9mb3JtL2ZpZWxkLm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvdG9vbGJhci90b29sYmFyJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvdG9vbGJhci9tb2RhbC10b29sYmFyJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvdG9vbGJhci90b29sYmFyLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL2ludGVyY2VwdG9ycy9wcm9nZXNzLmludGVyY2VwdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvdG9hc3QvdG9hc3RzJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvZ3VhcmQvY29tcG9uZW50LWRpcnR5Lmd1YXJkJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvdXBsb2FkLWZpbGUvdXBsb2FkLWZpbGUubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC91cGxvYWQtZmlsZS91cGxvYWQtZmlsZS1wb3BvdmVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL3VwbG9hZC1maWxlL3VwbG9hZC1maWxlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL2ltYWdlL2dhbGxlcnkvaW1hZ2UtZ2FsbGVyeS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC9pbWFnZS9nYWxsZXJ5L2ltYWdlLWdhbGxlcnkubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvaW1hZ2UvaW1hZ2UubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC9pbWFnZS9pbWFnZS5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC9zdG9yYWdlL3N0b3JhZ2UtZXhwbG9yZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvc3RvcmFnZS9zdG9yYWdlLWV4cGxvcmVyLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL2xvZ2dpbmcvbG9nLWxldmVsLm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvbG9nZ2luZy9sb2dnZXIubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC9sb2dnaW5nL2xvZ2dpbmctc2VydmljZS5jbGFzcyc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL2xvZ2dpbmcvbG9nZ2luZy1zZXJ2aWNlLmNvbmZpZyc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL2xvZ2dpbmcvbG9nZ2luZy1zZXJ2aWNlLm1vZHVsZSc7XG5cbi8vIFNoYXJlZCBkaXJlY3RpdmVzXG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL2RpcmVjdGl2ZXMvZGlyZWN0aXZlcy5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC9kaXJlY3RpdmVzL2F1dG9mb2N1cy5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC9kaXJlY3RpdmVzL25nLXZhci5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC9kaXJlY3RpdmVzL2RyYWctYW5kLWRyb3AuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvZGlyZWN0aXZlcy9hdXRvdGl0bGUuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvZGlyZWN0aXZlcy90aHJvdHRsZWQtY2xpY2suZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvZGlyZWN0aXZlcy9yZXNpemFibGUvcmVzaXphYmxlLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL2RpcmVjdGl2ZXMvcmVzaXphYmxlL3Jlc2l6YWJsZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC9kaXJlY3RpdmVzL3Jlc2l6YWJsZS9yZXNpemFibGUubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvZGlyZWN0aXZlcy9hdXRvcmVzaXplLmRpcmVjdGl2ZSc7XG5cbi8vIFNoYXJlZCBwaXBlc1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC9waXBlcy9waXBlcy5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC9waXBlcy9kYXRlLWZvcm1hdC5waXBlJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvcGlwZXMvZGF0ZS1mcm9tLnBpcGUnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC9waXBlcy9kYXRlLWZyb20tbm93LnBpcGUnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC9waXBlcy9kYXRlLWRpZmYtZHVyYXRpb24ucGlwZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL3BpcGVzL2RhdGVzLnBpcGUnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC9waXBlcy9sYXRsb25nLWZvcm1hdC5waXBlJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvcGlwZXMvaGlnaGxpZ2h0LnBpcGUnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC9waXBlcy9udW1iZXItZm9ybWF0LnBpcGUnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC9waXBlcy9kdXJhdGlvbi5waXBlJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvcGlwZXMvZmlsZS1zaXplLnBpcGUnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC9waXBlcy9wcm9wZXJ0eS5waXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL3BpcGVzL21hdGgucGlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC9waXBlcy9hcnJheXMucGlwZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL3BpcGVzL21hcHMucGlwZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL3BpcGVzL3N0cmluZy5waXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL3BpcGVzL3VybC5waXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL3BpcGVzL29ic2VydmFibGUucGlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC9waXBlcy90cmFuc2xhdGUtY29udGV4dC5waXBlJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvcGlwZXMvbmctaW5pdC5waXBlJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvcGlwZXMvZm9ybS5waXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL3BpcGVzL2NvbG9ycy5waXBlJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvcGlwZXMvdHlwZXMucGlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC9waXBlcy9tYXNraXRvLnBpcGUnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC9waXBlcy9zZWxlY3Rpb24ucGlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC9waXBlcy9iYWRnZS5waXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL3BpcGVzL2h0bWwucGlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC9waXBlcy9kaXNwbGF5LXdpdGgucGlwZSc7XG5cbi8vIFNoYXJlZCBzZXJ2aWNlc1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC9zZXJ2aWNlcyc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL2F1ZGlvL2F1ZGlvJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvZmlsZS9maWxlLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC9pbWFnZS9pbWFnZS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvc2VydmljZXMvc3RhcnRhYmxlLXNlcnZpY2UuY2xhc3MnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC9zZXJ2aWNlcy9lbnRpdHktc2VydmljZS5jbGFzcyc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL3NlcnZpY2VzL21lbW9yeS1lbnRpdHktc2VydmljZS5jbGFzcyc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL3NlcnZpY2VzL3Byb2dyZXNzLWJhci5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvc2VydmljZXMvdHJhbnNsYXRlLWNvbnRleHQuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL3NlcnZpY2VzL2pvYi51dGlscyc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL3N0b3JhZ2Uvc3RvcmFnZS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvc3RvcmFnZS9zdG9yYWdlLnV0aWxzJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvc3RvcmFnZS9zdG9yYWdlLWV4cGxvcmVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL3N0b3JhZ2Uvc3RvcmFnZS1leHBsb3Jlci5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC92YWxpZGF0b3IvZm9ybS1lcnJvci1hZGFwdGVyLmNsYXNzJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvZGVidWcvZGVidWctc2VydmljZS5jbGFzcyc7XG5cbi8vIFNoYXJlZCBvdGhlclxuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL2RhdGVzJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvZnVuY3Rpb25zJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvZm9jdXNhYmxlJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvcmVnZXhwcyc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL3NlcnZpY2VzJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvZm9ybXMnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC9vYnNlcnZhYmxlcyc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL2V2ZW50cyc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL2FsZXJ0cyc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL3BsYXRmb3Jtcyc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL2h0bWwudXRpbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC9iYXNlNjQudXRpbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC9nZW9sb2NhdGlvbi9nZW9sb2NhdGlvbi51dGlscyc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL3ZlcnNpb24vdmVyc2lvbnMnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC9maWxlL2ZpbGUudXRpbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC9maWxlL2Nzdi51dGlscyc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL2ZpbGUvaW1hZ2VzLnV0aWxzJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvZmlsZS9qc29uLnV0aWxzJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvZmlsZS91cmkudXRpbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC9maWxlL3VybC51dGlscyc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL2hvdGtleXMvc2hhcmVkLWhvdGtleXMubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvaG90a2V5cy9ob3RrZXlzLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC9ob3RrZXlzL2RpYWxvZy9ob3RrZXlzLWRpYWxvZy5jb21wb25lbnQnO1xuZXhwb3J0IHtcbiAgQ29sb3IsXG4gIENvbG9yTmFtZSxcbiAgQ29sb3JTY2FsZSxcbiAgQ29sb3JTY2FsZUxlZ2VuZCxcbiAgQ29sb3JTY2FsZU9wdGlvbnMsXG4gIENvbG9yR3JhZGllbnRPcHRpb25zLFxuICBDb2xvclNjYWxlTGVnZW5kSXRlbSxcbn0gZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC9ncmFwaC9ncmFwaC1jb2xvcnMnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC9ncmFwaC9jb2xvcnMudXRpbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC9nZXN0dXJlL2dlc3R1cmUtY29uZmlnJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvZ2VzdHVyZS9oYW1tZXIudXRpbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC92YWxpZGF0b3IvdmFsaWRhdG9ycyc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL3ZhbGlkYXRvci9mb3JtLWVycm9yLWFkYXB0ZXIuY2xhc3MnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC9tYXRlcmlhbC9sYXRsb25nL2xhdGxvbmcudXRpbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC9kZWJ1Zy9kZWJ1Zy5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC9kZWJ1Zy9kZWJ1Zy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC9uYW1lZC1maWx0ZXIvbmFtZWQtZmlsdGVyLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL25hbWVkLWZpbHRlci9uYW1lZC1maWx0ZXIubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC9uYW1lZC1maWx0ZXIvbmFtZWQtZmlsdGVyLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC9uYW1lZC1maWx0ZXIvbmFtZWQtZmlsdGVyLXNlbGVjdG9yLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL21hcmtkb3duL21hcmtkb3duLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL21hcmtkb3duL21hcmtkb3duLnV0aWxzJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvbWFya2Rvd24vbWFya2Rvd24uc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL21hcmtkb3duL21hcmtkb3duLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL21hcmtkb3duL21hcmtkb3duLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL21hcmtkb3duL21hcmtkb3duLm1vZGFsJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvcHJpbnQvcHJpbnQuc2VydmljZSc7XG5cbi8vIENvcmVcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9jb3JlL2NvcmUubW9kdWxlJztcblxuLy8gQ29yZSBtb2RlbFxuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL2NvcmUvc2VydmljZXMvbW9kZWwvYWNjb3VudC5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvY29yZS9zZXJ2aWNlcy9tb2RlbC90b2tlbi5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvY29yZS9zZXJ2aWNlcy9tb2RlbC9jb25maWcubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL2NvcmUvc2VydmljZXMvbW9kZWwvZGVwYXJ0bWVudC5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvY29yZS9zZXJ2aWNlcy9tb2RlbC9lbnRpdHkubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL2NvcmUvc2VydmljZXMvbW9kZWwvdHJlZS1pdGVtLWVudGl0eS5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvY29yZS9zZXJ2aWNlcy9tb2RlbC9maWx0ZXIubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL2NvcmUvc2VydmljZXMvbW9kZWwvaGlzdG9yeS5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvY29yZS9zZXJ2aWNlcy9tb2RlbC9tb2RlbC5lbnVtJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9jb3JlL3NlcnZpY2VzL21vZGVsL3BlZXIubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL2NvcmUvc2VydmljZXMvbW9kZWwvcGVyc29uLm1vZGVsJztcbmV4cG9ydCB7XG4gIElSZWZlcmVudGlhbFJlZixcbiAgUmVmZXJlbnRpYWxSZWYsXG4gIEJhc2VSZWZlcmVudGlhbCxcbiAgUmVmZXJlbnRpYWwsXG4gIFJlZmVyZW50aWFsVXRpbHMsXG4gIFJlZmVyZW50aWFsQXNPYmplY3RPcHRpb25zLFxuICByZWZlcmVudGlhbFRvU3RyaW5nLFxuICByZWZlcmVudGlhbHNUb1N0cmluZyxcbiAgSVN0YXR1cyxcbiAgU3RhdHVzTGlzdCxcbiAgU3RhdHVzQnlJZCxcbiAgTUlOSUZZX0VOVElUWV9GT1JfTE9DQUxfU1RPUkFHRSxcbiAgTUlOSUZZX0VOVElUWV9GT1JfUE9ELFxufSBmcm9tICcuL3NyYy9hcHAvY29yZS9zZXJ2aWNlcy9tb2RlbC9yZWZlcmVudGlhbC5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvY29yZS9zZXJ2aWNlcy9tb2RlbC9zZXR0aW5ncy5tb2RlbCc7XG5cbi8vIEdyYXBoUUxcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9jb3JlL2dyYXBocWwvZ3JhcGhxbC5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL2NvcmUvZ3JhcGhxbC9ncmFwaHFsLnNlcnZpY2UnO1xuXG4vLyBDb3JlIHBpcGVzXG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvY29yZS9zZXJ2aWNlcy9waXBlcy9hY2NvdW50LnBpcGVzJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9jb3JlL3NlcnZpY2VzL3BpcGVzL2RlcGFydG1lbnQtdG8tc3RyaW5nLnBpcGUnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL2NvcmUvc2VydmljZXMvcGlwZXMvcGVyc29uLXRvLXN0cmluZy5waXBlJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9jb3JlL3NlcnZpY2VzL3BpcGVzL3VzYWdlLW1vZGUucGlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL2NvcmUvc2VydmljZXMvcGlwZXMvcmVmZXJlbnRpYWwtdG8tc3RyaW5nLnBpcGUnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL2NvcmUvc2VydmljZXMvcGlwZXMvcGlwZXMubW9kdWxlJztcblxuLy8gQ29yZSBzZXJ2aWNlc1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL2NvcmUvc2VydmljZXMvYmFzZTU4JztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9jb3JlL3NlcnZpY2VzL2Vycm9ycyc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvY29yZS9zZXJ2aWNlcy9wbGF0Zm9ybS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9jb3JlL3NlcnZpY2VzL25ldHdvcmsuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvY29yZS9zZXJ2aWNlcy9uZXR3b3JrLnR5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9jb3JlL3NlcnZpY2VzL25ldHdvcmsudXRpbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL2NvcmUvc2VydmljZXMvY29uZmlnLnNlcnZpY2UnO1xuZXhwb3J0IHsgQ09SRV9DT05GSUdfT1BUSU9OUyB9IGZyb20gJy4vc3JjL2FwcC9jb3JlL3NlcnZpY2VzL2NvbmZpZy9jb3JlLmNvbmZpZyc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvY29yZS9zZXJ2aWNlcy9sb2NhbC1zZXR0aW5ncy5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9jb3JlL3NlcnZpY2VzL2FjY291bnQuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvY29yZS9zZXJ2aWNlcy9jcnlwdG8uc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvY29yZS9zZXJ2aWNlcy9hdXRoLWd1YXJkLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL2NvcmUvc2VydmljZXMvYmFzZS1ncmFwaHFsLXNlcnZpY2UuY2xhc3MnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL2NvcmUvc2VydmljZXMvYmFzZS1lbnRpdHktc2VydmljZS5jbGFzcyc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvY29yZS9zZXJ2aWNlcy9zdG9yYWdlL2VudGl0aWVzLXN0b3JhZ2Uuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvY29yZS9zZXJ2aWNlcy9zdG9yYWdlL2VudGl0eS1zdG9yZS5jbGFzcyc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvY29yZS9zZXJ2aWNlcy92YWxpZGF0b3IvYmFzZS52YWxpZGF0b3IuY2xhc3MnO1xuXG4vLyBDb3JlIGNvbXBvbmVudHNcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9jb3JlL2Zvcm0vZm9ybS5jbGFzcyc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvY29yZS9mb3JtL2Zvcm0udXRpbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL2NvcmUvZm9ybS9mb3JtLWNvbnRhaW5lci5jbGFzcyc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvY29yZS9mb3JtL2Zvcm0ubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9jb3JlL2Zvcm0vYnV0dG9ucy9mb3JtLWJ1dHRvbnMtYmFyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvY29yZS9mb3JtL2J1dHRvbnMvZm9ybS1idXR0b25zLWJhci5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL2NvcmUvZm9ybS9lbnRpdHkvZWRpdG9yLmNsYXNzJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9jb3JlL2Zvcm0vZW50aXR5L3RhYi1lZGl0b3IuY2xhc3MnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL2NvcmUvZm9ybS9lbnRpdHkvZW50aXR5LWVkaXRvci5jbGFzcyc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvY29yZS9mb3JtL2VudGl0eS9lbnRpdHktZWRpdG9yLW1vZGFsLmNsYXNzJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9jb3JlL2Zvcm0vZW50aXR5L2VudGl0eS1tZXRhZGF0YS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL2NvcmUvZm9ybS9lbnRpdHkvZW50aXR5Lm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvY29yZS9mb3JtL2xpc3QvbGlzdC5mb3JtJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9jb3JlL2Zvcm0vbGlzdC9saXN0Lm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvY29yZS9mb3JtL3Byb3BlcnRpZXMvcHJvcGVydGllcy5mb3JtJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9jb3JlL2Zvcm0vcHJvcGVydGllcy9wcm9wZXJ0aWVzLnV0aWxzJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9jb3JlL2Zvcm0vcHJvcGVydGllcy9wcm9wZXJ0aWVzLnRhYmxlJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9jb3JlL2Zvcm0vcHJvcGVydGllcy9wcm9wZXJ0aWVzLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvY29yZS9mb3JtL3RleHQtcG9wb3Zlci90ZXh0LXBvcG92ZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9jb3JlL2Zvcm0vdGV4dC1wb3BvdmVyL3RleHQtcG9wb3Zlci5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL2NvcmUvZm9ybS9hcnJheS9mb3JtLWFycmF5JztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9jb3JlL3RhYmxlL3RhYmxlLm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9jb3JlL3RhYmxlL3RhYmxlLmNsYXNzJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9jb3JlL3RhYmxlL2FzeW5jLXRhYmxlLmNsYXNzJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9jb3JlL3RhYmxlL3RhYmxlLnV0aWxzJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9jb3JlL3RhYmxlL3RhYmxlLnBpcGVzJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9jb3JlL3RhYmxlL3RhYmxlLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvY29yZS90YWJsZS9tZW1vcnktdGFibGUuY2xhc3MnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL2NvcmUvdGFibGUvZW50aXRpZXMtdGFibGUtZGF0YXNvdXJjZS5jbGFzcyc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvY29yZS90YWJsZS9lbnRpdGllcy1hc3luYy10YWJsZS1kYXRhc291cmNlLmNsYXNzJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9jb3JlL3RhYmxlL3RhYmxlLXNlbGVjdC1jb2x1bW5zLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvY29yZS90YWJsZS9jb2x1bW4vYWN0aW9ucy1jb2x1bW4uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9jb3JlL3RhYmxlL2NvbHVtbi9uYXYtYWN0aW9ucy1jb2x1bW4uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9jb3JlL3RhYmxlL2NvbHVtbi9yb3ctZmllbGQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9jb3JlL2ljb24vaWNvbi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL2NvcmUvaWNvbi9pY29uLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvY29yZS9ob21lL2hvbWUnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL2NvcmUvaG9tZS9ob21lLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvY29yZS9zZXR0aW5ncy9zZXR0aW5ncy5wYWdlJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9jb3JlL3NldHRpbmdzL3NldHRpbmdzLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvY29yZS9hY2NvdW50L2FjY291bnQucGFnZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvY29yZS9hY2NvdW50L2FjY291bnQubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9jb3JlL2FjY291bnQvYWNjb3VudC5wYWdlJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9jb3JlL2FjY291bnQvdG9rZW4udGFibGUnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL2NvcmUvYWNjb3VudC9uZXctdG9rZW4uZm9ybSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvY29yZS9hY2NvdW50L25ldy10b2tlbi5tb2RhbCc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvY29yZS9hY2NvdW50L3Bhc3N3b3JkL2NoYW5nZS1wYXNzd29yZC5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL2NvcmUvYWNjb3VudC9wYXNzd29yZC9jaGFuZ2UtcGFzc3dvcmQuZm9ybSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvY29yZS9hY2NvdW50L3Bhc3N3b3JkL2NoYW5nZS1wYXNzd29yZC5wYWdlJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9jb3JlL2F1dGgvYXV0aC5mb3JtJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9jb3JlL2F1dGgvYXV0aC5tb2RhbCc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvY29yZS9hdXRoL2F1dGgubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9jb3JlL2F1dGgvcmVzZXQtcGFzc3dvcmQubW9kYWwnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL2NvcmUvcmVnaXN0ZXIvcmVnaXN0ZXItY29uZmlybS5wYWdlJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9jb3JlL3JlZ2lzdGVyL3JlZ2lzdGVyLmZvcm0nO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL2NvcmUvcmVnaXN0ZXIvcmVnaXN0ZXIubW9kYWwnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL2NvcmUvcmVnaXN0ZXIvcmVnaXN0ZXIubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9jb3JlL2Fib3V0L2Fib3V0Lm1vZGFsJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9jb3JlL2Fib3V0L2Fib3V0Lm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvY29yZS9wZWVyL3NlbGVjdC1wZWVyLm1vZGFsJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9jb3JlL3BlZXIvc2VsZWN0LXBlZXIubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9jb3JlL2luc3RhbGwvaW5zdGFsbC11cGdyYWRlLWNhcmQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9jb3JlL2luc3RhbGwvaW5zdGFsbC11cGdyYWRlLWNhcmQubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9jb3JlL21lbnUvbWVudS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL2NvcmUvbWVudS9tZW51Lm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9jb3JlL21lbnUvbWVudS5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL2NvcmUvbWVudS9tZW51LnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL2NvcmUvbWVudS9zdWItbWVudS10YWIuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9jb3JlL29mZmxpbmUvdXBkYXRlLW9mZmxpbmUtbW9kZS1jYXJkLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvY29yZS9vZmZsaW5lL3VwZGF0ZS1vZmZsaW5lLW1vZGUtY2FyZC5tb2R1bGUnO1xuXG4vLyBDb3JlIGRlY29yYXRvclxuZXhwb3J0IHsgRW50aXR5Q2xhc3MsIEVudGl0eUNsYXNzZXMgfSBmcm9tICcuL3NyYy9hcHAvY29yZS9zZXJ2aWNlcy9tb2RlbC9lbnRpdHkuZGVjb3JhdG9ycyc7XG5cbi8vIFNvY2lhbFxuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NvY2lhbC9zb2NpYWwubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zb2NpYWwvY29uZmlnL3NvY2lhbC5jb25maWcnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NvY2lhbC9zb2NpYWwuZXJyb3JzJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zb2NpYWwvdXNlci1ldmVudC91c2VyLWV2ZW50Lm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc29jaWFsL3VzZXItZXZlbnQvdXNlci1ldmVudC5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc29jaWFsL3VzZXItZXZlbnQvdXNlci1ldmVudC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zb2NpYWwvdXNlci1ldmVudC9ub3RpZmljYXRpb24vdXNlci1ldmVudC1ub3RpZmljYXRpb24uaWNvbic7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc29jaWFsL3VzZXItZXZlbnQvbm90aWZpY2F0aW9uL3VzZXItZXZlbnQtbm90aWZpY2F0aW9uLmxpc3QnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NvY2lhbC91c2VyLWV2ZW50L25vdGlmaWNhdGlvbi91c2VyLWV2ZW50LW5vdGlmaWNhdGlvbi5tb2RhbCc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc29jaWFsL2pvYi9qb2IubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zb2NpYWwvam9iL3Byb2dyZXNzaW9uL2pvYi1wcm9ncmVzc2lvbi5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zb2NpYWwvam9iL3Byb2dyZXNzaW9uL2pvYi1wcm9ncmVzc2lvbi5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc29jaWFsL2pvYi9wcm9ncmVzc2lvbi9qb2ItcHJvZ3Jlc3Npb24uaWNvbic7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc29jaWFsL2pvYi9wcm9ncmVzc2lvbi9qb2ItcHJvZ3Jlc3Npb24ubGlzdCc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc29jaWFsL2pvYi9wcm9ncmVzc2lvbi9qb2ItcHJvZ3Jlc3Npb24uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zb2NpYWwvbWVzc2FnZS9tZXNzYWdlLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc29jaWFsL21lc3NhZ2UvbWVzc2FnZS5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc29jaWFsL21lc3NhZ2UvbWVzc2FnZS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zb2NpYWwvbWVzc2FnZS9tZXNzYWdlLmZvcm0nO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NvY2lhbC9tZXNzYWdlL21lc3NhZ2UubW9kYWwnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NvY2lhbC9mZWVkL2ZlZWQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zb2NpYWwvZmVlZC9mZWVkLnBhZ2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NvY2lhbC9mZWVkL2ZlZWQuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc29jaWFsL2ZlZWQvZmVlZC5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc29jaWFsL2ZlZWQvZmVlZC5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NvY2lhbC9mZWVkL2ZlZWQubW9kdWxlJztcblxuLy8gRmVlZCB1c2luZyBkaXNjb3Vyc2UgKG5vdCBuZWVkIGZvciBub3cpXG4vL2V4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zb2NpYWwvZmVlZC9kaXNjb3Vyc2UvZGlzY291cnNlLWZlZWQuc2VydmljZSc7XG4vL2V4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zb2NpYWwvZmVlZC9kaXNjb3Vyc2UvZGlzY291cnNlLnV0aWxzJztcblxuLy8gQWRtaW5cbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9hZG1pbi9hZG1pbi5tb2R1bGUnO1xuZXhwb3J0IHsgQWRtaW5Sb3V0aW5nTW9kdWxlIH0gZnJvbSAnLi9zcmMvYXBwL2FkbWluL2FkbWluLXJvdXRpbmcubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9hZG1pbi91c2Vycy9wZXJzb24uZmlsdGVyJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9hZG1pbi91c2Vycy9wZXJzb24udmFsaWRhdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9hZG1pbi91c2Vycy9wZXJzb24uc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvYWRtaW4vdXNlcnMvdXNlcnMubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9hZG1pbi91c2Vycy91c2Vycyc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvYWRtaW4vdXNlcnMvdXNlcnMudXRpbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL2FkbWluL3VzZXJzL3VzZXJzLXNlbGVjdC5tb2RhbCc7XG5cbi8vIFNoYXJlZCB0ZXN0cyBwYWdlXG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL3Rlc3RpbmcvdGVzdHMucGFnZSc7XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gVGVzdGluZyBtb2R1bGUgYW5kIGNvbXBvbmVudHNcbi8vXG4vLyBUT0RPOiB0byByZW1vdmUgd2hlbiBuZ3gtY29tcG9uZW50cyB3aWxsIGJlIHdlbGwgdGVzdGVkXG4vLyAob3IgZXhwb3J0IGludG8gYSBzdWIgcGFja2FnZSwgbGlrZSAnQHN1bWFyaXMtbmV0L25neC1jb21wb25lbnRzL3Rlc3RpbmcnKVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIFNoYXJlZCBtYXRlcmlhbCB0ZXN0XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL21hdGVyaWFsL21hdGVyaWFsLnRlc3RpbmcubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvbWF0ZXJpYWwvYXV0b2NvbXBsZXRlL3Rlc3RpbmcvYXV0b2NvbXBsZXRlLnRlc3QnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC9tYXRlcmlhbC9sYXRsb25nL3Rlc3RpbmcvbGF0bG9uZy50ZXN0JztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvbWF0ZXJpYWwvc3dpcGUvdGVzdGluZy9zd2lwZS50ZXN0JztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvbWF0ZXJpYWwvZGF0ZXRpbWUvdGVzdGluZy9tYXQtZGF0ZS10aW1lLnRlc3QnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC9tYXRlcmlhbC9kYXRldGltZS90ZXN0aW5nL21hdC1kYXRlLnRlc3QnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC9tYXRlcmlhbC9kYXRldGltZS90ZXN0aW5nL21hdC1kYXRlc2hvcnQudGVzdCc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL21hdGVyaWFsL2NoaXBzL3Rlc3RpbmcvY2hpcHMudGVzdCc7XG4vL2V4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvbWF0ZXJpYWwvbnVtcGFkL3Rlc3RpbmcvbnVtcGFkLnRlc3QnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC90ZXN0aW5nL29ic2VydmFibGUudGVzdCc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL21hdGVyaWFsL2JhZGdlL2JhZGdlLnRlc3QnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC9tYXRlcmlhbC90ZXN0aW5nL2NvbW1vbi50ZXN0JztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvbWF0ZXJpYWwvYm9vbGVhbi90ZXN0aW5nL2Jvb2xlYW4udGVzdC5wYWdlJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvbWF0ZXJpYWwvZHVyYXRpb24vdGVzdGluZy9tYXQtZHVyYXRpb24udGVzdCc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL3Rlc3RpbmcvbWFza2l0by50ZXN0JztcblxuLy8gU2hhcmVkIG90aGVyIHRlc3RcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvc2hhcmVkLnRlc3RpbmcubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvdXBsb2FkLWZpbGUvdGVzdGluZy91cGxvYWQtZmlsZS50ZXN0aW5nJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvdXBsb2FkLWZpbGUvdGVzdGluZy91cGxvYWQtZmlsZS50ZXN0aW5nLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL3RvYXN0L3RvYXN0LnRlc3RpbmcnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC90b2FzdC90b2FzdC50ZXN0aW5nLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL2ltYWdlL2dhbGxlcnkvdGVzdGluZy9nYWxsZXJ5LnNlcnZpY2UudGVzdGluZyc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL2ltYWdlL2dhbGxlcnkvdGVzdGluZy9nYWxsZXJ5LnRlc3RpbmcnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC9pbWFnZS9nYWxsZXJ5L3Rlc3RpbmcvZ2FsbGVyeS50ZXN0aW5nLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL3N0b3JhZ2Uvc3RvcmFnZS1leHBsb3Jlci50ZXN0aW5nLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL3N0b3JhZ2Uvc3RvcmFnZS1leHBsb3Jlci50ZXN0aW5nLXJvdXRpbmcubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvYXVkaW8vYXVkaW8udGVzdGluZyc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL2F1ZGlvL2F1ZGlvLnRlc3RpbmcubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvbWFya2Rvd24vdGVzdGluZy9tYXJrZG93bi50ZXN0JztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvbWFya2Rvd24vdGVzdGluZy9tYXJrZG93bi50ZXN0aW5nLm1vZHVsZSc7XG5cbi8vIENvcmUgdGVzdGluZ1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL2NvcmUvY29yZS50ZXN0aW5nLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvY29yZS9zZXJ2aWNlcy90ZXN0aW5nL3JlZmVyZW50aWFsLWZpbHRlci5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvY29yZS9zZXJ2aWNlcy90ZXN0aW5nL3JlZmVyZW50aWFsLnZhbGlkYXRvcic7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvY29yZS90YWJsZS90ZXN0aW5nL3RhYmxlLnRlc3RpbmcubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9jb3JlL3RhYmxlL3Rlc3RpbmcvdGFibGUudGVzdGluZyc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvY29yZS90YWJsZS90ZXN0aW5nL3RhYmxlMi50ZXN0aW5nJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9jb3JlL2Zvcm0vdGV4dC90ZXN0aW5nL3RleHQtZm9ybS50ZXN0aW5nJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9jb3JlL2Zvcm0vdGV4dC90ZXN0aW5nL3RleHQtZm9ybS50ZXN0aW5nLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvY29yZS9mb3JtL3RleHQtcG9wb3Zlci90ZXN0aW5nL3RleHQtcG9wb3Zlci50ZXN0aW5nLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvY29yZS9mb3JtL3RleHQtcG9wb3Zlci90ZXN0aW5nL3RleHQtcG9wb3Zlci50ZXN0aW5nJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9jb3JlL2Zvcm0vcHJvcGVydGllcy90ZXN0aW5nL3Byb3BlcnRpZXMtZm9ybS50ZXN0JztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9jb3JlL2Zvcm0vcHJvcGVydGllcy90ZXN0aW5nL3Byb3BlcnRpZXMtZm9ybS50ZXN0aW5nLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvY29yZS9tZW51L3Rlc3RpbmcvbWVudS50ZXN0aW5nJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9jb3JlL21lbnUvdGVzdGluZy9tZW51LnRlc3RpbmcubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9jb3JlL21lbnUvdGVzdGluZy9tZW51LW90aGVyLnRlc3RpbmcnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL2NvcmUvZm9ybS9hcnJheS90ZXN0aW5nL2Zvcm0tYXJyYXkudGVzdCc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvY29yZS9mb3JtL2FycmF5L3Rlc3RpbmcvZm9ybS1hcnJheS10ZXN0Lm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL25hbWVkLWZpbHRlci90ZXN0aW5nL25hbWVkLWZpbHRlci1zZWxlY3Rvci50ZXN0aW5nJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvbmFtZWQtZmlsdGVyL3Rlc3RpbmcvbmFtZWQtZmlsdGVyLnRlc3RpbmcubW9kdWxlJztcblxuLy8gU29jaWFsIHRlc3RpbmdcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zb2NpYWwvc29jaWFsLnRlc3RpbmcubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zb2NpYWwvdXNlci1ldmVudC90ZXN0aW5nL3VzZXItZXZlbnQudGVzdGluZy5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NvY2lhbC91c2VyLWV2ZW50L3Rlc3RpbmcvdXNlci1ldmVudC50ZXN0aW5nJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zb2NpYWwvdXNlci1ldmVudC90ZXN0aW5nL3VzZXItZXZlbnQudGVzdGluZy5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zb2NpYWwvam9iL3Rlc3Rpbmcvam9iLnRlc3RpbmcubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9zb2NpYWwvam9iL3Rlc3Rpbmcvam9iLXByb2dyZXNzaW9uLnRlc3RpbmcnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBwL3NvY2lhbC9qb2IvdGVzdGluZy9qb2ItcHJvZ3Jlc3Npb24udGVzdGluZy5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwcC9jb3JlL3RhYmxlL3Rlc3RpbmcvdGFibGUtdmFsaWRhdG9yLnNlcnZpY2UnO1xuIl19
@@ -10,7 +10,7 @@ export function filterTrue(obs) {
10
10
  export function filterFalse(obs) {
11
11
  return obs.pipe(filter((v) => v === false));
12
12
  }
13
- function decorateWithTakeUntil(obs, opts) {
13
+ export function decorateWithTakeUntil(obs, opts) {
14
14
  // Set take until notifier
15
15
  let takeUntil$ = opts?.stop || (opts?.timeout && timer(opts.timeout));
16
16
  if (!takeUntil$)
@@ -41,8 +41,9 @@ export function firstTrue(obs, opts, result) {
41
41
  ), opts);
42
42
  }
43
43
  export function firstFalse(obs, opts, result) {
44
- return decorateWithTakeUntil(obs.pipe(first((v) => v === false), map((_) => result) // Convert to void
45
- ), opts);
44
+ return decorateWithTakeUntil(obs.pipe(first((v) => v === false),
45
+ // Convert to expected type
46
+ map((_) => result)), opts);
46
47
  }
47
48
  export function firstTruePromise(obs, opts) {
48
49
  return firstTrue(obs, { stopError: true, ...opts }).toPromise();
@@ -53,6 +54,9 @@ export function firstFalsePromise(obs, opts) {
53
54
  export function firstNotNilPromise(obs, opts) {
54
55
  return firstNotNil(obs, { stopError: true, ...opts }).toPromise();
55
56
  }
57
+ export function firstPromise(obs, opts) {
58
+ return decorateWithTakeUntil(obs, { stopError: true, ...opts }).toPromise();
59
+ }
56
60
  export function chainPromises(defers) {
57
61
  return (defers || []).reduce((previous, defer) => {
58
62
  // First job
@@ -97,4 +101,4 @@ export function waitForFalse(observable, opts) {
97
101
  // Inverse the logic
98
102
  observable.pipe(map((v) => v === false)), opts);
99
103
  }
100
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JzZXJ2YWJsZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NoYXJlZC9vYnNlcnZhYmxlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWMsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQWN2QyxNQUFNLFVBQVUsWUFBWSxDQUFVLEdBQWtCO0lBQ3RELE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztBQUNwQyxDQUFDO0FBRUQsTUFBTSxVQUFVLFVBQVUsQ0FBQyxHQUF3QjtJQUNqRCxPQUFPLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQztBQUM3QyxDQUFDO0FBQ0QsTUFBTSxVQUFVLFdBQVcsQ0FBQyxHQUF3QjtJQUNsRCxPQUFPLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQztBQUM5QyxDQUFDO0FBRUQsU0FBUyxxQkFBcUIsQ0FBVSxHQUFrQixFQUFFLElBQW1CO0lBQzdFLDBCQUEwQjtJQUMxQixJQUFJLFVBQVUsR0FBb0IsSUFBSSxFQUFFLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxPQUFPLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBRXZGLElBQUksQ0FBQyxVQUFVO1FBQUUsT0FBTyxHQUFHLENBQUMsQ0FBQyxPQUFPO0lBRXBDLGtFQUFr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QUFNLFVBQVUsV0FBVyxDQUFDLFVBQStCLEVBQUUsSUFBcUI7SUFDaEYsSUFBSSxHQUFHLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxHQUFHLElBQUksRUFBRSxDQUFDO0lBQ3BDLDRCQUE0QjtJQUM1QixJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQzdCLFVBQVUsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBQ0QsT0FBTyxTQUFTLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO0FBQ2pELENBQUM7QUFFRCxNQUFNLFVBQVUsWUFBWSxDQUFDLFVBQStCLEVBQUUsSUFBcUI7SUFDakYsT0FBTyxXQUFXO0lBQ2hCLG9CQUFvQjtJQUNwQixVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLEtBQUssQ0FBQyxDQUFDLEVBQ3hDLElBQUksQ0FDTCxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUsIHRpbWVyIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaWx0ZXIsIGZpcnN0LCBtYXAsIHN3aXRjaE1hcCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgaXNOb3ROaWwgfSBmcm9tICcuL2Z1bmN0aW9ucyc7XG5pbXBvcnQgeyBQcmVkaWNhdGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEZpcnN0T3B0aW9ucyB7XG4gIHRpbWVvdXQ/OiBudW1iZXI7XG4gIHN0b3A/OiBPYnNlcnZhYmxlPGFueT47XG4gIHN0b3BFcnJvcj86IGJvb2xlYW4gfCBzdHJpbmcgfCBFcnJvcjtcbn1cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFdhaXRGb3JPcHRpb25zIGV4dGVuZHMgRmlyc3RPcHRpb25zIHtcbiAgZHVlVGltZT86IG51bWJlcjtcbiAgY2hlY2tQZXJpb2Q/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmaWx0ZXJOb3ROaWw8VCA9IGFueT4ob2JzOiBPYnNlcnZhYmxlPFQ+KTogT2JzZXJ2YWJsZTxUPiB7XG4gIHJldHVybiBvYnMucGlwZShmaWx0ZXIoaXNOb3ROaWwpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZpbHRlclRydWUob2JzOiBPYnNlcnZhYmxlPGJvb2xlYW4+KTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gIHJldHVybiBvYnMucGlwZShmaWx0ZXIoKHYpID0+IHYgPT09IHRydWUpKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBmaWx0ZXJGYWxzZShvYnM6IE9ic2VydmFibGU8Ym9vbGVhbj4pOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgcmV0dXJuIG9icy5waXBlKGZpbHRlcigodikgPT4gdiA9PT0gZmFsc2UpKTtcbn1cblxuZnVuY3Rpb24gZGVjb3JhdGVXaXRoVGFrZVVudGlsPFQgPSBhbnk+KG9iczogT2JzZXJ2YWJsZTxUPiwgb3B0cz86IEZpcnN0T3B0aW9ucyk6IE9ic2VydmFibGU8VD4ge1xuICAvLyBTZXQgdGFrZSB1bnRpbCBub3RpZmllclxuICBsZXQgdGFrZVVudGlsJDogT2JzZXJ2YWJsZTxhbnk+ID0gb3B0cz8uc3RvcCB8fCAob3B0cz8udGltZW91dCAmJiB0aW1lcihvcHRzLnRpbWVvdXQpKTtcblxuICBpZiAoIXRha2VVbnRpbCQpIHJldHVybiBvYnM7IC8vIFNraXBcblxuICAvLyBXaGVuIHN0b3AsIHRocm93IGFuIGVycm9yICh1c2VmdWwgd2hlbiB1c2VkIHdpdGggYSB0b1Byb21pc2UoKSlcbiAgaWYgKG9wdHMuc3RvcEVycm9yKSB7XG4gICAgbGV0IGVycm9yOiBFcnJvcjtcbiAgICBpZiAob3B0cy5zdG9wRXJyb3IgPT09IHRydWUpIHtcbiAgICAgIGVycm9yID0gbmV3IEVycm9yKG9wdHMudGltZW91dCA/IGBUaW1lb3V0ICR7b3B0cy50aW1lb3V0fW1zYCA6IGBzdG9wYCk7XG4gICAgfSBlbHNlIGlmICh0eXBlb2Ygb3B0cy5zdG9wRXJyb3IgPT09ICdzdHJpbmcnKSB7XG4gICAgICBlcnJvciA9IG5ldyBFcnJvcihvcHRzLnN0b3BFcnJvcik7XG4gICAgfSBlbHNlIHtcbiAgICAgIGVycm9yID0gb3B0cy5zdG9wRXJyb3I7XG4gICAgfVxuICAgIHRha2VVbnRpbCQgPSB0YWtlVW50aWwkLnBpcGUoXG4gICAgICBtYXAoKCkgPT4ge1xuICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiBvYnMucGlwZSh0YWtlVW50aWwodGFrZVVudGlsJCkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZmlyc3ROb3ROaWw8VCA9IGFueT4ob2JzOiBPYnNlcnZhYmxlPFQ+LCBvcHRzPzogRmlyc3RPcHRpb25zKTogT2JzZXJ2YWJsZTxUPiB7XG4gIHJldHVybiBkZWNvcmF0ZVdpdGhUYWtlVW50aWwob2JzLnBpcGUoZmlyc3QoaXNOb3ROaWwpKSwgb3B0cyk7XG59XG5leHBvcnQgZnVuY3Rpb24gZmlyc3RUcnVlPFQgPSB2b2lkPihvYnM6IE9ic2VydmFibGU8Ym9vbGVhbj4sIG9wdHM/OiBGaXJzdE9wdGlvbnMsIHJlc3VsdD86IFQpOiBPYnNlcnZhYmxlPFQ+IHtcbiAgcmV0dXJuIGRlY29yYXRlV2l0aFRha2VVbnRpbChcbiAgICBvYnMucGlwZShcbiAgICAgIGZpcnN0KCh2KSA9PiB2ID09PSB0cnVlKSxcbiAgICAgIG1hcCgoXykgPT4gcmVzdWx0KSAvLyBDb252ZXJ0IHRvIFRcbiAgICApLFxuICAgIG9wdHNcbiAgKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBmaXJzdEZhbHNlPFQgPSB2b2lkPihvYnM6IE9ic2VydmFibGU8Ym9vbGVhbj4sIG9wdHM/OiBGaXJzdE9wdGlvbnMsIHJlc3VsdD86IFQpOiBPYnNlcnZhYmxlPFQ+IHtcbiAgcmV0dXJuIGRlY29yYXRlV2l0aFRha2VVbnRpbChcbiAgICBvYnMucGlwZShcbiAgICAgIGZpcnN0KCh2KSA9PiB2ID09PSBmYWxzZSksXG4gICAgICBtYXAoKF8pID0+IHJlc3VsdCBhcyBUKSAvLyBDb252ZXJ0IHRvIHZvaWRcbiAgICApLFxuICAgIG9wdHNcbiAgKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBmaXJzdFRydWVQcm9taXNlKG9iczogT2JzZXJ2YWJsZTxib29sZWFuPiwgb3B0cz86IEZpcnN0T3B0aW9ucyk6IFByb21pc2U8dm9pZD4ge1xuICByZXR1cm4gZmlyc3RUcnVlKG9icywgeyBzdG9wRXJyb3I6IHRydWUsIC4uLm9wdHMgfSkudG9Qcm9taXNlKCk7XG59XG5leHBvcnQgZnVuY3Rpb24gZmlyc3RGYWxzZVByb21pc2Uob2JzOiBPYnNlcnZhYmxlPGJvb2xlYW4+LCBvcHRzPzogRmlyc3RPcHRpb25zKTogUHJvbWlzZTx2b2lkPiB7XG4gIHJldHVybiBmaXJzdEZhbHNlKG9icywgeyBzdG9wRXJyb3I6IHRydWUsIC4uLm9wdHMgfSkudG9Qcm9taXNlKCk7XG59XG5leHBvcnQgZnVuY3Rpb24gZmlyc3ROb3ROaWxQcm9taXNlPFQgPSBhbnk+KG9iczogT2JzZXJ2YWJsZTxUPiwgb3B0cz86IEZpcnN0T3B0aW9ucyk6IFByb21pc2U8VD4ge1xuICByZXR1cm4gZmlyc3ROb3ROaWwob2JzLCB7IHN0b3BFcnJvcjogdHJ1ZSwgLi4ub3B0cyB9KS50b1Byb21pc2UoKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBjaGFpblByb21pc2VzPFQgPSBhbnk+KGRlZmVyczogKCgpID0+IFByb21pc2U8YW55PilbXSk6IFByb21pc2U8VFtdPiB7XG4gIHJldHVybiAoZGVmZXJzIHx8IFtdKS5yZWR1Y2UoKHByZXZpb3VzOiBQcm9taXNlPGFueT4gfCBudWxsLCBkZWZlcikgPT4ge1xuICAgIC8vIEZpcnN0IGpvYlxuICAgIGlmICghcHJldmlvdXMpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIGRlZmVyKClcbiAgICAgICAgICAvLyBJbml0IHRoZSBmaW5hbCByZXN1bHQgYXJyYXksIHdpdGggdGhlIGZpcnN0IHJlc3VsdFxuICAgICAgICAgIC50aGVuKChqb2JSZXMpID0+IFtqb2JSZXNdKVxuICAgICAgKTtcbiAgICB9XG4gICAgLy8gT3RoZXIgam9ic1xuICAgIHJldHVybiBwcmV2aW91cy50aGVuKChmaW5hbFJlc3VsdCkgPT5cbiAgICAgIGRlZmVyKClcbiAgICAgICAgLy8gQWRkIGpvYiByZXN1bHQgdG8gZmluYWwgcmVzdWx0IGFycmF5XG4gICAgICAgIC50aGVuKChqb2JSZXMpID0+IGZpbmFsUmVzdWx0LmNvbmNhdChqb2JSZXMpKVxuICAgICk7XG4gIH0sIG51bGwpO1xufVxuXG4vKipcbiAqIFdhaXQgZm9ybSBhIHByZWRpY2F0ZSByZXR1cm4gdHJ1ZS4gVGhpcyBuZWVkIHRvIGltcGxlbWVudCBBcHBGb3JtVXRpbHMud2FpdFdoaWxlUGVuZGluZygpLCBBcHBGb3JtVXRpbHMud2FpdElkbGUoKVxuICpcbiAqIEBwYXJhbSBwcmVkaWNhdGVcbiAqIEBwYXJhbSBvcHRzXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB3YWl0Rm9yKHByZWRpY2F0ZTogUHJlZGljYXRlPHZvaWQ+LCBvcHRzPzogV2FpdEZvck9wdGlvbnMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgaWYgKHByZWRpY2F0ZSgpKSByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG5cbiAgY29uc3QgcGVyaW9kID0gKG9wdHMgJiYgb3B0cy5jaGVja1BlcmlvZCkgfHwgMzAwO1xuICBjb25zdCBkdWVUaW1lID0gKG9wdHMgJiYgb3B0cy5kdWVUaW1lKSB8fCBwZXJpb2Q7XG4gIGNvbnN0IHdhaXQkOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gdGltZXIoZHVlVGltZSwgcGVyaW9kKS5waXBlKFxuICAgIC8vIEZvciBERUJVRyA6XG4gICAgLy90YXAoKCkgPT4gY29uc29sZS5kZWJ1ZyhcIldhaXRpbmcgZm9ybSBpZGxlLi4uXCIsIGZvcm0pKSxcbiAgICBmaWx0ZXIoKF8pID0+IHByZWRpY2F0ZSgpKSxcbiAgICBtYXAoKF8pID0+IHRydWUpXG4gICk7XG5cbiAgYXdhaXQgZmlyc3ROb3ROaWxQcm9taXNlKHdhaXQkLCBvcHRzKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHdhaXRGb3JUcnVlKG9ic2VydmFibGU6IE9ic2VydmFibGU8Ym9vbGVhbj4sIG9wdHM/OiBXYWl0Rm9yT3B0aW9ucyk6IFByb21pc2U8dm9pZD4ge1xuICBvcHRzID0geyBzdG9wRXJyb3I6IHRydWUsIC4uLm9wdHMgfTtcbiAgLy8gZHVlVGltZSAod2l0aG91dCB0aW1lb3V0KVxuICBpZiAob3B0cyAmJiBvcHRzLmR1ZVRpbWUgPiAwKSB7XG4gICAgb2JzZXJ2YWJsZSA9IHRpbWVyKG9wdHMuZHVlVGltZSkucGlwZShzd2l0Y2hNYXAoKCkgPT4gb2JzZXJ2YWJsZSkpO1xuICB9XG4gIHJldHVybiBmaXJzdFRydWUob2JzZXJ2YWJsZSwgb3B0cykudG9Qcm9taXNlKCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB3YWl0Rm9yRmFsc2Uob2JzZXJ2YWJsZTogT2JzZXJ2YWJsZTxib29sZWFuPiwgb3B0cz86IFdhaXRGb3JPcHRpb25zKTogUHJvbWlzZTx2b2lkPiB7XG4gIHJldHVybiB3YWl0Rm9yVHJ1ZShcbiAgICAvLyBJbnZlcnNlIHRoZSBsb2dpY1xuICAgIG9ic2VydmFibGUucGlwZShtYXAoKHYpID0+IHYgPT09IGZhbHNlKSksXG4gICAgb3B0c1xuICApO1xufVxuIl19
104
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JzZXJ2YWJsZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NoYXJlZC9vYnNlcnZhYmxlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQThCLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN6RCxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFjdkMsTUFBTSxVQUFVLFlBQVksQ0FBVSxHQUFrQjtJQUN0RCxPQUFPLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7QUFDcEMsQ0FBQztBQUVELE1BQU0sVUFBVSxVQUFVLENBQUMsR0FBd0I7SUFDakQsT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUM7QUFDN0MsQ0FBQztBQUNELE1BQU0sVUFBVSxXQUFXLENBQUMsR0FBd0I7SUFDbEQsT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUM7QUFDOUMsQ0FBQztBQUVELE1BQU0sVUFBVSxxQkFBcUIsQ0FBVSxHQUFrQixFQUFFLElBQW1CO0lBQ3BGLDBCQUEwQjtJQUMxQixJQUFJLFVBQVUsR0FBb0IsSUFBSSxFQUFFLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxPQUFPLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBRXZGLElBQUksQ0FBQyxVQUFVO1FBQUUsT0FBTyxHQUFHLENBQUMsQ0FBQyxPQUFPO0lBRXBDLGtFQUFrRTtJQUNsRSxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNuQixJQUFJLEtBQVksQ0FBQztRQUNqQixJQUFJLElBQUksQ0FBQyxTQUFTLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDNUIsS0FBSyxHQUFHLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFdBQVcsSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN6RSxDQUFDO2FBQU0sSUFBSSxPQUFPLElBQUksQ0FBQyxTQUFTLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDOUMsS0FBSyxHQUFHLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNwQyxDQUFDO2FBQU0sQ0FBQztZQUNOLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQ3pCLENBQUM7UUFDRCxVQUFVLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FDMUIsR0FBRyxDQUFDLEdBQUcsRUFBRTtZQUNQLE1BQU0sS0FBSyxDQUFDO1FBQ2QsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFRCxPQUFPLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7QUFDekMsQ0FBQztBQUVELE1BQU0sVUFBVSxXQUFXLENBQVUsR0FBa0IsRUFBRSxJQUFtQjtJQUMxRSxPQUFPLHFCQUFxQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDaEUsQ0FBQztBQUNELE1BQU0sVUFBVSxTQUFTLENBQVcsR0FBd0IsRUFBRSxJQUFtQixFQUFFLE1BQVU7SUFDM0YsT0FBTyxxQkFBcUIsQ0FDMUIsR0FBRyxDQUFDLElBQUksQ0FDTixLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsRUFDeEIsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxlQUFlO0tBQ25DLEVBQ0QsSUFBSSxDQUNMLENBQUM7QUFDSixDQUFDO0FBQ0QsTUFBTSxVQUFVLFVBQVUsQ0FBVyxHQUF3QixFQUFFLElBQW1CLEVBQUUsTUFBVTtJQUM1RixPQUFPLHFCQUFxQixDQUMxQixHQUFHLENBQUMsSUFBSSxDQUNOLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLEtBQUssQ0FBQztJQUN6QiwyQkFBMkI7SUFDM0IsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxNQUFXLENBQUMsQ0FDeEIsRUFDRCxJQUFJLENBQ0wsQ0FBQztBQUNKLENBQUM7QUFDRCxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsR0FBd0IsRUFBRSxJQUFtQjtJQUM1RSxPQUFPLFNBQVMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLEdBQUcsSUFBSSxFQUFFLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztBQUNsRSxDQUFDO0FBQ0QsTUFBTSxVQUFVLGlCQUFpQixDQUFDLEdBQXdCLEVBQUUsSUFBbUI7SUFDN0UsT0FBTyxVQUFVLENBQUMsR0FBRyxFQUFFLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxHQUFHLElBQUksRUFBRSxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7QUFDbkUsQ0FBQztBQUNELE1BQU0sVUFBVSxrQkFBa0IsQ0FBVSxHQUFrQixFQUFFLElBQW1CO0lBQ2pGLE9BQU8sV0FBVyxDQUFDLEdBQUcsRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsR0FBRyxJQUFJLEVBQUUsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO0FBQ3BFLENBQUM7QUFDRCxNQUFNLFVBQVUsWUFBWSxDQUFVLEdBQWtCLEVBQUUsSUFBbUI7SUFDM0UsT0FBTyxxQkFBcUIsQ0FDMUIsR0FBRyxFQUNILEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxHQUFHLElBQUksRUFBRSxDQUM3QixDQUFDLFNBQVMsRUFBRSxDQUFDO0FBQ2hCLENBQUM7QUFDRCxNQUFNLFVBQVUsYUFBYSxDQUFVLE1BQThCO0lBQ25FLE9BQU8sQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsUUFBNkIsRUFBRSxLQUFLLEVBQUUsRUFBRTtRQUNwRSxZQUFZO1FBQ1osSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2QsT0FBTyxDQUNMLEtBQUssRUFBRTtnQkFDTCxxREFBcUQ7aUJBQ3BELElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUM5QixDQUFDO1FBQ0osQ0FBQztRQUNELGFBQWE7UUFDYixPQUFPLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUNuQyxLQUFLLEVBQUU7WUFDTCx1Q0FBdUM7YUFDdEMsSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQ2hELENBQUM7SUFDSixDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDWCxDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLE9BQU8sQ0FBQyxTQUEwQixFQUFFLElBQXFCO0lBQzdFLElBQUksU0FBUyxFQUFFO1FBQUUsT0FBTyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7SUFFMUMsTUFBTSxNQUFNLEdBQUcsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEdBQUcsQ0FBQztJQUNqRCxNQUFNLE9BQU8sR0FBRyxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksTUFBTSxDQUFDO0lBQ2pELE1BQU0sS0FBSyxHQUF3QixLQUFLLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDLElBQUk7SUFDNUQsY0FBYztJQUNkLHlEQUF5RDtJQUN6RCxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLFNBQVMsRUFBRSxDQUFDLEVBQzFCLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQ2pCLENBQUM7SUFFRixNQUFNLGtCQUFrQixDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztBQUN4QyxDQUFDO0FBRUQsTUFBTSxVQUFVLFdBQVcsQ0FBQyxVQUErQixFQUFFLElBQXFCO0lBQ2hGLElBQUksR0FBRyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsR0FBRyxJQUFJLEVBQUUsQ0FBQztJQUNwQyw0QkFBNEI7SUFDNUIsSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUM3QixVQUFVLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7SUFDckUsQ0FBQztJQUNELE9BQU8sU0FBUyxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztBQUNqRCxDQUFDO0FBRUQsTUFBTSxVQUFVLFlBQVksQ0FBQyxVQUErQixFQUFFLElBQXFCO0lBQ2pGLE9BQU8sV0FBVztJQUNoQixvQkFBb0I7SUFDcEIsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxLQUFLLENBQUMsQ0FBQyxFQUN4QyxJQUFJLENBQ0wsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmaXJzdFZhbHVlRnJvbSwgT2JzZXJ2YWJsZSwgdGltZXIgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbHRlciwgZmlyc3QsIG1hcCwgc3dpdGNoTWFwLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBpc05vdE5pbCB9IGZyb20gJy4vZnVuY3Rpb25zJztcbmltcG9ydCB7IFByZWRpY2F0ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgRmlyc3RPcHRpb25zIHtcbiAgdGltZW91dD86IG51bWJlcjtcbiAgc3RvcD86IE9ic2VydmFibGU8YW55PjtcbiAgc3RvcEVycm9yPzogYm9vbGVhbiB8IHN0cmluZyB8IEVycm9yO1xufVxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgV2FpdEZvck9wdGlvbnMgZXh0ZW5kcyBGaXJzdE9wdGlvbnMge1xuICBkdWVUaW1lPzogbnVtYmVyO1xuICBjaGVja1BlcmlvZD86IG51bWJlcjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZpbHRlck5vdE5pbDxUID0gYW55PihvYnM6IE9ic2VydmFibGU8VD4pOiBPYnNlcnZhYmxlPFQ+IHtcbiAgcmV0dXJuIG9icy5waXBlKGZpbHRlcihpc05vdE5pbCkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZmlsdGVyVHJ1ZShvYnM6IE9ic2VydmFibGU8Ym9vbGVhbj4pOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgcmV0dXJuIG9icy5waXBlKGZpbHRlcigodikgPT4gdiA9PT0gdHJ1ZSkpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGZpbHRlckZhbHNlKG9iczogT2JzZXJ2YWJsZTxib29sZWFuPik6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICByZXR1cm4gb2JzLnBpcGUoZmlsdGVyKCh2KSA9PiB2ID09PSBmYWxzZSkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZGVjb3JhdGVXaXRoVGFrZVVudGlsPFQgPSBhbnk+KG9iczogT2JzZXJ2YWJsZTxUPiwgb3B0cz86IEZpcnN0T3B0aW9ucyk6IE9ic2VydmFibGU8VD4ge1xuICAvLyBTZXQgdGFrZSB1bnRpbCBub3RpZmllclxuICBsZXQgdGFrZVVudGlsJDogT2JzZXJ2YWJsZTxhbnk+ID0gb3B0cz8uc3RvcCB8fCAob3B0cz8udGltZW91dCAmJiB0aW1lcihvcHRzLnRpbWVvdXQpKTtcblxuICBpZiAoIXRha2VVbnRpbCQpIHJldHVybiBvYnM7IC8vIFNraXBcblxuICAvLyBXaGVuIHN0b3AsIHRocm93IGFuIGVycm9yICh1c2VmdWwgd2hlbiB1c2VkIHdpdGggYSB0b1Byb21pc2UoKSlcbiAgaWYgKG9wdHMuc3RvcEVycm9yKSB7XG4gICAgbGV0IGVycm9yOiBFcnJvcjtcbiAgICBpZiAob3B0cy5zdG9wRXJyb3IgPT09IHRydWUpIHtcbiAgICAgIGVycm9yID0gbmV3IEVycm9yKG9wdHMudGltZW91dCA/IGBUaW1lb3V0ICR7b3B0cy50aW1lb3V0fW1zYCA6IGBzdG9wYCk7XG4gICAgfSBlbHNlIGlmICh0eXBlb2Ygb3B0cy5zdG9wRXJyb3IgPT09ICdzdHJpbmcnKSB7XG4gICAgICBlcnJvciA9IG5ldyBFcnJvcihvcHRzLnN0b3BFcnJvcik7XG4gICAgfSBlbHNlIHtcbiAgICAgIGVycm9yID0gb3B0cy5zdG9wRXJyb3I7XG4gICAgfVxuICAgIHRha2VVbnRpbCQgPSB0YWtlVW50aWwkLnBpcGUoXG4gICAgICBtYXAoKCkgPT4ge1xuICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiBvYnMucGlwZSh0YWtlVW50aWwodGFrZVVudGlsJCkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZmlyc3ROb3ROaWw8VCA9IGFueT4ob2JzOiBPYnNlcnZhYmxlPFQ+LCBvcHRzPzogRmlyc3RPcHRpb25zKTogT2JzZXJ2YWJsZTxUPiB7XG4gIHJldHVybiBkZWNvcmF0ZVdpdGhUYWtlVW50aWwob2JzLnBpcGUoZmlyc3QoaXNOb3ROaWwpKSwgb3B0cyk7XG59XG5leHBvcnQgZnVuY3Rpb24gZmlyc3RUcnVlPFQgPSB2b2lkPihvYnM6IE9ic2VydmFibGU8Ym9vbGVhbj4sIG9wdHM/OiBGaXJzdE9wdGlvbnMsIHJlc3VsdD86IFQpOiBPYnNlcnZhYmxlPFQ+IHtcbiAgcmV0dXJuIGRlY29yYXRlV2l0aFRha2VVbnRpbChcbiAgICBvYnMucGlwZShcbiAgICAgIGZpcnN0KCh2KSA9PiB2ID09PSB0cnVlKSxcbiAgICAgIG1hcCgoXykgPT4gcmVzdWx0KSAvLyBDb252ZXJ0IHRvIFRcbiAgICApLFxuICAgIG9wdHNcbiAgKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBmaXJzdEZhbHNlPFQgPSB2b2lkPihvYnM6IE9ic2VydmFibGU8Ym9vbGVhbj4sIG9wdHM/OiBGaXJzdE9wdGlvbnMsIHJlc3VsdD86IFQpOiBPYnNlcnZhYmxlPFQ+IHtcbiAgcmV0dXJuIGRlY29yYXRlV2l0aFRha2VVbnRpbChcbiAgICBvYnMucGlwZShcbiAgICAgIGZpcnN0KCh2KSA9PiB2ID09PSBmYWxzZSksXG4gICAgICAvLyBDb252ZXJ0IHRvIGV4cGVjdGVkIHR5cGVcbiAgICAgIG1hcCgoXykgPT4gcmVzdWx0IGFzIFQpXG4gICAgKSxcbiAgICBvcHRzXG4gICk7XG59XG5leHBvcnQgZnVuY3Rpb24gZmlyc3RUcnVlUHJvbWlzZShvYnM6IE9ic2VydmFibGU8Ym9vbGVhbj4sIG9wdHM/OiBGaXJzdE9wdGlvbnMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgcmV0dXJuIGZpcnN0VHJ1ZShvYnMsIHsgc3RvcEVycm9yOiB0cnVlLCAuLi5vcHRzIH0pLnRvUHJvbWlzZSgpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGZpcnN0RmFsc2VQcm9taXNlKG9iczogT2JzZXJ2YWJsZTxib29sZWFuPiwgb3B0cz86IEZpcnN0T3B0aW9ucyk6IFByb21pc2U8dm9pZD4ge1xuICByZXR1cm4gZmlyc3RGYWxzZShvYnMsIHsgc3RvcEVycm9yOiB0cnVlLCAuLi5vcHRzIH0pLnRvUHJvbWlzZSgpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGZpcnN0Tm90TmlsUHJvbWlzZTxUID0gYW55PihvYnM6IE9ic2VydmFibGU8VD4sIG9wdHM/OiBGaXJzdE9wdGlvbnMpOiBQcm9taXNlPFQ+IHtcbiAgcmV0dXJuIGZpcnN0Tm90TmlsKG9icywgeyBzdG9wRXJyb3I6IHRydWUsIC4uLm9wdHMgfSkudG9Qcm9taXNlKCk7XG59XG5leHBvcnQgZnVuY3Rpb24gZmlyc3RQcm9taXNlPFQgPSBhbnk+KG9iczogT2JzZXJ2YWJsZTxUPiwgb3B0cz86IEZpcnN0T3B0aW9ucyk6IFByb21pc2U8VD4ge1xuICByZXR1cm4gZGVjb3JhdGVXaXRoVGFrZVVudGlsKFxuICAgIG9icyxcbiAgICB7IHN0b3BFcnJvcjogdHJ1ZSwgLi4ub3B0cyB9XG4gICkudG9Qcm9taXNlKCk7XG59XG5leHBvcnQgZnVuY3Rpb24gY2hhaW5Qcm9taXNlczxUID0gYW55PihkZWZlcnM6ICgoKSA9PiBQcm9taXNlPGFueT4pW10pOiBQcm9taXNlPFRbXT4ge1xuICByZXR1cm4gKGRlZmVycyB8fCBbXSkucmVkdWNlKChwcmV2aW91czogUHJvbWlzZTxhbnk+IHwgbnVsbCwgZGVmZXIpID0+IHtcbiAgICAvLyBGaXJzdCBqb2JcbiAgICBpZiAoIXByZXZpb3VzKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICBkZWZlcigpXG4gICAgICAgICAgLy8gSW5pdCB0aGUgZmluYWwgcmVzdWx0IGFycmF5LCB3aXRoIHRoZSBmaXJzdCByZXN1bHRcbiAgICAgICAgICAudGhlbigoam9iUmVzKSA9PiBbam9iUmVzXSlcbiAgICAgICk7XG4gICAgfVxuICAgIC8vIE90aGVyIGpvYnNcbiAgICByZXR1cm4gcHJldmlvdXMudGhlbigoZmluYWxSZXN1bHQpID0+XG4gICAgICBkZWZlcigpXG4gICAgICAgIC8vIEFkZCBqb2IgcmVzdWx0IHRvIGZpbmFsIHJlc3VsdCBhcnJheVxuICAgICAgICAudGhlbigoam9iUmVzKSA9PiBmaW5hbFJlc3VsdC5jb25jYXQoam9iUmVzKSlcbiAgICApO1xuICB9LCBudWxsKTtcbn1cblxuLyoqXG4gKiBXYWl0IGZvcm0gYSBwcmVkaWNhdGUgcmV0dXJuIHRydWUuIFRoaXMgbmVlZCB0byBpbXBsZW1lbnQgQXBwRm9ybVV0aWxzLndhaXRXaGlsZVBlbmRpbmcoKSwgQXBwRm9ybVV0aWxzLndhaXRJZGxlKClcbiAqXG4gKiBAcGFyYW0gcHJlZGljYXRlXG4gKiBAcGFyYW0gb3B0c1xuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gd2FpdEZvcihwcmVkaWNhdGU6IFByZWRpY2F0ZTx2b2lkPiwgb3B0cz86IFdhaXRGb3JPcHRpb25zKTogUHJvbWlzZTx2b2lkPiB7XG4gIGlmIChwcmVkaWNhdGUoKSkgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuXG4gIGNvbnN0IHBlcmlvZCA9IChvcHRzICYmIG9wdHMuY2hlY2tQZXJpb2QpIHx8IDMwMDtcbiAgY29uc3QgZHVlVGltZSA9IChvcHRzICYmIG9wdHMuZHVlVGltZSkgfHwgcGVyaW9kO1xuICBjb25zdCB3YWl0JDogT2JzZXJ2YWJsZTxib29sZWFuPiA9IHRpbWVyKGR1ZVRpbWUsIHBlcmlvZCkucGlwZShcbiAgICAvLyBGb3IgREVCVUcgOlxuICAgIC8vdGFwKCgpID0+IGNvbnNvbGUuZGVidWcoXCJXYWl0aW5nIGZvcm0gaWRsZS4uLlwiLCBmb3JtKSksXG4gICAgZmlsdGVyKChfKSA9PiBwcmVkaWNhdGUoKSksXG4gICAgbWFwKChfKSA9PiB0cnVlKVxuICApO1xuXG4gIGF3YWl0IGZpcnN0Tm90TmlsUHJvbWlzZSh3YWl0JCwgb3B0cyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB3YWl0Rm9yVHJ1ZShvYnNlcnZhYmxlOiBPYnNlcnZhYmxlPGJvb2xlYW4+LCBvcHRzPzogV2FpdEZvck9wdGlvbnMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgb3B0cyA9IHsgc3RvcEVycm9yOiB0cnVlLCAuLi5vcHRzIH07XG4gIC8vIGR1ZVRpbWUgKHdpdGhvdXQgdGltZW91dClcbiAgaWYgKG9wdHMgJiYgb3B0cy5kdWVUaW1lID4gMCkge1xuICAgIG9ic2VydmFibGUgPSB0aW1lcihvcHRzLmR1ZVRpbWUpLnBpcGUoc3dpdGNoTWFwKCgpID0+IG9ic2VydmFibGUpKTtcbiAgfVxuICByZXR1cm4gZmlyc3RUcnVlKG9ic2VydmFibGUsIG9wdHMpLnRvUHJvbWlzZSgpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gd2FpdEZvckZhbHNlKG9ic2VydmFibGU6IE9ic2VydmFibGU8Ym9vbGVhbj4sIG9wdHM/OiBXYWl0Rm9yT3B0aW9ucyk6IFByb21pc2U8dm9pZD4ge1xuICByZXR1cm4gd2FpdEZvclRydWUoXG4gICAgLy8gSW52ZXJzZSB0aGUgbG9naWNcbiAgICBvYnNlcnZhYmxlLnBpcGUobWFwKCh2KSA9PiB2ID09PSBmYWxzZSkpLFxuICAgIG9wdHNcbiAgKTtcbn1cbiJdfQ==
@@ -41,26 +41,31 @@ export class InMemoryEntitiesService extends StartableObservableService {
41
41
  super(null);
42
42
  this.dataType = dataType;
43
43
  this.filterType = filterType;
44
- options = {
45
- onSort: this.sort,
46
- ...options,
47
- };
48
- this._sortFn = options.onSort;
49
- this._onLoad = options.onLoad;
50
- this._onSaveFn = options.onSave;
51
- this._equalsFn = options.equals;
52
- this._filterFnFactory =
53
- options.filterFnFactory ||
54
- ((f) => {
55
- const filter = this.asFilter(f);
56
- if (filter instanceof EntityFilter) {
57
- return filter.asFilterFn();
58
- }
59
- return undefined;
60
- });
61
44
  this._startByReadyFunction = false; // Need setValue() to be called, to start the service
45
+ this.setOptions(options);
46
+ }
47
+ /**
48
+ * Configures and sets options for the instance.
49
+ *
50
+ * @param {SO} options - An object containing configuration options such as `onSort`, `onLoad`, `onSave`, `equals`, `filterFnFactory`, and `sortByReplacement`.
51
+ * @return {void} This method does not return a value.
52
+ */
53
+ setOptions(options) {
54
+ this._sortFn = options?.onSort ?? this._sortFn ?? this.sort;
55
+ this._onLoad = options?.onLoad ?? this._onLoad;
56
+ this._onSaveFn = options?.onSave ?? this._onSaveFn;
57
+ this._equalsFn = options?.equals ?? this._equalsFn;
58
+ this._filterFnFactory =
59
+ options?.filterFnFactory ?? this._filterFnFactory ?? ((f) => {
60
+ const filter = this.asFilter(f);
61
+ if (filter instanceof EntityFilter) {
62
+ return filter.asFilterFn();
63
+ }
64
+ return undefined;
65
+ });
62
66
  this.sortByReplacement = {
63
- ...options.sortByReplacement,
67
+ ...this.sortByReplacement,
68
+ ...options?.sortByReplacement,
64
69
  };
65
70
  }
66
71
  async ngOnStart(data) {
@@ -350,4 +355,4 @@ export class InMemoryEntitiesService extends StartableObservableService {
350
355
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: InMemoryEntitiesService, decorators: [{
351
356
  type: Directive
352
357
  }], ctorParameters: () => [{ type: undefined }, { type: undefined }, { type: undefined }] });
353
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtb3J5LWVudGl0eS1zZXJ2aWNlLmNsYXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zaGFyZWQvc2VydmljZXMvbWVtb3J5LWVudGl0eS1zZXJ2aWNlLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsS0FBSyxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQzFELE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkUsT0FBTyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsZUFBZSxFQUFFLFFBQVEsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUc5RSxPQUFPLEVBQUUsU0FBUyxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxXQUFXLEVBQVcsTUFBTSx3Q0FBd0MsQ0FBQztBQUM5RSxPQUFPLEVBQUUsWUFBWSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDekYsT0FBTyxFQUFFLGlCQUFpQixFQUFrQixNQUFNLGdCQUFnQixDQUFDO0FBQ25FLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDOztBQWVsRixXQUFXO0FBRVgsa0VBQWtFO0FBQ2xFLE1BQU0sT0FBTyx1QkFNWCxTQUFRLDBCQUFvQztJQXVDaEM7SUFDQTtJQXJDWixLQUFLLEdBQUcsS0FBSyxDQUFDO0lBRU4sV0FBVyxHQUFRLElBQUksQ0FBQztJQUV2QixZQUFZLEdBQUcsSUFBSSxlQUFlLENBQVUsS0FBSyxDQUFDLENBQUM7SUFDbkQsYUFBYSxHQUFHLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQyxDQUFDO0lBRTFDLGlCQUFpQixDQUE0QjtJQUUvQyxPQUFPLENBQXFFO0lBQzVFLE9BQU8sQ0FBb0M7SUFDM0MsU0FBUyxDQUFvQztJQUM3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QUVTLFdBQVc7UUFDbkIsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQzdCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pDLENBQUM7SUFDSCxDQUFDO3dHQXRaVSx1QkFBdUI7NEZBQXZCLHVCQUF1Qjs7NEZBQXZCLHVCQUF1QjtrQkFGbkMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgbWVyZ2UsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbHRlciwgbWFwLCBtZXJnZU1hcCwgdGFrZVVudGlsLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBpc0VtcHR5QXJyYXksIGlzTmlsLCBpc05vdEVtcHR5QXJyYXksIGlzTm90TmlsIH0gZnJvbSAnLi4vZnVuY3Rpb25zJztcbmltcG9ydCB7IEVudGl0aWVzU2VydmljZUxvYWRPcHRpb25zLCBFbnRpdGllc1NlcnZpY2VXYXRjaE9wdGlvbnMsIElFbnRpdGllc1NlcnZpY2UsIExvYWRSZXN1bHQgfSBmcm9tICcuL2VudGl0eS1zZXJ2aWNlLmNsYXNzJztcbmltcG9ydCB7IFNvcnREaXJlY3Rpb24gfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zb3J0JztcbmltcG9ydCB7IERpcmVjdGl2ZSwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBFbnRpdHlVdGlscywgSUVudGl0eSB9IGZyb20gJy4uLy4uL2NvcmUvc2VydmljZXMvbW9kZWwvZW50aXR5Lm1vZGVsJztcbmltcG9ydCB7IEVudGl0eUZpbHRlciwgRW50aXR5RmlsdGVyVXRpbHMgfSBmcm9tICcuLi8uLi9jb3JlL3NlcnZpY2VzL21vZGVsL2ZpbHRlci5tb2RlbCc7XG5pbXBvcnQgeyBmaXJzdEZhbHNlUHJvbWlzZSwgV2FpdEZvck9wdGlvbnMgfSBmcm9tICcuLi9vYnNlcnZhYmxlcyc7XG5pbXBvcnQgeyBTdGFydGFibGVPYnNlcnZhYmxlU2VydmljZSB9IGZyb20gJy4vc3RhcnRhYmxlLW9ic2VydmFibGUtc2VydmljZS5jbGFzcyc7XG5pbXBvcnQgeyBGaWx0ZXJGbiwgRmlsdGVyRm5GYWN0b3J5IH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEluTWVtb3J5RW50aXRpZXNTZXJ2aWNlT3B0aW9uczxULCBGPiB7XG4gIG9uU29ydD86IChkYXRhOiBUW10sIHNvcnRCeT86IHN0cmluZywgc29ydERpcmVjdGlvbj86IFNvcnREaXJlY3Rpb24pID0+IFRbXTtcbiAgb25Mb2FkPzogKGRhdGE6IFRbXSkgPT4gVFtdIHwgUHJvbWlzZTxUW10+O1xuICBvblNhdmU/OiAoZGF0YTogVFtdKSA9PiBUW10gfCBQcm9taXNlPFRbXT47XG4gIGVxdWFscz86IChkMTogVCwgZDI6IFQpID0+IGJvb2xlYW47XG5cbiAgZmlsdGVyRm5GYWN0b3J5PzogRmlsdGVyRm5GYWN0b3J5PFQsIEY+O1xuICBmaWx0ZXJGbj86IEZpbHRlckZuPFQ+O1xuXG4gIHNvcnRCeVJlcGxhY2VtZW50PzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcbn1cblxuLy8gQGR5bmFtaWNcbkBEaXJlY3RpdmUoKVxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9kaXJlY3RpdmUtY2xhc3Mtc3VmZml4XG5leHBvcnQgY2xhc3MgSW5NZW1vcnlFbnRpdGllc1NlcnZpY2U8XG4gICAgVCBleHRlbmRzIElFbnRpdHk8VCwgSUQ+LFxuICAgIEYgPSBhbnksXG4gICAgSUQgPSBudW1iZXIsXG4gICAgTyBleHRlbmRzIEVudGl0aWVzU2VydmljZVdhdGNoT3B0aW9ucyA9IEVudGl0aWVzU2VydmljZVdhdGNoT3B0aW9ucyxcbiAgPlxuICBleHRlbmRzIFN0YXJ0YWJsZU9ic2VydmFibGVTZXJ2aWNlPFRbXSwgVFtdPlxuICBpbXBsZW1lbnRzIElFbnRpdGllc1NlcnZpY2U8VCwgRiwgTz4sIE9uRGVzdHJveVxue1xuICBkZWJ1ZyA9IGZhbHNlO1xuXG4gIHByaXZhdGUgX2hpZGRlbkRhdGE6IFRbXSA9IG51bGw7XG5cbiAgcmVhZG9ubHkgZGlydHlTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gIHJlYWRvbmx5IHNhdmluZ1N1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgc29ydEJ5UmVwbGFjZW1lbnQ6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfc29ydEZuOiAoZGF0YTogVFtdLCBzb3J0Qnk/OiBzdHJpbmcsIHNvcnREaXJlY3Rpb24/OiBTb3J0RGlyZWN0aW9uKSA9PiBUW107XG4gIHByaXZhdGUgcmVhZG9ubHkgX29uTG9hZDogKGRhdGE6IFRbXSkgPT4gVFtdIHwgUHJvbWlzZTxUW10+O1xuICBwcml2YXRlIHJlYWRvbmx5IF9vblNhdmVGbjogKGRhdGE6IFRbXSkgPT4gVFtdIHwgUHJvbWlzZTxUW10+O1xuICBwcml2YXRlIHJlYWRvbmx5IF9lcXVhbHNGbjogKGQxOiBULCBkMjogVCkgPT4gYm9vbGVhbjtcbiAgcHJpdmF0ZSByZWFkb25seSBfZmlsdGVyRm5GYWN0b3J5OiBGaWx0ZXJGbkZhY3Rvcnk8VCwgRj47XG5cbiAgZ2V0IGRlZmF1bHRGZXRjaFBvbGljeSgpOiAnY2FjaGUtb25seScge1xuICAgIHJldHVybiAnY2FjaGUtb25seSc7XG4gIH1cblxuICBzZXQgdmFsdWUoZGF0YTogVFtdKSB7XG4gICAgdGhpcy5zZXRWYWx1ZShkYXRhKTtcbiAgfVxuXG4gIGdldCB2YWx1ZSgpOiBUW10ge1xuICAgIHJldHVybiB0aGlzLmRhdGFTdWJqZWN0LmdldFZhbHVlKCk7XG4gIH1cblxuICBnZXQgc2F2aW5nKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnNhdmluZ1N1YmplY3QudmFsdWU7XG4gIH1cblxuICBnZXQgZGlydHkoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZGlydHlTdWJqZWN0LnZhbHVlO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIGRhdGFUeXBlOiBuZXcgKCkgPT4gVCxcbiAgICBwcm90ZWN0ZWQgZmlsdGVyVHlwZTogbmV3ICgpID0+IEYsXG4gICAgb3B0aW9ucz86IEluTWVtb3J5RW50aXRpZXNTZXJ2aWNlT3B0aW9uczxULCBGPlxuICApIHtcbiAgICBzdXBlcihudWxsKTtcbiAgICBvcHRpb25zID0ge1xuICAgICAgb25Tb3J0OiB0aGlzLnNvcnQsXG4gICAgICAuLi5vcHRpb25zLFxuICAgIH07XG5cbiAgICB0aGlzLl9zb3J0Rm4gPSBvcHRpb25zLm9uU29ydDtcbiAgICB0aGlzLl9vbkxvYWQgPSBvcHRpb25zLm9uTG9hZDtcbiAgICB0aGlzLl9vblNhdmVGbiA9IG9wdGlvbnMub25TYXZlO1xuICAgIHRoaXMuX2VxdWFsc0ZuID0gb3B0aW9ucy5lcXVhbHM7XG4gICAgdGhpcy5fZmlsdGVyRm5GYWN0b3J5ID1cbiAgICAgIG9wdGlvbnMuZmlsdGVyRm5GYWN0b3J5IHx8XG4gICAgICAoKGYpID0+IHtcbiAgICAgICAgY29uc3QgZmlsdGVyID0gdGhpcy5hc0ZpbHRlcihmKSBhcyBGO1xuICAgICAgICBpZiAoZmlsdGVyIGluc3RhbmNlb2YgRW50aXR5RmlsdGVyKSB7XG4gICAgICAgICAgcmV0dXJuIGZpbHRlci5hc0ZpbHRlckZuKCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgIH0pO1xuICAgIHRoaXMuX3N0YXJ0QnlSZWFkeUZ1bmN0aW9uID0gZmFsc2U7IC8vIE5lZWQgc2V0VmFsdWUoKSB0byBiZSBjYWxsZWQsIHRvIHN0YXJ0IHRoZSBzZXJ2aWNlXG5cbiAgICB0aGlzLnNvcnRCeVJlcGxhY2VtZW50ID0ge1xuICAgICAgLi4ub3B0aW9ucy5zb3J0QnlSZXBsYWNlbWVudCxcbiAgICB9O1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIG5nT25TdGFydChkYXRhPzogVFtdKTogUHJvbWlzZTxUW10+IHtcbiAgICBpZiAoIWRhdGEpIHRocm93IG5ldyBFcnJvcignTWlzc2luZyByZXF1aXJlZCBkYXRhLCB0byBzdGFydCB0aGlzIHNlcnZpY2UnKTtcbiAgICBpZiAodGhpcy5kZWJ1ZykgY29uc29sZS5kZWJ1ZygnW21lbW9yeS1kYXRhLXNlcnZpY2VdIFN0YXJ0aW5nLi4uJyk7XG4gICAgdGhpcy5faGlkZGVuRGF0YSA9IFtdO1xuICAgIHRoaXMubWFya0FzU2F2ZWQoKTtcbiAgICB0aGlzLm1hcmtBc1ByaXN0aW5lKCk7XG4gICAgcmV0dXJuIGRhdGE7XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgbmdPblN0b3AoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKHRoaXMuZGVidWcpIGNvbnNvbGUuZGVidWcoJ1ttZW1vcnktZGF0YS1zZXJ2aWNlXSBTdG9wcGluZy4uLicpO1xuICAgIHRoaXMuX2hpZGRlbkRhdGEgPSBudWxsO1xuICAgIHRoaXMubWFya0FzU2F2ZWQoKTtcbiAgICB0aGlzLm1hcmtBc1ByaXN0aW5lKCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLnN0b3AoKTtcbiAgfVxuXG4gIHNldFZhbHVlKGRhdGE6IFRbXSkge1xuICAgIC8vIElmIHNlcnZpY2UgYWxyZWFkeSBzdGFydGVkXG4gICAgaWYgKHRoaXMuc3RhcnRlZCkge1xuICAgICAgLy8gVXBkYXRlIHRoZSBkYXRhLCBpZiBjaGFuZ2VkXG4gICAgICBpZiAodGhpcy5kYXRhU3ViamVjdC52YWx1ZSAhPT0gZGF0YSkge1xuICAgICAgICB0aGlzLl9oaWRkZW5EYXRhID0gW107XG4gICAgICAgIHRoaXMuZGF0YVN1YmplY3QubmV4dChkYXRhKTtcbiAgICAgIH1cblxuICAgICAgLy8gUmVzZXQgZGlydHkgYW5kIHNhdmluZyBzdGF0ZVxuICAgICAgLy8gKEZpeCBPYnNCaW8gaXNzdWUgb24gc2FtcGxlcyB0YWJsZSA6IHN0aWxsIGRpcnR5IGFmdGVyIHNldHRpbmcgdGhlIHNhbWUgdmFsdWUgYWdhaW4pXG4gICAgICB0aGlzLm1hcmtBc1NhdmVkKCk7XG4gICAgICB0aGlzLm1hcmtBc1ByaXN0aW5lKCk7XG4gICAgfVxuICAgIC8vIElmIHNlcnZpY2Ugbm90IHN0YXJ0ZWQgeWV0LCB0aGVuIHN0YXJ0IGl0LCB1c2luZyBnaXZlbiBkYXRhXG4gICAgZWxzZSB7XG4gICAgICB0aGlzLnN0YXJ0KGRhdGEpO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGxvYWRBbGwoXG4gICAgb2Zmc2V0OiBudW1iZXIsXG4gICAgc2l6ZTogbnVtYmVyLFxuICAgIHNvcnRCeT86IHN0cmluZyxcbiAgICBzb3J0RGlyZWN0aW9uPzogU29ydERpcmVjdGlvbixcbiAgICBmaWx0ZXI/OiBGLFxuICAgIG9wdHM/OiBFbnRpdGllc1NlcnZpY2VMb2FkT3B0aW9ucyAmIHsgdXBkYXRlSGlkZGVuRGF0YT86IGJvb2xlYW4gfVxuICApOiBQcm9taXNlPExvYWRSZXN1bHQ8VD4+IHtcbiAgICBvZmZzZXQgPSBvZmZzZXQgPj0gMCA/IG9mZnNldCA6IDA7XG4gICAgc2l6ZSA9IHNpemUgPj0gMCA/IHNpemUgOiAtMTtcblxuICAgIGNvbnN0IG9yaWdpbmFsRGF0YSA9IHRoaXMuZGF0YVN1YmplY3QudmFsdWU7XG4gICAgaWYgKGlzTmlsKG9yaWdpbmFsRGF0YSkpIHtcbiAgICAgIGNvbnNvbGUud2FybignW21lbW9yeS1kYXRhLXNlcnZpY2VdIENhbm5vdCBsb2FkIGFsbDogbm8gdmFsdWUgc2V0LiBXaWxsIHJldHVybiBlbXB0eSByZXN1bHQnKTtcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgLy8gV2FpdCBzZXJ2aWNlIGlzIHJlYWR5XG4gICAgICBhd2FpdCB0aGlzLnJlYWR5KCk7XG5cbiAgICAgIC8vIFdhaXQgd2hpbGUgYnVzeSAoZS5nLiB3aGVuIHNhdmluZywgb3IgZGVsZXRpbmcpXG4gICAgICBhd2FpdCB0aGlzLndhaXRJZGxlKHsgc3RvcEVycm9yOiBmYWxzZSAvKmF2b2lkIGVycm9yIHdoZW4gc3RvcHBlZCovIH0pO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgLy8gU2hvdWxkIGJlIGEgc3RvcCBlcnJvcjogbG9nIGFuZCBjb250aW51ZVxuICAgICAgaWYgKCF0aGlzLnN0b3BwZWQpIGNvbnNvbGUuZXJyb3IoJ1VuZXhwZWN0ZWQgZXJyb3IsIHdoaWxlIHdhaXRpbmcgOicsIGVycik7XG4gICAgfVxuXG4gICAgLy8gTWFrZSBzdXJlIHNlcnZpY2UgaXMgbm90IHN0b3BwZWRcbiAgICBpZiAodGhpcy5zdG9wcGVkKSByZXR1cm4gdW5kZWZpbmVkO1xuXG4gICAgY29uc3QgZXhjbHVkZWREYXRhQnlGaWx0ZXI6IFRbXSA9IFtdO1xuICAgIGxldCBleGNsdWRlZERhdGFCeVBhZ2luYXRpb246IFRbXTtcblxuICAgIHRyeSB7XG4gICAgICBpZiAoaXNFbXB0eUFycmF5KG9yaWdpbmFsRGF0YSkpIHtcbiAgICAgICAgcmV0dXJuIHsgZGF0YTogW10sIHRvdGFsOiAwIH07XG4gICAgICB9XG5cbiAgICAgIC8vIEFwcGx5IHNvcnRcbiAgICAgIGxldCBkYXRhID0gdGhpcy5fc29ydEZuKG9yaWdpbmFsRGF0YSwgc29ydEJ5LCBzb3J0RGlyZWN0aW9uKTtcblxuICAgICAgaWYgKHRoaXMuX29uTG9hZCkge1xuICAgICAgICBkYXRhID0gYXdhaXQgdGhpcy5fb25Mb2FkKGRhdGEpO1xuICAgICAgfVxuXG4gICAgICAvLyBBcHBseSBmaWx0ZXIgKHdpbGwgdXBkYXRlIGhpZGRlbkRhdGEpXG4gICAgICBkYXRhID0gdGhpcy5maWx0ZXIoZGF0YSwgZmlsdGVyLCBleGNsdWRlZERhdGFCeUZpbHRlcik7XG5cbiAgICAgIC8vIENvbXB1dGUgdGhlIHRvdGFsIGxlbmd0aFxuICAgICAgY29uc3QgdG90YWwgPSBkYXRhLmxlbmd0aDtcblxuICAgICAgLy8gSWYgcGFnZSBzaXplPTAgKGUuZy4gb25seSBuZWVkIHRvdGFsKVxuICAgICAgaWYgKHNpemUgPT09IDApIHtcbiAgICAgICAgZXhjbHVkZWREYXRhQnlQYWdpbmF0aW9uID0gZGF0YTtcbiAgICAgICAgcmV0dXJuIHsgZGF0YTogW10sIHRvdGFsIH07XG4gICAgICB9XG5cbiAgICAgIC8vIFNsaWNlIGluIGEgcGFnZSAodXNpbmcgb2Zmc2V0IGFuZCBzaXplKVxuICAgICAgaWYgKG9mZnNldCA+IDApIHtcbiAgICAgICAgLy8gT2Zmc2V0IGFmdGVyIHRoZSBlbmQ6IG5vIHJlc3VsdFxuICAgICAgICBpZiAob2Zmc2V0ID49IGRhdGEubGVuZ3RoKSB7XG4gICAgICAgICAgZXhjbHVkZWREYXRhQnlQYWdpbmF0aW9uID0gZGF0YTtcbiAgICAgICAgICBkYXRhID0gW107XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZXhjbHVkZWREYXRhQnlQYWdpbmF0aW9uID1cbiAgICAgICAgICAgIHNpemUgPiAwICYmIG9mZnNldCArIHNpemUgPCBkYXRhLmxlbmd0aFxuICAgICAgICAgICAgICA/IC8vIFNsaWNlIHVzaW5nIGxpbWl0IHRvIHNpemVcbiAgICAgICAgICAgICAgICBkYXRhLnNsaWNlKDAsIG9mZnNldCkuY29uY2F0KGRhdGEuc2xpY2Uob2Zmc2V0ICsgc2l6ZSkpXG4gICAgICAgICAgICAgIDogLy8gU2xpY2Ugd2l0aG91dCBsaW1pdFxuICAgICAgICAgICAgICAgIGRhdGEuc2xpY2UoMCwgb2Zmc2V0KTtcblxuICAgICAgICAgIGRhdGEgPVxuICAgICAgICAgICAgc2l6ZSA+IDAgJiYgb2Zmc2V0ICsgc2l6ZSA8IGRhdGEubGVuZ3RoXG4gICAgICAgICAgICAgID8gLy8gU2xpY2UgdXNpbmcgbGltaXQgdG8gc2l6ZVxuICAgICAgICAgICAgICAgIGRhdGEuc2xpY2Uob2Zmc2V0LCBvZmZzZXQgKyBzaXplKVxuICAgICAgICAgICAgICA6IC8vIFNsaWNlIHdpdGhvdXQgbGltaXRcbiAgICAgICAgICAgICAgICBkYXRhLnNsaWNlKG9mZnNldCk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gQXBwbHkgYSBsaW1pdFxuICAgICAgZWxzZSBpZiAoc2l6ZSA+IDApIHtcbiAgICAgICAgZXhjbHVkZWREYXRhQnlQYWdpbmF0aW9uID0gZGF0YS5zbGljZShzaXplKTtcbiAgICAgICAgZGF0YSA9IGRhdGEuc2xpY2UoMCwgc2l6ZSk7XG4gICAgICB9XG5cbiAgICAgIC8vIE5vIGxpbWl0OlxuICAgICAgZWxzZSBpZiAoc2l6ZSA9PT0gLTEpIHtcbiAgICAgICAgLy8gS2VlcCBhbGwgZGF0YVxuICAgICAgfVxuXG4gICAgICAvLyAvIVxcIElmIGFscmVhZHkgb2JzZXJ2ZWQsIHRoZW4gYWx3YXlzIGNyZWF0ZSBhIGNvcHkgb2YgdGhlIG9yaWdpbmFsIGFycmF5XG4gICAgICAvLyBCZWNhdXNlIGRhdGFzb3VyY2Ugd2lsbCBvbmx5IHVwZGF0ZSBpZiB0aGUgYXJyYXkgY2hhbmdlZFxuICAgICAgaWYgKGRhdGEgPT09IG9yaWdpbmFsRGF0YSkge1xuICAgICAgICBkYXRhID0gZGF0YS5zbGljZSgpO1xuICAgICAgfVxuXG4gICAgICBjb25zdCByZXM6IExvYWRSZXN1bHQ8VD4gPSB7IGRhdGEsIHRvdGFsIH07XG5cbiAgICAgIGNvbnN0IG5leHRPZmZzZXQgPSBzaXplID4gMCA/IChvZmZzZXQgfHwgMCkgKyBzaXplIDogdG90YWw7XG4gICAgICBpZiAobmV4dE9mZnNldCA8IHRvdGFsKSB7XG4gICAgICAgIHJlcy5mZXRjaE1vcmUgPSBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgY29uc3QgcmVzID0gYXdhaXQgdGhpcy5sb2FkQWxsKG5leHRPZmZzZXQsIHNpemUsIHNvcnRCeSwgc29ydERpcmVjdGlvbiwgZmlsdGVyLCB7IC4uLm9wdHMsIHVwZGF0ZUhpZGRlbkRhdGE6IGZhbHNlIH0pO1xuICAgICAgICAgIC8vIFVwZGF0ZSBoaWRkZW4gZGF0YSAocmVtb3ZlIG5ldyBmZXRjaGVkIGl0ZW0pXG4gICAgICAgICAgaWYgKHJlcy5kYXRhPy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMuX2hpZGRlbkRhdGEgPSB0aGlzLl9oaWRkZW5EYXRhPy5maWx0ZXIoKGl0ZW0pID0+ICFyZXMuZGF0YS5pbmNsdWRlcyhpdGVtKSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiByZXM7XG4gICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIHJldHVybiByZXM7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIC8vIFJlbWVtYmVyIGhpZGRlbiBkYXRhXG4gICAgICBpZiAob3B0cz8udXBkYXRlSGlkZGVuRGF0YSAhPT0gZmFsc2UpIHtcbiAgICAgICAgdGhpcy5faGlkZGVuRGF0YSA9ICFleGNsdWRlZERhdGFCeVBhZ2luYXRpb24gPyBleGNsdWRlZERhdGFCeUZpbHRlciA6IGV4Y2x1ZGVkRGF0YUJ5RmlsdGVyLmNvbmNhdCguLi5leGNsdWRlZERhdGFCeVBhZ2luYXRpb24pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHdhdGNoQWxsKG9mZnNldDogbnVtYmVyLCBzaXplOiBudW1iZXIsIHNvcnRCeT86IHN0cmluZywgc29ydERpcmVjdGlvbj86IFNvcnREaXJlY3Rpb24sIGZpbHRlckRhdGE/OiBGLCBvcHRpb25zPzogYW55KTogT2JzZXJ2YWJsZTxMb2FkUmVzdWx0PFQ+PiB7XG4gICAgb2Zmc2V0ID0gb2Zmc2V0ID49IDAgPyBvZmZzZXQgOiAwO1xuICAgIHNpemUgPSBzaXplID49IDAgPyBzaXplIDogLTE7XG5cbiAgICByZXR1cm4gdGhpcy5kYXRhU3ViamVjdC5waXBlKFxuICAgICAgLy8gV2FybiBpZiB3YWl0aW5nIHZhbHVlIHRvIGJlIHNldFxuICAgICAgdGFwKChkYXRhKSA9PiB0aGlzLmRlYnVnICYmICFkYXRhICYmIGNvbnNvbGUuZGVidWcoJ1ttZW1vcnktZGF0YS1zZXJ2aWNlXSBXYWl0aW5nIHZhbHVlIHRvIGJlIHNldC4uLicpKSxcbiAgICAgIGZpbHRlcihpc05vdE5pbCksXG4gICAgICBtZXJnZU1hcCgoXykgPT4gdGhpcy5sb2FkQWxsKG9mZnNldCwgc2l6ZSwgc29ydEJ5LCBzb3J0RGlyZWN0aW9uLCBmaWx0ZXJEYXRhLCBvcHRpb25zKSksXG4gICAgICBmaWx0ZXIoaXNOb3ROaWwpLCAvLyBTa2lwIG5vIHJlc3VsdCAoZS5nLiB3aGVuIHN0b3BwZWQpXG4gICAgICB0YWtlVW50aWwodGhpcy5zdG9wU3ViamVjdClcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgc2F2ZUFsbChkYXRhOiBUW10sIG9wdGlvbnM/OiBhbnkpOiBQcm9taXNlPFRbXT4ge1xuICAgIGlmICghdGhpcy5kYXRhU3ViamVjdC52YWx1ZSkgdGhyb3cgbmV3IEVycm9yKCdbbWVtb3J5LXNlcnZpY2VdIENvdWxkIG5vdCBzYXZlLCBiZWNhdXNlIHZhbHVlIG5vdCBzZXQnKTtcblxuICAgIHRoaXMubWFya0FzU2F2aW5nKCk7XG5cbiAgICB0cnkge1xuICAgICAgLy8gUmVzdG9yZSBoaWRkZW4gZGF0YVxuICAgICAgaWYgKGlzTm90RW1wdHlBcnJheSh0aGlzLl9oaWRkZW5EYXRhKSkgZGF0YSA9IGRhdGEuY29uY2F0KC4uLnRoaXMuX2hpZGRlbkRhdGEpO1xuXG4gICAgICBpZiAodGhpcy5fb25TYXZlRm4pIHtcbiAgICAgICAgY29uc3QgcmVzID0gdGhpcy5fb25TYXZlRm4oZGF0YSk7XG4gICAgICAgIGRhdGEgPSByZXMgaW5zdGFuY2VvZiBQcm9taXNlID8gYXdhaXQgcmVzIDogcmVzO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmRhdGFTdWJqZWN0Lm5leHQoZGF0YSk7XG4gICAgICB0aGlzLm1hcmtBc0RpcnR5KCk7XG4gICAgICByZXR1cm4gZGF0YTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgdGhpcy5tYXJrQXNTYXZlZCgpO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGRlbGV0ZUFsbChkYXRhVG9SZW1vdmU6IFRbXSwgb3B0aW9ucz86IGFueSk6IFByb21pc2U8YW55PiB7XG4gICAgbGV0IGRhdGEgPSB0aGlzLmRhdGFTdWJqZWN0LnZhbHVlO1xuICAgIGlmICghZGF0YSkgdGhyb3cgbmV3IEVycm9yKCdbbWVtb3J5LXNlcnZpY2VdIENvdWxkIG5vdCBkZWxldGUsIGJlY2F1c2UgdmFsdWUgbm90IHNldCcpO1xuXG4gICAgdGhpcy5tYXJrQXNTYXZpbmcoKTtcblxuICAgIHRyeSB7XG4gICAgICAvLyBSZW1vdmUgZGVsZXRlZCBpdGVtLCBmcm9tIGRhdGFcbiAgICAgIGNvbnN0IHVwZGF0ZWREYXRhID0gZGF0YS5maWx0ZXIoKGVudGl0eSkgPT4ge1xuICAgICAgICBjb25zdCByZW1vdmVkID0gZGF0YVRvUmVtb3ZlLmZpbmRJbmRleCgoZW50aXR5VG9SZW1vdmUpID0+IHRoaXMuZXF1YWxzKGVudGl0eVRvUmVtb3ZlLCBlbnRpdHkpKSAhPT0gLTE7XG4gICAgICAgIHJldHVybiAhcmVtb3ZlZDtcbiAgICAgIH0pO1xuICAgICAgY29uc3QgZGVsZXRlQ291bnQgPSBkYXRhLmxlbmd0aCAtIHVwZGF0ZWREYXRhLmxlbmd0aDtcbiAgICAgIGlmIChkZWxldGVDb3VudCA+IDApIHtcbiAgICAgICAgZGF0YSA9IHVwZGF0ZWREYXRhO1xuICAgICAgICB0aGlzLmRhdGFTdWJqZWN0Lm5leHQoZGF0YSk7XG4gICAgICAgIHRoaXMubWFya0FzRGlydHkoKTtcbiAgICAgIH1cbiAgICB9IGZpbmFsbHkge1xuICAgICAgdGhpcy5tYXJrQXNTYXZlZCgpO1xuICAgIH1cbiAgfVxuXG4gIHNvcnQoZGF0YTogVFtdLCBzb3J0Qnk/OiBzdHJpbmcsIHNvcnREaXJlY3Rpb24/OiBTb3J0RGlyZWN0aW9uKTogVFtdIHtcbiAgICAvLyBNYWtlIHN1cmUgdG8gZmlsbCBzb3J0QnkgQkVGT1JFIGNoZWNraW5nIGluIHRoZSByZXBsYWNlbWVudCBtYXBcbiAgICBzb3J0QnkgPSBzb3J0QnkgfHwgJ2lkJztcbiAgICAvLyBSZXBsYWNlIHNvcnRCeSwgdXNpbmcgdGhlIHJlcGxhY2VtZW50IG1hcFxuICAgIHNvcnRCeSA9IHRoaXMuc29ydEJ5UmVwbGFjZW1lbnRbc29ydEJ5XSB8fCBzb3J0Qnk7XG5cbiAgICAvLyBFeGVjdXRlIHRoZSBzb3J0XG4gICAgcmV0dXJuIEVudGl0eVV0aWxzLnNvcnQoZGF0YSwgc29ydEJ5LCBzb3J0RGlyZWN0aW9uKTtcbiAgfVxuXG4gIGFzRmlsdGVyKHNvdXJjZTogUGFydGlhbDxGPik6IEYge1xuICAgIHJldHVybiBFbnRpdHlGaWx0ZXJVdGlscy5mcm9tT2JqZWN0KHNvdXJjZSwgdGhpcy5maWx0ZXJUeXBlKTtcbiAgfVxuXG4gIGFkZFNvcnRCeVJlcGxhY2VtZW50KHNvdXJjZTogc3RyaW5nLCB0YXJnZXQ6IHN0cmluZykge1xuICAgIHRoaXMuc29ydEJ5UmVwbGFjZW1lbnRbc291cmNlXSA9IHRhcmdldDtcbiAgfVxuXG4gIGVxdWFscyhkMTogVCwgZDI6IFQpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5fZXF1YWxzRm4pIHJldHVybiB0aGlzLl9lcXVhbHNGbihkMSwgZDIpO1xuICAgIHJldHVybiBkMSAmJiBkMS5lcXVhbHMgPyBkMS5lcXVhbHMoZDIpIDogRW50aXR5VXRpbHMuZXF1YWxzKGQxLCBkMiwgJ2lkJyk7XG4gIH1cblxuICAvKipcbiAgICogQ291bnQgZGF0YSBzdG9yZWQgYnkgdGhlIHNlcnZpY2UgKHdpdGhvdXQgaGlkZGVuIGRhdGEpLlxuICAgKlxuICAgKiBAcGFyYW0gb3B0c1xuICAgKi9cbiAgLy8gZ2V0IHZpc2libGVDb3VudCgpOiBudW1iZXIge1xuICAvLyAgIHJldHVybiAodGhpcy5kYXRhU3ViamVjdC52YWx1ZT8ubGVuZ3RoIHx8IDApO1xuICAvLyB9XG5cbiAgLyoqXG4gICAqIENvdW50IGRhdGEgc3RvcmVkIGJ5IHRoZSBzZXJ2aWNlICh3aXRob3V0IGhpZGRlbiBkYXRhKS5cbiAgICpcbiAgICogQHBhcmFtIG9wdHNcbiAgICogQGRlcHJlY2F0ZWQgVE9ETyBQbGVhc2UgcmVuYW1lIHRoaXMgZ2V0dGVyIGludG8gdmlzaWJsZUNvdW50IChhbmQgY3JlYXRlIGNvdW50ID0gaGlkZGVuQ291bnQgKyB2aXNpYmxlQ291bnQpXG4gICAqL1xuICBnZXQgY291bnQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5kYXRhU3ViamVjdC52YWx1ZT8ubGVuZ3RoIHx8IDA7XG4gIH1cblxuICBnZXQgaGlkZGVuQ291bnQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5faGlkZGVuRGF0YT8ubGVuZ3RoIHx8IDA7XG4gIH1cblxuICBhc3luYyB3YWl0SWRsZShvcHRzPzogV2FpdEZvck9wdGlvbnMpIHtcbiAgICBhd2FpdCB0aGlzLndhaXRXaGlsZVNhdmluZyhvcHRzKTtcbiAgfVxuXG4gIG1hcmtBc0RpcnR5KCkge1xuICAgIGlmICghdGhpcy5kaXJ0eVN1YmplY3QudmFsdWUpIHtcbiAgICAgIHRoaXMuZGlydHlTdWJqZWN0Lm5leHQodHJ1ZSk7XG4gICAgfVxuICB9XG5cbiAgbWFya0FzUHJpc3RpbmUoKSB7XG4gICAgaWYgKHRoaXMuZGlydHlTdWJqZWN0LnZhbHVlKSB7XG4gICAgICB0aGlzLmRpcnR5U3ViamVjdC5uZXh0KGZhbHNlKTtcbiAgICB9XG4gIH1cblxuICAvKiAtLSBwcm90ZWN0ZWQgbWV0aG9kcyAtLSAqL1xuXG4gIHByb3RlY3RlZCBmaWx0ZXIoZGF0YTogVFtdLCBfZmlsdGVyOiBGLCBoaWRkZW5EYXRhOiBUW10pOiBUW10ge1xuICAgIC8vIGlmIGZpbHRlciBpcyBEYXRhRmlsdGVyIGluc3RhbmNlLCB1c2UgaXRzIHRlc3QgZnVuY3Rpb25cbiAgICBjb25zdCBmaWx0ZXJGbiA9IHRoaXMuX2ZpbHRlckZuRmFjdG9yeSAmJiB0aGlzLl9maWx0ZXJGbkZhY3RvcnkoX2ZpbHRlcik7XG4gICAgaWYgKGZpbHRlckZuKSB7XG4gICAgICBjb25zdCBmaWx0ZXJlZERhdGEgPSBbXTtcblxuICAgICAgZGF0YS5mb3JFYWNoKCh2YWx1ZSkgPT4ge1xuICAgICAgICBpZiAoZmlsdGVyRm4odmFsdWUpKSBmaWx0ZXJlZERhdGEucHVzaCh2YWx1ZSk7XG4gICAgICAgIGVsc2UgaGlkZGVuRGF0YS5wdXNoKHZhbHVlKTtcbiAgICAgIH0pO1xuXG4gICAgICByZXR1cm4gZmlsdGVyZWREYXRhO1xuICAgIH1cblxuICAgIC8vIGRlZmF1bHQsIG5vIGZpbHRlclxuICAgIHJldHVybiBkYXRhO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNvbm5lY3QoKTogT2JzZXJ2YWJsZTxMb2FkUmVzdWx0PFQ+PiB7XG4gICAgcmV0dXJuIHRoaXMuZGF0YVN1YmplY3QucGlwZShcbiAgICAgIG1hcCgoZGF0YSkgPT4ge1xuICAgICAgICBkYXRhID0gZGF0YSB8fCBbXTtcbiAgICAgICAgY29uc3QgdG90YWwgPSBkYXRhLmxlbmd0aDtcbiAgICAgICAgcmV0dXJuIHsgZGF0YSwgdG90YWwgfTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyB3YWl0V2hpbGVTYXZpbmcob3B0cz86IFdhaXRGb3JPcHRpb25zKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKHRoaXMuc2F2aW5nKSB7XG4gICAgICByZXR1cm4gZmlyc3RGYWxzZVByb21pc2UodGhpcy5zYXZpbmdTdWJqZWN0LCB7XG4gICAgICAgIHN0b3A6IG9wdHM/LnN0b3AgfHwgbWVyZ2UodGhpcy5zdG9wU3ViamVjdCwgdGhpcy5kYXRhU3ViamVjdCksIC8vIFN0b3AgaWYgZGVzdHJveWVkIG9yIG5ldyBkYXRhIFJlY2VpdmVkXG4gICAgICAgIHN0b3BFcnJvcjogZmFsc2UsIC8vIEF2b2lkIGVycm9yIHdoZW4gc3RvcHBlZFxuICAgICAgICAuLi5vcHRzLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG1hcmtBc1NhdmluZygpIHtcbiAgICBpZiAoIXRoaXMuc2F2aW5nU3ViamVjdC52YWx1ZSkge1xuICAgICAgdGhpcy5zYXZpbmdTdWJqZWN0Lm5leHQodHJ1ZSk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG1hcmtBc1NhdmVkKCkge1xuICAgIGlmICh0aGlzLnNhdmluZ1N1YmplY3QudmFsdWUpIHtcbiAgICAgIHRoaXMuc2F2aW5nU3ViamVjdC5uZXh0KGZhbHNlKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
358
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtb3J5LWVudGl0eS1zZXJ2aWNlLmNsYXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zaGFyZWQvc2VydmljZXMvbWVtb3J5LWVudGl0eS1zZXJ2aWNlLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsS0FBSyxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQzFELE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkUsT0FBTyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsZUFBZSxFQUFFLFFBQVEsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUc5RSxPQUFPLEVBQUUsU0FBUyxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxXQUFXLEVBQVcsTUFBTSx3Q0FBd0MsQ0FBQztBQUM5RSxPQUFPLEVBQUUsWUFBWSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDekYsT0FBTyxFQUFFLGlCQUFpQixFQUFrQixNQUFNLGdCQUFnQixDQUFDO0FBQ25FLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDOztBQWVsRixXQUFXO0FBRVgsa0VBQWtFO0FBQ2xFLE1BQU0sT0FBTyx1QkFPWCxTQUFRLDBCQUFvQztJQXNDaEM7SUFDQTtJQXBDWixLQUFLLEdBQUcsS0FBSyxDQUFDO0lBRU4sV0FBVyxHQUFRLElBQUksQ0FBQztJQUV2QixZQUFZLEdBQUcsSUFBSSxlQUFlLENBQVUsS0FBSyxDQUFDLENBQUM7SUFDbkQsYUFBYSxHQUFHLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQyxDQUFDO0lBRW5ELGlCQUFpQixDQUE0QjtJQUMvQyxPQUFPLENBQXFFO0lBQzVFLE9BQU8sQ0FBb0M7SUFDM0MsU0FBUyxDQUFvQztJQUM3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QyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUM7SUFFUyxZQUFZO1FBQ3BCLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQzlCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2hDLENBQUM7SUFDSCxDQUFDO0lBRVMsV0FBVztRQUNuQixJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDN0IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakMsQ0FBQztJQUNILENBQUM7d0dBM1pVLHVCQUF1Qjs0RkFBdkIsdUJBQXVCOzs0RkFBdkIsdUJBQXVCO2tCQUZuQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBtZXJnZSwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyLCBtYXAsIG1lcmdlTWFwLCB0YWtlVW50aWwsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IGlzRW1wdHlBcnJheSwgaXNOaWwsIGlzTm90RW1wdHlBcnJheSwgaXNOb3ROaWwgfSBmcm9tICcuLi9mdW5jdGlvbnMnO1xuaW1wb3J0IHsgRW50aXRpZXNTZXJ2aWNlTG9hZE9wdGlvbnMsIEVudGl0aWVzU2VydmljZVdhdGNoT3B0aW9ucywgSUVudGl0aWVzU2VydmljZSwgTG9hZFJlc3VsdCB9IGZyb20gJy4vZW50aXR5LXNlcnZpY2UuY2xhc3MnO1xuaW1wb3J0IHsgU29ydERpcmVjdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NvcnQnO1xuaW1wb3J0IHsgRGlyZWN0aXZlLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEVudGl0eVV0aWxzLCBJRW50aXR5IH0gZnJvbSAnLi4vLi4vY29yZS9zZXJ2aWNlcy9tb2RlbC9lbnRpdHkubW9kZWwnO1xuaW1wb3J0IHsgRW50aXR5RmlsdGVyLCBFbnRpdHlGaWx0ZXJVdGlscyB9IGZyb20gJy4uLy4uL2NvcmUvc2VydmljZXMvbW9kZWwvZmlsdGVyLm1vZGVsJztcbmltcG9ydCB7IGZpcnN0RmFsc2VQcm9taXNlLCBXYWl0Rm9yT3B0aW9ucyB9IGZyb20gJy4uL29ic2VydmFibGVzJztcbmltcG9ydCB7IFN0YXJ0YWJsZU9ic2VydmFibGVTZXJ2aWNlIH0gZnJvbSAnLi9zdGFydGFibGUtb2JzZXJ2YWJsZS1zZXJ2aWNlLmNsYXNzJztcbmltcG9ydCB7IEZpbHRlckZuLCBGaWx0ZXJGbkZhY3RvcnkgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSW5NZW1vcnlFbnRpdGllc1NlcnZpY2VPcHRpb25zPFQsIEY+IHtcbiAgb25Tb3J0PzogKGRhdGE6IFRbXSwgc29ydEJ5Pzogc3RyaW5nLCBzb3J0RGlyZWN0aW9uPzogU29ydERpcmVjdGlvbikgPT4gVFtdO1xuICBvbkxvYWQ/OiAoZGF0YTogVFtdKSA9PiBUW10gfCBQcm9taXNlPFRbXT47XG4gIG9uU2F2ZT86IChkYXRhOiBUW10pID0+IFRbXSB8IFByb21pc2U8VFtdPjtcbiAgZXF1YWxzPzogKGQxOiBULCBkMjogVCkgPT4gYm9vbGVhbjtcblxuICBmaWx0ZXJGbkZhY3Rvcnk/OiBGaWx0ZXJGbkZhY3Rvcnk8VCwgRj47XG4gIGZpbHRlckZuPzogRmlsdGVyRm48VD47XG5cbiAgc29ydEJ5UmVwbGFjZW1lbnQ/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xufVxuXG4vLyBAZHluYW1pY1xuQERpcmVjdGl2ZSgpXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2RpcmVjdGl2ZS1jbGFzcy1zdWZmaXhcbmV4cG9ydCBjbGFzcyBJbk1lbW9yeUVudGl0aWVzU2VydmljZTxcbiAgICBUIGV4dGVuZHMgSUVudGl0eTxULCBJRD4sXG4gICAgRiA9IGFueSxcbiAgICBJRCA9IG51bWJlcixcbiAgICBPIGV4dGVuZHMgRW50aXRpZXNTZXJ2aWNlV2F0Y2hPcHRpb25zID0gRW50aXRpZXNTZXJ2aWNlV2F0Y2hPcHRpb25zLFxuICAgIFNPIGV4dGVuZHMgSW5NZW1vcnlFbnRpdGllc1NlcnZpY2VPcHRpb25zPFQsIEY+ID0gSW5NZW1vcnlFbnRpdGllc1NlcnZpY2VPcHRpb25zPFQsIEY+XG4gID5cbiAgZXh0ZW5kcyBTdGFydGFibGVPYnNlcnZhYmxlU2VydmljZTxUW10sIFRbXT5cbiAgaW1wbGVtZW50cyBJRW50aXRpZXNTZXJ2aWNlPFQsIEYsIE8+LCBPbkRlc3Ryb3lcbntcbiAgZGVidWcgPSBmYWxzZTtcblxuICBwcml2YXRlIF9oaWRkZW5EYXRhOiBUW10gPSBudWxsO1xuXG4gIHJlYWRvbmx5IGRpcnR5U3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICByZWFkb25seSBzYXZpbmdTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG5cbiAgcHJvdGVjdGVkIHNvcnRCeVJlcGxhY2VtZW50OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xuICBwcml2YXRlIF9zb3J0Rm46IChkYXRhOiBUW10sIHNvcnRCeT86IHN0cmluZywgc29ydERpcmVjdGlvbj86IFNvcnREaXJlY3Rpb24pID0+IFRbXTtcbiAgcHJpdmF0ZSBfb25Mb2FkOiAoZGF0YTogVFtdKSA9PiBUW10gfCBQcm9taXNlPFRbXT47XG4gIHByaXZhdGUgX29uU2F2ZUZuOiAoZGF0YTogVFtdKSA9PiBUW10gfCBQcm9taXNlPFRbXT47XG4gIHByaXZhdGUgX2VxdWFsc0ZuOiAoZDE6IFQsIGQyOiBUKSA9PiBib29sZWFuO1xuICBwcml2YXRlIF9maWx0ZXJGbkZhY3Rvcnk6IEZpbHRlckZuRmFjdG9yeTxULCBGPjtcblxuICBnZXQgZGVmYXVsdEZldGNoUG9saWN5KCk6ICdjYWNoZS1vbmx5JyB7XG4gICAgcmV0dXJuICdjYWNoZS1vbmx5JztcbiAgfVxuXG4gIHNldCB2YWx1ZShkYXRhOiBUW10pIHtcbiAgICB0aGlzLnNldFZhbHVlKGRhdGEpO1xuICB9XG5cbiAgZ2V0IHZhbHVlKCk6IFRbXSB7XG4gICAgcmV0dXJuIHRoaXMuZGF0YVN1YmplY3QuZ2V0VmFsdWUoKTtcbiAgfVxuXG4gIGdldCBzYXZpbmcoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc2F2aW5nU3ViamVjdC52YWx1ZTtcbiAgfVxuXG4gIGdldCBkaXJ0eSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5kaXJ0eVN1YmplY3QudmFsdWU7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgZGF0YVR5cGU6IG5ldyAoKSA9PiBULFxuICAgIHByb3RlY3RlZCBmaWx0ZXJUeXBlOiBuZXcgKCkgPT4gRixcbiAgICBvcHRpb25zPzogU09cbiAgKSB7XG4gICAgc3VwZXIobnVsbCk7XG4gICAgdGhpcy5fc3RhcnRCeVJlYWR5RnVuY3Rpb24gPSBmYWxzZTsgLy8gTmVlZCBzZXRWYWx1ZSgpIHRvIGJlIGNhbGxlZCwgdG8gc3RhcnQgdGhlIHNlcnZpY2VcbiAgICB0aGlzLnNldE9wdGlvbnMob3B0aW9ucyk7XG4gIH1cblxuICAvKipcbiAgICogQ29uZmlndXJlcyBhbmQgc2V0cyBvcHRpb25zIGZvciB0aGUgaW5zdGFuY2UuXG4gICAqXG4gICAqIEBwYXJhbSB7U099IG9wdGlvbnMgLSBBbiBvYmplY3QgY29udGFpbmluZyBjb25maWd1cmF0aW9uIG9wdGlvbnMgc3VjaCBhcyBgb25Tb3J0YCwgYG9uTG9hZGAsIGBvblNhdmVgLCBgZXF1YWxzYCwgYGZpbHRlckZuRmFjdG9yeWAsIGFuZCBgc29ydEJ5UmVwbGFjZW1lbnRgLlxuICAgKiBAcmV0dXJuIHt2b2lkfSBUaGlzIG1ldGhvZCBkb2VzIG5vdCByZXR1cm4gYSB2YWx1ZS5cbiAgICovXG4gIHNldE9wdGlvbnMob3B0aW9uczogU08pIHtcbiAgICB0aGlzLl9zb3J0Rm4gPSBvcHRpb25zPy5vblNvcnQgPz8gdGhpcy5fc29ydEZuID8/IHRoaXMuc29ydDtcbiAgICB0aGlzLl9vbkxvYWQgPSBvcHRpb25zPy5vbkxvYWQgPz8gdGhpcy5fb25Mb2FkO1xuICAgIHRoaXMuX29uU2F2ZUZuID0gb3B0aW9ucz8ub25TYXZlID8/IHRoaXMuX29uU2F2ZUZuO1xuICAgIHRoaXMuX2VxdWFsc0ZuID0gb3B0aW9ucz8uZXF1YWxzID8/IHRoaXMuX2VxdWFsc0ZuO1xuICAgIHRoaXMuX2ZpbHRlckZuRmFjdG9yeSA9XG4gICAgICBvcHRpb25zPy5maWx0ZXJGbkZhY3RvcnkgPz8gdGhpcy5fZmlsdGVyRm5GYWN0b3J5ID8/ICgoZikgPT4ge1xuICAgICAgICBjb25zdCBmaWx0ZXIgPSB0aGlzLmFzRmlsdGVyKGYpIGFzIEY7XG4gICAgICAgIGlmIChmaWx0ZXIgaW5zdGFuY2VvZiBFbnRpdHlGaWx0ZXIpIHtcbiAgICAgICAgICByZXR1cm4gZmlsdGVyLmFzRmlsdGVyRm4oKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgfSlcbiAgICB0aGlzLnNvcnRCeVJlcGxhY2VtZW50ID0ge1xuICAgICAgLi4udGhpcy5zb3J0QnlSZXBsYWNlbWVudCxcbiAgICAgIC4uLm9wdGlvbnM/LnNvcnRCeVJlcGxhY2VtZW50LFxuICAgIH07XG5cbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBuZ09uU3RhcnQoZGF0YT86IFRbXSk6IFByb21pc2U8VFtdPiB7XG4gICAgaWYgKCFkYXRhKSB0aHJvdyBuZXcgRXJyb3IoJ01pc3NpbmcgcmVxdWlyZWQgZGF0YSwgdG8gc3RhcnQgdGhpcyBzZXJ2aWNlJyk7XG4gICAgaWYgKHRoaXMuZGVidWcpIGNvbnNvbGUuZGVidWcoJ1ttZW1vcnktZGF0YS1zZXJ2aWNlXSBTdGFydGluZy4uLicpO1xuICAgIHRoaXMuX2hpZGRlbkRhdGEgPSBbXTtcbiAgICB0aGlzLm1hcmtBc1NhdmVkKCk7XG4gICAgdGhpcy5tYXJrQXNQcmlzdGluZSgpO1xuICAgIHJldHVybiBkYXRhO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIG5nT25TdG9wKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICh0aGlzLmRlYnVnKSBjb25zb2xlLmRlYnVnKCdbbWVtb3J5LWRhdGEtc2VydmljZV0gU3RvcHBpbmcuLi4nKTtcbiAgICB0aGlzLl9oaWRkZW5EYXRhID0gbnVsbDtcbiAgICB0aGlzLm1hcmtBc1NhdmVkKCk7XG4gICAgdGhpcy5tYXJrQXNQcmlzdGluZSgpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5zdG9wKCk7XG4gIH1cblxuICBzZXRWYWx1ZShkYXRhOiBUW10pIHtcbiAgICAvLyBJZiBzZXJ2aWNlIGFscmVhZHkgc3RhcnRlZFxuICAgIGlmICh0aGlzLnN0YXJ0ZWQpIHtcbiAgICAgIC8vIFVwZGF0ZSB0aGUgZGF0YSwgaWYgY2hhbmdlZFxuICAgICAgaWYgKHRoaXMuZGF0YVN1YmplY3QudmFsdWUgIT09IGRhdGEpIHtcbiAgICAgICAgdGhpcy5faGlkZGVuRGF0YSA9IFtdO1xuICAgICAgICB0aGlzLmRhdGFTdWJqZWN0Lm5leHQoZGF0YSk7XG4gICAgICB9XG5cbiAgICAgIC8vIFJlc2V0IGRpcnR5IGFuZCBzYXZpbmcgc3RhdGVcbiAgICAgIC8vIChGaXggT2JzQmlvIGlzc3VlIG9uIHNhbXBsZXMgdGFibGUgOiBzdGlsbCBkaXJ0eSBhZnRlciBzZXR0aW5nIHRoZSBzYW1lIHZhbHVlIGFnYWluKVxuICAgICAgdGhpcy5tYXJrQXNTYXZlZCgpO1xuICAgICAgdGhpcy5tYXJrQXNQcmlzdGluZSgpO1xuICAgIH1cbiAgICAvLyBJZiBzZXJ2aWNlIG5vdCBzdGFydGVkIHlldCwgdGhlbiBzdGFydCBpdCwgdXNpbmcgZ2l2ZW4gZGF0YVxuICAgIGVsc2Uge1xuICAgICAgdGhpcy5zdGFydChkYXRhKTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBsb2FkQWxsKFxuICAgIG9mZnNldDogbnVtYmVyLFxuICAgIHNpemU6IG51bWJlcixcbiAgICBzb3J0Qnk/OiBzdHJpbmcsXG4gICAgc29ydERpcmVjdGlvbj86IFNvcnREaXJlY3Rpb24sXG4gICAgZmlsdGVyPzogRixcbiAgICBvcHRzPzogRW50aXRpZXNTZXJ2aWNlTG9hZE9wdGlvbnMgJiB7IHVwZGF0ZUhpZGRlbkRhdGE/OiBib29sZWFuIH1cbiAgKTogUHJvbWlzZTxMb2FkUmVzdWx0PFQ+PiB7XG4gICAgb2Zmc2V0ID0gb2Zmc2V0ID49IDAgPyBvZmZzZXQgOiAwO1xuICAgIHNpemUgPSBzaXplID49IDAgPyBzaXplIDogLTE7XG5cbiAgICBjb25zdCBvcmlnaW5hbERhdGEgPSB0aGlzLmRhdGFTdWJqZWN0LnZhbHVlO1xuICAgIGlmIChpc05pbChvcmlnaW5hbERhdGEpKSB7XG4gICAgICBjb25zb2xlLndhcm4oJ1ttZW1vcnktZGF0YS1zZXJ2aWNlXSBDYW5ub3QgbG9hZCBhbGw6IG5vIHZhbHVlIHNldC4gV2lsbCByZXR1cm4gZW1wdHkgcmVzdWx0Jyk7XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIC8vIFdhaXQgc2VydmljZSBpcyByZWFkeVxuICAgICAgYXdhaXQgdGhpcy5yZWFkeSgpO1xuXG4gICAgICAvLyBXYWl0IHdoaWxlIGJ1c3kgKGUuZy4gd2hlbiBzYXZpbmcsIG9yIGRlbGV0aW5nKVxuICAgICAgYXdhaXQgdGhpcy53YWl0SWRsZSh7IHN0b3BFcnJvcjogZmFsc2UgLyphdm9pZCBlcnJvciB3aGVuIHN0b3BwZWQqLyB9KTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIC8vIFNob3VsZCBiZSBhIHN0b3AgZXJyb3I6IGxvZyBhbmQgY29udGludWVcbiAgICAgIGlmICghdGhpcy5zdG9wcGVkKSBjb25zb2xlLmVycm9yKCdVbmV4cGVjdGVkIGVycm9yLCB3aGlsZSB3YWl0aW5nIDonLCBlcnIpO1xuICAgIH1cblxuICAgIC8vIE1ha2Ugc3VyZSBzZXJ2aWNlIGlzIG5vdCBzdG9wcGVkXG4gICAgaWYgKHRoaXMuc3RvcHBlZCkgcmV0dXJuIHVuZGVmaW5lZDtcblxuICAgIGNvbnN0IGV4Y2x1ZGVkRGF0YUJ5RmlsdGVyOiBUW10gPSBbXTtcbiAgICBsZXQgZXhjbHVkZWREYXRhQnlQYWdpbmF0aW9uOiBUW107XG5cbiAgICB0cnkge1xuICAgICAgaWYgKGlzRW1wdHlBcnJheShvcmlnaW5hbERhdGEpKSB7XG4gICAgICAgIHJldHVybiB7IGRhdGE6IFtdLCB0b3RhbDogMCB9O1xuICAgICAgfVxuXG4gICAgICAvLyBBcHBseSBzb3J0XG4gICAgICBsZXQgZGF0YSA9IHRoaXMuX3NvcnRGbihvcmlnaW5hbERhdGEsIHNvcnRCeSwgc29ydERpcmVjdGlvbik7XG5cbiAgICAgIGlmICh0aGlzLl9vbkxvYWQpIHtcbiAgICAgICAgZGF0YSA9IGF3YWl0IHRoaXMuX29uTG9hZChkYXRhKTtcbiAgICAgIH1cblxuICAgICAgLy8gQXBwbHkgZmlsdGVyICh3aWxsIHVwZGF0ZSBoaWRkZW5EYXRhKVxuICAgICAgZGF0YSA9IHRoaXMuZmlsdGVyKGRhdGEsIGZpbHRlciwgZXhjbHVkZWREYXRhQnlGaWx0ZXIpO1xuXG4gICAgICAvLyBDb21wdXRlIHRoZSB0b3RhbCBsZW5ndGhcbiAgICAgIGNvbnN0IHRvdGFsID0gZGF0YS5sZW5ndGg7XG5cbiAgICAgIC8vIElmIHBhZ2Ugc2l6ZT0wIChlLmcuIG9ubHkgbmVlZCB0b3RhbClcbiAgICAgIGlmIChzaXplID09PSAwKSB7XG4gICAgICAgIGV4Y2x1ZGVkRGF0YUJ5UGFnaW5hdGlvbiA9IGRhdGE7XG4gICAgICAgIHJldHVybiB7IGRhdGE6IFtdLCB0b3RhbCB9O1xuICAgICAgfVxuXG4gICAgICAvLyBTbGljZSBpbiBhIHBhZ2UgKHVzaW5nIG9mZnNldCBhbmQgc2l6ZSlcbiAgICAgIGlmIChvZmZzZXQgPiAwKSB7XG4gICAgICAgIC8vIE9mZnNldCBhZnRlciB0aGUgZW5kOiBubyByZXN1bHRcbiAgICAgICAgaWYgKG9mZnNldCA+PSBkYXRhLmxlbmd0aCkge1xuICAgICAgICAgIGV4Y2x1ZGVkRGF0YUJ5UGFnaW5hdGlvbiA9IGRhdGE7XG4gICAgICAgICAgZGF0YSA9IFtdO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGV4Y2x1ZGVkRGF0YUJ5UGFnaW5hdGlvbiA9XG4gICAgICAgICAgICBzaXplID4gMCAmJiBvZmZzZXQgKyBzaXplIDwgZGF0YS5sZW5ndGhcbiAgICAgICAgICAgICAgPyAvLyBTbGljZSB1c2luZyBsaW1pdCB0byBzaXplXG4gICAgICAgICAgICAgICAgZGF0YS5zbGljZSgwLCBvZmZzZXQpLmNvbmNhdChkYXRhLnNsaWNlKG9mZnNldCArIHNpemUpKVxuICAgICAgICAgICAgICA6IC8vIFNsaWNlIHdpdGhvdXQgbGltaXRcbiAgICAgICAgICAgICAgICBkYXRhLnNsaWNlKDAsIG9mZnNldCk7XG5cbiAgICAgICAgICBkYXRhID1cbiAgICAgICAgICAgIHNpemUgPiAwICYmIG9mZnNldCArIHNpemUgPCBkYXRhLmxlbmd0aFxuICAgICAgICAgICAgICA/IC8vIFNsaWNlIHVzaW5nIGxpbWl0IHRvIHNpemVcbiAgICAgICAgICAgICAgICBkYXRhLnNsaWNlKG9mZnNldCwgb2Zmc2V0ICsgc2l6ZSlcbiAgICAgICAgICAgICAgOiAvLyBTbGljZSB3aXRob3V0IGxpbWl0XG4gICAgICAgICAgICAgICAgZGF0YS5zbGljZShvZmZzZXQpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIEFwcGx5IGEgbGltaXRcbiAgICAgIGVsc2UgaWYgKHNpemUgPiAwKSB7XG4gICAgICAgIGV4Y2x1ZGVkRGF0YUJ5UGFnaW5hdGlvbiA9IGRhdGEuc2xpY2Uoc2l6ZSk7XG4gICAgICAgIGRhdGEgPSBkYXRhLnNsaWNlKDAsIHNpemUpO1xuICAgICAgfVxuXG4gICAgICAvLyBObyBsaW1pdDpcbiAgICAgIGVsc2UgaWYgKHNpemUgPT09IC0xKSB7XG4gICAgICAgIC8vIEtlZXAgYWxsIGRhdGFcbiAgICAgIH1cblxuICAgICAgLy8gLyFcXCBJZiBhbHJlYWR5IG9ic2VydmVkLCB0aGVuIGFsd2F5cyBjcmVhdGUgYSBjb3B5IG9mIHRoZSBvcmlnaW5hbCBhcnJheVxuICAgICAgLy8gQmVjYXVzZSBkYXRhc291cmNlIHdpbGwgb25seSB1cGRhdGUgaWYgdGhlIGFycmF5IGNoYW5nZWRcbiAgICAgIGlmIChkYXRhID09PSBvcmlnaW5hbERhdGEpIHtcbiAgICAgICAgZGF0YSA9IGRhdGEuc2xpY2UoKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgcmVzOiBMb2FkUmVzdWx0PFQ+ID0geyBkYXRhLCB0b3RhbCB9O1xuXG4gICAgICBjb25zdCBuZXh0T2Zmc2V0ID0gc2l6ZSA+IDAgPyAob2Zmc2V0IHx8IDApICsgc2l6ZSA6IHRvdGFsO1xuICAgICAgaWYgKG5leHRPZmZzZXQgPCB0b3RhbCkge1xuICAgICAgICByZXMuZmV0Y2hNb3JlID0gYXN5bmMgKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IHRoaXMubG9hZEFsbChuZXh0T2Zmc2V0LCBzaXplLCBzb3J0QnksIHNvcnREaXJlY3Rpb24sIGZpbHRlciwgeyAuLi5vcHRzLCB1cGRhdGVIaWRkZW5EYXRhOiBmYWxzZSB9KTtcbiAgICAgICAgICAvLyBVcGRhdGUgaGlkZGVuIGRhdGEgKHJlbW92ZSBuZXcgZmV0Y2hlZCBpdGVtKVxuICAgICAgICAgIGlmIChyZXMuZGF0YT8ubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aGlzLl9oaWRkZW5EYXRhID0gdGhpcy5faGlkZGVuRGF0YT8uZmlsdGVyKChpdGVtKSA9PiAhcmVzLmRhdGEuaW5jbHVkZXMoaXRlbSkpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gcmVzO1xuICAgICAgICB9O1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gcmVzO1xuICAgIH0gZmluYWxseSB7XG4gICAgICAvLyBSZW1lbWJlciBoaWRkZW4gZGF0YVxuICAgICAgaWYgKG9wdHM/LnVwZGF0ZUhpZGRlbkRhdGEgIT09IGZhbHNlKSB7XG4gICAgICAgIHRoaXMuX2hpZGRlbkRhdGEgPSAhZXhjbHVkZWREYXRhQnlQYWdpbmF0aW9uID8gZXhjbHVkZWREYXRhQnlGaWx0ZXIgOiBleGNsdWRlZERhdGFCeUZpbHRlci5jb25jYXQoLi4uZXhjbHVkZWREYXRhQnlQYWdpbmF0aW9uKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICB3YXRjaEFsbChvZmZzZXQ6IG51bWJlciwgc2l6ZTogbnVtYmVyLCBzb3J0Qnk/OiBzdHJpbmcsIHNvcnREaXJlY3Rpb24/OiBTb3J0RGlyZWN0aW9uLCBmaWx0ZXJEYXRhPzogRiwgb3B0aW9ucz86IGFueSk6IE9ic2VydmFibGU8TG9hZFJlc3VsdDxUPj4ge1xuICAgIG9mZnNldCA9IG9mZnNldCA+PSAwID8gb2Zmc2V0IDogMDtcbiAgICBzaXplID0gc2l6ZSA+PSAwID8gc2l6ZSA6IC0xO1xuXG4gICAgcmV0dXJuIHRoaXMuZGF0YVN1YmplY3QucGlwZShcbiAgICAgIC8vIFdhcm4gaWYgd2FpdGluZyB2YWx1ZSB0byBiZSBzZXRcbiAgICAgIHRhcCgoZGF0YSkgPT4gdGhpcy5kZWJ1ZyAmJiAhZGF0YSAmJiBjb25zb2xlLmRlYnVnKCdbbWVtb3J5LWRhdGEtc2VydmljZV0gV2FpdGluZyB2YWx1ZSB0byBiZSBzZXQuLi4nKSksXG4gICAgICBmaWx0ZXIoaXNOb3ROaWwpLFxuICAgICAgbWVyZ2VNYXAoKF8pID0+IHRoaXMubG9hZEFsbChvZmZzZXQsIHNpemUsIHNvcnRCeSwgc29ydERpcmVjdGlvbiwgZmlsdGVyRGF0YSwgb3B0aW9ucykpLFxuICAgICAgZmlsdGVyKGlzTm90TmlsKSwgLy8gU2tpcCBubyByZXN1bHQgKGUuZy4gd2hlbiBzdG9wcGVkKVxuICAgICAgdGFrZVVudGlsKHRoaXMuc3RvcFN1YmplY3QpXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIHNhdmVBbGwoZGF0YTogVFtdLCBvcHRpb25zPzogYW55KTogUHJvbWlzZTxUW10+IHtcbiAgICBpZiAoIXRoaXMuZGF0YVN1YmplY3QudmFsdWUpIHRocm93IG5ldyBFcnJvcignW21lbW9yeS1zZXJ2aWNlXSBDb3VsZCBub3Qgc2F2ZSwgYmVjYXVzZSB2YWx1ZSBub3Qgc2V0Jyk7XG5cbiAgICB0aGlzLm1hcmtBc1NhdmluZygpO1xuXG4gICAgdHJ5IHtcbiAgICAgIC8vIFJlc3RvcmUgaGlkZGVuIGRhdGFcbiAgICAgIGlmIChpc05vdEVtcHR5QXJyYXkodGhpcy5faGlkZGVuRGF0YSkpIGRhdGEgPSBkYXRhLmNvbmNhdCguLi50aGlzLl9oaWRkZW5EYXRhKTtcblxuICAgICAgaWYgKHRoaXMuX29uU2F2ZUZuKSB7XG4gICAgICAgIGNvbnN0IHJlcyA9IHRoaXMuX29uU2F2ZUZuKGRhdGEpO1xuICAgICAgICBkYXRhID0gcmVzIGluc3RhbmNlb2YgUHJvbWlzZSA/IGF3YWl0IHJlcyA6IHJlcztcbiAgICAgIH1cblxuICAgICAgdGhpcy5kYXRhU3ViamVjdC5uZXh0KGRhdGEpO1xuICAgICAgdGhpcy5tYXJrQXNEaXJ0eSgpO1xuICAgICAgcmV0dXJuIGRhdGE7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHRoaXMubWFya0FzU2F2ZWQoKTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBkZWxldGVBbGwoZGF0YVRvUmVtb3ZlOiBUW10sIG9wdGlvbnM/OiBhbnkpOiBQcm9taXNlPGFueT4ge1xuICAgIGxldCBkYXRhID0gdGhpcy5kYXRhU3ViamVjdC52YWx1ZTtcbiAgICBpZiAoIWRhdGEpIHRocm93IG5ldyBFcnJvcignW21lbW9yeS1zZXJ2aWNlXSBDb3VsZCBub3QgZGVsZXRlLCBiZWNhdXNlIHZhbHVlIG5vdCBzZXQnKTtcblxuICAgIHRoaXMubWFya0FzU2F2aW5nKCk7XG5cbiAgICB0cnkge1xuICAgICAgLy8gUmVtb3ZlIGRlbGV0ZWQgaXRlbSwgZnJvbSBkYXRhXG4gICAgICBjb25zdCB1cGRhdGVkRGF0YSA9IGRhdGEuZmlsdGVyKChlbnRpdHkpID0+IHtcbiAgICAgICAgY29uc3QgcmVtb3ZlZCA9IGRhdGFUb1JlbW92ZS5maW5kSW5kZXgoKGVudGl0eVRvUmVtb3ZlKSA9PiB0aGlzLmVxdWFscyhlbnRpdHlUb1JlbW92ZSwgZW50aXR5KSkgIT09IC0xO1xuICAgICAgICByZXR1cm4gIXJlbW92ZWQ7XG4gICAgICB9KTtcbiAgICAgIGNvbnN0IGRlbGV0ZUNvdW50ID0gZGF0YS5sZW5ndGggLSB1cGRhdGVkRGF0YS5sZW5ndGg7XG4gICAgICBpZiAoZGVsZXRlQ291bnQgPiAwKSB7XG4gICAgICAgIGRhdGEgPSB1cGRhdGVkRGF0YTtcbiAgICAgICAgdGhpcy5kYXRhU3ViamVjdC5uZXh0KGRhdGEpO1xuICAgICAgICB0aGlzLm1hcmtBc0RpcnR5KCk7XG4gICAgICB9XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHRoaXMubWFya0FzU2F2ZWQoKTtcbiAgICB9XG4gIH1cblxuICBzb3J0KGRhdGE6IFRbXSwgc29ydEJ5Pzogc3RyaW5nLCBzb3J0RGlyZWN0aW9uPzogU29ydERpcmVjdGlvbik6IFRbXSB7XG4gICAgLy8gTWFrZSBzdXJlIHRvIGZpbGwgc29ydEJ5IEJFRk9SRSBjaGVja2luZyBpbiB0aGUgcmVwbGFjZW1lbnQgbWFwXG4gICAgc29ydEJ5ID0gc29ydEJ5IHx8ICdpZCc7XG4gICAgLy8gUmVwbGFjZSBzb3J0QnksIHVzaW5nIHRoZSByZXBsYWNlbWVudCBtYXBcbiAgICBzb3J0QnkgPSB0aGlzLnNvcnRCeVJlcGxhY2VtZW50W3NvcnRCeV0gfHwgc29ydEJ5O1xuXG4gICAgLy8gRXhlY3V0ZSB0aGUgc29ydFxuICAgIHJldHVybiBFbnRpdHlVdGlscy5zb3J0KGRhdGEsIHNvcnRCeSwgc29ydERpcmVjdGlvbik7XG4gIH1cblxuICBhc0ZpbHRlcihzb3VyY2U6IFBhcnRpYWw8Rj4pOiBGIHtcbiAgICByZXR1cm4gRW50aXR5RmlsdGVyVXRpbHMuZnJvbU9iamVjdChzb3VyY2UsIHRoaXMuZmlsdGVyVHlwZSk7XG4gIH1cblxuICBhZGRTb3J0QnlSZXBsYWNlbWVudChzb3VyY2U6IHN0cmluZywgdGFyZ2V0OiBzdHJpbmcpIHtcbiAgICB0aGlzLnNvcnRCeVJlcGxhY2VtZW50W3NvdXJjZV0gPSB0YXJnZXQ7XG4gIH1cblxuICBlcXVhbHMoZDE6IFQsIGQyOiBUKTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMuX2VxdWFsc0ZuKSByZXR1cm4gdGhpcy5fZXF1YWxzRm4oZDEsIGQyKTtcbiAgICByZXR1cm4gZDEgJiYgZDEuZXF1YWxzID8gZDEuZXF1YWxzKGQyKSA6IEVudGl0eVV0aWxzLmVxdWFscyhkMSwgZDIsICdpZCcpO1xuICB9XG5cbiAgLyoqXG4gICAqIENvdW50IGRhdGEgc3RvcmVkIGJ5IHRoZSBzZXJ2aWNlICh3aXRob3V0IGhpZGRlbiBkYXRhKS5cbiAgICpcbiAgICogQHBhcmFtIG9wdHNcbiAgICovXG4gIC8vIGdldCB2aXNpYmxlQ291bnQoKTogbnVtYmVyIHtcbiAgLy8gICByZXR1cm4gKHRoaXMuZGF0YVN1YmplY3QudmFsdWU/Lmxlbmd0aCB8fCAwKTtcbiAgLy8gfVxuXG4gIC8qKlxuICAgKiBDb3VudCBkYXRhIHN0b3JlZCBieSB0aGUgc2VydmljZSAod2l0aG91dCBoaWRkZW4gZGF0YSkuXG4gICAqXG4gICAqIEBwYXJhbSBvcHRzXG4gICAqIEBkZXByZWNhdGVkIFRPRE8gUGxlYXNlIHJlbmFtZSB0aGlzIGdldHRlciBpbnRvIHZpc2libGVDb3VudCAoYW5kIGNyZWF0ZSBjb3VudCA9IGhpZGRlbkNvdW50ICsgdmlzaWJsZUNvdW50KVxuICAgKi9cbiAgZ2V0IGNvdW50KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuZGF0YVN1YmplY3QudmFsdWU/Lmxlbmd0aCB8fCAwO1xuICB9XG5cbiAgZ2V0IGhpZGRlbkNvdW50KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX2hpZGRlbkRhdGE/Lmxlbmd0aCB8fCAwO1xuICB9XG5cbiAgYXN5bmMgd2FpdElkbGUob3B0cz86IFdhaXRGb3JPcHRpb25zKSB7XG4gICAgYXdhaXQgdGhpcy53YWl0V2hpbGVTYXZpbmcob3B0cyk7XG4gIH1cblxuICBtYXJrQXNEaXJ0eSgpIHtcbiAgICBpZiAoIXRoaXMuZGlydHlTdWJqZWN0LnZhbHVlKSB7XG4gICAgICB0aGlzLmRpcnR5U3ViamVjdC5uZXh0KHRydWUpO1xuICAgIH1cbiAgfVxuXG4gIG1hcmtBc1ByaXN0aW5lKCkge1xuICAgIGlmICh0aGlzLmRpcnR5U3ViamVjdC52YWx1ZSkge1xuICAgICAgdGhpcy5kaXJ0eVN1YmplY3QubmV4dChmYWxzZSk7XG4gICAgfVxuICB9XG5cbiAgLyogLS0gcHJvdGVjdGVkIG1ldGhvZHMgLS0gKi9cblxuICBwcm90ZWN0ZWQgZmlsdGVyKGRhdGE6IFRbXSwgX2ZpbHRlcjogRiwgaGlkZGVuRGF0YTogVFtdKTogVFtdIHtcbiAgICAvLyBpZiBmaWx0ZXIgaXMgRGF0YUZpbHRlciBpbnN0YW5jZSwgdXNlIGl0cyB0ZXN0IGZ1bmN0aW9uXG4gICAgY29uc3QgZmlsdGVyRm4gPSB0aGlzLl9maWx0ZXJGbkZhY3RvcnkgJiYgdGhpcy5fZmlsdGVyRm5GYWN0b3J5KF9maWx0ZXIpO1xuICAgIGlmIChmaWx0ZXJGbikge1xuICAgICAgY29uc3QgZmlsdGVyZWREYXRhID0gW107XG5cbiAgICAgIGRhdGEuZm9yRWFjaCgodmFsdWUpID0+IHtcbiAgICAgICAgaWYgKGZpbHRlckZuKHZhbHVlKSkgZmlsdGVyZWREYXRhLnB1c2godmFsdWUpO1xuICAgICAgICBlbHNlIGhpZGRlbkRhdGEucHVzaCh2YWx1ZSk7XG4gICAgICB9KTtcblxuICAgICAgcmV0dXJuIGZpbHRlcmVkRGF0YTtcbiAgICB9XG5cbiAgICAvLyBkZWZhdWx0LCBubyBmaWx0ZXJcbiAgICByZXR1cm4gZGF0YTtcbiAgfVxuXG4gIHByb3RlY3RlZCBjb25uZWN0KCk6IE9ic2VydmFibGU8TG9hZFJlc3VsdDxUPj4ge1xuICAgIHJldHVybiB0aGlzLmRhdGFTdWJqZWN0LnBpcGUoXG4gICAgICBtYXAoKGRhdGEpID0+IHtcbiAgICAgICAgZGF0YSA9IGRhdGEgfHwgW107XG4gICAgICAgIGNvbnN0IHRvdGFsID0gZGF0YS5sZW5ndGg7XG4gICAgICAgIHJldHVybiB7IGRhdGEsIHRvdGFsIH07XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgd2FpdFdoaWxlU2F2aW5nKG9wdHM/OiBXYWl0Rm9yT3B0aW9ucyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICh0aGlzLnNhdmluZykge1xuICAgICAgcmV0dXJuIGZpcnN0RmFsc2VQcm9taXNlKHRoaXMuc2F2aW5nU3ViamVjdCwge1xuICAgICAgICBzdG9wOiBvcHRzPy5zdG9wIHx8IG1lcmdlKHRoaXMuc3RvcFN1YmplY3QsIHRoaXMuZGF0YVN1YmplY3QpLCAvLyBTdG9wIGlmIGRlc3Ryb3llZCBvciBuZXcgZGF0YSBSZWNlaXZlZFxuICAgICAgICBzdG9wRXJyb3I6IGZhbHNlLCAvLyBBdm9pZCBlcnJvciB3aGVuIHN0b3BwZWRcbiAgICAgICAgLi4ub3B0cyxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBtYXJrQXNTYXZpbmcoKSB7XG4gICAgaWYgKCF0aGlzLnNhdmluZ1N1YmplY3QudmFsdWUpIHtcbiAgICAgIHRoaXMuc2F2aW5nU3ViamVjdC5uZXh0KHRydWUpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBtYXJrQXNTYXZlZCgpIHtcbiAgICBpZiAodGhpcy5zYXZpbmdTdWJqZWN0LnZhbHVlKSB7XG4gICAgICB0aGlzLnNhdmluZ1N1YmplY3QubmV4dChmYWxzZSk7XG4gICAgfVxuICB9XG59XG4iXX0=