@getopenpay/openpay-js-react 0.5.13 → 0.5.15
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/dist/.tsbuildinfo +1 -1
- package/dist/{ExportResult-B-YLKMaU-DKI4wi_s.js → ExportResult-BacsqwKA-wgTHEn_9.js} +1 -1
- package/dist/Resource-C_JyOUi0-DCzIGxs8.js +176 -0
- package/dist/SimpleSpanProcessor-DsaymkqA-CtD-GEtk.js +910 -0
- package/dist/_commonjsHelpers-CdLE1o9f-ChUIkuR8.js +30 -0
- package/dist/detect-resources-WIF4Hgfd-BW23wWaP.js +862 -0
- package/dist/diag-api-DbLQG6Cy-7Q64bfX9.js +6 -0
- package/dist/index-0_SuCli2-B5_tBBpx.js +430 -0
- package/dist/index-3-QFb-PY-DJRVxNSq.js +127 -0
- package/dist/index-B2hBQXxN-CgWoAORq.js +6 -0
- package/dist/index-BJ3-FtuX-DlTusXVc.js +28 -0
- package/dist/index-CDEhufnp-CDtO0j1l.js +18 -0
- package/dist/index-CV8wT6Y2-Bh-lYVds.js +6718 -0
- package/dist/index-DIoaqP4_-Cs74t_lP.js +1012 -0
- package/dist/index-DJhVQsLX-BiIZL-r4.js +147 -0
- package/dist/index-Din5I5pT-Be1fPmsi.js +1613 -0
- package/dist/index-nPWqtn7T.js +9357 -0
- package/dist/index.d.ts +27 -3
- package/dist/index.js +8 -8
- package/dist/lifecycle-D1BdEbZs-BvuQx__u.js +119 -0
- package/dist/{metrics-api-CjClvcGq-6EkvC0Vu.js → metrics-api-B_K2nQRV-Be59r2AI.js} +13 -13
- package/dist/sdk-info-ChuKu8zW-BkU0NT3O.js +285 -0
- package/dist/suppress-tracing-i166ZvAf-D2QqEK4Q.js +17 -0
- package/dist/url-D2-xNTDs-BLiqCwPG.js +798 -0
- package/dist/utils-BFjwGsZE-dHVj8huE.js +101 -0
- package/dist/utils-Blz-BInC-461m4Gx4.js +270 -0
- package/dist/utils-De78ey-v-ChjePi4C.js +12 -0
- package/package.json +5 -5
- package/dist/Resource-DU8lz5nK-f9bWvnAX.js +0 -176
- package/dist/SimpleSpanProcessor-D4o7GVOy-DpCPAoD4.js +0 -957
- package/dist/_commonjsHelpers-f76XedMs-N1iNS-iQ.js +0 -25
- package/dist/detect-resources-BdKpXJiP-CfDa2zUe.js +0 -854
- package/dist/diag-api-BULvjcnf-wApEkhEs.js +0 -6
- package/dist/index-4UPqMVqQ-DCeyc23Q.js +0 -130
- package/dist/index-9327QF9E-BXcv-nz4.js +0 -150
- package/dist/index-B8KNl7hX-OTKFOpF1.js +0 -330
- package/dist/index-BijNWqB5-DtEGCFUP.js +0 -19
- package/dist/index-BpGYhZEi-CF7SQTH9.js +0 -431
- package/dist/index-C_jJ8Ras-Am55lrIO.js +0 -830
- package/dist/index-Ckm8dQsp.js +0 -9421
- package/dist/index-DDD9ZmWN-9ZgLQwoL.js +0 -6685
- package/dist/index-DvTM7FZf-Dk988eEW.js +0 -1593
- package/dist/index-fSSJoQdN-Deksu5OU.js +0 -52
- package/dist/lifecycle-BjQ-7GLm-BmSFW2aE.js +0 -119
- package/dist/sdk-info-X2iq-j1R-DlVOaDY0.js +0 -484
- package/dist/url-Df564C3x-vH-pPPEB.js +0 -797
- package/dist/utils-CP06QJVn-vlt5CxXW.js +0 -142
- package/dist/utils-CX5YT7yI-BbTNmH0Z.js +0 -14
- package/dist/utils-DbY0X7Y6-Dm9I3b8L.js +0 -381
|
@@ -1,830 +0,0 @@
|
|
|
1
|
-
import { y as O, f as yt, dG as dt, dI as ht, p as mt, dD as gt, dH as vt, dJ as _t, b as St, dK as bt, dC as Tt, dF as Ot, a as Pt, O as At, dE as Et, W as wt, g as Rt } from "./url-Df564C3x-vH-pPPEB.js";
|
|
2
|
-
import { G as E, k as K, X as w, h as Ct, r as W, O as L } from "./index-Ckm8dQsp.js";
|
|
3
|
-
import { r as d } from "./diag-api-BULvjcnf-wApEkhEs.js";
|
|
4
|
-
import { a as jt, A as G } from "./ExportResult-B-YLKMaU-DKI4wi_s.js";
|
|
5
|
-
import { bo as Nt, bp as It, br as xt, bs as Dt, bt as Mt, bq as kt, bm as Ut, bu as Lt, O as $t, bn as Bt, bv as Ft } from "./sdk-info-X2iq-j1R-DlVOaDY0.js";
|
|
6
|
-
import { l as zt } from "./utils-CX5YT7yI-BbTNmH0Z.js";
|
|
7
|
-
var p;
|
|
8
|
-
(function(t) {
|
|
9
|
-
t[t.NOT_RECORD = 0] = "NOT_RECORD", t[t.RECORD = 1] = "RECORD", t[t.RECORD_AND_SAMPLED = 2] = "RECORD_AND_SAMPLED";
|
|
10
|
-
})(p || (p = {}));
|
|
11
|
-
var I = W("OpenTelemetry SDK Context Key SUPPRESS_TRACING");
|
|
12
|
-
function J(t) {
|
|
13
|
-
return t.setValue(I, !0);
|
|
14
|
-
}
|
|
15
|
-
function Ht(t) {
|
|
16
|
-
return t.deleteValue(I);
|
|
17
|
-
}
|
|
18
|
-
function x(t) {
|
|
19
|
-
return t.getValue(I) === !0;
|
|
20
|
-
}
|
|
21
|
-
var Vt = "=", R = ";", S = ",", P = "baggage", Kt = 180, Wt = 4096, Gt = 8192, Jt = function(t, r) {
|
|
22
|
-
var e = typeof Symbol == "function" && t[Symbol.iterator];
|
|
23
|
-
if (!e) return t;
|
|
24
|
-
var n = e.call(t), o, a = [], i;
|
|
25
|
-
try {
|
|
26
|
-
for (; (r === void 0 || r-- > 0) && !(o = n.next()).done; ) a.push(o.value);
|
|
27
|
-
} catch (u) {
|
|
28
|
-
i = { error: u };
|
|
29
|
-
} finally {
|
|
30
|
-
try {
|
|
31
|
-
o && !o.done && (e = n.return) && e.call(n);
|
|
32
|
-
} finally {
|
|
33
|
-
if (i) throw i.error;
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
return a;
|
|
37
|
-
};
|
|
38
|
-
function X(t) {
|
|
39
|
-
return t.reduce(function(r, e) {
|
|
40
|
-
var n = "" + r + (r !== "" ? S : "") + e;
|
|
41
|
-
return n.length > Gt ? r : n;
|
|
42
|
-
}, "");
|
|
43
|
-
}
|
|
44
|
-
function q(t) {
|
|
45
|
-
return t.getAllEntries().map(function(r) {
|
|
46
|
-
var e = Jt(r, 2), n = e[0], o = e[1], a = encodeURIComponent(n) + "=" + encodeURIComponent(o.value);
|
|
47
|
-
return o.metadata !== void 0 && (a += R + o.metadata.toString()), a;
|
|
48
|
-
});
|
|
49
|
-
}
|
|
50
|
-
function D(t) {
|
|
51
|
-
var r = t.split(R);
|
|
52
|
-
if (!(r.length <= 0)) {
|
|
53
|
-
var e = r.shift();
|
|
54
|
-
if (e) {
|
|
55
|
-
var n = e.indexOf(Vt);
|
|
56
|
-
if (!(n <= 0)) {
|
|
57
|
-
var o = decodeURIComponent(e.substring(0, n).trim()), a = decodeURIComponent(e.substring(n + 1).trim()), i;
|
|
58
|
-
return r.length > 0 && (i = yt(r.join(R))), { key: o, value: a, metadata: i };
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
function Xt(t) {
|
|
64
|
-
return typeof t != "string" || t.length === 0 ? {} : t.split(S).map(function(r) {
|
|
65
|
-
return D(r);
|
|
66
|
-
}).filter(function(r) {
|
|
67
|
-
return r !== void 0 && r.value.length > 0;
|
|
68
|
-
}).reduce(function(r, e) {
|
|
69
|
-
return r[e.key] = e.value, r;
|
|
70
|
-
}, {});
|
|
71
|
-
}
|
|
72
|
-
var qt = (
|
|
73
|
-
/** @class */
|
|
74
|
-
function() {
|
|
75
|
-
function t() {
|
|
76
|
-
}
|
|
77
|
-
return t.prototype.inject = function(r, e, n) {
|
|
78
|
-
var o = O.getBaggage(r);
|
|
79
|
-
if (!(!o || x(r))) {
|
|
80
|
-
var a = q(o).filter(function(u) {
|
|
81
|
-
return u.length <= Wt;
|
|
82
|
-
}).slice(0, Kt), i = X(a);
|
|
83
|
-
i.length > 0 && n.set(e, P, i);
|
|
84
|
-
}
|
|
85
|
-
}, t.prototype.extract = function(r, e, n) {
|
|
86
|
-
var o = n.get(e, P), a = Array.isArray(o) ? o.join(S) : o;
|
|
87
|
-
if (!a)
|
|
88
|
-
return r;
|
|
89
|
-
var i = {};
|
|
90
|
-
if (a.length === 0)
|
|
91
|
-
return r;
|
|
92
|
-
var u = a.split(S);
|
|
93
|
-
return u.forEach(function(l) {
|
|
94
|
-
var c = D(l);
|
|
95
|
-
if (c) {
|
|
96
|
-
var f = { value: c.value };
|
|
97
|
-
c.metadata && (f.metadata = c.metadata), i[c.key] = f;
|
|
98
|
-
}
|
|
99
|
-
}), Object.entries(i).length === 0 ? r : O.setBaggage(r, O.createBaggage(i));
|
|
100
|
-
}, t.prototype.fields = function() {
|
|
101
|
-
return [P];
|
|
102
|
-
}, t;
|
|
103
|
-
}()
|
|
104
|
-
), Qt = (
|
|
105
|
-
/** @class */
|
|
106
|
-
function() {
|
|
107
|
-
function t(r, e) {
|
|
108
|
-
this._monotonicClock = e, this._epochMillis = r.now(), this._performanceMillis = e.now();
|
|
109
|
-
}
|
|
110
|
-
return t.prototype.now = function() {
|
|
111
|
-
var r = this._monotonicClock.now() - this._performanceMillis;
|
|
112
|
-
return this._epochMillis + r;
|
|
113
|
-
}, t;
|
|
114
|
-
}()
|
|
115
|
-
), Q = function(t) {
|
|
116
|
-
var r = typeof Symbol == "function" && Symbol.iterator, e = r && t[r], n = 0;
|
|
117
|
-
if (e) return e.call(t);
|
|
118
|
-
if (t && typeof t.length == "number") return {
|
|
119
|
-
next: function() {
|
|
120
|
-
return t && n >= t.length && (t = void 0), { value: t && t[n++], done: !t };
|
|
121
|
-
}
|
|
122
|
-
};
|
|
123
|
-
throw new TypeError(r ? "Object is not iterable." : "Symbol.iterator is not defined.");
|
|
124
|
-
}, Zt = function(t, r) {
|
|
125
|
-
var e = typeof Symbol == "function" && t[Symbol.iterator];
|
|
126
|
-
if (!e) return t;
|
|
127
|
-
var n = e.call(t), o, a = [], i;
|
|
128
|
-
try {
|
|
129
|
-
for (; (r === void 0 || r-- > 0) && !(o = n.next()).done; ) a.push(o.value);
|
|
130
|
-
} catch (u) {
|
|
131
|
-
i = { error: u };
|
|
132
|
-
} finally {
|
|
133
|
-
try {
|
|
134
|
-
o && !o.done && (e = n.return) && e.call(n);
|
|
135
|
-
} finally {
|
|
136
|
-
if (i) throw i.error;
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
return a;
|
|
140
|
-
};
|
|
141
|
-
function Yt(t) {
|
|
142
|
-
var r, e, n = {};
|
|
143
|
-
if (typeof t != "object" || t == null)
|
|
144
|
-
return n;
|
|
145
|
-
try {
|
|
146
|
-
for (var o = Q(Object.entries(t)), a = o.next(); !a.done; a = o.next()) {
|
|
147
|
-
var i = Zt(a.value, 2), u = i[0], l = i[1];
|
|
148
|
-
if (!Z(u)) {
|
|
149
|
-
d.warn("Invalid attribute key: " + u);
|
|
150
|
-
continue;
|
|
151
|
-
}
|
|
152
|
-
if (!Y(l)) {
|
|
153
|
-
d.warn("Invalid attribute value set for key: " + u);
|
|
154
|
-
continue;
|
|
155
|
-
}
|
|
156
|
-
Array.isArray(l) ? n[u] = l.slice() : n[u] = l;
|
|
157
|
-
}
|
|
158
|
-
} catch (c) {
|
|
159
|
-
r = { error: c };
|
|
160
|
-
} finally {
|
|
161
|
-
try {
|
|
162
|
-
a && !a.done && (e = o.return) && e.call(o);
|
|
163
|
-
} finally {
|
|
164
|
-
if (r) throw r.error;
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
return n;
|
|
168
|
-
}
|
|
169
|
-
function Z(t) {
|
|
170
|
-
return typeof t == "string" && t.length > 0;
|
|
171
|
-
}
|
|
172
|
-
function Y(t) {
|
|
173
|
-
return t == null ? !0 : Array.isArray(t) ? tr(t) : tt(t);
|
|
174
|
-
}
|
|
175
|
-
function tr(t) {
|
|
176
|
-
var r, e, n;
|
|
177
|
-
try {
|
|
178
|
-
for (var o = Q(t), a = o.next(); !a.done; a = o.next()) {
|
|
179
|
-
var i = a.value;
|
|
180
|
-
if (i != null) {
|
|
181
|
-
if (!n) {
|
|
182
|
-
if (tt(i)) {
|
|
183
|
-
n = typeof i;
|
|
184
|
-
continue;
|
|
185
|
-
}
|
|
186
|
-
return !1;
|
|
187
|
-
}
|
|
188
|
-
if (typeof i !== n)
|
|
189
|
-
return !1;
|
|
190
|
-
}
|
|
191
|
-
}
|
|
192
|
-
} catch (u) {
|
|
193
|
-
r = { error: u };
|
|
194
|
-
} finally {
|
|
195
|
-
try {
|
|
196
|
-
a && !a.done && (e = o.return) && e.call(o);
|
|
197
|
-
} finally {
|
|
198
|
-
if (r) throw r.error;
|
|
199
|
-
}
|
|
200
|
-
}
|
|
201
|
-
return !0;
|
|
202
|
-
}
|
|
203
|
-
function tt(t) {
|
|
204
|
-
switch (typeof t) {
|
|
205
|
-
case "number":
|
|
206
|
-
case "boolean":
|
|
207
|
-
case "string":
|
|
208
|
-
return !0;
|
|
209
|
-
}
|
|
210
|
-
return !1;
|
|
211
|
-
}
|
|
212
|
-
function rt() {
|
|
213
|
-
return function(t) {
|
|
214
|
-
d.error(rr(t));
|
|
215
|
-
};
|
|
216
|
-
}
|
|
217
|
-
function rr(t) {
|
|
218
|
-
return typeof t == "string" ? t : JSON.stringify(er(t));
|
|
219
|
-
}
|
|
220
|
-
function er(t) {
|
|
221
|
-
for (var r = {}, e = t; e !== null; )
|
|
222
|
-
Object.getOwnPropertyNames(e).forEach(function(n) {
|
|
223
|
-
if (!r[n]) {
|
|
224
|
-
var o = e[n];
|
|
225
|
-
o && (r[n] = String(o));
|
|
226
|
-
}
|
|
227
|
-
}), e = Object.getPrototypeOf(e);
|
|
228
|
-
return r;
|
|
229
|
-
}
|
|
230
|
-
var et = rt();
|
|
231
|
-
function nr(t) {
|
|
232
|
-
et = t;
|
|
233
|
-
}
|
|
234
|
-
function nt(t) {
|
|
235
|
-
try {
|
|
236
|
-
et(t);
|
|
237
|
-
} catch {
|
|
238
|
-
}
|
|
239
|
-
}
|
|
240
|
-
var or = function(t, r) {
|
|
241
|
-
var e = typeof Symbol == "function" && t[Symbol.iterator];
|
|
242
|
-
if (!e) return t;
|
|
243
|
-
var n = e.call(t), o, a = [], i;
|
|
244
|
-
try {
|
|
245
|
-
for (; (r === void 0 || r-- > 0) && !(o = n.next()).done; ) a.push(o.value);
|
|
246
|
-
} catch (u) {
|
|
247
|
-
i = { error: u };
|
|
248
|
-
} finally {
|
|
249
|
-
try {
|
|
250
|
-
o && !o.done && (e = n.return) && e.call(n);
|
|
251
|
-
} finally {
|
|
252
|
-
if (i) throw i.error;
|
|
253
|
-
}
|
|
254
|
-
}
|
|
255
|
-
return a;
|
|
256
|
-
}, ar = function(t, r, e) {
|
|
257
|
-
if (arguments.length === 2) for (var n = 0, o = r.length, a; n < o; n++)
|
|
258
|
-
(a || !(n in r)) && (a || (a = Array.prototype.slice.call(r, 0, n)), a[n] = r[n]);
|
|
259
|
-
return t.concat(a || Array.prototype.slice.call(r));
|
|
260
|
-
};
|
|
261
|
-
function ir(t) {
|
|
262
|
-
return btoa(String.fromCharCode.apply(String, ar([], or(G(t)), !1)));
|
|
263
|
-
}
|
|
264
|
-
var ur = 8, lr = 16, cr = (
|
|
265
|
-
/** @class */
|
|
266
|
-
/* @__PURE__ */ function() {
|
|
267
|
-
function t() {
|
|
268
|
-
this.generateTraceId = $(lr), this.generateSpanId = $(ur);
|
|
269
|
-
}
|
|
270
|
-
return t;
|
|
271
|
-
}()
|
|
272
|
-
), h = Array(32);
|
|
273
|
-
function $(t) {
|
|
274
|
-
return function() {
|
|
275
|
-
for (var r = 0; r < t * 2; r++)
|
|
276
|
-
h[r] = Math.floor(Math.random() * 16) + 48, h[r] >= 58 && (h[r] += 39);
|
|
277
|
-
return String.fromCharCode.apply(null, h.slice(0, t * 2));
|
|
278
|
-
};
|
|
279
|
-
}
|
|
280
|
-
function sr(t) {
|
|
281
|
-
}
|
|
282
|
-
var fr = function(t) {
|
|
283
|
-
var r = typeof Symbol == "function" && Symbol.iterator, e = r && t[r], n = 0;
|
|
284
|
-
if (e) return e.call(t);
|
|
285
|
-
if (t && typeof t.length == "number") return {
|
|
286
|
-
next: function() {
|
|
287
|
-
return t && n >= t.length && (t = void 0), { value: t && t[n++], done: !t };
|
|
288
|
-
}
|
|
289
|
-
};
|
|
290
|
-
throw new TypeError(r ? "Object is not iterable." : "Symbol.iterator is not defined.");
|
|
291
|
-
}, pr = (
|
|
292
|
-
/** @class */
|
|
293
|
-
function() {
|
|
294
|
-
function t(r) {
|
|
295
|
-
r === void 0 && (r = {});
|
|
296
|
-
var e;
|
|
297
|
-
this._propagators = (e = r.propagators) !== null && e !== void 0 ? e : [], this._fields = Array.from(new Set(this._propagators.map(function(n) {
|
|
298
|
-
return typeof n.fields == "function" ? n.fields() : [];
|
|
299
|
-
}).reduce(function(n, o) {
|
|
300
|
-
return n.concat(o);
|
|
301
|
-
}, [])));
|
|
302
|
-
}
|
|
303
|
-
return t.prototype.inject = function(r, e, n) {
|
|
304
|
-
var o, a;
|
|
305
|
-
try {
|
|
306
|
-
for (var i = fr(this._propagators), u = i.next(); !u.done; u = i.next()) {
|
|
307
|
-
var l = u.value;
|
|
308
|
-
try {
|
|
309
|
-
l.inject(r, e, n);
|
|
310
|
-
} catch (c) {
|
|
311
|
-
d.warn("Failed to inject with " + l.constructor.name + ". Err: " + c.message);
|
|
312
|
-
}
|
|
313
|
-
}
|
|
314
|
-
} catch (c) {
|
|
315
|
-
o = { error: c };
|
|
316
|
-
} finally {
|
|
317
|
-
try {
|
|
318
|
-
u && !u.done && (a = i.return) && a.call(i);
|
|
319
|
-
} finally {
|
|
320
|
-
if (o) throw o.error;
|
|
321
|
-
}
|
|
322
|
-
}
|
|
323
|
-
}, t.prototype.extract = function(r, e, n) {
|
|
324
|
-
return this._propagators.reduce(function(o, a) {
|
|
325
|
-
try {
|
|
326
|
-
return a.extract(o, e, n);
|
|
327
|
-
} catch (i) {
|
|
328
|
-
d.warn("Failed to extract with " + a.constructor.name + ". Err: " + i.message);
|
|
329
|
-
}
|
|
330
|
-
return o;
|
|
331
|
-
}, r);
|
|
332
|
-
}, t.prototype.fields = function() {
|
|
333
|
-
return this._fields.slice();
|
|
334
|
-
}, t;
|
|
335
|
-
}()
|
|
336
|
-
), C = "[_0-9a-z-*/]", yr = "[a-z]" + C + "{0,255}", dr = "[a-z0-9]" + C + "{0,240}@[a-z]" + C + "{0,13}", hr = new RegExp("^(?:" + yr + "|" + dr + ")$"), mr = /^[ -~]{0,255}[!-~]$/, gr = /,|=/;
|
|
337
|
-
function vr(t) {
|
|
338
|
-
return hr.test(t);
|
|
339
|
-
}
|
|
340
|
-
function _r(t) {
|
|
341
|
-
return mr.test(t) && !gr.test(t);
|
|
342
|
-
}
|
|
343
|
-
var B = 32, Sr = 512, F = ",", z = "=", ot = (
|
|
344
|
-
/** @class */
|
|
345
|
-
function() {
|
|
346
|
-
function t(r) {
|
|
347
|
-
this._internalState = /* @__PURE__ */ new Map(), r && this._parse(r);
|
|
348
|
-
}
|
|
349
|
-
return t.prototype.set = function(r, e) {
|
|
350
|
-
var n = this._clone();
|
|
351
|
-
return n._internalState.has(r) && n._internalState.delete(r), n._internalState.set(r, e), n;
|
|
352
|
-
}, t.prototype.unset = function(r) {
|
|
353
|
-
var e = this._clone();
|
|
354
|
-
return e._internalState.delete(r), e;
|
|
355
|
-
}, t.prototype.get = function(r) {
|
|
356
|
-
return this._internalState.get(r);
|
|
357
|
-
}, t.prototype.serialize = function() {
|
|
358
|
-
var r = this;
|
|
359
|
-
return this._keys().reduce(function(e, n) {
|
|
360
|
-
return e.push(n + z + r.get(n)), e;
|
|
361
|
-
}, []).join(F);
|
|
362
|
-
}, t.prototype._parse = function(r) {
|
|
363
|
-
r.length > Sr || (this._internalState = r.split(F).reverse().reduce(function(e, n) {
|
|
364
|
-
var o = n.trim(), a = o.indexOf(z);
|
|
365
|
-
if (a !== -1) {
|
|
366
|
-
var i = o.slice(0, a), u = o.slice(a + 1, n.length);
|
|
367
|
-
vr(i) && _r(u) && e.set(i, u);
|
|
368
|
-
}
|
|
369
|
-
return e;
|
|
370
|
-
}, /* @__PURE__ */ new Map()), this._internalState.size > B && (this._internalState = new Map(Array.from(this._internalState.entries()).reverse().slice(0, B))));
|
|
371
|
-
}, t.prototype._keys = function() {
|
|
372
|
-
return Array.from(this._internalState.keys()).reverse();
|
|
373
|
-
}, t.prototype._clone = function() {
|
|
374
|
-
var r = new t();
|
|
375
|
-
return r._internalState = new Map(this._internalState), r;
|
|
376
|
-
}, t;
|
|
377
|
-
}()
|
|
378
|
-
), m = "traceparent", g = "tracestate", br = "00", Tr = "(?!ff)[\\da-f]{2}", Or = "(?![0]{32})[\\da-f]{32}", Pr = "(?![0]{16})[\\da-f]{16}", Ar = "[\\da-f]{2}", Er = new RegExp("^\\s?(" + Tr + ")-(" + Or + ")-(" + Pr + ")-(" + Ar + ")(-.*)?\\s?$");
|
|
379
|
-
function at(t) {
|
|
380
|
-
var r = Er.exec(t);
|
|
381
|
-
return !r || r[1] === "00" && r[5] ? null : {
|
|
382
|
-
traceId: r[2],
|
|
383
|
-
spanId: r[3],
|
|
384
|
-
traceFlags: parseInt(r[4], 16)
|
|
385
|
-
};
|
|
386
|
-
}
|
|
387
|
-
var wr = (
|
|
388
|
-
/** @class */
|
|
389
|
-
function() {
|
|
390
|
-
function t() {
|
|
391
|
-
}
|
|
392
|
-
return t.prototype.inject = function(r, e, n) {
|
|
393
|
-
var o = E.getSpanContext(r);
|
|
394
|
-
if (!(!o || x(r) || !K(o))) {
|
|
395
|
-
var a = br + "-" + o.traceId + "-" + o.spanId + "-0" + Number(o.traceFlags || w.NONE).toString(16);
|
|
396
|
-
n.set(e, m, a), o.traceState && n.set(e, g, o.traceState.serialize());
|
|
397
|
-
}
|
|
398
|
-
}, t.prototype.extract = function(r, e, n) {
|
|
399
|
-
var o = n.get(e, m);
|
|
400
|
-
if (!o)
|
|
401
|
-
return r;
|
|
402
|
-
var a = Array.isArray(o) ? o[0] : o;
|
|
403
|
-
if (typeof a != "string")
|
|
404
|
-
return r;
|
|
405
|
-
var i = at(a);
|
|
406
|
-
if (!i)
|
|
407
|
-
return r;
|
|
408
|
-
i.isRemote = !0;
|
|
409
|
-
var u = n.get(e, g);
|
|
410
|
-
if (u) {
|
|
411
|
-
var l = Array.isArray(u) ? u.join(",") : u;
|
|
412
|
-
i.traceState = new ot(typeof l == "string" ? l : void 0);
|
|
413
|
-
}
|
|
414
|
-
return E.setSpanContext(r, i);
|
|
415
|
-
}, t.prototype.fields = function() {
|
|
416
|
-
return [m, g];
|
|
417
|
-
}, t;
|
|
418
|
-
}()
|
|
419
|
-
), M = W("OpenTelemetry SDK Context Key RPC_METADATA"), j;
|
|
420
|
-
(function(t) {
|
|
421
|
-
t.HTTP = "http";
|
|
422
|
-
})(j || (j = {}));
|
|
423
|
-
function Rr(t, r) {
|
|
424
|
-
return t.setValue(M, r);
|
|
425
|
-
}
|
|
426
|
-
function Cr(t) {
|
|
427
|
-
return t.deleteValue(M);
|
|
428
|
-
}
|
|
429
|
-
function jr(t) {
|
|
430
|
-
return t.getValue(M);
|
|
431
|
-
}
|
|
432
|
-
var N = (
|
|
433
|
-
/** @class */
|
|
434
|
-
function() {
|
|
435
|
-
function t() {
|
|
436
|
-
}
|
|
437
|
-
return t.prototype.shouldSample = function() {
|
|
438
|
-
return {
|
|
439
|
-
decision: p.NOT_RECORD
|
|
440
|
-
};
|
|
441
|
-
}, t.prototype.toString = function() {
|
|
442
|
-
return "AlwaysOffSampler";
|
|
443
|
-
}, t;
|
|
444
|
-
}()
|
|
445
|
-
), v = (
|
|
446
|
-
/** @class */
|
|
447
|
-
function() {
|
|
448
|
-
function t() {
|
|
449
|
-
}
|
|
450
|
-
return t.prototype.shouldSample = function() {
|
|
451
|
-
return {
|
|
452
|
-
decision: p.RECORD_AND_SAMPLED
|
|
453
|
-
};
|
|
454
|
-
}, t.prototype.toString = function() {
|
|
455
|
-
return "AlwaysOnSampler";
|
|
456
|
-
}, t;
|
|
457
|
-
}()
|
|
458
|
-
), Nr = (
|
|
459
|
-
/** @class */
|
|
460
|
-
function() {
|
|
461
|
-
function t(r) {
|
|
462
|
-
var e, n, o, a;
|
|
463
|
-
this._root = r.root, this._root || (nt(new Error("ParentBasedSampler must have a root sampler configured")), this._root = new v()), this._remoteParentSampled = (e = r.remoteParentSampled) !== null && e !== void 0 ? e : new v(), this._remoteParentNotSampled = (n = r.remoteParentNotSampled) !== null && n !== void 0 ? n : new N(), this._localParentSampled = (o = r.localParentSampled) !== null && o !== void 0 ? o : new v(), this._localParentNotSampled = (a = r.localParentNotSampled) !== null && a !== void 0 ? a : new N();
|
|
464
|
-
}
|
|
465
|
-
return t.prototype.shouldSample = function(r, e, n, o, a, i) {
|
|
466
|
-
var u = E.getSpanContext(r);
|
|
467
|
-
return !u || !K(u) ? this._root.shouldSample(r, e, n, o, a, i) : u.isRemote ? u.traceFlags & w.SAMPLED ? this._remoteParentSampled.shouldSample(r, e, n, o, a, i) : this._remoteParentNotSampled.shouldSample(r, e, n, o, a, i) : u.traceFlags & w.SAMPLED ? this._localParentSampled.shouldSample(r, e, n, o, a, i) : this._localParentNotSampled.shouldSample(r, e, n, o, a, i);
|
|
468
|
-
}, t.prototype.toString = function() {
|
|
469
|
-
return "ParentBased{root=" + this._root.toString() + ", remoteParentSampled=" + this._remoteParentSampled.toString() + ", remoteParentNotSampled=" + this._remoteParentNotSampled.toString() + ", localParentSampled=" + this._localParentSampled.toString() + ", localParentNotSampled=" + this._localParentNotSampled.toString() + "}";
|
|
470
|
-
}, t;
|
|
471
|
-
}()
|
|
472
|
-
), Ir = (
|
|
473
|
-
/** @class */
|
|
474
|
-
function() {
|
|
475
|
-
function t(r) {
|
|
476
|
-
r === void 0 && (r = 0), this._ratio = r, this._ratio = this._normalize(r), this._upperBound = Math.floor(this._ratio * 4294967295);
|
|
477
|
-
}
|
|
478
|
-
return t.prototype.shouldSample = function(r, e) {
|
|
479
|
-
return {
|
|
480
|
-
decision: Ct(e) && this._accumulate(e) < this._upperBound ? p.RECORD_AND_SAMPLED : p.NOT_RECORD
|
|
481
|
-
};
|
|
482
|
-
}, t.prototype.toString = function() {
|
|
483
|
-
return "TraceIdRatioBased{" + this._ratio + "}";
|
|
484
|
-
}, t.prototype._normalize = function(r) {
|
|
485
|
-
return typeof r != "number" || isNaN(r) ? 0 : r >= 1 ? 1 : r <= 0 ? 0 : r;
|
|
486
|
-
}, t.prototype._accumulate = function(r) {
|
|
487
|
-
for (var e = 0, n = 0; n < r.length / 8; n++) {
|
|
488
|
-
var o = n * 8, a = parseInt(r.slice(o, o + 8), 16);
|
|
489
|
-
e = (e ^ a) >>> 0;
|
|
490
|
-
}
|
|
491
|
-
return e;
|
|
492
|
-
}, t;
|
|
493
|
-
}()
|
|
494
|
-
), xr = "[object Object]", Dr = "[object Null]", Mr = "[object Undefined]", kr = Function.prototype, it = kr.toString, Ur = it.call(Object), Lr = $r(Object.getPrototypeOf, Object), ut = Object.prototype, lt = ut.hasOwnProperty, s = Symbol ? Symbol.toStringTag : void 0, ct = ut.toString;
|
|
495
|
-
function $r(t, r) {
|
|
496
|
-
return function(e) {
|
|
497
|
-
return t(r(e));
|
|
498
|
-
};
|
|
499
|
-
}
|
|
500
|
-
function H(t) {
|
|
501
|
-
if (!Br(t) || Fr(t) !== xr)
|
|
502
|
-
return !1;
|
|
503
|
-
var r = Lr(t);
|
|
504
|
-
if (r === null)
|
|
505
|
-
return !0;
|
|
506
|
-
var e = lt.call(r, "constructor") && r.constructor;
|
|
507
|
-
return typeof e == "function" && e instanceof e && it.call(e) === Ur;
|
|
508
|
-
}
|
|
509
|
-
function Br(t) {
|
|
510
|
-
return t != null && typeof t == "object";
|
|
511
|
-
}
|
|
512
|
-
function Fr(t) {
|
|
513
|
-
return t == null ? t === void 0 ? Mr : Dr : s && s in Object(t) ? zr(t) : Hr(t);
|
|
514
|
-
}
|
|
515
|
-
function zr(t) {
|
|
516
|
-
var r = lt.call(t, s), e = t[s], n = !1;
|
|
517
|
-
try {
|
|
518
|
-
t[s] = void 0, n = !0;
|
|
519
|
-
} catch {
|
|
520
|
-
}
|
|
521
|
-
var o = ct.call(t);
|
|
522
|
-
return n && (r ? t[s] = e : delete t[s]), o;
|
|
523
|
-
}
|
|
524
|
-
function Hr(t) {
|
|
525
|
-
return ct.call(t);
|
|
526
|
-
}
|
|
527
|
-
var Vr = 20;
|
|
528
|
-
function Kr() {
|
|
529
|
-
for (var t = [], r = 0; r < arguments.length; r++)
|
|
530
|
-
t[r] = arguments[r];
|
|
531
|
-
for (var e = t.shift(), n = /* @__PURE__ */ new WeakMap(); t.length > 0; )
|
|
532
|
-
e = st(e, t.shift(), 0, n);
|
|
533
|
-
return e;
|
|
534
|
-
}
|
|
535
|
-
function A(t) {
|
|
536
|
-
return b(t) ? t.slice() : t;
|
|
537
|
-
}
|
|
538
|
-
function st(t, r, e, n) {
|
|
539
|
-
e === void 0 && (e = 0);
|
|
540
|
-
var o;
|
|
541
|
-
if (!(e > Vr)) {
|
|
542
|
-
if (e++, _(t) || _(r) || ft(r))
|
|
543
|
-
o = A(r);
|
|
544
|
-
else if (b(t)) {
|
|
545
|
-
if (o = t.slice(), b(r))
|
|
546
|
-
for (var a = 0, i = r.length; a < i; a++)
|
|
547
|
-
o.push(A(r[a]));
|
|
548
|
-
else if (y(r))
|
|
549
|
-
for (var u = Object.keys(r), a = 0, i = u.length; a < i; a++) {
|
|
550
|
-
var l = u[a];
|
|
551
|
-
o[l] = A(r[l]);
|
|
552
|
-
}
|
|
553
|
-
} else if (y(t))
|
|
554
|
-
if (y(r)) {
|
|
555
|
-
if (!Wr(t, r))
|
|
556
|
-
return r;
|
|
557
|
-
o = Object.assign({}, t);
|
|
558
|
-
for (var u = Object.keys(r), a = 0, i = u.length; a < i; a++) {
|
|
559
|
-
var l = u[a], c = r[l];
|
|
560
|
-
if (_(c))
|
|
561
|
-
typeof c > "u" ? delete o[l] : o[l] = c;
|
|
562
|
-
else {
|
|
563
|
-
var f = o[l], T = c;
|
|
564
|
-
if (V(t, l, n) || V(r, l, n))
|
|
565
|
-
delete o[l];
|
|
566
|
-
else {
|
|
567
|
-
if (y(f) && y(T)) {
|
|
568
|
-
var k = n.get(f) || [], U = n.get(T) || [];
|
|
569
|
-
k.push({ obj: t, key: l }), U.push({ obj: r, key: l }), n.set(f, k), n.set(T, U);
|
|
570
|
-
}
|
|
571
|
-
o[l] = st(o[l], c, e, n);
|
|
572
|
-
}
|
|
573
|
-
}
|
|
574
|
-
}
|
|
575
|
-
} else
|
|
576
|
-
o = r;
|
|
577
|
-
return o;
|
|
578
|
-
}
|
|
579
|
-
}
|
|
580
|
-
function V(t, r, e) {
|
|
581
|
-
for (var n = e.get(t[r]) || [], o = 0, a = n.length; o < a; o++) {
|
|
582
|
-
var i = n[o];
|
|
583
|
-
if (i.key === r && i.obj === t)
|
|
584
|
-
return !0;
|
|
585
|
-
}
|
|
586
|
-
return !1;
|
|
587
|
-
}
|
|
588
|
-
function b(t) {
|
|
589
|
-
return Array.isArray(t);
|
|
590
|
-
}
|
|
591
|
-
function ft(t) {
|
|
592
|
-
return typeof t == "function";
|
|
593
|
-
}
|
|
594
|
-
function y(t) {
|
|
595
|
-
return !_(t) && !b(t) && !ft(t) && typeof t == "object";
|
|
596
|
-
}
|
|
597
|
-
function _(t) {
|
|
598
|
-
return typeof t == "string" || typeof t == "number" || typeof t == "boolean" || typeof t > "u" || t instanceof Date || t instanceof RegExp || t === null;
|
|
599
|
-
}
|
|
600
|
-
function Wr(t, r) {
|
|
601
|
-
return !(!H(t) || !H(r));
|
|
602
|
-
}
|
|
603
|
-
var Gr = /* @__PURE__ */ function() {
|
|
604
|
-
var t = function(r, e) {
|
|
605
|
-
return t = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(n, o) {
|
|
606
|
-
n.__proto__ = o;
|
|
607
|
-
} || function(n, o) {
|
|
608
|
-
for (var a in o) Object.prototype.hasOwnProperty.call(o, a) && (n[a] = o[a]);
|
|
609
|
-
}, t(r, e);
|
|
610
|
-
};
|
|
611
|
-
return function(r, e) {
|
|
612
|
-
if (typeof e != "function" && e !== null)
|
|
613
|
-
throw new TypeError("Class extends value " + String(e) + " is not a constructor or null");
|
|
614
|
-
t(r, e);
|
|
615
|
-
function n() {
|
|
616
|
-
this.constructor = r;
|
|
617
|
-
}
|
|
618
|
-
r.prototype = e === null ? Object.create(e) : (n.prototype = e.prototype, new n());
|
|
619
|
-
};
|
|
620
|
-
}(), pt = (
|
|
621
|
-
/** @class */
|
|
622
|
-
function(t) {
|
|
623
|
-
Gr(r, t);
|
|
624
|
-
function r(e) {
|
|
625
|
-
var n = t.call(this, e) || this;
|
|
626
|
-
return Object.setPrototypeOf(n, r.prototype), n;
|
|
627
|
-
}
|
|
628
|
-
return r;
|
|
629
|
-
}(Error)
|
|
630
|
-
);
|
|
631
|
-
function Jr(t, r) {
|
|
632
|
-
var e, n = new Promise(function(o, a) {
|
|
633
|
-
e = setTimeout(function() {
|
|
634
|
-
a(new pt("Operation timed out."));
|
|
635
|
-
}, r);
|
|
636
|
-
});
|
|
637
|
-
return Promise.race([t, n]).then(function(o) {
|
|
638
|
-
return clearTimeout(e), o;
|
|
639
|
-
}, function(o) {
|
|
640
|
-
throw clearTimeout(e), o;
|
|
641
|
-
});
|
|
642
|
-
}
|
|
643
|
-
function Xr(t) {
|
|
644
|
-
return typeof t == "function" && typeof t.__original == "function" && typeof t.__unwrap == "function" && t.__wrapped === !0;
|
|
645
|
-
}
|
|
646
|
-
var qr = (
|
|
647
|
-
/** @class */
|
|
648
|
-
function() {
|
|
649
|
-
function t() {
|
|
650
|
-
var r = this;
|
|
651
|
-
this._promise = new Promise(function(e, n) {
|
|
652
|
-
r._resolve = e, r._reject = n;
|
|
653
|
-
});
|
|
654
|
-
}
|
|
655
|
-
return Object.defineProperty(t.prototype, "promise", {
|
|
656
|
-
get: function() {
|
|
657
|
-
return this._promise;
|
|
658
|
-
},
|
|
659
|
-
enumerable: !1,
|
|
660
|
-
configurable: !0
|
|
661
|
-
}), t.prototype.resolve = function(r) {
|
|
662
|
-
this._resolve(r);
|
|
663
|
-
}, t.prototype.reject = function(r) {
|
|
664
|
-
this._reject(r);
|
|
665
|
-
}, t;
|
|
666
|
-
}()
|
|
667
|
-
), Qr = function(t, r) {
|
|
668
|
-
var e = typeof Symbol == "function" && t[Symbol.iterator];
|
|
669
|
-
if (!e) return t;
|
|
670
|
-
var n = e.call(t), o, a = [], i;
|
|
671
|
-
try {
|
|
672
|
-
for (; (r === void 0 || r-- > 0) && !(o = n.next()).done; ) a.push(o.value);
|
|
673
|
-
} catch (u) {
|
|
674
|
-
i = { error: u };
|
|
675
|
-
} finally {
|
|
676
|
-
try {
|
|
677
|
-
o && !o.done && (e = n.return) && e.call(n);
|
|
678
|
-
} finally {
|
|
679
|
-
if (i) throw i.error;
|
|
680
|
-
}
|
|
681
|
-
}
|
|
682
|
-
return a;
|
|
683
|
-
}, Zr = function(t, r, e) {
|
|
684
|
-
if (arguments.length === 2) for (var n = 0, o = r.length, a; n < o; n++)
|
|
685
|
-
(a || !(n in r)) && (a || (a = Array.prototype.slice.call(r, 0, n)), a[n] = r[n]);
|
|
686
|
-
return t.concat(a || Array.prototype.slice.call(r));
|
|
687
|
-
}, Yr = (
|
|
688
|
-
/** @class */
|
|
689
|
-
function() {
|
|
690
|
-
function t(r, e) {
|
|
691
|
-
this._callback = r, this._that = e, this._isCalled = !1, this._deferred = new qr();
|
|
692
|
-
}
|
|
693
|
-
return Object.defineProperty(t.prototype, "isCalled", {
|
|
694
|
-
get: function() {
|
|
695
|
-
return this._isCalled;
|
|
696
|
-
},
|
|
697
|
-
enumerable: !1,
|
|
698
|
-
configurable: !0
|
|
699
|
-
}), Object.defineProperty(t.prototype, "promise", {
|
|
700
|
-
get: function() {
|
|
701
|
-
return this._deferred.promise;
|
|
702
|
-
},
|
|
703
|
-
enumerable: !1,
|
|
704
|
-
configurable: !0
|
|
705
|
-
}), t.prototype.call = function() {
|
|
706
|
-
for (var r, e = this, n = [], o = 0; o < arguments.length; o++)
|
|
707
|
-
n[o] = arguments[o];
|
|
708
|
-
if (!this._isCalled) {
|
|
709
|
-
this._isCalled = !0;
|
|
710
|
-
try {
|
|
711
|
-
Promise.resolve((r = this._callback).call.apply(r, Zr([this._that], Qr(n), !1))).then(function(a) {
|
|
712
|
-
return e._deferred.resolve(a);
|
|
713
|
-
}, function(a) {
|
|
714
|
-
return e._deferred.reject(a);
|
|
715
|
-
});
|
|
716
|
-
} catch (a) {
|
|
717
|
-
this._deferred.reject(a);
|
|
718
|
-
}
|
|
719
|
-
}
|
|
720
|
-
return this._deferred.promise;
|
|
721
|
-
}, t;
|
|
722
|
-
}()
|
|
723
|
-
);
|
|
724
|
-
function te(t, r) {
|
|
725
|
-
return new Promise(function(e) {
|
|
726
|
-
L.with(J(L.active()), function() {
|
|
727
|
-
t.export(r, function(n) {
|
|
728
|
-
e(n);
|
|
729
|
-
});
|
|
730
|
-
});
|
|
731
|
-
});
|
|
732
|
-
}
|
|
733
|
-
var re = {
|
|
734
|
-
getKeyPairs: q,
|
|
735
|
-
serializeKeyPairs: X,
|
|
736
|
-
parseKeyPairsIntoRecord: Xt,
|
|
737
|
-
parsePairKeyValue: D
|
|
738
|
-
}, ee = {
|
|
739
|
-
_export: te
|
|
740
|
-
};
|
|
741
|
-
const ce = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
742
|
-
__proto__: null,
|
|
743
|
-
AlwaysOffSampler: N,
|
|
744
|
-
AlwaysOnSampler: v,
|
|
745
|
-
AnchoredClock: Qt,
|
|
746
|
-
BindOnceFuture: Yr,
|
|
747
|
-
CompositePropagator: pr,
|
|
748
|
-
DEFAULT_ATTRIBUTE_COUNT_LIMIT: Nt,
|
|
749
|
-
DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT: It,
|
|
750
|
-
DEFAULT_ENVIRONMENT: xt,
|
|
751
|
-
DEFAULT_SPAN_ATTRIBUTE_PER_EVENT_COUNT_LIMIT: Dt,
|
|
752
|
-
DEFAULT_SPAN_ATTRIBUTE_PER_LINK_COUNT_LIMIT: Mt,
|
|
753
|
-
get ExportResultCode() {
|
|
754
|
-
return jt;
|
|
755
|
-
},
|
|
756
|
-
ParentBasedSampler: Nr,
|
|
757
|
-
get RPCType() {
|
|
758
|
-
return j;
|
|
759
|
-
},
|
|
760
|
-
RandomIdGenerator: cr,
|
|
761
|
-
SDK_INFO: kt,
|
|
762
|
-
TRACE_PARENT_HEADER: m,
|
|
763
|
-
TRACE_STATE_HEADER: g,
|
|
764
|
-
TimeoutError: pt,
|
|
765
|
-
TraceIdRatioBasedSampler: Ir,
|
|
766
|
-
TraceState: ot,
|
|
767
|
-
get TracesSamplerValues() {
|
|
768
|
-
return Ut;
|
|
769
|
-
},
|
|
770
|
-
VERSION: Lt,
|
|
771
|
-
W3CBaggagePropagator: qt,
|
|
772
|
-
W3CTraceContextPropagator: wr,
|
|
773
|
-
_globalThis: zt,
|
|
774
|
-
addHrTimes: dt,
|
|
775
|
-
baggageUtils: re,
|
|
776
|
-
callWithTimeout: Jr,
|
|
777
|
-
deleteRPCMetadata: Cr,
|
|
778
|
-
getEnv: $t,
|
|
779
|
-
getEnvWithoutDefaults: Bt,
|
|
780
|
-
getRPCMetadata: jr,
|
|
781
|
-
getTimeOrigin: ht,
|
|
782
|
-
globalErrorHandler: nt,
|
|
783
|
-
hexToBase64: ir,
|
|
784
|
-
hexToBinary: G,
|
|
785
|
-
hrTime: mt,
|
|
786
|
-
hrTimeDuration: gt,
|
|
787
|
-
hrTimeToMicroseconds: vt,
|
|
788
|
-
hrTimeToMilliseconds: _t,
|
|
789
|
-
hrTimeToNanoseconds: St,
|
|
790
|
-
hrTimeToTimeStamp: bt,
|
|
791
|
-
internal: ee,
|
|
792
|
-
isAttributeKey: Z,
|
|
793
|
-
isAttributeValue: Y,
|
|
794
|
-
isTimeInput: Tt,
|
|
795
|
-
isTimeInputHrTime: Ot,
|
|
796
|
-
isTracingSuppressed: x,
|
|
797
|
-
isUrlIgnored: Pt,
|
|
798
|
-
isWrapped: Xr,
|
|
799
|
-
loggingErrorHandler: rt,
|
|
800
|
-
merge: Kr,
|
|
801
|
-
millisToHrTime: At,
|
|
802
|
-
otperformance: Et,
|
|
803
|
-
parseEnvironment: Ft,
|
|
804
|
-
parseTraceParent: at,
|
|
805
|
-
sanitizeAttributes: Yt,
|
|
806
|
-
setGlobalErrorHandler: nr,
|
|
807
|
-
setRPCMetadata: Rr,
|
|
808
|
-
suppressTracing: J,
|
|
809
|
-
timeInputToHrTime: wt,
|
|
810
|
-
unrefTimer: sr,
|
|
811
|
-
unsuppressTracing: Ht,
|
|
812
|
-
urlMatches: Rt
|
|
813
|
-
}, Symbol.toStringTag, { value: "Module" }));
|
|
814
|
-
export {
|
|
815
|
-
qt as J,
|
|
816
|
-
J as W,
|
|
817
|
-
Y as Z,
|
|
818
|
-
Yt as a,
|
|
819
|
-
pr as b,
|
|
820
|
-
wr as c,
|
|
821
|
-
Yr as d,
|
|
822
|
-
Kr as k,
|
|
823
|
-
ce as l,
|
|
824
|
-
nt as n,
|
|
825
|
-
p,
|
|
826
|
-
sr as s,
|
|
827
|
-
ee as t,
|
|
828
|
-
x as w
|
|
829
|
-
};
|
|
830
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiaW5kZXgtQ19qSjhSYXMtIX57MDBrfX4uanMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImltcG9ydCB7IHkgYXMgeV8sIGYgYXMgZl8sIGRHIGFzIEhfLCBkSSBhcyByXywgcCBhcyBwXywgZEQgYXMgd2UsIGRIIGFzIGtlJDEsIGRKIGFzIHhlLCBiIGFzIFFlJDEsIGRLIGFzIFhlJDEsIGRDIGFzIHFlJDEsIGRGIGFzIE5fLCBhIGFzIFplJDEsIE8sIGRFIGFzIFIkMSwgVyBhcyBXZSQxLCBnIGFzIGdfIH0gZnJvbSAnLi91cmwtRGY1NjRDM3gtIX57MDA5fX4uanMnO1xuaW1wb3J0IHsgRyBhcyBHZSwgayBhcyBrbiwgWCBhcyBYdCwgaCBhcyBocywgciBhcyBycywgTyBhcyBPZSB9IGZyb20gJy4vaW5kZXgtIX57MDA1fX4uanMnO1xuaW1wb3J0IHsgciB9IGZyb20gJy4vZGlhZy1hcGktQlVMdmpjbmYtIX57MDA4fX4uanMnO1xuaW1wb3J0IHsgYSwgQSBhcyBBJDEgfSBmcm9tICcuL0V4cG9ydFJlc3VsdC1CLVlMS01hVS0hfnswMG19fi5qcyc7XG5pbXBvcnQgeyBibyBhcyBQJDEsIGJwIGFzIE0kMSwgYnIgYXMgSSQxLCBicyBhcyBrXywgYnQgYXMgSl8sIGJxIGFzIFhBLCBibSBhcyByJDEsIGJ1IGFzICRfLCBPIGFzIE9ULCBibiBhcyBMVCwgYnYgYXMgVSQxIH0gZnJvbSAnLi9zZGstaW5mby1YMmlxLWoxUi0hfnswMGh9fi5qcyc7XG5pbXBvcnQgeyBsIH0gZnJvbSAnLi91dGlscy1DWDVZVDd5SS0hfnswMGJ9fi5qcyc7XG5cbnZhciBwO1xuKGZ1bmN0aW9uKGUpIHtcbiAgZVtlLk5PVF9SRUNPUkQgPSAwXSA9IFwiTk9UX1JFQ09SRFwiLCBlW2UuUkVDT1JEID0gMV0gPSBcIlJFQ09SRFwiLCBlW2UuUkVDT1JEX0FORF9TQU1QTEVEID0gMl0gPSBcIlJFQ09SRF9BTkRfU0FNUExFRFwiO1xufSkocCB8fCAocCA9IHt9KSk7XG52YXIgTiA9IHJzKFwiT3BlblRlbGVtZXRyeSBTREsgQ29udGV4dCBLZXkgU1VQUFJFU1NfVFJBQ0lOR1wiKTtcbmZ1bmN0aW9uIFcoZSkge1xuICByZXR1cm4gZS5zZXRWYWx1ZShOLCAhMCk7XG59XG5mdW5jdGlvbiBGZShlKSB7XG4gIHJldHVybiBlLmRlbGV0ZVZhbHVlKE4pO1xufVxuZnVuY3Rpb24gdyhlKSB7XG4gIHJldHVybiBlLmdldFZhbHVlKE4pID09PSAhMDtcbn1cbnZhciB6ZSA9IFwiPVwiLCBDID0gXCI7XCIsIFMgPSBcIixcIiwgUCA9IFwiYmFnZ2FnZVwiLCBrZSA9IDE4MCwgWWUgPSA0MDk2LCBYZSA9IDgxOTIsIFdlID0gZnVuY3Rpb24oZSwgcikge1xuICB2YXIgdCA9IHR5cGVvZiBTeW1ib2wgPT0gXCJmdW5jdGlvblwiICYmIGVbU3ltYm9sLml0ZXJhdG9yXTtcbiAgaWYgKCF0KSByZXR1cm4gZTtcbiAgdmFyIG4gPSB0LmNhbGwoZSksIGEsIGkgPSBbXSwgbztcbiAgdHJ5IHtcbiAgICBmb3IgKDsgKHIgPT09IHZvaWQgMCB8fCByLS0gPiAwKSAmJiAhKGEgPSBuLm5leHQoKSkuZG9uZTsgKSBpLnB1c2goYS52YWx1ZSk7XG4gIH0gY2F0Y2ggKHUpIHtcbiAgICBvID0geyBlcnJvcjogdSB9O1xuICB9IGZpbmFsbHkge1xuICAgIHRyeSB7XG4gICAgICBhICYmICFhLmRvbmUgJiYgKHQgPSBuLnJldHVybikgJiYgdC5jYWxsKG4pO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBpZiAobykgdGhyb3cgby5lcnJvcjtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGk7XG59O1xuZnVuY3Rpb24gJChlKSB7XG4gIHJldHVybiBlLnJlZHVjZShmdW5jdGlvbihyLCB0KSB7XG4gICAgdmFyIG4gPSBcIlwiICsgciArIChyICE9PSBcIlwiID8gUyA6IFwiXCIpICsgdDtcbiAgICByZXR1cm4gbi5sZW5ndGggPiBYZSA/IHIgOiBuO1xuICB9LCBcIlwiKTtcbn1cbmZ1bmN0aW9uIEooZSkge1xuICByZXR1cm4gZS5nZXRBbGxFbnRyaWVzKCkubWFwKGZ1bmN0aW9uKHIpIHtcbiAgICB2YXIgdCA9IFdlKHIsIDIpLCBuID0gdFswXSwgYSA9IHRbMV0sIGkgPSBlbmNvZGVVUklDb21wb25lbnQobikgKyBcIj1cIiArIGVuY29kZVVSSUNvbXBvbmVudChhLnZhbHVlKTtcbiAgICByZXR1cm4gYS5tZXRhZGF0YSAhPT0gdm9pZCAwICYmIChpICs9IEMgKyBhLm1ldGFkYXRhLnRvU3RyaW5nKCkpLCBpO1xuICB9KTtcbn1cbmZ1bmN0aW9uIEQoZSkge1xuICB2YXIgciA9IGUuc3BsaXQoQyk7XG4gIGlmICghKHIubGVuZ3RoIDw9IDApKSB7XG4gICAgdmFyIHQgPSByLnNoaWZ0KCk7XG4gICAgaWYgKHQpIHtcbiAgICAgIHZhciBuID0gdC5pbmRleE9mKHplKTtcbiAgICAgIGlmICghKG4gPD0gMCkpIHtcbiAgICAgICAgdmFyIGEgPSBkZWNvZGVVUklDb21wb25lbnQodC5zdWJzdHJpbmcoMCwgbikudHJpbSgpKSwgaSA9IGRlY29kZVVSSUNvbXBvbmVudCh0LnN1YnN0cmluZyhuICsgMSkudHJpbSgpKSwgbztcbiAgICAgICAgcmV0dXJuIHIubGVuZ3RoID4gMCAmJiAobyA9IGZfKHIuam9pbihDKSkpLCB7IGtleTogYSwgdmFsdWU6IGksIG1ldGFkYXRhOiBvIH07XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5mdW5jdGlvbiAkZShlKSB7XG4gIHJldHVybiB0eXBlb2YgZSAhPSBcInN0cmluZ1wiIHx8IGUubGVuZ3RoID09PSAwID8ge30gOiBlLnNwbGl0KFMpLm1hcChmdW5jdGlvbihyKSB7XG4gICAgcmV0dXJuIEQocik7XG4gIH0pLmZpbHRlcihmdW5jdGlvbihyKSB7XG4gICAgcmV0dXJuIHIgIT09IHZvaWQgMCAmJiByLnZhbHVlLmxlbmd0aCA+IDA7XG4gIH0pLnJlZHVjZShmdW5jdGlvbihyLCB0KSB7XG4gICAgcmV0dXJuIHJbdC5rZXldID0gdC52YWx1ZSwgcjtcbiAgfSwge30pO1xufVxudmFyIEplID0gKFxuICAvKiogQGNsYXNzICovXG4gIGZ1bmN0aW9uKCkge1xuICAgIGZ1bmN0aW9uIGUoKSB7XG4gICAgfVxuICAgIHJldHVybiBlLnByb3RvdHlwZS5pbmplY3QgPSBmdW5jdGlvbihyLCB0LCBuKSB7XG4gICAgICB2YXIgYSA9IHlfLmdldEJhZ2dhZ2Uocik7XG4gICAgICBpZiAoISghYSB8fCB3KHIpKSkge1xuICAgICAgICB2YXIgaSA9IEooYSkuZmlsdGVyKGZ1bmN0aW9uKHUpIHtcbiAgICAgICAgICByZXR1cm4gdS5sZW5ndGggPD0gWWU7XG4gICAgICAgIH0pLnNsaWNlKDAsIGtlKSwgbyA9ICQoaSk7XG4gICAgICAgIG8ubGVuZ3RoID4gMCAmJiBuLnNldCh0LCBQLCBvKTtcbiAgICAgIH1cbiAgICB9LCBlLnByb3RvdHlwZS5leHRyYWN0ID0gZnVuY3Rpb24ociwgdCwgbikge1xuICAgICAgdmFyIGEgPSBuLmdldCh0LCBQKSwgaSA9IEFycmF5LmlzQXJyYXkoYSkgPyBhLmpvaW4oUykgOiBhO1xuICAgICAgaWYgKCFpKVxuICAgICAgICByZXR1cm4gcjtcbiAgICAgIHZhciBvID0ge307XG4gICAgICBpZiAoaS5sZW5ndGggPT09IDApXG4gICAgICAgIHJldHVybiByO1xuICAgICAgdmFyIHUgPSBpLnNwbGl0KFMpO1xuICAgICAgcmV0dXJuIHUuZm9yRWFjaChmdW5jdGlvbihmKSB7XG4gICAgICAgIHZhciBsID0gRChmKTtcbiAgICAgICAgaWYgKGwpIHtcbiAgICAgICAgICB2YXIgYyA9IHsgdmFsdWU6IGwudmFsdWUgfTtcbiAgICAgICAgICBsLm1ldGFkYXRhICYmIChjLm1ldGFkYXRhID0gbC5tZXRhZGF0YSksIG9bbC5rZXldID0gYztcbiAgICAgICAgfVxuICAgICAgfSksIE9iamVjdC5lbnRyaWVzKG8pLmxlbmd0aCA9PT0gMCA/IHIgOiB5Xy5zZXRCYWdnYWdlKHIsIHlfLmNyZWF0ZUJhZ2dhZ2UobykpO1xuICAgIH0sIGUucHJvdG90eXBlLmZpZWxkcyA9IGZ1bmN0aW9uKCkge1xuICAgICAgcmV0dXJuIFtQXTtcbiAgICB9LCBlO1xuICB9KClcbiksIHFlID0gKFxuICAvKiogQGNsYXNzICovXG4gIGZ1bmN0aW9uKCkge1xuICAgIGZ1bmN0aW9uIGUociwgdCkge1xuICAgICAgdGhpcy5fbW9ub3RvbmljQ2xvY2sgPSB0LCB0aGlzLl9lcG9jaE1pbGxpcyA9IHIubm93KCksIHRoaXMuX3BlcmZvcm1hbmNlTWlsbGlzID0gdC5ub3coKTtcbiAgICB9XG4gICAgcmV0dXJuIGUucHJvdG90eXBlLm5vdyA9IGZ1bmN0aW9uKCkge1xuICAgICAgdmFyIHIgPSB0aGlzLl9tb25vdG9uaWNDbG9jay5ub3coKSAtIHRoaXMuX3BlcmZvcm1hbmNlTWlsbGlzO1xuICAgICAgcmV0dXJuIHRoaXMuX2Vwb2NoTWlsbGlzICsgcjtcbiAgICB9LCBlO1xuICB9KClcbiksIHEgPSBmdW5jdGlvbihlKSB7XG4gIHZhciByID0gdHlwZW9mIFN5bWJvbCA9PSBcImZ1bmN0aW9uXCIgJiYgU3ltYm9sLml0ZXJhdG9yLCB0ID0gciAmJiBlW3JdLCBuID0gMDtcbiAgaWYgKHQpIHJldHVybiB0LmNhbGwoZSk7XG4gIGlmIChlICYmIHR5cGVvZiBlLmxlbmd0aCA9PSBcIm51bWJlclwiKSByZXR1cm4ge1xuICAgIG5leHQ6IGZ1bmN0aW9uKCkge1xuICAgICAgcmV0dXJuIGUgJiYgbiA+PSBlLmxlbmd0aCAmJiAoZSA9IHZvaWQgMCksIHsgdmFsdWU6IGUgJiYgZVtuKytdLCBkb25lOiAhZSB9O1xuICAgIH1cbiAgfTtcbiAgdGhyb3cgbmV3IFR5cGVFcnJvcihyID8gXCJPYmplY3QgaXMgbm90IGl0ZXJhYmxlLlwiIDogXCJTeW1ib2wuaXRlcmF0b3IgaXMgbm90IGRlZmluZWQuXCIpO1xufSwgUWUgPSBmdW5jdGlvbihlLCByKSB7XG4gIHZhciB0ID0gdHlwZW9mIFN5bWJvbCA9PSBcImZ1bmN0aW9uXCIgJiYgZVtTeW1ib2wuaXRlcmF0b3JdO1xuICBpZiAoIXQpIHJldHVybiBlO1xuICB2YXIgbiA9IHQuY2FsbChlKSwgYSwgaSA9IFtdLCBvO1xuICB0cnkge1xuICAgIGZvciAoOyAociA9PT0gdm9pZCAwIHx8IHItLSA+IDApICYmICEoYSA9IG4ubmV4dCgpKS5kb25lOyApIGkucHVzaChhLnZhbHVlKTtcbiAgfSBjYXRjaCAodSkge1xuICAgIG8gPSB7IGVycm9yOiB1IH07XG4gIH0gZmluYWxseSB7XG4gICAgdHJ5IHtcbiAgICAgIGEgJiYgIWEuZG9uZSAmJiAodCA9IG4ucmV0dXJuKSAmJiB0LmNhbGwobik7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGlmIChvKSB0aHJvdyBvLmVycm9yO1xuICAgIH1cbiAgfVxuICByZXR1cm4gaTtcbn07XG5mdW5jdGlvbiBaZShlKSB7XG4gIHZhciByJDEsIHQsIG4gPSB7fTtcbiAgaWYgKHR5cGVvZiBlICE9IFwib2JqZWN0XCIgfHwgZSA9PSBudWxsKVxuICAgIHJldHVybiBuO1xuICB0cnkge1xuICAgIGZvciAodmFyIGEgPSBxKE9iamVjdC5lbnRyaWVzKGUpKSwgaSA9IGEubmV4dCgpOyAhaS5kb25lOyBpID0gYS5uZXh0KCkpIHtcbiAgICAgIHZhciBvID0gUWUoaS52YWx1ZSwgMiksIHUgPSBvWzBdLCBmID0gb1sxXTtcbiAgICAgIGlmICghUSh1KSkge1xuICAgICAgICByLndhcm4oXCJJbnZhbGlkIGF0dHJpYnV0ZSBrZXk6IFwiICsgdSk7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgaWYgKCFaKGYpKSB7XG4gICAgICAgIHIud2FybihcIkludmFsaWQgYXR0cmlidXRlIHZhbHVlIHNldCBmb3Iga2V5OiBcIiArIHUpO1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIEFycmF5LmlzQXJyYXkoZikgPyBuW3VdID0gZi5zbGljZSgpIDogblt1XSA9IGY7XG4gICAgfVxuICB9IGNhdGNoIChsKSB7XG4gICAgciQxID0geyBlcnJvcjogbCB9O1xuICB9IGZpbmFsbHkge1xuICAgIHRyeSB7XG4gICAgICBpICYmICFpLmRvbmUgJiYgKHQgPSBhLnJldHVybikgJiYgdC5jYWxsKGEpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBpZiAociQxKSB0aHJvdyByJDEuZXJyb3I7XG4gICAgfVxuICB9XG4gIHJldHVybiBuO1xufVxuZnVuY3Rpb24gUShlKSB7XG4gIHJldHVybiB0eXBlb2YgZSA9PSBcInN0cmluZ1wiICYmIGUubGVuZ3RoID4gMDtcbn1cbmZ1bmN0aW9uIFooZSkge1xuICByZXR1cm4gZSA9PSBudWxsID8gITAgOiBBcnJheS5pc0FycmF5KGUpID8gZXIoZSkgOiBlZShlKTtcbn1cbmZ1bmN0aW9uIGVyKGUpIHtcbiAgdmFyIHIsIHQsIG47XG4gIHRyeSB7XG4gICAgZm9yICh2YXIgYSA9IHEoZSksIGkgPSBhLm5leHQoKTsgIWkuZG9uZTsgaSA9IGEubmV4dCgpKSB7XG4gICAgICB2YXIgbyA9IGkudmFsdWU7XG4gICAgICBpZiAobyAhPSBudWxsKSB7XG4gICAgICAgIGlmICghbikge1xuICAgICAgICAgIGlmIChlZShvKSkge1xuICAgICAgICAgICAgbiA9IHR5cGVvZiBvO1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiAhMTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodHlwZW9mIG8gIT09IG4pXG4gICAgICAgICAgcmV0dXJuICExO1xuICAgICAgfVxuICAgIH1cbiAgfSBjYXRjaCAodSkge1xuICAgIHIgPSB7IGVycm9yOiB1IH07XG4gIH0gZmluYWxseSB7XG4gICAgdHJ5IHtcbiAgICAgIGkgJiYgIWkuZG9uZSAmJiAodCA9IGEucmV0dXJuKSAmJiB0LmNhbGwoYSk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGlmIChyKSB0aHJvdyByLmVycm9yO1xuICAgIH1cbiAgfVxuICByZXR1cm4gITA7XG59XG5mdW5jdGlvbiBlZShlKSB7XG4gIHN3aXRjaCAodHlwZW9mIGUpIHtcbiAgICBjYXNlIFwibnVtYmVyXCI6XG4gICAgY2FzZSBcImJvb2xlYW5cIjpcbiAgICBjYXNlIFwic3RyaW5nXCI6XG4gICAgICByZXR1cm4gITA7XG4gIH1cbiAgcmV0dXJuICExO1xufVxuZnVuY3Rpb24gcmUoKSB7XG4gIHJldHVybiBmdW5jdGlvbihlKSB7XG4gICAgci5lcnJvcihycihlKSk7XG4gIH07XG59XG5mdW5jdGlvbiBycihlKSB7XG4gIHJldHVybiB0eXBlb2YgZSA9PSBcInN0cmluZ1wiID8gZSA6IEpTT04uc3RyaW5naWZ5KHRyKGUpKTtcbn1cbmZ1bmN0aW9uIHRyKGUpIHtcbiAgZm9yICh2YXIgciA9IHt9LCB0ID0gZTsgdCAhPT0gbnVsbDsgKVxuICAgIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHQpLmZvckVhY2goZnVuY3Rpb24obikge1xuICAgICAgaWYgKCFyW25dKSB7XG4gICAgICAgIHZhciBhID0gdFtuXTtcbiAgICAgICAgYSAmJiAocltuXSA9IFN0cmluZyhhKSk7XG4gICAgICB9XG4gICAgfSksIHQgPSBPYmplY3QuZ2V0UHJvdG90eXBlT2YodCk7XG4gIHJldHVybiByO1xufVxudmFyIHRlID0gcmUoKTtcbmZ1bmN0aW9uIG5yKGUpIHtcbiAgdGUgPSBlO1xufVxuZnVuY3Rpb24gbmUoZSkge1xuICB0cnkge1xuICAgIHRlKGUpO1xuICB9IGNhdGNoIHtcbiAgfVxufVxudmFyIGFyID0gZnVuY3Rpb24oZSwgcikge1xuICB2YXIgdCA9IHR5cGVvZiBTeW1ib2wgPT0gXCJmdW5jdGlvblwiICYmIGVbU3ltYm9sLml0ZXJhdG9yXTtcbiAgaWYgKCF0KSByZXR1cm4gZTtcbiAgdmFyIG4gPSB0LmNhbGwoZSksIGEsIGkgPSBbXSwgbztcbiAgdHJ5IHtcbiAgICBmb3IgKDsgKHIgPT09IHZvaWQgMCB8fCByLS0gPiAwKSAmJiAhKGEgPSBuLm5leHQoKSkuZG9uZTsgKSBpLnB1c2goYS52YWx1ZSk7XG4gIH0gY2F0Y2ggKHUpIHtcbiAgICBvID0geyBlcnJvcjogdSB9O1xuICB9IGZpbmFsbHkge1xuICAgIHRyeSB7XG4gICAgICBhICYmICFhLmRvbmUgJiYgKHQgPSBuLnJldHVybikgJiYgdC5jYWxsKG4pO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBpZiAobykgdGhyb3cgby5lcnJvcjtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGk7XG59LCBpciA9IGZ1bmN0aW9uKGUsIHIsIHQpIHtcbiAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDIpIGZvciAodmFyIG4gPSAwLCBhID0gci5sZW5ndGgsIGk7IG4gPCBhOyBuKyspXG4gICAgKGkgfHwgIShuIGluIHIpKSAmJiAoaSB8fCAoaSA9IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKHIsIDAsIG4pKSwgaVtuXSA9IHJbbl0pO1xuICByZXR1cm4gZS5jb25jYXQoaSB8fCBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChyKSk7XG59O1xuZnVuY3Rpb24gb3IoZSkge1xuICByZXR1cm4gYnRvYShTdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KFN0cmluZywgaXIoW10sIGFyKEEkMShlKSksICExKSkpO1xufVxudmFyIHVyID0gOCwgZnIgPSAxNiwgbHIgPSAoXG4gIC8qKiBAY2xhc3MgKi9cbiAgLyogQF9fUFVSRV9fICovIGZ1bmN0aW9uKCkge1xuICAgIGZ1bmN0aW9uIGUoKSB7XG4gICAgICB0aGlzLmdlbmVyYXRlVHJhY2VJZCA9IFYoZnIpLCB0aGlzLmdlbmVyYXRlU3BhbklkID0gVih1cik7XG4gICAgfVxuICAgIHJldHVybiBlO1xuICB9KClcbiksIHkgPSBBcnJheSgzMik7XG5mdW5jdGlvbiBWKGUpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uKCkge1xuICAgIGZvciAodmFyIHQgPSAwOyB0IDwgZSAqIDI7IHQrKylcbiAgICAgIHlbdF0gPSBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAxNikgKyA0OCwgeVt0XSA+PSA1OCAmJiAoeVt0XSArPSAzOSk7XG4gICAgcmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkobnVsbCwgeS5zbGljZSgwLCBlICogMikpO1xuICB9O1xufVxuZnVuY3Rpb24gc3IoZSkge1xufVxudmFyIGNyID0gZnVuY3Rpb24oZSkge1xuICB2YXIgciA9IHR5cGVvZiBTeW1ib2wgPT0gXCJmdW5jdGlvblwiICYmIFN5bWJvbC5pdGVyYXRvciwgdCA9IHIgJiYgZVtyXSwgbiA9IDA7XG4gIGlmICh0KSByZXR1cm4gdC5jYWxsKGUpO1xuICBpZiAoZSAmJiB0eXBlb2YgZS5sZW5ndGggPT0gXCJudW1iZXJcIikgcmV0dXJuIHtcbiAgICBuZXh0OiBmdW5jdGlvbigpIHtcbiAgICAgIHJldHVybiBlICYmIG4gPj0gZS5sZW5ndGggJiYgKGUgPSB2b2lkIDApLCB7IHZhbHVlOiBlICYmIGVbbisrXSwgZG9uZTogIWUgfTtcbiAgICB9XG4gIH07XG4gIHRocm93IG5ldyBUeXBlRXJyb3IociA/IFwiT2JqZWN0IGlzIG5vdCBpdGVyYWJsZS5cIiA6IFwiU3ltYm9sLml0ZXJhdG9yIGlzIG5vdCBkZWZpbmVkLlwiKTtcbn0sIHByID0gKFxuICAvKiogQGNsYXNzICovXG4gIGZ1bmN0aW9uKCkge1xuICAgIGZ1bmN0aW9uIGUocikge1xuICAgICAgciA9PT0gdm9pZCAwICYmIChyID0ge30pO1xuICAgICAgdmFyIHQ7XG4gICAgICB0aGlzLl9wcm9wYWdhdG9ycyA9ICh0ID0gci5wcm9wYWdhdG9ycykgIT09IG51bGwgJiYgdCAhPT0gdm9pZCAwID8gdCA6IFtdLCB0aGlzLl9maWVsZHMgPSBBcnJheS5mcm9tKG5ldyBTZXQodGhpcy5fcHJvcGFnYXRvcnMubWFwKGZ1bmN0aW9uKG4pIHtcbiAgICAgICAgcmV0dXJuIHR5cGVvZiBuLmZpZWxkcyA9PSBcImZ1bmN0aW9uXCIgPyBuLmZpZWxkcygpIDogW107XG4gICAgICB9KS5yZWR1Y2UoZnVuY3Rpb24obiwgYSkge1xuICAgICAgICByZXR1cm4gbi5jb25jYXQoYSk7XG4gICAgICB9LCBbXSkpKTtcbiAgICB9XG4gICAgcmV0dXJuIGUucHJvdG90eXBlLmluamVjdCA9IGZ1bmN0aW9uKHIkMSwgdCwgbikge1xuICAgICAgdmFyIGEsIGk7XG4gICAgICB0cnkge1xuICAgICAgICBmb3IgKHZhciBvID0gY3IodGhpcy5fcHJvcGFnYXRvcnMpLCB1ID0gby5uZXh0KCk7ICF1LmRvbmU7IHUgPSBvLm5leHQoKSkge1xuICAgICAgICAgIHZhciBmID0gdS52YWx1ZTtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgZi5pbmplY3QociQxLCB0LCBuKTtcbiAgICAgICAgICB9IGNhdGNoIChsKSB7XG4gICAgICAgICAgICByLndhcm4oXCJGYWlsZWQgdG8gaW5qZWN0IHdpdGggXCIgKyBmLmNvbnN0cnVjdG9yLm5hbWUgKyBcIi4gRXJyOiBcIiArIGwubWVzc2FnZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9IGNhdGNoIChsKSB7XG4gICAgICAgIGEgPSB7IGVycm9yOiBsIH07XG4gICAgICB9IGZpbmFsbHkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIHUgJiYgIXUuZG9uZSAmJiAoaSA9IG8ucmV0dXJuKSAmJiBpLmNhbGwobyk7XG4gICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgaWYgKGEpIHRocm93IGEuZXJyb3I7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LCBlLnByb3RvdHlwZS5leHRyYWN0ID0gZnVuY3Rpb24ociQxLCB0LCBuKSB7XG4gICAgICByZXR1cm4gdGhpcy5fcHJvcGFnYXRvcnMucmVkdWNlKGZ1bmN0aW9uKGEsIGkpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICByZXR1cm4gaS5leHRyYWN0KGEsIHQsIG4pO1xuICAgICAgICB9IGNhdGNoIChvKSB7XG4gICAgICAgICAgci53YXJuKFwiRmFpbGVkIHRvIGV4dHJhY3Qgd2l0aCBcIiArIGkuY29uc3RydWN0b3IubmFtZSArIFwiLiBFcnI6IFwiICsgby5tZXNzYWdlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYTtcbiAgICAgIH0sIHIkMSk7XG4gICAgfSwgZS5wcm90b3R5cGUuZmllbGRzID0gZnVuY3Rpb24oKSB7XG4gICAgICByZXR1cm4gdGhpcy5fZmllbGRzLnNsaWNlKCk7XG4gICAgfSwgZTtcbiAgfSgpXG4pLCBJID0gXCJbXzAtOWEtei0qL11cIiwgZHIgPSBcIlthLXpdXCIgKyBJICsgXCJ7MCwyNTV9XCIsIF9yID0gXCJbYS16MC05XVwiICsgSSArIFwiezAsMjQwfUBbYS16XVwiICsgSSArIFwiezAsMTN9XCIsIHlyID0gbmV3IFJlZ0V4cChcIl4oPzpcIiArIGRyICsgXCJ8XCIgKyBfciArIFwiKSRcIiksIHZyID0gL15bIC1+XXswLDI1NX1bIS1+XSQvLCBociA9IC8sfD0vO1xuZnVuY3Rpb24gbXIoZSkge1xuICByZXR1cm4geXIudGVzdChlKTtcbn1cbmZ1bmN0aW9uIGdyKGUpIHtcbiAgcmV0dXJuIHZyLnRlc3QoZSkgJiYgIWhyLnRlc3QoZSk7XG59XG52YXIgVSA9IDMyLCBTciA9IDUxMiwgSCA9IFwiLFwiLCBLID0gXCI9XCIsIGFlID0gKFxuICAvKiogQGNsYXNzICovXG4gIGZ1bmN0aW9uKCkge1xuICAgIGZ1bmN0aW9uIGUocikge1xuICAgICAgdGhpcy5faW50ZXJuYWxTdGF0ZSA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgTWFwKCksIHIgJiYgdGhpcy5fcGFyc2Uocik7XG4gICAgfVxuICAgIHJldHVybiBlLnByb3RvdHlwZS5zZXQgPSBmdW5jdGlvbihyLCB0KSB7XG4gICAgICB2YXIgbiA9IHRoaXMuX2Nsb25lKCk7XG4gICAgICByZXR1cm4gbi5faW50ZXJuYWxTdGF0ZS5oYXMocikgJiYgbi5faW50ZXJuYWxTdGF0ZS5kZWxldGUociksIG4uX2ludGVybmFsU3RhdGUuc2V0KHIsIHQpLCBuO1xuICAgIH0sIGUucHJvdG90eXBlLnVuc2V0ID0gZnVuY3Rpb24ocikge1xuICAgICAgdmFyIHQgPSB0aGlzLl9jbG9uZSgpO1xuICAgICAgcmV0dXJuIHQuX2ludGVybmFsU3RhdGUuZGVsZXRlKHIpLCB0O1xuICAgIH0sIGUucHJvdG90eXBlLmdldCA9IGZ1bmN0aW9uKHIpIHtcbiAgICAgIHJldHVybiB0aGlzLl9pbnRlcm5hbFN0YXRlLmdldChyKTtcbiAgICB9LCBlLnByb3RvdHlwZS5zZXJpYWxpemUgPSBmdW5jdGlvbigpIHtcbiAgICAgIHZhciByID0gdGhpcztcbiAgICAgIHJldHVybiB0aGlzLl9rZXlzKCkucmVkdWNlKGZ1bmN0aW9uKHQsIG4pIHtcbiAgICAgICAgcmV0dXJuIHQucHVzaChuICsgSyArIHIuZ2V0KG4pKSwgdDtcbiAgICAgIH0sIFtdKS5qb2luKEgpO1xuICAgIH0sIGUucHJvdG90eXBlLl9wYXJzZSA9IGZ1bmN0aW9uKHIpIHtcbiAgICAgIHIubGVuZ3RoID4gU3IgfHwgKHRoaXMuX2ludGVybmFsU3RhdGUgPSByLnNwbGl0KEgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24odCwgbikge1xuICAgICAgICB2YXIgYSA9IG4udHJpbSgpLCBpID0gYS5pbmRleE9mKEspO1xuICAgICAgICBpZiAoaSAhPT0gLTEpIHtcbiAgICAgICAgICB2YXIgbyA9IGEuc2xpY2UoMCwgaSksIHUgPSBhLnNsaWNlKGkgKyAxLCBuLmxlbmd0aCk7XG4gICAgICAgICAgbXIobykgJiYgZ3IodSkgJiYgdC5zZXQobywgdSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHQ7XG4gICAgICB9LCAvKiBAX19QVVJFX18gKi8gbmV3IE1hcCgpKSwgdGhpcy5faW50ZXJuYWxTdGF0ZS5zaXplID4gVSAmJiAodGhpcy5faW50ZXJuYWxTdGF0ZSA9IG5ldyBNYXAoQXJyYXkuZnJvbSh0aGlzLl9pbnRlcm5hbFN0YXRlLmVudHJpZXMoKSkucmV2ZXJzZSgpLnNsaWNlKDAsIFUpKSkpO1xuICAgIH0sIGUucHJvdG90eXBlLl9rZXlzID0gZnVuY3Rpb24oKSB7XG4gICAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLl9pbnRlcm5hbFN0YXRlLmtleXMoKSkucmV2ZXJzZSgpO1xuICAgIH0sIGUucHJvdG90eXBlLl9jbG9uZSA9IGZ1bmN0aW9uKCkge1xuICAgICAgdmFyIHIgPSBuZXcgZSgpO1xuICAgICAgcmV0dXJuIHIuX2ludGVybmFsU3RhdGUgPSBuZXcgTWFwKHRoaXMuX2ludGVybmFsU3RhdGUpLCByO1xuICAgIH0sIGU7XG4gIH0oKVxuKSwgdiA9IFwidHJhY2VwYXJlbnRcIiwgaCA9IFwidHJhY2VzdGF0ZVwiLCBBciA9IFwiMDBcIiwgRXIgPSBcIig/IWZmKVtcXFxcZGEtZl17Mn1cIiwgVHIgPSBcIig/IVswXXszMn0pW1xcXFxkYS1mXXszMn1cIiwgUHIgPSBcIig/IVswXXsxNn0pW1xcXFxkYS1mXXsxNn1cIiwgUnIgPSBcIltcXFxcZGEtZl17Mn1cIiwgT3IgPSBuZXcgUmVnRXhwKFwiXlxcXFxzPyhcIiArIEVyICsgXCIpLShcIiArIFRyICsgXCIpLShcIiArIFByICsgXCIpLShcIiArIFJyICsgXCIpKC0uKik/XFxcXHM/JFwiKTtcbmZ1bmN0aW9uIGllKGUpIHtcbiAgdmFyIHIgPSBPci5leGVjKGUpO1xuICByZXR1cm4gIXIgfHwgclsxXSA9PT0gXCIwMFwiICYmIHJbNV0gPyBudWxsIDoge1xuICAgIHRyYWNlSWQ6IHJbMl0sXG4gICAgc3BhbklkOiByWzNdLFxuICAgIHRyYWNlRmxhZ3M6IHBhcnNlSW50KHJbNF0sIDE2KVxuICB9O1xufVxudmFyIGJyID0gKFxuICAvKiogQGNsYXNzICovXG4gIGZ1bmN0aW9uKCkge1xuICAgIGZ1bmN0aW9uIGUoKSB7XG4gICAgfVxuICAgIHJldHVybiBlLnByb3RvdHlwZS5pbmplY3QgPSBmdW5jdGlvbihyLCB0LCBuKSB7XG4gICAgICB2YXIgYSA9IEdlLmdldFNwYW5Db250ZXh0KHIpO1xuICAgICAgaWYgKCEoIWEgfHwgdyhyKSB8fCAha24oYSkpKSB7XG4gICAgICAgIHZhciBpID0gQXIgKyBcIi1cIiArIGEudHJhY2VJZCArIFwiLVwiICsgYS5zcGFuSWQgKyBcIi0wXCIgKyBOdW1iZXIoYS50cmFjZUZsYWdzIHx8IFh0Lk5PTkUpLnRvU3RyaW5nKDE2KTtcbiAgICAgICAgbi5zZXQodCwgdiwgaSksIGEudHJhY2VTdGF0ZSAmJiBuLnNldCh0LCBoLCBhLnRyYWNlU3RhdGUuc2VyaWFsaXplKCkpO1xuICAgICAgfVxuICAgIH0sIGUucHJvdG90eXBlLmV4dHJhY3QgPSBmdW5jdGlvbihyLCB0LCBuKSB7XG4gICAgICB2YXIgYSA9IG4uZ2V0KHQsIHYpO1xuICAgICAgaWYgKCFhKVxuICAgICAgICByZXR1cm4gcjtcbiAgICAgIHZhciBpID0gQXJyYXkuaXNBcnJheShhKSA/IGFbMF0gOiBhO1xuICAgICAgaWYgKHR5cGVvZiBpICE9IFwic3RyaW5nXCIpXG4gICAgICAgIHJldHVybiByO1xuICAgICAgdmFyIG8gPSBpZShpKTtcbiAgICAgIGlmICghbylcbiAgICAgICAgcmV0dXJuIHI7XG4gICAgICBvLmlzUmVtb3RlID0gITA7XG4gICAgICB2YXIgdSA9IG4uZ2V0KHQsIGgpO1xuICAgICAgaWYgKHUpIHtcbiAgICAgICAgdmFyIGYgPSBBcnJheS5pc0FycmF5KHUpID8gdS5qb2luKFwiLFwiKSA6IHU7XG4gICAgICAgIG8udHJhY2VTdGF0ZSA9IG5ldyBhZSh0eXBlb2YgZiA9PSBcInN0cmluZ1wiID8gZiA6IHZvaWQgMCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gR2Uuc2V0U3BhbkNvbnRleHQociwgbyk7XG4gICAgfSwgZS5wcm90b3R5cGUuZmllbGRzID0gZnVuY3Rpb24oKSB7XG4gICAgICByZXR1cm4gW3YsIGhdO1xuICAgIH0sIGU7XG4gIH0oKVxuKSwgTCA9IHJzKFwiT3BlblRlbGVtZXRyeSBTREsgQ29udGV4dCBLZXkgUlBDX01FVEFEQVRBXCIpLCBqO1xuKGZ1bmN0aW9uKGUpIHtcbiAgZS5IVFRQID0gXCJodHRwXCI7XG59KShqIHx8IChqID0ge30pKTtcbmZ1bmN0aW9uIENyKGUsIHIpIHtcbiAgcmV0dXJuIGUuc2V0VmFsdWUoTCwgcik7XG59XG5mdW5jdGlvbiBJcihlKSB7XG4gIHJldHVybiBlLmRlbGV0ZVZhbHVlKEwpO1xufVxuZnVuY3Rpb24ganIoZSkge1xuICByZXR1cm4gZS5nZXRWYWx1ZShMKTtcbn1cbnZhciBNID0gKFxuICAvKiogQGNsYXNzICovXG4gIGZ1bmN0aW9uKCkge1xuICAgIGZ1bmN0aW9uIGUoKSB7XG4gICAgfVxuICAgIHJldHVybiBlLnByb3RvdHlwZS5zaG91bGRTYW1wbGUgPSBmdW5jdGlvbigpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGRlY2lzaW9uOiBwLk5PVF9SRUNPUkRcbiAgICAgIH07XG4gICAgfSwgZS5wcm90b3R5cGUudG9TdHJpbmcgPSBmdW5jdGlvbigpIHtcbiAgICAgIHJldHVybiBcIkFsd2F5c09mZlNhbXBsZXJcIjtcbiAgICB9LCBlO1xuICB9KClcbiksIG0gPSAoXG4gIC8qKiBAY2xhc3MgKi9cbiAgZnVuY3Rpb24oKSB7XG4gICAgZnVuY3Rpb24gZSgpIHtcbiAgICB9XG4gICAgcmV0dXJuIGUucHJvdG90eXBlLnNob3VsZFNhbXBsZSA9IGZ1bmN0aW9uKCkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgZGVjaXNpb246IHAuUkVDT1JEX0FORF9TQU1QTEVEXG4gICAgICB9O1xuICAgIH0sIGUucHJvdG90eXBlLnRvU3RyaW5nID0gZnVuY3Rpb24oKSB7XG4gICAgICByZXR1cm4gXCJBbHdheXNPblNhbXBsZXJcIjtcbiAgICB9LCBlO1xuICB9KClcbiksIE1yID0gKFxuICAvKiogQGNsYXNzICovXG4gIGZ1bmN0aW9uKCkge1xuICAgIGZ1bmN0aW9uIGUocikge1xuICAgICAgdmFyIHQsIG4sIGEsIGk7XG4gICAgICB0aGlzLl9yb290ID0gci5yb290LCB0aGlzLl9yb290IHx8IChuZShuZXcgRXJyb3IoXCJQYXJlbnRCYXNlZFNhbXBsZXIgbXVzdCBoYXZlIGEgcm9vdCBzYW1wbGVyIGNvbmZpZ3VyZWRcIikpLCB0aGlzLl9yb290ID0gbmV3IG0oKSksIHRoaXMuX3JlbW90ZVBhcmVudFNhbXBsZWQgPSAodCA9IHIucmVtb3RlUGFyZW50U2FtcGxlZCkgIT09IG51bGwgJiYgdCAhPT0gdm9pZCAwID8gdCA6IG5ldyBtKCksIHRoaXMuX3JlbW90ZVBhcmVudE5vdFNhbXBsZWQgPSAobiA9IHIucmVtb3RlUGFyZW50Tm90U2FtcGxlZCkgIT09IG51bGwgJiYgbiAhPT0gdm9pZCAwID8gbiA6IG5ldyBNKCksIHRoaXMuX2xvY2FsUGFyZW50U2FtcGxlZCA9IChhID0gci5sb2NhbFBhcmVudFNhbXBsZWQpICE9PSBudWxsICYmIGEgIT09IHZvaWQgMCA/IGEgOiBuZXcgbSgpLCB0aGlzLl9sb2NhbFBhcmVudE5vdFNhbXBsZWQgPSAoaSA9IHIubG9jYWxQYXJlbnROb3RTYW1wbGVkKSAhPT0gbnVsbCAmJiBpICE9PSB2b2lkIDAgPyBpIDogbmV3IE0oKTtcbiAgICB9XG4gICAgcmV0dXJuIGUucHJvdG90eXBlLnNob3VsZFNhbXBsZSA9IGZ1bmN0aW9uKHIsIHQsIG4sIGEsIGksIG8pIHtcbiAgICAgIHZhciB1ID0gR2UuZ2V0U3BhbkNvbnRleHQocik7XG4gICAgICByZXR1cm4gIXUgfHwgIWtuKHUpID8gdGhpcy5fcm9vdC5zaG91bGRTYW1wbGUociwgdCwgbiwgYSwgaSwgbykgOiB1LmlzUmVtb3RlID8gdS50cmFjZUZsYWdzICYgWHQuU0FNUExFRCA/IHRoaXMuX3JlbW90ZVBhcmVudFNhbXBsZWQuc2hvdWxkU2FtcGxlKHIsIHQsIG4sIGEsIGksIG8pIDogdGhpcy5fcmVtb3RlUGFyZW50Tm90U2FtcGxlZC5zaG91bGRTYW1wbGUociwgdCwgbiwgYSwgaSwgbykgOiB1LnRyYWNlRmxhZ3MgJiBYdC5TQU1QTEVEID8gdGhpcy5fbG9jYWxQYXJlbnRTYW1wbGVkLnNob3VsZFNhbXBsZShyLCB0LCBuLCBhLCBpLCBvKSA6IHRoaXMuX2xvY2FsUGFyZW50Tm90U2FtcGxlZC5zaG91bGRTYW1wbGUociwgdCwgbiwgYSwgaSwgbyk7XG4gICAgfSwgZS5wcm90b3R5cGUudG9TdHJpbmcgPSBmdW5jdGlvbigpIHtcbiAgICAgIHJldHVybiBcIlBhcmVudEJhc2Vke3Jvb3Q9XCIgKyB0aGlzLl9yb290LnRvU3RyaW5nKCkgKyBcIiwgcmVtb3RlUGFyZW50U2FtcGxlZD1cIiArIHRoaXMuX3JlbW90ZVBhcmVudFNhbXBsZWQudG9TdHJpbmcoKSArIFwiLCByZW1vdGVQYXJlbnROb3RTYW1wbGVkPVwiICsgdGhpcy5fcmVtb3RlUGFyZW50Tm90U2FtcGxlZC50b1N0cmluZygpICsgXCIsIGxvY2FsUGFyZW50U2FtcGxlZD1cIiArIHRoaXMuX2xvY2FsUGFyZW50U2FtcGxlZC50b1N0cmluZygpICsgXCIsIGxvY2FsUGFyZW50Tm90U2FtcGxlZD1cIiArIHRoaXMuX2xvY2FsUGFyZW50Tm90U2FtcGxlZC50b1N0cmluZygpICsgXCJ9XCI7XG4gICAgfSwgZTtcbiAgfSgpXG4pLCBOciA9IChcbiAgLyoqIEBjbGFzcyAqL1xuICBmdW5jdGlvbigpIHtcbiAgICBmdW5jdGlvbiBlKHIpIHtcbiAgICAgIHIgPT09IHZvaWQgMCAmJiAociA9IDApLCB0aGlzLl9yYXRpbyA9IHIsIHRoaXMuX3JhdGlvID0gdGhpcy5fbm9ybWFsaXplKHIpLCB0aGlzLl91cHBlckJvdW5kID0gTWF0aC5mbG9vcih0aGlzLl9yYXRpbyAqIDQyOTQ5NjcyOTUpO1xuICAgIH1cbiAgICByZXR1cm4gZS5wcm90b3R5cGUuc2hvdWxkU2FtcGxlID0gZnVuY3Rpb24ociwgdCkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgZGVjaXNpb246IGhzKHQpICYmIHRoaXMuX2FjY3VtdWxhdGUodCkgPCB0aGlzLl91cHBlckJvdW5kID8gcC5SRUNPUkRfQU5EX1NBTVBMRUQgOiBwLk5PVF9SRUNPUkRcbiAgICAgIH07XG4gICAgfSwgZS5wcm90b3R5cGUudG9TdHJpbmcgPSBmdW5jdGlvbigpIHtcbiAgICAgIHJldHVybiBcIlRyYWNlSWRSYXRpb0Jhc2Vke1wiICsgdGhpcy5fcmF0aW8gKyBcIn1cIjtcbiAgICB9LCBlLnByb3RvdHlwZS5fbm9ybWFsaXplID0gZnVuY3Rpb24ocikge1xuICAgICAgcmV0dXJuIHR5cGVvZiByICE9IFwibnVtYmVyXCIgfHwgaXNOYU4ocikgPyAwIDogciA+PSAxID8gMSA6IHIgPD0gMCA/IDAgOiByO1xuICAgIH0sIGUucHJvdG90eXBlLl9hY2N1bXVsYXRlID0gZnVuY3Rpb24ocikge1xuICAgICAgZm9yICh2YXIgdCA9IDAsIG4gPSAwOyBuIDwgci5sZW5ndGggLyA4OyBuKyspIHtcbiAgICAgICAgdmFyIGEgPSBuICogOCwgaSA9IHBhcnNlSW50KHIuc2xpY2UoYSwgYSArIDgpLCAxNik7XG4gICAgICAgIHQgPSAodCBeIGkpID4+PiAwO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHQ7XG4gICAgfSwgZTtcbiAgfSgpXG4pLCB3ciA9IFwiW29iamVjdCBPYmplY3RdXCIsIERyID0gXCJbb2JqZWN0IE51bGxdXCIsIExyID0gXCJbb2JqZWN0IFVuZGVmaW5lZF1cIiwgeHIgPSBGdW5jdGlvbi5wcm90b3R5cGUsIG9lID0geHIudG9TdHJpbmcsIEdyID0gb2UuY2FsbChPYmplY3QpLCBCciA9IFZyKE9iamVjdC5nZXRQcm90b3R5cGVPZiwgT2JqZWN0KSwgdWUgPSBPYmplY3QucHJvdG90eXBlLCBmZSA9IHVlLmhhc093blByb3BlcnR5LCBzID0gU3ltYm9sID8gU3ltYm9sLnRvU3RyaW5nVGFnIDogdm9pZCAwLCBsZSA9IHVlLnRvU3RyaW5nO1xuZnVuY3Rpb24gVnIoZSwgcikge1xuICByZXR1cm4gZnVuY3Rpb24odCkge1xuICAgIHJldHVybiBlKHIodCkpO1xuICB9O1xufVxuZnVuY3Rpb24gRihlKSB7XG4gIGlmICghVXIoZSkgfHwgSHIoZSkgIT09IHdyKVxuICAgIHJldHVybiAhMTtcbiAgdmFyIHIgPSBCcihlKTtcbiAgaWYgKHIgPT09IG51bGwpXG4gICAgcmV0dXJuICEwO1xuICB2YXIgdCA9IGZlLmNhbGwociwgXCJjb25zdHJ1Y3RvclwiKSAmJiByLmNvbnN0cnVjdG9yO1xuICByZXR1cm4gdHlwZW9mIHQgPT0gXCJmdW5jdGlvblwiICYmIHQgaW5zdGFuY2VvZiB0ICYmIG9lLmNhbGwodCkgPT09IEdyO1xufVxuZnVuY3Rpb24gVXIoZSkge1xuICByZXR1cm4gZSAhPSBudWxsICYmIHR5cGVvZiBlID09IFwib2JqZWN0XCI7XG59XG5mdW5jdGlvbiBIcihlKSB7XG4gIHJldHVybiBlID09IG51bGwgPyBlID09PSB2b2lkIDAgPyBMciA6IERyIDogcyAmJiBzIGluIE9iamVjdChlKSA/IEtyKGUpIDogRnIoZSk7XG59XG5mdW5jdGlvbiBLcihlKSB7XG4gIHZhciByID0gZmUuY2FsbChlLCBzKSwgdCA9IGVbc10sIG4gPSAhMTtcbiAgdHJ5IHtcbiAgICBlW3NdID0gdm9pZCAwLCBuID0gITA7XG4gIH0gY2F0Y2gge1xuICB9XG4gIHZhciBhID0gbGUuY2FsbChlKTtcbiAgcmV0dXJuIG4gJiYgKHIgPyBlW3NdID0gdCA6IGRlbGV0ZSBlW3NdKSwgYTtcbn1cbmZ1bmN0aW9uIEZyKGUpIHtcbiAgcmV0dXJuIGxlLmNhbGwoZSk7XG59XG52YXIgenIgPSAyMDtcbmZ1bmN0aW9uIGtyKCkge1xuICBmb3IgKHZhciBlID0gW10sIHIgPSAwOyByIDwgYXJndW1lbnRzLmxlbmd0aDsgcisrKVxuICAgIGVbcl0gPSBhcmd1bWVudHNbcl07XG4gIGZvciAodmFyIHQgPSBlLnNoaWZ0KCksIG4gPSAvKiBAX19QVVJFX18gKi8gbmV3IFdlYWtNYXAoKTsgZS5sZW5ndGggPiAwOyApXG4gICAgdCA9IHNlKHQsIGUuc2hpZnQoKSwgMCwgbik7XG4gIHJldHVybiB0O1xufVxuZnVuY3Rpb24gUihlKSB7XG4gIHJldHVybiBBKGUpID8gZS5zbGljZSgpIDogZTtcbn1cbmZ1bmN0aW9uIHNlKGUsIHIsIHQsIG4pIHtcbiAgdCA9PT0gdm9pZCAwICYmICh0ID0gMCk7XG4gIHZhciBhO1xuICBpZiAoISh0ID4genIpKSB7XG4gICAgaWYgKHQrKywgZyhlKSB8fCBnKHIpIHx8IGNlKHIpKVxuICAgICAgYSA9IFIocik7XG4gICAgZWxzZSBpZiAoQShlKSkge1xuICAgICAgaWYgKGEgPSBlLnNsaWNlKCksIEEocikpXG4gICAgICAgIGZvciAodmFyIGkgPSAwLCBvID0gci5sZW5ndGg7IGkgPCBvOyBpKyspXG4gICAgICAgICAgYS5wdXNoKFIocltpXSkpO1xuICAgICAgZWxzZSBpZiAoZChyKSlcbiAgICAgICAgZm9yICh2YXIgdSA9IE9iamVjdC5rZXlzKHIpLCBpID0gMCwgbyA9IHUubGVuZ3RoOyBpIDwgbzsgaSsrKSB7XG4gICAgICAgICAgdmFyIGYgPSB1W2ldO1xuICAgICAgICAgIGFbZl0gPSBSKHJbZl0pO1xuICAgICAgICB9XG4gICAgfSBlbHNlIGlmIChkKGUpKVxuICAgICAgaWYgKGQocikpIHtcbiAgICAgICAgaWYgKCFZcihlLCByKSlcbiAgICAgICAgICByZXR1cm4gcjtcbiAgICAgICAgYSA9IE9iamVjdC5hc3NpZ24oe30sIGUpO1xuICAgICAgICBmb3IgKHZhciB1ID0gT2JqZWN0LmtleXMociksIGkgPSAwLCBvID0gdS5sZW5ndGg7IGkgPCBvOyBpKyspIHtcbiAgICAgICAgICB2YXIgZiA9IHVbaV0sIGwgPSByW2ZdO1xuICAgICAgICAgIGlmIChnKGwpKVxuICAgICAgICAgICAgdHlwZW9mIGwgPiBcInVcIiA/IGRlbGV0ZSBhW2ZdIDogYVtmXSA9IGw7XG4gICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB2YXIgYyA9IGFbZl0sIEUgPSBsO1xuICAgICAgICAgICAgaWYgKHooZSwgZiwgbikgfHwgeihyLCBmLCBuKSlcbiAgICAgICAgICAgICAgZGVsZXRlIGFbZl07XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgaWYgKGQoYykgJiYgZChFKSkge1xuICAgICAgICAgICAgICAgIHZhciB4ID0gbi5nZXQoYykgfHwgW10sIEcgPSBuLmdldChFKSB8fCBbXTtcbiAgICAgICAgICAgICAgICB4LnB1c2goeyBvYmo6IGUsIGtleTogZiB9KSwgRy5wdXNoKHsgb2JqOiByLCBrZXk6IGYgfSksIG4uc2V0KGMsIHgpLCBuLnNldChFLCBHKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBhW2ZdID0gc2UoYVtmXSwgbCwgdCwgbik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9IGVsc2VcbiAgICAgICAgYSA9IHI7XG4gICAgcmV0dXJuIGE7XG4gIH1cbn1cbmZ1bmN0aW9uIHooZSwgciwgdCkge1xuICBmb3IgKHZhciBuID0gdC5nZXQoZVtyXSkgfHwgW10sIGEgPSAwLCBpID0gbi5sZW5ndGg7IGEgPCBpOyBhKyspIHtcbiAgICB2YXIgbyA9IG5bYV07XG4gICAgaWYgKG8ua2V5ID09PSByICYmIG8ub2JqID09PSBlKVxuICAgICAgcmV0dXJuICEwO1xuICB9XG4gIHJldHVybiAhMTtcbn1cbmZ1bmN0aW9uIEEoZSkge1xuICByZXR1cm4gQXJyYXkuaXNBcnJheShlKTtcbn1cbmZ1bmN0aW9uIGNlKGUpIHtcbiAgcmV0dXJuIHR5cGVvZiBlID09IFwiZnVuY3Rpb25cIjtcbn1cbmZ1bmN0aW9uIGQoZSkge1xuICByZXR1cm4gIWcoZSkgJiYgIUEoZSkgJiYgIWNlKGUpICYmIHR5cGVvZiBlID09IFwib2JqZWN0XCI7XG59XG5mdW5jdGlvbiBnKGUpIHtcbiAgcmV0dXJuIHR5cGVvZiBlID09IFwic3RyaW5nXCIgfHwgdHlwZW9mIGUgPT0gXCJudW1iZXJcIiB8fCB0eXBlb2YgZSA9PSBcImJvb2xlYW5cIiB8fCB0eXBlb2YgZSA+IFwidVwiIHx8IGUgaW5zdGFuY2VvZiBEYXRlIHx8IGUgaW5zdGFuY2VvZiBSZWdFeHAgfHwgZSA9PT0gbnVsbDtcbn1cbmZ1bmN0aW9uIFlyKGUsIHIpIHtcbiAgcmV0dXJuICEoIUYoZSkgfHwgIUYocikpO1xufVxudmFyIFhyID0gLyogQF9fUFVSRV9fICovIGZ1bmN0aW9uKCkge1xuICB2YXIgZSA9IGZ1bmN0aW9uKHIsIHQpIHtcbiAgICByZXR1cm4gZSA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fCB7IF9fcHJvdG9fXzogW10gfSBpbnN0YW5jZW9mIEFycmF5ICYmIGZ1bmN0aW9uKG4sIGEpIHtcbiAgICAgIG4uX19wcm90b19fID0gYTtcbiAgICB9IHx8IGZ1bmN0aW9uKG4sIGEpIHtcbiAgICAgIGZvciAodmFyIGkgaW4gYSkgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGEsIGkpICYmIChuW2ldID0gYVtpXSk7XG4gICAgfSwgZShyLCB0KTtcbiAgfTtcbiAgcmV0dXJuIGZ1bmN0aW9uKHIsIHQpIHtcbiAgICBpZiAodHlwZW9mIHQgIT0gXCJmdW5jdGlvblwiICYmIHQgIT09IG51bGwpXG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2xhc3MgZXh0ZW5kcyB2YWx1ZSBcIiArIFN0cmluZyh0KSArIFwiIGlzIG5vdCBhIGNvbnN0cnVjdG9yIG9yIG51bGxcIik7XG4gICAgZShyLCB0KTtcbiAgICBmdW5jdGlvbiBuKCkge1xuICAgICAgdGhpcy5jb25zdHJ1Y3RvciA9IHI7XG4gICAgfVxuICAgIHIucHJvdG90eXBlID0gdCA9PT0gbnVsbCA/IE9iamVjdC5jcmVhdGUodCkgOiAobi5wcm90b3R5cGUgPSB0LnByb3RvdHlwZSwgbmV3IG4oKSk7XG4gIH07XG59KCksIHBlID0gKFxuICAvKiogQGNsYXNzICovXG4gIGZ1bmN0aW9uKGUpIHtcbiAgICBYcihyLCBlKTtcbiAgICBmdW5jdGlvbiByKHQpIHtcbiAgICAgIHZhciBuID0gZS5jYWxsKHRoaXMsIHQpIHx8IHRoaXM7XG4gICAgICByZXR1cm4gT2JqZWN0LnNldFByb3RvdHlwZU9mKG4sIHIucHJvdG90eXBlKSwgbjtcbiAgICB9XG4gICAgcmV0dXJuIHI7XG4gIH0oRXJyb3IpXG4pO1xuZnVuY3Rpb24gV3IoZSwgcikge1xuICB2YXIgdCwgbiA9IG5ldyBQcm9taXNlKGZ1bmN0aW9uKGksIG8pIHtcbiAgICB0ID0gc2V0VGltZW91dChmdW5jdGlvbigpIHtcbiAgICAgIG8obmV3IHBlKFwiT3BlcmF0aW9uIHRpbWVkIG91dC5cIikpO1xuICAgIH0sIHIpO1xuICB9KTtcbiAgcmV0dXJuIFByb21pc2UucmFjZShbZSwgbl0pLnRoZW4oZnVuY3Rpb24oYSkge1xuICAgIHJldHVybiBjbGVhclRpbWVvdXQodCksIGE7XG4gIH0sIGZ1bmN0aW9uKGEpIHtcbiAgICB0aHJvdyBjbGVhclRpbWVvdXQodCksIGE7XG4gIH0pO1xufVxuZnVuY3Rpb24gJHIoZSkge1xuICByZXR1cm4gdHlwZW9mIGUgPT0gXCJmdW5jdGlvblwiICYmIHR5cGVvZiBlLl9fb3JpZ2luYWwgPT0gXCJmdW5jdGlvblwiICYmIHR5cGVvZiBlLl9fdW53cmFwID09IFwiZnVuY3Rpb25cIiAmJiBlLl9fd3JhcHBlZCA9PT0gITA7XG59XG52YXIgSnIgPSAoXG4gIC8qKiBAY2xhc3MgKi9cbiAgZnVuY3Rpb24oKSB7XG4gICAgZnVuY3Rpb24gZSgpIHtcbiAgICAgIHZhciByID0gdGhpcztcbiAgICAgIHRoaXMuX3Byb21pc2UgPSBuZXcgUHJvbWlzZShmdW5jdGlvbih0LCBuKSB7XG4gICAgICAgIHIuX3Jlc29sdmUgPSB0LCByLl9yZWplY3QgPSBuO1xuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsIFwicHJvbWlzZVwiLCB7XG4gICAgICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fcHJvbWlzZTtcbiAgICAgIH0sXG4gICAgICBlbnVtZXJhYmxlOiAhMSxcbiAgICAgIGNvbmZpZ3VyYWJsZTogITBcbiAgICB9KSwgZS5wcm90b3R5cGUucmVzb2x2ZSA9IGZ1bmN0aW9uKHIpIHtcbiAgICAgIHRoaXMuX3Jlc29sdmUocik7XG4gICAgfSwgZS5wcm90b3R5cGUucmVqZWN0ID0gZnVuY3Rpb24ocikge1xuICAgICAgdGhpcy5fcmVqZWN0KHIpO1xuICAgIH0sIGU7XG4gIH0oKVxuKSwgcXIgPSBmdW5jdGlvbihlLCByKSB7XG4gIHZhciB0ID0gdHlwZW9mIFN5bWJvbCA9PSBcImZ1bmN0aW9uXCIgJiYgZVtTeW1ib2wuaXRlcmF0b3JdO1xuICBpZiAoIXQpIHJldHVybiBlO1xuICB2YXIgbiA9IHQuY2FsbChlKSwgYSwgaSA9IFtdLCBvO1xuICB0cnkge1xuICAgIGZvciAoOyAociA9PT0gdm9pZCAwIHx8IHItLSA+IDApICYmICEoYSA9IG4ubmV4dCgpKS5kb25lOyApIGkucHVzaChhLnZhbHVlKTtcbiAgfSBjYXRjaCAodSkge1xuICAgIG8gPSB7IGVycm9yOiB1IH07XG4gIH0gZmluYWxseSB7XG4gICAgdHJ5IHtcbiAgICAgIGEgJiYgIWEuZG9uZSAmJiAodCA9IG4ucmV0dXJuKSAmJiB0LmNhbGwobik7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGlmIChvKSB0aHJvdyBvLmVycm9yO1xuICAgIH1cbiAgfVxuICByZXR1cm4gaTtcbn0sIFFyID0gZnVuY3Rpb24oZSwgciwgdCkge1xuICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMikgZm9yICh2YXIgbiA9IDAsIGEgPSByLmxlbmd0aCwgaTsgbiA8IGE7IG4rKylcbiAgICAoaSB8fCAhKG4gaW4gcikpICYmIChpIHx8IChpID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwociwgMCwgbikpLCBpW25dID0gcltuXSk7XG4gIHJldHVybiBlLmNvbmNhdChpIHx8IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKHIpKTtcbn0sIFpyID0gKFxuICAvKiogQGNsYXNzICovXG4gIGZ1bmN0aW9uKCkge1xuICAgIGZ1bmN0aW9uIGUociwgdCkge1xuICAgICAgdGhpcy5fY2FsbGJhY2sgPSByLCB0aGlzLl90aGF0ID0gdCwgdGhpcy5faXNDYWxsZWQgPSAhMSwgdGhpcy5fZGVmZXJyZWQgPSBuZXcgSnIoKTtcbiAgICB9XG4gICAgcmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSwgXCJpc0NhbGxlZFwiLCB7XG4gICAgICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNDYWxsZWQ7XG4gICAgICB9LFxuICAgICAgZW51bWVyYWJsZTogITEsXG4gICAgICBjb25maWd1cmFibGU6ICEwXG4gICAgfSksIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSwgXCJwcm9taXNlXCIsIHtcbiAgICAgIGdldDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kZWZlcnJlZC5wcm9taXNlO1xuICAgICAgfSxcbiAgICAgIGVudW1lcmFibGU6ICExLFxuICAgICAgY29uZmlndXJhYmxlOiAhMFxuICAgIH0pLCBlLnByb3RvdHlwZS5jYWxsID0gZnVuY3Rpb24oKSB7XG4gICAgICBmb3IgKHZhciByLCB0ID0gdGhpcywgbiA9IFtdLCBhID0gMDsgYSA8IGFyZ3VtZW50cy5sZW5ndGg7IGErKylcbiAgICAgICAgblthXSA9IGFyZ3VtZW50c1thXTtcbiAgICAgIGlmICghdGhpcy5faXNDYWxsZWQpIHtcbiAgICAgICAgdGhpcy5faXNDYWxsZWQgPSAhMDtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBQcm9taXNlLnJlc29sdmUoKHIgPSB0aGlzLl9jYWxsYmFjaykuY2FsbC5hcHBseShyLCBRcihbdGhpcy5fdGhhdF0sIHFyKG4pLCAhMSkpKS50aGVuKGZ1bmN0aW9uKGkpIHtcbiAgICAgICAgICAgIHJldHVybiB0Ll9kZWZlcnJlZC5yZXNvbHZlKGkpO1xuICAgICAgICAgIH0sIGZ1bmN0aW9uKGkpIHtcbiAgICAgICAgICAgIHJldHVybiB0Ll9kZWZlcnJlZC5yZWplY3QoaSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gY2F0Y2ggKGkpIHtcbiAgICAgICAgICB0aGlzLl9kZWZlcnJlZC5yZWplY3QoaSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiB0aGlzLl9kZWZlcnJlZC5wcm9taXNlO1xuICAgIH0sIGU7XG4gIH0oKVxuKTtcbmZ1bmN0aW9uIGV0KGUsIHIpIHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHQpIHtcbiAgICBPZS53aXRoKFcoT2UuYWN0aXZlKCkpLCBmdW5jdGlvbigpIHtcbiAgICAgIGUuZXhwb3J0KHIsIGZ1bmN0aW9uKG4pIHtcbiAgICAgICAgdChuKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9KTtcbn1cbnZhciBydCA9IHtcbiAgZ2V0S2V5UGFpcnM6IEosXG4gIHNlcmlhbGl6ZUtleVBhaXJzOiAkLFxuICBwYXJzZUtleVBhaXJzSW50b1JlY29yZDogJGUsXG4gIHBhcnNlUGFpcktleVZhbHVlOiBEXG59LCB0dCA9IHtcbiAgX2V4cG9ydDogZXRcbn07XG5jb25zdCBsdCA9IC8qIEBfX1BVUkVfXyAqLyBPYmplY3QuZnJlZXplKC8qIEBfX1BVUkVfXyAqLyBPYmplY3QuZGVmaW5lUHJvcGVydHkoe1xuICBfX3Byb3RvX186IG51bGwsXG4gIEFsd2F5c09mZlNhbXBsZXI6IE0sXG4gIEFsd2F5c09uU2FtcGxlcjogbSxcbiAgQW5jaG9yZWRDbG9jazogcWUsXG4gIEJpbmRPbmNlRnV0dXJlOiBacixcbiAgQ29tcG9zaXRlUHJvcGFnYXRvcjogcHIsXG4gIERFRkFVTFRfQVRUUklCVVRFX0NPVU5UX0xJTUlUOiBQJDEsXG4gIERFRkFVTFRfQVRUUklCVVRFX1ZBTFVFX0xFTkdUSF9MSU1JVDogTSQxLFxuICBERUZBVUxUX0VOVklST05NRU5UOiBJJDEsXG4gIERFRkFVTFRfU1BBTl9BVFRSSUJVVEVfUEVSX0VWRU5UX0NPVU5UX0xJTUlUOiBrXyxcbiAgREVGQVVMVF9TUEFOX0FUVFJJQlVURV9QRVJfTElOS19DT1VOVF9MSU1JVDogSl8sXG4gIGdldCBFeHBvcnRSZXN1bHRDb2RlKCkge1xuICAgIHJldHVybiBhO1xuICB9LFxuICBQYXJlbnRCYXNlZFNhbXBsZXI6IE1yLFxuICBnZXQgUlBDVHlwZSgpIHtcbiAgICByZXR1cm4gajtcbiAgfSxcbiAgUmFuZG9tSWRHZW5lcmF0b3I6IGxyLFxuICBTREtfSU5GTzogWEEsXG4gIFRSQUNFX1BBUkVOVF9IRUFERVI6IHYsXG4gIFRSQUNFX1NUQVRFX0hFQURFUjogaCxcbiAgVGltZW91dEVycm9yOiBwZSxcbiAgVHJhY2VJZFJhdGlvQmFzZWRTYW1wbGVyOiBOcixcbiAgVHJhY2VTdGF0ZTogYWUsXG4gIGdldCBUcmFjZXNTYW1wbGVyVmFsdWVzKCkge1xuICAgIHJldHVybiByJDE7XG4gIH0sXG4gIFZFUlNJT046ICRfLFxuICBXM0NCYWdnYWdlUHJvcGFnYXRvcjogSmUsXG4gIFczQ1RyYWNlQ29udGV4dFByb3BhZ2F0b3I6IGJyLFxuICBfZ2xvYmFsVGhpczogbCxcbiAgYWRkSHJUaW1lczogSF8sXG4gIGJhZ2dhZ2VVdGlsczogcnQsXG4gIGNhbGxXaXRoVGltZW91dDogV3IsXG4gIGRlbGV0ZVJQQ01ldGFkYXRhOiBJcixcbiAgZ2V0RW52OiBPVCxcbiAgZ2V0RW52V2l0aG91dERlZmF1bHRzOiBMVCxcbiAgZ2V0UlBDTWV0YWRhdGE6IGpyLFxuICBnZXRUaW1lT3JpZ2luOiByXyxcbiAgZ2xvYmFsRXJyb3JIYW5kbGVyOiBuZSxcbiAgaGV4VG9CYXNlNjQ6IG9yLFxuICBoZXhUb0JpbmFyeTogQSQxLFxuICBoclRpbWU6IHBfLFxuICBoclRpbWVEdXJhdGlvbjogd2UsXG4gIGhyVGltZVRvTWljcm9zZWNvbmRzOiBrZSQxLFxuICBoclRpbWVUb01pbGxpc2Vjb25kczogeGUsXG4gIGhyVGltZVRvTmFub3NlY29uZHM6IFFlJDEsXG4gIGhyVGltZVRvVGltZVN0YW1wOiBYZSQxLFxuICBpbnRlcm5hbDogdHQsXG4gIGlzQXR0cmlidXRlS2V5OiBRLFxuICBpc0F0dHJpYnV0ZVZhbHVlOiBaLFxuICBpc1RpbWVJbnB1dDogcWUkMSxcbiAgaXNUaW1lSW5wdXRIclRpbWU6IE5fLFxuICBpc1RyYWNpbmdTdXBwcmVzc2VkOiB3LFxuICBpc1VybElnbm9yZWQ6IFplJDEsXG4gIGlzV3JhcHBlZDogJHIsXG4gIGxvZ2dpbmdFcnJvckhhbmRsZXI6IHJlLFxuICBtZXJnZToga3IsXG4gIG1pbGxpc1RvSHJUaW1lOiBPLFxuICBvdHBlcmZvcm1hbmNlOiBSJDEsXG4gIHBhcnNlRW52aXJvbm1lbnQ6IFUkMSxcbiAgcGFyc2VUcmFjZVBhcmVudDogaWUsXG4gIHNhbml0aXplQXR0cmlidXRlczogWmUsXG4gIHNldEdsb2JhbEVycm9ySGFuZGxlcjogbnIsXG4gIHNldFJQQ01ldGFkYXRhOiBDcixcbiAgc3VwcHJlc3NUcmFjaW5nOiBXLFxuICB0aW1lSW5wdXRUb0hyVGltZTogV2UkMSxcbiAgdW5yZWZUaW1lcjogc3IsXG4gIHVuc3VwcHJlc3NUcmFjaW5nOiBGZSxcbiAgdXJsTWF0Y2hlczogZ19cbn0sIFN5bWJvbC50b1N0cmluZ1RhZywgeyB2YWx1ZTogXCJNb2R1bGVcIiB9KSk7XG5cbmV4cG9ydCB7IEplIGFzIEosIFcsIFosIFplIGFzIGEsIHByIGFzIGIsIGJyIGFzIGMsIFpyIGFzIGQsIGtyIGFzIGssIGx0IGFzIGwsIG5lIGFzIG4sIHAsIHNyIGFzIHMsIHR0IGFzIHQsIHcgfTsiXSwKICAibWFwcGluZ3MiOiAiQUFBQSxTQUFTLEtBQUtBLEdBQUksS0FBS0MsSUFBSSxNQUFNQyxJQUFJLE1BQU1DLElBQUksS0FBS0MsSUFBSSxNQUFNQyxJQUFJLE1BQU1DLElBQU0sTUFBTUMsSUFBSSxLQUFLQyxJQUFNLE1BQU1DLElBQU0sTUFBTUMsSUFBTSxNQUFNQyxJQUFJLEtBQUtDLElBQU0sS0FBQUMsSUFBRyxNQUFNQyxJQUFLLEtBQUtDLElBQU0sS0FBS0MsVUFBVTtBQUN4TCxTQUFTLEtBQUtDLEdBQUksS0FBS0MsR0FBSSxLQUFLQyxHQUFJLEtBQUtDLElBQUksS0FBS0MsR0FBSSxLQUFLQyxTQUFVO0FBQ3JFLFNBQVMsS0FBQUMsU0FBUztBQUNsQixTQUFTLEtBQUFDLElBQUcsS0FBS0MsU0FBVztBQUM1QixTQUFTLE1BQU1DLElBQUssTUFBTUMsSUFBSyxNQUFNQyxJQUFLLE1BQU1DLElBQUksTUFBTUMsSUFBSSxNQUFNQyxJQUFJLE1BQU1DLElBQUssTUFBTUMsSUFBSSxLQUFLQyxJQUFJLE1BQU1DLElBQUksTUFBTUMsVUFBVztBQUNqSSxTQUFTLEtB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TyxTQUFTLENBQUMsQ0FBQzsiLAogICJuYW1lcyI6IFsieV8iLCAiZl8iLCAiSF8iLCAicl8iLCAicF8iLCAid2UiLCAia2UkMSIsICJ4ZSIsICJRZSQxIiwgIlhlJDEiLCAicWUkMSIsICJOXyIsICJaZSQxIiwgIk8iLCAiUiQxIiwgIldlJDEiLCAiZ18iLCAiR2UiLCAia24iLCAiWHQiLCAiaHMiLCAicnMiLCAiT2UiLCAiciIsICJhIiwgIkEkMSIsICJQJDEiLCAiTSQxIiwgIkkkMSIsICJrXyIsICJKXyIsICJYQSIsICJyJDEiLCAiJF8iLCAiT1QiLCAiTFQiLCAiVSQxIiwgImwiLCAiZSIsICJOIiwgIlciLCAiRmUiLCAidyIsICJ6ZSIsICJDIiwgImtlIiwgIlllIiwgIlhlIiwgIldlIiwgInQiLCAiaSIsICJvIiwgIiQiLCAiSiIsICIkZSIsICJKZSIsICJmIiwgImMiLCAicWUiLCAicSIsICJRZSIsICJaZSIsICJRIiwgIloiLCAiZXIiLCAiZWUiLCAicmUiLCAidHIiLCAidGUiLCAibmUiLCAiYXIiLCAiaXIiLCAib3IiLCAiZnIiLCAibHIiLCAiViIsICJ5IiwgImNyIiwgIkkiLCAiZHIiLCAiX3IiLCAieXIiLCAidnIiLCAiaHIiLCAibXIiLCAiZ3IiLCAiVSIsICJIIiwgIksiLCAiYWUiLCAidiIsICJoIiwgIkFyIiwgIkVyIiwgIlRyIiwgIlJyIiwgIk9yIiwgImllIiwgImJyIiwgIkwiLCAiQ3IiLCAiSXIiLCAiTSIsICJtIiwgIk1yIiwgIk5yIiwgIndyIiwgIkxyIiwgInhyIiwgIm9lIiwgIkdyIiwgIkJyIiwgIlZyIiwgInVlIiwgImZlIiwgImxlIiwgIkYiLCAiVXIiLCAiSHIiLCAiS3IiLCAiRnIiLCAienIiLCAia3IiLCAic2UiLCAiUiIsICJBIiwgImciLCAiY2UiLCAiZCIsICJZciIsICJFIiwgInoiLCAieCIsICJHIiwgIlhyIiwgInBlIiwgIldyIiwgIiRyIiwgIkpyIiwgInFyIiwgIlFyIiwgIlpyIiwgImV0IiwgInJ0IiwgInR0IiwgImx0Il0KfQo=
|