@experteam-mx/ngx-services 18.8.17 → 18.8.19

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.
@@ -100,6 +100,21 @@ export class ApiCatalogsService {
100
100
  return this.http.delete(`${this.url}/identification-types/${id}`)
101
101
  .pipe(map(({ data }) => data));
102
102
  }
103
+ /**
104
+ * Sends a POST request to validate identification type number.
105
+ *
106
+ * The request payload is sent as an object with a `body` property containing the provided
107
+ * IdentificationTypeNumberValidationIn value (i.e. { body: IdentificationTypeNumberValidationIn }). On success the HTTP response is expected
108
+ * to follow the ApiSuccess<T> shape; the operator maps that response to the inner `data`
109
+ * object and emits it as a IdentificationTypeNumberValidationOut.
110
+ *
111
+ * @param body - The identification type number validation payload to validate (IdentificationTypeNumberValidationIn).
112
+ * @returns Observable<IdentificationTypeNumberValidationOut> that emits the validate status.
113
+ */
114
+ postIdentificationtTypeNumberValidation(body) {
115
+ return this.http.post(`${this.url}/identification-types/number-validation`, body)
116
+ .pipe(map(({ data }) => data));
117
+ }
103
118
  /**
104
119
  * Fetches the extra charges based on the provided query parameters.
105
120
  *
@@ -609,4 +624,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
609
624
  type: Inject,
610
625
  args: ['env']
611
626
  }] }, { type: i1.HttpClient }] });
612
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLWNhdGFsb2dzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9leHBlcnRlYW0tbXgvbmd4LXNlcnZpY2VzL3NyYy9saWIvYXBpcy9hcGktY2F0YWxvZ3Muc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUdsRCxPQUFPLEVBQUUsR0FBRyxFQUFjLE1BQU0sTUFBTSxDQUFBOzs7QUFrRHRDLE1BQU0sT0FBTyxrQkFBa0I7SUFFSjtJQUNmO0lBRlYsWUFDeUIsWUFBeUIsRUFDeEMsSUFBZ0I7UUFERCxpQkFBWSxHQUFaLFlBQVksQ0FBYTtRQUN4QyxTQUFJLEdBQUosSUFBSSxDQUFZO0lBQ3RCLENBQUM7SUFFTDs7OztPQUlHO0lBQ0gsSUFBSSxHQUFHO1FBQ0wsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLGNBQWMsSUFBSSxFQUFFLENBQUE7SUFDL0MsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsaUJBQWlCLENBQUUsTUFBbUI7UUFDcEMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBZ0MsR0FBRyxJQUFJLENBQUMsR0FBRyxrQkFBa0IsRUFBRTtZQUNqRixNQUFNO1NBQ1AsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILHNCQUFzQixDQUFFLE1BQW1CO1FBQ3pDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQXFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsdUJBQXVCLEVBQUU7WUFDM0YsTUFBTTtTQUNQLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFB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bnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcclxuaW1wb3J0IHsgRW52aXJvbm1lbnQgfSBmcm9tICcuLi9uZ3gtc2VydmljZXMubW9kZWxzJ1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnXHJcbmltcG9ydCB7IG1hcCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnXHJcbmltcG9ydCB7IEFwaVN1Y2Nlc3MsIFF1ZXJ5UGFyYW1zIH0gZnJvbSAnLi9tb2RlbHMvYXBpLm1vZGVscydcclxuaW1wb3J0IHtcclxuICBCdXNpbmVzc1BhcnR5VHJhZGVyVHlwZXNPdXQsXHJcbiAgQ2FuY2VsbGF0aW9uUmVhc29uSW4sXHJcbiAgQ2FuY2VsbGF0aW9uUmVhc29uT3V0LFxyXG4gIENhbmNlbGxhdGlvblJlYXNvbnNPdXQsXHJcbiAgQ291bnRyaWVzT3V0LFxyXG4gIENvdW50cnlJbixcclxuICBDb3VudHJ5T3V0LFxyXG4gIEN1cnJlbmNpZXNPdXQsXHJcbiAgRXh0cmFDaGFyZ2VJbixcclxuICBFeHRyYUNoYXJnZU91dCxcclxuICBFeHRyYUNoYXJnZXNPdXQsXHJcbiAgR2VuZXJpY0ZvbGlvSW4sXHJcbiAgR2VuZXJpY0ZvbGlvT3V0LFxyXG4gIEdlbmVyaWNGb2xpb3NPdXQsXHJcbiAgSG9saWRheUluLFxyXG4gIEhvbGlkYXlPdXQsXHJcbiAgSG9saWRheXNPdXQsXHJcbiAgSWRlbnRpZmljYXRpb25UeXBlSW4sXHJcbiAgSWRlbnRpZmljYXRpb25UeXBlT3V0LFxyXG4gIElkZW50aWZpY2F0aW9uVHlwZXNPdXQsXHJcbiAgTGFuZ3VhZ2VzT3V0LFxyXG4gIE1hbmFnZW1lbnRBcmVhc091dCxcclxuICBPcGVyYXRpb25UeXBlc091dCxcclxuICBQb3N0YWxMb2NhdGlvbnNPdXQsXHJcbiAgUHJvZHVjdEluLFxyXG4gIFByb2R1Y3RPdXQsXHJcbiAgUXVlc3Rpb25JbixcclxuICBRdWVzdGlvbk91dCxcclxuICBRdWVzdGlvbnNPdXQsXHJcbiAgUmVnaW9uc091dCxcclxuICBTaGlwbWVudENvbnRlbnRUeXBlc091dCxcclxuICBTaGlwbWVudEdyb3Vwc091dCxcclxuICBTaGlwbWVudEluY29tZVR5cGVJbixcclxuICBTaGlwbWVudEluY29tZVR5cGVPdXQsXHJcbiAgU2hpcG1lbnRJbmNvbWVUeXBlc091dCxcclxuICBTaGlwbWVudFNjb3Blc091dCxcclxuICBTaGlwbWVudFN0YXR1c2VzT3V0LFxyXG4gIFVuaXF1ZUZvbGlvSW4sXHJcbiAgVW5pcXVlRm9saW9PdXQsXHJcbiAgVW5pcXVlRm9saW9zT3V0LFxyXG4gIFVuaXRzT3V0LFxyXG4gIFpvbmVzT3V0XHJcbn0gZnJvbSAnLi9tb2RlbHMvYXBpLWNhdGFsb2cudHlwZXMnXHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBcGlDYXRhbG9nc1NlcnZpY2Uge1xyXG4gIGNvbnN0cnVjdG9yIChcclxuICAgIEBJbmplY3QoJ2VudicpIHByaXZhdGUgZW52aXJvbm1lbnRzOiBFbnZpcm9ubWVudCxcclxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudFxyXG4gICkgeyB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHJpZXZlcyB0aGUgVVJMIGZvciB0aGUgcmVwb3J0cyBBUEkgZnJvbSB0aGUgZW52aXJvbm1lbnQgY29uZmlndXJhdGlvbnMuXHJcbiAgICpcclxuICAgKiBAcmV0dXJuIHtzdHJpbmd9IFRoZSBVUkwgb2YgdGhlIHJlcG9ydHMgQVBJLlxyXG4gICAqL1xyXG4gIGdldCB1cmwgKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5lbnZpcm9ubWVudHMuYXBpQ2F0YWxvZ3NVcmwgPz8gJydcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHJpZXZlcyB0aGUgbGlzdCBvZiBjb2xsZWN0aW9uIHBheW1lbnRzXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge1F1ZXJ5UGFyYW1zfSBwYXJhbXMgLSBUaGUgcXVlcnkgcGFyYW1ldGVycyB1c2VkIHRvIGZldGNoIHRoZSBvcGVyYXRpb24gdHlwZXMuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxPcGVyYXRpb25UeXBlc091dFtdPn0gQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIGFuIGFycmF5IG9mIG9wZXJhdGlvbiB0eXBlLlxyXG4gICAqL1xyXG4gIGdldE9wZXJhdGlvblR5cGVzIChwYXJhbXM6IFF1ZXJ5UGFyYW1zKTogT2JzZXJ2YWJsZTxPcGVyYXRpb25UeXBlc091dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxPcGVyYXRpb25UeXBlc091dD4+KGAke3RoaXMudXJsfS9vcGVyYXRpb24tdHlwZXNgLCB7XHJcbiAgICAgIHBhcmFtc1xyXG4gICAgfSkucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHJpZXZlcyB0aGUgbGlzdCBvZiBpZGVudGlmaWNhdGlvcyB0eXBlc1xyXG4gICAqXHJcbiAgICogQHBhcmFtIHtRdWVyeVBhcmFtc30gcGFyYW1zIC0gVGhlIHF1ZXJ5IHBhcmFtZXRlcnMgdXNlZCB0byBmZXRjaCB0aGUgaWRlbnRpZmljYXRpb24gdHlwZXMuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxJZGVudGlmaWNhdGlvblR5cGVzT3V0W10+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgYW4gYXJyYXkgb2YgaWRlbnRpZmljYXRpb24gdHlwZS5cclxuICAgKi9cclxuICBnZXRJZGVudGlmaWNhdGlvblR5cGVzIChwYXJhbXM6IFF1ZXJ5UGFyYW1zKTogT2JzZXJ2YWJsZTxJZGVudGlmaWNhdGlvblR5cGVzT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPElkZW50aWZpY2F0aW9uVHlwZXNPdXQ+PihgJHt0aGlzLnVybH0vaWRlbnRpZmljYXRpb24tdHlwZXNgLCB7XHJcbiAgICAgIHBhcmFtc1xyXG4gICAgfSkucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHJpZXZlIGEgc2luZ2xlIGlkZW50aWZpY2F0aW9uIHR5cGUgYnkgaXRzIGlkLlxyXG4gICAqXHJcbiAgICogU2VuZHMgYW4gSFRUUCBHRVQgcmVxdWVzdCB0byB0aGUgaW5kZW50aWZpY2F0aW9uIHR5cGUgZW5kcG9pbnQgYW5kIHJldHVybnMgYW4gT2JzZXJ2YWJsZSB0aGF0IGVtaXRzXHJcbiAgICogdGhlIElkZW50aWZpY2F0aW9uVHlwZU91dCBwYXlsb2FkIGV4dHJhY3RlZCBmcm9tIHRoZSBBUEkgc3VjY2VzcyBlbnZlbG9wZS5cclxuICAgKlxyXG4gICAqIEBwYXJhbSBpZCAtIFRoZSBudW1lcmljIGlkZW50aWZpZXIgb2YgdGhlIGlkZW50aWZpY2F0aW9uIHR5cGUgdG8gZmV0Y2guXHJcbiAgICogQHJldHVybnMgQW4gT2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSByZXF1ZXN0ZWQgSWRlbnRpZmljYXRpb25UeXBlT3V0LiBUaGUgT2JzZXJ2YWJsZSB3aWxsIGVycm9yXHJcbiAgICogICAgICAgICAgaWYgdGhlIEhUVFAgcmVxdWVzdCBmYWlscyAoZm9yIGV4YW1wbGUgbmV0d29yayBpc3N1ZXMgb3Igbm9uLTJ4eCByZXNwb25zZXMpLlxyXG4gICAqL1xyXG4gIGdldElkZW50aWZpY2F0aW9uVHlwZSAoaWQ6IG51bWJlcik6IE9ic2VydmFibGU8SWRlbnRpZmljYXRpb25UeXBlT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPElkZW50aWZpY2F0aW9uVHlwZU91dD4+KGAke3RoaXMudXJsfS9pZGVudGlmaWNhdGlvbi10eXBlcy8ke2lkfWApXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2VuZHMgYSBQT1NUIHJlcXVlc3QgdG8gY3JlYXRlIGEgbmV3IGlkZW50aWZpY2F0aW9uIHR5cGUgYW5kIHJldHVybnMgdGhlIGNyZWF0ZWQgcmVzb3VyY2UuXHJcbiAgICpcclxuICAgKiBUaGUgcmVxdWVzdCBwYXlsb2FkIGlzIHNlbnQgYXMgYW4gb2JqZWN0IHdpdGggYSBgYm9keWAgcHJvcGVydHkgY29udGFpbmluZyB0aGUgcHJvdmlkZWRcclxuICAgKiBJZGVudGlmaWNhdGlvblR5cGVJbiB2YWx1ZSAoaS5lLiB7IGJvZHk6IElkZW50aWZpY2F0aW9uVHlwZUluIH0pLiBPbiBzdWNjZXNzIHRoZSBIVFRQIHJlc3BvbnNlIGlzIGV4cGVjdGVkXHJcbiAgICogdG8gZm9sbG93IHRoZSBBcGlTdWNjZXNzPFQ+IHNoYXBlOyB0aGUgb3BlcmF0b3IgbWFwcyB0aGF0IHJlc3BvbnNlIHRvIHRoZSBpbm5lciBgZGF0YWBcclxuICAgKiBvYmplY3QgYW5kIGVtaXRzIGl0IGFzIGEgSWRlbnRpZmljYXRpb25UeXBlT3V0LlxyXG4gICAqXHJcbiAgICogQHBhcmFtIGJvZHkgLSBUaGUgaWRlbnRpZmljYXRpb24gdHlwZSBwYXlsb2FkIHRvIGNyZWF0ZSAoSWRlbnRpZmljYXRpb25UeXBlSW4pLlxyXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGU8SWRlbnRpZmljYXRpb25UeXBlT3V0PiB0aGF0IGVtaXRzIHRoZSBjcmVhdGVkIGlkZW50aWZpY2F0aW9uIHR5cGUgb24gc3VjY2Vzcy5cclxuICAgKi9cclxuICBwb3N0SWRlbnRpZmljYXRpb250VHlwZSAoYm9keTogSWRlbnRpZmljYXRpb25UeXBlSW4pOiBPYnNlcnZhYmxlPElkZW50aWZpY2F0aW9uVHlwZU91dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PEFwaVN1Y2Nlc3M8SWRlbnRpZmljYXRpb25UeXBlT3V0Pj4oYCR7dGhpcy51cmx9L2lkZW50aWZpY2F0aW9uLXR5cGVzYCwgYm9keSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVcGRhdGUgYSBpZGVudGlmaWNhdGlvbiB0eXBlIGJ5IGl0cyBJRC5cclxuICAgKlxyXG4gICAqIFNlbmRzIGFuIEhUVFAgUFVUIHRvIGAke3RoaXMudXJsfS9pZGVudGlmaWNhdGlvbi10eXBlcy8ke2lkfWAgd2l0aCB0aGUgcHJvdmlkZWQgcGF5bG9hZC5cclxuICAgKiBUaGUgcmVxdWVzdCBib2R5IGlzIHNlbnQgYXMgYW4gb2JqZWN0IHdpdGggYSBgYm9keWAgcHJvcGVydHkgY29udGFpbmluZyB0aGVcclxuICAgKiBgSWRlbnRpZmljYXRpb25UeXBlSW5gIGRhdGEuIFRoZSBzZXJ2ZXIgcmVzcG9uc2UgaXMgZXhwZWN0ZWQgdG8gYmUgYW4gYEFwaVN1Y2Nlc3M8SWRlbnRpZmljYXRpb25UeXBlT3V0PmBcclxuICAgKiBhbmQgdGhpcyBtZXRob2QgcmV0dXJucyBhbiBPYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHVud3JhcHBlZCBgSWRlbnRpZmljYXRpb25UeXBlT3V0YC5cclxuICAgKlxyXG4gICAqIEBwYXJhbSBpZCAtIFRoZSBpZGVudGlmaWVyIG9mIHRoZSBpZGVudGlmaWNhdGlvbiB0eXBlIHRvIHVwZGF0ZS5cclxuICAgKiBAcGFyYW0gYm9keSAtIFRoZSB1cGRhdGUgcGF5bG9hZCBmb3IgdGhlIGlkZW50aWZpY2F0aW9uIHR5cGUuXHJcbiAgICogQHJldHVybnMgQW4gT2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSB1cGRhdGVkIGBJZGVudGlmaWNhdGlvblR5cGVPdXRgIG9uIHN1Y2Nlc3MuXHJcbiAgICovXHJcbiAgcHV0SWRlbnRpZmljYXRpb25UeXBlIChpZDogbnVtYmVyLCBib2R5OiBJZGVudGlmaWNhdGlvblR5cGVJbik6IE9ic2VydmFibGU8SWRlbnRpZmljYXRpb25UeXBlT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dDxBcGlTdWNjZXNzPElkZW50aWZpY2F0aW9uVHlwZU91dD4+KGAke3RoaXMudXJsfS9pZGVudGlmaWNhdGlvbi10eXBlcy8ke2lkfWAsIGJvZHkpXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRGVsZXRlIGEgaWRlbnRpZmljYXRpb24gdHlwZSBieSBpdHMgSUQuXHJcbiAgICpcclxuICAgKiBTZW5kcyBhbiBIVFRQIERFTEVURSByZXF1ZXN0IHRvIHRoZSBiYWNrZW5kIGVuZHBvaW50IGAvaWRlbnRpZmljYXRpb24tdHlwZXMve2lkfWAgYW5kXHJcbiAgICogcmV0dXJucyBhbiBPYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIEFQSSByZXNwb25zZSdzIGBkYXRhYCBwYXlsb2FkICh0eXBpY2FsbHkgYW4gZW1wdHkgb2JqZWN0KS5cclxuICAgKlxyXG4gICAqIFRoZSBpbXBsZW1lbnRhdGlvbiBtYXBzIGFuIEFwaVN1Y2Nlc3Mgd3JhcHBlciB0byBpdHMgYGRhdGFgIHByb3BlcnR5IGJlZm9yZSBlbWl0dGluZy5cclxuICAgKlxyXG4gICAqIEBwYXJhbSBpZCAtIFRoZSBudW1lcmljIGlkZW50aWZpZXIgb2YgdGhlIGlkZW50aWZpY2F0aW9uIHR5cGUgdG8gZGVsZXRlLlxyXG4gICAqIEByZXR1cm5zIEFuIE9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgZGVsZXRlZCByZXNvdXJjZSBwYXlsb2FkICh7fSBleHBlY3RlZCkgb24gc3VjY2Vzcy5cclxuICAgKiAgICAgICAgICBUaGUgT2JzZXJ2YWJsZSB3aWxsIGVtaXQgYW4gZXJyb3IgaWYgdGhlIEhUVFAgcmVxdWVzdCBmYWlscy5cclxuICAgKi9cclxuICBkZWxldGVJZGVudGlmaWNhdGlvblR5cGUgKGlkOiBudW1iZXIpOiBPYnNlcnZhYmxlPHt9PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZTxBcGlTdWNjZXNzPHt9Pj4oYCR7dGhpcy51cmx9L2lkZW50aWZpY2F0aW9uLXR5cGVzLyR7aWR9YClcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBGZXRjaGVzIHRoZSBleHRyYSBjaGFyZ2VzIGJhc2VkIG9uIHRoZSBwcm92aWRlZCBxdWVyeSBwYXJhbWV0ZXJzLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtRdWVyeVBhcmFtc30gcGFyYW1zIC0gVGhlIHF1ZXJ5IHBhcmFtZXRlcnMgdG8gZmlsdGVyIHRoZSByZXN1bHRzLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8RXh0cmFDaGFyZ2VzT3V0Pn0gQW4gb2JzZXJ2YWJsZSBlbWl0dGluZyB0aGUgZXh0cmEgY2hhcmdlcyBkYXRhLlxyXG4gICAqL1xyXG4gIGdldEV4dHJhQ2hhcmdlcyAocGFyYW1zOiBRdWVyeVBhcmFtcyk6IE9ic2VydmFibGU8RXh0cmFDaGFyZ2VzT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPEV4dHJhQ2hhcmdlc091dD4+KGAke3RoaXMudXJsfS9leHRyYWNoYXJnZXNgLCB7XHJcbiAgICAgIHBhcmFtc1xyXG4gICAgfSkucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFN1Ym1pdHMgYW4gZXh0cmEgY2hhcmdlIHJlcXVlc3QgdG8gdGhlIHNlcnZlciBhbmQgcmV0dXJucyB0aGUgY3JlYXRlZCBleHRyYSBjaGFyZ2UgZGV0YWlscy5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7RXh0cmFDaGFyZ2VJbn0gYm9keSAtIFRoZSBkYXRhIGZvciB0aGUgZXh0cmEgY2hhcmdlIHRvIGJlIGNyZWF0ZWQuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxFeHRyYUNoYXJnZU91dD59IEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgZGV0YWlscyBvZiB0aGUgY3JlYXRlZCBleHRyYSBjaGFyZ2UuXHJcbiAgICovXHJcbiAgcG9zdEV4dHJhQ2hhcmdlIChib2R5OiBFeHRyYUNoYXJnZUluKTogT2JzZXJ2YWJsZTxFeHRyYUNoYXJnZU91dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PEFwaVN1Y2Nlc3M8RXh0cmFDaGFyZ2VPdXQ+PihgJHt0aGlzLnVybH0vZXh0cmFjaGFyZ2VzYCwgYm9keSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVcGRhdGVzIGFuIGV4dHJhIGNoYXJnZSBlbnRpdHkgd2l0aCBuZXcgZGF0YSBhbmQgcmV0dXJucyB0aGUgdXBkYXRlZCBlbnRpdHkuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge251bWJlcn0gaWQgLSBUaGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIGV4dHJhIGNoYXJnZSB0byB1cGRhdGUuXHJcbiAgICogQHBhcmFtIHtFeHRyYUNoYXJnZUlufSBib2R5IC0gVGhlIG5ldyBkYXRhIGZvciB0aGUgZXh0cmEgY2hhcmdlLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8RXh0cmFDaGFyZ2VPdXQ+fSBBbiBvYnNlcnZhYmxlIGVtaXR0aW5nIHRoZSB1cGRhdGVkIGV4dHJhIGNoYXJnZSBlbnRpdHkuXHJcbiAgICovXHJcbiAgcHV0RXh0cmFDaGFyZ2UgKGlkOiBudW1iZXIsIGJvZHk6IEV4dHJhQ2hhcmdlSW4pOiBPYnNlcnZhYmxlPEV4dHJhQ2hhcmdlT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dDxBcGlTdWNjZXNzPEV4dHJhQ2hhcmdlT3V0Pj4oYCR7dGhpcy51cmx9L2V4dHJhY2hhcmdlcy8ke2lkfWAsIGJvZHkpXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRmV0Y2hlcyBhIGxpc3Qgb2YgY291bnRyaWVzIGZyb20gdGhlIEFQSS5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7UXVlcnlQYXJhbXN9IHBhcmFtcyAtIFRoZSBxdWVyeSBwYXJhbWV0ZXJzIHRvIGJlIHBhc3NlZCB0byB0aGUgQVBJIHJlcXVlc3QuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxDb3VudHJpZXNPdXQ+fSBBbiBvYnNlcnZhYmxlIGNvbnRhaW5pbmcgdGhlIGxpc3Qgb2YgY291bnRyaWVzLlxyXG4gICAqL1xyXG4gIGdldENvdW50cmllcyAocGFyYW1zOiBRdWVyeVBhcmFtcyk6IE9ic2VydmFibGU8Q291bnRyaWVzT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPENvdW50cmllc091dD4+KGAke3RoaXMudXJsfS9jb3VudHJpZXNgLCB7IHBhcmFtcyB9KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHJpZXZlcyB0aGUgZGV0YWlscyBvZiBhIGNvdW50cnkgYmFzZWQgb24gaXRzIElELlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtudW1iZXJ9IGlkIC0gVGhlIGlkZW50aWZpZXIgb2YgdGhlIGNvdW50cnkgdG8gZmV0Y2guXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxDb3VudHJ5T3V0Pn0gQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSBjb3VudHJ5IGRhdGEuXHJcbiAgICovXHJcbiAgZ2V0Q291bnRyeSAoaWQ6IG51bWJlcik6IE9ic2VydmFibGU8Q291bnRyeU91dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxDb3VudHJ5T3V0Pj4oYCR7dGhpcy51cmx9L2NvdW50cmllcy8ke2lkfWApXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVXBkYXRlcyB0aGUgZGV0YWlscyBvZiBhIHNwZWNpZmljIGNvdW50cnkgYnkgaXRzIElELlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtudW1iZXJ9IGlkIC0gVGhlIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBjb3VudHJ5IHRvIGJlIHVwZGF0ZWQuXHJcbiAgICogQHBhcmFtIHtDb3VudHJ5SW59IGJvZHkgLSBUaGUgZGF0YSB0byB1cGRhdGUgdGhlIGNvdW50cnkgd2l0aC5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPENvdW50cnlPdXQ+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHVwZGF0ZWQgY291bnRyeSBkYXRhLlxyXG4gICAqL1xyXG4gIHB1dENvdW50cnkgKGlkOiBudW1iZXIsIGJvZHk6IENvdW50cnlJbik6IE9ic2VydmFibGU8Q291bnRyeU91dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQ8QXBpU3VjY2VzczxDb3VudHJ5T3V0Pj4oYCR7dGhpcy51cmx9L2NvdW50cmllcy8ke2lkfWAsIGJvZHkpXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRmV0Y2hlcyBwb3N0YWwgbG9jYXRpb24gZGV0YWlscyBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgcXVlcnkgcGFyYW1ldGVycy5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7UXVlcnlQYXJhbXN9IHBhcmFtcyAtIFRoZSBxdWVyeSBwYXJhbWV0ZXJzIHRvIGZpbHRlciBhbmQgZmV0Y2ggcG9zdGFsIGxvY2F0aW9uIGRhdGEuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxQb3N0YWxMb2NhdGlvbnNPdXQ+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHBvc3RhbCBsb2NhdGlvbiBkZXRhaWxzLlxyXG4gICAqL1xyXG4gIGdldFBvc3RhbExvY2F0aW9ucyAocGFyYW1zOiBRdWVyeVBhcmFtcyk6IE9ic2VydmFibGU8UG9zdGFsTG9jYXRpb25zT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPFBvc3RhbExvY2F0aW9uc091dD4+KGAke3RoaXMudXJsfS9wb3N0YWwtbG9jYXRpb25zYCwgeyBwYXJhbXMgfSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBGZXRjaGVzIGEgbGlzdCBvZiByZWdpb25zIGJhc2VkIG9uIHRoZSBwcm92aWRlZCBxdWVyeSBwYXJhbWV0ZXJzLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtRdWVyeVBhcmFtc30gcGFyYW1zIC0gVGhlIHF1ZXJ5IHBhcmFtZXRlcnMgdXNlZCB0byBmaWx0ZXIgdGhlIHJlZ2lvbnMuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxSZWdpb25zT3V0Pn0gQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSBsaXN0IG9mIHJlZ2lvbnMuXHJcbiAgICovXHJcbiAgZ2V0UmVnaW9ucyAocGFyYW1zOiBRdWVyeVBhcmFtcyk6IE9ic2VydmFibGU8UmVnaW9uc091dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxSZWdpb25zT3V0Pj4oYCR7dGhpcy51cmx9L3JlZ2lvbnNgLCB7IHBhcmFtcyB9KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEZldGNoZXMgdGhlIHpvbmVzIGRhdGEgYmFzZWQgb24gdGhlIHByb3ZpZGVkIHF1ZXJ5IHBhcmFtZXRlcnMuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge1F1ZXJ5UGFyYW1zfSBwYXJhbXMgLSBUaGUgcXVlcnkgcGFyYW1ldGVycyB1c2VkIHRvIGZpbHRlciB0aGUgem9uZXMgZGF0YS5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPFpvbmVzT3V0Pn0gQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSBmZXRjaGVkIHpvbmVzIGRhdGEuXHJcbiAgICovXHJcbiAgZ2V0Wm9uZXMgKHBhcmFtczogUXVlcnlQYXJhbXMpOiBPYnNlcnZhYmxlPFpvbmVzT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPFpvbmVzT3V0Pj4oYCR7dGhpcy51cmx9L3pvbmVzYCwgeyBwYXJhbXMgfSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBGZXRjaGVzIHRoZSBtYW5hZ2VtZW50IGFyZWFzIGJhc2VkIG9uIHRoZSBwcm92aWRlZCBxdWVyeSBwYXJhbWV0ZXJzLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtRdWVyeVBhcmFtc30gcGFyYW1zIC0gVGhlIHF1ZXJ5IHBhcmFtZXRlcnMgdG8gZmlsdGVyIHRoZSBtYW5hZ2VtZW50IGFyZWFzLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8TWFuYWdlbWVudEFyZWFzT3V0Pn0gQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSBtYW5hZ2VtZW50IGFyZWFzIGRhdGEuXHJcbiAgICovXHJcbiAgZ2V0TWFuYWdlbWVudEFyZWFzIChwYXJhbXM6IFF1ZXJ5UGFyYW1zKTogT2JzZXJ2YWJsZTxNYW5hZ2VtZW50QXJlYXNPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8TWFuYWdlbWVudEFyZWFzT3V0Pj4oYCR7dGhpcy51cmx9L21hbmFnZW1lbnQtYXJlYXNgLCB7IHBhcmFtcyB9KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHJpZXZlcyBjYW5jZWxsYXRpb24gcmVhc29ucyBmcm9tIHRoZSBzZXJ2ZXIgYmFzZWQgb24gdGhlIHByb3ZpZGVkIHF1ZXJ5IHBhcmFtZXRlcnMuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge1F1ZXJ5UGFyYW1zfSBwYXJhbXMgLSBUaGUgcXVlcnkgcGFyYW1ldGVycyB0byBmaWx0ZXIgdGhlIGNhbmNlbGxhdGlvbiByZWFzb25zLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8Q2FuY2VsbGF0aW9uUmVhc29uc091dD59IEFuIG9ic2VydmFibGUgY29udGFpbmluZyB0aGUgcmV0cmlldmVkIGNhbmNlbGxhdGlvbiByZWFzb25zLlxyXG4gICAqL1xyXG4gIGdldENhbmNlbGxhdGlvblJlYXNvbnMgKHBhcmFtczogUXVlcnlQYXJhbXMpOiBPYnNlcnZhYmxlPENhbmNlbGxhdGlvblJlYXNvbnNPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8Q2FuY2VsbGF0aW9uUmVhc29uc091dD4+KGAke3RoaXMudXJsfS9jYW5jZWxsYXRpb24tcmVhc29uc2AsIHsgcGFyYW1zIH0pXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2VuZHMgYSBjYW5jZWxsYXRpb24gcmVhc29uIHRvIHRoZSBzZXJ2ZXIuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge0NhbmNlbGxhdGlvblJlYXNvbklufSBib2R5IC0gVGhlIGNhbmNlbGxhdGlvbiByZWFzb24gb2JqZWN0IHRvIGJlIHNlbnQuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxDYW5jZWxsYXRpb25SZWFzb25PdXQ+fSBBbiBvYnNlcnZhYmxlIGNvbnRhaW5pbmcgdGhlIHNlcnZlcidzIHJlc3BvbnNlIHdpdGggdGhlIHByb2Nlc3NlZCBjYW5jZWxsYXRpb24gcmVhc29uLlxyXG4gICAqL1xyXG4gIHBvc3RDYW5jZWxsYXRpb25SZWFzb24gKGJvZHk6IENhbmNlbGxhdGlvblJlYXNvbkluKTogT2JzZXJ2YWJsZTxDYW5jZWxsYXRpb25SZWFzb25PdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxBcGlTdWNjZXNzPENhbmNlbGxhdGlvblJlYXNvbk91dD4+KGAke3RoaXMudXJsfS9jYW5jZWxsYXRpb24tcmVhc29uc2AsIGJvZHkpXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVXBkYXRlcyB0aGUgY2FuY2VsbGF0aW9uIHJlYXNvbiBmb3IgdGhlIHNwZWNpZmllZCBJRCB3aXRoIHRoZSBwcm92aWRlZCBkYXRhLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtudW1iZXJ9IGlkIC0gVGhlIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBjYW5jZWxsYXRpb24gcmVhc29uIHRvIHVwZGF0ZS5cclxuICAgKiBAcGFyYW0ge0NhbmNlbGxhdGlvblJlYXNvbklufSBib2R5IC0gVGhlIGRldGFpbHMgb2YgdGhlIGNhbmNlbGxhdGlvbiByZWFzb24gdG8gYmUgdXBkYXRlZC5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPENhbmNlbGxhdGlvblJlYXNvbk91dD59IEFuIG9ic2VydmFibGUgY29udGFpbmluZyB0aGUgdXBkYXRlZCBjYW5jZWxsYXRpb24gcmVhc29uLlxyXG4gICAqL1xyXG4gIHB1dENhbmNlbGxhdGlvblJlYXNvbiAoaWQ6IG51bWJlciwgYm9keTogQ2FuY2VsbGF0aW9uUmVhc29uSW4pOiBPYnNlcnZhYmxlPENhbmNlbGxhdGlvblJlYXNvbk91dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQ8QXBpU3VjY2VzczxDYW5jZWxsYXRpb25SZWFzb25PdXQ+PihgJHt0aGlzLnVybH0vY2FuY2VsbGF0aW9uLXJlYXNvbnMvJHtpZH1gLCBib2R5KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHJpZXZlcyBhIGxpc3Qgb2YgY3VycmVuY2llcyBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgcXVlcnkgcGFyYW1ldGVycy5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7UXVlcnlQYXJhbXN9IHBhcmFtcyAtIFRoZSBxdWVyeSBwYXJhbWV0ZXJzIHRvIGN1c3RvbWl6ZSB0aGUgY3VycmVuY3kgcmV0cmlldmFsIHJlcXVlc3QuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxDdXJyZW5jaWVzT3V0Pn0gQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSByZXRyaWV2ZWQgY3VycmVuY2llcyBkYXRhLlxyXG4gICAqL1xyXG4gIGdldEN1cnJlbmNpZXMgKHBhcmFtczogUXVlcnlQYXJhbXMpOiBPYnNlcnZhYmxlPEN1cnJlbmNpZXNPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8Q3VycmVuY2llc091dD4+KGAke3RoaXMudXJsfS9jdXJyZW5jaWVzYCwgeyBwYXJhbXMgfSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBGZXRjaGVzIHRoZSBsaXN0IG9mIGF2YWlsYWJsZSBsYW5ndWFnZXMgYmFzZWQgb24gdGhlIHByb3ZpZGVkIHF1ZXJ5IHBhcmFtZXRlcnMuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge1F1ZXJ5UGFyYW1zfSBwYXJhbXMgLSBUaGUgcXVlcnkgcGFyYW1ldGVycyB0byBwYXNzIHdpdGggdGhlIEhUVFAgcmVxdWVzdC5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPExhbmd1YWdlc091dD59IEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgYXZhaWxhYmxlIGxhbmd1YWdlcy5cclxuICAgKi9cclxuICBnZXRMYW5ndWFnZXMgKHBhcmFtczogUXVlcnlQYXJhbXMpOiBPYnNlcnZhYmxlPExhbmd1YWdlc091dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxMYW5ndWFnZXNPdXQ+PihgJHt0aGlzLnVybH0vbGFuZ3VhZ2VzYCwgeyBwYXJhbXMgfSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBGZXRjaGVzIHRoZSBhdmFpbGFibGUgdW5pdHMgZnJvbSB0aGUgQVBJIGJhc2VkIG9uIHRoZSBwcm92aWRlZCBxdWVyeSBwYXJhbWV0ZXJzLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtRdWVyeVBhcmFtc30gcGFyYW1zIC0gVGhlIHF1ZXJ5IHBhcmFtZXRlcnMgdG8gZmlsdGVyIHRoZSB1bml0cyBiZWluZyBmZXRjaGVkLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8VW5pdHNPdXQ+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHJldHJpZXZlZCB1bml0cyBkYXRhLlxyXG4gICAqL1xyXG4gIGdldFVuaXRzIChwYXJhbXM6IFF1ZXJ5UGFyYW1zKTogT2JzZXJ2YWJsZTxVbml0c091dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxVbml0c091dD4+KGAke3RoaXMudXJsfS91bml0c2AsIHsgcGFyYW1zIH0pXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0cmlldmVzIHRoZSBzaGlwbWVudCBzY29wZXMgYmFzZWQgb24gdGhlIHByb3ZpZGVkIHF1ZXJ5IHBhcmFtZXRlcnMuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge1F1ZXJ5UGFyYW1zfSBwYXJhbXMgVGhlIHF1ZXJ5IHBhcmFtZXRlcnMgdG8gZmlsdGVyIG9yIG1vZGlmeSB0aGUgcmVxdWVzdCBmb3Igc2hpcG1lbnQgc2NvcGVzLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8U2hpcG1lbnRTY29wZXNPdXQ+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHNoaXBtZW50IHNjb3BlcyBkYXRhLlxyXG4gICAqL1xyXG4gIGdldFNoaXBtZW50U2NvcGVzIChwYXJhbXM6IFF1ZXJ5UGFyYW1zKTogT2JzZXJ2YWJsZTxTaGlwbWVudFNjb3Blc091dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxTaGlwbWVudFNjb3Blc091dD4+KGAke3RoaXMudXJsfS9zaGlwbWVudC1zY29wZXNgLCB7IHBhcmFtcyB9KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEZldGNoZXMgdGhlIGF2YWlsYWJsZSBzaGlwbWVudCBjb250ZW50IHR5cGVzIGJhc2VkIG9uIHRoZSBwcm92aWRlZCBxdWVyeSBwYXJhbWV0ZXJzLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtRdWVyeVBhcmFtc30gcGFyYW1zIC0gVGhlIHF1ZXJ5IHBhcmFtZXRlcnMgdG8gZmlsdGVyIHRoZSBzaGlwbWVudCBjb250ZW50IHR5cGVzLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8U2hpcG1lbnRDb250ZW50VHlwZXNPdXQ+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHNoaXBtZW50IGNvbnRlbnQgdHlwZXMgZGF0YS5cclxuICAgKi9cclxuICBnZXRTaGlwbWVudENvbnRlbnRUeXBlcyAocGFyYW1zOiBRdWVyeVBhcmFtcyk6IE9ic2VydmFibGU8U2hpcG1lbnRDb250ZW50VHlwZXNPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8U2hpcG1lbnRDb250ZW50VHlwZXNPdXQ+PihgJHt0aGlzLnVybH0vc2hpcG1lbnQtY29udGVudC10eXBlc2AsIHsgcGFyYW1zIH0pXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRmV0Y2hlcyBhIGxpc3Qgb2YgZ2VuZXJpYyBmb2xpb3MgYmFzZWQgb24gdGhlIGdpdmVuIHF1ZXJ5IHBhcmFtZXRlcnMuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge1F1ZXJ5UGFyYW1zfSBwYXJhbXMgLSBUaGUgcXVlcnkgcGFyYW1ldGVycyB1c2VkIHRvIGZpbHRlciB0aGUgZ2VuZXJpYyBmb2xpb3MuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxHZW5lcmljRm9saW9zT3V0Pn0gQW4gb2JzZXJ2YWJsZSBjb250YWluaW5nIHRoZSBmZXRjaGVkIGdlbmVyaWMgZm9saW9zLlxyXG4gICAqL1xyXG4gIGdldEdlbmVyaWNGb2xpb3MgKHBhcmFtczogUXVlcnlQYXJhbXMpOiBPYnNlcnZhYmxlPEdlbmVyaWNGb2xpb3NPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8R2VuZXJpY0ZvbGlvc091dD4+KGAke3RoaXMudXJsfS9nZW5lcmljLWZvbGlvc2AsIHsgcGFyYW1zIH0pXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2VuZHMgYSBQT1NUIHJlcXVlc3QgdG8gY3JlYXRlIG9yIHVwZGF0ZSBhIGdlbmVyaWMgZm9saW8uXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge0dlbmVyaWNGb2xpb0lufSBib2R5IC0gVGhlIHBheWxvYWQgY29udGFpbmluZyB0aGUgZGV0YWlscyBvZiB0aGUgZ2VuZXJpYyBmb2xpbyB0byBiZSBjcmVhdGVkIG9yIHVwZGF0ZWQuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxHZW5lcmljRm9saW9PdXQ+fSBBbiBvYnNlcnZhYmxlIGNvbnRhaW5pbmcgdGhlIHJlc3BvbnNlIGRhdGEgb2YgdGhlIGNyZWF0ZWQgb3IgdXBkYXRlZCBnZW5lcmljIGZvbGlvLlxyXG4gICAqL1xyXG4gIHBvc3RHZW5lcmljRm9saW8gKGJvZHk6IEdlbmVyaWNGb2xpb0luKTogT2JzZXJ2YWJsZTxHZW5lcmljRm9saW9PdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxBcGlTdWNjZXNzPEdlbmVyaWNGb2xpb091dD4+KGAke3RoaXMudXJsfS9nZW5lcmljLWZvbGlvc2AsIGJvZHkpXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVXBkYXRlcyBhIGdlbmVyaWMgZm9saW8gd2l0aCB0aGUgc3BlY2lmaWVkIElEIHVzaW5nIHRoZSBwcm92aWRlZCBkYXRhLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtudW1iZXJ9IGlkIC0gVGhlIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBnZW5lcmljIGZvbGlvIHRvIHVwZGF0ZS5cclxuICAgKiBAcGFyYW0ge0dlbmVyaWNGb2xpb0lufSBib2R5IC0gVGhlIGRhdGEgdG8gdXBkYXRlIHRoZSBnZW5lcmljIGZvbGlvIHdpdGguXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxHZW5lcmljRm9saW9PdXQ+fSBBbiBvYnNlcnZhYmxlIGNvbnRhaW5pbmcgdGhlIHVwZGF0ZWQgZ2VuZXJpYyBmb2xpby5cclxuICAgKi9cclxuICBwdXRHZW5lcmljRm9saW8gKGlkOiBudW1iZXIsIGJvZHk6IEdlbmVyaWNGb2xpb0luKTogT2JzZXJ2YWJsZTxHZW5lcmljRm9saW9PdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PEFwaVN1Y2Nlc3M8R2VuZXJpY0ZvbGlvT3V0Pj4oYCR7dGhpcy51cmx9L2dlbmVyaWMtZm9saW9zLyR7aWR9YCwgYm9keSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZW5kcyBhIFBVVCByZXF1ZXN0IHRvIHVwZGF0ZSBhIEdlbmVyaWMgRm9saW8gcmVzb3VyY2Ugd2l0aCB0aGUgc3BlY2lmaWVkIElEIGFuZCBib2R5IGRhdGEsIGFuZCByZXR1cm5zIHRoZSB1cGRhdGVkIHJlc291cmNlLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtudW1iZXJ9IGlkIC0gVGhlIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBHZW5lcmljIEZvbGlvIHRvIGJlIHVwZGF0ZWQuXHJcbiAgICogQHBhcmFtIHtQYXJ0aWFsPEdlbmVyaWNGb2xpb0luPn0gYm9keSAtIFRoZSBwYXJ0aWFsIGRhdGEgcmVwcmVzZW50aW5nIHRoZSBjaGFuZ2VzIHRvIGJlIGFwcGxpZWQgdG8gdGhlIEdlbmVyaWMgRm9saW8uXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxHZW5lcmljRm9saW9PdXQ+fSBBbiBvYnNlcnZhYmxlIGNvbnRhaW5pbmcgdGhlIHVwZGF0ZWQgR2VuZXJpYyBGb2xpbyByZXNvdXJjZS5cclxuICAgKi9cclxuICBwYXRoR2VuZXJpY0ZvbGlvIChpZDogbnVtYmVyLCBib2R5OiBQYXJ0aWFsPEdlbmVyaWNGb2xpb0luPik6IE9ic2VydmFibGU8R2VuZXJpY0ZvbGlvT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dDxBcGlTdWNjZXNzPEdlbmVyaWNGb2xpb091dD4+KGAke3RoaXMudXJsfS9nZW5lcmljLWZvbGlvcy8ke2lkfWAsIGJvZHkpXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2VuZHMgYSBQT1NUIHJlcXVlc3QgdG8gY3JlYXRlIGEgbmV3IHByb2R1Y3QuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge1Byb2R1Y3RJbn0gYm9keSAtIFRoZSBwcm9kdWN0IGRhdGEgdG8gYmUgc2VudCBpbiB0aGUgcmVxdWVzdCBib2R5LlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8UHJvZHVjdE91dD59IEFuIG9ic2VydmFibGUgZW1pdHRpbmcgdGhlIGNyZWF0ZWQgcHJvZHVjdCBkYXRhLlxyXG4gICAqL1xyXG4gIHBvc3RQcm9kdWN0IChib2R5OiBQcm9kdWN0SW4pOiBPYnNlcnZhYmxlPFByb2R1Y3RPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxBcGlTdWNjZXNzPFByb2R1Y3RPdXQ+PihgJHt0aGlzLnVybH0vcHJvZHVjdHNgLCBib2R5KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFVwZGF0ZXMgYW4gZXhpc3RpbmcgcHJvZHVjdCB3aXRoIHRoZSBnaXZlbiBJRCB1c2luZyB0aGUgcHJvdmlkZWQgZGF0YS5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBpZCAtIFRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiB0aGUgcHJvZHVjdCB0byB1cGRhdGUuXHJcbiAgICogQHBhcmFtIHtQcm9kdWN0SW59IGJvZHkgLSBUaGUgcHJvZHVjdCBkYXRhIHRvIHVwZGF0ZS5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPFByb2R1Y3RPdXQ+fSBBbiBvYnNlcnZhYmxlIGNvbnRhaW5pbmcgdGhlIHVwZGF0ZWQgcHJvZHVjdCBkYXRhLlxyXG4gICAqL1xyXG4gIHB1dFByb2R1Y3QgKGlkOiBudW1iZXIsIGJvZHk6IFByb2R1Y3RJbik6IE9ic2VydmFibGU8UHJvZHVjdE91dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQ8QXBpU3VjY2VzczxQcm9kdWN0T3V0Pj4oYCR7dGhpcy51cmx9L3Byb2R1Y3RzLyR7aWR9YCwgYm9keSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXRyaWV2ZXMgYSBsaXN0IG9mIHNoaXBtZW50IGluY29tZSB0eXBlcyBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgcXVlcnkgcGFyYW1ldGVycy5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7UXVlcnlQYXJhbXN9IHBhcmFtcyAtIFRoZSBxdWVyeSBwYXJhbWV0ZXJzIHRvIGZpbHRlciB0aGUgc2hpcG1lbnQgaW5jb21lIHR5cGVzLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8U2hpcG1lbnRJbmNvbWVUeXBlc091dD59IEFuIG9ic2VydmFibGUgY29udGFpbmluZyB0aGUgc2hpcG1lbnQgaW5jb21lIHR5cGVzIGRhdGEuXHJcbiAgICovXHJcbiAgZ2V0U2hpcG1lbnRJbmNvbWVUeXBlcyAocGFyYW1zOiBRdWVyeVBhcmFtcyk6IE9ic2VydmFibGU8U2hpcG1lbnRJbmNvbWVUeXBlc091dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxTaGlwbWVudEluY29tZVR5cGVzT3V0Pj4oYCR7dGhpcy51cmx9L3NoaXBtZW50LWluY29tZS10eXBlc2AsIHsgcGFyYW1zIH0pXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2VuZHMgYSBQT1NUIHJlcXVlc3QgdG8gY3JlYXRlIGEgbmV3IHNoaXBtZW50IGluY29tZSB0eXBlLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtTaGlwbWVudEluY29tZVR5cGVJbn0gYm9keSBUaGUgcGF5bG9hZCBjb250YWluaW5nIHRoZSBkZXRhaWxzIG9mIHRoZSBzaGlwbWVudCBpbmNvbWUgdHlwZSB0byBiZSBjcmVhdGVkLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8U2hpcG1lbnRJbmNvbWVUeXBlT3V0Pn0gQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSBjcmVhdGVkIHNoaXBtZW50IGluY29tZSB0eXBlIGRhdGEuXHJcbiAgICovXHJcbiAgcG9zdFNoaXBtZW50SW5jb21lVHlwZSAoYm9keTogU2hpcG1lbnRJbmNvbWVUeXBlSW4pOiBPYnNlcnZhYmxlPFNoaXBtZW50SW5jb21lVHlwZU91dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PEFwaVN1Y2Nlc3M8U2hpcG1lbnRJbmNvbWVUeXBlT3V0Pj4oYCR7dGhpcy51cmx9L3NoaXBtZW50LWluY29tZS10eXBlc2AsIGJvZHkpXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVXBkYXRlcyB0aGUgc2hpcG1lbnQgaW5jb21lIHR5cGUgd2l0aCB0aGUgc3BlY2lmaWVkIElELlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtudW1iZXJ9IGlkIC0gVGhlIGlkZW50aWZpZXIgb2YgdGhlIHNoaXBtZW50IGluY29tZSB0eXBlIHRvIHVwZGF0ZS5cclxuICAgKiBAcGFyYW0ge1NoaXBtZW50SW5jb21lVHlwZUlufSBib2R5IC0gVGhlIGRhdGEgdG8gdXBkYXRlIHRoZSBzaGlwbWVudCBpbmNvbWUgdHlwZSB3aXRoLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8U2hpcG1lbnRJbmNvbWVUeXBlT3V0Pn0gQW4gb2JzZXJ2YWJsZSBlbWl0dGluZyB0aGUgdXBkYXRlZCBzaGlwbWVudCBpbmNvbWUgdHlwZS5cclxuICAgKi9cclxuICBwdXRTaGlwbWVudEluY29tZVR5cGUgKGlkOiBudW1iZXIsIGJvZHk6IFNoaXBtZW50SW5jb21lVHlwZUluKTogT2JzZXJ2YWJsZTxTaGlwbWVudEluY29tZVR5cGVPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PEFwaVN1Y2Nlc3M8U2hpcG1lbnRJbmNvbWVUeXBlT3V0Pj4oYCR7dGhpcy51cmx9L3NoaXBtZW50LWluY29tZS10eXBlcy8ke2lkfWAsIGJvZHkpXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0cmlldmVzIGEgbGlzdCBvZiB1bmlxdWUgZm9saW9zIGJhc2VkIG9uIHRoZSBwcm92aWRlZCBxdWVyeSBwYXJhbWV0ZXJzLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtRdWVyeVBhcmFtc30gcGFyYW1zIC0gVGhlIHF1ZXJ5IHBhcmFtZXRlcnMgdXNlZCB0byBmaWx0ZXIgYW5kIGZldGNoIHVuaXF1ZSBmb2xpb3MuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxVbmlxdWVGb2xpb3NPdXQ+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHVuaXF1ZSBmb2xpb3MgZGF0YS5cclxuICAgKi9cclxuICBnZXRVbmlxdWVGb2xpb3MgKHBhcmFtczogUXVlcnlQYXJhbXMpOiBPYnNlcnZhYmxlPFVuaXF1ZUZvbGlvc091dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxVbmlxdWVGb2xpb3NPdXQ+PihgJHt0aGlzLnVybH0vdW5pcXVlLWZvbGlvc2AsIHsgcGFyYW1zIH0pXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2VuZHMgYSBQT1NUIHJlcXVlc3QgdG8gY3JlYXRlIGEgdW5pcXVlIGZvbGlvLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtVbmlxdWVGb2xpb0lufSBib2R5IC0gVGhlIGRhdGEgb2JqZWN0IGNvbnRhaW5pbmcgZGV0YWlscyBmb3IgdGhlIHVuaXF1ZSBmb2xpbyB0byBiZSBjcmVhdGVkLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8VW5pcXVlRm9saW9PdXQ+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIGNyZWF0ZWQgdW5pcXVlIGZvbGlvIGRldGFpbHMuXHJcbiAgICovXHJcbiAgcG9zdFVuaXF1ZUZvbGlvIChib2R5OiBVbmlxdWVGb2xpb0luKTogT2JzZXJ2YWJsZTxVbmlxdWVGb2xpb091dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PEFwaVN1Y2Nlc3M8VW5pcXVlRm9saW9PdXQ+PihgJHt0aGlzLnVybH0vdW5pcXVlLWZvbGlvc2AsIGJvZHkpXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVXBkYXRlcyBhIHVuaXF1ZSBmb2xpbyB3aXRoIHRoZSBnaXZlbiBkYXRhIHVzaW5nIHRoZSBwcm92aWRlZCBJRC5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBpZCAtIFRoZSBJRCBvZiB0aGUgdW5pcXVlIGZvbGlvIHRvIGJlIHVwZGF0ZWQuXHJcbiAgICogQHBhcmFtIHtVbmlxdWVGb2xpb0lufSBib2R5IC0gVGhlIHBheWxvYWQgY29udGFpbmluZyB0aGUgZGV0YWlscyBvZiB0aGUgdW5pcXVlIGZvbGlvIHRvIHVwZGF0ZS5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPFVuaXF1ZUZvbGlvT3V0Pn0gQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSB1cGRhdGVkIHVuaXF1ZSBmb2xpby5cclxuICAgKi9cclxuICBwdXRVbmlxdWVGb2xpbyAoaWQ6IG51bWJlciwgYm9keTogVW5pcXVlRm9saW9Jbik6IE9ic2VydmFibGU8VW5pcXVlRm9saW9PdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PEFwaVN1Y2Nlc3M8VW5pcXVlRm9saW9PdXQ+PihgJHt0aGlzLnVybH0vdW5pcXVlLWZvbGlvcy8ke2lkfWAsIGJvZHkpXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVXBkYXRlcyBhIHVuaXF1ZSBmb2xpbyBieSBpdHMgaWRlbnRpZmllciB3aXRoIHRoZSBwcm92aWRlZCBkYXRhLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtudW1iZXJ9IGlkIC0gVGhlIGlkZW50aWZpZXIgb2YgdGhlIHVuaXF1ZSBmb2xpbyB0byB1cGRhdGUuXHJcbiAgICogQHBhcmFtIHtQYXJ0aWFsPFVuaXF1ZUZvbGlvSW4+fSBib2R5IC0gVGhlIHBhcnRpYWwgZGF0YSBvZiB0aGUgdW5pcXVlIGZvbGlvIHRvIHVwZGF0ZS5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPFVuaXF1ZUZvbGlvT3V0Pn0gQW4gb2JzZXJ2YWJsZSBlbWl0dGluZyB0aGUgdXBkYXRlZCB1bmlxdWUgZm9saW8gZGF0YS5cclxuICAgKi9cclxuICBwYXRoVW5pcXVlRm9saW8gKGlkOiBudW1iZXIsIGJvZHk6IFBhcnRpYWw8VW5pcXVlRm9saW9Jbj4pOiBPYnNlcnZhYmxlPFVuaXF1ZUZvbGlvT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dDxBcGlTdWNjZXNzPFVuaXF1ZUZvbGlvT3V0Pj4oYCR7dGhpcy51cmx9L3VuaXF1ZS1mb2xpb3MvJHtpZH1gLCBib2R5KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHJpZXZlcyBzaGlwbWVudCBncm91cHMgYmFzZWQgb24gdGhlIHByb3ZpZGVkIHF1ZXJ5IHBhcmFtZXRlcnMuXHJcbiAgICpcclxuICAgKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHF1ZXJ5IHBhcmFtZXRlcnMgdG8gZmlsdGVyIHRoZSBzaGlwbWVudCBncm91cHMuXHJcbiAgICogQHJldHVybnMgQW4gT2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSBzaGlwbWVudCBncm91cHMgZGF0YS5cclxuICAgKi9cclxuICBnZXRTaGlwbWVudEdyb3VwcyAocGFyYW1zOiBRdWVyeVBhcmFtcyk6IE9ic2VydmFibGU8U2hpcG1lbnRHcm91cHNPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8U2hpcG1lbnRHcm91cHNPdXQ+PihgJHt0aGlzLnVybH0vc2hpcG1lbnQtZ3JvdXBzYCwgeyBwYXJhbXMgfSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXRyaWV2ZXMgdGhlIHNoaXBtZW50IHN0YXR1c2VzIGZyb20gdGhlIEFQSS5cclxuICAgKlxyXG4gICAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcXVlcnkgcGFyYW1ldGVycyB0byBmaWx0ZXIgb3IgbW9kaWZ5IHRoZSByZXF1ZXN0LlxyXG4gICAqIEByZXR1cm5zIEFuIE9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgc2hpcG1lbnQgc3RhdHVzZXMgb3V0cHV0LlxyXG4gICAqL1xyXG4gIGdldFNoaXBtZW50U3RhdHVzZXMgKHBhcmFtczogUXVlcnlQYXJhbXMpOiBPYnNlcnZhYmxlPFNoaXBtZW50U3RhdHVzZXNPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8U2hpcG1lbnRTdGF0dXNlc091dD4+KGAke3RoaXMudXJsfS9zaGlwbWVudC1zdGF0dXNlc2AsIHsgcGFyYW1zIH0pXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRmV0Y2hlcyBxdWVzdGlvbnMgZnJvbSB0aGUgY2F0YWxvZ3MgQVBJLlxyXG4gICAqXHJcbiAgICogU2VuZHMgYW4gSFRUUCBHRVQgcmVxdWVzdCB0byBgJHt0aGlzLnVybH0vcXVlc3Rpb25zYCB1c2luZyB0aGUgc3VwcGxpZWQgcXVlcnkgcGFyYW1ldGVyc1xyXG4gICAqIGFuZCByZXR1cm5zIHRoZSB1bndyYXBwZWQgcGF5bG9hZCAoYGRhdGFgKSBmcm9tIHRoZSBBUEkgcmVzcG9uc2UuXHJcbiAgICpcclxuICAgKiBAcGFyYW0gcGFyYW1zIC0gUXVlcnkgcGFyYW1ldGVycyB0byBpbmNsdWRlIGluIHRoZSByZXF1ZXN0IChlLmcuIHBhZ2luZywgZmlsdGVycywgc29ydGluZykuXHJcbiAgICogQHJldHVybnMgQW4gT2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSBRdWVzdGlvbnNPdXQgcGF5bG9hZCAodGhlIGBkYXRhYCBmaWVsZCBmcm9tIEFwaVN1Y2Nlc3M8UXVlc3Rpb25zT3V0PikuXHJcbiAgICovXHJcbiAgZ2V0UXVlc3Rpb25zIChwYXJhbXM6IFF1ZXJ5UGFyYW1zKTogT2JzZXJ2YWJsZTxRdWVzdGlvbnNPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8UXVlc3Rpb25zT3V0Pj4oYCR7dGhpcy51cmx9L3F1ZXN0aW9uc2AsIHsgcGFyYW1zIH0pXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0cmlldmUgYSBzaW5nbGUgcXVlc3Rpb24gYnkgaXRzIGlkLlxyXG4gICAqXHJcbiAgICogU2VuZHMgYW4gSFRUUCBHRVQgcmVxdWVzdCB0byB0aGUgcXVlc3Rpb25zIGVuZHBvaW50IGFuZCByZXR1cm5zIGFuIE9ic2VydmFibGUgdGhhdCBlbWl0c1xyXG4gICAqIHRoZSBRdWVzdGlvbk91dCBwYXlsb2FkIGV4dHJhY3RlZCBmcm9tIHRoZSBBUEkgc3VjY2VzcyBlbnZlbG9wZS5cclxuICAgKlxyXG4gICAqIEBwYXJhbSBpZCAtIFRoZSBudW1lcmljIGlkZW50aWZpZXIgb2YgdGhlIHF1ZXN0aW9uIHRvIGZldGNoLlxyXG4gICAqIEByZXR1cm5zIEFuIE9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgcmVxdWVzdGVkIFF1ZXN0aW9uT3V0LiBUaGUgT2JzZXJ2YWJsZSB3aWxsIGVycm9yXHJcbiAgICogICAgICAgICAgaWYgdGhlIEhUVFAgcmVxdWVzdCBmYWlscyAoZm9yIGV4YW1wbGUgbmV0d29yayBpc3N1ZXMgb3Igbm9uLTJ4eCByZXNwb25zZXMpLlxyXG4gICAqL1xyXG4gIGdldFF1ZXN0aW9uIChpZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxRdWVzdGlvbk91dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxRdWVzdGlvbk91dD4+KGAke3RoaXMudXJsfS9xdWVzdGlvbnMvJHtpZH1gKVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNlbmRzIGEgUE9TVCByZXF1ZXN0IHRvIGNyZWF0ZSBhIG5ldyBxdWVzdGlvbiBhbmQgcmV0dXJucyB0aGUgY3JlYXRlZCByZXNvdXJjZS5cclxuICAgKlxyXG4gICAqIFRoZSByZXF1ZXN0IHBheWxvYWQgaXMgc2VudCBhcyBhbiBvYmplY3Qgd2l0aCBhIGBib2R5YCBwcm9wZXJ0eSBjb250YWluaW5nIHRoZSBwcm92aWRlZFxyXG4gICAqIFF1ZXN0aW9uSW4gdmFsdWUgKGkuZS4geyBib2R5OiBRdWVzdGlvbkluIH0pLiBPbiBzdWNjZXNzIHRoZSBIVFRQIHJlc3BvbnNlIGlzIGV4cGVjdGVkXHJcbiAgICogdG8gZm9sbG93IHRoZSBBcGlTdWNjZXNzPFQ+IHNoYXBlOyB0aGUgb3BlcmF0b3IgbWFwcyB0aGF0IHJlc3BvbnNlIHRvIHRoZSBpbm5lciBgZGF0YWBcclxuICAgKiBvYmplY3QgYW5kIGVtaXRzIGl0IGFzIGEgUXVlc3Rpb25PdXQuXHJcbiAgICpcclxuICAgKiBAcGFyYW0gYm9keSAtIFRoZSBxdWVzdGlvbiBwYXlsb2FkIHRvIGNyZWF0ZSAoUXVlc3Rpb25JbikuXHJcbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZTxRdWVzdGlvbk91dD4gdGhhdCBlbWl0cyB0aGUgY3JlYXRlZCBxdWVzdGlvbiBvbiBzdWNjZXNzLlxyXG4gICAqL1xyXG4gIHBvc3RRdWVzdGlvbiAoYm9keTogUXVlc3Rpb25Jbik6IE9ic2VydmFibGU8UXVlc3Rpb25PdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxBcGlTdWNjZXNzPFF1ZXN0aW9uT3V0Pj4oYCR7dGhpcy51cmx9L3F1ZXN0aW9uc2AsIGJvZHkpXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVXBkYXRlIGEgcXVlc3Rpb24gYnkgaXRzIElELlxyXG4gICAqXHJcbiAgICogU2VuZHMgYW4gSFRUUCBQVVQgdG8gYCR7dGhpcy51cmx9L3F1ZXN0aW9ucy8ke2lkfWAgd2l0aCB0aGUgcHJvdmlkZWQgcGF5bG9hZC5cclxuICAgKiBUaGUgcmVxdWVzdCBib2R5IGlzIHNlbnQgYXMgYW4gb2JqZWN0IHdpdGggYSBgYm9keWAgcHJvcGVydHkgY29udGFpbmluZyB0aGVcclxuICAgKiBgUXVlc3Rpb25JbmAgZGF0YS4gVGhlIHNlcnZlciByZXNwb25zZSBpcyBleHBlY3RlZCB0byBiZSBhbiBgQXBpU3VjY2VzczxRdWVzdGlvbk91dD5gXHJcbiAgICogYW5kIHRoaXMgbWV0aG9kIHJldHVybnMgYW4gT2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSB1bndyYXBwZWQgYFF1ZXN0aW9uT3V0YC5cclxuICAgKlxyXG4gICAqIEBwYXJhbSBpZCAtIFRoZSBpZGVudGlmaWVyIG9mIHRoZSBxdWVzdGlvbiB0byB1cGRhdGUuXHJcbiAgICogQHBhcmFtIGJvZHkgLSBUaGUgdXBkYXRlIHBheWxvYWQgZm9yIHRoZSBxdWVzdGlvbi5cclxuICAgKiBAcmV0dXJucyBBbiBPYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHVwZGF0ZWQgYFF1ZXN0aW9uT3V0YCBvbiBzdWNjZXNzLlxyXG4gICAqL1xyXG4gIHB1dFF1ZXN0aW9uIChpZDogbnVtYmVyLCBib2R5OiBRdWVzdGlvbkluKTogT2JzZXJ2YWJsZTxRdWVzdGlvbk91dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQ8QXBpU3VjY2VzczxRdWVzdGlvbk91dD4+KGAke3RoaXMudXJsfS9xdWVzdGlvbnMvJHtpZH1gLCBib2R5KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIERlbGV0ZXMgYSBxdWVzdGlvbiBieSBpdHMgSUQuXHJcbiAgICpcclxuICAgKiBTZW5kcyBhbiBIVFRQIERFTEVURSByZXF1ZXN0IHRvIHRoZSBiYWNrZW5kIGVuZHBvaW50IGAvcXVlc3Rpb25zL3tpZH1gIGFuZFxyXG4gICAqIHJldHVybnMgYW4gT2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSBBUEkgcmVzcG9uc2UncyBgZGF0YWAgcGF5bG9hZCAodHlwaWNhbGx5IGFuIGVtcHR5IG9iamVjdCkuXHJcbiAgICpcclxuICAgKiBUaGUgaW1wbGVtZW50YXRpb24gbWFwcyBhbiBBcGlTdWNjZXNzIHdyYXBwZXIgdG8gaXRzIGBkYXRhYCBwcm9wZXJ0eSBiZWZvcmUgZW1pdHRpbmcuXHJcbiAgICpcclxuICAgKiBAcGFyYW0gaWQgLSBUaGUgbnVtZXJpYyBpZGVudGlmaWVyIG9mIHRoZSBxdWVzdGlvbiB0byBkZWxldGUuXHJcbiAgICogQHJldHVybnMgQW4gT2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSBkZWxldGVkIHJlc291cmNlIHBheWxvYWQgKHt9IGV4cGVjdGVkKSBvbiBzdWNjZXNzLlxyXG4gICAqICAgICAgICAgIFRoZSBPYnNlcnZhYmxlIHdpbGwgZW1pdCBhbiBlcnJvciBpZiB0aGUgSFRUUCByZXF1ZXN0IGZhaWxzLlxyXG4gICAqL1xyXG4gIGRlbGV0ZVF1ZXN0aW9uIChpZDogbnVtYmVyKTogT2JzZXJ2YWJsZTx7fT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGU8QXBpU3VjY2Vzczx7fT4+KGAke3RoaXMudXJsfS9xdWVzdGlvbnMvJHtpZH1gKVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEZldGNoZXMgaG9saWRheXMgZnJvbSB0aGUgY2F0YWxvZ3MgQVBJLlxyXG4gICAqXHJcbiAgICogU2VuZHMgYW4gSFRUUCBHRVQgcmVxdWVzdCB0byBgJHt0aGlzLnVybH0vaG9saWRheXNgIHVzaW5nIHRoZSBzdXBwbGllZCBxdWVyeSBwYXJhbWV0ZXJzXHJcbiAgICogYW5kIHJldHVybnMgdGhlIHVud3JhcHBlZCBwYXlsb2FkIChgZGF0YWApIGZyb20gdGhlIEFQSSByZXNwb25zZS5cclxuICAgKlxyXG4gICAqIEBwYXJhbSBwYXJhbXMgLSBRdWVyeSBwYXJhbWV0ZXJzIHRvIGluY2x1ZGUgaW4gdGhlIHJlcXVlc3QgKGUuZy4gcGFnaW5nLCBmaWx0ZXJzLCBzb3J0aW5nKS5cclxuICAgKiBAcmV0dXJucyBBbiBPYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIEhvbGlkYXlzT3V0IHBheWxvYWQgKHRoZSBgZGF0YWAgZmllbGQgZnJvbSBBcGlTdWNjZXNzPEhvbGlkYXlzT3V0PikuXHJcbiAgICovXHJcbiAgZ2V0SG9saWRheXMgKHBhcmFtczogUXVlcnlQYXJhbXMpOiBPYnNlcnZhYmxlPEhvbGlkYXlzT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPEhvbGlkYXlzT3V0Pj4oYCR7dGhpcy51cmx9L2hvbGlkYXlzYCwgeyBwYXJhbXMgfSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXRyaWV2ZSBhIHNpbmdsZSBob2xpZGF5IGJ5IGl0cyBpZC5cclxuICAgKlxyXG4gICAqIFNlbmRzIGFuIEhUVFAgR0VUIHJlcXVlc3QgdG8gdGhlIGhvbGlkYXlzIGVuZHBvaW50IGFuZCByZXR1cm5zIGFuIE9ic2VydmFibGUgdGhhdCBlbWl0c1xyXG4gICAqIHRoZSBIb2xpZGF5T3V0IHBheWxvYWQgZXh0cmFjdGVkIGZyb20gdGhlIEFQSSBzdWNjZXNzIGVudmVsb3BlLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIGlkIC0gVGhlIG51bWVyaWMgaWRlbnRpZmllciBvZiB0aGUgaG9saWRheSB0byBmZXRjaC5cclxuICAgKiBAcmV0dXJucyBBbiBPYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHJlcXVlc3RlZCBIb2xpZGF5T3V0LiBUaGUgT2JzZXJ2YWJsZSB3aWxsIGVycm9yXHJcbiAgICogICAgICAgICAgaWYgdGhlIEhUVFAgcmVxdWVzdCBmYWlscyAoZm9yIGV4YW1wbGUgbmV0d29yayBpc3N1ZXMgb3Igbm9uLTJ4eCByZXNwb25zZXMpLlxyXG4gICAqL1xyXG4gIGdldEhvbGlkYXkgKGlkOiBudW1iZXIpOiBPYnNlcnZhYmxlPEhvbGlkYXlPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8SG9saWRheU91dD4+KGAke3RoaXMudXJsfS9ob2xpZGF5cy8ke2lkfWApXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2VuZHMgYSBQT1NUIHJlcXVlc3QgdG8gY3JlYXRlIGEgbmV3IGhvbGlkYXkgYW5kIHJldHVybnMgdGhlIGNyZWF0ZWQgcmVzb3VyY2UuXHJcbiAgICpcclxuICAgKiBUaGUgcmVxdWVzdCBwYXlsb2FkIGlzIHNlbnQgYXMgYW4gb2JqZWN0IHdpdGggYSBgYm9keWAgcHJvcGVydHkgY29udGFpbmluZyB0aGUgcHJvdmlkZWRcclxuICAgKiBIb2xpZGF5SW4gdmFsdWUgKGkuZS4geyBib2R5OiBIb2xpZGF5SW4gfSkuIE9uIHN1Y2Nlc3MgdGhlIEhUVFAgcmVzcG9uc2UgaXMgZXhwZWN0ZWRcclxuICAgKiB0byBmb2xsb3cgdGhlIEFwaVN1Y2Nlc3M8VD4gc2hhcGU7IHRoZSBvcGVyYXRvciBtYXBzIHRoYXQgcmVzcG9uc2UgdG8gdGhlIGlubmVyIGBkYXRhYFxyXG4gICAqIG9iamVjdCBhbmQgZW1pdHMgaXQgYXMgYSBIb2xpZGF5T3V0LlxyXG4gICAqXHJcbiAgICogQHBhcmFtIGJvZHkgLSBUaGUgaG9saWRheSBwYXlsb2FkIHRvIGNyZWF0ZSAoSG9saWRheUluKS5cclxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPEhvbGlkYXlPdXQ+IHRoYXQgZW1pdHMgdGhlIGNyZWF0ZWQgaG9saWRheSBvbiBzdWNjZXNzLlxyXG4gICAqL1xyXG4gIHBvc3RIb2xpZGF5IChib2R5OiBIb2xpZGF5SW4pOiBPYnNlcnZhYmxlPEhvbGlkYXlPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxBcGlTdWNjZXNzPEhvbGlkYXlPdXQ+PihgJHt0aGlzLnVybH0vaG9saWRheXNgLCBib2R5KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFVwZGF0ZSBhIGhvbGlkYXkgYnkgaXRzIElELlxyXG4gICAqXHJcbiAgICogU2VuZHMgYW4gSFRUUCBQVVQgdG8gYCR7dGhpcy51cmx9L2hvbGlkYXlzLyR7aWR9YCB3aXRoIHRoZSBwcm92aWRlZCBwYXlsb2FkLlxyXG4gICAqIFRoZSByZXF1ZXN0IGJvZHkgaXMgc2VudCBhcyBhbiBvYmplY3Qgd2l0aCBhIGBib2R5YCBwcm9wZXJ0eSBjb250YWluaW5nIHRoZVxyXG4gICAqIGBIb2xpZGF5SW5gIGRhdGEuIFRoZSBzZXJ2ZXIgcmVzcG9uc2UgaXMgZXhwZWN0ZWQgdG8gYmUgYW4gYEFwaVN1Y2Nlc3M8SG9saWRheU91dD5gXHJcbiAgICogYW5kIHRoaXMgbWV0aG9kIHJldHVybnMgYW4gT2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSB1bndyYXBwZWQgYEhvbGlkYXlPdXRgLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIGlkIC0gVGhlIGlkZW50aWZpZXIgb2YgdGhlIGhvbGlkYXkgdG8gdXBkYXRlLlxyXG4gICAqIEBwYXJhbSBib2R5IC0gVGhlIHVwZGF0ZSBwYXlsb2FkIGZvciB0aGUgaG9saWRheS5cclxuICAgKiBAcmV0dXJucyBBbiBPYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHVwZGF0ZWQgYEhvbGlkYXlPdXRgIG9uIHN1Y2Nlc3MuXHJcbiAgICovXHJcbiAgcHV0SG9saWRheSAoaWQ6IG51bWJlciwgYm9keTogSG9saWRheUluKTogT2JzZXJ2YWJsZTxIb2xpZGF5T3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dDxBcGlTdWNjZXNzPEhvbGlkYXlPdXQ+PihgJHt0aGlzLnVybH0vaG9saWRheXMvJHtpZH1gLCBib2R5KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIERlbGV0ZXMgYSBxdWVzdGlvbiBieSBpdHMgSUQuXHJcbiAgICpcclxuICAgKiBTZW5kcyBhbiBIVFRQIERFTEVURSByZXF1ZXN0IHRvIHRoZSBiYWNrZW5kIGVuZHBvaW50IGAvcXVlc3Rpb25zL3tpZH1gIGFuZFxyXG4gICAqIHJldHVybnMgYW4gT2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSBBUEkgcmVzcG9uc2UncyBgZGF0YWAgcGF5bG9hZCAodHlwaWNhbGx5IGFuIGVtcHR5IG9iamVjdCkuXHJcbiAgICpcclxuICAgKiBUaGUgaW1wbGVtZW50YXRpb24gbWFwcyBhbiBBcGlTdWNjZXNzIHdyYXBwZXIgdG8gaXRzIGBkYXRhYCBwcm9wZXJ0eSBiZWZvcmUgZW1pdHRpbmcuXHJcbiAgICpcclxuICAgKiBAcGFyYW0gaWQgLSBUaGUgbnVtZXJpYyBpZGVudGlmaWVyIG9mIHRoZSBxdWVzdGlvbiB0byBkZWxldGUuXHJcbiAgICogQHJldHVybnMgQW4gT2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSBkZWxldGVkIHJlc291cmNlIHBheWxvYWQgKHt9IGV4cGVjdGVkKSBvbiBzdWNjZXNzLlxyXG4gICAqICAgICAgICAgIFRoZSBPYnNlcnZhYmxlIHdpbGwgZW1pdCBhbiBlcnJvciBpZiB0aGUgSFRUUCByZXF1ZXN0IGZhaWxzLlxyXG4gICAqL1xyXG4gIGRlbGV0ZUhvbGlkYXkgKGlkOiBudW1iZXIpOiBPYnNlcnZhYmxlPHt9PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZTxBcGlTdWNjZXNzPHt9Pj4oYCR7dGhpcy51cmx9L2hvbGlkYXlzLyR7aWR9YClcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXRyaWV2ZXMgYSBsaXN0IG9mIGJ1c2luZXNzIHBhcnR5IHRyYWRlciB0eXBlc1xyXG4gICAqIEBwYXJhbSB7UXVlcnlQYXJhbXN9IHBhcmFtcyAtIFF1ZXJ5IHBhcmFtZXRlcnMgZm9yIGZpbHRlcmluZyBhbmQgcGFnaW5hdGlvbiAob3B0aW9uYWwpXHJcbiAgICogQHJldHVybnMge09ic2VydmFibGU8QnVzaW5lc3NQYXJ0eVRyYWRlclR5cGVzT3V0Pn0gT2JzZXJ2YWJsZSBjb250YWluaW5nIHRoZSBsaXN0IG9mIHRyYWRlciB0eXBlc1xyXG4gICAqL1xyXG4gIGdldEJ1c2luZXNzUGFydHlUcmFkZXJUeXBlcyAocGFyYW1zOiBRdWVyeVBhcmFtcyk6IE9ic2VydmFibGU8QnVzaW5lc3NQYXJ0eVRyYWRlclR5cGVzT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPEJ1c2luZXNzUGFydHlUcmFkZXJUeXBlc091dD4+KGAke3RoaXMudXJsfS9idXNpbmVzcy1wYXJ0eS10cmFkZXItdHlwZXNgKVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcbn1cclxuIl19
627
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLWNhdGFsb2dzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9leHBlcnRlYW0tbXgvbmd4LXNlcnZpY2VzL3NyYy9saWIvYXBpcy9hcGktY2F0YWxvZ3Muc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUdsRCxPQUFPLEVBQUUsR0FBRyxFQUFjLE1BQU0sTUFBTSxDQUFBOzs7QUFvRHRDLE1BQU0sT0FBTyxrQkFBa0I7SUFFSjtJQUNmO0lBRlYsWUFDeUIsWUFBeUIsRUFDeEMsSUFBZ0I7UUFERCxpQkFBWSxHQUFaLFlBQVksQ0FBYTtRQUN4QyxTQUFJLEdBQUosSUFBSSxDQUFZO0lBQ3RCLENBQUM7SUFFTDs7OztPQUlHO0lBQ0gsSUFBSSxHQUFHO1FBQ0wsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLGNBQWMsSUFBSSxFQUFFLENBQUE7SUFDL0MsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsaUJBQWlCLENBQUUsTUFBbUI7UUFDcEMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBZ0MsR0FBRyxJQUFJLENBQUMsR0FBRyxrQkFBa0IsRUFBRTtZQUNqRixNQUFNO1NBQ1AsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILHNCQUFzQixDQUFFLE1BQW1CO1FBQ3pDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQXFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsdUJBQXVCLEVBQUU7WUFDM0YsTUFBTTtTQUNQLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFB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QUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUNsQyxDQUFDO3dHQW5wQlUsa0JBQWtCLGtCQUVuQixLQUFLOzRHQUZKLGtCQUFrQixjQUZqQixNQUFNOzs0RkFFUCxrQkFBa0I7a0JBSDlCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFHSSxNQUFNOzJCQUFDLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xyXG5pbXBvcnQgeyBFbnZpcm9ubWVudCB9IGZyb20gJy4uL25neC1zZXJ2aWNlcy5tb2RlbHMnXHJcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCdcclxuaW1wb3J0IHsgbWFwLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcydcclxuaW1wb3J0IHsgQXBpU3VjY2VzcywgUXVlcnlQYXJhbXMgfSBmcm9tICcuL21vZGVscy9hcGkubW9kZWxzJ1xyXG5pbXBvcnQge1xyXG4gIEJ1c2luZXNzUGFydHlUcmFkZXJUeXBlc091dCxcclxuICBDYW5jZWxsYXRpb25SZWFzb25JbixcclxuICBDYW5jZWxsYXRpb25SZWFzb25PdXQsXHJcbiAgQ2FuY2VsbGF0aW9uUmVhc29uc091dCxcclxuICBDb3VudHJpZXNPdXQsXHJcbiAgQ291bnRyeUluLFxyXG4gIENvdW50cnlPdXQsXHJcbiAgQ3VycmVuY2llc091dCxcclxuICBFeHRyYUNoYXJnZUluLFxyXG4gIEV4dHJhQ2hhcmdlT3V0LFxyXG4gIEV4dHJhQ2hhcmdlc091dCxcclxuICBHZW5lcmljRm9saW9JbixcclxuICBHZW5lcmljRm9saW9PdXQsXHJcbiAgR2VuZXJpY0ZvbGlvc091dCxcclxuICBIb2xpZGF5SW4sXHJcbiAgSG9saWRheU91dCxcclxuICBIb2xpZGF5c091dCxcclxuICBJZGVudGlmaWNhdGlvblR5cGVJbixcclxuICBJZGVudGlmaWNhdGlvblR5cGVOdW1iZXJWYWxpZGF0aW9uSW4sXHJcbiAgSWRlbnRpZmljYXRpb25UeXBlTnVtYmVyVmFsaWRhdGlvbk91dCxcclxuICBJZGVudGlmaWNhdGlvblR5cGVPdXQsXHJcbiAgSWRlbnRpZmljYXRpb25UeXBlc091dCxcclxuICBMYW5ndWFnZXNPdXQsXHJcbiAgTWFuYWdlbWVudEFyZWFzT3V0LFxyXG4gIE9wZXJhdGlvblR5cGVzT3V0LFxyXG4gIFBvc3RhbExvY2F0aW9uc091dCxcclxuICBQcm9kdWN0SW4sXHJcbiAgUHJvZHVjdE91dCxcclxuICBRdWVzdGlvbkluLFxyXG4gIFF1ZXN0aW9uT3V0LFxyXG4gIFF1ZXN0aW9uc091dCxcclxuICBSZWdpb25zT3V0LFxyXG4gIFNoaXBtZW50Q29udGVudFR5cGVzT3V0LFxyXG4gIFNoaXBtZW50R3JvdXBzT3V0LFxyXG4gIFNoaXBtZW50SW5jb21lVHlwZUluLFxyXG4gIFNoaXBtZW50SW5jb21lVHlwZU91dCxcclxuICBTaGlwbWVudEluY29tZVR5cGVzT3V0LFxyXG4gIFNoaXBtZW50U2NvcGVzT3V0LFxyXG4gIFNoaXBtZW50U3RhdHVzZXNPdXQsXHJcbiAgVW5pcXVlRm9saW9JbixcclxuICBVbmlxdWVGb2xpb091dCxcclxuICBVbmlxdWVGb2xpb3NPdXQsXHJcbiAgVW5pdHNPdXQsXHJcbiAgWm9uZXNPdXRcclxufSBmcm9tICcuL21vZGVscy9hcGktY2F0YWxvZy50eXBlcydcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIEFwaUNhdGFsb2dzU2VydmljZSB7XHJcbiAgY29uc3RydWN0b3IgKFxyXG4gICAgQEluamVjdCgnZW52JykgcHJpdmF0ZSBlbnZpcm9ubWVudHM6IEVudmlyb25tZW50LFxyXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50XHJcbiAgKSB7IH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0cmlldmVzIHRoZSBVUkwgZm9yIHRoZSByZXBvcnRzIEFQSSBmcm9tIHRoZSBlbnZpcm9ubWVudCBjb25maWd1cmF0aW9ucy5cclxuICAgKlxyXG4gICAqIEByZXR1cm4ge3N0cmluZ30gVGhlIFVSTCBvZiB0aGUgcmVwb3J0cyBBUEkuXHJcbiAgICovXHJcbiAgZ2V0IHVybCAoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLmVudmlyb25tZW50cy5hcGlDYXRhbG9nc1VybCA/PyAnJ1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0cmlldmVzIHRoZSBsaXN0IG9mIGNvbGxlY3Rpb24gcGF5bWVudHNcclxuICAgKlxyXG4gICAqIEBwYXJhbSB7UXVlcnlQYXJhbXN9IHBhcmFtcyAtIFRoZSBxdWVyeSBwYXJhbWV0ZXJzIHVzZWQgdG8gZmV0Y2ggdGhlIG9wZXJhdGlvbiB0eXBlcy5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPE9wZXJhdGlvblR5cGVzT3V0W10+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgYW4gYXJyYXkgb2Ygb3BlcmF0aW9uIHR5cGUuXHJcbiAgICovXHJcbiAgZ2V0T3BlcmF0aW9uVHlwZXMgKHBhcmFtczogUXVlcnlQYXJhbXMpOiBPYnNlcnZhYmxlPE9wZXJhdGlvblR5cGVzT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPE9wZXJhdGlvblR5cGVzT3V0Pj4oYCR7dGhpcy51cmx9L29wZXJhdGlvbi10eXBlc2AsIHtcclxuICAgICAgcGFyYW1zXHJcbiAgICB9KS5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0cmlldmVzIHRoZSBsaXN0IG9mIGlkZW50aWZpY2F0aW9zIHR5cGVzXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge1F1ZXJ5UGFyYW1zfSBwYXJhbXMgLSBUaGUgcXVlcnkgcGFyYW1ldGVycyB1c2VkIHRvIGZldGNoIHRoZSBpZGVudGlmaWNhdGlvbiB0eXBlcy5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPElkZW50aWZpY2F0aW9uVHlwZXNPdXRbXT59IEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyBhbiBhcnJheSBvZiBpZGVudGlmaWNhdGlvbiB0eXBlLlxyXG4gICAqL1xyXG4gIGdldElkZW50aWZpY2F0aW9uVHlwZXMgKHBhcmFtczogUXVlcnlQYXJhbXMpOiBPYnNlcnZhYmxlPElkZW50aWZpY2F0aW9uVHlwZXNPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8SWRlbnRpZmljYXRpb25UeXBlc091dD4+KGAke3RoaXMudXJsfS9pZGVudGlmaWNhdGlvbi10eXBlc2AsIHtcclxuICAgICAgcGFyYW1zXHJcbiAgICB9KS5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0cmlldmUgYSBzaW5nbGUgaWRlbnRpZmljYXRpb24gdHlwZSBieSBpdHMgaWQuXHJcbiAgICpcclxuICAgKiBTZW5kcyBhbiBIVFRQIEdFVCByZXF1ZXN0IHRvIHRoZSBpbmRlbnRpZmljYXRpb24gdHlwZSBlbmRwb2ludCBhbmQgcmV0dXJucyBhbiBPYnNlcnZhYmxlIHRoYXQgZW1pdHNcclxuICAgKiB0aGUgSWRlbnRpZmljYXRpb25UeXBlT3V0IHBheWxvYWQgZXh0cmFjdGVkIGZyb20gdGhlIEFQSSBzdWNjZXNzIGVudmVsb3BlLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIGlkIC0gVGhlIG51bWVyaWMgaWRlbnRpZmllciBvZiB0aGUgaWRlbnRpZmljYXRpb24gdHlwZSB0byBmZXRjaC5cclxuICAgKiBAcmV0dXJucyBBbiBPYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHJlcXVlc3RlZCBJZGVudGlmaWNhdGlvblR5cGVPdXQuIFRoZSBPYnNlcnZhYmxlIHdpbGwgZXJyb3JcclxuICAgKiAgICAgICAgICBpZiB0aGUgSFRUUCByZXF1ZXN0IGZhaWxzIChmb3IgZXhhbXBsZSBuZXR3b3JrIGlzc3VlcyBvciBub24tMnh4IHJlc3BvbnNlcykuXHJcbiAgICovXHJcbiAgZ2V0SWRlbnRpZmljYXRpb25UeXBlIChpZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxJZGVudGlmaWNhdGlvblR5cGVPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8SWRlbnRpZmljYXRpb25UeXBlT3V0Pj4oYCR7dGhpcy51cmx9L2lkZW50aWZpY2F0aW9uLXR5cGVzLyR7aWR9YClcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZW5kcyBhIFBPU1QgcmVxdWVzdCB0byBjcmVhdGUgYSBuZXcgaWRlbnRpZmljYXRpb24gdHlwZSBhbmQgcmV0dXJucyB0aGUgY3JlYXRlZCByZXNvdXJjZS5cclxuICAgKlxyXG4gICAqIFRoZSByZXF1ZXN0IHBheWxvYWQgaXMgc2VudCBhcyBhbiBvYmplY3Qgd2l0aCBhIGBib2R5YCBwcm9wZXJ0eSBjb250YWluaW5nIHRoZSBwcm92aWRlZFxyXG4gICAqIElkZW50aWZpY2F0aW9uVHlwZUluIHZhbHVlIChpLmUuIHsgYm9keTogSWRlbnRpZmljYXRpb25UeXBlSW4gfSkuIE9uIHN1Y2Nlc3MgdGhlIEhUVFAgcmVzcG9uc2UgaXMgZXhwZWN0ZWRcclxuICAgKiB0byBmb2xsb3cgdGhlIEFwaVN1Y2Nlc3M8VD4gc2hhcGU7IHRoZSBvcGVyYXRvciBtYXBzIHRoYXQgcmVzcG9uc2UgdG8gdGhlIGlubmVyIGBkYXRhYFxyXG4gICAqIG9iamVjdCBhbmQgZW1pdHMgaXQgYXMgYSBJZGVudGlmaWNhdGlvblR5cGVPdXQuXHJcbiAgICpcclxuICAgKiBAcGFyYW0gYm9keSAtIFRoZSBpZGVudGlmaWNhdGlvbiB0eXBlIHBheWxvYWQgdG8gY3JlYXRlIChJZGVudGlmaWNhdGlvblR5cGVJbikuXHJcbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZTxJZGVudGlmaWNhdGlvblR5cGVPdXQ+IHRoYXQgZW1pdHMgdGhlIGNyZWF0ZWQgaWRlbnRpZmljYXRpb24gdHlwZSBvbiBzdWNjZXNzLlxyXG4gICAqL1xyXG4gIHBvc3RJZGVudGlmaWNhdGlvbnRUeXBlIChib2R5OiBJZGVudGlmaWNhdGlvblR5cGVJbik6IE9ic2VydmFibGU8SWRlbnRpZmljYXRpb25UeXBlT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8QXBpU3VjY2VzczxJZGVudGlmaWNhdGlvblR5cGVPdXQ+PihgJHt0aGlzLnVybH0vaWRlbnRpZmljYXRpb24tdHlwZXNgLCBib2R5KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFVwZGF0ZSBhIGlkZW50aWZpY2F0aW9uIHR5cGUgYnkgaXRzIElELlxyXG4gICAqXHJcbiAgICogU2VuZHMgYW4gSFRUUCBQVVQgdG8gYCR7dGhpcy51cmx9L2lkZW50aWZpY2F0aW9uLXR5cGVzLyR7aWR9YCB3aXRoIHRoZSBwcm92aWRlZCBwYXlsb2FkLlxyXG4gICAqIFRoZSByZXF1ZXN0IGJvZHkgaXMgc2VudCBhcyBhbiBvYmplY3Qgd2l0aCBhIGBib2R5YCBwcm9wZXJ0eSBjb250YWluaW5nIHRoZVxyXG4gICAqIGBJZGVudGlmaWNhdGlvblR5cGVJbmAgZGF0YS4gVGhlIHNlcnZlciByZXNwb25zZSBpcyBleHBlY3RlZCB0byBiZSBhbiBgQXBpU3VjY2VzczxJZGVudGlmaWNhdGlvblR5cGVPdXQ+YFxyXG4gICAqIGFuZCB0aGlzIG1ldGhvZCByZXR1cm5zIGFuIE9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgdW53cmFwcGVkIGBJZGVudGlmaWNhdGlvblR5cGVPdXRgLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIGlkIC0gVGhlIGlkZW50aWZpZXIgb2YgdGhlIGlkZW50aWZpY2F0aW9uIHR5cGUgdG8gdXBkYXRlLlxyXG4gICAqIEBwYXJhbSBib2R5IC0gVGhlIHVwZGF0ZSBwYXlsb2FkIGZvciB0aGUgaWRlbnRpZmljYXRpb24gdHlwZS5cclxuICAgKiBAcmV0dXJucyBBbiBPYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHVwZGF0ZWQgYElkZW50aWZpY2F0aW9uVHlwZU91dGAgb24gc3VjY2Vzcy5cclxuICAgKi9cclxuICBwdXRJZGVudGlmaWNhdGlvblR5cGUgKGlkOiBudW1iZXIsIGJvZHk6IElkZW50aWZpY2F0aW9uVHlwZUluKTogT2JzZXJ2YWJsZTxJZGVudGlmaWNhdGlvblR5cGVPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PEFwaVN1Y2Nlc3M8SWRlbnRpZmljYXRpb25UeXBlT3V0Pj4oYCR7dGhpcy51cmx9L2lkZW50aWZpY2F0aW9uLXR5cGVzLyR7aWR9YCwgYm9keSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBEZWxldGUgYSBpZGVudGlmaWNhdGlvbiB0eXBlIGJ5IGl0cyBJRC5cclxuICAgKlxyXG4gICAqIFNlbmRzIGFuIEhUVFAgREVMRVRFIHJlcXVlc3QgdG8gdGhlIGJhY2tlbmQgZW5kcG9pbnQgYC9pZGVudGlmaWNhdGlvbi10eXBlcy97aWR9YCBhbmRcclxuICAgKiByZXR1cm5zIGFuIE9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgQVBJIHJlc3BvbnNlJ3MgYGRhdGFgIHBheWxvYWQgKHR5cGljYWxseSBhbiBlbXB0eSBvYmplY3QpLlxyXG4gICAqXHJcbiAgICogVGhlIGltcGxlbWVudGF0aW9uIG1hcHMgYW4gQXBpU3VjY2VzcyB3cmFwcGVyIHRvIGl0cyBgZGF0YWAgcHJvcGVydHkgYmVmb3JlIGVtaXR0aW5nLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIGlkIC0gVGhlIG51bWVyaWMgaWRlbnRpZmllciBvZiB0aGUgaWRlbnRpZmljYXRpb24gdHlwZSB0byBkZWxldGUuXHJcbiAgICogQHJldHVybnMgQW4gT2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSBkZWxldGVkIHJlc291cmNlIHBheWxvYWQgKHt9IGV4cGVjdGVkKSBvbiBzdWNjZXNzLlxyXG4gICAqICAgICAgICAgIFRoZSBPYnNlcnZhYmxlIHdpbGwgZW1pdCBhbiBlcnJvciBpZiB0aGUgSFRUUCByZXF1ZXN0IGZhaWxzLlxyXG4gICAqL1xyXG4gIGRlbGV0ZUlkZW50aWZpY2F0aW9uVHlwZSAoaWQ6IG51bWJlcik6IE9ic2VydmFibGU8e30+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlPEFwaVN1Y2Nlc3M8e30+PihgJHt0aGlzLnVybH0vaWRlbnRpZmljYXRpb24tdHlwZXMvJHtpZH1gKVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNlbmRzIGEgUE9TVCByZXF1ZXN0IHRvIHZhbGlkYXRlIGlkZW50aWZpY2F0aW9uIHR5cGUgbnVtYmVyLlxyXG4gICAqXHJcbiAgICogVGhlIHJlcXVlc3QgcGF5bG9hZCBpcyBzZW50IGFzIGFuIG9iamVjdCB3aXRoIGEgYGJvZHlgIHByb3BlcnR5IGNvbnRhaW5pbmcgdGhlIHByb3ZpZGVkXHJcbiAgICogSWRlbnRpZmljYXRpb25UeXBlTnVtYmVyVmFsaWRhdGlvbkluIHZhbHVlIChpLmUuIHsgYm9keTogSWRlbnRpZmljYXRpb25UeXBlTnVtYmVyVmFsaWRhdGlvbkluIH0pLiBPbiBzdWNjZXNzIHRoZSBIVFRQIHJlc3BvbnNlIGlzIGV4cGVjdGVkXHJcbiAgICogdG8gZm9sbG93IHRoZSBBcGlTdWNjZXNzPFQ+IHNoYXBlOyB0aGUgb3BlcmF0b3IgbWFwcyB0aGF0IHJlc3BvbnNlIHRvIHRoZSBpbm5lciBgZGF0YWBcclxuICAgKiBvYmplY3QgYW5kIGVtaXRzIGl0IGFzIGEgSWRlbnRpZmljYXRpb25UeXBlTnVtYmVyVmFsaWRhdGlvbk91dC5cclxuICAgKlxyXG4gICAqIEBwYXJhbSBib2R5IC0gVGhlIGlkZW50aWZpY2F0aW9uIHR5cGUgbnVtYmVyIHZhbGlkYXRpb24gcGF5bG9hZCB0byB2YWxpZGF0ZSAoSWRlbnRpZmljYXRpb25UeXBlTnVtYmVyVmFsaWRhdGlvbkluKS5cclxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPElkZW50aWZpY2F0aW9uVHlwZU51bWJlclZhbGlkYXRpb25PdXQ+IHRoYXQgZW1pdHMgdGhlIHZhbGlkYXRlIHN0YXR1cy5cclxuICAgKi9cclxuICBwb3N0SWRlbnRpZmljYXRpb250VHlwZU51bWJlclZhbGlkYXRpb24gKGJvZHk6IElkZW50aWZpY2F0aW9uVHlwZU51bWJlclZhbGlkYXRpb25Jbik6IE9ic2VydmFibGU8SWRlbnRpZmljYXRpb25UeXBlTnVtYmVyVmFsaWRhdGlvbk91dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PEFwaVN1Y2Nlc3M8SWRlbnRpZmljYXRpb25UeXBlTnVtYmVyVmFsaWRhdGlvbk91dD4+KGAke3RoaXMudXJsfS9pZGVudGlmaWNhdGlvbi10eXBlcy9udW1iZXItdmFsaWRhdGlvbmAsIGJvZHkpXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+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+PihgJHt0aGlzLnVybH0vcXVlc3Rpb25zLyR7aWR9YClcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBGZXRjaGVzIGhvbGlkYXlzIGZyb20gdGhlIGNhdGFsb2dzIEFQSS5cclxuICAgKlxyXG4gICAqIFNlbmRzIGFuIEhUVFAgR0VUIHJlcXVlc3QgdG8gYCR7dGhpcy51cmx9L2hvbGlkYXlzYCB1c2luZyB0aGUgc3VwcGxpZWQgcXVlcnkgcGFyYW1ldGVyc1xyXG4gICAqIGFuZCByZXR1cm5zIHRoZSB1bndyYXBwZWQgcGF5bG9hZCAoYGRhdGFgKSBmcm9tIHRoZSBBUEkgcmVzcG9uc2UuXHJcbiAgICpcclxuICAgKiBAcGFyYW0gcGFyYW1zIC0gUXVlcnkgcGFyYW1ldGVycyB0byBpbmNsdWRlIGluIHRoZSByZXF1ZXN0IChlLmcuIHBhZ2luZywgZmlsdGVycywgc29ydGluZykuXHJcbiAgICogQHJldHVybnMgQW4gT2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSBIb2xpZGF5c091dCBwYXlsb2FkICh0aGUgYGRhdGFgIGZpZWxkIGZyb20gQXBpU3VjY2VzczxIb2xpZGF5c091dD4pLlxyXG4gICAqL1xyXG4gIGdldEhvbGlkYXlzIChwYXJhbXM6IFF1ZXJ5UGFyYW1zKTogT2JzZXJ2YWJsZTxIb2xpZGF5c091dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxIb2xpZGF5c091dD4+KGAke3RoaXMudXJsfS9ob2xpZGF5c2AsIHsgcGFyYW1zIH0pXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0cmlldmUgYSBzaW5nbGUgaG9saWRheSBieSBpdHMgaWQuXHJcbiAgICpcclxuICAgKiBTZW5kcyBhbiBIVFRQIEdFVCByZXF1ZXN0IHRvIHRoZSBob2xpZGF5cyBlbmRwb2ludCBhbmQgcmV0dXJucyBhbiBPYnNlcnZhYmxlIHRoYXQgZW1pdHNcclxuICAgKiB0aGUgSG9saWRheU91dCBwYXlsb2FkIGV4dHJhY3RlZCBmcm9tIHRoZSBBUEkgc3VjY2VzcyBlbnZlbG9wZS5cclxuICAgKlxyXG4gICAqIEBwYXJhbSBpZCAtIFRoZSBudW1lcmljIGlkZW50aWZpZXIgb2YgdGhlIGhvbGlkYXkgdG8gZmV0Y2guXHJcbiAgICogQHJldHVybnMgQW4gT2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSByZXF1ZXN0ZWQgSG9saWRheU91dC4gVGhlIE9ic2VydmFibGUgd2lsbCBlcnJvclxyXG4gICAqICAgICAgICAgIGlmIHRoZSBIVFRQIHJlcXVlc3QgZmFpbHMgKGZvciBleGFtcGxlIG5ldHdvcmsgaXNzdWVzIG9yIG5vbi0yeHggcmVzcG9uc2VzKS5cclxuICAgKi9cclxuICBnZXRIb2xpZGF5IChpZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxIb2xpZGF5T3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPEhvbGlkYXlPdXQ+PihgJHt0aGlzLnVybH0vaG9saWRheXMvJHtpZH1gKVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNlbmRzIGEgUE9TVCByZXF1ZXN0IHRvIGNyZWF0ZSBhIG5ldyBob2xpZGF5IGFuZCByZXR1cm5zIHRoZSBjcmVhdGVkIHJlc291cmNlLlxyXG4gICAqXHJcbiAgICogVGhlIHJlcXVlc3QgcGF5bG9hZCBpcyBzZW50IGFzIGFuIG9iamVjdCB3aXRoIGEgYGJvZHlgIHByb3BlcnR5IGNvbnRhaW5pbmcgdGhlIHByb3ZpZGVkXHJcbiAgICogSG9saWRheUluIHZhbHVlIChpLmUuIHsgYm9keTogSG9saWRheUluIH0pLiBPbiBzdWNjZXNzIHRoZSBIVFRQIHJlc3BvbnNlIGlzIGV4cGVjdGVkXHJcbiAgICogdG8gZm9sbG93IHRoZSBBcGlTdWNjZXNzPFQ+IHNoYXBlOyB0aGUgb3BlcmF0b3IgbWFwcyB0aGF0IHJlc3BvbnNlIHRvIHRoZSBpbm5lciBgZGF0YWBcclxuICAgKiBvYmplY3QgYW5kIGVtaXRzIGl0IGFzIGEgSG9saWRheU91dC5cclxuICAgKlxyXG4gICAqIEBwYXJhbSBib2R5IC0gVGhlIGhvbGlkYXkgcGF5bG9hZCB0byBjcmVhdGUgKEhvbGlkYXlJbikuXHJcbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZTxIb2xpZGF5T3V0PiB0aGF0IGVtaXRzIHRoZSBjcmVhdGVkIGhvbGlkYXkgb24gc3VjY2Vzcy5cclxuICAgKi9cclxuICBwb3N0SG9saWRheSAoYm9keTogSG9saWRheUluKTogT2JzZXJ2YWJsZTxIb2xpZGF5T3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8QXBpU3VjY2VzczxIb2xpZGF5T3V0Pj4oYCR7dGhpcy51cmx9L2hvbGlkYXlzYCwgYm9keSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVcGRhdGUgYSBob2xpZGF5IGJ5IGl0cyBJRC5cclxuICAgKlxyXG4gICAqIFNlbmRzIGFuIEhUVFAgUFVUIHRvIGAke3RoaXMudXJsfS9ob2xpZGF5cy8ke2lkfWAgd2l0aCB0aGUgcHJvdmlkZWQgcGF5bG9hZC5cclxuICAgKiBUaGUgcmVxdWVzdCBib2R5IGlzIHNlbnQgYXMgYW4gb2JqZWN0IHdpdGggYSBgYm9keWAgcHJvcGVydHkgY29udGFpbmluZyB0aGVcclxuICAgKiBgSG9saWRheUluYCBkYXRhLiBUaGUgc2VydmVyIHJlc3BvbnNlIGlzIGV4cGVjdGVkIHRvIGJlIGFuIGBBcGlTdWNjZXNzPEhvbGlkYXlPdXQ+YFxyXG4gICAqIGFuZCB0aGlzIG1ldGhvZCByZXR1cm5zIGFuIE9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgdW53cmFwcGVkIGBIb2xpZGF5T3V0YC5cclxuICAgKlxyXG4gICAqIEBwYXJhbSBpZCAtIFRoZSBpZGVudGlmaWVyIG9mIHRoZSBob2xpZGF5IHRvIHVwZGF0ZS5cclxuICAgKiBAcGFyYW0gYm9keSAtIFRoZSB1cGRhdGUgcGF5bG9hZCBmb3IgdGhlIGhvbGlkYXkuXHJcbiAgICogQHJldHVybnMgQW4gT2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSB1cGRhdGVkIGBIb2xpZGF5T3V0YCBvbiBzdWNjZXNzLlxyXG4gICAqL1xyXG4gIHB1dEhvbGlkYXkgKGlkOiBudW1iZXIsIGJvZHk6IEhvbGlkYXlJbik6IE9ic2VydmFibGU8SG9saWRheU91dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQ8QXBpU3VjY2VzczxIb2xpZGF5T3V0Pj4oYCR7dGhpcy51cmx9L2hvbGlkYXlzLyR7aWR9YCwgYm9keSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBEZWxldGVzIGEgcXVlc3Rpb24gYnkgaXRzIElELlxyXG4gICAqXHJcbiAgICogU2VuZHMgYW4gSFRUUCBERUxFVEUgcmVxdWVzdCB0byB0aGUgYmFja2VuZCBlbmRwb2ludCBgL3F1ZXN0aW9ucy97aWR9YCBhbmRcclxuICAgKiByZXR1cm5zIGFuIE9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgQVBJIHJlc3BvbnNlJ3MgYGRhdGFgIHBheWxvYWQgKHR5cGljYWxseSBhbiBlbXB0eSBvYmplY3QpLlxyXG4gICAqXHJcbiAgICogVGhlIGltcGxlbWVudGF0aW9uIG1hcHMgYW4gQXBpU3VjY2VzcyB3cmFwcGVyIHRvIGl0cyBgZGF0YWAgcHJvcGVydHkgYmVmb3JlIGVtaXR0aW5nLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIGlkIC0gVGhlIG51bWVyaWMgaWRlbnRpZmllciBvZiB0aGUgcXVlc3Rpb24gdG8gZGVsZXRlLlxyXG4gICAqIEByZXR1cm5zIEFuIE9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgZGVsZXRlZCByZXNvdXJjZSBwYXlsb2FkICh7fSBleHBlY3RlZCkgb24gc3VjY2Vzcy5cclxuICAgKiAgICAgICAgICBUaGUgT2JzZXJ2YWJsZSB3aWxsIGVtaXQgYW4gZXJyb3IgaWYgdGhlIEhUVFAgcmVxdWVzdCBmYWlscy5cclxuICAgKi9cclxuICBkZWxldGVIb2xpZGF5IChpZDogbnVtYmVyKTogT2JzZXJ2YWJsZTx7fT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGU8QXBpU3VjY2Vzczx7fT4+KGAke3RoaXMudXJsfS9ob2xpZGF5cy8ke2lkfWApXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0cmlldmVzIGEgbGlzdCBvZiBidXNpbmVzcyBwYXJ0eSB0cmFkZXIgdHlwZXNcclxuICAgKiBAcGFyYW0ge1F1ZXJ5UGFyYW1zfSBwYXJhbXMgLSBRdWVyeSBwYXJhbWV0ZXJzIGZvciBmaWx0ZXJpbmcgYW5kIHBhZ2luYXRpb24gKG9wdGlvbmFsKVxyXG4gICAqIEByZXR1cm5zIHtPYnNlcnZhYmxlPEJ1c2luZXNzUGFydHlUcmFkZXJUeXBlc091dD59IE9ic2VydmFibGUgY29udGFpbmluZyB0aGUgbGlzdCBvZiB0cmFkZXIgdHlwZXNcclxuICAgKi9cclxuICBnZXRCdXNpbmVzc1BhcnR5VHJhZGVyVHlwZXMgKHBhcmFtczogUXVlcnlQYXJhbXMpOiBPYnNlcnZhYmxlPEJ1c2luZXNzUGFydHlUcmFkZXJUeXBlc091dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxCdXNpbmVzc1BhcnR5VHJhZGVyVHlwZXNPdXQ+PihgJHt0aGlzLnVybH0vYnVzaW5lc3MtcGFydHktdHJhZGVyLXR5cGVzYClcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -141,6 +141,22 @@ export class ApiReportsService {
141
141
  return this.http.get(`${this.url}/invoices`, { params })
142
142
  .pipe(map(({ data }) => data));
143
143
  }
144
+ /**
145
+ * Retrieves the sales book report based on the provided query parameters.
146
+ *
147
+ * @param params - The query parameters to filter or customize the report.
148
+ * @returns An Observable that emits the sales book report data.
149
+ *
150
+ * @example
151
+ * ```typescript
152
+ * this.apiReportsService.getSalesBookReport({ page: 1, limit: 10 })
153
+ * .subscribe(report => console.log(report));
154
+ * ```
155
+ */
156
+ getSalesBookReport(params) {
157
+ return this.http.get(`${this.url}/sales-book-report`, { params })
158
+ .pipe(map(({ data }) => data));
159
+ }
144
160
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ApiReportsService, deps: [{ token: 'env' }, { token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
145
161
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ApiReportsService, providedIn: 'root' });
146
162
  }
@@ -153,4 +169,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
153
169
  type: Inject,
154
170
  args: ['env']
155
171
  }] }, { type: i1.HttpClient }] });
156
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLXJlcG9ydHMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V4cGVydGVhbS1teC9uZ3gtc2VydmljZXMvc3JjL2xpYi9hcGlzL2FwaS1yZXBvcnRzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDbEQsT0FBTyxFQUFFLEdBQUcsRUFBYyxNQUFNLE1BQU0sQ0FBQTs7O0FBY3RDLE1BQU0sT0FBTyxpQkFBaUI7SUFFSDtJQUNmO0lBRlYsWUFDeUIsWUFBeUIsRUFDeEMsSUFBZ0I7UUFERCxpQkFBWSxHQUFaLFlBQVksQ0FBYTtRQUN4QyxTQUFJLEdBQUosSUFBSSxDQUFZO0lBQ3RCLENBQUM7SUFFTDs7OztPQUlHO0lBQ0gsSUFBSSxHQUFHO1FBQ0wsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsSUFBSSxFQUFFLENBQUE7SUFDOUMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gscUJBQXFCLENBQUUsTUFBbUI7UUFDeEMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBb0MsR0FBRyxJQUFJLENBQUMsR0FBRyxxQkFBcUIsRUFBRTtZQUN4RixNQUFNO1NBQ1AsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILGtCQUFrQixDQUFFLE1BQW1CO1FBQ3JDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQWlDLEdBQUcsSUFBSSxDQUFDLEdBQUcsbUJBQW1CLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQzthQUM3RixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxF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QUZKLGlCQUFpQixjQUZoQixNQUFNOzs0RkFFUCxpQkFBaUI7a0JBSDdCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFHSSxNQUFNOzJCQUFDLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCdcclxuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcclxuaW1wb3J0IHsgbWFwLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcydcclxuaW1wb3J0IHsgRW52aXJvbm1lbnQgfSBmcm9tICcuLi9uZ3gtc2VydmljZXMubW9kZWxzJ1xyXG5pbXBvcnQge1xyXG4gIENvbGxlY3Rpb25QYXltZW50c091dCwgRXh0ZXJuYWxTaGlwbWVudHNPdXQsXHJcbiAgRmlsZUNoZWNrT3V0LCBJbnZvaWNlc091dCwgUGFydGlhbFdpdGhkcmF3YWxzT3V0LFxyXG4gIFByb21vdGlvbkNvZGVEaXNjb3VudHNPdXQsXHJcbiAgU2hpcG1lbnRzTGFuZGluZ1JlcG9ydE91dCxcclxuICBTaGlwbWVudHNSZXBvcnRPdXRcclxufSBmcm9tICcuL21vZGVscy9hcGktcmVwb3J0cy50eXBlcydcclxuaW1wb3J0IHsgQXBpU3VjY2VzcywgUXVlcnlQYXJhbXMgfSBmcm9tICcuL21vZGVscy9hcGkubW9kZWxzJ1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQXBpUmVwb3J0c1NlcnZpY2Uge1xyXG4gIGNvbnN0cnVjdG9yIChcclxuICAgIEBJbmplY3QoJ2VudicpIHByaXZhdGUgZW52aXJvbm1lbnRzOiBFbnZpcm9ubWVudCxcclxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudFxyXG4gICkgeyB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHJpZXZlcyB0aGUgVVJMIGZvciB0aGUgcmVwb3J0cyBBUEkgZnJvbSB0aGUgZW52aXJvbm1lbnQgY29uZmlndXJhdGlvbnMuXHJcbiAgICpcclxuICAgKiBAcmV0dXJuIHtzdHJpbmd9IFRoZSBVUkwgb2YgdGhlIHJlcG9ydHMgQVBJLlxyXG4gICAqL1xyXG4gIGdldCB1cmwgKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5lbnZpcm9ubWVudHMuYXBpUmVwb3J0c1VybCA/PyAnJ1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0cmlldmVzIHRoZSBsaXN0IG9mIGNvbGxlY3Rpb24gcGF5bWVudHNcclxuICAgKlxyXG4gICAqIEBwYXJhbSB7UXVlcnlQYXJhbXN9IHBhcmFtcyAtIFRoZSBxdWVyeSBwYXJhbWV0ZXJzIHVzZWQgdG8gZmV0Y2ggdGhlIGNvbGxlY3Rpb24gcGF5bWVudHMuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxDb2xsZWN0aW9uUGF5bWVudHNPdXRbXT59IEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyBhbiBhcnJheSBvZiBjb2xsZWN0aW9uIHBheW1lbnQuXHJcbiAgICovXHJcbiAgZ2V0Q29sbGVjdGlvblBheW1lbnRzIChwYXJhbXM6IFF1ZXJ5UGFyYW1zKTogT2JzZXJ2YWJsZTxDb2xsZWN0aW9uUGF5bWVudHNPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8Q29sbGVjdGlvblBheW1lbnRzT3V0Pj4oYCR7dGhpcy51cmx9L2NvbGxlY3Rpb24tcGF5bWVudGAsIHtcclxuICAgICAgcGFyYW1zXHJcbiAgICB9KS5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRmV0Y2hlcyBzaGlwbWVudCByZXBvcnRzIGJhc2VkIG9uIHRoZSBwcm92aWRlZCBxdWVyeSBwYXJhbWV0ZXJzLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtRdWVyeVBhcmFtc30gcGFyYW1zIC0gVGhlIHF1ZXJ5IHBhcmFtZXRlcnMgdXNlZCB0byBmaWx0ZXIgb3IgZGVmaW5lIHRoZSBzaGlwbWVudCByZXBvcnRzLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8U2hpcG1lbnRzUmVwb3J0T3V0Pn0gQW4gb2JzZXJ2YWJsZSBlbWl0dGluZyB0aGUgc2hpcG1lbnQgcmVwb3J0IGRhdGEuXHJcbiAgICovXHJcbiAgZ2V0U2hpcG1lbnRzUmVwb3J0IChwYXJhbXM6IFF1ZXJ5UGFyYW1zKTogT2JzZXJ2YWJsZTxTaGlwbWVudHNSZXBvcnRPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8U2hpcG1lbnRzUmVwb3J0T3V0Pj4oYCR7dGhpcy51cmx9L3NoaXBtZW50cy1yZXBvcnRgLCB7IHBhcmFtcyB9KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHJpZXZlcyB0aGUgc2hpcG1lbnRzIGxhbmRpbmcgcmVwb3J0IGZyb20gdGhlIHJlcG9ydHMgQVBJLlxyXG4gICAqXHJcbiAgICogU2VuZHMgYSBHRVQgcmVxdWVzdCB0byB0aGUgYC9zaGlwbWVudHMtbGFuZGluZy1yZXBvcnRgIGVuZHBvaW50IHdpdGggdGhlIHByb3ZpZGVkIHF1ZXJ5IHBhcmFtZXRlcnMuXHJcbiAgICogVGhlIEhUVFAgcmVzcG9uc2UgaXMgZXhwZWN0ZWQgdG8gYmUgd3JhcHBlZCBpbiBhbiBgQXBpU3VjY2Vzc2AgZW52ZWxvcGUsIGZyb20gd2hpY2ggdGhlIGBkYXRhYFxyXG4gICAqIHBheWxvYWQgaXMgZXh0cmFjdGVkIGFuZCByZXR1cm5lZCBhcyB0aGUgc3RyZWFtIHZhbHVlLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHBhcmFtcyAtIFF1ZXJ5IHBhcmFtZXRlcnMgdXNlZCB0byBmaWx0ZXIgb3IgcGFnaW5hdGUgdGhlIHNoaXBtZW50cyBsYW5kaW5nIHJlcG9ydC5cclxuICAgKiBAcmV0dXJucyBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHBhcnNlZCBgU2hpcG1lbnRzTGFuZGluZ1JlcG9ydE91dGAgZGF0YSBmcm9tIHRoZSBBUEkgcmVzcG9uc2UuXHJcbiAgICpcclxuICAgKiBAcmVtYXJrc1xyXG4gICAqIC0gVGhlIHVuZGVybHlpbmcgSFRUUCBjYWxsIHVzZXMgYEh0dHBDbGllbnQuZ2V0YCB3aXRoIGBwYXJhbXNgIHNlcmlhbGl6ZWQgYXMgcXVlcnkgc3RyaW5nIHZhbHVlcy5cclxuICAgKiAtIFRoZSByZXNwb25zZSBpcyBwaXBlZCB0aHJvdWdoIGBtYXBgIHRvIHVud3JhcCBgZGF0YWAgZnJvbSBgQXBpU3VjY2VzczxUPmAuXHJcbiAgICogLSBFcnJvcnMgZnJvbSB0aGUgSFRUUCByZXF1ZXN0IGFyZSBwcm9wYWdhdGVkIHRocm91Z2ggdGhlIG9ic2VydmFibGUgc3RyZWFtLlxyXG4gICAqXHJcbiAgICogQGV4YW1wbGVcclxuICAgKiBgYGB0c1xyXG4gICAqIC8vIEJhc2ljIHVzYWdlOlxyXG4gICAqIHNlcnZpY2UuZ2V0U2hpcG1lbnRzTGFuZGluZ1JlcG9ydCh7IHBhZ2U6IDEsIHBlclBhZ2U6IDI1IH0pXHJcbiAgICogICAuc3Vic2NyaWJlKHJlcG9ydCA9PiB7XHJcbiAgICogICAgIC8vIGhhbmRsZSBTaGlwbWVudHNMYW5kaW5nUmVwb3J0T3V0XHJcbiAgICogICB9KTtcclxuICAgKiBgYGBcclxuICAgKi9cclxuICBnZXRTaGlwbWVudHNMYW5kaW5nUmVwb3J0IChwYXJhbXM6IFF1ZXJ5UGFyYW1zKTogT2JzZXJ2YWJsZTxTaGlwbWVudHNMYW5kaW5nUmVwb3J0T3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPFNoaXBtZW50c0xhbmRpbmdSZXBvcnRPdXQ+PihgJHt0aGlzLnVybH0vc2hpcG1lbnRzLWxhbmRpbmctcmVwb3J0YCwgeyBwYXJhbXMgfSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXRyaWV2ZXMgYSByZXBvcnQgb2YgZXh0ZXJuYWwgc2hpcG1lbnRzIGJhc2VkIG9uIHRoZSBwcm92aWRlZCBxdWVyeSBwYXJhbWV0ZXJzLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtRdWVyeVBhcmFtc30gcGFyYW1zIC0gQW4gb2JqZWN0IHJlcHJlc2VudGluZyB0aGUgcXVlcnkgcGFyYW1ldGVycyBmb3IgZmlsdGVyaW5nIHRoZSBleHRlcm5hbCBzaGlwbWVudHMgcmVwb3J0LlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8RXh0ZXJuYWxTaGlwbWVudHNPdXQ+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIGV4dGVybmFsIHNoaXBtZW50cyByZXBvcnQgZGF0YS5cclxuICAgKi9cclxuICBnZXRFeHRlcm5hbFNoaXBtZW50c1JlcG9ydCAocGFyYW1zOiBRdWVyeVBhcmFtcyk6IE9ic2VydmFibGU8RXh0ZXJuYWxTaGlwbWVudHNPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8RXh0ZXJuYWxTaGlwbWVudHNPdXQ+PihgJHt0aGlzLnVybH0vZXh0ZXJuYWwtc2hpcG1lbnRzLXJlcG9ydGAsIHsgcGFyYW1zIH0pXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0cmlldmVzIGEgcmVwb3J0IG9mIHByb21vdGlvbiBjb2RlIGRpc2NvdW50cyBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgcXVlcnkgcGFyYW1ldGVycy5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7UXVlcnlQYXJhbXN9IHBhcmFtcyAtIEFuIG9iamVjdCByZXByZXNlbnRpbmcgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMgZm9yIGZpbHRlcmluZyB0aGUgcHJvbW90aW9uIGNvZGUgZGlzY291bnRzIHJlcG9ydC5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPFByb21vdGlvbkNvZGVEaXNjb3VudHNPdXQ+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHByb21vdGlvbiBjb2RlIGRpc2NvdW50cyByZXBvcnQgZGF0YS5cclxuICAgKi9cclxuICBnZXRQcm9tb3Rpb25Db2RlRGlzY291bnRzIChwYXJhbXM6IFF1ZXJ5UGFyYW1zKTogT2JzZXJ2YWJsZTxQcm9tb3Rpb25Db2RlRGlzY291bnRzT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPFByb21vdGlvbkNvZGVEaXNjb3VudHNPdXQ+PihgJHt0aGlzLnVybH0vcHJvbW90aW9uLWNvZGUtZGlzY291bnRzYCwge1xyXG4gICAgICBwYXJhbXNcclxuICAgIH0pLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXRyaWV2ZXMgdGhlIGRvd25sb2FkYWJsZSByZXNvdXJjZSBhc3NvY2lhdGVkIHdpdGggdGhlIGdpdmVuIHRyYW5zYWN0aW9uIElELlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtzdHJpbmd9IHRyYW5zYWN0aW9uSWQgLSBUaGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIHRyYW5zYWN0aW9uIHdob3NlIGRvd25sb2FkIGlzIHJlcXVlc3RlZC5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPEh0dHBSZXNwb25zZTxBcnJheUJ1ZmZlcj4+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIEhUVFAgcmVzcG9uc2UgY29udGFpbmluZyB0aGUgcmVzb3VyY2UgaW4gdGhlIGZvcm0gb2YgYW4gQXJyYXlCdWZmZXIuXHJcbiAgICovXHJcbiAgZ2V0RG93bmxvYWQgKHRyYW5zYWN0aW9uSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8SHR0cFJlc3BvbnNlPEFycmF5QnVmZmVyPj4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy51cmx9L2Rvd25sb2FkLyR7dHJhbnNhY3Rpb25JZH1gLCB7XHJcbiAgICAgIG9ic2VydmU6ICdyZXNwb25zZScsXHJcbiAgICAgIHJlc3BvbnNlVHlwZTogJ2FycmF5YnVmZmVyJ1xyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHJpZXZlcyBmaWxlIGNoZWNrIGluZm9ybWF0aW9uIGZvciB0aGUgc3BlY2lmaWVkIHRyYW5zYWN0aW9uIElELlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtzdHJpbmd9IHRyYW5zYWN0aW9uSWQgLSBUaGUgSUQgb2YgdGhlIHRyYW5zYWN0aW9uIGZvciB3aGljaCB0aGUgZmlsZSBjaGVjayBpbmZvcm1hdGlvbiBpcyB0byBiZSByZXRyaWV2ZWQuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxGaWxlQ2hlY2tPdXQ+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIGZpbGUgY2hlY2sgaW5mb3JtYXRpb24gYXNzb2NpYXRlZCB3aXRoIHRoZSBnaXZlbiB0cmFuc2FjdGlvbiBJRC5cclxuICAgKi9cclxuICBnZXRGaWxlQ2hlY2sgKHRyYW5zYWN0aW9uSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8RmlsZUNoZWNrT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPEZpbGVDaGVja091dD4+KGAke3RoaXMudXJsfS9maWxlLWNoZWNrLyR7dHJhbnNhY3Rpb25JZH1gKVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIERlbGV0ZXMgdGhlIGZpbGUgY2hlY2sgYXNzb2NpYXRlZCB3aXRoIHRoZSBwcm92aWRlZCB0cmFuc2FjdGlvbiBJRC5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB0cmFuc2FjdGlvbklkIC0gVGhlIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSB0cmFuc2FjdGlvbiB3aG9zZSBmaWxlIGNoZWNrIGlzIHRvIGJlIGRlbGV0ZWQuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTx7fT59IEFuIG9ic2VydmFibGUgZW1pdHRpbmcgdGhlIHJlc3BvbnNlIGRhdGEgYWZ0ZXIgdGhlIGRlbGV0aW9uIGlzIHByb2Nlc3NlZC5cclxuICAgKi9cclxuICBkZWxldGVGaWxlQ2hlY2sgKHRyYW5zYWN0aW9uSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8e30+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlPEFwaVN1Y2Nlc3M8e30+PihgJHt0aGlzLnVybH0vZmlsZS1jaGVjay8ke3RyYW5zYWN0aW9uSWR9YClcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXRyaWV2ZXMgcGFydGlhbCB3aXRoZHJhd2FscyBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgcXVlcnkgcGFyYW1ldGVycy5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7UXVlcnlQYXJhbXN9IHBhcmFtcyAtIFRoZSBwYXJhbWV0ZXJzIHVzZWQgdG8gZmlsdGVyIHRoZSBsaXN0IG9mIHBhcnRpYWwgd2l0aGRyYXdhbHMuXHJcbiAgICogQHJldHVybnMge09ic2VydmFibGU8UGFydGlhbFdpdGhkcmF3YWxzT3V0Pn0gQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSBmaWx0ZXJlZCBsaXN0IG9mIHBhcnRpYWwgd2l0aGRyYXdhbHMuXHJcbiAgICovXHJcbiAgZ2V0UGFydGlhbFdpdGhkcmF3YWxzIChwYXJhbXM6IFF1ZXJ5UGFyYW1zKTogT2JzZXJ2YWJsZTxQYXJ0aWFsV2l0aGRyYXdhbHNPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8UGFydGlhbFdpdGhkcmF3YWxzT3V0Pj4oYCR7dGhpcy51cmx9L3BhcnRpYWwtd2l0aGRyYXdhbHNgLCB7XHJcbiAgICAgIHBhcmFtc1xyXG4gICAgfSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXRyaWV2ZXMgYSBsaXN0IG9mIGludm9pY2VzIGJhc2VkIG9uIHRoZSBwcm92aWRlZCBxdWVyeSBwYXJhbWV0ZXJzLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHBhcmFtcyAtIFRoZSBxdWVyeSBwYXJhbWV0ZXJzIHVzZWQgdG8gZmlsdGVyIHRoZSBpbnZvaWNlcy5cclxuICAgKiBAcmV0dXJucyBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIGxpc3Qgb2YgaW52b2ljZXMuXHJcbiAgICovXHJcbiAgZ2V0SW52b2ljZXMgKHBhcmFtczogUXVlcnlQYXJhbXMpOiBPYnNlcnZhYmxlPEludm9pY2VzT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPEludm9pY2VzT3V0Pj4oYCR7dGhpcy51cmx9L2ludm9pY2VzYCwgeyBwYXJhbXMgfSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG59XHJcbiJdfQ==
172
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLXJlcG9ydHMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V4cGVydGVhbS1teC9uZ3gtc2VydmljZXMvc3JjL2xpYi9hcGlzL2FwaS1yZXBvcnRzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDbEQsT0FBTyxFQUFFLEdBQUcsRUFBYyxNQUFNLE1BQU0sQ0FBQTs7O0FBZXRDLE1BQU0sT0FBTyxpQkFBaUI7SUFFSDtJQUNmO0lBRlYsWUFDeUIsWUFBeUIsRUFDeEMsSUFBZ0I7UUFERCxpQkFBWSxHQUFaLFlBQVksQ0FBYTtRQUN4QyxTQUFJLEdBQUosSUFBSSxDQUFZO0lBQ3RCLENBQUM7SUFFTDs7OztPQUlHO0lBQ0gsSUFBSSxHQUFHO1FBQ0wsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsSUFBSSxFQUFFLENBQUE7SUFDOUMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gscUJBQXFCLENBQUUsTUFBbUI7UUFDeEMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBb0MsR0FBRyxJQUFJLENBQUMsR0FBRyxxQkFBcUIsRUFBRTtZQUN4RixNQUFNO1NBQ1AsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILGtCQUFrQixDQUFFLE1BQW1CO1FBQ3JDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQWlDLEdBQUcsSUFBSSxDQUFDLEdBQUcsbUJBQW1CLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQzthQUM3RixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxF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QWtCLENBQUUsTUFBbUI7UUFDckMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBaUMsR0FBRyxJQUFJLENBQUMsR0FBRyxvQkFBb0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFDO2FBQzlGLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7d0dBcEtVLGlCQUFpQixrQkFFbEIsS0FBSzs0R0FGSixpQkFBaUIsY0FGaEIsTUFBTTs7NEZBRVAsaUJBQWlCO2tCQUg3QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBR0ksTUFBTTsyQkFBQyxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cFJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnXHJcbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXHJcbmltcG9ydCB7IG1hcCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnXHJcbmltcG9ydCB7IEVudmlyb25tZW50IH0gZnJvbSAnLi4vbmd4LXNlcnZpY2VzLm1vZGVscydcclxuaW1wb3J0IHtcclxuICBDb2xsZWN0aW9uUGF5bWVudHNPdXQsIEV4dGVybmFsU2hpcG1lbnRzT3V0LFxyXG4gIEZpbGVDaGVja091dCwgSW52b2ljZXNPdXQsIFBhcnRpYWxXaXRoZHJhd2Fsc091dCxcclxuICBQcm9tb3Rpb25Db2RlRGlzY291bnRzT3V0LFxyXG4gIFNhbGVzQm9va1JlcG9ydE91dCxcclxuICBTaGlwbWVudHNMYW5kaW5nUmVwb3J0T3V0LFxyXG4gIFNoaXBtZW50c1JlcG9ydE91dFxyXG59IGZyb20gJy4vbW9kZWxzL2FwaS1yZXBvcnRzLnR5cGVzJ1xyXG5pbXBvcnQgeyBBcGlTdWNjZXNzLCBRdWVyeVBhcmFtcyB9IGZyb20gJy4vbW9kZWxzL2FwaS5tb2RlbHMnXHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBcGlSZXBvcnRzU2VydmljZSB7XHJcbiAgY29uc3RydWN0b3IgKFxyXG4gICAgQEluamVjdCgnZW52JykgcHJpdmF0ZSBlbnZpcm9ubWVudHM6IEVudmlyb25tZW50LFxyXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50XHJcbiAgKSB7IH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0cmlldmVzIHRoZSBVUkwgZm9yIHRoZSByZXBvcnRzIEFQSSBmcm9tIHRoZSBlbnZpcm9ubWVudCBjb25maWd1cmF0aW9ucy5cclxuICAgKlxyXG4gICAqIEByZXR1cm4ge3N0cmluZ30gVGhlIFVSTCBvZiB0aGUgcmVwb3J0cyBBUEkuXHJcbiAgICovXHJcbiAgZ2V0IHVybCAoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLmVudmlyb25tZW50cy5hcGlSZXBvcnRzVXJsID8/ICcnXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXRyaWV2ZXMgdGhlIGxpc3Qgb2YgY29sbGVjdGlvbiBwYXltZW50c1xyXG4gICAqXHJcbiAgICogQHBhcmFtIHtRdWVyeVBhcmFtc30gcGFyYW1zIC0gVGhlIHF1ZXJ5IHBhcmFtZXRlcnMgdXNlZCB0byBmZXRjaCB0aGUgY29sbGVjdGlvbiBwYXltZW50cy5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPENvbGxlY3Rpb25QYXltZW50c091dFtdPn0gQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIGFuIGFycmF5IG9mIGNvbGxlY3Rpb24gcGF5bWVudC5cclxuICAgKi9cclxuICBnZXRDb2xsZWN0aW9uUGF5bWVudHMgKHBhcmFtczogUXVlcnlQYXJhbXMpOiBPYnNlcnZhYmxlPENvbGxlY3Rpb25QYXltZW50c091dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxDb2xsZWN0aW9uUGF5bWVudHNPdXQ+PihgJHt0aGlzLnVybH0vY29sbGVjdGlvbi1wYXltZW50YCwge1xyXG4gICAgICBwYXJhbXNcclxuICAgIH0pLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBGZXRjaGVzIHNoaXBtZW50IHJlcG9ydHMgYmFzZWQgb24gdGhlIHByb3ZpZGVkIHF1ZXJ5IHBhcmFtZXRlcnMuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge1F1ZXJ5UGFyYW1zfSBwYXJhbXMgLSBUaGUgcXVlcnkgcGFyYW1ldGVycyB1c2VkIHRvIGZpbHRlciBvciBkZWZpbmUgdGhlIHNoaXBtZW50IHJlcG9ydHMuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxTaGlwbWVudHNSZXBvcnRPdXQ+fSBBbiBvYnNlcnZhYmxlIGVtaXR0aW5nIHRoZSBzaGlwbWVudCByZXBvcnQgZGF0YS5cclxuICAgKi9cclxuICBnZXRTaGlwbWVudHNSZXBvcnQgKHBhcmFtczogUXVlcnlQYXJhbXMpOiBPYnNlcnZhYmxlPFNoaXBtZW50c1JlcG9ydE91dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxTaGlwbWVudHNSZXBvcnRPdXQ+PihgJHt0aGlzLnVybH0vc2hpcG1lbnRzLXJlcG9ydGAsIHsgcGFyYW1zIH0pXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0cmlldmVzIHRoZSBzaGlwbWVudHMgbGFuZGluZyByZXBvcnQgZnJvbSB0aGUgcmVwb3J0cyBBUEkuXHJcbiAgICpcclxuICAgKiBTZW5kcyBhIEdFVCByZXF1ZXN0IHRvIHRoZSBgL3NoaXBtZW50cy1sYW5kaW5nLXJlcG9ydGAgZW5kcG9pbnQgd2l0aCB0aGUgcHJvdmlkZWQgcXVlcnkgcGFyYW1ldGVycy5cclxuICAgKiBUaGUgSFRUUCByZXNwb25zZSBpcyBleHBlY3RlZCB0byBiZSB3cmFwcGVkIGluIGFuIGBBcGlTdWNjZXNzYCBlbnZlbG9wZSwgZnJvbSB3aGljaCB0aGUgYGRhdGFgXHJcbiAgICogcGF5bG9hZCBpcyBleHRyYWN0ZWQgYW5kIHJldHVybmVkIGFzIHRoZSBzdHJlYW0gdmFsdWUuXHJcbiAgICpcclxuICAgKiBAcGFyYW0gcGFyYW1zIC0gUXVlcnkgcGFyYW1ldGVycyB1c2VkIHRvIGZpbHRlciBvciBwYWdpbmF0ZSB0aGUgc2hpcG1lbnRzIGxhbmRpbmcgcmVwb3J0LlxyXG4gICAqIEByZXR1cm5zIEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgcGFyc2VkIGBTaGlwbWVudHNMYW5kaW5nUmVwb3J0T3V0YCBkYXRhIGZyb20gdGhlIEFQSSByZXNwb25zZS5cclxuICAgKlxyXG4gICAqIEByZW1hcmtzXHJcbiAgICogLSBUaGUgdW5kZXJseWluZyBIVFRQIGNhbGwgdXNlcyBgSHR0cENsaWVudC5nZXRgIHdpdGggYHBhcmFtc2Agc2VyaWFsaXplZCBhcyBxdWVyeSBzdHJpbmcgdmFsdWVzLlxyXG4gICAqIC0gVGhlIHJlc3BvbnNlIGlzIHBpcGVkIHRocm91Z2ggYG1hcGAgdG8gdW53cmFwIGBkYXRhYCBmcm9tIGBBcGlTdWNjZXNzPFQ+YC5cclxuICAgKiAtIEVycm9ycyBmcm9tIHRoZSBIVFRQIHJlcXVlc3QgYXJlIHByb3BhZ2F0ZWQgdGhyb3VnaCB0aGUgb2JzZXJ2YWJsZSBzdHJlYW0uXHJcbiAgICpcclxuICAgKiBAZXhhbXBsZVxyXG4gICAqIGBgYHRzXHJcbiAgICogLy8gQmFzaWMgdXNhZ2U6XHJcbiAgICogc2VydmljZS5nZXRTaGlwbWVudHNMYW5kaW5nUmVwb3J0KHsgcGFnZTogMSwgcGVyUGFnZTogMjUgfSlcclxuICAgKiAgIC5zdWJzY3JpYmUocmVwb3J0ID0+IHtcclxuICAgKiAgICAgLy8gaGFuZGxlIFNoaXBtZW50c0xhbmRpbmdSZXBvcnRPdXRcclxuICAgKiAgIH0pO1xyXG4gICAqIGBgYFxyXG4gICAqL1xyXG4gIGdldFNoaXBtZW50c0xhbmRpbmdSZXBvcnQgKHBhcmFtczogUXVlcnlQYXJhbXMpOiBPYnNlcnZhYmxlPFNoaXBtZW50c0xhbmRpbmdSZXBvcnRPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8U2hpcG1lbnRzTGFuZGluZ1JlcG9ydE91dD4+KGAke3RoaXMudXJsfS9zaGlwbWVudHMtbGFuZGluZy1yZXBvcnRgLCB7IHBhcmFtcyB9KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHJpZXZlcyBhIHJlcG9ydCBvZiBleHRlcm5hbCBzaGlwbWVudHMgYmFzZWQgb24gdGhlIHByb3ZpZGVkIHF1ZXJ5IHBhcmFtZXRlcnMuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge1F1ZXJ5UGFyYW1zfSBwYXJhbXMgLSBBbiBvYmplY3QgcmVwcmVzZW50aW5nIHRoZSBxdWVyeSBwYXJhbWV0ZXJzIGZvciBmaWx0ZXJpbmcgdGhlIGV4dGVybmFsIHNoaXBtZW50cyByZXBvcnQuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxFeHRlcm5hbFNoaXBtZW50c091dD59IEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgZXh0ZXJuYWwgc2hpcG1lbnRzIHJlcG9ydCBkYXRhLlxyXG4gICAqL1xyXG4gIGdldEV4dGVybmFsU2hpcG1lbnRzUmVwb3J0IChwYXJhbXM6IFF1ZXJ5UGFyYW1zKTogT2JzZXJ2YWJsZTxFeHRlcm5hbFNoaXBtZW50c091dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxFeHRlcm5hbFNoaXBtZW50c091dD4+KGAke3RoaXMudXJsfS9leHRlcm5hbC1zaGlwbWVudHMtcmVwb3J0YCwgeyBwYXJhbXMgfSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXRyaWV2ZXMgYSByZXBvcnQgb2YgcHJvbW90aW9uIGNvZGUgZGlzY291bnRzIGJhc2VkIG9uIHRoZSBwcm92aWRlZCBxdWVyeSBwYXJhbWV0ZXJzLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtRdWVyeVBhcmFtc30gcGFyYW1zIC0gQW4gb2JqZWN0IHJlcHJlc2VudGluZyB0aGUgcXVlcnkgcGFyYW1ldGVycyBmb3IgZmlsdGVyaW5nIHRoZSBwcm9tb3Rpb24gY29kZSBkaXNjb3VudHMgcmVwb3J0LlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8UHJvbW90aW9uQ29kZURpc2NvdW50c091dD59IEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgcHJvbW90aW9uIGNvZGUgZGlzY291bnRzIHJlcG9ydCBkYXRhLlxyXG4gICAqL1xyXG4gIGdldFByb21vdGlvbkNvZGVEaXNjb3VudHMgKHBhcmFtczogUXVlcnlQYXJhbXMpOiBPYnNlcnZhYmxlPFByb21vdGlvbkNvZGVEaXNjb3VudHNPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8UHJvbW90aW9uQ29kZURpc2NvdW50c091dD4+KGAke3RoaXMudXJsfS9wcm9tb3Rpb24tY29kZS1kaXNjb3VudHNgLCB7XHJcbiAgICAgIHBhcmFtc1xyXG4gICAgfSkucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHJpZXZlcyB0aGUgZG93bmxvYWRhYmxlIHJlc291cmNlIGFzc29jaWF0ZWQgd2l0aCB0aGUgZ2l2ZW4gdHJhbnNhY3Rpb24gSUQuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge3N0cmluZ30gdHJhbnNhY3Rpb25JZCAtIFRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiB0aGUgdHJhbnNhY3Rpb24gd2hvc2UgZG93bmxvYWQgaXMgcmVxdWVzdGVkLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8SHR0cFJlc3BvbnNlPEFycmF5QnVmZmVyPj59IEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgSFRUUCByZXNwb25zZSBjb250YWluaW5nIHRoZSByZXNvdXJjZSBpbiB0aGUgZm9ybSBvZiBhbiBBcnJheUJ1ZmZlci5cclxuICAgKi9cclxuICBnZXREb3dubG9hZCAodHJhbnNhY3Rpb25JZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxIdHRwUmVzcG9uc2U8QXJyYXlCdWZmZXI+PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLnVybH0vZG93bmxvYWQvJHt0cmFuc2FjdGlvbklkfWAsIHtcclxuICAgICAgb2JzZXJ2ZTogJ3Jlc3BvbnNlJyxcclxuICAgICAgcmVzcG9uc2VUeXBlOiAnYXJyYXlidWZmZXInXHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0cmlldmVzIGZpbGUgY2hlY2sgaW5mb3JtYXRpb24gZm9yIHRoZSBzcGVjaWZpZWQgdHJhbnNhY3Rpb24gSUQuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge3N0cmluZ30gdHJhbnNhY3Rpb25JZCAtIFRoZSBJRCBvZiB0aGUgdHJhbnNhY3Rpb24gZm9yIHdoaWNoIHRoZSBmaWxlIGNoZWNrIGluZm9ybWF0aW9uIGlzIHRvIGJlIHJldHJpZXZlZC5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPEZpbGVDaGVja091dD59IEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgZmlsZSBjaGVjayBpbmZvcm1hdGlvbiBhc3NvY2lhdGVkIHdpdGggdGhlIGdpdmVuIHRyYW5zYWN0aW9uIElELlxyXG4gICAqL1xyXG4gIGdldEZpbGVDaGVjayAodHJhbnNhY3Rpb25JZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxGaWxlQ2hlY2tPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8RmlsZUNoZWNrT3V0Pj4oYCR7dGhpcy51cmx9L2ZpbGUtY2hlY2svJHt0cmFuc2FjdGlvbklkfWApXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRGVsZXRlcyB0aGUgZmlsZSBjaGVjayBhc3NvY2lhdGVkIHdpdGggdGhlIHByb3ZpZGVkIHRyYW5zYWN0aW9uIElELlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtzdHJpbmd9IHRyYW5zYWN0aW9uSWQgLSBUaGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIHRyYW5zYWN0aW9uIHdob3NlIGZpbGUgY2hlY2sgaXMgdG8gYmUgZGVsZXRlZC5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPHt9Pn0gQW4gb2JzZXJ2YWJsZSBlbWl0dGluZyB0aGUgcmVzcG9uc2UgZGF0YSBhZnRlciB0aGUgZGVsZXRpb24gaXMgcHJvY2Vzc2VkLlxyXG4gICAqL1xyXG4gIGRlbGV0ZUZpbGVDaGVjayAodHJhbnNhY3Rpb25JZDogc3RyaW5nKTogT2JzZXJ2YWJsZTx7fT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGU8QXBpU3VjY2Vzczx7fT4+KGAke3RoaXMudXJsfS9maWxlLWNoZWNrLyR7dHJhbnNhY3Rpb25JZH1gKVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHJpZXZlcyBwYXJ0aWFsIHdpdGhkcmF3YWxzIGJhc2VkIG9uIHRoZSBwcm92aWRlZCBxdWVyeSBwYXJhbWV0ZXJzLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtRdWVyeVBhcmFtc30gcGFyYW1zIC0gVGhlIHBhcmFtZXRlcnMgdXNlZCB0byBmaWx0ZXIgdGhlIGxpc3Qgb2YgcGFydGlhbCB3aXRoZHJhd2Fscy5cclxuICAgKiBAcmV0dXJucyB7T2JzZXJ2YWJsZTxQYXJ0aWFsV2l0aGRyYXdhbHNPdXQ+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIGZpbHRlcmVkIGxpc3Qgb2YgcGFydGlhbCB3aXRoZHJhd2Fscy5cclxuICAgKi9cclxuICBnZXRQYXJ0aWFsV2l0aGRyYXdhbHMgKHBhcmFtczogUXVlcnlQYXJhbXMpOiBPYnNlcnZhYmxlPFBhcnRpYWxXaXRoZHJhd2Fsc091dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxQYXJ0aWFsV2l0aGRyYXdhbHNPdXQ+PihgJHt0aGlzLnVybH0vcGFydGlhbC13aXRoZHJhd2Fsc2AsIHtcclxuICAgICAgcGFyYW1zXHJcbiAgICB9KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHJpZXZlcyBhIGxpc3Qgb2YgaW52b2ljZXMgYmFzZWQgb24gdGhlIHByb3ZpZGVkIHF1ZXJ5IHBhcmFtZXRlcnMuXHJcbiAgICpcclxuICAgKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHF1ZXJ5IHBhcmFtZXRlcnMgdXNlZCB0byBmaWx0ZXIgdGhlIGludm9pY2VzLlxyXG4gICAqIEByZXR1cm5zIEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgbGlzdCBvZiBpbnZvaWNlcy5cclxuICAgKi9cclxuICBnZXRJbnZvaWNlcyAocGFyYW1zOiBRdWVyeVBhcmFtcyk6IE9ic2VydmFibGU8SW52b2ljZXNPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8SW52b2ljZXNPdXQ+PihgJHt0aGlzLnVybH0vaW52b2ljZXNgLCB7IHBhcmFtcyB9KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHJpZXZlcyB0aGUgc2FsZXMgYm9vayByZXBvcnQgYmFzZWQgb24gdGhlIHByb3ZpZGVkIHF1ZXJ5IHBhcmFtZXRlcnMuXHJcbiAgICpcclxuICAgKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHF1ZXJ5IHBhcmFtZXRlcnMgdG8gZmlsdGVyIG9yIGN1c3RvbWl6ZSB0aGUgcmVwb3J0LlxyXG4gICAqIEByZXR1cm5zIEFuIE9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgc2FsZXMgYm9vayByZXBvcnQgZGF0YS5cclxuICAgKlxyXG4gICAqIEBleGFtcGxlXHJcbiAgICogYGBgdHlwZXNjcmlwdFxyXG4gICAqIHRoaXMuYXBpUmVwb3J0c1NlcnZpY2UuZ2V0U2FsZXNCb29rUmVwb3J0KHsgcGFnZTogMSwgbGltaXQ6IDEwIH0pXHJcbiAgICogICAuc3Vic2NyaWJlKHJlcG9ydCA9PiBjb25zb2xlLmxvZyhyZXBvcnQpKTtcclxuICAgKiBgYGBcclxuICAgKi9cclxuICBnZXRTYWxlc0Jvb2tSZXBvcnQgKHBhcmFtczogUXVlcnlQYXJhbXMpOiBPYnNlcnZhYmxlPFNhbGVzQm9va1JlcG9ydE91dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxTYWxlc0Jvb2tSZXBvcnRPdXQ+PihgJHt0aGlzLnVybH0vc2FsZXMtYm9vay1yZXBvcnRgLCB7IHBhcmFtcyB9KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcbn1cclxuIl19
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLWNhdGFsb2cudHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9leHBlcnRlYW0tbXgvbmd4LXNlcnZpY2VzL3NyYy9saWIvYXBpcy9tb2RlbHMvYXBpLWNhdGFsb2cudHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFZpZXdTZWN0aW9uT3B0aW9uIH0gZnJvbSAnLi9hcGktY2F0YWxvZy5lbnVtJ1xyXG5pbXBvcnQge1xyXG4gIEJ1c2luZXNzUGFydHlUcmFkZXJUeXBlLFxyXG4gIENhbmNlbGxhdGlvblJlYXNvbixcclxuICBDb3VudHJ5LFxyXG4gIEN1cnJlbmN5LFxyXG4gIEV4dHJhQ2hhcmdlLFxyXG4gIEdlbmVyaWNGb2xpbyxcclxuICBIb2xpZGF5LFxyXG4gIElkZW50aWZpY2F0aW9uVHlwZSxcclxuICBMYW5ndWFnZSxcclxuICBNYW5hZ2VtZW50QXJlYSxcclxuICBPcGVyYXRpb25UeXBlLFxyXG4gIFBvc3RhbExvY2F0aW9uLFxyXG4gIFByb2R1Y3QsXHJcbiAgUXVlc3Rpb24sXHJcbiAgUmVnaW9uLFxyXG4gIFNoaXBtZW50Q29udGVudFR5cGUsXHJcbiAgU2hpcG1lbnRHcm91cCxcclxuICBTaGlwbWVudEluY29tZVR5cGUsXHJcbiAgU2hpcG1lbnRTY29wZSxcclxuICBTaGlwbWVudFN0YXR1cyxcclxuICBVbmlxdWVGb2xpbyxcclxuICBVbml0LFxyXG4gIFpvbmVcclxufSBmcm9tICcuL2FwaS1jYXRhbG9nLmludGVyZmFjZXMnXHJcblxyXG5leHBvcnQgdHlwZSBPcGVyYXRpb25UeXBlc091dCA9IHtcclxuICB0b3RhbDogbnVtYmVyXHJcbiAgb3BlcmF0aW9uVHlwZXM6IE9wZXJhdGlvblR5cGVbXVxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElkZW50aWZpY2F0aW9uVHlwZXNPdXQge1xyXG4gIHRvdGFsOiBudW1iZXJcclxuICBpZGVudGlmaWNhdGlvblR5cGVzOiBJZGVudGlmaWNhdGlvblR5cGVbXVxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBJZGVudGlmaWNhdGlvblR5cGVPdXQgPSB7XHJcbiAgSWRlbnRpZmljYXRpb25UeXBlOiBJZGVudGlmaWNhdGlvblR5cGVcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgSWRlbnRpZmljYXRpb25UeXBlSW4gPSB7XHJcbiAgY29kZTogc3RyaW5nXHJcbiAgY291bnRyeUlkOiBudW1iZXJcclxuICBpZGVudGlmaWNhdGlvblR5cGU/OiBudW1iZXIgfCBudWxsXHJcbiAgbmFtZTogc3RyaW5nXHJcbiAgdmlld1NlY3Rpb246IFJlY29yZDxWaWV3U2VjdGlvbk9wdGlvbiwgYm9vbGVhbj5cclxuICByZWdleDogc3RyaW5nW10gfCBudWxsXHJcbiAgaXNFeHRlcm5hbFZhbGlkYXRpb24/OiBib29sZWFuXHJcbiAgaXNBY3RpdmU6IGJvb2xlYW5cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgRXh0cmFDaGFyZ2VzT3V0ID0ge1xyXG4gIHRvdGFsOiBudW1iZXJcclxuICBleHRyYWNoYXJnZXM6IEV4dHJhQ2hhcmdlW11cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgQ291bnRyaWVzT3V0ID0ge1xyXG4gIHRvdGFsOiBudW1iZXJcclxuICBjb3VudHJpZXM6IENvdW50cnlbXVxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBDb3VudHJ5SW4gPSB7XHJcbiAgY29kZTogc3RyaW5nXHJcbiAgbmFtZTogc3RyaW5nXHJcbiAgbG9jYXRpb25UeXBlSWQ6IG51bWJlclxyXG4gIHVuaXRJZDogbnVtYmVyXHJcbiAgdGltZXpvbmU6IHN0cmluZ1xyXG4gIGhhc0ltcG9ydFNlcnZpY2U6IGJvb2xlYW5cclxuICBpc0FjdGl2ZTogYm9vbGVhblxyXG4gIGlzb0NvZGU6IHN0cmluZ1xyXG4gIGNvZGVQaG9uZTogc3RyaW5nXHJcbiAgcGhvbmVEaWdpdHM6IG51bWJlclxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBDb3VudHJ5T3V0ID0ge1xyXG4gIGNvdW50cnk6IENvdW50cnlcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgUG9zdGFsTG9jYXRpb25zT3V0ID0ge1xyXG4gIHRvdGFsOiBudW1iZXJcclxuICBwb3N0YWxMb2NhdGlvbnM6IFBvc3RhbExvY2F0aW9uW11cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgUmVnaW9uc091dCA9IHtcclxuICB0b3RhbDogbnVtYmVyXHJcbiAgcmVnaW9uczogUmVnaW9uW11cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgWm9uZXNPdXQgPSB7XHJcbiAgdG90YWw6IG51bWJlclxyXG4gIHpvbmVzOiBab25lW11cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgTWFuYWdlbWVudEFyZWFzT3V0ID0ge1xyXG4gIHRvdGFsOiBudW1iZXJcclxuICByZWdpb25zOiBNYW5hZ2VtZW50QXJlYVtdXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIENhbmNlbGxhdGlvblJlYXNvbnNPdXQgPSB7XHJcbiAgdG90YWw6IG51bWJlclxyXG4gIGNhbmNlbGxhdGlvblJlYXNvbnM6IENhbmNlbGxhdGlvblJlYXNvbltdXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIENhbmNlbGxhdGlvblJlYXNvbkluID0ge1xyXG4gIGNvZGU6IHN0cmluZ1xyXG4gIG5hbWU6IHN0cmluZ1xyXG4gIGV2ZW50UmVhc29uQ29kZTogc3RyaW5nIHwgbnVsbFxyXG4gIGlzQWN0aXZlOiBib29sZWFuXHJcbiAgY291bnRyeUlkOiBudW1iZXJcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgQ2FuY2VsbGF0aW9uUmVhc29uT3V0ID0ge1xyXG4gIGNhbmNlbGxhdGlvblJlYXNvbjogQ2FuY2VsbGF0aW9uUmVhc29uXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIEN1cnJlbmNpZXNPdXQgPSB7XHJcbiAgdG90YWw6IG51bWJlclxyXG4gIGN1cnJlbmNpZXM6IEN1cnJlbmN5W11cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgTGFuZ3VhZ2VzT3V0ID0ge1xyXG4gIHRvdGFsOiBudW1iZXJcclxuICBsYW5ndWFnZXM6IExhbmd1YWdlW11cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgVW5pdHNPdXQgPSB7XHJcbiAgdG90YWw6IG51bWJlclxyXG4gIHVuaXRzOiBVbml0W11cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgU2hpcG1lbnRTY29wZXNPdXQgPSB7XHJcbiAgdG90YWw6IG51bWJlclxyXG4gIHNoaXBtZW50U2NvcGVzOiBTaGlwbWVudFNjb3BlW11cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgU2hpcG1lbnRDb250ZW50VHlwZXNPdXQgPSB7XHJcbiAgdG90YWw6IG51bWJlclxyXG4gIHNoaXBtZW50Q29udGVudFR5cGVzOiBTaGlwbWVudENvbnRlbnRUeXBlW11cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgRXh0cmFDaGFyZ2VJbiA9IHtcclxuICBjb2RlOiBzdHJpbmdcclxuICBuYW1lOiBzdHJpbmdcclxuICBpc0Rpc2NvdW50OiBib29sZWFuXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIEV4dHJhQ2hhcmdlT3V0ID0ge1xyXG4gIGV4dHJhQ2hhcmdlOiBFeHRyYUNoYXJnZVxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBHZW5lcmljRm9saW9zT3V0ID0ge1xyXG4gIHRvdGFsOiBudW1iZXJcclxuICBnZW5lcmljRm9saW9zOiBHZW5lcmljRm9saW9bXVxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBHZW5lcmljRm9saW9JbiA9IHtcclxuICBhY2NvdW50TnVtYmVyOiBzdHJpbmdcclxuICBjb2RlOiBzdHJpbmdcclxuICBjb250ZW50OiBzdHJpbmdcclxuICBjb3VudHJ5UmVmZXJlbmNlUHJvZHVjdElkczogbnVtYmVyW11cclxuICBjdXN0b21lcjogc3RyaW5nXHJcbiAgZGVzdGluYXRpb25BZGRyZXNzTGluZTE6IHN0cmluZ1xyXG4gIGRlc3RpbmF0aW9uQWRkcmVzc0xpbmUyOiBzdHJpbmdcclxuICBkZXN0aW5hdGlvbkFkZHJlc3NMaW5lMzogc3RyaW5nXHJcbiAgZGVzdGluYXRpb25DaXR5TmFtZT86IHN0cmluZ1xyXG4gIGRlc3RpbmF0aW9uQ291bnRyeUlkOiBudW1iZXJcclxuICBkZXN0aW5hdGlvbkNvdW50eU5hbWU/OiBzdHJpbmdcclxuICBkZXN0aW5hdGlvbkVtYWlsOiBzdHJpbmdcclxuICBkZXN0aW5hdGlvbkZ1bGxOYW1lOiBzdHJpbmdcclxuICBkZXN0aW5hdGlvblBob25lQ29kZTogc3RyaW5nXHJcbiAgZGVzdGluYXRpb25QaG9uZU51bWJlcjogc3RyaW5nXHJcbiAgZGVzdGluYXRpb25Qb3N0YWxDb2RlPzogc3RyaW5nXHJcbiAgZGVzdGluYXRpb25TdGF0ZUNvZGU/OiBzdHJpbmdcclxuICBpc0FjdGl2ZTogYm9vbGVhblxyXG4gIHBhY2thZ2luZzogYm9vbGVhblxyXG4gIGNvdW50cnlJZDogbnVtYmVyXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIEdlbmVyaWNGb2xpb091dCA9IHtcclxuICBnZW5lcmljRm9saW86IEdlbmVyaWNGb2xpb1xyXG59XHJcblxyXG5leHBvcnQgdHlwZSBQcm9kdWN0SW4gPSB7XHJcbiAgZ2xvYmFsQ29kZTogbnVtYmVyXHJcbiAgbG9jYWxDb2RlOiBzdHJpbmdcclxuICBnbG9iYWxOYW1lOiBzdHJpbmdcclxuICBsb2NhbE5hbWU6IHN0cmluZ1xyXG4gIGlzRG9jdW1lbnQ6IGJvb2xlYW5cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgUHJvZHVjdE91dCA9IHtcclxuICBwcm9kdWN0OiBQcm9kdWN0XHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIFNoaXBtZW50SW5jb21lVHlwZXNPdXQgPSB7XHJcbiAgdG90YWw6IG51bWJlclxyXG4gIHNoaXBtZW50SW5jb21lVHlwZXM6IFNoaXBtZW50SW5jb21lVHlwZVtdXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIFNoaXBtZW50SW5jb21lVHlwZUluID0ge1xyXG4gIGNvdW50cnlJZDogbnVtYmVyXHJcbiAgY29kZTogc3RyaW5nXHJcbiAgbmFtZTogc3RyaW5nXHJcbiAgaXNBY3RpdmU6IGJvb2xlYW5cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgU2hpcG1lbnRJbmNvbWVUeXBlT3V0ID0ge1xyXG4gIHNoaXBtZW50SW5jb21lVHlwZTogU2hpcG1lbnRJbmNvbWVUeXBlXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIFVuaXF1ZUZvbGlvSW4gPSB7XHJcbiAgY29kZTogbnVtYmVyXHJcbiAgY3VzdG9tZXI6IHN0cmluZ1xyXG4gIGNvbnRlbnQ6IHN0cmluZ1xyXG4gIGthZDogc3RyaW5nIHwgbnVsbFxyXG4gIGV4ZWN1dGl2ZTogc3RyaW5nXHJcbiAgaXNBY3RpdmU6IGJvb2xlYW5cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgVW5pcXVlRm9saW9PdXQgPSB7XHJcbiAgdW5pcXVlRm9saW86IFVuaXF1ZUZvbGlvXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIFVuaXF1ZUZvbGlvc091dCA9IHtcclxuICB0b3RhbDogbnVtYmVyXHJcbiAgdW5pcXVlRm9saW9zOiBVbmlxdWVGb2xpb1tdXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIFNoaXBtZW50R3JvdXBzT3V0ID0ge1xyXG4gIHNoaXBtZW50R3JvdXBzOiBTaGlwbWVudEdyb3VwW11cclxuICB0b3RhbDogbnVtYmVyXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIFNoaXBtZW50U3RhdHVzZXNPdXQgPSB7XHJcbiAgc2hpcG1lbnRTdGF0dXNlczogU2hpcG1lbnRTdGF0dXNbXVxyXG4gIHRvdGFsOiBudW1iZXJcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgUXVlc3Rpb25zT3V0ID0ge1xyXG4gIHF1ZXN0aW9uczogUXVlc3Rpb25bXVxyXG4gIHRvdGFsOiBudW1iZXJcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgUXVlc3Rpb25PdXQgPSB7XHJcbiAgcXVlc3Rpb246IFF1ZXN0aW9uXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIFF1ZXN0aW9uSW4gPSB7XHJcbiAgZGVzY3JpcHRpb246IHN0cmluZ1xyXG4gIHR5cGU6ICdtYXJrZXRpbmcnXHJcbiAgcXVlc3Rpb25PcmRlcjogbnVtYmVyXHJcbiAgaXNBY3RpdmU6IGJvb2xlYW5cclxuICBjb3VudHJ5SWQ6IG51bWJlclxyXG4gIGlzUmVxdWlyZWRWYWx1ZTogYm9vbGVhblxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBIb2xpZGF5c091dCA9IHtcclxuICBob2xpZGF5czogSG9saWRheVtdXHJcbiAgdG90YWw6IG51bWJlclxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBIb2xpZGF5T3V0ID0ge1xyXG4gIGhvbGlkYXk6IEhvbGlkYXlcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgSG9saWRheUluID0ge1xyXG4gIGRhdGU6IHN0cmluZ1xyXG4gIGRlc2NyaXB0aW9uOiBzdHJpbmdcclxuICBjb3VudHJ5SWQ6IG51bWJlclxyXG4gIGlzQWN0aXZlOiBib29sZWFuXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIEJ1c2luZXNzUGFydHlUcmFkZXJUeXBlc091dCA9IHtcclxuICB0b3RhbDogbnVtYmVyXHJcbiAgYnVzaW5lc3NQYXJ0eVRyYWRlclR5cGVzOiBCdXNpbmVzc1BhcnR5VHJhZGVyVHlwZVtdXHJcbn1cclxuIl19
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLWNhdGFsb2cudHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9leHBlcnRlYW0tbXgvbmd4LXNlcnZpY2VzL3NyYy9saWIvYXBpcy9tb2RlbHMvYXBpLWNhdGFsb2cudHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFZpZXdTZWN0aW9uT3B0aW9uIH0gZnJvbSAnLi9hcGktY2F0YWxvZy5lbnVtJ1xyXG5pbXBvcnQge1xyXG4gIEJ1c2luZXNzUGFydHlUcmFkZXJUeXBlLFxyXG4gIENhbmNlbGxhdGlvblJlYXNvbixcclxuICBDb3VudHJ5LFxyXG4gIEN1cnJlbmN5LFxyXG4gIEV4dHJhQ2hhcmdlLFxyXG4gIEdlbmVyaWNGb2xpbyxcclxuICBIb2xpZGF5LFxyXG4gIElkZW50aWZpY2F0aW9uVHlwZSxcclxuICBMYW5ndWFnZSxcclxuICBNYW5hZ2VtZW50QXJlYSxcclxuICBPcGVyYXRpb25UeXBlLFxyXG4gIFBvc3RhbExvY2F0aW9uLFxyXG4gIFByb2R1Y3QsXHJcbiAgUXVlc3Rpb24sXHJcbiAgUmVnaW9uLFxyXG4gIFNoaXBtZW50Q29udGVudFR5cGUsXHJcbiAgU2hpcG1lbnRHcm91cCxcclxuICBTaGlwbWVudEluY29tZVR5cGUsXHJcbiAgU2hpcG1lbnRTY29wZSxcclxuICBTaGlwbWVudFN0YXR1cyxcclxuICBVbmlxdWVGb2xpbyxcclxuICBVbml0LFxyXG4gIFpvbmVcclxufSBmcm9tICcuL2FwaS1jYXRhbG9nLmludGVyZmFjZXMnXHJcblxyXG5leHBvcnQgdHlwZSBPcGVyYXRpb25UeXBlc091dCA9IHtcclxuICB0b3RhbDogbnVtYmVyXHJcbiAgb3BlcmF0aW9uVHlwZXM6IE9wZXJhdGlvblR5cGVbXVxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElkZW50aWZpY2F0aW9uVHlwZXNPdXQge1xyXG4gIHRvdGFsOiBudW1iZXJcclxuICBpZGVudGlmaWNhdGlvblR5cGVzOiBJZGVudGlmaWNhdGlvblR5cGVbXVxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBJZGVudGlmaWNhdGlvblR5cGVPdXQgPSB7XHJcbiAgSWRlbnRpZmljYXRpb25UeXBlOiBJZGVudGlmaWNhdGlvblR5cGVcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgSWRlbnRpZmljYXRpb25UeXBlSW4gPSB7XHJcbiAgY29kZTogc3RyaW5nXHJcbiAgY291bnRyeUlkOiBudW1iZXJcclxuICBpZGVudGlmaWNhdGlvblR5cGU/OiBudW1iZXIgfCBudWxsXHJcbiAgbmFtZTogc3RyaW5nXHJcbiAgdmlld1NlY3Rpb246IFJlY29yZDxWaWV3U2VjdGlvbk9wdGlvbiwgYm9vbGVhbj5cclxuICByZWdleDogc3RyaW5nW10gfCBudWxsXHJcbiAgaXNFeHRlcm5hbFZhbGlkYXRpb24/OiBib29sZWFuXHJcbiAgaXNBY3RpdmU6IGJvb2xlYW5cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgRXh0cmFDaGFyZ2VzT3V0ID0ge1xyXG4gIHRvdGFsOiBudW1iZXJcclxuICBleHRyYWNoYXJnZXM6IEV4dHJhQ2hhcmdlW11cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgQ291bnRyaWVzT3V0ID0ge1xyXG4gIHRvdGFsOiBudW1iZXJcclxuICBjb3VudHJpZXM6IENvdW50cnlbXVxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBDb3VudHJ5SW4gPSB7XHJcbiAgY29kZTogc3RyaW5nXHJcbiAgbmFtZTogc3RyaW5nXHJcbiAgbG9jYXRpb25UeXBlSWQ6IG51bWJlclxyXG4gIHVuaXRJZDogbnVtYmVyXHJcbiAgdGltZXpvbmU6IHN0cmluZ1xyXG4gIGhhc0ltcG9ydFNlcnZpY2U6IGJvb2xlYW5cclxuICBpc0FjdGl2ZTogYm9vbGVhblxyXG4gIGlzb0NvZGU6IHN0cmluZ1xyXG4gIGNvZGVQaG9uZTogc3RyaW5nXHJcbiAgcGhvbmVEaWdpdHM6IG51bWJlclxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBDb3VudHJ5T3V0ID0ge1xyXG4gIGNvdW50cnk6IENvdW50cnlcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgUG9zdGFsTG9jYXRpb25zT3V0ID0ge1xyXG4gIHRvdGFsOiBudW1iZXJcclxuICBwb3N0YWxMb2NhdGlvbnM6IFBvc3RhbExvY2F0aW9uW11cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgUmVnaW9uc091dCA9IHtcclxuICB0b3RhbDogbnVtYmVyXHJcbiAgcmVnaW9uczogUmVnaW9uW11cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgWm9uZXNPdXQgPSB7XHJcbiAgdG90YWw6IG51bWJlclxyXG4gIHpvbmVzOiBab25lW11cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgTWFuYWdlbWVudEFyZWFzT3V0ID0ge1xyXG4gIHRvdGFsOiBudW1iZXJcclxuICByZWdpb25zOiBNYW5hZ2VtZW50QXJlYVtdXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIENhbmNlbGxhdGlvblJlYXNvbnNPdXQgPSB7XHJcbiAgdG90YWw6IG51bWJlclxyXG4gIGNhbmNlbGxhdGlvblJlYXNvbnM6IENhbmNlbGxhdGlvblJlYXNvbltdXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIENhbmNlbGxhdGlvblJlYXNvbkluID0ge1xyXG4gIGNvZGU6IHN0cmluZ1xyXG4gIG5hbWU6IHN0cmluZ1xyXG4gIGV2ZW50UmVhc29uQ29kZTogc3RyaW5nIHwgbnVsbFxyXG4gIGlzQWN0aXZlOiBib29sZWFuXHJcbiAgY291bnRyeUlkOiBudW1iZXJcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgQ2FuY2VsbGF0aW9uUmVhc29uT3V0ID0ge1xyXG4gIGNhbmNlbGxhdGlvblJlYXNvbjogQ2FuY2VsbGF0aW9uUmVhc29uXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIEN1cnJlbmNpZXNPdXQgPSB7XHJcbiAgdG90YWw6IG51bWJlclxyXG4gIGN1cnJlbmNpZXM6IEN1cnJlbmN5W11cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgTGFuZ3VhZ2VzT3V0ID0ge1xyXG4gIHRvdGFsOiBudW1iZXJcclxuICBsYW5ndWFnZXM6IExhbmd1YWdlW11cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgVW5pdHNPdXQgPSB7XHJcbiAgdG90YWw6IG51bWJlclxyXG4gIHVuaXRzOiBVbml0W11cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgU2hpcG1lbnRTY29wZXNPdXQgPSB7XHJcbiAgdG90YWw6IG51bWJlclxyXG4gIHNoaXBtZW50U2NvcGVzOiBTaGlwbWVudFNjb3BlW11cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgU2hpcG1lbnRDb250ZW50VHlwZXNPdXQgPSB7XHJcbiAgdG90YWw6IG51bWJlclxyXG4gIHNoaXBtZW50Q29udGVudFR5cGVzOiBTaGlwbWVudENvbnRlbnRUeXBlW11cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgRXh0cmFDaGFyZ2VJbiA9IHtcclxuICBjb2RlOiBzdHJpbmdcclxuICBuYW1lOiBzdHJpbmdcclxuICBpc0Rpc2NvdW50OiBib29sZWFuXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIEV4dHJhQ2hhcmdlT3V0ID0ge1xyXG4gIGV4dHJhQ2hhcmdlOiBFeHRyYUNoYXJnZVxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBHZW5lcmljRm9saW9zT3V0ID0ge1xyXG4gIHRvdGFsOiBudW1iZXJcclxuICBnZW5lcmljRm9saW9zOiBHZW5lcmljRm9saW9bXVxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBHZW5lcmljRm9saW9JbiA9IHtcclxuICBhY2NvdW50TnVtYmVyOiBzdHJpbmdcclxuICBjb2RlOiBzdHJpbmdcclxuICBjb250ZW50OiBzdHJpbmdcclxuICBjb3VudHJ5UmVmZXJlbmNlUHJvZHVjdElkczogbnVtYmVyW11cclxuICBjdXN0b21lcjogc3RyaW5nXHJcbiAgZGVzdGluYXRpb25BZGRyZXNzTGluZTE6IHN0cmluZ1xyXG4gIGRlc3RpbmF0aW9uQWRkcmVzc0xpbmUyOiBzdHJpbmdcclxuICBkZXN0aW5hdGlvbkFkZHJlc3NMaW5lMzogc3RyaW5nXHJcbiAgZGVzdGluYXRpb25DaXR5TmFtZT86IHN0cmluZ1xyXG4gIGRlc3RpbmF0aW9uQ291bnRyeUlkOiBudW1iZXJcclxuICBkZXN0aW5hdGlvbkNvdW50eU5hbWU/OiBzdHJpbmdcclxuICBkZXN0aW5hdGlvbkVtYWlsOiBzdHJpbmdcclxuICBkZXN0aW5hdGlvbkZ1bGxOYW1lOiBzdHJpbmdcclxuICBkZXN0aW5hdGlvblBob25lQ29kZTogc3RyaW5nXHJcbiAgZGVzdGluYXRpb25QaG9uZU51bWJlcjogc3RyaW5nXHJcbiAgZGVzdGluYXRpb25Qb3N0YWxDb2RlPzogc3RyaW5nXHJcbiAgZGVzdGluYXRpb25TdGF0ZUNvZGU/OiBzdHJpbmdcclxuICBpc0FjdGl2ZTogYm9vbGVhblxyXG4gIHBhY2thZ2luZzogYm9vbGVhblxyXG4gIGNvdW50cnlJZDogbnVtYmVyXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIEdlbmVyaWNGb2xpb091dCA9IHtcclxuICBnZW5lcmljRm9saW86IEdlbmVyaWNGb2xpb1xyXG59XHJcblxyXG5leHBvcnQgdHlwZSBQcm9kdWN0SW4gPSB7XHJcbiAgZ2xvYmFsQ29kZTogbnVtYmVyXHJcbiAgbG9jYWxDb2RlOiBzdHJpbmdcclxuICBnbG9iYWxOYW1lOiBzdHJpbmdcclxuICBsb2NhbE5hbWU6IHN0cmluZ1xyXG4gIGlzRG9jdW1lbnQ6IGJvb2xlYW5cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgUHJvZHVjdE91dCA9IHtcclxuICBwcm9kdWN0OiBQcm9kdWN0XHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIFNoaXBtZW50SW5jb21lVHlwZXNPdXQgPSB7XHJcbiAgdG90YWw6IG51bWJlclxyXG4gIHNoaXBtZW50SW5jb21lVHlwZXM6IFNoaXBtZW50SW5jb21lVHlwZVtdXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIFNoaXBtZW50SW5jb21lVHlwZUluID0ge1xyXG4gIGNvdW50cnlJZDogbnVtYmVyXHJcbiAgY29kZTogc3RyaW5nXHJcbiAgbmFtZTogc3RyaW5nXHJcbiAgaXNBY3RpdmU6IGJvb2xlYW5cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgU2hpcG1lbnRJbmNvbWVUeXBlT3V0ID0ge1xyXG4gIHNoaXBtZW50SW5jb21lVHlwZTogU2hpcG1lbnRJbmNvbWVUeXBlXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIFVuaXF1ZUZvbGlvSW4gPSB7XHJcbiAgY29kZTogbnVtYmVyXHJcbiAgY3VzdG9tZXI6IHN0cmluZ1xyXG4gIGNvbnRlbnQ6IHN0cmluZ1xyXG4gIGthZDogc3RyaW5nIHwgbnVsbFxyXG4gIGV4ZWN1dGl2ZTogc3RyaW5nXHJcbiAgaXNBY3RpdmU6IGJvb2xlYW5cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgVW5pcXVlRm9saW9PdXQgPSB7XHJcbiAgdW5pcXVlRm9saW86IFVuaXF1ZUZvbGlvXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIFVuaXF1ZUZvbGlvc091dCA9IHtcclxuICB0b3RhbDogbnVtYmVyXHJcbiAgdW5pcXVlRm9saW9zOiBVbmlxdWVGb2xpb1tdXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIFNoaXBtZW50R3JvdXBzT3V0ID0ge1xyXG4gIHNoaXBtZW50R3JvdXBzOiBTaGlwbWVudEdyb3VwW11cclxuICB0b3RhbDogbnVtYmVyXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIFNoaXBtZW50U3RhdHVzZXNPdXQgPSB7XHJcbiAgc2hpcG1lbnRTdGF0dXNlczogU2hpcG1lbnRTdGF0dXNbXVxyXG4gIHRvdGFsOiBudW1iZXJcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgUXVlc3Rpb25zT3V0ID0ge1xyXG4gIHF1ZXN0aW9uczogUXVlc3Rpb25bXVxyXG4gIHRvdGFsOiBudW1iZXJcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgUXVlc3Rpb25PdXQgPSB7XHJcbiAgcXVlc3Rpb246IFF1ZXN0aW9uXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIFF1ZXN0aW9uSW4gPSB7XHJcbiAgZGVzY3JpcHRpb246IHN0cmluZ1xyXG4gIHR5cGU6ICdtYXJrZXRpbmcnXHJcbiAgcXVlc3Rpb25PcmRlcjogbnVtYmVyXHJcbiAgaXNBY3RpdmU6IGJvb2xlYW5cclxuICBjb3VudHJ5SWQ6IG51bWJlclxyXG4gIGlzUmVxdWlyZWRWYWx1ZTogYm9vbGVhblxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBIb2xpZGF5c091dCA9IHtcclxuICBob2xpZGF5czogSG9saWRheVtdXHJcbiAgdG90YWw6IG51bWJlclxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBIb2xpZGF5T3V0ID0ge1xyXG4gIGhvbGlkYXk6IEhvbGlkYXlcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgSG9saWRheUluID0ge1xyXG4gIGRhdGU6IHN0cmluZ1xyXG4gIGRlc2NyaXB0aW9uOiBzdHJpbmdcclxuICBjb3VudHJ5SWQ6IG51bWJlclxyXG4gIGlzQWN0aXZlOiBib29sZWFuXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIElkZW50aWZpY2F0aW9uVHlwZU51bWJlclZhbGlkYXRpb25JbiA9IHtcclxuICBpZGVudGlmaWNhdGlvblR5cGVJZDogbnVtYmVyXHJcbiAgaWRlbnRpZmljYXRpb25OdW1iZXI6IHN0cmluZ1xyXG4gIHNlY3Rpb246IHN0cmluZ1xyXG59XHJcblxyXG5leHBvcnQgdHlwZSBJZGVudGlmaWNhdGlvblR5cGVOdW1iZXJWYWxpZGF0aW9uT3V0ID0ge1xyXG59XHJcblxyXG5leHBvcnQgdHlwZSBCdXNpbmVzc1BhcnR5VHJhZGVyVHlwZXNPdXQgPSB7XHJcbiAgdG90YWw6IG51bWJlclxyXG4gIGJ1c2luZXNzUGFydHlUcmFkZXJUeXBlczogQnVzaW5lc3NQYXJ0eVRyYWRlclR5cGVbXVxyXG59XHJcbiJdfQ==
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLXJlcG9ydHMuaW50ZXJmYWNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V4cGVydGVhbS1teC9uZ3gtc2VydmljZXMvc3JjL2xpYi9hcGlzL21vZGVscy9hcGktcmVwb3J0cy5pbnRlcmZhY2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPcGVyYXRpb25UeXBlIH0gZnJvbSAnLi9hcGktY2F0YWxvZy5pbnRlcmZhY2VzJ1xyXG5pbXBvcnQgeyBBY3RpdmVMZXNzTGFyYXZlbE1vZGVsLCBBY3RpdmVMZXNzU3ltZm9ueU1vZGVsLCBBcGlNb2RlbCwgTGFyYXZlbE1vZGVsLCBUcmFuc2xhdGlvbnMgfSBmcm9tICcuL2FwaS5tb2RlbHMnXHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIENvbGxlY3Rpb25QYXltZW50IGV4dGVuZHMgTGFyYXZlbE1vZGVsIHtcclxuICBfaWQ6IG51bWJlcixcclxuICBjb3VudHJ5X2NvZGU6IHN0cmluZyxcclxuICBjb3VudHJ5X2lkOiBudW1iZXIsXHJcbiAgY291bnRyeV9uYW1lOiBzdHJpbmcsXHJcbiAgY29tcGFueV9pZDogbnVtYmVyLFxyXG4gIGNvbXBhbnlfbmFtZTogc3RyaW5nLFxyXG4gIGNvbXBhbnlfY291bnRyeV9pZDogbnVtYmVyLFxyXG4gIGluc3RhbGxhdGlvbl9pZDogbnVtYmVyLFxyXG4gIGluc3RhbGxhdGlvbl9udW1iZXI6IG51bWJlcixcclxuICBsb2NhdGlvbl9mYWNpbGl0eV9jb2RlOiBzdHJpbmcsXHJcbiAgbG9jYXRpb25faWQ6IG51bWJlcixcclxuICBsb2NhdGlvbl9sb2NhdGlvbl9jb2RlOiBzdHJpbmcsXHJcbiAgbG9jYXRpb25fbmFtZTogc3RyaW5nLFxyXG4gIHVzZXJfaWQ6IG51bWJlcixcclxuICB1c2VyX3VzZXJuYW1lOiBzdHJpbmcsXHJcbiAgZG9jdW1lbnRfdHlwZV9pZDogbnVtYmVyLFxyXG4gIGRvY3VtZW50X3R5cGU6IERvY3VtZW50VHlwZVJlcG9ydHMsXHJcbiAgZG9jdW1lbnRfY2F0ZWdvcnlfaWQ6IG51bWJlcixcclxuICBkb2N1bWVudF9jYXRlZ29yeTogRG9jdW1lbnRDYXRlZ29yeVJlcG9ydHMsXHJcbiAgcmVjZWlwdF9udW1iZXI6IHN0cmluZyxcclxuICBjdXN0b21lcl9uYW1lOiBzdHJpbmcsXHJcbiAgYWNjb3VudDogc3RyaW5nLFxyXG4gIGFtb3VudDogbnVtYmVyLFxyXG4gIGN1cnJlbmN5X2lkOiBudW1iZXIsXHJcbiAgY3VycmVuY3lfY29kZTogc3RyaW5nXHJcbiAgb3BlcmF0aW9uX3R5cGVfaWQ6IG51bWJlclxyXG4gIG9wZXJhdGlvbl90eXBlOiBPcGVyYXRpb25UeXBlXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRG9jdW1lbnRUeXBlUmVwb3J0cyBleHRlbmRzIExhcmF2ZWxNb2RlbCB7XHJcbiAgX2lkOiBudW1iZXIsXHJcbiAgbmFtZTogc3RyaW5nLFxyXG4gIGNvZGU6IHN0cmluZyxcclxuICBtb3ZlbWVudF90eXBlOiBudW1iZXIsXHJcbiAgbG9jYWxfY29kZTogc3RyaW5nLFxyXG4gIHRyYW5zbGF0aW9uczogVHJhbnNsYXRpb25zXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRG9jdW1lbnRDYXRlZ29yeVJlcG9ydHMgZXh0ZW5kcyBMYXJhdmVsTW9kZWwge1xyXG4gIF9pZDogbnVtYmVyLFxyXG4gIG5hbWU6IHN0cmluZyxcclxuICBpc19lbGVjdHJvbmljOiB0cnVlLFxyXG4gIHRheGFibGU6IG51bWJlcixcclxuICBjcmVhdGVkX2F0OiBzdHJpbmcsXHJcbiAgdXBkYXRlZF9hdDogc3RyaW5nLFxyXG4gIHRyYW5zbGF0aW9uczogVHJhbnNsYXRpb25zXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU2hpcG1lbnRSZXBvcnRzIHtcclxuICBhdXRob3JpemF0aW9uX251bWJlcnM6IHN0cmluZ1tdXHJcbiAgY29tbWVyY2lhbF9pbnZvaWNlOiBib29sZWFuXHJcbiAgY29tcGFueV9uYW1lOiBzdHJpbmdcclxuICBjb3VudHJ5X2lkOiBudW1iZXJcclxuICBjb3VudHJ5X25hbWU6IHN0cmluZ1xyXG4gIGN1cnJlbmN5X2NvZGU6IHN0cmluZ1xyXG4gIGN1c3RvbWVyX2lkZW50aWZpY2F0aW9uX251bWJlcjogc3RyaW5nIHwgbnVsbFxyXG4gIGN1c3RvbWVyX2lkZW50aWZpY2F0aW9uX3R5cGVfaWQ6IG51bWJlciB8IG51bGxcclxuICBkb2N1bWVudF9pZDogbnVtYmVyXHJcbiAgaWQ6IG51bWJlclxyXG4gIGluc3RhbGxhdGlvbl9pZDogbnVtYmVyXHJcbiAgaW5zdGFsbGF0aW9uX251bWJlcjogbnVtYmVyXHJcbiAgaW52b2ljZV9kb2N1bWVudF9pZDogbnVtYmVyIHwgbnVsbFxyXG4gIGlzX2RvY3VtZW50OiBib29sZWFuXHJcbiAgaXNfbWFudWFsOiBib29sZWFuXHJcbiAgaXRuX251bWJlcjogc3RyaW5nIHwgbnVsbFxyXG4gIGxvY2F0aW9uX2lkOiBudW1iZXJcclxuICBsb2NhdGlvbl9uYW1lOiBzdHJpbmdcclxuICBwcmljZV9vdmVycmlkZV9hcHByb3Zlcl9uYW1lOiBzdHJpbmcgfCBudWxsXHJcbiAgcHJpY2Vfb3ZlcnJpZGVfcmVhc29uX25hbWU6IHN0cmluZyB8IG51bGxcclxuICBwcm9kdWN0X3N1YnRvdGFsOiBudW1iZXJcclxuICBwcm9kdWN0X3RheDogbnVtYmVyXHJcbiAgcXVlc3Rpb25fZGVzY3JpcHRpb246IHN0cmluZyB8IG51bGxcclxuICByZWNlaXZlcl9jb21wYW55X25hbWU6IHN0cmluZ1xyXG4gIHJlY2VpdmVyX2Z1bGxfbmFtZTogc3RyaW5nXHJcbiAgc2VuZF90b19hcGlfaW52ZW50b3JpZXM6IGJvb2xlYW5cclxuICBzaGlwbWVudF9pZDogbnVtYmVyXHJcbiAgc2hpcG1lbnRfcGllY2VzX3RyYWNraW5nX251bWJlcnM6IHN0cmluZ1tdXHJcbiAgc2hpcG1lbnRfc3RhdHVzX2NvZGU6IHN0cmluZ1xyXG4gIHNoaXBtZW50X3N0YXR1c19kZXNjcmlwdGlvbjogc3RyaW5nXHJcbiAgc2hpcG1lbnRfc3RhdHVzX2lkOiBudW1iZXJcclxuICBzaGlwbWVudF9zdGF0dXNfdHJhbnNsYXRpb25zOiBUcmFuc2xhdGlvbnNcclxuICBzaGlwbWVudF90YWdzOiBTaGlwbWVudFRhZ1tdXHJcbiAgc2hpcG1lbnRfdHJhY2tpbmdfbnVtYmVyOiBzdHJpbmdcclxuICBzaGlwbWVudF90eXBlOiBzdHJpbmdcclxuICBzaGlwbWVudF92YWx1ZTogc3RyaW5nXHJcbiAgc2hpcHBlcl9hY2NvdW50OiBzdHJpbmdcclxuICBzaGlwcGVyX2FkZHJlc3NfbGluZTE6IHN0cmluZ1xyXG4gIHNoaXBwZXJfYWRkcmVzc19saW5lMjogc3RyaW5nIHwgbnVsbFxyXG4gIHNoaXBwZXJfYWRkcmVzc19saW5lMzogc3RyaW5nIHwgbnVsbFxyXG4gIHNoaXBwZXJfY2l0eV9uYW1lOiBzdHJpbmdcclxuICBzaGlwcGVyX2NvbXBhbnlfbmFtZTogc3RyaW5nXHJcbiAgc2hpcHBlcl9lbWFpbDogc3RyaW5nXHJcbiAgc2hpcHBlcl9mdWxsX25hbWU6IHN0cmluZ1xyXG4gIHNoaXBwZXJfZnVsbF9waG9uZV9udW1iZXI6IHN0cmluZ1xyXG4gIHNoaXBwZXJfaWRlbnRpZmljYXRpb25fbnVtYmVyOiBzdHJpbmcgfCBudWxsXHJcbiAgc2hpcHBlcl9waG9uZV9udW1iZXI6IHN0cmluZ1xyXG4gIHNoaXBwZXJfcG9zdGFsX2NvZGU6IHN0cmluZ1xyXG4gIHNoaXBwZXJfc3RhdGVfbmFtZTogc3RyaW5nIHwgbnVsbFxyXG4gIHN1YnRvdGFsOiBudW1iZXJcclxuICB0YXg6IG51bWJlclxyXG4gIHRvdGFsOiBudW1iZXJcclxuICB0cmFja2luZzogc3RyaW5nIHwgbnVsbFxyXG4gIHVwZGF0ZWRfYXQ6IHN0cmluZ1xyXG4gIHVzZXJfaWQ6IG51bWJlclxyXG4gIHVzZXJfdXNlcm5hbWU6IHN0cmluZ1xyXG4gIGFkZGl0aW9uYWxfZG9jdW1lbnRzOiB7XHJcbiAgICBjb3VudHJ5X2lkOiBudW1iZXJcclxuICAgIGluY2x1ZGVfaW5kZW1uaXR5X2xldHRlcjogYm9vbGVhblxyXG4gICAgc2hpcG1lbnRfY29udGVudF90eXBlX2lkOiBudW1iZXJcclxuICAgIHNoaXBtZW50X3Njb3BlX2lkOiBudW1iZXJcclxuICB9XHJcbiAgZG9jdW1lbnRfcGF5bWVudHM6IHtcclxuICAgIHBheW1lbnQ6IHtcclxuICAgICAgY291bnRyeVBheW1lbnRUeXBlOiB7XHJcbiAgICAgICAgY29kZTogc3RyaW5nXHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9W11cclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTaGlwbWVudExhbmRpbmdSZXBvcnQgZXh0ZW5kcyBBY3RpdmVMZXNzTGFyYXZlbE1vZGVsIHtcclxuICBhdXRob3JpemF0aW9uX251bWJlcnM6IHN0cmluZ1tdIHwgbnVsbFxyXG4gIGNvbW1lcmNpYWxfaW52b2ljZTogYm9vbGVhbiB8IG51bGxcclxuICBjb21wYW55X2lkOiBudW1iZXJcclxuICBjb21wYW55X25hbWU6IHN0cmluZ1xyXG4gIGNvdW50cnlfaWQ6IG51bWJlclxyXG4gIGNvdW50cnlfbmFtZTogc3RyaW5nXHJcbiAgY3VycmVuY3lfY29kZTogc3RyaW5nIHwgbnVsbFxyXG4gIGRvY3VtZW50X2lkOiBudW1iZXJcclxuICBoYXNDcmVkaXRDYXJkUGF5bWVudDogYm9vbGVhblxyXG4gIGluc3RhbGxhdGlvbl9pZDogbnVtYmVyXHJcbiAgaW5zdGFsbGF0aW9uX251bWJlcjogbnVtYmVyXHJcbiAgaW52b2ljZV9kb2N1bWVudF9pZDogbnVtYmVyIHwgbnVsbFxyXG4gIGlzX2RvY3VtZW50OiBib29sZWFuXHJcbiAgaXNfbWFudWFsOiBib29sZWFuXHJcbiAgaXRuX251bWJlcjogc3RyaW5nIHwgbnVsbFxyXG4gIGxvY2F0aW9uX2NvZGU6IHN0cmluZ1xyXG4gIGxvY2F0aW9uX2ZhY2lsaXR5X2NvZGU6IHN0cmluZ1xyXG4gIGxvY2F0aW9uX2lkOiBudW1iZXJcclxuICBsb2NhdGlvbl9uYW1lOiBzdHJpbmdcclxuICBwcmljZV9vdmVycmlkZV9hcHByb3Zlcl9uYW1lOiBzdHJpbmcgfCBudWxsXHJcbiAgcHJpY2Vfb3ZlcnJpZGVfcmVhc29uX25hbWU6IHN0cmluZyB8IG51bGxcclxuICBwcm9kdWN0X2dsb2JhbF9uYW1lOiBzdHJpbmdcclxuICBwcm9kdWN0X2xvY2FsX25hbWU6IHN0cmluZ1xyXG4gIHF1ZXN0aW9uX2Rlc2NyaXB0aW9uOiBzdHJpbmcgfCBudWxsXHJcbiAgcmVjZWl2ZXJfYWRkcmVzc19saW5lMTogc3RyaW5nXHJcbiAgcmVjZWl2ZXJfYWRkcmVzc19saW5lMjogc3RyaW5nIHwgbnVsbFxyXG4gIHJlY2VpdmVyX2FkZHJlc3NfbGluZTM6IHN0cmluZyB8IG51bGxcclxuICByZWNlaXZlcl9jaXR5X25hbWU6IHN0cmluZ1xyXG4gIHJlY2VpdmVyX2NvbXBhbnlfbmFtZTogc3RyaW5nXHJcbiAgcmVjZWl2ZXJfY291bnRyeV9uYW1lOiBzdHJpbmdcclxuICByZWNlaXZlcl9jb3VudHlfbmFtZTogc3RyaW5nIHwgbnVsbFxyXG4gIHJlY2VpdmVyX2VtYWlsOiBzdHJpbmcgfCBudWxsXHJcbiAgcmVjZWl2ZXJfZnVsbF9uYW1lOiBzdHJpbmdcclxuICByZWNlaXZlcl9mdWxsX3Bob25lX251bWJlcjogc3RyaW5nIHwgbnVsbFxyXG4gIHJlY2VpdmVyX2lkZW50aWZpY2F0aW9uX251bWJlcjogc3RyaW5nIHwgbnVsbFxyXG4gIHJlY2VpdmVyX3Bvc3RhbF9jb2RlOiBzdHJpbmcgfCBudWxsXHJcbiAgcmVjZWl2ZXJfc3RhdGVfbmFtZTogc3RyaW5nXHJcbiAgc2VuZF90b19hcGlfaW52ZW50b3JpZXM6IGJvb2xlYW5cclxuICBzaGlwbWVudF9kZXNjcmlwdGlvbjogc3RyaW5nXHJcbiAgc2hpcG1lbnRfZ3JvdXBfaWQ6IG51bWJlclxyXG4gIHNoaXBtZW50X2dyb3VwX25hbWU6IHN0cmluZ1xyXG4gIHNoaXBtZW50X3BpZWNlc190cmFja2luZ19udW1iZXJzOiBzdHJpbmdbXVxyXG4gIHNoaXBtZW50X3N0YXR1c19jb2RlOiBzdHJpbmdcclxuICBzaGlwbWVudF9zdGF0dXNfaWQ6IG51bWJlclxyXG4gIHNoaXBtZW50X3N0YXR1c19uYW1lX0VOOiBzdHJpbmdcclxuICBzaGlwbWVudF9zdGF0dXNfbmFtZV9FUzogc3RyaW5nXHJcbiAgc2hpcG1lbnRfc3RhdHVzX25hbWVfRlI6IHN0cmluZ1xyXG4gIHNoaXBtZW50X3N0YXR1c19uYW1lX1BUOiBzdHJpbmdcclxuICBzaGlwbWVudF90YWdzOiBTaGlwbWVudFRhZ1tdXHJcbiAgc2hpcG1lbnRfdHJhY2tpbmdfbnVtYmVyOiBzdHJpbmdcclxuICBzaGlwbWVudF90eXBlOiBzdHJpbmdcclxuICBzaGlwbWVudF92YWx1ZTogbnVtYmVyXHJcbiAgc2hpcHBlcl9hY2NvdW50OiBzdHJpbmdcclxuICBzaGlwcGVyX2FkZHJlc3NfbGluZTE6IHN0cmluZ1xyXG4gIHNoaXBwZXJfYWRkcmVzc19saW5lMjogc3RyaW5nIHwgbnVsbFxyXG4gIHNoaXBwZXJfYWRkcmVzc19saW5lMzogc3RyaW5nIHwgbnVsbFxyXG4gIHNoaXBwZXJfY2l0eV9uYW1lOiBzdHJpbmcgfCBudWxsXHJcbiAgc2hpcHBlcl9jb21wYW55X25hbWU6IHN0cmluZ1xyXG4gIHNoaXBwZXJfY291bnRyeV9uYW1lOiBzdHJpbmdcclxuICBzaGlwcGVyX2NvdW50eV9uYW1lOiBzdHJpbmcgfCBudWxsXHJcbiAgc2hpcHBlcl9lbWFpbDogc3RyaW5nIHwgbnVsbFxyXG4gIHNoaXBwZXJfZnVsbF9uYW1lOiBzdHJpbmdcclxuICBzaGlwcGVyX2Z1bGxfcGhvbmVfbnVtYmVyOiBzdHJpbmdcclxuICBzaGlwcGVyX2lkZW50aWZpY2F0aW9uX251bWJlcjogc3RyaW5nIHwgbnVsbFxyXG4gIHNoaXBwZXJfcGhvbmVfbnVtYmVyOiBzdHJpbmcgfCBudWxsXHJcbiAgc2hpcHBlcl9wb3N0YWxfY29kZTogc3RyaW5nIHwgbnVsbFxyXG4gIHNoaXBwZXJfc3RhdGVfbmFtZTogc3RyaW5nIHwgbnVsbFxyXG4gIHRyYWNraW5nOiBzdHJpbmcgfCBudWxsXHJcbiAgdXNlcl9pZDogbnVtYmVyXHJcbiAgdXNlcl91c2VybmFtZTogc3RyaW5nXHJcbiAgYWRkaXRpb25hbF9kb2N1bWVudHM6IHtcclxuICAgIGNvdW50cnlfaWQ6IG51bWJlclxyXG4gICAgaW5jbHVkZV9pbmRlbW5pdHlfbGV0dGVyOiBib29sZWFuXHJcbiAgICBzaGlwbWVudF9jb250ZW50X3R5cGVfaWQ6IG51bWJlclxyXG4gICAgc2hpcG1lbnRfc2NvcGVfaWQ6IG51bWJlclxyXG4gIH0gfCBudWxsXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU2hpcG1lbnRUYWcgZXh0ZW5kcyBBY3RpdmVMZXNzU3ltZm9ueU1vZGVsIHtcclxuICBuYW1lOiBzdHJpbmdcclxuICBjb2RlOiBzdHJpbmdcclxuICB0cmFuc2xhdGlvbnM6IFRyYW5zbGF0aW9uc1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFJlcG9ydEV4dGVybmFsU2hpcG1lbnQgZXh0ZW5kcyBBY3RpdmVMZXNzTGFyYXZlbE1vZGVsIHtcclxuICBhY2NvdW50X251bWJlcjogc3RyaW5nXHJcbiAgY29sbGVjdGlvbl9kYXRlOiBzdHJpbmdcclxuICBkb2N1bWVudF9pZDogbnVtYmVyIHwgbnVsbFxyXG4gIGRvY3VtZW50X251bWJlcjogc3RyaW5nIHwgbnVsbFxyXG4gIGV4dGVybmFsX3NoaXBtZW50X2FkZHJlc3NlczogUmVwb3J0RXh0ZXJuYWxTaGlwbWVudEFkZHJlc3NbXVxyXG4gIGV4dGVybmFsX3NoaXBtZW50X2ZpbGVfaWQ6IG51bWJlclxyXG4gIGV4dGVybmFsX3NoaXBtZW50X3N0YXR1c19pZDogbnVtYmVyXHJcbiAgZXh0ZXJuYWxfc2hpcG1lbnRfc3RhdHVzX25hbWU6IHN0cmluZ1xyXG4gIGV4dGVybmFsX3NoaXBtZW50X3N0YXR1c190cmFuc2xhdGlvbnM6IFRyYW5zbGF0aW9uc1xyXG4gIGluc3RhbGxhdGlvbl9pZDogbnVtYmVyXHJcbiAgc3VidG90YWw6IG51bWJlclxyXG4gIHRheDogbnVtYmVyXHJcbiAgdG90YWw6IG51bWJlclxyXG4gIHRyYWNraW5nX251bWJlcjogc3RyaW5nXHJcbiAgdXNlcl9pZDogbnVtYmVyXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgUmVwb3J0RXh0ZXJuYWxTaGlwbWVudEFkZHJlc3MgZXh0ZW5kcyBBcGlNb2RlbCB7XHJcbiAgYWRkcmVzc19saW5lXzE6IHN0cmluZ1xyXG4gIGFkZHJlc3NfbGluZV8yOiBzdHJpbmdcclxuICBjaXR5X25hbWU6IHN0cmluZ1xyXG4gIGNvbXBhbnlfbmFtZTogc3RyaW5nXHJcbiAgY291bnRyeV9pZDogbnVtYmVyXHJcbiAgZW1haWw6IHN0cmluZ1xyXG4gIGZ1bGxfbmFtZTogc3RyaW5nXHJcbiAgaWRlbnRpZmljYXRpb25fbnVtYmVyOiBzdHJpbmcgfCBudWxsXHJcbiAgaWRlbnRpZmljYXRpb25fdHlwZV9pZDogbnVtYmVyIHwgbnVsbFxyXG4gIHBob25lX251bWJlcjogc3RyaW5nXHJcbiAgcG9zdGFsX2NvZGU6IHN0cmluZ1xyXG4gIHJvbGVfdHlwZTogc3RyaW5nXHJcbiAgc2VydmljZV9hcmVhX2NvZGU6IHN0cmluZ1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFByb21vdGlvbkNvZGVEaXNjb3VudCBleHRlbmRzIEFwaU1vZGVsIHtcclxuICBjb3VudHJ5X2lkOiBudW1iZXJcclxuICBjb21wYW55X2NvdW50cnlfaWQ6IG51bWJlclxyXG4gIGxvY2F0aW9uX2lkOiBudW1iZXJcclxuICBpbnN0YWxsYXRpb25faWQ6IG51bWJlclxyXG4gIHVzZXJfaWQ6IG51bWJlclxyXG4gIHVzZXJfdXNlcm5hbWU6IHN0cmluZ1xyXG4gIHVwZGF0ZWRfYXQ6IERhdGUgfCBzdHJpbmdcclxuICB0cmFja2luZ19udW1iZXI6IHN0cmluZ1xyXG4gIHByb2R1Y3RfaWQ6IG51bWJlclxyXG4gIHByb2R1Y3RfZ2xvYmFsX2NvZGU6IHN0cmluZ1xyXG4gIHByb2R1Y3RfZ2xvYmFsX25hbWU6IHN0cmluZ1xyXG4gIG9yaWdpbl9mYWNpbGl0eV9jb2RlOiBzdHJpbmdcclxuICBkZXN0aW5hdGlvbl9mYWNpbGl0eV9jb2RlOiBzdHJpbmdcclxuICBvcmlnaW5fY29tcGFueV9uYW1lOiBzdHJpbmdcclxuICBvcmlnaW5fZnVsbF9uYW1lOiBzdHJpbmdcclxuICBwcm9tb3Rpb25fY29kZTogc3RyaW5nXHJcbiAgZGlzY291bnRfcGVyY2VudGFnZTogbnVtYmVyXHJcbiAgcHJvZHVjdF9zdWJ0b3RhbHM6IFByb2R1Y3RTdWJ0b3RhbFtdXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgUHJvZHVjdFN1YnRvdGFsIHtcclxuICBjb3VudHJ5X3JlZmVyZW5jZV9jdXJyZW5jeV9pZDogbnVtYmVyXHJcbiAgY3VycmVuY3lfaWQ6IG51bWJlclxyXG4gIGN1cnJlbmN5X2NvZGU6IHN0cmluZ1xyXG4gIHZhbHVlOiBudW1iZXJcclxuICBzaGlwbWVudF90b3RhbDogbnVtYmVyXHJcbiAgZGlzY291bnRfYW1vdW50OiBudW1iZXJcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBXaXRoZHJhd2FsQW1vdW50IHtcclxuICBjb3VudHJ5X3JlZmVyZW5jZV9jdXJyZW5jeV9pZDogbnVtYmVyXHJcbiAgY3VycmVuY3lfaWQ6IG51bWJlclxyXG4gIGN1cnJlbmN5X2NvZGU6IHN0cmluZ1xyXG4gIHZhbHVlOiBudW1iZXIgfCBudWxsXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgUGFydGlhbFdpdGhkcmF3YWwgZXh0ZW5kcyBBY3RpdmVMZXNzTGFyYXZlbE1vZGVsIHtcclxuICBjb3VudHJ5X2lkOiBudW1iZXJcclxuICBjb21wYW55X2NvdW50cnlfaWQ6IG51bWJlclxyXG4gIGxvY2F0aW9uX2lkOiBudW1iZXJcclxuICBpbnN0YWxsYXRpb25faWQ6IG51bWJlclxyXG4gIG9wZW5pbmdfdXNlcl9pZDogbnVtYmVyXHJcbiAgb3BlbmluZ191c2VyX3VzZXJuYW1lOiBzdHJpbmdcclxuICBvcGVuaW5nX3VzZXJfbmFtZTogc3RyaW5nXHJcbiAgb3BlbmluZ19yZWZlcmVuY2VfdXNlcl9pZDogbnVtYmVyXHJcbiAgb3BlbmluZ19yZWZlcmVuY2VfdXNlcl91c2VybmFtZTogc3RyaW5nXHJcbiAgb3BlbmluZ19yZWZlcmVuY2VfdXNlcl9uYW1lOiBzdHJpbmdcclxuICByZWNlaXB0X251bWJlcjogc3RyaW5nXHJcbiAgYW1vdW50czogV2l0aGRyYXdhbEFtb3VudFtdXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSW52b2ljZSBleHRlbmRzIEFjdGl2ZUxlc3NMYXJhdmVsTW9kZWwge1xyXG4gIGNvbXBsZXRlX2RvY3VtZW50X251bWJlcjogc3RyaW5nXHJcbiAgdHJhY2tpbmdfbnVtYmVyczogc3RyaW5nW11cclxuICBsb2NhbF9jdXJyZW5jeV90b3RhbF9hbW91bnQ6IG51bWJlclxyXG4gIGlkZW50aWZpY2F0aW9uX3R5cGVfbmFtZTogc3RyaW5nXHJcbiAgaWRlbnRpZmljYXRpb25fbnVtYmVyOiBzdHJpbmdcclxuICBjdXN0b21lcl9mdWxsX25hbWU6IHN0cmluZ1xyXG4gIGN1c3RvbWVyX2FkZHJlc3M6IHN0cmluZ1xyXG4gIGN1c3RvbWVyX2VtYWlsOiBzdHJpbmdcclxuICBjdXN0b21lcl9leHRyYV9maWVsZHM6IHtcclxuICAgIGZpZWxkOiBzdHJpbmdcclxuICAgIHZhbHVlOiBzdHJpbmdcclxuICB9W11cclxuICBkb2N1bWVudF90eXBlX25hbWU6IHN0cmluZ1xyXG4gIGRvY3VtZW50X3R5cGVfbmFtZV9FUzogc3RyaW5nXHJcbiAgZG9jdW1lbnRfdHlwZV9uYW1lX0VOOiBzdHJpbmdcclxuICBkb2N1bWVudF9jYXRlZ29yeV9uYW1lOiBzdHJpbmdcclxuICBkb2N1bWVudF9jYXRlZ29yeV9uYW1lX0VTOiBzdHJpbmdcclxuICBkb2N1bWVudF9jYXRlZ29yeV9uYW1lX0VOOiBzdHJpbmdcclxuICBkb2N1bWVudF9zdGF0dXNfaWQ6IG51bWJlclxyXG4gIGRvY3VtZW50X3N0YXR1c19jb2RlOiBzdHJpbmdcclxuICB0cmFuc2FjdGlvbl90eXBlOiBzdHJpbmdcclxuICBpbnN0YWxsYXRpb25faWQ6IG51bWJlclxyXG4gIGxvY2F0aW9uX2lkOiBudW1iZXJcclxuICBjb21wYW55X2NvdW50cnlfaWQ6IG51bWJlclxyXG4gIGNvdW50cnlfaWQ6IG51bWJlclxyXG4gIGN1c3RvbWVyX3Bob25lX2NvZGU6IHN0cmluZ1xyXG4gIGN1c3RvbWVyX3Bob25lX251bWJlcjogc3RyaW5nXHJcbiAgY3VzdG9tZXJfY2l0eV9uYW1lOiBzdHJpbmdcclxuICBjdXN0b21lcl9jb3VudHlfbmFtZTogc3RyaW5nXHJcbiAgc2hpcG1lbnRfaWQ6IG51bWJlclxyXG59XHJcbiJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLXJlcG9ydHMuaW50ZXJmYWNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V4cGVydGVhbS1teC9uZ3gtc2VydmljZXMvc3JjL2xpYi9hcGlzL21vZGVscy9hcGktcmVwb3J0cy5pbnRlcmZhY2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPcGVyYXRpb25UeXBlIH0gZnJvbSAnLi9hcGktY2F0YWxvZy5pbnRlcmZhY2VzJ1xyXG5pbXBvcnQgeyBBY3RpdmVMZXNzTGFyYXZlbE1vZGVsLCBBY3RpdmVMZXNzU3ltZm9ueU1vZGVsLCBBcGlNb2RlbCwgTGFyYXZlbE1vZGVsLCBUcmFuc2xhdGlvbnMgfSBmcm9tICcuL2FwaS5tb2RlbHMnXHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIENvbGxlY3Rpb25QYXltZW50IGV4dGVuZHMgTGFyYXZlbE1vZGVsIHtcclxuICBfaWQ6IG51bWJlcixcclxuICBjb3VudHJ5X2NvZGU6IHN0cmluZyxcclxuICBjb3VudHJ5X2lkOiBudW1iZXIsXHJcbiAgY291bnRyeV9uYW1lOiBzdHJpbmcsXHJcbiAgY29tcGFueV9pZDogbnVtYmVyLFxyXG4gIGNvbXBhbnlfbmFtZTogc3RyaW5nLFxyXG4gIGNvbXBhbnlfY291bnRyeV9pZDogbnVtYmVyLFxyXG4gIGluc3RhbGxhdGlvbl9pZDogbnVtYmVyLFxyXG4gIGluc3RhbGxhdGlvbl9udW1iZXI6IG51bWJlcixcclxuICBsb2NhdGlvbl9mYWNpbGl0eV9jb2RlOiBzdHJpbmcsXHJcbiAgbG9jYXRpb25faWQ6IG51bWJlcixcclxuICBsb2NhdGlvbl9sb2NhdGlvbl9jb2RlOiBzdHJpbmcsXHJcbiAgbG9jYXRpb25fbmFtZTogc3RyaW5nLFxyXG4gIHVzZXJfaWQ6IG51bWJlcixcclxuICB1c2VyX3VzZXJuYW1lOiBzdHJpbmcsXHJcbiAgZG9jdW1lbnRfdHlwZV9pZDogbnVtYmVyLFxyXG4gIGRvY3VtZW50X3R5cGU6IERvY3VtZW50VHlwZVJlcG9ydHMsXHJcbiAgZG9jdW1lbnRfY2F0ZWdvcnlfaWQ6IG51bWJlcixcclxuICBkb2N1bWVudF9jYXRlZ29yeTogRG9jdW1lbnRDYXRlZ29yeVJlcG9ydHMsXHJcbiAgcmVjZWlwdF9udW1iZXI6IHN0cmluZyxcclxuICBjdXN0b21lcl9uYW1lOiBzdHJpbmcsXHJcbiAgYWNjb3VudDogc3RyaW5nLFxyXG4gIGFtb3VudDogbnVtYmVyLFxyXG4gIGN1cnJlbmN5X2lkOiBudW1iZXIsXHJcbiAgY3VycmVuY3lfY29kZTogc3RyaW5nXHJcbiAgb3BlcmF0aW9uX3R5cGVfaWQ6IG51bWJlclxyXG4gIG9wZXJhdGlvbl90eXBlOiBPcGVyYXRpb25UeXBlXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRG9jdW1lbnRUeXBlUmVwb3J0cyBleHRlbmRzIExhcmF2ZWxNb2RlbCB7XHJcbiAgX2lkOiBudW1iZXIsXHJcbiAgbmFtZTogc3RyaW5nLFxyXG4gIGNvZGU6IHN0cmluZyxcclxuICBtb3ZlbWVudF90eXBlOiBudW1iZXIsXHJcbiAgbG9jYWxfY29kZTogc3RyaW5nLFxyXG4gIHRyYW5zbGF0aW9uczogVHJhbnNsYXRpb25zXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRG9jdW1lbnRDYXRlZ29yeVJlcG9ydHMgZXh0ZW5kcyBMYXJhdmVsTW9kZWwge1xyXG4gIF9pZDogbnVtYmVyLFxyXG4gIG5hbWU6IHN0cmluZyxcclxuICBpc19lbGVjdHJvbmljOiB0cnVlLFxyXG4gIHRheGFibGU6IG51bWJlcixcclxuICBjcmVhdGVkX2F0OiBzdHJpbmcsXHJcbiAgdXBkYXRlZF9hdDogc3RyaW5nLFxyXG4gIHRyYW5zbGF0aW9uczogVHJhbnNsYXRpb25zXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU2hpcG1lbnRSZXBvcnRzIHtcclxuICBhdXRob3JpemF0aW9uX251bWJlcnM6IHN0cmluZ1tdXHJcbiAgY29tbWVyY2lhbF9pbnZvaWNlOiBib29sZWFuXHJcbiAgY29tcGFueV9uYW1lOiBzdHJpbmdcclxuICBjb3VudHJ5X2lkOiBudW1iZXJcclxuICBjb3VudHJ5X25hbWU6IHN0cmluZ1xyXG4gIGN1cnJlbmN5X2NvZGU6IHN0cmluZ1xyXG4gIGN1c3RvbWVyX2lkZW50aWZpY2F0aW9uX251bWJlcjogc3RyaW5nIHwgbnVsbFxyXG4gIGN1c3RvbWVyX2lkZW50aWZpY2F0aW9uX3R5cGVfaWQ6IG51bWJlciB8IG51bGxcclxuICBkb2N1bWVudF9pZDogbnVtYmVyXHJcbiAgaWQ6IG51bWJlclxyXG4gIGluc3RhbGxhdGlvbl9pZDogbnVtYmVyXHJcbiAgaW5zdGFsbGF0aW9uX251bWJlcjogbnVtYmVyXHJcbiAgaW52b2ljZV9kb2N1bWVudF9pZDogbnVtYmVyIHwgbnVsbFxyXG4gIGlzX2RvY3VtZW50OiBib29sZWFuXHJcbiAgaXNfbWFudWFsOiBib29sZWFuXHJcbiAgaXRuX251bWJlcjogc3RyaW5nIHwgbnVsbFxyXG4gIGxvY2F0aW9uX2lkOiBudW1iZXJcclxuICBsb2NhdGlvbl9uYW1lOiBzdHJpbmdcclxuICBwcmljZV9vdmVycmlkZV9hcHByb3Zlcl9uYW1lOiBzdHJpbmcgfCBudWxsXHJcbiAgcHJpY2Vfb3ZlcnJpZGVfcmVhc29uX25hbWU6IHN0cmluZyB8IG51bGxcclxuICBwcm9kdWN0X3N1YnRvdGFsOiBudW1iZXJcclxuICBwcm9kdWN0X3RheDogbnVtYmVyXHJcbiAgcXVlc3Rpb25fZGVzY3JpcHRpb246IHN0cmluZyB8IG51bGxcclxuICByZWNlaXZlcl9jb21wYW55X25hbWU6IHN0cmluZ1xyXG4gIHJlY2VpdmVyX2Z1bGxfbmFtZTogc3RyaW5nXHJcbiAgc2VuZF90b19hcGlfaW52ZW50b3JpZXM6IGJvb2xlYW5cclxuICBzaGlwbWVudF9pZDogbnVtYmVyXHJcbiAgc2hpcG1lbnRfcGllY2VzX3RyYWNraW5nX251bWJlcnM6IHN0cmluZ1tdXHJcbiAgc2hpcG1lbnRfc3RhdHVzX2NvZGU6IHN0cmluZ1xyXG4gIHNoaXBtZW50X3N0YXR1c19kZXNjcmlwdGlvbjogc3RyaW5nXHJcbiAgc2hpcG1lbnRfc3RhdHVzX2lkOiBudW1iZXJcclxuICBzaGlwbWVudF9zdGF0dXNfdHJhbnNsYXRpb25zOiBUcmFuc2xhdGlvbnNcclxuICBzaGlwbWVudF90YWdzOiBTaGlwbWVudFRhZ1tdXHJcbiAgc2hpcG1lbnRfdHJhY2tpbmdfbnVtYmVyOiBzdHJpbmdcclxuICBzaGlwbWVudF90eXBlOiBzdHJpbmdcclxuICBzaGlwbWVudF92YWx1ZTogc3RyaW5nXHJcbiAgc2hpcHBlcl9hY2NvdW50OiBzdHJpbmdcclxuICBzaGlwcGVyX2FkZHJlc3NfbGluZTE6IHN0cmluZ1xyXG4gIHNoaXBwZXJfYWRkcmVzc19saW5lMjogc3RyaW5nIHwgbnVsbFxyXG4gIHNoaXBwZXJfYWRkcmVzc19saW5lMzogc3RyaW5nIHwgbnVsbFxyXG4gIHNoaXBwZXJfY2l0eV9uYW1lOiBzdHJpbmdcclxuICBzaGlwcGVyX2NvbXBhbnlfbmFtZTogc3RyaW5nXHJcbiAgc2hpcHBlcl9lbWFpbDogc3RyaW5nXHJcbiAgc2hpcHBlcl9mdWxsX25hbWU6IHN0cmluZ1xyXG4gIHNoaXBwZXJfZnVsbF9waG9uZV9udW1iZXI6IHN0cmluZ1xyXG4gIHNoaXBwZXJfaWRlbnRpZmljYXRpb25fbnVtYmVyOiBzdHJpbmcgfCBudWxsXHJcbiAgc2hpcHBlcl9waG9uZV9udW1iZXI6IHN0cmluZ1xyXG4gIHNoaXBwZXJfcG9zdGFsX2NvZGU6IHN0cmluZ1xyXG4gIHNoaXBwZXJfc3RhdGVfbmFtZTogc3RyaW5nIHwgbnVsbFxyXG4gIHN1YnRvdGFsOiBudW1iZXJcclxuICB0YXg6IG51bWJlclxyXG4gIHRvdGFsOiBudW1iZXJcclxuICB0cmFja2luZzogc3RyaW5nIHwgbnVsbFxyXG4gIHVwZGF0ZWRfYXQ6IHN0cmluZ1xyXG4gIHVzZXJfaWQ6IG51bWJlclxyXG4gIHVzZXJfdXNlcm5hbWU6IHN0cmluZ1xyXG4gIGFkZGl0aW9uYWxfZG9jdW1lbnRzOiB7XHJcbiAgICBjb3VudHJ5X2lkOiBudW1iZXJcclxuICAgIGluY2x1ZGVfaW5kZW1uaXR5X2xldHRlcjogYm9vbGVhblxyXG4gICAgc2hpcG1lbnRfY29udGVudF90eXBlX2lkOiBudW1iZXJcclxuICAgIHNoaXBtZW50X3Njb3BlX2lkOiBudW1iZXJcclxuICB9XHJcbiAgZG9jdW1lbnRfcGF5bWVudHM6IHtcclxuICAgIHBheW1lbnQ6IHtcclxuICAgICAgY291bnRyeVBheW1lbnRUeXBlOiB7XHJcbiAgICAgICAgY29kZTogc3RyaW5nXHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9W11cclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTaGlwbWVudExhbmRpbmdSZXBvcnQgZXh0ZW5kcyBBY3RpdmVMZXNzTGFyYXZlbE1vZGVsIHtcclxuICBhdXRob3JpemF0aW9uX251bWJlcnM6IHN0cmluZ1tdIHwgbnVsbFxyXG4gIGNvbW1lcmNpYWxfaW52b2ljZTogYm9vbGVhbiB8IG51bGxcclxuICBjb21wYW55X2lkOiBudW1iZXJcclxuICBjb21wYW55X25hbWU6IHN0cmluZ1xyXG4gIGNvdW50cnlfaWQ6IG51bWJlclxyXG4gIGNvdW50cnlfbmFtZTogc3RyaW5nXHJcbiAgY3VycmVuY3lfY29kZTogc3RyaW5nIHwgbnVsbFxyXG4gIGRvY3VtZW50X2lkOiBudW1iZXJcclxuICBoYXNDcmVkaXRDYXJkUGF5bWVudDogYm9vbGVhblxyXG4gIGluc3RhbGxhdGlvbl9pZDogbnVtYmVyXHJcbiAgaW5zdGFsbGF0aW9uX251bWJlcjogbnVtYmVyXHJcbiAgaW52b2ljZV9kb2N1bWVudF9pZDogbnVtYmVyIHwgbnVsbFxyXG4gIGlzX2RvY3VtZW50OiBib29sZWFuXHJcbiAgaXNfbWFudWFsOiBib29sZWFuXHJcbiAgaXRuX251bWJlcjogc3RyaW5nIHwgbnVsbFxyXG4gIGxvY2F0aW9uX2NvZGU6IHN0cmluZ1xyXG4gIGxvY2F0aW9uX2ZhY2lsaXR5X2NvZGU6IHN0cmluZ1xyXG4gIGxvY2F0aW9uX2lkOiBudW1iZXJcclxuICBsb2NhdGlvbl9uYW1lOiBzdHJpbmdcclxuICBwcmljZV9vdmVycmlkZV9hcHByb3Zlcl9uYW1lOiBzdHJpbmcgfCBudWxsXHJcbiAgcHJpY2Vfb3ZlcnJpZGVfcmVhc29uX25hbWU6IHN0cmluZyB8IG51bGxcclxuICBwcm9kdWN0X2dsb2JhbF9uYW1lOiBzdHJpbmdcclxuICBwcm9kdWN0X2xvY2FsX25hbWU6IHN0cmluZ1xyXG4gIHF1ZXN0aW9uX2Rlc2NyaXB0aW9uOiBzdHJpbmcgfCBudWxsXHJcbiAgcmVjZWl2ZXJfYWRkcmVzc19saW5lMTogc3RyaW5nXHJcbiAgcmVjZWl2ZXJfYWRkcmVzc19saW5lMjogc3RyaW5nIHwgbnVsbFxyXG4gIHJlY2VpdmVyX2FkZHJlc3NfbGluZTM6IHN0cmluZyB8IG51bGxcclxuICByZWNlaXZlcl9jaXR5X25hbWU6IHN0cmluZ1xyXG4gIHJlY2VpdmVyX2NvbXBhbnlfbmFtZTogc3RyaW5nXHJcbiAgcmVjZWl2ZXJfY291bnRyeV9uYW1lOiBzdHJpbmdcclxuICByZWNlaXZlcl9jb3VudHlfbmFtZTogc3RyaW5nIHwgbnVsbFxyXG4gIHJlY2VpdmVyX2VtYWlsOiBzdHJpbmcgfCBudWxsXHJcbiAgcmVjZWl2ZXJfZnVsbF9uYW1lOiBzdHJpbmdcclxuICByZWNlaXZlcl9mdWxsX3Bob25lX251bWJlcjogc3RyaW5nIHwgbnVsbFxyXG4gIHJlY2VpdmVyX2lkZW50aWZpY2F0aW9uX251bWJlcjogc3RyaW5nIHwgbnVsbFxyXG4gIHJlY2VpdmVyX3Bvc3RhbF9jb2RlOiBzdHJpbmcgfCBudWxsXHJcbiAgcmVjZWl2ZXJfc3RhdGVfbmFtZTogc3RyaW5nXHJcbiAgc2VuZF90b19hcGlfaW52ZW50b3JpZXM6IGJvb2xlYW5cclxuICBzaGlwbWVudF9kZXNjcmlwdGlvbjogc3RyaW5nXHJcbiAgc2hpcG1lbnRfZ3JvdXBfaWQ6IG51bWJlclxyXG4gIHNoaXBtZW50X2dyb3VwX25hbWU6IHN0cmluZ1xyXG4gIHNoaXBtZW50X3BpZWNlc190cmFja2luZ19udW1iZXJzOiBzdHJpbmdbXVxyXG4gIHNoaXBtZW50X3N0YXR1c19jb2RlOiBzdHJpbmdcclxuICBzaGlwbWVudF9zdGF0dXNfaWQ6IG51bWJlclxyXG4gIHNoaXBtZW50X3N0YXR1c19uYW1lX0VOOiBzdHJpbmdcclxuICBzaGlwbWVudF9zdGF0dXNfbmFtZV9FUzogc3RyaW5nXHJcbiAgc2hpcG1lbnRfc3RhdHVzX25hbWVfRlI6IHN0cmluZ1xyXG4gIHNoaXBtZW50X3N0YXR1c19uYW1lX1BUOiBzdHJpbmdcclxuICBzaGlwbWVudF90YWdzOiBTaGlwbWVudFRhZ1tdXHJcbiAgc2hpcG1lbnRfdHJhY2tpbmdfbnVtYmVyOiBzdHJpbmdcclxuICBzaGlwbWVudF90eXBlOiBzdHJpbmdcclxuICBzaGlwbWVudF92YWx1ZTogbnVtYmVyXHJcbiAgc2hpcHBlcl9hY2NvdW50OiBzdHJpbmdcclxuICBzaGlwcGVyX2FkZHJlc3NfbGluZTE6IHN0cmluZ1xyXG4gIHNoaXBwZXJfYWRkcmVzc19saW5lMjogc3RyaW5nIHwgbnVsbFxyXG4gIHNoaXBwZXJfYWRkcmVzc19saW5lMzogc3RyaW5nIHwgbnVsbFxyXG4gIHNoaXBwZXJfY2l0eV9uYW1lOiBzdHJpbmcgfCBudWxsXHJcbiAgc2hpcHBlcl9jb21wYW55X25hbWU6IHN0cmluZ1xyXG4gIHNoaXBwZXJfY291bnRyeV9uYW1lOiBzdHJpbmdcclxuICBzaGlwcGVyX2NvdW50eV9uYW1lOiBzdHJpbmcgfCBudWxsXHJcbiAgc2hpcHBlcl9lbWFpbDogc3RyaW5nIHwgbnVsbFxyXG4gIHNoaXBwZXJfZnVsbF9uYW1lOiBzdHJpbmdcclxuICBzaGlwcGVyX2Z1bGxfcGhvbmVfbnVtYmVyOiBzdHJpbmdcclxuICBzaGlwcGVyX2lkZW50aWZpY2F0aW9uX251bWJlcjogc3RyaW5nIHwgbnVsbFxyXG4gIHNoaXBwZXJfcGhvbmVfbnVtYmVyOiBzdHJpbmcgfCBudWxsXHJcbiAgc2hpcHBlcl9wb3N0YWxfY29kZTogc3RyaW5nIHwgbnVsbFxyXG4gIHNoaXBwZXJfc3RhdGVfbmFtZTogc3RyaW5nIHwgbnVsbFxyXG4gIHRyYWNraW5nOiBzdHJpbmcgfCBudWxsXHJcbiAgdXNlcl9pZDogbnVtYmVyXHJcbiAgdXNlcl91c2VybmFtZTogc3RyaW5nXHJcbiAgYWRkaXRpb25hbF9kb2N1bWVudHM6IHtcclxuICAgIGNvdW50cnlfaWQ6IG51bWJlclxyXG4gICAgaW5jbHVkZV9pbmRlbW5pdHlfbGV0dGVyOiBib29sZWFuXHJcbiAgICBzaGlwbWVudF9jb250ZW50X3R5cGVfaWQ6IG51bWJlclxyXG4gICAgc2hpcG1lbnRfc2NvcGVfaWQ6IG51bWJlclxyXG4gIH0gfCBudWxsXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU2hpcG1lbnRUYWcgZXh0ZW5kcyBBY3RpdmVMZXNzU3ltZm9ueU1vZGVsIHtcclxuICBuYW1lOiBzdHJpbmdcclxuICBjb2RlOiBzdHJpbmdcclxuICB0cmFuc2xhdGlvbnM6IFRyYW5zbGF0aW9uc1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFJlcG9ydEV4dGVybmFsU2hpcG1lbnQgZXh0ZW5kcyBBY3RpdmVMZXNzTGFyYXZlbE1vZGVsIHtcclxuICBhY2NvdW50X251bWJlcjogc3RyaW5nXHJcbiAgY29sbGVjdGlvbl9kYXRlOiBzdHJpbmdcclxuICBkb2N1bWVudF9pZDogbnVtYmVyIHwgbnVsbFxyXG4gIGRvY3VtZW50X251bWJlcjogc3RyaW5nIHwgbnVsbFxyXG4gIGV4dGVybmFsX3NoaXBtZW50X2FkZHJlc3NlczogUmVwb3J0RXh0ZXJuYWxTaGlwbWVudEFkZHJlc3NbXVxyXG4gIGV4dGVybmFsX3NoaXBtZW50X2ZpbGVfaWQ6IG51bWJlclxyXG4gIGV4dGVybmFsX3NoaXBtZW50X3N0YXR1c19pZDogbnVtYmVyXHJcbiAgZXh0ZXJuYWxfc2hpcG1lbnRfc3RhdHVzX25hbWU6IHN0cmluZ1xyXG4gIGV4dGVybmFsX3NoaXBtZW50X3N0YXR1c190cmFuc2xhdGlvbnM6IFRyYW5zbGF0aW9uc1xyXG4gIGluc3RhbGxhdGlvbl9pZDogbnVtYmVyXHJcbiAgc3VidG90YWw6IG51bWJlclxyXG4gIHRheDogbnVtYmVyXHJcbiAgdG90YWw6IG51bWJlclxyXG4gIHRyYWNraW5nX251bWJlcjogc3RyaW5nXHJcbiAgdXNlcl9pZDogbnVtYmVyXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgUmVwb3J0RXh0ZXJuYWxTaGlwbWVudEFkZHJlc3MgZXh0ZW5kcyBBcGlNb2RlbCB7XHJcbiAgYWRkcmVzc19saW5lXzE6IHN0cmluZ1xyXG4gIGFkZHJlc3NfbGluZV8yOiBzdHJpbmdcclxuICBjaXR5X25hbWU6IHN0cmluZ1xyXG4gIGNvbXBhbnlfbmFtZTogc3RyaW5nXHJcbiAgY291bnRyeV9pZDogbnVtYmVyXHJcbiAgZW1haWw6IHN0cmluZ1xyXG4gIGZ1bGxfbmFtZTogc3RyaW5nXHJcbiAgaWRlbnRpZmljYXRpb25fbnVtYmVyOiBzdHJpbmcgfCBudWxsXHJcbiAgaWRlbnRpZmljYXRpb25fdHlwZV9pZDogbnVtYmVyIHwgbnVsbFxyXG4gIHBob25lX251bWJlcjogc3RyaW5nXHJcbiAgcG9zdGFsX2NvZGU6IHN0cmluZ1xyXG4gIHJvbGVfdHlwZTogc3RyaW5nXHJcbiAgc2VydmljZV9hcmVhX2NvZGU6IHN0cmluZ1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFByb21vdGlvbkNvZGVEaXNjb3VudCBleHRlbmRzIEFwaU1vZGVsIHtcclxuICBjb3VudHJ5X2lkOiBudW1iZXJcclxuICBjb21wYW55X2NvdW50cnlfaWQ6IG51bWJlclxyXG4gIGxvY2F0aW9uX2lkOiBudW1iZXJcclxuICBpbnN0YWxsYXRpb25faWQ6IG51bWJlclxyXG4gIHVzZXJfaWQ6IG51bWJlclxyXG4gIHVzZXJfdXNlcm5hbWU6IHN0cmluZ1xyXG4gIHVwZGF0ZWRfYXQ6IERhdGUgfCBzdHJpbmdcclxuICB0cmFja2luZ19udW1iZXI6IHN0cmluZ1xyXG4gIHByb2R1Y3RfaWQ6IG51bWJlclxyXG4gIHByb2R1Y3RfZ2xvYmFsX2NvZGU6IHN0cmluZ1xyXG4gIHByb2R1Y3RfZ2xvYmFsX25hbWU6IHN0cmluZ1xyXG4gIG9yaWdpbl9mYWNpbGl0eV9jb2RlOiBzdHJpbmdcclxuICBkZXN0aW5hdGlvbl9mYWNpbGl0eV9jb2RlOiBzdHJpbmdcclxuICBvcmlnaW5fY29tcGFueV9uYW1lOiBzdHJpbmdcclxuICBvcmlnaW5fZnVsbF9uYW1lOiBzdHJpbmdcclxuICBwcm9tb3Rpb25fY29kZTogc3RyaW5nXHJcbiAgZGlzY291bnRfcGVyY2VudGFnZTogbnVtYmVyXHJcbiAgcHJvZHVjdF9zdWJ0b3RhbHM6IFByb2R1Y3RTdWJ0b3RhbFtdXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgUHJvZHVjdFN1YnRvdGFsIHtcclxuICBjb3VudHJ5X3JlZmVyZW5jZV9jdXJyZW5jeV9pZDogbnVtYmVyXHJcbiAgY3VycmVuY3lfaWQ6IG51bWJlclxyXG4gIGN1cnJlbmN5X2NvZGU6IHN0cmluZ1xyXG4gIHZhbHVlOiBudW1iZXJcclxuICBzaGlwbWVudF90b3RhbDogbnVtYmVyXHJcbiAgZGlzY291bnRfYW1vdW50OiBudW1iZXJcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBXaXRoZHJhd2FsQW1vdW50IHtcclxuICBjb3VudHJ5X3JlZmVyZW5jZV9jdXJyZW5jeV9pZDogbnVtYmVyXHJcbiAgY3VycmVuY3lfaWQ6IG51bWJlclxyXG4gIGN1cnJlbmN5X2NvZGU6IHN0cmluZ1xyXG4gIHZhbHVlOiBudW1iZXIgfCBudWxsXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgUGFydGlhbFdpdGhkcmF3YWwgZXh0ZW5kcyBBY3RpdmVMZXNzTGFyYXZlbE1vZGVsIHtcclxuICBjb3VudHJ5X2lkOiBudW1iZXJcclxuICBjb21wYW55X2NvdW50cnlfaWQ6IG51bWJlclxyXG4gIGxvY2F0aW9uX2lkOiBudW1iZXJcclxuICBpbnN0YWxsYXRpb25faWQ6IG51bWJlclxyXG4gIG9wZW5pbmdfdXNlcl9pZDogbnVtYmVyXHJcbiAgb3BlbmluZ191c2VyX3VzZXJuYW1lOiBzdHJpbmdcclxuICBvcGVuaW5nX3VzZXJfbmFtZTogc3RyaW5nXHJcbiAgb3BlbmluZ19yZWZlcmVuY2VfdXNlcl9pZDogbnVtYmVyXHJcbiAgb3BlbmluZ19yZWZlcmVuY2VfdXNlcl91c2VybmFtZTogc3RyaW5nXHJcbiAgb3BlbmluZ19yZWZlcmVuY2VfdXNlcl9uYW1lOiBzdHJpbmdcclxuICByZWNlaXB0X251bWJlcjogc3RyaW5nXHJcbiAgYW1vdW50czogV2l0aGRyYXdhbEFtb3VudFtdXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSW52b2ljZSBleHRlbmRzIEFjdGl2ZUxlc3NMYXJhdmVsTW9kZWwge1xyXG4gIGNvbXBsZXRlX2RvY3VtZW50X251bWJlcjogc3RyaW5nXHJcbiAgdHJhY2tpbmdfbnVtYmVyczogc3RyaW5nW11cclxuICBsb2NhbF9jdXJyZW5jeV90b3RhbF9hbW91bnQ6IG51bWJlclxyXG4gIGlkZW50aWZpY2F0aW9uX3R5cGVfbmFtZTogc3RyaW5nXHJcbiAgaWRlbnRpZmljYXRpb25fbnVtYmVyOiBzdHJpbmdcclxuICBjdXN0b21lcl9mdWxsX25hbWU6IHN0cmluZ1xyXG4gIGN1c3RvbWVyX2FkZHJlc3M6IHN0cmluZ1xyXG4gIGN1c3RvbWVyX2VtYWlsOiBzdHJpbmdcclxuICBjdXN0b21lcl9leHRyYV9maWVsZHM6IHtcclxuICAgIGZpZWxkOiBzdHJpbmdcclxuICAgIHZhbHVlOiBzdHJpbmdcclxuICB9W11cclxuICBkb2N1bWVudF90eXBlX25hbWU6IHN0cmluZ1xyXG4gIGRvY3VtZW50X3R5cGVfbmFtZV9FUzogc3RyaW5nXHJcbiAgZG9jdW1lbnRfdHlwZV9uYW1lX0VOOiBzdHJpbmdcclxuICBkb2N1bWVudF9jYXRlZ29yeV9uYW1lOiBzdHJpbmdcclxuICBkb2N1bWVudF9jYXRlZ29yeV9uYW1lX0VTOiBzdHJpbmdcclxuICBkb2N1bWVudF9jYXRlZ29yeV9uYW1lX0VOOiBzdHJpbmdcclxuICBkb2N1bWVudF9zdGF0dXNfaWQ6IG51bWJlclxyXG4gIGRvY3VtZW50X3N0YXR1c19jb2RlOiBzdHJpbmdcclxuICB0cmFuc2FjdGlvbl90eXBlOiBzdHJpbmdcclxuICBpbnN0YWxsYXRpb25faWQ6IG51bWJlclxyXG4gIGxvY2F0aW9uX2lkOiBudW1iZXJcclxuICBjb21wYW55X2NvdW50cnlfaWQ6IG51bWJlclxyXG4gIGNvdW50cnlfaWQ6IG51bWJlclxyXG4gIGN1c3RvbWVyX3Bob25lX2NvZGU6IHN0cmluZ1xyXG4gIGN1c3RvbWVyX3Bob25lX251bWJlcjogc3RyaW5nXHJcbiAgY3VzdG9tZXJfY2l0eV9uYW1lOiBzdHJpbmdcclxuICBjdXN0b21lcl9jb3VudHlfbmFtZTogc3RyaW5nXHJcbiAgc2hpcG1lbnRfaWQ6IG51bWJlclxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNhbGVzIGV4dGVuZHMgQWN0aXZlTGVzc0xhcmF2ZWxNb2RlbCB7XHJcbiAgY29tcGFueV9jb3VudHJ5X2lkOiBudW1iZXJcclxuICBjb3VudHJ5X2RvY3VtZW50X3R5cGVfaWQ6IG51bWJlclxyXG4gIGNvdW50cnlfaWQ6IG51bWJlclxyXG4gIGN1c3RvbWVyX2FkZHJlc3NfbGluZTE6IHN0cmluZ1xyXG4gIGN1c3RvbWVyX2VtYWlsOiBzdHJpbmdcclxuICBjdXN0b21lcl9uYW1lOiBzdHJpbmdcclxuICBjdXN0b21lcl9waG9uZTogc3RyaW5nXHJcbiAgZG9jdW1lbnRfZnVsbF9udW1iZXI6IHN0cmluZ1xyXG4gIGRvY3VtZW50X3NhcF9mdWxsX251bWJlcjogc3RyaW5nXHJcbiAgZG9jdW1lbnRfc3RhdHVzX25hbWU6IHN0cmluZ1xyXG4gIGRvY3VtZW50X3N0YXR1czogbnVtYmVyXHJcbiAgZG9jdW1lbnRfdHlwZV9uYW1lX0VOOiBzdHJpbmdcclxuICBkb2N1bWVudF90eXBlX25hbWVfRVM6IHN0cmluZ1xyXG4gIGRvY3VtZW50X3R5cGVfbmFtZV9GUjogc3RyaW5nXHJcbiAgZG9jdW1lbnRfdHlwZV9uYW1lX1BUOiBzdHJpbmdcclxuICBkb2N1bWVudF90eXBlX25hbWU6IHN0cmluZ1xyXG4gIGV4ZW1wdDogbnVtYmVyXHJcbiAgaWRlbnRpZmljYXRpb25fbnVtYmVyOiBzdHJpbmdcclxuICBpZGVudGlmaWNhdGlvbl90eXBlX2lkOiBudW1iZXJcclxuICBpZGVudGlmaWNhdGlvbl90eXBlX25hbWU6IHN0cmluZ1xyXG4gIGluc3RhbGxhdGlvbl9pZDogbnVtYmVyXHJcbiAgbG9jYXRpb25faWQ6IG51bWJlclxyXG4gIHN1YnRvdGFsOiBudW1iZXJcclxuICB0YXg6IG51bWJlclxyXG4gIHRvdGFsOiBudW1iZXJcclxuICB1c2VyX2lkOiBudW1iZXJcclxufVxyXG4iXX0=
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLXJlcG9ydHMudHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9leHBlcnRlYW0tbXgvbmd4LXNlcnZpY2VzL3NyYy9saWIvYXBpcy9tb2RlbHMvYXBpLXJlcG9ydHMudHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29sbGVjdGlvblBheW1lbnQsIEludm9pY2UsIFBhcnRpYWxXaXRoZHJhd2FsLFxyXG4gIFByb21vdGlvbkNvZGVEaXNjb3VudCxcclxuICBSZXBvcnRFeHRlcm5hbFNoaXBtZW50LFxyXG4gIFNoaXBtZW50TGFuZGluZ1JlcG9ydCxcclxuICBTaGlwbWVudFJlcG9ydHNcclxufSBmcm9tICcuL2FwaS1yZXBvcnRzLmludGVyZmFjZXMnXHJcbmltcG9ydCB7IFF1ZXJ5UGFyYW1zIH0gZnJvbSAnLi9hcGkubW9kZWxzJ1xyXG5pbXBvcnQgeyBTZXNzaW9uIH0gZnJvbSAnLi9hcGktc2VjdXJpdHkuaW50ZXJmYWNlcydcclxuXHJcbmV4cG9ydCB0eXBlIENvbGxlY3Rpb25QYXltZW50c091dCA9IHtcclxuICBjb2xsZWN0aW9uX3BheW1lbnRzOiBDb2xsZWN0aW9uUGF5bWVudFtdXHJcbiAgdG90YWw6IG51bWJlclxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBTaGlwbWVudHNSZXBvcnRPdXQgPSB7XHJcbiAgc2hpcG1lbnRzOiBTaGlwbWVudFJlcG9ydHNbXVxyXG4gIHRvdGFsOiBudW1iZXJcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgU2hpcG1lbnRzTGFuZGluZ1JlcG9ydE91dCA9IHtcclxuICBzaGlwbWVudHNfbGFuZGluZzogU2hpcG1lbnRMYW5kaW5nUmVwb3J0W11cclxuICB0b3RhbDogbnVtYmVyXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIEV4dGVybmFsU2hpcG1lbnRzT3V0ID0ge1xyXG4gIGV4dGVybmFsX3NoaXBtZW50czogUmVwb3J0RXh0ZXJuYWxTaGlwbWVudFtdXHJcbiAgdG90YWw6IG51bWJlclxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBQcm9tb3Rpb25Db2RlRGlzY291bnRzT3V0ID0ge1xyXG4gIHRvdGFsOiBudW1iZXJcclxuICBwcm9tb3Rpb25fY29kZV9kaXNjb3VudHM6IFByb21vdGlvbkNvZGVEaXNjb3VudFtdXHJcbn0gfCB7XHJcbiAgdHJhbnNhY3Rpb25faWQ6IHN0cmluZ1xyXG59XHJcblxyXG5leHBvcnQgdHlwZSBGaWxlQ2hlY2tPdXQgPSB7XHJcbiAgcmVwb3J0X2ZpbGU6IHtcclxuICAgIHVzZXJfaWQ6IG51bWJlclxyXG4gICAgcm9sZV90eXBlX2xldmVsOiBudW1iZXJcclxuICAgIHR5cGU6IHN0cmluZ1xyXG4gICAgc3RhdHVzOiBudW1iZXJcclxuICAgIHByb2dyZXNzOiBudW1iZXJcclxuICAgIGZpbGVfc2l6ZTogbnVtYmVyXHJcbiAgICBmaWxlX25hbWU6IHN0cmluZyB8IG51bGxcclxuICAgIHJlcG9ydF9yZXF1ZXN0OiBRdWVyeVBhcmFtc1xyXG4gICAgdHJhbnNhY3Rpb25faWQ6IHN0cmluZ1xyXG4gICAgaGVhZGVyczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfVxyXG4gICAgdXNlcl9zZXNzaW9uOiBTZXNzaW9uXHJcbiAgICByb2xlX2NvbXBhbnlfY291bnRyeV9pZDogbnVtYmVyXHJcbiAgICB1cGRhdGVkX2F0OiBzdHJpbmdcclxuICAgIGNyZWF0ZWRfYXQ6IHN0cmluZ1xyXG4gICAgaWQ6IHN0cmluZ1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgUGFydGlhbFdpdGhkcmF3YWxzT3V0ID0ge1xyXG4gIHBhcnRpYWxfd2l0aGRyYXdhbHM6IFBhcnRpYWxXaXRoZHJhd2FsW11cclxuICB0b3RhbDogbnVtYmVyXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIEludm9pY2VzT3V0ID0ge1xyXG4gIGludm9pY2VzOiBJbnZvaWNlW11cclxuICB0b3RhbDogbnVtYmVyXHJcbn1cclxuIl19
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLXJlcG9ydHMudHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9leHBlcnRlYW0tbXgvbmd4LXNlcnZpY2VzL3NyYy9saWIvYXBpcy9tb2RlbHMvYXBpLXJlcG9ydHMudHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29sbGVjdGlvblBheW1lbnQsIEludm9pY2UsIFBhcnRpYWxXaXRoZHJhd2FsLFxyXG4gIFByb21vdGlvbkNvZGVEaXNjb3VudCxcclxuICBSZXBvcnRFeHRlcm5hbFNoaXBtZW50LFxyXG4gIFNhbGVzLFxyXG4gIFNoaXBtZW50TGFuZGluZ1JlcG9ydCxcclxuICBTaGlwbWVudFJlcG9ydHNcclxufSBmcm9tICcuL2FwaS1yZXBvcnRzLmludGVyZmFjZXMnXHJcbmltcG9ydCB7IFNlc3Npb24gfSBmcm9tICcuL2FwaS1zZWN1cml0eS5pbnRlcmZhY2VzJ1xyXG5pbXBvcnQgeyBRdWVyeVBhcmFtcyB9IGZyb20gJy4vYXBpLm1vZGVscydcclxuXHJcbmV4cG9ydCB0eXBlIENvbGxlY3Rpb25QYXltZW50c091dCA9IHtcclxuICBjb2xsZWN0aW9uX3BheW1lbnRzOiBDb2xsZWN0aW9uUGF5bWVudFtdXHJcbiAgdG90YWw6IG51bWJlclxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBTaGlwbWVudHNSZXBvcnRPdXQgPSB7XHJcbiAgc2hpcG1lbnRzOiBTaGlwbWVudFJlcG9ydHNbXVxyXG4gIHRvdGFsOiBudW1iZXJcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgU2hpcG1lbnRzTGFuZGluZ1JlcG9ydE91dCA9IHtcclxuICBzaGlwbWVudHNfbGFuZGluZzogU2hpcG1lbnRMYW5kaW5nUmVwb3J0W11cclxuICB0b3RhbDogbnVtYmVyXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIEV4dGVybmFsU2hpcG1lbnRzT3V0ID0ge1xyXG4gIGV4dGVybmFsX3NoaXBtZW50czogUmVwb3J0RXh0ZXJuYWxTaGlwbWVudFtdXHJcbiAgdG90YWw6IG51bWJlclxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBQcm9tb3Rpb25Db2RlRGlzY291bnRzT3V0ID0ge1xyXG4gIHRvdGFsOiBudW1iZXJcclxuICBwcm9tb3Rpb25fY29kZV9kaXNjb3VudHM6IFByb21vdGlvbkNvZGVEaXNjb3VudFtdXHJcbn0gfCB7XHJcbiAgdHJhbnNhY3Rpb25faWQ6IHN0cmluZ1xyXG59XHJcblxyXG5leHBvcnQgdHlwZSBGaWxlQ2hlY2tPdXQgPSB7XHJcbiAgcmVwb3J0X2ZpbGU6IHtcclxuICAgIHVzZXJfaWQ6IG51bWJlclxyXG4gICAgcm9sZV90eXBlX2xldmVsOiBudW1iZXJcclxuICAgIHR5cGU6IHN0cmluZ1xyXG4gICAgc3RhdHVzOiBudW1iZXJcclxuICAgIHByb2dyZXNzOiBudW1iZXJcclxuICAgIGZpbGVfc2l6ZTogbnVtYmVyXHJcbiAgICBmaWxlX25hbWU6IHN0cmluZyB8IG51bGxcclxuICAgIHJlcG9ydF9yZXF1ZXN0OiBRdWVyeVBhcmFtc1xyXG4gICAgdHJhbnNhY3Rpb25faWQ6IHN0cmluZ1xyXG4gICAgaGVhZGVyczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfVxyXG4gICAgdXNlcl9zZXNzaW9uOiBTZXNzaW9uXHJcbiAgICByb2xlX2NvbXBhbnlfY291bnRyeV9pZDogbnVtYmVyXHJcbiAgICB1cGRhdGVkX2F0OiBzdHJpbmdcclxuICAgIGNyZWF0ZWRfYXQ6IHN0cmluZ1xyXG4gICAgaWQ6IHN0cmluZ1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgUGFydGlhbFdpdGhkcmF3YWxzT3V0ID0ge1xyXG4gIHBhcnRpYWxfd2l0aGRyYXdhbHM6IFBhcnRpYWxXaXRoZHJhd2FsW11cclxuICB0b3RhbDogbnVtYmVyXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIEludm9pY2VzT3V0ID0ge1xyXG4gIGludm9pY2VzOiBJbnZvaWNlW11cclxuICB0b3RhbDogbnVtYmVyXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIFNhbGVzQm9va1JlcG9ydE91dCA9IHtcclxuICBzYWxlX2Jvb2tzOiBTYWxlc1tdXHJcbiAgdG90YWw6IG51bWJlclxyXG4gIHRyYW5zYWN0aW9uX2lkPzogc3RyaW5nXHJcbn1cclxuIl19
@@ -567,6 +567,21 @@ class ApiCatalogsService {
567
567
  return this.http.delete(`${this.url}/identification-types/${id}`)
568
568
  .pipe(map(({ data }) => data));
569
569
  }
570
+ /**
571
+ * Sends a POST request to validate identification type number.
572
+ *
573
+ * The request payload is sent as an object with a `body` property containing the provided
574
+ * IdentificationTypeNumberValidationIn value (i.e. { body: IdentificationTypeNumberValidationIn }). On success the HTTP response is expected
575
+ * to follow the ApiSuccess<T> shape; the operator maps that response to the inner `data`
576
+ * object and emits it as a IdentificationTypeNumberValidationOut.
577
+ *
578
+ * @param body - The identification type number validation payload to validate (IdentificationTypeNumberValidationIn).
579
+ * @returns Observable<IdentificationTypeNumberValidationOut> that emits the validate status.
580
+ */
581
+ postIdentificationtTypeNumberValidation(body) {
582
+ return this.http.post(`${this.url}/identification-types/number-validation`, body)
583
+ .pipe(map(({ data }) => data));
584
+ }
570
585
  /**
571
586
  * Fetches the extra charges based on the provided query parameters.
572
587
  *
@@ -3631,6 +3646,22 @@ class ApiReportsService {
3631
3646
  return this.http.get(`${this.url}/invoices`, { params })
3632
3647
  .pipe(map(({ data }) => data));
3633
3648
  }
3649
+ /**
3650
+ * Retrieves the sales book report based on the provided query parameters.
3651
+ *
3652
+ * @param params - The query parameters to filter or customize the report.
3653
+ * @returns An Observable that emits the sales book report data.
3654
+ *
3655
+ * @example
3656
+ * ```typescript
3657
+ * this.apiReportsService.getSalesBookReport({ page: 1, limit: 10 })
3658
+ * .subscribe(report => console.log(report));
3659
+ * ```
3660
+ */
3661
+ getSalesBookReport(params) {
3662
+ return this.http.get(`${this.url}/sales-book-report`, { params })
3663
+ .pipe(map(({ data }) => data));
3664
+ }
3634
3665
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ApiReportsService, deps: [{ token: 'env' }, { token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
3635
3666
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ApiReportsService, providedIn: 'root' });
3636
3667
  }