UNPKG

react-live-chat-loader

Version:

Implement live chat in your react app without taking a performance hit.

234 lines (233 loc) 44.2 kB
"use strict"; function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _react = _interopRequireWildcard(require("react")); var _useChat3 = _interopRequireDefault(require("../../hooks/useChat")); var _useWindowHeight = _interopRequireDefault(require("../../hooks/useWindowHeight")); var _types = require("../../types"); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); } function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; } function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); } function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } } function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; } function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } } function _arrayWithHoles(r) { if (Array.isArray(r)) return r; } var styles = { wrapper: { borderRadius: '55px', height: '60px', width: '60px', bottom: '40px', boxShadow: 'rgba(0, 0, 0, 0.1) 0px 4px 7px', position: 'fixed', right: '40px', top: 'auto', borderStyle: 'none', transition: 'box-shadow 250ms ease 0s, opacity 0.4s ease 0s, transform 0.2s ease-in-out 0s' }, button: { appearance: 'none', alignItems: 'center', bottom: '0px', display: 'block', justifyContent: 'center', position: 'relative', userSelect: 'none', zIndex: 999, color: 'white', cursor: 'pointer', minWidth: '60px', WebkitTapHighlightColor: 'transparent', height: '60px', lineHeight: '60px', borderRadius: '120px', margin: '0px', outline: 'none', padding: '0px', borderStyle: 'none', transition: 'background-color 200ms linear 0s, transform 200ms linear 0s' }, icon: { alignItems: 'center', color: 'white', cursor: 'pointer', display: 'flex', height: '100%', WebkitBoxPack: 'center', justifyContent: 'center', pointerEvents: 'none', position: 'absolute', textIndent: '-99999px', top: '0px', width: '60px', willChange: 'opacity, transform', left: 'auto', right: '0px', opacity: '1 !important', transition: 'opacity 80ms linear 0s, transform 160ms linear 0s' }, close: { WebkitBoxAlign: 'center', alignItems: 'center', color: 'white', cursor: 'pointer', display: 'flex', height: '100%', WebkitBoxPack: 'center', justifyContent: 'center', pointerEvents: 'none', position: 'absolute', textIndent: '-99999px', top: '0px', width: '60px', willChange: 'opacity, transform', left: 'auto', right: '0px', transition: 'opacity 80ms linear 0s, transform 160ms linear 0s' } }; var getIcon = function getIcon(icon) { switch (icon) { case 'message': return /*#__PURE__*/_react.default.createElement("svg", { width: "24", height: "22", xmlns: "http://www.w3.org/2000/svg" }, /*#__PURE__*/_react.default.createElement("path", { d: "M20.347 20.871l-.003-.05c0 .017.001.034.003.05zm-.243-4.278a2 2 0 0 1 .513-1.455c1.11-1.226 1.383-2.212 1.383-4.74C22 5.782 18.046 2 13.125 2h-2.25C5.954 2 2 5.78 2 10.399c0 4.675 4.01 8.626 8.875 8.626h2.25c.834 0 1.606-.207 3.212-.798a2 2 0 0 1 1.575.083l2.355 1.161-.163-2.878zM10.875 0h2.25C19.13 0 24 4.656 24 10.399c0 2.6-.25 4.257-1.9 6.08l.243 4.279c.072.845-.807 1.471-1.633 1.162l-3.682-1.816c-1.212.446-2.527.921-3.903.921h-2.25C4.869 21.025 0 16.142 0 10.4 0 4.656 4.869 0 10.875 0z", fill: "#FFF" })); case 'antenna': return /*#__PURE__*/_react.default.createElement("svg", { width: "28", height: "26", xmlns: "http://www.w3.org/2000/svg" }, /*#__PURE__*/_react.default.createElement("path", { d: "M14.002 12a3.01 3.01 0 0 0-3.015 3c0 1.654 1.353 3 3.015 3a3.01 3.01 0 0 0 3.014-3c0-1.654-1.353-3-3.014-3m-1.005 7.9c-2.29-.465-4.019-2.485-4.019-4.9 0-2.757 2.254-5 5.024-5s5.023 2.243 5.023 5c0 2.415-1.729 4.435-4.019 4.9V25c0 .552-.45 1-1.004 1a1.003 1.003 0 0 1-1.005-1v-5.1zm9.36-7.345c-.393 0-.768-.232-.928-.617A8.019 8.019 0 0 0 14.001 7a8.018 8.018 0 0 0-7.426 4.936c-.213.51-.8.753-1.314.54a1 1 0 0 1-.543-1.307A10.024 10.024 0 0 1 14 5c4.078 0 7.722 2.422 9.284 6.17a.998.998 0 0 1-.927 1.385M1.005 10.637a1.005 1.005 0 0 1-.928-1.384C2.422 3.632 7.887 0 14.001 0c6.111 0 11.576 3.629 13.922 9.246a.998.998 0 0 1-.542 1.307 1.006 1.006 0 0 1-1.313-.54C24.033 5.146 19.298 2 14.001 2 8.703 2 3.965 5.148 1.933 10.02c-.16.385-.535.617-.928.617", fill: "#FFF", fillRule: "evenodd" })); case 'search': return /*#__PURE__*/_react.default.createElement("svg", { width: "23", height: "24", xmlns: "http://www.w3.org/2000/svg" }, /*#__PURE__*/_react.default.createElement("path", { d: "M15.79 15.46C17.184 13.982 18 12.07 18 10a8 8 0 1 0-8 8c1.676 0 3.24-.544 4.578-1.488l.659-.465.554-.588zm6.41 6.326a.999.999 0 0 1-.002 1.412.999.999 0 0 1-1.412.002l-5.095-5.094C14.064 19.256 12.142 19.997 10 20c-5.515.008-10.008-4.485-10-10C.008 4.485 4.485.008 10 0c5.515-.008 10.008 4.485 10 10-.004 2.652-1.105 5-2.794 6.791l4.994 4.995zM14 9c0-1.654-1.346-3-3-3a1 1 0 0 1 0-2c2.757 0 5 2.243 5 5a1 1 0 0 1-2 0z", fill: "#FFF" })); case 'question': return /*#__PURE__*/_react.default.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", width: "52", height: "52" }, /*#__PURE__*/_react.default.createElement("path", { id: "a", d: "M27.031 32h-2.488v-2.046c0-.635.077-1.21.232-1.72.154-.513.366-.972.639-1.381.272-.41.58-.779.923-1.109.345-.328.694-.652 1.049-.97l.995-.854a6.432 6.432 0 0 0 1.475-1.568c.39-.59.585-1.329.585-2.216 0-.635-.117-1.203-.355-1.703a3.7 3.7 0 0 0-.96-1.263 4.305 4.305 0 0 0-1.401-.783A5.324 5.324 0 0 0 26 16.114c-1.28 0-2.316.375-3.11 1.124-.795.75-1.286 1.705-1.475 2.865L19 19.693c.356-1.772 1.166-3.165 2.434-4.176C22.701 14.507 24.26 14 26.107 14c.947 0 1.842.131 2.682.392.84.262 1.57.648 2.185 1.16a5.652 5.652 0 0 1 1.475 1.892c.368.75.551 1.602.551 2.556 0 .728-.083 1.364-.248 1.909a5.315 5.315 0 0 1-.693 1.467 6.276 6.276 0 0 1-1.048 1.176c-.403.351-.83.71-1.28 1.073-.498.387-.918.738-1.26 1.057a4.698 4.698 0 0 0-.836 1.006 3.847 3.847 0 0 0-.462 1.176c-.095.432-.142.955-.142 1.568V32zM26 37a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3z", fill: "#FFF", fillRule: "evenodd" })); case 'beacon': return /*#__PURE__*/_react.default.createElement("svg", { width: "30", height: "30", xmlns: "http://www.w3.org/2000/svg" }, /*#__PURE__*/_react.default.createElement("path", { d: "M26.244 21.523l-4.356-4.355a7.192 7.192 0 0 0 0-4.345l4.356-4.355a12.98 12.98 0 0 1 0 13.055zm-.4 3.215l-1.1 1.1a.557.557 0 0 1-.786 0l-4.884-4.884a7.27 7.27 0 0 0 1.885-1.886l4.885 4.885a.55.55 0 0 1 0 .785zM8.471 26.236l4.355-4.354a7.197 7.197 0 0 0 4.347 0l4.355 4.354a12.983 12.983 0 0 1-13.057 0zm-2.43-.398a.556.556 0 0 1-.786 0l-1.1-1.1a.556.556 0 0 1 0-.786l4.884-4.884a7.275 7.275 0 0 0 1.887 1.886L6.04 25.838zm-2.285-4.315a12.98 12.98 0 0 1 0-13.055l4.355 4.354a7.192 7.192 0 0 0 0 4.347l-4.355 4.354zm.399-16.27l1.1-1.1a.554.554 0 0 1 .785 0l4.886 4.884a7.27 7.27 0 0 0-1.887 1.885L4.155 6.039a.556.556 0 0 1 0-.786zm17.373-1.5l-4.355 4.355a7.229 7.229 0 0 0-4.347 0L8.471 3.754a12.99 12.99 0 0 1 13.057 0zm-1.305 11.242A5.228 5.228 0 0 1 15 20.217a5.228 5.228 0 0 1-5.224-5.222A5.228 5.228 0 0 1 15 9.773a5.23 5.23 0 0 1 5.223 5.222zm3.735-10.842a.556.556 0 0 1 .786 0l1.1 1.1a.553.553 0 0 1 0 .786l-4.884 4.883a7.302 7.302 0 0 0-1.886-1.885l4.884-4.884zm3.688 2.786c.23-.39.362-.83.362-1.293 0-.683-.266-1.325-.75-1.807l-1.098-1.1a2.555 2.555 0 0 0-3.101-.387 14.985 14.985 0 0 0-16.125.004c-.973-.548-2.284-.426-3.093.383l-1.101 1.1a2.533 2.533 0 0 0-.387 3.1 14.97 14.97 0 0 0 0 16.114 2.553 2.553 0 0 0 .387 3.099l1.1 1.1A2.549 2.549 0 0 0 5.649 28a2.55 2.55 0 0 0 1.293-.361A14.961 14.961 0 0 0 15 30.002a14.97 14.97 0 0 0 8.059-2.363c.398.234.844.36 1.292.36.655 0 1.31-.25 1.809-.747l1.099-1.1a2.531 2.531 0 0 0 .387-3.1 14.963 14.963 0 0 0 0-16.113z", fill: "#FFF", fillRule: "evenodd" })); case 'close': default: return /*#__PURE__*/_react.default.createElement("svg", { width: 14, height: 14, xmlns: "http://www.w3.org/2000/svg" }, /*#__PURE__*/_react.default.createElement("path", { d: "M13.707.293a.999.999 0 0 0-1.414 0L7 5.586 1.707.293A.999.999 0 1 0 .293 1.707L5.586 7 .293 12.293a.999.999 0 1 0 1.414 1.414L7 8.414l5.293 5.293a.997.997 0 0 0 1.414 0 .999.999 0 0 0 0-1.414L8.414 7l5.293-5.293a.999.999 0 0 0 0-1.414", fill: "#FFF", fillRule: "evenodd" })); } }; var HelpScout = function HelpScout(_ref) { var _ref$color = _ref.color, color = _ref$color === void 0 ? '#527ceb' : _ref$color, _ref$icon = _ref.icon, icon = _ref$icon === void 0 ? 'message' : _ref$icon, _ref$zIndex = _ref.zIndex, zIndex = _ref$zIndex === void 0 ? '1050' : _ref$zIndex, _ref$horizontalPositi = _ref.horizontalPosition, horizontalPosition = _ref$horizontalPositi === void 0 ? 'right' : _ref$horizontalPositi, _ref$containerClass = _ref.containerClass, containerClass = _ref$containerClass === void 0 ? _types.ClassNames.container : _ref$containerClass; var _useChat = (0, _useChat3.default)({ loadWhenIdle: true }), _useChat2 = _slicedToArray(_useChat, 2), state = _useChat2[0], loadChat = _useChat2[1]; var windowHeight = (0, _useWindowHeight.default)(); var _useState = (0, _react.useState)({ opacity: 0, visibility: 'hidden' }), _useState2 = _slicedToArray(_useState, 2), positionStyles = _useState2[0], setPositionStyles = _useState2[1]; (0, _react.useEffect)(function () { setPositionStyles({ bottom: windowHeight <= 740 ? '10px' : '40px', right: horizontalPosition === 'left' ? 'auto' : windowHeight <= 740 ? '20px' : '40px', left: horizontalPosition === 'right' ? 'auto' : windowHeight <= 740 ? '20px' : '40px' }); }, [windowHeight]); if (state === 'complete') { return null; } return /*#__PURE__*/_react.default.createElement("div", { className: containerClass, style: _objectSpread(_objectSpread(_objectSpread({}, styles.wrapper), positionStyles), {}, { zIndex: Number(zIndex) }) }, /*#__PURE__*/_react.default.createElement("button", { role: "button", "aria-label": "Load Chat", "aria-busy": "true", "aria-live": "polite", onClick: function onClick() { return loadChat({ open: true }); }, onMouseEnter: function onMouseEnter() { return loadChat({ open: false }); }, style: _objectSpread(_objectSpread({}, styles.button), {}, { backgroundColor: color }) }, /*#__PURE__*/_react.default.createElement("span", { style: _objectSpread(_objectSpread({}, styles.icon), {}, { transform: state === 'initial' ? 'rotate(0deg) scale(1)' : 'rotate(30deg) scale(0)' }) }, getIcon(icon)), /*#__PURE__*/_react.default.createElement("span", { style: _objectSpread(_objectSpread({}, styles.close), {}, { opacity: state === 'initial' ? 0 : 1, transform: state === 'initial' ? 'rotate(30deg) scale(0)' : 'rotate(0deg) scale(1)' }) }, getIcon('close')))); }; var _default = exports.default = HelpScout; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfdXNlQ2hhdDMiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX3VzZVdpbmRvd0hlaWdodCIsIl90eXBlcyIsImUiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsIldlYWtNYXAiLCJyIiwidCIsIl90eXBlb2YiLCJoYXMiLCJnZXQiLCJuIiwiX19wcm90b19fIiwiYSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwidSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImkiLCJzZXQiLCJvd25LZXlzIiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsIm8iLCJmaWx0ZXIiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsIl90b1Byb3BlcnR5S2V5IiwidmFsdWUiLCJjb25maWd1cmFibGUiLCJ3cml0YWJsZSIsIl90b1ByaW1pdGl2ZSIsIlN5bWJvbCIsInRvUHJpbWl0aXZlIiwiVHlwZUVycm9yIiwiU3RyaW5nIiwiTnVtYmVyIiwiX3NsaWNlZFRvQXJyYXkiLCJfYXJyYXlXaXRoSG9sZXMiLCJfaXRlcmFibGVUb0FycmF5TGltaXQiLCJfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkiLCJfbm9uSXRlcmFibGVSZXN0IiwiX2FycmF5TGlrZVRvQXJyYXkiLCJ0b1N0cmluZyIsInNsaWNlIiwiY29uc3RydWN0b3IiLCJuYW1lIiwiQXJyYXkiLCJmcm9tIiwidGVzdCIsImwiLCJpdGVyYXRvciIsImYiLCJuZXh0IiwiZG9uZSIsInJldHVybiIsImlzQXJyYXkiLCJzdHlsZXMiLCJ3cmFwcGVyIiwiYm9yZGVyUmFkaXVzIiwiaGVpZ2h0Iiwid2lkdGgiLCJib3R0b20iLCJib3hTaGFkb3ciLCJwb3NpdGlvbiIsInJpZ2h0IiwidG9wIiwiYm9yZGVyU3R5bGUiLCJ0cmFuc2l0aW9uIiwiYnV0dG9uIiwiYXBwZWFyYW5jZSIsImFsaWduSXRlbXMiLCJkaXNwbGF5IiwianVzdGlmeUNvbnRlbnQiLCJ1c2VyU2VsZWN0IiwiekluZGV4IiwiY29sb3IiLCJjdXJzb3IiLCJtaW5XaWR0aCIsIldlYmtpdFRhcEhpZ2hsaWdodENvbG9yIiwibGluZUhlaWdodCIsIm1hcmdpbiIsIm91dGxpbmUiLCJwYWRkaW5nIiwiaWNvbiIsIldlYmtpdEJveFBhY2siLCJwb2ludGVyRXZlbnRzIiwidGV4dEluZGVudCIsIndpbGxDaGFuZ2UiLCJsZWZ0Iiwib3BhY2l0eSIsImNsb3NlIiwiV2Via2l0Qm94QWxpZ24iLCJnZXRJY29uIiwiY3JlYXRlRWxlbWVudCIsInhtbG5zIiwiZCIsImZpbGwiLCJmaWxsUnVsZSIsImlkIiwiSGVscFNjb3V0IiwiX3JlZiIsIl9yZWYkY29sb3IiLCJfcmVmJGljb24iLCJfcmVmJHpJbmRleCIsIl9yZWYkaG9yaXpvbnRhbFBvc2l0aSIsImhvcml6b250YWxQb3NpdGlvbiIsIl9yZWYkY29udGFpbmVyQ2xhc3MiLCJjb250YWluZXJDbGFzcyIsIkNsYXNzTmFtZXMiLCJjb250YWluZXIiLCJfdXNlQ2hhdCIsInVzZUNoYXQiLCJsb2FkV2hlbklkbGUiLCJfdXNlQ2hhdDIiLCJzdGF0ZSIsImxvYWRDaGF0Iiwid2luZG93SGVpZ2h0IiwidXNlV2luZG93SGVpZ2h0IiwiX3VzZVN0YXRlIiwidXNlU3RhdGUiLCJ2aXNpYmlsaXR5IiwiX3VzZVN0YXRlMiIsInBvc2l0aW9uU3R5bGVzIiwic2V0UG9zaXRpb25TdHlsZXMiLCJ1c2VFZmZlY3QiLCJjbGFzc05hbWUiLCJzdHlsZSIsInJvbGUiLCJvbkNsaWNrIiwib3BlbiIsIm9uTW91c2VFbnRlciIsImJhY2tncm91bmRDb2xvciIsInRyYW5zZm9ybSIsIl9kZWZhdWx0IiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0hlbHBTY291dC9pbmRleC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IENTU1Byb3BlcnRpZXMsIHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcblxuaW1wb3J0IHVzZUNoYXQgZnJvbSAnLi4vLi4vaG9va3MvdXNlQ2hhdCdcbmltcG9ydCB1c2VXaW5kb3dIZWlnaHQgZnJvbSAnLi4vLi4vaG9va3MvdXNlV2luZG93SGVpZ2h0J1xuaW1wb3J0IHsgUHJvdmlkZXJQcm9wcywgQ2xhc3NOYW1lcyB9IGZyb20gJy4uLy4uL3R5cGVzJ1xuXG5jb25zdCBzdHlsZXM6IHtcbiAgd3JhcHBlcjogQ1NTUHJvcGVydGllc1xuICBidXR0b246IENTU1Byb3BlcnRpZXNcbiAgaWNvbjogQ1NTUHJvcGVydGllc1xuICBjbG9zZTogQ1NTUHJvcGVydGllc1xufSA9IHtcbiAgd3JhcHBlcjoge1xuICAgIGJvcmRlclJhZGl1czogJzU1cHgnLFxuICAgIGhlaWdodDogJzYwcHgnLFxuICAgIHdpZHRoOiAnNjBweCcsXG4gICAgYm90dG9tOiAnNDBweCcsXG4gICAgYm94U2hhZG93OiAncmdiYSgwLCAwLCAwLCAwLjEpIDBweCA0cHggN3B4JyxcbiAgICBwb3NpdGlvbjogJ2ZpeGVkJyxcbiAgICByaWdodDogJzQwcHgnLFxuICAgIHRvcDogJ2F1dG8nLFxuICAgIGJvcmRlclN0eWxlOiAnbm9uZScsXG4gICAgdHJhbnNpdGlvbjpcbiAgICAgICdib3gtc2hhZG93IDI1MG1zIGVhc2UgMHMsIG9wYWNpdHkgMC40cyBlYXNlIDBzLCB0cmFuc2Zvcm0gMC4ycyBlYXNlLWluLW91dCAwcydcbiAgfSxcbiAgYnV0dG9uOiB7XG4gICAgYXBwZWFyYW5jZTogJ25vbmUnLFxuICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICAgIGJvdHRvbTogJzBweCcsXG4gICAgZGlzcGxheTogJ2Jsb2NrJyxcbiAgICBqdXN0aWZ5Q29udGVudDogJ2NlbnRlcicsXG4gICAgcG9zaXRpb246ICdyZWxhdGl2ZScsXG4gICAgdXNlclNlbGVjdDogJ25vbmUnLFxuICAgIHpJbmRleDogOTk5LFxuICAgIGNvbG9yOiAnd2hpdGUnLFxuICAgIGN1cnNvcjogJ3BvaW50ZXInLFxuICAgIG1pbldpZHRoOiAnNjBweCcsXG4gICAgV2Via2l0VGFwSGlnaGxpZ2h0Q29sb3I6ICd0cmFuc3BhcmVudCcsXG4gICAgaGVpZ2h0OiAnNjBweCcsXG4gICAgbGluZUhlaWdodDogJzYwcHgnLFxuICAgIGJvcmRlclJhZGl1czogJzEyMHB4JyxcbiAgICBtYXJnaW46ICcwcHgnLFxuICAgIG91dGxpbmU6ICdub25lJyxcbiAgICBwYWRkaW5nOiAnMHB4JyxcbiAgICBib3JkZXJTdHlsZTogJ25vbmUnLFxuICAgIHRyYW5zaXRpb246ICdiYWNrZ3JvdW5kLWNvbG9yIDIwMG1zIGxpbmVhciAwcywgdHJhbnNmb3JtIDIwMG1zIGxpbmVhciAwcydcbiAgfSxcbiAgaWNvbjoge1xuICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICAgIGNvbG9yOiAnd2hpdGUnLFxuICAgIGN1cnNvcjogJ3BvaW50ZXInLFxuICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICBoZWlnaHQ6ICcxMDAlJyxcbiAgICBXZWJraXRCb3hQYWNrOiAnY2VudGVyJyxcbiAgICBqdXN0aWZ5Q29udGVudDogJ2NlbnRlcicsXG4gICAgcG9pbnRlckV2ZW50czogJ25vbmUnLFxuICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICAgIHRleHRJbmRlbnQ6ICctOTk5OTlweCcsXG4gICAgdG9wOiAnMHB4JyxcbiAgICB3aWR0aDogJzYwcHgnLFxuICAgIHdpbGxDaGFuZ2U6ICdvcGFjaXR5LCB0cmFuc2Zvcm0nLFxuICAgIGxlZnQ6ICdhdXRvJyxcbiAgICByaWdodDogJzBweCcsXG4gICAgb3BhY2l0eTogJzEgIWltcG9ydGFudCcsXG4gICAgdHJhbnNpdGlvbjogJ29wYWNpdHkgODBtcyBsaW5lYXIgMHMsIHRyYW5zZm9ybSAxNjBtcyBsaW5lYXIgMHMnXG4gIH0sXG4gIGNsb3NlOiB7XG4gICAgV2Via2l0Qm94QWxpZ246ICdjZW50ZXInLFxuICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICAgIGNvbG9yOiAnd2hpdGUnLFxuICAgIGN1cnNvcjogJ3BvaW50ZXInLFxuICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICBoZWlnaHQ6ICcxMDAlJyxcbiAgICBXZWJraXRCb3hQYWNrOiAnY2VudGVyJyxcbiAgICBqdXN0aWZ5Q29udGVudDogJ2NlbnRlcicsXG4gICAgcG9pbnRlckV2ZW50czogJ25vbmUnLFxuICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICAgIHRleHRJbmRlbnQ6ICctOTk5OTlweCcsXG4gICAgdG9wOiAnMHB4JyxcbiAgICB3aWR0aDogJzYwcHgnLFxuICAgIHdpbGxDaGFuZ2U6ICdvcGFjaXR5LCB0cmFuc2Zvcm0nLFxuICAgIGxlZnQ6ICdhdXRvJyxcbiAgICByaWdodDogJzBweCcsXG4gICAgdHJhbnNpdGlvbjogJ29wYWNpdHkgODBtcyBsaW5lYXIgMHMsIHRyYW5zZm9ybSAxNjBtcyBsaW5lYXIgMHMnXG4gIH1cbn1cblxudHlwZSBIZWxwU2NvdXRJY29uID1cbiAgfCAnbWVzc2FnZSdcbiAgfCAnYW50ZW5uYSdcbiAgfCAnc2VhcmNoJ1xuICB8ICdxdWVzdGlvbidcbiAgfCAnYmVhY29uJ1xuICB8ICdjbG9zZSdcblxuY29uc3QgZ2V0SWNvbiA9IChpY29uOiBIZWxwU2NvdXRJY29uKTogSlNYLkVsZW1lbnQgPT4ge1xuICBzd2l0Y2ggKGljb24pIHtcbiAgICBjYXNlICdtZXNzYWdlJzpcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxzdmcgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjIyXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICBkPVwiTTIwLjM0NyAyMC44NzFsLS4wMDMtLjA1YzAgLjAxNy4wMDEuMDM0LjAwMy4wNXptLS4yNDMtNC4yNzhhMiAyIDAgMCAxIC41MTMtMS40NTVjMS4xMS0xLjIyNiAxLjM4My0yLjIxMiAxLjM4My00Ljc0QzIyIDUuNzgyIDE4LjA0NiAyIDEzLjEyNSAyaC0yLjI1QzUuOTU0IDIgMiA1Ljc4IDIgMTAuMzk5YzAgNC42NzUgNC4wMSA4LjYyNiA4Ljg3NSA4LjYyNmgyLjI1Yy44MzQgMCAxLjYwNi0uMjA3IDMuMjEyLS43OThhMiAyIDAgMCAxIDEuNTc1LjA4M2wyLjM1NSAxLjE2MS0uMTYzLTIuODc4ek0xMC44NzUgMGgyLjI1QzE5LjEzIDAgMjQgNC42NTYgMjQgMTAuMzk5YzAgMi42LS4yNSA0LjI1Ny0xLjkgNi4wOGwuMjQzIDQuMjc5Yy4wNzIuODQ1LS44MDcgMS40NzEtMS42MzMgMS4xNjJsLTMuNjgyLTEuODE2Yy0xLjIxMi40NDYtMi41MjcuOTIxLTMuOTAzLjkyMWgtMi4yNUM0Ljg2OSAyMS4wMjUgMCAxNi4xNDIgMCAxMC40IDAgNC42NTYgNC44NjkgMCAxMC44NzUgMHpcIlxuICAgICAgICAgICAgZmlsbD1cIiNGRkZcIlxuICAgICAgICAgIC8+XG4gICAgICAgIDwvc3ZnPlxuICAgICAgKVxuICAgIGNhc2UgJ2FudGVubmEnOlxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPHN2ZyB3aWR0aD1cIjI4XCIgaGVpZ2h0PVwiMjZcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XG4gICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgIGQ9XCJNMTQuMDAyIDEyYTMuMDEgMy4wMSAwIDAgMC0zLjAxNSAzYzAgMS42NTQgMS4zNTMgMyAzLjAxNSAzYTMuMDEgMy4wMSAwIDAgMCAzLjAxNC0zYzAtMS42NTQtMS4zNTMtMy0zLjAxNC0zbS0xLjAwNSA3LjljLTIuMjktLjQ2NS00LjAxOS0yLjQ4NS00LjAxOS00LjkgMC0yLjc1NyAyLjI1NC01IDUuMDI0LTVzNS4wMjMgMi4yNDMgNS4wMjMgNWMwIDIuNDE1LTEuNzI5IDQuNDM1LTQuMDE5IDQuOVYyNWMwIC41NTItLjQ1IDEtMS4wMDQgMWExLjAwMyAxLjAwMyAwIDAgMS0xLjAwNS0xdi01LjF6bTkuMzYtNy4zNDVjLS4zOTMgMC0uNzY4LS4yMzItLjkyOC0uNjE3QTguMDE5IDguMDE5IDAgMCAwIDE0LjAwMSA3YTguMDE4IDguMDE4IDAgMCAwLTcuNDI2IDQuOTM2Yy0uMjEzLjUxLS44Ljc1My0xLjMxNC41NGExIDEgMCAwIDEtLjU0My0xLjMwN0ExMC4wMjQgMTAuMDI0IDAgMCAxIDE0IDVjNC4wNzggMCA3LjcyMiAyLjQyMiA5LjI4NCA2LjE3YS45OTguOTk4IDAgMCAxLS45MjcgMS4zODVNMS4wMDUgMTAuNjM3YTEuMDA1IDEuMDA1IDAgMCAxLS45MjgtMS4zODRDMi40MjIgMy42MzIgNy44ODcgMCAxNC4wMDEgMGM2LjExMSAwIDExLjU3NiAzLjYyOSAxMy45MjIgOS4yNDZhLjk5OC45OTggMCAwIDEtLjU0MiAxLjMwNyAxLjAwNiAxLjAwNiAwIDAgMS0xLjMxMy0uNTRDMjQuMDMzIDUuMTQ2IDE5LjI5OCAyIDE0LjAwMSAyIDguNzAzIDIgMy45NjUgNS4xNDggMS45MzMgMTAuMDJjLS4xNi4zODUtLjUzNS42MTctLjkyOC42MTdcIlxuICAgICAgICAgICAgZmlsbD1cIiNGRkZcIlxuICAgICAgICAgICAgZmlsbFJ1bGU9XCJldmVub2RkXCJcbiAgICAgICAgICAvPlxuICAgICAgICA8L3N2Zz5cbiAgICAgIClcbiAgICBjYXNlICdzZWFyY2gnOlxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPHN2ZyB3aWR0aD1cIjIzXCIgaGVpZ2h0PVwiMjRcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XG4gICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgIGQ9XCJNMTUuNzkgMTUuNDZDMTcuMTg0IDEzLjk4MiAxOCAxMi4wNyAxOCAxMGE4IDggMCAxIDAtOCA4YzEuNjc2IDAgMy4yNC0uNTQ0IDQuNTc4LTEuNDg4bC42NTktLjQ2NS41NTQtLjU4OHptNi40MSA2LjMyNmEuOTk5Ljk5OSAwIDAgMS0uMDAyIDEuNDEyLjk5OS45OTkgMCAwIDEtMS40MTIuMDAybC01LjA5NS01LjA5NEMxNC4wNjQgMTkuMjU2IDEyLjE0MiAxOS45OTcgMTAgMjBjLTUuNTE1LjAwOC0xMC4wMDgtNC40ODUtMTAtMTBDLjAwOCA0LjQ4NSA0LjQ4NS4wMDggMTAgMGM1LjUxNS0uMDA4IDEwLjAwOCA0LjQ4NSAxMCAxMC0uMDA0IDIuNjUyLTEuMTA1IDUtMi43OTQgNi43OTFsNC45OTQgNC45OTV6TTE0IDljMC0xLjY1NC0xLjM0Ni0zLTMtM2ExIDEgMCAwIDEgMC0yYzIuNzU3IDAgNSAyLjI0MyA1IDVhMSAxIDAgMCAxLTIgMHpcIlxuICAgICAgICAgICAgZmlsbD1cIiNGRkZcIlxuICAgICAgICAgIC8+XG4gICAgICAgIDwvc3ZnPlxuICAgICAgKVxuICAgIGNhc2UgJ3F1ZXN0aW9uJzpcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiNTJcIiBoZWlnaHQ9XCI1MlwiPlxuICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICBpZD1cImFcIlxuICAgICAgICAgICAgZD1cIk0yNy4wMzEgMzJoLTIuNDg4di0yLjA0NmMwLS42MzUuMDc3LTEuMjEuMjMyLTEuNzIuMTU0LS41MTMuMzY2LS45NzIuNjM5LTEuMzgxLjI3Mi0uNDEuNTgtLjc3OS45MjMtMS4xMDkuMzQ1LS4zMjguNjk0LS42NTIgMS4wNDktLjk3bC45OTUtLjg1NGE2LjQzMiA2LjQzMiAwIDAgMCAxLjQ3NS0xLjU2OGMuMzktLjU5LjU4NS0xLjMyOS41ODUtMi4yMTYgMC0uNjM1LS4xMTctMS4yMDMtLjM1NS0xLjcwM2EzLjcgMy43IDAgMCAwLS45Ni0xLjI2MyA0LjMwNSA0LjMwNSAwIDAgMC0xLjQwMS0uNzgzQTUuMzI0IDUuMzI0IDAgMCAwIDI2IDE2LjExNGMtMS4yOCAwLTIuMzE2LjM3NS0zLjExIDEuMTI0LS43OTUuNzUtMS4yODYgMS43MDUtMS40NzUgMi44NjVMMTkgMTkuNjkzYy4zNTYtMS43NzIgMS4xNjYtMy4xNjUgMi40MzQtNC4xNzZDMjIuNzAxIDE0LjUwNyAyNC4yNiAxNCAyNi4xMDcgMTRjLjk0NyAwIDEuODQyLjEzMSAyLjY4Mi4zOTIuODQuMjYyIDEuNTcuNjQ4IDIuMTg1IDEuMTZhNS42NTIgNS42NTIgMCAwIDEgMS40NzUgMS44OTJjLjM2OC43NS41NTEgMS42MDIuNTUxIDIuNTU2IDAgLjcyOC0uMDgzIDEuMzY0LS4yNDggMS45MDlhNS4zMTUgNS4zMTUgMCAwIDEtLjY5MyAxLjQ2NyA2LjI3NiA2LjI3NiAwIDAgMS0xLjA0OCAxLjE3NmMtLjQwMy4zNTEtLjgzLjcxLTEuMjggMS4wNzMtLjQ5OC4zODctLjkxOC43MzgtMS4yNiAxLjA1N2E0LjY5OCA0LjY5OCAwIDAgMC0uODM2IDEuMDA2IDMuODQ3IDMuODQ3IDAgMCAwLS40NjIgMS4xNzZjLS4wOTUuNDMyLS4xNDIuOTU1LS4xNDIgMS41NjhWMzJ6TTI2IDM3YTEuNSAxLjUgMCAxIDEgMC0zIDEuNSAxLjUgMCAwIDEgMCAzelwiXG4gICAgICAgICAgICBmaWxsPVwiI0ZGRlwiXG4gICAgICAgICAgICBmaWxsUnVsZT1cImV2ZW5vZGRcIlxuICAgICAgICAgIC8+XG4gICAgICAgIDwvc3ZnPlxuICAgICAgKVxuICAgIGNhc2UgJ2JlYWNvbic6XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8c3ZnIHdpZHRoPVwiMzBcIiBoZWlnaHQ9XCIzMFwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgZD1cIk0yNi4yNDQgMjEuNTIzbC00LjM1Ni00LjM1NWE3LjE5MiA3LjE5MiAwIDAgMCAwLTQuMzQ1bDQuMzU2LTQuMzU1YTEyLjk4IDEyLjk4IDAgMCAxIDAgMTMuMDU1em0tLjQgMy4yMTVsLTEuMSAxLjFhLjU1Ny41NTcgMCAwIDEtLjc4NiAwbC00Ljg4NC00Ljg4NGE3LjI3IDcuMjcgMCAwIDAgMS44ODUtMS44ODZsNC44ODUgNC44ODVhLjU1LjU1IDAgMCAxIDAgLjc4NXpNOC40NzEgMjYuMjM2bDQuMzU1LTQuMzU0YTcuMTk3IDcuMTk3IDAgMCAwIDQuMzQ3IDBsNC4zNTUgNC4zNTRhMTIuOTgzIDEyLjk4MyAwIDAgMS0xMy4wNTcgMHptLTIuNDMtLjM5OGEuNTU2LjU1NiAwIDAgMS0uNzg2IDBsLTEuMS0xLjFhLjU1Ni41NTYgMCAwIDEgMC0uNzg2bDQuODg0LTQuODg0YTcuMjc1IDcuMjc1IDAgMCAwIDEuODg3IDEuODg2TDYuMDQgMjUuODM4em0tMi4yODUtNC4zMTVhMTIuOTggMTIuOTggMCAwIDEgMC0xMy4wNTVsNC4zNTUgNC4zNTRhNy4xOTIgNy4xOTIgMCAwIDAgMCA0LjM0N2wtNC4zNTUgNC4zNTR6bS4zOTktMTYuMjdsMS4xLTEuMWEuNTU0LjU1NCAwIDAgMSAuNzg1IDBsNC44ODYgNC44ODRhNy4yNyA3LjI3IDAgMCAwLTEuODg3IDEuODg1TDQuMTU1IDYuMDM5YS41NTYuNTU2IDAgMCAxIDAtLjc4NnptMTcuMzczLTEuNWwtNC4zNTUgNC4zNTVhNy4yMjkgNy4yMjkgMCAwIDAtNC4zNDcgMEw4LjQ3MSAzLjc1NGExMi45OSAxMi45OSAwIDAgMSAxMy4wNTcgMHptLTEuMzA1IDExLjI0MkE1LjIyOCA1LjIyOCAwIDAgMSAxNSAyMC4yMTdhNS4yMjggNS4yMjggMCAwIDEtNS4yMjQtNS4yMjJBNS4yMjggNS4yMjggMCAwIDEgMTUgOS43NzNhNS4yMyA1LjIzIDAgMCAxIDUuMjIzIDUuMjIyem0zLjczNS0xMC44NDJhLjU1Ni41NTYgMCAwIDEgLjc4NiAwbDEuMSAxLjFhLjU1My41NTMgMCAwIDEgMCAuNzg2bC00Ljg4NCA0Ljg4M2E3LjMwMiA3LjMwMiAwIDAgMC0xLjg4Ni0xLjg4NWw0Ljg4NC00Ljg4NHptMy42ODggMi43ODZjLjIzLS4zOS4zNjItLjgzLjM2Mi0xLjI5MyAwLS42ODMtLjI2Ni0xLjMyNS0uNzUtMS44MDdsLTEuMDk4LTEuMWEyLjU1NSAyLjU1NSAwIDAgMC0zLjEwMS0uMzg3IDE0Ljk4NSAxNC45ODUgMCAwIDAtMTYuMTI1LjAwNGMtLjk3My0uNTQ4LTIuMjg0LS40MjYtMy4wOTMuMzgzbC0xLjEwMSAxLjFhMi41MzMgMi41MzMgMCAwIDAtLjM4NyAzLjEgMTQuOTcgMTQuOTcgMCAwIDAgMCAxNi4xMTQgMi41NTMgMi41NTMgMCAwIDAgLjM4NyAzLjA5OWwxLjEgMS4xQTIuNTQ5IDIuNTQ5IDAgMCAwIDUuNjQ5IDI4YTIuNTUgMi41NSAwIDAgMCAxLjI5My0uMzYxQTE0Ljk2MSAxNC45NjEgMCAwIDAgMTUgMzAuMDAyYTE0Ljk3IDE0Ljk3IDAgMCAwIDguMDU5LTIuMzYzYy4zOTguMjM0Ljg0NC4zNiAxLjI5Mi4zNi42NTUgMCAxLjMxLS4yNSAxLjgwOS0uNzQ3bDEuMDk5LTEuMWEyLjUzMSAyLjUzMSAwIDAgMCAuMzg3LTMuMSAxNC45NjMgMTQuOTYzIDAgMCAwIDAtMTYuMTEzelwiXG4gICAgICAgICAgICBmaWxsPVwiI0ZGRlwiXG4gICAgICAgICAgICBmaWxsUnVsZT1cImV2ZW5vZGRcIlxuICAgICAgICAgIC8+XG4gICAgICAgIDwvc3ZnPlxuICAgICAgKVxuICAgIGNhc2UgJ2Nsb3NlJzpcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPHN2ZyB3aWR0aD17MTR9IGhlaWdodD17MTR9IHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgZD1cIk0xMy43MDcuMjkzYS45OTkuOTk5IDAgMCAwLTEuNDE0IDBMNyA1LjU4NiAxLjcwNy4yOTNBLjk5OS45OTkgMCAxIDAgLjI5MyAxLjcwN0w1LjU4NiA3IC4yOTMgMTIuMjkzYS45OTkuOTk5IDAgMSAwIDEuNDE0IDEuNDE0TDcgOC40MTRsNS4yOTMgNS4yOTNhLjk5Ny45OTcgMCAwIDAgMS40MTQgMCAuOTk5Ljk5OSAwIDAgMCAwLTEuNDE0TDguNDE0IDdsNS4yOTMtNS4yOTNhLjk5OS45OTkgMCAwIDAgMC0xLjQxNFwiXG4gICAgICAgICAgICBmaWxsPVwiI0ZGRlwiXG4gICAgICAgICAgICBmaWxsUnVsZT1cImV2ZW5vZGRcIlxuICAgICAgICAgIC8+XG4gICAgICAgIDwvc3ZnPlxuICAgICAgKVxuICB9XG59XG5cbmludGVyZmFjZSBQcm9wcyBleHRlbmRzIFByb3ZpZGVyUHJvcHMge1xuICBjb2xvcj86IHN0cmluZ1xuICBpY29uPzogSGVscFNjb3V0SWNvblxuICB6SW5kZXg/OiBzdHJpbmdcbiAgaG9yaXpvbnRhbFBvc2l0aW9uPzogJ2xlZnQnIHwgJ3JpZ2h0J1xufVxuXG5jb25zdCBIZWxwU2NvdXQgPSAoe1xuICBjb2xvciA9ICcjNTI3Y2ViJyxcbiAgaWNvbiA9ICdtZXNzYWdlJyxcbiAgekluZGV4ID0gJzEwNTAnLFxuICBob3Jpem9udGFsUG9zaXRpb24gPSAncmlnaHQnLFxuICBjb250YWluZXJDbGFzcyA9IENsYXNzTmFtZXMuY29udGFpbmVyXG59OiBQcm9wcyk6IEpTWC5FbGVtZW50IHwgbnVsbCA9PiB7XG4gIGNvbnN0IFtzdGF0ZSwgbG9hZENoYXRdID0gdXNlQ2hhdCh7IGxvYWRXaGVuSWRsZTogdHJ1ZSB9KVxuICBjb25zdCB3aW5kb3dIZWlnaHQgPSB1c2VXaW5kb3dIZWlnaHQoKVxuICBjb25zdCBbcG9zaXRpb25TdHlsZXMsIHNldFBvc2l0aW9uU3R5bGVzXSA9IHVzZVN0YXRlPENTU1Byb3BlcnRpZXM+KHtcbiAgICBvcGFjaXR5OiAwLFxuICAgIHZpc2liaWxpdHk6ICdoaWRkZW4nXG4gIH0pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBzZXRQb3NpdGlvblN0eWxlcyh7XG4gICAgICBib3R0b206IHdpbmRvd0hlaWdodCA8PSA3NDAgPyAnMTBweCcgOiAnNDBweCcsXG4gICAgICByaWdodDpcbiAgICAgICAgaG9yaXpvbnRhbFBvc2l0aW9uID09PSAnbGVmdCdcbiAgICAgICAgICA/ICdhdXRvJ1xuICAgICAgICAgIDogd2luZG93SGVpZ2h0IDw9IDc0MFxuICAgICAgICAgID8gJzIwcHgnXG4gICAgICAgICAgOiAnNDBweCcsXG4gICAgICBsZWZ0OlxuICAgICAgICBob3Jpem9udGFsUG9zaXRpb24gPT09ICdyaWdodCdcbiAgICAgICAgICA/ICdhdXRvJ1xuICAgICAgICAgIDogd2luZG93SGVpZ2h0IDw9IDc0MFxuICAgICAgICAgID8gJzIwcHgnXG4gICAgICAgICAgOiAnNDBweCdcbiAgICB9KVxuICB9LCBbd2luZG93SGVpZ2h0XSlcblxuICBpZiAoc3RhdGUgPT09ICdjb21wbGV0ZScpIHtcbiAgICByZXR1cm4gbnVsbFxuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICBjbGFzc05hbWU9e2NvbnRhaW5lckNsYXNzfVxuICAgICAgc3R5bGU9e3tcbiAgICAgICAgLi4uc3R5bGVzLndyYXBwZXIsXG4gICAgICAgIC4uLnBvc2l0aW9uU3R5bGVzLFxuICAgICAgICB6SW5kZXg6IE51bWJlcih6SW5kZXgpXG4gICAgICB9fVxuICAgID5cbiAgICAgIDxidXR0b25cbiAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgIGFyaWEtbGFiZWw9XCJMb2FkIENoYXRcIlxuICAgICAgICBhcmlhLWJ1c3k9XCJ0cnVlXCJcbiAgICAgICAgYXJpYS1saXZlPVwicG9saXRlXCJcbiAgICAgICAgb25DbGljaz17KCkgPT4gbG9hZENoYXQoeyBvcGVuOiB0cnVlIH0pfVxuICAgICAgICBvbk1vdXNlRW50ZXI9eygpID0+IGxvYWRDaGF0KHsgb3BlbjogZmFsc2UgfSl9XG4gICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgLi4uc3R5bGVzLmJ1dHRvbixcbiAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IGNvbG9yXG4gICAgICAgIH19XG4gICAgICA+XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgIC4uLnN0eWxlcy5pY29uLFxuICAgICAgICAgICAgdHJhbnNmb3JtOlxuICAgICAgICAgICAgICBzdGF0ZSA9PT0gJ2luaXRpYWwnXG4gICAgICAgICAgICAgICAgPyAncm90YXRlKDBkZWcpIHNjYWxlKDEpJ1xuICAgICAgICAgICAgICAgIDogJ3JvdGF0ZSgzMGRlZykgc2NhbGUoMCknXG4gICAgICAgICAgfX1cbiAgICAgICAgPlxuICAgICAgICAgIHtnZXRJY29uKGljb24pfVxuICAgICAgICA8L3NwYW4+XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgIC4uLnN0eWxlcy5jbG9zZSxcbiAgICAgICAgICAgIG9wYWNpdHk6IHN0YXRlID09PSAnaW5pdGlhbCcgPyAwIDogMSxcbiAgICAgICAgICAgIHRyYW5zZm9ybTpcbiAgICAgICAgICAgICAgc3RhdGUgPT09ICdpbml0aWFsJ1xuICAgICAgICAgICAgICAgID8gJ3JvdGF0ZSgzMGRlZykgc2NhbGUoMCknXG4gICAgICAgICAgICAgICAgOiAncm90YXRlKDBkZWcpIHNjYWxlKDEpJ1xuICAgICAgICAgIH19XG4gICAgICAgID5cbiAgICAgICAgICB7Z2V0SWNvbignY2xvc2UnKX1cbiAgICAgICAgPC9zcGFuPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIClcbn1cblxuZXhwb3J0IGRlZmF1bHQgSGVscFNjb3V0XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFFQSxJQUFBQyxTQUFBLEdBQUFDLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBRyxnQkFBQSxHQUFBRCxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUksTUFBQSxHQUFBSixPQUFBO0FBQXVELFNBQUFFLHVCQUFBRyxDQUFBLFdBQUFBLENBQUEsSUFBQUEsQ0FBQSxDQUFBQyxVQUFBLEdBQUFELENBQUEsS0FBQUUsT0FBQSxFQUFBRixDQUFBO0FBQUEsU0FBQUcseUJBQUFILENBQUEsNkJBQUFJLE9BQUEsbUJB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