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
JavaScript
;
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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