{"version":3,"file":"dep-336f833d.mjs","sources":["../../node_modules/dayjs/plugin/isoWeeksInYear.js","../../node_modules/dayjs/plugin/isLeapYear.js","../../node_modules/@babel/runtime/helpers/esm/objectDestructuringEmpty.js","../../node_modules/@babel/runtime/helpers/esm/extends.js","../../node_modules/dayjs/plugin/isBetween.js","../../node_modules/dayjs/plugin/weekOfYear.js","../../node_modules/dayjs/plugin/weekYear.js","../../node_modules/dayjs/plugin/localeData.js","../../node_modules/dayjs/plugin/quarterOfYear.js","../../node_modules/lodash/toFinite.js","../../node_modules/lodash/toInteger.js","../../node_modules/lodash/chunk.js","../../src/_common/js/date-picker/utils.ts","../../src/_common/js/date-picker/format.ts"],"sourcesContent":["!function(e,n){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=n():\"function\"==typeof define&&define.amd?define(n):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_isoWeeksInYear=n()}(this,(function(){\"use strict\";return function(e,n){n.prototype.isoWeeksInYear=function(){var e=this.isLeapYear(),n=this.endOf(\"y\").day();return 4===n||e&&5===n?53:52}}}));","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_isLeapYear=t()}(this,(function(){\"use strict\";return function(e,t){t.prototype.isLeapYear=function(){return this.$y%4==0&&this.$y%100!=0||this.$y%400==0}}}));","function _objectDestructuringEmpty(t) {\n  if (null == t) throw new TypeError(\"Cannot destructure \" + t);\n}\nexport { _objectDestructuringEmpty as default };","function _extends() {\n  return _extends = Object.assign ? Object.assign.bind() : function (n) {\n    for (var e = 1; e < arguments.length; e++) {\n      var t = arguments[e];\n      for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n    }\n    return n;\n  }, _extends.apply(null, arguments);\n}\nexport { _extends as default };","!function(e,i){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=i():\"function\"==typeof define&&define.amd?define(i):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_isBetween=i()}(this,(function(){\"use strict\";return function(e,i,t){i.prototype.isBetween=function(e,i,s,f){var n=t(e),o=t(i),r=\"(\"===(f=f||\"()\")[0],u=\")\"===f[1];return(r?this.isAfter(n,s):!this.isBefore(n,s))&&(u?this.isBefore(o,s):!this.isAfter(o,s))||(r?this.isBefore(n,s):!this.isAfter(n,s))&&(u?this.isAfter(o,s):!this.isBefore(o,s))}}}));","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_weekOfYear=t()}(this,(function(){\"use strict\";var e=\"week\",t=\"year\";return function(i,n,r){var f=n.prototype;f.week=function(i){if(void 0===i&&(i=null),null!==i)return this.add(7*(i-this.week()),\"day\");var n=this.$locale().yearStart||1;if(11===this.month()&&this.date()>25){var f=r(this).startOf(t).add(1,t).date(n),s=r(this).endOf(e);if(f.isBefore(s))return 1}var a=r(this).startOf(t).date(n).startOf(e).subtract(1,\"millisecond\"),o=this.diff(a,e,!0);return o<0?r(this).startOf(\"week\").week():Math.ceil(o)},f.weeks=function(e){return void 0===e&&(e=null),this.week(e)}}}));","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_weekYear=t()}(this,(function(){\"use strict\";return function(e,t){t.prototype.weekYear=function(){var e=this.month(),t=this.week(),n=this.year();return 1===t&&11===e?n+1:0===e&&t>=52?n-1:n}}}));","!function(n,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(n=\"undefined\"!=typeof globalThis?globalThis:n||self).dayjs_plugin_localeData=e()}(this,(function(){\"use strict\";return function(n,e,t){var r=e.prototype,o=function(n){return n&&(n.indexOf?n:n.s)},u=function(n,e,t,r,u){var i=n.name?n:n.$locale(),a=o(i[e]),s=o(i[t]),f=a||s.map((function(n){return n.slice(0,r)}));if(!u)return f;var d=i.weekStart;return f.map((function(n,e){return f[(e+(d||0))%7]}))},i=function(){return t.Ls[t.locale()]},a=function(n,e){return n.formats[e]||function(n){return n.replace(/(\\[[^\\]]+])|(MMMM|MM|DD|dddd)/g,(function(n,e,t){return e||t.slice(1)}))}(n.formats[e.toUpperCase()])},s=function(){var n=this;return{months:function(e){return e?e.format(\"MMMM\"):u(n,\"months\")},monthsShort:function(e){return e?e.format(\"MMM\"):u(n,\"monthsShort\",\"months\",3)},firstDayOfWeek:function(){return n.$locale().weekStart||0},weekdays:function(e){return e?e.format(\"dddd\"):u(n,\"weekdays\")},weekdaysMin:function(e){return e?e.format(\"dd\"):u(n,\"weekdaysMin\",\"weekdays\",2)},weekdaysShort:function(e){return e?e.format(\"ddd\"):u(n,\"weekdaysShort\",\"weekdays\",3)},longDateFormat:function(e){return a(n.$locale(),e)},meridiem:this.$locale().meridiem,ordinal:this.$locale().ordinal}};r.localeData=function(){return s.bind(this)()},t.localeData=function(){var n=i();return{firstDayOfWeek:function(){return n.weekStart||0},weekdays:function(){return t.weekdays()},weekdaysShort:function(){return t.weekdaysShort()},weekdaysMin:function(){return t.weekdaysMin()},months:function(){return t.months()},monthsShort:function(){return t.monthsShort()},longDateFormat:function(e){return a(n,e)},meridiem:n.meridiem,ordinal:n.ordinal}},t.months=function(){return u(i(),\"months\")},t.monthsShort=function(){return u(i(),\"monthsShort\",\"months\",3)},t.weekdays=function(n){return u(i(),\"weekdays\",null,null,n)},t.weekdaysShort=function(n){return u(i(),\"weekdaysShort\",\"weekdays\",3,n)},t.weekdaysMin=function(n){return u(i(),\"weekdaysMin\",\"weekdays\",2,n)}}}));","!function(t,n){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=n():\"function\"==typeof define&&define.amd?define(n):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs_plugin_quarterOfYear=n()}(this,(function(){\"use strict\";var t=\"month\",n=\"quarter\";return function(e,i){var r=i.prototype;r.quarter=function(t){return this.$utils().u(t)?Math.ceil((this.month()+1)/3):this.month(this.month()%3+3*(t-1))};var s=r.add;r.add=function(e,i){return e=Number(e),this.$utils().p(i)===n?this.add(3*e,t):s.bind(this)(e,i)};var u=r.startOf;r.startOf=function(e,i){var r=this.$utils(),s=!!r.u(i)||i;if(r.p(e)===n){var o=this.quarter()-1;return s?this.month(3*o).startOf(t).startOf(\"day\"):this.month(3*o+2).endOf(t).endOf(\"day\")}return u.bind(this)(e,i)}}}));","var toNumber = require('./toNumber');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0,\n    MAX_INTEGER = 1.7976931348623157e+308;\n\n/**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\nfunction toFinite(value) {\n  if (!value) {\n    return value === 0 ? value : 0;\n  }\n  value = toNumber(value);\n  if (value === INFINITY || value === -INFINITY) {\n    var sign = (value < 0 ? -1 : 1);\n    return sign * MAX_INTEGER;\n  }\n  return value === value ? value : 0;\n}\n\nmodule.exports = toFinite;\n","var toFinite = require('./toFinite');\n\n/**\n * Converts `value` to an integer.\n *\n * **Note:** This method is loosely based on\n * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * // => 3\n */\nfunction toInteger(value) {\n  var result = toFinite(value),\n      remainder = result % 1;\n\n  return result === result ? (remainder ? result - remainder : result) : 0;\n}\n\nmodule.exports = toInteger;\n","var baseSlice = require('./_baseSlice'),\n    isIterateeCall = require('./_isIterateeCall'),\n    toInteger = require('./toInteger');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeCeil = Math.ceil,\n    nativeMax = Math.max;\n\n/**\n * Creates an array of elements split into groups the length of `size`.\n * If `array` can't be split evenly, the final chunk will be the remaining\n * elements.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to process.\n * @param {number} [size=1] The length of each chunk\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the new array of chunks.\n * @example\n *\n * _.chunk(['a', 'b', 'c', 'd'], 2);\n * // => [['a', 'b'], ['c', 'd']]\n *\n * _.chunk(['a', 'b', 'c', 'd'], 3);\n * // => [['a', 'b', 'c'], ['d']]\n */\nfunction chunk(array, size, guard) {\n  if ((guard ? isIterateeCall(array, size, guard) : size === undefined)) {\n    size = 1;\n  } else {\n    size = nativeMax(toInteger(size), 0);\n  }\n  var length = array == null ? 0 : array.length;\n  if (!length || size < 1) {\n    return [];\n  }\n  var index = 0,\n      resIndex = 0,\n      result = Array(nativeCeil(length / size));\n\n  while (index < length) {\n    result[resIndex++] = baseSlice(array, index, (index += size));\n  }\n  return result;\n}\n\nmodule.exports = chunk;\n","import isFunction from 'lodash/isFunction';\nimport dayjs from 'dayjs';\nimport dayJsIsBetween from 'dayjs/plugin/isBetween';\nimport weekOfYear from 'dayjs/plugin/weekOfYear';\nimport weekYear from 'dayjs/plugin/weekYear';\nimport localeData from 'dayjs/plugin/localeData';\nimport quarterOfYear from 'dayjs/plugin/quarterOfYear';\nimport advancedFormat from 'dayjs/plugin/advancedFormat';\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\nimport chunk from 'lodash/chunk';\nimport { parseToDayjs } from './format';\n\ndayjs.extend(weekOfYear);\ndayjs.extend(weekYear);\ndayjs.extend(localeData);\ndayjs.extend(quarterOfYear);\ndayjs.extend(advancedFormat);\ndayjs.extend(customParseFormat);\ndayjs.extend(dayJsIsBetween);\n\n/**\n * 首字母大写\n * @param {String} str 目标字符串\n * @returns {String}\n */\nexport function firstUpperCase(str: string): string {\n  if (!str) return str;\n  return str[0].toUpperCase().concat(str.substring(1, str.length));\n}\n\ninterface DateObj {\n  year: number;\n  month: number;\n}\n\n/**\n * 返回指定年、月的第一天日期\n * @param {Object} { year, month }\n * @returns {Date}\n */\nfunction getFirstDayOfMonth({ year, month }: DateObj): Date {\n  return new Date(year, month, 1);\n}\n\n/**\n * 返回指定年、月的天数\n * @param {Object} { year, month }\n * @returns {Number}\n */\nfunction getDaysInMonth({ year, month }: DateObj): number {\n  return new Date(year, month + 1, 0).getDate();\n}\n\n/**\n * 返回指定年、月的最后一天日期\n * @param {Object} { year, month }\n * @returns {Date}\n */\nfunction getLastDayOfMonth({ year, month }: DateObj): Date {\n  return new Date(year, month, getDaysInMonth({ year, month }));\n}\n\nfunction isSameYear(date1: Date, date2: Date): boolean {\n  return date1.getFullYear() === date2.getFullYear();\n}\n\nfunction isSameQuarter(date1: Date, date2: Date): boolean {\n  return isSameYear(date1, date2) && dayjs(date1).quarter() === dayjs(date2).quarter();\n}\n\nfunction isSameMonth(date1: Date, date2: Date): boolean {\n  return isSameYear(date1, date2) && date1.getMonth() === date2.getMonth();\n}\n\nfunction isSameWeek(date1: Date, date2: Date, dayjsLocale = 'zh-cn'): boolean {\n  return isSameMonth(date1, date2) && dayjs(date1).locale(dayjsLocale).week() === dayjs(date2).locale(dayjsLocale).week();\n}\n\nfunction isSameDate(date1: Date, date2: Date): boolean {\n  return isSameMonth(date1, date2) && date1.getDate() === date2.getDate();\n}\n\n/**\n * 比较两个日期对象的时间戳\n * @param {Date} date1 日期1\n * @param {Date} date2 日期2\n * @returns {Number} 返回 date1.getTime() - date2.getTime() 的差值\n */\nfunction compareAsc(date1: { getTime: () => any }, date2: Date): number {\n  const d1 = date1.getTime();\n  const d2 = date2.getTime();\n\n  if (d1 < d2) return -1;\n  if (d1 > d2) return 1;\n  return 0;\n}\n\n/**\n * 比较两个 Date 是否是同一天 或则 同一月 或则 同一年\n * @param {Date} date1 比较的日期\n * @param {Date} date2 比较的日期\n * @param {String} type 比较类型，默认比较到『日』 date|month|year\n * @returns {Boolean}\n */\nexport function isSame(date1: Date, date2: Date, type = 'date', dayjsLocale = 'zh-cn'): boolean {\n  const func = {\n    isSameYear,\n    isSameQuarter,\n    isSameMonth,\n    isSameWeek,\n    isSameDate,\n  };\n  return func[`isSame${firstUpperCase(type)}`](date1, date2, dayjsLocale);\n}\n\nexport function outOfRanges(d: Date, min: any, max: any) {\n  return (min && compareAsc(d, min) === -1) || (max && compareAsc(d, max) === 1);\n}\n\n/**\n * @returns {Date} 当天零点的日期对象\n */\nexport function getToday(): Date {\n  const now = new Date();\n  return new Date(now.getFullYear(), now.getMonth(), now.getDate(), 0, 0, 0);\n}\n\n/**\n * 返回日期对象的年、月、日、小时、分钟、秒、12小时制标识\n * @param {Date} date\n * @returns {Object}\n */\nexport function getDateObj(date: Date) {\n  let tempDate = date;\n  if (!(date instanceof Date)) {\n    tempDate = getToday();\n  }\n  return {\n    year: tempDate.getFullYear(),\n    month: tempDate.getMonth(),\n    date: tempDate.getDate(),\n    hours: tempDate.getHours(),\n    minutes: tempDate.getMinutes(),\n    seconds: tempDate.getSeconds(),\n    milliseconds: tempDate.getMilliseconds(),\n    meridiem: tempDate.getHours() > 11 ? 'PM' : 'AM',\n  };\n}\n\n/**\n * 设置日期对象的时间部分\n * @param {Date} date 日期\n * @param {Number} hours 小时\n * @param {Number} minutes 分钟\n * @param {Number} seconds 秒\n * @param {Number} milliseconds 毫秒\n * @returns {Date} 一个新的date\n */\nexport function setDateTime(\n  date: Date,\n  hours: number,\n  minutes: number,\n  seconds: number,\n  milliseconds?: number\n): Date {\n  return dayjs(date)\n    .hour(hours)\n    .minute(minutes)\n    .second(seconds)\n    .millisecond(milliseconds)\n    .toDate();\n}\n\n/**\n * 减少月份\n * @param {Date} date 起始日期\n * @param {Number} num 月份数\n * @returns {Date}\n */\nexport function subtractMonth(date: Date, num: number): Date {\n  return dayjs(date).subtract(num, 'month').toDate();\n}\n\n/**\n * 增加月份\n * @param {Date} date 起始日期\n * @param {Number} num 月份数\n * @returns {Date}\n */\nexport function addMonth(date: Date, num: number): Date {\n  return dayjs(date).add(num, 'month').toDate();\n}\n\nexport type DateValue = string | Date | number;\nexport interface DisableDateObj { from?: string; to?: string; before?: string; after?: string }\nexport type DisableDate = Array<DateValue> | DisableDateObj | ((date: DateValue) => boolean);\n\nexport interface OptionsType {\n  firstDayOfWeek: number;\n  disableDate: DisableDate;\n  minDate: Date;\n  maxDate: Date;\n  showWeekOfYear?: Boolean;\n  dayjsLocale?: string;\n  monthLocal?: string[];\n  quarterLocal?: string[];\n  cancelRangeSelectLimit?: boolean;\n}\n\nexport function getWeeks(\n  { year, month }: { year: number; month: number },\n  {\n    firstDayOfWeek,\n    showWeekOfYear = false,\n    disableDate = () => false,\n    minDate,\n    maxDate,\n    dayjsLocale = 'zh-cn',\n    cancelRangeSelectLimit = false,\n  }: OptionsType,\n) {\n  const prependDay = getFirstDayOfMonth({ year, month });\n  const appendDay = getLastDayOfMonth({ year, month });\n  const maxDays = getDaysInMonth({ year, month });\n  const daysArr = [];\n  let i = 1;\n  const today = getToday();\n  for (i; i <= maxDays; i++) {\n    const currentDay = new Date(year, month, i);\n    daysArr.push({\n      text: i,\n      active: false,\n      value: currentDay,\n      disabled: (isFunction(disableDate) && disableDate(currentDay))\n        || (!cancelRangeSelectLimit && outOfRanges(currentDay, minDate, maxDate)),\n      now: isSame(today, currentDay),\n      firstDayOfMonth: i === 1,\n      lastDayOfMonth: i === maxDays,\n      type: 'current-month',\n      dayjsObj: dayjs(currentDay).locale(dayjsLocale),\n    });\n  }\n\n  if (prependDay.getDay() !== firstDayOfWeek) {\n    prependDay.setDate(0); // 上一月\n    while (true) {\n      daysArr.unshift({\n        text: prependDay.getDate().toString(),\n        active: false,\n        value: new Date(prependDay),\n        disabled: (isFunction(disableDate) && disableDate(prependDay)) || (!cancelRangeSelectLimit && outOfRanges(prependDay, minDate, maxDate)),\n        additional: true, // 非当前月\n        type: 'prev-month',\n        dayjsObj: dayjs(prependDay).locale(dayjsLocale),\n      });\n      prependDay.setDate(prependDay.getDate() - 1);\n      if (prependDay.getDay() === Math.abs(firstDayOfWeek + 6) % 7) break;\n    }\n  }\n\n  const LEN = 42; // 显示6周\n  while (daysArr.length < LEN) {\n    appendDay.setDate(appendDay.getDate() + 1);\n    daysArr.push({\n      text: appendDay.getDate(),\n      active: false,\n      value: new Date(appendDay),\n      disabled: (isFunction(disableDate) && disableDate(appendDay)) || (!cancelRangeSelectLimit && outOfRanges(appendDay, minDate, maxDate)),\n      additional: true, // 非当前月\n      type: 'next-month',\n      dayjsObj: dayjs(appendDay).locale(dayjsLocale),\n    });\n  }\n\n  const dataList = chunk(daysArr, 7);\n  // 显示周数\n  if (showWeekOfYear) {\n    dataList.forEach((d) => {\n      d.unshift({\n        ...d[0],\n        active: false,\n        value: d[0].value,\n        text: dayjs(d[0].value).locale(dayjsLocale).week(),\n        dayjsObj: dayjs(d[0].value).locale(dayjsLocale),\n      });\n    });\n  }\n\n  return dataList;\n}\n\nexport function getQuarters(\n  year: number,\n  {\n    disableDate = () => false,\n    minDate,\n    maxDate,\n    quarterLocal,\n    dayjsLocale = 'zh-cn',\n    cancelRangeSelectLimit = false,\n  }: OptionsType,\n) {\n  const quarterArr = [];\n  const today = getToday();\n\n  for (let i = 1; i <= 4; i++) {\n    const date = dayjs(new Date(year, 0)).quarter(i).toDate();\n\n    quarterArr.push({\n      value: date,\n      now: isSame(date, today, 'quarter'),\n      disabled: (isFunction(disableDate) && disableDate(date)) || (!cancelRangeSelectLimit && outOfRanges(date, minDate, maxDate)),\n      active: false,\n      text: quarterLocal[i - 1],\n      dayjsObj: dayjs(date).locale(dayjsLocale),\n    });\n  }\n\n  return chunk(quarterArr, 4);\n}\n\nexport function getYears(\n  year: number,\n  {\n    disableDate = () => false,\n    minDate,\n    maxDate,\n    dayjsLocale = 'zh-cn',\n    cancelRangeSelectLimit = false,\n  }: OptionsType,\n) {\n  const startYear = parseInt((year / 10).toString(), 10) * 10;\n  const endYear = startYear + 9;\n\n  const yearArr = [];\n\n  const today = getToday();\n\n  for (let i = startYear; i <= endYear; i++) {\n    const date = new Date(i, 1);\n\n    yearArr.push({\n      value: date,\n      now: isSame(date, today, 'year'),\n      disabled: (isFunction(disableDate) && disableDate(date)) || (!cancelRangeSelectLimit && outOfRanges(date, minDate, maxDate)),\n      active: false,\n      text: `${date.getFullYear()}`,\n      dayjsObj: dayjs(date).locale(dayjsLocale),\n    });\n  }\n\n  return chunk(yearArr, 3);\n}\n\nexport function getMonths(year: number, params: OptionsType) {\n  const {\n    disableDate = () => false, minDate, maxDate, monthLocal, dayjsLocale = 'zh-cn', cancelRangeSelectLimit = false,\n  } = params;\n  const MonthArr = [];\n  const today = getToday();\n\n  for (let i = 0; i <= 11; i++) {\n    const date = new Date(year, i);\n\n    MonthArr.push({\n      value: date,\n      now: isSame(date, today, 'month'),\n      disabled: (isFunction(disableDate) && disableDate(date)) || (!cancelRangeSelectLimit && outOfRanges(date, minDate, maxDate)),\n      active: false,\n      text: monthLocal[date.getMonth()], // `${date.getMonth() + 1} ${monthText || '月'}`,\n      dayjsObj: dayjs(date).locale(dayjsLocale),\n    });\n  }\n\n  return chunk(MonthArr, 3);\n}\n\nexport interface DateTime {\n  additional: boolean;\n  active: boolean;\n  highlight: boolean;\n  hoverHighlight: boolean;\n  startOfRange: boolean;\n  endOfRange: boolean;\n  hoverStartOfRange: boolean;\n  hoverEndOfRange: boolean;\n  value: Date;\n}\n\ninterface FlagActiveOptions {\n  start: Date;\n  end: Date;\n  hoverStart: Date;\n  hoverEnd: Date;\n  type: any;\n  isRange: boolean;\n  value: DateValue | DateValue[];\n  multiple: boolean;\n}\n\nexport function flagActive(data: any[], { ...args }: FlagActiveOptions) {\n  const {\n    start,\n    end,\n    hoverStart,\n    hoverEnd,\n    type = 'date',\n    isRange = false,\n    value,\n    multiple = false,\n  } = args;\n\n  // 周选择器不更改 cell 样式\n  if (type === 'week') return data;\n\n  if (!isRange) {\n    return data.map((row: any[]) => row.map((item: DateTime) => {\n      const _item = item;\n\n      if (multiple) {\n        _item.active = (value as DateValue[])?.some?.((val) => isSame(dayjs(val).toDate(), _item.value, type) && !_item.additional);\n      } else {\n        _item.active = start && isSame(item.value, start, type) && !_item.additional;\n      }\n\n      return _item;\n    }));\n  }\n\n  return data.map((row: any[]) => row.map((item: DateTime) => {\n    const _item = item;\n    const date = item.value;\n\n    const isStart = start && isSame(start, date, type);\n    const isHoverStart = hoverStart && isSame(hoverStart, date, type);\n    const isEnd = end && isSame(end, date, type);\n    const isHoverEnd = hoverEnd && isSame(hoverEnd, date, type);\n    _item.active = (isStart || isEnd) && !_item.additional;\n\n    if (start && end) {\n      _item.highlight = dayjs(date).isBetween(start, end, type, '[]') && !_item.additional;\n      _item.startOfRange = isStart;\n      _item.endOfRange = isEnd;\n    }\n\n    if (hoverStart && hoverEnd) {\n      _item.hoverHighlight = dayjs(date).isBetween(hoverStart, hoverEnd, type, '[]') && !_item.additional;\n      _item.hoverStartOfRange = isHoverStart;\n      _item.hoverEndOfRange = isHoverEnd;\n    }\n    return _item;\n  }));\n}\n\n// extract time format from a completed date format 'YYYY-MM-DD HH:mm' -> 'HH:mm'\nexport function extractTimeFormat(dateFormat: string = '') {\n  return dateFormat\n    .replace(/\\W?Y{2,4}|\\W?D{1,2}|\\W?Do|\\W?d{1,4}|\\W?M{1,4}|\\W?y{2,4}/g, '')\n    .trim();\n}\n\n/**\n * 返回时间对象的小时、分钟、秒、12小时制标识\n * @param {String} timeFormat 'pm 20:11:11:333'\n * @returns {Object}\n */\nexport function extractTimeObj(timeFormat: string = '') {\n  const matchedMeridiem = timeFormat.match(/[ap]m/i) || [''];\n  const timeReg = /\\d{1,2}(:\\d{1,2})?(:\\d{1,2})?(:\\d{1,3})?/;\n  const matchedTimeStr = timeFormat.match(timeReg) || ['0:0:0:0'];\n  const [hours = 0, minutes = 0, seconds = 0, milliseconds = 0] = matchedTimeStr[0].split(':');\n\n  return {\n    hours: +hours,\n    minutes: +minutes,\n    seconds: +seconds,\n    milliseconds: +milliseconds,\n    meridiem: matchedMeridiem[0],\n  };\n}\n\n/**\n * 日期是否可用\n * @param {Object} { value, disableDate, mode, format }\n * @returns {Boolean}\n */\nexport function isEnabledDate({\n  value,\n  disableDate,\n  mode,\n  format,\n}: {\n  value: Date;\n  mode: 'year' | 'month' | 'date' | 'quarter' | 'week';\n  format: string;\n  disableDate: any;\n}): boolean {\n  if (!disableDate) return true;\n\n  const availableMode = mode === 'quarter' ? 'date' : mode;\n\n  let isEnabled = true;\n  // 值类型为 Function 则表示返回值为 true 的日期会被禁用\n  if (isFunction(disableDate)) {\n    return !disableDate(value);\n  }\n\n  // 禁用日期，示例：['A', 'B'] 表示日期 A 和日期 B 会被禁用。\n  if (Array.isArray(disableDate)) {\n    const formattedDisabledDate = disableDate.map((item: string) => parseToDayjs(item, format));\n    // eslint-disable-next-line\n    const isIncludes = formattedDisabledDate.some(item => item.isSame(dayjs(value)));\n    return !isIncludes;\n  }\n\n  // { from: 'A', to: 'B' } 表示在 A 到 B 之间的日期会被禁用。\n  // eslint-disable-next-line\n  const { from, to, before, after } = disableDate;\n\n  if (from && to) {\n    const compareMin = dayjs(new Date(from));\n    const compareMax = dayjs(new Date(to));\n\n    return !dayjs(value).isBetween(compareMin, compareMax, availableMode, '[]');\n  }\n\n  const min = before ? new Date(before) : null;\n  const max = after ? new Date(after) : null;\n\n  // { before: 'A', after: 'B' } 表示在 A 之前和在 B 之后的日期都会被禁用。\n  if (max && min) {\n    const compareMin = dayjs(new Date(min));\n    const compareMax = dayjs(new Date(max));\n\n    isEnabled = dayjs(value).isBetween(compareMin, compareMax, availableMode, '[]');\n  } else if (min) {\n    const compareMin = dayjs(new Date(min));\n    isEnabled = !dayjs(value).isBefore(compareMin, availableMode);\n  } else if (max) {\n    const compareMax = dayjs(new Date(max));\n    isEnabled = !dayjs(value).isAfter(compareMax, availableMode);\n  }\n  return isEnabled;\n}\n\n/**\n * formatDate 方法需要date作为入参，部分场景需要将timestamp或格式化后的时间string转换为date进行使用\n */\nexport function covertToDate(value: string, valueType: string) {\n  return valueType === 'time-stamp'\n    ? new Date(value)\n    : dayjs(value, valueType).toDate();\n}\n","import isString from 'lodash/isString';\nimport dayjs from 'dayjs';\nimport isoWeeksInYear from 'dayjs/plugin/isoWeeksInYear';\nimport isLeapYear from 'dayjs/plugin/isLeapYear';\nimport { extractTimeFormat } from './utils';\nimport log from '../log';\n\ntype DateValue = string | number | Date;\n\ndayjs.extend(isoWeeksInYear);\ndayjs.extend(isLeapYear);\n\nexport const TIME_FORMAT = 'HH:mm:ss';\n\n// 统一解析日期格式字符串成 Dayjs 对象\nexport function parseToDayjs(\n  value: string | Date | number,\n  format: string,\n  timeOfDay?: string,\n  dayjsLocale?: string,\n) {\n  if (value === '' || value === null) return dayjs();\n\n  let dateText = value;\n  // format week\n  if (/[w|W]/g.test(format)) {\n    if (!isString(dateText)) {\n      dateText = dayjs(dateText).locale(dayjsLocale || 'zh-cn').format(format) as string;\n    }\n\n    const yearStr = dateText.split(/[-/.\\s]/)[0];\n    const weekStr = dateText.split(/[-/.\\s]/)[1];\n    const weekFormatStr = format.split(/[-/.\\s]/)[1];\n\n    let firstWeek = dayjs(yearStr, 'YYYY').locale(dayjsLocale || 'zh-cn').startOf('year');\n    // 第一周ISO定义: 本年度第一个星期四所在的星期\n    // 如果第一年第一天在星期四后, 直接跳到下一周, 下一周必定是第一周\n    // 否则本周即为第一周\n    if (firstWeek.day() > 4 || firstWeek.day() === 0) firstWeek = firstWeek.add(1, 'week');\n\n    // 一年有52或者53周, 引入IsoWeeksInYear辅助查询\n    const weekCounts = dayjs(yearStr, 'YYYY').locale(dayjsLocale || 'zh-cn').isoWeeksInYear();\n    for (let i = 0; i <= weekCounts; i += 1) {\n      let nextWeek = firstWeek.add(i, 'week');\n      // 重置为周的第一天\n      if (timeOfDay === 'start') nextWeek = nextWeek.subtract(5, 'day');\n      if (nextWeek.format(weekFormatStr) === weekStr) {\n        return nextWeek;\n      }\n    }\n  }\n\n  // format quarter\n  if (/Q/g.test(format)) {\n    if (!isString(dateText)) {\n      dateText = dayjs(dateText).locale(dayjsLocale || 'zh-cn').format(format) as string;\n    }\n\n    const yearStr = dateText.split(/[-/.\\s]/)[0];\n    const quarterStr = dateText.split(/[-/.\\s]/)[1];\n    const quarterFormatStr = format.split(/[-/.\\s]/)[1];\n    const firstQuarter = dayjs(yearStr, 'YYYY').startOf('year');\n    for (let i = 0; i < 4; i += 1) {\n      const nextQuarter = firstQuarter.add(i, 'quarter');\n      if (nextQuarter.format(quarterFormatStr) === quarterStr) {\n        return nextQuarter;\n      }\n    }\n  }\n\n  // 兼容数据格式不标准场景 YYYY-MM-D\n  const result = dayjs(dateText, format).isValid()\n    ? dayjs(dateText, format)\n    : dayjs(dateText);\n\n  // 兼容数据异常情况\n  if (!result.isValid()) {\n    log.error('DatePicker', `Check whether the format、value format is valid.\\n value: '${value}', format: '${format}'`);\n    return dayjs();\n  }\n\n  return result;\n}\n\n// 格式化 range\nfunction formatRange({\n  newDate,\n  format,\n  dayjsLocale,\n  targetFormat,\n  autoSwap,\n}: {\n  newDate: any;\n  format: string;\n  dayjsLocale?: string;\n  targetFormat?: string;\n  autoSwap?: boolean;\n}) {\n  if (!newDate || !Array.isArray(newDate)) return [];\n\n  let dayjsDateList = newDate.map((d) => d && parseToDayjs(d, format).locale(dayjsLocale));\n\n  // 保证后面的时间大于前面的时间\n  if (\n    autoSwap\n    && dayjsDateList[0]\n    && dayjsDateList[1]\n    && dayjsDateList[0].toDate().getTime() > dayjsDateList[1].toDate().getTime()\n  ) {\n    // 数据兼容规则\n    dayjsDateList = [dayjsDateList[1], dayjsDateList[0]];\n  }\n\n  // 格式化失败提示\n  if (dayjsDateList.some((r) => r && !r.isValid())) {\n    log.error(\n      'DatePicker',\n      `Check whether the value、format、valueType format is valid.\\nformat: '${format}' value: '${newDate}' valueType: '${targetFormat}'`\n    );\n    return [];\n  }\n\n  // valueType = 'time-stamp' 返回时间戳\n  if (targetFormat === 'time-stamp') return dayjsDateList.map((da) => da && da.toDate().getTime());\n  // valueType = 'Date' 返回时间对象\n  if (targetFormat === 'Date') return dayjsDateList.map((da) => da && da.toDate());\n\n  return dayjsDateList.map((da) => da && da.format(targetFormat || format));\n}\n\n// 格式化单选\nfunction formatSingle({\n  newDate,\n  format,\n  targetFormat,\n  dayjsLocale,\n}: {\n  newDate: any;\n  format: string;\n  targetFormat?: string;\n  dayjsLocale?: string;\n}) {\n  if (!newDate) return '';\n\n  const dayJsDate = parseToDayjs(newDate, format).locale(dayjsLocale);\n\n  // 格式化失败提示\n  if (!dayJsDate.isValid()) {\n    log.error(\n      'DatePicker',\n      `Check whether the format、value format is valid.\\nformat: '${format}' value: '${newDate}'`\n    );\n    return '';\n  }\n\n  // valueType = 'time-stamp' 返回时间戳\n  if (targetFormat === 'time-stamp') return dayJsDate.toDate().getTime();\n  // valueType = 'Date' 返回时间对象\n  if (targetFormat === 'Date') return dayJsDate.toDate();\n\n  return dayJsDate.format(targetFormat || format);\n}\n\n// 检测日期是否合法\nexport function isValidDate(value: DateValue | DateValue[], format: string) {\n  if (Array.isArray(value)) {\n    return value.every((v) => {\n      if (v === '') return true;\n      return dayjs(v, format).isValid() || dayjs(v).isValid();\n    });\n  }\n\n  if (value === '') return true;\n  return dayjs(value, format).isValid() || dayjs(value).isValid();\n}\n\n// 日期格式化\nexport function formatDate(\n  newDate: DateValue | DateValue[],\n  {\n    format,\n    targetFormat,\n    dayjsLocale = 'zh-cn',\n    autoSwap,\n  }: { format: string; dayjsLocale?: string, targetFormat?: string; autoSwap?: boolean }\n) {\n  let result;\n\n  if (Array.isArray(newDate)) {\n    result = formatRange({ newDate, format, dayjsLocale, targetFormat, autoSwap });\n  } else {\n    result = formatSingle({ newDate, format, dayjsLocale, targetFormat });\n  }\n\n  return result;\n}\n\n// 对齐格式化时间\nexport function calcFormatTime(time: string, timeFormat: string) {\n  if (time && timeFormat) {\n    const timeArr = time.split(':');\n    const timeFormatArr = timeFormat.split(':');\n    return timeArr.slice(0, timeFormatArr.length).join(':');\n  }\n  return time;\n}\n\n// TODO 细化 value 类型\n// 格式化时间\nexport function formatTime(value: any, format: string, timeFormat: string, defaultTime: string | string[]) {\n  // 无论参数是不是数组，统一转成数组处理\n  let result = Array.isArray(value) ? value : [value];\n  // eslint-disable-next-line no-param-reassign\n  defaultTime = Array.isArray(defaultTime) ? defaultTime : [defaultTime, defaultTime];\n  result = result.map((v, i) => {\n    // string格式需要用format去解析，其他诸如Date、time-stamp格式则直接dayjs\n    if (v) return dayjs(v, typeof v === 'string' ? format : undefined).format(timeFormat);\n    return calcFormatTime(defaultTime[i], timeFormat);\n  });\n  result = result.length ? result : defaultTime.map((t) => calcFormatTime(t, timeFormat));\n  // value是数组就输出数组，不是数组就输出第一个即可\n  return Array.isArray(value) ? result : result?.[0];\n}\n\n// 根据不同 mode 给出格式化默认值\nexport function getDefaultFormat({\n  mode = 'date',\n  format,\n  valueType,\n  enableTimePicker,\n}: {\n  mode?: string;\n  format?: string;\n  valueType?: string;\n  enableTimePicker?: boolean;\n}) {\n  if (mode === 'year') {\n    return {\n      format: format || 'YYYY',\n      valueType: valueType || format || 'YYYY',\n      timeFormat: TIME_FORMAT,\n    };\n  }\n  if (mode === 'month') {\n    return {\n      format: format || 'YYYY-MM',\n      valueType: valueType || format || 'YYYY-MM',\n      timeFormat: TIME_FORMAT,\n    };\n  }\n  if (mode === 'quarter') {\n    return {\n      format: format || 'YYYY-[Q]Q',\n      valueType: valueType || format || 'YYYY-[Q]Q',\n      timeFormat: TIME_FORMAT,\n    };\n  }\n  if (mode === 'week') {\n    return {\n      format: format || 'gggg-wo',\n      valueType: valueType || format || 'gggg-wo',\n      timeFormat: TIME_FORMAT,\n    };\n  }\n  if (mode === 'date') {\n    return {\n      format: format || `YYYY-MM-DD${enableTimePicker ? ' HH:mm:ss' : ''}`,\n      valueType: valueType || format || `YYYY-MM-DD${enableTimePicker ? ' HH:mm:ss' : ''}`,\n      timeFormat: extractTimeFormat(format || `YYYY-MM-DD${enableTimePicker ? ' HH:mm:ss' : ''}`) || TIME_FORMAT,\n    };\n  }\n  log.error('DatePicker', `Invalid mode: ${mode}`);\n  return {};\n}\n\n// 初始化面板年份月份\nexport function initYearMonthTime({\n  value,\n  mode = 'date',\n  format,\n  timeFormat = 'HH:mm:ss',\n  enableTimePicker,\n}: {\n  value: Array<any>;\n  mode: string;\n  format: string;\n  timeFormat?: string;\n  enableTimePicker?: boolean;\n}) {\n  const defaultYearMonthTime = {\n    year: [dayjs().year(), dayjs().year()],\n    month: [dayjs().month(), dayjs().month()],\n    time: [dayjs().format(timeFormat), dayjs().format(timeFormat)],\n  };\n  if (mode === 'year') {\n    defaultYearMonthTime.year[1] += 10;\n  } else if (mode === 'month' || mode === 'quarter') {\n    defaultYearMonthTime.year[1] += 1;\n  } else if ((mode === 'date' || mode === 'week') && !enableTimePicker) {\n    // 切换至下一年\n    if (defaultYearMonthTime.month[0] === 11) {\n      defaultYearMonthTime.year[1] += 1;\n      defaultYearMonthTime.month[1] = 0;\n    } else {\n      defaultYearMonthTime.month[1] += 1;\n    }\n  }\n\n  if (!value || !Array.isArray(value) || !value.length) {\n    return defaultYearMonthTime;\n  }\n\n  return {\n    year: value.map((v) => parseToDayjs(v, format).year()),\n    month: value.map((v) => parseToDayjs(v, format).month()),\n    time: value.map((v) => parseToDayjs(v, format).format(timeFormat)),\n  };\n}\n"],"names":["e","n","module","exports","define","amd","globalThis","self","dayjs_plugin_isoWeeksInYear","this","prototype","isoWeeksInYear","isLeapYear","endOf","day","t","dayjs_plugin_isLeapYear","$y","_objectDestructuringEmpty","TypeError","_extends","Object","assign","bind","arguments","length","r","hasOwnProperty","call","apply","i","dayjs_plugin_isBetween","isBetween","s","f","o","u","isAfter","isBefore","dayjs_plugin_weekOfYear","week","add","$locale","yearStart","month","date","startOf","a","subtract","diff","Math","ceil","weeks","dayjs_plugin_weekYear","weekYear","year","dayjs_plugin_localeData","indexOf","name","map","slice","d","weekStart","Ls","locale","formats","replace","toUpperCase","months","format","monthsShort","firstDayOfWeek","weekdays","weekdaysMin","weekdaysShort","longDateFormat","meridiem","ordinal","localeData","dayjs_plugin_quarterOfYear","quarter","$utils","Number","p","toNumber","require$$0","INFINITY","MAX_INTEGER","toFinite","value","sign","toFinite_1","toInteger","result","remainder","toInteger_1","baseSlice","isIterateeCall","require$$1","require$$2","nativeCeil","nativeMax","max","chunk","array","size","guard","undefined","index","resIndex","Array","chunk_1","dayjs","extend","weekOfYear","quarterOfYear","advancedFormat","customParseFormat","dayJsIsBetween","firstUpperCase","str","concat","substring","getFirstDayOfMonth","_ref","Date","getDaysInMonth","_ref2","getDate","getLastDayOfMonth","_ref3","isSameYear","date1","date2","getFullYear","isSameQuarter","isSameMonth","getMonth","isSameWeek","dayjsLocale","isSameDate","compareAsc","d1","getTime","d2","isSame","type","func","outOfRanges","min","getToday","now","getDateObj","tempDate","hours","getHours","minutes","getMinutes","seconds","getSeconds","milliseconds","getMilliseconds","setDateTime","hour","minute","second","millisecond","toDate","subtractMonth","num","addMonth","getWeeks","_ref4","_ref5","_ref5$showWeekOfYear","showWeekOfYear","_ref5$disableDate","disableDate","minDate","maxDate","_ref5$dayjsLocale","_ref5$cancelRangeSele","cancelRangeSelectLimit","prependDay","appendDay","maxDays","daysArr","today","currentDay","push","text","active","disabled","isFunction","firstDayOfMonth","lastDayOfMonth","dayjsObj","getDay","setDate","unshift","toString","additional","abs","LEN","dataList","forEach","_objectSpread","getQuarters","_ref6","_ref6$disableDate","quarterLocal","_ref6$dayjsLocale","_ref6$cancelRangeSele","quarterArr","getYears","_ref7","_ref7$disableDate","_ref7$dayjsLocale","_ref7$cancelRangeSele","startYear","parseInt","endYear","yearArr","getMonths","params","_params$disableDate","monthLocal","_params$dayjsLocale","_params$cancelRangeSe","MonthArr","flagActive","data","_ref8","args","start","end","hoverStart","hoverEnd","_args$type","_args$isRange","isRange","_args$multiple","multiple","row","item","_item","_value$some","some","val","isStart","isHoverStart","isEnd","isHoverEnd","highlight","startOfRange","endOfRange","hoverHighlight","hoverStartOfRange","hoverEndOfRange","extractTimeFormat","dateFormat","trim","extractTimeObj","timeFormat","matchedMeridiem","match","timeReg","matchedTimeStr","_matchedTimeStr$0$spl","split","_matchedTimeStr$0$spl2","_slicedToArray","_matchedTimeStr$0$spl3","_matchedTimeStr$0$spl4","_matchedTimeStr$0$spl5","_matchedTimeStr$0$spl6","isEnabledDate","_ref9","mode","availableMode","isEnabled","isArray","formattedDisabledDate","parseToDayjs","isIncludes","from","to","before","after","compareMin","compareMax","covertToDate","valueType","TIME_FORMAT","timeOfDay","dateText","test","isString","yearStr","weekStr","weekFormatStr","firstWeek","weekCounts","nextWeek","quarterStr","quarterFormatStr","firstQuarter","nextQuarter","isValid","log","error","formatRange","newDate","targetFormat","autoSwap","dayjsDateList","da","formatSingle","dayJsDate","isValidDate","every","v","formatDate","_ref3$dayjsLocale","calcFormatTime","time","timeArr","timeFormatArr","join","formatTime","defaultTime","_result","getDefaultFormat","_ref4$mode","enableTimePicker","initYearMonthTime","_ref5$mode","_ref5$timeFormat","defaultYearMonthTime"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA,EAAA,CAAC,UAASA,CAAC,EAACC,CAAC,EAAC;IAAC,QAAQ,IAAE,QAAc,IAAE,WAAW,IAAE,QAAa,GAACC,MAAA,CAAAC,OAAA,GAAeF,CAAC,EAAE,GAAC,UAAU,IAAE,OAAOG,SAAM,IAAEA,SAAM,CAACC,GAAG,GAACD,SAAM,CAACH,CAAC,CAAC,GAAC,CAACD,CAAC,GAAC,WAAW,IAAE,OAAOM,UAAU,GAACA,UAAU,GAACN,CAAC,IAAEO,IAAI,EAAEC,2BAA2B,GAACP,CAAC,EAAE,CAAA;AAAA,GAAC,CAACQ,cAAI,EAAE,YAAU;IAAC,YAAY,CAAA;;AAAC,IAAA,OAAO,UAAST,CAAC,EAACC,CAAC,EAAC;AAACA,MAAAA,CAAC,CAACS,SAAS,CAACC,cAAc,GAAC,YAAU;AAAC,QAAA,IAAIX,CAAC,GAAC,IAAI,CAACY,UAAU,EAAE;UAACX,CAAC,GAAC,IAAI,CAACY,KAAK,CAAC,GAAG,CAAC,CAACC,GAAG,EAAE,CAAA;AAAC,QAAA,OAAO,CAAC,KAAGb,CAAC,IAAED,CAAC,IAAE,CAAC,KAAGC,CAAC,GAAC,EAAE,GAAC,EAAE,CAAA;OAAC,CAAA;KAAC,CAAA;AAAA,GAAG,CAAA,CAAA;;;;;;;ACAxY,EAAA,CAAC,UAASD,CAAC,EAACe,CAAC,EAAC;IAAC,QAAQ,IAAE,QAAc,IAAE,WAAW,IAAE,QAAa,GAACb,iBAAea,CAAC,EAAE,GAAC,UAAU,IAAE,OAAOX,SAAM,IAAEA,SAAM,CAACC,GAAG,GAACD,SAAM,CAACW,CAAC,CAAC,GAAC,CAACf,CAAC,GAAC,WAAW,IAAE,OAAOM,UAAU,GAACA,UAAU,GAACN,CAAC,IAAEO,IAAI,EAAES,uBAAuB,GAACD,CAAC,EAAE,CAAA;AAAA,GAAC,CAACN,cAAI,EAAE,YAAU;IAAC,YAAY,CAAA;;AAAC,IAAA,OAAO,UAAST,CAAC,EAACe,CAAC,EAAC;AAACA,MAAAA,CAAC,CAACL,SAAS,CAACE,UAAU,GAAC,YAAU;QAAC,OAAO,IAAI,CAACK,EAAE,GAAC,CAAC,IAAE,CAAC,IAAE,IAAI,CAACA,EAAE,GAAC,GAAG,IAAE,CAAC,IAAE,IAAI,CAACA,EAAE,GAAC,GAAG,IAAE,CAAC,CAAA;OAAC,CAAA;KAAC,CAAA;AAAA,GAAG,CAAA,CAAA;;;;ACAvW,SAASC,yBAAyBA,CAACH,CAAC,EAAE;EACpC,IAAI,IAAI,IAAIA,CAAC,EAAE,MAAM,IAAII,SAAS,CAAC,qBAAqB,GAAGJ,CAAC,CAAC,CAAA;AAC/D;;ACFA,SAASK,QAAQA,GAAG;AAClB,EAAA,OAAOA,QAAQ,GAAGC,MAAM,CAACC,MAAM,GAAGD,MAAM,CAACC,MAAM,CAACC,IAAI,EAAE,GAAG,UAAUtB,CAAC,EAAE;AACpE,IAAA,KAAK,IAAID,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGwB,SAAS,CAACC,MAAM,EAAEzB,CAAC,EAAE,EAAE;AACzC,MAAA,IAAIe,CAAC,GAAGS,SAAS,CAACxB,CAAC,CAAC,CAAA;MACpB,KAAK,IAAI0B,CAAC,IAAIX,CAAC,EAAE,CAAC,EAAE,EAAEY,cAAc,CAACC,IAAI,CAACb,CAAC,EAAEW,CAAC,CAAC,KAAKzB,CAAC,CAACyB,CAAC,CAAC,GAAGX,CAAC,CAACW,CAAC,CAAC,CAAC,CAAA;AAClE,KAAA;AACA,IAAA,OAAOzB,CAAC,CAAA;GACT,EAAEmB,QAAQ,CAACS,KAAK,CAAC,IAAI,EAAEL,SAAS,CAAC,CAAA;AACpC;;;;;ACRA,EAAA,CAAC,UAASxB,CAAC,EAAC8B,CAAC,EAAC;IAAC,QAAQ,IAAE,QAAc,IAAE,WAAW,IAAE,QAAa,GAAC5B,MAAe,CAAAC,OAAA,GAAA2B,CAAC,EAAE,GAAC,UAAU,IAAE,OAAO1B,SAAM,IAAEA,SAAM,CAACC,GAAG,GAACD,SAAM,CAAC0B,CAAC,CAAC,GAAC,CAAC9B,CAAC,GAAC,WAAW,IAAE,OAAOM,UAAU,GAACA,UAAU,GAACN,CAAC,IAAEO,IAAI,EAAEwB,sBAAsB,GAACD,CAAC,EAAE,CAAA;AAAA,GAAC,CAACrB,cAAI,EAAE,YAAU;IAAC,YAAY,CAAA;;AAAC,IAAA,OAAO,UAAST,CAAC,EAAC8B,CAAC,EAACf,CAAC,EAAC;AAACe,MAAAA,CAAC,CAACpB,SAAS,CAACsB,SAAS,GAAC,UAAShC,CAAC,EAAC8B,CAAC,EAACG,CAAC,EAACC,CAAC,EAAC;AAAC,QAAA,IAAIjC,CAAC,GAACc,CAAC,CAACf,CAAC,CAAC;AAACmC,UAAAA,CAAC,GAACpB,CAAC,CAACe,CAAC,CAAC;UAACJ,CAAC,GAAC,GAAG,KAAG,CAACQ,CAAC,GAACA,CAAC,IAAE,IAAI,EAAE,CAAC,CAAC;AAACE,UAAAA,CAAC,GAAC,GAAG,KAAGF,CAAC,CAAC,CAAC,CAAC,CAAA;AAAC,QAAA,OAAM,CAACR,CAAC,GAAC,IAAI,CAACW,OAAO,CAACpC,CAAC,EAACgC,CAAC,CAAC,GAAC,CAAC,IAAI,CAACK,QAAQ,CAACrC,CAAC,EAACgC,CAAC,CAAC,MAAIG,CAAC,GAAC,IAAI,CAACE,QAAQ,CAACH,CAAC,EAACF,CAAC,CAAC,GAAC,CAAC,IAAI,CAACI,OAAO,CAACF,CAAC,EAACF,CAAC,CAAC,CAAC,IAAE,CAACP,CAAC,GAAC,IAAI,CAACY,QAAQ,CAACrC,CAAC,EAACgC,CAAC,CAAC,GAAC,CAAC,IAAI,CAACI,OAAO,CAACpC,CAAC,EAACgC,CAAC,CAAC,MAAIG,CAAC,GAAC,IAAI,CAACC,OAAO,CAACF,CAAC,EAACF,CAAC,CAAC,GAAC,CAAC,IAAI,CAACK,QAAQ,CAACH,CAAC,EAACF,CAAC,CAAC,CAAC,CAAA;OAAC,CAAA;KAAC,CAAA;AAAA,GAAG,CAAA,CAAA;;;;;;;ACAjiB,EAAA,CAAC,UAASjC,CAAC,EAACe,CAAC,EAAC;IAAC,QAAQ,IAAE,QAAc,IAAE,WAAW,IAAE,QAAa,GAACb,MAAe,CAAAC,OAAA,GAAAY,CAAC,EAAE,GAAC,UAAU,IAAE,OAAOX,SAAM,IAAEA,SAAM,CAACC,GAAG,GAACD,SAAM,CAACW,CAAC,CAAC,GAAC,CAACf,CAAC,GAAC,WAAW,IAAE,OAAOM,UAAU,GAACA,UAAU,GAACN,CAAC,IAAEO,IAAI,EAAEgC,uBAAuB,GAACxB,CAAC,EAAE,CAAA;AAAA,GAAC,CAACN,cAAI,EAAE,YAAU;IAAC,YAAY,CAAA;;IAAC,IAAIT,CAAC,GAAC,MAAM;AAACe,MAAAA,CAAC,GAAC,MAAM,CAAA;AAAC,IAAA,OAAO,UAASe,CAAC,EAAC7B,CAAC,EAACyB,CAAC,EAAC;AAAC,MAAA,IAAIQ,CAAC,GAACjC,CAAC,CAACS,SAAS,CAAA;AAACwB,MAAAA,CAAC,CAACM,IAAI,GAAC,UAASV,CAAC,EAAC;AAAC,QAAA,IAAG,KAAK,CAAC,KAAGA,CAAC,KAAGA,CAAC,GAAC,IAAI,CAAC,EAAC,IAAI,KAAGA,CAAC,EAAC,OAAO,IAAI,CAACW,GAAG,CAAC,CAAC,IAAEX,CAAC,GAAC,IAAI,CAACU,IAAI,EAAE,CAAC,EAAC,KAAK,CAAC,CAAA;QAAC,IAAIvC,CAAC,GAAC,IAAI,CAACyC,OAAO,EAAE,CAACC,SAAS,IAAE,CAAC,CAAA;AAAC,QAAA,IAAG,EAAE,KAAG,IAAI,CAACC,KAAK,EAAE,IAAE,IAAI,CAACC,IAAI,EAAE,GAAC,EAAE,EAAC;UAAC,IAAIX,CAAC,GAACR,CAAC,CAAC,IAAI,CAAC,CAACoB,OAAO,CAAC/B,CAAC,CAAC,CAAC0B,GAAG,CAAC,CAAC,EAAC1B,CAAC,CAAC,CAAC8B,IAAI,CAAC5C,CAAC,CAAC;YAACgC,CAAC,GAACP,CAAC,CAAC,IAAI,CAAC,CAACb,KAAK,CAACb,CAAC,CAAC,CAAA;UAAC,IAAGkC,CAAC,CAACI,QAAQ,CAACL,CAAC,CAAC,EAAC,OAAO,CAAC,CAAA;AAAA,SAAA;QAAC,IAAIc,CAAC,GAACrB,CAAC,CAAC,IAAI,CAAC,CAACoB,OAAO,CAAC/B,CAAC,CAAC,CAAC8B,IAAI,CAAC5C,CAAC,CAAC,CAAC6C,OAAO,CAAC9C,CAAC,CAAC,CAACgD,QAAQ,CAAC,CAAC,EAAC,aAAa,CAAC;UAACb,CAAC,GAAC,IAAI,CAACc,IAAI,CAACF,CAAC,EAAC/C,CAAC,EAAC,CAAC,CAAC,CAAC,CAAA;QAAC,OAAOmC,CAAC,GAAC,CAAC,GAACT,CAAC,CAAC,IAAI,CAAC,CAACoB,OAAO,CAAC,MAAM,CAAC,CAACN,IAAI,EAAE,GAACU,IAAI,CAACC,IAAI,CAAChB,CAAC,CAAC,CAAA;AAAA,OAAC,EAACD,CAAC,CAACkB,KAAK,GAAC,UAASpD,CAAC,EAAC;AAAC,QAAA,OAAO,KAAK,CAAC,KAAGA,CAAC,KAAGA,CAAC,GAAC,IAAI,CAAC,EAAC,IAAI,CAACwC,IAAI,CAACxC,CAAC,CAAC,CAAA;OAAC,CAAA;KAAC,CAAA;AAAA,GAAG,CAAA,CAAA;;;;;;;ACAtwB,EAAA,CAAC,UAASA,CAAC,EAACe,CAAC,EAAC;IAAC,QAAQ,IAAE,QAAc,IAAE,WAAW,IAAE,QAAa,GAACb,MAAe,CAAAC,OAAA,GAAAY,CAAC,EAAE,GAAC,UAAU,IAAE,OAAOX,SAAM,IAAEA,SAAM,CAACC,GAAG,GAACD,SAAM,CAACW,CAAC,CAAC,GAAC,CAACf,CAAC,GAAC,WAAW,IAAE,OAAOM,UAAU,GAACA,UAAU,GAACN,CAAC,IAAEO,IAAI,EAAE8C,qBAAqB,GAACtC,CAAC,EAAE,CAAA;AAAA,GAAC,CAACN,cAAI,EAAE,YAAU;IAAC,YAAY,CAAA;;AAAC,IAAA,OAAO,UAAST,CAAC,EAACe,CAAC,EAAC;AAACA,MAAAA,CAAC,CAACL,SAAS,CAAC4C,QAAQ,GAAC,YAAU;AAAC,QAAA,IAAItD,CAAC,GAAC,IAAI,CAAC4C,KAAK,EAAE;AAAC7B,UAAAA,CAAC,GAAC,IAAI,CAACyB,IAAI,EAAE;AAACvC,UAAAA,CAAC,GAAC,IAAI,CAACsD,IAAI,EAAE,CAAA;QAAC,OAAO,CAAC,KAAGxC,CAAC,IAAE,EAAE,KAAGf,CAAC,GAACC,CAAC,GAAC,CAAC,GAAC,CAAC,KAAGD,CAAC,IAAEe,CAAC,IAAE,EAAE,GAACd,CAAC,GAAC,CAAC,GAACA,CAAC,CAAA;OAAC,CAAA;KAAC,CAAA;AAAA,GAAG,CAAA,CAAA;;;;;;;ACA1Y,EAAA,CAAC,UAASA,CAAC,EAACD,CAAC,EAAC;IAAC,QAAQ,IAAE,QAAc,IAAE,WAAW,IAAE,QAAa,GAACE,iBAAeF,CAAC,EAAE,GAAC,UAAU,IAAE,OAAOI,SAAM,IAAEA,SAAM,CAACC,GAAG,GAACD,SAAM,CAACJ,CAAC,CAAC,GAAC,CAACC,CAAC,GAAC,WAAW,IAAE,OAAOK,UAAU,GAACA,UAAU,GAACL,CAAC,IAAEM,IAAI,EAAEiD,uBAAuB,GAACxD,CAAC,EAAE,CAAA;AAAA,GAAC,CAACS,cAAI,EAAE,YAAU;IAAC,YAAY,CAAA;;AAAC,IAAA,OAAO,UAASR,CAAC,EAACD,CAAC,EAACe,CAAC,EAAC;AAAC,MAAA,IAAIW,CAAC,GAAC1B,CAAC,CAACU,SAAS;AAACyB,QAAAA,CAAC,GAAC,SAAFA,CAACA,CAAUlC,CAAC,EAAC;UAAC,OAAOA,CAAC,KAAGA,CAAC,CAACwD,OAAO,GAACxD,CAAC,GAACA,CAAC,CAACgC,CAAC,CAAC,CAAA;SAAC;AAACG,QAAAA,CAAC,GAAC,SAAFA,CAACA,CAAUnC,CAAC,EAACD,CAAC,EAACe,CAAC,EAACW,CAAC,EAACU,EAAC,EAAC;AAAC,UAAA,IAAIN,CAAC,GAAC7B,CAAC,CAACyD,IAAI,GAACzD,CAAC,GAACA,CAAC,CAACyC,OAAO,EAAE;AAACK,YAAAA,CAAC,GAACZ,CAAC,CAACL,CAAC,CAAC9B,CAAC,CAAC,CAAC;AAACiC,YAAAA,CAAC,GAACE,CAAC,CAACL,CAAC,CAACf,CAAC,CAAC,CAAC;YAACmB,CAAC,GAACa,CAAC,IAAEd,CAAC,CAAC0B,GAAG,CAAE,UAAS1D,CAAC,EAAC;AAAC,cAAA,OAAOA,CAAC,CAAC2D,KAAK,CAAC,CAAC,EAAClC,CAAC,CAAC,CAAA;AAAA,aAAC,CAAE,CAAA;AAAC,UAAA,IAAG,CAACU,EAAC,EAAC,OAAOF,CAAC,CAAA;AAAC,UAAA,IAAI2B,CAAC,GAAC/B,CAAC,CAACgC,SAAS,CAAA;UAAC,OAAO5B,CAAC,CAACyB,GAAG,CAAE,UAAS1D,CAAC,EAACD,CAAC,EAAC;YAAC,OAAOkC,CAAC,CAAC,CAAClC,CAAC,IAAE6D,CAAC,IAAE,CAAC,CAAC,IAAE,CAAC,CAAC,CAAA;AAAA,WAAG,CAAA,CAAA;SAAC;AAAC/B,QAAAA,CAAC,GAAC,SAAFA,CAACA,GAAW;UAAC,OAAOf,CAAC,CAACgD,EAAE,CAAChD,CAAC,CAACiD,MAAM,EAAE,CAAC,CAAA;SAAC;AAACjB,QAAAA,CAAC,GAAC,SAAFA,CAACA,CAAU9C,CAAC,EAACD,CAAC,EAAC;UAAC,OAAOC,CAAC,CAACgE,OAAO,CAACjE,CAAC,CAAC,IAAE,UAASC,CAAC,EAAC;AAAC,YAAA,OAAOA,CAAC,CAACiE,OAAO,CAAC,gCAAgC,EAAE,UAASjE,CAAC,EAACD,CAAC,EAACe,CAAC,EAAC;AAAC,cAAA,OAAOf,CAAC,IAAEe,CAAC,CAAC6C,KAAK,CAAC,CAAC,CAAC,CAAA;AAAA,cAAG,CAAA;WAAC,CAAC3D,CAAC,CAACgE,OAAO,CAACjE,CAAC,CAACmE,WAAW,EAAE,CAAC,CAAC,CAAA;SAAC;AAAClC,QAAAA,CAAC,GAAC,SAAFA,CAACA,GAAW;UAAC,IAAIhC,CAAC,GAAC,IAAI,CAAA;UAAC,OAAM;AAACmE,YAAAA,MAAM,EAAC,SAAPA,MAAMA,CAAUpE,CAAC,EAAC;AAAC,cAAA,OAAOA,CAAC,GAACA,CAAC,CAACqE,MAAM,CAAC,MAAM,CAAC,GAACjC,CAAC,CAACnC,CAAC,EAAC,QAAQ,CAAC,CAAA;aAAC;AAACqE,YAAAA,WAAW,EAAC,SAAZA,WAAWA,CAAUtE,CAAC,EAAC;AAAC,cAAA,OAAOA,CAAC,GAACA,CAAC,CAACqE,MAAM,CAAC,KAAK,CAAC,GAACjC,CAAC,CAACnC,CAAC,EAAC,aAAa,EAAC,QAAQ,EAAC,CAAC,CAAC,CAAA;aAAC;AAACsE,YAAAA,cAAc,EAAC,SAAfA,cAAcA,GAAW;cAAC,OAAOtE,CAAC,CAACyC,OAAO,EAAE,CAACoB,SAAS,IAAE,CAAC,CAAA;aAAC;AAACU,YAAAA,QAAQ,EAAC,SAATA,QAAQA,CAAUxE,CAAC,EAAC;AAAC,cAAA,OAAOA,CAAC,GAACA,CAAC,CAACqE,MAAM,CAAC,MAAM,CAAC,GAACjC,CAAC,CAACnC,CAAC,EAAC,UAAU,CAAC,CAAA;aAAC;AAACwE,YAAAA,WAAW,EAAC,SAAZA,WAAWA,CAAUzE,CAAC,EAAC;AAAC,cAAA,OAAOA,CAAC,GAACA,CAAC,CAACqE,MAAM,CAAC,IAAI,CAAC,GAACjC,CAAC,CAACnC,CAAC,EAAC,aAAa,EAAC,UAAU,EAAC,CAAC,CAAC,CAAA;aAAC;AAACyE,YAAAA,aAAa,EAAC,SAAdA,aAAaA,CAAU1E,CAAC,EAAC;AAAC,cAAA,OAAOA,CAAC,GAACA,CAAC,CAACqE,MAAM,CAAC,KAAK,CAAC,GAACjC,CAAC,CAACnC,CAAC,EAAC,eAAe,EAAC,UAAU,EAAC,CAAC,CAAC,CAAA;aAAC;AAAC0E,YAAAA,cAAc,EAAC,SAAfA,cAAcA,CAAU3E,CAAC,EAAC;cAAC,OAAO+C,CAAC,CAAC9C,CAAC,CAACyC,OAAO,EAAE,EAAC1C,CAAC,CAAC,CAAA;aAAC;AAAC4E,YAAAA,QAAQ,EAAC,IAAI,CAAClC,OAAO,EAAE,CAACkC,QAAQ;AAACC,YAAAA,OAAO,EAAC,IAAI,CAACnC,OAAO,EAAE,CAACmC,OAAAA;WAAQ,CAAA;SAAC,CAAA;MAACnD,CAAC,CAACoD,UAAU,GAAC,YAAU;AAAC,QAAA,OAAO7C,CAAC,CAACV,IAAI,CAAC,IAAI,CAAC,EAAE,CAAA;AAAA,OAAC,EAACR,CAAC,CAAC+D,UAAU,GAAC,YAAU;AAAC,QAAA,IAAI7E,CAAC,GAAC6B,CAAC,EAAE,CAAA;QAAC,OAAM;AAACyC,UAAAA,cAAc,EAAC,SAAfA,cAAcA,GAAW;AAAC,YAAA,OAAOtE,CAAC,CAAC6D,SAAS,IAAE,CAAC,CAAA;WAAC;AAACU,UAAAA,QAAQ,EAAC,SAATA,QAAQA,GAAW;AAAC,YAAA,OAAOzD,CAAC,CAACyD,QAAQ,EAAE,CAAA;WAAC;AAACE,UAAAA,aAAa,EAAC,SAAdA,aAAaA,GAAW;AAAC,YAAA,OAAO3D,CAAC,CAAC2D,aAAa,EAAE,CAAA;WAAC;AAACD,UAAAA,WAAW,EAAC,SAAZA,WAAWA,GAAW;AAAC,YAAA,OAAO1D,CAAC,CAAC0D,WAAW,EAAE,CAAA;WAAC;AAACL,UAAAA,MAAM,EAAC,SAAPA,MAAMA,GAAW;AAAC,YAAA,OAAOrD,CAAC,CAACqD,MAAM,EAAE,CAAA;WAAC;AAACE,UAAAA,WAAW,EAAC,SAAZA,WAAWA,GAAW;AAAC,YAAA,OAAOvD,CAAC,CAACuD,WAAW,EAAE,CAAA;WAAC;AAACK,UAAAA,cAAc,EAAC,SAAfA,cAAcA,CAAU3E,CAAC,EAAC;AAAC,YAAA,OAAO+C,CAAC,CAAC9C,CAAC,EAACD,CAAC,CAAC,CAAA;WAAC;UAAC4E,QAAQ,EAAC3E,CAAC,CAAC2E,QAAQ;UAACC,OAAO,EAAC5E,CAAC,CAAC4E,OAAAA;SAAQ,CAAA;AAAA,OAAC,EAAC9D,CAAC,CAACqD,MAAM,GAAC,YAAU;AAAC,QAAA,OAAOhC,CAAC,CAACN,CAAC,EAAE,EAAC,QAAQ,CAAC,CAAA;AAAA,OAAC,EAACf,CAAC,CAACuD,WAAW,GAAC,YAAU;QAAC,OAAOlC,CAAC,CAACN,CAAC,EAAE,EAAC,aAAa,EAAC,QAAQ,EAAC,CAAC,CAAC,CAAA;AAAA,OAAC,EAACf,CAAC,CAACyD,QAAQ,GAAC,UAASvE,CAAC,EAAC;AAAC,QAAA,OAAOmC,CAAC,CAACN,CAAC,EAAE,EAAC,UAAU,EAAC,IAAI,EAAC,IAAI,EAAC7B,CAAC,CAAC,CAAA;AAAA,OAAC,EAACc,CAAC,CAAC2D,aAAa,GAAC,UAASzE,CAAC,EAAC;AAAC,QAAA,OAAOmC,CAAC,CAACN,CAAC,EAAE,EAAC,eAAe,EAAC,UAAU,EAAC,CAAC,EAAC7B,CAAC,CAAC,CAAA;AAAA,OAAC,EAACc,CAAC,CAAC0D,WAAW,GAAC,UAASxE,CAAC,EAAC;AAAC,QAAA,OAAOmC,CAAC,CAACN,CAAC,EAAE,EAAC,aAAa,EAAC,UAAU,EAAC,CAAC,EAAC7B,CAAC,CAAC,CAAA;OAAC,CAAA;KAAC,CAAA;AAAA,GAAG,CAAA,CAAA;;;;;;;ACAliE,EAAA,CAAC,UAASc,CAAC,EAACd,CAAC,EAAC;IAAC,QAAQ,IAAE,QAAc,IAAE,WAAW,IAAE,QAAa,GAACC,iBAAeD,CAAC,EAAE,GAAC,UAAU,IAAE,OAAOG,SAAM,IAAEA,SAAM,CAACC,GAAG,GAACD,SAAM,CAACH,CAAC,CAAC,GAAC,CAACc,CAAC,GAAC,WAAW,IAAE,OAAOT,UAAU,GAACA,UAAU,GAACS,CAAC,IAAER,IAAI,EAAEwE,0BAA0B,GAAC9E,CAAC,EAAE,CAAA;AAAA,GAAC,CAACQ,cAAI,EAAE,YAAU;IAAC,YAAY,CAAA;;IAAC,IAAIM,CAAC,GAAC,OAAO;AAACd,MAAAA,CAAC,GAAC,SAAS,CAAA;AAAC,IAAA,OAAO,UAASD,CAAC,EAAC8B,CAAC,EAAC;AAAC,MAAA,IAAIJ,CAAC,GAACI,CAAC,CAACpB,SAAS,CAAA;AAACgB,MAAAA,CAAC,CAACsD,OAAO,GAAC,UAASjE,CAAC,EAAC;QAAC,OAAO,IAAI,CAACkE,MAAM,EAAE,CAAC7C,CAAC,CAACrB,CAAC,CAAC,GAACmC,IAAI,CAACC,IAAI,CAAC,CAAC,IAAI,CAACP,KAAK,EAAE,GAAC,CAAC,IAAE,CAAC,CAAC,GAAC,IAAI,CAACA,KAAK,CAAC,IAAI,CAACA,KAAK,EAAE,GAAC,CAAC,GAAC,CAAC,IAAE7B,CAAC,GAAC,CAAC,CAAC,CAAC,CAAA;OAAC,CAAA;AAAC,MAAA,IAAIkB,CAAC,GAACP,CAAC,CAACe,GAAG,CAAA;AAACf,MAAAA,CAAC,CAACe,GAAG,GAAC,UAASzC,CAAC,EAAC8B,CAAC,EAAC;AAAC,QAAA,OAAO9B,CAAC,GAACkF,MAAM,CAAClF,CAAC,CAAC,EAAC,IAAI,CAACiF,MAAM,EAAE,CAACE,CAAC,CAACrD,CAAC,CAAC,KAAG7B,CAAC,GAAC,IAAI,CAACwC,GAAG,CAAC,CAAC,GAACzC,CAAC,EAACe,CAAC,CAAC,GAACkB,CAAC,CAACV,IAAI,CAAC,IAAI,CAAC,CAACvB,CAAC,EAAC8B,CAAC,CAAC,CAAA;OAAC,CAAA;AAAC,MAAA,IAAIM,CAAC,GAACV,CAAC,CAACoB,OAAO,CAAA;AAACpB,MAAAA,CAAC,CAACoB,OAAO,GAAC,UAAS9C,CAAC,EAAC8B,CAAC,EAAC;AAAC,QAAA,IAAIJ,CAAC,GAAC,IAAI,CAACuD,MAAM,EAAE;UAAChD,CAAC,GAAC,CAAC,CAACP,CAAC,CAACU,CAAC,CAACN,CAAC,CAAC,IAAEA,CAAC,CAAA;QAAC,IAAGJ,CAAC,CAACyD,CAAC,CAACnF,CAAC,CAAC,KAAGC,CAAC,EAAC;UAAC,IAAIkC,CAAC,GAAC,IAAI,CAAC6C,OAAO,EAAE,GAAC,CAAC,CAAA;AAAC,UAAA,OAAO/C,CAAC,GAAC,IAAI,CAACW,KAAK,CAAC,CAAC,GAACT,CAAC,CAAC,CAACW,OAAO,CAAC/B,CAAC,CAAC,CAAC+B,OAAO,CAAC,KAAK,CAAC,GAAC,IAAI,CAACF,KAAK,CAAC,CAAC,GAACT,CAAC,GAAC,CAAC,CAAC,CAACtB,KAAK,CAACE,CAAC,CAAC,CAACF,KAAK,CAAC,KAAK,CAAC,CAAA;AAAA,SAAA;QAAC,OAAOuB,CAAC,CAACb,IAAI,CAAC,IAAI,CAAC,CAACvB,CAAC,EAAC8B,CAAC,CAAC,CAAA;OAAC,CAAA;KAAC,CAAA;AAAA,GAAG,CAAA,CAAA;;;;ACAnwB,IAAIsD,QAAQ,GAAGC,UAAqB,CAAA;;AAEpC;AACA,IAAIC,QAAQ,GAAG,CAAC,GAAG,CAAC;AAChBC,EAAAA,WAAW,GAAG,uBAAuB,CAAA;;AAEzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,UAAQA,CAACC,KAAK,EAAE;EACvB,IAAI,CAACA,KAAK,EAAE;AACV,IAAA,OAAOA,KAAK,KAAK,CAAC,GAAGA,KAAK,GAAG,CAAC,CAAA;AAC/B,GAAA;AACDA,EAAAA,KAAK,GAAGL,QAAQ,CAACK,KAAK,CAAC,CAAA;EACvB,IAAIA,KAAK,KAAKH,QAAQ,IAAIG,KAAK,KAAK,CAACH,QAAQ,EAAE;IAC7C,IAAII,IAAI,GAAID,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAE,CAAA;IAC/B,OAAOC,IAAI,GAAGH,WAAW,CAAA;AAC1B,GAAA;AACD,EAAA,OAAOE,KAAK,KAAKA,KAAK,GAAGA,KAAK,GAAG,CAAC,CAAA;AACpC,CAAA;AAEA,IAAAE,UAAc,GAAGH,UAAQ;;ACzCzB,IAAIA,QAAQ,GAAGH,UAAqB,CAAA;;AAEpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASO,WAASA,CAACH,KAAK,EAAE;AACxB,EAAA,IAAII,MAAM,GAAGL,QAAQ,CAACC,KAAK,CAAC;IACxBK,SAAS,GAAGD,MAAM,GAAG,CAAC,CAAA;AAE1B,EAAA,OAAOA,MAAM,KAAKA,MAAM,GAAIC,SAAS,GAAGD,MAAM,GAAGC,SAAS,GAAGD,MAAM,GAAI,CAAC,CAAA;AAC1E,CAAA;AAEA,IAAAE,WAAc,GAAGH,WAAS;;ACnC1B,IAAII,SAAS,GAAGX,UAAuB;AACnCY,EAAAA,cAAc,GAAGC,eAA4B;AAC7CN,EAAAA,SAAS,GAAGO,WAAsB,CAAA;;AAEtC;AACA,IAAIC,UAAU,GAAGlD,IAAI,CAACC,IAAI;EACtBkD,SAAS,GAAGnD,IAAI,CAACoD,GAAG,CAAA;;AAExB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,KAAKA,CAACC,KAAK,EAAEC,IAAI,EAAEC,KAAK,EAAE;AACjC,EAAA,IAAKA,KAAK,GAAGT,cAAc,CAACO,KAAK,EAAEC,IAAI,EAAEC,KAAK,CAAC,GAAGD,IAAI,KAAKE,SAAS,EAAG;AACrEF,IAAAA,IAAI,GAAG,CAAC,CAAA;AACZ,GAAG,MAAM;IACLA,IAAI,GAAGJ,SAAS,CAACT,SAAS,CAACa,IAAI,CAAC,EAAE,CAAC,CAAC,CAAA;AACrC,GAAA;EACD,IAAIhF,MAAM,GAAG+E,KAAK,IAAI,IAAI,GAAG,CAAC,GAAGA,KAAK,CAAC/E,MAAM,CAAA;AAC7C,EAAA,IAAI,CAACA,MAAM,IAAIgF,IAAI,GAAG,CAAC,EAAE;AACvB,IAAA,OAAO,EAAE,CAAA;AACV,GAAA;EACD,IAAIG,KAAK,GAAG,CAAC;AACTC,IAAAA,QAAQ,GAAG,CAAC;IACZhB,MAAM,GAAGiB,KAAK,CAACV,UAAU,CAAC3E,MAAM,GAAGgF,IAAI,CAAC,CAAC,CAAA;EAE7C,OAAOG,KAAK,GAAGnF,MAAM,EAAE;AACrBoE,IAAAA,MAAM,CAACgB,QAAQ,EAAE,CAAC,GAAGb,SAAS,CAACQ,KAAK,EAAEI,KAAK,EAAGA,KAAK,IAAIH,KAAM,CAAA;AAC9D,GAAA;AACD,EAAA,OAAOZ,MAAM,CAAA;AACf,CAAA;AAEA,IAAAkB,OAAc,GAAGR,KAAK;;;;ACrCtBS,KAAA,CAAMC,OAAOC,UAAU,CAAA,CAAA;AACvBF,KAAA,CAAMC,OAAO3D,QAAQ,CAAA,CAAA;AACrB0D,KAAA,CAAMC,OAAOnC,UAAU,CAAA,CAAA;AACvBkC,KAAA,CAAMC,OAAOE,aAAa,CAAA,CAAA;AAC1BH,KAAA,CAAMC,OAAOG,cAAc,CAAA,CAAA;AAC3BJ,KAAA,CAAMC,OAAOI,iBAAiB,CAAA,CAAA;AAC9BL,KAAA,CAAMC,OAAOK,cAAc,CAAA,CAAA;AAOpB,SAASC,eAAeC,GAAqB,EAAA;AAClD,EAAA,IAAI,CAACA,GAAA,EAAY,OAAAA,GAAA,CAAA;EACV,OAAAA,GAAA,CAAI,CAAG,CAAA,CAAArD,WAAA,EAAc,CAAAsD,MAAA,CAAOD,IAAIE,SAAU,CAAA,CAAA,EAAGF,GAAI,CAAA/F,MAAM,CAAC,CAAA,CAAA;AACjE,CAAA;AAYA,SAASkG,kBAAmBA,CAAAC,IAAA,EAAgC;AAAA,EAAA,IAA9BrE,IAAM,GAAAqE,IAAA,CAANrE,IAAM;IAAAX,KAAA,GAAAgF,IAAA,CAAAhF,KAAA,CAAA;EAClC,OAAO,IAAIiF,IAAA,CAAKtE,IAAM,EAAAX,KAAA,EAAO,CAAC,CAAA,CAAA;AAChC,CAAA;AAOA,SAASkF,cAAeA,CAAAC,KAAA,EAAkC;AAAA,EAAA,IAAhCxE,IAAM,GAAAwE,KAAA,CAANxE,IAAM;IAAAX,KAAA,GAAAmF,KAAA,CAAAnF,KAAA,CAAA;AAC9B,EAAA,OAAO,IAAIiF,IAAK,CAAAtE,IAAA,EAAMX,QAAQ,CAAG,EAAA,CAAC,EAAEoF,OAAQ,EAAA,CAAA;AAC9C,CAAA;AAOA,SAASC,iBAAkBA,CAAAC,KAAA,EAAgC;AAAA,EAAA,IAA9B3E,IAAM,GAAA2E,KAAA,CAAN3E,IAAM;IAAAX,KAAA,GAAAsF,KAAA,CAAAtF,KAAA,CAAA;EAC1B,OAAA,IAAIiF,KAAKtE,IAAM,EAAAX,KAAA,EAAOkF,eAAe;AAAEvE,IAAAA,IAAA,EAAAA,IAAA;AAAMX,IAAAA,KAAM,EAANA,KAAAA;AAAM,GAAC,CAAC,CAAA,CAAA;AAC9D,CAAA;AAEA,SAASuF,UAAAA,CAAWC,OAAaC,KAAsB,EAAA;EACrD,OAAOD,KAAM,CAAAE,WAAA,EAAkB,KAAAD,KAAA,CAAMC,WAAY,EAAA,CAAA;AACnD,CAAA;AAEA,SAASC,aAAAA,CAAcH,OAAaC,KAAsB,EAAA;EACxD,OAAOF,UAAW,CAAAC,KAAA,EAAOC,KAAK,CAAA,IAAKrB,KAAM,CAAAoB,KAAK,CAAE,CAAApD,OAAA,EAAc,KAAAgC,KAAA,CAAMqB,KAAK,CAAA,CAAErD,OAAQ,EAAA,CAAA;AACrF,CAAA;AAEA,SAASwD,WAAAA,CAAYJ,OAAaC,KAAsB,EAAA;AAC/C,EAAA,OAAAF,UAAA,CAAWC,OAAOC,KAAK,CAAA,IAAKD,MAAMK,QAAS,EAAA,KAAMJ,MAAMI,QAAS,EAAA,CAAA;AACzE,CAAA;AAEA,SAASC,UAAWA,CAAAN,KAAA,EAAaC,KAAa,EAAgC;AAAA,EAAA,IAAhCM,WAAA,GAAAnH,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAmF,SAAA,GAAAnF,SAAA,CAAA,CAAA,CAAA,GAAc,OAAkB,CAAA;AAC5E,EAAA,OAAOgH,YAAYJ,KAAO,EAAAC,KAAK,KAAKrB,KAAM,CAAAoB,KAAK,EAAEpE,MAAO,CAAA2E,WAAW,CAAE,CAAAnG,IAAA,OAAWwE,KAAM,CAAAqB,KAAK,EAAErE,MAAO,CAAA2E,WAAW,EAAEnG,IAAK,EAAA,CAAA;AACxH,CAAA;AAEA,SAASoG,UAAAA,CAAWR,OAAaC,KAAsB,EAAA;AAC9C,EAAA,OAAAG,WAAA,CAAYJ,OAAOC,KAAK,CAAA,IAAKD,MAAMJ,OAAQ,EAAA,KAAMK,MAAML,OAAQ,EAAA,CAAA;AACxE,CAAA;AAQA,SAASa,UAAAA,CAAWT,OAA+BC,KAAqB,EAAA;AAChE,EAAA,IAAAS,EAAA,GAAKV,MAAMW,OAAQ,EAAA,CAAA;AACnB,EAAA,IAAAC,EAAA,GAAKX,MAAMU,OAAQ,EAAA,CAAA;AAEzB,EAAA,IAAID,EAAK,GAAAE,EAAA,EAAW,OAAA,CAAA,CAAA,CAAA;AACpB,EAAA,IAAIF,EAAK,GAAAE,EAAA,EAAW,OAAA,CAAA,CAAA;AACb,EAAA,OAAA,CAAA,CAAA;AACT,CAAA;AASO,SAASC,OAAOb,KAAa,EAAAC,KAAA,EAA4D;AAAA,EAAA,IAA/Ca,IAAO,GAAA1H,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAmF,SAAA,GAAAnF,SAAA,CAAA,CAAA,CAAA,GAAA,MAAA,CAAA;AAAA,EAAA,IAAQmH,kFAAc,OAAkB,CAAA;AAC9F,EAAA,IAAMQ,IAAO,GAAA;AACXhB,IAAAA,UAAA,EAAAA,UAAA;AACAI,IAAAA,aAAA,EAAAA,aAAA;AACAC,IAAAA,WAAA,EAAAA,WAAA;AACAE,IAAAA,UAAA,EAAAA,UAAA;AACAE,IAAAA,UAAA,EAAAA,UAAAA;GACF,CAAA;AACA,EAAA,OAAOO,qBAAc5B,cAAA,CAAe2B,IAAI,CAAK,CAAA,CAAA,CAAAd,KAAA,EAAOC,OAAOM,WAAW,CAAA,CAAA;AACxE,CAAA;AAEgB,SAAAS,WAAAA,CAAYvF,CAAS,EAAAwF,GAAA,EAAU/C,GAAU,EAAA;EAC/C,OAAA+C,GAAA,IAAOR,UAAW,CAAAhF,CAAA,EAAGwF,GAAG,CAAA,KAAM,MAAQ/C,GAAO,IAAAuC,UAAA,CAAWhF,CAAG,EAAAyC,GAAG,CAAM,KAAA,CAAA,CAAA;AAC9E,CAAA;AAKO,SAASgD,QAAiBA,GAAA;AACzB,EAAA,IAAAC,GAAA,GAAM,IAAI1B,IAAK,EAAA,CAAA;EACrB,OAAO,IAAIA,IAAA,CAAK0B,GAAI,CAAAjB,WAAA,EAAe,EAAAiB,GAAA,CAAId,QAAS,EAAA,EAAGc,GAAI,CAAAvB,OAAA,EAAW,EAAA,CAAA,EAAG,GAAG,CAAC,CAAA,CAAA;AAC3E,CAAA;AAOO,SAASwB,WAAW3G,IAAY,EAAA;EACrC,IAAI4G,QAAW,GAAA5G,IAAA,CAAA;AACX,EAAA,IAAA,EAAEA,gBAAgBgF,IAAO,CAAA,EAAA;IAC3B4B,QAAA,GAAWH,QAAS,EAAA,CAAA;AACtB,GAAA;EACO,OAAA;AACL/F,IAAAA,IAAA,EAAMkG,SAASnB,WAAY,EAAA;AAC3B1F,IAAAA,KAAA,EAAO6G,SAAShB,QAAS,EAAA;AACzB5F,IAAAA,IAAA,EAAM4G,SAASzB,OAAQ,EAAA;AACvB0B,IAAAA,KAAA,EAAOD,SAASE,QAAS,EAAA;AACzBC,IAAAA,OAAA,EAASH,SAASI,UAAW,EAAA;AAC7BC,IAAAA,OAAA,EAASL,SAASM,UAAW,EAAA;AAC7BC,IAAAA,YAAA,EAAcP,SAASQ,eAAgB,EAAA;IACvCrF,QAAU,EAAA6E,QAAA,CAASE,QAAS,EAAA,GAAI,KAAK,IAAO,GAAA,IAAA;GAC9C,CAAA;AACF,CAAA;AAWO,SAASO,WACdA,CAAArH,IAAA,EACA6G,KACA,EAAAE,OAAA,EACAE,SACAE,YACM,EAAA;EACN,OAAOhD,KAAM,CAAAnE,IAAI,CACd,CAAAsH,IAAA,CAAKT,KAAK,CACV,CAAAU,MAAA,CAAOR,OAAO,CAAA,CACdS,OAAOP,OAAO,CAAA,CACdQ,WAAY,CAAAN,YAAY,EACxBO,MAAO,EAAA,CAAA;AACZ,CAAA;AAQgB,SAAAC,aAAAA,CAAc3H,MAAY4H,GAAmB,EAAA;AAC3D,EAAA,OAAOzD,MAAMnE,IAAI,CAAA,CAAEG,SAASyH,GAAK,EAAA,OAAO,EAAEF,MAAO,EAAA,CAAA;AACnD,CAAA;AAQgB,SAAAG,QAAAA,CAAS7H,MAAY4H,GAAmB,EAAA;AACtD,EAAA,OAAOzD,MAAMnE,IAAI,CAAA,CAAEJ,IAAIgI,GAAK,EAAA,OAAO,EAAEF,MAAO,EAAA,CAAA;AAC9C,CAAA;AAkBO,SAASI,QACdA,CAAAC,KAAA,EAAAC,KAAA,EAUA;AAAA,EAAA,IAVEtH,IAAM,GAAAqH,KAAA,CAANrH,IAAM;IAAAX,KAAA,GAAAgI,KAAA,CAAAhI,KAAA,CAAA;AAAA,EAAA,IAEN2B,cAAA,GAAAsG,KAAA,CAAAtG,cAAA;IAAAuG,oBAAA,GAAAD,KAAA,CACAE,cAAiB;AAAjBA,IAAAA,cAAiB,GAAAD,oBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,GAAAA,oBAAA;IAAAE,iBAAA,GAAAH,KAAA,CACjBI;IAAAA,oCAAc,KAAA,CAAA,GAAA,YAAA;AAAA,MAAA,OAAM,KAAA,CAAA;AAAA,KAAA,GAAAD,iBAAA;IACpBE,OAAA,GAAAL,KAAA,CAAAK,OAAA;IACAC,OAAA,GAAAN,KAAA,CAAAM,OAAA;IAAAC,iBAAA,GAAAP,KAAA,CACAlC,WAAc;AAAdA,IAAAA,WAAc,GAAAyC,iBAAA,KAAA,KAAA,CAAA,GAAA,OAAA,GAAAA,iBAAA;IAAAC,qBAAA,GAAAR,KAAA,CACdS,sBAAyB;AAAzBA,IAAAA,sBAAyB,GAAAD,qBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,GAAAA,qBAAA,CAAA;EAG3B,IAAME,UAAa,GAAA5D,kBAAA,CAAmB;AAAEpE,IAAAA,IAAA,EAAAA,IAAA;AAAMX,IAAAA,OAAAA,KAAAA;AAAM,GAAC,CAAA,CAAA;EACrD,IAAM4I,SAAY,GAAAvD,iBAAA,CAAkB;AAAE1E,IAAAA,IAAA,EAAAA,IAAA;AAAMX,IAAAA,OAAAA,KAAAA;AAAM,GAAC,CAAA,CAAA;EACnD,IAAM6I,OAAU,GAAA3D,cAAA,CAAe;AAAEvE,IAAAA,IAAA,EAAAA,IAAA;AAAMX,IAAAA,OAAAA,KAAAA;AAAM,GAAC,CAAA,CAAA;EAC9C,IAAM8I,UAAU,EAAC,CAAA;EACjB,IAAI5J,CAAI,GAAA,CAAA,CAAA;AACR,EAAA,IAAM6J,QAAQrC,QAAS,EAAA,CAAA;EAClB,KAAAxH,CAAA,EAAGA,CAAK,IAAA2J,OAAA,EAAS3J,CAAK,EAAA,EAAA;IACzB,IAAM8J,UAAa,GAAA,IAAI/D,IAAK,CAAAtE,IAAA,EAAMX,OAAOd,CAAC,CAAA,CAAA;IAC1C4J,OAAA,CAAQG,IAAK,CAAA;AACXC,MAAAA,IAAM,EAAAhK,CAAA;AACNiK,MAAAA,MAAQ,EAAA,KAAA;AACRtG,MAAAA,KAAO,EAAAmG,UAAA;MACPI,QAAW,EAAAC,YAAA,CAAWhB,WAAW,CAAA,IAAKA,WAAY,CAAAW,UAAU,CACtD,IAAA,CAACN,sBAA0B,IAAAlC,WAAA,CAAYwC,UAAY,EAAAV,OAAA,EAASC,OAAO,CAAA;AACzE5B,MAAAA,GAAA,EAAKN,MAAO,CAAA0C,KAAA,EAAOC,UAAU,CAAA;MAC7BM,iBAAiBpK,CAAM,KAAA,CAAA;MACvBqK,gBAAgBrK,CAAM,KAAA2J,OAAA;AACtBvC,MAAAA,IAAM,EAAA,eAAA;MACNkD,QAAU,EAAApF,KAAA,CAAM4E,UAAU,CAAA,CAAE5H,OAAO2E,WAAW,CAAA;AAChD,KAAC,CAAA,CAAA;AACH,GAAA;AAEI,EAAA,IAAA4C,UAAA,CAAWc,MAAO,EAAA,KAAM9H,cAAgB,EAAA;AAC1CgH,IAAAA,UAAA,CAAWe,QAAQ,CAAC,CAAA,CAAA;AACpB,IAAA,OAAO,IAAM,EAAA;MACXZ,OAAA,CAAQa,OAAQ,CAAA;QACdT,IAAM,EAAAP,UAAA,CAAWvD,OAAQ,EAAA,CAAEwE,QAAS,EAAA;AACpCT,QAAAA,MAAQ,EAAA,KAAA;AACRtG,QAAAA,KAAA,EAAO,IAAIoC,IAAA,CAAK0D,UAAU,CAAA;QAC1BS,QAAW,EAAAC,YAAA,CAAWhB,WAAW,CAAA,IAAKA,WAAY,CAAAM,UAAU,CAAO,IAAA,CAACD,sBAA0B,IAAAlC,WAAA,CAAYmC,UAAY,EAAAL,OAAA,EAASC,OAAO,CAAA;AACtIsB,QAAAA,UAAY,EAAA,IAAA;AACZvD,QAAAA,IAAM,EAAA,YAAA;QACNkD,QAAU,EAAApF,KAAA,CAAMuE,UAAU,CAAA,CAAEvH,OAAO2E,WAAW,CAAA;AAChD,OAAC,CAAA,CAAA;MACD4C,UAAA,CAAWe,OAAQ,CAAAf,UAAA,CAAWvD,OAAQ,EAAA,GAAI,CAAC,CAAA,CAAA;AAC3C,MAAA,IAAIuD,WAAWc,MAAO,EAAA,KAAMnJ,KAAKwJ,GAAI,CAAAnI,cAAA,GAAiB,CAAC,CAAI,GAAA,CAAA,EAAG,MAAA;AAChE,KAAA;AACF,GAAA;EAEA,IAAMoI,GAAM,GAAA,EAAA,CAAA;AACL,EAAA,OAAAjB,OAAA,CAAQjK,SAASkL,GAAK,EAAA;IAC3BnB,SAAA,CAAUc,OAAQ,CAAAd,SAAA,CAAUxD,OAAQ,EAAA,GAAI,CAAC,CAAA,CAAA;IACzC0D,OAAA,CAAQG,IAAK,CAAA;AACXC,MAAAA,IAAA,EAAMN,UAAUxD,OAAQ,EAAA;AACxB+D,MAAAA,MAAQ,EAAA,KAAA;AACRtG,MAAAA,KAAA,EAAO,IAAIoC,IAAA,CAAK2D,SAAS,CAAA;MACzBQ,QAAW,EAAAC,YAAA,CAAWhB,WAAW,CAAA,IAAKA,WAAY,CAAAO,SAAS,CAAO,IAAA,CAACF,sBAA0B,IAAAlC,WAAA,CAAYoC,SAAW,EAAAN,OAAA,EAASC,OAAO,CAAA;AACpIsB,MAAAA,UAAY,EAAA,IAAA;AACZvD,MAAAA,IAAM,EAAA,YAAA;MACNkD,QAAU,EAAApF,KAAA,CAAMwE,SAAS,CAAA,CAAExH,OAAO2E,WAAW,CAAA;AAC/C,KAAC,CAAA,CAAA;AACH,GAAA;AAEM,EAAA,IAAAiE,QAAA,GAAWrG,OAAM,CAAAmF,OAAA,EAAS,CAAC,CAAA,CAAA;AAEjC,EAAA,IAAIX,cAAgB,EAAA;AACT6B,IAAAA,QAAA,CAAAC,OAAA,CAAQ,UAAChJ,CAAM,EAAA;MACtBA,CAAA,CAAE0I,OAAQ,CAAAO,aAAA,CAAAA,aAAA,CACLjJ,EAAAA,EAAAA,CAAE,CAAA,CAAA,CAAA,CAAA,EAAA,EAAA,EAAA;AACLkI,QAAAA,MAAQ,EAAA,KAAA;AACRtG,QAAAA,KAAA,EAAO5B,EAAE,CAAG,CAAA,CAAA4B,KAAA;AACZqG,QAAAA,IAAA,EAAM9E,MAAMnD,CAAE,CAAA,CAAA,CAAA,CAAG4B,KAAK,CAAE,CAAAzB,MAAA,CAAO2E,WAAW,CAAA,CAAEnG,IAAK,EAAA;AACjD4J,QAAAA,UAAUpF,KAAM,CAAAnD,CAAA,CAAE,GAAG4B,KAAK,CAAA,CAAEzB,OAAO2E,WAAW,CAAA;AAAA,OAAA,CAC/C,CAAA,CAAA;AACH,KAAC,CAAA,CAAA;AACH,GAAA;AAEO,EAAA,OAAAiE,QAAA,CAAA;AACT,CAAA;AAEO,SAASG,YACdxJ,IACA,EAAAyJ,KAAA,EAQA;AAAA,EAAA,IAAAC,iBAAA,GAAAD,KAAA,CAPE/B;IAAAA,oCAAc,KAAA,CAAA,GAAA,YAAA;AAAA,MAAA,OAAM,KAAA,CAAA;AAAA,KAAA,GAAAgC,iBAAA;IACpB/B,OAAA,GAAA8B,KAAA,CAAA9B,OAAA;IACAC,OAAA,GAAA6B,KAAA,CAAA7B,OAAA;IACA+B,YAAA,GAAAF,KAAA,CAAAE,YAAA;IAAAC,iBAAA,GAAAH,KAAA,CACArE,WAAc;AAAdA,IAAAA,WAAc,GAAAwE,iBAAA,KAAA,KAAA,CAAA,GAAA,OAAA,GAAAA,iBAAA;IAAAC,qBAAA,GAAAJ,KAAA,CACd1B,sBAAyB;AAAzBA,IAAAA,sBAAyB,GAAA8B,qBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,GAAAA,qBAAA,CAAA;EAG3B,IAAMC,aAAa,EAAC,CAAA;AACpB,EAAA,IAAM1B,QAAQrC,QAAS,EAAA,CAAA;EAEvB,KAAA,IAASxH,CAAI,GAAA,CAAA,EAAGA,CAAK,IAAA,CAAA,EAAGA,CAAK,EAAA,EAAA;IACrB,IAAAe,IAAA,GAAOmE,KAAM,CAAA,IAAIa,IAAK,CAAAtE,IAAA,EAAM,CAAC,CAAC,CAAE,CAAAyB,OAAA,CAAQlD,CAAC,CAAA,CAAEyI,MAAO,EAAA,CAAA;IAExD8C,UAAA,CAAWxB,IAAK,CAAA;AACdpG,MAAAA,KAAO,EAAA5C,IAAA;MACP0G,GAAK,EAAAN,MAAA,CAAOpG,IAAM,EAAA8I,KAAA,EAAO,SAAS,CAAA;MAClCK,QAAW,EAAAC,YAAA,CAAWhB,WAAW,CAAA,IAAKA,WAAY,CAAApI,IAAI,CAAO,IAAA,CAACyI,sBAA0B,IAAAlC,WAAA,CAAYvG,IAAM,EAAAqI,OAAA,EAASC,OAAO,CAAA;AAC1HY,MAAAA,MAAQ,EAAA,KAAA;AACRD,MAAAA,IAAA,EAAMoB,aAAapL,CAAI,GAAA,CAAA,CAAA;MACvBsK,QAAU,EAAApF,KAAA,CAAMnE,IAAI,CAAA,CAAEmB,OAAO2E,WAAW,CAAA;AAC1C,KAAC,CAAA,CAAA;AACH,GAAA;AAEO,EAAA,OAAApC,OAAA,CAAM8G,YAAY,CAAC,CAAA,CAAA;AAC5B,CAAA;AAEO,SAASC,SACd/J,IACA,EAAAgK,KAAA,EAOA;AAAA,EAAA,IAAAC,iBAAA,GAAAD,KAAA,CANEtC;IAAAA,oCAAc,KAAA,CAAA,GAAA,YAAA;AAAA,MAAA,OAAM,KAAA,CAAA;AAAA,KAAA,GAAAuC,iBAAA;IACpBtC,OAAA,GAAAqC,KAAA,CAAArC,OAAA;IACAC,OAAA,GAAAoC,KAAA,CAAApC,OAAA;IAAAsC,iBAAA,GAAAF,KAAA,CACA5E,WAAc;AAAdA,IAAAA,WAAc,GAAA8E,iBAAA,KAAA,KAAA,CAAA,GAAA,OAAA,GAAAA,iBAAA;IAAAC,qBAAA,GAAAH,KAAA,CACdjC,sBAAyB;AAAzBA,IAAAA,sBAAyB,GAAAoC,qBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,GAAAA,qBAAA,CAAA;AAG3B,EAAA,IAAMC,YAAYC,QAAU,CAAA,CAAArK,IAAA,GAAO,IAAIiJ,QAAS,EAAA,EAAG,EAAE,CAAI,GAAA,EAAA,CAAA;AACzD,EAAA,IAAMqB,UAAUF,SAAY,GAAA,CAAA,CAAA;EAE5B,IAAMG,UAAU,EAAC,CAAA;AAEjB,EAAA,IAAMnC,QAAQrC,QAAS,EAAA,CAAA;EAEvB,KAAA,IAASxH,CAAI,GAAA6L,SAAA,EAAW7L,CAAK,IAAA+L,OAAA,EAAS/L,CAAK,EAAA,EAAA;IACzC,IAAMe,IAAO,GAAA,IAAIgF,IAAK,CAAA/F,CAAA,EAAG,CAAC,CAAA,CAAA;IAE1BgM,OAAA,CAAQjC,IAAK,CAAA;AACXpG,MAAAA,KAAO,EAAA5C,IAAA;MACP0G,GAAK,EAAAN,MAAA,CAAOpG,IAAM,EAAA8I,KAAA,EAAO,MAAM,CAAA;MAC/BK,QAAW,EAAAC,YAAA,CAAWhB,WAAW,CAAA,IAAKA,WAAY,CAAApI,IAAI,CAAO,IAAA,CAACyI,sBAA0B,IAAAlC,WAAA,CAAYvG,IAAM,EAAAqI,OAAA,EAASC,OAAO,CAAA;AAC1HY,MAAAA,MAAQ,EAAA,KAAA;MACRD,IAAA,EAAA,EAAA,CAAArE,MAAA,CAAS5E,IAAA,CAAKyF,WAAY,EAAA,CAAA;MAC1B8D,QAAU,EAAApF,KAAA,CAAMnE,IAAI,CAAA,CAAEmB,OAAO2E,WAAW,CAAA;AAC1C,KAAC,CAAA,CAAA;AACH,GAAA;AAEO,EAAA,OAAApC,OAAA,CAAMuH,SAAS,CAAC,CAAA,CAAA;AACzB,CAAA;AAEgB,SAAAC,SAAAA,CAAUxK,MAAcyK,MAAqB,EAAA;AACrD,EAAA,IAAAC,mBAAA,GAEFD,MAAA,CADF/C;IAAAA,sCAAc,KAAA,CAAA,GAAA,YAAA;AAAA,MAAA,OAAM,KAAA,CAAA;AAAA,KAAA,GAAAgD,mBAAA;IAAO/C,OAAA,GACzB8C,MAAA,CADyB9C,OAAA;IAASC,OAAA,GAClC6C,MAAA,CADkC7C,OAAA;IAAS+C,UAAA,GAC3CF,MAAA,CAD2CE,UAAA;IAAAC,mBAAA,GAC3CH,MAAA,CADuDrF,WAAc;AAAdA,IAAAA,WAAc,GAAAwF,mBAAA,KAAA,KAAA,CAAA,GAAA,OAAA,GAAAA,mBAAA;IAAAC,qBAAA,GACrEJ,MAAA,CAD8E1C,sBAAyB;AAAzBA,IAAAA,sBAAyB,GAAA8C,qBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,GAAAA,qBAAA,CAAA;EAE3G,IAAMC,WAAW,EAAC,CAAA;AAClB,EAAA,IAAM1C,QAAQrC,QAAS,EAAA,CAAA;EAEvB,KAAA,IAASxH,CAAI,GAAA,CAAA,EAAGA,CAAK,IAAA,EAAA,EAAIA,CAAK,EAAA,EAAA;IAC5B,IAAMe,IAAO,GAAA,IAAIgF,IAAK,CAAAtE,IAAA,EAAMzB,CAAC,CAAA,CAAA;IAE7BuM,QAAA,CAASxC,IAAK,CAAA;AACZpG,MAAAA,KAAO,EAAA5C,IAAA;MACP0G,GAAK,EAAAN,MAAA,CAAOpG,IAAM,EAAA8I,KAAA,EAAO,OAAO,CAAA;MAChCK,QAAW,EAAAC,YAAA,CAAWhB,WAAW,CAAA,IAAKA,WAAY,CAAApI,IAAI,CAAO,IAAA,CAACyI,sBAA0B,IAAAlC,WAAA,CAAYvG,IAAM,EAAAqI,OAAA,EAASC,OAAO,CAAA;AAC1HY,MAAAA,MAAQ,EAAA,KAAA;MACRD,IAAA,EAAMoC,UAAW,CAAArL,IAAA,CAAK4F,QAAS,EAAA,CAAA;MAC/B2D,QAAU,EAAApF,KAAA,CAAMnE,IAAI,CAAA,CAAEmB,OAAO2E,WAAW,CAAA;AAC1C,KAAC,CAAA,CAAA;AACH,GAAA;AAEO,EAAA,OAAApC,OAAA,CAAM8H,UAAU,CAAC,CAAA,CAAA;AAC1B,CAAA;AAyBO,SAASC,UAAWA,CAAAC,IAAA,EAAAC,KAAA,EAA6C;EAAA,IAA3BC,IAAA,GAAArN,QAAA,CAAA,EAAA,GAAAF,yBAAA,CAAAsN,KAAA,GAAAA,KAAA,EAAA,CAAA;AACrC,EAAA,IACJE,KAAA,GAQED,IAAA,CARFC,KAAA;IACAC,GAAA,GAOEF,IAAA,CAPFE,GAAA;IACAC,UAAA,GAMEH,IAAA,CANFG,UAAA;IACAC,QAAA,GAKEJ,IAAA,CALFI,QAAA;IAAAC,UAAA,GAKEL,IAAA,CAJFvF,IAAO;AAAPA,IAAAA,IAAO,GAAA4F,UAAA,KAAA,KAAA,CAAA,GAAA,MAAA,GAAAA,UAAA;IAAAC,aAAA,GAILN,IAAA,CAHFO,OAAU;AAAVA,IAAAA,OAAU,GAAAD,aAAA,KAAA,KAAA,CAAA,GAAA,KAAA,GAAAA,aAAA;IACVtJ,KAAA,GAEEgJ,IAAA,CAFFhJ,KAAA;IAAAwJ,cAAA,GAEER,IAAA,CADFS,QAAW;AAAXA,IAAAA,QAAW,GAAAD,cAAA,KAAA,KAAA,CAAA,GAAA,KAAA,GAAAA,cAAA,CAAA;AAIb,EAAA,IAAI/F,IAAS,KAAA,MAAA,EAAe,OAAAqF,IAAA,CAAA;EAE5B,IAAI,CAACS,OAAS,EAAA;AACZ,IAAA,OAAOT,KAAK5K,GAAI,CAAA,UAACwL;aAAeA,GAAI,CAAAxL,GAAA,CAAI,UAACyL,IAAmB,EAAA;QAC1D,IAAMC,KAAQ,GAAAD,IAAA,CAAA;AAEd,QAAA,IAAIF,QAAU,EAAA;AAAA,UAAA,IAAAI,WAAA,CAAA;UACZD,KAAA,CAAMtD,SAAUtG,KAAuB,aAAvBA,KAAuB,KAAA,KAAA,CAAA,IAAA,CAAA6J,WAAA,GAAvB7J,KAAuB,CAAA8J,IAAA,MAAAD,IAAAA,IAAAA,WAAA,uBAAvBA,WAAA,CAAA1N,IAAA,CAAA6D,KAAuB,EAAO,UAAC+J,GAAA,EAAA;YAAA,OAAQvG,OAAOjC,KAAM,CAAAwI,GAAG,CAAE,CAAAjF,MAAA,IAAU8E,KAAM,CAAA5J,KAAA,EAAOyD,IAAI,CAAK,IAAA,CAACmG,MAAM5C,UAAU,CAAA;WAAA,CAAA,CAAA;AAC5H,SAAO,MAAA;AACC4C,UAAAA,KAAA,CAAAtD,MAAA,GAAS2C,SAASzF,MAAO,CAAAmG,IAAA,CAAK3J,OAAOiJ,KAAO,EAAAxF,IAAI,CAAK,IAAA,CAACmG,KAAM,CAAA5C,UAAA,CAAA;AACpE,SAAA;AAEO,QAAA,OAAA4C,KAAA,CAAA;AACT,OAAC,CAAC,CAAA;KAAA,CAAA,CAAA;AACJ,GAAA;AAEA,EAAA,OAAOd,KAAK5K,GAAI,CAAA,UAACwL;WAAeA,GAAI,CAAAxL,GAAA,CAAI,UAACyL,IAAmB,EAAA;MAC1D,IAAMC,KAAQ,GAAAD,IAAA,CAAA;AACd,MAAA,IAAMvM,OAAOuM,IAAK,CAAA3J,KAAA,CAAA;MAElB,IAAMgK,OAAU,GAAAf,KAAA,IAASzF,MAAO,CAAAyF,KAAA,EAAO7L,MAAMqG,IAAI,CAAA,CAAA;MACjD,IAAMwG,YAAe,GAAAd,UAAA,IAAc3F,MAAO,CAAA2F,UAAA,EAAY/L,MAAMqG,IAAI,CAAA,CAAA;MAChE,IAAMyG,KAAQ,GAAAhB,GAAA,IAAO1F,MAAO,CAAA0F,GAAA,EAAK9L,MAAMqG,IAAI,CAAA,CAAA;MAC3C,IAAM0G,UAAa,GAAAf,QAAA,IAAY5F,MAAO,CAAA4F,QAAA,EAAUhM,MAAMqG,IAAI,CAAA,CAAA;MAC1DmG,KAAA,CAAMtD,MAAU,GAAA,CAAA0D,OAAA,IAAWE,KAAU,KAAA,CAACN,KAAM,CAAA5C,UAAA,CAAA;MAE5C,IAAIiC,SAASC,GAAK,EAAA;QACVU,KAAA,CAAAQ,SAAA,GAAY7I,KAAM,CAAAnE,IAAI,CAAE,CAAAb,SAAA,CAAU0M,KAAO,EAAAC,GAAA,EAAKzF,IAAM,EAAA,IAAI,CAAK,IAAA,CAACmG,KAAM,CAAA5C,UAAA,CAAA;QAC1E4C,KAAA,CAAMS,YAAe,GAAAL,OAAA,CAAA;QACrBJ,KAAA,CAAMU,UAAa,GAAAJ,KAAA,CAAA;AACrB,OAAA;MAEA,IAAIf,cAAcC,QAAU,EAAA;QACpBQ,KAAA,CAAAW,cAAA,GAAiBhJ,KAAM,CAAAnE,IAAI,CAAE,CAAAb,SAAA,CAAU4M,UAAY,EAAAC,QAAA,EAAU3F,IAAM,EAAA,IAAI,CAAK,IAAA,CAACmG,KAAM,CAAA5C,UAAA,CAAA;QACzF4C,KAAA,CAAMY,iBAAoB,GAAAP,YAAA,CAAA;QAC1BL,KAAA,CAAMa,eAAkB,GAAAN,UAAA,CAAA;AAC1B,OAAA;AACO,MAAA,OAAAP,KAAA,CAAA;AACT,KAAC,CAAC,CAAA;GAAA,CAAA,CAAA;AACJ,CAAA;AAGgB,SAAAc,iBAAAA,GAA2C;AAAA,EAAA,IAAzBC,iFAAqB,EAAI,CAAA;EACzD,OAAOA,UACJ,CAAAlM,OAAA,CAAQ,0DAA4D,EAAA,EAAE,EACtEmM,IAAK,EAAA,CAAA;AACV,CAAA;AAOgB,SAAAC,cAAAA,GAAwC;AAAA,EAAA,IAAzBC,iFAAqB,EAAI,CAAA;EACtD,IAAMC,kBAAkBD,UAAW,CAAAE,KAAA,CAAM,QAAQ,CAAA,IAAK,CAAC,EAAE,CAAA,CAAA;EACzD,IAAMC,OAAU,GAAA,0CAAA,CAAA;EAChB,IAAMC,iBAAiBJ,UAAW,CAAAE,KAAA,CAAMC,OAAO,CAAA,IAAK,CAAC,SAAS,CAAA,CAAA;EAC9D,IAAAE,qBAAA,GAAgED,cAAe,CAAA,CAAA,CAAA,CAAGE,MAAM,GAAG,CAAA;IAAAC,sBAAA,GAAAC,cAAA,CAAAH,qBAAA,EAAA,CAAA,CAAA;AAAAI,IAAAA,sBAAA,GAAAF,sBAAA,CAAA,CAAA,CAAA;AAApFpH,IAAAA,KAAA,GAAAsH,sBAAA,KAAQ,KAAA,CAAA,GAAA,CAAG,GAAAA,sBAAA;AAAAC,IAAAA,sBAAA,GAAAH,sBAAA,CAAA,CAAA,CAAA;AAAAlH,IAAAA,OAAA,GAAAqH,sBAAA,KAAU,KAAA,CAAA,GAAA,CAAG,GAAAA,sBAAA;AAAAC,IAAAA,sBAAA,GAAAJ,sBAAA,CAAA,CAAA,CAAA;AAAAhH,IAAAA,OAAA,GAAAoH,sBAAA,KAAU,KAAA,CAAA,GAAA,CAAG,GAAAA,sBAAA;AAAAC,IAAAA,sBAAA,GAAAL,sBAAA,CAAA,CAAA,CAAA;AAAA9G,IAAAA,YAAA,GAAAmH,sBAAA,KAAe,KAAA,CAAA,GAAA,CAAC,GAAAA,sBAAA,CAAA;EAErD,OAAA;IACLzH,OAAO,CAACA,KAAA;IACRE,SAAS,CAACA,OAAA;IACVE,SAAS,CAACA,OAAA;IACVE,cAAc,CAACA,YAAA;IACfpF,UAAU4L,eAAgB,CAAA,CAAA,CAAA;GAC5B,CAAA;AACF,CAAA;AAOO,SAASY,aAAcA,CAAAC,KAAA,EAUlB;AAAA,EAAA,IATV5L,KAAA,GAAA4L,KAAA,CAAA5L,KAAA;IACAwF,WAAA,GAAAoG,KAAA,CAAApG,WAAA;IACAqG,IAAA,GAAAD,KAAA,CAAAC,IAAA;IACAjN,MAAA,GAAAgN,KAAA,CAAAhN,MAAA,CAAA;AAOA,EAAA,IAAI,CAAC4G,WAAA,EAAoB,OAAA,IAAA,CAAA;EAEnB,IAAAsG,aAAA,GAAgBD,IAAS,KAAA,SAAA,GAAY,MAAS,GAAAA,IAAA,CAAA;EAEpD,IAAIE,SAAY,GAAA,IAAA,CAAA;AAEZ,EAAA,IAAAvF,YAAA,CAAWhB,WAAW,CAAG,EAAA;AACpB,IAAA,OAAA,CAACA,YAAYxF,KAAK,CAAA,CAAA;AAC3B,GAAA;AAGI,EAAA,IAAAqB,KAAA,CAAM2K,OAAQ,CAAAxG,WAAW,CAAG,EAAA;AACxB,IAAA,IAAAyG,qBAAA,GAAwBzG,YAAYtH,GAAI,CAAA,UAACyL;aAAiBuC,YAAa,CAAAvC,IAAA,EAAM/K,MAAM,CAAC,CAAA;KAAA,CAAA,CAAA;AAEpF,IAAA,IAAAuN,UAAA,GAAaF,sBAAsBnC,IAAK,CAAA,UAAAH,IAAA,EAAA;MAAA,OAAQA,KAAKnG,MAAO,CAAAjC,KAAA,CAAMvB,KAAK,CAAC,CAAC,CAAA;KAAA,CAAA,CAAA;AAC/E,IAAA,OAAO,CAACmM,UAAA,CAAA;AACV,GAAA;AAIA,EAAA,IAAQC,IAAA,GAA4B5G,WAAA,CAA5B4G,IAAA;IAAMC,EAAI,GAAkB7G,WAAA,CAAtB6G,EAAI;IAAAC,MAAA,GAAkB9G,WAAA,CAAlB8G,MAAA;IAAQC,QAAU/G,WAAA,CAAV+G;EAE1B,IAAIH,QAAQC,EAAI,EAAA;IACd,IAAMG,UAAa,GAAAjL,KAAA,CAAM,IAAIa,IAAA,CAAKgK,IAAI,CAAC,CAAA,CAAA;IACvC,IAAMK,UAAa,GAAAlL,KAAA,CAAM,IAAIa,IAAA,CAAKiK,EAAE,CAAC,CAAA,CAAA;AAE9B,IAAA,OAAA,CAAC9K,MAAMvB,KAAK,CAAA,CAAEzD,UAAUiQ,UAAY,EAAAC,UAAA,EAAYX,eAAe,IAAI,CAAA,CAAA;AAC5E,GAAA;EAEA,IAAMlI,GAAM,GAAA0I,MAAA,GAAS,IAAIlK,IAAA,CAAKkK,MAAM,CAAI,GAAA,IAAA,CAAA;EACxC,IAAMzL,GAAM,GAAA0L,KAAA,GAAQ,IAAInK,IAAA,CAAKmK,KAAK,CAAI,GAAA,IAAA,CAAA;EAGtC,IAAI1L,OAAO+C,GAAK,EAAA;IACd,IAAM4I,WAAa,GAAAjL,KAAA,CAAM,IAAIa,IAAA,CAAKwB,GAAG,CAAC,CAAA,CAAA;IACtC,IAAM6I,WAAa,GAAAlL,KAAA,CAAM,IAAIa,IAAA,CAAKvB,GAAG,CAAC,CAAA,CAAA;AAEtCkL,IAAAA,SAAA,GAAYxK,MAAMvB,KAAK,CAAA,CAAEzD,UAAUiQ,WAAY,EAAAC,WAAA,EAAYX,eAAe,IAAI,CAAA,CAAA;aACrElI,GAAK,EAAA;IACd,IAAM4I,YAAa,GAAAjL,KAAA,CAAM,IAAIa,IAAA,CAAKwB,GAAG,CAAC,CAAA,CAAA;AACtCmI,IAAAA,SAAA,GAAY,CAACxK,KAAM,CAAAvB,KAAK,CAAE,CAAAnD,QAAA,CAAS2P,cAAYV,aAAa,CAAA,CAAA;aACnDjL,GAAK,EAAA;IACd,IAAM4L,YAAa,GAAAlL,KAAA,CAAM,IAAIa,IAAA,CAAKvB,GAAG,CAAC,CAAA,CAAA;AACtCkL,IAAAA,SAAA,GAAY,CAACxK,KAAM,CAAAvB,KAAK,CAAE,CAAApD,OAAA,CAAQ6P,cAAYX,aAAa,CAAA,CAAA;AAC7D,GAAA;AACO,EAAA,OAAAC,SAAA,CAAA;AACT,CAAA;AAKgB,SAAAW,YAAAA,CAAa1M,OAAe2M,SAAmB,EAAA;AACtD,EAAA,OAAAA,SAAA,KAAc,YACjB,GAAA,IAAIvK,IAAK,CAAApC,KAAK,IACduB,KAAM,CAAAvB,KAAA,EAAO2M,SAAS,CAAA,CAAE7H,MAAO,EAAA,CAAA;AACrC;;AC/hBAvD,KAAA,CAAMC,OAAOtG,cAAc,CAAA,CAAA;AAC3BqG,KAAA,CAAMC,OAAOrG,UAAU,CAAA,CAAA;AAEhB,IAAMyR,WAAc,GAAA,WAAA;AAGpB,SAASV,YACdA,CAAAlM,KAAA,EACApB,MACA,EAAAiO,SAAA,EACA3J,WACA,EAAA;EACI,IAAAlD,KAAA,KAAU,MAAMA,KAAU,KAAA,IAAA,EAAM,OAAOuB,KAAM,EAAA,CAAA;EAEjD,IAAIuL,QAAW,GAAA9M,KAAA,CAAA;AAEX,EAAA,IAAA,QAAA,CAAS+M,IAAK,CAAAnO,MAAM,CAAG,EAAA;AACrB,IAAA,IAAA,CAACoO,UAAS,CAAAF,QAAQ,CAAG,EAAA;AACZA,MAAAA,QAAA,GAAAvL,KAAA,CAAMuL,QAAQ,CAAE,CAAAvO,MAAA,CAAO2E,eAAe,OAAO,CAAA,CAAEtE,OAAOA,MAAM,CAAA,CAAA;AACzE,KAAA;IAEA,IAAMqO,OAAU,GAAAH,QAAA,CAAS1B,KAAM,CAAA,SAAS,CAAE,CAAA,CAAA,CAAA,CAAA;IAC1C,IAAM8B,OAAU,GAAAJ,QAAA,CAAS1B,KAAM,CAAA,SAAS,CAAE,CAAA,CAAA,CAAA,CAAA;IAC1C,IAAM+B,aAAgB,GAAAvO,MAAA,CAAOwM,KAAM,CAAA,SAAS,CAAE,CAAA,CAAA,CAAA,CAAA;AAE1C,IAAA,IAAAgC,SAAA,GAAY7L,KAAM,CAAA0L,OAAA,EAAS,MAAM,CAAA,CAAE1O,OAAO2E,WAAe,IAAA,OAAO,CAAE,CAAA7F,OAAA,CAAQ,MAAM,CAAA,CAAA;IAIpF,IAAI+P,UAAU/R,GAAI,EAAA,GAAI,CAAK,IAAA+R,SAAA,CAAU/R,KAAU,KAAA,CAAA,EAAe+R,SAAA,GAAAA,SAAA,CAAUpQ,GAAI,CAAA,CAAA,EAAG,MAAM,CAAA,CAAA;AAG/E,IAAA,IAAAqQ,UAAA,GAAa9L,MAAM0L,OAAS,EAAA,MAAM,EAAE1O,MAAO,CAAA2E,WAAA,IAAe,OAAO,CAAA,CAAEhI,cAAe,EAAA,CAAA;AACxF,IAAA,KAAA,IAASmB,CAAI,GAAA,CAAA,EAAGA,CAAK,IAAAgR,UAAA,EAAYhR,KAAK,CAAG,EAAA;MACvC,IAAIiR,QAAW,GAAAF,SAAA,CAAUpQ,GAAI,CAAAX,CAAA,EAAG,MAAM,CAAA,CAAA;AAEtC,MAAA,IAAIwQ,SAAc,KAAA,OAAA,EAAoBS,QAAA,GAAAA,QAAA,CAAS/P,QAAS,CAAA,CAAA,EAAG,KAAK,CAAA,CAAA;MAChE,IAAI+P,QAAS,CAAA1O,MAAA,CAAOuO,aAAa,CAAA,KAAMD,OAAS,EAAA;AACvC,QAAA,OAAAI,QAAA,CAAA;AACT,OAAA;AACF,KAAA;AACF,GAAA;AAGI,EAAA,IAAA,IAAA,CAAKP,IAAK,CAAAnO,MAAM,CAAG,EAAA;AACjB,IAAA,IAAA,CAACoO,UAAS,CAAAF,QAAQ,CAAG,EAAA;AACZA,MAAAA,QAAA,GAAAvL,KAAA,CAAMuL,QAAQ,CAAE,CAAAvO,MAAA,CAAO2E,eAAe,OAAO,CAAA,CAAEtE,OAAOA,MAAM,CAAA,CAAA;AACzE,KAAA;IAEA,IAAMqO,QAAU,GAAAH,QAAA,CAAS1B,KAAM,CAAA,SAAS,CAAE,CAAA,CAAA,CAAA,CAAA;IAC1C,IAAMmC,UAAa,GAAAT,QAAA,CAAS1B,KAAM,CAAA,SAAS,CAAE,CAAA,CAAA,CAAA,CAAA;IAC7C,IAAMoC,gBAAmB,GAAA5O,MAAA,CAAOwM,KAAM,CAAA,SAAS,CAAE,CAAA,CAAA,CAAA,CAAA;AACjD,IAAA,IAAMqC,eAAelM,KAAM,CAAA0L,QAAA,EAAS,MAAM,CAAA,CAAE5P,QAAQ,MAAM,CAAA,CAAA;AAC1D,IAAA,KAAA,IAAShB,EAAI,GAAA,CAAA,EAAGA,EAAI,GAAA,CAAA,EAAGA,MAAK,CAAG,EAAA;MAC7B,IAAMqR,WAAc,GAAAD,YAAA,CAAazQ,GAAI,CAAAX,EAAA,EAAG,SAAS,CAAA,CAAA;MACjD,IAAIqR,WAAY,CAAA9O,MAAA,CAAO4O,gBAAgB,CAAA,KAAMD,UAAY,EAAA;AAChD,QAAA,OAAAG,WAAA,CAAA;AACT,OAAA;AACF,KAAA;AACF,GAAA;EAGA,IAAMtN,MAAS,GAAAmB,KAAA,CAAMuL,QAAU,EAAAlO,MAAM,CAAE,CAAA+O,OAAA,EACnC,GAAApM,KAAA,CAAMuL,QAAU,EAAAlO,MAAM,CACtB,GAAA2C,KAAA,CAAMuL,QAAQ,CAAA,CAAA;AAGd,EAAA,IAAA,CAAC1M,MAAO,CAAAuN,OAAA,EAAW,EAAA;AACrBC,IAAAA,GAAA,CAAIC,MAAM,YAAc,EAAA7L,iEAAAA,CAAAA,MAAA,CAA6DhC,8BAAoBpB,MAAS,MAAA,CAAA,CAAA;IAClH,OAAO2C,KAAM,EAAA,CAAA;AACf,GAAA;AAEO,EAAA,OAAAnB,MAAA,CAAA;AACT,CAAA;AAGA,SAAS0N,WAAYA,CAAA3L,IAAA,EAYlB;AAAA,EAAA,IAXD4L,OAAA,GAAA5L,IAAA,CAAA4L,OAAA;IACAnP,MAAA,GAAAuD,IAAA,CAAAvD,MAAA;IACAsE,WAAA,GAAAf,IAAA,CAAAe,WAAA;IACA8K,YAAA,GAAA7L,IAAA,CAAA6L,YAAA;IACAC,QAAA,GAAA9L,IAAA,CAAA8L,QAAA,CAAA;AAQA,EAAA,IAAI,CAACF,OAAA,IAAW,CAAC1M,KAAA,CAAM2K,QAAQ+B,OAAO,CAAA,EAAG,OAAO,EAAC,CAAA;AAEjD,EAAA,IAAIG,aAAgB,GAAAH,OAAA,CAAQ7P,GAAI,CAAA,UAACE,CAAM,EAAA;AAAA,IAAA,OAAAA,CAAA,IAAK8N,YAAa,CAAA9N,CAAA,EAAGQ,MAAM,CAAA,CAAEL,MAAO,CAAA2E,WAAW,CAAC,CAAA;GAAA,CAAA,CAAA;AAGvF,EAAA,IACE+K,YACGC,aAAc,CAAA,CAAA,CAAA,IACdA,aAAc,CAAA,CAAA,CAAA,IACdA,cAAc,CAAG,CAAA,CAAApJ,MAAA,EAAS,CAAAxB,OAAA,KAAY4K,aAAc,CAAA,CAAA,CAAA,CAAGpJ,MAAO,EAAA,CAAExB,SACnE,EAAA;IAEA4K,aAAA,GAAgB,CAACA,aAAA,CAAc,CAAI,CAAA,EAAAA,aAAA,CAAc,CAAE,CAAA,CAAA,CAAA;AACrD,GAAA;AAGI,EAAA,IAAAA,aAAA,CAAcpE,KAAK,UAAC7N,CAAA,EAAA;AAAA,IAAA,OAAMA,KAAK,CAACA,CAAA,CAAE0R,OAAQ,EAAC,CAAA;AAAA,GAAA,CAAG,EAAA;AAC5CC,IAAAA,GAAA,CAAAC,KAAA,CACF,YAAA,EAAA,gFAAA,CAAA7L,MAAA,CACuEpD,6BAAmBmP,OAAwB,EAAA,gBAAA,CAAA,CAAA/L,MAAA,CAAAgM,YAAA,MACpH,CAAA,CAAA;AACA,IAAA,OAAO,EAAC,CAAA;AACV,GAAA;EAGA,IAAIA,YAAiB,KAAA,YAAA,EAAqB,OAAAE,aAAA,CAAchQ,IAAI,UAACiQ,EAAA,EAAA;IAAA,OAAOA,MAAMA,EAAG,CAAArJ,MAAA,EAAS,CAAAxB,OAAA,EAAS,CAAA;GAAA,CAAA,CAAA;EAE/F,IAAI0K,YAAiB,KAAA,MAAA,EAAQ,OAAOE,cAAchQ,GAAI,CAAA,UAACiQ;WAAOA,EAAM,IAAAA,EAAA,CAAGrJ,QAAQ,CAAA;GAAA,CAAA,CAAA;AAExE,EAAA,OAAAoJ,aAAA,CAAchQ,IAAI,UAACiQ,EAAA,EAAA;IAAA,OAAOA,MAAMA,EAAG,CAAAvP,MAAA,CAAOoP,YAAgB,IAAApP,MAAM,CAAC,CAAA;GAAA,CAAA,CAAA;AAC1E,CAAA;AAGA,SAASwP,YAAaA,CAAA9L,KAAA,EAUnB;AAAA,EAAA,IATDyL,OAAA,GAAAzL,KAAA,CAAAyL,OAAA;IACAnP,MAAA,GAAA0D,KAAA,CAAA1D,MAAA;IACAoP,YAAA,GAAA1L,KAAA,CAAA0L,YAAA;IACA9K,WAAA,GAAAZ,KAAA,CAAAY,WAAA,CAAA;AAOA,EAAA,IAAI,CAAC6K,OAAA,EAAgB,OAAA,EAAA,CAAA;AAErB,EAAA,IAAMM,YAAYnC,YAAa,CAAA6B,OAAA,EAASnP,MAAM,CAAA,CAAEL,OAAO2E,WAAW,CAAA,CAAA;AAG9D,EAAA,IAAA,CAACmL,SAAU,CAAAV,OAAA,EAAW,EAAA;AACpBC,IAAAA,GAAA,CAAAC,KAAA,CACF,YAAA,EAAA7L,iEAAAA,CAAAA,MAAA,CAC6DpD,MAAmB,EAAAoD,YAAAA,CAAAA,CAAAA,MAAA,CAAA+L,OAAA,MAClF,CAAA,CAAA;AACO,IAAA,OAAA,EAAA,CAAA;AACT,GAAA;AAGA,EAAA,IAAIC,YAAiB,KAAA,YAAA,EAAqB,OAAAK,SAAA,CAAUvJ,MAAO,EAAA,CAAExB,OAAQ,EAAA,CAAA;EAErE,IAAI0K,YAAiB,KAAA,MAAA,EAAQ,OAAOK,UAAUvJ,MAAO,EAAA,CAAA;AAE9C,EAAA,OAAAuJ,SAAA,CAAUzP,MAAO,CAAAoP,YAAA,IAAgBpP,MAAM,CAAA,CAAA;AAChD,CAAA;AAGgB,SAAA0P,WAAAA,CAAYtO,OAAgCpB,MAAgB,EAAA;AACtE,EAAA,IAAAyC,KAAA,CAAM2K,OAAQ,CAAAhM,KAAK,CAAG,EAAA;AACjB,IAAA,OAAAA,KAAA,CAAMuO,KAAM,CAAA,UAACC,CAAM,EAAA;AACxB,MAAA,IAAIA,CAAM,KAAA,EAAA,EAAW,OAAA,IAAA,CAAA;AACd,MAAA,OAAAjN,KAAA,CAAMiN,GAAG5P,MAAM,CAAA,CAAE+O,SAAa,IAAApM,KAAA,CAAMiN,CAAC,CAAA,CAAEb,OAAQ,EAAA,CAAA;AACxD,KAAC,CAAA,CAAA;AACH,GAAA;AAEA,EAAA,IAAI3N,KAAU,KAAA,EAAA,EAAW,OAAA,IAAA,CAAA;AAClB,EAAA,OAAAuB,KAAA,CAAMvB,OAAOpB,MAAM,CAAA,CAAE+O,SAAa,IAAApM,KAAA,CAAMvB,KAAK,CAAA,CAAE2N,OAAQ,EAAA,CAAA;AAChE,CAAA;AAGO,SAASc,WACdV,OACA,EAAAtL,KAAA,EAMA;AAAA,EAAA,IALE7D,MAAA,GAAA6D,KAAA,CAAA7D,MAAA;IACAoP,YAAA,GAAAvL,KAAA,CAAAuL,YAAA;IAAAU,iBAAA,GAAAjM,KAAA,CACAS,WAAc;AAAdA,IAAAA,WAAc,GAAAwL,iBAAA,KAAA,KAAA,CAAA,GAAA,OAAA,GAAAA,iBAAA;IACdT,QAAA,GAAAxL,KAAA,CAAAwL,QAAA,CAAA;AAGE,EAAA,IAAA7N,MAAA,CAAA;AAEA,EAAA,IAAAiB,KAAA,CAAM2K,OAAQ,CAAA+B,OAAO,CAAG,EAAA;IAC1B3N,MAAA,GAAS0N,YAAY;AAAEC,MAAAA,OAAA,EAAAA,OAAA;AAASnP,MAAAA,QAAAA;AAAQsE,MAAAA,WAAa,EAAbA,WAAa;AAAA8K,MAAAA,YAAA,EAAAA,YAAA;AAAcC,MAAAA,UAAAA,QAAAA;AAAS,KAAC,CAAA,CAAA;AAC/E,GAAO,MAAA;IACL7N,MAAA,GAASgO,aAAa;AAAEL,MAAAA,OAAA,EAAAA,OAAA;AAASnP,MAAAA,MAAQ,EAARA,MAAQ;AAAAsE,MAAAA,WAAA,EAAAA,WAAA;AAAa8K,MAAAA,cAAAA,YAAAA;AAAa,KAAC,CAAA,CAAA;AACtE,GAAA;AAEO,EAAA,OAAA5N,MAAA,CAAA;AACT,CAAA;AAGgB,SAAAuO,cAAAA,CAAeC,MAAc9D,UAAoB,EAAA;EAC/D,IAAI8D,QAAQ9D,UAAY,EAAA;AAChB,IAAA,IAAA+D,OAAA,GAAUD,IAAK,CAAAxD,KAAA,CAAM,GAAG,CAAA,CAAA;AACxB,IAAA,IAAA0D,aAAA,GAAgBhE,UAAW,CAAAM,KAAA,CAAM,GAAG,CAAA,CAAA;AAC1C,IAAA,OAAOyD,QAAQ1Q,KAAM,CAAA,CAAA,EAAG2Q,cAAc9S,MAAM,CAAA,CAAE+S,KAAK,GAAG,CAAA,CAAA;AACxD,GAAA;AACO,EAAA,OAAAH,IAAA,CAAA;AACT,CAAA;AAIO,SAASI,UAAWA,CAAAhP,KAAA,EAAYpB,MAAgB,EAAAkM,UAAA,EAAoBmE,WAAgC,EAAA;AAAA,EAAA,IAAAC,OAAA,CAAA;AAEzG,EAAA,IAAI9O,SAASiB,KAAM,CAAA2K,OAAA,CAAQhM,KAAK,CAAI,GAAAA,KAAA,GAAQ,CAACA,KAAK,CAAA,CAAA;AAElDiP,EAAAA,WAAA,GAAc5N,MAAM2K,OAAQ,CAAAiD,WAAW,IAAIA,WAAc,GAAA,CAACA,aAAaA,WAAW,CAAA,CAAA;EAClF7O,MAAA,GAASA,MAAO,CAAAlC,GAAA,CAAI,UAACsQ,CAAA,EAAGnS,CAAM,EAAA;IAExB,IAAAmS,CAAA,EAAU,OAAAjN,KAAA,CAAMiN,GAAG,OAAOA,CAAA,KAAM,WAAW5P,MAAS,GAAA,KAAA,CAAS,CAAE,CAAAA,MAAA,CAAOkM,UAAU,CAAA,CAAA;IAC7E,OAAA6D,cAAA,CAAeM,WAAY,CAAA5S,CAAA,CAAA,EAAIyO,UAAU,CAAA,CAAA;AAClD,GAAC,CAAA,CAAA;AACQ1K,EAAAA,MAAA,GAAAA,MAAA,CAAOpE,MAAS,GAAAoE,MAAA,GAAS6O,WAAY,CAAA/Q,GAAA,CAAI,UAAC5C,CAAM,EAAA;AAAA,IAAA,OAAAqT,cAAA,CAAerT,CAAG,EAAAwP,UAAU,CAAC,CAAA;GAAA,CAAA,CAAA;AAEtF,EAAA,OAAOzJ,KAAM,CAAA2K,OAAA,CAAQhM,KAAK,CAAA,GAAII,oBAASA,MAAS,MAAA8O,IAAAA,IAAAA,OAAA,uBAATA,OAAA,CAAS,CAAA,CAAA,CAAA;AAClD,CAAA;AAGO,SAASC,gBAAiBA,CAAAhK,KAAA,EAU9B;AAAA,EAAA,IAAAiK,UAAA,GAAAjK,KAAA,CATD0G,IAAO;AAAPA,IAAAA,IAAO,GAAAuD,UAAA,KAAA,KAAA,CAAA,GAAA,MAAA,GAAAA,UAAA;IACPxQ,MAAA,GAAAuG,KAAA,CAAAvG,MAAA;IACA+N,SAAA,GAAAxH,KAAA,CAAAwH,SAAA;IACA0C,gBAAA,GAAAlK,KAAA,CAAAkK,gBAAA,CAAA;EAOA,IAAIxD,SAAS,MAAQ,EAAA;IACZ,OAAA;MACLjN,QAAQA,MAAU,IAAA,MAAA;AAClB+N,MAAAA,SAAA,EAAWA,aAAa/N,MAAU,IAAA,MAAA;AAClCkM,MAAAA,UAAY,EAAA8B,WAAAA;KACd,CAAA;AACF,GAAA;EACA,IAAIf,SAAS,OAAS,EAAA;IACb,OAAA;MACLjN,QAAQA,MAAU,IAAA,SAAA;AAClB+N,MAAAA,SAAA,EAAWA,aAAa/N,MAAU,IAAA,SAAA;AAClCkM,MAAAA,UAAY,EAAA8B,WAAAA;KACd,CAAA;AACF,GAAA;EACA,IAAIf,SAAS,SAAW,EAAA;IACf,OAAA;MACLjN,QAAQA,MAAU,IAAA,WAAA;AAClB+N,MAAAA,SAAA,EAAWA,aAAa/N,MAAU,IAAA,WAAA;AAClCkM,MAAAA,UAAY,EAAA8B,WAAAA;KACd,CAAA;AACF,GAAA;EACA,IAAIf,SAAS,MAAQ,EAAA;IACZ,OAAA;MACLjN,QAAQA,MAAU,IAAA,SAAA;AAClB+N,MAAAA,SAAA,EAAWA,aAAa/N,MAAU,IAAA,SAAA;AAClCkM,MAAAA,UAAY,EAAA8B,WAAAA;KACd,CAAA;AACF,GAAA;EACA,IAAIf,SAAS,MAAQ,EAAA;IACZ,OAAA;MACLjN,MAAQ,EAAAA,MAAA,IAAA,YAAA,CAAAoD,MAAA,CAAuBqN,gBAAA,GAAmB,WAAc,GAAA,EAAA,CAAA;AAChE1C,MAAAA,SAAW,EAAAA,SAAA,IAAa/N,MAAU,IAAAoD,YAAAA,CAAAA,MAAA,CAAaqN,mBAAmB,WAAc,GAAA,EAAA,CAAA;AAChFvE,MAAAA,YAAYJ,iBAAkB,CAAA9L,MAAA,iBAAAoD,MAAA,CAAuBqN,gBAAmB,GAAA,WAAA,GAAc,GAAI,CAAK,IAAAzC,WAAAA;KACjG,CAAA;AACF,GAAA;EACIgB,GAAA,CAAAC,KAAA,CAAM,YAAc,mBAAA7L,MAAA,CAAiB6J,IAAM,CAAA,CAAA,CAAA;AAC/C,EAAA,OAAO,EAAC,CAAA;AACV,CAAA;AAGO,SAASyD,iBAAkBA,CAAAlK,KAAA,EAY/B;AAAA,EAAA,IAXDpF,KAAA,GAAAoF,KAAA,CAAApF,KAAA;IAAAuP,UAAA,GAAAnK,KAAA,CACAyG,IAAO;AAAPA,IAAAA,IAAO,GAAA0D,UAAA,KAAA,KAAA,CAAA,GAAA,MAAA,GAAAA,UAAA;IACP3Q,MAAA,GAAAwG,KAAA,CAAAxG,MAAA;IAAA4Q,gBAAA,GAAApK,KAAA,CACA0F,UAAa;AAAbA,IAAAA,UAAa,GAAA0E,gBAAA,KAAA,KAAA,CAAA,GAAA,UAAA,GAAAA,gBAAA;IACbH,gBAAA,GAAAjK,KAAA,CAAAiK,gBAAA,CAAA;AAQA,EAAA,IAAMI,oBAAuB,GAAA;AAC3B3R,IAAAA,IAAA,EAAM,CAACyD,KAAM,EAAA,CAAEzD,MAAQ,EAAAyD,KAAA,EAAQ,CAAAzD,IAAA,EAAM,CAAA;AACrCX,IAAAA,KAAA,EAAO,CAACoE,KAAM,EAAA,CAAEpE,OAAS,EAAAoE,KAAA,EAAQ,CAAApE,KAAA,EAAO,CAAA;AACxCyR,IAAAA,IAAA,EAAM,CAACrN,KAAA,EAAQ,CAAA3C,MAAA,CAAOkM,UAAU,CAAA,EAAGvJ,KAAM,EAAA,CAAE3C,MAAO,CAAAkM,UAAU,CAAC,CAAA;GAC/D,CAAA;EACA,IAAIe,SAAS,MAAQ,EAAA;AACnB4D,IAAAA,oBAAA,CAAqB3R,KAAK,CAAM,CAAA,IAAA,EAAA,CAAA;GACvB,MAAA,IAAA+N,IAAA,KAAS,OAAW,IAAAA,IAAA,KAAS,SAAW,EAAA;AACjD4D,IAAAA,oBAAA,CAAqB3R,KAAK,CAAM,CAAA,IAAA,CAAA,CAAA;AAClC,cAAY+N,IAAS,KAAA,MAAA,IAAUA,IAAS,KAAA,MAAA,KAAW,CAACwD,gBAAkB,EAAA;IAEhE,IAAAI,oBAAA,CAAqBtS,KAAM,CAAA,CAAA,CAAA,KAAO,EAAI,EAAA;AACxCsS,MAAAA,oBAAA,CAAqB3R,KAAK,CAAM,CAAA,IAAA,CAAA,CAAA;AAChC2R,MAAAA,oBAAA,CAAqBtS,MAAM,CAAK,CAAA,GAAA,CAAA,CAAA;AAClC,KAAO,MAAA;AACLsS,MAAAA,oBAAA,CAAqBtS,MAAM,CAAM,CAAA,IAAA,CAAA,CAAA;AACnC,KAAA;AACF,GAAA;AAEI,EAAA,IAAA,CAAC6C,SAAS,CAACqB,KAAA,CAAM2K,QAAQhM,KAAK,CAAA,IAAK,CAACA,KAAA,CAAMhE,MAAQ,EAAA;AAC7C,IAAA,OAAAyT,oBAAA,CAAA;AACT,GAAA;EAEO,OAAA;AACL3R,IAAAA,IAAA,EAAMkC,KAAM,CAAA9B,GAAA,CAAI,UAACsQ,CAAA,EAAA;MAAA,OAAMtC,aAAasC,CAAG,EAAA5P,MAAM,CAAE,CAAAd,IAAA,EAAM,CAAA;KAAA,CAAA;AACrDX,IAAAA,KAAA,EAAO6C,KAAM,CAAA9B,GAAA,CAAI,UAACsQ,CAAA,EAAA;MAAA,OAAMtC,aAAasC,CAAG,EAAA5P,MAAM,CAAE,CAAAzB,KAAA,EAAO,CAAA;KAAA,CAAA;AACvDyR,IAAAA,IAAA,EAAM5O,KAAM,CAAA9B,GAAA,CAAI,UAACsQ,CAAA,EAAA;MAAA,OAAMtC,YAAa,CAAAsC,CAAA,EAAG5P,MAAM,CAAA,CAAEA,MAAO,CAAAkM,UAAU,CAAC,CAAA;AAAA,KAAA,CAAA;GACnE,CAAA;AACF;;;;"}