@getopenpay/openpay-js-react
Version:
Accept payments through OpenPay, right on your site
271 lines (270 loc) • 30.6 kB
JavaScript
import { r as P } from "./diag-api-DC4dxlqZ-DOFCnxry.js";
import { k as j } from "./metrics-api-B-98-wmH-CgGZj7qs.js";
import { M as A } from "./index-BRlq-xUA.js";
var w = (
/** @class */
(function() {
function e() {
}
return e.prototype.emit = function(t) {
}, e;
})()
), E = new w(), O = (
/** @class */
(function() {
function e() {
}
return e.prototype.getLogger = function(t, r, n) {
return new w();
}, e;
})()
), b = new O(), M = (
/** @class */
(function() {
function e(t, r, n, i) {
this._provider = t, this.name = r, this.version = n, this.options = i;
}
return e.prototype.emit = function(t) {
this._getLogger().emit(t);
}, e.prototype._getLogger = function() {
if (this._delegate)
return this._delegate;
var t = this._provider.getDelegateLogger(this.name, this.version, this.options);
return t ? (this._delegate = t, this._delegate) : E;
}, e;
})()
), m = (
/** @class */
(function() {
function e() {
}
return e.prototype.getLogger = function(t, r, n) {
var i;
return (i = this.getDelegateLogger(t, r, n)) !== null && i !== void 0 ? i : new M(this, t, r, n);
}, e.prototype.getDelegate = function() {
var t;
return (t = this._delegate) !== null && t !== void 0 ? t : b;
}, e.prototype.setDelegate = function(t) {
this._delegate = t;
}, e.prototype.getDelegateLogger = function(t, r, n) {
var i;
return (i = this._delegate) === null || i === void 0 ? void 0 : i.getLogger(t, r, n);
}, e;
})()
), k = typeof globalThis == "object" ? globalThis : typeof self == "object" ? self : typeof window == "object" ? window : typeof global == "object" ? global : {}, f = Symbol.for("io.opentelemetry.js.api.logs"), g = k;
function D(e, t, r) {
return function(n) {
return n === e ? t : r;
};
}
var d = 1, x = (
/** @class */
(function() {
function e() {
this._proxyLoggerProvider = new m();
}
return e.getInstance = function() {
return this._instance || (this._instance = new e()), this._instance;
}, e.prototype.setGlobalLoggerProvider = function(t) {
return g[f] ? this.getLoggerProvider() : (g[f] = D(d, t, b), this._proxyLoggerProvider.setDelegate(t), t);
}, e.prototype.getLoggerProvider = function() {
var t, r;
return (r = (t = g[f]) === null || t === void 0 ? void 0 : t.call(g, d)) !== null && r !== void 0 ? r : this._proxyLoggerProvider;
}, e.prototype.getLogger = function(t, r, n) {
return this.getLoggerProvider().getLogger(t, r, n);
}, e.prototype.disable = function() {
delete g[f], this._proxyLoggerProvider = new m();
}, e;
})()
), I = x.getInstance(), h, v;
function T() {
if (v) return h;
v = 1;
function e(o) {
return typeof o == "function";
}
var t = console.error.bind(console);
function r(o, u, a) {
var c = !!o[u] && o.propertyIsEnumerable(u);
Object.defineProperty(o, u, {
configurable: !0,
enumerable: c,
writable: !0,
value: a
});
}
function n(o) {
o && o.logger && (e(o.logger) ? t = o.logger : t("new logger isn't a function, not replacing"));
}
function i(o, u, a) {
if (!o || !o[u]) {
t("no original function " + u + " to wrap");
return;
}
if (!a) {
t("no wrapper function"), t(new Error().stack);
return;
}
if (!e(o[u]) || !e(a)) {
t("original object and wrapper must be functions");
return;
}
var c = o[u], p = a(c, u);
return r(p, "__original", c), r(p, "__unwrap", function() {
o[u] === p && r(o, u, c);
}), r(p, "__wrapped", !0), r(o, u, p), p;
}
function s(o, u, a) {
if (o)
Array.isArray(o) || (o = [o]);
else {
t("must provide one or more modules to patch"), t(new Error().stack);
return;
}
if (!(u && Array.isArray(u))) {
t("must provide one or more functions to wrap on modules");
return;
}
o.forEach(function(c) {
u.forEach(function(p) {
i(c, p, a);
});
});
}
function _(o, u) {
if (!o || !o[u]) {
t("no function to unwrap."), t(new Error().stack);
return;
}
if (!o[u].__unwrap)
t("no original to unwrap to -- has " + u + " already been unwrapped?");
else
return o[u].__unwrap();
}
function L(o, u) {
if (o)
Array.isArray(o) || (o = [o]);
else {
t("must provide one or more modules to patch"), t(new Error().stack);
return;
}
if (!(u && Array.isArray(u))) {
t("must provide one or more functions to unwrap on modules");
return;
}
o.forEach(function(a) {
u.forEach(function(c) {
_(a, c);
});
});
}
return n.wrap = i, n.massWrap = s, n.unwrap = _, n.massUnwrap = L, h = n, h;
}
var l = T(), y = function() {
return y = Object.assign || function(e) {
for (var t, r = 1, n = arguments.length; r < n; r++) {
t = arguments[r];
for (var i in t) Object.prototype.hasOwnProperty.call(t, i) && (e[i] = t[i]);
}
return e;
}, y.apply(this, arguments);
}, C = (
/** @class */
(function() {
function e(t, r, n) {
this.instrumentationName = t, this.instrumentationVersion = r, this._config = {}, this._wrap = l.wrap, this._unwrap = l.unwrap, this._massWrap = l.massWrap, this._massUnwrap = l.massUnwrap, this.setConfig(n), this._diag = P.createComponentLogger({
namespace: t
}), this._tracer = A.getTracer(t, r), this._meter = j.getMeter(t, r), this._logger = I.getLogger(t, r), this._updateMetricInstruments();
}
return Object.defineProperty(e.prototype, "meter", {
/* Returns meter */
get: function() {
return this._meter;
},
enumerable: !1,
configurable: !0
}), e.prototype.setMeterProvider = function(t) {
this._meter = t.getMeter(this.instrumentationName, this.instrumentationVersion), this._updateMetricInstruments();
}, Object.defineProperty(e.prototype, "logger", {
/* Returns logger */
get: function() {
return this._logger;
},
enumerable: !1,
configurable: !0
}), e.prototype.setLoggerProvider = function(t) {
this._logger = t.getLogger(this.instrumentationName, this.instrumentationVersion);
}, e.prototype.getModuleDefinitions = function() {
var t, r = (t = this.init()) !== null && t !== void 0 ? t : [];
return Array.isArray(r) ? r : [r];
}, e.prototype._updateMetricInstruments = function() {
}, e.prototype.getConfig = function() {
return this._config;
}, e.prototype.setConfig = function(t) {
this._config = y({ enabled: !0 }, t);
}, e.prototype.setTracerProvider = function(t) {
this._tracer = t.getTracer(this.instrumentationName, this.instrumentationVersion);
}, Object.defineProperty(e.prototype, "tracer", {
/* Returns tracer */
get: function() {
return this._tracer;
},
enumerable: !1,
configurable: !0
}), e.prototype._runSpanCustomizationHook = function(t, r, n, i) {
if (t)
try {
t(n, i);
} catch (s) {
this._diag.error("Error running span customization hook due to exception in handler", { triggerName: r }, s);
}
}, e;
})()
), N = /* @__PURE__ */ (function() {
var e = function(t, r) {
return e = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(n, i) {
n.__proto__ = i;
} || function(n, i) {
for (var s in i) Object.prototype.hasOwnProperty.call(i, s) && (n[s] = i[s]);
}, e(t, r);
};
return function(t, r) {
if (typeof r != "function" && r !== null)
throw new TypeError("Class extends value " + String(r) + " is not a constructor or null");
e(t, r);
function n() {
this.constructor = t;
}
t.prototype = r === null ? Object.create(r) : (n.prototype = r.prototype, new n());
};
})(), W = (
/** @class */
(function(e) {
N(t, e);
function t(r, n, i) {
var s = e.call(this, r, n, i) || this;
return s._config.enabled && s.enable(), s;
}
return t;
})(C)
);
function z(e, t, r) {
var n, i;
try {
i = e();
} catch (s) {
n = s;
} finally {
return t(n, i), i;
}
}
function G(e) {
return typeof e == "function" && typeof e.__original == "function" && typeof e.__unwrap == "function" && e.__wrapped === !0;
}
export {
z as B,
G as U,
W,
I as k
};
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsidXRpbHMtRENWR3JnTHItIX57MDBjfX4uanMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImltcG9ydCB7IHIgfSBmcm9tICcuL2RpYWctYXBpLURDNGR4bHFaLSF+ezAwYX1+LmpzJztcbmltcG9ydCB7IGsgYXMgayQxIH0gZnJvbSAnLi9tZXRyaWNzLWFwaS1CLTk4LXdtSC0hfnswMGZ9fi5qcyc7XG5pbXBvcnQgeyBNIGFzIE1lIH0gZnJvbSAnLi9pbmRleC0hfnswMDd9fi5qcyc7XG5cbnZhciB3ID0gKFxuICAvKiogQGNsYXNzICovXG4gIChmdW5jdGlvbigpIHtcbiAgICBmdW5jdGlvbiByKCkge1xuICAgIH1cbiAgICByZXR1cm4gci5wcm90b3R5cGUuZW1pdCA9IGZ1bmN0aW9uKHQpIHtcbiAgICB9LCByO1xuICB9KSgpXG4pLCBBID0gbmV3IHcoKSwgSSA9IChcbiAgLyoqIEBjbGFzcyAqL1xuICAoZnVuY3Rpb24oKSB7XG4gICAgZnVuY3Rpb24gcigpIHtcbiAgICB9XG4gICAgcmV0dXJuIHIucHJvdG90eXBlLmdldExvZ2dlciA9IGZ1bmN0aW9uKHQsIGUsIG4pIHtcbiAgICAgIHJldHVybiBuZXcgdygpO1xuICAgIH0sIHI7XG4gIH0pKClcbiksIGIgPSBuZXcgSSgpLCBFID0gKFxuICAvKiogQGNsYXNzICovXG4gIChmdW5jdGlvbigpIHtcbiAgICBmdW5jdGlvbiByKHQsIGUsIG4sIGkpIHtcbiAgICAgIHRoaXMuX3Byb3ZpZGVyID0gdCwgdGhpcy5uYW1lID0gZSwgdGhpcy52ZXJzaW9uID0gbiwgdGhpcy5vcHRpb25zID0gaTtcbiAgICB9XG4gICAgcmV0dXJuIHIucHJvdG90eXBlLmVtaXQgPSBmdW5jdGlvbih0KSB7XG4gICAgICB0aGlzLl9nZXRMb2dnZXIoKS5lbWl0KHQpO1xuICAgIH0sIHIucHJvdG90eXBlLl9nZXRMb2dnZXIgPSBmdW5jdGlvbigpIHtcbiAgICAgIGlmICh0aGlzLl9kZWxlZ2F0ZSlcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RlbGVnYXRlO1xuICAgICAgdmFyIHQgPSB0aGlzLl9wcm92aWRlci5nZXREZWxlZ2F0ZUxvZ2dlcih0aGlzLm5hbWUsIHRoaXMudmVyc2lvbiwgdGhpcy5vcHRpb25zKTtcbiAgICAgIHJldHVybiB0ID8gKHRoaXMuX2RlbGVnYXRlID0gdCwgdGhpcy5fZGVsZWdhdGUpIDogQTtcbiAgICB9LCByO1xuICB9KSgpXG4pLCBkID0gKFxuICAvKiogQGNsYXNzICovXG4gIChmdW5jdGlvbigpIHtcbiAgICBmdW5jdGlvbiByKCkge1xuICAgIH1cbiAgICByZXR1cm4gci5wcm90b3R5cGUuZ2V0TG9nZ2VyID0gZnVuY3Rpb24odCwgZSwgbikge1xuICAgICAgdmFyIGk7XG4gICAgICByZXR1cm4gKGkgPSB0aGlzLmdldERlbGVnYXRlTG9nZ2VyKHQsIGUsIG4pKSAhPT0gbnVsbCAmJiBpICE9PSB2b2lkIDAgPyBpIDogbmV3IEUodGhpcywgdCwgZSwgbik7XG4gICAgfSwgci5wcm90b3R5cGUuZ2V0RGVsZWdhdGUgPSBmdW5jdGlvbigpIHtcbiAgICAgIHZhciB0O1xuICAgICAgcmV0dXJuICh0ID0gdGhpcy5fZGVsZWdhdGUpICE9PSBudWxsICYmIHQgIT09IHZvaWQgMCA/IHQgOiBiO1xuICAgIH0sIHIucHJvdG90eXBlLnNldERlbGVnYXRlID0gZnVuY3Rpb24odCkge1xuICAgICAgdGhpcy5fZGVsZWdhdGUgPSB0O1xuICAgIH0sIHIucHJvdG90eXBlLmdldERlbGVnYXRlTG9nZ2VyID0gZnVuY3Rpb24odCwgZSwgbikge1xuICAgICAgdmFyIGk7XG4gICAgICByZXR1cm4gKGkgPSB0aGlzLl9kZWxlZ2F0ZSkgPT09IG51bGwgfHwgaSA9PT0gdm9pZCAwID8gdm9pZCAwIDogaS5nZXRMb2dnZXIodCwgZSwgbik7XG4gICAgfSwgcjtcbiAgfSkoKVxuKSwgaiA9IHR5cGVvZiBnbG9iYWxUaGlzID09IFwib2JqZWN0XCIgPyBnbG9iYWxUaGlzIDogdHlwZW9mIHNlbGYgPT0gXCJvYmplY3RcIiA/IHNlbGYgOiB0eXBlb2Ygd2luZG93ID09IFwib2JqZWN0XCIgPyB3aW5kb3cgOiB0eXBlb2YgZ2xvYmFsID09IFwib2JqZWN0XCIgPyBnbG9iYWwgOiB7fSwgbCA9IFN5bWJvbC5mb3IoXCJpby5vcGVudGVsZW1ldHJ5LmpzLmFwaS5sb2dzXCIpLCBnID0gajtcbmZ1bmN0aW9uIFQociwgdCwgZSkge1xuICByZXR1cm4gZnVuY3Rpb24obikge1xuICAgIHJldHVybiBuID09PSByID8gdCA6IGU7XG4gIH07XG59XG52YXIgdiA9IDEsIFMgPSAoXG4gIC8qKiBAY2xhc3MgKi9cbiAgKGZ1bmN0aW9uKCkge1xuICAgIGZ1bmN0aW9uIHIoKSB7XG4gICAgICB0aGlzLl9wcm94eUxvZ2dlclByb3ZpZGVyID0gbmV3IGQoKTtcbiAgICB9XG4gICAgcmV0dXJuIHIuZ2V0SW5zdGFuY2UgPSBmdW5jdGlvbigpIHtcbiAgICAgIHJldHVybiB0aGlzLl9pbnN0YW5jZSB8fCAodGhpcy5faW5zdGFuY2UgPSBuZXcgcigpKSwgdGhpcy5faW5zdGFuY2U7XG4gICAgfSwgci5wcm90b3R5cGUuc2V0R2xvYmFsTG9nZ2VyUHJvdmlkZXIgPSBmdW5jdGlvbih0KSB7XG4gICAgICByZXR1cm4gZ1tsXSA/IHRoaXMuZ2V0TG9nZ2VyUHJvdmlkZXIoKSA6IChnW2xdID0gVCh2LCB0LCBiKSwgdGhpcy5fcHJveHlMb2dnZXJQcm92aWRlci5zZXREZWxlZ2F0ZSh0KSwgdCk7XG4gICAgfSwgci5wcm90b3R5cGUuZ2V0TG9nZ2VyUHJvdmlkZXIgPSBmdW5jdGlvbigpIHtcbiAgICAgIHZhciB0LCBlO1xuICAgICAgcmV0dXJuIChlID0gKHQgPSBnW2xdKSA9PT0gbnVsbCB8fCB0ID09PSB2b2lkIDAgPyB2b2lkIDAgOiB0LmNhbGwoZywgdikpICE9PSBudWxsICYmIGUgIT09IHZvaWQgMCA/IGUgOiB0aGlzLl9wcm94eUxvZ2dlclByb3ZpZGVyO1xuICAgIH0sIHIucHJvdG90eXBlLmdldExvZ2dlciA9IGZ1bmN0aW9uKHQsIGUsIG4pIHtcbiAgICAgIHJldHVybiB0aGlzLmdldExvZ2dlclByb3ZpZGVyKCkuZ2V0TG9nZ2VyKHQsIGUsIG4pO1xuICAgIH0sIHIucHJvdG90eXBlLmRpc2FibGUgPSBmdW5jdGlvbigpIHtcbiAgICAgIGRlbGV0ZSBnW2xdLCB0aGlzLl9wcm94eUxvZ2dlclByb3ZpZGVyID0gbmV3IGQoKTtcbiAgICB9LCByO1xuICB9KSgpXG4pLCBrID0gUy5nZXRJbnN0YW5jZSgpLCBoLCBtO1xuZnVuY3Rpb24gRCgpIHtcbiAgaWYgKG0pIHJldHVybiBoO1xuICBtID0gMTtcbiAgZnVuY3Rpb24gcihvKSB7XG4gICAgcmV0dXJuIHR5cGVvZiBvID09IFwiZnVuY3Rpb25cIjtcbiAgfVxuICB2YXIgdCA9IGNvbnNvbGUuZXJyb3IuYmluZChjb25zb2xlKTtcbiAgZnVuY3Rpb24gZShvLCBhLCBzKSB7XG4gICAgdmFyIGMgPSAhIW9bYV0gJiYgby5wcm9wZXJ0eUlzRW51bWVyYWJsZShhKTtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobywgYSwge1xuICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgZW51bWVyYWJsZTogYyxcbiAgICAgIHdyaXRhYmxlOiB0cnVlLFxuICAgICAgdmFsdWU6IHNcbiAgICB9KTtcbiAgfVxuICBmdW5jdGlvbiBuKG8pIHtcbiAgICBvICYmIG8ubG9nZ2VyICYmIChyKG8ubG9nZ2VyKSA/IHQgPSBvLmxvZ2dlciA6IHQoXCJuZXcgbG9nZ2VyIGlzbid0IGEgZnVuY3Rpb24sIG5vdCByZXBsYWNpbmdcIikpO1xuICB9XG4gIGZ1bmN0aW9uIGkobywgYSwgcykge1xuICAgIGlmICghbyB8fCAhb1thXSkge1xuICAgICAgdChcIm5vIG9yaWdpbmFsIGZ1bmN0aW9uIFwiICsgYSArIFwiIHRvIHdyYXBcIik7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICghcykge1xuICAgICAgdChcIm5vIHdyYXBwZXIgZnVuY3Rpb25cIiksIHQobmV3IEVycm9yKCkuc3RhY2spO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoIXIob1thXSkgfHwgIXIocykpIHtcbiAgICAgIHQoXCJvcmlnaW5hbCBvYmplY3QgYW5kIHdyYXBwZXIgbXVzdCBiZSBmdW5jdGlvbnNcIik7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHZhciBjID0gb1thXSwgZiA9IHMoYywgYSk7XG4gICAgcmV0dXJuIGUoZiwgXCJfX29yaWdpbmFsXCIsIGMpLCBlKGYsIFwiX191bndyYXBcIiwgZnVuY3Rpb24oKSB7XG4gICAgICBvW2FdID09PSBmICYmIGUobywgYSwgYyk7XG4gICAgfSksIGUoZiwgXCJfX3dyYXBwZWRcIiwgdHJ1ZSksIGUobywgYSwgZiksIGY7XG4gIH1cbiAgZnVuY3Rpb24gdShvLCBhLCBzKSB7XG4gICAgaWYgKG8pXG4gICAgICBBcnJheS5pc0FycmF5KG8pIHx8IChvID0gW29dKTtcbiAgICBlbHNlIHtcbiAgICAgIHQoXCJtdXN0IHByb3ZpZGUgb25lIG9yIG1vcmUgbW9kdWxlcyB0byBwYXRjaFwiKSwgdChuZXcgRXJyb3IoKS5zdGFjayk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICghKGEgJiYgQXJyYXkuaXNBcnJheShhKSkpIHtcbiAgICAgIHQoXCJtdXN0IHByb3ZpZGUgb25lIG9yIG1vcmUgZnVuY3Rpb25zIHRvIHdyYXAgb24gbW9kdWxlc1wiKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgby5mb3JFYWNoKGZ1bmN0aW9uKGMpIHtcbiAgICAgIGEuZm9yRWFjaChmdW5jdGlvbihmKSB7XG4gICAgICAgIGkoYywgZiwgcyk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuICBmdW5jdGlvbiB5KG8sIGEpIHtcbiAgICBpZiAoIW8gfHwgIW9bYV0pIHtcbiAgICAgIHQoXCJubyBmdW5jdGlvbiB0byB1bndyYXAuXCIpLCB0KG5ldyBFcnJvcigpLnN0YWNrKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKCFvW2FdLl9fdW53cmFwKVxuICAgICAgdChcIm5vIG9yaWdpbmFsIHRvIHVud3JhcCB0byAtLSBoYXMgXCIgKyBhICsgXCIgYWxyZWFkeSBiZWVuIHVud3JhcHBlZD9cIik7XG4gICAgZWxzZVxuICAgICAgcmV0dXJuIG9bYV0uX191bndyYXAoKTtcbiAgfVxuICBmdW5jdGlvbiBMKG8sIGEpIHtcbiAgICBpZiAobylcbiAgICAgIEFycmF5LmlzQXJyYXkobykgfHwgKG8gPSBbb10pO1xuICAgIGVsc2Uge1xuICAgICAgdChcIm11c3QgcHJvdmlkZSBvbmUgb3IgbW9yZSBtb2R1bGVzIHRvIHBhdGNoXCIpLCB0KG5ldyBFcnJvcigpLnN0YWNrKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKCEoYSAmJiBBcnJheS5pc0FycmF5KGEpKSkge1xuICAgICAgdChcIm11c3QgcHJvdmlkZSBvbmUgb3IgbW9yZSBmdW5jdGlvbnMgdG8gdW53cmFwIG9uIG1vZHVsZXNcIik7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIG8uZm9yRWFjaChmdW5jdGlvbihzKSB7XG4gICAgICBhLmZvckVhY2goZnVuY3Rpb24oYykge1xuICAgICAgICB5KHMsIGMpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cbiAgcmV0dXJuIG4ud3JhcCA9IGksIG4ubWFzc1dyYXAgPSB1LCBuLnVud3JhcCA9IHksIG4ubWFzc1Vud3JhcCA9IEwsIGggPSBuLCBoO1xufVxudmFyIHAgPSBEKCksIF8gPSBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIF8gPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uKHIpIHtcbiAgICBmb3IgKHZhciB0LCBlID0gMSwgbiA9IGFyZ3VtZW50cy5sZW5ndGg7IGUgPCBuOyBlKyspIHtcbiAgICAgIHQgPSBhcmd1bWVudHNbZV07XG4gICAgICBmb3IgKHZhciBpIGluIHQpIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LCBpKSAmJiAocltpXSA9IHRbaV0pO1xuICAgIH1cbiAgICByZXR1cm4gcjtcbiAgfSwgXy5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xufSwgRyA9IChcbiAgLyoqIEBjbGFzcyAqL1xuICAoZnVuY3Rpb24oKSB7XG4gICAgZnVuY3Rpb24gciQxKHQsIGUsIG4pIHtcbiAgICAgIHRoaXMuaW5zdHJ1bWVudGF0aW9uTmFtZSA9IHQsIHRoaXMuaW5zdHJ1bWVudGF0aW9uVmVyc2lvbiA9IGUsIHRoaXMuX2NvbmZpZyA9IHt9LCB0aGlzLl93cmFwID0gcC53cmFwLCB0aGlzLl91bndyYXAgPSBwLnVud3JhcCwgdGhpcy5fbWFzc1dyYXAgPSBwLm1hc3NXcmFwLCB0aGlzLl9tYXNzVW53cmFwID0gcC5tYXNzVW53cmFwLCB0aGlzLnNldENvbmZpZyhuKSwgdGhpcy5fZGlhZyA9IHIuY3JlYXRlQ29tcG9uZW50TG9nZ2VyKHtcbiAgICAgICAgbmFtZXNwYWNlOiB0XG4gICAgICB9KSwgdGhpcy5fdHJhY2VyID0gTWUuZ2V0VHJhY2VyKHQsIGUpLCB0aGlzLl9tZXRlciA9IGskMS5nZXRNZXRlcih0LCBlKSwgdGhpcy5fbG9nZ2VyID0gay5nZXRMb2dnZXIodCwgZSksIHRoaXMuX3VwZGF0ZU1ldHJpY0luc3RydW1lbnRzKCk7XG4gICAgfVxuICAgIHJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkociQxLnByb3RvdHlwZSwgXCJtZXRlclwiLCB7XG4gICAgICAvKiBSZXR1cm5zIG1ldGVyICovXG4gICAgICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fbWV0ZXI7XG4gICAgICB9LFxuICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KSwgciQxLnByb3RvdHlwZS5zZXRNZXRlclByb3ZpZGVyID0gZnVuY3Rpb24odCkge1xuICAgICAgdGhpcy5fbWV0ZXIgPSB0LmdldE1ldGVyKHRoaXMuaW5zdHJ1bWVudGF0aW9uTmFtZSwgdGhpcy5pbnN0cnVtZW50YXRpb25WZXJzaW9uKSwgdGhpcy5fdXBkYXRlTWV0cmljSW5zdHJ1bWVudHMoKTtcbiAgICB9LCBPYmplY3QuZGVmaW5lUHJvcGVydHkociQxLnByb3RvdHlwZSwgXCJsb2dnZXJcIiwge1xuICAgICAgLyogUmV0dXJucyBsb2dnZXIgKi9cbiAgICAgIGdldDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9sb2dnZXI7XG4gICAgICB9LFxuICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KSwgciQxLnByb3RvdHlwZS5zZXRMb2dnZXJQcm92aWRlciA9IGZ1bmN0aW9uKHQpIHtcbiAgICAgIHRoaXMuX2xvZ2dlciA9IHQuZ2V0TG9nZ2VyKHRoaXMuaW5zdHJ1bWVudGF0aW9uTmFtZSwgdGhpcy5pbnN0cnVtZW50YXRpb25WZXJzaW9uKTtcbiAgICB9LCByJDEucHJvdG90eXBlLmdldE1vZHVsZURlZmluaXRpb25zID0gZnVuY3Rpb24oKSB7XG4gICAgICB2YXIgdCwgZSA9ICh0ID0gdGhpcy5pbml0KCkpICE9PSBudWxsICYmIHQgIT09IHZvaWQgMCA/IHQgOiBbXTtcbiAgICAgIHJldHVybiBBcnJheS5pc0FycmF5KGUpID8gZSA6IFtlXTtcbiAgICB9LCByJDEucHJvdG90eXBlLl91cGRhdGVNZXRyaWNJbnN0cnVtZW50cyA9IGZ1bmN0aW9uKCkge1xuICAgIH0sIHIkMS5wcm90b3R5cGUuZ2V0Q29uZmlnID0gZnVuY3Rpb24oKSB7XG4gICAgICByZXR1cm4gdGhpcy5fY29uZmlnO1xuICAgIH0sIHIkMS5wcm90b3R5cGUuc2V0Q29uZmlnID0gZnVuY3Rpb24odCkge1xuICAgICAgdGhpcy5fY29uZmlnID0gXyh7IGVuYWJsZWQ6IHRydWUgfSwgdCk7XG4gICAgfSwgciQxLnByb3RvdHlwZS5zZXRUcmFjZXJQcm92aWRlciA9IGZ1bmN0aW9uKHQpIHtcbiAgICAgIHRoaXMuX3RyYWNlciA9IHQuZ2V0VHJhY2VyKHRoaXMuaW5zdHJ1bWVudGF0aW9uTmFtZSwgdGhpcy5pbnN0cnVtZW50YXRpb25WZXJzaW9uKTtcbiAgICB9LCBPYmplY3QuZGVmaW5lUHJvcGVydHkociQxLnByb3RvdHlwZSwgXCJ0cmFjZXJcIiwge1xuICAgICAgLyogUmV0dXJucyB0cmFjZXIgKi9cbiAgICAgIGdldDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl90cmFjZXI7XG4gICAgICB9LFxuICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KSwgciQxLnByb3RvdHlwZS5fcnVuU3BhbkN1c3RvbWl6YXRpb25Ib29rID0gZnVuY3Rpb24odCwgZSwgbiwgaSkge1xuICAgICAgaWYgKHQpXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgdChuLCBpKTtcbiAgICAgICAgfSBjYXRjaCAodSkge1xuICAgICAgICAgIHRoaXMuX2RpYWcuZXJyb3IoXCJFcnJvciBydW5uaW5nIHNwYW4gY3VzdG9taXphdGlvbiBob29rIGR1ZSB0byBleGNlcHRpb24gaW4gaGFuZGxlclwiLCB7IHRyaWdnZXJOYW1lOiBlIH0sIHUpO1xuICAgICAgICB9XG4gICAgfSwgciQxO1xuICB9KSgpXG4pLCBNID0gLyogQF9fUFVSRV9fICovIChmdW5jdGlvbigpIHtcbiAgdmFyIHIgPSBmdW5jdGlvbih0LCBlKSB7XG4gICAgcmV0dXJuIHIgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHwgeyBfX3Byb3RvX186IFtdIH0gaW5zdGFuY2VvZiBBcnJheSAmJiBmdW5jdGlvbihuLCBpKSB7XG4gICAgICBuLl9fcHJvdG9fXyA9IGk7XG4gICAgfSB8fCBmdW5jdGlvbihuLCBpKSB7XG4gICAgICBmb3IgKHZhciB1IGluIGkpIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChpLCB1KSAmJiAoblt1XSA9IGlbdV0pO1xuICAgIH0sIHIodCwgZSk7XG4gIH07XG4gIHJldHVybiBmdW5jdGlvbih0LCBlKSB7XG4gICAgaWYgKHR5cGVvZiBlICE9IFwiZnVuY3Rpb25cIiAmJiBlICE9PSBudWxsKVxuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNsYXNzIGV4dGVuZHMgdmFsdWUgXCIgKyBTdHJpbmcoZSkgKyBcIiBpcyBub3QgYSBjb25zdHJ1Y3RvciBvciBudWxsXCIpO1xuICAgIHIodCwgZSk7XG4gICAgZnVuY3Rpb24gbigpIHtcbiAgICAgIHRoaXMuY29uc3RydWN0b3IgPSB0O1xuICAgIH1cbiAgICB0LnByb3RvdHlwZSA9IGUgPT09IG51bGwgPyBPYmplY3QuY3JlYXRlKGUpIDogKG4ucHJvdG90eXBlID0gZS5wcm90b3R5cGUsIG5ldyBuKCkpO1xuICB9O1xufSkoKSwgVyA9IChcbiAgLyoqIEBjbGFzcyAqL1xuICAoZnVuY3Rpb24ocikge1xuICAgIE0odCwgcik7XG4gICAgZnVuY3Rpb24gdChlLCBuLCBpKSB7XG4gICAgICB2YXIgdSA9IHIuY2FsbCh0aGlzLCBlLCBuLCBpKSB8fCB0aGlzO1xuICAgICAgcmV0dXJuIHUuX2NvbmZpZy5lbmFibGVkICYmIHUuZW5hYmxlKCksIHU7XG4gICAgfVxuICAgIHJldHVybiB0O1xuICB9KShHKVxuKTtcbmZ1bmN0aW9uIEIociwgdCwgZSkge1xuICB2YXIgbiwgaTtcbiAgdHJ5IHtcbiAgICBpID0gcigpO1xuICB9IGNhdGNoICh1KSB7XG4gICAgbiA9IHU7XG4gIH0gZmluYWxseSB7XG4gICAgcmV0dXJuIHQobiwgaSksIGk7XG4gIH1cbn1cbmZ1bmN0aW9uIFUocikge1xuICByZXR1cm4gdHlwZW9mIHIgPT0gXCJmdW5jdGlvblwiICYmIHR5cGVvZiByLl9fb3JpZ2luYWwgPT0gXCJmdW5jdGlvblwiICYmIHR5cGVvZiByLl9fdW53cmFwID09IFwiZnVuY3Rpb25cIiAmJiByLl9fd3JhcHBlZCA9PT0gdHJ1ZTtcbn1cblxuZXhwb3J0IHsgQiwgVSwgVywgayB9OyJdLAogICJtYXBwaW5ncyI6ICJBQUFBLFNBQVMsS0FBQUEsU0FBUztBQUNsQixTQUFTLEtBQUtDLFNBQVc7QUFD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SUFBcUIsNEJBQVc7QUFDakMsTUFBSXpCLElBQUksU0FBUyxHQUFHSyxHQUFHO0FBQ3JCLFdBQU9MLElBQUksT0FBTyxrQkFBa0IsRUFBRSxXQUFXLENBQUMsRUFBRSxhQUFhLFNBQVMsU0FBUyxHQUFHLEdBQUc7QUFDdkYsUUFBRSxZQUFZO0FBQUEsSUFDaEIsS0FBSyxTQUFTLEdBQUcsR0FBRztBQUNsQixlQUFTbUIsS0FBSyxFQUFHLFFBQU8sVUFBVSxlQUFlLEtBQUssR0FBR0EsQ0FBQyxNQUFNLEVBQUVBLENBQUMsSUFBSSxFQUFFQSxDQUFDO0FBQUEsSUFDNUUsR0FBR25CLEVBQUUsR0FBR0ssQ0FBQztBQUFBLEVBQ1g7QUFDQSxTQUFPLFNBQVMsR0FBR0EsR0FBRztBQUNwQixRQUFJLE9BQU9BLEtBQUssY0FBY0EsTUFBTTtBQUNsQyxZQUFNLElBQUksVUFBVSx5QkFBeUIsT0FBT0EsQ0FBQyxJQUFJLCtCQUErQjtBQUMxRixJQUFBTCxFQUFFLEdBQUdLLENBQUM7QUFDTixhQUFTLElBQUk7QUFDWCxXQUFLLGNBQWM7QUFBQSxJQUNyQjtBQUNBLE1BQUUsWUFBWUEsTUFBTSxPQUFPLE9BQU8sT0FBT0EsQ0FBQyxLQUFLLEVBQUUsWUFBWUEsRUFBRSxXQUFXLElBQUksRUFBRTtBQUFBLEVBQ2xGO0FBQ0YsR0FBRyxHQUFHO0FBQUE7QUFBQSxHQUVILFNBQVNMLEdBQUc7QUFDWCxJQUFBeUIsRUFBRSxHQUFHekIsQ0FBQztBQUNOLGFBQVMsRUFBRUssR0FBRyxHQUFHLEdBQUc7QUFDbEIsVUFBSWMsSUFBSW5CLEVBQUUsS0FBSyxNQUFNSyxHQUFHLEdBQUcsQ0FBQyxLQUFLO0FBQ2pDLGFBQU9jLEVBQUUsUUFBUSxXQUFXQSxFQUFFLE9BQU8sR0FBR0E7QUFBQSxJQUMxQztBQUNBLFdBQU87QUFBQSxFQUNULEdBQUdJLENBQUM7QUFBQTtBQUVOLFNBQVNHLEVBQUUxQixHQUFHLEdBQUdLLEdBQUc7QUFDbEIsTUFBSSxHQUFHO0FBQ1AsTUFBSTtBQUNGLFFBQUlMLEVBQUU7QUFBQSxFQUNSLFNBQVNtQixHQUFHO0FBQ1YsUUFBSUE7QUFBQSxFQUNOLFVBQUU7QUFDQSxXQUFPLEVBQUUsR0FBRyxDQUFDLEdBQUc7QUFBQSxFQUNsQjtBQUNGO0FBQ0EsU0FBU1EsRUFBRTNCLEdBQUc7QUFDWixTQUFPLE9BQU9BLEtBQUssY0FBYyxPQUFPQSxFQUFFLGNBQWMsY0FBYyxPQUFPQSxFQUFFLFlBQVksY0FBY0EsRUFBRSxjQUFjO0FBQzNIOyIsCiAgIm5hbWVzIjogWyJyIiwgImskMSIsICJNZSIsICJBIiwgIkkiLCAiZSIsICJFIiwgImQiLCAiaiIsICJsIiwgIlQiLCAidiIsICJTIiwgImsiLCAibSIsICJEIiwgImEiLCAicyIsICJmIiwgInUiLCAieSIsICJwIiwgIl8iLCAiRyIsICJyJDEiLCAiTSIsICJCIiwgIlUiXQp9Cg==