UNPKG

adui

Version:

<div> <img src="https://wxa.wxs.qq.com/mpweb/delivery/legacy/wxadtouch/upload/t1/od834zef_52939fc6.png" style="margin:40px 0 0 -8px; background-color: #fcfcfc; box-shadow: none;" /> </div>

145 lines (144 loc) 28.7 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); } var _react = _interopRequireWildcard(require("react")); var _enzyme = require("enzyme"); var _reactTestRenderer = _interopRequireDefault(require("react-test-renderer")); var _ = _interopRequireDefault(require("..")); var _testUtils = require("react-dom/test-utils"); 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 _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); } function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } } function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), 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 _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); } function _possibleConstructorReturn(t, e) { if (e && ("object" == _typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return _assertThisInitialized(t); } function _assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } function _getPrototypeOf(t) { return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, _getPrototypeOf(t); } function _inherits(t, e) { if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function"); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }), Object.defineProperty(t, "prototype", { writable: !1 }), e && _setPrototypeOf(t, e); } function _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); } var ColorPickerMounter = function (_Component) { function ColorPickerMounter() { var _this; _classCallCheck(this, ColorPickerMounter); for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } _this = _callSuper(this, ColorPickerMounter, [].concat(args)); _this.state = { value: "#07C160" }; return _this; } _inherits(ColorPickerMounter, _Component); return _createClass(ColorPickerMounter, [{ key: "render", value: function render() { var _this2 = this; var value = this.state.value; return _react["default"].createElement(_["default"], _extends({ value: value, onChange: function onChange(val) { return _this2.setState({ value: val }); } }, this.props)); } }]); }(_react.Component); describe("ColorPicker", function () { beforeAll(function () { jest.useFakeTimers(); }); afterAll(function () { jest.useRealTimers(); }); it("是否正确渲染", function () { var wrapper = _reactTestRenderer["default"].create(_react["default"].createElement(_["default"], { defaultValue: "#07C160" })); expect(wrapper).toMatchSnapshot(); }); it("是否能处理小写值的情况", function () { var wrapper = (0, _enzyme.mount)(_react["default"].createElement(_["default"], { defaultValue: "#07c160" })); var value = wrapper.find(".adui-cp").at(0).props()["data-value"]; var inputValue = wrapper.find("Input").at(0).props().value; expect(inputValue === "07C160" && value === "#07C160").toBe(true); }); it("内部驱动", function () { var wrapper = (0, _enzyme.mount)(_react["default"].createElement(_["default"], { defaultValue: "#07C160" })); wrapper.find("button").simulate("click"); wrapper.find(".adui-cp-standard i").at(0).simulate("click"); var value = wrapper.find(".adui-cp").at(0).props()["data-value"]; var inputValue = wrapper.find("Input").at(0).props().value; expect(inputValue === "FFFFFF" && value === "#FFFFFF").toBe(true); wrapper.find("input").at(0).simulate("change", { target: { value: "F0F0F0" } }); var value1 = wrapper.find(".adui-cp").at(0).props()["data-value"]; var inputValue1 = wrapper.find("Input").at(0).props().value; expect(inputValue1 === "F0F0F0" && value1 === "#F0F0F0").toBe(true); }); it("外部控制", function () { var wrapper = (0, _enzyme.mount)(_react["default"].createElement(ColorPickerMounter, null)); wrapper.find("button").simulate("click"); (0, _testUtils.act)(function () { wrapper.find(".adui-cp-standard i").at(0).simulate("click"); jest.runAllTimers(); wrapper.update(); var value = wrapper.find(".adui-cp").at(0).props()["data-value"]; var inputValue = wrapper.find("Input").at(0).props().value; expect(inputValue === "FFFFFF" && value === "#FFFFFF" && wrapper.state().value === "#FFFFFF").toBe(true); }); wrapper.find("input").at(0).simulate("change", { target: { value: "F0F0F0" } }); var value1 = wrapper.find(".adui-cp").at(0).props()["data-value"]; var inputValue1 = wrapper.find("Input").at(0).props().value; expect(inputValue1 === "F0F0F0" && value1 === "#F0F0F0" && wrapper.state().value === "#F0F0F0").toBe(true); }); it("禁用态", function () { var wrapper = (0, _enzyme.mount)(_react["default"].createElement(_["default"], { defaultValue: "#07C160", disabled: true })); wrapper.find("button").simulate("click"); expect(wrapper.find("Popover").props().visible).toBe(false); }); it("popupResultVisible", function () { var wrapper0 = (0, _enzyme.mount)(_react["default"].createElement(_["default"], { defaultValue: "#07C160" })); var wrapper1 = (0, _enzyme.mount)(_react["default"].createElement(_["default"], { defaultValue: "#07C160", popupResultVisible: false })); wrapper0.find("button").simulate("click"); wrapper1.find("button").simulate("click"); expect(wrapper0.find("input")).toHaveLength(2); expect(wrapper1.find("input")).toHaveLength(1); }); it("handlePrefixClick 验证", function () { var wrapper = (0, _enzyme.mount)(_react["default"].createElement(_["default"], { defaultValue: "#07C160" })); wrapper.find(".adui-cp-prefix").simulate("click"); wrapper.find("button").simulate("click"); jest.advanceTimersByTime(50); wrapper.find(".adui-cp-prefix").at(1).simulate("click"); }); }); //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfZW56eW1lIiwiX3JlYWN0VGVzdFJlbmRlcmVyIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl8iLCJfdGVzdFV0aWxzIiwiZSIsIl9fZXNNb2R1bGUiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJXZWFrTWFwIiwiciIsInQiLCJfdHlwZW9mIiwiaGFzIiwiZ2V0IiwibiIsIl9fcHJvdG9fXyIsImEiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsInUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpIiwic2V0IiwiX2V4dGVuZHMiLCJhc3NpZ24iLCJiaW5kIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiYXBwbHkiLCJfY2xhc3NDYWxsQ2hlY2siLCJUeXBlRXJyb3IiLCJfZGVmaW5lUHJvcGVydGllcyIsIm8iLCJlbnVtZXJhYmxlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJfdG9Qcm9wZXJ0eUtleSIsImtleSIsIl9jcmVhdGVDbGFzcyIsInByb3RvdHlwZSIsIl90b1ByaW1pdGl2ZSIsIlN5bWJvbCIsInRvUHJpbWl0aXZlIiwiU3RyaW5nIiwiTnVtYmVyIiwiX2NhbGxTdXBlciIsIl9nZXRQcm90b3R5cGVPZiIsIl9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuIiwiX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCIsIlJlZmxlY3QiLCJjb25zdHJ1Y3QiLCJjb25zdHJ1Y3RvciIsIl9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQiLCJSZWZlcmVuY2VFcnJvciIsIkJvb2xlYW4iLCJ2YWx1ZU9mIiwic2V0UHJvdG90eXBlT2YiLCJnZXRQcm90b3R5cGVPZiIsIl9pbmhlcml0cyIsImNyZWF0ZSIsInZhbHVlIiwiX3NldFByb3RvdHlwZU9mIiwiQ29sb3JQaWNrZXJNb3VudGVyIiwiX0NvbXBvbmVudCIsIl90aGlzIiwiX2xlbiIsImFyZ3MiLCJBcnJheSIsIl9rZXkiLCJjb25jYXQiLCJzdGF0ZSIsInJlbmRlciIsIl90aGlzMiIsImNyZWF0ZUVsZW1lbnQiLCJvbkNoYW5nZSIsInZhbCIsInNldFN0YXRlIiwicHJvcHMiLCJDb21wb25lbnQiLCJkZXNjcmliZSIsImJlZm9yZUFsbCIsImplc3QiLCJ1c2VGYWtlVGltZXJzIiwiYWZ0ZXJBbGwiLCJ1c2VSZWFsVGltZXJzIiwiaXQiLCJ3cmFwcGVyIiwiVGVzdFJlbmRlcmVyIiwiZGVmYXVsdFZhbHVlIiwiZXhwZWN0IiwidG9NYXRjaFNuYXBzaG90IiwibW91bnQiLCJmaW5kIiwiYXQiLCJpbnB1dFZhbHVlIiwidG9CZSIsInNpbXVsYXRlIiwidGFyZ2V0IiwidmFsdWUxIiwiaW5wdXRWYWx1ZTEiLCJhY3QiLCJydW5BbGxUaW1lcnMiLCJ1cGRhdGUiLCJkaXNhYmxlZCIsInZpc2libGUiLCJ3cmFwcGVyMCIsIndyYXBwZXIxIiwicG9wdXBSZXN1bHRWaXNpYmxlIiwidG9IYXZlTGVuZ3RoIiwiYWR2YW5jZVRpbWVyc0J5VGltZSJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2NvbXBvbmVudHMvY29sb3ItcGlja2VyL19fdGVzdHNfXy9pbmRleC50ZXN0LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSAqL1xuaW1wb3J0IFJlYWN0LCB7IENvbXBvbmVudCB9IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgeyBtb3VudCB9IGZyb20gXCJlbnp5bWVcIlxuaW1wb3J0IFRlc3RSZW5kZXJlciBmcm9tIFwicmVhY3QtdGVzdC1yZW5kZXJlclwiXG4vLyBpbXBvcnQgeyBhY3QgfSBmcm9tIFwicmVhY3QtZG9tL3Rlc3QtdXRpbHNcIlxuaW1wb3J0IENvbG9yUGlja2VyIGZyb20gXCIuLlwiXG5pbXBvcnQgeyBhY3QgfSBmcm9tIFwicmVhY3QtZG9tL3Rlc3QtdXRpbHNcIlxuXG5jbGFzcyBDb2xvclBpY2tlck1vdW50ZXIgZXh0ZW5kcyBDb21wb25lbnQge1xuICBzdGF0ZSA9IHtcbiAgICB2YWx1ZTogXCIjMDdDMTYwXCIsXG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgY29uc3QgeyB2YWx1ZSB9ID0gdGhpcy5zdGF0ZVxuICAgIHJldHVybiAoXG4gICAgICA8Q29sb3JQaWNrZXJcbiAgICAgICAgdmFsdWU9e3ZhbHVlfVxuICAgICAgICBvbkNoYW5nZT17KHZhbCkgPT4gdGhpcy5zZXRTdGF0ZSh7IHZhbHVlOiB2YWwgfSl9XG4gICAgICAgIHsuLi50aGlzLnByb3BzfVxuICAgICAgLz5cbiAgICApXG4gIH1cbn1cblxuZGVzY3JpYmUoXCJDb2xvclBpY2tlclwiLCAoKSA9PiB7XG4gIGJlZm9yZUFsbCgoKSA9PiB7XG4gICAgamVzdC51c2VGYWtlVGltZXJzKClcbiAgfSlcblxuICBhZnRlckFsbCgoKSA9PiB7XG4gICAgamVzdC51c2VSZWFsVGltZXJzKClcbiAgfSlcblxuICBpdChcIuaYr+WQpuato+ehrua4suafk1wiLCAoKSA9PiB7XG4gICAgY29uc3Qgd3JhcHBlciA9IFRlc3RSZW5kZXJlci5jcmVhdGUoPENvbG9yUGlja2VyIGRlZmF1bHRWYWx1ZT1cIiMwN0MxNjBcIiAvPilcbiAgICBleHBlY3Qod3JhcHBlcikudG9NYXRjaFNuYXBzaG90KClcbiAgfSlcblxuICBpdChcIuaYr+WQpuiDveWkhOeQhuWwj+WGmeWAvOeahOaDheWGtVwiLCAoKSA9PiB7XG4gICAgY29uc3Qgd3JhcHBlciA9IG1vdW50KDxDb2xvclBpY2tlciBkZWZhdWx0VmFsdWU9XCIjMDdjMTYwXCIgLz4pXG4gICAgY29uc3QgdmFsdWUgPSB3cmFwcGVyLmZpbmQoXCIuYWR1aS1jcFwiKS5hdCgwKS5wcm9wcygpW1wiZGF0YS12YWx1ZVwiXVxuICAgIGNvbnN0IGlucHV0VmFsdWUgPSB3cmFwcGVyLmZpbmQoXCJJbnB1dFwiKS5hdCgwKS5wcm9wcygpLnZhbHVlXG4gICAgZXhwZWN0KGlucHV0VmFsdWUgPT09IFwiMDdDMTYwXCIgJiYgdmFsdWUgPT09IFwiIzA3QzE2MFwiKS50b0JlKHRydWUpXG4gIH0pXG5cbiAgaXQoXCLlhoXpg6jpqbHliqhcIiwgKCkgPT4ge1xuICAgIGNvbnN0IHdyYXBwZXIgPSBtb3VudCg8Q29sb3JQaWNrZXIgZGVmYXVsdFZhbHVlPVwiIzA3QzE2MFwiIC8+KVxuICAgIHdyYXBwZXIuZmluZChcImJ1dHRvblwiKS5zaW11bGF0ZShcImNsaWNrXCIpXG4gICAgd3JhcHBlci5maW5kKFwiLmFkdWktY3Atc3RhbmRhcmQgaVwiKS5hdCgwKS5zaW11bGF0ZShcImNsaWNrXCIpXG4gICAgY29uc3QgdmFsdWUgPSB3cmFwcGVyLmZpbmQoXCIuYWR1aS1jcFwiKS5hdCgwKS5wcm9wcygpW1wiZGF0YS12YWx1ZVwiXVxuICAgIGNvbnN0IGlucHV0VmFsdWUgPSB3cmFwcGVyLmZpbmQoXCJJbnB1dFwiKS5hdCgwKS5wcm9wcygpLnZhbHVlXG4gICAgZXhwZWN0KGlucHV0VmFsdWUgPT09IFwiRkZGRkZGXCIgJiYgdmFsdWUgPT09IFwiI0ZGRkZGRlwiKS50b0JlKHRydWUpXG5cbiAgICB3cmFwcGVyXG4gICAgICAuZmluZChcImlucHV0XCIpXG4gICAgICAuYXQoMClcbiAgICAgIC5zaW11bGF0ZShcImNoYW5nZVwiLCB7IHRhcmdldDogeyB2YWx1ZTogXCJGMEYwRjBcIiB9IH0pXG5cbiAgICBjb25zdCB2YWx1ZTEgPSB3cmFwcGVyLmZpbmQoXCIuYWR1aS1jcFwiKS5hdCgwKS5wcm9wcygpW1wiZGF0YS12YWx1ZVwiXVxuICAgIGNvbnN0IGlucHV0VmFsdWUxID0gd3JhcHBlci5maW5kKFwiSW5wdXRcIikuYXQoMCkucHJvcHMoKS52YWx1ZVxuICAgIGV4cGVjdChpbnB1dFZhbHVlMSA9PT0gXCJGMEYwRjBcIiAmJiB2YWx1ZTEgPT09IFwiI0YwRjBGMFwiKS50b0JlKHRydWUpXG4gIH0pXG5cbiAgaXQoXCLlpJbpg6jmjqfliLZcIiwgKCkgPT4ge1xuICAgIGNvbnN0IHdyYXBwZXIgPSBtb3VudCg8Q29sb3JQaWNrZXJNb3VudGVyIC8+KVxuXG4gICAgd3JhcHBlci5maW5kKFwiYnV0dG9uXCIpLnNpbXVsYXRlKFwiY2xpY2tcIilcbiAgICBhY3QoKCkgPT4ge1xuICAgICAgd3JhcHBlci5maW5kKFwiLmFkdWktY3Atc3RhbmRhcmQgaVwiKS5hdCgwKS5zaW11bGF0ZShcImNsaWNrXCIpXG4gICAgICBqZXN0LnJ1bkFsbFRpbWVycygpXG4gICAgICB3cmFwcGVyLnVwZGF0ZSgpXG4gICAgICBjb25zdCB2YWx1ZSA9IHdyYXBwZXIuZmluZChcIi5hZHVpLWNwXCIpLmF0KDApLnByb3BzKClbXCJkYXRhLXZhbHVlXCJdXG4gICAgICBjb25zdCBpbnB1dFZhbHVlID0gd3JhcHBlci5maW5kKFwiSW5wdXRcIikuYXQoMCkucHJvcHMoKS52YWx1ZVxuICAgICAgZXhwZWN0KFxuICAgICAgICBpbnB1dFZhbHVlID09PSBcIkZGRkZGRlwiICYmXG4gICAgICAgICAgdmFsdWUgPT09IFwiI0ZGRkZGRlwiICYmXG4gICAgICAgICAgd3JhcHBlci5zdGF0ZSgpLnZhbHVlID09PSBcIiNGRkZGRkZcIlxuICAgICAgKS50b0JlKHRydWUpXG4gICAgfSlcbiAgICB3cmFwcGVyXG4gICAgICAuZmluZChcImlucHV0XCIpXG4gICAgICAuYXQoMClcbiAgICAgIC5zaW11bGF0ZShcImNoYW5nZVwiLCB7IHRhcmdldDogeyB2YWx1ZTogXCJGMEYwRjBcIiB9IH0pXG4gICAgY29uc3QgdmFsdWUxID0gd3JhcHBlci5maW5kKFwiLmFkdWktY3BcIikuYXQoMCkucHJvcHMoKVtcImRhdGEtdmFsdWVcIl1cbiAgICBjb25zdCBpbnB1dFZhbHVlMSA9IHdyYXBwZXIuZmluZChcIklucHV0XCIpLmF0KDApLnByb3BzKCkudmFsdWVcbiAgICBleHBlY3QoXG4gICAgICBpbnB1dFZhbHVlMSA9PT0gXCJGMEYwRjBcIiAmJlxuICAgICAgICB2YWx1ZTEgPT09IFwiI0YwRjBGMFwiICYmXG4gICAgICAgIHdyYXBwZXIuc3RhdGUoKS52YWx1ZSA9PT0gXCIjRjBGMEYwXCJcbiAgICApLnRvQmUodHJ1ZSlcbiAgfSlcblxuICBpdChcIuemgeeUqOaAgVwiLCAoKSA9PiB7XG4gICAgY29uc3Qgd3JhcHBlciA9IG1vdW50KDxDb2xvclBpY2tlciBkZWZhdWx0VmFsdWU9XCIjMDdDMTYwXCIgZGlzYWJsZWQgLz4pXG4gICAgd3JhcHBlci5maW5kKFwiYnV0dG9uXCIpLnNpbXVsYXRlKFwiY2xpY2tcIilcbiAgICBleHBlY3Qod3JhcHBlci5maW5kKFwiUG9wb3ZlclwiKS5wcm9wcygpLnZpc2libGUpLnRvQmUoZmFsc2UpXG4gIH0pXG5cbiAgaXQoXCJwb3B1cFJlc3VsdFZpc2libGVcIiwgKCkgPT4ge1xuICAgIGNvbnN0IHdyYXBwZXIwID0gbW91bnQoPENvbG9yUGlja2VyIGRlZmF1bHRWYWx1ZT1cIiMwN0MxNjBcIiAvPilcbiAgICBjb25zdCB3cmFwcGVyMSA9IG1vdW50KFxuICAgICAgPENvbG9yUGlja2VyIGRlZmF1bHRWYWx1ZT1cIiMwN0MxNjBcIiBwb3B1cFJlc3VsdFZpc2libGU9e2ZhbHNlfSAvPlxuICAgIClcbiAgICB3cmFwcGVyMC5maW5kKFwiYnV0dG9uXCIpLnNpbXVsYXRlKFwiY2xpY2tcIilcbiAgICB3cmFwcGVyMS5maW5kKFwiYnV0dG9uXCIpLnNpbXVsYXRlKFwiY2xpY2tcIilcbiAgICBleHBlY3Qod3JhcHBlcjAuZmluZChcImlucHV0XCIpKS50b0hhdmVMZW5ndGgoMilcbiAgICBleHBlY3Qod3JhcHBlcjEuZmluZChcImlucHV0XCIpKS50b0hhdmVMZW5ndGgoMSlcbiAgfSlcblxuICBpdChcImhhbmRsZVByZWZpeENsaWNrIOmqjOivgVwiLCAoKSA9PiB7XG4gICAgY29uc3Qgd3JhcHBlciA9IG1vdW50KDxDb2xvclBpY2tlciBkZWZhdWx0VmFsdWU9XCIjMDdDMTYwXCIgLz4pXG4gICAgd3JhcHBlci5maW5kKFwiLmFkdWktY3AtcHJlZml4XCIpLnNpbXVsYXRlKFwiY2xpY2tcIilcbiAgICB3cmFwcGVyLmZpbmQoXCJidXR0b25cIikuc2ltdWxhdGUoXCJjbGlja1wiKVxuICAgIGplc3QuYWR2YW5jZVRpbWVyc0J5VGltZSg1MClcbiAgICB3cmFwcGVyLmZpbmQoXCIuYWR1aS1jcC1wcmVmaXhcIikuYXQoMSkuc2ltdWxhdGUoXCJjbGlja1wiKVxuICB9KVxufSlcbiJdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsT0FBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsa0JBQUEsR0FBQUMsc0JBQUEsQ0FBQUgsT0FBQTtBQUVBLElBQUFJLENBQUEsR0FBQUQsc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFLLFVBQUEsR0FBQUwsT0FBQTtBQUEwQyxTQUFBRyx1QkFBQUcsQ0FBQSxXQUFBQSxDQUFBLElBQUFBLENBQUEsQ0FBQUMsVUFBQSxHQUFBRCxDQUFBLGdCQUFBQSxDQUFBO0FBQUEsU0FBQUUseUJBQUFGLENBQUEsNkJBQUFHLE9BQUEsbUJBQUFDLENBQUEsT0FBQUQsT0FBQSxJQUFBRSxDQUFBLE9BQUFGLE9BQUEsWUFBQUQsd0JBQUEsWUFBQUEseUJBQUFGLENBQUEsV0FBQUEsQ0FBQSxHQUFBSyxDQUFBLEdBQUFELENBQUEsS0FBQUosQ0FBQTtBQUFBLFNBQUFQLHdCQUFBTyxDQUFBLEVBQUFJLENBQUEsU0FBQUEsQ0FBQSxJQUFBSixDQUFBLElBQUFBLENBQUEsQ0FBQUMsVUFBQSxTQUFBRCxDQUFBLGVBQUFBLENBQUEsZ0JBQUFNLE9BQUEsQ0FBQU4sQ0FBQSwwQkFBQUEsQ0FBQSxzQkFBQUEsQ0FBQSxRQUFBSyxDQUFBLEdBQUFILHdCQUFBLENBQUFFLENBQUEsT0FBQUMsQ0FBQSxJQUFBQSxDQUFBLENBQUFFLEdBQUEsQ0FBQVAsQ0FBQSxVQUFBSyxDQUFBLENBQUFHLEdBQUEsQ0FBQVIsQ0FBQSxPQUFBUyxDQUFBLEtBQUFDLFNBQUEsVUFBQUMsQ0FBQSxHQUFBQyxNQUFBLENBQUFDLGNBQUEsSUFBQUQsTUFBQSxDQUFBRSx3QkFBQSxXQUFBQyxDQUFBLElBQUFmLENB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