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>

220 lines (162 loc) 23.1 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.isLegalDateString = exports.isLegalDateRangeString = exports.isDayInRange = exports.getDefaultMinDate = exports.getDefaultMaxDate = exports.convertDateToString = exports.convertDateRangeToString = exports.clone = exports.areSameMonth = exports.areSameDay = exports.WEEKDAYS_SHORT_EN = exports.WEEKDAYS_SHORT = exports.WEEKDAYS_LONG_EN = exports.WEEKDAYS_LONG = exports.MONTHS_EN = exports.MONTHS = void 0; var _dayPickerReact = require("day-picker-react"); function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _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(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } var MONTHS = ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"]; exports.MONTHS = MONTHS; var WEEKDAYS_LONG = ["周日", "周一", "周二", "周三", "周四", "周五", "周六"]; exports.WEEKDAYS_LONG = WEEKDAYS_LONG; var WEEKDAYS_SHORT = ["日", "一", "二", "三", "四", "五", "六"]; exports.WEEKDAYS_SHORT = WEEKDAYS_SHORT; var MONTHS_EN = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]; exports.MONTHS_EN = MONTHS_EN; var WEEKDAYS_LONG_EN = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]; exports.WEEKDAYS_LONG_EN = WEEKDAYS_LONG_EN; var WEEKDAYS_SHORT_EN = ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"]; exports.WEEKDAYS_SHORT_EN = WEEKDAYS_SHORT_EN; var getDefaultMaxDate = function getDefaultMaxDate() { var date = new Date(); date.setFullYear(date.getFullYear() + 1); date.setMonth(11, 31); return date; }; exports.getDefaultMaxDate = getDefaultMaxDate; var getDefaultMinDate = function getDefaultMinDate() { var date = new Date(); date.setFullYear(date.getFullYear() - 4); date.setMonth(0, 1); return date; }; exports.getDefaultMinDate = getDefaultMinDate; var areSameMonth = function areSameMonth(date1, date2) { return date1 != null && date2 != null && date1.getMonth() === date2.getMonth() && date1.getFullYear() === date2.getFullYear(); }; exports.areSameMonth = areSameMonth; var areSameDay = function areSameDay(date1, date2) { return areSameMonth(date1, date2) && date1.getDate() === date2.getDate(); }; exports.areSameDay = areSameDay; var isLegalDateString = function isLegalDateString(date) { if (date.trim() === "") { return true; } var strings = date.split("-"); if (strings.length === 3 && strings[0].length === 4 && strings[1].length === 2 && strings[2].length === 2 && !isNaN(Number(strings[0])) && !isNaN(Number(strings[1])) && !isNaN(Number(strings[2]))) { var checkLeapYear = function checkLeapYear(str) { return str % 4 === 0 && str % 100 !== 0 || str % 400 === 0; }; var solar = [1, 3, 5, 7, 8, 10, 12]; var lunar = [4, 6, 9, 11]; var year = parseInt(strings[0], 10); var month = parseInt(strings[1], 10); var day = parseInt(strings[2], 10); if (month > 0 && month < 13) { if (solar.includes(month)) { if (day > 0 && day < 32) { return true; } } else if (lunar.includes(month)) { if (day > 0 && day < 31) { return true; } } else { if (checkLeapYear(year) && day > 0 && day < 30) { return true; } if (!checkLeapYear(year) && day > 0 && day < 29) { return true; } } } return false; } return false; }; exports.isLegalDateString = isLegalDateString; var isLegalDateRangeString = function isLegalDateRangeString(date) { if (date.trim() === "") { return true; } var strings = date.split(" - "); return strings.length === 2 && strings[0].length && strings[1].length && isLegalDateString(strings[0]) && isLegalDateString(strings[1]); }; exports.isLegalDateRangeString = isLegalDateRangeString; var convertDateToString = function convertDateToString(date) { if (!date) { return ""; } var year = ""; var month = ""; var day = ""; try { ; var _date$toLocaleDateStr = date.toLocaleDateString("zh-Hans-CN").split("/"); var _date$toLocaleDateStr2 = _slicedToArray(_date$toLocaleDateStr, 3); year = _date$toLocaleDateStr2[0]; month = _date$toLocaleDateStr2[1]; day = _date$toLocaleDateStr2[2]; } catch (error) { ; var _date$toLocaleDateStr3 = date.toLocaleDateString("en-US").split("/"); var _date$toLocaleDateStr4 = _slicedToArray(_date$toLocaleDateStr3, 3); month = _date$toLocaleDateStr4[0]; day = _date$toLocaleDateStr4[1]; year = _date$toLocaleDateStr4[2]; } var addZero = function addZero(s) { if (parseInt(s, 10) < 10) { return "0".concat(s); } return s; }; return "".concat(year, "-").concat(addZero(month), "-").concat(addZero(day)); }; exports.convertDateToString = convertDateToString; var convertDateRangeToString = function convertDateRangeToString(range) { if (!range) { return ""; } var from = range[0]; var to = range[1]; if (!(from && to)) { return ""; } if (_dayPickerReact.DateUtils.isDayAfter(to, from)) { return "".concat(convertDateToString(from), " - ").concat(convertDateToString(to)); } return "".concat(convertDateToString(to), " - ").concat(convertDateToString(from)); }; exports.convertDateRangeToString = convertDateRangeToString; var clone = function clone(d) { return d ? new Date(d.getTime()) : null; }; exports.clone = clone; var isDayInRange = function isDayInRange(date, dateRange) { var exclusive = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; if (date === null || dateRange[0] === null || dateRange[1] === null) { return false; } var day = clone(date); var start = clone(dateRange[0]); var end = clone(dateRange[1]); if (day) { day.setHours(0, 0, 0, 0); } if (start) { start.setHours(0, 0, 0, 0); } if (end) { end.setHours(0, 0, 0, 0); } return start && day && end ? start <= day && day <= end && (!exclusive || !areSameDay(start, day) && !areSameDay(day, end)) : null; }; exports.isDayInRange = isDayInRange; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJNT05USFMiLCJXRUVLREFZU19MT05HIiwiV0VFS0RBWVNfU0hPUlQiLCJNT05USFNfRU4iLCJXRUVLREFZU19MT05HX0VOIiwiV0VFS0RBWVNfU0hPUlRfRU4iLCJnZXREZWZhdWx0TWF4RGF0ZSIsImRhdGUiLCJEYXRlIiwic2V0RnVsbFllYXIiLCJnZXRGdWxsWWVhciIsInNldE1vbnRoIiwiZ2V0RGVmYXVsdE1pbkRhdGUiLCJhcmVTYW1lTW9udGgiLCJkYXRlMSIsImRhdGUyIiwiZ2V0TW9udGgiLCJhcmVTYW1lRGF5IiwiZ2V0RGF0ZSIsImlzTGVnYWxEYXRlU3RyaW5nIiwidHJpbSIsInN0cmluZ3MiLCJzcGxpdCIsImxlbmd0aCIsImlzTmFOIiwiTnVtYmVyIiwiY2hlY2tMZWFwWWVhciIsInN0ciIsInNvbGFyIiwibHVuYXIiLCJ5ZWFyIiwicGFyc2VJbnQiLCJtb250aCIsImRheSIsImluY2x1ZGVzIiwiaXNMZWdhbERhdGVSYW5nZVN0cmluZyIsImNvbnZlcnREYXRlVG9TdHJpbmciLCJ0b0xvY2FsZURhdGVTdHJpbmciLCJlcnJvciIsImFkZFplcm8iLCJzIiwiY29udmVydERhdGVSYW5nZVRvU3RyaW5nIiwicmFuZ2UiLCJmcm9tIiwidG8iLCJEYXRlVXRpbHMiLCJpc0RheUFmdGVyIiwiY2xvbmUiLCJkIiwiZ2V0VGltZSIsImlzRGF5SW5SYW5nZSIsImRhdGVSYW5nZSIsImV4Y2x1c2l2ZSIsInN0YXJ0IiwiZW5kIiwic2V0SG91cnMiXSwic291cmNlcyI6WyIuLi8uLi9jb21wb25lbnRzL2RhdGUtcGlja2VyL2NvcmUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGF0ZVV0aWxzIH0gZnJvbSBcImRheS1waWNrZXItcmVhY3RcIlxuXG5leHBvcnQgY29uc3QgTU9OVEhTID0gW1xuICBcIjHmnIhcIixcbiAgXCIy5pyIXCIsXG4gIFwiM+aciFwiLFxuICBcIjTmnIhcIixcbiAgXCI15pyIXCIsXG4gIFwiNuaciFwiLFxuICBcIjfmnIhcIixcbiAgXCI45pyIXCIsXG4gIFwiOeaciFwiLFxuICBcIjEw5pyIXCIsXG4gIFwiMTHmnIhcIixcbiAgXCIxMuaciFwiLFxuXVxuZXhwb3J0IGNvbnN0IFdFRUtEQVlTX0xPTkcgPSBbXG4gIFwi5ZGo5pelXCIsXG4gIFwi5ZGo5LiAXCIsXG4gIFwi5ZGo5LqMXCIsXG4gIFwi5ZGo5LiJXCIsXG4gIFwi5ZGo5ZubXCIsXG4gIFwi5ZGo5LqUXCIsXG4gIFwi5ZGo5YWtXCIsXG5dXG5leHBvcnQgY29uc3QgV0VFS0RBWVNfU0hPUlQgPSBbXCLml6VcIiwgXCLkuIBcIiwgXCLkuoxcIiwgXCLkuIlcIiwgXCLlm5tcIiwgXCLkupRcIiwgXCLlha1cIl1cblxuZXhwb3J0IGNvbnN0IE1PTlRIU19FTiA9IFtcbiAgXCJKYW51YXJ5XCIsXG4gIFwiRmVicnVhcnlcIixcbiAgXCJNYXJjaFwiLFxuICBcIkFwcmlsXCIsXG4gIFwiTWF5XCIsXG4gIFwiSnVuZVwiLFxuICBcIkp1bHlcIixcbiAgXCJBdWd1c3RcIixcbiAgXCJTZXB0ZW1iZXJcIixcbiAgXCJPY3RvYmVyXCIsXG4gIFwiTm92ZW1iZXJcIixcbiAgXCJEZWNlbWJlclwiLFxuXVxuZXhwb3J0IGNvbnN0IFdFRUtEQVlTX0xPTkdfRU4gPSBbXG4gIFwiU3VuZGF5XCIsXG4gIFwiTW9uZGF5XCIsXG4gIFwiVHVlc2RheVwiLFxuICBcIldlZG5lc2RheVwiLFxuICBcIlRodXJzZGF5XCIsXG4gIFwiRnJpZGF5XCIsXG4gIFwiU2F0dXJkYXlcIixcbl1cbmV4cG9ydCBjb25zdCBXRUVLREFZU19TSE9SVF9FTiA9IFtcIlN1XCIsIFwiTW9cIiwgXCJUdVwiLCBcIldlXCIsIFwiVGhcIiwgXCJGclwiLCBcIlNhXCJdXG5cbmV4cG9ydCBjb25zdCBnZXREZWZhdWx0TWF4RGF0ZSA9ICgpID0+IHtcbiAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKClcbiAgZGF0ZS5zZXRGdWxsWWVhcihkYXRlLmdldEZ1bGxZZWFyKCkgKyAxKVxuICBkYXRlLnNldE1vbnRoKDExLCAzMSlcbiAgcmV0dXJuIGRhdGVcbn1cblxuZXhwb3J0IGNvbnN0IGdldERlZmF1bHRNaW5EYXRlID0gKCkgPT4ge1xuICBjb25zdCBkYXRlID0gbmV3IERhdGUoKVxuICBkYXRlLnNldEZ1bGxZZWFyKGRhdGUuZ2V0RnVsbFllYXIoKSAtIDQpXG4gIGRhdGUuc2V0TW9udGgoMCwgMSlcbiAgcmV0dXJuIGRhdGVcbn1cblxuZXhwb3J0IGNvbnN0IGFyZVNhbWVNb250aCA9IChkYXRlMT86IERhdGUgfCBudWxsLCBkYXRlMj86IERhdGUgfCBudWxsKSA9PlxuICBkYXRlMSAhPSBudWxsICYmXG4gIGRhdGUyICE9IG51bGwgJiZcbiAgZGF0ZTEuZ2V0TW9udGgoKSA9PT0gZGF0ZTIuZ2V0TW9udGgoKSAmJlxuICBkYXRlMS5nZXRGdWxsWWVhcigpID09PSBkYXRlMi5nZXRGdWxsWWVhcigpXG5cbmV4cG9ydCBjb25zdCBhcmVTYW1lRGF5ID0gKGRhdGUxOiBEYXRlLCBkYXRlMjogRGF0ZSkgPT5cbiAgYXJlU2FtZU1vbnRoKGRhdGUxLCBkYXRlMikgJiYgZGF0ZTEuZ2V0RGF0ZSgpID09PSBkYXRlMi5nZXREYXRlKClcblxuZXhwb3J0IGNvbnN0IGlzTGVnYWxEYXRlU3RyaW5nID0gKGRhdGU6IHN0cmluZykgPT4ge1xuICBpZiAoZGF0ZS50cmltKCkgPT09IFwiXCIpIHtcbiAgICByZXR1cm4gdHJ1ZVxuICB9XG4gIGNvbnN0IHN0cmluZ3MgPSBkYXRlLnNwbGl0KFwiLVwiKVxuICBpZiAoXG4gICAgc3RyaW5ncy5sZW5ndGggPT09IDMgJiZcbiAgICBzdHJpbmdzWzBdLmxlbmd0aCA9PT0gNCAmJlxuICAgIHN0cmluZ3NbMV0ubGVuZ3RoID09PSAyICYmXG4gICAgc3RyaW5nc1syXS5sZW5ndGggPT09IDIgJiZcbiAgICAhaXNOYU4oTnVtYmVyKHN0cmluZ3NbMF0pKSAmJlxuICAgICFpc05hTihOdW1iZXIoc3RyaW5nc1sxXSkpICYmXG4gICAgIWlzTmFOKE51bWJlcihzdHJpbmdzWzJdKSlcbiAgKSB7XG4gICAgY29uc3QgY2hlY2tMZWFwWWVhciA9IChzdHI6IG51bWJlcikgPT5cbiAgICAgIChzdHIgJSA0ID09PSAwICYmIHN0ciAlIDEwMCAhPT0gMCkgfHwgc3RyICUgNDAwID09PSAwXG4gICAgY29uc3Qgc29sYXIgPSBbMSwgMywgNSwgNywgOCwgMTAsIDEyXVxuICAgIGNvbnN0IGx1bmFyID0gWzQsIDYsIDksIDExXVxuICAgIGNvbnN0IHllYXIgPSBwYXJzZUludChzdHJpbmdzWzBdLCAxMClcbiAgICBjb25zdCBtb250aCA9IHBhcnNlSW50KHN0cmluZ3NbMV0sIDEwKVxuICAgIGNvbnN0IGRheSA9IHBhcnNlSW50KHN0cmluZ3NbMl0sIDEwKVxuICAgIGlmIChtb250aCA+IDAgJiYgbW9udGggPCAxMykge1xuICAgICAgaWYgKHNvbGFyLmluY2x1ZGVzKG1vbnRoKSkge1xuICAgICAgICBpZiAoZGF5ID4gMCAmJiBkYXkgPCAzMikge1xuICAgICAgICAgIHJldHVybiB0cnVlXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAobHVuYXIuaW5jbHVkZXMobW9udGgpKSB7XG4gICAgICAgIGlmIChkYXkgPiAwICYmIGRheSA8IDMxKSB7XG4gICAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKGNoZWNrTGVhcFllYXIoeWVhcikgJiYgZGF5ID4gMCAmJiBkYXkgPCAzMCkge1xuICAgICAgICAgIHJldHVybiB0cnVlXG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFjaGVja0xlYXBZZWFyKHllYXIpICYmIGRheSA+IDAgJiYgZGF5IDwgMjkpIHtcbiAgICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmYWxzZVxuICB9XG4gIHJldHVybiBmYWxzZVxufVxuXG5leHBvcnQgY29uc3QgaXNMZWdhbERhdGVSYW5nZVN0cmluZyA9IChkYXRlOiBzdHJpbmcpID0+IHtcbiAgaWYgKGRhdGUudHJpbSgpID09PSBcIlwiKSB7XG4gICAgcmV0dXJuIHRydWVcbiAgfVxuICBjb25zdCBzdHJpbmdzID0gZGF0ZS5zcGxpdChcIiAtIFwiKVxuICByZXR1cm4gKFxuICAgIHN0cmluZ3MubGVuZ3RoID09PSAyICYmXG4gICAgc3RyaW5nc1swXS5sZW5ndGggJiZcbiAgICBzdHJpbmdzWzFdLmxlbmd0aCAmJlxuICAgIGlzTGVnYWxEYXRlU3RyaW5nKHN0cmluZ3NbMF0pICYmXG4gICAgaXNMZWdhbERhdGVTdHJpbmcoc3RyaW5nc1sxXSlcbiAgKVxufVxuXG5leHBvcnQgY29uc3QgY29udmVydERhdGVUb1N0cmluZyA9IChkYXRlPzogRGF0ZSB8IFwiXCIgfCBudWxsKSA9PiB7XG4gIGlmICghZGF0ZSkge1xuICAgIHJldHVybiBcIlwiXG4gIH1cbiAgbGV0IHllYXIgPSBcIlwiXG4gIGxldCBtb250aCA9IFwiXCJcbiAgbGV0IGRheSA9IFwiXCJcbiAgdHJ5IHtcbiAgICA7W3llYXIsIG1vbnRoLCBkYXldID0gZGF0ZS50b0xvY2FsZURhdGVTdHJpbmcoXCJ6aC1IYW5zLUNOXCIpLnNwbGl0KFwiL1wiKVxuICB9IGNhdGNoIChlcnJvcikge1xuICAgIDtbbW9udGgsIGRheSwgeWVhcl0gPSBkYXRlLnRvTG9jYWxlRGF0ZVN0cmluZyhcImVuLVVTXCIpLnNwbGl0KFwiL1wiKVxuICB9XG5cbiAgY29uc3QgYWRkWmVybyA9IChzOiBzdHJpbmcpID0+IHtcbiAgICBpZiAocGFyc2VJbnQocywgMTApIDwgMTApIHtcbiAgICAgIHJldHVybiBgMCR7c31gXG4gICAgfVxuICAgIHJldHVybiBzXG4gIH1cbiAgcmV0dXJuIGAke3llYXJ9LSR7YWRkWmVybyhtb250aCl9LSR7YWRkWmVybyhkYXkpfWBcbn1cblxuZXhwb3J0IGNvbnN0IGNvbnZlcnREYXRlUmFuZ2VUb1N0cmluZyA9IChcbiAgcmFuZ2U/OiBbRGF0ZSB8IHVuZGVmaW5lZCB8IG51bGwsIERhdGUgfCB1bmRlZmluZWQgfCBudWxsXVxuKSA9PiB7XG4gIGlmICghcmFuZ2UpIHtcbiAgICByZXR1cm4gXCJcIlxuICB9XG4gIGNvbnN0IGZyb20gPSByYW5nZVswXVxuICBjb25zdCB0byA9IHJhbmdlWzFdXG4gIGlmICghKGZyb20gJiYgdG8pKSB7XG4gICAgcmV0dXJuIFwiXCJcbiAgfVxuICBpZiAoRGF0ZVV0aWxzLmlzRGF5QWZ0ZXIodG8sIGZyb20pKSB7XG4gICAgcmV0dXJuIGAke2NvbnZlcnREYXRlVG9TdHJpbmcoZnJvbSl9IC0gJHtjb252ZXJ0RGF0ZVRvU3RyaW5nKHRvKX1gXG4gIH1cbiAgcmV0dXJuIGAke2NvbnZlcnREYXRlVG9TdHJpbmcodG8pfSAtICR7Y29udmVydERhdGVUb1N0cmluZyhmcm9tKX1gXG59XG5cbmV4cG9ydCBjb25zdCBjbG9uZSA9IChkOiBEYXRlIHwgbnVsbCB8IHVuZGVmaW5lZCkgPT5cbiAgZCA/IG5ldyBEYXRlKGQuZ2V0VGltZSgpKSA6IG51bGxcblxuZXhwb3J0IGNvbnN0IGlzRGF5SW5SYW5nZSA9IChcbiAgZGF0ZTogRGF0ZSxcbiAgZGF0ZVJhbmdlOiBbRGF0ZSB8IG51bGwgfCB1bmRlZmluZWQsIERhdGUgfCBudWxsIHwgdW5kZWZpbmVkXSxcbiAgZXhjbHVzaXZlOiBib29sZWFuID0gZmFsc2VcbikgPT4ge1xuICBpZiAoZGF0ZSA9PT0gbnVsbCB8fCBkYXRlUmFuZ2VbMF0gPT09IG51bGwgfHwgZGF0ZVJhbmdlWzFdID09PSBudWxsKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICBjb25zdCBkYXkgPSBjbG9uZShkYXRlKVxuICBjb25zdCBzdGFydCA9IGNsb25lKGRhdGVSYW5nZVswXSlcbiAgY29uc3QgZW5kID0gY2xvbmUoZGF0ZVJhbmdlWzFdKVxuXG4gIGlmIChkYXkpIHtcbiAgICBkYXkuc2V0SG91cnMoMCwgMCwgMCwgMClcbiAgfVxuICBpZiAoc3RhcnQpIHtcbiAgICBzdGFydC5zZXRIb3VycygwLCAwLCAwLCAwKVxuICB9XG4gIGlmIChlbmQpIHtcbiAgICBlbmQuc2V0SG91cnMoMCwgMCwgMCwgMClcbiAgfVxuXG4gIHJldHVybiBzdGFydCAmJiBkYXkgJiYgZW5kXG4gICAgPyBzdGFydCA8PSBkYXkgJiZcbiAgICAgICAgZGF5IDw9IGVuZCAmJlxuICAgICAgICAoIWV4Y2x1c2l2ZSB8fCAoIWFyZVNhbWVEYXkoc3RhcnQsIGRheSkgJiYgIWFyZVNhbWVEYXkoZGF5LCBlbmQpKSlcbiAgICA6IG51bGxcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBOzs7Ozs7Ozs7Ozs7OztBQUVPLElBQU1BLE1BQU0sR0FBRyxDQUNwQixJQURvQixFQUVwQixJQUZvQixFQUdwQixJQUhvQixFQUlwQixJQUpvQixFQUtwQixJQUxvQixFQU1wQixJQU5vQixFQU9wQixJQVBvQixFQVFwQixJQVJvQixFQVNwQixJQVRvQixFQVVwQixLQVZvQixFQVdwQixLQVhvQixFQVlwQixLQVpvQixDQUFmOztBQWNBLElBQU1DLGFBQWEsR0FBRyxDQUMzQixJQUQyQixFQUUzQixJQUYyQixFQUczQixJQUgyQixFQUkzQixJQUoyQixFQUszQixJQUwyQixFQU0zQixJQU4yQixFQU8zQixJQVAyQixDQUF0Qjs7QUFTQSxJQUFNQyxjQUFjLEdBQUcsQ0FBQyxHQUFELEVBQU0sR0FBTixFQUFXLEdBQVgsRUFBZ0IsR0FBaEIsRUFBcUIsR0FBckIsRUFBMEIsR0FBMUIsRUFBK0IsR0FBL0IsQ0FBdkI7O0FBRUEsSUFBTUMsU0FBUyxHQUFHLENBQ3ZCLFNBRHVCLEVBRXZCLFVBRnVCLEVBR3ZCLE9BSHVCLEVBSXZCLE9BSnVCLEVBS3ZCLEtBTHVCLEVBTXZCLE1BTnVCLEVBT3ZCLE1BUHVCLEVBUXZCLFFBUnVCLEVBU3ZCLFdBVHVCLEVBVXZCLFNBVnVCLEVBV3ZCLFVBWHVCLEVBWXZCLFVBWnVCLENBQWxCOztBQWNBLElBQU1DLGdCQUFnQixHQUFHLENBQzlCLFFBRDhCLEVBRTlCLFFBRjhCLEVBRzlCLFNBSDhCLEVBSTlCLFdBSjhCLEVBSzlCLFVBTDhCLEVBTTlCLFFBTjhCLEVBTzlC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