@decaf-ts/for-http 0.2.4 → 0.2.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +330 -19
- package/dist/for-http.cjs +34 -22
- package/dist/for-http.esm.cjs +34 -22
- package/lib/RestRepository.cjs +2 -2
- package/lib/RestRepository.d.ts +2 -2
- package/lib/RestService.cjs +25 -2
- package/lib/RestService.d.ts +25 -2
- package/lib/adapter.cjs +8 -19
- package/lib/adapter.d.ts +4 -13
- package/lib/axios/axios.cjs +12 -14
- package/lib/axios/axios.d.ts +3 -8
- package/lib/esm/RestRepository.d.ts +2 -2
- package/lib/esm/RestRepository.js +2 -2
- package/lib/esm/RestService.d.ts +25 -2
- package/lib/esm/RestService.js +25 -2
- package/lib/esm/adapter.d.ts +4 -13
- package/lib/esm/adapter.js +8 -19
- package/lib/esm/axios/axios.d.ts +3 -8
- package/lib/esm/axios/axios.js +12 -14
- package/lib/esm/index.d.ts +1 -1
- package/lib/esm/index.js +1 -1
- package/lib/index.cjs +1 -1
- package/lib/index.d.ts +1 -1
- package/package.json +4 -1
package/lib/adapter.cjs
CHANGED
|
@@ -17,6 +17,7 @@ const RestService_1 = require("./RestService.cjs");
|
|
|
17
17
|
* @param {HttpConfig} config - Configuration for the HTTP adapter
|
|
18
18
|
* @param {string} flavour - The adapter flavor identifier
|
|
19
19
|
* @param {string} [alias] - Optional alias for the adapter
|
|
20
|
+
* @class HttpAdapter
|
|
20
21
|
* @example
|
|
21
22
|
* ```typescript
|
|
22
23
|
* // Example implementation with Axios
|
|
@@ -33,12 +34,10 @@ const RestService_1 = require("./RestService.cjs");
|
|
|
33
34
|
* // Implement other abstract methods...
|
|
34
35
|
* }
|
|
35
36
|
* ```
|
|
36
|
-
* @class
|
|
37
37
|
*/
|
|
38
38
|
class HttpAdapter extends core_1.Adapter {
|
|
39
|
-
constructor(
|
|
40
|
-
super(
|
|
41
|
-
this.config = config;
|
|
39
|
+
constructor(config, flavour, alias) {
|
|
40
|
+
super(config, flavour, alias);
|
|
42
41
|
}
|
|
43
42
|
/**
|
|
44
43
|
* @description Generates operation flags with HTTP headers
|
|
@@ -78,7 +77,8 @@ class HttpAdapter extends core_1.Adapter {
|
|
|
78
77
|
const url = new URL(`${this.config.protocol}://${this.config.host}/${tableName}`);
|
|
79
78
|
if (queryParams)
|
|
80
79
|
Object.entries(queryParams).forEach(([key, value]) => url.searchParams.append(key, value.toString()));
|
|
81
|
-
|
|
80
|
+
// ensure spaces are encoded as %20 (not '+') to match expectations
|
|
81
|
+
return encodeURI(url.toString()).replace(/\+/g, "%20");
|
|
82
82
|
}
|
|
83
83
|
/**
|
|
84
84
|
* @description Parses and converts errors to BaseError type
|
|
@@ -95,17 +95,6 @@ class HttpAdapter extends core_1.Adapter {
|
|
|
95
95
|
return err;
|
|
96
96
|
}
|
|
97
97
|
}
|
|
98
|
-
/**
|
|
99
|
-
* @description Initializes the HTTP adapter
|
|
100
|
-
* @summary Placeholder method for adapter initialization. This method is currently
|
|
101
|
-
* a no-op but can be overridden by subclasses to perform initialization tasks.
|
|
102
|
-
* @param {...any[]} args - Initialization arguments
|
|
103
|
-
* @return {Promise<void>} A promise that resolves when initialization is complete
|
|
104
|
-
*/
|
|
105
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
106
|
-
async initialize(...args) {
|
|
107
|
-
// do nothing
|
|
108
|
-
}
|
|
109
98
|
/**
|
|
110
99
|
* @description Executes a raw query
|
|
111
100
|
* @summary Method for executing raw queries directly with the HTTP client.
|
|
@@ -120,7 +109,7 @@ class HttpAdapter extends core_1.Adapter {
|
|
|
120
109
|
*/
|
|
121
110
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
122
111
|
raw(rawInput, process, ...args) {
|
|
123
|
-
|
|
112
|
+
return Promise.reject(new core_1.UnsupportedError("Api is not natively available for HttpAdapters. If required, please extends this class"));
|
|
124
113
|
}
|
|
125
114
|
/**
|
|
126
115
|
* @description Creates a sequence
|
|
@@ -133,7 +122,7 @@ class HttpAdapter extends core_1.Adapter {
|
|
|
133
122
|
*/
|
|
134
123
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
135
124
|
Sequence(options) {
|
|
136
|
-
|
|
125
|
+
return Promise.reject(new core_1.UnsupportedError("Api is not natively available for HttpAdapters. If required, please extends this class"));
|
|
137
126
|
}
|
|
138
127
|
/**
|
|
139
128
|
* @description Creates a statement for querying
|
|
@@ -163,4 +152,4 @@ class HttpAdapter extends core_1.Adapter {
|
|
|
163
152
|
}
|
|
164
153
|
}
|
|
165
154
|
exports.HttpAdapter = HttpAdapter;
|
|
166
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRhcHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9hZGFwdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHlDQU93QjtBQUl4QixtREFBNEM7QUFHNUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0ErQkc7QUFDSCxNQUFzQixXQUtwQixTQUFRLGNBQW1CO0lBQzNCLFlBQ0UsTUFBUyxFQUNDLE1BQWtCLEVBQzVCLE9BQWUsRUFDZixLQUFjO1FBRWQsS0FBSyxDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFKcEIsV0FBTSxHQUFOLE1BQU0sQ0FBWTtJQUs5QixDQUFDO0lBRUQ7Ozs7Ozs7Ozs7T0FVRztJQUNNLEtBQUssQ0FDWixTQUl3QixFQUN4QixLQUFxQixFQUNyQixTQUFxQjtRQUVyQixPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBSSxTQUFTLEVBQUUsS0FBSyxFQUFFLFNBQVMsQ0FBQyxFQUFFO1lBQ2hFLE9BQU8sRUFBRSxFQUFFO1NBQ1osQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNNLFVBQVU7UUFHakIsT0FBTyx5QkFFTixDQUFDO0lBQ0osQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDTyxHQUFHLENBQ1gsU0FBaUIsRUFDakIsV0FBNkM7UUFFN0MsTUFBTSxHQUFHLEdBQUcsSUFBSSxHQUFHLENBQ2pCLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLElBQUksU0FBUyxFQUFFLENBQzdELENBQUM7UUFDRixJQUFJLFdBQVc7WUFDYixNQUFNLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUUsQ0FDbkQsR0FBRyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUMvQyxDQUFDO1FBRUosT0FBTyxTQUFTLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSCxVQUFVLENBQUMsR0FBVTtRQUNuQixNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsR0FBRyxDQUFDO1FBQ3hCLFFBQVEsT0FBTyxFQUFFLENBQUM7WUFDaEI7Z0JBQ0UsT0FBTyxHQUFnQixDQUFDO1FBQzVCLENBQUM7SUFDSCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsNkRBQTZEO0lBQzdELEtBQUssQ0FBQyxVQUFVLENBQUMsR0FBRyxJQUFXO1FBQzdCLGFBQWE7SUFDZixDQUFDO0lBNEVEOzs7Ozs7Ozs7OztPQVdHO0lBQ0gsNkRBQTZEO0lBQzdELEdBQUcsQ0FBSSxRQUFXLEVBQUUsT0FBZ0IsRUFBRSxHQUFHLElBQVc7UUFDbEQsTUFBTSxJQUFJLHVCQUFnQixDQUN4Qix3RkFBd0YsQ0FDekYsQ0FBQztJQUNKLENBQUM7SUFFRDs7Ozs7Ozs7T0FRRztJQUNILDZEQUE2RDtJQUM3RCxRQUFRLENBQUMsT0FBd0I7UUFDL0IsTUFBTSxJQUFJLHVCQUFnQixDQUN4Qix3RkFBd0YsQ0FDekYsQ0FBQztJQUNKLENBQUM7SUFFRDs7Ozs7Ozs7O09BU0c7SUFDTSxTQUFTO1FBQ2hCLE1BQU0sSUFBSSx1QkFBZ0IsQ0FDeEIsd0ZBQXdGLENBQ3pGLENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDSCw2REFBNkQ7SUFDN0QsY0FBYyxDQUFDLFNBQXlCO1FBQ3RDLE1BQU0sSUFBSSx1QkFBZ0IsQ0FDeEIsd0ZBQXdGLENBQ3pGLENBQUM7SUFDSixDQUFDO0NBQ0Y7QUF0UEQsa0NBc1BDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWRhcHRlcixcbiAgQ29uZGl0aW9uLFxuICBSZXBvc2l0b3J5LFxuICBTZXF1ZW5jZSxcbiAgU2VxdWVuY2VPcHRpb25zLFxuICBVbnN1cHBvcnRlZEVycm9yLFxufSBmcm9tIFwiQGRlY2FmLXRzL2NvcmVcIjtcbmltcG9ydCB7IEJhc2VFcnJvciwgQ29udGV4dCwgT3BlcmF0aW9uS2V5cyB9IGZyb20gXCJAZGVjYWYtdHMvZGItZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHsgSHR0cENvbmZpZywgSHR0cEZsYWdzIH0gZnJvbSBcIi4vdHlwZXNcIjtcbmltcG9ydCB7IENvbnN0cnVjdG9yLCBNb2RlbCB9IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdG9yLXZhbGlkYXRpb25cIjtcbmltcG9ydCB7IFJlc3RTZXJ2aWNlIH0gZnJvbSBcIi4vUmVzdFNlcnZpY2VcIjtcbmltcG9ydCB7IFN0YXRlbWVudCB9IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBBYnN0cmFjdCBIVFRQIGFkYXB0ZXIgZm9yIFJFU1QgQVBJIGludGVyYWN0aW9uc1xuICogQHN1bW1hcnkgUHJvdmlkZXMgYSBiYXNlIGltcGxlbWVudGF0aW9uIGZvciBIVFRQIGFkYXB0ZXJzIHdpdGggbWV0aG9kcyBmb3IgQ1JVRCBvcGVyYXRpb25zLFxuICogVVJMIGNvbnN0cnVjdGlvbiwgYW5kIGVycm9yIGhhbmRsaW5nLiBUaGlzIGNsYXNzIGV4dGVuZHMgdGhlIGNvcmUgQWRhcHRlciBjbGFzcyBhbmRcbiAqIGltcGxlbWVudHMgdGhlIG5lY2Vzc2FyeSBtZXRob2RzIGZvciBIVFRQIGNvbW11bmljYXRpb24uIENvbmNyZXRlIGltcGxlbWVudGF0aW9uc1xuICogbXVzdCBwcm92aWRlIHNwZWNpZmljIEhUVFAgY2xpZW50IGZ1bmN0aW9uYWxpdHkuXG4gKiBAdGVtcGxhdGUgWSAtIFRoZSBuYXRpdmUgSFRUUCBjbGllbnQgdHlwZVxuICogQHRlbXBsYXRlIFEgLSBUaGUgcXVlcnkgdHlwZSB1c2VkIGJ5IHRoZSBhZGFwdGVyXG4gKiBAdGVtcGxhdGUgRiAtIFRoZSBIVFRQIGZsYWdzIHR5cGUsIGV4dGVuZGluZyBIdHRwRmxhZ3NcbiAqIEB0ZW1wbGF0ZSBDIC0gVGhlIGNvbnRleHQgdHlwZSwgZXh0ZW5kaW5nIENvbnRleHQ8Rj5cbiAqIEBwYXJhbSB7WX0gbmF0aXZlIC0gVGhlIG5hdGl2ZSBIVFRQIGNsaWVudCBpbnN0YW5jZVxuICogQHBhcmFtIHtIdHRwQ29uZmlnfSBjb25maWcgLSBDb25maWd1cmF0aW9uIGZvciB0aGUgSFRUUCBhZGFwdGVyXG4gKiBAcGFyYW0ge3N0cmluZ30gZmxhdm91ciAtIFRoZSBhZGFwdGVyIGZsYXZvciBpZGVudGlmaWVyXG4gKiBAcGFyYW0ge3N0cmluZ30gW2FsaWFzXSAtIE9wdGlvbmFsIGFsaWFzIGZvciB0aGUgYWRhcHRlclxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIC8vIEV4YW1wbGUgaW1wbGVtZW50YXRpb24gd2l0aCBBeGlvc1xuICogY2xhc3MgQXhpb3NBZGFwdGVyIGV4dGVuZHMgSHR0cEFkYXB0ZXI8QXhpb3NJbnN0YW5jZSwgQXhpb3NSZXF1ZXN0Q29uZmlnPiB7XG4gKiAgIGNvbnN0cnVjdG9yKGNvbmZpZzogSHR0cENvbmZpZykge1xuICogICAgIHN1cGVyKGF4aW9zLmNyZWF0ZSgpLCBjb25maWcsICdheGlvcycpO1xuICogICB9XG4gKlxuICogICBhc3luYyByZXF1ZXN0PFY+KGRldGFpbHM6IEF4aW9zUmVxdWVzdENvbmZpZyk6IFByb21pc2U8Vj4ge1xuICogICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5uYXRpdmUucmVxdWVzdChkZXRhaWxzKTtcbiAqICAgICByZXR1cm4gcmVzcG9uc2UuZGF0YTtcbiAqICAgfVxuICpcbiAqICAgLy8gSW1wbGVtZW50IG90aGVyIGFic3RyYWN0IG1ldGhvZHMuLi5cbiAqIH1cbiAqIGBgYFxuICogQGNsYXNzXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBIdHRwQWRhcHRlcjxcbiAgWSxcbiAgUSxcbiAgRiBleHRlbmRzIEh0dHBGbGFncyA9IEh0dHBGbGFncyxcbiAgQyBleHRlbmRzIENvbnRleHQ8Rj4gPSBDb250ZXh0PEY+LFxuPiBleHRlbmRzIEFkYXB0ZXI8WSwgUSwgRiwgQz4ge1xuICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoXG4gICAgbmF0aXZlOiBZLFxuICAgIHByb3RlY3RlZCBjb25maWc6IEh0dHBDb25maWcsXG4gICAgZmxhdm91cjogc3RyaW5nLFxuICAgIGFsaWFzPzogc3RyaW5nXG4gICkge1xuICAgIHN1cGVyKG5hdGl2ZSwgZmxhdm91ciwgYWxpYXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBHZW5lcmF0ZXMgb3BlcmF0aW9uIGZsYWdzIHdpdGggSFRUUCBoZWFkZXJzXG4gICAqIEBzdW1tYXJ5IEV4dGVuZHMgdGhlIGJhc2UgZmxhZ3MgbWV0aG9kIHRvIGluY2x1ZGUgSFRUUC1zcGVjaWZpYyBoZWFkZXJzIGZvciBvcGVyYXRpb25zLlxuICAgKiBUaGlzIG1ldGhvZCBhZGRzIGFuIGVtcHR5IGhlYWRlcnMgb2JqZWN0IHRvIHRoZSBmbGFncyByZXR1cm5lZCBieSB0aGUgcGFyZW50IGNsYXNzLlxuICAgKiBAdGVtcGxhdGUgRiAtIFRoZSBSZXBvc2l0b3J5IEZsYWdzIHR5cGVcbiAgICogQHRlbXBsYXRlIE0gLSBUaGUgbW9kZWwgdHlwZVxuICAgKiBAcGFyYW0ge09wZXJhdGlvbktleXMuQ1JFQVRFfE9wZXJhdGlvbktleXMuUkVBRHxPcGVyYXRpb25LZXlzLlVQREFURXxPcGVyYXRpb25LZXlzLkRFTEVURX0gb3BlcmF0aW9uIC0gVGhlIG9wZXJhdGlvbiB0eXBlXG4gICAqIEBwYXJhbSB7Q29uc3RydWN0b3I8TT59IG1vZGVsIC0gVGhlIG1vZGVsIGNvbnN0cnVjdG9yXG4gICAqIEBwYXJhbSB7UGFydGlhbDxGPn0gb3ZlcnJpZGVzIC0gT3B0aW9uYWwgZmxhZyBvdmVycmlkZXNcbiAgICogQHJldHVybiB7Rn0gVGhlIGZsYWdzIG9iamVjdCB3aXRoIGhlYWRlcnNcbiAgICovXG4gIG92ZXJyaWRlIGZsYWdzPE0gZXh0ZW5kcyBNb2RlbD4oXG4gICAgb3BlcmF0aW9uOlxuICAgICAgfCBPcGVyYXRpb25LZXlzLkNSRUFURVxuICAgICAgfCBPcGVyYXRpb25LZXlzLlJFQURcbiAgICAgIHwgT3BlcmF0aW9uS2V5cy5VUERBVEVcbiAgICAgIHwgT3BlcmF0aW9uS2V5cy5ERUxFVEUsXG4gICAgbW9kZWw6IENvbnN0cnVjdG9yPE0+LFxuICAgIG92ZXJyaWRlczogUGFydGlhbDxGPlxuICApIHtcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihzdXBlci5mbGFnczxNPihvcGVyYXRpb24sIG1vZGVsLCBvdmVycmlkZXMpLCB7XG4gICAgICBoZWFkZXJzOiB7fSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gUmV0dXJucyB0aGUgcmVwb3NpdG9yeSBjb25zdHJ1Y3RvciBmb3IgdGhpcyBhZGFwdGVyXG4gICAqIEBzdW1tYXJ5IFByb3ZpZGVzIHRoZSBSZXN0U2VydmljZSBjbGFzcyBhcyB0aGUgcmVwb3NpdG9yeSBpbXBsZW1lbnRhdGlvbiBmb3IgdGhpcyBIVFRQIGFkYXB0ZXIuXG4gICAqIFRoaXMgbWV0aG9kIGlzIHVzZWQgdG8gY3JlYXRlIHJlcG9zaXRvcnkgaW5zdGFuY2VzIHRoYXQgd29yayB3aXRoIHRoaXMgYWRhcHRlciB0eXBlLlxuICAgKiBAdGVtcGxhdGUgTSAtIFRoZSBtb2RlbCB0eXBlXG4gICAqIEByZXR1cm4ge0NvbnN0cnVjdG9yPFJlcG9zaXRvcnk8TSwgUSwgSHR0cEFkYXB0ZXI8WSwgUSwgRiwgQz4sIEYsIEM+Pn0gVGhlIHJlcG9zaXRvcnkgY29uc3RydWN0b3JcbiAgICovXG4gIG92ZXJyaWRlIHJlcG9zaXRvcnk8TSBleHRlbmRzIE1vZGVsPigpOiBDb25zdHJ1Y3RvcjxcbiAgICBSZXBvc2l0b3J5PE0sIFEsIEh0dHBBZGFwdGVyPFksIFEsIEYsIEM+LCBGLCBDPlxuICA+IHtcbiAgICByZXR1cm4gUmVzdFNlcnZpY2UgYXMgdW5rbm93biBhcyBDb25zdHJ1Y3RvcjxcbiAgICAgIFJlcG9zaXRvcnk8TSwgUSwgSHR0cEFkYXB0ZXI8WSwgUSwgRiwgQz4sIEYsIEM+XG4gICAgPjtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gQ29uc3RydWN0cyBhIFVSTCBmb3IgQVBJIHJlcXVlc3RzXG4gICAqIEBzdW1tYXJ5IEJ1aWxkcyBhIGNvbXBsZXRlIFVSTCBmb3IgQVBJIHJlcXVlc3RzIHVzaW5nIHRoZSBjb25maWd1cmVkIHByb3RvY29sIGFuZCBob3N0LFxuICAgKiB0aGUgc3BlY2lmaWVkIHRhYmxlIG5hbWUsIGFuZCBvcHRpb25hbCBxdWVyeSBwYXJhbWV0ZXJzLiBUaGUgbWV0aG9kIGhhbmRsZXMgVVJMIGVuY29kaW5nLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdGFibGVOYW1lIC0gVGhlIG5hbWUgb2YgdGhlIHRhYmxlIG9yIGVuZHBvaW50XG4gICAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgc3RyaW5nIHwgbnVtYmVyPn0gW3F1ZXJ5UGFyYW1zXSAtIE9wdGlvbmFsIHF1ZXJ5IHBhcmFtZXRlcnNcbiAgICogQHJldHVybiB7c3RyaW5nfSBUaGUgZW5jb2RlZCBVUkwgc3RyaW5nXG4gICAqL1xuICBwcm90ZWN0ZWQgdXJsKFxuICAgIHRhYmxlTmFtZTogc3RyaW5nLFxuICAgIHF1ZXJ5UGFyYW1zPzogUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgbnVtYmVyPlxuICApIHtcbiAgICBjb25zdCB1cmwgPSBuZXcgVVJMKFxuICAgICAgYCR7dGhpcy5jb25maWcucHJvdG9jb2x9Oi8vJHt0aGlzLmNvbmZpZy5ob3N0fS8ke3RhYmxlTmFtZX1gXG4gICAgKTtcbiAgICBpZiAocXVlcnlQYXJhbXMpXG4gICAgICBPYmplY3QuZW50cmllcyhxdWVyeVBhcmFtcykuZm9yRWFjaCgoW2tleSwgdmFsdWVdKSA9PlxuICAgICAgICB1cmwuc2VhcmNoUGFyYW1zLmFwcGVuZChrZXksIHZhbHVlLnRvU3RyaW5nKCkpXG4gICAgICApO1xuXG4gICAgcmV0dXJuIGVuY29kZVVSSSh1cmwudG9TdHJpbmcoKSk7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFBhcnNlcyBhbmQgY29udmVydHMgZXJyb3JzIHRvIEJhc2VFcnJvciB0eXBlXG4gICAqIEBzdW1tYXJ5IFByb2Nlc3NlcyBlcnJvcnMgdGhhdCBvY2N1ciBkdXJpbmcgSFRUUCBvcGVyYXRpb25zIGFuZCBjb252ZXJ0cyB0aGVtIHRvXG4gICAqIHRoZSBhcHByb3ByaWF0ZSBCYXNlRXJyb3IgdHlwZS4gQ3VycmVudGx5IHJldHVybnMgdGhlIGVycm9yIGFzLWlzLCBidXQgY2FuIGJlXG4gICAqIGV4dGVuZGVkIHRvIGhhbmRsZSBzcGVjaWZpYyBlcnJvciBtZXNzYWdlcyBkaWZmZXJlbnRseS5cbiAgICogQHBhcmFtIHtFcnJvcn0gZXJyIC0gVGhlIGVycm9yIHRvIHBhcnNlXG4gICAqIEByZXR1cm4ge0Jhc2VFcnJvcn0gVGhlIHBhcnNlZCBlcnJvciBhcyBhIEJhc2VFcnJvclxuICAgKi9cbiAgcGFyc2VFcnJvcihlcnI6IEVycm9yKTogQmFzZUVycm9yIHtcbiAgICBjb25zdCB7IG1lc3NhZ2UgfSA9IGVycjtcbiAgICBzd2l0Y2ggKG1lc3NhZ2UpIHtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiBlcnIgYXMgQmFzZUVycm9yO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gSW5pdGlhbGl6ZXMgdGhlIEhUVFAgYWRhcHRlclxuICAgKiBAc3VtbWFyeSBQbGFjZWhvbGRlciBtZXRob2QgZm9yIGFkYXB0ZXIgaW5pdGlhbGl6YXRpb24uIFRoaXMgbWV0aG9kIGlzIGN1cnJlbnRseVxuICAgKiBhIG5vLW9wIGJ1dCBjYW4gYmUgb3ZlcnJpZGRlbiBieSBzdWJjbGFzc2VzIHRvIHBlcmZvcm0gaW5pdGlhbGl6YXRpb24gdGFza3MuXG4gICAqIEBwYXJhbSB7Li4uYW55W119IGFyZ3MgLSBJbml0aWFsaXphdGlvbiBhcmd1bWVudHNcbiAgICogQHJldHVybiB7UHJvbWlzZTx2b2lkPn0gQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiBpbml0aWFsaXphdGlvbiBpcyBjb21wbGV0ZVxuICAgKi9cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICBhc3luYyBpbml0aWFsaXplKC4uLmFyZ3M6IGFueVtdKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgLy8gZG8gbm90aGluZ1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBTZW5kcyBhbiBIVFRQIHJlcXVlc3RcbiAgICogQHN1bW1hcnkgQWJzdHJhY3QgbWV0aG9kIHRoYXQgbXVzdCBiZSBpbXBsZW1lbnRlZCBieSBzdWJjbGFzc2VzIHRvIHNlbmQgSFRUUCByZXF1ZXN0c1xuICAgKiB1c2luZyB0aGUgbmF0aXZlIEhUVFAgY2xpZW50LiBUaGlzIGlzIHRoZSBjb3JlIG1ldGhvZCBmb3IgbWFraW5nIEFQSSBjYWxscy5cbiAgICogQHRlbXBsYXRlIFYgLSBUaGUgcmVzcG9uc2UgdmFsdWUgdHlwZVxuICAgKiBAcGFyYW0ge1F9IGRldGFpbHMgLSBUaGUgcmVxdWVzdCBkZXRhaWxzIHNwZWNpZmljIHRvIHRoZSBIVFRQIGNsaWVudFxuICAgKiBAcmV0dXJuIHtQcm9taXNlPFY+fSBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aXRoIHRoZSByZXNwb25zZSBkYXRhXG4gICAqL1xuICBhYnN0cmFjdCByZXF1ZXN0PFY+KGRldGFpbHM6IFEpOiBQcm9taXNlPFY+O1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gQ3JlYXRlcyBhIG5ldyByZXNvdXJjZVxuICAgKiBAc3VtbWFyeSBBYnN0cmFjdCBtZXRob2QgdGhhdCBtdXN0IGJlIGltcGxlbWVudGVkIGJ5IHN1YmNsYXNzZXMgdG8gY3JlYXRlIGEgbmV3IHJlc291cmNlXG4gICAqIHZpYSBIVFRQLiBUaGlzIHR5cGljYWxseSBjb3JyZXNwb25kcyB0byBhIFBPU1QgcmVxdWVzdC5cbiAgICogQHBhcmFtIHtzdHJpbmd9IHRhYmxlTmFtZSAtIFRoZSBuYW1lIG9mIHRoZSB0YWJsZSBvciBlbmRwb2ludFxuICAgKiBAcGFyYW0ge3N0cmluZ3xudW1iZXJ9IGlkIC0gVGhlIGlkZW50aWZpZXIgZm9yIHRoZSByZXNvdXJjZVxuICAgKiBAcGFyYW0ge1JlY29yZDxzdHJpbmcsIGFueT59IG1vZGVsIC0gVGhlIGRhdGEgbW9kZWwgdG8gY3JlYXRlXG4gICAqIEBwYXJhbSB7Li4uYW55W119IGFyZ3MgLSBBZGRpdGlvbmFsIGFyZ3VtZW50c1xuICAgKiBAcmV0dXJuIHtQcm9taXNlPFJlY29yZDxzdHJpbmcsIGFueT4+fSBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aXRoIHRoZSBjcmVhdGVkIHJlc291cmNlXG4gICAqL1xuICBhYnN0cmFjdCBvdmVycmlkZSBjcmVhdGUoXG4gICAgdGFibGVOYW1lOiBzdHJpbmcsXG4gICAgaWQ6IHN0cmluZyB8IG51bWJlcixcbiAgICBtb2RlbDogUmVjb3JkPHN0cmluZywgYW55PixcbiAgICAuLi5hcmdzOiBhbnlbXVxuICApOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIGFueT4+O1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gUmV0cmlldmVzIGEgcmVzb3VyY2UgYnkgSURcbiAgICogQHN1bW1hcnkgQWJzdHJhY3QgbWV0aG9kIHRoYXQgbXVzdCBiZSBpbXBsZW1lbnRlZCBieSBzdWJjbGFzc2VzIHRvIHJldHJpZXZlIGEgcmVzb3VyY2VcbiAgICogdmlhIEhUVFAuIFRoaXMgdHlwaWNhbGx5IGNvcnJlc3BvbmRzIHRvIGEgR0VUIHJlcXVlc3QuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB0YWJsZU5hbWUgLSBUaGUgbmFtZSBvZiB0aGUgdGFibGUgb3IgZW5kcG9pbnRcbiAgICogQHBhcmFtIHtzdHJpbmd8bnVtYmVyfGJpZ2ludH0gaWQgLSBUaGUgaWRlbnRpZmllciBmb3IgdGhlIHJlc291cmNlXG4gICAqIEBwYXJhbSB7Li4uYW55W119IGFyZ3MgLSBBZGRpdGlvbmFsIGFyZ3VtZW50c1xuICAgKiBAcmV0dXJuIHtQcm9taXNlPFJlY29yZDxzdHJpbmcsIGFueT4+fSBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aXRoIHRoZSByZXRyaWV2ZWQgcmVzb3VyY2VcbiAgICovXG4gIGFic3RyYWN0IG92ZXJyaWRlIHJlYWQoXG4gICAgdGFibGVOYW1lOiBzdHJpbmcsXG4gICAgaWQ6IHN0cmluZyB8IG51bWJlciB8IGJpZ2ludCxcbiAgICAuLi5hcmdzOiBhbnlbXVxuICApOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIGFueT4+O1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gVXBkYXRlcyBhbiBleGlzdGluZyByZXNvdXJjZVxuICAgKiBAc3VtbWFyeSBBYnN0cmFjdCBtZXRob2QgdGhhdCBtdXN0IGJlIGltcGxlbWVudGVkIGJ5IHN1YmNsYXNzZXMgdG8gdXBkYXRlIGEgcmVzb3VyY2VcbiAgICogdmlhIEhUVFAuIFRoaXMgdHlwaWNhbGx5IGNvcnJlc3BvbmRzIHRvIGEgUFVUIG9yIFBBVENIIHJlcXVlc3QuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB0YWJsZU5hbWUgLSBUaGUgbmFtZSBvZiB0aGUgdGFibGUgb3IgZW5kcG9pbnRcbiAgICogQHBhcmFtIHtzdHJpbmd8bnVtYmVyfSBpZCAtIFRoZSBpZGVudGlmaWVyIGZvciB0aGUgcmVzb3VyY2VcbiAgICogQHBhcmFtIHtSZWNvcmQ8c3RyaW5nLCBhbnk+fSBtb2RlbCAtIFRoZSB1cGRhdGVkIGRhdGEgbW9kZWxcbiAgICogQHBhcmFtIHsuLi5hbnlbXX0gYXJncyAtIEFkZGl0aW9uYWwgYXJndW1lbnRzXG4gICAqIEByZXR1cm4ge1Byb21pc2U8UmVjb3JkPHN0cmluZywgYW55Pj59IEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHdpdGggdGhlIHVwZGF0ZWQgcmVzb3VyY2VcbiAgICovXG4gIGFic3RyYWN0IG92ZXJyaWRlIHVwZGF0ZShcbiAgICB0YWJsZU5hbWU6IHN0cmluZyxcbiAgICBpZDogc3RyaW5nIHwgbnVtYmVyLFxuICAgIG1vZGVsOiBSZWNvcmQ8c3RyaW5nLCBhbnk+LFxuICAgIC4uLmFyZ3M6IGFueVtdXG4gICk6IFByb21pc2U8UmVjb3JkPHN0cmluZywgYW55Pj47XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBEZWxldGVzIGEgcmVzb3VyY2UgYnkgSURcbiAgICogQHN1bW1hcnkgQWJzdHJhY3QgbWV0aG9kIHRoYXQgbXVzdCBiZSBpbXBsZW1lbnRlZCBieSBzdWJjbGFzc2VzIHRvIGRlbGV0ZSBhIHJlc291cmNlXG4gICAqIHZpYSBIVFRQLiBUaGlzIHR5cGljYWxseSBjb3JyZXNwb25kcyB0byBhIERFTEVURSByZXF1ZXN0LlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdGFibGVOYW1lIC0gVGhlIG5hbWUgb2YgdGhlIHRhYmxlIG9yIGVuZHBvaW50XG4gICAqIEBwYXJhbSB7c3RyaW5nfG51bWJlcnxiaWdpbnR9IGlkIC0gVGhlIGlkZW50aWZpZXIgZm9yIHRoZSByZXNvdXJjZSB0byBkZWxldGVcbiAgICogQHBhcmFtIHsuLi5hbnlbXX0gYXJncyAtIEFkZGl0aW9uYWwgYXJndW1lbnRzXG4gICAqIEByZXR1cm4ge1Byb21pc2U8UmVjb3JkPHN0cmluZywgYW55Pj59IEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHdpdGggdGhlIGRlbGV0aW9uIHJlc3VsdFxuICAgKi9cbiAgYWJzdHJhY3Qgb3ZlcnJpZGUgZGVsZXRlKFxuICAgIHRhYmxlTmFtZTogc3RyaW5nLFxuICAgIGlkOiBzdHJpbmcgfCBudW1iZXIgfCBiaWdpbnQsXG4gICAgLi4uYXJnczogYW55W11cbiAgKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBhbnk+PjtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEV4ZWN1dGVzIGEgcmF3IHF1ZXJ5XG4gICAqIEBzdW1tYXJ5IE1ldGhvZCBmb3IgZXhlY3V0aW5nIHJhdyBxdWVyaWVzIGRpcmVjdGx5IHdpdGggdGhlIEhUVFAgY2xpZW50LlxuICAgKiBUaGlzIG1ldGhvZCBpcyBub3Qgc3VwcG9ydGVkIGJ5IGRlZmF1bHQgaW4gSFRUUCBhZGFwdGVycyBhbmQgdGhyb3dzIGFuIFVuc3VwcG9ydGVkRXJyb3IuXG4gICAqIFN1YmNsYXNzZXMgY2FuIG92ZXJyaWRlIHRoaXMgbWV0aG9kIHRvIHByb3ZpZGUgaW1wbGVtZW50YXRpb24uXG4gICAqIEB0ZW1wbGF0ZSBSIC0gVGhlIHJlc3VsdCB0eXBlXG4gICAqIEBwYXJhbSB7UX0gcmF3SW5wdXQgLSBUaGUgcmF3IHF1ZXJ5IGlucHV0XG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gcHJvY2VzcyAtIFdoZXRoZXIgdG8gcHJvY2VzcyB0aGUgcmVzdWx0XG4gICAqIEBwYXJhbSB7Li4uYW55W119IGFyZ3MgLSBBZGRpdGlvbmFsIGFyZ3VtZW50c1xuICAgKiBAcmV0dXJuIHtQcm9taXNlPFI+fSBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aXRoIHRoZSBxdWVyeSByZXN1bHRcbiAgICogQHRocm93cyB7VW5zdXBwb3J0ZWRFcnJvcn0gQWx3YXlzIHRocm93cyBhcyB0aGlzIG1ldGhvZCBpcyBub3Qgc3VwcG9ydGVkIGJ5IGRlZmF1bHRcbiAgICovXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgcmF3PFI+KHJhd0lucHV0OiBRLCBwcm9jZXNzOiBib29sZWFuLCAuLi5hcmdzOiBhbnlbXSk6IFByb21pc2U8Uj4ge1xuICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZEVycm9yKFxuICAgICAgXCJBcGkgaXMgbm90IG5hdGl2ZWx5IGF2YWlsYWJsZSBmb3IgSHR0cEFkYXB0ZXJzLiBJZiByZXF1aXJlZCwgcGxlYXNlIGV4dGVuZHMgdGhpcyBjbGFzc1wiXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gQ3JlYXRlcyBhIHNlcXVlbmNlXG4gICAqIEBzdW1tYXJ5IE1ldGhvZCBmb3IgY3JlYXRpbmcgYSBzZXF1ZW5jZSBmb3IgZ2VuZXJhdGluZyB1bmlxdWUgaWRlbnRpZmllcnMuXG4gICAqIFRoaXMgbWV0aG9kIGlzIG5vdCBzdXBwb3J0ZWQgYnkgZGVmYXVsdCBpbiBIVFRQIGFkYXB0ZXJzIGFuZCB0aHJvd3MgYW4gVW5zdXBwb3J0ZWRFcnJvci5cbiAgICogU3ViY2xhc3NlcyBjYW4gb3ZlcnJpZGUgdGhpcyBtZXRob2QgdG8gcHJvdmlkZSBpbXBsZW1lbnRhdGlvbi5cbiAgICogQHBhcmFtIHtTZXF1ZW5jZU9wdGlvbnN9IG9wdGlvbnMgLSBPcHRpb25zIGZvciBjcmVhdGluZyB0aGUgc2VxdWVuY2VcbiAgICogQHJldHVybiB7UHJvbWlzZTxTZXF1ZW5jZT59IEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHdpdGggdGhlIGNyZWF0ZWQgc2VxdWVuY2VcbiAgICogQHRocm93cyB7VW5zdXBwb3J0ZWRFcnJvcn0gQWx3YXlzIHRocm93cyBhcyB0aGlzIG1ldGhvZCBpcyBub3Qgc3VwcG9ydGVkIGJ5IGRlZmF1bHRcbiAgICovXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgU2VxdWVuY2Uob3B0aW9uczogU2VxdWVuY2VPcHRpb25zKTogUHJvbWlzZTxTZXF1ZW5jZT4ge1xuICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZEVycm9yKFxuICAgICAgXCJBcGkgaXMgbm90IG5hdGl2ZWx5IGF2YWlsYWJsZSBmb3IgSHR0cEFkYXB0ZXJzLiBJZiByZXF1aXJlZCwgcGxlYXNlIGV4dGVuZHMgdGhpcyBjbGFzc1wiXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gQ3JlYXRlcyBhIHN0YXRlbWVudCBmb3IgcXVlcnlpbmdcbiAgICogQHN1bW1hcnkgTWV0aG9kIGZvciBjcmVhdGluZyBhIHN0YXRlbWVudCBmb3IgYnVpbGRpbmcgYW5kIGV4ZWN1dGluZyBxdWVyaWVzLlxuICAgKiBUaGlzIG1ldGhvZCBpcyBub3Qgc3VwcG9ydGVkIGJ5IGRlZmF1bHQgaW4gSFRUUCBhZGFwdGVycyBhbmQgdGhyb3dzIGFuIFVuc3VwcG9ydGVkRXJyb3IuXG4gICAqIFN1YmNsYXNzZXMgY2FuIG92ZXJyaWRlIHRoaXMgbWV0aG9kIHRvIHByb3ZpZGUgaW1wbGVtZW50YXRpb24uXG4gICAqIEB0ZW1wbGF0ZSBNIC0gVGhlIG1vZGVsIHR5cGVcbiAgICogQHRlbXBsYXRlICEgLSBUaGUgcmF3IHF1ZXJ5IHR5cGVcbiAgICogQHJldHVybiB7U3RhdGVtZW50PFEsIE0sIGFueT59IEEgc3RhdGVtZW50IG9iamVjdCBmb3IgYnVpbGRpbmcgcXVlcmllc1xuICAgKiBAdGhyb3dzIHtVbnN1cHBvcnRlZEVycm9yfSBBbHdheXMgdGhyb3dzIGFzIHRoaXMgbWV0aG9kIGlzIG5vdCBzdXBwb3J0ZWQgYnkgZGVmYXVsdFxuICAgKi9cbiAgb3ZlcnJpZGUgU3RhdGVtZW50PE0gZXh0ZW5kcyBNb2RlbD4oKTogU3RhdGVtZW50PFEsIE0sIGFueT4ge1xuICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZEVycm9yKFxuICAgICAgXCJBcGkgaXMgbm90IG5hdGl2ZWx5IGF2YWlsYWJsZSBmb3IgSHR0cEFkYXB0ZXJzLiBJZiByZXF1aXJlZCwgcGxlYXNlIGV4dGVuZHMgdGhpcyBjbGFzc1wiXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gUGFyc2VzIGEgY29uZGl0aW9uIGludG8gYSBxdWVyeVxuICAgKiBAc3VtbWFyeSBNZXRob2QgZm9yIHBhcnNpbmcgYSBjb25kaXRpb24gb2JqZWN0IGludG8gYSBxdWVyeSBmb3JtYXQgdW5kZXJzdG9vZCBieSB0aGUgSFRUUCBjbGllbnQuXG4gICAqIFRoaXMgbWV0aG9kIGlzIG5vdCBzdXBwb3J0ZWQgYnkgZGVmYXVsdCBpbiBIVFRQIGFkYXB0ZXJzIGFuZCB0aHJvd3MgYW4gVW5zdXBwb3J0ZWRFcnJvci5cbiAgICogU3ViY2xhc3NlcyBjYW4gb3ZlcnJpZGUgdGhpcyBtZXRob2QgdG8gcHJvdmlkZSBpbXBsZW1lbnRhdGlvbi5cbiAgICogQHBhcmFtIHtDb25kaXRpb248YW55Pn0gY29uZGl0aW9uIC0gVGhlIGNvbmRpdGlvbiB0byBwYXJzZVxuICAgKiBAcmV0dXJuIHtRfSBUaGUgcGFyc2VkIHF1ZXJ5XG4gICAqIEB0aHJvd3Mge1Vuc3VwcG9ydGVkRXJyb3J9IEFsd2F5cyB0aHJvd3MgYXMgdGhpcyBtZXRob2QgaXMgbm90IHN1cHBvcnRlZCBieSBkZWZhdWx0XG4gICAqL1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gIHBhcnNlQ29uZGl0aW9uKGNvbmRpdGlvbjogQ29uZGl0aW9uPGFueT4pOiBRIHtcbiAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRFcnJvcihcbiAgICAgIFwiQXBpIGlzIG5vdCBuYXRpdmVseSBhdmFpbGFibGUgZm9yIEh0dHBBZGFwdGVycy4gSWYgcmVxdWlyZWQsIHBsZWFzZSBleHRlbmRzIHRoaXMgY2xhc3NcIlxuICAgICk7XG4gIH1cbn1cbiJdfQ==
|
|
155
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRhcHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9hZGFwdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHlDQU93QjtBQUl4QixtREFBNEM7QUFHNUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0ErQkc7QUFDSCxNQUFzQixXQU1wQixTQUFRLGNBQXdCO0lBQ2hDLFlBQXNCLE1BQVMsRUFBRSxPQUFlLEVBQUUsS0FBYztRQUM5RCxLQUFLLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7T0FVRztJQUNNLEtBQUssQ0FDWixTQUl3QixFQUN4QixLQUFxQixFQUNyQixTQUFxQjtRQUVyQixPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBSSxTQUFTLEVBQUUsS0FBSyxFQUFFLFNBQVMsQ0FBQyxFQUFFO1lBQ2hFLE9BQU8sRUFBRSxFQUFFO1NBQ1osQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNNLFVBQVU7UUFHakIsT0FBTyx5QkFFTixDQUFDO0lBQ0osQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDTyxHQUFHLENBQ1gsU0FBaUIsRUFDakIsV0FBNkM7UUFFN0MsTUFBTSxHQUFHLEdBQUcsSUFBSSxHQUFHLENBQ2pCLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLElBQUksU0FBUyxFQUFFLENBQzdELENBQUM7UUFDRixJQUFJLFdBQVc7WUFDYixNQUFNLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUUsQ0FDbkQsR0FBRyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUMvQyxDQUFDO1FBRUosbUVBQW1FO1FBQ25FLE9BQU8sU0FBUyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSCxVQUFVLENBQUMsR0FBVTtRQUNuQixNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsR0FBRyxDQUFDO1FBQ3hCLFFBQVEsT0FBTyxFQUFFLENBQUM7WUFDaEI7Z0JBQ0UsT0FBTyxHQUFnQixDQUFDO1FBQzVCLENBQUM7SUFDSCxDQUFDO0lBNEVEOzs7Ozs7Ozs7OztPQVdHO0lBQ0gsNkRBQTZEO0lBQzdELEdBQUcsQ0FBSSxRQUFXLEVBQUUsT0FBZ0IsRUFBRSxHQUFHLElBQVc7UUFDbEQsT0FBTyxPQUFPLENBQUMsTUFBTSxDQUNuQixJQUFJLHVCQUFnQixDQUNsQix3RkFBd0YsQ0FDekYsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUVEOzs7Ozs7OztPQVFHO0lBQ0gsNkRBQTZEO0lBQzdELFFBQVEsQ0FBQyxPQUF3QjtRQUMvQixPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQ25CLElBQUksdUJBQWdCLENBQ2xCLHdGQUF3RixDQUN6RixDQUNGLENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7Ozs7OztPQVNHO0lBQ00sU0FBUztRQUNoQixNQUFNLElBQUksdUJBQWdCLENBQ3hCLHdGQUF3RixDQUN6RixDQUFDO0lBQ0osQ0FBQztJQUVEOzs7Ozs7OztPQVFHO0lBQ0gsNkRBQTZEO0lBQzdELGNBQWMsQ0FBQyxTQUF5QjtRQUN0QyxNQUFNLElBQUksdUJBQWdCLENBQ3hCLHdGQUF3RixDQUN6RixDQUFDO0lBQ0osQ0FBQztDQUNGO0FBM09ELGtDQTJPQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFkYXB0ZXIsXG4gIENvbmRpdGlvbixcbiAgUmVwb3NpdG9yeSxcbiAgU2VxdWVuY2UsXG4gIFNlcXVlbmNlT3B0aW9ucyxcbiAgVW5zdXBwb3J0ZWRFcnJvcixcbn0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG5pbXBvcnQgeyBCYXNlRXJyb3IsIENvbnRleHQsIE9wZXJhdGlvbktleXMgfSBmcm9tIFwiQGRlY2FmLXRzL2RiLWRlY29yYXRvcnNcIjtcbmltcG9ydCB7IEh0dHBDb25maWcsIEh0dHBGbGFncyB9IGZyb20gXCIuL3R5cGVzXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3RvciwgTW9kZWwgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRvci12YWxpZGF0aW9uXCI7XG5pbXBvcnQgeyBSZXN0U2VydmljZSB9IGZyb20gXCIuL1Jlc3RTZXJ2aWNlXCI7XG5pbXBvcnQgeyBTdGF0ZW1lbnQgfSBmcm9tIFwiQGRlY2FmLXRzL2NvcmVcIjtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gQWJzdHJhY3QgSFRUUCBhZGFwdGVyIGZvciBSRVNUIEFQSSBpbnRlcmFjdGlvbnNcbiAqIEBzdW1tYXJ5IFByb3ZpZGVzIGEgYmFzZSBpbXBsZW1lbnRhdGlvbiBmb3IgSFRUUCBhZGFwdGVycyB3aXRoIG1ldGhvZHMgZm9yIENSVUQgb3BlcmF0aW9ucyxcbiAqIFVSTCBjb25zdHJ1Y3Rpb24sIGFuZCBlcnJvciBoYW5kbGluZy4gVGhpcyBjbGFzcyBleHRlbmRzIHRoZSBjb3JlIEFkYXB0ZXIgY2xhc3MgYW5kXG4gKiBpbXBsZW1lbnRzIHRoZSBuZWNlc3NhcnkgbWV0aG9kcyBmb3IgSFRUUCBjb21tdW5pY2F0aW9uLiBDb25jcmV0ZSBpbXBsZW1lbnRhdGlvbnNcbiAqIG11c3QgcHJvdmlkZSBzcGVjaWZpYyBIVFRQIGNsaWVudCBmdW5jdGlvbmFsaXR5LlxuICogQHRlbXBsYXRlIFkgLSBUaGUgbmF0aXZlIEhUVFAgY2xpZW50IHR5cGVcbiAqIEB0ZW1wbGF0ZSBRIC0gVGhlIHF1ZXJ5IHR5cGUgdXNlZCBieSB0aGUgYWRhcHRlclxuICogQHRlbXBsYXRlIEYgLSBUaGUgSFRUUCBmbGFncyB0eXBlLCBleHRlbmRpbmcgSHR0cEZsYWdzXG4gKiBAdGVtcGxhdGUgQyAtIFRoZSBjb250ZXh0IHR5cGUsIGV4dGVuZGluZyBDb250ZXh0PEY+XG4gKiBAcGFyYW0ge1l9IG5hdGl2ZSAtIFRoZSBuYXRpdmUgSFRUUCBjbGllbnQgaW5zdGFuY2VcbiAqIEBwYXJhbSB7SHR0cENvbmZpZ30gY29uZmlnIC0gQ29uZmlndXJhdGlvbiBmb3IgdGhlIEhUVFAgYWRhcHRlclxuICogQHBhcmFtIHtzdHJpbmd9IGZsYXZvdXIgLSBUaGUgYWRhcHRlciBmbGF2b3IgaWRlbnRpZmllclxuICogQHBhcmFtIHtzdHJpbmd9IFthbGlhc10gLSBPcHRpb25hbCBhbGlhcyBmb3IgdGhlIGFkYXB0ZXJcbiAqIEBjbGFzcyBIdHRwQWRhcHRlclxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIC8vIEV4YW1wbGUgaW1wbGVtZW50YXRpb24gd2l0aCBBeGlvc1xuICogY2xhc3MgQXhpb3NBZGFwdGVyIGV4dGVuZHMgSHR0cEFkYXB0ZXI8QXhpb3NJbnN0YW5jZSwgQXhpb3NSZXF1ZXN0Q29uZmlnPiB7XG4gKiAgIGNvbnN0cnVjdG9yKGNvbmZpZzogSHR0cENvbmZpZykge1xuICogICAgIHN1cGVyKGF4aW9zLmNyZWF0ZSgpLCBjb25maWcsICdheGlvcycpO1xuICogICB9XG4gKlxuICogICBhc3luYyByZXF1ZXN0PFY+KGRldGFpbHM6IEF4aW9zUmVxdWVzdENvbmZpZyk6IFByb21pc2U8Vj4ge1xuICogICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5uYXRpdmUucmVxdWVzdChkZXRhaWxzKTtcbiAqICAgICByZXR1cm4gcmVzcG9uc2UuZGF0YTtcbiAqICAgfVxuICpcbiAqICAgLy8gSW1wbGVtZW50IG90aGVyIGFic3RyYWN0IG1ldGhvZHMuLi5cbiAqIH1cbiAqIGBgYFxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgSHR0cEFkYXB0ZXI8XG4gIFkgZXh0ZW5kcyBIdHRwQ29uZmlnLFxuICBDT04sXG4gIFEsXG4gIEYgZXh0ZW5kcyBIdHRwRmxhZ3MgPSBIdHRwRmxhZ3MsXG4gIEMgZXh0ZW5kcyBDb250ZXh0PEY+ID0gQ29udGV4dDxGPixcbj4gZXh0ZW5kcyBBZGFwdGVyPFksIENPTiwgUSwgRiwgQz4ge1xuICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoY29uZmlnOiBZLCBmbGF2b3VyOiBzdHJpbmcsIGFsaWFzPzogc3RyaW5nKSB7XG4gICAgc3VwZXIoY29uZmlnLCBmbGF2b3VyLCBhbGlhcyk7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEdlbmVyYXRlcyBvcGVyYXRpb24gZmxhZ3Mgd2l0aCBIVFRQIGhlYWRlcnNcbiAgICogQHN1bW1hcnkgRXh0ZW5kcyB0aGUgYmFzZSBmbGFncyBtZXRob2QgdG8gaW5jbHVkZSBIVFRQLXNwZWNpZmljIGhlYWRlcnMgZm9yIG9wZXJhdGlvbnMuXG4gICAqIFRoaXMgbWV0aG9kIGFkZHMgYW4gZW1wdHkgaGVhZGVycyBvYmplY3QgdG8gdGhlIGZsYWdzIHJldHVybmVkIGJ5IHRoZSBwYXJlbnQgY2xhc3MuXG4gICAqIEB0ZW1wbGF0ZSBGIC0gVGhlIFJlcG9zaXRvcnkgRmxhZ3MgdHlwZVxuICAgKiBAdGVtcGxhdGUgTSAtIFRoZSBtb2RlbCB0eXBlXG4gICAqIEBwYXJhbSB7T3BlcmF0aW9uS2V5cy5DUkVBVEV8T3BlcmF0aW9uS2V5cy5SRUFEfE9wZXJhdGlvbktleXMuVVBEQVRFfE9wZXJhdGlvbktleXMuREVMRVRFfSBvcGVyYXRpb24gLSBUaGUgb3BlcmF0aW9uIHR5cGVcbiAgICogQHBhcmFtIHtDb25zdHJ1Y3RvcjxNPn0gbW9kZWwgLSBUaGUgbW9kZWwgY29uc3RydWN0b3JcbiAgICogQHBhcmFtIHtQYXJ0aWFsPEY+fSBvdmVycmlkZXMgLSBPcHRpb25hbCBmbGFnIG92ZXJyaWRlc1xuICAgKiBAcmV0dXJuIHtGfSBUaGUgZmxhZ3Mgb2JqZWN0IHdpdGggaGVhZGVyc1xuICAgKi9cbiAgb3ZlcnJpZGUgZmxhZ3M8TSBleHRlbmRzIE1vZGVsPihcbiAgICBvcGVyYXRpb246XG4gICAgICB8IE9wZXJhdGlvbktleXMuQ1JFQVRFXG4gICAgICB8IE9wZXJhdGlvbktleXMuUkVBRFxuICAgICAgfCBPcGVyYXRpb25LZXlzLlVQREFURVxuICAgICAgfCBPcGVyYXRpb25LZXlzLkRFTEVURSxcbiAgICBtb2RlbDogQ29uc3RydWN0b3I8TT4sXG4gICAgb3ZlcnJpZGVzOiBQYXJ0aWFsPEY+XG4gICkge1xuICAgIHJldHVybiBPYmplY3QuYXNzaWduKHN1cGVyLmZsYWdzPE0+KG9wZXJhdGlvbiwgbW9kZWwsIG92ZXJyaWRlcyksIHtcbiAgICAgIGhlYWRlcnM6IHt9LFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBSZXR1cm5zIHRoZSByZXBvc2l0b3J5IGNvbnN0cnVjdG9yIGZvciB0aGlzIGFkYXB0ZXJcbiAgICogQHN1bW1hcnkgUHJvdmlkZXMgdGhlIFJlc3RTZXJ2aWNlIGNsYXNzIGFzIHRoZSByZXBvc2l0b3J5IGltcGxlbWVudGF0aW9uIGZvciB0aGlzIEhUVFAgYWRhcHRlci5cbiAgICogVGhpcyBtZXRob2QgaXMgdXNlZCB0byBjcmVhdGUgcmVwb3NpdG9yeSBpbnN0YW5jZXMgdGhhdCB3b3JrIHdpdGggdGhpcyBhZGFwdGVyIHR5cGUuXG4gICAqIEB0ZW1wbGF0ZSBNIC0gVGhlIG1vZGVsIHR5cGVcbiAgICogQHJldHVybiB7Q29uc3RydWN0b3I8UmVwb3NpdG9yeTxNLCBRLCBIdHRwQWRhcHRlcjxZLCBRLCBGLCBDPiwgRiwgQz4+fSBUaGUgcmVwb3NpdG9yeSBjb25zdHJ1Y3RvclxuICAgKi9cbiAgb3ZlcnJpZGUgcmVwb3NpdG9yeTxNIGV4dGVuZHMgTW9kZWw+KCk6IENvbnN0cnVjdG9yPFxuICAgIFJlcG9zaXRvcnk8TSwgUSwgSHR0cEFkYXB0ZXI8WSwgQ09OLCBRLCBGLCBDPiwgRiwgQz5cbiAgPiB7XG4gICAgcmV0dXJuIFJlc3RTZXJ2aWNlIGFzIHVua25vd24gYXMgQ29uc3RydWN0b3I8XG4gICAgICBSZXBvc2l0b3J5PE0sIFEsIEh0dHBBZGFwdGVyPFksIENPTiwgUSwgRiwgQz4sIEYsIEM+XG4gICAgPjtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gQ29uc3RydWN0cyBhIFVSTCBmb3IgQVBJIHJlcXVlc3RzXG4gICAqIEBzdW1tYXJ5IEJ1aWxkcyBhIGNvbXBsZXRlIFVSTCBmb3IgQVBJIHJlcXVlc3RzIHVzaW5nIHRoZSBjb25maWd1cmVkIHByb3RvY29sIGFuZCBob3N0LFxuICAgKiB0aGUgc3BlY2lmaWVkIHRhYmxlIG5hbWUsIGFuZCBvcHRpb25hbCBxdWVyeSBwYXJhbWV0ZXJzLiBUaGUgbWV0aG9kIGhhbmRsZXMgVVJMIGVuY29kaW5nLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdGFibGVOYW1lIC0gVGhlIG5hbWUgb2YgdGhlIHRhYmxlIG9yIGVuZHBvaW50XG4gICAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgc3RyaW5nIHwgbnVtYmVyPn0gW3F1ZXJ5UGFyYW1zXSAtIE9wdGlvbmFsIHF1ZXJ5IHBhcmFtZXRlcnNcbiAgICogQHJldHVybiB7c3RyaW5nfSBUaGUgZW5jb2RlZCBVUkwgc3RyaW5nXG4gICAqL1xuICBwcm90ZWN0ZWQgdXJsKFxuICAgIHRhYmxlTmFtZTogc3RyaW5nLFxuICAgIHF1ZXJ5UGFyYW1zPzogUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgbnVtYmVyPlxuICApIHtcbiAgICBjb25zdCB1cmwgPSBuZXcgVVJMKFxuICAgICAgYCR7dGhpcy5jb25maWcucHJvdG9jb2x9Oi8vJHt0aGlzLmNvbmZpZy5ob3N0fS8ke3RhYmxlTmFtZX1gXG4gICAgKTtcbiAgICBpZiAocXVlcnlQYXJhbXMpXG4gICAgICBPYmplY3QuZW50cmllcyhxdWVyeVBhcmFtcykuZm9yRWFjaCgoW2tleSwgdmFsdWVdKSA9PlxuICAgICAgICB1cmwuc2VhcmNoUGFyYW1zLmFwcGVuZChrZXksIHZhbHVlLnRvU3RyaW5nKCkpXG4gICAgICApO1xuXG4gICAgLy8gZW5zdXJlIHNwYWNlcyBhcmUgZW5jb2RlZCBhcyAlMjAgKG5vdCAnKycpIHRvIG1hdGNoIGV4cGVjdGF0aW9uc1xuICAgIHJldHVybiBlbmNvZGVVUkkodXJsLnRvU3RyaW5nKCkpLnJlcGxhY2UoL1xcKy9nLCBcIiUyMFwiKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gUGFyc2VzIGFuZCBjb252ZXJ0cyBlcnJvcnMgdG8gQmFzZUVycm9yIHR5cGVcbiAgICogQHN1bW1hcnkgUHJvY2Vzc2VzIGVycm9ycyB0aGF0IG9jY3VyIGR1cmluZyBIVFRQIG9wZXJhdGlvbnMgYW5kIGNvbnZlcnRzIHRoZW0gdG9cbiAgICogdGhlIGFwcHJvcHJpYXRlIEJhc2VFcnJvciB0eXBlLiBDdXJyZW50bHkgcmV0dXJucyB0aGUgZXJyb3IgYXMtaXMsIGJ1dCBjYW4gYmVcbiAgICogZXh0ZW5kZWQgdG8gaGFuZGxlIHNwZWNpZmljIGVycm9yIG1lc3NhZ2VzIGRpZmZlcmVudGx5LlxuICAgKiBAcGFyYW0ge0Vycm9yfSBlcnIgLSBUaGUgZXJyb3IgdG8gcGFyc2VcbiAgICogQHJldHVybiB7QmFzZUVycm9yfSBUaGUgcGFyc2VkIGVycm9yIGFzIGEgQmFzZUVycm9yXG4gICAqL1xuICBwYXJzZUVycm9yKGVycjogRXJyb3IpOiBCYXNlRXJyb3Ige1xuICAgIGNvbnN0IHsgbWVzc2FnZSB9ID0gZXJyO1xuICAgIHN3aXRjaCAobWVzc2FnZSkge1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIGVyciBhcyBCYXNlRXJyb3I7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBTZW5kcyBhbiBIVFRQIHJlcXVlc3RcbiAgICogQHN1bW1hcnkgQWJzdHJhY3QgbWV0aG9kIHRoYXQgbXVzdCBiZSBpbXBsZW1lbnRlZCBieSBzdWJjbGFzc2VzIHRvIHNlbmQgSFRUUCByZXF1ZXN0c1xuICAgKiB1c2luZyB0aGUgbmF0aXZlIEhUVFAgY2xpZW50LiBUaGlzIGlzIHRoZSBjb3JlIG1ldGhvZCBmb3IgbWFraW5nIEFQSSBjYWxscy5cbiAgICogQHRlbXBsYXRlIFYgLSBUaGUgcmVzcG9uc2UgdmFsdWUgdHlwZVxuICAgKiBAcGFyYW0ge1F9IGRldGFpbHMgLSBUaGUgcmVxdWVzdCBkZXRhaWxzIHNwZWNpZmljIHRvIHRoZSBIVFRQIGNsaWVudFxuICAgKiBAcmV0dXJuIHtQcm9taXNlPFY+fSBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aXRoIHRoZSByZXNwb25zZSBkYXRhXG4gICAqL1xuICBhYnN0cmFjdCByZXF1ZXN0PFY+KGRldGFpbHM6IFEpOiBQcm9taXNlPFY+O1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gQ3JlYXRlcyBhIG5ldyByZXNvdXJjZVxuICAgKiBAc3VtbWFyeSBBYnN0cmFjdCBtZXRob2QgdGhhdCBtdXN0IGJlIGltcGxlbWVudGVkIGJ5IHN1YmNsYXNzZXMgdG8gY3JlYXRlIGEgbmV3IHJlc291cmNlXG4gICAqIHZpYSBIVFRQLiBUaGlzIHR5cGljYWxseSBjb3JyZXNwb25kcyB0byBhIFBPU1QgcmVxdWVzdC5cbiAgICogQHBhcmFtIHtzdHJpbmd9IHRhYmxlTmFtZSAtIFRoZSBuYW1lIG9mIHRoZSB0YWJsZSBvciBlbmRwb2ludFxuICAgKiBAcGFyYW0ge3N0cmluZ3xudW1iZXJ9IGlkIC0gVGhlIGlkZW50aWZpZXIgZm9yIHRoZSByZXNvdXJjZVxuICAgKiBAcGFyYW0ge1JlY29yZDxzdHJpbmcsIGFueT59IG1vZGVsIC0gVGhlIGRhdGEgbW9kZWwgdG8gY3JlYXRlXG4gICAqIEBwYXJhbSB7Li4uYW55W119IGFyZ3MgLSBBZGRpdGlvbmFsIGFyZ3VtZW50c1xuICAgKiBAcmV0dXJuIHtQcm9taXNlPFJlY29yZDxzdHJpbmcsIGFueT4+fSBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aXRoIHRoZSBjcmVhdGVkIHJlc291cmNlXG4gICAqL1xuICBhYnN0cmFjdCBvdmVycmlkZSBjcmVhdGUoXG4gICAgdGFibGVOYW1lOiBzdHJpbmcsXG4gICAgaWQ6IHN0cmluZyB8IG51bWJlcixcbiAgICBtb2RlbDogUmVjb3JkPHN0cmluZywgYW55PixcbiAgICAuLi5hcmdzOiBhbnlbXVxuICApOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIGFueT4+O1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gUmV0cmlldmVzIGEgcmVzb3VyY2UgYnkgSURcbiAgICogQHN1bW1hcnkgQWJzdHJhY3QgbWV0aG9kIHRoYXQgbXVzdCBiZSBpbXBsZW1lbnRlZCBieSBzdWJjbGFzc2VzIHRvIHJldHJpZXZlIGEgcmVzb3VyY2VcbiAgICogdmlhIEhUVFAuIFRoaXMgdHlwaWNhbGx5IGNvcnJlc3BvbmRzIHRvIGEgR0VUIHJlcXVlc3QuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB0YWJsZU5hbWUgLSBUaGUgbmFtZSBvZiB0aGUgdGFibGUgb3IgZW5kcG9pbnRcbiAgICogQHBhcmFtIHtzdHJpbmd8bnVtYmVyfGJpZ2ludH0gaWQgLSBUaGUgaWRlbnRpZmllciBmb3IgdGhlIHJlc291cmNlXG4gICAqIEBwYXJhbSB7Li4uYW55W119IGFyZ3MgLSBBZGRpdGlvbmFsIGFyZ3VtZW50c1xuICAgKiBAcmV0dXJuIHtQcm9taXNlPFJlY29yZDxzdHJpbmcsIGFueT4+fSBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aXRoIHRoZSByZXRyaWV2ZWQgcmVzb3VyY2VcbiAgICovXG4gIGFic3RyYWN0IG92ZXJyaWRlIHJlYWQoXG4gICAgdGFibGVOYW1lOiBzdHJpbmcsXG4gICAgaWQ6IHN0cmluZyB8IG51bWJlciB8IGJpZ2ludCxcbiAgICAuLi5hcmdzOiBhbnlbXVxuICApOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIGFueT4+O1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gVXBkYXRlcyBhbiBleGlzdGluZyByZXNvdXJjZVxuICAgKiBAc3VtbWFyeSBBYnN0cmFjdCBtZXRob2QgdGhhdCBtdXN0IGJlIGltcGxlbWVudGVkIGJ5IHN1YmNsYXNzZXMgdG8gdXBkYXRlIGEgcmVzb3VyY2VcbiAgICogdmlhIEhUVFAuIFRoaXMgdHlwaWNhbGx5IGNvcnJlc3BvbmRzIHRvIGEgUFVUIG9yIFBBVENIIHJlcXVlc3QuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB0YWJsZU5hbWUgLSBUaGUgbmFtZSBvZiB0aGUgdGFibGUgb3IgZW5kcG9pbnRcbiAgICogQHBhcmFtIHtzdHJpbmd8bnVtYmVyfSBpZCAtIFRoZSBpZGVudGlmaWVyIGZvciB0aGUgcmVzb3VyY2VcbiAgICogQHBhcmFtIHtSZWNvcmQ8c3RyaW5nLCBhbnk+fSBtb2RlbCAtIFRoZSB1cGRhdGVkIGRhdGEgbW9kZWxcbiAgICogQHBhcmFtIHsuLi5hbnlbXX0gYXJncyAtIEFkZGl0aW9uYWwgYXJndW1lbnRzXG4gICAqIEByZXR1cm4ge1Byb21pc2U8UmVjb3JkPHN0cmluZywgYW55Pj59IEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHdpdGggdGhlIHVwZGF0ZWQgcmVzb3VyY2VcbiAgICovXG4gIGFic3RyYWN0IG92ZXJyaWRlIHVwZGF0ZShcbiAgICB0YWJsZU5hbWU6IHN0cmluZyxcbiAgICBpZDogc3RyaW5nIHwgbnVtYmVyLFxuICAgIG1vZGVsOiBSZWNvcmQ8c3RyaW5nLCBhbnk+LFxuICAgIC4uLmFyZ3M6IGFueVtdXG4gICk6IFByb21pc2U8UmVjb3JkPHN0cmluZywgYW55Pj47XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBEZWxldGVzIGEgcmVzb3VyY2UgYnkgSURcbiAgICogQHN1bW1hcnkgQWJzdHJhY3QgbWV0aG9kIHRoYXQgbXVzdCBiZSBpbXBsZW1lbnRlZCBieSBzdWJjbGFzc2VzIHRvIGRlbGV0ZSBhIHJlc291cmNlXG4gICAqIHZpYSBIVFRQLiBUaGlzIHR5cGljYWxseSBjb3JyZXNwb25kcyB0byBhIERFTEVURSByZXF1ZXN0LlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdGFibGVOYW1lIC0gVGhlIG5hbWUgb2YgdGhlIHRhYmxlIG9yIGVuZHBvaW50XG4gICAqIEBwYXJhbSB7c3RyaW5nfG51bWJlcnxiaWdpbnR9IGlkIC0gVGhlIGlkZW50aWZpZXIgZm9yIHRoZSByZXNvdXJjZSB0byBkZWxldGVcbiAgICogQHBhcmFtIHsuLi5hbnlbXX0gYXJncyAtIEFkZGl0aW9uYWwgYXJndW1lbnRzXG4gICAqIEByZXR1cm4ge1Byb21pc2U8UmVjb3JkPHN0cmluZywgYW55Pj59IEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHdpdGggdGhlIGRlbGV0aW9uIHJlc3VsdFxuICAgKi9cbiAgYWJzdHJhY3Qgb3ZlcnJpZGUgZGVsZXRlKFxuICAgIHRhYmxlTmFtZTogc3RyaW5nLFxuICAgIGlkOiBzdHJpbmcgfCBudW1iZXIgfCBiaWdpbnQsXG4gICAgLi4uYXJnczogYW55W11cbiAgKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBhbnk+PjtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEV4ZWN1dGVzIGEgcmF3IHF1ZXJ5XG4gICAqIEBzdW1tYXJ5IE1ldGhvZCBmb3IgZXhlY3V0aW5nIHJhdyBxdWVyaWVzIGRpcmVjdGx5IHdpdGggdGhlIEhUVFAgY2xpZW50LlxuICAgKiBUaGlzIG1ldGhvZCBpcyBub3Qgc3VwcG9ydGVkIGJ5IGRlZmF1bHQgaW4gSFRUUCBhZGFwdGVycyBhbmQgdGhyb3dzIGFuIFVuc3VwcG9ydGVkRXJyb3IuXG4gICAqIFN1YmNsYXNzZXMgY2FuIG92ZXJyaWRlIHRoaXMgbWV0aG9kIHRvIHByb3ZpZGUgaW1wbGVtZW50YXRpb24uXG4gICAqIEB0ZW1wbGF0ZSBSIC0gVGhlIHJlc3VsdCB0eXBlXG4gICAqIEBwYXJhbSB7UX0gcmF3SW5wdXQgLSBUaGUgcmF3IHF1ZXJ5IGlucHV0XG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gcHJvY2VzcyAtIFdoZXRoZXIgdG8gcHJvY2VzcyB0aGUgcmVzdWx0XG4gICAqIEBwYXJhbSB7Li4uYW55W119IGFyZ3MgLSBBZGRpdGlvbmFsIGFyZ3VtZW50c1xuICAgKiBAcmV0dXJuIHtQcm9taXNlPFI+fSBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aXRoIHRoZSBxdWVyeSByZXN1bHRcbiAgICogQHRocm93cyB7VW5zdXBwb3J0ZWRFcnJvcn0gQWx3YXlzIHRocm93cyBhcyB0aGlzIG1ldGhvZCBpcyBub3Qgc3VwcG9ydGVkIGJ5IGRlZmF1bHRcbiAgICovXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgcmF3PFI+KHJhd0lucHV0OiBRLCBwcm9jZXNzOiBib29sZWFuLCAuLi5hcmdzOiBhbnlbXSk6IFByb21pc2U8Uj4ge1xuICAgIHJldHVybiBQcm9taXNlLnJlamVjdChcbiAgICAgIG5ldyBVbnN1cHBvcnRlZEVycm9yKFxuICAgICAgICBcIkFwaSBpcyBub3QgbmF0aXZlbHkgYXZhaWxhYmxlIGZvciBIdHRwQWRhcHRlcnMuIElmIHJlcXVpcmVkLCBwbGVhc2UgZXh0ZW5kcyB0aGlzIGNsYXNzXCJcbiAgICAgIClcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBDcmVhdGVzIGEgc2VxdWVuY2VcbiAgICogQHN1bW1hcnkgTWV0aG9kIGZvciBjcmVhdGluZyBhIHNlcXVlbmNlIGZvciBnZW5lcmF0aW5nIHVuaXF1ZSBpZGVudGlmaWVycy5cbiAgICogVGhpcyBtZXRob2QgaXMgbm90IHN1cHBvcnRlZCBieSBkZWZhdWx0IGluIEhUVFAgYWRhcHRlcnMgYW5kIHRocm93cyBhbiBVbnN1cHBvcnRlZEVycm9yLlxuICAgKiBTdWJjbGFzc2VzIGNhbiBvdmVycmlkZSB0aGlzIG1ldGhvZCB0byBwcm92aWRlIGltcGxlbWVudGF0aW9uLlxuICAgKiBAcGFyYW0ge1NlcXVlbmNlT3B0aW9uc30gb3B0aW9ucyAtIE9wdGlvbnMgZm9yIGNyZWF0aW5nIHRoZSBzZXF1ZW5jZVxuICAgKiBAcmV0dXJuIHtQcm9taXNlPFNlcXVlbmNlPn0gQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2l0aCB0aGUgY3JlYXRlZCBzZXF1ZW5jZVxuICAgKiBAdGhyb3dzIHtVbnN1cHBvcnRlZEVycm9yfSBBbHdheXMgdGhyb3dzIGFzIHRoaXMgbWV0aG9kIGlzIG5vdCBzdXBwb3J0ZWQgYnkgZGVmYXVsdFxuICAgKi9cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICBTZXF1ZW5jZShvcHRpb25zOiBTZXF1ZW5jZU9wdGlvbnMpOiBQcm9taXNlPFNlcXVlbmNlPiB7XG4gICAgcmV0dXJuIFByb21pc2UucmVqZWN0KFxuICAgICAgbmV3IFVuc3VwcG9ydGVkRXJyb3IoXG4gICAgICAgIFwiQXBpIGlzIG5vdCBuYXRpdmVseSBhdmFpbGFibGUgZm9yIEh0dHBBZGFwdGVycy4gSWYgcmVxdWlyZWQsIHBsZWFzZSBleHRlbmRzIHRoaXMgY2xhc3NcIlxuICAgICAgKVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIENyZWF0ZXMgYSBzdGF0ZW1lbnQgZm9yIHF1ZXJ5aW5nXG4gICAqIEBzdW1tYXJ5IE1ldGhvZCBmb3IgY3JlYXRpbmcgYSBzdGF0ZW1lbnQgZm9yIGJ1aWxkaW5nIGFuZCBleGVjdXRpbmcgcXVlcmllcy5cbiAgICogVGhpcyBtZXRob2QgaXMgbm90IHN1cHBvcnRlZCBieSBkZWZhdWx0IGluIEhUVFAgYWRhcHRlcnMgYW5kIHRocm93cyBhbiBVbnN1cHBvcnRlZEVycm9yLlxuICAgKiBTdWJjbGFzc2VzIGNhbiBvdmVycmlkZSB0aGlzIG1ldGhvZCB0byBwcm92aWRlIGltcGxlbWVudGF0aW9uLlxuICAgKiBAdGVtcGxhdGUgTSAtIFRoZSBtb2RlbCB0eXBlXG4gICAqIEB0ZW1wbGF0ZSAhIC0gVGhlIHJhdyBxdWVyeSB0eXBlXG4gICAqIEByZXR1cm4ge1N0YXRlbWVudDxRLCBNLCBhbnk+fSBBIHN0YXRlbWVudCBvYmplY3QgZm9yIGJ1aWxkaW5nIHF1ZXJpZXNcbiAgICogQHRocm93cyB7VW5zdXBwb3J0ZWRFcnJvcn0gQWx3YXlzIHRocm93cyBhcyB0aGlzIG1ldGhvZCBpcyBub3Qgc3VwcG9ydGVkIGJ5IGRlZmF1bHRcbiAgICovXG4gIG92ZXJyaWRlIFN0YXRlbWVudDxNIGV4dGVuZHMgTW9kZWw+KCk6IFN0YXRlbWVudDxRLCBNLCBhbnk+IHtcbiAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRFcnJvcihcbiAgICAgIFwiQXBpIGlzIG5vdCBuYXRpdmVseSBhdmFpbGFibGUgZm9yIEh0dHBBZGFwdGVycy4gSWYgcmVxdWlyZWQsIHBsZWFzZSBleHRlbmRzIHRoaXMgY2xhc3NcIlxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFBhcnNlcyBhIGNvbmRpdGlvbiBpbnRvIGEgcXVlcnlcbiAgICogQHN1bW1hcnkgTWV0aG9kIGZvciBwYXJzaW5nIGEgY29uZGl0aW9uIG9iamVjdCBpbnRvIGEgcXVlcnkgZm9ybWF0IHVuZGVyc3Rvb2QgYnkgdGhlIEhUVFAgY2xpZW50LlxuICAgKiBUaGlzIG1ldGhvZCBpcyBub3Qgc3VwcG9ydGVkIGJ5IGRlZmF1bHQgaW4gSFRUUCBhZGFwdGVycyBhbmQgdGhyb3dzIGFuIFVuc3VwcG9ydGVkRXJyb3IuXG4gICAqIFN1YmNsYXNzZXMgY2FuIG92ZXJyaWRlIHRoaXMgbWV0aG9kIHRvIHByb3ZpZGUgaW1wbGVtZW50YXRpb24uXG4gICAqIEBwYXJhbSB7Q29uZGl0aW9uPGFueT59IGNvbmRpdGlvbiAtIFRoZSBjb25kaXRpb24gdG8gcGFyc2VcbiAgICogQHJldHVybiB7UX0gVGhlIHBhcnNlZCBxdWVyeVxuICAgKiBAdGhyb3dzIHtVbnN1cHBvcnRlZEVycm9yfSBBbHdheXMgdGhyb3dzIGFzIHRoaXMgbWV0aG9kIGlzIG5vdCBzdXBwb3J0ZWQgYnkgZGVmYXVsdFxuICAgKi9cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICBwYXJzZUNvbmRpdGlvbihjb25kaXRpb246IENvbmRpdGlvbjxhbnk+KTogUSB7XG4gICAgdGhyb3cgbmV3IFVuc3VwcG9ydGVkRXJyb3IoXG4gICAgICBcIkFwaSBpcyBub3QgbmF0aXZlbHkgYXZhaWxhYmxlIGZvciBIdHRwQWRhcHRlcnMuIElmIHJlcXVpcmVkLCBwbGVhc2UgZXh0ZW5kcyB0aGlzIGNsYXNzXCJcbiAgICApO1xuICB9XG59XG4iXX0=
|
package/lib/adapter.d.ts
CHANGED
|
@@ -17,6 +17,7 @@ import { Statement } from "@decaf-ts/core";
|
|
|
17
17
|
* @param {HttpConfig} config - Configuration for the HTTP adapter
|
|
18
18
|
* @param {string} flavour - The adapter flavor identifier
|
|
19
19
|
* @param {string} [alias] - Optional alias for the adapter
|
|
20
|
+
* @class HttpAdapter
|
|
20
21
|
* @example
|
|
21
22
|
* ```typescript
|
|
22
23
|
* // Example implementation with Axios
|
|
@@ -33,11 +34,9 @@ import { Statement } from "@decaf-ts/core";
|
|
|
33
34
|
* // Implement other abstract methods...
|
|
34
35
|
* }
|
|
35
36
|
* ```
|
|
36
|
-
* @class
|
|
37
37
|
*/
|
|
38
|
-
export declare abstract class HttpAdapter<Y, Q, F extends HttpFlags = HttpFlags, C extends Context<F> = Context<F>> extends Adapter<Y, Q, F, C> {
|
|
39
|
-
protected config:
|
|
40
|
-
protected constructor(native: Y, config: HttpConfig, flavour: string, alias?: string);
|
|
38
|
+
export declare abstract class HttpAdapter<Y extends HttpConfig, CON, Q, F extends HttpFlags = HttpFlags, C extends Context<F> = Context<F>> extends Adapter<Y, CON, Q, F, C> {
|
|
39
|
+
protected constructor(config: Y, flavour: string, alias?: string);
|
|
41
40
|
/**
|
|
42
41
|
* @description Generates operation flags with HTTP headers
|
|
43
42
|
* @summary Extends the base flags method to include HTTP-specific headers for operations.
|
|
@@ -59,7 +58,7 @@ export declare abstract class HttpAdapter<Y, Q, F extends HttpFlags = HttpFlags,
|
|
|
59
58
|
* @template M - The model type
|
|
60
59
|
* @return {Constructor<Repository<M, Q, HttpAdapter<Y, Q, F, C>, F, C>>} The repository constructor
|
|
61
60
|
*/
|
|
62
|
-
repository<M extends Model>(): Constructor<Repository<M, Q, HttpAdapter<Y, Q, F, C>, F, C>>;
|
|
61
|
+
repository<M extends Model>(): Constructor<Repository<M, Q, HttpAdapter<Y, CON, Q, F, C>, F, C>>;
|
|
63
62
|
/**
|
|
64
63
|
* @description Constructs a URL for API requests
|
|
65
64
|
* @summary Builds a complete URL for API requests using the configured protocol and host,
|
|
@@ -78,14 +77,6 @@ export declare abstract class HttpAdapter<Y, Q, F extends HttpFlags = HttpFlags,
|
|
|
78
77
|
* @return {BaseError} The parsed error as a BaseError
|
|
79
78
|
*/
|
|
80
79
|
parseError(err: Error): BaseError;
|
|
81
|
-
/**
|
|
82
|
-
* @description Initializes the HTTP adapter
|
|
83
|
-
* @summary Placeholder method for adapter initialization. This method is currently
|
|
84
|
-
* a no-op but can be overridden by subclasses to perform initialization tasks.
|
|
85
|
-
* @param {...any[]} args - Initialization arguments
|
|
86
|
-
* @return {Promise<void>} A promise that resolves when initialization is complete
|
|
87
|
-
*/
|
|
88
|
-
initialize(...args: any[]): Promise<void>;
|
|
89
80
|
/**
|
|
90
81
|
* @description Sends an HTTP request
|
|
91
82
|
* @summary Abstract method that must be implemented by subclasses to send HTTP requests
|
package/lib/axios/axios.cjs
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.AxiosHttpAdapter = void 0;
|
|
4
4
|
const adapter_1 = require("./../adapter.cjs");
|
|
5
|
+
const axios_1 = require("axios");
|
|
5
6
|
const constants_1 = require("./constants.cjs");
|
|
6
7
|
/**
|
|
7
8
|
* @description Axios implementation of the HTTP adapter
|
|
@@ -51,8 +52,11 @@ const constants_1 = require("./constants.cjs");
|
|
|
51
52
|
* AxiosHttpAdapter-->>Client: Resource Data
|
|
52
53
|
*/
|
|
53
54
|
class AxiosHttpAdapter extends adapter_1.HttpAdapter {
|
|
54
|
-
constructor(
|
|
55
|
-
super(
|
|
55
|
+
constructor(config, alias) {
|
|
56
|
+
super(config, constants_1.AxiosFlavour, alias);
|
|
57
|
+
}
|
|
58
|
+
getClient() {
|
|
59
|
+
return new axios_1.Axios();
|
|
56
60
|
}
|
|
57
61
|
/**
|
|
58
62
|
* @description Sends an HTTP request using Axios
|
|
@@ -63,7 +67,7 @@ class AxiosHttpAdapter extends adapter_1.HttpAdapter {
|
|
|
63
67
|
* @return {Promise<V>} A promise that resolves with the response data
|
|
64
68
|
*/
|
|
65
69
|
async request(details) {
|
|
66
|
-
return this.
|
|
70
|
+
return this.client.request(details);
|
|
67
71
|
}
|
|
68
72
|
/**
|
|
69
73
|
* @description Creates a new resource via HTTP POST
|
|
@@ -77,7 +81,7 @@ class AxiosHttpAdapter extends adapter_1.HttpAdapter {
|
|
|
77
81
|
async create(tableName, id, model) {
|
|
78
82
|
try {
|
|
79
83
|
const url = this.url(tableName);
|
|
80
|
-
return this.
|
|
84
|
+
return this.client.post(url, model);
|
|
81
85
|
}
|
|
82
86
|
catch (e) {
|
|
83
87
|
throw this.parseError(e);
|
|
@@ -94,7 +98,7 @@ class AxiosHttpAdapter extends adapter_1.HttpAdapter {
|
|
|
94
98
|
async read(tableName, id) {
|
|
95
99
|
try {
|
|
96
100
|
const url = this.url(tableName, { id: id });
|
|
97
|
-
return this.
|
|
101
|
+
return this.client.get(url);
|
|
98
102
|
}
|
|
99
103
|
catch (e) {
|
|
100
104
|
throw this.parseError(e);
|
|
@@ -112,7 +116,7 @@ class AxiosHttpAdapter extends adapter_1.HttpAdapter {
|
|
|
112
116
|
async update(tableName, id, model) {
|
|
113
117
|
try {
|
|
114
118
|
const url = this.url(tableName);
|
|
115
|
-
return this.
|
|
119
|
+
return this.client.put(url, model);
|
|
116
120
|
}
|
|
117
121
|
catch (e) {
|
|
118
122
|
throw this.parseError(e);
|
|
@@ -129,18 +133,12 @@ class AxiosHttpAdapter extends adapter_1.HttpAdapter {
|
|
|
129
133
|
async delete(tableName, id) {
|
|
130
134
|
try {
|
|
131
135
|
const url = this.url(tableName, { id: id });
|
|
132
|
-
return this.
|
|
136
|
+
return this.client.delete(url);
|
|
133
137
|
}
|
|
134
138
|
catch (e) {
|
|
135
139
|
throw this.parseError(e);
|
|
136
140
|
}
|
|
137
141
|
}
|
|
138
|
-
/**
|
|
139
|
-
* @description Static decoration method for the AxiosHttpAdapter class
|
|
140
|
-
* @summary Placeholder method for class decoration functionality.
|
|
141
|
-
* This method is currently empty but can be used for decorator-based configuration.
|
|
142
|
-
*/
|
|
143
|
-
static decoration() { }
|
|
144
142
|
}
|
|
145
143
|
exports.AxiosHttpAdapter = AxiosHttpAdapter;
|
|
146
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXhpb3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXhpb3MvYXhpb3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsOENBQXlDO0FBS3pDLCtDQUEyQztBQUUzQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQThDRztBQUNILE1BQWEsZ0JBQWlCLFNBQVEscUJBS3JDO0lBQ0MsWUFBWSxNQUFhLEVBQUUsTUFBa0IsRUFBRSxLQUFjO1FBQzNELEtBQUssQ0FBQyxNQUFhLEVBQUUsTUFBTSxFQUFFLHdCQUFZLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDTSxLQUFLLENBQUMsT0FBTyxDQUFJLE9BQTJCO1FBQ25ELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVEOzs7Ozs7OztPQVFHO0lBQ0gsS0FBSyxDQUFDLE1BQU0sQ0FDVixTQUFpQixFQUNqQixFQUFtQixFQUNuQixLQUEwQjtRQUUxQixJQUFJLENBQUM7WUFDSCxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ2hDLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3RDLENBQUM7UUFBQyxPQUFPLENBQU0sRUFBRSxDQUFDO1lBQ2hCLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMzQixDQUFDO0lBQ0gsQ0FBQztJQUNEOzs7Ozs7O09BT0c7SUFDSCxLQUFLLENBQUMsSUFBSSxDQUNSLFNBQWlCLEVBQ2pCLEVBQTRCO1FBRTVCLElBQUksQ0FBQztZQUNILE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQXFCLEVBQUUsQ0FBQyxDQUFDO1lBQy9ELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDOUIsQ0FBQztRQUFDLE9BQU8sQ0FBTSxFQUFFLENBQUM7WUFDaEIsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzNCLENBQUM7SUFDSCxDQUFDO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDSCxLQUFLLENBQUMsTUFBTSxDQUNWLFNBQWlCLEVBQ2pCLEVBQW1CLEVBQ25CLEtBQTBCO1FBRTFCLElBQUksQ0FBQztZQUNILE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDaEMsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDckMsQ0FBQztRQUFDLE9BQU8sQ0FBTSxFQUFFLENBQUM7WUFDaEIsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzNCLENBQUM7SUFDSCxDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNILEtBQUssQ0FBQyxNQUFNLENBQ1YsU0FBaUIsRUFDakIsRUFBNEI7UUFFNUIsSUFBSSxDQUFDO1lBQ0gsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBcUIsRUFBRSxDQUFDLENBQUM7WUFDL0QsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNqQyxDQUFDO1FBQUMsT0FBTyxDQUFNLEVBQUUsQ0FBQztZQUNoQixNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDM0IsQ0FBQztJQUNILENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsTUFBTSxDQUFDLFVBQVUsS0FBSSxDQUFDO0NBQ3ZCO0FBL0dELDRDQStHQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBBZGFwdGVyIH0gZnJvbSBcIi4uL2FkYXB0ZXJcIjtcbmltcG9ydCB7IEF4aW9zLCBBeGlvc1JlcXVlc3RDb25maWcgfSBmcm9tIFwiYXhpb3NcIjtcbmltcG9ydCB7IEh0dHBDb25maWcgfSBmcm9tIFwiLi4vdHlwZXNcIjtcbmltcG9ydCB7IEF4aW9zRmxhZ3MgfSBmcm9tIFwiLi90eXBlc1wiO1xuaW1wb3J0IHsgQ29udGV4dCB9IGZyb20gXCJAZGVjYWYtdHMvZGItZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHsgQXhpb3NGbGF2b3VyIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIEF4aW9zIGltcGxlbWVudGF0aW9uIG9mIHRoZSBIVFRQIGFkYXB0ZXJcbiAqIEBzdW1tYXJ5IENvbmNyZXRlIGltcGxlbWVudGF0aW9uIG9mIEh0dHBBZGFwdGVyIHVzaW5nIEF4aW9zIGFzIHRoZSBIVFRQIGNsaWVudC5cbiAqIFRoaXMgYWRhcHRlciBwcm92aWRlcyBDUlVEIG9wZXJhdGlvbnMgZm9yIFJFU1RmdWwgQVBJcyB1c2luZyBBeGlvcyBmb3IgSFRUUCByZXF1ZXN0cy5cbiAqIEB0ZW1wbGF0ZSBBeGlvcyAtIFRoZSBBeGlvcyBjbGllbnQgdHlwZVxuICogQHRlbXBsYXRlIEF4aW9zUmVxdWVzdENvbmZpZyAtIFRoZSBBeGlvcyByZXF1ZXN0IGNvbmZpZ3VyYXRpb24gdHlwZVxuICogQHRlbXBsYXRlIEF4aW9zRmxhZ3MgLSBUaGUgZmxhZ3MgdHlwZSBleHRlbmRpbmcgSHR0cEZsYWdzXG4gKiBAdGVtcGxhdGUgQ29udGV4dDxBeGlvc0ZsYWdzPiAtIFRoZSBjb250ZXh0IHR5cGUgZm9yIHRoaXMgYWRhcHRlclxuICogQHBhcmFtIHtBeGlvc30gbmF0aXZlIC0gVGhlIEF4aW9zIGluc3RhbmNlXG4gKiBAcGFyYW0ge0h0dHBDb25maWd9IGNvbmZpZyAtIENvbmZpZ3VyYXRpb24gZm9yIHRoZSBIVFRQIGFkYXB0ZXJcbiAqIEBwYXJhbSB7c3RyaW5nfSBbYWxpYXNdIC0gT3B0aW9uYWwgYWxpYXMgZm9yIHRoZSBhZGFwdGVyXG4gKiBAY2xhc3NcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBpbXBvcnQgYXhpb3MgZnJvbSAnYXhpb3MnO1xuICogaW1wb3J0IHsgQXhpb3NIdHRwQWRhcHRlciB9IGZyb20gJ0BkZWNhZi10cy9mb3ItaHR0cCc7XG4gKiBcbiAqIGNvbnN0IGNvbmZpZyA9IHsgcHJvdG9jb2w6ICdodHRwcycsIGhvc3Q6ICdhcGkuZXhhbXBsZS5jb20nIH07XG4gKiBjb25zdCBhZGFwdGVyID0gbmV3IEF4aW9zSHR0cEFkYXB0ZXIoYXhpb3MuY3JlYXRlKCksIGNvbmZpZyk7XG4gKiBcbiAqIC8vIFVzZSB0aGUgYWRhcHRlciB3aXRoIGEgcmVwb3NpdG9yeVxuICogY29uc3QgdXNlclJlcG8gPSBhZGFwdGVyLmdldFJlcG9zaXRvcnkoVXNlcik7XG4gKiBjb25zdCB1c2VyID0gYXdhaXQgdXNlclJlcG8uZmluZEJ5SWQoJzEyMycpO1xuICogYGBgXG4gKiBAbWVybWFpZFxuICogc2VxdWVuY2VEaWFncmFtXG4gKiAgIHBhcnRpY2lwYW50IENsaWVudFxuICogICBwYXJ0aWNpcGFudCBBeGlvc0h0dHBBZGFwdGVyXG4gKiAgIHBhcnRpY2lwYW50IEF4aW9zXG4gKiAgIHBhcnRpY2lwYW50IEFQSVxuICogICBcbiAqICAgQ2xpZW50LT4+QXhpb3NIdHRwQWRhcHRlcjogY3JlYXRlKHRhYmxlLCBpZCwgZGF0YSlcbiAqICAgQXhpb3NIdHRwQWRhcHRlci0+PkF4aW9zSHR0cEFkYXB0ZXI6IHVybCh0YWJsZSlcbiAqICAgQXhpb3NIdHRwQWRhcHRlci0+PkF4aW9zOiBwb3N0KHVybCwgZGF0YSlcbiAqICAgQXhpb3MtPj5BUEk6IEhUVFAgUE9TVCBSZXF1ZXN0XG4gKiAgIEFQSS0tPj5BeGlvczogUmVzcG9uc2VcbiAqICAgQXhpb3MtLT4+QXhpb3NIdHRwQWRhcHRlcjogUmVzcG9uc2UgRGF0YVxuICogICBBeGlvc0h0dHBBZGFwdGVyLS0+PkNsaWVudDogQ3JlYXRlZCBSZXNvdXJjZVxuICogICBcbiAqICAgQ2xpZW50LT4+QXhpb3NIdHRwQWRhcHRlcjogcmVhZCh0YWJsZSwgaWQpXG4gKiAgIEF4aW9zSHR0cEFkYXB0ZXItPj5BeGlvc0h0dHBBZGFwdGVyOiB1cmwodGFibGUsIHtpZH0pXG4gKiAgIEF4aW9zSHR0cEFkYXB0ZXItPj5BeGlvczogZ2V0KHVybClcbiAqICAgQXhpb3MtPj5BUEk6IEhUVFAgR0VUIFJlcXVlc3RcbiAqICAgQVBJLS0+PkF4aW9zOiBSZXNwb25zZVxuICogICBBeGlvcy0tPj5BeGlvc0h0dHBBZGFwdGVyOiBSZXNwb25zZSBEYXRhXG4gKiAgIEF4aW9zSHR0cEFkYXB0ZXItLT4+Q2xpZW50OiBSZXNvdXJjZSBEYXRhXG4gKi9cbmV4cG9ydCBjbGFzcyBBeGlvc0h0dHBBZGFwdGVyIGV4dGVuZHMgSHR0cEFkYXB0ZXI8XG4gIEF4aW9zLFxuICBBeGlvc1JlcXVlc3RDb25maWcsXG4gIEF4aW9zRmxhZ3MsXG4gIENvbnRleHQ8QXhpb3NGbGFncz5cbj4ge1xuICBjb25zdHJ1Y3RvcihuYXRpdmU6IEF4aW9zLCBjb25maWc6IEh0dHBDb25maWcsIGFsaWFzPzogc3RyaW5nKSB7XG4gICAgc3VwZXIobmF0aXZlIGFzIGFueSwgY29uZmlnLCBBeGlvc0ZsYXZvdXIsIGFsaWFzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gU2VuZHMgYW4gSFRUUCByZXF1ZXN0IHVzaW5nIEF4aW9zXG4gICAqIEBzdW1tYXJ5IEltcGxlbWVudGF0aW9uIG9mIHRoZSBhYnN0cmFjdCByZXF1ZXN0IG1ldGhvZCBmcm9tIEh0dHBBZGFwdGVyLlxuICAgKiBUaGlzIG1ldGhvZCB1c2VzIHRoZSBBeGlvcyBpbnN0YW5jZSB0byBzZW5kIEhUVFAgcmVxdWVzdHMgd2l0aCB0aGUgcHJvdmlkZWQgY29uZmlndXJhdGlvbi5cbiAgICogQHRlbXBsYXRlIFYgLSBUaGUgcmVzcG9uc2UgdmFsdWUgdHlwZVxuICAgKiBAcGFyYW0ge0F4aW9zUmVxdWVzdENvbmZpZ30gZGV0YWlscyAtIFRoZSBBeGlvcyByZXF1ZXN0IGNvbmZpZ3VyYXRpb25cbiAgICogQHJldHVybiB7UHJvbWlzZTxWPn0gQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2l0aCB0aGUgcmVzcG9uc2UgZGF0YVxuICAgKi9cbiAgb3ZlcnJpZGUgYXN5bmMgcmVxdWVzdDxWPihkZXRhaWxzOiBBeGlvc1JlcXVlc3RDb25maWcpOiBQcm9taXNlPFY+IHtcbiAgICByZXR1cm4gdGhpcy5uYXRpdmUucmVxdWVzdChkZXRhaWxzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gQ3JlYXRlcyBhIG5ldyByZXNvdXJjZSB2aWEgSFRUUCBQT1NUXG4gICAqIEBzdW1tYXJ5IEltcGxlbWVudGF0aW9uIG9mIHRoZSBhYnN0cmFjdCBjcmVhdGUgbWV0aG9kIGZyb20gSHR0cEFkYXB0ZXIuXG4gICAqIFRoaXMgbWV0aG9kIHNlbmRzIGEgUE9TVCByZXF1ZXN0IHRvIHRoZSBzcGVjaWZpZWQgZW5kcG9pbnQgd2l0aCB0aGUgbW9kZWwgZGF0YS5cbiAgICogQHBhcmFtIHtzdHJpbmd9IHRhYmxlTmFtZSAtIFRoZSBuYW1lIG9mIHRoZSB0YWJsZSBvciBlbmRwb2ludFxuICAgKiBAcGFyYW0ge3N0cmluZ3xudW1iZXJ9IGlkIC0gVGhlIGlkZW50aWZpZXIgZm9yIHRoZSByZXNvdXJjZSAobm90IHVzZWQgaW4gVVJMIGZvciBQT1NUKVxuICAgKiBAcGFyYW0ge1JlY29yZDxzdHJpbmcsIGFueT59IG1vZGVsIC0gVGhlIGRhdGEgbW9kZWwgdG8gY3JlYXRlXG4gICAqIEByZXR1cm4ge1Byb21pc2U8UmVjb3JkPHN0cmluZywgYW55Pj59IEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHdpdGggdGhlIGNyZWF0ZWQgcmVzb3VyY2VcbiAgICovXG4gIGFzeW5jIGNyZWF0ZShcbiAgICB0YWJsZU5hbWU6IHN0cmluZyxcbiAgICBpZDogc3RyaW5nIHwgbnVtYmVyLFxuICAgIG1vZGVsOiBSZWNvcmQ8c3RyaW5nLCBhbnk+XG4gICk6IFByb21pc2U8UmVjb3JkPHN0cmluZywgYW55Pj4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCB1cmwgPSB0aGlzLnVybCh0YWJsZU5hbWUpO1xuICAgICAgcmV0dXJuIHRoaXMubmF0aXZlLnBvc3QodXJsLCBtb2RlbCk7XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICB0aHJvdyB0aGlzLnBhcnNlRXJyb3IoZSk7XG4gICAgfVxuICB9XG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gUmV0cmlldmVzIGEgcmVzb3VyY2UgYnkgSUQgdmlhIEhUVFAgR0VUXG4gICAqIEBzdW1tYXJ5IEltcGxlbWVudGF0aW9uIG9mIHRoZSBhYnN0cmFjdCByZWFkIG1ldGhvZCBmcm9tIEh0dHBBZGFwdGVyLlxuICAgKiBUaGlzIG1ldGhvZCBzZW5kcyBhIEdFVCByZXF1ZXN0IHRvIHRoZSBzcGVjaWZpZWQgZW5kcG9pbnQgd2l0aCB0aGUgSUQgYXMgYSBxdWVyeSBwYXJhbWV0ZXIuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB0YWJsZU5hbWUgLSBUaGUgbmFtZSBvZiB0aGUgdGFibGUgb3IgZW5kcG9pbnRcbiAgICogQHBhcmFtIHtzdHJpbmd8bnVtYmVyfGJpZ2ludH0gaWQgLSBUaGUgaWRlbnRpZmllciBmb3IgdGhlIHJlc291cmNlIHRvIHJldHJpZXZlXG4gICAqIEByZXR1cm4ge1Byb21pc2U8UmVjb3JkPHN0cmluZywgYW55Pj59IEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHdpdGggdGhlIHJldHJpZXZlZCByZXNvdXJjZVxuICAgKi9cbiAgYXN5bmMgcmVhZChcbiAgICB0YWJsZU5hbWU6IHN0cmluZyxcbiAgICBpZDogc3RyaW5nIHwgbnVtYmVyIHwgYmlnaW50XG4gICk6IFByb21pc2U8UmVjb3JkPHN0cmluZywgYW55Pj4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCB1cmwgPSB0aGlzLnVybCh0YWJsZU5hbWUsIHsgaWQ6IGlkIGFzIHN0cmluZyB8IG51bWJlciB9KTtcbiAgICAgIHJldHVybiB0aGlzLm5hdGl2ZS5nZXQodXJsKTtcbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIHRocm93IHRoaXMucGFyc2VFcnJvcihlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFVwZGF0ZXMgYW4gZXhpc3RpbmcgcmVzb3VyY2UgdmlhIEhUVFAgUFVUXG4gICAqIEBzdW1tYXJ5IEltcGxlbWVudGF0aW9uIG9mIHRoZSBhYnN0cmFjdCB1cGRhdGUgbWV0aG9kIGZyb20gSHR0cEFkYXB0ZXIuXG4gICAqIFRoaXMgbWV0aG9kIHNlbmRzIGEgUFVUIHJlcXVlc3QgdG8gdGhlIHNwZWNpZmllZCBlbmRwb2ludCB3aXRoIHRoZSB1cGRhdGVkIG1vZGVsIGRhdGEuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB0YWJsZU5hbWUgLSBUaGUgbmFtZSBvZiB0aGUgdGFibGUgb3IgZW5kcG9pbnRcbiAgICogQHBhcmFtIHtzdHJpbmd8bnVtYmVyfSBpZCAtIFRoZSBpZGVudGlmaWVyIGZvciB0aGUgcmVzb3VyY2UgKG5vdCB1c2VkIGluIFVSTCBmb3IgUFVUKVxuICAgKiBAcGFyYW0ge1JlY29yZDxzdHJpbmcsIGFueT59IG1vZGVsIC0gVGhlIHVwZGF0ZWQgZGF0YSBtb2RlbFxuICAgKiBAcmV0dXJuIHtQcm9taXNlPFJlY29yZDxzdHJpbmcsIGFueT4+fSBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aXRoIHRoZSB1cGRhdGVkIHJlc291cmNlXG4gICAqL1xuICBhc3luYyB1cGRhdGUoXG4gICAgdGFibGVOYW1lOiBzdHJpbmcsXG4gICAgaWQ6IHN0cmluZyB8IG51bWJlcixcbiAgICBtb2RlbDogUmVjb3JkPHN0cmluZywgYW55PlxuICApOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIGFueT4+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgdXJsID0gdGhpcy51cmwodGFibGVOYW1lKTtcbiAgICAgIHJldHVybiB0aGlzLm5hdGl2ZS5wdXQodXJsLCBtb2RlbCk7XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICB0aHJvdyB0aGlzLnBhcnNlRXJyb3IoZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBEZWxldGVzIGEgcmVzb3VyY2UgYnkgSUQgdmlhIEhUVFAgREVMRVRFXG4gICAqIEBzdW1tYXJ5IEltcGxlbWVudGF0aW9uIG9mIHRoZSBhYnN0cmFjdCBkZWxldGUgbWV0aG9kIGZyb20gSHR0cEFkYXB0ZXIuXG4gICAqIFRoaXMgbWV0aG9kIHNlbmRzIGEgREVMRVRFIHJlcXVlc3QgdG8gdGhlIHNwZWNpZmllZCBlbmRwb2ludCB3aXRoIHRoZSBJRCBhcyBhIHF1ZXJ5IHBhcmFtZXRlci5cbiAgICogQHBhcmFtIHtzdHJpbmd9IHRhYmxlTmFtZSAtIFRoZSBuYW1lIG9mIHRoZSB0YWJsZSBvciBlbmRwb2ludFxuICAgKiBAcGFyYW0ge3N0cmluZ3xudW1iZXJ8YmlnaW50fSBpZCAtIFRoZSBpZGVudGlmaWVyIGZvciB0aGUgcmVzb3VyY2UgdG8gZGVsZXRlXG4gICAqIEByZXR1cm4ge1Byb21pc2U8UmVjb3JkPHN0cmluZywgYW55Pj59IEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHdpdGggdGhlIGRlbGV0aW9uIHJlc3VsdFxuICAgKi9cbiAgYXN5bmMgZGVsZXRlKFxuICAgIHRhYmxlTmFtZTogc3RyaW5nLFxuICAgIGlkOiBzdHJpbmcgfCBudW1iZXIgfCBiaWdpbnRcbiAgKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBhbnk+PiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHVybCA9IHRoaXMudXJsKHRhYmxlTmFtZSwgeyBpZDogaWQgYXMgc3RyaW5nIHwgbnVtYmVyIH0pO1xuICAgICAgcmV0dXJuIHRoaXMubmF0aXZlLmRlbGV0ZSh1cmwpO1xuICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgdGhyb3cgdGhpcy5wYXJzZUVycm9yKGUpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gU3RhdGljIGRlY29yYXRpb24gbWV0aG9kIGZvciB0aGUgQXhpb3NIdHRwQWRhcHRlciBjbGFzc1xuICAgKiBAc3VtbWFyeSBQbGFjZWhvbGRlciBtZXRob2QgZm9yIGNsYXNzIGRlY29yYXRpb24gZnVuY3Rpb25hbGl0eS5cbiAgICogVGhpcyBtZXRob2QgaXMgY3VycmVudGx5IGVtcHR5IGJ1dCBjYW4gYmUgdXNlZCBmb3IgZGVjb3JhdG9yLWJhc2VkIGNvbmZpZ3VyYXRpb24uXG4gICAqL1xuICBzdGF0aWMgZGVjb3JhdGlvbigpIHt9XG59XG4iXX0=
|
|
144
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXhpb3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXhpb3MvYXhpb3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsOENBQXlDO0FBQ3pDLGlDQUFrRDtBQUlsRCwrQ0FBMkM7QUFFM0M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E4Q0c7QUFDSCxNQUFhLGdCQUFpQixTQUFRLHFCQU1yQztJQUNDLFlBQVksTUFBa0IsRUFBRSxLQUFjO1FBQzVDLEtBQUssQ0FBQyxNQUFNLEVBQUUsd0JBQVksRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRWtCLFNBQVM7UUFDMUIsT0FBTyxJQUFJLGFBQUssRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ00sS0FBSyxDQUFDLE9BQU8sQ0FBSSxPQUEyQjtRQUNuRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRDs7Ozs7Ozs7T0FRRztJQUNILEtBQUssQ0FBQyxNQUFNLENBQ1YsU0FBaUIsRUFDakIsRUFBbUIsRUFDbkIsS0FBMEI7UUFFMUIsSUFBSSxDQUFDO1lBQ0gsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUNoQyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUN0QyxDQUFDO1FBQUMsT0FBTyxDQUFNLEVBQUUsQ0FBQztZQUNoQixNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDM0IsQ0FBQztJQUNILENBQUM7SUFDRDs7Ozs7OztPQU9HO0lBQ0gsS0FBSyxDQUFDLElBQUksQ0FDUixTQUFpQixFQUNqQixFQUE0QjtRQUU1QixJQUFJLENBQUM7WUFDSCxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFxQixFQUFFLENBQUMsQ0FBQztZQUMvRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzlCLENBQUM7UUFBQyxPQUFPLENBQU0sRUFBRSxDQUFDO1lBQ2hCLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMzQixDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7Ozs7OztPQVFHO0lBQ0gsS0FBSyxDQUFDLE1BQU0sQ0FDVixTQUFpQixFQUNqQixFQUFtQixFQUNuQixLQUEwQjtRQUUxQixJQUFJLENBQUM7WUFDSCxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ2hDLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3JDLENBQUM7UUFBQyxPQUFPLENBQU0sRUFBRSxDQUFDO1lBQ2hCLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMzQixDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSCxLQUFLLENBQUMsTUFBTSxDQUNWLFNBQWlCLEVBQ2pCLEVBQTRCO1FBRTVCLElBQUksQ0FBQztZQUNILE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQXFCLEVBQUUsQ0FBQyxDQUFDO1lBQy9ELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDakMsQ0FBQztRQUFDLE9BQU8sQ0FBTSxFQUFFLENBQUM7WUFDaEIsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzNCLENBQUM7SUFDSCxDQUFDO0NBQ0Y7QUE3R0QsNENBNkdDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cEFkYXB0ZXIgfSBmcm9tIFwiLi4vYWRhcHRlclwiO1xuaW1wb3J0IHsgQXhpb3MsIEF4aW9zUmVxdWVzdENvbmZpZyB9IGZyb20gXCJheGlvc1wiO1xuaW1wb3J0IHsgSHR0cENvbmZpZyB9IGZyb20gXCIuLi90eXBlc1wiO1xuaW1wb3J0IHsgQXhpb3NGbGFncyB9IGZyb20gXCIuL3R5cGVzXCI7XG5pbXBvcnQgeyBDb250ZXh0IH0gZnJvbSBcIkBkZWNhZi10cy9kYi1kZWNvcmF0b3JzXCI7XG5pbXBvcnQgeyBBeGlvc0ZsYXZvdXIgfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gQXhpb3MgaW1wbGVtZW50YXRpb24gb2YgdGhlIEhUVFAgYWRhcHRlclxuICogQHN1bW1hcnkgQ29uY3JldGUgaW1wbGVtZW50YXRpb24gb2YgSHR0cEFkYXB0ZXIgdXNpbmcgQXhpb3MgYXMgdGhlIEhUVFAgY2xpZW50LlxuICogVGhpcyBhZGFwdGVyIHByb3ZpZGVzIENSVUQgb3BlcmF0aW9ucyBmb3IgUkVTVGZ1bCBBUElzIHVzaW5nIEF4aW9zIGZvciBIVFRQIHJlcXVlc3RzLlxuICogQHRlbXBsYXRlIEF4aW9zIC0gVGhlIEF4aW9zIGNsaWVudCB0eXBlXG4gKiBAdGVtcGxhdGUgQXhpb3NSZXF1ZXN0Q29uZmlnIC0gVGhlIEF4aW9zIHJlcXVlc3QgY29uZmlndXJhdGlvbiB0eXBlXG4gKiBAdGVtcGxhdGUgQXhpb3NGbGFncyAtIFRoZSBmbGFncyB0eXBlIGV4dGVuZGluZyBIdHRwRmxhZ3NcbiAqIEB0ZW1wbGF0ZSBDb250ZXh0PEF4aW9zRmxhZ3M+IC0gVGhlIGNvbnRleHQgdHlwZSBmb3IgdGhpcyBhZGFwdGVyXG4gKiBAcGFyYW0ge0F4aW9zfSBuYXRpdmUgLSBUaGUgQXhpb3MgaW5zdGFuY2VcbiAqIEBwYXJhbSB7SHR0cENvbmZpZ30gY29uZmlnIC0gQ29uZmlndXJhdGlvbiBmb3IgdGhlIEhUVFAgYWRhcHRlclxuICogQHBhcmFtIHtzdHJpbmd9IFthbGlhc10gLSBPcHRpb25hbCBhbGlhcyBmb3IgdGhlIGFkYXB0ZXJcbiAqIEBjbGFzc1xuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGltcG9ydCBheGlvcyBmcm9tICdheGlvcyc7XG4gKiBpbXBvcnQgeyBBeGlvc0h0dHBBZGFwdGVyIH0gZnJvbSAnQGRlY2FmLXRzL2Zvci1odHRwJztcbiAqXG4gKiBjb25zdCBjb25maWcgPSB7IHByb3RvY29sOiAnaHR0cHMnLCBob3N0OiAnYXBpLmV4YW1wbGUuY29tJyB9O1xuICogY29uc3QgYWRhcHRlciA9IG5ldyBBeGlvc0h0dHBBZGFwdGVyKGF4aW9zLmNyZWF0ZSgpLCBjb25maWcpO1xuICpcbiAqIC8vIFVzZSB0aGUgYWRhcHRlciB3aXRoIGEgcmVwb3NpdG9yeVxuICogY29uc3QgdXNlclJlcG8gPSBhZGFwdGVyLmdldFJlcG9zaXRvcnkoVXNlcik7XG4gKiBjb25zdCB1c2VyID0gYXdhaXQgdXNlclJlcG8uZmluZEJ5SWQoJzEyMycpO1xuICogYGBgXG4gKiBAbWVybWFpZFxuICogc2VxdWVuY2VEaWFncmFtXG4gKiAgIHBhcnRpY2lwYW50IENsaWVudFxuICogICBwYXJ0aWNpcGFudCBBeGlvc0h0dHBBZGFwdGVyXG4gKiAgIHBhcnRpY2lwYW50IEF4aW9zXG4gKiAgIHBhcnRpY2lwYW50IEFQSVxuICpcbiAqICAgQ2xpZW50LT4+QXhpb3NIdHRwQWRhcHRlcjogY3JlYXRlKHRhYmxlLCBpZCwgZGF0YSlcbiAqICAgQXhpb3NIdHRwQWRhcHRlci0+PkF4aW9zSHR0cEFkYXB0ZXI6IHVybCh0YWJsZSlcbiAqICAgQXhpb3NIdHRwQWRhcHRlci0+PkF4aW9zOiBwb3N0KHVybCwgZGF0YSlcbiAqICAgQXhpb3MtPj5BUEk6IEhUVFAgUE9TVCBSZXF1ZXN0XG4gKiAgIEFQSS0tPj5BeGlvczogUmVzcG9uc2VcbiAqICAgQXhpb3MtLT4+QXhpb3NIdHRwQWRhcHRlcjogUmVzcG9uc2UgRGF0YVxuICogICBBeGlvc0h0dHBBZGFwdGVyLS0+PkNsaWVudDogQ3JlYXRlZCBSZXNvdXJjZVxuICpcbiAqICAgQ2xpZW50LT4+QXhpb3NIdHRwQWRhcHRlcjogcmVhZCh0YWJsZSwgaWQpXG4gKiAgIEF4aW9zSHR0cEFkYXB0ZXItPj5BeGlvc0h0dHBBZGFwdGVyOiB1cmwodGFibGUsIHtpZH0pXG4gKiAgIEF4aW9zSHR0cEFkYXB0ZXItPj5BeGlvczogZ2V0KHVybClcbiAqICAgQXhpb3MtPj5BUEk6IEhUVFAgR0VUIFJlcXVlc3RcbiAqICAgQVBJLS0+PkF4aW9zOiBSZXNwb25zZVxuICogICBBeGlvcy0tPj5BeGlvc0h0dHBBZGFwdGVyOiBSZXNwb25zZSBEYXRhXG4gKiAgIEF4aW9zSHR0cEFkYXB0ZXItLT4+Q2xpZW50OiBSZXNvdXJjZSBEYXRhXG4gKi9cbmV4cG9ydCBjbGFzcyBBeGlvc0h0dHBBZGFwdGVyIGV4dGVuZHMgSHR0cEFkYXB0ZXI8XG4gIEh0dHBDb25maWcsXG4gIEF4aW9zLFxuICBBeGlvc1JlcXVlc3RDb25maWcsXG4gIEF4aW9zRmxhZ3MsXG4gIENvbnRleHQ8QXhpb3NGbGFncz5cbj4ge1xuICBjb25zdHJ1Y3Rvcihjb25maWc6IEh0dHBDb25maWcsIGFsaWFzPzogc3RyaW5nKSB7XG4gICAgc3VwZXIoY29uZmlnLCBBeGlvc0ZsYXZvdXIsIGFsaWFzKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBnZXRDbGllbnQoKTogQXhpb3Mge1xuICAgIHJldHVybiBuZXcgQXhpb3MoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gU2VuZHMgYW4gSFRUUCByZXF1ZXN0IHVzaW5nIEF4aW9zXG4gICAqIEBzdW1tYXJ5IEltcGxlbWVudGF0aW9uIG9mIHRoZSBhYnN0cmFjdCByZXF1ZXN0IG1ldGhvZCBmcm9tIEh0dHBBZGFwdGVyLlxuICAgKiBUaGlzIG1ldGhvZCB1c2VzIHRoZSBBeGlvcyBpbnN0YW5jZSB0byBzZW5kIEhUVFAgcmVxdWVzdHMgd2l0aCB0aGUgcHJvdmlkZWQgY29uZmlndXJhdGlvbi5cbiAgICogQHRlbXBsYXRlIFYgLSBUaGUgcmVzcG9uc2UgdmFsdWUgdHlwZVxuICAgKiBAcGFyYW0ge0F4aW9zUmVxdWVzdENvbmZpZ30gZGV0YWlscyAtIFRoZSBBeGlvcyByZXF1ZXN0IGNvbmZpZ3VyYXRpb25cbiAgICogQHJldHVybiB7UHJvbWlzZTxWPn0gQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2l0aCB0aGUgcmVzcG9uc2UgZGF0YVxuICAgKi9cbiAgb3ZlcnJpZGUgYXN5bmMgcmVxdWVzdDxWPihkZXRhaWxzOiBBeGlvc1JlcXVlc3RDb25maWcpOiBQcm9taXNlPFY+IHtcbiAgICByZXR1cm4gdGhpcy5jbGllbnQucmVxdWVzdChkZXRhaWxzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gQ3JlYXRlcyBhIG5ldyByZXNvdXJjZSB2aWEgSFRUUCBQT1NUXG4gICAqIEBzdW1tYXJ5IEltcGxlbWVudGF0aW9uIG9mIHRoZSBhYnN0cmFjdCBjcmVhdGUgbWV0aG9kIGZyb20gSHR0cEFkYXB0ZXIuXG4gICAqIFRoaXMgbWV0aG9kIHNlbmRzIGEgUE9TVCByZXF1ZXN0IHRvIHRoZSBzcGVjaWZpZWQgZW5kcG9pbnQgd2l0aCB0aGUgbW9kZWwgZGF0YS5cbiAgICogQHBhcmFtIHtzdHJpbmd9IHRhYmxlTmFtZSAtIFRoZSBuYW1lIG9mIHRoZSB0YWJsZSBvciBlbmRwb2ludFxuICAgKiBAcGFyYW0ge3N0cmluZ3xudW1iZXJ9IGlkIC0gVGhlIGlkZW50aWZpZXIgZm9yIHRoZSByZXNvdXJjZSAobm90IHVzZWQgaW4gVVJMIGZvciBQT1NUKVxuICAgKiBAcGFyYW0ge1JlY29yZDxzdHJpbmcsIGFueT59IG1vZGVsIC0gVGhlIGRhdGEgbW9kZWwgdG8gY3JlYXRlXG4gICAqIEByZXR1cm4ge1Byb21pc2U8UmVjb3JkPHN0cmluZywgYW55Pj59IEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHdpdGggdGhlIGNyZWF0ZWQgcmVzb3VyY2VcbiAgICovXG4gIGFzeW5jIGNyZWF0ZShcbiAgICB0YWJsZU5hbWU6IHN0cmluZyxcbiAgICBpZDogc3RyaW5nIHwgbnVtYmVyLFxuICAgIG1vZGVsOiBSZWNvcmQ8c3RyaW5nLCBhbnk+XG4gICk6IFByb21pc2U8UmVjb3JkPHN0cmluZywgYW55Pj4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCB1cmwgPSB0aGlzLnVybCh0YWJsZU5hbWUpO1xuICAgICAgcmV0dXJuIHRoaXMuY2xpZW50LnBvc3QodXJsLCBtb2RlbCk7XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICB0aHJvdyB0aGlzLnBhcnNlRXJyb3IoZSk7XG4gICAgfVxuICB9XG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gUmV0cmlldmVzIGEgcmVzb3VyY2UgYnkgSUQgdmlhIEhUVFAgR0VUXG4gICAqIEBzdW1tYXJ5IEltcGxlbWVudGF0aW9uIG9mIHRoZSBhYnN0cmFjdCByZWFkIG1ldGhvZCBmcm9tIEh0dHBBZGFwdGVyLlxuICAgKiBUaGlzIG1ldGhvZCBzZW5kcyBhIEdFVCByZXF1ZXN0IHRvIHRoZSBzcGVjaWZpZWQgZW5kcG9pbnQgd2l0aCB0aGUgSUQgYXMgYSBxdWVyeSBwYXJhbWV0ZXIuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB0YWJsZU5hbWUgLSBUaGUgbmFtZSBvZiB0aGUgdGFibGUgb3IgZW5kcG9pbnRcbiAgICogQHBhcmFtIHtzdHJpbmd8bnVtYmVyfGJpZ2ludH0gaWQgLSBUaGUgaWRlbnRpZmllciBmb3IgdGhlIHJlc291cmNlIHRvIHJldHJpZXZlXG4gICAqIEByZXR1cm4ge1Byb21pc2U8UmVjb3JkPHN0cmluZywgYW55Pj59IEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHdpdGggdGhlIHJldHJpZXZlZCByZXNvdXJjZVxuICAgKi9cbiAgYXN5bmMgcmVhZChcbiAgICB0YWJsZU5hbWU6IHN0cmluZyxcbiAgICBpZDogc3RyaW5nIHwgbnVtYmVyIHwgYmlnaW50XG4gICk6IFByb21pc2U8UmVjb3JkPHN0cmluZywgYW55Pj4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCB1cmwgPSB0aGlzLnVybCh0YWJsZU5hbWUsIHsgaWQ6IGlkIGFzIHN0cmluZyB8IG51bWJlciB9KTtcbiAgICAgIHJldHVybiB0aGlzLmNsaWVudC5nZXQodXJsKTtcbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIHRocm93IHRoaXMucGFyc2VFcnJvcihlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFVwZGF0ZXMgYW4gZXhpc3RpbmcgcmVzb3VyY2UgdmlhIEhUVFAgUFVUXG4gICAqIEBzdW1tYXJ5IEltcGxlbWVudGF0aW9uIG9mIHRoZSBhYnN0cmFjdCB1cGRhdGUgbWV0aG9kIGZyb20gSHR0cEFkYXB0ZXIuXG4gICAqIFRoaXMgbWV0aG9kIHNlbmRzIGEgUFVUIHJlcXVlc3QgdG8gdGhlIHNwZWNpZmllZCBlbmRwb2ludCB3aXRoIHRoZSB1cGRhdGVkIG1vZGVsIGRhdGEuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB0YWJsZU5hbWUgLSBUaGUgbmFtZSBvZiB0aGUgdGFibGUgb3IgZW5kcG9pbnRcbiAgICogQHBhcmFtIHtzdHJpbmd8bnVtYmVyfSBpZCAtIFRoZSBpZGVudGlmaWVyIGZvciB0aGUgcmVzb3VyY2UgKG5vdCB1c2VkIGluIFVSTCBmb3IgUFVUKVxuICAgKiBAcGFyYW0ge1JlY29yZDxzdHJpbmcsIGFueT59IG1vZGVsIC0gVGhlIHVwZGF0ZWQgZGF0YSBtb2RlbFxuICAgKiBAcmV0dXJuIHtQcm9taXNlPFJlY29yZDxzdHJpbmcsIGFueT4+fSBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aXRoIHRoZSB1cGRhdGVkIHJlc291cmNlXG4gICAqL1xuICBhc3luYyB1cGRhdGUoXG4gICAgdGFibGVOYW1lOiBzdHJpbmcsXG4gICAgaWQ6IHN0cmluZyB8IG51bWJlcixcbiAgICBtb2RlbDogUmVjb3JkPHN0cmluZywgYW55PlxuICApOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIGFueT4+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgdXJsID0gdGhpcy51cmwodGFibGVOYW1lKTtcbiAgICAgIHJldHVybiB0aGlzLmNsaWVudC5wdXQodXJsLCBtb2RlbCk7XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICB0aHJvdyB0aGlzLnBhcnNlRXJyb3IoZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBEZWxldGVzIGEgcmVzb3VyY2UgYnkgSUQgdmlhIEhUVFAgREVMRVRFXG4gICAqIEBzdW1tYXJ5IEltcGxlbWVudGF0aW9uIG9mIHRoZSBhYnN0cmFjdCBkZWxldGUgbWV0aG9kIGZyb20gSHR0cEFkYXB0ZXIuXG4gICAqIFRoaXMgbWV0aG9kIHNlbmRzIGEgREVMRVRFIHJlcXVlc3QgdG8gdGhlIHNwZWNpZmllZCBlbmRwb2ludCB3aXRoIHRoZSBJRCBhcyBhIHF1ZXJ5IHBhcmFtZXRlci5cbiAgICogQHBhcmFtIHtzdHJpbmd9IHRhYmxlTmFtZSAtIFRoZSBuYW1lIG9mIHRoZSB0YWJsZSBvciBlbmRwb2ludFxuICAgKiBAcGFyYW0ge3N0cmluZ3xudW1iZXJ8YmlnaW50fSBpZCAtIFRoZSBpZGVudGlmaWVyIGZvciB0aGUgcmVzb3VyY2UgdG8gZGVsZXRlXG4gICAqIEByZXR1cm4ge1Byb21pc2U8UmVjb3JkPHN0cmluZywgYW55Pj59IEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHdpdGggdGhlIGRlbGV0aW9uIHJlc3VsdFxuICAgKi9cbiAgYXN5bmMgZGVsZXRlKFxuICAgIHRhYmxlTmFtZTogc3RyaW5nLFxuICAgIGlkOiBzdHJpbmcgfCBudW1iZXIgfCBiaWdpbnRcbiAgKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBhbnk+PiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHVybCA9IHRoaXMudXJsKHRhYmxlTmFtZSwgeyBpZDogaWQgYXMgc3RyaW5nIHwgbnVtYmVyIH0pO1xuICAgICAgcmV0dXJuIHRoaXMuY2xpZW50LmRlbGV0ZSh1cmwpO1xuICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgdGhyb3cgdGhpcy5wYXJzZUVycm9yKGUpO1xuICAgIH1cbiAgfVxufVxuIl19
|
package/lib/axios/axios.d.ts
CHANGED
|
@@ -50,8 +50,9 @@ import { Context } from "@decaf-ts/db-decorators";
|
|
|
50
50
|
* Axios-->>AxiosHttpAdapter: Response Data
|
|
51
51
|
* AxiosHttpAdapter-->>Client: Resource Data
|
|
52
52
|
*/
|
|
53
|
-
export declare class AxiosHttpAdapter extends HttpAdapter<Axios, AxiosRequestConfig, AxiosFlags, Context<AxiosFlags>> {
|
|
54
|
-
constructor(
|
|
53
|
+
export declare class AxiosHttpAdapter extends HttpAdapter<HttpConfig, Axios, AxiosRequestConfig, AxiosFlags, Context<AxiosFlags>> {
|
|
54
|
+
constructor(config: HttpConfig, alias?: string);
|
|
55
|
+
protected getClient(): Axios;
|
|
55
56
|
/**
|
|
56
57
|
* @description Sends an HTTP request using Axios
|
|
57
58
|
* @summary Implementation of the abstract request method from HttpAdapter.
|
|
@@ -99,10 +100,4 @@ export declare class AxiosHttpAdapter extends HttpAdapter<Axios, AxiosRequestCon
|
|
|
99
100
|
* @return {Promise<Record<string, any>>} A promise that resolves with the deletion result
|
|
100
101
|
*/
|
|
101
102
|
delete(tableName: string, id: string | number | bigint): Promise<Record<string, any>>;
|
|
102
|
-
/**
|
|
103
|
-
* @description Static decoration method for the AxiosHttpAdapter class
|
|
104
|
-
* @summary Placeholder method for class decoration functionality.
|
|
105
|
-
* This method is currently empty but can be used for decorator-based configuration.
|
|
106
|
-
*/
|
|
107
|
-
static decoration(): void;
|
|
108
103
|
}
|
|
@@ -17,6 +17,7 @@ import { HttpFlags } from "./types";
|
|
|
17
17
|
* @template C - The context type, extending Context<F>
|
|
18
18
|
* @param {A} adapter - The HTTP adapter instance
|
|
19
19
|
* @param {Constructor<M>} [clazz] - Optional constructor for the model class
|
|
20
|
+
* @class RestRepository
|
|
20
21
|
* @example
|
|
21
22
|
* ```typescript
|
|
22
23
|
* // Create a repository for User model with Axios adapter
|
|
@@ -29,9 +30,8 @@ import { HttpFlags } from "./types";
|
|
|
29
30
|
* // Use the repository for CRUD operations
|
|
30
31
|
* const user = await userRepository.findById('123');
|
|
31
32
|
* ```
|
|
32
|
-
* @class RestRepository
|
|
33
33
|
* @see {@link RestService}
|
|
34
34
|
*/
|
|
35
|
-
export declare class RestRepository<M extends Model, Q, A extends HttpAdapter<any, Q, F, C>, F extends HttpFlags = HttpFlags, C extends Context<F> = Context<F>> extends Repository<M, Q, A> {
|
|
35
|
+
export declare class RestRepository<M extends Model, Q, A extends HttpAdapter<any, any, Q, F, C>, F extends HttpFlags = HttpFlags, C extends Context<F> = Context<F>> extends Repository<M, Q, A> {
|
|
36
36
|
constructor(adapter: A, clazz?: Constructor<M>);
|
|
37
37
|
}
|
|
@@ -13,6 +13,7 @@ import { Repository } from "@decaf-ts/core";
|
|
|
13
13
|
* @template C - The context type, extending Context<F>
|
|
14
14
|
* @param {A} adapter - The HTTP adapter instance
|
|
15
15
|
* @param {Constructor<M>} [clazz] - Optional constructor for the model class
|
|
16
|
+
* @class RestRepository
|
|
16
17
|
* @example
|
|
17
18
|
* ```typescript
|
|
18
19
|
* // Create a repository for User model with Axios adapter
|
|
@@ -25,7 +26,6 @@ import { Repository } from "@decaf-ts/core";
|
|
|
25
26
|
* // Use the repository for CRUD operations
|
|
26
27
|
* const user = await userRepository.findById('123');
|
|
27
28
|
* ```
|
|
28
|
-
* @class RestRepository
|
|
29
29
|
* @see {@link RestService}
|
|
30
30
|
*/
|
|
31
31
|
export class RestRepository extends Repository {
|
|
@@ -33,4 +33,4 @@ export class RestRepository extends Repository {
|
|
|
33
33
|
super(adapter, clazz);
|
|
34
34
|
}
|
|
35
35
|
}
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVzdFJlcG9zaXRvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvUmVzdFJlcG9zaXRvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBTTVDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBNEJHO0FBQ0gsTUFBTSxPQUFPLGNBTVgsU0FBUSxVQUFtQjtJQUMzQixZQUFZLE9BQVUsRUFBRSxLQUFzQjtRQUM1QyxLQUFLLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3hCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlcG9zaXRvcnkgfSBmcm9tIFwiQGRlY2FmLXRzL2NvcmVcIjtcbmltcG9ydCB7IENvbnN0cnVjdG9yLCBNb2RlbCB9IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdG9yLXZhbGlkYXRpb25cIjtcbmltcG9ydCB7IEh0dHBBZGFwdGVyIH0gZnJvbSBcIi4vYWRhcHRlclwiO1xuaW1wb3J0IHsgQ29udGV4dCB9IGZyb20gXCJAZGVjYWYtdHMvZGItZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHsgSHR0cEZsYWdzIH0gZnJvbSBcIi4vdHlwZXNcIjtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gUmVwb3NpdG9yeSBmb3IgUkVTVCBBUEkgaW50ZXJhY3Rpb25zXG4gKiBAc3VtbWFyeSBBIHNwZWNpYWxpemVkIHJlcG9zaXRvcnkgaW1wbGVtZW50YXRpb24gZm9yIGludGVyYWN0aW5nIHdpdGggUkVTVCBBUElzLlxuICogVGhpcyBjbGFzcyBleHRlbmRzIHRoZSBjb3JlIFJlcG9zaXRvcnkgY2xhc3MgYW5kIHdvcmtzIHdpdGggSFRUUCBhZGFwdGVycyB0b1xuICogcHJvdmlkZSBDUlVEIG9wZXJhdGlvbnMgZm9yIG1vZGVscyB2aWEgUkVTVCBlbmRwb2ludHMuXG4gKiBUaGlzIElzIE5PVCB0aGUgZGVmYXVsdCByZXBvc2l0b3J5IGZvciB0aGUgSFRUUCBhZGFwdGVyLiBUaGF0IHdvdWxkIGJlIHtAbGluayBSZXN0U2VydmljZX0uXG4gKiBVc2UgdGhpcyBvbmx5IGluIHRoZSBzcGVjaWZpYyBjYXNlIG9mIG5lZWRpbmcgdG8gcnVuIHRoZSBDVVJEIG1vZGVsIGxvZ2ljIChkZWNvcmF0aW9uKSBiZWZvcmUgc3VibWl0dGluZyB0byB0aGUgYmFja2VuZFxuICogQHRlbXBsYXRlIE0gLSBUaGUgbW9kZWwgdHlwZSwgZXh0ZW5kaW5nIE1vZGVsXG4gKiBAdGVtcGxhdGUgUSAtIFRoZSBxdWVyeSB0eXBlIHVzZWQgYnkgdGhlIGFkYXB0ZXJcbiAqIEB0ZW1wbGF0ZSBBIC0gVGhlIEhUVFAgYWRhcHRlciB0eXBlLCBleHRlbmRpbmcgSHR0cEFkYXB0ZXJcbiAqIEB0ZW1wbGF0ZSBGIC0gVGhlIEhUVFAgZmxhZ3MgdHlwZSwgZXh0ZW5kaW5nIEh0dHBGbGFnc1xuICogQHRlbXBsYXRlIEMgLSBUaGUgY29udGV4dCB0eXBlLCBleHRlbmRpbmcgQ29udGV4dDxGPlxuICogQHBhcmFtIHtBfSBhZGFwdGVyIC0gVGhlIEhUVFAgYWRhcHRlciBpbnN0YW5jZVxuICogQHBhcmFtIHtDb25zdHJ1Y3RvcjxNPn0gW2NsYXp6XSAtIE9wdGlvbmFsIGNvbnN0cnVjdG9yIGZvciB0aGUgbW9kZWwgY2xhc3NcbiAqIEBjbGFzcyBSZXN0UmVwb3NpdG9yeVxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIC8vIENyZWF0ZSBhIHJlcG9zaXRvcnkgZm9yIFVzZXIgbW9kZWwgd2l0aCBBeGlvcyBhZGFwdGVyXG4gKiBjb25zdCBheGlvc0FkYXB0ZXIgPSBuZXcgQXhpb3NBZGFwdGVyKHtcbiAqICAgcHJvdG9jb2w6ICdodHRwcycsXG4gKiAgIGhvc3Q6ICdhcGkuZXhhbXBsZS5jb20nXG4gKiB9KTtcbiAqIGNvbnN0IHVzZXJSZXBvc2l0b3J5ID0gbmV3IFJlc3RSZXBvc2l0b3J5KGF4aW9zQWRhcHRlciwgVXNlcik7XG4gKlxuICogLy8gVXNlIHRoZSByZXBvc2l0b3J5IGZvciBDUlVEIG9wZXJhdGlvbnNcbiAqIGNvbnN0IHVzZXIgPSBhd2FpdCB1c2VyUmVwb3NpdG9yeS5maW5kQnlJZCgnMTIzJyk7XG4gKiBgYGBcbiAqIEBzZWUge0BsaW5rIFJlc3RTZXJ2aWNlfVxuICovXG5leHBvcnQgY2xhc3MgUmVzdFJlcG9zaXRvcnk8XG4gIE0gZXh0ZW5kcyBNb2RlbCxcbiAgUSxcbiAgQSBleHRlbmRzIEh0dHBBZGFwdGVyPGFueSwgYW55LCBRLCBGLCBDPixcbiAgRiBleHRlbmRzIEh0dHBGbGFncyA9IEh0dHBGbGFncyxcbiAgQyBleHRlbmRzIENvbnRleHQ8Rj4gPSBDb250ZXh0PEY+LFxuPiBleHRlbmRzIFJlcG9zaXRvcnk8TSwgUSwgQT4ge1xuICBjb25zdHJ1Y3RvcihhZGFwdGVyOiBBLCBjbGF6ej86IENvbnN0cnVjdG9yPE0+KSB7XG4gICAgc3VwZXIoYWRhcHRlciwgY2xhenopO1xuICB9XG59XG4iXX0=
|
package/lib/esm/RestService.d.ts
CHANGED
|
@@ -16,6 +16,7 @@ import { HttpFlags } from "./types";
|
|
|
16
16
|
* @template C - The context type, extending Context<F>
|
|
17
17
|
* @param {A} adapter - The HTTP adapter instance
|
|
18
18
|
* @param {Constructor<M>} [clazz] - Optional constructor for the model class
|
|
19
|
+
* @class RestService
|
|
19
20
|
* @example
|
|
20
21
|
* ```typescript
|
|
21
22
|
* // Create a service for User model with Axios adapter
|
|
@@ -36,9 +37,21 @@ import { HttpFlags } from "./types";
|
|
|
36
37
|
* // Delete a user
|
|
37
38
|
* await userService.delete(updatedUser.id);
|
|
38
39
|
* ```
|
|
39
|
-
* @
|
|
40
|
+
* @mermaid
|
|
41
|
+
* sequenceDiagram
|
|
42
|
+
* participant Client
|
|
43
|
+
* participant Service as RestService
|
|
44
|
+
* participant Adapter as HttpAdapter
|
|
45
|
+
* participant API
|
|
46
|
+
* Client->>Service: create(model)
|
|
47
|
+
* Service->>Adapter: prepare(model, pk)
|
|
48
|
+
* Service->>Adapter: create(table, id, record)
|
|
49
|
+
* Adapter->>API: HTTP POST
|
|
50
|
+
* API-->>Adapter: 201 Created
|
|
51
|
+
* Adapter-->>Service: record
|
|
52
|
+
* Service-->>Client: revert(record)
|
|
40
53
|
*/
|
|
41
|
-
export declare class RestService<M extends Model, Q, A extends HttpAdapter<any, Q, F, C>, F extends HttpFlags = HttpFlags, C extends Context<F> = Context<F>> implements CrudOperator<M>, BulkCrudOperator<M>, Observable {
|
|
54
|
+
export declare class RestService<M extends Model, Q, A extends HttpAdapter<any, any, Q, F, C>, F extends HttpFlags = HttpFlags, C extends Context<F> = Context<F>> implements CrudOperator<M>, BulkCrudOperator<M>, Observable {
|
|
42
55
|
private readonly _class;
|
|
43
56
|
private _pk;
|
|
44
57
|
/**
|
|
@@ -128,6 +141,16 @@ export declare class RestService<M extends Model, Q, A extends HttpAdapter<any,
|
|
|
128
141
|
* @param {M[]} models - The model instances to create
|
|
129
142
|
* @param {...any[]} args - Additional arguments to pass to the adapter
|
|
130
143
|
* @return {Promise<M[]>} A promise that resolves with an array of created model instances
|
|
144
|
+
* @mermaid
|
|
145
|
+
* sequenceDiagram
|
|
146
|
+
* participant Client
|
|
147
|
+
* participant Service as RestService
|
|
148
|
+
* participant Adapter as HttpAdapter
|
|
149
|
+
* Client->>Service: createAll(models)
|
|
150
|
+
* Service->>Adapter: prepare(model, pk) x N
|
|
151
|
+
* Service->>Adapter: createAll(table, ids[], records[])
|
|
152
|
+
* Adapter-->>Service: records[]
|
|
153
|
+
* Service-->>Client: revert(records[])
|
|
131
154
|
*/
|
|
132
155
|
createAll(models: M[], ...args: any[]): Promise<M[]>;
|
|
133
156
|
/**
|
package/lib/esm/RestService.js
CHANGED
|
@@ -13,6 +13,7 @@ import { Repository } from "@decaf-ts/core";
|
|
|
13
13
|
* @template C - The context type, extending Context<F>
|
|
14
14
|
* @param {A} adapter - The HTTP adapter instance
|
|
15
15
|
* @param {Constructor<M>} [clazz] - Optional constructor for the model class
|
|
16
|
+
* @class RestService
|
|
16
17
|
* @example
|
|
17
18
|
* ```typescript
|
|
18
19
|
* // Create a service for User model with Axios adapter
|
|
@@ -33,7 +34,19 @@ import { Repository } from "@decaf-ts/core";
|
|
|
33
34
|
* // Delete a user
|
|
34
35
|
* await userService.delete(updatedUser.id);
|
|
35
36
|
* ```
|
|
36
|
-
* @
|
|
37
|
+
* @mermaid
|
|
38
|
+
* sequenceDiagram
|
|
39
|
+
* participant Client
|
|
40
|
+
* participant Service as RestService
|
|
41
|
+
* participant Adapter as HttpAdapter
|
|
42
|
+
* participant API
|
|
43
|
+
* Client->>Service: create(model)
|
|
44
|
+
* Service->>Adapter: prepare(model, pk)
|
|
45
|
+
* Service->>Adapter: create(table, id, record)
|
|
46
|
+
* Adapter->>API: HTTP POST
|
|
47
|
+
* API-->>Adapter: 201 Created
|
|
48
|
+
* Adapter-->>Service: record
|
|
49
|
+
* Service-->>Client: revert(record)
|
|
37
50
|
*/
|
|
38
51
|
export class RestService {
|
|
39
52
|
/**
|
|
@@ -157,6 +170,16 @@ export class RestService {
|
|
|
157
170
|
* @param {M[]} models - The model instances to create
|
|
158
171
|
* @param {...any[]} args - Additional arguments to pass to the adapter
|
|
159
172
|
* @return {Promise<M[]>} A promise that resolves with an array of created model instances
|
|
173
|
+
* @mermaid
|
|
174
|
+
* sequenceDiagram
|
|
175
|
+
* participant Client
|
|
176
|
+
* participant Service as RestService
|
|
177
|
+
* participant Adapter as HttpAdapter
|
|
178
|
+
* Client->>Service: createAll(models)
|
|
179
|
+
* Service->>Adapter: prepare(model, pk) x N
|
|
180
|
+
* Service->>Adapter: createAll(table, ids[], records[])
|
|
181
|
+
* Adapter-->>Service: records[]
|
|
182
|
+
* Service-->>Client: revert(records[])
|
|
160
183
|
*/
|
|
161
184
|
async createAll(models, ...args) {
|
|
162
185
|
if (!models.length)
|
|
@@ -248,4 +271,4 @@ export class RestService {
|
|
|
248
271
|
});
|
|
249
272
|
}
|
|
250
273
|
}
|
|
251
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVzdFNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvUmVzdFNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUlMLGNBQWMsRUFDZCxhQUFhLEdBQ2QsTUFBTSx5QkFBeUIsQ0FBQztBQUVqQyxPQUFPLEVBQXdCLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSWxFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBa0NHO0FBQ0gsTUFBTSxPQUFPLFdBQVc7SUFZdEI7Ozs7OztPQU1HO0lBQ0gsSUFBSSxLQUFLO1FBQ1AsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNO1lBQ2QsTUFBTSxJQUFJLGFBQWEsQ0FBQywrQ0FBK0MsQ0FBQyxDQUFDO1FBQzNFLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNyQixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxJQUFJLEVBQUU7UUFDSixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUc7WUFBRSxJQUFJLENBQUMsR0FBRyxHQUFHLGNBQWMsQ0FBQyxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUM5RCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUM7SUFDbEIsQ0FBQztJQU9EOzs7Ozs7T0FNRztJQUNILElBQWMsT0FBTztRQUNuQixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVE7WUFDaEIsTUFBTSxJQUFJLGFBQWEsQ0FDckIsc0dBQXNHLENBQ3ZHLENBQUM7UUFDSixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsSUFBYyxTQUFTO1FBQ3JCLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVTtZQUFFLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDckUsT0FBTyxJQUFJLENBQUMs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QUFTLENBQUMsQ0FBQyxDQUFDLEtBQUssTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUNyRSxDQUFDO1FBQ04sQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBCdWxrQ3J1ZE9wZXJhdG9yLFxuICBDb250ZXh0LFxuICBDcnVkT3BlcmF0b3IsXG4gIGZpbmRQcmltYXJ5S2V5LFxuICBJbnRlcm5hbEVycm9yLFxufSBmcm9tIFwiQGRlY2FmLXRzL2RiLWRlY29yYXRvcnNcIjtcbmltcG9ydCB7IENvbnN0cnVjdG9yLCBNb2RlbCB9IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdG9yLXZhbGlkYXRpb25cIjtcbmltcG9ydCB7IE9ic2VydmFibGUsIE9ic2VydmVyLCBSZXBvc2l0b3J5IH0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG5pbXBvcnQgeyBIdHRwQWRhcHRlciB9IGZyb20gXCIuL2FkYXB0ZXJcIjtcbmltcG9ydCB7IEh0dHBGbGFncyB9IGZyb20gXCIuL3R5cGVzXCI7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIFNlcnZpY2UgY2xhc3MgZm9yIFJFU1QgQVBJIG9wZXJhdGlvbnNcbiAqIEBzdW1tYXJ5IFByb3ZpZGVzIGEgY29tcHJlaGVuc2l2ZSBpbXBsZW1lbnRhdGlvbiBmb3IgaW50ZXJhY3Rpbmcgd2l0aCBSRVNUIEFQSXMuXG4gKiBUaGlzIGNsYXNzIGltcGxlbWVudHMgQ1JVRCBvcGVyYXRpb25zIGZvciBzaW5nbGUgYW5kIGJ1bGsgb3BlcmF0aW9ucywgYXMgd2VsbCBhc1xuICogdGhlIE9ic2VydmFibGUgcGF0dGVybiB0byBub3RpZnkgb2JzZXJ2ZXJzIG9mIGNoYW5nZXMuIEl0IHdvcmtzIHdpdGggSFRUUCBhZGFwdGVyc1xuICogdG8gcGVyZm9ybSB0aGUgYWN0dWFsIEFQSSByZXF1ZXN0cyBhbmQgaGFuZGxlcyBtb2RlbCBjb252ZXJzaW9uLlxuICogQHRlbXBsYXRlIE0gLSBUaGUgbW9kZWwgdHlwZSwgZXh0ZW5kaW5nIE1vZGVsXG4gKiBAdGVtcGxhdGUgUSAtIFRoZSBxdWVyeSB0eXBlIHVzZWQgYnkgdGhlIGFkYXB0ZXJcbiAqIEB0ZW1wbGF0ZSBBIC0gVGhlIEhUVFAgYWRhcHRlciB0eXBlLCBleHRlbmRpbmcgSHR0cEFkYXB0ZXJcbiAqIEB0ZW1wbGF0ZSBGIC0gVGhlIEhUVFAgZmxhZ3MgdHlwZSwgZXh0ZW5kaW5nIEh0dHBGbGFnc1xuICogQHRlbXBsYXRlIEMgLSBUaGUgY29udGV4dCB0eXBlLCBleHRlbmRpbmcgQ29udGV4dDxGPlxuICogQHBhcmFtIHtBfSBhZGFwdGVyIC0gVGhlIEhUVFAgYWRhcHRlciBpbnN0YW5jZVxuICogQHBhcmFtIHtDb25zdHJ1Y3RvcjxNPn0gW2NsYXp6XSAtIE9wdGlvbmFsIGNvbnN0cnVjdG9yIGZvciB0aGUgbW9kZWwgY2xhc3NcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiAvLyBDcmVhdGUgYSBzZXJ2aWNlIGZvciBVc2VyIG1vZGVsIHdpdGggQXhpb3MgYWRhcHRlclxuICogY29uc3QgYXhpb3NBZGFwdGVyID0gbmV3IEF4aW9zQWRhcHRlcih7XG4gKiAgIHByb3RvY29sOiAnaHR0cHMnLFxuICogICBob3N0OiAnYXBpLmV4YW1wbGUuY29tJ1xuICogfSk7XG4gKiBjb25zdCB1c2VyU2VydmljZSA9IG5ldyBSZXN0U2VydmljZShheGlvc0FkYXB0ZXIsIFVzZXIpO1xuICpcbiAqIC8vIENyZWF0ZSBhIG5ldyB1c2VyXG4gKiBjb25zdCB1c2VyID0gbmV3IFVzZXIoeyBuYW1lOiAnSm9obiBEb2UnLCBlbWFpbDogJ2pvaG5AZXhhbXBsZS5jb20nIH0pO1xuICogY29uc3QgY3JlYXRlZFVzZXIgPSBhd2FpdCB1c2VyU2VydmljZS5jcmVhdGUodXNlcik7XG4gKlxuICogLy8gVXBkYXRlIGEgdXNlclxuICogY3JlYXRlZFVzZXIubmFtZSA9ICdKYW5lIERvZSc7XG4gKiBjb25zdCB1cGRhdGVkVXNlciA9IGF3YWl0IHVzZXJTZXJ2aWNlLnVwZGF0ZShjcmVhdGVkVXNlcik7XG4gKlxuICogLy8gRGVsZXRlIGEgdXNlclxuICogYXdhaXQgdXNlclNlcnZpY2UuZGVsZXRlKHVwZGF0ZWRVc2VyLmlkKTtcbiAqIGBgYFxuICogQGNsYXNzXG4gKi9cbmV4cG9ydCBjbGFzcyBSZXN0U2VydmljZTxcbiAgICBNIGV4dGVuZHMgTW9kZWwsXG4gICAgUSxcbiAgICBBIGV4dGVuZHMgSHR0cEFkYXB0ZXI8YW55LCBRLCBGLCBDPixcbiAgICBGIGV4dGVuZHMgSHR0cEZsYWdzID0gSHR0cEZsYWdzLFxuICAgIEMgZXh0ZW5kcyBDb250ZXh0PEY+ID0gQ29udGV4dDxGPixcbiAgPlxuICBpbXBsZW1lbnRzIENydWRPcGVyYXRvcjxNPiwgQnVsa0NydWRPcGVyYXRvcjxNPiwgT2JzZXJ2YWJsZVxue1xuICBwcml2YXRlIHJlYWRvbmx5IF9jbGFzcyE6IENvbnN0cnVjdG9yPE0+O1xuICBwcml2YXRlIF9wayE6IGtleW9mIE07XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBHZXRzIHRoZSBtb2RlbCBjbGFzcyBjb25zdHJ1Y3RvclxuICAgKiBAc3VtbWFyeSBSZXRyaWV2ZXMgdGhlIG1vZGVsIGNsYXNzIGNvbnN0cnVjdG9yIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHNlcnZpY2UuXG4gICAqIFRocm93cyBhbiBlcnJvciBpZiBubyBjbGFzcyBkZWZpbml0aW9uIGlzIGZvdW5kLlxuICAgKiBAcmV0dXJuIHtDb25zdHJ1Y3RvcjxNPn0gVGhlIG1vZGVsIGNsYXNzIGNvbnN0cnVjdG9yXG4gICAqIEB0aHJvd3Mge0ludGVybmFsRXJyb3J9IElmIG5vIGNsYXNzIGRlZmluaXRpb24gaXMgZm91bmRcbiAgICovXG4gIGdldCBjbGFzcygpIHtcbiAgICBpZiAoIXRoaXMuX2NsYXNzKVxuICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXCJObyBjbGFzcyBkZWZpbml0aW9uIGZvdW5kIGZvciB0aGlzIHJlcG9zaXRvcnlcIik7XG4gICAgcmV0dXJuIHRoaXMuX2NsYXNzO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBHZXRzIHRoZSBwcmltYXJ5IGtleSBwcm9wZXJ0eSBuYW1lXG4gICAqIEBzdW1tYXJ5IFJldHJpZXZlcyB0aGUgbmFtZSBvZiB0aGUgcHJpbWFyeSBrZXkgcHJvcGVydHkgZm9yIHRoZSBtb2RlbC5cbiAgICogSWYgbm90IGFscmVhZHkgZGV0ZXJtaW5lZCwgaXQgZmluZHMgdGhlIHByaW1hcnkga2V5IHVzaW5nIHRoZSBtb2RlbCBjbGFzcy5cbiAgICogQHJldHVybiBUaGUgcHJpbWFyeSBrZXkgcHJvcGVydHkgbmFtZVxuICAgKi9cbiAgZ2V0IHBrKCkge1xuICAgIGlmICghdGhpcy5fcGspIHRoaXMuX3BrID0gZmluZFByaW1hcnlLZXkobmV3IHRoaXMuY2xhc3MoKSkuaWQ7XG4gICAgcmV0dXJuIHRoaXMuX3BrO1xuICB9XG5cbiAgcHJvdGVjdGVkIG9ic2VydmVyczogT2JzZXJ2ZXJbXSA9IFtdO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2FkYXB0ZXIhOiBBO1xuICBwcml2YXRlIF90YWJsZU5hbWUhOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBHZXRzIHRoZSBIVFRQIGFkYXB0ZXJcbiAgICogQHN1bW1hcnkgUmV0cmlldmVzIHRoZSBIVFRQIGFkYXB0ZXIgYXNzb2NpYXRlZCB3aXRoIHRoaXMgc2VydmljZS5cbiAgICogVGhyb3dzIGFuIGVycm9yIGlmIG5vIGFkYXB0ZXIgaXMgZm91bmQuXG4gICAqIEByZXR1cm4ge0F9IFRoZSBIVFRQIGFkYXB0ZXIgaW5zdGFuY2VcbiAgICogQHRocm93cyB7SW50ZXJuYWxFcnJvcn0gSWYgbm8gYWRhcHRlciBpcyBmb3VuZFxuICAgKi9cbiAgcHJvdGVjdGVkIGdldCBhZGFwdGVyKCk6IEEge1xuICAgIGlmICghdGhpcy5fYWRhcHRlcilcbiAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFxuICAgICAgICBcIk5vIGFkYXB0ZXIgZm91bmQgZm9yIHRoaXMgcmVwb3NpdG9yeS4gZGlkIHlvdSB1c2UgdGhlIEB1c2VzIGRlY29yYXRvciBvciBwYXNzIGl0IGluIHRoZSBjb25zdHJ1Y3Rvcj9cIlxuICAgICAgKTtcbiAgICByZXR1cm4gdGhpcy5fYWRhcHRlcjtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gR2V0cyB0aGUgdGFibGUgbmFtZSBmb3IgdGhlIG1vZGVsXG4gICAqIEBzdW1tYXJ5IFJldHJpZXZlcyB0aGUgdGFibGUgbmFtZSBhc3NvY2lhdGVkIHdpdGggdGhlIG1vZGVsIGNsYXNzLlxuICAgKiBJZiBub3QgYWxyZWFkeSBkZXRlcm1pbmVkLCBpdCBnZXRzIHRoZSB0YWJsZSBuYW1lIGZyb20gdGhlIFJlcG9zaXRvcnkgdXRpbGl0eS5cbiAgICogQHJldHVybiB7c3RyaW5nfSBUaGUgdGFibGUgbmFtZVxuICAgKi9cbiAgcHJvdGVjdGVkIGdldCB0YWJsZU5hbWUoKSB7XG4gICAgaWYgKCF0aGlzLl90YWJsZU5hbWUpIHRoaXMuX3RhYmxlTmFtZSA9IFJlcG9zaXRvcnkudGFibGUodGhpcy5jbGFzcyk7XG4gICAgcmV0dXJuIHRoaXMuX3RhYmxlTmFtZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gSW5pdGlhbGl6ZXMgYSBuZXcgUmVzdFNlcnZpY2UgaW5zdGFuY2VcbiAgICogQHN1bW1hcnkgQ3JlYXRlcyBhIG5ldyBzZXJ2aWNlIGluc3RhbmNlIHdpdGggdGhlIHNwZWNpZmllZCBhZGFwdGVyIGFuZCBvcHRpb25hbCBtb2RlbCBjbGFzcy5cbiAgICogVGhlIGNvbnN0cnVjdG9yIHN0b3JlcyB0aGUgYWRhcHRlciBhbmQgbW9kZWwgY2xhc3MgZm9yIGxhdGVyIHVzZSBpbiBDUlVEIG9wZXJhdGlvbnMuXG4gICAqIEBwYXJhbSB7QX0gYWRhcHRlciAtIFRoZSBIVFRQIGFkYXB0ZXIgaW5zdGFuY2UgdG8gdXNlIGZvciBBUEkgcmVxdWVzdHNcbiAgICogQHBhcmFtIHtDb25zdHJ1Y3RvcjxNPn0gW2NsYXp6XSAtIE9wdGlvbmFsIGNvbnN0cnVjdG9yIGZvciB0aGUgbW9kZWwgY2xhc3NcbiAgICovXG4gIGNvbnN0cnVjdG9yKGFkYXB0ZXI6IEEsIGNsYXp6PzogQ29uc3RydWN0b3I8TT4pIHtcbiAgICB0aGlzLl9hZGFwdGVyID0gYWRhcHRlcjtcbiAgICBpZiAoY2xhenopIHRoaXMuX2NsYXNzID0gY2xheno7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIENyZWF0ZXMgYSBuZXcgcmVzb3VyY2VcbiAgICogQHN1bW1hcnkgQ3JlYXRlcyBhIG5ldyByZXNvdXJjZSBpbiB0aGUgUkVTVCBBUEkgdXNpbmcgdGhlIHByb3ZpZGVkIG1vZGVsLlxuICAgKiBUaGUgbWV0aG9kIHByZXBhcmVzIHRoZSBtb2RlbCBmb3IgdGhlIGFkYXB0ZXIsIHNlbmRzIHRoZSBjcmVhdGUgcmVxdWVzdCxcbiAgICogYW5kIHRoZW4gY29udmVydHMgdGhlIHJlc3BvbnNlIGJhY2sgdG8gYSBtb2RlbCBpbnN0YW5jZS5cbiAgICogQHBhcmFtIHtNfSBtb2RlbCAtIFRoZSBtb2RlbCBpbnN0YW5jZSB0byBjcmVhdGVcbiAgICogQHBhcmFtIHsuLi5hbnlbXX0gYXJncyAtIEFkZGl0aW9uYWwgYXJndW1lbnRzIHRvIHBhc3MgdG8gdGhlIGFkYXB0ZXJcbiAgICogQHJldHVybiB7UHJvbWlzZTxNPn0gQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2l0aCB0aGUgY3JlYXRlZCBtb2RlbCBpbnN0YW5jZVxuICAgKi9cbiAgYXN5bmMgY3JlYXRlKG1vZGVsOiBNLCAuLi5hcmdzOiBhbnlbXSk6IFByb21pc2U8TT4ge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBwcmVmZXItY29uc3RcbiAgICBsZXQgeyByZWNvcmQsIGlkIH0gPSB0aGlzLmFkYXB0ZXIucHJlcGFyZShtb2RlbCwgdGhpcy5wayk7XG4gICAgcmVjb3JkID0gYXdhaXQgdGhpcy5hZGFwdGVyLmNyZWF0ZSh0aGlzLnRhYmxlTmFtZSwgaWQsIHJlY29yZCwgLi4uYXJncyk7XG4gICAgcmV0dXJuIHRoaXMuYWRhcHRlci5yZXZlcnQocmVjb3JkLCB0aGlzLmNsYXNzLCB0aGlzLnBrLCBpZCk7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFJldHJpZXZlcyBhIHJlc291cmNlIGJ5IElEXG4gICAqIEBzdW1tYXJ5IEZldGNoZXMgYSByZXNvdXJjZSBmcm9tIHRoZSBSRVNUIEFQSSB1c2luZyB0aGUgcHJvdmlkZWQgSUQuXG4gICAqIFRoZSBtZXRob2Qgc2VuZHMgdGhlIHJlYWQgcmVxdWVzdCBhbmQgY29udmVydHMgdGhlIHJlc3BvbnNlIHRvIGEgbW9kZWwgaW5zdGFuY2UuXG4gICAqIEBwYXJhbSB7c3RyaW5nfG51bWJlcn0gaWQgLSBUaGUgaWRlbnRpZmllciBvZiB0aGUgcmVzb3VyY2UgdG8gcmV0cmlldmVcbiAgICogQHBhcmFtIHsuLi5hbnlbXX0gYXJncyAtIEFkZGl0aW9uYWwgYXJndW1lbnRzIHRvIHBhc3MgdG8gdGhlIGFkYXB0ZXJcbiAgICogQHJldHVybiB7UHJvbWlzZTxNPn0gQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2l0aCB0aGUgcmV0cmlldmVkIG1vZGVsIGluc3RhbmNlXG4gICAqL1xuICBhc3luYyByZWFkKGlkOiBzdHJpbmcgfCBudW1iZXIsIC4uLmFyZ3M6IGFueVtdKTogUHJvbWlzZTxNPiB7XG4gICAgY29uc3QgbSA9IGF3YWl0IHRoaXMuYWRhcHRlci5yZWFkKHRoaXMudGFibGVOYW1lLCBpZCwgLi4uYXJncyk7XG4gICAgcmV0dXJuIHRoaXMuYWRhcHRlci5yZXZlcnQobSwgdGhpcy5jbGFzcywgdGhpcy5waywgaWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBVcGRhdGVzIGFuIGV4aXN0aW5nIHJlc291cmNlXG4gICAqIEBzdW1tYXJ5IFVwZGF0ZXMgYW4gZXhpc3RpbmcgcmVzb3VyY2UgaW4gdGhlIFJFU1QgQVBJIHVzaW5nIHRoZSBwcm92aWRlZCBtb2RlbC5cbiAgICogVGhlIG1ldGhvZCBwcmVwYXJlcyB0aGUgbW9kZWwgZm9yIHRoZSBhZGFwdGVyLCBzZW5kcyB0aGUgdXBkYXRlIHJlcXVlc3QsXG4gICAqIGFuZCB0aGVuIGNvbnZlcnRzIHRoZSByZXNwb25zZSBiYWNrIHRvIGEgbW9kZWwgaW5zdGFuY2UuXG4gICAqIEBwYXJhbSB7TX0gbW9kZWwgLSBUaGUgbW9kZWwgaW5zdGFuY2Ugd2l0aCB1cGRhdGVkIGRhdGFcbiAgICogQHBhcmFtIHsuLi5hbnlbXX0gYXJncyAtIEFkZGl0aW9uYWwgYXJndW1lbnRzIHRvIHBhc3MgdG8gdGhlIGFkYXB0ZXJcbiAgICogQHJldHVybiB7UHJvbWlzZTxNPn0gQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2l0aCB0aGUgdXBkYXRlZCBtb2RlbCBpbnN0YW5jZVxuICAgKi9cbiAgYXN5bmMgdXBkYXRlKG1vZGVsOiBNLCAuLi5hcmdzOiBhbnlbXSk6IFByb21pc2U8TT4ge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBwcmVmZXItY29uc3RcbiAgICBsZXQgeyByZWNvcmQsIGlkIH0gPSB0aGlzLmFkYXB0ZXIucHJlcGFyZShtb2RlbCwgdGhpcy5wayk7XG4gICAgcmVjb3JkID0gYXdhaXQgdGhpcy5hZGFwdGVyLnVwZGF0ZSh0aGlzLnRhYmxlTmFtZSwgaWQsIHJlY29yZCwgLi4uYXJncyk7XG4gICAgcmV0dXJuIHRoaXMuYWRhcHRlci5yZXZlcnQocmVjb3JkLCB0aGlzLmNsYXNzLCB0aGlzLnBrLCBpZCk7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIERlbGV0ZXMgYSByZXNvdXJjZSBieSBJRFxuICAgKiBAc3VtbWFyeSBSZW1vdmVzIGEgcmVzb3VyY2UgZnJvbSB0aGUgUkVTVCBBUEkgdXNpbmcgdGhlIHByb3ZpZGVkIElELlxuICAgKiBUaGUgbWV0aG9kIHNlbmRzIHRoZSBkZWxldGUgcmVxdWVzdCBhbmQgY29udmVydHMgdGhlIHJlc3BvbnNlIHRvIGEgbW9kZWwgaW5zdGFuY2UuXG4gICAqIEBwYXJhbSB7c3RyaW5nfG51bWJlcn0gaWQgLSBUaGUgaWRlbnRpZmllciBvZiB0aGUgcmVzb3VyY2UgdG8gZGVsZXRlXG4gICAqIEBwYXJhbSB7Li4uYW55W119IGFyZ3MgLSBBZGRpdGlvbmFsIGFyZ3VtZW50cyB0byBwYXNzIHRvIHRoZSBhZGFwdGVyXG4gICAqIEByZXR1cm4ge1Byb21pc2U8TT59IEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHdpdGggdGhlIGRlbGV0ZWQgbW9kZWwgaW5zdGFuY2VcbiAgICovXG4gIGFzeW5jIGRlbGV0ZShpZDogc3RyaW5nIHwgbnVtYmVyLCAuLi5hcmdzOiBhbnlbXSk6IFByb21pc2U8TT4ge1xuICAgIGNvbnN0IG0gPSBhd2FpdCB0aGlzLmFkYXB0ZXIuZGVsZXRlKHRoaXMudGFibGVOYW1lLCBpZCwgLi4uYXJncyk7XG4gICAgcmV0dXJuIHRoaXMuYWRhcHRlci5yZXZlcnQobSwgdGhpcy5jbGFzcywgdGhpcy5waywgaWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBDcmVhdGVzIG11bHRpcGxlIHJlc291cmNlc1xuICAgKiBAc3VtbWFyeSBDcmVhdGVzIG11bHRpcGxlIHJlc291cmNlcyBpbiB0aGUgUkVTVCBBUEkgdXNpbmcgdGhlIHByb3ZpZGVkIG1vZGVscy5cbiAgICogVGhlIG1ldGhvZCBwcmVwYXJlcyBlYWNoIG1vZGVsIGZvciB0aGUgYWRhcHRlciwgc2VuZHMgYSBidWxrIGNyZWF0ZSByZXF1ZXN0LFxuICAgKiBhbmQgdGhlbiBjb252ZXJ0cyB0aGUgcmVzcG9uc2VzIGJhY2sgdG8gbW9kZWwgaW5zdGFuY2VzLlxuICAgKiBAcGFyYW0ge01bXX0gbW9kZWxzIC0gVGhlIG1vZGVsIGluc3RhbmNlcyB0byBjcmVhdGVcbiAgICogQHBhcmFtIHsuLi5hbnlbXX0gYXJncyAtIEFkZGl0aW9uYWwgYXJndW1lbnRzIHRvIHBhc3MgdG8gdGhlIGFkYXB0ZXJcbiAgICogQHJldHVybiB7UHJvbWlzZTxNW10+fSBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aXRoIGFuIGFycmF5IG9mIGNyZWF0ZWQgbW9kZWwgaW5zdGFuY2VzXG4gICAqL1xuICBhc3luYyBjcmVhdGVBbGwobW9kZWxzOiBNW10sIC4uLmFyZ3M6IGFueVtdKTogUHJvbWlzZTxNW10+IHtcbiAgICBpZiAoIW1vZGVscy5sZW5ndGgpIHJldHVybiBtb2RlbHM7XG4gICAgY29uc3QgcHJlcGFyZWQgPSBtb2RlbHMubWFwKChtKSA9PiB0aGlzLmFkYXB0ZXIucHJlcGFyZShtLCB0aGlzLnBrKSk7XG4gICAgY29uc3QgaWRzID0gcHJlcGFyZWQubWFwKChwKSA9PiBwLmlkKTtcbiAgICBsZXQgcmVjb3JkcyA9IHByZXBhcmVkLm1hcCgocCkgPT4gcC5yZWNvcmQpO1xuICAgIHJlY29yZHMgPSBhd2FpdCB0aGlzLmFkYXB0ZXIuY3JlYXRlQWxsKFxuICAgICAgdGhpcy50YWJsZU5hbWUsXG4gICAgICBpZHMgYXMgKHN0cmluZyB8IG51bWJlcilbXSxcbiAgICAgIHJlY29yZHMsXG4gICAgICAuLi5hcmdzXG4gICAgKTtcbiAgICByZXR1cm4gcmVjb3Jkcy5tYXAoKHIsIGkpID0+XG4gICAgICB0aGlzLmFkYXB0ZXIucmV2ZXJ0KHIsIHRoaXMuY2xhc3MsIHRoaXMucGssIGlkc1tpXSBhcyBzdHJpbmcgfCBudW1iZXIpXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gRGVsZXRlcyBtdWx0aXBsZSByZXNvdXJjZXMgYnkgSURzXG4gICAqIEBzdW1tYXJ5IFJlbW92ZXMgbXVsdGlwbGUgcmVzb3VyY2VzIGZyb20gdGhlIFJFU1QgQVBJIHVzaW5nIHRoZSBwcm92aWRlZCBJRHMuXG4gICAqIFRoZSBtZXRob2Qgc2VuZHMgYSBidWxrIGRlbGV0ZSByZXF1ZXN0IGFuZCBjb252ZXJ0cyB0aGUgcmVzcG9uc2VzIHRvIG1vZGVsIGluc3RhbmNlcy5cbiAgICogQHBhcmFtIHtzdHJpbmdbXXxudW1iZXJbXX0ga2V5cyAtIFRoZSBpZGVudGlmaWVycyBvZiB0aGUgcmVzb3VyY2VzIHRvIGRlbGV0ZVxuICAgKiBAcGFyYW0gey4uLmFueVtdfSBhcmdzIC0gQWRkaXRpb25hbCBhcmd1bWVudHMgdG8gcGFzcyB0byB0aGUgYWRhcHRlclxuICAgKiBAcmV0dXJuIHtQcm9taXNlPE1bXT59IEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHdpdGggYW4gYXJyYXkgb2YgZGVsZXRlZCBtb2RlbCBpbnN0YW5jZXNcbiAgICovXG4gIGFzeW5jIGRlbGV0ZUFsbChrZXlzOiBzdHJpbmdbXSB8IG51bWJlcltdLCAuLi5hcmdzOiBhbnlbXSk6IFByb21pc2U8TVtdPiB7XG4gICAgY29uc3QgcmVzdWx0cyA9IGF3YWl0IHRoaXMuYWRhcHRlci5kZWxldGVBbGwodGhpcy50YWJsZU5hbWUsIGtleXMsIC4uLmFyZ3MpO1xuICAgIHJldHVybiByZXN1bHRzLm1hcCgociwgaSkgPT5cbiAgICAgIHRoaXMuYWRhcHRlci5yZXZlcnQociwgdGhpcy5jbGFzcywgdGhpcy5waywga2V5c1tpXSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBSZXRyaWV2ZXMgbXVsdGlwbGUgcmVzb3VyY2VzIGJ5IElEc1xuICAgKiBAc3VtbWFyeSBGZXRjaGVzIG11bHRpcGxlIHJlc291cmNlcyBmcm9tIHRoZSBSRVNUIEFQSSB1c2luZyB0aGUgcHJvdmlkZWQgSURzLlxuICAgKiBUaGUgbWV0aG9kIHNlbmRzIGEgYnVsayByZWFkIHJlcXVlc3QgYW5kIGNvbnZlcnRzIHRoZSByZXNwb25zZXMgdG8gbW9kZWwgaW5zdGFuY2VzLlxuICAgKiBAcGFyYW0ge3N0cmluZ1tdfG51bWJlcltdfSBrZXlzIC0gVGhlIGlkZW50aWZpZXJzIG9mIHRoZSByZXNvdXJjZXMgdG8gcmV0cmlldmVcbiAgICogQHBhcmFtIHsuLi5hbnlbXX0gYXJncyAtIEFkZGl0aW9uYWwgYXJndW1lbnRzIHRvIHBhc3MgdG8gdGhlIGFkYXB0ZXJcbiAgICogQHJldHVybiB7UHJvbWlzZTxNW10+fSBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aXRoIGFuIGFycmF5IG9mIHJldHJpZXZlZCBtb2RlbCBpbnN0YW5jZXNcbiAgICovXG4gIGFzeW5jIHJlYWRBbGwoa2V5czogc3RyaW5nW10gfCBudW1iZXJbXSwgLi4uYXJnczogYW55W10pOiBQcm9taXNlPE1bXT4ge1xuICAgIGNvbnN0IHJlY29yZHMgPSBhd2FpdCB0aGlzLmFkYXB0ZXIucmVhZEFsbCh0aGlzLnRhYmxlTmFtZSwga2V5cywgLi4uYXJncyk7XG4gICAgcmV0dXJuIHJlY29yZHMubWFwKChyLCBpKSA9PlxuICAgICAgdGhpcy5hZGFwdGVyLnJldmVydChyLCB0aGlzLmNsYXNzLCB0aGlzLnBrLCBrZXlzW2ldKVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFVwZGF0ZXMgbXVsdGlwbGUgcmVzb3VyY2VzXG4gICAqIEBzdW1tYXJ5IFVwZGF0ZXMgbXVsdGlwbGUgcmVzb3VyY2VzIGluIHRoZSBSRVNUIEFQSSB1c2luZyB0aGUgcHJvdmlkZWQgbW9kZWxzLlxuICAgKiBUaGUgbWV0aG9kIHByZXBhcmVzIGVhY2ggbW9kZWwgZm9yIHRoZSBhZGFwdGVyLCBzZW5kcyBhIGJ1bGsgdXBkYXRlIHJlcXVlc3QsXG4gICAqIGFuZCB0aGVuIGNvbnZlcnRzIHRoZSByZXNwb25zZXMgYmFjayB0byBtb2RlbCBpbnN0YW5jZXMuXG4gICAqIEBwYXJhbSB7TVtdfSBtb2RlbHMgLSBUaGUgbW9kZWwgaW5zdGFuY2VzIHdpdGggdXBkYXRlZCBkYXRhXG4gICAqIEBwYXJhbSB7Li4uYW55W119IGFyZ3MgLSBBZGRpdGlvbmFsIGFyZ3VtZW50cyB0byBwYXNzIHRvIHRoZSBhZGFwdGVyXG4gICAqIEByZXR1cm4ge1Byb21pc2U8TVtdPn0gQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2l0aCBhbiBhcnJheSBvZiB1cGRhdGVkIG1vZGVsIGluc3RhbmNlc1xuICAgKi9cbiAgYXN5bmMgdXBkYXRlQWxsKG1vZGVsczogTVtdLCAuLi5hcmdzOiBhbnlbXSk6IFByb21pc2U8TVtdPiB7XG4gICAgY29uc3QgcmVjb3JkcyA9IG1vZGVscy5tYXAoKG0pID0+IHRoaXMuYWRhcHRlci5wcmVwYXJlKG0sIHRoaXMucGspKTtcbiAgICBjb25zdCB1cGRhdGVkID0gYXdhaXQgdGhpcy5hZGFwdGVyLnVwZGF0ZUFsbChcbiAgICAgIHRoaXMudGFibGVOYW1lLFxuICAgICAgcmVjb3Jkcy5tYXAoKHIpID0+IHIuaWQpLFxuICAgICAgcmVjb3Jkcy5tYXAoKHIpID0+IHIucmVjb3JkKSxcbiAgICAgIC4uLmFyZ3NcbiAgICApO1xuICAgIHJldHVybiB1cGRhdGVkLm1hcCgodSwgaSkgPT5cbiAgICAgIHRoaXMuYWRhcHRlci5yZXZlcnQodSwgdGhpcy5jbGFzcywgdGhpcy5waywgcmVjb3Jkc1tpXS5pZClcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBSZWdpc3RlcnMgYW4gb2JzZXJ2ZXJcbiAgICogQHN1bW1hcnkgQWRkcyBhbiBvYnNlcnZlciB0byB0aGUgbGlzdCBvZiBvYnNlcnZlcnMgdGhhdCB3aWxsIGJlIG5vdGlmaWVkIG9mIGNoYW5nZXMuXG4gICAqIFRocm93cyBhbiBlcnJvciBpZiB0aGUgb2JzZXJ2ZXIgaXMgYWxyZWFkeSByZWdpc3RlcmVkLlxuICAgKiBAcGFyYW0ge09ic2VydmVyfSBvYnNlcnZlciAtIFRoZSBvYnNlcnZlciB0byByZWdpc3RlclxuICAgKiBAcmV0dXJuIHt2b2lkfVxuICAgKiBAdGhyb3dzIHtJbnRlcm5hbEVycm9yfSBJZiB0aGUgb2JzZXJ2ZXIgaXMgYWxyZWFkeSByZWdpc3RlcmVkXG4gICAqL1xuICBvYnNlcnZlKG9ic2VydmVyOiBPYnNlcnZlcik6IHZvaWQge1xuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5vYnNlcnZlcnMuaW5kZXhPZihvYnNlcnZlcik7XG4gICAgaWYgKGluZGV4ICE9PSAtMSkgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXCJPYnNlcnZlciBhbHJlYWR5IHJlZ2lzdGVyZWRcIik7XG4gICAgdGhpcy5vYnNlcnZlcnMucHVzaChvYnNlcnZlcik7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFVucmVnaXN0ZXJzIGFuIG9ic2VydmVyXG4gICAqIEBzdW1tYXJ5IFJlbW92ZXMgYW4gb2JzZXJ2ZXIgZnJvbSB0aGUgbGlzdCBvZiBvYnNlcnZlcnMuXG4gICAqIFRocm93cyBhbiBlcnJvciBpZiB0aGUgb2JzZXJ2ZXIgaXMgbm90IGZvdW5kLlxuICAgKiBAcGFyYW0ge09ic2VydmVyfSBvYnNlcnZlciAtIFRoZSBvYnNlcnZlciB0byB1bnJlZ2lzdGVyXG4gICAqIEByZXR1cm4ge3ZvaWR9XG4gICAqIEB0aHJvd3Mge0ludGVybmFsRXJyb3J9IElmIHRoZSBvYnNlcnZlciBpcyBub3QgZm91bmRcbiAgICovXG4gIHVuT2JzZXJ2ZShvYnNlcnZlcjogT2JzZXJ2ZXIpOiB2b2lkIHtcbiAgICBjb25zdCBpbmRleCA9IHRoaXMub2JzZXJ2ZXJzLmluZGV4T2Yob2JzZXJ2ZXIpO1xuICAgIGlmIChpbmRleCA9PT0gLTEpIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFwiRmFpbGVkIHRvIGZpbmQgT2JzZXJ2ZXJcIik7XG4gICAgdGhpcy5vYnNlcnZlcnMuc3BsaWNlKGluZGV4LCAxKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gTm90aWZpZXMgYWxsIHJlZ2lzdGVyZWQgb2JzZXJ2ZXJzXG4gICAqIEBzdW1tYXJ5IENhbGxzIHRoZSByZWZyZXNoIG1ldGhvZCBvbiBhbGwgcmVnaXN0ZXJlZCBvYnNlcnZlcnMgdG8gdXBkYXRlIHRoZW1zZWx2ZXMuXG4gICAqIEFueSBlcnJvcnMgZHVyaW5nIG9ic2VydmVyIHJlZnJlc2ggYXJlIGxvZ2dlZCBhcyB3YXJuaW5ncyBidXQgZG9uJ3Qgc3RvcCB0aGUgcHJvY2Vzcy5cbiAgICogQHBhcmFtIHsuLi5hbnlbXX0gW2FyZ3NdIC0gT3B0aW9uYWwgYXJndW1lbnRzIHRvIHBhc3MgdG8gdGhlIG9ic2VydmVyIHJlZnJlc2ggbWV0aG9kXG4gICAqIEByZXR1cm4ge1Byb21pc2U8dm9pZD59IEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHdoZW4gYWxsIG9ic2VydmVycyBoYXZlIGJlZW4gdXBkYXRlZFxuICAgKi9cbiAgYXN5bmMgdXBkYXRlT2JzZXJ2ZXJzKC4uLmFyZ3M6IGFueVtdKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgcmVzdWx0cyA9IGF3YWl0IFByb21pc2UuYWxsU2V0dGxlZChcbiAgICAgIHRoaXMub2JzZXJ2ZXJzLm1hcCgobykgPT4gby5yZWZyZXNoKC4uLmFyZ3MpKVxuICAgICk7XG4gICAgcmVzdWx0cy5mb3JFYWNoKChyZXN1bHQsIGkpID0+IHtcbiAgICAgIGlmIChyZXN1bHQuc3RhdHVzID09PSBcInJlamVjdGVkXCIpXG4gICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICBgRmFpbGVkIHRvIHVwZGF0ZSBvYnNlcnZhYmxlICR7dGhpcy5vYnNlcnZlcnNbaV19OiAke3Jlc3VsdC5yZWFzb259YFxuICAgICAgICApO1xuICAgIH0pO1xuICB9XG59XG4iXX0=
|
|
274
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVzdFNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvUmVzdFNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUlMLGNBQWMsRUFDZCxhQUFhLEdBQ2QsTUFBTSx5QkFBeUIsQ0FBQztBQUVqQyxPQUFPLEVBQXdCLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSWxFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQStDRztBQUNILE1BQU0sT0FBTyxXQUFXO0lBWXRCOzs7Ozs7T0FNRztJQUNILElBQUksS0FBSztRQUNQLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTTtZQUNkLE1BQU0sSUFBSSxhQUFhLENBQUMsK0NBQStDLENBQUMsQ0FBQztRQUMzRSxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDckIsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsSUFBSSxFQUFFO1FBQ0osSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHO1lBQUUsSUFBSSxDQUFDLEdBQUcsR0FBRyxjQUFjLENBQUMsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDOUQsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDO0lBQ2xCLENBQUM7SUFPRDs7Ozs7O09BTUc7SUFDSCxJQUFjLE9BQU87UUFDbkIsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRO1lBQ2hCLE1BQU0sSUFBSSxhQUFhLENBQ3JCLHNHQUFzRyxDQUN2RyxDQUFDO1FBQ0osT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3ZCLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILElBQWMsU0FBUztRQUNyQixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVU7WUFBRSxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JFLE9B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LENBQ1YsK0JBQStCLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEtBQUssTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUNyRSxDQUFDO1FBQ04sQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBCdWxrQ3J1ZE9wZXJhdG9yLFxuICBDb250ZXh0LFxuICBDcnVkT3BlcmF0b3IsXG4gIGZpbmRQcmltYXJ5S2V5LFxuICBJbnRlcm5hbEVycm9yLFxufSBmcm9tIFwiQGRlY2FmLXRzL2RiLWRlY29yYXRvcnNcIjtcbmltcG9ydCB7IENvbnN0cnVjdG9yLCBNb2RlbCB9IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdG9yLXZhbGlkYXRpb25cIjtcbmltcG9ydCB7IE9ic2VydmFibGUsIE9ic2VydmVyLCBSZXBvc2l0b3J5IH0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG5pbXBvcnQgeyBIdHRwQWRhcHRlciB9IGZyb20gXCIuL2FkYXB0ZXJcIjtcbmltcG9ydCB7IEh0dHBGbGFncyB9IGZyb20gXCIuL3R5cGVzXCI7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIFNlcnZpY2UgY2xhc3MgZm9yIFJFU1QgQVBJIG9wZXJhdGlvbnNcbiAqIEBzdW1tYXJ5IFByb3ZpZGVzIGEgY29tcHJlaGVuc2l2ZSBpbXBsZW1lbnRhdGlvbiBmb3IgaW50ZXJhY3Rpbmcgd2l0aCBSRVNUIEFQSXMuXG4gKiBUaGlzIGNsYXNzIGltcGxlbWVudHMgQ1JVRCBvcGVyYXRpb25zIGZvciBzaW5nbGUgYW5kIGJ1bGsgb3BlcmF0aW9ucywgYXMgd2VsbCBhc1xuICogdGhlIE9ic2VydmFibGUgcGF0dGVybiB0byBub3RpZnkgb2JzZXJ2ZXJzIG9mIGNoYW5nZXMuIEl0IHdvcmtzIHdpdGggSFRUUCBhZGFwdGVyc1xuICogdG8gcGVyZm9ybSB0aGUgYWN0dWFsIEFQSSByZXF1ZXN0cyBhbmQgaGFuZGxlcyBtb2RlbCBjb252ZXJzaW9uLlxuICogQHRlbXBsYXRlIE0gLSBUaGUgbW9kZWwgdHlwZSwgZXh0ZW5kaW5nIE1vZGVsXG4gKiBAdGVtcGxhdGUgUSAtIFRoZSBxdWVyeSB0eXBlIHVzZWQgYnkgdGhlIGFkYXB0ZXJcbiAqIEB0ZW1wbGF0ZSBBIC0gVGhlIEhUVFAgYWRhcHRlciB0eXBlLCBleHRlbmRpbmcgSHR0cEFkYXB0ZXJcbiAqIEB0ZW1wbGF0ZSBGIC0gVGhlIEhUVFAgZmxhZ3MgdHlwZSwgZXh0ZW5kaW5nIEh0dHBGbGFnc1xuICogQHRlbXBsYXRlIEMgLSBUaGUgY29udGV4dCB0eXBlLCBleHRlbmRpbmcgQ29udGV4dDxGPlxuICogQHBhcmFtIHtBfSBhZGFwdGVyIC0gVGhlIEhUVFAgYWRhcHRlciBpbnN0YW5jZVxuICogQHBhcmFtIHtDb25zdHJ1Y3RvcjxNPn0gW2NsYXp6XSAtIE9wdGlvbmFsIGNvbnN0cnVjdG9yIGZvciB0aGUgbW9kZWwgY2xhc3NcbiAqIEBjbGFzcyBSZXN0U2VydmljZVxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIC8vIENyZWF0ZSBhIHNlcnZpY2UgZm9yIFVzZXIgbW9kZWwgd2l0aCBBeGlvcyBhZGFwdGVyXG4gKiBjb25zdCBheGlvc0FkYXB0ZXIgPSBuZXcgQXhpb3NBZGFwdGVyKHtcbiAqICAgcHJvdG9jb2w6ICdodHRwcycsXG4gKiAgIGhvc3Q6ICdhcGkuZXhhbXBsZS5jb20nXG4gKiB9KTtcbiAqIGNvbnN0IHVzZXJTZXJ2aWNlID0gbmV3IFJlc3RTZXJ2aWNlKGF4aW9zQWRhcHRlciwgVXNlcik7XG4gKlxuICogLy8gQ3JlYXRlIGEgbmV3IHVzZXJcbiAqIGNvbnN0IHVzZXIgPSBuZXcgVXNlcih7IG5hbWU6ICdKb2huIERvZScsIGVtYWlsOiAnam9obkBleGFtcGxlLmNvbScgfSk7XG4gKiBjb25zdCBjcmVhdGVkVXNlciA9IGF3YWl0IHVzZXJTZXJ2aWNlLmNyZWF0ZSh1c2VyKTtcbiAqXG4gKiAvLyBVcGRhdGUgYSB1c2VyXG4gKiBjcmVhdGVkVXNlci5uYW1lID0gJ0phbmUgRG9lJztcbiAqIGNvbnN0IHVwZGF0ZWRVc2VyID0gYXdhaXQgdXNlclNlcnZpY2UudXBkYXRlKGNyZWF0ZWRVc2VyKTtcbiAqXG4gKiAvLyBEZWxldGUgYSB1c2VyXG4gKiBhd2FpdCB1c2VyU2VydmljZS5kZWxldGUodXBkYXRlZFVzZXIuaWQpO1xuICogYGBgXG4gKiBAbWVybWFpZFxuICogc2VxdWVuY2VEaWFncmFtXG4gKiAgIHBhcnRpY2lwYW50IENsaWVudFxuICogICBwYXJ0aWNpcGFudCBTZXJ2aWNlIGFzIFJlc3RTZXJ2aWNlXG4gKiAgIHBhcnRpY2lwYW50IEFkYXB0ZXIgYXMgSHR0cEFkYXB0ZXJcbiAqICAgcGFydGljaXBhbnQgQVBJXG4gKiAgIENsaWVudC0+PlNlcnZpY2U6IGNyZWF0ZShtb2RlbClcbiAqICAgU2VydmljZS0+PkFkYXB0ZXI6IHByZXBhcmUobW9kZWwsIHBrKVxuICogICBTZXJ2aWNlLT4+QWRhcHRlcjogY3JlYXRlKHRhYmxlLCBpZCwgcmVjb3JkKVxuICogICBBZGFwdGVyLT4+QVBJOiBIVFRQIFBPU1RcbiAqICAgQVBJLS0+PkFkYXB0ZXI6IDIwMSBDcmVhdGVkXG4gKiAgIEFkYXB0ZXItLT4+U2VydmljZTogcmVjb3JkXG4gKiAgIFNlcnZpY2UtLT4+Q2xpZW50OiByZXZlcnQocmVjb3JkKVxuICovXG5leHBvcnQgY2xhc3MgUmVzdFNlcnZpY2U8XG4gICAgTSBleHRlbmRzIE1vZGVsLFxuICAgIFEsXG4gICAgQSBleHRlbmRzIEh0dHBBZGFwdGVyPGFueSwgYW55LCBRLCBGLCBDPixcbiAgICBGIGV4dGVuZHMgSHR0cEZsYWdzID0gSHR0cEZsYWdzLFxuICAgIEMgZXh0ZW5kcyBDb250ZXh0PEY+ID0gQ29udGV4dDxGPixcbiAgPlxuICBpbXBsZW1lbnRzIENydWRPcGVyYXRvcjxNPiwgQnVsa0NydWRPcGVyYXRvcjxNPiwgT2JzZXJ2YWJsZVxue1xuICBwcml2YXRlIHJlYWRvbmx5IF9jbGFzcyE6IENvbnN0cnVjdG9yPE0+O1xuICBwcml2YXRlIF9wayE6IGtleW9mIE07XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBHZXRzIHRoZSBtb2RlbCBjbGFzcyBjb25zdHJ1Y3RvclxuICAgKiBAc3VtbWFyeSBSZXRyaWV2ZXMgdGhlIG1vZGVsIGNsYXNzIGNvbnN0cnVjdG9yIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHNlcnZpY2UuXG4gICAqIFRocm93cyBhbiBlcnJvciBpZiBubyBjbGFzcyBkZWZpbml0aW9uIGlzIGZvdW5kLlxuICAgKiBAcmV0dXJuIHtDb25zdHJ1Y3RvcjxNPn0gVGhlIG1vZGVsIGNsYXNzIGNvbnN0cnVjdG9yXG4gICAqIEB0aHJvd3Mge0ludGVybmFsRXJyb3J9IElmIG5vIGNsYXNzIGRlZmluaXRpb24gaXMgZm91bmRcbiAgICovXG4gIGdldCBjbGFzcygpIHtcbiAgICBpZiAoIXRoaXMuX2NsYXNzKVxuICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXCJObyBjbGFzcyBkZWZpbml0aW9uIGZvdW5kIGZvciB0aGlzIHJlcG9zaXRvcnlcIik7XG4gICAgcmV0dXJuIHRoaXMuX2NsYXNzO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBHZXRzIHRoZSBwcmltYXJ5IGtleSBwcm9wZXJ0eSBuYW1lXG4gICAqIEBzdW1tYXJ5IFJldHJpZXZlcyB0aGUgbmFtZSBvZiB0aGUgcHJpbWFyeSBrZXkgcHJvcGVydHkgZm9yIHRoZSBtb2RlbC5cbiAgICogSWYgbm90IGFscmVhZHkgZGV0ZXJtaW5lZCwgaXQgZmluZHMgdGhlIHByaW1hcnkga2V5IHVzaW5nIHRoZSBtb2RlbCBjbGFzcy5cbiAgICogQHJldHVybiBUaGUgcHJpbWFyeSBrZXkgcHJvcGVydHkgbmFtZVxuICAgKi9cbiAgZ2V0IHBrKCkge1xuICAgIGlmICghdGhpcy5fcGspIHRoaXMuX3BrID0gZmluZFByaW1hcnlLZXkobmV3IHRoaXMuY2xhc3MoKSkuaWQ7XG4gICAgcmV0dXJuIHRoaXMuX3BrO1xuICB9XG5cbiAgcHJvdGVjdGVkIG9ic2VydmVyczogT2JzZXJ2ZXJbXSA9IFtdO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2FkYXB0ZXIhOiBBO1xuICBwcml2YXRlIF90YWJsZU5hbWUhOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBHZXRzIHRoZSBIVFRQIGFkYXB0ZXJcbiAgICogQHN1bW1hcnkgUmV0cmlldmVzIHRoZSBIVFRQIGFkYXB0ZXIgYXNzb2NpYXRlZCB3aXRoIHRoaXMgc2VydmljZS5cbiAgICogVGhyb3dzIGFuIGVycm9yIGlmIG5vIGFkYXB0ZXIgaXMgZm91bmQuXG4gICAqIEByZXR1cm4ge0F9IFRoZSBIVFRQIGFkYXB0ZXIgaW5zdGFuY2VcbiAgICogQHRocm93cyB7SW50ZXJuYWxFcnJvcn0gSWYgbm8gYWRhcHRlciBpcyBmb3VuZFxuICAgKi9cbiAgcHJvdGVjdGVkIGdldCBhZGFwdGVyKCk6IEEge1xuICAgIGlmICghdGhpcy5fYWRhcHRlcilcbiAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFxuICAgICAgICBcIk5vIGFkYXB0ZXIgZm91bmQgZm9yIHRoaXMgcmVwb3NpdG9yeS4gZGlkIHlvdSB1c2UgdGhlIEB1c2VzIGRlY29yYXRvciBvciBwYXNzIGl0IGluIHRoZSBjb25zdHJ1Y3Rvcj9cIlxuICAgICAgKTtcbiAgICByZXR1cm4gdGhpcy5fYWRhcHRlcjtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gR2V0cyB0aGUgdGFibGUgbmFtZSBmb3IgdGhlIG1vZGVsXG4gICAqIEBzdW1tYXJ5IFJldHJpZXZlcyB0aGUgdGFibGUgbmFtZSBhc3NvY2lhdGVkIHdpdGggdGhlIG1vZGVsIGNsYXNzLlxuICAgKiBJZiBub3QgYWxyZWFkeSBkZXRlcm1pbmVkLCBpdCBnZXRzIHRoZSB0YWJsZSBuYW1lIGZyb20gdGhlIFJlcG9zaXRvcnkgdXRpbGl0eS5cbiAgICogQHJldHVybiB7c3RyaW5nfSBUaGUgdGFibGUgbmFtZVxuICAgKi9cbiAgcHJvdGVjdGVkIGdldCB0YWJsZU5hbWUoKSB7XG4gICAgaWYgKCF0aGlzLl90YWJsZU5hbWUpIHRoaXMuX3RhYmxlTmFtZSA9IFJlcG9zaXRvcnkudGFibGUodGhpcy5jbGFzcyk7XG4gICAgcmV0dXJuIHRoaXMuX3RhYmxlTmFtZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gSW5pdGlhbGl6ZXMgYSBuZXcgUmVzdFNlcnZpY2UgaW5zdGFuY2VcbiAgICogQHN1bW1hcnkgQ3JlYXRlcyBhIG5ldyBzZXJ2aWNlIGluc3RhbmNlIHdpdGggdGhlIHNwZWNpZmllZCBhZGFwdGVyIGFuZCBvcHRpb25hbCBtb2RlbCBjbGFzcy5cbiAgICogVGhlIGNvbnN0cnVjdG9yIHN0b3JlcyB0aGUgYWRhcHRlciBhbmQgbW9kZWwgY2xhc3MgZm9yIGxhdGVyIHVzZSBpbiBDUlVEIG9wZXJhdGlvbnMuXG4gICAqIEBwYXJhbSB7QX0gYWRhcHRlciAtIFRoZSBIVFRQIGFkYXB0ZXIgaW5zdGFuY2UgdG8gdXNlIGZvciBBUEkgcmVxdWVzdHNcbiAgICogQHBhcmFtIHtDb25zdHJ1Y3RvcjxNPn0gW2NsYXp6XSAtIE9wdGlvbmFsIGNvbnN0cnVjdG9yIGZvciB0aGUgbW9kZWwgY2xhc3NcbiAgICovXG4gIGNvbnN0cnVjdG9yKGFkYXB0ZXI6IEEsIGNsYXp6PzogQ29uc3RydWN0b3I8TT4pIHtcbiAgICB0aGlzLl9hZGFwdGVyID0gYWRhcHRlcjtcbiAgICBpZiAoY2xhenopIHRoaXMuX2NsYXNzID0gY2xheno7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIENyZWF0ZXMgYSBuZXcgcmVzb3VyY2VcbiAgICogQHN1bW1hcnkgQ3JlYXRlcyBhIG5ldyByZXNvdXJjZSBpbiB0aGUgUkVTVCBBUEkgdXNpbmcgdGhlIHByb3ZpZGVkIG1vZGVsLlxuICAgKiBUaGUgbWV0aG9kIHByZXBhcmVzIHRoZSBtb2RlbCBmb3IgdGhlIGFkYXB0ZXIsIHNlbmRzIHRoZSBjcmVhdGUgcmVxdWVzdCxcbiAgICogYW5kIHRoZW4gY29udmVydHMgdGhlIHJlc3BvbnNlIGJhY2sgdG8gYSBtb2RlbCBpbnN0YW5jZS5cbiAgICogQHBhcmFtIHtNfSBtb2RlbCAtIFRoZSBtb2RlbCBpbnN0YW5jZSB0byBjcmVhdGVcbiAgICogQHBhcmFtIHsuLi5hbnlbXX0gYXJncyAtIEFkZGl0aW9uYWwgYXJndW1lbnRzIHRvIHBhc3MgdG8gdGhlIGFkYXB0ZXJcbiAgICogQHJldHVybiB7UHJvbWlzZTxNPn0gQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2l0aCB0aGUgY3JlYXRlZCBtb2RlbCBpbnN0YW5jZVxuICAgKi9cbiAgYXN5bmMgY3JlYXRlKG1vZGVsOiBNLCAuLi5hcmdzOiBhbnlbXSk6IFByb21pc2U8TT4ge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBwcmVmZXItY29uc3RcbiAgICBsZXQgeyByZWNvcmQsIGlkIH0gPSB0aGlzLmFkYXB0ZXIucHJlcGFyZShtb2RlbCwgdGhpcy5wayk7XG4gICAgcmVjb3JkID0gYXdhaXQgdGhpcy5hZGFwdGVyLmNyZWF0ZSh0aGlzLnRhYmxlTmFtZSwgaWQsIHJlY29yZCwgLi4uYXJncyk7XG4gICAgcmV0dXJuIHRoaXMuYWRhcHRlci5yZXZlcnQocmVjb3JkLCB0aGlzLmNsYXNzLCB0aGlzLnBrLCBpZCk7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFJldHJpZXZlcyBhIHJlc291cmNlIGJ5IElEXG4gICAqIEBzdW1tYXJ5IEZldGNoZXMgYSByZXNvdXJjZSBmcm9tIHRoZSBSRVNUIEFQSSB1c2luZyB0aGUgcHJvdmlkZWQgSUQuXG4gICAqIFRoZSBtZXRob2Qgc2VuZHMgdGhlIHJlYWQgcmVxdWVzdCBhbmQgY29udmVydHMgdGhlIHJlc3BvbnNlIHRvIGEgbW9kZWwgaW5zdGFuY2UuXG4gICAqIEBwYXJhbSB7c3RyaW5nfG51bWJlcn0gaWQgLSBUaGUgaWRlbnRpZmllciBvZiB0aGUgcmVzb3VyY2UgdG8gcmV0cmlldmVcbiAgICogQHBhcmFtIHsuLi5hbnlbXX0gYXJncyAtIEFkZGl0aW9uYWwgYXJndW1lbnRzIHRvIHBhc3MgdG8gdGhlIGFkYXB0ZXJcbiAgICogQHJldHVybiB7UHJvbWlzZTxNPn0gQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2l0aCB0aGUgcmV0cmlldmVkIG1vZGVsIGluc3RhbmNlXG4gICAqL1xuICBhc3luYyByZWFkKGlkOiBzdHJpbmcgfCBudW1iZXIsIC4uLmFyZ3M6IGFueVtdKTogUHJvbWlzZTxNPiB7XG4gICAgY29uc3QgbSA9IGF3YWl0IHRoaXMuYWRhcHRlci5yZWFkKHRoaXMudGFibGVOYW1lLCBpZCwgLi4uYXJncyk7XG4gICAgcmV0dXJuIHRoaXMuYWRhcHRlci5yZXZlcnQobSwgdGhpcy5jbGFzcywgdGhpcy5waywgaWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBVcGRhdGVzIGFuIGV4aXN0aW5nIHJlc291cmNlXG4gICAqIEBzdW1tYXJ5IFVwZGF0ZXMgYW4gZXhpc3RpbmcgcmVzb3VyY2UgaW4gdGhlIFJFU1QgQVBJIHVzaW5nIHRoZSBwcm92aWRlZCBtb2RlbC5cbiAgICogVGhlIG1ldGhvZCBwcmVwYXJlcyB0aGUgbW9kZWwgZm9yIHRoZSBhZGFwdGVyLCBzZW5kcyB0aGUgdXBkYXRlIHJlcXVlc3QsXG4gICAqIGFuZCB0aGVuIGNvbnZlcnRzIHRoZSByZXNwb25zZSBiYWNrIHRvIGEgbW9kZWwgaW5zdGFuY2UuXG4gICAqIEBwYXJhbSB7TX0gbW9kZWwgLSBUaGUgbW9kZWwgaW5zdGFuY2Ugd2l0aCB1cGRhdGVkIGRhdGFcbiAgICogQHBhcmFtIHsuLi5hbnlbXX0gYXJncyAtIEFkZGl0aW9uYWwgYXJndW1lbnRzIHRvIHBhc3MgdG8gdGhlIGFkYXB0ZXJcbiAgICogQHJldHVybiB7UHJvbWlzZTxNPn0gQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2l0aCB0aGUgdXBkYXRlZCBtb2RlbCBpbnN0YW5jZVxuICAgKi9cbiAgYXN5bmMgdXBkYXRlKG1vZGVsOiBNLCAuLi5hcmdzOiBhbnlbXSk6IFByb21pc2U8TT4ge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBwcmVmZXItY29uc3RcbiAgICBsZXQgeyByZWNvcmQsIGlkIH0gPSB0aGlzLmFkYXB0ZXIucHJlcGFyZShtb2RlbCwgdGhpcy5wayk7XG4gICAgcmVjb3JkID0gYXdhaXQgdGhpcy5hZGFwdGVyLnVwZGF0ZSh0aGlzLnRhYmxlTmFtZSwgaWQsIHJlY29yZCwgLi4uYXJncyk7XG4gICAgcmV0dXJuIHRoaXMuYWRhcHRlci5yZXZlcnQocmVjb3JkLCB0aGlzLmNsYXNzLCB0aGlzLnBrLCBpZCk7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIERlbGV0ZXMgYSByZXNvdXJjZSBieSBJRFxuICAgKiBAc3VtbWFyeSBSZW1vdmVzIGEgcmVzb3VyY2UgZnJvbSB0aGUgUkVTVCBBUEkgdXNpbmcgdGhlIHByb3ZpZGVkIElELlxuICAgKiBUaGUgbWV0aG9kIHNlbmRzIHRoZSBkZWxldGUgcmVxdWVzdCBhbmQgY29udmVydHMgdGhlIHJlc3BvbnNlIHRvIGEgbW9kZWwgaW5zdGFuY2UuXG4gICAqIEBwYXJhbSB7c3RyaW5nfG51bWJlcn0gaWQgLSBUaGUgaWRlbnRpZmllciBvZiB0aGUgcmVzb3VyY2UgdG8gZGVsZXRlXG4gICAqIEBwYXJhbSB7Li4uYW55W119IGFyZ3MgLSBBZGRpdGlvbmFsIGFyZ3VtZW50cyB0byBwYXNzIHRvIHRoZSBhZGFwdGVyXG4gICAqIEByZXR1cm4ge1Byb21pc2U8TT59IEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHdpdGggdGhlIGRlbGV0ZWQgbW9kZWwgaW5zdGFuY2VcbiAgICovXG4gIGFzeW5jIGRlbGV0ZShpZDogc3RyaW5nIHwgbnVtYmVyLCAuLi5hcmdzOiBhbnlbXSk6IFByb21pc2U8TT4ge1xuICAgIGNvbnN0IG0gPSBhd2FpdCB0aGlzLmFkYXB0ZXIuZGVsZXRlKHRoaXMudGFibGVOYW1lLCBpZCwgLi4uYXJncyk7XG4gICAgcmV0dXJuIHRoaXMuYWRhcHRlci5yZXZlcnQobSwgdGhpcy5jbGFzcywgdGhpcy5waywgaWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBDcmVhdGVzIG11bHRpcGxlIHJlc291cmNlc1xuICAgKiBAc3VtbWFyeSBDcmVhdGVzIG11bHRpcGxlIHJlc291cmNlcyBpbiB0aGUgUkVTVCBBUEkgdXNpbmcgdGhlIHByb3ZpZGVkIG1vZGVscy5cbiAgICogVGhlIG1ldGhvZCBwcmVwYXJlcyBlYWNoIG1vZGVsIGZvciB0aGUgYWRhcHRlciwgc2VuZHMgYSBidWxrIGNyZWF0ZSByZXF1ZXN0LFxuICAgKiBhbmQgdGhlbiBjb252ZXJ0cyB0aGUgcmVzcG9uc2VzIGJhY2sgdG8gbW9kZWwgaW5zdGFuY2VzLlxuICAgKiBAcGFyYW0ge01bXX0gbW9kZWxzIC0gVGhlIG1vZGVsIGluc3RhbmNlcyB0byBjcmVhdGVcbiAgICogQHBhcmFtIHsuLi5hbnlbXX0gYXJncyAtIEFkZGl0aW9uYWwgYXJndW1lbnRzIHRvIHBhc3MgdG8gdGhlIGFkYXB0ZXJcbiAgICogQHJldHVybiB7UHJvbWlzZTxNW10+fSBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aXRoIGFuIGFycmF5IG9mIGNyZWF0ZWQgbW9kZWwgaW5zdGFuY2VzXG4gICAqIEBtZXJtYWlkXG4gICAqIHNlcXVlbmNlRGlhZ3JhbVxuICAgKiAgIHBhcnRpY2lwYW50IENsaWVudFxuICAgKiAgIHBhcnRpY2lwYW50IFNlcnZpY2UgYXMgUmVzdFNlcnZpY2VcbiAgICogICBwYXJ0aWNpcGFudCBBZGFwdGVyIGFzIEh0dHBBZGFwdGVyXG4gICAqICAgQ2xpZW50LT4+U2VydmljZTogY3JlYXRlQWxsKG1vZGVscylcbiAgICogICBTZXJ2aWNlLT4+QWRhcHRlcjogcHJlcGFyZShtb2RlbCwgcGspIHggTlxuICAgKiAgIFNlcnZpY2UtPj5BZGFwdGVyOiBjcmVhdGVBbGwodGFibGUsIGlkc1tdLCByZWNvcmRzW10pXG4gICAqICAgQWRhcHRlci0tPj5TZXJ2aWNlOiByZWNvcmRzW11cbiAgICogICBTZXJ2aWNlLS0+PkNsaWVudDogcmV2ZXJ0KHJlY29yZHNbXSlcbiAgICovXG4gIGFzeW5jIGNyZWF0ZUFsbChtb2RlbHM6IE1bXSwgLi4uYXJnczogYW55W10pOiBQcm9taXNlPE1bXT4ge1xuICAgIGlmICghbW9kZWxzLmxlbmd0aCkgcmV0dXJuIG1vZGVscztcbiAgICBjb25zdCBwcmVwYXJlZCA9IG1vZGVscy5tYXAoKG0pID0+IHRoaXMuYWRhcHRlci5wcmVwYXJlKG0sIHRoaXMucGspKTtcbiAgICBjb25zdCBpZHMgPSBwcmVwYXJlZC5tYXAoKHApID0+IHAuaWQpO1xuICAgIGxldCByZWNvcmRzID0gcHJlcGFyZWQubWFwKChwKSA9PiBwLnJlY29yZCk7XG4gICAgcmVjb3JkcyA9IGF3YWl0IHRoaXMuYWRhcHRlci5jcmVhdGVBbGwoXG4gICAgICB0aGlzLnRhYmxlTmFtZSxcbiAgICAgIGlkcyBhcyAoc3RyaW5nIHwgbnVtYmVyKVtdLFxuICAgICAgcmVjb3JkcyxcbiAgICAgIC4uLmFyZ3NcbiAgICApO1xuICAgIHJldHVybiByZWNvcmRzLm1hcCgociwgaSkgPT5cbiAgICAgIHRoaXMuYWRhcHRlci5yZXZlcnQociwgdGhpcy5jbGFzcywgdGhpcy5waywgaWRzW2ldIGFzIHN0cmluZyB8IG51bWJlcilcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBEZWxldGVzIG11bHRpcGxlIHJlc291cmNlcyBieSBJRHNcbiAgICogQHN1bW1hcnkgUmVtb3ZlcyBtdWx0aXBsZSByZXNvdXJjZXMgZnJvbSB0aGUgUkVTVCBBUEkgdXNpbmcgdGhlIHByb3ZpZGVkIElEcy5cbiAgICogVGhlIG1ldGhvZCBzZW5kcyBhIGJ1bGsgZGVsZXRlIHJlcXVlc3QgYW5kIGNvbnZlcnRzIHRoZSByZXNwb25zZXMgdG8gbW9kZWwgaW5zdGFuY2VzLlxuICAgKiBAcGFyYW0ge3N0cmluZ1tdfG51bWJlcltdfSBrZXlzIC0gVGhlIGlkZW50aWZpZXJzIG9mIHRoZSByZXNvdXJjZXMgdG8gZGVsZXRlXG4gICAqIEBwYXJhbSB7Li4uYW55W119IGFyZ3MgLSBBZGRpdGlvbmFsIGFyZ3VtZW50cyB0byBwYXNzIHRvIHRoZSBhZGFwdGVyXG4gICAqIEByZXR1cm4ge1Byb21pc2U8TVtdPn0gQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2l0aCBhbiBhcnJheSBvZiBkZWxldGVkIG1vZGVsIGluc3RhbmNlc1xuICAgKi9cbiAgYXN5bmMgZGVsZXRlQWxsKGtleXM6IHN0cmluZ1tdIHwgbnVtYmVyW10sIC4uLmFyZ3M6IGFueVtdKTogUHJvbWlzZTxNW10+IHtcbiAgICBjb25zdCByZXN1bHRzID0gYXdhaXQgdGhpcy5hZGFwdGVyLmRlbGV0ZUFsbCh0aGlzLnRhYmxlTmFtZSwga2V5cywgLi4uYXJncyk7XG4gICAgcmV0dXJuIHJlc3VsdHMubWFwKChyLCBpKSA9PlxuICAgICAgdGhpcy5hZGFwdGVyLnJldmVydChyLCB0aGlzLmNsYXNzLCB0aGlzLnBrLCBrZXlzW2ldKVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFJldHJpZXZlcyBtdWx0aXBsZSByZXNvdXJjZXMgYnkgSURzXG4gICAqIEBzdW1tYXJ5IEZldGNoZXMgbXVsdGlwbGUgcmVzb3VyY2VzIGZyb20gdGhlIFJFU1QgQVBJIHVzaW5nIHRoZSBwcm92aWRlZCBJRHMuXG4gICAqIFRoZSBtZXRob2Qgc2VuZHMgYSBidWxrIHJlYWQgcmVxdWVzdCBhbmQgY29udmVydHMgdGhlIHJlc3BvbnNlcyB0byBtb2RlbCBpbnN0YW5jZXMuXG4gICAqIEBwYXJhbSB7c3RyaW5nW118bnVtYmVyW119IGtleXMgLSBUaGUgaWRlbnRpZmllcnMgb2YgdGhlIHJlc291cmNlcyB0byByZXRyaWV2ZVxuICAgKiBAcGFyYW0gey4uLmFueVtdfSBhcmdzIC0gQWRkaXRpb25hbCBhcmd1bWVudHMgdG8gcGFzcyB0byB0aGUgYWRhcHRlclxuICAgKiBAcmV0dXJuIHtQcm9taXNlPE1bXT59IEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHdpdGggYW4gYXJyYXkgb2YgcmV0cmlldmVkIG1vZGVsIGluc3RhbmNlc1xuICAgKi9cbiAgYXN5bmMgcmVhZEFsbChrZXlzOiBzdHJpbmdbXSB8IG51bWJlcltdLCAuLi5hcmdzOiBhbnlbXSk6IFByb21pc2U8TVtdPiB7XG4gICAgY29uc3QgcmVjb3JkcyA9IGF3YWl0IHRoaXMuYWRhcHRlci5yZWFkQWxsKHRoaXMudGFibGVOYW1lLCBrZXlzLCAuLi5hcmdzKTtcbiAgICByZXR1cm4gcmVjb3Jkcy5tYXAoKHIsIGkpID0+XG4gICAgICB0aGlzLmFkYXB0ZXIucmV2ZXJ0KHIsIHRoaXMuY2xhc3MsIHRoaXMucGssIGtleXNbaV0pXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gVXBkYXRlcyBtdWx0aXBsZSByZXNvdXJjZXNcbiAgICogQHN1bW1hcnkgVXBkYXRlcyBtdWx0aXBsZSByZXNvdXJjZXMgaW4gdGhlIFJFU1QgQVBJIHVzaW5nIHRoZSBwcm92aWRlZCBtb2RlbHMuXG4gICAqIFRoZSBtZXRob2QgcHJlcGFyZXMgZWFjaCBtb2RlbCBmb3IgdGhlIGFkYXB0ZXIsIHNlbmRzIGEgYnVsayB1cGRhdGUgcmVxdWVzdCxcbiAgICogYW5kIHRoZW4gY29udmVydHMgdGhlIHJlc3BvbnNlcyBiYWNrIHRvIG1vZGVsIGluc3RhbmNlcy5cbiAgICogQHBhcmFtIHtNW119IG1vZGVscyAtIFRoZSBtb2RlbCBpbnN0YW5jZXMgd2l0aCB1cGRhdGVkIGRhdGFcbiAgICogQHBhcmFtIHsuLi5hbnlbXX0gYXJncyAtIEFkZGl0aW9uYWwgYXJndW1lbnRzIHRvIHBhc3MgdG8gdGhlIGFkYXB0ZXJcbiAgICogQHJldHVybiB7UHJvbWlzZTxNW10+fSBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aXRoIGFuIGFycmF5IG9mIHVwZGF0ZWQgbW9kZWwgaW5zdGFuY2VzXG4gICAqL1xuICBhc3luYyB1cGRhdGVBbGwobW9kZWxzOiBNW10sIC4uLmFyZ3M6IGFueVtdKTogUHJvbWlzZTxNW10+IHtcbiAgICBjb25zdCByZWNvcmRzID0gbW9kZWxzLm1hcCgobSkgPT4gdGhpcy5hZGFwdGVyLnByZXBhcmUobSwgdGhpcy5waykpO1xuICAgIGNvbnN0IHVwZGF0ZWQgPSBhd2FpdCB0aGlzLmFkYXB0ZXIudXBkYXRlQWxsKFxuICAgICAgdGhpcy50YWJsZU5hbWUsXG4gICAgICByZWNvcmRzLm1hcCgocikgPT4gci5pZCksXG4gICAgICByZWNvcmRzLm1hcCgocikgPT4gci5yZWNvcmQpLFxuICAgICAgLi4uYXJnc1xuICAgICk7XG4gICAgcmV0dXJuIHVwZGF0ZWQubWFwKCh1LCBpKSA9PlxuICAgICAgdGhpcy5hZGFwdGVyLnJldmVydCh1LCB0aGlzLmNsYXNzLCB0aGlzLnBrLCByZWNvcmRzW2ldLmlkKVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFJlZ2lzdGVycyBhbiBvYnNlcnZlclxuICAgKiBAc3VtbWFyeSBBZGRzIGFuIG9ic2VydmVyIHRvIHRoZSBsaXN0IG9mIG9ic2VydmVycyB0aGF0IHdpbGwgYmUgbm90aWZpZWQgb2YgY2hhbmdlcy5cbiAgICogVGhyb3dzIGFuIGVycm9yIGlmIHRoZSBvYnNlcnZlciBpcyBhbHJlYWR5IHJlZ2lzdGVyZWQuXG4gICAqIEBwYXJhbSB7T2JzZXJ2ZXJ9IG9ic2VydmVyIC0gVGhlIG9ic2VydmVyIHRvIHJlZ2lzdGVyXG4gICAqIEByZXR1cm4ge3ZvaWR9XG4gICAqIEB0aHJvd3Mge0ludGVybmFsRXJyb3J9IElmIHRoZSBvYnNlcnZlciBpcyBhbHJlYWR5IHJlZ2lzdGVyZWRcbiAgICovXG4gIG9ic2VydmUob2JzZXJ2ZXI6IE9ic2VydmVyKTogdm9pZCB7XG4gICAgY29uc3QgaW5kZXggPSB0aGlzLm9ic2VydmVycy5pbmRleE9mKG9ic2VydmVyKTtcbiAgICBpZiAoaW5kZXggIT09IC0xKSB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcIk9ic2VydmVyIGFscmVhZHkgcmVnaXN0ZXJlZFwiKTtcbiAgICB0aGlzLm9ic2VydmVycy5wdXNoKG9ic2VydmVyKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gVW5yZWdpc3RlcnMgYW4gb2JzZXJ2ZXJcbiAgICogQHN1bW1hcnkgUmVtb3ZlcyBhbiBvYnNlcnZlciBmcm9tIHRoZSBsaXN0IG9mIG9ic2VydmVycy5cbiAgICogVGhyb3dzIGFuIGVycm9yIGlmIHRoZSBvYnNlcnZlciBpcyBub3QgZm91bmQuXG4gICAqIEBwYXJhbSB7T2JzZXJ2ZXJ9IG9ic2VydmVyIC0gVGhlIG9ic2VydmVyIHRvIHVucmVnaXN0ZXJcbiAgICogQHJldHVybiB7dm9pZH1cbiAgICogQHRocm93cyB7SW50ZXJuYWxFcnJvcn0gSWYgdGhlIG9ic2VydmVyIGlzIG5vdCBmb3VuZFxuICAgKi9cbiAgdW5PYnNlcnZlKG9ic2VydmVyOiBPYnNlcnZlcik6IHZvaWQge1xuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5vYnNlcnZlcnMuaW5kZXhPZihvYnNlcnZlcik7XG4gICAgaWYgKGluZGV4ID09PSAtMSkgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXCJGYWlsZWQgdG8gZmluZCBPYnNlcnZlclwiKTtcbiAgICB0aGlzLm9ic2VydmVycy5zcGxpY2UoaW5kZXgsIDEpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBOb3RpZmllcyBhbGwgcmVnaXN0ZXJlZCBvYnNlcnZlcnNcbiAgICogQHN1bW1hcnkgQ2FsbHMgdGhlIHJlZnJlc2ggbWV0aG9kIG9uIGFsbCByZWdpc3RlcmVkIG9ic2VydmVycyB0byB1cGRhdGUgdGhlbXNlbHZlcy5cbiAgICogQW55IGVycm9ycyBkdXJpbmcgb2JzZXJ2ZXIgcmVmcmVzaCBhcmUgbG9nZ2VkIGFzIHdhcm5pbmdzIGJ1dCBkb24ndCBzdG9wIHRoZSBwcm9jZXNzLlxuICAgKiBAcGFyYW0gey4uLmFueVtdfSBbYXJnc10gLSBPcHRpb25hbCBhcmd1bWVudHMgdG8gcGFzcyB0byB0aGUgb2JzZXJ2ZXIgcmVmcmVzaCBtZXRob2RcbiAgICogQHJldHVybiB7UHJvbWlzZTx2b2lkPn0gQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiBhbGwgb2JzZXJ2ZXJzIGhhdmUgYmVlbiB1cGRhdGVkXG4gICAqL1xuICBhc3luYyB1cGRhdGVPYnNlcnZlcnMoLi4uYXJnczogYW55W10pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCByZXN1bHRzID0gYXdhaXQgUHJvbWlzZS5hbGxTZXR0bGVkKFxuICAgICAgdGhpcy5vYnNlcnZlcnMubWFwKChvKSA9PiBvLnJlZnJlc2goLi4uYXJncykpXG4gICAgKTtcbiAgICByZXN1bHRzLmZvckVhY2goKHJlc3VsdCwgaSkgPT4ge1xuICAgICAgaWYgKHJlc3VsdC5zdGF0dXMgPT09IFwicmVqZWN0ZWRcIilcbiAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgIGBGYWlsZWQgdG8gdXBkYXRlIG9ic2VydmFibGUgJHt0aGlzLm9ic2VydmVyc1tpXX06ICR7cmVzdWx0LnJlYXNvbn1gXG4gICAgICAgICk7XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|