@getopenpay/openpay-js
Version:
Accept payments through OpenPay, right on your site
285 lines • 123 kB
JavaScript
import { c as E } from "./utils-De78ey-v.js";
var tS = "1.30.1", _ = "cloud.provider", a = "cloud.account.id", A = "cloud.region", T = "cloud.availability_zone", R = "cloud.platform", M = "aws.ecs.container.arn", r = "aws.ecs.cluster.arn", L = "aws.ecs.launchtype", O = "aws.ecs.task.arn", P = "aws.ecs.task.family", s = "aws.ecs.task.revision", v = "aws.eks.cluster.arn", N = "aws.log.group.names", U = "aws.log.group.arns", C = "aws.log.stream.names", e = "aws.log.stream.arns", D = "container.name", I = "container.id", V = "container.runtime", n = "container.image.name", o = "container.image.tag", G = "deployment.environment", i = "device.id", c = "device.model.identifier", t = "device.model.name", K = "faas.name", Y = "faas.id", m = "faas.version", d = "faas.instance", F = "faas.max_memory", l = "host.id", u = "host.name", p = "host.type", H = "host.arch", W = "host.image.name", b = "host.image.id", B = "host.image.version", g = "k8s.cluster.name", k = "k8s.node.name", w = "k8s.node.uid", y = "k8s.namespace.name", f = "k8s.pod.uid", h = "k8s.pod.name", Z = "k8s.container.name", J = "k8s.replicaset.uid", X = "k8s.replicaset.name", j = "k8s.deployment.uid", x = "k8s.deployment.name", z = "k8s.statefulset.uid", q = "k8s.statefulset.name", Q = "k8s.daemonset.uid", $ = "k8s.daemonset.name", EE = "k8s.job.uid", SE = "k8s.job.name", _E = "k8s.cronjob.uid", aE = "k8s.cronjob.name", AE = "os.type", TE = "os.description", RE = "os.name", ME = "os.version", rE = "process.pid", LE = "process.executable.name", OE = "process.executable.path", PE = "process.command", sE = "process.command_line", vE = "process.command_args", NE = "process.owner", UE = "process.runtime.name", CE = "process.runtime.version", eE = "process.runtime.description", DE = "service.name", IE = "service.namespace", VE = "service.instance.id", nE = "service.version", oE = "telemetry.sdk.name", GE = "telemetry.sdk.language", iE = "telemetry.sdk.version", cE = "telemetry.auto.version", tE = "webengine.name", KE = "webengine.version", YE = "webengine.description", uS = _, pS = a, HS = A, WS = T, bS = R, BS = M, gS = r, kS = L, wS = O, yS = P, fS = s, hS = v, ZS = N, JS = U, XS = C, jS = e, xS = D, zS = I, qS = V, QS = n, $S = o, E_ = G, S_ = i, __ = c, a_ = t, A_ = K, T_ = Y, R_ = m, M_ = d, r_ = F, L_ = l, O_ = u, P_ = p, s_ = H, v_ = W, N_ = b, U_ = B, C_ = g, e_ = k, D_ = w, I_ = y, V_ = f, n_ = h, o_ = Z, G_ = J, i_ = X, c_ = j, t_ = x, K_ = z, Y_ = q, m_ = Q, d_ = $, F_ = EE, l_ = SE, u_ = _E, p_ = aE, H_ = AE, W_ = TE, b_ = RE, B_ = ME, g_ = rE, k_ = LE, w_ = OE, y_ = PE, f_ = sE, h_ = vE, Z_ = NE, KS = UE, J_ = CE, X_ = eE, j_ = DE, x_ = IE, z_ = VE, q_ = nE, YS = oE, mS = GE, dS = iE, Q_ = cE, $_ = tE, Ea = KE, Sa = YE, _a = /* @__PURE__ */ E([
_,
a,
A,
T,
R,
M,
r,
L,
O,
P,
s,
v,
N,
U,
C,
e,
D,
I,
V,
n,
o,
G,
i,
c,
t,
K,
Y,
m,
d,
F,
l,
u,
p,
H,
W,
b,
B,
g,
k,
w,
y,
f,
h,
Z,
J,
X,
j,
x,
z,
q,
Q,
$,
EE,
SE,
_E,
aE,
AE,
TE,
RE,
ME,
rE,
LE,
OE,
PE,
sE,
vE,
NE,
UE,
CE,
eE,
DE,
IE,
VE,
nE,
oE,
GE,
iE,
cE,
tE,
KE,
YE
]), mE = "alibaba_cloud", dE = "aws", FE = "azure", lE = "gcp", aa = mE, Aa = dE, Ta = FE, Ra = lE, Ma = /* @__PURE__ */ E([
mE,
dE,
FE,
lE
]), uE = "alibaba_cloud_ecs", pE = "alibaba_cloud_fc", HE = "aws_ec2", WE = "aws_ecs", bE = "aws_eks", BE = "aws_lambda", gE = "aws_elastic_beanstalk", kE = "azure_vm", wE = "azure_container_instances", yE = "azure_aks", fE = "azure_functions", hE = "azure_app_service", ZE = "gcp_compute_engine", JE = "gcp_cloud_run", XE = "gcp_kubernetes_engine", jE = "gcp_cloud_functions", xE = "gcp_app_engine", ra = uE, La = pE, Oa = HE, Pa = WE, sa = bE, va = BE, Na = gE, Ua = kE, Ca = wE, ea = yE, Da = fE, Ia = hE, Va = ZE, na = JE, oa = XE, Ga = jE, ia = xE, ca = /* @__PURE__ */ E([
uE,
pE,
HE,
WE,
bE,
BE,
gE,
kE,
wE,
yE,
fE,
hE,
ZE,
JE,
XE,
jE,
xE
]), zE = "ec2", qE = "fargate", ta = zE, Ka = qE, Ya = /* @__PURE__ */ E([
zE,
qE
]), QE = "amd64", $E = "arm32", ES = "arm64", SS = "ia64", _S = "ppc32", aS = "ppc64", AS = "x86", ma = QE, da = $E, Fa = ES, la = SS, ua = _S, pa = aS, Ha = AS, Wa = /* @__PURE__ */ E([
QE,
$E,
ES,
SS,
_S,
aS,
AS
]), TS = "windows", RS = "linux", MS = "darwin", rS = "freebsd", LS = "netbsd", OS = "openbsd", PS = "dragonflybsd", sS = "hpux", vS = "aix", NS = "solaris", US = "z_os", ba = TS, Ba = RS, ga = MS, ka = rS, wa = LS, ya = OS, fa = PS, ha = sS, Za = vS, Ja = NS, Xa = US, ja = /* @__PURE__ */ E([
TS,
RS,
MS,
rS,
LS,
OS,
PS,
sS,
vS,
NS,
US
]), CS = "cpp", eS = "dotnet", DS = "erlang", IS = "go", VS = "java", nS = "nodejs", oS = "php", GS = "python", iS = "ruby", cS = "webjs", xa = CS, za = eS, qa = DS, Qa = IS, $a = VS, EA = nS, SA = oS, _A = GS, aA = iS, FS = cS, AA = /* @__PURE__ */ E([
CS,
eS,
DS,
IS,
VS,
nS,
oS,
GS,
iS,
cS
]), S, TA = (S = {}, S[YS] = "opentelemetry", S[KS] = "browser", S[mS] = FS, S[dS] = tS, S);
export {
kS as $,
ta as A,
ca as B,
ra as C,
Ma as D,
da as E,
Fa as F,
la as G,
ma as H,
ua as I,
pa as J,
Ha as K,
Wa as L,
ga as M,
fa as N,
Za as O,
ka as P,
ha as Q,
Ba as R,
j_ as S,
wa as T,
ya as U,
Ja as V,
ba as W,
Xa as X,
ja as Y,
gS as Z,
BS as _,
TA as a,
g_ as a$,
wS as a0,
yS as a1,
fS as a2,
hS as a3,
JS as a4,
ZS as a5,
jS as a6,
XS as a7,
pS as a8,
WS as a9,
p_ as aA,
u_ as aB,
d_ as aC,
m_ as aD,
t_ as aE,
c_ as aF,
l_ as aG,
F_ as aH,
I_ as aI,
e_ as aJ,
D_ as aK,
n_ as aL,
V_ as aM,
i_ as aN,
G_ as aO,
Y_ as aP,
K_ as aQ,
W_ as aR,
b_ as aS,
H_ as aT,
B_ as aU,
y_ as aV,
h_ as aW,
f_ as aX,
k_ as aY,
w_ as aZ,
Z_ as a_,
bS as aa,
uS as ab,
HS as ac,
zS as ad,
QS as ae,
$S as af,
xS as ag,
qS as ah,
E_ as ai,
S_ as aj,
__ as ak,
a_ as al,
T_ as am,
M_ as an,
r_ as ao,
A_ as ap,
R_ as aq,
s_ as ar,
L_ as as,
N_ as at,
v_ as au,
U_ as av,
O_ as aw,
P_ as ax,
C_ as ay,
o_ as az,
mS as b,
X_ as b0,
KS as b1,
J_ as b2,
z_ as b3,
x_ as b4,
q_ as b5,
Q_ as b6,
Sa as b7,
$_ as b8,
Ea as b9,
_a as ba,
xa as bb,
za as bc,
qa as bd,
Qa as be,
$a as bf,
EA as bg,
SA as bh,
_A as bi,
aA as bj,
FS as bk,
AA as bl,
tS as bm,
YS as c,
dS as d,
Ka as e,
Ya as f,
La as g,
Oa as h,
Pa as i,
sa as j,
Na as k,
va as l,
ea as m,
Ia as n,
Ca as o,
Da as p,
Ua as q,
ia as r,
Ga as s,
na as t,
Va as u,
oa as v,
aa as w,
Aa as x,
Ta as y,
Ra as z
};
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsic2RrLWluZm8tIX57MDBofX4uanMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImltcG9ydCB7IGMgYXMgY3JlYXRlQ29uc3RNYXAgfSBmcm9tICcuL3V0aWxzLSF+ezAwN31+LmpzJztcblxuLypcbiAqIENvcHlyaWdodCBUaGUgT3BlblRlbGVtZXRyeSBBdXRob3JzXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cHM6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8vIHRoaXMgaXMgYXV0b2dlbmVyYXRlZCBmaWxlLCBzZWUgc2NyaXB0cy92ZXJzaW9uLXVwZGF0ZS5qc1xudmFyIFZFUlNJT04gPSAnMS4zMC4xJztcblxuLypcbiAqIENvcHlyaWdodCBUaGUgT3BlblRlbGVtZXRyeSBBdXRob3JzXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cHM6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gRE8gTk9UIEVESVQsIHRoaXMgaXMgYW4gQXV0by1nZW5lcmF0ZWQgZmlsZSBmcm9tIHNjcmlwdHMvc2VtY29udi90ZW1wbGF0ZXMvL3RlbXBsYXRlcy9TZW1hbnRpY0F0dHJpYnV0ZXMudHMuajJcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBDb25zdGFudCB2YWx1ZXMgZm9yIFNlbWFudGljUmVzb3VyY2VBdHRyaWJ1dGVzXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFRlbXBvcmFyeSBsb2NhbCBjb25zdGFudHMgdG8gYXNzaWduIHRvIHRoZSBpbmRpdmlkdWFsIGV4cG9ydHMgYW5kIHRoZSBuYW1lc3BhY2VkIHZlcnNpb25cbi8vIFJlcXVpcmVkIHRvIGF2b2lkIHRoZSBuYW1lc3BhY2UgZXhwb3J0cyB1c2luZyB0aGUgdW5taW5pZmlhYmxlIGV4cG9ydCBuYW1lcyBmb3Igc29tZSBwYWNrYWdlIHR5cGVzXG52YXIgVE1QX0NMT1VEX1BST1ZJREVSID0gJ2Nsb3VkLnByb3ZpZGVyJztcbnZhciBUTVBfQ0xPVURfQUNDT1VOVF9JRCA9ICdjbG91ZC5hY2NvdW50LmlkJztcbnZhciBUTVBfQ0xPVURfUkVHSU9OID0gJ2Nsb3VkLnJlZ2lvbic7XG52YXIgVE1QX0NMT1VEX0FWQUlMQUJJTElUWV9aT05FID0gJ2Nsb3VkLmF2YWlsYWJpbGl0eV96b25lJztcbnZhciBUTVBfQ0xPVURfUExBVEZPUk0gPSAnY2xvdWQucGxhdGZvcm0nO1xudmFyIFRNUF9BV1NfRUNTX0NPTlRBSU5FUl9BUk4gPSAnYXdzLmVjcy5jb250YWluZXIuYXJuJztcbnZhciBUTVBfQVdTX0VDU19DTFVTVEVSX0FSTiA9ICdhd3MuZWNzLmNsdXN0ZXIuYXJuJztcbnZhciBUTVBfQVdTX0VDU19MQVVOQ0hUWVBFID0gJ2F3cy5lY3MubGF1bmNodHlwZSc7XG52YXIgVE1QX0FXU19FQ1NfVEFTS19BUk4gPSAnYXdzLmVjcy50YXNrLmFybic7XG52YXIgVE1QX0FXU19FQ1NfVEFTS19GQU1JTFkgPSAnYXdzLmVjcy50YXNrLmZhbWlseSc7XG52YXIgVE1QX0FXU19FQ1NfVEFTS19SRVZJU0lPTiA9ICdhd3MuZWNzLnRhc2sucmV2aXNpb24nO1xudmFyIFRNUF9BV1NfRUtTX0NMVVNURVJfQVJOID0gJ2F3cy5la3MuY2x1c3Rlci5hcm4nO1xudmFyIFRNUF9BV1NfTE9HX0dST1VQX05BTUVTID0gJ2F3cy5sb2cuZ3JvdXAubmFtZXMnO1xudmFyIFRNUF9BV1NfTE9HX0dST1VQX0FSTlMgPSAnYXdzLmxvZy5ncm91cC5hcm5zJztcbnZhciBUTVBfQVdTX0xPR19TVFJFQU1fTkFNRVMgPSAnYXdzLmxvZy5zdHJlYW0ubmFtZXMnO1xudmFyIFRNUF9BV1NfTE9HX1NUUkVBTV9BUk5TID0gJ2F3cy5sb2cuc3RyZWFtLmFybnMnO1xudmFyIFRNUF9DT05UQUlORVJfTkFNRSA9ICdjb250YWluZXIubmFtZSc7XG52YXIgVE1QX0NPTlRBSU5FUl9JRCA9ICdjb250YWluZXIuaWQnO1xudmFyIFRNUF9DT05UQUlORVJfUlVOVElNRSA9ICdjb250YWluZXIucnVudGltZSc7XG52YXIgVE1QX0NPTlRBSU5FUl9JTUFHRV9OQU1FID0gJ2NvbnRhaW5lci5pbWFnZS5uYW1lJztcbnZhciBUTVBfQ09OVEFJTkVSX0lNQUdFX1RBRyA9ICdjb250YWluZXIuaW1hZ2UudGFnJztcbnZhciBUTVBfREVQTE9ZTUVOVF9FTlZJUk9OTUVOVCA9ICdkZXBsb3ltZW50LmVudmlyb25tZW50JztcbnZhciBUTVBfREVWSUNFX0lEID0gJ2RldmljZS5pZCc7XG52YXIgVE1QX0RFVklDRV9NT0RFTF9JREVOVElGSUVSID0gJ2RldmljZS5tb2RlbC5pZGVudGlmaWVyJztcbnZhciBUTVBfREVWSUNFX01PREVMX05BTUUgPSAnZGV2aWNlLm1vZGVsLm5hbWUnO1xudmFyIFRNUF9GQUFTX05BTUUgPSAnZmFhcy5uYW1lJztcbnZhciBUTVBfRkFBU19JRCA9ICdmYWFzLmlkJztcbnZhciBUTVBfRkFBU19WRVJTSU9OID0gJ2ZhYXMudmVyc2lvbic7XG52YXIgVE1QX0ZBQVNfSU5TVEFOQ0UgPSAnZmFhcy5pbnN0YW5jZSc7XG52YXIgVE1QX0ZBQVNfTUFYX01FTU9SWSA9ICdmYWFzLm1heF9tZW1vcnknO1xudmFyIFRNUF9IT1NUX0lEID0gJ2hvc3QuaWQnO1xudmFyIFRNUF9IT1NUX05BTUUgPSAnaG9zdC5uYW1lJztcbnZhciBUTVBfSE9TVF9UWVBFID0gJ2hvc3QudHlwZSc7XG52YXIgVE1QX0hPU1RfQVJDSCA9ICdob3N0LmFyY2gnO1xudmFyIFRNUF9IT1NUX0lNQUdFX05BTUUgPSAnaG9zdC5pbWFnZS5uYW1lJztcbnZhciBUTVBfSE9TVF9JTUFHRV9JRCA9ICdob3N0LmltYWdlLmlkJztcbnZhciBUTVBfSE9TVF9JTUFHRV9WRVJTSU9OID0gJ2hvc3QuaW1hZ2UudmVyc2lvbic7XG52YXIgVE1QX0s4U19DTFVTVEVSX05BTUUgPSAnazhzLmNsdXN0ZXIubmFtZSc7XG52YXIgVE1QX0s4U19OT0RFX05BTUUgPSAnazhzLm5vZGUubmFtZSc7XG52YXIgVE1QX0s4U19OT0RFX1VJRCA9ICdrOHMubm9kZS51aWQnO1xudmFyIFRNUF9LOFNfTkFNRVNQQUNFX05BTUUgPSAnazhzLm5hbWVzcGFjZS5uYW1lJztcbnZhciBUTVBfSzhTX1BPRF9VSUQgPSAnazhzLnBvZC51aWQnO1xudmFyIFRNUF9LOFNfUE9EX05BTUUgPSAnazhzLnBvZC5uYW1lJztcbnZhciBUTVBfSzhTX0NPTlRBSU5FUl9OQU1FID0gJ2s4cy5jb250YWluZXIubmFtZSc7XG52YXIgVE1QX0s4U19SRVBMSUNBU0VUX1VJRCA9ICdrOHMucmVwbGljYXNldC51aWQnO1xudmFyIFRNUF9LOFNfUkVQTElDQVNFVF9OQU1FID0gJ2s4cy5yZXBsaWNhc2V0Lm5hbWUnO1xudmFyIFRNUF9LOFNfREVQTE9ZTUVOVF9VSUQgPSAnazhzLmRlcGxveW1lbnQudWlkJztcbnZhciBUTVBfSzhTX0RFUExPWU1FTlRfTkFNRSA9ICdrOHMuZGVwbG95bWVudC5uYW1lJztcbnZhciBUTVBfSzhTX1NUQVRFRlVMU0VUX1VJRCA9ICdrOHMuc3RhdGVmdWxzZXQudWlkJztcbnZhciBUTVBfSzhTX1NUQVRFRlVMU0VUX05BTUUgPSAnazhzLnN0YXRlZnVsc2V0Lm5hbWUnO1xudmFyIFRNUF9LOFNfREFFTU9OU0VUX1VJRCA9ICdrOHMuZGFlbW9uc2V0LnVpZCc7XG52YXIgVE1QX0s4U19EQUVNT05TRVRfTkFNRSA9ICdrOHMuZGFlbW9uc2V0Lm5hbWUnO1xudmFyIFRNUF9LOFNfSk9CX1VJRCA9ICdrOHMuam9iLnVpZCc7XG52YXIgVE1QX0s4U19KT0JfTkFNRSA9ICdrOHMuam9iLm5hbWUnO1xudmFyIFRNUF9LOFNfQ1JPTkpPQl9VSUQgPSAnazhzLmNyb25qb2IudWlkJztcbnZhciBUTVBfSzhTX0NST05KT0JfTkFNRSA9ICdrOHMuY3JvbmpvYi5uYW1lJztcbnZhciBUTVBfT1NfVFlQRSA9ICdvcy50eXBlJztcbnZhciBUTVBfT1NfREVTQ1JJUFRJT04gPSAnb3MuZGVzY3JpcHRpb24nO1xudmFyIFRNUF9PU19OQU1FID0gJ29zLm5hbWUnO1xudmFyIFRNUF9PU19WRVJTSU9OID0gJ29zLnZlcnNpb24nO1xudmFyIFRNUF9QUk9DRVNTX1BJRCA9ICdwcm9jZXNzLnBpZCc7XG52YXIgVE1QX1BST0NFU1NfRVhFQ1VUQUJMRV9OQU1FID0gJ3Byb2Nlc3MuZXhlY3V0YWJsZS5uYW1lJztcbnZhciBUTVBfUFJPQ0VTU19FWEVDVVRBQkxFX1BBVEggPSAncHJvY2Vzcy5leGVjdXRhYmxlLnBhdGgnO1xudmFyIFRNUF9QUk9DRVNTX0NPTU1BTkQgPSAncHJvY2Vzcy5jb21tYW5kJztcbnZhciBUTVBfUFJPQ0VTU19DT01NQU5EX0xJTkUgPSAncHJvY2Vzcy5jb21tYW5kX2xpbmUnO1xudmFyIFRNUF9QUk9DRVNTX0NPTU1BTkRfQVJHUyA9ICdwcm9jZXNzLmNvbW1hbmRfYXJncyc7XG52YXIgVE1QX1BST0NFU1NfT1dORVIgPSAncHJvY2Vzcy5vd25lcic7XG52YXIgVE1QX1BST0NFU1NfUlVOVElNRV9OQU1FID0gJ3Byb2Nlc3MucnVudGltZS5uYW1lJztcbnZhciBUTVBfUFJPQ0VTU19SVU5USU1FX1ZFUlNJT04gPSAncHJvY2Vzcy5ydW50aW1lLnZlcnNpb24nO1xudmFyIFRNUF9QUk9DRVNTX1JVTlRJTUVfREVTQ1JJUFRJT04gPSAncHJvY2Vzcy5ydW50aW1lLmRlc2NyaXB0aW9uJztcbnZhciBUTVBfU0VSVklDRV9OQU1FID0gJ3NlcnZpY2UubmFtZSc7XG52YXIgVE1QX1NFUlZJQ0VfTkFNRVNQQUNFID0gJ3NlcnZpY2UubmFtZXNwYWNlJztcbnZhciBUTVBfU0VSVklDRV9JTlNUQU5DRV9JRCA9ICdzZXJ2aWNlLmluc3RhbmNlLmlkJztcbnZhciBUTVBfU0VSVklDRV9WRVJTSU9OID0gJ3NlcnZpY2UudmVyc2lvbic7XG52YXIgVE1QX1RFTEVNRVRSWV9TREtfTkFNRSA9ICd0ZWxlbWV0cnkuc2RrLm5hbWUnO1xudmFyIFRNUF9URUxFTUVUUllfU0RLX0xBTkdVQUdFID0gJ3RlbGVtZXRyeS5zZGsubGFuZ3VhZ2UnO1xudmFyIFRNUF9URUxFTUVUUllfU0RLX1ZFUlNJT04gPSAndGVsZW1ldHJ5LnNkay52ZXJzaW9uJztcbnZhciBUTVBfVEVMRU1FVFJZX0FVVE9fVkVSU0lPTiA9ICd0ZWxlbWV0cnkuYXV0by52ZXJzaW9uJztcbnZhciBUTVBfV0VCRU5HSU5FX05BTUUgPSAnd2ViZW5naW5lLm5hbWUnO1xudmFyIFRNUF9XRUJFTkdJTkVfVkVSU0lPTiA9ICd3ZWJlbmdpbmUudmVyc2lvbic7XG52YXIgVE1QX1dFQkVOR0lORV9ERVNDUklQVElPTiA9ICd3ZWJlbmdpbmUuZGVzY3JpcHRpb24nO1xuLyoqXG4gKiBOYW1lIG9mIHRoZSBjbG91ZCBwcm92aWRlci5cbiAqXG4gKiBAZGVwcmVjYXRlZCBVc2UgQVRUUl9DTE9VRF9QUk9WSURFUiBpbiBbaW5jdWJhdGluZyBlbnRyeS1wb2ludF0oe0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuLXRlbGVtZXRyeS9vcGVudGVsZW1ldHJ5LWpzL2Jsb2IvbWFpbi9zZW1hbnRpYy1jb252ZW50aW9ucy9SRUFETUUubWQjdW5zdGFibGUtc2VtY29udn0pLlxuICovXG52YXIgU0VNUkVTQVRUUlNfQ0xPVURfUFJPVklERVIgPSBUTVBfQ0xPVURfUFJPVklERVI7XG4vKipcbiAqIFRoZSBjbG91ZCBhY2NvdW50IElEIHRoZSByZXNvdXJjZSBpcyBhc3NpZ25lZCB0by5cbiAqXG4gKiBAZGVwcmVjYXRlZCBVc2UgQVRUUl9DTE9VRF9BQ0NPVU5UX0lEIGluIFtpbmN1YmF0aW5nIGVudHJ5LXBvaW50XSh7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL29wZW4tdGVsZW1ldHJ5L29wZW50ZWxlbWV0cnktanMvYmxvYi9tYWluL3NlbWFudGljLWNvbnZlbnRpb25zL1JFQURNRS5tZCN1bnN0YWJsZS1zZW1jb252fSkuXG4gKi9cbnZhciBTRU1SRVNBVFRSU19DTE9VRF9BQ0NPVU5UX0lEID0gVE1QX0NMT1VEX0FDQ09VTlRfSUQ7XG4vKipcbiAqIFRoZSBnZW9ncmFwaGljYWwgcmVnaW9uIHRoZSByZXNvdXJjZSBpcyBydW5uaW5nLiBSZWZlciB0byB5b3VyIHByb3ZpZGVyJiMzOTtzIGRvY3MgdG8gc2VlIHRoZSBhdmFpbGFibGUgcmVnaW9ucywgZm9yIGV4YW1wbGUgW0FsaWJhYmEgQ2xvdWQgcmVnaW9uc10oaHR0cHM6Ly93d3cuYWxpYmFiYWNsb3VkLmNvbS9oZWxwL2RvYy1kZXRhaWwvNDA2NTQuaHRtKSwgW0FXUyByZWdpb25zXShodHRwczovL2F3cy5hbWF6b24uY29tL2Fib3V0LWF3cy9nbG9iYWwtaW5mcmFzdHJ1Y3R1cmUvcmVnaW9uc19hei8pLCBbQXp1cmUgcmVnaW9uc10oaHR0cHM6Ly9henVyZS5taWNyb3NvZnQuY29tL2VuLXVzL2dsb2JhbC1pbmZyYXN0cnVjdHVyZS9nZW9ncmFwaGllcy8pLCBvciBbR29vZ2xlIENsb3VkIHJlZ2lvbnNdKGh0dHBzOi8vY2xvdWQuZ29vZ2xlLmNvbS9hYm91dC9sb2NhdGlvbnMpLlxuICpcbiAqIEBkZXByZWNhdGVkIFVzZSBBVFRSX0NMT1VEX1JFR0lPTiBpbiBbaW5jdWJhdGluZyBlbnRyeS1wb2ludF0oe0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuLXRlbGVtZXRyeS9vcGVudGVsZW1ldHJ5LWpzL2Jsb2IvbWFpbi9zZW1hbnRpYy1jb252ZW50aW9ucy9SRUFETUUubWQjdW5zdGFibGUtc2VtY29udn0pLlxuICovXG52YXIgU0VNUkVTQVRUUlNfQ0xPVURfUkVHSU9OID0gVE1QX0NMT1VEX1JFR0lPTjtcbi8qKlxuICogQ2xvdWQgcmVnaW9ucyBvZnRlbiBoYXZlIG11bHRpcGxlLCBpc29sYXRlZCBsb2NhdGlvbnMga25vd24gYXMgem9uZXMgdG8gaW5jcmVhc2UgYXZhaWxhYmlsaXR5LiBBdmFpbGFiaWxpdHkgem9uZSByZXByZXNlbnRzIHRoZSB6b25lIHdoZXJlIHRoZSByZXNvdXJjZSBpcyBydW5uaW5nLlxuICpcbiAqIE5vdGU6IEF2YWlsYWJpbGl0eSB6b25lcyBhcmUgY2FsbGVkICYjMzQ7em9uZXMmIzM0OyBvbiBBbGliYWJhIENsb3VkIGFuZCBHb29nbGUgQ2xvdWQuXG4gKlxuICogQGRlcHJlY2F0ZWQgVXNlIEFUVFJfQ0xPVURfQVZBSUxBQklMSVRZX1pPTkUgaW4gW2luY3ViYXRpbmcgZW50cnktcG9pbnRdKHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vb3Blbi10ZWxlbWV0cnkvb3BlbnRlbGVtZXRyeS1qcy9ibG9iL21haW4vc2VtYW50aWMtY29udmVudGlvbnMvUkVBRE1FLm1kI3Vuc3RhYmxlLXNlbWNvbnZ9KS5cbiAqL1xudmFyIFNFTVJFU0FUVFJTX0NMT1VEX0FWQUlMQUJJTElUWV9aT05FID0gVE1QX0NMT1VEX0FWQUlMQUJJTElUWV9aT05FO1xuLyoqXG4gKiBUaGUgY2xvdWQgcGxhdGZvcm0gaW4gdXNlLlxuICpcbiAqIE5vdGU6IFRoZSBwcmVmaXggb2YgdGhlIHNlcnZpY2UgU0hPVUxEIG1hdGNoIHRoZSBvbmUgc3BlY2lmaWVkIGluIGBjbG91ZC5wcm92aWRlcmAuXG4gKlxuICogQGRlcHJlY2F0ZWQgVXNlIEFUVFJfQ0xPVURfUExBVEZPUk0gaW4gW2luY3ViYXRpbmcgZW50cnktcG9pbnRdKHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vb3Blbi10ZWxlbWV0cnkvb3BlbnRlbGVtZXRyeS1qcy9ibG9iL21haW4vc2VtYW50aWMtY29udmVudGlvbnMvUkVBRE1FLm1kI3Vuc3RhYmxlLXNlbWNvbnZ9KS5cbiAqL1xudmFyIFNFTVJFU0FUVFJTX0NMT1VEX1BMQVRGT1JNID0gVE1QX0NMT1VEX1BMQVRGT1JNO1xuLyoqXG4gKiBUaGUgQW1hem9uIFJlc291cmNlIE5hbWUgKEFSTikgb2YgYW4gW0VDUyBjb250YWluZXIgaW5zdGFuY2VdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25FQ1MvbGF0ZXN0L2RldmVsb3Blcmd1aWRlL0VDU19pbnN0YW5jZXMuaHRtbCkuXG4gKlxuICogQGRlcHJlY2F0ZWQgVXNlIEFUVFJfQVdTX0VDU19DT05UQUlORVJfQVJOIGluIFtpbmN1YmF0aW5nIGVudHJ5LXBvaW50XSh7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL29wZW4tdGVsZW1ldHJ5L29wZW50ZWxlbWV0cnktanMvYmxvYi9tYWluL3NlbWFudGljLWNvbnZlbnRpb25zL1JFQURNRS5tZCN1bnN0YWJsZS1zZW1jb252fSkuXG4gKi9cbnZhciBTRU1SRVNBVFRSU19BV1NfRUNTX0NPTlRBSU5FUl9BUk4gPSBUTVBfQVdTX0VDU19DT05UQUlORVJfQVJOO1xuLyoqXG4gKiBUaGUgQVJOIG9mIGFuIFtFQ1MgY2x1c3Rlcl0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvbkVDUy9sYXRlc3QvZGV2ZWxvcGVyZ3VpZGUvY2x1c3RlcnMuaHRtbCkuXG4gKlxuICogQGRlcHJlY2F0ZWQgVXNlIEFUVFJfQVdTX0VDU19DTFVTVEVSX0FSTiBpbiBbaW5jdWJhdGluZyBlbnRyeS1wb2ludF0oe0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuLXRlbGVtZXRyeS9vcGVudGVsZW1ldHJ5LWpzL2Jsb2IvbWFpbi9zZW1hbnRpYy1jb252ZW50aW9ucy9SRUFETUUubWQjdW5zdGFibGUtc2VtY29udn0pLlxuICovXG52YXIgU0VNUkVTQVRUUlNfQVdTX0VDU19DTFVTVEVSX0FSTiA9IFRNUF9BV1NfRUNTX0NMVVNURVJfQVJOO1xuLyoqXG4gKiBUaGUgW2xhdW5jaCB0eXBlXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uRUNTL2xhdGVzdC9kZXZlbG9wZXJndWlkZS9sYXVuY2hfdHlwZXMuaHRtbCkgZm9yIGFuIEVDUyB0YXNrLlxuICpcbiAqIEBkZXByZWNhdGVkIFVzZSBBVFRSX0FXU19FQ1NfTEFVTkNIVFlQRSBpbiBbaW5jdWJhdGluZyBlbnRyeS1wb2ludF0oe0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuLXRlbGVtZXRyeS9vcGVudGVsZW1ldHJ5LWpzL2Jsb2IvbWFpbi9zZW1hbnRpYy1jb252ZW50aW9ucy9SRUFETUUubWQjdW5zdGFibGUtc2VtY29udn0pLlxuICovXG52YXIgU0VNUkVTQVRUUlNfQVdTX0VDU19MQVVOQ0hUWVBFID0gVE1QX0FXU19FQ1NfTEFVTkNIVFlQRTtcbi8qKlxuICogVGhlIEFSTiBvZiBhbiBbRUNTIHRhc2sgZGVmaW5pdGlvbl0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvbkVDUy9sYXRlc3QvZGV2ZWxvcGVyZ3VpZGUvdGFza19kZWZpbml0aW9ucy5odG1sKS5cbiAqXG4gKiBAZGVwcmVjYXRlZCBVc2UgQVRUUl9BV1NfRUNTX1RBU0tfQVJOIGluIFtpbmN1YmF0aW5nIGVudHJ5LXBvaW50XSh7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL29wZW4tdGVsZW1ldHJ5L29wZW50ZWxlbWV0cnktanMvYmxvYi9tYWluL3NlbWFudGljLWNvbnZlbnRpb25zL1JFQURNRS5tZCN1bnN0YWJsZS1zZW1jb252fSkuXG4gKi9cbnZhciBTRU1SRVNBVFRSU19BV1NfRUNTX1RBU0tfQVJOID0gVE1QX0FXU19FQ1NfVEFTS19BUk47XG4vKipcbiAqIFRoZSB0YXNrIGRlZmluaXRpb24gZmFtaWx5IHRoaXMgdGFzayBkZWZpbml0aW9uIGlzIGEgbWVtYmVyIG9mLlxuICpcbiAqIEBkZXByZWNhdGVkIFVzZSBBVFRSX0FXU19FQ1NfVEFTS19GQU1JTFkgaW4gW2luY3ViYXRpbmcgZW50cnktcG9pbnRdKHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vb3Blbi10ZWxlbWV0cnkvb3BlbnRlbGVtZXRyeS1qcy9ibG9iL21haW4vc2VtYW50aWMtY29udmVudGlvbnMvUkVBRE1FLm1kI3Vuc3RhYmxlLXNlbWNvbnZ9KS5cbiAqL1xudmFyIFNFTVJFU0FUVFJTX0FXU19FQ1NfVEFTS19GQU1JTFkgPSBUTVBfQVdTX0VDU19UQVNLX0ZBTUlMWTtcbi8qKlxuICogVGhlIHJldmlzaW9uIGZvciB0aGlzIHRhc2sgZGVmaW5pdGlvbi5cbiAqXG4gKiBAZGVwcmVjYXRlZCBVc2UgQVRUUl9BV1NfRUNTX1RBU0tfUkVWSVNJT04gaW4gW2luY3ViYXRpbmcgZW50cnktcG9pbnRdKHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vb3Blbi10ZWxlbWV0cnkvb3BlbnRlbGVtZXRyeS1qcy9ibG9iL21haW4vc2VtYW50aWMtY29udmVudGlvbnMvUkVBRE1FLm1kI3Vuc3RhYmxlLXNlbWNvbnZ9KS5cbiAqL1xudmFyIFNFTVJFU0FUVFJTX0FXU19FQ1NfVEFTS19SRVZJU0lPTiA9IFRNUF9BV1NfRUNTX1RBU0tfUkVWSVNJT047XG4vKipcbiAqIFRoZSBBUk4gb2YgYW4gRUtTIGNsdXN0ZXIuXG4gKlxuICogQGRlcHJlY2F0ZWQgVXNlIEFUVFJfQVdTX0VLU19DTFVTVEVSX0FSTiBpbiBbaW5jdWJhdGluZyBlbnRyeS1wb2ludF0oe0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuLXRlbGVtZXRyeS9vcGVudGVsZW1ldHJ5LWpzL2Jsb2IvbWFpbi9zZW1hbnRpYy1jb252ZW50aW9ucy9SRUFETUUubWQjdW5zdGFibGUtc2VtY29udn0pLlxuICovXG52YXIgU0VNUkVTQVRUUlNfQVdTX0VLU19DTFVTVEVSX0FSTiA9IFRNUF9BV1NfRUtTX0NMVVNURVJfQVJOO1xuLyoqXG4gKiBUaGUgbmFtZShzKSBvZiB0aGUgQVdTIGxvZyBncm91cChzKSBhbiBhcHBsaWNhdGlvbiBpcyB3cml0aW5nIHRvLlxuICpcbiAqIE5vdGU6IE11bHRpcGxlIGxvZyBncm91cHMgbXVzdCBiZSBzdXBwb3J0ZWQgZm9yIGNhc2VzIGxpa2UgbXVsdGktY29udGFpbmVyIGFwcGxpY2F0aW9ucywgd2hlcmUgYSBzaW5nbGUgYXBwbGljYXRpb24gaGFzIHNpZGVjYXIgY29udGFpbmVycywgYW5kIGVhY2ggd3JpdGUgdG8gdGhlaXIgb3duIGxvZyBncm91cC5cbiAqXG4gKiBAZGVwcmVjYXRlZCBVc2UgQVRUUl9BV1NfTE9HX0dST1VQX05BTUVTIGluIFtpbmN1YmF0aW5nIGVudHJ5LXBvaW50XSh7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL29wZW4tdGVsZW1ldHJ5L29wZW50ZWxlbWV0cnktanMvYmxvYi9tYWluL3NlbWFudGljLWNvbnZlbnRpb25zL1JFQURNRS5tZCN1bnN0YWJsZS1zZW1jb252fSkuXG4gKi9cbnZhciBTRU1SRVNBVFRSU19BV1NfTE9HX0dST1VQX05BTUVTID0gVE1QX0FXU19MT0dfR1JPVVBfTkFNRVM7XG4vKipcbiAqIFRoZSBBbWF6b24gUmVzb3VyY2UgTmFtZShzKSAoQVJOKSBvZiB0aGUgQVdTIGxvZyBncm91cChzKS5cbiAqXG4gKiBOb3RlOiBTZWUgdGhlIFtsb2cgZ3JvdXAgQVJOIGZvcm1hdCBkb2N1bWVudGF0aW9uXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uQ2xvdWRXYXRjaC9sYXRlc3QvbG9ncy9pYW0tYWNjZXNzLWNvbnRyb2wtb3ZlcnZpZXctY3dsLmh0bWwjQ1dMX0FSTl9Gb3JtYXQpLlxuICpcbiAqIEBkZXByZWNhdGVkIFVzZSBBVFRSX0FXU19MT0dfR1JPVVBfQVJOUyBpbiBbaW5jdWJhdGluZyBlbnRyeS1wb2ludF0oe0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuLXRlbGVtZXRyeS9vcGVudGVsZW1ldHJ5LWpzL2Jsb2IvbWFpbi9zZW1hbnRpYy1jb252ZW50aW9ucy9SRUFETUUubWQjdW5zdGFibGUtc2VtY29udn0pLlxuICovXG52YXIgU0VNUkVTQVRUUlNfQVdTX0xPR19HUk9VUF9BUk5TID0gVE1QX0FXU19MT0dfR1JPVVBfQVJOUztcbi8qKlxuICogVGhlIG5hbWUocykgb2YgdGhlIEFXUyBsb2cgc3RyZWFtKHMpIGFuIGFwcGxpY2F0aW9uIGlzIHdyaXRpbmcgdG8uXG4gKlxuICogQGRlcHJlY2F0ZWQgVXNlIEFUVFJfQVdTX0xPR19TVFJFQU1fTkFNRVMgaW4gW2luY3ViYXRpbmcgZW50cnktcG9pbnRdKHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vb3Blbi10ZWxlbWV0cnkvb3BlbnRlbGVtZXRyeS1qcy9ibG9iL21haW4vc2VtYW50aWMtY29udmVudGlvbnMvUkVBRE1FLm1kI3Vuc3RhYmxlLXNlbWNvbnZ9KS5cbiAqL1xudmFyIFNFTVJFU0FUVFJTX0FXU19MT0dfU1RSRUFNX05BTUVTID0gVE1QX0FXU19MT0dfU1RSRUFNX05BTUVTO1xuLyoqXG4gKiBUaGUgQVJOKHMpIG9mIHRoZSBBV1MgbG9nIHN0cmVhbShzKS5cbiAqXG4gKiBOb3RlOiBTZWUgdGhlIFtsb2cgc3RyZWFtIEFSTiBmb3JtYXQgZG9jdW1lbnRhdGlvbl0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvbkNsb3VkV2F0Y2gvbGF0ZXN0L2xvZ3MvaWFtLWFjY2Vzcy1jb250cm9sLW92ZXJ2aWV3LWN3bC5odG1sI0NXTF9BUk5fRm9ybWF0KS4gT25lIGxvZyBncm91cCBjYW4gY29udGFpbiBzZXZlcmFsIGxvZyBzdHJlYW1zLCBzbyB0aGVzZSBBUk5zIG5lY2Vzc2FyaWx5IGlkZW50aWZ5IGJvdGggYSBsb2cgZ3JvdXAgYW5kIGEgbG9nIHN0cmVhbS5cbiAqXG4gKiBAZGVwcmVjYXRlZCBVc2UgQVRUUl9BV1NfTE9HX1NUUkVBTV9BUk5TIGluIFtpbmN1YmF0aW5nIGVudHJ5LXBvaW50XSh7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL29wZW4tdGVsZW1ldHJ5L29wZW50ZWxlbWV0cnktanMvYmxvYi9tYWluL3NlbWFudGljLWNvbnZlbnRpb25zL1JFQURNRS5tZCN1bnN0YWJsZS1zZW1jb252fSkuXG4gKi9cbnZhciBTRU1SRVNBVFRSU19BV1NfTE9HX1NUUkVBTV9BUk5TID0gVE1QX0FXU19MT0dfU1RSRUFNX0FSTlM7XG4vKipcbiAqIENvbnRhaW5lciBuYW1lLlxuICpcbiAqIEBkZXByZWNhdGVkIFVzZSBBVFRSX0NPTlRBSU5FUl9OQU1FIGluIFtpbmN1YmF0aW5nIGVudHJ5LXBvaW50XSh7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL29wZW4tdGVsZW1ldHJ5L29wZW50ZWxlbWV0cnktanMvYmxvYi9tYWluL3NlbWFudGljLWNvbnZlbnRpb25zL1JFQURNRS5tZCN1bnN0YWJsZS1zZW1jb252fSkuXG4gKi9cbnZhciBTRU1SRVNBVFRSU19DT05UQUlORVJfTkFNRSA9IFRNUF9DT05UQUlORVJfTkFNRTtcbi8qKlxuICogQ29udGFpbmVyIElELiBVc3VhbGx5IGEgVVVJRCwgYXMgZm9yIGV4YW1wbGUgdXNlZCB0byBbaWRlbnRpZnkgRG9ja2VyIGNvbnRhaW5lcnNdKGh0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2VuZ2luZS9yZWZlcmVuY2UvcnVuLyNjb250YWluZXItaWRlbnRpZmljYXRpb24pLiBUaGUgVVVJRCBtaWdodCBiZSBhYmJyZXZpYXRlZC5cbiAqXG4gKiBAZGVwcmVjYXRlZCBVc2UgQVRUUl9DT05UQUlORVJfSUQgaW4gW2luY3ViYXRpbmcgZW50cnktcG9pbnRdKHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vb3Blbi10ZWxlbWV0cnkvb3BlbnRlbGVtZXRyeS1qcy9ibG9iL21haW4vc2VtYW50aWMtY29udmVudGlvbnMvUkVBRE1FLm1kI3Vuc3RhYmxlLXNlbWNvbnZ9KS5cbiAqL1xudmFyIFNFTVJFU0FUVFJTX0NPTlRBSU5FUl9JRCA9IFRNUF9DT05UQUlORVJfSUQ7XG4vKipcbiAqIFRoZSBjb250YWluZXIgcnVudGltZSBtYW5hZ2luZyB0aGlzIGNvbnRhaW5lci5cbiAqXG4gKiBAZGVwcmVjYXRlZCBVc2UgQVRUUl9DT05UQUlORVJfUlVOVElNRSBpbiBbaW5jdWJhdGluZyBlbnRyeS1wb2ludF0oe0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuLXRlbGVtZXRyeS9vcGVudGVsZW1ldHJ5LWpzL2Jsb2IvbWFpbi9zZW1hbnRpYy1jb252ZW50aW9ucy9SRUFETUUubWQjdW5zdGFibGUtc2VtY29udn0pLlxuICovXG52YXIgU0VNUkVTQVRUUlNfQ09OVEFJTkVSX1JVTlRJTUUgPSBUTVBfQ09OVEFJTkVSX1JVTlRJTUU7XG4vKipcbiAqIE5hbWUgb2YgdGhlIGltYWdlIHRoZSBjb250YWluZXIgd2FzIGJ1aWx0IG9uLlxuICpcbiAqIEBkZXByZWNhdGVkIFVzZSBBVFRSX0NPTlRBSU5FUl9JTUFHRV9OQU1FIGluIFtpbmN1YmF0aW5nIGVudHJ5LXBvaW50XSh7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL29wZW4tdGVsZW1ldHJ5L29wZW50ZWxlbWV0cnktanMvYmxvYi9tYWluL3NlbWFudGljLWNvbnZlbnRpb25zL1JFQURNRS5tZCN1bnN0YWJsZS1zZW1jb252fSkuXG4gKi9cbnZhciBTRU1SRVNBVFRSU19DT05UQUlORVJfSU1BR0VfTkFNRSA9IFRNUF9DT05UQUlORVJfSU1BR0VfTkFNRTtcbi8qKlxuICogQ29udGFpbmVyIGltYWdlIHRhZy5cbiAqXG4gKiBAZGVwcmVjYXRlZCBVc2UgQVRUUl9DT05UQUlORVJfSU1BR0VfVEFHUyBpbiBbaW5jdWJhdGluZyBlbnRyeS1wb2ludF0oe0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuLXRlbGVtZXRyeS9vcGVudGVsZW1ldHJ5LWpzL2Jsb2IvbWFpbi9zZW1hbnRpYy1jb252ZW50aW9ucy9SRUFETUUubWQjdW5zdGFibGUtc2VtY29udn0pLlxuICovXG52YXIgU0VNUkVTQVRUUlNfQ09OVEFJTkVSX0lNQUdFX1RBRyA9IFRNUF9DT05UQUlORVJfSU1BR0VfVEFHO1xuLyoqXG4gKiBOYW1lIG9mIHRoZSBbZGVwbG95bWVudCBlbnZpcm9ubWVudF0oaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvRGVwbG95bWVudF9lbnZpcm9ubWVudCkgKGFrYSBkZXBsb3ltZW50IHRpZXIpLlxuICpcbiAqIEBkZXByZWNhdGVkIFVzZSBBVFRSX0RFUExPWU1FTlRfRU5WSVJPTk1FTlQgaW4gW2luY3ViYXRpbmcgZW50cnktcG9pbnRdKHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vb3Blbi10ZWxlbWV0cnkvb3BlbnRlbGVtZXRyeS1qcy9ibG9iL21haW4vc2VtYW50aWMtY29udmVudGlvbnMvUkVBRE1FLm1kI3Vuc3RhYmxlLXNlbWNvbnZ9KS5cbiAqL1xudmFyIFNFTVJFU0FUVFJTX0RFUExPWU1FTlRfRU5WSVJPTk1FTlQgPSBUTVBfREVQTE9ZTUVOVF9FTlZJUk9OTUVOVDtcbi8qKlxuICogQSB1bmlxdWUgaWRlbnRpZmllciByZXByZXNlbnRpbmcgdGhlIGRldmljZS5cbiAqXG4gKiBOb3RlOiBUaGUgZGV2aWNlIGlkZW50aWZpZXIgTVVTVCBvbmx5IGJlIGRlZmluZWQgdXNpbmcgdGhlIHZhbHVlcyBvdXRsaW5lZCBiZWxvdy4gVGhpcyB2YWx1ZSBpcyBub3QgYW4gYWR2ZXJ0aXNpbmcgaWRlbnRpZmllciBhbmQgTVVTVCBOT1QgYmUgdXNlZCBhcyBzdWNoLiBPbiBpT1MgKFN3aWZ0IG9yIE9iamVjdGl2ZS1DKSwgdGhpcyB2YWx1ZSBNVVNUIGJlIGVxdWFsIHRvIHRoZSBbdmVuZG9yIGlkZW50aWZpZXJdKGh0dHBzOi8vZGV2ZWxvcGVyLmFwcGxlLmNvbS9kb2N1bWVudGF0aW9uL3Vpa2l0L3VpZGV2aWNlLzE2MjAwNTktaWRlbnRpZmllcmZvcnZlbmRvcikuIE9uIEFuZHJvaWQgKEphdmEgb3IgS290bGluKSwgdGhpcyB2YWx1ZSBNVVNUIGJlIGVxdWFsIHRvIHRoZSBGaXJlYmFzZSBJbnN0YWxsYXRpb24gSUQgb3IgYSBnbG9iYWxseSB1bmlxdWUgVVVJRCB3aGljaCBpcyBwZXJzaXN0ZWQgYWNyb3NzIHNlc3Npb25zIGluIHlvdXIgYXBwbGljYXRpb24uIE1vcmUgaW5mb3JtYXRpb24gY2FuIGJlIGZvdW5kIFtoZXJlXShodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS90cmFpbmluZy9hcnRpY2xlcy91c2VyLWRhdGEtaWRzKSBvbiBiZXN0IHByYWN0aWNlcyBhbmQgZXhhY3QgaW1wbGVtZW50YXRpb24gZGV0YWlscy4gQ2F1dGlvbiBzaG91bGQgYmUgdGFrZW4gd2hlbiBzdG9yaW5nIHBlcnNvbmFsIGRhdGEgb3IgYW55dGhpbmcgd2hpY2ggY2FuIGlkZW50aWZ5IGEgdXNlci4gR0RQUiBhbmQgZGF0YSBwcm90ZWN0aW9uIGxhd3MgbWF5IGFwcGx5LCBlbnN1cmUgeW91IGRvIHlvdXIgb3duIGR1ZSBkaWxpZ2VuY2UuXG4gKlxuICogQGRlcHJlY2F0ZWQgVXNlIEFUVFJfREVWSUNFX0lEIGluIFtpbmN1YmF0aW5nIGVudHJ5LXBvaW50XSh7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL29wZW4tdGVsZW1ldHJ5L29wZW50ZWxlbWV0cnktanMvYmxvYi9tYWluL3NlbWFudGljLWNvbnZlbnRpb25zL1JFQURNRS5tZCN1bnN0YWJsZS1zZW1jb252fSkuXG4gKi9cbnZhciBTRU1SRVNBVFRSU19ERVZJQ0VfSUQgPSBUTVBfREVWSUNFX0lEO1xuLyoqXG4gKiBUaGUgbW9kZWwgaWRlbnRpZmllciBmb3IgdGhlIGRldmljZS5cbiAqXG4gKiBOb3RlOiBJdCYjMzk7cyByZWNvbW1lbmRlZCB0aGlzIHZhbHVlIHJlcHJlc2VudHMgYSBtYWNoaW5lIHJlYWRhYmxlIHZlcnNpb24gb2YgdGhlIG1vZGVsIGlkZW50aWZpZXIgcmF0aGVyIHRoYW4gdGhlIG1hcmtldCBvciBjb25zdW1lci1mcmllbmRseSBuYW1lIG9mIHRoZSBkZXZpY2UuXG4gKlxuICogQGRlcHJlY2F0ZWQgVXNlIEFUVFJfREVWSUNFX01PREVMX0lERU5USUZJRVIgaW4gW2luY3ViYXRpbmcgZW50cnktcG9pbnRdKHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vb3Blbi10ZWxlbWV0cnkvb3BlbnRlbGVtZXRyeS1qcy9ibG9iL21haW4vc2VtYW50aWMtY29udmVudGlvbnMvUkVBRE1FLm1kI3Vuc3RhYmxlLXNlbWNvbnZ9KS5cbiAqL1xudmFyIFNFTVJFU0FUVFJTX0RFVklDRV9NT0RFTF9JREVOVElGSUVSID0gVE1QX0RFVklDRV9NT0RFTF9JREVOVElGSUVSO1xuLyoqXG4gKiBUaGUgbWFya2V0aW5nIG5hbWUgZm9yIHRoZSBkZXZpY2UgbW9kZWwuXG4gKlxuICogTm90ZTogSXQmIzM5O3MgcmVjb21tZW5kZWQgdGhpcyB2YWx1ZSByZXByZXNlbnRzIGEgaHVtYW4gcmVhZGFibGUgdmVyc2lvbiBvZiB0aGUgZGV2aWNlIG1vZGVsIHJhdGhlciB0aGFuIGEgbWFjaGluZSByZWFkYWJsZSBhbHRlcm5hdGl2ZS5cbiAqXG4gKiBAZGVwcmVjYXRlZCBVc2UgQVRUUl9ERVZJQ0VfTU9ERUxfTkFNRSBpbiBbaW5jdWJhdGluZyBlbnRyeS1wb2ludF0oe0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuLXRlbGVtZXRyeS9vcGVudGVsZW1ldHJ5LWpzL2Jsb2IvbWFpbi9zZW1hbnRpYy1jb252ZW50aW9ucy9SRUFETUUubWQjdW5zdGFibGUtc2VtY29udn0pLlxuICovXG52YXIgU0VNUkVTQVRUUlNfREVWSUNFX01PREVMX05BTUUgPSBUTVBfREVWSUNFX01PREVMX05BTUU7XG4vKipcbiAqIFRoZSBuYW1lIG9mIHRoZSBzaW5nbGUgZnVuY3Rpb24gdGhhdCB0aGlzIHJ1bnRpbWUgaW5zdGFuY2UgZXhlY3V0ZXMuXG4gKlxuICogTm90ZTogVGhpcyBpcyB0aGUgbmFtZSBvZiB0aGUgZnVuY3Rpb24gYXMgY29uZmlndXJlZC9kZXBsb3llZCBvbiB0aGUgRmFhUyBwbGF0Zm9ybSBhbmQgaXMgdXN1YWxseSBkaWZmZXJlbnQgZnJvbSB0aGUgbmFtZSBvZiB0aGUgY2FsbGJhY2sgZnVuY3Rpb24gKHdoaWNoIG1heSBiZSBzdG9yZWQgaW4gdGhlIFtgY29kZS5uYW1lc3BhY2VgL2Bjb2RlLmZ1bmN0aW9uYF0oLi4vLi4vdHJhY2Uvc2VtYW50aWNfY29udmVudGlvbnMvc3Bhbi1nZW5lcmFsLm1kI3NvdXJjZS1jb2RlLWF0dHJpYnV0ZXMpIHNwYW4gYXR0cmlidXRlcykuXG4gKlxuICogQGRlcHJlY2F0ZWQgVXNlIEFUVFJfRkFBU19OQU1FIGluIFtpbmN1YmF0aW5nIGVudHJ5LXBvaW50XSh7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL29wZW4tdGVsZW1ldHJ5L29wZW50ZWxlbWV0cnktanMvYmxvYi9tYWluL3NlbWFudGljLWNvbnZlbnRpb25zL1JFQURNRS5tZCN1bnN0YWJsZS1zZW1jb252fSkuXG4gKi9cbnZhciBTRU1SRVNBVFRSU19GQUFTX05BTUUgPSBUTVBfRkFBU19OQU1FO1xuLyoqXG4qIFRoZSB1bmlxdWUgSUQgb2YgdGhlIHNpbmdsZSBmdW5jdGlvbiB0aGF0IHRoaXMgcnVudGltZSBpbnN0YW5jZSBleGVjdXRlcy5cbipcbiogTm90ZTogRGVwZW5kaW5nIG9uIHRoZSBjbG91ZCBwcm92aWRlciwgdXNlOlxuXG4qICoqQVdTIExhbWJkYToqKiBUaGUgZnVuY3Rpb24gW0FSTl0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2dlbmVyYWwvbGF0ZXN0L2dyL2F3cy1hcm5zLWFuZC1uYW1lc3BhY2VzLmh0bWwpLlxuVGFrZSBjYXJlIG5vdCB0byB1c2UgdGhlICYjMzQ7aW52b2tlZCBBUk4mIzM0OyBkaXJlY3RseSBidXQgcmVwbGFjZSBhbnlcblthbGlhcyBzdWZmaXhdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9sYW1iZGEvbGF0ZXN0L2RnL2NvbmZpZ3VyYXRpb24tYWxpYXNlcy5odG1sKSB3aXRoIHRoZSByZXNvbHZlZCBmdW5jdGlvbiB2ZXJzaW9uLCBhcyB0aGUgc2FtZSBydW50aW1lIGluc3RhbmNlIG1heSBiZSBpbnZva2FibGUgd2l0aCBtdWx0aXBsZVxuZGlmZmVyZW50IGFsaWFzZXMuXG4qICoqR0NQOioqIFRoZSBbVVJJIG9mIHRoZSByZXNvdXJjZV0oaHR0cHM6Ly9jbG91ZC5nb29nbGUuY29tL2lhbS9kb2NzL2Z1bGwtcmVzb3VyY2UtbmFtZXMpXG4qICoqQXp1cmU6KiogVGhlIFtGdWxseSBRdWFsaWZpZWQgUmVzb3VyY2UgSURdKGh0dHBzOi8vZG9jcy5taWNyb3NvZnQuY29tL2VuLXVzL3Jlc3QvYXBpL3Jlc291cmNlcy9yZXNvdXJjZXMvZ2V0LWJ5LWlkKS5cblxuT24gc29tZSBwcm92aWRlcnMsIGl0IG1heSBub3QgYmUgcG9zc2libGUgdG8gZGV0ZXJtaW5lIHRoZSBmdWxsIElEIGF0IHN0YXJ0dXAsXG53aGljaCBpcyB3aHkgdGhpcyBmaWVsZCBjYW5ub3QgYmUgbWFkZSByZXF1aXJlZC4gRm9yIGV4YW1wbGUsIG9uIEFXUyB0aGUgYWNjb3VudCBJRFxucGFydCBvZiB0aGUgQVJOIGlzIG5vdCBhdmFpbGFibGUgd2l0aG91dCBjYWxsaW5nIGFub3RoZXIgQVdTIEFQSVxud2hpY2ggbWF5IGJlIGRlZW1lZCB0b28gc2xvdyBmb3IgYSBzaG9ydC1ydW5uaW5nIGxhbWJkYSBmdW5jdGlvbi5cbkFzIGFuIGFsdGVybmF0aXZlLCBjb25zaWRlciBzZXR0aW5nIGBmYWFzLmlkYCBhcyBhIHNwYW4gYXR0cmlidXRlIGluc3RlYWQuXG4qXG4qIEBkZXByZWNhdGVkIFVzZSBBVFRSX0NMT1VEX1JFU09VUkNFX0lEIGluIFtpbmN1YmF0aW5nIGVudHJ5LXBvaW50XSh7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL29wZW4tdGVsZW1ldHJ5L29wZW50ZWxlbWV0cnktanMvYmxvYi9tYWluL3NlbWFudGljLWNvbnZlbnRpb25zL1JFQURNRS5tZCN1bnN0YWJsZS1zZW1jb252fSkuXG4qL1xudmFyIFNFTVJFU0FUVFJTX0ZBQVNfSUQgPSBUTVBfRkFBU19JRDtcbi8qKlxuKiBUaGUgaW1tdXRhYmxlIHZlcnNpb24gb2YgdGhlIGZ1bmN0aW9uIGJlaW5nIGV4ZWN1dGVkLlxuKlxuKiBOb3RlOiBEZXBlbmRpbmcgb24gdGhlIGNsb3VkIHByb3ZpZGVyIGFuZCBwbGF0Zm9ybSwgdXNlOlxuXG4qICoqQVdTIExhbWJkYToqKiBUaGUgW2Z1bmN0aW9uIHZlcnNpb25dKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9sYW1iZGEvbGF0ZXN0L2RnL2NvbmZpZ3VyYXRpb24tdmVyc2lvbnMuaHRtbClcbiAgKGFuIGludGVnZXIgcmVwcmVzZW50ZWQgYXMgYSBkZWNpbWFsIHN0cmluZykuXG4qICoqR29vZ2xlIENsb3VkIFJ1bjoqKiBUaGUgW3JldmlzaW9uXShodHRwczovL2Nsb3VkLmdvb2dsZS5jb20vcnVuL2RvY3MvbWFuYWdpbmcvcmV2aXNpb25zKVxuICAoaS5lLiwgdGhlIGZ1bmN0aW9uIG5hbWUgcGx1cyB0aGUgcmV2aXNpb24gc3VmZml4KS5cbiogKipHb29nbGUgQ2xvdWQgRnVuY3Rpb25zOioqIFRoZSB2YWx1ZSBvZiB0aGVcbiAgW2BLX1JFVklTSU9OYCBlbnZpcm9ubWVudCB2YXJpYWJsZV0oaHR0cHM6Ly9jbG91ZC5nb29nbGUuY29tL2Z1bmN0aW9ucy9kb2NzL2Vudi12YXIjcnVudGltZV9lbnZpcm9ubWVudF92YXJpYWJsZXNfc2V0X2F1dG9tYXRpY2FsbHkpLlxuKiAqKkF6dXJlIEZ1bmN0aW9uczoqKiBOb3QgYXBwbGljYWJsZS4gRG8gbm90IHNldCB0aGlzIGF0dHJpYnV0ZS5cbipcbiogQGRlcHJlY2F0ZWQgVXNlIEFUVFJfRkFBU19WRVJTSU9OIGluIFtpbmN1YmF0aW5nIGVudHJ5LXBvaW50XSh7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL29wZW4tdGVsZW1ldHJ5L29wZW50ZWxlbWV0cnktanMvYmxvYi9tYWluL3NlbWFudGljLWNvbnZlbnRpb25zL1JFQURNRS5tZCN1bnN0YWJsZS1zZW1jb252fSkuXG4qL1xudmFyIFNFTVJFU0FUVFJTX0ZBQVNfVkVSU0lPTiA9IFRNUF9GQUFTX1ZFUlNJT047XG4vKipcbiAqIFRoZSBleGVjdXRpb24gZW52aXJvbm1lbnQgSUQgYXMgYSBzdHJpbmcsIHRoYXQgd2lsbCBiZSBwb3RlbnRpYWxseSByZXVzZWQgZm9yIG90aGVyIGludm9jYXRpb25zIHRvIHRoZSBzYW1lIGZ1bmN0aW9uL2Z1bmN0aW9uIHZlcnNpb24uXG4gKlxuICogTm90ZTogKiAqKkFXUyBMYW1iZGE6KiogVXNlIHRoZSAoZnVsbCkgbG9nIHN0cmVhbSBuYW1lLlxuICpcbiAqIEBkZXByZWNhdGVkIFVzZSBBVFRSX0ZBQVNfSU5TVEFOQ0UgaW4gW2luY3ViYXRpbmcgZW50cnktcG9pbnRdKHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vb3Blbi10ZWxlbWV0cnkvb3BlbnRlbGVtZXRyeS1qcy9ibG9iL21haW4vc2VtYW50aWMtY29udmVudGlvbnMvUkVBRE1FLm1kI3Vuc3RhYmxlLXNlbWNvbnZ9KS5cbiAqL1xudmFyIFNFTVJFU0FUVFJTX0ZBQVNfSU5TVEFOQ0UgPSBUTVBfRkFBU19JTlNUQU5DRTtcbi8qKlxuICogVGhlIGFtb3VudCBvZiBtZW1vcnkgYXZhaWxhYmxlIHRvIHRoZSBzZXJ2ZXJsZXNzIGZ1bmN0aW9uIGluIE1pQi5cbiAqXG4gKiBOb3RlOiBJdCYjMzk7cyByZWNvbW1lbmRlZCB0byBzZXQgdGhpcyBhdHRyaWJ1dGUgc2luY2UgZS5nLiB0b28gbGl0dGxlIG1lbW9yeSBjYW4gZWFzaWx5IHN0b3AgYSBKYXZhIEFXUyBMYW1iZGEgZnVuY3Rpb24gZnJvbSB3b3JraW5nIGNvcnJlY3RseS4gT24gQVdTIExhbWJkYSwgdGhlIGVudmlyb25tZW50IHZhcmlhYmxlIGBBV1NfTEFNQkRBX0ZVTkNUSU9OX01FTU9SWV9TSVpFYCBwcm92aWRlcyB0aGlzIGluZm9ybWF0aW9uLlxuICpcbiAqIEBkZXByZWNhdGVkIFVzZSBBVFRSX0ZBQVNfTUFYX01FTU9SWSBpbiBbaW5jdWJhdGluZyBlbnRyeS1wb2ludF0oe0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuLXRlbGVtZXRyeS9vcGVudGVsZW1ldHJ5LWpzL2Jsb2IvbWFpbi9zZW1hbnRpYy1jb252ZW50aW9ucy9SRUFETUUubWQjdW5zdGFibGUtc2VtY29udn0pLlxuICovXG52YXIgU0VNUkVTQVRUUlNfRkFBU19NQVhfTUVNT1JZID0gVE1QX0ZBQVNfTUFYX01FTU9SWTtcbi8qKlxuICogVW5pcXVlIGhvc3QgSUQuIEZvciBDbG91ZCwgdGhpcyBtdXN0IGJlIHRoZSBpbnN0YW5jZV9pZCBhc3NpZ25lZCBieSB0aGUgY2xvdWQgcHJvdmlkZXIuXG4gKlxuICogQGRlcHJlY2F0ZWQgVXNlIEFUVFJfSE9TVF9JRCBpbiBbaW5jdWJhdGluZyBlbnRyeS1wb2ludF0oe0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuLXRlbGVtZXRyeS9vcGVudGVsZW1ldHJ5LWpzL2Jsb2IvbWFpbi9zZW1hbnRpYy1jb252ZW50aW9ucy9SRUFETUUubWQjdW5zdGFibGUtc2VtY29udn0pLlxuICovXG52YXIgU0VNUkVTQVRUUlNfSE9TVF9JRCA9IFRNUF9IT1NUX0lEO1xuLyoqXG4gKiBOYW1lIG9mIHRoZSBob3N0LiBPbiBVbml4IHN5c3RlbXMsIGl0IG1heSBjb250YWluIHdoYXQgdGhlIGhvc3RuYW1lIGNvbW1hbmQgcmV0dXJucywgb3IgdGhlIGZ1bGx5IHF1YWxpZmllZCBob3N0bmFtZSwgb3IgYW5vdGhlciBuYW1lIHNwZWNpZmllZCBieSB0aGUgdXNlci5cbiAqXG4gKiBAZGVwcmVjYXRlZCBVc2UgQVRUUl9IT1NUX05BTUUgaW4gW2luY3ViYXRpbmcgZW50cnktcG9pbnRdKHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vb3Blbi10ZWxlbWV0cnkvb3BlbnRlbGVtZXRyeS1qcy9ibG9iL21haW4vc2VtYW50aWMtY29udmVudGlvbnMvUkVBRE1FLm1kI3Vuc3RhYmxlLXNlbWNvbnZ9KS5cbiAqL1xudmFyIFNFTVJFU0FUVFJTX0hPU1RfTkFNRSA9IFRNUF9IT1NUX05BTUU7XG4vKipcbiAqIFR5cGUgb2YgaG9zdC4gRm9yIENsb3VkLCB0aGlzIG11c3QgYmUgdGhlIG1hY2hpbmUgdHlwZS5cbiAqXG4gKiBAZGVwcmVjYXRlZCBVc2UgQVRUUl9IT1NUX1RZUEUgaW4gW2luY3ViYXRpbmcgZW50cnktcG9pbnRdKHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vb3Blbi10ZWxlbWV0cnkvb3BlbnRlbGVtZXRyeS1qcy9ibG9iL21haW4vc2VtYW50aWMtY29udmVudGlvbnMvUkVBRE1FLm1kI3Vuc3RhYmxlLXNlbWNvbnZ9KS5cbiAqL1xudmFyIFNFTVJFU0FUVFJTX0hPU1RfVFlQRSA9IFRNUF9IT1NUX1RZUEU7XG4vKipcbiAqIFRoZSBDUFUgYXJjaGl0ZWN0dXJlIHRoZSBob3N0IHN5c3RlbSBpcyBydW5uaW5nIG9uLlxuICpcbiAqIEBkZXByZWNhdGVkIFVzZSBBVFRSX0hPU1RfQVJDSCBpbiBbaW5jdWJhdGluZyBlbnRyeS1wb2ludF0oe0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuLXRlbGVtZXRyeS9vcGVudGVsZW1ldHJ5LWpzL2Jsb2IvbWFpbi9zZW1hbnRpYy1jb252ZW50aW9ucy9SRUFETUUubWQjdW5zdGFibGUtc2VtY29udn0pLlxuICovXG52YXIgU0VNUkVTQVRUUlNfSE9TVF9BUkNIID0gVE1QX0hPU1RfQVJDSDtcbi8qKlxuICogTmFtZSBvZiB0aGUgVk0gaW1hZ2Ugb3IgT1MgaW5zdGFsbCB0aGUgaG9zdCB3YXMgaW5zdGFudGlhdGVkIGZyb20uXG4gKlxuICogQGRlcHJlY2F0ZWQgVXNlIEFUVFJfSE9TVF9JTUFHRV9OQU1FIGluIFtpbmN1YmF0aW5nIGVudHJ5LXBvaW50XSh7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL29wZW4tdGVsZW1ldHJ5L29wZW50ZWxlbWV0cnktanMvYmxvYi9tYWluL3NlbWFudGljLWNvbnZlbnRpb25zL1JFQURNRS5tZCN1bnN0YWJsZS1zZW1jb252fSkuXG4gKi9cbnZhciBTRU1SRVNBVFRSU19IT1NUX0lNQUdFX05BTUUgPSBUTVBfSE9TVF9JTUFHRV9OQU1FO1xuLyoqXG4gKiBWTSBpbWFnZSBJRC4gRm9yIENsb3VkLCB0aGlzIHZhbHVlIGlzIGZyb20gdGhlIHByb3ZpZGVyLlxuICpcbiAqIEBkZXByZWNhdGVkIFVzZSBBVFRSX0hPU1RfSU1BR0VfSUQgaW4gW2luY3ViYXRpbmcgZW50cnktcG9pbnRdKHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vb3Blbi10ZWxlbWV0cnkvb3BlbnRlbGVtZXRyeS1qcy9ibG9iL21haW4vc2VtYW50aWMtY29udmVudGlvbnMvUkVBRE1FLm1kI3Vuc3RhYmxlLXNlbWNvbnZ9KS5cbiAqL1xudmFyIFNFTVJFU0FUVFJTX0hPU1RfSU1BR0VfSUQgPSBUTVBfSE9TVF9JTUFHRV9JRDtcbi8qKlxuICogVGhlIHZlcnNpb24gc3RyaW5nIG9mIHRoZSBWTSBpbWFnZSBhcyBkZWZpbmVkIGluIFtWZXJzaW9uIEF0dHJpYnV0ZXNdKFJFQURNRS5tZCN2ZXJzaW9uLWF0dHJpYnV0ZXMpLlxuICpcbiAqIEBkZXByZWNhdGVkIFVzZSBBVFRSX0hPU1RfSU1BR0VfVkVSU0lPTiBpbiBbaW5jdWJhdGluZyBlbnRyeS1wb2ludF0oe0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuLXRlbGVtZXRyeS9vcGVudGVsZW1ldHJ5LWpzL2Jsb2IvbWFpbi9zZW1hbnRpYy1jb252ZW50aW9ucy9SRUFETUUubWQjdW5zdGFibGUtc2VtY29udn0pLlxuICovXG52YXIgU0VNUkVTQVRUUlNfSE9TVF9JTUFHRV9WRVJTSU9OID0gVE1QX0hPU1RfSU1BR0VfVkVSU0lPTjtcbi8qKlxuICogVGhlIG5hbWUgb2YgdGhlIGNsdXN0ZXIuXG4gKlxuICogQGRlcHJlY2F0ZWQgVXNlIEFUVFJfSzhTX0NMVVNURVJfTkFNRSBpbiBbaW5jdWJhdGluZyBlbnRyeS1wb2ludF0oe0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuLXRlbGVtZXRyeS9vcGVudGVsZW1ldHJ5LWpzL2Jsb2IvbWFpbi9zZW1hbnRpYy1jb252ZW50aW9ucy9SRUFETUUubWQjdW5zdGFibGUtc2VtY29udn0pLlxuICovXG52YXIgU0VNUkVTQVRUUlNfSzhTX0NMVVNURVJfTkFNRSA9IFRNUF9LOFNfQ0xVU1RFUl9OQU1FO1xuLyoqXG4gKiBUaGUgbmFtZSBvZiB0aGUgTm9kZS5cbiAqXG4gKiBAZGVwcmVjYXRlZCBVc2UgQVRUUl9LOFNfTk9ERV9OQU1FIGluIFtpbmN1YmF0aW5nIGVudHJ5LXBvaW50XSh7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL29wZW4tdGVsZW1ldHJ5L29wZW50ZWxlbWV0cnktanMvYmxvYi9tYWluL3NlbWFudGljLWNvbnZlbnRpb25zL1JFQURNRS5tZCN1bnN0YWJsZS1zZW1jb252fSkuXG4gKi9cbnZhciBTRU1SRVNBVFRSU19LOFNfTk9ERV9OQU1FID0gVE1QX0s4U19OT0RFX05BTUU7XG4vKipcbiAqIFRoZSBVSUQgb2YgdGhlIE5vZGUuXG4gKlxuICogQGRlcHJlY2F0ZWQgVXNlIEFUVFJfSzhTX05PREVfVUlEIGluIFtpbmN1YmF0aW5nIGVudHJ5LXBvaW50XSh7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL29wZW4tdGVsZW1ldHJ5L29wZW50ZWxlbWV0cnktanMvYmxvYi9tYWluL3NlbWFudGljLWNvbnZlbnRpb25zL1JFQURNRS5tZCN1bnN0YWJsZS1zZW1jb252fSkuXG4gKi9cbnZhciBTRU1SRVNBVFRSU19LOFNfTk9ERV9VSUQgPSBUTVBfSzhTX05PREVfVUlEO1xuLyoqXG4gKiBUaGUgbmFtZSBvZiB0aGUgbmFtZXNwYWNlIHRoYXQgdGhlIHBvZCBpcyBydW5uaW5nIGluLlxuICpcbiAqIEBkZXByZWNhdGVkIFVzZSBBVFRSX0s4U19OQU1FU1BBQ0VfTkFNRSBpbiBbaW5jdWJhdGluZyBlbnRyeS1wb2ludF0oe0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuLXRlbGVtZXRyeS9vcGVudGVsZW1ldHJ5LWpzL2Jsb2IvbWFpbi9zZW1hbnRpYy1jb252ZW50aW9ucy9SRUFETUUubWQjdW5zdGFibGUtc2VtY29udn0pLlxuICovXG52YXIgU0VNUkVTQVRUUlNfSzhTX05BTUVTUEFDRV9OQU1FID0gVE1QX0s4U19OQU1FU1BBQ0VfTkFNRTtcbi8qKlxuICogVGhlIFVJRCBvZiB0aGUgUG9kLlxuICpcbiAqIEBkZXByZWNhdGVkIFVzZSBBVFRSX0s4U19QT0RfVUlEIGluIFtpbmN1YmF0aW5nIGVudHJ5LXBvaW50XSh7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL29wZW4tdGVsZW1ldHJ5L29wZW50ZWxlbWV0cnktanMvYmxvYi9tYWluL3NlbWFudGljLWNvbnZlbnRpb25zL1JFQURNRS5tZCN1bnN0YWJsZS1zZW1jb252fSkuXG4gKi9cbnZhciBTRU1SRVNBVFRSU19LOFNfUE9EX1VJRCA9IFRNUF9LOFNfUE9EX1VJRDtcbi8qKlxuICogVGhlIG5hbWUgb2YgdGhlIFBvZC5cbiAqXG4gKiBAZGVwcmVjYXRlZCBVc2UgQVRUUl9LOFNfUE9EX05BTUUgaW4gW2luY3ViYXRpbmcgZW50cnktcG9pbnRdKHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vb3Blbi10ZWxlbWV0cnkvb3BlbnRlbGVtZXRyeS1qcy9ibG9iL21haW4vc2VtYW50aWMtY29udmVudGlvbnMvUkVBRE1FLm1kI3Vuc3RhYmxlLXNlbWNvbnZ9KS5cbiAqL1xudmFyIFNFTVJFU0FUVFJTX0s4U19QT0RfTkFNRSA9IFRNUF9LOFNfUE9EX05BTUU7XG4vKipcbiAqIFRoZSBuYW1lIG9mIHRoZSBDb250YWluZXIgaW4gYSBQb2QgdGVtcGxhdGUuXG4gKlxuICogQGRlcHJlY2F0ZWQgVXNlIEFUVFJfSzhTX0NPTlRBSU5FUl9OQU1FIGluIFtpbmN1YmF0aW5nIGVudHJ5LXBvaW50XSh7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL29wZW4tdGVsZW1ldHJ5L29wZW50ZWxlbWV0cnktanMvYmxvYi9tYWluL3NlbWFudGljLWNvbnZlbnRpb25zL1JFQURNRS5tZCN1bnN0YWJsZS1zZW1jb252fSkuXG4gKi9cbnZhciBTRU1SRVNBVFRSU19LOFNfQ09OVEFJTkVSX05BTUUgPSBUTVBfSzhTX0NPTlRBSU5FUl9OQU1FO1xuLyoqXG4gKiBUaGUgVUlEIG9mIHRoZSBSZXBsaWNhU2V0LlxuICpcbiAqIEBkZXByZWNhdGVkIFVzZSBBVFRSX0s4U19SRVBMSUNBU0VUX1VJRCBpbiBbaW5jdWJhdGluZyBlbnRyeS1wb2ludF0oe0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuLXRlbGVtZXRyeS9vcGVudGVsZW1ldHJ5LWpzL2Jsb2IvbWFpbi9zZW1hbnRpYy1jb252ZW50aW9ucy9SRUFETUUubWQjdW5zdGFibGUtc2VtY29udn0pLlxuICovXG52YXIgU0VNUkVTQVRUUlNfSzhTX1JFUExJQ0FTRVRfVUlEID0gVE1QX0s4U19SRVBMSUNBU0VUX1VJRDtcbi8qKlxuICogVGhlIG5hbWUgb2YgdGhlIFJlcGxpY2FTZXQuXG4gKlxuICogQGRlcHJlY2F0ZWQgVXNlIEFUVFJfSzhTX1JFUExJQ0FTRVRfTkFNRSBpbiBbaW5jdWJhdGluZyBlbnRyeS1wb2ludF0oe0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuLXRlbGVtZXRyeS9vcGVudGVsZW1ldHJ5LWpzL2Jsb2IvbWFpbi9zZW1hbnRpYy1jb252ZW50aW9ucy9SRUFETUUubWQjdW5zdGFibGUtc2VtY29udn0pLlxuICovXG52YXIgU0VNUkVTQVRUUlNfSzhTX1JFUExJQ0FTRVRfTkFNRSA9IFRNUF9LOFNfUkVQTElDQVNFVF9OQU1FO1xuLyoqXG4gKiBUaGUgVUlEIG9mIHRoZSBEZXBsb3ltZW50LlxuICpcbiAqIEBkZXByZWNhdGVkIFVzZSBBVFRSX0s4U19ERVBMT1lNRU5UX1VJRCBpbiBbaW5jdWJhdGluZyBlbnRyeS1wb2ludF0oe0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuLXRlbGVtZXRyeS9vcGVudGVsZW1ldHJ5LWpzL2Jsb2IvbWFpbi9zZW1hbnRpYy1jb252ZW50aW9ucy9SRUFETUUubWQjdW5zdGFibGUtc2VtY29udn0pLlxuICovXG52YXIgU0VNUkVTQVRUUlNfSzhTX0RFUExPWU1FTlRfVUlEID0gVE1QX0s4U19ERVBMT1lNRU5UX1VJRDtcbi8qKlxuICogVGhlIG5hbWUgb2YgdGhlIERlcGxveW1lbnQuXG4gKlxuICogQGRlcHJlY2F0ZWQgVXNlIEFUVFJfSzhTX0RFUExPWU1FTlRfTkFNRSBpbiBbaW5jdWJhdGluZyBlbnRyeS1wb2ludF0oe0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuLXRlbGVtZXRyeS9vcGVudGVsZW1ldHJ5LWpzL2Jsb2IvbWFpbi9zZW1hbnRpYy1jb252ZW50aW9ucy9SRUFETUUubWQjdW5zdGFibGUtc2VtY29udn0pLlxuICovXG52YXIgU0VNUkVTQVRUUlNfSzhTX0RFUExPWU1FTlRfTkFNRSA9IFRNUF9LOFNfREVQTE9ZTUVOVF9OQU1FO1xuLyoqXG4gKiBUaGUgVUlEIG9mIHRoZSBTdGF0ZWZ1bFNldC5cbiAqXG4gKiBAZGVwcmVjYXRlZCBVc2UgQVRUUl9LOFNfU1RBVEVGVUxTRVRfVUlEIGluIFtpbmN1YmF0aW5nIGVudHJ5LXBvaW50XSh7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL29wZW4tdGVsZW1ldHJ5L29wZW50ZWxlbWV0cnktanMvYmxvYi9tYWluL3NlbWFudGljLWNvbnZlbnRpb25zL1JFQURNRS5tZCN1bnN0YWJsZS1zZW1jb252fSkuXG4gKi9cbnZhciBTRU1SRVNBVFRSU19LOFNfU1RBVEVGVUxTRVRfVUlEID0gVE1QX0s4U19TVEFURUZVTFNFVF9VSUQ7XG4vKipcbiAqIFRoZSBuYW1lIG9mIHRoZSBTdGF0ZWZ1bFNldC5cbiAqXG4gKiBAZGVwcmVjYXRlZCBVc2UgQVRUUl9LOFNfU1RBVEVGVUxTRVRfTkFNRSBpbiBbaW5jdWJhdGluZyBlbnRyeS1wb2ludF0oe0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuLXRlbGVtZXRyeS9vcGVudGVsZW1ldHJ5LWpzL2Jsb2IvbWFpbi9zZW1hbnRpYy1jb252ZW50aW9ucy9SRUFETUUubWQjdW5zdGFibGUtc2VtY29udn0pLlxuICovXG52YXIgU0VNUkVTQVRUUlNfSzhTX1NUQVRFRlVMU0VUX05BTUUgPSBUTVBfSzhTX1NUQVRFRlVMU0VUX05BTUU7XG4vKipcbiAqIFRoZSBVSUQgb2YgdGhlIERhZW1vblNldC5cbiAqXG4gKiBAZGVwcmVjYXRlZCBVc2UgQVRUUl9LOFNfREFFTU9OU0VUX1VJRCBpbiBbaW5jdWJhdGluZyBlbnRyeS1wb2ludF0oe0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuLXRlbGVtZXRyeS9vcGVudGVsZW1ldHJ5LWpzL2Jsb2IvbWFpbi9zZW1hbnRpYy1jb252ZW50aW9ucy9SRUFETUUubWQjdW5zdGFibGUtc2VtY29udn0pLlxuICovXG52YXIgU0VNUkVTQVRUUlNfSzhTX0RBRU1PTlNFVF9VSUQgPSBUTVBfSzhTX0RBRU1PTlNFVF9VSUQ7XG4vKipcbiAqIFRoZSBuYW1lIG9mIHRoZSBEYWVtb25TZXQuXG4gKlxuICogQGRlcHJlY2F0ZWQgVXNlIEFUVFJfSzhTX0RBRU1PTlNFVF9OQU1FIGluIFtpbmN1YmF0aW5nIGVudHJ5LXBvaW50XSh7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL29wZW4tdGVsZW1ldHJ5L29wZW50ZWxlbWV0cnktanMvYmxvYi9tYWluL3NlbWFudGljLWNvbnZlbnRpb25zL1JFQURNRS5tZCN1bnN0YWJsZS1zZW1jb252fSkuXG4gKi9cbnZhciBTRU1SRVNBVFRSU19LOFNfREFFTU9OU0VUX05BTUUgPSBUTVBfSzhTX0RBRU1PTlNFVF9OQU1FO1xuLyoqXG4gKiBUaGUgVUlEIG9mIHRoZSBKb2IuXG4gKlxuICogQGRlcHJlY2F0ZWQgVXNlIEFUVFJfSzhTX0pPQl9VSUQgaW4gW2luY3ViYXRpbmcgZW50cnktcG9pbnRdKHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vb3Blbi10ZWxlbWV0cnkvb3BlbnRlbGVtZXRyeS1qcy9ibG9iL21haW4vc2VtYW50aWMtY29udmVudGlvbnMvUkVBRE1FLm1kI3Vuc3RhYmxlLXNlbWNvbnZ9KS5cbiAqL1xudmFyIFNFTVJFU0FUVFJTX0s4U19KT0JfVUlEID0gVE1QX0s4U19KT0JfVUlEO1xuLyoqXG4gKiBUaGUgbmFtZSBvZiB0aGUgSm9iLlxuICpcbiAqIEBkZXByZWNhdGVkIFVzZSBBVFRSX0s4U19KT0JfTkFNRSBpbiBbaW5jdWJhdGluZyBlbnRyeS1wb2ludF0oe0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuLXRlbGVtZXRyeS9vcGVudGVsZW1ldHJ5LWpzL2Jsb2IvbWFpbi9zZW1hbnRpYy1jb252ZW50aW9ucy9SRUFETUUubWQjdW5zdGFibGUtc2VtY29udn0pLlxuICovXG52YXIgU0VNUkVTQVRUUlNfSzhTX0pPQl9OQU1FID0gVE1QX0s4U19KT0JfTkFNRTtcbi8qKlxuICogVGhlIFVJRCBvZiB0aGUgQ3JvbkpvYi5cbiAqXG4gKiBAZGVwcmVjYXRlZCBVc2UgQVRUUl9LOFNfQ1JPTkpPQl9VSUQgaW4gW2luY3ViYXRpbmcgZW50cnktcG9pbnRdKHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vb3Blbi10ZWxlbWV0cnkvb3BlbnRlbGVtZXRyeS1qcy9ibG9iL21haW4vc2VtYW50aWMtY29udmVudGlvbnMvUkVBRE1FLm1kI3Vuc3RhYmxlLXNlbWNvbnZ9KS5cbiAqL1xudmFyIFNFTVJFU0FUVFJTX0s4U19DUk9OSk9CX1VJRCA9IFRNUF9LOFNfQ1JPTkpPQl9VSUQ7XG4vKipcbiAqIFRoZSBuYW1lIG9mIHRoZSBDcm9uSm9iLlxuICpcbiAqIEBkZXByZWNhdGVkIFVzZSBBVFRSX0s4U19DUk9OSk9CX05BTUUgaW4gW2luY3ViYXRpbmcgZW50cnktcG9pbnRdKHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vb3Blbi10ZWxlbWV0cnkvb3BlbnRlbGVtZXRyeS1qcy9ibG9iL21haW4vc2VtYW50aWMtY29udmVudGlvbnMvUkVBRE1FLm1kI3Vuc3RhYmxlLXNlbWNvbnZ9KS5cbiAqL1xudmFyIFNFTVJFU0FUVFJTX0s4U19DUk9OSk9CX05BTUUgPSBUTVBfSzhTX0NST05KT0JfTkFNRTtcbi8qKlxuICogVGhlIG9wZXJhdGluZyBzeXN0ZW0gdHlwZS5cbiAqXG4gKiBAZGVwcmVjYXRlZCBVc2UgQVRUUl9PU19UWVBFIGluIFtpbmN1YmF0aW5nIGVudHJ5LXBvaW50XSh7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL29wZW4tdGVsZW1ldHJ5L29wZW50ZWxlbWV0cnktanMvYmxvYi9tYWluL3NlbWFudGljLWNvbnZlbnRpb25zL1JFQURNRS5tZCN1bnN0YWJsZS1zZW1jb252fSkuXG4gKi9cbnZhciBTRU1SRVNBVFRSU19PU19UWVBFID0gVE1QX09TX1RZUEU7XG4vKipcbiAqIEh1bWFuIHJlYWRhYmxlIChub3QgaW50ZW5kZWQgdG8gYmUgcGFyc2VkKSBPUyB2ZXJzaW9uIGluZm9ybWF0aW9uLCBsaWtlIGUuZy4gcmVwb3J0ZWQgYnkgYHZlcmAgb3IgYGxzYl9yZWxlYXNlIC1hYCBjb21tYW5kcy5cbiAqXG4gKiBAZGVwcmVjYXRlZCBVc2UgQVRUUl9PU19ERVNDUklQVElPTiBpbiBbaW5jdWJhdGluZyBlbnRyeS1wb2ludF0oe0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuLXRlbGVtZXRyeS9vcGVudGVsZW1ldHJ5LWpzL2Jsb2IvbWFpbi9zZW1hbnRpYy1jb252ZW50aW9ucy9SRUFETUUubWQjdW5zdGFibGUtc2VtY29udn0pLlxuICovXG52YXIgU0VNUkVTQVRUUlNfT1NfREVTQ1JJUFRJT04gPSBUTVBfT1NfREVTQ1JJUFRJT047XG4vKipcbiAqIEh1bWFuIHJlYWRhYmxlIG9wZXJhdGluZyBzeXN0ZW0gbmFtZS5cbiAqXG4gKiBAZGVwcmVjYXRlZCBVc2UgQVRUUl9PU19OQU1FIGluIFtpbmN1YmF0aW5nIGVudHJ5LXBvaW50XSh7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL29wZW4tdGVsZW1ldHJ5L29wZW50ZWxlbWV0cnktanMvYmxvYi9tYWluL3NlbWFudGljLWNvbnZlbnRpb25zL1JFQURNRS5tZCN1bnN0YWJsZS1zZW1jb252fSkuXG4gKi9cbnZhciBTRU1SRVNBVFRSU19PU19OQU1FID0gVE1QX09TX05BTUU7XG4vKipcbiAqIFRoZSB2ZXJzaW9uIHN0cmluZyBvZiB0aGUgb3BlcmF0aW5nIHN5c3RlbSBhcyBkZWZpbmVkIGluIFtWZXJzaW9uIEF0dHJpYnV0ZXNdKC4uLy4uL3Jlc291cmNlL3NlbWFudGljX2NvbnZlbnRpb25zL1JFQURNRS5tZCN2ZXJzaW9uLWF0dHJpYnV0ZXMpLlxuICpcbiAqIEBkZXByZWNhdGVkIFVzZSBBVFRSX09TX1ZFUlNJT04gaW4gW2luY3ViYXRpbmcgZW50cnktcG9pbnRdKHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vb3Blbi10ZWxlbWV0cnkvb3BlbnRlbGVtZXRyeS1qcy9ibG9iL21haW4vc2VtYW50aWMtY29udmVudGlvbnMvUkVBRE1FLm1kI3Vuc3RhYmxlLXNlbWNvbnZ9KS5cbiAqL1xudmFyIFNFTVJFU0FUVFJTX09TX1ZFUlNJT04gPSBUTVBfT1NfVkVSU0lPTjtcbi8qKlxuICogUHJvY2VzcyBpZGVudGlmaWVyIChQSUQpLlxuICpcbiAqIEBkZXByZWNhdGVkIFVzZSBBVFRSX1BST0NFU1NfUElEIGluIFtpbmN1YmF0aW5nIGVudHJ5LXBvaW50XSh7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL29wZW4tdGVsZW1ldHJ5L29wZW50ZWxlbWV0cnktanMvYmxvYi9tYWluL3NlbWFudGljLWNvbnZlbnRpb25zL1JFQURNRS5tZCN1bnN0YWJsZS1zZW1jb252fSkuXG4gKi9cbnZhciBTRU1SRVNBVFRSU19QUk9DRVNTX1BJRCA9IFRNUF9QUk9DRVNTX1BJRDtcbi8qKlxuICogVGhlIG5hbWUgb2YgdGhlIHByb2Nlc3MgZXhlY3V0YWJsZS4gT24gTGludXggYmFzZWQgc3lzdGVtcywgY2FuIGJlIHNldCB0byB0aGUgYE5hbWVgIGluIGBwcm9jL1twaWRdL3N0YXR1c2AuIE9uIFdpbmRvd3MsIGNhbiBiZSBzZXQgdG8gdGhlIGJhc2UgbmFtZSBvZiBgR2V0UHJvY2Vzc0ltYWdlRmlsZU5hbWVXYC5cbiAqXG4gKiBAZGVwcmVjYXRlZCBVc2UgQVRUUl9QUk9DRVNTX0VYRUNVVEFCTEVfTkFNRSBpbiBbaW5jdWJhdGluZyBlbnRyeS1wb2ludF0oe0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuLXRlbGVtZXRyeS9vcGVudGVsZW1ldHJ5LWpzL2Jsb2IvbWFpbi9zZW1hbnRpYy1jb252ZW50aW9ucy9SRUFETUUubWQjdW5zdGFibGUtc2VtY29udn0pLlxuICovXG52YXIgU0VNUkVTQVRUUlNfUFJPQ0VTU19FWEVDVVRBQkxFX05BTUUgPSBUTVBfUFJPQ0VTU19FWEVDVVRBQkxFX05BTUU7XG4vKipcbiAqIFRoZSBmdWxsIHBhdGggdG8gdGhlIHByb2Nlc3MgZXhlY3V0YWJsZS4gT24gTGludXggYmFzZWQgc3lzdGVtcywgY2FuIGJlIHNldCB0byB0aGUgdGFyZ2V0IG9mIGBwcm9jL1twaWRdL2V4ZWAuIE9uIFdpbmRvd3MsIGNhbiBiZSBzZXQgdG8gdGhlIHJlc3VsdCBvZiBgR2V0UHJvY2Vzc0ltYWdlRmlsZU5hbWVXYC5cbiAqXG4gKiBAZGVwcmVjYXRlZCBVc2UgQVRUUl9QUk9DRVNTX0VYRUNVVEFCTEVfUEFUSCBpbiBbaW5jdWJhdGluZyBlbnRyeS1wb2ludF0oe0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuLXRlbGVtZXRyeS9vcGVudGVsZW1ldHJ5LWpzL2Jsb2IvbWFpbi9zZW1hbnRpYy1jb252ZW50aW9ucy9SRUFETUUubWQjdW5zdGFibGUtc2VtY29udn0pLlxuICovXG52YXIgU0VNUkVTQVRUUlNfUFJPQ0VTU19FWEVDVVRBQkxFX1BBVEggPSBUTVBfUFJPQ0VTU19FWEVDVVRBQkxFX1BBVEg7XG4vKipcbiAqIFRoZSBjb21tYW5kIHVzZWQgdG8gbGF1bmNoIHRoZSBwcm9jZXNzIChpLmUuIHRoZSBjb21tYW5kIG5hbWUpLiBPbiBMaW51eCBiYXNlZCBzeXN0ZW1zLCBjYW4gYmUgc2V0IHRvIHRoZSB6ZXJvdGggc3RyaW5nIGluIGBwcm9jL1twaWRdL2NtZGxpbmVgLiBPbiBXaW5kb3dzLCBjYW4gYmUgc2V0IHRvIHRoZSBmaXJzdCBwYXJhbWV0ZXIgZXh0cmFjdGVkIGZyb20gYEdldENvbW1hbmRMaW5lV2AuXG4gKlxuICogQGRlcHJlY2F0ZWQgVXNlIEFUVFJfUFJPQ0VTU19DT01NQU5EIGluIFtpbmN1YmF0aW5nIGVudHJ5LXBvaW50XSh7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL29wZW4tdGVsZW1ldHJ5L29wZW50ZWxlbWV0cnktanMvYmxvYi9tYWluL3NlbWFudGljLWNvbnZlbnRpb25zL1JFQURNRS5tZCN1bnN0YWJsZS1zZW1jb252fSkuXG4gKi9cbnZhciBTRU1SRVNBVFRSU19QUk9DRVNTX0NPTU1BTkQgPSBUTVBfUFJPQ0VTU19DT01NQU5EO1xuLyoqXG4gKiBUaGUgZnVsbCBjb21tYW5kIHVzZWQgdG8gbGF1bmNoIHRoZSBwcm9jZXNzIGFzIGEgc2luZ2xlIHN0cmluZyByZXByZXNlbnRpbmcgdGhlIGZ1bGwgY29tbWFuZC4gT24gV2luZG93cywgY2FuIGJlIHNldCB0byB0aGUgcmVzdWx0IG9mIGBHZXRDb21tYW5kTGluZVdgLiBEbyBub3Qgc2V0IHRoaXMgaWYgeW91IGhhdmUgdG8gYXNzZW1ibGUgaXQganVzdCBmb3IgbW9uaXRvcmluZzsgdXNlIGBwcm9jZXNzLmNvbW1hbmRfYXJnc2AgaW5zdGVhZC5cbiAqXG4gKiBAZGVwcmVjYXRlZCBVc2UgQVRUUl9QUk9DRVNTX0NPTU1BTkRfTElORSBpbiBbaW5jdWJhdGluZyBlbnRyeS1wb2ludF0oe0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuLXRlbGVtZXRyeS9vcGVudGVsZW1ldHJ5LWpzL2Jsb2IvbWFpbi9zZW1hbnRpYy1jb252ZW50aW9ucy9SRUFETUUubWQjdW5zdGFibGUtc2VtY29udn0pLlxuICovXG52YXIgU0VNUkVTQVRUUlNfUFJPQ0VTU19DT01NQU5EX0xJTkUgPSBUTVBfUFJPQ0VTU19DT01NQU5EX0xJTkU7XG4vKipcbi