UNPKG

kenat

Version:

A JavaScript library for the Ethiopian calendar with date and time support.

2 lines 80.4 kB
"use strict";var Kenat=(()=>{var X=Object.defineProperty;var ht=Object.getOwnPropertyDescriptor;var mt=Object.getOwnPropertyNames;var ct=Object.prototype.hasOwnProperty;var c=(i,e)=>X(i,"name",{value:e,configurable:!0});var dt=(i,e)=>{for(var t in e)X(i,t,{get:e[t],enumerable:!0})},lt=(i,e,t,a)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of mt(e))!ct.call(i,n)&&n!==t&&X(i,n,{get:()=>e[n],enumerable:!(a=ht(e,n))||a.enumerable});return i};var gt=i=>lt(X({},"__esModule",{value:!0}),i);var yt={};dt(yt,{FastingKeys:()=>N,HolidayNames:()=>ze,HolidayTags:()=>l,MonthGrid:()=>K,Time:()=>C,default:()=>ft,diffBreakdown:()=>se,getBahireHasab:()=>z,getFastingDays:()=>ot,getFastingInfo:()=>rt,getFastingPeriod:()=>de,getHoliday:()=>v,getHolidaysForYear:()=>et,getHolidaysInMonth:()=>q,monthNames:()=>D,toArabic:()=>oe,toEC:()=>L,toGC:()=>A,toGeez:()=>b});var ge=class ge extends Error{constructor(e){super(e),this.name=this.constructor.name}toJSON(){return{type:this.name,message:this.message}}};c(ge,"KenatError");var G=ge,ue=class ue extends G{constructor(e,t,a){super(`Invalid Ethiopian date: ${e}/${t}/${a}`),this.date={year:e,month:t,day:a}}toJSON(){return{...super.toJSON(),date:this.date,validRange:{month:"1\u201313",day:"1\u201330 (or 5/6 for the 13th month)"}}}};c(ue,"InvalidEthiopianDateError");var F=ue,pe=class pe extends G{constructor(e,t,a){super(`Invalid Gregorian date: ${e}/${t}/${a}`),this.date={year:e,month:t,day:a}}toJSON(){return{...super.toJSON(),date:this.date,validRange:{month:"1\u201312",day:"1\u201331 (depending on month)"}}}};c(pe,"InvalidGregorianDateError");var ee=pe,fe=class fe extends G{constructor(e){super(`Invalid date string format: "${e}". Expected 'yyyy/mm/dd' or 'yyyy-mm-dd'.`),this.inputString=e}toJSON(){return{...super.toJSON(),inputString:this.inputString}}};c(fe,"InvalidDateFormatError");var te=fe,ye=class ye extends G{constructor(e){let t=typeof e;super(`Unrecognized input type for Kenat constructor: ${t}`),this.input=e}toJSON(){return{...super.toJSON(),inputType:typeof this.input}}};c(ye,"UnrecognizedInputError");var ae=ye,be=class be extends G{constructor(e){super(e)}};c(be,"GeezConverterError");var B=be,we=class we extends G{constructor(e,t,a,n){let r=typeof n;super(`Invalid type for parameter '${t}' in function '${e}'. Expected '${a}' but got '${r}'.`),this.functionName=e,this.parameterName=t,this.expectedType=a,this.receivedValue=n}toJSON(){return{...super.toJSON(),functionName:this.functionName,parameterName:this.parameterName,expectedType:this.expectedType,receivedType:typeof this.receivedValue}}};c(we,"InvalidInputTypeError");var _=we,Ee=class Ee extends G{constructor(e){super(e)}};c(Ee,"InvalidTimeError");var M=Ee,Se=class Se extends G{constructor(e){super(e)}};c(Se,"InvalidGridConfigError");var J=Se,De=class De extends G{constructor(e){super(`Unknown movable holiday key: "${e}"`),this.holidayKey=e}toJSON(){return{...super.toJSON(),holidayKey:this.holidayKey}}};c(De,"UnknownHolidayError");var ne=De;function f(i,e){for(let[t,a]of Object.entries(e))if(typeof a!="number"||isNaN(a))throw new _(i,t,"number",a)}c(f,"validateNumericInputs");function k(i,e,t){if(typeof i!="object"||i===null)throw new _(e,t,"object",i);let a=i;f(e,{[`${t}.year`]:a.year,[`${t}.month`]:a.month,[`${t}.day`]:a.day})}c(k,"validateEthiopianDateObject");function Fe(i,e,t){let a=[31,V(i)?29:28,31,30,31,30,31,31,30,31,30,31],n=0;for(let r=0;r<e-1;r++)n+=a[r];return n+=t,n}c(Fe,"dayOfYear");function Be(i,e){let t=[31,V(i)?29:28,31,30,31,30,31,31,30,31,30,31],a=1;for(;e>t[a-1];)e-=t[a-1],a++;return{month:a,day:e}}c(Be,"monthDayFromDayOfYear");function V(i){return i%4===0&&i%100!==0||i%400===0}c(V,"isGregorianLeapYear");function x(i){return i%4===3}c(x,"isEthiopianLeapYear");function H(i,e){return e===13?x(i)?6:5:30}c(H,"getEthiopianDaysInMonth");function O({year:i,month:e,day:t}){let a=A(i,e,t);return new Date(a.year,a.month-1,a.day).getDay()}c(O,"getWeekday");function Ue(i,e,t){return!(e<1||e>13||t<1||t>H(i,e))}c(Ue,"isValidEthiopianDate");function Pe(i){f("getGregorianDateOfEthiopianNewYear",{ethiopianYear:i});let e=i+7,t=V(e+1)?12:11;return{gregorianYear:e,month:9,day:t}}c(Pe,"getGregorianDateOfEthiopianNewYear");function A(i,e,t){if(f("toGC",{ethYear:i,ethMonth:e,ethDay:t}),e<1||e>13)throw new F(i,e,t);let a=e===13?x(i)?6:5:30;if(t<1||t>a)throw new F(i,e,t);let n=Pe(i),r=(e-1)*30+t-1,s=Fe(n.gregorianYear,n.month,n.day)+r,h=n.gregorianYear,d=V(h)?366:365;s>d&&(s-=d,h+=1);let{month:g,day:m}=Be(h,s);return{year:h,month:g,day:m}}c(A,"toGC");function L(i,e,t){f("toEC",{gYear:i,gMonth:e,gDay:t});let a=c((xe,ve,$e)=>{let le=new Date(Date.UTC(xe,ve-1,$e));return le.getUTCFullYear()===xe&&le.getUTCMonth()===ve-1&&le.getUTCDate()===$e},"isValidDate"),n=new Date(Date.UTC(i,e-1,t)),r=new Date(Date.UTC(1900,0,1)),o=new Date(Date.UTC(2100,11,31));if(!a(i,e,t)||n<r||n>o)throw new ee(i,e,t);let s=864e5,h=365*s,d=1461*s,g=new Date(Date.UTC(1971,8,12)),m=n.getTime()-g.getTime(),u=Math.floor(m/d),p=Math.floor((m-u*d)/h);p===4&&(p=3);let w=Math.floor((m-u*d-p*h)/(30*s)),E=Math.floor((m-u*d-p*h-w*30*s)/s),I=1964+u*4+p,W=w+1,st=E+1;return{year:I,month:W,day:st}}c(L,"toEC");var Ye=new Intl.DateTimeFormat("en-TN-u-ca-islamic",{day:"numeric",month:"numeric",year:"numeric"});function Te(i){let e=Ye.formatToParts(i),t=null;return e.forEach(({type:a,value:n})=>{a==="year"&&(t=parseInt(n,10))}),t}c(Te,"getHijriYear");var ie=new Map;function Z(i,e,t,a){let n=`${i}-${e}-${t}-${a}`;if(ie.has(n))return ie.get(n)??null;let r=new Date(a-1,0,1);for(let o=0;o<=730;o++){let s=new Date(r);s.setDate(s.getDate()+o);let h=Ye.formatToParts(s),d={};if(h.forEach(({type:g,value:m})=>{g!=="literal"&&(d[g]=parseInt(m,10))}),d.year===i&&d.month===e&&d.day===t&&s.getFullYear()===a)return ie.set(n,s),s}return ie.set(n,null),null}c(Z,"hijriToGregorian");var D={english:["Meskerem","Tikimt","Hidar","Tahsas","Tir","Yekatit","Megabit","Miazia","Ginbot","Sene","Hamle","Nehase","Pagume"],amharic:["\u1218\u1235\u12A8\u1228\u121D","\u1325\u1245\u121D\u1275","\u1205\u12F3\u122D","\u1273\u1205\u1233\u1235","\u1325\u122D","\u12E8\u12AB\u1272\u1275","\u1218\u130B\u1262\u1275","\u121A\u12EB\u12DD\u12EB","\u130D\u1295\u1266\u1275","\u1230\u1294","\u1200\u121D\u120C","\u1290\u1210\u1234","\u1333\u1309\u121C"],gregorian:["January","February","March","April","May","June","July","August","September","October","November","December"]},T={english:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],amharic:["\u12A5\u1211\u12F5","\u1230\u129E","\u121B\u12AD\u1230\u129E","\u1228\u1261\u12D5","\u1210\u1219\u1235","\u12D3\u122D\u1265","\u1245\u12F3\u121C"]},l={PUBLIC:"public",RELIGIOUS:"religious",CHRISTIAN:"christian",MUSLIM:"muslim",STATE:"state",CULTURAL:"cultural",OTHER:"other"},Q={nineveh:"NINEVEH",abiyTsome:"ABIY_TSOME",debreZeit:"DEBRE_ZEIT",hosanna:"HOSANNA",siklet:"SIKLET",fasika:"TINSAYE",rikbeKahnat:"RIKBE_KAHNAT",erget:"ERGET",paraclete:"PARACLETE",tsomeHawaryat:"TSOME_HAWARYAT",tsomeDihnet:"TSOME_DIHENET"};var j={enkutatash:{name:{amharic:"\u12A5\u1295\u1241\u1323\u1323\u123D",english:"Ethiopian New Year (Enkutatash)"},description:{amharic:"\u12E8\u12A2\u1275\u12EE\u1335\u12EB \u12A0\u12F2\u1235 \u12D3\u1218\u1275 \u1218\u1300\u1218\u122A\u12EB\u1364 \u12E8\u12DD\u1293\u1265 \u12C8\u1245\u1275 \u121B\u1265\u1243\u1271\u1295 \u12A5\u1293 \u12F3\u130D\u121D \u1218\u1273\u12F0\u1235\u1295 \u12EB\u1218\u1208\u12AD\u1273\u120D\u1362",english:"Marks the start of the Ethiopian year; symbolizes renewal and the end of the rainy season."}},meskel:{name:{amharic:"\u1218\u1235\u1240\u120D",english:"Finding of the True Cross (Meskel)"},description:{amharic:"\u12604\u129B\u12CD \u1218\u1276 \u12AD\u134D\u1208 \u12D8\u1218\u1295 \u1260\u1295\u130D\u1225\u1275 \u12A5\u120C\u1292 \u12A0\u121B\u12AB\u129D\u1290\u1275 \u12E8\u130C\u1273\u127D\u1295 \u1218\u1235\u1240\u120D \u1218\u1308\u1298\u1271\u1295 \u12EB\u12A8\u1265\u122B\u120D\u1362",english:"Commemorates the discovery of the True Cross by Empress Helena in the 4th century."}},beherbehereseb:{name:{amharic:"\u12E8\u1265\u1214\u122D \u1265\u1214\u1228\u1230\u1266\u127D \u1240\u1295",english:"Nations, Nationalities, and Peoples' Day"},description:{amharic:"\u12E8\u12A2\u1275\u12EE\u1335\u12EB \u1265\u1214\u122D \u1265\u1214\u1228\u1230\u1266\u127D\u1295 \u120D\u12E9\u1290\u1275 \u12E8\u121A\u12EB\u12A8\u1265\u122D\u1363 \u12A5\u12A9\u120D \u1218\u1265\u1273\u1278\u12CD\u1295 \u12E8\u121A\u12EB\u1228\u130B\u130D\u1325 \u12A5\u1293 \u1260\u1263\u1205\u120D\u1293 \u124B\u1295\u124B \u12A0\u1295\u12F5\u1290\u1275\u1295 \u12E8\u121A\u12EB\u1320\u1293\u12AD\u122D \u1260\u12D3\u120D \u1290\u12CD\u1362",english:"Acknowledges and celebrates the diversity of Ethiopia's ethnic groups, affirming their equal rights and fostering unity."}},gena:{name:{amharic:"\u1308\u1293",english:"Ethiopian Christmas (Genna)"},description:{amharic:"\u12E8\u12A2\u12E8\u1231\u1235 \u12AD\u122D\u1235\u1276\u1235\u1295 \u120D\u12F0\u1275 \u12E8\u121A\u12EB\u12A8\u1265\u122D \u12E8\u12A2\u1275\u12EE\u1335\u12EB \u12A6\u122D\u1276\u12F6\u12AD\u1235 \u1270\u12CB\u1215\u12F6 \u1264\u1270 \u12AD\u122D\u1235\u1272\u12EB\u1295 \u1260\u12D3\u120D\u1362",english:"Ethiopian Orthodox Christmas celebrating the birth of Jesus Christ."}},timket:{name:{amharic:"\u1325\u121D\u1240\u1275",english:"Ethiopian Epiphany (Timket)"},description:{amharic:"\u12E8\u12A2\u12E8\u1231\u1235 \u12AD\u122D\u1235\u1276\u1235\u1295 \u1260\u12EE\u122D\u12F3\u1296\u1235 \u12C8\u1295\u12DD \u1218\u1320\u1218\u1241\u1295 \u12EB\u12A8\u1265\u122B\u120D\u1362",english:"Commemorates the baptism of Jesus in the Jordan River."}},martyrsDay:{name:{amharic:"\u12E8\u1230\u121B\u12D5\u1273\u1275 \u1240\u1295",english:"Martyrs' Day"},description:{amharic:"\u1208\u12A2\u1275\u12EE\u1335\u12EB \u1290\u1343\u1290\u1275\u1293 \u12AD\u1265\u122D \u1215\u12ED\u12C8\u1273\u1278\u12CD\u1295 \u12E8\u1220\u12C9 \u1230\u121B\u12D5\u1273\u1275\u1295 \u12EB\u1235\u1263\u120D\u1362",english:"Honors those who sacrificed their lives for Ethiopia\u2019s freedom and independence."}},adwa:{name:{amharic:"\u12E8\u12A0\u12F5\u12CB \u12F5\u120D \u1260\u12D3\u120D",english:"Victory of Adwa"},description:{amharic:"\u12601896 \u12D3.\u121D. \u12A2\u1275\u12EE\u1335\u12EB \u1260\u1323\u120A\u12EB\u1295 \u1245\u129D \u1308\u12E5\u12CE\u127D \u120B\u12ED \u12E8\u1270\u1240\u12F3\u1300\u127D\u12CD\u1295 \u12F5\u120D \u12EB\u12A8\u1265\u122B\u120D\u1362",english:"Celebrates Ethiopia\u2019s victory over Italian colonizers in 1896."}},labour:{name:{amharic:"\u12E8\u1230\u122B\u1270\u129E\u127D \u1240\u1295",english:"International Labour Day"},description:{amharic:"\u12D3\u1208\u121D \u12A0\u1240\u134D \u12E8\u1220\u122B\u1270\u129E\u127D\u1293 \u12E8\u1225\u122B \u1218\u1265\u1276\u127D \u1240\u1295 \u1290\u12CD\u1362",english:"A global celebration of workers and labor rights."}},patriots:{name:{amharic:"\u12E8\u12A0\u122D\u1260\u129E\u127D \u1240\u1295",english:"Patriots' Victory Day"},description:{amharic:"\u12E8\u1323\u120A\u12EB\u1295 \u12C8\u1228\u122B\u1295 \u12E8\u1270\u124B\u124B\u1219 \u12A2\u1275\u12EE\u1335\u12EB\u12CD\u12EB\u1295 \u12A0\u122D\u1260\u129E\u127D\u1295 \u12F5\u120D \u12EB\u1235\u1263\u120D\u1362",english:"Honors Ethiopian resistance fighters who defeated Italian occupation."}},nineveh:{name:{amharic:"\u133E\u1218 \u1290\u1290\u12CC",english:"Fast of Nineveh"},description:{amharic:"\u12E8\u1290\u1290\u12CC \u1230\u12CE\u127D \u1295\u1235\u1210 \u1218\u130D\u1263\u1273\u1278\u12CD\u1295 \u12E8\u121A\u12EB\u1235\u1273\u12CD\u1235 \u12E8\u1226\u1235\u1275 \u1240\u1295 \u133E\u121D \u1290\u12CD\u1362",english:"A three-day fast commemorating the repentance of the people of Nineveh."}},abiyTsome:{name:{amharic:"\u12D0\u1262\u12ED \u133E\u121D",english:"Great Lent"},description:{amharic:"\u12A8\u134B\u1232\u12AB \u1260\u134A\u1275 \u12E8\u121A\u133E\u121D \u12E855 \u1240\u1293\u1275 \u12E8\u133E\u121D \u12C8\u1245\u1275 \u1290\u12CD\u1362",english:"The Great Lent, a 55-day fasting period before Easter."}},debreZeit:{name:{amharic:"\u12F0\u1265\u1228 \u12D8\u12ED\u1275",english:"Mid-Lent Sunday"},description:{amharic:"\u12A2\u12E8\u1231\u1235 \u1260\u12F0\u1265\u1228 \u12D8\u12ED\u1275 \u1270\u122B\u122B \u12EB\u1235\u1270\u121B\u1228\u12CD\u1295 \u1275\u121D\u1205\u122D\u1275 \u12E8\u121A\u12EB\u1235\u1273\u12CD\u1235 \u12E8\u12D0\u1262\u12ED \u133E\u121D \u12A0\u130B\u121B\u123D \u12A5\u1211\u12F5\u1362",english:"Mid-Lent Sunday, commemorating Jesus's sermon on the Mount of Olives."}},hosanna:{name:{amharic:"\u1206\u1233\u12D5\u1293",english:"Palm Sunday"},description:{amharic:"\u12A2\u12E8\u1231\u1235 \u1260\u12AD\u1265\u122D \u12C8\u12F0 \u12A2\u12E8\u1229\u1233\u120C\u121D \u1218\u130D\u1263\u1271\u1295 \u12E8\u121A\u12EB\u1235\u1273\u12CD\u1235 \u1260\u12D3\u120D\u1362",english:"Palm Sunday, commemorating Jesus's triumphal entry into Jerusalem."}},siklet:{name:{amharic:"\u1235\u1245\u1208\u1275",english:"Good Friday"},description:{amharic:"\u12E8\u12A2\u12E8\u1231\u1235 \u12AD\u122D\u1235\u1276\u1235\u1295 \u1235\u1245\u1208\u1275 \u12E8\u121A\u12EB\u1235\u1273\u12CD\u1235 \u1290\u12CD\u1362",english:"Marks the crucifixion of Jesus Christ."}},fasika:{name:{amharic:"\u134B\u1232\u12AB",english:"Ethiopian Easter"},description:{amharic:"\u12E8\u12A2\u12E8\u1231\u1235 \u12AD\u122D\u1235\u1276\u1235\u1295 \u12A8\u1219\u1273\u1295 \u1218\u1290\u1223\u1275 \u12EB\u12A8\u1265\u122B\u120D\u1362 \u1260\u12A2\u1275\u12EE\u1335\u12EB \u12CD\u1235\u1325 \u12AB\u1209 \u12AD\u122D\u1235\u1272\u12EB\u1293\u12CA \u1260\u12D3\u120B\u1275 \u12A0\u1295\u12F1\u1293 \u12CB\u1290\u129B\u12CD \u1290\u12CD\u1362",english:"Celebrates the resurrection of Jesus Christ. One of the most important Christian holidays in Ethiopia."}},rikbeKahnat:{name:{amharic:"\u122D\u12AD\u1260 \u12AB\u1205\u1293\u1275",english:"Meeting of the Priests"},description:{amharic:"\u12A8\u134B\u1232\u12AB 24 \u1240\u1293\u1275 \u1260\u128B\u120B \u12E8\u121A\u12A8\u1260\u122D \u12E8\u12AB\u1205\u1293\u1275 \u1218\u1230\u1263\u1230\u1265 \u1260\u12D3\u120D \u1290\u12CD\u1362",english:"The Meeting of the Priests, 24 days after Easter."}},erget:{name:{amharic:"\u12D5\u122D\u1308\u1275",english:"Ascension"},description:{amharic:"\u12A8\u134B\u1232\u12AB 40 \u1240\u1293\u1275 \u1260\u128B\u120B \u12A2\u12E8\u1231\u1235 \u12C8\u12F0 \u1230\u121B\u12ED \u121B\u1228\u1309\u1295 \u12EB\u12A8\u1265\u122B\u120D\u1362",english:"The Ascension of Jesus into heaven, 40 days after Easter."}},paraclete:{name:{amharic:"\u1330\u122B\u1245\u120A\u1326\u1235",english:"Pentecost"},description:{amharic:"\u1218\u1295\u1348\u1235 \u1245\u12F1\u1235 \u1260\u1210\u12CB\u122D\u12EB\u1275 \u120B\u12ED \u1218\u12CD\u1228\u12F1\u1295 \u12E8\u121A\u12EB\u12A8\u1265\u122D \u1260\u12D3\u120D\u1363 \u12A8\u134B\u1232\u12AB 50 \u1240\u1293\u1275 \u1260\u128B\u120B\u1362",english:"Pentecost, celebrating the descent of the Holy Spirit upon the Apostles, 50 days after Easter."}},tsomeHawaryat:{name:{amharic:"\u133E\u1218 \u1210\u12CB\u122D\u12EB\u1275",english:"Apostles' Fast"},description:{amharic:"\u12A8\u1330\u122B\u1245\u120A\u1326\u1235 \u121B\u130D\u1235\u1275 \u12E8\u121A\u1300\u121D\u122D \u12E8\u1210\u12CB\u122D\u12EB\u1275 \u133E\u121D \u1290\u12CD\u1362",english:"The Fast of the Apostles, which begins the day after Pentecost."}},tsomeDihnet:{name:{amharic:"\u133E\u1218 \u12F5\u1285\u1290\u1275",english:"Fast of Salvation"},description:{amharic:"\u1260\u12E8\u1233\u121D\u1295\u1271 \u1228\u1261\u12D5 \u12A5\u1293 \u12D3\u122D\u1265 \u12E8\u121A\u133E\u121D \u12E8\u12F5\u1285\u1290\u1275 \u133E\u121D \u1290\u12CD\u1362",english:"The Fast of Salvation, observed on Wednesdays and Fridays."}},eidFitr:{name:{amharic:"\u12D2\u12F5 \u12A0\u120D \u1348\u1325\u122D",english:"Eid al-Fitr"},description:{amharic:"\u12E8\u1228\u1218\u12F3\u1295 \u133E\u121D \u12C8\u122D \u1218\u1308\u1263\u12F0\u12F5\u1295 \u12E8\u121A\u12EB\u1218\u1208\u12AD\u1275 \u1260\u12D3\u120D\u1362",english:"Marks the end of Ramadan, the month of fasting for Muslims."}},eidAdha:{name:{amharic:"\u12D2\u12F5 \u12A0\u120D \u12A0\u12F5\u1210",english:"Eid al-Adha"},description:{amharic:"\u12A0\u1265\u122D\u1203\u121D \u1208\u12A5\u130D\u12DA\u12A0\u1265\u1214\u122D \u1260\u1218\u1273\u12D8\u12DD \u120D\u1301\u1295 \u1208\u1218\u1220\u12CB\u1275 \u1348\u1243\u12F0\u129D\u1290\u1271\u1295 \u12E8\u121A\u12EB\u1235\u1273\u12CD\u1235 \u1260\u12D3\u120D\u1362",english:"Commemorates Abraham\u2019s willingness to sacrifice his son as an act of obedience to God."}},moulid:{name:{amharic:"\u1218\u12CD\u120A\u12F5",english:"Birth of the Prophet"},description:{amharic:"\u12E8\u1290\u1262\u12E9 \u1219\u1210\u1218\u12F5\u1295 \u12E8\u120D\u12F0\u1275 \u1260\u12D3\u120D \u12EB\u12A8\u1265\u122B\u120D\u1362",english:"Celebrates the birthday of the Prophet Mohammed."}},jummah:{name:{amharic:"\u1301\u121D\u12D3",english:"Jummah"},description:{amharic:"\u1233\u121D\u1295\u1273\u12CA \u12E8\u1219\u1235\u120A\u121E\u127D \u12E8\u130B\u122B \u1235\u130D\u12F0\u1275\u1362",english:"The weekly Muslim congregational prayer."}}},ze=Object.freeze(Object.keys(j).reduce((i,e)=>(i[e]=e,i),{})),Ie={english:{1:"Matthew",2:"Mark",3:"Luke",0:"John"},amharic:{1:"\u121B\u1274\u12CE\u1235",2:"\u121B\u122D\u1246\u1235",3:"\u1209\u1243\u1235",0:"\u12EE\u1210\u1295\u1235"}},Ke={Sunday:7,Monday:6,Tuesday:5,Wednesday:4,Thursday:3,Friday:2,Saturday:8},re={NINEVEH:0,ABIY_TSOME:14,DEBRE_ZEIT:41,HOSANNA:62,SIKLET:67,TINSAYE:69,RIKBE_KAHNAT:93,ERGET:108,PARACLETE:118,TSOME_HAWARYAT:119,TSOME_DIHENET:121},U={nineveh:{tags:[l.RELIGIOUS,l.CHRISTIAN]},abiyTsome:{tags:[l.RELIGIOUS,l.CHRISTIAN]},debreZeit:{tags:[l.RELIGIOUS,l.CHRISTIAN]},hosanna:{tags:[l.RELIGIOUS,l.CHRISTIAN]},siklet:{tags:[l.RELIGIOUS,l.CHRISTIAN,l.PUBLIC]},fasika:{tags:[l.PUBLIC,l.RELIGIOUS,l.CHRISTIAN]},rikbeKahnat:{tags:[l.RELIGIOUS,l.CHRISTIAN]},erget:{tags:[l.RELIGIOUS,l.CHRISTIAN]},paraclete:{tags:[l.RELIGIOUS,l.CHRISTIAN]},tsomeHawaryat:{tags:[l.RELIGIOUS,l.CHRISTIAN]},tsomeDihnet:{tags:[l.RELIGIOUS,l.CHRISTIAN]},eidFitr:{tags:[l.PUBLIC,l.RELIGIOUS,l.MUSLIM]},eidAdha:{tags:[l.PUBLIC,l.RELIGIOUS,l.MUSLIM]},moulid:{tags:[l.PUBLIC,l.RELIGIOUS,l.MUSLIM]}},N={ABIY_TSOME:"ABIY_TSOME",TSOME_HAWARYAT:"TSOME_HAWARYAT",TSOME_NEBIYAT:"TSOME_NEBIYAT",NINEVEH:"NINEVEH",FILSETA:"FILSETA",RAMADAN:"RAMADAN",TSOME_DIHENET:"TSOME_DIHENET"},We={ABIY_TSOME:{name:{amharic:"\u12D0\u1262\u12ED \u133E\u121D (\u1201\u12F3\u12F4)",english:"Great Lent (Abiy Tsome)"},description:{amharic:"\u12A8\u134B\u1232\u12AB \u1260\u134A\u1275 \u12E8\u121A\u133E\u121D 55 \u1240\u1293\u1275 \u12E8\u133E\u121D \u12C8\u1245\u1275 \u1290\u12CD\u1362",english:"A 55-day fasting season observed before Easter in the Ethiopian Orthodox Church."},tags:[l.RELIGIOUS,l.CHRISTIAN]},NINEVEH:{name:{amharic:"\u133E\u1218 \u1290\u1290\u12CC",english:"Fast of Nineveh"},description:{amharic:"\u12E8\u1290\u1290\u12CC \u1230\u12CE\u127D \u1208\u1230\u1229\u1275 \u1210\u1322\u12EB\u1275 \u12E8\u12A5\u130D\u12DA\u12A0\u1265\u1214\u122D\u1295 \u121D\u1205\u1228\u1275\u1293 \u12ED\u1245\u122D\u1273 \u1208\u1218\u1320\u12E8\u1245 \u12E8\u1346\u1219\u1275\u1295 \u1208\u121B\u1235\u1273\u12C8\u1235 \u1290\u12CD\u1362",english:"A three-day fast commemorating the repentance of the people of Nineveh."},tags:[l.RELIGIOUS,l.CHRISTIAN]},TSOME_HAWARYAT:{name:{amharic:"\u133E\u1218 \u1210\u12CB\u122D\u12EB\u1275",english:"Apostles' Fast (Tsome Hawaryat)"},description:{amharic:"\u12AD\u122D\u1235\u1276\u1235 \u12A8\u1219\u1273\u1295 \u1270\u1208\u12ED\u1276 \u12A8\u1270\u1290\u1233 \u1260\u1203\u120B \u1245\u12F1\u1233\u1295 \u1200\u12CB\u122D\u12EB\u1275 \u1230\u121B\u12EB\u12CA \u1270\u120D\u12A5\u12AE \u1235\u1208\u1270\u1230\u121B\u1278\u12CD \u12A850\u1240\u1295 \u1260\u1203\u120B \u1260\u1260\u12A0\u1208 \u1330\u122B\u1245\u120A\u1326\u1235 \u121B\u130D\u1235\u1275 \u1218\u1346\u121D \u1300\u1218\u1229\u1362",english:"Begins after Pentecost and lasts until Hamle 4 in the Ethiopian calendar."},tags:[l.RELIGIOUS,l.CHRISTIAN]},TSOME_NEBIYAT:{name:{amharic:"\u12E8\u1308\u1293-\u1346\u121D (\u133E\u1218 \u1290\u1262\u12EB\u1275)",english:"Fast of the Prophets (Tsome Nebiyat)"},description:{amharic:"\u12A8\u1205\u12F3\u122D 15 \u12A5\u1235\u12A8 \u1273\u1215\u1233\u1235 28 \u12F5\u1228\u1235 \u12E8\u121A\u1320\u1265\u1245 \u12E8\u124B\u121A \u133E\u121D \u1290\u12CD\u1362",english:"A fixed fast observed from Hidar 15 to Tahsas 28."},tags:[l.RELIGIOUS,l.CHRISTIAN]},FILSETA:{name:{amharic:"\u134D\u120D\u1230\u1273",english:"Filseta"},description:{amharic:"\u1346\u1218 \u134D\u120D\u1230\u1273 /\u12A8\u1290\u1210\u1234 1 \u12A5\u1235\u12A8 \u1290\u1210\u1234 14 \u1240\u1295/ \u12E8\u12A5\u1218\u1264\u1273\u127D\u1295 \u12D5\u1228\u134D\u1275\u1363 \u1275\u1295\u1223\u12A4\u1293 \u12D5\u122D\u1308\u1277 \u12E8\u121A\u1273\u1230\u1265\u1260\u1275 \u12C8\u1245\u1275 \u1290\u12CD\u1361\u1361",english:"A fixed 14-day fast (Nehase 1\u201314) commemorating the Dormition, Resurrection, and Assumption of the Virgin Mary; a season of prayer and intercession."},tags:[l.RELIGIOUS,l.CHRISTIAN]},RAMADAN:{name:{amharic:"\u1228\u1218\u12F3\u1295",english:"Ramadan"},description:{amharic:"\u1228\u1218\u12F3\u1295 \u1260\u1202\u1305\u122B \u12A0\u1246\u1323\u1320\u122D \u12D8\u1320\u1290\u129B\u12CD \u12C8\u122D \u12A5\u1293 \u1260\u1219\u1235\u120A\u121E\u127D \u12D8\u1295\u12F5 \u12E8\u133E\u121D\u1363 \u1338\u120E\u1275 \u12C8\u122D \u1290\u12CD",english:"The Islamic month of fasting from dawn to sunset; a time of prayer, reflection, and charity."},tags:[l.RELIGIOUS,l.MUSLIM]},TSOME_DIHENET:{name:{amharic:"\u133E\u1218 \u12F5\u1285\u1290\u1275 (\u1228\u1261\u12A5\xB7\u12D3\u122D\u1265)",english:"Fast of Salvation (Wed & Fri)"},description:{amharic:"\u12A8\u1260\u12A0\u1208 \u1200\u121D\u1233 \u12CD\u132D \u1260\u1233\u121D\u1295\u1275 \u1228\u1261\u12A5 \u12A5\u1293 \u12A0\u122D\u1265 \u12E8\u121D\u1295\u1346\u1218\u12CD \u1290\u12CD\u1362",english:"A fast observed on Wednesdays and Fridays outside of the 50 days after Easter."},tags:[l.RELIGIOUS,l.CHRISTIAN]}};var R={ones:["","\u1369","\u136A","\u136B","\u136C","\u136D","\u136E","\u136F","\u1370","\u1371"],tens:["","\u1372","\u1373","\u1374","\u1375","\u1376","\u1377","\u1378","\u1379","\u137A"],hundred:"\u137B",tenThousand:"\u137C"};function b(i){if(typeof i!="number"&&typeof i!="string")throw new B("Input must be a number or a string.");let e=Number(i);if(isNaN(e)||!Number.isInteger(e)||e<0)throw new B("Input must be a non-negative integer.");if(e===0)return"0";function t(o){if(o<=0)return"";let s=Math.floor(o/10),h=o%10;return R.tens[s]+R.ones[h]}if(c(t,"convertBelow100"),e<100)return t(e);if(e===100)return R.hundred;if(e<1e4){let o=Math.floor(e/100),s=e%100;return(o>1?t(o):"")+R.hundred+t(s)}let a=Math.floor(e/1e4),n=e%1e4;return(a>1?b(a):"")+R.tenThousand+(n>0?b(n):"")}c(b,"toGeez");function oe(i){if(typeof i!="string")throw new B("Input must be a non-empty string.");if(i.trim()==="")return 0;let e={};R.ones.forEach((n,r)=>{n&&(e[n]=r)}),R.tens.forEach((n,r)=>{n&&(e[n]=r*10)}),e[R.hundred]=100,e[R.tenThousand]=1e4;let t=0,a=0;for(let n of i){let r=e[n];if(r===void 0)throw new B(`Unknown Ge'ez numeral: ${n}`);r===100||r===1e4?(a=(a||1)*r,r===1e4&&(t+=a,a=0)):a+=r}return t+=a,t}c(oe,"toArabic");function Je(i,e,t,a=!1){if(f("printMonthCalendarGrid",{ethiopianYear:i,ethiopianMonth:e}),e<1||e>13)throw new _("printMonthCalendarGrid","ethiopianMonth","number between 1 and 13",e);if(!Array.isArray(t)||t.length===0){console.error("Calendar data is empty or invalid. Cannot print grid.");return}let n=["Mo","Tu","We","Th","Fr","Sa","Su"];console.log(` ${D.amharic[e-1]} ${a?b(i):i}`),console.log(n.join(" "));let r=t[0].gregorian,s=(new Date(r.year,r.month-1,r.day).getDay()+6)%7,h=Array(s).fill(" ");for(let d of t){let g=a?b(d.ethiopian.day).padStart(2,"\u1369"):String(d.ethiopian.day).padStart(2," "),m=String(d.gregorian.day).padStart(2," ");h.push(`${g}/${m}`),h.length===7&&(console.log(h.join(" ")),h=[])}h.length>0&&console.log(h.join(" ").padEnd(27," "))}c(Je,"printMonthCalendarGrid");var P=class P{constructor(e,t=0,a="day"){if(f("Time.constructor",{hour:e,minute:t}),e<1||e>12)throw new M(`Invalid Ethiopian hour: ${e}. Must be between 1 and 12.`);if(t<0||t>59)throw new M(`Invalid minute: ${t}. Must be between 0 and 59.`);if(a!=="day"&&a!=="night")throw new M(`Invalid period: "${a}". Must be 'day' or 'night'.`);this.hour=e,this.minute=t,this.period=a}static fromGregorian(e,t=0){if(f("Time.fromGregorian",{hour:e,minute:t}),e<0||e>23)throw new M(`Invalid Gregorian hour: ${e}. Must be between 0 and 23.`);if(t<0||t>59)throw new M(`Invalid minute: ${t}. Must be between 0 and 59.`);let a=e-6;a<0&&(a+=24);let n=a<12?"day":"night",r=a%12;return r=r===0?12:r,new P(r,t,n)}toGregorian(){let e=this.hour%12;return this.period==="day"?e+=6:e+=18,e=e%24,{hour:e,minute:this.minute}}static fromString(e){if(typeof e!="string"||e.trim()==="")throw new M(`Input must be a non-empty string, but received "${e}".`);if(!e.includes(":"))throw new M(`Invalid time string format: "${e}". Time must include a colon ':' separator.`);let t=c(s=>{let h=parseInt(s,10);if(!isNaN(h))return h;try{return oe(s)}catch{return NaN}},"parseNumber"),a=e.split(/[:\s]+/).filter(s=>s);if(a.length<2)throw new M(`Invalid time string format: "${e}".`);let n=t(a[0]),r=t(a[1]);if(isNaN(n)||isNaN(r))throw new M(`Invalid number in time string: "${e}"`);let o="day";if(a.length>2){let s=a[2].toLowerCase();(s==="night"||s==="\u121B\u1273")&&(o="night")}return new P(n,r,o)}add(e){if(typeof e!="object"||e===null)throw new M("Duration must be an object.");let{hours:t=0,minutes:a=0}=e;f("Time.add",{hours:t,minutes:a});let n=this.toGregorian(),r=n.hour*60+n.minute+t*60+a;r=(r%1440+1440)%1440;let o=Math.floor(r/60),s=r%60;return P.fromGregorian(o,s)}subtract(e){if(typeof e!="object"||e===null)throw new M("Duration must be an object.");let{hours:t=0,minutes:a=0}=e;return this.add({hours:-t,minutes:-a})}diff(e){if(!(e instanceof P))throw new M("Can only compare with another Time instance.");let t=this.toGregorian(),a=e.toGregorian(),n=t.hour*60+t.minute,r=a.hour*60+a.minute,o=Math.abs(n-r);return o>720&&(o=1440-o),{hours:Math.floor(o/60),minutes:o%60}}format(e={}){let t=e.useGeez===!1?"english":"amharic",{lang:a=t,useGeez:n=!0,showPeriodLabel:r=!0,zeroAsDash:o=!0}=e,h=c(u=>n?b(u):u.toString().padStart(2,"0"),"formatNum")(this.hour),d;o&&this.minute===0?d="_":d=n?b(this.minute):this.minute.toString().padStart(2,"0");let g="";r&&(a==="english"?g=this.period:g={day:"\u1320\u12CB\u1275",night:"\u121B\u1273"}[this.period]);let m=g?` ${g}`:"";return`${h}:${d}${m}`}};c(P,"Time");var C=P;function Y(i,e){k(i,"addDays","ethiopian"),f("addDays",{days:e});let{year:t,month:a,day:n}=i;for(n+=e;n>H(t,a);)n-=H(t,a),a+=1,a>13&&(a=1,t+=1);for(;n<=0;)a-=1,a<1&&(a=13,t-=1),n+=H(t,a);return{year:t,month:a,day:n}}c(Y,"addDays");function Me(i,e){k(i,"addMonths","ethiopian"),f("addMonths",{months:e});let{year:t,month:a,day:n}=i,r=a+e;t+=Math.floor((r-1)/13),a=((r-1)%13+13)%13+1;let o=H(t,a);return n>o&&(n=o),{year:t,month:a,day:n}}c(Me,"addMonths");function Ae(i,e){k(i,"addYears","ethiopian"),f("addYears",{years:e});let{year:t,month:a,day:n}=i;return t+=e,a===13&&n===6&&!x(t)&&(n=5),{year:t,month:a,day:n}}c(Ae,"addYears");function S(i,e){k(i,"diffInDays","a"),k(e,"diffInDays","b");let t=c(a=>{let n=0;for(let r=1;r<a.year;r++)n+=x(r)?366:365;for(let r=1;r<a.month;r++)n+=H(a.year,r);return n+=a.day,n},"totalDays");return t(i)-t(e)}c(S,"diffInDays");function qe(i,e){k(i,"diffInMonths","a"),k(e,"diffInMonths","b");let t=i.year*13+(i.month-1),a=e.year*13+(e.month-1),n=t-a;return i.day<e.day&&(n-=1),n}c(qe,"diffInMonths");function Ve(i,e){k(i,"diffInYears","a"),k(e,"diffInYears","b");let t=i.year>e.year||i.year===e.year&&i.month>e.month||i.year===e.year&&i.month===e.month&&i.day>=e.day,[a,n]=t?[i,e]:[e,i],r=a.year-n.year;(a.month<n.month||a.month===n.month&&a.day<n.day)&&r--;let o=t?r:-r;return o===0?0:o}c(Ve,"diffInYears");function se(i,e,t={}){k(i,"diffBreakdown","a"),k(e,"diffBreakdown","b");let{units:a=["years","months","days"]}=t,n=S(i,e),r=n===0||n>0?1:-1,o=r>=0?i:e,h={...r>=0?e:i},d={sign:r,totalDays:Math.abs(n)};if(a.includes("years")){let g=0;for(;;){let m=Ae(h,1);if(S(o,m)>=0)g+=1,h=m;else break}d.years=g}if(a.includes("months")){let g=0;for(;;){let m=Me(h,1);if(S(o,m)>=0)g+=1,h=m;else break}d.months=g}return a.includes("days")&&(d.days=Math.abs(S(o,h))),d}c(se,"diffBreakdown");function z(i,e={}){f("getBahireHasab",{ethiopianYear:i});let{lang:t="amharic"}=e,a=Qe(i),n=a.ameteAlem%4,o=Ie[t]?.[n]||Ie.english[n],s=(a.ameteAlem+a.meteneRabiet)%7,h=(s+1)%7,g=T[t]?.[h]||T.english[h],m={},u=Object.entries(Q).reduce((p,[w,E])=>(p[E]=w,p),{});return Object.keys(re).forEach(p=>{let w=u[p];if(w){let E=Y(a.ninevehDate,re[p]),I=j[w],W=U[w];m[w]={key:w,tags:W.tags,movable:!0,name:I?.name?.[t]||I?.name?.english,description:I?.description?.[t]||I?.description?.english,ethiopian:E,gregorian:A(E.year,E.month,E.day)}}}),{ameteAlem:a.ameteAlem,meteneRabiet:a.meteneRabiet,evangelist:{name:o,remainder:n},newYear:{dayName:g,tinteQemer:s},medeb:a.medeb,wenber:a.wenber,abektie:a.abektie,metqi:a.metqi,bealeMetqi:{date:a.bealeMetqiDate,weekday:a.bealeMetqiWeekday},mebajaHamer:a.mebajaHamer,nineveh:a.ninevehDate,movableFeasts:m}}c(z,"getBahireHasab");function Ze(i,e){f("getMovableHoliday",{ethiopianYear:e});let t=re[i];if(t===void 0)throw new ne(i);let{ninevehDate:a}=Qe(e);return Y(a,t)}c(Ze,"getMovableHoliday");function Qe(i){let e=5500+i,t=Math.floor(e/4),a=e%19,n=a===0?18:a-1,r=n*11%30,o=n*19%30,s=o===0?30:o,h=s>14?1:2,d=s,g={year:i,month:h,day:d},m=T.english[O(g)],u=Ke[m],p=d+u,w=p>30?p%30:p,E=s>14?5:6;return p>30&&E++,{ameteAlem:e,meteneRabiet:t,medeb:a,wenber:n,abektie:r,metqi:s,bealeMetqiDate:g,bealeMetqiWeekday:m,mebajaHamer:w,ninevehDate:{year:i,month:E,day:w}}}c(Qe,"_calculateBahireHasabBase");var ke={enkutatash:{month:1,day:1,tags:[l.PUBLIC,l.CULTURAL]},meskel:{month:1,day:17,tags:[l.PUBLIC,l.RELIGIOUS,l.CHRISTIAN]},beherbehereseb:{month:3,day:29,tags:[l.PUBLIC,l.STATE]},gena:{month:4,day:29,tags:[l.PUBLIC,l.RELIGIOUS,l.CHRISTIAN]},timket:{month:5,day:11,tags:[l.PUBLIC,l.RELIGIOUS,l.CHRISTIAN]},martyrsDay:{month:6,day:12,tags:[l.PUBLIC,l.STATE]},adwa:{month:6,day:23,tags:[l.PUBLIC,l.STATE]},labour:{month:8,day:23,tags:[l.PUBLIC,l.STATE]},patriots:{month:8,day:27,tags:[l.PUBLIC,l.STATE]}};function He(i,e,t){let a=A(i,1,1).year,n=A(i,13,5).year,r=[],o=c(s=>{let h=Te(new Date(s,0,1));[h,h+1].forEach(g=>{let m=Z(g,e,t,s);if(m&&m.getFullYear()===s){let u=L(m.getFullYear(),m.getMonth()+1,m.getDate());u.year===i&&r.push({gregorian:{year:m.getFullYear(),month:m.getMonth()+1,day:m.getDate()},ethiopian:u})}})},"checkGregorianYear");return o(a),a!==n&&o(n),Array.from(new Map(r.map(s=>[JSON.stringify(s.ethiopian),s])).values())}c(He,"findAllIslamicOccurrences");function Xe(i,e){let t=A(i,1,1).year,a=A(i,13,5).year,n=[],r=c(s=>{let h=Te(new Date(s,0,1)),d=[h-1,h,h+1];for(let g of d){let m=Z(g,e,1,s);if(!m)continue;let u=e===12?1:e+1,p=e===12?g+1:g,w,E=Z(p,u,1,s)||Z(p,u,1,s+1);if(E)w=new Date(E.getTime()-864e5);else continue;let I=L(m.getFullYear(),m.getMonth()+1,m.getDate()),W=L(w.getFullYear(),w.getMonth()+1,w.getDate());(I.year===i||W.year===i)&&n.push({start:I,end:W})}},"findRangeInGregorianYear");return r(t),t!==a&&r(a),Array.from(new Map(n.map(s=>[`${s.start.year}/${s.start.month}/${s.start.day}`,s])).values())}c(Xe,"findHijriMonthRanges");var Ce=c(i=>He(i,3,12),"getAllMoulidDates"),_e=c(i=>He(i,10,1),"getAllEidFitrDates"),Ge=c(i=>He(i,12,10),"getAllEidAdhaDates");function v(i,e,t={}){f("getHoliday",{ethYear:e});let{lang:a="amharic"}=t,n=j[i];if(!n)return null;let r=n?.name?.[a]||n?.name?.english,o=n?.description?.[a]||n?.description?.english;if(ke[i]){let d=ke[i];return{key:i,tags:d.tags,movable:!1,name:r,description:o,ethiopian:{year:e,month:d.month,day:d.day}}}let s=Q[i];if(s){let d=Ze(s,e);return{key:i,tags:U[i].tags,movable:!0,name:r,description:o,ethiopian:d,gregorian:A(d.year,d.month,d.day)}}let h;return i==="eidFitr"?h=_e(e)[0]:i==="eidAdha"?h=Ge(e)[0]:i==="moulid"&&(h=Ce(e)[0]),h?{key:i,tags:U[i].tags,movable:!0,name:r,description:o,ethiopian:h.ethiopian,gregorian:h.gregorian}:null}c(v,"getHoliday");function q(i,e,t={}){if(f("getHolidaysInMonth",{ethYear:i,ethMonth:e}),e<1||e>13)throw new _("getHolidaysInMonth","ethMonth","number between 1 and 13",e);let{lang:a="amharic",filter:n=null}=t,r=[];Object.keys(j).forEach(g=>{let m=v(g,i,{lang:a});m&&m.ethiopian.month===e&&r.push(m)}),[...Ce(i).map(g=>({...g,key:"moulid"})),..._e(i).map(g=>({...g,key:"eidFitr"})),...Ge(i).map(g=>({...g,key:"eidAdha"}))].forEach(g=>{if(g.ethiopian.month===e){let m=j[g.key],u={key:g.key,tags:U[g.key].tags,movable:!0,name:m?.name?.[a]||m?.name?.english,description:m?.description?.[a]||m?.description?.english,ethiopian:g.ethiopian,gregorian:g.gregorian};r.some(p=>JSON.stringify(p.ethiopian)===JSON.stringify(u.ethiopian))||r.push(u)}});let h=n?Array.isArray(n)?n:[n]:null,d=h?r.filter(g=>g.tags.some(m=>h.includes(m))):r;return d.sort((g,m)=>g.ethiopian.day-m.ethiopian.day),d}c(q,"getHolidaysInMonth");function et(i,e={}){f("getHolidaysForYear",{ethYear:i});let{lang:t="amharic",filter:a=null}=e,n=[];Object.keys(ke).concat(Object.keys(Q)).forEach(d=>{let g=v(d,i,{lang:t});g&&n.push(g)});let o=c((d,g)=>{g.forEach(m=>{let u=j[d];n.push({key:d,tags:U[d].tags,movable:!0,name:u?.name?.[t]||u?.name?.english,description:u?.description?.[t]||u?.description?.english,ethiopian:m.ethiopian,gregorian:m.gregorian})})},"addMuslimHolidays");o("moulid",Ce(i)),o("eidFitr",_e(i)),o("eidAdha",Ge(i));let s=a?Array.isArray(a)?a:[a]:null,h=s?n.filter(d=>d.tags.some(g=>s.includes(g))):n;return h.sort((d,g)=>d.ethiopian.month!==g.ethiopian.month?d.ethiopian.month-g.ethiopian.month:d.ethiopian.day-g.ethiopian.day),h}c(et,"getHolidaysForYear");var tt={"1":[{id:"ledeta_mariam",name:{english:"Ldata Mariam, The nativity of Our Holy Mother Virgin Mariam",amharic:"\u120D\u12F0\u1273 \u121B\u122D\u12EB\u121D"},description:{english:"Commemoration of the birth of St. Mary.",amharic:"\u12E8\u1245\u12F5\u1235\u1275 \u12F5\u1295\u130D\u120D \u121B\u122D\u12EB\u121D \u120D\u12F0\u1275 \u1218\u1273\u1230\u1262\u12EB\u1362"},major:!0,negs:[9]},{id:"archangel_raguel",name:{english:"Archangel Raguel",amharic:"\u122B\u1309\u12A4\u120D"},description:{english:"Commemoration of Archangel Raguel.",amharic:"\u12E8\u1218\u120B\u12A9 \u122B\u1309\u12A4\u120D \u1218\u1273\u1230\u1262\u12EB\u1362"},major:!0,negs:[]},{id:"bartholomew_the_apostle",name:{english:"Bartholomew the Apostle",amharic:"\u1210\u12CB\u122D\u12EB\u12CD \u1260\u122D\u1270\u120E\u121C\u12CE\u1235"},description:{english:"Commemoration of Bartholomew the Apostle.",amharic:"\u12E8\u1210\u12CB\u122D\u12EB\u12CD \u1260\u122D\u1270\u120E\u121C\u12CE\u1235 \u1218\u1273\u1230\u1262\u12EB\u1362"},major:!0,negs:[]},{id:"prophet_elijah_ginbot",name:{english:"Prophet Elijah",amharic:"\u1290\u1265\u12E9 \u12A4\u120D\u12EB\u1235"},description:{english:"Commemoration of Prophet Elijah.",amharic:"\u12E8\u1290\u1265\u12E9 \u12A4\u120D\u12EB\u1235 \u1218\u1273\u1230\u1262\u12EB\u1362"},major:!0,negs:[4]},{id:"kidus_yohannes",name:{english:"Kidus Yohannes",amharic:"\u1245\u12F1\u1235 \u12EE\u1210\u1295\u1235"},description:{english:"Commemoration of Kidus Yohannes.",amharic:"\u12E8\u1245\u12F1\u1235 \u12EE\u1210\u1295\u1235 \u1218\u1273\u1230\u1262\u12EB\u1362"},major:!1,negs:[1]}],"2":[{id:"abba_guba",name:{english:"Abba Guba, one of the Nine Saints",amharic:"\u12A0\u1263 \u1309\u1263"},description:{english:"Commemoration of Abba Guba, one of the Nine Saints.",amharic:"\u12A8\u12D8\u1320\u1299 \u1245\u12F1\u1233\u1295 \u12A0\u1295\u12F1 \u12E8\u12A0\u1263 \u1309\u1263 \u1218\u1273\u1230\u1262\u12EB\u1362"},major:!0,negs:[]},{id:"thaddeus_the_apostle_major",name:{english:"Thaddeus the Apostle",amharic:"\u1210\u12CB\u122D\u12EB\u12CD \u1273\u12F5\u12EE\u1235"},description:{english:"Commemoration of Thaddeus the Apostle.",amharic:"\u12E8\u1210\u12CB\u122D\u12EB\u12CD \u1273\u12F5\u12EE\u1235 \u1218\u1273\u1230\u1262\u12EB\u1362"},major:!0,negs:[11]},{id:"thaddeus_apostle_minor",name:{english:"Thaddeus the Apostle",amharic:"\u1210\u12CB\u122D\u12EB\u12CD \u1273\u12F5\u12EE\u1235"},description:{english:"Commemoration of Thaddeus the Apostle.",amharic:"\u12E8\u1210\u12CB\u122D\u12EB\u12CD \u1273\u12F5\u12EE\u1235 \u1218\u1273\u1230\u1262\u12EB\u1362"},major:!1,negs:[13]},{id:"st_john_the_baptist_martyrdom",name:{english:"The Martyrdom (Beheading) of St. John the Baptist",amharic:"\u12E8\u1245\u12F1\u1235 \u12EE\u1210\u1295\u1235 \u1218\u1325\u121D\u1245 \u12A0\u1295\u1308\u1275 \u1218\u1241\u1228\u1325"},description:{english:"Commemoration of the Martyrdom (Beheading) of St. John the Baptist.",amharic:"\u12E8\u1245\u12F1\u1235 \u12EE\u1210\u1295\u1235 \u1218\u1325\u121D\u1245 \u12A0\u1295\u1308\u1275 \u1218\u1241\u1228\u1325 \u1218\u1273\u1230\u1262\u12EB\u1362"},major:!1,negs:[1]}],"3":[{id:"beata",name:{english:"Beata: The Entrance of the three years old Virgin Mariam into the Temple",amharic:"\u1260\u12A0\u1273\u1208\u121B\u122D\u12EB\u121D"},description:{english:"Commemoration of St. Mary's entrance into the Temple.",amharic:"\u12E8\u1245\u12F5\u1235\u1275 \u12F5\u1295\u130D\u120D \u121B\u122D\u12EB\u121D \u12C8\u12F0 \u1264\u1270\u1218\u1245\u12F0\u1235 \u1218\u130D\u1263\u1275 \u1218\u1273\u1230\u1262\u12EB\u1362"},major:!0,negs:[4]},{id:"abune_zena_markos",name:{english:"Abune Zena Markos",amharic:"\u12A0\u1261\u1290 \u12DC\u1293 \u121B\u122D\u1246\u1235"},description:{english:"Commemoration of Abune Zena Markos.",amharic:"\u12E8\u12A0\u1261\u1290 \u12DC\u1293 \u121B\u122D\u1246\u1235 \u1218\u1273\u1230\u1262\u12EB\u1362"},major:!0,negs:[]},{id:"archangel_phanuel",name:{english:"Archangel Phanuel",amharic:"\u1245\u12F1\u1235 \u134B\u1291\u12A4\u120D"},description:{english:"Commemoration of Archangel Phanuel.",amharic:"\u12E8\u1218\u120B\u12A9 \u134B\u1291\u12A4\u120D \u1218\u1273\u1230\u1262\u12EB\u1362"},major:!0,negs:[13]},{id:"saint_neakuto_leab",name:{english:"Saint Neakuto Leab",amharic:"\u1245\u12F1\u1235 \u1290\u12A0\u12A9\u1276 \u1208\u12A0\u1265"},description:{english:"Commemoration of Saint Neakuto Leab.",amharic:"\u12E8\u1245\u12F1\u1235 \u1290\u12A0\u12A9\u1276 \u1208\u12A0\u1265 \u1218\u1273\u1230\u1262\u12EB\u1362"},major:!0,negs:[]}],"4":[{id:"johannis_welde_negedguad",name:{english:"John the son of the Thunder (Yohannis Welde Negedguad)",amharic:"\u12EE\u1210\u1295\u1235 \u12C8\u120D\u12F0 \u1290\u130E\u12F5\u1313\u12F5"},description:{english:"Commemoration of John the son of the Thunder.",amharic:"\u12E8\u12EE\u1210\u1295\u1235 \u12C8\u120D\u12F0 \u1290\u130E\u12F5\u1313\u12F5 \u1218\u1273\u1230\u1262\u12EB\u1362"},major:!0,negs:[5]},{id:"andrew_the_apostle",name:{english:"Andrew the Apostle",amharic:"\u1210\u12CB\u122D\u12EB\u12CD \u12A5\u1295\u12F5\u122D\u12EB\u1235"},description:{english:"Commemoration of Andrew the Apostle.",amharic:"\u12E8\u1210\u12CB\u122D\u12EB\u12CD \u12A5\u1295\u12F5\u122D\u12EB\u1235 \u1218\u1273\u1230\u1262\u12EB\u1362"},major:!0,negs:[4]}],"5":[{id:"petros_we_paulos",name:{english:"Petros we Paulos (Peter and Paul)",amharic:"\u1334\u1325\u122E\u1235\u12C8 \u1333\u12CD\u120E\u1235"},description:{english:"Commemoration of Saints Peter and Paul.",amharic:"\u12E8\u1245\u12F1\u1233\u1295 \u1334\u1325\u122E\u1235\u1293 \u1333\u12CD\u120E\u1235 \u1218\u1273\u1230\u1262\u12EB\u1362"},major:!0,negs:[11]},{id:"abuna_gebre_menfes_kidus",name:{english:"Abuna Gebre Menfes Kidus",amharic:"\u1308\u1265\u1228 \u1218\u1295\u1348\u1235 \u1245\u12F1\u1235"},description:{english:"Commemoration of Abuna Gebre Menfes Kidus.",amharic:"\u12E8\u12A0\u1261\u1290 \u1308\u1265\u1228 \u1218\u1295\u1348\u1235 \u1245\u12F1\u1235 \u1218\u1273\u1230\u1262\u12EB\u1362"},major:!0,negs:[2]},{id:"abune_arone",name:{english:"Abune Arone",amharic:"\u12A0\u1261\u1290 \u12A0\u122E\u1295"},description:{english:"Commemoration of Abune Arone.",amharic:"\u12E8\u12A0\u1261\u1290 \u12A0\u122E\u1295 \u1218\u1273\u1230\u1262\u12EB\u1362"},major:!0,negs:[]}],"6":[{id:"iyyasu",name:{english:"Iyyasus",amharic:"\u12A2\u12E8\u1231\u1235"},description:{english:"Commemoration of Iyyasus.",amharic:"\u12E8\u12A2\u12E8\u1231\u1235 \u1218\u1273\u1230\u1262\u12EB\u1362"},major:!0,negs:[5]},{id:"dabra_quesqam_mariam",name:{english:"Dabra Quesqam Mariam",amharic:"\u1241\u1235\u124B\u121D \u121B\u122D\u12EB\u121D"},description:{english:"Commemoration of Dabra Quesqam Mariam.",amharic:"\u12E8\u1241\u1235\u124B\u121D \u121B\u122D\u12EB\u121D \u1218\u1273\u1230\u1262\u12EB\u1362"},major:!0,negs:[3]},{id:"saint_arsema",name:{english:"Saint Arsema",amharic:"\u12A0\u122D\u1234\u121B"},description:{english:"Commemoration of Saint Arsema.",amharic:"\u12E8\u1245\u12F5\u1235\u1275 \u12A0\u122D\u1234\u121B \u1218\u1273\u1230\u1262\u12EB\u1362"},major:!0,negs:[4]}],"7":[{id:"holy_trinity",name:{english:"Holy Trinity",amharic:"\u12A0\u130B\u12D5\u12DD\u1270 \u12A0\u1208\u121D \u1235\u120B\u1234"},description:{english:"Commemoration of the Holy Trinity.",amharic:"\u12E8\u12A0\u130B\u12D5\u12DD\u1270 \u12D3\u1208\u121D \u1235\u120B\u1234 \u1218\u1273\u1230\u1262\u12EB\u1362"},major:!0,negs:[5]}],"8":[{id:"cherubim",name:{english:"Cherubim (Four Living Creatures)",amharic:"\u12AA\u1229\u1264\u120D \u12A0\u122D\u1263\u12A5\u1271 \u12A5\u1295\u1235\u1233"},description:{english:"Commemoration of the Cherubim, the four living creatures.",amharic:"\u12E8\u12AA\u1229\u1264\u120D \u12A0\u122D\u1263\u12A5\u1271 \u12A5\u1295\u1235\u1233 \u1218\u1273\u1230\u1262\u12EB\u1362"},major:!0,negs:[3]},{id:"saint_matthias_apostle",name:{english:"Saint Matthias the Apostle",amharic:"\u1210\u12CB\u122D\u12EB\u12CD \u121B\u1275\u12EB\u1235"},description:{english:"Commemoration of Saint Matthias the Apostle.",amharic:"\u12E8\u1210\u12CB\u122D\u12EB\u12CD \u121B\u1275\u12EB\u1235 \u1218\u1273\u1230\u1262\u12EB\u1362"},major:!0,negs:[7]},{id:"abune_kiros",name:{english:"Abune Kiros",amharic:"\u12A0\u1261\u1290 \u12AA\u122E\u1235"},description:{english:"Commemoration of Abune Kiros.",amharic:"\u12E8\u12A0\u1261\u1290 \u12AA\u122E\u1235 \u1218\u1273\u1230\u1262\u12EB\u1362"},major:!0,negs:[3]},{id:"abba_banuda",name:{english:"Abba Banuda",amharic:"\u12A0\u1263 \u1263\u1291\u12F3"},description:{english:"Commemoration of Abba Banuda.",amharic:"\u12E8\u12A0\u1263 \u1263\u1291\u12F3 \u1218\u1273\u1230\u1262\u12EB\u1362"},major:!1,negs:[]}],"9":[{id:"saint_thomas_apostle",name:{english:"Saint Thomas the Apostle",amharic:"\u1210\u12CB\u122D\u12EB\u12CD \u1276\u121B\u1235"},description:{english:"Commemoration of Saint Thomas the Apostle.",amharic:"\u12E8\u1210\u12CB\u122D\u12EB\u12CD \u1276\u121B\u1235 \u1218\u1273\u1230\u1262\u12EB\u1362"},major:!0,negs:[2]},{id:"abune_isitinifase_kirisitosi",name:{english:"Abune Isitinifase Kirisitosi",amharic:"\u12A0\u1261\u1290 \u12A5\u1235\u1275\u1295\u134B\u1230 \u12AD\u122D\u1235\u1276\u1235"},description:{english:"Commemoration of Abune Isitinifase Kirisitosi.",amharic:"\u12E8\u12A0\u1261\u1290 \u12A5\u1235\u1275\u1295\u134B\u1230 \u12AD\u122D\u1235\u1276\u1235 \u1218\u1273\u1230\u1262\u12EB\u1362"},major:!0,negs:[]},{id:"three_eighteen_holy_fathers_nice",name:{english:"The 318 holy fathers assembled in the city of Nice",amharic:"\u1230\u120D\u1235\u1271 \u121D\u12D5\u1275"},description:{english:"Commemoration of the 318 holy fathers assembled in the city of Nice.",amharic:"\u1260\u1292\u1242\u12EB \u12A8\u1270\u121B \u12E8\u1270\u1230\u1260\u1230\u1261\u1275 318 \u1245\u12F1\u1233\u1295 \u12A0\u1263\u1276\u127D \u1218\u1273\u1230\u1262\u12EB\u1362"},major:!0,negs:[]}],"10":[{id:"holy_cross",name:{english:"Holy Cross (Masqal)",amharic:"\u1218\u1235\u1240\u1208 \u12AD\u122D\u1235\u1276\u1235"},description:{english:"Commemoration of the Holy Cross (Masqal)/the finding of true cross.",amharic:"\u12E8\u1218\u1235\u1240\u1208 \u12AD\u122D\u1235\u1276\u1235 \u1218\u1273\u1230\u1262\u12EB\u1362"},major:!0,negs:[7]},{id:"tsedeniya_mariyami",name:{english:"Ts'edeniya Mariyami",amharic:"\u1340\u12F0\u1295\u12EB \u121B\u122D\u12EB\u121D"},description:{english:"Commemoration of Ts'edeniya Mariyami.",amharic:"\u12E8\u1340\u12F0\u1295\u12EB \u121B\u122D\u12EB\u121D \u1218\u1273\u1230\u1262\u12EB\u1362"},major:!0,negs:[1]},{id:"simon_the_zealot",name:{english:"Simon the Zealot",amharic:"\u1235\u121D\u12A6\u1295 \u1240\u1296\u1293\u12CA \u1210\u12CB\u122D\u12EB"},description:{english:"Commemoration of Simon the Zealot.",amharic:"\u12E8\u1235\u121D\u12A6\u1295 \u1240\u1296\u1293\u12CA \u1210\u12CB\u122D\u12EB \u1218\u1273\u1230\u1262\u12EB\u1362"},major:!0,negs:[11]}],"11":[{id:"saint_hanna",name:{english:"Saint Hanna, the mother of our holy Mother",amharic:"\u1210\u1293"},description:{english:"Commemoration of Saint Hanna, the mother of Our Holy Mother.",amharic:"\u12E8\u1245\u12F5\u1235\u1275 \u1210\u1293 (\u12E8\u12A5\u1218\u1264\u1273\u127D\u1295 \u12A5\u1293\u1275) \u1218\u1273\u1230\u1262\u12EB\u1362"},major:!0,negs:[11]},{id:"saint_joachim",name:{english:"Saint Joachim, the father of our holy Mother",amharic:"\u12A2\u12EB\u1244\u121D"},description:{english:"Commemoration of Saint Joachim, the father of Our Holy Mother.",amharic:"\u12E8\u1245\u12F1\u1235 \u12A2\u12EB\u1244\u121D (\u12E8\u12A5\u1218\u1264\u1273\u127D\u1295 \u12A0\u1263\u1275) \u1218\u1273\u1230\u1262\u12EB\u1362"},major:!1,negs:[]},{id:"saint_yared",name:{english:"Saint Yared",amharic:"\u1245\u12F1\u1235 \u12EB\u122C\u12F5"},description:{english:"Commemoration of Saint Yared.",amharic:"\u12E8\u1245\u12F1\u1235 \u12EB\u122C\u12F5 \u1218\u1273\u1230\u1262\u12EB\u1362"},major:!0,negs:[9]},{id:"abune_hara",name:{english:"Abune Hara",amharic:"\u12A0\u1261\u1290 \u1210\u122B"},description:{english:"Commemoration of Abune Hara.",amharic:"\u12E8\u12A0\u1261\u1290 \u1210\u122B \u1218\u1273\u1230\u1262\u12EB\u1362"},major:!1,negs:[]}],"12":[{id:"archangel_michael",name:{english:"Archangel Michael",amharic:"\u1245\u12F1\u1235 \u121A\u12AB\u12A4\u120D"},description:{english:"Commemoration of Archangel Michael.",amharic:"\u12E8\u1245\u12F1\u1235 \u121A\u12AB\u12A4\u120D \u1218\u1273\u1230\u1262\u12EB\u1362"},major:!0,negs:[3,12]},{id:"matthew_apostle",name:{english:"Matthew the Apostle",amharic:"\u1210\u12CB\u122D\u12EB \u121B\u1274\u12CE\u1235"},description:{english:"Commemoration of Matthew the Apostle.",amharic:"\u12E8\u1210\u12CB\u122D\u12EB \u121B\u1274\u12CE\u1235 \u1218\u1273\u1230\u1262\u12EB\u1362"},major:!0,negs:[]},{id:"abba_samuel_waldeba",name:{english:"Abba Samuel from Waldeba",amharic:"\u12A0\u1263 \u1233\u1219\u12A4\u120D"},description:{english:"Commemoration of Abba Samuel from Waldeba.",amharic:"\u12A8\u12CB\u120D\u12F5\u1263 \u12E8\u12A0\u1263 \u1233\u1219\u12A4\u120D \u1218\u1273\u1230\u1262\u12EB\u1362"},major:!0,negs:[4]}],"13":[{id:"god_the_father",name:{english:"Egziabher Abe (God the Father)",amharic:"\u12A5\u130D\u12DA\u12A0\u1265\u1214\u122D \u12A0\u1265"},description:{english:"Commemoration of God the Father.",amharic:"\u12E8\u12A5\u130D\u12DA\u12A0\u1265\u1214\u122D \u12A0\u1265 \u1218\u1273\u1230\u1262\u12EB\u1362"},major:!0,negs:[3]},{id:"archangel_raphael",name:{english:"Archangel Raphael",amharic:"\u1245\u12F1\u1235 \u1229\u134B\u12A4\u120D"},description:{english:"Commemoration of Archangel Raphael.",amharic:"\u12E8\u1245\u12F1\u1235 \u1229\u134B\u12A4\u120D \u1218\u1273\u1230\u1262\u12EB\u1362"},major:!0,negs:[4]},{id:"saint_abba_zara_buruk",name:{english:"Saint Abba Zar'a-Buruk",amharic:"\u12A0\u1261\u1290 \u12D8\u122D\u12A0 \u1265\u1229\u12AD"},description:{english:"Commemoration of Saint Abba Zar'a-Buruk-departed from this world.",amharic:"\u12E8\u1245\u12F1\u1235 \u12A0\u1263 \u12D8\u122D\u12A0 \u1265\u1229\u12AD \u12A5\u1228\u134D\u1273\u1278\u12CD \u1218\u1273\u1230\u1262\u12EB\u1362"},major:!0,negs:[5]}],"14":[{id:"abuna_aragwi",name:{english:"Abuna Aragwi-one of the Nine Saints",amharic:"\u12A0\u1261\u1290 \u12A0\u1228\u130B\u12CA "},description:{english:"Commemoration of Abuna Aragwi, one of the Nine Saints",amharic:"\u12A8\u12D8\u1320\u1299 \u1245\u12F1\u1233\u1295 \u12A0\u1295\u12F1 \u12E8\u12A0\u1261\u1290 \u12A0\u1228\u130B\u12CA \u1218\u1273\u1230\u1262\u12EB\u1362"},major:!0,negs:[2]},{id:"gabra_krestos_the_hermit",name:{english:"Gabra Krestos the hermit",amharic:"\u1308\u1265\u1228 \u12AD\u122D\u1235\u1276\u1235/\u1308\u1265\u1228 \u1218\u122D\u12A0\u12CA"},description:{english:"Commemoration of Gabra Krestos the hermit.",amharic:"\u12E8\u1308\u1265\u1228 \u12AD\u122D\u1235\u1276\u1235 \u1308\u12F3\u121B\u12CA \u1218\u1273\u1230\u1262\u12EB\u1362"},major:!0,negs:[9]}],"15":[{id:"cyriacus_julietta",name:{english:"St. Cyriacus and St. Julietta",amharic:"\u1242\u122D\u1246\u1235\u1293 \u12A5\u12E8\u1209\u1323"},description:{english:"Commemoration of St. Cyriacus and St. Julietta.",amharic:"\u12E8\u1245\u12F1\u1235 \u1242\u122D\u1246\u1235\u1293 \u12E8\u1245\u12F5\u1235\u1275 \u12A5\u12E8\u1209\u1323 \u1218\u1273\u1230\u1262\u12EB\u1362"},major:!0,negs:[11,5]},{id:"saint_stefanos_migration_of_his_body",name:{english:"Saint Stefanos",amharic:"\u1245\u12F1\u1235 \u12A5\u1235\u1322\u134B\u1296\u1235 "},description:{english:"Commemoration of Saint Estifanos the First Martyr migration of his body",amharic:"\u12E8\u1245\u12F1\u1235 \u12A5\u1235\u1322\u134B\u1296\u1235 \u1230\u121B\u12D5\u1275 (\u1240\u12F3\u121A \u1230\u121B\u12D5\u1275\u1293 \u120A\u1240 \u12F2\u12EB\u1246\u1293\u1275) \u12A0\u12AB\u120D \u123D\u130D\u130D\u122B\u1278\u12CD \u1218\u1273\u1230\u1262\u12EB"},major:!1,negs:[]}],"16":[{id:"kidane_meheret",name:{english:"Kidane Meheret - Our Lady, Covenant of Mercy",amharic:"\u12AA\u12F3\u1290 \u121D\u1205\u1228\u1275"},description:{english:"Commemoration of Kidane Meheret (Covenant of Mercy).",amharic:"\u12E8\u12AA\u12F3\u1290 \u121D\u1205\u1228\u1275 \u1218\u1273\u1230\u1262\u12EB\u1362"},major:!0,negs:[12,6]},{id: