zod-ir 1.4.0 → 1.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/data.ts","../src/pelak-city-codes.ts","../src/utils.ts","../src/constants.ts"],"sourcesContent":["import { z } from \"zod\";\nimport {\n isMelliCode,\n isShenaseMelli,\n isPassport,\n isCardNumber,\n isIranianMobile,\n isSheba,\n isPostalCode,\n isLandline,\n isBillIdValid,\n isPaymentIdValid,\n isPlateNumber,\n verifyAndNormalize,\n getBankInfo,\n getMobileOperator,\n getBillInfo,\n getPlateInfo,\n type BankInfo,\n type OperatorInfo,\n type BillInfo,\n type PlateInfo,\n} from \"./utils\";\nimport { getMessage, BaseOptions } from \"./constants\";\n\nexport const zMelliCode = (options?: BaseOptions) =>\n z.string().refine((val) => isMelliCode(val), {\n message: getMessage(\"melliCode\", options),\n });\n\nexport const zShenaseMelli = (options?: BaseOptions) =>\n z.string().refine((val) => isShenaseMelli(val), {\n message: getMessage(\"shenaseMelli\", options),\n });\n\nexport const zPassport = (options?: BaseOptions) =>\n z.string().refine((val) => isPassport(val), {\n message: getMessage(\"passport\", options),\n });\n\nexport const zCardNumber = (options?: BaseOptions) =>\n z.string().refine((val) => isCardNumber(val), {\n message: getMessage(\"cardNumber\", options),\n });\n\ninterface MobileOptions extends BaseOptions {\n strictZero?: boolean | \"optional\";\n}\n\nexport const zIranianMobile = (options?: MobileOptions) =>\n z\n .string()\n .refine(\n (val) => isIranianMobile(val, { strictZero: options?.strictZero }),\n {\n message: getMessage(\"mobile\", options),\n }\n );\n\nexport const zSheba = (options?: BaseOptions) =>\n z.string().refine((val) => isSheba(val), {\n message: getMessage(\"sheba\", options),\n });\n\nexport const zPostalCode = (options?: BaseOptions) =>\n z.string().refine((val) => isPostalCode(val), {\n message: getMessage(\"postalCode\", options),\n });\n\nexport const zLandline = (options?: BaseOptions) =>\n z.string().refine((val) => isLandline(val), {\n message: getMessage(\"landline\", options),\n });\n\nexport const zBillId = (options?: BaseOptions) =>\n z.string().refine((val) => isBillIdValid(val), {\n message: getMessage(\"billId\", options),\n });\n\nexport const zPaymentId = (options?: BaseOptions) =>\n z.string().refine((val) => val.length >= 6 && val.length <= 13, {\n message: getMessage(\"paymentId\", options),\n });\n\nexport const zPlateNumber = (options?: BaseOptions) =>\n z.string().refine((val) => isPlateNumber(val), {\n message: getMessage(\"plateNumber\", options),\n });\n\nexport const preprocessNumber = (schema: z.ZodTypeAny) =>\n z.preprocess((val) => {\n if (typeof val === \"string\") {\n return verifyAndNormalize(val);\n }\n return val;\n }, schema);\n\nexport {\n isMelliCode,\n isShenaseMelli,\n isPassport,\n isCardNumber,\n isIranianMobile,\n isSheba,\n isPostalCode,\n isLandline,\n isBillIdValid,\n isPaymentIdValid,\n isPlateNumber,\n verifyAndNormalize,\n getBankInfo,\n getMobileOperator,\n getBillInfo,\n getPlateInfo,\n type BankInfo,\n type OperatorInfo,\n type BillInfo,\n type PlateInfo,\n type BaseOptions,\n};\n","const CDN_BANKS = \"https://cdn.jsdelivr.net/gh/Reza-kh80/zod-ir@main/assets/banks\";\nconst CDN_OPERATORS = \"https://cdn.jsdelivr.net/gh/Reza-kh80/zod-ir@main/assets/operators\";\nconst CDN_BILLS = \"https://cdn.jsdelivr.net/gh/Reza-kh80/zod-ir@main/assets/bills\"; \n\nexport const BANKS = {\n \"603799\": { name: \"Melli\", label: \"ملی\", color: \"#EF3F3E\", logo: `${CDN_BANKS}/melli.svg` },\n \"589210\": { name: \"Sepah\", label: \"سپه\", color: \"#FFC600\", logo: `${CDN_BANKS}/sepah.svg` },\n \"627648\": { name: \"ToseeSaderat\", label: \"توسعه صادرات\", color: \"#EDB12C\", logo: `${CDN_BANKS}/tosee-saderat.svg` },\n \"627961\": { name: \"SanatMadar\", label: \"صنعت و معدن\", color: \"#B3986D\", logo: `${CDN_BANKS}/sanat-madan.svg` },\n \"603770\": { name: \"Keshavarzi\", label: \"کشاورزی\", color: \"#4E7A46\", logo: `${CDN_BANKS}/keshavarzi.svg` },\n \"628023\": { name: \"Maskan\", label: \"مسکن\", color: \"#F05A23\", logo: `${CDN_BANKS}/maskan.svg` },\n \"627760\": { name: \"PostBank\", label: \"پست بانک\", color: \"#00764D\", logo: `${CDN_BANKS}/post-bank.svg` },\n \"502908\": { name: \"ToseeTaavon\", label: \"توسعه تعاون\", color: \"#0064A6\", logo: `${CDN_BANKS}/tosee-taavon.svg` },\n \"627412\": { name: \"EghtesadNovin\", label: \"اقتصاد نوین\", color: \"#652D86\", logo: `${CDN_BANKS}/eghtesad-novin.svg` },\n \"622106\": { name: \"Parsian\", label: \"پارسیان\", color: \"#B3282D\", logo: `${CDN_BANKS}/parsian.svg` },\n \"502229\": { name: \"Pasargad\", label: \"پاسارگاد\", color: \"#FFC72C\", logo: `${CDN_BANKS}/pasargad.svg` },\n \"627488\": { name: \"Karafarin\", label: \"کارآفرین\", color: \"#3B9C56\", logo: `${CDN_BANKS}/karafarin.svg` },\n \"621986\": { name: \"Saman\", label: \"سامان\", color: \"#006DB6\", logo: `${CDN_BANKS}/saman.svg` },\n \"639346\": { name: \"Sina\", label: \"سینا\", color: \"#004E8A\", logo: `${CDN_BANKS}/sina.svg` },\n \"639607\": { name: \"Sarmayeh\", label: \"سرمایه\", color: \"#0077B6\", logo: `${CDN_BANKS}/sarmayeh.svg` },\n \"636214\": { name: \"Ayandeh\", label: \"آینده\", color: \"#8B5F34\", logo: `${CDN_BANKS}/ayandeh.svg` },\n \"502806\": { name: \"Shahr\", label: \"شهر\", color: \"#ED3438\", logo: `${CDN_BANKS}/shahr.svg` },\n \"502938\": { name: \"Day\", label: \"دی\", color: \"#0099CC\", logo: `${CDN_BANKS}/day.svg` },\n \"603769\": { name: \"Saderat\", label: \"صادرات\", color: \"#1A3266\", logo: `${CDN_BANKS}/saderat.svg` },\n \"610433\": { name: \"Mellat\", label: \"ملت\", color: \"#D70005\", logo: `${CDN_BANKS}/mellat.svg` },\n \"627353\": { name: \"Tejarat\", label: \"تجارت\", color: \"#005696\", logo: `${CDN_BANKS}/tejarat.svg` },\n \"585983\": { name: \"Tejarat\", label: \"تجارت\", color: \"#005696\", logo: `${CDN_BANKS}/tejarat.svg` },\n \"589463\": { name: \"Refah\", label: \"رفاه\", color: \"#2B3C8E\", logo: `${CDN_BANKS}/refah.svg` },\n \"627381\": { name: \"Ansar\", label: \"انصار\", color: \"#F7B500\", logo: `${CDN_BANKS}/ansar.svg` },\n \"505785\": { name: \"IranZamin\", label: \"ایران زمین\", color: \"#92278F\", logo: `${CDN_BANKS}/iran-zamin.svg` },\n \"505416\": { name: \"Gardeshgari\", label: \"گردشگری\", color: \"#1D3265\", logo: `${CDN_BANKS}/gardeshgari.svg` },\n \"636949\": { name: \"Hekmat\", label: \"حکمت\", color: \"#5F2C83\", logo: `${CDN_BANKS}/hekmat.svg` },\n \"505801\": { name: \"Kosar\", label: \"کوثر\", color: \"#C62828\", logo: `${CDN_BANKS}/kosar.svg` },\n \"606373\": { name: \"MehrIran\", label: \"مهر ایران\", color: \"#359E49\", logo: `${CDN_BANKS}/mehr-iran.svg` },\n \"504172\": { name: \"Resalat\", label: \"رسالت\", color: \"#000000\", logo: `${CDN_BANKS}/resalat.svg` },\n \"523388\": { name: \"Pasargad\", label: \"پاسارگاد (ویپاد)\", color: \"#FFC72C\", logo: `${CDN_BANKS}/pasargad.svg` },\n \"505809\": { name: \"Khavarmianeh\", label: \"خاورمیانه\", color: \"#1F2B5B\", logo: `${CDN_BANKS}/khavarmianeh.svg` },\n} as const;\n\nexport const MOBILE_OPERATORS = {\n MCI: {\n label: \"همراه اول\",\n logo: `${CDN_OPERATORS}/mci.svg`,\n prefixes: [\"0910\", \"0911\", \"0912\", \"0913\", \"0914\", \"0915\", \"0916\", \"0917\", \"0918\", \"0919\", \"0990\", \"0991\", \"0992\", \"0993\", \"0994\"],\n },\n Irancell: {\n label: \"ایرانسل\",\n logo: `${CDN_OPERATORS}/irancell.svg`,\n prefixes: [\"0930\", \"0933\", \"0935\", \"0936\", \"0937\", \"0938\", \"0939\", \"0901\", \"0902\", \"0903\", \"0904\", \"0905\", \"0941\"],\n },\n Rightel: {\n label: \"رایتل\",\n logo: `${CDN_OPERATORS}/rightel.svg`,\n prefixes: [\"0920\", \"0921\", \"0922\", \"0923\"],\n },\n Shatel: {\n label: \"شاتل موبایل\",\n logo: `${CDN_OPERATORS}/shatel.svg`,\n prefixes: [\"0998\"],\n },\n Taliya: {\n label: \"تالیا\",\n logo: `${CDN_OPERATORS}/taliya.png`,\n prefixes: [\"0932\"],\n },\n} as const;\n\n// مالیات حذف شد\nexport const BILL_TYPES = {\n 1: { label: \"آب\", type: \"water\", color: \"#00a8ff\", logo: `${CDN_BILLS}/water.svg` },\n 2: { label: \"برق\", type: \"electricity\", color: \"#fbc531\", logo: `${CDN_BILLS}/electricity.svg` },\n 3: { label: \"گاز\", type: \"gas\", color: \"#e84118\", logo: `${CDN_BILLS}/gas.svg` },\n 4: { label: \"تلفن ثابت\", type: \"phone\", color: \"#273c75\", logo: `${CDN_BILLS}/phone.svg` },\n 5: { label: \"تلفن همراه\", type: \"mobile\", color: \"#8c7ae6\", logo: `${CDN_BILLS}/mobile.svg` },\n 6: { label: \"عوارض شهرداری\", type: \"municipality\", color: \"#44bd32\", logo: `${CDN_BILLS}/municipality.svg` },\n 9: { label: \"جرایم رانندگی\", type: \"traffic\", color: \"#c23616\", logo: `${CDN_BILLS}/traffic.svg` },\n} as const;","export const PLATE_CITY_CODES = [\n {\n province: \"آذربایجان شرقی\",\n codes: [\n {\n code: \"15\",\n details: [\n {\n city: \"تبریز\",\n letters: [\n \"ب\",\n \"ج\",\n \"د\",\n \"س\",\n \"ص\",\n \"ط\",\n \"ق\",\n \"ل\",\n \"م\",\n \"ن\",\n \"و\",\n \"ه\",\n \"ی\",\n ],\n },\n ],\n },\n {\n code: \"25\",\n details: [\n { city: \"اهر\", letters: [\"س\"] },\n { city: \"آذرشهر\", letters: [\"ی\"] },\n { city: \"بستان‌آباد\", letters: [\"م\"] },\n { city: \"بناب\", letters: [\"ل\"] },\n { city: \"جلفا\", letters: [\"ط\"] },\n { city: \"سراب\", letters: [\"ص\"] },\n { city: \"شبستر\", letters: [\"ن\"] },\n { city: \"کلیبر\", letters: [\"و\"] },\n { city: \"مراغه\", letters: [\"ب\"] },\n { city: \"مرند\", letters: [\"ج\"] },\n { city: \"میانه\", letters: [\"د\"] },\n { city: \"هریس\", letters: [\"ه\"] },\n { city: \"هشترود\", letters: [\"ق\"] },\n ],\n },\n {\n code: \"35\",\n details: [\n { city: \"اسکو\", letters: [\"ب\"] },\n { city: \"مرند\", letters: [\"ط\"] },\n { city: \"مراغه\", letters: [\"ق\"] },\n { city: \"تبریز\", letters: [\"ل\", \"م\"] },\n { city: \"آذرشهر\", letters: [\"ص\"] },\n { city: \"اهر\", letters: [\"ن\"] },\n { city: \"بناب\", letters: [\"س\"] },\n { city: \"بستان آباد\", letters: [\"ی\"] },\n { city: \"جلفا\", letters: [\"ه\"] },\n { city: \"سراب\", letters: [\"و\"] },\n { city: \"شبستر\", letters: [\"د\"] },\n { city: \"کلیبر\", letters: [\"ج\"] },\n { city: \"میانه\", letters: [\"ز\"] },\n { city: \"هریس\", letters: [\"الف\"] },\n { city: \"هشترود\", letters: [\"ت\"] },\n { city: \"تبریز و چاراویماق\", letters: [\"س\"] },\n ],\n },\n ],\n },\n {\n province: \"آذربایجان غربی\",\n codes: [\n {\n code: \"17\",\n details: [\n {\n city: \"ارومیه\",\n letters: [\n \"ب\",\n \"ج\",\n \"د\",\n \"س\",\n \"ص\",\n \"ط\",\n \"ق\",\n \"ل\",\n \"م\",\n \"ن\",\n \"و\",\n \"ه\",\n ],\n },\n { city: \"خوی\", letters: [\"م\"] },\n ],\n },\n {\n code: \"27\",\n details: [\n { city: \"خوی\", letters: [\"ب\"] },\n { city: \"مهاباد\", letters: [\"ج\"] },\n { city: \"ماکو\", letters: [\"د\"] },\n { city: \"سلماس\", letters: [\"س\"] },\n { city: \"نقده\", letters: [\"ص\"] },\n { city: \"میاندوآب\", letters: [\"ط\", \"ن\"] },\n { city: \"تکاب\", letters: [\"ق\"] },\n { city: \"شاهین‌دژ\", letters: [\"ل\"] },\n { city: \"سردشت\", letters: [\"م\"] },\n { city: \"بوکان\", letters: [\"ن\"] },\n { city: \"چالدران\", letters: [\"ه\"] },\n { city: \"پیرانشهر\", letters: [\"و\"] },\n { city: \"اشنویه\", letters: [\"ی\"] },\n ],\n },\n {\n code: \"37\",\n details: [\n { city: \"خوی\", letters: [\"ب\"] },\n { city: \"میاندوآب\", letters: [\"ج\"] },\n { city: \"نقده\", letters: [\"د\"] },\n { city: \"مهاباد\", letters: [\"ص\"] },\n { city: \"بوکان\", letters: [\"ط\"] },\n { city: \"سلماس\", letters: [\"ق\"] },\n { city: \"ماکو\", letters: [\"ل\"] },\n ],\n },\n ],\n },\n {\n province: \"اردبیل\",\n codes: [\n {\n code: \"91\",\n details: [\n { city: \"اردبیل\", letters: [\"ب\", \"ج\", \"د\", \"س\", \"م\", \"و\", \"ی\"] },\n { city: \"پارس‌آباد\", letters: [\"ص\", \"م\", \"و\", \"ی\"] },\n { city: \"خلخال\", letters: [\"ط\"] },\n { city: \"گرمی\", letters: [\"ل\"] },\n { city: \"بیله‌سوار\", letters: [\"ل\"] },\n { city: \"مشکین‌شهر\", letters: [\"ل\", \"ن\"] },\n { city: \"نیر\", letters: [\"م\"] },\n { city: \"کوثر\", letters: [\"م\", \"و\"] },\n { city: \"نمین\", letters: [\"ن\"] },\n ],\n },\n ],\n },\n {\n province: \"اصفهان\",\n codes: [\n {\n code: \"13\",\n details: [\n {\n city: \"اصفهان\",\n letters: [\n \"ب\",\n \"ج\",\n \"د\",\n \"س\",\n \"ص\",\n \"ط\",\n \"ق\",\n \"ل\",\n \"م\",\n \"ن\",\n \"و\",\n \"ه\",\n \"ی\",\n ],\n },\n { city: \"فلاورجان\", letters: [\"ص\"] },\n ],\n },\n {\n code: \"23\",\n details: [\n { city: \"کاشان\", letters: [\"ب\"] },\n { city: \"نجف‌آباد\", letters: [\"ج\"] },\n { city: \"شهرضا\", letters: [\"د\"] },\n { city: \"خمینی‌شهر\", letters: [\"س\"] },\n { city: \"گلپایگان\", letters: [\"ص\"] },\n { city: \"نطنز\", letters: [\"ط\"] },\n { city: \"اردستان\", letters: [\"ق\"] },\n { city: \"خوانسار\", letters: [\"ل\"] },\n { city: \"نایین\", letters: [\"م\"] },\n { city: \"سمیرم\", letters: [\"ن\"] },\n { city: \"فلاورجان\", letters: [\"ه\"] },\n { city: \"فریدون‌شهر\", letters: [\"و\"] },\n { city: \"لنجان\", letters: [\"ی\"] },\n ],\n },\n {\n code: \"43\",\n details: [\n { city: \"فریدن\", letters: [\"ب\"] },\n { city: \"مبارکه\", letters: [\"ج\", \"ط\"] },\n { city: \"شاهین‌شهر و میمه\", letters: [\"د\", \"ل\"] },\n { city: \"آران و بیدگل\", letters: [\"س\"] },\n { city: \"تیران و کرون\", letters: [\"ص\"] },\n { city: \"دهاقان\", letters: [\"ق\"] },\n { city: \"نجف‌آباد\", letters: [\"م\"] },\n { city: \"خمینی‌شهر\", letters: [\"ن\"] },\n { city: \"لنجان\", letters: [\"ه\"] },\n { city: \"کاشان\", letters: [\"و\"] },\n { city: \"فلاورجان\", letters: [\"ی\"] },\n ],\n },\n {\n code: \"53\",\n details: [\n { city: \"اصفهان\", letters: [\"ب\", \"ج\", \"د\", \"س\", \"ص\", \"ق\", \"ل\", \"و\"] },\n { city: \"شهرضا\", letters: [\"ط\"] },\n { city: \"شاهین‌شهر و میمه\", letters: [\"م\"] },\n { city: \"نجف‌آباد\", letters: [\"ن\"] },\n { city: \"کاشان\", letters: [\"ه\"] },\n { city: \"خمینی‌شهر\", letters: [\"ی\"] },\n ],\n },\n {\n code: \"67\",\n details: [\n {\n city: \"اصفهان\",\n letters: [\"ب\", \"ج\", \"د\", \"س\", \"ط\", \"ل\", \"م\", \"ن\", \"و\"],\n },\n { city: \"شاهین‌شهر و میمه\", letters: [\"ق\"] },\n { city: \"لنجان\", letters: [\"ص\"] },\n ],\n },\n ],\n },\n {\n province: \"البرز\",\n codes: [\n {\n code: \"21\",\n details: [\n { city: \"ساوجبلاغ\", letters: [\"ص\"] },\n { city: \"کرج\", letters: [\"ل\", \"و\"] },\n ],\n },\n {\n code: \"30\",\n details: [{ city: \"کرج\", letters: [\"د\", \"س\", \"ل\", \"م\", \"ه\"] }],\n },\n {\n code: \"38\",\n details: [\n { city: \"کرج\", letters: [\"ب\", \"د\", \"س\", \"م\", \"ن\", \"ه\", \"ی\"] },\n ],\n },\n {\n code: \"68\",\n details: [\n {\n city: \"کرج\",\n letters: [\n \"ب\",\n \"ج\",\n \"د\",\n \"س\",\n \"ص\",\n \"ط\",\n \"ق\",\n \"ل\",\n \"م\",\n \"ن\",\n \"و\",\n \"ه\",\n \"ی\",\n ],\n },\n ],\n },\n {\n code: \"78\",\n details: [{ city: \"ساوجبلاغ\", letters: [\"ط\"] }],\n },\n ],\n },\n {\n province: \"ایلام\",\n codes: [\n {\n code: \"98\",\n details: [\n { city: \"ایلام\", letters: [\"ب\", \"ج\", \"د\"] },\n { city: \"مهران\", letters: [\"ص\"] },\n { city: \"بدره\", letters: [\"ط\"] },\n { city: \"دهلران\", letters: [\"ق\"] },\n { city: \"چرداول\", letters: [\"ل\"] },\n { city: \"ایوان\", letters: [\"م\"] },\n { city: \"آبدانان\", letters: [\"ن\"] },\n ],\n },\n ],\n },\n {\n province: \"بوشهر\",\n codes: [\n {\n code: \"48\",\n details: [\n {\n city: \"بوشهر\",\n letters: [\n \"ب\",\n \"ج\",\n \"د\",\n \"س\",\n \"ص\",\n \"ط\",\n \"ق\",\n \"ل\",\n \"م\",\n \"ن\",\n \"و\",\n \"ه\",\n \"ی\",\n ],\n },\n ],\n },\n {\n code: \"58\",\n details: [\n { city: \"دشتستان\", letters: [\"ب\", \"م\", \"و\"] },\n { city: \"گناوه\", letters: [\"ج\", \"ه\"] },\n { city: \"کنگان، عسلویه\", letters: [\"د\", \"ن\"] },\n { city: \"تنگستان\", letters: [\"س\"] },\n { city: \"دشتی\", letters: [\"ص\", \"ی\"] },\n { city: \"دیر\", letters: [\"ط\"] },\n { city: \"دیلم\", letters: [\"ق\"] },\n { city: \"جم\", letters: [\"ل\"] },\n ],\n },\n ],\n },\n {\n province: \"تهران\",\n codes: [\n {\n code: \"11, 22, 33, 44, 55, 66, 77, 88, 99, 10, 20, 40, 50, 60\",\n details: [\n {\n city: \"تهران (شهر)\",\n letters: [\n \"ب\",\n \"ج\",\n \"د\",\n \"س\",\n \"ص\",\n \"ط\",\n \"ق\",\n \"ل\",\n \"م\",\n \"ن\",\n \"و\",\n \"ه\",\n \"ی\",\n ],\n },\n ],\n },\n {\n code: \"21\",\n details: [\n { city: \"اسلامشهر\", letters: [\"ب\", \"ی\"] },\n { city: \"رباط‌کریم\", letters: [\"م\"] },\n { city: \"پاکدشت\", letters: [\"ل\"] },\n ],\n },\n {\n code: \"30\",\n details: [\n { city: \"اسلامشهر\", letters: [\"ق\"] },\n { city: \"پاکدشت\", letters: [\"ن\"] },\n ],\n },\n {\n code: \"78\",\n details: [\n { city: \"اسلامشهر\", letters: [\"ب\", \"ق\"] },\n { city: \"رباط‌کریم\", letters: [\"ج\"] },\n { city: \"ری\", letters: [\"ن\"] },\n { city: \"شمیرانات\", letters: [\"و\"] },\n ],\n },\n {\n code: \"38\",\n details: [{ city: \"رباط‌کریم\", letters: [\"ل\"] }],\n },\n ],\n },\n {\n province: \"چهارمحال و بختیاری\",\n codes: [\n {\n code: \"71\",\n details: [\n {\n city: \"شهرکرد\",\n letters: [\n \"ب\",\n \"ج\",\n \"د\",\n \"س\",\n \"ص\",\n \"ط\",\n \"ق\",\n \"ل\",\n \"م\",\n \"ن\",\n \"و\",\n \"ه\",\n \"ی\",\n ],\n },\n ],\n },\n {\n code: \"81\",\n details: [\n { city: \"بروجن\", letters: [\"ب\", \"ق\"] },\n { city: \"لردگان\", letters: [\"س\"] },\n { city: \"فارسان\", letters: [\"د\"] },\n { city: \"اردل\", letters: [\"ج\"] },\n { city: \"کوهرنگ\", letters: [\"ص\"] },\n { city: \"کیار\", letters: [\"ط\"] },\n { city: \"بن\", letters: [\"ق\"] },\n ],\n },\n ],\n },\n {\n province: \"خراسان شمالی\",\n codes: [\n {\n code: \"32\",\n details: [{ city: \"بجنورد\", letters: [\"ب\", \"ج\", \"د\", \"س\", \"ص\"] }],\n },\n {\n code: \"26\",\n details: [\n { city: \"شیروان\", letters: [\"ص\", \"ب\"] },\n { city: \"اسفراین\", letters: [\"ج\", \"ط\"] },\n { city: \"مانه و سملقان\", letters: [\"د\", \"ل\"] },\n { city: \"فاروج\", letters: [\"م\"] },\n { city: \"بجنورد\", letters: [\"ب\", \"ج\", \"د\"] },\n { city: \"جاجرم و گرمه\", letters: [\"ق\"] },\n ],\n },\n ],\n },\n {\n province: \"خراسان رضوی\",\n codes: [\n {\n code: \"12\",\n details: [\n {\n city: \"مشهد\",\n letters: [\n \"ب\",\n \"ج\",\n \"د\",\n \"س\",\n \"ص\",\n \"ط\",\n \"ق\",\n \"ل\",\n \"م\",\n \"ن\",\n \"و\",\n \"ه\",\n \"ی\",\n ],\n },\n ],\n },\n {\n code: \"32\",\n details: [\n { city: \"نیشابور\", letters: [\"ب\", \"ی\"] },\n { city: \"سبزوار\", letters: [\"ج\"] },\n { city: \"تربت‌جام\", letters: [\"ص\"] },\n { city: \"قوچان\", letters: [\"ط\"] },\n { city: \"گناباد\", letters: [\"ق\"] },\n { city: \"تربت‌حیدریه\", letters: [\"ل\", \"ن\"] },\n { city: \"کاشمر\", letters: [\"م\"] },\n { city: \"تایباد\", letters: [\"ه\"] },\n { city: \"مشهد\", letters: [\"و\"] },\n ],\n },\n {\n code: \"36\",\n details: [\n { city: \"مشهد\", letters: [\"ب\", \"ج\", \"د\", \"س\", \"ص\", \"ط\", \"ه\", \"و\"] },\n { city: \"کاشمر\", letters: [\"ق\"] },\n { city: \"نیشابور\", letters: [\"ل\"] },\n { city: \"سبزوار\", letters: [\"م\"] },\n { city: \"تربت حیدریه\", letters: [\"ن\"] },\n { city: \"تربت‌جام\", letters: [\"ی\"] },\n ],\n },\n {\n code: \"42\",\n details: [\n { city: \"فریمان\", letters: [\"ب\"] },\n { city: \"مشهد\", letters: [\"ج\", \"ق\", \"ه\", \"و\"] },\n { city: \"سرخس\", letters: [\"د\"] },\n { city: \"درگز\", letters: [\"س\"] },\n { city: \"خواف\", letters: [\"ص\"] },\n { city: \"چناران\", letters: [\"ط\"] },\n { city: \"بردسکن\", letters: [\"ل\"] },\n { city: \"رشتخوار\", letters: [\"م\"] },\n { city: \"سبزوار\", letters: [\"ن\"] },\n { city: \"تربت حیدریه\", letters: [\"ی\"] },\n { city: \"کلات\", letters: [\"ی\"] },\n ],\n },\n {\n code: \"74\",\n details: [\n {\n city: \"مشهد\",\n letters: [\"ب\", \"د\", \"س\", \"ص\", \"ق\", \"م\", \"ن\", \"ه\", \"و\", \"ی\"],\n },\n { city: \"قوچان\", letters: [\"ج\"] },\n { city: \"نیشابور\", letters: [\"ط\"] },\n { city: \"سبزوار\", letters: [\"ل\"] },\n { city: \"گناباد\", letters: [\"ن\"] },\n ],\n },\n ],\n },\n {\n province: \"خراسان جنوبی\",\n codes: [\n {\n code: \"32\",\n details: [{ city: \"بیرجند\", letters: [\"د\"] }],\n },\n {\n code: \"52\",\n details: [\n { city: \"بیرجند\", letters: [\"ب\", \"ج\", \"د\"] },\n { city: \"قاینات\", letters: [\"ص\"] },\n { city: \"فردوس\", letters: [\"ط\"] },\n { city: \"نهبندان\", letters: [\"ق\"] },\n { city: \"سربیشه\", letters: [\"ل\"] },\n ],\n },\n {\n code: \"64\",\n details: [{ city: \"طبس\", letters: [\"ق\"] }],\n },\n ],\n },\n {\n province: \"خوزستان\",\n codes: [\n {\n code: \"14\",\n details: [\n {\n city: \"اهواز\",\n letters: [\n \"ب\",\n \"ج\",\n \"د\",\n \"س\",\n \"ص\",\n \"ط\",\n \"ق\",\n \"ل\",\n \"م\",\n \"ن\",\n \"و\",\n \"ه\",\n \"ی\",\n ],\n },\n ],\n },\n {\n code: \"24\",\n details: [\n { city: \"آبادان\", letters: [\"ب\", \"ق\"] },\n { city: \"خرمشهر\", letters: [\"ج\"] },\n { city: \"دزفول\", letters: [\"د\"] },\n { city: \"بهبهان\", letters: [\"س\"] },\n { city: \"مسجد سلیمان\", letters: [\"ص\"] },\n { city: \"ماهشهر\", letters: [\"ط\", \"ه\"] },\n { city: \"دشت آزادگان\", letters: [\"ق\"] },\n { city: \"رامهرمز\", letters: [\"ل\"] },\n { city: \"اندیمشک\", letters: [\"م\"] },\n { city: \"شوشتر\", letters: [\"ن\"] },\n { city: \"شادگان\", letters: [\"ه\"] },\n { city: \"شوش\", letters: [\"و\"] },\n { city: \"ایذه\", letters: [\"ی\"] },\n ],\n },\n {\n code: \"34\",\n details: [\n { city: \"باغملک\", letters: [\"ب\"] },\n { city: \"شوش\", letters: [\"ب\"] },\n { city: \"امیدیه\", letters: [\"ج\"] },\n { city: \"خرمشهر\", letters: [\"د\"] },\n { city: \"هندیجان\", letters: [\"د\"] },\n { city: \"اندیمشک\", letters: [\"س\"] },\n { city: \"لالی\", letters: [\"س\"] },\n { city: \"دزفول\", letters: [\"ص\", \"و\"] },\n { city: \"ماهشهر\", letters: [\"ط\"] },\n { city: \"آبادان\", letters: [\"ق\"] },\n { city: \"بهبهان\", letters: [\"ن\"] },\n { city: \"شوشتر\", letters: [\"ه\"] },\n { city: \"اهواز\", letters: [\"ی\"] },\n ],\n },\n ],\n },\n {\n province: \"زنجان\",\n codes: [\n {\n code: \"87\",\n details: [{ city: \"زنجان\", letters: [\"ب\", \"د\", \"ج\", \"س\", \"ص\", \"ط\"] }],\n },\n {\n code: \"97\",\n details: [\n { city: \"ابهر\", letters: [\"ب\", \"ق\"] },\n { city: \"خدابنده\", letters: [\"ج\"] },\n { city: \"خرم‌دره\", letters: [\"د\"] },\n { city: \"ایجرود\", letters: [\"س\"] },\n { city: \"طارم\", letters: [\"ص\"] },\n { city: \"ماه‌نشان\", letters: [\"ط\"] },\n ],\n },\n ],\n },\n {\n province: \"سمنان\",\n codes: [\n {\n code: \"86\",\n details: [{ city: \"سمنان\", letters: [\"ب\", \"د\", \"ج\"] }],\n },\n {\n code: \"96\",\n details: [\n { city: \"دامغان\", letters: [\"ب\"] },\n { city: \"شاهرود\", letters: [\"ج\", \"ط\"] },\n { city: \"گرمسار\", letters: [\"د\"] },\n { city: \"مهدی‌شهر\", letters: [\"س\"] },\n ],\n },\n ],\n },\n {\n province: \"سیستان و بلوچستان\",\n codes: [\n {\n code: \"85\",\n details: [{ city: \"زاهدان\", letters: [\"ب\", \"د\", \"ج\", \"س\", \"ص\", \"ط\"] }],\n },\n {\n code: \"95\",\n details: [\n { city: \"زابل\", letters: [\"ب\", \"ل\", \"و\"] },\n { city: \"ایرانشهر\", letters: [\"ج\", \"م\"] },\n { city: \"خاش\", letters: [\"د\"] },\n { city: \"سراوان\", letters: [\"س\", \"ن\"] },\n { city: \"نیکشهر\", letters: [\"ص\"] },\n { city: \"سرباز\", letters: [\"ط\"] },\n { city: \"چابهار\", letters: [\"ق\"] },\n ],\n },\n ],\n },\n {\n province: \"فارس\",\n codes: [\n {\n code: \"63\",\n details: [\n {\n city: \"شیراز\",\n letters: [\n \"ب\",\n \"ج\",\n \"د\",\n \"س\",\n \"ص\",\n \"ط\",\n \"ق\",\n \"ل\",\n \"م\",\n \"ن\",\n \"و\",\n \"ه\",\n \"ی\",\n ],\n },\n ],\n },\n {\n code: \"73\",\n details: [\n { city: \"جهرم\", letters: [\"ب\", \"ه\"] },\n { city: \"لارستان\", letters: [\"ج\"] },\n { city: \"داراب\", letters: [\"د\"] },\n { city: \"فسا\", letters: [\"س\"] },\n { city: \"کازرون\", letters: [\"ص\"] },\n { city: \"فیروزآباد\", letters: [\"ط\"] },\n { city: \"آباده\", letters: [\"ق\"] },\n { city: \"مرودشت\", letters: [\"ل\"] },\n { city: \"لامرد\", letters: [\"م\"] },\n { city: \"نی‌ریز\", letters: [\"ن\"] },\n { city: \"اقلید\", letters: [\"ه\"] },\n { city: \"استهبان\", letters: [\"و\"] },\n { city: \"سپیدان\", letters: [\"ی\"] },\n { city: \"ممسنی\", letters: [\"ی\"] },\n ],\n },\n {\n code: \"83\",\n details: [\n { city: \"ممسنی\", letters: [\"ب\"] },\n { city: \"شیراز و شهرهای دیگر\", letters: [\"ج\", \"ص\", \"ط\", \"ن\"] },\n { city: \"قیر و کارزین\", letters: [\"د\"] },\n { city: \"داراب، مهر، فیروزآباد\", letters: [\"س\"] },\n { city: \"آباده، بوانات\", letters: [\"ق\"] },\n { city: \"فراشبند\", letters: [\"ل\"] },\n { city: \"لارستان\", letters: [\"م\"] },\n { city: \"جهرم\", letters: [\"ه\"] },\n { city: \"مرودشت\", letters: [\"و\"] },\n { city: \"فسا\", letters: [\"ی\"] },\n ],\n },\n {\n code: \"93\",\n details: [\n {\n city: \"شیراز\",\n letters: [\"ب\", \"ج\", \"د\", \"س\", \"ص\", \"ط\", \"ق\", \"م\", \"ن\"],\n },\n { city: \"لارستان\", letters: [\"ل\"] },\n { city: \"شیراز و شهرهای دیگر\", letters: [\"و\", \"ی\"] },\n ],\n },\n ],\n },\n {\n province: \"قزوین\",\n codes: [\n {\n code: \"79\",\n details: [\n {\n city: \"قزوین\",\n letters: [\"ب\", \"ج\", \"د\", \"س\", \"ص\", \"ط\", \"ق\", \"ل\", \"م\"],\n },\n ],\n },\n {\n code: \"89\",\n details: [\n { city: \"تاکستان\", letters: [\"ب\", \"س\"] },\n { city: \"بویین زهرا\", letters: [\"ج\"] },\n { city: \"آبیک\", letters: [\"د\"] },\n ],\n },\n ],\n },\n {\n province: \"قم\",\n codes: [\n {\n code: \"16\",\n details: [{ city: \"قم\", letters: [\"تمام حروف\"] }],\n },\n ],\n },\n {\n province: \"کردستان\",\n codes: [\n {\n code: \"51\",\n details: [\n {\n city: \"سنندج\",\n letters: [\"ب\", \"ج\", \"د\", \"س\", \"ص\", \"ط\", \"ق\", \"ل\", \"م\", \"ن\", \"و\"],\n },\n ],\n },\n {\n code: \"61\",\n details: [\n { city: \"سقز\", letters: [\"ب\", \"م\"] },\n { city: \"بیجار\", letters: [\"ج\"] },\n { city: \"بانه\", letters: [\"د\", \"ه\"] },\n { city: \"قروه\", letters: [\"س\", \"ن\"] },\n { city: \"مریوان\", letters: [\"ص\", \"و\"] },\n { city: \"دیواندره\", letters: [\"ط\"] },\n { city: \"کامیاران\", letters: [\"ق\"] },\n { city: \"سروآباد\", letters: [\"ل\"] },\n ],\n },\n ],\n },\n {\n province: \"کرمان\",\n codes: [\n {\n code: \"45\",\n details: [\n {\n city: \"کرمان\",\n letters: [\"ب\", \"ج\", \"د\", \"س\", \"ص\", \"ط\", \"ق\", \"ل\", \"م\", \"ن\"],\n },\n ],\n },\n {\n code: \"65\",\n details: [\n { city: \"رفسنجان\", letters: [\"ب\", \"ی\"] },\n { city: \"بم\", letters: [\"ج\"] },\n { city: \"سیرجان\", letters: [\"د\"] },\n { city: \"بافت\", letters: [\"س\"] },\n { city: \"جیرفت\", letters: [\"ص\"] },\n { city: \"زرند\", letters: [\"ط\"] },\n { city: \"کهنوج\", letters: [\"ق\"] },\n { city: \"شهر بابک\", letters: [\"ل\"] },\n { city: \"بردسیر\", letters: [\"م\"] },\n { city: \"منوجان\", letters: [\"ن\"] },\n { city: \"راور\", letters: [\"ه\"] },\n { city: \"عنبرآباد\", letters: [\"و\"] },\n ],\n },\n {\n code: \"75\",\n details: [\n { city: \"سیرجان\", letters: [\"ب\", \"ص\", \"م\"] },\n { city: \"بم\", letters: [\"ج\"] },\n { city: \"جیرفت\", letters: [\"د\"] },\n { city: \"رفسنجان\", letters: [\"س\", \"ل\"] },\n { city: \"زرند\", letters: [\"ط\"] },\n { city: \"کهنوج\", letters: [\"ق\"] },\n ],\n },\n ],\n },\n {\n province: \"کرمانشاه\",\n codes: [\n {\n code: \"19\",\n details: [\n {\n city: \"کرمانشاه\",\n letters: [\n \"ب\",\n \"ج\",\n \"د\",\n \"س\",\n \"ص\",\n \"ط\",\n \"ق\",\n \"ل\",\n \"م\",\n \"ن\",\n \"ه\",\n \"و\",\n ],\n },\n ],\n },\n {\n code: \"29\",\n details: [\n { city: \"اسلام‌آباد غرب\", letters: [\"ب\", \"ه\"] },\n { city: \"گیلان غرب\", letters: [\"ج\"] },\n { city: \"سرپل‌ذهاب\", letters: [\"د\"] },\n { city: \"پاوه\", letters: [\"س\"] },\n { city: \"کنگاور\", letters: [\"ص\"] },\n { city: \"قصرشیرین\", letters: [\"ط\"] },\n { city: \"سنقر/سقز\", letters: [\"ق\"] },\n { city: \"جوانرود\", letters: [\"ل\"] },\n { city: \"صحنه\", letters: [\"م\"] },\n { city: \"هرسین\", letters: [\"ن\"] },\n { city: \"ثلاث باباجانی\", letters: [\"و\"] },\n ],\n },\n ],\n },\n {\n province: \"کهگیلویه و بویراحمد\",\n codes: [\n {\n code: \"49\",\n details: [\n { city: \"یاسوج\", letters: [\"ب\", \"ج\", \"د\"] },\n { city: \"گچساران\", letters: [\"ص\", \"ل\"] },\n { city: \"کهگیلویه\", letters: [\"ط\"] },\n { city: \"دنا\", letters: [\"ق\"] },\n ],\n },\n ],\n },\n {\n province: \"گلستان\",\n codes: [\n {\n code: \"59\",\n details: [\n { city: \"گلستان\", letters: [\"ب\", \"ج\", \"د\", \"س\", \"ص\"] },\n { city: \"گنبد کاووس\", letters: [\"ب\", \"ه\"] },\n { city: \"بندرترکمن\", letters: [\"ج\"] },\n { city: \"کردکوی\", letters: [\"د\"] },\n { city: \"علی‌آباد\", letters: [\"س\"] },\n { city: \"آزادشهر\", letters: [\"ص\"] },\n { city: \"مینودشت\", letters: [\"ط\"] },\n { city: \"بندرگز\", letters: [\"ق\"] },\n { city: \"رامیان\", letters: [\"ل\"] },\n { city: \"آق‌قلا\", letters: [\"م\"] },\n { city: \"کلاله\", letters: [\"ن\"] },\n ],\n },\n ],\n },\n {\n province: \"گیلان\",\n codes: [\n {\n code: \"46\",\n details: [\n {\n city: \"رشت\",\n letters: [\"ب\", \"ج\", \"د\", \"س\", \"ص\", \"ط\", \"ق\", \"ل\", \"م\", \"ن\", \"و\"],\n },\n ],\n },\n {\n code: \"56\",\n details: [\n { city: \"انزلی\", letters: [\"ب\"] },\n { city: \"لاهیجان\", letters: [\"ج\"] },\n { city: \"آستارا\", letters: [\"د\"] },\n { city: \"طالش\", letters: [\"س\"] },\n { city: \"رودسر\", letters: [\"ص\"] },\n { city: \"رودبار\", letters: [\"ط\"] },\n { city: \"صومعه‌سرا\", letters: [\"ق\"] },\n { city: \"فومن\", letters: [\"ل\"] },\n { city: \"لنگرود\", letters: [\"م\"] },\n { city: \"رضوان‌شهر\", letters: [\"ن\"] },\n { city: \"ماسال\", letters: [\"ه\"] },\n { city: \"املش\", letters: [\"و\"] },\n { city: \"شفت\", letters: [\"ی\"] },\n ],\n },\n {\n code: \"76\",\n details: [\n { city: \"سیاهکل\", letters: [\"ب\"] },\n { city: \"آستانه\", letters: [\"ج\"] },\n { city: \"لاهیجان\", letters: [\"د\"] },\n { city: \"انزلی\", letters: [\"س\"] },\n { city: \"لنگرود\", letters: [\"ص\"] },\n { city: \"طالش\", letters: [\"ط\"] },\n { city: \"رودسر\", letters: [\"ق\"] },\n ],\n },\n ],\n },\n {\n province: \"لرستان\",\n codes: [\n {\n code: \"31\",\n details: [{ city: \"خرم‌آباد\", letters: [\"ب\", \"ج\", \"د\", \"س\", \"ص\"] }],\n },\n {\n code: \"41\",\n details: [\n { city: \"بروجرد\", letters: [\"ب\", \"م\", \"ن\"] },\n { city: \"الیگودرز\", letters: [\"ج\"] },\n { city: \"دورود\", letters: [\"د\", \"و\"] },\n { city: \"کوهدشت\", letters: [\"س\", \"و\"] },\n { city: \"دلفان\", letters: [\"ص\"] },\n { city: \"ازنا\", letters: [\"ط\"] },\n { city: \"پل دختر\", letters: [\"ق\"] },\n { city: \"سلسله\", letters: [\"ل\"] },\n ],\n },\n ],\n },\n {\n province: \"مازندران\",\n codes: [\n {\n code: \"62\",\n details: [{ city: \"ساری\", letters: [\"ب\", \"ج\", \"د\", \"س\", \"ص\", \"ط\"] }],\n },\n {\n code: \"72\",\n details: [\n { city: \"آمل\", letters: [\"ب\"] },\n { city: \"بابل\", letters: [\"ج\"] },\n { city: \"تنکابن\", letters: [\"د\"] },\n { city: \"رامسر\", letters: [\"س\"] },\n { city: \"نوشهر\", letters: [\"ص\"] },\n { city: \"نور\", letters: [\"ط\", \"ی\"] },\n { city: \"بهشهر\", letters: [\"ق\"] },\n { city: \"قائمشهر\", letters: [\"ل\"] },\n { city: \"بابلسر\", letters: [\"م\"] },\n { city: \"چالوس\", letters: [\"ن\"] },\n { city: \"نکا\", letters: [\"ه\"] },\n { city: \"محمودآباد\", letters: [\"و\"] },\n { city: \"جویبار\", letters: [\"ی\"] },\n ],\n },\n {\n code: \"82\",\n details: [\n { city: \"سوادکوه\", letters: [\"ب\"] },\n { city: \"بابل\", letters: [\"ج\", \"ص\", \"م\"] },\n { city: \"آمل\", letters: [\"د\", \"ق\"] },\n { city: \"قائمشهر\", letters: [\"س\", \"ن\"] },\n { city: \"تنکابن\", letters: [\"ط\"] },\n { city: \"بابلسر\", letters: [\"ل\"] },\n { city: \"بهشهر\", letters: [\"ه\"] },\n { city: \"چالوس\", letters: [\"و\"] },\n { city: \"نوشهر\", letters: [\"ی\"] },\n ],\n },\n {\n code: \"92\",\n details: [\n { city: \"آمل\", letters: [\"ب\"] },\n { city: \"بابل\", letters: [\"ج\", \"ص\"] },\n { city: \"تنکابن\", letters: [\"د\"] },\n { city: \"قائمشهر\", letters: [\"س\"] },\n ],\n },\n ],\n },\n {\n province: \"مرکزی\",\n codes: [\n {\n code: \"47\",\n details: [\n { city: \"اراک\", letters: [\"ب\", \"ج\", \"د\", \"س\", \"ص\", \"ط\", \"ق\"] },\n ],\n },\n {\n code: \"57\",\n details: [\n { city: \"ساوه\", letters: [\"ب\", \"ه\", \"و\"] },\n { city: \"خمین\", letters: [\"ج\"] },\n { city: \"محلات\", letters: [\"د\"] },\n { city: \"تفرش\", letters: [\"س\"] },\n { city: \"دلیجان\", letters: [\"ص\"] },\n { city: \"آشتیان\", letters: [\"ط\"] },\n { city: \"شازند\", letters: [\"ق\"] },\n { city: \"زرندیه\", letters: [\"ل\"] },\n { city: \"کمیجان\", letters: [\"ن\"] },\n ],\n },\n ],\n },\n {\n province: \"هرمزگان\",\n codes: [\n {\n code: \"84\",\n details: [\n {\n city: \"بندرعباس\",\n letters: [\"ب\", \"ج\", \"د\", \"س\", \"ص\", \"ط\", \"ق\", \"ل\"],\n },\n ],\n },\n {\n code: \"94\",\n details: [\n { city: \"میناب\", letters: [\"ب\", \"م\"] },\n { city: \"بندر لنگه\", letters: [\"ج\", \"ن\"] },\n { city: \"رودان\", letters: [\"د\"] },\n { city: \"ابوموسی\", letters: [\"س\"] },\n { city: \"جاسک\", letters: [\"ص\"] },\n { city: \"بستک\", letters: [\"ط\"] },\n { city: \"حاجی‌آباد\", letters: [\"ق\"] },\n { city: \"قشم\", letters: [\"ل\"] },\n ],\n },\n ],\n },\n {\n province: \"همدان\",\n codes: [\n {\n code: \"18\",\n details: [\n { city: \"همدان\", letters: [\"ب\", \"ج\", \"د\", \"س\", \"ص\", \"ق\", \"ل\", \"ط\"] },\n ],\n },\n {\n code: \"28\",\n details: [\n { city: \"نهاوند\", letters: [\"ب\", \"م\"] },\n { city: \"ملایر\", letters: [\"ج\", \"ل\", \"ن\"] },\n { city: \"تویسرکان\", letters: [\"د\"] },\n { city: \"کبودرآهنگ\", letters: [\"س\"] },\n { city: \"رزن\", letters: [\"ص\"] },\n { city: \"بهار\", letters: [\"ط\"] },\n { city: \"اسدآباد\", letters: [\"ق\"] },\n ],\n },\n ],\n },\n {\n province: \"یزد\",\n codes: [\n {\n code: \"54\",\n details: [\n {\n city: \"یزد\",\n letters: [\"ب\", \"ج\", \"د\", \"س\", \"ص\", \"ط\", \"ق\", \"ل\", \"م\", \"ن\"],\n },\n ],\n },\n {\n code: \"64\",\n details: [\n { city: \"اردکان\", letters: [\"ب\"] },\n { city: \"تفت\", letters: [\"ج\"] },\n { city: \"میبد\", letters: [\"د\"] },\n { city: \"بافق\", letters: [\"س\"] },\n { city: \"مهریز\", letters: [\"ص\"] },\n { city: \"ابرکوه\", letters: [\"ط\"] },\n { city: \"خاتم\", letters: [\"ل\"] },\n { city: \"صدوق (اشکذر)\", letters: [\"م\"] },\n ],\n },\n ],\n },\n] as const;\n","import { BANKS, MOBILE_OPERATORS, BILL_TYPES } from \"./data\";\nimport { PLATE_CITY_CODES } from \"./pelak-city-codes\";\n\nconst ALL_PROVINCES = PLATE_CITY_CODES as unknown as readonly {\n province: string;\n codes: readonly {\n code: string;\n details: readonly {\n city: string;\n letters: readonly string[];\n }[];\n }[];\n}[];\n\nexport function verifyAndNormalize(value: string): string {\n if (!value) return \"\";\n const PERSIAN_ZERO = 1776;\n const PERSIAN_NINE = 1785;\n const ARABIC_ZERO = 1632;\n const ARABIC_NINE = 1641;\n const ARABIC_YEH = 1610;\n const PERSIAN_YE = 1740;\n const ARABIC_KAF = 1603;\n const PERSIAN_KE = 1705;\n let result = \"\";\n for (let i = 0; i < value.length; i++) {\n const code = value.charCodeAt(i);\n let char = value[i];\n if (code >= PERSIAN_ZERO && code <= PERSIAN_NINE) {\n char = String(code - PERSIAN_ZERO);\n } else if (code >= ARABIC_ZERO && code <= ARABIC_NINE) {\n char = String(code - ARABIC_ZERO);\n } else if (code === ARABIC_YEH) {\n char = String.fromCharCode(PERSIAN_YE);\n } else if (code === ARABIC_KAF) {\n char = String.fromCharCode(PERSIAN_KE);\n }\n result += char;\n }\n return result;\n}\n\nexport type BankInfo = {\n name: string;\n label: string;\n color: string;\n logo: string;\n formatted: string;\n} | null;\n\nexport function getBankInfo(cardNumber: string): BankInfo {\n const normalized = verifyAndNormalize(cardNumber).replace(/[\\-\\s]/g, \"\");\n if (normalized.length < 6) return null;\n const bin = normalized.substring(0, 6);\n // @ts-ignore\n const bank = BANKS[bin];\n if (!bank) return null;\n return {\n ...bank,\n formatted: normalized.replace(/(\\d{4})(?=\\d)/g, \"$1-\"),\n };\n}\n\nexport type OperatorInfo = {\n name: string;\n label: string;\n logo: string;\n} | null;\n\nexport function getMobileOperator(mobile: string): OperatorInfo {\n const normalized = verifyAndNormalize(mobile);\n let prefix = \"\";\n if (normalized.startsWith(\"09\")) {\n prefix = normalized.substring(0, 4);\n } else if (normalized.startsWith(\"9\")) {\n prefix = \"0\" + normalized.substring(0, 3);\n } else if (normalized.startsWith(\"+98\")) {\n prefix = \"0\" + normalized.substring(3, 6);\n }\n if (prefix.length !== 4) return null;\n for (const [key, op] of Object.entries(MOBILE_OPERATORS)) {\n // @ts-ignore\n if (op.prefixes.includes(prefix)) {\n return {\n name: key,\n label: op.label,\n logo: op.logo,\n };\n }\n }\n return null;\n}\n\nfunction calculateBillCheckDigit(code: string): number {\n let sum = 0;\n let weight = 2;\n for (let i = code.length - 1; i >= 0; i--) {\n sum += parseInt(code[i]) * weight;\n weight++;\n if (weight > 7) weight = 2;\n }\n const remainder = sum % 11;\n if (remainder === 0 || remainder === 1) return 0;\n return 11 - remainder;\n}\n\nexport function isBillIdValid(billId: string): boolean {\n const normalized = verifyAndNormalize(billId);\n if (!/^\\d{6,13}$/.test(normalized)) return false;\n const checkDigit = parseInt(normalized.slice(-1));\n const core = normalized.slice(0, -1);\n return calculateBillCheckDigit(core) === checkDigit;\n}\n\nexport function isPaymentIdValid(paymentId: string, billId: string): boolean {\n const nPay = verifyAndNormalize(paymentId);\n const nBill = verifyAndNormalize(billId);\n\n if (!/^\\d{6,13}$/.test(nPay) || !/^\\d{6,13}$/.test(nBill)) return false;\n\n const payCheckDigit1 = parseInt(nPay.slice(-2, -1));\n const payCore1 = nPay.slice(0, -2);\n if (calculateBillCheckDigit(payCore1) !== payCheckDigit1) return false;\n\n const payCheckDigit2 = parseInt(nPay.slice(-1));\n const combinedCore = nBill + nPay.slice(0, -1);\n return calculateBillCheckDigit(combinedCore) === payCheckDigit2;\n}\n\nexport type BillInfo = {\n type: { label: string; slug: string; color: string; logo: string };\n amount: number;\n formattedAmount: string;\n isValid: boolean;\n} | null;\n\nexport function getBillInfo(billId: string, paymentId?: string): BillInfo {\n const nBill = verifyAndNormalize(billId);\n\n // محدودیت طول برای جلوگیری از اشتباه با کدهای ۳۰ رقمی مالیاتی\n if (nBill.length < 6 || nBill.length > 13) return null;\n\n const typeDigit = parseInt(nBill.slice(-2, -1));\n // @ts-ignore\n const typeInfo = BILL_TYPES[typeDigit] || {\n label: \"نامشخص\",\n slug: \"unknown\",\n color: \"#333\",\n logo: \"\",\n };\n\n let amount = 0;\n let formattedAmount = \"0\";\n let isValid = isBillIdValid(nBill);\n\n if (paymentId) {\n const nPay = verifyAndNormalize(paymentId);\n\n if (!isPaymentIdValid(nPay, nBill)) {\n isValid = false;\n } else {\n // حذف ۵ رقم آخر برای محاسبه مبلغ\n const amountCore = nPay.slice(0, -5);\n if (amountCore.length > 0) {\n amount = parseInt(amountCore) * 1000;\n formattedAmount = new Intl.NumberFormat(\"fa-IR\").format(amount);\n }\n }\n }\n\n return { type: typeInfo, amount, formattedAmount, isValid };\n}\n\nexport type PlateInfo = {\n province: string;\n city: string;\n isValid: boolean;\n} | null;\n\nexport function getPlateInfo(plate: string): PlateInfo {\n const nPlate = verifyAndNormalize(plate).replace(/[\\s-]/g, \"\");\n const regex = /^(\\d{2})([\\u0600-\\u06FF]{1,3}|[A-Za-z])(\\d{3})(\\d{2})$/;\n const match = nPlate.match(regex);\n\n if (!match) return null;\n\n const letter = match[2];\n const cityCode = match[4];\n\n for (const provinceData of ALL_PROVINCES) {\n const codeEntry = provinceData.codes.find((c) => {\n const codeStr = c.code;\n if (codeStr.includes(\",\")) {\n return codeStr\n .split(\",\")\n .map((x) => x.trim())\n .includes(cityCode);\n }\n return codeStr === cityCode;\n });\n\n if (codeEntry) {\n const cityDetail = codeEntry.details.find((d) => {\n return d.letters.includes(letter) || d.letters.includes(\"تمام حروف\");\n });\n\n if (cityDetail) {\n return {\n province: provinceData.province,\n city: cityDetail.city,\n isValid: true,\n };\n }\n }\n }\n return null;\n}\n\nexport function isPlateNumber(plate: string): boolean {\n return getPlateInfo(plate) !== null;\n}\n\nexport function isMelliCode(code: string): boolean {\n const normalized = verifyAndNormalize(code);\n if (!/^\\d{10}$/.test(normalized)) return false;\n if (/^(\\d)\\1+$/.test(normalized)) return false;\n const check = parseInt(normalized[9]);\n const sum =\n normalized\n .substring(0, 9)\n .split(\"\")\n .reduce((acc, x, i) => acc + parseInt(x) * (10 - i), 0) % 11;\n return sum < 2 ? check === sum : check === 11 - sum;\n}\n\nexport function isShenaseMelli(code: string): boolean {\n const normalized = verifyAndNormalize(code);\n if (normalized.length !== 11 || !/^\\d{11}$/.test(normalized)) return false;\n const tenth = parseInt(normalized[9]);\n const inputCheck = parseInt(normalized[10]);\n const coefficients = [29, 27, 23, 19, 17, 29, 27, 23, 19, 17];\n let sum = 0;\n for (let i = 0; i < 10; i++) {\n const digit = parseInt(normalized[i]);\n sum += (digit + tenth + 2) * coefficients[i];\n }\n const remainder = sum % 11;\n const calculatedCheck = remainder === 10 ? 0 : remainder;\n return calculatedCheck === inputCheck;\n}\n\nexport function isPassport(code: string): boolean {\n const normalized = verifyAndNormalize(code);\n return /^[A-Za-z][0-9]{8,9}$/.test(normalized);\n}\n\nexport function isCardNumber(code: string): boolean {\n const normalized = verifyAndNormalize(code).replace(/[\\-\\s]/g, \"\");\n if (!/^\\d{16}$/.test(normalized)) return false;\n let sum = 0;\n let shouldDouble = false;\n for (let i = normalized.length - 1; i >= 0; i--) {\n let digit = parseInt(normalized[i]);\n if (shouldDouble) {\n digit *= 2;\n if (digit > 9) digit -= 9;\n }\n sum += digit;\n shouldDouble = !shouldDouble;\n }\n return sum % 10 === 0;\n}\n\ninterface MobileValidationOptions {\n strictZero?: boolean | \"optional\";\n}\nexport function isIranianMobile(\n mobile: string,\n { strictZero = \"optional\" }: MobileValidationOptions = {}\n): boolean {\n const normalized = verifyAndNormalize(mobile);\n const corePattern = \"9\\\\d{9}\";\n let pattern = \"\";\n if (strictZero === true) pattern = `^0${corePattern}$`;\n else if (strictZero === false) pattern = `^${corePattern}$`;\n else pattern = `^(?:0|\\\\+98)?${corePattern}$`;\n return new RegExp(pattern).test(normalized);\n}\n\nexport function isSheba(code: string): boolean {\n const normalized = verifyAndNormalize(code);\n const iban = normalized.toUpperCase().replace(/[\\-\\s]/g, \"\");\n if (iban.length !== 26 || !iban.startsWith(\"IR\")) return false;\n const newStr = iban.substring(4) + iban.substring(0, 4);\n const numericString = newStr\n .split(\"\")\n .map((c) => {\n const code = c.charCodeAt(0);\n return code >= 48 && code <= 57 ? c : (code - 55).toString();\n })\n .join(\"\");\n try {\n return BigInt(numericString) % BigInt(97) === BigInt(1);\n } catch {\n return false;\n }\n}\n\nexport function isPostalCode(code: string): boolean {\n const normalized = verifyAndNormalize(code);\n return /^[1-9]\\d{9}$/.test(normalized);\n}\n\nexport function isLandline(code: string): boolean {\n const normalized = verifyAndNormalize(code);\n return /^0\\d{2}\\d{8}$/.test(normalized);\n}\n","export const ERROR_MESSAGES = {\n fa: {\n melliCode: \"کد ملی نامعتبر است\",\n shenaseMelli: \"شناسه ملی نامعتبر است\",\n passport: \"شماره گذرنامه نامعتبر است\",\n cardNumber: \"شماره کارت نامعتبر است\",\n mobile: \"شماره موبایل نامعتبر است\",\n sheba: \"شماره شبا نامعتبر است\",\n postalCode: \"کد پستی نامعتبر است\",\n landline: \"شماره تلفن ثابت نامعتبر است\",\n billId: \"شناسه قبض نامعتبر است\",\n paymentId: \"شناسه پرداخت نامعتبر است\",\n plateNumber: \"پلاک خودرو نامعتبر است\",\n },\n en: {\n melliCode: \"Invalid national code\",\n shenaseMelli: \"Invalid legal person ID (Shenase Melli)\",\n passport: \"Invalid passport number\",\n cardNumber: \"Invalid card number\",\n mobile: \"Invalid mobile number\",\n sheba: \"Invalid Sheba (IBAN) number\",\n postalCode: \"Invalid postal code\",\n landline: \"Invalid landline number\",\n billId: \"Invalid Bill ID\",\n paymentId: \"Invalid Payment ID\",\n plateNumber: \"Invalid License Plate\",\n },\n} as const;\n\nexport type Language = keyof typeof ERROR_MESSAGES;\n\nexport interface BaseOptions {\n message?: string;\n locale?: Language;\n}\n\nexport const getMessage = (\n key: keyof typeof ERROR_MESSAGES[\"fa\"],\n options?: BaseOptions\n): string => {\n if (options?.message) return options.message;\n const lang = options?.locale || \"fa\";\n return ERROR_MESSAGES[lang][key];\n};"],"mappings":"AAAA,OAAS,KAAAA,MAAS,MCAlB,IAAMC,EAAY,iEACZC,EAAgB,qEAChBC,EAAY,iEAELC,EAAQ,CACnB,OAAU,CAAE,KAAM,QAAS,MAAO,qBAAO,MAAO,UAAW,KAAM,GAAGH,CAAS,YAAa,EAC1F,OAAU,CAAE,KAAM,QAAS,MAAO,qBAAO,MAAO,UAAW,KAAM,GAAGA,CAAS,YAAa,EAC1F,OAAU,CAAE,KAAM,eAAgB,MAAO,sEAAgB,MAAO,UAAW,KAAM,GAAGA,CAAS,oBAAqB,EAClH,OAAU,CAAE,KAAM,aAAc,MAAO,2DAAe,MAAO,UAAW,KAAM,GAAGA,CAAS,kBAAmB,EAC7G,OAAU,CAAE,KAAM,aAAc,MAAO,6CAAW,MAAO,UAAW,KAAM,GAAGA,CAAS,iBAAkB,EACxG,OAAU,CAAE,KAAM,SAAU,MAAO,2BAAQ,MAAO,UAAW,KAAM,GAAGA,CAAS,aAAc,EAC7F,OAAU,CAAE,KAAM,WAAY,MAAO,8CAAY,MAAO,UAAW,KAAM,GAAGA,CAAS,gBAAiB,EACtG,OAAU,CAAE,KAAM,cAAe,MAAO,gEAAe,MAAO,UAAW,KAAM,GAAGA,CAAS,mBAAoB,EAC/G,OAAU,CAAE,KAAM,gBAAiB,MAAO,gEAAe,MAAO,UAAW,KAAM,GAAGA,CAAS,qBAAsB,EACnH,OAAU,CAAE,KAAM,UAAW,MAAO,6CAAW,MAAO,UAAW,KAAM,GAAGA,CAAS,cAAe,EAClG,OAAU,CAAE,KAAM,WAAY,MAAO,mDAAY,MAAO,UAAW,KAAM,GAAGA,CAAS,eAAgB,EACrG,OAAU,CAAE,KAAM,YAAa,MAAO,mDAAY,MAAO,UAAW,KAAM,GAAGA,CAAS,gBAAiB,EACvG,OAAU,CAAE,KAAM,QAAS,MAAO,iCAAS,MAAO,UAAW,KAAM,GAAGA,CAAS,YAAa,EAC5F,OAAU,CAAE,KAAM,OAAQ,MAAO,2BAAQ,MAAO,UAAW,KAAM,GAAGA,CAAS,WAAY,EACzF,OAAU,CAAE,KAAM,WAAY,MAAO,uCAAU,MAAO,UAAW,KAAM,GAAGA,CAAS,eAAgB,EACnG,OAAU,CAAE,KAAM,UAAW,MAAO,iCAAS,MAAO,UAAW,KAAM,GAAGA,CAAS,cAAe,EAChG,OAAU,CAAE,KAAM,QAAS,MAAO,qBAAO,MAAO,UAAW,KAAM,GAAGA,CAAS,YAAa,EAC1F,OAAU,CAAE,KAAM,MAAO,MAAO,eAAM,MAAO,UAAW,KAAM,GAAGA,CAAS,UAAW,EACrF,OAAU,CAAE,KAAM,UAAW,MAAO,uCAAU,MAAO,UAAW,KAAM,GAAGA,CAAS,cAAe,EACjG,OAAU,CAAE,KAAM,SAAU,MAAO,qBAAO,MAAO,UAAW,KAAM,GAAGA,CAAS,aAAc,EAC5F,OAAU,CAAE,KAAM,UAAW,MAAO,iCAAS,MAAO,UAAW,KAAM,GAAGA,CAAS,cAAe,EAChG,OAAU,CAAE,KAAM,UAAW,MAAO,iCAAS,MAAO,UAAW,KAAM,GAAGA,CAAS,cAAe,EAChG,OAAU,CAAE,KAAM,QAAS,MAAO,2BAAQ,MAAO,UAAW,KAAM,GAAGA,CAAS,YAAa,EAC3F,OAAU,CAAE,KAAM,QAAS,MAAO,iCAAS,MAAO,UAAW,KAAM,GAAGA,CAAS,YAAa,EAC5F,OAAU,CAAE,KAAM,YAAa,MAAO,0DAAc,MAAO,UAAW,KAAM,GAAGA,CAAS,iBAAkB,EAC1G,OAAU,CAAE,KAAM,cAAe,MAAO,6CAAW,MAAO,UAAW,KAAM,GAAGA,CAAS,kBAAmB,EAC1G,OAAU,CAAE,KAAM,SAAU,MAAO,2BAAQ,MAAO,UAAW,KAAM,GAAGA,CAAS,aAAc,EAC7F,OAAU,CAAE,KAAM,QAAS,MAAO,2BAAQ,MAAO,UAAW,KAAM,GAAGA,CAAS,YAAa,EAC3F,OAAU,CAAE,KAAM,WAAY,MAAO,oDAAa,MAAO,UAAW,KAAM,GAAGA,CAAS,gBAAiB,EACvG,OAAU,CAAE,KAAM,UAAW,MAAO,iCAAS,MAAO,UAAW,KAAM,GAAGA,CAAS,cAAe,EAChG,OAAU,CAAE,KAAM,WAAY,MAAO,oFAAoB,MAAO,UAAW,KAAM,GAAGA,CAAS,eAAgB,EAC7G,OAAU,CAAE,KAAM,eAAgB,MAAO,yDAAa,MAAO,UAAW,KAAM,GAAGA,CAAS,mBAAoB,CAChH,EAEaI,EAAmB,CAC9B,IAAK,CACH,MAAO,oDACP,KAAM,GAAGH,CAAa,WACtB,SAAU,CAAC,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,MAAM,CACnI,EACA,SAAU,CACR,MAAO,6CACP,KAAM,GAAGA,CAAa,gBACtB,SAAU,CAAC,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,MAAM,CACnH,EACA,QAAS,CACP,MAAO,iCACP,KAAM,GAAGA,CAAa,eACtB,SAAU,CAAC,OAAQ,OAAQ,OAAQ,MAAM,CAC3C,EACA,OAAQ,CACN,MAAO,gEACP,KAAM,GAAGA,CAAa,cACtB,SAAU,CAAC,MAAM,CACnB,EACA,OAAQ,CACN,MAAO,iCACP,KAAM,GAAGA,CAAa,cACtB,SAAU,CAAC,MAAM,CACnB,CACF,EAGaI,EAAa,CACxB,EAAG,CAAE,MAAO,eAAM,KAAM,QAAS,MAAO,UAAW,KAAM,GAAGH,CAAS,YAAa,EAClF,EAAG,CAAE,MAAO,qBAAO,KAAM,cAAe,MAAO,UAAW,KAAM,GAAGA,CAAS,kBAAmB,EAC/F,EAAG,CAAE,MAAO,qBAAO,KAAM,MAAO,MAAO,UAAW,KAAM,GAAGA,CAAS,UAAW,EAC/E,EAAG,CAAE,MAAO,oDAAa,KAAM,QAAS,MAAO,UAAW,KAAM,GAAGA,CAAS,YAAa,EACzF,EAAG,CAAE,MAAO,0DAAc,KAAM,SAAU,MAAO,UAAW,KAAM,GAAGA,CAAS,aAAc,EAC5F,EAAG,CAAE,MAAO,4EAAiB,KAAM,eAAgB,MAAO,UAAW,KAAM,GAAGA,CAAS,mBAAoB,EAC3G,EAAG,CAAE,MAAO,4EAAiB,KAAM,UAAW,MAAO,UAAW,KAAM,GAAGA,CAAS,cAAe,CACnG,EC5EO,IAAMI,EAAmB,CAC9B,CACE,SAAU,kFACV,MAAO,CACL,CACE,KAAM,KACN,QAAS,CACP,CACE,KAAM,iCACN,QAAS,CACP,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,QACF,CACF,CACF,CACF,EACA,CACE,KAAM,KACN,QAAS,CACP,CAAE,KAAM,qBAAO,QAAS,CAAC,QAAG,CAAE,EAC9B,CAAE,KAAM,uCAAU,QAAS,CAAC,QAAG,CAAE,EACjC,CAAE,KAAM,+DAAc,QAAS,CAAC,QAAG,CAAE,EACrC,CAAE,KAAM,2BAAQ,QAAS,CAAC,QAAG,CAAE,EAC/B,CAAE,KAAM,2BAAQ,QAAS,CAAC,QAAG,CAAE,EAC/B,CAAE,KAAM,2BAAQ,QAAS,CAAC,QAAG,CAAE,EAC/B,CAAE,KAAM,iCAAS,QAAS,CAAC,QAAG,CAAE,EAChC,CAAE,KAAM,iCAAS,QAAS,CAAC,QAAG,CAAE,EAChC,CAAE,KAAM,iCAAS,QAAS,CAAC,QAAG,CAAE,EAChC,CAAE,KAAM,2BAAQ,QAAS,CAAC,QAAG,CAAE,EAC/B,CAAE,KAAM,iCAAS,QAAS,CAAC,QAAG,CAAE,EAChC,CAAE,KAAM,2BAAQ,QAAS,CAAC,QAAG,CAAE,EAC/B,CAAE,KAAM,uCAAU,QAAS,CAAC,QAAG,CAAE,CACnC,CACF,EACA,CACE,KAAM,KACN,QAAS,CACP,CAAE,KAAM,2BAAQ,QAAS,CAAC,QAAG,CAAE,EAC/B,CAAE,KAAM,2BAAQ,QAAS,CAAC,QAAG,CAAE,EAC/B,CAAE,KAAM,iCAAS,QAAS,CAAC,QAAG,CAAE,EAChC,CAAE,KAAM,iCAAS,QAAS,CAAC,SAAK,QAAG,CAAE,EACrC,CAAE,KAAM,uCAAU,QAAS,CAAC,QAAG,CAAE,EACjC,CAAE,KAAM,qBAAO,QAAS,CAAC,QAAG,CAAE,EAC9B,CAAE,KAAM,2BAAQ,QAAS,CAAC,QAAG,CAAE,EAC/B,CAAE,KAAM,0DAAc,QAAS,CAAC,QAAG,CAAE,EACrC,CAAE,KAAM,2BAAQ,QAAS,CAAC,QAAG,CAAE,EAC/B,CAAE,KAAM,2BAAQ,QAAS,CAAC,QAAG,CAAE,EAC/B,CAAE,KAAM,iCAAS,QAAS,CAAC,QAAG,CAAE,EAChC,CAAE,KAAM,iCAAS,QAAS,CAAC,QAAG,CAAE,EAChC,CAAE,KAAM,iCAAS,QAAS,CAAC,QAAG,CAAE,EAChC,CAAE,KAAM,2BAAQ,QAAS,CAAC,oBAAK,CAAE,EACjC,CAAE,KAAM,uCAAU,QAAS,CAAC,QAAG,CAAE,EACjC,CAAE,KAAM,+FAAqB,QAAS,CAAC,QAAG,CAAE,CAC9C,CACF,CACF,CACF,EACA,CACE,SAAU,kFACV,MAAO,CACL,CACE,KAAM,KACN,QAAS,CACP,CACE,KAAM,uCACN,QAAS,CACP,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,QACF,CACF,EACA,CAAE,KAAM,qBAAO,QAAS,CAAC,QAAG,CAAE,CAChC,CACF,EACA,CACE,KAAM,KACN,QAAS,CACP,CAAE,KAAM,qBAAO,QAAS,CAAC,QAAG,CAAE,EAC9B,CAAE,KAAM,uCAAU,QAAS,CAAC,QAAG,CAAE,EACjC,CAAE,KAAM,2BAAQ,QAAS,CAAC,QAAG,CAAE,EAC/B,CAAE,KAAM,iCAAS,QAAS,CAAC,QAAG,CAAE,EAChC,CAAE,KAAM,2BAAQ,QAAS,CAAC,QAAG,CAAE,EAC/B,CAAE,KAAM,mDAAY,QAAS,CAAC,SAAK,QAAG,CAAE,EACxC,CAAE,KAAM,2BAAQ,QAAS,CAAC,QAAG,CAAE,EAC/B,CAAE,KAAM,mDAAY,QAAS,CAAC,QAAG,CAAE,EACnC,CAAE,KAAM,iCAAS,QAAS,CAAC,QAAG,CAAE,EAChC,CAAE,KAAM,iCAAS,QAAS,CAAC,QAAG,CAAE,EAChC,CAAE,KAAM,6CAAW,QAAS,CAAC,QAAG,CAAE,EAClC,CAAE,KAAM,mDAAY,QAAS,CAAC,QAAG,CAAE,EACnC,CAAE,KAAM,uCAAU,QAAS,CAAC,QAAG,CAAE,CACnC,CACF,EACA,CACE,KAAM,KACN,QAAS,CACP,CAAE,KAAM,qBAAO,QAAS,CAAC,QAAG,CAAE,EAC9B,CAAE,KAAM,mDAAY,QAAS,CAAC,QAAG,CAAE,EACnC,CAAE,KAAM,2BAAQ,QAAS,CAAC,QAAG,CAAE,EAC/B,CAAE,KAAM,uCAAU,QAAS,CAAC,QAAG,CAAE,EACjC,CAAE,KAAM,iCAAS,QAAS,CAAC,QAAG,CAAE,EAChC,CAAE,KAAM,iCAAS,QAAS,CAAC,QAAG,CAAE,EAChC,CAAE,KAAM,2BAAQ,QAAS,CAAC,QAAG,CAAE,CACjC,CACF,CACF,CACF,EACA,CACE,SAAU,uCACV,MAAO,CACL,CACE,KAAM,KACN,QAAS,CACP,CAAE,KAAM,uCAAU,QAAS,CAAC,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,QAAG,CAAE,EAC/D,CAAE,KAAM,yDAAa,QAAS,CAAC,SAAK,SAAK,SAAK,QAAG,CAAE,EACnD,CAAE,KAAM,iCAAS,QAAS,CAAC,QAAG,CAAE,EAChC,CAAE,KAAM,2BAAQ,QAAS,CAAC,QAAG,CAAE,EAC/B,CAAE,KAAM,yDAAa,QAAS,CAAC,QAAG,CAAE,EACpC,CAAE,KAAM,yDAAa,QAAS,CAAC,SAAK,QAAG,CAAE,EACzC,CAAE,KAAM,qBAAO,QAAS,CAAC,QAAG,CAAE,EAC9B,CAAE,KAAM,2BAAQ,QAAS,CAAC,SAAK,QAAG,CAAE,EACpC,CAAE,KAAM,2BAAQ,QAAS,CAAC,QAAG,CAAE,CACjC,CACF,CACF,CACF,EACA,CACE,SAAU,uCACV,MAAO,CACL,CACE,KAAM,KACN,QAAS,CACP,CACE,KAAM,uCACN,QAAS,CACP,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,QACF,CACF,EACA,CAAE,KAAM,mDAAY,QAAS,CAAC,QAAG,CAAE,CACrC,CACF,EACA,CACE,KAAM,KACN,QAAS,CACP,CAAE,KAAM,iCAAS,QAAS,CAAC,QAAG,CAAE,EAChC,CAAE,KAAM,mDAAY,QAAS,CAAC,QAAG,CAAE,EACnC,CAAE,KAAM,iCAAS,QAAS,CAAC,QAAG,CAAE,EAChC,CAAE,KAAM,yDAAa,QAAS,CAAC,QAAG,CAAE,EACpC,CAAE,KAAM,mDAAY,QAAS,CAAC,QAAG,CAAE,EACnC,CAAE,KAAM,2BAAQ,QAAS,CAAC,QAAG,CAAE,EAC/B,CAAE,KAAM,6CAAW,QAAS,CAAC,QAAG,CAAE,EAClC,CAAE,KAAM,6CAAW,QAAS,CAAC,QAAG,CAAE,EAClC,CAAE,KAAM,iCAAS,QAAS,CAAC,QAAG,CAAE,EAChC,CAAE,KAAM,iCAAS,QAAS,CAAC,QAAG,CAAE,EAChC,CAAE,KAAM,mDAAY,QAAS,CAAC,QAAG,CAAE,EACnC,CAAE,KAAM,+DAAc,QAAS,CAAC,QAAG,CAAE,EACrC,CAAE,KAAM,iCAAS,QAAS,CAAC,QAAG,CAAE,CAClC,CACF,EACA,CACE,KAAM,KACN,QAAS,CACP,CAAE,KAAM,iCAAS,QAAS,CAAC,QAAG,CAAE,EAChC,CAAE,KAAM,uCAAU,QAAS,CAAC,SAAK,QAAG,CAAE,EACtC,CAAE,KAAM,yFAAoB,QAAS,CAAC,SAAK,QAAG,CAAE,EAChD,CAAE,KAAM,iEAAgB,QAAS,CAAC,QAAG,CAAE,EACvC,CAAE,KAAM,iEAAgB,QAAS,CAAC,QAAG,CAAE,EACvC,CAAE,KAAM,uCAAU,QAAS,CAAC,QAAG,CAAE,EACjC,CAAE,KAAM,mDAAY,QAAS,CAAC,QAAG,CAAE,EACnC,CAAE,KAAM,yDAAa,QAAS,CAAC,QAAG,CAAE,EACpC,CAAE,KAAM,iCAAS,QAAS,CAAC,QAAG,CAAE,EAChC,CAAE,KAAM,iCAAS,QAAS,CAAC,QAAG,CAAE,EAChC,CAAE,KAAM,mDAAY,QAAS,CAAC,QAAG,CAAE,CACrC,CACF,EACA,CACE,KAAM,KACN,QAAS,CACP,CAAE,KAAM,uCAAU,QAAS,CAAC,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,QAAG,CAAE,EACpE,CAAE,KAAM,iCAAS,QAAS,CAAC,QAAG,CAAE,EAChC,CAAE,KAAM,yFAAoB,QAAS,CAAC,QAAG,CAAE,EAC3C,CAAE,KAAM,mDAAY,QAAS,CAAC,QAAG,CAAE,EACnC,CAAE,KAAM,iCAAS,QAAS,CAAC,QAAG,CAAE,EAChC,CAAE,KAAM,yDAAa,QAAS,CAAC,QAAG,CAAE,CACtC,CACF,EACA,CACE,KAAM,KACN,QAAS,CACP,CACE,KAAM,uCACN,QAAS,CAAC,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,QAAG,CACvD,EACA,CAAE,KAAM,yFAAoB,QAAS,CAAC,QAAG,CAAE,EAC3C,CAAE,KAAM,iCAAS,QAAS,CAAC,QAAG,CAAE,CAClC,CACF,CACF,CACF,EACA,CACE,SAAU,iCACV,MAAO,CACL,CACE,KAAM,KACN,QAAS,CACP,CAAE,KAAM,mDAAY,QAAS,CAAC,QAAG,CAAE,EACnC,CAAE,KAAM,qBAAO,QAAS,CAAC,SAAK,QAAG,CAAE,CACrC,CACF,EACA,CACE,KAAM,KACN,QAAS,CAAC,CAAE,KAAM,qBAAO,QAAS,CAAC,SAAK,SAAK,SAAK,SAAK,QAAG,CAAE,CAAC,CAC/D,EACA,CACE,KAAM,KACN,QAAS,CACP,CAAE,KAAM,qBAAO,QAAS,CAAC,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,QAAG,CAAE,CAC9D,CACF,EACA,CACE,KAAM,KACN,QAAS,CACP,CACE,KAAM,qBACN,QAAS,CACP,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,QACF,CACF,CACF,CACF,EACA,CACE,KAAM,KACN,QAAS,CAAC,CAAE,KAAM,mDAAY,QAAS,CAAC,QAAG,CAAE,CAAC,CAChD,CACF,CACF,EACA,CACE,SAAU,iCACV,MAAO,CACL,CACE,KAAM,KACN,QAAS,CACP,CAAE,KAAM,iCAAS,QAAS,CAAC,SAAK,SAAK,QAAG,CAAE,EAC1C,CAAE,KAAM,iCAAS,QAAS,CAAC,QAAG,CAAE,EAChC,CAAE,KAAM,2BAAQ,QAAS,CAAC,QAAG,CAAE,EAC/B,CAAE,KAAM,uCAAU,QAAS,CAAC,QAAG,CAAE,EACjC,CAAE,KAAM,uCAAU,QAAS,CAAC,QAAG,CAAE,EACjC,CAAE,KAAM,iCAAS,QAAS,CAAC,QAAG,CAAE,EAChC,CAAE,KAAM,6CAAW,QAAS,CAAC,QAAG,CAAE,CACpC,CACF,CACF,CACF,EACA,CACE,SAAU,iCACV,MAAO,CACL,CACE,KAAM,KACN,QAAS,CACP,CACE,KAAM,iCACN,QAAS,CACP,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,QACF,CACF,CACF,CACF,EACA,CACE,KAAM,KACN,QAAS,CACP,CAAE,KAAM,6CAAW,QAAS,CAAC,SAAK,SAAK,QAAG,CAAE,EAC5C,CAAE,KAAM,iCAAS,QAAS,CAAC,SAAK,QAAG,CAAE,EACrC,CAAE,KAAM,4EAAiB,QAAS,CAAC,SAAK,QAAG,CAAE,EAC7C,CAAE,KAAM,6CAAW,QAAS,CAAC,QAAG,CAAE,EAClC,CAAE,KAAM,2BAAQ,QAAS,CAAC,SAAK,QAAG,CAAE,EACpC,CAAE,KAAM,qBAAO,QAAS,CAAC,QAAG,CAAE,EAC9B,CAAE,KAAM,2BAAQ,QAAS,CAAC,QAAG,CAAE,EAC/B,CAAE,KAAM,eAAM,QAAS,CAAC,QAAG,CAAE,CAC/B,CACF,CACF,CACF,EACA,CACE,SAAU,iCACV,MAAO,CACL,CACE,KAAM,yDACN,QAAS,CACP,CACE,KAAM,sDACN,QAAS,CACP,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,QACF,CACF,CACF,CACF,EACA,CACE,KAAM,KACN,QAAS,CACP,CAAE,KAAM,mDAAY,QAAS,CAAC,SAAK,QAAG,CAAE,EACxC,CAAE,KAAM,yDAAa,QAAS,CAAC,QAAG,CAAE,EACpC,CAAE,KAAM,uCAAU,QAAS,CAAC,QAAG,CAAE,CACnC,CACF,EACA,CACE,KAAM,KACN,QAAS,CACP,CAAE,KAAM,mDAAY,QAAS,CAAC,QAAG,CAAE,EACnC,CAAE,KAAM,uCAAU,QAAS,CAAC,QAAG,CAAE,CACnC,CACF,EACA,CACE,KAAM,KACN,QAAS,CACP,CAAE,KAAM,mDAAY,QAAS,CAAC,SAAK,QAAG,CAAE,EACxC,CAAE,KAAM,yDAAa,QAAS,CAAC,QAAG,CAAE,EACpC,CAAE,KAAM,eAAM,QAAS,CAAC,QAAG,CAAE,EAC7B,CAAE,KAAM,mDAAY,QAAS,CAAC,QAAG,CAAE,CACrC,CACF,EACA,CACE,KAAM,KACN,QAAS,CAAC,CAAE,KAAM,yDAAa,QAAS,CAAC,QAAG,CAAE,CAAC,CACjD,CACF,CACF,EACA,CACE,SAAU,qGACV,MAAO,CACL,CACE,KAAM,KACN,QAAS,CACP,CACE,KAAM,uCACN,QAAS,CACP,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,QACF,CACF,CACF,CACF,EACA,CACE,KAAM,KACN,QAAS,CACP,CAAE,KAAM,iCAAS,QAAS,CAAC,SAAK,QAAG,CAAE,EACrC,CAAE,KAAM,uCAAU,QAAS,CAAC,QAAG,CAAE,EACjC,CAAE,KAAM,uCAAU,QAAS,CAAC,QAAG,CAAE,EACjC,CAAE,KAAM,2BAAQ,QAAS,CAAC,QAAG,CAAE,EAC/B,CAAE,KAAM,uCAAU,QAAS,CAAC,QAAG,CAAE,EACjC,CAAE,KAAM,2BAAQ,QAAS,CAAC,QAAG,CAAE,EAC/B,CAAE,KAAM,eAAM,QAAS,CAAC,QAAG,CAAE,CAC/B,CACF,CACF,CACF,EACA,CACE,SAAU,sEACV,MAAO,CACL,CACE,KAAM,KACN,QAAS,CAAC,CAAE,KAAM,uCAAU,QAAS,CAAC,SAAK,SAAK,SAAK,SAAK,QAAG,CAAE,CAAC,CAClE,EACA,CACE,KAAM,KACN,QAAS,CACP,CAAE,KAAM,uCAAU,QAAS,CAAC,SAAK,QAAG,CAAE,EACtC,CAAE,KAAM,6CAAW,QAAS,CAAC,SAAK,QAAG,CAAE,EACvC,CAAE,KAAM,uEAAiB,QAAS,CAAC,SAAK,QAAG,CAAE,EAC7C,CAAE,KAAM,iCAAS,QAAS,CAAC,QAAG,CAAE,EAChC,CAAE,KAAM,uCAAU,QAAS,CAAC,SAAK,SAAK,QAAG,CAAE,EAC3C,CAAE,KAAM,iEAAgB,QAAS,CAAC,QAAG,CAAE,CACzC,CACF,CACF,CACF,EACA,CACE,SAAU,gEACV,MAAO,CACL,CACE,KAAM,KACN,QAAS,CACP,CACE,KAAM,2BACN,QAAS,CACP,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,QACF,CACF,CACF,CACF,EACA,CACE,KAAM,KACN,QAAS,CACP,CAAE,KAAM,6CAAW,QAAS,CAAC,SAAK,QAAG,CAAE,EACvC,CAAE,KAAM,uCAAU,QAAS,CAAC,QAAG,CAAE,EACjC,CAAE,KAAM,mDAAY,QAAS,CAAC,QAAG,CAAE,EACnC,CAAE,KAAM,iCAAS,QAAS,CAAC,QAAG,CAAE,EAChC,CAAE,KAAM,uCAAU,QAAS,CAAC,QAAG,CAAE,EACjC,CAAE,KAAM,qEAAe,QAAS,CAAC,SAAK,QAAG,CAAE,EAC3C,CAAE,KAAM,iCAAS,QAAS,CAAC,QAAG,CAAE,EAChC,CAAE,KAAM,uCAAU,QAAS,CAAC,QAAG,CAAE,EACjC,CAAE,KAAM,2BAAQ,QAAS,CAAC,QAAG,CAAE,CACjC,CACF,EACA,CACE,KAAM,KACN,QAAS,CACP,CAAE,KAAM,2BAAQ,QAAS,CAAC,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,QAAG,CAAE,EAClE,CAAE,KAAM,iCAAS,QAAS,CAAC,QAAG,CAAE,EAChC,CAAE,KAAM,6CAAW,QAAS,CAAC,QAAG,CAAE,EAClC,CAAE,KAAM,uCAAU,QAAS,CAAC,QAAG,CAAE,EACjC,CAAE,KAAM,gEAAe,QAAS,CAAC,QAAG,CAAE,EACtC,CAAE,KAAM,mDAAY,QAAS,CAAC,QAAG,CAAE,CACrC,CACF,EACA,CACE,KAAM,KACN,QAAS,CACP,CAAE,KAAM,uCAAU,QAAS,CAAC,QAAG,CAAE,EACjC,CAAE,KAAM,2BAAQ,QAAS,CAAC,SAAK,SAAK,SAAK,QAAG,CAAE,EAC9C,CAAE,KAAM,2BAAQ,QAAS,CAAC,QAAG,CAAE,EAC/B,CAAE,KAAM,2BAAQ,QAAS,CAAC,QAAG,CAAE,EAC/B,CAAE,KAAM,2BAAQ,QAAS,CAAC,QAAG,CAAE,EAC/B,CAAE,KAAM,uCAAU,QAAS,CAAC,QAAG,CAAE,EACjC,CAAE,KAAM,uCAAU,QAAS,CAAC,QAAG,CAAE,EACjC,CAAE,KAAM,6CAAW,QAAS,CAAC,QAAG,CAAE,EAClC,CAAE,KAAM,uCAAU,QAAS,CAAC,QAAG,CAAE,EACjC,CAAE,KAAM,gEAAe,QAAS,CAAC,QAAG,CAAE,EACtC,CAAE,KAAM,2BAAQ,QAAS,CAAC,QAAG,CAAE,CACjC,CACF,EACA,CACE,KAAM,KACN,QAAS,CACP,CACE,KAAM,2BACN,QAAS,CAAC,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,QAAG,CAC5D,EACA,CAAE,KAAM,iCAAS,QAAS,CAAC,QAAG,CAAE,EAChC,CAAE,KAAM,6CAAW,QAAS,CAAC,QAAG,CAAE,EAClC,CAAE,KAAM,uCAAU,QAAS,CAAC,QAAG,CAAE,EACjC,CAAE,KAAM,uCAAU,QAAS,CAAC,QAAG,CAAE,CACnC,CACF,CACF,CACF,EACA,CACE,SAAU,sEACV,MAAO,CACL,CACE,KAAM,KACN,QAAS,CAAC,CAAE,KAAM,uCAAU,QAAS,CAAC,QAAG,CAAE,CAAC,CAC9C,EACA,CACE,KAAM,KACN,QAAS,CACP,CAAE,KAAM,uCAAU,QAAS,CAAC,SAAK,SAAK,QAAG,CAAE,EAC3C,CAAE,KAAM,uCAAU,QAAS,CAAC,QAAG,CAAE,EACjC,CAAE,KAAM,iCAAS,QAAS,CAAC,QAAG,CAAE,EAChC,CAAE,KAAM,6CAAW,QAAS,CAAC,QAAG,CAAE,EAClC,CAAE,KAAM,uCAAU,QAAS,CAAC,QAAG,CAAE,CACnC,CACF,EACA,CACE,KAAM,KACN,QAAS,CAAC,CAAE,KAAM,qBAAO,QAAS,CAAC,QAAG,CAAE,CAAC,CAC3C,CACF,CACF,EACA,CACE,SAAU,6CACV,MAAO,CACL,CACE,KAAM,KACN,QAAS,CACP,CACE,KAAM,iCACN,QAAS,CACP,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,QACF,CACF,CACF,CACF,EACA,CACE,KAAM,KACN,QAAS,CACP,CAAE,KAAM,uCAAU,QAAS,CAAC,SAAK,QAAG,CAAE,EACtC,CAAE,KAAM,uCAAU,QAAS,CAAC,QAAG,CAAE,EACjC,CAAE,KAAM,iCAAS,QAAS,CAAC,QAAG,CAAE,EAChC,CAAE,KAAM,uCAAU,QAAS,CAAC,QAAG,CAAE,EACjC,CAAE,KAAM,gEAAe,QAAS,CAAC,QAAG,CAAE,EACtC,CAAE,KAAM,uCAAU,QAAS,CAAC,SAAK,QAAG,CAAE,EACtC,CAAE,KAAM,gEAAe,QAAS,CAAC,QAAG,CAAE,EACtC,CAAE,KAAM,6CAAW,QAAS,CAAC,QAAG,CAAE,EAClC,CAAE,KAAM,6CAAW,QAAS,CAAC,QAAG,CAAE,EAClC,CAAE,KAAM,iCAAS,QAAS,CAAC,QAAG,CAAE,EAChC,CAAE,KAAM,uCAAU,QAAS,CAAC,QAAG,CAAE,EACjC,CAAE,KAAM,qBAAO,QAAS,CAAC,QAAG,CAAE,EAC9B,CAAE,KAAM,2BAAQ,QAAS,CAAC,QAAG,CAAE,CACjC,CACF,EACA,CACE,KAAM,KACN,QAAS,CACP,CAAE,KAAM,uCAAU,QAAS,CAAC,QAAG,CAAE,EACjC,CAAE,KAAM,qBAAO,QAAS,CAAC,QAAG,CAAE,EAC9B,CAAE,KAAM,uCAAU,QAAS,CAAC,QAAG,CAAE,EACjC,CAAE,KAAM,uCAAU,QAAS,CAAC,QAAG,CAAE,EACjC,CAAE,KAAM,6CAAW,QAAS,CAAC,QAAG,CAAE,EAClC,CAAE,KAAM,6CAAW,QAAS,CAAC,QAAG,CAAE,EAClC,CAAE,KAAM,2BAAQ,QAAS,CAAC,QAAG,CAAE,EAC/B,CAAE,KAAM,iCAAS,QAAS,CAAC,SAAK,QAAG,CAAE,EACrC,CAAE,KAAM,uCAAU,QAAS,CAAC,QAAG,CAAE,EACjC,CAAE,KAAM,uCAAU,QAAS,CAAC,QAAG,CAAE,EACjC,CAAE,KAAM,uCAAU,QAAS,CAAC,QAAG,CAAE,EACjC,CAAE,KAAM,iCAAS,QAAS,CAAC,QAAG,CAAE,EAChC,CAAE,KAAM,iCAAS,QAAS,CAAC,QAAG,CAAE,CAClC,CACF,CACF,CACF,EACA,CACE,SAAU,iCACV,MAAO,CACL,CACE,KAAM,KACN,QAAS,CAAC,CAAE,KAAM,iCAAS,QAAS,CAAC,SAAK,SAAK,SAAK,SAAK,SAAK,QAAG,CAAE,CAAC,CACtE,EACA,CACE,KAAM,KACN,QAAS,CACP,CAAE,KAAM,2BAAQ,QAAS,CAAC,SAAK,QAAG,CAAE,EACpC,CAAE,KAAM,6CAAW,QAAS,CAAC,QAAG,CAAE,EAClC,CAAE,KAAM,6CAAW,QAAS,CAAC,QAAG,CAAE,EAClC,CAAE,KAAM,uCAAU,QAAS,CAAC,QAAG,CAAE,EACjC,CAAE,KAAM,2BAAQ,QAAS,CAAC,QAAG,CAAE,EAC/B,CAAE,KAAM,mDAAY,QAAS,CAAC,QAAG,CAAE,CACrC,CACF,CACF,CACF,EACA,CACE,SAAU,iCACV,MAAO,CACL,CACE,KAAM,KACN,QAAS,CAAC,CAAE,KAAM,iCAAS,QAAS,CAAC,SAAK,SAAK,QAAG,CAAE,CAAC,CACvD,EACA,CACE,KAAM,KACN,QAAS,CACP,CAAE,KAAM,uCAAU,QAAS,CAAC,QAAG,CAAE,EACjC,CAAE,KAAM,uCAAU,QAAS,CAAC,SAAK,QAAG,CAAE,EACtC,CAAE,KAAM,uCAAU,QAAS,CAAC,QAAG,CAAE,EACjC,CAAE,KAAM,mDAAY,QAAS,CAAC,QAAG,CAAE,CACrC,CACF,CACF,CACF,EACA,CACE,SAAU,+FACV,MAAO,CACL,CACE,KAAM,KACN,QAAS,CAAC,CAAE,KAAM,uCAAU,QAAS,CAAC,SAAK,SAAK,SAAK,SAAK,SAAK,QAAG,CAAE,CAAC,CACvE,EACA,CACE,KAAM,KACN,QAAS,CACP,CAAE,KAAM,2BAAQ,QAAS,CAAC,SAAK,SAAK,QAAG,CAAE,EACzC,CAAE,KAAM,mDAAY,QAAS,CAAC,SAAK,QAAG,CAAE,EACxC,CAAE,KAAM,qBAAO,QAAS,CAAC,QAAG,CAAE,EAC9B,CAAE,KAAM,uCAAU,QAAS,CAAC,SAAK,QAAG,CAAE,EACtC,CAAE,KAAM,uCAAU,QAAS,CAAC,QAAG,CAAE,EACjC,CAAE,KAAM,iCAAS,QAAS,CAAC,QAAG,CAAE,EAChC,CAAE,KAAM,uCAAU,QAAS,CAAC,QAAG,CAAE,CACnC,CACF,CACF,CACF,EACA,CACE,SAAU,2BACV,MAAO,CACL,CACE,KAAM,KACN,QAAS,CACP,CACE,KAAM,iCACN,QAAS,CACP,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,QACF,CACF,CACF,CACF,EACA,CACE,KAAM,KACN,QAAS,CACP,CAAE,KAAM,2BAAQ,QAAS,CAAC,SAAK,QAAG,CAAE,EACpC,CAAE,KAAM,6CAAW,QAAS,CAAC,QAAG,CAAE,EAClC,CAAE,KAAM,iCAAS,QAAS,CAAC,QAAG,CAAE,EAChC,CAAE,KAAM,qBAAO,QAAS,CAAC,QAAG,CAAE,EAC9B,CAAE,KAAM,uCAAU,QAAS,CAAC,QAAG,CAAE,EACjC,CAAE,KAAM,yDAAa,QAAS,CAAC,QAAG,CAAE,EACpC,CAAE,KAAM,iCAAS,QAAS,CAAC,QAAG,CAAE,EAChC,CAAE,KAAM,uCAAU,QAAS,CAAC,QAAG,CAAE,EACjC,CAAE,KAAM,iCAAS,QAAS,CAAC,QAAG,CAAE,EAChC,CAAE,KAAM,uCAAU,QAAS,CAAC,QAAG,CAAE,EACjC,CAAE,KAAM,iCAAS,QAAS,CAAC,QAAG,CAAE,EAChC,CAAE,KAAM,6CAAW,QAAS,CAAC,QAAG,CAAE,EAClC,CAAE,KAAM,uCAAU,QAAS,CAAC,QAAG,CAAE,EACjC,CAAE,KAAM,iCAAS,QAAS,CAAC,QAAG,CAAE,CAClC,CACF,EACA,CACE,KAAM,KACN,QAAS,CACP,CAAE,KAAM,iCAAS,QAAS,CAAC,QAAG,CAAE,EAChC,CAAE,KAAM,sGAAuB,QAAS,CAAC,SAAK,SAAK,SAAK,QAAG,CAAE,EAC7D,CAAE,KAAM,iEAAgB,QAAS,CAAC,QAAG,CAAE,EACvC,CAAE,KAAM,uHAAyB,QAAS,CAAC,QAAG,CAAE,EAChD,CAAE,KAAM,4EAAiB,QAAS,CAAC,QAAG,CAAE,EACxC,CAAE,KAAM,6CAAW,QAAS,CAAC,QAAG,CAAE,EAClC,CAAE,KAAM,6CAAW,QAAS,CAAC,QAAG,CAAE,EAClC,CAAE,KAAM,2BAAQ,QAAS,CAAC,QAAG,CAAE,EAC/B,CAAE,KAAM,uCAAU,QAAS,CAAC,QAAG,CAAE,EACjC,CAAE,KAAM,qBAAO,QAAS,CAAC,QAAG,CAAE,CAChC,CACF,EACA,CACE,KAAM,KACN,QAAS,CACP,CACE,KAAM,iCACN,QAAS,CAAC,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,QAAG,CACvD,EACA,CAAE,KAAM,6CAAW,QAAS,CAAC,QAAG,CAAE,EAClC,CAAE,KAAM,sGAAuB,QAAS,CAAC,SAAK,QAAG,CAAE,CACrD,CACF,CACF,CACF,EACA,CACE,SAAU,iCACV,MAAO,CACL,CACE,KAAM,KACN,QAAS,CACP,CACE,KAAM,iCACN,QAAS,CAAC,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,QAAG,CACvD,CACF,CACF,EACA,CACE,KAAM,KACN,QAAS,CACP,CAAE,KAAM,6CAAW,QAAS,CAAC,SAAK,QAAG,CAAE,EACvC,CAAE,KAAM,0DAAc,QAAS,CAAC,QAAG,CAAE,EACrC,CAAE,KAAM,2BAAQ,QAAS,CAAC,QAAG,CAAE,CACjC,CACF,CACF,CACF,EACA,CACE,SAAU,eACV,MAAO,CACL,CACE,KAAM,KACN,QAAS,CAAC,CAAE,KAAM,eAAM,QAAS,CAAC,mDAAW,CAAE,CAAC,CAClD,CACF,CACF,EACA,CACE,SAAU,6CACV,MAAO,CACL,CACE,KAAM,KACN,QAAS,CACP,CACE,KAAM,iCACN,QAAS,CAAC,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,QAAG,CACjE,CACF,CACF,EACA,CACE,KAAM,KACN,QAAS,CACP,CAAE,KAAM,qBAAO,QAAS,CAAC,SAAK,QAAG,CAAE,EACnC,CAAE,KAAM,iCAAS,QAAS,CAAC,QAAG,CAAE,EAChC,CAAE,KAAM,2BAAQ,QAAS,CAAC,SAAK,QAAG,CAAE,EACpC,CAAE,KAAM,2BAAQ,QAAS,CAAC,SAAK,QAAG,CAAE,EACpC,CAAE,KAAM,uCAAU,QAAS,CAAC,SAAK,QAAG,CAAE,EACtC,CAAE,KAAM,mDAAY,QAAS,CAAC,QAAG,CAAE,EACnC,CAAE,KAAM,mDAAY,QAAS,CAAC,QAAG,CAAE,EACnC,CAAE,KAAM,6CAAW,QAAS,CAAC,QAAG,CAAE,CACpC,CACF,CACF,CACF,EACA,CACE,SAAU,iCACV,MAAO,CACL,CACE,KAAM,KACN,QAAS,CACP,CACE,KAAM,iCACN,QAAS,CAAC,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,QAAG,CAC5D,CACF,CACF,EACA,CACE,KAAM,KACN,QAAS,CACP,CAAE,KAAM,6CAAW,QAAS,CAAC,SAAK,QAAG,CAAE,EACvC,CAAE,KAAM,eAAM,QAAS,CAAC,QAAG,CAAE,EAC7B,CAAE,KAAM,uCAAU,QAAS,CAAC,QAAG,CAAE,EACjC,CAAE,KAAM,2BAAQ,QAAS,CAAC,QAAG,CAAE,EAC/B,CAAE,KAAM,iCAAS,QAAS,CAAC,QAAG,CAAE,EAChC,CAAE,KAAM,2BAAQ,QAAS,CAAC,QAAG,CAAE,EAC/B,CAAE,KAAM,iCAAS,QAAS,CAAC,QAAG,CAAE,EAChC,CAAE,KAAM,8CAAY,QAAS,CAAC,QAAG,CAAE,EACnC,CAAE,KAAM,uCAAU,QAAS,CAAC,QAAG,CAAE,EACjC,CAAE,KAAM,uCAAU,QAAS,CAAC,QAAG,CAAE,EACjC,CAAE,KAAM,2BAAQ,QAAS,CAAC,QAAG,CAAE,EAC/B,CAAE,KAAM,mDAAY,QAAS,CAAC,QAAG,CAAE,CACrC,CACF,EACA,CACE,KAAM,KACN,QAAS,CACP,CAAE,KAAM,uCAAU,QAAS,CAAC,SAAK,SAAK,QAAG,CAAE,EAC3C,CAAE,KAAM,eAAM,QAAS,CAAC,QAAG,CAAE,EAC7B,CAAE,KAAM,iCAAS,QAAS,CAAC,QAAG,CAAE,EAChC,CAAE,KAAM,6CAAW,QAAS,CAAC,SAAK,QAAG,CAAE,EACvC,CAAE,KAAM,2BAAQ,QAAS,CAAC,QAAG,CAAE,EAC/B,CAAE,KAAM,iCAAS,QAAS,CAAC,QAAG,CAAE,CAClC,CACF,CACF,CACF,EACA,CACE,SAAU,mDACV,MAAO,CACL,CACE,KAAM,KACN,QAAS,CACP,CACE,KAAM,mDACN,QAAS,CACP,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,QACF,CACF,CACF,CACF,EACA,CACE,KAAM,KACN,QAAS,CACP,CAAE,KAAM,kFAAkB,QAAS,CAAC,SAAK,QAAG,CAAE,EAC9C,CAAE,KAAM,oDAAa,QAAS,CAAC,QAAG,CAAE,EACpC,CAAE,KAAM,yDAAa,QAAS,CAAC,QAAG,CAAE,EACpC,CAAE,KAAM,2BAAQ,QAAS,CAAC,QAAG,CAAE,EAC/B,CAAE,KAAM,uCAAU,QAAS,CAAC,QAAG,CAAE,EACjC,CAAE,KAAM,mDAAY,QAAS,CAAC,QAAG,CAAE,EACnC,CAAE,KAAM,8CAAY,QAAS,CAAC,QAAG,CAAE,EACnC,CAAE,KAAM,6CAAW,QAAS,CAAC,QAAG,CAAE,EAClC,CAAE,KAAM,2BAAQ,QAAS,CAAC,QAAG,CAAE,EAC/B,CAAE,KAAM,iCAAS,QAAS,CAAC,QAAG,CAAE,EAChC,CAAE,KAAM,4EAAiB,QAAS,CAAC,QAAG,CAAE,CAC1C,CACF,CACF,CACF,EACA,CACE,SAAU,2GACV,MAAO,CACL,CACE,KAAM,KACN,QAAS,CACP,CAAE,KAAM,iCAAS,QAAS,CAAC,SAAK,SAAK,QAAG,CAAE,EAC1C,CAAE,KAAM,6CAAW,QAAS,CAAC,SAAK,QAAG,CAAE,EACvC,CAAE,KAAM,mDAAY,QAAS,CAAC,QAAG,CAAE,EACnC,CAAE,KAAM,qBAAO,QAAS,CAAC,QAAG,CAAE,CAChC,CACF,CACF,CACF,EACA,CACE,SAAU,uCACV,MAAO,CACL,CACE,KAAM,KACN,QAAS,CACP,CAAE,KAAM,uCAAU,QAAS,CAAC,SAAK,SAAK,SAAK,SAAK,QAAG,CAAE,EACrD,CAAE,KAAM,0DAAc,QAAS,CAAC,SAAK,QAAG,CAAE,EAC1C,CAAE,KAAM,yDAAa,QAAS,CAAC,QAAG,CAAE,EACpC,CAAE,KAAM,uCAAU,QAAS,CAAC,QAAG,CAAE,EACjC,CAAE,KAAM,mDAAY,QAAS,CAAC,QAAG,CAAE,EACnC,CAAE,KAAM,6CAAW,QAAS,CAAC,QAAG,CAAE,EAClC,CAAE,KAAM,6CAAW,QAAS,CAAC,QAAG,CAAE,EAClC,CAAE,KAAM,uCAAU,QAAS,CAAC,QAAG,CAAE,EACjC,CAAE,KAAM,uCAAU,QAAS,CAAC,QAAG,CAAE,EACjC,CAAE,KAAM,uCAAU,QAAS,CAAC,QAAG,CAAE,EACjC,CAAE,KAAM,iCAAS,QAAS,CAAC,QAAG,CAAE,CAClC,CACF,CACF,CACF,EACA,CACE,SAAU,iCACV,MAAO,CACL,CACE,KAAM,KACN,QAAS,CACP,CACE,KAAM,qBACN,QAAS,CAAC,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,QAAG,CACjE,CACF,CACF,EACA,CACE,KAAM,KACN,QAAS,CACP,CAAE,KAAM,iCAAS,QAAS,CAAC,QAAG,CAAE,EAChC,CAAE,KAAM,6CAAW,QAAS,CAAC,QAAG,CAAE,EAClC,CAAE,KAAM,uCAAU,QAAS,CAAC,QAAG,CAAE,EACjC,CAAE,KAAM,2BAAQ,QAAS,CAAC,QAAG,CAAE,EAC/B,CAAE,KAAM,iCAAS,QAAS,CAAC,QAAG,CAAE,EAChC,CAAE,KAAM,uCAAU,QAAS,CAAC,QAAG,CAAE,EACjC,CAAE,KAAM,yDAAa,QAAS,CAAC,QAAG,CAAE,EACpC,CAAE,KAAM,2BAAQ,QAAS,CAAC,QAAG,CAAE,EAC/B,CAAE,KAAM,uCAAU,QAAS,CAAC,QAAG,CAAE,EACjC,CAAE,KAAM,yDAAa,QAAS,CAAC,QAAG,CAAE,EACpC,CAAE,KAAM,iCAAS,QAAS,CAAC,QAAG,CAAE,EAChC,CAAE,KAAM,2BAAQ,QAAS,CAAC,QAAG,CAAE,EAC/B,CAAE,KAAM,qBAAO,QAAS,CAAC,QAAG,CAAE,CAChC,CACF,EACA,CACE,KAAM,KACN,QAAS,CACP,CAAE,KAAM,uCAAU,QAAS,CAAC,QAAG,CAAE,EACjC,CAAE,KAAM,uCAAU,QAAS,CAAC,QAAG,CAAE,EACjC,CAAE,KAAM,6CAAW,QAAS,CAAC,QAAG,CAAE,EAClC,CAAE,KAAM,iCAAS,QAAS,CAAC,QAAG,CAAE,EAChC,CAAE,KAAM,uCAAU,QAAS,CAAC,QAAG,CAAE,EACjC,CAAE,KAAM,2BAAQ,QAAS,CAAC,QAAG,CAAE,EAC/B,CAAE,KAAM,iCAAS,QAAS,CAAC,QAAG,CAAE,CAClC,CACF,CACF,CACF,EACA,CACE,SAAU,uCACV,MAAO,CACL,CACE,KAAM,KACN,QAAS,CAAC,CAAE,KAAM,mDAAY,QAAS,CAAC,SAAK,SAAK,SAAK,SAAK,QAAG,CAAE,CAAC,CACpE,EACA,CACE,KAAM,KACN,QAAS,CACP,CAAE,KAAM,uCAAU,QAAS,CAAC,SAAK,SAAK,QAAG,CAAE,EAC3C,CAAE,KAAM,mDAAY,QAAS,CAAC,QAAG,CAAE,EACnC,CAAE,KAAM,iCAAS,QAAS,CAAC,SAAK,QAAG,CAAE,EACrC,CAAE,KAAM,uCAAU,QAAS,CAAC,SAAK,QAAG,CAAE,EACtC,CAAE,KAAM,iCAAS,QAAS,CAAC,QAAG,CAAE,EAChC,CAAE,KAAM,2BAAQ,QAAS,CAAC,QAAG,CAAE,EAC/B,CAAE,KAAM,wCAAW,QAAS,CAAC,QAAG,CAAE,EAClC,CAAE,KAAM,iCAAS,QAAS,CAAC,QAAG,CAAE,CAClC,CACF,CACF,CACF,EACA,CACE,SAAU,mDACV,MAAO,CACL,CACE,KAAM,KACN,QAAS,CAAC,CAAE,KAAM,2BAAQ,QAAS,CAAC,SAAK,SAAK,SAAK,SAAK,SAAK,QAAG,CAAE,CAAC,CACrE,EACA,CACE,KAAM,KACN,QAAS,CACP,CAAE,KAAM,qBAAO,QAAS,CAAC,QAAG,CAAE,EAC9B,CAAE,KAAM,2BAAQ,QAAS,CAAC,QAAG,CAAE,EAC/B,CAAE,KAAM,uCAAU,QAAS,CAAC,QAAG,CAAE,EACjC,CAAE,KAAM,iCAAS,QAAS,CAAC,QAAG,CAAE,EAChC,CAAE,KAAM,iCAAS,QAAS,CAAC,QAAG,CAAE,EAChC,CAAE,KAAM,qBAAO,QAAS,CAAC,SAAK,QAAG,CAAE,EACnC,CAAE,KAAM,iCAAS,QAAS,CAAC,QAAG,CAAE,EAChC,CAAE,KAAM,6CAAW,QAAS,CAAC,QAAG,CAAE,EAClC,CAAE,KAAM,uCAAU,QAAS,CAAC,QAAG,CAAE,EACjC,CAAE,KAAM,iCAAS,QAAS,CAAC,QAAG,CAAE,EAChC,CAAE,KAAM,qBAAO,QAAS,CAAC,QAAG,CAAE,EAC9B,CAAE,KAAM,yDAAa,QAAS,CAAC,QAAG,CAAE,EACpC,CAAE,KAAM,uCAAU,QAAS,CAAC,QAAG,CAAE,CACnC,CACF,EACA,CACE,KAAM,KACN,QAAS,CACP,CAAE,KAAM,6CAAW,QAAS,CAAC,QAAG,CAAE,EAClC,CAAE,KAAM,2BAAQ,QAAS,CAAC,SAAK,SAAK,QAAG,CAAE,EACzC,CAAE,KAAM,qBAAO,QAAS,CAAC,SAAK,QAAG,CAAE,EACnC,CAAE,KAAM,6CAAW,QAAS,CAAC,SAAK,QAAG,CAAE,EACvC,CAAE,KAAM,uCAAU,QAAS,CAAC,QAAG,CAAE,EACjC,CAAE,KAAM,uCAAU,QAAS,CAAC,QAAG,CAAE,EACjC,CAAE,KAAM,iCAAS,QAAS,CAAC,QAAG,CAAE,EAChC,CAAE,KAAM,iCAAS,QAAS,CAAC,QAAG,CAAE,EAChC,CAAE,KAAM,iCAAS,QAAS,CAAC,QAAG,CAAE,CAClC,CACF,EACA,CACE,KAAM,KACN,QAAS,CACP,CAAE,KAAM,qBAAO,QAAS,CAAC,QAAG,CAAE,EAC9B,CAAE,KAAM,2BAAQ,QAAS,CAAC,SAAK,QAAG,CAAE,EACpC,CAAE,KAAM,uCAAU,QAAS,CAAC,QAAG,CAAE,EACjC,CAAE,KAAM,6CAAW,QAAS,CAAC,QAAG,CAAE,CACpC,CACF,CACF,CACF,EACA,CACE,SAAU,iCACV,MAAO,CACL,CACE,KAAM,KACN,QAAS,CACP,CAAE,KAAM,2BAAQ,QAAS,CAAC,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,QAAG,CAAE,CAC/D,CACF,EACA,CACE,KAAM,KACN,QAAS,CACP,CAAE,KAAM,2BAAQ,QAAS,CAAC,SAAK,SAAK,QAAG,CAAE,EACzC,CAAE,KAAM,2BAAQ,QAAS,CAAC,QAAG,CAAE,EAC/B,CAAE,KAAM,iCAAS,QAAS,CAAC,QAAG,CAAE,EAChC,CAAE,KAAM,2BAAQ,QAAS,CAAC,QAAG,CAAE,EAC/B,CAAE,KAAM,uCAAU,QAAS,CAAC,QAAG,CAAE,EACjC,CAAE,KAAM,uCAAU,QAAS,CAAC,QAAG,CAAE,EACjC,CAAE,KAAM,iCAAS,QAAS,CAAC,QAAG,CAAE,EAChC,CAAE,KAAM,uCAAU,QAAS,CAAC,QAAG,CAAE,EACjC,CAAE,KAAM,uCAAU,QAAS,CAAC,QAAG,CAAE,CACnC,CACF,CACF,CACF,EACA,CACE,SAAU,6CACV,MAAO,CACL,CACE,KAAM,KACN,QAAS,CACP,CACE,KAAM,mDACN,QAAS,CAAC,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,QAAG,CAClD,CACF,CACF,EACA,CACE,KAAM,KACN,QAAS,CACP,CAAE,KAAM,iCAAS,QAAS,CAAC,SAAK,QAAG,CAAE,EACrC,CAAE,KAAM,oDAAa,QAAS,CAAC,SAAK,QAAG,CAAE,EACzC,CAAE,KAAM,iCAAS,QAAS,CAAC,QAAG,CAAE,EAChC,CAAE,KAAM,6CAAW,QAAS,CAAC,QAAG,CAAE,EAClC,CAAE,KAAM,2BAAQ,QAAS,CAAC,QAAG,CAAE,EAC/B,CAAE,KAAM,2BAAQ,QAAS,CAAC,QAAG,CAAE,EAC/B,CAAE,KAAM,yDAAa,QAAS,CAAC,QAAG,CAAE,EACpC,CAAE,KAAM,qBAAO,QAAS,CAAC,QAAG,CAAE,CAChC,CACF,CACF,CACF,EACA,CACE,SAAU,iCACV,MAAO,CACL,CACE,KAAM,KACN,QAAS,CACP,CAAE,KAAM,iCAAS,QAAS,CAAC,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,QAAG,CAAE,CACrE,CACF,EACA,CACE,KAAM,KACN,QAAS,CACP,CAAE,KAAM,uCAAU,QAAS,CAAC,SAAK,QAAG,CAAE,EACtC,CAAE,KAAM,iCAAS,QAAS,CAAC,SAAK,SAAK,QAAG,CAAE,EAC1C,CAAE,KAAM,mDAAY,QAAS,CAAC,QAAG,CAAE,EACnC,CAAE,KAAM,yDAAa,QAAS,CAAC,QAAG,CAAE,EACpC,CAAE,KAAM,qBAAO,QAAS,CAAC,QAAG,CAAE,EAC9B,CAAE,KAAM,2BAAQ,QAAS,CAAC,QAAG,CAAE,EAC/B,CAAE,KAAM,6CAAW,QAAS,CAAC,QAAG,CAAE,CACpC,CACF,CACF,CACF,EACA,CACE,SAAU,qBACV,MAAO,CACL,CACE,KAAM,KACN,QAAS,CACP,CACE,KAAM,qBACN,QAAS,CAAC,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,QAAG,CAC5D,CACF,CACF,EACA,CACE,KAAM,KACN,QAAS,CACP,CAAE,KAAM,uCAAU,QAAS,CAAC,QAAG,CAAE,EACjC,CAAE,KAAM,qBAAO,QAAS,CAAC,QAAG,CAAE,EAC9B,CAAE,KAAM,2BAAQ,QAAS,CAAC,QAAG,CAAE,EAC/B,CAAE,KAAM,2BAAQ,QAAS,CAAC,QAAG,CAAE,EAC/B,CAAE,KAAM,iCAAS,QAAS,CAAC,QAAG,CAAE,EAChC,CAAE,KAAM,uCAAU,QAAS,CAAC,QAAG,CAAE,EACjC,CAAE,KAAM,2BAAQ,QAAS,CAAC,QAAG,CAAE,EAC/B,CAAE,KAAM,4DAAgB,QAAS,CAAC,QAAG,CAAE,CACzC,CACF,CACF,CACF,CACF,EC3nCA,IAAMC,EAAgBC,EAWf,SAASC,EAAmBC,EAAuB,CACxD,GAAI,CAACA,EAAO,MAAO,GACnB,IAAMC,EAAe,KACfC,EAAe,KACfC,EAAc,KACdC,EAAc,KACdC,EAAa,KACbC,EAAa,KACbC,EAAa,KACbC,EAAa,KACfC,EAAS,GACb,QAASC,EAAI,EAAGA,EAAIV,EAAM,OAAQU,IAAK,CACrC,IAAMC,EAAOX,EAAM,WAAWU,CAAC,EAC3BE,EAAOZ,EAAMU,CAAC,EACdC,GAAQV,GAAgBU,GAAQT,EAClCU,EAAO,OAAOD,EAAOV,CAAY,EACxBU,GAAQR,GAAeQ,GAAQP,EACxCQ,EAAO,OAAOD,EAAOR,CAAW,EACvBQ,IAASN,EAClBO,EAAO,OAAO,aAAaN,CAAU,EAC5BK,IAASJ,IAClBK,EAAO,OAAO,aAAaJ,CAAU,GAEvCC,GAAUG,CACZ,CACA,OAAOH,CACT,CAUO,SAASI,EAAYC,EAA8B,CACxD,IAAMC,EAAahB,EAAmBe,CAAU,EAAE,QAAQ,UAAW,EAAE,EACvE,GAAIC,EAAW,OAAS,EAAG,OAAO,KAClC,IAAMC,EAAMD,EAAW,UAAU,EAAG,CAAC,EAE/BE,EAAOC,EAAMF,CAAG,EACtB,OAAKC,EACE,CACL,GAAGA,EACH,UAAWF,EAAW,QAAQ,iBAAkB,KAAK,CACvD,EAJkB,IAKpB,CAQO,SAASI,EAAkBC,EAA8B,CAC9D,IAAML,EAAahB,EAAmBqB,CAAM,EACxCC,EAAS,GAQb,GAPIN,EAAW,WAAW,IAAI,EAC5BM,EAASN,EAAW,UAAU,EAAG,CAAC,EACzBA,EAAW,WAAW,GAAG,EAClCM,EAAS,IAAMN,EAAW,UAAU,EAAG,CAAC,EAC/BA,EAAW,WAAW,KAAK,IACpCM,EAAS,IAAMN,EAAW,UAAU,EAAG,CAAC,GAEtCM,EAAO,SAAW,EAAG,OAAO,KAChC,OAAW,CAACC,EAAKC,CAAE,IAAK,OAAO,QAAQC,CAAgB,EAErD,GAAID,EAAG,SAAS,SAASF,CAAM,EAC7B,MAAO,CACL,KAAMC,EACN,MAAOC,EAAG,MACV,KAAMA,EAAG,IACX,EAGJ,OAAO,IACT,CAEA,SAASE,EAAwBd,EAAsB,CACrD,IAAIe,EAAM,EACNC,EAAS,EACb,QAASjB,EAAIC,EAAK,OAAS,EAAGD,GAAK,EAAGA,IACpCgB,GAAO,SAASf,EAAKD,CAAC,CAAC,EAAIiB,EAC3BA,IACIA,EAAS,IAAGA,EAAS,GAE3B,IAAMC,EAAYF,EAAM,GACxB,OAAIE,IAAc,GAAKA,IAAc,EAAU,EACxC,GAAKA,CACd,CAEO,SAASC,EAAcC,EAAyB,CACrD,IAAMf,EAAahB,EAAmB+B,CAAM,EAC5C,GAAI,CAAC,aAAa,KAAKf,CAAU,EAAG,MAAO,GAC3C,IAAMgB,EAAa,SAAShB,EAAW,MAAM,EAAE,CAAC,EAC1CiB,EAAOjB,EAAW,MAAM,EAAG,EAAE,EACnC,OAAOU,EAAwBO,CAAI,IAAMD,CAC3C,CAEO,SAASE,EAAiBC,EAAmBJ,EAAyB,CAC3E,IAAMK,EAAOpC,EAAmBmC,CAAS,EACnCE,EAAQrC,EAAmB+B,CAAM,EAEvC,GAAI,CAAC,aAAa,KAAKK,CAAI,GAAK,CAAC,aAAa,KAAKC,CAAK,EAAG,MAAO,GAElE,IAAMC,EAAiB,SAASF,EAAK,MAAM,GAAI,EAAE,CAAC,EAC5CG,EAAWH,EAAK,MAAM,EAAG,EAAE,EACjC,GAAIV,EAAwBa,CAAQ,IAAMD,EAAgB,MAAO,GAEjE,IAAME,EAAiB,SAASJ,EAAK,MAAM,EAAE,CAAC,EACxCK,EAAeJ,EAAQD,EAAK,MAAM,EAAG,EAAE,EAC7C,OAAOV,EAAwBe,CAAY,IAAMD,CACnD,CASO,SAASE,EAAYX,EAAgBI,EAA8B,CACxE,IAAME,EAAQrC,EAAmB+B,CAAM,EAGvC,GAAIM,EAAM,OAAS,GAAKA,EAAM,OAAS,GAAI,OAAO,KAElD,IAAMM,EAAY,SAASN,EAAM,MAAM,GAAI,EAAE,CAAC,EAExCO,EAAWC,EAAWF,CAAS,GAAK,CACxC,MAAO,uCACP,KAAM,UACN,MAAO,OACP,KAAM,EACR,EAEIG,EAAS,EACTC,EAAkB,IAClBC,EAAUlB,EAAcO,CAAK,EAEjC,GAAIF,EAAW,CACb,IAAMC,EAAOpC,EAAmBmC,CAAS,EAEzC,GAAI,CAACD,EAAiBE,EAAMC,CAAK,EAC/BW,EAAU,OACL,CAEL,IAAMC,EAAab,EAAK,MAAM,EAAG,EAAE,EAC/Ba,EAAW,OAAS,IACtBH,EAAS,SAASG,CAAU,EAAI,IAChCF,EAAkB,IAAI,KAAK,aAAa,OAAO,EAAE,OAAOD,CAAM,EAElE,CACF,CAEA,MAAO,CAAE,KAAMF,EAAU,OAAAE,EAAQ,gBAAAC,EAAiB,QAAAC,CAAQ,CAC5D,CAQO,SAASE,EAAaC,EAA0B,CACrD,IAAMC,EAASpD,EAAmBmD,CAAK,EAAE,QAAQ,SAAU,EAAE,EACvDE,EAAQ,yDACRC,EAAQF,EAAO,MAAMC,CAAK,EAEhC,GAAI,CAACC,EAAO,OAAO,KAEnB,IAAMC,EAASD,EAAM,CAAC,EAChBE,EAAWF,EAAM,CAAC,EAExB,QAAWG,KAAgB3D,EAAe,CACxC,IAAM4D,EAAYD,EAAa,MAAM,KAAME,GAAM,CAC/C,IAAMC,EAAUD,EAAE,KAClB,OAAIC,EAAQ,SAAS,GAAG,EACfA,EACJ,MAAM,GAAG,EACT,IAAKC,GAAMA,EAAE,KAAK,CAAC,EACnB,SAASL,CAAQ,EAEfI,IAAYJ,CACrB,CAAC,EAED,GAAIE,EAAW,CACb,IAAMI,EAAaJ,EAAU,QAAQ,KAAMK,GAClCA,EAAE,QAAQ,SAASR,CAAM,GAAKQ,EAAE,QAAQ,SAAS,mDAAW,CACpE,EAED,GAAID,EACF,MAAO,CACL,SAAUL,EAAa,SACvB,KAAMK,EAAW,KACjB,QAAS,EACX,CAEJ,CACF,CACA,OAAO,IACT,CAEO,SAASE,EAAcb,EAAwB,CACpD,OAAOD,EAAaC,CAAK,IAAM,IACjC,CAEO,SAASc,EAAYrD,EAAuB,CACjD,IAAMI,EAAahB,EAAmBY,CAAI,EAE1C,GADI,CAAC,WAAW,KAAKI,CAAU,GAC3B,YAAY,KAAKA,CAAU,EAAG,MAAO,GACzC,IAAMkD,EAAQ,SAASlD,EAAW,CAAC,CAAC,EAC9BW,EACJX,EACG,UAAU,EAAG,CAAC,EACd,MAAM,EAAE,EACR,OAAO,CAACmD,EAAKN,EAAGlD,IAAMwD,EAAM,SAASN,CAAC,GAAK,GAAKlD,GAAI,CAAC,EAAI,GAC9D,OAAOgB,EAAM,EAAIuC,IAAUvC,EAAMuC,IAAU,GAAKvC,CAClD,CAEO,SAASyC,EAAexD,EAAuB,CACpD,IAAMI,EAAahB,EAAmBY,CAAI,EAC1C,GAAII,EAAW,SAAW,IAAM,CAAC,WAAW,KAAKA,CAAU,EAAG,MAAO,GACrE,IAAMqD,EAAQ,SAASrD,EAAW,CAAC,CAAC,EAC9BsD,EAAa,SAAStD,EAAW,EAAE,CAAC,EACpCuD,EAAe,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAE,EACxD5C,EAAM,EACV,QAAShB,EAAI,EAAGA,EAAI,GAAIA,IAAK,CAC3B,IAAM6D,EAAQ,SAASxD,EAAWL,CAAC,CAAC,EACpCgB,IAAQ6C,EAAQH,EAAQ,GAAKE,EAAa5D,CAAC,CAC7C,CACA,IAAMkB,EAAYF,EAAM,GAExB,OADwBE,IAAc,GAAK,EAAIA,KACpByC,CAC7B,CAEO,SAASG,EAAW7D,EAAuB,CAChD,IAAMI,EAAahB,EAAmBY,CAAI,EAC1C,MAAO,uBAAuB,KAAKI,CAAU,CAC/C,CAEO,SAAS0D,EAAa9D,EAAuB,CAClD,IAAMI,EAAahB,EAAmBY,CAAI,EAAE,QAAQ,UAAW,EAAE,EACjE,GAAI,CAAC,WAAW,KAAKI,CAAU,EAAG,MAAO,GACzC,IAAIW,EAAM,EACNgD,EAAe,GACnB,QAAShE,EAAIK,EAAW,OAAS,EAAGL,GAAK,EAAGA,IAAK,CAC/C,IAAI6D,EAAQ,SAASxD,EAAWL,CAAC,CAAC,EAC9BgE,IACFH,GAAS,EACLA,EAAQ,IAAGA,GAAS,IAE1B7C,GAAO6C,EACPG,EAAe,CAACA,CAClB,CACA,OAAOhD,EAAM,KAAO,CACtB,CAKO,SAASiD,EACdvD,EACA,CAAE,WAAAwD,EAAa,UAAW,EAA6B,CAAC,EAC/C,CACT,IAAM7D,EAAahB,EAAmBqB,CAAM,EACtCyD,EAAc,UAChBC,EAAU,GACd,OAAIF,IAAe,GAAME,EAAU,KAAKD,CAAW,IAC1CD,IAAe,GAAOE,EAAU,IAAID,CAAW,IACnDC,EAAU,gBAAgBD,CAAW,IACnC,IAAI,OAAOC,CAAO,EAAE,KAAK/D,CAAU,CAC5C,CAEO,SAASgE,EAAQpE,EAAuB,CAE7C,IAAMqE,EADajF,EAAmBY,CAAI,EAClB,YAAY,EAAE,QAAQ,UAAW,EAAE,EAC3D,GAAIqE,EAAK,SAAW,IAAM,CAACA,EAAK,WAAW,IAAI,EAAG,MAAO,GAEzD,IAAMC,GADSD,EAAK,UAAU,CAAC,EAAIA,EAAK,UAAU,EAAG,CAAC,GAEnD,MAAM,EAAE,EACR,IAAK,GAAM,CACV,IAAMrE,EAAO,EAAE,WAAW,CAAC,EAC3B,OAAOA,GAAQ,IAAMA,GAAQ,GAAK,GAAKA,EAAO,IAAI,SAAS,CAC7D,CAAC,EACA,KAAK,EAAE,EACV,GAAI,CACF,OAAO,OAAOsE,CAAa,EAAI,OAAO,EAAE,IAAM,OAAO,CAAC,CACxD,MAAQ,CACN,MAAO,EACT,CACF,CAEO,SAASC,EAAavE,EAAuB,CAClD,IAAMI,EAAahB,EAAmBY,CAAI,EAC1C,MAAO,eAAe,KAAKI,CAAU,CACvC,CAEO,SAASoE,EAAWxE,EAAuB,CAChD,IAAMI,EAAahB,EAAmBY,CAAI,EAC1C,MAAO,gBAAgB,KAAKI,CAAU,CACxC,CC5TO,IAAMqE,EAAiB,CAC5B,GAAI,CACF,UAAW,gGACX,aAAc,kHACd,SAAU,0IACV,WAAY,wHACZ,OAAQ,oIACR,MAAO,kHACP,WAAY,sGACZ,SAAU,iJACV,OAAQ,kHACR,UAAW,oIACX,YAAa,uHACf,EACA,GAAI,CACF,UAAW,wBACX,aAAc,0CACd,SAAU,0BACV,WAAY,sBACZ,OAAQ,wBACR,MAAO,8BACP,WAAY,sBACZ,SAAU,0BACV,OAAQ,kBACR,UAAW,qBACX,YAAa,uBACf,CACF,EASaC,EAAa,CACxBC,EACAC,IACW,CACX,GAAIA,GAAS,QAAS,OAAOA,EAAQ,QACrC,IAAMC,EAAOD,GAAS,QAAU,KAChC,OAAOH,EAAeI,CAAI,EAAEF,CAAG,CACjC,EJlBO,IAAMG,EAAcC,GACzBC,EAAE,OAAO,EAAE,OAAQC,GAAQC,EAAYD,CAAG,EAAG,CAC3C,QAASE,EAAW,YAAaJ,CAAO,CAC1C,CAAC,EAEUK,EAAiBL,GAC5BC,EAAE,OAAO,EAAE,OAAQC,GAAQI,EAAeJ,CAAG,EAAG,CAC9C,QAASE,EAAW,eAAgBJ,CAAO,CAC7C,CAAC,EAEUO,EAAaP,GACxBC,EAAE,OAAO,EAAE,OAAQC,GAAQM,EAAWN,CAAG,EAAG,CAC1C,QAASE,EAAW,WAAYJ,CAAO,CACzC,CAAC,EAEUS,GAAeT,GAC1BC,EAAE,OAAO,EAAE,OAAQC,GAAQQ,EAAaR,CAAG,EAAG,CAC5C,QAASE,EAAW,aAAcJ,CAAO,CAC3C,CAAC,EAMUW,GAAkBX,GAC7BC,EACG,OAAO,EACP,OACEC,GAAQU,EAAgBV,EAAK,CAAE,WAAYF,GAAS,UAAW,CAAC,EACjE,CACE,QAASI,EAAW,SAAUJ,CAAO,CACvC,CACF,EAESa,GAAUb,GACrBC,EAAE,OAAO,EAAE,OAAQC,GAAQY,EAAQZ,CAAG,EAAG,CACvC,QAASE,EAAW,QAASJ,CAAO,CACtC,CAAC,EAEUe,GAAef,GAC1BC,EAAE,OAAO,EAAE,OAAQC,GAAQc,EAAad,CAAG,EAAG,CAC5C,QAASE,EAAW,aAAcJ,CAAO,CAC3C,CAAC,EAEUiB,GAAajB,GACxBC,EAAE,OAAO,EAAE,OAAQC,GAAQgB,EAAWhB,CAAG,EAAG,CAC1C,QAASE,EAAW,WAAYJ,CAAO,CACzC,CAAC,EAEUmB,GAAWnB,GACtBC,EAAE,OAAO,EAAE,OAAQC,GAAQkB,EAAclB,CAAG,EAAG,CAC7C,QAASE,EAAW,SAAUJ,CAAO,CACvC,CAAC,EAEUqB,GAAcrB,GACzBC,EAAE,OAAO,EAAE,OAAQC,GAAQA,EAAI,QAAU,GAAKA,EAAI,QAAU,GAAI,CAC9D,QAASE,EAAW,YAAaJ,CAAO,CAC1C,CAAC,EAEUsB,GAAgBtB,GAC3BC,EAAE,OAAO,EAAE,OAAQC,GAAQqB,EAAcrB,CAAG,EAAG,CAC7C,QAASE,EAAW,cAAeJ,CAAO,CAC5C,CAAC,EAEUwB,GAAoBC,GAC/BxB,EAAE,WAAYC,GACR,OAAOA,GAAQ,SACVwB,EAAmBxB,CAAG,EAExBA,EACNuB,CAAM","names":["z","CDN_BANKS","CDN_OPERATORS","CDN_BILLS","BANKS","MOBILE_OPERATORS","BILL_TYPES","PLATE_CITY_CODES","ALL_PROVINCES","PLATE_CITY_CODES","verifyAndNormalize","value","PERSIAN_ZERO","PERSIAN_NINE","ARABIC_ZERO","ARABIC_NINE","ARABIC_YEH","PERSIAN_YE","ARABIC_KAF","PERSIAN_KE","result","i","code","char","getBankInfo","cardNumber","normalized","bin","bank","BANKS","getMobileOperator","mobile","prefix","key","op","MOBILE_OPERATORS","calculateBillCheckDigit","sum","weight","remainder","isBillIdValid","billId","checkDigit","core","isPaymentIdValid","paymentId","nPay","nBill","payCheckDigit1","payCore1","payCheckDigit2","combinedCore","getBillInfo","typeDigit","typeInfo","BILL_TYPES","amount","formattedAmount","isValid","amountCore","getPlateInfo","plate","nPlate","regex","match","letter","cityCode","provinceData","codeEntry","c","codeStr","x","cityDetail","d","isPlateNumber","isMelliCode","check","acc","isShenaseMelli","tenth","inputCheck","coefficients","digit","isPassport","isCardNumber","shouldDouble","isIranianMobile","strictZero","corePattern","pattern","isSheba","iban","numericString","isPostalCode","isLandline","ERROR_MESSAGES","getMessage","key","options","lang","zMelliCode","options","z","val","isMelliCode","getMessage","zShenaseMelli","isShenaseMelli","zPassport","isPassport","zCardNumber","isCardNumber","zIranianMobile","isIranianMobile","zSheba","isSheba","zPostalCode","isPostalCode","zLandline","isLandline","zBillId","isBillIdValid","zPaymentId","zPlateNumber","isPlateNumber","preprocessNumber","schema","verifyAndNormalize"]}
1
+ {"version":3,"sources":["../src/utils/helpers.ts","../src/locales.ts","../src/modules/identity.ts","../src/data/constants.ts","../src/modules/financial.ts","../src/modules/contact.ts","../src/data/plates.ts","../src/modules/vehicle.ts","../src/modules/bill.ts","../src/modules/date.ts","../src/modules/crypto.ts","../src/index.ts"],"names":["verifyAndNormalize","value","PERSIAN_ZERO","PERSIAN_NINE","ARABIC_ZERO","ARABIC_NINE","ARABIC_YEH","PERSIAN_YE","ARABIC_KAF","PERSIAN_KE","result","i","code","char","ERROR_MESSAGES","getMessage","key","options","lang","isMelliCode","normalized","check","sum","acc","x","isShenaseMelli","tenth","inputCheck","coefficients","digit","remainder","isPassport","CDN_BANKS","CDN_OPERATORS","CDN_BILLS","BANKS","MOBILE_OPERATORS","BILL_TYPES","SHEBA_CODES","getBankInfo","cardNumber","bin","bank","isCardNumber","shouldDouble","isSheba","iban","numericString","c","getBankFromSheba","sheba","normalizedSheba","bankCode","cardBin","bankData","getFinancialInfo","isValid","isFinancialValue","info","getMobileOperator","mobile","prefix","op","isIranianMobile","strictZero","corePattern","pattern","isPostalCode","isLandline","PLATE_CITY_CODES","ALL_PROVINCES","getPlateInfo","plate","nPlate","regex","match","letter","cityCode","provinceData","codeEntry","codeStr","cityDetail","d","isPlateNumber","calculateBillCheckDigit","weight","isBillIdValid","billId","nBill","checkDigit","core","isPaymentIdValid","paymentId","nPay","payCheckDigit1","payCore1","payCheckDigit2","combinedCore","getBillInfo","typeDigit","typeInfo","amount","formattedAmount","amountCore","isJalaliLeapYear","year","rem","getDaysInJalaliMonth","month","getJalaliDateInfo","date","day","isLeap","maxDays","isJalaliDate","ALPHABET","ALPHABET_MAP","fromBase58","string","bytes","j","carry","getCryptoInfo","address","decoded","isLowercase","isUppercase","isCryptoAddress","ticker","zMelliCode","z","val","zShenaseMelli","zPassport","zCardNumber","zIranianMobile","zSheba","zPostalCode","zLandline","zBillId","zPaymentId","zPlateNumber","zJalaliDate","zFinancial","zCrypto","preprocessNumber","schema"],"mappings":"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","file":"index.mjs","sourcesContent":["export function verifyAndNormalize(value: string): string {\n if (!value) return \"\";\n const PERSIAN_ZERO = 1776;\n const PERSIAN_NINE = 1785;\n const ARABIC_ZERO = 1632;\n const ARABIC_NINE = 1641;\n const ARABIC_YEH = 1610;\n const PERSIAN_YE = 1740;\n const ARABIC_KAF = 1603;\n const PERSIAN_KE = 1705;\n\n let result = \"\";\n for (let i = 0; i < value.length; i++) {\n const code = value.charCodeAt(i);\n let char = value[i];\n\n if (code >= PERSIAN_ZERO && code <= PERSIAN_NINE) {\n char = String(code - PERSIAN_ZERO);\n } else if (code >= ARABIC_ZERO && code <= ARABIC_NINE) {\n char = String(code - ARABIC_ZERO);\n } else if (code === ARABIC_YEH) {\n char = String.fromCharCode(PERSIAN_YE);\n } else if (code === ARABIC_KAF) {\n char = String.fromCharCode(PERSIAN_KE);\n }\n result += char;\n }\n return result;\n}\n","export const ERROR_MESSAGES = {\n fa: {\n melliCode: \"کد ملی نامعتبر است\",\n shenaseMelli: \"شناسه ملی نامعتبر است\",\n passport: \"شماره گذرنامه نامعتبر است\",\n cardNumber: \"شماره کارت نامعتبر است\",\n mobile: \"شماره موبایل نامعتبر است\",\n sheba: \"شماره شبا نامعتبر است\",\n postalCode: \"کد پستی نامعتبر است\",\n landline: \"شماره تلفن ثابت نامعتبر است\",\n billId: \"شناسه قبض نامعتبر است\",\n paymentId: \"شناسه پرداخت نامعتبر است\",\n plateNumber: \"پلاک خودرو نامعتبر است\",\n date: \"تاریخ وارد شده نامعتبر است\",\n financial: \"شماره کارت یا شبا معتبر نیست\",\n crypto: \"آدرس کیف پول معتبر نیست\"\n },\n en: {\n melliCode: \"Invalid national code\",\n shenaseMelli: \"Invalid legal person ID (Shenase Melli)\",\n passport: \"Invalid passport number\",\n cardNumber: \"Invalid card number\",\n mobile: \"Invalid mobile number\",\n sheba: \"Invalid Sheba (IBAN) number\",\n postalCode: \"Invalid postal code\",\n landline: \"Invalid landline number\",\n billId: \"Invalid Bill ID\",\n paymentId: \"Invalid Payment ID\",\n plateNumber: \"Invalid License Plate\",\n date: \"Invalid Date\",\n financial: \"Invalid Sheba (IBAN) number or card number\",\n crypto: \"Invalid Wallet address\"\n },\n} as const;\n\nexport type Language = keyof typeof ERROR_MESSAGES;\n\nexport interface BaseOptions {\n message?: string;\n locale?: Language;\n}\n\nexport const getMessage = (\n key: keyof (typeof ERROR_MESSAGES)[\"fa\"],\n options?: BaseOptions\n): string => {\n if (options?.message) return options.message;\n const lang = options?.locale || \"fa\";\n return ERROR_MESSAGES[lang][key];\n};\n","import { verifyAndNormalize } from \"../utils/helpers\";\n\nexport function isMelliCode(code: string): boolean {\n const normalized = verifyAndNormalize(code);\n if (!/^\\d{10}$/.test(normalized)) return false;\n if (/^(\\d)\\1+$/.test(normalized)) return false;\n const check = parseInt(normalized[9]);\n const sum =\n normalized\n .substring(0, 9)\n .split(\"\")\n .reduce((acc, x, i) => acc + parseInt(x) * (10 - i), 0) % 11;\n return sum < 2 ? check === sum : check === 11 - sum;\n}\n\nexport function isShenaseMelli(code: string): boolean {\n const normalized = verifyAndNormalize(code);\n if (normalized.length !== 11 || !/^\\d{11}$/.test(normalized)) return false;\n const tenth = parseInt(normalized[9]);\n const inputCheck = parseInt(normalized[10]);\n const coefficients = [29, 27, 23, 19, 17, 29, 27, 23, 19, 17];\n let sum = 0;\n for (let i = 0; i < 10; i++) {\n const digit = parseInt(normalized[i]);\n sum += (digit + tenth + 2) * coefficients[i];\n }\n const remainder = sum % 11;\n const calculatedCheck = remainder === 10 ? 0 : remainder;\n return calculatedCheck === inputCheck;\n}\n\nexport function isPassport(code: string): boolean {\n const normalized = verifyAndNormalize(code);\n return /^[A-Za-z][0-9]{8,9}$/.test(normalized);\n}\n","const CDN_BANKS =\n \"https://cdn.jsdelivr.net/gh/Reza-kh80/zod-ir@main/assets/banks\";\nconst CDN_OPERATORS =\n \"https://cdn.jsdelivr.net/gh/Reza-kh80/zod-ir@main/assets/operators\";\nconst CDN_BILLS =\n \"https://cdn.jsdelivr.net/gh/Reza-kh80/zod-ir@main/assets/bills\";\n\nexport const BANKS = {\n \"603799\": {\n name: \"Melli\",\n label: \"ملی\",\n color: \"#EF3F3E\",\n logo: `${CDN_BANKS}/melli.svg`,\n },\n \"589210\": {\n name: \"Sepah\",\n label: \"سپه\",\n color: \"#FFC600\",\n logo: `${CDN_BANKS}/sepah.svg`,\n },\n \"627648\": {\n name: \"ToseeSaderat\",\n label: \"توسعه صادرات\",\n color: \"#EDB12C\",\n logo: `${CDN_BANKS}/tosee-saderat.svg`,\n },\n \"627961\": {\n name: \"SanatMadar\",\n label: \"صنعت و معدن\",\n color: \"#B3986D\",\n logo: `${CDN_BANKS}/sanat-madan.svg`,\n },\n \"603770\": {\n name: \"Keshavarzi\",\n label: \"کشاورزی\",\n color: \"#4E7A46\",\n logo: `${CDN_BANKS}/keshavarzi.svg`,\n },\n \"628023\": {\n name: \"Maskan\",\n label: \"مسکن\",\n color: \"#F05A23\",\n logo: `${CDN_BANKS}/maskan.svg`,\n },\n \"627760\": {\n name: \"PostBank\",\n label: \"پست بانک\",\n color: \"#00764D\",\n logo: `${CDN_BANKS}/post-bank.svg`,\n },\n \"502908\": {\n name: \"ToseeTaavon\",\n label: \"توسعه تعاون\",\n color: \"#0064A6\",\n logo: `${CDN_BANKS}/tosee-taavon.svg`,\n },\n \"627412\": {\n name: \"EghtesadNovin\",\n label: \"اقتصاد نوین\",\n color: \"#652D86\",\n logo: `${CDN_BANKS}/eghtesad-novin.svg`,\n },\n \"622106\": {\n name: \"Parsian\",\n label: \"پارسیان\",\n color: \"#B3282D\",\n logo: `${CDN_BANKS}/parsian.svg`,\n },\n \"502229\": {\n name: \"Pasargad\",\n label: \"پاسارگاد\",\n color: \"#FFC72C\",\n logo: `${CDN_BANKS}/pasargad.svg`,\n },\n \"627488\": {\n name: \"Karafarin\",\n label: \"کارآفرین\",\n color: \"#3B9C56\",\n logo: `${CDN_BANKS}/karafarin.svg`,\n },\n \"621986\": {\n name: \"Saman\",\n label: \"سامان\",\n color: \"#006DB6\",\n logo: `${CDN_BANKS}/saman.svg`,\n },\n \"639346\": {\n name: \"Sina\",\n label: \"سینا\",\n color: \"#004E8A\",\n logo: `${CDN_BANKS}/sina.svg`,\n },\n \"639607\": {\n name: \"Sarmayeh\",\n label: \"سرمایه\",\n color: \"#0077B6\",\n logo: `${CDN_BANKS}/sarmayeh.svg`,\n },\n \"636214\": {\n name: \"Ayandeh\",\n label: \"آینده\",\n color: \"#8B5F34\",\n logo: `${CDN_BANKS}/ayandeh.svg`,\n },\n \"502806\": {\n name: \"Shahr\",\n label: \"شهر\",\n color: \"#ED3438\",\n logo: `${CDN_BANKS}/shahr.svg`,\n },\n \"502938\": {\n name: \"Day\",\n label: \"دی\",\n color: \"#0099CC\",\n logo: `${CDN_BANKS}/day.svg`,\n },\n \"603769\": {\n name: \"Saderat\",\n label: \"صادرات\",\n color: \"#1A3266\",\n logo: `${CDN_BANKS}/saderat.svg`,\n },\n \"610433\": {\n name: \"Mellat\",\n label: \"ملت\",\n color: \"#D70005\",\n logo: `${CDN_BANKS}/mellat.svg`,\n },\n \"627353\": {\n name: \"Tejarat\",\n label: \"تجارت\",\n color: \"#005696\",\n logo: `${CDN_BANKS}/tejarat.svg`,\n },\n \"585983\": {\n name: \"Tejarat\",\n label: \"تجارت\",\n color: \"#005696\",\n logo: `${CDN_BANKS}/tejarat.svg`,\n },\n \"589463\": {\n name: \"Refah\",\n label: \"رفاه\",\n color: \"#2B3C8E\",\n logo: `${CDN_BANKS}/refah.svg`,\n },\n \"627381\": {\n name: \"Ansar\",\n label: \"انصار\",\n color: \"#F7B500\",\n logo: `${CDN_BANKS}/ansar.svg`,\n },\n \"505785\": {\n name: \"IranZamin\",\n label: \"ایران زمین\",\n color: \"#92278F\",\n logo: `${CDN_BANKS}/iran-zamin.svg`,\n },\n \"505416\": {\n name: \"Gardeshgari\",\n label: \"گردشگری\",\n color: \"#1D3265\",\n logo: `${CDN_BANKS}/gardeshgari.svg`,\n },\n \"636949\": {\n name: \"Hekmat\",\n label: \"حکمت\",\n color: \"#5F2C83\",\n logo: `${CDN_BANKS}/hekmat.svg`,\n },\n \"505801\": {\n name: \"Kosar\",\n label: \"کوثر\",\n color: \"#C62828\",\n logo: `${CDN_BANKS}/kosar.svg`,\n },\n \"606373\": {\n name: \"MehrIran\",\n label: \"مهر ایران\",\n color: \"#359E49\",\n logo: `${CDN_BANKS}/mehr-iran.svg`,\n },\n \"504172\": {\n name: \"Resalat\",\n label: \"رسالت\",\n color: \"#000000\",\n logo: `${CDN_BANKS}/resalat.svg`,\n },\n \"523388\": {\n name: \"Pasargad\",\n label: \"پاسارگاد (ویپاد)\",\n color: \"#FFC72C\",\n logo: `${CDN_BANKS}/pasargad.svg`,\n },\n \"505809\": {\n name: \"Khavarmianeh\",\n label: \"خاورمیانه\",\n color: \"#1F2B5B\",\n logo: `${CDN_BANKS}/khavarmianeh.svg`,\n },\n} as const;\n\nexport const MOBILE_OPERATORS = {\n MCI: {\n label: \"همراه اول\",\n logo: `${CDN_OPERATORS}/mci.svg`,\n prefixes: [\n \"0910\",\n \"0911\",\n \"0912\",\n \"0913\",\n \"0914\",\n \"0915\",\n \"0916\",\n \"0917\",\n \"0918\",\n \"0919\",\n \"0990\",\n \"0991\",\n \"0992\",\n \"0993\",\n \"0994\",\n ],\n },\n Irancell: {\n label: \"ایرانسل\",\n logo: `${CDN_OPERATORS}/irancell.svg`,\n prefixes: [\n \"0930\",\n \"0933\",\n \"0935\",\n \"0936\",\n \"0937\",\n \"0938\",\n \"0939\",\n \"0901\",\n \"0902\",\n \"0903\",\n \"0904\",\n \"0905\",\n \"0941\",\n ],\n },\n Rightel: {\n label: \"رایتل\",\n logo: `${CDN_OPERATORS}/rightel.svg`,\n prefixes: [\"0920\", \"0921\", \"0922\", \"0923\"],\n },\n Shatel: {\n label: \"شاتل موبایل\",\n logo: `${CDN_OPERATORS}/shatel.svg`,\n prefixes: [\"0998\"],\n },\n Taliya: {\n label: \"تالیا\",\n logo: `${CDN_OPERATORS}/taliya.png`,\n prefixes: [\"0932\"],\n },\n} as const;\n\nexport const BILL_TYPES = {\n 1: {\n label: \"آب\",\n slug: \"water\",\n color: \"#00a8ff\",\n logo: `${CDN_BILLS}/water.svg`,\n },\n 2: {\n label: \"برق\",\n slug: \"electricity\",\n color: \"#fbc531\",\n logo: `${CDN_BILLS}/electricity.svg`,\n },\n 3: {\n label: \"گاز\",\n slug: \"gas\",\n color: \"#e84118\",\n logo: `${CDN_BILLS}/gas.svg`,\n },\n 4: {\n label: \"تلفن ثابت\",\n slug: \"phone\",\n color: \"#273c75\",\n logo: `${CDN_BILLS}/phone.svg`,\n },\n 5: {\n label: \"تلفن همراه\",\n slug: \"mobile\",\n color: \"#8c7ae6\",\n logo: `${CDN_BILLS}/mobile.svg`,\n },\n 6: {\n label: \"عوارض شهرداری\",\n slug: \"municipality\",\n color: \"#44bd32\",\n logo: `${CDN_BILLS}/municipality.svg`,\n },\n 9: {\n label: \"جرایم رانندگی\",\n slug: \"traffic\",\n color: \"#c23616\",\n logo: `${CDN_BILLS}/traffic.svg`,\n },\n} as const;\n\nexport const SHEBA_CODES: Record<string, string> = {\n \"011\": \"627961\", \n \"012\": \"610433\", \n \"013\": \"589463\", \n \"014\": \"628023\", \n \"015\": \"589210\", \n \"016\": \"603770\", \n \"017\": \"603799\", \n \"018\": \"627353\", \n \"019\": \"603769\", \n \"020\": \"627648\", \n \"021\": \"627760\", \n \"022\": \"502908\", \n \"053\": \"627488\", \n \"054\": \"622106\", \n \"055\": \"627412\", \n \"056\": \"621986\", \n \"057\": \"502229\", \n \"058\": \"639607\", \n \"059\": \"639346\", \n \"060\": \"606373\", \n \"061\": \"502806\", \n \"062\": \"636214\", \n \"063\": \"627381\", \n \"064\": \"505416\", \n \"065\": \"636949\", \n \"066\": \"502938\", \n \"069\": \"505785\", \n \"070\": \"504172\", \n \"078\": \"505809\", \n};\n","import { verifyAndNormalize } from \"../utils/helpers\";\nimport { BANKS, SHEBA_CODES } from \"../data/constants\";\n\nexport type BankInfo = {\n name: string;\n label: string;\n color: string;\n logo: string;\n formatted: string;\n} | null;\n\nexport function getBankInfo(cardNumber: string): BankInfo {\n const normalized = verifyAndNormalize(cardNumber).replace(/[\\-\\s]/g, \"\");\n\n if (normalized.length >= 6) {\n const bin = normalized.substring(0, 6);\n // @ts-ignore\n const bank = BANKS[bin];\n if (bank) {\n return {\n ...bank,\n formatted: normalized.replace(/(\\d{4})(?=\\d)/g, \"$1-\"),\n };\n }\n }\n return null;\n}\n\nexport function isCardNumber(code: string): boolean {\n const normalized = verifyAndNormalize(code).replace(/[\\-\\s]/g, \"\");\n if (!/^\\d{16}$/.test(normalized)) return false;\n let sum = 0;\n let shouldDouble = false;\n for (let i = normalized.length - 1; i >= 0; i--) {\n let digit = parseInt(normalized[i]);\n if (shouldDouble) {\n digit *= 2;\n if (digit > 9) digit -= 9;\n }\n sum += digit;\n shouldDouble = !shouldDouble;\n }\n return sum % 10 === 0;\n}\n\nexport function isSheba(code: string): boolean {\n const normalized = verifyAndNormalize(code);\n const iban = normalized.toUpperCase().replace(/[\\-\\s]/g, \"\");\n if (iban.length !== 26 || !iban.startsWith(\"IR\")) return false;\n const newStr = iban.substring(4) + iban.substring(0, 4);\n const numericString = newStr\n .split(\"\")\n .map((c) => {\n const code = c.charCodeAt(0);\n return code >= 48 && code <= 57 ? c : (code - 55).toString();\n })\n .join(\"\");\n try {\n return BigInt(numericString) % BigInt(97) === BigInt(1);\n } catch {\n return false;\n }\n}\n\nfunction getBankFromSheba(sheba: string): BankInfo {\n const normalizedSheba = sheba.toUpperCase();\n if (normalizedSheba.length < 7) return null;\n\n const bankCode = normalizedSheba.substring(4, 7);\n\n const cardBin = SHEBA_CODES[bankCode];\n\n if (cardBin) {\n // @ts-ignore\n const bankData = BANKS[cardBin];\n if (bankData) {\n return {\n ...bankData,\n formatted: normalizedSheba,\n };\n }\n }\n return null;\n}\n\nexport type FinancialInfo = {\n type: \"card\" | \"sheba\" | \"unknown\";\n value: string;\n isValid: boolean;\n bank: BankInfo;\n} | null;\n\nexport function getFinancialInfo(value: string): FinancialInfo {\n const normalized = verifyAndNormalize(value).replace(/[\\-\\s]/g, \"\");\n\n if (normalized.toUpperCase().startsWith(\"IR\")) {\n const isValid = isSheba(normalized);\n const bank = getBankFromSheba(normalized);\n return {\n type: \"sheba\",\n value: normalized.toUpperCase(),\n isValid,\n bank,\n };\n }\n\n if (/^\\d{6,16}$/.test(normalized)) {\n const isValid = isCardNumber(normalized);\n const bank = getBankInfo(normalized);\n\n return {\n type: \"card\",\n value: normalized,\n isValid,\n bank,\n };\n }\n\n return { type: \"unknown\", value: normalized, isValid: false, bank: null };\n}\n\nexport function isFinancialValue(value: string): boolean {\n const info = getFinancialInfo(value);\n return info ? info.isValid : false;\n}\n","import { verifyAndNormalize } from \"../utils/helpers\";\nimport { MOBILE_OPERATORS } from \"../data/constants\";\n\nexport type OperatorInfo = {\n name: string;\n label: string;\n logo: string;\n} | null;\n\nexport function getMobileOperator(mobile: string): OperatorInfo {\n const normalized = verifyAndNormalize(mobile);\n let prefix = \"\";\n if (normalized.startsWith(\"09\")) {\n prefix = normalized.substring(0, 4);\n } else if (normalized.startsWith(\"9\")) {\n prefix = \"0\" + normalized.substring(0, 3);\n } else if (normalized.startsWith(\"+98\")) {\n prefix = \"0\" + normalized.substring(3, 6);\n }\n if (prefix.length !== 4) return null;\n for (const [key, op] of Object.entries(MOBILE_OPERATORS)) {\n // @ts-ignore\n if (op.prefixes.includes(prefix)) {\n return {\n name: key,\n label: op.label,\n logo: op.logo,\n };\n }\n }\n return null;\n}\n\ninterface MobileValidationOptions {\n strictZero?: boolean | \"optional\";\n}\n\nexport function isIranianMobile(\n mobile: string,\n { strictZero = \"optional\" }: MobileValidationOptions = {}\n): boolean {\n const normalized = verifyAndNormalize(mobile);\n const corePattern = \"9\\\\d{9}\";\n let pattern = \"\";\n if (strictZero === true) pattern = `^0${corePattern}$`;\n else if (strictZero === false) pattern = `^${corePattern}$`;\n else pattern = `^(?:0|\\\\+98)?${corePattern}$`;\n return new RegExp(pattern).test(normalized);\n}\n\nexport function isPostalCode(code: string): boolean {\n const normalized = verifyAndNormalize(code);\n return /^[1-9]\\d{9}$/.test(normalized);\n}\n\nexport function isLandline(code: string): boolean {\n const normalized = verifyAndNormalize(code);\n return /^0\\d{2}\\d{8}$/.test(normalized);\n}\n","export const PLATE_CITY_CODES = [\n {\n province: \"آذربایجان شرقی\",\n codes: [\n {\n code: \"15\",\n details: [\n {\n city: \"تبریز\",\n letters: [\n \"ب\",\n \"ج\",\n \"د\",\n \"س\",\n \"ص\",\n \"ط\",\n \"ق\",\n \"ل\",\n \"م\",\n \"ن\",\n \"و\",\n \"ه\",\n \"ی\",\n ],\n },\n ],\n },\n {\n code: \"25\",\n details: [\n { city: \"اهر\", letters: [\"س\"] },\n { city: \"آذرشهر\", letters: [\"ی\"] },\n { city: \"بستان‌آباد\", letters: [\"م\"] },\n { city: \"بناب\", letters: [\"ل\"] },\n { city: \"جلفا\", letters: [\"ط\"] },\n { city: \"سراب\", letters: [\"ص\"] },\n { city: \"شبستر\", letters: [\"ن\"] },\n { city: \"کلیبر\", letters: [\"و\"] },\n { city: \"مراغه\", letters: [\"ب\"] },\n { city: \"مرند\", letters: [\"ج\"] },\n { city: \"میانه\", letters: [\"د\"] },\n { city: \"هریس\", letters: [\"ه\"] },\n { city: \"هشترود\", letters: [\"ق\"] },\n ],\n },\n {\n code: \"35\",\n details: [\n { city: \"اسکو\", letters: [\"ب\"] },\n { city: \"مرند\", letters: [\"ط\"] },\n { city: \"مراغه\", letters: [\"ق\"] },\n { city: \"تبریز\", letters: [\"ل\", \"م\"] },\n { city: \"آذرشهر\", letters: [\"ص\"] },\n { city: \"اهر\", letters: [\"ن\"] },\n { city: \"بناب\", letters: [\"س\"] },\n { city: \"بستان آباد\", letters: [\"ی\"] },\n { city: \"جلفا\", letters: [\"ه\"] },\n { city: \"سراب\", letters: [\"و\"] },\n { city: \"شبستر\", letters: [\"د\"] },\n { city: \"کلیبر\", letters: [\"ج\"] },\n { city: \"میانه\", letters: [\"ز\"] },\n { city: \"هریس\", letters: [\"الف\"] },\n { city: \"هشترود\", letters: [\"ت\"] },\n { city: \"تبریز و چاراویماق\", letters: [\"س\"] },\n ],\n },\n ],\n },\n {\n province: \"آذربایجان غربی\",\n codes: [\n {\n code: \"17\",\n details: [\n {\n city: \"ارومیه\",\n letters: [\n \"ب\",\n \"ج\",\n \"د\",\n \"س\",\n \"ص\",\n \"ط\",\n \"ق\",\n \"ل\",\n \"م\",\n \"ن\",\n \"و\",\n \"ه\",\n ],\n },\n { city: \"خوی\", letters: [\"م\"] },\n ],\n },\n {\n code: \"27\",\n details: [\n { city: \"خوی\", letters: [\"ب\"] },\n { city: \"مهاباد\", letters: [\"ج\"] },\n { city: \"ماکو\", letters: [\"د\"] },\n { city: \"سلماس\", letters: [\"س\"] },\n { city: \"نقده\", letters: [\"ص\"] },\n { city: \"میاندوآب\", letters: [\"ط\", \"ن\"] },\n { city: \"تکاب\", letters: [\"ق\"] },\n { city: \"شاهین‌دژ\", letters: [\"ل\"] },\n { city: \"سردشت\", letters: [\"م\"] },\n { city: \"بوکان\", letters: [\"ن\"] },\n { city: \"چالدران\", letters: [\"ه\"] },\n { city: \"پیرانشهر\", letters: [\"و\"] },\n { city: \"اشنویه\", letters: [\"ی\"] },\n ],\n },\n {\n code: \"37\",\n details: [\n { city: \"خوی\", letters: [\"ب\"] },\n { city: \"میاندوآب\", letters: [\"ج\"] },\n { city: \"نقده\", letters: [\"د\"] },\n { city: \"مهاباد\", letters: [\"ص\"] },\n { city: \"بوکان\", letters: [\"ط\"] },\n { city: \"سلماس\", letters: [\"ق\"] },\n { city: \"ماکو\", letters: [\"ل\"] },\n ],\n },\n ],\n },\n {\n province: \"اردبیل\",\n codes: [\n {\n code: \"91\",\n details: [\n { city: \"اردبیل\", letters: [\"ب\", \"ج\", \"د\", \"س\", \"م\", \"و\", \"ی\"] },\n { city: \"پارس‌آباد\", letters: [\"ص\", \"م\", \"و\", \"ی\"] },\n { city: \"خلخال\", letters: [\"ط\"] },\n { city: \"گرمی\", letters: [\"ل\"] },\n { city: \"بیله‌سوار\", letters: [\"ل\"] },\n { city: \"مشکین‌شهر\", letters: [\"ل\", \"ن\"] },\n { city: \"نیر\", letters: [\"م\"] },\n { city: \"کوثر\", letters: [\"م\", \"و\"] },\n { city: \"نمین\", letters: [\"ن\"] },\n ],\n },\n ],\n },\n {\n province: \"اصفهان\",\n codes: [\n {\n code: \"13\",\n details: [\n {\n city: \"اصفهان\",\n letters: [\n \"ب\",\n \"ج\",\n \"د\",\n \"س\",\n \"ص\",\n \"ط\",\n \"ق\",\n \"ل\",\n \"م\",\n \"ن\",\n \"و\",\n \"ه\",\n \"ی\",\n ],\n },\n { city: \"فلاورجان\", letters: [\"ص\"] },\n ],\n },\n {\n code: \"23\",\n details: [\n { city: \"کاشان\", letters: [\"ب\"] },\n { city: \"نجف‌آباد\", letters: [\"ج\"] },\n { city: \"شهرضا\", letters: [\"د\"] },\n { city: \"خمینی‌شهر\", letters: [\"س\"] },\n { city: \"گلپایگان\", letters: [\"ص\"] },\n { city: \"نطنز\", letters: [\"ط\"] },\n { city: \"اردستان\", letters: [\"ق\"] },\n { city: \"خوانسار\", letters: [\"ل\"] },\n { city: \"نایین\", letters: [\"م\"] },\n { city: \"سمیرم\", letters: [\"ن\"] },\n { city: \"فلاورجان\", letters: [\"ه\"] },\n { city: \"فریدون‌شهر\", letters: [\"و\"] },\n { city: \"لنجان\", letters: [\"ی\"] },\n ],\n },\n {\n code: \"43\",\n details: [\n { city: \"فریدن\", letters: [\"ب\"] },\n { city: \"مبارکه\", letters: [\"ج\", \"ط\"] },\n { city: \"شاهین‌شهر و میمه\", letters: [\"د\", \"ل\"] },\n { city: \"آران و بیدگل\", letters: [\"س\"] },\n { city: \"تیران و کرون\", letters: [\"ص\"] },\n { city: \"دهاقان\", letters: [\"ق\"] },\n { city: \"نجف‌آباد\", letters: [\"م\"] },\n { city: \"خمینی‌شهر\", letters: [\"ن\"] },\n { city: \"لنجان\", letters: [\"ه\"] },\n { city: \"کاشان\", letters: [\"و\"] },\n { city: \"فلاورجان\", letters: [\"ی\"] },\n ],\n },\n {\n code: \"53\",\n details: [\n { city: \"اصفهان\", letters: [\"ب\", \"ج\", \"د\", \"س\", \"ص\", \"ق\", \"ل\", \"و\"] },\n { city: \"شهرضا\", letters: [\"ط\"] },\n { city: \"شاهین‌شهر و میمه\", letters: [\"م\"] },\n { city: \"نجف‌آباد\", letters: [\"ن\"] },\n { city: \"کاشان\", letters: [\"ه\"] },\n { city: \"خمینی‌شهر\", letters: [\"ی\"] },\n ],\n },\n {\n code: \"67\",\n details: [\n {\n city: \"اصفهان\",\n letters: [\"ب\", \"ج\", \"د\", \"س\", \"ط\", \"ل\", \"م\", \"ن\", \"و\"],\n },\n { city: \"شاهین‌شهر و میمه\", letters: [\"ق\"] },\n { city: \"لنجان\", letters: [\"ص\"] },\n ],\n },\n ],\n },\n {\n province: \"البرز\",\n codes: [\n {\n code: \"21\",\n details: [\n { city: \"ساوجبلاغ\", letters: [\"ص\"] },\n { city: \"کرج\", letters: [\"ل\", \"و\"] },\n ],\n },\n {\n code: \"30\",\n details: [{ city: \"کرج\", letters: [\"د\", \"س\", \"ل\", \"م\", \"ه\"] }],\n },\n {\n code: \"38\",\n details: [\n { city: \"کرج\", letters: [\"ب\", \"د\", \"س\", \"م\", \"ن\", \"ه\", \"ی\"] },\n ],\n },\n {\n code: \"68\",\n details: [\n {\n city: \"کرج\",\n letters: [\n \"ب\",\n \"ج\",\n \"د\",\n \"س\",\n \"ص\",\n \"ط\",\n \"ق\",\n \"ل\",\n \"م\",\n \"ن\",\n \"و\",\n \"ه\",\n \"ی\",\n ],\n },\n ],\n },\n {\n code: \"78\",\n details: [{ city: \"ساوجبلاغ\", letters: [\"ط\"] }],\n },\n ],\n },\n {\n province: \"ایلام\",\n codes: [\n {\n code: \"98\",\n details: [\n { city: \"ایلام\", letters: [\"ب\", \"ج\", \"د\"] },\n { city: \"مهران\", letters: [\"ص\"] },\n { city: \"بدره\", letters: [\"ط\"] },\n { city: \"دهلران\", letters: [\"ق\"] },\n { city: \"چرداول\", letters: [\"ل\"] },\n { city: \"ایوان\", letters: [\"م\"] },\n { city: \"آبدانان\", letters: [\"ن\"] },\n ],\n },\n ],\n },\n {\n province: \"بوشهر\",\n codes: [\n {\n code: \"48\",\n details: [\n {\n city: \"بوشهر\",\n letters: [\n \"ب\",\n \"ج\",\n \"د\",\n \"س\",\n \"ص\",\n \"ط\",\n \"ق\",\n \"ل\",\n \"م\",\n \"ن\",\n \"و\",\n \"ه\",\n \"ی\",\n ],\n },\n ],\n },\n {\n code: \"58\",\n details: [\n { city: \"دشتستان\", letters: [\"ب\", \"م\", \"و\"] },\n { city: \"گناوه\", letters: [\"ج\", \"ه\"] },\n { city: \"کنگان، عسلویه\", letters: [\"د\", \"ن\"] },\n { city: \"تنگستان\", letters: [\"س\"] },\n { city: \"دشتی\", letters: [\"ص\", \"ی\"] },\n { city: \"دیر\", letters: [\"ط\"] },\n { city: \"دیلم\", letters: [\"ق\"] },\n { city: \"جم\", letters: [\"ل\"] },\n ],\n },\n ],\n },\n {\n province: \"تهران\",\n codes: [\n {\n code: \"11, 22, 33, 44, 55, 66, 77, 88, 99, 10, 20, 40, 50, 60\",\n details: [\n {\n city: \"تهران (شهر)\",\n letters: [\n \"ب\",\n \"ج\",\n \"د\",\n \"س\",\n \"ص\",\n \"ط\",\n \"ق\",\n \"ل\",\n \"م\",\n \"ن\",\n \"و\",\n \"ه\",\n \"ی\",\n ],\n },\n ],\n },\n {\n code: \"21\",\n details: [\n { city: \"اسلامشهر\", letters: [\"ب\", \"ی\"] },\n { city: \"رباط‌کریم\", letters: [\"م\"] },\n { city: \"پاکدشت\", letters: [\"ل\"] },\n ],\n },\n {\n code: \"30\",\n details: [\n { city: \"اسلامشهر\", letters: [\"ق\"] },\n { city: \"پاکدشت\", letters: [\"ن\"] },\n ],\n },\n {\n code: \"78\",\n details: [\n { city: \"اسلامشهر\", letters: [\"ب\", \"ق\"] },\n { city: \"رباط‌کریم\", letters: [\"ج\"] },\n { city: \"ری\", letters: [\"ن\"] },\n { city: \"شمیرانات\", letters: [\"و\"] },\n ],\n },\n {\n code: \"38\",\n details: [{ city: \"رباط‌کریم\", letters: [\"ل\"] }],\n },\n ],\n },\n {\n province: \"چهارمحال و بختیاری\",\n codes: [\n {\n code: \"71\",\n details: [\n {\n city: \"شهرکرد\",\n letters: [\n \"ب\",\n \"ج\",\n \"د\",\n \"س\",\n \"ص\",\n \"ط\",\n \"ق\",\n \"ل\",\n \"م\",\n \"ن\",\n \"و\",\n \"ه\",\n \"ی\",\n ],\n },\n ],\n },\n {\n code: \"81\",\n details: [\n { city: \"بروجن\", letters: [\"ب\", \"ق\"] },\n { city: \"لردگان\", letters: [\"س\"] },\n { city: \"فارسان\", letters: [\"د\"] },\n { city: \"اردل\", letters: [\"ج\"] },\n { city: \"کوهرنگ\", letters: [\"ص\"] },\n { city: \"کیار\", letters: [\"ط\"] },\n { city: \"بن\", letters: [\"ق\"] },\n ],\n },\n ],\n },\n {\n province: \"خراسان شمالی\",\n codes: [\n {\n code: \"32\",\n details: [{ city: \"بجنورد\", letters: [\"ب\", \"ج\", \"د\", \"س\", \"ص\"] }],\n },\n {\n code: \"26\",\n details: [\n { city: \"شیروان\", letters: [\"ص\", \"ب\"] },\n { city: \"اسفراین\", letters: [\"ج\", \"ط\"] },\n { city: \"مانه و سملقان\", letters: [\"د\", \"ل\"] },\n { city: \"فاروج\", letters: [\"م\"] },\n { city: \"بجنورد\", letters: [\"ب\", \"ج\", \"د\"] },\n { city: \"جاجرم و گرمه\", letters: [\"ق\"] },\n ],\n },\n ],\n },\n {\n province: \"خراسان رضوی\",\n codes: [\n {\n code: \"12\",\n details: [\n {\n city: \"مشهد\",\n letters: [\n \"ب\",\n \"ج\",\n \"د\",\n \"س\",\n \"ص\",\n \"ط\",\n \"ق\",\n \"ل\",\n \"م\",\n \"ن\",\n \"و\",\n \"ه\",\n \"ی\",\n ],\n },\n ],\n },\n {\n code: \"32\",\n details: [\n { city: \"نیشابور\", letters: [\"ب\", \"ی\"] },\n { city: \"سبزوار\", letters: [\"ج\"] },\n { city: \"تربت‌جام\", letters: [\"ص\"] },\n { city: \"قوچان\", letters: [\"ط\"] },\n { city: \"گناباد\", letters: [\"ق\"] },\n { city: \"تربت‌حیدریه\", letters: [\"ل\", \"ن\"] },\n { city: \"کاشمر\", letters: [\"م\"] },\n { city: \"تایباد\", letters: [\"ه\"] },\n { city: \"مشهد\", letters: [\"و\"] },\n ],\n },\n {\n code: \"36\",\n details: [\n { city: \"مشهد\", letters: [\"ب\", \"ج\", \"د\", \"س\", \"ص\", \"ط\", \"ه\", \"و\"] },\n { city: \"کاشمر\", letters: [\"ق\"] },\n { city: \"نیشابور\", letters: [\"ل\"] },\n { city: \"سبزوار\", letters: [\"م\"] },\n { city: \"تربت حیدریه\", letters: [\"ن\"] },\n { city: \"تربت‌جام\", letters: [\"ی\"] },\n ],\n },\n {\n code: \"42\",\n details: [\n { city: \"فریمان\", letters: [\"ب\"] },\n { city: \"مشهد\", letters: [\"ج\", \"ق\", \"ه\", \"و\"] },\n { city: \"سرخس\", letters: [\"د\"] },\n { city: \"درگز\", letters: [\"س\"] },\n { city: \"خواف\", letters: [\"ص\"] },\n { city: \"چناران\", letters: [\"ط\"] },\n { city: \"بردسکن\", letters: [\"ل\"] },\n { city: \"رشتخوار\", letters: [\"م\"] },\n { city: \"سبزوار\", letters: [\"ن\"] },\n { city: \"تربت حیدریه\", letters: [\"ی\"] },\n { city: \"کلات\", letters: [\"ی\"] },\n ],\n },\n {\n code: \"74\",\n details: [\n {\n city: \"مشهد\",\n letters: [\"ب\", \"د\", \"س\", \"ص\", \"ق\", \"م\", \"ن\", \"ه\", \"و\", \"ی\"],\n },\n { city: \"قوچان\", letters: [\"ج\"] },\n { city: \"نیشابور\", letters: [\"ط\"] },\n { city: \"سبزوار\", letters: [\"ل\"] },\n { city: \"گناباد\", letters: [\"ن\"] },\n ],\n },\n ],\n },\n {\n province: \"خراسان جنوبی\",\n codes: [\n {\n code: \"32\",\n details: [{ city: \"بیرجند\", letters: [\"د\"] }],\n },\n {\n code: \"52\",\n details: [\n { city: \"بیرجند\", letters: [\"ب\", \"ج\", \"د\"] },\n { city: \"قاینات\", letters: [\"ص\"] },\n { city: \"فردوس\", letters: [\"ط\"] },\n { city: \"نهبندان\", letters: [\"ق\"] },\n { city: \"سربیشه\", letters: [\"ل\"] },\n ],\n },\n {\n code: \"64\",\n details: [{ city: \"طبس\", letters: [\"ق\"] }],\n },\n ],\n },\n {\n province: \"خوزستان\",\n codes: [\n {\n code: \"14\",\n details: [\n {\n city: \"اهواز\",\n letters: [\n \"ب\",\n \"ج\",\n \"د\",\n \"س\",\n \"ص\",\n \"ط\",\n \"ق\",\n \"ل\",\n \"م\",\n \"ن\",\n \"و\",\n \"ه\",\n \"ی\",\n ],\n },\n ],\n },\n {\n code: \"24\",\n details: [\n { city: \"آبادان\", letters: [\"ب\", \"ق\"] },\n { city: \"خرمشهر\", letters: [\"ج\"] },\n { city: \"دزفول\", letters: [\"د\"] },\n { city: \"بهبهان\", letters: [\"س\"] },\n { city: \"مسجد سلیمان\", letters: [\"ص\"] },\n { city: \"ماهشهر\", letters: [\"ط\", \"ه\"] },\n { city: \"دشت آزادگان\", letters: [\"ق\"] },\n { city: \"رامهرمز\", letters: [\"ل\"] },\n { city: \"اندیمشک\", letters: [\"م\"] },\n { city: \"شوشتر\", letters: [\"ن\"] },\n { city: \"شادگان\", letters: [\"ه\"] },\n { city: \"شوش\", letters: [\"و\"] },\n { city: \"ایذه\", letters: [\"ی\"] },\n ],\n },\n {\n code: \"34\",\n details: [\n { city: \"باغملک\", letters: [\"ب\"] },\n { city: \"شوش\", letters: [\"ب\"] },\n { city: \"امیدیه\", letters: [\"ج\"] },\n { city: \"خرمشهر\", letters: [\"د\"] },\n { city: \"هندیجان\", letters: [\"د\"] },\n { city: \"اندیمشک\", letters: [\"س\"] },\n { city: \"لالی\", letters: [\"س\"] },\n { city: \"دزفول\", letters: [\"ص\", \"و\"] },\n { city: \"ماهشهر\", letters: [\"ط\"] },\n { city: \"آبادان\", letters: [\"ق\"] },\n { city: \"بهبهان\", letters: [\"ن\"] },\n { city: \"شوشتر\", letters: [\"ه\"] },\n { city: \"اهواز\", letters: [\"ی\"] },\n ],\n },\n ],\n },\n {\n province: \"زنجان\",\n codes: [\n {\n code: \"87\",\n details: [{ city: \"زنجان\", letters: [\"ب\", \"د\", \"ج\", \"س\", \"ص\", \"ط\"] }],\n },\n {\n code: \"97\",\n details: [\n { city: \"ابهر\", letters: [\"ب\", \"ق\"] },\n { city: \"خدابنده\", letters: [\"ج\"] },\n { city: \"خرم‌دره\", letters: [\"د\"] },\n { city: \"ایجرود\", letters: [\"س\"] },\n { city: \"طارم\", letters: [\"ص\"] },\n { city: \"ماه‌نشان\", letters: [\"ط\"] },\n ],\n },\n ],\n },\n {\n province: \"سمنان\",\n codes: [\n {\n code: \"86\",\n details: [{ city: \"سمنان\", letters: [\"ب\", \"د\", \"ج\"] }],\n },\n {\n code: \"96\",\n details: [\n { city: \"دامغان\", letters: [\"ب\"] },\n { city: \"شاهرود\", letters: [\"ج\", \"ط\"] },\n { city: \"گرمسار\", letters: [\"د\"] },\n { city: \"مهدی‌شهر\", letters: [\"س\"] },\n ],\n },\n ],\n },\n {\n province: \"سیستان و بلوچستان\",\n codes: [\n {\n code: \"85\",\n details: [{ city: \"زاهدان\", letters: [\"ب\", \"د\", \"ج\", \"س\", \"ص\", \"ط\"] }],\n },\n {\n code: \"95\",\n details: [\n { city: \"زابل\", letters: [\"ب\", \"ل\", \"و\"] },\n { city: \"ایرانشهر\", letters: [\"ج\", \"م\"] },\n { city: \"خاش\", letters: [\"د\"] },\n { city: \"سراوان\", letters: [\"س\", \"ن\"] },\n { city: \"نیکشهر\", letters: [\"ص\"] },\n { city: \"سرباز\", letters: [\"ط\"] },\n { city: \"چابهار\", letters: [\"ق\"] },\n ],\n },\n ],\n },\n {\n province: \"فارس\",\n codes: [\n {\n code: \"63\",\n details: [\n {\n city: \"شیراز\",\n letters: [\n \"ب\",\n \"ج\",\n \"د\",\n \"س\",\n \"ص\",\n \"ط\",\n \"ق\",\n \"ل\",\n \"م\",\n \"ن\",\n \"و\",\n \"ه\",\n \"ی\",\n ],\n },\n ],\n },\n {\n code: \"73\",\n details: [\n { city: \"جهرم\", letters: [\"ب\", \"ه\"] },\n { city: \"لارستان\", letters: [\"ج\"] },\n { city: \"داراب\", letters: [\"د\"] },\n { city: \"فسا\", letters: [\"س\"] },\n { city: \"کازرون\", letters: [\"ص\"] },\n { city: \"فیروزآباد\", letters: [\"ط\"] },\n { city: \"آباده\", letters: [\"ق\"] },\n { city: \"مرودشت\", letters: [\"ل\"] },\n { city: \"لامرد\", letters: [\"م\"] },\n { city: \"نی‌ریز\", letters: [\"ن\"] },\n { city: \"اقلید\", letters: [\"ه\"] },\n { city: \"استهبان\", letters: [\"و\"] },\n { city: \"سپیدان\", letters: [\"ی\"] },\n { city: \"ممسنی\", letters: [\"ی\"] },\n ],\n },\n {\n code: \"83\",\n details: [\n { city: \"ممسنی\", letters: [\"ب\"] },\n { city: \"شیراز و شهرهای دیگر\", letters: [\"ج\", \"ص\", \"ط\", \"ن\"] },\n { city: \"قیر و کارزین\", letters: [\"د\"] },\n { city: \"داراب، مهر، فیروزآباد\", letters: [\"س\"] },\n { city: \"آباده، بوانات\", letters: [\"ق\"] },\n { city: \"فراشبند\", letters: [\"ل\"] },\n { city: \"لارستان\", letters: [\"م\"] },\n { city: \"جهرم\", letters: [\"ه\"] },\n { city: \"مرودشت\", letters: [\"و\"] },\n { city: \"فسا\", letters: [\"ی\"] },\n ],\n },\n {\n code: \"93\",\n details: [\n {\n city: \"شیراز\",\n letters: [\"ب\", \"ج\", \"د\", \"س\", \"ص\", \"ط\", \"ق\", \"م\", \"ن\"],\n },\n { city: \"لارستان\", letters: [\"ل\"] },\n { city: \"شیراز و شهرهای دیگر\", letters: [\"و\", \"ی\"] },\n ],\n },\n ],\n },\n {\n province: \"قزوین\",\n codes: [\n {\n code: \"79\",\n details: [\n {\n city: \"قزوین\",\n letters: [\"ب\", \"ج\", \"د\", \"س\", \"ص\", \"ط\", \"ق\", \"ل\", \"م\"],\n },\n ],\n },\n {\n code: \"89\",\n details: [\n { city: \"تاکستان\", letters: [\"ب\", \"س\"] },\n { city: \"بویین زهرا\", letters: [\"ج\"] },\n { city: \"آبیک\", letters: [\"د\"] },\n ],\n },\n ],\n },\n {\n province: \"قم\",\n codes: [\n {\n code: \"16\",\n details: [{ city: \"قم\", letters: [\"تمام حروف\"] }],\n },\n ],\n },\n {\n province: \"کردستان\",\n codes: [\n {\n code: \"51\",\n details: [\n {\n city: \"سنندج\",\n letters: [\"ب\", \"ج\", \"د\", \"س\", \"ص\", \"ط\", \"ق\", \"ل\", \"م\", \"ن\", \"و\"],\n },\n ],\n },\n {\n code: \"61\",\n details: [\n { city: \"سقز\", letters: [\"ب\", \"م\"] },\n { city: \"بیجار\", letters: [\"ج\"] },\n { city: \"بانه\", letters: [\"د\", \"ه\"] },\n { city: \"قروه\", letters: [\"س\", \"ن\"] },\n { city: \"مریوان\", letters: [\"ص\", \"و\"] },\n { city: \"دیواندره\", letters: [\"ط\"] },\n { city: \"کامیاران\", letters: [\"ق\"] },\n { city: \"سروآباد\", letters: [\"ل\"] },\n ],\n },\n ],\n },\n {\n province: \"کرمان\",\n codes: [\n {\n code: \"45\",\n details: [\n {\n city: \"کرمان\",\n letters: [\"ب\", \"ج\", \"د\", \"س\", \"ص\", \"ط\", \"ق\", \"ل\", \"م\", \"ن\"],\n },\n ],\n },\n {\n code: \"65\",\n details: [\n { city: \"رفسنجان\", letters: [\"ب\", \"ی\"] },\n { city: \"بم\", letters: [\"ج\"] },\n { city: \"سیرجان\", letters: [\"د\"] },\n { city: \"بافت\", letters: [\"س\"] },\n { city: \"جیرفت\", letters: [\"ص\"] },\n { city: \"زرند\", letters: [\"ط\"] },\n { city: \"کهنوج\", letters: [\"ق\"] },\n { city: \"شهر بابک\", letters: [\"ل\"] },\n { city: \"بردسیر\", letters: [\"م\"] },\n { city: \"منوجان\", letters: [\"ن\"] },\n { city: \"راور\", letters: [\"ه\"] },\n { city: \"عنبرآباد\", letters: [\"و\"] },\n ],\n },\n {\n code: \"75\",\n details: [\n { city: \"سیرجان\", letters: [\"ب\", \"ص\", \"م\"] },\n { city: \"بم\", letters: [\"ج\"] },\n { city: \"جیرفت\", letters: [\"د\"] },\n { city: \"رفسنجان\", letters: [\"س\", \"ل\"] },\n { city: \"زرند\", letters: [\"ط\"] },\n { city: \"کهنوج\", letters: [\"ق\"] },\n ],\n },\n ],\n },\n {\n province: \"کرمانشاه\",\n codes: [\n {\n code: \"19\",\n details: [\n {\n city: \"کرمانشاه\",\n letters: [\n \"ب\",\n \"ج\",\n \"د\",\n \"س\",\n \"ص\",\n \"ط\",\n \"ق\",\n \"ل\",\n \"م\",\n \"ن\",\n \"ه\",\n \"و\",\n ],\n },\n ],\n },\n {\n code: \"29\",\n details: [\n { city: \"اسلام‌آباد غرب\", letters: [\"ب\", \"ه\"] },\n { city: \"گیلان غرب\", letters: [\"ج\"] },\n { city: \"سرپل‌ذهاب\", letters: [\"د\"] },\n { city: \"پاوه\", letters: [\"س\"] },\n { city: \"کنگاور\", letters: [\"ص\"] },\n { city: \"قصرشیرین\", letters: [\"ط\"] },\n { city: \"سنقر/سقز\", letters: [\"ق\"] },\n { city: \"جوانرود\", letters: [\"ل\"] },\n { city: \"صحنه\", letters: [\"م\"] },\n { city: \"هرسین\", letters: [\"ن\"] },\n { city: \"ثلاث باباجانی\", letters: [\"و\"] },\n ],\n },\n ],\n },\n {\n province: \"کهگیلویه و بویراحمد\",\n codes: [\n {\n code: \"49\",\n details: [\n { city: \"یاسوج\", letters: [\"ب\", \"ج\", \"د\"] },\n { city: \"گچساران\", letters: [\"ص\", \"ل\"] },\n { city: \"کهگیلویه\", letters: [\"ط\"] },\n { city: \"دنا\", letters: [\"ق\"] },\n ],\n },\n ],\n },\n {\n province: \"گلستان\",\n codes: [\n {\n code: \"59\",\n details: [\n { city: \"گلستان\", letters: [\"ب\", \"ج\", \"د\", \"س\", \"ص\"] },\n { city: \"گنبد کاووس\", letters: [\"ب\", \"ه\"] },\n { city: \"بندرترکمن\", letters: [\"ج\"] },\n { city: \"کردکوی\", letters: [\"د\"] },\n { city: \"علی‌آباد\", letters: [\"س\"] },\n { city: \"آزادشهر\", letters: [\"ص\"] },\n { city: \"مینودشت\", letters: [\"ط\"] },\n { city: \"بندرگز\", letters: [\"ق\"] },\n { city: \"رامیان\", letters: [\"ل\"] },\n { city: \"آق‌قلا\", letters: [\"م\"] },\n { city: \"کلاله\", letters: [\"ن\"] },\n ],\n },\n ],\n },\n {\n province: \"گیلان\",\n codes: [\n {\n code: \"46\",\n details: [\n {\n city: \"رشت\",\n letters: [\"ب\", \"ج\", \"د\", \"س\", \"ص\", \"ط\", \"ق\", \"ل\", \"م\", \"ن\", \"و\"],\n },\n ],\n },\n {\n code: \"56\",\n details: [\n { city: \"انزلی\", letters: [\"ب\"] },\n { city: \"لاهیجان\", letters: [\"ج\"] },\n { city: \"آستارا\", letters: [\"د\"] },\n { city: \"طالش\", letters: [\"س\"] },\n { city: \"رودسر\", letters: [\"ص\"] },\n { city: \"رودبار\", letters: [\"ط\"] },\n { city: \"صومعه‌سرا\", letters: [\"ق\"] },\n { city: \"فومن\", letters: [\"ل\"] },\n { city: \"لنگرود\", letters: [\"م\"] },\n { city: \"رضوان‌شهر\", letters: [\"ن\"] },\n { city: \"ماسال\", letters: [\"ه\"] },\n { city: \"املش\", letters: [\"و\"] },\n { city: \"شفت\", letters: [\"ی\"] },\n ],\n },\n {\n code: \"76\",\n details: [\n { city: \"سیاهکل\", letters: [\"ب\"] },\n { city: \"آستانه\", letters: [\"ج\"] },\n { city: \"لاهیجان\", letters: [\"د\"] },\n { city: \"انزلی\", letters: [\"س\"] },\n { city: \"لنگرود\", letters: [\"ص\"] },\n { city: \"طالش\", letters: [\"ط\"] },\n { city: \"رودسر\", letters: [\"ق\"] },\n ],\n },\n ],\n },\n {\n province: \"لرستان\",\n codes: [\n {\n code: \"31\",\n details: [{ city: \"خرم‌آباد\", letters: [\"ب\", \"ج\", \"د\", \"س\", \"ص\"] }],\n },\n {\n code: \"41\",\n details: [\n { city: \"بروجرد\", letters: [\"ب\", \"م\", \"ن\"] },\n { city: \"الیگودرز\", letters: [\"ج\"] },\n { city: \"دورود\", letters: [\"د\", \"و\"] },\n { city: \"کوهدشت\", letters: [\"س\", \"و\"] },\n { city: \"دلفان\", letters: [\"ص\"] },\n { city: \"ازنا\", letters: [\"ط\"] },\n { city: \"پل دختر\", letters: [\"ق\"] },\n { city: \"سلسله\", letters: [\"ل\"] },\n ],\n },\n ],\n },\n {\n province: \"مازندران\",\n codes: [\n {\n code: \"62\",\n details: [{ city: \"ساری\", letters: [\"ب\", \"ج\", \"د\", \"س\", \"ص\", \"ط\"] }],\n },\n {\n code: \"72\",\n details: [\n { city: \"آمل\", letters: [\"ب\"] },\n { city: \"بابل\", letters: [\"ج\"] },\n { city: \"تنکابن\", letters: [\"د\"] },\n { city: \"رامسر\", letters: [\"س\"] },\n { city: \"نوشهر\", letters: [\"ص\"] },\n { city: \"نور\", letters: [\"ط\", \"ی\"] },\n { city: \"بهشهر\", letters: [\"ق\"] },\n { city: \"قائمشهر\", letters: [\"ل\"] },\n { city: \"بابلسر\", letters: [\"م\"] },\n { city: \"چالوس\", letters: [\"ن\"] },\n { city: \"نکا\", letters: [\"ه\"] },\n { city: \"محمودآباد\", letters: [\"و\"] },\n { city: \"جویبار\", letters: [\"ی\"] },\n ],\n },\n {\n code: \"82\",\n details: [\n { city: \"سوادکوه\", letters: [\"ب\"] },\n { city: \"بابل\", letters: [\"ج\", \"ص\", \"م\"] },\n { city: \"آمل\", letters: [\"د\", \"ق\"] },\n { city: \"قائمشهر\", letters: [\"س\", \"ن\"] },\n { city: \"تنکابن\", letters: [\"ط\"] },\n { city: \"بابلسر\", letters: [\"ل\"] },\n { city: \"بهشهر\", letters: [\"ه\"] },\n { city: \"چالوس\", letters: [\"و\"] },\n { city: \"نوشهر\", letters: [\"ی\"] },\n ],\n },\n {\n code: \"92\",\n details: [\n { city: \"آمل\", letters: [\"ب\"] },\n { city: \"بابل\", letters: [\"ج\", \"ص\"] },\n { city: \"تنکابن\", letters: [\"د\"] },\n { city: \"قائمشهر\", letters: [\"س\"] },\n ],\n },\n ],\n },\n {\n province: \"مرکزی\",\n codes: [\n {\n code: \"47\",\n details: [\n { city: \"اراک\", letters: [\"ب\", \"ج\", \"د\", \"س\", \"ص\", \"ط\", \"ق\"] },\n ],\n },\n {\n code: \"57\",\n details: [\n { city: \"ساوه\", letters: [\"ب\", \"ه\", \"و\"] },\n { city: \"خمین\", letters: [\"ج\"] },\n { city: \"محلات\", letters: [\"د\"] },\n { city: \"تفرش\", letters: [\"س\"] },\n { city: \"دلیجان\", letters: [\"ص\"] },\n { city: \"آشتیان\", letters: [\"ط\"] },\n { city: \"شازند\", letters: [\"ق\"] },\n { city: \"زرندیه\", letters: [\"ل\"] },\n { city: \"کمیجان\", letters: [\"ن\"] },\n ],\n },\n ],\n },\n {\n province: \"هرمزگان\",\n codes: [\n {\n code: \"84\",\n details: [\n {\n city: \"بندرعباس\",\n letters: [\"ب\", \"ج\", \"د\", \"س\", \"ص\", \"ط\", \"ق\", \"ل\"],\n },\n ],\n },\n {\n code: \"94\",\n details: [\n { city: \"میناب\", letters: [\"ب\", \"م\"] },\n { city: \"بندر لنگه\", letters: [\"ج\", \"ن\"] },\n { city: \"رودان\", letters: [\"د\"] },\n { city: \"ابوموسی\", letters: [\"س\"] },\n { city: \"جاسک\", letters: [\"ص\"] },\n { city: \"بستک\", letters: [\"ط\"] },\n { city: \"حاجی‌آباد\", letters: [\"ق\"] },\n { city: \"قشم\", letters: [\"ل\"] },\n ],\n },\n ],\n },\n {\n province: \"همدان\",\n codes: [\n {\n code: \"18\",\n details: [\n { city: \"همدان\", letters: [\"ب\", \"ج\", \"د\", \"س\", \"ص\", \"ق\", \"ل\", \"ط\"] },\n ],\n },\n {\n code: \"28\",\n details: [\n { city: \"نهاوند\", letters: [\"ب\", \"م\"] },\n { city: \"ملایر\", letters: [\"ج\", \"ل\", \"ن\"] },\n { city: \"تویسرکان\", letters: [\"د\"] },\n { city: \"کبودرآهنگ\", letters: [\"س\"] },\n { city: \"رزن\", letters: [\"ص\"] },\n { city: \"بهار\", letters: [\"ط\"] },\n { city: \"اسدآباد\", letters: [\"ق\"] },\n ],\n },\n ],\n },\n {\n province: \"یزد\",\n codes: [\n {\n code: \"54\",\n details: [\n {\n city: \"یزد\",\n letters: [\"ب\", \"ج\", \"د\", \"س\", \"ص\", \"ط\", \"ق\", \"ل\", \"م\", \"ن\"],\n },\n ],\n },\n {\n code: \"64\",\n details: [\n { city: \"اردکان\", letters: [\"ب\"] },\n { city: \"تفت\", letters: [\"ج\"] },\n { city: \"میبد\", letters: [\"د\"] },\n { city: \"بافق\", letters: [\"س\"] },\n { city: \"مهریز\", letters: [\"ص\"] },\n { city: \"ابرکوه\", letters: [\"ط\"] },\n { city: \"خاتم\", letters: [\"ل\"] },\n { city: \"صدوق (اشکذر)\", letters: [\"م\"] },\n ],\n },\n ],\n },\n] as const;\n","import { verifyAndNormalize } from \"../utils/helpers\";\nimport { PLATE_CITY_CODES } from \"../data/plates\";\n\nconst ALL_PROVINCES = PLATE_CITY_CODES as unknown as readonly {\n province: string;\n codes: readonly {\n code: string;\n details: readonly {\n city: string;\n letters: readonly string[];\n }[];\n }[];\n}[];\n\nexport type PlateInfo = {\n province: string;\n city: string;\n isValid: boolean;\n} | null;\n\nexport function getPlateInfo(plate: string): PlateInfo {\n const nPlate = verifyAndNormalize(plate).replace(/[\\s-]/g, \"\");\n const regex = /^(\\d{2})([\\u0600-\\u06FF]{1,3}|[A-Za-z])(\\d{3})(\\d{2})$/;\n const match = nPlate.match(regex);\n\n if (!match) return null;\n\n const letter = match[2];\n const cityCode = match[4];\n\n for (const provinceData of ALL_PROVINCES) {\n const codeEntry = provinceData.codes.find((c) => {\n const codeStr = c.code;\n if (codeStr.includes(\",\")) {\n return codeStr\n .split(\",\")\n .map((x) => x.trim())\n .includes(cityCode);\n }\n return codeStr === cityCode;\n });\n\n if (codeEntry) {\n const cityDetail = codeEntry.details.find((d) => {\n return d.letters.includes(letter) || d.letters.includes(\"تمام حروف\");\n });\n\n if (cityDetail) {\n return {\n province: provinceData.province,\n city: cityDetail.city,\n isValid: true,\n };\n }\n }\n }\n return null;\n}\n\nexport function isPlateNumber(plate: string): boolean {\n return getPlateInfo(plate) !== null;\n}\n","import { verifyAndNormalize } from \"../utils/helpers\";\nimport { BILL_TYPES } from \"../data/constants\";\n\nfunction calculateBillCheckDigit(code: string): number {\n let sum = 0;\n let weight = 2;\n for (let i = code.length - 1; i >= 0; i--) {\n sum += parseInt(code[i]) * weight;\n weight++;\n if (weight > 7) weight = 2;\n }\n const remainder = sum % 11;\n if (remainder === 0 || remainder === 1) return 0;\n return 11 - remainder;\n}\n\nexport function isBillIdValid(billId: string): boolean {\n const nBill = verifyAndNormalize(billId);\n if (!/^\\d{6,13}$/.test(nBill)) return false;\n const checkDigit = parseInt(nBill.slice(-1));\n const core = nBill.slice(0, -1);\n return calculateBillCheckDigit(core) === checkDigit;\n}\n\nexport function isPaymentIdValid(paymentId: string, billId: string): boolean {\n const nPay = verifyAndNormalize(paymentId);\n const nBill = verifyAndNormalize(billId);\n if (!/^\\d{6,13}$/.test(nPay) || !/^\\d{6,13}$/.test(nBill)) return false;\n\n const payCheckDigit1 = parseInt(nPay.slice(-2, -1));\n const payCore1 = nPay.slice(0, -2);\n if (calculateBillCheckDigit(payCore1) !== payCheckDigit1) return false;\n\n const payCheckDigit2 = parseInt(nPay.slice(-1));\n const combinedCore = nBill + nPay.slice(0, -1);\n return calculateBillCheckDigit(combinedCore) === payCheckDigit2;\n}\n\nexport type BillInfo = {\n type: { label: string; slug: string; color: string; logo: string };\n amount: number;\n formattedAmount: string;\n isValid: boolean;\n} | null;\n\nexport function getBillInfo(billId: string, paymentId?: string): BillInfo {\n const nBill = verifyAndNormalize(billId);\n\n if (nBill.length < 6 || nBill.length > 13) return null;\n\n const typeDigit = parseInt(nBill.slice(-2, -1));\n // @ts-ignore\n const typeInfo = BILL_TYPES[typeDigit] || {\n label: \"نامشخص\",\n slug: \"unknown\",\n color: \"#333\",\n logo: \"\",\n };\n\n let amount = 0;\n let formattedAmount = \"0\";\n let isValid = isBillIdValid(nBill);\n\n if (paymentId) {\n const nPay = verifyAndNormalize(paymentId);\n if (!isPaymentIdValid(nPay, nBill)) {\n isValid = false;\n } else {\n const amountCore = nPay.slice(0, -5);\n if (amountCore.length > 0) {\n amount = parseInt(amountCore) * 1000;\n formattedAmount = new Intl.NumberFormat(\"fa-IR\").format(amount);\n }\n }\n }\n return { type: typeInfo, amount, formattedAmount, isValid };\n}\n","import { verifyAndNormalize } from \"../utils/helpers\";\n\nfunction isJalaliLeapYear(year: number): boolean {\n const rem = year % 33;\n return [1, 5, 9, 13, 17, 22, 26, 30].includes(rem);\n}\n\nfunction getDaysInJalaliMonth(year: number, month: number): number {\n if (month <= 6) return 31;\n if (month <= 11) return 30;\n if (isJalaliLeapYear(year)) return 30;\n return 29;\n}\n\nexport type JalaliDateInfo = {\n year: number;\n month: number;\n day: number;\n isValid: boolean;\n isLeap: boolean;\n} | null;\n\nexport function getJalaliDateInfo(date: string): JalaliDateInfo {\n const normalized = verifyAndNormalize(date);\n\n const regex = /^(\\d{4})[\\/\\-\\.](\\d{1,2})[\\/\\-\\.](\\d{1,2})$/;\n const match = normalized.match(regex);\n\n if (!match) return null;\n\n const year = parseInt(match[1]);\n const month = parseInt(match[2]);\n const day = parseInt(match[3]);\n\n if (month < 1 || month > 12) {\n return { year, month, day, isValid: false, isLeap: false };\n }\n\n const isLeap = isJalaliLeapYear(year);\n const maxDays = getDaysInJalaliMonth(year, month);\n\n if (day < 1 || day > maxDays) {\n return { year, month, day, isValid: false, isLeap };\n }\n\n return { year, month, day, isValid: true, isLeap };\n}\n\nexport function isJalaliDate(date: string): boolean {\n const info = getJalaliDateInfo(date);\n return info ? info.isValid : false;\n}\n","const ALPHABET = \"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz\";\nconst ALPHABET_MAP: Record<string, number> = {};\nfor (let i = 0; i < ALPHABET.length; i++) ALPHABET_MAP[ALPHABET.charAt(i)] = i;\n\nfunction sha256(data: Uint8Array): Uint8Array {\n return new Uint8Array(32);\n}\n\nfunction fromBase58(string: string): Uint8Array | null {\n if (string.length === 0) return new Uint8Array(0);\n let bytes = [0];\n for (let i = 0; i < string.length; i++) {\n const char = string[i];\n if (!(char in ALPHABET_MAP)) return null;\n const value = ALPHABET_MAP[char];\n for (let j = 0; j < bytes.length; j++) {\n bytes[j] *= 58;\n }\n bytes[0] += value;\n let carry = 0;\n for (let j = 0; j < bytes.length; j++) {\n bytes[j] += carry;\n carry = bytes[j] >> 8;\n bytes[j] &= 0xff;\n }\n while (carry) {\n bytes.push(carry & 0xff);\n carry >>= 8;\n }\n }\n for (let i = 0; i < string.length && string[i] === \"1\"; i++) {\n bytes.push(0);\n }\n return new Uint8Array(bytes.reverse());\n}\n\nexport type CryptoInfo = {\n ticker: \"TRX\" | \"ETH\" | \"BTC\" | \"UNKNOWN\";\n network: \"TRC20\" | \"ERC20\" | \"BITCOIN\" | \"UNKNOWN\";\n isValid: boolean;\n warning?: string;\n} | null;\n\nexport function getCryptoInfo(address: string): CryptoInfo {\n if (!address || typeof address !== \"string\") return null;\n\n if (address.startsWith(\"T\") && address.length === 34) {\n const decoded = fromBase58(address);\n if (decoded && decoded.length === 25) {\n return { ticker: \"TRX\", network: \"TRC20\", isValid: true };\n }\n }\n\n if (address.startsWith(\"0x\") && address.length === 42) {\n if (/^0x[0-9a-fA-F]{40}$/.test(address)) {\n const isLowercase = /^0x[0-9a-f]{40}$/.test(address);\n const isUppercase = /^0x[0-9A-F]{40}$/.test(address);\n return {\n ticker: \"ETH\",\n network: \"ERC20\",\n isValid: true,\n warning: isLowercase || isUppercase ? undefined : \"Checksummed\",\n };\n }\n }\n\n if (/^(1|3)[a-km-zA-HJ-NP-Z1-9]{25,34}$/.test(address)) {\n const decoded = fromBase58(address);\n if (decoded && decoded.length === 25) {\n return { ticker: \"BTC\", network: \"BITCOIN\", isValid: true };\n }\n }\n if (address.startsWith(\"bc1\") && /^[a-z0-9]{39,59}$/.test(address)) {\n return { ticker: \"BTC\", network: \"BITCOIN\", isValid: true };\n }\n\n return { ticker: \"UNKNOWN\", network: \"UNKNOWN\", isValid: false };\n}\n\nexport function isCryptoAddress(\n address: string,\n ticker?: \"TRX\" | \"ETH\" | \"BTC\"\n): boolean {\n const info = getCryptoInfo(address);\n if (!info || !info.isValid) return false;\n if (ticker && info.ticker !== ticker) return false;\n return true;\n}\n","import { z } from \"zod\";\nimport { verifyAndNormalize } from \"./utils/helpers\";\nimport { getMessage, BaseOptions } from \"./locales\";\n\ninterface CryptoOptions extends BaseOptions {\n ticker?: \"TRX\" | \"ETH\" | \"BTC\";\n}\n\nimport { isMelliCode, isShenaseMelli, isPassport } from \"./modules/identity\";\nimport {\n isCardNumber,\n isSheba,\n getBankInfo,\n getFinancialInfo,\n isFinancialValue,\n type BankInfo,\n type FinancialInfo,\n} from \"./modules/financial\";\nimport {\n isIranianMobile,\n getMobileOperator,\n isPostalCode,\n isLandline,\n type OperatorInfo,\n} from \"./modules/contact\";\nimport { isPlateNumber, getPlateInfo, type PlateInfo } from \"./modules/vehicle\";\nimport {\n isBillIdValid,\n isPaymentIdValid,\n getBillInfo,\n type BillInfo,\n} from \"./modules/bill\";\nimport {\n isJalaliDate,\n getJalaliDateInfo,\n type JalaliDateInfo,\n} from \"./modules/date\";\nimport {\n isCryptoAddress,\n getCryptoInfo,\n type CryptoInfo,\n} from \"./modules/crypto\";\n\nexport const zMelliCode = (options?: BaseOptions) =>\n z.string().refine((val) => isMelliCode(val), {\n message: getMessage(\"melliCode\", options),\n });\n\nexport const zShenaseMelli = (options?: BaseOptions) =>\n z.string().refine((val) => isShenaseMelli(val), {\n message: getMessage(\"shenaseMelli\", options),\n });\n\nexport const zPassport = (options?: BaseOptions) =>\n z.string().refine((val) => isPassport(val), {\n message: getMessage(\"passport\", options),\n });\n\nexport const zCardNumber = (options?: BaseOptions) =>\n z.string().refine((val) => isCardNumber(val), {\n message: getMessage(\"cardNumber\", options),\n });\n\ninterface MobileOptions extends BaseOptions {\n strictZero?: boolean | \"optional\";\n}\n\nexport const zIranianMobile = (options?: MobileOptions) =>\n z\n .string()\n .refine(\n (val) => isIranianMobile(val, { strictZero: options?.strictZero }),\n { message: getMessage(\"mobile\", options) }\n );\n\nexport const zSheba = (options?: BaseOptions) =>\n z.string().refine((val) => isSheba(val), {\n message: getMessage(\"sheba\", options),\n });\n\nexport const zPostalCode = (options?: BaseOptions) =>\n z.string().refine((val) => isPostalCode(val), {\n message: getMessage(\"postalCode\", options),\n });\n\nexport const zLandline = (options?: BaseOptions) =>\n z.string().refine((val) => isLandline(val), {\n message: getMessage(\"landline\", options),\n });\n\nexport const zBillId = (options?: BaseOptions) =>\n z.string().refine((val) => isBillIdValid(val), {\n message: getMessage(\"billId\", options),\n });\n\nexport const zPaymentId = (options?: BaseOptions) =>\n z.string().refine((val) => val.length >= 6 && val.length <= 13, {\n message: getMessage(\"paymentId\", options),\n });\n\nexport const zPlateNumber = (options?: BaseOptions) =>\n z.string().refine((val) => isPlateNumber(val), {\n message: getMessage(\"plateNumber\", options),\n });\n\nexport const zJalaliDate = (options?: BaseOptions) =>\n z.string().refine((val) => isJalaliDate(val), {\n message: getMessage(\"date\", options),\n });\n\nexport const zFinancial = (options?: BaseOptions) =>\n z.string().refine((val) => isFinancialValue(val), {\n message: getMessage(\"financial\", options),\n });\n\nexport const zCrypto = (options?: CryptoOptions) =>\n z.string().refine((val) => isCryptoAddress(val, options?.ticker), {\n message: getMessage(\"crypto\", options),\n });\n\nexport const preprocessNumber = (schema: z.ZodTypeAny) =>\n z.preprocess((val) => {\n if (typeof val === \"string\") {\n return verifyAndNormalize(val);\n }\n return val;\n }, schema);\n\nexport {\n verifyAndNormalize,\n isMelliCode,\n isShenaseMelli,\n isPassport,\n isCardNumber,\n isSheba,\n getBankInfo,\n isIranianMobile,\n getMobileOperator,\n isPostalCode,\n isLandline,\n isPlateNumber,\n getPlateInfo,\n isBillIdValid,\n isPaymentIdValid,\n getBillInfo,\n isJalaliDate,\n getJalaliDateInfo,\n getFinancialInfo,\n isFinancialValue,\n isCryptoAddress,\n getCryptoInfo,\n type CryptoInfo,\n type JalaliDateInfo,\n type BankInfo,\n type OperatorInfo,\n type BillInfo,\n type PlateInfo,\n type BaseOptions,\n type FinancialInfo,\n};\n"]}