@getopenpay/openpay-js
Version:
Accept payments through OpenPay, right on your site
102 lines (101 loc) • 28 kB
JavaScript
import { S as l, a as L, u as h, h as O, t as R } from "./url-CWnDM543.js";
var T;
(function(t) {
t.CONNECT_END = "connectEnd", t.CONNECT_START = "connectStart", t.DECODED_BODY_SIZE = "decodedBodySize", t.DOM_COMPLETE = "domComplete", t.DOM_CONTENT_LOADED_EVENT_END = "domContentLoadedEventEnd", t.DOM_CONTENT_LOADED_EVENT_START = "domContentLoadedEventStart", t.DOM_INTERACTIVE = "domInteractive", t.DOMAIN_LOOKUP_END = "domainLookupEnd", t.DOMAIN_LOOKUP_START = "domainLookupStart", t.ENCODED_BODY_SIZE = "encodedBodySize", t.FETCH_START = "fetchStart", t.LOAD_EVENT_END = "loadEventEnd", t.LOAD_EVENT_START = "loadEventStart", t.NAVIGATION_START = "navigationStart", t.REDIRECT_END = "redirectEnd", t.REDIRECT_START = "redirectStart", t.REQUEST_START = "requestStart", t.RESPONSE_END = "responseEnd", t.RESPONSE_START = "responseStart", t.SECURE_CONNECTION_START = "secureConnectionStart", t.UNLOAD_EVENT_END = "unloadEventEnd", t.UNLOAD_EVENT_START = "unloadEventStart";
})(T || (T = {}));
var v;
function I() {
return v || (v = document.createElement("a")), v;
}
function D(t, E) {
return E in t;
}
function u(t, E, n, S) {
var d = void 0, i = void 0;
D(n, E) && typeof n[E] == "number" && (d = n[E]);
var _ = T.FETCH_START;
if (D(n, _) && typeof n[_] == "number" && (i = n[_]), d !== void 0 && i !== void 0 && d >= i)
return t.addEvent(E, d), t;
}
function y(t, E, n) {
n === void 0 && (n = !1), n || (u(t, T.FETCH_START, E), u(t, T.DOMAIN_LOOKUP_START, E), u(t, T.DOMAIN_LOOKUP_END, E), u(t, T.CONNECT_START, E), D(E, "name") && E.name.startsWith("https:") && u(t, T.SECURE_CONNECTION_START, E), u(t, T.CONNECT_END, E), u(t, T.REQUEST_START, E), u(t, T.RESPONSE_START, E), u(t, T.RESPONSE_END, E));
var S = E[T.ENCODED_BODY_SIZE];
S !== void 0 && t.setAttribute(l, S);
var d = E[T.DECODED_BODY_SIZE];
d !== void 0 && S !== d && t.setAttribute(L, d);
}
function U(t) {
return t.slice().sort(function(E, n) {
var S = E[T.FETCH_START], d = n[T.FETCH_START];
return S > d ? 1 : S < d ? -1 : 0;
});
}
function A() {
return typeof location < "u" ? location.origin : void 0;
}
function V(t, E, n, S, d, i) {
d === void 0 && (d = /* @__PURE__ */ new WeakSet());
var _ = C(t);
t = _.toString();
var r = H(t, E, n, S, d, i);
if (r.length === 0)
return {
mainRequest: void 0
};
if (r.length === 1)
return {
mainRequest: r[0]
};
var a = U(r);
if (_.origin !== A() && a.length > 1) {
var e = a[0], f = p(a, e[T.RESPONSE_END], n), o = e[T.RESPONSE_END], N = f[T.FETCH_START];
return N < o && (f = e, e = void 0), {
corsPreFlightRequest: e,
mainRequest: f
};
} else
return {
mainRequest: r[0]
};
}
function p(t, E, n) {
for (var S = O(n), d = O(R(E)), i = t[1], _, r = t.length, a = 1; a < r; a++) {
var e = t[a], f = O(R(e[T.FETCH_START])), o = O(R(e[T.RESPONSE_END])), N = S - o;
f >= d && (!_ || N < _) && (_ = N, i = e);
}
return i;
}
function H(t, E, n, S, d, i) {
var _ = O(E), r = O(n), a = S.filter(function(e) {
var f = O(R(e[T.FETCH_START])), o = O(R(e[T.RESPONSE_END]));
return e.initiatorType.toLowerCase() === i && e.name === t && f >= _ && o <= r;
});
return a.length > 0 && (a = a.filter(function(e) {
return !d.has(e);
})), a;
}
function C(t) {
if (typeof URL == "function")
return new URL(t, typeof document < "u" ? document.baseURI : typeof location < "u" ? location.href : void 0);
var E = I();
return E.href = t, E;
}
function b(t, E) {
var n = E || [];
(typeof n == "string" || n instanceof RegExp) && (n = [n]);
var S = C(t);
return S.origin === A() ? !0 : n.some(function(d) {
return h(t, d);
});
}
export {
T as P,
u as a,
y as b,
U as c,
V as g,
D as h,
C as p,
b as s
};
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsidXRpbHMtIX57MDBjfX4uanMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImltcG9ydCB7IFMgYXMgU0VNQVRUUlNfSFRUUF9SRVNQT05TRV9DT05URU5UX0xFTkdUSCwgYSBhcyBTRU1BVFRSU19IVFRQX1JFU1BPTlNFX0NPTlRFTlRfTEVOR1RIX1VOQ09NUFJFU1NFRCwgdSBhcyB1cmxNYXRjaGVzLCBoIGFzIGhyVGltZVRvTmFub3NlY29uZHMsIHQgYXMgdGltZUlucHV0VG9IclRpbWUgfSBmcm9tICcuL3VybC0hfnswMGR9fi5qcyc7XG5cbi8qXG4gKiBDb3B5cmlnaHQgVGhlIE9wZW5UZWxlbWV0cnkgQXV0aG9yc1xuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHBzOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG52YXIgUGVyZm9ybWFuY2VUaW1pbmdOYW1lcztcbihmdW5jdGlvbiAoUGVyZm9ybWFuY2VUaW1pbmdOYW1lcykge1xuICAgIFBlcmZvcm1hbmNlVGltaW5nTmFtZXNbXCJDT05ORUNUX0VORFwiXSA9IFwiY29ubmVjdEVuZFwiO1xuICAgIFBlcmZvcm1hbmNlVGltaW5nTmFtZXNbXCJDT05ORUNUX1NUQVJUXCJdID0gXCJjb25uZWN0U3RhcnRcIjtcbiAgICBQZXJmb3JtYW5jZVRpbWluZ05hbWVzW1wiREVDT0RFRF9CT0RZX1NJWkVcIl0gPSBcImRlY29kZWRCb2R5U2l6ZVwiO1xuICAgIFBlcmZvcm1hbmNlVGltaW5nTmFtZXNbXCJET01fQ09NUExFVEVcIl0gPSBcImRvbUNvbXBsZXRlXCI7XG4gICAgUGVyZm9ybWFuY2VUaW1pbmdOYW1lc1tcIkRPTV9DT05URU5UX0xPQURFRF9FVkVOVF9FTkRcIl0gPSBcImRvbUNvbnRlbnRMb2FkZWRFdmVudEVuZFwiO1xuICAgIFBlcmZvcm1hbmNlVGltaW5nTmFtZXNbXCJET01fQ09OVEVOVF9MT0FERURfRVZFTlRfU1RBUlRcIl0gPSBcImRvbUNvbnRlbnRMb2FkZWRFdmVudFN0YXJ0XCI7XG4gICAgUGVyZm9ybWFuY2VUaW1pbmdOYW1lc1tcIkRPTV9JTlRFUkFDVElWRVwiXSA9IFwiZG9tSW50ZXJhY3RpdmVcIjtcbiAgICBQZXJmb3JtYW5jZVRpbWluZ05hbWVzW1wiRE9NQUlOX0xPT0tVUF9FTkRcIl0gPSBcImRvbWFpbkxvb2t1cEVuZFwiO1xuICAgIFBlcmZvcm1hbmNlVGltaW5nTmFtZXNbXCJET01BSU5fTE9PS1VQX1NUQVJUXCJdID0gXCJkb21haW5Mb29rdXBTdGFydFwiO1xuICAgIFBlcmZvcm1hbmNlVGltaW5nTmFtZXNbXCJFTkNPREVEX0JPRFlfU0laRVwiXSA9IFwiZW5jb2RlZEJvZHlTaXplXCI7XG4gICAgUGVyZm9ybWFuY2VUaW1pbmdOYW1lc1tcIkZFVENIX1NUQVJUXCJdID0gXCJmZXRjaFN0YXJ0XCI7XG4gICAgUGVyZm9ybWFuY2VUaW1pbmdOYW1lc1tcIkxPQURfRVZFTlRfRU5EXCJdID0gXCJsb2FkRXZlbnRFbmRcIjtcbiAgICBQZXJmb3JtYW5jZVRpbWluZ05hbWVzW1wiTE9BRF9FVkVOVF9TVEFSVFwiXSA9IFwibG9hZEV2ZW50U3RhcnRcIjtcbiAgICBQZXJmb3JtYW5jZVRpbWluZ05hbWVzW1wiTkFWSUdBVElPTl9TVEFSVFwiXSA9IFwibmF2aWdhdGlvblN0YXJ0XCI7XG4gICAgUGVyZm9ybWFuY2VUaW1pbmdOYW1lc1tcIlJFRElSRUNUX0VORFwiXSA9IFwicmVkaXJlY3RFbmRcIjtcbiAgICBQZXJmb3JtYW5jZVRpbWluZ05hbWVzW1wiUkVESVJFQ1RfU1RBUlRcIl0gPSBcInJlZGlyZWN0U3RhcnRcIjtcbiAgICBQZXJmb3JtYW5jZVRpbWluZ05hbWVzW1wiUkVRVUVTVF9TVEFSVFwiXSA9IFwicmVxdWVzdFN0YXJ0XCI7XG4gICAgUGVyZm9ybWFuY2VUaW1pbmdOYW1lc1tcIlJFU1BPTlNFX0VORFwiXSA9IFwicmVzcG9uc2VFbmRcIjtcbiAgICBQZXJmb3JtYW5jZVRpbWluZ05hbWVzW1wiUkVTUE9OU0VfU1RBUlRcIl0gPSBcInJlc3BvbnNlU3RhcnRcIjtcbiAgICBQZXJmb3JtYW5jZVRpbWluZ05hbWVzW1wiU0VDVVJFX0NPTk5FQ1RJT05fU1RBUlRcIl0gPSBcInNlY3VyZUNvbm5lY3Rpb25TdGFydFwiO1xuICAgIFBlcmZvcm1hbmNlVGltaW5nTmFtZXNbXCJVTkxPQURfRVZFTlRfRU5EXCJdID0gXCJ1bmxvYWRFdmVudEVuZFwiO1xuICAgIFBlcmZvcm1hbmNlVGltaW5nTmFtZXNbXCJVTkxPQURfRVZFTlRfU1RBUlRcIl0gPSBcInVubG9hZEV2ZW50U3RhcnRcIjtcbn0pKFBlcmZvcm1hbmNlVGltaW5nTmFtZXMgfHwgKFBlcmZvcm1hbmNlVGltaW5nTmFtZXMgPSB7fSkpO1xuXG4vKlxuICogQ29weXJpZ2h0IFRoZSBPcGVuVGVsZW1ldHJ5IEF1dGhvcnNcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwczovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLy8gVXNlZCB0byBub3JtYWxpemUgcmVsYXRpdmUgVVJMc1xudmFyIHVybE5vcm1hbGl6aW5nQW5jaG9yO1xuZnVuY3Rpb24gZ2V0VXJsTm9ybWFsaXppbmdBbmNob3IoKSB7XG4gICAgaWYgKCF1cmxOb3JtYWxpemluZ0FuY2hvcikge1xuICAgICAgICB1cmxOb3JtYWxpemluZ0FuY2hvciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTtcbiAgICB9XG4gICAgcmV0dXJuIHVybE5vcm1hbGl6aW5nQW5jaG9yO1xufVxuLyoqXG4gKiBIZWxwZXIgZnVuY3Rpb24gdG8gYmUgYWJsZSB0byB1c2UgZW51bSBhcyB0eXBlZCBrZXkgaW4gdHlwZSBhbmQgaW4gaW50ZXJmYWNlIHdoZW4gdXNpbmcgZm9yRWFjaFxuICogQHBhcmFtIG9ialxuICogQHBhcmFtIGtleVxuICovXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuZnVuY3Rpb24gaGFzS2V5KG9iaiwga2V5KSB7XG4gICAgcmV0dXJuIGtleSBpbiBvYmo7XG59XG4vKipcbiAqIEhlbHBlciBmdW5jdGlvbiBmb3Igc3RhcnRpbmcgYW4gZXZlbnQgb24gc3BhbiBiYXNlZCBvbiB7QGxpbmsgUGVyZm9ybWFuY2VFbnRyaWVzfVxuICogQHBhcmFtIHNwYW5cbiAqIEBwYXJhbSBwZXJmb3JtYW5jZU5hbWUgbmFtZSBvZiBwZXJmb3JtYW5jZSBlbnRyeSBmb3IgdGltZSBzdGFydFxuICogQHBhcmFtIGVudHJpZXNcbiAqIEBwYXJhbSByZWZQZXJmTmFtZSBuYW1lIG9mIHBlcmZvcm1hbmNlIGVudHJ5IHRvIHVzZSBmb3IgcmVmZXJlbmNlXG4gKi9cbmZ1bmN0aW9uIGFkZFNwYW5OZXR3b3JrRXZlbnQoc3BhbiwgcGVyZm9ybWFuY2VOYW1lLCBlbnRyaWVzLCByZWZQZXJmTmFtZSkge1xuICAgIHZhciBwZXJmVGltZSA9IHVuZGVmaW5lZDtcbiAgICB2YXIgcmVmVGltZSA9IHVuZGVmaW5lZDtcbiAgICBpZiAoaGFzS2V5KGVudHJpZXMsIHBlcmZvcm1hbmNlTmFtZSkgJiZcbiAgICAgICAgdHlwZW9mIGVudHJpZXNbcGVyZm9ybWFuY2VOYW1lXSA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgcGVyZlRpbWUgPSBlbnRyaWVzW3BlcmZvcm1hbmNlTmFtZV07XG4gICAgfVxuICAgIHZhciByZWZOYW1lID0gUGVyZm9ybWFuY2VUaW1pbmdOYW1lcy5GRVRDSF9TVEFSVDtcbiAgICAvLyBVc2UgYSByZWZlcmVuY2UgdGltZSB3aGljaCBpcyB0aGUgZWFybGllc3QgcG9zc2libGUgdmFsdWUgc28gdGhhdCB0aGUgcGVyZm9ybWFuY2UgdGltaW5ncyB0aGF0IGFyZSBlYXJsaWVyIHNob3VsZCBub3QgYmUgYWRkZWRcbiAgICAvLyB1c2luZyBGRVRDSCBTVEFSVCB0aW1lIGluIGNhc2Ugbm8gcmVmZXJlbmNlIGlzIHByb3ZpZGVkXG4gICAgaWYgKGhhc0tleShlbnRyaWVzLCByZWZOYW1lKSAmJiB0eXBlb2YgZW50cmllc1tyZWZOYW1lXSA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgcmVmVGltZSA9IGVudHJpZXNbcmVmTmFtZV07XG4gICAgfVxuICAgIGlmIChwZXJmVGltZSAhPT0gdW5kZWZpbmVkICYmIHJlZlRpbWUgIT09IHVuZGVmaW5lZCAmJiBwZXJmVGltZSA+PSByZWZUaW1lKSB7XG4gICAgICAgIHNwYW4uYWRkRXZlbnQocGVyZm9ybWFuY2VOYW1lLCBwZXJmVGltZSk7XG4gICAgICAgIHJldHVybiBzcGFuO1xuICAgIH1cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xufVxuLyoqXG4gKiBIZWxwZXIgZnVuY3Rpb24gZm9yIGFkZGluZyBuZXR3b3JrIGV2ZW50cyBhbmQgY29udGVudCBsZW5ndGggYXR0cmlidXRlc1xuICogQHBhcmFtIHNwYW5cbiAqIEBwYXJhbSByZXNvdXJjZVxuICogQHBhcmFtIGlnbm9yZU5ldHdvcmtFdmVudHNcbiAqL1xuZnVuY3Rpb24gYWRkU3Bhbk5ldHdvcmtFdmVudHMoc3BhbiwgcmVzb3VyY2UsIGlnbm9yZU5ldHdvcmtFdmVudHMpIHtcbiAgICBpZiAoaWdub3JlTmV0d29ya0V2ZW50cyA9PT0gdm9pZCAwKSB7IGlnbm9yZU5ldHdvcmtFdmVudHMgPSBmYWxzZTsgfVxuICAgIGlmICghaWdub3JlTmV0d29ya0V2ZW50cykge1xuICAgICAgICBhZGRTcGFuTmV0d29ya0V2ZW50KHNwYW4sIFBlcmZvcm1hbmNlVGltaW5nTmFtZXMuRkVUQ0hfU1RBUlQsIHJlc291cmNlKTtcbiAgICAgICAgYWRkU3Bhbk5ldHdvcmtFdmVudChzcGFuLCBQZXJmb3JtYW5jZVRpbWluZ05hbWVzLkRPTUFJTl9MT09LVVBfU1RBUlQsIHJlc291cmNlKTtcbiAgICAgICAgYWRkU3Bhbk5ldHdvcmtFdmVudChzcGFuLCBQZXJmb3JtYW5jZVRpbWluZ05hbWVzLkRPTUFJTl9MT09LVVBfRU5ELCByZXNvdXJjZSk7XG4gICAgICAgIGFkZFNwYW5OZXR3b3JrRXZlbnQoc3BhbiwgUGVyZm9ybWFuY2VUaW1pbmdOYW1lcy5DT05ORUNUX1NUQVJULCByZXNvdXJjZSk7XG4gICAgICAgIGlmIChoYXNLZXkocmVzb3VyY2UsICduYW1lJykgJiZcbiAgICAgICAgICAgIHJlc291cmNlWyduYW1lJ10uc3RhcnRzV2l0aCgnaHR0cHM6JykpIHtcbiAgICAgICAgICAgIGFkZFNwYW5OZXR3b3JrRXZlbnQoc3BhbiwgUGVyZm9ybWFuY2VUaW1pbmdOYW1lcy5TRUNVUkVfQ09OTkVDVElPTl9TVEFSVCwgcmVzb3VyY2UpO1xuICAgICAgICB9XG4gICAgICAgIGFkZFNwYW5OZXR3b3JrRXZlbnQoc3BhbiwgUGVyZm9ybWFuY2VUaW1pbmdOYW1lcy5DT05ORUNUX0VORCwgcmVzb3VyY2UpO1xuICAgICAgICBhZGRTcGFuTmV0d29ya0V2ZW50KHNwYW4sIFBlcmZvcm1hbmNlVGltaW5nTmFtZXMuUkVRVUVTVF9TVEFSVCwgcmVzb3VyY2UpO1xuICAgICAgICBhZGRTcGFuTmV0d29ya0V2ZW50KHNwYW4sIFBlcmZvcm1hbmNlVGltaW5nTmFtZXMuUkVTUE9OU0VfU1RBUlQsIHJlc291cmNlKTtcbiAgICAgICAgYWRkU3Bhbk5ldHdvcmtFdmVudChzcGFuLCBQZXJmb3JtYW5jZVRpbWluZ05hbWVzLlJFU1BPTlNFX0VORCwgcmVzb3VyY2UpO1xuICAgIH1cbiAgICB2YXIgZW5jb2RlZExlbmd0aCA9IHJlc291cmNlW1BlcmZvcm1hbmNlVGltaW5nTmFtZXMuRU5DT0RFRF9CT0RZX1NJWkVdO1xuICAgIGlmIChlbmNvZGVkTGVuZ3RoICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgc3Bhbi5zZXRBdHRyaWJ1dGUoU0VNQVRUUlNfSFRUUF9SRVNQT05TRV9DT05URU5UX0xFTkdUSCwgZW5jb2RlZExlbmd0aCk7XG4gICAgfVxuICAgIHZhciBkZWNvZGVkTGVuZ3RoID0gcmVzb3VyY2VbUGVyZm9ybWFuY2VUaW1pbmdOYW1lcy5ERUNPREVEX0JPRFlfU0laRV07XG4gICAgLy8gU3BlYzogTm90IHNldCBpZiB0cmFuc3BvcnQgZW5jb2Rpbmcgbm90IHVzZWQgKGluIHdoaWNoIGNhc2UgZW5jb2RlZCBhbmQgZGVjb2RlZCBzaXplcyBtYXRjaClcbiAgICBpZiAoZGVjb2RlZExlbmd0aCAhPT0gdW5kZWZpbmVkICYmIGVuY29kZWRMZW5ndGggIT09IGRlY29kZWRMZW5ndGgpIHtcbiAgICAgICAgc3Bhbi5zZXRBdHRyaWJ1dGUoU0VNQVRUUlNfSFRUUF9SRVNQT05TRV9DT05URU5UX0xFTkdUSF9VTkNPTVBSRVNTRUQsIGRlY29kZWRMZW5ndGgpO1xuICAgIH1cbn1cbi8qKlxuICogc29ydCByZXNvdXJjZXMgYnkgc3RhcnRUaW1lXG4gKiBAcGFyYW0gZmlsdGVyZWRSZXNvdXJjZXNcbiAqL1xuZnVuY3Rpb24gc29ydFJlc291cmNlcyhmaWx0ZXJlZFJlc291cmNlcykge1xuICAgIHJldHVybiBmaWx0ZXJlZFJlc291cmNlcy5zbGljZSgpLnNvcnQoZnVuY3Rpb24gKGEsIGIpIHtcbiAgICAgICAgdmFyIHZhbHVlQSA9IGFbUGVyZm9ybWFuY2VUaW1pbmdOYW1lcy5GRVRDSF9TVEFSVF07XG4gICAgICAgIHZhciB2YWx1ZUIgPSBiW1BlcmZvcm1hbmNlVGltaW5nTmFtZXMuRkVUQ0hfU1RBUlRdO1xuICAgICAgICBpZiAodmFsdWVBID4gdmFsdWVCKSB7XG4gICAgICAgICAgICByZXR1cm4gMTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICh2YWx1ZUEgPCB2YWx1ZUIpIHtcbiAgICAgICAgICAgIHJldHVybiAtMTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gMDtcbiAgICB9KTtcbn1cbi8qKiBSZXR1cm5zIHRoZSBvcmlnaW4gaWYgcHJlc2VudCAoaWYgaW4gYnJvd3NlciBjb250ZXh0KS4gKi9cbmZ1bmN0aW9uIGdldE9yaWdpbigpIHtcbiAgICByZXR1cm4gdHlwZW9mIGxvY2F0aW9uICE9PSAndW5kZWZpbmVkJyA/IGxvY2F0aW9uLm9yaWdpbiA6IHVuZGVmaW5lZDtcbn1cbi8qKlxuICogR2V0IGNsb3Nlc3QgcGVyZm9ybWFuY2UgcmVzb3VyY2UgaWdub3JpbmcgdGhlIHJlc291cmNlcyB0aGF0IGhhdmUgYmVlblxuICogYWxyZWFkeSB1c2VkLlxuICogQHBhcmFtIHNwYW5VcmxcbiAqIEBwYXJhbSBzdGFydFRpbWVIUlxuICogQHBhcmFtIGVuZFRpbWVIUlxuICogQHBhcmFtIHJlc291cmNlc1xuICogQHBhcmFtIGlnbm9yZWRSZXNvdXJjZXNcbiAqIEBwYXJhbSBpbml0aWF0b3JUeXBlXG4gKi9cbmZ1bmN0aW9uIGdldFJlc291cmNlKHNwYW5VcmwsIHN0YXJ0VGltZUhSLCBlbmRUaW1lSFIsIHJlc291cmNlcywgaWdub3JlZFJlc291cmNlcywgaW5pdGlhdG9yVHlwZSkge1xuICAgIGlmIChpZ25vcmVkUmVzb3VyY2VzID09PSB2b2lkIDApIHsgaWdub3JlZFJlc291cmNlcyA9IG5ldyBXZWFrU2V0KCk7IH1cbiAgICAvLyBkZS1yZWxhdGl2aXplIHRoZSBVUkwgYmVmb3JlIHVzYWdlIChkb2VzIG5vIGhhcm0gdG8gYWJzb2x1dGUgVVJMcylcbiAgICB2YXIgcGFyc2VkU3BhblVybCA9IHBhcnNlVXJsKHNwYW5VcmwpO1xuICAgIHNwYW5VcmwgPSBwYXJzZWRTcGFuVXJsLnRvU3RyaW5nKCk7XG4gICAgdmFyIGZpbHRlcmVkUmVzb3VyY2VzID0gZmlsdGVyUmVzb3VyY2VzRm9yU3BhbihzcGFuVXJsLCBzdGFydFRpbWVIUiwgZW5kVGltZUhSLCByZXNvdXJjZXMsIGlnbm9yZWRSZXNvdXJjZXMsIGluaXRpYXRvclR5cGUpO1xuICAgIGlmIChmaWx0ZXJlZFJlc291cmNlcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG1haW5SZXF1ZXN0OiB1bmRlZmluZWQsXG4gICAgICAgIH07XG4gICAgfVxuICAgIGlmIChmaWx0ZXJlZFJlc291cmNlcy5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG1haW5SZXF1ZXN0OiBmaWx0ZXJlZFJlc291cmNlc1swXSxcbiAgICAgICAgfTtcbiAgICB9XG4gICAgdmFyIHNvcnRlZCA9IHNvcnRSZXNvdXJjZXMoZmlsdGVyZWRSZXNvdXJjZXMpO1xuICAgIGlmIChwYXJzZWRTcGFuVXJsLm9yaWdpbiAhPT0gZ2V0T3JpZ2luKCkgJiYgc29ydGVkLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgdmFyIGNvcnNQcmVGbGlnaHRSZXF1ZXN0ID0gc29ydGVkWzBdO1xuICAgICAgICB2YXIgbWFpblJlcXVlc3QgPSBmaW5kTWFpblJlcXVlc3Qoc29ydGVkLCBjb3JzUHJlRmxpZ2h0UmVxdWVzdFtQZXJmb3JtYW5jZVRpbWluZ05hbWVzLlJFU1BPTlNFX0VORF0sIGVuZFRpbWVIUik7XG4gICAgICAgIHZhciByZXNwb25zZUVuZCA9IGNvcnNQcmVGbGlnaHRSZXF1ZXN0W1BlcmZvcm1hbmNlVGltaW5nTmFtZXMuUkVTUE9OU0VfRU5EXTtcbiAgICAgICAgdmFyIGZldGNoU3RhcnQgPSBtYWluUmVxdWVzdFtQZXJmb3JtYW5jZVRpbWluZ05hbWVzLkZFVENIX1NUQVJUXTtcbiAgICAgICAgLy8gbm8gY29yc1ByZUZsaWdodFJlcXVlc3RcbiAgICAgICAgaWYgKGZldGNoU3RhcnQgPCByZXNwb25zZUVuZCkge1xuICAgICAgICAgICAgbWFpblJlcXVlc3QgPSBjb3JzUHJlRmxpZ2h0UmVxdWVzdDtcbiAgICAgICAgICAgIGNvcnNQcmVGbGlnaHRSZXF1ZXN0ID0gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBjb3JzUHJlRmxpZ2h0UmVxdWVzdDogY29yc1ByZUZsaWdodFJlcXVlc3QsXG4gICAgICAgICAgICBtYWluUmVxdWVzdDogbWFpblJlcXVlc3QsXG4gICAgICAgIH07XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbWFpblJlcXVlc3Q6IGZpbHRlcmVkUmVzb3VyY2VzWzBdLFxuICAgICAgICB9O1xuICAgIH1cbn1cbi8qKlxuICogV2lsbCBmaW5kIHRoZSBtYWluIHJlcXVlc3Qgc2tpcHBpbmcgdGhlIGNvcnMgcHJlIGZsaWdodCByZXF1ZXN0c1xuICogQHBhcmFtIHJlc291cmNlc1xuICogQHBhcmFtIGNvcnNQcmVGbGlnaHRSZXF1ZXN0RW5kVGltZVxuICogQHBhcmFtIHNwYW5FbmRUaW1lSFJcbiAqL1xuZnVuY3Rpb24gZmluZE1haW5SZXF1ZXN0KHJlc291cmNlcywgY29yc1ByZUZsaWdodFJlcXVlc3RFbmRUaW1lLCBzcGFuRW5kVGltZUhSKSB7XG4gICAgdmFyIHNwYW5FbmRUaW1lID0gaHJUaW1lVG9OYW5vc2Vjb25kcyhzcGFuRW5kVGltZUhSKTtcbiAgICB2YXIgbWluVGltZSA9IGhyVGltZVRvTmFub3NlY29uZHModGltZUlucHV0VG9IclRpbWUoY29yc1ByZUZsaWdodFJlcXVlc3RFbmRUaW1lKSk7XG4gICAgdmFyIG1haW5SZXF1ZXN0ID0gcmVzb3VyY2VzWzFdO1xuICAgIHZhciBiZXN0R2FwO1xuICAgIHZhciBsZW5ndGggPSByZXNvdXJjZXMubGVuZ3RoO1xuICAgIGZvciAodmFyIGkgPSAxOyBpIDwgbGVuZ3RoOyBpKyspIHtcbiAgICAgICAgdmFyIHJlc291cmNlID0gcmVzb3VyY2VzW2ldO1xuICAgICAgICB2YXIgcmVzb3VyY2VTdGFydFRpbWUgPSBoclRpbWVUb05hbm9zZWNvbmRzKHRpbWVJbnB1dFRvSHJUaW1lKHJlc291cmNlW1BlcmZvcm1hbmNlVGltaW5nTmFtZXMuRkVUQ0hfU1RBUlRdKSk7XG4gICAgICAgIHZhciByZXNvdXJjZUVuZFRpbWUgPSBoclRpbWVUb05hbm9zZWNvbmRzKHRpbWVJbnB1dFRvSHJUaW1lKHJlc291cmNlW1BlcmZvcm1hbmNlVGltaW5nTmFtZXMuUkVTUE9OU0VfRU5EXSkpO1xuICAgICAgICB2YXIgY3VycmVudEdhcCA9IHNwYW5FbmRUaW1lIC0gcmVzb3VyY2VFbmRUaW1lO1xuICAgICAgICBpZiAocmVzb3VyY2VTdGFydFRpbWUgPj0gbWluVGltZSAmJiAoIWJlc3RHYXAgfHwgY3VycmVudEdhcCA8IGJlc3RHYXApKSB7XG4gICAgICAgICAgICBiZXN0R2FwID0gY3VycmVudEdhcDtcbiAgICAgICAgICAgIG1haW5SZXF1ZXN0ID0gcmVzb3VyY2U7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG1haW5SZXF1ZXN0O1xufVxuLyoqXG4gKiBGaWx0ZXIgYWxsIHJlc291cmNlcyB0aGF0IGhhcyBzdGFydGVkIGFuZCBmaW5pc2hlZCBhY2NvcmRpbmcgdG8gc3BhbiBzdGFydCB0aW1lIGFuZCBlbmQgdGltZS5cbiAqICAgICBJdCB3aWxsIHJldHVybiB0aGUgY2xvc2VzdCByZXNvdXJjZSB0byBhIHN0YXJ0IHRpbWVcbiAqIEBwYXJhbSBzcGFuVXJsXG4gKiBAcGFyYW0gc3RhcnRUaW1lSFJcbiAqIEBwYXJhbSBlbmRUaW1lSFJcbiAqIEBwYXJhbSByZXNvdXJjZXNcbiAqIEBwYXJhbSBpZ25vcmVkUmVzb3VyY2VzXG4gKi9cbmZ1bmN0aW9uIGZpbHRlclJlc291cmNlc0ZvclNwYW4oc3BhblVybCwgc3RhcnRUaW1lSFIsIGVuZFRpbWVIUiwgcmVzb3VyY2VzLCBpZ25vcmVkUmVzb3VyY2VzLCBpbml0aWF0b3JUeXBlKSB7XG4gICAgdmFyIHN0YXJ0VGltZSA9IGhyVGltZVRvTmFub3NlY29uZHMoc3RhcnRUaW1lSFIpO1xuICAgIHZhciBlbmRUaW1lID0gaHJUaW1lVG9OYW5vc2Vjb25kcyhlbmRUaW1lSFIpO1xuICAgIHZhciBmaWx0ZXJlZFJlc291cmNlcyA9IHJlc291cmNlcy5maWx0ZXIoZnVuY3Rpb24gKHJlc291cmNlKSB7XG4gICAgICAgIHZhciByZXNvdXJjZVN0YXJ0VGltZSA9IGhyVGltZVRvTmFub3NlY29uZHModGltZUlucHV0VG9IclRpbWUocmVzb3VyY2VbUGVyZm9ybWFuY2VUaW1pbmdOYW1lcy5GRVRDSF9TVEFSVF0pKTtcbiAgICAgICAgdmFyIHJlc291cmNlRW5kVGltZSA9IGhyVGltZVRvTmFub3NlY29uZHModGltZUlucHV0VG9IclRpbWUocmVzb3VyY2VbUGVyZm9ybWFuY2VUaW1pbmdOYW1lcy5SRVNQT05TRV9FTkRdKSk7XG4gICAgICAgIHJldHVybiAocmVzb3VyY2UuaW5pdGlhdG9yVHlwZS50b0xvd2VyQ2FzZSgpID09PVxuICAgICAgICAgICAgKGluaXRpYXRvclR5cGUpICYmXG4gICAgICAgICAgICByZXNvdXJjZS5uYW1lID09PSBzcGFuVXJsICYmXG4gICAgICAgICAgICByZXNvdXJjZVN0YXJ0VGltZSA+PSBzdGFydFRpbWUgJiZcbiAgICAgICAgICAgIHJlc291cmNlRW5kVGltZSA8PSBlbmRUaW1lKTtcbiAgICB9KTtcbiAgICBpZiAoZmlsdGVyZWRSZXNvdXJjZXMubGVuZ3RoID4gMCkge1xuICAgICAgICBmaWx0ZXJlZFJlc291cmNlcyA9IGZpbHRlcmVkUmVzb3VyY2VzLmZpbHRlcihmdW5jdGlvbiAocmVzb3VyY2UpIHtcbiAgICAgICAgICAgIHJldHVybiAhaWdub3JlZFJlc291cmNlcy5oYXMocmVzb3VyY2UpO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIGZpbHRlcmVkUmVzb3VyY2VzO1xufVxuLyoqXG4gKiBQYXJzZXMgdXJsIHVzaW5nIFVSTCBjb25zdHJ1Y3RvciBvciBmYWxsYmFjayB0byBhbmNob3IgZWxlbWVudC5cbiAqIEBwYXJhbSB1cmxcbiAqL1xuZnVuY3Rpb24gcGFyc2VVcmwodXJsKSB7XG4gICAgaWYgKHR5cGVvZiBVUkwgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBVUkwodXJsLCB0eXBlb2YgZG9jdW1lbnQgIT09ICd1bmRlZmluZWQnXG4gICAgICAgICAgICA/IGRvY3VtZW50LmJhc2VVUklcbiAgICAgICAgICAgIDogdHlwZW9mIGxvY2F0aW9uICE9PSAndW5kZWZpbmVkJyAvLyBTb21lIEpTIHJ1bnRpbWVzIChlLmcuIERlbm8pIGRvbid0IGRlZmluZSB0aGlzXG4gICAgICAgICAgICAgICAgPyBsb2NhdGlvbi5ocmVmXG4gICAgICAgICAgICAgICAgOiB1bmRlZmluZWQpO1xuICAgIH1cbiAgICB2YXIgZWxlbWVudCA9IGdldFVybE5vcm1hbGl6aW5nQW5jaG9yKCk7XG4gICAgZWxlbWVudC5ocmVmID0gdXJsO1xuICAgIHJldHVybiBlbGVtZW50O1xufVxuLyoqXG4gKiBDaGVja3MgaWYgdHJhY2UgaGVhZGVycyBzaG91bGQgYmUgcHJvcGFnYXRlZFxuICogQHBhcmFtIHNwYW5VcmxcbiAqIEBwcml2YXRlXG4gKi9cbmZ1bmN0aW9uIHNob3VsZFByb3BhZ2F0ZVRyYWNlSGVhZGVycyhzcGFuVXJsLCBwcm9wYWdhdGVUcmFjZUhlYWRlckNvcnNVcmxzKSB7XG4gICAgdmFyIHByb3BhZ2F0ZVRyYWNlSGVhZGVyVXJscyA9IHByb3BhZ2F0ZVRyYWNlSGVhZGVyQ29yc1VybHMgfHwgW107XG4gICAgaWYgKHR5cGVvZiBwcm9wYWdhdGVUcmFjZUhlYWRlclVybHMgPT09ICdzdHJpbmcnIHx8XG4gICAgICAgIHByb3BhZ2F0ZVRyYWNlSGVhZGVyVXJscyBpbnN0YW5jZW9mIFJlZ0V4cCkge1xuICAgICAgICBwcm9wYWdhdGVUcmFjZUhlYWRlclVybHMgPSBbcHJvcGFnYXRlVHJhY2VIZWFkZXJVcmxzXTtcbiAgICB9XG4gICAgdmFyIHBhcnNlZFNwYW5VcmwgPSBwYXJzZVVybChzcGFuVXJsKTtcbiAgICBpZiAocGFyc2VkU3BhblVybC5vcmlnaW4gPT09IGdldE9yaWdpbigpKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHByb3BhZ2F0ZVRyYWNlSGVhZGVyVXJscy5zb21lKGZ1bmN0aW9uIChwcm9wYWdhdGVUcmFjZUhlYWRlclVybCkge1xuICAgICAgICAgICAgcmV0dXJuIHVybE1hdGNoZXMoc3BhblVybCwgcHJvcGFnYXRlVHJhY2VIZWFkZXJVcmwpO1xuICAgICAgICB9KTtcbiAgICB9XG59XG5cbmV4cG9ydCB7IFBlcmZvcm1hbmNlVGltaW5nTmFtZXMgYXMgUCwgYWRkU3Bhbk5ldHdvcmtFdmVudCBhcyBhLCBhZGRTcGFuTmV0d29ya0V2ZW50cyBhcyBiLCBzb3J0UmVzb3VyY2VzIGFzIGMsIGdldFJlc291cmNlIGFzIGcsIGhhc0tleSBhcyBoLCBwYXJzZVVybCBhcyBwLCBzaG91bGRQcm9wYWdhdGVUcmFjZUhlYWRlcnMgYXMgcyB9OyJdLAogICJtYXBwaW5ncyI6ICJBQUFBLFNBQVMsS0FBS0EsR0FBdUMsS0FBS0MsR0FBb0QsS0FBS0MsR0FBWSxLQUFLQyxHQUFxQixLQUFLQyxTQUF5QjtBQWlCdkwsSUFBSUM7QUFBQSxDQUNILFNBQVVBLEdBQXdCO0FBQy9CLEVBQUFBLEVBQXVCLGNBQWlCLGNBQ3hDQSxFQUF1QixnQkFBbUIsZ0JBQzFDQSxFQUF1QixvQkFBdUIsbUJBQzlDQSxFQUF1QixlQUFrQixlQUN6Q0EsRUFBdUIsK0JBQWtDLDRCQUN6REEsRUFBdUIsaUNBQW9DLDhCQUMzREEsRUFBdUIsa0JBQXFCLGtCQUM1Q0EsRUFBdUIsb0JBQXVCLG1CQUM5Q0EsRUFBdUIsc0JBQXlCLHFCQUNoREEsRUFBdUIsb0JBQXVCLG1CQUM5Q0EsRUFBdUIsY0FBaUIsY0FDeENBLEVBQXVCLGlCQUFvQixnQkFDM0NBLEVBQXVCLG1CQUFzQixrQkFDN0NBLEVBQXVCLG1CQUFzQixtQkFDN0NBLEVBQXVCLGVBQWtCLGVBQ3pDQSxFQUF1QixpQkFBb0IsaUJBQzNDQSxFQUF1QixnQkFBbUIsZ0JBQzFDQSxFQUF1QixlQUFrQixlQUN6Q0EsRUFBdUIsaUJBQW9CLGlCQUMzQ0EsRUFBdUIsMEJBQTZCLHlCQUNwREEsRUFBdUIsbUJBQXNCLGtCQUM3Q0EsRUFBdUIscUJBQXdCO0FBQ25ELEdBQUdBLE1BQTJCQSxJQUF5QixDQUFDLEVBQUU7QUFr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RVNQT05TRV9DT05URU5UX0xFTkdUSF9VTkNPTVBSRVNTRUQiLCAidXJsTWF0Y2hlcyIsICJoclRpbWVUb05hbm9zZWNvbmRzIiwgInRpbWVJbnB1dFRvSHJUaW1lIiwgIlBlcmZvcm1hbmNlVGltaW5nTmFtZXMiLCAidXJsTm9ybWFsaXppbmdBbmNob3IiLCAiZ2V0VXJsTm9ybWFsaXppbmdBbmNob3IiLCAiaGFzS2V5IiwgIm9iaiIsICJrZXkiLCAiYWRkU3Bhbk5ldHdvcmtFdmVudCIsICJzcGFuIiwgInBlcmZvcm1hbmNlTmFtZSIsICJlbnRyaWVzIiwgInJlZlBlcmZOYW1lIiwgInBlcmZUaW1lIiwgInJlZlRpbWUiLCAicmVmTmFtZSIsICJhZGRTcGFuTmV0d29ya0V2ZW50cyIsICJyZXNvdXJjZSIsICJpZ25vcmVOZXR3b3JrRXZlbnRzIiwgImVuY29kZWRMZW5ndGgiLCAiZGVjb2RlZExlbmd0aCIsICJzb3J0UmVzb3VyY2VzIiwgImZpbHRlcmVkUmVzb3VyY2VzIiwgImEiLCAiYiIsICJ2YWx1ZUEiLCAidmFsdWVCIiwgImdldE9yaWdpbiIsICJnZXRSZXNvdXJjZSIsICJzcGFuVXJsIiwgInN0YXJ0VGltZUhSIiwgImVuZFRpbWVIUiIsICJyZXNvdXJjZXMiLCAiaWdub3JlZFJlc291cmNlcyIsICJpbml0aWF0b3JUeXBlIiwgInBhcnNlZFNwYW5VcmwiLCAicGFyc2VVcmwiLCAiZmlsdGVyUmVzb3VyY2VzRm9yU3BhbiIsICJzb3J0ZWQiLCAiY29yc1ByZUZsaWdodFJlcXVlc3QiLCAibWFpblJlcXVlc3QiLCAiZmluZE1haW5SZXF1ZXN0IiwgInJlc3BvbnNlRW5kIiwgImZldGNoU3RhcnQiLCAiY29yc1ByZUZsaWdodFJlcXVlc3RFbmRUaW1lIiwgInNwYW5FbmRUaW1lSFIiLCAic3BhbkVuZFRpbWUiLCAibWluVGltZSIsICJiZXN0R2FwIiwgImxlbmd0aCIsICJpIiwgInJlc291cmNlU3RhcnRUaW1lIiwgInJlc291cmNlRW5kVGltZSIsICJjdXJyZW50R2FwIiwgInN0YXJ0VGltZSIsICJlbmRUaW1lIiwgInVybCIsICJlbGVtZW50IiwgInNob3VsZFByb3BhZ2F0ZVRyYWNlSGVhZGVycyIsICJwcm9wYWdhdGVUcmFjZUhlYWRlckNvcnNVcmxzIiwgInByb3BhZ2F0ZVRyYWNlSGVhZGVyVXJscyIsICJwcm9wYWdhdGVUcmFjZUhlYWRlclVybCJdCn0K