@micropermit/client-angular 0.3.1 → 0.4.0
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/bundles/micropermit-client-angular.umd.js +36 -2
- package/bundles/micropermit-client-angular.umd.js.map +1 -1
- package/bundles/micropermit-client-angular.umd.min.js +1 -1
- package/bundles/micropermit-client-angular.umd.min.js.map +1 -1
- package/esm2015/lib/links/linkfield.js +12 -2
- package/esm2015/lib/microclient.service.js +21 -2
- package/esm5/lib/links/linkfield.js +12 -2
- package/esm5/lib/microclient.service.js +26 -2
- package/fesm2015/micropermit-client-angular.js +31 -2
- package/fesm2015/micropermit-client-angular.js.map +1 -1
- package/fesm5/micropermit-client-angular.js +36 -2
- package/fesm5/micropermit-client-angular.js.map +1 -1
- package/lib/microclient.service.d.ts +2 -0
- package/micropermit-client-angular.metadata.json +1 -1
- package/package.json +1 -1
|
@@ -18,6 +18,7 @@ export class MicroClient {
|
|
|
18
18
|
this.entryPointSubject = new ReplaySubject();
|
|
19
19
|
this.usePost = true;
|
|
20
20
|
this.sendAsPermitTokenHeader = true;
|
|
21
|
+
this.sendAsMultipartFormData = false;
|
|
21
22
|
}
|
|
22
23
|
/**
|
|
23
24
|
* @param {?} sendAsPermitTokenHeader
|
|
@@ -222,7 +223,7 @@ export class MicroClient {
|
|
|
222
223
|
if (this.urlRewriter) {
|
|
223
224
|
url = this.urlRewriter(url);
|
|
224
225
|
}
|
|
225
|
-
httpObs = this.httpClient.post(url, body, {
|
|
226
|
+
httpObs = this.httpClient.post(url, this.encodeBody(body), {
|
|
226
227
|
headers: requestHeaders
|
|
227
228
|
});
|
|
228
229
|
}
|
|
@@ -250,6 +251,22 @@ export class MicroClient {
|
|
|
250
251
|
})), this.catchAndHandleError());
|
|
251
252
|
return httpObs;
|
|
252
253
|
}
|
|
254
|
+
/**
|
|
255
|
+
* @private
|
|
256
|
+
* @param {?} body
|
|
257
|
+
* @return {?}
|
|
258
|
+
*/
|
|
259
|
+
encodeBody(body) {
|
|
260
|
+
if (this.sendAsMultipartFormData) {
|
|
261
|
+
/** @type {?} */
|
|
262
|
+
let formData = new FormData();
|
|
263
|
+
formData.append('', JSON.stringify(body));
|
|
264
|
+
return new FormData();
|
|
265
|
+
}
|
|
266
|
+
else {
|
|
267
|
+
return body;
|
|
268
|
+
}
|
|
269
|
+
}
|
|
253
270
|
/**
|
|
254
271
|
* @private
|
|
255
272
|
* @template T
|
|
@@ -410,6 +427,8 @@ if (false) {
|
|
|
410
427
|
MicroClient.prototype.usePost;
|
|
411
428
|
/** @type {?} */
|
|
412
429
|
MicroClient.prototype.sendAsPermitTokenHeader;
|
|
430
|
+
/** @type {?} */
|
|
431
|
+
MicroClient.prototype.sendAsMultipartFormData;
|
|
413
432
|
/**
|
|
414
433
|
* @type {?}
|
|
415
434
|
* @private
|
|
@@ -491,4 +510,4 @@ if (false) {
|
|
|
491
510
|
*/
|
|
492
511
|
MicroClientLoadError.prototype.defaultHandler;
|
|
493
512
|
}
|
|
494
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWljcm9jbGllbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BtaWNyb3Blcm1pdC9jbGllbnQtYW5ndWxhci8iLCJzb3VyY2VzIjpbImxpYi9taWNyb2NsaWVudC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBQyxVQUFVLEVBQXFCLFdBQVcsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ2hGLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFhLGFBQWEsRUFBVyxVQUFVLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDcEUsT0FBTyxFQUFDLFVBQVUsRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFvQixNQUFNLGdCQUFnQixDQUFDO0FBQzVFLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFDeEMsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBRzlDLE1BQU0sT0FBTyxXQUFXOzs7O0lBY3BCLFlBQW9CLFVBQXNCO1FBQXRCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFSbEMsc0JBQWlCLEdBQStCLElBQUksYUFBYSxFQUFlLENBQUM7UUFJbEYsWUFBTyxHQUFHLElBQUksQ0FBQztRQUVmLDRCQUF1QixHQUFHLElBQUksQ0FBQztJQUl0QyxDQUFDOzs7OztJQUVNLDBCQUEwQixDQUFDLHVCQUFnQztRQUM5RCxJQUFJLENBQUMsdUJBQXVCLEdBQUcsdUJBQXVCLENBQUM7SUFDM0QsQ0FBQzs7Ozs7SUFFTSxZQUFZLENBQUMsS0FBYTtRQUM3QixJQUFJLENBQUMsVUFBVSxHQUFHLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFDcEMsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7SUFDN0IsQ0FBQzs7Ozs7SUFFTSxhQUFhLENBQUMsVUFBa0I7UUFDbkMsSUFBSSxD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QUNMLENBQUM7Ozs7O0lBRU0sV0FBVyxDQUFDLE9BQTZCO1FBQzVDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7SUFDeEIsQ0FBQzs7OztJQUVNLFNBQVM7UUFDWixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDeEIsQ0FBQzs7OztJQUVNLG9CQUFvQjtRQUN2QixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztJQUNqQyxDQUFDOzs7O0lBRU0sY0FBYztRQUNqQixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDO0lBQ2pDLENBQUM7Ozs7SUFFTSxpQkFBaUI7UUFDcEIsT0FBTyxJQUFJLENBQUMsY0FBYyxJQUFJLElBQUksQ0FBQztJQUN2QyxDQUFDO0NBQ0o7Ozs7OztJQWxDRyx1Q0FBd0I7Ozs7O0lBQ3hCLGdEQUFpQzs7Ozs7SUFFckIscUNBQWtCOzs7OztJQUFFLDhDQUEwQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0h0dHBDbGllbnQsIEh0dHBFcnJvclJlc3BvbnNlLCBIdHRwSGVhZGVyc30gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHtNaWNyb09iamVjdH0gZnJvbSAnLi9taWNyb29iamVjdCc7XG5pbXBvcnQge09ic2VydmFibGUsIFJlcGxheVN1YmplY3QsIFN1YmplY3QsIHRocm93RXJyb3J9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtjYXRjaEVycm9yLCBmaW5hbGl6ZSwgbWFwLCB0YWtlLCBzaGFyZVJlcGxheX0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtQYXJhbVV0aWxzfSBmcm9tICcuL3BhcmFtdXRpbHMnO1xuaW1wb3J0IHtNaWNyb0Vycm9yfSBmcm9tICcuL2Vycm9yL21pY3JvZXJyb3InO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgTWljcm9DbGllbnQge1xuXG4gICAgcHJpdmF0ZSBhdXRoSGVhZGVyOiBzdHJpbmc7XG4gICAgcHJpdmF0ZSBwZXJtaXRUb2tlbjogc3RyaW5nO1xuICAgIHByaXZhdGUgZW50cnlQb2ludDogTWljcm9PYmplY3Q7XG5cbiAgICBwcml2YXRlIGVudHJ5UG9pbnRTdWJqZWN0OiBSZXBsYXlTdWJqZWN0PE1pY3JvT2JqZWN0PiA9IG5ldyBSZXBsYXlTdWJqZWN0PE1pY3JvT2JqZWN0PigpO1xuXG4gICAgcHJpdmF0ZSB1cmxSZXdyaXRlcjogKHN0cmluZykgPT4gc3RyaW5nO1xuICAgIHByaXZhdGUgZGVmYXVsdEVycm9ySGFuZGxlcjogKGh0dHBFcnJvcjogSHR0cEVycm9yUmVzcG9uc2UsIG1pY3JvRXJyb3I6IE1pY3JvT2JqZWN0KSA9PiB2b2lkO1xuICAgIHB1YmxpYyB1c2VQb3N0ID0gdHJ1ZTtcblxuICAgIHB1YmxpYyBzZW5kQXNQZXJtaXRUb2tlbkhlYWRlciA9IHRydWU7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHBDbGllbnQ6IEh0dHBDbGllbnQpIHtcblxuICAgIH1cblxuICAgIHB1YmxpYyBzZXRTZW5kQXNQZXJtaXRUb2tlbkhlYWRlcihzZW5kQXNQZXJtaXRUb2tlbkhlYWRlcjogYm9vbGVhbikge1xuICAgICAgICB0aGlzLnNlbmRBc1Blcm1pdFRva2VuSGVhZGVyID0gc2VuZEFzUGVybWl0VG9rZW5IZWFkZXI7XG4gICAgfVxuXG4gICAgcHVibGljIHNldEF1dGhUb2tlbih0b2tlbjogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuYXV0aEhlYWRlciA9ICdCZWFyZXIgJyArIHRva2VuO1xuICAgICAgICB0aGlzLnBlcm1pdFRva2VuID0gdG9rZW47XG4gICAgfVxuXG4gICAgcHVibGljIHNldEF1dGhIZWFkZXIoYXV0aEhlYWRlcjogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuYXV0aEhlYWRlciA9IGF1dGhIZWFkZXI7XG4gICAgfVxuXG4gICAgcHVibGljIGdldEVudHJ5UG9pbnQoKTogYW55IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZW50cnlQb2ludDtcbiAgICB9XG5cbiAgICBwdWJsaWMgd2FpdEZvckVudHJ5UG9pbnQoY2I/OiAoZW50cnlQb2ludDogYW55KSA9PiB2b2lkKTogUHJvbWlzZTxhbnk+IHtcbiAgICAgICAgaWYgKGNiICE9IG51bGwpIHtcbiAgICAgICAgICAgIHRoaXMuZW50cnlQb2ludFN1YmplY3Quc3Vic2NyaWJlKGNiKTtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLmVudHJ5UG9pbnRTdWJqZWN0LnRvUHJvbWlzZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBjb3B5QXV0aEFuZEVudHJ5cG9pbnRPZihvdGhlcjogTWljcm9DbGllbnQpIHtcbiAgICAgICAgdGhpcy5hdXRoSGVhZGVyID0gb3RoZXIuYXV0aEhlYWRlcjtcbiAgICAgICAgdGhpcy5wZXJtaXRUb2tlbiA9IG90aGVyLnBlcm1pdFRva2VuO1xuICAgICAgICB0aGlzLmVudHJ5UG9pbnQgPSBvdGhlci5lbnRyeVBvaW50O1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXRFbnRyeVBvaW50PFQgZXh0ZW5kcyBNaWNyb09iamVjdD4oZW50cnlQb2ludDogYW55KSB7XG4gICAgICAgIGlmIChlbnRyeVBvaW50ID09IG51bGwpIHtcbiAgICAgICAgICAgIHRoaXMuYXV0aEhlYWRlciA9IG51bGw7XG4gICAgICAgICAgICB0aGlzLmVudHJ5UG9pbnQgPSBudWxsO1xuICAgICAgICAgICAgdGhpcy5wZXJtaXRUb2tlbiA9IG51bGw7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmVudHJ5UG9pbnQgPSBlbnRyeVBvaW50O1xuICAgICAgICAgICAgaWYgKHRoaXMuZW50cnlQb2ludC5fX21ldGEgJiYgdGhpcy5lbnRyeVBvaW50Ll9fbWV0YS5wZXJtaXRUb2tlbikge1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0QXV0aFRva2VuKHRoaXMuZW50cnlQb2ludC5fX21ldGEucGVybWl0VG9rZW4pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBFcnJvcignRXhwZWN0ZWQgdGhlIGVudHJ5UG9pbnQgdG8gY29udGFpbiBhIFwicGVybWl0VG9rZW5cIiB3aXRoaW4gdGhlIFwiX19tZXRhXCIgZmllbGQnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuZW50cnlQb2ludFN1YmplY3QubmV4dChlbnRyeVBvaW50KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBzZXREZWZhdWx0RXJyb3JIYW5kbGVyKGhhbmRsZXI6IChodHRwRXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlLCBtaWNyb0Vycm9yOiBNaWNyb09iamVjdCkgPT4gdm9pZCkge1xuICAgICAgICB0aGlzLmRlZmF1bHRFcnJvckhhbmRsZXIgPSBoYW5kbGVyO1xuICAgIH1cblxuICAgIHB1YmxpYyBoYW5kbGVFcnJvcihodHRwRXJyOiBIdHRwRXJyb3JSZXNwb25zZSkge1xuICAgICAgICBpZiAodGhpcy5kZWZhdWx0RXJyb3JIYW5kbGVyKSB7XG4gICAgICAgICAgICBjb25zdCBtaWNyb0Vycm9yID0gTWljcm9DbGllbnQudG9NaWNyb0Vycm9yKGh0dHBFcnIpO1xuICAgICAgICAgICAgaWYgKG1pY3JvRXJyb3IpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBtaWNyb1Jlc3VsdE9iajogTWljcm9PYmplY3QgPSA8TWljcm9PYmplY3Q+TWljcm9PYmplY3QuZnJvbU9iamVjdChodHRwRXJyLmVycm9yLCB0aGlzKTtcbiAgICAgICAgICAgICAgICB0aGlzLmRlZmF1bHRFcnJvckhhbmRsZXIoaHR0cEVyciwgbWljcm9SZXN1bHRPYmopO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmRlZmF1bHRFcnJvckhhbmRsZXIoaHR0cEVyciwgbnVsbCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgaWduaXRlPFQ+KFxuICAgICAgICB1cmw6IHN0cmluZyxcbiAgICAgICAgdXNlcm5hbWU6IFN0cmluZyA9IG51bGwsXG4gICAgICAgIHBhc3N3b3JkOiBTdHJpbmcgPSBudWxsLFxuICAgICAgICBoZWFkZXJzOiBvYmplY3QgPSB7fVxuICAgICk6IE9ic2VydmFibGU8VD4ge1xuICAgICAgICBpZiAodGhpcy51cmxSZXdyaXRlcikge1xuICAgICAgICAgICAgdXJsID0gdGhpcy51cmxSZXdyaXRlcih1cmwpO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IHJlcXVlc3RIZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCk7XG4gICAgICAgIGZvciAoY29uc3QgaGVhZGVyS2V5IGluIGhlYWRlcnMpIHtcbiAgICAgICAgICAgIGlmIChoZWFkZXJzLmhhc093blByb3BlcnR5KGhlYWRlcktleSkpIHtcbiAgICAgICAgICAgICAgICByZXF1ZXN0SGVhZGVycyA9IHJlcXVlc3RIZWFkZXJzLnNldChoZWFkZXJLZXksIGhlYWRlcnNbaGVhZGVyS2V5XSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodXNlcm5hbWUgIT0gbnVsbCB8fCBwYXNzd29yZCAhPSBudWxsKSB7XG4gICAgICAgICAgICByZXF1ZXN0SGVhZGVycyA9IHJlcXVlc3RIZWFkZXJzLnNldCgnQXV0aG9yaXphdGlvbicsICdCYXNpYyAnICsgYnRvYSh1c2VybmFtZSArICc6JyArIHBhc3N3b3JkKSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldCh1cmwsIHtcbiAgICAgICAgICAgIGhlYWRlcnM6IHJlcXVlc3RIZWFkZXJzXG4gICAgICAgIH0pLnBpcGUoXG4gICAgICAgICAgICBtYXAodmFsID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBlbnRyeVBvaW50ID0gTWljcm9PYmplY3QuZnJvbU9iamVjdCh2YWwsIHRoaXMpO1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0RW50cnlQb2ludChlbnRyeVBvaW50KTtcbiAgICAgICAgICAgICAgICByZXR1cm4gZW50cnlQb2ludCBhcyBUO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICB0aGlzLmNhdGNoQW5kSGFuZGxlRXJyb3IoKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHB1YmxpYyBsb2FkPFQ+KFxuICAgICAgICB1cmw6IHN0cmluZyxcbiAgICAgICAgcGFyYW1zPzogb2JqZWN0LFxuICAgICAgICByZXF1ZXN0T3B0aW9ucz86IG9iamVjdFxuICAgICk6IE9ic2VydmFibGU8VD4ge1xuICAgICAgICBsZXQgcmVxdWVzdEhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKTtcbiAgICAgICAgaWYgKHRoaXMuYXV0aEhlYWRlcikge1xuICAgICAgICAgICAgcmVxdWVzdEhlYWRlcnMgPSByZXF1ZXN0SGVhZGVycy5zZXQoJ0F1dGhvcml6YXRpb24nLCB0aGlzLmF1dGhIZWFkZXIpO1xuXG4gICAgICAgICAgICBpZiAodGhpcy5zZW5kQXNQZXJtaXRUb2tlbkhlYWRlcikge1xuICAgICAgICAgICAgICAgIHJlcXVlc3RIZWFkZXJzID0gcmVxdWVzdEhlYWRlcnMuc2V0KCdNaWNyb1Blcm1pdFRva2VuJywgdGhpcy5wZXJtaXRUb2tlbik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgb1BhcmFtcyA9IHBhcmFtcztcbiAgICAgICAgaWYgKHBhcmFtcyAhPSBudWxsIHx8IHRoaXMudXNlUG9zdCkge1xuICAgICAgICAgICAgY29uc3QgZXhpc3RpbmdQYXJhbXNTdHIgPSBQYXJhbVV0aWxzLmdldFBhcmFtKHVybCwgJ29QYXJhbXMnLCB0cnVlKTtcbiAgICAgICAgICAgIGxldCBleGlzdGluZ1BhcmFtcztcbiAgICAgICAgICAgIGlmIChleGlzdGluZ1BhcmFtc1N0cikge1xuICAgICAgICAgICAgICAgIGV4aXN0aW5nUGFyYW1zID0gSlNPTi5wYXJzZShleGlzdGluZ1BhcmFtc1N0cik7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGV4aXN0aW5nUGFyYW1zID0ge307XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBvUGFyYW1zID0gT2JqZWN0LmFzc2lnbihleGlzdGluZ1BhcmFtcywgcGFyYW1zKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBvcHRpb25zID0gcmVxdWVzdE9wdGlvbnM7XG4gICAgICAgIGlmIChyZXF1ZXN0T3B0aW9ucyAhPSBudWxsIHx8IHRoaXMudXNlUG9zdCkge1xuICAgICAgICAgICAgY29uc3QgcHJldk9wdGlvbnNTdHIgPSBQYXJhbVV0aWxzLmdldFBhcmFtKHVybCwgJ29wdGlvbnMnLCB0cnVlKTtcbiAgICAgICAgICAgIGlmIChwcmV2T3B0aW9uc1N0cikge1xuICAgICAgICAgICAgICAgIG9wdGlvbnMgPSBKU09OLnBhcnNlKHByZXZPcHRpb25zU3RyKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgb3B0aW9ucyA9IHt9O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBvcHRpb25zID0gT2JqZWN0LmFzc2lnbihvcHRpb25zLCByZXF1ZXN0T3B0aW9ucyk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBxdWVyeVBhcmFtcyA9IFBhcmFtVXRpbHMuZ2V0UGFyYW1zKHVybCk7XG5cbiAgICAgICAgbGV0IGh0dHBPYnMgPSBudWxsO1xuICAgICAgICBpZiAodGhpcy51c2VQb3N0KSB7XG5cbiAgICAgICAgICAgIGxldCBiT1BhcmFtcztcbiAgICAgICAgICAgIGNvbnN0IGVuY0JPUGFyYW1zID0gcXVlcnlQYXJhbXNbJ2JPUGFyYW1zJ107XG4gICAgICAgICAgICBpZiAoZW5jQk9QYXJhbXMpIHtcbiAgICAgICAgICAgICAgICBiT1BhcmFtcyA9IEpTT04ucGFyc2UoUGFyYW1VdGlscy5iYXNlNjRVcmxEZWNvZGUoZW5jQk9QYXJhbXMpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGJvZHkgPSB7XG4gICAgICAgICAgICAgICAgcGFyYW1zOiBxdWVyeVBhcmFtc1sncGFyYW1zJ10sXG4gICAgICAgICAgICAgICAgb1BhcmFtczogb1BhcmFtcyxcbiAgICAgICAgICAgICAgICBiUGFyYW1zOiBxdWVyeVBhcmFtc1snYlBhcmFtcyddLFxuICAgICAgICAgICAgICAgIGJPUGFyYW1zOiBiT1BhcmFtcyxcbiAgICAgICAgICAgICAgICBvcHRpb25zOiBvcHRpb25zLFxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgZGVsZXRlIHF1ZXJ5UGFyYW1zWydwYXJhbXMnXTtcbiAgICAgICAgICAgIGRlbGV0ZSBxdWVyeVBhcmFtc1snb1BhcmFtcyddO1xuICAgICAgICAgICAgZGVsZXRlIHF1ZXJ5UGFyYW1zWydiUGFyYW1zJ107XG4gICAgICAgICAgICBkZWxldGUgcXVlcnlQYXJhbXNbJ2JPUGFyYW1zJ107XG4gICAgICAgICAgICBkZWxldGUgcXVlcnlQYXJhbXNbJ29wdGlvbnMnXTtcblxuICAgICAgICAgICAgdXJsID0gUGFyYW1VdGlscy5zZXRQYXJhbXModXJsLCBxdWVyeVBhcmFtcyk7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLnVybFJld3JpdGVyKSB7XG4gICAgICAgICAgICAgICAgdXJsID0gdGhpcy51cmxSZXdyaXRlcih1cmwpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBodHRwT2JzID0gdGhpcy5odHRwQ2xpZW50LnBvc3QodXJsLCBib2R5LCB7XG4gICAgICAgICAgICAgICAgaGVhZGVyczogcmVxdWVzdEhlYWRlcnNcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKG9QYXJhbXMpIHtcbiAgICAgICAgICAgICAgICBxdWVyeVBhcmFtc1snb1BhcmFtcyddID0gUGFyYW1VdGlscy5iYXNlNjRVcmxFbmNvZGUoSlNPTi5zdHJpbmdpZnkob1BhcmFtcykpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAob3B0aW9ucykge1xuICAgICAgICAgICAgICAgIHF1ZXJ5UGFyYW1zWydvcHRpb25zJ10gPSBQYXJhbVV0aWxzLmJhc2U2NFVybEVuY29kZShKU09OLnN0cmluZ2lmeShvcHRpb25zKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB1cmwgPSBQYXJhbVV0aWxzLnNldFBhcmFtcyh1cmwsIHF1ZXJ5UGFyYW1zKTtcblxuICAgICAgICAgICAgaWYgKHRoaXMudXJsUmV3cml0ZXIpIHtcbiAgICAgICAgICAgICAgICB1cmwgPSB0aGlzLnVybFJld3JpdGVyKHVybCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGh0dHBPYnMgPSB0aGlzLmh0dHBDbGllbnQuZ2V0KHVybCwge1xuICAgICAgICAgICAgICAgIGhlYWRlcnM6IHJlcXVlc3RIZWFkZXJzXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGh0dHBPYnMgPSBodHRwT2JzLnBpcGUoXG4gICAgICAgICAgICBtYXAodmFsID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gTWljcm9PYmplY3QuZnJvbU9iamVjdCh2YWwsIHRoaXMpO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICB0aGlzLmNhdGNoQW5kSGFuZGxlRXJyb3IoKVxuICAgICAgICApO1xuXG4gICAgICAgIHJldHVybiBodHRwT2JzO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2F0Y2hBbmRIYW5kbGVFcnJvcjxUPigpOiAoKHNvdXJjZTogT2JzZXJ2YWJsZTxUPikgPT4gT2JzZXJ2YWJsZTxUPikge1xuICAgICAgICByZXR1cm4gKHNvdXJjZTogT2JzZXJ2YWJsZTxUPikgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHNvdXJjZS5waXBlKFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IoZXJyID0+IHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGxvYWRFcnJvciA9IG5ldyBNaWNyb0NsaWVudExvYWRFcnJvcihlcnIsIChlcnJUb0hhbmRsZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVFcnJvcihlcnJUb0hhbmRsZSk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihsb2FkRXJyb3IpLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgICAgICBmaW5hbGl6ZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFsb2FkRXJyb3Iuc2hvdWxkUHJldmVudERlZmF1bHQoKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2FkRXJyb3IuaGFuZGxlRGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICk7XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHVibGljIGNyZWF0ZUNoaWxkQ2xpZW50Rm9yRW50cnlQb2ludChlbnRyeVBvaW50OiBNaWNyb09iamVjdCk6IE1pY3JvQ2xpZW50IHtcbiAgICAgICAgaWYgKGVudHJ5UG9pbnQuX19tZXRhICYmIGVudHJ5UG9pbnQuX19tZXRhLnBlcm1pdFRva2VuKSB7XG4gICAgICAgICAgICBjb25zdCBjaGlsZENsaWVudDogTWljcm9DbGllbnQgPSBPYmplY3QuY3JlYXRlKHRoaXMsIHtcbiAgICAgICAgICAgICAgICBlbnRyeVBvaW50OiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgd3JpdGFibGU6IHRydWVcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGF1dGhIZWFkZXI6IHtcbiAgICAgICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICB3cml0YWJsZTogdHJ1ZVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgcGVybWl0VG9rZW46IHtcbiAgICAgICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICB3cml0YWJsZTogdHJ1ZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgY2hpbGRDbGllbnQuc2V0RW50cnlQb2ludChlbnRyeVBvaW50KTtcbiAgICAgICAgICAgIHJldHVybiBjaGlsZENsaWVudDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignVGhlIHN1cHBsaWVkIHZhbHVlIGNhblxcJ3QgYmUgdXNlZCB0byBjb25zdHJ1Y3QgYSBjaGlsZCBNaWNyb0NsaWVudCBiZWNhdXNlIGl0IGRvZXNuXFwndCBjb250YWluIG1ldGFkYXRhIHdpdGggYSBwZXJtaXRUb2tlbiAnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBzZXRVUkxSZXdyaXRlcihyZXdyaXRlcjogKHN0cmluZykgPT4gc3RyaW5nKSB7XG4gICAgICAgIHRoaXMudXJsUmV3cml0ZXIgPSByZXdyaXRlcjtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIHRvTWljcm9FcnJvcihodHRwUmVzcG9uc2U6IEh0dHBFcnJvclJlc3BvbnNlKTogTWljcm9FcnJvciB7XG4gICAgICAgIGNvbnN0IHJlcyA9IGh0dHBSZXNwb25zZS5lcnJvcjtcbiAgICAgICAgaWYgKHJlcyAmJiByZXMuX19tZXRhICYmIHJlcy5fX21ldGEuZXJyb3IpIHtcbiAgICAgICAgICAgIHJldHVybiBPYmplY3QuYXNzaWduKG5ldyBNaWNyb0Vycm9yKCksIHJlcy5fX21ldGEuZXJyb3IpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHByaXZhdGUgc3RhdGljIHN0YXRpY0NvbnRlbnRSZWdFeHAgPSBuZXcgUmVnRXhwKCdbYS16QS1aMC05XTovLy4qKDpbMC05XSspPygvLiopKi9zdGF0aWMoLy4qKFxcXFw/LiopPygjLiopPyk/Jyk7XG5cbiAgICBwdWJsaWMgc3RhdGljIGd1ZXNzTWljcm9Db21wb25lbnRCYXNlVVJMKCk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IGhyZWYgPSB3aW5kb3cubG9jYXRpb24uaHJlZjtcblxuICAgICAgICAvLyBMYXN0IFVSTC1TZWdlbWVudCBpcyBzdGF0aWNcbiAgICAgICAgaWYgKE1pY3JvQ2xpZW50LnN0YXRpY0NvbnRlbnRSZWdFeHAudGVzdChocmVmKSkge1xuICAgICAgICAgICAgcmV0dXJuIGhyZWYucmVwbGFjZShuZXcgUmVnRXhwKCcvc3RhdGljLy4qJyksICcnKVxuICAgICAgICAgICAgICAgIC5yZXBsYWNlKG5ldyBSZWdFeHAoJy8jLy4qJyksICcnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICh3aW5kb3cubG9jYXRpb24ucHJvdG9jb2wuc3RhcnRzV2l0aCgnZmlsZScpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICdodHRwOi8vbG9jYWxob3N0OjgwODAnO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gd2luZG93LmxvY2F0aW9uLnByb3RvY29sICsgJy8vJyArIHdpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZSArICc6ODA4MCc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGd1ZXNzTWljcm9Db21wb25lbnRBdXRob3JpemVVUkwoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ3Vlc3NNaWNyb0NvbXBvbmVudEJhc2VVUkwoKSArICcvYXV0aG9yaXplJztcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBNaWNyb0NsaWVudExvYWRFcnJvciB7XG4gICAgcHJpdmF0ZSBoYW5kbGVkID0gZmFsc2U7XG4gICAgcHJpdmF0ZSBkb1ByZXZlbnREZWZhdWx0ID0gZmFsc2U7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVycm9yOiBhbnksIHByaXZhdGUgZGVmYXVsdEhhbmRsZXI6IChlcnI6IGFueSkgPT4gdm9pZCkge1xuXG4gICAgfVxuXG4gICAgcHVibGljIGhhbmRsZURlZmF1bHQoKSB7XG4gICAgICAgIGlmICh0aGlzLmRlZmF1bHRIYW5kbGVyKSB7XG4gICAgICAgICAgICB0aGlzLmRlZmF1bHRIYW5kbGVyKHRoaXMuZXJyb3IpO1xuICAgICAgICAgICAgdGhpcy5oYW5kbGVkID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBoYW5kbGVFcnJvcihoYW5kbGVyOiAoZXJyb3I6IGFueSkgPT4gdm9pZCkge1xuICAgICAgICBoYW5kbGVyKHRoaXMuZXJyb3IpO1xuICAgICAgICB0aGlzLmhhbmRsZWQgPSB0cnVlO1xuICAgIH1cblxuICAgIHB1YmxpYyBpc0hhbmRsZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmhhbmRsZWQ7XG4gICAgfVxuXG4gICAgcHVibGljIHNob3VsZFByZXZlbnREZWZhdWx0KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5kb1ByZXZlbnREZWZhdWx0O1xuICAgIH1cblxuICAgIHB1YmxpYyBwcmV2ZW50RGVmYXVsdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kb1ByZXZlbnREZWZhdWx0ID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaGFzRGVmYXVsdEhhbmRsZXIoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmRlZmF1bHRIYW5kbGVyICE9IG51bGw7XG4gICAgfVxufVxuIl19
|
|
513
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWljcm9jbGllbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BtaWNyb3Blcm1pdC9jbGllbnQtYW5ndWxhci8iLCJzb3VyY2VzIjpbImxpYi9taWNyb2NsaWVudC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBQyxVQUFVLEVBQXFCLFdBQVcsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ2hGLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFhLGFBQWEsRUFBVyxVQUFVLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDcEUsT0FBTyxFQUFDLFVBQVUsRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFvQixNQUFNLGdCQUFnQixDQUFDO0FBQzVFLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFDeEMsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBRzlDLE1BQU0sT0FBTyxXQUFXOzs7O0lBY3BCLFlBQW9CLFVBQXNCO1FBQXRCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFSbEMsc0JBQWlCLEdBQStCLElBQUksYUFBYSxFQUFlLENBQUM7UUFJbEYsWUFBTyxHQUFHLElBQUksQ0FBQztRQUNmLDRCQUF1QixHQUFHLElBQUksQ0FBQztRQUMvQiw0QkFBdUIsR0FBRyxLQUFLLENBQUM7SUFJdkMsQ0FBQzs7Ozs7SUFFTSwwQkFBMEIsQ0FBQyx1QkFBZ0M7UUFDOUQsSUFBSSxDQUFDLHVCQUF1QixHQUFHLHVCQUF1QixDQUFDO0lBQzNELENBQUM7Ozs7O0lBRU0sWUFBWSxDQUFDLEtBQWE7UUFDN0IsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO0lBQzdCLENBQUM7Ozs7O0lBRU0s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QWtTOUMsTUFBTSxPQUFPLG9CQUFvQjs7Ozs7SUFJN0IsWUFBb0IsS0FBVSxFQUFVLGNBQWtDO1FBQXRELFVBQUssR0FBTCxLQUFLLENBQUs7UUFBVSxtQkFBYyxHQUFkLGNBQWMsQ0FBb0I7UUFIbEUsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUNoQixxQkFBZ0IsR0FBRyxLQUFLLENBQUM7SUFJakMsQ0FBQzs7OztJQUVNLGFBQWE7UUFDaEIsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ3JCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2hDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1NBQ3ZCO0lBQ0wsQ0FBQzs7Ozs7SUFFTSxXQUFXLENBQUMsT0FBNkI7UUFDNUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztJQUN4QixDQUFDOzs7O0lBRU0sU0FBUztRQUNaLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN4QixDQUFDOzs7O0lBRU0sb0JBQW9CO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDO0lBQ2pDLENBQUM7Ozs7SUFFTSxjQUFjO1FBQ2pCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7SUFDakMsQ0FBQzs7OztJQUVNLGlCQUFpQjtRQUNwQixPQUFPLElBQUksQ0FBQyxjQUFjLElBQUksSUFBSSxDQUFDO0lBQ3ZDLENBQUM7Q0FDSjs7Ozs7O0lBbENHLHVDQUF3Qjs7Ozs7SUFDeEIsZ0RBQWlDOzs7OztJQUVyQixxQ0FBa0I7Ozs7O0lBQUUsOENBQTBDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7SHR0cENsaWVudCwgSHR0cEVycm9yUmVzcG9uc2UsIEh0dHBIZWFkZXJzfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQge01pY3JvT2JqZWN0fSBmcm9tICcuL21pY3Jvb2JqZWN0JztcbmltcG9ydCB7T2JzZXJ2YWJsZSwgUmVwbGF5U3ViamVjdCwgU3ViamVjdCwgdGhyb3dFcnJvcn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge2NhdGNoRXJyb3IsIGZpbmFsaXplLCBtYXAsIHRha2UsIHNoYXJlUmVwbGF5fSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge1BhcmFtVXRpbHN9IGZyb20gJy4vcGFyYW11dGlscyc7XG5pbXBvcnQge01pY3JvRXJyb3J9IGZyb20gJy4vZXJyb3IvbWljcm9lcnJvcic7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBNaWNyb0NsaWVudCB7XG5cbiAgICBwcml2YXRlIGF1dGhIZWFkZXI6IHN0cmluZztcbiAgICBwcml2YXRlIHBlcm1pdFRva2VuOiBzdHJpbmc7XG4gICAgcHJpdmF0ZSBlbnRyeVBvaW50OiBNaWNyb09iamVjdDtcblxuICAgIHByaXZhdGUgZW50cnlQb2ludFN1YmplY3Q6IFJlcGxheVN1YmplY3Q8TWljcm9PYmplY3Q+ID0gbmV3IFJlcGxheVN1YmplY3Q8TWljcm9PYmplY3Q+KCk7XG5cbiAgICBwcml2YXRlIHVybFJld3JpdGVyOiAoc3RyaW5nKSA9PiBzdHJpbmc7XG4gICAgcHJpdmF0ZSBkZWZhdWx0RXJyb3JIYW5kbGVyOiAoaHR0cEVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSwgbWljcm9FcnJvcjogTWljcm9PYmplY3QpID0+IHZvaWQ7XG4gICAgcHVibGljIHVzZVBvc3QgPSB0cnVlO1xuICAgIHB1YmxpYyBzZW5kQXNQZXJtaXRUb2tlbkhlYWRlciA9IHRydWU7XG4gICAgcHVibGljIHNlbmRBc011bHRpcGFydEZvcm1EYXRhID0gZmFsc2U7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHBDbGllbnQ6IEh0dHBDbGllbnQpIHtcblxuICAgIH1cblxuICAgIHB1YmxpYyBzZXRTZW5kQXNQZXJtaXRUb2tlbkhlYWRlcihzZW5kQXNQZXJtaXRUb2tlbkhlYWRlcjogYm9vbGVhbikge1xuICAgICAgICB0aGlzLnNlbmRBc1Blcm1pdFRva2VuSGVhZGVyID0gc2VuZEFzUGVybWl0VG9rZW5IZWFkZXI7XG4gICAgfVxuXG4gICAgcHVibGljIHNldEF1dGhUb2tlbih0b2tlbjogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuYXV0aEhlYWRlciA9ICdCZWFyZXIgJyArIHRva2VuO1xuICAgICAgICB0aGlzLnBlcm1pdFRva2VuID0gdG9rZW47XG4gICAgfVxuXG4gICAgcHVibGljIHNldEF1dGhIZWFkZXIoYXV0aEhlYWRlcjogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuYXV0aEhlYWRlciA9IGF1dGhIZWFkZXI7XG4gICAgfVxuXG4gICAgcHVibGljIGdldEVudHJ5UG9pbnQoKTogYW55IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZW50cnlQb2ludDtcbiAgICB9XG5cbiAgICBwdWJsaWMgd2FpdEZvckVudHJ5UG9pbnQoY2I/OiAoZW50cnlQb2ludDogYW55KSA9PiB2b2lkKTogUHJvbWlzZTxhbnk+IHtcbiAgICAgICAgaWYgKGNiICE9IG51bGwpIHtcbiAgICAgICAgICAgIHRoaXMuZW50cnlQb2ludFN1YmplY3Quc3Vic2NyaWJlKGNiKTtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLmVudHJ5UG9pbnRTdWJqZWN0LnRvUHJvbWlzZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBjb3B5QXV0aEFuZEVudHJ5cG9pbnRPZihvdGhlcjogTWljcm9DbGllbnQpIHtcbiAgICAgICAgdGhpcy5hdXRoSGVhZGVyID0gb3RoZXIuYXV0aEhlYWRlcjtcbiAgICAgICAgdGhpcy5wZXJtaXRUb2tlbiA9IG90aGVyLnBlcm1pdFRva2VuO1xuICAgICAgICB0aGlzLmVudHJ5UG9pbnQgPSBvdGhlci5lbnRyeVBvaW50O1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXRFbnRyeVBvaW50PFQgZXh0ZW5kcyBNaWNyb09iamVjdD4oZW50cnlQb2ludDogYW55KSB7XG4gICAgICAgIGlmIChlbnRyeVBvaW50ID09IG51bGwpIHtcbiAgICAgICAgICAgIHRoaXMuYXV0aEhlYWRlciA9IG51bGw7XG4gICAgICAgICAgICB0aGlzLmVudHJ5UG9pbnQgPSBudWxsO1xuICAgICAgICAgICAgdGhpcy5wZXJtaXRUb2tlbiA9IG51bGw7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmVudHJ5UG9pbnQgPSBlbnRyeVBvaW50O1xuICAgICAgICAgICAgaWYgKHRoaXMuZW50cnlQb2ludC5fX21ldGEgJiYgdGhpcy5lbnRyeVBvaW50Ll9fbWV0YS5wZXJtaXRUb2tlbikge1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0QXV0aFRva2VuKHRoaXMuZW50cnlQb2ludC5fX21ldGEucGVybWl0VG9rZW4pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBFcnJvcignRXhwZWN0ZWQgdGhlIGVudHJ5UG9pbnQgdG8gY29udGFpbiBhIFwicGVybWl0VG9rZW5cIiB3aXRoaW4gdGhlIFwiX19tZXRhXCIgZmllbGQnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuZW50cnlQb2ludFN1YmplY3QubmV4dChlbnRyeVBvaW50KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBzZXREZWZhdWx0RXJyb3JIYW5kbGVyKGhhbmRsZXI6IChodHRwRXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlLCBtaWNyb0Vycm9yOiBNaWNyb09iamVjdCkgPT4gdm9pZCkge1xuICAgICAgICB0aGlzLmRlZmF1bHRFcnJvckhhbmRsZXIgPSBoYW5kbGVyO1xuICAgIH1cblxuICAgIHB1YmxpYyBoYW5kbGVFcnJvcihodHRwRXJyOiBIdHRwRXJyb3JSZXNwb25zZSkge1xuICAgICAgICBpZiAodGhpcy5kZWZhdWx0RXJyb3JIYW5kbGVyKSB7XG4gICAgICAgICAgICBjb25zdCBtaWNyb0Vycm9yID0gTWljcm9DbGllbnQudG9NaWNyb0Vycm9yKGh0dHBFcnIpO1xuICAgICAgICAgICAgaWYgKG1pY3JvRXJyb3IpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBtaWNyb1Jlc3VsdE9iajogTWljcm9PYmplY3QgPSA8TWljcm9PYmplY3Q+TWljcm9PYmplY3QuZnJvbU9iamVjdChodHRwRXJyLmVycm9yLCB0aGlzKTtcbiAgICAgICAgICAgICAgICB0aGlzLmRlZmF1bHRFcnJvckhhbmRsZXIoaHR0cEVyciwgbWljcm9SZXN1bHRPYmopO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmRlZmF1bHRFcnJvckhhbmRsZXIoaHR0cEVyciwgbnVsbCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgaWduaXRlPFQ+KFxuICAgICAgICB1cmw6IHN0cmluZyxcbiAgICAgICAgdXNlcm5hbWU6IFN0cmluZyA9IG51bGwsXG4gICAgICAgIHBhc3N3b3JkOiBTdHJpbmcgPSBudWxsLFxuICAgICAgICBoZWFkZXJzOiBvYmplY3QgPSB7fVxuICAgICk6IE9ic2VydmFibGU8VD4ge1xuICAgICAgICBpZiAodGhpcy51cmxSZXdyaXRlcikge1xuICAgICAgICAgICAgdXJsID0gdGhpcy51cmxSZXdyaXRlcih1cmwpO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IHJlcXVlc3RIZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCk7XG4gICAgICAgIGZvciAoY29uc3QgaGVhZGVyS2V5IGluIGhlYWRlcnMpIHtcbiAgICAgICAgICAgIGlmIChoZWFkZXJzLmhhc093blByb3BlcnR5KGhlYWRlcktleSkpIHtcbiAgICAgICAgICAgICAgICByZXF1ZXN0SGVhZGVycyA9IHJlcXVlc3RIZWFkZXJzLnNldChoZWFkZXJLZXksIGhlYWRlcnNbaGVhZGVyS2V5XSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodXNlcm5hbWUgIT0gbnVsbCB8fCBwYXNzd29yZCAhPSBudWxsKSB7XG4gICAgICAgICAgICByZXF1ZXN0SGVhZGVycyA9IHJlcXVlc3RIZWFkZXJzLnNldCgnQXV0aG9yaXphdGlvbicsICdCYXNpYyAnICsgYnRvYSh1c2VybmFtZSArICc6JyArIHBhc3N3b3JkKSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldCh1cmwsIHtcbiAgICAgICAgICAgIGhlYWRlcnM6IHJlcXVlc3RIZWFkZXJzXG4gICAgICAgIH0pLnBpcGUoXG4gICAgICAgICAgICBtYXAodmFsID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBlbnRyeVBvaW50ID0gTWljcm9PYmplY3QuZnJvbU9iamVjdCh2YWwsIHRoaXMpO1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0RW50cnlQb2ludChlbnRyeVBvaW50KTtcbiAgICAgICAgICAgICAgICByZXR1cm4gZW50cnlQb2ludCBhcyBUO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICB0aGlzLmNhdGNoQW5kSGFuZGxlRXJyb3IoKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHB1YmxpYyBsb2FkPFQ+KFxuICAgICAgICB1cmw6IHN0cmluZyxcbiAgICAgICAgcGFyYW1zPzogb2JqZWN0LFxuICAgICAgICByZXF1ZXN0T3B0aW9ucz86IG9iamVjdFxuICAgICk6IE9ic2VydmFibGU8VD4ge1xuICAgICAgICBsZXQgcmVxdWVzdEhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKTtcbiAgICAgICAgaWYgKHRoaXMuYXV0aEhlYWRlcikge1xuICAgICAgICAgICAgcmVxdWVzdEhlYWRlcnMgPSByZXF1ZXN0SGVhZGVycy5zZXQoJ0F1dGhvcml6YXRpb24nLCB0aGlzLmF1dGhIZWFkZXIpO1xuXG4gICAgICAgICAgICBpZiAodGhpcy5zZW5kQXNQZXJtaXRUb2tlbkhlYWRlcikge1xuICAgICAgICAgICAgICAgIHJlcXVlc3RIZWFkZXJzID0gcmVxdWVzdEhlYWRlcnMuc2V0KCdNaWNyb1Blcm1pdFRva2VuJywgdGhpcy5wZXJtaXRUb2tlbik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgb1BhcmFtcyA9IHBhcmFtcztcbiAgICAgICAgaWYgKHBhcmFtcyAhPSBudWxsIHx8IHRoaXMudXNlUG9zdCkge1xuICAgICAgICAgICAgY29uc3QgZXhpc3RpbmdQYXJhbXNTdHIgPSBQYXJhbVV0aWxzLmdldFBhcmFtKHVybCwgJ29QYXJhbXMnLCB0cnVlKTtcbiAgICAgICAgICAgIGxldCBleGlzdGluZ1BhcmFtcztcbiAgICAgICAgICAgIGlmIChleGlzdGluZ1BhcmFtc1N0cikge1xuICAgICAgICAgICAgICAgIGV4aXN0aW5nUGFyYW1zID0gSlNPTi5wYXJzZShleGlzdGluZ1BhcmFtc1N0cik7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGV4aXN0aW5nUGFyYW1zID0ge307XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBvUGFyYW1zID0gT2JqZWN0LmFzc2lnbihleGlzdGluZ1BhcmFtcywgcGFyYW1zKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBvcHRpb25zID0gcmVxdWVzdE9wdGlvbnM7XG4gICAgICAgIGlmIChyZXF1ZXN0T3B0aW9ucyAhPSBudWxsIHx8IHRoaXMudXNlUG9zdCkge1xuICAgICAgICAgICAgY29uc3QgcHJldk9wdGlvbnNTdHIgPSBQYXJhbVV0aWxzLmdldFBhcmFtKHVybCwgJ29wdGlvbnMnLCB0cnVlKTtcbiAgICAgICAgICAgIGlmIChwcmV2T3B0aW9uc1N0cikge1xuICAgICAgICAgICAgICAgIG9wdGlvbnMgPSBKU09OLnBhcnNlKHByZXZPcHRpb25zU3RyKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgb3B0aW9ucyA9IHt9O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBvcHRpb25zID0gT2JqZWN0LmFzc2lnbihvcHRpb25zLCByZXF1ZXN0T3B0aW9ucyk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBxdWVyeVBhcmFtcyA9IFBhcmFtVXRpbHMuZ2V0UGFyYW1zKHVybCk7XG5cbiAgICAgICAgbGV0IGh0dHBPYnMgPSBudWxsO1xuICAgICAgICBpZiAodGhpcy51c2VQb3N0KSB7XG5cbiAgICAgICAgICAgIGxldCBiT1BhcmFtcztcbiAgICAgICAgICAgIGNvbnN0IGVuY0JPUGFyYW1zID0gcXVlcnlQYXJhbXNbJ2JPUGFyYW1zJ107XG4gICAgICAgICAgICBpZiAoZW5jQk9QYXJhbXMpIHtcbiAgICAgICAgICAgICAgICBiT1BhcmFtcyA9IEpTT04ucGFyc2UoUGFyYW1VdGlscy5iYXNlNjRVcmxEZWNvZGUoZW5jQk9QYXJhbXMpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGJvZHkgPSB7XG4gICAgICAgICAgICAgICAgcGFyYW1zOiBxdWVyeVBhcmFtc1sncGFyYW1zJ10sXG4gICAgICAgICAgICAgICAgb1BhcmFtczogb1BhcmFtcyxcbiAgICAgICAgICAgICAgICBiUGFyYW1zOiBxdWVyeVBhcmFtc1snYlBhcmFtcyddLFxuICAgICAgICAgICAgICAgIGJPUGFyYW1zOiBiT1BhcmFtcyxcbiAgICAgICAgICAgICAgICBvcHRpb25zOiBvcHRpb25zLFxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgZGVsZXRlIHF1ZXJ5UGFyYW1zWydwYXJhbXMnXTtcbiAgICAgICAgICAgIGRlbGV0ZSBxdWVyeVBhcmFtc1snb1BhcmFtcyddO1xuICAgICAgICAgICAgZGVsZXRlIHF1ZXJ5UGFyYW1zWydiUGFyYW1zJ107XG4gICAgICAgICAgICBkZWxldGUgcXVlcnlQYXJhbXNbJ2JPUGFyYW1zJ107XG4gICAgICAgICAgICBkZWxldGUgcXVlcnlQYXJhbXNbJ29wdGlvbnMnXTtcblxuICAgICAgICAgICAgdXJsID0gUGFyYW1VdGlscy5zZXRQYXJhbXModXJsLCBxdWVyeVBhcmFtcyk7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLnVybFJld3JpdGVyKSB7XG4gICAgICAgICAgICAgICAgdXJsID0gdGhpcy51cmxSZXdyaXRlcih1cmwpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBodHRwT2JzID0gdGhpcy5odHRwQ2xpZW50LnBvc3QodXJsLCB0aGlzLmVuY29kZUJvZHkoYm9keSksIHtcbiAgICAgICAgICAgICAgICBoZWFkZXJzOiByZXF1ZXN0SGVhZGVyc1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAob1BhcmFtcykge1xuICAgICAgICAgICAgICAgIHF1ZXJ5UGFyYW1zWydvUGFyYW1zJ10gPSBQYXJhbVV0aWxzLmJhc2U2NFVybEVuY29kZShKU09OLnN0cmluZ2lmeShvUGFyYW1zKSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChvcHRpb25zKSB7XG4gICAgICAgICAgICAgICAgcXVlcnlQYXJhbXNbJ29wdGlvbnMnXSA9IFBhcmFtVXRpbHMuYmFzZTY0VXJsRW5jb2RlKEpTT04uc3RyaW5naWZ5KG9wdGlvbnMpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHVybCA9IFBhcmFtVXRpbHMuc2V0UGFyYW1zKHVybCwgcXVlcnlQYXJhbXMpO1xuXG4gICAgICAgICAgICBpZiAodGhpcy51cmxSZXdyaXRlcikge1xuICAgICAgICAgICAgICAgIHVybCA9IHRoaXMudXJsUmV3cml0ZXIodXJsKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaHR0cE9icyA9IHRoaXMuaHR0cENsaWVudC5nZXQodXJsLCB7XG4gICAgICAgICAgICAgICAgaGVhZGVyczogcmVxdWVzdEhlYWRlcnNcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgaHR0cE9icyA9IGh0dHBPYnMucGlwZShcbiAgICAgICAgICAgIG1hcCh2YWwgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBNaWNyb09iamVjdC5mcm9tT2JqZWN0KHZhbCwgdGhpcyk7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIHRoaXMuY2F0Y2hBbmRIYW5kbGVFcnJvcigpXG4gICAgICAgICk7XG5cbiAgICAgICAgcmV0dXJuIGh0dHBPYnM7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBlbmNvZGVCb2R5KGJvZHk6IGFueSk6IGFueSB7XG4gICAgICAgIGlmICh0aGlzLnNlbmRBc011bHRpcGFydEZvcm1EYXRhKSB7XG4gICAgICAgICAgICBsZXQgZm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKTtcbiAgICAgICAgICAgIGZvcm1EYXRhLmFwcGVuZCgnJywgSlNPTi5zdHJpbmdpZnkoYm9keSkpO1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBGb3JtRGF0YSgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGJvZHk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGNhdGNoQW5kSGFuZGxlRXJyb3I8VD4oKTogKChzb3VyY2U6IE9ic2VydmFibGU8VD4pID0+IE9ic2VydmFibGU8VD4pIHtcbiAgICAgICAgcmV0dXJuIChzb3VyY2U6IE9ic2VydmFibGU8VD4pID0+IHtcbiAgICAgICAgICAgIHJldHVybiBzb3VyY2UucGlwZShcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKGVyciA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBsb2FkRXJyb3IgPSBuZXcgTWljcm9DbGllbnRMb2FkRXJyb3IoZXJyLCAoZXJyVG9IYW5kbGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlRXJyb3IoZXJyVG9IYW5kbGUpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IobG9hZEVycm9yKS5waXBlKFxuICAgICAgICAgICAgICAgICAgICAgICAgZmluYWxpemUoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghbG9hZEVycm9yLnNob3VsZFByZXZlbnREZWZhdWx0KCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9hZEVycm9yLmhhbmRsZURlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApO1xuICAgICAgICB9O1xuICAgIH1cblxuICAgIHB1YmxpYyBjcmVhdGVDaGlsZENsaWVudEZvckVudHJ5UG9pbnQoZW50cnlQb2ludDogTWljcm9PYmplY3QpOiBNaWNyb0NsaWVudCB7XG4gICAgICAgIGlmIChlbnRyeVBvaW50Ll9fbWV0YSAmJiBlbnRyeVBvaW50Ll9fbWV0YS5wZXJtaXRUb2tlbikge1xuICAgICAgICAgICAgY29uc3QgY2hpbGRDbGllbnQ6IE1pY3JvQ2xpZW50ID0gT2JqZWN0LmNyZWF0ZSh0aGlzLCB7XG4gICAgICAgICAgICAgICAgZW50cnlQb2ludDoge1xuICAgICAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIHdyaXRhYmxlOiB0cnVlXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBhdXRoSGVhZGVyOiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgd3JpdGFibGU6IHRydWVcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHBlcm1pdFRva2VuOiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgd3JpdGFibGU6IHRydWVcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGNoaWxkQ2xpZW50LnNldEVudHJ5UG9pbnQoZW50cnlQb2ludCk7XG4gICAgICAgICAgICByZXR1cm4gY2hpbGRDbGllbnQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1RoZSBzdXBwbGllZCB2YWx1ZSBjYW5cXCd0IGJlIHVzZWQgdG8gY29uc3RydWN0IGEgY2hpbGQgTWljcm9DbGllbnQgYmVjYXVzZSBpdCBkb2VzblxcJ3QgY29udGFpbiBtZXRhZGF0YSB3aXRoIGEgcGVybWl0VG9rZW4gJyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0VVJMUmV3cml0ZXIocmV3cml0ZXI6IChzdHJpbmcpID0+IHN0cmluZykge1xuICAgICAgICB0aGlzLnVybFJld3JpdGVyID0gcmV3cml0ZXI7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyB0b01pY3JvRXJyb3IoaHR0cFJlc3BvbnNlOiBIdHRwRXJyb3JSZXNwb25zZSk6IE1pY3JvRXJyb3Ige1xuICAgICAgICBjb25zdCByZXMgPSBodHRwUmVzcG9uc2UuZXJyb3I7XG4gICAgICAgIGlmIChyZXMgJiYgcmVzLl9fbWV0YSAmJiByZXMuX19tZXRhLmVycm9yKSB7XG4gICAgICAgICAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihuZXcgTWljcm9FcnJvcigpLCByZXMuX19tZXRhLmVycm9yKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN0YXRpYyBzdGF0aWNDb250ZW50UmVnRXhwID0gbmV3IFJlZ0V4cCgnW2EtekEtWjAtOV06Ly8uKig6WzAtOV0rKT8oLy4qKSovc3RhdGljKC8uKihcXFxcPy4qKT8oIy4qKT8pPycpO1xuXG4gICAgcHVibGljIHN0YXRpYyBndWVzc01pY3JvQ29tcG9uZW50QmFzZVVSTCgpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBocmVmID0gd2luZG93LmxvY2F0aW9uLmhyZWY7XG5cbiAgICAgICAgLy8gTGFzdCBVUkwtU2VnZW1lbnQgaXMgc3RhdGljXG4gICAgICAgIGlmIChNaWNyb0NsaWVudC5zdGF0aWNDb250ZW50UmVnRXhwLnRlc3QoaHJlZikpIHtcbiAgICAgICAgICAgIHJldHVybiBocmVmLnJlcGxhY2UobmV3IFJlZ0V4cCgnL3N0YXRpYy8uKicpLCAnJylcbiAgICAgICAgICAgICAgICAucmVwbGFjZShuZXcgUmVnRXhwKCcvIy8uKicpLCAnJyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAod2luZG93LmxvY2F0aW9uLnByb3RvY29sLnN0YXJ0c1dpdGgoJ2ZpbGUnKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiAnaHR0cDovL2xvY2FsaG9zdDo4MDgwJztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHdpbmRvdy5sb2NhdGlvbi5wcm90b2NvbCArICcvLycgKyB3aW5kb3cubG9jYXRpb24uaG9zdG5hbWUgKyAnOjgwODAnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBndWVzc01pY3JvQ29tcG9uZW50QXV0aG9yaXplVVJMKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmd1ZXNzTWljcm9Db21wb25lbnRCYXNlVVJMKCkgKyAnL2F1dGhvcml6ZSc7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgTWljcm9DbGllbnRMb2FkRXJyb3Ige1xuICAgIHByaXZhdGUgaGFuZGxlZCA9IGZhbHNlO1xuICAgIHByaXZhdGUgZG9QcmV2ZW50RGVmYXVsdCA9IGZhbHNlO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBlcnJvcjogYW55LCBwcml2YXRlIGRlZmF1bHRIYW5kbGVyOiAoZXJyOiBhbnkpID0+IHZvaWQpIHtcblxuICAgIH1cblxuICAgIHB1YmxpYyBoYW5kbGVEZWZhdWx0KCkge1xuICAgICAgICBpZiAodGhpcy5kZWZhdWx0SGFuZGxlcikge1xuICAgICAgICAgICAgdGhpcy5kZWZhdWx0SGFuZGxlcih0aGlzLmVycm9yKTtcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgaGFuZGxlRXJyb3IoaGFuZGxlcjogKGVycm9yOiBhbnkpID0+IHZvaWQpIHtcbiAgICAgICAgaGFuZGxlcih0aGlzLmVycm9yKTtcbiAgICAgICAgdGhpcy5oYW5kbGVkID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNIYW5kbGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5oYW5kbGVkO1xuICAgIH1cblxuICAgIHB1YmxpYyBzaG91bGRQcmV2ZW50RGVmYXVsdCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZG9QcmV2ZW50RGVmYXVsdDtcbiAgICB9XG5cbiAgICBwdWJsaWMgcHJldmVudERlZmF1bHQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZG9QcmV2ZW50RGVmYXVsdCA9IHRydWU7XG4gICAgfVxuXG4gICAgcHVibGljIGhhc0RlZmF1bHRIYW5kbGVyKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5kZWZhdWx0SGFuZGxlciAhPSBudWxsO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -142,6 +142,7 @@ LinkField = /** @class */ (function (_super) {
|
|
|
142
142
|
*/
|
|
143
143
|
function () {
|
|
144
144
|
var _this = this;
|
|
145
|
+
//TODO handle listeners in case of intermidiate uninitialize (new valueSubj)
|
|
145
146
|
if (this.valueSubj) {
|
|
146
147
|
return this.valueSubj;
|
|
147
148
|
}
|
|
@@ -153,7 +154,16 @@ LinkField = /** @class */ (function (_super) {
|
|
|
153
154
|
* @return {?}
|
|
154
155
|
*/
|
|
155
156
|
function () {
|
|
156
|
-
_this.initWithObs(null, null).subscribe(
|
|
157
|
+
_this.initWithObs(null, null).subscribe((/**
|
|
158
|
+
* @param {?} value
|
|
159
|
+
* @return {?}
|
|
160
|
+
*/
|
|
161
|
+
function (value) {
|
|
162
|
+
if (_this.valueSubj !== valueSubj_1) {
|
|
163
|
+
valueSubj_1.next(value);
|
|
164
|
+
valueSubj_1.complete();
|
|
165
|
+
}
|
|
166
|
+
}));
|
|
157
167
|
return valueSubj_1;
|
|
158
168
|
}));
|
|
159
169
|
}
|
|
@@ -356,4 +366,4 @@ if (false) {
|
|
|
356
366
|
*/
|
|
357
367
|
LinkField.prototype.isRefreshing;
|
|
358
368
|
}
|
|
359
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlua2ZpZWxkLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG1pY3JvcGVybWl0L2NsaWVudC1hbmd1bGFyLyIsInNvdXJjZXMiOlsibGliL2xpbmtzL2xpbmtmaWVsZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBQyxLQUFLLEVBQWMsYUFBYSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBRXRELE9BQU8sRUFBQyxZQUFZLEVBQUUsY0FBYyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUQsT0FBTyxFQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQUV6Qzs7OztJQUFrQyxxQ0FBZTtJQVM3QyxtQkFDSSxJQUFZLEVBQ1osV0FBd0IsRUFDeEIsWUFBc0IsRUFDdEIsV0FBNEIsRUFDNUIsVUFBeUIsRUFDekIsY0FBNkI7UUFIN0IsNkJBQUEsRUFBQSxtQkFBc0I7UUFDdEIsNEJBQUEsRUFBQSxtQkFBNEI7UUFDNUIsMkJBQUEsRUFBQSxpQkFBeUI7UUFDekIsK0JBQUEsRUFBQSxxQkFBNkI7UUFOakMsWUFRSSxrQkFBTSxJQUFJLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxjQUFjLENBQUMsU0FJdkQ7UUFuQk8saUJBQVcsR0FBRyxLQUFLLENBQUM7UUFLckIsaUJBQVcsR0FBd0csY0FBYyxDQUFDLHVCQUF1QixDQUFDO1FBbUN6SixnQkFBVSxHQUFHLElBQUksQ0FBQztRQUNsQixrQkFBWSxHQUFHLEtBQUssQ0FBQztRQXpCekIsSUFBSSxXQUFXLEVBQUU7WUFDYixLQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDO1NBQzFCOztJQUNMLENBQUM7Ozs7OztJQUVNLGNBQUk7Ozs7O0lBQVgsVUFBMkMsS0FBUTtRQUMvQyxPQUFPLElBQUksU0FBUyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ2xELENBQUM7Ozs7O0lBRUQsdUJBQUc7Ozs7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QkFBTTs7O0lBQU47UUFDSSxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDbEIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUM7U0FDOUc7YUFBTTtZQUNILE9BQU8sU0FBUyxDQUFDO1NBQ3BCO0lBQ0wsQ0FBQztJQUNMLGdCQUFDO0FBQUQsQ0FBQyxBQXpLRCxDQUFrQyxZQUFZLEdBeUs3Qzs7Ozs7Ozs7OztJQXhLRywwQkFBaUI7Ozs7O0lBQ2pCLGdDQUE0Qjs7Ozs7SUFDNUIsZ0NBQWdDOzs7OztJQUVoQyw4QkFBb0M7O0lBRXBDLGdDQUFpSzs7Ozs7SUFtQ2pLLCtCQUEwQjs7Ozs7SUFDMUIsaUNBQTZCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtkZWZlciwgT2JzZXJ2YWJsZSwgUmVwbGF5U3ViamVjdH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge01pY3JvQ2xpZW50LCBNaWNyb0NsaWVudExvYWRFcnJvcn0gZnJvbSAnLi4vbWljcm9jbGllbnQuc2VydmljZSc7XG5pbXBvcnQge0NhbGxhYmxlTGluaywgTGlua1NlcmlhbGl6ZXJ9IGZyb20gJy4vY2FsbGFibGVsaW5rJztcbmltcG9ydCB7bWFwLCB0YWtlfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmV4cG9ydCBjbGFzcyBMaW5rRmllbGQ8VD4gZXh0ZW5kcyBDYWxsYWJsZUxpbms8VD4ge1xuICAgIHByaXZhdGUgdmFsdWU6IFQ7XG4gICAgcHJpdmF0ZSBpbml0aWFsaXplZCA9IGZhbHNlO1xuICAgIHByaXZhdGUgX2dldFByb21pc2U6IFByb21pc2U8VD47XG5cbiAgICBwcml2YXRlIHZhbHVlU3ViajogUmVwbGF5U3ViamVjdDxUPjtcblxuICAgIHB1YmxpYyBzZXJpYWxpemVUbzogKGxpbms6IHN0cmluZywgY2FsbFBhcmFtczogb2JqZWN0LCByZXF1ZXN0T3B0aW9uczogb2JqZWN0LCB2YWx1ZTogVCwgaXNJbml0aWFsaXplZDogYm9vbGVhbikgPT4gYW55ID0gTGlua1NlcmlhbGl6ZXIuQVNfVkFMVUVfSUZfSU5JVElBTElaRUQ7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgbGluazogc3RyaW5nLFxuICAgICAgICBtaWNyb0NsaWVudDogTWljcm9DbGllbnQsXG4gICAgICAgIGluaXRpYWxWYWx1ZTogVCA9IG51bGwsXG4gICAgICAgIGluaXRpYWxpemVkOiBib29sZWFuID0gZmFsc2UsXG4gICAgICAgIGNhbGxQYXJhbXM6IG9iamVjdCA9IG51bGwsXG4gICAgICAgIHJlcXVlc3RPcHRpb25zOiBvYmplY3QgPSBudWxsXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKGxpbmssIG1pY3JvQ2xpZW50LCBjYWxsUGFyYW1zLCByZXF1ZXN0T3B0aW9ucyk7XG4gICAgICAgIGlmIChpbml0aWFsaXplZCkge1xuICAgICAgICAgICAgdGhpcy5zZXQoaW5pdGlhbFZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHN0YXRpYyBmcm9tPFQgZXh0ZW5kcyAob2JqZWN0IHwgb2JqZWN0W10pPih2YWx1ZTogVCk6IExpbmtGaWVsZDxUPiB7XG4gICAgICAgIHJldHVybiBuZXcgTGlua0ZpZWxkKG51bGwsIG51bGwsIHZhbHVlLCB0cnVlKTtcbiAgICB9XG5cbiAgICBnZXQoY2FsbGJhY2s/OiAoVCkgPT4gdm9pZCk6IFByb21pc2U8VD4ge1xuICAgICAgICBpZiAoY2FsbGJhY2spIHtcbiAgICAgICAgICAgIHRoaXMuZ2V0T2JzKCkuc3Vic2NyaWJlKGNhbGxiYWNrKTtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLmdldFByb21pc2UoKTtcbiAgICB9XG5cbiAgICBnZXRQcm9taXNlKCk6IFByb21pc2U8VD4ge1xuICAgICAgICBpZiAoIXRoaXMuX2dldFByb21pc2UpIHtcbiAgICAgICAgICAgIHRoaXMuX2dldFByb21pc2UgPSB0aGlzLmdldE9icygpLnRvUHJvbWlzZSgpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLl9nZXRQcm9taXNlO1xuICAgIH1cblxuICAgIHByaXZhdGUgaW50ZXJ2YWxJZCA9IG51bGw7XG4gICAgcHJpdmF0ZSBpc1JlZnJlc2hpbmcgPSBmYWxzZTtcblxuICAgIHJlZnJlc2goaW50ZXJ2YWw/OiBudW1iZXIsIGVycm9ySGFuZGxlcj86IChlcnJvcjogTWljcm9DbGllbnRMb2FkRXJyb3IpID0+IHZvaWQpIHtcbiAgICAgICAgaWYgKGludGVydmFsKSB7XG4gICAgICAgICAgICB0aGlzLnN0b3BSZWZyZXNoKCk7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IHJlc0NiID0gKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5pc1JlZnJlc2hpbmcgPSBmYWxzZTtcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5pc1JlZnJlc2hpbmcgPSB0cnVlO1xuICAgICAgICB0aGlzLmluaXRXaXRoT2JzKCkuc3Vic2NyaWJlKHJlc0NiLCAoZXJyb3I6IE1pY3JvQ2xpZW50TG9hZEVycm9yKSA9PiB7XG4gICAgICAgICAgICByZXNDYigpO1xuICAgICAgICAgICAgaWYgKGVycm9ySGFuZGxlcikge1xuICAgICAgICAgICAgICAgIGVycm9ySGFuZGxlcihlcnJvcik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sIHJlc0NiKTtcblxuICAgICAgICBpZiAoaW50ZXJ2YWwpIHtcbiAgICAgICAgICAgIHRoaXMuaW50ZXJ2YWxJZCA9IHNldEludGVydmFsKCgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuaXNSZWZyZXNoaW5nKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaXNSZWZyZXNoaW5nID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbml0V2l0aE9icygpLnN1YnNjcmliZShyZXNDYiwgKGVycm9yOiBNaWNyb0NsaWVudExvYWRFcnJvcikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVzQ2IoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlcnJvckhhbmRsZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvckhhbmRsZXIoZXJyb3IpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9LCByZXNDYik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSwgaW50ZXJ2YWwpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc3RvcFJlZnJlc2goKSB7XG4gICAgICAgIGlmICh0aGlzLmludGVydmFsSWQpIHtcbiAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy5pbnRlcnZhbElkKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGxpc3Rlbk9icygpOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICAgICAgaWYgKHRoaXMudmFsdWVTdWJqKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy52YWx1ZVN1Ymo7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBsZXQgdmFsdWVTdWJqID0gbmV3IFJlcGxheVN1YmplY3Q8VD4oMSk7XG4gICAgICAgICAgICB0aGlzLnZhbHVlU3ViaiA9IHZhbHVlU3VialxuICAgICAgICAgICAgcmV0dXJuIGRlZmVyKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmluaXRXaXRoT2JzKG51bGwsIG51bGwpLnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZVN1Ymo7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldE9icygpOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMubGlzdGVuT2JzKCkucGlwZShcbiAgICAgICAgICAgIHRha2UoMSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBzZXQodmFsdWU6IFQpOiBUIHtcbiAgICAgICAgY29uc3Qgb2xkVmFsdWUgPSB0aGlzLnZhbHVlO1xuICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZWQgPSB0cnVlO1xuICAgICAgICBpZiAoIXRoaXMudmFsdWVTdWJqKSB7XG4gICAgICAgICAgICB0aGlzLnZhbHVlU3ViaiA9IG5ldyBSZXBsYXlTdWJqZWN0PFQ+KDEpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMudmFsdWVTdWJqLm5leHQodmFsdWUpO1xuICAgICAgICB0aGlzLl9nZXRQcm9taXNlID0gbnVsbDtcblxuICAgICAgICByZXR1cm4gb2xkVmFsdWU7XG4gICAgfVxuXG4gICAgaXNJbml0aWFsaXplZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaW5pdGlhbGl6ZWQ7XG4gICAgfVxuXG4gICAgdW5pbml0aWFsaXplKCkge1xuICAgICAgICB0aGlzLnZhbHVlID0gbnVsbDtcbiAgICAgICAgdGhpcy5pbml0aWFsaXplZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLnZhbHVlU3ViaiA9IG51bGw7XG4gICAgICAgIHRoaXMuX2dldFByb21pc2UgPSBudWxsO1xuICAgIH1cblxuICAgIGNvcHlVbmluaXRpYWxpemVkKCk6IExpbmtGaWVsZDxUPiB7XG4gICAgICAgIGxldCBjb3B5ID0gdGhpcy5jb3B5KClcbiAgICAgICAgY29weS51bmluaXRpYWxpemUoKVxuICAgICAgICByZXR1cm4gY29weTtcbiAgICB9XG5cbiAgICBnZXRJbml0aWFsaXplZFZhbHVlKCk6IFQge1xuICAgICAgICBpZiAoIXRoaXMuaXNJbml0aWFsaXplZCgpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0NhblxcJ3QgZ2V0IHRoZSBpbnRpYWxpemVkIHZhbHVlIGZvciBhIExpbmtGaWVsZCB0aGF0IGhhc25cXCd0IGJlZW4gaW5pdGlhbGl6ZWQnKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy52YWx1ZTtcbiAgICB9XG5cbiAgICBpbml0V2l0aChwYXJtczogb2JqZWN0ID0gbnVsbCwgcmVxdWVzdE9wdGlvbnM6IG9iamVjdCA9IG51bGwsIGNhbGxiYWNrOiAoVCkgPT4gdm9pZCkge1xuICAgICAgICB0aGlzLmluaXRXaXRoT2JzKHBhcm1zLCByZXF1ZXN0T3B0aW9ucykuc3Vic2NyaWJlKGNhbGxiYWNrKTtcbiAgICB9XG5cbiAgICBpbml0V2l0aE9icyhwYXJhbXM6IG9iamVjdCA9IG51bGwsIHJlcXVlc3RPcHRpb25zOiBvYmplY3QgPSBudWxsKTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNhbGxXaXRoT2JzKHBhcmFtcywgcmVxdWVzdE9wdGlvbnMpLnBpcGUoXG4gICAgICAgICAgICBtYXAoKHZhbHVlKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXQoPFQ+dmFsdWUpO1xuICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgd2l0aENhbGxQYXJhbXMoY2FsbFBhcmFtczogb2JqZWN0LCByZXF1ZXN0T3B0aW9uczogb2JqZWN0ID0gdGhpcy5yZXF1ZXN0T3B0aW9ucyk6IExpbmtGaWVsZDxUPiB7XG4gICAgICAgIHJldHVybiBuZXcgTGlua0ZpZWxkKHRoaXMubGluaywgdGhpcy5taWNyb0NsaWVudCwgdGhpcy52YWx1ZSwgdGhpcy5pbml0aWFsaXplZCwgY2FsbFBhcmFtcywgcmVxdWVzdE9wdGlvbnMpO1xuICAgIH1cblxuICAgIGNvcHkod2l0aFZhbHVlPzogVCk6IExpbmtGaWVsZDxUPiB7XG4gICAgICAgIGlmICh3aXRoVmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBMaW5rRmllbGQodGhpcy5saW5rLCB0aGlzLm1pY3JvQ2xpZW50LCB0aGlzLnZhbHVlLCB0aGlzLmluaXRpYWxpemVkLCB0aGlzLmNhbGxQYXJhbXMsIHRoaXMucmVxdWVzdE9wdGlvbnMpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBMaW5rRmllbGQodGhpcy5saW5rLCB0aGlzLm1pY3JvQ2xpZW50LCB3aXRoVmFsdWUsIHRydWUsIHRoaXMuY2FsbFBhcmFtcywgdGhpcy5yZXF1ZXN0T3B0aW9ucyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB0b0pTT04oKTogYW55IHtcbiAgICAgICAgaWYgKHRoaXMuc2VyaWFsaXplVG8pIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnNlcmlhbGl6ZVRvKHRoaXMubGluaywgdGhpcy5jYWxsUGFyYW1zLCB0aGlzLnJlcXVlc3RPcHRpb25zLCB0aGlzLnZhbHVlLCB0aGlzLmlzSW5pdGlhbGl6ZWQoKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4iXX0=
|
|
369
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlua2ZpZWxkLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG1pY3JvcGVybWl0L2NsaWVudC1hbmd1bGFyLyIsInNvdXJjZXMiOlsibGliL2xpbmtzL2xpbmtmaWVsZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBQyxLQUFLLEVBQWMsYUFBYSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBRXRELE9BQU8sRUFBQyxZQUFZLEVBQUUsY0FBYyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUQsT0FBTyxFQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQUV6Qzs7OztJQUFrQyxxQ0FBZTtJQVM3QyxtQkFDSSxJQUFZLEVBQ1osV0FBd0IsRUFDeEIsWUFBc0IsRUFDdEIsV0FBNEIsRUFDNUIsVUFBeUIsRUFDekIsY0FBNkI7UUFIN0IsNkJBQUEsRUFBQSxtQkFBc0I7UUFDdEIsNEJBQUEsRUFBQSxtQkFBNEI7UUFDNUIsMkJBQUEsRUFBQSxpQkFBeUI7UUFDekIsK0JBQUEsRUFBQSxxQkFBNkI7UUFOakMsWUFRSSxrQkFBTSxJQUFJLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxjQUFjLENBQUMsU0FJdkQ7UUFuQk8saUJBQVcsR0FBRyxLQUFLLENBQUM7UUFLckIsaUJBQVcsR0FBd0csY0FBYyxDQUFDLHVCQUF1QixDQUFDO1FBbUN6SixnQkFBVSxHQUFHLElBQUksQ0FBQztRQUNsQixrQkFBWSxHQUFHLEtBQUssQ0FBQztRQXpCekIsSUFBSSxXQUFXLEVBQUU7WUFDYixLQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDO1NBQzFCOztJQUNMLENBQUM7Ozs7OztJQUVNLGNBQUk7Ozs7O0lBQVgsVUFBMkMsS0FBUTtRQUMvQyxPQUFPLElBQUksU0FBUyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ2xELENBQUM7Ozs7O0lBRUQsdUJBQUc7Ozs7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O1NBQ3pIO2FBQU07WUFDSCxPQUFPLElBQUksU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1NBQzVHO0lBQ0wsQ0FBQzs7OztJQUVELDBCQUFNOzs7SUFBTjtRQUNJLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNsQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQztTQUM5RzthQUFNO1lBQ0gsT0FBTyxTQUFTLENBQUM7U0FDcEI7SUFDTCxDQUFDO0lBQ0wsZ0JBQUM7QUFBRCxDQUFDLEFBL0tELENBQWtDLFlBQVksR0ErSzdDOzs7Ozs7Ozs7O0lBOUtHLDBCQUFpQjs7Ozs7SUFDakIsZ0NBQTRCOzs7OztJQUM1QixnQ0FBZ0M7Ozs7O0lBRWhDLDhCQUFvQzs7SUFFcEMsZ0NBQWlLOzs7OztJQW1DakssK0JBQTBCOzs7OztJQUMxQixpQ0FBNkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2RlZmVyLCBPYnNlcnZhYmxlLCBSZXBsYXlTdWJqZWN0fSBmcm9tICdyeGpzJztcbmltcG9ydCB7TWljcm9DbGllbnQsIE1pY3JvQ2xpZW50TG9hZEVycm9yfSBmcm9tICcuLi9taWNyb2NsaWVudC5zZXJ2aWNlJztcbmltcG9ydCB7Q2FsbGFibGVMaW5rLCBMaW5rU2VyaWFsaXplcn0gZnJvbSAnLi9jYWxsYWJsZWxpbmsnO1xuaW1wb3J0IHttYXAsIHRha2V9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuZXhwb3J0IGNsYXNzIExpbmtGaWVsZDxUPiBleHRlbmRzIENhbGxhYmxlTGluazxUPiB7XG4gICAgcHJpdmF0ZSB2YWx1ZTogVDtcbiAgICBwcml2YXRlIGluaXRpYWxpemVkID0gZmFsc2U7XG4gICAgcHJpdmF0ZSBfZ2V0UHJvbWlzZTogUHJvbWlzZTxUPjtcblxuICAgIHByaXZhdGUgdmFsdWVTdWJqOiBSZXBsYXlTdWJqZWN0PFQ+O1xuXG4gICAgcHVibGljIHNlcmlhbGl6ZVRvOiAobGluazogc3RyaW5nLCBjYWxsUGFyYW1zOiBvYmplY3QsIHJlcXVlc3RPcHRpb25zOiBvYmplY3QsIHZhbHVlOiBULCBpc0luaXRpYWxpemVkOiBib29sZWFuKSA9PiBhbnkgPSBMaW5rU2VyaWFsaXplci5BU19WQUxVRV9JRl9JTklUSUFMSVpFRDtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBsaW5rOiBzdHJpbmcsXG4gICAgICAgIG1pY3JvQ2xpZW50OiBNaWNyb0NsaWVudCxcbiAgICAgICAgaW5pdGlhbFZhbHVlOiBUID0gbnVsbCxcbiAgICAgICAgaW5pdGlhbGl6ZWQ6IGJvb2xlYW4gPSBmYWxzZSxcbiAgICAgICAgY2FsbFBhcmFtczogb2JqZWN0ID0gbnVsbCxcbiAgICAgICAgcmVxdWVzdE9wdGlvbnM6IG9iamVjdCA9IG51bGxcbiAgICApIHtcbiAgICAgICAgc3VwZXIobGluaywgbWljcm9DbGllbnQsIGNhbGxQYXJhbXMsIHJlcXVlc3RPcHRpb25zKTtcbiAgICAgICAgaWYgKGluaXRpYWxpemVkKSB7XG4gICAgICAgICAgICB0aGlzLnNldChpbml0aWFsVmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc3RhdGljIGZyb208VCBleHRlbmRzIChvYmplY3QgfCBvYmplY3RbXSk+KHZhbHVlOiBUKTogTGlua0ZpZWxkPFQ+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBMaW5rRmllbGQobnVsbCwgbnVsbCwgdmFsdWUsIHRydWUpO1xuICAgIH1cblxuICAgIGdldChjYWxsYmFjaz86IChUKSA9PiB2b2lkKTogUHJvbWlzZTxUPiB7XG4gICAgICAgIGlmIChjYWxsYmFjaykge1xuICAgICAgICAgICAgdGhpcy5nZXRPYnMoKS5zdWJzY3JpYmUoY2FsbGJhY2spO1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0UHJvbWlzZSgpO1xuICAgIH1cblxuICAgIGdldFByb21pc2UoKTogUHJvbWlzZTxUPiB7XG4gICAgICAgIGlmICghdGhpcy5fZ2V0UHJvbWlzZSkge1xuICAgICAgICAgICAgdGhpcy5fZ2V0UHJvbWlzZSA9IHRoaXMuZ2V0T2JzKCkudG9Qcm9taXNlKCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuX2dldFByb21pc2U7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpbnRlcnZhbElkID0gbnVsbDtcbiAgICBwcml2YXRlIGlzUmVmcmVzaGluZyA9IGZhbHNlO1xuXG4gICAgcmVmcmVzaChpbnRlcnZhbD86IG51bWJlciwgZXJyb3JIYW5kbGVyPzogKGVycm9yOiBNaWNyb0NsaWVudExvYWRFcnJvcikgPT4gdm9pZCkge1xuICAgICAgICBpZiAoaW50ZXJ2YWwpIHtcbiAgICAgICAgICAgIHRoaXMuc3RvcFJlZnJlc2goKTtcbiAgICAgICAgfVxuICAgICAgICBsZXQgcmVzQ2IgPSAoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmlzUmVmcmVzaGluZyA9IGZhbHNlO1xuICAgICAgICB9O1xuICAgICAgICB0aGlzLmlzUmVmcmVzaGluZyA9IHRydWU7XG4gICAgICAgIHRoaXMuaW5pdFdpdGhPYnMoKS5zdWJzY3JpYmUocmVzQ2IsIChlcnJvcjogTWljcm9DbGllbnRMb2FkRXJyb3IpID0+IHtcbiAgICAgICAgICAgIHJlc0NiKCk7XG4gICAgICAgICAgICBpZiAoZXJyb3JIYW5kbGVyKSB7XG4gICAgICAgICAgICAgICAgZXJyb3JIYW5kbGVyKGVycm9yKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSwgcmVzQ2IpO1xuXG4gICAgICAgIGlmIChpbnRlcnZhbCkge1xuICAgICAgICAgICAgdGhpcy5pbnRlcnZhbElkID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICghdGhpcy5pc1JlZnJlc2hpbmcpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pc1JlZnJlc2hpbmcgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluaXRXaXRoT2JzKCkuc3Vic2NyaWJlKHJlc0NiLCAoZXJyb3I6IE1pY3JvQ2xpZW50TG9hZEVycm9yKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXNDYigpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVycm9ySGFuZGxlcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9ySGFuZGxlcihlcnJvcik7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0sIHJlc0NiKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LCBpbnRlcnZhbCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzdG9wUmVmcmVzaCgpIHtcbiAgICAgICAgaWYgKHRoaXMuaW50ZXJ2YWxJZCkge1xuICAgICAgICAgICAgY2xlYXJJbnRlcnZhbCh0aGlzLmludGVydmFsSWQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbGlzdGVuT2JzKCk6IE9ic2VydmFibGU8VD4ge1xuICAgICAgICAvL1RPRE8gaGFuZGxlIGxpc3RlbmVycyBpbiBjYXNlIG9mIGludGVybWlkaWF0ZSB1bmluaXRpYWxpemUgKG5ldyB2YWx1ZVN1YmopXG4gICAgICAgIGlmICh0aGlzLnZhbHVlU3Viaikge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMudmFsdWVTdWJqO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbGV0IHZhbHVlU3ViaiA9IG5ldyBSZXBsYXlTdWJqZWN0PFQ+KDEpO1xuICAgICAgICAgICAgdGhpcy52YWx1ZVN1YmogPSB2YWx1ZVN1Ymo7XG4gICAgICAgICAgICByZXR1cm4gZGVmZXIoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuaW5pdFdpdGhPYnMobnVsbCwgbnVsbCkuc3Vic2NyaWJlKCh2YWx1ZTogVCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy52YWx1ZVN1YmogIT09IHZhbHVlU3Viaikge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVTdWJqLm5leHQodmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVTdWJqLmNvbXBsZXRlKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWVTdWJqO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXRPYnMoKTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmxpc3Rlbk9icygpLnBpcGUoXG4gICAgICAgICAgICB0YWtlKDEpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgc2V0KHZhbHVlOiBUKTogVCB7XG4gICAgICAgIGNvbnN0IG9sZFZhbHVlID0gdGhpcy52YWx1ZTtcbiAgICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgICAgICB0aGlzLmluaXRpYWxpemVkID0gdHJ1ZTtcbiAgICAgICAgaWYgKCF0aGlzLnZhbHVlU3Viaikge1xuICAgICAgICAgICAgdGhpcy52YWx1ZVN1YmogPSBuZXcgUmVwbGF5U3ViamVjdDxUPigxKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnZhbHVlU3Viai5uZXh0KHZhbHVlKTtcbiAgICAgICAgdGhpcy5fZ2V0UHJvbWlzZSA9IG51bGw7XG5cbiAgICAgICAgcmV0dXJuIG9sZFZhbHVlO1xuICAgIH1cblxuICAgIGlzSW5pdGlhbGl6ZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmluaXRpYWxpemVkO1xuICAgIH1cblxuICAgIHVuaW5pdGlhbGl6ZSgpIHtcbiAgICAgICAgdGhpcy52YWx1ZSA9IG51bGw7XG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy52YWx1ZVN1YmogPSBudWxsO1xuICAgICAgICB0aGlzLl9nZXRQcm9taXNlID0gbnVsbDtcbiAgICB9XG5cbiAgICBjb3B5VW5pbml0aWFsaXplZCgpOiBMaW5rRmllbGQ8VD4ge1xuICAgICAgICBsZXQgY29weSA9IHRoaXMuY29weSgpO1xuICAgICAgICBjb3B5LnVuaW5pdGlhbGl6ZSgpO1xuICAgICAgICByZXR1cm4gY29weTtcbiAgICB9XG5cbiAgICBnZXRJbml0aWFsaXplZFZhbHVlKCk6IFQge1xuICAgICAgICBpZiAoIXRoaXMuaXNJbml0aWFsaXplZCgpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0NhblxcJ3QgZ2V0IHRoZSBpbnRpYWxpemVkIHZhbHVlIGZvciBhIExpbmtGaWVsZCB0aGF0IGhhc25cXCd0IGJlZW4gaW5pdGlhbGl6ZWQnKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy52YWx1ZTtcbiAgICB9XG5cbiAgICBpbml0V2l0aChwYXJtczogb2JqZWN0ID0gbnVsbCwgcmVxdWVzdE9wdGlvbnM6IG9iamVjdCA9IG51bGwsIGNhbGxiYWNrOiAoVCkgPT4gdm9pZCkge1xuICAgICAgICB0aGlzLmluaXRXaXRoT2JzKHBhcm1zLCByZXF1ZXN0T3B0aW9ucykuc3Vic2NyaWJlKGNhbGxiYWNrKTtcbiAgICB9XG5cbiAgICBpbml0V2l0aE9icyhwYXJhbXM6IG9iamVjdCA9IG51bGwsIHJlcXVlc3RPcHRpb25zOiBvYmplY3QgPSBudWxsKTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNhbGxXaXRoT2JzKHBhcmFtcywgcmVxdWVzdE9wdGlvbnMpLnBpcGUoXG4gICAgICAgICAgICBtYXAoKHZhbHVlKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXQoPFQ+dmFsdWUpO1xuICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgd2l0aENhbGxQYXJhbXMoY2FsbFBhcmFtczogb2JqZWN0LCByZXF1ZXN0T3B0aW9uczogb2JqZWN0ID0gdGhpcy5yZXF1ZXN0T3B0aW9ucyk6IExpbmtGaWVsZDxUPiB7XG4gICAgICAgIHJldHVybiBuZXcgTGlua0ZpZWxkKHRoaXMubGluaywgdGhpcy5taWNyb0NsaWVudCwgdGhpcy52YWx1ZSwgdGhpcy5pbml0aWFsaXplZCwgY2FsbFBhcmFtcywgcmVxdWVzdE9wdGlvbnMpO1xuICAgIH1cblxuICAgIGNvcHkod2l0aFZhbHVlPzogVCk6IExpbmtGaWVsZDxUPiB7XG4gICAgICAgIGlmICh3aXRoVmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBMaW5rRmllbGQodGhpcy5saW5rLCB0aGlzLm1pY3JvQ2xpZW50LCB0aGlzLnZhbHVlLCB0aGlzLmluaXRpYWxpemVkLCB0aGlzLmNhbGxQYXJhbXMsIHRoaXMucmVxdWVzdE9wdGlvbnMpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBMaW5rRmllbGQodGhpcy5saW5rLCB0aGlzLm1pY3JvQ2xpZW50LCB3aXRoVmFsdWUsIHRydWUsIHRoaXMuY2FsbFBhcmFtcywgdGhpcy5yZXF1ZXN0T3B0aW9ucyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB0b0pTT04oKTogYW55IHtcbiAgICAgICAgaWYgKHRoaXMuc2VyaWFsaXplVG8pIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnNlcmlhbGl6ZVRvKHRoaXMubGluaywgdGhpcy5jYWxsUGFyYW1zLCB0aGlzLnJlcXVlc3RPcHRpb25zLCB0aGlzLnZhbHVlLCB0aGlzLmlzSW5pdGlhbGl6ZWQoKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4iXX0=
|
|
@@ -15,6 +15,7 @@ var MicroClient = /** @class */ (function () {
|
|
|
15
15
|
this.entryPointSubject = new ReplaySubject();
|
|
16
16
|
this.usePost = true;
|
|
17
17
|
this.sendAsPermitTokenHeader = true;
|
|
18
|
+
this.sendAsMultipartFormData = false;
|
|
18
19
|
}
|
|
19
20
|
/**
|
|
20
21
|
* @param {?} sendAsPermitTokenHeader
|
|
@@ -275,7 +276,7 @@ var MicroClient = /** @class */ (function () {
|
|
|
275
276
|
if (this.urlRewriter) {
|
|
276
277
|
url = this.urlRewriter(url);
|
|
277
278
|
}
|
|
278
|
-
httpObs = this.httpClient.post(url, body, {
|
|
279
|
+
httpObs = this.httpClient.post(url, this.encodeBody(body), {
|
|
279
280
|
headers: requestHeaders
|
|
280
281
|
});
|
|
281
282
|
}
|
|
@@ -303,6 +304,27 @@ var MicroClient = /** @class */ (function () {
|
|
|
303
304
|
})), this.catchAndHandleError());
|
|
304
305
|
return httpObs;
|
|
305
306
|
};
|
|
307
|
+
/**
|
|
308
|
+
* @private
|
|
309
|
+
* @param {?} body
|
|
310
|
+
* @return {?}
|
|
311
|
+
*/
|
|
312
|
+
MicroClient.prototype.encodeBody = /**
|
|
313
|
+
* @private
|
|
314
|
+
* @param {?} body
|
|
315
|
+
* @return {?}
|
|
316
|
+
*/
|
|
317
|
+
function (body) {
|
|
318
|
+
if (this.sendAsMultipartFormData) {
|
|
319
|
+
/** @type {?} */
|
|
320
|
+
var formData = new FormData();
|
|
321
|
+
formData.append('', JSON.stringify(body));
|
|
322
|
+
return new FormData();
|
|
323
|
+
}
|
|
324
|
+
else {
|
|
325
|
+
return body;
|
|
326
|
+
}
|
|
327
|
+
};
|
|
306
328
|
/**
|
|
307
329
|
* @private
|
|
308
330
|
* @template T
|
|
@@ -489,6 +511,8 @@ if (false) {
|
|
|
489
511
|
MicroClient.prototype.usePost;
|
|
490
512
|
/** @type {?} */
|
|
491
513
|
MicroClient.prototype.sendAsPermitTokenHeader;
|
|
514
|
+
/** @type {?} */
|
|
515
|
+
MicroClient.prototype.sendAsMultipartFormData;
|
|
492
516
|
/**
|
|
493
517
|
* @type {?}
|
|
494
518
|
* @private
|
|
@@ -587,4 +611,4 @@ if (false) {
|
|
|
587
611
|
*/
|
|
588
612
|
MicroClientLoadError.prototype.defaultHandler;
|
|
589
613
|
}
|
|
590
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWljcm9jbGllbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BtaWNyb3Blcm1pdC9jbGllbnQtYW5ndWxhci8iLCJzb3VyY2VzIjpbImxpYi9taWNyb2NsaWVudC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBQyxVQUFVLEVBQXFCLFdBQVcsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ2hGLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFhLGFBQWEsRUFBVyxVQUFVLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDcEUsT0FBTyxFQUFDLFVBQVUsRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFvQixNQUFNLGdCQUFnQixDQUFDO0FBQzVFLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFDeEMsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBRTlDO0lBZUkscUJBQW9CLFVBQXNCO1FBQXRCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFSbEMsc0JBQWlCLEdBQStCLElBQUksYUFBYSxFQUFlLENBQUM7UUFJbEYsWUFBTyxHQUFHLElBQUksQ0FBQztRQUVmLDRCQUF1QixHQUFHLElBQUksQ0FBQztJQUl0QyxDQUFDOzs7OztJQUVNLGdEQUEwQjs7OztJQUFqQyxVQUFrQyx1QkFBZ0M7UUFDOUQsSUFBSSxDQUFDLHVCQUF1QixHQUFHLHVCQUF1QixDQUFDO0lBQzNELENBQUM7Ozs7O0lBRU0sa0NBQVk7Ozs7SUFBbkIsVUFBb0IsS0FBYTtRQUM3QixJQUFJLENBQUMsVUFBVSxHQUFHLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFDcEMsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7SUFDN0IsQ0FBQzs7Ozs7SUFFTSxtQ0FBYTs7OztJQUFwQixVQUFxQixVQUFr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O1FBSGxFLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFDaEIscUJBQWdCLEdBQUcsS0FBSyxDQUFDO0lBSWpDLENBQUM7Ozs7SUFFTSw0Q0FBYTs7O0lBQXBCO1FBQ0ksSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ3JCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2hDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1NBQ3ZCO0lBQ0wsQ0FBQzs7Ozs7SUFFTSwwQ0FBVzs7OztJQUFsQixVQUFtQixPQUE2QjtRQUM1QyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO0lBQ3hCLENBQUM7Ozs7SUFFTSx3Q0FBUzs7O0lBQWhCO1FBQ0ksT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3hCLENBQUM7Ozs7SUFFTSxtREFBb0I7OztJQUEzQjtRQUNJLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDO0lBQ2pDLENBQUM7Ozs7SUFFTSw2Q0FBYzs7O0lBQXJCO1FBQ0ksSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQztJQUNqQyxDQUFDOzs7O0lBRU0sZ0RBQWlCOzs7SUFBeEI7UUFDSSxPQUFPLElBQUksQ0FBQyxjQUFjLElBQUksSUFBSSxDQUFDO0lBQ3ZDLENBQUM7SUFDTCwyQkFBQztBQUFELENBQUMsQUFuQ0QsSUFtQ0M7Ozs7Ozs7SUFsQ0csdUNBQXdCOzs7OztJQUN4QixnREFBaUM7Ozs7O0lBRXJCLHFDQUFrQjs7Ozs7SUFBRSw4Q0FBMEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtIdHRwQ2xpZW50LCBIdHRwRXJyb3JSZXNwb25zZSwgSHR0cEhlYWRlcnN9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7TWljcm9PYmplY3R9IGZyb20gJy4vbWljcm9vYmplY3QnO1xuaW1wb3J0IHtPYnNlcnZhYmxlLCBSZXBsYXlTdWJqZWN0LCBTdWJqZWN0LCB0aHJvd0Vycm9yfSBmcm9tICdyeGpzJztcbmltcG9ydCB7Y2F0Y2hFcnJvciwgZmluYWxpemUsIG1hcCwgdGFrZSwgc2hhcmVSZXBsYXl9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7UGFyYW1VdGlsc30gZnJvbSAnLi9wYXJhbXV0aWxzJztcbmltcG9ydCB7TWljcm9FcnJvcn0gZnJvbSAnLi9lcnJvci9taWNyb2Vycm9yJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE1pY3JvQ2xpZW50IHtcblxuICAgIHByaXZhdGUgYXV0aEhlYWRlcjogc3RyaW5nO1xuICAgIHByaXZhdGUgcGVybWl0VG9rZW46IHN0cmluZztcbiAgICBwcml2YXRlIGVudHJ5UG9pbnQ6IE1pY3JvT2JqZWN0O1xuXG4gICAgcHJpdmF0ZSBlbnRyeVBvaW50U3ViamVjdDogUmVwbGF5U3ViamVjdDxNaWNyb09iamVjdD4gPSBuZXcgUmVwbGF5U3ViamVjdDxNaWNyb09iamVjdD4oKTtcblxuICAgIHByaXZhdGUgdXJsUmV3cml0ZXI6IChzdHJpbmcpID0+IHN0cmluZztcbiAgICBwcml2YXRlIGRlZmF1bHRFcnJvckhhbmRsZXI6IChodHRwRXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlLCBtaWNyb0Vycm9yOiBNaWNyb09iamVjdCkgPT4gdm9pZDtcbiAgICBwdWJsaWMgdXNlUG9zdCA9IHRydWU7XG5cbiAgICBwdWJsaWMgc2VuZEFzUGVybWl0VG9rZW5IZWFkZXIgPSB0cnVlO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwQ2xpZW50OiBIdHRwQ2xpZW50KSB7XG5cbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0U2VuZEFzUGVybWl0VG9rZW5IZWFkZXIoc2VuZEFzUGVybWl0VG9rZW5IZWFkZXI6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5zZW5kQXNQZXJtaXRUb2tlbkhlYWRlciA9IHNlbmRBc1Blcm1pdFRva2VuSGVhZGVyO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXRBdXRoVG9rZW4odG9rZW46IHN0cmluZykge1xuICAgICAgICB0aGlzLmF1dGhIZWFkZXIgPSAnQmVhcmVyICcgKyB0b2tlbjtcbiAgICAgICAgdGhpcy5wZXJtaXRUb2tlbiA9IHRva2VuO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXRBdXRoSGVhZGVyKGF1dGhIZWFkZXI6IHN0cmluZykge1xuICAgICAgICB0aGlzLmF1dGhIZWFkZXIgPSBhdXRoSGVhZGVyO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRFbnRyeVBvaW50KCk6IGFueSB7XG4gICAgICAgIHJldHVybiB0aGlzLmVudHJ5UG9pbnQ7XG4gICAgfVxuXG4gICAgcHVibGljIHdhaXRGb3JFbnRyeVBvaW50KGNiPzogKGVudHJ5UG9pbnQ6IGFueSkgPT4gdm9pZCk6IFByb21pc2U8YW55PiB7XG4gICAgICAgIGlmIChjYiAhPSBudWxsKSB7XG4gICAgICAgICAgICB0aGlzLmVudHJ5UG9pbnRTdWJqZWN0LnN1YnNjcmliZShjYik7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5lbnRyeVBvaW50U3ViamVjdC50b1Byb21pc2UoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY29weUF1dGhBbmRFbnRyeXBvaW50T2Yob3RoZXI6IE1pY3JvQ2xpZW50KSB7XG4gICAgICAgIHRoaXMuYXV0aEhlYWRlciA9IG90aGVyLmF1dGhIZWFkZXI7XG4gICAgICAgIHRoaXMucGVybWl0VG9rZW4gPSBvdGhlci5wZXJtaXRUb2tlbjtcbiAgICAgICAgdGhpcy5lbnRyeVBvaW50ID0gb3RoZXIuZW50cnlQb2ludDtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0RW50cnlQb2ludDxUIGV4dGVuZHMgTWljcm9PYmplY3Q+KGVudHJ5UG9pbnQ6IGFueSkge1xuICAgICAgICBpZiAoZW50cnlQb2ludCA9PSBudWxsKSB7XG4gICAgICAgICAgICB0aGlzLmF1dGhIZWFkZXIgPSBudWxsO1xuICAgICAgICAgICAgdGhpcy5lbnRyeVBvaW50ID0gbnVsbDtcbiAgICAgICAgICAgIHRoaXMucGVybWl0VG9rZW4gPSBudWxsO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5lbnRyeVBvaW50ID0gZW50cnlQb2ludDtcbiAgICAgICAgICAgIGlmICh0aGlzLmVudHJ5UG9pbnQuX19tZXRhICYmIHRoaXMuZW50cnlQb2ludC5fX21ldGEucGVybWl0VG9rZW4pIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldEF1dGhUb2tlbih0aGlzLmVudHJ5UG9pbnQuX19tZXRhLnBlcm1pdFRva2VuKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgRXJyb3IoJ0V4cGVjdGVkIHRoZSBlbnRyeVBvaW50IHRvIGNvbnRhaW4gYSBcInBlcm1pdFRva2VuXCIgd2l0aGluIHRoZSBcIl9fbWV0YVwiIGZpZWxkJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmVudHJ5UG9pbnRTdWJqZWN0Lm5leHQoZW50cnlQb2ludCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0RGVmYXVsdEVycm9ySGFuZGxlcihoYW5kbGVyOiAoaHR0cEVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSwgbWljcm9FcnJvcjogTWljcm9PYmplY3QpID0+IHZvaWQpIHtcbiAgICAgICAgdGhpcy5kZWZhdWx0RXJyb3JIYW5kbGVyID0gaGFuZGxlcjtcbiAgICB9XG5cbiAgICBwdWJsaWMgaGFuZGxlRXJyb3IoaHR0cEVycjogSHR0cEVycm9yUmVzcG9uc2UpIHtcbiAgICAgICAgaWYgKHRoaXMuZGVmYXVsdEVycm9ySGFuZGxlcikge1xuICAgICAgICAgICAgY29uc3QgbWljcm9FcnJvciA9IE1pY3JvQ2xpZW50LnRvTWljcm9FcnJvcihodHRwRXJyKTtcbiAgICAgICAgICAgIGlmIChtaWNyb0Vycm9yKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbWljcm9SZXN1bHRPYmo6IE1pY3JvT2JqZWN0ID0gPE1pY3JvT2JqZWN0Pk1pY3JvT2JqZWN0LmZyb21PYmplY3QoaHR0cEVyci5lcnJvciwgdGhpcyk7XG4gICAgICAgICAgICAgICAgdGhpcy5kZWZhdWx0RXJyb3JIYW5kbGVyKGh0dHBFcnIsIG1pY3JvUmVzdWx0T2JqKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5kZWZhdWx0RXJyb3JIYW5kbGVyKGh0dHBFcnIsIG51bGwpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGlnbml0ZTxUPihcbiAgICAgICAgdXJsOiBzdHJpbmcsXG4gICAgICAgIHVzZXJuYW1lOiBTdHJpbmcgPSBudWxsLFxuICAgICAgICBwYXNzd29yZDogU3RyaW5nID0gbnVsbCxcbiAgICAgICAgaGVhZGVyczogb2JqZWN0ID0ge31cbiAgICApOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICAgICAgaWYgKHRoaXMudXJsUmV3cml0ZXIpIHtcbiAgICAgICAgICAgIHVybCA9IHRoaXMudXJsUmV3cml0ZXIodXJsKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCByZXF1ZXN0SGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpO1xuICAgICAgICBmb3IgKGNvbnN0IGhlYWRlcktleSBpbiBoZWFkZXJzKSB7XG4gICAgICAgICAgICBpZiAoaGVhZGVycy5oYXNPd25Qcm9wZXJ0eShoZWFkZXJLZXkpKSB7XG4gICAgICAgICAgICAgICAgcmVxdWVzdEhlYWRlcnMgPSByZXF1ZXN0SGVhZGVycy5zZXQoaGVhZGVyS2V5LCBoZWFkZXJzW2hlYWRlcktleV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHVzZXJuYW1lICE9IG51bGwgfHwgcGFzc3dvcmQgIT0gbnVsbCkge1xuICAgICAgICAgICAgcmVxdWVzdEhlYWRlcnMgPSByZXF1ZXN0SGVhZGVycy5zZXQoJ0F1dGhvcml6YXRpb24nLCAnQmFzaWMgJyArIGJ0b2EodXNlcm5hbWUgKyAnOicgKyBwYXNzd29yZCkpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5nZXQodXJsLCB7XG4gICAgICAgICAgICBoZWFkZXJzOiByZXF1ZXN0SGVhZGVyc1xuICAgICAgICB9KS5waXBlKFxuICAgICAgICAgICAgbWFwKHZhbCA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgZW50cnlQb2ludCA9IE1pY3JvT2JqZWN0LmZyb21PYmplY3QodmFsLCB0aGlzKTtcbiAgICAgICAgICAgICAgICB0aGlzLnNldEVudHJ5UG9pbnQoZW50cnlQb2ludCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGVudHJ5UG9pbnQgYXMgVDtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgdGhpcy5jYXRjaEFuZEhhbmRsZUVycm9yKClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbG9hZDxUPihcbiAgICAgICAgdXJsOiBzdHJpbmcsXG4gICAgICAgIHBhcmFtcz86IG9iamVjdCxcbiAgICAgICAgcmVxdWVzdE9wdGlvbnM/OiBvYmplY3RcbiAgICApOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICAgICAgbGV0IHJlcXVlc3RIZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCk7XG4gICAgICAgIGlmICh0aGlzLmF1dGhIZWFkZXIpIHtcbiAgICAgICAgICAgIHJlcXVlc3RIZWFkZXJzID0gcmVxdWVzdEhlYWRlcnMuc2V0KCdBdXRob3JpemF0aW9uJywgdGhpcy5hdXRoSGVhZGVyKTtcblxuICAgICAgICAgICAgaWYgKHRoaXMuc2VuZEFzUGVybWl0VG9rZW5IZWFkZXIpIHtcbiAgICAgICAgICAgICAgICByZXF1ZXN0SGVhZGVycyA9IHJlcXVlc3RIZWFkZXJzLnNldCgnTWljcm9QZXJtaXRUb2tlbicsIHRoaXMucGVybWl0VG9rZW4pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgbGV0IG9QYXJhbXMgPSBwYXJhbXM7XG4gICAgICAgIGlmIChwYXJhbXMgIT0gbnVsbCB8fCB0aGlzLnVzZVBvc3QpIHtcbiAgICAgICAgICAgIGNvbnN0IGV4aXN0aW5nUGFyYW1zU3RyID0gUGFyYW1VdGlscy5nZXRQYXJhbSh1cmwsICdvUGFyYW1zJywgdHJ1ZSk7XG4gICAgICAgICAgICBsZXQgZXhpc3RpbmdQYXJhbXM7XG4gICAgICAgICAgICBpZiAoZXhpc3RpbmdQYXJhbXNTdHIpIHtcbiAgICAgICAgICAgICAgICBleGlzdGluZ1BhcmFtcyA9IEpTT04ucGFyc2UoZXhpc3RpbmdQYXJhbXNTdHIpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBleGlzdGluZ1BhcmFtcyA9IHt9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgb1BhcmFtcyA9IE9iamVjdC5hc3NpZ24oZXhpc3RpbmdQYXJhbXMsIHBhcmFtcyk7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgb3B0aW9ucyA9IHJlcXVlc3RPcHRpb25zO1xuICAgICAgICBpZiAocmVxdWVzdE9wdGlvbnMgIT0gbnVsbCB8fCB0aGlzLnVzZVBvc3QpIHtcbiAgICAgICAgICAgIGNvbnN0IHByZXZPcHRpb25zU3RyID0gUGFyYW1VdGlscy5nZXRQYXJhbSh1cmwsICdvcHRpb25zJywgdHJ1ZSk7XG4gICAgICAgICAgICBpZiAocHJldk9wdGlvbnNTdHIpIHtcbiAgICAgICAgICAgICAgICBvcHRpb25zID0gSlNPTi5wYXJzZShwcmV2T3B0aW9uc1N0cik7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIG9wdGlvbnMgPSB7fTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgb3B0aW9ucyA9IE9iamVjdC5hc3NpZ24ob3B0aW9ucywgcmVxdWVzdE9wdGlvbnMpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcXVlcnlQYXJhbXMgPSBQYXJhbVV0aWxzLmdldFBhcmFtcyh1cmwpO1xuXG4gICAgICAgIGxldCBodHRwT2JzID0gbnVsbDtcbiAgICAgICAgaWYgKHRoaXMudXNlUG9zdCkge1xuXG4gICAgICAgICAgICBsZXQgYk9QYXJhbXM7XG4gICAgICAgICAgICBjb25zdCBlbmNCT1BhcmFtcyA9IHF1ZXJ5UGFyYW1zWydiT1BhcmFtcyddO1xuICAgICAgICAgICAgaWYgKGVuY0JPUGFyYW1zKSB7XG4gICAgICAgICAgICAgICAgYk9QYXJhbXMgPSBKU09OLnBhcnNlKFBhcmFtVXRpbHMuYmFzZTY0VXJsRGVjb2RlKGVuY0JPUGFyYW1zKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBib2R5ID0ge1xuICAgICAgICAgICAgICAgIHBhcmFtczogcXVlcnlQYXJhbXNbJ3BhcmFtcyddLFxuICAgICAgICAgICAgICAgIG9QYXJhbXM6IG9QYXJhbXMsXG4gICAgICAgICAgICAgICAgYlBhcmFtczogcXVlcnlQYXJhbXNbJ2JQYXJhbXMnXSxcbiAgICAgICAgICAgICAgICBiT1BhcmFtczogYk9QYXJhbXMsXG4gICAgICAgICAgICAgICAgb3B0aW9uczogb3B0aW9ucyxcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIGRlbGV0ZSBxdWVyeVBhcmFtc1sncGFyYW1zJ107XG4gICAgICAgICAgICBkZWxldGUgcXVlcnlQYXJhbXNbJ29QYXJhbXMnXTtcbiAgICAgICAgICAgIGRlbGV0ZSBxdWVyeVBhcmFtc1snYlBhcmFtcyddO1xuICAgICAgICAgICAgZGVsZXRlIHF1ZXJ5UGFyYW1zWydiT1BhcmFtcyddO1xuICAgICAgICAgICAgZGVsZXRlIHF1ZXJ5UGFyYW1zWydvcHRpb25zJ107XG5cbiAgICAgICAgICAgIHVybCA9IFBhcmFtVXRpbHMuc2V0UGFyYW1zKHVybCwgcXVlcnlQYXJhbXMpO1xuXG4gICAgICAgICAgICBpZiAodGhpcy51cmxSZXdyaXRlcikge1xuICAgICAgICAgICAgICAgIHVybCA9IHRoaXMudXJsUmV3cml0ZXIodXJsKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaHR0cE9icyA9IHRoaXMuaHR0cENsaWVudC5wb3N0KHVybCwgYm9keSwge1xuICAgICAgICAgICAgICAgIGhlYWRlcnM6IHJlcXVlc3RIZWFkZXJzXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmIChvUGFyYW1zKSB7XG4gICAgICAgICAgICAgICAgcXVlcnlQYXJhbXNbJ29QYXJhbXMnXSA9IFBhcmFtVXRpbHMuYmFzZTY0VXJsRW5jb2RlKEpTT04uc3RyaW5naWZ5KG9QYXJhbXMpKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKG9wdGlvbnMpIHtcbiAgICAgICAgICAgICAgICBxdWVyeVBhcmFtc1snb3B0aW9ucyddID0gUGFyYW1VdGlscy5iYXNlNjRVcmxFbmNvZGUoSlNPTi5zdHJpbmdpZnkob3B0aW9ucykpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdXJsID0gUGFyYW1VdGlscy5zZXRQYXJhbXModXJsLCBxdWVyeVBhcmFtcyk7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLnVybFJld3JpdGVyKSB7XG4gICAgICAgICAgICAgICAgdXJsID0gdGhpcy51cmxSZXdyaXRlcih1cmwpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBodHRwT2JzID0gdGhpcy5odHRwQ2xpZW50LmdldCh1cmwsIHtcbiAgICAgICAgICAgICAgICBoZWFkZXJzOiByZXF1ZXN0SGVhZGVyc1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBodHRwT2JzID0gaHR0cE9icy5waXBlKFxuICAgICAgICAgICAgbWFwKHZhbCA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIE1pY3JvT2JqZWN0LmZyb21PYmplY3QodmFsLCB0aGlzKTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgdGhpcy5jYXRjaEFuZEhhbmRsZUVycm9yKClcbiAgICAgICAgKTtcblxuICAgICAgICByZXR1cm4gaHR0cE9icztcbiAgICB9XG5cbiAgICBwcml2YXRlIGNhdGNoQW5kSGFuZGxlRXJyb3I8VD4oKTogKChzb3VyY2U6IE9ic2VydmFibGU8VD4pID0+IE9ic2VydmFibGU8VD4pIHtcbiAgICAgICAgcmV0dXJuIChzb3VyY2U6IE9ic2VydmFibGU8VD4pID0+IHtcbiAgICAgICAgICAgIHJldHVybiBzb3VyY2UucGlwZShcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKGVyciA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBsb2FkRXJyb3IgPSBuZXcgTWljcm9DbGllbnRMb2FkRXJyb3IoZXJyLCAoZXJyVG9IYW5kbGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlRXJyb3IoZXJyVG9IYW5kbGUpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IobG9hZEVycm9yKS5waXBlKFxuICAgICAgICAgICAgICAgICAgICAgICAgZmluYWxpemUoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghbG9hZEVycm9yLnNob3VsZFByZXZlbnREZWZhdWx0KCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9hZEVycm9yLmhhbmRsZURlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApO1xuICAgICAgICB9O1xuICAgIH1cblxuICAgIHB1YmxpYyBjcmVhdGVDaGlsZENsaWVudEZvckVudHJ5UG9pbnQoZW50cnlQb2ludDogTWljcm9PYmplY3QpOiBNaWNyb0NsaWVudCB7XG4gICAgICAgIGlmIChlbnRyeVBvaW50Ll9fbWV0YSAmJiBlbnRyeVBvaW50Ll9fbWV0YS5wZXJtaXRUb2tlbikge1xuICAgICAgICAgICAgY29uc3QgY2hpbGRDbGllbnQ6IE1pY3JvQ2xpZW50ID0gT2JqZWN0LmNyZWF0ZSh0aGlzLCB7XG4gICAgICAgICAgICAgICAgZW50cnlQb2ludDoge1xuICAgICAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIHdyaXRhYmxlOiB0cnVlXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBhdXRoSGVhZGVyOiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgd3JpdGFibGU6IHRydWVcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHBlcm1pdFRva2VuOiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgd3JpdGFibGU6IHRydWVcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGNoaWxkQ2xpZW50LnNldEVudHJ5UG9pbnQoZW50cnlQb2ludCk7XG4gICAgICAgICAgICByZXR1cm4gY2hpbGRDbGllbnQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1RoZSBzdXBwbGllZCB2YWx1ZSBjYW5cXCd0IGJlIHVzZWQgdG8gY29uc3RydWN0IGEgY2hpbGQgTWljcm9DbGllbnQgYmVjYXVzZSBpdCBkb2VzblxcJ3QgY29udGFpbiBtZXRhZGF0YSB3aXRoIGEgcGVybWl0VG9rZW4gJyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0VVJMUmV3cml0ZXIocmV3cml0ZXI6IChzdHJpbmcpID0+IHN0cmluZykge1xuICAgICAgICB0aGlzLnVybFJld3JpdGVyID0gcmV3cml0ZXI7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyB0b01pY3JvRXJyb3IoaHR0cFJlc3BvbnNlOiBIdHRwRXJyb3JSZXNwb25zZSk6IE1pY3JvRXJyb3Ige1xuICAgICAgICBjb25zdCByZXMgPSBodHRwUmVzcG9uc2UuZXJyb3I7XG4gICAgICAgIGlmIChyZXMgJiYgcmVzLl9fbWV0YSAmJiByZXMuX19tZXRhLmVycm9yKSB7XG4gICAgICAgICAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihuZXcgTWljcm9FcnJvcigpLCByZXMuX19tZXRhLmVycm9yKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN0YXRpYyBzdGF0aWNDb250ZW50UmVnRXhwID0gbmV3IFJlZ0V4cCgnW2EtekEtWjAtOV06Ly8uKig6WzAtOV0rKT8oLy4qKSovc3RhdGljKC8uKihcXFxcPy4qKT8oIy4qKT8pPycpO1xuXG4gICAgcHVibGljIHN0YXRpYyBndWVzc01pY3JvQ29tcG9uZW50QmFzZVVSTCgpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBocmVmID0gd2luZG93LmxvY2F0aW9uLmhyZWY7XG5cbiAgICAgICAgLy8gTGFzdCBVUkwtU2VnZW1lbnQgaXMgc3RhdGljXG4gICAgICAgIGlmIChNaWNyb0NsaWVudC5zdGF0aWNDb250ZW50UmVnRXhwLnRlc3QoaHJlZikpIHtcbiAgICAgICAgICAgIHJldHVybiBocmVmLnJlcGxhY2UobmV3IFJlZ0V4cCgnL3N0YXRpYy8uKicpLCAnJylcbiAgICAgICAgICAgICAgICAucmVwbGFjZShuZXcgUmVnRXhwKCcvIy8uKicpLCAnJyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAod2luZG93LmxvY2F0aW9uLnByb3RvY29sLnN0YXJ0c1dpdGgoJ2ZpbGUnKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiAnaHR0cDovL2xvY2FsaG9zdDo4MDgwJztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHdpbmRvdy5sb2NhdGlvbi5wcm90b2NvbCArICcvLycgKyB3aW5kb3cubG9jYXRpb24uaG9zdG5hbWUgKyAnOjgwODAnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBndWVzc01pY3JvQ29tcG9uZW50QXV0aG9yaXplVVJMKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmd1ZXNzTWljcm9Db21wb25lbnRCYXNlVVJMKCkgKyAnL2F1dGhvcml6ZSc7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgTWljcm9DbGllbnRMb2FkRXJyb3Ige1xuICAgIHByaXZhdGUgaGFuZGxlZCA9IGZhbHNlO1xuICAgIHByaXZhdGUgZG9QcmV2ZW50RGVmYXVsdCA9IGZhbHNlO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBlcnJvcjogYW55LCBwcml2YXRlIGRlZmF1bHRIYW5kbGVyOiAoZXJyOiBhbnkpID0+IHZvaWQpIHtcblxuICAgIH1cblxuICAgIHB1YmxpYyBoYW5kbGVEZWZhdWx0KCkge1xuICAgICAgICBpZiAodGhpcy5kZWZhdWx0SGFuZGxlcikge1xuICAgICAgICAgICAgdGhpcy5kZWZhdWx0SGFuZGxlcih0aGlzLmVycm9yKTtcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgaGFuZGxlRXJyb3IoaGFuZGxlcjogKGVycm9yOiBhbnkpID0+IHZvaWQpIHtcbiAgICAgICAgaGFuZGxlcih0aGlzLmVycm9yKTtcbiAgICAgICAgdGhpcy5oYW5kbGVkID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNIYW5kbGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5oYW5kbGVkO1xuICAgIH1cblxuICAgIHB1YmxpYyBzaG91bGRQcmV2ZW50RGVmYXVsdCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZG9QcmV2ZW50RGVmYXVsdDtcbiAgICB9XG5cbiAgICBwdWJsaWMgcHJldmVudERlZmF1bHQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZG9QcmV2ZW50RGVmYXVsdCA9IHRydWU7XG4gICAgfVxuXG4gICAgcHVibGljIGhhc0RlZmF1bHRIYW5kbGVyKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5kZWZhdWx0SGFuZGxlciAhPSBudWxsO1xuICAgIH1cbn1cbiJdfQ==
|
|
614
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWljcm9jbGllbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BtaWNyb3Blcm1pdC9jbGllbnQtYW5ndWxhci8iLCJzb3VyY2VzIjpbImxpYi9taWNyb2NsaWVudC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBQyxVQUFVLEVBQXFCLFdBQVcsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ2hGLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFhLGFBQWEsRUFBVyxVQUFVLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDcEUsT0FBTyxFQUFDLFVBQVUsRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFvQixNQUFNLGdCQUFnQixDQUFDO0FBQzVFLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFDeEMsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBRTlDO0lBZUkscUJBQW9CLFVBQXNCO1FBQXRCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFSbEMsc0JBQWlCLEdBQStCLElBQUksYUFBYSxFQUFlLENBQUM7UUFJbEYsWUFBTyxHQUFHLElBQUksQ0FBQztRQUNmLDRCQUF1QixHQUFHLElBQUksQ0FBQztRQUMvQiw0QkFBdUIsR0FBRyxLQUFLLENBQUM7SUFJdkMsQ0FBQzs7Ozs7SUFFTSxnREFBMEI7Ozs7SUFBakMsVUFBa0MsdUJBQWdDO1FBQzlELElBQUksQ0FBQyx1QkFBdUIsR0FBRyx1QkFBdUIsQ0FBQztJQUMzRCxDQUFDOzs7OztJQUVNLGtDQUFZOzs7O0lBQW5CLFVBQW9CLEtBQWE7UUFDN0IsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO0lBQzdCLENBQUM7Ozs7O0lB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SUFBSSxDQUFDLGNBQWMsSUFBSSxJQUFJLENBQUM7SUFDdkMsQ0FBQztJQUNMLDJCQUFDO0FBQUQsQ0FBQyxBQW5DRCxJQW1DQzs7Ozs7OztJQWxDRyx1Q0FBd0I7Ozs7O0lBQ3hCLGdEQUFpQzs7Ozs7SUFFckIscUNBQWtCOzs7OztJQUFFLDhDQUEwQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0h0dHBDbGllbnQsIEh0dHBFcnJvclJlc3BvbnNlLCBIdHRwSGVhZGVyc30gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHtNaWNyb09iamVjdH0gZnJvbSAnLi9taWNyb29iamVjdCc7XG5pbXBvcnQge09ic2VydmFibGUsIFJlcGxheVN1YmplY3QsIFN1YmplY3QsIHRocm93RXJyb3J9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtjYXRjaEVycm9yLCBmaW5hbGl6ZSwgbWFwLCB0YWtlLCBzaGFyZVJlcGxheX0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtQYXJhbVV0aWxzfSBmcm9tICcuL3BhcmFtdXRpbHMnO1xuaW1wb3J0IHtNaWNyb0Vycm9yfSBmcm9tICcuL2Vycm9yL21pY3JvZXJyb3InO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgTWljcm9DbGllbnQge1xuXG4gICAgcHJpdmF0ZSBhdXRoSGVhZGVyOiBzdHJpbmc7XG4gICAgcHJpdmF0ZSBwZXJtaXRUb2tlbjogc3RyaW5nO1xuICAgIHByaXZhdGUgZW50cnlQb2ludDogTWljcm9PYmplY3Q7XG5cbiAgICBwcml2YXRlIGVudHJ5UG9pbnRTdWJqZWN0OiBSZXBsYXlTdWJqZWN0PE1pY3JvT2JqZWN0PiA9IG5ldyBSZXBsYXlTdWJqZWN0PE1pY3JvT2JqZWN0PigpO1xuXG4gICAgcHJpdmF0ZSB1cmxSZXdyaXRlcjogKHN0cmluZykgPT4gc3RyaW5nO1xuICAgIHByaXZhdGUgZGVmYXVsdEVycm9ySGFuZGxlcjogKGh0dHBFcnJvcjogSHR0cEVycm9yUmVzcG9uc2UsIG1pY3JvRXJyb3I6IE1pY3JvT2JqZWN0KSA9PiB2b2lkO1xuICAgIHB1YmxpYyB1c2VQb3N0ID0gdHJ1ZTtcbiAgICBwdWJsaWMgc2VuZEFzUGVybWl0VG9rZW5IZWFkZXIgPSB0cnVlO1xuICAgIHB1YmxpYyBzZW5kQXNNdWx0aXBhcnRGb3JtRGF0YSA9IGZhbHNlO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwQ2xpZW50OiBIdHRwQ2xpZW50KSB7XG5cbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0U2VuZEFzUGVybWl0VG9rZW5IZWFkZXIoc2VuZEFzUGVybWl0VG9rZW5IZWFkZXI6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5zZW5kQXNQZXJtaXRUb2tlbkhlYWRlciA9IHNlbmRBc1Blcm1pdFRva2VuSGVhZGVyO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXRBdXRoVG9rZW4odG9rZW46IHN0cmluZykge1xuICAgICAgICB0aGlzLmF1dGhIZWFkZXIgPSAnQmVhcmVyICcgKyB0b2tlbjtcbiAgICAgICAgdGhpcy5wZXJtaXRUb2tlbiA9IHRva2VuO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXRBdXRoSGVhZGVyKGF1dGhIZWFkZXI6IHN0cmluZykge1xuICAgICAgICB0aGlzLmF1dGhIZWFkZXIgPSBhdXRoSGVhZGVyO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRFbnRyeVBvaW50KCk6IGFueSB7XG4gICAgICAgIHJldHVybiB0aGlzLmVudHJ5UG9pbnQ7XG4gICAgfVxuXG4gICAgcHVibGljIHdhaXRGb3JFbnRyeVBvaW50KGNiPzogKGVudHJ5UG9pbnQ6IGFueSkgPT4gdm9pZCk6IFByb21pc2U8YW55PiB7XG4gICAgICAgIGlmIChjYiAhPSBudWxsKSB7XG4gICAgICAgICAgICB0aGlzLmVudHJ5UG9pbnRTdWJqZWN0LnN1YnNjcmliZShjYik7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5lbnRyeVBvaW50U3ViamVjdC50b1Byb21pc2UoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY29weUF1dGhBbmRFbnRyeXBvaW50T2Yob3RoZXI6IE1pY3JvQ2xpZW50KSB7XG4gICAgICAgIHRoaXMuYXV0aEhlYWRlciA9IG90aGVyLmF1dGhIZWFkZXI7XG4gICAgICAgIHRoaXMucGVybWl0VG9rZW4gPSBvdGhlci5wZXJtaXRUb2tlbjtcbiAgICAgICAgdGhpcy5lbnRyeVBvaW50ID0gb3RoZXIuZW50cnlQb2ludDtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0RW50cnlQb2ludDxUIGV4dGVuZHMgTWljcm9PYmplY3Q+KGVudHJ5UG9pbnQ6IGFueSkge1xuICAgICAgICBpZiAoZW50cnlQb2ludCA9PSBudWxsKSB7XG4gICAgICAgICAgICB0aGlzLmF1dGhIZWFkZXIgPSBudWxsO1xuICAgICAgICAgICAgdGhpcy5lbnRyeVBvaW50ID0gbnVsbDtcbiAgICAgICAgICAgIHRoaXMucGVybWl0VG9rZW4gPSBudWxsO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5lbnRyeVBvaW50ID0gZW50cnlQb2ludDtcbiAgICAgICAgICAgIGlmICh0aGlzLmVudHJ5UG9pbnQuX19tZXRhICYmIHRoaXMuZW50cnlQb2ludC5fX21ldGEucGVybWl0VG9rZW4pIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldEF1dGhUb2tlbih0aGlzLmVudHJ5UG9pbnQuX19tZXRhLnBlcm1pdFRva2VuKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgRXJyb3IoJ0V4cGVjdGVkIHRoZSBlbnRyeVBvaW50IHRvIGNvbnRhaW4gYSBcInBlcm1pdFRva2VuXCIgd2l0aGluIHRoZSBcIl9fbWV0YVwiIGZpZWxkJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmVudHJ5UG9pbnRTdWJqZWN0Lm5leHQoZW50cnlQb2ludCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0RGVmYXVsdEVycm9ySGFuZGxlcihoYW5kbGVyOiAoaHR0cEVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSwgbWljcm9FcnJvcjogTWljcm9PYmplY3QpID0+IHZvaWQpIHtcbiAgICAgICAgdGhpcy5kZWZhdWx0RXJyb3JIYW5kbGVyID0gaGFuZGxlcjtcbiAgICB9XG5cbiAgICBwdWJsaWMgaGFuZGxlRXJyb3IoaHR0cEVycjogSHR0cEVycm9yUmVzcG9uc2UpIHtcbiAgICAgICAgaWYgKHRoaXMuZGVmYXVsdEVycm9ySGFuZGxlcikge1xuICAgICAgICAgICAgY29uc3QgbWljcm9FcnJvciA9IE1pY3JvQ2xpZW50LnRvTWljcm9FcnJvcihodHRwRXJyKTtcbiAgICAgICAgICAgIGlmIChtaWNyb0Vycm9yKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbWljcm9SZXN1bHRPYmo6IE1pY3JvT2JqZWN0ID0gPE1pY3JvT2JqZWN0Pk1pY3JvT2JqZWN0LmZyb21PYmplY3QoaHR0cEVyci5lcnJvciwgdGhpcyk7XG4gICAgICAgICAgICAgICAgdGhpcy5kZWZhdWx0RXJyb3JIYW5kbGVyKGh0dHBFcnIsIG1pY3JvUmVzdWx0T2JqKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5kZWZhdWx0RXJyb3JIYW5kbGVyKGh0dHBFcnIsIG51bGwpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGlnbml0ZTxUPihcbiAgICAgICAgdXJsOiBzdHJpbmcsXG4gICAgICAgIHVzZXJuYW1lOiBTdHJpbmcgPSBudWxsLFxuICAgICAgICBwYXNzd29yZDogU3RyaW5nID0gbnVsbCxcbiAgICAgICAgaGVhZGVyczogb2JqZWN0ID0ge31cbiAgICApOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICAgICAgaWYgKHRoaXMudXJsUmV3cml0ZXIpIHtcbiAgICAgICAgICAgIHVybCA9IHRoaXMudXJsUmV3cml0ZXIodXJsKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCByZXF1ZXN0SGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpO1xuICAgICAgICBmb3IgKGNvbnN0IGhlYWRlcktleSBpbiBoZWFkZXJzKSB7XG4gICAgICAgICAgICBpZiAoaGVhZGVycy5oYXNPd25Qcm9wZXJ0eShoZWFkZXJLZXkpKSB7XG4gICAgICAgICAgICAgICAgcmVxdWVzdEhlYWRlcnMgPSByZXF1ZXN0SGVhZGVycy5zZXQoaGVhZGVyS2V5LCBoZWFkZXJzW2hlYWRlcktleV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHVzZXJuYW1lICE9IG51bGwgfHwgcGFzc3dvcmQgIT0gbnVsbCkge1xuICAgICAgICAgICAgcmVxdWVzdEhlYWRlcnMgPSByZXF1ZXN0SGVhZGVycy5zZXQoJ0F1dGhvcml6YXRpb24nLCAnQmFzaWMgJyArIGJ0b2EodXNlcm5hbWUgKyAnOicgKyBwYXNzd29yZCkpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5nZXQodXJsLCB7XG4gICAgICAgICAgICBoZWFkZXJzOiByZXF1ZXN0SGVhZGVyc1xuICAgICAgICB9KS5waXBlKFxuICAgICAgICAgICAgbWFwKHZhbCA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgZW50cnlQb2ludCA9IE1pY3JvT2JqZWN0LmZyb21PYmplY3QodmFsLCB0aGlzKTtcbiAgICAgICAgICAgICAgICB0aGlzLnNldEVudHJ5UG9pbnQoZW50cnlQb2ludCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGVudHJ5UG9pbnQgYXMgVDtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgdGhpcy5jYXRjaEFuZEhhbmRsZUVycm9yKClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbG9hZDxUPihcbiAgICAgICAgdXJsOiBzdHJpbmcsXG4gICAgICAgIHBhcmFtcz86IG9iamVjdCxcbiAgICAgICAgcmVxdWVzdE9wdGlvbnM/OiBvYmplY3RcbiAgICApOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICAgICAgbGV0IHJlcXVlc3RIZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCk7XG4gICAgICAgIGlmICh0aGlzLmF1dGhIZWFkZXIpIHtcbiAgICAgICAgICAgIHJlcXVlc3RIZWFkZXJzID0gcmVxdWVzdEhlYWRlcnMuc2V0KCdBdXRob3JpemF0aW9uJywgdGhpcy5hdXRoSGVhZGVyKTtcblxuICAgICAgICAgICAgaWYgKHRoaXMuc2VuZEFzUGVybWl0VG9rZW5IZWFkZXIpIHtcbiAgICAgICAgICAgICAgICByZXF1ZXN0SGVhZGVycyA9IHJlcXVlc3RIZWFkZXJzLnNldCgnTWljcm9QZXJtaXRUb2tlbicsIHRoaXMucGVybWl0VG9rZW4pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgbGV0IG9QYXJhbXMgPSBwYXJhbXM7XG4gICAgICAgIGlmIChwYXJhbXMgIT0gbnVsbCB8fCB0aGlzLnVzZVBvc3QpIHtcbiAgICAgICAgICAgIGNvbnN0IGV4aXN0aW5nUGFyYW1zU3RyID0gUGFyYW1VdGlscy5nZXRQYXJhbSh1cmwsICdvUGFyYW1zJywgdHJ1ZSk7XG4gICAgICAgICAgICBsZXQgZXhpc3RpbmdQYXJhbXM7XG4gICAgICAgICAgICBpZiAoZXhpc3RpbmdQYXJhbXNTdHIpIHtcbiAgICAgICAgICAgICAgICBleGlzdGluZ1BhcmFtcyA9IEpTT04ucGFyc2UoZXhpc3RpbmdQYXJhbXNTdHIpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBleGlzdGluZ1BhcmFtcyA9IHt9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgb1BhcmFtcyA9IE9iamVjdC5hc3NpZ24oZXhpc3RpbmdQYXJhbXMsIHBhcmFtcyk7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgb3B0aW9ucyA9IHJlcXVlc3RPcHRpb25zO1xuICAgICAgICBpZiAocmVxdWVzdE9wdGlvbnMgIT0gbnVsbCB8fCB0aGlzLnVzZVBvc3QpIHtcbiAgICAgICAgICAgIGNvbnN0IHByZXZPcHRpb25zU3RyID0gUGFyYW1VdGlscy5nZXRQYXJhbSh1cmwsICdvcHRpb25zJywgdHJ1ZSk7XG4gICAgICAgICAgICBpZiAocHJldk9wdGlvbnNTdHIpIHtcbiAgICAgICAgICAgICAgICBvcHRpb25zID0gSlNPTi5wYXJzZShwcmV2T3B0aW9uc1N0cik7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIG9wdGlvbnMgPSB7fTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgb3B0aW9ucyA9IE9iamVjdC5hc3NpZ24ob3B0aW9ucywgcmVxdWVzdE9wdGlvbnMpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcXVlcnlQYXJhbXMgPSBQYXJhbVV0aWxzLmdldFBhcmFtcyh1cmwpO1xuXG4gICAgICAgIGxldCBodHRwT2JzID0gbnVsbDtcbiAgICAgICAgaWYgKHRoaXMudXNlUG9zdCkge1xuXG4gICAgICAgICAgICBsZXQgYk9QYXJhbXM7XG4gICAgICAgICAgICBjb25zdCBlbmNCT1BhcmFtcyA9IHF1ZXJ5UGFyYW1zWydiT1BhcmFtcyddO1xuICAgICAgICAgICAgaWYgKGVuY0JPUGFyYW1zKSB7XG4gICAgICAgICAgICAgICAgYk9QYXJhbXMgPSBKU09OLnBhcnNlKFBhcmFtVXRpbHMuYmFzZTY0VXJsRGVjb2RlKGVuY0JPUGFyYW1zKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBib2R5ID0ge1xuICAgICAgICAgICAgICAgIHBhcmFtczogcXVlcnlQYXJhbXNbJ3BhcmFtcyddLFxuICAgICAgICAgICAgICAgIG9QYXJhbXM6IG9QYXJhbXMsXG4gICAgICAgICAgICAgICAgYlBhcmFtczogcXVlcnlQYXJhbXNbJ2JQYXJhbXMnXSxcbiAgICAgICAgICAgICAgICBiT1BhcmFtczogYk9QYXJhbXMsXG4gICAgICAgICAgICAgICAgb3B0aW9uczogb3B0aW9ucyxcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIGRlbGV0ZSBxdWVyeVBhcmFtc1sncGFyYW1zJ107XG4gICAgICAgICAgICBkZWxldGUgcXVlcnlQYXJhbXNbJ29QYXJhbXMnXTtcbiAgICAgICAgICAgIGRlbGV0ZSBxdWVyeVBhcmFtc1snYlBhcmFtcyddO1xuICAgICAgICAgICAgZGVsZXRlIHF1ZXJ5UGFyYW1zWydiT1BhcmFtcyddO1xuICAgICAgICAgICAgZGVsZXRlIHF1ZXJ5UGFyYW1zWydvcHRpb25zJ107XG5cbiAgICAgICAgICAgIHVybCA9IFBhcmFtVXRpbHMuc2V0UGFyYW1zKHVybCwgcXVlcnlQYXJhbXMpO1xuXG4gICAgICAgICAgICBpZiAodGhpcy51cmxSZXdyaXRlcikge1xuICAgICAgICAgICAgICAgIHVybCA9IHRoaXMudXJsUmV3cml0ZXIodXJsKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaHR0cE9icyA9IHRoaXMuaHR0cENsaWVudC5wb3N0KHVybCwgdGhpcy5lbmNvZGVCb2R5KGJvZHkpLCB7XG4gICAgICAgICAgICAgICAgaGVhZGVyczogcmVxdWVzdEhlYWRlcnNcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKG9QYXJhbXMpIHtcbiAgICAgICAgICAgICAgICBxdWVyeVBhcmFtc1snb1BhcmFtcyddID0gUGFyYW1VdGlscy5iYXNlNjRVcmxFbmNvZGUoSlNPTi5zdHJpbmdpZnkob1BhcmFtcykpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAob3B0aW9ucykge1xuICAgICAgICAgICAgICAgIHF1ZXJ5UGFyYW1zWydvcHRpb25zJ10gPSBQYXJhbVV0aWxzLmJhc2U2NFVybEVuY29kZShKU09OLnN0cmluZ2lmeShvcHRpb25zKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB1cmwgPSBQYXJhbVV0aWxzLnNldFBhcmFtcyh1cmwsIHF1ZXJ5UGFyYW1zKTtcblxuICAgICAgICAgICAgaWYgKHRoaXMudXJsUmV3cml0ZXIpIHtcbiAgICAgICAgICAgICAgICB1cmwgPSB0aGlzLnVybFJld3JpdGVyKHVybCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGh0dHBPYnMgPSB0aGlzLmh0dHBDbGllbnQuZ2V0KHVybCwge1xuICAgICAgICAgICAgICAgIGhlYWRlcnM6IHJlcXVlc3RIZWFkZXJzXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGh0dHBPYnMgPSBodHRwT2JzLnBpcGUoXG4gICAgICAgICAgICBtYXAodmFsID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gTWljcm9PYmplY3QuZnJvbU9iamVjdCh2YWwsIHRoaXMpO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICB0aGlzLmNhdGNoQW5kSGFuZGxlRXJyb3IoKVxuICAgICAgICApO1xuXG4gICAgICAgIHJldHVybiBodHRwT2JzO1xuICAgIH1cblxuICAgIHByaXZhdGUgZW5jb2RlQm9keShib2R5OiBhbnkpOiBhbnkge1xuICAgICAgICBpZiAodGhpcy5zZW5kQXNNdWx0aXBhcnRGb3JtRGF0YSkge1xuICAgICAgICAgICAgbGV0IGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XG4gICAgICAgICAgICBmb3JtRGF0YS5hcHBlbmQoJycsIEpTT04uc3RyaW5naWZ5KGJvZHkpKTtcbiAgICAgICAgICAgIHJldHVybiBuZXcgRm9ybURhdGEoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBib2R5O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjYXRjaEFuZEhhbmRsZUVycm9yPFQ+KCk6ICgoc291cmNlOiBPYnNlcnZhYmxlPFQ+KSA9PiBPYnNlcnZhYmxlPFQ+KSB7XG4gICAgICAgIHJldHVybiAoc291cmNlOiBPYnNlcnZhYmxlPFQ+KSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gc291cmNlLnBpcGUoXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcihlcnIgPT4ge1xuICAgICAgICAgICAgICAgICAgICBsZXQgbG9hZEVycm9yID0gbmV3IE1pY3JvQ2xpZW50TG9hZEVycm9yKGVyciwgKGVyclRvSGFuZGxlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZUVycm9yKGVyclRvSGFuZGxlKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGxvYWRFcnJvcikucGlwZShcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbmFsaXplKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWxvYWRFcnJvci5zaG91bGRQcmV2ZW50RGVmYXVsdCgpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvYWRFcnJvci5oYW5kbGVEZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY3JlYXRlQ2hpbGRDbGllbnRGb3JFbnRyeVBvaW50KGVudHJ5UG9pbnQ6IE1pY3JvT2JqZWN0KTogTWljcm9DbGllbnQge1xuICAgICAgICBpZiAoZW50cnlQb2ludC5fX21ldGEgJiYgZW50cnlQb2ludC5fX21ldGEucGVybWl0VG9rZW4pIHtcbiAgICAgICAgICAgIGNvbnN0IGNoaWxkQ2xpZW50OiBNaWNyb0NsaWVudCA9IE9iamVjdC5jcmVhdGUodGhpcywge1xuICAgICAgICAgICAgICAgIGVudHJ5UG9pbnQ6IHtcbiAgICAgICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICB3cml0YWJsZTogdHJ1ZVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgYXV0aEhlYWRlcjoge1xuICAgICAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIHdyaXRhYmxlOiB0cnVlXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBwZXJtaXRUb2tlbjoge1xuICAgICAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIHdyaXRhYmxlOiB0cnVlXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBjaGlsZENsaWVudC5zZXRFbnRyeVBvaW50KGVudHJ5UG9pbnQpO1xuICAgICAgICAgICAgcmV0dXJuIGNoaWxkQ2xpZW50O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdUaGUgc3VwcGxpZWQgdmFsdWUgY2FuXFwndCBiZSB1c2VkIHRvIGNvbnN0cnVjdCBhIGNoaWxkIE1pY3JvQ2xpZW50IGJlY2F1c2UgaXQgZG9lc25cXCd0IGNvbnRhaW4gbWV0YWRhdGEgd2l0aCBhIHBlcm1pdFRva2VuICcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIHNldFVSTFJld3JpdGVyKHJld3JpdGVyOiAoc3RyaW5nKSA9PiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy51cmxSZXdyaXRlciA9IHJld3JpdGVyO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgdG9NaWNyb0Vycm9yKGh0dHBSZXNwb25zZTogSHR0cEVycm9yUmVzcG9uc2UpOiBNaWNyb0Vycm9yIHtcbiAgICAgICAgY29uc3QgcmVzID0gaHR0cFJlc3BvbnNlLmVycm9yO1xuICAgICAgICBpZiAocmVzICYmIHJlcy5fX21ldGEgJiYgcmVzLl9fbWV0YS5lcnJvcikge1xuICAgICAgICAgICAgcmV0dXJuIE9iamVjdC5hc3NpZ24obmV3IE1pY3JvRXJyb3IoKSwgcmVzLl9fbWV0YS5lcnJvcik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdGF0aWMgc3RhdGljQ29udGVudFJlZ0V4cCA9IG5ldyBSZWdFeHAoJ1thLXpBLVowLTldOi8vLiooOlswLTldKyk/KC8uKikqL3N0YXRpYygvLiooXFxcXD8uKik/KCMuKik/KT8nKTtcblxuICAgIHB1YmxpYyBzdGF0aWMgZ3Vlc3NNaWNyb0NvbXBvbmVudEJhc2VVUkwoKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgaHJlZiA9IHdpbmRvdy5sb2NhdGlvbi5ocmVmO1xuXG4gICAgICAgIC8vIExhc3QgVVJMLVNlZ2VtZW50IGlzIHN0YXRpY1xuICAgICAgICBpZiAoTWljcm9DbGllbnQuc3RhdGljQ29udGVudFJlZ0V4cC50ZXN0KGhyZWYpKSB7XG4gICAgICAgICAgICByZXR1cm4gaHJlZi5yZXBsYWNlKG5ldyBSZWdFeHAoJy9zdGF0aWMvLionKSwgJycpXG4gICAgICAgICAgICAgICAgLnJlcGxhY2UobmV3IFJlZ0V4cCgnLyMvLionKSwgJycpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKHdpbmRvdy5sb2NhdGlvbi5wcm90b2NvbC5zdGFydHNXaXRoKCdmaWxlJykpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ2h0dHA6Ly9sb2NhbGhvc3Q6ODA4MCc7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiB3aW5kb3cubG9jYXRpb24ucHJvdG9jb2wgKyAnLy8nICsgd2luZG93LmxvY2F0aW9uLmhvc3RuYW1lICsgJzo4MDgwJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgZ3Vlc3NNaWNyb0NvbXBvbmVudEF1dGhvcml6ZVVSTCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5ndWVzc01pY3JvQ29tcG9uZW50QmFzZVVSTCgpICsgJy9hdXRob3JpemUnO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIE1pY3JvQ2xpZW50TG9hZEVycm9yIHtcbiAgICBwcml2YXRlIGhhbmRsZWQgPSBmYWxzZTtcbiAgICBwcml2YXRlIGRvUHJldmVudERlZmF1bHQgPSBmYWxzZTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZXJyb3I6IGFueSwgcHJpdmF0ZSBkZWZhdWx0SGFuZGxlcjogKGVycjogYW55KSA9PiB2b2lkKSB7XG5cbiAgICB9XG5cbiAgICBwdWJsaWMgaGFuZGxlRGVmYXVsdCgpIHtcbiAgICAgICAgaWYgKHRoaXMuZGVmYXVsdEhhbmRsZXIpIHtcbiAgICAgICAgICAgIHRoaXMuZGVmYXVsdEhhbmRsZXIodGhpcy5lcnJvcik7XG4gICAgICAgICAgICB0aGlzLmhhbmRsZWQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGhhbmRsZUVycm9yKGhhbmRsZXI6IChlcnJvcjogYW55KSA9PiB2b2lkKSB7XG4gICAgICAgIGhhbmRsZXIodGhpcy5lcnJvcik7XG4gICAgICAgIHRoaXMuaGFuZGxlZCA9IHRydWU7XG4gICAgfVxuXG4gICAgcHVibGljIGlzSGFuZGxlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2hvdWxkUHJldmVudERlZmF1bHQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmRvUHJldmVudERlZmF1bHQ7XG4gICAgfVxuXG4gICAgcHVibGljIHByZXZlbnREZWZhdWx0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRvUHJldmVudERlZmF1bHQgPSB0cnVlO1xuICAgIH1cblxuICAgIHB1YmxpYyBoYXNEZWZhdWx0SGFuZGxlcigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGVmYXVsdEhhbmRsZXIgIT0gbnVsbDtcbiAgICB9XG59XG4iXX0=
|
|
@@ -559,6 +559,7 @@ class LinkField extends CallableLink {
|
|
|
559
559
|
* @return {?}
|
|
560
560
|
*/
|
|
561
561
|
listenObs() {
|
|
562
|
+
//TODO handle listeners in case of intermidiate uninitialize (new valueSubj)
|
|
562
563
|
if (this.valueSubj) {
|
|
563
564
|
return this.valueSubj;
|
|
564
565
|
}
|
|
@@ -570,7 +571,16 @@ class LinkField extends CallableLink {
|
|
|
570
571
|
* @return {?}
|
|
571
572
|
*/
|
|
572
573
|
() => {
|
|
573
|
-
this.initWithObs(null, null).subscribe(
|
|
574
|
+
this.initWithObs(null, null).subscribe((/**
|
|
575
|
+
* @param {?} value
|
|
576
|
+
* @return {?}
|
|
577
|
+
*/
|
|
578
|
+
(value) => {
|
|
579
|
+
if (this.valueSubj !== valueSubj) {
|
|
580
|
+
valueSubj.next(value);
|
|
581
|
+
valueSubj.complete();
|
|
582
|
+
}
|
|
583
|
+
}));
|
|
574
584
|
return valueSubj;
|
|
575
585
|
}));
|
|
576
586
|
}
|
|
@@ -979,6 +989,7 @@ class MicroClient {
|
|
|
979
989
|
this.entryPointSubject = new ReplaySubject();
|
|
980
990
|
this.usePost = true;
|
|
981
991
|
this.sendAsPermitTokenHeader = true;
|
|
992
|
+
this.sendAsMultipartFormData = false;
|
|
982
993
|
}
|
|
983
994
|
/**
|
|
984
995
|
* @param {?} sendAsPermitTokenHeader
|
|
@@ -1183,7 +1194,7 @@ class MicroClient {
|
|
|
1183
1194
|
if (this.urlRewriter) {
|
|
1184
1195
|
url = this.urlRewriter(url);
|
|
1185
1196
|
}
|
|
1186
|
-
httpObs = this.httpClient.post(url, body, {
|
|
1197
|
+
httpObs = this.httpClient.post(url, this.encodeBody(body), {
|
|
1187
1198
|
headers: requestHeaders
|
|
1188
1199
|
});
|
|
1189
1200
|
}
|
|
@@ -1211,6 +1222,22 @@ class MicroClient {
|
|
|
1211
1222
|
})), this.catchAndHandleError());
|
|
1212
1223
|
return httpObs;
|
|
1213
1224
|
}
|
|
1225
|
+
/**
|
|
1226
|
+
* @private
|
|
1227
|
+
* @param {?} body
|
|
1228
|
+
* @return {?}
|
|
1229
|
+
*/
|
|
1230
|
+
encodeBody(body) {
|
|
1231
|
+
if (this.sendAsMultipartFormData) {
|
|
1232
|
+
/** @type {?} */
|
|
1233
|
+
let formData = new FormData();
|
|
1234
|
+
formData.append('', JSON.stringify(body));
|
|
1235
|
+
return new FormData();
|
|
1236
|
+
}
|
|
1237
|
+
else {
|
|
1238
|
+
return body;
|
|
1239
|
+
}
|
|
1240
|
+
}
|
|
1214
1241
|
/**
|
|
1215
1242
|
* @private
|
|
1216
1243
|
* @template T
|
|
@@ -1371,6 +1398,8 @@ if (false) {
|
|
|
1371
1398
|
MicroClient.prototype.usePost;
|
|
1372
1399
|
/** @type {?} */
|
|
1373
1400
|
MicroClient.prototype.sendAsPermitTokenHeader;
|
|
1401
|
+
/** @type {?} */
|
|
1402
|
+
MicroClient.prototype.sendAsMultipartFormData;
|
|
1374
1403
|
/**
|
|
1375
1404
|
* @type {?}
|
|
1376
1405
|
* @private
|