{"version":3,"file":"solarlunar.cjs","sources":["../const/lunarInfo.js","../const/solarMonth.js","../const/gan.js","../const/zhi.js","../const/animals.js","../const/lunarTerm.js","../const/lTermInfo.js","../const/nStr1.js","../const/nStr2.js","../const/nStr3.js","../const/nStr4.js","../src/solarLunar.js"],"sourcesContent":["/**\n * 农历 1900-2100 的润大小信息表\n * @return Array\n */\nexport default [0x04bd8, 0x04ae0, 0x0a570, 0x054d5, 0x0d260, 0x0d950, 0x16554, 0x056a0, 0x09ad0, 0x055d2,//1900-1909\n  0x04ae0, 0x0a5b6, 0x0a4d0, 0x0d250, 0x1d255, 0x0b540, 0x0d6a0, 0x0ada2, 0x095b0, 0x14977,//1910-1919\n  0x04970, 0x0a4b0, 0x0b4b5, 0x06a50, 0x06d40, 0x1ab54, 0x02b60, 0x09570, 0x052f2, 0x04970,//1920-1929\n  0x06566, 0x0d4a0, 0x0ea50, 0x06e95, 0x05ad0, 0x02b60, 0x186e3, 0x092e0, 0x1c8d7, 0x0c950,//1930-1939\n  0x0d4a0, 0x1d8a6, 0x0b550, 0x056a0, 0x1a5b4, 0x025d0, 0x092d0, 0x0d2b2, 0x0a950, 0x0b557,//1940-1949\n  0x06ca0, 0x0b550, 0x15355, 0x04da0, 0x0a5b0, 0x14573, 0x052b0, 0x0a9a8, 0x0e950, 0x06aa0,//1950-1959\n  0x0aea6, 0x0ab50, 0x04b60, 0x0aae4, 0x0a570, 0x05260, 0x0f263, 0x0d950, 0x05b57, 0x056a0,//1960-1969\n  0x096d0, 0x04dd5, 0x04ad0, 0x0a4d0, 0x0d4d4, 0x0d250, 0x0d558, 0x0b540, 0x0b6a0, 0x195a6,//1970-1979\n  0x095b0, 0x049b0, 0x0a974, 0x0a4b0, 0x0b27a, 0x06a50, 0x06d40, 0x0af46, 0x0ab60, 0x09570,//1980-1989\n  0x04af5, 0x04970, 0x064b0, 0x074a3, 0x0ea50, 0x06b58, 0x05ac0, 0x0ab60, 0x096d5, 0x092e0,//1990-1999\n  0x0c960, 0x0d954, 0x0d4a0, 0x0da50, 0x07552, 0x056a0, 0x0abb7, 0x025d0, 0x092d0, 0x0cab5,//2000-2009\n  0x0a950, 0x0b4a0, 0x0baa4, 0x0ad50, 0x055d9, 0x04ba0, 0x0a5b0, 0x15176, 0x052b0, 0x0a930,//2010-2019\n  0x07954, 0x06aa0, 0x0ad50, 0x05b52, 0x04b60, 0x0a6e6, 0x0a4e0, 0x0d260, 0x0ea65, 0x0d530,//2020-2029\n  0x05aa0, 0x076a3, 0x096d0, 0x04afb, 0x04ad0, 0x0a4d0, 0x1d0b6, 0x0d250, 0x0d520, 0x0dd45,//2030-2039\n  0x0b5a0, 0x056d0, 0x055b2, 0x049b0, 0x0a577, 0x0a4b0, 0x0aa50, 0x1b255, 0x06d20, 0x0ada0,//2040-2049\n  /**Add By JJonline@JJonline.Cn**/\n  0x14b63, 0x09370, 0x049f8, 0x04970, 0x064b0, 0x168a6, 0x0ea50, 0x06b20, 0x1a6c4, 0x0aae0,//2050-2059\n  0x092e0, 0x0d2e3, 0x0c960, 0x0d557, 0x0d4a0, 0x0da50, 0x05d55, 0x056a0, 0x0a6d0, 0x055d4,//2060-2069\n  0x052d0, 0x0a9b8, 0x0a950, 0x0b4a0, 0x0b6a6, 0x0ad50, 0x055a0, 0x0aba4, 0x0a5b0, 0x052b0,//2070-2079\n  0x0b273, 0x06930, 0x07337, 0x06aa0, 0x0ad50, 0x14b55, 0x04b60, 0x0a570, 0x054e4, 0x0d160,//2080-2089\n  0x0e968, 0x0d520, 0x0daa0, 0x16aa6, 0x056d0, 0x04ae0, 0x0a9d4, 0x0a4d0, 0x0d150, 0x0f252,//2090-2099\n  0x0d520];//2100;\n","/**\n * 公历每个月份的天数普通表\n * @Array Of Property\n * @return Number\n */\nexport default [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\n","/**\n * 天干地支之天干速查表\n * @Array Of Property trans['甲','乙','丙','丁','戊','己','庚','辛','壬','癸']\n * @return Cn string\n */\nexport default [\n  '\\u7532',\n  '\\u4e59',\n  '\\u4e19',\n  '\\u4e01',\n  '\\u620a',\n  '\\u5df1',\n  '\\u5e9a',\n  '\\u8f9b',\n  '\\u58ec',\n  '\\u7678'\n];\n","/**\n * 天干地支之地支速查表\n * @Array Of Property\n * @trans['子','丑','寅','卯','辰','巳','午','未','申','酉','戌','亥']\n * @return Cn string\n */\nexport default [\n  '\\u5b50',\n  '\\u4e11',\n  '\\u5bc5',\n  '\\u536f',\n  '\\u8fb0',\n  '\\u5df3',\n  '\\u5348',\n  '\\u672a',\n  '\\u7533',\n  '\\u9149',\n  '\\u620c',\n  '\\u4ea5'\n];\n","/**\n * 天干地支之地支速查表<=>生肖\n * @Array Of Property\n * @trans['鼠','牛','虎','兔','龙','蛇','马','羊','猴','鸡','狗','猪']\n * @return Cn string\n */\nexport default [\n  '\\u9f20',\n  '\\u725b',\n  '\\u864e',\n  '\\u5154',\n  '\\u9f99',\n  '\\u86c7',\n  '\\u9a6c',\n  '\\u7f8a',\n  '\\u7334',\n  '\\u9e21',\n  '\\u72d7',\n  '\\u732a'\n];\n","/**\n * 24节气速查表\n * @Array Of Property\n * @trans['小寒','大寒','立春','雨水','惊蛰','春分','清明','谷雨','立夏','小满','芒种','夏至','小暑','大暑','立秋','处暑','白露','秋分','寒露','霜降','立冬','小雪','大雪','冬至']\n * @return Cn string\n */\nexport default [\n  '\\u5c0f\\u5bd2', '\\u5927\\u5bd2', '\\u7acb\\u6625', '\\u96e8\\u6c34', '\\u60ca\\u86f0', '\\u6625\\u5206', '\\u6e05\\u660e', '\\u8c37\\u96e8', '\\u7acb\\u590f', '\\u5c0f\\u6ee1', '\\u8292\\u79cd', '\\u590f\\u81f3', '\\u5c0f\\u6691', '\\u5927\\u6691', '\\u7acb\\u79cb', '\\u5904\\u6691', '\\u767d\\u9732', '\\u79cb\\u5206', '\\u5bd2\\u9732', '\\u971c\\u964d', '\\u7acb\\u51ac', '\\u5c0f\\u96ea', '\\u5927\\u96ea', '\\u51ac\\u81f3'\n];\n","/**\n * 1900-2100各年的24节气日期速查表\n * @Array Of Property\n * @return 0x string For splice\n */\nexport default [\n  '9778397bd097c36b0b6fc9274c91aa', '97b6b97bd19801ec9210c965cc920e', '97bcf97c3598082c95f8c965cc920f',\n  '97bd0b06bdb0722c965ce1cfcc920f', 'b027097bd097c36b0b6fc9274c91aa', '97b6b97bd19801ec9210c965cc920e',\n  '97bcf97c359801ec95f8c965cc920f', '97bd0b06bdb0722c965ce1cfcc920f', 'b027097bd097c36b0b6fc9274c91aa',\n  '97b6b97bd19801ec9210c965cc920e', '97bcf97c359801ec95f8c965cc920f', '97bd0b06bdb0722c965ce1cfcc920f',\n  'b027097bd097c36b0b6fc9274c91aa', '9778397bd19801ec9210c965cc920e', '97b6b97bd19801ec95f8c965cc920f',\n  '97bd09801d98082c95f8e1cfcc920f', '97bd097bd097c36b0b6fc9210c8dc2', '9778397bd197c36c9210c9274c91aa',\n  '97b6b97bd19801ec95f8c965cc920e', '97bd09801d98082c95f8e1cfcc920f', '97bd097bd097c36b0b6fc9210c8dc2',\n  '9778397bd097c36c9210c9274c91aa', '97b6b97bd19801ec95f8c965cc920e', '97bcf97c3598082c95f8e1cfcc920f',\n  '97bd097bd097c36b0b6fc9210c8dc2', '9778397bd097c36c9210c9274c91aa', '97b6b97bd19801ec9210c965cc920e',\n  '97bcf97c3598082c95f8c965cc920f', '97bd097bd097c35b0b6fc920fb0722', '9778397bd097c36b0b6fc9274c91aa',\n  '97b6b97bd19801ec9210c965cc920e', '97bcf97c3598082c95f8c965cc920f', '97bd097bd097c35b0b6fc920fb0722',\n  '9778397bd097c36b0b6fc9274c91aa', '97b6b97bd19801ec9210c965cc920e', '97bcf97c359801ec95f8c965cc920f',\n  '97bd097bd097c35b0b6fc920fb0722', '9778397bd097c36b0b6fc9274c91aa', '97b6b97bd19801ec9210c965cc920e',\n  '97bcf97c359801ec95f8c965cc920f', '97bd097bd097c35b0b6fc920fb0722', '9778397bd097c36b0b6fc9274c91aa',\n  '97b6b97bd19801ec9210c965cc920e', '97bcf97c359801ec95f8c965cc920f', '97bd097bd07f595b0b6fc920fb0722',\n  '9778397bd097c36b0b6fc9210c8dc2', '9778397bd19801ec9210c9274c920e', '97b6b97bd19801ec95f8c965cc920f',\n  '97bd07f5307f595b0b0bc920fb0722', '7f0e397bd097c36b0b6fc9210c8dc2', '9778397bd097c36c9210c9274c920e',\n  '97b6b97bd19801ec95f8c965cc920f', '97bd07f5307f595b0b0bc920fb0722', '7f0e397bd097c36b0b6fc9210c8dc2',\n  '9778397bd097c36c9210c9274c91aa', '97b6b97bd19801ec9210c965cc920e', '97bd07f1487f595b0b0bc920fb0722',\n  '7f0e397bd097c36b0b6fc9210c8dc2', '9778397bd097c36b0b6fc9274c91aa', '97b6b97bd19801ec9210c965cc920e',\n  '97bcf7f1487f595b0b0bb0b6fb0722', '7f0e397bd097c35b0b6fc920fb0722', '9778397bd097c36b0b6fc9274c91aa',\n  '97b6b97bd19801ec9210c965cc920e', '97bcf7f1487f595b0b0bb0b6fb0722', '7f0e397bd097c35b0b6fc920fb0722',\n  '9778397bd097c36b0b6fc9274c91aa', '97b6b97bd19801ec9210c965cc920e', '97bcf7f1487f531b0b0bb0b6fb0722',\n  '7f0e397bd097c35b0b6fc920fb0722', '9778397bd097c36b0b6fc9274c91aa', '97b6b97bd19801ec9210c965cc920e',\n  '97bcf7f1487f531b0b0bb0b6fb0722', '7f0e397bd07f595b0b6fc920fb0722', '9778397bd097c36b0b6fc9274c91aa',\n  '97b6b97bd19801ec9210c9274c920e', '97bcf7f0e47f531b0b0bb0b6fb0722', '7f0e397bd07f595b0b0bc920fb0722',\n  '9778397bd097c36b0b6fc9210c91aa', '97b6b97bd197c36c9210c9274c920e', '97bcf7f0e47f531b0b0bb0b6fb0722',\n  '7f0e397bd07f595b0b0bc920fb0722', '9778397bd097c36b0b6fc9210c8dc2', '9778397bd097c36c9210c9274c920e',\n  '97b6b7f0e47f531b0723b0b6fb0722', '7f0e37f5307f595b0b0bc920fb0722', '7f0e397bd097c36b0b6fc9210c8dc2',\n  '9778397bd097c36b0b70c9274c91aa', '97b6b7f0e47f531b0723b0b6fb0721', '7f0e37f1487f595b0b0bb0b6fb0722',\n  '7f0e397bd097c35b0b6fc9210c8dc2', '9778397bd097c36b0b6fc9274c91aa', '97b6b7f0e47f531b0723b0b6fb0721',\n  '7f0e27f1487f595b0b0bb0b6fb0722', '7f0e397bd097c35b0b6fc920fb0722', '9778397bd097c36b0b6fc9274c91aa',\n  '97b6b7f0e47f531b0723b0b6fb0721', '7f0e27f1487f531b0b0bb0b6fb0722', '7f0e397bd097c35b0b6fc920fb0722',\n  '9778397bd097c36b0b6fc9274c91aa', '97b6b7f0e47f531b0723b0b6fb0721', '7f0e27f1487f531b0b0bb0b6fb0722',\n  '7f0e397bd097c35b0b6fc920fb0722', '9778397bd097c36b0b6fc9274c91aa', '97b6b7f0e47f531b0723b0b6fb0721',\n  '7f0e27f1487f531b0b0bb0b6fb0722', '7f0e397bd07f595b0b0bc920fb0722', '9778397bd097c36b0b6fc9274c91aa',\n  '97b6b7f0e47f531b0723b0787b0721', '7f0e27f0e47f531b0b0bb0b6fb0722', '7f0e397bd07f595b0b0bc920fb0722',\n  '9778397bd097c36b0b6fc9210c91aa', '97b6b7f0e47f149b0723b0787b0721', '7f0e27f0e47f531b0723b0b6fb0722',\n  '7f0e397bd07f595b0b0bc920fb0722', '9778397bd097c36b0b6fc9210c8dc2', '977837f0e37f149b0723b0787b0721',\n  '7f07e7f0e47f531b0723b0b6fb0722', '7f0e37f5307f595b0b0bc920fb0722', '7f0e397bd097c35b0b6fc9210c8dc2',\n  '977837f0e37f14998082b0787b0721', '7f07e7f0e47f531b0723b0b6fb0721', '7f0e37f1487f595b0b0bb0b6fb0722',\n  '7f0e397bd097c35b0b6fc9210c8dc2', '977837f0e37f14998082b0787b06bd', '7f07e7f0e47f531b0723b0b6fb0721',\n  '7f0e27f1487f531b0b0bb0b6fb0722', '7f0e397bd097c35b0b6fc920fb0722', '977837f0e37f14998082b0787b06bd',\n  '7f07e7f0e47f531b0723b0b6fb0721', '7f0e27f1487f531b0b0bb0b6fb0722', '7f0e397bd097c35b0b6fc920fb0722',\n  '977837f0e37f14998082b0787b06bd', '7f07e7f0e47f531b0723b0b6fb0721', '7f0e27f1487f531b0b0bb0b6fb0722',\n  '7f0e397bd07f595b0b0bc920fb0722', '977837f0e37f14998082b0787b06bd', '7f07e7f0e47f531b0723b0b6fb0721',\n  '7f0e27f1487f531b0b0bb0b6fb0722', '7f0e397bd07f595b0b0bc920fb0722', '977837f0e37f14998082b0787b06bd',\n  '7f07e7f0e47f149b0723b0787b0721', '7f0e27f0e47f531b0b0bb0b6fb0722', '7f0e397bd07f595b0b0bc920fb0722',\n  '977837f0e37f14998082b0723b06bd', '7f07e7f0e37f149b0723b0787b0721', '7f0e27f0e47f531b0723b0b6fb0722',\n  '7f0e397bd07f595b0b0bc920fb0722', '977837f0e37f14898082b0723b02d5', '7ec967f0e37f14998082b0787b0721',\n  '7f07e7f0e47f531b0723b0b6fb0722', '7f0e37f1487f595b0b0bb0b6fb0722', '7f0e37f0e37f14898082b0723b02d5',\n  '7ec967f0e37f14998082b0787b0721', '7f07e7f0e47f531b0723b0b6fb0722', '7f0e37f1487f531b0b0bb0b6fb0722',\n  '7f0e37f0e37f14898082b0723b02d5', '7ec967f0e37f14998082b0787b06bd', '7f07e7f0e47f531b0723b0b6fb0721',\n  '7f0e37f1487f531b0b0bb0b6fb0722', '7f0e37f0e37f14898082b072297c35', '7ec967f0e37f14998082b0787b06bd',\n  '7f07e7f0e47f531b0723b0b6fb0721', '7f0e27f1487f531b0b0bb0b6fb0722', '7f0e37f0e37f14898082b072297c35',\n  '7ec967f0e37f14998082b0787b06bd', '7f07e7f0e47f531b0723b0b6fb0721', '7f0e27f1487f531b0b0bb0b6fb0722',\n  '7f0e37f0e366aa89801eb072297c35', '7ec967f0e37f14998082b0787b06bd', '7f07e7f0e47f149b0723b0787b0721',\n  '7f0e27f1487f531b0b0bb0b6fb0722', '7f0e37f0e366aa89801eb072297c35', '7ec967f0e37f14998082b0723b06bd',\n  '7f07e7f0e47f149b0723b0787b0721', '7f0e27f0e47f531b0723b0b6fb0722', '7f0e37f0e366aa89801eb072297c35',\n  '7ec967f0e37f14998082b0723b06bd', '7f07e7f0e37f14998083b0787b0721', '7f0e27f0e47f531b0723b0b6fb0722',\n  '7f0e37f0e366aa89801eb072297c35', '7ec967f0e37f14898082b0723b02d5', '7f07e7f0e37f14998082b0787b0721',\n  '7f07e7f0e47f531b0723b0b6fb0722', '7f0e36665b66aa89801e9808297c35', '665f67f0e37f14898082b0723b02d5',\n  '7ec967f0e37f14998082b0787b0721', '7f07e7f0e47f531b0723b0b6fb0722', '7f0e36665b66a449801e9808297c35',\n  '665f67f0e37f14898082b0723b02d5', '7ec967f0e37f14998082b0787b06bd', '7f07e7f0e47f531b0723b0b6fb0721',\n  '7f0e36665b66a449801e9808297c35', '665f67f0e37f14898082b072297c35', '7ec967f0e37f14998082b0787b06bd',\n  '7f07e7f0e47f531b0723b0b6fb0721', '7f0e26665b66a449801e9808297c35', '665f67f0e37f1489801eb072297c35',\n  '7ec967f0e37f14998082b0787b06bd', '7f07e7f0e47f531b0723b0b6fb0721', '7f0e27f1487f531b0b0bb0b6fb0722'\n];\n","/**\n * 数字转中文速查表\n * @Array Of Property\n * @trans ['日','一','二','三','四','五','六','七','八','九','十']\n * @return Cn string\n */\nexport default [\n  '\\u65e5',\n  '\\u4e00',\n  '\\u4e8c',\n  '\\u4e09',\n  '\\u56db',\n  '\\u4e94',\n  '\\u516d',\n  '\\u4e03',\n  '\\u516b',\n  '\\u4e5d',\n  '\\u5341'\n];\n","/**\n * 日期转农历称呼速查表\n * @Array Of Property\n * @trans ['初','十','廿','卅']\n * @return Cn string\n */\nexport default ['\\u521d', '\\u5341', '\\u5eff', '\\u5345'];\n","/**\n * 月份转农历称呼速查表\n * @Array Of Property\n * @trans ['正','一','二','三','四','五','六','七','八','九','十','冬','腊']\n * @return Cn string\n */\nexport default [\n  '\\u6b63',\n  '\\u4e8c',\n  '\\u4e09',\n  '\\u56db',\n  '\\u4e94',\n  '\\u516d',\n  '\\u4e03',\n  '\\u516b',\n  '\\u4e5d',\n  '\\u5341',\n  '\\u51ac',\n  '\\u814a'\n];\n","/**\n * 年份数字转中文速查表\n * @Array Of Property\n * @trans ['零','一','二','三','四','五','六','七','八','九','十']\n * @return Cn string\n */\nexport default [\n  '\\u96f6',\n  '\\u4e00',\n  '\\u4e8c',\n  '\\u4e09',\n  '\\u56db',\n  '\\u4e94',\n  '\\u516d',\n  '\\u4e03',\n  '\\u516b',\n  '\\u4e5d',\n  '\\u5341'\n];\n","/**\n * @1900-2100区间内的公历、农历互转\n * @charset  UTF-8\n * @author  Ajing(JJonline@JJonline.Cn), Modernized by OpenCode\n * @Time  2014-7-21\n * @Version  $ID$\n * @公历转农历：solarLunar.solar2lunar(1987,11,01); //[you can ignore params of prefix 0]\n * @农历转公历：solarLunar.lunar2solar(1987,09,10); //[you can ignore params of prefix 0]\n * @link http://blog.jjonline.cn/userInterFace/173.html\n */\n\nimport lunarInfo from '../const/lunarInfo.js';\nimport solarMonth from '../const/solarMonth.js';\nimport gan from '../const/gan.js';\nimport zhi from '../const/zhi.js';\nimport animals from '../const/animals.js';\nimport lunarTerm from '../const/lunarTerm.js';\nimport lTermInfo from '../const/lTermInfo.js';\nimport nStr1 from '../const/nStr1.js';\nimport nStr2 from '../const/nStr2.js';\nimport nStr3 from '../const/nStr3.js';\nimport nStr4 from '../const/nStr4.js';\n\nconst solarLunar = {\n  lunarInfo,\n  solarMonth,\n  gan,\n  zhi,\n  animals,\n  lunarTerm,\n  lTermInfo,\n  nStr1,\n  nStr2,\n  nStr3,\n  nStr4,\n\n  /**\n   * 返回农历y年一整年的总天数\n   * @param {number} y - lunar Year\n   * @returns {number}\n   * @eg:var count = solarLunar.lYearDays(1987) ;//count=387\n   */\n  lYearDays(y) {\n    let sum = 348;\n    const info = lunarInfo[y - 1900];\n    // 优化：直接计算位数，减少循环\n    sum += info & 0x8000 ? 1 : 0;\n    sum += info & 0x4000 ? 1 : 0;\n    sum += info & 0x2000 ? 1 : 0;\n    sum += info & 0x1000 ? 1 : 0;\n    sum += info & 0x0800 ? 1 : 0;\n    sum += info & 0x0400 ? 1 : 0;\n    sum += info & 0x0200 ? 1 : 0;\n    sum += info & 0x0100 ? 1 : 0;\n    sum += info & 0x0080 ? 1 : 0;\n    sum += info & 0x0040 ? 1 : 0;\n    sum += info & 0x0020 ? 1 : 0;\n    sum += info & 0x0010 ? 1 : 0;\n    return sum + solarLunar.leapDays(y);\n  },\n\n  /**\n   * 返回农历y年闰月是哪个月；若y年没有闰月 则返回0\n   * @param {number} y - lunar Year\n   * @returns {number} (0-12)\n   * @eg:var leapMonth = solarLunar.leapMonth(1987) ;//leapMonth=6\n   */\n  leapMonth(y) {\n    //闰字编码 \\u95f0\n    return lunarInfo[y - 1900] & 0xf;\n  },\n\n  /**\n   * 返回农历y年闰月的天数 若该年没有闰月则返回0\n   * @param {number} y - lunar Year\n   * @returns {number} (0、29、30)\n   * @eg:var leapMonthDay = solarLunar.leapDays(1987) ;//leapMonthDay=29\n   */\n  leapDays(y) {\n    if (solarLunar.leapMonth(y)) {\n      return lunarInfo[y - 1900] & 0x10000 ? 30 : 29;\n    }\n    return 0;\n  },\n\n  /**\n   * 返回农历 y 年 m 月（非闰月）的总天数，计算 m 为闰月时的天数请使用 leapDays 方法\n   * @param {number} y - lunar Year\n   * @param {number} m - lunar Month\n   * @returns {number} (-1、29、30)\n   * @eg:var MonthDay = solarLunar.monthDays(1987,9) ;//MonthDay=29\n   */\n  monthDays(y, m) {\n    if (m > 12 || m < 1) {\n      return -1;\n    } //月份参数从1至12，参数错误返回-1\n    return lunarInfo[y - 1900] & (0x10000 >> m) ? 30 : 29;\n  },\n\n  /**\n   * 获取时辰干支\n   * @param {number} h - 公历小时 (0-23)\n   * @param {number} dayGanIndex - 日干索引 (0-9)，0=甲，1=乙，...，9=癸\n   * @returns {string} 时辰干支，如 \"甲子\"\n   * @eg:var shichen = solarLunar.getShiChen(23, 0); // 23:00 的子时，日干为甲时\n   */\n  getShiChen(h, dayGanIndex) {\n    const hourZhiIndex = (h + 1) / 2 >= 24 ? 0 : Math.floor((h + 1) / 2) % 12;\n    const hourGanIndex = (dayGanIndex * 2 + hourZhiIndex) % 10;\n    return gan[hourGanIndex] + zhi[hourZhiIndex];\n  },\n\n  /**\n   * 返回公历(!)y年m月的天数\n   * @param {number} y - solar Year\n   * @param {number} m - solar Month\n   * @returns {number} (-1、28、29、30、31)\n   * @eg:var solarMonthDay = solarLunar.solarDays(1987) ;//solarMonthDay=30\n   */\n  solarDays(y, m) {\n    if (m > 12 || m < 1) {\n      return -1;\n    } //若参数错误 返回-1\n    const ms = m - 1;\n    if (ms === 1) {\n      //2月份的闰平规律测算后确认返回28或29\n      return (y % 4 === 0 && y % 100 !== 0) || y % 400 === 0 ? 29 : 28;\n    } else {\n      return solarMonth[ms];\n    }\n  },\n\n  /**\n   * 传入offset偏移量返回干支\n   * @param {number} offset - 相对甲子的偏移量\n   * @returns {string} Cn string\n   */\n  toGanZhi(offset) {\n    return gan[offset % 10] + zhi[offset % 12];\n  },\n\n  /**\n   * 传入公历(!) y 年获得该年第 n 个节气的公历日期\n   * @param {number} y - 公历年(1900-2100)；n二十四节气中的第几个节气(1~24)；从n=1(小寒)算起\n   * @param {number} n - 二十四节气中的第几个节气(1~24)\n   * @returns {number}\n   * @eg:var _24 = solarLunar.getTerm(1987,3) ;//_24=4;意即1987年2月4日立春\n   */\n  getTerm(y, n) {\n    if (y < 1900 || y > 2100) {\n      return -1;\n    }\n    if (n < 1 || n > 24) {\n      return -1;\n    }\n    const _table = lTermInfo[y - 1900];\n    const _info = [\n      parseInt('0x' + _table.substr(0, 5)).toString(),\n      parseInt('0x' + _table.substr(5, 5)).toString(),\n      parseInt('0x' + _table.substr(10, 5)).toString(),\n      parseInt('0x' + _table.substr(15, 5)).toString(),\n      parseInt('0x' + _table.substr(20, 5)).toString(),\n      parseInt('0x' + _table.substr(25, 5)).toString(),\n    ];\n    const _calDay = [\n      _info[0].substr(0, 1),\n      _info[0].substr(1, 2),\n      _info[0].substr(3, 1),\n      _info[0].substr(4, 2),\n\n      _info[1].substr(0, 1),\n      _info[1].substr(1, 2),\n      _info[1].substr(3, 1),\n      _info[1].substr(4, 2),\n\n      _info[2].substr(0, 1),\n      _info[2].substr(1, 2),\n      _info[2].substr(3, 1),\n      _info[2].substr(4, 2),\n\n      _info[3].substr(0, 1),\n      _info[3].substr(1, 2),\n      _info[3].substr(3, 1),\n      _info[3].substr(4, 2),\n\n      _info[4].substr(0, 1),\n      _info[4].substr(1, 2),\n      _info[4].substr(3, 1),\n      _info[4].substr(4, 2),\n\n      _info[5].substr(0, 1),\n      _info[5].substr(1, 2),\n      _info[5].substr(3, 1),\n      _info[5].substr(4, 2),\n    ];\n    return parseInt(_calDay[n - 1]);\n  },\n\n  /**\n   * 传入农历年份数字返回汉语通俗表示法\n   * @param {number} y - lunar year\n   * @returns {string}\n   * @eg:\n   */\n  toChinaYear(y) {\n    //年 => \\u5E74\n    const oxxx = Math.floor(y / 1000);\n    const xoxx = Math.floor((y % 1000) / 100);\n    const xxox = Math.floor((y % 100) / 10);\n    const xxxo = y % 10;\n\n    return nStr4[oxxx] + nStr4[xoxx] + nStr4[xxox] + nStr4[xxxo] + '\\u5E74';\n  },\n\n  /**\n   * 传入农历数字月份返回汉语通俗表示法\n   * @param {number} m - lunar month\n   * @returns {string}\n   * @eg:var cnMonth = solarLunar.toChinaMonth(12) ;//cnMonth='腊月'\n   */\n  toChinaMonth(m) {\n    // 月 => \\u6708\n    if (m > 12 || m < 1) {\n      return -1;\n    } //若参数错误 返回-1\n    let s = nStr3[m - 1];\n    s += '\\u6708'; //加上月字\n    return s;\n  },\n\n  /**\n   * 传入农历日期数字返回汉字表示法\n   * @param {number} d - lunar day\n   * @returns {string} Cn string\n   * @eg:var cnDay = solarLunar.toChinaDay(21) ;//cnMonth='廿一'\n   */\n  toChinaDay(d) {\n    //日 => \\u65e5\n    let s = '';\n    switch (d) {\n    case 10:\n      s = '\\u521d\\u5341';\n      break;\n    case 20:\n      s = '\\u4e8c\\u5341';\n      break;\n    case 30:\n      s = '\\u4e09\\u5341';\n      break;\n    default:\n      s = nStr2[Math.floor(d / 10)];\n      s += nStr1[d % 10];\n    }\n    return s;\n  },\n\n  /**\n   * 年份转生肖 => 精确划分生肖分界线是\"立春\"\n   * @param {number} y - year\n   * @param {number} [m] - month (可选，用于精确计算)\n   * @param {number} [d] - day (可选，用于精确计算)\n   * @returns {string} Cn string\n   * @eg:var animal = solarLunar.getAnimal(1987) ;//animal='兔'\n   */\n  getAnimal(y, m, d) {\n    // 如果提供了月日参数，基于立春进行精确计算\n    if (m !== undefined && d !== undefined) {\n      const term3 = solarLunar.getTerm(y, 3); // 立春日期\n      // 如果日期在立春之前，则生肖按上一年计算\n      if (m < 2 || (m === 2 && d < term3)) {\n        y = y - 1;\n      }\n    }\n    return animals[(y - 4) % 12];\n  },\n\n  /**\n   * 传入公历年月日获得详细的公历、农历object信息 <=>JSON\n   * @param {number} y - solar year\n   * @param {number} m - solar month\n   * @param {number} d - solar day\n   * @returns {object} JSON object\n   * @eg:console.log(solarLunar.solar2lunar(1987,11,01));\n   */\n  solar2lunar(y, m, d) {\n    //参数区间1900.1.31~2100.12.31\n    // 输入验证\n    if (y == null || m == null || d == null) {\n      const objDate = new Date();\n      y = objDate.getFullYear();\n      m = objDate.getMonth() + 1;\n      d = objDate.getDate();\n    }\n\n    // 类型转换和验证\n    y = Number(y);\n    m = Number(m);\n    d = Number(d);\n\n    if (isNaN(y) || isNaN(m) || isNaN(d)) {\n      return -1;\n    }\n\n    if (y < 1900 || y > 2100) {\n      return -1;\n    } //年份限定、上限\n    if (y === 1900 && m === 1 && d < 31) {\n      return -1;\n    } //下限\n\n    // 验证月份和日期的有效性\n    if (m < 1 || m > 12) {\n      return -1;\n    }\n    const maxDay = solarLunar.solarDays(y, m);\n    if (d < 1 || d > maxDay) {\n      return -1;\n    }\n\n    const objDate = new Date(y, parseInt(m) - 1, d);\n    let i,\n      temp = 0;\n    //修正ymd参数\n    y = objDate.getFullYear();\n    m = objDate.getMonth() + 1;\n    d = objDate.getDate();\n    let offset =\n      (Date.UTC(objDate.getFullYear(), objDate.getMonth(), objDate.getDate()) -\n        Date.UTC(1900, 0, 31)) /\n      86400000;\n\n    // 使用原有的线性搜索算法以保持兼容性，但修复变量重声明问题\n    temp = 0;\n    for (i = 1900; i < 2101 && offset > 0; i++) {\n      temp = solarLunar.lYearDays(i);\n      offset -= temp;\n    }\n    if (offset < 0) {\n      offset += temp;\n      i--;\n    }\n\n    const finalYear = i;\n\n    //是否今天\n    const isTodayObj = new Date();\n    let isToday = false;\n    if (\n      isTodayObj.getFullYear() === y &&\n      isTodayObj.getMonth() + 1 === m &&\n      isTodayObj.getDate() === d\n    ) {\n      isToday = true;\n    }\n    //星期几\n    const nWeek = objDate.getDay();\n    const cWeek = nStr1[nWeek];\n    const nWeekAdjusted = nWeek === 0 ? 7 : nWeek; //数字表示周几顺应天朝周一开始的惯例\n\n    //农历年\n    const year = finalYear;\n\n    const leapMonth = solarLunar.leapMonth(finalYear); //闰哪个月\n\n    let isLeap = false;\n\n    //效验闰月\n    for (i = 1; i < 13 && offset > 0; i++) {\n      //闰月\n      if (leapMonth > 0 && i === leapMonth + 1 && isLeap === false) {\n        --i;\n        isLeap = true;\n        temp = solarLunar.leapDays(year); //计算农历闰月天数\n      } else {\n        temp = solarLunar.monthDays(year, i); //计算农历普通月天数\n      }\n      //解除闰月\n      if (isLeap === true && i === leapMonth + 1) {\n        isLeap = false;\n      }\n      offset -= temp;\n    }\n\n    if (offset === 0 && leapMonth > 0 && i === leapMonth + 1) {\n      if (isLeap) {\n        isLeap = false;\n      } else {\n        isLeap = true;\n        --i;\n      }\n    }\n    if (offset < 0) {\n      offset += temp;\n      --i;\n    }\n    //农历月\n    const month = i;\n    //农历日\n    const day = offset + 1;\n\n    //天干地支处理\n    // 注意：干支年以立春为分界线，这是中国传统历法\n    // 立春通常在2月3-5日之间，立春之前出生的人，干支属上一年\n    const sm = m - 1;\n    const term3 = solarLunar.getTerm(y, 3); //该公历年立春日期\n    let gzY = solarLunar.toGanZhi(y - 4); //普通按年份计算，下方尚需按立春节气来修正\n    //依据立春日进行修正gzY\n    // 立春通常在2月3-5日之间，如果日期早于立春，应按上一年计算\n    if (m < 2 || (m === 2 && d < term3)) {\n      gzY = solarLunar.toGanZhi(y - 1 - 4);\n    }\n\n    //月柱 1900年1月小寒以前为 丙子月(60进制12)\n    const firstNode = solarLunar.getTerm(y, m * 2 - 1); //返回当月「节」为几日开始\n    const secondNode = solarLunar.getTerm(y, m * 2); //返回当月「节」为几日开始\n\n    //依据12节气修正干支月\n    // 使用原始的正确算法：年干支索引*12 + 月份 + 偏移\n    let gzM = solarLunar.toGanZhi((y - 1900) * 12 + m + 11);\n    if (d >= firstNode) {\n      gzM = solarLunar.toGanZhi((y - 1900) * 12 + m + 12);\n    }\n\n    //传入的日期的节气与否\n    let isTerm = false;\n    let term = '';\n    if (firstNode === d) {\n      isTerm = true;\n      term = lunarTerm[m * 2 - 2];\n    }\n    if (secondNode === d) {\n      isTerm = true;\n      term = lunarTerm[m * 2 - 1];\n    }\n    //日柱 当月一日与 1900/1/1 相差天数\n    const dayCyclical = Date.UTC(y, sm, 1, 0, 0, 0, 0) / 86400000 + 25567 + 10;\n    const gzD = solarLunar.toGanZhi(dayCyclical + d - 1);\n    return {\n      lYear: year,\n      lMonth: month,\n      lDay: day,\n      animal: solarLunar.getAnimal(year),\n      yearCn: solarLunar.toChinaYear(year),\n      monthCn: (isLeap && leapMonth === month ? '\\u95f0' : '') + solarLunar.toChinaMonth(month),\n      dayCn: solarLunar.toChinaDay(day),\n      cYear: y,\n      cMonth: m,\n      cDay: d,\n      gzYear: gzY,\n      gzMonth: gzM,\n      gzDay: gzD,\n      isToday,\n      isLeap,\n      nWeek: nWeekAdjusted, //数字表示周几顺应天朝周一开始的惯例\n      ncWeek: '\\u661f\\u671f' + cWeek,\n      isTerm,\n      term,\n    };\n  },\n\n  /**\n   * 传入公历年月日以及传入的月份是否闰月获得详细的公历、农历object信息 <=>JSON\n   * @param {number} y - lunar year\n   * @param {number} m - lunar month\n   * @param {number} d - lunar day\n   * @param {boolean} isLeapMonth - lunar month is leap or not.\n   * @returns {object} JSON object\n   * @eg:console.log(solarLunar.lunar2solar(1987,9,10));\n   */\n  lunar2solar(y, m, d, isLeapMonth) {\n    //参数区间1900.1.31~2100.12.1\n    // 输入验证\n    y = Number(y);\n    m = Number(m);\n    d = Number(d);\n    isLeapMonth = Boolean(isLeapMonth); // 确保是布尔值\n\n    if (isNaN(y) || isNaN(m) || isNaN(d)) {\n      return -1;\n    }\n    const leapMonth = solarLunar.leapMonth(y);\n    if (isLeapMonth && leapMonth !== m) {\n      return -1;\n    } //传参要求计算该闰月公历 但该年得出的闰月与传参的月份并不同\n    if ((y === 2100 && m === 12 && d > 1) || (y === 1900 && m === 1 && d < 31)) {\n      return -1;\n    } //超出了最大极限值\n    const day = solarLunar.monthDays(y, m);\n    if (y < 1900 || y > 2100 || d > day) {\n      return -1;\n    } //参数合法性效验\n\n    //计算农历的时间差\n    let offset = 0;\n    for (let i = 1900; i < y; i++) {\n      offset += solarLunar.lYearDays(i);\n    }\n    let leap = 0,\n      isAdd = false;\n    for (let i = 1; i < m; i++) {\n      leap = solarLunar.leapMonth(y);\n      if (!isAdd) {\n        //处理闰月\n        if (leap <= i && leap > 0) {\n          offset += solarLunar.leapDays(y);\n          isAdd = true;\n        }\n      }\n      offset += solarLunar.monthDays(y, i);\n    }\n    //转换闰月农历 需补充该年闰月的前一个月的时差\n    if (isLeapMonth) {\n      offset += day;\n    }\n    //1900年农历正月一日的公历时间为1900年1月30日0时0分0秒(该时间也是本农历的最开始起始点)\n    const stmap = Date.UTC(1900, 1, 30, 0, 0, 0);\n    const calObj = new Date((offset + d - 31) * 86400000 + stmap);\n    const cY = calObj.getUTCFullYear();\n    const cM = calObj.getUTCMonth() + 1;\n    const cD = calObj.getUTCDate();\n\n    return solarLunar.solar2lunar(cY, cM, cD);\n  },\n\n  /**\n   * 获取指定日期的传统节日\n   * @param {number} year - 公历年\n   * @param {number} month - 公历月\n   * @param {number} day - 公历日\n   * @returns {string[]} 传统节日数组\n   */\n  getFestivals(year, month, day) {\n    const festivals = [];\n    const lunar = solarLunar.solar2lunar(year, month, day);\n    if (lunar === -1) return festivals;\n\n    const { lMonth, lDay } = lunar;\n\n    const fixedFestivals = {\n      '1-1': '春节',\n      '1-15': '元宵节',\n      '5-5': '端午节',\n      '7-7': '七夕节',\n      '8-15': '中秋节',\n      '9-9': '重阳节',\n      '12-8': '腊八节',\n      '12-23': '小年',\n    };\n\n    const key = `${lMonth}-${lDay}`;\n    if (fixedFestivals[key]) {\n      festivals.push(fixedFestivals[key]);\n    }\n\n    if (lMonth === 1 && lDay === 1) {\n      festivals.push('农历新年');\n    }\n\n    if (solarLunar.customFestivals) {\n      solarLunar.customFestivals.forEach((f) => {\n        if (f.month === lMonth && f.day === lDay) {\n          festivals.push(f.name);\n        }\n      });\n    }\n\n    return festivals;\n  },\n\n  /**\n   * 添加自定义农历节日\n   * @param {string} name - 节日名称\n   * @param {number} month - 农历月\n   * @param {number} day - 农历日\n   */\n  addFestival(name, month, day) {\n    if (!solarLunar.customFestivals) {\n      solarLunar.customFestivals = [];\n    }\n    solarLunar.customFestivals.push({ name, month, day });\n  },\n\n  /**\n   * 清除所有自定义节日\n   */\n  clearFestivals() {\n    solarLunar.customFestivals = [];\n  },\n};\n\nexport default solarLunar;\n"],"names":[],"mappings":";;;;AAAA;AACA;AACA;AACA;AACA,gBAAe,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO;AACxG,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO;AAC1F,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO;AAC1F,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO;AAC1F,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO;AAC1F,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO;AAC1F,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO;AAC1F,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO;AAC1F,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO;AAC1F,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO;AAC1F,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO;AAC1F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,EAAE,gCAAgC;AACtG,EAAE,gCAAgC,EAAE,gCAAgC,EAAE,gCAAgC;AACtG,EAAE,gCAAgC,EAAE,gCAAgC,EAAE,gCAAgC;AACtG,EAAE,gCAAgC,EAAE,gCAAgC,EAAE,gCAAgC;AACtG,EAAE,gCAAgC,EAAE,gCAAgC,EAAE,gCAAgC;AACtG,EAAE,gCAAgC,EAAE,gCAAgC,EAAE,gCAAgC;AACtG,EAAE,gCAAgC,EAAE,gCAAgC,EAAE,gCAAgC;AACtG,EAAE,gCAAgC,EAAE,gCAAgC,EAAE,gCAAgC;AACtG,EAAE,gCAAgC,EAAE,gCAAgC,EAAE,gCAAgC;AACtG,EAAE,gCAAgC,EAAE,gCAAgC,EAAE,gCAAgC;AACtG,EAAE,gCAAgC,EAAE,gCAAgC,EAAE,gCAAgC;AACtG,EAAE,gCAAgC,EAAE,gCAAgC,EAAE,gCAAgC;AACtG,EAAE,gCAAgC,EAAE,gCAAgC,EAAE,gCAAgC;AACtG,EAAE,gCAAgC,EAAE,gCAAgC,EAAE,gCAAgC;AACtG,EAAE,gCAAgC,EAAE,gCAAgC,EAAE,gCAAgC;AACtG,EAAE,gCAAgC,EAAE,gCAAgC,EAAE,gCAAgC;AACtG,EAAE,gCAAgC,EAAE,gCAAgC,EAAE,gCAAgC;AACtG,EAAE,gCAAgC,EAAE,gCAAgC,EAAE,gCAAgC;AACtG,EAAE,gCAAgC,EAAE,gCAAgC,EAAE,gCAAgC;AACtG,EAAE,gCAAgC,EAAE,gCAAgC,EAAE,gCAAgC;AACtG,EAAE,gCAAgC,EAAE,gCAAgC,EAAE,gCAAgC;AACtG,EAAE,gCAAgC,EAAE,gCAAgC,EAAE,gCAAgC;AACtG,EAAE,gCAAgC,EAAE,gCAAgC,EAAE,gCAAgC;AACtG,EAAE,gCAAgC,EAAE,gCAAgC,EAAE,gCAAgC;AACtG,EAAE,gCAAgC,EAAE,gCAAgC,EAAE,gCAAgC;AACtG,EAAE,gCAAgC,EAAE,gCAAgC,EAAE,gCAAgC;AACtG,EAAE,gCAAgC,EAAE,gCAAgC,EAAE,gCAAgC;AACtG,EAAE,gCAAgC,EAAE,gCAAgC,EAAE,gCAAgC;AACtG,EAAE,gCAAgC,EAAE,gCAAgC,EAAE,gCAAgC;AACtG,EAAE,gCAAgC,EAAE,gCAAgC,EAAE,gCAAgC;AACtG,EAAE,gCAAgC,EAAE,gCAAgC,EAAE,gCAAgC;AACtG,EAAE,gCAAgC,EAAE,gCAAgC,EAAE,gCAAgC;AACtG,EAAE,gCAAgC,EAAE,gCAAgC,EAAE,gCAAgC;AACtG,EAAE,gCAAgC,EAAE,gCAAgC,EAAE,gCAAgC;AACtG,EAAE,gCAAgC,EAAE,gCAAgC,EAAE,gCAAgC;AACtG,EAAE,gCAAgC,EAAE,gCAAgC,EAAE,gCAAgC;AACtG,EAAE,gCAAgC,EAAE,gCAAgC,EAAE,gCAAgC;AACtG,EAAE,gCAAgC,EAAE,gCAAgC,EAAE,gCAAgC;AACtG,EAAE,gCAAgC,EAAE,gCAAgC,EAAE,gCAAgC;AACtG,EAAE,gCAAgC,EAAE,gCAAgC,EAAE,gCAAgC;AACtG,EAAE,gCAAgC,EAAE,gCAAgC,EAAE,gCAAgC;AACtG,EAAE,gCAAgC,EAAE,gCAAgC,EAAE,gCAAgC;AACtG,EAAE,gCAAgC,EAAE,gCAAgC,EAAE,gCAAgC;AACtG,EAAE,gCAAgC,EAAE,gCAAgC,EAAE,gCAAgC;AACtG,EAAE,gCAAgC,EAAE,gCAAgC,EAAE,gCAAgC;AACtG,EAAE,gCAAgC,EAAE,gCAAgC,EAAE,gCAAgC;AACtG,EAAE,gCAAgC,EAAE,gCAAgC,EAAE,gCAAgC;AACtG,EAAE,gCAAgC,EAAE,gCAAgC,EAAE,gCAAgC;AACtG,EAAE,gCAAgC,EAAE,gCAAgC,EAAE,gCAAgC;AACtG,EAAE,gCAAgC,EAAE,gCAAgC,EAAE,gCAAgC;AACtG,EAAE,gCAAgC,EAAE,gCAAgC,EAAE,gCAAgC;AACtG,EAAE,gCAAgC,EAAE,gCAAgC,EAAE,gCAAgC;AACtG,EAAE,gCAAgC,EAAE,gCAAgC,EAAE,gCAAgC;AACtG,EAAE,gCAAgC,EAAE,gCAAgC,EAAE,gCAAgC;AACtG,EAAE,gCAAgC,EAAE,gCAAgC,EAAE,gCAAgC;AACtG,EAAE,gCAAgC,EAAE,gCAAgC,EAAE,gCAAgC;AACtG,EAAE,gCAAgC,EAAE,gCAAgC,EAAE,gCAAgC;AACtG,EAAE,gCAAgC,EAAE,gCAAgC,EAAE,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,CAAC;;AAE3B,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;AAC3B,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;AAC3B,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;AAC3B,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;;AAE3B,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;AAC3B,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;AAC3B,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;AAC3B,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;;AAE3B,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;AAC3B,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;AAC3B,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;AAC3B,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;;AAE3B,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;AAC3B,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;AAC3B,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;AAC3B,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;;AAE3B,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;AAC3B,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;AAC3B,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;AAC3B,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;AAC3B,KAAK;AACL,IAAI,OAAO,QAAQ,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACnC,EAAE,CAAC;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,WAAW,CAAC,CAAC,EAAE;AACjB;AACA,IAAI,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC;AACrC,IAAI,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,GAAG,CAAC;AAC7C,IAAI,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,EAAE,CAAC;AAC3C,IAAI,MAAM,IAAI,GAAG,CAAC,GAAG,EAAE;;AAEvB,IAAI,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,QAAQ;AAC3E,EAAE,CAAC;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,YAAY,CAAC,CAAC,EAAE;AAClB;AACA,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE;AACzB,MAAM,OAAO,EAAE;AACf,IAAI,CAAC;AACL,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC;AACxB,IAAI,CAAC,IAAI,QAAQ,CAAC;AAClB,IAAI,OAAO,CAAC;AACZ,EAAE,CAAC;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,UAAU,CAAC,CAAC,EAAE;AAChB;AACA,IAAI,IAAI,CAAC,GAAG,EAAE;AACd,IAAI,QAAQ,CAAC;AACb,IAAI,KAAK,EAAE;AACX,MAAM,CAAC,GAAG,cAAc;AACxB,MAAM;AACN,IAAI,KAAK,EAAE;AACX,MAAM,CAAC,GAAG,cAAc;AACxB,MAAM;AACN,IAAI,KAAK,EAAE;AACX,MAAM,CAAC,GAAG,cAAc;AACxB,MAAM;AACN,IAAI;AACJ,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;AACnC,MAAM,CAAC,IAAI,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC;AACxB;AACA,IAAI,OAAO,CAAC;AACZ,EAAE,CAAC;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AACrB;AACA,IAAI,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,SAAS,EAAE;AAC5C,MAAM,MAAM,KAAK,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC7C;AACA,MAAM,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,EAAE;AAC3C,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC;AACjB,MAAM;AACN,IAAI;AACJ,IAAI,OAAO,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;AAChC,EAAE,CAAC;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AACvB;AACA;AACA,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,EAAE;AAC7C,MAAM,MAAM,OAAO,GAAG,IAAI,IAAI,EAAE;AAChC,MAAM,CAAC,GAAG,OAAO,CAAC,WAAW,EAAE;AAC/B,MAAM,CAAC,GAAG,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC;AAChC,MAAM,CAAC,GAAG,OAAO,CAAC,OAAO,EAAE;AAC3B,IAAI;;AAEJ;AACA,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;AACjB,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;AACjB,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;;AAEjB,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE;AAC1C,MAAM,OAAO,EAAE;AACf,IAAI;;AAEJ,IAAI,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,IAAI,EAAE;AAC9B,MAAM,OAAO,EAAE;AACf,IAAI,CAAC;AACL,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE;AACzC,MAAM,OAAO,EAAE;AACf,IAAI,CAAC;;AAEL;AACA,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE;AACzB,MAAM,OAAO,EAAE;AACf,IAAI;AACJ,IAAI,MAAM,MAAM,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC;AAC7C,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,MAAM,EAAE;AAC7B,MAAM,OAAO,EAAE;AACf,IAAI;;AAEJ,IAAI,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AACnD,IAAI,IAAI,CAAC;AACT,MAAM,IAAI,GAAG,CAAC;AACd;AACA,IAAI,CAAC,GAAG,OAAO,CAAC,WAAW,EAAE;AAC7B,IAAI,CAAC,GAAG,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC;AAC9B,IAAI,CAAC,GAAG,OAAO,CAAC,OAAO,EAAE;AACzB,IAAI,IAAI,MAAM;AACd,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,OAAO,CAAC,QAAQ,EAAE,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC;AAC7E,QAAQ,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC;AAC7B,MAAM,QAAQ;;AAEd;AACA,IAAI,IAAI,GAAG,CAAC;AACZ,IAAI,KAAK,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,IAAI,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AAChD,MAAM,IAAI,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;AACpC,MAAM,MAAM,IAAI,IAAI;AACpB,IAAI;AACJ,IAAI,IAAI,MAAM,GAAG,CAAC,EAAE;AACpB,MAAM,MAAM,IAAI,IAAI;AACpB,MAAM,CAAC,EAAE;AACT,IAAI;;AAEJ,IAAI,MAAM,SAAS,GAAG,CAAC;;AAEvB;AACA,IAAI,MAAM,UAAU,GAAG,IAAI,IAAI,EAAE;AACjC,IAAI,IAAI,OAAO,GAAG,KAAK;AACvB,IAAI;AACJ,MAAM,UAAU,CAAC,WAAW,EAAE,KAAK,CAAC;AACpC,MAAM,UAAU,CAAC,QAAQ,EAAE,GAAG,CAAC,KAAK,CAAC;AACrC,MAAM,UAAU,CAAC,OAAO,EAAE,KAAK;AAC/B,MAAM;AACN,MAAM,OAAO,GAAG,IAAI;AACpB,IAAI;AACJ;AACA,IAAI,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,EAAE;AAClC,IAAI,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;AAC9B,IAAI,MAAM,aAAa,GAAG,KAAK,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;;AAElD;AACA,IAAI,MAAM,IAAI,GAAG,SAAS;;AAE1B,IAAI,MAAM,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;;AAEtD,IAAI,IAAI,MAAM,GAAG,KAAK;;AAEtB;AACA,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AAC3C;AACA,MAAM,IAAI,SAAS,GAAG,CAAC,IAAI,CAAC,KAAK,SAAS,GAAG,CAAC,IAAI,MAAM,KAAK,KAAK,EAAE;AACpE,QAAQ,EAAE,CAAC;AACX,QAAQ,MAAM,GAAG,IAAI;AACrB,QAAQ,IAAI,GAAG,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACzC,MAAM,CAAC,MAAM;AACb,QAAQ,IAAI,GAAG,UAAU,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AAC7C,MAAM;AACN;AACA,MAAM,IAAI,MAAM,KAAK,IAAI,IAAI,CAAC,KAAK,SAAS,GAAG,CAAC,EAAE;AAClD,QAAQ,MAAM,GAAG,KAAK;AACtB,MAAM;AACN,MAAM,MAAM,IAAI,IAAI;AACpB,IAAI;;AAEJ,IAAI,IAAI,MAAM,KAAK,CAAC,IAAI,SAAS,GAAG,CAAC,IAAI,CAAC,KAAK,SAAS,GAAG,CAAC,EAAE;AAC9D,MAAM,IAAI,MAAM,EAAE;AAClB,QAAQ,MAAM,GAAG,KAAK;AACtB,MAAM,CAAC,MAAM;AACb,QAAQ,MAAM,GAAG,IAAI;AACrB,QAAQ,EAAE,CAAC;AACX,MAAM;AACN,IAAI;AACJ,IAAI,IAAI,MAAM,GAAG,CAAC,EAAE;AACpB,MAAM,MAAM,IAAI,IAAI;AACpB,MAAM,EAAE,CAAC;AACT,IAAI;AACJ;AACA,IAAI,MAAM,KAAK,GAAG,CAAC;AACnB;AACA,IAAI,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC;;AAE1B;AACA;AACA;AACA,IAAI,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC;AACpB,IAAI,MAAM,KAAK,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC3C,IAAI,IAAI,GAAG,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACzC;AACA;AACA,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,EAAE;AACzC,MAAM,GAAG,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC1C,IAAI;;AAEJ;AACA,IAAI,MAAM,SAAS,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AACvD,IAAI,MAAM,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;;AAEpD;AACA;AACA,IAAI,IAAI,GAAG,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC;AAC3D,IAAI,IAAI,CAAC,IAAI,SAAS,EAAE;AACxB,MAAM,GAAG,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC;AACzD,IAAI;;AAEJ;AACA,IAAI,IAAI,MAAM,GAAG,KAAK;AACtB,IAAI,IAAI,IAAI,GAAG,EAAE;AACjB,IAAI,IAAI,SAAS,KAAK,CAAC,EAAE;AACzB,MAAM,MAAM,GAAG,IAAI;AACnB,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACjC,IAAI;AACJ,IAAI,IAAI,UAAU,KAAK,CAAC,EAAE;AAC1B,MAAM,MAAM,GAAG,IAAI;AACnB,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACjC,IAAI;AACJ;AACA,IAAI,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,QAAQ,GAAG,KAAK,GAAG,EAAE;AAC9E,IAAI,MAAM,GAAG,GAAG,UAAU,CAAC,QAAQ,CAAC,WAAW,GAAG,CAAC,GAAG,CAAC,CAAC;AACxD,IAAI,OAAO;AACX,MAAM,KAAK,EAAE,IAAI;AACjB,MAAM,MAAM,EAAE,KAAK;AACnB,MAAM,IAAI,EAAE,GAAG;AACf,MAAM,MAAM,EAAE,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC;AACxC,MAAM,MAAM,EAAE,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC;AAC1C,MAAM,OAAO,EAAE,CAAC,MAAM,IAAI,SAAS,KAAK,KAAK,GAAG,QAAQ,GAAG,EAAE,IAAI,UAAU,CAAC,YAAY,CAAC,KAAK,CAAC;AAC/F,MAAM,KAAK,EAAE,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC;AACvC,MAAM,KAAK,EAAE,CAAC;AACd,MAAM,MAAM,EAAE,CAAC;AACf,MAAM,IAAI,EAAE,CAAC;AACb,MAAM,MAAM,EAAE,GAAG;AACjB,MAAM,OAAO,EAAE,GAAG;AAClB,MAAM,KAAK,EAAE,GAAG;AAChB,MAAM,OAAO;AACb,MAAM,MAAM;AACZ,MAAM,KAAK,EAAE,aAAa;AAC1B,MAAM,MAAM,EAAE,cAAc,GAAG,KAAK;AACpC,MAAM,MAAM;AACZ,MAAM,IAAI;AACV,KAAK;AACL,EAAE,CAAC;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,WAAW,EAAE;AACpC;AACA;AACA,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;AACjB,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;AACjB,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;AACjB,IAAI,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;;AAEvC,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE;AAC1C,MAAM,OAAO,EAAE;AACf,IAAI;AACJ,IAAI,MAAM,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;AAC7C,IAAI,IAAI,WAAW,IAAI,SAAS,KAAK,CAAC,EAAE;AACxC,MAAM,OAAO,EAAE;AACf,IAAI,CAAC;AACL,IAAI,IAAI,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE;AAChF,MAAM,OAAO,EAAE;AACf,IAAI,CAAC;AACL,IAAI,MAAM,GAAG,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC;AAC1C,IAAI,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,GAAG,EAAE;AACzC,MAAM,OAAO,EAAE;AACf,IAAI,CAAC;;AAEL;AACA,IAAI,IAAI,MAAM,GAAG,CAAC;AAClB,IAAI,KAAK,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AACnC,MAAM,MAAM,IAAI,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;AACvC,IAAI;AACJ,IAAI,IAAI,IAAI,GAAG,CAAC;AAChB,MAAM,KAAK,GAAG,KAAK;AACnB,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AAChC,MAAM,IAAI,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;AACpC,MAAM,IAAI,CAAC,KAAK,EAAE;AAClB;AACA,QAAQ,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE;AACnC,UAAU,MAAM,IAAI,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC1C,UAAU,KAAK,GAAG,IAAI;AACtB,QAAQ;AACR,MAAM;AACN,MAAM,MAAM,IAAI,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC;AAC1C,IAAI;AACJ;AACA,IAAI,IAAI,WAAW,EAAE;AACrB,MAAM,MAAM,IAAI,GAAG;AACnB,IAAI;AACJ;AACA,IAAI,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAChD,IAAI,MAAM,MAAM,GAAG,IAAI,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,IAAI,QAAQ,GAAG,KAAK,CAAC;AACjE,IAAI,MAAM,EAAE,GAAG,MAAM,CAAC,cAAc,EAAE;AACtC,IAAI,MAAM,EAAE,GAAG,MAAM,CAAC,WAAW,EAAE,GAAG,CAAC;AACvC,IAAI,MAAM,EAAE,GAAG,MAAM,CAAC,UAAU,EAAE;;AAElC,IAAI,OAAO,UAAU,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;AAC7C,EAAE,CAAC;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,YAAY,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE;AACjC,IAAI,MAAM,SAAS,GAAG,EAAE;AACxB,IAAI,MAAM,KAAK,GAAG,UAAU,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC;AAC1D,IAAI,IAAI,KAAK,KAAK,EAAE,EAAE,OAAO,SAAS;;AAEtC,IAAI,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK;;AAElC,IAAI,MAAM,cAAc,GAAG;AAC3B,MAAM,KAAK,EAAE,IAAI;AACjB,MAAM,MAAM,EAAE,KAAK;AACnB,MAAM,KAAK,EAAE,KAAK;AAClB,MAAM,KAAK,EAAE,KAAK;AAClB,MAAM,MAAM,EAAE,KAAK;AACnB,MAAM,KAAK,EAAE,KAAK;AAClB,MAAM,MAAM,EAAE,KAAK;AACnB,MAAM,OAAO,EAAE,IAAI;AACnB,KAAK;;AAEL,IAAI,MAAM,GAAG,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AACnC,IAAI,IAAI,cAAc,CAAC,GAAG,CAAC,EAAE;AAC7B,MAAM,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;AACzC,IAAI;;AAEJ,IAAI,IAAI,MAAM,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,EAAE;AACpC,MAAM,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC;AAC5B,IAAI;;AAEJ,IAAI,IAAI,UAAU,CAAC,eAAe,EAAE;AACpC,MAAM,UAAU,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK;AAChD,QAAQ,IAAI,CAAC,CAAC,KAAK,KAAK,MAAM,IAAI,CAAC,CAAC,GAAG,KAAK,IAAI,EAAE;AAClD,UAAU,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AAChC,QAAQ;AACR,MAAM,CAAC,CAAC;AACR,IAAI;;AAEJ,IAAI,OAAO,SAAS;AACpB,EAAE,CAAC;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE;AAChC,IAAI,IAAI,CAAC,UAAU,CAAC,eAAe,EAAE;AACrC,MAAM,UAAU,CAAC,eAAe,GAAG,EAAE;AACrC,IAAI;AACJ,IAAI,UAAU,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;AACzD,EAAE,CAAC;;AAEH;AACA;AACA;AACA,EAAE,cAAc,GAAG;AACnB,IAAI,UAAU,CAAC,eAAe,GAAG,EAAE;AACnC,EAAE,CAAC;AACH;;;;"}