nepali-date-kit 1.0.3 → 1.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/react.cjs +1 -1
- package/dist/react.cjs.map +1 -1
- package/dist/react.js +1 -1
- package/dist/react.js.map +1 -1
- package/package.json +1 -1
package/dist/react.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../packages/react/src/Calender.tsx","../packages/core/src/constants.ts","../packages/core/src/index.ts","../packages/core/src/helper.ts","../packages/react/src/Picker.tsx"],"names":["MONTHS","WEEK_DAYS","DEFAULT_EVENTS","getDaysInMonth","year","month","formatDate","day","BsCalendar","events","size","onEventClick","allowAd","todayObj","todayStr","setYear","useState","setMonth","selected","setSelected","daysInMonth","firstDay","eventMap","useMemo","map","ev","handlePrev","y","m","handleNext","handleToday","renderEvents","dateStr","dayEvents","e","jsx","i","max","cellHeight","jsxs","_","index","dayOffset","prevMonthDays","displayMonth","displayYear","isCurrentMonth","isToday","isSelected","isSaturday","BS_MONTH_DAYS","DAY_MS","BS_START_YEAR","AD_START","toAd","input","bs","normalizeDate","totalDays","BS_YEAR_TOTALS","daysInBsMonth","adTime","AD_REFERENCE_TIME","ad","formatValidDate","toBs","remaining","dim","startOfDay","d","nepaliDateFormat","today","isAfter","date1","date2","strict","d1","convertToValidDate","d2","getDatesBetween","startDate","endDate","start","end","dates","current","days_format","BS_MONTHS","monthDays","calendar","maxDays","BS_MONTH_KEYS","months","sum","yearData","date","parseDate","bsDate","usePopoverPosition","triggerRef","open","position","setPosition","useEffect","update","rect","spaceBelow","spaceAbove","CalendarPanel","value","onChange","minDate","maxDate","disabled","rangeStart","rangeEnd","tempDate","setTempDate","isRange","initialDate","bsYear","setBsYear","bsMonth","setBsMonth","setdaysInMonth","toggleMonth","type","checkDisable","inRange","checkDate","useOutsideClick","ref","handler","active","listener","event","target","re","DatePicker","allowClear","placeholder","setOpen","useRef","panelRef","createPortal","RangePicker"],"mappings":"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","file":"react.cjs","sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { useState, useMemo } from 'react';\n\nconst MONTHS = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];\n\nconst WEEK_DAYS = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];\n\nconst DEFAULT_EVENTS = [\n\t{ date: '2026-03-05', title: 'Meeting', color: 'bg-blue-500' },\n\t{ date: '2026-03-12', title: 'Launch', color: 'bg-green-500' },\n\t{ date: '2026-03-12', title: 'Review', color: 'bg-purple-500' },\n\t{ date: '2026-03-12', title: 'Design', color: 'bg-pink-500' },\n\t{ date: '2026-03-20', title: 'Holiday Ad', isAd: true },\n];\n\nfunction getDaysInMonth(year: number, month: number) {\n\treturn new Date(year, month + 1, 0).getDate();\n}\n\nfunction formatDate(year: number, month: number, day: number) {\n\treturn `${year}-${String(month + 1).padStart(2, '0')}-${String(day).padStart(2, '0')}`;\n}\n\nexport const BsCalendar = ({ events = DEFAULT_EVENTS, size = 'medium', onEventClick, allowAd = true }: any) => {\n\tconst todayObj = new Date();\n\tconst todayStr = formatDate(todayObj.getFullYear(), todayObj.getMonth(), todayObj.getDate());\n\n\tconst [year, setYear] = useState(todayObj.getFullYear());\n\tconst [month, setMonth] = useState(todayObj.getMonth());\n\tconst [selected, setSelected] = useState(todayStr);\n\n\tconst daysInMonth = getDaysInMonth(year, month);\n\tconst firstDay = new Date(year, month, 1).getDay();\n\n\tconst eventMap = useMemo(() => {\n\t\tconst map: Record<string, any[]> = {};\n\t\tevents.forEach((ev: any) => {\n\t\t\tif (!map[ev.date]) map[ev.date] = [];\n\t\t\tmap[ev.date].push(ev);\n\t\t});\n\t\treturn map;\n\t}, [events]);\n\n\tfunction handlePrev() {\n\t\tif (month === 0) {\n\t\t\tsetMonth(11);\n\t\t\tsetYear((y: number) => y - 1);\n\t\t} else {\n\t\t\tsetMonth((m: number) => m - 1);\n\t\t}\n\t}\n\n\tfunction handleNext() {\n\t\tif (month === 11) {\n\t\t\tsetMonth(0);\n\t\t\tsetYear((y: number) => y + 1);\n\t\t} else {\n\t\t\tsetMonth((m: number) => m + 1);\n\t\t}\n\t}\n\n\tfunction handleToday() {\n\t\tsetYear(todayObj.getFullYear());\n\t\tsetMonth(todayObj.getMonth());\n\t\tsetSelected(todayStr);\n\t}\n\n\tfunction renderEvents(dateStr: string) {\n\t\tlet dayEvents = eventMap[dateStr] || [];\n\t\tif (!allowAd) {\n\t\t\tdayEvents = dayEvents.filter((e: any) => !e.isAd);\n\t\t}\n\n\t\tif (size === 'small') {\n\t\t\tif (dayEvents.length === 0) return null;\n\n\t\t\treturn (\n\t\t\t\t<div className='mt-1 flex flex-wrap gap-1'>\n\t\t\t\t\t{dayEvents.map((ev: any, i: number) => (\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tkey={i}\n\t\t\t\t\t\t\tonClick={(e) => {\n\t\t\t\t\t\t\t\te.stopPropagation();\n\t\t\t\t\t\t\t\tonEventClick?.(ev);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tclassName={`w-2 h-2 rounded-full cursor-pointer ${ev.color || 'bg-gray-400'}`}\n\t\t\t\t\t\t/>\n\t\t\t\t\t))}\n\t\t\t\t</div>\n\t\t\t);\n\t\t}\n\n\t\tconst max = size === 'large' ? 3 : 1;\n\n\t\treturn (\n\t\t\t<div className='mt-1 space-y-1'>\n\t\t\t\t{dayEvents.slice(0, max).map((ev: any, i: number) => (\n\t\t\t\t\t<div\n\t\t\t\t\t\tkey={i}\n\t\t\t\t\t\tonClick={(e) => {\n\t\t\t\t\t\t\te.stopPropagation();\n\t\t\t\t\t\t\tonEventClick?.(ev);\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tclassName={`text-xs px-1 py-0.5 rounded cursor-pointer text-white truncate ${ev.color || 'bg-gray-400'}`}\n\t\t\t\t\t>\n\t\t\t\t\t\t{ev.title}\n\t\t\t\t\t</div>\n\t\t\t\t))}\n\t\t\t</div>\n\t\t);\n\t}\n\n\tconst cellHeight = size === 'small' ? 'h-20' : size === 'medium' ? 'h-28' : 'h-36';\n\n\treturn (\n\t\t<div className='w-full max-w-5xl mx-auto p-4 bg-white rounded-xl shadow'>\n\t\t\t<div className='flex items-center justify-between mb-4'>\n\t\t\t\t<div className='flex gap-2'>\n\t\t\t\t\t<button onClick={handlePrev} className='px-3 py-1 bg-gray-200 rounded'>\n\t\t\t\t\t\tPrev\n\t\t\t\t\t</button>\n\t\t\t\t\t<button onClick={handleNext} className='px-3 py-1 bg-gray-200 rounded'>\n\t\t\t\t\t\tNext\n\t\t\t\t\t</button>\n\t\t\t\t\t<button onClick={handleToday} className='px-3 py-1 bg-blue-500 text-white rounded'>\n\t\t\t\t\t\tToday\n\t\t\t\t\t</button>\n\t\t\t\t</div>\n\n\t\t\t\t<div className='flex gap-2'>\n\t\t\t\t\t<select value={month} onChange={(e) => setMonth(Number(e.target.value))} className='border px-2 py-1 rounded'>\n\t\t\t\t\t\t{MONTHS.map((m, i) => (\n\t\t\t\t\t\t\t<option key={i} value={i}>\n\t\t\t\t\t\t\t\t{m}\n\t\t\t\t\t\t\t</option>\n\t\t\t\t\t\t))}\n\t\t\t\t\t</select>\n\n\t\t\t\t\t<input type='number' value={year} onChange={(e) => setYear(Number(e.target.value))} className='border px-2 py-1 rounded w-24' />\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t<div className='grid grid-cols-7 text-center font-semibold border-b'>\n\t\t\t\t{WEEK_DAYS.map((day, i) => (\n\t\t\t\t\t<div key={i} className={`py-2 ${i === 6 ? 'text-red-500' : ''}`}>\n\t\t\t\t\t\t{day}\n\t\t\t\t\t</div>\n\t\t\t\t))}\n\t\t\t</div>\n\n\t\t\t<div className='grid grid-cols-7'>\n\t\t\t\t{Array.from({ length: 42 }).map((_, index) => {\n\t\t\t\t\tconst dayOffset = index - firstDay;\n\t\t\t\t\tconst prevMonthDays = getDaysInMonth(year, month === 0 ? 11 : month - 1);\n\n\t\t\t\t\tlet day;\n\t\t\t\t\tlet displayMonth = month;\n\t\t\t\t\tlet displayYear = year;\n\t\t\t\t\tlet isCurrentMonth = true;\n\n\t\t\t\t\tif (dayOffset < 0) {\n\t\t\t\t\t\tday = prevMonthDays + dayOffset + 1;\n\t\t\t\t\t\tdisplayMonth = month === 0 ? 11 : month - 1;\n\t\t\t\t\t\tdisplayYear = month === 0 ? year - 1 : year;\n\t\t\t\t\t\tisCurrentMonth = false;\n\t\t\t\t\t} else if (dayOffset >= daysInMonth) {\n\t\t\t\t\t\tday = dayOffset - daysInMonth + 1;\n\t\t\t\t\t\tdisplayMonth = month === 11 ? 0 : month + 1;\n\t\t\t\t\t\tdisplayYear = month === 11 ? year + 1 : year;\n\t\t\t\t\t\tisCurrentMonth = false;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tday = dayOffset + 1;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst dateStr = formatDate(displayYear, displayMonth, day);\n\t\t\t\t\tconst isToday = dateStr === todayStr;\n\t\t\t\t\tconst isSelected = dateStr === selected;\n\n\t\t\t\t\tconst weekDay = index % 7;\n\t\t\t\t\tconst isSaturday = weekDay === 6;\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tkey={index}\n\t\t\t\t\t\t\tonClick={() => setSelected(dateStr)}\n\t\t\t\t\t\t\tclassName={`relative border p-2 cursor-pointer ${cellHeight}\n\t\t\t\t\t\t\t${isSelected ? 'bg-blue-100' : ''}\n\t\t\t\t\t\t\t${isToday ? 'ring-2 ring-blue-500' : ''}\n\t\t\t\t\t\t\t${isSaturday ? 'bg-red-50' : ''}\n\t\t\t\t\t\t\t${!isCurrentMonth ? 'text-gray-400 bg-gray-50' : ''}`}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<div className={`text-sm font-medium ${isSaturday ? 'text-red-600' : ''}`}>{day}</div>\n\n\t\t\t\t\t\t\t{isCurrentMonth && renderEvents(dateStr)}\n\n\t\t\t\t\t\t\t{allowAd && isCurrentMonth && eventMap[dateStr]?.some((e: any) => e.isAd) && <span className='absolute bottom-1 right-1 text-[10px] text-gray-400'>Ad</span>}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n\nexport default BsCalendar;\n","export const BS_MONTH_DAYS: IBS_MONTH_DAYS = {\n\t'2000': {\n\t\tBaisakh: 30,\n\t\tJestha: 32,\n\t\tAsar: 31,\n\t\tShrawan: 32,\n\t\tBhadra: 31,\n\t\tAswin: 30,\n\t\tKartik: 30,\n\t\tMangsir: 30,\n\t\tPoush: 29,\n\t\tMagh: 30,\n\t\tFalgun: 29,\n\t\tChaitra: 31,\n\t},\n\t'2001': {\n\t\tBaisakh: 31,\n\t\tJestha: 31,\n\t\tAsar: 32,\n\t\tShrawan: 31,\n\t\tBhadra: 31,\n\t\tAswin: 31,\n\t\tKartik: 30,\n\t\tMangsir: 29,\n\t\tPoush: 30,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 30,\n\t},\n\t'2002': {\n\t\tBaisakh: 31,\n\t\tJestha: 31,\n\t\tAsar: 32,\n\t\tShrawan: 32,\n\t\tBhadra: 31,\n\t\tAswin: 30,\n\t\tKartik: 30,\n\t\tMangsir: 29,\n\t\tPoush: 30,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 30,\n\t},\n\t'2003': {\n\t\tBaisakh: 31,\n\t\tJestha: 32,\n\t\tAsar: 31,\n\t\tShrawan: 32,\n\t\tBhadra: 31,\n\t\tAswin: 30,\n\t\tKartik: 30,\n\t\tMangsir: 30,\n\t\tPoush: 29,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 31,\n\t},\n\t'2004': {\n\t\tBaisakh: 30,\n\t\tJestha: 32,\n\t\tAsar: 31,\n\t\tShrawan: 32,\n\t\tBhadra: 31,\n\t\tAswin: 30,\n\t\tKartik: 30,\n\t\tMangsir: 30,\n\t\tPoush: 29,\n\t\tMagh: 30,\n\t\tFalgun: 29,\n\t\tChaitra: 31,\n\t},\n\t'2005': {\n\t\tBaisakh: 31,\n\t\tJestha: 31,\n\t\tAsar: 32,\n\t\tShrawan: 31,\n\t\tBhadra: 31,\n\t\tAswin: 31,\n\t\tKartik: 30,\n\t\tMangsir: 29,\n\t\tPoush: 30,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 30,\n\t},\n\t'2006': {\n\t\tBaisakh: 31,\n\t\tJestha: 31,\n\t\tAsar: 32,\n\t\tShrawan: 32,\n\t\tBhadra: 31,\n\t\tAswin: 30,\n\t\tKartik: 30,\n\t\tMangsir: 29,\n\t\tPoush: 30,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 30,\n\t},\n\t'2007': {\n\t\tBaisakh: 31,\n\t\tJestha: 32,\n\t\tAsar: 31,\n\t\tShrawan: 32,\n\t\tBhadra: 31,\n\t\tAswin: 30,\n\t\tKartik: 30,\n\t\tMangsir: 30,\n\t\tPoush: 29,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 31,\n\t},\n\t'2008': {\n\t\tBaisakh: 31,\n\t\tJestha: 31,\n\t\tAsar: 31,\n\t\tShrawan: 32,\n\t\tBhadra: 31,\n\t\tAswin: 31,\n\t\tKartik: 29,\n\t\tMangsir: 30,\n\t\tPoush: 30,\n\t\tMagh: 29,\n\t\tFalgun: 29,\n\t\tChaitra: 31,\n\t},\n\t'2009': {\n\t\tBaisakh: 31,\n\t\tJestha: 31,\n\t\tAsar: 32,\n\t\tShrawan: 31,\n\t\tBhadra: 31,\n\t\tAswin: 31,\n\t\tKartik: 30,\n\t\tMangsir: 29,\n\t\tPoush: 30,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 30,\n\t},\n\t'2010': {\n\t\tBaisakh: 31,\n\t\tJestha: 31,\n\t\tAsar: 32,\n\t\tShrawan: 32,\n\t\tBhadra: 31,\n\t\tAswin: 30,\n\t\tKartik: 30,\n\t\tMangsir: 29,\n\t\tPoush: 30,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 30,\n\t},\n\t'2011': {\n\t\tBaisakh: 31,\n\t\tJestha: 32,\n\t\tAsar: 31,\n\t\tShrawan: 32,\n\t\tBhadra: 31,\n\t\tAswin: 30,\n\t\tKartik: 30,\n\t\tMangsir: 30,\n\t\tPoush: 29,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 31,\n\t},\n\t'2012': {\n\t\tBaisakh: 31,\n\t\tJestha: 31,\n\t\tAsar: 31,\n\t\tShrawan: 32,\n\t\tBhadra: 31,\n\t\tAswin: 31,\n\t\tKartik: 29,\n\t\tMangsir: 30,\n\t\tPoush: 30,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 30,\n\t},\n\t'2013': {\n\t\tBaisakh: 31,\n\t\tJestha: 31,\n\t\tAsar: 32,\n\t\tShrawan: 31,\n\t\tBhadra: 31,\n\t\tAswin: 31,\n\t\tKartik: 30,\n\t\tMangsir: 29,\n\t\tPoush: 30,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 30,\n\t},\n\t'2014': {\n\t\tBaisakh: 31,\n\t\tJestha: 31,\n\t\tAsar: 32,\n\t\tShrawan: 32,\n\t\tBhadra: 31,\n\t\tAswin: 30,\n\t\tKartik: 30,\n\t\tMangsir: 29,\n\t\tPoush: 30,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 30,\n\t},\n\t'2015': {\n\t\tBaisakh: 31,\n\t\tJestha: 32,\n\t\tAsar: 31,\n\t\tShrawan: 32,\n\t\tBhadra: 31,\n\t\tAswin: 30,\n\t\tKartik: 30,\n\t\tMangsir: 30,\n\t\tPoush: 29,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 31,\n\t},\n\t'2016': {\n\t\tBaisakh: 31,\n\t\tJestha: 31,\n\t\tAsar: 31,\n\t\tShrawan: 32,\n\t\tBhadra: 31,\n\t\tAswin: 31,\n\t\tKartik: 29,\n\t\tMangsir: 30,\n\t\tPoush: 30,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 30,\n\t},\n\t'2017': {\n\t\tBaisakh: 31,\n\t\tJestha: 31,\n\t\tAsar: 32,\n\t\tShrawan: 31,\n\t\tBhadra: 31,\n\t\tAswin: 31,\n\t\tKartik: 30,\n\t\tMangsir: 29,\n\t\tPoush: 30,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 30,\n\t},\n\t'2018': {\n\t\tBaisakh: 31,\n\t\tJestha: 32,\n\t\tAsar: 31,\n\t\tShrawan: 32,\n\t\tBhadra: 31,\n\t\tAswin: 30,\n\t\tKartik: 30,\n\t\tMangsir: 29,\n\t\tPoush: 30,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 30,\n\t},\n\t'2019': {\n\t\tBaisakh: 31,\n\t\tJestha: 32,\n\t\tAsar: 31,\n\t\tShrawan: 32,\n\t\tBhadra: 31,\n\t\tAswin: 30,\n\t\tKartik: 30,\n\t\tMangsir: 30,\n\t\tPoush: 29,\n\t\tMagh: 30,\n\t\tFalgun: 29,\n\t\tChaitra: 31,\n\t},\n\t'2020': {\n\t\tBaisakh: 31,\n\t\tJestha: 31,\n\t\tAsar: 31,\n\t\tShrawan: 32,\n\t\tBhadra: 31,\n\t\tAswin: 31,\n\t\tKartik: 30,\n\t\tMangsir: 29,\n\t\tPoush: 30,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 30,\n\t},\n\t'2021': {\n\t\tBaisakh: 31,\n\t\tJestha: 31,\n\t\tAsar: 32,\n\t\tShrawan: 31,\n\t\tBhadra: 31,\n\t\tAswin: 31,\n\t\tKartik: 30,\n\t\tMangsir: 29,\n\t\tPoush: 30,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 30,\n\t},\n\t'2022': {\n\t\tBaisakh: 31,\n\t\tJestha: 32,\n\t\tAsar: 31,\n\t\tShrawan: 32,\n\t\tBhadra: 31,\n\t\tAswin: 30,\n\t\tKartik: 30,\n\t\tMangsir: 30,\n\t\tPoush: 29,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 30,\n\t},\n\t'2023': {\n\t\tBaisakh: 31,\n\t\tJestha: 32,\n\t\tAsar: 31,\n\t\tShrawan: 32,\n\t\tBhadra: 31,\n\t\tAswin: 30,\n\t\tKartik: 30,\n\t\tMangsir: 30,\n\t\tPoush: 29,\n\t\tMagh: 30,\n\t\tFalgun: 29,\n\t\tChaitra: 31,\n\t},\n\t'2024': {\n\t\tBaisakh: 31,\n\t\tJestha: 31,\n\t\tAsar: 31,\n\t\tShrawan: 32,\n\t\tBhadra: 31,\n\t\tAswin: 31,\n\t\tKartik: 30,\n\t\tMangsir: 29,\n\t\tPoush: 30,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 30,\n\t},\n\t'2025': {\n\t\tBaisakh: 31,\n\t\tJestha: 31,\n\t\tAsar: 32,\n\t\tShrawan: 31,\n\t\tBhadra: 31,\n\t\tAswin: 31,\n\t\tKartik: 30,\n\t\tMangsir: 29,\n\t\tPoush: 30,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 30,\n\t},\n\t'2026': {\n\t\tBaisakh: 31,\n\t\tJestha: 32,\n\t\tAsar: 31,\n\t\tShrawan: 32,\n\t\tBhadra: 31,\n\t\tAswin: 30,\n\t\tKartik: 30,\n\t\tMangsir: 30,\n\t\tPoush: 29,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 31,\n\t},\n\t'2027': {\n\t\tBaisakh: 30,\n\t\tJestha: 32,\n\t\tAsar: 31,\n\t\tShrawan: 32,\n\t\tBhadra: 31,\n\t\tAswin: 30,\n\t\tKartik: 30,\n\t\tMangsir: 30,\n\t\tPoush: 29,\n\t\tMagh: 30,\n\t\tFalgun: 29,\n\t\tChaitra: 31,\n\t},\n\t'2028': {\n\t\tBaisakh: 31,\n\t\tJestha: 31,\n\t\tAsar: 32,\n\t\tShrawan: 31,\n\t\tBhadra: 31,\n\t\tAswin: 31,\n\t\tKartik: 30,\n\t\tMangsir: 29,\n\t\tPoush: 30,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 30,\n\t},\n\t'2029': {\n\t\tBaisakh: 31,\n\t\tJestha: 31,\n\t\tAsar: 32,\n\t\tShrawan: 31,\n\t\tBhadra: 32,\n\t\tAswin: 30,\n\t\tKartik: 30,\n\t\tMangsir: 29,\n\t\tPoush: 30,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 30,\n\t},\n\t'2030': {\n\t\tBaisakh: 31,\n\t\tJestha: 32,\n\t\tAsar: 31,\n\t\tShrawan: 32,\n\t\tBhadra: 31,\n\t\tAswin: 30,\n\t\tKartik: 30,\n\t\tMangsir: 30,\n\t\tPoush: 29,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 31,\n\t},\n\t'2031': {\n\t\tBaisakh: 30,\n\t\tJestha: 32,\n\t\tAsar: 31,\n\t\tShrawan: 32,\n\t\tBhadra: 31,\n\t\tAswin: 30,\n\t\tKartik: 30,\n\t\tMangsir: 30,\n\t\tPoush: 29,\n\t\tMagh: 30,\n\t\tFalgun: 29,\n\t\tChaitra: 31,\n\t},\n\t'2032': {\n\t\tBaisakh: 31,\n\t\tJestha: 31,\n\t\tAsar: 32,\n\t\tShrawan: 31,\n\t\tBhadra: 31,\n\t\tAswin: 31,\n\t\tKartik: 30,\n\t\tMangsir: 29,\n\t\tPoush: 30,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 30,\n\t},\n\t'2033': {\n\t\tBaisakh: 31,\n\t\tJestha: 31,\n\t\tAsar: 32,\n\t\tShrawan: 32,\n\t\tBhadra: 31,\n\t\tAswin: 30,\n\t\tKartik: 30,\n\t\tMangsir: 29,\n\t\tPoush: 30,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 30,\n\t},\n\t'2034': {\n\t\tBaisakh: 31,\n\t\tJestha: 32,\n\t\tAsar: 31,\n\t\tShrawan: 32,\n\t\tBhadra: 31,\n\t\tAswin: 30,\n\t\tKartik: 30,\n\t\tMangsir: 30,\n\t\tPoush: 29,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 31,\n\t},\n\t'2035': {\n\t\tBaisakh: 30,\n\t\tJestha: 32,\n\t\tAsar: 31,\n\t\tShrawan: 32,\n\t\tBhadra: 31,\n\t\tAswin: 31,\n\t\tKartik: 29,\n\t\tMangsir: 30,\n\t\tPoush: 30,\n\t\tMagh: 29,\n\t\tFalgun: 29,\n\t\tChaitra: 31,\n\t},\n\t'2036': {\n\t\tBaisakh: 31,\n\t\tJestha: 31,\n\t\tAsar: 32,\n\t\tShrawan: 31,\n\t\tBhadra: 31,\n\t\tAswin: 31,\n\t\tKartik: 30,\n\t\tMangsir: 29,\n\t\tPoush: 30,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 30,\n\t},\n\t'2037': {\n\t\tBaisakh: 31,\n\t\tJestha: 31,\n\t\tAsar: 32,\n\t\tShrawan: 32,\n\t\tBhadra: 31,\n\t\tAswin: 30,\n\t\tKartik: 30,\n\t\tMangsir: 29,\n\t\tPoush: 30,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 30,\n\t},\n\t'2038': {\n\t\tBaisakh: 31,\n\t\tJestha: 32,\n\t\tAsar: 31,\n\t\tShrawan: 32,\n\t\tBhadra: 31,\n\t\tAswin: 30,\n\t\tKartik: 30,\n\t\tMangsir: 30,\n\t\tPoush: 29,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 31,\n\t},\n\t'2039': {\n\t\tBaisakh: 31,\n\t\tJestha: 31,\n\t\tAsar: 31,\n\t\tShrawan: 32,\n\t\tBhadra: 31,\n\t\tAswin: 31,\n\t\tKartik: 29,\n\t\tMangsir: 30,\n\t\tPoush: 30,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 30,\n\t},\n\t'2040': {\n\t\tBaisakh: 31,\n\t\tJestha: 31,\n\t\tAsar: 32,\n\t\tShrawan: 31,\n\t\tBhadra: 31,\n\t\tAswin: 31,\n\t\tKartik: 30,\n\t\tMangsir: 29,\n\t\tPoush: 30,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 30,\n\t},\n\t'2041': {\n\t\tBaisakh: 31,\n\t\tJestha: 31,\n\t\tAsar: 32,\n\t\tShrawan: 32,\n\t\tBhadra: 31,\n\t\tAswin: 30,\n\t\tKartik: 30,\n\t\tMangsir: 29,\n\t\tPoush: 30,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 30,\n\t},\n\t'2042': {\n\t\tBaisakh: 31,\n\t\tJestha: 32,\n\t\tAsar: 31,\n\t\tShrawan: 32,\n\t\tBhadra: 31,\n\t\tAswin: 30,\n\t\tKartik: 30,\n\t\tMangsir: 30,\n\t\tPoush: 29,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 31,\n\t},\n\t'2043': {\n\t\tBaisakh: 31,\n\t\tJestha: 31,\n\t\tAsar: 31,\n\t\tShrawan: 32,\n\t\tBhadra: 31,\n\t\tAswin: 31,\n\t\tKartik: 29,\n\t\tMangsir: 30,\n\t\tPoush: 30,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 30,\n\t},\n\t'2044': {\n\t\tBaisakh: 31,\n\t\tJestha: 31,\n\t\tAsar: 32,\n\t\tShrawan: 31,\n\t\tBhadra: 31,\n\t\tAswin: 31,\n\t\tKartik: 30,\n\t\tMangsir: 29,\n\t\tPoush: 30,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 30,\n\t},\n\t'2045': {\n\t\tBaisakh: 31,\n\t\tJestha: 32,\n\t\tAsar: 31,\n\t\tShrawan: 32,\n\t\tBhadra: 31,\n\t\tAswin: 30,\n\t\tKartik: 30,\n\t\tMangsir: 29,\n\t\tPoush: 30,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 30,\n\t},\n\t'2046': {\n\t\tBaisakh: 31,\n\t\tJestha: 32,\n\t\tAsar: 31,\n\t\tShrawan: 32,\n\t\tBhadra: 31,\n\t\tAswin: 30,\n\t\tKartik: 30,\n\t\tMangsir: 30,\n\t\tPoush: 29,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 31,\n\t},\n\t'2047': {\n\t\tBaisakh: 31,\n\t\tJestha: 31,\n\t\tAsar: 31,\n\t\tShrawan: 32,\n\t\tBhadra: 31,\n\t\tAswin: 31,\n\t\tKartik: 30,\n\t\tMangsir: 29,\n\t\tPoush: 30,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 30,\n\t},\n\t'2048': {\n\t\tBaisakh: 31,\n\t\tJestha: 31,\n\t\tAsar: 32,\n\t\tShrawan: 31,\n\t\tBhadra: 31,\n\t\tAswin: 31,\n\t\tKartik: 30,\n\t\tMangsir: 29,\n\t\tPoush: 30,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 30,\n\t},\n\t'2049': {\n\t\tBaisakh: 31,\n\t\tJestha: 32,\n\t\tAsar: 31,\n\t\tShrawan: 32,\n\t\tBhadra: 31,\n\t\tAswin: 30,\n\t\tKartik: 30,\n\t\tMangsir: 30,\n\t\tPoush: 29,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 30,\n\t},\n\t'2050': {\n\t\tBaisakh: 31,\n\t\tJestha: 32,\n\t\tAsar: 31,\n\t\tShrawan: 32,\n\t\tBhadra: 31,\n\t\tAswin: 30,\n\t\tKartik: 30,\n\t\tMangsir: 30,\n\t\tPoush: 29,\n\t\tMagh: 30,\n\t\tFalgun: 29,\n\t\tChaitra: 31,\n\t},\n\t'2051': {\n\t\tBaisakh: 31,\n\t\tJestha: 31,\n\t\tAsar: 31,\n\t\tShrawan: 32,\n\t\tBhadra: 31,\n\t\tAswin: 31,\n\t\tKartik: 30,\n\t\tMangsir: 29,\n\t\tPoush: 30,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 30,\n\t},\n\t'2052': {\n\t\tBaisakh: 31,\n\t\tJestha: 31,\n\t\tAsar: 32,\n\t\tShrawan: 31,\n\t\tBhadra: 31,\n\t\tAswin: 31,\n\t\tKartik: 30,\n\t\tMangsir: 29,\n\t\tPoush: 30,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 30,\n\t},\n\t'2053': {\n\t\tBaisakh: 31,\n\t\tJestha: 32,\n\t\tAsar: 31,\n\t\tShrawan: 32,\n\t\tBhadra: 31,\n\t\tAswin: 30,\n\t\tKartik: 30,\n\t\tMangsir: 30,\n\t\tPoush: 29,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 30,\n\t},\n\t'2054': {\n\t\tBaisakh: 31,\n\t\tJestha: 32,\n\t\tAsar: 31,\n\t\tShrawan: 32,\n\t\tBhadra: 31,\n\t\tAswin: 30,\n\t\tKartik: 30,\n\t\tMangsir: 30,\n\t\tPoush: 29,\n\t\tMagh: 30,\n\t\tFalgun: 29,\n\t\tChaitra: 31,\n\t},\n\t'2055': {\n\t\tBaisakh: 31,\n\t\tJestha: 31,\n\t\tAsar: 32,\n\t\tShrawan: 31,\n\t\tBhadra: 31,\n\t\tAswin: 31,\n\t\tKartik: 30,\n\t\tMangsir: 29,\n\t\tPoush: 30,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 30,\n\t},\n\t'2056': {\n\t\tBaisakh: 31,\n\t\tJestha: 31,\n\t\tAsar: 32,\n\t\tShrawan: 31,\n\t\tBhadra: 32,\n\t\tAswin: 30,\n\t\tKartik: 30,\n\t\tMangsir: 29,\n\t\tPoush: 30,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 30,\n\t},\n\t'2057': {\n\t\tBaisakh: 31,\n\t\tJestha: 32,\n\t\tAsar: 31,\n\t\tShrawan: 32,\n\t\tBhadra: 31,\n\t\tAswin: 30,\n\t\tKartik: 30,\n\t\tMangsir: 30,\n\t\tPoush: 29,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 31,\n\t},\n\t'2058': {\n\t\tBaisakh: 30,\n\t\tJestha: 32,\n\t\tAsar: 31,\n\t\tShrawan: 32,\n\t\tBhadra: 31,\n\t\tAswin: 30,\n\t\tKartik: 30,\n\t\tMangsir: 30,\n\t\tPoush: 29,\n\t\tMagh: 30,\n\t\tFalgun: 29,\n\t\tChaitra: 31,\n\t},\n\t'2059': {\n\t\tBaisakh: 31,\n\t\tJestha: 31,\n\t\tAsar: 32,\n\t\tShrawan: 31,\n\t\tBhadra: 31,\n\t\tAswin: 31,\n\t\tKartik: 30,\n\t\tMangsir: 29,\n\t\tPoush: 30,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 30,\n\t},\n\t'2060': {\n\t\tBaisakh: 31,\n\t\tJestha: 31,\n\t\tAsar: 32,\n\t\tShrawan: 32,\n\t\tBhadra: 31,\n\t\tAswin: 30,\n\t\tKartik: 30,\n\t\tMangsir: 29,\n\t\tPoush: 30,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 30,\n\t},\n\t'2061': {\n\t\tBaisakh: 31,\n\t\tJestha: 32,\n\t\tAsar: 31,\n\t\tShrawan: 32,\n\t\tBhadra: 31,\n\t\tAswin: 30,\n\t\tKartik: 30,\n\t\tMangsir: 30,\n\t\tPoush: 29,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 31,\n\t},\n\t'2062': {\n\t\tBaisakh: 30,\n\t\tJestha: 32,\n\t\tAsar: 31,\n\t\tShrawan: 32,\n\t\tBhadra: 31,\n\t\tAswin: 31,\n\t\tKartik: 29,\n\t\tMangsir: 30,\n\t\tPoush: 29,\n\t\tMagh: 30,\n\t\tFalgun: 29,\n\t\tChaitra: 31,\n\t},\n\t'2063': {\n\t\tBaisakh: 31,\n\t\tJestha: 31,\n\t\tAsar: 32,\n\t\tShrawan: 31,\n\t\tBhadra: 31,\n\t\tAswin: 31,\n\t\tKartik: 30,\n\t\tMangsir: 29,\n\t\tPoush: 30,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 30,\n\t},\n\t'2064': {\n\t\tBaisakh: 31,\n\t\tJestha: 31,\n\t\tAsar: 32,\n\t\tShrawan: 32,\n\t\tBhadra: 31,\n\t\tAswin: 30,\n\t\tKartik: 30,\n\t\tMangsir: 29,\n\t\tPoush: 30,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 30,\n\t},\n\t'2065': {\n\t\tBaisakh: 31,\n\t\tJestha: 32,\n\t\tAsar: 31,\n\t\tShrawan: 32,\n\t\tBhadra: 31,\n\t\tAswin: 30,\n\t\tKartik: 30,\n\t\tMangsir: 30,\n\t\tPoush: 29,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 31,\n\t},\n\t'2066': {\n\t\tBaisakh: 31,\n\t\tJestha: 31,\n\t\tAsar: 31,\n\t\tShrawan: 32,\n\t\tBhadra: 31,\n\t\tAswin: 31,\n\t\tKartik: 29,\n\t\tMangsir: 30,\n\t\tPoush: 30,\n\t\tMagh: 29,\n\t\tFalgun: 29,\n\t\tChaitra: 31,\n\t},\n\t'2067': {\n\t\tBaisakh: 31,\n\t\tJestha: 31,\n\t\tAsar: 32,\n\t\tShrawan: 31,\n\t\tBhadra: 31,\n\t\tAswin: 31,\n\t\tKartik: 30,\n\t\tMangsir: 29,\n\t\tPoush: 30,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 30,\n\t},\n\t'2068': {\n\t\tBaisakh: 31,\n\t\tJestha: 31,\n\t\tAsar: 32,\n\t\tShrawan: 32,\n\t\tBhadra: 31,\n\t\tAswin: 30,\n\t\tKartik: 30,\n\t\tMangsir: 29,\n\t\tPoush: 30,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 30,\n\t},\n\t'2069': {\n\t\tBaisakh: 31,\n\t\tJestha: 32,\n\t\tAsar: 31,\n\t\tShrawan: 32,\n\t\tBhadra: 31,\n\t\tAswin: 30,\n\t\tKartik: 30,\n\t\tMangsir: 30,\n\t\tPoush: 29,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 31,\n\t},\n\t'2070': {\n\t\tBaisakh: 31,\n\t\tJestha: 31,\n\t\tAsar: 31,\n\t\tShrawan: 32,\n\t\tBhadra: 31,\n\t\tAswin: 31,\n\t\tKartik: 29,\n\t\tMangsir: 30,\n\t\tPoush: 30,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 30,\n\t},\n\t'2071': {\n\t\tBaisakh: 31,\n\t\tJestha: 31,\n\t\tAsar: 32,\n\t\tShrawan: 31,\n\t\tBhadra: 31,\n\t\tAswin: 31,\n\t\tKartik: 30,\n\t\tMangsir: 29,\n\t\tPoush: 30,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 30,\n\t},\n\t'2072': {\n\t\tBaisakh: 31,\n\t\tJestha: 32,\n\t\tAsar: 31,\n\t\tShrawan: 32,\n\t\tBhadra: 31,\n\t\tAswin: 30,\n\t\tKartik: 30,\n\t\tMangsir: 29,\n\t\tPoush: 30,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 30,\n\t},\n\t'2073': {\n\t\tBaisakh: 31,\n\t\tJestha: 32,\n\t\tAsar: 31,\n\t\tShrawan: 32,\n\t\tBhadra: 31,\n\t\tAswin: 30,\n\t\tKartik: 30,\n\t\tMangsir: 30,\n\t\tPoush: 29,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 31,\n\t},\n\t'2074': {\n\t\tBaisakh: 31,\n\t\tJestha: 31,\n\t\tAsar: 31,\n\t\tShrawan: 32,\n\t\tBhadra: 31,\n\t\tAswin: 31,\n\t\tKartik: 30,\n\t\tMangsir: 29,\n\t\tPoush: 30,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 30,\n\t},\n\t'2075': {\n\t\tBaisakh: 31,\n\t\tJestha: 31,\n\t\tAsar: 32,\n\t\tShrawan: 31,\n\t\tBhadra: 31,\n\t\tAswin: 31,\n\t\tKartik: 30,\n\t\tMangsir: 29,\n\t\tPoush: 30,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 30,\n\t},\n\t'2076': {\n\t\tBaisakh: 31,\n\t\tJestha: 32,\n\t\tAsar: 31,\n\t\tShrawan: 32,\n\t\tBhadra: 31,\n\t\tAswin: 30,\n\t\tKartik: 30,\n\t\tMangsir: 30,\n\t\tPoush: 29,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 30,\n\t},\n\t'2077': {\n\t\tBaisakh: 31,\n\t\tJestha: 32,\n\t\tAsar: 31,\n\t\tShrawan: 32,\n\t\tBhadra: 31,\n\t\tAswin: 30,\n\t\tKartik: 30,\n\t\tMangsir: 30,\n\t\tPoush: 29,\n\t\tMagh: 30,\n\t\tFalgun: 29,\n\t\tChaitra: 31,\n\t},\n\t'2078': {\n\t\tBaisakh: 31,\n\t\tJestha: 31,\n\t\tAsar: 31,\n\t\tShrawan: 32,\n\t\tBhadra: 31,\n\t\tAswin: 31,\n\t\tKartik: 30,\n\t\tMangsir: 29,\n\t\tPoush: 30,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 30,\n\t},\n\t'2079': {\n\t\tBaisakh: 31,\n\t\tJestha: 31,\n\t\tAsar: 32,\n\t\tShrawan: 31,\n\t\tBhadra: 31,\n\t\tAswin: 31,\n\t\tKartik: 30,\n\t\tMangsir: 29,\n\t\tPoush: 30,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 30,\n\t},\n\t'2080': {\n\t\tBaisakh: 31,\n\t\tJestha: 32,\n\t\tAsar: 31,\n\t\tShrawan: 32,\n\t\tBhadra: 31,\n\t\tAswin: 30,\n\t\tKartik: 30,\n\t\tMangsir: 30,\n\t\tPoush: 29,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 30,\n\t},\n\t'2081': {\n\t\tBaisakh: 31,\n\t\tJestha: 32,\n\t\tAsar: 31,\n\t\tShrawan: 32,\n\t\tBhadra: 31,\n\t\tAswin: 30,\n\t\tKartik: 30,\n\t\tMangsir: 30,\n\t\tPoush: 29,\n\t\tMagh: 30,\n\t\tFalgun: 29,\n\t\tChaitra: 31,\n\t},\n\t'2082': {\n\t\tBaisakh: 31,\n\t\tJestha: 31,\n\t\tAsar: 32,\n\t\tShrawan: 31,\n\t\tBhadra: 31,\n\t\tAswin: 31,\n\t\tKartik: 30,\n\t\tMangsir: 29,\n\t\tPoush: 30,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 30,\n\t},\n\t'2083': {\n\t\tBaisakh: 31,\n\t\tJestha: 31,\n\t\tAsar: 32,\n\t\tShrawan: 31,\n\t\tBhadra: 31,\n\t\tAswin: 31,\n\t\tKartik: 30,\n\t\tMangsir: 29,\n\t\tPoush: 30,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 30,\n\t},\n\t'2084': {\n\t\tBaisakh: 31,\n\t\tJestha: 32,\n\t\tAsar: 31,\n\t\tShrawan: 32,\n\t\tBhadra: 31,\n\t\tAswin: 30,\n\t\tKartik: 30,\n\t\tMangsir: 30,\n\t\tPoush: 29,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 31,\n\t},\n\t'2085': {\n\t\tBaisakh: 30,\n\t\tJestha: 32,\n\t\tAsar: 31,\n\t\tShrawan: 32,\n\t\tBhadra: 31,\n\t\tAswin: 30,\n\t\tKartik: 30,\n\t\tMangsir: 30,\n\t\tPoush: 29,\n\t\tMagh: 30,\n\t\tFalgun: 29,\n\t\tChaitra: 31,\n\t},\n\t'2086': {\n\t\tBaisakh: 31,\n\t\tJestha: 31,\n\t\tAsar: 32,\n\t\tShrawan: 31,\n\t\tBhadra: 31,\n\t\tAswin: 31,\n\t\tKartik: 30,\n\t\tMangsir: 29,\n\t\tPoush: 30,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 30,\n\t},\n\t'2087': {\n\t\tBaisakh: 31,\n\t\tJestha: 31,\n\t\tAsar: 32,\n\t\tShrawan: 31,\n\t\tBhadra: 31,\n\t\tAswin: 31,\n\t\tKartik: 30,\n\t\tMangsir: 30,\n\t\tPoush: 29,\n\t\tMagh: 30,\n\t\tFalgun: 30,\n\t\tChaitra: 30,\n\t},\n\t'2088': {\n\t\tBaisakh: 30,\n\t\tJestha: 31,\n\t\tAsar: 32,\n\t\tShrawan: 32,\n\t\tBhadra: 30,\n\t\tAswin: 31,\n\t\tKartik: 30,\n\t\tMangsir: 30,\n\t\tPoush: 29,\n\t\tMagh: 30,\n\t\tFalgun: 30,\n\t\tChaitra: 30,\n\t},\n\t'2089': {\n\t\tBaisakh: 30,\n\t\tJestha: 32,\n\t\tAsar: 31,\n\t\tShrawan: 32,\n\t\tBhadra: 31,\n\t\tAswin: 30,\n\t\tKartik: 30,\n\t\tMangsir: 30,\n\t\tPoush: 29,\n\t\tMagh: 30,\n\t\tFalgun: 30,\n\t\tChaitra: 30,\n\t},\n\t'2090': {\n\t\tBaisakh: 30,\n\t\tJestha: 32,\n\t\tAsar: 31,\n\t\tShrawan: 32,\n\t\tBhadra: 31,\n\t\tAswin: 30,\n\t\tKartik: 30,\n\t\tMangsir: 30,\n\t\tPoush: 29,\n\t\tMagh: 30,\n\t\tFalgun: 30,\n\t\tChaitra: 30,\n\t},\n};\n\nexport const DAY_MS = 86400000;\nexport const BS_START_YEAR = 2000;\nexport const AD_START = { year: 1943, month: 3, date: 13, day: 3 };\nexport const BS_START = { year: BS_START_YEAR, month: 1, date: 1, day: 3 };\nexport const BS_END_YEAR = Object.keys(BS_MONTH_DAYS).at(-1);\n","import { BS_MONTH_DAYS, BS_START_YEAR, DAY_MS } from './constants';\nimport { AD_REFERENCE_TIME, BS_YEAR_TOTALS, convertDigitsToNepali, convertToValidDate, days_format, daysInBsMonth, formatValidDate, normalizeDate, parseDate } from './helper';\n\nexport const format = (input: TInputDate, format: string, calendar: TCalendarType = 'bs', lang: TLang = 'en'): string => {\n\tconst date = convertToValidDate(input);\n\tconst locale = days_format[calendar][lang];\n\tconst tokenRegex = /\\b(YYYY|YYY|YY|MMM|MM|M|DD|D|ddd|dd|d)\\b/g;\n\t// const tokenRegex = /\\b(YYYY|YYY|YY|MMMM|MMM|MM|M|DD|D|ddd|dd|d)\\b/g;\n\n\tconst year = date.getFullYear().toString();\n\tconst monthIndex = date.getMonth(); // 0–11\n\tconst month = (monthIndex + 1).toString();\n\t// const month = (date.getMonth() + 1).toString();\n\tconst day = date.getDate().toString();\n\tconst weekday = date.getDay().toString();\n\n\tconst tokens: Record<string, string> = {\n\t\tYYYY: year,\n\t\tYYY: year.slice(-3),\n\t\tYY: year.slice(-2),\n\t\t// M: month,\n\t\t// MM: month.padStart(2, '0'),\n\t\t// MMM: locale.month.short[Number(month)],\n\t\t// MMMM: locale.month.long[Number(month)],\n\t\tM: month.padStart(2, '0'),\n\t\tMM: locale.month.short[monthIndex],\n\t\tMMM: locale.month.long[monthIndex],\n\t\tD: day,\n\t\tDD: day.padStart(2, '0'),\n\t\td: weekday,\n\t\tdd: locale.day.short[Number(weekday)],\n\t\tddd: locale.day.long[Number(weekday)],\n\t};\n\n\tconst result = format.replace(tokenRegex, (t) => tokens[t] ?? t);\n\treturn lang === 'np' ? convertDigitsToNepali(result, locale.date) : result;\n};\n\nexport const toAd = (input: TInputDate) => {\n\tconst bs = normalizeDate(input);\n\n\tif (!BS_MONTH_DAYS[String(bs.year)]) throw new Error('BS year not supported!');\n\tif (bs.year < BS_START_YEAR) throw new Error('BS date is below supported range!');\n\n\tlet totalDays = 0;\n\n\tfor (let y = BS_START_YEAR; y < bs.year; y++) {\n\t\ttotalDays += BS_YEAR_TOTALS[String(y)];\n\t}\n\n\tfor (let m = 1; m < bs.month; m++) {\n\t\ttotalDays += daysInBsMonth(bs.year, m);\n\t}\n\n\ttotalDays += bs.day - 1;\n\tconst adTime = AD_REFERENCE_TIME + totalDays * DAY_MS;\n\n\tconst ad = new Date(adTime);\n\tad.setHours(0, 0, 0, 0);\n\n\treturn formatValidDate(ad.getFullYear(), ad.getMonth() + 1, ad.getDate());\n};\n\nexport const toBs = (input?: TInputDate) => {\n\tconst ad = normalizeDate(input);\n\n\tconst adTime = new Date(ad.year, ad.month - 1, ad.day).getTime();\n\tlet remaining = Math.floor((adTime - AD_REFERENCE_TIME) / DAY_MS);\n\n\tif (remaining < 0) throw new Error('AD date is below supported range!');\n\n\tlet year = BS_START_YEAR;\n\n\twhile (BS_YEAR_TOTALS[String(year)] && remaining >= BS_YEAR_TOTALS[String(year)]) {\n\t\tremaining -= BS_YEAR_TOTALS[String(year)];\n\t\tyear++;\n\t}\n\n\tif (!BS_MONTH_DAYS[String(year)]) throw new Error('BS date is above supported range!');\n\n\tlet month = 1;\n\n\twhile (month <= 12) {\n\t\tconst dim = daysInBsMonth(year, month);\n\n\t\tif (remaining < dim) {\n\t\t\tconst day = remaining + 1;\n\t\t\treturn formatValidDate(year, month, day);\n\t\t}\n\n\t\tremaining -= dim;\n\t\tmonth++;\n\t}\n\n\tthrow new Error('Conversion failed!');\n};\n\nexport const startOfDay = (input?: TInputDate) => {\n\tconst d = nepaliDateFormat(input || toBs());\n\td.setHours(0, 0, 0, 0);\n\treturn d;\n};\n\nexport const endOfDay = (input?: TInputDate) => {\n\tconst d = nepaliDateFormat(input || toBs());\n\td.setHours(23, 59, 59, 999);\n\treturn d;\n};\n\nexport const isValidDate = (input: TInputDate): boolean => {\n\ttry {\n\t\tif (!input) throw new Error('Date is required!');\n\n\t\tconst d = convertToValidDate(input);\n\t\treturn !Number.isNaN(d.getTime());\n\t} catch {\n\t\treturn false;\n\t}\n};\n\nexport const isToday = (input: TInputDate): boolean => {\n\tif (!input) throw new Error('Date is required!');\n\n\tconst today = startOfDay();\n\tconst d = startOfDay(input);\n\treturn today.getTime() === d.getTime();\n};\n\nexport const isEqual = (date1: TInputDate, date2: TInputDate, strict = false): boolean => {\n\tif (!date1 && !date2) throw 'Two dates is required!';\n\n\tconst d1 = convertToValidDate(date1);\n\tconst d2 = convertToValidDate(date2);\n\n\tif (strict) return d1.getTime() === d2.getTime();\n\treturn formatValidDate(d1) === formatValidDate(d2);\n};\n\nexport const isAfter = (date1: TInputDate, date2: TInputDate, strict = false): boolean => {\n\tif (!date1 && !date2) throw 'Two dates is required!';\n\n\tconst d1 = convertToValidDate(date1);\n\tconst d2 = convertToValidDate(date2);\n\n\tif (strict) return d1.getTime() > d2.getTime();\n\treturn formatValidDate(d1) > formatValidDate(d2);\n};\n\nexport const isBefore = (date1: TInputDate, date2: TInputDate, strict = false): boolean => {\n\tif (!date1 && !date2) throw 'Two dates is required!';\n\n\tconst d1 = convertToValidDate(date1);\n\tconst d2 = convertToValidDate(date2);\n\n\tif (strict) return d1.getTime() < d2.getTime();\n\treturn formatValidDate(d1) < formatValidDate(d2);\n};\n\nexport const nepaliDateFormat = (input?: TInputDate) => {\n\treturn convertToValidDate(input);\n};\n\nexport const nepaliDate = (input?: TInputDate) => {\n\treturn input ? formatValidDate(input) : toBs();\n};\n\nexport const getMonthStartDate = (input?: TInputDate): string => {\n\tconst { year, month } = parseDate(input);\n\treturn formatValidDate(year, month, 1);\n};\n\nexport const getMonthEndDate = (input?: TInputDate): string => {\n\tconst { year, month } = parseDate(input);\n\tconst lastDay = daysInBsMonth(year, month);\n\treturn formatValidDate(year, month, lastDay);\n};\n\nexport const setDate = (input: TInputDate, day: number): string => {\n\tconst { year, month } = parseDate(input);\n\tconst max = daysInBsMonth(year, month);\n\n\tif (day < 1 || day > max) {\n\t\tthrow new Error('Invalid BS day!');\n\t}\n\n\treturn formatValidDate(year, month, day);\n};\n\nexport const setMonth = (input: TInputDate, month: number): string => {\n\tconst { year, day } = parseDate(input);\n\n\tif (month < 1 || month > 12) {\n\t\tthrow new Error('Invalid month!');\n\t}\n\n\tconst max = daysInBsMonth(year, month);\n\tconst safeDay = Math.min(day, max);\n\n\treturn formatValidDate(year, month, safeDay);\n};\n\nexport const setYear = (input: TInputDate, year: number): string => {\n\tconst { month, day } = parseDate(input);\n\n\tif (!BS_MONTH_DAYS[String(year)]) {\n\t\tthrow new Error('Unsupported BS year!');\n\t}\n\n\tconst max = daysInBsMonth(year, month);\n\tconst safeDay = Math.min(day, max);\n\n\treturn formatValidDate(year, month, safeDay);\n};\n\nexport const addDaysFromToday = (days: number): string => {\n\tconst now = new Date();\n\tconst result = new Date(now.getTime() + days * DAY_MS);\n\treturn toBs(result);\n};\n\nexport const subtractDaysFromToday = (days: number): string => {\n\tconst now = new Date();\n\tconst result = new Date(now.getTime() - days * DAY_MS);\n\treturn toBs(result);\n};\n\nexport const addTimeFromToday = (hours = 0, minutes = 0, seconds = 0) => {\n\tconst d = startOfDay();\n\treturn new Date(d.getTime() + hours * 3600000 + minutes * 60000 + seconds * 1000);\n};\n\nexport const subtractTimeFromEndOfDay = (hours = 0, minutes = 0, seconds = 0) => {\n\tconst d = endOfDay();\n\treturn new Date(d.getTime() - hours * 3600000 - minutes * 60000 - seconds * 1000);\n};\n\nexport const addTimeFromNow = (hours = 0, minutes = 0, seconds = 0) => {\n\tconst now = nepaliDateFormat(new Date());\n\treturn new Date(now.getTime() + hours * 3600000 + minutes * 60000 + seconds * 1000);\n};\n\nexport const subtractTimeFromNow = (hours = 0, minutes = 0, seconds = 0) => {\n\tconst now = nepaliDateFormat(new Date());\n\treturn new Date(now.getTime() - hours * 3600000 - minutes * 60000 - seconds * 1000);\n};\n\nexport const getDatesBetween = (startDate: TInputDate, endDate: TInputDate): string[] => {\n\tif (!startDate || !endDate) throw 'Two dates are required!';\n\n\tconst start = convertToValidDate(startDate);\n\tconst end = convertToValidDate(endDate);\n\n\tif (start.getTime() > end.getTime()) {\n\t\tthrow 'Start date must be before end date';\n\t}\n\n\tconst dates: string[] = [];\n\tconst current = new Date(start);\n\n\twhile (current.getTime() <= end.getTime()) {\n\t\tdates.push(formatValidDate(current));\n\t\tcurrent.setDate(current.getDate() + 1);\n\t}\n\n\treturn dates;\n};\n\nexport const date = (input?: TInputDate): TDateInstance => {\n\tconst value = input ? formatValidDate(input) : toBs();\n\n\treturn {\n\t\tvalue,\n\n\t\tformat: (fmt: string, lang: TLang = 'en') => {\n\t\t\treturn format(value, fmt, 'bs', lang);\n\t\t},\n\n\t\tisAfter: (date: TInputDate, strict = false) => {\n\t\t\treturn isAfter(value, date, strict);\n\t\t},\n\n\t\tisBefore: (date: TInputDate, strict = false) => {\n\t\t\treturn isBefore(value, date, strict);\n\t\t},\n\n\t\tisEqual: (date: TInputDate, strict = false) => {\n\t\t\treturn isEqual(value, date, strict);\n\t\t},\n\n\t\ttoAd: () => {\n\t\t\treturn toAd(value);\n\t\t},\n\n\t\ttoBs: () => {\n\t\t\treturn value;\n\t\t},\n\t};\n};\n","import { toAd } from '.';\nimport { AD_START, BS_MONTH_DAYS } from './constants';\n\nexport const days_format = {\n\tbs: {\n\t\ten: {\n\t\t\tday: {\n\t\t\t\tshort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n\t\t\t\tlong: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],\n\t\t\t},\n\t\t\tmonth: {\n\t\t\t\tshort: ['Bai', 'Jes', 'Asa', 'Shr', 'Bhd', 'Asw', 'Kar', 'Man', 'Pou', 'Mag', 'Fal', 'Cha'],\n\t\t\t\tlong: ['Baisakh', 'Jestha', 'Asar', 'Shrawan', 'Bhadra', 'Aswin', 'Kartik', 'Mangsir', 'Poush', 'Magh', 'Falgun', 'Chaitra'] as const, // as const is used to get it & use it while converting dates\n\t\t\t},\n\t\t\tdate: ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'],\n\t\t},\n\t\tnp: {\n\t\t\tday: {\n\t\t\t\tshort: ['आइत', 'सोम', 'मंगल', 'बुध', 'बिहि', 'शुक्र', 'शनि'],\n\t\t\t\tlong: ['आइतबार', 'सोमबार', 'मंगलबार', 'बुधबार', 'बिहिबार', 'शुक्रबार', 'शनिबार'],\n\t\t\t},\n\t\t\tmonth: {\n\t\t\t\tshort: ['बै', 'जे', 'अ', 'श्रा', 'भा', 'आ', 'का', 'मं', 'पौ', 'मा', 'फा', 'चै'],\n\t\t\t\tlong: ['बैशाख', 'जेठ', 'असार', 'श्रावण', 'भाद्र', 'आश्विन', 'कार्तिक', 'मंसिर', 'पौष', 'माघ', 'फाल्गुण', 'चैत्र'],\n\t\t\t},\n\t\t\tdate: ['०', '१', '२', '३', '४', '५', '६', '७', '८', '९'],\n\t\t},\n\t},\n\tad: {\n\t\ten: {\n\t\t\tday: {\n\t\t\t\tshort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n\t\t\t\tlong: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],\n\t\t\t},\n\t\t\tmonth: {\n\t\t\t\tshort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n\t\t\t\tlong: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],\n\t\t\t},\n\t\t\tdate: ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'],\n\t\t},\n\t\tnp: {\n\t\t\tday: {\n\t\t\t\tshort: ['आइत', 'सोम', 'मंगल', 'बुध', 'बिहि', 'शुक्र', 'शनि'],\n\t\t\t\tlong: ['आइतबार', 'सोमबार', 'मंगलबार', 'बुधबार', 'बिहिबार', 'शुक्रबार', 'शनिबार'],\n\t\t\t},\n\t\t\tmonth: {\n\t\t\t\tshort: ['जन', 'फेब', 'मार्च', 'अप्रि', 'मे', 'जुन', 'जुल', 'अग', 'सेप', 'अक्टो', 'नोभे', 'डिसे'],\n\t\t\t\tlong: ['जनवरी', 'फेब्रुअरी', 'मार्च', 'अप्रिल', 'मे', 'जुन', 'जुलाई', 'अगस्ट', 'सेप्टेम्बर', 'अक्टोबर', 'नोभेम्बर', 'डिसेम्बर'],\n\t\t\t},\n\t\t\tdate: ['०', '१', '२', '३', '४', '५', '६', '७', '८', '९'],\n\t\t},\n\t},\n};\n\nexport const BS_MONTHS = days_format.bs.en.month.long;\n\nexport const monthDays = (year: number, month: number) => {\n\treturn BS_MONTH_DAYS[String(year)][BS_MONTHS[month - 1]];\n};\n\nexport const convertToValidDate = (input?: TInputDate, calendar: 'ad' | 'bs' = 'ad'): Date => {\n\tif (!input) return new Date();\n\tif (input instanceof Date) return input;\n\tif (typeof input === 'string') return new Date(input);\n\tif (typeof input === 'object') {\n\t\tif ('year' in input && 'month' in input && 'day' in input && typeof input.year === 'number' && typeof input.month === 'number' && typeof input.day === 'number') {\n\t\t\tif (calendar === 'bs') {\n\t\t\t\tconst maxDays = monthDays(input.year, input.month);\n\n\t\t\t\tif (input.day < 1 || input.day > maxDays) {\n\t\t\t\t\tthrow new Error('Invalid BS date');\n\t\t\t\t}\n\n\t\t\t\tconst ad = toAd({ year: input.year, month: input.month, day: input.day });\n\t\t\t\treturn new Date(ad);\n\t\t\t}\n\n\t\t\tconst d = new Date(input.year, input.month - 1, input.day);\n\n\t\t\tif (d.getFullYear() !== input.year || d.getMonth() !== input.month - 1 || d.getDate() !== input.day) {\n\t\t\t\tthrow new Error('Invalid AD date');\n\t\t\t}\n\n\t\t\treturn d;\n\t\t}\n\n\t\tif ('toDate' in input && typeof input.toDate === 'function') {\n\t\t\treturn input.toDate();\n\t\t}\n\n\t\tif ('$d' in input && input.$d instanceof Date) {\n\t\t\treturn input.$d;\n\t\t}\n\n\t\tif ('_d' in input && input._d instanceof Date) {\n\t\t\treturn input._d;\n\t\t}\n\t}\n\n\tthrow new Error('Unsupported date format!');\n};\n\nexport const convertDigitsToNepali = (value: string, digits: readonly string[]): string => {\n\treturn value.replace(/\\d/g, (d) => digits[Number(d)]);\n};\n\nconst BS_MONTH_KEYS = days_format.bs.en.month.long;\n\n// Precompute yearly totals once\nexport const BS_YEAR_TOTALS: Record<string, number> = {};\n\nfor (const [year, months] of Object.entries(BS_MONTH_DAYS)) {\n\tBS_YEAR_TOTALS[year] = BS_MONTH_KEYS.reduce((sum, m) => sum + months[m], 0);\n}\n\nexport const AD_REFERENCE_TIME = new Date(AD_START.year, AD_START.month, AD_START.date).setHours(0, 0, 0, 0);\n\nexport const daysInBsMonth = (year: number, month: number): number => {\n\tconst yearData = BS_MONTH_DAYS[String(year)];\n\tif (!yearData) throw new Error('Unsupported BS year!');\n\treturn yearData[BS_MONTH_KEYS[month - 1]];\n};\n\nexport const normalizeDate = (input?: TInputDate): TDateFormat => {\n\tconst d = convertToValidDate(input);\n\td.setHours(0, 0, 0, 0);\n\n\treturn {\n\t\tyear: d.getFullYear(),\n\t\tmonth: d.getMonth() + 1,\n\t\tday: d.getDate(),\n\t};\n};\n\nexport const formatValidDate = (year: TInputDate | number, month?: number, day?: number): string => {\n\tlet date;\n\n\tif (typeof year === 'number' && typeof month === 'number' && typeof day === 'number') {\n\t\tdate = { year, month, day };\n\t} else {\n\t\tdate = normalizeDate(year as TInputDate);\n\t}\n\n\treturn date?.year + '-' + String(date?.month).padStart(2, '0') + '-' + String(date?.day).padStart(2, '0');\n};\n\nexport const parseDate = (input?: TInputDate): TDateFormat => {\n\tconst bsDate = formatValidDate(input as TInputDate);\n\n\tconst [year, month, day] = bsDate.split('-').map(Number);\n\treturn { year, month, day };\n};\n","import { useEffect, useRef, useState } from 'react';\nimport { BS_MONTH_DAYS } from '../../core/src/constants';\nimport { BS_MONTHS, convertToValidDate, days_format, formatValidDate, monthDays, parseDate } from '../../core/src/helper';\nimport { getDatesBetween, isAfter, isToday, toBs } from '../../core/src';\nimport { createPortal } from 'react-dom';\n\nconst usePopoverPosition = (triggerRef: any, open: boolean) => {\n\tconst [position, setPosition] = useState<'top' | 'bottom'>('bottom');\n\n\tuseEffect(() => {\n\t\tif (!open || !triggerRef.current) return;\n\n\t\tconst update = () => {\n\t\t\tconst rect = triggerRef.current.getBoundingClientRect();\n\t\t\tconst spaceBelow = window.innerHeight - rect.bottom;\n\t\t\tconst spaceAbove = rect.top;\n\n\t\t\tif (spaceBelow < 340 && spaceAbove > spaceBelow) {\n\t\t\t\tsetPosition('top');\n\t\t\t} else {\n\t\t\t\tsetPosition('bottom');\n\t\t\t}\n\t\t};\n\n\t\tupdate();\n\n\t\twindow.addEventListener('scroll', update, true);\n\t\twindow.addEventListener('resize', update);\n\n\t\treturn () => {\n\t\t\twindow.removeEventListener('scroll', update, true);\n\t\t\twindow.removeEventListener('resize', update);\n\t\t};\n\t}, [open, triggerRef]);\n\n\treturn position;\n};\n\nconst CalendarPanel = ({\n\tvalue,\n\tonChange,\n\tminDate,\n\tmaxDate,\n\tdisabled,\n\trangeStart,\n\trangeEnd,\n\ttempDate,\n\tsetTempDate,\n\tisRange,\n}: {\n\tvalue?: TInputDate;\n\tonChange?: (e: string, el?: string) => void;\n\tminDate?: TInputDate;\n\tmaxDate?: TInputDate;\n\tdisabled?: boolean;\n\trangeStart?: TInputDate;\n\trangeEnd?: TInputDate;\n\ttempDate?: string;\n\tisRange?: boolean;\n\tsetTempDate?: any;\n}) => {\n\tconst initialDate = parseDate(value || toBs());\n\tconst [bsYear, setBsYear] = useState(initialDate?.year);\n\tconst [bsMonth, setBsMonth] = useState(initialDate?.month);\n\tconst [daysInMonth, setdaysInMonth] = useState(0);\n\n\tuseEffect(() => {\n\t\tsetdaysInMonth(monthDays(bsYear, bsMonth));\n\t}, [bsMonth, bsYear]);\n\n\tconst toggleMonth = (type: 'next' | 'prev' = 'prev') => {\n\t\tif (type === 'prev') {\n\t\t\tif (bsMonth === 1) {\n\t\t\t\tsetBsMonth(12);\n\t\t\t\tsetBsYear((y) => y - 1);\n\t\t\t} else {\n\t\t\t\tsetBsMonth((m) => m - 1);\n\t\t\t}\n\t\t} else {\n\t\t\tif (bsMonth === 12) {\n\t\t\t\tsetBsMonth(1);\n\t\t\t\tsetBsYear((y) => y + 1);\n\t\t\t} else {\n\t\t\t\tsetBsMonth((m) => m + 1);\n\t\t\t}\n\t\t}\n\t};\n\n\tconst checkDisable = (dateStr: { year: number; month: number; day: number }) => {\n\t\tif (disabled || (minDate && isAfter(minDate, dateStr)) || (maxDate && isAfter(dateStr, maxDate)) || (tempDate && isAfter(tempDate, dateStr))) {\n\t\t\treturn true;\n\t\t} else {\n\t\t\treturn false;\n\t\t}\n\t};\n\n\treturn (\n\t\t<div className='w-70 bg-white shadow-md rounded-xl border p-2 space-y-2'>\n\t\t\t<style>\n\t\t\t\t{`.hover-calender:hover {\n\t\t\t\t\t\t\t\tbackground:#9810fa7a;\n\t\t}`}\n\t\t\t</style>\n\t\t\t<div className='flex items-center justify-between'>\n\t\t\t\t<button onClick={() => toggleMonth('prev')} className='text-3xl cursor-pointer h-full w-10 text-neutral-600 hover:text-black hover:bg-neutral-200 rounded-md pb-1 transition'>\n\t\t\t\t\t‹\n\t\t\t\t</button>\n\n\t\t\t\t<div className='flex gap-2'>\n\t\t\t\t\t<select\n\t\t\t\t\t\tvalue={bsYear}\n\t\t\t\t\t\tonChange={(e) => setBsYear(Number(e.target.value))}\n\t\t\t\t\t\tclassName='bg-white border border-neutral-300 text-xs p-1.5 font-semibold text-neutral-700 text-center rounded-md focus:outline-none focus:ring-1 focus:ring-black transition'\n\t\t\t\t\t>\n\t\t\t\t\t\t{Object.keys(BS_MONTH_DAYS).map((y) => (\n\t\t\t\t\t\t\t<option key={y} value={y}>\n\t\t\t\t\t\t\t\t{y}\n\t\t\t\t\t\t\t</option>\n\t\t\t\t\t\t))}\n\t\t\t\t\t</select>\n\n\t\t\t\t\t<select\n\t\t\t\t\t\tvalue={bsMonth}\n\t\t\t\t\t\tonChange={(e) => setBsMonth(Number(e.target.value))}\n\t\t\t\t\t\tclassName='bg-white border border-neutral-300 p-1.5 text-xs font-semibold text-neutral-700 text-center rounded-md focus:outline-none focus:ring-1 focus:ring-black transition'\n\t\t\t\t\t>\n\t\t\t\t\t\t{BS_MONTHS.map((m, i) => (\n\t\t\t\t\t\t\t<option key={m} value={i + 1}>\n\t\t\t\t\t\t\t\t{m}\n\t\t\t\t\t\t\t</option>\n\t\t\t\t\t\t))}\n\t\t\t\t\t</select>\n\t\t\t\t</div>\n\n\t\t\t\t<button onClick={() => toggleMonth('next')} className='text-3xl h-full cursor-pointer w-10 text-neutral-600 hover:text-black hover:bg-neutral-200 rounded-md pb-1 transition'>\n\t\t\t\t\t›\n\t\t\t\t</button>\n\t\t\t</div>\n\n\t\t\t<div className='border-t border-b py-3 space-y-1'>\n\t\t\t\t<div\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\tdisplay: 'grid',\n\t\t\t\t\t\tgridTemplateColumns: 'repeat(7, minmax(0, 1fr))',\n\t\t\t\t\t}}\n\t\t\t\t\tclassName='place-content-center text-[10px] text-neutral-500 font-semibold'\n\t\t\t\t>\n\t\t\t\t\t{['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'].map((d) => (\n\t\t\t\t\t\t<div key={d} className='text-center'>\n\t\t\t\t\t\t\t{d}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t))}\n\t\t\t\t</div>\n\n\t\t\t\t<div\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\tdisplay: 'grid',\n\t\t\t\t\t\tgridTemplateColumns: 'repeat(7, minmax(0, 1fr))',\n\t\t\t\t\t}}\n\t\t\t\t\tclassName='place-content-center'\n\t\t\t\t>\n\t\t\t\t\t{Array.from({ length: convertToValidDate({ year: bsYear, month: bsMonth, day: 1 }).getDay() }).map((_, i) => (\n\t\t\t\t\t\t<div key={'e' + i} />\n\t\t\t\t\t))}\n\n\t\t\t\t\t{Array.from({ length: daysInMonth }).map((_, i) => {\n\t\t\t\t\t\tconst day = i + 1;\n\n\t\t\t\t\t\tconst inRange = !tempDate && rangeStart && rangeEnd && getDatesBetween(rangeStart, rangeEnd);\n\t\t\t\t\t\tconst today = isToday({ year: bsYear, month: bsMonth, day });\n\t\t\t\t\t\tconst checkDate = formatValidDate(bsYear, bsMonth, day);\n\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\t\t\tif (onChange && setTempDate && !tempDate) {\n\t\t\t\t\t\t\t\t\t\tsetTempDate(checkDate);\n\t\t\t\t\t\t\t\t\t} else if (onChange) {\n\t\t\t\t\t\t\t\t\t\tonChange(checkDate, tempDate);\n\t\t\t\t\t\t\t\t\t\tsetTempDate && setTempDate(undefined);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\tdisabled={checkDisable({ year: bsYear, month: bsMonth, day })}\n\t\t\t\t\t\t\t\tkey={day}\n\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\tbackground:\n\t\t\t\t\t\t\t\t\t\ttempDate && tempDate === checkDate\n\t\t\t\t\t\t\t\t\t\t\t? '#9810fa'\n\t\t\t\t\t\t\t\t\t\t\t: (!isRange && value === checkDate) || (Array.isArray(inRange) && inRange[0] === checkDate) || (Array.isArray(inRange) && inRange[inRange.length - 1] === checkDate)\n\t\t\t\t\t\t\t\t\t\t\t\t? '#9810fa'\n\t\t\t\t\t\t\t\t\t\t\t\t: Array.isArray(inRange) && inRange.includes(checkDate)\n\t\t\t\t\t\t\t\t\t\t\t\t\t? '#9810fa7a'\n\t\t\t\t\t\t\t\t\t\t\t\t\t: today\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? '#131313'\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: '',\n\t\t\t\t\t\t\t\t\tcolor:\n\t\t\t\t\t\t\t\t\t\t(tempDate && tempDate === checkDate) ||\n\t\t\t\t\t\t\t\t\t\t(!isRange && value === checkDate) ||\n\t\t\t\t\t\t\t\t\t\t(Array.isArray(inRange) && inRange[0] === checkDate) ||\n\t\t\t\t\t\t\t\t\t\t(Array.isArray(inRange) && inRange[inRange.length - 1] === checkDate) ||\n\t\t\t\t\t\t\t\t\t\t(Array.isArray(inRange) && inRange.includes(checkDate)) ||\n\t\t\t\t\t\t\t\t\t\ttoday\n\t\t\t\t\t\t\t\t\t\t\t? 'white'\n\t\t\t\t\t\t\t\t\t\t\t: checkDisable({ year: bsYear, month: bsMonth, day })\n\t\t\t\t\t\t\t\t\t\t\t\t? '#888888'\n\t\t\t\t\t\t\t\t\t\t\t\t: '',\n\t\t\t\t\t\t\t\t\tcursor: checkDisable({ year: bsYear, month: bsMonth, day }) ? 'not-allowed' : 'pointer',\n\t\t\t\t\t\t\t\t\tborderRadius:\n\t\t\t\t\t\t\t\t\t\tArray.isArray(inRange) && inRange[0] === checkDate\n\t\t\t\t\t\t\t\t\t\t\t? '6px 0 0 6px'\n\t\t\t\t\t\t\t\t\t\t\t: Array.isArray(inRange) && inRange[inRange.length - 1] === checkDate\n\t\t\t\t\t\t\t\t\t\t\t\t? '0 6px 6px 0'\n\t\t\t\t\t\t\t\t\t\t\t\t: !isRange || tempDate\n\t\t\t\t\t\t\t\t\t\t\t\t\t? '6px'\n\t\t\t\t\t\t\t\t\t\t\t\t\t: today\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? '6px'\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: '',\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\tclassName={`w-full hover-calender cursor-pointer h-8 text-xs text-neutral-700 hover:text-white transition`}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{day}\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t);\n\t\t\t\t\t})}\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t<div className='flex justify-center'>\n\t\t\t\t<button onClick={() => onChange && onChange(toBs())} className='text-sm cursor-pointer text-neutral-600 rounded-md'>\n\t\t\t\t\tToday\n\t\t\t\t</button>\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n\nconst useOutsideClick = (ref: any, handler: any, active: boolean) => {\n\tuseEffect(() => {\n\t\tif (!active) return;\n\n\t\tconst listener = (event: any) => {\n\t\t\tconst target = event.target as Node;\n\t\t\tfor (const re of ref) {\n\t\t\t\tif (re.current && re.current.contains(target)) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\thandler();\n\t\t};\n\n\t\tdocument.addEventListener('mousedown', listener);\n\t\treturn () => document.removeEventListener('mousedown', listener);\n\t}, [ref, handler, active]);\n};\n\nexport const DatePicker = ({\n\tvalue,\n\tonChange,\n\tminDate,\n\tmaxDate,\n\tdisabled,\n\tallowClear = true,\n\tplaceholder = 'Select date',\n}: {\n\tvalue?: string;\n\tonChange?: (e: string) => void;\n\tminDate?: TInputDate;\n\tmaxDate?: TInputDate;\n\tdisabled?: boolean;\n\tallowClear?: boolean;\n\tplaceholder?: string;\n}) => {\n\tconst [open, setOpen] = useState(false);\n\tconst triggerRef = useRef<HTMLDivElement | null>(null);\n\tconst panelRef = useRef<HTMLDivElement | null>(null);\n\n\tconst position = usePopoverPosition(triggerRef, open);\n\n\tuseOutsideClick([triggerRef, panelRef], () => setOpen(false), open);\n\tconst rect = triggerRef.current?.getBoundingClientRect();\n\n\treturn (\n\t\t<div className={`relative`} ref={triggerRef}>\n\t\t\t<div\n\t\t\t\tonClick={() => !disabled && setOpen(!open)}\n\t\t\t\tclassName={`flex items-center justify-between border border-gray-300 rounded-lg p-2 bg-white cursor-pointer focus-within:ring-2 focus-within:ring-blue-500 ${disabled ? 'bg-gray-100 cursor-not-allowed text-gray-400' : ''}`}\n\t\t\t>\n\t\t\t\t<span className='text-sm'>{value ? formatValidDate(value) : <span className='text-neutral-400'>{placeholder}</span>}</span>\n\n\t\t\t\t{allowClear && value && !disabled && (\n\t\t\t\t\t<button\n\t\t\t\t\t\tonClick={(e) => {\n\t\t\t\t\t\t\te.stopPropagation();\n\t\t\t\t\t\t\tonChange && onChange('');\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tclassName='size-4 grid place-content-center border rounded-full text-sm border-neutral-500 cursor-pointer text-neutral-500'\n\t\t\t\t\t>\n\t\t\t\t\t\t×\n\t\t\t\t\t</button>\n\t\t\t\t)}\n\t\t\t</div>\n\n\t\t\t{open &&\n\t\t\t\trect &&\n\t\t\t\tcreatePortal(\n\t\t\t\t\t<div\n\t\t\t\t\t\tref={panelRef}\n\t\t\t\t\t\tclassName='absolute'\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\ttop: position === 'top' ? rect.top - 360 : rect.bottom + 8,\n\t\t\t\t\t\t\tleft: rect.left,\n\t\t\t\t\t\t\tzIndex: 999999,\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t<CalendarPanel\n\t\t\t\t\t\t\tvalue={value}\n\t\t\t\t\t\t\tonChange={(date: string) => {\n\t\t\t\t\t\t\t\tif (onChange) {\n\t\t\t\t\t\t\t\t\tonChange(date);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tsetOpen(false);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tminDate={minDate}\n\t\t\t\t\t\t\tmaxDate={maxDate}\n\t\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>,\n\t\t\t\t\tdocument.body,\n\t\t\t\t)}\n\t\t</div>\n\t);\n};\n\nexport const RangePicker = ({\n\tvalue,\n\tonChange,\n\tminDate,\n\tmaxDate,\n\tdisabled,\n\tallowClear = true,\n\tplaceholder = 'Select date',\n}: {\n\tvalue?: string[];\n\tonChange?: (e: string[]) => void;\n\tminDate?: TInputDate;\n\tmaxDate?: TInputDate;\n\tdisabled?: boolean;\n\tallowClear?: boolean;\n\tplaceholder?: string;\n}) => {\n\tconst [open, setOpen] = useState(false);\n\tconst [tempDate, setTempDate] = useState<undefined | string>(undefined);\n\n\tconst triggerRef = useRef<HTMLDivElement | null>(null);\n\tconst panelRef = useRef<HTMLDivElement | null>(null);\n\n\tconst position = usePopoverPosition(triggerRef, open);\n\n\tconst [start, end] = value || [];\n\n\tuseOutsideClick(\n\t\t[triggerRef, panelRef],\n\t\t() => {\n\t\t\tsetOpen(false);\n\t\t\tsetTempDate(undefined);\n\t\t},\n\t\topen,\n\t);\n\tconst rect = triggerRef.current?.getBoundingClientRect();\n\n\treturn (\n\t\t<div className={`relative`} ref={triggerRef}>\n\t\t\t<div\n\t\t\t\tonClick={() => !disabled && setOpen(!open)}\n\t\t\t\tclassName={`flex items-center justify-between border border-gray-300 rounded-lg p-2 bg-white cursor-pointer focus-within:ring-2 focus-within:ring-blue-500 ${disabled ? 'bg-gray-100 cursor-not-allowed text-gray-400' : ''}`}\n\t\t\t>\n\t\t\t\t<span className='text-sm'>{start && end ? `${start} ${end}` : <span className='text-neutral-400'>{placeholder}</span>}</span>\n\n\t\t\t\t{allowClear && start && end && !disabled && (\n\t\t\t\t\t<button\n\t\t\t\t\t\tonClick={(e) => {\n\t\t\t\t\t\t\te.stopPropagation();\n\t\t\t\t\t\t\tonChange && onChange([]);\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tclassName='size-4 grid place-content-center border rounded-full cursor-pointer text-sm border-neutral-500 text-neutral-500'\n\t\t\t\t\t>\n\t\t\t\t\t\t×\n\t\t\t\t\t</button>\n\t\t\t\t)}\n\t\t\t</div>\n\n\t\t\t{open &&\n\t\t\t\trect &&\n\t\t\t\tcreatePortal(\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName='absolute'\n\t\t\t\t\t\tref={panelRef}\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\ttop: position === 'top' ? rect.top - 360 : rect.bottom + 8,\n\t\t\t\t\t\t\tleft: rect.left,\n\t\t\t\t\t\t\tzIndex: 999999,\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t<CalendarPanel\n\t\t\t\t\t\t\tisRange\n\t\t\t\t\t\t\ttempDate={tempDate}\n\t\t\t\t\t\t\tsetTempDate={setTempDate}\n\t\t\t\t\t\t\tvalue={start}\n\t\t\t\t\t\t\tonChange={(date1: string, date2?: string) => {\n\t\t\t\t\t\t\t\tif (onChange) {\n\t\t\t\t\t\t\t\t\tif (date2) {\n\t\t\t\t\t\t\t\t\t\tif (isAfter(date2, date1)) {\n\t\t\t\t\t\t\t\t\t\t\tonChange([date1, date2]);\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\tonChange([date2, date1]);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tonChange([date1, date1]);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tsetTempDate(undefined);\n\t\t\t\t\t\t\t\tsetOpen(false);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tminDate={minDate}\n\t\t\t\t\t\t\tmaxDate={maxDate}\n\t\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\t\trangeStart={start}\n\t\t\t\t\t\t\trangeEnd={end}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>,\n\t\t\t\t\tdocument.body,\n\t\t\t\t)}\n\t\t</div>\n\t);\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["../packages/react/src/Calender.tsx","../packages/core/src/constants.ts","../packages/core/src/index.ts","../packages/core/src/helper.ts","../packages/react/src/Picker.tsx"],"names":["MONTHS","WEEK_DAYS","DEFAULT_EVENTS","getDaysInMonth","year","month","formatDate","day","BsCalendar","events","size","onEventClick","allowAd","todayObj","todayStr","setYear","useState","setMonth","selected","setSelected","daysInMonth","firstDay","eventMap","useMemo","map","ev","handlePrev","y","m","handleNext","handleToday","renderEvents","dateStr","dayEvents","e","jsx","i","max","cellHeight","jsxs","_","index","dayOffset","prevMonthDays","displayMonth","displayYear","isCurrentMonth","isToday","isSelected","isSaturday","BS_MONTH_DAYS","DAY_MS","BS_START_YEAR","AD_START","toAd","input","bs","normalizeDate","totalDays","BS_YEAR_TOTALS","daysInBsMonth","adTime","AD_REFERENCE_TIME","ad","formatValidDate","toBs","remaining","dim","startOfDay","d","nepaliDateFormat","today","isAfter","date1","date2","strict","d1","convertToValidDate","d2","getDatesBetween","startDate","endDate","start","end","dates","current","days_format","BS_MONTHS","monthDays","calendar","maxDays","BS_MONTH_KEYS","months","sum","yearData","date","parseDate","bsDate","usePopoverPosition","triggerRef","open","position","setPosition","useEffect","update","rect","spaceBelow","spaceAbove","CalendarPanel","value","onChange","minDate","maxDate","disabled","rangeStart","rangeEnd","tempDate","setTempDate","isRange","initialDate","bsYear","setBsYear","bsMonth","setBsMonth","setdaysInMonth","toggleMonth","type","checkDisable","inRange","checkDate","useOutsideClick","ref","handler","active","listener","event","target","re","DatePicker","allowClear","placeholder","setOpen","useRef","panelRef","createPortal","RangePicker"],"mappings":"8GAGA,IAAMA,EAAAA,CAAS,CAAC,SAAA,CAAW,WAAY,OAAA,CAAS,OAAA,CAAS,KAAA,CAAO,MAAA,CAAQ,OAAQ,QAAA,CAAU,WAAA,CAAa,SAAA,CAAW,UAAA,CAAY,UAAU,CAAA,CAElIC,EAAAA,CAAY,CAAC,KAAA,CAAO,MAAO,KAAA,CAAO,KAAA,CAAO,KAAA,CAAO,KAAA,CAAO,KAAK,CAAA,CAE5DC,EAAAA,CAAiB,CACtB,CAAE,KAAM,YAAA,CAAc,KAAA,CAAO,SAAA,CAAW,KAAA,CAAO,aAAc,CAAA,CAC7D,CAAE,IAAA,CAAM,YAAA,CAAc,MAAO,QAAA,CAAU,KAAA,CAAO,cAAe,CAAA,CAC7D,CAAE,IAAA,CAAM,YAAA,CAAc,KAAA,CAAO,QAAA,CAAU,MAAO,eAAgB,CAAA,CAC9D,CAAE,IAAA,CAAM,aAAc,KAAA,CAAO,QAAA,CAAU,KAAA,CAAO,aAAc,EAC5D,CAAE,IAAA,CAAM,YAAA,CAAc,KAAA,CAAO,aAAc,IAAA,CAAM,IAAK,CACvD,CAAA,CAEA,SAASC,EAAAA,CAAeC,CAAAA,CAAcC,CAAAA,CAAe,CACpD,OAAO,IAAI,IAAA,CAAKD,CAAAA,CAAMC,CAAAA,CAAQ,EAAG,CAAC,CAAA,CAAE,OAAA,EACrC,CAEA,SAASC,EAAAA,CAAWF,CAAAA,CAAcC,CAAAA,CAAeE,EAAa,CAC7D,OAAO,CAAA,EAAGH,CAAI,IAAI,MAAA,CAAOC,CAAAA,CAAQ,CAAC,CAAA,CAAE,SAAS,CAAA,CAAG,GAAG,CAAC,CAAA,CAAA,EAAI,OAAOE,CAAG,CAAA,CAAE,QAAA,CAAS,CAAA,CAAG,GAAG,CAAC,CAAA,CACrF,CAEO,IAAMC,GAAa,CAAC,CAAE,MAAA,CAAAC,CAAAA,CAASP,GAAgB,IAAA,CAAAQ,CAAAA,CAAO,QAAA,CAAU,YAAA,CAAAC,EAAc,OAAA,CAAAC,CAAAA,CAAU,IAAK,CAAA,GAAW,CAC9G,IAAMC,CAAAA,CAAW,IAAI,IAAA,CACfC,EAAWR,EAAAA,CAAWO,CAAAA,CAAS,WAAA,EAAY,CAAGA,EAAS,QAAA,EAAS,CAAGA,CAAAA,CAAS,OAAA,EAAS,CAAA,CAErF,CAACT,CAAAA,CAAMW,CAAO,CAAA,CAAIC,cAAAA,CAASH,CAAAA,CAAS,WAAA,EAAa,CAAA,CACjD,CAACR,CAAAA,CAAOY,CAAQ,EAAID,cAAAA,CAASH,CAAAA,CAAS,QAAA,EAAU,EAChD,CAACK,CAAAA,CAAUC,CAAW,CAAA,CAAIH,eAASF,CAAQ,CAAA,CAE3CM,CAAAA,CAAcjB,EAAAA,CAAeC,EAAMC,CAAK,CAAA,CACxCgB,CAAAA,CAAW,IAAI,KAAKjB,CAAAA,CAAMC,CAAAA,CAAO,CAAC,CAAA,CAAE,QAAO,CAE3CiB,CAAAA,CAAWC,aAAAA,CAAQ,IAAM,CAC9B,IAAMC,CAAAA,CAA6B,EAAC,CACpC,OAAAf,CAAAA,CAAO,OAAA,CAASgB,CAAAA,EAAY,CACtBD,EAAIC,CAAAA,CAAG,IAAI,CAAA,GAAGD,CAAAA,CAAIC,EAAG,IAAI,CAAA,CAAI,EAAC,CAAA,CACnCD,EAAIC,CAAAA,CAAG,IAAI,CAAA,CAAE,IAAA,CAAKA,CAAE,EACrB,CAAC,CAAA,CACMD,CACR,EAAG,CAACf,CAAM,CAAC,CAAA,CAEX,SAASiB,CAAAA,EAAa,CACjBrB,CAAAA,GAAU,CAAA,EACbY,EAAS,EAAE,CAAA,CACXF,CAAAA,CAASY,CAAAA,EAAcA,EAAI,CAAC,CAAA,EAE5BV,CAAAA,CAAUW,CAAAA,EAAcA,EAAI,CAAC,EAE/B,CAEA,SAASC,GAAa,CACjBxB,CAAAA,GAAU,EAAA,EACbY,CAAAA,CAAS,CAAC,CAAA,CACVF,CAAAA,CAASY,CAAAA,EAAcA,CAAAA,CAAI,CAAC,CAAA,EAE5BV,CAAAA,CAAUW,CAAAA,EAAcA,CAAAA,CAAI,CAAC,EAE/B,CAEA,SAASE,CAAAA,EAAc,CACtBf,CAAAA,CAAQF,CAAAA,CAAS,WAAA,EAAa,EAC9BI,CAAAA,CAASJ,CAAAA,CAAS,QAAA,EAAU,EAC5BM,CAAAA,CAAYL,CAAQ,EACrB,CAEA,SAASiB,CAAAA,CAAaC,CAAAA,CAAiB,CACtC,IAAIC,EAAYX,CAAAA,CAASU,CAAO,CAAA,EAAK,GAKrC,GAJKpB,CAAAA,GACJqB,CAAAA,CAAYA,CAAAA,CAAU,OAAQC,CAAAA,EAAW,CAACA,CAAAA,CAAE,IAAI,GAG7CxB,CAAAA,GAAS,OAAA,CACZ,OAAIuB,CAAAA,CAAU,SAAW,CAAA,CAAU,IAAA,CAGlCE,cAAAA,CAAC,KAAA,CAAA,CAAI,SAAA,CAAU,2BAAA,CACb,QAAA,CAAAF,CAAAA,CAAU,IAAI,CAACR,CAAAA,CAASW,CAAAA,GACxBD,cAAAA,CAAC,OAEA,OAAA,CAAUD,CAAAA,EAAM,CACfA,CAAAA,CAAE,iBAAgB,CAClBvB,CAAAA,GAAec,CAAE,EAClB,EACA,SAAA,CAAW,CAAA,oCAAA,EAAuCA,CAAAA,CAAG,KAAA,EAAS,aAAa,CAAA,CAAA,CAAA,CALtEW,CAMN,CACA,CAAA,CACF,EAIF,IAAMC,CAAAA,CAAM3B,CAAAA,GAAS,OAAA,CAAU,EAAI,CAAA,CAEnC,OACCyB,cAAAA,CAAC,KAAA,CAAA,CAAI,UAAU,gBAAA,CACb,QAAA,CAAAF,CAAAA,CAAU,KAAA,CAAM,EAAGI,CAAG,CAAA,CAAE,GAAA,CAAI,CAACZ,EAASW,CAAAA,GACtCD,cAAAA,CAAC,KAAA,CAAA,CAEA,OAAA,CAAUD,GAAM,CACfA,CAAAA,CAAE,eAAA,EAAgB,CAClBvB,IAAec,CAAE,EAClB,CAAA,CACA,SAAA,CAAW,kEAAkEA,CAAAA,CAAG,KAAA,EAAS,aAAa,CAAA,CAAA,CAErG,SAAAA,CAAAA,CAAG,KAAA,CAAA,CAPCW,CAQN,CACA,EACF,CAEF,CAEA,IAAME,CAAAA,CAAa5B,IAAS,OAAA,CAAU,MAAA,CAASA,CAAAA,GAAS,QAAA,CAAW,OAAS,MAAA,CAE5E,OACC6B,eAAAA,CAAC,KAAA,CAAA,CAAI,UAAU,yDAAA,CACd,QAAA,CAAA,CAAAA,eAAAA,CAAC,KAAA,CAAA,CAAI,UAAU,wCAAA,CACd,QAAA,CAAA,CAAAA,eAAAA,CAAC,KAAA,CAAA,CAAI,UAAU,YAAA,CACd,QAAA,CAAA,CAAAJ,cAAAA,CAAC,QAAA,CAAA,CAAO,QAAST,CAAAA,CAAY,SAAA,CAAU,+BAAA,CAAgC,QAAA,CAAA,MAAA,CAEvE,EACAS,cAAAA,CAAC,QAAA,CAAA,CAAO,OAAA,CAASN,CAAAA,CAAY,UAAU,+BAAA,CAAgC,QAAA,CAAA,MAAA,CAEvE,CAAA,CACAM,cAAAA,CAAC,UAAO,OAAA,CAASL,CAAAA,CAAa,SAAA,CAAU,0CAAA,CAA2C,iBAEnF,CAAA,CAAA,CACD,CAAA,CAEAS,eAAAA,CAAC,KAAA,CAAA,CAAI,UAAU,YAAA,CACd,QAAA,CAAA,CAAAJ,cAAAA,CAAC,QAAA,CAAA,CAAO,MAAO9B,CAAAA,CAAO,QAAA,CAAW6B,CAAAA,EAAMjB,CAAAA,CAAS,OAAOiB,CAAAA,CAAE,MAAA,CAAO,KAAK,CAAC,EAAG,SAAA,CAAU,0BAAA,CACjF,QAAA,CAAAlC,EAAAA,CAAO,IAAI,CAAC4B,CAAAA,CAAGQ,CAAAA,GACfD,cAAAA,CAAC,UAAe,KAAA,CAAOC,CAAAA,CACrB,QAAA,CAAAR,CAAAA,CAAAA,CADWQ,CAEb,CACA,CAAA,CACF,CAAA,CAEAD,eAAC,OAAA,CAAA,CAAM,IAAA,CAAK,QAAA,CAAS,KAAA,CAAO/B,EAAM,QAAA,CAAW8B,CAAAA,EAAMnB,CAAAA,CAAQ,MAAA,CAAOmB,EAAE,MAAA,CAAO,KAAK,CAAC,CAAA,CAAG,UAAU,+BAAA,CAAgC,CAAA,CAAA,CAC/H,CAAA,CAAA,CACD,CAAA,CAEAC,eAAC,KAAA,CAAA,CAAI,SAAA,CAAU,qDAAA,CACb,QAAA,CAAAlC,GAAU,GAAA,CAAI,CAACM,CAAAA,CAAK6B,CAAAA,GACpBD,eAAC,KAAA,CAAA,CAAY,SAAA,CAAW,CAAA,KAAA,EAAQC,CAAAA,GAAM,EAAI,cAAA,CAAiB,EAAE,CAAA,CAAA,CAC3D,QAAA,CAAA7B,GADQ6B,CAEV,CACA,CAAA,CACF,CAAA,CAEAD,eAAC,KAAA,CAAA,CAAI,SAAA,CAAU,kBAAA,CACb,QAAA,CAAA,KAAA,CAAM,KAAK,CAAE,MAAA,CAAQ,EAAG,CAAC,EAAE,GAAA,CAAI,CAACK,CAAAA,CAAGC,CAAAA,GAAU,CAC7C,IAAMC,CAAAA,CAAYD,CAAAA,CAAQpB,CAAAA,CACpBsB,EAAgBxC,EAAAA,CAAeC,CAAAA,CAAMC,CAAAA,GAAU,CAAA,CAAI,GAAKA,CAAAA,CAAQ,CAAC,CAAA,CAEnEE,CAAAA,CACAqC,EAAevC,CAAAA,CACfwC,CAAAA,CAAczC,CAAAA,CACd0C,CAAAA,CAAiB,KAEjBJ,CAAAA,CAAY,CAAA,EACfnC,CAAAA,CAAMoC,CAAAA,CAAgBD,EAAY,CAAA,CAClCE,CAAAA,CAAevC,CAAAA,GAAU,CAAA,CAAI,GAAKA,CAAAA,CAAQ,CAAA,CAC1CwC,CAAAA,CAAcxC,CAAAA,GAAU,EAAID,CAAAA,CAAO,CAAA,CAAIA,CAAAA,CACvC0C,CAAAA,CAAiB,OACPJ,CAAAA,EAAatB,CAAAA,EACvBb,CAAAA,CAAMmC,CAAAA,CAAYtB,EAAc,CAAA,CAChCwB,CAAAA,CAAevC,CAAAA,GAAU,EAAA,CAAK,EAAIA,CAAAA,CAAQ,CAAA,CAC1CwC,CAAAA,CAAcxC,CAAAA,GAAU,GAAKD,CAAAA,CAAO,CAAA,CAAIA,CAAAA,CACxC0C,CAAAA,CAAiB,OAEjBvC,CAAAA,CAAMmC,CAAAA,CAAY,CAAA,CAGnB,IAAMV,EAAU1B,EAAAA,CAAWuC,CAAAA,CAAaD,CAAAA,CAAcrC,CAAG,EACnDwC,EAAAA,CAAUf,CAAAA,GAAYlB,CAAAA,CACtBkC,EAAAA,CAAahB,IAAYd,CAAAA,CAGzB+B,CAAAA,CADUR,CAAAA,CAAQ,CAAA,GACO,EAE/B,OACCF,eAAAA,CAAC,KAAA,CAAA,CAEA,OAAA,CAAS,IAAMpB,CAAAA,CAAYa,CAAO,CAAA,CAClC,SAAA,CAAW,sCAAsCM,CAAU;AAAA,OAAA,EACzDU,EAAAA,CAAa,cAAgB,EAAE;AAAA,OAAA,EAC/BD,EAAAA,CAAU,uBAAyB,EAAE;AAAA,OAAA,EACrCE,CAAAA,CAAa,YAAc,EAAE;AAAA,OAAA,EAC5BH,CAAAA,CAA8C,EAAA,CAA7B,0BAA+B,CAAA,CAAA,CAEnD,QAAA,CAAA,CAAAX,eAAC,KAAA,CAAA,CAAI,SAAA,CAAW,CAAA,oBAAA,EAAuBc,CAAAA,CAAa,cAAA,CAAiB,EAAE,GAAK,QAAA,CAAA1C,CAAAA,CAAI,CAAA,CAE/EuC,CAAAA,EAAkBf,CAAAA,CAAaC,CAAO,CAAA,CAEtCpB,CAAAA,EAAWkC,CAAAA,EAAkBxB,CAAAA,CAASU,CAAO,CAAA,EAAG,IAAA,CAAME,EAAAA,EAAWA,GAAE,IAAI,CAAA,EAAKC,cAAAA,CAAC,MAAA,CAAA,CAAK,SAAA,CAAU,qDAAA,CAAsD,QAAA,CAAA,IAAA,CAAE,CAAA,CAAA,CAAA,CAZhJM,CAaN,CAEF,CAAC,CAAA,CACF,CAAA,CAAA,CACD,CAEF,EC1MO,IAAMS,CAAAA,CAAgC,CAC5C,GAAA,CAAQ,CACP,OAAA,CAAS,GACT,MAAA,CAAQ,EAAA,CACR,IAAA,CAAM,EAAA,CACN,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,KAAA,CAAO,EAAA,CACP,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EAAA,CACT,MAAO,EAAA,CACP,IAAA,CAAM,EAAA,CACN,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EACV,CAAA,CACA,IAAA,CAAQ,CACP,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,KAAM,EAAA,CACN,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,KAAA,CAAO,EAAA,CACP,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EAAA,CACT,KAAA,CAAO,EAAA,CACP,IAAA,CAAM,GACN,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EACV,CAAA,CACA,IAAA,CAAQ,CACP,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,IAAA,CAAM,EAAA,CACN,OAAA,CAAS,GACT,MAAA,CAAQ,EAAA,CACR,KAAA,CAAO,EAAA,CACP,MAAA,CAAQ,EAAA,CACR,QAAS,EAAA,CACT,KAAA,CAAO,EAAA,CACP,IAAA,CAAM,EAAA,CACN,MAAA,CAAQ,GACR,OAAA,CAAS,EACV,CAAA,CACA,IAAA,CAAQ,CACP,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,IAAA,CAAM,EAAA,CACN,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,GACR,KAAA,CAAO,EAAA,CACP,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EAAA,CACT,KAAA,CAAO,EAAA,CACP,IAAA,CAAM,EAAA,CACN,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EACV,EACA,IAAA,CAAQ,CACP,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,IAAA,CAAM,EAAA,CACN,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,KAAA,CAAO,EAAA,CACP,OAAQ,EAAA,CACR,OAAA,CAAS,EAAA,CACT,KAAA,CAAO,EAAA,CACP,IAAA,CAAM,EAAA,CACN,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EACV,CAAA,CACA,IAAA,CAAQ,CACP,QAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,IAAA,CAAM,EAAA,CACN,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,KAAA,CAAO,EAAA,CACP,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,GACT,KAAA,CAAO,EAAA,CACP,IAAA,CAAM,EAAA,CACN,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EACV,CAAA,CACA,IAAA,CAAQ,CACP,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,GACR,IAAA,CAAM,EAAA,CACN,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,KAAA,CAAO,EAAA,CACP,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EAAA,CACT,KAAA,CAAO,EAAA,CACP,KAAM,EAAA,CACN,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EACV,CAAA,CACA,KAAQ,CACP,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,IAAA,CAAM,GACN,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,KAAA,CAAO,EAAA,CACP,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EAAA,CACT,KAAA,CAAO,EAAA,CACP,IAAA,CAAM,EAAA,CACN,OAAQ,EAAA,CACR,OAAA,CAAS,EACV,CAAA,CACA,IAAA,CAAQ,CACP,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,IAAA,CAAM,EAAA,CACN,OAAA,CAAS,EAAA,CACT,OAAQ,EAAA,CACR,KAAA,CAAO,EAAA,CACP,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EAAA,CACT,KAAA,CAAO,EAAA,CACP,IAAA,CAAM,EAAA,CACN,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EACV,CAAA,CACA,IAAA,CAAQ,CACP,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,IAAA,CAAM,EAAA,CACN,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,KAAA,CAAO,GACP,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EAAA,CACT,KAAA,CAAO,EAAA,CACP,IAAA,CAAM,EAAA,CACN,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EACV,CAAA,CACA,IAAA,CAAQ,CACP,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,IAAA,CAAM,EAAA,CACN,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,KAAA,CAAO,EAAA,CACP,MAAA,CAAQ,EAAA,CACR,QAAS,EAAA,CACT,KAAA,CAAO,EAAA,CACP,IAAA,CAAM,EAAA,CACN,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EACV,CAAA,CACA,IAAA,CAAQ,CACP,OAAA,CAAS,EAAA,CACT,OAAQ,EAAA,CACR,IAAA,CAAM,EAAA,CACN,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,GACR,KAAA,CAAO,EAAA,CACP,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EAAA,CACT,MAAO,EAAA,CACP,IAAA,CAAM,EAAA,CACN,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EACV,CAAA,CACA,IAAA,CAAQ,CACP,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,KAAM,EAAA,CACN,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,KAAA,CAAO,EAAA,CACP,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EAAA,CACT,KAAA,CAAO,EAAA,CACP,IAAA,CAAM,GACN,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EACV,CAAA,CACA,IAAA,CAAQ,CACP,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,IAAA,CAAM,EAAA,CACN,OAAA,CAAS,GACT,MAAA,CAAQ,EAAA,CACR,KAAA,CAAO,EAAA,CACP,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EAAA,CACT,KAAA,CAAO,EAAA,CACP,IAAA,CAAM,EAAA,CACN,MAAA,CAAQ,EAAA,CACR,QAAS,EACV,CAAA,CACA,IAAA,CAAQ,CACP,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,IAAA,CAAM,EAAA,CACN,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,MAAO,EAAA,CACP,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EAAA,CACT,KAAA,CAAO,EAAA,CACP,IAAA,CAAM,EAAA,CACN,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EACV,CAAA,CACA,KAAQ,CACP,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,IAAA,CAAM,EAAA,CACN,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,KAAA,CAAO,EAAA,CACP,MAAA,CAAQ,GACR,OAAA,CAAS,EAAA,CACT,KAAA,CAAO,EAAA,CACP,IAAA,CAAM,EAAA,CACN,OAAQ,EAAA,CACR,OAAA,CAAS,EACV,CAAA,CACA,IAAA,CAAQ,CACP,QAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,IAAA,CAAM,EAAA,CACN,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,KAAA,CAAO,EAAA,CACP,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,GACT,KAAA,CAAO,EAAA,CACP,IAAA,CAAM,EAAA,CACN,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EACV,CAAA,CACA,IAAA,CAAQ,CACP,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,GACR,IAAA,CAAM,EAAA,CACN,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,KAAA,CAAO,EAAA,CACP,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EAAA,CACT,KAAA,CAAO,EAAA,CACP,KAAM,EAAA,CACN,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EACV,CAAA,CACA,IAAA,CAAQ,CACP,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,IAAA,CAAM,EAAA,CACN,QAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,KAAA,CAAO,EAAA,CACP,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EAAA,CACT,KAAA,CAAO,EAAA,CACP,IAAA,CAAM,EAAA,CACN,MAAA,CAAQ,GACR,OAAA,CAAS,EACV,CAAA,CACA,IAAA,CAAQ,CACP,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,IAAA,CAAM,EAAA,CACN,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,GACR,KAAA,CAAO,EAAA,CACP,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EAAA,CACT,KAAA,CAAO,EAAA,CACP,IAAA,CAAM,EAAA,CACN,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EACV,EACA,IAAA,CAAQ,CACP,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,KAAM,EAAA,CACN,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,KAAA,CAAO,GACP,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EAAA,CACT,KAAA,CAAO,EAAA,CACP,IAAA,CAAM,EAAA,CACN,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EACV,CAAA,CACA,IAAA,CAAQ,CACP,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,IAAA,CAAM,EAAA,CACN,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,KAAA,CAAO,EAAA,CACP,MAAA,CAAQ,EAAA,CACR,QAAS,EAAA,CACT,KAAA,CAAO,EAAA,CACP,IAAA,CAAM,EAAA,CACN,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EACV,CAAA,CACA,IAAA,CAAQ,CACP,OAAA,CAAS,EAAA,CACT,OAAQ,EAAA,CACR,IAAA,CAAM,EAAA,CACN,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,KAAA,CAAO,EAAA,CACP,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EAAA,CACT,KAAA,CAAO,GACP,IAAA,CAAM,EAAA,CACN,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EACV,CAAA,CACA,IAAA,CAAQ,CACP,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,IAAA,CAAM,GACN,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,KAAA,CAAO,EAAA,CACP,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EAAA,CACT,KAAA,CAAO,EAAA,CACP,IAAA,CAAM,EAAA,CACN,OAAQ,EAAA,CACR,OAAA,CAAS,EACV,CAAA,CACA,IAAA,CAAQ,CACP,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,IAAA,CAAM,EAAA,CACN,OAAA,CAAS,EAAA,CACT,OAAQ,EAAA,CACR,KAAA,CAAO,EAAA,CACP,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,GACT,KAAA,CAAO,EAAA,CACP,IAAA,CAAM,EAAA,CACN,MAAA,CAAQ,EAAA,CACR,QAAS,EACV,CAAA,CACA,IAAA,CAAQ,CACP,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,IAAA,CAAM,EAAA,CACN,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,MAAO,EAAA,CACP,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EAAA,CACT,KAAA,CAAO,EAAA,CACP,IAAA,CAAM,EAAA,CACN,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EACV,CAAA,CACA,KAAQ,CACP,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,IAAA,CAAM,EAAA,CACN,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,KAAA,CAAO,EAAA,CACP,MAAA,CAAQ,GACR,OAAA,CAAS,EAAA,CACT,KAAA,CAAO,EAAA,CACP,IAAA,CAAM,EAAA,CACN,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EACV,CAAA,CACA,IAAA,CAAQ,CACP,OAAA,CAAS,GACT,MAAA,CAAQ,EAAA,CACR,IAAA,CAAM,EAAA,CACN,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,KAAA,CAAO,EAAA,CACP,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EAAA,CACT,MAAO,EAAA,CACP,IAAA,CAAM,EAAA,CACN,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EACV,CAAA,CACA,IAAA,CAAQ,CACP,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,KAAM,EAAA,CACN,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,KAAA,CAAO,EAAA,CACP,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EAAA,CACT,KAAA,CAAO,EAAA,CACP,IAAA,CAAM,GACN,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EACV,CAAA,CACA,IAAA,CAAQ,CACP,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,IAAA,CAAM,EAAA,CACN,OAAA,CAAS,GACT,MAAA,CAAQ,EAAA,CACR,KAAA,CAAO,EAAA,CACP,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EAAA,CACT,KAAA,CAAO,EAAA,CACP,IAAA,CAAM,EAAA,CACN,MAAA,CAAQ,EAAA,CACR,QAAS,EACV,CAAA,CACA,IAAA,CAAQ,CACP,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,IAAA,CAAM,EAAA,CACN,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,MAAO,EAAA,CACP,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EAAA,CACT,KAAA,CAAO,EAAA,CACP,IAAA,CAAM,EAAA,CACN,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EACV,CAAA,CACA,KAAQ,CACP,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,IAAA,CAAM,EAAA,CACN,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,KAAA,CAAO,EAAA,CACP,MAAA,CAAQ,GACR,OAAA,CAAS,EAAA,CACT,KAAA,CAAO,EAAA,CACP,IAAA,CAAM,EAAA,CACN,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EACV,CAAA,CACA,IAAA,CAAQ,CACP,OAAA,CAAS,GACT,MAAA,CAAQ,EAAA,CACR,IAAA,CAAM,EAAA,CACN,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,KAAA,CAAO,EAAA,CACP,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EAAA,CACT,MAAO,EAAA,CACP,IAAA,CAAM,EAAA,CACN,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EACV,CAAA,CACA,IAAA,CAAQ,CACP,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,KAAM,EAAA,CACN,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,KAAA,CAAO,GACP,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EAAA,CACT,KAAA,CAAO,EAAA,CACP,KAAM,EAAA,CACN,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EACV,CAAA,CACA,IAAA,CAAQ,CACP,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,IAAA,CAAM,EAAA,CACN,QAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,KAAA,CAAO,EAAA,CACP,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EAAA,CACT,KAAA,CAAO,EAAA,CACP,IAAA,CAAM,EAAA,CACN,MAAA,CAAQ,GACR,OAAA,CAAS,EACV,CAAA,CACA,IAAA,CAAQ,CACP,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,IAAA,CAAM,EAAA,CACN,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,GACR,KAAA,CAAO,EAAA,CACP,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EAAA,CACT,KAAA,CAAO,EAAA,CACP,IAAA,CAAM,EAAA,CACN,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EACV,EACA,IAAA,CAAQ,CACP,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,IAAA,CAAM,EAAA,CACN,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,KAAA,CAAO,EAAA,CACP,OAAQ,EAAA,CACR,OAAA,CAAS,EAAA,CACT,KAAA,CAAO,EAAA,CACP,IAAA,CAAM,EAAA,CACN,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EACV,CAAA,CACA,IAAA,CAAQ,CACP,QAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,IAAA,CAAM,EAAA,CACN,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,KAAA,CAAO,EAAA,CACP,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,GACT,KAAA,CAAO,EAAA,CACP,IAAA,CAAM,EAAA,CACN,MAAA,CAAQ,EAAA,CACR,QAAS,EACV,CAAA,CACA,IAAA,CAAQ,CACP,OAAA,CAAS,EAAA,CACT,OAAQ,EAAA,CACR,IAAA,CAAM,EAAA,CACN,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,KAAA,CAAO,EAAA,CACP,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EAAA,CACT,KAAA,CAAO,GACP,IAAA,CAAM,EAAA,CACN,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EACV,CAAA,CACA,IAAA,CAAQ,CACP,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,IAAA,CAAM,GACN,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,KAAA,CAAO,EAAA,CACP,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EAAA,CACT,KAAA,CAAO,EAAA,CACP,IAAA,CAAM,EAAA,CACN,OAAQ,EAAA,CACR,OAAA,CAAS,EACV,CAAA,CACA,IAAA,CAAQ,CACP,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,IAAA,CAAM,EAAA,CACN,OAAA,CAAS,EAAA,CACT,OAAQ,EAAA,CACR,KAAA,CAAO,EAAA,CACP,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EAAA,CACT,KAAA,CAAO,EAAA,CACP,IAAA,CAAM,EAAA,CACN,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EACV,CAAA,CACA,IAAA,CAAQ,CACP,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,IAAA,CAAM,EAAA,CACN,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,KAAA,CAAO,GACP,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EAAA,CACT,KAAA,CAAO,EAAA,CACP,IAAA,CAAM,EAAA,CACN,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EACV,CAAA,CACA,IAAA,CAAQ,CACP,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,IAAA,CAAM,EAAA,CACN,QAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,KAAA,CAAO,EAAA,CACP,MAAA,CAAQ,GACR,OAAA,CAAS,EAAA,CACT,KAAA,CAAO,EAAA,CACP,IAAA,CAAM,EAAA,CACN,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EACV,CAAA,CACA,IAAA,CAAQ,CACP,OAAA,CAAS,GACT,MAAA,CAAQ,EAAA,CACR,IAAA,CAAM,EAAA,CACN,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,KAAA,CAAO,EAAA,CACP,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EAAA,CACT,MAAO,EAAA,CACP,IAAA,CAAM,EAAA,CACN,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EACV,CAAA,CACA,IAAA,CAAQ,CACP,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,KAAM,EAAA,CACN,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,KAAA,CAAO,EAAA,CACP,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EAAA,CACT,KAAA,CAAO,EAAA,CACP,IAAA,CAAM,GACN,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EACV,CAAA,CACA,IAAA,CAAQ,CACP,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,IAAA,CAAM,EAAA,CACN,OAAA,CAAS,GACT,MAAA,CAAQ,EAAA,CACR,KAAA,CAAO,EAAA,CACP,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EAAA,CACT,KAAA,CAAO,EAAA,CACP,IAAA,CAAM,EAAA,CACN,MAAA,CAAQ,EAAA,CACR,QAAS,EACV,CAAA,CACA,IAAA,CAAQ,CACP,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,IAAA,CAAM,EAAA,CACN,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,MAAO,EAAA,CACP,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EAAA,CACT,KAAA,CAAO,GACP,IAAA,CAAM,EAAA,CACN,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EACV,EACA,IAAA,CAAQ,CACP,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,IAAA,CAAM,EAAA,CACN,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,KAAA,CAAO,EAAA,CACP,OAAQ,EAAA,CACR,OAAA,CAAS,EAAA,CACT,KAAA,CAAO,EAAA,CACP,IAAA,CAAM,EAAA,CACN,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EACV,CAAA,CACA,IAAA,CAAQ,CACP,QAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,IAAA,CAAM,EAAA,CACN,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,KAAA,CAAO,EAAA,CACP,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,GACT,KAAA,CAAO,EAAA,CACP,IAAA,CAAM,EAAA,CACN,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EACV,CAAA,CACA,IAAA,CAAQ,CACP,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,GACR,IAAA,CAAM,EAAA,CACN,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,KAAA,CAAO,EAAA,CACP,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EAAA,CACT,KAAA,CAAO,EAAA,CACP,KAAM,EAAA,CACN,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EACV,CAAA,CACA,IAAA,CAAQ,CACP,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,IAAA,CAAM,EAAA,CACN,QAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,KAAA,CAAO,EAAA,CACP,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EAAA,CACT,KAAA,CAAO,EAAA,CACP,IAAA,CAAM,EAAA,CACN,MAAA,CAAQ,GACR,OAAA,CAAS,EACV,CAAA,CACA,IAAA,CAAQ,CACP,OAAA,CAAS,GACT,MAAA,CAAQ,EAAA,CACR,IAAA,CAAM,EAAA,CACN,OAAA,CAAS,EAAA,CACT,OAAQ,EAAA,CACR,KAAA,CAAO,EAAA,CACP,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EAAA,CACT,KAAA,CAAO,EAAA,CACP,IAAA,CAAM,EAAA,CACN,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EACV,CAAA,CACA,IAAA,CAAQ,CACP,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,IAAA,CAAM,EAAA,CACN,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,KAAA,CAAO,GACP,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EAAA,CACT,KAAA,CAAO,EAAA,CACP,IAAA,CAAM,EAAA,CACN,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EACV,CAAA,CACA,IAAA,CAAQ,CACP,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,IAAA,CAAM,EAAA,CACN,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,KAAA,CAAO,EAAA,CACP,MAAA,CAAQ,EAAA,CACR,QAAS,EAAA,CACT,KAAA,CAAO,EAAA,CACP,IAAA,CAAM,EAAA,CACN,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EACV,CAAA,CACA,IAAA,CAAQ,CACP,OAAA,CAAS,EAAA,CACT,OAAQ,EAAA,CACR,IAAA,CAAM,EAAA,CACN,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,KAAA,CAAO,EAAA,CACP,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EAAA,CACT,KAAA,CAAO,GACP,IAAA,CAAM,EAAA,CACN,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EACV,CAAA,CACA,IAAA,CAAQ,CACP,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,IAAA,CAAM,GACN,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,KAAA,CAAO,EAAA,CACP,OAAQ,EAAA,CACR,OAAA,CAAS,EAAA,CACT,KAAA,CAAO,EAAA,CACP,IAAA,CAAM,GACN,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EACV,CAAA,CACA,IAAA,CAAQ,CACP,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,IAAA,CAAM,EAAA,CACN,OAAA,CAAS,GACT,MAAA,CAAQ,EAAA,CACR,KAAA,CAAO,EAAA,CACP,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EAAA,CACT,KAAA,CAAO,EAAA,CACP,IAAA,CAAM,EAAA,CACN,MAAA,CAAQ,EAAA,CACR,QAAS,EACV,CAAA,CACA,IAAA,CAAQ,CACP,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,IAAA,CAAM,EAAA,CACN,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,MAAO,EAAA,CACP,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EAAA,CACT,KAAA,CAAO,EAAA,CACP,IAAA,CAAM,EAAA,CACN,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EACV,CAAA,CACA,KAAQ,CACP,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,IAAA,CAAM,EAAA,CACN,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,KAAA,CAAO,EAAA,CACP,MAAA,CAAQ,GACR,OAAA,CAAS,EAAA,CACT,KAAA,CAAO,EAAA,CACP,IAAA,CAAM,EAAA,CACN,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EACV,CAAA,CACA,IAAA,CAAQ,CACP,OAAA,CAAS,GACT,MAAA,CAAQ,EAAA,CACR,IAAA,CAAM,EAAA,CACN,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,KAAA,CAAO,EAAA,CACP,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EAAA,CACT,MAAO,EAAA,CACP,IAAA,CAAM,EAAA,CACN,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EACV,CAAA,CACA,IAAA,CAAQ,CACP,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,GACR,IAAA,CAAM,EAAA,CACN,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,KAAA,CAAO,EAAA,CACP,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EAAA,CACT,KAAA,CAAO,EAAA,CACP,KAAM,EAAA,CACN,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EACV,CAAA,CACA,IAAA,CAAQ,CACP,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,IAAA,CAAM,EAAA,CACN,QAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,KAAA,CAAO,EAAA,CACP,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EAAA,CACT,KAAA,CAAO,EAAA,CACP,IAAA,CAAM,EAAA,CACN,MAAA,CAAQ,GACR,OAAA,CAAS,EACV,CAAA,CACA,IAAA,CAAQ,CACP,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,IAAA,CAAM,EAAA,CACN,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,GACR,KAAA,CAAO,EAAA,CACP,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EAAA,CACT,KAAA,CAAO,EAAA,CACP,IAAA,CAAM,EAAA,CACN,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EACV,EACA,IAAA,CAAQ,CACP,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,IAAA,CAAM,EAAA,CACN,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,KAAA,CAAO,EAAA,CACP,OAAQ,EAAA,CACR,OAAA,CAAS,EAAA,CACT,KAAA,CAAO,EAAA,CACP,IAAA,CAAM,EAAA,CACN,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EACV,CAAA,CACA,IAAA,CAAQ,CACP,QAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,IAAA,CAAM,EAAA,CACN,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,KAAA,CAAO,EAAA,CACP,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,GACT,KAAA,CAAO,EAAA,CACP,IAAA,CAAM,EAAA,CACN,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EACV,CAAA,CACA,IAAA,CAAQ,CACP,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,GACR,IAAA,CAAM,EAAA,CACN,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,KAAA,CAAO,EAAA,CACP,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EAAA,CACT,KAAA,CAAO,EAAA,CACP,KAAM,EAAA,CACN,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EACV,CAAA,CACA,IAAA,CAAQ,CACP,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,IAAA,CAAM,EAAA,CACN,QAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,KAAA,CAAO,EAAA,CACP,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EAAA,CACT,KAAA,CAAO,EAAA,CACP,IAAA,CAAM,EAAA,CACN,MAAA,CAAQ,GACR,OAAA,CAAS,EACV,CAAA,CACA,IAAA,CAAQ,CACP,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,IAAA,CAAM,EAAA,CACN,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,GACR,KAAA,CAAO,EAAA,CACP,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EAAA,CACT,KAAA,CAAO,EAAA,CACP,IAAA,CAAM,EAAA,CACN,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EACV,EACA,IAAA,CAAQ,CACP,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,IAAA,CAAM,EAAA,CACN,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,KAAA,CAAO,EAAA,CACP,OAAQ,EAAA,CACR,OAAA,CAAS,EAAA,CACT,KAAA,CAAO,EAAA,CACP,IAAA,CAAM,GACN,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EACV,CAAA,CACA,IAAA,CAAQ,CACP,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,IAAA,CAAM,EAAA,CACN,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,KAAA,CAAO,EAAA,CACP,MAAA,CAAQ,EAAA,CACR,QAAS,EAAA,CACT,KAAA,CAAO,EAAA,CACP,IAAA,CAAM,EAAA,CACN,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EACV,CAAA,CACA,IAAA,CAAQ,CACP,OAAA,CAAS,EAAA,CACT,OAAQ,EAAA,CACR,IAAA,CAAM,EAAA,CACN,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,KAAA,CAAO,EAAA,CACP,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EAAA,CACT,KAAA,CAAO,GACP,IAAA,CAAM,EAAA,CACN,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EACV,CAAA,CACA,IAAA,CAAQ,CACP,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,IAAA,CAAM,GACN,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,KAAA,CAAO,EAAA,CACP,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EAAA,CACT,KAAA,CAAO,EAAA,CACP,IAAA,CAAM,EAAA,CACN,OAAQ,EAAA,CACR,OAAA,CAAS,EACV,CAAA,CACA,IAAA,CAAQ,CACP,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,IAAA,CAAM,EAAA,CACN,OAAA,CAAS,EAAA,CACT,OAAQ,EAAA,CACR,KAAA,CAAO,EAAA,CACP,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EAAA,CACT,KAAA,CAAO,EAAA,CACP,IAAA,CAAM,EAAA,CACN,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EACV,CAAA,CACA,IAAA,CAAQ,CACP,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,GACR,IAAA,CAAM,EAAA,CACN,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,MAAO,EAAA,CACP,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EAAA,CACT,KAAA,CAAO,EAAA,CACP,IAAA,CAAM,EAAA,CACN,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EACV,CAAA,CACA,KAAQ,CACP,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,IAAA,CAAM,EAAA,CACN,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,KAAA,CAAO,EAAA,CACP,MAAA,CAAQ,GACR,OAAA,CAAS,EAAA,CACT,KAAA,CAAO,EAAA,CACP,IAAA,CAAM,EAAA,CACN,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EACV,CAAA,CACA,IAAA,CAAQ,CACP,OAAA,CAAS,GACT,MAAA,CAAQ,EAAA,CACR,IAAA,CAAM,EAAA,CACN,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,KAAA,CAAO,EAAA,CACP,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EAAA,CACT,MAAO,EAAA,CACP,IAAA,CAAM,EAAA,CACN,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EACV,CAAA,CACA,IAAA,CAAQ,CACP,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,KAAM,EAAA,CACN,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,KAAA,CAAO,EAAA,CACP,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EAAA,CACT,KAAA,CAAO,EAAA,CACP,IAAA,CAAM,GACN,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EACV,CAAA,CACA,IAAA,CAAQ,CACP,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,IAAA,CAAM,EAAA,CACN,OAAA,CAAS,GACT,MAAA,CAAQ,EAAA,CACR,KAAA,CAAO,EAAA,CACP,MAAA,CAAQ,EAAA,CACR,QAAS,EAAA,CACT,KAAA,CAAO,EAAA,CACP,IAAA,CAAM,EAAA,CACN,MAAA,CAAQ,GACR,OAAA,CAAS,EACV,CAAA,CACA,IAAA,CAAQ,CACP,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,IAAA,CAAM,EAAA,CACN,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,GACR,KAAA,CAAO,EAAA,CACP,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EAAA,CACT,KAAA,CAAO,EAAA,CACP,IAAA,CAAM,EAAA,CACN,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EACV,EACA,IAAA,CAAQ,CACP,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,IAAA,CAAM,EAAA,CACN,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,KAAA,CAAO,EAAA,CACP,OAAQ,EAAA,CACR,OAAA,CAAS,EAAA,CACT,KAAA,CAAO,EAAA,CACP,IAAA,CAAM,EAAA,CACN,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EACV,CAAA,CACA,IAAA,CAAQ,CACP,QAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,IAAA,CAAM,EAAA,CACN,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,KAAA,CAAO,EAAA,CACP,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,GACT,KAAA,CAAO,EAAA,CACP,IAAA,CAAM,EAAA,CACN,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EACV,CAAA,CACA,IAAA,CAAQ,CACP,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,GACR,IAAA,CAAM,EAAA,CACN,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,KAAA,CAAO,EAAA,CACP,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EAAA,CACT,KAAA,CAAO,EAAA,CACP,KAAM,EAAA,CACN,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EACV,CAAA,CACA,KAAQ,CACP,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,IAAA,CAAM,GACN,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,KAAA,CAAO,EAAA,CACP,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EAAA,CACT,KAAA,CAAO,EAAA,CACP,IAAA,CAAM,EAAA,CACN,OAAQ,EAAA,CACR,OAAA,CAAS,EACV,CAAA,CACA,IAAA,CAAQ,CACP,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,IAAA,CAAM,EAAA,CACN,OAAA,CAAS,EAAA,CACT,OAAQ,EAAA,CACR,KAAA,CAAO,EAAA,CACP,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EAAA,CACT,KAAA,CAAO,EAAA,CACP,IAAA,CAAM,EAAA,CACN,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EACV,CAAA,CACA,IAAA,CAAQ,CACP,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,IAAA,CAAM,EAAA,CACN,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,KAAA,CAAO,GACP,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EAAA,CACT,KAAA,CAAO,EAAA,CACP,IAAA,CAAM,EAAA,CACN,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EACV,CAAA,CACA,IAAA,CAAQ,CACP,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,IAAA,CAAM,EAAA,CACN,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,KAAA,CAAO,EAAA,CACP,MAAA,CAAQ,EAAA,CACR,QAAS,EAAA,CACT,KAAA,CAAO,EAAA,CACP,IAAA,CAAM,EAAA,CACN,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EACV,CAAA,CACA,IAAA,CAAQ,CACP,OAAA,CAAS,EAAA,CACT,OAAQ,EAAA,CACR,IAAA,CAAM,EAAA,CACN,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,GACR,KAAA,CAAO,EAAA,CACP,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EAAA,CACT,MAAO,EAAA,CACP,IAAA,CAAM,EAAA,CACN,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EACV,CAAA,CACA,IAAA,CAAQ,CACP,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,KAAM,EAAA,CACN,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,KAAA,CAAO,EAAA,CACP,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EAAA,CACT,KAAA,CAAO,EAAA,CACP,IAAA,CAAM,GACN,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EACV,CAAA,CACA,IAAA,CAAQ,CACP,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,IAAA,CAAM,EAAA,CACN,OAAA,CAAS,GACT,MAAA,CAAQ,EAAA,CACR,KAAA,CAAO,EAAA,CACP,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EAAA,CACT,KAAA,CAAO,EAAA,CACP,IAAA,CAAM,EAAA,CACN,MAAA,CAAQ,EAAA,CACR,QAAS,EACV,CAAA,CACA,IAAA,CAAQ,CACP,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,IAAA,CAAM,EAAA,CACN,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,MAAO,EAAA,CACP,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EAAA,CACT,KAAA,CAAO,EAAA,CACP,IAAA,CAAM,EAAA,CACN,MAAA,CAAQ,EAAA,CACR,OAAA,CAAS,EACV,CAAA,CACA,KAAQ,CACP,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,IAAA,CAAM,EAAA,CACN,OAAA,CAAS,EAAA,CACT,MAAA,CAAQ,EAAA,CACR,KAAA,CAAO,EAAA,CACP,MAAA,CAAQ,GACR,OAAA,CAAS,EAAA,CACT,KAAA,CAAO,EAAA,CACP,IAAA,CAAM,EAAA,CACN,OAAQ,EAAA,CACR,OAAA,CAAS,EACV,CACD,CAAA,CAEaC,CAAAA,CAAS,MACTC,CAAAA,CAAgB,GAAA,CAChBC,CAAAA,CAAW,CAAE,IAAA,CAAM,IAAA,CAAM,KAAA,CAAO,CAAA,CAAG,IAAA,CAAM,EAAW,CAAA,CAEtC,MAAA,CAAO,IAAA,CAAKH,CAAa,CAAA,CAAE,EAAA,CAAG,EAAE,EC3tCpD,IAAMI,EAAAA,CAAQC,CAAAA,EAAsB,CAC1C,IAAMC,CAAAA,CAAKC,CAAAA,CAAcF,CAAK,CAAA,CAE9B,GAAI,CAACL,CAAAA,CAAc,MAAA,CAAOM,CAAAA,CAAG,IAAI,CAAC,CAAA,CAAG,MAAM,IAAI,KAAA,CAAM,wBAAwB,CAAA,CAC7E,GAAIA,CAAAA,CAAG,IAAA,CAAOJ,CAAAA,CAAe,MAAM,IAAI,KAAA,CAAM,mCAAmC,CAAA,CAEhF,IAAIM,CAAAA,CAAY,CAAA,CAEhB,IAAA,IAAS/B,CAAAA,CAAIyB,CAAAA,CAAezB,EAAI6B,CAAAA,CAAG,IAAA,CAAM7B,CAAAA,EAAAA,CACxC+B,CAAAA,EAAaC,CAAAA,CAAe,MAAA,CAAOhC,CAAC,CAAC,CAAA,CAGtC,IAAA,IAASC,CAAAA,CAAI,CAAA,CAAGA,CAAAA,CAAI4B,CAAAA,CAAG,MAAO5B,CAAAA,EAAAA,CAC7B8B,CAAAA,EAAaE,CAAAA,CAAcJ,CAAAA,CAAG,IAAA,CAAM5B,CAAC,CAAA,CAGtC8B,CAAAA,EAAaF,CAAAA,CAAG,GAAA,CAAM,CAAA,CACtB,IAAMK,CAAAA,CAASC,CAAAA,CAAoBJ,EAAYP,CAAAA,CAEzCY,CAAAA,CAAK,IAAI,IAAA,CAAKF,CAAM,CAAA,CAC1B,OAAAE,CAAAA,CAAG,QAAA,CAAS,CAAA,CAAG,CAAA,CAAG,CAAA,CAAG,CAAC,CAAA,CAEfC,EAAgBD,CAAAA,CAAG,WAAA,EAAY,CAAGA,CAAAA,CAAG,QAAA,EAAS,CAAI,EAAGA,CAAAA,CAAG,OAAA,EAAS,CACzE,CAAA,CAEaE,CAAAA,CAAQV,GAAuB,CAC3C,IAAMQ,CAAAA,CAAKN,CAAAA,CAAcF,CAAK,CAAA,CAExBM,CAAAA,CAAS,IAAI,IAAA,CAAKE,CAAAA,CAAG,IAAA,CAAMA,CAAAA,CAAG,KAAA,CAAQ,CAAA,CAAGA,EAAG,GAAG,CAAA,CAAE,OAAA,EAAQ,CAC3DG,CAAAA,CAAY,IAAA,CAAK,KAAA,CAAA,CAAOL,CAAAA,CAASC,CAAAA,EAAqBX,CAAM,CAAA,CAEhE,GAAIe,CAAAA,CAAY,CAAA,CAAG,MAAM,IAAI,KAAA,CAAM,mCAAmC,CAAA,CAEtE,IAAI9D,CAAAA,CAAOgD,CAAAA,CAEX,KAAOO,CAAAA,CAAe,MAAA,CAAOvD,CAAI,CAAC,CAAA,EAAK8D,CAAAA,EAAaP,EAAe,MAAA,CAAOvD,CAAI,CAAC,CAAA,EAC9E8D,CAAAA,EAAaP,CAAAA,CAAe,MAAA,CAAOvD,CAAI,CAAC,CAAA,CACxCA,CAAAA,EAAAA,CAGD,GAAI,CAAC8C,CAAAA,CAAc,OAAO9C,CAAI,CAAC,CAAA,CAAG,MAAM,IAAI,KAAA,CAAM,mCAAmC,CAAA,CAErF,IAAIC,CAAAA,CAAQ,CAAA,CAEZ,KAAOA,CAAAA,EAAS,EAAA,EAAI,CACnB,IAAM8D,CAAAA,CAAMP,CAAAA,CAAcxD,CAAAA,CAAMC,CAAK,CAAA,CAErC,GAAI6D,CAAAA,CAAYC,CAAAA,CAAK,CACpB,IAAM5D,CAAAA,CAAM2D,CAAAA,CAAY,CAAA,CACxB,OAAOF,CAAAA,CAAgB5D,CAAAA,CAAMC,CAAAA,CAAOE,CAAG,CACxC,CAEA2D,CAAAA,EAAaC,CAAAA,CACb9D,CAAAA,GACD,CAEA,MAAM,IAAI,KAAA,CAAM,oBAAoB,CACrC,CAAA,CAEa+D,EAAAA,CAAcb,CAAAA,EAAuB,CACjD,IAAMc,CAAAA,CAAIC,EAAAA,CAAiBf,CAAAA,EAASU,CAAAA,EAAM,CAAA,CAC1C,OAAAI,CAAAA,CAAE,QAAA,CAAS,EAAG,CAAA,CAAG,CAAA,CAAG,CAAC,CAAA,CACdA,CACR,CAAA,CAmBO,IAAMtB,EAAAA,CAAWQ,CAAAA,EAA+B,CACtD,GAAI,CAACA,CAAAA,CAAO,MAAM,IAAI,KAAA,CAAM,mBAAmB,CAAA,CAE/C,IAAMgB,CAAAA,CAAQH,EAAAA,EAAW,CACnBC,CAAAA,CAAID,EAAAA,CAAWb,CAAK,CAAA,CAC1B,OAAOgB,CAAAA,CAAM,OAAA,KAAcF,CAAAA,CAAE,OAAA,EAC9B,CAAA,CAYO,IAAMG,CAAAA,CAAU,CAACC,CAAAA,CAAmBC,CAAAA,CAAmBC,CAAAA,CAAS,KAAA,GAAmB,CACzF,GAAI,CAACF,GAAS,CAACC,CAAAA,CAAO,MAAM,wBAAA,CAE5B,IAAME,CAAAA,CAAKC,CAAAA,CAAmBJ,CAAK,CAAA,CAC7BK,CAAAA,CAAKD,CAAAA,CAAmBH,CAAK,CAAA,CAEnC,OAAIC,EAAeC,CAAAA,CAAG,OAAA,EAAQ,CAAIE,CAAAA,CAAG,OAAA,EAAQ,CACtCd,CAAAA,CAAgBY,CAAE,CAAA,CAAIZ,CAAAA,CAAgBc,CAAE,CAChD,CAAA,CAYO,IAAMR,GAAoBf,CAAAA,EACzBsB,CAAAA,CAAmBtB,CAAK,CAAA,CAuFzB,IAAMwB,EAAAA,CAAkB,CAACC,CAAAA,CAAuBC,CAAAA,GAAkC,CACxF,GAAI,CAACD,CAAAA,EAAa,CAACC,EAAS,MAAM,yBAAA,CAElC,IAAMC,CAAAA,CAAQL,CAAAA,CAAmBG,CAAS,CAAA,CACpCG,CAAAA,CAAMN,CAAAA,CAAmBI,CAAO,CAAA,CAEtC,GAAIC,CAAAA,CAAM,OAAA,GAAYC,CAAAA,CAAI,OAAA,EAAQ,CACjC,MAAM,oCAAA,CAGP,IAAMC,EAAkB,EAAC,CACnBC,CAAAA,CAAU,IAAI,IAAA,CAAKH,CAAK,EAE9B,KAAOG,CAAAA,CAAQ,OAAA,EAAQ,EAAKF,CAAAA,CAAI,OAAA,EAAQ,EACvCC,CAAAA,CAAM,IAAA,CAAKpB,CAAAA,CAAgBqB,CAAO,CAAC,CAAA,CACnCA,CAAAA,CAAQ,QAAQA,CAAAA,CAAQ,OAAA,EAAQ,CAAI,CAAC,CAAA,CAGtC,OAAOD,CACR,CAAA,CCtQO,IAAME,CAAAA,CAAc,CAC1B,EAAA,CAAI,CACH,EAAA,CAAI,CAKH,KAAA,CAAO,CAEN,IAAA,CAAM,CAAC,SAAA,CAAW,QAAA,CAAU,OAAQ,SAAA,CAAW,QAAA,CAAU,OAAA,CAAS,QAAA,CAAU,SAAA,CAAW,OAAA,CAAS,MAAA,CAAQ,QAAA,CAAU,SAAS,CAC5H,CAED,CAYD,CAyBD,CAAA,CAEaC,CAAAA,CAAYD,CAAAA,CAAY,EAAA,CAAG,EAAA,CAAG,KAAA,CAAM,IAAA,CAEpCE,EAAY,CAACpF,CAAAA,CAAcC,CAAAA,GAChC6C,CAAAA,CAAc,MAAA,CAAO9C,CAAI,CAAC,CAAA,CAAEmF,CAAAA,CAAUlF,CAAAA,CAAQ,CAAC,CAAC,CAAA,CAG3CwE,CAAAA,CAAqB,CAACtB,CAAAA,CAAoBkC,CAAAA,CAAwB,IAAA,GAAe,CAC7F,GAAI,CAAClC,EAAO,OAAO,IAAI,IAAA,CACvB,GAAIA,CAAAA,YAAiB,IAAA,CAAM,OAAOA,CAAAA,CAClC,GAAI,OAAOA,CAAAA,EAAU,QAAA,CAAU,OAAO,IAAI,IAAA,CAAKA,CAAK,CAAA,CACpD,GAAI,OAAOA,CAAAA,EAAU,QAAA,CAAU,CAC9B,GAAI,MAAA,GAAUA,CAAAA,EAAS,OAAA,GAAWA,CAAAA,EAAS,KAAA,GAASA,CAAAA,EAAS,OAAOA,CAAAA,CAAM,IAAA,EAAS,QAAA,EAAY,OAAOA,CAAAA,CAAM,KAAA,EAAU,UAAY,OAAOA,CAAAA,CAAM,GAAA,EAAQ,QAAA,CAAU,CAChK,GAAIkC,CAAAA,GAAa,IAAA,CAAM,CACtB,IAAMC,CAAAA,CAAUF,CAAAA,CAAUjC,CAAAA,CAAM,IAAA,CAAMA,EAAM,KAAK,CAAA,CAEjD,GAAIA,CAAAA,CAAM,GAAA,CAAM,CAAA,EAAKA,CAAAA,CAAM,GAAA,CAAMmC,CAAAA,CAChC,MAAM,IAAI,KAAA,CAAM,iBAAiB,CAAA,CAGlC,IAAM3B,CAAAA,CAAKT,EAAAA,CAAK,CAAE,IAAA,CAAMC,CAAAA,CAAM,IAAA,CAAM,KAAA,CAAOA,CAAAA,CAAM,KAAA,CAAO,GAAA,CAAKA,CAAAA,CAAM,GAAI,CAAC,CAAA,CACxE,OAAO,IAAI,IAAA,CAAKQ,CAAE,CACnB,CAEA,IAAMM,CAAAA,CAAI,IAAI,IAAA,CAAKd,CAAAA,CAAM,IAAA,CAAMA,CAAAA,CAAM,KAAA,CAAQ,CAAA,CAAGA,EAAM,GAAG,CAAA,CAEzD,GAAIc,CAAAA,CAAE,WAAA,EAAY,GAAMd,CAAAA,CAAM,IAAA,EAAQc,CAAAA,CAAE,QAAA,EAAS,GAAMd,CAAAA,CAAM,KAAA,CAAQ,CAAA,EAAKc,EAAE,OAAA,EAAQ,GAAMd,CAAAA,CAAM,GAAA,CAC/F,MAAM,IAAI,MAAM,iBAAiB,CAAA,CAGlC,OAAOc,CACR,CAEA,GAAI,WAAYd,CAAAA,EAAS,OAAOA,CAAAA,CAAM,MAAA,EAAW,UAAA,CAChD,OAAOA,CAAAA,CAAM,MAAA,EAAO,CAGrB,GAAI,IAAA,GAAQA,CAAAA,EAASA,CAAAA,CAAM,EAAA,YAAc,KACxC,OAAOA,CAAAA,CAAM,EAAA,CAGd,GAAI,IAAA,GAAQA,CAAAA,EAASA,CAAAA,CAAM,EAAA,YAAc,IAAA,CACxC,OAAOA,CAAAA,CAAM,EAEf,CAEA,MAAM,IAAI,KAAA,CAAM,0BAA0B,CAC3C,CAAA,CAMA,IAAMoC,EAAAA,CAAgBL,CAAAA,CAAY,EAAA,CAAG,EAAA,CAAG,KAAA,CAAM,IAAA,CAGjC3B,CAAAA,CAAyC,EAAC,CAEvD,OAAW,CAACvD,CAAAA,CAAMwF,CAAM,CAAA,GAAK,MAAA,CAAO,OAAA,CAAQ1C,CAAa,CAAA,CACxDS,CAAAA,CAAevD,CAAI,CAAA,CAAIuF,EAAAA,CAAc,MAAA,CAAO,CAACE,EAAKjE,CAAAA,GAAMiE,CAAAA,CAAMD,CAAAA,CAAOhE,CAAC,CAAA,CAAG,CAAC,CAAA,CAGpE,IAAMkC,CAAAA,CAAoB,IAAI,IAAA,CAAKT,CAAAA,CAAS,IAAA,CAAMA,CAAAA,CAAS,MAAOA,CAAAA,CAAS,IAAI,CAAA,CAAE,QAAA,CAAS,CAAA,CAAG,CAAA,CAAG,CAAA,CAAG,CAAC,CAAA,CAE9FO,CAAAA,CAAgB,CAACxD,CAAAA,CAAcC,CAAAA,GAA0B,CACrE,IAAMyF,CAAAA,CAAW5C,CAAAA,CAAc,MAAA,CAAO9C,CAAI,CAAC,CAAA,CAC3C,GAAI,CAAC0F,CAAAA,CAAU,MAAM,IAAI,KAAA,CAAM,sBAAsB,CAAA,CACrD,OAAOA,CAAAA,CAASH,EAAAA,CAActF,CAAAA,CAAQ,CAAC,CAAC,CACzC,EAEaoD,CAAAA,CAAiBF,CAAAA,EAAoC,CACjE,IAAMc,CAAAA,CAAIQ,CAAAA,CAAmBtB,CAAK,CAAA,CAClC,OAAAc,CAAAA,CAAE,QAAA,CAAS,CAAA,CAAG,CAAA,CAAG,CAAA,CAAG,CAAC,CAAA,CAEd,CACN,IAAA,CAAMA,CAAAA,CAAE,WAAA,EAAY,CACpB,MAAOA,CAAAA,CAAE,QAAA,EAAS,CAAI,CAAA,CACtB,GAAA,CAAKA,CAAAA,CAAE,OAAA,EACR,CACD,CAAA,CAEaL,CAAAA,CAAkB,CAAC5D,CAAAA,CAA2BC,CAAAA,CAAgBE,IAAyB,CACnG,IAAIwF,CAAAA,CAEJ,OAAI,OAAO3F,CAAAA,EAAS,QAAA,EAAY,OAAOC,CAAAA,EAAU,QAAA,EAAY,OAAOE,CAAAA,EAAQ,QAAA,CAC3EwF,CAAAA,CAAO,CAAE,IAAA,CAAA3F,CAAAA,CAAM,KAAA,CAAAC,CAAAA,CAAO,GAAA,CAAAE,CAAI,CAAA,CAE1BwF,CAAAA,CAAOtC,CAAAA,CAAcrD,CAAkB,CAAA,CAGjC2F,CAAAA,EAAM,IAAA,CAAO,GAAA,CAAM,OAAOA,CAAAA,EAAM,KAAK,CAAA,CAAE,QAAA,CAAS,CAAA,CAAG,GAAG,CAAA,CAAI,GAAA,CAAM,MAAA,CAAOA,CAAAA,EAAM,GAAG,CAAA,CAAE,QAAA,CAAS,CAAA,CAAG,GAAG,CACzG,CAAA,CAEaC,CAAAA,CAAazC,CAAAA,EAAoC,CAC7D,IAAM0C,CAAAA,CAASjC,CAAAA,CAAgBT,CAAmB,CAAA,CAE5C,CAACnD,CAAAA,CAAMC,CAAAA,CAAOE,CAAG,EAAI0F,CAAAA,CAAO,KAAA,CAAM,GAAG,CAAA,CAAE,GAAA,CAAI,MAAM,CAAA,CACvD,OAAO,CAAE,IAAA,CAAA7F,CAAAA,CAAM,KAAA,CAAAC,CAAAA,CAAO,GAAA,CAAAE,CAAI,CAC3B,CAAA,CCjJA,IAAM2F,EAAAA,CAAqB,CAACC,CAAAA,CAAiBC,CAAAA,GAAkB,CAC9D,GAAM,CAACC,CAAAA,CAAUC,CAAW,CAAA,CAAItF,cAAAA,CAA2B,QAAQ,CAAA,CAEnE,OAAAuF,eAAAA,CAAU,IAAM,CACf,GAAI,CAACH,CAAAA,EAAQ,CAACD,CAAAA,CAAW,OAAA,CAAS,OAElC,IAAMK,CAAAA,CAAS,IAAM,CACpB,IAAMC,CAAAA,CAAON,CAAAA,CAAW,QAAQ,qBAAA,EAAsB,CAChDO,CAAAA,CAAa,MAAA,CAAO,WAAA,CAAcD,CAAAA,CAAK,MAAA,CACvCE,CAAAA,CAAaF,CAAAA,CAAK,GAAA,CAEpBC,CAAAA,CAAa,GAAA,EAAOC,CAAAA,CAAaD,CAAAA,CACpCJ,EAAY,KAAK,CAAA,CAEjBA,CAAAA,CAAY,QAAQ,EAEtB,CAAA,CAEA,OAAAE,CAAAA,EAAO,CAEP,MAAA,CAAO,gBAAA,CAAiB,QAAA,CAAUA,CAAAA,CAAQ,IAAI,EAC9C,MAAA,CAAO,gBAAA,CAAiB,QAAA,CAAUA,CAAM,CAAA,CAEjC,IAAM,CACZ,MAAA,CAAO,mBAAA,CAAoB,QAAA,CAAUA,CAAAA,CAAQ,IAAI,CAAA,CACjD,MAAA,CAAO,oBAAoB,QAAA,CAAUA,CAAM,EAC5C,CACD,CAAA,CAAG,CAACJ,CAAAA,CAAMD,CAAU,CAAC,CAAA,CAEdE,CACR,CAAA,CAEMO,EAAAA,CAAgB,CAAC,CACtB,KAAA,CAAAC,CAAAA,CACA,QAAA,CAAAC,CAAAA,CACA,OAAA,CAAAC,CAAAA,CACA,OAAA,CAAAC,CAAAA,CACA,QAAA,CAAAC,CAAAA,CACA,UAAA,CAAAC,CAAAA,CACA,QAAA,CAAAC,CAAAA,CACA,SAAAC,CAAAA,CACA,WAAA,CAAAC,CAAAA,CACA,OAAA,CAAAC,CACD,CAAA,GAWM,CACL,IAAMC,CAAAA,CAAcvB,CAAAA,CAAUa,CAAAA,EAAS5C,CAAAA,EAAM,CAAA,CACvC,CAACuD,CAAAA,CAAQC,CAAS,CAAA,CAAIzG,cAAAA,CAASuG,CAAAA,EAAa,IAAI,CAAA,CAChD,CAACG,CAAAA,CAASC,CAAU,CAAA,CAAI3G,cAAAA,CAASuG,CAAAA,EAAa,KAAK,EACnD,CAACnG,CAAAA,CAAawG,CAAc,CAAA,CAAI5G,cAAAA,CAAS,CAAC,CAAA,CAEhDuF,eAAAA,CAAU,IAAM,CACfqB,CAAAA,CAAepC,CAAAA,CAAUgC,CAAAA,CAAQE,CAAO,CAAC,EAC1C,CAAA,CAAG,CAACA,CAAAA,CAASF,CAAM,CAAC,CAAA,CAEpB,IAAMK,CAAAA,CAAc,CAACC,CAAAA,CAAwB,MAAA,GAAW,CACnDA,CAAAA,GAAS,OACRJ,CAAAA,GAAY,CAAA,EACfC,CAAAA,CAAW,EAAE,CAAA,CACbF,CAAAA,CAAW9F,CAAAA,EAAMA,CAAAA,CAAI,CAAC,CAAA,EAEtBgG,CAAAA,CAAY/F,CAAAA,EAAMA,CAAAA,CAAI,CAAC,EAGpB8F,CAAAA,GAAY,EAAA,EACfC,CAAAA,CAAW,CAAC,CAAA,CACZF,CAAAA,CAAW9F,CAAAA,EAAMA,CAAAA,CAAI,CAAC,CAAA,EAEtBgG,CAAAA,CAAY/F,CAAAA,EAAMA,CAAAA,CAAI,CAAC,EAG1B,CAAA,CAEMmG,CAAAA,CAAgB/F,CAAAA,EACjB,CAAA,EAAAiF,CAAAA,EAAaF,CAAAA,EAAWvC,CAAAA,CAAQuC,CAAAA,CAAS/E,CAAO,CAAA,EAAOgF,CAAAA,EAAWxC,CAAAA,CAAQxC,CAAAA,CAASgF,CAAO,GAAOI,CAAAA,EAAY5C,CAAAA,CAAQ4C,CAAAA,CAAUpF,CAAO,CAAA,CAAA,CAO3I,OACCO,eAAAA,CAAC,KAAA,CAAA,CAAI,SAAA,CAAU,yDAAA,CACd,QAAA,CAAA,CAAAJ,cAAAA,CAAC,OAAA,CAAA,CACC,QAAA,CAAA,CAAA;AAAA;AAAA,GAAA,CAAA,CAGF,CAAA,CACAI,gBAAC,KAAA,CAAA,CAAI,SAAA,CAAU,oCACd,QAAA,CAAA,CAAAJ,cAAAA,CAAC,QAAA,CAAA,CAAO,OAAA,CAAS,IAAM0F,CAAAA,CAAY,MAAM,CAAA,CAAG,SAAA,CAAU,uHAAA,CAAwH,QAAA,CAAA,QAAA,CAE9K,CAAA,CAEAtF,eAAAA,CAAC,OAAI,SAAA,CAAU,YAAA,CACd,QAAA,CAAA,CAAAJ,cAAAA,CAAC,QAAA,CAAA,CACA,KAAA,CAAOqF,EACP,QAAA,CAAWtF,CAAAA,EAAMuF,CAAAA,CAAU,MAAA,CAAOvF,CAAAA,CAAE,MAAA,CAAO,KAAK,CAAC,CAAA,CACjD,SAAA,CAAU,oKAAA,CAET,QAAA,CAAA,MAAA,CAAO,IAAA,CAAKgB,CAAa,CAAA,CAAE,GAAA,CAAKvB,CAAAA,EAChCQ,cAAAA,CAAC,QAAA,CAAA,CAAe,KAAA,CAAOR,EACrB,QAAA,CAAAA,CAAAA,CAAAA,CADWA,CAEb,CACA,CAAA,CACF,CAAA,CAEAQ,eAAC,QAAA,CAAA,CACA,KAAA,CAAOuF,EACP,QAAA,CAAWxF,CAAAA,EAAMyF,EAAW,MAAA,CAAOzF,CAAAA,CAAE,MAAA,CAAO,KAAK,CAAC,CAAA,CAClD,UAAU,oKAAA,CAET,QAAA,CAAAqD,CAAAA,CAAU,GAAA,CAAI,CAAC3D,CAAAA,CAAGQ,IAClBD,cAAAA,CAAC,QAAA,CAAA,CAAe,KAAA,CAAOC,CAAAA,CAAI,CAAA,CACzB,QAAA,CAAAR,GADWA,CAEb,CACA,CAAA,CACF,CAAA,CAAA,CACD,CAAA,CAEAO,cAAAA,CAAC,UAAO,OAAA,CAAS,IAAM0F,CAAAA,CAAY,MAAM,CAAA,CAAG,SAAA,CAAU,wHAAwH,QAAA,CAAA,QAAA,CAE9K,CAAA,CAAA,CACD,CAAA,CAEAtF,eAAAA,CAAC,KAAA,CAAA,CAAI,SAAA,CAAU,mCACd,QAAA,CAAA,CAAAJ,cAAAA,CAAC,KAAA,CAAA,CACA,KAAA,CAAO,CACN,OAAA,CAAS,OACT,mBAAA,CAAqB,2BACtB,EACA,SAAA,CAAU,iEAAA,CAET,UAAC,IAAA,CAAM,IAAA,CAAM,IAAA,CAAM,IAAA,CAAM,IAAA,CAAM,IAAA,CAAM,IAAI,CAAA,CAAE,GAAA,CAAKkC,CAAAA,EAChDlC,cAAAA,CAAC,KAAA,CAAA,CAAY,SAAA,CAAU,cACrB,QAAA,CAAAkC,CAAAA,CAAAA,CADQA,CAEV,CACA,CAAA,CACF,CAAA,CAEA9B,gBAAC,KAAA,CAAA,CACA,KAAA,CAAO,CACN,OAAA,CAAS,MAAA,CACT,mBAAA,CAAqB,2BACtB,CAAA,CACA,SAAA,CAAU,sBAAA,CAET,QAAA,CAAA,CAAA,KAAA,CAAM,IAAA,CAAK,CAAE,OAAQsC,CAAAA,CAAmB,CAAE,IAAA,CAAM2C,CAAAA,CAAQ,KAAA,CAAOE,CAAAA,CAAS,IAAK,CAAE,CAAA,CAAG,IAAI,CAAA,CAAE,MAAA,EAAS,CAAC,CAAA,CAAE,GAAA,CAAI,CAAClF,CAAAA,CAAGJ,CAAAA,GAC5GD,cAAAA,CAAC,SAAS,GAAA,CAAMC,CAAG,CACnB,CAAA,CAEA,KAAA,CAAM,IAAA,CAAK,CAAE,MAAA,CAAQhB,CAAY,CAAC,CAAA,CAAE,GAAA,CAAI,CAACoB,EAAGJ,CAAAA,GAAM,CAClD,IAAM7B,CAAAA,CAAM6B,CAAAA,CAAI,CAAA,CAEV4F,EAAU,CAACZ,CAAAA,EAAYF,CAAAA,EAAcC,CAAAA,EAAYpC,EAAAA,CAAgBmC,CAAAA,CAAYC,CAAQ,CAAA,CACrF5C,CAAAA,CAAQxB,EAAAA,CAAQ,CAAE,IAAA,CAAMyE,CAAAA,CAAQ,MAAOE,CAAAA,CAAS,GAAA,CAAAnH,CAAI,CAAC,CAAA,CACrD0H,CAAAA,CAAYjE,EAAgBwD,CAAAA,CAAQE,CAAAA,CAASnH,CAAG,CAAA,CAEtD,OACC4B,cAAAA,CAAC,UACA,OAAA,CAAS,IAAM,CACV2E,CAAAA,EAAYO,CAAAA,EAAe,CAACD,CAAAA,CAC/BC,CAAAA,CAAYY,CAAS,CAAA,CACXnB,CAAAA,GACVA,CAAAA,CAASmB,EAAWb,CAAQ,CAAA,CAC5BC,CAAAA,EAAeA,CAAAA,CAAY,MAAS,CAAA,EAEtC,EACA,QAAA,CAAUU,CAAAA,CAAa,CAAE,IAAA,CAAMP,CAAAA,CAAQ,KAAA,CAAOE,EAAS,GAAA,CAAAnH,CAAI,CAAC,CAAA,CAE5D,KAAA,CAAO,CACN,WACC6G,CAAAA,EAAYA,CAAAA,GAAaa,CAAAA,EAErB,CAACX,CAAAA,EAAWT,CAAAA,GAAUoB,GAAe,KAAA,CAAM,OAAA,CAAQD,CAAO,CAAA,EAAKA,CAAAA,CAAQ,CAAC,IAAMC,CAAAA,EAAe,KAAA,CAAM,OAAA,CAAQD,CAAO,CAAA,EAAKA,CAAAA,CAAQA,EAAQ,MAAA,CAAS,CAAC,CAAA,GAAMC,CAAAA,CADxJ,SAAA,CAGC,KAAA,CAAM,QAAQD,CAAO,CAAA,EAAKA,CAAAA,CAAQ,QAAA,CAASC,CAAS,CAAA,CACnD,YACA1D,CAAAA,CACC,SAAA,CACA,EAAA,CACP,KAAA,CACE6C,CAAAA,EAAYA,CAAAA,GAAaa,GACzB,CAACX,CAAAA,EAAWT,CAAAA,GAAUoB,CAAAA,EACtB,KAAA,CAAM,OAAA,CAAQD,CAAO,CAAA,EAAKA,CAAAA,CAAQ,CAAC,CAAA,GAAMC,CAAAA,EACzC,KAAA,CAAM,QAAQD,CAAO,CAAA,EAAKA,CAAAA,CAAQA,CAAAA,CAAQ,MAAA,CAAS,CAAC,IAAMC,CAAAA,EAC1D,KAAA,CAAM,OAAA,CAAQD,CAAO,CAAA,EAAKA,CAAAA,CAAQ,SAASC,CAAS,CAAA,EACrD1D,CAAAA,CACG,OAAA,CACAwD,CAAAA,CAAa,CAAE,KAAMP,CAAAA,CAAQ,KAAA,CAAOE,EAAS,GAAA,CAAAnH,CAAI,CAAC,CAAA,CACjD,SAAA,CACA,EAAA,CACL,MAAA,CAAQwH,CAAAA,CAAa,CAAE,KAAMP,CAAAA,CAAQ,KAAA,CAAOE,CAAAA,CAAS,GAAA,CAAAnH,CAAI,CAAC,EAAI,aAAA,CAAgB,SAAA,CAC9E,YAAA,CACC,KAAA,CAAM,OAAA,CAAQyH,CAAO,GAAKA,CAAAA,CAAQ,CAAC,CAAA,GAAMC,CAAAA,CACtC,aAAA,CACA,KAAA,CAAM,QAAQD,CAAO,CAAA,EAAKA,CAAAA,CAAQA,CAAAA,CAAQ,MAAA,CAAS,CAAC,IAAMC,CAAAA,CACzD,aAAA,CACA,CAACX,CAAAA,EAAWF,CAAAA,EAEX7C,CAAAA,CADA,MAGC,EACR,CAAA,CACA,SAAA,CAAW,+FAAA,CAEV,QAAA,CAAAhE,CAAAA,CAAAA,CArCIA,CAsCN,CAEF,CAAC,CAAA,CAAA,CACF,CAAA,CAAA,CACD,CAAA,CAEA4B,cAAAA,CAAC,OAAI,SAAA,CAAU,qBAAA,CACd,QAAA,CAAAA,cAAAA,CAAC,QAAA,CAAA,CAAO,OAAA,CAAS,IAAM2E,CAAAA,EAAYA,CAAAA,CAAS7C,CAAAA,EAAM,CAAA,CAAG,SAAA,CAAU,qDAAqD,QAAA,CAAA,OAAA,CAEpH,CAAA,CACD,CAAA,CAAA,CACD,CAEF,CAAA,CAEMiE,EAAAA,CAAkB,CAACC,CAAAA,CAAUC,CAAAA,CAAcC,CAAAA,GAAoB,CACpE9B,eAAAA,CAAU,IAAM,CACf,GAAI,CAAC8B,CAAAA,CAAQ,OAEb,IAAMC,CAAAA,CAAYC,GAAe,CAChC,IAAMC,CAAAA,CAASD,CAAAA,CAAM,MAAA,CACrB,IAAA,IAAWE,KAAMN,CAAAA,CAChB,GAAIM,CAAAA,CAAG,OAAA,EAAWA,CAAAA,CAAG,OAAA,CAAQ,SAASD,CAAM,CAAA,CAC3C,OAIFJ,CAAAA,GACD,EAEA,OAAA,QAAA,CAAS,gBAAA,CAAiB,WAAA,CAAaE,CAAQ,CAAA,CACxC,IAAM,SAAS,mBAAA,CAAoB,WAAA,CAAaA,CAAQ,CAChE,CAAA,CAAG,CAACH,EAAKC,CAAAA,CAASC,CAAM,CAAC,EAC1B,CAAA,CAEaK,EAAAA,CAAa,CAAC,CAC1B,KAAA,CAAA7B,CAAAA,CACA,QAAA,CAAAC,CAAAA,CACA,OAAA,CAAAC,EACA,OAAA,CAAAC,CAAAA,CACA,QAAA,CAAAC,CAAAA,CACA,UAAA,CAAA0B,CAAAA,CAAa,KACb,WAAA,CAAAC,CAAAA,CAAc,aACf,CAAA,GAQM,CACL,GAAM,CAACxC,CAAAA,CAAMyC,CAAO,CAAA,CAAI7H,cAAAA,CAAS,KAAK,CAAA,CAChCmF,EAAa2C,YAAAA,CAA8B,IAAI,EAC/CC,CAAAA,CAAWD,YAAAA,CAA8B,IAAI,CAAA,CAE7CzC,CAAAA,CAAWH,EAAAA,CAAmBC,CAAAA,CAAYC,CAAI,CAAA,CAEpD8B,GAAgB,CAAC/B,CAAAA,CAAY4C,CAAQ,CAAA,CAAG,IAAMF,CAAAA,CAAQ,KAAK,CAAA,CAAGzC,CAAI,CAAA,CAClE,IAAMK,CAAAA,CAAON,CAAAA,CAAW,SAAS,qBAAA,EAAsB,CAEvD,OACC5D,eAAAA,CAAC,KAAA,CAAA,CAAI,SAAA,CAAW,WAAY,GAAA,CAAK4D,CAAAA,CAChC,QAAA,CAAA,CAAA5D,eAAAA,CAAC,KAAA,CAAA,CACA,OAAA,CAAS,IAAM,CAAC0E,CAAAA,EAAY4B,CAAAA,CAAQ,CAACzC,CAAI,CAAA,CACzC,UAAW,CAAA,+IAAA,EAAkJa,CAAAA,CAAW,8CAAA,CAAiD,EAAE,CAAA,CAAA,CAE3N,QAAA,CAAA,CAAA9E,eAAC,MAAA,CAAA,CAAK,SAAA,CAAU,UAAW,QAAA,CAAA0E,CAAAA,CAAQ7C,EAAgB6C,CAAK,CAAA,CAAI1E,cAAAA,CAAC,MAAA,CAAA,CAAK,SAAA,CAAU,kBAAA,CAAoB,SAAAyG,CAAAA,CAAY,CAAA,CAAQ,CAAA,CAEnHD,CAAAA,EAAc9B,CAAAA,EAAS,CAACI,GACxB9E,cAAAA,CAAC,QAAA,CAAA,CACA,OAAA,CAAUD,CAAAA,EAAM,CACfA,CAAAA,CAAE,iBAAgB,CAClB4E,CAAAA,EAAYA,CAAAA,CAAS,EAAE,EACxB,CAAA,CACA,UAAU,iHAAA,CACV,QAAA,CAAA,MAAA,CAED,CAAA,CAAA,CAEF,CAAA,CAECV,CAAAA,EACAK,CAAAA,EACAuC,sBACC7G,cAAAA,CAAC,KAAA,CAAA,CACA,GAAA,CAAK4G,CAAAA,CACL,SAAA,CAAU,UAAA,CACV,MAAO,CACN,GAAA,CAAK1C,CAAAA,GAAa,KAAA,CAAQI,CAAAA,CAAK,GAAA,CAAM,IAAMA,CAAAA,CAAK,MAAA,CAAS,CAAA,CACzD,IAAA,CAAMA,CAAAA,CAAK,IAAA,CACX,OAAQ,MACT,CAAA,CAEA,QAAA,CAAAtE,cAAAA,CAACyE,EAAAA,CAAA,CACA,MAAOC,CAAAA,CACP,QAAA,CAAWd,CAAAA,EAAiB,CACvBe,CAAAA,EACHA,CAAAA,CAASf,CAAI,CAAA,CAEd8C,CAAAA,CAAQ,KAAK,EACd,CAAA,CACA,OAAA,CAAS9B,EACT,OAAA,CAASC,CAAAA,CACT,QAAA,CAAUC,CAAAA,CACX,CAAA,CACD,CAAA,CACA,SAAS,IACV,CAAA,CAAA,CACF,CAEF,CAAA,CAEagC,EAAAA,CAAc,CAAC,CAC3B,KAAA,CAAApC,CAAAA,CACA,QAAA,CAAAC,CAAAA,CACA,OAAA,CAAAC,CAAAA,CACA,QAAAC,CAAAA,CACA,QAAA,CAAAC,CAAAA,CACA,UAAA,CAAA0B,CAAAA,CAAa,IAAA,CACb,YAAAC,CAAAA,CAAc,aACf,IAQM,CACL,GAAM,CAACxC,CAAAA,CAAMyC,CAAO,CAAA,CAAI7H,cAAAA,CAAS,KAAK,CAAA,CAChC,CAACoG,CAAAA,CAAUC,CAAW,CAAA,CAAIrG,cAAAA,CAA6B,MAAS,CAAA,CAEhEmF,EAAa2C,YAAAA,CAA8B,IAAI,CAAA,CAC/CC,CAAAA,CAAWD,YAAAA,CAA8B,IAAI,EAE7CzC,CAAAA,CAAWH,EAAAA,CAAmBC,CAAAA,CAAYC,CAAI,CAAA,CAE9C,CAAClB,EAAOC,CAAG,CAAA,CAAI0B,CAAAA,EAAS,EAAC,CAE/BqB,EAAAA,CACC,CAAC/B,CAAAA,CAAY4C,CAAQ,CAAA,CACrB,IAAM,CACLF,CAAAA,CAAQ,KAAK,CAAA,CACbxB,CAAAA,CAAY,MAAS,EACtB,CAAA,CACAjB,CACD,EACA,IAAMK,CAAAA,CAAON,CAAAA,CAAW,OAAA,EAAS,qBAAA,EAAsB,CAEvD,OACC5D,eAAAA,CAAC,KAAA,CAAA,CAAI,SAAA,CAAW,UAAA,CAAY,GAAA,CAAK4D,CAAAA,CAChC,UAAA5D,eAAAA,CAAC,KAAA,CAAA,CACA,OAAA,CAAS,IAAM,CAAC0E,CAAAA,EAAY4B,EAAQ,CAACzC,CAAI,CAAA,CACzC,SAAA,CAAW,CAAA,+IAAA,EAAkJa,CAAAA,CAAW,+CAAiD,EAAE,CAAA,CAAA,CAE3N,QAAA,CAAA,CAAA9E,cAAAA,CAAC,MAAA,CAAA,CAAK,SAAA,CAAU,UAAW,QAAA,CAAA+C,CAAAA,EAASC,CAAAA,CAAM,CAAA,EAAGD,CAAK,CAAA,CAAA,EAAIC,CAAG,CAAA,CAAA,CAAKhD,cAAAA,CAAC,MAAA,CAAA,CAAK,SAAA,CAAU,kBAAA,CAAoB,QAAA,CAAAyG,EAAY,CAAA,CAAQ,CAAA,CAErHD,CAAAA,EAAczD,CAAAA,EAASC,CAAAA,EAAO,CAAC8B,GAC/B9E,cAAAA,CAAC,QAAA,CAAA,CACA,QAAUD,CAAAA,EAAM,CACfA,EAAE,eAAA,EAAgB,CAClB4E,CAAAA,EAAYA,CAAAA,CAAS,EAAE,EACxB,CAAA,CACA,SAAA,CAAU,iHAAA,CACV,QAAA,CAAA,MAAA,CAED,CAAA,CAAA,CAEF,CAAA,CAECV,GACAK,CAAAA,EACAuC,qBAAAA,CACC7G,cAAAA,CAAC,KAAA,CAAA,CACA,SAAA,CAAU,UAAA,CACV,IAAK4G,CAAAA,CACL,KAAA,CAAO,CACN,GAAA,CAAK1C,CAAAA,GAAa,KAAA,CAAQI,EAAK,GAAA,CAAM,GAAA,CAAMA,CAAAA,CAAK,MAAA,CAAS,CAAA,CACzD,IAAA,CAAMA,EAAK,IAAA,CACX,MAAA,CAAQ,MACT,CAAA,CAEA,QAAA,CAAAtE,cAAAA,CAACyE,GAAA,CACA,OAAA,CAAO,IAAA,CACP,QAAA,CAAUQ,CAAAA,CACV,WAAA,CAAaC,EACb,KAAA,CAAOnC,CAAAA,CACP,QAAA,CAAU,CAACT,CAAAA,CAAeC,CAAAA,GAAmB,CACxCoC,CAAAA,GACCpC,CAAAA,CACCF,CAAAA,CAAQE,CAAAA,CAAOD,CAAK,CAAA,CACvBqC,EAAS,CAACrC,CAAAA,CAAOC,CAAK,CAAC,CAAA,CAEvBoC,CAAAA,CAAS,CAACpC,CAAAA,CAAOD,CAAK,CAAC,CAAA,CAGxBqC,CAAAA,CAAS,CAACrC,EAAOA,CAAK,CAAC,CAAA,CAAA,CAGzB4C,CAAAA,CAAY,MAAS,CAAA,CACrBwB,EAAQ,KAAK,EACd,CAAA,CACA,OAAA,CAAS9B,CAAAA,CACT,OAAA,CAASC,EACT,QAAA,CAAUC,CAAAA,CACV,UAAA,CAAY/B,CAAAA,CACZ,QAAA,CAAUC,CAAAA,CACX,EACD,CAAA,CACA,QAAA,CAAS,IACV,CAAA,CAAA,CACF,CAEF","file":"react.cjs","sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { useState, useMemo } from 'react';\n\nconst MONTHS = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];\n\nconst WEEK_DAYS = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];\n\nconst DEFAULT_EVENTS = [\n\t{ date: '2026-03-05', title: 'Meeting', color: 'bg-blue-500' },\n\t{ date: '2026-03-12', title: 'Launch', color: 'bg-green-500' },\n\t{ date: '2026-03-12', title: 'Review', color: 'bg-purple-500' },\n\t{ date: '2026-03-12', title: 'Design', color: 'bg-pink-500' },\n\t{ date: '2026-03-20', title: 'Holiday Ad', isAd: true },\n];\n\nfunction getDaysInMonth(year: number, month: number) {\n\treturn new Date(year, month + 1, 0).getDate();\n}\n\nfunction formatDate(year: number, month: number, day: number) {\n\treturn `${year}-${String(month + 1).padStart(2, '0')}-${String(day).padStart(2, '0')}`;\n}\n\nexport const BsCalendar = ({ events = DEFAULT_EVENTS, size = 'medium', onEventClick, allowAd = true }: any) => {\n\tconst todayObj = new Date();\n\tconst todayStr = formatDate(todayObj.getFullYear(), todayObj.getMonth(), todayObj.getDate());\n\n\tconst [year, setYear] = useState(todayObj.getFullYear());\n\tconst [month, setMonth] = useState(todayObj.getMonth());\n\tconst [selected, setSelected] = useState(todayStr);\n\n\tconst daysInMonth = getDaysInMonth(year, month);\n\tconst firstDay = new Date(year, month, 1).getDay();\n\n\tconst eventMap = useMemo(() => {\n\t\tconst map: Record<string, any[]> = {};\n\t\tevents.forEach((ev: any) => {\n\t\t\tif (!map[ev.date]) map[ev.date] = [];\n\t\t\tmap[ev.date].push(ev);\n\t\t});\n\t\treturn map;\n\t}, [events]);\n\n\tfunction handlePrev() {\n\t\tif (month === 0) {\n\t\t\tsetMonth(11);\n\t\t\tsetYear((y: number) => y - 1);\n\t\t} else {\n\t\t\tsetMonth((m: number) => m - 1);\n\t\t}\n\t}\n\n\tfunction handleNext() {\n\t\tif (month === 11) {\n\t\t\tsetMonth(0);\n\t\t\tsetYear((y: number) => y + 1);\n\t\t} else {\n\t\t\tsetMonth((m: number) => m + 1);\n\t\t}\n\t}\n\n\tfunction handleToday() {\n\t\tsetYear(todayObj.getFullYear());\n\t\tsetMonth(todayObj.getMonth());\n\t\tsetSelected(todayStr);\n\t}\n\n\tfunction renderEvents(dateStr: string) {\n\t\tlet dayEvents = eventMap[dateStr] || [];\n\t\tif (!allowAd) {\n\t\t\tdayEvents = dayEvents.filter((e: any) => !e.isAd);\n\t\t}\n\n\t\tif (size === 'small') {\n\t\t\tif (dayEvents.length === 0) return null;\n\n\t\t\treturn (\n\t\t\t\t<div className='mt-1 flex flex-wrap gap-1'>\n\t\t\t\t\t{dayEvents.map((ev: any, i: number) => (\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tkey={i}\n\t\t\t\t\t\t\tonClick={(e) => {\n\t\t\t\t\t\t\t\te.stopPropagation();\n\t\t\t\t\t\t\t\tonEventClick?.(ev);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tclassName={`w-2 h-2 rounded-full cursor-pointer ${ev.color || 'bg-gray-400'}`}\n\t\t\t\t\t\t/>\n\t\t\t\t\t))}\n\t\t\t\t</div>\n\t\t\t);\n\t\t}\n\n\t\tconst max = size === 'large' ? 3 : 1;\n\n\t\treturn (\n\t\t\t<div className='mt-1 space-y-1'>\n\t\t\t\t{dayEvents.slice(0, max).map((ev: any, i: number) => (\n\t\t\t\t\t<div\n\t\t\t\t\t\tkey={i}\n\t\t\t\t\t\tonClick={(e) => {\n\t\t\t\t\t\t\te.stopPropagation();\n\t\t\t\t\t\t\tonEventClick?.(ev);\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tclassName={`text-xs px-1 py-0.5 rounded cursor-pointer text-white truncate ${ev.color || 'bg-gray-400'}`}\n\t\t\t\t\t>\n\t\t\t\t\t\t{ev.title}\n\t\t\t\t\t</div>\n\t\t\t\t))}\n\t\t\t</div>\n\t\t);\n\t}\n\n\tconst cellHeight = size === 'small' ? 'h-20' : size === 'medium' ? 'h-28' : 'h-36';\n\n\treturn (\n\t\t<div className='w-full max-w-5xl mx-auto p-4 bg-white rounded-xl shadow'>\n\t\t\t<div className='flex items-center justify-between mb-4'>\n\t\t\t\t<div className='flex gap-2'>\n\t\t\t\t\t<button onClick={handlePrev} className='px-3 py-1 bg-gray-200 rounded'>\n\t\t\t\t\t\tPrev\n\t\t\t\t\t</button>\n\t\t\t\t\t<button onClick={handleNext} className='px-3 py-1 bg-gray-200 rounded'>\n\t\t\t\t\t\tNext\n\t\t\t\t\t</button>\n\t\t\t\t\t<button onClick={handleToday} className='px-3 py-1 bg-blue-500 text-white rounded'>\n\t\t\t\t\t\tToday\n\t\t\t\t\t</button>\n\t\t\t\t</div>\n\n\t\t\t\t<div className='flex gap-2'>\n\t\t\t\t\t<select value={month} onChange={(e) => setMonth(Number(e.target.value))} className='border px-2 py-1 rounded'>\n\t\t\t\t\t\t{MONTHS.map((m, i) => (\n\t\t\t\t\t\t\t<option key={i} value={i}>\n\t\t\t\t\t\t\t\t{m}\n\t\t\t\t\t\t\t</option>\n\t\t\t\t\t\t))}\n\t\t\t\t\t</select>\n\n\t\t\t\t\t<input type='number' value={year} onChange={(e) => setYear(Number(e.target.value))} className='border px-2 py-1 rounded w-24' />\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t<div className='grid grid-cols-7 text-center font-semibold border-b'>\n\t\t\t\t{WEEK_DAYS.map((day, i) => (\n\t\t\t\t\t<div key={i} className={`py-2 ${i === 6 ? 'text-red-500' : ''}`}>\n\t\t\t\t\t\t{day}\n\t\t\t\t\t</div>\n\t\t\t\t))}\n\t\t\t</div>\n\n\t\t\t<div className='grid grid-cols-7'>\n\t\t\t\t{Array.from({ length: 42 }).map((_, index) => {\n\t\t\t\t\tconst dayOffset = index - firstDay;\n\t\t\t\t\tconst prevMonthDays = getDaysInMonth(year, month === 0 ? 11 : month - 1);\n\n\t\t\t\t\tlet day;\n\t\t\t\t\tlet displayMonth = month;\n\t\t\t\t\tlet displayYear = year;\n\t\t\t\t\tlet isCurrentMonth = true;\n\n\t\t\t\t\tif (dayOffset < 0) {\n\t\t\t\t\t\tday = prevMonthDays + dayOffset + 1;\n\t\t\t\t\t\tdisplayMonth = month === 0 ? 11 : month - 1;\n\t\t\t\t\t\tdisplayYear = month === 0 ? year - 1 : year;\n\t\t\t\t\t\tisCurrentMonth = false;\n\t\t\t\t\t} else if (dayOffset >= daysInMonth) {\n\t\t\t\t\t\tday = dayOffset - daysInMonth + 1;\n\t\t\t\t\t\tdisplayMonth = month === 11 ? 0 : month + 1;\n\t\t\t\t\t\tdisplayYear = month === 11 ? year + 1 : year;\n\t\t\t\t\t\tisCurrentMonth = false;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tday = dayOffset + 1;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst dateStr = formatDate(displayYear, displayMonth, day);\n\t\t\t\t\tconst isToday = dateStr === todayStr;\n\t\t\t\t\tconst isSelected = dateStr === selected;\n\n\t\t\t\t\tconst weekDay = index % 7;\n\t\t\t\t\tconst isSaturday = weekDay === 6;\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tkey={index}\n\t\t\t\t\t\t\tonClick={() => setSelected(dateStr)}\n\t\t\t\t\t\t\tclassName={`relative border p-2 cursor-pointer ${cellHeight}\n\t\t\t\t\t\t\t${isSelected ? 'bg-blue-100' : ''}\n\t\t\t\t\t\t\t${isToday ? 'ring-2 ring-blue-500' : ''}\n\t\t\t\t\t\t\t${isSaturday ? 'bg-red-50' : ''}\n\t\t\t\t\t\t\t${!isCurrentMonth ? 'text-gray-400 bg-gray-50' : ''}`}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<div className={`text-sm font-medium ${isSaturday ? 'text-red-600' : ''}`}>{day}</div>\n\n\t\t\t\t\t\t\t{isCurrentMonth && renderEvents(dateStr)}\n\n\t\t\t\t\t\t\t{allowAd && isCurrentMonth && eventMap[dateStr]?.some((e: any) => e.isAd) && <span className='absolute bottom-1 right-1 text-[10px] text-gray-400'>Ad</span>}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n\nexport default BsCalendar;\n","export const BS_MONTH_DAYS: IBS_MONTH_DAYS = {\n\t'2000': {\n\t\tBaisakh: 30,\n\t\tJestha: 32,\n\t\tAsar: 31,\n\t\tShrawan: 32,\n\t\tBhadra: 31,\n\t\tAswin: 30,\n\t\tKartik: 30,\n\t\tMangsir: 30,\n\t\tPoush: 29,\n\t\tMagh: 30,\n\t\tFalgun: 29,\n\t\tChaitra: 31,\n\t},\n\t'2001': {\n\t\tBaisakh: 31,\n\t\tJestha: 31,\n\t\tAsar: 32,\n\t\tShrawan: 31,\n\t\tBhadra: 31,\n\t\tAswin: 31,\n\t\tKartik: 30,\n\t\tMangsir: 29,\n\t\tPoush: 30,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 30,\n\t},\n\t'2002': {\n\t\tBaisakh: 31,\n\t\tJestha: 31,\n\t\tAsar: 32,\n\t\tShrawan: 32,\n\t\tBhadra: 31,\n\t\tAswin: 30,\n\t\tKartik: 30,\n\t\tMangsir: 29,\n\t\tPoush: 30,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 30,\n\t},\n\t'2003': {\n\t\tBaisakh: 31,\n\t\tJestha: 32,\n\t\tAsar: 31,\n\t\tShrawan: 32,\n\t\tBhadra: 31,\n\t\tAswin: 30,\n\t\tKartik: 30,\n\t\tMangsir: 30,\n\t\tPoush: 29,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 31,\n\t},\n\t'2004': {\n\t\tBaisakh: 30,\n\t\tJestha: 32,\n\t\tAsar: 31,\n\t\tShrawan: 32,\n\t\tBhadra: 31,\n\t\tAswin: 30,\n\t\tKartik: 30,\n\t\tMangsir: 30,\n\t\tPoush: 29,\n\t\tMagh: 30,\n\t\tFalgun: 29,\n\t\tChaitra: 31,\n\t},\n\t'2005': {\n\t\tBaisakh: 31,\n\t\tJestha: 31,\n\t\tAsar: 32,\n\t\tShrawan: 31,\n\t\tBhadra: 31,\n\t\tAswin: 31,\n\t\tKartik: 30,\n\t\tMangsir: 29,\n\t\tPoush: 30,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 30,\n\t},\n\t'2006': {\n\t\tBaisakh: 31,\n\t\tJestha: 31,\n\t\tAsar: 32,\n\t\tShrawan: 32,\n\t\tBhadra: 31,\n\t\tAswin: 30,\n\t\tKartik: 30,\n\t\tMangsir: 29,\n\t\tPoush: 30,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 30,\n\t},\n\t'2007': {\n\t\tBaisakh: 31,\n\t\tJestha: 32,\n\t\tAsar: 31,\n\t\tShrawan: 32,\n\t\tBhadra: 31,\n\t\tAswin: 30,\n\t\tKartik: 30,\n\t\tMangsir: 30,\n\t\tPoush: 29,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 31,\n\t},\n\t'2008': {\n\t\tBaisakh: 31,\n\t\tJestha: 31,\n\t\tAsar: 31,\n\t\tShrawan: 32,\n\t\tBhadra: 31,\n\t\tAswin: 31,\n\t\tKartik: 29,\n\t\tMangsir: 30,\n\t\tPoush: 30,\n\t\tMagh: 29,\n\t\tFalgun: 29,\n\t\tChaitra: 31,\n\t},\n\t'2009': {\n\t\tBaisakh: 31,\n\t\tJestha: 31,\n\t\tAsar: 32,\n\t\tShrawan: 31,\n\t\tBhadra: 31,\n\t\tAswin: 31,\n\t\tKartik: 30,\n\t\tMangsir: 29,\n\t\tPoush: 30,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 30,\n\t},\n\t'2010': {\n\t\tBaisakh: 31,\n\t\tJestha: 31,\n\t\tAsar: 32,\n\t\tShrawan: 32,\n\t\tBhadra: 31,\n\t\tAswin: 30,\n\t\tKartik: 30,\n\t\tMangsir: 29,\n\t\tPoush: 30,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 30,\n\t},\n\t'2011': {\n\t\tBaisakh: 31,\n\t\tJestha: 32,\n\t\tAsar: 31,\n\t\tShrawan: 32,\n\t\tBhadra: 31,\n\t\tAswin: 30,\n\t\tKartik: 30,\n\t\tMangsir: 30,\n\t\tPoush: 29,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 31,\n\t},\n\t'2012': {\n\t\tBaisakh: 31,\n\t\tJestha: 31,\n\t\tAsar: 31,\n\t\tShrawan: 32,\n\t\tBhadra: 31,\n\t\tAswin: 31,\n\t\tKartik: 29,\n\t\tMangsir: 30,\n\t\tPoush: 30,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 30,\n\t},\n\t'2013': {\n\t\tBaisakh: 31,\n\t\tJestha: 31,\n\t\tAsar: 32,\n\t\tShrawan: 31,\n\t\tBhadra: 31,\n\t\tAswin: 31,\n\t\tKartik: 30,\n\t\tMangsir: 29,\n\t\tPoush: 30,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 30,\n\t},\n\t'2014': {\n\t\tBaisakh: 31,\n\t\tJestha: 31,\n\t\tAsar: 32,\n\t\tShrawan: 32,\n\t\tBhadra: 31,\n\t\tAswin: 30,\n\t\tKartik: 30,\n\t\tMangsir: 29,\n\t\tPoush: 30,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 30,\n\t},\n\t'2015': {\n\t\tBaisakh: 31,\n\t\tJestha: 32,\n\t\tAsar: 31,\n\t\tShrawan: 32,\n\t\tBhadra: 31,\n\t\tAswin: 30,\n\t\tKartik: 30,\n\t\tMangsir: 30,\n\t\tPoush: 29,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 31,\n\t},\n\t'2016': {\n\t\tBaisakh: 31,\n\t\tJestha: 31,\n\t\tAsar: 31,\n\t\tShrawan: 32,\n\t\tBhadra: 31,\n\t\tAswin: 31,\n\t\tKartik: 29,\n\t\tMangsir: 30,\n\t\tPoush: 30,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 30,\n\t},\n\t'2017': {\n\t\tBaisakh: 31,\n\t\tJestha: 31,\n\t\tAsar: 32,\n\t\tShrawan: 31,\n\t\tBhadra: 31,\n\t\tAswin: 31,\n\t\tKartik: 30,\n\t\tMangsir: 29,\n\t\tPoush: 30,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 30,\n\t},\n\t'2018': {\n\t\tBaisakh: 31,\n\t\tJestha: 32,\n\t\tAsar: 31,\n\t\tShrawan: 32,\n\t\tBhadra: 31,\n\t\tAswin: 30,\n\t\tKartik: 30,\n\t\tMangsir: 29,\n\t\tPoush: 30,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 30,\n\t},\n\t'2019': {\n\t\tBaisakh: 31,\n\t\tJestha: 32,\n\t\tAsar: 31,\n\t\tShrawan: 32,\n\t\tBhadra: 31,\n\t\tAswin: 30,\n\t\tKartik: 30,\n\t\tMangsir: 30,\n\t\tPoush: 29,\n\t\tMagh: 30,\n\t\tFalgun: 29,\n\t\tChaitra: 31,\n\t},\n\t'2020': {\n\t\tBaisakh: 31,\n\t\tJestha: 31,\n\t\tAsar: 31,\n\t\tShrawan: 32,\n\t\tBhadra: 31,\n\t\tAswin: 31,\n\t\tKartik: 30,\n\t\tMangsir: 29,\n\t\tPoush: 30,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 30,\n\t},\n\t'2021': {\n\t\tBaisakh: 31,\n\t\tJestha: 31,\n\t\tAsar: 32,\n\t\tShrawan: 31,\n\t\tBhadra: 31,\n\t\tAswin: 31,\n\t\tKartik: 30,\n\t\tMangsir: 29,\n\t\tPoush: 30,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 30,\n\t},\n\t'2022': {\n\t\tBaisakh: 31,\n\t\tJestha: 32,\n\t\tAsar: 31,\n\t\tShrawan: 32,\n\t\tBhadra: 31,\n\t\tAswin: 30,\n\t\tKartik: 30,\n\t\tMangsir: 30,\n\t\tPoush: 29,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 30,\n\t},\n\t'2023': {\n\t\tBaisakh: 31,\n\t\tJestha: 32,\n\t\tAsar: 31,\n\t\tShrawan: 32,\n\t\tBhadra: 31,\n\t\tAswin: 30,\n\t\tKartik: 30,\n\t\tMangsir: 30,\n\t\tPoush: 29,\n\t\tMagh: 30,\n\t\tFalgun: 29,\n\t\tChaitra: 31,\n\t},\n\t'2024': {\n\t\tBaisakh: 31,\n\t\tJestha: 31,\n\t\tAsar: 31,\n\t\tShrawan: 32,\n\t\tBhadra: 31,\n\t\tAswin: 31,\n\t\tKartik: 30,\n\t\tMangsir: 29,\n\t\tPoush: 30,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 30,\n\t},\n\t'2025': {\n\t\tBaisakh: 31,\n\t\tJestha: 31,\n\t\tAsar: 32,\n\t\tShrawan: 31,\n\t\tBhadra: 31,\n\t\tAswin: 31,\n\t\tKartik: 30,\n\t\tMangsir: 29,\n\t\tPoush: 30,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 30,\n\t},\n\t'2026': {\n\t\tBaisakh: 31,\n\t\tJestha: 32,\n\t\tAsar: 31,\n\t\tShrawan: 32,\n\t\tBhadra: 31,\n\t\tAswin: 30,\n\t\tKartik: 30,\n\t\tMangsir: 30,\n\t\tPoush: 29,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 31,\n\t},\n\t'2027': {\n\t\tBaisakh: 30,\n\t\tJestha: 32,\n\t\tAsar: 31,\n\t\tShrawan: 32,\n\t\tBhadra: 31,\n\t\tAswin: 30,\n\t\tKartik: 30,\n\t\tMangsir: 30,\n\t\tPoush: 29,\n\t\tMagh: 30,\n\t\tFalgun: 29,\n\t\tChaitra: 31,\n\t},\n\t'2028': {\n\t\tBaisakh: 31,\n\t\tJestha: 31,\n\t\tAsar: 32,\n\t\tShrawan: 31,\n\t\tBhadra: 31,\n\t\tAswin: 31,\n\t\tKartik: 30,\n\t\tMangsir: 29,\n\t\tPoush: 30,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 30,\n\t},\n\t'2029': {\n\t\tBaisakh: 31,\n\t\tJestha: 31,\n\t\tAsar: 32,\n\t\tShrawan: 31,\n\t\tBhadra: 32,\n\t\tAswin: 30,\n\t\tKartik: 30,\n\t\tMangsir: 29,\n\t\tPoush: 30,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 30,\n\t},\n\t'2030': {\n\t\tBaisakh: 31,\n\t\tJestha: 32,\n\t\tAsar: 31,\n\t\tShrawan: 32,\n\t\tBhadra: 31,\n\t\tAswin: 30,\n\t\tKartik: 30,\n\t\tMangsir: 30,\n\t\tPoush: 29,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 31,\n\t},\n\t'2031': {\n\t\tBaisakh: 30,\n\t\tJestha: 32,\n\t\tAsar: 31,\n\t\tShrawan: 32,\n\t\tBhadra: 31,\n\t\tAswin: 30,\n\t\tKartik: 30,\n\t\tMangsir: 30,\n\t\tPoush: 29,\n\t\tMagh: 30,\n\t\tFalgun: 29,\n\t\tChaitra: 31,\n\t},\n\t'2032': {\n\t\tBaisakh: 31,\n\t\tJestha: 31,\n\t\tAsar: 32,\n\t\tShrawan: 31,\n\t\tBhadra: 31,\n\t\tAswin: 31,\n\t\tKartik: 30,\n\t\tMangsir: 29,\n\t\tPoush: 30,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 30,\n\t},\n\t'2033': {\n\t\tBaisakh: 31,\n\t\tJestha: 31,\n\t\tAsar: 32,\n\t\tShrawan: 32,\n\t\tBhadra: 31,\n\t\tAswin: 30,\n\t\tKartik: 30,\n\t\tMangsir: 29,\n\t\tPoush: 30,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 30,\n\t},\n\t'2034': {\n\t\tBaisakh: 31,\n\t\tJestha: 32,\n\t\tAsar: 31,\n\t\tShrawan: 32,\n\t\tBhadra: 31,\n\t\tAswin: 30,\n\t\tKartik: 30,\n\t\tMangsir: 30,\n\t\tPoush: 29,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 31,\n\t},\n\t'2035': {\n\t\tBaisakh: 30,\n\t\tJestha: 32,\n\t\tAsar: 31,\n\t\tShrawan: 32,\n\t\tBhadra: 31,\n\t\tAswin: 31,\n\t\tKartik: 29,\n\t\tMangsir: 30,\n\t\tPoush: 30,\n\t\tMagh: 29,\n\t\tFalgun: 29,\n\t\tChaitra: 31,\n\t},\n\t'2036': {\n\t\tBaisakh: 31,\n\t\tJestha: 31,\n\t\tAsar: 32,\n\t\tShrawan: 31,\n\t\tBhadra: 31,\n\t\tAswin: 31,\n\t\tKartik: 30,\n\t\tMangsir: 29,\n\t\tPoush: 30,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 30,\n\t},\n\t'2037': {\n\t\tBaisakh: 31,\n\t\tJestha: 31,\n\t\tAsar: 32,\n\t\tShrawan: 32,\n\t\tBhadra: 31,\n\t\tAswin: 30,\n\t\tKartik: 30,\n\t\tMangsir: 29,\n\t\tPoush: 30,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 30,\n\t},\n\t'2038': {\n\t\tBaisakh: 31,\n\t\tJestha: 32,\n\t\tAsar: 31,\n\t\tShrawan: 32,\n\t\tBhadra: 31,\n\t\tAswin: 30,\n\t\tKartik: 30,\n\t\tMangsir: 30,\n\t\tPoush: 29,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 31,\n\t},\n\t'2039': {\n\t\tBaisakh: 31,\n\t\tJestha: 31,\n\t\tAsar: 31,\n\t\tShrawan: 32,\n\t\tBhadra: 31,\n\t\tAswin: 31,\n\t\tKartik: 29,\n\t\tMangsir: 30,\n\t\tPoush: 30,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 30,\n\t},\n\t'2040': {\n\t\tBaisakh: 31,\n\t\tJestha: 31,\n\t\tAsar: 32,\n\t\tShrawan: 31,\n\t\tBhadra: 31,\n\t\tAswin: 31,\n\t\tKartik: 30,\n\t\tMangsir: 29,\n\t\tPoush: 30,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 30,\n\t},\n\t'2041': {\n\t\tBaisakh: 31,\n\t\tJestha: 31,\n\t\tAsar: 32,\n\t\tShrawan: 32,\n\t\tBhadra: 31,\n\t\tAswin: 30,\n\t\tKartik: 30,\n\t\tMangsir: 29,\n\t\tPoush: 30,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 30,\n\t},\n\t'2042': {\n\t\tBaisakh: 31,\n\t\tJestha: 32,\n\t\tAsar: 31,\n\t\tShrawan: 32,\n\t\tBhadra: 31,\n\t\tAswin: 30,\n\t\tKartik: 30,\n\t\tMangsir: 30,\n\t\tPoush: 29,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 31,\n\t},\n\t'2043': {\n\t\tBaisakh: 31,\n\t\tJestha: 31,\n\t\tAsar: 31,\n\t\tShrawan: 32,\n\t\tBhadra: 31,\n\t\tAswin: 31,\n\t\tKartik: 29,\n\t\tMangsir: 30,\n\t\tPoush: 30,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 30,\n\t},\n\t'2044': {\n\t\tBaisakh: 31,\n\t\tJestha: 31,\n\t\tAsar: 32,\n\t\tShrawan: 31,\n\t\tBhadra: 31,\n\t\tAswin: 31,\n\t\tKartik: 30,\n\t\tMangsir: 29,\n\t\tPoush: 30,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 30,\n\t},\n\t'2045': {\n\t\tBaisakh: 31,\n\t\tJestha: 32,\n\t\tAsar: 31,\n\t\tShrawan: 32,\n\t\tBhadra: 31,\n\t\tAswin: 30,\n\t\tKartik: 30,\n\t\tMangsir: 29,\n\t\tPoush: 30,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 30,\n\t},\n\t'2046': {\n\t\tBaisakh: 31,\n\t\tJestha: 32,\n\t\tAsar: 31,\n\t\tShrawan: 32,\n\t\tBhadra: 31,\n\t\tAswin: 30,\n\t\tKartik: 30,\n\t\tMangsir: 30,\n\t\tPoush: 29,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 31,\n\t},\n\t'2047': {\n\t\tBaisakh: 31,\n\t\tJestha: 31,\n\t\tAsar: 31,\n\t\tShrawan: 32,\n\t\tBhadra: 31,\n\t\tAswin: 31,\n\t\tKartik: 30,\n\t\tMangsir: 29,\n\t\tPoush: 30,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 30,\n\t},\n\t'2048': {\n\t\tBaisakh: 31,\n\t\tJestha: 31,\n\t\tAsar: 32,\n\t\tShrawan: 31,\n\t\tBhadra: 31,\n\t\tAswin: 31,\n\t\tKartik: 30,\n\t\tMangsir: 29,\n\t\tPoush: 30,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 30,\n\t},\n\t'2049': {\n\t\tBaisakh: 31,\n\t\tJestha: 32,\n\t\tAsar: 31,\n\t\tShrawan: 32,\n\t\tBhadra: 31,\n\t\tAswin: 30,\n\t\tKartik: 30,\n\t\tMangsir: 30,\n\t\tPoush: 29,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 30,\n\t},\n\t'2050': {\n\t\tBaisakh: 31,\n\t\tJestha: 32,\n\t\tAsar: 31,\n\t\tShrawan: 32,\n\t\tBhadra: 31,\n\t\tAswin: 30,\n\t\tKartik: 30,\n\t\tMangsir: 30,\n\t\tPoush: 29,\n\t\tMagh: 30,\n\t\tFalgun: 29,\n\t\tChaitra: 31,\n\t},\n\t'2051': {\n\t\tBaisakh: 31,\n\t\tJestha: 31,\n\t\tAsar: 31,\n\t\tShrawan: 32,\n\t\tBhadra: 31,\n\t\tAswin: 31,\n\t\tKartik: 30,\n\t\tMangsir: 29,\n\t\tPoush: 30,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 30,\n\t},\n\t'2052': {\n\t\tBaisakh: 31,\n\t\tJestha: 31,\n\t\tAsar: 32,\n\t\tShrawan: 31,\n\t\tBhadra: 31,\n\t\tAswin: 31,\n\t\tKartik: 30,\n\t\tMangsir: 29,\n\t\tPoush: 30,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 30,\n\t},\n\t'2053': {\n\t\tBaisakh: 31,\n\t\tJestha: 32,\n\t\tAsar: 31,\n\t\tShrawan: 32,\n\t\tBhadra: 31,\n\t\tAswin: 30,\n\t\tKartik: 30,\n\t\tMangsir: 30,\n\t\tPoush: 29,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 30,\n\t},\n\t'2054': {\n\t\tBaisakh: 31,\n\t\tJestha: 32,\n\t\tAsar: 31,\n\t\tShrawan: 32,\n\t\tBhadra: 31,\n\t\tAswin: 30,\n\t\tKartik: 30,\n\t\tMangsir: 30,\n\t\tPoush: 29,\n\t\tMagh: 30,\n\t\tFalgun: 29,\n\t\tChaitra: 31,\n\t},\n\t'2055': {\n\t\tBaisakh: 31,\n\t\tJestha: 31,\n\t\tAsar: 32,\n\t\tShrawan: 31,\n\t\tBhadra: 31,\n\t\tAswin: 31,\n\t\tKartik: 30,\n\t\tMangsir: 29,\n\t\tPoush: 30,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 30,\n\t},\n\t'2056': {\n\t\tBaisakh: 31,\n\t\tJestha: 31,\n\t\tAsar: 32,\n\t\tShrawan: 31,\n\t\tBhadra: 32,\n\t\tAswin: 30,\n\t\tKartik: 30,\n\t\tMangsir: 29,\n\t\tPoush: 30,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 30,\n\t},\n\t'2057': {\n\t\tBaisakh: 31,\n\t\tJestha: 32,\n\t\tAsar: 31,\n\t\tShrawan: 32,\n\t\tBhadra: 31,\n\t\tAswin: 30,\n\t\tKartik: 30,\n\t\tMangsir: 30,\n\t\tPoush: 29,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 31,\n\t},\n\t'2058': {\n\t\tBaisakh: 30,\n\t\tJestha: 32,\n\t\tAsar: 31,\n\t\tShrawan: 32,\n\t\tBhadra: 31,\n\t\tAswin: 30,\n\t\tKartik: 30,\n\t\tMangsir: 30,\n\t\tPoush: 29,\n\t\tMagh: 30,\n\t\tFalgun: 29,\n\t\tChaitra: 31,\n\t},\n\t'2059': {\n\t\tBaisakh: 31,\n\t\tJestha: 31,\n\t\tAsar: 32,\n\t\tShrawan: 31,\n\t\tBhadra: 31,\n\t\tAswin: 31,\n\t\tKartik: 30,\n\t\tMangsir: 29,\n\t\tPoush: 30,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 30,\n\t},\n\t'2060': {\n\t\tBaisakh: 31,\n\t\tJestha: 31,\n\t\tAsar: 32,\n\t\tShrawan: 32,\n\t\tBhadra: 31,\n\t\tAswin: 30,\n\t\tKartik: 30,\n\t\tMangsir: 29,\n\t\tPoush: 30,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 30,\n\t},\n\t'2061': {\n\t\tBaisakh: 31,\n\t\tJestha: 32,\n\t\tAsar: 31,\n\t\tShrawan: 32,\n\t\tBhadra: 31,\n\t\tAswin: 30,\n\t\tKartik: 30,\n\t\tMangsir: 30,\n\t\tPoush: 29,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 31,\n\t},\n\t'2062': {\n\t\tBaisakh: 30,\n\t\tJestha: 32,\n\t\tAsar: 31,\n\t\tShrawan: 32,\n\t\tBhadra: 31,\n\t\tAswin: 31,\n\t\tKartik: 29,\n\t\tMangsir: 30,\n\t\tPoush: 29,\n\t\tMagh: 30,\n\t\tFalgun: 29,\n\t\tChaitra: 31,\n\t},\n\t'2063': {\n\t\tBaisakh: 31,\n\t\tJestha: 31,\n\t\tAsar: 32,\n\t\tShrawan: 31,\n\t\tBhadra: 31,\n\t\tAswin: 31,\n\t\tKartik: 30,\n\t\tMangsir: 29,\n\t\tPoush: 30,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 30,\n\t},\n\t'2064': {\n\t\tBaisakh: 31,\n\t\tJestha: 31,\n\t\tAsar: 32,\n\t\tShrawan: 32,\n\t\tBhadra: 31,\n\t\tAswin: 30,\n\t\tKartik: 30,\n\t\tMangsir: 29,\n\t\tPoush: 30,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 30,\n\t},\n\t'2065': {\n\t\tBaisakh: 31,\n\t\tJestha: 32,\n\t\tAsar: 31,\n\t\tShrawan: 32,\n\t\tBhadra: 31,\n\t\tAswin: 30,\n\t\tKartik: 30,\n\t\tMangsir: 30,\n\t\tPoush: 29,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 31,\n\t},\n\t'2066': {\n\t\tBaisakh: 31,\n\t\tJestha: 31,\n\t\tAsar: 31,\n\t\tShrawan: 32,\n\t\tBhadra: 31,\n\t\tAswin: 31,\n\t\tKartik: 29,\n\t\tMangsir: 30,\n\t\tPoush: 30,\n\t\tMagh: 29,\n\t\tFalgun: 29,\n\t\tChaitra: 31,\n\t},\n\t'2067': {\n\t\tBaisakh: 31,\n\t\tJestha: 31,\n\t\tAsar: 32,\n\t\tShrawan: 31,\n\t\tBhadra: 31,\n\t\tAswin: 31,\n\t\tKartik: 30,\n\t\tMangsir: 29,\n\t\tPoush: 30,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 30,\n\t},\n\t'2068': {\n\t\tBaisakh: 31,\n\t\tJestha: 31,\n\t\tAsar: 32,\n\t\tShrawan: 32,\n\t\tBhadra: 31,\n\t\tAswin: 30,\n\t\tKartik: 30,\n\t\tMangsir: 29,\n\t\tPoush: 30,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 30,\n\t},\n\t'2069': {\n\t\tBaisakh: 31,\n\t\tJestha: 32,\n\t\tAsar: 31,\n\t\tShrawan: 32,\n\t\tBhadra: 31,\n\t\tAswin: 30,\n\t\tKartik: 30,\n\t\tMangsir: 30,\n\t\tPoush: 29,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 31,\n\t},\n\t'2070': {\n\t\tBaisakh: 31,\n\t\tJestha: 31,\n\t\tAsar: 31,\n\t\tShrawan: 32,\n\t\tBhadra: 31,\n\t\tAswin: 31,\n\t\tKartik: 29,\n\t\tMangsir: 30,\n\t\tPoush: 30,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 30,\n\t},\n\t'2071': {\n\t\tBaisakh: 31,\n\t\tJestha: 31,\n\t\tAsar: 32,\n\t\tShrawan: 31,\n\t\tBhadra: 31,\n\t\tAswin: 31,\n\t\tKartik: 30,\n\t\tMangsir: 29,\n\t\tPoush: 30,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 30,\n\t},\n\t'2072': {\n\t\tBaisakh: 31,\n\t\tJestha: 32,\n\t\tAsar: 31,\n\t\tShrawan: 32,\n\t\tBhadra: 31,\n\t\tAswin: 30,\n\t\tKartik: 30,\n\t\tMangsir: 29,\n\t\tPoush: 30,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 30,\n\t},\n\t'2073': {\n\t\tBaisakh: 31,\n\t\tJestha: 32,\n\t\tAsar: 31,\n\t\tShrawan: 32,\n\t\tBhadra: 31,\n\t\tAswin: 30,\n\t\tKartik: 30,\n\t\tMangsir: 30,\n\t\tPoush: 29,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 31,\n\t},\n\t'2074': {\n\t\tBaisakh: 31,\n\t\tJestha: 31,\n\t\tAsar: 31,\n\t\tShrawan: 32,\n\t\tBhadra: 31,\n\t\tAswin: 31,\n\t\tKartik: 30,\n\t\tMangsir: 29,\n\t\tPoush: 30,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 30,\n\t},\n\t'2075': {\n\t\tBaisakh: 31,\n\t\tJestha: 31,\n\t\tAsar: 32,\n\t\tShrawan: 31,\n\t\tBhadra: 31,\n\t\tAswin: 31,\n\t\tKartik: 30,\n\t\tMangsir: 29,\n\t\tPoush: 30,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 30,\n\t},\n\t'2076': {\n\t\tBaisakh: 31,\n\t\tJestha: 32,\n\t\tAsar: 31,\n\t\tShrawan: 32,\n\t\tBhadra: 31,\n\t\tAswin: 30,\n\t\tKartik: 30,\n\t\tMangsir: 30,\n\t\tPoush: 29,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 30,\n\t},\n\t'2077': {\n\t\tBaisakh: 31,\n\t\tJestha: 32,\n\t\tAsar: 31,\n\t\tShrawan: 32,\n\t\tBhadra: 31,\n\t\tAswin: 30,\n\t\tKartik: 30,\n\t\tMangsir: 30,\n\t\tPoush: 29,\n\t\tMagh: 30,\n\t\tFalgun: 29,\n\t\tChaitra: 31,\n\t},\n\t'2078': {\n\t\tBaisakh: 31,\n\t\tJestha: 31,\n\t\tAsar: 31,\n\t\tShrawan: 32,\n\t\tBhadra: 31,\n\t\tAswin: 31,\n\t\tKartik: 30,\n\t\tMangsir: 29,\n\t\tPoush: 30,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 30,\n\t},\n\t'2079': {\n\t\tBaisakh: 31,\n\t\tJestha: 31,\n\t\tAsar: 32,\n\t\tShrawan: 31,\n\t\tBhadra: 31,\n\t\tAswin: 31,\n\t\tKartik: 30,\n\t\tMangsir: 29,\n\t\tPoush: 30,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 30,\n\t},\n\t'2080': {\n\t\tBaisakh: 31,\n\t\tJestha: 32,\n\t\tAsar: 31,\n\t\tShrawan: 32,\n\t\tBhadra: 31,\n\t\tAswin: 30,\n\t\tKartik: 30,\n\t\tMangsir: 30,\n\t\tPoush: 29,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 30,\n\t},\n\t'2081': {\n\t\tBaisakh: 31,\n\t\tJestha: 32,\n\t\tAsar: 31,\n\t\tShrawan: 32,\n\t\tBhadra: 31,\n\t\tAswin: 30,\n\t\tKartik: 30,\n\t\tMangsir: 30,\n\t\tPoush: 29,\n\t\tMagh: 30,\n\t\tFalgun: 29,\n\t\tChaitra: 31,\n\t},\n\t'2082': {\n\t\tBaisakh: 31,\n\t\tJestha: 31,\n\t\tAsar: 32,\n\t\tShrawan: 31,\n\t\tBhadra: 31,\n\t\tAswin: 31,\n\t\tKartik: 30,\n\t\tMangsir: 29,\n\t\tPoush: 30,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 30,\n\t},\n\t'2083': {\n\t\tBaisakh: 31,\n\t\tJestha: 31,\n\t\tAsar: 32,\n\t\tShrawan: 31,\n\t\tBhadra: 31,\n\t\tAswin: 31,\n\t\tKartik: 30,\n\t\tMangsir: 29,\n\t\tPoush: 30,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 30,\n\t},\n\t'2084': {\n\t\tBaisakh: 31,\n\t\tJestha: 32,\n\t\tAsar: 31,\n\t\tShrawan: 32,\n\t\tBhadra: 31,\n\t\tAswin: 30,\n\t\tKartik: 30,\n\t\tMangsir: 30,\n\t\tPoush: 29,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 31,\n\t},\n\t'2085': {\n\t\tBaisakh: 30,\n\t\tJestha: 32,\n\t\tAsar: 31,\n\t\tShrawan: 32,\n\t\tBhadra: 31,\n\t\tAswin: 30,\n\t\tKartik: 30,\n\t\tMangsir: 30,\n\t\tPoush: 29,\n\t\tMagh: 30,\n\t\tFalgun: 29,\n\t\tChaitra: 31,\n\t},\n\t'2086': {\n\t\tBaisakh: 31,\n\t\tJestha: 31,\n\t\tAsar: 32,\n\t\tShrawan: 31,\n\t\tBhadra: 31,\n\t\tAswin: 31,\n\t\tKartik: 30,\n\t\tMangsir: 29,\n\t\tPoush: 30,\n\t\tMagh: 29,\n\t\tFalgun: 30,\n\t\tChaitra: 30,\n\t},\n\t'2087': {\n\t\tBaisakh: 31,\n\t\tJestha: 31,\n\t\tAsar: 32,\n\t\tShrawan: 31,\n\t\tBhadra: 31,\n\t\tAswin: 31,\n\t\tKartik: 30,\n\t\tMangsir: 30,\n\t\tPoush: 29,\n\t\tMagh: 30,\n\t\tFalgun: 30,\n\t\tChaitra: 30,\n\t},\n\t'2088': {\n\t\tBaisakh: 30,\n\t\tJestha: 31,\n\t\tAsar: 32,\n\t\tShrawan: 32,\n\t\tBhadra: 30,\n\t\tAswin: 31,\n\t\tKartik: 30,\n\t\tMangsir: 30,\n\t\tPoush: 29,\n\t\tMagh: 30,\n\t\tFalgun: 30,\n\t\tChaitra: 30,\n\t},\n\t'2089': {\n\t\tBaisakh: 30,\n\t\tJestha: 32,\n\t\tAsar: 31,\n\t\tShrawan: 32,\n\t\tBhadra: 31,\n\t\tAswin: 30,\n\t\tKartik: 30,\n\t\tMangsir: 30,\n\t\tPoush: 29,\n\t\tMagh: 30,\n\t\tFalgun: 30,\n\t\tChaitra: 30,\n\t},\n\t'2090': {\n\t\tBaisakh: 30,\n\t\tJestha: 32,\n\t\tAsar: 31,\n\t\tShrawan: 32,\n\t\tBhadra: 31,\n\t\tAswin: 30,\n\t\tKartik: 30,\n\t\tMangsir: 30,\n\t\tPoush: 29,\n\t\tMagh: 30,\n\t\tFalgun: 30,\n\t\tChaitra: 30,\n\t},\n};\n\nexport const DAY_MS = 86400000;\nexport const BS_START_YEAR = 2000;\nexport const AD_START = { year: 1943, month: 3, date: 13, day: 3 };\nexport const BS_START = { year: BS_START_YEAR, month: 1, date: 1, day: 3 };\nexport const BS_END_YEAR = Object.keys(BS_MONTH_DAYS).at(-1);\n","import { BS_MONTH_DAYS, BS_START_YEAR, DAY_MS } from './constants';\nimport { AD_REFERENCE_TIME, BS_YEAR_TOTALS, convertDigitsToNepali, convertToValidDate, days_format, daysInBsMonth, formatValidDate, normalizeDate, parseDate } from './helper';\n\nexport const format = (input: TInputDate, format: string, calendar: TCalendarType = 'bs', lang: TLang = 'en'): string => {\n\tconst date = convertToValidDate(input);\n\tconst locale = days_format[calendar][lang];\n\tconst tokenRegex = /\\b(YYYY|YYY|YY|MMM|MM|M|DD|D|ddd|dd|d)\\b/g;\n\t// const tokenRegex = /\\b(YYYY|YYY|YY|MMMM|MMM|MM|M|DD|D|ddd|dd|d)\\b/g;\n\n\tconst year = date.getFullYear().toString();\n\tconst monthIndex = date.getMonth(); // 0–11\n\tconst month = (monthIndex + 1).toString();\n\t// const month = (date.getMonth() + 1).toString();\n\tconst day = date.getDate().toString();\n\tconst weekday = date.getDay().toString();\n\n\tconst tokens: Record<string, string> = {\n\t\tYYYY: year,\n\t\tYYY: year.slice(-3),\n\t\tYY: year.slice(-2),\n\t\t// M: month,\n\t\t// MM: month.padStart(2, '0'),\n\t\t// MMM: locale.month.short[Number(month)],\n\t\t// MMMM: locale.month.long[Number(month)],\n\t\tM: month.padStart(2, '0'),\n\t\tMM: locale.month.short[monthIndex],\n\t\tMMM: locale.month.long[monthIndex],\n\t\tD: day,\n\t\tDD: day.padStart(2, '0'),\n\t\td: weekday,\n\t\tdd: locale.day.short[Number(weekday)],\n\t\tddd: locale.day.long[Number(weekday)],\n\t};\n\n\tconst result = format.replace(tokenRegex, (t) => tokens[t] ?? t);\n\treturn lang === 'np' ? convertDigitsToNepali(result, locale.date) : result;\n};\n\nexport const toAd = (input: TInputDate) => {\n\tconst bs = normalizeDate(input);\n\n\tif (!BS_MONTH_DAYS[String(bs.year)]) throw new Error('BS year not supported!');\n\tif (bs.year < BS_START_YEAR) throw new Error('BS date is below supported range!');\n\n\tlet totalDays = 0;\n\n\tfor (let y = BS_START_YEAR; y < bs.year; y++) {\n\t\ttotalDays += BS_YEAR_TOTALS[String(y)];\n\t}\n\n\tfor (let m = 1; m < bs.month; m++) {\n\t\ttotalDays += daysInBsMonth(bs.year, m);\n\t}\n\n\ttotalDays += bs.day - 1;\n\tconst adTime = AD_REFERENCE_TIME + totalDays * DAY_MS;\n\n\tconst ad = new Date(adTime);\n\tad.setHours(0, 0, 0, 0);\n\n\treturn formatValidDate(ad.getFullYear(), ad.getMonth() + 1, ad.getDate());\n};\n\nexport const toBs = (input?: TInputDate) => {\n\tconst ad = normalizeDate(input);\n\n\tconst adTime = new Date(ad.year, ad.month - 1, ad.day).getTime();\n\tlet remaining = Math.floor((adTime - AD_REFERENCE_TIME) / DAY_MS);\n\n\tif (remaining < 0) throw new Error('AD date is below supported range!');\n\n\tlet year = BS_START_YEAR;\n\n\twhile (BS_YEAR_TOTALS[String(year)] && remaining >= BS_YEAR_TOTALS[String(year)]) {\n\t\tremaining -= BS_YEAR_TOTALS[String(year)];\n\t\tyear++;\n\t}\n\n\tif (!BS_MONTH_DAYS[String(year)]) throw new Error('BS date is above supported range!');\n\n\tlet month = 1;\n\n\twhile (month <= 12) {\n\t\tconst dim = daysInBsMonth(year, month);\n\n\t\tif (remaining < dim) {\n\t\t\tconst day = remaining + 1;\n\t\t\treturn formatValidDate(year, month, day);\n\t\t}\n\n\t\tremaining -= dim;\n\t\tmonth++;\n\t}\n\n\tthrow new Error('Conversion failed!');\n};\n\nexport const startOfDay = (input?: TInputDate) => {\n\tconst d = nepaliDateFormat(input || toBs());\n\td.setHours(0, 0, 0, 0);\n\treturn d;\n};\n\nexport const endOfDay = (input?: TInputDate) => {\n\tconst d = nepaliDateFormat(input || toBs());\n\td.setHours(23, 59, 59, 999);\n\treturn d;\n};\n\nexport const isValidDate = (input: TInputDate): boolean => {\n\ttry {\n\t\tif (!input) throw new Error('Date is required!');\n\n\t\tconst d = convertToValidDate(input);\n\t\treturn !Number.isNaN(d.getTime());\n\t} catch {\n\t\treturn false;\n\t}\n};\n\nexport const isToday = (input: TInputDate): boolean => {\n\tif (!input) throw new Error('Date is required!');\n\n\tconst today = startOfDay();\n\tconst d = startOfDay(input);\n\treturn today.getTime() === d.getTime();\n};\n\nexport const isEqual = (date1: TInputDate, date2: TInputDate, strict = false): boolean => {\n\tif (!date1 && !date2) throw 'Two dates is required!';\n\n\tconst d1 = convertToValidDate(date1);\n\tconst d2 = convertToValidDate(date2);\n\n\tif (strict) return d1.getTime() === d2.getTime();\n\treturn formatValidDate(d1) === formatValidDate(d2);\n};\n\nexport const isAfter = (date1: TInputDate, date2: TInputDate, strict = false): boolean => {\n\tif (!date1 && !date2) throw 'Two dates is required!';\n\n\tconst d1 = convertToValidDate(date1);\n\tconst d2 = convertToValidDate(date2);\n\n\tif (strict) return d1.getTime() > d2.getTime();\n\treturn formatValidDate(d1) > formatValidDate(d2);\n};\n\nexport const isBefore = (date1: TInputDate, date2: TInputDate, strict = false): boolean => {\n\tif (!date1 && !date2) throw 'Two dates is required!';\n\n\tconst d1 = convertToValidDate(date1);\n\tconst d2 = convertToValidDate(date2);\n\n\tif (strict) return d1.getTime() < d2.getTime();\n\treturn formatValidDate(d1) < formatValidDate(d2);\n};\n\nexport const nepaliDateFormat = (input?: TInputDate) => {\n\treturn convertToValidDate(input);\n};\n\nexport const nepaliDate = (input?: TInputDate) => {\n\treturn input ? formatValidDate(input) : toBs();\n};\n\nexport const getMonthStartDate = (input?: TInputDate): string => {\n\tconst { year, month } = parseDate(input);\n\treturn formatValidDate(year, month, 1);\n};\n\nexport const getMonthEndDate = (input?: TInputDate): string => {\n\tconst { year, month } = parseDate(input);\n\tconst lastDay = daysInBsMonth(year, month);\n\treturn formatValidDate(year, month, lastDay);\n};\n\nexport const setDate = (input: TInputDate, day: number): string => {\n\tconst { year, month } = parseDate(input);\n\tconst max = daysInBsMonth(year, month);\n\n\tif (day < 1 || day > max) {\n\t\tthrow new Error('Invalid BS day!');\n\t}\n\n\treturn formatValidDate(year, month, day);\n};\n\nexport const setMonth = (input: TInputDate, month: number): string => {\n\tconst { year, day } = parseDate(input);\n\n\tif (month < 1 || month > 12) {\n\t\tthrow new Error('Invalid month!');\n\t}\n\n\tconst max = daysInBsMonth(year, month);\n\tconst safeDay = Math.min(day, max);\n\n\treturn formatValidDate(year, month, safeDay);\n};\n\nexport const setYear = (input: TInputDate, year: number): string => {\n\tconst { month, day } = parseDate(input);\n\n\tif (!BS_MONTH_DAYS[String(year)]) {\n\t\tthrow new Error('Unsupported BS year!');\n\t}\n\n\tconst max = daysInBsMonth(year, month);\n\tconst safeDay = Math.min(day, max);\n\n\treturn formatValidDate(year, month, safeDay);\n};\n\nexport const addDaysFromToday = (days: number): string => {\n\tconst now = new Date();\n\tconst result = new Date(now.getTime() + days * DAY_MS);\n\treturn toBs(result);\n};\n\nexport const subtractDaysFromToday = (days: number): string => {\n\tconst now = new Date();\n\tconst result = new Date(now.getTime() - days * DAY_MS);\n\treturn toBs(result);\n};\n\nexport const addTimeFromToday = (hours = 0, minutes = 0, seconds = 0) => {\n\tconst d = startOfDay();\n\treturn new Date(d.getTime() + hours * 3600000 + minutes * 60000 + seconds * 1000);\n};\n\nexport const subtractTimeFromEndOfDay = (hours = 0, minutes = 0, seconds = 0) => {\n\tconst d = endOfDay();\n\treturn new Date(d.getTime() - hours * 3600000 - minutes * 60000 - seconds * 1000);\n};\n\nexport const addTimeFromNow = (hours = 0, minutes = 0, seconds = 0) => {\n\tconst now = nepaliDateFormat(new Date());\n\treturn new Date(now.getTime() + hours * 3600000 + minutes * 60000 + seconds * 1000);\n};\n\nexport const subtractTimeFromNow = (hours = 0, minutes = 0, seconds = 0) => {\n\tconst now = nepaliDateFormat(new Date());\n\treturn new Date(now.getTime() - hours * 3600000 - minutes * 60000 - seconds * 1000);\n};\n\nexport const getDatesBetween = (startDate: TInputDate, endDate: TInputDate): string[] => {\n\tif (!startDate || !endDate) throw 'Two dates are required!';\n\n\tconst start = convertToValidDate(startDate);\n\tconst end = convertToValidDate(endDate);\n\n\tif (start.getTime() > end.getTime()) {\n\t\tthrow 'Start date must be before end date';\n\t}\n\n\tconst dates: string[] = [];\n\tconst current = new Date(start);\n\n\twhile (current.getTime() <= end.getTime()) {\n\t\tdates.push(formatValidDate(current));\n\t\tcurrent.setDate(current.getDate() + 1);\n\t}\n\n\treturn dates;\n};\n\nexport const date = (input?: TInputDate): TDateInstance => {\n\tconst value = input ? formatValidDate(input) : toBs();\n\n\treturn {\n\t\tvalue,\n\n\t\tformat: (fmt: string, lang: TLang = 'en') => {\n\t\t\treturn format(value, fmt, 'bs', lang);\n\t\t},\n\n\t\tisAfter: (date: TInputDate, strict = false) => {\n\t\t\treturn isAfter(value, date, strict);\n\t\t},\n\n\t\tisBefore: (date: TInputDate, strict = false) => {\n\t\t\treturn isBefore(value, date, strict);\n\t\t},\n\n\t\tisEqual: (date: TInputDate, strict = false) => {\n\t\t\treturn isEqual(value, date, strict);\n\t\t},\n\n\t\ttoAd: () => {\n\t\t\treturn toAd(value);\n\t\t},\n\n\t\ttoBs: () => {\n\t\t\treturn value;\n\t\t},\n\t};\n};\n","import { toAd } from '.';\nimport { AD_START, BS_MONTH_DAYS } from './constants';\n\nexport const days_format = {\n\tbs: {\n\t\ten: {\n\t\t\tday: {\n\t\t\t\tshort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n\t\t\t\tlong: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],\n\t\t\t},\n\t\t\tmonth: {\n\t\t\t\tshort: ['Bai', 'Jes', 'Asa', 'Shr', 'Bhd', 'Asw', 'Kar', 'Man', 'Pou', 'Mag', 'Fal', 'Cha'],\n\t\t\t\tlong: ['Baisakh', 'Jestha', 'Asar', 'Shrawan', 'Bhadra', 'Aswin', 'Kartik', 'Mangsir', 'Poush', 'Magh', 'Falgun', 'Chaitra'] as const, // as const is used to get it & use it while converting dates\n\t\t\t},\n\t\t\tdate: ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'],\n\t\t},\n\t\tnp: {\n\t\t\tday: {\n\t\t\t\tshort: ['आइत', 'सोम', 'मंगल', 'बुध', 'बिहि', 'शुक्र', 'शनि'],\n\t\t\t\tlong: ['आइतबार', 'सोमबार', 'मंगलबार', 'बुधबार', 'बिहिबार', 'शुक्रबार', 'शनिबार'],\n\t\t\t},\n\t\t\tmonth: {\n\t\t\t\tshort: ['बै', 'जे', 'अ', 'श्रा', 'भा', 'आ', 'का', 'मं', 'पौ', 'मा', 'फा', 'चै'],\n\t\t\t\tlong: ['बैशाख', 'जेठ', 'असार', 'श्रावण', 'भाद्र', 'आश्विन', 'कार्तिक', 'मंसिर', 'पौष', 'माघ', 'फाल्गुण', 'चैत्र'],\n\t\t\t},\n\t\t\tdate: ['०', '१', '२', '३', '४', '५', '६', '७', '८', '९'],\n\t\t},\n\t},\n\tad: {\n\t\ten: {\n\t\t\tday: {\n\t\t\t\tshort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n\t\t\t\tlong: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],\n\t\t\t},\n\t\t\tmonth: {\n\t\t\t\tshort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n\t\t\t\tlong: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],\n\t\t\t},\n\t\t\tdate: ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'],\n\t\t},\n\t\tnp: {\n\t\t\tday: {\n\t\t\t\tshort: ['आइत', 'सोम', 'मंगल', 'बुध', 'बिहि', 'शुक्र', 'शनि'],\n\t\t\t\tlong: ['आइतबार', 'सोमबार', 'मंगलबार', 'बुधबार', 'बिहिबार', 'शुक्रबार', 'शनिबार'],\n\t\t\t},\n\t\t\tmonth: {\n\t\t\t\tshort: ['जन', 'फेब', 'मार्च', 'अप्रि', 'मे', 'जुन', 'जुल', 'अग', 'सेप', 'अक्टो', 'नोभे', 'डिसे'],\n\t\t\t\tlong: ['जनवरी', 'फेब्रुअरी', 'मार्च', 'अप्रिल', 'मे', 'जुन', 'जुलाई', 'अगस्ट', 'सेप्टेम्बर', 'अक्टोबर', 'नोभेम्बर', 'डिसेम्बर'],\n\t\t\t},\n\t\t\tdate: ['०', '१', '२', '३', '४', '५', '६', '७', '८', '९'],\n\t\t},\n\t},\n};\n\nexport const BS_MONTHS = days_format.bs.en.month.long;\n\nexport const monthDays = (year: number, month: number) => {\n\treturn BS_MONTH_DAYS[String(year)][BS_MONTHS[month - 1]];\n};\n\nexport const convertToValidDate = (input?: TInputDate, calendar: 'ad' | 'bs' = 'ad'): Date => {\n\tif (!input) return new Date();\n\tif (input instanceof Date) return input;\n\tif (typeof input === 'string') return new Date(input);\n\tif (typeof input === 'object') {\n\t\tif ('year' in input && 'month' in input && 'day' in input && typeof input.year === 'number' && typeof input.month === 'number' && typeof input.day === 'number') {\n\t\t\tif (calendar === 'bs') {\n\t\t\t\tconst maxDays = monthDays(input.year, input.month);\n\n\t\t\t\tif (input.day < 1 || input.day > maxDays) {\n\t\t\t\t\tthrow new Error('Invalid BS date');\n\t\t\t\t}\n\n\t\t\t\tconst ad = toAd({ year: input.year, month: input.month, day: input.day });\n\t\t\t\treturn new Date(ad);\n\t\t\t}\n\n\t\t\tconst d = new Date(input.year, input.month - 1, input.day);\n\n\t\t\tif (d.getFullYear() !== input.year || d.getMonth() !== input.month - 1 || d.getDate() !== input.day) {\n\t\t\t\tthrow new Error('Invalid AD date');\n\t\t\t}\n\n\t\t\treturn d;\n\t\t}\n\n\t\tif ('toDate' in input && typeof input.toDate === 'function') {\n\t\t\treturn input.toDate();\n\t\t}\n\n\t\tif ('$d' in input && input.$d instanceof Date) {\n\t\t\treturn input.$d;\n\t\t}\n\n\t\tif ('_d' in input && input._d instanceof Date) {\n\t\t\treturn input._d;\n\t\t}\n\t}\n\n\tthrow new Error('Unsupported date format!');\n};\n\nexport const convertDigitsToNepali = (value: string, digits: readonly string[]): string => {\n\treturn value.replace(/\\d/g, (d) => digits[Number(d)]);\n};\n\nconst BS_MONTH_KEYS = days_format.bs.en.month.long;\n\n// Precompute yearly totals once\nexport const BS_YEAR_TOTALS: Record<string, number> = {};\n\nfor (const [year, months] of Object.entries(BS_MONTH_DAYS)) {\n\tBS_YEAR_TOTALS[year] = BS_MONTH_KEYS.reduce((sum, m) => sum + months[m], 0);\n}\n\nexport const AD_REFERENCE_TIME = new Date(AD_START.year, AD_START.month, AD_START.date).setHours(0, 0, 0, 0);\n\nexport const daysInBsMonth = (year: number, month: number): number => {\n\tconst yearData = BS_MONTH_DAYS[String(year)];\n\tif (!yearData) throw new Error('Unsupported BS year!');\n\treturn yearData[BS_MONTH_KEYS[month - 1]];\n};\n\nexport const normalizeDate = (input?: TInputDate): TDateFormat => {\n\tconst d = convertToValidDate(input);\n\td.setHours(0, 0, 0, 0);\n\n\treturn {\n\t\tyear: d.getFullYear(),\n\t\tmonth: d.getMonth() + 1,\n\t\tday: d.getDate(),\n\t};\n};\n\nexport const formatValidDate = (year: TInputDate | number, month?: number, day?: number): string => {\n\tlet date;\n\n\tif (typeof year === 'number' && typeof month === 'number' && typeof day === 'number') {\n\t\tdate = { year, month, day };\n\t} else {\n\t\tdate = normalizeDate(year as TInputDate);\n\t}\n\n\treturn date?.year + '-' + String(date?.month).padStart(2, '0') + '-' + String(date?.day).padStart(2, '0');\n};\n\nexport const parseDate = (input?: TInputDate): TDateFormat => {\n\tconst bsDate = formatValidDate(input as TInputDate);\n\n\tconst [year, month, day] = bsDate.split('-').map(Number);\n\treturn { year, month, day };\n};\n","import { useEffect, useRef, useState } from 'react';\nimport { BS_MONTH_DAYS } from '../../core/src/constants';\nimport { BS_MONTHS, convertToValidDate, days_format, formatValidDate, monthDays, parseDate } from '../../core/src/helper';\nimport { getDatesBetween, isAfter, isToday, toBs } from '../../core/src';\nimport { createPortal } from 'react-dom';\n\nconst usePopoverPosition = (triggerRef: any, open: boolean) => {\n\tconst [position, setPosition] = useState<'top' | 'bottom'>('bottom');\n\n\tuseEffect(() => {\n\t\tif (!open || !triggerRef.current) return;\n\n\t\tconst update = () => {\n\t\t\tconst rect = triggerRef.current.getBoundingClientRect();\n\t\t\tconst spaceBelow = window.innerHeight - rect.bottom;\n\t\t\tconst spaceAbove = rect.top;\n\n\t\t\tif (spaceBelow < 340 && spaceAbove > spaceBelow) {\n\t\t\t\tsetPosition('top');\n\t\t\t} else {\n\t\t\t\tsetPosition('bottom');\n\t\t\t}\n\t\t};\n\n\t\tupdate();\n\n\t\twindow.addEventListener('scroll', update, true);\n\t\twindow.addEventListener('resize', update);\n\n\t\treturn () => {\n\t\t\twindow.removeEventListener('scroll', update, true);\n\t\t\twindow.removeEventListener('resize', update);\n\t\t};\n\t}, [open, triggerRef]);\n\n\treturn position;\n};\n\nconst CalendarPanel = ({\n\tvalue,\n\tonChange,\n\tminDate,\n\tmaxDate,\n\tdisabled,\n\trangeStart,\n\trangeEnd,\n\ttempDate,\n\tsetTempDate,\n\tisRange,\n}: {\n\tvalue?: TInputDate;\n\tonChange?: (e: string, el?: string) => void;\n\tminDate?: TInputDate;\n\tmaxDate?: TInputDate;\n\tdisabled?: boolean;\n\trangeStart?: TInputDate;\n\trangeEnd?: TInputDate;\n\ttempDate?: string;\n\tisRange?: boolean;\n\tsetTempDate?: any;\n}) => {\n\tconst initialDate = parseDate(value || toBs());\n\tconst [bsYear, setBsYear] = useState(initialDate?.year);\n\tconst [bsMonth, setBsMonth] = useState(initialDate?.month);\n\tconst [daysInMonth, setdaysInMonth] = useState(0);\n\n\tuseEffect(() => {\n\t\tsetdaysInMonth(monthDays(bsYear, bsMonth));\n\t}, [bsMonth, bsYear]);\n\n\tconst toggleMonth = (type: 'next' | 'prev' = 'prev') => {\n\t\tif (type === 'prev') {\n\t\t\tif (bsMonth === 1) {\n\t\t\t\tsetBsMonth(12);\n\t\t\t\tsetBsYear((y) => y - 1);\n\t\t\t} else {\n\t\t\t\tsetBsMonth((m) => m - 1);\n\t\t\t}\n\t\t} else {\n\t\t\tif (bsMonth === 12) {\n\t\t\t\tsetBsMonth(1);\n\t\t\t\tsetBsYear((y) => y + 1);\n\t\t\t} else {\n\t\t\t\tsetBsMonth((m) => m + 1);\n\t\t\t}\n\t\t}\n\t};\n\n\tconst checkDisable = (dateStr: { year: number; month: number; day: number }) => {\n\t\tif (disabled || (minDate && isAfter(minDate, dateStr)) || (maxDate && isAfter(dateStr, maxDate)) || (tempDate && isAfter(tempDate, dateStr))) {\n\t\t\treturn true;\n\t\t} else {\n\t\t\treturn false;\n\t\t}\n\t};\n\n\treturn (\n\t\t<div className='w-70 bg-white shadow-md rounded-xl border p-2 space-y-2'>\n\t\t\t<style>\n\t\t\t\t{`.hover-calender:hover {\n\t\t\t\t\t\t\t\tbackground:#9810fa7a;\n\t\t}`}\n\t\t\t</style>\n\t\t\t<div className='flex items-center justify-between'>\n\t\t\t\t<button onClick={() => toggleMonth('prev')} className='text-3xl cursor-pointer h-full w-10 text-neutral-600 hover:text-black hover:bg-neutral-200 rounded-md pb-1 transition'>\n\t\t\t\t\t‹\n\t\t\t\t</button>\n\n\t\t\t\t<div className='flex gap-2'>\n\t\t\t\t\t<select\n\t\t\t\t\t\tvalue={bsYear}\n\t\t\t\t\t\tonChange={(e) => setBsYear(Number(e.target.value))}\n\t\t\t\t\t\tclassName='bg-white border border-neutral-300 text-xs p-1.5 font-semibold text-neutral-700 text-center rounded-md focus:outline-none focus:ring-1 focus:ring-black transition'\n\t\t\t\t\t>\n\t\t\t\t\t\t{Object.keys(BS_MONTH_DAYS).map((y) => (\n\t\t\t\t\t\t\t<option key={y} value={y}>\n\t\t\t\t\t\t\t\t{y}\n\t\t\t\t\t\t\t</option>\n\t\t\t\t\t\t))}\n\t\t\t\t\t</select>\n\n\t\t\t\t\t<select\n\t\t\t\t\t\tvalue={bsMonth}\n\t\t\t\t\t\tonChange={(e) => setBsMonth(Number(e.target.value))}\n\t\t\t\t\t\tclassName='bg-white border border-neutral-300 p-1.5 text-xs font-semibold text-neutral-700 text-center rounded-md focus:outline-none focus:ring-1 focus:ring-black transition'\n\t\t\t\t\t>\n\t\t\t\t\t\t{BS_MONTHS.map((m, i) => (\n\t\t\t\t\t\t\t<option key={m} value={i + 1}>\n\t\t\t\t\t\t\t\t{m}\n\t\t\t\t\t\t\t</option>\n\t\t\t\t\t\t))}\n\t\t\t\t\t</select>\n\t\t\t\t</div>\n\n\t\t\t\t<button onClick={() => toggleMonth('next')} className='text-3xl h-full cursor-pointer w-10 text-neutral-600 hover:text-black hover:bg-neutral-200 rounded-md pb-1 transition'>\n\t\t\t\t\t›\n\t\t\t\t</button>\n\t\t\t</div>\n\n\t\t\t<div className='border-t border-b py-3 space-y-1'>\n\t\t\t\t<div\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\tdisplay: 'grid',\n\t\t\t\t\t\tgridTemplateColumns: 'repeat(7, minmax(0, 1fr))',\n\t\t\t\t\t}}\n\t\t\t\t\tclassName='place-content-center text-[10px] text-neutral-500 font-semibold'\n\t\t\t\t>\n\t\t\t\t\t{['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'].map((d) => (\n\t\t\t\t\t\t<div key={d} className='text-center'>\n\t\t\t\t\t\t\t{d}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t))}\n\t\t\t\t</div>\n\n\t\t\t\t<div\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\tdisplay: 'grid',\n\t\t\t\t\t\tgridTemplateColumns: 'repeat(7, minmax(0, 1fr))',\n\t\t\t\t\t}}\n\t\t\t\t\tclassName='place-content-center'\n\t\t\t\t>\n\t\t\t\t\t{Array.from({ length: convertToValidDate({ year: bsYear, month: bsMonth, day: 1 }, 'bs').getDay() }).map((_, i) => (\n\t\t\t\t\t\t<div key={'e' + i} />\n\t\t\t\t\t))}\n\n\t\t\t\t\t{Array.from({ length: daysInMonth }).map((_, i) => {\n\t\t\t\t\t\tconst day = i + 1;\n\n\t\t\t\t\t\tconst inRange = !tempDate && rangeStart && rangeEnd && getDatesBetween(rangeStart, rangeEnd);\n\t\t\t\t\t\tconst today = isToday({ year: bsYear, month: bsMonth, day });\n\t\t\t\t\t\tconst checkDate = formatValidDate(bsYear, bsMonth, day);\n\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\t\t\tif (onChange && setTempDate && !tempDate) {\n\t\t\t\t\t\t\t\t\t\tsetTempDate(checkDate);\n\t\t\t\t\t\t\t\t\t} else if (onChange) {\n\t\t\t\t\t\t\t\t\t\tonChange(checkDate, tempDate);\n\t\t\t\t\t\t\t\t\t\tsetTempDate && setTempDate(undefined);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\tdisabled={checkDisable({ year: bsYear, month: bsMonth, day })}\n\t\t\t\t\t\t\t\tkey={day}\n\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\tbackground:\n\t\t\t\t\t\t\t\t\t\ttempDate && tempDate === checkDate\n\t\t\t\t\t\t\t\t\t\t\t? '#9810fa'\n\t\t\t\t\t\t\t\t\t\t\t: (!isRange && value === checkDate) || (Array.isArray(inRange) && inRange[0] === checkDate) || (Array.isArray(inRange) && inRange[inRange.length - 1] === checkDate)\n\t\t\t\t\t\t\t\t\t\t\t\t? '#9810fa'\n\t\t\t\t\t\t\t\t\t\t\t\t: Array.isArray(inRange) && inRange.includes(checkDate)\n\t\t\t\t\t\t\t\t\t\t\t\t\t? '#9810fa7a'\n\t\t\t\t\t\t\t\t\t\t\t\t\t: today\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? '#131313'\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: '',\n\t\t\t\t\t\t\t\t\tcolor:\n\t\t\t\t\t\t\t\t\t\t(tempDate && tempDate === checkDate) ||\n\t\t\t\t\t\t\t\t\t\t(!isRange && value === checkDate) ||\n\t\t\t\t\t\t\t\t\t\t(Array.isArray(inRange) && inRange[0] === checkDate) ||\n\t\t\t\t\t\t\t\t\t\t(Array.isArray(inRange) && inRange[inRange.length - 1] === checkDate) ||\n\t\t\t\t\t\t\t\t\t\t(Array.isArray(inRange) && inRange.includes(checkDate)) ||\n\t\t\t\t\t\t\t\t\t\ttoday\n\t\t\t\t\t\t\t\t\t\t\t? 'white'\n\t\t\t\t\t\t\t\t\t\t\t: checkDisable({ year: bsYear, month: bsMonth, day })\n\t\t\t\t\t\t\t\t\t\t\t\t? '#888888'\n\t\t\t\t\t\t\t\t\t\t\t\t: '',\n\t\t\t\t\t\t\t\t\tcursor: checkDisable({ year: bsYear, month: bsMonth, day }) ? 'not-allowed' : 'pointer',\n\t\t\t\t\t\t\t\t\tborderRadius:\n\t\t\t\t\t\t\t\t\t\tArray.isArray(inRange) && inRange[0] === checkDate\n\t\t\t\t\t\t\t\t\t\t\t? '6px 0 0 6px'\n\t\t\t\t\t\t\t\t\t\t\t: Array.isArray(inRange) && inRange[inRange.length - 1] === checkDate\n\t\t\t\t\t\t\t\t\t\t\t\t? '0 6px 6px 0'\n\t\t\t\t\t\t\t\t\t\t\t\t: !isRange || tempDate\n\t\t\t\t\t\t\t\t\t\t\t\t\t? '6px'\n\t\t\t\t\t\t\t\t\t\t\t\t\t: today\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? '6px'\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: '',\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\tclassName={`w-full hover-calender cursor-pointer h-8 text-xs text-neutral-700 hover:text-white transition`}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{day}\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t);\n\t\t\t\t\t})}\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t<div className='flex justify-center'>\n\t\t\t\t<button onClick={() => onChange && onChange(toBs())} className='text-sm cursor-pointer text-neutral-600 rounded-md'>\n\t\t\t\t\tToday\n\t\t\t\t</button>\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n\nconst useOutsideClick = (ref: any, handler: any, active: boolean) => {\n\tuseEffect(() => {\n\t\tif (!active) return;\n\n\t\tconst listener = (event: any) => {\n\t\t\tconst target = event.target as Node;\n\t\t\tfor (const re of ref) {\n\t\t\t\tif (re.current && re.current.contains(target)) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\thandler();\n\t\t};\n\n\t\tdocument.addEventListener('mousedown', listener);\n\t\treturn () => document.removeEventListener('mousedown', listener);\n\t}, [ref, handler, active]);\n};\n\nexport const DatePicker = ({\n\tvalue,\n\tonChange,\n\tminDate,\n\tmaxDate,\n\tdisabled,\n\tallowClear = true,\n\tplaceholder = 'Select date',\n}: {\n\tvalue?: string;\n\tonChange?: (e: string) => void;\n\tminDate?: TInputDate;\n\tmaxDate?: TInputDate;\n\tdisabled?: boolean;\n\tallowClear?: boolean;\n\tplaceholder?: string;\n}) => {\n\tconst [open, setOpen] = useState(false);\n\tconst triggerRef = useRef<HTMLDivElement | null>(null);\n\tconst panelRef = useRef<HTMLDivElement | null>(null);\n\n\tconst position = usePopoverPosition(triggerRef, open);\n\n\tuseOutsideClick([triggerRef, panelRef], () => setOpen(false), open);\n\tconst rect = triggerRef.current?.getBoundingClientRect();\n\n\treturn (\n\t\t<div className={`relative`} ref={triggerRef}>\n\t\t\t<div\n\t\t\t\tonClick={() => !disabled && setOpen(!open)}\n\t\t\t\tclassName={`flex items-center justify-between border border-gray-300 rounded-lg p-2 bg-white cursor-pointer focus-within:ring-2 focus-within:ring-blue-500 ${disabled ? 'bg-gray-100 cursor-not-allowed text-gray-400' : ''}`}\n\t\t\t>\n\t\t\t\t<span className='text-sm'>{value ? formatValidDate(value) : <span className='text-neutral-400'>{placeholder}</span>}</span>\n\n\t\t\t\t{allowClear && value && !disabled && (\n\t\t\t\t\t<button\n\t\t\t\t\t\tonClick={(e) => {\n\t\t\t\t\t\t\te.stopPropagation();\n\t\t\t\t\t\t\tonChange && onChange('');\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tclassName='size-4 grid place-content-center border rounded-full text-sm border-neutral-500 cursor-pointer text-neutral-500'\n\t\t\t\t\t>\n\t\t\t\t\t\t×\n\t\t\t\t\t</button>\n\t\t\t\t)}\n\t\t\t</div>\n\n\t\t\t{open &&\n\t\t\t\trect &&\n\t\t\t\tcreatePortal(\n\t\t\t\t\t<div\n\t\t\t\t\t\tref={panelRef}\n\t\t\t\t\t\tclassName='absolute'\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\ttop: position === 'top' ? rect.top - 360 : rect.bottom + 8,\n\t\t\t\t\t\t\tleft: rect.left,\n\t\t\t\t\t\t\tzIndex: 999999,\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t<CalendarPanel\n\t\t\t\t\t\t\tvalue={value}\n\t\t\t\t\t\t\tonChange={(date: string) => {\n\t\t\t\t\t\t\t\tif (onChange) {\n\t\t\t\t\t\t\t\t\tonChange(date);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tsetOpen(false);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tminDate={minDate}\n\t\t\t\t\t\t\tmaxDate={maxDate}\n\t\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>,\n\t\t\t\t\tdocument.body,\n\t\t\t\t)}\n\t\t</div>\n\t);\n};\n\nexport const RangePicker = ({\n\tvalue,\n\tonChange,\n\tminDate,\n\tmaxDate,\n\tdisabled,\n\tallowClear = true,\n\tplaceholder = 'Select date',\n}: {\n\tvalue?: string[];\n\tonChange?: (e: string[]) => void;\n\tminDate?: TInputDate;\n\tmaxDate?: TInputDate;\n\tdisabled?: boolean;\n\tallowClear?: boolean;\n\tplaceholder?: string;\n}) => {\n\tconst [open, setOpen] = useState(false);\n\tconst [tempDate, setTempDate] = useState<undefined | string>(undefined);\n\n\tconst triggerRef = useRef<HTMLDivElement | null>(null);\n\tconst panelRef = useRef<HTMLDivElement | null>(null);\n\n\tconst position = usePopoverPosition(triggerRef, open);\n\n\tconst [start, end] = value || [];\n\n\tuseOutsideClick(\n\t\t[triggerRef, panelRef],\n\t\t() => {\n\t\t\tsetOpen(false);\n\t\t\tsetTempDate(undefined);\n\t\t},\n\t\topen,\n\t);\n\tconst rect = triggerRef.current?.getBoundingClientRect();\n\n\treturn (\n\t\t<div className={`relative`} ref={triggerRef}>\n\t\t\t<div\n\t\t\t\tonClick={() => !disabled && setOpen(!open)}\n\t\t\t\tclassName={`flex items-center justify-between border border-gray-300 rounded-lg p-2 bg-white cursor-pointer focus-within:ring-2 focus-within:ring-blue-500 ${disabled ? 'bg-gray-100 cursor-not-allowed text-gray-400' : ''}`}\n\t\t\t>\n\t\t\t\t<span className='text-sm'>{start && end ? `${start} ${end}` : <span className='text-neutral-400'>{placeholder}</span>}</span>\n\n\t\t\t\t{allowClear && start && end && !disabled && (\n\t\t\t\t\t<button\n\t\t\t\t\t\tonClick={(e) => {\n\t\t\t\t\t\t\te.stopPropagation();\n\t\t\t\t\t\t\tonChange && onChange([]);\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tclassName='size-4 grid place-content-center border rounded-full cursor-pointer text-sm border-neutral-500 text-neutral-500'\n\t\t\t\t\t>\n\t\t\t\t\t\t×\n\t\t\t\t\t</button>\n\t\t\t\t)}\n\t\t\t</div>\n\n\t\t\t{open &&\n\t\t\t\trect &&\n\t\t\t\tcreatePortal(\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName='absolute'\n\t\t\t\t\t\tref={panelRef}\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\ttop: position === 'top' ? rect.top - 360 : rect.bottom + 8,\n\t\t\t\t\t\t\tleft: rect.left,\n\t\t\t\t\t\t\tzIndex: 999999,\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t<CalendarPanel\n\t\t\t\t\t\t\tisRange\n\t\t\t\t\t\t\ttempDate={tempDate}\n\t\t\t\t\t\t\tsetTempDate={setTempDate}\n\t\t\t\t\t\t\tvalue={start}\n\t\t\t\t\t\t\tonChange={(date1: string, date2?: string) => {\n\t\t\t\t\t\t\t\tif (onChange) {\n\t\t\t\t\t\t\t\t\tif (date2) {\n\t\t\t\t\t\t\t\t\t\tif (isAfter(date2, date1)) {\n\t\t\t\t\t\t\t\t\t\t\tonChange([date1, date2]);\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\tonChange([date2, date1]);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tonChange([date1, date1]);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tsetTempDate(undefined);\n\t\t\t\t\t\t\t\tsetOpen(false);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tminDate={minDate}\n\t\t\t\t\t\t\tmaxDate={maxDate}\n\t\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\t\trangeStart={start}\n\t\t\t\t\t\t\trangeEnd={end}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>,\n\t\t\t\t\tdocument.body,\n\t\t\t\t)}\n\t\t</div>\n\t);\n};\n"]}
|