@experteam-mx/ngx-services 18.7.30 → 18.7.32

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.
@@ -379,6 +379,80 @@ export class ApiCatalogsService {
379
379
  return this.http.get(`${this.url}/shipment-statuses`, { params })
380
380
  .pipe(map(({ data }) => data));
381
381
  }
382
+ /**
383
+ * Fetches questions from the catalogs API.
384
+ *
385
+ * Sends an HTTP GET request to `${this.url}/questions` using the supplied query parameters
386
+ * and returns the unwrapped payload (`data`) from the API response.
387
+ *
388
+ * @param params - Query parameters to include in the request (e.g. paging, filters, sorting).
389
+ * @returns An Observable that emits the QuestionsOut payload (the `data` field from ApiSuccess<QuestionsOut>).
390
+ */
391
+ getQuestions(params) {
392
+ return this.http.get(`${this.url}/questions`, { params })
393
+ .pipe(map(({ data }) => data));
394
+ }
395
+ /**
396
+ * Retrieve a single question by its id.
397
+ *
398
+ * Sends an HTTP GET request to the questions endpoint and returns an Observable that emits
399
+ * the QuestionOut payload extracted from the API success envelope.
400
+ *
401
+ * @param id - The numeric identifier of the question to fetch.
402
+ * @returns An Observable that emits the requested QuestionOut. The Observable will error
403
+ * if the HTTP request fails (for example network issues or non-2xx responses).
404
+ */
405
+ getQuestion(id) {
406
+ return this.http.get(`${this.url}/questions/${id}`)
407
+ .pipe(map(({ data }) => data));
408
+ }
409
+ /**
410
+ * Sends a POST request to create a new question and returns the created resource.
411
+ *
412
+ * The request payload is sent as an object with a `body` property containing the provided
413
+ * QuestionIn value (i.e. { body: QuestionIn }). On success the HTTP response is expected
414
+ * to follow the ApiSuccess<T> shape; the operator maps that response to the inner `data`
415
+ * object and emits it as a QuestionOut.
416
+ *
417
+ * @param body - The question payload to create (QuestionIn).
418
+ * @returns Observable<QuestionOut> that emits the created question on success.
419
+ */
420
+ postQuestion(body) {
421
+ return this.http.post(`${this.url}/questions`, body)
422
+ .pipe(map(({ data }) => data));
423
+ }
424
+ /**
425
+ * Update a question by its ID.
426
+ *
427
+ * Sends an HTTP PUT to `${this.url}/questions/${id}` with the provided payload.
428
+ * The request body is sent as an object with a `body` property containing the
429
+ * `QuestionIn` data. The server response is expected to be an `ApiSuccess<QuestionOut>`
430
+ * and this method returns an Observable that emits the unwrapped `QuestionOut`.
431
+ *
432
+ * @param id - The identifier of the question to update.
433
+ * @param body - The update payload for the question.
434
+ * @returns An Observable that emits the updated `QuestionOut` on success.
435
+ */
436
+ putQuestion(id, body) {
437
+ return this.http.put(`${this.url}/questions/${id}`, body)
438
+ .pipe(map(({ data }) => data));
439
+ }
440
+ /**
441
+ * Deletes a question by its ID.
442
+ *
443
+ * Sends an HTTP DELETE request to the backend endpoint `/questions/{id}` and
444
+ * returns an Observable that emits the API response's `data` payload (typically an empty object).
445
+ *
446
+ * The implementation maps an ApiSuccess wrapper to its `data` property before emitting.
447
+ *
448
+ * @param id - The numeric identifier of the question to delete.
449
+ * @returns An Observable that emits the deleted resource payload ({} expected) on success.
450
+ * The Observable will emit an error if the HTTP request fails.
451
+ */
452
+ deleteQuestion(id) {
453
+ return this.http.delete(`${this.url}/questions/${id}`)
454
+ .pipe(map(({ data }) => data));
455
+ }
382
456
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ApiCatalogsService, deps: [{ token: 'env' }, { token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
383
457
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ApiCatalogsService, providedIn: 'root' });
384
458
  }
@@ -391,4 +465,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
391
465
  type: Inject,
392
466
  args: ['env']
393
467
  }] }, { type: i1.HttpClient }] });
394
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLWNhdGFsb2dzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9leHBlcnRlYW0tbXgvbmd4LXNlcnZpY2VzL3NyYy9saWIvYXBpcy9hcGktY2F0YWxvZ3Muc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUdsRCxPQUFPLEVBQUUsR0FBRyxFQUFjLE1BQU0sTUFBTSxDQUFBOzs7QUF5Q3RDLE1BQU0sT0FBTyxrQkFBa0I7SUFFSjtJQUNmO0lBRlYsWUFDeUIsWUFBeUIsRUFDeEMsSUFBZ0I7UUFERCxpQkFBWSxHQUFaLFlBQVksQ0FBYTtRQUN4QyxTQUFJLEdBQUosSUFBSSxDQUFZO0lBQ3RCLENBQUM7SUFFTDs7OztPQUlHO0lBQ0gsSUFBSSxHQUFHO1FBQ0wsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLGNBQWMsSUFBSSxFQUFFLENBQUE7SUFDL0MsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsaUJBQWlCLENBQUUsTUFBbUI7UUFDcEMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBZ0MsR0FBRyxJQUFJLENBQUMsR0FBRyxrQkFBa0IsRUFBRTtZQUNqRixNQUFNO1NBQ1AsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILHNCQUFzQixDQUFFLE1BQW1CO1FBQ3pDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQXFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsdUJBQXVCLEVBQUU7WUFDM0YsTUFBTTtTQUNQLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFB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QyxJQUFJLENBQUMsR0FBRyxDQUFrQyxHQUFHLElBQUksQ0FBQyxHQUFHLG9CQUFvQixFQUFFLEVBQUUsTUFBTSxFQUFFLENBQUM7YUFDL0YsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7SUFDbEMsQ0FBQzt3R0ExWlUsa0JBQWtCLGtCQUVuQixLQUFLOzRHQUZKLGtCQUFrQixjQUZqQixNQUFNOzs0RkFFUCxrQkFBa0I7a0JBSDlCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFHSSxNQUFNOzJCQUFDLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xyXG5pbXBvcnQgeyBFbnZpcm9ubWVudCB9IGZyb20gJy4uL25neC1zZXJ2aWNlcy5tb2RlbHMnXHJcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCdcclxuaW1wb3J0IHsgbWFwLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcydcclxuaW1wb3J0IHsgQXBpU3VjY2VzcywgUXVlcnlQYXJhbXMgfSBmcm9tICcuL21vZGVscy9hcGkubW9kZWxzJ1xyXG5pbXBvcnQge1xyXG4gIENhbmNlbGxhdGlvblJlYXNvbkluLFxyXG4gIENhbmNlbGxhdGlvblJlYXNvbk91dCxcclxuICBDYW5jZWxsYXRpb25SZWFzb25zT3V0LFxyXG4gIENvdW50cmllc091dCxcclxuICBDb3VudHJ5SW4sXHJcbiAgQ291bnRyeU91dCxcclxuICBDdXJyZW5jaWVzT3V0LFxyXG4gIEV4dHJhQ2hhcmdlSW4sXHJcbiAgRXh0cmFDaGFyZ2VPdXQsXHJcbiAgRXh0cmFDaGFyZ2VzT3V0LFxyXG4gIEdlbmVyaWNGb2xpb0luLFxyXG4gIEdlbmVyaWNGb2xpb091dCxcclxuICBHZW5lcmljRm9saW9zT3V0LFxyXG4gIElkZW50aWZpY2F0aW9uVHlwZXNPdXQsXHJcbiAgTGFuZ3VhZ2VzT3V0LFxyXG4gIE1hbmFnZW1lbnRBcmVhc091dCxcclxuICBPcGVyYXRpb25UeXBlc091dCxcclxuICBQb3N0YWxMb2NhdGlvbnNPdXQsXHJcbiAgUHJvZHVjdEluLFxyXG4gIFByb2R1Y3RPdXQsXHJcbiAgUmVnaW9uc091dCxcclxuICBTaGlwbWVudENvbnRlbnRUeXBlc091dCxcclxuICBTaGlwbWVudEdyb3Vwc091dCxcclxuICBTaGlwbWVudEluY29tZVR5cGVJbixcclxuICBTaGlwbWVudEluY29tZVR5cGVPdXQsXHJcbiAgU2hpcG1lbnRJbmNvbWVUeXBlc091dCxcclxuICBTaGlwbWVudFNjb3Blc091dCxcclxuICBTaGlwbWVudFN0YXR1c2VzT3V0LFxyXG4gIFVuaXF1ZUZvbGlvSW4sXHJcbiAgVW5pcXVlRm9saW9PdXQsXHJcbiAgVW5pcXVlRm9saW9zT3V0LFxyXG4gIFVuaXRzT3V0LFxyXG4gIFpvbmVzT3V0XHJcbn0gZnJvbSAnLi9tb2RlbHMvYXBpLWNhdGFsb2cudHlwZXMnXHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBcGlDYXRhbG9nc1NlcnZpY2Uge1xyXG4gIGNvbnN0cnVjdG9yIChcclxuICAgIEBJbmplY3QoJ2VudicpIHByaXZhdGUgZW52aXJvbm1lbnRzOiBFbnZpcm9ubWVudCxcclxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudFxyXG4gICkgeyB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHJpZXZlcyB0aGUgVVJMIGZvciB0aGUgcmVwb3J0cyBBUEkgZnJvbSB0aGUgZW52aXJvbm1lbnQgY29uZmlndXJhdGlvbnMuXHJcbiAgICpcclxuICAgKiBAcmV0dXJuIHtzdHJpbmd9IFRoZSBVUkwgb2YgdGhlIHJlcG9ydHMgQVBJLlxyXG4gICAqL1xyXG4gIGdldCB1cmwgKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5lbnZpcm9ubWVudHMuYXBpQ2F0YWxvZ3NVcmwgPz8gJydcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHJpZXZlcyB0aGUgbGlzdCBvZiBjb2xsZWN0aW9uIHBheW1lbnRzXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge1F1ZXJ5UGFyYW1zfSBwYXJhbXMgLSBUaGUgcXVlcnkgcGFyYW1ldGVycyB1c2VkIHRvIGZldGNoIHRoZSBvcGVyYXRpb24gdHlwZXMuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxPcGVyYXRpb25UeXBlc091dFtdPn0gQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIGFuIGFycmF5IG9mIG9wZXJhdGlvbiB0eXBlLlxyXG4gICAqL1xyXG4gIGdldE9wZXJhdGlvblR5cGVzIChwYXJhbXM6IFF1ZXJ5UGFyYW1zKTogT2JzZXJ2YWJsZTxPcGVyYXRpb25UeXBlc091dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxPcGVyYXRpb25UeXBlc091dD4+KGAke3RoaXMudXJsfS9vcGVyYXRpb24tdHlwZXNgLCB7XHJcbiAgICAgIHBhcmFtc1xyXG4gICAgfSkucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHJpZXZlcyB0aGUgbGlzdCBvZiBpZGVudGlmaWNhdGlvcyB0eXBlc1xyXG4gICAqXHJcbiAgICogQHBhcmFtIHtRdWVyeVBhcmFtc30gcGFyYW1zIC0gVGhlIHF1ZXJ5IHBhcmFtZXRlcnMgdXNlZCB0byBmZXRjaCB0aGUgaWRlbnRpZmljYXRpb24gdHlwZXMuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxJZGVudGlmaWNhdGlvblR5cGVzT3V0W10+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgYW4gYXJyYXkgb2YgaWRlbnRpZmljYXRpb24gdHlwZS5cclxuICAgKi9cclxuICBnZXRJZGVudGlmaWNhdGlvblR5cGVzIChwYXJhbXM6IFF1ZXJ5UGFyYW1zKTogT2JzZXJ2YWJsZTxJZGVudGlmaWNhdGlvblR5cGVzT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPElkZW50aWZpY2F0aW9uVHlwZXNPdXQ+PihgJHt0aGlzLnVybH0vaWRlbnRpZmljYXRpb24tdHlwZXNgLCB7XHJcbiAgICAgIHBhcmFtc1xyXG4gICAgfSkucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEZldGNoZXMgdGhlIGV4dHJhIGNoYXJnZXMgYmFzZWQgb24gdGhlIHByb3ZpZGVkIHF1ZXJ5IHBhcmFtZXRlcnMuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge1F1ZXJ5UGFyYW1zfSBwYXJhbXMgLSBUaGUgcXVlcnkgcGFyYW1ldGVycyB0byBmaWx0ZXIgdGhlIHJlc3VsdHMuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxFeHRyYUNoYXJnZXNPdXQ+fSBBbiBvYnNlcnZhYmxlIGVtaXR0aW5nIHRoZSBleHRyYSBjaGFyZ2VzIGRhdGEuXHJcbiAgICovXHJcbiAgZ2V0RXh0cmFDaGFyZ2VzIChwYXJhbXM6IFF1ZXJ5UGFyYW1zKTogT2JzZXJ2YWJsZTxFeHRyYUNoYXJnZXNPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8RXh0cmFDaGFyZ2VzT3V0Pj4oYCR7dGhpcy51cmx9L2V4dHJhY2hhcmdlc2AsIHtcclxuICAgICAgcGFyYW1zXHJcbiAgICB9KS5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU3VibWl0cyBhbiBleHRyYSBjaGFyZ2UgcmVxdWVzdCB0byB0aGUgc2VydmVyIGFuZCByZXR1cm5zIHRoZSBjcmVhdGVkIGV4dHJhIGNoYXJnZSBkZXRhaWxzLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtFeHRyYUNoYXJnZUlufSBib2R5IC0gVGhlIGRhdGEgZm9yIHRoZSBleHRyYSBjaGFyZ2UgdG8gYmUgY3JlYXRlZC5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPEV4dHJhQ2hhcmdlT3V0Pn0gQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSBkZXRhaWxzIG9mIHRoZSBjcmVhdGVkIGV4dHJhIGNoYXJnZS5cclxuICAgKi9cclxuICBwb3N0RXh0cmFDaGFyZ2UgKGJvZHk6IEV4dHJhQ2hhcmdlSW4pOiBPYnNlcnZhYmxlPEV4dHJhQ2hhcmdlT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8QXBpU3VjY2VzczxFeHRyYUNoYXJnZU91dD4+KGAke3RoaXMudXJsfS9leHRyYWNoYXJnZXNgLCBib2R5KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFVwZGF0ZXMgYW4gZXh0cmEgY2hhcmdlIGVudGl0eSB3aXRoIG5ldyBkYXRhIGFuZCByZXR1cm5zIHRoZSB1cGRhdGVkIGVudGl0eS5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBpZCAtIFRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiB0aGUgZXh0cmEgY2hhcmdlIHRvIHVwZGF0ZS5cclxuICAgKiBAcGFyYW0ge0V4dHJhQ2hhcmdlSW59IGJvZHkgLSBUaGUgbmV3IGRhdGEgZm9yIHRoZSBleHRyYSBjaGFyZ2UuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxFeHRyYUNoYXJnZU91dD59IEFuIG9ic2VydmFibGUgZW1pdHRpbmcgdGhlIHVwZGF0ZWQgZXh0cmEgY2hhcmdlIGVudGl0eS5cclxuICAgKi9cclxuICBwdXRFeHRyYUNoYXJnZSAoaWQ6IG51bWJlciwgYm9keTogRXh0cmFDaGFyZ2VJbik6IE9ic2VydmFibGU8RXh0cmFDaGFyZ2VPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PEFwaVN1Y2Nlc3M8RXh0cmFDaGFyZ2VPdXQ+PihgJHt0aGlzLnVybH0vZXh0cmFjaGFyZ2VzLyR7aWR9YCwgYm9keSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBGZXRjaGVzIGEgbGlzdCBvZiBjb3VudHJpZXMgZnJvbSB0aGUgQVBJLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtRdWVyeVBhcmFtc30gcGFyYW1zIC0gVGhlIHF1ZXJ5IHBhcmFtZXRlcnMgdG8gYmUgcGFzc2VkIHRvIHRoZSBBUEkgcmVxdWVzdC5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPENvdW50cmllc091dD59IEFuIG9ic2VydmFibGUgY29udGFpbmluZyB0aGUgbGlzdCBvZiBjb3VudHJpZXMuXHJcbiAgICovXHJcbiAgZ2V0Q291bnRyaWVzIChwYXJhbXM6IFF1ZXJ5UGFyYW1zKTogT2JzZXJ2YWJsZTxDb3VudHJpZXNPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8Q291bnRyaWVzT3V0Pj4oYCR7dGhpcy51cmx9L2NvdW50cmllc2AsIHsgcGFyYW1zIH0pXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0cmlldmVzIHRoZSBkZXRhaWxzIG9mIGEgY291bnRyeSBiYXNlZCBvbiBpdHMgSUQuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge251bWJlcn0gaWQgLSBUaGUgaWRlbnRpZmllciBvZiB0aGUgY291bnRyeSB0byBmZXRjaC5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPENvdW50cnlPdXQ+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIGNvdW50cnkgZGF0YS5cclxuICAgKi9cclxuICBnZXRDb3VudHJ5IChpZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxDb3VudHJ5T3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPENvdW50cnlPdXQ+PihgJHt0aGlzLnVybH0vY291bnRyaWVzLyR7aWR9YClcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVcGRhdGVzIHRoZSBkZXRhaWxzIG9mIGEgc3BlY2lmaWMgY291bnRyeSBieSBpdHMgSUQuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge251bWJlcn0gaWQgLSBUaGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIGNvdW50cnkgdG8gYmUgdXBkYXRlZC5cclxuICAgKiBAcGFyYW0ge0NvdW50cnlJbn0gYm9keSAtIFRoZSBkYXRhIHRvIHVwZGF0ZSB0aGUgY291bnRyeSB3aXRoLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8Q291bnRyeU91dD59IEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgdXBkYXRlZCBjb3VudHJ5IGRhdGEuXHJcbiAgICovXHJcbiAgcHV0Q291bnRyeSAoaWQ6IG51bWJlciwgYm9keTogQ291bnRyeUluKTogT2JzZXJ2YWJsZTxDb3VudHJ5T3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dDxBcGlTdWNjZXNzPENvdW50cnlPdXQ+PihgJHt0aGlzLnVybH0vY291bnRyaWVzLyR7aWR9YCwgYm9keSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBGZXRjaGVzIHBvc3RhbCBsb2NhdGlvbiBkZXRhaWxzIGJhc2VkIG9uIHRoZSBwcm92aWRlZCBxdWVyeSBwYXJhbWV0ZXJzLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtRdWVyeVBhcmFtc30gcGFyYW1zIC0gVGhlIHF1ZXJ5IHBhcmFtZXRlcnMgdG8gZmlsdGVyIGFuZCBmZXRjaCBwb3N0YWwgbG9jYXRpb24gZGF0YS5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPFBvc3RhbExvY2F0aW9uc091dD59IEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgcG9zdGFsIGxvY2F0aW9uIGRldGFpbHMuXHJcbiAgICovXHJcbiAgZ2V0UG9zdGFsTG9jYXRpb25zIChwYXJhbXM6IFF1ZXJ5UGFyYW1zKTogT2JzZXJ2YWJsZTxQb3N0YWxMb2NhdGlvbnNPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8UG9zdGFsTG9jYXRpb25zT3V0Pj4oYCR7dGhpcy51cmx9L3Bvc3RhbC1sb2NhdGlvbnNgLCB7IHBhcmFtcyB9KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEZldGNoZXMgYSBsaXN0IG9mIHJlZ2lvbnMgYmFzZWQgb24gdGhlIHByb3ZpZGVkIHF1ZXJ5IHBhcmFtZXRlcnMuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge1F1ZXJ5UGFyYW1zfSBwYXJhbXMgLSBUaGUgcXVlcnkgcGFyYW1ldGVycyB1c2VkIHRvIGZpbHRlciB0aGUgcmVnaW9ucy5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPFJlZ2lvbnNPdXQ+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIGxpc3Qgb2YgcmVnaW9ucy5cclxuICAgKi9cclxuICBnZXRSZWdpb25zIChwYXJhbXM6IFF1ZXJ5UGFyYW1zKTogT2JzZXJ2YWJsZTxSZWdpb25zT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPFJlZ2lvbnNPdXQ+PihgJHt0aGlzLnVybH0vcmVnaW9uc2AsIHsgcGFyYW1zIH0pXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRmV0Y2hlcyB0aGUgem9uZXMgZGF0YSBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgcXVlcnkgcGFyYW1ldGVycy5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7UXVlcnlQYXJhbXN9IHBhcmFtcyAtIFRoZSBxdWVyeSBwYXJhbWV0ZXJzIHVzZWQgdG8gZmlsdGVyIHRoZSB6b25lcyBkYXRhLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8Wm9uZXNPdXQ+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIGZldGNoZWQgem9uZXMgZGF0YS5cclxuICAgKi9cclxuICBnZXRab25lcyAocGFyYW1zOiBRdWVyeVBhcmFtcyk6IE9ic2VydmFibGU8Wm9uZXNPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8Wm9uZXNPdXQ+PihgJHt0aGlzLnVybH0vem9uZXNgLCB7IHBhcmFtcyB9KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEZldGNoZXMgdGhlIG1hbmFnZW1lbnQgYXJlYXMgYmFzZWQgb24gdGhlIHByb3ZpZGVkIHF1ZXJ5IHBhcmFtZXRlcnMuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge1F1ZXJ5UGFyYW1zfSBwYXJhbXMgLSBUaGUgcXVlcnkgcGFyYW1ldGVycyB0byBmaWx0ZXIgdGhlIG1hbmFnZW1lbnQgYXJlYXMuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxNYW5hZ2VtZW50QXJlYXNPdXQ+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIG1hbmFnZW1lbnQgYXJlYXMgZGF0YS5cclxuICAgKi9cclxuICBnZXRNYW5hZ2VtZW50QXJlYXMgKHBhcmFtczogUXVlcnlQYXJhbXMpOiBPYnNlcnZhYmxlPE1hbmFnZW1lbnRBcmVhc091dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxNYW5hZ2VtZW50QXJlYXNPdXQ+PihgJHt0aGlzLnVybH0vbWFuYWdlbWVudC1hcmVhc2AsIHsgcGFyYW1zIH0pXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0cmlldmVzIGNhbmNlbGxhdGlvbiByZWFzb25zIGZyb20gdGhlIHNlcnZlciBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgcXVlcnkgcGFyYW1ldGVycy5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7UXVlcnlQYXJhbXN9IHBhcmFtcyAtIFRoZSBxdWVyeSBwYXJhbWV0ZXJzIHRvIGZpbHRlciB0aGUgY2FuY2VsbGF0aW9uIHJlYXNvbnMuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxDYW5jZWxsYXRpb25SZWFzb25zT3V0Pn0gQW4gb2JzZXJ2YWJsZSBjb250YWluaW5nIHRoZSByZXRyaWV2ZWQgY2FuY2VsbGF0aW9uIHJlYXNvbnMuXHJcbiAgICovXHJcbiAgZ2V0Q2FuY2VsbGF0aW9uUmVhc29ucyAocGFyYW1zOiBRdWVyeVBhcmFtcyk6IE9ic2VydmFibGU8Q2FuY2VsbGF0aW9uUmVhc29uc091dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxDYW5jZWxsYXRpb25SZWFzb25zT3V0Pj4oYCR7dGhpcy51cmx9L2NhbmNlbGxhdGlvbi1yZWFzb25zYCwgeyBwYXJhbXMgfSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZW5kcyBhIGNhbmNlbGxhdGlvbiByZWFzb24gdG8gdGhlIHNlcnZlci5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7Q2FuY2VsbGF0aW9uUmVhc29uSW59IGJvZHkgLSBUaGUgY2FuY2VsbGF0aW9uIHJlYXNvbiBvYmplY3QgdG8gYmUgc2VudC5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPENhbmNlbGxhdGlvblJlYXNvbk91dD59IEFuIG9ic2VydmFibGUgY29udGFpbmluZyB0aGUgc2VydmVyJ3MgcmVzcG9uc2Ugd2l0aCB0aGUgcHJvY2Vzc2VkIGNhbmNlbGxhdGlvbiByZWFzb24uXHJcbiAgICovXHJcbiAgcG9zdENhbmNlbGxhdGlvblJlYXNvbiAoYm9keTogQ2FuY2VsbGF0aW9uUmVhc29uSW4pOiBPYnNlcnZhYmxlPENhbmNlbGxhdGlvblJlYXNvbk91dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PEFwaVN1Y2Nlc3M8Q2FuY2VsbGF0aW9uUmVhc29uT3V0Pj4oYCR7dGhpcy51cmx9L2NhbmNlbGxhdGlvbi1yZWFzb25zYCwgYm9keSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVcGRhdGVzIHRoZSBjYW5jZWxsYXRpb24gcmVhc29uIGZvciB0aGUgc3BlY2lmaWVkIElEIHdpdGggdGhlIHByb3ZpZGVkIGRhdGEuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge251bWJlcn0gaWQgLSBUaGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIGNhbmNlbGxhdGlvbiByZWFzb24gdG8gdXBkYXRlLlxyXG4gICAqIEBwYXJhbSB7Q2FuY2VsbGF0aW9uUmVhc29uSW59IGJvZHkgLSBUaGUgZGV0YWlscyBvZiB0aGUgY2FuY2VsbGF0aW9uIHJlYXNvbiB0byBiZSB1cGRhdGVkLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8Q2FuY2VsbGF0aW9uUmVhc29uT3V0Pn0gQW4gb2JzZXJ2YWJsZSBjb250YWluaW5nIHRoZSB1cGRhdGVkIGNhbmNlbGxhdGlvbiByZWFzb24uXHJcbiAgICovXHJcbiAgcHV0Q2FuY2VsbGF0aW9uUmVhc29uIChpZDogbnVtYmVyLCBib2R5OiBDYW5jZWxsYXRpb25SZWFzb25Jbik6IE9ic2VydmFibGU8Q2FuY2VsbGF0aW9uUmVhc29uT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dDxBcGlTdWNjZXNzPENhbmNlbGxhdGlvblJlYXNvbk91dD4+KGAke3RoaXMudXJsfS9jYW5jZWxsYXRpb24tcmVhc29ucy8ke2lkfWAsIGJvZHkpXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0cmlldmVzIGEgbGlzdCBvZiBjdXJyZW5jaWVzIGJhc2VkIG9uIHRoZSBwcm92aWRlZCBxdWVyeSBwYXJhbWV0ZXJzLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtRdWVyeVBhcmFtc30gcGFyYW1zIC0gVGhlIHF1ZXJ5IHBhcmFtZXRlcnMgdG8gY3VzdG9taXplIHRoZSBjdXJyZW5jeSByZXRyaWV2YWwgcmVxdWVzdC5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPEN1cnJlbmNpZXNPdXQ+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHJldHJpZXZlZCBjdXJyZW5jaWVzIGRhdGEuXHJcbiAgICovXHJcbiAgZ2V0Q3VycmVuY2llcyAocGFyYW1zOiBRdWVyeVBhcmFtcyk6IE9ic2VydmFibGU8Q3VycmVuY2llc091dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxDdXJyZW5jaWVzT3V0Pj4oYCR7dGhpcy51cmx9L2N1cnJlbmNpZXNgLCB7IHBhcmFtcyB9KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEZldGNoZXMgdGhlIGxpc3Qgb2YgYXZhaWxhYmxlIGxhbmd1YWdlcyBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgcXVlcnkgcGFyYW1ldGVycy5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7UXVlcnlQYXJhbXN9IHBhcmFtcyAtIFRoZSBxdWVyeSBwYXJhbWV0ZXJzIHRvIHBhc3Mgd2l0aCB0aGUgSFRUUCByZXF1ZXN0LlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8TGFuZ3VhZ2VzT3V0Pn0gQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSBhdmFpbGFibGUgbGFuZ3VhZ2VzLlxyXG4gICAqL1xyXG4gIGdldExhbmd1YWdlcyAocGFyYW1zOiBRdWVyeVBhcmFtcyk6IE9ic2VydmFibGU8TGFuZ3VhZ2VzT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPExhbmd1YWdlc091dD4+KGAke3RoaXMudXJsfS9sYW5ndWFnZXNgLCB7IHBhcmFtcyB9KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEZldGNoZXMgdGhlIGF2YWlsYWJsZSB1bml0cyBmcm9tIHRoZSBBUEkgYmFzZWQgb24gdGhlIHByb3ZpZGVkIHF1ZXJ5IHBhcmFtZXRlcnMuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge1F1ZXJ5UGFyYW1zfSBwYXJhbXMgLSBUaGUgcXVlcnkgcGFyYW1ldGVycyB0byBmaWx0ZXIgdGhlIHVuaXRzIGJlaW5nIGZldGNoZWQuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxVbml0c091dD59IEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgcmV0cmlldmVkIHVuaXRzIGRhdGEuXHJcbiAgICovXHJcbiAgZ2V0VW5pdHMgKHBhcmFtczogUXVlcnlQYXJhbXMpOiBPYnNlcnZhYmxlPFVuaXRzT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPFVuaXRzT3V0Pj4oYCR7dGhpcy51cmx9L3VuaXRzYCwgeyBwYXJhbXMgfSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXRyaWV2ZXMgdGhlIHNoaXBtZW50IHNjb3BlcyBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgcXVlcnkgcGFyYW1ldGVycy5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7UXVlcnlQYXJhbXN9IHBhcmFtcyBUaGUgcXVlcnkgcGFyYW1ldGVycyB0byBmaWx0ZXIgb3IgbW9kaWZ5IHRoZSByZXF1ZXN0IGZvciBzaGlwbWVudCBzY29wZXMuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxTaGlwbWVudFNjb3Blc091dD59IEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgc2hpcG1lbnQgc2NvcGVzIGRhdGEuXHJcbiAgICovXHJcbiAgZ2V0U2hpcG1lbnRTY29wZXMgKHBhcmFtczogUXVlcnlQYXJhbXMpOiBPYnNlcnZhYmxlPFNoaXBtZW50U2NvcGVzT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPFNoaXBtZW50U2NvcGVzT3V0Pj4oYCR7dGhpcy51cmx9L3NoaXBtZW50LXNjb3Blc2AsIHsgcGFyYW1zIH0pXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRmV0Y2hlcyB0aGUgYXZhaWxhYmxlIHNoaXBtZW50IGNvbnRlbnQgdHlwZXMgYmFzZWQgb24gdGhlIHByb3ZpZGVkIHF1ZXJ5IHBhcmFtZXRlcnMuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge1F1ZXJ5UGFyYW1zfSBwYXJhbXMgLSBUaGUgcXVlcnkgcGFyYW1ldGVycyB0byBmaWx0ZXIgdGhlIHNoaXBtZW50IGNvbnRlbnQgdHlwZXMuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxTaGlwbWVudENvbnRlbnRUeXBlc091dD59IEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgc2hpcG1lbnQgY29udGVudCB0eXBlcyBkYXRhLlxyXG4gICAqL1xyXG4gIGdldFNoaXBtZW50Q29udGVudFR5cGVzIChwYXJhbXM6IFF1ZXJ5UGFyYW1zKTogT2JzZXJ2YWJsZTxTaGlwbWVudENvbnRlbnRUeXBlc091dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxTaGlwbWVudENvbnRlbnRUeXBlc091dD4+KGAke3RoaXMudXJsfS9zaGlwbWVudC1jb250ZW50LXR5cGVzYCwgeyBwYXJhbXMgfSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBGZXRjaGVzIGEgbGlzdCBvZiBnZW5lcmljIGZvbGlvcyBiYXNlZCBvbiB0aGUgZ2l2ZW4gcXVlcnkgcGFyYW1ldGVycy5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7UXVlcnlQYXJhbXN9IHBhcmFtcyAtIFRoZSBxdWVyeSBwYXJhbWV0ZXJzIHVzZWQgdG8gZmlsdGVyIHRoZSBnZW5lcmljIGZvbGlvcy5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPEdlbmVyaWNGb2xpb3NPdXQ+fSBBbiBvYnNlcnZhYmxlIGNvbnRhaW5pbmcgdGhlIGZldGNoZWQgZ2VuZXJpYyBmb2xpb3MuXHJcbiAgICovXHJcbiAgZ2V0R2VuZXJpY0ZvbGlvcyAocGFyYW1zOiBRdWVyeVBhcmFtcyk6IE9ic2VydmFibGU8R2VuZXJpY0ZvbGlvc091dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxHZW5lcmljRm9saW9zT3V0Pj4oYCR7dGhpcy51cmx9L2dlbmVyaWMtZm9saW9zYCwgeyBwYXJhbXMgfSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZW5kcyBhIFBPU1QgcmVxdWVzdCB0byBjcmVhdGUgb3IgdXBkYXRlIGEgZ2VuZXJpYyBmb2xpby5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7R2VuZXJpY0ZvbGlvSW59IGJvZHkgLSBUaGUgcGF5bG9hZCBjb250YWluaW5nIHRoZSBkZXRhaWxzIG9mIHRoZSBnZW5lcmljIGZvbGlvIHRvIGJlIGNyZWF0ZWQgb3IgdXBkYXRlZC5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPEdlbmVyaWNGb2xpb091dD59IEFuIG9ic2VydmFibGUgY29udGFpbmluZyB0aGUgcmVzcG9uc2UgZGF0YSBvZiB0aGUgY3JlYXRlZCBvciB1cGRhdGVkIGdlbmVyaWMgZm9saW8uXHJcbiAgICovXHJcbiAgcG9zdEdlbmVyaWNGb2xpbyAoYm9keTogR2VuZXJpY0ZvbGlvSW4pOiBPYnNlcnZhYmxlPEdlbmVyaWNGb2xpb091dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PEFwaVN1Y2Nlc3M8R2VuZXJpY0ZvbGlvT3V0Pj4oYCR7dGhpcy51cmx9L2dlbmVyaWMtZm9saW9zYCwgYm9keSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVcGRhdGVzIGEgZ2VuZXJpYyBmb2xpbyB3aXRoIHRoZSBzcGVjaWZpZWQgSUQgdXNpbmcgdGhlIHByb3ZpZGVkIGRhdGEuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge251bWJlcn0gaWQgLSBUaGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIGdlbmVyaWMgZm9saW8gdG8gdXBkYXRlLlxyXG4gICAqIEBwYXJhbSB7R2VuZXJpY0ZvbGlvSW59IGJvZHkgLSBUaGUgZGF0YSB0byB1cGRhdGUgdGhlIGdlbmVyaWMgZm9saW8gd2l0aC5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPEdlbmVyaWNGb2xpb091dD59IEFuIG9ic2VydmFibGUgY29udGFpbmluZyB0aGUgdXBkYXRlZCBnZW5lcmljIGZvbGlvLlxyXG4gICAqL1xyXG4gIHB1dEdlbmVyaWNGb2xpbyAoaWQ6IG51bWJlciwgYm9keTogR2VuZXJpY0ZvbGlvSW4pOiBPYnNlcnZhYmxlPEdlbmVyaWNGb2xpb091dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQ8QXBpU3VjY2VzczxHZW5lcmljRm9saW9PdXQ+PihgJHt0aGlzLnVybH0vZ2VuZXJpYy1mb2xpb3MvJHtpZH1gLCBib2R5KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNlbmRzIGEgUFVUIHJlcXVlc3QgdG8gdXBkYXRlIGEgR2VuZXJpYyBGb2xpbyByZXNvdXJjZSB3aXRoIHRoZSBzcGVjaWZpZWQgSUQgYW5kIGJvZHkgZGF0YSwgYW5kIHJldHVybnMgdGhlIHVwZGF0ZWQgcmVzb3VyY2UuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge251bWJlcn0gaWQgLSBUaGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIEdlbmVyaWMgRm9saW8gdG8gYmUgdXBkYXRlZC5cclxuICAgKiBAcGFyYW0ge1BhcnRpYWw8R2VuZXJpY0ZvbGlvSW4+fSBib2R5IC0gVGhlIHBhcnRpYWwgZGF0YSByZXByZXNlbnRpbmcgdGhlIGNoYW5nZXMgdG8gYmUgYXBwbGllZCB0byB0aGUgR2VuZXJpYyBGb2xpby5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPEdlbmVyaWNGb2xpb091dD59IEFuIG9ic2VydmFibGUgY29udGFpbmluZyB0aGUgdXBkYXRlZCBHZW5lcmljIEZvbGlvIHJlc291cmNlLlxyXG4gICAqL1xyXG4gIHBhdGhHZW5lcmljRm9saW8gKGlkOiBudW1iZXIsIGJvZHk6IFBhcnRpYWw8R2VuZXJpY0ZvbGlvSW4+KTogT2JzZXJ2YWJsZTxHZW5lcmljRm9saW9PdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PEFwaVN1Y2Nlc3M8R2VuZXJpY0ZvbGlvT3V0Pj4oYCR7dGhpcy51cmx9L2dlbmVyaWMtZm9saW9zLyR7aWR9YCwgYm9keSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZW5kcyBhIFBPU1QgcmVxdWVzdCB0byBjcmVhdGUgYSBuZXcgcHJvZHVjdC5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7UHJvZHVjdElufSBib2R5IC0gVGhlIHByb2R1Y3QgZGF0YSB0byBiZSBzZW50IGluIHRoZSByZXF1ZXN0IGJvZHkuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxQcm9kdWN0T3V0Pn0gQW4gb2JzZXJ2YWJsZSBlbWl0dGluZyB0aGUgY3JlYXRlZCBwcm9kdWN0IGRhdGEuXHJcbiAgICovXHJcbiAgcG9zdFByb2R1Y3QgKGJvZHk6IFByb2R1Y3RJbik6IE9ic2VydmFibGU8UHJvZHVjdE91dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PEFwaVN1Y2Nlc3M8UHJvZHVjdE91dD4+KGAke3RoaXMudXJsfS9wcm9kdWN0c2AsIGJvZHkpXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVXBkYXRlcyBhbiBleGlzdGluZyBwcm9kdWN0IHdpdGggdGhlIGdpdmVuIElEIHVzaW5nIHRoZSBwcm92aWRlZCBkYXRhLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtudW1iZXJ9IGlkIC0gVGhlIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBwcm9kdWN0IHRvIHVwZGF0ZS5cclxuICAgKiBAcGFyYW0ge1Byb2R1Y3RJbn0gYm9keSAtIFRoZSBwcm9kdWN0IGRhdGEgdG8gdXBkYXRlLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8UHJvZHVjdE91dD59IEFuIG9ic2VydmFibGUgY29udGFpbmluZyB0aGUgdXBkYXRlZCBwcm9kdWN0IGRhdGEuXHJcbiAgICovXHJcbiAgcHV0UHJvZHVjdCAoaWQ6IG51bWJlciwgYm9keTogUHJvZHVjdEluKTogT2JzZXJ2YWJsZTxQcm9kdWN0T3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dDxBcGlTdWNjZXNzPFByb2R1Y3RPdXQ+PihgJHt0aGlzLnVybH0vcHJvZHVjdHMvJHtpZH1gLCBib2R5KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHJpZXZlcyBhIGxpc3Qgb2Ygc2hpcG1lbnQgaW5jb21lIHR5cGVzIGJhc2VkIG9uIHRoZSBwcm92aWRlZCBxdWVyeSBwYXJhbWV0ZXJzLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtRdWVyeVBhcmFtc30gcGFyYW1zIC0gVGhlIHF1ZXJ5IHBhcmFtZXRlcnMgdG8gZmlsdGVyIHRoZSBzaGlwbWVudCBpbmNvbWUgdHlwZXMuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxTaGlwbWVudEluY29tZVR5cGVzT3V0Pn0gQW4gb2JzZXJ2YWJsZSBjb250YWluaW5nIHRoZSBzaGlwbWVudCBpbmNvbWUgdHlwZXMgZGF0YS5cclxuICAgKi9cclxuICBnZXRTaGlwbWVudEluY29tZVR5cGVzIChwYXJhbXM6IFF1ZXJ5UGFyYW1zKTogT2JzZXJ2YWJsZTxTaGlwbWVudEluY29tZVR5cGVzT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPFNoaXBtZW50SW5jb21lVHlwZXNPdXQ+PihgJHt0aGlzLnVybH0vc2hpcG1lbnQtaW5jb21lLXR5cGVzYCwgeyBwYXJhbXMgfSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZW5kcyBhIFBPU1QgcmVxdWVzdCB0byBjcmVhdGUgYSBuZXcgc2hpcG1lbnQgaW5jb21lIHR5cGUuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge1NoaXBtZW50SW5jb21lVHlwZUlufSBib2R5IFRoZSBwYXlsb2FkIGNvbnRhaW5pbmcgdGhlIGRldGFpbHMgb2YgdGhlIHNoaXBtZW50IGluY29tZSB0eXBlIHRvIGJlIGNyZWF0ZWQuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxTaGlwbWVudEluY29tZVR5cGVPdXQ+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIGNyZWF0ZWQgc2hpcG1lbnQgaW5jb21lIHR5cGUgZGF0YS5cclxuICAgKi9cclxuICBwb3N0U2hpcG1lbnRJbmNvbWVUeXBlIChib2R5OiBTaGlwbWVudEluY29tZVR5cGVJbik6IE9ic2VydmFibGU8U2hpcG1lbnRJbmNvbWVUeXBlT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8QXBpU3VjY2VzczxTaGlwbWVudEluY29tZVR5cGVPdXQ+PihgJHt0aGlzLnVybH0vc2hpcG1lbnQtaW5jb21lLXR5cGVzYCwgYm9keSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVcGRhdGVzIHRoZSBzaGlwbWVudCBpbmNvbWUgdHlwZSB3aXRoIHRoZSBzcGVjaWZpZWQgSUQuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge251bWJlcn0gaWQgLSBUaGUgaWRlbnRpZmllciBvZiB0aGUgc2hpcG1lbnQgaW5jb21lIHR5cGUgdG8gdXBkYXRlLlxyXG4gICAqIEBwYXJhbSB7U2hpcG1lbnRJbmNvbWVUeXBlSW59IGJvZHkgLSBUaGUgZGF0YSB0byB1cGRhdGUgdGhlIHNoaXBtZW50IGluY29tZSB0eXBlIHdpdGguXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxTaGlwbWVudEluY29tZVR5cGVPdXQ+fSBBbiBvYnNlcnZhYmxlIGVtaXR0aW5nIHRoZSB1cGRhdGVkIHNoaXBtZW50IGluY29tZSB0eXBlLlxyXG4gICAqL1xyXG4gIHB1dFNoaXBtZW50SW5jb21lVHlwZSAoaWQ6IG51bWJlciwgYm9keTogU2hpcG1lbnRJbmNvbWVUeXBlSW4pOiBPYnNlcnZhYmxlPFNoaXBtZW50SW5jb21lVHlwZU91dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQ8QXBpU3VjY2VzczxTaGlwbWVudEluY29tZVR5cGVPdXQ+PihgJHt0aGlzLnVybH0vc2hpcG1lbnQtaW5jb21lLXR5cGVzLyR7aWR9YCwgYm9keSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXRyaWV2ZXMgYSBsaXN0IG9mIHVuaXF1ZSBmb2xpb3MgYmFzZWQgb24gdGhlIHByb3ZpZGVkIHF1ZXJ5IHBhcmFtZXRlcnMuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge1F1ZXJ5UGFyYW1zfSBwYXJhbXMgLSBUaGUgcXVlcnkgcGFyYW1ldGVycyB1c2VkIHRvIGZpbHRlciBhbmQgZmV0Y2ggdW5pcXVlIGZvbGlvcy5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPFVuaXF1ZUZvbGlvc091dD59IEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgdW5pcXVlIGZvbGlvcyBkYXRhLlxyXG4gICAqL1xyXG4gIGdldFVuaXF1ZUZvbGlvcyAocGFyYW1zOiBRdWVyeVBhcmFtcyk6IE9ic2VydmFibGU8VW5pcXVlRm9saW9zT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPFVuaXF1ZUZvbGlvc091dD4+KGAke3RoaXMudXJsfS91bmlxdWUtZm9saW9zYCwgeyBwYXJhbXMgfSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZW5kcyBhIFBPU1QgcmVxdWVzdCB0byBjcmVhdGUgYSB1bmlxdWUgZm9saW8uXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge1VuaXF1ZUZvbGlvSW59IGJvZHkgLSBUaGUgZGF0YSBvYmplY3QgY29udGFpbmluZyBkZXRhaWxzIGZvciB0aGUgdW5pcXVlIGZvbGlvIHRvIGJlIGNyZWF0ZWQuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxVbmlxdWVGb2xpb091dD59IEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgY3JlYXRlZCB1bmlxdWUgZm9saW8gZGV0YWlscy5cclxuICAgKi9cclxuICBwb3N0VW5pcXVlRm9saW8gKGJvZHk6IFVuaXF1ZUZvbGlvSW4pOiBPYnNlcnZhYmxlPFVuaXF1ZUZvbGlvT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8QXBpU3VjY2VzczxVbmlxdWVGb2xpb091dD4+KGAke3RoaXMudXJsfS91bmlxdWUtZm9saW9zYCwgYm9keSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVcGRhdGVzIGEgdW5pcXVlIGZvbGlvIHdpdGggdGhlIGdpdmVuIGRhdGEgdXNpbmcgdGhlIHByb3ZpZGVkIElELlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtudW1iZXJ9IGlkIC0gVGhlIElEIG9mIHRoZSB1bmlxdWUgZm9saW8gdG8gYmUgdXBkYXRlZC5cclxuICAgKiBAcGFyYW0ge1VuaXF1ZUZvbGlvSW59IGJvZHkgLSBUaGUgcGF5bG9hZCBjb250YWluaW5nIHRoZSBkZXRhaWxzIG9mIHRoZSB1bmlxdWUgZm9saW8gdG8gdXBkYXRlLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8VW5pcXVlRm9saW9PdXQ+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHVwZGF0ZWQgdW5pcXVlIGZvbGlvLlxyXG4gICAqL1xyXG4gIHB1dFVuaXF1ZUZvbGlvIChpZDogbnVtYmVyLCBib2R5OiBVbmlxdWVGb2xpb0luKTogT2JzZXJ2YWJsZTxVbmlxdWVGb2xpb091dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQ8QXBpU3VjY2VzczxVbmlxdWVGb2xpb091dD4+KGAke3RoaXMudXJsfS91bmlxdWUtZm9saW9zLyR7aWR9YCwgYm9keSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVcGRhdGVzIGEgdW5pcXVlIGZvbGlvIGJ5IGl0cyBpZGVudGlmaWVyIHdpdGggdGhlIHByb3ZpZGVkIGRhdGEuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge251bWJlcn0gaWQgLSBUaGUgaWRlbnRpZmllciBvZiB0aGUgdW5pcXVlIGZvbGlvIHRvIHVwZGF0ZS5cclxuICAgKiBAcGFyYW0ge1BhcnRpYWw8VW5pcXVlRm9saW9Jbj59IGJvZHkgLSBUaGUgcGFydGlhbCBkYXRhIG9mIHRoZSB1bmlxdWUgZm9saW8gdG8gdXBkYXRlLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8VW5pcXVlRm9saW9PdXQ+fSBBbiBvYnNlcnZhYmxlIGVtaXR0aW5nIHRoZSB1cGRhdGVkIHVuaXF1ZSBmb2xpbyBkYXRhLlxyXG4gICAqL1xyXG4gIHBhdGhVbmlxdWVGb2xpbyAoaWQ6IG51bWJlciwgYm9keTogUGFydGlhbDxVbmlxdWVGb2xpb0luPik6IE9ic2VydmFibGU8VW5pcXVlRm9saW9PdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PEFwaVN1Y2Nlc3M8VW5pcXVlRm9saW9PdXQ+PihgJHt0aGlzLnVybH0vdW5pcXVlLWZvbGlvcy8ke2lkfWAsIGJvZHkpXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0cmlldmVzIHNoaXBtZW50IGdyb3VwcyBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgcXVlcnkgcGFyYW1ldGVycy5cclxuICAgKlxyXG4gICAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcXVlcnkgcGFyYW1ldGVycyB0byBmaWx0ZXIgdGhlIHNoaXBtZW50IGdyb3Vwcy5cclxuICAgKiBAcmV0dXJucyBBbiBPYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHNoaXBtZW50IGdyb3VwcyBkYXRhLlxyXG4gICAqL1xyXG4gIGdldFNoaXBtZW50R3JvdXBzIChwYXJhbXM6IFF1ZXJ5UGFyYW1zKTogT2JzZXJ2YWJsZTxTaGlwbWVudEdyb3Vwc091dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxTaGlwbWVudEdyb3Vwc091dD4+KGAke3RoaXMudXJsfS9zaGlwbWVudC1ncm91cHNgLCB7IHBhcmFtcyB9KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHJpZXZlcyB0aGUgc2hpcG1lbnQgc3RhdHVzZXMgZnJvbSB0aGUgQVBJLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHBhcmFtcyAtIFRoZSBxdWVyeSBwYXJhbWV0ZXJzIHRvIGZpbHRlciBvciBtb2RpZnkgdGhlIHJlcXVlc3QuXHJcbiAgICogQHJldHVybnMgQW4gT2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSBzaGlwbWVudCBzdGF0dXNlcyBvdXRwdXQuXHJcbiAgICovXHJcbiAgZ2V0U2hpcG1lbnRTdGF0dXNlcyAocGFyYW1zOiBRdWVyeVBhcmFtcyk6IE9ic2VydmFibGU8U2hpcG1lbnRTdGF0dXNlc091dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxTaGlwbWVudFN0YXR1c2VzT3V0Pj4oYCR7dGhpcy51cmx9L3NoaXBtZW50LXN0YXR1c2VzYCwgeyBwYXJhbXMgfSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG59XHJcbiJdfQ==
468
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLWNhdGFsb2dzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9leHBlcnRlYW0tbXgvbmd4LXNlcnZpY2VzL3NyYy9saWIvYXBpcy9hcGktY2F0YWxvZ3Muc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUdsRCxPQUFPLEVBQUUsR0FBRyxFQUFjLE1BQU0sTUFBTSxDQUFBOzs7QUE0Q3RDLE1BQU0sT0FBTyxrQkFBa0I7SUFFSjtJQUNmO0lBRlYsWUFDeUIsWUFBeUIsRUFDeEMsSUFBZ0I7UUFERCxpQkFBWSxHQUFaLFlBQVksQ0FBYTtRQUN4QyxTQUFJLEdBQUosSUFBSSxDQUFZO0lBQ3RCLENBQUM7SUFFTDs7OztPQUlHO0lBQ0gsSUFBSSxHQUFHO1FBQ0wsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLGNBQWMsSUFBSSxFQUFFLENBQUE7SUFDL0MsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsaUJBQWlCLENBQUUsTUFBbUI7UUFDcEMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBZ0MsR0FBRyxJQUFJLENBQUMsR0FBRyxrQkFBa0IsRUFBRTtZQUNqRixNQUFNO1NBQ1AsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILHNCQUFzQixDQUFFLE1BQW1CO1FBQ3pDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQXFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsdUJBQXVCLEVBQUU7WUFDM0YsTUFBTTtTQUNQLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUNsQyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxlQUFlLENBQUUsTUFBbUI7UUFDbEMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBOEIsR0FBRyxJQUFJLENBQUMsR0FBRyxlQUFlLEVBQUU7WUFDNUUsTUFBTTtTQUNQLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUNsQyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxlQUFlLENBQUUsSUFBbUI7UUFDbEMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBNkIsR0FBRyxJQUFJLENBQUMsR0FBRyxlQUFlLEVBQUUsSUFBSSxDQUFDO2FBQ2hGLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxjQUFjLENBQUUsRUFBVSxFQUFFLElBQW1CO1FBQzdDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQTZCLEdBQUcsSUFBSSxDQUFDLEdBQUcsaUJBQWlCLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQzthQUNyRixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUNsQyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxZQUFZLENBQUUsTUFBbUI7UUFDL0IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBMkIsR0FBRyxJQUFJLENBQUMsR0FBRyxZQUFZLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQzthQUNoRixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUNsQyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxVQUFVLENBQUUsRUFBVTtRQUNwQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUF5QixHQUFHLElBQUksQ0FBQyxHQUFHLGNBQWMsRUFBRSxFQUFFLENBQUM7YUFDeEUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7SUFDbEMsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILFVBQVUsQ0FBRSxFQUFVLEVBQUUsSUFBZTtRQUNyQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUF5QixHQUFHLElBQUksQ0FBQyxHQUFHLGNBQWMsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDO2FBQzlFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILGtCQUFrQixDQUFFLE1BQW1CO1FBQ3JDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQWlDLEdBQUcsSUFBSSxDQUFDLEdBQUcsbUJBQW1CLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQzthQUM3RixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUNsQyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxVQUFVLENBQUUsTUFBbUI7UUFDN0IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBeUIsR0FBRyxJQUFJLENBQUMsR0FBRyxVQUFVLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQzthQUM1RSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUNsQyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxRQUFRLENBQUUsTUFBbUI7UUFDM0IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBdUIsR0FBRyxJQUFJLENBQUMsR0FBRyxRQUFRLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQzthQUN4RSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUNsQyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxrQkFBa0IsQ0FBRSxNQUFtQjtRQUNyQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFpQyxHQUFHLElBQUksQ0FBQyxHQUFHLG1CQUFtQixFQUFFLEVBQUUsTUFBTSxFQUFFLENBQUM7YUFDN0YsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7SUFDbEMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsc0JBQXNCLENBQUUsTUFBbUI7UUFDekMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBcUMsR0FBRyxJQUFJLENBQUMsR0FBRyx1QkFBdUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFDO2FBQ3JHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILHNCQUFzQixDQUFFLElBQTBCO1FBQ2hELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQW9DLEdBQUcsSUFBSSxDQUFDLEdBQUcsdUJBQXVCLEVBQUUsSUFBSSxDQUFDO2FBQy9GLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxxQkFBcUIsQ0FBRSxFQUFVLEVBQUUsSUFBMEI7UUFDM0QsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBb0MsR0FBRyxJQUFJLENBQUMsR0FBRyx5QkFBeUIsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDO2FBQ3BHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILGFBQWEsQ0FBRSxNQUFtQjtRQUNoQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUE0QixHQUFHLElBQUksQ0FBQyxHQUFHLGFBQWEsRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFDO2FBQ2xGLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILFlBQVksQ0FBRSxNQUFtQjtRQUMvQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUEyQixHQUFHLElBQUksQ0FBQyxHQUFHLFlBQVksRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFDO2FBQ2hGLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILFFBQVEsQ0FBRSxNQUFtQjtRQUMzQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUF1QixHQUFHLElBQUksQ0FBQyxHQUFHLFFBQVEsRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFDO2FBQ3hFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILGlCQUFpQixDQUFFLE1BQW1CO1FBQ3BDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQWdDLEdBQUcsSUFBSSxDQUFDLEdBQUcsa0JBQWtCLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQzthQUMzRixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUNsQyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCx1QkFBdUIsQ0FBRSxNQUFtQjtRQUMxQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFzQyxHQUFHLElBQUksQ0FBQyxHQUFHLHlCQUF5QixFQUFFLEVBQUUsTUFBTSxFQUFFLENBQUM7YUFDeEcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7SUFDbEMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsZ0JBQWdCLENBQUUsTUFBbUI7UUFDbkMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBK0IsR0FBRyxJQUFJLENBQUMsR0FBRyxpQkFBaUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFDO2FBQ3pGLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILGdCQUFnQixDQUFFLElBQW9CO1FBQ3BDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQThCLEdBQUcsSUFBSSxDQUFDLEdBQUcsaUJBQWlCLEVBQUUsSUFBSSxDQUFDO2FBQ25GLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxlQUFlLENBQUUsRUFBVSxFQUFFLElBQW9CO1FBQy9DLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQThCLEdBQUcsSUFBSSxDQUFDLEdBQUcsbUJBQW1CLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQzthQUN4RixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUNsQyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsZ0JBQWdCLENBQUUsRUFBVSxFQUFFLElBQTZCO1FBQ3pELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQThCLEdBQUcsSUFBSSxDQUFDLEdBQUcsbUJBQW1CLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQzthQUN4RixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUNsQyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxXQUFXLENBQUUsSUFBZTtRQUMxQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUF5QixHQUFHLElBQUksQ0FBQyxHQUFHLFdBQVcsRUFBRSxJQUFJLENBQUM7YUFDeEUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7SUFDbEMsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILFVBQVUsQ0FBRSxFQUFVLEVBQUUsSUFBZTtRQUNyQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUF5QixHQUFHLElBQUksQ0FBQyxHQUFHLGFBQWEsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDO2FBQzdFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILHNCQUFzQixDQUFFLE1BQW1CO1FBQ3pDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQXFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsd0JBQXdCLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQzthQUN0RyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUNsQyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxzQkFBc0IsQ0FBRSxJQUEwQjtRQUNoRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFvQyxHQUFHLElBQUksQ0FBQyxHQUFHLHdCQUF3QixFQUFFLElBQUksQ0FBQzthQUNoRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUNsQyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gscUJBQXFCLENBQUUsRUFBVSxFQUFFLElBQTBCO1FBQzNELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQW9DLEdBQUcsSUFBSSxDQUFDLEdBQUcsMEJBQTBCLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQzthQUNyRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUNsQyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxlQUFlLENBQUUsTUFBbUI7UUFDbEMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBOEIsR0FBRyxJQUFJLENBQUMsR0FBRyxnQkFBZ0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFDO2FBQ3ZGLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILGVBQWUsQ0FBRSxJQUFtQjtRQUNsQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUE2QixHQUFHLElBQUksQ0FBQyxHQUFHLGdCQUFnQixFQUFFLElBQUksQ0FBQzthQUNqRixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUNsQyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsY0FBYyxDQUFFLEVBQVUsRUFBRSxJQUFtQjtRQUM3QyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUE2QixHQUFHLElBQUksQ0FBQyxHQUFHLGtCQUFrQixFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUM7YUFDdEYsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7SUFDbEMsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILGVBQWUsQ0FBRSxFQUFVLEVBQUUsSUFBNEI7UUFDdkQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBNkIsR0FBRyxJQUFJLENBQUMsR0FBRyxrQkFBa0IsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDO2FBQ3RGLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILGlCQUFpQixDQUFFLE1BQW1CO1FBQ3BDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQWdDLEdBQUcsSUFBSSxDQUFDLEdBQUcsa0JBQWtCLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQzthQUMzRixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUNsQyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxtQkFBbUIsQ0FBRSxNQUFtQjtRQUN0QyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFrQyxHQUFHLElBQUksQ0FBQyxHQUFHLG9CQUFvQixFQUFFLEVBQUUsTUFBTSxFQUFFLENBQUM7YUFDL0YsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7SUFDbEMsQ0FBQztJQUVEOzs7Ozs7OztPQVFHO0lBQ0gsWUFBWSxDQUFFLE1BQW1CO1FBQy9CLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQTJCLEdBQUcsSUFBSSxDQUFDLEdBQUcsWUFBWSxFQUFFLEVBQUUsTUFBTSxFQUFFLENBQUM7YUFDaEYsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7SUFDbEMsQ0FBQztJQUVEOzs7Ozs7Ozs7T0FTRztJQUNILFdBQVcsQ0FBRSxFQUFVO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQTBCLEdBQUcsSUFBSSxDQUFDLEdBQUcsY0FBYyxFQUFFLEVBQUUsQ0FBQzthQUN6RSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUNsQyxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7T0FVRztJQUNILFlBQVksQ0FBRSxJQUFnQjtRQUM1QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUEwQixHQUFHLElBQUksQ0FBQyxHQUFHLFlBQVksRUFBRSxJQUFJLENBQUM7YUFDMUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7SUFDbEMsQ0FBQztJQUVEOzs7Ozs7Ozs7OztPQVdHO0lBQ0gsV0FBVyxDQUFFLEVBQVUsRUFBRSxJQUFnQjtRQUN2QyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUEwQixHQUFHLElBQUksQ0FBQyxHQUFHLGNBQWMsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDO2FBQy9FLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7T0FXRztJQUNILGNBQWMsQ0FBRSxFQUFVO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQWlCLEdBQUcsSUFBSSxDQUFDLEdBQUcsY0FBYyxFQUFFLEVBQUUsQ0FBQzthQUNuRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUNsQyxDQUFDO3dHQXplVSxrQkFBa0Isa0JBRW5CLEtBQUs7NEdBRkosa0JBQWtCLGNBRmpCLE1BQU07OzRGQUVQLGtCQUFrQjtrQkFIOUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQUdJLE1BQU07MkJBQUMsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXHJcbmltcG9ydCB7IEVudmlyb25tZW50IH0gZnJvbSAnLi4vbmd4LXNlcnZpY2VzLm1vZGVscydcclxuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJ1xyXG5pbXBvcnQgeyBtYXAsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJ1xyXG5pbXBvcnQgeyBBcGlTdWNjZXNzLCBRdWVyeVBhcmFtcyB9IGZyb20gJy4vbW9kZWxzL2FwaS5tb2RlbHMnXHJcbmltcG9ydCB7XHJcbiAgQ2FuY2VsbGF0aW9uUmVhc29uSW4sXHJcbiAgQ2FuY2VsbGF0aW9uUmVhc29uT3V0LFxyXG4gIENhbmNlbGxhdGlvblJlYXNvbnNPdXQsXHJcbiAgQ291bnRyaWVzT3V0LFxyXG4gIENvdW50cnlJbixcclxuICBDb3VudHJ5T3V0LFxyXG4gIEN1cnJlbmNpZXNPdXQsXHJcbiAgRXh0cmFDaGFyZ2VJbixcclxuICBFeHRyYUNoYXJnZU91dCxcclxuICBFeHRyYUNoYXJnZXNPdXQsXHJcbiAgR2VuZXJpY0ZvbGlvSW4sXHJcbiAgR2VuZXJpY0ZvbGlvT3V0LFxyXG4gIEdlbmVyaWNGb2xpb3NPdXQsXHJcbiAgSWRlbnRpZmljYXRpb25UeXBlc091dCxcclxuICBMYW5ndWFnZXNPdXQsXHJcbiAgTWFuYWdlbWVudEFyZWFzT3V0LFxyXG4gIE9wZXJhdGlvblR5cGVzT3V0LFxyXG4gIFBvc3RhbExvY2F0aW9uc091dCxcclxuICBQcm9kdWN0SW4sXHJcbiAgUHJvZHVjdE91dCxcclxuICBRdWVzdGlvbkluLFxyXG4gIFF1ZXN0aW9uT3V0LFxyXG4gIFF1ZXN0aW9uc091dCxcclxuICBSZWdpb25zT3V0LFxyXG4gIFNoaXBtZW50Q29udGVudFR5cGVzT3V0LFxyXG4gIFNoaXBtZW50R3JvdXBzT3V0LFxyXG4gIFNoaXBtZW50SW5jb21lVHlwZUluLFxyXG4gIFNoaXBtZW50SW5jb21lVHlwZU91dCxcclxuICBTaGlwbWVudEluY29tZVR5cGVzT3V0LFxyXG4gIFNoaXBtZW50U2NvcGVzT3V0LFxyXG4gIFNoaXBtZW50U3RhdHVzZXNPdXQsXHJcbiAgVW5pcXVlRm9saW9JbixcclxuICBVbmlxdWVGb2xpb091dCxcclxuICBVbmlxdWVGb2xpb3NPdXQsXHJcbiAgVW5pdHNPdXQsXHJcbiAgWm9uZXNPdXRcclxufSBmcm9tICcuL21vZGVscy9hcGktY2F0YWxvZy50eXBlcydcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIEFwaUNhdGFsb2dzU2VydmljZSB7XHJcbiAgY29uc3RydWN0b3IgKFxyXG4gICAgQEluamVjdCgnZW52JykgcHJpdmF0ZSBlbnZpcm9ubWVudHM6IEVudmlyb25tZW50LFxyXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50XHJcbiAgKSB7IH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0cmlldmVzIHRoZSBVUkwgZm9yIHRoZSByZXBvcnRzIEFQSSBmcm9tIHRoZSBlbnZpcm9ubWVudCBjb25maWd1cmF0aW9ucy5cclxuICAgKlxyXG4gICAqIEByZXR1cm4ge3N0cmluZ30gVGhlIFVSTCBvZiB0aGUgcmVwb3J0cyBBUEkuXHJcbiAgICovXHJcbiAgZ2V0IHVybCAoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLmVudmlyb25tZW50cy5hcGlDYXRhbG9nc1VybCA/PyAnJ1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0cmlldmVzIHRoZSBsaXN0IG9mIGNvbGxlY3Rpb24gcGF5bWVudHNcclxuICAgKlxyXG4gICAqIEBwYXJhbSB7UXVlcnlQYXJhbXN9IHBhcmFtcyAtIFRoZSBxdWVyeSBwYXJhbWV0ZXJzIHVzZWQgdG8gZmV0Y2ggdGhlIG9wZXJhdGlvbiB0eXBlcy5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPE9wZXJhdGlvblR5cGVzT3V0W10+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgYW4gYXJyYXkgb2Ygb3BlcmF0aW9uIHR5cGUuXHJcbiAgICovXHJcbiAgZ2V0T3BlcmF0aW9uVHlwZXMgKHBhcmFtczogUXVlcnlQYXJhbXMpOiBPYnNlcnZhYmxlPE9wZXJhdGlvblR5cGVzT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPE9wZXJhdGlvblR5cGVzT3V0Pj4oYCR7dGhpcy51cmx9L29wZXJhdGlvbi10eXBlc2AsIHtcclxuICAgICAgcGFyYW1zXHJcbiAgICB9KS5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0cmlldmVzIHRoZSBsaXN0IG9mIGlkZW50aWZpY2F0aW9zIHR5cGVzXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge1F1ZXJ5UGFyYW1zfSBwYXJhbXMgLSBUaGUgcXVlcnkgcGFyYW1ldGVycyB1c2VkIHRvIGZldGNoIHRoZSBpZGVudGlmaWNhdGlvbiB0eXBlcy5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPElkZW50aWZpY2F0aW9uVHlwZXNPdXRbXT59IEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyBhbiBhcnJheSBvZiBpZGVudGlmaWNhdGlvbiB0eXBlLlxyXG4gICAqL1xyXG4gIGdldElkZW50aWZpY2F0aW9uVHlwZXMgKHBhcmFtczogUXVlcnlQYXJhbXMpOiBPYnNlcnZhYmxlPElkZW50aWZpY2F0aW9uVHlwZXNPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8SWRlbnRpZmljYXRpb25UeXBlc091dD4+KGAke3RoaXMudXJsfS9pZGVudGlmaWNhdGlvbi10eXBlc2AsIHtcclxuICAgICAgcGFyYW1zXHJcbiAgICB9KS5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRmV0Y2hlcyB0aGUgZXh0cmEgY2hhcmdlcyBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgcXVlcnkgcGFyYW1ldGVycy5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7UXVlcnlQYXJhbXN9IHBhcmFtcyAtIFRoZSBxdWVyeSBwYXJhbWV0ZXJzIHRvIGZpbHRlciB0aGUgcmVzdWx0cy5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPEV4dHJhQ2hhcmdlc091dD59IEFuIG9ic2VydmFibGUgZW1pdHRpbmcgdGhlIGV4dHJhIGNoYXJnZXMgZGF0YS5cclxuICAgKi9cclxuICBnZXRFeHRyYUNoYXJnZXMgKHBhcmFtczogUXVlcnlQYXJhbXMpOiBPYnNlcnZhYmxlPEV4dHJhQ2hhcmdlc091dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxFeHRyYUNoYXJnZXNPdXQ+PihgJHt0aGlzLnVybH0vZXh0cmFjaGFyZ2VzYCwge1xyXG4gICAgICBwYXJhbXNcclxuICAgIH0pLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTdWJtaXRzIGFuIGV4dHJhIGNoYXJnZSByZXF1ZXN0IHRvIHRoZSBzZXJ2ZXIgYW5kIHJldHVybnMgdGhlIGNyZWF0ZWQgZXh0cmEgY2hhcmdlIGRldGFpbHMuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge0V4dHJhQ2hhcmdlSW59IGJvZHkgLSBUaGUgZGF0YSBmb3IgdGhlIGV4dHJhIGNoYXJnZSB0byBiZSBjcmVhdGVkLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8RXh0cmFDaGFyZ2VPdXQ+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIGRldGFpbHMgb2YgdGhlIGNyZWF0ZWQgZXh0cmEgY2hhcmdlLlxyXG4gICAqL1xyXG4gIHBvc3RFeHRyYUNoYXJnZSAoYm9keTogRXh0cmFDaGFyZ2VJbik6IE9ic2VydmFibGU8RXh0cmFDaGFyZ2VPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxBcGlTdWNjZXNzPEV4dHJhQ2hhcmdlT3V0Pj4oYCR7dGhpcy51cmx9L2V4dHJhY2hhcmdlc2AsIGJvZHkpXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVXBkYXRlcyBhbiBleHRyYSBjaGFyZ2UgZW50aXR5IHdpdGggbmV3IGRhdGEgYW5kIHJldHVybnMgdGhlIHVwZGF0ZWQgZW50aXR5LlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtudW1iZXJ9IGlkIC0gVGhlIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBleHRyYSBjaGFyZ2UgdG8gdXBkYXRlLlxyXG4gICAqIEBwYXJhbSB7RXh0cmFDaGFyZ2VJbn0gYm9keSAtIFRoZSBuZXcgZGF0YSBmb3IgdGhlIGV4dHJhIGNoYXJnZS5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPEV4dHJhQ2hhcmdlT3V0Pn0gQW4gb2JzZXJ2YWJsZSBlbWl0dGluZyB0aGUgdXBkYXRlZCBleHRyYSBjaGFyZ2UgZW50aXR5LlxyXG4gICAqL1xyXG4gIHB1dEV4dHJhQ2hhcmdlIChpZDogbnVtYmVyLCBib2R5OiBFeHRyYUNoYXJnZUluKTogT2JzZXJ2YWJsZTxFeHRyYUNoYXJnZU91dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQ8QXBpU3VjY2VzczxFeHRyYUNoYXJnZU91dD4+KGAke3RoaXMudXJsfS9leHRyYWNoYXJnZXMvJHtpZH1gLCBib2R5KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEZldGNoZXMgYSBsaXN0IG9mIGNvdW50cmllcyBmcm9tIHRoZSBBUEkuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge1F1ZXJ5UGFyYW1zfSBwYXJhbXMgLSBUaGUgcXVlcnkgcGFyYW1ldGVycyB0byBiZSBwYXNzZWQgdG8gdGhlIEFQSSByZXF1ZXN0LlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8Q291bnRyaWVzT3V0Pn0gQW4gb2JzZXJ2YWJsZSBjb250YWluaW5nIHRoZSBsaXN0IG9mIGNvdW50cmllcy5cclxuICAgKi9cclxuICBnZXRDb3VudHJpZXMgKHBhcmFtczogUXVlcnlQYXJhbXMpOiBPYnNlcnZhYmxlPENvdW50cmllc091dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxDb3VudHJpZXNPdXQ+PihgJHt0aGlzLnVybH0vY291bnRyaWVzYCwgeyBwYXJhbXMgfSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXRyaWV2ZXMgdGhlIGRldGFpbHMgb2YgYSBjb3VudHJ5IGJhc2VkIG9uIGl0cyBJRC5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBpZCAtIFRoZSBpZGVudGlmaWVyIG9mIHRoZSBjb3VudHJ5IHRvIGZldGNoLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8Q291bnRyeU91dD59IEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgY291bnRyeSBkYXRhLlxyXG4gICAqL1xyXG4gIGdldENvdW50cnkgKGlkOiBudW1iZXIpOiBPYnNlcnZhYmxlPENvdW50cnlPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8Q291bnRyeU91dD4+KGAke3RoaXMudXJsfS9jb3VudHJpZXMvJHtpZH1gKVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFVwZGF0ZXMgdGhlIGRldGFpbHMgb2YgYSBzcGVjaWZpYyBjb3VudHJ5IGJ5IGl0cyBJRC5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBpZCAtIFRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiB0aGUgY291bnRyeSB0byBiZSB1cGRhdGVkLlxyXG4gICAqIEBwYXJhbSB7Q291bnRyeUlufSBib2R5IC0gVGhlIGRhdGEgdG8gdXBkYXRlIHRoZSBjb3VudHJ5IHdpdGguXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxDb3VudHJ5T3V0Pn0gQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSB1cGRhdGVkIGNvdW50cnkgZGF0YS5cclxuICAgKi9cclxuICBwdXRDb3VudHJ5IChpZDogbnVtYmVyLCBib2R5OiBDb3VudHJ5SW4pOiBPYnNlcnZhYmxlPENvdW50cnlPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PEFwaVN1Y2Nlc3M8Q291bnRyeU91dD4+KGAke3RoaXMudXJsfS9jb3VudHJpZXMvJHtpZH1gLCBib2R5KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEZldGNoZXMgcG9zdGFsIGxvY2F0aW9uIGRldGFpbHMgYmFzZWQgb24gdGhlIHByb3ZpZGVkIHF1ZXJ5IHBhcmFtZXRlcnMuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge1F1ZXJ5UGFyYW1zfSBwYXJhbXMgLSBUaGUgcXVlcnkgcGFyYW1ldGVycyB0byBmaWx0ZXIgYW5kIGZldGNoIHBvc3RhbCBsb2NhdGlvbiBkYXRhLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8UG9zdGFsTG9jYXRpb25zT3V0Pn0gQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSBwb3N0YWwgbG9jYXRpb24gZGV0YWlscy5cclxuICAgKi9cclxuICBnZXRQb3N0YWxMb2NhdGlvbnMgKHBhcmFtczogUXVlcnlQYXJhbXMpOiBPYnNlcnZhYmxlPFBvc3RhbExvY2F0aW9uc091dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxQb3N0YWxMb2NhdGlvbnNPdXQ+PihgJHt0aGlzLnVybH0vcG9zdGFsLWxvY2F0aW9uc2AsIHsgcGFyYW1zIH0pXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRmV0Y2hlcyBhIGxpc3Qgb2YgcmVnaW9ucyBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgcXVlcnkgcGFyYW1ldGVycy5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7UXVlcnlQYXJhbXN9IHBhcmFtcyAtIFRoZSBxdWVyeSBwYXJhbWV0ZXJzIHVzZWQgdG8gZmlsdGVyIHRoZSByZWdpb25zLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8UmVnaW9uc091dD59IEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgbGlzdCBvZiByZWdpb25zLlxyXG4gICAqL1xyXG4gIGdldFJlZ2lvbnMgKHBhcmFtczogUXVlcnlQYXJhbXMpOiBPYnNlcnZhYmxlPFJlZ2lvbnNPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8UmVnaW9uc091dD4+KGAke3RoaXMudXJsfS9yZWdpb25zYCwgeyBwYXJhbXMgfSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBGZXRjaGVzIHRoZSB6b25lcyBkYXRhIGJhc2VkIG9uIHRoZSBwcm92aWRlZCBxdWVyeSBwYXJhbWV0ZXJzLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtRdWVyeVBhcmFtc30gcGFyYW1zIC0gVGhlIHF1ZXJ5IHBhcmFtZXRlcnMgdXNlZCB0byBmaWx0ZXIgdGhlIHpvbmVzIGRhdGEuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxab25lc091dD59IEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgZmV0Y2hlZCB6b25lcyBkYXRhLlxyXG4gICAqL1xyXG4gIGdldFpvbmVzIChwYXJhbXM6IFF1ZXJ5UGFyYW1zKTogT2JzZXJ2YWJsZTxab25lc091dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2Vzczxab25lc091dD4+KGAke3RoaXMudXJsfS96b25lc2AsIHsgcGFyYW1zIH0pXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRmV0Y2hlcyB0aGUgbWFuYWdlbWVudCBhcmVhcyBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgcXVlcnkgcGFyYW1ldGVycy5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7UXVlcnlQYXJhbXN9IHBhcmFtcyAtIFRoZSBxdWVyeSBwYXJhbWV0ZXJzIHRvIGZpbHRlciB0aGUgbWFuYWdlbWVudCBhcmVhcy5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPE1hbmFnZW1lbnRBcmVhc091dD59IEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgbWFuYWdlbWVudCBhcmVhcyBkYXRhLlxyXG4gICAqL1xyXG4gIGdldE1hbmFnZW1lbnRBcmVhcyAocGFyYW1zOiBRdWVyeVBhcmFtcyk6IE9ic2VydmFibGU8TWFuYWdlbWVudEFyZWFzT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPE1hbmFnZW1lbnRBcmVhc091dD4+KGAke3RoaXMudXJsfS9tYW5hZ2VtZW50LWFyZWFzYCwgeyBwYXJhbXMgfSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXRyaWV2ZXMgY2FuY2VsbGF0aW9uIHJlYXNvbnMgZnJvbSB0aGUgc2VydmVyIGJhc2VkIG9uIHRoZSBwcm92aWRlZCBxdWVyeSBwYXJhbWV0ZXJzLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtRdWVyeVBhcmFtc30gcGFyYW1zIC0gVGhlIHF1ZXJ5IHBhcmFtZXRlcnMgdG8gZmlsdGVyIHRoZSBjYW5jZWxsYXRpb24gcmVhc29ucy5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPENhbmNlbGxhdGlvblJlYXNvbnNPdXQ+fSBBbiBvYnNlcnZhYmxlIGNvbnRhaW5pbmcgdGhlIHJldHJpZXZlZCBjYW5jZWxsYXRpb24gcmVhc29ucy5cclxuICAgKi9cclxuICBnZXRDYW5jZWxsYXRpb25SZWFzb25zIChwYXJhbXM6IFF1ZXJ5UGFyYW1zKTogT2JzZXJ2YWJsZTxDYW5jZWxsYXRpb25SZWFzb25zT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPENhbmNlbGxhdGlvblJlYXNvbnNPdXQ+PihgJHt0aGlzLnVybH0vY2FuY2VsbGF0aW9uLXJlYXNvbnNgLCB7IHBhcmFtcyB9KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNlbmRzIGEgY2FuY2VsbGF0aW9uIHJlYXNvbiB0byB0aGUgc2VydmVyLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtDYW5jZWxsYXRpb25SZWFzb25Jbn0gYm9keSAtIFRoZSBjYW5jZWxsYXRpb24gcmVhc29uIG9iamVjdCB0byBiZSBzZW50LlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8Q2FuY2VsbGF0aW9uUmVhc29uT3V0Pn0gQW4gb2JzZXJ2YWJsZSBjb250YWluaW5nIHRoZSBzZXJ2ZXIncyByZXNwb25zZSB3aXRoIHRoZSBwcm9jZXNzZWQgY2FuY2VsbGF0aW9uIHJlYXNvbi5cclxuICAgKi9cclxuICBwb3N0Q2FuY2VsbGF0aW9uUmVhc29uIChib2R5OiBDYW5jZWxsYXRpb25SZWFzb25Jbik6IE9ic2VydmFibGU8Q2FuY2VsbGF0aW9uUmVhc29uT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8QXBpU3VjY2VzczxDYW5jZWxsYXRpb25SZWFzb25PdXQ+PihgJHt0aGlzLnVybH0vY2FuY2VsbGF0aW9uLXJlYXNvbnNgLCBib2R5KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFVwZGF0ZXMgdGhlIGNhbmNlbGxhdGlvbiByZWFzb24gZm9yIHRoZSBzcGVjaWZpZWQgSUQgd2l0aCB0aGUgcHJvdmlkZWQgZGF0YS5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBpZCAtIFRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiB0aGUgY2FuY2VsbGF0aW9uIHJlYXNvbiB0byB1cGRhdGUuXHJcbiAgICogQHBhcmFtIHtDYW5jZWxsYXRpb25SZWFzb25Jbn0gYm9keSAtIFRoZSBkZXRhaWxzIG9mIHRoZSBjYW5jZWxsYXRpb24gcmVhc29uIHRvIGJlIHVwZGF0ZWQuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxDYW5jZWxsYXRpb25SZWFzb25PdXQ+fSBBbiBvYnNlcnZhYmxlIGNvbnRhaW5pbmcgdGhlIHVwZGF0ZWQgY2FuY2VsbGF0aW9uIHJlYXNvbi5cclxuICAgKi9cclxuICBwdXRDYW5jZWxsYXRpb25SZWFzb24gKGlkOiBudW1iZXIsIGJvZHk6IENhbmNlbGxhdGlvblJlYXNvbkluKTogT2JzZXJ2YWJsZTxDYW5jZWxsYXRpb25SZWFzb25PdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PEFwaVN1Y2Nlc3M8Q2FuY2VsbGF0aW9uUmVhc29uT3V0Pj4oYCR7dGhpcy51cmx9L2NhbmNlbGxhdGlvbi1yZWFzb25zLyR7aWR9YCwgYm9keSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXRyaWV2ZXMgYSBsaXN0IG9mIGN1cnJlbmNpZXMgYmFzZWQgb24gdGhlIHByb3ZpZGVkIHF1ZXJ5IHBhcmFtZXRlcnMuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge1F1ZXJ5UGFyYW1zfSBwYXJhbXMgLSBUaGUgcXVlcnkgcGFyYW1ldGVycyB0byBjdXN0b21pemUgdGhlIGN1cnJlbmN5IHJldHJpZXZhbCByZXF1ZXN0LlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8Q3VycmVuY2llc091dD59IEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgcmV0cmlldmVkIGN1cnJlbmNpZXMgZGF0YS5cclxuICAgKi9cclxuICBnZXRDdXJyZW5jaWVzIChwYXJhbXM6IFF1ZXJ5UGFyYW1zKTogT2JzZXJ2YWJsZTxDdXJyZW5jaWVzT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPEN1cnJlbmNpZXNPdXQ+PihgJHt0aGlzLnVybH0vY3VycmVuY2llc2AsIHsgcGFyYW1zIH0pXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRmV0Y2hlcyB0aGUgbGlzdCBvZiBhdmFpbGFibGUgbGFuZ3VhZ2VzIGJhc2VkIG9uIHRoZSBwcm92aWRlZCBxdWVyeSBwYXJhbWV0ZXJzLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtRdWVyeVBhcmFtc30gcGFyYW1zIC0gVGhlIHF1ZXJ5IHBhcmFtZXRlcnMgdG8gcGFzcyB3aXRoIHRoZSBIVFRQIHJlcXVlc3QuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxMYW5ndWFnZXNPdXQ+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIGF2YWlsYWJsZSBsYW5ndWFnZXMuXHJcbiAgICovXHJcbiAgZ2V0TGFuZ3VhZ2VzIChwYXJhbXM6IFF1ZXJ5UGFyYW1zKTogT2JzZXJ2YWJsZTxMYW5ndWFnZXNPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8TGFuZ3VhZ2VzT3V0Pj4oYCR7dGhpcy51cmx9L2xhbmd1YWdlc2AsIHsgcGFyYW1zIH0pXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRmV0Y2hlcyB0aGUgYXZhaWxhYmxlIHVuaXRzIGZyb20gdGhlIEFQSSBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgcXVlcnkgcGFyYW1ldGVycy5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7UXVlcnlQYXJhbXN9IHBhcmFtcyAtIFRoZSBxdWVyeSBwYXJhbWV0ZXJzIHRvIGZpbHRlciB0aGUgdW5pdHMgYmVpbmcgZmV0Y2hlZC5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPFVuaXRzT3V0Pn0gQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSByZXRyaWV2ZWQgdW5pdHMgZGF0YS5cclxuICAgKi9cclxuICBnZXRVbml0cyAocGFyYW1zOiBRdWVyeVBhcmFtcyk6IE9ic2VydmFibGU8VW5pdHNPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8VW5pdHNPdXQ+PihgJHt0aGlzLnVybH0vdW5pdHNgLCB7IHBhcmFtcyB9KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHJpZXZlcyB0aGUgc2hpcG1lbnQgc2NvcGVzIGJhc2VkIG9uIHRoZSBwcm92aWRlZCBxdWVyeSBwYXJhbWV0ZXJzLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtRdWVyeVBhcmFtc30gcGFyYW1zIFRoZSBxdWVyeSBwYXJhbWV0ZXJzIHRvIGZpbHRlciBvciBtb2RpZnkgdGhlIHJlcXVlc3QgZm9yIHNoaXBtZW50IHNjb3Blcy5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPFNoaXBtZW50U2NvcGVzT3V0Pn0gQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSBzaGlwbWVudCBzY29wZXMgZGF0YS5cclxuICAgKi9cclxuICBnZXRTaGlwbWVudFNjb3BlcyAocGFyYW1zOiBRdWVyeVBhcmFtcyk6IE9ic2VydmFibGU8U2hpcG1lbnRTY29wZXNPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8U2hpcG1lbnRTY29wZXNPdXQ+PihgJHt0aGlzLnVybH0vc2hpcG1lbnQtc2NvcGVzYCwgeyBwYXJhbXMgfSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBGZXRjaGVzIHRoZSBhdmFpbGFibGUgc2hpcG1lbnQgY29udGVudCB0eXBlcyBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgcXVlcnkgcGFyYW1ldGVycy5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7UXVlcnlQYXJhbXN9IHBhcmFtcyAtIFRoZSBxdWVyeSBwYXJhbWV0ZXJzIHRvIGZpbHRlciB0aGUgc2hpcG1lbnQgY29udGVudCB0eXBlcy5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPFNoaXBtZW50Q29udGVudFR5cGVzT3V0Pn0gQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSBzaGlwbWVudCBjb250ZW50IHR5cGVzIGRhdGEuXHJcbiAgICovXHJcbiAgZ2V0U2hpcG1lbnRDb250ZW50VHlwZXMgKHBhcmFtczogUXVlcnlQYXJhbXMpOiBPYnNlcnZhYmxlPFNoaXBtZW50Q29udGVudFR5cGVzT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPFNoaXBtZW50Q29udGVudFR5cGVzT3V0Pj4oYCR7dGhpcy51cmx9L3NoaXBtZW50LWNvbnRlbnQtdHlwZXNgLCB7IHBhcmFtcyB9KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEZldGNoZXMgYSBsaXN0IG9mIGdlbmVyaWMgZm9saW9zIGJhc2VkIG9uIHRoZSBnaXZlbiBxdWVyeSBwYXJhbWV0ZXJzLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtRdWVyeVBhcmFtc30gcGFyYW1zIC0gVGhlIHF1ZXJ5IHBhcmFtZXRlcnMgdXNlZCB0byBmaWx0ZXIgdGhlIGdlbmVyaWMgZm9saW9zLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8R2VuZXJpY0ZvbGlvc091dD59IEFuIG9ic2VydmFibGUgY29udGFpbmluZyB0aGUgZmV0Y2hlZCBnZW5lcmljIGZvbGlvcy5cclxuICAgKi9cclxuICBnZXRHZW5lcmljRm9saW9zIChwYXJhbXM6IFF1ZXJ5UGFyYW1zKTogT2JzZXJ2YWJsZTxHZW5lcmljRm9saW9zT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPEdlbmVyaWNGb2xpb3NPdXQ+PihgJHt0aGlzLnVybH0vZ2VuZXJpYy1mb2xpb3NgLCB7IHBhcmFtcyB9KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNlbmRzIGEgUE9TVCByZXF1ZXN0IHRvIGNyZWF0ZSBvciB1cGRhdGUgYSBnZW5lcmljIGZvbGlvLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtHZW5lcmljRm9saW9Jbn0gYm9keSAtIFRoZSBwYXlsb2FkIGNvbnRhaW5pbmcgdGhlIGRldGFpbHMgb2YgdGhlIGdlbmVyaWMgZm9saW8gdG8gYmUgY3JlYXRlZCBvciB1cGRhdGVkLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8R2VuZXJpY0ZvbGlvT3V0Pn0gQW4gb2JzZXJ2YWJsZSBjb250YWluaW5nIHRoZSByZXNwb25zZSBkYXRhIG9mIHRoZSBjcmVhdGVkIG9yIHVwZGF0ZWQgZ2VuZXJpYyBmb2xpby5cclxuICAgKi9cclxuICBwb3N0R2VuZXJpY0ZvbGlvIChib2R5OiBHZW5lcmljRm9saW9Jbik6IE9ic2VydmFibGU8R2VuZXJpY0ZvbGlvT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8QXBpU3VjY2VzczxHZW5lcmljRm9saW9PdXQ+PihgJHt0aGlzLnVybH0vZ2VuZXJpYy1mb2xpb3NgLCBib2R5KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFVwZGF0ZXMgYSBnZW5lcmljIGZvbGlvIHdpdGggdGhlIHNwZWNpZmllZCBJRCB1c2luZyB0aGUgcHJvdmlkZWQgZGF0YS5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBpZCAtIFRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiB0aGUgZ2VuZXJpYyBmb2xpbyB0byB1cGRhdGUuXHJcbiAgICogQHBhcmFtIHtHZW5lcmljRm9saW9Jbn0gYm9keSAtIFRoZSBkYXRhIHRvIHVwZGF0ZSB0aGUgZ2VuZXJpYyBmb2xpbyB3aXRoLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8R2VuZXJpY0ZvbGlvT3V0Pn0gQW4gb2JzZXJ2YWJsZSBjb250YWluaW5nIHRoZSB1cGRhdGVkIGdlbmVyaWMgZm9saW8uXHJcbiAgICovXHJcbiAgcHV0R2VuZXJpY0ZvbGlvIChpZDogbnVtYmVyLCBib2R5OiBHZW5lcmljRm9saW9Jbik6IE9ic2VydmFibGU8R2VuZXJpY0ZvbGlvT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dDxBcGlTdWNjZXNzPEdlbmVyaWNGb2xpb091dD4+KGAke3RoaXMudXJsfS9nZW5lcmljLWZvbGlvcy8ke2lkfWAsIGJvZHkpXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2VuZHMgYSBQVVQgcmVxdWVzdCB0byB1cGRhdGUgYSBHZW5lcmljIEZvbGlvIHJlc291cmNlIHdpdGggdGhlIHNwZWNpZmllZCBJRCBhbmQgYm9keSBkYXRhLCBhbmQgcmV0dXJucyB0aGUgdXBkYXRlZCByZXNvdXJjZS5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBpZCAtIFRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiB0aGUgR2VuZXJpYyBGb2xpbyB0byBiZSB1cGRhdGVkLlxyXG4gICAqIEBwYXJhbSB7UGFydGlhbDxHZW5lcmljRm9saW9Jbj59IGJvZHkgLSBUaGUgcGFydGlhbCBkYXRhIHJlcHJlc2VudGluZyB0aGUgY2hhbmdlcyB0byBiZSBhcHBsaWVkIHRvIHRoZSBHZW5lcmljIEZvbGlvLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8R2VuZXJpY0ZvbGlvT3V0Pn0gQW4gb2JzZXJ2YWJsZSBjb250YWluaW5nIHRoZSB1cGRhdGVkIEdlbmVyaWMgRm9saW8gcmVzb3VyY2UuXHJcbiAgICovXHJcbiAgcGF0aEdlbmVyaWNGb2xpbyAoaWQ6IG51bWJlciwgYm9keTogUGFydGlhbDxHZW5lcmljRm9saW9Jbj4pOiBPYnNlcnZhYmxlPEdlbmVyaWNGb2xpb091dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQ8QXBpU3VjY2VzczxHZW5lcmljRm9saW9PdXQ+PihgJHt0aGlzLnVybH0vZ2VuZXJpYy1mb2xpb3MvJHtpZH1gLCBib2R5KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNlbmRzIGEgUE9TVCByZXF1ZXN0IHRvIGNyZWF0ZSBhIG5ldyBwcm9kdWN0LlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtQcm9kdWN0SW59IGJvZHkgLSBUaGUgcHJvZHVjdCBkYXRhIHRvIGJlIHNlbnQgaW4gdGhlIHJlcXVlc3QgYm9keS5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPFByb2R1Y3RPdXQ+fSBBbiBvYnNlcnZhYmxlIGVtaXR0aW5nIHRoZSBjcmVhdGVkIHByb2R1Y3QgZGF0YS5cclxuICAgKi9cclxuICBwb3N0UHJvZHVjdCAoYm9keTogUHJvZHVjdEluKTogT2JzZXJ2YWJsZTxQcm9kdWN0T3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8QXBpU3VjY2VzczxQcm9kdWN0T3V0Pj4oYCR7dGhpcy51cmx9L3Byb2R1Y3RzYCwgYm9keSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVcGRhdGVzIGFuIGV4aXN0aW5nIHByb2R1Y3Qgd2l0aCB0aGUgZ2l2ZW4gSUQgdXNpbmcgdGhlIHByb3ZpZGVkIGRhdGEuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge251bWJlcn0gaWQgLSBUaGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIHByb2R1Y3QgdG8gdXBkYXRlLlxyXG4gICAqIEBwYXJhbSB7UHJvZHVjdElufSBib2R5IC0gVGhlIHByb2R1Y3QgZGF0YSB0byB1cGRhdGUuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxQcm9kdWN0T3V0Pn0gQW4gb2JzZXJ2YWJsZSBjb250YWluaW5nIHRoZSB1cGRhdGVkIHByb2R1Y3QgZGF0YS5cclxuICAgKi9cclxuICBwdXRQcm9kdWN0IChpZDogbnVtYmVyLCBib2R5OiBQcm9kdWN0SW4pOiBPYnNlcnZhYmxlPFByb2R1Y3RPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PEFwaVN1Y2Nlc3M8UHJvZHVjdE91dD4+KGAke3RoaXMudXJsfS9wcm9kdWN0cy8ke2lkfWAsIGJvZHkpXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0cmlldmVzIGEgbGlzdCBvZiBzaGlwbWVudCBpbmNvbWUgdHlwZXMgYmFzZWQgb24gdGhlIHByb3ZpZGVkIHF1ZXJ5IHBhcmFtZXRlcnMuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge1F1ZXJ5UGFyYW1zfSBwYXJhbXMgLSBUaGUgcXVlcnkgcGFyYW1ldGVycyB0byBmaWx0ZXIgdGhlIHNoaXBtZW50IGluY29tZSB0eXBlcy5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPFNoaXBtZW50SW5jb21lVHlwZXNPdXQ+fSBBbiBvYnNlcnZhYmxlIGNvbnRhaW5pbmcgdGhlIHNoaXBtZW50IGluY29tZSB0eXBlcyBkYXRhLlxyXG4gICAqL1xyXG4gIGdldFNoaXBtZW50SW5jb21lVHlwZXMgKHBhcmFtczogUXVlcnlQYXJhbXMpOiBPYnNlcnZhYmxlPFNoaXBtZW50SW5jb21lVHlwZXNPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8U2hpcG1lbnRJbmNvbWVUeXBlc091dD4+KGAke3RoaXMudXJsfS9zaGlwbWVudC1pbmNvbWUtdHlwZXNgLCB7IHBhcmFtcyB9KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNlbmRzIGEgUE9TVCByZXF1ZXN0IHRvIGNyZWF0ZSBhIG5ldyBzaGlwbWVudCBpbmNvbWUgdHlwZS5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7U2hpcG1lbnRJbmNvbWVUeXBlSW59IGJvZHkgVGhlIHBheWxvYWQgY29udGFpbmluZyB0aGUgZGV0YWlscyBvZiB0aGUgc2hpcG1lbnQgaW5jb21lIHR5cGUgdG8gYmUgY3JlYXRlZC5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPFNoaXBtZW50SW5jb21lVHlwZU91dD59IEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgY3JlYXRlZCBzaGlwbWVudCBpbmNvbWUgdHlwZSBkYXRhLlxyXG4gICAqL1xyXG4gIHBvc3RTaGlwbWVudEluY29tZVR5cGUgKGJvZHk6IFNoaXBtZW50SW5jb21lVHlwZUluKTogT2JzZXJ2YWJsZTxTaGlwbWVudEluY29tZVR5cGVPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxBcGlTdWNjZXNzPFNoaXBtZW50SW5jb21lVHlwZU91dD4+KGAke3RoaXMudXJsfS9zaGlwbWVudC1pbmNvbWUtdHlwZXNgLCBib2R5KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFVwZGF0ZXMgdGhlIHNoaXBtZW50IGluY29tZSB0eXBlIHdpdGggdGhlIHNwZWNpZmllZCBJRC5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBpZCAtIFRoZSBpZGVudGlmaWVyIG9mIHRoZSBzaGlwbWVudCBpbmNvbWUgdHlwZSB0byB1cGRhdGUuXHJcbiAgICogQHBhcmFtIHtTaGlwbWVudEluY29tZVR5cGVJbn0gYm9keSAtIFRoZSBkYXRhIHRvIHVwZGF0ZSB0aGUgc2hpcG1lbnQgaW5jb21lIHR5cGUgd2l0aC5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPFNoaXBtZW50SW5jb21lVHlwZU91dD59IEFuIG9ic2VydmFibGUgZW1pdHRpbmcgdGhlIHVwZGF0ZWQgc2hpcG1lbnQgaW5jb21lIHR5cGUuXHJcbiAgICovXHJcbiAgcHV0U2hpcG1lbnRJbmNvbWVUeXBlIChpZDogbnVtYmVyLCBib2R5OiBTaGlwbWVudEluY29tZVR5cGVJbik6IE9ic2VydmFibGU8U2hpcG1lbnRJbmNvbWVUeXBlT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dDxBcGlTdWNjZXNzPFNoaXBtZW50SW5jb21lVHlwZU91dD4+KGAke3RoaXMudXJsfS9zaGlwbWVudC1pbmNvbWUtdHlwZXMvJHtpZH1gLCBib2R5KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHJpZXZlcyBhIGxpc3Qgb2YgdW5pcXVlIGZvbGlvcyBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgcXVlcnkgcGFyYW1ldGVycy5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7UXVlcnlQYXJhbXN9IHBhcmFtcyAtIFRoZSBxdWVyeSBwYXJhbWV0ZXJzIHVzZWQgdG8gZmlsdGVyIGFuZCBmZXRjaCB1bmlxdWUgZm9saW9zLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8VW5pcXVlRm9saW9zT3V0Pn0gQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSB1bmlxdWUgZm9saW9zIGRhdGEuXHJcbiAgICovXHJcbiAgZ2V0VW5pcXVlRm9saW9zIChwYXJhbXM6IFF1ZXJ5UGFyYW1zKTogT2JzZXJ2YWJsZTxVbmlxdWVGb2xpb3NPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8VW5pcXVlRm9saW9zT3V0Pj4oYCR7dGhpcy51cmx9L3VuaXF1ZS1mb2xpb3NgLCB7IHBhcmFtcyB9KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNlbmRzIGEgUE9TVCByZXF1ZXN0IHRvIGNyZWF0ZSBhIHVuaXF1ZSBmb2xpby5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7VW5pcXVlRm9saW9Jbn0gYm9keSAtIFRoZSBkYXRhIG9iamVjdCBjb250YWluaW5nIGRldGFpbHMgZm9yIHRoZSB1bmlxdWUgZm9saW8gdG8gYmUgY3JlYXRlZC5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPFVuaXF1ZUZvbGlvT3V0Pn0gQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSBjcmVhdGVkIHVuaXF1ZSBmb2xpbyBkZXRhaWxzLlxyXG4gICAqL1xyXG4gIHBvc3RVbmlxdWVGb2xpbyAoYm9keTogVW5pcXVlRm9saW9Jbik6IE9ic2VydmFibGU8VW5pcXVlRm9saW9PdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxBcGlTdWNjZXNzPFVuaXF1ZUZvbGlvT3V0Pj4oYCR7dGhpcy51cmx9L3VuaXF1ZS1mb2xpb3NgLCBib2R5KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFVwZGF0ZXMgYSB1bmlxdWUgZm9saW8gd2l0aCB0aGUgZ2l2ZW4gZGF0YSB1c2luZyB0aGUgcHJvdmlkZWQgSUQuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge251bWJlcn0gaWQgLSBUaGUgSUQgb2YgdGhlIHVuaXF1ZSBmb2xpbyB0byBiZSB1cGRhdGVkLlxyXG4gICAqIEBwYXJhbSB7VW5pcXVlRm9saW9Jbn0gYm9keSAtIFRoZSBwYXlsb2FkIGNvbnRhaW5pbmcgdGhlIGRldGFpbHMgb2YgdGhlIHVuaXF1ZSBmb2xpbyB0byB1cGRhdGUuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxVbmlxdWVGb2xpb091dD59IEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgdXBkYXRlZCB1bmlxdWUgZm9saW8uXHJcbiAgICovXHJcbiAgcHV0VW5pcXVlRm9saW8gKGlkOiBudW1iZXIsIGJvZHk6IFVuaXF1ZUZvbGlvSW4pOiBPYnNlcnZhYmxlPFVuaXF1ZUZvbGlvT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dDxBcGlTdWNjZXNzPFVuaXF1ZUZvbGlvT3V0Pj4oYCR7dGhpcy51cmx9L3VuaXF1ZS1mb2xpb3MvJHtpZH1gLCBib2R5KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFVwZGF0ZXMgYSB1bmlxdWUgZm9saW8gYnkgaXRzIGlkZW50aWZpZXIgd2l0aCB0aGUgcHJvdmlkZWQgZGF0YS5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBpZCAtIFRoZSBpZGVudGlmaWVyIG9mIHRoZSB1bmlxdWUgZm9saW8gdG8gdXBkYXRlLlxyXG4gICAqIEBwYXJhbSB7UGFydGlhbDxVbmlxdWVGb2xpb0luPn0gYm9keSAtIFRoZSBwYXJ0aWFsIGRhdGEgb2YgdGhlIHVuaXF1ZSBmb2xpbyB0byB1cGRhdGUuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxVbmlxdWVGb2xpb091dD59IEFuIG9ic2VydmFibGUgZW1pdHRpbmcgdGhlIHVwZGF0ZWQgdW5pcXVlIGZvbGlvIGRhdGEuXHJcbiAgICovXHJcbiAgcGF0aFVuaXF1ZUZvbGlvIChpZDogbnVtYmVyLCBib2R5OiBQYXJ0aWFsPFVuaXF1ZUZvbGlvSW4+KTogT2JzZXJ2YWJsZTxVbmlxdWVGb2xpb091dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQ8QXBpU3VjY2VzczxVbmlxdWVGb2xpb091dD4+KGAke3RoaXMudXJsfS91bmlxdWUtZm9saW9zLyR7aWR9YCwgYm9keSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXRyaWV2ZXMgc2hpcG1lbnQgZ3JvdXBzIGJhc2VkIG9uIHRoZSBwcm92aWRlZCBxdWVyeSBwYXJhbWV0ZXJzLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHBhcmFtcyAtIFRoZSBxdWVyeSBwYXJhbWV0ZXJzIHRvIGZpbHRlciB0aGUgc2hpcG1lbnQgZ3JvdXBzLlxyXG4gICAqIEByZXR1cm5zIEFuIE9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgc2hpcG1lbnQgZ3JvdXBzIGRhdGEuXHJcbiAgICovXHJcbiAgZ2V0U2hpcG1lbnRHcm91cHMgKHBhcmFtczogUXVlcnlQYXJhbXMpOiBPYnNlcnZhYmxlPFNoaXBtZW50R3JvdXBzT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPFNoaXBtZW50R3JvdXBzT3V0Pj4oYCR7dGhpcy51cmx9L3NoaXBtZW50LWdyb3Vwc2AsIHsgcGFyYW1zIH0pXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0cmlldmVzIHRoZSBzaGlwbWVudCBzdGF0dXNlcyBmcm9tIHRoZSBBUEkuXHJcbiAgICpcclxuICAgKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHF1ZXJ5IHBhcmFtZXRlcnMgdG8gZmlsdGVyIG9yIG1vZGlmeSB0aGUgcmVxdWVzdC5cclxuICAgKiBAcmV0dXJucyBBbiBPYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHNoaXBtZW50IHN0YXR1c2VzIG91dHB1dC5cclxuICAgKi9cclxuICBnZXRTaGlwbWVudFN0YXR1c2VzIChwYXJhbXM6IFF1ZXJ5UGFyYW1zKTogT2JzZXJ2YWJsZTxTaGlwbWVudFN0YXR1c2VzT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPFNoaXBtZW50U3RhdHVzZXNPdXQ+PihgJHt0aGlzLnVybH0vc2hpcG1lbnQtc3RhdHVzZXNgLCB7IHBhcmFtcyB9KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEZldGNoZXMgcXVlc3Rpb25zIGZyb20gdGhlIGNhdGFsb2dzIEFQSS5cclxuICAgKlxyXG4gICAqIFNlbmRzIGFuIEhUVFAgR0VUIHJlcXVlc3QgdG8gYCR7dGhpcy51cmx9L3F1ZXN0aW9uc2AgdXNpbmcgdGhlIHN1cHBsaWVkIHF1ZXJ5IHBhcmFtZXRlcnNcclxuICAgKiBhbmQgcmV0dXJucyB0aGUgdW53cmFwcGVkIHBheWxvYWQgKGBkYXRhYCkgZnJvbSB0aGUgQVBJIHJlc3BvbnNlLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHBhcmFtcyAtIFF1ZXJ5IHBhcmFtZXRlcnMgdG8gaW5jbHVkZSBpbiB0aGUgcmVxdWVzdCAoZS5nLiBwYWdpbmcsIGZpbHRlcnMsIHNvcnRpbmcpLlxyXG4gICAqIEByZXR1cm5zIEFuIE9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgUXVlc3Rpb25zT3V0IHBheWxvYWQgKHRoZSBgZGF0YWAgZmllbGQgZnJvbSBBcGlTdWNjZXNzPFF1ZXN0aW9uc091dD4pLlxyXG4gICAqL1xyXG4gIGdldFF1ZXN0aW9ucyAocGFyYW1zOiBRdWVyeVBhcmFtcyk6IE9ic2VydmFibGU8UXVlc3Rpb25zT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPFF1ZXN0aW9uc091dD4+KGAke3RoaXMudXJsfS9xdWVzdGlvbnNgLCB7IHBhcmFtcyB9KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHJpZXZlIGEgc2luZ2xlIHF1ZXN0aW9uIGJ5IGl0cyBpZC5cclxuICAgKlxyXG4gICAqIFNlbmRzIGFuIEhUVFAgR0VUIHJlcXVlc3QgdG8gdGhlIHF1ZXN0aW9ucyBlbmRwb2ludCBhbmQgcmV0dXJucyBhbiBPYnNlcnZhYmxlIHRoYXQgZW1pdHNcclxuICAgKiB0aGUgUXVlc3Rpb25PdXQgcGF5bG9hZCBleHRyYWN0ZWQgZnJvbSB0aGUgQVBJIHN1Y2Nlc3MgZW52ZWxvcGUuXHJcbiAgICpcclxuICAgKiBAcGFyYW0gaWQgLSBUaGUgbnVtZXJpYyBpZGVudGlmaWVyIG9mIHRoZSBxdWVzdGlvbiB0byBmZXRjaC5cclxuICAgKiBAcmV0dXJucyBBbiBPYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHJlcXVlc3RlZCBRdWVzdGlvbk91dC4gVGhlIE9ic2VydmFibGUgd2lsbCBlcnJvclxyXG4gICAqICAgICAgICAgIGlmIHRoZSBIVFRQIHJlcXVlc3QgZmFpbHMgKGZvciBleGFtcGxlIG5ldHdvcmsgaXNzdWVzIG9yIG5vbi0yeHggcmVzcG9uc2VzKS5cclxuICAgKi9cclxuICBnZXRRdWVzdGlvbiAoaWQ6IG51bWJlcik6IE9ic2VydmFibGU8UXVlc3Rpb25PdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8UXVlc3Rpb25PdXQ+PihgJHt0aGlzLnVybH0vcXVlc3Rpb25zLyR7aWR9YClcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZW5kcyBhIFBPU1QgcmVxdWVzdCB0byBjcmVhdGUgYSBuZXcgcXVlc3Rpb24gYW5kIHJldHVybnMgdGhlIGNyZWF0ZWQgcmVzb3VyY2UuXHJcbiAgICpcclxuICAgKiBUaGUgcmVxdWVzdCBwYXlsb2FkIGlzIHNlbnQgYXMgYW4gb2JqZWN0IHdpdGggYSBgYm9keWAgcHJvcGVydHkgY29udGFpbmluZyB0aGUgcHJvdmlkZWRcclxuICAgKiBRdWVzdGlvbkluIHZhbHVlIChpLmUuIHsgYm9keTogUXVlc3Rpb25JbiB9KS4gT24gc3VjY2VzcyB0aGUgSFRUUCByZXNwb25zZSBpcyBleHBlY3RlZFxyXG4gICAqIHRvIGZvbGxvdyB0aGUgQXBpU3VjY2VzczxUPiBzaGFwZTsgdGhlIG9wZXJhdG9yIG1hcHMgdGhhdCByZXNwb25zZSB0byB0aGUgaW5uZXIgYGRhdGFgXHJcbiAgICogb2JqZWN0IGFuZCBlbWl0cyBpdCBhcyBhIFF1ZXN0aW9uT3V0LlxyXG4gICAqXHJcbiAgICogQHBhcmFtIGJvZHkgLSBUaGUgcXVlc3Rpb24gcGF5bG9hZCB0byBjcmVhdGUgKFF1ZXN0aW9uSW4pLlxyXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGU8UXVlc3Rpb25PdXQ+IHRoYXQgZW1pdHMgdGhlIGNyZWF0ZWQgcXVlc3Rpb24gb24gc3VjY2Vzcy5cclxuICAgKi9cclxuICBwb3N0UXVlc3Rpb24gKGJvZHk6IFF1ZXN0aW9uSW4pOiBPYnNlcnZhYmxlPFF1ZXN0aW9uT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8QXBpU3VjY2VzczxRdWVzdGlvbk91dD4+KGAke3RoaXMudXJsfS9xdWVzdGlvbnNgLCBib2R5KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFVwZGF0ZSBhIHF1ZXN0aW9uIGJ5IGl0cyBJRC5cclxuICAgKlxyXG4gICAqIFNlbmRzIGFuIEhUVFAgUFVUIHRvIGAke3RoaXMudXJsfS9xdWVzdGlvbnMvJHtpZH1gIHdpdGggdGhlIHByb3ZpZGVkIHBheWxvYWQuXHJcbiAgICogVGhlIHJlcXVlc3QgYm9keSBpcyBzZW50IGFzIGFuIG9iamVjdCB3aXRoIGEgYGJvZHlgIHByb3BlcnR5IGNvbnRhaW5pbmcgdGhlXHJcbiAgICogYFF1ZXN0aW9uSW5gIGRhdGEuIFRoZSBzZXJ2ZXIgcmVzcG9uc2UgaXMgZXhwZWN0ZWQgdG8gYmUgYW4gYEFwaVN1Y2Nlc3M8UXVlc3Rpb25PdXQ+YFxyXG4gICAqIGFuZCB0aGlzIG1ldGhvZCByZXR1cm5zIGFuIE9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgdW53cmFwcGVkIGBRdWVzdGlvbk91dGAuXHJcbiAgICpcclxuICAgKiBAcGFyYW0gaWQgLSBUaGUgaWRlbnRpZmllciBvZiB0aGUgcXVlc3Rpb24gdG8gdXBkYXRlLlxyXG4gICAqIEBwYXJhbSBib2R5IC0gVGhlIHVwZGF0ZSBwYXlsb2FkIGZvciB0aGUgcXVlc3Rpb24uXHJcbiAgICogQHJldHVybnMgQW4gT2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSB1cGRhdGVkIGBRdWVzdGlvbk91dGAgb24gc3VjY2Vzcy5cclxuICAgKi9cclxuICBwdXRRdWVzdGlvbiAoaWQ6IG51bWJlciwgYm9keTogUXVlc3Rpb25Jbik6IE9ic2VydmFibGU8UXVlc3Rpb25PdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PEFwaVN1Y2Nlc3M8UXVlc3Rpb25PdXQ+PihgJHt0aGlzLnVybH0vcXVlc3Rpb25zLyR7aWR9YCwgYm9keSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBEZWxldGVzIGEgcXVlc3Rpb24gYnkgaXRzIElELlxyXG4gICAqXHJcbiAgICogU2VuZHMgYW4gSFRUUCBERUxFVEUgcmVxdWVzdCB0byB0aGUgYmFja2VuZCBlbmRwb2ludCBgL3F1ZXN0aW9ucy97aWR9YCBhbmRcclxuICAgKiByZXR1cm5zIGFuIE9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgQVBJIHJlc3BvbnNlJ3MgYGRhdGFgIHBheWxvYWQgKHR5cGljYWxseSBhbiBlbXB0eSBvYmplY3QpLlxyXG4gICAqXHJcbiAgICogVGhlIGltcGxlbWVudGF0aW9uIG1hcHMgYW4gQXBpU3VjY2VzcyB3cmFwcGVyIHRvIGl0cyBgZGF0YWAgcHJvcGVydHkgYmVmb3JlIGVtaXR0aW5nLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIGlkIC0gVGhlIG51bWVyaWMgaWRlbnRpZmllciBvZiB0aGUgcXVlc3Rpb24gdG8gZGVsZXRlLlxyXG4gICAqIEByZXR1cm5zIEFuIE9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgZGVsZXRlZCByZXNvdXJjZSBwYXlsb2FkICh7fSBleHBlY3RlZCkgb24gc3VjY2Vzcy5cclxuICAgKiAgICAgICAgICBUaGUgT2JzZXJ2YWJsZSB3aWxsIGVtaXQgYW4gZXJyb3IgaWYgdGhlIEhUVFAgcmVxdWVzdCBmYWlscy5cclxuICAgKi9cclxuICBkZWxldGVRdWVzdGlvbiAoaWQ6IG51bWJlcik6IE9ic2VydmFibGU8e30+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlPEFwaVN1Y2Nlc3M8e30+PihgJHt0aGlzLnVybH0vcXVlc3Rpb25zLyR7aWR9YClcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLWNhdGFsb2cuaW50ZXJmYWNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V4cGVydGVhbS1teC9uZ3gtc2VydmljZXMvc3JjL2xpYi9hcGlzL21vZGVscy9hcGktY2F0YWxvZy5pbnRlcmZhY2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTeW1mb255TW9kZWwsIFRyYW5zbGF0aW9ucyB9IGZyb20gJy4vYXBpLm1vZGVscydcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ291bnRyeSBleHRlbmRzIFN5bWZvbnlNb2RlbCB7XHJcbiAgbmFtZTogc3RyaW5nXHJcbiAgY29kZTogc3RyaW5nXHJcbiAgY29kZUFuZE5hbWU6IHN0cmluZ1xyXG4gIGlzb0NvZGU6IHN0cmluZ1xyXG4gIGNvZGVQaG9uZTogc3RyaW5nXHJcbiAgbG9jYWxlOiBzdHJpbmdcclxuICBsb2NhdGlvblR5cGU6IExvY2F0aW9uVHlwZVxyXG4gIHVuaXQ6IFVuaXRcclxuICB0aW1lem9uZTogc3RyaW5nXHJcbiAgaGFzSW1wb3J0U2VydmljZTogYm9vbGVhblxyXG4gIHBob25lRGlnaXRzOiBudW1iZXJcclxuICBsb2NhdGlvblR5cGVGaWVsZHM6IExvY2F0aW9uVHlwZUZpZWxkc1xyXG4gIHBvc3RhbENvZGVTdWZmaXhSZWdleDogc3RyaW5nXHJcbiAgZGVjaW1hbFBvaW50OiBudW1iZXJcclxuICBtYXhfcXVhbnRpdHlfZG9jdW1lbnRfcGllY2U6IG51bWJlclxyXG4gIG1heF9xdWFudGl0eV9wYWNrYWdlX3BpZWNlOiBudW1iZXJcclxuICB3ZWlnaHRfcmVzdHJpY3Rpb25fcGllY2U6IG51bWJlclxyXG4gIHJlc3RyaWN0aW9uX3NoaXBtZW50OiBudW1iZXJcclxuICByZXN0cmljdGlvbl9kaW1lbnNpb246IG51bWJlclxyXG4gIG1heF9kZWNsYXJlZF92YWx1ZTogbnVtYmVyXHJcbiAgZGVjaW1hbF9zZXBhcmF0b3I6IHN0cmluZ1xyXG4gIHRob3VzYW5kc19zZXBhcmF0b3I6IHN0cmluZ1xyXG4gIGxhYmVsX3ByaW50ZXJfbmFtZTogc3RyaW5nXHJcbiAgcmVjZWlwdF9wcmludGVyX25hbWU6IHN0cmluZ1xyXG4gIG90aGVyc19wcmludGVyX25hbWU6IHN0cmluZ1xyXG4gIHRlcnJpdG9yaWVzOiBudW1iZXJbXVxyXG4gIHVzZV9iaWxsaW5nPzogYm9vbGVhblxyXG4gIHRyYW5zbGF0aW9uczogVHJhbnNsYXRpb25zXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgTG9jYXRpb25UeXBlIGV4dGVuZHMgU3ltZm9ueU1vZGVsIHtcclxuICBjb2RlOiBzdHJpbmdcclxuICBuYW1lOiBzdHJpbmdcclxuICBwcmlvcml0eTogbnVtYmVyXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgVW5pdCBleHRlbmRzIFN5bWZvbnlNb2RlbCB7XHJcbiAgbmFtZTogc3RyaW5nXHJcbiAgd2VpZ2h0OiBzdHJpbmdcclxuICBkaW1lbnNpb246IHN0cmluZ1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIExvY2F0aW9uVHlwZUZpZWxkcyB7XHJcbiAgY2l0eTogQ2l0eVxyXG4gIHBvc3RhbENvZGU6IFBvc3RhbENvZGVcclxuICBzdWJ1cmI6IFN1YnVyYlxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIENpdHkge1xyXG4gIGVuYWJsZWQ6IGJvb2xlYW5cclxuICByZXF1aXJlZDogYm9vbGVhblxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFBvc3RhbENvZGUge1xyXG4gIGVuYWJsZWQ6IGJvb2xlYW5cclxuICByZXF1aXJlZDogYm9vbGVhblxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFN1YnVyYiB7XHJcbiAgZW5hYmxlZDogYm9vbGVhblxyXG4gIHJlcXVpcmVkOiBib29sZWFuXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgTGFuZ3VhZ2UgZXh0ZW5kcyBTeW1mb255TW9kZWwge1xyXG4gIGNvZGU6IHN0cmluZ1xyXG4gIG5hbWU6IHN0cmluZ1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFN0YXRlIGV4dGVuZHMgU3ltZm9ueU1vZGVsIHtcclxuICBjb3VudHJ5OiBDb3VudHJ5XHJcbiAgY29kZTogc3RyaW5nXHJcbiAgbmFtZTogc3RyaW5nXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ3VycmVuY3kgZXh0ZW5kcyBTeW1mb255TW9kZWwge1xyXG4gIGNvZGU6IHN0cmluZ1xyXG4gIG5hbWU6IHN0cmluZ1xyXG4gIHN5bWJvbDogc3RyaW5nXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSWRlbnRpZmljYXRpb25UeXBlIGV4dGVuZHMgU3ltZm9ueU1vZGVsIHtcclxuICBjb2RlOiBzdHJpbmdcclxuICBjb3VudHJ5SWQ6IG51bWJlclxyXG4gIGlkZW50aWZpY2F0aW9uVHlwZTogbnVtYmVyIHwgbnVsbFxyXG4gIG5hbWU6IHN0cmluZ1xyXG4gIHZpZXdTZWN0aW9uPzoge1xyXG4gICAgW2tleTogc3RyaW5nXTogYm9vbGVhblxyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBPcGVyYXRpb25UeXBlIGV4dGVuZHMgU3ltZm9ueU1vZGVsIHtcclxuICBjb2RlOiBzdHJpbmdcclxuICBuYW1lOiBzdHJpbmdcclxuICB0cmFuc2xhdGlvbnM/OiBUcmFuc2xhdGlvbnNcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBCb2FyZGluZ1Byb2Nlc3NTdGF0dXMge1xyXG4gIGlkOiBudW1iZXJcclxuICBjb2RlOiBzdHJpbmdcclxuICBjcmVhdGVkQXQ6IHN0cmluZ1xyXG4gIHVwZGF0ZWRBdDogc3RyaW5nXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRXh0cmFDaGFyZ2UgZXh0ZW5kcyBTeW1mb255TW9kZWwge1xyXG4gIGNvZGU6IHN0cmluZ1xyXG4gIG5hbWU6IHN0cmluZ1xyXG4gIGlzRGlzY291bnQ6IGJvb2xlYW5cclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBQb3N0YWxMb2NhdGlvbiBleHRlbmRzIFN5bWZvbnlNb2RlbCB7XHJcbiAgY2l0eTogc3RyaW5nIHwgbnVsbFxyXG4gIHBvc3RhbENvZGU6IHN0cmluZyB8IG51bGxcclxuICBzdWJ1cmI6IHN0cmluZyB8IG51bGxcclxuICBzdGF0ZUNvZGU6IHN0cmluZyB8IG51bGxcclxuICBpYXRhOiBzdHJpbmdcclxuICBzdGF0ZTogU3RhdGUgfCBudWxsXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgUmVnaW9uIGV4dGVuZHMgU3ltZm9ueU1vZGVsIHtcclxuICBjb2RlOiBzdHJpbmdcclxuICBuYW1lOiBzdHJpbmdcclxuICBjb3VudHJ5OiBDb3VudHJ5XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgWm9uZSBleHRlbmRzIFN5bWZvbnlNb2RlbCB7XHJcbiAgY29kZTogc3RyaW5nXHJcbiAgbmFtZTogc3RyaW5nXHJcbiAgY291bnRyeTogQ291bnRyeVxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIE1hbmFnZW1lbnRBcmVhIGV4dGVuZHMgU3ltZm9ueU1vZGVsIHtcclxuICBuYW1lOiBzdHJpbmdcclxuICBjb3VudHJ5OiBDb3VudHJ5XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ2FuY2VsbGF0aW9uUmVhc29uIGV4dGVuZHMgU3ltZm9ueU1vZGVsIHtcclxuICBjb2RlOiBzdHJpbmdcclxuICBuYW1lOiBzdHJpbmdcclxuICBldmVudFJlYXNvbkNvZGU6IHN0cmluZ1xyXG4gIGNvdW50cnlJZDogbnVtYmVyXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ3VycmVuY3kgZXh0ZW5kcyBTeW1mb255TW9kZWwge1xyXG4gIGNvZGU6IHN0cmluZ1xyXG4gIG5hbWU6IHN0cmluZ1xyXG4gIHN5bWJvbDogc3RyaW5nXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgVW5pdCBleHRlbmRzIFN5bWZvbnlNb2RlbCB7XHJcbiAgbmFtZTogc3RyaW5nXHJcbiAgd2VpZ2h0OiBzdHJpbmdcclxuICBkaW1lbnNpb246IHN0cmluZ1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNoaXBtZW50U2NvcGUgZXh0ZW5kcyBTeW1mb255TW9kZWwge1xyXG4gIGNvZGU6IHN0cmluZ1xyXG4gIG5hbWU6IHN0cmluZ1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNoaXBtZW50Q29udGVudFR5cGUgZXh0ZW5kcyBTeW1mb255TW9kZWwge1xyXG4gIGNvZGU6IHN0cmluZ1xyXG4gIG5hbWU6IHN0cmluZ1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEdlbmVyaWNGb2xpbyBleHRlbmRzIFN5bWZvbnlNb2RlbCB7XHJcbiAgY291bnRyeUlkOiBudW1iZXJcclxuICBjb2RlOiBzdHJpbmdcclxuICBjdXN0b21lcjogc3RyaW5nXHJcbiAgYWNjb3VudE51bWJlcjogc3RyaW5nXHJcbiAgY29udGVudDogc3RyaW5nXHJcbiAgcGFja2FnaW5nOiB0cnVlLFxyXG4gIGRlc3RpbmF0aW9uRnVsbE5hbWU6IHN0cmluZ1xyXG4gIGRlc3RpbmF0aW9uQWRkcmVzc0xpbmUxOiBzdHJpbmdcclxuICBkZXN0aW5hdGlvbkFkZHJlc3NMaW5lMjogc3RyaW5nXHJcbiAgZGVzdGluYXRpb25BZGRyZXNzTGluZTM6IHN0cmluZ1xyXG4gIGRlc3RpbmF0aW9uQ291bnRyeUlkOiBudW1iZXJcclxuICBkZXN0aW5hdGlvbkNvdW50cnlDb2RlOiBzdHJpbmdcclxuICBkZXN0aW5hdGlvblBvc3RhbENvZGU6IHN0cmluZ1xyXG4gIGRlc3RpbmF0aW9uQ2l0eU5hbWU6IHN0cmluZ1xyXG4gIGRlc3RpbmF0aW9uQ291bnR5TmFtZTogc3RyaW5nXHJcbiAgZGVzdGluYXRpb25TdGF0ZUNvZGU6IHN0cmluZ1xyXG4gIGRlc3RpbmF0aW9uUGhvbmVDb2RlOiBzdHJpbmdcclxuICBkZXN0aW5hdGlvblBob25lTnVtYmVyOiBzdHJpbmdcclxuICBkZXN0aW5hdGlvbkVtYWlsOiBzdHJpbmdcclxuICBjb3VudHJ5UmVmZXJlbmNlUHJvZHVjdElkczogbnVtYmVyW11cclxuICBwcm9kdWN0TG9jYWxDb2Rlczogc3RyaW5nXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgUHJvZHVjdCBleHRlbmRzIFN5bWZvbnlNb2RlbCB7XHJcbiAgZ2xvYmFsQ29kZTogbnVtYmVyXHJcbiAgbG9jYWxDb2RlOiBzdHJpbmdcclxuICBnbG9iYWxOYW1lOiBzdHJpbmdcclxuICBsb2NhbE5hbWU6IHN0cmluZ1xyXG4gIGlzRG9jdW1lbnQ6IHN0cmluZ1xyXG4gIHJlc3RyaWN0ZWRBY2NvdW50czoge1xyXG4gICAgaWQ6IHN0cmluZ1xyXG4gICAgbnVtYmVyOiBzdHJpbmdcclxuICAgIGlzQWN0aXZlOiBib29sZWFuXHJcbiAgfVtdXHJcbiAgZGlzY291bnRzOiBbXVxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNoaXBtZW50SW5jb21lVHlwZSBleHRlbmRzIFN5bWZvbnlNb2RlbCB7XHJcbiAgY291bnRyeUlkOiBudW1iZXJcclxuICBjb2RlOiBzdHJpbmdcclxuICBuYW1lOiBzdHJpbmdcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBVbmlxdWVGb2xpbyBleHRlbmRzIFN5bWZvbnlNb2RlbCB7XHJcbiAgY29kZTogbnVtYmVyXHJcbiAgY3VzdG9tZXI6IHN0cmluZ1xyXG4gIGNvbnRlbnQ6IHN0cmluZ1xyXG4gIGthZDogc3RyaW5nIHwgbnVsbFxyXG4gIGV4ZWN1dGl2ZTogc3RyaW5nXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU2hpcG1lbnRHcm91cCBleHRlbmRzIFN5bWZvbnlNb2RlbCB7XHJcbiAgY29kZTogc3RyaW5nXHJcbiAgbmFtZTogc3RyaW5nXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU2hpcG1lbnRTdGF0dXMgZXh0ZW5kcyBTeW1mb255TW9kZWwge1xyXG4gIGNvZGU6IHN0cmluZztcclxuICBkZXNjcmlwdGlvbjogc3RyaW5nO1xyXG59XHJcbiJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLWNhdGFsb2cuaW50ZXJmYWNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V4cGVydGVhbS1teC9uZ3gtc2VydmljZXMvc3JjL2xpYi9hcGlzL21vZGVscy9hcGktY2F0YWxvZy5pbnRlcmZhY2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTeW1mb255TW9kZWwsIFRyYW5zbGF0aW9ucyB9IGZyb20gJy4vYXBpLm1vZGVscydcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ291bnRyeSBleHRlbmRzIFN5bWZvbnlNb2RlbCB7XHJcbiAgbmFtZTogc3RyaW5nXHJcbiAgY29kZTogc3RyaW5nXHJcbiAgY29kZUFuZE5hbWU6IHN0cmluZ1xyXG4gIGlzb0NvZGU6IHN0cmluZ1xyXG4gIGNvZGVQaG9uZTogc3RyaW5nXHJcbiAgbG9jYWxlOiBzdHJpbmdcclxuICBsb2NhdGlvblR5cGU6IExvY2F0aW9uVHlwZVxyXG4gIHVuaXQ6IFVuaXRcclxuICB0aW1lem9uZTogc3RyaW5nXHJcbiAgaGFzSW1wb3J0U2VydmljZTogYm9vbGVhblxyXG4gIHBob25lRGlnaXRzOiBudW1iZXJcclxuICBsb2NhdGlvblR5cGVGaWVsZHM6IExvY2F0aW9uVHlwZUZpZWxkc1xyXG4gIHBvc3RhbENvZGVTdWZmaXhSZWdleDogc3RyaW5nXHJcbiAgZGVjaW1hbFBvaW50OiBudW1iZXJcclxuICBtYXhfcXVhbnRpdHlfZG9jdW1lbnRfcGllY2U6IG51bWJlclxyXG4gIG1heF9xdWFudGl0eV9wYWNrYWdlX3BpZWNlOiBudW1iZXJcclxuICB3ZWlnaHRfcmVzdHJpY3Rpb25fcGllY2U6IG51bWJlclxyXG4gIHJlc3RyaWN0aW9uX3NoaXBtZW50OiBudW1iZXJcclxuICByZXN0cmljdGlvbl9kaW1lbnNpb246IG51bWJlclxyXG4gIG1heF9kZWNsYXJlZF92YWx1ZTogbnVtYmVyXHJcbiAgZGVjaW1hbF9zZXBhcmF0b3I6IHN0cmluZ1xyXG4gIHRob3VzYW5kc19zZXBhcmF0b3I6IHN0cmluZ1xyXG4gIGxhYmVsX3ByaW50ZXJfbmFtZTogc3RyaW5nXHJcbiAgcmVjZWlwdF9wcmludGVyX25hbWU6IHN0cmluZ1xyXG4gIG90aGVyc19wcmludGVyX25hbWU6IHN0cmluZ1xyXG4gIHRlcnJpdG9yaWVzOiBudW1iZXJbXVxyXG4gIHVzZV9iaWxsaW5nPzogYm9vbGVhblxyXG4gIHRyYW5zbGF0aW9uczogVHJhbnNsYXRpb25zXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgTG9jYXRpb25UeXBlIGV4dGVuZHMgU3ltZm9ueU1vZGVsIHtcclxuICBjb2RlOiBzdHJpbmdcclxuICBuYW1lOiBzdHJpbmdcclxuICBwcmlvcml0eTogbnVtYmVyXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgVW5pdCBleHRlbmRzIFN5bWZvbnlNb2RlbCB7XHJcbiAgbmFtZTogc3RyaW5nXHJcbiAgd2VpZ2h0OiBzdHJpbmdcclxuICBkaW1lbnNpb246IHN0cmluZ1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIExvY2F0aW9uVHlwZUZpZWxkcyB7XHJcbiAgY2l0eTogQ2l0eVxyXG4gIHBvc3RhbENvZGU6IFBvc3RhbENvZGVcclxuICBzdWJ1cmI6IFN1YnVyYlxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIENpdHkge1xyXG4gIGVuYWJsZWQ6IGJvb2xlYW5cclxuICByZXF1aXJlZDogYm9vbGVhblxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFBvc3RhbENvZGUge1xyXG4gIGVuYWJsZWQ6IGJvb2xlYW5cclxuICByZXF1aXJlZDogYm9vbGVhblxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFN1YnVyYiB7XHJcbiAgZW5hYmxlZDogYm9vbGVhblxyXG4gIHJlcXVpcmVkOiBib29sZWFuXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgTGFuZ3VhZ2UgZXh0ZW5kcyBTeW1mb255TW9kZWwge1xyXG4gIGNvZGU6IHN0cmluZ1xyXG4gIG5hbWU6IHN0cmluZ1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFN0YXRlIGV4dGVuZHMgU3ltZm9ueU1vZGVsIHtcclxuICBjb3VudHJ5OiBDb3VudHJ5XHJcbiAgY29kZTogc3RyaW5nXHJcbiAgbmFtZTogc3RyaW5nXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ3VycmVuY3kgZXh0ZW5kcyBTeW1mb255TW9kZWwge1xyXG4gIGNvZGU6IHN0cmluZ1xyXG4gIG5hbWU6IHN0cmluZ1xyXG4gIHN5bWJvbDogc3RyaW5nXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSWRlbnRpZmljYXRpb25UeXBlIGV4dGVuZHMgU3ltZm9ueU1vZGVsIHtcclxuICBjb2RlOiBzdHJpbmdcclxuICBjb3VudHJ5SWQ6IG51bWJlclxyXG4gIGlkZW50aWZpY2F0aW9uVHlwZTogbnVtYmVyIHwgbnVsbFxyXG4gIG5hbWU6IHN0cmluZ1xyXG4gIHZpZXdTZWN0aW9uPzoge1xyXG4gICAgW2tleTogc3RyaW5nXTogYm9vbGVhblxyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBPcGVyYXRpb25UeXBlIGV4dGVuZHMgU3ltZm9ueU1vZGVsIHtcclxuICBjb2RlOiBzdHJpbmdcclxuICBuYW1lOiBzdHJpbmdcclxuICB0cmFuc2xhdGlvbnM/OiBUcmFuc2xhdGlvbnNcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBCb2FyZGluZ1Byb2Nlc3NTdGF0dXMge1xyXG4gIGlkOiBudW1iZXJcclxuICBjb2RlOiBzdHJpbmdcclxuICBjcmVhdGVkQXQ6IHN0cmluZ1xyXG4gIHVwZGF0ZWRBdDogc3RyaW5nXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRXh0cmFDaGFyZ2UgZXh0ZW5kcyBTeW1mb255TW9kZWwge1xyXG4gIGNvZGU6IHN0cmluZ1xyXG4gIG5hbWU6IHN0cmluZ1xyXG4gIGlzRGlzY291bnQ6IGJvb2xlYW5cclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBQb3N0YWxMb2NhdGlvbiBleHRlbmRzIFN5bWZvbnlNb2RlbCB7XHJcbiAgY2l0eTogc3RyaW5nIHwgbnVsbFxyXG4gIHBvc3RhbENvZGU6IHN0cmluZyB8IG51bGxcclxuICBzdWJ1cmI6IHN0cmluZyB8IG51bGxcclxuICBzdGF0ZUNvZGU6IHN0cmluZyB8IG51bGxcclxuICBpYXRhOiBzdHJpbmdcclxuICBzdGF0ZTogU3RhdGUgfCBudWxsXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgUmVnaW9uIGV4dGVuZHMgU3ltZm9ueU1vZGVsIHtcclxuICBjb2RlOiBzdHJpbmdcclxuICBuYW1lOiBzdHJpbmdcclxuICBjb3VudHJ5OiBDb3VudHJ5XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgWm9uZSBleHRlbmRzIFN5bWZvbnlNb2RlbCB7XHJcbiAgY29kZTogc3RyaW5nXHJcbiAgbmFtZTogc3RyaW5nXHJcbiAgY291bnRyeTogQ291bnRyeVxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIE1hbmFnZW1lbnRBcmVhIGV4dGVuZHMgU3ltZm9ueU1vZGVsIHtcclxuICBuYW1lOiBzdHJpbmdcclxuICBjb3VudHJ5OiBDb3VudHJ5XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ2FuY2VsbGF0aW9uUmVhc29uIGV4dGVuZHMgU3ltZm9ueU1vZGVsIHtcclxuICBjb2RlOiBzdHJpbmdcclxuICBuYW1lOiBzdHJpbmdcclxuICBldmVudFJlYXNvbkNvZGU6IHN0cmluZ1xyXG4gIGNvdW50cnlJZDogbnVtYmVyXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ3VycmVuY3kgZXh0ZW5kcyBTeW1mb255TW9kZWwge1xyXG4gIGNvZGU6IHN0cmluZ1xyXG4gIG5hbWU6IHN0cmluZ1xyXG4gIHN5bWJvbDogc3RyaW5nXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgVW5pdCBleHRlbmRzIFN5bWZvbnlNb2RlbCB7XHJcbiAgbmFtZTogc3RyaW5nXHJcbiAgd2VpZ2h0OiBzdHJpbmdcclxuICBkaW1lbnNpb246IHN0cmluZ1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNoaXBtZW50U2NvcGUgZXh0ZW5kcyBTeW1mb255TW9kZWwge1xyXG4gIGNvZGU6IHN0cmluZ1xyXG4gIG5hbWU6IHN0cmluZ1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNoaXBtZW50Q29udGVudFR5cGUgZXh0ZW5kcyBTeW1mb255TW9kZWwge1xyXG4gIGNvZGU6IHN0cmluZ1xyXG4gIG5hbWU6IHN0cmluZ1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEdlbmVyaWNGb2xpbyBleHRlbmRzIFN5bWZvbnlNb2RlbCB7XHJcbiAgY291bnRyeUlkOiBudW1iZXJcclxuICBjb2RlOiBzdHJpbmdcclxuICBjdXN0b21lcjogc3RyaW5nXHJcbiAgYWNjb3VudE51bWJlcjogc3RyaW5nXHJcbiAgY29udGVudDogc3RyaW5nXHJcbiAgcGFja2FnaW5nOiB0cnVlLFxyXG4gIGRlc3RpbmF0aW9uRnVsbE5hbWU6IHN0cmluZ1xyXG4gIGRlc3RpbmF0aW9uQWRkcmVzc0xpbmUxOiBzdHJpbmdcclxuICBkZXN0aW5hdGlvbkFkZHJlc3NMaW5lMjogc3RyaW5nXHJcbiAgZGVzdGluYXRpb25BZGRyZXNzTGluZTM6IHN0cmluZ1xyXG4gIGRlc3RpbmF0aW9uQ291bnRyeUlkOiBudW1iZXJcclxuICBkZXN0aW5hdGlvbkNvdW50cnlDb2RlOiBzdHJpbmdcclxuICBkZXN0aW5hdGlvblBvc3RhbENvZGU6IHN0cmluZ1xyXG4gIGRlc3RpbmF0aW9uQ2l0eU5hbWU6IHN0cmluZ1xyXG4gIGRlc3RpbmF0aW9uQ291bnR5TmFtZTogc3RyaW5nXHJcbiAgZGVzdGluYXRpb25TdGF0ZUNvZGU6IHN0cmluZ1xyXG4gIGRlc3RpbmF0aW9uUGhvbmVDb2RlOiBzdHJpbmdcclxuICBkZXN0aW5hdGlvblBob25lTnVtYmVyOiBzdHJpbmdcclxuICBkZXN0aW5hdGlvbkVtYWlsOiBzdHJpbmdcclxuICBjb3VudHJ5UmVmZXJlbmNlUHJvZHVjdElkczogbnVtYmVyW11cclxuICBwcm9kdWN0TG9jYWxDb2Rlczogc3RyaW5nXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgUHJvZHVjdCBleHRlbmRzIFN5bWZvbnlNb2RlbCB7XHJcbiAgZ2xvYmFsQ29kZTogbnVtYmVyXHJcbiAgbG9jYWxDb2RlOiBzdHJpbmdcclxuICBnbG9iYWxOYW1lOiBzdHJpbmdcclxuICBsb2NhbE5hbWU6IHN0cmluZ1xyXG4gIGlzRG9jdW1lbnQ6IHN0cmluZ1xyXG4gIHJlc3RyaWN0ZWRBY2NvdW50czoge1xyXG4gICAgaWQ6IHN0cmluZ1xyXG4gICAgbnVtYmVyOiBzdHJpbmdcclxuICAgIGlzQWN0aXZlOiBib29sZWFuXHJcbiAgfVtdXHJcbiAgZGlzY291bnRzOiBbXVxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNoaXBtZW50SW5jb21lVHlwZSBleHRlbmRzIFN5bWZvbnlNb2RlbCB7XHJcbiAgY291bnRyeUlkOiBudW1iZXJcclxuICBjb2RlOiBzdHJpbmdcclxuICBuYW1lOiBzdHJpbmdcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBVbmlxdWVGb2xpbyBleHRlbmRzIFN5bWZvbnlNb2RlbCB7XHJcbiAgY29kZTogbnVtYmVyXHJcbiAgY3VzdG9tZXI6IHN0cmluZ1xyXG4gIGNvbnRlbnQ6IHN0cmluZ1xyXG4gIGthZDogc3RyaW5nIHwgbnVsbFxyXG4gIGV4ZWN1dGl2ZTogc3RyaW5nXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU2hpcG1lbnRHcm91cCBleHRlbmRzIFN5bWZvbnlNb2RlbCB7XHJcbiAgY29kZTogc3RyaW5nXHJcbiAgbmFtZTogc3RyaW5nXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU2hpcG1lbnRTdGF0dXMgZXh0ZW5kcyBTeW1mb255TW9kZWwge1xyXG4gIGNvZGU6IHN0cmluZztcclxuICBkZXNjcmlwdGlvbjogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFF1ZXN0aW9uIGV4dGVuZHMgU3ltZm9ueU1vZGVsIHtcclxuICBkZXNjcmlwdGlvbjogc3RyaW5nXHJcbiAgdHlwZTogc3RyaW5nXHJcbiAgcXVlc3Rpb25PcmRlcjogbnVtYmVyXHJcbiAgY291bnRyeUlkOiBudW1iZXJcclxuICBpc1JlcXVpcmVkVmFsdWU6IGJvb2xlYW5cclxufVxyXG4iXX0=
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLWNhdGFsb2cudHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9leHBlcnRlYW0tbXgvbmd4LXNlcnZpY2VzL3NyYy9saWIvYXBpcy9tb2RlbHMvYXBpLWNhdGFsb2cudHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ2FuY2VsbGF0aW9uUmVhc29uLFxyXG4gIENvdW50cnksXHJcbiAgQ3VycmVuY3ksXHJcbiAgRXh0cmFDaGFyZ2UsXHJcbiAgR2VuZXJpY0ZvbGlvLFxyXG4gIElkZW50aWZpY2F0aW9uVHlwZSxcclxuICBMYW5ndWFnZSxcclxuICBNYW5hZ2VtZW50QXJlYSxcclxuICBPcGVyYXRpb25UeXBlLFxyXG4gIFBvc3RhbExvY2F0aW9uLFxyXG4gIFByb2R1Y3QsXHJcbiAgUmVnaW9uLFxyXG4gIFNoaXBtZW50Q29udGVudFR5cGUsXHJcbiAgU2hpcG1lbnRHcm91cCxcclxuICBTaGlwbWVudEluY29tZVR5cGUsXHJcbiAgU2hpcG1lbnRTY29wZSxcclxuICBTaGlwbWVudFN0YXR1cyxcclxuICBVbmlxdWVGb2xpbyxcclxuICBVbml0LFxyXG4gIFpvbmVcclxufSBmcm9tICcuL2FwaS1jYXRhbG9nLmludGVyZmFjZXMnXHJcblxyXG5leHBvcnQgdHlwZSBPcGVyYXRpb25UeXBlc091dCA9IHtcclxuICB0b3RhbDogbnVtYmVyXHJcbiAgb3BlcmF0aW9uVHlwZXM6IE9wZXJhdGlvblR5cGVbXVxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElkZW50aWZpY2F0aW9uVHlwZXNPdXQge1xyXG4gIHRvdGFsOiBudW1iZXJcclxuICBpZGVudGlmaWNhdGlvblR5cGVzOiBJZGVudGlmaWNhdGlvblR5cGVbXVxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBFeHRyYUNoYXJnZXNPdXQgPSB7XHJcbiAgdG90YWw6IG51bWJlclxyXG4gIGV4dHJhY2hhcmdlczogRXh0cmFDaGFyZ2VbXVxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBDb3VudHJpZXNPdXQgPSB7XHJcbiAgdG90YWw6IG51bWJlclxyXG4gIGNvdW50cmllczogQ291bnRyeVtdXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIENvdW50cnlJbiA9IHtcclxuICBjb2RlOiBzdHJpbmdcclxuICBuYW1lOiBzdHJpbmdcclxuICBsb2NhdGlvblR5cGVJZDogbnVtYmVyXHJcbiAgdW5pdElkOiBudW1iZXJcclxuICB0aW1lem9uZTogc3RyaW5nXHJcbiAgaGFzSW1wb3J0U2VydmljZTogYm9vbGVhblxyXG4gIGlzQWN0aXZlOiBib29sZWFuXHJcbiAgaXNvQ29kZTogc3RyaW5nXHJcbiAgY29kZVBob25lOiBzdHJpbmdcclxuICBwaG9uZURpZ2l0czogbnVtYmVyXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIENvdW50cnlPdXQgPSB7XHJcbiAgY291bnRyeTogQ291bnRyeVxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBQb3N0YWxMb2NhdGlvbnNPdXQgPSB7XHJcbiAgdG90YWw6IG51bWJlclxyXG4gIHBvc3RhbExvY2F0aW9uczogUG9zdGFsTG9jYXRpb25bXVxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBSZWdpb25zT3V0ID0ge1xyXG4gIHRvdGFsOiBudW1iZXJcclxuICByZWdpb25zOiBSZWdpb25bXVxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBab25lc091dCA9IHtcclxuICB0b3RhbDogbnVtYmVyXHJcbiAgem9uZXM6IFpvbmVbXVxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBNYW5hZ2VtZW50QXJlYXNPdXQgPSB7XHJcbiAgdG90YWw6IG51bWJlclxyXG4gIHJlZ2lvbnM6IE1hbmFnZW1lbnRBcmVhW11cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgQ2FuY2VsbGF0aW9uUmVhc29uc091dCA9IHtcclxuICB0b3RhbDogbnVtYmVyXHJcbiAgY2FuY2VsbGF0aW9uUmVhc29uczogQ2FuY2VsbGF0aW9uUmVhc29uW11cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgQ2FuY2VsbGF0aW9uUmVhc29uSW4gPSB7XHJcbiAgY29kZTogc3RyaW5nXHJcbiAgbmFtZTogc3RyaW5nXHJcbiAgZXZlbnRSZWFzb25Db2RlOiBzdHJpbmcgfCBudWxsXHJcbiAgaXNBY3RpdmU6IGJvb2xlYW5cclxuICBjb3VudHJ5SWQ6IG51bWJlclxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBDYW5jZWxsYXRpb25SZWFzb25PdXQgPSB7XHJcbiAgY2FuY2VsbGF0aW9uUmVhc29uOiBDYW5jZWxsYXRpb25SZWFzb25cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgQ3VycmVuY2llc091dCA9IHtcclxuICB0b3RhbDogbnVtYmVyXHJcbiAgY3VycmVuY2llczogQ3VycmVuY3lbXVxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBMYW5ndWFnZXNPdXQgPSB7XHJcbiAgdG90YWw6IG51bWJlclxyXG4gIGxhbmd1YWdlczogTGFuZ3VhZ2VbXVxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBVbml0c091dCA9IHtcclxuICB0b3RhbDogbnVtYmVyXHJcbiAgdW5pdHM6IFVuaXRbXVxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBTaGlwbWVudFNjb3Blc091dCA9IHtcclxuICB0b3RhbDogbnVtYmVyXHJcbiAgc2hpcG1lbnRTY29wZXM6IFNoaXBtZW50U2NvcGVbXVxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBTaGlwbWVudENvbnRlbnRUeXBlc091dCA9IHtcclxuICB0b3RhbDogbnVtYmVyXHJcbiAgc2hpcG1lbnRDb250ZW50VHlwZXM6IFNoaXBtZW50Q29udGVudFR5cGVbXVxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBFeHRyYUNoYXJnZUluID0ge1xyXG4gIGNvZGU6IHN0cmluZ1xyXG4gIG5hbWU6IHN0cmluZ1xyXG4gIGlzRGlzY291bnQ6IGJvb2xlYW5cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgRXh0cmFDaGFyZ2VPdXQgPSB7XHJcbiAgZXh0cmFDaGFyZ2U6IEV4dHJhQ2hhcmdlXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIEdlbmVyaWNGb2xpb3NPdXQgPSB7XHJcbiAgdG90YWw6IG51bWJlclxyXG4gIGdlbmVyaWNGb2xpb3M6IEdlbmVyaWNGb2xpb1tdXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIEdlbmVyaWNGb2xpb0luID0ge1xyXG4gIGFjY291bnROdW1iZXI6IHN0cmluZ1xyXG4gIGNvZGU6IHN0cmluZ1xyXG4gIGNvbnRlbnQ6IHN0cmluZ1xyXG4gIGNvdW50cnlSZWZlcmVuY2VQcm9kdWN0SWRzOiBudW1iZXJbXVxyXG4gIGN1c3RvbWVyOiBzdHJpbmdcclxuICBkZXN0aW5hdGlvbkFkZHJlc3NMaW5lMTogc3RyaW5nXHJcbiAgZGVzdGluYXRpb25BZGRyZXNzTGluZTI6IHN0cmluZ1xyXG4gIGRlc3RpbmF0aW9uQWRkcmVzc0xpbmUzOiBzdHJpbmdcclxuICBkZXN0aW5hdGlvbkNpdHlOYW1lPzogc3RyaW5nXHJcbiAgZGVzdGluYXRpb25Db3VudHJ5SWQ6IG51bWJlclxyXG4gIGRlc3RpbmF0aW9uQ291bnR5TmFtZT86IHN0cmluZ1xyXG4gIGRlc3RpbmF0aW9uRW1haWw6IHN0cmluZ1xyXG4gIGRlc3RpbmF0aW9uRnVsbE5hbWU6IHN0cmluZ1xyXG4gIGRlc3RpbmF0aW9uUGhvbmVDb2RlOiBzdHJpbmdcclxuICBkZXN0aW5hdGlvblBob25lTnVtYmVyOiBzdHJpbmdcclxuICBkZXN0aW5hdGlvblBvc3RhbENvZGU/OiBzdHJpbmdcclxuICBkZXN0aW5hdGlvblN0YXRlQ29kZT86IHN0cmluZ1xyXG4gIGlzQWN0aXZlOiBib29sZWFuXHJcbiAgcGFja2FnaW5nOiBib29sZWFuXHJcbiAgY291bnRyeUlkOiBudW1iZXJcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgR2VuZXJpY0ZvbGlvT3V0ID0ge1xyXG4gIGdlbmVyaWNGb2xpbzogR2VuZXJpY0ZvbGlvXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIFByb2R1Y3RJbiA9IHtcclxuICBnbG9iYWxDb2RlOiBudW1iZXJcclxuICBsb2NhbENvZGU6IHN0cmluZ1xyXG4gIGdsb2JhbE5hbWU6IHN0cmluZ1xyXG4gIGxvY2FsTmFtZTogc3RyaW5nXHJcbiAgaXNEb2N1bWVudDogYm9vbGVhblxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBQcm9kdWN0T3V0ID0ge1xyXG4gIHByb2R1Y3Q6IFByb2R1Y3RcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgU2hpcG1lbnRJbmNvbWVUeXBlc091dCA9IHtcclxuICB0b3RhbDogbnVtYmVyXHJcbiAgc2hpcG1lbnRJbmNvbWVUeXBlczogU2hpcG1lbnRJbmNvbWVUeXBlW11cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgU2hpcG1lbnRJbmNvbWVUeXBlSW4gPSB7XHJcbiAgY291bnRyeUlkOiBudW1iZXJcclxuICBjb2RlOiBzdHJpbmdcclxuICBuYW1lOiBzdHJpbmdcclxuICBpc0FjdGl2ZTogYm9vbGVhblxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBTaGlwbWVudEluY29tZVR5cGVPdXQgPSB7XHJcbiAgc2hpcG1lbnRJbmNvbWVUeXBlOiBTaGlwbWVudEluY29tZVR5cGVcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgVW5pcXVlRm9saW9JbiA9IHtcclxuICBjb2RlOiBudW1iZXJcclxuICBjdXN0b21lcjogc3RyaW5nXHJcbiAgY29udGVudDogc3RyaW5nXHJcbiAga2FkOiBzdHJpbmcgfCBudWxsXHJcbiAgZXhlY3V0aXZlOiBzdHJpbmdcclxuICBpc0FjdGl2ZTogYm9vbGVhblxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBVbmlxdWVGb2xpb091dCA9IHtcclxuICB1bmlxdWVGb2xpbzogVW5pcXVlRm9saW9cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgVW5pcXVlRm9saW9zT3V0ID0ge1xyXG4gIHRvdGFsOiBudW1iZXJcclxuICB1bmlxdWVGb2xpb3M6IFVuaXF1ZUZvbGlvW11cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgU2hpcG1lbnRHcm91cHNPdXQgPSB7XHJcbiAgc2hpcG1lbnRHcm91cHM6IFNoaXBtZW50R3JvdXBbXVxyXG4gIHRvdGFsOiBudW1iZXJcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgU2hpcG1lbnRTdGF0dXNlc091dCA9IHtcclxuICBzaGlwbWVudFN0YXR1c2VzOiBTaGlwbWVudFN0YXR1c1tdXHJcbiAgdG90YWw6IG51bWJlclxyXG59XHJcbiJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLWNhdGFsb2cudHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9leHBlcnRlYW0tbXgvbmd4LXNlcnZpY2VzL3NyYy9saWIvYXBpcy9tb2RlbHMvYXBpLWNhdGFsb2cudHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ2FuY2VsbGF0aW9uUmVhc29uLFxyXG4gIENvdW50cnksXHJcbiAgQ3VycmVuY3ksXHJcbiAgRXh0cmFDaGFyZ2UsXHJcbiAgR2VuZXJpY0ZvbGlvLFxyXG4gIElkZW50aWZpY2F0aW9uVHlwZSxcclxuICBMYW5ndWFnZSxcclxuICBNYW5hZ2VtZW50QXJlYSxcclxuICBPcGVyYXRpb25UeXBlLFxyXG4gIFBvc3RhbExvY2F0aW9uLFxyXG4gIFByb2R1Y3QsXHJcbiAgUXVlc3Rpb24sXHJcbiAgUmVnaW9uLFxyXG4gIFNoaXBtZW50Q29udGVudFR5cGUsXHJcbiAgU2hpcG1lbnRHcm91cCxcclxuICBTaGlwbWVudEluY29tZVR5cGUsXHJcbiAgU2hpcG1lbnRTY29wZSxcclxuICBTaGlwbWVudFN0YXR1cyxcclxuICBVbmlxdWVGb2xpbyxcclxuICBVbml0LFxyXG4gIFpvbmVcclxufSBmcm9tICcuL2FwaS1jYXRhbG9nLmludGVyZmFjZXMnXHJcblxyXG5leHBvcnQgdHlwZSBPcGVyYXRpb25UeXBlc091dCA9IHtcclxuICB0b3RhbDogbnVtYmVyXHJcbiAgb3BlcmF0aW9uVHlwZXM6IE9wZXJhdGlvblR5cGVbXVxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElkZW50aWZpY2F0aW9uVHlwZXNPdXQge1xyXG4gIHRvdGFsOiBudW1iZXJcclxuICBpZGVudGlmaWNhdGlvblR5cGVzOiBJZGVudGlmaWNhdGlvblR5cGVbXVxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBFeHRyYUNoYXJnZXNPdXQgPSB7XHJcbiAgdG90YWw6IG51bWJlclxyXG4gIGV4dHJhY2hhcmdlczogRXh0cmFDaGFyZ2VbXVxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBDb3VudHJpZXNPdXQgPSB7XHJcbiAgdG90YWw6IG51bWJlclxyXG4gIGNvdW50cmllczogQ291bnRyeVtdXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIENvdW50cnlJbiA9IHtcclxuICBjb2RlOiBzdHJpbmdcclxuICBuYW1lOiBzdHJpbmdcclxuICBsb2NhdGlvblR5cGVJZDogbnVtYmVyXHJcbiAgdW5pdElkOiBudW1iZXJcclxuICB0aW1lem9uZTogc3RyaW5nXHJcbiAgaGFzSW1wb3J0U2VydmljZTogYm9vbGVhblxyXG4gIGlzQWN0aXZlOiBib29sZWFuXHJcbiAgaXNvQ29kZTogc3RyaW5nXHJcbiAgY29kZVBob25lOiBzdHJpbmdcclxuICBwaG9uZURpZ2l0czogbnVtYmVyXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIENvdW50cnlPdXQgPSB7XHJcbiAgY291bnRyeTogQ291bnRyeVxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBQb3N0YWxMb2NhdGlvbnNPdXQgPSB7XHJcbiAgdG90YWw6IG51bWJlclxyXG4gIHBvc3RhbExvY2F0aW9uczogUG9zdGFsTG9jYXRpb25bXVxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBSZWdpb25zT3V0ID0ge1xyXG4gIHRvdGFsOiBudW1iZXJcclxuICByZWdpb25zOiBSZWdpb25bXVxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBab25lc091dCA9IHtcclxuICB0b3RhbDogbnVtYmVyXHJcbiAgem9uZXM6IFpvbmVbXVxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBNYW5hZ2VtZW50QXJlYXNPdXQgPSB7XHJcbiAgdG90YWw6IG51bWJlclxyXG4gIHJlZ2lvbnM6IE1hbmFnZW1lbnRBcmVhW11cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgQ2FuY2VsbGF0aW9uUmVhc29uc091dCA9IHtcclxuICB0b3RhbDogbnVtYmVyXHJcbiAgY2FuY2VsbGF0aW9uUmVhc29uczogQ2FuY2VsbGF0aW9uUmVhc29uW11cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgQ2FuY2VsbGF0aW9uUmVhc29uSW4gPSB7XHJcbiAgY29kZTogc3RyaW5nXHJcbiAgbmFtZTogc3RyaW5nXHJcbiAgZXZlbnRSZWFzb25Db2RlOiBzdHJpbmcgfCBudWxsXHJcbiAgaXNBY3RpdmU6IGJvb2xlYW5cclxuICBjb3VudHJ5SWQ6IG51bWJlclxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBDYW5jZWxsYXRpb25SZWFzb25PdXQgPSB7XHJcbiAgY2FuY2VsbGF0aW9uUmVhc29uOiBDYW5jZWxsYXRpb25SZWFzb25cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgQ3VycmVuY2llc091dCA9IHtcclxuICB0b3RhbDogbnVtYmVyXHJcbiAgY3VycmVuY2llczogQ3VycmVuY3lbXVxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBMYW5ndWFnZXNPdXQgPSB7XHJcbiAgdG90YWw6IG51bWJlclxyXG4gIGxhbmd1YWdlczogTGFuZ3VhZ2VbXVxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBVbml0c091dCA9IHtcclxuICB0b3RhbDogbnVtYmVyXHJcbiAgdW5pdHM6IFVuaXRbXVxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBTaGlwbWVudFNjb3Blc091dCA9IHtcclxuICB0b3RhbDogbnVtYmVyXHJcbiAgc2hpcG1lbnRTY29wZXM6IFNoaXBtZW50U2NvcGVbXVxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBTaGlwbWVudENvbnRlbnRUeXBlc091dCA9IHtcclxuICB0b3RhbDogbnVtYmVyXHJcbiAgc2hpcG1lbnRDb250ZW50VHlwZXM6IFNoaXBtZW50Q29udGVudFR5cGVbXVxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBFeHRyYUNoYXJnZUluID0ge1xyXG4gIGNvZGU6IHN0cmluZ1xyXG4gIG5hbWU6IHN0cmluZ1xyXG4gIGlzRGlzY291bnQ6IGJvb2xlYW5cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgRXh0cmFDaGFyZ2VPdXQgPSB7XHJcbiAgZXh0cmFDaGFyZ2U6IEV4dHJhQ2hhcmdlXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIEdlbmVyaWNGb2xpb3NPdXQgPSB7XHJcbiAgdG90YWw6IG51bWJlclxyXG4gIGdlbmVyaWNGb2xpb3M6IEdlbmVyaWNGb2xpb1tdXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIEdlbmVyaWNGb2xpb0luID0ge1xyXG4gIGFjY291bnROdW1iZXI6IHN0cmluZ1xyXG4gIGNvZGU6IHN0cmluZ1xyXG4gIGNvbnRlbnQ6IHN0cmluZ1xyXG4gIGNvdW50cnlSZWZlcmVuY2VQcm9kdWN0SWRzOiBudW1iZXJbXVxyXG4gIGN1c3RvbWVyOiBzdHJpbmdcclxuICBkZXN0aW5hdGlvbkFkZHJlc3NMaW5lMTogc3RyaW5nXHJcbiAgZGVzdGluYXRpb25BZGRyZXNzTGluZTI6IHN0cmluZ1xyXG4gIGRlc3RpbmF0aW9uQWRkcmVzc0xpbmUzOiBzdHJpbmdcclxuICBkZXN0aW5hdGlvbkNpdHlOYW1lPzogc3RyaW5nXHJcbiAgZGVzdGluYXRpb25Db3VudHJ5SWQ6IG51bWJlclxyXG4gIGRlc3RpbmF0aW9uQ291bnR5TmFtZT86IHN0cmluZ1xyXG4gIGRlc3RpbmF0aW9uRW1haWw6IHN0cmluZ1xyXG4gIGRlc3RpbmF0aW9uRnVsbE5hbWU6IHN0cmluZ1xyXG4gIGRlc3RpbmF0aW9uUGhvbmVDb2RlOiBzdHJpbmdcclxuICBkZXN0aW5hdGlvblBob25lTnVtYmVyOiBzdHJpbmdcclxuICBkZXN0aW5hdGlvblBvc3RhbENvZGU/OiBzdHJpbmdcclxuICBkZXN0aW5hdGlvblN0YXRlQ29kZT86IHN0cmluZ1xyXG4gIGlzQWN0aXZlOiBib29sZWFuXHJcbiAgcGFja2FnaW5nOiBib29sZWFuXHJcbiAgY291bnRyeUlkOiBudW1iZXJcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgR2VuZXJpY0ZvbGlvT3V0ID0ge1xyXG4gIGdlbmVyaWNGb2xpbzogR2VuZXJpY0ZvbGlvXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIFByb2R1Y3RJbiA9IHtcclxuICBnbG9iYWxDb2RlOiBudW1iZXJcclxuICBsb2NhbENvZGU6IHN0cmluZ1xyXG4gIGdsb2JhbE5hbWU6IHN0cmluZ1xyXG4gIGxvY2FsTmFtZTogc3RyaW5nXHJcbiAgaXNEb2N1bWVudDogYm9vbGVhblxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBQcm9kdWN0T3V0ID0ge1xyXG4gIHByb2R1Y3Q6IFByb2R1Y3RcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgU2hpcG1lbnRJbmNvbWVUeXBlc091dCA9IHtcclxuICB0b3RhbDogbnVtYmVyXHJcbiAgc2hpcG1lbnRJbmNvbWVUeXBlczogU2hpcG1lbnRJbmNvbWVUeXBlW11cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgU2hpcG1lbnRJbmNvbWVUeXBlSW4gPSB7XHJcbiAgY291bnRyeUlkOiBudW1iZXJcclxuICBjb2RlOiBzdHJpbmdcclxuICBuYW1lOiBzdHJpbmdcclxuICBpc0FjdGl2ZTogYm9vbGVhblxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBTaGlwbWVudEluY29tZVR5cGVPdXQgPSB7XHJcbiAgc2hpcG1lbnRJbmNvbWVUeXBlOiBTaGlwbWVudEluY29tZVR5cGVcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgVW5pcXVlRm9saW9JbiA9IHtcclxuICBjb2RlOiBudW1iZXJcclxuICBjdXN0b21lcjogc3RyaW5nXHJcbiAgY29udGVudDogc3RyaW5nXHJcbiAga2FkOiBzdHJpbmcgfCBudWxsXHJcbiAgZXhlY3V0aXZlOiBzdHJpbmdcclxuICBpc0FjdGl2ZTogYm9vbGVhblxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBVbmlxdWVGb2xpb091dCA9IHtcclxuICB1bmlxdWVGb2xpbzogVW5pcXVlRm9saW9cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgVW5pcXVlRm9saW9zT3V0ID0ge1xyXG4gIHRvdGFsOiBudW1iZXJcclxuICB1bmlxdWVGb2xpb3M6IFVuaXF1ZUZvbGlvW11cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgU2hpcG1lbnRHcm91cHNPdXQgPSB7XHJcbiAgc2hpcG1lbnRHcm91cHM6IFNoaXBtZW50R3JvdXBbXVxyXG4gIHRvdGFsOiBudW1iZXJcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgU2hpcG1lbnRTdGF0dXNlc091dCA9IHtcclxuICBzaGlwbWVudFN0YXR1c2VzOiBTaGlwbWVudFN0YXR1c1tdXHJcbiAgdG90YWw6IG51bWJlclxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBRdWVzdGlvbnNPdXQgPSB7XHJcbiAgcXVlc3Rpb25zOiBRdWVzdGlvbltdXHJcbiAgdG90YWw6IG51bWJlclxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBRdWVzdGlvbk91dCA9IHtcclxuICBxdWVzdGlvbjogUXVlc3Rpb25cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgUXVlc3Rpb25JbiA9IHtcclxuICBkZXNjcmlwdGlvbjogc3RyaW5nXHJcbiAgdHlwZTogJ21hcmtldGluZydcclxuICBxdWVzdGlvbk9yZGVyOiBudW1iZXJcclxuICBpc0FjdGl2ZTogYm9vbGVhblxyXG4gIGNvdW50cnlJZDogbnVtYmVyXHJcbiAgaXNSZXF1aXJlZFZhbHVlOiBib29sZWFuXHJcbn1cclxuIl19
@@ -817,6 +817,80 @@ class ApiCatalogsService {
817
817
  return this.http.get(`${this.url}/shipment-statuses`, { params })
818
818
  .pipe(map(({ data }) => data));
819
819
  }
820
+ /**
821
+ * Fetches questions from the catalogs API.
822
+ *
823
+ * Sends an HTTP GET request to `${this.url}/questions` using the supplied query parameters
824
+ * and returns the unwrapped payload (`data`) from the API response.
825
+ *
826
+ * @param params - Query parameters to include in the request (e.g. paging, filters, sorting).
827
+ * @returns An Observable that emits the QuestionsOut payload (the `data` field from ApiSuccess<QuestionsOut>).
828
+ */
829
+ getQuestions(params) {
830
+ return this.http.get(`${this.url}/questions`, { params })
831
+ .pipe(map(({ data }) => data));
832
+ }
833
+ /**
834
+ * Retrieve a single question by its id.
835
+ *
836
+ * Sends an HTTP GET request to the questions endpoint and returns an Observable that emits
837
+ * the QuestionOut payload extracted from the API success envelope.
838
+ *
839
+ * @param id - The numeric identifier of the question to fetch.
840
+ * @returns An Observable that emits the requested QuestionOut. The Observable will error
841
+ * if the HTTP request fails (for example network issues or non-2xx responses).
842
+ */
843
+ getQuestion(id) {
844
+ return this.http.get(`${this.url}/questions/${id}`)
845
+ .pipe(map(({ data }) => data));
846
+ }
847
+ /**
848
+ * Sends a POST request to create a new question and returns the created resource.
849
+ *
850
+ * The request payload is sent as an object with a `body` property containing the provided
851
+ * QuestionIn value (i.e. { body: QuestionIn }). On success the HTTP response is expected
852
+ * to follow the ApiSuccess<T> shape; the operator maps that response to the inner `data`
853
+ * object and emits it as a QuestionOut.
854
+ *
855
+ * @param body - The question payload to create (QuestionIn).
856
+ * @returns Observable<QuestionOut> that emits the created question on success.
857
+ */
858
+ postQuestion(body) {
859
+ return this.http.post(`${this.url}/questions`, body)
860
+ .pipe(map(({ data }) => data));
861
+ }
862
+ /**
863
+ * Update a question by its ID.
864
+ *
865
+ * Sends an HTTP PUT to `${this.url}/questions/${id}` with the provided payload.
866
+ * The request body is sent as an object with a `body` property containing the
867
+ * `QuestionIn` data. The server response is expected to be an `ApiSuccess<QuestionOut>`
868
+ * and this method returns an Observable that emits the unwrapped `QuestionOut`.
869
+ *
870
+ * @param id - The identifier of the question to update.
871
+ * @param body - The update payload for the question.
872
+ * @returns An Observable that emits the updated `QuestionOut` on success.
873
+ */
874
+ putQuestion(id, body) {
875
+ return this.http.put(`${this.url}/questions/${id}`, body)
876
+ .pipe(map(({ data }) => data));
877
+ }
878
+ /**
879
+ * Deletes a question by its ID.
880
+ *
881
+ * Sends an HTTP DELETE request to the backend endpoint `/questions/{id}` and
882
+ * returns an Observable that emits the API response's `data` payload (typically an empty object).
883
+ *
884
+ * The implementation maps an ApiSuccess wrapper to its `data` property before emitting.
885
+ *
886
+ * @param id - The numeric identifier of the question to delete.
887
+ * @returns An Observable that emits the deleted resource payload ({} expected) on success.
888
+ * The Observable will emit an error if the HTTP request fails.
889
+ */
890
+ deleteQuestion(id) {
891
+ return this.http.delete(`${this.url}/questions/${id}`)
892
+ .pipe(map(({ data }) => data));
893
+ }
820
894
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ApiCatalogsService, deps: [{ token: 'env' }, { token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
821
895
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ApiCatalogsService, providedIn: 'root' });
822
896
  }