ng-easycommerce 0.0.689 → 0.0.690
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -0
- package/bundles/ng-easycommerce.umd.js +262 -78
- package/bundles/ng-easycommerce.umd.js.map +1 -1
- package/bundles/ng-easycommerce.umd.min.js +1 -1
- package/bundles/ng-easycommerce.umd.min.js.map +1 -1
- package/esm2015/lib/ec-component/checkout-ec/payment-ec/payment-ec.component.js +3 -2
- package/esm2015/lib/ec-component/widgets-ec/mobbex-ec/mobbex-ec.component.js +237 -85
- package/esm5/lib/ec-component/checkout-ec/payment-ec/payment-ec.component.js +3 -2
- package/esm5/lib/ec-component/widgets-ec/mobbex-ec/mobbex-ec.component.js +263 -85
- package/fesm2015/ng-easycommerce.js +236 -78
- package/fesm2015/ng-easycommerce.js.map +1 -1
- package/fesm5/ng-easycommerce.js +262 -78
- package/fesm5/ng-easycommerce.js.map +1 -1
- package/lib/ec-component/widgets-ec/mobbex-ec/mobbex-ec.component.d.ts +34 -32
- package/ng-easycommerce.metadata.json +1 -1
- package/package.json +1 -1
|
@@ -17,120 +17,302 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
17
17
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
18
18
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
19
19
|
};
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
20
|
+
var __values = (this && this.__values) || function(o) {
|
|
21
|
+
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
|
|
22
|
+
if (m) return m.call(o);
|
|
23
|
+
if (o && typeof o.length === "number") return {
|
|
24
|
+
next: function () {
|
|
25
|
+
if (o && i >= o.length) o = void 0;
|
|
26
|
+
return { value: o && o[i++], done: !o };
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
|
|
30
|
+
};
|
|
31
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
32
|
+
import { ComponentHelper } from '../../../classes/component-helper';
|
|
24
33
|
import { ToastService } from '../../../utils/toast.service';
|
|
25
|
-
import { Constants } from '../../../core.consts';
|
|
26
34
|
import { CartService } from '../../../services/cart.service';
|
|
27
|
-
import { DomSanitizer, SafeResourceUrl, SafeUrl } from '@angular/platform-browser';
|
|
28
|
-
import { BsModalRef, BsModalService } from 'ngx-bootstrap/modal';
|
|
29
35
|
var MobbexEcComponent = /** @class */ (function (_super) {
|
|
30
36
|
__extends(MobbexEcComponent, _super);
|
|
31
|
-
function MobbexEcComponent(
|
|
37
|
+
function MobbexEcComponent(toastrService, cartService) {
|
|
32
38
|
var _this = _super.call(this) || this;
|
|
33
|
-
_this.renderer = renderer;
|
|
34
|
-
_this.connection = connection;
|
|
35
39
|
_this.toastrService = toastrService;
|
|
36
|
-
_this.consts = consts;
|
|
37
40
|
_this.cartService = cartService;
|
|
38
|
-
_this.toastr = toastr;
|
|
39
|
-
_this.activedRoute = activedRoute;
|
|
40
|
-
_this.sanitizer = sanitizer;
|
|
41
|
-
_this.modalService = modalService;
|
|
42
41
|
_this.method = null;
|
|
43
42
|
_this.total_amount = 0;
|
|
44
43
|
_this.user_data = null;
|
|
45
44
|
_this.ready = new EventEmitter();
|
|
46
|
-
_this.loading =
|
|
47
|
-
_this.
|
|
48
|
-
_this.
|
|
49
|
-
_this.
|
|
50
|
-
_this.
|
|
51
|
-
_this.
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
_this.
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
_this.
|
|
59
|
-
|
|
60
|
-
|
|
45
|
+
_this.loading = true;
|
|
46
|
+
_this.processing = false;
|
|
47
|
+
_this.url = null;
|
|
48
|
+
_this.checkoutData = null;
|
|
49
|
+
_this.popup = null;
|
|
50
|
+
_this.pollTimer = null;
|
|
51
|
+
_this.startedAt = 0;
|
|
52
|
+
_this.finished = false;
|
|
53
|
+
_this.checkoutKey = '';
|
|
54
|
+
_this.bc = null;
|
|
55
|
+
_this.checkoutRequestInFlight = false;
|
|
56
|
+
_this.openCheckout = function () {
|
|
57
|
+
if (!_this.url || _this.processing || typeof window === 'undefined')
|
|
58
|
+
return;
|
|
59
|
+
_this.clearStateKeys();
|
|
60
|
+
_this.finished = false;
|
|
61
|
+
_this.processing = true;
|
|
62
|
+
_this.startedAt = Date.now();
|
|
63
|
+
_this.popup = window.open(_this.url, '_blank');
|
|
64
|
+
if (!_this.popup || _this.popup.closed) {
|
|
65
|
+
_this.processing = false;
|
|
66
|
+
_this.toastrService.show('No se pudo abrir la pasarela de pago. Verifique que su navegador permita nuevas pestañas.');
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
61
69
|
try {
|
|
62
|
-
|
|
63
|
-
_this.loading = true;
|
|
64
|
-
state && console.log(state);
|
|
65
|
-
if (state) {
|
|
66
|
-
_this.loading = false;
|
|
67
|
-
sessionStorage.removeItem('state');
|
|
68
|
-
localStorage.removeItem('state');
|
|
69
|
-
if (state == 'success') {
|
|
70
|
-
_this.ready.emit(true);
|
|
71
|
-
}
|
|
72
|
-
if (state == 'cancel') {
|
|
73
|
-
return;
|
|
74
|
-
}
|
|
75
|
-
if (state == 'failure') {
|
|
76
|
-
_this.processError('');
|
|
77
|
-
}
|
|
78
|
-
_this.modalRef.hide();
|
|
79
|
-
return;
|
|
80
|
-
}
|
|
81
|
-
setTimeout(function () {
|
|
82
|
-
_this.callState();
|
|
83
|
-
}, 5000);
|
|
70
|
+
_this.popup.opener = null;
|
|
84
71
|
}
|
|
85
|
-
catch (
|
|
86
|
-
|
|
72
|
+
catch (_a) {
|
|
73
|
+
// Nothing to do.
|
|
87
74
|
}
|
|
75
|
+
_this.startPolling();
|
|
88
76
|
};
|
|
89
|
-
_this.
|
|
90
|
-
_this.
|
|
91
|
-
|
|
77
|
+
_this.cancelCheckout = function () {
|
|
78
|
+
if (_this.finished)
|
|
79
|
+
return;
|
|
80
|
+
_this.finishWithState('cancel', true);
|
|
92
81
|
};
|
|
93
82
|
_this.getCheckoutMobbex = function () {
|
|
83
|
+
if (_this.checkoutRequestInFlight)
|
|
84
|
+
return;
|
|
94
85
|
_this.loading = true;
|
|
95
|
-
_this.
|
|
86
|
+
_this.checkoutRequestInFlight = true;
|
|
87
|
+
var payload = _this.user_data || _this.allData || {};
|
|
88
|
+
_this.paymentServiceInst.getCheckoutMobbex(payload).then(function (res) {
|
|
96
89
|
var _a, _b, _c, _d;
|
|
97
|
-
_this.
|
|
98
|
-
_this.
|
|
90
|
+
_this.checkoutData = res || null;
|
|
91
|
+
_this.checkoutKey = String(((_b = (_a = res) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.id) || _this.cartService.cart_token || '');
|
|
92
|
+
_this.url = ((_d = (_c = res) === null || _c === void 0 ? void 0 : _c.data) === null || _d === void 0 ? void 0 : _d.url) || null;
|
|
93
|
+
_this.safeSetStorage('mobbex:checkout-id', _this.checkoutKey);
|
|
99
94
|
_this.loading = false;
|
|
100
|
-
|
|
101
|
-
_this.
|
|
95
|
+
_this.checkoutRequestInFlight = false;
|
|
96
|
+
if (!_this.url) {
|
|
97
|
+
_this.processError('operation-error');
|
|
98
|
+
}
|
|
99
|
+
}, function () {
|
|
102
100
|
_this.loading = false;
|
|
101
|
+
_this.checkoutRequestInFlight = false;
|
|
102
|
+
_this.processError('operation-error');
|
|
103
103
|
});
|
|
104
104
|
};
|
|
105
|
+
_this.onStorage = function (event) {
|
|
106
|
+
var _a;
|
|
107
|
+
if (!((_a = event) === null || _a === void 0 ? void 0 : _a.key) || _this.finished)
|
|
108
|
+
return;
|
|
109
|
+
if (!_this.getStateKeys().includes(event.key))
|
|
110
|
+
return;
|
|
111
|
+
var state = _this.normalizeState(event.newValue);
|
|
112
|
+
if (state) {
|
|
113
|
+
_this.finishWithState(state, true);
|
|
114
|
+
}
|
|
115
|
+
};
|
|
116
|
+
_this.onMessage = function (event) {
|
|
117
|
+
_this.onBroadcastMessage(event);
|
|
118
|
+
};
|
|
119
|
+
_this.clearStorageState = function () {
|
|
120
|
+
sessionStorage.removeItem('state');
|
|
121
|
+
localStorage.removeItem('state');
|
|
122
|
+
};
|
|
123
|
+
_this.processError = function (err) {
|
|
124
|
+
_this.toastrService.show(err !== '' ? err : 'payment-error');
|
|
125
|
+
};
|
|
105
126
|
_this.ecOnConstruct();
|
|
106
127
|
return _this;
|
|
107
128
|
}
|
|
108
129
|
MobbexEcComponent.prototype.ngOnInit = function () {
|
|
109
|
-
this
|
|
130
|
+
var _this = this;
|
|
131
|
+
if (typeof window !== 'undefined') {
|
|
132
|
+
window.addEventListener('storage', this.onStorage);
|
|
133
|
+
window.addEventListener('message', this.onMessage);
|
|
134
|
+
if (window.BroadcastChannel) {
|
|
135
|
+
this.bc = new BroadcastChannel('mobbex_payment');
|
|
136
|
+
this.bc.onmessage = function (event) { return _this.onBroadcastMessage(event); };
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
this.loadCheckout();
|
|
110
140
|
this.ecOnInit();
|
|
111
141
|
};
|
|
112
142
|
MobbexEcComponent.prototype.ngOnDestroy = function () {
|
|
113
|
-
|
|
143
|
+
if (typeof window !== 'undefined') {
|
|
144
|
+
window.removeEventListener('storage', this.onStorage);
|
|
145
|
+
window.removeEventListener('message', this.onMessage);
|
|
146
|
+
}
|
|
147
|
+
if (this.bc) {
|
|
148
|
+
try {
|
|
149
|
+
this.bc.close();
|
|
150
|
+
}
|
|
151
|
+
catch (_a) {
|
|
152
|
+
// Nothing to do.
|
|
153
|
+
}
|
|
154
|
+
this.bc = null;
|
|
155
|
+
}
|
|
156
|
+
this.stopPolling();
|
|
157
|
+
this.closePopup();
|
|
158
|
+
};
|
|
159
|
+
MobbexEcComponent.prototype.loadCheckout = function () {
|
|
160
|
+
if (!this.paymentServiceInst || !this.method)
|
|
161
|
+
return;
|
|
162
|
+
if (this.url && !this.loading)
|
|
163
|
+
return;
|
|
164
|
+
this.getCheckoutMobbex();
|
|
165
|
+
};
|
|
166
|
+
MobbexEcComponent.prototype.startPolling = function () {
|
|
167
|
+
var _this = this;
|
|
168
|
+
this.stopPolling();
|
|
169
|
+
this.pollTimer = setInterval(function () {
|
|
170
|
+
var _a, _b, _c, _d, _e, _f;
|
|
171
|
+
if (_this.finished) {
|
|
172
|
+
_this.stopPolling();
|
|
173
|
+
return;
|
|
174
|
+
}
|
|
175
|
+
var state = _this.readState();
|
|
176
|
+
if (state) {
|
|
177
|
+
_this.finishWithState(state, true);
|
|
178
|
+
return;
|
|
179
|
+
}
|
|
180
|
+
if ((_a = _this.popup) === null || _a === void 0 ? void 0 : _a.closed) {
|
|
181
|
+
_this.finishWithState('cancel', true);
|
|
182
|
+
return;
|
|
183
|
+
}
|
|
184
|
+
var rawTimeoutMinutes = Number((_f = (_d = (_c = (_b = _this.checkoutData) === null || _b === void 0 ? void 0 : _b.data) === null || _c === void 0 ? void 0 : _c.timeout, (_d !== null && _d !== void 0 ? _d : (_e = _this.checkoutData) === null || _e === void 0 ? void 0 : _e.timeout)), (_f !== null && _f !== void 0 ? _f : 60)));
|
|
185
|
+
var timeoutMinutes = Number.isFinite(rawTimeoutMinutes) && rawTimeoutMinutes > 0 ? rawTimeoutMinutes : 60;
|
|
186
|
+
var timeoutMs = Math.max(5, timeoutMinutes + 1) * 60 * 1000;
|
|
187
|
+
if (Date.now() - _this.startedAt > timeoutMs) {
|
|
188
|
+
_this.finishWithState('failure', true, 'Tiempo de espera agotado al procesar el pago con Mobbex.');
|
|
189
|
+
}
|
|
190
|
+
}, 1000);
|
|
191
|
+
};
|
|
192
|
+
MobbexEcComponent.prototype.onBroadcastMessage = function (event) {
|
|
193
|
+
var _a;
|
|
194
|
+
var payload = (_a = event) === null || _a === void 0 ? void 0 : _a.data;
|
|
195
|
+
if (!payload || payload.type !== 'mobbex:state' || this.finished)
|
|
196
|
+
return;
|
|
197
|
+
if (this.checkoutKey && payload.checkoutKey && payload.checkoutKey !== this.checkoutKey)
|
|
198
|
+
return;
|
|
199
|
+
var state = this.normalizeState(payload.state);
|
|
200
|
+
if (state) {
|
|
201
|
+
this.finishWithState(state, true);
|
|
202
|
+
}
|
|
203
|
+
};
|
|
204
|
+
MobbexEcComponent.prototype.finishWithState = function (state, closePopup, customMessage) {
|
|
205
|
+
if (closePopup === void 0) { closePopup = false; }
|
|
206
|
+
if (customMessage === void 0) { customMessage = ''; }
|
|
207
|
+
if (this.finished)
|
|
208
|
+
return;
|
|
209
|
+
this.finished = true;
|
|
210
|
+
this.processing = false;
|
|
211
|
+
this.stopPolling();
|
|
212
|
+
if (closePopup) {
|
|
213
|
+
this.closePopup();
|
|
214
|
+
}
|
|
215
|
+
this.clearStateKeys();
|
|
216
|
+
if (state === 'success' || state === 'pending') {
|
|
217
|
+
this.ready.emit(true);
|
|
218
|
+
return;
|
|
219
|
+
}
|
|
220
|
+
this.processError(customMessage || (state === 'cancel' ? 'Se canceló el pago con Mobbex' : ''));
|
|
114
221
|
};
|
|
115
|
-
MobbexEcComponent.prototype.
|
|
116
|
-
|
|
222
|
+
MobbexEcComponent.prototype.readState = function () {
|
|
223
|
+
var e_1, _a;
|
|
224
|
+
var keys = this.getStateKeys();
|
|
225
|
+
try {
|
|
226
|
+
for (var keys_1 = __values(keys), keys_1_1 = keys_1.next(); !keys_1_1.done; keys_1_1 = keys_1.next()) {
|
|
227
|
+
var key = keys_1_1.value;
|
|
228
|
+
var value = this.safeGetStorage(key);
|
|
229
|
+
var normalized = this.normalizeState(value);
|
|
230
|
+
if (normalized)
|
|
231
|
+
return normalized;
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
235
|
+
finally {
|
|
236
|
+
try {
|
|
237
|
+
if (keys_1_1 && !keys_1_1.done && (_a = keys_1.return)) _a.call(keys_1);
|
|
238
|
+
}
|
|
239
|
+
finally { if (e_1) throw e_1.error; }
|
|
240
|
+
}
|
|
241
|
+
return null;
|
|
117
242
|
};
|
|
118
|
-
MobbexEcComponent.prototype.
|
|
243
|
+
MobbexEcComponent.prototype.normalizeState = function (value) {
|
|
244
|
+
var raw = String(value || '').toLowerCase();
|
|
245
|
+
if (!raw)
|
|
246
|
+
return null;
|
|
247
|
+
if (raw === '200' || raw === 'ok' || raw === 'success')
|
|
248
|
+
return 'success';
|
|
249
|
+
if (raw === 'pending' || raw === 'in_process' || raw === 'in_review' || raw === 'challenge')
|
|
250
|
+
return 'pending';
|
|
251
|
+
if (raw === 'cancel' || raw === '0' || raw === 'none')
|
|
252
|
+
return 'cancel';
|
|
253
|
+
if (raw === 'failure' || raw === 'error' || raw === 'expired' || raw === '401')
|
|
254
|
+
return 'failure';
|
|
255
|
+
return null;
|
|
256
|
+
};
|
|
257
|
+
MobbexEcComponent.prototype.getStateKeys = function () {
|
|
258
|
+
var keys = ['state'];
|
|
259
|
+
if (this.checkoutKey) {
|
|
260
|
+
keys.unshift("mobbex:state:" + this.checkoutKey);
|
|
261
|
+
}
|
|
262
|
+
return keys;
|
|
263
|
+
};
|
|
264
|
+
MobbexEcComponent.prototype.clearStateKeys = function () {
|
|
119
265
|
this.clearStorageState();
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
266
|
+
if (this.checkoutKey) {
|
|
267
|
+
this.safeRemoveStorage("mobbex:state:" + this.checkoutKey);
|
|
268
|
+
this.safeRemoveStorage('mobbex:checkout-id');
|
|
269
|
+
}
|
|
270
|
+
};
|
|
271
|
+
MobbexEcComponent.prototype.stopPolling = function () {
|
|
272
|
+
if (this.pollTimer) {
|
|
273
|
+
clearInterval(this.pollTimer);
|
|
274
|
+
this.pollTimer = null;
|
|
275
|
+
}
|
|
276
|
+
};
|
|
277
|
+
MobbexEcComponent.prototype.closePopup = function () {
|
|
278
|
+
if (!this.popup)
|
|
279
|
+
return;
|
|
280
|
+
try {
|
|
281
|
+
if (!this.popup.closed)
|
|
282
|
+
this.popup.close();
|
|
283
|
+
}
|
|
284
|
+
catch (_a) {
|
|
285
|
+
// Nothing to do.
|
|
286
|
+
}
|
|
287
|
+
this.popup = null;
|
|
288
|
+
};
|
|
289
|
+
MobbexEcComponent.prototype.safeGetStorage = function (key) {
|
|
290
|
+
try {
|
|
291
|
+
return localStorage.getItem(key);
|
|
292
|
+
}
|
|
293
|
+
catch (_a) {
|
|
294
|
+
return null;
|
|
295
|
+
}
|
|
296
|
+
};
|
|
297
|
+
MobbexEcComponent.prototype.safeRemoveStorage = function (key) {
|
|
298
|
+
try {
|
|
299
|
+
localStorage.removeItem(key);
|
|
300
|
+
}
|
|
301
|
+
catch (_a) {
|
|
302
|
+
// Nothing to do.
|
|
303
|
+
}
|
|
304
|
+
};
|
|
305
|
+
MobbexEcComponent.prototype.safeSetStorage = function (key, value) {
|
|
306
|
+
try {
|
|
307
|
+
localStorage.setItem(key, value);
|
|
308
|
+
}
|
|
309
|
+
catch (_a) {
|
|
310
|
+
// Nothing to do.
|
|
311
|
+
}
|
|
123
312
|
};
|
|
124
313
|
MobbexEcComponent.ctorParameters = function () { return [
|
|
125
|
-
{ type: Renderer2 },
|
|
126
|
-
{ type: ConnectionService },
|
|
127
|
-
{ type: ToastService },
|
|
128
|
-
{ type: Constants },
|
|
129
|
-
{ type: CartService },
|
|
130
314
|
{ type: ToastService },
|
|
131
|
-
{ type:
|
|
132
|
-
{ type: DomSanitizer },
|
|
133
|
-
{ type: BsModalService }
|
|
315
|
+
{ type: CartService }
|
|
134
316
|
]; };
|
|
135
317
|
__decorate([
|
|
136
318
|
Input()
|
|
@@ -150,18 +332,14 @@ var MobbexEcComponent = /** @class */ (function (_super) {
|
|
|
150
332
|
__decorate([
|
|
151
333
|
Output()
|
|
152
334
|
], MobbexEcComponent.prototype, "ready", void 0);
|
|
153
|
-
__decorate([
|
|
154
|
-
ViewChild('template')
|
|
155
|
-
], MobbexEcComponent.prototype, "template", void 0);
|
|
156
335
|
MobbexEcComponent = __decorate([
|
|
157
336
|
Component({
|
|
158
337
|
selector: 'app-mobbex-ec',
|
|
159
|
-
template: "<div class=\"text-center\">\n <h3>Continuar con el pago en Mobbex</h3>\n <p *ngIf=\"method\" class=\"px-5\">{{ method?.description }}</p>\n <p *ngIf=\"method\" class=\"px-5\">{{ method?.instructions }}</p>\n <ng-container *ngIf=\"
|
|
160
|
-
|
|
161
|
-
styles: [".half-width{width:49%!important}.ml-1{margin-left:1%}#card-form{height:450px}.iframeStyle{height:800px;width:100%;max-height:800px}"]
|
|
338
|
+
template: "<div class=\"text-center\">\n <h3>Continuar con el pago en Mobbex</h3>\n <p *ngIf=\"method\" class=\"px-5\">{{ method?.description }}</p>\n <p *ngIf=\"method\" class=\"px-5\">{{ method?.instructions }}</p>\n\n <ng-container *ngIf=\"loading; else checkoutReady\">\n <div class=\"d-flex flex-column justify-content-center align-items-center mt-2\">\n <app-loading-full-ec></app-loading-full-ec>\n <p class=\"mt-3 px-5 mobbex-note\">Preparando la pasarela de pago...</p>\n </div>\n </ng-container>\n\n <ng-template #checkoutReady>\n <p class=\"mt-3 px-5 mobbex-note\">\n Se abrir\u00E1 una nueva pesta\u00F1a para completar el pago.\n </p>\n\n <div class=\"d-flex flex-column align-items-center\">\n <button\n class=\"btn btn-outline-secondary comprar\"\n [disabled]=\"processing || !url\"\n (click)=\"openCheckout()\">\n Ir al sitio de Mobbex\n </button>\n\n <a\n *ngIf=\"url\"\n class=\"mt-2 small mobbex-link\"\n [href]=\"url\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n (click)=\"$event.preventDefault(); openCheckout()\">\n Si el bot\u00F3n no abre una nueva pesta\u00F1a, toc\u00E1 aqu\u00ED para continuar.\n </a>\n\n <button\n *ngIf=\"processing\"\n type=\"button\"\n class=\"btn btn-link text-secondary mt-2\"\n (click)=\"cancelCheckout()\">\n Cancelar pago\n </button>\n\n <p *ngIf=\"!url\" class=\"mt-2 px-5 text-danger\">\n No fue posible preparar la pasarela de pago.\n </p>\n </div>\n </ng-template>\n</div>\n",
|
|
339
|
+
styles: [".mobbex-note{color:#6c757d}"]
|
|
162
340
|
})
|
|
163
341
|
], MobbexEcComponent);
|
|
164
342
|
return MobbexEcComponent;
|
|
165
343
|
}(ComponentHelper));
|
|
166
344
|
export { MobbexEcComponent };
|
|
167
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9iYmV4LWVjLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25nLWVhc3ljb21tZXJjZS8iLCJzb3VyY2VzIjpbImxpYi9lYy1jb21wb25lbnQvd2lkZ2V0cy1lYy9tb2JiZXgtZWMvbW9iYmV4LWVjLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTVKLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVqRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDcEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDcEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzVELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDN0QsT0FBTyxFQUFFLFlBQVksRUFBRSxlQUFlLEVBQUUsT0FBTyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbkYsT0FBTyxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQVNqRTtJQUF1QyxxQ0FBZTtJQW9CbEQsMkJBQW1CLFFBQW1CLEVBQzNCLFVBQTZCLEVBQzdCLGFBQTJCLEVBQzNCLE1BQWlCLEVBQ2pCLFdBQXdCLEVBQ3hCLE1BQW9CLEVBQ3BCLFlBQTRCLEVBQzVCLFNBQXVCLEVBQ3ZCLFlBQTRCO1FBUnZDLFlBU0ksaUJBQU8sU0FFVjtRQVhrQixjQUFRLEdBQVIsUUFB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WUFBWSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxLQUFLLEVBQUUsaUNBQWlDLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ3BKLElBQUksQ0FBQyxVQUFVLEdBQUcsRUFBRSxDQUFBO1FBQ3BCLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQTtJQUNwQixDQUFDOztnQkEvQjRCLFNBQVM7Z0JBQ2YsaUJBQWlCO2dCQUNkLFlBQVk7Z0JBQ25CLFNBQVM7Z0JBQ0osV0FBVztnQkFDaEIsWUFBWTtnQkFDTixjQUFjO2dCQUNqQixZQUFZO2dCQUNULGNBQWM7O0lBMUI5QjtRQUFSLEtBQUssRUFBRTtpRUFBb0I7SUFDbkI7UUFBUixLQUFLLEVBQUU7cURBQWU7SUFDZDtRQUFSLEtBQUssRUFBRTsyREFBa0I7SUFDakI7UUFBUixLQUFLLEVBQUU7c0RBQVM7SUFDUjtRQUFSLEtBQUssRUFBRTt3REFBa0I7SUFDaEI7UUFBVCxNQUFNLEVBQUU7b0RBQTRCO0lBQ2Q7UUFBdEIsU0FBUyxDQUFDLFVBQVUsQ0FBQzt1REFBc0M7SUFSbkQsaUJBQWlCO1FBTjdCLFNBQVMsQ0FBQztZQUNQLFFBQVEsRUFBRSxlQUFlO1lBQ3pCLHNoQ0FBdUM7WUFFdkMsU0FBUyxFQUFFLENBQUMsY0FBYyxDQUFDOztTQUM5QixDQUFDO09BQ1csaUJBQWlCLENBbUg3QjtJQUFELHdCQUFDO0NBQUEsQUFuSEQsQ0FBdUMsZUFBZSxHQW1IckQ7U0FuSFksaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPdXRwdXQsIE9uSW5pdCwgVmlld0NoaWxkLCBFbGVtZW50UmVmLCBJbnB1dCwgUmVuZGVyZXIyLCBJbmplY3QsIE9uQ2hhbmdlcywgRXZlbnRFbWl0dGVyLCBPbkRlc3Ryb3ksIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBOZ0Zvcm0gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBDb21wb25lbnRIZWxwZXIgfSBmcm9tIFwiLi4vLi4vLi4vY2xhc3Nlcy9jb21wb25lbnQtaGVscGVyXCI7XG5pbXBvcnQgeyBDb25uZWN0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2FwaS9jb25uZWN0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgVG9hc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvdG9hc3Quc2VydmljZSc7XG5pbXBvcnQgeyBDb25zdGFudHMgfSBmcm9tICcuLi8uLi8uLi9jb3JlLmNvbnN0cyc7XG5pbXBvcnQgeyBDYXJ0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2NhcnQuc2VydmljZSc7XG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIsIFNhZmVSZXNvdXJjZVVybCwgU2FmZVVybCB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHsgQnNNb2RhbFJlZiwgQnNNb2RhbFNlcnZpY2UgfSBmcm9tICduZ3gtYm9vdHN0cmFwL21vZGFsJztcbmRlY2xhcmUgdmFyICQgOiBhbnkgXG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYXBwLW1vYmJleC1lYycsXG4gICAgdGVtcGxhdGVVcmw6ICdtb2JiZXgtZWMuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWydtb2JiZXgtZWMuY29tcG9uZW50LnNjc3MnXSxcbiAgICBwcm92aWRlcnM6IFtCc01vZGFsU2VydmljZV1cbn0pXG5leHBvcnQgY2xhc3MgTW9iYmV4RWNDb21wb25lbnQgZXh0ZW5kcyBDb21wb25lbnRIZWxwZXIgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgT25DaGFuZ2VzIHtcblxuICAgIEBJbnB1dCgpIHBheW1lbnRTZXJ2aWNlSW5zdDtcbiAgICBASW5wdXQoKSBtZXRob2QgPSBudWxsO1xuICAgIEBJbnB1dCgpIHRvdGFsX2Ftb3VudCA9IDA7XG4gICAgQElucHV0KCkgYWxsRGF0YTtcbiAgICBASW5wdXQoKSB1c2VyX2RhdGEgPSBudWxsO1xuICAgIEBPdXRwdXQoKSByZWFkeSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAVmlld0NoaWxkKCd0ZW1wbGF0ZScpIHByb3RlY3RlZCB0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcbiAgICBwcm90ZWN0ZWQgbW9kYWxSZWY6IEJzTW9kYWxSZWYgfCBudWxsO1xuICAgIHByb3RlY3RlZCBkYXRhTW9iYmV4O1xuXG4gICAgcHVibGljIGxvYWRpbmcgPSBmYWxzZTtcbiAgICBwdWJsaWMgaXNEb2JsZUF1dGggPSBmYWxzZTtcbiAgICBwdWJsaWMgdXJscyA9IFtdO1xuICAgIHB1YmxpYyB1cmw7XG4gICAgcHVibGljIGNsb3NlTW9kYWwgPSAnJ1xuICAgIHB1YmxpYyB2ZW50YW5hXG4gICAgcHJvdGVjdGVkIGRhdGFSZWRpcmVjdCA9ICgpID0+IHRoaXMuY29uc3RzLmdldFVybEJhc2UoKSArJ3Nob3AtYXBpLycgKyB0aGlzLmNvbnN0cy5nZXRDaGFubmVsKCkgKyAnL3JlZHN5cy9yZWRpcmVjdC8nICsgdGhpcy5jYXJ0U2VydmljZS5jYXJ0X3Rva2VuICsgJy9wcm9jZXNzLXBheW1lbnQnO1xuXG4gICAgY29uc3RydWN0b3IocHVibGljIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgICAgIHB1YmxpYyBjb25uZWN0aW9uOiBDb25uZWN0aW9uU2VydmljZSxcbiAgICAgICAgcHVibGljIHRvYXN0clNlcnZpY2U6IFRvYXN0U2VydmljZSxcbiAgICAgICAgcHVibGljIGNvbnN0czogQ29uc3RhbnRzLFxuICAgICAgICBwdWJsaWMgY2FydFNlcnZpY2U6IENhcnRTZXJ2aWNlLFxuICAgICAgICBwdWJsaWMgdG9hc3RyOiBUb2FzdFNlcnZpY2UsXG4gICAgICAgIHB1YmxpYyBhY3RpdmVkUm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgICAgICBwdWJsaWMgc2FuaXRpemVyOiBEb21TYW5pdGl6ZXIsXG4gICAgICAgIHB1YmxpYyBtb2RhbFNlcnZpY2U6IEJzTW9kYWxTZXJ2aWNlKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuZWNPbkNvbnN0cnVjdCgpXG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuZ2V0Q2hlY2tvdXRNb2JiZXgoKVxuICAgICAgICB0aGlzLmVjT25Jbml0KClcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgLy8gY29uc29sZS5sb2coXCJTRSBERVNUUk9aQVwiKTtcbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcygpIHtcbiAgICAgICAgLy8gY29uc29sZS5sb2coXCJTRSBDQU1CSU9cIik7XG4gICAgfVxuXG4gICAgb3Blbk1vZGFsKHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+KSB7XG4gICAgICAgIHRoaXMuY2xlYXJTdG9yYWdlU3RhdGUoKVxuICAgICAgICB0aGlzLm1vZGFsUmVmID0gdGhpcy5tb2RhbFNlcnZpY2Uuc2hvdyh0ZW1wbGF0ZSwgeyBjbGFzczogJ21vZGFsLWxnIG1vZGFsLWRpYWxvZy1jZW50ZXJlZCAnLCBrZXlib2FyZDogZmFsc2UsIGJhY2tkcm9wOiAnc3RhdGljJywgYW5pbWF0ZWQ6IHRydWUgfSk7XG4gICAgICAgIHRoaXMuY2xvc2VNb2RhbCA9ICcnXG4gICAgICAgIHRoaXMuY2FsbFN0YXRlKClcbiAgICB9XG5cbiAgICBjbGVhclN0b3JhZ2VTdGF0ZSA9ICgpID0+IHtcbiAgICAgICAgc2Vzc2lvblN0b3JhZ2UucmVtb3ZlSXRlbSgnc3RhdGUnKVxuICAgICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgnc3RhdGUnKVxuICAgIH1cblxuICAgIGNsaWNrQ2xvc2UgPSAoKSA9PiB7XG4gICAgICAgIHRoaXMuY2xvc2VNb2RhbCA9ICdjYW5jZWwnXG4gICAgICAgIHRoaXMubW9kYWxSZWYuaGlkZSgpXG4gICAgICAgIHRoaXMucHJvY2Vzc0Vycm9yKCdTZSBjYW5jZWxvIGVsIHBhZ28gY29uIG1vYmJleCcpXG4gICAgfVxuXG5cbiAgICBjYWxsU3RhdGUgPSAoKSA9PiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBsZXQgc3RhdGUgPSB0aGlzLmNsb3NlTW9kYWwgIT0gJycgPyB0aGlzLmNsb3NlTW9kYWwgOiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnc3RhdGUnKVxuICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZVxuICAgICAgICAgICAgc3RhdGUgJiYgY29uc29sZS5sb2coc3RhdGUpO1xuICAgICAgICAgICAgaWYgKHN0YXRlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2VcbiAgICAgICAgICAgICAgICBzZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKCdzdGF0ZScpXG4gICAgICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oJ3N0YXRlJylcbiAgICAgICAgICAgICAgICBpZiAoc3RhdGUgPT0gJ3N1Y2Nlc3MnKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVhZHkuZW1pdCh0cnVlKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoc3RhdGUgPT0gJ2NhbmNlbCcpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChzdGF0ZSA9PSAnZmFpbHVyZScpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9jZXNzRXJyb3IoJycpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMubW9kYWxSZWYuaGlkZSgpXG4gICAgICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmNhbGxTdGF0ZSgpXG4gICAgICAgICAgICB9LCA1MDAwKTtcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xuICAgICAgICAgICAgXG4gICAgICAgIH0gICBcbiAgICB9XG5cbiAgICBwcm9jZXNzRXJyb3IgPSAoZXJyKSA9PiB7XG4gICAgICAgIHRoaXMudG9hc3RyU2VydmljZS5zaG93KGVyciAhPSAnJyA/IGVyciA6ICdwYXltZW50LWVycm9yJyk7XG4gICAgICAgIGNvbnNvbGUubG9nKFwiRVJST1IgRU5WSU8gQkFDSyAgXCIsIGVycik7XG4gICAgfVxuXG4gICAgZ2V0Q2hlY2tvdXRNb2JiZXggPSAoKSA9PiB7XG4gICAgICAgIHRoaXMubG9hZGluZyA9IHRydWVcbiAgICAgICAgdGhpcy5wYXltZW50U2VydmljZUluc3QuZ2V0Q2hlY2tvdXRNb2JiZXgodGhpcy5hbGxEYXRhKS50aGVuKFxuICAgICAgICAgICAgcmVzID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmRhdGFNb2JiZXggPSByZXM7XG4gICAgICAgICAgICAgICAgdGhpcy51cmwgPSByZXM/LmRhdGE/LnVybCAmJiB0aGlzLnNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0UmVzb3VyY2VVcmwocmVzPy5kYXRhPy51cmwpXG4gICAgICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2VcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBlcnIgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMucHJvY2Vzc0Vycm9yKCdvcGVyYXRpb24tZXJyb3InKVxuICAgICAgICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlXG4gICAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgfVxuXG59XG5cbiJdfQ==
|
|
345
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9iYmV4LWVjLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25nLWVhc3ljb21tZXJjZS8iLCJzb3VyY2VzIjpbImxpYi9lYy1jb21wb25lbnQvd2lkZ2V0cy1lYy9tb2JiZXgtZWMvbW9iYmV4LWVjLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDcEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzVELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQVM3RDtJQUF1QyxxQ0FBZTtJQXNCbEQsMkJBQ1csYUFBMkIsRUFDM0IsV0FBd0I7UUFGbkMsWUFJSSxpQkFBTyxTQUVWO1FBTFUsbUJBQWEsR0FBYixhQUFhLENBQWM7UUFDM0IsaUJBQVcsR0FBWCxXQUFXLENBQWE7UUFyQjFCLFlBQU0sR0FBRyxJQUFJLENBQUM7UUFDZCxrQkFBWSxHQUFHLENBQUMsQ0FBQztRQUVqQixlQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ2hCLFdBQUssR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRTlCLGFBQU8sR0FBRyxJQUFJLENBQUM7UUFDZixnQkFBVSxHQUFHLEtBQUssQ0FBQztRQUNuQixTQUFHLEdBQWtCLElBQUksQ0FBQztRQUV6QixrQkFBWSxHQUFRLElBQUksQ0FBQztRQUN6QixXQUFLLEdBQWtCLElBQUksQ0FBQztRQUM1QixlQUFTLEdBQVEsSUFBSSxDQUFDO1FBQ3RCLGVBQVMsR0FBRyxDQUFDLENBQUM7UUFDZCxjQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLGlCQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLFFBQUUsR0FB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Q0wsQ0FBQztJQUVPLDZDQUFpQixHQUF6QixVQUEwQixHQUFXO1FBQ2pDLElBQUk7WUFDQSxZQUFZLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQ2hDO1FBQUMsV0FBTTtZQUNKLGlCQUFpQjtTQUNwQjtJQUNMLENBQUM7SUFFTywwQ0FBYyxHQUF0QixVQUF1QixHQUFXLEVBQUUsS0FBYTtRQUM3QyxJQUFJO1lBQ0EsWUFBWSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7U0FDcEM7UUFBQyxXQUFNO1lBQ0osaUJBQWlCO1NBQ3BCO0lBQ0wsQ0FBQzs7Z0JBL1B5QixZQUFZO2dCQUNkLFdBQVc7O0lBdEIxQjtRQUFSLEtBQUssRUFBRTtpRUFBb0I7SUFDbkI7UUFBUixLQUFLLEVBQUU7cURBQWU7SUFDZDtRQUFSLEtBQUssRUFBRTsyREFBa0I7SUFDakI7UUFBUixLQUFLLEVBQUU7c0RBQVM7SUFDUjtRQUFSLEtBQUssRUFBRTt3REFBa0I7SUFDaEI7UUFBVCxNQUFNLEVBQUU7b0RBQTRCO0lBUDVCLGlCQUFpQjtRQUw3QixTQUFTLENBQUM7WUFDUCxRQUFRLEVBQUUsZUFBZTtZQUN6Qix3MURBQXVDOztTQUUxQyxDQUFDO09BQ1csaUJBQWlCLENBdVI3QjtJQUFELHdCQUFDO0NBQUEsQUF2UkQsQ0FBdUMsZUFBZSxHQXVSckQ7U0F2UlksaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21wb25lbnRIZWxwZXIgfSBmcm9tICcuLi8uLi8uLi9jbGFzc2VzL2NvbXBvbmVudC1oZWxwZXInO1xuaW1wb3J0IHsgVG9hc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvdG9hc3Quc2VydmljZSc7XG5pbXBvcnQgeyBDYXJ0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2NhcnQuc2VydmljZSc7XG5cbnR5cGUgUGF5bWVudFN0YXRlID0gJ3N1Y2Nlc3MnIHwgJ3BlbmRpbmcnIHwgJ2ZhaWx1cmUnIHwgJ2NhbmNlbCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYXBwLW1vYmJleC1lYycsXG4gICAgdGVtcGxhdGVVcmw6ICdtb2JiZXgtZWMuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWydtb2JiZXgtZWMuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBNb2JiZXhFY0NvbXBvbmVudCBleHRlbmRzIENvbXBvbmVudEhlbHBlciBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICAgIEBJbnB1dCgpIHBheW1lbnRTZXJ2aWNlSW5zdDtcbiAgICBASW5wdXQoKSBtZXRob2QgPSBudWxsO1xuICAgIEBJbnB1dCgpIHRvdGFsX2Ftb3VudCA9IDA7XG4gICAgQElucHV0KCkgYWxsRGF0YTtcbiAgICBASW5wdXQoKSB1c2VyX2RhdGEgPSBudWxsO1xuICAgIEBPdXRwdXQoKSByZWFkeSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIHB1YmxpYyBsb2FkaW5nID0gdHJ1ZTtcbiAgICBwdWJsaWMgcHJvY2Vzc2luZyA9IGZhbHNlO1xuICAgIHB1YmxpYyB1cmw6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gICAgcHJpdmF0ZSBjaGVja291dERhdGE6IGFueSA9IG51bGw7XG4gICAgcHJpdmF0ZSBwb3B1cDogV2luZG93IHwgbnVsbCA9IG51bGw7XG4gICAgcHJpdmF0ZSBwb2xsVGltZXI6IGFueSA9IG51bGw7XG4gICAgcHJpdmF0ZSBzdGFydGVkQXQgPSAwO1xuICAgIHByaXZhdGUgZmluaXNoZWQgPSBmYWxzZTtcbiAgICBwcml2YXRlIGNoZWNrb3V0S2V5ID0gJyc7XG4gICAgcHJpdmF0ZSBiYzogQnJvYWRjYXN0Q2hhbm5lbCB8IG51bGwgPSBudWxsO1xuICAgIHByaXZhdGUgY2hlY2tvdXRSZXF1ZXN0SW5GbGlnaHQgPSBmYWxzZTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwdWJsaWMgdG9hc3RyU2VydmljZTogVG9hc3RTZXJ2aWNlLFxuICAgICAgICBwdWJsaWMgY2FydFNlcnZpY2U6IENhcnRTZXJ2aWNlLFxuICAgICkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLmVjT25Db25zdHJ1Y3QoKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignc3RvcmFnZScsIHRoaXMub25TdG9yYWdlIGFzIGFueSk7XG4gICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIHRoaXMub25NZXNzYWdlIGFzIGFueSk7XG4gICAgICAgICAgICBpZiAoKHdpbmRvdyBhcyBhbnkpLkJyb2FkY2FzdENoYW5uZWwpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmJjID0gbmV3IEJyb2FkY2FzdENoYW5uZWwoJ21vYmJleF9wYXltZW50Jyk7XG4gICAgICAgICAgICAgICAgdGhpcy5iYy5vbm1lc3NhZ2UgPSAoZXZlbnQ6IE1lc3NhZ2VFdmVudCkgPT4gdGhpcy5vbkJyb2FkY2FzdE1lc3NhZ2UoZXZlbnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMubG9hZENoZWNrb3V0KCk7XG4gICAgICAgIHRoaXMuZWNPbkluaXQoKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcignc3RvcmFnZScsIHRoaXMub25TdG9yYWdlIGFzIGFueSk7XG4gICAgICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIHRoaXMub25NZXNzYWdlIGFzIGFueSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuYmMpIHtcbiAgICAgICAgICAgIHRyeSB7IHRoaXMuYmMuY2xvc2UoKTsgfSBjYXRjaCB7XG4gICAgICAgICAgICAgICAgLy8gTm90aGluZyB0byBkby5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuYmMgPSBudWxsO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc3RvcFBvbGxpbmcoKTtcbiAgICAgICAgdGhpcy5jbG9zZVBvcHVwKCk7XG4gICAgfVxuXG4gICAgb3BlbkNoZWNrb3V0ID0gKCkgPT4ge1xuICAgICAgICBpZiAoIXRoaXMudXJsIHx8IHRoaXMucHJvY2Vzc2luZyB8fCB0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJykgcmV0dXJuO1xuXG4gICAgICAgIHRoaXMuY2xlYXJTdGF0ZUtleXMoKTtcbiAgICAgICAgdGhpcy5maW5pc2hlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLnByb2Nlc3NpbmcgPSB0cnVlO1xuICAgICAgICB0aGlzLnN0YXJ0ZWRBdCA9IERhdGUubm93KCk7XG5cbiAgICAgICAgdGhpcy5wb3B1cCA9IHdpbmRvdy5vcGVuKHRoaXMudXJsLCAnX2JsYW5rJyk7XG5cbiAgICAgICAgaWYgKCF0aGlzLnBvcHVwIHx8IHRoaXMucG9wdXAuY2xvc2VkKSB7XG4gICAgICAgICAgICB0aGlzLnByb2Nlc3NpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMudG9hc3RyU2VydmljZS5zaG93KCdObyBzZSBwdWRvIGFicmlyIGxhIHBhc2FyZWxhIGRlIHBhZ28uIFZlcmlmaXF1ZSBxdWUgc3UgbmF2ZWdhZG9yIHBlcm1pdGEgbnVldmFzIHBlc3Rhw7Fhcy4nKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICB0aGlzLnBvcHVwLm9wZW5lciA9IG51bGw7XG4gICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgICAgLy8gTm90aGluZyB0byBkby5cbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuc3RhcnRQb2xsaW5nKCk7XG4gICAgfVxuXG4gICAgY2FuY2VsQ2hlY2tvdXQgPSAoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLmZpbmlzaGVkKSByZXR1cm47XG4gICAgICAgIHRoaXMuZmluaXNoV2l0aFN0YXRlKCdjYW5jZWwnLCB0cnVlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldENoZWNrb3V0TW9iYmV4ID0gKCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5jaGVja291dFJlcXVlc3RJbkZsaWdodCkgcmV0dXJuO1xuICAgICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuICAgICAgICB0aGlzLmNoZWNrb3V0UmVxdWVzdEluRmxpZ2h0ID0gdHJ1ZTtcbiAgICAgICAgY29uc3QgcGF5bG9hZCA9IHRoaXMudXNlcl9kYXRhIHx8IHRoaXMuYWxsRGF0YSB8fCB7fTtcbiAgICAgICAgdGhpcy5wYXltZW50U2VydmljZUluc3QuZ2V0Q2hlY2tvdXRNb2JiZXgocGF5bG9hZCkudGhlbihcbiAgICAgICAgICAgIHJlcyA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5jaGVja291dERhdGEgPSByZXMgfHwgbnVsbDtcbiAgICAgICAgICAgICAgICB0aGlzLmNoZWNrb3V0S2V5ID0gU3RyaW5nKHJlcz8uZGF0YT8uaWQgfHwgdGhpcy5jYXJ0U2VydmljZS5jYXJ0X3Rva2VuIHx8ICcnKTtcbiAgICAgICAgICAgICAgICB0aGlzLnVybCA9IHJlcz8uZGF0YT8udXJsIHx8IG51bGw7XG4gICAgICAgICAgICAgICAgdGhpcy5zYWZlU2V0U3RvcmFnZSgnbW9iYmV4OmNoZWNrb3V0LWlkJywgdGhpcy5jaGVja291dEtleSk7XG4gICAgICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgdGhpcy5jaGVja291dFJlcXVlc3RJbkZsaWdodCA9IGZhbHNlO1xuXG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLnVybCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnByb2Nlc3NFcnJvcignb3BlcmF0aW9uLWVycm9yJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB0aGlzLmNoZWNrb3V0UmVxdWVzdEluRmxpZ2h0ID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgdGhpcy5wcm9jZXNzRXJyb3IoJ29wZXJhdGlvbi1lcnJvcicpO1xuICAgICAgICAgICAgfVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgbG9hZENoZWNrb3V0KCkge1xuICAgICAgICBpZiAoIXRoaXMucGF5bWVudFNlcnZpY2VJbnN0IHx8ICF0aGlzLm1ldGhvZCkgcmV0dXJuO1xuICAgICAgICBpZiAodGhpcy51cmwgJiYgIXRoaXMubG9hZGluZykgcmV0dXJuO1xuICAgICAgICB0aGlzLmdldENoZWNrb3V0TW9iYmV4KCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdGFydFBvbGxpbmcoKSB7XG4gICAgICAgIHRoaXMuc3RvcFBvbGxpbmcoKTtcblxuICAgICAgICB0aGlzLnBvbGxUaW1lciA9IHNldEludGVydmFsKCgpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLmZpbmlzaGVkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdG9wUG9sbGluZygpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3Qgc3RhdGUgPSB0aGlzLnJlYWRTdGF0ZSgpO1xuICAgICAgICAgICAgaWYgKHN0YXRlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5maW5pc2hXaXRoU3RhdGUoc3RhdGUsIHRydWUpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHRoaXMucG9wdXA/LmNsb3NlZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuZmluaXNoV2l0aFN0YXRlKCdjYW5jZWwnLCB0cnVlKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IHJhd1RpbWVvdXRNaW51dGVzID0gTnVtYmVyKHRoaXMuY2hlY2tvdXREYXRhPy5kYXRhPy50aW1lb3V0ID8/IHRoaXMuY2hlY2tvdXREYXRhPy50aW1lb3V0ID8/IDYwKTtcbiAgICAgICAgICAgIGNvbnN0IHRpbWVvdXRNaW51dGVzID0gTnVtYmVyLmlzRmluaXRlKHJhd1RpbWVvdXRNaW51dGVzKSAmJiByYXdUaW1lb3V0TWludXRlcyA+IDAgPyByYXdUaW1lb3V0TWludXRlcyA6IDYwO1xuICAgICAgICAgICAgY29uc3QgdGltZW91dE1zID0gTWF0aC5tYXgoNSwgdGltZW91dE1pbnV0ZXMgKyAxKSAqIDYwICogMTAwMDtcbiAgICAgICAgICAgIGlmIChEYXRlLm5vdygpIC0gdGhpcy5zdGFydGVkQXQgPiB0aW1lb3V0TXMpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmZpbmlzaFdpdGhTdGF0ZSgnZmFpbHVyZScsIHRydWUsICdUaWVtcG8gZGUgZXNwZXJhIGFnb3RhZG8gYWwgcHJvY2VzYXIgZWwgcGFnbyBjb24gTW9iYmV4LicpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LCAxMDAwKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG9uU3RvcmFnZSA9IChldmVudDogU3RvcmFnZUV2ZW50KSA9PiB7XG4gICAgICAgIGlmICghZXZlbnQ/LmtleSB8fCB0aGlzLmZpbmlzaGVkKSByZXR1cm47XG4gICAgICAgIGlmICghdGhpcy5nZXRTdGF0ZUtleXMoKS5pbmNsdWRlcyhldmVudC5rZXkpKSByZXR1cm47XG4gICAgICAgIGNvbnN0IHN0YXRlID0gdGhpcy5ub3JtYWxpemVTdGF0ZShldmVudC5uZXdWYWx1ZSk7XG4gICAgICAgIGlmIChzdGF0ZSkge1xuICAgICAgICAgICAgdGhpcy5maW5pc2hXaXRoU3RhdGUoc3RhdGUsIHRydWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvbk1lc3NhZ2UgPSAoZXZlbnQ6IE1lc3NhZ2VFdmVudCkgPT4ge1xuICAgICAgICB0aGlzLm9uQnJvYWRjYXN0TWVzc2FnZShldmVudCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvbkJyb2FkY2FzdE1lc3NhZ2UoZXZlbnQ6IE1lc3NhZ2VFdmVudCkge1xuICAgICAgICBjb25zdCBwYXlsb2FkID0gZXZlbnQ/LmRhdGE7XG4gICAgICAgIGlmICghcGF5bG9hZCB8fCBwYXlsb2FkLnR5cGUgIT09ICdtb2JiZXg6c3RhdGUnIHx8IHRoaXMuZmluaXNoZWQpIHJldHVybjtcbiAgICAgICAgaWYgKHRoaXMuY2hlY2tvdXRLZXkgJiYgcGF5bG9hZC5jaGVja291dEtleSAmJiBwYXlsb2FkLmNoZWNrb3V0S2V5ICE9PSB0aGlzLmNoZWNrb3V0S2V5KSByZXR1cm47XG4gICAgICAgIGNvbnN0IHN0YXRlID0gdGhpcy5ub3JtYWxpemVTdGF0ZShwYXlsb2FkLnN0YXRlKTtcbiAgICAgICAgaWYgKHN0YXRlKSB7XG4gICAgICAgICAgICB0aGlzLmZpbmlzaFdpdGhTdGF0ZShzdGF0ZSwgdHJ1ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGZpbmlzaFdpdGhTdGF0ZShzdGF0ZTogUGF5bWVudFN0YXRlLCBjbG9zZVBvcHVwID0gZmFsc2UsIGN1c3RvbU1lc3NhZ2UgPSAnJykge1xuICAgICAgICBpZiAodGhpcy5maW5pc2hlZCkgcmV0dXJuO1xuICAgICAgICB0aGlzLmZpbmlzaGVkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5wcm9jZXNzaW5nID0gZmFsc2U7XG4gICAgICAgIHRoaXMuc3RvcFBvbGxpbmcoKTtcblxuICAgICAgICBpZiAoY2xvc2VQb3B1cCkge1xuICAgICAgICAgICAgdGhpcy5jbG9zZVBvcHVwKCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmNsZWFyU3RhdGVLZXlzKCk7XG5cbiAgICAgICAgaWYgKHN0YXRlID09PSAnc3VjY2VzcycgfHwgc3RhdGUgPT09ICdwZW5kaW5nJykge1xuICAgICAgICAgICAgdGhpcy5yZWFkeS5lbWl0KHRydWUpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5wcm9jZXNzRXJyb3IoY3VzdG9tTWVzc2FnZSB8fCAoc3RhdGUgPT09ICdjYW5jZWwnID8gJ1NlIGNhbmNlbMOzIGVsIHBhZ28gY29uIE1vYmJleCcgOiAnJykpO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVhZFN0YXRlKCk6IFBheW1lbnRTdGF0ZSB8IG51bGwge1xuICAgICAgICBjb25zdCBrZXlzID0gdGhpcy5nZXRTdGF0ZUtleXMoKTtcblxuICAgICAgICBmb3IgKGNvbnN0IGtleSBvZiBrZXlzKSB7XG4gICAgICAgICAgICBjb25zdCB2YWx1ZSA9IHRoaXMuc2FmZUdldFN0b3JhZ2Uoa2V5KTtcbiAgICAgICAgICAgIGNvbnN0IG5vcm1hbGl6ZWQgPSB0aGlzLm5vcm1hbGl6ZVN0YXRlKHZhbHVlKTtcbiAgICAgICAgICAgIGlmIChub3JtYWxpemVkKSByZXR1cm4gbm9ybWFsaXplZDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHByaXZhdGUgbm9ybWFsaXplU3RhdGUodmFsdWU6IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQpOiBQYXltZW50U3RhdGUgfCBudWxsIHtcbiAgICAgICAgY29uc3QgcmF3ID0gU3RyaW5nKHZhbHVlIHx8ICcnKS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICBpZiAoIXJhdykgcmV0dXJuIG51bGw7XG4gICAgICAgIGlmIChyYXcgPT09ICcyMDAnIHx8IHJhdyA9PT0gJ29rJyB8fCByYXcgPT09ICdzdWNjZXNzJykgcmV0dXJuICdzdWNjZXNzJztcbiAgICAgICAgaWYgKHJhdyA9PT0gJ3BlbmRpbmcnIHx8IHJhdyA9PT0gJ2luX3Byb2Nlc3MnIHx8IHJhdyA9PT0gJ2luX3JldmlldycgfHwgcmF3ID09PSAnY2hhbGxlbmdlJykgcmV0dXJuICdwZW5kaW5nJztcbiAgICAgICAgaWYgKHJhdyA9PT0gJ2NhbmNlbCcgfHwgcmF3ID09PSAnMCcgfHwgcmF3ID09PSAnbm9uZScpIHJldHVybiAnY2FuY2VsJztcbiAgICAgICAgaWYgKHJhdyA9PT0gJ2ZhaWx1cmUnIHx8IHJhdyA9PT0gJ2Vycm9yJyB8fCByYXcgPT09ICdleHBpcmVkJyB8fCByYXcgPT09ICc0MDEnKSByZXR1cm4gJ2ZhaWx1cmUnO1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFN0YXRlS2V5cygpOiBzdHJpbmdbXSB7XG4gICAgICAgIGNvbnN0IGtleXMgPSBbJ3N0YXRlJ107XG4gICAgICAgIGlmICh0aGlzLmNoZWNrb3V0S2V5KSB7XG4gICAgICAgICAgICBrZXlzLnVuc2hpZnQoYG1vYmJleDpzdGF0ZToke3RoaXMuY2hlY2tvdXRLZXl9YCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGtleXM7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjbGVhclN0b3JhZ2VTdGF0ZSA9ICgpID0+IHtcbiAgICAgICAgc2Vzc2lvblN0b3JhZ2UucmVtb3ZlSXRlbSgnc3RhdGUnKTtcbiAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oJ3N0YXRlJyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjbGVhclN0YXRlS2V5cygpIHtcbiAgICAgICAgdGhpcy5jbGVhclN0b3JhZ2VTdGF0ZSgpO1xuICAgICAgICBpZiAodGhpcy5jaGVja291dEtleSkge1xuICAgICAgICAgICAgdGhpcy5zYWZlUmVtb3ZlU3RvcmFnZShgbW9iYmV4OnN0YXRlOiR7dGhpcy5jaGVja291dEtleX1gKTtcbiAgICAgICAgICAgIHRoaXMuc2FmZVJlbW92ZVN0b3JhZ2UoJ21vYmJleDpjaGVja291dC1pZCcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBwcm9jZXNzRXJyb3IgPSAoZXJyKSA9PiB7XG4gICAgICAgIHRoaXMudG9hc3RyU2VydmljZS5zaG93KGVyciAhPT0gJycgPyBlcnIgOiAncGF5bWVudC1lcnJvcicpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc3RvcFBvbGxpbmcoKSB7XG4gICAgICAgIGlmICh0aGlzLnBvbGxUaW1lcikge1xuICAgICAgICAgICAgY2xlYXJJbnRlcnZhbCh0aGlzLnBvbGxUaW1lcik7XG4gICAgICAgICAgICB0aGlzLnBvbGxUaW1lciA9IG51bGw7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGNsb3NlUG9wdXAoKSB7XG4gICAgICAgIGlmICghdGhpcy5wb3B1cCkgcmV0dXJuO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgaWYgKCF0aGlzLnBvcHVwLmNsb3NlZCkgdGhpcy5wb3B1cC5jbG9zZSgpO1xuICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICAgIC8vIE5vdGhpbmcgdG8gZG8uXG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5wb3B1cCA9IG51bGw7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzYWZlR2V0U3RvcmFnZShrZXk6IHN0cmluZyk6IHN0cmluZyB8IG51bGwge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgcmV0dXJuIGxvY2FsU3RvcmFnZS5nZXRJdGVtKGtleSk7XG4gICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHNhZmVSZW1vdmVTdG9yYWdlKGtleTogc3RyaW5nKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShrZXkpO1xuICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICAgIC8vIE5vdGhpbmcgdG8gZG8uXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHNhZmVTZXRTdG9yYWdlKGtleTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShrZXksIHZhbHVlKTtcbiAgICAgICAgfSBjYXRjaCB7XG4gICAgICAgICAgICAvLyBOb3RoaW5nIHRvIGRvLlxuICAgICAgICB9XG4gICAgfVxufVxuIl19
|