UNPKG

react-carbon-checkout

Version:
283 lines (262 loc) 34.1 kB
module.exports = function (e) { var r = {}; function t(n) { if (r[n]) return r[n].exports; var o = r[n] = { i: n, l: !1, exports: {} }; return e[n].call(o.exports, o, o.exports, t), o.l = !0, o.exports; } return t.m = e, t.c = r, t.d = function (e, r, n) { t.o(e, r) || Object.defineProperty(e, r, { enumerable: !0, get: n }); }, t.r = function (e) { "undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(e, Symbol.toStringTag, { value: "Module" }), Object.defineProperty(e, "__esModule", { value: !0 }); }, t.t = function (e, r) { if (1 & r && (e = t(e)), 8 & r) return e; if (4 & r && "object" == typeof e && e && e.__esModule) return e; var n = Object.create(null); if (t.r(n), Object.defineProperty(n, "default", { enumerable: !0, value: e }), 2 & r && "string" != typeof e) for (var o in e) t.d(n, o, function (r) { return e[r]; }.bind(null, o)); return n; }, t.n = function (e) { var r = e && e.__esModule ? function () { return e.default; } : function () { return e; }; return t.d(r, "a", r), r; }, t.o = function (e, r) { return Object.prototype.hasOwnProperty.call(e, r); }, t.p = "", t(t.s = 3); }([function (e, r, t) { e.exports = t(4)(); }, function (e, r) { e.exports = require("react"); }, function (e, r, t) { "use strict"; Object.defineProperty(r, "__esModule", { value: !0 }); var n, o = function () { function e(e, r) { for (var t = 0; t < r.length; t++) { var n = r[t]; n.enumerable = n.enumerable || !1, n.configurable = !0, "value" in n && (n.writable = !0), Object.defineProperty(e, n.key, n); } } return function (r, t, n) { return t && e(r.prototype, t), n && e(r, n), r; }; }(), i = (n = t(1)) && n.__esModule ? n : { default: n }, c = t(0), u = function (e) { function r(e) { !function (e, r) { if (!(e instanceof r)) throw new TypeError("Cannot call a class as a function"); }(this, r); var t = function (e, r) { if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !r || "object" != typeof r && "function" != typeof r ? e : r; }(this, (r.__proto__ || Object.getPrototypeOf(r)).call(this, e)); return t.scriptLoaderId = "id" + t.constructor.idCount++, t; } return function (e, r) { if ("function" != typeof r && null !== r) throw new TypeError("Super expression must either be null or a function, not " + typeof r); e.prototype = Object.create(r && r.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } }), r && (Object.setPrototypeOf ? Object.setPrototypeOf(e, r) : e.__proto__ = r); }(r, e), o(r, [{ key: "componentDidMount", value: function () { var e = this.props, r = e.onError, t = e.onLoad, n = e.url; this.constructor.loadedScripts[n] ? t() : this.constructor.erroredScripts[n] ? r() : this.constructor.scriptObservers[n] ? this.constructor.scriptObservers[n][this.scriptLoaderId] = this.props : (this.constructor.scriptObservers[n] = function (e, r, t) { return r in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }({}, this.scriptLoaderId, this.props), this.createScript()); } }, { key: "componentWillUnmount", value: function () { var e = this.props.url, r = this.constructor.scriptObservers[e]; r && delete r[this.scriptLoaderId]; } }, { key: "createScript", value: function () { var e = this, r = this.props, t = r.onCreate, n = r.url, o = r.attributes, i = document.createElement("script"); t(), o && Object.keys(o).forEach(function (e) { return i.setAttribute(e, o[e]); }), i.src = n, i.hasAttribute("async") || (i.async = 1); var c = function (r) { var t = e.constructor.scriptObservers[n]; Object.keys(t).forEach(function (o) { r(t[o]) && delete e.constructor.scriptObservers[n][e.scriptLoaderId]; }); }; i.onload = function () { e.constructor.loadedScripts[n] = !0, c(function (e) { return e.onLoad(), !0; }); }, i.onerror = function () { e.constructor.erroredScripts[n] = !0, c(function (e) { return e.onError(), !0; }); }, document.body.appendChild(i); } }, { key: "render", value: function () { return null; } }]), r; }(i.default.Component); u.propTypes = { attributes: c.PropTypes.object, onCreate: c.PropTypes.func, onError: c.PropTypes.func.isRequired, onLoad: c.PropTypes.func.isRequired, url: c.PropTypes.string.isRequired }, u.defaultProps = { attributes: {}, onCreate: function () {}, onError: function () {}, onLoad: function () {} }, u.scriptObservers = {}, u.loadedScripts = {}, u.erroredScripts = {}, u.idCount = 0, r.default = u, e.exports = r.default; }, function (e, r, t) { "use strict"; t.r(r); var n = t(1), o = t.n(n), i = t(2), c = t.n(i), u = t(0), a = t.n(u), s = function (e) { var r = e.className, t = e.clientName, n = e.environment, i = e.currency, u = e.total, a = e.apiKey, s = e.c12Id, p = e.paymentGateway, f = e.onEvent, l = e.onError, d = e.onLoad; return o.a.createElement("div", { id: "carbon_fiber_checkout", className: r }, o.a.createElement(c.a, { url: "https://d2xxy1rwbjzckp.cloudfront.net/carbonCheckout.js.min.gz", onError: function () { console.error("There was an issue loading the carbon fiber checkout script"); }, onLoad: function () { window.CarbonCheckout && (window.CF = window.CarbonCheckout, window.CF.default.carbonCheckout.render({ clientName: t, environment: n, currency: i, total: u, apiKey: a, c12Id: s, paymentGateway: p, onEvent: f, onError: l, targetContainerId: "carbon_fiber_checkout" }), d && d()); } })); }; s.propTypes = { apiKey: a.a.string.isRequired, environment: a.a.oneOf(["sandbox", "production"]).isRequired, clientName: a.a.string.isRequired, currency: a.a.string.isRequired, total: a.a.string.isRequired, paymentGateway: a.a.bool, c12Id: a.a.string.isRequired, onEvent: a.a.func, onError: a.a.func, onLoad: a.a.func, className: a.a.string }, r.default = s; }, function (e, r, t) { "use strict"; var n = t(5); function o() {} function i() {} i.resetWarningCache = o, e.exports = function () { function e(e, r, t, o, i, c) { if (c !== n) { var u = new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types"); throw u.name = "Invariant Violation", u; } } function r() { return e; } e.isRequired = e; var t = { array: e, bool: e, func: e, number: e, object: e, string: e, symbol: e, any: e, arrayOf: r, element: e, elementType: e, instanceOf: r, node: e, objectOf: r, oneOf: r, oneOfType: r, shape: r, exact: r, checkPropTypes: i, resetWarningCache: o }; return t.PropTypes = t, t; }; }, function (e, r, t) { "use strict"; e.exports = "SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"; }]); //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL2J1aWxkL2luZGV4LmpzIl0sIm5hbWVzIjpbIm1vZHVsZSIsImV4cG9ydHMiLCJlIiwiciIsInQiLCJuIiwibyIsImkiLCJsIiwiY2FsbCIsIm0iLCJjIiwiZCIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZW51bWVyYWJsZSIsImdldCIsIlN5bWJvbCIsInRvU3RyaW5nVGFnIiwidmFsdWUiLCJfX2VzTW9kdWxlIiwiY3JlYXRlIiwiYmluZCIsImRlZmF1bHQiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsInAiLCJzIiwicmVxdWlyZSIsImxlbmd0aCIsImNvbmZpZ3VyYWJsZSIsIndyaXRhYmxlIiwia2V5IiwidSIsIlR5cGVFcnJvciIsIlJlZmVyZW5jZUVycm9yIiwiX19wcm90b19fIiwiZ2V0UHJvdG90eXBlT2YiLCJzY3JpcHRMb2FkZXJJZCIsImNvbnN0cnVjdG9yIiwiaWRDb3VudCIsInNldFByb3RvdHlwZU9mIiwicHJvcHMiLCJvbkVycm9yIiwib25Mb2FkIiwidXJsIiwibG9hZGVkU2NyaXB0cyIsImVycm9yZWRTY3JpcHRzIiwic2NyaXB0T2JzZXJ2ZXJzIiwiY3JlYXRlU2NyaXB0Iiwib25DcmVhdGUiLCJhdHRyaWJ1dGVzIiwiZG9jdW1lbnQiLCJjcmVhdGVFbGVtZW50Iiwia2V5cyIsImZvckVhY2giLCJzZXRBdHRyaWJ1dGUiLCJzcmMiLCJoYXNBdHRyaWJ1dGUiLCJhc3luYyIsIm9ubG9hZCIsIm9uZXJyb3IiLCJib2R5IiwiYXBwZW5kQ2hpbGQiLCJDb21wb25lbnQiLCJwcm9wVHlwZXMiLCJQcm9wVHlwZXMiLCJvYmplY3QiLCJmdW5jIiwiaXNSZXF1aXJlZCIsInN0cmluZyIsImRlZmF1bHRQcm9wcyIsImEiLCJjbGFzc05hbWUiLCJjbGllbnROYW1lIiwiZW52aXJvbm1lbnQiLCJjdXJyZW5jeSIsInRvdGFsIiwiYXBpS2V5IiwiYzEySWQiLCJwYXltZW50R2F0ZXdheSIsImYiLCJvbkV2ZW50IiwiaWQiLCJjb25zb2xlIiwiZXJyb3IiLCJ3aW5kb3ciLCJDYXJib25DaGVja291dCIsIkNGIiwiY2FyYm9uQ2hlY2tvdXQiLCJyZW5kZXIiLCJ0YXJnZXRDb250YWluZXJJZCIsIm9uZU9mIiwiYm9vbCIsInJlc2V0V2FybmluZ0NhY2hlIiwiRXJyb3IiLCJuYW1lIiwiYXJyYXkiLCJudW1iZXIiLCJzeW1ib2wiLCJhbnkiLCJhcnJheU9mIiwiZWxlbWVudCIsImVsZW1lbnRUeXBlIiwiaW5zdGFuY2VPZiIsIm5vZGUiLCJvYmplY3RPZiIsIm9uZU9mVHlwZSIsInNoYXBlIiwiZXhhY3QiLCJjaGVja1Byb3BUeXBlcyJdLCJtYXBwaW5ncyI6IkFBQUFBLE1BQU0sQ0FBQ0MsT0FBUCxHQUFlLFVBQVNDLENBQVQsRUFBVztBQUFDLE1BQUlDLENBQUMsR0FBQyxFQUFOOztBQUFTLFdBQVNDLENBQVQsQ0FBV0MsQ0FBWCxFQUFhO0FBQUMsUUFBR0YsQ0FBQyxDQUFDRSxDQUFELENBQUosRUFBUSxPQUFPRixDQUFDLENBQUNFLENBQUQsQ0FBRCxDQUFLSixPQUFaO0FBQW9CLFFBQUlLLENBQUMsR0FBQ0gsQ0FBQyxDQUFDRSxDQUFELENBQUQsR0FBSztBQUFDRSxNQUFBQSxDQUFDLEVBQUNGLENBQUg7QUFBS0csTUFBQUEsQ0FBQyxFQUFDLENBQUMsQ0FBUjtBQUFVUCxNQUFBQSxPQUFPLEVBQUM7QUFBbEIsS0FBWDtBQUFpQyxXQUFPQyxDQUFDLENBQUNHLENBQUQsQ0FBRCxDQUFLSSxJQUFMLENBQVVILENBQUMsQ0FBQ0wsT0FBWixFQUFvQkssQ0FBcEIsRUFBc0JBLENBQUMsQ0FBQ0wsT0FBeEIsRUFBZ0NHLENBQWhDLEdBQW1DRSxDQUFDLENBQUNFLENBQUYsR0FBSSxDQUFDLENBQXhDLEVBQTBDRixDQUFDLENBQUNMLE9BQW5EO0FBQTJEOztBQUFBLFNBQU9HLENBQUMsQ0FBQ00sQ0FBRixHQUFJUixDQUFKLEVBQU1FLENBQUMsQ0FBQ08sQ0FBRixHQUFJUixDQUFWLEVBQVlDLENBQUMsQ0FBQ1EsQ0FBRixHQUFJ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OEQsU0FBRixHQUFZOUQsQ0FBWixFQUFjQSxDQUFyQjtBQUF1QixHQUFwa0I7QUFBcWtCLENBQXhqSixFQUF5akosVUFBU0YsQ0FBVCxFQUFXQyxDQUFYLEVBQWFDLENBQWIsRUFBZTtBQUFDOztBQUFhRixFQUFBQSxDQUFDLENBQUNELE9BQUYsR0FBVSw4Q0FBVjtBQUF5RCxDQUEvb0osQ0FBcjVCLENBQWYiLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cz1mdW5jdGlvbihlKXt2YXIgcj17fTtmdW5jdGlvbiB0KG4pe2lmKHJbbl0pcmV0dXJuIHJbbl0uZXhwb3J0czt2YXIgbz1yW25dPXtpOm4sbDohMSxleHBvcnRzOnt9fTtyZXR1cm4gZVtuXS5jYWxsKG8uZXhwb3J0cyxvLG8uZXhwb3J0cyx0KSxvLmw9ITAsby5leHBvcnRzfXJldHVybiB0Lm09ZSx0LmM9cix0LmQ9ZnVuY3Rpb24oZSxyLG4pe3QubyhlLHIpfHxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxyLHtlbnVtZXJhYmxlOiEwLGdldDpufSl9LHQucj1mdW5jdGlvbihlKXtcInVuZGVmaW5lZFwiIT10eXBlb2YgU3ltYm9sJiZTeW1ib2wudG9TdHJpbmdUYWcmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFN5bWJvbC50b1N0cmluZ1RhZyx7dmFsdWU6XCJNb2R1bGVcIn0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pfSx0LnQ9ZnVuY3Rpb24oZSxyKXtpZigxJnImJihlPXQoZSkpLDgmcilyZXR1cm4gZTtpZig0JnImJlwib2JqZWN0XCI9PXR5cGVvZiBlJiZlJiZlLl9fZXNNb2R1bGUpcmV0dXJuIGU7dmFyIG49T2JqZWN0LmNyZWF0ZShudWxsKTtpZih0LnIobiksT2JqZWN0LmRlZmluZVByb3BlcnR5KG4sXCJkZWZhdWx0XCIse2VudW1lcmFibGU6ITAsdmFsdWU6ZX0pLDImciYmXCJzdHJpbmdcIiE9dHlwZW9mIGUpZm9yKHZhciBvIGluIGUpdC5kKG4sbyxmdW5jdGlvbihyKXtyZXR1cm4gZVtyXX0uYmluZChudWxsLG8pKTtyZXR1cm4gbn0sdC5uPWZ1bmN0aW9uKGUpe3ZhciByPWUmJmUuX19lc01vZHVsZT9mdW5jdGlvbigpe3JldHVybiBlLmRlZmF1bHR9OmZ1bmN0aW9uKCl7cmV0dXJuIGV9O3JldHVybiB0LmQocixcImFcIixyKSxyfSx0Lm89ZnVuY3Rpb24oZSxyKXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUscil9LHQucD1cIlwiLHQodC5zPTMpfShbZnVuY3Rpb24oZSxyLHQpe2UuZXhwb3J0cz10KDQpKCl9LGZ1bmN0aW9uKGUscil7ZS5leHBvcnRzPXJlcXVpcmUoXCJyZWFjdFwiKX0sZnVuY3Rpb24oZSxyLHQpe1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pO3ZhciBuLG89ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKGUscil7Zm9yKHZhciB0PTA7dDxyLmxlbmd0aDt0Kyspe3ZhciBuPXJbdF07bi5lbnVtZXJhYmxlPW4uZW51bWVyYWJsZXx8ITEsbi5jb25maWd1cmFibGU9ITAsXCJ2YWx1ZVwiaW4gbiYmKG4ud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLG4ua2V5LG4pfX1yZXR1cm4gZnVuY3Rpb24ocix0LG4pe3JldHVybiB0JiZlKHIucHJvdG90eXBlLHQpLG4mJmUocixuKSxyfX0oKSxpPShuPXQoMSkpJiZuLl9fZXNNb2R1bGU/bjp7ZGVmYXVsdDpufSxjPXQoMCksdT1mdW5jdGlvbihlKXtmdW5jdGlvbiByKGUpeyFmdW5jdGlvbihlLHIpe2lmKCEoZSBpbnN0YW5jZW9mIHIpKXRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb25cIil9KHRoaXMscik7dmFyIHQ9ZnVuY3Rpb24oZSxyKXtpZighZSl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoXCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWRcIik7cmV0dXJuIXJ8fFwib2JqZWN0XCIhPXR5cGVvZiByJiZcImZ1bmN0aW9uXCIhPXR5cGVvZiByP2U6cn0odGhpcywoci5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihyKSkuY2FsbCh0aGlzLGUpKTtyZXR1cm4gdC5zY3JpcHRMb2FkZXJJZD1cImlkXCIrdC5jb25zdHJ1Y3Rvci5pZENvdW50KyssdH1yZXR1cm4gZnVuY3Rpb24oZSxyKXtpZihcImZ1bmN0aW9uXCIhPXR5cGVvZiByJiZudWxsIT09cil0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24sIG5vdCBcIit0eXBlb2Ygcik7ZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShyJiZyLnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOmUsZW51bWVyYWJsZTohMSx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksciYmKE9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YoZSxyKTplLl9fcHJvdG9fXz1yKX0ocixlKSxvKHIsW3trZXk6XCJjb21wb25lbnREaWRNb3VudFwiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5wcm9wcyxyPWUub25FcnJvcix0PWUub25Mb2FkLG49ZS51cmw7dGhpcy5jb25zdHJ1Y3Rvci5sb2FkZWRTY3JpcHRzW25dP3QoKTp0aGlzLmNvbnN0cnVjdG9yLmVycm9yZWRTY3JpcHRzW25dP3IoKTp0aGlzLmNvbnN0cnVjdG9yLnNjcmlwdE9ic2VydmVyc1tuXT90aGlzLmNvbnN0cnVjdG9yLnNjcmlwdE9ic2VydmVyc1tuXVt0aGlzLnNjcmlwdExvYWRlcklkXT10aGlzLnByb3BzOih0aGlzLmNvbnN0cnVjdG9yLnNjcmlwdE9ic2VydmVyc1tuXT1mdW5jdGlvbihlLHIsdCl7cmV0dXJuIHIgaW4gZT9PYmplY3QuZGVmaW5lUHJvcGVydHkoZSxyLHt2YWx1ZTp0LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6ZVtyXT10LGV9KHt9LHRoaXMuc2NyaXB0TG9hZGVySWQsdGhpcy5wcm9wcyksdGhpcy5jcmVhdGVTY3JpcHQoKSl9fSx7a2V5OlwiY29tcG9uZW50V2lsbFVubW91bnRcIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBlPXRoaXMucHJvcHMudXJsLHI9dGhpcy5jb25zdHJ1Y3Rvci5zY3JpcHRPYnNlcnZlcnNbZV07ciYmZGVsZXRlIHJbdGhpcy5zY3JpcHRMb2FkZXJJZF19fSx7a2V5OlwiY3JlYXRlU2NyaXB0XCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLHI9dGhpcy5wcm9wcyx0PXIub25DcmVhdGUsbj1yLnVybCxvPXIuYXR0cmlidXRlcyxpPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJzY3JpcHRcIik7dCgpLG8mJk9iamVjdC5rZXlzKG8pLmZvckVhY2goKGZ1bmN0aW9uKGUpe3JldHVybiBpLnNldEF0dHJpYnV0ZShlLG9bZV0pfSkpLGkuc3JjPW4saS5oYXNBdHRyaWJ1dGUoXCJhc3luY1wiKXx8KGkuYXN5bmM9MSk7dmFyIGM9ZnVuY3Rpb24ocil7dmFyIHQ9ZS5jb25zdHJ1Y3Rvci5zY3JpcHRPYnNlcnZlcnNbbl07T2JqZWN0LmtleXModCkuZm9yRWFjaCgoZnVuY3Rpb24obyl7cih0W29dKSYmZGVsZXRlIGUuY29uc3RydWN0b3Iuc2NyaXB0T2JzZXJ2ZXJzW25dW2Uuc2NyaXB0TG9hZGVySWRdfSkpfTtpLm9ubG9hZD1mdW5jdGlvbigpe2UuY29uc3RydWN0b3IubG9hZGVkU2NyaXB0c1tuXT0hMCxjKChmdW5jdGlvbihlKXtyZXR1cm4gZS5vbkxvYWQoKSwhMH0pKX0saS5vbmVycm9yPWZ1bmN0aW9uKCl7ZS5jb25zdHJ1Y3Rvci5lcnJvcmVkU2NyaXB0c1tuXT0hMCxjKChmdW5jdGlvbihlKXtyZXR1cm4gZS5vbkVycm9yKCksITB9KSl9LGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaSl9fSx7a2V5OlwicmVuZGVyXCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbH19XSkscn0oaS5kZWZhdWx0LkNvbXBvbmVudCk7dS5wcm9wVHlwZXM9e2F0dHJpYnV0ZXM6Yy5Qcm9wVHlwZXMub2JqZWN0LG9uQ3JlYXRlOmMuUHJvcFR5cGVzLmZ1bmMsb25FcnJvcjpjLlByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsb25Mb2FkOmMuUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCx1cmw6Yy5Qcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWR9LHUuZGVmYXVsdFByb3BzPXthdHRyaWJ1dGVzOnt9LG9uQ3JlYXRlOmZ1bmN0aW9uKCl7fSxvbkVycm9yOmZ1bmN0aW9uKCl7fSxvbkxvYWQ6ZnVuY3Rpb24oKXt9fSx1LnNjcmlwdE9ic2VydmVycz17fSx1LmxvYWRlZFNjcmlwdHM9e30sdS5lcnJvcmVkU2NyaXB0cz17fSx1LmlkQ291bnQ9MCxyLmRlZmF1bHQ9dSxlLmV4cG9ydHM9ci5kZWZhdWx0fSxmdW5jdGlvbihlLHIsdCl7XCJ1c2Ugc3RyaWN0XCI7dC5yKHIpO3ZhciBuPXQoMSksbz10Lm4obiksaT10KDIpLGM9dC5uKGkpLHU9dCgwKSxhPXQubih1KSxzPWZ1bmN0aW9uKGUpe3ZhciByPWUuY2xhc3NOYW1lLHQ9ZS5jbGllbnROYW1lLG49ZS5lbnZpcm9ubWVudCxpPWUuY3VycmVuY3ksdT1lLnRvdGFsLGE9ZS5hcGlLZXkscz1lLmMxMklkLHA9ZS5wYXltZW50R2F0ZXdheSxmPWUub25FdmVudCxsPWUub25FcnJvcixkPWUub25Mb2FkO3JldHVybiBvLmEuY3JlYXRlRWxlbWVudChcImRpdlwiLHtpZDpcImNhcmJvbl9maWJlcl9jaGVja291dFwiLGNsYXNzTmFtZTpyfSxvLmEuY3JlYXRlRWxlbWVudChjLmEse3VybDpcImh0dHBzOi8vZDJ4eHkxcndianpja3AuY2xvdWRmcm9udC5uZXQvY2FyYm9uQ2hlY2tvdXQuanMubWluLmd6XCIsb25FcnJvcjpmdW5jdGlvbigpe2NvbnNvbGUuZXJyb3IoXCJUaGVyZSB3YXMgYW4gaXNzdWUgbG9hZGluZyB0aGUgY2FyYm9uIGZpYmVyIGNoZWNrb3V0IHNjcmlwdFwiKX0sb25Mb2FkOmZ1bmN0aW9uKCl7d2luZG93LkNhcmJvbkNoZWNrb3V0JiYod2luZG93LkNGPXdpbmRvdy5DYXJib25DaGVja291dCx3aW5kb3cuQ0YuZGVmYXVsdC5jYXJib25DaGVja291dC5yZW5kZXIoe2NsaWVudE5hbWU6dCxlbnZpcm9ubWVudDpuLGN1cnJlbmN5OmksdG90YWw6dSxhcGlLZXk6YSxjMTJJZDpzLHBheW1lbnRHYXRld2F5OnAsb25FdmVudDpmLG9uRXJyb3I6bCx0YXJnZXRDb250YWluZXJJZDpcImNhcmJvbl9maWJlcl9jaGVja291dFwifSksZCYmZCgpKX19KSl9O3MucHJvcFR5cGVzPXthcGlLZXk6YS5hLnN0cmluZy5pc1JlcXVpcmVkLGVudmlyb25tZW50OmEuYS5vbmVPZihbXCJzYW5kYm94XCIsXCJwcm9kdWN0aW9uXCJdKS5pc1JlcXVpcmVkLGNsaWVudE5hbWU6YS5hLnN0cmluZy5pc1JlcXVpcmVkLGN1cnJlbmN5OmEuYS5zdHJpbmcuaXNSZXF1aXJlZCx0b3RhbDphLmEuc3RyaW5nLmlzUmVxdWlyZWQscGF5bWVudEdhdGV3YXk6YS5hLmJvb2wsYzEySWQ6YS5hLnN0cmluZy5pc1JlcXVpcmVkLG9uRXZlbnQ6YS5hLmZ1bmMsb25FcnJvcjphLmEuZnVuYyxvbkxvYWQ6YS5hLmZ1bmMsY2xhc3NOYW1lOmEuYS5zdHJpbmd9LHIuZGVmYXVsdD1zfSxmdW5jdGlvbihlLHIsdCl7XCJ1c2Ugc3RyaWN0XCI7dmFyIG49dCg1KTtmdW5jdGlvbiBvKCl7fWZ1bmN0aW9uIGkoKXt9aS5yZXNldFdhcm5pbmdDYWNoZT1vLGUuZXhwb3J0cz1mdW5jdGlvbigpe2Z1bmN0aW9uIGUoZSxyLHQsbyxpLGMpe2lmKGMhPT1uKXt2YXIgdT1uZXcgRXJyb3IoXCJDYWxsaW5nIFByb3BUeXBlcyB2YWxpZGF0b3JzIGRpcmVjdGx5IGlzIG5vdCBzdXBwb3J0ZWQgYnkgdGhlIGBwcm9wLXR5cGVzYCBwYWNrYWdlLiBVc2UgUHJvcFR5cGVzLmNoZWNrUHJvcFR5cGVzKCkgdG8gY2FsbCB0aGVtLiBSZWFkIG1vcmUgYXQgaHR0cDovL2ZiLm1lL3VzZS1jaGVjay1wcm9wLXR5cGVzXCIpO3Rocm93IHUubmFtZT1cIkludmFyaWFudCBWaW9sYXRpb25cIix1fX1mdW5jdGlvbiByKCl7cmV0dXJuIGV9ZS5pc1JlcXVpcmVkPWU7dmFyIHQ9e2FycmF5OmUsYm9vbDplLGZ1bmM6ZSxudW1iZXI6ZSxvYmplY3Q6ZSxzdHJpbmc6ZSxzeW1ib2w6ZSxhbnk6ZSxhcnJheU9mOnIsZWxlbWVudDplLGVsZW1lbnRUeXBlOmUsaW5zdGFuY2VPZjpyLG5vZGU6ZSxvYmplY3RPZjpyLG9uZU9mOnIsb25lT2ZUeXBlOnIsc2hhcGU6cixleGFjdDpyLGNoZWNrUHJvcFR5cGVzOmkscmVzZXRXYXJuaW5nQ2FjaGU6b307cmV0dXJuIHQuUHJvcFR5cGVzPXQsdH19LGZ1bmN0aW9uKGUscix0KXtcInVzZSBzdHJpY3RcIjtlLmV4cG9ydHM9XCJTRUNSRVRfRE9fTk9UX1BBU1NfVEhJU19PUl9ZT1VfV0lMTF9CRV9GSVJFRFwifV0pOyJdfQ==