diff --git a/.eslintrc b/.eslintrc
deleted file mode 100644
index 4d99272..0000000
--- a/.eslintrc
+++ /dev/null
@@ -1,33 +0,0 @@
-{
-  "root": true,
-  "parser": "@typescript-eslint/parser",
-  "plugins": ["@typescript-eslint"],
-  "extends": [
-    "eslint:recommended",
-    "plugin:@typescript-eslint/recommended",
-    "plugin:prettier/recommended"
-  ],
-  "env": {
-    "node": true,
-    "jest": true,
-    "browser": true
-  },
-  "rules": {
-    // "valid-jsdoc": "error",
-    // "semi": ["error", "always"],
-    "no-undef": "error",
-    "no-var": "error",
-    "prefer-const": "error",
-    "no-const-assign": "error",
-    "one-var": ["error", "never"],
-    "sort-imports": "off",
-    "no-control-regex": "off"
-  },
-  "ignorePatterns": [
-    "node_modules/",
-    "dist/",
-    "lib_cjs/",
-    "lib_es/",
-    "exampless/"
-  ]
-}
diff --git a/.jsdoc.json b/.jsdoc.json
deleted file mode 100644
index 009df58..0000000
--- a/.jsdoc.json
+++ /dev/null
@@ -1,25 +0,0 @@
-{
-  "tags": {
-    "allowUnknownTags": true
-  },
-  "source": {
-    "include": "src/"
-  },
-  "plugins": [
-    "plugins/markdown"
-  ],
-  "opts": {
-    "template": "jsdoc/template",
-    "encoding": "utf8",
-    "destination": "docs/",
-    "recurse": true,
-    "verbose": true
-  },
-  "templates": {
-    "cleverLinks": false,
-    "monospaceLinks": false,
-    "default": {
-      "outputSourceFiles": false
-    }
-  }
-}
\ No newline at end of file
diff --git a/.prettierrc.js b/.prettierrc.js
deleted file mode 100644
index 675bcc0..0000000
--- a/.prettierrc.js
+++ /dev/null
@@ -1,4 +0,0 @@
-module.exports = {
-  semi: false,
-  arrowParens: "avoid",
-}
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 5cfa0cf..97d8bdd 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,6 +2,45 @@
 
 All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
 
+
+## v2.5.2
+
+[compare changes](https://git+https@github.com/quran-center/quran-meta/compare/v2.5.2-3...v2.5.2)
+
+## v2.5.2-3
+
+[compare changes](https://git+https@github.com/quran-center/quran-meta/compare/v2.5.2-2...v2.5.2-3)
+
+## v2.5.2-2
+
+[compare changes](https://git+https@github.com/quran-center/quran-meta/compare/v2.5.2-1...v2.5.2-2)
+
+## v2.5.2-0
+
+[compare changes](https://git+https@github.com/quran-center/quran-meta/compare/v2.4.15...v2.5.2-0)
+
+### 🚀 Enhancements
+
+- Switch from jest to vitest (1b37cff)
+- Full rewrite of the project with latest eslint and typescript
+- Impove tsdoc (7ff9baa)
+- Better eslint (53fa239)
+- Standard buid process using unbuild (2ab032e)
+- Full cleanup and addition of changelogen (457e5c9)
+
+### 🩹 Fixes
+
+- Add full unit test coverage (42d17c0)
+
+### 🏡 Chore
+
+- Update deps (fc4baee)
+
+### ❤️ Contributors
+
+- HG ([@husayt](http://github.com/husayt))
+
+
 ### [2.4.15](https://github.com/quran-center/quran-meta/compare/v2.4.13...v2.4.15) (2022-11-13)
 
 ### [2.4.13](https://github.com/quran-center/quran-meta/compare/v2.4.12...v2.4.13) (2022-11-13)
diff --git a/_config.yml b/_config.yml
deleted file mode 100644
index c419263..0000000
--- a/_config.yml
+++ /dev/null
@@ -1 +0,0 @@
-theme: jekyll-theme-cayman
\ No newline at end of file
diff --git a/build.config.ts b/build.config.ts
new file mode 100644
index 0000000..c049b81
--- /dev/null
+++ b/build.config.ts
@@ -0,0 +1,61 @@
+import { defineBuildConfig } from "unbuild"
+import pack from "./package.json"
+
+const banner = `/*! 
+ * Quran Meta library ${pack.version}
+ *
+ * Released under the MIT license
+ */
+`
+
+export default defineBuildConfig({
+  declaration: true,
+  rollup: {
+    emitCJS: true,
+    output: {
+      banner: banner
+    }
+  },
+
+  entries: [
+    "./src/index",
+    {
+      builder: "mkdist",
+      input: "./src/",
+      outDir: "./lib_es",
+      format: "esm"
+    },
+    {
+      input: "src/",
+      outDir: "lib_cjs/",
+      format: "cjs",
+      ext: "cjs",
+      declaration: false
+    }
+  ],
+  hooks: {
+    "rollup:options": (ctx, option) => {
+      option.output?.push(
+        {
+          entryFileNames: "quran-meta.js",
+          name: "quranMeta",
+          dir: "dist",
+          format: "umd",
+          banner: banner,
+          sourcemap: true
+        },
+        {
+          // input: "./src/index.ts",
+          entryFileNames: "quran-meta.min.js",
+          name: "quranMeta",
+          inlineDynamicImports: true,
+          dir: "dist",
+          format: "umd",
+          banner: banner,
+          minify: true,
+          compact: true
+        }
+      )
+    }
+  }
+})
diff --git a/config/banner.cjs b/config/banner.cjs
deleted file mode 100644
index 857cb6c..0000000
--- a/config/banner.cjs
+++ /dev/null
@@ -1,8 +0,0 @@
-const pack = require("../package.json")
-
-module.exports = `/*! 
- * Quran Meta library ${pack.version}
- *
- * Released under the MIT license
- */
-`
diff --git a/config/const.mjs b/config/const.mjs
deleted file mode 100644
index c68ae9f..0000000
--- a/config/const.mjs
+++ /dev/null
@@ -1,2 +0,0 @@
-export const SRC = "src"
-export const DIST_UNIVERSAL = "dist"
diff --git a/config/rollup/dist/es.mjs b/config/rollup/dist/es.mjs
deleted file mode 100644
index 8b0da1e..0000000
--- a/config/rollup/dist/es.mjs
+++ /dev/null
@@ -1,34 +0,0 @@
-import typescript from "@rollup/plugin-typescript"
-import { terser } from "rollup-plugin-terser"
-import banner from "../../banner.cjs"
-
-import { DIST_UNIVERSAL as outDir, SRC } from "../../const.mjs"
-
-export default {
-  input: `${SRC}/index.ts`,
-  plugins: [
-    typescript({      
-      removeComments:true,
-      // outDir: `./${outDir}`,
-      module: "ESNext", //"None", "CommonJS", "AMD", "System", "UMD", "ES6", "ES2015" or "ESNext"
-      target: "ESNext", //"ES3"  "ES5" "ES6"/"ES2015" "ES2016" "ES2017" "ES2018" "ES2019" "ES2020" "ESNext"
-    }),
-  ],
-  output: [{
-    file: `${outDir}/quran-meta.esm.browser.js`,
-    // dir: outDir,
-    format: "es",
-    name: "quranMeta",
-    // sourcemap: false,
-    banner: banner,
-  },
-  {
-    file: `${outDir}/quran-meta.esm.browser.min.js`,
-    // dir: outDir,
-    format: "es",
-    name: "quranMeta",
-    // sourcemap: false,
-    banner: banner,
-    plugins: [terser({  output: {comments:false}})],
-  },]
-}
diff --git a/config/rollup/dist/umd.mjs b/config/rollup/dist/umd.mjs
deleted file mode 100644
index fd5c046..0000000
--- a/config/rollup/dist/umd.mjs
+++ /dev/null
@@ -1,54 +0,0 @@
-import typescript from "@rollup/plugin-typescript"
-import { terser } from "rollup-plugin-terser"
-import banner from "../../banner.cjs"
-
-import { DIST_UNIVERSAL as outDir, SRC } from "../../const.mjs"
-
-export default {
-  input: `${SRC}/index.ts`,
-  plugins: [
-    typescript({
-      // declaration: true,
-      // declarationDir: `${outDir}`,
-      sourceMap: true,
-      removeComments:true,
-      module: "ES2015",//"None", "CommonJS", "AMD", "System", "UMD", "ES6", "ES2015" or "ESNext"
-      target: "ES5",//"ES3"  "ES5" "ES6"/"ES2015" "ES2016" "ES2017" "ES2018" "ES2019" "ES2020" "ESNext"
-    }),
-  ],
-  output: [
-    {
-      file: `${outDir}/quran-meta.js`,
-      // dir: `${outDir}`,
-      format: "umd",
-      name: "quranMeta",
-      sourcemap: true,
-      banner: banner,
-    },
-    {
-      file: `${outDir}/quran-meta.common.js`,
-      // dir: `${outDir}`,
-      format: "cjs",// amd,cjs,es,iife,umd,system
-      name: "quranMeta",
-      sourcemap: true,
-      banner: banner,
-    },
-     {
-      file: `${outDir}/quran-meta.esm.js`,
-      // dir: `${outDir}`,
-      format: "es",
-      name: "quranMeta",
-      sourcemap: true,
-      banner: banner,
-    },
-    {
-      file: `${outDir}/quran-meta.min.js`,
-      // dir:`${outDir}`,
-      format: "umd",
-      name: "quranMeta",
-      sourcemap: false,
-      banner: banner,
-      plugins: [terser({  output: {comments:false}})],
-    },    
-  ],
-}
diff --git a/dist/index.cjs b/dist/index.cjs
new file mode 100644
index 0000000..cacee1f
--- /dev/null
+++ b/dist/index.cjs
@@ -0,0 +1,2101 @@
+/*! 
+ * Quran Meta library 2.5.1
+ *
+ * Released under the MIT license
+ */
+
+'use strict';
+
+const meta = Object.freeze({
+  numAyas: 6236,
+  numSuras: 114,
+  numPages: 604,
+  numJuzs: 30,
+  manzilCount: 7
+});
+
+const SuraList = [
+  [-1, -1, -1, -1, "", false, -1],
+  [0, 7, 5, 1, "\u0627\u0644\u0641\u0627\u062A\u062D\u0629", true, 1],
+  [7, 286, 87, 40, "\u0627\u0644\u0628\u0642\u0631\u0629", false, 2],
+  [293, 200, 89, 20, "\u0622\u0644 \u0639\u0645\u0631\u0627\u0646", false, 50],
+  [493, 176, 92, 24, "\u0627\u0644\u0646\u0633\u0627\u0621", false, 77],
+  [669, 120, 112, 16, "\u0627\u0644\u0645\u0627\u0626\u062F\u0629", false, 107],
+  [789, 165, 55, 20, "\u0627\u0644\u0623\u0646\u0639\u0627\u0645", true, 128],
+  [954, 206, 39, 24, "\u0627\u0644\u0623\u0639\u0631\u0627\u0641", true, 151],
+  [1160, 75, 88, 10, "\u0627\u0644\u0623\u0646\u0641\u0627\u0644", false, 177],
+  [1235, 129, 113, 16, "\u0627\u0644\u062A\u0648\u0628\u0629", false, 187],
+  [1364, 109, 51, 11, "\u064A\u0648\u0646\u0633", true, 208],
+  [1473, 123, 52, 10, "\u0647\u0648\u062F", true, 222],
+  [1596, 111, 53, 12, "\u064A\u0648\u0633\u0641", true, 236],
+  [1707, 43, 96, 6, "\u0627\u0644\u0631\u0639\u062F", false, 249],
+  [1750, 52, 72, 7, "\u0627\u0628\u0631\u0627\u0647\u064A\u0645", true, 256],
+  [1802, 99, 54, 6, "\u0627\u0644\u062D\u062C\u0631", true, 262],
+  [1901, 128, 70, 16, "\u0627\u0644\u0646\u062D\u0644", true, 268],
+  [2029, 111, 50, 12, "\u0627\u0644\u0625\u0633\u0631\u0627\u0621", true, 282],
+  [2140, 110, 69, 12, "\u0627\u0644\u0643\u0647\u0641", true, 294],
+  [2250, 98, 44, 6, "\u0645\u0631\u064A\u0645", true, 305],
+  [2348, 135, 45, 8, "\u0637\u0647", true, 313],
+  [2483, 112, 73, 7, "\u0627\u0644\u0623\u0646\u0628\u064A\u0627\u0621", true, 322],
+  [2595, 78, 103, 10, "\u0627\u0644\u062D\u062C", false, 332],
+  [2673, 118, 74, 6, "\u0627\u0644\u0645\u0624\u0645\u0646\u0648\u0646", true, 342],
+  [2791, 64, 102, 9, "\u0627\u0644\u0646\u0648\u0631", false, 350],
+  [2855, 77, 42, 6, "\u0627\u0644\u0641\u0631\u0642\u0627\u0646", true, 360],
+  [2932, 227, 47, 11, "\u0627\u0644\u0634\u0639\u0631\u0627\u0621", true, 367],
+  [3159, 93, 48, 7, "\u0627\u0644\u0646\u0645\u0644", true, 377],
+  [3252, 88, 49, 8, "\u0627\u0644\u0642\u0635\u0635", true, 386],
+  [3340, 69, 85, 7, "\u0627\u0644\u0639\u0646\u0643\u0628\u0648\u062A", true, 397],
+  [3409, 60, 84, 6, "\u0627\u0644\u0631\u0648\u0645", true, 405],
+  [3469, 34, 57, 3, "\u0644\u0642\u0645\u0627\u0646", true, 411],
+  [3503, 30, 75, 3, "\u0627\u0644\u0633\u062C\u062F\u0629", true, 415],
+  [3533, 73, 90, 9, "\u0627\u0644\u0623\u062D\u0632\u0627\u0628", false, 418],
+  [3606, 54, 58, 6, "\u0633\u0628\u0625", true, 428],
+  [3660, 45, 43, 5, "\u0641\u0627\u0637\u0631", true, 435],
+  [3705, 83, 41, 5, "\u064A\u0633", true, 441],
+  [3788, 182, 56, 5, "\u0627\u0644\u0635\u0627\u0641\u0627\u062A", true, 446],
+  [3970, 88, 38, 5, "\u0635", true, 453],
+  [4058, 75, 59, 8, "\u0627\u0644\u0632\u0645\u0631", true, 459],
+  [4133, 85, 60, 9, "\u063A\u0627\u0641\u0631", true, 468],
+  [4218, 54, 61, 6, "\u0641\u0635\u0644\u062A", true, 477],
+  [4272, 53, 62, 5, "\u0627\u0644\u0634\u0648\u0631\u0649", true, 483],
+  [4325, 89, 63, 7, "\u0627\u0644\u0632\u062E\u0631\u0641", true, 490],
+  [4414, 59, 64, 3, "\u0627\u0644\u062F\u062E\u0627\u0646", true, 496],
+  [4473, 37, 65, 4, "\u0627\u0644\u062C\u0627\u062B\u064A\u0629", true, 499],
+  [4510, 35, 66, 4, "\u0627\u0644\u0623\u062D\u0642\u0627\u0641", true, 503],
+  [4545, 38, 95, 4, "\u0645\u062D\u0645\u062F", false, 507],
+  [4583, 29, 111, 4, "\u0627\u0644\u0641\u062A\u062D", false, 511],
+  [4612, 18, 106, 2, "\u0627\u0644\u062D\u062C\u0631\u0627\u062A", false, 516],
+  [4630, 45, 34, 3, "\u0642", true, 518],
+  [4675, 60, 67, 3, "\u0627\u0644\u0630\u0627\u0631\u064A\u0627\u062A", true, 521],
+  [4735, 49, 76, 2, "\u0627\u0644\u0637\u0648\u0631", true, 524],
+  [4784, 62, 23, 3, "\u0627\u0644\u0646\u062C\u0645", true, 526],
+  [4846, 55, 37, 3, "\u0627\u0644\u0642\u0645\u0631", true, 529],
+  [4901, 78, 97, 3, "\u0627\u0644\u0631\u062D\u0645\u0646", false, 532],
+  [4979, 96, 46, 3, "\u0627\u0644\u0648\u0627\u0642\u0639\u0629", true, 535],
+  [5075, 29, 94, 4, "\u0627\u0644\u062D\u062F\u064A\u062F", false, 538],
+  [5104, 22, 105, 3, "\u0627\u0644\u0645\u062C\u0627\u062F\u0644\u0629", false, 542],
+  [5126, 24, 101, 3, "\u0627\u0644\u062D\u0634\u0631", false, 546],
+  [5150, 13, 91, 2, "\u0627\u0644\u0645\u0645\u062A\u062D\u0646\u0629", false, 549],
+  [5163, 14, 109, 2, "\u0627\u0644\u0635\u0641", false, 552],
+  [5177, 11, 110, 2, "\u0627\u0644\u062C\u0645\u0639\u0629", false, 553],
+  [5188, 11, 104, 2, "\u0627\u0644\u0645\u0646\u0627\u0641\u0642\u0648\u0646", false, 555],
+  [5199, 18, 108, 2, "\u0627\u0644\u062A\u063A\u0627\u0628\u0646", false, 556],
+  [5217, 12, 99, 2, "\u0627\u0644\u0637\u0644\u0627\u0642", false, 558],
+  [5229, 12, 107, 2, "\u0627\u0644\u062A\u062D\u0631\u064A\u0645", false, 560],
+  [5241, 30, 77, 2, "\u0627\u0644\u0645\u0644\u0643", true, 562],
+  [5271, 52, 2, 2, "\u0627\u0644\u0642\u0644\u0645", true, 565],
+  [5323, 52, 78, 2, "\u0627\u0644\u062D\u0627\u0642\u0629", true, 567],
+  [5375, 44, 79, 2, "\u0627\u0644\u0645\u0639\u0627\u0631\u062C", true, 569],
+  [5419, 28, 71, 2, "\u0646\u0648\u062D", true, 571],
+  [5447, 28, 40, 2, "\u0627\u0644\u062C\u0646", true, 572],
+  [5475, 20, 3, 2, "\u0627\u0644\u0645\u0632\u0645\u0644", true, 574],
+  [5495, 56, 4, 2, "\u0627\u0644\u0645\u062F\u062B\u0631", true, 576],
+  [5551, 40, 31, 2, "\u0627\u0644\u0642\u064A\u0627\u0645\u0629", true, 578],
+  [5591, 31, 98, 2, "\u0627\u0644\u0627\u0646\u0633\u0627\u0646", false, 579],
+  [5622, 50, 33, 2, "\u0627\u0644\u0645\u0631\u0633\u0644\u0627\u062A", true, 581],
+  [5672, 40, 80, 2, "\u0627\u0644\u0646\u0628\u0625", true, 582],
+  [5712, 46, 81, 2, "\u0627\u0644\u0646\u0627\u0632\u0639\u0627\u062A", true, 584],
+  [5758, 42, 24, 1, "\u0639\u0628\u0633", true, 585],
+  [5800, 29, 7, 1, "\u0627\u0644\u062A\u0643\u0648\u064A\u0631", true, 586],
+  [5829, 19, 82, 1, "\u0627\u0644\u0625\u0646\u0641\u0637\u0627\u0631", true, 587],
+  [5848, 36, 86, 1, "\u0627\u0644\u0645\u0637\u0641\u0641\u064A\u0646", true, 588],
+  [5884, 25, 83, 1, "\u0627\u0644\u0625\u0646\u0634\u0642\u0627\u0642", true, 589],
+  [5909, 22, 27, 1, "\u0627\u0644\u0628\u0631\u0648\u062C", true, 590],
+  [5931, 17, 36, 1, "\u0627\u0644\u0637\u0627\u0631\u0642", true, 591],
+  [5948, 19, 8, 1, "\u0627\u0644\u0623\u0639\u0644\u0649", true, 592],
+  [5967, 26, 68, 1, "\u0627\u0644\u063A\u0627\u0634\u064A\u0629", true, 592],
+  [5993, 30, 10, 1, "\u0627\u0644\u0641\u062C\u0631", true, 593],
+  [6023, 20, 35, 1, "\u0627\u0644\u0628\u0644\u062F", true, 594],
+  [6043, 15, 26, 1, "\u0627\u0644\u0634\u0645\u0633", true, 595],
+  [6058, 21, 9, 1, "\u0627\u0644\u0644\u064A\u0644", true, 596],
+  [6079, 11, 11, 1, "\u0627\u0644\u0636\u062D\u0649", true, 596],
+  [6090, 8, 12, 1, "\u0627\u0644\u0634\u0631\u062D", true, 596],
+  [6098, 8, 28, 1, "\u0627\u0644\u062A\u064A\u0646", true, 597],
+  [6106, 19, 1, 1, "\u0627\u0644\u0639\u0644\u0642", true, 597],
+  [6125, 5, 25, 1, "\u0627\u0644\u0642\u062F\u0631", true, 598],
+  [6130, 8, 100, 1, "\u0627\u0644\u0628\u064A\u0646\u0629", false, 599],
+  [6138, 8, 93, 1, "\u0627\u0644\u0632\u0644\u0632\u0644\u0629", false, 599],
+  [6146, 11, 14, 1, "\u0627\u0644\u0639\u0627\u062F\u064A\u0627\u062A", true, 600],
+  [6157, 11, 30, 1, "\u0627\u0644\u0642\u0627\u0631\u0639\u0629", true, 600],
+  [6168, 8, 16, 1, "\u0627\u0644\u062A\u0643\u0627\u062B\u0631", true, 600],
+  [6176, 3, 13, 1, "\u0627\u0644\u0639\u0635\u0631", true, 601],
+  [6179, 9, 32, 1, "\u0627\u0644\u0647\u0645\u0632\u0629", true, 601],
+  [6188, 5, 19, 1, "\u0627\u0644\u0641\u064A\u0644", true, 601],
+  [6193, 4, 29, 1, "\u0642\u0631\u064A\u0634", true, 602],
+  [6197, 7, 17, 1, "\u0627\u0644\u0645\u0627\u0639\u0648\u0646", true, 602],
+  [6204, 3, 15, 1, "\u0627\u0644\u0643\u0648\u062B\u0631", true, 602],
+  [6207, 6, 18, 1, "\u0627\u0644\u0643\u0627\u0641\u0631\u0648\u0646", true, 603],
+  [6213, 3, 114, 1, "\u0627\u0644\u0646\u0635\u0631", false, 603],
+  [6216, 5, 6, 1, "\u0627\u0644\u0645\u0633\u062F", true, 603],
+  [6221, 4, 22, 1, "\u0627\u0644\u0625\u062E\u0644\u0627\u0635", true, 604],
+  [6225, 5, 20, 1, "\u0627\u0644\u0641\u0644\u0642", true, 604],
+  [6230, 6, 21, 1, "\u0627\u0644\u0646\u0627\u0633", true, 604],
+  [6236, 0, -1, -1, "", false, -1]
+];
+
+function getSurahMeta(surah) {
+  checkValidSurah(surah);
+  return SuraList[surah];
+}
+
+function getAyaCountinSura(surah) {
+  return getSurahMeta(surah)[1];
+}
+
+function checkValidSurah(surah, checkOnly = false) {
+  if (typeof surah !== "number" || !Number.isInteger(surah)) {
+    if (checkOnly) return false;
+    throw new TypeError("Ayah ID must be an integer");
+  }
+  if (surah < 1 || surah > meta.numSuras) {
+    if (checkOnly) return false;
+    throw new RangeError("Surah must be between 1 and " + meta.numSuras);
+  }
+  return true;
+}
+function checkValidSurahAyah(surah, ayah, checkOnly = false) {
+  if (!checkValidSurah(surah, checkOnly)) return false;
+  if (ayah < 1 || ayah > getAyaCountinSura(surah)) {
+    if (checkOnly) return false;
+    throw new RangeError("Ayah must be between 1 and " + getAyaCountinSura(surah));
+  }
+  return true;
+}
+function checkValidAyahId(ayahId, checkOnly = false) {
+  if (typeof ayahId !== "number" || !Number.isInteger(ayahId)) {
+    if (checkOnly) return false;
+    throw new TypeError("Ayah ID must be an integer");
+  }
+  if (ayahId < 1 || ayahId > meta.numAyas) {
+    if (checkOnly) return false;
+    throw new RangeError("Ayah ID must be between 1 and " + meta.numAyas);
+  }
+  return true;
+}
+
+function ayaStringSplitter(str) {
+  const [surahStr, ayahsStr] = str.trim().split(":");
+  const surah = parseInt(surahStr, 10);
+  if (isNaN(surah)) {
+    throw "Error in surah format " + str;
+  }
+  if (!ayahsStr) {
+    throw "Error in data " + str;
+  }
+  let ayahs;
+  if (ayahsStr.includes("-")) {
+    ayahs = ayahsStr.split("-").map((a) => {
+      const ayah = parseInt(a, 10);
+      if (isNaN(ayah) || ayah === 0) {
+        throw "Error in ayah " + a;
+      }
+      return ayah;
+    });
+    if (ayahs[0] > ayahs[1]) throw "Error in ayah range " + str;
+  } else {
+    ayahs = parseInt(ayahsStr, 10);
+    if (isNaN(ayahs) || ayahs === 0) {
+      throw "Error in data " + str;
+    }
+    checkValidSurahAyah(surah, ayahs);
+  }
+  return [surah, ayahs];
+}
+
+function findAyaidBySurah(surah, ayah) {
+  checkValidSurahAyah(surah, ayah);
+  const [startAyahId] = getSurahMeta(surah);
+  return startAyahId + ayah;
+}
+
+const JuzList = [
+  0,
+  1,
+  149,
+  260,
+  386,
+  517,
+  641,
+  751,
+  900,
+  1042,
+  1201,
+  1328,
+  1479,
+  1649,
+  1803,
+  2030,
+  2215,
+  2484,
+  2674,
+  2876,
+  3215,
+  3386,
+  3564,
+  3733,
+  4090,
+  4265,
+  4511,
+  4706,
+  5105,
+  5242,
+  5673,
+  6237
+];
+
+function findJuzByAyaid(ayaId) {
+  checkValidAyahId(ayaId);
+  return JuzList.findIndex((x) => x > ayaId) - 1;
+}
+
+function findJuz(surah, ayah = 1, ayahMode = false) {
+  const ayahId = ayahMode ? ayah : checkValidSurahAyah(surah, ayah) && findAyaidBySurah(surah, ayah);
+  return findJuzByAyaid(ayahId);
+}
+
+function findSurahByAyaid(ayaId) {
+  checkValidAyahId(ayaId);
+  const suraNum = SuraList.findIndex((x) => x[0] >= ayaId) - 1;
+  return [suraNum, ayaId - SuraList[suraNum][0]];
+}
+
+function findJuzAndShift(surah, ayah, ayahMode = false) {
+  const ayahId = ayahMode ? checkValidAyahId(ayah) && ayah : checkValidSurah(surah) && findAyaidBySurah(surah, ayah);
+  const juz = findJuzByAyaid(ayahId);
+  const leftAyahId = JuzList[juz];
+  if (ayahMode) [surah] = findSurahByAyaid(ayahId);
+  const [surahStartAyahId] = SuraList[surah];
+  return {
+    juz,
+    ayahsBetweenJuzSurah: surahStartAyahId - leftAyahId + 1,
+    leftAyahId
+  };
+}
+
+const HizbQuarterList = [
+  0,
+  1,
+  33,
+  51,
+  67,
+  82,
+  99,
+  113,
+  131,
+  149,
+  165,
+  184,
+  196,
+  210,
+  226,
+  240,
+  250,
+  260,
+  270,
+  279,
+  290,
+  308,
+  326,
+  345,
+  368,
+  386,
+  406,
+  426,
+  446,
+  464,
+  479,
+  494,
+  505,
+  517,
+  529,
+  551,
+  567,
+  581,
+  593,
+  607,
+  628,
+  641,
+  656,
+  670,
+  681,
+  696,
+  710,
+  720,
+  736,
+  751,
+  766,
+  778,
+  802,
+  825,
+  848,
+  863,
+  884,
+  900,
+  916,
+  930,
+  940,
+  955,
+  985,
+  1001,
+  1019,
+  1042,
+  1071,
+  1096,
+  1110,
+  1125,
+  1143,
+  1161,
+  1182,
+  1201,
+  1221,
+  1236,
+  1254,
+  1269,
+  1281,
+  1295,
+  1310,
+  1328,
+  1346,
+  1357,
+  1375,
+  1390,
+  1417,
+  1435,
+  1454,
+  1479,
+  1497,
+  1514,
+  1534,
+  1557,
+  1581,
+  1603,
+  1626,
+  1649,
+  1673,
+  1697,
+  1712,
+  1726,
+  1742,
+  1760,
+  1778,
+  1803,
+  1852,
+  1902,
+  1931,
+  1952,
+  1976,
+  1991,
+  2012,
+  2030,
+  2052,
+  2079,
+  2099,
+  2128,
+  2157,
+  2172,
+  2191,
+  2215,
+  2239,
+  2272,
+  2309,
+  2349,
+  2403,
+  2431,
+  2459,
+  2484,
+  2512,
+  2534,
+  2566,
+  2596,
+  2614,
+  2633,
+  2655,
+  2674,
+  2709,
+  2748,
+  2792,
+  2812,
+  2826,
+  2844,
+  2856,
+  2876,
+  2908,
+  2933,
+  2984,
+  3043,
+  3113,
+  3160,
+  3186,
+  3215,
+  3241,
+  3264,
+  3281,
+  3303,
+  3328,
+  3341,
+  3366,
+  3386,
+  3410,
+  3440,
+  3463,
+  3491,
+  3514,
+  3534,
+  3551,
+  3564,
+  3584,
+  3593,
+  3616,
+  3630,
+  3652,
+  3675,
+  3701,
+  3733,
+  3765,
+  3810,
+  3871,
+  3933,
+  3991,
+  4022,
+  4066,
+  4090,
+  4111,
+  4134,
+  4154,
+  4174,
+  4199,
+  4227,
+  4243,
+  4265,
+  4285,
+  4299,
+  4323,
+  4349,
+  4382,
+  4431,
+  4485,
+  4511,
+  4531,
+  4555,
+  4578,
+  4601,
+  4613,
+  4626,
+  4657,
+  4706,
+  4759,
+  4810,
+  4855,
+  4902,
+  4980,
+  5054,
+  5091,
+  5105,
+  5118,
+  5137,
+  5157,
+  5178,
+  5192,
+  5218,
+  5230,
+  5242,
+  5272,
+  5324,
+  5394,
+  5448,
+  5495,
+  5552,
+  5610,
+  5673,
+  5759,
+  5830,
+  5885,
+  5949,
+  6024,
+  6091,
+  6155,
+  6237
+];
+
+function findJuzHizbByAyaid(ayaId) {
+  checkValidAyahId(ayaId);
+  const juz = findJuzByAyaid(ayaId);
+  const quarterIndex = HizbQuarterList.findIndex((x) => x > ayaId) - 1;
+  const hizb = quarterIndex % 8 || 8;
+  return { juz, hizb, id: quarterIndex };
+}
+
+function findJuzHizb(surah, ayah = 1, ayahMode = false) {
+  const ayahId = ayahMode ? ayah : checkValidSurah(surah) && findAyaidBySurah(surah, ayah);
+  return findJuzHizbByAyaid(ayahId);
+}
+
+function findJuzMetaBySurah(surah, ayah = 1) {
+  const {
+    juz: leftjuz,
+    ayahsBetweenJuzSurah,
+    leftAyahId
+  } = findJuzAndShift(surah, ayah);
+  let rightJuz = leftjuz;
+  while (rightJuz < meta.numJuzs && findSurahByAyaid(JuzList[rightJuz + 1])[0] === surah) {
+    rightJuz++;
+  }
+  return {
+    leftjuz,
+    ayahsBetweenJuzSurah,
+    rightJuz,
+    leftAyahId,
+    rightAyahId: JuzList[rightJuz + 1]
+  };
+}
+
+const PageList = [
+  0,
+  1,
+  8,
+  13,
+  24,
+  32,
+  37,
+  45,
+  56,
+  65,
+  69,
+  77,
+  84,
+  91,
+  96,
+  101,
+  109,
+  113,
+  120,
+  127,
+  134,
+  142,
+  149,
+  153,
+  161,
+  171,
+  177,
+  184,
+  189,
+  194,
+  198,
+  204,
+  210,
+  218,
+  223,
+  227,
+  232,
+  238,
+  241,
+  245,
+  253,
+  256,
+  260,
+  264,
+  267,
+  272,
+  277,
+  282,
+  289,
+  290,
+  294,
+  303,
+  309,
+  316,
+  323,
+  331,
+  339,
+  346,
+  355,
+  364,
+  371,
+  377,
+  385,
+  394,
+  402,
+  409,
+  415,
+  426,
+  434,
+  442,
+  447,
+  451,
+  459,
+  467,
+  474,
+  480,
+  488,
+  494,
+  500,
+  505,
+  508,
+  513,
+  517,
+  520,
+  527,
+  531,
+  538,
+  545,
+  553,
+  559,
+  568,
+  573,
+  580,
+  585,
+  588,
+  595,
+  599,
+  607,
+  615,
+  621,
+  628,
+  634,
+  641,
+  648,
+  656,
+  664,
+  669,
+  672,
+  675,
+  679,
+  683,
+  687,
+  693,
+  701,
+  706,
+  711,
+  715,
+  720,
+  727,
+  734,
+  740,
+  746,
+  752,
+  759,
+  765,
+  773,
+  778,
+  783,
+  790,
+  798,
+  808,
+  817,
+  825,
+  834,
+  842,
+  849,
+  858,
+  863,
+  871,
+  880,
+  884,
+  891,
+  900,
+  908,
+  914,
+  921,
+  927,
+  932,
+  936,
+  941,
+  947,
+  955,
+  966,
+  977,
+  985,
+  992,
+  998,
+  1006,
+  1012,
+  1022,
+  1028,
+  1036,
+  1042,
+  1050,
+  1059,
+  1075,
+  1085,
+  1092,
+  1098,
+  1104,
+  1110,
+  1114,
+  1118,
+  1125,
+  1133,
+  1142,
+  1150,
+  1161,
+  1169,
+  1177,
+  1186,
+  1194,
+  1201,
+  1206,
+  1213,
+  1222,
+  1230,
+  1236,
+  1242,
+  1249,
+  1256,
+  1262,
+  1267,
+  1272,
+  1276,
+  1283,
+  1290,
+  1297,
+  1304,
+  1308,
+  1315,
+  1322,
+  1329,
+  1335,
+  1342,
+  1347,
+  1353,
+  1358,
+  1365,
+  1371,
+  1379,
+  1385,
+  1390,
+  1398,
+  1407,
+  1418,
+  1426,
+  1435,
+  1443,
+  1453,
+  1462,
+  1471,
+  1479,
+  1486,
+  1493,
+  1502,
+  1511,
+  1519,
+  1527,
+  1536,
+  1545,
+  1555,
+  1562,
+  1571,
+  1582,
+  1591,
+  1601,
+  1611,
+  1619,
+  1627,
+  1634,
+  1640,
+  1649,
+  1660,
+  1666,
+  1675,
+  1683,
+  1692,
+  1700,
+  1708,
+  1713,
+  1721,
+  1726,
+  1736,
+  1742,
+  1750,
+  1756,
+  1761,
+  1769,
+  1775,
+  1784,
+  1793,
+  1803,
+  1818,
+  1834,
+  1854,
+  1873,
+  1893,
+  1908,
+  1916,
+  1928,
+  1936,
+  1944,
+  1956,
+  1966,
+  1974,
+  1981,
+  1989,
+  1995,
+  2004,
+  2012,
+  2020,
+  2030,
+  2037,
+  2047,
+  2057,
+  2068,
+  2079,
+  2088,
+  2096,
+  2105,
+  2116,
+  2126,
+  2134,
+  2145,
+  2156,
+  2161,
+  2168,
+  2175,
+  2186,
+  2194,
+  2202,
+  2215,
+  2224,
+  2238,
+  2251,
+  2262,
+  2276,
+  2289,
+  2302,
+  2315,
+  2327,
+  2346,
+  2361,
+  2386,
+  2400,
+  2413,
+  2425,
+  2436,
+  2447,
+  2462,
+  2474,
+  2484,
+  2494,
+  2508,
+  2519,
+  2528,
+  2541,
+  2556,
+  2565,
+  2574,
+  2585,
+  2596,
+  2601,
+  2611,
+  2619,
+  2626,
+  2634,
+  2642,
+  2651,
+  2660,
+  2668,
+  2674,
+  2691,
+  2701,
+  2716,
+  2733,
+  2748,
+  2763,
+  2778,
+  2792,
+  2802,
+  2812,
+  2819,
+  2823,
+  2828,
+  2835,
+  2845,
+  2850,
+  2853,
+  2858,
+  2867,
+  2876,
+  2888,
+  2899,
+  2911,
+  2923,
+  2933,
+  2952,
+  2972,
+  2993,
+  3016,
+  3044,
+  3069,
+  3092,
+  3116,
+  3139,
+  3160,
+  3173,
+  3182,
+  3195,
+  3204,
+  3215,
+  3223,
+  3236,
+  3248,
+  3258,
+  3266,
+  3274,
+  3281,
+  3288,
+  3296,
+  3303,
+  3312,
+  3323,
+  3330,
+  3337,
+  3347,
+  3355,
+  3364,
+  3371,
+  3379,
+  3386,
+  3393,
+  3404,
+  3415,
+  3425,
+  3434,
+  3442,
+  3451,
+  3460,
+  3470,
+  3481,
+  3489,
+  3498,
+  3504,
+  3515,
+  3524,
+  3534,
+  3540,
+  3549,
+  3556,
+  3564,
+  3569,
+  3577,
+  3584,
+  3588,
+  3596,
+  3607,
+  3614,
+  3621,
+  3629,
+  3638,
+  3646,
+  3655,
+  3664,
+  3672,
+  3679,
+  3691,
+  3699,
+  3705,
+  3718,
+  3733,
+  3746,
+  3760,
+  3776,
+  3789,
+  3813,
+  3840,
+  3865,
+  3891,
+  3915,
+  3942,
+  3971,
+  3987,
+  3997,
+  4013,
+  4032,
+  4054,
+  4064,
+  4069,
+  4080,
+  4090,
+  4099,
+  4106,
+  4115,
+  4126,
+  4133,
+  4141,
+  4150,
+  4159,
+  4167,
+  4174,
+  4183,
+  4192,
+  4200,
+  4211,
+  4219,
+  4230,
+  4239,
+  4248,
+  4257,
+  4265,
+  4273,
+  4283,
+  4288,
+  4295,
+  4304,
+  4317,
+  4324,
+  4336,
+  4348,
+  4359,
+  4373,
+  4386,
+  4399,
+  4415,
+  4433,
+  4454,
+  4474,
+  4487,
+  4496,
+  4506,
+  4516,
+  4525,
+  4531,
+  4539,
+  4546,
+  4557,
+  4565,
+  4575,
+  4584,
+  4593,
+  4599,
+  4607,
+  4612,
+  4617,
+  4624,
+  4631,
+  4646,
+  4666,
+  4682,
+  4706,
+  4727,
+  4750,
+  4767,
+  4785,
+  4811,
+  4829,
+  4853,
+  4874,
+  4896,
+  4918,
+  4942,
+  4969,
+  4996,
+  5030,
+  5056,
+  5079,
+  5087,
+  5094,
+  5100,
+  5105,
+  5111,
+  5116,
+  5126,
+  5130,
+  5136,
+  5143,
+  5151,
+  5156,
+  5162,
+  5169,
+  5178,
+  5186,
+  5193,
+  5200,
+  5209,
+  5218,
+  5223,
+  5230,
+  5237,
+  5242,
+  5254,
+  5268,
+  5287,
+  5314,
+  5332,
+  5358,
+  5386,
+  5415,
+  5430,
+  5448,
+  5461,
+  5476,
+  5495,
+  5513,
+  5543,
+  5571,
+  5597,
+  5617,
+  5642,
+  5673,
+  5703,
+  5728,
+  5759,
+  5801,
+  5830,
+  5855,
+  5883,
+  5910,
+  5932,
+  5964,
+  5994,
+  6017,
+  6044,
+  6073,
+  6099,
+  6126,
+  6138,
+  6156,
+  6177,
+  6194,
+  6208,
+  6222,
+  6237
+];
+
+function findPage(surah, ayah, ayahMode = false) {
+  const ayahId = ayahMode ? checkValidAyahId(ayah) && ayah : checkValidSurah(surah) && findAyaidBySurah(surah, ayah);
+  return PageList.findIndex((x) => x > ayahId) - 1;
+}
+
+function findRangeAroundAyah(surah, ayah, mode, ayahMode = false) {
+  const ayahId = ayahMode ? ayah : checkValidSurah(surah) && findAyaidBySurah(surah, ayah);
+  switch (mode) {
+    case "juz": {
+      const juz = findJuzByAyaid(ayahId);
+      return [JuzList[juz], JuzList[juz + 1] - 1];
+    }
+    case "surah": {
+      return [SuraList[surah][0] + 1, SuraList[surah + 1][0]];
+    }
+    case "ayah": {
+      return [ayahId, ayahId];
+    }
+    case "page": {
+      const page = findPage(-1, ayahId, true);
+      return [PageList[page], PageList[page + 1] - 1];
+    }
+    case "all":
+    default:
+      return [1, meta.numAyas];
+  }
+}
+
+function binarySearch(ar, el, compare_fn = (a, b) => a - b) {
+  let m = 0;
+  let n = ar.length - 1;
+  while (m <= n) {
+    const k = n + m >> 1;
+    const cmp = compare_fn(el, ar[k]);
+    if (cmp > 0) {
+      m = k + 1;
+    } else if (cmp < 0) {
+      n = k - 1;
+    } else {
+      return k;
+    }
+  }
+  return -m - 1;
+}
+
+function isAyahJuzFirst(surah, ayah, ayahMode = false) {
+  const ayahId = ayahMode ? checkValidAyahId(ayah) && ayah : checkValidSurah(surah) && findAyaidBySurah(surah, ayah);
+  return binarySearch(JuzList, ayahId);
+}
+
+function isAyahPageFirst(surah, ayah, ayahMode = false) {
+  const ayahId = ayahMode ? checkValidAyahId(ayah) && ayah : checkValidSurah(surah) && findAyaidBySurah(surah, ayah);
+  return binarySearch(PageList, ayahId);
+}
+
+const ManzilList = [
+  0,
+  1,
+  670,
+  1365,
+  2030,
+  2933,
+  3789,
+  4631,
+  6237
+];
+
+const RukuList = [
+  0,
+  1,
+  8,
+  15,
+  28,
+  37,
+  47,
+  54,
+  67,
+  69,
+  79,
+  90,
+  94,
+  104,
+  111,
+  120,
+  129,
+  137,
+  149,
+  155,
+  160,
+  171,
+  175,
+  184,
+  190,
+  196,
+  204,
+  218,
+  224,
+  229,
+  236,
+  239,
+  243,
+  250,
+  256,
+  261,
+  265,
+  268,
+  274,
+  281,
+  289,
+  291,
+  294,
+  303,
+  314,
+  324,
+  335,
+  348,
+  357,
+  365,
+  374,
+  385,
+  395,
+  403,
+  414,
+  423,
+  437,
+  442,
+  449,
+  465,
+  474,
+  483,
+  494,
+  504,
+  508,
+  516,
+  519,
+  527,
+  536,
+  544,
+  553,
+  564,
+  570,
+  581,
+  585,
+  590,
+  594,
+  598,
+  606,
+  609,
+  620,
+  628,
+  635,
+  646,
+  656,
+  665,
+  670,
+  675,
+  681,
+  689,
+  696,
+  704,
+  713,
+  720,
+  726,
+  736,
+  747,
+  756,
+  763,
+  770,
+  778,
+  785,
+  790,
+  800,
+  810,
+  820,
+  831,
+  840,
+  845,
+  850,
+  860,
+  872,
+  880,
+  884,
+  890,
+  900,
+  911,
+  919,
+  930,
+  934,
+  940,
+  944,
+  955,
+  965,
+  980,
+  986,
+  994,
+  1002,
+  1008,
+  1013,
+  1019,
+  1027,
+  1039,
+  1048,
+  1054,
+  1063,
+  1081,
+  1084,
+  1096,
+  1102,
+  1106,
+  1112,
+  1117,
+  1126,
+  1136,
+  1143,
+  1161,
+  1171,
+  1180,
+  1189,
+  1198,
+  1205,
+  1209,
+  1219,
+  1225,
+  1230,
+  1236,
+  1242,
+  1252,
+  1260,
+  1265,
+  1273,
+  1278,
+  1295,
+  1302,
+  1308,
+  1316,
+  1325,
+  1335,
+  1346,
+  1354,
+  1358,
+  1365,
+  1375,
+  1385,
+  1395,
+  1405,
+  1418,
+  1425,
+  1435,
+  1447,
+  1457,
+  1468,
+  1474,
+  1482,
+  1498,
+  1509,
+  1523,
+  1534,
+  1542,
+  1557,
+  1569,
+  1583,
+  1597,
+  1603,
+  1617,
+  1626,
+  1632,
+  1639,
+  1646,
+  1654,
+  1665,
+  1676,
+  1690,
+  1701,
+  1708,
+  1715,
+  1726,
+  1734,
+  1739,
+  1745,
+  1751,
+  1757,
+  1763,
+  1772,
+  1778,
+  1785,
+  1792,
+  1803,
+  1818,
+  1828,
+  1847,
+  1863,
+  1882,
+  1902,
+  1911,
+  1923,
+  1927,
+  1936,
+  1942,
+  1952,
+  1962,
+  1967,
+  1972,
+  1978,
+  1985,
+  1991,
+  2002,
+  2012,
+  2021,
+  2030,
+  2040,
+  2052,
+  2060,
+  2070,
+  2082,
+  2090,
+  2100,
+  2107,
+  2114,
+  2123,
+  2130,
+  2141,
+  2153,
+  2158,
+  2163,
+  2172,
+  2185,
+  2190,
+  2194,
+  2200,
+  2211,
+  2223,
+  2242,
+  2251,
+  2266,
+  2291,
+  2301,
+  2316,
+  2333,
+  2349,
+  2373,
+  2403,
+  2425,
+  2438,
+  2453,
+  2464,
+  2477,
+  2484,
+  2494,
+  2513,
+  2525,
+  2534,
+  2559,
+  2577,
+  2596,
+  2606,
+  2618,
+  2621,
+  2629,
+  2634,
+  2644,
+  2653,
+  2660,
+  2668,
+  2674,
+  2696,
+  2706,
+  2724,
+  2751,
+  2766,
+  2792,
+  2802,
+  2812,
+  2818,
+  2826,
+  2832,
+  2842,
+  2849,
+  2853,
+  2856,
+  2865,
+  2876,
+  2890,
+  2900,
+  2916,
+  2933,
+  2942,
+  2966,
+  2985,
+  3002,
+  3037,
+  3055,
+  3073,
+  3092,
+  3108,
+  3124,
+  3160,
+  3174,
+  3191,
+  3204,
+  3218,
+  3226,
+  3242,
+  3253,
+  3266,
+  3274,
+  3281,
+  3295,
+  3303,
+  3313,
+  3328,
+  3341,
+  3354,
+  3363,
+  3371,
+  3385,
+  3392,
+  3404,
+  3410,
+  3420,
+  3429,
+  3437,
+  3450,
+  3463,
+  3470,
+  3481,
+  3489,
+  3504,
+  3515,
+  3526,
+  3534,
+  3542,
+  3554,
+  3561,
+  3568,
+  3574,
+  3586,
+  3592,
+  3602,
+  3607,
+  3616,
+  3628,
+  3637,
+  3643,
+  3652,
+  3661,
+  3668,
+  3675,
+  3687,
+  3698,
+  3706,
+  3718,
+  3738,
+  3756,
+  3773,
+  3789,
+  3810,
+  3863,
+  3902,
+  3927,
+  3971,
+  3985,
+  3997,
+  4011,
+  4035,
+  4059,
+  4068,
+  4080,
+  4090,
+  4100,
+  4111,
+  4122,
+  4129,
+  4134,
+  4143,
+  4154,
+  4161,
+  4171,
+  4184,
+  4194,
+  4202,
+  4212,
+  4219,
+  4227,
+  4237,
+  4244,
+  4251,
+  4263,
+  4273,
+  4282,
+  4292,
+  4302,
+  4316,
+  4326,
+  4341,
+  4351,
+  4361,
+  4371,
+  4382,
+  4393,
+  4415,
+  4444,
+  4457,
+  4474,
+  4485,
+  4495,
+  4500,
+  4511,
+  4521,
+  4531,
+  4537,
+  4546,
+  4557,
+  4565,
+  4574,
+  4584,
+  4594,
+  4601,
+  4610,
+  4613,
+  4623,
+  4631,
+  4646,
+  4660,
+  4676,
+  4699,
+  4722,
+  4736,
+  4764,
+  4785,
+  4810,
+  4817,
+  4847,
+  4869,
+  4887,
+  4902,
+  4927,
+  4947,
+  4980,
+  5018,
+  5054,
+  5076,
+  5086,
+  5095,
+  5101,
+  5105,
+  5111,
+  5118,
+  5127,
+  5137,
+  5144,
+  5151,
+  5157,
+  5164,
+  5173,
+  5178,
+  5186,
+  5189,
+  5197,
+  5200,
+  5210,
+  5218,
+  5225,
+  5230,
+  5237,
+  5242,
+  5256,
+  5272,
+  5305,
+  5324,
+  5361,
+  5376,
+  5411,
+  5420,
+  5440,
+  5448,
+  5467,
+  5476,
+  5495,
+  5496,
+  5527,
+  5552,
+  5582,
+  5592,
+  5614,
+  5623,
+  5663,
+  5673,
+  5703,
+  5713,
+  5739,
+  5759,
+  5801,
+  5830,
+  5849,
+  5885,
+  5910,
+  5932,
+  5949,
+  5968,
+  5994,
+  6024,
+  6044,
+  6059,
+  6080,
+  6091,
+  6099,
+  6107,
+  6126,
+  6131,
+  6139,
+  6147,
+  6158,
+  6169,
+  6177,
+  6180,
+  6189,
+  6194,
+  6198,
+  6205,
+  6208,
+  6214,
+  6217,
+  6222,
+  6226,
+  6231,
+  6237
+];
+
+const SajdaList = [
+  // [ayaId, type]
+  [1160, "recommended"],
+  [1722, "recommended"],
+  [1951, "recommended"],
+  [2138, "recommended"],
+  [2308, "recommended"],
+  [2613, "recommended"],
+  [2672, "recommended"],
+  [2915, "recommended"],
+  [3185, "recommended"],
+  [3518, "obligatory"],
+  [3994, "recommended"],
+  [4256, "obligatory"],
+  [4846, "obligatory"],
+  [5905, "recommended"],
+  [6125, "obligatory"]
+];
+
+function nextAyah(surah, ayah) {
+  if (surah < 1 || surah > meta.numSuras)
+    throw new RangeError("Surah must be between 1 and " + meta.numSuras);
+  const ayaid = findAyaidBySurah(surah, ayah);
+  return findSurahByAyaid(ayaid == meta.numAyas ? 1 : ayaid + 1);
+}
+
+function pageMeta(pageNum) {
+  if (pageNum < 1 || pageNum > meta.numPages)
+    throw new RangeError("pagenum must be between 1 and " + meta.numPages);
+  const [curPage, nextPage] = [
+    PageList[pageNum],
+    PageList[pageNum + 1]
+  ];
+  return {
+    pageNum,
+    first: findSurahByAyaid(curPage),
+    last: [...findSurahByAyaid(nextPage - 1)]
+  };
+}
+
+function prevAyah(surah, ayah) {
+  checkValidSurah(surah);
+  const ayaid = findAyaidBySurah(surah, ayah);
+  return findSurahByAyaid(ayaid == 1 ? meta.numAyas : ayaid - 1);
+}
+
+const suraNames$1 = [
+  [],
+  ["Al-Faatiha", "The Opening"],
+  ["Al-Baqara", "The Cow"],
+  ["Aal-i-Imraan", "The Family of Imraan"],
+  ["An-Nisaa", "The Women"],
+  ["Al-Maaida", "The Table"],
+  ["Al-An'aam", "The Cattle"],
+  ["Al-A'raaf", "The Heights"],
+  ["Al-Anfaal", "The Spoils of War"],
+  ["At-Tawba", "The Repentance"],
+  ["Yunus", "Jonas"],
+  ["Hud", "Hud"],
+  ["Yusuf", "Joseph"],
+  ["Ar-Ra'd", "The Thunder"],
+  ["Ibrahim", "Abraham"],
+  ["Al-Hijr", "The Rock"],
+  ["An-Nahl", "The Bee"],
+  ["Al-Israa", "The Night Journey"],
+  ["Al-Kahf", "The Cave"],
+  ["Maryam", "Mary"],
+  ["Taa-Haa", "Taa-Haa"],
+  ["Al-Anbiyaa", "The Prophets"],
+  ["Al-Hajj", "The Pilgrimage"],
+  ["Al-Muminoon", "The Believers"],
+  ["An-Noor", "The Light"],
+  ["Al-Furqaan", "The Criterion"],
+  ["Ash-Shu'araa", "The Poets"],
+  ["An-Naml", "The Ant"],
+  ["Al-Qasas", "The Stories"],
+  ["Al-Ankaboot", "The Spider"],
+  ["Ar-Room", "The Romans"],
+  ["Luqman", "Luqman"],
+  ["As-Sajda", "The Prostration"],
+  ["Al-Ahzaab", "The Clans"],
+  ["Saba", "Sheba"],
+  ["Faatir", "The Originator"],
+  ["Yaseen", "Yaseen"],
+  ["As-Saaffaat", "Those drawn up in Ranks"],
+  ["Saad", "The letter Saad"],
+  ["Az-Zumar", "The Groups"],
+  ["Al-Ghaafir", "The Forgiver"],
+  ["Fussilat", "Explained in detail"],
+  ["Ash-Shura", "Consultation"],
+  ["Az-Zukhruf", "Ornaments of gold"],
+  ["Ad-Dukhaan", "The Smoke"],
+  ["Al-Jaathiya", "Crouching"],
+  ["Al-Ahqaf", "The Dunes"],
+  ["Muhammad", "Muhammad"],
+  ["Al-Fath", "The Victory"],
+  ["Al-Hujuraat", "The Inner Apartments"],
+  ["Qaaf", "The letter Qaaf"],
+  ["Adh-Dhaariyat", "The Winnowing Winds"],
+  ["At-Tur", "The Mount"],
+  ["An-Najm", "The Star"],
+  ["Al-Qamar", "The Moon"],
+  ["Ar-Rahmaan", "The Beneficent"],
+  ["Al-Waaqia", "The Inevitable"],
+  ["Al-Hadid", "The Iron"],
+  ["Al-Mujaadila", "The Pleading Woman"],
+  ["Al-Hashr", "The Exile"],
+  ["Al-Mumtahana", "She that is to be examined"],
+  ["As-Saff", "The Ranks"],
+  ["Al-Jumu'a", "Friday"],
+  ["Al-Munaafiqoon", "The Hypocrites"],
+  ["At-Taghaabun", "Mutual Disillusion"],
+  ["At-Talaaq", "Divorce"],
+  ["At-Tahrim", "The Prohibition"],
+  ["Al-Mulk", "The Sovereignty"],
+  ["Al-Qalam", "The Pen"],
+  ["Al-Haaqqa", "The Reality"],
+  ["Al-Ma'aarij", "The Ascending Stairways"],
+  ["Nooh", "Noah"],
+  ["Al-Jinn", "The Jinn"],
+  ["Al-Muzzammil", "The Enshrouded One"],
+  ["Al-Muddaththir", "The Cloaked One"],
+  ["Al-Qiyaama", "The Resurrection"],
+  ["Al-Insaan", "Man"],
+  ["Al-Mursalaat", "The Emissaries"],
+  ["An-Naba", "The Announcement"],
+  ["An-Naazi'aat", "Those who drag forth"],
+  ["Abasa", "He frowned"],
+  ["At-Takwir", "The Overthrowing"],
+  ["Al-Infitaar", "The Cleaving"],
+  ["Al-Mutaffifin", "Defrauding"],
+  ["Al-Inshiqaaq", "The Splitting Open"],
+  ["Al-Burooj", "The Constellations"],
+  ["At-Taariq", "The Morning Star"],
+  ["Al-A'laa", "The Most High"],
+  ["Al-Ghaashiya", "The Overwhelming"],
+  ["Al-Fajr", "The Dawn"],
+  ["Al-Balad", "The City"],
+  ["Ash-Shams", "The Sun"],
+  ["Al-Lail", "The Night"],
+  ["Ad-Dhuhaa", "The Morning Hours"],
+  ["Ash-Sharh", "The Consolation"],
+  ["At-Tin", "The Fig"],
+  ["Al-Alaq", "The Clot"],
+  ["Al-Qadr", "The Power, Fate"],
+  ["Al-Bayyina", "The Evidence"],
+  ["Az-Zalzala", "The Earthquake"],
+  ["Al-Aadiyaat", "The Chargers"],
+  ["Al-Qaari'a", "The Calamity"],
+  ["At-Takaathur", "Competition"],
+  ["Al-Asr", "The Declining Day, Epoch"],
+  ["Al-Humaza", "The Traducer"],
+  ["Al-Fil", "The Elephant"],
+  ["Quraish", "Quraysh"],
+  ["Al-Maa'un", "Almsgiving"],
+  ["Al-Kawthar", "Abundance"],
+  ["Al-Kaafiroon", "The Disbelievers"],
+  ["An-Nasr", "Divine Support"],
+  ["Al-Masad", "The Palm Fibre"],
+  ["Al-Ikhlaas", "Sincerity"],
+  ["Al-Falaq", "The Dawn"],
+  ["An-Naas", "Mankind"]
+];
+
+const suraNames = [
+  [],
+  ["\u0410\u043B\u044C-\u0424\u0430\u0442\u0438\u0445\u0430", "\u041E\u0442\u043A\u0440\u044B\u0432\u0430\u044E\u0449\u0430\u044F \u041A\u043E\u0440\u0430\u043D"],
+  ["\u0410\u043B\u044C-\u0411\u0430\u043A\u0430\u0440\u0430", "\u041A\u043E\u0440\u043E\u0432\u0430"],
+  ["\u0410\u043B\u044C \u2018\u0418\u043C\u0440\u0430\u043D", "\u0421\u0435\u043C\u0435\u0439\u0441\u0442\u0432\u043E \u2018\u0418\u043C\u0440\u0430\u043D\u0430"],
+  ["\u0410\u043D-\u041D\u0438\u0441\u0430", "\u0416\u0435\u043D\u0449\u0438\u043D\u044B"],
+  ["\u0410\u043B\u044C-\u041C\u0430\u0438\u0434\u0430", "\u0422\u0440\u0430\u043F\u0435\u0437\u0430"],
+  ["\u0410\u043B\u044C-\u0410\u043D\u2018\u0430\u043C", "\u0421\u043A\u043E\u0442"],
+  ["\u0410\u043B\u044C-\u0410\u2018\u0440\u0430\u0444", "\u041E\u0433\u0440\u0430\u0434\u044B"],
+  ["\u0410\u043B\u044C-\u0410\u043D\u0444\u0430\u043B\u044C", "\u0412\u043E\u0435\u043D\u043D\u0430\u044F \u0434\u043E\u0431\u044B\u0447\u0430"],
+  ["\u0410\u0442-\u0422\u0430\u0443\u0431\u0430", "\u041F\u043E\u043A\u0430\u044F\u043D\u0438\u0435"],
+  ["\u042E\u043D\u0443\u0441", "\u0418\u043E\u043D\u0430"],
+  ["\u0425\u0443\u0434", "\u0425\u0443\u0434"],
+  ["\u042E\u0441\u0443\u0444", "\u0418\u043E\u0441\u0438\u0444"],
+  ["\u0410\u0440-\u0420\u0430\u2018\u0434", "\u0413\u0440\u043E\u043C"],
+  ["\u0418\u0431\u0440\u0430\u0445\u0438\u043C", "\u0410\u0432\u0440\u0430\u0430\u043C"],
+  ["\u0410\u043B\u044C-\u0425\u0438\u0434\u0436\u0440", "\u0425\u0438\u0434\u0436\u0440"],
+  ["\u0410\u043D-\u041D\u0430\u0445\u043B\u044C", "\u041F\u0447\u0451\u043B\u044B"],
+  ["\u0410\u043B\u044C-\u0418\u0441\u0440\u0430", "\u041D\u043E\u0447\u043D\u043E\u0439 \u043F\u0435\u0440\u0435\u043D\u043E\u0441"],
+  ["\u0410\u043B\u044C-\u041A\u044F\u0445\u0444", "\u041F\u0435\u0449\u0435\u0440\u0430"],
+  ["\u041C\u0430\u0440\u044C\u044F\u043C", "\u041C\u0430\u0440\u0438\u044F"],
+  ["\u0422\u0430, \u0445\u0430", "\u0422\u0430, \u0445\u0430"],
+  ["\u0410\u043B\u044C-\u0410\u043D\u0431\u0438\u044F", "\u041F\u0440\u043E\u0440\u043E\u043A\u0438"],
+  ["\u0410\u043B\u044C-\u0425\u0430\u0434\u0436\u0436", "\u0425\u0430\u0434\u0436"],
+  ["\u0410\u043B\u044C-\u041C\u0443\u2019\u043C\u0438\u043D\u0443\u043D", "\u0412\u0435\u0440\u0443\u044E\u0449\u0438\u0435"],
+  ["\u0410\u043D-\u041D\u0443\u0440", "\u0421\u0432\u0435\u0442"],
+  ["\u0410\u043B\u044C-\u0424\u0443\u0440\u043A\u0430\u043D", "\u0420\u0430\u0437\u043B\u0438\u0447\u0435\u043D\u0438\u0435"],
+  ["\u0410\u0448-\u0428\u0443\u2018\u0430\u0440\u0430", "\u041F\u043E\u044D\u0442\u044B"],
+  ["\u0410\u043D-\u041D\u0430\u043C\u043B\u044C", "\u041C\u0443\u0440\u0430\u0432\u044C\u0438"],
+  ["\u0410\u043B\u044C-\u041A\u0430\u0441\u0430\u0441", "\u0420\u0430\u0441\u0441\u043A\u0430\u0437"],
+  ["\u0410\u043B\u044C-\u2018\u0410\u043D\u043A\u0430\u0431\u0443\u0442", "\u041F\u0430\u0443\u043A"],
+  ["\u0410\u0440-\u0420\u0443\u043C", "\u0420\u043E\u043C\u0435\u0438"],
+  ["\u041B\u0443\u043A\u043C\u0430\u043D", "\u041B\u0443\u043A\u043C\u0430\u043D"],
+  ["\u0410\u0441-\u0421\u0430\u0434\u0436\u0434\u0430", "\u0417\u0435\u043C\u043D\u043E\u0439 \u043F\u043E\u043A\u043B\u043E\u043D"],
+  ["\u0410\u043B\u044C-\u0410\u0445\u0437\u0430\u0431", "\u041F\u043E\u043B\u0447\u0438\u0449\u0430"],
+  ["\u0421\u0430\u0431\u0430\u2019", "\u0421\u0430\u0432\u0430"],
+  ["\u0424\u0430\u0442\u044B\u0440", "\u0417\u0438\u0436\u0434\u0438\u0442\u0435\u043B\u044C"],
+  ["\u0419\u0430, \u0441\u0438\u043D", "\u0419\u0430, \u0441\u0438\u043D"],
+  ["\u0410\u0441-\u0421\u0430\u0444\u0444\u0430\u0442", "\u0421\u0442\u043E\u044F\u0449\u0438\u0435 \u0432 \u0440\u044F\u0434"],
+  ["\u0421\u0430\u0434", "\u0421\u0430\u0434"],
+  ["\u0410\u0437-\u0417\u0443\u043C\u0430\u0440", "\u0422\u043E\u043B\u043F\u044B"],
+  ["\u0413\u0430\u0444\u0438\u0440", "\u041F\u0440\u043E\u0449\u0430\u044E\u0449\u0438\u0439"],
+  ["\u0424\u0443\u0441\u0441\u044B\u043B\u044F\u0442", "\u0420\u0430\u0437\u044A\u044F\u0441\u043D\u0435\u043D\u044B"],
+  ["\u0410\u0448-\u0428\u0443\u0440\u0430", "\u0421\u043E\u0432\u0435\u0442"],
+  ["\u0410\u0437-\u0417\u0443\u0445\u0440\u0443\u0444", "\u0423\u043A\u0440\u0430\u0448\u0435\u043D\u0438\u044F"],
+  ["\u0410\u0434-\u0414\u0443\u0445\u0430\u043D", "\u0414\u044B\u043C"],
+  ["\u0410\u043B\u044C-\u0414\u0436\u0430\u0441\u0438\u044F", "\u041A\u043E\u043B\u0435\u043D\u043E\u043F\u0440\u0435\u043A\u043B\u043E\u043D\u0451\u043D\u043D\u044B\u0435"],
+  ["\u0410\u043B\u044C-\u0410\u0445\u043A\u0430\u0444", "\u0411\u0430\u0440\u0445\u0430\u043D\u044B"],
+  ["\u041C\u0443\u0445\u0430\u043C\u043C\u0430\u0434", "\u041C\u0443\u0445\u0430\u043C\u043C\u0430\u0434"],
+  ["\u0410\u043B\u044C-\u0424\u0430\u0442\u0445", "\u041F\u043E\u0431\u0435\u0434\u0430"],
+  ["\u0410\u043B\u044C-\u0425\u0443\u0434\u0436\u0443\u0440\u0430\u0442", "\u041F\u043E\u043A\u043E\u0438"],
+  ["\u041A\u0430\u0444", "\u041A\u0430\u0444"],
+  ["\u0410\u0437-\u0417\u0430\u0440\u0438\u044F\u0442", "\u0420\u0430\u0441\u0441\u0435\u0438\u0432\u0430\u044E\u0449\u0438\u0435"],
+  ["\u0410\u0442-\u0422\u0443\u0440", "\u0413\u043E\u0440\u0430"],
+  ["\u0410\u043D-\u041D\u0430\u0434\u0436\u043C", "\u0417\u0432\u0435\u0437\u0434\u0430"],
+  ["\u0410\u043B\u044C-\u041A\u0430\u043C\u0430\u0440", "\u041B\u0443\u043D\u0430"],
+  ["\u0410\u0440-\u0420\u0430\u0445\u043C\u0430\u043D", "\u041C\u0438\u043B\u043E\u0441\u0442\u0438\u0432\u044B\u0439"],
+  ["\u0410\u043B\u044C-\u0412\u0430\u043A\u0438\u2018\u0430", "\u041D\u0435\u0438\u0437\u0431\u0435\u0436\u043D\u043E\u0435"],
+  ["\u0410\u043B\u044C-\u0425\u0430\u0434\u0438\u0434", "\u0416\u0435\u043B\u0435\u0437\u043E"],
+  ["\u0410\u043B\u044C-\u041C\u0443\u0434\u0436\u0430\u0434\u0438\u043B\u044F", "\u041F\u0440\u0435\u043F\u0438\u0440\u0430\u044E\u0449\u0430\u044F\u0441\u044F"],
+  ["\u0410\u043B\u044C-\u0425\u0430\u0448\u0440", "\u0421\u0431\u043E\u0440"],
+  ["\u0410\u043B\u044C-\u041C\u0443\u043C\u0442\u0430\u0445\u0430\u043D\u0430", "\u0418\u0441\u043F\u044B\u0442\u0443\u0435\u043C\u0430\u044F"],
+  ["\u0410\u0441-\u0421\u0430\u0444\u0444", "\u0420\u044F\u0434"],
+  ["\u0410\u043B\u044C-\u0414\u0436\u0443\u043C\u0443\u2018\u0430", "\u0421\u043E\u0431\u0440\u0430\u043D\u0438\u0435"],
+  ["\u0410\u043B\u044C-\u041C\u0443\u043D\u0430\u0444\u0438\u043A\u0443\u043D", "\u041B\u0438\u0446\u0435\u043C\u0435\u0440\u044B"],
+  ["\u0410\u0442-\u0422\u0430\u0433\u0430\u0431\u0443\u043D", "\u041E\u0431\u0434\u0435\u043B\u0435\u043D\u0438\u0435"],
+  ["\u0410\u0442-\u0422\u0430\u043B\u044F\u043A", "\u0420\u0430\u0437\u0432\u043E\u0434"],
+  ["\u0410\u0442-\u0422\u0430\u0445\u0440\u0438\u043C", "\u0417\u0430\u043F\u0440\u0435\u0449\u0435\u043D\u0438\u0435"],
+  ["\u0410\u043B\u044C-\u041C\u0443\u043B\u044C\u043A", "\u0412\u043B\u0430\u0441\u0442\u044C"],
+  ["\u0410\u043B\u044C-\u041A\u0430\u043B\u044F\u043C", "\u041F\u0435\u0440\u043E"],
+  ["\u0410\u043B\u044C-\u0425\u0430\u043A\u043A\u0430", "\u041D\u0435\u043C\u0438\u043D\u0443\u0435\u043C\u043E\u0435"],
+  ["\u0410\u043B\u044C-\u041C\u0430\u2018\u0430\u0440\u0438\u0434\u0436", "\u0421\u0442\u0435\u043F\u0435\u043D\u0438"],
+  ["\u041D\u0443\u0445", "\u041D\u043E\u0439"],
+  ["\u0410\u043B\u044C-\u0414\u0436\u0438\u043D\u043D", "\u0414\u0436\u0438\u043D\u043D\u044B"],
+  ["\u0410\u043B\u044C-\u041C\u0443\u0437\u0437\u0430\u043C\u043C\u0438\u043B\u044C", "\u0417\u0430\u043A\u0443\u0442\u0430\u0432\u0448\u0438\u0439\u0441\u044F"],
+  ["\u0410\u043B\u044C-\u041C\u0443\u0434\u0434\u0430\u0441\u0441\u0438\u0440", "\u0417\u0430\u0432\u0435\u0440\u043D\u0443\u0432\u0448\u0438\u0439\u0441\u044F"],
+  ["\u0410\u043B\u044C-\u041A\u0438\u044F\u043C\u0430", "\u0412\u043E\u0441\u043A\u0440\u0435\u0441\u0435\u043D\u0438\u0435"],
+  ["\u0410\u043B\u044C-\u0418\u043D\u0441\u0430\u043D", "\u0427\u0435\u043B\u043E\u0432\u0435\u043A"],
+  ["\u0410\u043B\u044C-\u041C\u0443\u0440\u0441\u0430\u043B\u044F\u0442", "\u041F\u043E\u0441\u044B\u043B\u0430\u0435\u043C\u044B\u0435"],
+  ["\u0410\u043D-\u041D\u0430\u0431\u0430\u2019", "\u0412\u0435\u0441\u0442\u044C"],
+  ["\u0410\u043D-\u041D\u0430\u0437\u0438\u2018\u0430\u0442", "\u0412\u044B\u0440\u044B\u0432\u0430\u044E\u0449\u0438\u0435"],
+  ["\u2018\u0410\u0431\u0430\u0441\u0430", "\u041D\u0430\u0445\u043C\u0443\u0440\u0438\u043B\u0441\u044F"],
+  ["\u0410\u0442-\u0422\u0430\u043A\u0432\u0438\u0440", "\u0421\u0432\u043E\u0440\u0430\u0447\u0438\u0432\u0430\u043D\u0438\u0435"],
+  ["\u0410\u043B\u044C-\u0418\u043D\u0444\u0438\u0442\u0430\u0440", "\u0420\u0430\u0441\u043A\u0430\u043B\u044B\u0432\u0430\u043D\u0438\u0435"],
+  ["\u0410\u043B\u044C-\u041C\u0443\u0442\u0430\u0444\u0444\u0438\u0444\u0438\u043D", "\u041E\u0431\u0432\u0435\u0448\u0438\u0432\u0430\u044E\u0449\u0438\u0435"],
+  ["\u0410\u043B\u044C-\u0418\u043D\u0448\u0438\u043A\u0430\u043A", "\u0420\u0430\u0437\u0432\u0435\u0440\u0437\u043D\u0435\u0442\u0441\u044F"],
+  ["\u0410\u043B\u044C-\u0411\u0443\u0440\u0443\u0434\u0436", "\u0421\u043E\u0437\u0432\u0435\u0437\u0434\u0438\u044F"],
+  ["\u0410\u0442-\u0422\u0430\u0440\u0438\u043A", "\u041D\u043E\u0447\u043D\u043E\u0439 \u0433\u043E\u0441\u0442\u044C"],
+  ["\u0410\u043B\u044C-\u0410\u2018\u043B\u044F", "\u0412\u0441\u0435\u0432\u044B\u0448\u043D\u0438\u0439"],
+  ["\u0410\u043B\u044C-\u0413\u0430\u0448\u0438\u044F", "\u041F\u043E\u043A\u0440\u044B\u0432\u0430\u044E\u0449\u0435\u0435"],
+  ["\u0410\u043B\u044C-\u0424\u0430\u0434\u0436\u0440", "\u0417\u0430\u0440\u044F"],
+  ["\u0410\u043B\u044C-\u0411\u0430\u043B\u044F\u0434", "\u0413\u043E\u0440\u043E\u0434"],
+  ["\u0410\u0448-\u0428\u0430\u043C\u0441", "\u0421\u043E\u043B\u043D\u0446\u0435"],
+  ["\u0410\u043B\u044C-\u041B\u0435\u0439\u043B\u044C", "\u041D\u043E\u0447\u044C"],
+  ["\u0410\u0434-\u0414\u0443\u0445\u0430", "\u0423\u0442\u0440\u043E"],
+  ["\u0410\u043B\u044C-\u0418\u043D\u0448\u0438\u0440\u0430\u0445", "\u0420\u0430\u0441\u043A\u0440\u044B\u0442\u0438\u0435"],
+  ["\u0410\u0442-\u0422\u0438\u043D", "\u0421\u043C\u043E\u043A\u043E\u0432\u043D\u0438\u0446\u0430"],
+  ["\u0410\u043B\u044C-\u2018\u0410\u043B\u044F\u043A", "\u0421\u0433\u0443\u0441\u0442\u043E\u043A \u043A\u0440\u043E\u0432\u0438"],
+  ["\u0410\u043B\u044C-\u041A\u0430\u0434\u0440", "\u0412\u0435\u043B\u0438\u0447\u0438\u0435"],
+  ["\u0410\u043B\u044C-\u0411\u0430\u0439\u0439\u0438\u043D\u0430", "\u042F\u0441\u043D\u044B\u0439 \u0434\u043E\u0432\u043E\u0434"],
+  ["\u0410\u0437-\u0417\u0430\u043B\u044C\u0437\u0430\u043B\u044F", "\u0421\u043E\u0442\u0440\u044F\u0441\u0435\u043D\u0438\u0435"],
+  ["\u0410\u043B\u044C-\u2018\u0410\u0434\u0438\u044F\u0442", "\u0421\u043A\u0430\u0447\u0443\u0449\u0438\u0435"],
+  ["\u0410\u043B\u044C-\u041A\u0430\u0440\u0438\u2018\u0430", "\u041F\u043E\u0440\u0430\u0436\u0430\u044E\u0449\u0435\u0435"],
+  ["\u0410\u0442-\u0422\u0430\u043A\u044F\u0441\u0443\u0440", "\u0421\u043E\u043F\u0435\u0440\u043D\u0438\u0447\u0435\u0441\u0442\u0432\u043E"],
+  ["\u0410\u043B\u044C-\u2018\u0410\u0441\u0440", "\u041F\u0440\u0435\u0434\u0432\u0435\u0447\u0435\u0440\u043D\u0435\u0435 \u0432\u0440\u0435\u043C\u044F"],
+  ["\u0410\u043B\u044C-\u0425\u0443\u043C\u0430\u0437\u0430", "\u0425\u0443\u043B\u0438\u0442\u0435\u043B\u044C"],
+  ["\u0410\u043B\u044C-\u0424\u0438\u043B\u044C", "\u0421\u043B\u043E\u043D"],
+  ["\u041A\u0443\u0440\u0430\u0439\u0448", "\u041A\u0443\u0440\u0430\u0439\u0448\u0438\u0442\u044B"],
+  ["\u0410\u043B\u044C-\u041C\u0430\u2018\u0443\u043D", "\u0423\u0442\u0432\u0430\u0440\u044C"],
+  ["\u0410\u043B\u044C-\u041A\u0430\u0443\u0441\u0430\u0440", "\u041A\u0430\u0443\u0441\u0430\u0440"],
+  ["\u0410\u043B\u044C-\u041A\u044F\u0444\u0438\u0440\u0443\u043D", "\u041D\u0435\u0432\u0435\u0440\u0443\u044E\u0449\u0438\u0435"],
+  ["\u0410\u043D-\u041D\u0430\u0441\u0440", "\u041F\u043E\u043C\u043E\u0449\u044C"],
+  ["\u0410\u043B\u044C-\u041C\u0430\u0441\u0430\u0434", "\u041F\u0430\u043B\u044C\u043C\u043E\u0432\u044B\u0435 \u0432\u043E\u043B\u043E\u043A\u043D\u0430"],
+  ["\u0410\u043B\u044C-\u0418\u0445\u043B\u044F\u0441", "\u041E\u0447\u0438\u0449\u0435\u043D\u0438\u0435 \u0432\u0435\u0440\u044B"],
+  ["\u0410\u043B\u044C-\u0424\u0430\u043B\u044F\u043A", "\u0420\u0430\u0441\u0441\u0432\u0435\u0442"],
+  ["\u0410\u043D-\u041D\u0430\u0441", "\u041B\u044E\u0434\u0438"]
+];
+
+exports.HizbQuarterList = HizbQuarterList;
+exports.JuzList = JuzList;
+exports.ManzilList = ManzilList;
+exports.PageList = PageList;
+exports.RukuList = RukuList;
+exports.SajdaList = SajdaList;
+exports.SuraList = SuraList;
+exports.ayaStringSplitter = ayaStringSplitter;
+exports.checkValidAyahId = checkValidAyahId;
+exports.checkValidSurah = checkValidSurah;
+exports.checkValidSurahAyah = checkValidSurahAyah;
+exports.findAyaidBySurah = findAyaidBySurah;
+exports.findJuz = findJuz;
+exports.findJuzAndShift = findJuzAndShift;
+exports.findJuzByAyaid = findJuzByAyaid;
+exports.findJuzHizb = findJuzHizb;
+exports.findJuzHizbByAyaid = findJuzHizbByAyaid;
+exports.findJuzMetaBySurah = findJuzMetaBySurah;
+exports.findPage = findPage;
+exports.findRangeAroundAyah = findRangeAroundAyah;
+exports.findSurahByAyaid = findSurahByAyaid;
+exports.getAyaCountinSura = getAyaCountinSura;
+exports.getSurahMeta = getSurahMeta;
+exports.isAyahJuzFirst = isAyahJuzFirst;
+exports.isAyahPageFirst = isAyahPageFirst;
+exports.meta = meta;
+exports.nextAyah = nextAyah;
+exports.pageMeta = pageMeta;
+exports.prevAyah = prevAyah;
+exports.suraNamesEn = suraNames$1;
+exports.suraNamesRu = suraNames;
diff --git a/dist/index.d.cts b/dist/index.d.cts
new file mode 100644
index 0000000..8a82018
--- /dev/null
+++ b/dist/index.d.cts
@@ -0,0 +1,260 @@
+type QuranMeta = {
+    numAyas: number;
+    numSuras: number;
+    numPages: number;
+    numJuzs: number;
+    manzilCount: number;
+};
+declare const meta: Readonly<QuranMeta>;
+
+type Surah = number;
+type AyahNo = number;
+type AyahId = number;
+type Page = number;
+type Juz = number;
+type JuzHizb = {
+    juz: Juz;
+    hizb: number;
+    id: number;
+};
+type SurahAyah = [Surah, AyahNo];
+type SurahAyahSegment = [Surah, AyahNo | [AyahNo, AyahNo]];
+type PageMeta = {
+    pageNum: Page;
+    first: SurahAyah;
+    last: SurahAyah;
+};
+type JuzMeta = {
+    leftjuz: Juz;
+    ayahsBetweenJuzSurah: number;
+    rightJuz: Juz;
+    leftAyahId: AyahId;
+    rightAyahId: AyahId;
+};
+type SajdaType = "recommended" | "obligatory";
+type Sajda = [AyahId, SajdaType];
+type SurahMeta = [
+    startAyahId: AyahId,
+    ayahCount: number,
+    surahOrder: number,
+    rukuCount: number,
+    name: string,
+    isMeccan: boolean,
+    page: Page
+];
+type SuraName = [name: string, translitName: string];
+
+/**
+ *  Turns String of type "x:y" or "x:y1-y2" to array [x,y] or [x,[y1,y2]] respectively
+ * @param {*} str String of type "x:y" or "x:y1-y2"
+ * @returns {array} array [x,y] or [x,[y1,y2]] respectively
+ */
+declare function ayaStringSplitter(str: string): SurahAyahSegment;
+
+/**
+ * Get the ayah ID for the given surah and ayah number.
+ * @param surah - The surah number.
+ * @param ayah - The ayah number within the surah.
+ * @returns The ayah ID for the given surah and ayah number.
+ */
+declare function findAyaidBySurah(surah: Surah, ayah: AyahNo): AyahId;
+
+/**
+ * Finds the Juz (part) of the Quran that the given Ayah (verse) belongs to.
+ *
+ * @param surah - The Surah (chapter) number.
+ * @param ayah - The Ayah (verse) number. Defaults to 1 if not provided.
+ * @param ayahMode - If true, the `ayah` parameter is treated as an Ayah ID instead of a Surah and Ayah number.
+ * @returns The Juz (part) number that the given Ayah belongs to.
+ */
+declare function findJuz(surah: Surah, ayah?: AyahNo, ayahMode?: boolean): Juz;
+
+/**
+ * Finds the juz (section) that contains the specified ayah (verse) and calculates the number of ayahs between the start of the juz and the start of the surah (chapter) that contains the ayah.
+ *
+ * @param surah - The surah (chapter) that contains the ayah.
+ * @param ayah - The ayah (verse) number.
+ * @param ayahMode - A boolean flag indicating whether the `ayah` parameter represents an ayah number or an ayah ID.
+ * @returns An object containing the following properties:
+ *   - `juz`: The juz (section) that contains the ayah.
+ *   - `leftAyahId`: The ayah ID of the first ayah in the juz.
+ *   - `ayahsBetweenJuzSurah`: The number of ayahs between the start of the juz and the start of the surah (positive if the surah starts is in the juz, negative if the surah starts before the juz).
+ */
+declare function findJuzAndShift(surah: Surah, ayah: AyahNo, ayahMode?: boolean): {
+    juz: Juz;
+    leftAyahId: AyahId;
+    ayahsBetweenJuzSurah: number;
+};
+
+/**
+ * Finds the Juz (part) of the Quran that contains the given Ayah (verse) ID.
+ *
+ * @param ayaId - The ID of the Ayah (verse) to find the Juz for.
+ * @returns The Juz (part) of the Quran that contains the given Ayah ID.
+ */
+declare function findJuzByAyaid(ayaId: AyahId): Juz;
+
+/**
+ * Finds the Juz (part) and Hizb (section) of the Quran that the given Ayah (verse) belongs to.
+ *
+ * @param surah - The Surah (chapter) number.
+ * @param ayah - The Ayah (verse) number. Defaults to 1 if not provided.
+ * @param ayahMode - If true, the `ayah` parameter is treated as an Ayah ID instead of a Surah and Ayah number.
+ * @returns An object containing the Juz (part) number, Hizb (section) number, and the index of the Hizb that the given Ayah belongs to.
+ */
+declare function findJuzHizb(surah: Surah, ayah?: AyahNo, ayahMode?: boolean): JuzHizb;
+
+/**
+ * Finds the Juz, Hizb, and Hizb ID for the given Ayah ID.
+ *
+ * @param ayaId - The Ayah ID to find the Juz, Hizb, and Hizb ID for.
+ * @returns An object containing the Juz, Hizb, and Hizb ID for the given Ayah ID.
+ */
+declare function findJuzHizbByAyaid(ayaId: AyahId): JuzHizb;
+
+/**
+ * Finds the JuzMeta for a given Surah and Ayah.
+ *
+ * @param surah - The Surah (chapter) number.
+ * @param ayah - The Ayah (verse) number.
+ * @returns The JuzMeta object containing the left juz, ayahs between juz and surah, right juz, left ayah ID, and right ayah ID.
+ */
+declare function findJuzMetaBySurah(surah: Surah, ayah?: AyahNo): JuzMeta;
+
+/**
+ * Finds the page number for the given Surah and Ayah number.
+ *
+ * @param surah - The Surah to find the page for.
+ * @param ayah - The Ayah number to find the page for.
+ * @param ayahMode - If true, the `ayah` parameter is treated as an AyahId instead of an AyahNo.
+ * @returns The page number for the given Surah and Ayah.
+ */
+declare function findPage(surah: Surah, ayah: AyahNo, ayahMode?: boolean): Page;
+
+/**
+ * ALternative deprecated method
+ * @param {*} pageNum
+ */
+/**
+ * Find range containing ayah according to the mode
+ * @param surah
+ * @param ayah
+ * @param {*} mode can be either 'all', 'juz', 'surah', 'ayah', 'page'
+ * default is all
+ */
+declare function findRangeAroundAyah(surah: Surah, ayah: AyahNo, mode: "juz" | "surah" | "ayah" | "page" | "all", ayahMode?: boolean): SurahAyah;
+
+/**
+ * Finds the Surah (chapter) and Ayah (verse) numbers that the given Ayah ID belongs to.
+ *
+ * @param ayaId - The Ayah ID to find the Surah and Ayah numbers for.
+ * @returns An array containing the Surah number and the Ayah number within that Surah.
+ */
+declare function findSurahByAyaid(ayaId: AyahId): SurahAyah;
+
+/**
+ * Get the number of ayahs (verses) in the specified surah.
+ * @param surah - The surah number.
+ * @returns The number of ayahs in the specified surah.
+ */
+declare function getAyaCountinSura(surah: Surah): number;
+
+/**
+ * Gets the metadata for the specified Surah.
+ *
+ * @param surah - The Surah to get the metadata for.
+ * @returns The metadata for the specified Surah.
+ */
+declare function getSurahMeta(surah: Surah): SurahMeta;
+
+/**
+ * Returns the Juz (part) number that the given Ayah (verse) belongs to.
+ *
+ *
+ * @param surah - The Surah (chapter) number.
+ * @param ayah - The Ayah (verse) number.
+ * @param ayahMode - If true, the `ayah` parameter is treated as an Ayah ID instead of a Surah and Ayah number.
+ * @returns The Juz (part) number that the given Ayah belongs to. Returns Positive number if aya is first ayah of juz, number is juz number
+ */
+declare function isAyahJuzFirst(surah: Surah, ayah: AyahNo, ayahMode?: boolean): Juz;
+
+/**
+ * Determines if the given ayah is the first ayah of a juz.
+ *
+ * @param surah - The surah number.
+ * @param ayah - The ayah number.
+ * @param ayahMode - Optional flag to indicate if the ayah number is already a valid ayah ID.
+ * @returns The juz number if the ayah is the first ayah of the juz, otherwise -1.
+ */
+declare function isAyahPageFirst(surah: Surah, ayah: AyahNo, ayahMode?: boolean): Juz;
+
+declare const HizbQuarterList: AyahId[];
+
+declare const JuzList: AyahId[];
+
+declare const ManzilList: AyahId[];
+
+declare const PageList: AyahId[];
+
+declare const RukuList: AyahId[];
+
+declare const SajdaList: Sajda[];
+
+declare const SuraList: SurahMeta[];
+
+/**
+ * Get the next ayah for the given surah and ayah number.
+ * @param surah - The surah number.
+ * @param ayah - The ayah number within the surah.
+ * @returns The surah and ayah number of the next ayah.
+ */
+declare function nextAyah(surah: Surah, ayah: AyahNo): SurahAyah;
+
+/**
+ * Retrieves the page metadata for the specified page number.
+ *
+ * @param pageNum - The page number to retrieve metadata for.
+ * @returns The page metadata, including the first and last ayah IDs on the page.
+ * @throws {RangeError} If the page number is out of the valid range (1 to `meta.numPages`).
+ */
+declare function pageMeta(pageNum: Page): PageMeta;
+
+/**
+ * Get the previous ayah for the given surah and ayah number.
+ * @param surah - The surah number.
+ * @param ayah - The ayah number within the surah.
+ * @returns The surah and ayah number of the previous ayah.
+ */
+declare function prevAyah(surah: Surah, ayah: AyahNo): SurahAyah;
+
+/**
+ * Checks if the given Surah (chapter) number is valid.
+ *
+ * @param surah - The Surah (chapter) number to check.
+ * @param checkOnly - If true, the function will only check the validity and not throw an error.
+ * @returns True if the Surah number is valid, false otherwise.
+ */
+declare function checkValidSurah(surah: number, checkOnly?: boolean): boolean;
+/**
+ * Checks if the given Surah and Ayah (verse) numbers are valid.
+ *
+ * @param surah - The Surah (chapter) number to check.
+ * @param ayah - The Ayah (verse) number to check.
+ * @param checkOnly - If true, the function will only check the validity and not throw an error.
+ * @returns True if the Surah and Ayah numbers are valid, false otherwise.
+ */
+declare function checkValidSurahAyah(surah: number, ayah: number, checkOnly?: boolean): boolean;
+/**
+ * Checks if the given Ayah (verse) ID is valid.
+ *
+ * @param ayahId - The Ayah (verse) ID to check.
+ * @param checkOnly - If true, the function will only check the validity and not throw an error.
+ * @returns True if the Ayah ID is valid, otherwise throws a RangeError.
+ */
+declare function checkValidAyahId(ayahId: number, checkOnly?: boolean): boolean;
+
+declare const suraNames$1: (SuraName | [])[];
+
+declare const suraNames: (SuraName | [])[];
+
+export { type AyahId, type AyahNo, HizbQuarterList, type Juz, type JuzHizb, JuzList, type JuzMeta, ManzilList, type Page, PageList, type PageMeta, type QuranMeta, RukuList, type Sajda, SajdaList, type SajdaType, SuraList, type SuraName, type Surah, type SurahAyah, type SurahAyahSegment, type SurahMeta, ayaStringSplitter, checkValidAyahId, checkValidSurah, checkValidSurahAyah, findAyaidBySurah, findJuz, findJuzAndShift, findJuzByAyaid, findJuzHizb, findJuzHizbByAyaid, findJuzMetaBySurah, findPage, findRangeAroundAyah, findSurahByAyaid, getAyaCountinSura, getSurahMeta, isAyahJuzFirst, isAyahPageFirst, meta, nextAyah, pageMeta, prevAyah, suraNames$1 as suraNamesEn, suraNames as suraNamesRu };
diff --git a/dist/index.d.mts b/dist/index.d.mts
new file mode 100644
index 0000000..8a82018
--- /dev/null
+++ b/dist/index.d.mts
@@ -0,0 +1,260 @@
+type QuranMeta = {
+    numAyas: number;
+    numSuras: number;
+    numPages: number;
+    numJuzs: number;
+    manzilCount: number;
+};
+declare const meta: Readonly<QuranMeta>;
+
+type Surah = number;
+type AyahNo = number;
+type AyahId = number;
+type Page = number;
+type Juz = number;
+type JuzHizb = {
+    juz: Juz;
+    hizb: number;
+    id: number;
+};
+type SurahAyah = [Surah, AyahNo];
+type SurahAyahSegment = [Surah, AyahNo | [AyahNo, AyahNo]];
+type PageMeta = {
+    pageNum: Page;
+    first: SurahAyah;
+    last: SurahAyah;
+};
+type JuzMeta = {
+    leftjuz: Juz;
+    ayahsBetweenJuzSurah: number;
+    rightJuz: Juz;
+    leftAyahId: AyahId;
+    rightAyahId: AyahId;
+};
+type SajdaType = "recommended" | "obligatory";
+type Sajda = [AyahId, SajdaType];
+type SurahMeta = [
+    startAyahId: AyahId,
+    ayahCount: number,
+    surahOrder: number,
+    rukuCount: number,
+    name: string,
+    isMeccan: boolean,
+    page: Page
+];
+type SuraName = [name: string, translitName: string];
+
+/**
+ *  Turns String of type "x:y" or "x:y1-y2" to array [x,y] or [x,[y1,y2]] respectively
+ * @param {*} str String of type "x:y" or "x:y1-y2"
+ * @returns {array} array [x,y] or [x,[y1,y2]] respectively
+ */
+declare function ayaStringSplitter(str: string): SurahAyahSegment;
+
+/**
+ * Get the ayah ID for the given surah and ayah number.
+ * @param surah - The surah number.
+ * @param ayah - The ayah number within the surah.
+ * @returns The ayah ID for the given surah and ayah number.
+ */
+declare function findAyaidBySurah(surah: Surah, ayah: AyahNo): AyahId;
+
+/**
+ * Finds the Juz (part) of the Quran that the given Ayah (verse) belongs to.
+ *
+ * @param surah - The Surah (chapter) number.
+ * @param ayah - The Ayah (verse) number. Defaults to 1 if not provided.
+ * @param ayahMode - If true, the `ayah` parameter is treated as an Ayah ID instead of a Surah and Ayah number.
+ * @returns The Juz (part) number that the given Ayah belongs to.
+ */
+declare function findJuz(surah: Surah, ayah?: AyahNo, ayahMode?: boolean): Juz;
+
+/**
+ * Finds the juz (section) that contains the specified ayah (verse) and calculates the number of ayahs between the start of the juz and the start of the surah (chapter) that contains the ayah.
+ *
+ * @param surah - The surah (chapter) that contains the ayah.
+ * @param ayah - The ayah (verse) number.
+ * @param ayahMode - A boolean flag indicating whether the `ayah` parameter represents an ayah number or an ayah ID.
+ * @returns An object containing the following properties:
+ *   - `juz`: The juz (section) that contains the ayah.
+ *   - `leftAyahId`: The ayah ID of the first ayah in the juz.
+ *   - `ayahsBetweenJuzSurah`: The number of ayahs between the start of the juz and the start of the surah (positive if the surah starts is in the juz, negative if the surah starts before the juz).
+ */
+declare function findJuzAndShift(surah: Surah, ayah: AyahNo, ayahMode?: boolean): {
+    juz: Juz;
+    leftAyahId: AyahId;
+    ayahsBetweenJuzSurah: number;
+};
+
+/**
+ * Finds the Juz (part) of the Quran that contains the given Ayah (verse) ID.
+ *
+ * @param ayaId - The ID of the Ayah (verse) to find the Juz for.
+ * @returns The Juz (part) of the Quran that contains the given Ayah ID.
+ */
+declare function findJuzByAyaid(ayaId: AyahId): Juz;
+
+/**
+ * Finds the Juz (part) and Hizb (section) of the Quran that the given Ayah (verse) belongs to.
+ *
+ * @param surah - The Surah (chapter) number.
+ * @param ayah - The Ayah (verse) number. Defaults to 1 if not provided.
+ * @param ayahMode - If true, the `ayah` parameter is treated as an Ayah ID instead of a Surah and Ayah number.
+ * @returns An object containing the Juz (part) number, Hizb (section) number, and the index of the Hizb that the given Ayah belongs to.
+ */
+declare function findJuzHizb(surah: Surah, ayah?: AyahNo, ayahMode?: boolean): JuzHizb;
+
+/**
+ * Finds the Juz, Hizb, and Hizb ID for the given Ayah ID.
+ *
+ * @param ayaId - The Ayah ID to find the Juz, Hizb, and Hizb ID for.
+ * @returns An object containing the Juz, Hizb, and Hizb ID for the given Ayah ID.
+ */
+declare function findJuzHizbByAyaid(ayaId: AyahId): JuzHizb;
+
+/**
+ * Finds the JuzMeta for a given Surah and Ayah.
+ *
+ * @param surah - The Surah (chapter) number.
+ * @param ayah - The Ayah (verse) number.
+ * @returns The JuzMeta object containing the left juz, ayahs between juz and surah, right juz, left ayah ID, and right ayah ID.
+ */
+declare function findJuzMetaBySurah(surah: Surah, ayah?: AyahNo): JuzMeta;
+
+/**
+ * Finds the page number for the given Surah and Ayah number.
+ *
+ * @param surah - The Surah to find the page for.
+ * @param ayah - The Ayah number to find the page for.
+ * @param ayahMode - If true, the `ayah` parameter is treated as an AyahId instead of an AyahNo.
+ * @returns The page number for the given Surah and Ayah.
+ */
+declare function findPage(surah: Surah, ayah: AyahNo, ayahMode?: boolean): Page;
+
+/**
+ * ALternative deprecated method
+ * @param {*} pageNum
+ */
+/**
+ * Find range containing ayah according to the mode
+ * @param surah
+ * @param ayah
+ * @param {*} mode can be either 'all', 'juz', 'surah', 'ayah', 'page'
+ * default is all
+ */
+declare function findRangeAroundAyah(surah: Surah, ayah: AyahNo, mode: "juz" | "surah" | "ayah" | "page" | "all", ayahMode?: boolean): SurahAyah;
+
+/**
+ * Finds the Surah (chapter) and Ayah (verse) numbers that the given Ayah ID belongs to.
+ *
+ * @param ayaId - The Ayah ID to find the Surah and Ayah numbers for.
+ * @returns An array containing the Surah number and the Ayah number within that Surah.
+ */
+declare function findSurahByAyaid(ayaId: AyahId): SurahAyah;
+
+/**
+ * Get the number of ayahs (verses) in the specified surah.
+ * @param surah - The surah number.
+ * @returns The number of ayahs in the specified surah.
+ */
+declare function getAyaCountinSura(surah: Surah): number;
+
+/**
+ * Gets the metadata for the specified Surah.
+ *
+ * @param surah - The Surah to get the metadata for.
+ * @returns The metadata for the specified Surah.
+ */
+declare function getSurahMeta(surah: Surah): SurahMeta;
+
+/**
+ * Returns the Juz (part) number that the given Ayah (verse) belongs to.
+ *
+ *
+ * @param surah - The Surah (chapter) number.
+ * @param ayah - The Ayah (verse) number.
+ * @param ayahMode - If true, the `ayah` parameter is treated as an Ayah ID instead of a Surah and Ayah number.
+ * @returns The Juz (part) number that the given Ayah belongs to. Returns Positive number if aya is first ayah of juz, number is juz number
+ */
+declare function isAyahJuzFirst(surah: Surah, ayah: AyahNo, ayahMode?: boolean): Juz;
+
+/**
+ * Determines if the given ayah is the first ayah of a juz.
+ *
+ * @param surah - The surah number.
+ * @param ayah - The ayah number.
+ * @param ayahMode - Optional flag to indicate if the ayah number is already a valid ayah ID.
+ * @returns The juz number if the ayah is the first ayah of the juz, otherwise -1.
+ */
+declare function isAyahPageFirst(surah: Surah, ayah: AyahNo, ayahMode?: boolean): Juz;
+
+declare const HizbQuarterList: AyahId[];
+
+declare const JuzList: AyahId[];
+
+declare const ManzilList: AyahId[];
+
+declare const PageList: AyahId[];
+
+declare const RukuList: AyahId[];
+
+declare const SajdaList: Sajda[];
+
+declare const SuraList: SurahMeta[];
+
+/**
+ * Get the next ayah for the given surah and ayah number.
+ * @param surah - The surah number.
+ * @param ayah - The ayah number within the surah.
+ * @returns The surah and ayah number of the next ayah.
+ */
+declare function nextAyah(surah: Surah, ayah: AyahNo): SurahAyah;
+
+/**
+ * Retrieves the page metadata for the specified page number.
+ *
+ * @param pageNum - The page number to retrieve metadata for.
+ * @returns The page metadata, including the first and last ayah IDs on the page.
+ * @throws {RangeError} If the page number is out of the valid range (1 to `meta.numPages`).
+ */
+declare function pageMeta(pageNum: Page): PageMeta;
+
+/**
+ * Get the previous ayah for the given surah and ayah number.
+ * @param surah - The surah number.
+ * @param ayah - The ayah number within the surah.
+ * @returns The surah and ayah number of the previous ayah.
+ */
+declare function prevAyah(surah: Surah, ayah: AyahNo): SurahAyah;
+
+/**
+ * Checks if the given Surah (chapter) number is valid.
+ *
+ * @param surah - The Surah (chapter) number to check.
+ * @param checkOnly - If true, the function will only check the validity and not throw an error.
+ * @returns True if the Surah number is valid, false otherwise.
+ */
+declare function checkValidSurah(surah: number, checkOnly?: boolean): boolean;
+/**
+ * Checks if the given Surah and Ayah (verse) numbers are valid.
+ *
+ * @param surah - The Surah (chapter) number to check.
+ * @param ayah - The Ayah (verse) number to check.
+ * @param checkOnly - If true, the function will only check the validity and not throw an error.
+ * @returns True if the Surah and Ayah numbers are valid, false otherwise.
+ */
+declare function checkValidSurahAyah(surah: number, ayah: number, checkOnly?: boolean): boolean;
+/**
+ * Checks if the given Ayah (verse) ID is valid.
+ *
+ * @param ayahId - The Ayah (verse) ID to check.
+ * @param checkOnly - If true, the function will only check the validity and not throw an error.
+ * @returns True if the Ayah ID is valid, otherwise throws a RangeError.
+ */
+declare function checkValidAyahId(ayahId: number, checkOnly?: boolean): boolean;
+
+declare const suraNames$1: (SuraName | [])[];
+
+declare const suraNames: (SuraName | [])[];
+
+export { type AyahId, type AyahNo, HizbQuarterList, type Juz, type JuzHizb, JuzList, type JuzMeta, ManzilList, type Page, PageList, type PageMeta, type QuranMeta, RukuList, type Sajda, SajdaList, type SajdaType, SuraList, type SuraName, type Surah, type SurahAyah, type SurahAyahSegment, type SurahMeta, ayaStringSplitter, checkValidAyahId, checkValidSurah, checkValidSurahAyah, findAyaidBySurah, findJuz, findJuzAndShift, findJuzByAyaid, findJuzHizb, findJuzHizbByAyaid, findJuzMetaBySurah, findPage, findRangeAroundAyah, findSurahByAyaid, getAyaCountinSura, getSurahMeta, isAyahJuzFirst, isAyahPageFirst, meta, nextAyah, pageMeta, prevAyah, suraNames$1 as suraNamesEn, suraNames as suraNamesRu };
diff --git a/dist/index.d.ts b/dist/index.d.ts
new file mode 100644
index 0000000..8a82018
--- /dev/null
+++ b/dist/index.d.ts
@@ -0,0 +1,260 @@
+type QuranMeta = {
+    numAyas: number;
+    numSuras: number;
+    numPages: number;
+    numJuzs: number;
+    manzilCount: number;
+};
+declare const meta: Readonly<QuranMeta>;
+
+type Surah = number;
+type AyahNo = number;
+type AyahId = number;
+type Page = number;
+type Juz = number;
+type JuzHizb = {
+    juz: Juz;
+    hizb: number;
+    id: number;
+};
+type SurahAyah = [Surah, AyahNo];
+type SurahAyahSegment = [Surah, AyahNo | [AyahNo, AyahNo]];
+type PageMeta = {
+    pageNum: Page;
+    first: SurahAyah;
+    last: SurahAyah;
+};
+type JuzMeta = {
+    leftjuz: Juz;
+    ayahsBetweenJuzSurah: number;
+    rightJuz: Juz;
+    leftAyahId: AyahId;
+    rightAyahId: AyahId;
+};
+type SajdaType = "recommended" | "obligatory";
+type Sajda = [AyahId, SajdaType];
+type SurahMeta = [
+    startAyahId: AyahId,
+    ayahCount: number,
+    surahOrder: number,
+    rukuCount: number,
+    name: string,
+    isMeccan: boolean,
+    page: Page
+];
+type SuraName = [name: string, translitName: string];
+
+/**
+ *  Turns String of type "x:y" or "x:y1-y2" to array [x,y] or [x,[y1,y2]] respectively
+ * @param {*} str String of type "x:y" or "x:y1-y2"
+ * @returns {array} array [x,y] or [x,[y1,y2]] respectively
+ */
+declare function ayaStringSplitter(str: string): SurahAyahSegment;
+
+/**
+ * Get the ayah ID for the given surah and ayah number.
+ * @param surah - The surah number.
+ * @param ayah - The ayah number within the surah.
+ * @returns The ayah ID for the given surah and ayah number.
+ */
+declare function findAyaidBySurah(surah: Surah, ayah: AyahNo): AyahId;
+
+/**
+ * Finds the Juz (part) of the Quran that the given Ayah (verse) belongs to.
+ *
+ * @param surah - The Surah (chapter) number.
+ * @param ayah - The Ayah (verse) number. Defaults to 1 if not provided.
+ * @param ayahMode - If true, the `ayah` parameter is treated as an Ayah ID instead of a Surah and Ayah number.
+ * @returns The Juz (part) number that the given Ayah belongs to.
+ */
+declare function findJuz(surah: Surah, ayah?: AyahNo, ayahMode?: boolean): Juz;
+
+/**
+ * Finds the juz (section) that contains the specified ayah (verse) and calculates the number of ayahs between the start of the juz and the start of the surah (chapter) that contains the ayah.
+ *
+ * @param surah - The surah (chapter) that contains the ayah.
+ * @param ayah - The ayah (verse) number.
+ * @param ayahMode - A boolean flag indicating whether the `ayah` parameter represents an ayah number or an ayah ID.
+ * @returns An object containing the following properties:
+ *   - `juz`: The juz (section) that contains the ayah.
+ *   - `leftAyahId`: The ayah ID of the first ayah in the juz.
+ *   - `ayahsBetweenJuzSurah`: The number of ayahs between the start of the juz and the start of the surah (positive if the surah starts is in the juz, negative if the surah starts before the juz).
+ */
+declare function findJuzAndShift(surah: Surah, ayah: AyahNo, ayahMode?: boolean): {
+    juz: Juz;
+    leftAyahId: AyahId;
+    ayahsBetweenJuzSurah: number;
+};
+
+/**
+ * Finds the Juz (part) of the Quran that contains the given Ayah (verse) ID.
+ *
+ * @param ayaId - The ID of the Ayah (verse) to find the Juz for.
+ * @returns The Juz (part) of the Quran that contains the given Ayah ID.
+ */
+declare function findJuzByAyaid(ayaId: AyahId): Juz;
+
+/**
+ * Finds the Juz (part) and Hizb (section) of the Quran that the given Ayah (verse) belongs to.
+ *
+ * @param surah - The Surah (chapter) number.
+ * @param ayah - The Ayah (verse) number. Defaults to 1 if not provided.
+ * @param ayahMode - If true, the `ayah` parameter is treated as an Ayah ID instead of a Surah and Ayah number.
+ * @returns An object containing the Juz (part) number, Hizb (section) number, and the index of the Hizb that the given Ayah belongs to.
+ */
+declare function findJuzHizb(surah: Surah, ayah?: AyahNo, ayahMode?: boolean): JuzHizb;
+
+/**
+ * Finds the Juz, Hizb, and Hizb ID for the given Ayah ID.
+ *
+ * @param ayaId - The Ayah ID to find the Juz, Hizb, and Hizb ID for.
+ * @returns An object containing the Juz, Hizb, and Hizb ID for the given Ayah ID.
+ */
+declare function findJuzHizbByAyaid(ayaId: AyahId): JuzHizb;
+
+/**
+ * Finds the JuzMeta for a given Surah and Ayah.
+ *
+ * @param surah - The Surah (chapter) number.
+ * @param ayah - The Ayah (verse) number.
+ * @returns The JuzMeta object containing the left juz, ayahs between juz and surah, right juz, left ayah ID, and right ayah ID.
+ */
+declare function findJuzMetaBySurah(surah: Surah, ayah?: AyahNo): JuzMeta;
+
+/**
+ * Finds the page number for the given Surah and Ayah number.
+ *
+ * @param surah - The Surah to find the page for.
+ * @param ayah - The Ayah number to find the page for.
+ * @param ayahMode - If true, the `ayah` parameter is treated as an AyahId instead of an AyahNo.
+ * @returns The page number for the given Surah and Ayah.
+ */
+declare function findPage(surah: Surah, ayah: AyahNo, ayahMode?: boolean): Page;
+
+/**
+ * ALternative deprecated method
+ * @param {*} pageNum
+ */
+/**
+ * Find range containing ayah according to the mode
+ * @param surah
+ * @param ayah
+ * @param {*} mode can be either 'all', 'juz', 'surah', 'ayah', 'page'
+ * default is all
+ */
+declare function findRangeAroundAyah(surah: Surah, ayah: AyahNo, mode: "juz" | "surah" | "ayah" | "page" | "all", ayahMode?: boolean): SurahAyah;
+
+/**
+ * Finds the Surah (chapter) and Ayah (verse) numbers that the given Ayah ID belongs to.
+ *
+ * @param ayaId - The Ayah ID to find the Surah and Ayah numbers for.
+ * @returns An array containing the Surah number and the Ayah number within that Surah.
+ */
+declare function findSurahByAyaid(ayaId: AyahId): SurahAyah;
+
+/**
+ * Get the number of ayahs (verses) in the specified surah.
+ * @param surah - The surah number.
+ * @returns The number of ayahs in the specified surah.
+ */
+declare function getAyaCountinSura(surah: Surah): number;
+
+/**
+ * Gets the metadata for the specified Surah.
+ *
+ * @param surah - The Surah to get the metadata for.
+ * @returns The metadata for the specified Surah.
+ */
+declare function getSurahMeta(surah: Surah): SurahMeta;
+
+/**
+ * Returns the Juz (part) number that the given Ayah (verse) belongs to.
+ *
+ *
+ * @param surah - The Surah (chapter) number.
+ * @param ayah - The Ayah (verse) number.
+ * @param ayahMode - If true, the `ayah` parameter is treated as an Ayah ID instead of a Surah and Ayah number.
+ * @returns The Juz (part) number that the given Ayah belongs to. Returns Positive number if aya is first ayah of juz, number is juz number
+ */
+declare function isAyahJuzFirst(surah: Surah, ayah: AyahNo, ayahMode?: boolean): Juz;
+
+/**
+ * Determines if the given ayah is the first ayah of a juz.
+ *
+ * @param surah - The surah number.
+ * @param ayah - The ayah number.
+ * @param ayahMode - Optional flag to indicate if the ayah number is already a valid ayah ID.
+ * @returns The juz number if the ayah is the first ayah of the juz, otherwise -1.
+ */
+declare function isAyahPageFirst(surah: Surah, ayah: AyahNo, ayahMode?: boolean): Juz;
+
+declare const HizbQuarterList: AyahId[];
+
+declare const JuzList: AyahId[];
+
+declare const ManzilList: AyahId[];
+
+declare const PageList: AyahId[];
+
+declare const RukuList: AyahId[];
+
+declare const SajdaList: Sajda[];
+
+declare const SuraList: SurahMeta[];
+
+/**
+ * Get the next ayah for the given surah and ayah number.
+ * @param surah - The surah number.
+ * @param ayah - The ayah number within the surah.
+ * @returns The surah and ayah number of the next ayah.
+ */
+declare function nextAyah(surah: Surah, ayah: AyahNo): SurahAyah;
+
+/**
+ * Retrieves the page metadata for the specified page number.
+ *
+ * @param pageNum - The page number to retrieve metadata for.
+ * @returns The page metadata, including the first and last ayah IDs on the page.
+ * @throws {RangeError} If the page number is out of the valid range (1 to `meta.numPages`).
+ */
+declare function pageMeta(pageNum: Page): PageMeta;
+
+/**
+ * Get the previous ayah for the given surah and ayah number.
+ * @param surah - The surah number.
+ * @param ayah - The ayah number within the surah.
+ * @returns The surah and ayah number of the previous ayah.
+ */
+declare function prevAyah(surah: Surah, ayah: AyahNo): SurahAyah;
+
+/**
+ * Checks if the given Surah (chapter) number is valid.
+ *
+ * @param surah - The Surah (chapter) number to check.
+ * @param checkOnly - If true, the function will only check the validity and not throw an error.
+ * @returns True if the Surah number is valid, false otherwise.
+ */
+declare function checkValidSurah(surah: number, checkOnly?: boolean): boolean;
+/**
+ * Checks if the given Surah and Ayah (verse) numbers are valid.
+ *
+ * @param surah - The Surah (chapter) number to check.
+ * @param ayah - The Ayah (verse) number to check.
+ * @param checkOnly - If true, the function will only check the validity and not throw an error.
+ * @returns True if the Surah and Ayah numbers are valid, false otherwise.
+ */
+declare function checkValidSurahAyah(surah: number, ayah: number, checkOnly?: boolean): boolean;
+/**
+ * Checks if the given Ayah (verse) ID is valid.
+ *
+ * @param ayahId - The Ayah (verse) ID to check.
+ * @param checkOnly - If true, the function will only check the validity and not throw an error.
+ * @returns True if the Ayah ID is valid, otherwise throws a RangeError.
+ */
+declare function checkValidAyahId(ayahId: number, checkOnly?: boolean): boolean;
+
+declare const suraNames$1: (SuraName | [])[];
+
+declare const suraNames: (SuraName | [])[];
+
+export { type AyahId, type AyahNo, HizbQuarterList, type Juz, type JuzHizb, JuzList, type JuzMeta, ManzilList, type Page, PageList, type PageMeta, type QuranMeta, RukuList, type Sajda, SajdaList, type SajdaType, SuraList, type SuraName, type Surah, type SurahAyah, type SurahAyahSegment, type SurahMeta, ayaStringSplitter, checkValidAyahId, checkValidSurah, checkValidSurahAyah, findAyaidBySurah, findJuz, findJuzAndShift, findJuzByAyaid, findJuzHizb, findJuzHizbByAyaid, findJuzMetaBySurah, findPage, findRangeAroundAyah, findSurahByAyaid, getAyaCountinSura, getSurahMeta, isAyahJuzFirst, isAyahPageFirst, meta, nextAyah, pageMeta, prevAyah, suraNames$1 as suraNamesEn, suraNames as suraNamesRu };
diff --git a/dist/index.mjs b/dist/index.mjs
new file mode 100644
index 0000000..10fe5a5
--- /dev/null
+++ b/dist/index.mjs
@@ -0,0 +1,2069 @@
+/*! 
+ * Quran Meta library 2.5.1
+ *
+ * Released under the MIT license
+ */
+
+const meta = Object.freeze({
+  numAyas: 6236,
+  numSuras: 114,
+  numPages: 604,
+  numJuzs: 30,
+  manzilCount: 7
+});
+
+const SuraList = [
+  [-1, -1, -1, -1, "", false, -1],
+  [0, 7, 5, 1, "\u0627\u0644\u0641\u0627\u062A\u062D\u0629", true, 1],
+  [7, 286, 87, 40, "\u0627\u0644\u0628\u0642\u0631\u0629", false, 2],
+  [293, 200, 89, 20, "\u0622\u0644 \u0639\u0645\u0631\u0627\u0646", false, 50],
+  [493, 176, 92, 24, "\u0627\u0644\u0646\u0633\u0627\u0621", false, 77],
+  [669, 120, 112, 16, "\u0627\u0644\u0645\u0627\u0626\u062F\u0629", false, 107],
+  [789, 165, 55, 20, "\u0627\u0644\u0623\u0646\u0639\u0627\u0645", true, 128],
+  [954, 206, 39, 24, "\u0627\u0644\u0623\u0639\u0631\u0627\u0641", true, 151],
+  [1160, 75, 88, 10, "\u0627\u0644\u0623\u0646\u0641\u0627\u0644", false, 177],
+  [1235, 129, 113, 16, "\u0627\u0644\u062A\u0648\u0628\u0629", false, 187],
+  [1364, 109, 51, 11, "\u064A\u0648\u0646\u0633", true, 208],
+  [1473, 123, 52, 10, "\u0647\u0648\u062F", true, 222],
+  [1596, 111, 53, 12, "\u064A\u0648\u0633\u0641", true, 236],
+  [1707, 43, 96, 6, "\u0627\u0644\u0631\u0639\u062F", false, 249],
+  [1750, 52, 72, 7, "\u0627\u0628\u0631\u0627\u0647\u064A\u0645", true, 256],
+  [1802, 99, 54, 6, "\u0627\u0644\u062D\u062C\u0631", true, 262],
+  [1901, 128, 70, 16, "\u0627\u0644\u0646\u062D\u0644", true, 268],
+  [2029, 111, 50, 12, "\u0627\u0644\u0625\u0633\u0631\u0627\u0621", true, 282],
+  [2140, 110, 69, 12, "\u0627\u0644\u0643\u0647\u0641", true, 294],
+  [2250, 98, 44, 6, "\u0645\u0631\u064A\u0645", true, 305],
+  [2348, 135, 45, 8, "\u0637\u0647", true, 313],
+  [2483, 112, 73, 7, "\u0627\u0644\u0623\u0646\u0628\u064A\u0627\u0621", true, 322],
+  [2595, 78, 103, 10, "\u0627\u0644\u062D\u062C", false, 332],
+  [2673, 118, 74, 6, "\u0627\u0644\u0645\u0624\u0645\u0646\u0648\u0646", true, 342],
+  [2791, 64, 102, 9, "\u0627\u0644\u0646\u0648\u0631", false, 350],
+  [2855, 77, 42, 6, "\u0627\u0644\u0641\u0631\u0642\u0627\u0646", true, 360],
+  [2932, 227, 47, 11, "\u0627\u0644\u0634\u0639\u0631\u0627\u0621", true, 367],
+  [3159, 93, 48, 7, "\u0627\u0644\u0646\u0645\u0644", true, 377],
+  [3252, 88, 49, 8, "\u0627\u0644\u0642\u0635\u0635", true, 386],
+  [3340, 69, 85, 7, "\u0627\u0644\u0639\u0646\u0643\u0628\u0648\u062A", true, 397],
+  [3409, 60, 84, 6, "\u0627\u0644\u0631\u0648\u0645", true, 405],
+  [3469, 34, 57, 3, "\u0644\u0642\u0645\u0627\u0646", true, 411],
+  [3503, 30, 75, 3, "\u0627\u0644\u0633\u062C\u062F\u0629", true, 415],
+  [3533, 73, 90, 9, "\u0627\u0644\u0623\u062D\u0632\u0627\u0628", false, 418],
+  [3606, 54, 58, 6, "\u0633\u0628\u0625", true, 428],
+  [3660, 45, 43, 5, "\u0641\u0627\u0637\u0631", true, 435],
+  [3705, 83, 41, 5, "\u064A\u0633", true, 441],
+  [3788, 182, 56, 5, "\u0627\u0644\u0635\u0627\u0641\u0627\u062A", true, 446],
+  [3970, 88, 38, 5, "\u0635", true, 453],
+  [4058, 75, 59, 8, "\u0627\u0644\u0632\u0645\u0631", true, 459],
+  [4133, 85, 60, 9, "\u063A\u0627\u0641\u0631", true, 468],
+  [4218, 54, 61, 6, "\u0641\u0635\u0644\u062A", true, 477],
+  [4272, 53, 62, 5, "\u0627\u0644\u0634\u0648\u0631\u0649", true, 483],
+  [4325, 89, 63, 7, "\u0627\u0644\u0632\u062E\u0631\u0641", true, 490],
+  [4414, 59, 64, 3, "\u0627\u0644\u062F\u062E\u0627\u0646", true, 496],
+  [4473, 37, 65, 4, "\u0627\u0644\u062C\u0627\u062B\u064A\u0629", true, 499],
+  [4510, 35, 66, 4, "\u0627\u0644\u0623\u062D\u0642\u0627\u0641", true, 503],
+  [4545, 38, 95, 4, "\u0645\u062D\u0645\u062F", false, 507],
+  [4583, 29, 111, 4, "\u0627\u0644\u0641\u062A\u062D", false, 511],
+  [4612, 18, 106, 2, "\u0627\u0644\u062D\u062C\u0631\u0627\u062A", false, 516],
+  [4630, 45, 34, 3, "\u0642", true, 518],
+  [4675, 60, 67, 3, "\u0627\u0644\u0630\u0627\u0631\u064A\u0627\u062A", true, 521],
+  [4735, 49, 76, 2, "\u0627\u0644\u0637\u0648\u0631", true, 524],
+  [4784, 62, 23, 3, "\u0627\u0644\u0646\u062C\u0645", true, 526],
+  [4846, 55, 37, 3, "\u0627\u0644\u0642\u0645\u0631", true, 529],
+  [4901, 78, 97, 3, "\u0627\u0644\u0631\u062D\u0645\u0646", false, 532],
+  [4979, 96, 46, 3, "\u0627\u0644\u0648\u0627\u0642\u0639\u0629", true, 535],
+  [5075, 29, 94, 4, "\u0627\u0644\u062D\u062F\u064A\u062F", false, 538],
+  [5104, 22, 105, 3, "\u0627\u0644\u0645\u062C\u0627\u062F\u0644\u0629", false, 542],
+  [5126, 24, 101, 3, "\u0627\u0644\u062D\u0634\u0631", false, 546],
+  [5150, 13, 91, 2, "\u0627\u0644\u0645\u0645\u062A\u062D\u0646\u0629", false, 549],
+  [5163, 14, 109, 2, "\u0627\u0644\u0635\u0641", false, 552],
+  [5177, 11, 110, 2, "\u0627\u0644\u062C\u0645\u0639\u0629", false, 553],
+  [5188, 11, 104, 2, "\u0627\u0644\u0645\u0646\u0627\u0641\u0642\u0648\u0646", false, 555],
+  [5199, 18, 108, 2, "\u0627\u0644\u062A\u063A\u0627\u0628\u0646", false, 556],
+  [5217, 12, 99, 2, "\u0627\u0644\u0637\u0644\u0627\u0642", false, 558],
+  [5229, 12, 107, 2, "\u0627\u0644\u062A\u062D\u0631\u064A\u0645", false, 560],
+  [5241, 30, 77, 2, "\u0627\u0644\u0645\u0644\u0643", true, 562],
+  [5271, 52, 2, 2, "\u0627\u0644\u0642\u0644\u0645", true, 565],
+  [5323, 52, 78, 2, "\u0627\u0644\u062D\u0627\u0642\u0629", true, 567],
+  [5375, 44, 79, 2, "\u0627\u0644\u0645\u0639\u0627\u0631\u062C", true, 569],
+  [5419, 28, 71, 2, "\u0646\u0648\u062D", true, 571],
+  [5447, 28, 40, 2, "\u0627\u0644\u062C\u0646", true, 572],
+  [5475, 20, 3, 2, "\u0627\u0644\u0645\u0632\u0645\u0644", true, 574],
+  [5495, 56, 4, 2, "\u0627\u0644\u0645\u062F\u062B\u0631", true, 576],
+  [5551, 40, 31, 2, "\u0627\u0644\u0642\u064A\u0627\u0645\u0629", true, 578],
+  [5591, 31, 98, 2, "\u0627\u0644\u0627\u0646\u0633\u0627\u0646", false, 579],
+  [5622, 50, 33, 2, "\u0627\u0644\u0645\u0631\u0633\u0644\u0627\u062A", true, 581],
+  [5672, 40, 80, 2, "\u0627\u0644\u0646\u0628\u0625", true, 582],
+  [5712, 46, 81, 2, "\u0627\u0644\u0646\u0627\u0632\u0639\u0627\u062A", true, 584],
+  [5758, 42, 24, 1, "\u0639\u0628\u0633", true, 585],
+  [5800, 29, 7, 1, "\u0627\u0644\u062A\u0643\u0648\u064A\u0631", true, 586],
+  [5829, 19, 82, 1, "\u0627\u0644\u0625\u0646\u0641\u0637\u0627\u0631", true, 587],
+  [5848, 36, 86, 1, "\u0627\u0644\u0645\u0637\u0641\u0641\u064A\u0646", true, 588],
+  [5884, 25, 83, 1, "\u0627\u0644\u0625\u0646\u0634\u0642\u0627\u0642", true, 589],
+  [5909, 22, 27, 1, "\u0627\u0644\u0628\u0631\u0648\u062C", true, 590],
+  [5931, 17, 36, 1, "\u0627\u0644\u0637\u0627\u0631\u0642", true, 591],
+  [5948, 19, 8, 1, "\u0627\u0644\u0623\u0639\u0644\u0649", true, 592],
+  [5967, 26, 68, 1, "\u0627\u0644\u063A\u0627\u0634\u064A\u0629", true, 592],
+  [5993, 30, 10, 1, "\u0627\u0644\u0641\u062C\u0631", true, 593],
+  [6023, 20, 35, 1, "\u0627\u0644\u0628\u0644\u062F", true, 594],
+  [6043, 15, 26, 1, "\u0627\u0644\u0634\u0645\u0633", true, 595],
+  [6058, 21, 9, 1, "\u0627\u0644\u0644\u064A\u0644", true, 596],
+  [6079, 11, 11, 1, "\u0627\u0644\u0636\u062D\u0649", true, 596],
+  [6090, 8, 12, 1, "\u0627\u0644\u0634\u0631\u062D", true, 596],
+  [6098, 8, 28, 1, "\u0627\u0644\u062A\u064A\u0646", true, 597],
+  [6106, 19, 1, 1, "\u0627\u0644\u0639\u0644\u0642", true, 597],
+  [6125, 5, 25, 1, "\u0627\u0644\u0642\u062F\u0631", true, 598],
+  [6130, 8, 100, 1, "\u0627\u0644\u0628\u064A\u0646\u0629", false, 599],
+  [6138, 8, 93, 1, "\u0627\u0644\u0632\u0644\u0632\u0644\u0629", false, 599],
+  [6146, 11, 14, 1, "\u0627\u0644\u0639\u0627\u062F\u064A\u0627\u062A", true, 600],
+  [6157, 11, 30, 1, "\u0627\u0644\u0642\u0627\u0631\u0639\u0629", true, 600],
+  [6168, 8, 16, 1, "\u0627\u0644\u062A\u0643\u0627\u062B\u0631", true, 600],
+  [6176, 3, 13, 1, "\u0627\u0644\u0639\u0635\u0631", true, 601],
+  [6179, 9, 32, 1, "\u0627\u0644\u0647\u0645\u0632\u0629", true, 601],
+  [6188, 5, 19, 1, "\u0627\u0644\u0641\u064A\u0644", true, 601],
+  [6193, 4, 29, 1, "\u0642\u0631\u064A\u0634", true, 602],
+  [6197, 7, 17, 1, "\u0627\u0644\u0645\u0627\u0639\u0648\u0646", true, 602],
+  [6204, 3, 15, 1, "\u0627\u0644\u0643\u0648\u062B\u0631", true, 602],
+  [6207, 6, 18, 1, "\u0627\u0644\u0643\u0627\u0641\u0631\u0648\u0646", true, 603],
+  [6213, 3, 114, 1, "\u0627\u0644\u0646\u0635\u0631", false, 603],
+  [6216, 5, 6, 1, "\u0627\u0644\u0645\u0633\u062F", true, 603],
+  [6221, 4, 22, 1, "\u0627\u0644\u0625\u062E\u0644\u0627\u0635", true, 604],
+  [6225, 5, 20, 1, "\u0627\u0644\u0641\u0644\u0642", true, 604],
+  [6230, 6, 21, 1, "\u0627\u0644\u0646\u0627\u0633", true, 604],
+  [6236, 0, -1, -1, "", false, -1]
+];
+
+function getSurahMeta(surah) {
+  checkValidSurah(surah);
+  return SuraList[surah];
+}
+
+function getAyaCountinSura(surah) {
+  return getSurahMeta(surah)[1];
+}
+
+function checkValidSurah(surah, checkOnly = false) {
+  if (typeof surah !== "number" || !Number.isInteger(surah)) {
+    if (checkOnly) return false;
+    throw new TypeError("Ayah ID must be an integer");
+  }
+  if (surah < 1 || surah > meta.numSuras) {
+    if (checkOnly) return false;
+    throw new RangeError("Surah must be between 1 and " + meta.numSuras);
+  }
+  return true;
+}
+function checkValidSurahAyah(surah, ayah, checkOnly = false) {
+  if (!checkValidSurah(surah, checkOnly)) return false;
+  if (ayah < 1 || ayah > getAyaCountinSura(surah)) {
+    if (checkOnly) return false;
+    throw new RangeError("Ayah must be between 1 and " + getAyaCountinSura(surah));
+  }
+  return true;
+}
+function checkValidAyahId(ayahId, checkOnly = false) {
+  if (typeof ayahId !== "number" || !Number.isInteger(ayahId)) {
+    if (checkOnly) return false;
+    throw new TypeError("Ayah ID must be an integer");
+  }
+  if (ayahId < 1 || ayahId > meta.numAyas) {
+    if (checkOnly) return false;
+    throw new RangeError("Ayah ID must be between 1 and " + meta.numAyas);
+  }
+  return true;
+}
+
+function ayaStringSplitter(str) {
+  const [surahStr, ayahsStr] = str.trim().split(":");
+  const surah = parseInt(surahStr, 10);
+  if (isNaN(surah)) {
+    throw "Error in surah format " + str;
+  }
+  if (!ayahsStr) {
+    throw "Error in data " + str;
+  }
+  let ayahs;
+  if (ayahsStr.includes("-")) {
+    ayahs = ayahsStr.split("-").map((a) => {
+      const ayah = parseInt(a, 10);
+      if (isNaN(ayah) || ayah === 0) {
+        throw "Error in ayah " + a;
+      }
+      return ayah;
+    });
+    if (ayahs[0] > ayahs[1]) throw "Error in ayah range " + str;
+  } else {
+    ayahs = parseInt(ayahsStr, 10);
+    if (isNaN(ayahs) || ayahs === 0) {
+      throw "Error in data " + str;
+    }
+    checkValidSurahAyah(surah, ayahs);
+  }
+  return [surah, ayahs];
+}
+
+function findAyaidBySurah(surah, ayah) {
+  checkValidSurahAyah(surah, ayah);
+  const [startAyahId] = getSurahMeta(surah);
+  return startAyahId + ayah;
+}
+
+const JuzList = [
+  0,
+  1,
+  149,
+  260,
+  386,
+  517,
+  641,
+  751,
+  900,
+  1042,
+  1201,
+  1328,
+  1479,
+  1649,
+  1803,
+  2030,
+  2215,
+  2484,
+  2674,
+  2876,
+  3215,
+  3386,
+  3564,
+  3733,
+  4090,
+  4265,
+  4511,
+  4706,
+  5105,
+  5242,
+  5673,
+  6237
+];
+
+function findJuzByAyaid(ayaId) {
+  checkValidAyahId(ayaId);
+  return JuzList.findIndex((x) => x > ayaId) - 1;
+}
+
+function findJuz(surah, ayah = 1, ayahMode = false) {
+  const ayahId = ayahMode ? ayah : checkValidSurahAyah(surah, ayah) && findAyaidBySurah(surah, ayah);
+  return findJuzByAyaid(ayahId);
+}
+
+function findSurahByAyaid(ayaId) {
+  checkValidAyahId(ayaId);
+  const suraNum = SuraList.findIndex((x) => x[0] >= ayaId) - 1;
+  return [suraNum, ayaId - SuraList[suraNum][0]];
+}
+
+function findJuzAndShift(surah, ayah, ayahMode = false) {
+  const ayahId = ayahMode ? checkValidAyahId(ayah) && ayah : checkValidSurah(surah) && findAyaidBySurah(surah, ayah);
+  const juz = findJuzByAyaid(ayahId);
+  const leftAyahId = JuzList[juz];
+  if (ayahMode) [surah] = findSurahByAyaid(ayahId);
+  const [surahStartAyahId] = SuraList[surah];
+  return {
+    juz,
+    ayahsBetweenJuzSurah: surahStartAyahId - leftAyahId + 1,
+    leftAyahId
+  };
+}
+
+const HizbQuarterList = [
+  0,
+  1,
+  33,
+  51,
+  67,
+  82,
+  99,
+  113,
+  131,
+  149,
+  165,
+  184,
+  196,
+  210,
+  226,
+  240,
+  250,
+  260,
+  270,
+  279,
+  290,
+  308,
+  326,
+  345,
+  368,
+  386,
+  406,
+  426,
+  446,
+  464,
+  479,
+  494,
+  505,
+  517,
+  529,
+  551,
+  567,
+  581,
+  593,
+  607,
+  628,
+  641,
+  656,
+  670,
+  681,
+  696,
+  710,
+  720,
+  736,
+  751,
+  766,
+  778,
+  802,
+  825,
+  848,
+  863,
+  884,
+  900,
+  916,
+  930,
+  940,
+  955,
+  985,
+  1001,
+  1019,
+  1042,
+  1071,
+  1096,
+  1110,
+  1125,
+  1143,
+  1161,
+  1182,
+  1201,
+  1221,
+  1236,
+  1254,
+  1269,
+  1281,
+  1295,
+  1310,
+  1328,
+  1346,
+  1357,
+  1375,
+  1390,
+  1417,
+  1435,
+  1454,
+  1479,
+  1497,
+  1514,
+  1534,
+  1557,
+  1581,
+  1603,
+  1626,
+  1649,
+  1673,
+  1697,
+  1712,
+  1726,
+  1742,
+  1760,
+  1778,
+  1803,
+  1852,
+  1902,
+  1931,
+  1952,
+  1976,
+  1991,
+  2012,
+  2030,
+  2052,
+  2079,
+  2099,
+  2128,
+  2157,
+  2172,
+  2191,
+  2215,
+  2239,
+  2272,
+  2309,
+  2349,
+  2403,
+  2431,
+  2459,
+  2484,
+  2512,
+  2534,
+  2566,
+  2596,
+  2614,
+  2633,
+  2655,
+  2674,
+  2709,
+  2748,
+  2792,
+  2812,
+  2826,
+  2844,
+  2856,
+  2876,
+  2908,
+  2933,
+  2984,
+  3043,
+  3113,
+  3160,
+  3186,
+  3215,
+  3241,
+  3264,
+  3281,
+  3303,
+  3328,
+  3341,
+  3366,
+  3386,
+  3410,
+  3440,
+  3463,
+  3491,
+  3514,
+  3534,
+  3551,
+  3564,
+  3584,
+  3593,
+  3616,
+  3630,
+  3652,
+  3675,
+  3701,
+  3733,
+  3765,
+  3810,
+  3871,
+  3933,
+  3991,
+  4022,
+  4066,
+  4090,
+  4111,
+  4134,
+  4154,
+  4174,
+  4199,
+  4227,
+  4243,
+  4265,
+  4285,
+  4299,
+  4323,
+  4349,
+  4382,
+  4431,
+  4485,
+  4511,
+  4531,
+  4555,
+  4578,
+  4601,
+  4613,
+  4626,
+  4657,
+  4706,
+  4759,
+  4810,
+  4855,
+  4902,
+  4980,
+  5054,
+  5091,
+  5105,
+  5118,
+  5137,
+  5157,
+  5178,
+  5192,
+  5218,
+  5230,
+  5242,
+  5272,
+  5324,
+  5394,
+  5448,
+  5495,
+  5552,
+  5610,
+  5673,
+  5759,
+  5830,
+  5885,
+  5949,
+  6024,
+  6091,
+  6155,
+  6237
+];
+
+function findJuzHizbByAyaid(ayaId) {
+  checkValidAyahId(ayaId);
+  const juz = findJuzByAyaid(ayaId);
+  const quarterIndex = HizbQuarterList.findIndex((x) => x > ayaId) - 1;
+  const hizb = quarterIndex % 8 || 8;
+  return { juz, hizb, id: quarterIndex };
+}
+
+function findJuzHizb(surah, ayah = 1, ayahMode = false) {
+  const ayahId = ayahMode ? ayah : checkValidSurah(surah) && findAyaidBySurah(surah, ayah);
+  return findJuzHizbByAyaid(ayahId);
+}
+
+function findJuzMetaBySurah(surah, ayah = 1) {
+  const {
+    juz: leftjuz,
+    ayahsBetweenJuzSurah,
+    leftAyahId
+  } = findJuzAndShift(surah, ayah);
+  let rightJuz = leftjuz;
+  while (rightJuz < meta.numJuzs && findSurahByAyaid(JuzList[rightJuz + 1])[0] === surah) {
+    rightJuz++;
+  }
+  return {
+    leftjuz,
+    ayahsBetweenJuzSurah,
+    rightJuz,
+    leftAyahId,
+    rightAyahId: JuzList[rightJuz + 1]
+  };
+}
+
+const PageList = [
+  0,
+  1,
+  8,
+  13,
+  24,
+  32,
+  37,
+  45,
+  56,
+  65,
+  69,
+  77,
+  84,
+  91,
+  96,
+  101,
+  109,
+  113,
+  120,
+  127,
+  134,
+  142,
+  149,
+  153,
+  161,
+  171,
+  177,
+  184,
+  189,
+  194,
+  198,
+  204,
+  210,
+  218,
+  223,
+  227,
+  232,
+  238,
+  241,
+  245,
+  253,
+  256,
+  260,
+  264,
+  267,
+  272,
+  277,
+  282,
+  289,
+  290,
+  294,
+  303,
+  309,
+  316,
+  323,
+  331,
+  339,
+  346,
+  355,
+  364,
+  371,
+  377,
+  385,
+  394,
+  402,
+  409,
+  415,
+  426,
+  434,
+  442,
+  447,
+  451,
+  459,
+  467,
+  474,
+  480,
+  488,
+  494,
+  500,
+  505,
+  508,
+  513,
+  517,
+  520,
+  527,
+  531,
+  538,
+  545,
+  553,
+  559,
+  568,
+  573,
+  580,
+  585,
+  588,
+  595,
+  599,
+  607,
+  615,
+  621,
+  628,
+  634,
+  641,
+  648,
+  656,
+  664,
+  669,
+  672,
+  675,
+  679,
+  683,
+  687,
+  693,
+  701,
+  706,
+  711,
+  715,
+  720,
+  727,
+  734,
+  740,
+  746,
+  752,
+  759,
+  765,
+  773,
+  778,
+  783,
+  790,
+  798,
+  808,
+  817,
+  825,
+  834,
+  842,
+  849,
+  858,
+  863,
+  871,
+  880,
+  884,
+  891,
+  900,
+  908,
+  914,
+  921,
+  927,
+  932,
+  936,
+  941,
+  947,
+  955,
+  966,
+  977,
+  985,
+  992,
+  998,
+  1006,
+  1012,
+  1022,
+  1028,
+  1036,
+  1042,
+  1050,
+  1059,
+  1075,
+  1085,
+  1092,
+  1098,
+  1104,
+  1110,
+  1114,
+  1118,
+  1125,
+  1133,
+  1142,
+  1150,
+  1161,
+  1169,
+  1177,
+  1186,
+  1194,
+  1201,
+  1206,
+  1213,
+  1222,
+  1230,
+  1236,
+  1242,
+  1249,
+  1256,
+  1262,
+  1267,
+  1272,
+  1276,
+  1283,
+  1290,
+  1297,
+  1304,
+  1308,
+  1315,
+  1322,
+  1329,
+  1335,
+  1342,
+  1347,
+  1353,
+  1358,
+  1365,
+  1371,
+  1379,
+  1385,
+  1390,
+  1398,
+  1407,
+  1418,
+  1426,
+  1435,
+  1443,
+  1453,
+  1462,
+  1471,
+  1479,
+  1486,
+  1493,
+  1502,
+  1511,
+  1519,
+  1527,
+  1536,
+  1545,
+  1555,
+  1562,
+  1571,
+  1582,
+  1591,
+  1601,
+  1611,
+  1619,
+  1627,
+  1634,
+  1640,
+  1649,
+  1660,
+  1666,
+  1675,
+  1683,
+  1692,
+  1700,
+  1708,
+  1713,
+  1721,
+  1726,
+  1736,
+  1742,
+  1750,
+  1756,
+  1761,
+  1769,
+  1775,
+  1784,
+  1793,
+  1803,
+  1818,
+  1834,
+  1854,
+  1873,
+  1893,
+  1908,
+  1916,
+  1928,
+  1936,
+  1944,
+  1956,
+  1966,
+  1974,
+  1981,
+  1989,
+  1995,
+  2004,
+  2012,
+  2020,
+  2030,
+  2037,
+  2047,
+  2057,
+  2068,
+  2079,
+  2088,
+  2096,
+  2105,
+  2116,
+  2126,
+  2134,
+  2145,
+  2156,
+  2161,
+  2168,
+  2175,
+  2186,
+  2194,
+  2202,
+  2215,
+  2224,
+  2238,
+  2251,
+  2262,
+  2276,
+  2289,
+  2302,
+  2315,
+  2327,
+  2346,
+  2361,
+  2386,
+  2400,
+  2413,
+  2425,
+  2436,
+  2447,
+  2462,
+  2474,
+  2484,
+  2494,
+  2508,
+  2519,
+  2528,
+  2541,
+  2556,
+  2565,
+  2574,
+  2585,
+  2596,
+  2601,
+  2611,
+  2619,
+  2626,
+  2634,
+  2642,
+  2651,
+  2660,
+  2668,
+  2674,
+  2691,
+  2701,
+  2716,
+  2733,
+  2748,
+  2763,
+  2778,
+  2792,
+  2802,
+  2812,
+  2819,
+  2823,
+  2828,
+  2835,
+  2845,
+  2850,
+  2853,
+  2858,
+  2867,
+  2876,
+  2888,
+  2899,
+  2911,
+  2923,
+  2933,
+  2952,
+  2972,
+  2993,
+  3016,
+  3044,
+  3069,
+  3092,
+  3116,
+  3139,
+  3160,
+  3173,
+  3182,
+  3195,
+  3204,
+  3215,
+  3223,
+  3236,
+  3248,
+  3258,
+  3266,
+  3274,
+  3281,
+  3288,
+  3296,
+  3303,
+  3312,
+  3323,
+  3330,
+  3337,
+  3347,
+  3355,
+  3364,
+  3371,
+  3379,
+  3386,
+  3393,
+  3404,
+  3415,
+  3425,
+  3434,
+  3442,
+  3451,
+  3460,
+  3470,
+  3481,
+  3489,
+  3498,
+  3504,
+  3515,
+  3524,
+  3534,
+  3540,
+  3549,
+  3556,
+  3564,
+  3569,
+  3577,
+  3584,
+  3588,
+  3596,
+  3607,
+  3614,
+  3621,
+  3629,
+  3638,
+  3646,
+  3655,
+  3664,
+  3672,
+  3679,
+  3691,
+  3699,
+  3705,
+  3718,
+  3733,
+  3746,
+  3760,
+  3776,
+  3789,
+  3813,
+  3840,
+  3865,
+  3891,
+  3915,
+  3942,
+  3971,
+  3987,
+  3997,
+  4013,
+  4032,
+  4054,
+  4064,
+  4069,
+  4080,
+  4090,
+  4099,
+  4106,
+  4115,
+  4126,
+  4133,
+  4141,
+  4150,
+  4159,
+  4167,
+  4174,
+  4183,
+  4192,
+  4200,
+  4211,
+  4219,
+  4230,
+  4239,
+  4248,
+  4257,
+  4265,
+  4273,
+  4283,
+  4288,
+  4295,
+  4304,
+  4317,
+  4324,
+  4336,
+  4348,
+  4359,
+  4373,
+  4386,
+  4399,
+  4415,
+  4433,
+  4454,
+  4474,
+  4487,
+  4496,
+  4506,
+  4516,
+  4525,
+  4531,
+  4539,
+  4546,
+  4557,
+  4565,
+  4575,
+  4584,
+  4593,
+  4599,
+  4607,
+  4612,
+  4617,
+  4624,
+  4631,
+  4646,
+  4666,
+  4682,
+  4706,
+  4727,
+  4750,
+  4767,
+  4785,
+  4811,
+  4829,
+  4853,
+  4874,
+  4896,
+  4918,
+  4942,
+  4969,
+  4996,
+  5030,
+  5056,
+  5079,
+  5087,
+  5094,
+  5100,
+  5105,
+  5111,
+  5116,
+  5126,
+  5130,
+  5136,
+  5143,
+  5151,
+  5156,
+  5162,
+  5169,
+  5178,
+  5186,
+  5193,
+  5200,
+  5209,
+  5218,
+  5223,
+  5230,
+  5237,
+  5242,
+  5254,
+  5268,
+  5287,
+  5314,
+  5332,
+  5358,
+  5386,
+  5415,
+  5430,
+  5448,
+  5461,
+  5476,
+  5495,
+  5513,
+  5543,
+  5571,
+  5597,
+  5617,
+  5642,
+  5673,
+  5703,
+  5728,
+  5759,
+  5801,
+  5830,
+  5855,
+  5883,
+  5910,
+  5932,
+  5964,
+  5994,
+  6017,
+  6044,
+  6073,
+  6099,
+  6126,
+  6138,
+  6156,
+  6177,
+  6194,
+  6208,
+  6222,
+  6237
+];
+
+function findPage(surah, ayah, ayahMode = false) {
+  const ayahId = ayahMode ? checkValidAyahId(ayah) && ayah : checkValidSurah(surah) && findAyaidBySurah(surah, ayah);
+  return PageList.findIndex((x) => x > ayahId) - 1;
+}
+
+function findRangeAroundAyah(surah, ayah, mode, ayahMode = false) {
+  const ayahId = ayahMode ? ayah : checkValidSurah(surah) && findAyaidBySurah(surah, ayah);
+  switch (mode) {
+    case "juz": {
+      const juz = findJuzByAyaid(ayahId);
+      return [JuzList[juz], JuzList[juz + 1] - 1];
+    }
+    case "surah": {
+      return [SuraList[surah][0] + 1, SuraList[surah + 1][0]];
+    }
+    case "ayah": {
+      return [ayahId, ayahId];
+    }
+    case "page": {
+      const page = findPage(-1, ayahId, true);
+      return [PageList[page], PageList[page + 1] - 1];
+    }
+    case "all":
+    default:
+      return [1, meta.numAyas];
+  }
+}
+
+function binarySearch(ar, el, compare_fn = (a, b) => a - b) {
+  let m = 0;
+  let n = ar.length - 1;
+  while (m <= n) {
+    const k = n + m >> 1;
+    const cmp = compare_fn(el, ar[k]);
+    if (cmp > 0) {
+      m = k + 1;
+    } else if (cmp < 0) {
+      n = k - 1;
+    } else {
+      return k;
+    }
+  }
+  return -m - 1;
+}
+
+function isAyahJuzFirst(surah, ayah, ayahMode = false) {
+  const ayahId = ayahMode ? checkValidAyahId(ayah) && ayah : checkValidSurah(surah) && findAyaidBySurah(surah, ayah);
+  return binarySearch(JuzList, ayahId);
+}
+
+function isAyahPageFirst(surah, ayah, ayahMode = false) {
+  const ayahId = ayahMode ? checkValidAyahId(ayah) && ayah : checkValidSurah(surah) && findAyaidBySurah(surah, ayah);
+  return binarySearch(PageList, ayahId);
+}
+
+const ManzilList = [
+  0,
+  1,
+  670,
+  1365,
+  2030,
+  2933,
+  3789,
+  4631,
+  6237
+];
+
+const RukuList = [
+  0,
+  1,
+  8,
+  15,
+  28,
+  37,
+  47,
+  54,
+  67,
+  69,
+  79,
+  90,
+  94,
+  104,
+  111,
+  120,
+  129,
+  137,
+  149,
+  155,
+  160,
+  171,
+  175,
+  184,
+  190,
+  196,
+  204,
+  218,
+  224,
+  229,
+  236,
+  239,
+  243,
+  250,
+  256,
+  261,
+  265,
+  268,
+  274,
+  281,
+  289,
+  291,
+  294,
+  303,
+  314,
+  324,
+  335,
+  348,
+  357,
+  365,
+  374,
+  385,
+  395,
+  403,
+  414,
+  423,
+  437,
+  442,
+  449,
+  465,
+  474,
+  483,
+  494,
+  504,
+  508,
+  516,
+  519,
+  527,
+  536,
+  544,
+  553,
+  564,
+  570,
+  581,
+  585,
+  590,
+  594,
+  598,
+  606,
+  609,
+  620,
+  628,
+  635,
+  646,
+  656,
+  665,
+  670,
+  675,
+  681,
+  689,
+  696,
+  704,
+  713,
+  720,
+  726,
+  736,
+  747,
+  756,
+  763,
+  770,
+  778,
+  785,
+  790,
+  800,
+  810,
+  820,
+  831,
+  840,
+  845,
+  850,
+  860,
+  872,
+  880,
+  884,
+  890,
+  900,
+  911,
+  919,
+  930,
+  934,
+  940,
+  944,
+  955,
+  965,
+  980,
+  986,
+  994,
+  1002,
+  1008,
+  1013,
+  1019,
+  1027,
+  1039,
+  1048,
+  1054,
+  1063,
+  1081,
+  1084,
+  1096,
+  1102,
+  1106,
+  1112,
+  1117,
+  1126,
+  1136,
+  1143,
+  1161,
+  1171,
+  1180,
+  1189,
+  1198,
+  1205,
+  1209,
+  1219,
+  1225,
+  1230,
+  1236,
+  1242,
+  1252,
+  1260,
+  1265,
+  1273,
+  1278,
+  1295,
+  1302,
+  1308,
+  1316,
+  1325,
+  1335,
+  1346,
+  1354,
+  1358,
+  1365,
+  1375,
+  1385,
+  1395,
+  1405,
+  1418,
+  1425,
+  1435,
+  1447,
+  1457,
+  1468,
+  1474,
+  1482,
+  1498,
+  1509,
+  1523,
+  1534,
+  1542,
+  1557,
+  1569,
+  1583,
+  1597,
+  1603,
+  1617,
+  1626,
+  1632,
+  1639,
+  1646,
+  1654,
+  1665,
+  1676,
+  1690,
+  1701,
+  1708,
+  1715,
+  1726,
+  1734,
+  1739,
+  1745,
+  1751,
+  1757,
+  1763,
+  1772,
+  1778,
+  1785,
+  1792,
+  1803,
+  1818,
+  1828,
+  1847,
+  1863,
+  1882,
+  1902,
+  1911,
+  1923,
+  1927,
+  1936,
+  1942,
+  1952,
+  1962,
+  1967,
+  1972,
+  1978,
+  1985,
+  1991,
+  2002,
+  2012,
+  2021,
+  2030,
+  2040,
+  2052,
+  2060,
+  2070,
+  2082,
+  2090,
+  2100,
+  2107,
+  2114,
+  2123,
+  2130,
+  2141,
+  2153,
+  2158,
+  2163,
+  2172,
+  2185,
+  2190,
+  2194,
+  2200,
+  2211,
+  2223,
+  2242,
+  2251,
+  2266,
+  2291,
+  2301,
+  2316,
+  2333,
+  2349,
+  2373,
+  2403,
+  2425,
+  2438,
+  2453,
+  2464,
+  2477,
+  2484,
+  2494,
+  2513,
+  2525,
+  2534,
+  2559,
+  2577,
+  2596,
+  2606,
+  2618,
+  2621,
+  2629,
+  2634,
+  2644,
+  2653,
+  2660,
+  2668,
+  2674,
+  2696,
+  2706,
+  2724,
+  2751,
+  2766,
+  2792,
+  2802,
+  2812,
+  2818,
+  2826,
+  2832,
+  2842,
+  2849,
+  2853,
+  2856,
+  2865,
+  2876,
+  2890,
+  2900,
+  2916,
+  2933,
+  2942,
+  2966,
+  2985,
+  3002,
+  3037,
+  3055,
+  3073,
+  3092,
+  3108,
+  3124,
+  3160,
+  3174,
+  3191,
+  3204,
+  3218,
+  3226,
+  3242,
+  3253,
+  3266,
+  3274,
+  3281,
+  3295,
+  3303,
+  3313,
+  3328,
+  3341,
+  3354,
+  3363,
+  3371,
+  3385,
+  3392,
+  3404,
+  3410,
+  3420,
+  3429,
+  3437,
+  3450,
+  3463,
+  3470,
+  3481,
+  3489,
+  3504,
+  3515,
+  3526,
+  3534,
+  3542,
+  3554,
+  3561,
+  3568,
+  3574,
+  3586,
+  3592,
+  3602,
+  3607,
+  3616,
+  3628,
+  3637,
+  3643,
+  3652,
+  3661,
+  3668,
+  3675,
+  3687,
+  3698,
+  3706,
+  3718,
+  3738,
+  3756,
+  3773,
+  3789,
+  3810,
+  3863,
+  3902,
+  3927,
+  3971,
+  3985,
+  3997,
+  4011,
+  4035,
+  4059,
+  4068,
+  4080,
+  4090,
+  4100,
+  4111,
+  4122,
+  4129,
+  4134,
+  4143,
+  4154,
+  4161,
+  4171,
+  4184,
+  4194,
+  4202,
+  4212,
+  4219,
+  4227,
+  4237,
+  4244,
+  4251,
+  4263,
+  4273,
+  4282,
+  4292,
+  4302,
+  4316,
+  4326,
+  4341,
+  4351,
+  4361,
+  4371,
+  4382,
+  4393,
+  4415,
+  4444,
+  4457,
+  4474,
+  4485,
+  4495,
+  4500,
+  4511,
+  4521,
+  4531,
+  4537,
+  4546,
+  4557,
+  4565,
+  4574,
+  4584,
+  4594,
+  4601,
+  4610,
+  4613,
+  4623,
+  4631,
+  4646,
+  4660,
+  4676,
+  4699,
+  4722,
+  4736,
+  4764,
+  4785,
+  4810,
+  4817,
+  4847,
+  4869,
+  4887,
+  4902,
+  4927,
+  4947,
+  4980,
+  5018,
+  5054,
+  5076,
+  5086,
+  5095,
+  5101,
+  5105,
+  5111,
+  5118,
+  5127,
+  5137,
+  5144,
+  5151,
+  5157,
+  5164,
+  5173,
+  5178,
+  5186,
+  5189,
+  5197,
+  5200,
+  5210,
+  5218,
+  5225,
+  5230,
+  5237,
+  5242,
+  5256,
+  5272,
+  5305,
+  5324,
+  5361,
+  5376,
+  5411,
+  5420,
+  5440,
+  5448,
+  5467,
+  5476,
+  5495,
+  5496,
+  5527,
+  5552,
+  5582,
+  5592,
+  5614,
+  5623,
+  5663,
+  5673,
+  5703,
+  5713,
+  5739,
+  5759,
+  5801,
+  5830,
+  5849,
+  5885,
+  5910,
+  5932,
+  5949,
+  5968,
+  5994,
+  6024,
+  6044,
+  6059,
+  6080,
+  6091,
+  6099,
+  6107,
+  6126,
+  6131,
+  6139,
+  6147,
+  6158,
+  6169,
+  6177,
+  6180,
+  6189,
+  6194,
+  6198,
+  6205,
+  6208,
+  6214,
+  6217,
+  6222,
+  6226,
+  6231,
+  6237
+];
+
+const SajdaList = [
+  // [ayaId, type]
+  [1160, "recommended"],
+  [1722, "recommended"],
+  [1951, "recommended"],
+  [2138, "recommended"],
+  [2308, "recommended"],
+  [2613, "recommended"],
+  [2672, "recommended"],
+  [2915, "recommended"],
+  [3185, "recommended"],
+  [3518, "obligatory"],
+  [3994, "recommended"],
+  [4256, "obligatory"],
+  [4846, "obligatory"],
+  [5905, "recommended"],
+  [6125, "obligatory"]
+];
+
+function nextAyah(surah, ayah) {
+  if (surah < 1 || surah > meta.numSuras)
+    throw new RangeError("Surah must be between 1 and " + meta.numSuras);
+  const ayaid = findAyaidBySurah(surah, ayah);
+  return findSurahByAyaid(ayaid == meta.numAyas ? 1 : ayaid + 1);
+}
+
+function pageMeta(pageNum) {
+  if (pageNum < 1 || pageNum > meta.numPages)
+    throw new RangeError("pagenum must be between 1 and " + meta.numPages);
+  const [curPage, nextPage] = [
+    PageList[pageNum],
+    PageList[pageNum + 1]
+  ];
+  return {
+    pageNum,
+    first: findSurahByAyaid(curPage),
+    last: [...findSurahByAyaid(nextPage - 1)]
+  };
+}
+
+function prevAyah(surah, ayah) {
+  checkValidSurah(surah);
+  const ayaid = findAyaidBySurah(surah, ayah);
+  return findSurahByAyaid(ayaid == 1 ? meta.numAyas : ayaid - 1);
+}
+
+const suraNames$1 = [
+  [],
+  ["Al-Faatiha", "The Opening"],
+  ["Al-Baqara", "The Cow"],
+  ["Aal-i-Imraan", "The Family of Imraan"],
+  ["An-Nisaa", "The Women"],
+  ["Al-Maaida", "The Table"],
+  ["Al-An'aam", "The Cattle"],
+  ["Al-A'raaf", "The Heights"],
+  ["Al-Anfaal", "The Spoils of War"],
+  ["At-Tawba", "The Repentance"],
+  ["Yunus", "Jonas"],
+  ["Hud", "Hud"],
+  ["Yusuf", "Joseph"],
+  ["Ar-Ra'd", "The Thunder"],
+  ["Ibrahim", "Abraham"],
+  ["Al-Hijr", "The Rock"],
+  ["An-Nahl", "The Bee"],
+  ["Al-Israa", "The Night Journey"],
+  ["Al-Kahf", "The Cave"],
+  ["Maryam", "Mary"],
+  ["Taa-Haa", "Taa-Haa"],
+  ["Al-Anbiyaa", "The Prophets"],
+  ["Al-Hajj", "The Pilgrimage"],
+  ["Al-Muminoon", "The Believers"],
+  ["An-Noor", "The Light"],
+  ["Al-Furqaan", "The Criterion"],
+  ["Ash-Shu'araa", "The Poets"],
+  ["An-Naml", "The Ant"],
+  ["Al-Qasas", "The Stories"],
+  ["Al-Ankaboot", "The Spider"],
+  ["Ar-Room", "The Romans"],
+  ["Luqman", "Luqman"],
+  ["As-Sajda", "The Prostration"],
+  ["Al-Ahzaab", "The Clans"],
+  ["Saba", "Sheba"],
+  ["Faatir", "The Originator"],
+  ["Yaseen", "Yaseen"],
+  ["As-Saaffaat", "Those drawn up in Ranks"],
+  ["Saad", "The letter Saad"],
+  ["Az-Zumar", "The Groups"],
+  ["Al-Ghaafir", "The Forgiver"],
+  ["Fussilat", "Explained in detail"],
+  ["Ash-Shura", "Consultation"],
+  ["Az-Zukhruf", "Ornaments of gold"],
+  ["Ad-Dukhaan", "The Smoke"],
+  ["Al-Jaathiya", "Crouching"],
+  ["Al-Ahqaf", "The Dunes"],
+  ["Muhammad", "Muhammad"],
+  ["Al-Fath", "The Victory"],
+  ["Al-Hujuraat", "The Inner Apartments"],
+  ["Qaaf", "The letter Qaaf"],
+  ["Adh-Dhaariyat", "The Winnowing Winds"],
+  ["At-Tur", "The Mount"],
+  ["An-Najm", "The Star"],
+  ["Al-Qamar", "The Moon"],
+  ["Ar-Rahmaan", "The Beneficent"],
+  ["Al-Waaqia", "The Inevitable"],
+  ["Al-Hadid", "The Iron"],
+  ["Al-Mujaadila", "The Pleading Woman"],
+  ["Al-Hashr", "The Exile"],
+  ["Al-Mumtahana", "She that is to be examined"],
+  ["As-Saff", "The Ranks"],
+  ["Al-Jumu'a", "Friday"],
+  ["Al-Munaafiqoon", "The Hypocrites"],
+  ["At-Taghaabun", "Mutual Disillusion"],
+  ["At-Talaaq", "Divorce"],
+  ["At-Tahrim", "The Prohibition"],
+  ["Al-Mulk", "The Sovereignty"],
+  ["Al-Qalam", "The Pen"],
+  ["Al-Haaqqa", "The Reality"],
+  ["Al-Ma'aarij", "The Ascending Stairways"],
+  ["Nooh", "Noah"],
+  ["Al-Jinn", "The Jinn"],
+  ["Al-Muzzammil", "The Enshrouded One"],
+  ["Al-Muddaththir", "The Cloaked One"],
+  ["Al-Qiyaama", "The Resurrection"],
+  ["Al-Insaan", "Man"],
+  ["Al-Mursalaat", "The Emissaries"],
+  ["An-Naba", "The Announcement"],
+  ["An-Naazi'aat", "Those who drag forth"],
+  ["Abasa", "He frowned"],
+  ["At-Takwir", "The Overthrowing"],
+  ["Al-Infitaar", "The Cleaving"],
+  ["Al-Mutaffifin", "Defrauding"],
+  ["Al-Inshiqaaq", "The Splitting Open"],
+  ["Al-Burooj", "The Constellations"],
+  ["At-Taariq", "The Morning Star"],
+  ["Al-A'laa", "The Most High"],
+  ["Al-Ghaashiya", "The Overwhelming"],
+  ["Al-Fajr", "The Dawn"],
+  ["Al-Balad", "The City"],
+  ["Ash-Shams", "The Sun"],
+  ["Al-Lail", "The Night"],
+  ["Ad-Dhuhaa", "The Morning Hours"],
+  ["Ash-Sharh", "The Consolation"],
+  ["At-Tin", "The Fig"],
+  ["Al-Alaq", "The Clot"],
+  ["Al-Qadr", "The Power, Fate"],
+  ["Al-Bayyina", "The Evidence"],
+  ["Az-Zalzala", "The Earthquake"],
+  ["Al-Aadiyaat", "The Chargers"],
+  ["Al-Qaari'a", "The Calamity"],
+  ["At-Takaathur", "Competition"],
+  ["Al-Asr", "The Declining Day, Epoch"],
+  ["Al-Humaza", "The Traducer"],
+  ["Al-Fil", "The Elephant"],
+  ["Quraish", "Quraysh"],
+  ["Al-Maa'un", "Almsgiving"],
+  ["Al-Kawthar", "Abundance"],
+  ["Al-Kaafiroon", "The Disbelievers"],
+  ["An-Nasr", "Divine Support"],
+  ["Al-Masad", "The Palm Fibre"],
+  ["Al-Ikhlaas", "Sincerity"],
+  ["Al-Falaq", "The Dawn"],
+  ["An-Naas", "Mankind"]
+];
+
+const suraNames = [
+  [],
+  ["\u0410\u043B\u044C-\u0424\u0430\u0442\u0438\u0445\u0430", "\u041E\u0442\u043A\u0440\u044B\u0432\u0430\u044E\u0449\u0430\u044F \u041A\u043E\u0440\u0430\u043D"],
+  ["\u0410\u043B\u044C-\u0411\u0430\u043A\u0430\u0440\u0430", "\u041A\u043E\u0440\u043E\u0432\u0430"],
+  ["\u0410\u043B\u044C \u2018\u0418\u043C\u0440\u0430\u043D", "\u0421\u0435\u043C\u0435\u0439\u0441\u0442\u0432\u043E \u2018\u0418\u043C\u0440\u0430\u043D\u0430"],
+  ["\u0410\u043D-\u041D\u0438\u0441\u0430", "\u0416\u0435\u043D\u0449\u0438\u043D\u044B"],
+  ["\u0410\u043B\u044C-\u041C\u0430\u0438\u0434\u0430", "\u0422\u0440\u0430\u043F\u0435\u0437\u0430"],
+  ["\u0410\u043B\u044C-\u0410\u043D\u2018\u0430\u043C", "\u0421\u043A\u043E\u0442"],
+  ["\u0410\u043B\u044C-\u0410\u2018\u0440\u0430\u0444", "\u041E\u0433\u0440\u0430\u0434\u044B"],
+  ["\u0410\u043B\u044C-\u0410\u043D\u0444\u0430\u043B\u044C", "\u0412\u043E\u0435\u043D\u043D\u0430\u044F \u0434\u043E\u0431\u044B\u0447\u0430"],
+  ["\u0410\u0442-\u0422\u0430\u0443\u0431\u0430", "\u041F\u043E\u043A\u0430\u044F\u043D\u0438\u0435"],
+  ["\u042E\u043D\u0443\u0441", "\u0418\u043E\u043D\u0430"],
+  ["\u0425\u0443\u0434", "\u0425\u0443\u0434"],
+  ["\u042E\u0441\u0443\u0444", "\u0418\u043E\u0441\u0438\u0444"],
+  ["\u0410\u0440-\u0420\u0430\u2018\u0434", "\u0413\u0440\u043E\u043C"],
+  ["\u0418\u0431\u0440\u0430\u0445\u0438\u043C", "\u0410\u0432\u0440\u0430\u0430\u043C"],
+  ["\u0410\u043B\u044C-\u0425\u0438\u0434\u0436\u0440", "\u0425\u0438\u0434\u0436\u0440"],
+  ["\u0410\u043D-\u041D\u0430\u0445\u043B\u044C", "\u041F\u0447\u0451\u043B\u044B"],
+  ["\u0410\u043B\u044C-\u0418\u0441\u0440\u0430", "\u041D\u043E\u0447\u043D\u043E\u0439 \u043F\u0435\u0440\u0435\u043D\u043E\u0441"],
+  ["\u0410\u043B\u044C-\u041A\u044F\u0445\u0444", "\u041F\u0435\u0449\u0435\u0440\u0430"],
+  ["\u041C\u0430\u0440\u044C\u044F\u043C", "\u041C\u0430\u0440\u0438\u044F"],
+  ["\u0422\u0430, \u0445\u0430", "\u0422\u0430, \u0445\u0430"],
+  ["\u0410\u043B\u044C-\u0410\u043D\u0431\u0438\u044F", "\u041F\u0440\u043E\u0440\u043E\u043A\u0438"],
+  ["\u0410\u043B\u044C-\u0425\u0430\u0434\u0436\u0436", "\u0425\u0430\u0434\u0436"],
+  ["\u0410\u043B\u044C-\u041C\u0443\u2019\u043C\u0438\u043D\u0443\u043D", "\u0412\u0435\u0440\u0443\u044E\u0449\u0438\u0435"],
+  ["\u0410\u043D-\u041D\u0443\u0440", "\u0421\u0432\u0435\u0442"],
+  ["\u0410\u043B\u044C-\u0424\u0443\u0440\u043A\u0430\u043D", "\u0420\u0430\u0437\u043B\u0438\u0447\u0435\u043D\u0438\u0435"],
+  ["\u0410\u0448-\u0428\u0443\u2018\u0430\u0440\u0430", "\u041F\u043E\u044D\u0442\u044B"],
+  ["\u0410\u043D-\u041D\u0430\u043C\u043B\u044C", "\u041C\u0443\u0440\u0430\u0432\u044C\u0438"],
+  ["\u0410\u043B\u044C-\u041A\u0430\u0441\u0430\u0441", "\u0420\u0430\u0441\u0441\u043A\u0430\u0437"],
+  ["\u0410\u043B\u044C-\u2018\u0410\u043D\u043A\u0430\u0431\u0443\u0442", "\u041F\u0430\u0443\u043A"],
+  ["\u0410\u0440-\u0420\u0443\u043C", "\u0420\u043E\u043C\u0435\u0438"],
+  ["\u041B\u0443\u043A\u043C\u0430\u043D", "\u041B\u0443\u043A\u043C\u0430\u043D"],
+  ["\u0410\u0441-\u0421\u0430\u0434\u0436\u0434\u0430", "\u0417\u0435\u043C\u043D\u043E\u0439 \u043F\u043E\u043A\u043B\u043E\u043D"],
+  ["\u0410\u043B\u044C-\u0410\u0445\u0437\u0430\u0431", "\u041F\u043E\u043B\u0447\u0438\u0449\u0430"],
+  ["\u0421\u0430\u0431\u0430\u2019", "\u0421\u0430\u0432\u0430"],
+  ["\u0424\u0430\u0442\u044B\u0440", "\u0417\u0438\u0436\u0434\u0438\u0442\u0435\u043B\u044C"],
+  ["\u0419\u0430, \u0441\u0438\u043D", "\u0419\u0430, \u0441\u0438\u043D"],
+  ["\u0410\u0441-\u0421\u0430\u0444\u0444\u0430\u0442", "\u0421\u0442\u043E\u044F\u0449\u0438\u0435 \u0432 \u0440\u044F\u0434"],
+  ["\u0421\u0430\u0434", "\u0421\u0430\u0434"],
+  ["\u0410\u0437-\u0417\u0443\u043C\u0430\u0440", "\u0422\u043E\u043B\u043F\u044B"],
+  ["\u0413\u0430\u0444\u0438\u0440", "\u041F\u0440\u043E\u0449\u0430\u044E\u0449\u0438\u0439"],
+  ["\u0424\u0443\u0441\u0441\u044B\u043B\u044F\u0442", "\u0420\u0430\u0437\u044A\u044F\u0441\u043D\u0435\u043D\u044B"],
+  ["\u0410\u0448-\u0428\u0443\u0440\u0430", "\u0421\u043E\u0432\u0435\u0442"],
+  ["\u0410\u0437-\u0417\u0443\u0445\u0440\u0443\u0444", "\u0423\u043A\u0440\u0430\u0448\u0435\u043D\u0438\u044F"],
+  ["\u0410\u0434-\u0414\u0443\u0445\u0430\u043D", "\u0414\u044B\u043C"],
+  ["\u0410\u043B\u044C-\u0414\u0436\u0430\u0441\u0438\u044F", "\u041A\u043E\u043B\u0435\u043D\u043E\u043F\u0440\u0435\u043A\u043B\u043E\u043D\u0451\u043D\u043D\u044B\u0435"],
+  ["\u0410\u043B\u044C-\u0410\u0445\u043A\u0430\u0444", "\u0411\u0430\u0440\u0445\u0430\u043D\u044B"],
+  ["\u041C\u0443\u0445\u0430\u043C\u043C\u0430\u0434", "\u041C\u0443\u0445\u0430\u043C\u043C\u0430\u0434"],
+  ["\u0410\u043B\u044C-\u0424\u0430\u0442\u0445", "\u041F\u043E\u0431\u0435\u0434\u0430"],
+  ["\u0410\u043B\u044C-\u0425\u0443\u0434\u0436\u0443\u0440\u0430\u0442", "\u041F\u043E\u043A\u043E\u0438"],
+  ["\u041A\u0430\u0444", "\u041A\u0430\u0444"],
+  ["\u0410\u0437-\u0417\u0430\u0440\u0438\u044F\u0442", "\u0420\u0430\u0441\u0441\u0435\u0438\u0432\u0430\u044E\u0449\u0438\u0435"],
+  ["\u0410\u0442-\u0422\u0443\u0440", "\u0413\u043E\u0440\u0430"],
+  ["\u0410\u043D-\u041D\u0430\u0434\u0436\u043C", "\u0417\u0432\u0435\u0437\u0434\u0430"],
+  ["\u0410\u043B\u044C-\u041A\u0430\u043C\u0430\u0440", "\u041B\u0443\u043D\u0430"],
+  ["\u0410\u0440-\u0420\u0430\u0445\u043C\u0430\u043D", "\u041C\u0438\u043B\u043E\u0441\u0442\u0438\u0432\u044B\u0439"],
+  ["\u0410\u043B\u044C-\u0412\u0430\u043A\u0438\u2018\u0430", "\u041D\u0435\u0438\u0437\u0431\u0435\u0436\u043D\u043E\u0435"],
+  ["\u0410\u043B\u044C-\u0425\u0430\u0434\u0438\u0434", "\u0416\u0435\u043B\u0435\u0437\u043E"],
+  ["\u0410\u043B\u044C-\u041C\u0443\u0434\u0436\u0430\u0434\u0438\u043B\u044F", "\u041F\u0440\u0435\u043F\u0438\u0440\u0430\u044E\u0449\u0430\u044F\u0441\u044F"],
+  ["\u0410\u043B\u044C-\u0425\u0430\u0448\u0440", "\u0421\u0431\u043E\u0440"],
+  ["\u0410\u043B\u044C-\u041C\u0443\u043C\u0442\u0430\u0445\u0430\u043D\u0430", "\u0418\u0441\u043F\u044B\u0442\u0443\u0435\u043C\u0430\u044F"],
+  ["\u0410\u0441-\u0421\u0430\u0444\u0444", "\u0420\u044F\u0434"],
+  ["\u0410\u043B\u044C-\u0414\u0436\u0443\u043C\u0443\u2018\u0430", "\u0421\u043E\u0431\u0440\u0430\u043D\u0438\u0435"],
+  ["\u0410\u043B\u044C-\u041C\u0443\u043D\u0430\u0444\u0438\u043A\u0443\u043D", "\u041B\u0438\u0446\u0435\u043C\u0435\u0440\u044B"],
+  ["\u0410\u0442-\u0422\u0430\u0433\u0430\u0431\u0443\u043D", "\u041E\u0431\u0434\u0435\u043B\u0435\u043D\u0438\u0435"],
+  ["\u0410\u0442-\u0422\u0430\u043B\u044F\u043A", "\u0420\u0430\u0437\u0432\u043E\u0434"],
+  ["\u0410\u0442-\u0422\u0430\u0445\u0440\u0438\u043C", "\u0417\u0430\u043F\u0440\u0435\u0449\u0435\u043D\u0438\u0435"],
+  ["\u0410\u043B\u044C-\u041C\u0443\u043B\u044C\u043A", "\u0412\u043B\u0430\u0441\u0442\u044C"],
+  ["\u0410\u043B\u044C-\u041A\u0430\u043B\u044F\u043C", "\u041F\u0435\u0440\u043E"],
+  ["\u0410\u043B\u044C-\u0425\u0430\u043A\u043A\u0430", "\u041D\u0435\u043C\u0438\u043D\u0443\u0435\u043C\u043E\u0435"],
+  ["\u0410\u043B\u044C-\u041C\u0430\u2018\u0430\u0440\u0438\u0434\u0436", "\u0421\u0442\u0435\u043F\u0435\u043D\u0438"],
+  ["\u041D\u0443\u0445", "\u041D\u043E\u0439"],
+  ["\u0410\u043B\u044C-\u0414\u0436\u0438\u043D\u043D", "\u0414\u0436\u0438\u043D\u043D\u044B"],
+  ["\u0410\u043B\u044C-\u041C\u0443\u0437\u0437\u0430\u043C\u043C\u0438\u043B\u044C", "\u0417\u0430\u043A\u0443\u0442\u0430\u0432\u0448\u0438\u0439\u0441\u044F"],
+  ["\u0410\u043B\u044C-\u041C\u0443\u0434\u0434\u0430\u0441\u0441\u0438\u0440", "\u0417\u0430\u0432\u0435\u0440\u043D\u0443\u0432\u0448\u0438\u0439\u0441\u044F"],
+  ["\u0410\u043B\u044C-\u041A\u0438\u044F\u043C\u0430", "\u0412\u043E\u0441\u043A\u0440\u0435\u0441\u0435\u043D\u0438\u0435"],
+  ["\u0410\u043B\u044C-\u0418\u043D\u0441\u0430\u043D", "\u0427\u0435\u043B\u043E\u0432\u0435\u043A"],
+  ["\u0410\u043B\u044C-\u041C\u0443\u0440\u0441\u0430\u043B\u044F\u0442", "\u041F\u043E\u0441\u044B\u043B\u0430\u0435\u043C\u044B\u0435"],
+  ["\u0410\u043D-\u041D\u0430\u0431\u0430\u2019", "\u0412\u0435\u0441\u0442\u044C"],
+  ["\u0410\u043D-\u041D\u0430\u0437\u0438\u2018\u0430\u0442", "\u0412\u044B\u0440\u044B\u0432\u0430\u044E\u0449\u0438\u0435"],
+  ["\u2018\u0410\u0431\u0430\u0441\u0430", "\u041D\u0430\u0445\u043C\u0443\u0440\u0438\u043B\u0441\u044F"],
+  ["\u0410\u0442-\u0422\u0430\u043A\u0432\u0438\u0440", "\u0421\u0432\u043E\u0440\u0430\u0447\u0438\u0432\u0430\u043D\u0438\u0435"],
+  ["\u0410\u043B\u044C-\u0418\u043D\u0444\u0438\u0442\u0430\u0440", "\u0420\u0430\u0441\u043A\u0430\u043B\u044B\u0432\u0430\u043D\u0438\u0435"],
+  ["\u0410\u043B\u044C-\u041C\u0443\u0442\u0430\u0444\u0444\u0438\u0444\u0438\u043D", "\u041E\u0431\u0432\u0435\u0448\u0438\u0432\u0430\u044E\u0449\u0438\u0435"],
+  ["\u0410\u043B\u044C-\u0418\u043D\u0448\u0438\u043A\u0430\u043A", "\u0420\u0430\u0437\u0432\u0435\u0440\u0437\u043D\u0435\u0442\u0441\u044F"],
+  ["\u0410\u043B\u044C-\u0411\u0443\u0440\u0443\u0434\u0436", "\u0421\u043E\u0437\u0432\u0435\u0437\u0434\u0438\u044F"],
+  ["\u0410\u0442-\u0422\u0430\u0440\u0438\u043A", "\u041D\u043E\u0447\u043D\u043E\u0439 \u0433\u043E\u0441\u0442\u044C"],
+  ["\u0410\u043B\u044C-\u0410\u2018\u043B\u044F", "\u0412\u0441\u0435\u0432\u044B\u0448\u043D\u0438\u0439"],
+  ["\u0410\u043B\u044C-\u0413\u0430\u0448\u0438\u044F", "\u041F\u043E\u043A\u0440\u044B\u0432\u0430\u044E\u0449\u0435\u0435"],
+  ["\u0410\u043B\u044C-\u0424\u0430\u0434\u0436\u0440", "\u0417\u0430\u0440\u044F"],
+  ["\u0410\u043B\u044C-\u0411\u0430\u043B\u044F\u0434", "\u0413\u043E\u0440\u043E\u0434"],
+  ["\u0410\u0448-\u0428\u0430\u043C\u0441", "\u0421\u043E\u043B\u043D\u0446\u0435"],
+  ["\u0410\u043B\u044C-\u041B\u0435\u0439\u043B\u044C", "\u041D\u043E\u0447\u044C"],
+  ["\u0410\u0434-\u0414\u0443\u0445\u0430", "\u0423\u0442\u0440\u043E"],
+  ["\u0410\u043B\u044C-\u0418\u043D\u0448\u0438\u0440\u0430\u0445", "\u0420\u0430\u0441\u043A\u0440\u044B\u0442\u0438\u0435"],
+  ["\u0410\u0442-\u0422\u0438\u043D", "\u0421\u043C\u043E\u043A\u043E\u0432\u043D\u0438\u0446\u0430"],
+  ["\u0410\u043B\u044C-\u2018\u0410\u043B\u044F\u043A", "\u0421\u0433\u0443\u0441\u0442\u043E\u043A \u043A\u0440\u043E\u0432\u0438"],
+  ["\u0410\u043B\u044C-\u041A\u0430\u0434\u0440", "\u0412\u0435\u043B\u0438\u0447\u0438\u0435"],
+  ["\u0410\u043B\u044C-\u0411\u0430\u0439\u0439\u0438\u043D\u0430", "\u042F\u0441\u043D\u044B\u0439 \u0434\u043E\u0432\u043E\u0434"],
+  ["\u0410\u0437-\u0417\u0430\u043B\u044C\u0437\u0430\u043B\u044F", "\u0421\u043E\u0442\u0440\u044F\u0441\u0435\u043D\u0438\u0435"],
+  ["\u0410\u043B\u044C-\u2018\u0410\u0434\u0438\u044F\u0442", "\u0421\u043A\u0430\u0447\u0443\u0449\u0438\u0435"],
+  ["\u0410\u043B\u044C-\u041A\u0430\u0440\u0438\u2018\u0430", "\u041F\u043E\u0440\u0430\u0436\u0430\u044E\u0449\u0435\u0435"],
+  ["\u0410\u0442-\u0422\u0430\u043A\u044F\u0441\u0443\u0440", "\u0421\u043E\u043F\u0435\u0440\u043D\u0438\u0447\u0435\u0441\u0442\u0432\u043E"],
+  ["\u0410\u043B\u044C-\u2018\u0410\u0441\u0440", "\u041F\u0440\u0435\u0434\u0432\u0435\u0447\u0435\u0440\u043D\u0435\u0435 \u0432\u0440\u0435\u043C\u044F"],
+  ["\u0410\u043B\u044C-\u0425\u0443\u043C\u0430\u0437\u0430", "\u0425\u0443\u043B\u0438\u0442\u0435\u043B\u044C"],
+  ["\u0410\u043B\u044C-\u0424\u0438\u043B\u044C", "\u0421\u043B\u043E\u043D"],
+  ["\u041A\u0443\u0440\u0430\u0439\u0448", "\u041A\u0443\u0440\u0430\u0439\u0448\u0438\u0442\u044B"],
+  ["\u0410\u043B\u044C-\u041C\u0430\u2018\u0443\u043D", "\u0423\u0442\u0432\u0430\u0440\u044C"],
+  ["\u0410\u043B\u044C-\u041A\u0430\u0443\u0441\u0430\u0440", "\u041A\u0430\u0443\u0441\u0430\u0440"],
+  ["\u0410\u043B\u044C-\u041A\u044F\u0444\u0438\u0440\u0443\u043D", "\u041D\u0435\u0432\u0435\u0440\u0443\u044E\u0449\u0438\u0435"],
+  ["\u0410\u043D-\u041D\u0430\u0441\u0440", "\u041F\u043E\u043C\u043E\u0449\u044C"],
+  ["\u0410\u043B\u044C-\u041C\u0430\u0441\u0430\u0434", "\u041F\u0430\u043B\u044C\u043C\u043E\u0432\u044B\u0435 \u0432\u043E\u043B\u043E\u043A\u043D\u0430"],
+  ["\u0410\u043B\u044C-\u0418\u0445\u043B\u044F\u0441", "\u041E\u0447\u0438\u0449\u0435\u043D\u0438\u0435 \u0432\u0435\u0440\u044B"],
+  ["\u0410\u043B\u044C-\u0424\u0430\u043B\u044F\u043A", "\u0420\u0430\u0441\u0441\u0432\u0435\u0442"],
+  ["\u0410\u043D-\u041D\u0430\u0441", "\u041B\u044E\u0434\u0438"]
+];
+
+export { HizbQuarterList, JuzList, ManzilList, PageList, RukuList, SajdaList, SuraList, ayaStringSplitter, checkValidAyahId, checkValidSurah, checkValidSurahAyah, findAyaidBySurah, findJuz, findJuzAndShift, findJuzByAyaid, findJuzHizb, findJuzHizbByAyaid, findJuzMetaBySurah, findPage, findRangeAroundAyah, findSurahByAyaid, getAyaCountinSura, getSurahMeta, isAyahJuzFirst, isAyahPageFirst, meta, nextAyah, pageMeta, prevAyah, suraNames$1 as suraNamesEn, suraNames as suraNamesRu };
diff --git a/dist/json/sura.ru.ts b/dist/json/sura.ru.ts
deleted file mode 100644
index 9fe3ad1..0000000
--- a/dist/json/sura.ru.ts
+++ /dev/null
@@ -1,118 +0,0 @@
-import { SuraName } from "../types"
-export const suraNames: (SuraName | [])[] = [
-  [],
-  ["Аль-Фатиха", "Открывающая Коран"],
-  ["Аль-Бакара", "Корова"],
-  ["Аль ‘Имран", "Семейство ‘Имрана"],
-  ["Ан-Ниса", "Женщины"],
-  ["Аль-Маида", "Трапеза"],
-  ["Аль-Ан‘ам", "Скот"],
-  ["Аль-А‘раф", "Ограды"],
-  ["Аль-Анфаль", "Военная добыча"],
-  ["Ат-Тауба", "Покаяние"],
-  ["Юнус", "Иона"],
-  ["Худ", "Худ"],
-  ["Юсуф", "Иосиф"],
-  ["Ар-Ра‘д", "Гром"],
-  ["Ибрахим", "Авраам"],
-  ["Аль-Хиджр", "Хиджр"],
-  ["Ан-Нахль", "Пчёлы"],
-  ["Аль-Исра", "Ночной перенос"],
-  ["Аль-Кяхф", "Пещера"],
-  ["Марьям", "Мария"],
-  ["Та, ха", "Та, ха"],
-  ["Аль-Анбия", "Пророки"],
-  ["Аль-Хаджж", "Хадж"],
-  ["Аль-Му’минун", "Верующие"],
-  ["Ан-Нур", "Свет"],
-  ["Аль-Фуркан", "Различение"],
-  ["Аш-Шу‘ара", "Поэты"],
-  ["Ан-Намль", "Муравьи"],
-  ["Аль-Касас", "Рассказ"],
-  ["Аль-‘Анкабут", "Паук"],
-  ["Ар-Рум", "Ромеи"],
-  ["Лукман", "Лукман"],
-  ["Ас-Саджда", "Земной поклон"],
-  ["Аль-Ахзаб", "Полчища"],
-  ["Саба’", "Сава"],
-  ["Фатыр", "Зиждитель"],
-  ["Йа, син", "Йа, син"],
-  ["Ас-Саффат", "Стоящие в ряд"],
-  ["Сад", "Сад"],
-  ["Аз-Зумар", "Толпы"],
-  ["Гафир", "Прощающий"],
-  ["Фуссылят", "Разъяснены"],
-  ["Аш-Шура", "Совет"],
-  ["Аз-Зухруф", "Украшения"],
-  ["Ад-Духан", "Дым"],
-  ["Аль-Джасия", "Коленопреклонённые"],
-  ["Аль-Ахкаф", "Барханы"],
-  ["Мухаммад", "Мухаммад"],
-  ["Аль-Фатх", "Победа"],
-  ["Аль-Худжурат", "Покои"],
-  ["Каф", "Каф"],
-  ["Аз-Зарият", "Рассеивающие"],
-  ["Ат-Тур", "Гора"],
-  ["Ан-Наджм", "Звезда"],
-  ["Аль-Камар", "Луна"],
-  ["Ар-Рахман", "Милостивый"],
-  ["Аль-Ваки‘а", "Неизбежное"],
-  ["Аль-Хадид", "Железо"],
-  ["Аль-Муджадиля", "Препирающаяся"],
-  ["Аль-Хашр", "Сбор"],
-  ["Аль-Мумтахана", "Испытуемая"],
-  ["Ас-Сафф", "Ряд"],
-  ["Аль-Джуму‘а", "Собрание"],
-  ["Аль-Мунафикун", "Лицемеры"],
-  ["Ат-Тагабун", "Обделение"],
-  ["Ат-Таляк", "Развод"],
-  ["Ат-Тахрим", "Запрещение"],
-  ["Аль-Мульк", "Власть"],
-  ["Аль-Калям", "Перо"],
-  ["Аль-Хакка", "Неминуемое"],
-  ["Аль-Ма‘аридж", "Степени"],
-  ["Нух", "Ной"],
-  ["Аль-Джинн", "Джинны"],
-  ["Аль-Муззаммиль", "Закутавшийся"],
-  ["Аль-Муддассир", "Завернувшийся"],
-  ["Аль-Кияма", "Воскресение"],
-  ["Аль-Инсан", "Человек"],
-  ["Аль-Мурсалят", "Посылаемые"],
-  ["Ан-Наба’", "Весть"],
-  ["Ан-Нази‘ат", "Вырывающие"],
-  ["‘Абаса", "Нахмурился"],
-  ["Ат-Таквир", "Сворачивание"],
-  ["Аль-Инфитар", "Раскалывание"],
-  ["Аль-Мутаффифин", "Обвешивающие"],
-  ["Аль-Иншикак", "Разверзнется"],
-  ["Аль-Бурудж", "Созвездия"],
-  ["Ат-Тарик", "Ночной гость"],
-  ["Аль-А‘ля", "Всевышний"],
-  ["Аль-Гашия", "Покрывающее"],
-  ["Аль-Фаджр", "Заря"],
-  ["Аль-Баляд", "Город"],
-  ["Аш-Шамс", "Солнце"],
-  ["Аль-Лейль", "Ночь"],
-  ["Ад-Духа", "Утро"],
-  ["Аль-Инширах", "Раскрытие"],
-  ["Ат-Тин", "Смоковница"],
-  ["Аль-‘Аляк", "Сгусток крови"],
-  ["Аль-Кадр", "Величие"],
-  ["Аль-Баййина", "Ясный довод"],
-  ["Аз-Зальзаля", "Сотрясение"],
-  ["Аль-‘Адият", "Скачущие"],
-  ["Аль-Кари‘а", "Поражающее"],
-  ["Ат-Такясур", "Соперничество"],
-  ["Аль-‘Аср", "Предвечернее время"],
-  ["Аль-Хумаза", "Хулитель"],
-  ["Аль-Филь", "Слон"],
-  ["Курайш", "Курайшиты"],
-  ["Аль-Ма‘ун", "Утварь"],
-  ["Аль-Каусар", "Каусар"],
-  ["Аль-Кяфирун", "Неверующие"],
-  ["Ан-Наср", "Помощь"],
-  ["Аль-Масад", "Пальмовые волокна"],
-  ["Аль-Ихляс", "Очищение веры"],
-  ["Аль-Фаляк", "Рассвет"],
-  ["Ан-Нас", "Люди"],
-]
diff --git a/dist/quran-meta.common.js b/dist/quran-meta.common.js
deleted file mode 100644
index 3c02bb4..0000000
--- a/dist/quran-meta.common.js
+++ /dev/null
@@ -1,754 +0,0 @@
-/*! 
- * Quran Meta library 2.4.13
- *
- * Released under the MIT license
- */
-
-'use strict';
-
-/******************************************************************************
-Copyright (c) Microsoft Corporation.
-
-Permission to use, copy, modify, and/or distribute this software for any
-purpose with or without fee is hereby granted.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
-REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
-INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
-LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
-OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-***************************************************************************** */
-
-function __spreadArray(to, from, pack) {
-    if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
-        if (ar || !(i in from)) {
-            if (!ar) ar = Array.prototype.slice.call(from, 0, i);
-            ar[i] = from[i];
-        }
-    }
-    return to.concat(ar || Array.prototype.slice.call(from));
-}
-
-var meta = Object.freeze({
-    numAyas: 6236,
-    numSuras: 114,
-    numPages: 604,
-    numJuzs: 30,
-    manzilCount: 7,
-});
-
-var suraNames$1 = [
-    [],
-    ["Al-Faatiha", "The Opening"],
-    ["Al-Baqara", "The Cow"],
-    ["Aal-i-Imraan", "The Family of Imraan"],
-    ["An-Nisaa", "The Women"],
-    ["Al-Maaida", "The Table"],
-    ["Al-An'aam", "The Cattle"],
-    ["Al-A'raaf", "The Heights"],
-    ["Al-Anfaal", "The Spoils of War"],
-    ["At-Tawba", "The Repentance"],
-    ["Yunus", "Jonas"],
-    ["Hud", "Hud"],
-    ["Yusuf", "Joseph"],
-    ["Ar-Ra'd", "The Thunder"],
-    ["Ibrahim", "Abraham"],
-    ["Al-Hijr", "The Rock"],
-    ["An-Nahl", "The Bee"],
-    ["Al-Israa", "The Night Journey"],
-    ["Al-Kahf", "The Cave"],
-    ["Maryam", "Mary"],
-    ["Taa-Haa", "Taa-Haa"],
-    ["Al-Anbiyaa", "The Prophets"],
-    ["Al-Hajj", "The Pilgrimage"],
-    ["Al-Muminoon", "The Believers"],
-    ["An-Noor", "The Light"],
-    ["Al-Furqaan", "The Criterion"],
-    ["Ash-Shu'araa", "The Poets"],
-    ["An-Naml", "The Ant"],
-    ["Al-Qasas", "The Stories"],
-    ["Al-Ankaboot", "The Spider"],
-    ["Ar-Room", "The Romans"],
-    ["Luqman", "Luqman"],
-    ["As-Sajda", "The Prostration"],
-    ["Al-Ahzaab", "The Clans"],
-    ["Saba", "Sheba"],
-    ["Faatir", "The Originator"],
-    ["Yaseen", "Yaseen"],
-    ["As-Saaffaat", "Those drawn up in Ranks"],
-    ["Saad", "The letter Saad"],
-    ["Az-Zumar", "The Groups"],
-    ["Al-Ghaafir", "The Forgiver"],
-    ["Fussilat", "Explained in detail"],
-    ["Ash-Shura", "Consultation"],
-    ["Az-Zukhruf", "Ornaments of gold"],
-    ["Ad-Dukhaan", "The Smoke"],
-    ["Al-Jaathiya", "Crouching"],
-    ["Al-Ahqaf", "The Dunes"],
-    ["Muhammad", "Muhammad"],
-    ["Al-Fath", "The Victory"],
-    ["Al-Hujuraat", "The Inner Apartments"],
-    ["Qaaf", "The letter Qaaf"],
-    ["Adh-Dhaariyat", "The Winnowing Winds"],
-    ["At-Tur", "The Mount"],
-    ["An-Najm", "The Star"],
-    ["Al-Qamar", "The Moon"],
-    ["Ar-Rahmaan", "The Beneficent"],
-    ["Al-Waaqia", "The Inevitable"],
-    ["Al-Hadid", "The Iron"],
-    ["Al-Mujaadila", "The Pleading Woman"],
-    ["Al-Hashr", "The Exile"],
-    ["Al-Mumtahana", "She that is to be examined"],
-    ["As-Saff", "The Ranks"],
-    ["Al-Jumu'a", "Friday"],
-    ["Al-Munaafiqoon", "The Hypocrites"],
-    ["At-Taghaabun", "Mutual Disillusion"],
-    ["At-Talaaq", "Divorce"],
-    ["At-Tahrim", "The Prohibition"],
-    ["Al-Mulk", "The Sovereignty"],
-    ["Al-Qalam", "The Pen"],
-    ["Al-Haaqqa", "The Reality"],
-    ["Al-Ma'aarij", "The Ascending Stairways"],
-    ["Nooh", "Noah"],
-    ["Al-Jinn", "The Jinn"],
-    ["Al-Muzzammil", "The Enshrouded One"],
-    ["Al-Muddaththir", "The Cloaked One"],
-    ["Al-Qiyaama", "The Resurrection"],
-    ["Al-Insaan", "Man"],
-    ["Al-Mursalaat", "The Emissaries"],
-    ["An-Naba", "The Announcement"],
-    ["An-Naazi'aat", "Those who drag forth"],
-    ["Abasa", "He frowned"],
-    ["At-Takwir", "The Overthrowing"],
-    ["Al-Infitaar", "The Cleaving"],
-    ["Al-Mutaffifin", "Defrauding"],
-    ["Al-Inshiqaaq", "The Splitting Open"],
-    ["Al-Burooj", "The Constellations"],
-    ["At-Taariq", "The Morning Star"],
-    ["Al-A'laa", "The Most High"],
-    ["Al-Ghaashiya", "The Overwhelming"],
-    ["Al-Fajr", "The Dawn"],
-    ["Al-Balad", "The City"],
-    ["Ash-Shams", "The Sun"],
-    ["Al-Lail", "The Night"],
-    ["Ad-Dhuhaa", "The Morning Hours"],
-    ["Ash-Sharh", "The Consolation"],
-    ["At-Tin", "The Fig"],
-    ["Al-Alaq", "The Clot"],
-    ["Al-Qadr", "The Power, Fate"],
-    ["Al-Bayyina", "The Evidence"],
-    ["Az-Zalzala", "The Earthquake"],
-    ["Al-Aadiyaat", "The Chargers"],
-    ["Al-Qaari'a", "The Calamity"],
-    ["At-Takaathur", "Competition"],
-    ["Al-Asr", "The Declining Day, Epoch"],
-    ["Al-Humaza", "The Traducer"],
-    ["Al-Fil", "The Elephant"],
-    ["Quraish", "Quraysh"],
-    ["Al-Maa'un", "Almsgiving"],
-    ["Al-Kawthar", "Abundance"],
-    ["Al-Kaafiroon", "The Disbelievers"],
-    ["An-Nasr", "Divine Support"],
-    ["Al-Masad", "The Palm Fibre"],
-    ["Al-Ikhlaas", "Sincerity"],
-    ["Al-Falaq", "The Dawn"],
-    ["An-Naas", "Mankind"],
-];
-
-var suraNames = [
-    [],
-    ["Аль-Фатиха", "Открывающая Коран"],
-    ["Аль-Бакара", "Корова"],
-    ["Аль ‘Имран", "Семейство ‘Имрана"],
-    ["Ан-Ниса", "Женщины"],
-    ["Аль-Маида", "Трапеза"],
-    ["Аль-Ан‘ам", "Скот"],
-    ["Аль-А‘раф", "Ограды"],
-    ["Аль-Анфаль", "Военная добыча"],
-    ["Ат-Тауба", "Покаяние"],
-    ["Юнус", "Иона"],
-    ["Худ", "Худ"],
-    ["Юсуф", "Иосиф"],
-    ["Ар-Ра‘д", "Гром"],
-    ["Ибрахим", "Авраам"],
-    ["Аль-Хиджр", "Хиджр"],
-    ["Ан-Нахль", "Пчёлы"],
-    ["Аль-Исра", "Ночной перенос"],
-    ["Аль-Кяхф", "Пещера"],
-    ["Марьям", "Мария"],
-    ["Та, ха", "Та, ха"],
-    ["Аль-Анбия", "Пророки"],
-    ["Аль-Хаджж", "Хадж"],
-    ["Аль-Му’минун", "Верующие"],
-    ["Ан-Нур", "Свет"],
-    ["Аль-Фуркан", "Различение"],
-    ["Аш-Шу‘ара", "Поэты"],
-    ["Ан-Намль", "Муравьи"],
-    ["Аль-Касас", "Рассказ"],
-    ["Аль-‘Анкабут", "Паук"],
-    ["Ар-Рум", "Ромеи"],
-    ["Лукман", "Лукман"],
-    ["Ас-Саджда", "Земной поклон"],
-    ["Аль-Ахзаб", "Полчища"],
-    ["Саба’", "Сава"],
-    ["Фатыр", "Зиждитель"],
-    ["Йа, син", "Йа, син"],
-    ["Ас-Саффат", "Стоящие в ряд"],
-    ["Сад", "Сад"],
-    ["Аз-Зумар", "Толпы"],
-    ["Гафир", "Прощающий"],
-    ["Фуссылят", "Разъяснены"],
-    ["Аш-Шура", "Совет"],
-    ["Аз-Зухруф", "Украшения"],
-    ["Ад-Духан", "Дым"],
-    ["Аль-Джасия", "Коленопреклонённые"],
-    ["Аль-Ахкаф", "Барханы"],
-    ["Мухаммад", "Мухаммад"],
-    ["Аль-Фатх", "Победа"],
-    ["Аль-Худжурат", "Покои"],
-    ["Каф", "Каф"],
-    ["Аз-Зарият", "Рассеивающие"],
-    ["Ат-Тур", "Гора"],
-    ["Ан-Наджм", "Звезда"],
-    ["Аль-Камар", "Луна"],
-    ["Ар-Рахман", "Милостивый"],
-    ["Аль-Ваки‘а", "Неизбежное"],
-    ["Аль-Хадид", "Железо"],
-    ["Аль-Муджадиля", "Препирающаяся"],
-    ["Аль-Хашр", "Сбор"],
-    ["Аль-Мумтахана", "Испытуемая"],
-    ["Ас-Сафф", "Ряд"],
-    ["Аль-Джуму‘а", "Собрание"],
-    ["Аль-Мунафикун", "Лицемеры"],
-    ["Ат-Тагабун", "Обделение"],
-    ["Ат-Таляк", "Развод"],
-    ["Ат-Тахрим", "Запрещение"],
-    ["Аль-Мульк", "Власть"],
-    ["Аль-Калям", "Перо"],
-    ["Аль-Хакка", "Неминуемое"],
-    ["Аль-Ма‘аридж", "Степени"],
-    ["Нух", "Ной"],
-    ["Аль-Джинн", "Джинны"],
-    ["Аль-Муззаммиль", "Закутавшийся"],
-    ["Аль-Муддассир", "Завернувшийся"],
-    ["Аль-Кияма", "Воскресение"],
-    ["Аль-Инсан", "Человек"],
-    ["Аль-Мурсалят", "Посылаемые"],
-    ["Ан-Наба’", "Весть"],
-    ["Ан-Нази‘ат", "Вырывающие"],
-    ["‘Абаса", "Нахмурился"],
-    ["Ат-Таквир", "Сворачивание"],
-    ["Аль-Инфитар", "Раскалывание"],
-    ["Аль-Мутаффифин", "Обвешивающие"],
-    ["Аль-Иншикак", "Разверзнется"],
-    ["Аль-Бурудж", "Созвездия"],
-    ["Ат-Тарик", "Ночной гость"],
-    ["Аль-А‘ля", "Всевышний"],
-    ["Аль-Гашия", "Покрывающее"],
-    ["Аль-Фаджр", "Заря"],
-    ["Аль-Баляд", "Город"],
-    ["Аш-Шамс", "Солнце"],
-    ["Аль-Лейль", "Ночь"],
-    ["Ад-Духа", "Утро"],
-    ["Аль-Инширах", "Раскрытие"],
-    ["Ат-Тин", "Смоковница"],
-    ["Аль-‘Аляк", "Сгусток крови"],
-    ["Аль-Кадр", "Величие"],
-    ["Аль-Баййина", "Ясный довод"],
-    ["Аз-Зальзаля", "Сотрясение"],
-    ["Аль-‘Адият", "Скачущие"],
-    ["Аль-Кари‘а", "Поражающее"],
-    ["Ат-Такясур", "Соперничество"],
-    ["Аль-‘Аср", "Предвечернее время"],
-    ["Аль-Хумаза", "Хулитель"],
-    ["Аль-Филь", "Слон"],
-    ["Курайш", "Курайшиты"],
-    ["Аль-Ма‘ун", "Утварь"],
-    ["Аль-Каусар", "Каусар"],
-    ["Аль-Кяфирун", "Неверующие"],
-    ["Ан-Наср", "Помощь"],
-    ["Аль-Масад", "Пальмовые волокна"],
-    ["Аль-Ихляс", "Очищение веры"],
-    ["Аль-Фаляк", "Рассвет"],
-    ["Ан-Нас", "Люди"],
-];
-
-var SuraList = [
-    [-1, -1, -1, -1, "", false, -1],
-    [0, 7, 5, 1, "الفاتحة", true, 1],
-    [7, 286, 87, 40, "البقرة", false, 2],
-    [293, 200, 89, 20, "آل عمران", false, 50],
-    [493, 176, 92, 24, "النساء", false, 77],
-    [669, 120, 112, 16, "المائدة", false, 107],
-    [789, 165, 55, 20, "الأنعام", true, 128],
-    [954, 206, 39, 24, "الأعراف", true, 151],
-    [1160, 75, 88, 10, "الأنفال", false, 177],
-    [1235, 129, 113, 16, "التوبة", false, 187],
-    [1364, 109, 51, 11, "يونس", true, 208],
-    [1473, 123, 52, 10, "هود", true, 222],
-    [1596, 111, 53, 12, "يوسف", true, 236],
-    [1707, 43, 96, 6, "الرعد", false, 249],
-    [1750, 52, 72, 7, "ابراهيم", true, 256],
-    [1802, 99, 54, 6, "الحجر", true, 262],
-    [1901, 128, 70, 16, "النحل", true, 268],
-    [2029, 111, 50, 12, "الإسراء", true, 282],
-    [2140, 110, 69, 12, "الكهف", true, 294],
-    [2250, 98, 44, 6, "مريم", true, 305],
-    [2348, 135, 45, 8, "طه", true, 313],
-    [2483, 112, 73, 7, "الأنبياء", true, 322],
-    [2595, 78, 103, 10, "الحج", false, 332],
-    [2673, 118, 74, 6, "المؤمنون", true, 342],
-    [2791, 64, 102, 9, "النور", false, 350],
-    [2855, 77, 42, 6, "الفرقان", true, 360],
-    [2932, 227, 47, 11, "الشعراء", true, 367],
-    [3159, 93, 48, 7, "النمل", true, 377],
-    [3252, 88, 49, 8, "القصص", true, 386],
-    [3340, 69, 85, 7, "العنكبوت", true, 397],
-    [3409, 60, 84, 6, "الروم", true, 405],
-    [3469, 34, 57, 3, "لقمان", true, 411],
-    [3503, 30, 75, 3, "السجدة", true, 415],
-    [3533, 73, 90, 9, "الأحزاب", false, 418],
-    [3606, 54, 58, 6, "سبإ", true, 428],
-    [3660, 45, 43, 5, "فاطر", true, 435],
-    [3705, 83, 41, 5, "يس", true, 441],
-    [3788, 182, 56, 5, "الصافات", true, 446],
-    [3970, 88, 38, 5, "ص", true, 453],
-    [4058, 75, 59, 8, "الزمر", true, 459],
-    [4133, 85, 60, 9, "غافر", true, 468],
-    [4218, 54, 61, 6, "فصلت", true, 477],
-    [4272, 53, 62, 5, "الشورى", true, 483],
-    [4325, 89, 63, 7, "الزخرف", true, 490],
-    [4414, 59, 64, 3, "الدخان", true, 496],
-    [4473, 37, 65, 4, "الجاثية", true, 499],
-    [4510, 35, 66, 4, "الأحقاف", true, 503],
-    [4545, 38, 95, 4, "محمد", false, 507],
-    [4583, 29, 111, 4, "الفتح", false, 511],
-    [4612, 18, 106, 2, "الحجرات", false, 516],
-    [4630, 45, 34, 3, "ق", true, 518],
-    [4675, 60, 67, 3, "الذاريات", true, 521],
-    [4735, 49, 76, 2, "الطور", true, 524],
-    [4784, 62, 23, 3, "النجم", true, 526],
-    [4846, 55, 37, 3, "القمر", true, 529],
-    [4901, 78, 97, 3, "الرحمن", false, 532],
-    [4979, 96, 46, 3, "الواقعة", true, 535],
-    [5075, 29, 94, 4, "الحديد", false, 538],
-    [5104, 22, 105, 3, "المجادلة", false, 542],
-    [5126, 24, 101, 3, "الحشر", false, 546],
-    [5150, 13, 91, 2, "الممتحنة", false, 549],
-    [5163, 14, 109, 2, "الصف", false, 552],
-    [5177, 11, 110, 2, "الجمعة", false, 553],
-    [5188, 11, 104, 2, "المنافقون", false, 555],
-    [5199, 18, 108, 2, "التغابن", false, 556],
-    [5217, 12, 99, 2, "الطلاق", false, 558],
-    [5229, 12, 107, 2, "التحريم", false, 560],
-    [5241, 30, 77, 2, "الملك", true, 562],
-    [5271, 52, 2, 2, "القلم", true, 565],
-    [5323, 52, 78, 2, "الحاقة", true, 567],
-    [5375, 44, 79, 2, "المعارج", true, 569],
-    [5419, 28, 71, 2, "نوح", true, 571],
-    [5447, 28, 40, 2, "الجن", true, 572],
-    [5475, 20, 3, 2, "المزمل", true, 574],
-    [5495, 56, 4, 2, "المدثر", true, 576],
-    [5551, 40, 31, 2, "القيامة", true, 578],
-    [5591, 31, 98, 2, "الانسان", false, 579],
-    [5622, 50, 33, 2, "المرسلات", true, 581],
-    [5672, 40, 80, 2, "النبإ", true, 582],
-    [5712, 46, 81, 2, "النازعات", true, 584],
-    [5758, 42, 24, 1, "عبس", true, 585],
-    [5800, 29, 7, 1, "التكوير", true, 586],
-    [5829, 19, 82, 1, "الإنفطار", true, 587],
-    [5848, 36, 86, 1, "المطففين", true, 588],
-    [5884, 25, 83, 1, "الإنشقاق", true, 589],
-    [5909, 22, 27, 1, "البروج", true, 590],
-    [5931, 17, 36, 1, "الطارق", true, 591],
-    [5948, 19, 8, 1, "الأعلى", true, 592],
-    [5967, 26, 68, 1, "الغاشية", true, 592],
-    [5993, 30, 10, 1, "الفجر", true, 593],
-    [6023, 20, 35, 1, "البلد", true, 594],
-    [6043, 15, 26, 1, "الشمس", true, 595],
-    [6058, 21, 9, 1, "الليل", true, 596],
-    [6079, 11, 11, 1, "الضحى", true, 596],
-    [6090, 8, 12, 1, "الشرح", true, 596],
-    [6098, 8, 28, 1, "التين", true, 597],
-    [6106, 19, 1, 1, "العلق", true, 597],
-    [6125, 5, 25, 1, "القدر", true, 598],
-    [6130, 8, 100, 1, "البينة", false, 599],
-    [6138, 8, 93, 1, "الزلزلة", false, 599],
-    [6146, 11, 14, 1, "العاديات", true, 600],
-    [6157, 11, 30, 1, "القارعة", true, 600],
-    [6168, 8, 16, 1, "التكاثر", true, 600],
-    [6176, 3, 13, 1, "العصر", true, 601],
-    [6179, 9, 32, 1, "الهمزة", true, 601],
-    [6188, 5, 19, 1, "الفيل", true, 601],
-    [6193, 4, 29, 1, "قريش", true, 602],
-    [6197, 7, 17, 1, "الماعون", true, 602],
-    [6204, 3, 15, 1, "الكوثر", true, 602],
-    [6207, 6, 18, 1, "الكافرون", true, 603],
-    [6213, 3, 114, 1, "النصر", false, 603],
-    [6216, 5, 6, 1, "المسد", true, 603],
-    [6221, 4, 22, 1, "الإخلاص", true, 604],
-    [6225, 5, 20, 1, "الفلق", true, 604],
-    [6230, 6, 21, 1, "الناس", true, 604],
-    [6236, 0, -1, -1, "", false, -1],
-];
-
-var HizbQuarterList = [
-    0, 1, 33, 51, 67, 82, 99, 113, 131, 149, 165, 184, 196, 210, 226, 240, 250,
-    260, 270, 279, 290, 308, 326, 345, 368, 386, 406, 426, 446, 464, 479, 494,
-    505, 517, 529, 551, 567, 581, 593, 607, 628, 641, 656, 670, 681, 696, 710,
-    720, 736, 751, 766, 778, 802, 825, 848, 863, 884, 900, 916, 930, 940, 955,
-    985, 1001, 1019, 1042, 1071, 1096, 1110, 1125, 1143, 1161, 1182, 1201, 1221,
-    1236, 1254, 1269, 1281, 1295, 1310, 1328, 1346, 1357, 1375, 1390, 1417, 1435,
-    1454, 1479, 1497, 1514, 1534, 1557, 1581, 1603, 1626, 1649, 1673, 1697, 1712,
-    1726, 1742, 1760, 1778, 1803, 1852, 1902, 1931, 1952, 1976, 1991, 2012, 2030,
-    2052, 2079, 2099, 2128, 2157, 2172, 2191, 2215, 2239, 2272, 2309, 2349, 2403,
-    2431, 2459, 2484, 2512, 2534, 2566, 2596, 2614, 2633, 2655, 2674, 2709, 2748,
-    2792, 2812, 2826, 2844, 2856, 2876, 2908, 2933, 2984, 3043, 3113, 3160, 3186,
-    3215, 3241, 3264, 3281, 3303, 3328, 3341, 3366, 3386, 3410, 3440, 3463, 3491,
-    3514, 3534, 3551, 3564, 3584, 3593, 3616, 3630, 3652, 3675, 3701, 3733, 3765,
-    3810, 3871, 3933, 3991, 4022, 4066, 4090, 4111, 4134, 4154, 4174, 4199, 4227,
-    4243, 4265, 4285, 4299, 4323, 4349, 4382, 4431, 4485, 4511, 4531, 4555, 4578,
-    4601, 4613, 4626, 4657, 4706, 4759, 4810, 4855, 4902, 4980, 5054, 5091, 5105,
-    5118, 5137, 5157, 5178, 5192, 5218, 5230, 5242, 5272, 5324, 5394, 5448, 5495,
-    5552, 5610, 5673, 5759, 5830, 5885, 5949, 6024, 6091, 6155, 6237,
-];
-
-var RukuList = [
-    0, 1, 8, 15, 28, 37, 47, 54, 67, 69, 79, 90, 94, 104, 111, 120, 129, 137, 149,
-    155, 160, 171, 175, 184, 190, 196, 204, 218, 224, 229, 236, 239, 243, 250,
-    256, 261, 265, 268, 274, 281, 289, 291, 294, 303, 314, 324, 335, 348, 357,
-    365, 374, 385, 395, 403, 414, 423, 437, 442, 449, 465, 474, 483, 494, 504,
-    508, 516, 519, 527, 536, 544, 553, 564, 570, 581, 585, 590, 594, 598, 606,
-    609, 620, 628, 635, 646, 656, 665, 670, 675, 681, 689, 696, 704, 713, 720,
-    726, 736, 747, 756, 763, 770, 778, 785, 790, 800, 810, 820, 831, 840, 845,
-    850, 860, 872, 880, 884, 890, 900, 911, 919, 930, 934, 940, 944, 955, 965,
-    980, 986, 994, 1002, 1008, 1013, 1019, 1027, 1039, 1048, 1054, 1063, 1081,
-    1084, 1096, 1102, 1106, 1112, 1117, 1126, 1136, 1143, 1161, 1171, 1180, 1189,
-    1198, 1205, 1209, 1219, 1225, 1230, 1236, 1242, 1252, 1260, 1265, 1273, 1278,
-    1295, 1302, 1308, 1316, 1325, 1335, 1346, 1354, 1358, 1365, 1375, 1385, 1395,
-    1405, 1418, 1425, 1435, 1447, 1457, 1468, 1474, 1482, 1498, 1509, 1523, 1534,
-    1542, 1557, 1569, 1583, 1597, 1603, 1617, 1626, 1632, 1639, 1646, 1654, 1665,
-    1676, 1690, 1701, 1708, 1715, 1726, 1734, 1739, 1745, 1751, 1757, 1763, 1772,
-    1778, 1785, 1792, 1803, 1818, 1828, 1847, 1863, 1882, 1902, 1911, 1923, 1927,
-    1936, 1942, 1952, 1962, 1967, 1972, 1978, 1985, 1991, 2002, 2012, 2021, 2030,
-    2040, 2052, 2060, 2070, 2082, 2090, 2100, 2107, 2114, 2123, 2130, 2141, 2153,
-    2158, 2163, 2172, 2185, 2190, 2194, 2200, 2211, 2223, 2242, 2251, 2266, 2291,
-    2301, 2316, 2333, 2349, 2373, 2403, 2425, 2438, 2453, 2464, 2477, 2484, 2494,
-    2513, 2525, 2534, 2559, 2577, 2596, 2606, 2618, 2621, 2629, 2634, 2644, 2653,
-    2660, 2668, 2674, 2696, 2706, 2724, 2751, 2766, 2792, 2802, 2812, 2818, 2826,
-    2832, 2842, 2849, 2853, 2856, 2865, 2876, 2890, 2900, 2916, 2933, 2942, 2966,
-    2985, 3002, 3037, 3055, 3073, 3092, 3108, 3124, 3160, 3174, 3191, 3204, 3218,
-    3226, 3242, 3253, 3266, 3274, 3281, 3295, 3303, 3313, 3328, 3341, 3354, 3363,
-    3371, 3385, 3392, 3404, 3410, 3420, 3429, 3437, 3450, 3463, 3470, 3481, 3489,
-    3504, 3515, 3526, 3534, 3542, 3554, 3561, 3568, 3574, 3586, 3592, 3602, 3607,
-    3616, 3628, 3637, 3643, 3652, 3661, 3668, 3675, 3687, 3698, 3706, 3718, 3738,
-    3756, 3773, 3789, 3810, 3863, 3902, 3927, 3971, 3985, 3997, 4011, 4035, 4059,
-    4068, 4080, 4090, 4100, 4111, 4122, 4129, 4134, 4143, 4154, 4161, 4171, 4184,
-    4194, 4202, 4212, 4219, 4227, 4237, 4244, 4251, 4263, 4273, 4282, 4292, 4302,
-    4316, 4326, 4341, 4351, 4361, 4371, 4382, 4393, 4415, 4444, 4457, 4474, 4485,
-    4495, 4500, 4511, 4521, 4531, 4537, 4546, 4557, 4565, 4574, 4584, 4594, 4601,
-    4610, 4613, 4623, 4631, 4646, 4660, 4676, 4699, 4722, 4736, 4764, 4785, 4810,
-    4817, 4847, 4869, 4887, 4902, 4927, 4947, 4980, 5018, 5054, 5076, 5086, 5095,
-    5101, 5105, 5111, 5118, 5127, 5137, 5144, 5151, 5157, 5164, 5173, 5178, 5186,
-    5189, 5197, 5200, 5210, 5218, 5225, 5230, 5237, 5242, 5256, 5272, 5305, 5324,
-    5361, 5376, 5411, 5420, 5440, 5448, 5467, 5476, 5495, 5496, 5527, 5552, 5582,
-    5592, 5614, 5623, 5663, 5673, 5703, 5713, 5739, 5759, 5801, 5830, 5849, 5885,
-    5910, 5932, 5949, 5968, 5994, 6024, 6044, 6059, 6080, 6091, 6099, 6107, 6126,
-    6131, 6139, 6147, 6158, 6169, 6177, 6180, 6189, 6194, 6198, 6205, 6208, 6214,
-    6217, 6222, 6226, 6231, 6237,
-];
-
-var PageList = [
-    0, 1, 8, 13, 24, 32, 37, 45, 56, 65, 69, 77, 84, 91, 96, 101, 109, 113, 120,
-    127, 134, 142, 149, 153, 161, 171, 177, 184, 189, 194, 198, 204, 210, 218,
-    223, 227, 232, 238, 241, 245, 253, 256, 260, 264, 267, 272, 277, 282, 289,
-    290, 294, 303, 309, 316, 323, 331, 339, 346, 355, 364, 371, 377, 385, 394,
-    402, 409, 415, 426, 434, 442, 447, 451, 459, 467, 474, 480, 488, 494, 500,
-    505, 508, 513, 517, 520, 527, 531, 538, 545, 553, 559, 568, 573, 580, 585,
-    588, 595, 599, 607, 615, 621, 628, 634, 641, 648, 656, 664, 669, 672, 675,
-    679, 683, 687, 693, 701, 706, 711, 715, 720, 727, 734, 740, 746, 752, 759,
-    765, 773, 778, 783, 790, 798, 808, 817, 825, 834, 842, 849, 858, 863, 871,
-    880, 884, 891, 900, 908, 914, 921, 927, 932, 936, 941, 947, 955, 966, 977,
-    985, 992, 998, 1006, 1012, 1022, 1028, 1036, 1042, 1050, 1059, 1075, 1085,
-    1092, 1098, 1104, 1110, 1114, 1118, 1125, 1133, 1142, 1150, 1161, 1169, 1177,
-    1186, 1194, 1201, 1206, 1213, 1222, 1230, 1236, 1242, 1249, 1256, 1262, 1267,
-    1272, 1276, 1283, 1290, 1297, 1304, 1308, 1315, 1322, 1329, 1335, 1342, 1347,
-    1353, 1358, 1365, 1371, 1379, 1385, 1390, 1398, 1407, 1418, 1426, 1435, 1443,
-    1453, 1462, 1471, 1479, 1486, 1493, 1502, 1511, 1519, 1527, 1536, 1545, 1555,
-    1562, 1571, 1582, 1591, 1601, 1611, 1619, 1627, 1634, 1640, 1649, 1660, 1666,
-    1675, 1683, 1692, 1700, 1708, 1713, 1721, 1726, 1736, 1742, 1750, 1756, 1761,
-    1769, 1775, 1784, 1793, 1803, 1818, 1834, 1854, 1873, 1893, 1908, 1916, 1928,
-    1936, 1944, 1956, 1966, 1974, 1981, 1989, 1995, 2004, 2012, 2020, 2030, 2037,
-    2047, 2057, 2068, 2079, 2088, 2096, 2105, 2116, 2126, 2134, 2145, 2156, 2161,
-    2168, 2175, 2186, 2194, 2202, 2215, 2224, 2238, 2251, 2262, 2276, 2289, 2302,
-    2315, 2327, 2346, 2361, 2386, 2400, 2413, 2425, 2436, 2447, 2462, 2474, 2484,
-    2494, 2508, 2519, 2528, 2541, 2556, 2565, 2574, 2585, 2596, 2601, 2611, 2619,
-    2626, 2634, 2642, 2651, 2660, 2668, 2674, 2691, 2701, 2716, 2733, 2748, 2763,
-    2778, 2792, 2802, 2812, 2819, 2823, 2828, 2835, 2845, 2850, 2853, 2858, 2867,
-    2876, 2888, 2899, 2911, 2923, 2933, 2952, 2972, 2993, 3016, 3044, 3069, 3092,
-    3116, 3139, 3160, 3173, 3182, 3195, 3204, 3215, 3223, 3236, 3248, 3258, 3266,
-    3274, 3281, 3288, 3296, 3303, 3312, 3323, 3330, 3337, 3347, 3355, 3364, 3371,
-    3379, 3386, 3393, 3404, 3415, 3425, 3434, 3442, 3451, 3460, 3470, 3481, 3489,
-    3498, 3504, 3515, 3524, 3534, 3540, 3549, 3556, 3564, 3569, 3577, 3584, 3588,
-    3596, 3607, 3614, 3621, 3629, 3638, 3646, 3655, 3664, 3672, 3679, 3691, 3699,
-    3705, 3718, 3733, 3746, 3760, 3776, 3789, 3813, 3840, 3865, 3891, 3915, 3942,
-    3971, 3987, 3997, 4013, 4032, 4054, 4064, 4069, 4080, 4090, 4099, 4106, 4115,
-    4126, 4133, 4141, 4150, 4159, 4167, 4174, 4183, 4192, 4200, 4211, 4219, 4230,
-    4239, 4248, 4257, 4265, 4273, 4283, 4288, 4295, 4304, 4317, 4324, 4336, 4348,
-    4359, 4373, 4386, 4399, 4415, 4433, 4454, 4474, 4487, 4496, 4506, 4516, 4525,
-    4531, 4539, 4546, 4557, 4565, 4575, 4584, 4593, 4599, 4607, 4612, 4617, 4624,
-    4631, 4646, 4666, 4682, 4706, 4727, 4750, 4767, 4785, 4811, 4829, 4853, 4874,
-    4896, 4918, 4942, 4969, 4996, 5030, 5056, 5079, 5087, 5094, 5100, 5105, 5111,
-    5116, 5126, 5130, 5136, 5143, 5151, 5156, 5162, 5169, 5178, 5186, 5193, 5200,
-    5209, 5218, 5223, 5230, 5237, 5242, 5254, 5268, 5287, 5314, 5332, 5358, 5386,
-    5415, 5430, 5448, 5461, 5476, 5495, 5513, 5543, 5571, 5597, 5617, 5642, 5673,
-    5703, 5728, 5759, 5801, 5830, 5855, 5883, 5910, 5932, 5964, 5994, 6017, 6044,
-    6073, 6099, 6126, 6138, 6156, 6177, 6194, 6208, 6222, 6237,
-];
-
-function ayaStringSplitter(str) {
-    var _a = str.trim().split(":"), surah = _a[0], ayahs = _a[1];
-    if (!ayahs) {
-        throw "Error in data " + str;
-    }
-    return [
-        +surah,
-        ayahs.includes("-")
-            ? ayahs.split("-").map(Number)
-            : +ayahs,
-    ];
-}
-
-var JuzList = [
-    0, 1, 149, 260, 386, 517, 641, 751, 900, 1042, 1201, 1328, 1479, 1649, 1803,
-    2030, 2215, 2484, 2674, 2876, 3215, 3386, 3564, 3733, 4090, 4265, 4511, 4706,
-    5105, 5242, 5673, 6237,
-];
-var ManzilList = [0, 1, 670, 1365, 2030, 2933, 3789, 4631, 6237];
-var SajdaList = [
-    [1160, "recommended"],
-    [1722, "recommended"],
-    [1951, "recommended"],
-    [2138, "recommended"],
-    [2308, "recommended"],
-    [2613, "recommended"],
-    [2672, "recommended"],
-    [2915, "recommended"],
-    [3185, "recommended"],
-    [3518, "obligatory"],
-    [3994, "recommended"],
-    [4256, "obligatory"],
-    [4846, "obligatory"],
-    [5905, "recommended"],
-    [6125, "obligatory"],
-];
-function binarySearch(ar, el, compare_fn) {
-    if (compare_fn === void 0) { compare_fn = function (a, b) { return a - b; }; }
-    var m = 0;
-    var n = ar.length - 1;
-    while (m <= n) {
-        var k = (n + m) >> 1;
-        var cmp = compare_fn(el, ar[k]);
-        if (cmp > 0) {
-            m = k + 1;
-        }
-        else if (cmp < 0) {
-            n = k - 1;
-        }
-        else {
-            return k;
-        }
-    }
-    return -m - 1;
-}
-function checkValidAyahId(ayaId) {
-    if (ayaId < 1 || ayaId > meta.numAyas)
-        throw new RangeError("ayaid must be between 1 and " + meta.numAyas);
-    return true;
-}
-function checkValidSurah(surah, checkOnly) {
-    if (checkOnly === void 0) { checkOnly = false; }
-    if (surah < 1 || surah > meta.numSuras) {
-        if (checkOnly)
-            return false;
-        throw new RangeError("Surah must be between 1 and " + meta.numSuras);
-    }
-    return true;
-}
-function findSurahByAyaid(ayaId) {
-    checkValidAyahId(ayaId);
-    var suraNum = SuraList.findIndex(function (x) { return x[0] >= ayaId; }) - 1;
-    return suraNum < 0
-        ? [114, ayaId - SuraList[114][0]]
-        : [suraNum, ayaId - SuraList[suraNum][0]];
-}
-function findJuzByAyaid(ayaId) {
-    checkValidAyahId(ayaId);
-    return JuzList.findIndex(function (x) { return x > ayaId; }) - 1;
-}
-function findJuzHizbByAyaid(ayaId) {
-    checkValidAyahId(ayaId);
-    var juz = findJuzByAyaid(ayaId);
-    var id = HizbQuarterList.findIndex(function (x) { return x > ayaId; }) - 1;
-    return { juz: juz, hizb: id % 8 || 8, id: id };
-}
-function findJuz(surah, ayah, ayahMode) {
-    if (ayah === void 0) { ayah = 1; }
-    if (ayahMode === void 0) { ayahMode = false; }
-    var ayahId = ayahMode
-        ? ayah
-        : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
-    return findJuzByAyaid(ayahId);
-}
-function findJuzHizb(surah, ayah, ayahMode) {
-    if (ayah === void 0) { ayah = 1; }
-    if (ayahMode === void 0) { ayahMode = false; }
-    var ayahId = ayahMode
-        ? ayah
-        : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
-    return findJuzHizbByAyaid(ayahId);
-}
-function isAyahJuzFirst(surah, ayah, ayahMode) {
-    if (ayahMode === void 0) { ayahMode = false; }
-    var ayahId = ayahMode
-        ? (checkValidAyahId(ayah) && ayah)
-        : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
-    return binarySearch(JuzList, ayahId);
-}
-function isAyahPageFirst(surah, ayah, ayahMode) {
-    if (ayahMode === void 0) { ayahMode = false; }
-    var ayahId = ayahMode
-        ? (checkValidAyahId(ayah) && ayah)
-        : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
-    return binarySearch(PageList, ayahId);
-}
-function findJuzAndShift(surah, ayah, ayahMode) {
-    if (ayahMode === void 0) { ayahMode = false; }
-    var ayahId = ayahMode
-        ? (checkValidAyahId(ayah) && ayah)
-        : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
-    var juz = findJuzByAyaid(ayahId);
-    var leftAyahId = JuzList[juz];
-    if (surah < 0)
-        surah = findSurahByAyaid(leftAyahId)[0];
-    var surahStartAyahId = SuraList[surah][0];
-    return {
-        juz: juz,
-        ayahsBetweenJuzSurah: surahStartAyahId - leftAyahId + 1,
-        leftAyahId: leftAyahId,
-    };
-}
-function findJuzMetaBySurah(surah, ayah) {
-    if (ayah === void 0) { ayah = 1; }
-    var _a = findJuzAndShift(surah, ayah), leftjuz = _a.juz, ayahsBetweenJuzSurah = _a.ayahsBetweenJuzSurah, leftAyahId = _a.leftAyahId;
-    var rightJuz = leftjuz;
-    while (rightJuz < meta.numJuzs &&
-        findSurahByAyaid(JuzList[rightJuz + 1])[0] == surah)
-        rightJuz++;
-    return {
-        leftjuz: leftjuz,
-        ayahsBetweenJuzSurah: ayahsBetweenJuzSurah,
-        rightJuz: rightJuz,
-        leftAyahId: leftAyahId,
-        rightAyahId: JuzList[rightJuz + 1],
-    };
-}
-function getSurahMeta(surah) {
-    checkValidSurah(surah);
-    return SuraList[surah];
-}
-function findPage(surah, ayah, ayahMode) {
-    if (ayahMode === void 0) { ayahMode = false; }
-    var ayahId = ayahMode
-        ? (checkValidAyahId(ayah) && ayah)
-        : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
-    return PageList.findIndex(function (x) { return x > ayahId; }) - 1;
-}
-function findAyaidBySurah(surah, ayah) {
-    var startAyahId = getSurahMeta(surah)[0];
-    return startAyahId + ayah;
-}
-function getAyaCountinSura(surah) {
-    return getSurahMeta(surah)[1];
-}
-function nextAyah(surah, ayah) {
-    if (surah < 1 || surah > meta.numSuras)
-        throw new RangeError("Surah must be between 1 and " + meta.numSuras);
-    var ayaid = findAyaidBySurah(surah, ayah);
-    return findSurahByAyaid(ayaid == meta.numAyas ? 1 : ayaid + 1);
-}
-function prevAyah(surah, ayah) {
-    checkValidSurah(surah);
-    var ayaid = findAyaidBySurah(surah, ayah);
-    return findSurahByAyaid(ayaid == 1 ? meta.numAyas : ayaid - 1);
-}
-function pageMeta(pageNum) {
-    if (pageNum < 1 || pageNum > meta.numPages)
-        throw new RangeError("pagenum must be between 1 and " + meta.numPages);
-    var _a = [
-        PageList[pageNum],
-        PageList[pageNum + 1],
-    ], curPage = _a[0], nextPage = _a[1];
-    return {
-        pageNum: pageNum,
-        first: findSurahByAyaid(curPage),
-        last: __spreadArray([], findSurahByAyaid(nextPage - 1), true),
-    };
-}
-function findRangeAroundAyah(surah, ayah, mode, ayahMode) {
-    if (ayahMode === void 0) { ayahMode = false; }
-    var ayahId = ayahMode
-        ? ayah
-        : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
-    switch (mode) {
-        case "juz": {
-            var juz = findJuzByAyaid(ayahId);
-            return [JuzList[juz], JuzList[juz + 1] - 1];
-        }
-        case "surah": {
-            return [findAyaidBySurah(surah, 1), findAyaidBySurah(surah + 1, 1) - 1];
-        }
-        case "ayah": {
-            return [ayahId, ayahId];
-        }
-        case "page": {
-            var page = findPage(-1, ayahId, true);
-            return [PageList[page], PageList[page + 1] - 1];
-        }
-        case "all":
-        default:
-            return [1, meta.numAyas];
-    }
-}
-
-exports.HizbQuarterList = HizbQuarterList;
-exports.JuzList = JuzList;
-exports.ManzilList = ManzilList;
-exports.PageList = PageList;
-exports.RukuList = RukuList;
-exports.SajdaList = SajdaList;
-exports.SuraList = SuraList;
-exports.ayaStringSplitter = ayaStringSplitter;
-exports.findAyaidBySurah = findAyaidBySurah;
-exports.findJuz = findJuz;
-exports.findJuzAndShift = findJuzAndShift;
-exports.findJuzByAyaid = findJuzByAyaid;
-exports.findJuzHizb = findJuzHizb;
-exports.findJuzHizbByAyaid = findJuzHizbByAyaid;
-exports.findJuzMetaBySurah = findJuzMetaBySurah;
-exports.findPage = findPage;
-exports.findRangeAroundAyah = findRangeAroundAyah;
-exports.findSurahByAyaid = findSurahByAyaid;
-exports.getAyaCountinSura = getAyaCountinSura;
-exports.getSurahMeta = getSurahMeta;
-exports.isAyahJuzFirst = isAyahJuzFirst;
-exports.isAyahPageFirst = isAyahPageFirst;
-exports.meta = meta;
-exports.nextAyah = nextAyah;
-exports.pageMeta = pageMeta;
-exports.prevAyah = prevAyah;
-exports.suraNamesEn = suraNames$1;
-exports.suraNamesRu = suraNames;
-//# sourceMappingURL=quran-meta.common.js.map
diff --git a/dist/quran-meta.common.js.map b/dist/quran-meta.common.js.map
deleted file mode 100644
index 81d33a0..0000000
--- a/dist/quran-meta.common.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"quran-meta.common.js","sources":["../node_modules/.pnpm/@rollup+plugin-typescript@9.0.2_uxzoppybjjm3iv3alceonunahm/node_modules/tslib/tslib.es6.js","../src/const.ts","../src/i18n/sura.en.ts","../src/i18n/sura.ru.ts","../src/surahList.ts","../src/hizbList.ts","../src/rukuList.ts","../src/pageList.ts","../src/ayaStringSplitter.ts","../src/index.ts"],"sourcesContent":["/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n    extendStatics = Object.setPrototypeOf ||\r\n        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n        function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n    return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n    if (typeof b !== \"function\" && b !== null)\r\n        throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n    extendStatics(d, b);\r\n    function __() { this.constructor = d; }\r\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n    __assign = Object.assign || function __assign(t) {\r\n        for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n            s = arguments[i];\r\n            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n        }\r\n        return t;\r\n    }\r\n    return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n    var t = {};\r\n    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n        t[p] = s[p];\r\n    if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n        for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n            if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n                t[p[i]] = s[p[i]];\r\n        }\r\n    return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n    return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n    if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n    return new (P || (P = Promise))(function (resolve, reject) {\r\n        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n        function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n        step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n    });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n    return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n    function verb(n) { return function (v) { return step([n, v]); }; }\r\n    function step(op) {\r\n        if (f) throw new TypeError(\"Generator is already executing.\");\r\n        while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n            if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n            if (y = 0, t) op = [op[0] & 2, t.value];\r\n            switch (op[0]) {\r\n                case 0: case 1: t = op; break;\r\n                case 4: _.label++; return { value: op[1], done: false };\r\n                case 5: _.label++; y = op[1]; op = [0]; continue;\r\n                case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n                default:\r\n                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n                    if (t[2]) _.ops.pop();\r\n                    _.trys.pop(); continue;\r\n            }\r\n            op = body.call(thisArg, _);\r\n        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n    }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n    if (k2 === undefined) k2 = k;\r\n    var desc = Object.getOwnPropertyDescriptor(m, k);\r\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n        desc = { enumerable: true, get: function() { return m[k]; } };\r\n    }\r\n    Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n    if (k2 === undefined) k2 = k;\r\n    o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n    var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n    if (m) return m.call(o);\r\n    if (o && typeof o.length === \"number\") return {\r\n        next: function () {\r\n            if (o && i >= o.length) o = void 0;\r\n            return { value: o && o[i++], done: !o };\r\n        }\r\n    };\r\n    throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n    var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n    if (!m) return o;\r\n    var i = m.call(o), r, ar = [], e;\r\n    try {\r\n        while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n    }\r\n    catch (error) { e = { error: error }; }\r\n    finally {\r\n        try {\r\n            if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n        }\r\n        finally { if (e) throw e.error; }\r\n    }\r\n    return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n    for (var ar = [], i = 0; i < arguments.length; i++)\r\n        ar = ar.concat(__read(arguments[i]));\r\n    return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n    for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n    for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n        for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n            r[k] = a[j];\r\n    return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n    if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n        if (ar || !(i in from)) {\r\n            if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n            ar[i] = from[i];\r\n        }\r\n    }\r\n    return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n    return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n    if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n    var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n    return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n    function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n    function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n    function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n    function fulfill(value) { resume(\"next\", value); }\r\n    function reject(value) { resume(\"throw\", value); }\r\n    function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n    var i, p;\r\n    return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n    function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n    if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n    var m = o[Symbol.asyncIterator], i;\r\n    return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n    function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n    function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n    if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n    return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n    Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n    o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n    if (mod && mod.__esModule) return mod;\r\n    var result = {};\r\n    if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n    __setModuleDefault(result, mod);\r\n    return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n    return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n    if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n    return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n",null,null,null,null,null,null,null,null,null],"names":["suraNames"],"mappings":"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I,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;AAC5E,IAAA,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;;;AClBrD,IAAA,QAAQ,GAAa;AAChC,IAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IAC7E,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IACzE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;AAC5E,IAAA,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;;;AC1CjB,IAAA,QAAQ,GAAa;AAChC,IAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IAC3E,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IACzE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;AAC5E,IAAA,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;;;ACxCtD,SAAU,iBAAiB,CAAC,GAAW,EAAA;AACrC,IAAA,IAAA,KAAiB,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAArC,KAAK,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,KAAK,QAAyB,CAAA;IAC5C,IAAI,CAAC,KAAK,EAAE;QACV,MAAM,gBAAgB,GAAG,GAAG,CAAA;AAC7B,KAAA;IACD,OAAO;AACL,QAAA,CAAC,KAAK;AACN,QAAA,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC;cACd,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAsB;cAClD,CAAC,KAAK;KACX,CAAA;AACH;;ACmBA,IAAM,OAAO,GAAa;IACxB,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC3E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;AAC5E,IAAA,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;EACvB;AAOK,IAAA,UAAU,GAAa,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAC;AAoB5E,IAAM,SAAS,GAAY;IAEzB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,YAAY,CAAC;IACpB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,YAAY,CAAC;IACpB,CAAC,IAAI,EAAE,YAAY,CAAC;IACpB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,YAAY,CAAC;EACrB;AAeD,SAAS,YAAY,CACnB,EAAiB,EACjB,EAAU,EACV,UAA8D,EAAA;IAA9D,IAAA,UAAA,KAAA,KAAA,CAAA,EAAA,EAAA,UAAgD,GAAA,UAAA,CAAC,EAAE,CAAC,EAAK,EAAA,OAAA,CAAC,GAAG,CAAC,CAAA,EAAA,CAAA,EAAA;IAE9D,IAAI,CAAC,GAAG,CAAC,CAAA;AACT,IAAA,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,GAAG,CAAC,CAAA;IACrB,OAAO,CAAC,IAAI,CAAC,EAAE;QACb,IAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QACtB,IAAM,GAAG,GAAG,UAAU,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;QACjC,IAAI,GAAG,GAAG,CAAC,EAAE;AACX,YAAA,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;AACV,SAAA;aAAM,IAAI,GAAG,GAAG,CAAC,EAAE;AAClB,YAAA,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;AACV,SAAA;AAAM,aAAA;AACL,YAAA,OAAO,CAAC,CAAA;AACT,SAAA;AACF,KAAA;AACD,IAAA,OAAO,CAAC,CAAC,GAAG,CAAC,CAAA;AACf,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAa,EAAA;IACrC,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC,OAAO;QACnC,MAAM,IAAI,UAAU,CAAC,8BAA8B,GAAG,IAAI,CAAC,OAAO,CAAC,CAAA;AACrE,IAAA,OAAO,IAAI,CAAA;AACb,CAAC;AAED,SAAS,eAAe,CAAC,KAAY,EAAE,SAAiB,EAAA;AAAjB,IAAA,IAAA,SAAA,KAAA,KAAA,CAAA,EAAA,EAAA,SAAiB,GAAA,KAAA,CAAA,EAAA;IACtD,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE;AACtC,QAAA,IAAI,SAAS;AAAE,YAAA,OAAO,KAAK,CAAA;QAC3B,MAAM,IAAI,UAAU,CAAC,8BAA8B,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAA;AACrE,KAAA;AACD,IAAA,OAAO,IAAI,CAAA;AACb,CAAC;AAMK,SAAU,gBAAgB,CAAC,KAAa,EAAA;IAC5C,gBAAgB,CAAC,KAAK,CAAC,CAAA;IAEvB,IAAM,OAAO,GAAU,QAAQ,CAAC,SAAS,CAAC,UAAA,CAAC,EAAI,EAAA,OAAA,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,GAAA,CAAC,GAAG,CAAC,CAAA;IACjE,OAAO,OAAO,GAAG,CAAC;AAChB,UAAE,CAAC,GAAG,EAAE,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACjC,UAAE,CAAC,OAAO,EAAE,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAC7C,CAAC;AAMK,SAAU,cAAc,CAAC,KAAa,EAAA;IAC1C,gBAAgB,CAAC,KAAK,CAAC,CAAA;AAEvB,IAAA,OAAO,OAAO,CAAC,SAAS,CAAC,UAAA,CAAC,EAAI,EAAA,OAAA,CAAC,GAAG,KAAK,CAAT,EAAS,CAAC,GAAG,CAAC,CAAA;AAC9C,CAAC;AAKK,SAAU,kBAAkB,CAAC,KAAa,EAAA;IAC9C,gBAAgB,CAAC,KAAK,CAAC,CAAA;AAEvB,IAAA,IAAM,GAAG,GAAG,cAAc,CAAC,KAAK,CAAC,CAAA;AAEjC,IAAA,IAAM,EAAE,GAAG,eAAe,CAAC,SAAS,CAAC,UAAA,CAAC,EAAA,EAAI,OAAA,CAAC,GAAG,KAAK,CAAA,EAAA,CAAC,GAAG,CAAC,CAAA;AACxD,IAAA,OAAO,EAAE,GAAG,EAAA,GAAA,EAAE,IAAI,EAAE,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,EAAA,EAAA,EAAE,CAAA;AACvC,CAAC;SAMe,OAAO,CAAC,KAAY,EAAE,IAAgB,EAAE,QAAgB,EAAA;AAAlC,IAAA,IAAA,IAAA,KAAA,KAAA,CAAA,EAAA,EAAA,IAAgB,GAAA,CAAA,CAAA,EAAA;AAAE,IAAA,IAAA,QAAA,KAAA,KAAA,CAAA,EAAA,EAAA,QAAgB,GAAA,KAAA,CAAA,EAAA;IACtE,IAAM,MAAM,GAAW,QAAQ;AAC7B,UAAE,IAAI;AACN,WAAI,eAAe,CAAC,KAAK,CAAC,IAAI,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAY,CAAA;AAEzE,IAAA,OAAO,cAAc,CAAC,MAAM,CAAC,CAAA;AAC/B,CAAC;SAMe,WAAW,CACzB,KAAY,EACZ,IAAgB,EAChB,QAAgB,EAAA;AADhB,IAAA,IAAA,IAAA,KAAA,KAAA,CAAA,EAAA,EAAA,IAAgB,GAAA,CAAA,CAAA,EAAA;AAChB,IAAA,IAAA,QAAA,KAAA,KAAA,CAAA,EAAA,EAAA,QAAgB,GAAA,KAAA,CAAA,EAAA;IAEhB,IAAM,MAAM,GAAW,QAAQ;AAC7B,UAAE,IAAI;AACN,WAAI,eAAe,CAAC,KAAK,CAAC,IAAI,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAY,CAAA;AAEzE,IAAA,OAAO,kBAAkB,CAAC,MAAM,CAAC,CAAA;AACnC,CAAC;SAMe,cAAc,CAC5B,KAAY,EACZ,IAAY,EACZ,QAAgB,EAAA;AAAhB,IAAA,IAAA,QAAA,KAAA,KAAA,CAAA,EAAA,EAAA,QAAgB,GAAA,KAAA,CAAA,EAAA;IAEhB,IAAM,MAAM,GAAW,QAAQ;WACzB,gBAAgB,CAAC,IAAI,CAAC,IAAI,IAAI;AAClC,WAAI,eAAe,CAAC,KAAK,CAAC,IAAI,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAY,CAAA;AAEzE,IAAA,OAAO,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;AAEtC,CAAC;SAOe,eAAe,CAC7B,KAAY,EACZ,IAAY,EACZ,QAAgB,EAAA;AAAhB,IAAA,IAAA,QAAA,KAAA,KAAA,CAAA,EAAA,EAAA,QAAgB,GAAA,KAAA,CAAA,EAAA;IAEhB,IAAM,MAAM,GAAW,QAAQ;WACzB,gBAAgB,CAAC,IAAI,CAAC,IAAI,IAAI;AAClC,WAAI,eAAe,CAAC,KAAK,CAAC,IAAI,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAY,CAAA;AAEzE,IAAA,OAAO,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;AAEvC,CAAC;SASe,eAAe,CAC7B,KAAY,EACZ,IAAY,EACZ,QAAgB,EAAA;AAAhB,IAAA,IAAA,QAAA,KAAA,KAAA,CAAA,EAAA,EAAA,QAAgB,GAAA,KAAA,CAAA,EAAA;IAMhB,IAAM,MAAM,GAAW,QAAQ;WACzB,gBAAgB,CAAC,IAAI,CAAC,IAAI,IAAI;AAClC,WAAI,eAAe,CAAC,KAAK,CAAC,IAAI,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAY,CAAA;AAEzE,IAAA,IAAM,GAAG,GAAG,cAAc,CAAC,MAAM,CAAC,CAAA;AAClC,IAAA,IAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,CAAA;IAC/B,IAAI,KAAK,GAAG,CAAC;AAAG,QAAA,KAAK,GAAI,gBAAgB,CAAC,UAAU,CAAC,GAAhC,CAAgC;AAC9C,IAAA,IAAA,gBAAgB,GAAI,QAAQ,CAAC,KAAK,CAAC,GAAnB,CAAmB;IAC1C,OAAO;AACL,QAAA,GAAG,EAAA,GAAA;AACH,QAAA,oBAAoB,EAAE,gBAAgB,GAAG,UAAU,GAAG,CAAC;AACvD,QAAA,UAAU,EAAA,UAAA;KACX,CAAA;AACH,CAAC;AASe,SAAA,kBAAkB,CAAC,KAAY,EAAE,IAAgB,EAAA;AAAhB,IAAA,IAAA,IAAA,KAAA,KAAA,CAAA,EAAA,EAAA,IAAgB,GAAA,CAAA,CAAA,EAAA;AACzD,IAAA,IAAA,KAIF,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,EAHzB,OAAO,GAAA,EAAA,CAAA,GAAA,EACZ,oBAAoB,GAAA,EAAA,CAAA,oBAAA,EACpB,UAAU,gBACoB,CAAA;IAEhC,IAAI,QAAQ,GAAQ,OAAO,CAAA;AAC3B,IAAA,OACE,QAAQ,GAAG,IAAI,CAAC,OAAO;AACvB,QAAA,gBAAgB,CAAC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK;AAEnD,QAAA,QAAQ,EAAE,CAAA;IAEZ,OAAO;AACL,QAAA,OAAO,EAAA,OAAA;AACP,QAAA,oBAAoB,EAAA,oBAAA;AACpB,QAAA,QAAQ,EAAA,QAAA;AACR,QAAA,UAAU,EAAA,UAAA;AACV,QAAA,WAAW,EAAE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;KACnC,CAAA;AACH,CAAC;AAMK,SAAU,YAAY,CAAC,KAAY,EAAA;IACvC,eAAe,CAAC,KAAK,CAAC,CAAA;AACtB,IAAA,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAA;AACxB,CAAC;SAOe,QAAQ,CAAC,KAAY,EAAE,IAAY,EAAE,QAAgB,EAAA;AAAhB,IAAA,IAAA,QAAA,KAAA,KAAA,CAAA,EAAA,EAAA,QAAgB,GAAA,KAAA,CAAA,EAAA;IACnE,IAAM,MAAM,GAAW,QAAQ;WACzB,gBAAgB,CAAC,IAAI,CAAC,IAAI,IAAI;AAClC,WAAI,eAAe,CAAC,KAAK,CAAC,IAAI,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAY,CAAA;AAEzE,IAAA,OAAO,QAAQ,CAAC,SAAS,CAAC,UAAA,CAAC,EAAI,EAAA,OAAA,CAAC,GAAG,MAAM,CAAV,EAAU,CAAC,GAAG,CAAC,CAAA;AAChD,CAAC;AAOe,SAAA,gBAAgB,CAAC,KAAY,EAAE,IAAY,EAAA;AAClD,IAAA,IAAA,WAAW,GAAI,YAAY,CAAC,KAAK,CAAC,GAAvB,CAAuB;IACzC,OAAO,WAAW,GAAG,IAAI,CAAA;AAC3B,CAAC;AAMK,SAAU,iBAAiB,CAAC,KAAY,EAAA;AAC5C,IAAA,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;AAC/B,CAAC;AAOe,SAAA,QAAQ,CAAC,KAAY,EAAE,IAAY,EAAA;IACjD,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC,QAAQ;QACpC,MAAM,IAAI,UAAU,CAAC,8BAA8B,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAA;IAEtE,IAAM,KAAK,GAAW,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;AACnD,IAAA,OAAO,gBAAgB,CAAC,KAAK,IAAI,IAAI,CAAC,OAAO,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,CAAA;AAChE,CAAC;AAOe,SAAA,QAAQ,CAAC,KAAY,EAAE,IAAY,EAAA;IACjD,eAAe,CAAC,KAAK,CAAC,CAAA;IAEtB,IAAM,KAAK,GAAW,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;AACnD,IAAA,OAAO,gBAAgB,CAAC,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,GAAG,KAAK,GAAG,CAAC,CAAC,CAAA;AAChE,CAAC;AAMK,SAAU,QAAQ,CAAC,OAAa,EAAA;IAEpC,IAAI,OAAO,GAAG,CAAC,IAAI,OAAO,GAAG,IAAI,CAAC,QAAQ;QACxC,MAAM,IAAI,UAAU,CAAC,gCAAgC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAA;AAElE,IAAA,IAAA,EAAwC,GAAA;QAC5C,QAAQ,CAAC,OAAO,CAAC;AACjB,QAAA,QAAQ,CAAC,OAAO,GAAG,CAAC,CAAC;AACtB,KAAA,EAHM,OAAO,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,QAAQ,QAGvB,CAAA;IAED,OAAO;AACL,QAAA,OAAO,EAAA,OAAA;AACP,QAAA,KAAK,EAAE,gBAAgB,CAAC,OAAO,CAAC;AAChC,QAAA,IAAI,oBAAM,gBAAgB,CAAC,QAAQ,GAAG,CAAC,CAAC,EAAC,IAAA,CAAA;KAC1C,CAAA;AACH,CAAC;AAkCK,SAAU,mBAAmB,CACjC,KAAY,EACZ,IAAY,EACZ,IAA+C,EAC/C,QAAgB,EAAA;AAAhB,IAAA,IAAA,QAAA,KAAA,KAAA,CAAA,EAAA,EAAA,QAAgB,GAAA,KAAA,CAAA,EAAA;IAEhB,IAAM,MAAM,GAAW,QAAQ;AAC7B,UAAE,IAAI;AACN,WAAI,eAAe,CAAC,KAAK,CAAC,IAAI,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAY,CAAA;AAEzE,IAAA,QAAQ,IAAI;QACV,KAAK,KAAK,EAAE;AACV,YAAA,IAAM,GAAG,GAAQ,cAAc,CAAC,MAAM,CAAC,CAAA;AACvC,YAAA,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;AAC5C,SAAA;QAED,KAAK,OAAO,EAAE;AACZ,YAAA,OAAO,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,gBAAgB,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;AACxE,SAAA;QAED,KAAK,MAAM,EAAE;AACX,YAAA,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;AACxB,SAAA;QACD,KAAK,MAAM,EAAE;YACX,IAAM,IAAI,GAAS,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,CAAA;AAC7C,YAAA,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;AAChD,SAAA;AAED,QAAA,KAAK,KAAK,CAAC;AACX,QAAA;AACE,YAAA,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;AAC3B,KAAA;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
\ No newline at end of file
diff --git a/dist/quran-meta.esm.browser.js b/dist/quran-meta.esm.browser.js
deleted file mode 100644
index 14a0832..0000000
--- a/dist/quran-meta.esm.browser.js
+++ /dev/null
@@ -1,687 +0,0 @@
-/*! 
- * Quran Meta library 2.4.13
- *
- * Released under the MIT license
- */
-
-const meta = Object.freeze({
-    numAyas: 6236,
-    numSuras: 114,
-    numPages: 604,
-    numJuzs: 30,
-    manzilCount: 7,
-});
-
-const suraNames$1 = [
-    [],
-    ["Al-Faatiha", "The Opening"],
-    ["Al-Baqara", "The Cow"],
-    ["Aal-i-Imraan", "The Family of Imraan"],
-    ["An-Nisaa", "The Women"],
-    ["Al-Maaida", "The Table"],
-    ["Al-An'aam", "The Cattle"],
-    ["Al-A'raaf", "The Heights"],
-    ["Al-Anfaal", "The Spoils of War"],
-    ["At-Tawba", "The Repentance"],
-    ["Yunus", "Jonas"],
-    ["Hud", "Hud"],
-    ["Yusuf", "Joseph"],
-    ["Ar-Ra'd", "The Thunder"],
-    ["Ibrahim", "Abraham"],
-    ["Al-Hijr", "The Rock"],
-    ["An-Nahl", "The Bee"],
-    ["Al-Israa", "The Night Journey"],
-    ["Al-Kahf", "The Cave"],
-    ["Maryam", "Mary"],
-    ["Taa-Haa", "Taa-Haa"],
-    ["Al-Anbiyaa", "The Prophets"],
-    ["Al-Hajj", "The Pilgrimage"],
-    ["Al-Muminoon", "The Believers"],
-    ["An-Noor", "The Light"],
-    ["Al-Furqaan", "The Criterion"],
-    ["Ash-Shu'araa", "The Poets"],
-    ["An-Naml", "The Ant"],
-    ["Al-Qasas", "The Stories"],
-    ["Al-Ankaboot", "The Spider"],
-    ["Ar-Room", "The Romans"],
-    ["Luqman", "Luqman"],
-    ["As-Sajda", "The Prostration"],
-    ["Al-Ahzaab", "The Clans"],
-    ["Saba", "Sheba"],
-    ["Faatir", "The Originator"],
-    ["Yaseen", "Yaseen"],
-    ["As-Saaffaat", "Those drawn up in Ranks"],
-    ["Saad", "The letter Saad"],
-    ["Az-Zumar", "The Groups"],
-    ["Al-Ghaafir", "The Forgiver"],
-    ["Fussilat", "Explained in detail"],
-    ["Ash-Shura", "Consultation"],
-    ["Az-Zukhruf", "Ornaments of gold"],
-    ["Ad-Dukhaan", "The Smoke"],
-    ["Al-Jaathiya", "Crouching"],
-    ["Al-Ahqaf", "The Dunes"],
-    ["Muhammad", "Muhammad"],
-    ["Al-Fath", "The Victory"],
-    ["Al-Hujuraat", "The Inner Apartments"],
-    ["Qaaf", "The letter Qaaf"],
-    ["Adh-Dhaariyat", "The Winnowing Winds"],
-    ["At-Tur", "The Mount"],
-    ["An-Najm", "The Star"],
-    ["Al-Qamar", "The Moon"],
-    ["Ar-Rahmaan", "The Beneficent"],
-    ["Al-Waaqia", "The Inevitable"],
-    ["Al-Hadid", "The Iron"],
-    ["Al-Mujaadila", "The Pleading Woman"],
-    ["Al-Hashr", "The Exile"],
-    ["Al-Mumtahana", "She that is to be examined"],
-    ["As-Saff", "The Ranks"],
-    ["Al-Jumu'a", "Friday"],
-    ["Al-Munaafiqoon", "The Hypocrites"],
-    ["At-Taghaabun", "Mutual Disillusion"],
-    ["At-Talaaq", "Divorce"],
-    ["At-Tahrim", "The Prohibition"],
-    ["Al-Mulk", "The Sovereignty"],
-    ["Al-Qalam", "The Pen"],
-    ["Al-Haaqqa", "The Reality"],
-    ["Al-Ma'aarij", "The Ascending Stairways"],
-    ["Nooh", "Noah"],
-    ["Al-Jinn", "The Jinn"],
-    ["Al-Muzzammil", "The Enshrouded One"],
-    ["Al-Muddaththir", "The Cloaked One"],
-    ["Al-Qiyaama", "The Resurrection"],
-    ["Al-Insaan", "Man"],
-    ["Al-Mursalaat", "The Emissaries"],
-    ["An-Naba", "The Announcement"],
-    ["An-Naazi'aat", "Those who drag forth"],
-    ["Abasa", "He frowned"],
-    ["At-Takwir", "The Overthrowing"],
-    ["Al-Infitaar", "The Cleaving"],
-    ["Al-Mutaffifin", "Defrauding"],
-    ["Al-Inshiqaaq", "The Splitting Open"],
-    ["Al-Burooj", "The Constellations"],
-    ["At-Taariq", "The Morning Star"],
-    ["Al-A'laa", "The Most High"],
-    ["Al-Ghaashiya", "The Overwhelming"],
-    ["Al-Fajr", "The Dawn"],
-    ["Al-Balad", "The City"],
-    ["Ash-Shams", "The Sun"],
-    ["Al-Lail", "The Night"],
-    ["Ad-Dhuhaa", "The Morning Hours"],
-    ["Ash-Sharh", "The Consolation"],
-    ["At-Tin", "The Fig"],
-    ["Al-Alaq", "The Clot"],
-    ["Al-Qadr", "The Power, Fate"],
-    ["Al-Bayyina", "The Evidence"],
-    ["Az-Zalzala", "The Earthquake"],
-    ["Al-Aadiyaat", "The Chargers"],
-    ["Al-Qaari'a", "The Calamity"],
-    ["At-Takaathur", "Competition"],
-    ["Al-Asr", "The Declining Day, Epoch"],
-    ["Al-Humaza", "The Traducer"],
-    ["Al-Fil", "The Elephant"],
-    ["Quraish", "Quraysh"],
-    ["Al-Maa'un", "Almsgiving"],
-    ["Al-Kawthar", "Abundance"],
-    ["Al-Kaafiroon", "The Disbelievers"],
-    ["An-Nasr", "Divine Support"],
-    ["Al-Masad", "The Palm Fibre"],
-    ["Al-Ikhlaas", "Sincerity"],
-    ["Al-Falaq", "The Dawn"],
-    ["An-Naas", "Mankind"],
-];
-
-const suraNames = [
-    [],
-    ["Аль-Фатиха", "Открывающая Коран"],
-    ["Аль-Бакара", "Корова"],
-    ["Аль ‘Имран", "Семейство ‘Имрана"],
-    ["Ан-Ниса", "Женщины"],
-    ["Аль-Маида", "Трапеза"],
-    ["Аль-Ан‘ам", "Скот"],
-    ["Аль-А‘раф", "Ограды"],
-    ["Аль-Анфаль", "Военная добыча"],
-    ["Ат-Тауба", "Покаяние"],
-    ["Юнус", "Иона"],
-    ["Худ", "Худ"],
-    ["Юсуф", "Иосиф"],
-    ["Ар-Ра‘д", "Гром"],
-    ["Ибрахим", "Авраам"],
-    ["Аль-Хиджр", "Хиджр"],
-    ["Ан-Нахль", "Пчёлы"],
-    ["Аль-Исра", "Ночной перенос"],
-    ["Аль-Кяхф", "Пещера"],
-    ["Марьям", "Мария"],
-    ["Та, ха", "Та, ха"],
-    ["Аль-Анбия", "Пророки"],
-    ["Аль-Хаджж", "Хадж"],
-    ["Аль-Му’минун", "Верующие"],
-    ["Ан-Нур", "Свет"],
-    ["Аль-Фуркан", "Различение"],
-    ["Аш-Шу‘ара", "Поэты"],
-    ["Ан-Намль", "Муравьи"],
-    ["Аль-Касас", "Рассказ"],
-    ["Аль-‘Анкабут", "Паук"],
-    ["Ар-Рум", "Ромеи"],
-    ["Лукман", "Лукман"],
-    ["Ас-Саджда", "Земной поклон"],
-    ["Аль-Ахзаб", "Полчища"],
-    ["Саба’", "Сава"],
-    ["Фатыр", "Зиждитель"],
-    ["Йа, син", "Йа, син"],
-    ["Ас-Саффат", "Стоящие в ряд"],
-    ["Сад", "Сад"],
-    ["Аз-Зумар", "Толпы"],
-    ["Гафир", "Прощающий"],
-    ["Фуссылят", "Разъяснены"],
-    ["Аш-Шура", "Совет"],
-    ["Аз-Зухруф", "Украшения"],
-    ["Ад-Духан", "Дым"],
-    ["Аль-Джасия", "Коленопреклонённые"],
-    ["Аль-Ахкаф", "Барханы"],
-    ["Мухаммад", "Мухаммад"],
-    ["Аль-Фатх", "Победа"],
-    ["Аль-Худжурат", "Покои"],
-    ["Каф", "Каф"],
-    ["Аз-Зарият", "Рассеивающие"],
-    ["Ат-Тур", "Гора"],
-    ["Ан-Наджм", "Звезда"],
-    ["Аль-Камар", "Луна"],
-    ["Ар-Рахман", "Милостивый"],
-    ["Аль-Ваки‘а", "Неизбежное"],
-    ["Аль-Хадид", "Железо"],
-    ["Аль-Муджадиля", "Препирающаяся"],
-    ["Аль-Хашр", "Сбор"],
-    ["Аль-Мумтахана", "Испытуемая"],
-    ["Ас-Сафф", "Ряд"],
-    ["Аль-Джуму‘а", "Собрание"],
-    ["Аль-Мунафикун", "Лицемеры"],
-    ["Ат-Тагабун", "Обделение"],
-    ["Ат-Таляк", "Развод"],
-    ["Ат-Тахрим", "Запрещение"],
-    ["Аль-Мульк", "Власть"],
-    ["Аль-Калям", "Перо"],
-    ["Аль-Хакка", "Неминуемое"],
-    ["Аль-Ма‘аридж", "Степени"],
-    ["Нух", "Ной"],
-    ["Аль-Джинн", "Джинны"],
-    ["Аль-Муззаммиль", "Закутавшийся"],
-    ["Аль-Муддассир", "Завернувшийся"],
-    ["Аль-Кияма", "Воскресение"],
-    ["Аль-Инсан", "Человек"],
-    ["Аль-Мурсалят", "Посылаемые"],
-    ["Ан-Наба’", "Весть"],
-    ["Ан-Нази‘ат", "Вырывающие"],
-    ["‘Абаса", "Нахмурился"],
-    ["Ат-Таквир", "Сворачивание"],
-    ["Аль-Инфитар", "Раскалывание"],
-    ["Аль-Мутаффифин", "Обвешивающие"],
-    ["Аль-Иншикак", "Разверзнется"],
-    ["Аль-Бурудж", "Созвездия"],
-    ["Ат-Тарик", "Ночной гость"],
-    ["Аль-А‘ля", "Всевышний"],
-    ["Аль-Гашия", "Покрывающее"],
-    ["Аль-Фаджр", "Заря"],
-    ["Аль-Баляд", "Город"],
-    ["Аш-Шамс", "Солнце"],
-    ["Аль-Лейль", "Ночь"],
-    ["Ад-Духа", "Утро"],
-    ["Аль-Инширах", "Раскрытие"],
-    ["Ат-Тин", "Смоковница"],
-    ["Аль-‘Аляк", "Сгусток крови"],
-    ["Аль-Кадр", "Величие"],
-    ["Аль-Баййина", "Ясный довод"],
-    ["Аз-Зальзаля", "Сотрясение"],
-    ["Аль-‘Адият", "Скачущие"],
-    ["Аль-Кари‘а", "Поражающее"],
-    ["Ат-Такясур", "Соперничество"],
-    ["Аль-‘Аср", "Предвечернее время"],
-    ["Аль-Хумаза", "Хулитель"],
-    ["Аль-Филь", "Слон"],
-    ["Курайш", "Курайшиты"],
-    ["Аль-Ма‘ун", "Утварь"],
-    ["Аль-Каусар", "Каусар"],
-    ["Аль-Кяфирун", "Неверующие"],
-    ["Ан-Наср", "Помощь"],
-    ["Аль-Масад", "Пальмовые волокна"],
-    ["Аль-Ихляс", "Очищение веры"],
-    ["Аль-Фаляк", "Рассвет"],
-    ["Ан-Нас", "Люди"],
-];
-
-const SuraList = [
-    [-1, -1, -1, -1, "", false, -1],
-    [0, 7, 5, 1, "الفاتحة", true, 1],
-    [7, 286, 87, 40, "البقرة", false, 2],
-    [293, 200, 89, 20, "آل عمران", false, 50],
-    [493, 176, 92, 24, "النساء", false, 77],
-    [669, 120, 112, 16, "المائدة", false, 107],
-    [789, 165, 55, 20, "الأنعام", true, 128],
-    [954, 206, 39, 24, "الأعراف", true, 151],
-    [1160, 75, 88, 10, "الأنفال", false, 177],
-    [1235, 129, 113, 16, "التوبة", false, 187],
-    [1364, 109, 51, 11, "يونس", true, 208],
-    [1473, 123, 52, 10, "هود", true, 222],
-    [1596, 111, 53, 12, "يوسف", true, 236],
-    [1707, 43, 96, 6, "الرعد", false, 249],
-    [1750, 52, 72, 7, "ابراهيم", true, 256],
-    [1802, 99, 54, 6, "الحجر", true, 262],
-    [1901, 128, 70, 16, "النحل", true, 268],
-    [2029, 111, 50, 12, "الإسراء", true, 282],
-    [2140, 110, 69, 12, "الكهف", true, 294],
-    [2250, 98, 44, 6, "مريم", true, 305],
-    [2348, 135, 45, 8, "طه", true, 313],
-    [2483, 112, 73, 7, "الأنبياء", true, 322],
-    [2595, 78, 103, 10, "الحج", false, 332],
-    [2673, 118, 74, 6, "المؤمنون", true, 342],
-    [2791, 64, 102, 9, "النور", false, 350],
-    [2855, 77, 42, 6, "الفرقان", true, 360],
-    [2932, 227, 47, 11, "الشعراء", true, 367],
-    [3159, 93, 48, 7, "النمل", true, 377],
-    [3252, 88, 49, 8, "القصص", true, 386],
-    [3340, 69, 85, 7, "العنكبوت", true, 397],
-    [3409, 60, 84, 6, "الروم", true, 405],
-    [3469, 34, 57, 3, "لقمان", true, 411],
-    [3503, 30, 75, 3, "السجدة", true, 415],
-    [3533, 73, 90, 9, "الأحزاب", false, 418],
-    [3606, 54, 58, 6, "سبإ", true, 428],
-    [3660, 45, 43, 5, "فاطر", true, 435],
-    [3705, 83, 41, 5, "يس", true, 441],
-    [3788, 182, 56, 5, "الصافات", true, 446],
-    [3970, 88, 38, 5, "ص", true, 453],
-    [4058, 75, 59, 8, "الزمر", true, 459],
-    [4133, 85, 60, 9, "غافر", true, 468],
-    [4218, 54, 61, 6, "فصلت", true, 477],
-    [4272, 53, 62, 5, "الشورى", true, 483],
-    [4325, 89, 63, 7, "الزخرف", true, 490],
-    [4414, 59, 64, 3, "الدخان", true, 496],
-    [4473, 37, 65, 4, "الجاثية", true, 499],
-    [4510, 35, 66, 4, "الأحقاف", true, 503],
-    [4545, 38, 95, 4, "محمد", false, 507],
-    [4583, 29, 111, 4, "الفتح", false, 511],
-    [4612, 18, 106, 2, "الحجرات", false, 516],
-    [4630, 45, 34, 3, "ق", true, 518],
-    [4675, 60, 67, 3, "الذاريات", true, 521],
-    [4735, 49, 76, 2, "الطور", true, 524],
-    [4784, 62, 23, 3, "النجم", true, 526],
-    [4846, 55, 37, 3, "القمر", true, 529],
-    [4901, 78, 97, 3, "الرحمن", false, 532],
-    [4979, 96, 46, 3, "الواقعة", true, 535],
-    [5075, 29, 94, 4, "الحديد", false, 538],
-    [5104, 22, 105, 3, "المجادلة", false, 542],
-    [5126, 24, 101, 3, "الحشر", false, 546],
-    [5150, 13, 91, 2, "الممتحنة", false, 549],
-    [5163, 14, 109, 2, "الصف", false, 552],
-    [5177, 11, 110, 2, "الجمعة", false, 553],
-    [5188, 11, 104, 2, "المنافقون", false, 555],
-    [5199, 18, 108, 2, "التغابن", false, 556],
-    [5217, 12, 99, 2, "الطلاق", false, 558],
-    [5229, 12, 107, 2, "التحريم", false, 560],
-    [5241, 30, 77, 2, "الملك", true, 562],
-    [5271, 52, 2, 2, "القلم", true, 565],
-    [5323, 52, 78, 2, "الحاقة", true, 567],
-    [5375, 44, 79, 2, "المعارج", true, 569],
-    [5419, 28, 71, 2, "نوح", true, 571],
-    [5447, 28, 40, 2, "الجن", true, 572],
-    [5475, 20, 3, 2, "المزمل", true, 574],
-    [5495, 56, 4, 2, "المدثر", true, 576],
-    [5551, 40, 31, 2, "القيامة", true, 578],
-    [5591, 31, 98, 2, "الانسان", false, 579],
-    [5622, 50, 33, 2, "المرسلات", true, 581],
-    [5672, 40, 80, 2, "النبإ", true, 582],
-    [5712, 46, 81, 2, "النازعات", true, 584],
-    [5758, 42, 24, 1, "عبس", true, 585],
-    [5800, 29, 7, 1, "التكوير", true, 586],
-    [5829, 19, 82, 1, "الإنفطار", true, 587],
-    [5848, 36, 86, 1, "المطففين", true, 588],
-    [5884, 25, 83, 1, "الإنشقاق", true, 589],
-    [5909, 22, 27, 1, "البروج", true, 590],
-    [5931, 17, 36, 1, "الطارق", true, 591],
-    [5948, 19, 8, 1, "الأعلى", true, 592],
-    [5967, 26, 68, 1, "الغاشية", true, 592],
-    [5993, 30, 10, 1, "الفجر", true, 593],
-    [6023, 20, 35, 1, "البلد", true, 594],
-    [6043, 15, 26, 1, "الشمس", true, 595],
-    [6058, 21, 9, 1, "الليل", true, 596],
-    [6079, 11, 11, 1, "الضحى", true, 596],
-    [6090, 8, 12, 1, "الشرح", true, 596],
-    [6098, 8, 28, 1, "التين", true, 597],
-    [6106, 19, 1, 1, "العلق", true, 597],
-    [6125, 5, 25, 1, "القدر", true, 598],
-    [6130, 8, 100, 1, "البينة", false, 599],
-    [6138, 8, 93, 1, "الزلزلة", false, 599],
-    [6146, 11, 14, 1, "العاديات", true, 600],
-    [6157, 11, 30, 1, "القارعة", true, 600],
-    [6168, 8, 16, 1, "التكاثر", true, 600],
-    [6176, 3, 13, 1, "العصر", true, 601],
-    [6179, 9, 32, 1, "الهمزة", true, 601],
-    [6188, 5, 19, 1, "الفيل", true, 601],
-    [6193, 4, 29, 1, "قريش", true, 602],
-    [6197, 7, 17, 1, "الماعون", true, 602],
-    [6204, 3, 15, 1, "الكوثر", true, 602],
-    [6207, 6, 18, 1, "الكافرون", true, 603],
-    [6213, 3, 114, 1, "النصر", false, 603],
-    [6216, 5, 6, 1, "المسد", true, 603],
-    [6221, 4, 22, 1, "الإخلاص", true, 604],
-    [6225, 5, 20, 1, "الفلق", true, 604],
-    [6230, 6, 21, 1, "الناس", true, 604],
-    [6236, 0, -1, -1, "", false, -1],
-];
-
-const HizbQuarterList = [
-    0, 1, 33, 51, 67, 82, 99, 113, 131, 149, 165, 184, 196, 210, 226, 240, 250,
-    260, 270, 279, 290, 308, 326, 345, 368, 386, 406, 426, 446, 464, 479, 494,
-    505, 517, 529, 551, 567, 581, 593, 607, 628, 641, 656, 670, 681, 696, 710,
-    720, 736, 751, 766, 778, 802, 825, 848, 863, 884, 900, 916, 930, 940, 955,
-    985, 1001, 1019, 1042, 1071, 1096, 1110, 1125, 1143, 1161, 1182, 1201, 1221,
-    1236, 1254, 1269, 1281, 1295, 1310, 1328, 1346, 1357, 1375, 1390, 1417, 1435,
-    1454, 1479, 1497, 1514, 1534, 1557, 1581, 1603, 1626, 1649, 1673, 1697, 1712,
-    1726, 1742, 1760, 1778, 1803, 1852, 1902, 1931, 1952, 1976, 1991, 2012, 2030,
-    2052, 2079, 2099, 2128, 2157, 2172, 2191, 2215, 2239, 2272, 2309, 2349, 2403,
-    2431, 2459, 2484, 2512, 2534, 2566, 2596, 2614, 2633, 2655, 2674, 2709, 2748,
-    2792, 2812, 2826, 2844, 2856, 2876, 2908, 2933, 2984, 3043, 3113, 3160, 3186,
-    3215, 3241, 3264, 3281, 3303, 3328, 3341, 3366, 3386, 3410, 3440, 3463, 3491,
-    3514, 3534, 3551, 3564, 3584, 3593, 3616, 3630, 3652, 3675, 3701, 3733, 3765,
-    3810, 3871, 3933, 3991, 4022, 4066, 4090, 4111, 4134, 4154, 4174, 4199, 4227,
-    4243, 4265, 4285, 4299, 4323, 4349, 4382, 4431, 4485, 4511, 4531, 4555, 4578,
-    4601, 4613, 4626, 4657, 4706, 4759, 4810, 4855, 4902, 4980, 5054, 5091, 5105,
-    5118, 5137, 5157, 5178, 5192, 5218, 5230, 5242, 5272, 5324, 5394, 5448, 5495,
-    5552, 5610, 5673, 5759, 5830, 5885, 5949, 6024, 6091, 6155, 6237,
-];
-
-const RukuList = [
-    0, 1, 8, 15, 28, 37, 47, 54, 67, 69, 79, 90, 94, 104, 111, 120, 129, 137, 149,
-    155, 160, 171, 175, 184, 190, 196, 204, 218, 224, 229, 236, 239, 243, 250,
-    256, 261, 265, 268, 274, 281, 289, 291, 294, 303, 314, 324, 335, 348, 357,
-    365, 374, 385, 395, 403, 414, 423, 437, 442, 449, 465, 474, 483, 494, 504,
-    508, 516, 519, 527, 536, 544, 553, 564, 570, 581, 585, 590, 594, 598, 606,
-    609, 620, 628, 635, 646, 656, 665, 670, 675, 681, 689, 696, 704, 713, 720,
-    726, 736, 747, 756, 763, 770, 778, 785, 790, 800, 810, 820, 831, 840, 845,
-    850, 860, 872, 880, 884, 890, 900, 911, 919, 930, 934, 940, 944, 955, 965,
-    980, 986, 994, 1002, 1008, 1013, 1019, 1027, 1039, 1048, 1054, 1063, 1081,
-    1084, 1096, 1102, 1106, 1112, 1117, 1126, 1136, 1143, 1161, 1171, 1180, 1189,
-    1198, 1205, 1209, 1219, 1225, 1230, 1236, 1242, 1252, 1260, 1265, 1273, 1278,
-    1295, 1302, 1308, 1316, 1325, 1335, 1346, 1354, 1358, 1365, 1375, 1385, 1395,
-    1405, 1418, 1425, 1435, 1447, 1457, 1468, 1474, 1482, 1498, 1509, 1523, 1534,
-    1542, 1557, 1569, 1583, 1597, 1603, 1617, 1626, 1632, 1639, 1646, 1654, 1665,
-    1676, 1690, 1701, 1708, 1715, 1726, 1734, 1739, 1745, 1751, 1757, 1763, 1772,
-    1778, 1785, 1792, 1803, 1818, 1828, 1847, 1863, 1882, 1902, 1911, 1923, 1927,
-    1936, 1942, 1952, 1962, 1967, 1972, 1978, 1985, 1991, 2002, 2012, 2021, 2030,
-    2040, 2052, 2060, 2070, 2082, 2090, 2100, 2107, 2114, 2123, 2130, 2141, 2153,
-    2158, 2163, 2172, 2185, 2190, 2194, 2200, 2211, 2223, 2242, 2251, 2266, 2291,
-    2301, 2316, 2333, 2349, 2373, 2403, 2425, 2438, 2453, 2464, 2477, 2484, 2494,
-    2513, 2525, 2534, 2559, 2577, 2596, 2606, 2618, 2621, 2629, 2634, 2644, 2653,
-    2660, 2668, 2674, 2696, 2706, 2724, 2751, 2766, 2792, 2802, 2812, 2818, 2826,
-    2832, 2842, 2849, 2853, 2856, 2865, 2876, 2890, 2900, 2916, 2933, 2942, 2966,
-    2985, 3002, 3037, 3055, 3073, 3092, 3108, 3124, 3160, 3174, 3191, 3204, 3218,
-    3226, 3242, 3253, 3266, 3274, 3281, 3295, 3303, 3313, 3328, 3341, 3354, 3363,
-    3371, 3385, 3392, 3404, 3410, 3420, 3429, 3437, 3450, 3463, 3470, 3481, 3489,
-    3504, 3515, 3526, 3534, 3542, 3554, 3561, 3568, 3574, 3586, 3592, 3602, 3607,
-    3616, 3628, 3637, 3643, 3652, 3661, 3668, 3675, 3687, 3698, 3706, 3718, 3738,
-    3756, 3773, 3789, 3810, 3863, 3902, 3927, 3971, 3985, 3997, 4011, 4035, 4059,
-    4068, 4080, 4090, 4100, 4111, 4122, 4129, 4134, 4143, 4154, 4161, 4171, 4184,
-    4194, 4202, 4212, 4219, 4227, 4237, 4244, 4251, 4263, 4273, 4282, 4292, 4302,
-    4316, 4326, 4341, 4351, 4361, 4371, 4382, 4393, 4415, 4444, 4457, 4474, 4485,
-    4495, 4500, 4511, 4521, 4531, 4537, 4546, 4557, 4565, 4574, 4584, 4594, 4601,
-    4610, 4613, 4623, 4631, 4646, 4660, 4676, 4699, 4722, 4736, 4764, 4785, 4810,
-    4817, 4847, 4869, 4887, 4902, 4927, 4947, 4980, 5018, 5054, 5076, 5086, 5095,
-    5101, 5105, 5111, 5118, 5127, 5137, 5144, 5151, 5157, 5164, 5173, 5178, 5186,
-    5189, 5197, 5200, 5210, 5218, 5225, 5230, 5237, 5242, 5256, 5272, 5305, 5324,
-    5361, 5376, 5411, 5420, 5440, 5448, 5467, 5476, 5495, 5496, 5527, 5552, 5582,
-    5592, 5614, 5623, 5663, 5673, 5703, 5713, 5739, 5759, 5801, 5830, 5849, 5885,
-    5910, 5932, 5949, 5968, 5994, 6024, 6044, 6059, 6080, 6091, 6099, 6107, 6126,
-    6131, 6139, 6147, 6158, 6169, 6177, 6180, 6189, 6194, 6198, 6205, 6208, 6214,
-    6217, 6222, 6226, 6231, 6237,
-];
-
-const PageList = [
-    0, 1, 8, 13, 24, 32, 37, 45, 56, 65, 69, 77, 84, 91, 96, 101, 109, 113, 120,
-    127, 134, 142, 149, 153, 161, 171, 177, 184, 189, 194, 198, 204, 210, 218,
-    223, 227, 232, 238, 241, 245, 253, 256, 260, 264, 267, 272, 277, 282, 289,
-    290, 294, 303, 309, 316, 323, 331, 339, 346, 355, 364, 371, 377, 385, 394,
-    402, 409, 415, 426, 434, 442, 447, 451, 459, 467, 474, 480, 488, 494, 500,
-    505, 508, 513, 517, 520, 527, 531, 538, 545, 553, 559, 568, 573, 580, 585,
-    588, 595, 599, 607, 615, 621, 628, 634, 641, 648, 656, 664, 669, 672, 675,
-    679, 683, 687, 693, 701, 706, 711, 715, 720, 727, 734, 740, 746, 752, 759,
-    765, 773, 778, 783, 790, 798, 808, 817, 825, 834, 842, 849, 858, 863, 871,
-    880, 884, 891, 900, 908, 914, 921, 927, 932, 936, 941, 947, 955, 966, 977,
-    985, 992, 998, 1006, 1012, 1022, 1028, 1036, 1042, 1050, 1059, 1075, 1085,
-    1092, 1098, 1104, 1110, 1114, 1118, 1125, 1133, 1142, 1150, 1161, 1169, 1177,
-    1186, 1194, 1201, 1206, 1213, 1222, 1230, 1236, 1242, 1249, 1256, 1262, 1267,
-    1272, 1276, 1283, 1290, 1297, 1304, 1308, 1315, 1322, 1329, 1335, 1342, 1347,
-    1353, 1358, 1365, 1371, 1379, 1385, 1390, 1398, 1407, 1418, 1426, 1435, 1443,
-    1453, 1462, 1471, 1479, 1486, 1493, 1502, 1511, 1519, 1527, 1536, 1545, 1555,
-    1562, 1571, 1582, 1591, 1601, 1611, 1619, 1627, 1634, 1640, 1649, 1660, 1666,
-    1675, 1683, 1692, 1700, 1708, 1713, 1721, 1726, 1736, 1742, 1750, 1756, 1761,
-    1769, 1775, 1784, 1793, 1803, 1818, 1834, 1854, 1873, 1893, 1908, 1916, 1928,
-    1936, 1944, 1956, 1966, 1974, 1981, 1989, 1995, 2004, 2012, 2020, 2030, 2037,
-    2047, 2057, 2068, 2079, 2088, 2096, 2105, 2116, 2126, 2134, 2145, 2156, 2161,
-    2168, 2175, 2186, 2194, 2202, 2215, 2224, 2238, 2251, 2262, 2276, 2289, 2302,
-    2315, 2327, 2346, 2361, 2386, 2400, 2413, 2425, 2436, 2447, 2462, 2474, 2484,
-    2494, 2508, 2519, 2528, 2541, 2556, 2565, 2574, 2585, 2596, 2601, 2611, 2619,
-    2626, 2634, 2642, 2651, 2660, 2668, 2674, 2691, 2701, 2716, 2733, 2748, 2763,
-    2778, 2792, 2802, 2812, 2819, 2823, 2828, 2835, 2845, 2850, 2853, 2858, 2867,
-    2876, 2888, 2899, 2911, 2923, 2933, 2952, 2972, 2993, 3016, 3044, 3069, 3092,
-    3116, 3139, 3160, 3173, 3182, 3195, 3204, 3215, 3223, 3236, 3248, 3258, 3266,
-    3274, 3281, 3288, 3296, 3303, 3312, 3323, 3330, 3337, 3347, 3355, 3364, 3371,
-    3379, 3386, 3393, 3404, 3415, 3425, 3434, 3442, 3451, 3460, 3470, 3481, 3489,
-    3498, 3504, 3515, 3524, 3534, 3540, 3549, 3556, 3564, 3569, 3577, 3584, 3588,
-    3596, 3607, 3614, 3621, 3629, 3638, 3646, 3655, 3664, 3672, 3679, 3691, 3699,
-    3705, 3718, 3733, 3746, 3760, 3776, 3789, 3813, 3840, 3865, 3891, 3915, 3942,
-    3971, 3987, 3997, 4013, 4032, 4054, 4064, 4069, 4080, 4090, 4099, 4106, 4115,
-    4126, 4133, 4141, 4150, 4159, 4167, 4174, 4183, 4192, 4200, 4211, 4219, 4230,
-    4239, 4248, 4257, 4265, 4273, 4283, 4288, 4295, 4304, 4317, 4324, 4336, 4348,
-    4359, 4373, 4386, 4399, 4415, 4433, 4454, 4474, 4487, 4496, 4506, 4516, 4525,
-    4531, 4539, 4546, 4557, 4565, 4575, 4584, 4593, 4599, 4607, 4612, 4617, 4624,
-    4631, 4646, 4666, 4682, 4706, 4727, 4750, 4767, 4785, 4811, 4829, 4853, 4874,
-    4896, 4918, 4942, 4969, 4996, 5030, 5056, 5079, 5087, 5094, 5100, 5105, 5111,
-    5116, 5126, 5130, 5136, 5143, 5151, 5156, 5162, 5169, 5178, 5186, 5193, 5200,
-    5209, 5218, 5223, 5230, 5237, 5242, 5254, 5268, 5287, 5314, 5332, 5358, 5386,
-    5415, 5430, 5448, 5461, 5476, 5495, 5513, 5543, 5571, 5597, 5617, 5642, 5673,
-    5703, 5728, 5759, 5801, 5830, 5855, 5883, 5910, 5932, 5964, 5994, 6017, 6044,
-    6073, 6099, 6126, 6138, 6156, 6177, 6194, 6208, 6222, 6237,
-];
-
-function ayaStringSplitter(str) {
-    const [surah, ayahs] = str.trim().split(":");
-    if (!ayahs) {
-        throw "Error in data " + str;
-    }
-    return [
-        +surah,
-        ayahs.includes("-")
-            ? ayahs.split("-").map(Number)
-            : +ayahs,
-    ];
-}
-
-const JuzList = [
-    0, 1, 149, 260, 386, 517, 641, 751, 900, 1042, 1201, 1328, 1479, 1649, 1803,
-    2030, 2215, 2484, 2674, 2876, 3215, 3386, 3564, 3733, 4090, 4265, 4511, 4706,
-    5105, 5242, 5673, 6237,
-];
-const ManzilList = [0, 1, 670, 1365, 2030, 2933, 3789, 4631, 6237];
-const SajdaList = [
-    [1160, "recommended"],
-    [1722, "recommended"],
-    [1951, "recommended"],
-    [2138, "recommended"],
-    [2308, "recommended"],
-    [2613, "recommended"],
-    [2672, "recommended"],
-    [2915, "recommended"],
-    [3185, "recommended"],
-    [3518, "obligatory"],
-    [3994, "recommended"],
-    [4256, "obligatory"],
-    [4846, "obligatory"],
-    [5905, "recommended"],
-    [6125, "obligatory"],
-];
-function binarySearch(ar, el, compare_fn = (a, b) => a - b) {
-    let m = 0;
-    let n = ar.length - 1;
-    while (m <= n) {
-        const k = (n + m) >> 1;
-        const cmp = compare_fn(el, ar[k]);
-        if (cmp > 0) {
-            m = k + 1;
-        }
-        else if (cmp < 0) {
-            n = k - 1;
-        }
-        else {
-            return k;
-        }
-    }
-    return -m - 1;
-}
-function checkValidAyahId(ayaId) {
-    if (ayaId < 1 || ayaId > meta.numAyas)
-        throw new RangeError("ayaid must be between 1 and " + meta.numAyas);
-    return true;
-}
-function checkValidSurah(surah, checkOnly = false) {
-    if (surah < 1 || surah > meta.numSuras) {
-        if (checkOnly)
-            return false;
-        throw new RangeError("Surah must be between 1 and " + meta.numSuras);
-    }
-    return true;
-}
-function findSurahByAyaid(ayaId) {
-    checkValidAyahId(ayaId);
-    const suraNum = SuraList.findIndex(x => x[0] >= ayaId) - 1;
-    return suraNum < 0
-        ? [114, ayaId - SuraList[114][0]]
-        : [suraNum, ayaId - SuraList[suraNum][0]];
-}
-function findJuzByAyaid(ayaId) {
-    checkValidAyahId(ayaId);
-    return JuzList.findIndex(x => x > ayaId) - 1;
-}
-function findJuzHizbByAyaid(ayaId) {
-    checkValidAyahId(ayaId);
-    const juz = findJuzByAyaid(ayaId);
-    const id = HizbQuarterList.findIndex(x => x > ayaId) - 1;
-    return { juz, hizb: id % 8 || 8, id };
-}
-function findJuz(surah, ayah = 1, ayahMode = false) {
-    const ayahId = ayahMode
-        ? ayah
-        : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
-    return findJuzByAyaid(ayahId);
-}
-function findJuzHizb(surah, ayah = 1, ayahMode = false) {
-    const ayahId = ayahMode
-        ? ayah
-        : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
-    return findJuzHizbByAyaid(ayahId);
-}
-function isAyahJuzFirst(surah, ayah, ayahMode = false) {
-    const ayahId = ayahMode
-        ? (checkValidAyahId(ayah) && ayah)
-        : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
-    return binarySearch(JuzList, ayahId);
-}
-function isAyahPageFirst(surah, ayah, ayahMode = false) {
-    const ayahId = ayahMode
-        ? (checkValidAyahId(ayah) && ayah)
-        : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
-    return binarySearch(PageList, ayahId);
-}
-function findJuzAndShift(surah, ayah, ayahMode = false) {
-    const ayahId = ayahMode
-        ? (checkValidAyahId(ayah) && ayah)
-        : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
-    const juz = findJuzByAyaid(ayahId);
-    const leftAyahId = JuzList[juz];
-    if (surah < 0)
-        [surah] = findSurahByAyaid(leftAyahId);
-    const [surahStartAyahId] = SuraList[surah];
-    return {
-        juz,
-        ayahsBetweenJuzSurah: surahStartAyahId - leftAyahId + 1,
-        leftAyahId,
-    };
-}
-function findJuzMetaBySurah(surah, ayah = 1) {
-    const { juz: leftjuz, ayahsBetweenJuzSurah, leftAyahId, } = findJuzAndShift(surah, ayah);
-    let rightJuz = leftjuz;
-    while (rightJuz < meta.numJuzs &&
-        findSurahByAyaid(JuzList[rightJuz + 1])[0] == surah)
-        rightJuz++;
-    return {
-        leftjuz,
-        ayahsBetweenJuzSurah,
-        rightJuz,
-        leftAyahId,
-        rightAyahId: JuzList[rightJuz + 1],
-    };
-}
-function getSurahMeta(surah) {
-    checkValidSurah(surah);
-    return SuraList[surah];
-}
-function findPage(surah, ayah, ayahMode = false) {
-    const ayahId = ayahMode
-        ? (checkValidAyahId(ayah) && ayah)
-        : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
-    return PageList.findIndex(x => x > ayahId) - 1;
-}
-function findAyaidBySurah(surah, ayah) {
-    const [startAyahId] = getSurahMeta(surah);
-    return startAyahId + ayah;
-}
-function getAyaCountinSura(surah) {
-    return getSurahMeta(surah)[1];
-}
-function nextAyah(surah, ayah) {
-    if (surah < 1 || surah > meta.numSuras)
-        throw new RangeError("Surah must be between 1 and " + meta.numSuras);
-    const ayaid = findAyaidBySurah(surah, ayah);
-    return findSurahByAyaid(ayaid == meta.numAyas ? 1 : ayaid + 1);
-}
-function prevAyah(surah, ayah) {
-    checkValidSurah(surah);
-    const ayaid = findAyaidBySurah(surah, ayah);
-    return findSurahByAyaid(ayaid == 1 ? meta.numAyas : ayaid - 1);
-}
-function pageMeta(pageNum) {
-    if (pageNum < 1 || pageNum > meta.numPages)
-        throw new RangeError("pagenum must be between 1 and " + meta.numPages);
-    const [curPage, nextPage] = [
-        PageList[pageNum],
-        PageList[pageNum + 1],
-    ];
-    return {
-        pageNum,
-        first: findSurahByAyaid(curPage),
-        last: [...findSurahByAyaid(nextPage - 1)],
-    };
-}
-function findRangeAroundAyah(surah, ayah, mode, ayahMode = false) {
-    const ayahId = ayahMode
-        ? ayah
-        : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
-    switch (mode) {
-        case "juz": {
-            const juz = findJuzByAyaid(ayahId);
-            return [JuzList[juz], JuzList[juz + 1] - 1];
-        }
-        case "surah": {
-            return [findAyaidBySurah(surah, 1), findAyaidBySurah(surah + 1, 1) - 1];
-        }
-        case "ayah": {
-            return [ayahId, ayahId];
-        }
-        case "page": {
-            const page = findPage(-1, ayahId, true);
-            return [PageList[page], PageList[page + 1] - 1];
-        }
-        case "all":
-        default:
-            return [1, meta.numAyas];
-    }
-}
-
-export { HizbQuarterList, JuzList, ManzilList, PageList, RukuList, SajdaList, SuraList, ayaStringSplitter, findAyaidBySurah, findJuz, findJuzAndShift, findJuzByAyaid, findJuzHizb, findJuzHizbByAyaid, findJuzMetaBySurah, findPage, findRangeAroundAyah, findSurahByAyaid, getAyaCountinSura, getSurahMeta, isAyahJuzFirst, isAyahPageFirst, meta, nextAyah, pageMeta, prevAyah, suraNames$1 as suraNamesEn, suraNames as suraNamesRu };
diff --git a/dist/quran-meta.esm.browser.min.js b/dist/quran-meta.esm.browser.min.js
deleted file mode 100644
index 9a53d2f..0000000
--- a/dist/quran-meta.esm.browser.min.js
+++ /dev/null
@@ -1 +0,0 @@
-const a=Object.freeze({numAyas:6236,numSuras:114,numPages:604,numJuzs:30,manzilCount:7}),e=[[],["Al-Faatiha","The Opening"],["Al-Baqara","The Cow"],["Aal-i-Imraan","The Family of Imraan"],["An-Nisaa","The Women"],["Al-Maaida","The Table"],["Al-An'aam","The Cattle"],["Al-A'raaf","The Heights"],["Al-Anfaal","The Spoils of War"],["At-Tawba","The Repentance"],["Yunus","Jonas"],["Hud","Hud"],["Yusuf","Joseph"],["Ar-Ra'd","The Thunder"],["Ibrahim","Abraham"],["Al-Hijr","The Rock"],["An-Nahl","The Bee"],["Al-Israa","The Night Journey"],["Al-Kahf","The Cave"],["Maryam","Mary"],["Taa-Haa","Taa-Haa"],["Al-Anbiyaa","The Prophets"],["Al-Hajj","The Pilgrimage"],["Al-Muminoon","The Believers"],["An-Noor","The Light"],["Al-Furqaan","The Criterion"],["Ash-Shu'araa","The Poets"],["An-Naml","The Ant"],["Al-Qasas","The Stories"],["Al-Ankaboot","The Spider"],["Ar-Room","The Romans"],["Luqman","Luqman"],["As-Sajda","The Prostration"],["Al-Ahzaab","The Clans"],["Saba","Sheba"],["Faatir","The Originator"],["Yaseen","Yaseen"],["As-Saaffaat","Those drawn up in Ranks"],["Saad","The letter Saad"],["Az-Zumar","The Groups"],["Al-Ghaafir","The Forgiver"],["Fussilat","Explained in detail"],["Ash-Shura","Consultation"],["Az-Zukhruf","Ornaments of gold"],["Ad-Dukhaan","The Smoke"],["Al-Jaathiya","Crouching"],["Al-Ahqaf","The Dunes"],["Muhammad","Muhammad"],["Al-Fath","The Victory"],["Al-Hujuraat","The Inner Apartments"],["Qaaf","The letter Qaaf"],["Adh-Dhaariyat","The Winnowing Winds"],["At-Tur","The Mount"],["An-Najm","The Star"],["Al-Qamar","The Moon"],["Ar-Rahmaan","The Beneficent"],["Al-Waaqia","The Inevitable"],["Al-Hadid","The Iron"],["Al-Mujaadila","The Pleading Woman"],["Al-Hashr","The Exile"],["Al-Mumtahana","She that is to be examined"],["As-Saff","The Ranks"],["Al-Jumu'a","Friday"],["Al-Munaafiqoon","The Hypocrites"],["At-Taghaabun","Mutual Disillusion"],["At-Talaaq","Divorce"],["At-Tahrim","The Prohibition"],["Al-Mulk","The Sovereignty"],["Al-Qalam","The Pen"],["Al-Haaqqa","The Reality"],["Al-Ma'aarij","The Ascending Stairways"],["Nooh","Noah"],["Al-Jinn","The Jinn"],["Al-Muzzammil","The Enshrouded One"],["Al-Muddaththir","The Cloaked One"],["Al-Qiyaama","The Resurrection"],["Al-Insaan","Man"],["Al-Mursalaat","The Emissaries"],["An-Naba","The Announcement"],["An-Naazi'aat","Those who drag forth"],["Abasa","He frowned"],["At-Takwir","The Overthrowing"],["Al-Infitaar","The Cleaving"],["Al-Mutaffifin","Defrauding"],["Al-Inshiqaaq","The Splitting Open"],["Al-Burooj","The Constellations"],["At-Taariq","The Morning Star"],["Al-A'laa","The Most High"],["Al-Ghaashiya","The Overwhelming"],["Al-Fajr","The Dawn"],["Al-Balad","The City"],["Ash-Shams","The Sun"],["Al-Lail","The Night"],["Ad-Dhuhaa","The Morning Hours"],["Ash-Sharh","The Consolation"],["At-Tin","The Fig"],["Al-Alaq","The Clot"],["Al-Qadr","The Power, Fate"],["Al-Bayyina","The Evidence"],["Az-Zalzala","The Earthquake"],["Al-Aadiyaat","The Chargers"],["Al-Qaari'a","The Calamity"],["At-Takaathur","Competition"],["Al-Asr","The Declining Day, Epoch"],["Al-Humaza","The Traducer"],["Al-Fil","The Elephant"],["Quraish","Quraysh"],["Al-Maa'un","Almsgiving"],["Al-Kawthar","Abundance"],["Al-Kaafiroon","The Disbelievers"],["An-Nasr","Divine Support"],["Al-Masad","The Palm Fibre"],["Al-Ikhlaas","Sincerity"],["Al-Falaq","The Dawn"],["An-Naas","Mankind"]],n=[[],["Аль-Фатиха","Открывающая Коран"],["Аль-Бакара","Корова"],["Аль ‘Имран","Семейство ‘Имрана"],["Ан-Ниса","Женщины"],["Аль-Маида","Трапеза"],["Аль-Ан‘ам","Скот"],["Аль-А‘раф","Ограды"],["Аль-Анфаль","Военная добыча"],["Ат-Тауба","Покаяние"],["Юнус","Иона"],["Худ","Худ"],["Юсуф","Иосиф"],["Ар-Ра‘д","Гром"],["Ибрахим","Авраам"],["Аль-Хиджр","Хиджр"],["Ан-Нахль","Пчёлы"],["Аль-Исра","Ночной перенос"],["Аль-Кяхф","Пещера"],["Марьям","Мария"],["Та, ха","Та, ха"],["Аль-Анбия","Пророки"],["Аль-Хаджж","Хадж"],["Аль-Му’минун","Верующие"],["Ан-Нур","Свет"],["Аль-Фуркан","Различение"],["Аш-Шу‘ара","Поэты"],["Ан-Намль","Муравьи"],["Аль-Касас","Рассказ"],["Аль-‘Анкабут","Паук"],["Ар-Рум","Ромеи"],["Лукман","Лукман"],["Ас-Саджда","Земной поклон"],["Аль-Ахзаб","Полчища"],["Саба’","Сава"],["Фатыр","Зиждитель"],["Йа, син","Йа, син"],["Ас-Саффат","Стоящие в ряд"],["Сад","Сад"],["Аз-Зумар","Толпы"],["Гафир","Прощающий"],["Фуссылят","Разъяснены"],["Аш-Шура","Совет"],["Аз-Зухруф","Украшения"],["Ад-Духан","Дым"],["Аль-Джасия","Коленопреклонённые"],["Аль-Ахкаф","Барханы"],["Мухаммад","Мухаммад"],["Аль-Фатх","Победа"],["Аль-Худжурат","Покои"],["Каф","Каф"],["Аз-Зарият","Рассеивающие"],["Ат-Тур","Гора"],["Ан-Наджм","Звезда"],["Аль-Камар","Луна"],["Ар-Рахман","Милостивый"],["Аль-Ваки‘а","Неизбежное"],["Аль-Хадид","Железо"],["Аль-Муджадиля","Препирающаяся"],["Аль-Хашр","Сбор"],["Аль-Мумтахана","Испытуемая"],["Ас-Сафф","Ряд"],["Аль-Джуму‘а","Собрание"],["Аль-Мунафикун","Лицемеры"],["Ат-Тагабун","Обделение"],["Ат-Таляк","Развод"],["Ат-Тахрим","Запрещение"],["Аль-Мульк","Власть"],["Аль-Калям","Перо"],["Аль-Хакка","Неминуемое"],["Аль-Ма‘аридж","Степени"],["Нух","Ной"],["Аль-Джинн","Джинны"],["Аль-Муззаммиль","Закутавшийся"],["Аль-Муддассир","Завернувшийся"],["Аль-Кияма","Воскресение"],["Аль-Инсан","Человек"],["Аль-Мурсалят","Посылаемые"],["Ан-Наба’","Весть"],["Ан-Нази‘ат","Вырывающие"],["‘Абаса","Нахмурился"],["Ат-Таквир","Сворачивание"],["Аль-Инфитар","Раскалывание"],["Аль-Мутаффифин","Обвешивающие"],["Аль-Иншикак","Разверзнется"],["Аль-Бурудж","Созвездия"],["Ат-Тарик","Ночной гость"],["Аль-А‘ля","Всевышний"],["Аль-Гашия","Покрывающее"],["Аль-Фаджр","Заря"],["Аль-Баляд","Город"],["Аш-Шамс","Солнце"],["Аль-Лейль","Ночь"],["Ад-Духа","Утро"],["Аль-Инширах","Раскрытие"],["Ат-Тин","Смоковница"],["Аль-‘Аляк","Сгусток крови"],["Аль-Кадр","Величие"],["Аль-Баййина","Ясный довод"],["Аз-Зальзаля","Сотрясение"],["Аль-‘Адият","Скачущие"],["Аль-Кари‘а","Поражающее"],["Ат-Такясур","Соперничество"],["Аль-‘Аср","Предвечернее время"],["Аль-Хумаза","Хулитель"],["Аль-Филь","Слон"],["Курайш","Курайшиты"],["Аль-Ма‘ун","Утварь"],["Аль-Каусар","Каусар"],["Аль-Кяфирун","Неверующие"],["Ан-Наср","Помощь"],["Аль-Масад","Пальмовые волокна"],["Аль-Ихляс","Очищение веры"],["Аль-Фаляк","Рассвет"],["Ан-Нас","Люди"]],r=[[-1,-1,-1,-1,"",!1,-1],[0,7,5,1,"الفاتحة",!0,1],[7,286,87,40,"البقرة",!1,2],[293,200,89,20,"آل عمران",!1,50],[493,176,92,24,"النساء",!1,77],[669,120,112,16,"المائدة",!1,107],[789,165,55,20,"الأنعام",!0,128],[954,206,39,24,"الأعراف",!0,151],[1160,75,88,10,"الأنفال",!1,177],[1235,129,113,16,"التوبة",!1,187],[1364,109,51,11,"يونس",!0,208],[1473,123,52,10,"هود",!0,222],[1596,111,53,12,"يوسف",!0,236],[1707,43,96,6,"الرعد",!1,249],[1750,52,72,7,"ابراهيم",!0,256],[1802,99,54,6,"الحجر",!0,262],[1901,128,70,16,"النحل",!0,268],[2029,111,50,12,"الإسراء",!0,282],[2140,110,69,12,"الكهف",!0,294],[2250,98,44,6,"مريم",!0,305],[2348,135,45,8,"طه",!0,313],[2483,112,73,7,"الأنبياء",!0,322],[2595,78,103,10,"الحج",!1,332],[2673,118,74,6,"المؤمنون",!0,342],[2791,64,102,9,"النور",!1,350],[2855,77,42,6,"الفرقان",!0,360],[2932,227,47,11,"الشعراء",!0,367],[3159,93,48,7,"النمل",!0,377],[3252,88,49,8,"القصص",!0,386],[3340,69,85,7,"العنكبوت",!0,397],[3409,60,84,6,"الروم",!0,405],[3469,34,57,3,"لقمان",!0,411],[3503,30,75,3,"السجدة",!0,415],[3533,73,90,9,"الأحزاب",!1,418],[3606,54,58,6,"سبإ",!0,428],[3660,45,43,5,"فاطر",!0,435],[3705,83,41,5,"يس",!0,441],[3788,182,56,5,"الصافات",!0,446],[3970,88,38,5,"ص",!0,453],[4058,75,59,8,"الزمر",!0,459],[4133,85,60,9,"غافر",!0,468],[4218,54,61,6,"فصلت",!0,477],[4272,53,62,5,"الشورى",!0,483],[4325,89,63,7,"الزخرف",!0,490],[4414,59,64,3,"الدخان",!0,496],[4473,37,65,4,"الجاثية",!0,499],[4510,35,66,4,"الأحقاف",!0,503],[4545,38,95,4,"محمد",!1,507],[4583,29,111,4,"الفتح",!1,511],[4612,18,106,2,"الحجرات",!1,516],[4630,45,34,3,"ق",!0,518],[4675,60,67,3,"الذاريات",!0,521],[4735,49,76,2,"الطور",!0,524],[4784,62,23,3,"النجم",!0,526],[4846,55,37,3,"القمر",!0,529],[4901,78,97,3,"الرحمن",!1,532],[4979,96,46,3,"الواقعة",!0,535],[5075,29,94,4,"الحديد",!1,538],[5104,22,105,3,"المجادلة",!1,542],[5126,24,101,3,"الحشر",!1,546],[5150,13,91,2,"الممتحنة",!1,549],[5163,14,109,2,"الصف",!1,552],[5177,11,110,2,"الجمعة",!1,553],[5188,11,104,2,"المنافقون",!1,555],[5199,18,108,2,"التغابن",!1,556],[5217,12,99,2,"الطلاق",!1,558],[5229,12,107,2,"التحريم",!1,560],[5241,30,77,2,"الملك",!0,562],[5271,52,2,2,"القلم",!0,565],[5323,52,78,2,"الحاقة",!0,567],[5375,44,79,2,"المعارج",!0,569],[5419,28,71,2,"نوح",!0,571],[5447,28,40,2,"الجن",!0,572],[5475,20,3,2,"المزمل",!0,574],[5495,56,4,2,"المدثر",!0,576],[5551,40,31,2,"القيامة",!0,578],[5591,31,98,2,"الانسان",!1,579],[5622,50,33,2,"المرسلات",!0,581],[5672,40,80,2,"النبإ",!0,582],[5712,46,81,2,"النازعات",!0,584],[5758,42,24,1,"عبس",!0,585],[5800,29,7,1,"التكوير",!0,586],[5829,19,82,1,"الإنفطار",!0,587],[5848,36,86,1,"المطففين",!0,588],[5884,25,83,1,"الإنشقاق",!0,589],[5909,22,27,1,"البروج",!0,590],[5931,17,36,1,"الطارق",!0,591],[5948,19,8,1,"الأعلى",!0,592],[5967,26,68,1,"الغاشية",!0,592],[5993,30,10,1,"الفجر",!0,593],[6023,20,35,1,"البلد",!0,594],[6043,15,26,1,"الشمس",!0,595],[6058,21,9,1,"الليل",!0,596],[6079,11,11,1,"الضحى",!0,596],[6090,8,12,1,"الشرح",!0,596],[6098,8,28,1,"التين",!0,597],[6106,19,1,1,"العلق",!0,597],[6125,5,25,1,"القدر",!0,598],[6130,8,100,1,"البينة",!1,599],[6138,8,93,1,"الزلزلة",!1,599],[6146,11,14,1,"العاديات",!0,600],[6157,11,30,1,"القارعة",!0,600],[6168,8,16,1,"التكاثر",!0,600],[6176,3,13,1,"العصر",!0,601],[6179,9,32,1,"الهمزة",!0,601],[6188,5,19,1,"الفيل",!0,601],[6193,4,29,1,"قريش",!0,602],[6197,7,17,1,"الماعون",!0,602],[6204,3,15,1,"الكوثر",!0,602],[6207,6,18,1,"الكافرون",!0,603],[6213,3,114,1,"النصر",!1,603],[6216,5,6,1,"المسد",!0,603],[6221,4,22,1,"الإخلاص",!0,604],[6225,5,20,1,"الفلق",!0,604],[6230,6,21,1,"الناس",!0,604],[6236,0,-1,-1,"",!1,-1]],t=[0,1,33,51,67,82,99,113,131,149,165,184,196,210,226,240,250,260,270,279,290,308,326,345,368,386,406,426,446,464,479,494,505,517,529,551,567,581,593,607,628,641,656,670,681,696,710,720,736,751,766,778,802,825,848,863,884,900,916,930,940,955,985,1001,1019,1042,1071,1096,1110,1125,1143,1161,1182,1201,1221,1236,1254,1269,1281,1295,1310,1328,1346,1357,1375,1390,1417,1435,1454,1479,1497,1514,1534,1557,1581,1603,1626,1649,1673,1697,1712,1726,1742,1760,1778,1803,1852,1902,1931,1952,1976,1991,2012,2030,2052,2079,2099,2128,2157,2172,2191,2215,2239,2272,2309,2349,2403,2431,2459,2484,2512,2534,2566,2596,2614,2633,2655,2674,2709,2748,2792,2812,2826,2844,2856,2876,2908,2933,2984,3043,3113,3160,3186,3215,3241,3264,3281,3303,3328,3341,3366,3386,3410,3440,3463,3491,3514,3534,3551,3564,3584,3593,3616,3630,3652,3675,3701,3733,3765,3810,3871,3933,3991,4022,4066,4090,4111,4134,4154,4174,4199,4227,4243,4265,4285,4299,4323,4349,4382,4431,4485,4511,4531,4555,4578,4601,4613,4626,4657,4706,4759,4810,4855,4902,4980,5054,5091,5105,5118,5137,5157,5178,5192,5218,5230,5242,5272,5324,5394,5448,5495,5552,5610,5673,5759,5830,5885,5949,6024,6091,6155,6237],h=[0,1,8,15,28,37,47,54,67,69,79,90,94,104,111,120,129,137,149,155,160,171,175,184,190,196,204,218,224,229,236,239,243,250,256,261,265,268,274,281,289,291,294,303,314,324,335,348,357,365,374,385,395,403,414,423,437,442,449,465,474,483,494,504,508,516,519,527,536,544,553,564,570,581,585,590,594,598,606,609,620,628,635,646,656,665,670,675,681,689,696,704,713,720,726,736,747,756,763,770,778,785,790,800,810,820,831,840,845,850,860,872,880,884,890,900,911,919,930,934,940,944,955,965,980,986,994,1002,1008,1013,1019,1027,1039,1048,1054,1063,1081,1084,1096,1102,1106,1112,1117,1126,1136,1143,1161,1171,1180,1189,1198,1205,1209,1219,1225,1230,1236,1242,1252,1260,1265,1273,1278,1295,1302,1308,1316,1325,1335,1346,1354,1358,1365,1375,1385,1395,1405,1418,1425,1435,1447,1457,1468,1474,1482,1498,1509,1523,1534,1542,1557,1569,1583,1597,1603,1617,1626,1632,1639,1646,1654,1665,1676,1690,1701,1708,1715,1726,1734,1739,1745,1751,1757,1763,1772,1778,1785,1792,1803,1818,1828,1847,1863,1882,1902,1911,1923,1927,1936,1942,1952,1962,1967,1972,1978,1985,1991,2002,2012,2021,2030,2040,2052,2060,2070,2082,2090,2100,2107,2114,2123,2130,2141,2153,2158,2163,2172,2185,2190,2194,2200,2211,2223,2242,2251,2266,2291,2301,2316,2333,2349,2373,2403,2425,2438,2453,2464,2477,2484,2494,2513,2525,2534,2559,2577,2596,2606,2618,2621,2629,2634,2644,2653,2660,2668,2674,2696,2706,2724,2751,2766,2792,2802,2812,2818,2826,2832,2842,2849,2853,2856,2865,2876,2890,2900,2916,2933,2942,2966,2985,3002,3037,3055,3073,3092,3108,3124,3160,3174,3191,3204,3218,3226,3242,3253,3266,3274,3281,3295,3303,3313,3328,3341,3354,3363,3371,3385,3392,3404,3410,3420,3429,3437,3450,3463,3470,3481,3489,3504,3515,3526,3534,3542,3554,3561,3568,3574,3586,3592,3602,3607,3616,3628,3637,3643,3652,3661,3668,3675,3687,3698,3706,3718,3738,3756,3773,3789,3810,3863,3902,3927,3971,3985,3997,4011,4035,4059,4068,4080,4090,4100,4111,4122,4129,4134,4143,4154,4161,4171,4184,4194,4202,4212,4219,4227,4237,4244,4251,4263,4273,4282,4292,4302,4316,4326,4341,4351,4361,4371,4382,4393,4415,4444,4457,4474,4485,4495,4500,4511,4521,4531,4537,4546,4557,4565,4574,4584,4594,4601,4610,4613,4623,4631,4646,4660,4676,4699,4722,4736,4764,4785,4810,4817,4847,4869,4887,4902,4927,4947,4980,5018,5054,5076,5086,5095,5101,5105,5111,5118,5127,5137,5144,5151,5157,5164,5173,5178,5186,5189,5197,5200,5210,5218,5225,5230,5237,5242,5256,5272,5305,5324,5361,5376,5411,5420,5440,5448,5467,5476,5495,5496,5527,5552,5582,5592,5614,5623,5663,5673,5703,5713,5739,5759,5801,5830,5849,5885,5910,5932,5949,5968,5994,6024,6044,6059,6080,6091,6099,6107,6126,6131,6139,6147,6158,6169,6177,6180,6189,6194,6198,6205,6208,6214,6217,6222,6226,6231,6237],i=[0,1,8,13,24,32,37,45,56,65,69,77,84,91,96,101,109,113,120,127,134,142,149,153,161,171,177,184,189,194,198,204,210,218,223,227,232,238,241,245,253,256,260,264,267,272,277,282,289,290,294,303,309,316,323,331,339,346,355,364,371,377,385,394,402,409,415,426,434,442,447,451,459,467,474,480,488,494,500,505,508,513,517,520,527,531,538,545,553,559,568,573,580,585,588,595,599,607,615,621,628,634,641,648,656,664,669,672,675,679,683,687,693,701,706,711,715,720,727,734,740,746,752,759,765,773,778,783,790,798,808,817,825,834,842,849,858,863,871,880,884,891,900,908,914,921,927,932,936,941,947,955,966,977,985,992,998,1006,1012,1022,1028,1036,1042,1050,1059,1075,1085,1092,1098,1104,1110,1114,1118,1125,1133,1142,1150,1161,1169,1177,1186,1194,1201,1206,1213,1222,1230,1236,1242,1249,1256,1262,1267,1272,1276,1283,1290,1297,1304,1308,1315,1322,1329,1335,1342,1347,1353,1358,1365,1371,1379,1385,1390,1398,1407,1418,1426,1435,1443,1453,1462,1471,1479,1486,1493,1502,1511,1519,1527,1536,1545,1555,1562,1571,1582,1591,1601,1611,1619,1627,1634,1640,1649,1660,1666,1675,1683,1692,1700,1708,1713,1721,1726,1736,1742,1750,1756,1761,1769,1775,1784,1793,1803,1818,1834,1854,1873,1893,1908,1916,1928,1936,1944,1956,1966,1974,1981,1989,1995,2004,2012,2020,2030,2037,2047,2057,2068,2079,2088,2096,2105,2116,2126,2134,2145,2156,2161,2168,2175,2186,2194,2202,2215,2224,2238,2251,2262,2276,2289,2302,2315,2327,2346,2361,2386,2400,2413,2425,2436,2447,2462,2474,2484,2494,2508,2519,2528,2541,2556,2565,2574,2585,2596,2601,2611,2619,2626,2634,2642,2651,2660,2668,2674,2691,2701,2716,2733,2748,2763,2778,2792,2802,2812,2819,2823,2828,2835,2845,2850,2853,2858,2867,2876,2888,2899,2911,2923,2933,2952,2972,2993,3016,3044,3069,3092,3116,3139,3160,3173,3182,3195,3204,3215,3223,3236,3248,3258,3266,3274,3281,3288,3296,3303,3312,3323,3330,3337,3347,3355,3364,3371,3379,3386,3393,3404,3415,3425,3434,3442,3451,3460,3470,3481,3489,3498,3504,3515,3524,3534,3540,3549,3556,3564,3569,3577,3584,3588,3596,3607,3614,3621,3629,3638,3646,3655,3664,3672,3679,3691,3699,3705,3718,3733,3746,3760,3776,3789,3813,3840,3865,3891,3915,3942,3971,3987,3997,4013,4032,4054,4064,4069,4080,4090,4099,4106,4115,4126,4133,4141,4150,4159,4167,4174,4183,4192,4200,4211,4219,4230,4239,4248,4257,4265,4273,4283,4288,4295,4304,4317,4324,4336,4348,4359,4373,4386,4399,4415,4433,4454,4474,4487,4496,4506,4516,4525,4531,4539,4546,4557,4565,4575,4584,4593,4599,4607,4612,4617,4624,4631,4646,4666,4682,4706,4727,4750,4767,4785,4811,4829,4853,4874,4896,4918,4942,4969,4996,5030,5056,5079,5087,5094,5100,5105,5111,5116,5126,5130,5136,5143,5151,5156,5162,5169,5178,5186,5193,5200,5209,5218,5223,5230,5237,5242,5254,5268,5287,5314,5332,5358,5386,5415,5430,5448,5461,5476,5495,5513,5543,5571,5597,5617,5642,5673,5703,5728,5759,5801,5830,5855,5883,5910,5932,5964,5994,6017,6044,6073,6099,6126,6138,6156,6177,6194,6208,6222,6237];function u(a){const[e,n]=a.trim().split(":");if(!n)throw"Error in data "+a;return[+e,n.includes("-")?n.split("-").map(Number):+n]}const o=[0,1,149,260,386,517,641,751,900,1042,1201,1328,1479,1649,1803,2030,2215,2484,2674,2876,3215,3386,3564,3733,4090,4265,4511,4706,5105,5242,5673,6237],l=[0,1,670,1365,2030,2933,3789,4631,6237],s=[[1160,"recommended"],[1722,"recommended"],[1951,"recommended"],[2138,"recommended"],[2308,"recommended"],[2613,"recommended"],[2672,"recommended"],[2915,"recommended"],[3185,"recommended"],[3518,"obligatory"],[3994,"recommended"],[4256,"obligatory"],[4846,"obligatory"],[5905,"recommended"],[6125,"obligatory"]];function A(a,e,n=((a,e)=>a-e)){let r=0,t=a.length-1;for(;r<=t;){const h=t+r>>1,i=n(e,a[h]);if(i>0)r=h+1;else{if(!(i<0))return h;t=h-1}}return-r-1}function T(e){if(e<1||e>a.numAyas)throw new RangeError("ayaid must be between 1 and "+a.numAyas);return!0}function m(e,n=!1){if(e<1||e>a.numSuras){if(n)return!1;throw new RangeError("Surah must be between 1 and "+a.numSuras)}return!0}function d(a){T(a);const e=r.findIndex((e=>e[0]>=a))-1;return e<0?[114,a-r[114][0]]:[e,a-r[e][0]]}function c(a){return T(a),o.findIndex((e=>e>a))-1}function f(a){T(a);const e=c(a),n=t.findIndex((e=>e>a))-1;return{juz:e,hizb:n%8||8,id:n}}function g(a,e=1,n=!1){return c(n?e:m(a)&&I(a,e))}function y(a,e=1,n=!1){return f(n?e:m(a)&&I(a,e))}function S(a,e,n=!1){const r=n?T(e)&&e:m(a)&&I(a,e);return A(o,r)}function b(a,e,n=!1){const r=n?T(e)&&e:m(a)&&I(a,e);return A(i,r)}function w(a,e,n=!1){const t=c(n?T(e)&&e:m(a)&&I(a,e)),h=o[t];a<0&&([a]=d(h));const[i]=r[a];return{juz:t,ayahsBetweenJuzSurah:i-h+1,leftAyahId:h}}function p(e,n=1){const{juz:r,ayahsBetweenJuzSurah:t,leftAyahId:h}=w(e,n);let i=r;for(;i<a.numJuzs&&d(o[i+1])[0]==e;)i++;return{leftjuz:r,ayahsBetweenJuzSurah:t,rightJuz:i,leftAyahId:h,rightAyahId:o[i+1]}}function M(a){return m(a),r[a]}function z(a,e,n=!1){const r=n?T(e)&&e:m(a)&&I(a,e);return i.findIndex((a=>a>r))-1}function I(a,e){const[n]=M(a);return n+e}function C(a){return M(a)[1]}function N(e,n){if(e<1||e>a.numSuras)throw new RangeError("Surah must be between 1 and "+a.numSuras);const r=I(e,n);return d(r==a.numAyas?1:r+1)}function j(e,n){m(e);const r=I(e,n);return d(1==r?a.numAyas:r-1)}function q(e){if(e<1||e>a.numPages)throw new RangeError("pagenum must be between 1 and "+a.numPages);const[n,r]=[i[e],i[e+1]];return{pageNum:e,first:d(n),last:[...d(r-1)]}}function H(e,n,r,t=!1){const h=t?n:m(e)&&I(e,n);switch(r){case"juz":{const a=c(h);return[o[a],o[a+1]-1]}case"surah":return[I(e,1),I(e+1,1)-1];case"ayah":return[h,h];case"page":{const a=z(-1,h,!0);return[i[a],i[a+1]-1]}default:return[1,a.numAyas]}}export{t as HizbQuarterList,o as JuzList,l as ManzilList,i as PageList,h as RukuList,s as SajdaList,r as SuraList,u as ayaStringSplitter,I as findAyaidBySurah,g as findJuz,w as findJuzAndShift,c as findJuzByAyaid,y as findJuzHizb,f as findJuzHizbByAyaid,p as findJuzMetaBySurah,z as findPage,H as findRangeAroundAyah,d as findSurahByAyaid,C as getAyaCountinSura,M as getSurahMeta,S as isAyahJuzFirst,b as isAyahPageFirst,a as meta,N as nextAyah,q as pageMeta,j as prevAyah,e as suraNamesEn,n as suraNamesRu};
diff --git a/dist/quran-meta.esm.js b/dist/quran-meta.esm.js
deleted file mode 100644
index 6fb7420..0000000
--- a/dist/quran-meta.esm.js
+++ /dev/null
@@ -1,725 +0,0 @@
-/*! 
- * Quran Meta library 2.4.13
- *
- * Released under the MIT license
- */
-
-/******************************************************************************
-Copyright (c) Microsoft Corporation.
-
-Permission to use, copy, modify, and/or distribute this software for any
-purpose with or without fee is hereby granted.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
-REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
-INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
-LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
-OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-***************************************************************************** */
-
-function __spreadArray(to, from, pack) {
-    if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
-        if (ar || !(i in from)) {
-            if (!ar) ar = Array.prototype.slice.call(from, 0, i);
-            ar[i] = from[i];
-        }
-    }
-    return to.concat(ar || Array.prototype.slice.call(from));
-}
-
-var meta = Object.freeze({
-    numAyas: 6236,
-    numSuras: 114,
-    numPages: 604,
-    numJuzs: 30,
-    manzilCount: 7,
-});
-
-var suraNames$1 = [
-    [],
-    ["Al-Faatiha", "The Opening"],
-    ["Al-Baqara", "The Cow"],
-    ["Aal-i-Imraan", "The Family of Imraan"],
-    ["An-Nisaa", "The Women"],
-    ["Al-Maaida", "The Table"],
-    ["Al-An'aam", "The Cattle"],
-    ["Al-A'raaf", "The Heights"],
-    ["Al-Anfaal", "The Spoils of War"],
-    ["At-Tawba", "The Repentance"],
-    ["Yunus", "Jonas"],
-    ["Hud", "Hud"],
-    ["Yusuf", "Joseph"],
-    ["Ar-Ra'd", "The Thunder"],
-    ["Ibrahim", "Abraham"],
-    ["Al-Hijr", "The Rock"],
-    ["An-Nahl", "The Bee"],
-    ["Al-Israa", "The Night Journey"],
-    ["Al-Kahf", "The Cave"],
-    ["Maryam", "Mary"],
-    ["Taa-Haa", "Taa-Haa"],
-    ["Al-Anbiyaa", "The Prophets"],
-    ["Al-Hajj", "The Pilgrimage"],
-    ["Al-Muminoon", "The Believers"],
-    ["An-Noor", "The Light"],
-    ["Al-Furqaan", "The Criterion"],
-    ["Ash-Shu'araa", "The Poets"],
-    ["An-Naml", "The Ant"],
-    ["Al-Qasas", "The Stories"],
-    ["Al-Ankaboot", "The Spider"],
-    ["Ar-Room", "The Romans"],
-    ["Luqman", "Luqman"],
-    ["As-Sajda", "The Prostration"],
-    ["Al-Ahzaab", "The Clans"],
-    ["Saba", "Sheba"],
-    ["Faatir", "The Originator"],
-    ["Yaseen", "Yaseen"],
-    ["As-Saaffaat", "Those drawn up in Ranks"],
-    ["Saad", "The letter Saad"],
-    ["Az-Zumar", "The Groups"],
-    ["Al-Ghaafir", "The Forgiver"],
-    ["Fussilat", "Explained in detail"],
-    ["Ash-Shura", "Consultation"],
-    ["Az-Zukhruf", "Ornaments of gold"],
-    ["Ad-Dukhaan", "The Smoke"],
-    ["Al-Jaathiya", "Crouching"],
-    ["Al-Ahqaf", "The Dunes"],
-    ["Muhammad", "Muhammad"],
-    ["Al-Fath", "The Victory"],
-    ["Al-Hujuraat", "The Inner Apartments"],
-    ["Qaaf", "The letter Qaaf"],
-    ["Adh-Dhaariyat", "The Winnowing Winds"],
-    ["At-Tur", "The Mount"],
-    ["An-Najm", "The Star"],
-    ["Al-Qamar", "The Moon"],
-    ["Ar-Rahmaan", "The Beneficent"],
-    ["Al-Waaqia", "The Inevitable"],
-    ["Al-Hadid", "The Iron"],
-    ["Al-Mujaadila", "The Pleading Woman"],
-    ["Al-Hashr", "The Exile"],
-    ["Al-Mumtahana", "She that is to be examined"],
-    ["As-Saff", "The Ranks"],
-    ["Al-Jumu'a", "Friday"],
-    ["Al-Munaafiqoon", "The Hypocrites"],
-    ["At-Taghaabun", "Mutual Disillusion"],
-    ["At-Talaaq", "Divorce"],
-    ["At-Tahrim", "The Prohibition"],
-    ["Al-Mulk", "The Sovereignty"],
-    ["Al-Qalam", "The Pen"],
-    ["Al-Haaqqa", "The Reality"],
-    ["Al-Ma'aarij", "The Ascending Stairways"],
-    ["Nooh", "Noah"],
-    ["Al-Jinn", "The Jinn"],
-    ["Al-Muzzammil", "The Enshrouded One"],
-    ["Al-Muddaththir", "The Cloaked One"],
-    ["Al-Qiyaama", "The Resurrection"],
-    ["Al-Insaan", "Man"],
-    ["Al-Mursalaat", "The Emissaries"],
-    ["An-Naba", "The Announcement"],
-    ["An-Naazi'aat", "Those who drag forth"],
-    ["Abasa", "He frowned"],
-    ["At-Takwir", "The Overthrowing"],
-    ["Al-Infitaar", "The Cleaving"],
-    ["Al-Mutaffifin", "Defrauding"],
-    ["Al-Inshiqaaq", "The Splitting Open"],
-    ["Al-Burooj", "The Constellations"],
-    ["At-Taariq", "The Morning Star"],
-    ["Al-A'laa", "The Most High"],
-    ["Al-Ghaashiya", "The Overwhelming"],
-    ["Al-Fajr", "The Dawn"],
-    ["Al-Balad", "The City"],
-    ["Ash-Shams", "The Sun"],
-    ["Al-Lail", "The Night"],
-    ["Ad-Dhuhaa", "The Morning Hours"],
-    ["Ash-Sharh", "The Consolation"],
-    ["At-Tin", "The Fig"],
-    ["Al-Alaq", "The Clot"],
-    ["Al-Qadr", "The Power, Fate"],
-    ["Al-Bayyina", "The Evidence"],
-    ["Az-Zalzala", "The Earthquake"],
-    ["Al-Aadiyaat", "The Chargers"],
-    ["Al-Qaari'a", "The Calamity"],
-    ["At-Takaathur", "Competition"],
-    ["Al-Asr", "The Declining Day, Epoch"],
-    ["Al-Humaza", "The Traducer"],
-    ["Al-Fil", "The Elephant"],
-    ["Quraish", "Quraysh"],
-    ["Al-Maa'un", "Almsgiving"],
-    ["Al-Kawthar", "Abundance"],
-    ["Al-Kaafiroon", "The Disbelievers"],
-    ["An-Nasr", "Divine Support"],
-    ["Al-Masad", "The Palm Fibre"],
-    ["Al-Ikhlaas", "Sincerity"],
-    ["Al-Falaq", "The Dawn"],
-    ["An-Naas", "Mankind"],
-];
-
-var suraNames = [
-    [],
-    ["Аль-Фатиха", "Открывающая Коран"],
-    ["Аль-Бакара", "Корова"],
-    ["Аль ‘Имран", "Семейство ‘Имрана"],
-    ["Ан-Ниса", "Женщины"],
-    ["Аль-Маида", "Трапеза"],
-    ["Аль-Ан‘ам", "Скот"],
-    ["Аль-А‘раф", "Ограды"],
-    ["Аль-Анфаль", "Военная добыча"],
-    ["Ат-Тауба", "Покаяние"],
-    ["Юнус", "Иона"],
-    ["Худ", "Худ"],
-    ["Юсуф", "Иосиф"],
-    ["Ар-Ра‘д", "Гром"],
-    ["Ибрахим", "Авраам"],
-    ["Аль-Хиджр", "Хиджр"],
-    ["Ан-Нахль", "Пчёлы"],
-    ["Аль-Исра", "Ночной перенос"],
-    ["Аль-Кяхф", "Пещера"],
-    ["Марьям", "Мария"],
-    ["Та, ха", "Та, ха"],
-    ["Аль-Анбия", "Пророки"],
-    ["Аль-Хаджж", "Хадж"],
-    ["Аль-Му’минун", "Верующие"],
-    ["Ан-Нур", "Свет"],
-    ["Аль-Фуркан", "Различение"],
-    ["Аш-Шу‘ара", "Поэты"],
-    ["Ан-Намль", "Муравьи"],
-    ["Аль-Касас", "Рассказ"],
-    ["Аль-‘Анкабут", "Паук"],
-    ["Ар-Рум", "Ромеи"],
-    ["Лукман", "Лукман"],
-    ["Ас-Саджда", "Земной поклон"],
-    ["Аль-Ахзаб", "Полчища"],
-    ["Саба’", "Сава"],
-    ["Фатыр", "Зиждитель"],
-    ["Йа, син", "Йа, син"],
-    ["Ас-Саффат", "Стоящие в ряд"],
-    ["Сад", "Сад"],
-    ["Аз-Зумар", "Толпы"],
-    ["Гафир", "Прощающий"],
-    ["Фуссылят", "Разъяснены"],
-    ["Аш-Шура", "Совет"],
-    ["Аз-Зухруф", "Украшения"],
-    ["Ад-Духан", "Дым"],
-    ["Аль-Джасия", "Коленопреклонённые"],
-    ["Аль-Ахкаф", "Барханы"],
-    ["Мухаммад", "Мухаммад"],
-    ["Аль-Фатх", "Победа"],
-    ["Аль-Худжурат", "Покои"],
-    ["Каф", "Каф"],
-    ["Аз-Зарият", "Рассеивающие"],
-    ["Ат-Тур", "Гора"],
-    ["Ан-Наджм", "Звезда"],
-    ["Аль-Камар", "Луна"],
-    ["Ар-Рахман", "Милостивый"],
-    ["Аль-Ваки‘а", "Неизбежное"],
-    ["Аль-Хадид", "Железо"],
-    ["Аль-Муджадиля", "Препирающаяся"],
-    ["Аль-Хашр", "Сбор"],
-    ["Аль-Мумтахана", "Испытуемая"],
-    ["Ас-Сафф", "Ряд"],
-    ["Аль-Джуму‘а", "Собрание"],
-    ["Аль-Мунафикун", "Лицемеры"],
-    ["Ат-Тагабун", "Обделение"],
-    ["Ат-Таляк", "Развод"],
-    ["Ат-Тахрим", "Запрещение"],
-    ["Аль-Мульк", "Власть"],
-    ["Аль-Калям", "Перо"],
-    ["Аль-Хакка", "Неминуемое"],
-    ["Аль-Ма‘аридж", "Степени"],
-    ["Нух", "Ной"],
-    ["Аль-Джинн", "Джинны"],
-    ["Аль-Муззаммиль", "Закутавшийся"],
-    ["Аль-Муддассир", "Завернувшийся"],
-    ["Аль-Кияма", "Воскресение"],
-    ["Аль-Инсан", "Человек"],
-    ["Аль-Мурсалят", "Посылаемые"],
-    ["Ан-Наба’", "Весть"],
-    ["Ан-Нази‘ат", "Вырывающие"],
-    ["‘Абаса", "Нахмурился"],
-    ["Ат-Таквир", "Сворачивание"],
-    ["Аль-Инфитар", "Раскалывание"],
-    ["Аль-Мутаффифин", "Обвешивающие"],
-    ["Аль-Иншикак", "Разверзнется"],
-    ["Аль-Бурудж", "Созвездия"],
-    ["Ат-Тарик", "Ночной гость"],
-    ["Аль-А‘ля", "Всевышний"],
-    ["Аль-Гашия", "Покрывающее"],
-    ["Аль-Фаджр", "Заря"],
-    ["Аль-Баляд", "Город"],
-    ["Аш-Шамс", "Солнце"],
-    ["Аль-Лейль", "Ночь"],
-    ["Ад-Духа", "Утро"],
-    ["Аль-Инширах", "Раскрытие"],
-    ["Ат-Тин", "Смоковница"],
-    ["Аль-‘Аляк", "Сгусток крови"],
-    ["Аль-Кадр", "Величие"],
-    ["Аль-Баййина", "Ясный довод"],
-    ["Аз-Зальзаля", "Сотрясение"],
-    ["Аль-‘Адият", "Скачущие"],
-    ["Аль-Кари‘а", "Поражающее"],
-    ["Ат-Такясур", "Соперничество"],
-    ["Аль-‘Аср", "Предвечернее время"],
-    ["Аль-Хумаза", "Хулитель"],
-    ["Аль-Филь", "Слон"],
-    ["Курайш", "Курайшиты"],
-    ["Аль-Ма‘ун", "Утварь"],
-    ["Аль-Каусар", "Каусар"],
-    ["Аль-Кяфирун", "Неверующие"],
-    ["Ан-Наср", "Помощь"],
-    ["Аль-Масад", "Пальмовые волокна"],
-    ["Аль-Ихляс", "Очищение веры"],
-    ["Аль-Фаляк", "Рассвет"],
-    ["Ан-Нас", "Люди"],
-];
-
-var SuraList = [
-    [-1, -1, -1, -1, "", false, -1],
-    [0, 7, 5, 1, "الفاتحة", true, 1],
-    [7, 286, 87, 40, "البقرة", false, 2],
-    [293, 200, 89, 20, "آل عمران", false, 50],
-    [493, 176, 92, 24, "النساء", false, 77],
-    [669, 120, 112, 16, "المائدة", false, 107],
-    [789, 165, 55, 20, "الأنعام", true, 128],
-    [954, 206, 39, 24, "الأعراف", true, 151],
-    [1160, 75, 88, 10, "الأنفال", false, 177],
-    [1235, 129, 113, 16, "التوبة", false, 187],
-    [1364, 109, 51, 11, "يونس", true, 208],
-    [1473, 123, 52, 10, "هود", true, 222],
-    [1596, 111, 53, 12, "يوسف", true, 236],
-    [1707, 43, 96, 6, "الرعد", false, 249],
-    [1750, 52, 72, 7, "ابراهيم", true, 256],
-    [1802, 99, 54, 6, "الحجر", true, 262],
-    [1901, 128, 70, 16, "النحل", true, 268],
-    [2029, 111, 50, 12, "الإسراء", true, 282],
-    [2140, 110, 69, 12, "الكهف", true, 294],
-    [2250, 98, 44, 6, "مريم", true, 305],
-    [2348, 135, 45, 8, "طه", true, 313],
-    [2483, 112, 73, 7, "الأنبياء", true, 322],
-    [2595, 78, 103, 10, "الحج", false, 332],
-    [2673, 118, 74, 6, "المؤمنون", true, 342],
-    [2791, 64, 102, 9, "النور", false, 350],
-    [2855, 77, 42, 6, "الفرقان", true, 360],
-    [2932, 227, 47, 11, "الشعراء", true, 367],
-    [3159, 93, 48, 7, "النمل", true, 377],
-    [3252, 88, 49, 8, "القصص", true, 386],
-    [3340, 69, 85, 7, "العنكبوت", true, 397],
-    [3409, 60, 84, 6, "الروم", true, 405],
-    [3469, 34, 57, 3, "لقمان", true, 411],
-    [3503, 30, 75, 3, "السجدة", true, 415],
-    [3533, 73, 90, 9, "الأحزاب", false, 418],
-    [3606, 54, 58, 6, "سبإ", true, 428],
-    [3660, 45, 43, 5, "فاطر", true, 435],
-    [3705, 83, 41, 5, "يس", true, 441],
-    [3788, 182, 56, 5, "الصافات", true, 446],
-    [3970, 88, 38, 5, "ص", true, 453],
-    [4058, 75, 59, 8, "الزمر", true, 459],
-    [4133, 85, 60, 9, "غافر", true, 468],
-    [4218, 54, 61, 6, "فصلت", true, 477],
-    [4272, 53, 62, 5, "الشورى", true, 483],
-    [4325, 89, 63, 7, "الزخرف", true, 490],
-    [4414, 59, 64, 3, "الدخان", true, 496],
-    [4473, 37, 65, 4, "الجاثية", true, 499],
-    [4510, 35, 66, 4, "الأحقاف", true, 503],
-    [4545, 38, 95, 4, "محمد", false, 507],
-    [4583, 29, 111, 4, "الفتح", false, 511],
-    [4612, 18, 106, 2, "الحجرات", false, 516],
-    [4630, 45, 34, 3, "ق", true, 518],
-    [4675, 60, 67, 3, "الذاريات", true, 521],
-    [4735, 49, 76, 2, "الطور", true, 524],
-    [4784, 62, 23, 3, "النجم", true, 526],
-    [4846, 55, 37, 3, "القمر", true, 529],
-    [4901, 78, 97, 3, "الرحمن", false, 532],
-    [4979, 96, 46, 3, "الواقعة", true, 535],
-    [5075, 29, 94, 4, "الحديد", false, 538],
-    [5104, 22, 105, 3, "المجادلة", false, 542],
-    [5126, 24, 101, 3, "الحشر", false, 546],
-    [5150, 13, 91, 2, "الممتحنة", false, 549],
-    [5163, 14, 109, 2, "الصف", false, 552],
-    [5177, 11, 110, 2, "الجمعة", false, 553],
-    [5188, 11, 104, 2, "المنافقون", false, 555],
-    [5199, 18, 108, 2, "التغابن", false, 556],
-    [5217, 12, 99, 2, "الطلاق", false, 558],
-    [5229, 12, 107, 2, "التحريم", false, 560],
-    [5241, 30, 77, 2, "الملك", true, 562],
-    [5271, 52, 2, 2, "القلم", true, 565],
-    [5323, 52, 78, 2, "الحاقة", true, 567],
-    [5375, 44, 79, 2, "المعارج", true, 569],
-    [5419, 28, 71, 2, "نوح", true, 571],
-    [5447, 28, 40, 2, "الجن", true, 572],
-    [5475, 20, 3, 2, "المزمل", true, 574],
-    [5495, 56, 4, 2, "المدثر", true, 576],
-    [5551, 40, 31, 2, "القيامة", true, 578],
-    [5591, 31, 98, 2, "الانسان", false, 579],
-    [5622, 50, 33, 2, "المرسلات", true, 581],
-    [5672, 40, 80, 2, "النبإ", true, 582],
-    [5712, 46, 81, 2, "النازعات", true, 584],
-    [5758, 42, 24, 1, "عبس", true, 585],
-    [5800, 29, 7, 1, "التكوير", true, 586],
-    [5829, 19, 82, 1, "الإنفطار", true, 587],
-    [5848, 36, 86, 1, "المطففين", true, 588],
-    [5884, 25, 83, 1, "الإنشقاق", true, 589],
-    [5909, 22, 27, 1, "البروج", true, 590],
-    [5931, 17, 36, 1, "الطارق", true, 591],
-    [5948, 19, 8, 1, "الأعلى", true, 592],
-    [5967, 26, 68, 1, "الغاشية", true, 592],
-    [5993, 30, 10, 1, "الفجر", true, 593],
-    [6023, 20, 35, 1, "البلد", true, 594],
-    [6043, 15, 26, 1, "الشمس", true, 595],
-    [6058, 21, 9, 1, "الليل", true, 596],
-    [6079, 11, 11, 1, "الضحى", true, 596],
-    [6090, 8, 12, 1, "الشرح", true, 596],
-    [6098, 8, 28, 1, "التين", true, 597],
-    [6106, 19, 1, 1, "العلق", true, 597],
-    [6125, 5, 25, 1, "القدر", true, 598],
-    [6130, 8, 100, 1, "البينة", false, 599],
-    [6138, 8, 93, 1, "الزلزلة", false, 599],
-    [6146, 11, 14, 1, "العاديات", true, 600],
-    [6157, 11, 30, 1, "القارعة", true, 600],
-    [6168, 8, 16, 1, "التكاثر", true, 600],
-    [6176, 3, 13, 1, "العصر", true, 601],
-    [6179, 9, 32, 1, "الهمزة", true, 601],
-    [6188, 5, 19, 1, "الفيل", true, 601],
-    [6193, 4, 29, 1, "قريش", true, 602],
-    [6197, 7, 17, 1, "الماعون", true, 602],
-    [6204, 3, 15, 1, "الكوثر", true, 602],
-    [6207, 6, 18, 1, "الكافرون", true, 603],
-    [6213, 3, 114, 1, "النصر", false, 603],
-    [6216, 5, 6, 1, "المسد", true, 603],
-    [6221, 4, 22, 1, "الإخلاص", true, 604],
-    [6225, 5, 20, 1, "الفلق", true, 604],
-    [6230, 6, 21, 1, "الناس", true, 604],
-    [6236, 0, -1, -1, "", false, -1],
-];
-
-var HizbQuarterList = [
-    0, 1, 33, 51, 67, 82, 99, 113, 131, 149, 165, 184, 196, 210, 226, 240, 250,
-    260, 270, 279, 290, 308, 326, 345, 368, 386, 406, 426, 446, 464, 479, 494,
-    505, 517, 529, 551, 567, 581, 593, 607, 628, 641, 656, 670, 681, 696, 710,
-    720, 736, 751, 766, 778, 802, 825, 848, 863, 884, 900, 916, 930, 940, 955,
-    985, 1001, 1019, 1042, 1071, 1096, 1110, 1125, 1143, 1161, 1182, 1201, 1221,
-    1236, 1254, 1269, 1281, 1295, 1310, 1328, 1346, 1357, 1375, 1390, 1417, 1435,
-    1454, 1479, 1497, 1514, 1534, 1557, 1581, 1603, 1626, 1649, 1673, 1697, 1712,
-    1726, 1742, 1760, 1778, 1803, 1852, 1902, 1931, 1952, 1976, 1991, 2012, 2030,
-    2052, 2079, 2099, 2128, 2157, 2172, 2191, 2215, 2239, 2272, 2309, 2349, 2403,
-    2431, 2459, 2484, 2512, 2534, 2566, 2596, 2614, 2633, 2655, 2674, 2709, 2748,
-    2792, 2812, 2826, 2844, 2856, 2876, 2908, 2933, 2984, 3043, 3113, 3160, 3186,
-    3215, 3241, 3264, 3281, 3303, 3328, 3341, 3366, 3386, 3410, 3440, 3463, 3491,
-    3514, 3534, 3551, 3564, 3584, 3593, 3616, 3630, 3652, 3675, 3701, 3733, 3765,
-    3810, 3871, 3933, 3991, 4022, 4066, 4090, 4111, 4134, 4154, 4174, 4199, 4227,
-    4243, 4265, 4285, 4299, 4323, 4349, 4382, 4431, 4485, 4511, 4531, 4555, 4578,
-    4601, 4613, 4626, 4657, 4706, 4759, 4810, 4855, 4902, 4980, 5054, 5091, 5105,
-    5118, 5137, 5157, 5178, 5192, 5218, 5230, 5242, 5272, 5324, 5394, 5448, 5495,
-    5552, 5610, 5673, 5759, 5830, 5885, 5949, 6024, 6091, 6155, 6237,
-];
-
-var RukuList = [
-    0, 1, 8, 15, 28, 37, 47, 54, 67, 69, 79, 90, 94, 104, 111, 120, 129, 137, 149,
-    155, 160, 171, 175, 184, 190, 196, 204, 218, 224, 229, 236, 239, 243, 250,
-    256, 261, 265, 268, 274, 281, 289, 291, 294, 303, 314, 324, 335, 348, 357,
-    365, 374, 385, 395, 403, 414, 423, 437, 442, 449, 465, 474, 483, 494, 504,
-    508, 516, 519, 527, 536, 544, 553, 564, 570, 581, 585, 590, 594, 598, 606,
-    609, 620, 628, 635, 646, 656, 665, 670, 675, 681, 689, 696, 704, 713, 720,
-    726, 736, 747, 756, 763, 770, 778, 785, 790, 800, 810, 820, 831, 840, 845,
-    850, 860, 872, 880, 884, 890, 900, 911, 919, 930, 934, 940, 944, 955, 965,
-    980, 986, 994, 1002, 1008, 1013, 1019, 1027, 1039, 1048, 1054, 1063, 1081,
-    1084, 1096, 1102, 1106, 1112, 1117, 1126, 1136, 1143, 1161, 1171, 1180, 1189,
-    1198, 1205, 1209, 1219, 1225, 1230, 1236, 1242, 1252, 1260, 1265, 1273, 1278,
-    1295, 1302, 1308, 1316, 1325, 1335, 1346, 1354, 1358, 1365, 1375, 1385, 1395,
-    1405, 1418, 1425, 1435, 1447, 1457, 1468, 1474, 1482, 1498, 1509, 1523, 1534,
-    1542, 1557, 1569, 1583, 1597, 1603, 1617, 1626, 1632, 1639, 1646, 1654, 1665,
-    1676, 1690, 1701, 1708, 1715, 1726, 1734, 1739, 1745, 1751, 1757, 1763, 1772,
-    1778, 1785, 1792, 1803, 1818, 1828, 1847, 1863, 1882, 1902, 1911, 1923, 1927,
-    1936, 1942, 1952, 1962, 1967, 1972, 1978, 1985, 1991, 2002, 2012, 2021, 2030,
-    2040, 2052, 2060, 2070, 2082, 2090, 2100, 2107, 2114, 2123, 2130, 2141, 2153,
-    2158, 2163, 2172, 2185, 2190, 2194, 2200, 2211, 2223, 2242, 2251, 2266, 2291,
-    2301, 2316, 2333, 2349, 2373, 2403, 2425, 2438, 2453, 2464, 2477, 2484, 2494,
-    2513, 2525, 2534, 2559, 2577, 2596, 2606, 2618, 2621, 2629, 2634, 2644, 2653,
-    2660, 2668, 2674, 2696, 2706, 2724, 2751, 2766, 2792, 2802, 2812, 2818, 2826,
-    2832, 2842, 2849, 2853, 2856, 2865, 2876, 2890, 2900, 2916, 2933, 2942, 2966,
-    2985, 3002, 3037, 3055, 3073, 3092, 3108, 3124, 3160, 3174, 3191, 3204, 3218,
-    3226, 3242, 3253, 3266, 3274, 3281, 3295, 3303, 3313, 3328, 3341, 3354, 3363,
-    3371, 3385, 3392, 3404, 3410, 3420, 3429, 3437, 3450, 3463, 3470, 3481, 3489,
-    3504, 3515, 3526, 3534, 3542, 3554, 3561, 3568, 3574, 3586, 3592, 3602, 3607,
-    3616, 3628, 3637, 3643, 3652, 3661, 3668, 3675, 3687, 3698, 3706, 3718, 3738,
-    3756, 3773, 3789, 3810, 3863, 3902, 3927, 3971, 3985, 3997, 4011, 4035, 4059,
-    4068, 4080, 4090, 4100, 4111, 4122, 4129, 4134, 4143, 4154, 4161, 4171, 4184,
-    4194, 4202, 4212, 4219, 4227, 4237, 4244, 4251, 4263, 4273, 4282, 4292, 4302,
-    4316, 4326, 4341, 4351, 4361, 4371, 4382, 4393, 4415, 4444, 4457, 4474, 4485,
-    4495, 4500, 4511, 4521, 4531, 4537, 4546, 4557, 4565, 4574, 4584, 4594, 4601,
-    4610, 4613, 4623, 4631, 4646, 4660, 4676, 4699, 4722, 4736, 4764, 4785, 4810,
-    4817, 4847, 4869, 4887, 4902, 4927, 4947, 4980, 5018, 5054, 5076, 5086, 5095,
-    5101, 5105, 5111, 5118, 5127, 5137, 5144, 5151, 5157, 5164, 5173, 5178, 5186,
-    5189, 5197, 5200, 5210, 5218, 5225, 5230, 5237, 5242, 5256, 5272, 5305, 5324,
-    5361, 5376, 5411, 5420, 5440, 5448, 5467, 5476, 5495, 5496, 5527, 5552, 5582,
-    5592, 5614, 5623, 5663, 5673, 5703, 5713, 5739, 5759, 5801, 5830, 5849, 5885,
-    5910, 5932, 5949, 5968, 5994, 6024, 6044, 6059, 6080, 6091, 6099, 6107, 6126,
-    6131, 6139, 6147, 6158, 6169, 6177, 6180, 6189, 6194, 6198, 6205, 6208, 6214,
-    6217, 6222, 6226, 6231, 6237,
-];
-
-var PageList = [
-    0, 1, 8, 13, 24, 32, 37, 45, 56, 65, 69, 77, 84, 91, 96, 101, 109, 113, 120,
-    127, 134, 142, 149, 153, 161, 171, 177, 184, 189, 194, 198, 204, 210, 218,
-    223, 227, 232, 238, 241, 245, 253, 256, 260, 264, 267, 272, 277, 282, 289,
-    290, 294, 303, 309, 316, 323, 331, 339, 346, 355, 364, 371, 377, 385, 394,
-    402, 409, 415, 426, 434, 442, 447, 451, 459, 467, 474, 480, 488, 494, 500,
-    505, 508, 513, 517, 520, 527, 531, 538, 545, 553, 559, 568, 573, 580, 585,
-    588, 595, 599, 607, 615, 621, 628, 634, 641, 648, 656, 664, 669, 672, 675,
-    679, 683, 687, 693, 701, 706, 711, 715, 720, 727, 734, 740, 746, 752, 759,
-    765, 773, 778, 783, 790, 798, 808, 817, 825, 834, 842, 849, 858, 863, 871,
-    880, 884, 891, 900, 908, 914, 921, 927, 932, 936, 941, 947, 955, 966, 977,
-    985, 992, 998, 1006, 1012, 1022, 1028, 1036, 1042, 1050, 1059, 1075, 1085,
-    1092, 1098, 1104, 1110, 1114, 1118, 1125, 1133, 1142, 1150, 1161, 1169, 1177,
-    1186, 1194, 1201, 1206, 1213, 1222, 1230, 1236, 1242, 1249, 1256, 1262, 1267,
-    1272, 1276, 1283, 1290, 1297, 1304, 1308, 1315, 1322, 1329, 1335, 1342, 1347,
-    1353, 1358, 1365, 1371, 1379, 1385, 1390, 1398, 1407, 1418, 1426, 1435, 1443,
-    1453, 1462, 1471, 1479, 1486, 1493, 1502, 1511, 1519, 1527, 1536, 1545, 1555,
-    1562, 1571, 1582, 1591, 1601, 1611, 1619, 1627, 1634, 1640, 1649, 1660, 1666,
-    1675, 1683, 1692, 1700, 1708, 1713, 1721, 1726, 1736, 1742, 1750, 1756, 1761,
-    1769, 1775, 1784, 1793, 1803, 1818, 1834, 1854, 1873, 1893, 1908, 1916, 1928,
-    1936, 1944, 1956, 1966, 1974, 1981, 1989, 1995, 2004, 2012, 2020, 2030, 2037,
-    2047, 2057, 2068, 2079, 2088, 2096, 2105, 2116, 2126, 2134, 2145, 2156, 2161,
-    2168, 2175, 2186, 2194, 2202, 2215, 2224, 2238, 2251, 2262, 2276, 2289, 2302,
-    2315, 2327, 2346, 2361, 2386, 2400, 2413, 2425, 2436, 2447, 2462, 2474, 2484,
-    2494, 2508, 2519, 2528, 2541, 2556, 2565, 2574, 2585, 2596, 2601, 2611, 2619,
-    2626, 2634, 2642, 2651, 2660, 2668, 2674, 2691, 2701, 2716, 2733, 2748, 2763,
-    2778, 2792, 2802, 2812, 2819, 2823, 2828, 2835, 2845, 2850, 2853, 2858, 2867,
-    2876, 2888, 2899, 2911, 2923, 2933, 2952, 2972, 2993, 3016, 3044, 3069, 3092,
-    3116, 3139, 3160, 3173, 3182, 3195, 3204, 3215, 3223, 3236, 3248, 3258, 3266,
-    3274, 3281, 3288, 3296, 3303, 3312, 3323, 3330, 3337, 3347, 3355, 3364, 3371,
-    3379, 3386, 3393, 3404, 3415, 3425, 3434, 3442, 3451, 3460, 3470, 3481, 3489,
-    3498, 3504, 3515, 3524, 3534, 3540, 3549, 3556, 3564, 3569, 3577, 3584, 3588,
-    3596, 3607, 3614, 3621, 3629, 3638, 3646, 3655, 3664, 3672, 3679, 3691, 3699,
-    3705, 3718, 3733, 3746, 3760, 3776, 3789, 3813, 3840, 3865, 3891, 3915, 3942,
-    3971, 3987, 3997, 4013, 4032, 4054, 4064, 4069, 4080, 4090, 4099, 4106, 4115,
-    4126, 4133, 4141, 4150, 4159, 4167, 4174, 4183, 4192, 4200, 4211, 4219, 4230,
-    4239, 4248, 4257, 4265, 4273, 4283, 4288, 4295, 4304, 4317, 4324, 4336, 4348,
-    4359, 4373, 4386, 4399, 4415, 4433, 4454, 4474, 4487, 4496, 4506, 4516, 4525,
-    4531, 4539, 4546, 4557, 4565, 4575, 4584, 4593, 4599, 4607, 4612, 4617, 4624,
-    4631, 4646, 4666, 4682, 4706, 4727, 4750, 4767, 4785, 4811, 4829, 4853, 4874,
-    4896, 4918, 4942, 4969, 4996, 5030, 5056, 5079, 5087, 5094, 5100, 5105, 5111,
-    5116, 5126, 5130, 5136, 5143, 5151, 5156, 5162, 5169, 5178, 5186, 5193, 5200,
-    5209, 5218, 5223, 5230, 5237, 5242, 5254, 5268, 5287, 5314, 5332, 5358, 5386,
-    5415, 5430, 5448, 5461, 5476, 5495, 5513, 5543, 5571, 5597, 5617, 5642, 5673,
-    5703, 5728, 5759, 5801, 5830, 5855, 5883, 5910, 5932, 5964, 5994, 6017, 6044,
-    6073, 6099, 6126, 6138, 6156, 6177, 6194, 6208, 6222, 6237,
-];
-
-function ayaStringSplitter(str) {
-    var _a = str.trim().split(":"), surah = _a[0], ayahs = _a[1];
-    if (!ayahs) {
-        throw "Error in data " + str;
-    }
-    return [
-        +surah,
-        ayahs.includes("-")
-            ? ayahs.split("-").map(Number)
-            : +ayahs,
-    ];
-}
-
-var JuzList = [
-    0, 1, 149, 260, 386, 517, 641, 751, 900, 1042, 1201, 1328, 1479, 1649, 1803,
-    2030, 2215, 2484, 2674, 2876, 3215, 3386, 3564, 3733, 4090, 4265, 4511, 4706,
-    5105, 5242, 5673, 6237,
-];
-var ManzilList = [0, 1, 670, 1365, 2030, 2933, 3789, 4631, 6237];
-var SajdaList = [
-    [1160, "recommended"],
-    [1722, "recommended"],
-    [1951, "recommended"],
-    [2138, "recommended"],
-    [2308, "recommended"],
-    [2613, "recommended"],
-    [2672, "recommended"],
-    [2915, "recommended"],
-    [3185, "recommended"],
-    [3518, "obligatory"],
-    [3994, "recommended"],
-    [4256, "obligatory"],
-    [4846, "obligatory"],
-    [5905, "recommended"],
-    [6125, "obligatory"],
-];
-function binarySearch(ar, el, compare_fn) {
-    if (compare_fn === void 0) { compare_fn = function (a, b) { return a - b; }; }
-    var m = 0;
-    var n = ar.length - 1;
-    while (m <= n) {
-        var k = (n + m) >> 1;
-        var cmp = compare_fn(el, ar[k]);
-        if (cmp > 0) {
-            m = k + 1;
-        }
-        else if (cmp < 0) {
-            n = k - 1;
-        }
-        else {
-            return k;
-        }
-    }
-    return -m - 1;
-}
-function checkValidAyahId(ayaId) {
-    if (ayaId < 1 || ayaId > meta.numAyas)
-        throw new RangeError("ayaid must be between 1 and " + meta.numAyas);
-    return true;
-}
-function checkValidSurah(surah, checkOnly) {
-    if (checkOnly === void 0) { checkOnly = false; }
-    if (surah < 1 || surah > meta.numSuras) {
-        if (checkOnly)
-            return false;
-        throw new RangeError("Surah must be between 1 and " + meta.numSuras);
-    }
-    return true;
-}
-function findSurahByAyaid(ayaId) {
-    checkValidAyahId(ayaId);
-    var suraNum = SuraList.findIndex(function (x) { return x[0] >= ayaId; }) - 1;
-    return suraNum < 0
-        ? [114, ayaId - SuraList[114][0]]
-        : [suraNum, ayaId - SuraList[suraNum][0]];
-}
-function findJuzByAyaid(ayaId) {
-    checkValidAyahId(ayaId);
-    return JuzList.findIndex(function (x) { return x > ayaId; }) - 1;
-}
-function findJuzHizbByAyaid(ayaId) {
-    checkValidAyahId(ayaId);
-    var juz = findJuzByAyaid(ayaId);
-    var id = HizbQuarterList.findIndex(function (x) { return x > ayaId; }) - 1;
-    return { juz: juz, hizb: id % 8 || 8, id: id };
-}
-function findJuz(surah, ayah, ayahMode) {
-    if (ayah === void 0) { ayah = 1; }
-    if (ayahMode === void 0) { ayahMode = false; }
-    var ayahId = ayahMode
-        ? ayah
-        : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
-    return findJuzByAyaid(ayahId);
-}
-function findJuzHizb(surah, ayah, ayahMode) {
-    if (ayah === void 0) { ayah = 1; }
-    if (ayahMode === void 0) { ayahMode = false; }
-    var ayahId = ayahMode
-        ? ayah
-        : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
-    return findJuzHizbByAyaid(ayahId);
-}
-function isAyahJuzFirst(surah, ayah, ayahMode) {
-    if (ayahMode === void 0) { ayahMode = false; }
-    var ayahId = ayahMode
-        ? (checkValidAyahId(ayah) && ayah)
-        : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
-    return binarySearch(JuzList, ayahId);
-}
-function isAyahPageFirst(surah, ayah, ayahMode) {
-    if (ayahMode === void 0) { ayahMode = false; }
-    var ayahId = ayahMode
-        ? (checkValidAyahId(ayah) && ayah)
-        : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
-    return binarySearch(PageList, ayahId);
-}
-function findJuzAndShift(surah, ayah, ayahMode) {
-    if (ayahMode === void 0) { ayahMode = false; }
-    var ayahId = ayahMode
-        ? (checkValidAyahId(ayah) && ayah)
-        : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
-    var juz = findJuzByAyaid(ayahId);
-    var leftAyahId = JuzList[juz];
-    if (surah < 0)
-        surah = findSurahByAyaid(leftAyahId)[0];
-    var surahStartAyahId = SuraList[surah][0];
-    return {
-        juz: juz,
-        ayahsBetweenJuzSurah: surahStartAyahId - leftAyahId + 1,
-        leftAyahId: leftAyahId,
-    };
-}
-function findJuzMetaBySurah(surah, ayah) {
-    if (ayah === void 0) { ayah = 1; }
-    var _a = findJuzAndShift(surah, ayah), leftjuz = _a.juz, ayahsBetweenJuzSurah = _a.ayahsBetweenJuzSurah, leftAyahId = _a.leftAyahId;
-    var rightJuz = leftjuz;
-    while (rightJuz < meta.numJuzs &&
-        findSurahByAyaid(JuzList[rightJuz + 1])[0] == surah)
-        rightJuz++;
-    return {
-        leftjuz: leftjuz,
-        ayahsBetweenJuzSurah: ayahsBetweenJuzSurah,
-        rightJuz: rightJuz,
-        leftAyahId: leftAyahId,
-        rightAyahId: JuzList[rightJuz + 1],
-    };
-}
-function getSurahMeta(surah) {
-    checkValidSurah(surah);
-    return SuraList[surah];
-}
-function findPage(surah, ayah, ayahMode) {
-    if (ayahMode === void 0) { ayahMode = false; }
-    var ayahId = ayahMode
-        ? (checkValidAyahId(ayah) && ayah)
-        : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
-    return PageList.findIndex(function (x) { return x > ayahId; }) - 1;
-}
-function findAyaidBySurah(surah, ayah) {
-    var startAyahId = getSurahMeta(surah)[0];
-    return startAyahId + ayah;
-}
-function getAyaCountinSura(surah) {
-    return getSurahMeta(surah)[1];
-}
-function nextAyah(surah, ayah) {
-    if (surah < 1 || surah > meta.numSuras)
-        throw new RangeError("Surah must be between 1 and " + meta.numSuras);
-    var ayaid = findAyaidBySurah(surah, ayah);
-    return findSurahByAyaid(ayaid == meta.numAyas ? 1 : ayaid + 1);
-}
-function prevAyah(surah, ayah) {
-    checkValidSurah(surah);
-    var ayaid = findAyaidBySurah(surah, ayah);
-    return findSurahByAyaid(ayaid == 1 ? meta.numAyas : ayaid - 1);
-}
-function pageMeta(pageNum) {
-    if (pageNum < 1 || pageNum > meta.numPages)
-        throw new RangeError("pagenum must be between 1 and " + meta.numPages);
-    var _a = [
-        PageList[pageNum],
-        PageList[pageNum + 1],
-    ], curPage = _a[0], nextPage = _a[1];
-    return {
-        pageNum: pageNum,
-        first: findSurahByAyaid(curPage),
-        last: __spreadArray([], findSurahByAyaid(nextPage - 1), true),
-    };
-}
-function findRangeAroundAyah(surah, ayah, mode, ayahMode) {
-    if (ayahMode === void 0) { ayahMode = false; }
-    var ayahId = ayahMode
-        ? ayah
-        : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
-    switch (mode) {
-        case "juz": {
-            var juz = findJuzByAyaid(ayahId);
-            return [JuzList[juz], JuzList[juz + 1] - 1];
-        }
-        case "surah": {
-            return [findAyaidBySurah(surah, 1), findAyaidBySurah(surah + 1, 1) - 1];
-        }
-        case "ayah": {
-            return [ayahId, ayahId];
-        }
-        case "page": {
-            var page = findPage(-1, ayahId, true);
-            return [PageList[page], PageList[page + 1] - 1];
-        }
-        case "all":
-        default:
-            return [1, meta.numAyas];
-    }
-}
-
-export { HizbQuarterList, JuzList, ManzilList, PageList, RukuList, SajdaList, SuraList, ayaStringSplitter, findAyaidBySurah, findJuz, findJuzAndShift, findJuzByAyaid, findJuzHizb, findJuzHizbByAyaid, findJuzMetaBySurah, findPage, findRangeAroundAyah, findSurahByAyaid, getAyaCountinSura, getSurahMeta, isAyahJuzFirst, isAyahPageFirst, meta, nextAyah, pageMeta, prevAyah, suraNames$1 as suraNamesEn, suraNames as suraNamesRu };
-//# sourceMappingURL=quran-meta.esm.js.map
diff --git a/dist/quran-meta.esm.js.map b/dist/quran-meta.esm.js.map
deleted file mode 100644
index 7d90c90..0000000
--- a/dist/quran-meta.esm.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"quran-meta.esm.js","sources":["../node_modules/.pnpm/@rollup+plugin-typescript@9.0.2_uxzoppybjjm3iv3alceonunahm/node_modules/tslib/tslib.es6.js","../src/const.ts","../src/i18n/sura.en.ts","../src/i18n/sura.ru.ts","../src/surahList.ts","../src/hizbList.ts","../src/rukuList.ts","../src/pageList.ts","../src/ayaStringSplitter.ts","../src/index.ts"],"sourcesContent":["/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n    extendStatics = Object.setPrototypeOf ||\r\n        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n        function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n    return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n    if (typeof b !== \"function\" && b !== null)\r\n        throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n    extendStatics(d, b);\r\n    function __() { this.constructor = d; }\r\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n    __assign = Object.assign || function __assign(t) {\r\n        for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n            s = arguments[i];\r\n            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n        }\r\n        return t;\r\n    }\r\n    return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n    var t = {};\r\n    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n        t[p] = s[p];\r\n    if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n        for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n            if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n                t[p[i]] = s[p[i]];\r\n        }\r\n    return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n    return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n    if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n    return new (P || (P = Promise))(function (resolve, reject) {\r\n        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n        function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n        step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n    });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n    return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n    function verb(n) { return function (v) { return step([n, v]); }; }\r\n    function step(op) {\r\n        if (f) throw new TypeError(\"Generator is already executing.\");\r\n        while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n            if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n            if (y = 0, t) op = [op[0] & 2, t.value];\r\n            switch (op[0]) {\r\n                case 0: case 1: t = op; break;\r\n                case 4: _.label++; return { value: op[1], done: false };\r\n                case 5: _.label++; y = op[1]; op = [0]; continue;\r\n                case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n                default:\r\n                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n                    if (t[2]) _.ops.pop();\r\n                    _.trys.pop(); continue;\r\n            }\r\n            op = body.call(thisArg, _);\r\n        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n    }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n    if (k2 === undefined) k2 = k;\r\n    var desc = Object.getOwnPropertyDescriptor(m, k);\r\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n        desc = { enumerable: true, get: function() { return m[k]; } };\r\n    }\r\n    Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n    if (k2 === undefined) k2 = k;\r\n    o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n    var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n    if (m) return m.call(o);\r\n    if (o && typeof o.length === \"number\") return {\r\n        next: function () {\r\n            if (o && i >= o.length) o = void 0;\r\n            return { value: o && o[i++], done: !o };\r\n        }\r\n    };\r\n    throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n    var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n    if (!m) return o;\r\n    var i = m.call(o), r, ar = [], e;\r\n    try {\r\n        while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n    }\r\n    catch (error) { e = { error: error }; }\r\n    finally {\r\n        try {\r\n            if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n        }\r\n        finally { if (e) throw e.error; }\r\n    }\r\n    return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n    for (var ar = [], i = 0; i < arguments.length; i++)\r\n        ar = ar.concat(__read(arguments[i]));\r\n    return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n    for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n    for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n        for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n            r[k] = a[j];\r\n    return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n    if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n        if (ar || !(i in from)) {\r\n            if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n            ar[i] = from[i];\r\n        }\r\n    }\r\n    return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n    return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n    if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n    var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n    return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n    function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n    function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n    function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n    function fulfill(value) { resume(\"next\", value); }\r\n    function reject(value) { resume(\"throw\", value); }\r\n    function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n    var i, p;\r\n    return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n    function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n    if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n    var m = o[Symbol.asyncIterator], i;\r\n    return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n    function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n    function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n    if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n    return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n    Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n    o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n    if (mod && mod.__esModule) return mod;\r\n    var result = {};\r\n    if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n    __setModuleDefault(result, mod);\r\n    return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n    return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n    if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n    return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n",null,null,null,null,null,null,null,null,null],"names":["suraNames"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA0JA;AACO,SAAS,aAAa,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;AAC9C,IAAI,IAAI,IAAI,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AACzF,QAAQ,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,IAAI,CAAC,EAAE;AAChC,YAAY,IAAI,CAAC,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACjE,YAAY,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AAC5B,SAAS;AACT,KAAK;AACL,IAAI,OAAO,EAAE,CAAC,MAAM,CAAC,EAAE,IAAI,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAC7D;;ACxKa,IAAA,IAAI,GAAwB,MAAM,CAAC,MAAM,CAAC;AACrD,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,OAAO,EAAE,EAAE;AACX,IAAA,WAAW,EAAE,CAAC;AACf,CAAA;;ACbY,IAAAA,WAAS,GAAsB;IAC1C,EAAE;IACF,CAAC,YAAY,EAAE,aAAa,CAAC;IAC7B,CAAC,WAAW,EAAE,SAAS,CAAC;IACxB,CAAC,cAAc,EAAE,sBAAsB,CAAC;IACxC,CAAC,UAAU,EAAE,WAAW,CAAC;IACzB,CAAC,WAAW,EAAE,WAAW,CAAC;IAC1B,CAAC,WAAW,EAAE,YAAY,CAAC;IAC3B,CAAC,WAAW,EAAE,aAAa,CAAC;IAC5B,CAAC,WAAW,EAAE,mBAAmB,CAAC;IAClC,CAAC,UAAU,EAAE,gBAAgB,CAAC;IAC9B,CAAC,OAAO,EAAE,OAAO,CAAC;IAClB,CAAC,KAAK,EAAE,KAAK,CAAC;IACd,CAAC,OAAO,EAAE,QAAQ,CAAC;IACnB,CAAC,SAAS,EAAE,aAAa,CAAC;IAC1B,CAAC,SAAS,EAAE,SAAS,CAAC;IACtB,CAAC,SAAS,EAAE,UAAU,CAAC;IACvB,CAAC,SAAS,EAAE,SAAS,CAAC;IACtB,CAAC,UAAU,EAAE,mBAAmB,CAAC;IACjC,CAAC,SAAS,EAAE,UAAU,CAAC;IACvB,CAAC,QAAQ,EAAE,MAAM,CAAC;IAClB,CAAC,SAAS,EAAE,SAAS,CAAC;IACtB,CAAC,YAAY,EAAE,cAAc,CAAC;IAC9B,CAAC,SAAS,EAAE,gBAAgB,CAAC;IAC7B,CAAC,aAAa,EAAE,eAAe,CAAC;IAChC,CAAC,SAAS,EAAE,WAAW,CAAC;IACxB,CAAC,YAAY,EAAE,eAAe,CAAC;IAC/B,CAAC,cAAc,EAAE,WAAW,CAAC;IAC7B,CAAC,SAAS,EAAE,SAAS,CAAC;IACtB,CAAC,UAAU,EAAE,aAAa,CAAC;IAC3B,CAAC,aAAa,EAAE,YAAY,CAAC;IAC7B,CAAC,SAAS,EAAE,YAAY,CAAC;IACzB,CAAC,QAAQ,EAAE,QAAQ,CAAC;IACpB,CAAC,UAAU,EAAE,iBAAiB,CAAC;IAC/B,CAAC,WAAW,EAAE,WAAW,CAAC;IAC1B,CAAC,MAAM,EAAE,OAAO,CAAC;IACjB,CAAC,QAAQ,EAAE,gBAAgB,CAAC;IAC5B,CAAC,QAAQ,EAAE,QAAQ,CAAC;IACpB,CAAC,aAAa,EAAE,yBAAyB,CAAC;IAC1C,CAAC,MAAM,EAAE,iBAAiB,CAAC;IAC3B,CAAC,UAAU,EAAE,YAAY,CAAC;IAC1B,CAAC,YAAY,EAAE,cAAc,CAAC;IAC9B,CAAC,UAAU,EAAE,qBAAqB,CAAC;IACnC,CAAC,WAAW,EAAE,cAAc,CAAC;IAC7B,CAAC,YAAY,EAAE,mBAAmB,CAAC;IACnC,CAAC,YAAY,EAAE,WAAW,CAAC;IAC3B,CAAC,aAAa,EAAE,WAAW,CAAC;IAC5B,CAAC,UAAU,EAAE,WAAW,CAAC;IACzB,CAAC,UAAU,EAAE,UAAU,CAAC;IACxB,CAAC,SAAS,EAAE,aAAa,CAAC;IAC1B,CAAC,aAAa,EAAE,sBAAsB,CAAC;IACvC,CAAC,MAAM,EAAE,iBAAiB,CAAC;IAC3B,CAAC,eAAe,EAAE,qBAAqB,CAAC;IACxC,CAAC,QAAQ,EAAE,WAAW,CAAC;IACvB,CAAC,SAAS,EAAE,UAAU,CAAC;IACvB,CAAC,UAAU,EAAE,UAAU,CAAC;IACxB,CAAC,YAAY,EAAE,gBAAgB,CAAC;IAChC,CAAC,WAAW,EAAE,gBAAgB,CAAC;IAC/B,CAAC,UAAU,EAAE,UAAU,CAAC;IACxB,CAAC,cAAc,EAAE,oBAAoB,CAAC;IACtC,CAAC,UAAU,EAAE,WAAW,CAAC;IACzB,CAAC,cAAc,EAAE,4BAA4B,CAAC;IAC9C,CAAC,SAAS,EAAE,WAAW,CAAC;IACxB,CAAC,WAAW,EAAE,QAAQ,CAAC;IACvB,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IACpC,CAAC,cAAc,EAAE,oBAAoB,CAAC;IACtC,CAAC,WAAW,EAAE,SAAS,CAAC;IACxB,CAAC,WAAW,EAAE,iBAAiB,CAAC;IAChC,CAAC,SAAS,EAAE,iBAAiB,CAAC;IAC9B,CAAC,UAAU,EAAE,SAAS,CAAC;IACvB,CAAC,WAAW,EAAE,aAAa,CAAC;IAC5B,CAAC,aAAa,EAAE,yBAAyB,CAAC;IAC1C,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,SAAS,EAAE,UAAU,CAAC;IACvB,CAAC,cAAc,EAAE,oBAAoB,CAAC;IACtC,CAAC,gBAAgB,EAAE,iBAAiB,CAAC;IACrC,CAAC,YAAY,EAAE,kBAAkB,CAAC;IAClC,CAAC,WAAW,EAAE,KAAK,CAAC;IACpB,CAAC,cAAc,EAAE,gBAAgB,CAAC;IAClC,CAAC,SAAS,EAAE,kBAAkB,CAAC;IAC/B,CAAC,cAAc,EAAE,sBAAsB,CAAC;IACxC,CAAC,OAAO,EAAE,YAAY,CAAC;IACvB,CAAC,WAAW,EAAE,kBAAkB,CAAC;IACjC,CAAC,aAAa,EAAE,cAAc,CAAC;IAC/B,CAAC,eAAe,EAAE,YAAY,CAAC;IAC/B,CAAC,cAAc,EAAE,oBAAoB,CAAC;IACtC,CAAC,WAAW,EAAE,oBAAoB,CAAC;IACnC,CAAC,WAAW,EAAE,kBAAkB,CAAC;IACjC,CAAC,UAAU,EAAE,eAAe,CAAC;IAC7B,CAAC,cAAc,EAAE,kBAAkB,CAAC;IACpC,CAAC,SAAS,EAAE,UAAU,CAAC;IACvB,CAAC,UAAU,EAAE,UAAU,CAAC;IACxB,CAAC,WAAW,EAAE,SAAS,CAAC;IACxB,CAAC,SAAS,EAAE,WAAW,CAAC;IACxB,CAAC,WAAW,EAAE,mBAAmB,CAAC;IAClC,CAAC,WAAW,EAAE,iBAAiB,CAAC;IAChC,CAAC,QAAQ,EAAE,SAAS,CAAC;IACrB,CAAC,SAAS,EAAE,UAAU,CAAC;IACvB,CAAC,SAAS,EAAE,iBAAiB,CAAC;IAC9B,CAAC,YAAY,EAAE,cAAc,CAAC;IAC9B,CAAC,YAAY,EAAE,gBAAgB,CAAC;IAChC,CAAC,aAAa,EAAE,cAAc,CAAC;IAC/B,CAAC,YAAY,EAAE,cAAc,CAAC;IAC9B,CAAC,cAAc,EAAE,aAAa,CAAC;IAC/B,CAAC,QAAQ,EAAE,0BAA0B,CAAC;IACtC,CAAC,WAAW,EAAE,cAAc,CAAC;IAC7B,CAAC,QAAQ,EAAE,cAAc,CAAC;IAC1B,CAAC,SAAS,EAAE,SAAS,CAAC;IACtB,CAAC,WAAW,EAAE,YAAY,CAAC;IAC3B,CAAC,YAAY,EAAE,WAAW,CAAC;IAC3B,CAAC,cAAc,EAAE,kBAAkB,CAAC;IACpC,CAAC,SAAS,EAAE,gBAAgB,CAAC;IAC7B,CAAC,UAAU,EAAE,gBAAgB,CAAC;IAC9B,CAAC,YAAY,EAAE,WAAW,CAAC;IAC3B,CAAC,UAAU,EAAE,UAAU,CAAC;IACxB,CAAC,SAAS,EAAE,SAAS,CAAC;;;ACnHX,IAAA,SAAS,GAAsB;IAC1C,EAAE;IACF,CAAC,YAAY,EAAE,mBAAmB,CAAC;IACnC,CAAC,YAAY,EAAE,QAAQ,CAAC;IACxB,CAAC,YAAY,EAAE,mBAAmB,CAAC;IACnC,CAAC,SAAS,EAAE,SAAS,CAAC;IACtB,CAAC,WAAW,EAAE,SAAS,CAAC;IACxB,CAAC,WAAW,EAAE,MAAM,CAAC;IACrB,CAAC,WAAW,EAAE,QAAQ,CAAC;IACvB,CAAC,YAAY,EAAE,gBAAgB,CAAC;IAChC,CAAC,UAAU,EAAE,UAAU,CAAC;IACxB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,KAAK,EAAE,KAAK,CAAC;IACd,CAAC,MAAM,EAAE,OAAO,CAAC;IACjB,CAAC,SAAS,EAAE,MAAM,CAAC;IACnB,CAAC,SAAS,EAAE,QAAQ,CAAC;IACrB,CAAC,WAAW,EAAE,OAAO,CAAC;IACtB,CAAC,UAAU,EAAE,OAAO,CAAC;IACrB,CAAC,UAAU,EAAE,gBAAgB,CAAC;IAC9B,CAAC,UAAU,EAAE,QAAQ,CAAC;IACtB,CAAC,QAAQ,EAAE,OAAO,CAAC;IACnB,CAAC,QAAQ,EAAE,QAAQ,CAAC;IACpB,CAAC,WAAW,EAAE,SAAS,CAAC;IACxB,CAAC,WAAW,EAAE,MAAM,CAAC;IACrB,CAAC,cAAc,EAAE,UAAU,CAAC;IAC5B,CAAC,QAAQ,EAAE,MAAM,CAAC;IAClB,CAAC,YAAY,EAAE,YAAY,CAAC;IAC5B,CAAC,WAAW,EAAE,OAAO,CAAC;IACtB,CAAC,UAAU,EAAE,SAAS,CAAC;IACvB,CAAC,WAAW,EAAE,SAAS,CAAC;IACxB,CAAC,cAAc,EAAE,MAAM,CAAC;IACxB,CAAC,QAAQ,EAAE,OAAO,CAAC;IACnB,CAAC,QAAQ,EAAE,QAAQ,CAAC;IACpB,CAAC,WAAW,EAAE,eAAe,CAAC;IAC9B,CAAC,WAAW,EAAE,SAAS,CAAC;IACxB,CAAC,OAAO,EAAE,MAAM,CAAC;IACjB,CAAC,OAAO,EAAE,WAAW,CAAC;IACtB,CAAC,SAAS,EAAE,SAAS,CAAC;IACtB,CAAC,WAAW,EAAE,eAAe,CAAC;IAC9B,CAAC,KAAK,EAAE,KAAK,CAAC;IACd,CAAC,UAAU,EAAE,OAAO,CAAC;IACrB,CAAC,OAAO,EAAE,WAAW,CAAC;IACtB,CAAC,UAAU,EAAE,YAAY,CAAC;IAC1B,CAAC,SAAS,EAAE,OAAO,CAAC;IACpB,CAAC,WAAW,EAAE,WAAW,CAAC;IAC1B,CAAC,UAAU,EAAE,KAAK,CAAC;IACnB,CAAC,YAAY,EAAE,oBAAoB,CAAC;IACpC,CAAC,WAAW,EAAE,SAAS,CAAC;IACxB,CAAC,UAAU,EAAE,UAAU,CAAC;IACxB,CAAC,UAAU,EAAE,QAAQ,CAAC;IACtB,CAAC,cAAc,EAAE,OAAO,CAAC;IACzB,CAAC,KAAK,EAAE,KAAK,CAAC;IACd,CAAC,WAAW,EAAE,cAAc,CAAC;IAC7B,CAAC,QAAQ,EAAE,MAAM,CAAC;IAClB,CAAC,UAAU,EAAE,QAAQ,CAAC;IACtB,CAAC,WAAW,EAAE,MAAM,CAAC;IACrB,CAAC,WAAW,EAAE,YAAY,CAAC;IAC3B,CAAC,YAAY,EAAE,YAAY,CAAC;IAC5B,CAAC,WAAW,EAAE,QAAQ,CAAC;IACvB,CAAC,eAAe,EAAE,eAAe,CAAC;IAClC,CAAC,UAAU,EAAE,MAAM,CAAC;IACpB,CAAC,eAAe,EAAE,YAAY,CAAC;IAC/B,CAAC,SAAS,EAAE,KAAK,CAAC;IAClB,CAAC,aAAa,EAAE,UAAU,CAAC;IAC3B,CAAC,eAAe,EAAE,UAAU,CAAC;IAC7B,CAAC,YAAY,EAAE,WAAW,CAAC;IAC3B,CAAC,UAAU,EAAE,QAAQ,CAAC;IACtB,CAAC,WAAW,EAAE,YAAY,CAAC;IAC3B,CAAC,WAAW,EAAE,QAAQ,CAAC;IACvB,CAAC,WAAW,EAAE,MAAM,CAAC;IACrB,CAAC,WAAW,EAAE,YAAY,CAAC;IAC3B,CAAC,cAAc,EAAE,SAAS,CAAC;IAC3B,CAAC,KAAK,EAAE,KAAK,CAAC;IACd,CAAC,WAAW,EAAE,QAAQ,CAAC;IACvB,CAAC,gBAAgB,EAAE,cAAc,CAAC;IAClC,CAAC,eAAe,EAAE,eAAe,CAAC;IAClC,CAAC,WAAW,EAAE,aAAa,CAAC;IAC5B,CAAC,WAAW,EAAE,SAAS,CAAC;IACxB,CAAC,cAAc,EAAE,YAAY,CAAC;IAC9B,CAAC,UAAU,EAAE,OAAO,CAAC;IACrB,CAAC,YAAY,EAAE,YAAY,CAAC;IAC5B,CAAC,QAAQ,EAAE,YAAY,CAAC;IACxB,CAAC,WAAW,EAAE,cAAc,CAAC;IAC7B,CAAC,aAAa,EAAE,cAAc,CAAC;IAC/B,CAAC,gBAAgB,EAAE,cAAc,CAAC;IAClC,CAAC,aAAa,EAAE,cAAc,CAAC;IAC/B,CAAC,YAAY,EAAE,WAAW,CAAC;IAC3B,CAAC,UAAU,EAAE,cAAc,CAAC;IAC5B,CAAC,UAAU,EAAE,WAAW,CAAC;IACzB,CAAC,WAAW,EAAE,aAAa,CAAC;IAC5B,CAAC,WAAW,EAAE,MAAM,CAAC;IACrB,CAAC,WAAW,EAAE,OAAO,CAAC;IACtB,CAAC,SAAS,EAAE,QAAQ,CAAC;IACrB,CAAC,WAAW,EAAE,MAAM,CAAC;IACrB,CAAC,SAAS,EAAE,MAAM,CAAC;IACnB,CAAC,aAAa,EAAE,WAAW,CAAC;IAC5B,CAAC,QAAQ,EAAE,YAAY,CAAC;IACxB,CAAC,WAAW,EAAE,eAAe,CAAC;IAC9B,CAAC,UAAU,EAAE,SAAS,CAAC;IACvB,CAAC,aAAa,EAAE,aAAa,CAAC;IAC9B,CAAC,aAAa,EAAE,YAAY,CAAC;IAC7B,CAAC,YAAY,EAAE,UAAU,CAAC;IAC1B,CAAC,YAAY,EAAE,YAAY,CAAC;IAC5B,CAAC,YAAY,EAAE,eAAe,CAAC;IAC/B,CAAC,UAAU,EAAE,oBAAoB,CAAC;IAClC,CAAC,YAAY,EAAE,UAAU,CAAC;IAC1B,CAAC,UAAU,EAAE,MAAM,CAAC;IACpB,CAAC,QAAQ,EAAE,WAAW,CAAC;IACvB,CAAC,WAAW,EAAE,QAAQ,CAAC;IACvB,CAAC,YAAY,EAAE,QAAQ,CAAC;IACxB,CAAC,aAAa,EAAE,YAAY,CAAC;IAC7B,CAAC,SAAS,EAAE,QAAQ,CAAC;IACrB,CAAC,WAAW,EAAE,mBAAmB,CAAC;IAClC,CAAC,WAAW,EAAE,eAAe,CAAC;IAC9B,CAAC,WAAW,EAAE,SAAS,CAAC;IACxB,CAAC,QAAQ,EAAE,MAAM,CAAC;;;AClHP,IAAA,QAAQ,GAAgB;AACnC,IAAA,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;AAC/B,IAAA,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AAChC,IAAA,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;AACpC,IAAA,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE,CAAC;AACzC,IAAA,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,CAAC;AACvC,IAAA,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,CAAC;AAC1C,IAAA,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,CAAC;AACxC,IAAA,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,CAAC;AACxC,IAAA,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,CAAC;AACzC,IAAA,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,CAAC;AAC1C,IAAA,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC;AACtC,IAAA,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,CAAC;AACrC,IAAA,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC;AACtC,IAAA,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC;AACtC,IAAA,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,CAAC;AACvC,IAAA,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC;AACrC,IAAA,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC;AACvC,IAAA,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,CAAC;AACzC,IAAA,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC;AACvC,IAAA,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC;AACpC,IAAA,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC;AACnC,IAAA,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,CAAC;AACzC,IAAA,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC;AACvC,IAAA,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,CAAC;AACzC,IAAA,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC;AACvC,IAAA,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,CAAC;AACvC,IAAA,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,CAAC;AACzC,IAAA,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC;AACrC,IAAA,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC;AACrC,IAAA,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,CAAC;AACxC,IAAA,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC;AACrC,IAAA,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC;AACrC,IAAA,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,CAAC;AACtC,IAAA,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,CAAC;AACxC,IAAA,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,CAAC;AACnC,IAAA,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC;AACpC,IAAA,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC;AAClC,IAAA,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,CAAC;AACxC,IAAA,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC;AACjC,IAAA,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC;AACrC,IAAA,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC;AACpC,IAAA,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC;AACpC,IAAA,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,CAAC;AACtC,IAAA,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,CAAC;AACtC,IAAA,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,CAAC;AACtC,IAAA,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,CAAC;AACvC,IAAA,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,CAAC;AACvC,IAAA,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC;AACrC,IAAA,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC;AACvC,IAAA,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,CAAC;AACzC,IAAA,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC;AACjC,IAAA,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,CAAC;AACxC,IAAA,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC;AACrC,IAAA,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC;AACrC,IAAA,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC;AACrC,IAAA,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,CAAC;AACvC,IAAA,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,CAAC;AACvC,IAAA,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,CAAC;AACvC,IAAA,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,CAAC;AAC1C,IAAA,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC;AACvC,IAAA,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,CAAC;AACzC,IAAA,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC;AACtC,IAAA,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,CAAC;AACxC,IAAA,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,GAAG,CAAC;AAC3C,IAAA,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,CAAC;AACzC,IAAA,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,CAAC;AACvC,IAAA,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,CAAC;AACzC,IAAA,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC;AACrC,IAAA,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC;AACpC,IAAA,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,CAAC;AACtC,IAAA,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,CAAC;AACvC,IAAA,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,CAAC;AACnC,IAAA,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC;AACpC,IAAA,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,CAAC;AACrC,IAAA,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,CAAC;AACrC,IAAA,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,CAAC;AACvC,IAAA,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,CAAC;AACxC,IAAA,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,CAAC;AACxC,IAAA,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC;AACrC,IAAA,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,CAAC;AACxC,IAAA,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,CAAC;AACnC,IAAA,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,CAAC;AACtC,IAAA,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,CAAC;AACxC,IAAA,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,CAAC;AACxC,IAAA,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,CAAC;AACxC,IAAA,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,CAAC;AACtC,IAAA,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,CAAC;AACtC,IAAA,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,CAAC;AACrC,IAAA,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,CAAC;AACvC,IAAA,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC;AACrC,IAAA,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC;AACrC,IAAA,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC;AACrC,IAAA,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC;AACpC,IAAA,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC;AACrC,IAAA,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC;AACpC,IAAA,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC;AACpC,IAAA,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC;AACpC,IAAA,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC;AACpC,IAAA,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,CAAC;AACvC,IAAA,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,CAAC;AACvC,IAAA,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,CAAC;AACxC,IAAA,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,CAAC;AACvC,IAAA,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,CAAC;AACtC,IAAA,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC;AACpC,IAAA,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,CAAC;AACrC,IAAA,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC;AACpC,IAAA,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC;AACnC,IAAA,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,CAAC;AACtC,IAAA,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,CAAC;AACrC,IAAA,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,CAAC;AACvC,IAAA,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC;AACtC,IAAA,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC;AACnC,IAAA,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,CAAC;AACtC,IAAA,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC;AACpC,IAAA,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC;AACpC,IAAA,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;;;ACpHrB,IAAA,eAAe,GAAa;AACvC,IAAA,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IAC1E,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC3E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;AAC5E,IAAA,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;;;AClBrD,IAAA,QAAQ,GAAa;AAChC,IAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IAC7E,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IACzE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;AAC5E,IAAA,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;;;AC1CjB,IAAA,QAAQ,GAAa;AAChC,IAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IAC3E,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IACzE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;AAC5E,IAAA,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;;;ACxCtD,SAAU,iBAAiB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"}
\ No newline at end of file
diff --git a/dist/quran-meta.js b/dist/quran-meta.js
index 40da556..c28c474 100644
--- a/dist/quran-meta.js
+++ b/dist/quran-meta.js
@@ -1,760 +1,2108 @@
 /*! 
- * Quran Meta library 2.4.13
+ * Quran Meta library 2.5.1
  *
  * Released under the MIT license
  */
 
 (function (global, factory) {
-    typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
-    typeof define === 'function' && define.amd ? define(['exports'], factory) :
-    (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.quranMeta = {}));
+  typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
+  typeof define === 'function' && define.amd ? define(['exports'], factory) :
+  (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.quranMeta = {}));
 })(this, (function (exports) { 'use strict';
 
-    /******************************************************************************
-    Copyright (c) Microsoft Corporation.
-
-    Permission to use, copy, modify, and/or distribute this software for any
-    purpose with or without fee is hereby granted.
-
-    THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
-    REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-    AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
-    INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
-    LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
-    OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-    PERFORMANCE OF THIS SOFTWARE.
-    ***************************************************************************** */
-
-    function __spreadArray(to, from, pack) {
-        if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
-            if (ar || !(i in from)) {
-                if (!ar) ar = Array.prototype.slice.call(from, 0, i);
-                ar[i] = from[i];
-            }
-        }
-        return to.concat(ar || Array.prototype.slice.call(from));
-    }
-
-    var meta = Object.freeze({
-        numAyas: 6236,
-        numSuras: 114,
-        numPages: 604,
-        numJuzs: 30,
-        manzilCount: 7,
-    });
-
-    var suraNames$1 = [
-        [],
-        ["Al-Faatiha", "The Opening"],
-        ["Al-Baqara", "The Cow"],
-        ["Aal-i-Imraan", "The Family of Imraan"],
-        ["An-Nisaa", "The Women"],
-        ["Al-Maaida", "The Table"],
-        ["Al-An'aam", "The Cattle"],
-        ["Al-A'raaf", "The Heights"],
-        ["Al-Anfaal", "The Spoils of War"],
-        ["At-Tawba", "The Repentance"],
-        ["Yunus", "Jonas"],
-        ["Hud", "Hud"],
-        ["Yusuf", "Joseph"],
-        ["Ar-Ra'd", "The Thunder"],
-        ["Ibrahim", "Abraham"],
-        ["Al-Hijr", "The Rock"],
-        ["An-Nahl", "The Bee"],
-        ["Al-Israa", "The Night Journey"],
-        ["Al-Kahf", "The Cave"],
-        ["Maryam", "Mary"],
-        ["Taa-Haa", "Taa-Haa"],
-        ["Al-Anbiyaa", "The Prophets"],
-        ["Al-Hajj", "The Pilgrimage"],
-        ["Al-Muminoon", "The Believers"],
-        ["An-Noor", "The Light"],
-        ["Al-Furqaan", "The Criterion"],
-        ["Ash-Shu'araa", "The Poets"],
-        ["An-Naml", "The Ant"],
-        ["Al-Qasas", "The Stories"],
-        ["Al-Ankaboot", "The Spider"],
-        ["Ar-Room", "The Romans"],
-        ["Luqman", "Luqman"],
-        ["As-Sajda", "The Prostration"],
-        ["Al-Ahzaab", "The Clans"],
-        ["Saba", "Sheba"],
-        ["Faatir", "The Originator"],
-        ["Yaseen", "Yaseen"],
-        ["As-Saaffaat", "Those drawn up in Ranks"],
-        ["Saad", "The letter Saad"],
-        ["Az-Zumar", "The Groups"],
-        ["Al-Ghaafir", "The Forgiver"],
-        ["Fussilat", "Explained in detail"],
-        ["Ash-Shura", "Consultation"],
-        ["Az-Zukhruf", "Ornaments of gold"],
-        ["Ad-Dukhaan", "The Smoke"],
-        ["Al-Jaathiya", "Crouching"],
-        ["Al-Ahqaf", "The Dunes"],
-        ["Muhammad", "Muhammad"],
-        ["Al-Fath", "The Victory"],
-        ["Al-Hujuraat", "The Inner Apartments"],
-        ["Qaaf", "The letter Qaaf"],
-        ["Adh-Dhaariyat", "The Winnowing Winds"],
-        ["At-Tur", "The Mount"],
-        ["An-Najm", "The Star"],
-        ["Al-Qamar", "The Moon"],
-        ["Ar-Rahmaan", "The Beneficent"],
-        ["Al-Waaqia", "The Inevitable"],
-        ["Al-Hadid", "The Iron"],
-        ["Al-Mujaadila", "The Pleading Woman"],
-        ["Al-Hashr", "The Exile"],
-        ["Al-Mumtahana", "She that is to be examined"],
-        ["As-Saff", "The Ranks"],
-        ["Al-Jumu'a", "Friday"],
-        ["Al-Munaafiqoon", "The Hypocrites"],
-        ["At-Taghaabun", "Mutual Disillusion"],
-        ["At-Talaaq", "Divorce"],
-        ["At-Tahrim", "The Prohibition"],
-        ["Al-Mulk", "The Sovereignty"],
-        ["Al-Qalam", "The Pen"],
-        ["Al-Haaqqa", "The Reality"],
-        ["Al-Ma'aarij", "The Ascending Stairways"],
-        ["Nooh", "Noah"],
-        ["Al-Jinn", "The Jinn"],
-        ["Al-Muzzammil", "The Enshrouded One"],
-        ["Al-Muddaththir", "The Cloaked One"],
-        ["Al-Qiyaama", "The Resurrection"],
-        ["Al-Insaan", "Man"],
-        ["Al-Mursalaat", "The Emissaries"],
-        ["An-Naba", "The Announcement"],
-        ["An-Naazi'aat", "Those who drag forth"],
-        ["Abasa", "He frowned"],
-        ["At-Takwir", "The Overthrowing"],
-        ["Al-Infitaar", "The Cleaving"],
-        ["Al-Mutaffifin", "Defrauding"],
-        ["Al-Inshiqaaq", "The Splitting Open"],
-        ["Al-Burooj", "The Constellations"],
-        ["At-Taariq", "The Morning Star"],
-        ["Al-A'laa", "The Most High"],
-        ["Al-Ghaashiya", "The Overwhelming"],
-        ["Al-Fajr", "The Dawn"],
-        ["Al-Balad", "The City"],
-        ["Ash-Shams", "The Sun"],
-        ["Al-Lail", "The Night"],
-        ["Ad-Dhuhaa", "The Morning Hours"],
-        ["Ash-Sharh", "The Consolation"],
-        ["At-Tin", "The Fig"],
-        ["Al-Alaq", "The Clot"],
-        ["Al-Qadr", "The Power, Fate"],
-        ["Al-Bayyina", "The Evidence"],
-        ["Az-Zalzala", "The Earthquake"],
-        ["Al-Aadiyaat", "The Chargers"],
-        ["Al-Qaari'a", "The Calamity"],
-        ["At-Takaathur", "Competition"],
-        ["Al-Asr", "The Declining Day, Epoch"],
-        ["Al-Humaza", "The Traducer"],
-        ["Al-Fil", "The Elephant"],
-        ["Quraish", "Quraysh"],
-        ["Al-Maa'un", "Almsgiving"],
-        ["Al-Kawthar", "Abundance"],
-        ["Al-Kaafiroon", "The Disbelievers"],
-        ["An-Nasr", "Divine Support"],
-        ["Al-Masad", "The Palm Fibre"],
-        ["Al-Ikhlaas", "Sincerity"],
-        ["Al-Falaq", "The Dawn"],
-        ["An-Naas", "Mankind"],
-    ];
-
-    var suraNames = [
-        [],
-        ["Аль-Фатиха", "Открывающая Коран"],
-        ["Аль-Бакара", "Корова"],
-        ["Аль ‘Имран", "Семейство ‘Имрана"],
-        ["Ан-Ниса", "Женщины"],
-        ["Аль-Маида", "Трапеза"],
-        ["Аль-Ан‘ам", "Скот"],
-        ["Аль-А‘раф", "Ограды"],
-        ["Аль-Анфаль", "Военная добыча"],
-        ["Ат-Тауба", "Покаяние"],
-        ["Юнус", "Иона"],
-        ["Худ", "Худ"],
-        ["Юсуф", "Иосиф"],
-        ["Ар-Ра‘д", "Гром"],
-        ["Ибрахим", "Авраам"],
-        ["Аль-Хиджр", "Хиджр"],
-        ["Ан-Нахль", "Пчёлы"],
-        ["Аль-Исра", "Ночной перенос"],
-        ["Аль-Кяхф", "Пещера"],
-        ["Марьям", "Мария"],
-        ["Та, ха", "Та, ха"],
-        ["Аль-Анбия", "Пророки"],
-        ["Аль-Хаджж", "Хадж"],
-        ["Аль-Му’минун", "Верующие"],
-        ["Ан-Нур", "Свет"],
-        ["Аль-Фуркан", "Различение"],
-        ["Аш-Шу‘ара", "Поэты"],
-        ["Ан-Намль", "Муравьи"],
-        ["Аль-Касас", "Рассказ"],
-        ["Аль-‘Анкабут", "Паук"],
-        ["Ар-Рум", "Ромеи"],
-        ["Лукман", "Лукман"],
-        ["Ас-Саджда", "Земной поклон"],
-        ["Аль-Ахзаб", "Полчища"],
-        ["Саба’", "Сава"],
-        ["Фатыр", "Зиждитель"],
-        ["Йа, син", "Йа, син"],
-        ["Ас-Саффат", "Стоящие в ряд"],
-        ["Сад", "Сад"],
-        ["Аз-Зумар", "Толпы"],
-        ["Гафир", "Прощающий"],
-        ["Фуссылят", "Разъяснены"],
-        ["Аш-Шура", "Совет"],
-        ["Аз-Зухруф", "Украшения"],
-        ["Ад-Духан", "Дым"],
-        ["Аль-Джасия", "Коленопреклонённые"],
-        ["Аль-Ахкаф", "Барханы"],
-        ["Мухаммад", "Мухаммад"],
-        ["Аль-Фатх", "Победа"],
-        ["Аль-Худжурат", "Покои"],
-        ["Каф", "Каф"],
-        ["Аз-Зарият", "Рассеивающие"],
-        ["Ат-Тур", "Гора"],
-        ["Ан-Наджм", "Звезда"],
-        ["Аль-Камар", "Луна"],
-        ["Ар-Рахман", "Милостивый"],
-        ["Аль-Ваки‘а", "Неизбежное"],
-        ["Аль-Хадид", "Железо"],
-        ["Аль-Муджадиля", "Препирающаяся"],
-        ["Аль-Хашр", "Сбор"],
-        ["Аль-Мумтахана", "Испытуемая"],
-        ["Ас-Сафф", "Ряд"],
-        ["Аль-Джуму‘а", "Собрание"],
-        ["Аль-Мунафикун", "Лицемеры"],
-        ["Ат-Тагабун", "Обделение"],
-        ["Ат-Таляк", "Развод"],
-        ["Ат-Тахрим", "Запрещение"],
-        ["Аль-Мульк", "Власть"],
-        ["Аль-Калям", "Перо"],
-        ["Аль-Хакка", "Неминуемое"],
-        ["Аль-Ма‘аридж", "Степени"],
-        ["Нух", "Ной"],
-        ["Аль-Джинн", "Джинны"],
-        ["Аль-Муззаммиль", "Закутавшийся"],
-        ["Аль-Муддассир", "Завернувшийся"],
-        ["Аль-Кияма", "Воскресение"],
-        ["Аль-Инсан", "Человек"],
-        ["Аль-Мурсалят", "Посылаемые"],
-        ["Ан-Наба’", "Весть"],
-        ["Ан-Нази‘ат", "Вырывающие"],
-        ["‘Абаса", "Нахмурился"],
-        ["Ат-Таквир", "Сворачивание"],
-        ["Аль-Инфитар", "Раскалывание"],
-        ["Аль-Мутаффифин", "Обвешивающие"],
-        ["Аль-Иншикак", "Разверзнется"],
-        ["Аль-Бурудж", "Созвездия"],
-        ["Ат-Тарик", "Ночной гость"],
-        ["Аль-А‘ля", "Всевышний"],
-        ["Аль-Гашия", "Покрывающее"],
-        ["Аль-Фаджр", "Заря"],
-        ["Аль-Баляд", "Город"],
-        ["Аш-Шамс", "Солнце"],
-        ["Аль-Лейль", "Ночь"],
-        ["Ад-Духа", "Утро"],
-        ["Аль-Инширах", "Раскрытие"],
-        ["Ат-Тин", "Смоковница"],
-        ["Аль-‘Аляк", "Сгусток крови"],
-        ["Аль-Кадр", "Величие"],
-        ["Аль-Баййина", "Ясный довод"],
-        ["Аз-Зальзаля", "Сотрясение"],
-        ["Аль-‘Адият", "Скачущие"],
-        ["Аль-Кари‘а", "Поражающее"],
-        ["Ат-Такясур", "Соперничество"],
-        ["Аль-‘Аср", "Предвечернее время"],
-        ["Аль-Хумаза", "Хулитель"],
-        ["Аль-Филь", "Слон"],
-        ["Курайш", "Курайшиты"],
-        ["Аль-Ма‘ун", "Утварь"],
-        ["Аль-Каусар", "Каусар"],
-        ["Аль-Кяфирун", "Неверующие"],
-        ["Ан-Наср", "Помощь"],
-        ["Аль-Масад", "Пальмовые волокна"],
-        ["Аль-Ихляс", "Очищение веры"],
-        ["Аль-Фаляк", "Рассвет"],
-        ["Ан-Нас", "Люди"],
-    ];
-
-    var SuraList = [
-        [-1, -1, -1, -1, "", false, -1],
-        [0, 7, 5, 1, "الفاتحة", true, 1],
-        [7, 286, 87, 40, "البقرة", false, 2],
-        [293, 200, 89, 20, "آل عمران", false, 50],
-        [493, 176, 92, 24, "النساء", false, 77],
-        [669, 120, 112, 16, "المائدة", false, 107],
-        [789, 165, 55, 20, "الأنعام", true, 128],
-        [954, 206, 39, 24, "الأعراف", true, 151],
-        [1160, 75, 88, 10, "الأنفال", false, 177],
-        [1235, 129, 113, 16, "التوبة", false, 187],
-        [1364, 109, 51, 11, "يونس", true, 208],
-        [1473, 123, 52, 10, "هود", true, 222],
-        [1596, 111, 53, 12, "يوسف", true, 236],
-        [1707, 43, 96, 6, "الرعد", false, 249],
-        [1750, 52, 72, 7, "ابراهيم", true, 256],
-        [1802, 99, 54, 6, "الحجر", true, 262],
-        [1901, 128, 70, 16, "النحل", true, 268],
-        [2029, 111, 50, 12, "الإسراء", true, 282],
-        [2140, 110, 69, 12, "الكهف", true, 294],
-        [2250, 98, 44, 6, "مريم", true, 305],
-        [2348, 135, 45, 8, "طه", true, 313],
-        [2483, 112, 73, 7, "الأنبياء", true, 322],
-        [2595, 78, 103, 10, "الحج", false, 332],
-        [2673, 118, 74, 6, "المؤمنون", true, 342],
-        [2791, 64, 102, 9, "النور", false, 350],
-        [2855, 77, 42, 6, "الفرقان", true, 360],
-        [2932, 227, 47, 11, "الشعراء", true, 367],
-        [3159, 93, 48, 7, "النمل", true, 377],
-        [3252, 88, 49, 8, "القصص", true, 386],
-        [3340, 69, 85, 7, "العنكبوت", true, 397],
-        [3409, 60, 84, 6, "الروم", true, 405],
-        [3469, 34, 57, 3, "لقمان", true, 411],
-        [3503, 30, 75, 3, "السجدة", true, 415],
-        [3533, 73, 90, 9, "الأحزاب", false, 418],
-        [3606, 54, 58, 6, "سبإ", true, 428],
-        [3660, 45, 43, 5, "فاطر", true, 435],
-        [3705, 83, 41, 5, "يس", true, 441],
-        [3788, 182, 56, 5, "الصافات", true, 446],
-        [3970, 88, 38, 5, "ص", true, 453],
-        [4058, 75, 59, 8, "الزمر", true, 459],
-        [4133, 85, 60, 9, "غافر", true, 468],
-        [4218, 54, 61, 6, "فصلت", true, 477],
-        [4272, 53, 62, 5, "الشورى", true, 483],
-        [4325, 89, 63, 7, "الزخرف", true, 490],
-        [4414, 59, 64, 3, "الدخان", true, 496],
-        [4473, 37, 65, 4, "الجاثية", true, 499],
-        [4510, 35, 66, 4, "الأحقاف", true, 503],
-        [4545, 38, 95, 4, "محمد", false, 507],
-        [4583, 29, 111, 4, "الفتح", false, 511],
-        [4612, 18, 106, 2, "الحجرات", false, 516],
-        [4630, 45, 34, 3, "ق", true, 518],
-        [4675, 60, 67, 3, "الذاريات", true, 521],
-        [4735, 49, 76, 2, "الطور", true, 524],
-        [4784, 62, 23, 3, "النجم", true, 526],
-        [4846, 55, 37, 3, "القمر", true, 529],
-        [4901, 78, 97, 3, "الرحمن", false, 532],
-        [4979, 96, 46, 3, "الواقعة", true, 535],
-        [5075, 29, 94, 4, "الحديد", false, 538],
-        [5104, 22, 105, 3, "المجادلة", false, 542],
-        [5126, 24, 101, 3, "الحشر", false, 546],
-        [5150, 13, 91, 2, "الممتحنة", false, 549],
-        [5163, 14, 109, 2, "الصف", false, 552],
-        [5177, 11, 110, 2, "الجمعة", false, 553],
-        [5188, 11, 104, 2, "المنافقون", false, 555],
-        [5199, 18, 108, 2, "التغابن", false, 556],
-        [5217, 12, 99, 2, "الطلاق", false, 558],
-        [5229, 12, 107, 2, "التحريم", false, 560],
-        [5241, 30, 77, 2, "الملك", true, 562],
-        [5271, 52, 2, 2, "القلم", true, 565],
-        [5323, 52, 78, 2, "الحاقة", true, 567],
-        [5375, 44, 79, 2, "المعارج", true, 569],
-        [5419, 28, 71, 2, "نوح", true, 571],
-        [5447, 28, 40, 2, "الجن", true, 572],
-        [5475, 20, 3, 2, "المزمل", true, 574],
-        [5495, 56, 4, 2, "المدثر", true, 576],
-        [5551, 40, 31, 2, "القيامة", true, 578],
-        [5591, 31, 98, 2, "الانسان", false, 579],
-        [5622, 50, 33, 2, "المرسلات", true, 581],
-        [5672, 40, 80, 2, "النبإ", true, 582],
-        [5712, 46, 81, 2, "النازعات", true, 584],
-        [5758, 42, 24, 1, "عبس", true, 585],
-        [5800, 29, 7, 1, "التكوير", true, 586],
-        [5829, 19, 82, 1, "الإنفطار", true, 587],
-        [5848, 36, 86, 1, "المطففين", true, 588],
-        [5884, 25, 83, 1, "الإنشقاق", true, 589],
-        [5909, 22, 27, 1, "البروج", true, 590],
-        [5931, 17, 36, 1, "الطارق", true, 591],
-        [5948, 19, 8, 1, "الأعلى", true, 592],
-        [5967, 26, 68, 1, "الغاشية", true, 592],
-        [5993, 30, 10, 1, "الفجر", true, 593],
-        [6023, 20, 35, 1, "البلد", true, 594],
-        [6043, 15, 26, 1, "الشمس", true, 595],
-        [6058, 21, 9, 1, "الليل", true, 596],
-        [6079, 11, 11, 1, "الضحى", true, 596],
-        [6090, 8, 12, 1, "الشرح", true, 596],
-        [6098, 8, 28, 1, "التين", true, 597],
-        [6106, 19, 1, 1, "العلق", true, 597],
-        [6125, 5, 25, 1, "القدر", true, 598],
-        [6130, 8, 100, 1, "البينة", false, 599],
-        [6138, 8, 93, 1, "الزلزلة", false, 599],
-        [6146, 11, 14, 1, "العاديات", true, 600],
-        [6157, 11, 30, 1, "القارعة", true, 600],
-        [6168, 8, 16, 1, "التكاثر", true, 600],
-        [6176, 3, 13, 1, "العصر", true, 601],
-        [6179, 9, 32, 1, "الهمزة", true, 601],
-        [6188, 5, 19, 1, "الفيل", true, 601],
-        [6193, 4, 29, 1, "قريش", true, 602],
-        [6197, 7, 17, 1, "الماعون", true, 602],
-        [6204, 3, 15, 1, "الكوثر", true, 602],
-        [6207, 6, 18, 1, "الكافرون", true, 603],
-        [6213, 3, 114, 1, "النصر", false, 603],
-        [6216, 5, 6, 1, "المسد", true, 603],
-        [6221, 4, 22, 1, "الإخلاص", true, 604],
-        [6225, 5, 20, 1, "الفلق", true, 604],
-        [6230, 6, 21, 1, "الناس", true, 604],
-        [6236, 0, -1, -1, "", false, -1],
-    ];
+  const meta = Object.freeze({
+    numAyas: 6236,
+    numSuras: 114,
+    numPages: 604,
+    numJuzs: 30,
+    manzilCount: 7
+  });
 
-    var HizbQuarterList = [
-        0, 1, 33, 51, 67, 82, 99, 113, 131, 149, 165, 184, 196, 210, 226, 240, 250,
-        260, 270, 279, 290, 308, 326, 345, 368, 386, 406, 426, 446, 464, 479, 494,
-        505, 517, 529, 551, 567, 581, 593, 607, 628, 641, 656, 670, 681, 696, 710,
-        720, 736, 751, 766, 778, 802, 825, 848, 863, 884, 900, 916, 930, 940, 955,
-        985, 1001, 1019, 1042, 1071, 1096, 1110, 1125, 1143, 1161, 1182, 1201, 1221,
-        1236, 1254, 1269, 1281, 1295, 1310, 1328, 1346, 1357, 1375, 1390, 1417, 1435,
-        1454, 1479, 1497, 1514, 1534, 1557, 1581, 1603, 1626, 1649, 1673, 1697, 1712,
-        1726, 1742, 1760, 1778, 1803, 1852, 1902, 1931, 1952, 1976, 1991, 2012, 2030,
-        2052, 2079, 2099, 2128, 2157, 2172, 2191, 2215, 2239, 2272, 2309, 2349, 2403,
-        2431, 2459, 2484, 2512, 2534, 2566, 2596, 2614, 2633, 2655, 2674, 2709, 2748,
-        2792, 2812, 2826, 2844, 2856, 2876, 2908, 2933, 2984, 3043, 3113, 3160, 3186,
-        3215, 3241, 3264, 3281, 3303, 3328, 3341, 3366, 3386, 3410, 3440, 3463, 3491,
-        3514, 3534, 3551, 3564, 3584, 3593, 3616, 3630, 3652, 3675, 3701, 3733, 3765,
-        3810, 3871, 3933, 3991, 4022, 4066, 4090, 4111, 4134, 4154, 4174, 4199, 4227,
-        4243, 4265, 4285, 4299, 4323, 4349, 4382, 4431, 4485, 4511, 4531, 4555, 4578,
-        4601, 4613, 4626, 4657, 4706, 4759, 4810, 4855, 4902, 4980, 5054, 5091, 5105,
-        5118, 5137, 5157, 5178, 5192, 5218, 5230, 5242, 5272, 5324, 5394, 5448, 5495,
-        5552, 5610, 5673, 5759, 5830, 5885, 5949, 6024, 6091, 6155, 6237,
-    ];
+  const SuraList = [
+    [-1, -1, -1, -1, "", false, -1],
+    [0, 7, 5, 1, "\u0627\u0644\u0641\u0627\u062A\u062D\u0629", true, 1],
+    [7, 286, 87, 40, "\u0627\u0644\u0628\u0642\u0631\u0629", false, 2],
+    [293, 200, 89, 20, "\u0622\u0644 \u0639\u0645\u0631\u0627\u0646", false, 50],
+    [493, 176, 92, 24, "\u0627\u0644\u0646\u0633\u0627\u0621", false, 77],
+    [669, 120, 112, 16, "\u0627\u0644\u0645\u0627\u0626\u062F\u0629", false, 107],
+    [789, 165, 55, 20, "\u0627\u0644\u0623\u0646\u0639\u0627\u0645", true, 128],
+    [954, 206, 39, 24, "\u0627\u0644\u0623\u0639\u0631\u0627\u0641", true, 151],
+    [1160, 75, 88, 10, "\u0627\u0644\u0623\u0646\u0641\u0627\u0644", false, 177],
+    [1235, 129, 113, 16, "\u0627\u0644\u062A\u0648\u0628\u0629", false, 187],
+    [1364, 109, 51, 11, "\u064A\u0648\u0646\u0633", true, 208],
+    [1473, 123, 52, 10, "\u0647\u0648\u062F", true, 222],
+    [1596, 111, 53, 12, "\u064A\u0648\u0633\u0641", true, 236],
+    [1707, 43, 96, 6, "\u0627\u0644\u0631\u0639\u062F", false, 249],
+    [1750, 52, 72, 7, "\u0627\u0628\u0631\u0627\u0647\u064A\u0645", true, 256],
+    [1802, 99, 54, 6, "\u0627\u0644\u062D\u062C\u0631", true, 262],
+    [1901, 128, 70, 16, "\u0627\u0644\u0646\u062D\u0644", true, 268],
+    [2029, 111, 50, 12, "\u0627\u0644\u0625\u0633\u0631\u0627\u0621", true, 282],
+    [2140, 110, 69, 12, "\u0627\u0644\u0643\u0647\u0641", true, 294],
+    [2250, 98, 44, 6, "\u0645\u0631\u064A\u0645", true, 305],
+    [2348, 135, 45, 8, "\u0637\u0647", true, 313],
+    [2483, 112, 73, 7, "\u0627\u0644\u0623\u0646\u0628\u064A\u0627\u0621", true, 322],
+    [2595, 78, 103, 10, "\u0627\u0644\u062D\u062C", false, 332],
+    [2673, 118, 74, 6, "\u0627\u0644\u0645\u0624\u0645\u0646\u0648\u0646", true, 342],
+    [2791, 64, 102, 9, "\u0627\u0644\u0646\u0648\u0631", false, 350],
+    [2855, 77, 42, 6, "\u0627\u0644\u0641\u0631\u0642\u0627\u0646", true, 360],
+    [2932, 227, 47, 11, "\u0627\u0644\u0634\u0639\u0631\u0627\u0621", true, 367],
+    [3159, 93, 48, 7, "\u0627\u0644\u0646\u0645\u0644", true, 377],
+    [3252, 88, 49, 8, "\u0627\u0644\u0642\u0635\u0635", true, 386],
+    [3340, 69, 85, 7, "\u0627\u0644\u0639\u0646\u0643\u0628\u0648\u062A", true, 397],
+    [3409, 60, 84, 6, "\u0627\u0644\u0631\u0648\u0645", true, 405],
+    [3469, 34, 57, 3, "\u0644\u0642\u0645\u0627\u0646", true, 411],
+    [3503, 30, 75, 3, "\u0627\u0644\u0633\u062C\u062F\u0629", true, 415],
+    [3533, 73, 90, 9, "\u0627\u0644\u0623\u062D\u0632\u0627\u0628", false, 418],
+    [3606, 54, 58, 6, "\u0633\u0628\u0625", true, 428],
+    [3660, 45, 43, 5, "\u0641\u0627\u0637\u0631", true, 435],
+    [3705, 83, 41, 5, "\u064A\u0633", true, 441],
+    [3788, 182, 56, 5, "\u0627\u0644\u0635\u0627\u0641\u0627\u062A", true, 446],
+    [3970, 88, 38, 5, "\u0635", true, 453],
+    [4058, 75, 59, 8, "\u0627\u0644\u0632\u0645\u0631", true, 459],
+    [4133, 85, 60, 9, "\u063A\u0627\u0641\u0631", true, 468],
+    [4218, 54, 61, 6, "\u0641\u0635\u0644\u062A", true, 477],
+    [4272, 53, 62, 5, "\u0627\u0644\u0634\u0648\u0631\u0649", true, 483],
+    [4325, 89, 63, 7, "\u0627\u0644\u0632\u062E\u0631\u0641", true, 490],
+    [4414, 59, 64, 3, "\u0627\u0644\u062F\u062E\u0627\u0646", true, 496],
+    [4473, 37, 65, 4, "\u0627\u0644\u062C\u0627\u062B\u064A\u0629", true, 499],
+    [4510, 35, 66, 4, "\u0627\u0644\u0623\u062D\u0642\u0627\u0641", true, 503],
+    [4545, 38, 95, 4, "\u0645\u062D\u0645\u062F", false, 507],
+    [4583, 29, 111, 4, "\u0627\u0644\u0641\u062A\u062D", false, 511],
+    [4612, 18, 106, 2, "\u0627\u0644\u062D\u062C\u0631\u0627\u062A", false, 516],
+    [4630, 45, 34, 3, "\u0642", true, 518],
+    [4675, 60, 67, 3, "\u0627\u0644\u0630\u0627\u0631\u064A\u0627\u062A", true, 521],
+    [4735, 49, 76, 2, "\u0627\u0644\u0637\u0648\u0631", true, 524],
+    [4784, 62, 23, 3, "\u0627\u0644\u0646\u062C\u0645", true, 526],
+    [4846, 55, 37, 3, "\u0627\u0644\u0642\u0645\u0631", true, 529],
+    [4901, 78, 97, 3, "\u0627\u0644\u0631\u062D\u0645\u0646", false, 532],
+    [4979, 96, 46, 3, "\u0627\u0644\u0648\u0627\u0642\u0639\u0629", true, 535],
+    [5075, 29, 94, 4, "\u0627\u0644\u062D\u062F\u064A\u062F", false, 538],
+    [5104, 22, 105, 3, "\u0627\u0644\u0645\u062C\u0627\u062F\u0644\u0629", false, 542],
+    [5126, 24, 101, 3, "\u0627\u0644\u062D\u0634\u0631", false, 546],
+    [5150, 13, 91, 2, "\u0627\u0644\u0645\u0645\u062A\u062D\u0646\u0629", false, 549],
+    [5163, 14, 109, 2, "\u0627\u0644\u0635\u0641", false, 552],
+    [5177, 11, 110, 2, "\u0627\u0644\u062C\u0645\u0639\u0629", false, 553],
+    [5188, 11, 104, 2, "\u0627\u0644\u0645\u0646\u0627\u0641\u0642\u0648\u0646", false, 555],
+    [5199, 18, 108, 2, "\u0627\u0644\u062A\u063A\u0627\u0628\u0646", false, 556],
+    [5217, 12, 99, 2, "\u0627\u0644\u0637\u0644\u0627\u0642", false, 558],
+    [5229, 12, 107, 2, "\u0627\u0644\u062A\u062D\u0631\u064A\u0645", false, 560],
+    [5241, 30, 77, 2, "\u0627\u0644\u0645\u0644\u0643", true, 562],
+    [5271, 52, 2, 2, "\u0627\u0644\u0642\u0644\u0645", true, 565],
+    [5323, 52, 78, 2, "\u0627\u0644\u062D\u0627\u0642\u0629", true, 567],
+    [5375, 44, 79, 2, "\u0627\u0644\u0645\u0639\u0627\u0631\u062C", true, 569],
+    [5419, 28, 71, 2, "\u0646\u0648\u062D", true, 571],
+    [5447, 28, 40, 2, "\u0627\u0644\u062C\u0646", true, 572],
+    [5475, 20, 3, 2, "\u0627\u0644\u0645\u0632\u0645\u0644", true, 574],
+    [5495, 56, 4, 2, "\u0627\u0644\u0645\u062F\u062B\u0631", true, 576],
+    [5551, 40, 31, 2, "\u0627\u0644\u0642\u064A\u0627\u0645\u0629", true, 578],
+    [5591, 31, 98, 2, "\u0627\u0644\u0627\u0646\u0633\u0627\u0646", false, 579],
+    [5622, 50, 33, 2, "\u0627\u0644\u0645\u0631\u0633\u0644\u0627\u062A", true, 581],
+    [5672, 40, 80, 2, "\u0627\u0644\u0646\u0628\u0625", true, 582],
+    [5712, 46, 81, 2, "\u0627\u0644\u0646\u0627\u0632\u0639\u0627\u062A", true, 584],
+    [5758, 42, 24, 1, "\u0639\u0628\u0633", true, 585],
+    [5800, 29, 7, 1, "\u0627\u0644\u062A\u0643\u0648\u064A\u0631", true, 586],
+    [5829, 19, 82, 1, "\u0627\u0644\u0625\u0646\u0641\u0637\u0627\u0631", true, 587],
+    [5848, 36, 86, 1, "\u0627\u0644\u0645\u0637\u0641\u0641\u064A\u0646", true, 588],
+    [5884, 25, 83, 1, "\u0627\u0644\u0625\u0646\u0634\u0642\u0627\u0642", true, 589],
+    [5909, 22, 27, 1, "\u0627\u0644\u0628\u0631\u0648\u062C", true, 590],
+    [5931, 17, 36, 1, "\u0627\u0644\u0637\u0627\u0631\u0642", true, 591],
+    [5948, 19, 8, 1, "\u0627\u0644\u0623\u0639\u0644\u0649", true, 592],
+    [5967, 26, 68, 1, "\u0627\u0644\u063A\u0627\u0634\u064A\u0629", true, 592],
+    [5993, 30, 10, 1, "\u0627\u0644\u0641\u062C\u0631", true, 593],
+    [6023, 20, 35, 1, "\u0627\u0644\u0628\u0644\u062F", true, 594],
+    [6043, 15, 26, 1, "\u0627\u0644\u0634\u0645\u0633", true, 595],
+    [6058, 21, 9, 1, "\u0627\u0644\u0644\u064A\u0644", true, 596],
+    [6079, 11, 11, 1, "\u0627\u0644\u0636\u062D\u0649", true, 596],
+    [6090, 8, 12, 1, "\u0627\u0644\u0634\u0631\u062D", true, 596],
+    [6098, 8, 28, 1, "\u0627\u0644\u062A\u064A\u0646", true, 597],
+    [6106, 19, 1, 1, "\u0627\u0644\u0639\u0644\u0642", true, 597],
+    [6125, 5, 25, 1, "\u0627\u0644\u0642\u062F\u0631", true, 598],
+    [6130, 8, 100, 1, "\u0627\u0644\u0628\u064A\u0646\u0629", false, 599],
+    [6138, 8, 93, 1, "\u0627\u0644\u0632\u0644\u0632\u0644\u0629", false, 599],
+    [6146, 11, 14, 1, "\u0627\u0644\u0639\u0627\u062F\u064A\u0627\u062A", true, 600],
+    [6157, 11, 30, 1, "\u0627\u0644\u0642\u0627\u0631\u0639\u0629", true, 600],
+    [6168, 8, 16, 1, "\u0627\u0644\u062A\u0643\u0627\u062B\u0631", true, 600],
+    [6176, 3, 13, 1, "\u0627\u0644\u0639\u0635\u0631", true, 601],
+    [6179, 9, 32, 1, "\u0627\u0644\u0647\u0645\u0632\u0629", true, 601],
+    [6188, 5, 19, 1, "\u0627\u0644\u0641\u064A\u0644", true, 601],
+    [6193, 4, 29, 1, "\u0642\u0631\u064A\u0634", true, 602],
+    [6197, 7, 17, 1, "\u0627\u0644\u0645\u0627\u0639\u0648\u0646", true, 602],
+    [6204, 3, 15, 1, "\u0627\u0644\u0643\u0648\u062B\u0631", true, 602],
+    [6207, 6, 18, 1, "\u0627\u0644\u0643\u0627\u0641\u0631\u0648\u0646", true, 603],
+    [6213, 3, 114, 1, "\u0627\u0644\u0646\u0635\u0631", false, 603],
+    [6216, 5, 6, 1, "\u0627\u0644\u0645\u0633\u062F", true, 603],
+    [6221, 4, 22, 1, "\u0627\u0644\u0625\u062E\u0644\u0627\u0635", true, 604],
+    [6225, 5, 20, 1, "\u0627\u0644\u0641\u0644\u0642", true, 604],
+    [6230, 6, 21, 1, "\u0627\u0644\u0646\u0627\u0633", true, 604],
+    [6236, 0, -1, -1, "", false, -1]
+  ];
 
-    var RukuList = [
-        0, 1, 8, 15, 28, 37, 47, 54, 67, 69, 79, 90, 94, 104, 111, 120, 129, 137, 149,
-        155, 160, 171, 175, 184, 190, 196, 204, 218, 224, 229, 236, 239, 243, 250,
-        256, 261, 265, 268, 274, 281, 289, 291, 294, 303, 314, 324, 335, 348, 357,
-        365, 374, 385, 395, 403, 414, 423, 437, 442, 449, 465, 474, 483, 494, 504,
-        508, 516, 519, 527, 536, 544, 553, 564, 570, 581, 585, 590, 594, 598, 606,
-        609, 620, 628, 635, 646, 656, 665, 670, 675, 681, 689, 696, 704, 713, 720,
-        726, 736, 747, 756, 763, 770, 778, 785, 790, 800, 810, 820, 831, 840, 845,
-        850, 860, 872, 880, 884, 890, 900, 911, 919, 930, 934, 940, 944, 955, 965,
-        980, 986, 994, 1002, 1008, 1013, 1019, 1027, 1039, 1048, 1054, 1063, 1081,
-        1084, 1096, 1102, 1106, 1112, 1117, 1126, 1136, 1143, 1161, 1171, 1180, 1189,
-        1198, 1205, 1209, 1219, 1225, 1230, 1236, 1242, 1252, 1260, 1265, 1273, 1278,
-        1295, 1302, 1308, 1316, 1325, 1335, 1346, 1354, 1358, 1365, 1375, 1385, 1395,
-        1405, 1418, 1425, 1435, 1447, 1457, 1468, 1474, 1482, 1498, 1509, 1523, 1534,
-        1542, 1557, 1569, 1583, 1597, 1603, 1617, 1626, 1632, 1639, 1646, 1654, 1665,
-        1676, 1690, 1701, 1708, 1715, 1726, 1734, 1739, 1745, 1751, 1757, 1763, 1772,
-        1778, 1785, 1792, 1803, 1818, 1828, 1847, 1863, 1882, 1902, 1911, 1923, 1927,
-        1936, 1942, 1952, 1962, 1967, 1972, 1978, 1985, 1991, 2002, 2012, 2021, 2030,
-        2040, 2052, 2060, 2070, 2082, 2090, 2100, 2107, 2114, 2123, 2130, 2141, 2153,
-        2158, 2163, 2172, 2185, 2190, 2194, 2200, 2211, 2223, 2242, 2251, 2266, 2291,
-        2301, 2316, 2333, 2349, 2373, 2403, 2425, 2438, 2453, 2464, 2477, 2484, 2494,
-        2513, 2525, 2534, 2559, 2577, 2596, 2606, 2618, 2621, 2629, 2634, 2644, 2653,
-        2660, 2668, 2674, 2696, 2706, 2724, 2751, 2766, 2792, 2802, 2812, 2818, 2826,
-        2832, 2842, 2849, 2853, 2856, 2865, 2876, 2890, 2900, 2916, 2933, 2942, 2966,
-        2985, 3002, 3037, 3055, 3073, 3092, 3108, 3124, 3160, 3174, 3191, 3204, 3218,
-        3226, 3242, 3253, 3266, 3274, 3281, 3295, 3303, 3313, 3328, 3341, 3354, 3363,
-        3371, 3385, 3392, 3404, 3410, 3420, 3429, 3437, 3450, 3463, 3470, 3481, 3489,
-        3504, 3515, 3526, 3534, 3542, 3554, 3561, 3568, 3574, 3586, 3592, 3602, 3607,
-        3616, 3628, 3637, 3643, 3652, 3661, 3668, 3675, 3687, 3698, 3706, 3718, 3738,
-        3756, 3773, 3789, 3810, 3863, 3902, 3927, 3971, 3985, 3997, 4011, 4035, 4059,
-        4068, 4080, 4090, 4100, 4111, 4122, 4129, 4134, 4143, 4154, 4161, 4171, 4184,
-        4194, 4202, 4212, 4219, 4227, 4237, 4244, 4251, 4263, 4273, 4282, 4292, 4302,
-        4316, 4326, 4341, 4351, 4361, 4371, 4382, 4393, 4415, 4444, 4457, 4474, 4485,
-        4495, 4500, 4511, 4521, 4531, 4537, 4546, 4557, 4565, 4574, 4584, 4594, 4601,
-        4610, 4613, 4623, 4631, 4646, 4660, 4676, 4699, 4722, 4736, 4764, 4785, 4810,
-        4817, 4847, 4869, 4887, 4902, 4927, 4947, 4980, 5018, 5054, 5076, 5086, 5095,
-        5101, 5105, 5111, 5118, 5127, 5137, 5144, 5151, 5157, 5164, 5173, 5178, 5186,
-        5189, 5197, 5200, 5210, 5218, 5225, 5230, 5237, 5242, 5256, 5272, 5305, 5324,
-        5361, 5376, 5411, 5420, 5440, 5448, 5467, 5476, 5495, 5496, 5527, 5552, 5582,
-        5592, 5614, 5623, 5663, 5673, 5703, 5713, 5739, 5759, 5801, 5830, 5849, 5885,
-        5910, 5932, 5949, 5968, 5994, 6024, 6044, 6059, 6080, 6091, 6099, 6107, 6126,
-        6131, 6139, 6147, 6158, 6169, 6177, 6180, 6189, 6194, 6198, 6205, 6208, 6214,
-        6217, 6222, 6226, 6231, 6237,
-    ];
+  function getSurahMeta(surah) {
+    checkValidSurah(surah);
+    return SuraList[surah];
+  }
 
-    var PageList = [
-        0, 1, 8, 13, 24, 32, 37, 45, 56, 65, 69, 77, 84, 91, 96, 101, 109, 113, 120,
-        127, 134, 142, 149, 153, 161, 171, 177, 184, 189, 194, 198, 204, 210, 218,
-        223, 227, 232, 238, 241, 245, 253, 256, 260, 264, 267, 272, 277, 282, 289,
-        290, 294, 303, 309, 316, 323, 331, 339, 346, 355, 364, 371, 377, 385, 394,
-        402, 409, 415, 426, 434, 442, 447, 451, 459, 467, 474, 480, 488, 494, 500,
-        505, 508, 513, 517, 520, 527, 531, 538, 545, 553, 559, 568, 573, 580, 585,
-        588, 595, 599, 607, 615, 621, 628, 634, 641, 648, 656, 664, 669, 672, 675,
-        679, 683, 687, 693, 701, 706, 711, 715, 720, 727, 734, 740, 746, 752, 759,
-        765, 773, 778, 783, 790, 798, 808, 817, 825, 834, 842, 849, 858, 863, 871,
-        880, 884, 891, 900, 908, 914, 921, 927, 932, 936, 941, 947, 955, 966, 977,
-        985, 992, 998, 1006, 1012, 1022, 1028, 1036, 1042, 1050, 1059, 1075, 1085,
-        1092, 1098, 1104, 1110, 1114, 1118, 1125, 1133, 1142, 1150, 1161, 1169, 1177,
-        1186, 1194, 1201, 1206, 1213, 1222, 1230, 1236, 1242, 1249, 1256, 1262, 1267,
-        1272, 1276, 1283, 1290, 1297, 1304, 1308, 1315, 1322, 1329, 1335, 1342, 1347,
-        1353, 1358, 1365, 1371, 1379, 1385, 1390, 1398, 1407, 1418, 1426, 1435, 1443,
-        1453, 1462, 1471, 1479, 1486, 1493, 1502, 1511, 1519, 1527, 1536, 1545, 1555,
-        1562, 1571, 1582, 1591, 1601, 1611, 1619, 1627, 1634, 1640, 1649, 1660, 1666,
-        1675, 1683, 1692, 1700, 1708, 1713, 1721, 1726, 1736, 1742, 1750, 1756, 1761,
-        1769, 1775, 1784, 1793, 1803, 1818, 1834, 1854, 1873, 1893, 1908, 1916, 1928,
-        1936, 1944, 1956, 1966, 1974, 1981, 1989, 1995, 2004, 2012, 2020, 2030, 2037,
-        2047, 2057, 2068, 2079, 2088, 2096, 2105, 2116, 2126, 2134, 2145, 2156, 2161,
-        2168, 2175, 2186, 2194, 2202, 2215, 2224, 2238, 2251, 2262, 2276, 2289, 2302,
-        2315, 2327, 2346, 2361, 2386, 2400, 2413, 2425, 2436, 2447, 2462, 2474, 2484,
-        2494, 2508, 2519, 2528, 2541, 2556, 2565, 2574, 2585, 2596, 2601, 2611, 2619,
-        2626, 2634, 2642, 2651, 2660, 2668, 2674, 2691, 2701, 2716, 2733, 2748, 2763,
-        2778, 2792, 2802, 2812, 2819, 2823, 2828, 2835, 2845, 2850, 2853, 2858, 2867,
-        2876, 2888, 2899, 2911, 2923, 2933, 2952, 2972, 2993, 3016, 3044, 3069, 3092,
-        3116, 3139, 3160, 3173, 3182, 3195, 3204, 3215, 3223, 3236, 3248, 3258, 3266,
-        3274, 3281, 3288, 3296, 3303, 3312, 3323, 3330, 3337, 3347, 3355, 3364, 3371,
-        3379, 3386, 3393, 3404, 3415, 3425, 3434, 3442, 3451, 3460, 3470, 3481, 3489,
-        3498, 3504, 3515, 3524, 3534, 3540, 3549, 3556, 3564, 3569, 3577, 3584, 3588,
-        3596, 3607, 3614, 3621, 3629, 3638, 3646, 3655, 3664, 3672, 3679, 3691, 3699,
-        3705, 3718, 3733, 3746, 3760, 3776, 3789, 3813, 3840, 3865, 3891, 3915, 3942,
-        3971, 3987, 3997, 4013, 4032, 4054, 4064, 4069, 4080, 4090, 4099, 4106, 4115,
-        4126, 4133, 4141, 4150, 4159, 4167, 4174, 4183, 4192, 4200, 4211, 4219, 4230,
-        4239, 4248, 4257, 4265, 4273, 4283, 4288, 4295, 4304, 4317, 4324, 4336, 4348,
-        4359, 4373, 4386, 4399, 4415, 4433, 4454, 4474, 4487, 4496, 4506, 4516, 4525,
-        4531, 4539, 4546, 4557, 4565, 4575, 4584, 4593, 4599, 4607, 4612, 4617, 4624,
-        4631, 4646, 4666, 4682, 4706, 4727, 4750, 4767, 4785, 4811, 4829, 4853, 4874,
-        4896, 4918, 4942, 4969, 4996, 5030, 5056, 5079, 5087, 5094, 5100, 5105, 5111,
-        5116, 5126, 5130, 5136, 5143, 5151, 5156, 5162, 5169, 5178, 5186, 5193, 5200,
-        5209, 5218, 5223, 5230, 5237, 5242, 5254, 5268, 5287, 5314, 5332, 5358, 5386,
-        5415, 5430, 5448, 5461, 5476, 5495, 5513, 5543, 5571, 5597, 5617, 5642, 5673,
-        5703, 5728, 5759, 5801, 5830, 5855, 5883, 5910, 5932, 5964, 5994, 6017, 6044,
-        6073, 6099, 6126, 6138, 6156, 6177, 6194, 6208, 6222, 6237,
-    ];
-
-    function ayaStringSplitter(str) {
-        var _a = str.trim().split(":"), surah = _a[0], ayahs = _a[1];
-        if (!ayahs) {
-            throw "Error in data " + str;
-        }
-        return [
-            +surah,
-            ayahs.includes("-")
-                ? ayahs.split("-").map(Number)
-                : +ayahs,
-        ];
-    }
+  function getAyaCountinSura(surah) {
+    return getSurahMeta(surah)[1];
+  }
 
-    var JuzList = [
-        0, 1, 149, 260, 386, 517, 641, 751, 900, 1042, 1201, 1328, 1479, 1649, 1803,
-        2030, 2215, 2484, 2674, 2876, 3215, 3386, 3564, 3733, 4090, 4265, 4511, 4706,
-        5105, 5242, 5673, 6237,
-    ];
-    var ManzilList = [0, 1, 670, 1365, 2030, 2933, 3789, 4631, 6237];
-    var SajdaList = [
-        [1160, "recommended"],
-        [1722, "recommended"],
-        [1951, "recommended"],
-        [2138, "recommended"],
-        [2308, "recommended"],
-        [2613, "recommended"],
-        [2672, "recommended"],
-        [2915, "recommended"],
-        [3185, "recommended"],
-        [3518, "obligatory"],
-        [3994, "recommended"],
-        [4256, "obligatory"],
-        [4846, "obligatory"],
-        [5905, "recommended"],
-        [6125, "obligatory"],
-    ];
-    function binarySearch(ar, el, compare_fn) {
-        if (compare_fn === void 0) { compare_fn = function (a, b) { return a - b; }; }
-        var m = 0;
-        var n = ar.length - 1;
-        while (m <= n) {
-            var k = (n + m) >> 1;
-            var cmp = compare_fn(el, ar[k]);
-            if (cmp > 0) {
-                m = k + 1;
-            }
-            else if (cmp < 0) {
-                n = k - 1;
-            }
-            else {
-                return k;
-            }
-        }
-        return -m - 1;
-    }
-    function checkValidAyahId(ayaId) {
-        if (ayaId < 1 || ayaId > meta.numAyas)
-            throw new RangeError("ayaid must be between 1 and " + meta.numAyas);
-        return true;
-    }
-    function checkValidSurah(surah, checkOnly) {
-        if (checkOnly === void 0) { checkOnly = false; }
-        if (surah < 1 || surah > meta.numSuras) {
-            if (checkOnly)
-                return false;
-            throw new RangeError("Surah must be between 1 and " + meta.numSuras);
-        }
-        return true;
-    }
-    function findSurahByAyaid(ayaId) {
-        checkValidAyahId(ayaId);
-        var suraNum = SuraList.findIndex(function (x) { return x[0] >= ayaId; }) - 1;
-        return suraNum < 0
-            ? [114, ayaId - SuraList[114][0]]
-            : [suraNum, ayaId - SuraList[suraNum][0]];
+  function checkValidSurah(surah, checkOnly = false) {
+    if (typeof surah !== "number" || !Number.isInteger(surah)) {
+      if (checkOnly) return false;
+      throw new TypeError("Ayah ID must be an integer");
     }
-    function findJuzByAyaid(ayaId) {
-        checkValidAyahId(ayaId);
-        return JuzList.findIndex(function (x) { return x > ayaId; }) - 1;
+    if (surah < 1 || surah > meta.numSuras) {
+      if (checkOnly) return false;
+      throw new RangeError("Surah must be between 1 and " + meta.numSuras);
     }
-    function findJuzHizbByAyaid(ayaId) {
-        checkValidAyahId(ayaId);
-        var juz = findJuzByAyaid(ayaId);
-        var id = HizbQuarterList.findIndex(function (x) { return x > ayaId; }) - 1;
-        return { juz: juz, hizb: id % 8 || 8, id: id };
+    return true;
+  }
+  function checkValidSurahAyah(surah, ayah, checkOnly = false) {
+    if (!checkValidSurah(surah, checkOnly)) return false;
+    if (ayah < 1 || ayah > getAyaCountinSura(surah)) {
+      if (checkOnly) return false;
+      throw new RangeError("Ayah must be between 1 and " + getAyaCountinSura(surah));
     }
-    function findJuz(surah, ayah, ayahMode) {
-        if (ayah === void 0) { ayah = 1; }
-        if (ayahMode === void 0) { ayahMode = false; }
-        var ayahId = ayahMode
-            ? ayah
-            : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
-        return findJuzByAyaid(ayahId);
+    return true;
+  }
+  function checkValidAyahId(ayahId, checkOnly = false) {
+    if (typeof ayahId !== "number" || !Number.isInteger(ayahId)) {
+      if (checkOnly) return false;
+      throw new TypeError("Ayah ID must be an integer");
     }
-    function findJuzHizb(surah, ayah, ayahMode) {
-        if (ayah === void 0) { ayah = 1; }
-        if (ayahMode === void 0) { ayahMode = false; }
-        var ayahId = ayahMode
-            ? ayah
-            : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
-        return findJuzHizbByAyaid(ayahId);
+    if (ayahId < 1 || ayahId > meta.numAyas) {
+      if (checkOnly) return false;
+      throw new RangeError("Ayah ID must be between 1 and " + meta.numAyas);
     }
-    function isAyahJuzFirst(surah, ayah, ayahMode) {
-        if (ayahMode === void 0) { ayahMode = false; }
-        var ayahId = ayahMode
-            ? (checkValidAyahId(ayah) && ayah)
-            : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
-        return binarySearch(JuzList, ayahId);
-    }
-    function isAyahPageFirst(surah, ayah, ayahMode) {
-        if (ayahMode === void 0) { ayahMode = false; }
-        var ayahId = ayahMode
-            ? (checkValidAyahId(ayah) && ayah)
-            : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
-        return binarySearch(PageList, ayahId);
-    }
-    function findJuzAndShift(surah, ayah, ayahMode) {
-        if (ayahMode === void 0) { ayahMode = false; }
-        var ayahId = ayahMode
-            ? (checkValidAyahId(ayah) && ayah)
-            : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
-        var juz = findJuzByAyaid(ayahId);
-        var leftAyahId = JuzList[juz];
-        if (surah < 0)
-            surah = findSurahByAyaid(leftAyahId)[0];
-        var surahStartAyahId = SuraList[surah][0];
-        return {
-            juz: juz,
-            ayahsBetweenJuzSurah: surahStartAyahId - leftAyahId + 1,
-            leftAyahId: leftAyahId,
-        };
-    }
-    function findJuzMetaBySurah(surah, ayah) {
-        if (ayah === void 0) { ayah = 1; }
-        var _a = findJuzAndShift(surah, ayah), leftjuz = _a.juz, ayahsBetweenJuzSurah = _a.ayahsBetweenJuzSurah, leftAyahId = _a.leftAyahId;
-        var rightJuz = leftjuz;
-        while (rightJuz < meta.numJuzs &&
-            findSurahByAyaid(JuzList[rightJuz + 1])[0] == surah)
-            rightJuz++;
-        return {
-            leftjuz: leftjuz,
-            ayahsBetweenJuzSurah: ayahsBetweenJuzSurah,
-            rightJuz: rightJuz,
-            leftAyahId: leftAyahId,
-            rightAyahId: JuzList[rightJuz + 1],
-        };
-    }
-    function getSurahMeta(surah) {
-        checkValidSurah(surah);
-        return SuraList[surah];
-    }
-    function findPage(surah, ayah, ayahMode) {
-        if (ayahMode === void 0) { ayahMode = false; }
-        var ayahId = ayahMode
-            ? (checkValidAyahId(ayah) && ayah)
-            : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
-        return PageList.findIndex(function (x) { return x > ayahId; }) - 1;
-    }
-    function findAyaidBySurah(surah, ayah) {
-        var startAyahId = getSurahMeta(surah)[0];
-        return startAyahId + ayah;
+    return true;
+  }
+
+  function ayaStringSplitter(str) {
+    const [surahStr, ayahsStr] = str.trim().split(":");
+    const surah = parseInt(surahStr, 10);
+    if (isNaN(surah)) {
+      throw "Error in surah format " + str;
     }
-    function getAyaCountinSura(surah) {
-        return getSurahMeta(surah)[1];
+    if (!ayahsStr) {
+      throw "Error in data " + str;
     }
-    function nextAyah(surah, ayah) {
-        if (surah < 1 || surah > meta.numSuras)
-            throw new RangeError("Surah must be between 1 and " + meta.numSuras);
-        var ayaid = findAyaidBySurah(surah, ayah);
-        return findSurahByAyaid(ayaid == meta.numAyas ? 1 : ayaid + 1);
+    let ayahs;
+    if (ayahsStr.includes("-")) {
+      ayahs = ayahsStr.split("-").map((a) => {
+        const ayah = parseInt(a, 10);
+        if (isNaN(ayah) || ayah === 0) {
+          throw "Error in ayah " + a;
+        }
+        return ayah;
+      });
+      if (ayahs[0] > ayahs[1]) throw "Error in ayah range " + str;
+    } else {
+      ayahs = parseInt(ayahsStr, 10);
+      if (isNaN(ayahs) || ayahs === 0) {
+        throw "Error in data " + str;
+      }
+      checkValidSurahAyah(surah, ayahs);
     }
-    function prevAyah(surah, ayah) {
-        checkValidSurah(surah);
-        var ayaid = findAyaidBySurah(surah, ayah);
-        return findSurahByAyaid(ayaid == 1 ? meta.numAyas : ayaid - 1);
+    return [surah, ayahs];
+  }
+
+  function findAyaidBySurah(surah, ayah) {
+    checkValidSurahAyah(surah, ayah);
+    const [startAyahId] = getSurahMeta(surah);
+    return startAyahId + ayah;
+  }
+
+  const JuzList = [
+    0,
+    1,
+    149,
+    260,
+    386,
+    517,
+    641,
+    751,
+    900,
+    1042,
+    1201,
+    1328,
+    1479,
+    1649,
+    1803,
+    2030,
+    2215,
+    2484,
+    2674,
+    2876,
+    3215,
+    3386,
+    3564,
+    3733,
+    4090,
+    4265,
+    4511,
+    4706,
+    5105,
+    5242,
+    5673,
+    6237
+  ];
+
+  function findJuzByAyaid(ayaId) {
+    checkValidAyahId(ayaId);
+    return JuzList.findIndex((x) => x > ayaId) - 1;
+  }
+
+  function findJuz(surah, ayah = 1, ayahMode = false) {
+    const ayahId = ayahMode ? ayah : checkValidSurahAyah(surah, ayah) && findAyaidBySurah(surah, ayah);
+    return findJuzByAyaid(ayahId);
+  }
+
+  function findSurahByAyaid(ayaId) {
+    checkValidAyahId(ayaId);
+    const suraNum = SuraList.findIndex((x) => x[0] >= ayaId) - 1;
+    return [suraNum, ayaId - SuraList[suraNum][0]];
+  }
+
+  function findJuzAndShift(surah, ayah, ayahMode = false) {
+    const ayahId = ayahMode ? checkValidAyahId(ayah) && ayah : checkValidSurah(surah) && findAyaidBySurah(surah, ayah);
+    const juz = findJuzByAyaid(ayahId);
+    const leftAyahId = JuzList[juz];
+    if (ayahMode) [surah] = findSurahByAyaid(ayahId);
+    const [surahStartAyahId] = SuraList[surah];
+    return {
+      juz,
+      ayahsBetweenJuzSurah: surahStartAyahId - leftAyahId + 1,
+      leftAyahId
+    };
+  }
+
+  const HizbQuarterList = [
+    0,
+    1,
+    33,
+    51,
+    67,
+    82,
+    99,
+    113,
+    131,
+    149,
+    165,
+    184,
+    196,
+    210,
+    226,
+    240,
+    250,
+    260,
+    270,
+    279,
+    290,
+    308,
+    326,
+    345,
+    368,
+    386,
+    406,
+    426,
+    446,
+    464,
+    479,
+    494,
+    505,
+    517,
+    529,
+    551,
+    567,
+    581,
+    593,
+    607,
+    628,
+    641,
+    656,
+    670,
+    681,
+    696,
+    710,
+    720,
+    736,
+    751,
+    766,
+    778,
+    802,
+    825,
+    848,
+    863,
+    884,
+    900,
+    916,
+    930,
+    940,
+    955,
+    985,
+    1001,
+    1019,
+    1042,
+    1071,
+    1096,
+    1110,
+    1125,
+    1143,
+    1161,
+    1182,
+    1201,
+    1221,
+    1236,
+    1254,
+    1269,
+    1281,
+    1295,
+    1310,
+    1328,
+    1346,
+    1357,
+    1375,
+    1390,
+    1417,
+    1435,
+    1454,
+    1479,
+    1497,
+    1514,
+    1534,
+    1557,
+    1581,
+    1603,
+    1626,
+    1649,
+    1673,
+    1697,
+    1712,
+    1726,
+    1742,
+    1760,
+    1778,
+    1803,
+    1852,
+    1902,
+    1931,
+    1952,
+    1976,
+    1991,
+    2012,
+    2030,
+    2052,
+    2079,
+    2099,
+    2128,
+    2157,
+    2172,
+    2191,
+    2215,
+    2239,
+    2272,
+    2309,
+    2349,
+    2403,
+    2431,
+    2459,
+    2484,
+    2512,
+    2534,
+    2566,
+    2596,
+    2614,
+    2633,
+    2655,
+    2674,
+    2709,
+    2748,
+    2792,
+    2812,
+    2826,
+    2844,
+    2856,
+    2876,
+    2908,
+    2933,
+    2984,
+    3043,
+    3113,
+    3160,
+    3186,
+    3215,
+    3241,
+    3264,
+    3281,
+    3303,
+    3328,
+    3341,
+    3366,
+    3386,
+    3410,
+    3440,
+    3463,
+    3491,
+    3514,
+    3534,
+    3551,
+    3564,
+    3584,
+    3593,
+    3616,
+    3630,
+    3652,
+    3675,
+    3701,
+    3733,
+    3765,
+    3810,
+    3871,
+    3933,
+    3991,
+    4022,
+    4066,
+    4090,
+    4111,
+    4134,
+    4154,
+    4174,
+    4199,
+    4227,
+    4243,
+    4265,
+    4285,
+    4299,
+    4323,
+    4349,
+    4382,
+    4431,
+    4485,
+    4511,
+    4531,
+    4555,
+    4578,
+    4601,
+    4613,
+    4626,
+    4657,
+    4706,
+    4759,
+    4810,
+    4855,
+    4902,
+    4980,
+    5054,
+    5091,
+    5105,
+    5118,
+    5137,
+    5157,
+    5178,
+    5192,
+    5218,
+    5230,
+    5242,
+    5272,
+    5324,
+    5394,
+    5448,
+    5495,
+    5552,
+    5610,
+    5673,
+    5759,
+    5830,
+    5885,
+    5949,
+    6024,
+    6091,
+    6155,
+    6237
+  ];
+
+  function findJuzHizbByAyaid(ayaId) {
+    checkValidAyahId(ayaId);
+    const juz = findJuzByAyaid(ayaId);
+    const quarterIndex = HizbQuarterList.findIndex((x) => x > ayaId) - 1;
+    const hizb = quarterIndex % 8 || 8;
+    return { juz, hizb, id: quarterIndex };
+  }
+
+  function findJuzHizb(surah, ayah = 1, ayahMode = false) {
+    const ayahId = ayahMode ? ayah : checkValidSurah(surah) && findAyaidBySurah(surah, ayah);
+    return findJuzHizbByAyaid(ayahId);
+  }
+
+  function findJuzMetaBySurah(surah, ayah = 1) {
+    const {
+      juz: leftjuz,
+      ayahsBetweenJuzSurah,
+      leftAyahId
+    } = findJuzAndShift(surah, ayah);
+    let rightJuz = leftjuz;
+    while (rightJuz < meta.numJuzs && findSurahByAyaid(JuzList[rightJuz + 1])[0] === surah) {
+      rightJuz++;
     }
-    function pageMeta(pageNum) {
-        if (pageNum < 1 || pageNum > meta.numPages)
-            throw new RangeError("pagenum must be between 1 and " + meta.numPages);
-        var _a = [
-            PageList[pageNum],
-            PageList[pageNum + 1],
-        ], curPage = _a[0], nextPage = _a[1];
-        return {
-            pageNum: pageNum,
-            first: findSurahByAyaid(curPage),
-            last: __spreadArray([], findSurahByAyaid(nextPage - 1), true),
-        };
+    return {
+      leftjuz,
+      ayahsBetweenJuzSurah,
+      rightJuz,
+      leftAyahId,
+      rightAyahId: JuzList[rightJuz + 1]
+    };
+  }
+
+  const PageList = [
+    0,
+    1,
+    8,
+    13,
+    24,
+    32,
+    37,
+    45,
+    56,
+    65,
+    69,
+    77,
+    84,
+    91,
+    96,
+    101,
+    109,
+    113,
+    120,
+    127,
+    134,
+    142,
+    149,
+    153,
+    161,
+    171,
+    177,
+    184,
+    189,
+    194,
+    198,
+    204,
+    210,
+    218,
+    223,
+    227,
+    232,
+    238,
+    241,
+    245,
+    253,
+    256,
+    260,
+    264,
+    267,
+    272,
+    277,
+    282,
+    289,
+    290,
+    294,
+    303,
+    309,
+    316,
+    323,
+    331,
+    339,
+    346,
+    355,
+    364,
+    371,
+    377,
+    385,
+    394,
+    402,
+    409,
+    415,
+    426,
+    434,
+    442,
+    447,
+    451,
+    459,
+    467,
+    474,
+    480,
+    488,
+    494,
+    500,
+    505,
+    508,
+    513,
+    517,
+    520,
+    527,
+    531,
+    538,
+    545,
+    553,
+    559,
+    568,
+    573,
+    580,
+    585,
+    588,
+    595,
+    599,
+    607,
+    615,
+    621,
+    628,
+    634,
+    641,
+    648,
+    656,
+    664,
+    669,
+    672,
+    675,
+    679,
+    683,
+    687,
+    693,
+    701,
+    706,
+    711,
+    715,
+    720,
+    727,
+    734,
+    740,
+    746,
+    752,
+    759,
+    765,
+    773,
+    778,
+    783,
+    790,
+    798,
+    808,
+    817,
+    825,
+    834,
+    842,
+    849,
+    858,
+    863,
+    871,
+    880,
+    884,
+    891,
+    900,
+    908,
+    914,
+    921,
+    927,
+    932,
+    936,
+    941,
+    947,
+    955,
+    966,
+    977,
+    985,
+    992,
+    998,
+    1006,
+    1012,
+    1022,
+    1028,
+    1036,
+    1042,
+    1050,
+    1059,
+    1075,
+    1085,
+    1092,
+    1098,
+    1104,
+    1110,
+    1114,
+    1118,
+    1125,
+    1133,
+    1142,
+    1150,
+    1161,
+    1169,
+    1177,
+    1186,
+    1194,
+    1201,
+    1206,
+    1213,
+    1222,
+    1230,
+    1236,
+    1242,
+    1249,
+    1256,
+    1262,
+    1267,
+    1272,
+    1276,
+    1283,
+    1290,
+    1297,
+    1304,
+    1308,
+    1315,
+    1322,
+    1329,
+    1335,
+    1342,
+    1347,
+    1353,
+    1358,
+    1365,
+    1371,
+    1379,
+    1385,
+    1390,
+    1398,
+    1407,
+    1418,
+    1426,
+    1435,
+    1443,
+    1453,
+    1462,
+    1471,
+    1479,
+    1486,
+    1493,
+    1502,
+    1511,
+    1519,
+    1527,
+    1536,
+    1545,
+    1555,
+    1562,
+    1571,
+    1582,
+    1591,
+    1601,
+    1611,
+    1619,
+    1627,
+    1634,
+    1640,
+    1649,
+    1660,
+    1666,
+    1675,
+    1683,
+    1692,
+    1700,
+    1708,
+    1713,
+    1721,
+    1726,
+    1736,
+    1742,
+    1750,
+    1756,
+    1761,
+    1769,
+    1775,
+    1784,
+    1793,
+    1803,
+    1818,
+    1834,
+    1854,
+    1873,
+    1893,
+    1908,
+    1916,
+    1928,
+    1936,
+    1944,
+    1956,
+    1966,
+    1974,
+    1981,
+    1989,
+    1995,
+    2004,
+    2012,
+    2020,
+    2030,
+    2037,
+    2047,
+    2057,
+    2068,
+    2079,
+    2088,
+    2096,
+    2105,
+    2116,
+    2126,
+    2134,
+    2145,
+    2156,
+    2161,
+    2168,
+    2175,
+    2186,
+    2194,
+    2202,
+    2215,
+    2224,
+    2238,
+    2251,
+    2262,
+    2276,
+    2289,
+    2302,
+    2315,
+    2327,
+    2346,
+    2361,
+    2386,
+    2400,
+    2413,
+    2425,
+    2436,
+    2447,
+    2462,
+    2474,
+    2484,
+    2494,
+    2508,
+    2519,
+    2528,
+    2541,
+    2556,
+    2565,
+    2574,
+    2585,
+    2596,
+    2601,
+    2611,
+    2619,
+    2626,
+    2634,
+    2642,
+    2651,
+    2660,
+    2668,
+    2674,
+    2691,
+    2701,
+    2716,
+    2733,
+    2748,
+    2763,
+    2778,
+    2792,
+    2802,
+    2812,
+    2819,
+    2823,
+    2828,
+    2835,
+    2845,
+    2850,
+    2853,
+    2858,
+    2867,
+    2876,
+    2888,
+    2899,
+    2911,
+    2923,
+    2933,
+    2952,
+    2972,
+    2993,
+    3016,
+    3044,
+    3069,
+    3092,
+    3116,
+    3139,
+    3160,
+    3173,
+    3182,
+    3195,
+    3204,
+    3215,
+    3223,
+    3236,
+    3248,
+    3258,
+    3266,
+    3274,
+    3281,
+    3288,
+    3296,
+    3303,
+    3312,
+    3323,
+    3330,
+    3337,
+    3347,
+    3355,
+    3364,
+    3371,
+    3379,
+    3386,
+    3393,
+    3404,
+    3415,
+    3425,
+    3434,
+    3442,
+    3451,
+    3460,
+    3470,
+    3481,
+    3489,
+    3498,
+    3504,
+    3515,
+    3524,
+    3534,
+    3540,
+    3549,
+    3556,
+    3564,
+    3569,
+    3577,
+    3584,
+    3588,
+    3596,
+    3607,
+    3614,
+    3621,
+    3629,
+    3638,
+    3646,
+    3655,
+    3664,
+    3672,
+    3679,
+    3691,
+    3699,
+    3705,
+    3718,
+    3733,
+    3746,
+    3760,
+    3776,
+    3789,
+    3813,
+    3840,
+    3865,
+    3891,
+    3915,
+    3942,
+    3971,
+    3987,
+    3997,
+    4013,
+    4032,
+    4054,
+    4064,
+    4069,
+    4080,
+    4090,
+    4099,
+    4106,
+    4115,
+    4126,
+    4133,
+    4141,
+    4150,
+    4159,
+    4167,
+    4174,
+    4183,
+    4192,
+    4200,
+    4211,
+    4219,
+    4230,
+    4239,
+    4248,
+    4257,
+    4265,
+    4273,
+    4283,
+    4288,
+    4295,
+    4304,
+    4317,
+    4324,
+    4336,
+    4348,
+    4359,
+    4373,
+    4386,
+    4399,
+    4415,
+    4433,
+    4454,
+    4474,
+    4487,
+    4496,
+    4506,
+    4516,
+    4525,
+    4531,
+    4539,
+    4546,
+    4557,
+    4565,
+    4575,
+    4584,
+    4593,
+    4599,
+    4607,
+    4612,
+    4617,
+    4624,
+    4631,
+    4646,
+    4666,
+    4682,
+    4706,
+    4727,
+    4750,
+    4767,
+    4785,
+    4811,
+    4829,
+    4853,
+    4874,
+    4896,
+    4918,
+    4942,
+    4969,
+    4996,
+    5030,
+    5056,
+    5079,
+    5087,
+    5094,
+    5100,
+    5105,
+    5111,
+    5116,
+    5126,
+    5130,
+    5136,
+    5143,
+    5151,
+    5156,
+    5162,
+    5169,
+    5178,
+    5186,
+    5193,
+    5200,
+    5209,
+    5218,
+    5223,
+    5230,
+    5237,
+    5242,
+    5254,
+    5268,
+    5287,
+    5314,
+    5332,
+    5358,
+    5386,
+    5415,
+    5430,
+    5448,
+    5461,
+    5476,
+    5495,
+    5513,
+    5543,
+    5571,
+    5597,
+    5617,
+    5642,
+    5673,
+    5703,
+    5728,
+    5759,
+    5801,
+    5830,
+    5855,
+    5883,
+    5910,
+    5932,
+    5964,
+    5994,
+    6017,
+    6044,
+    6073,
+    6099,
+    6126,
+    6138,
+    6156,
+    6177,
+    6194,
+    6208,
+    6222,
+    6237
+  ];
+
+  function findPage(surah, ayah, ayahMode = false) {
+    const ayahId = ayahMode ? checkValidAyahId(ayah) && ayah : checkValidSurah(surah) && findAyaidBySurah(surah, ayah);
+    return PageList.findIndex((x) => x > ayahId) - 1;
+  }
+
+  function findRangeAroundAyah(surah, ayah, mode, ayahMode = false) {
+    const ayahId = ayahMode ? ayah : checkValidSurah(surah) && findAyaidBySurah(surah, ayah);
+    switch (mode) {
+      case "juz": {
+        const juz = findJuzByAyaid(ayahId);
+        return [JuzList[juz], JuzList[juz + 1] - 1];
+      }
+      case "surah": {
+        return [SuraList[surah][0] + 1, SuraList[surah + 1][0]];
+      }
+      case "ayah": {
+        return [ayahId, ayahId];
+      }
+      case "page": {
+        const page = findPage(-1, ayahId, true);
+        return [PageList[page], PageList[page + 1] - 1];
+      }
+      case "all":
+      default:
+        return [1, meta.numAyas];
     }
-    function findRangeAroundAyah(surah, ayah, mode, ayahMode) {
-        if (ayahMode === void 0) { ayahMode = false; }
-        var ayahId = ayahMode
-            ? ayah
-            : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
-        switch (mode) {
-            case "juz": {
-                var juz = findJuzByAyaid(ayahId);
-                return [JuzList[juz], JuzList[juz + 1] - 1];
-            }
-            case "surah": {
-                return [findAyaidBySurah(surah, 1), findAyaidBySurah(surah + 1, 1) - 1];
-            }
-            case "ayah": {
-                return [ayahId, ayahId];
-            }
-            case "page": {
-                var page = findPage(-1, ayahId, true);
-                return [PageList[page], PageList[page + 1] - 1];
-            }
-            case "all":
-            default:
-                return [1, meta.numAyas];
-        }
+  }
+
+  function binarySearch(ar, el, compare_fn = (a, b) => a - b) {
+    let m = 0;
+    let n = ar.length - 1;
+    while (m <= n) {
+      const k = n + m >> 1;
+      const cmp = compare_fn(el, ar[k]);
+      if (cmp > 0) {
+        m = k + 1;
+      } else if (cmp < 0) {
+        n = k - 1;
+      } else {
+        return k;
+      }
     }
+    return -m - 1;
+  }
+
+  function isAyahJuzFirst(surah, ayah, ayahMode = false) {
+    const ayahId = ayahMode ? checkValidAyahId(ayah) && ayah : checkValidSurah(surah) && findAyaidBySurah(surah, ayah);
+    return binarySearch(JuzList, ayahId);
+  }
+
+  function isAyahPageFirst(surah, ayah, ayahMode = false) {
+    const ayahId = ayahMode ? checkValidAyahId(ayah) && ayah : checkValidSurah(surah) && findAyaidBySurah(surah, ayah);
+    return binarySearch(PageList, ayahId);
+  }
+
+  const ManzilList = [
+    0,
+    1,
+    670,
+    1365,
+    2030,
+    2933,
+    3789,
+    4631,
+    6237
+  ];
+
+  const RukuList = [
+    0,
+    1,
+    8,
+    15,
+    28,
+    37,
+    47,
+    54,
+    67,
+    69,
+    79,
+    90,
+    94,
+    104,
+    111,
+    120,
+    129,
+    137,
+    149,
+    155,
+    160,
+    171,
+    175,
+    184,
+    190,
+    196,
+    204,
+    218,
+    224,
+    229,
+    236,
+    239,
+    243,
+    250,
+    256,
+    261,
+    265,
+    268,
+    274,
+    281,
+    289,
+    291,
+    294,
+    303,
+    314,
+    324,
+    335,
+    348,
+    357,
+    365,
+    374,
+    385,
+    395,
+    403,
+    414,
+    423,
+    437,
+    442,
+    449,
+    465,
+    474,
+    483,
+    494,
+    504,
+    508,
+    516,
+    519,
+    527,
+    536,
+    544,
+    553,
+    564,
+    570,
+    581,
+    585,
+    590,
+    594,
+    598,
+    606,
+    609,
+    620,
+    628,
+    635,
+    646,
+    656,
+    665,
+    670,
+    675,
+    681,
+    689,
+    696,
+    704,
+    713,
+    720,
+    726,
+    736,
+    747,
+    756,
+    763,
+    770,
+    778,
+    785,
+    790,
+    800,
+    810,
+    820,
+    831,
+    840,
+    845,
+    850,
+    860,
+    872,
+    880,
+    884,
+    890,
+    900,
+    911,
+    919,
+    930,
+    934,
+    940,
+    944,
+    955,
+    965,
+    980,
+    986,
+    994,
+    1002,
+    1008,
+    1013,
+    1019,
+    1027,
+    1039,
+    1048,
+    1054,
+    1063,
+    1081,
+    1084,
+    1096,
+    1102,
+    1106,
+    1112,
+    1117,
+    1126,
+    1136,
+    1143,
+    1161,
+    1171,
+    1180,
+    1189,
+    1198,
+    1205,
+    1209,
+    1219,
+    1225,
+    1230,
+    1236,
+    1242,
+    1252,
+    1260,
+    1265,
+    1273,
+    1278,
+    1295,
+    1302,
+    1308,
+    1316,
+    1325,
+    1335,
+    1346,
+    1354,
+    1358,
+    1365,
+    1375,
+    1385,
+    1395,
+    1405,
+    1418,
+    1425,
+    1435,
+    1447,
+    1457,
+    1468,
+    1474,
+    1482,
+    1498,
+    1509,
+    1523,
+    1534,
+    1542,
+    1557,
+    1569,
+    1583,
+    1597,
+    1603,
+    1617,
+    1626,
+    1632,
+    1639,
+    1646,
+    1654,
+    1665,
+    1676,
+    1690,
+    1701,
+    1708,
+    1715,
+    1726,
+    1734,
+    1739,
+    1745,
+    1751,
+    1757,
+    1763,
+    1772,
+    1778,
+    1785,
+    1792,
+    1803,
+    1818,
+    1828,
+    1847,
+    1863,
+    1882,
+    1902,
+    1911,
+    1923,
+    1927,
+    1936,
+    1942,
+    1952,
+    1962,
+    1967,
+    1972,
+    1978,
+    1985,
+    1991,
+    2002,
+    2012,
+    2021,
+    2030,
+    2040,
+    2052,
+    2060,
+    2070,
+    2082,
+    2090,
+    2100,
+    2107,
+    2114,
+    2123,
+    2130,
+    2141,
+    2153,
+    2158,
+    2163,
+    2172,
+    2185,
+    2190,
+    2194,
+    2200,
+    2211,
+    2223,
+    2242,
+    2251,
+    2266,
+    2291,
+    2301,
+    2316,
+    2333,
+    2349,
+    2373,
+    2403,
+    2425,
+    2438,
+    2453,
+    2464,
+    2477,
+    2484,
+    2494,
+    2513,
+    2525,
+    2534,
+    2559,
+    2577,
+    2596,
+    2606,
+    2618,
+    2621,
+    2629,
+    2634,
+    2644,
+    2653,
+    2660,
+    2668,
+    2674,
+    2696,
+    2706,
+    2724,
+    2751,
+    2766,
+    2792,
+    2802,
+    2812,
+    2818,
+    2826,
+    2832,
+    2842,
+    2849,
+    2853,
+    2856,
+    2865,
+    2876,
+    2890,
+    2900,
+    2916,
+    2933,
+    2942,
+    2966,
+    2985,
+    3002,
+    3037,
+    3055,
+    3073,
+    3092,
+    3108,
+    3124,
+    3160,
+    3174,
+    3191,
+    3204,
+    3218,
+    3226,
+    3242,
+    3253,
+    3266,
+    3274,
+    3281,
+    3295,
+    3303,
+    3313,
+    3328,
+    3341,
+    3354,
+    3363,
+    3371,
+    3385,
+    3392,
+    3404,
+    3410,
+    3420,
+    3429,
+    3437,
+    3450,
+    3463,
+    3470,
+    3481,
+    3489,
+    3504,
+    3515,
+    3526,
+    3534,
+    3542,
+    3554,
+    3561,
+    3568,
+    3574,
+    3586,
+    3592,
+    3602,
+    3607,
+    3616,
+    3628,
+    3637,
+    3643,
+    3652,
+    3661,
+    3668,
+    3675,
+    3687,
+    3698,
+    3706,
+    3718,
+    3738,
+    3756,
+    3773,
+    3789,
+    3810,
+    3863,
+    3902,
+    3927,
+    3971,
+    3985,
+    3997,
+    4011,
+    4035,
+    4059,
+    4068,
+    4080,
+    4090,
+    4100,
+    4111,
+    4122,
+    4129,
+    4134,
+    4143,
+    4154,
+    4161,
+    4171,
+    4184,
+    4194,
+    4202,
+    4212,
+    4219,
+    4227,
+    4237,
+    4244,
+    4251,
+    4263,
+    4273,
+    4282,
+    4292,
+    4302,
+    4316,
+    4326,
+    4341,
+    4351,
+    4361,
+    4371,
+    4382,
+    4393,
+    4415,
+    4444,
+    4457,
+    4474,
+    4485,
+    4495,
+    4500,
+    4511,
+    4521,
+    4531,
+    4537,
+    4546,
+    4557,
+    4565,
+    4574,
+    4584,
+    4594,
+    4601,
+    4610,
+    4613,
+    4623,
+    4631,
+    4646,
+    4660,
+    4676,
+    4699,
+    4722,
+    4736,
+    4764,
+    4785,
+    4810,
+    4817,
+    4847,
+    4869,
+    4887,
+    4902,
+    4927,
+    4947,
+    4980,
+    5018,
+    5054,
+    5076,
+    5086,
+    5095,
+    5101,
+    5105,
+    5111,
+    5118,
+    5127,
+    5137,
+    5144,
+    5151,
+    5157,
+    5164,
+    5173,
+    5178,
+    5186,
+    5189,
+    5197,
+    5200,
+    5210,
+    5218,
+    5225,
+    5230,
+    5237,
+    5242,
+    5256,
+    5272,
+    5305,
+    5324,
+    5361,
+    5376,
+    5411,
+    5420,
+    5440,
+    5448,
+    5467,
+    5476,
+    5495,
+    5496,
+    5527,
+    5552,
+    5582,
+    5592,
+    5614,
+    5623,
+    5663,
+    5673,
+    5703,
+    5713,
+    5739,
+    5759,
+    5801,
+    5830,
+    5849,
+    5885,
+    5910,
+    5932,
+    5949,
+    5968,
+    5994,
+    6024,
+    6044,
+    6059,
+    6080,
+    6091,
+    6099,
+    6107,
+    6126,
+    6131,
+    6139,
+    6147,
+    6158,
+    6169,
+    6177,
+    6180,
+    6189,
+    6194,
+    6198,
+    6205,
+    6208,
+    6214,
+    6217,
+    6222,
+    6226,
+    6231,
+    6237
+  ];
+
+  const SajdaList = [
+    // [ayaId, type]
+    [1160, "recommended"],
+    [1722, "recommended"],
+    [1951, "recommended"],
+    [2138, "recommended"],
+    [2308, "recommended"],
+    [2613, "recommended"],
+    [2672, "recommended"],
+    [2915, "recommended"],
+    [3185, "recommended"],
+    [3518, "obligatory"],
+    [3994, "recommended"],
+    [4256, "obligatory"],
+    [4846, "obligatory"],
+    [5905, "recommended"],
+    [6125, "obligatory"]
+  ];
+
+  function nextAyah(surah, ayah) {
+    if (surah < 1 || surah > meta.numSuras)
+      throw new RangeError("Surah must be between 1 and " + meta.numSuras);
+    const ayaid = findAyaidBySurah(surah, ayah);
+    return findSurahByAyaid(ayaid == meta.numAyas ? 1 : ayaid + 1);
+  }
+
+  function pageMeta(pageNum) {
+    if (pageNum < 1 || pageNum > meta.numPages)
+      throw new RangeError("pagenum must be between 1 and " + meta.numPages);
+    const [curPage, nextPage] = [
+      PageList[pageNum],
+      PageList[pageNum + 1]
+    ];
+    return {
+      pageNum,
+      first: findSurahByAyaid(curPage),
+      last: [...findSurahByAyaid(nextPage - 1)]
+    };
+  }
+
+  function prevAyah(surah, ayah) {
+    checkValidSurah(surah);
+    const ayaid = findAyaidBySurah(surah, ayah);
+    return findSurahByAyaid(ayaid == 1 ? meta.numAyas : ayaid - 1);
+  }
+
+  const suraNames$1 = [
+    [],
+    ["Al-Faatiha", "The Opening"],
+    ["Al-Baqara", "The Cow"],
+    ["Aal-i-Imraan", "The Family of Imraan"],
+    ["An-Nisaa", "The Women"],
+    ["Al-Maaida", "The Table"],
+    ["Al-An'aam", "The Cattle"],
+    ["Al-A'raaf", "The Heights"],
+    ["Al-Anfaal", "The Spoils of War"],
+    ["At-Tawba", "The Repentance"],
+    ["Yunus", "Jonas"],
+    ["Hud", "Hud"],
+    ["Yusuf", "Joseph"],
+    ["Ar-Ra'd", "The Thunder"],
+    ["Ibrahim", "Abraham"],
+    ["Al-Hijr", "The Rock"],
+    ["An-Nahl", "The Bee"],
+    ["Al-Israa", "The Night Journey"],
+    ["Al-Kahf", "The Cave"],
+    ["Maryam", "Mary"],
+    ["Taa-Haa", "Taa-Haa"],
+    ["Al-Anbiyaa", "The Prophets"],
+    ["Al-Hajj", "The Pilgrimage"],
+    ["Al-Muminoon", "The Believers"],
+    ["An-Noor", "The Light"],
+    ["Al-Furqaan", "The Criterion"],
+    ["Ash-Shu'araa", "The Poets"],
+    ["An-Naml", "The Ant"],
+    ["Al-Qasas", "The Stories"],
+    ["Al-Ankaboot", "The Spider"],
+    ["Ar-Room", "The Romans"],
+    ["Luqman", "Luqman"],
+    ["As-Sajda", "The Prostration"],
+    ["Al-Ahzaab", "The Clans"],
+    ["Saba", "Sheba"],
+    ["Faatir", "The Originator"],
+    ["Yaseen", "Yaseen"],
+    ["As-Saaffaat", "Those drawn up in Ranks"],
+    ["Saad", "The letter Saad"],
+    ["Az-Zumar", "The Groups"],
+    ["Al-Ghaafir", "The Forgiver"],
+    ["Fussilat", "Explained in detail"],
+    ["Ash-Shura", "Consultation"],
+    ["Az-Zukhruf", "Ornaments of gold"],
+    ["Ad-Dukhaan", "The Smoke"],
+    ["Al-Jaathiya", "Crouching"],
+    ["Al-Ahqaf", "The Dunes"],
+    ["Muhammad", "Muhammad"],
+    ["Al-Fath", "The Victory"],
+    ["Al-Hujuraat", "The Inner Apartments"],
+    ["Qaaf", "The letter Qaaf"],
+    ["Adh-Dhaariyat", "The Winnowing Winds"],
+    ["At-Tur", "The Mount"],
+    ["An-Najm", "The Star"],
+    ["Al-Qamar", "The Moon"],
+    ["Ar-Rahmaan", "The Beneficent"],
+    ["Al-Waaqia", "The Inevitable"],
+    ["Al-Hadid", "The Iron"],
+    ["Al-Mujaadila", "The Pleading Woman"],
+    ["Al-Hashr", "The Exile"],
+    ["Al-Mumtahana", "She that is to be examined"],
+    ["As-Saff", "The Ranks"],
+    ["Al-Jumu'a", "Friday"],
+    ["Al-Munaafiqoon", "The Hypocrites"],
+    ["At-Taghaabun", "Mutual Disillusion"],
+    ["At-Talaaq", "Divorce"],
+    ["At-Tahrim", "The Prohibition"],
+    ["Al-Mulk", "The Sovereignty"],
+    ["Al-Qalam", "The Pen"],
+    ["Al-Haaqqa", "The Reality"],
+    ["Al-Ma'aarij", "The Ascending Stairways"],
+    ["Nooh", "Noah"],
+    ["Al-Jinn", "The Jinn"],
+    ["Al-Muzzammil", "The Enshrouded One"],
+    ["Al-Muddaththir", "The Cloaked One"],
+    ["Al-Qiyaama", "The Resurrection"],
+    ["Al-Insaan", "Man"],
+    ["Al-Mursalaat", "The Emissaries"],
+    ["An-Naba", "The Announcement"],
+    ["An-Naazi'aat", "Those who drag forth"],
+    ["Abasa", "He frowned"],
+    ["At-Takwir", "The Overthrowing"],
+    ["Al-Infitaar", "The Cleaving"],
+    ["Al-Mutaffifin", "Defrauding"],
+    ["Al-Inshiqaaq", "The Splitting Open"],
+    ["Al-Burooj", "The Constellations"],
+    ["At-Taariq", "The Morning Star"],
+    ["Al-A'laa", "The Most High"],
+    ["Al-Ghaashiya", "The Overwhelming"],
+    ["Al-Fajr", "The Dawn"],
+    ["Al-Balad", "The City"],
+    ["Ash-Shams", "The Sun"],
+    ["Al-Lail", "The Night"],
+    ["Ad-Dhuhaa", "The Morning Hours"],
+    ["Ash-Sharh", "The Consolation"],
+    ["At-Tin", "The Fig"],
+    ["Al-Alaq", "The Clot"],
+    ["Al-Qadr", "The Power, Fate"],
+    ["Al-Bayyina", "The Evidence"],
+    ["Az-Zalzala", "The Earthquake"],
+    ["Al-Aadiyaat", "The Chargers"],
+    ["Al-Qaari'a", "The Calamity"],
+    ["At-Takaathur", "Competition"],
+    ["Al-Asr", "The Declining Day, Epoch"],
+    ["Al-Humaza", "The Traducer"],
+    ["Al-Fil", "The Elephant"],
+    ["Quraish", "Quraysh"],
+    ["Al-Maa'un", "Almsgiving"],
+    ["Al-Kawthar", "Abundance"],
+    ["Al-Kaafiroon", "The Disbelievers"],
+    ["An-Nasr", "Divine Support"],
+    ["Al-Masad", "The Palm Fibre"],
+    ["Al-Ikhlaas", "Sincerity"],
+    ["Al-Falaq", "The Dawn"],
+    ["An-Naas", "Mankind"]
+  ];
+
+  const suraNames = [
+    [],
+    ["\u0410\u043B\u044C-\u0424\u0430\u0442\u0438\u0445\u0430", "\u041E\u0442\u043A\u0440\u044B\u0432\u0430\u044E\u0449\u0430\u044F \u041A\u043E\u0440\u0430\u043D"],
+    ["\u0410\u043B\u044C-\u0411\u0430\u043A\u0430\u0440\u0430", "\u041A\u043E\u0440\u043E\u0432\u0430"],
+    ["\u0410\u043B\u044C \u2018\u0418\u043C\u0440\u0430\u043D", "\u0421\u0435\u043C\u0435\u0439\u0441\u0442\u0432\u043E \u2018\u0418\u043C\u0440\u0430\u043D\u0430"],
+    ["\u0410\u043D-\u041D\u0438\u0441\u0430", "\u0416\u0435\u043D\u0449\u0438\u043D\u044B"],
+    ["\u0410\u043B\u044C-\u041C\u0430\u0438\u0434\u0430", "\u0422\u0440\u0430\u043F\u0435\u0437\u0430"],
+    ["\u0410\u043B\u044C-\u0410\u043D\u2018\u0430\u043C", "\u0421\u043A\u043E\u0442"],
+    ["\u0410\u043B\u044C-\u0410\u2018\u0440\u0430\u0444", "\u041E\u0433\u0440\u0430\u0434\u044B"],
+    ["\u0410\u043B\u044C-\u0410\u043D\u0444\u0430\u043B\u044C", "\u0412\u043E\u0435\u043D\u043D\u0430\u044F \u0434\u043E\u0431\u044B\u0447\u0430"],
+    ["\u0410\u0442-\u0422\u0430\u0443\u0431\u0430", "\u041F\u043E\u043A\u0430\u044F\u043D\u0438\u0435"],
+    ["\u042E\u043D\u0443\u0441", "\u0418\u043E\u043D\u0430"],
+    ["\u0425\u0443\u0434", "\u0425\u0443\u0434"],
+    ["\u042E\u0441\u0443\u0444", "\u0418\u043E\u0441\u0438\u0444"],
+    ["\u0410\u0440-\u0420\u0430\u2018\u0434", "\u0413\u0440\u043E\u043C"],
+    ["\u0418\u0431\u0440\u0430\u0445\u0438\u043C", "\u0410\u0432\u0440\u0430\u0430\u043C"],
+    ["\u0410\u043B\u044C-\u0425\u0438\u0434\u0436\u0440", "\u0425\u0438\u0434\u0436\u0440"],
+    ["\u0410\u043D-\u041D\u0430\u0445\u043B\u044C", "\u041F\u0447\u0451\u043B\u044B"],
+    ["\u0410\u043B\u044C-\u0418\u0441\u0440\u0430", "\u041D\u043E\u0447\u043D\u043E\u0439 \u043F\u0435\u0440\u0435\u043D\u043E\u0441"],
+    ["\u0410\u043B\u044C-\u041A\u044F\u0445\u0444", "\u041F\u0435\u0449\u0435\u0440\u0430"],
+    ["\u041C\u0430\u0440\u044C\u044F\u043C", "\u041C\u0430\u0440\u0438\u044F"],
+    ["\u0422\u0430, \u0445\u0430", "\u0422\u0430, \u0445\u0430"],
+    ["\u0410\u043B\u044C-\u0410\u043D\u0431\u0438\u044F", "\u041F\u0440\u043E\u0440\u043E\u043A\u0438"],
+    ["\u0410\u043B\u044C-\u0425\u0430\u0434\u0436\u0436", "\u0425\u0430\u0434\u0436"],
+    ["\u0410\u043B\u044C-\u041C\u0443\u2019\u043C\u0438\u043D\u0443\u043D", "\u0412\u0435\u0440\u0443\u044E\u0449\u0438\u0435"],
+    ["\u0410\u043D-\u041D\u0443\u0440", "\u0421\u0432\u0435\u0442"],
+    ["\u0410\u043B\u044C-\u0424\u0443\u0440\u043A\u0430\u043D", "\u0420\u0430\u0437\u043B\u0438\u0447\u0435\u043D\u0438\u0435"],
+    ["\u0410\u0448-\u0428\u0443\u2018\u0430\u0440\u0430", "\u041F\u043E\u044D\u0442\u044B"],
+    ["\u0410\u043D-\u041D\u0430\u043C\u043B\u044C", "\u041C\u0443\u0440\u0430\u0432\u044C\u0438"],
+    ["\u0410\u043B\u044C-\u041A\u0430\u0441\u0430\u0441", "\u0420\u0430\u0441\u0441\u043A\u0430\u0437"],
+    ["\u0410\u043B\u044C-\u2018\u0410\u043D\u043A\u0430\u0431\u0443\u0442", "\u041F\u0430\u0443\u043A"],
+    ["\u0410\u0440-\u0420\u0443\u043C", "\u0420\u043E\u043C\u0435\u0438"],
+    ["\u041B\u0443\u043A\u043C\u0430\u043D", "\u041B\u0443\u043A\u043C\u0430\u043D"],
+    ["\u0410\u0441-\u0421\u0430\u0434\u0436\u0434\u0430", "\u0417\u0435\u043C\u043D\u043E\u0439 \u043F\u043E\u043A\u043B\u043E\u043D"],
+    ["\u0410\u043B\u044C-\u0410\u0445\u0437\u0430\u0431", "\u041F\u043E\u043B\u0447\u0438\u0449\u0430"],
+    ["\u0421\u0430\u0431\u0430\u2019", "\u0421\u0430\u0432\u0430"],
+    ["\u0424\u0430\u0442\u044B\u0440", "\u0417\u0438\u0436\u0434\u0438\u0442\u0435\u043B\u044C"],
+    ["\u0419\u0430, \u0441\u0438\u043D", "\u0419\u0430, \u0441\u0438\u043D"],
+    ["\u0410\u0441-\u0421\u0430\u0444\u0444\u0430\u0442", "\u0421\u0442\u043E\u044F\u0449\u0438\u0435 \u0432 \u0440\u044F\u0434"],
+    ["\u0421\u0430\u0434", "\u0421\u0430\u0434"],
+    ["\u0410\u0437-\u0417\u0443\u043C\u0430\u0440", "\u0422\u043E\u043B\u043F\u044B"],
+    ["\u0413\u0430\u0444\u0438\u0440", "\u041F\u0440\u043E\u0449\u0430\u044E\u0449\u0438\u0439"],
+    ["\u0424\u0443\u0441\u0441\u044B\u043B\u044F\u0442", "\u0420\u0430\u0437\u044A\u044F\u0441\u043D\u0435\u043D\u044B"],
+    ["\u0410\u0448-\u0428\u0443\u0440\u0430", "\u0421\u043E\u0432\u0435\u0442"],
+    ["\u0410\u0437-\u0417\u0443\u0445\u0440\u0443\u0444", "\u0423\u043A\u0440\u0430\u0448\u0435\u043D\u0438\u044F"],
+    ["\u0410\u0434-\u0414\u0443\u0445\u0430\u043D", "\u0414\u044B\u043C"],
+    ["\u0410\u043B\u044C-\u0414\u0436\u0430\u0441\u0438\u044F", "\u041A\u043E\u043B\u0435\u043D\u043E\u043F\u0440\u0435\u043A\u043B\u043E\u043D\u0451\u043D\u043D\u044B\u0435"],
+    ["\u0410\u043B\u044C-\u0410\u0445\u043A\u0430\u0444", "\u0411\u0430\u0440\u0445\u0430\u043D\u044B"],
+    ["\u041C\u0443\u0445\u0430\u043C\u043C\u0430\u0434", "\u041C\u0443\u0445\u0430\u043C\u043C\u0430\u0434"],
+    ["\u0410\u043B\u044C-\u0424\u0430\u0442\u0445", "\u041F\u043E\u0431\u0435\u0434\u0430"],
+    ["\u0410\u043B\u044C-\u0425\u0443\u0434\u0436\u0443\u0440\u0430\u0442", "\u041F\u043E\u043A\u043E\u0438"],
+    ["\u041A\u0430\u0444", "\u041A\u0430\u0444"],
+    ["\u0410\u0437-\u0417\u0430\u0440\u0438\u044F\u0442", "\u0420\u0430\u0441\u0441\u0435\u0438\u0432\u0430\u044E\u0449\u0438\u0435"],
+    ["\u0410\u0442-\u0422\u0443\u0440", "\u0413\u043E\u0440\u0430"],
+    ["\u0410\u043D-\u041D\u0430\u0434\u0436\u043C", "\u0417\u0432\u0435\u0437\u0434\u0430"],
+    ["\u0410\u043B\u044C-\u041A\u0430\u043C\u0430\u0440", "\u041B\u0443\u043D\u0430"],
+    ["\u0410\u0440-\u0420\u0430\u0445\u043C\u0430\u043D", "\u041C\u0438\u043B\u043E\u0441\u0442\u0438\u0432\u044B\u0439"],
+    ["\u0410\u043B\u044C-\u0412\u0430\u043A\u0438\u2018\u0430", "\u041D\u0435\u0438\u0437\u0431\u0435\u0436\u043D\u043E\u0435"],
+    ["\u0410\u043B\u044C-\u0425\u0430\u0434\u0438\u0434", "\u0416\u0435\u043B\u0435\u0437\u043E"],
+    ["\u0410\u043B\u044C-\u041C\u0443\u0434\u0436\u0430\u0434\u0438\u043B\u044F", "\u041F\u0440\u0435\u043F\u0438\u0440\u0430\u044E\u0449\u0430\u044F\u0441\u044F"],
+    ["\u0410\u043B\u044C-\u0425\u0430\u0448\u0440", "\u0421\u0431\u043E\u0440"],
+    ["\u0410\u043B\u044C-\u041C\u0443\u043C\u0442\u0430\u0445\u0430\u043D\u0430", "\u0418\u0441\u043F\u044B\u0442\u0443\u0435\u043C\u0430\u044F"],
+    ["\u0410\u0441-\u0421\u0430\u0444\u0444", "\u0420\u044F\u0434"],
+    ["\u0410\u043B\u044C-\u0414\u0436\u0443\u043C\u0443\u2018\u0430", "\u0421\u043E\u0431\u0440\u0430\u043D\u0438\u0435"],
+    ["\u0410\u043B\u044C-\u041C\u0443\u043D\u0430\u0444\u0438\u043A\u0443\u043D", "\u041B\u0438\u0446\u0435\u043C\u0435\u0440\u044B"],
+    ["\u0410\u0442-\u0422\u0430\u0433\u0430\u0431\u0443\u043D", "\u041E\u0431\u0434\u0435\u043B\u0435\u043D\u0438\u0435"],
+    ["\u0410\u0442-\u0422\u0430\u043B\u044F\u043A", "\u0420\u0430\u0437\u0432\u043E\u0434"],
+    ["\u0410\u0442-\u0422\u0430\u0445\u0440\u0438\u043C", "\u0417\u0430\u043F\u0440\u0435\u0449\u0435\u043D\u0438\u0435"],
+    ["\u0410\u043B\u044C-\u041C\u0443\u043B\u044C\u043A", "\u0412\u043B\u0430\u0441\u0442\u044C"],
+    ["\u0410\u043B\u044C-\u041A\u0430\u043B\u044F\u043C", "\u041F\u0435\u0440\u043E"],
+    ["\u0410\u043B\u044C-\u0425\u0430\u043A\u043A\u0430", "\u041D\u0435\u043C\u0438\u043D\u0443\u0435\u043C\u043E\u0435"],
+    ["\u0410\u043B\u044C-\u041C\u0430\u2018\u0430\u0440\u0438\u0434\u0436", "\u0421\u0442\u0435\u043F\u0435\u043D\u0438"],
+    ["\u041D\u0443\u0445", "\u041D\u043E\u0439"],
+    ["\u0410\u043B\u044C-\u0414\u0436\u0438\u043D\u043D", "\u0414\u0436\u0438\u043D\u043D\u044B"],
+    ["\u0410\u043B\u044C-\u041C\u0443\u0437\u0437\u0430\u043C\u043C\u0438\u043B\u044C", "\u0417\u0430\u043A\u0443\u0442\u0430\u0432\u0448\u0438\u0439\u0441\u044F"],
+    ["\u0410\u043B\u044C-\u041C\u0443\u0434\u0434\u0430\u0441\u0441\u0438\u0440", "\u0417\u0430\u0432\u0435\u0440\u043D\u0443\u0432\u0448\u0438\u0439\u0441\u044F"],
+    ["\u0410\u043B\u044C-\u041A\u0438\u044F\u043C\u0430", "\u0412\u043E\u0441\u043A\u0440\u0435\u0441\u0435\u043D\u0438\u0435"],
+    ["\u0410\u043B\u044C-\u0418\u043D\u0441\u0430\u043D", "\u0427\u0435\u043B\u043E\u0432\u0435\u043A"],
+    ["\u0410\u043B\u044C-\u041C\u0443\u0440\u0441\u0430\u043B\u044F\u0442", "\u041F\u043E\u0441\u044B\u043B\u0430\u0435\u043C\u044B\u0435"],
+    ["\u0410\u043D-\u041D\u0430\u0431\u0430\u2019", "\u0412\u0435\u0441\u0442\u044C"],
+    ["\u0410\u043D-\u041D\u0430\u0437\u0438\u2018\u0430\u0442", "\u0412\u044B\u0440\u044B\u0432\u0430\u044E\u0449\u0438\u0435"],
+    ["\u2018\u0410\u0431\u0430\u0441\u0430", "\u041D\u0430\u0445\u043C\u0443\u0440\u0438\u043B\u0441\u044F"],
+    ["\u0410\u0442-\u0422\u0430\u043A\u0432\u0438\u0440", "\u0421\u0432\u043E\u0440\u0430\u0447\u0438\u0432\u0430\u043D\u0438\u0435"],
+    ["\u0410\u043B\u044C-\u0418\u043D\u0444\u0438\u0442\u0430\u0440", "\u0420\u0430\u0441\u043A\u0430\u043B\u044B\u0432\u0430\u043D\u0438\u0435"],
+    ["\u0410\u043B\u044C-\u041C\u0443\u0442\u0430\u0444\u0444\u0438\u0444\u0438\u043D", "\u041E\u0431\u0432\u0435\u0448\u0438\u0432\u0430\u044E\u0449\u0438\u0435"],
+    ["\u0410\u043B\u044C-\u0418\u043D\u0448\u0438\u043A\u0430\u043A", "\u0420\u0430\u0437\u0432\u0435\u0440\u0437\u043D\u0435\u0442\u0441\u044F"],
+    ["\u0410\u043B\u044C-\u0411\u0443\u0440\u0443\u0434\u0436", "\u0421\u043E\u0437\u0432\u0435\u0437\u0434\u0438\u044F"],
+    ["\u0410\u0442-\u0422\u0430\u0440\u0438\u043A", "\u041D\u043E\u0447\u043D\u043E\u0439 \u0433\u043E\u0441\u0442\u044C"],
+    ["\u0410\u043B\u044C-\u0410\u2018\u043B\u044F", "\u0412\u0441\u0435\u0432\u044B\u0448\u043D\u0438\u0439"],
+    ["\u0410\u043B\u044C-\u0413\u0430\u0448\u0438\u044F", "\u041F\u043E\u043A\u0440\u044B\u0432\u0430\u044E\u0449\u0435\u0435"],
+    ["\u0410\u043B\u044C-\u0424\u0430\u0434\u0436\u0440", "\u0417\u0430\u0440\u044F"],
+    ["\u0410\u043B\u044C-\u0411\u0430\u043B\u044F\u0434", "\u0413\u043E\u0440\u043E\u0434"],
+    ["\u0410\u0448-\u0428\u0430\u043C\u0441", "\u0421\u043E\u043B\u043D\u0446\u0435"],
+    ["\u0410\u043B\u044C-\u041B\u0435\u0439\u043B\u044C", "\u041D\u043E\u0447\u044C"],
+    ["\u0410\u0434-\u0414\u0443\u0445\u0430", "\u0423\u0442\u0440\u043E"],
+    ["\u0410\u043B\u044C-\u0418\u043D\u0448\u0438\u0440\u0430\u0445", "\u0420\u0430\u0441\u043A\u0440\u044B\u0442\u0438\u0435"],
+    ["\u0410\u0442-\u0422\u0438\u043D", "\u0421\u043C\u043E\u043A\u043E\u0432\u043D\u0438\u0446\u0430"],
+    ["\u0410\u043B\u044C-\u2018\u0410\u043B\u044F\u043A", "\u0421\u0433\u0443\u0441\u0442\u043E\u043A \u043A\u0440\u043E\u0432\u0438"],
+    ["\u0410\u043B\u044C-\u041A\u0430\u0434\u0440", "\u0412\u0435\u043B\u0438\u0447\u0438\u0435"],
+    ["\u0410\u043B\u044C-\u0411\u0430\u0439\u0439\u0438\u043D\u0430", "\u042F\u0441\u043D\u044B\u0439 \u0434\u043E\u0432\u043E\u0434"],
+    ["\u0410\u0437-\u0417\u0430\u043B\u044C\u0437\u0430\u043B\u044F", "\u0421\u043E\u0442\u0440\u044F\u0441\u0435\u043D\u0438\u0435"],
+    ["\u0410\u043B\u044C-\u2018\u0410\u0434\u0438\u044F\u0442", "\u0421\u043A\u0430\u0447\u0443\u0449\u0438\u0435"],
+    ["\u0410\u043B\u044C-\u041A\u0430\u0440\u0438\u2018\u0430", "\u041F\u043E\u0440\u0430\u0436\u0430\u044E\u0449\u0435\u0435"],
+    ["\u0410\u0442-\u0422\u0430\u043A\u044F\u0441\u0443\u0440", "\u0421\u043E\u043F\u0435\u0440\u043D\u0438\u0447\u0435\u0441\u0442\u0432\u043E"],
+    ["\u0410\u043B\u044C-\u2018\u0410\u0441\u0440", "\u041F\u0440\u0435\u0434\u0432\u0435\u0447\u0435\u0440\u043D\u0435\u0435 \u0432\u0440\u0435\u043C\u044F"],
+    ["\u0410\u043B\u044C-\u0425\u0443\u043C\u0430\u0437\u0430", "\u0425\u0443\u043B\u0438\u0442\u0435\u043B\u044C"],
+    ["\u0410\u043B\u044C-\u0424\u0438\u043B\u044C", "\u0421\u043B\u043E\u043D"],
+    ["\u041A\u0443\u0440\u0430\u0439\u0448", "\u041A\u0443\u0440\u0430\u0439\u0448\u0438\u0442\u044B"],
+    ["\u0410\u043B\u044C-\u041C\u0430\u2018\u0443\u043D", "\u0423\u0442\u0432\u0430\u0440\u044C"],
+    ["\u0410\u043B\u044C-\u041A\u0430\u0443\u0441\u0430\u0440", "\u041A\u0430\u0443\u0441\u0430\u0440"],
+    ["\u0410\u043B\u044C-\u041A\u044F\u0444\u0438\u0440\u0443\u043D", "\u041D\u0435\u0432\u0435\u0440\u0443\u044E\u0449\u0438\u0435"],
+    ["\u0410\u043D-\u041D\u0430\u0441\u0440", "\u041F\u043E\u043C\u043E\u0449\u044C"],
+    ["\u0410\u043B\u044C-\u041C\u0430\u0441\u0430\u0434", "\u041F\u0430\u043B\u044C\u043C\u043E\u0432\u044B\u0435 \u0432\u043E\u043B\u043E\u043A\u043D\u0430"],
+    ["\u0410\u043B\u044C-\u0418\u0445\u043B\u044F\u0441", "\u041E\u0447\u0438\u0449\u0435\u043D\u0438\u0435 \u0432\u0435\u0440\u044B"],
+    ["\u0410\u043B\u044C-\u0424\u0430\u043B\u044F\u043A", "\u0420\u0430\u0441\u0441\u0432\u0435\u0442"],
+    ["\u0410\u043D-\u041D\u0430\u0441", "\u041B\u044E\u0434\u0438"]
+  ];
 
-    exports.HizbQuarterList = HizbQuarterList;
-    exports.JuzList = JuzList;
-    exports.ManzilList = ManzilList;
-    exports.PageList = PageList;
-    exports.RukuList = RukuList;
-    exports.SajdaList = SajdaList;
-    exports.SuraList = SuraList;
-    exports.ayaStringSplitter = ayaStringSplitter;
-    exports.findAyaidBySurah = findAyaidBySurah;
-    exports.findJuz = findJuz;
-    exports.findJuzAndShift = findJuzAndShift;
-    exports.findJuzByAyaid = findJuzByAyaid;
-    exports.findJuzHizb = findJuzHizb;
-    exports.findJuzHizbByAyaid = findJuzHizbByAyaid;
-    exports.findJuzMetaBySurah = findJuzMetaBySurah;
-    exports.findPage = findPage;
-    exports.findRangeAroundAyah = findRangeAroundAyah;
-    exports.findSurahByAyaid = findSurahByAyaid;
-    exports.getAyaCountinSura = getAyaCountinSura;
-    exports.getSurahMeta = getSurahMeta;
-    exports.isAyahJuzFirst = isAyahJuzFirst;
-    exports.isAyahPageFirst = isAyahPageFirst;
-    exports.meta = meta;
-    exports.nextAyah = nextAyah;
-    exports.pageMeta = pageMeta;
-    exports.prevAyah = prevAyah;
-    exports.suraNamesEn = suraNames$1;
-    exports.suraNamesRu = suraNames;
+  exports.HizbQuarterList = HizbQuarterList;
+  exports.JuzList = JuzList;
+  exports.ManzilList = ManzilList;
+  exports.PageList = PageList;
+  exports.RukuList = RukuList;
+  exports.SajdaList = SajdaList;
+  exports.SuraList = SuraList;
+  exports.ayaStringSplitter = ayaStringSplitter;
+  exports.checkValidAyahId = checkValidAyahId;
+  exports.checkValidSurah = checkValidSurah;
+  exports.checkValidSurahAyah = checkValidSurahAyah;
+  exports.findAyaidBySurah = findAyaidBySurah;
+  exports.findJuz = findJuz;
+  exports.findJuzAndShift = findJuzAndShift;
+  exports.findJuzByAyaid = findJuzByAyaid;
+  exports.findJuzHizb = findJuzHizb;
+  exports.findJuzHizbByAyaid = findJuzHizbByAyaid;
+  exports.findJuzMetaBySurah = findJuzMetaBySurah;
+  exports.findPage = findPage;
+  exports.findRangeAroundAyah = findRangeAroundAyah;
+  exports.findSurahByAyaid = findSurahByAyaid;
+  exports.getAyaCountinSura = getAyaCountinSura;
+  exports.getSurahMeta = getSurahMeta;
+  exports.isAyahJuzFirst = isAyahJuzFirst;
+  exports.isAyahPageFirst = isAyahPageFirst;
+  exports.meta = meta;
+  exports.nextAyah = nextAyah;
+  exports.pageMeta = pageMeta;
+  exports.prevAyah = prevAyah;
+  exports.suraNamesEn = suraNames$1;
+  exports.suraNamesRu = suraNames;
 
 }));
 //# sourceMappingURL=quran-meta.js.map
diff --git a/dist/quran-meta.js.map b/dist/quran-meta.js.map
index e1a6b65..3cbde0a 100644
--- a/dist/quran-meta.js.map
+++ b/dist/quran-meta.js.map
@@ -1 +1 @@
-{"version":3,"file":"quran-meta.js","sources":["../node_modules/.pnpm/@rollup+plugin-typescript@9.0.2_uxzoppybjjm3iv3alceonunahm/node_modules/tslib/tslib.es6.js","../src/const.ts","../src/i18n/sura.en.ts","../src/i18n/sura.ru.ts","../src/surahList.ts","../src/hizbList.ts","../src/rukuList.ts","../src/pageList.ts","../src/ayaStringSplitter.ts","../src/index.ts"],"sourcesContent":["/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n    extendStatics = Object.setPrototypeOf ||\r\n        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n        function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n    return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n    if (typeof b !== \"function\" && b !== null)\r\n        throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n    extendStatics(d, b);\r\n    function __() { this.constructor = d; }\r\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n    __assign = Object.assign || function __assign(t) {\r\n        for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n            s = arguments[i];\r\n            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n        }\r\n        return t;\r\n    }\r\n    return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n    var t = {};\r\n    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n        t[p] = s[p];\r\n    if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n        for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n            if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n                t[p[i]] = s[p[i]];\r\n        }\r\n    return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n    return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n    if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n    return new (P || (P = Promise))(function (resolve, reject) {\r\n        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n        function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n        step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n    });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n    return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n    function verb(n) { return function (v) { return step([n, v]); }; }\r\n    function step(op) {\r\n        if (f) throw new TypeError(\"Generator is already executing.\");\r\n        while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n            if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n            if (y = 0, t) op = [op[0] & 2, t.value];\r\n            switch (op[0]) {\r\n                case 0: case 1: t = op; break;\r\n                case 4: _.label++; return { value: op[1], done: false };\r\n                case 5: _.label++; y = op[1]; op = [0]; continue;\r\n                case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n                default:\r\n                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n                    if (t[2]) _.ops.pop();\r\n                    _.trys.pop(); continue;\r\n            }\r\n            op = body.call(thisArg, _);\r\n        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n    }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n    if (k2 === undefined) k2 = k;\r\n    var desc = Object.getOwnPropertyDescriptor(m, k);\r\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n        desc = { enumerable: true, get: function() { return m[k]; } };\r\n    }\r\n    Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n    if (k2 === undefined) k2 = k;\r\n    o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n    var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n    if (m) return m.call(o);\r\n    if (o && typeof o.length === \"number\") return {\r\n        next: function () {\r\n            if (o && i >= o.length) o = void 0;\r\n            return { value: o && o[i++], done: !o };\r\n        }\r\n    };\r\n    throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n    var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n    if (!m) return o;\r\n    var i = m.call(o), r, ar = [], e;\r\n    try {\r\n        while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n    }\r\n    catch (error) { e = { error: error }; }\r\n    finally {\r\n        try {\r\n            if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n        }\r\n        finally { if (e) throw e.error; }\r\n    }\r\n    return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n    for (var ar = [], i = 0; i < arguments.length; i++)\r\n        ar = ar.concat(__read(arguments[i]));\r\n    return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n    for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n    for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n        for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n            r[k] = a[j];\r\n    return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n    if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n        if (ar || !(i in from)) {\r\n            if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n            ar[i] = from[i];\r\n        }\r\n    }\r\n    return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n    return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n    if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n    var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n    return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n    function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n    function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n    function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n    function fulfill(value) { resume(\"next\", value); }\r\n    function reject(value) { resume(\"throw\", value); }\r\n    function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n    var i, p;\r\n    return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n    function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n    if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n    var m = o[Symbol.asyncIterator], i;\r\n    return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n    function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n    function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n    if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n    return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n    Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n    o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n    if (mod && mod.__esModule) return mod;\r\n    var result = {};\r\n    if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n    __setModuleDefault(result, mod);\r\n    return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n    return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n    if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n    return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n",null,null,null,null,null,null,null,null,null],"names":["suraNames"],"mappings":"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,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAA,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;;;AClBrD,QAAA,QAAQ,GAAa;IAChC,IAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;QAC7E,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;QACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;QACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;QACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;QACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;QACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;QACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;QACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QACzE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAA,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;;;AC1CjB,QAAA,QAAQ,GAAa;IAChC,IAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;QAC3E,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;QACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;QACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;QACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;QACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;QACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;QACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;QACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;QACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;QACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QACzE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAA,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;;;ICxCtD,SAAU,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"}
\ No newline at end of file
+{"version":3,"file":"quran-meta.js","sources":["../src/const.ts","../src/lists/surahList.ts","../src/getSurahMeta.ts","../src/getAyaCountinSura.ts","../src/validation.ts","../src/ayaStringSplitter.ts","../src/findAyaidBySurah.ts","../src/lists/juzList.ts","../src/findJuzByAyaid.ts","../src/findJuz.ts","../src/findSurahByAyaid.ts","../src/findJuzAndShift.ts","../src/lists/hizbList.ts","../src/findJuzHizbByAyaid.ts","../src/findJuzHizb.ts","../src/findJuzMetaBySurah.ts","../src/lists/pageList.ts","../src/findPage.ts","../src/findRangeAroundAyah.ts","../src/utils.ts","../src/isAyahJuzFirst.ts","../src/isAyahPageFirst.ts","../src/lists/manzilList.ts","../src/lists/rukuList.ts","../src/lists/sajdaList.ts","../src/nextAyah.ts","../src/pageMeta.ts","../src/prevAyah.ts","../src/i18n/sura.en.ts","../src/i18n/sura.ru.ts"],"sourcesContent":["export type QuranMeta = {\n  numAyas: number\n  numSuras: number\n  numPages: number\n  numJuzs: number\n  manzilCount: number\n}\n\nexport const meta: Readonly<QuranMeta> = Object.freeze({\n  numAyas: 6236,\n  numSuras: 114,\n  numPages: 604,\n  numJuzs: 30,\n  manzilCount: 7\n})\n","import { SurahMeta } from \"../types\"\n\nexport const SuraList: SurahMeta[] = [\n  [-1, -1, -1, -1, \"\", false, -1],\n  [0, 7, 5, 1, \"الفاتحة\", true, 1],\n  [7, 286, 87, 40, \"البقرة\", false, 2],\n  [293, 200, 89, 20, \"آل عمران\", false, 50],\n  [493, 176, 92, 24, \"النساء\", false, 77],\n  [669, 120, 112, 16, \"المائدة\", false, 107],\n  [789, 165, 55, 20, \"الأنعام\", true, 128],\n  [954, 206, 39, 24, \"الأعراف\", true, 151],\n  [1160, 75, 88, 10, \"الأنفال\", false, 177],\n  [1235, 129, 113, 16, \"التوبة\", false, 187],\n  [1364, 109, 51, 11, \"يونس\", true, 208],\n  [1473, 123, 52, 10, \"هود\", true, 222],\n  [1596, 111, 53, 12, \"يوسف\", true, 236],\n  [1707, 43, 96, 6, \"الرعد\", false, 249],\n  [1750, 52, 72, 7, \"ابراهيم\", true, 256],\n  [1802, 99, 54, 6, \"الحجر\", true, 262],\n  [1901, 128, 70, 16, \"النحل\", true, 268],\n  [2029, 111, 50, 12, \"الإسراء\", true, 282],\n  [2140, 110, 69, 12, \"الكهف\", true, 294],\n  [2250, 98, 44, 6, \"مريم\", true, 305],\n  [2348, 135, 45, 8, \"طه\", true, 313],\n  [2483, 112, 73, 7, \"الأنبياء\", true, 322],\n  [2595, 78, 103, 10, \"الحج\", false, 332],\n  [2673, 118, 74, 6, \"المؤمنون\", true, 342],\n  [2791, 64, 102, 9, \"النور\", false, 350],\n  [2855, 77, 42, 6, \"الفرقان\", true, 360],\n  [2932, 227, 47, 11, \"الشعراء\", true, 367],\n  [3159, 93, 48, 7, \"النمل\", true, 377],\n  [3252, 88, 49, 8, \"القصص\", true, 386],\n  [3340, 69, 85, 7, \"العنكبوت\", true, 397],\n  [3409, 60, 84, 6, \"الروم\", true, 405],\n  [3469, 34, 57, 3, \"لقمان\", true, 411],\n  [3503, 30, 75, 3, \"السجدة\", true, 415],\n  [3533, 73, 90, 9, \"الأحزاب\", false, 418],\n  [3606, 54, 58, 6, \"سبإ\", true, 428],\n  [3660, 45, 43, 5, \"فاطر\", true, 435],\n  [3705, 83, 41, 5, \"يس\", true, 441],\n  [3788, 182, 56, 5, \"الصافات\", true, 446],\n  [3970, 88, 38, 5, \"ص\", true, 453],\n  [4058, 75, 59, 8, \"الزمر\", true, 459],\n  [4133, 85, 60, 9, \"غافر\", true, 468],\n  [4218, 54, 61, 6, \"فصلت\", true, 477],\n  [4272, 53, 62, 5, \"الشورى\", true, 483],\n  [4325, 89, 63, 7, \"الزخرف\", true, 490],\n  [4414, 59, 64, 3, \"الدخان\", true, 496],\n  [4473, 37, 65, 4, \"الجاثية\", true, 499],\n  [4510, 35, 66, 4, \"الأحقاف\", true, 503],\n  [4545, 38, 95, 4, \"محمد\", false, 507],\n  [4583, 29, 111, 4, \"الفتح\", false, 511],\n  [4612, 18, 106, 2, \"الحجرات\", false, 516],\n  [4630, 45, 34, 3, \"ق\", true, 518],\n  [4675, 60, 67, 3, \"الذاريات\", true, 521],\n  [4735, 49, 76, 2, \"الطور\", true, 524],\n  [4784, 62, 23, 3, \"النجم\", true, 526],\n  [4846, 55, 37, 3, \"القمر\", true, 529],\n  [4901, 78, 97, 3, \"الرحمن\", false, 532],\n  [4979, 96, 46, 3, \"الواقعة\", true, 535],\n  [5075, 29, 94, 4, \"الحديد\", false, 538],\n  [5104, 22, 105, 3, \"المجادلة\", false, 542],\n  [5126, 24, 101, 3, \"الحشر\", false, 546],\n  [5150, 13, 91, 2, \"الممتحنة\", false, 549],\n  [5163, 14, 109, 2, \"الصف\", false, 552],\n  [5177, 11, 110, 2, \"الجمعة\", false, 553],\n  [5188, 11, 104, 2, \"المنافقون\", false, 555],\n  [5199, 18, 108, 2, \"التغابن\", false, 556],\n  [5217, 12, 99, 2, \"الطلاق\", false, 558],\n  [5229, 12, 107, 2, \"التحريم\", false, 560],\n  [5241, 30, 77, 2, \"الملك\", true, 562],\n  [5271, 52, 2, 2, \"القلم\", true, 565],\n  [5323, 52, 78, 2, \"الحاقة\", true, 567],\n  [5375, 44, 79, 2, \"المعارج\", true, 569],\n  [5419, 28, 71, 2, \"نوح\", true, 571],\n  [5447, 28, 40, 2, \"الجن\", true, 572],\n  [5475, 20, 3, 2, \"المزمل\", true, 574],\n  [5495, 56, 4, 2, \"المدثر\", true, 576],\n  [5551, 40, 31, 2, \"القيامة\", true, 578],\n  [5591, 31, 98, 2, \"الانسان\", false, 579],\n  [5622, 50, 33, 2, \"المرسلات\", true, 581],\n  [5672, 40, 80, 2, \"النبإ\", true, 582],\n  [5712, 46, 81, 2, \"النازعات\", true, 584],\n  [5758, 42, 24, 1, \"عبس\", true, 585],\n  [5800, 29, 7, 1, \"التكوير\", true, 586],\n  [5829, 19, 82, 1, \"الإنفطار\", true, 587],\n  [5848, 36, 86, 1, \"المطففين\", true, 588],\n  [5884, 25, 83, 1, \"الإنشقاق\", true, 589],\n  [5909, 22, 27, 1, \"البروج\", true, 590],\n  [5931, 17, 36, 1, \"الطارق\", true, 591],\n  [5948, 19, 8, 1, \"الأعلى\", true, 592],\n  [5967, 26, 68, 1, \"الغاشية\", true, 592],\n  [5993, 30, 10, 1, \"الفجر\", true, 593],\n  [6023, 20, 35, 1, \"البلد\", true, 594],\n  [6043, 15, 26, 1, \"الشمس\", true, 595],\n  [6058, 21, 9, 1, \"الليل\", true, 596],\n  [6079, 11, 11, 1, \"الضحى\", true, 596],\n  [6090, 8, 12, 1, \"الشرح\", true, 596],\n  [6098, 8, 28, 1, \"التين\", true, 597],\n  [6106, 19, 1, 1, \"العلق\", true, 597],\n  [6125, 5, 25, 1, \"القدر\", true, 598],\n  [6130, 8, 100, 1, \"البينة\", false, 599],\n  [6138, 8, 93, 1, \"الزلزلة\", false, 599],\n  [6146, 11, 14, 1, \"العاديات\", true, 600],\n  [6157, 11, 30, 1, \"القارعة\", true, 600],\n  [6168, 8, 16, 1, \"التكاثر\", true, 600],\n  [6176, 3, 13, 1, \"العصر\", true, 601],\n  [6179, 9, 32, 1, \"الهمزة\", true, 601],\n  [6188, 5, 19, 1, \"الفيل\", true, 601],\n  [6193, 4, 29, 1, \"قريش\", true, 602],\n  [6197, 7, 17, 1, \"الماعون\", true, 602],\n  [6204, 3, 15, 1, \"الكوثر\", true, 602],\n  [6207, 6, 18, 1, \"الكافرون\", true, 603],\n  [6213, 3, 114, 1, \"النصر\", false, 603],\n  [6216, 5, 6, 1, \"المسد\", true, 603],\n  [6221, 4, 22, 1, \"الإخلاص\", true, 604],\n  [6225, 5, 20, 1, \"الفلق\", true, 604],\n  [6230, 6, 21, 1, \"الناس\", true, 604],\n  [6236, 0, -1, -1, \"\", false, -1]\n]\n","import { SuraList } from \"./lists/surahList\"\nimport { Surah, SurahMeta } from \"./types\"\nimport { checkValidSurah } from \"./validation\"\n\n/**\n * Gets the metadata for the specified Surah.\n *\n * @param surah - The Surah to get the metadata for.\n * @returns The metadata for the specified Surah.\n */\nexport function getSurahMeta(surah: Surah): SurahMeta {\n  checkValidSurah(surah)\n  return SuraList[surah]\n}\n","import { getSurahMeta } from \"./getSurahMeta\"\nimport { Surah } from \"./types\"\n\n/**\n * Get the number of ayahs (verses) in the specified surah.\n * @param surah - The surah number.\n * @returns The number of ayahs in the specified surah.\n */\nexport function getAyaCountinSura(surah: Surah): number {\n  return getSurahMeta(surah)[1]\n}\n","import { meta } from \"./const\"\nimport { getAyaCountinSura } from \"./getAyaCountinSura\"\n\n/**\n * Checks if the given Surah (chapter) number is valid.\n *\n * @param surah - The Surah (chapter) number to check.\n * @param checkOnly - If true, the function will only check the validity and not throw an error.\n * @returns True if the Surah number is valid, false otherwise.\n */\nexport function checkValidSurah(surah: number, checkOnly = false): boolean {\n  if (typeof surah !== \"number\" || !Number.isInteger(surah)) {\n    if (checkOnly) return false\n    throw new TypeError(\"Ayah ID must be an integer\")\n  }\n\n  if (surah < 1 || surah > meta.numSuras) {\n    if (checkOnly) return false\n    throw new RangeError(\"Surah must be between 1 and \" + meta.numSuras)\n  }\n  return true\n}\n\n/**\n * Checks if the given Surah and Ayah (verse) numbers are valid.\n *\n * @param surah - The Surah (chapter) number to check.\n * @param ayah - The Ayah (verse) number to check.\n * @param checkOnly - If true, the function will only check the validity and not throw an error.\n * @returns True if the Surah and Ayah numbers are valid, false otherwise.\n */\nexport function checkValidSurahAyah(surah: number, ayah: number, checkOnly = false): boolean {\n  if (!checkValidSurah(surah, checkOnly)) return false\n\n  if (ayah < 1 || ayah > getAyaCountinSura(surah)) {\n    if (checkOnly) return false\n    throw new RangeError(\"Ayah must be between 1 and \" + getAyaCountinSura(surah))\n  }\n  return true\n}\n\n/**\n * Checks if the given Ayah (verse) ID is valid.\n *\n * @param ayahId - The Ayah (verse) ID to check.\n * @param checkOnly - If true, the function will only check the validity and not throw an error.\n * @returns True if the Ayah ID is valid, otherwise throws a RangeError.\n */\nexport function checkValidAyahId(ayahId: number, checkOnly = false): boolean {\n  if (typeof ayahId !== \"number\" || !Number.isInteger(ayahId)) {\n    if (checkOnly) return false\n    throw new TypeError(\"Ayah ID must be an integer\")\n  }\n  if (ayahId < 1 || ayahId > meta.numAyas) {\n    if (checkOnly) return false\n    throw new RangeError(\"Ayah ID must be between 1 and \" + meta.numAyas)\n  }\n  return true\n}\n","import { AyahNo, SurahAyahSegment } from \"./types\"\nimport { checkValidSurahAyah } from \"./validation\"\n\n/**\n *  Turns String of type \"x:y\" or \"x:y1-y2\" to array [x,y] or [x,[y1,y2]] respectively\n * @param {*} str String of type \"x:y\" or \"x:y1-y2\"\n * @returns {array} array [x,y] or [x,[y1,y2]] respectively\n */\nexport function ayaStringSplitter(str: string): SurahAyahSegment {\n  const [surahStr, ayahsStr] = str.trim().split(\":\")\n  const surah = parseInt(surahStr, 10)\n\n  if (isNaN(surah)) {\n    throw \"Error in surah format \" + str\n  }\n\n  if (!ayahsStr) {\n    throw \"Error in data \" + str\n  }\n\n  let ayahs: AyahNo | [AyahNo, AyahNo]\n  if (ayahsStr.includes(\"-\")) {\n    ayahs = ayahsStr.split(\"-\").map((a) => {\n      const ayah = parseInt(a, 10)\n      if (isNaN(ayah) || ayah === 0) {\n        throw \"Error in ayah \" + a\n      }\n      return ayah\n    }) as [AyahNo, AyahNo]\n    if (ayahs[0] > ayahs[1]) throw \"Error in ayah range \" + str\n  }\n  else {\n    ayahs = parseInt(ayahsStr, 10)\n    if (isNaN(ayahs) || ayahs === 0) {\n      throw \"Error in data \" + str\n    }\n    checkValidSurahAyah(surah, ayahs)\n  }\n\n  return [surah, ayahs]\n}\n","import { getSurahMeta } from \"./getSurahMeta\"\nimport { AyahId, AyahNo, Surah } from \"./types\"\nimport { checkValidSurahAyah } from \"./validation\"\n\n/**\n * Get the ayah ID for the given surah and ayah number.\n * @param surah - The surah number.\n * @param ayah - The ayah number within the surah.\n * @returns The ayah ID for the given surah and ayah number.\n */\nexport function findAyaidBySurah(surah: Surah, ayah: AyahNo): AyahId {\n  checkValidSurahAyah(surah, ayah)\n  const [startAyahId] = getSurahMeta(surah)\n  return startAyahId + ayah\n}\n","import { AyahId } from \"../types\"\n\n// ------------------ Juz Data ---------------------\nexport const JuzList: AyahId[] = [\n  0, 1, 149, 260, 386, 517, 641, 751, 900, 1042, 1201, 1328, 1479, 1649, 1803,\n  2030, 2215, 2484, 2674, 2876, 3215, 3386, 3564, 3733, 4090, 4265, 4511, 4706,\n  5105, 5242, 5673, 6237\n]\n","import { JuzList } from \"./lists/juzList\"\nimport { AyahId, Juz } from \"./types\"\nimport { checkValidAyahId } from \"./validation\"\n\n/**\n * Finds the Juz (part) of the Quran that contains the given Ayah (verse) ID.\n *\n * @param ayaId - The ID of the Ayah (verse) to find the Juz for.\n * @returns The Juz (part) of the Quran that contains the given Ayah ID.\n */\nexport function findJuzByAyaid(ayaId: AyahId): Juz {\n  checkValidAyahId(ayaId)\n\n  return JuzList.findIndex(x => x > ayaId) - 1\n}\n","import { findAyaidBySurah } from \"./findAyaidBySurah\"\nimport { findJuzByAyaid } from \"./findJuzByAyaid\"\nimport { AyahId, AyahNo, Juz, Surah } from \"./types\"\nimport { checkValidSurahAyah } from \"./validation\"\n\n/**\n * Finds the Juz (part) of the Quran that the given Ayah (verse) belongs to.\n *\n * @param surah - The Surah (chapter) number.\n * @param ayah - The Ayah (verse) number. Defaults to 1 if not provided.\n * @param ayahMode - If true, the `ayah` parameter is treated as an Ayah ID instead of a Surah and Ayah number.\n * @returns The Juz (part) number that the given Ayah belongs to.\n */\nexport function findJuz(surah: Surah, ayah: AyahNo = 1, ayahMode = false): Juz {\n  const ayahId: AyahId = ayahMode\n    ? ayah\n    : ((checkValidSurahAyah(surah, ayah)\n      && findAyaidBySurah(surah, ayah)) as AyahId)\n\n  return findJuzByAyaid(ayahId)\n}\n","import { SuraList } from \"./lists/surahList\"\nimport { AyahId, Surah, SurahAyah } from \"./types\"\nimport { checkValidAyahId } from \"./validation\"\n\n/**\n * Finds the Surah (chapter) and Ayah (verse) numbers that the given Ayah ID belongs to.\n *\n * @param ayaId - The Ayah ID to find the Surah and Ayah numbers for.\n * @returns An array containing the Surah number and the Ayah number within that Surah.\n */\nexport function findSurahByAyaid(ayaId: AyahId): SurahAyah {\n  checkValidAyahId(ayaId)\n\n  const suraNum: Surah = SuraList.findIndex(x => x[0] >= ayaId) - 1\n  return [suraNum, ayaId - SuraList[suraNum][0]]\n}\n","import { findAyaidBySurah } from \"./findAyaidBySurah\"\nimport { findJuzByAyaid } from \"./findJuzByAyaid\"\nimport { findSurahByAyaid } from \"./findSurahByAyaid\"\nimport { JuzList } from \"./lists/juzList\"\nimport { SuraList } from \"./lists/surahList\"\nimport { AyahId, AyahNo, Juz, Surah } from \"./types\"\nimport { checkValidAyahId, checkValidSurah } from \"./validation\"\n\n/**\n * Finds the juz (section) that contains the specified ayah (verse) and calculates the number of ayahs between the start of the juz and the start of the surah (chapter) that contains the ayah.\n *\n * @param surah - The surah (chapter) that contains the ayah.\n * @param ayah - The ayah (verse) number.\n * @param ayahMode - A boolean flag indicating whether the `ayah` parameter represents an ayah number or an ayah ID.\n * @returns An object containing the following properties:\n *   - `juz`: The juz (section) that contains the ayah.\n *   - `leftAyahId`: The ayah ID of the first ayah in the juz.\n *   - `ayahsBetweenJuzSurah`: The number of ayahs between the start of the juz and the start of the surah (positive if the surah starts is in the juz, negative if the surah starts before the juz).\n */\nexport function findJuzAndShift(\n  surah: Surah,\n  ayah: AyahNo,\n  ayahMode = false\n): {\n    juz: Juz\n    leftAyahId: AyahId\n    ayahsBetweenJuzSurah: number\n  } {\n  const ayahId: AyahId = ayahMode\n    ? ((checkValidAyahId(ayah) && ayah) as AyahId)\n    : ((checkValidSurah(surah) && findAyaidBySurah(surah, ayah)) as AyahId)\n\n  const juz = findJuzByAyaid(ayahId)\n  const leftAyahId = JuzList[juz]\n  if (ayahMode) [surah] = findSurahByAyaid(ayahId)\n  const [surahStartAyahId] = SuraList[surah]\n  return {\n    juz,\n    ayahsBetweenJuzSurah: surahStartAyahId - leftAyahId + 1,\n    leftAyahId\n  }\n}\n","import { AyahId } from \"../types\"\n\n// ------------------ Hizb Data ---------------------\nexport const HizbQuarterList: AyahId[] = [\n  0, 1, 33, 51, 67, 82, 99, 113, 131, 149, 165, 184, 196, 210, 226, 240, 250,\n  260, 270, 279, 290, 308, 326, 345, 368, 386, 406, 426, 446, 464, 479, 494,\n  505, 517, 529, 551, 567, 581, 593, 607, 628, 641, 656, 670, 681, 696, 710,\n  720, 736, 751, 766, 778, 802, 825, 848, 863, 884, 900, 916, 930, 940, 955,\n  985, 1001, 1019, 1042, 1071, 1096, 1110, 1125, 1143, 1161, 1182, 1201, 1221,\n  1236, 1254, 1269, 1281, 1295, 1310, 1328, 1346, 1357, 1375, 1390, 1417, 1435,\n  1454, 1479, 1497, 1514, 1534, 1557, 1581, 1603, 1626, 1649, 1673, 1697, 1712,\n  1726, 1742, 1760, 1778, 1803, 1852, 1902, 1931, 1952, 1976, 1991, 2012, 2030,\n  2052, 2079, 2099, 2128, 2157, 2172, 2191, 2215, 2239, 2272, 2309, 2349, 2403,\n  2431, 2459, 2484, 2512, 2534, 2566, 2596, 2614, 2633, 2655, 2674, 2709, 2748,\n  2792, 2812, 2826, 2844, 2856, 2876, 2908, 2933, 2984, 3043, 3113, 3160, 3186,\n  3215, 3241, 3264, 3281, 3303, 3328, 3341, 3366, 3386, 3410, 3440, 3463, 3491,\n  3514, 3534, 3551, 3564, 3584, 3593, 3616, 3630, 3652, 3675, 3701, 3733, 3765,\n  3810, 3871, 3933, 3991, 4022, 4066, 4090, 4111, 4134, 4154, 4174, 4199, 4227,\n  4243, 4265, 4285, 4299, 4323, 4349, 4382, 4431, 4485, 4511, 4531, 4555, 4578,\n  4601, 4613, 4626, 4657, 4706, 4759, 4810, 4855, 4902, 4980, 5054, 5091, 5105,\n  5118, 5137, 5157, 5178, 5192, 5218, 5230, 5242, 5272, 5324, 5394, 5448, 5495,\n  5552, 5610, 5673, 5759, 5830, 5885, 5949, 6024, 6091, 6155, 6237\n]\n","import { findJuzByAyaid } from \"./findJuzByAyaid\"\nimport { HizbQuarterList } from \"./lists/hizbList\"\nimport { AyahId, JuzHizb } from \"./types\"\nimport { checkValidAyahId } from \"./validation\"\n\n/**\n * Finds the Juz, Hizb, and Hizb ID for the given Ayah ID.\n *\n * @param ayaId - The Ayah ID to find the Juz, Hizb, and Hizb ID for.\n * @returns An object containing the Juz, Hizb, and Hizb ID for the given Ayah ID.\n */\nexport function findJuzHizbByAyaid(ayaId: AyahId): JuzHizb {\n  checkValidAyahId(ayaId)\n\n  const juz = findJuzByAyaid(ayaId)\n  const quarterIndex = HizbQuarterList.findIndex(x => x > ayaId) - 1\n\n  const hizb = quarterIndex % 8 || 8\n  return { juz, hizb, id: quarterIndex }\n}\n","import { findAyaidBySurah } from \"./findAyaidBySurah\"\nimport { findJuzHizbByAyaid } from \"./findJuzHizbByAyaid\"\nimport { AyahId, AyahNo, JuzHizb, Surah } from \"./types\"\nimport { checkValidSurah } from \"./validation\"\n\n/**\n * Finds the Juz (part) and Hizb (section) of the Quran that the given Ayah (verse) belongs to.\n *\n * @param surah - The Surah (chapter) number.\n * @param ayah - The Ayah (verse) number. Defaults to 1 if not provided.\n * @param ayahMode - If true, the `ayah` parameter is treated as an Ayah ID instead of a Surah and Ayah number.\n * @returns An object containing the Juz (part) number, Hizb (section) number, and the index of the Hizb that the given Ayah belongs to.\n */\nexport function findJuzHizb(\n  surah: Surah,\n  ayah: AyahNo = 1,\n  ayahMode = false\n): JuzHizb {\n  const ayahId: AyahId = ayahMode\n    ? ayah\n    : ((checkValidSurah(surah) && findAyaidBySurah(surah, ayah)) as AyahId)\n\n  return findJuzHizbByAyaid(ayahId)\n}\n","import { meta } from \"./const\"\nimport { findJuzAndShift } from \"./findJuzAndShift\"\nimport { findSurahByAyaid } from \"./findSurahByAyaid\"\nimport { JuzList } from \"./lists/juzList\"\nimport { AyahNo, Juz, JuzMeta, Surah } from \"./types\"\n\n/**\n * Finds the JuzMeta for a given Surah and Ayah.\n *\n * @param surah - The Surah (chapter) number.\n * @param ayah - The Ayah (verse) number.\n * @returns The JuzMeta object containing the left juz, ayahs between juz and surah, right juz, left ayah ID, and right ayah ID.\n */\nexport function findJuzMetaBySurah(surah: Surah, ayah: AyahNo = 1): JuzMeta {\n  const {\n    juz: leftjuz,\n    ayahsBetweenJuzSurah,\n    leftAyahId\n  } = findJuzAndShift(surah, ayah)\n\n  let rightJuz: Juz = leftjuz\n  while (\n    rightJuz < meta.numJuzs\n    && findSurahByAyaid(JuzList[rightJuz + 1])[0] === surah\n  ) {\n    rightJuz++\n  }\n\n  return {\n    leftjuz,\n    ayahsBetweenJuzSurah,\n    rightJuz,\n    leftAyahId,\n    rightAyahId: JuzList[rightJuz + 1]\n  }\n}\n","import { AyahId } from \"../types\"\n\nexport const PageList: AyahId[] = [\n  0, 1, 8, 13, 24, 32, 37, 45, 56, 65, 69, 77, 84, 91, 96, 101, 109, 113, 120,\n  127, 134, 142, 149, 153, 161, 171, 177, 184, 189, 194, 198, 204, 210, 218,\n  223, 227, 232, 238, 241, 245, 253, 256, 260, 264, 267, 272, 277, 282, 289,\n  290, 294, 303, 309, 316, 323, 331, 339, 346, 355, 364, 371, 377, 385, 394,\n  402, 409, 415, 426, 434, 442, 447, 451, 459, 467, 474, 480, 488, 494, 500,\n  505, 508, 513, 517, 520, 527, 531, 538, 545, 553, 559, 568, 573, 580, 585,\n  588, 595, 599, 607, 615, 621, 628, 634, 641, 648, 656, 664, 669, 672, 675,\n  679, 683, 687, 693, 701, 706, 711, 715, 720, 727, 734, 740, 746, 752, 759,\n  765, 773, 778, 783, 790, 798, 808, 817, 825, 834, 842, 849, 858, 863, 871,\n  880, 884, 891, 900, 908, 914, 921, 927, 932, 936, 941, 947, 955, 966, 977,\n  985, 992, 998, 1006, 1012, 1022, 1028, 1036, 1042, 1050, 1059, 1075, 1085,\n  1092, 1098, 1104, 1110, 1114, 1118, 1125, 1133, 1142, 1150, 1161, 1169, 1177,\n  1186, 1194, 1201, 1206, 1213, 1222, 1230, 1236, 1242, 1249, 1256, 1262, 1267,\n  1272, 1276, 1283, 1290, 1297, 1304, 1308, 1315, 1322, 1329, 1335, 1342, 1347,\n  1353, 1358, 1365, 1371, 1379, 1385, 1390, 1398, 1407, 1418, 1426, 1435, 1443,\n  1453, 1462, 1471, 1479, 1486, 1493, 1502, 1511, 1519, 1527, 1536, 1545, 1555,\n  1562, 1571, 1582, 1591, 1601, 1611, 1619, 1627, 1634, 1640, 1649, 1660, 1666,\n  1675, 1683, 1692, 1700, 1708, 1713, 1721, 1726, 1736, 1742, 1750, 1756, 1761,\n  1769, 1775, 1784, 1793, 1803, 1818, 1834, 1854, 1873, 1893, 1908, 1916, 1928,\n  1936, 1944, 1956, 1966, 1974, 1981, 1989, 1995, 2004, 2012, 2020, 2030, 2037,\n  2047, 2057, 2068, 2079, 2088, 2096, 2105, 2116, 2126, 2134, 2145, 2156, 2161,\n  2168, 2175, 2186, 2194, 2202, 2215, 2224, 2238, 2251, 2262, 2276, 2289, 2302,\n  2315, 2327, 2346, 2361, 2386, 2400, 2413, 2425, 2436, 2447, 2462, 2474, 2484,\n  2494, 2508, 2519, 2528, 2541, 2556, 2565, 2574, 2585, 2596, 2601, 2611, 2619,\n  2626, 2634, 2642, 2651, 2660, 2668, 2674, 2691, 2701, 2716, 2733, 2748, 2763,\n  2778, 2792, 2802, 2812, 2819, 2823, 2828, 2835, 2845, 2850, 2853, 2858, 2867,\n  2876, 2888, 2899, 2911, 2923, 2933, 2952, 2972, 2993, 3016, 3044, 3069, 3092,\n  3116, 3139, 3160, 3173, 3182, 3195, 3204, 3215, 3223, 3236, 3248, 3258, 3266,\n  3274, 3281, 3288, 3296, 3303, 3312, 3323, 3330, 3337, 3347, 3355, 3364, 3371,\n  3379, 3386, 3393, 3404, 3415, 3425, 3434, 3442, 3451, 3460, 3470, 3481, 3489,\n  3498, 3504, 3515, 3524, 3534, 3540, 3549, 3556, 3564, 3569, 3577, 3584, 3588,\n  3596, 3607, 3614, 3621, 3629, 3638, 3646, 3655, 3664, 3672, 3679, 3691, 3699,\n  3705, 3718, 3733, 3746, 3760, 3776, 3789, 3813, 3840, 3865, 3891, 3915, 3942,\n  3971, 3987, 3997, 4013, 4032, 4054, 4064, 4069, 4080, 4090, 4099, 4106, 4115,\n  4126, 4133, 4141, 4150, 4159, 4167, 4174, 4183, 4192, 4200, 4211, 4219, 4230,\n  4239, 4248, 4257, 4265, 4273, 4283, 4288, 4295, 4304, 4317, 4324, 4336, 4348,\n  4359, 4373, 4386, 4399, 4415, 4433, 4454, 4474, 4487, 4496, 4506, 4516, 4525,\n  4531, 4539, 4546, 4557, 4565, 4575, 4584, 4593, 4599, 4607, 4612, 4617, 4624,\n  4631, 4646, 4666, 4682, 4706, 4727, 4750, 4767, 4785, 4811, 4829, 4853, 4874,\n  4896, 4918, 4942, 4969, 4996, 5030, 5056, 5079, 5087, 5094, 5100, 5105, 5111,\n  5116, 5126, 5130, 5136, 5143, 5151, 5156, 5162, 5169, 5178, 5186, 5193, 5200,\n  5209, 5218, 5223, 5230, 5237, 5242, 5254, 5268, 5287, 5314, 5332, 5358, 5386,\n  5415, 5430, 5448, 5461, 5476, 5495, 5513, 5543, 5571, 5597, 5617, 5642, 5673,\n  5703, 5728, 5759, 5801, 5830, 5855, 5883, 5910, 5932, 5964, 5994, 6017, 6044,\n  6073, 6099, 6126, 6138, 6156, 6177, 6194, 6208, 6222, 6237\n]\n","import { findAyaidBySurah } from \"./findAyaidBySurah\"\nimport { PageList } from \"./lists/pageList\"\nimport { AyahId, AyahNo, Page, Surah } from \"./types\"\nimport { checkValidAyahId, checkValidSurah } from \"./validation\"\n\n/**\n * Finds the page number for the given Surah and Ayah number.\n *\n * @param surah - The Surah to find the page for.\n * @param ayah - The Ayah number to find the page for.\n * @param ayahMode - If true, the `ayah` parameter is treated as an AyahId instead of an AyahNo.\n * @returns The page number for the given Surah and Ayah.\n */\nexport function findPage(surah: Surah, ayah: AyahNo, ayahMode = false): Page {\n  const ayahId: AyahId = ayahMode\n    ? ((checkValidAyahId(ayah) && ayah) as AyahId)\n    : ((checkValidSurah(surah) && findAyaidBySurah(surah, ayah)) as AyahId)\n\n  return PageList.findIndex(x => x > ayahId) - 1\n}\n","import { meta } from \"./const\"\nimport { findAyaidBySurah } from \"./findAyaidBySurah\"\nimport { findJuzByAyaid } from \"./findJuzByAyaid\"\nimport { findPage } from \"./findPage\"\nimport { JuzList } from \"./lists/juzList\"\nimport { PageList } from \"./lists/pageList\"\nimport { SuraList } from \"./lists/surahList\"\nimport { AyahId, AyahNo, Juz, Page, Surah, SurahAyah } from \"./types\"\nimport { checkValidSurah } from \"./validation\"\n\n/**\n * ALternative deprecated method\n * @param {*} pageNum\n */\n// export function pageMetaOld(pageNum: number): any {\n//   if (pageNum < 1 || pageNum > meta.numPages)\n//   throw new RangeError(\"pagenum must be between 1 and \" + meta.numPages)\n//   const [curPage, nextPage] = [\n//     findSurahByAyaid(PageList[pageNum]),\n//     findSurahByAyaid(PageList[pageNum + 1]),\n//   ]\n//   const [firstSurah, firstAyah, lastSurah, lastAyah] = [\n//     curPage[0],\n//     curPage[1],\n//     nextPage[1] === 1 ? nextPage[0] - 1 : nextPage[0],\n//     nextPage[1] === 1 ? SuraList[nextPage[0] - 1][1] : nextPage[1] - 1,\n//   ]\n//   return {\n//     pageNum,\n//     first: [firstSurah, firstAyah],\n//     last: [lastSurah, lastAyah],\n//   }\n// }\n\n/**\n * Find range containing ayah according to the mode\n * @param surah\n * @param ayah\n * @param {*} mode can be either 'all', 'juz', 'surah', 'ayah', 'page'\n * default is all\n */\nexport function findRangeAroundAyah(\n  surah: Surah,\n  ayah: AyahNo,\n  mode: \"juz\" | \"surah\" | \"ayah\" | \"page\" | \"all\",\n  ayahMode = false\n): SurahAyah {\n  const ayahId: AyahId = ayahMode\n    ? ayah\n    : ((checkValidSurah(surah) && findAyaidBySurah(surah, ayah)) as AyahId)\n\n  switch (mode) {\n    case \"juz\": {\n      const juz: Juz = findJuzByAyaid(ayahId)\n      return [JuzList[juz], JuzList[juz + 1] - 1]\n    }\n\n    case \"surah\": {\n      return [SuraList[surah][0] + 1, SuraList[surah + 1][0]]\n    }\n\n    case \"ayah\": {\n      return [ayahId, ayahId]\n    }\n    case \"page\": {\n      const page: Page = findPage(-1, ayahId, true)\n      return [PageList[page], PageList[page + 1] - 1]\n    }\n\n    case \"all\":\n    default:\n      return [1, meta.numAyas]\n  }\n}\n","/**\n * Performs a binary search on the given array to find the index of the specified element.\n *\n * @param ar - The array to search.\n * @param el - The element to search for.\n * @param compare_fn - An optional comparison function to use for the search. Defaults to a simple numeric comparison.\n * @returns The index of the element if found, or a negative value indicating the insertion point if not found.\n */\nexport function binarySearch(\n  ar: Array<number>,\n  el: number,\n  compare_fn: (a: number, b: number) => number = (a, b) => a - b\n): number {\n  let m = 0\n  let n = ar.length - 1\n  while (m <= n) {\n    const k = (n + m) >> 1\n    const cmp = compare_fn(el, ar[k])\n    if (cmp > 0) {\n      m = k + 1\n    }\n    else if (cmp < 0) {\n      n = k - 1\n    }\n    else {\n      return k\n    }\n  }\n  return -m - 1\n}\n","import { findAyaidBySurah } from \"./findAyaidBySurah\"\nimport { JuzList } from \"./lists/juzList\"\nimport { AyahId, AyahNo, Juz, Surah } from \"./types\"\nimport { binarySearch } from \"./utils\"\nimport { checkValidAyahId, checkValidSurah } from \"./validation\"\n\n/**\n * Returns the Juz (part) number that the given Ayah (verse) belongs to.\n *\n *\n * @param surah - The Surah (chapter) number.\n * @param ayah - The Ayah (verse) number.\n * @param ayahMode - If true, the `ayah` parameter is treated as an Ayah ID instead of a Surah and Ayah number.\n * @returns The Juz (part) number that the given Ayah belongs to. Returns Positive number if aya is first ayah of juz, number is juz number\n */\nexport function isAyahJuzFirst(\n  surah: Surah,\n  ayah: AyahNo,\n  ayahMode = false\n): Juz {\n  const ayahId: AyahId = ayahMode\n    ? ((checkValidAyahId(ayah) && ayah) as AyahId)\n    : ((checkValidSurah(surah) && findAyaidBySurah(surah, ayah)) as AyahId)\n\n  return binarySearch(JuzList, ayahId)\n  // return JuzList.findIndex((x: AyahId) => x == ayahId)\n}\n","import { findAyaidBySurah } from \"./findAyaidBySurah\"\nimport { PageList } from \"./lists/pageList\"\nimport { AyahId, AyahNo, Juz, Surah } from \"./types\"\nimport { binarySearch } from \"./utils\"\nimport { checkValidAyahId, checkValidSurah } from \"./validation\"\n\n/**\n * Determines if the given ayah is the first ayah of a juz.\n *\n * @param surah - The surah number.\n * @param ayah - The ayah number.\n * @param ayahMode - Optional flag to indicate if the ayah number is already a valid ayah ID.\n * @returns The juz number if the ayah is the first ayah of the juz, otherwise -1.\n */\nexport function isAyahPageFirst(\n  surah: Surah,\n  ayah: AyahNo,\n  ayahMode = false\n): Juz {\n  const ayahId: AyahId = ayahMode\n    ? ((checkValidAyahId(ayah) && ayah) as AyahId)\n    : ((checkValidSurah(surah) && findAyaidBySurah(surah, ayah)) as AyahId)\n\n  return binarySearch(PageList, ayahId)\n  // return PageList.findIndex((x: AyahId) => x == ayahId)\n}\n","import { AyahId } from \"../types\"\n\n// ------------------ Manzil Data ---------------------\nexport const ManzilList: AyahId[] = [\n  0, 1, 670, 1365, 2030, 2933, 3789, 4631, 6237\n]\n","import { AyahId } from \"../types\"\n\n// ------------------ Ruku Data ---------------------\nexport const RukuList: AyahId[] = [\n  0, 1, 8, 15, 28, 37, 47, 54, 67, 69, 79, 90, 94, 104, 111, 120, 129, 137, 149,\n  155, 160, 171, 175, 184, 190, 196, 204, 218, 224, 229, 236, 239, 243, 250,\n  256, 261, 265, 268, 274, 281, 289, 291, 294, 303, 314, 324, 335, 348, 357,\n  365, 374, 385, 395, 403, 414, 423, 437, 442, 449, 465, 474, 483, 494, 504,\n  508, 516, 519, 527, 536, 544, 553, 564, 570, 581, 585, 590, 594, 598, 606,\n  609, 620, 628, 635, 646, 656, 665, 670, 675, 681, 689, 696, 704, 713, 720,\n  726, 736, 747, 756, 763, 770, 778, 785, 790, 800, 810, 820, 831, 840, 845,\n  850, 860, 872, 880, 884, 890, 900, 911, 919, 930, 934, 940, 944, 955, 965,\n  980, 986, 994, 1002, 1008, 1013, 1019, 1027, 1039, 1048, 1054, 1063, 1081,\n  1084, 1096, 1102, 1106, 1112, 1117, 1126, 1136, 1143, 1161, 1171, 1180, 1189,\n  1198, 1205, 1209, 1219, 1225, 1230, 1236, 1242, 1252, 1260, 1265, 1273, 1278,\n  1295, 1302, 1308, 1316, 1325, 1335, 1346, 1354, 1358, 1365, 1375, 1385, 1395,\n  1405, 1418, 1425, 1435, 1447, 1457, 1468, 1474, 1482, 1498, 1509, 1523, 1534,\n  1542, 1557, 1569, 1583, 1597, 1603, 1617, 1626, 1632, 1639, 1646, 1654, 1665,\n  1676, 1690, 1701, 1708, 1715, 1726, 1734, 1739, 1745, 1751, 1757, 1763, 1772,\n  1778, 1785, 1792, 1803, 1818, 1828, 1847, 1863, 1882, 1902, 1911, 1923, 1927,\n  1936, 1942, 1952, 1962, 1967, 1972, 1978, 1985, 1991, 2002, 2012, 2021, 2030,\n  2040, 2052, 2060, 2070, 2082, 2090, 2100, 2107, 2114, 2123, 2130, 2141, 2153,\n  2158, 2163, 2172, 2185, 2190, 2194, 2200, 2211, 2223, 2242, 2251, 2266, 2291,\n  2301, 2316, 2333, 2349, 2373, 2403, 2425, 2438, 2453, 2464, 2477, 2484, 2494,\n  2513, 2525, 2534, 2559, 2577, 2596, 2606, 2618, 2621, 2629, 2634, 2644, 2653,\n  2660, 2668, 2674, 2696, 2706, 2724, 2751, 2766, 2792, 2802, 2812, 2818, 2826,\n  2832, 2842, 2849, 2853, 2856, 2865, 2876, 2890, 2900, 2916, 2933, 2942, 2966,\n  2985, 3002, 3037, 3055, 3073, 3092, 3108, 3124, 3160, 3174, 3191, 3204, 3218,\n  3226, 3242, 3253, 3266, 3274, 3281, 3295, 3303, 3313, 3328, 3341, 3354, 3363,\n  3371, 3385, 3392, 3404, 3410, 3420, 3429, 3437, 3450, 3463, 3470, 3481, 3489,\n  3504, 3515, 3526, 3534, 3542, 3554, 3561, 3568, 3574, 3586, 3592, 3602, 3607,\n  3616, 3628, 3637, 3643, 3652, 3661, 3668, 3675, 3687, 3698, 3706, 3718, 3738,\n  3756, 3773, 3789, 3810, 3863, 3902, 3927, 3971, 3985, 3997, 4011, 4035, 4059,\n  4068, 4080, 4090, 4100, 4111, 4122, 4129, 4134, 4143, 4154, 4161, 4171, 4184,\n  4194, 4202, 4212, 4219, 4227, 4237, 4244, 4251, 4263, 4273, 4282, 4292, 4302,\n  4316, 4326, 4341, 4351, 4361, 4371, 4382, 4393, 4415, 4444, 4457, 4474, 4485,\n  4495, 4500, 4511, 4521, 4531, 4537, 4546, 4557, 4565, 4574, 4584, 4594, 4601,\n  4610, 4613, 4623, 4631, 4646, 4660, 4676, 4699, 4722, 4736, 4764, 4785, 4810,\n  4817, 4847, 4869, 4887, 4902, 4927, 4947, 4980, 5018, 5054, 5076, 5086, 5095,\n  5101, 5105, 5111, 5118, 5127, 5137, 5144, 5151, 5157, 5164, 5173, 5178, 5186,\n  5189, 5197, 5200, 5210, 5218, 5225, 5230, 5237, 5242, 5256, 5272, 5305, 5324,\n  5361, 5376, 5411, 5420, 5440, 5448, 5467, 5476, 5495, 5496, 5527, 5552, 5582,\n  5592, 5614, 5623, 5663, 5673, 5703, 5713, 5739, 5759, 5801, 5830, 5849, 5885,\n  5910, 5932, 5949, 5968, 5994, 6024, 6044, 6059, 6080, 6091, 6099, 6107, 6126,\n  6131, 6139, 6147, 6158, 6169, 6177, 6180, 6189, 6194, 6198, 6205, 6208, 6214,\n  6217, 6222, 6226, 6231, 6237\n]\n","import { Sajda } from \"../types\"\n\n// ------------------ Page Data ---------------------\n// code to get starting pages for surahs\n// let res=[];\n// Page.reduce((s,c,p)=>{\n// while (c[0]>=s)\n// {res.push([s,c[0],s==c[0]?p:p-1]);s+=1;}\n// return s\n// },0)\n// export Page from \"~/js/qdata-page.json\"\n// ------------------ Sajda Data ---------------------\nexport const SajdaList: Sajda[] = [\n  // [ayaId, type]\n  [1160, \"recommended\"],\n  [1722, \"recommended\"],\n  [1951, \"recommended\"],\n  [2138, \"recommended\"],\n  [2308, \"recommended\"],\n  [2613, \"recommended\"],\n  [2672, \"recommended\"],\n  [2915, \"recommended\"],\n  [3185, \"recommended\"],\n  [3518, \"obligatory\"],\n  [3994, \"recommended\"],\n  [4256, \"obligatory\"],\n  [4846, \"obligatory\"],\n  [5905, \"recommended\"],\n  [6125, \"obligatory\"]\n]\n","import { meta } from \"./const\"\nimport { findAyaidBySurah } from \"./findAyaidBySurah\"\nimport { findSurahByAyaid } from \"./findSurahByAyaid\"\nimport { AyahId, AyahNo, Surah, SurahAyah } from \"./types\"\n\n/**\n * Get the next ayah for the given surah and ayah number.\n * @param surah - The surah number.\n * @param ayah - The ayah number within the surah.\n * @returns The surah and ayah number of the next ayah.\n */\nexport function nextAyah(surah: Surah, ayah: AyahNo): SurahAyah {\n  if (surah < 1 || surah > meta.numSuras)\n    throw new RangeError(\"Surah must be between 1 and \" + meta.numSuras)\n\n  const ayaid: AyahId = findAyaidBySurah(surah, ayah)\n  return findSurahByAyaid(ayaid == meta.numAyas ? 1 : ayaid + 1)\n}\n","import { meta } from \"./const\"\nimport { findSurahByAyaid } from \"./findSurahByAyaid\"\nimport { PageList } from \"./lists/pageList\"\nimport { AyahId, Page, PageMeta } from \"./types\"\n\n/**\n * Retrieves the page metadata for the specified page number.\n *\n * @param pageNum - The page number to retrieve metadata for.\n * @returns The page metadata, including the first and last ayah IDs on the page.\n * @throws {RangeError} If the page number is out of the valid range (1 to `meta.numPages`).\n */\nexport function pageMeta(pageNum: Page): PageMeta {\n  // todo rename to getPageMeta in next major version\n  if (pageNum < 1 || pageNum > meta.numPages)\n    throw new RangeError(\"pagenum must be between 1 and \" + meta.numPages)\n\n  const [curPage, nextPage]: [AyahId, AyahId] = [\n    PageList[pageNum],\n    PageList[pageNum + 1]\n  ]\n\n  return {\n    pageNum,\n    first: findSurahByAyaid(curPage),\n    last: [...findSurahByAyaid(nextPage - 1)]\n  }\n}\n","import { meta } from \"./const\"\nimport { findAyaidBySurah } from \"./findAyaidBySurah\"\nimport { findSurahByAyaid } from \"./findSurahByAyaid\"\nimport { AyahId, AyahNo, Surah, SurahAyah } from \"./types\"\nimport { checkValidSurah } from \"./validation\"\n\n/**\n * Get the previous ayah for the given surah and ayah number.\n * @param surah - The surah number.\n * @param ayah - The ayah number within the surah.\n * @returns The surah and ayah number of the previous ayah.\n */\nexport function prevAyah(surah: Surah, ayah: AyahNo): SurahAyah {\n  checkValidSurah(surah)\n\n  const ayaid: AyahId = findAyaidBySurah(surah, ayah)\n  return findSurahByAyaid(ayaid == 1 ? meta.numAyas : ayaid - 1)\n}\n","import { SuraName } from \"../types\"\nexport const suraNames: (SuraName | [])[] = [\n  [],\n  [\"Al-Faatiha\", \"The Opening\"],\n  [\"Al-Baqara\", \"The Cow\"],\n  [\"Aal-i-Imraan\", \"The Family of Imraan\"],\n  [\"An-Nisaa\", \"The Women\"],\n  [\"Al-Maaida\", \"The Table\"],\n  [\"Al-An'aam\", \"The Cattle\"],\n  [\"Al-A'raaf\", \"The Heights\"],\n  [\"Al-Anfaal\", \"The Spoils of War\"],\n  [\"At-Tawba\", \"The Repentance\"],\n  [\"Yunus\", \"Jonas\"],\n  [\"Hud\", \"Hud\"],\n  [\"Yusuf\", \"Joseph\"],\n  [\"Ar-Ra'd\", \"The Thunder\"],\n  [\"Ibrahim\", \"Abraham\"],\n  [\"Al-Hijr\", \"The Rock\"],\n  [\"An-Nahl\", \"The Bee\"],\n  [\"Al-Israa\", \"The Night Journey\"],\n  [\"Al-Kahf\", \"The Cave\"],\n  [\"Maryam\", \"Mary\"],\n  [\"Taa-Haa\", \"Taa-Haa\"],\n  [\"Al-Anbiyaa\", \"The Prophets\"],\n  [\"Al-Hajj\", \"The Pilgrimage\"],\n  [\"Al-Muminoon\", \"The Believers\"],\n  [\"An-Noor\", \"The Light\"],\n  [\"Al-Furqaan\", \"The Criterion\"],\n  [\"Ash-Shu'araa\", \"The Poets\"],\n  [\"An-Naml\", \"The Ant\"],\n  [\"Al-Qasas\", \"The Stories\"],\n  [\"Al-Ankaboot\", \"The Spider\"],\n  [\"Ar-Room\", \"The Romans\"],\n  [\"Luqman\", \"Luqman\"],\n  [\"As-Sajda\", \"The Prostration\"],\n  [\"Al-Ahzaab\", \"The Clans\"],\n  [\"Saba\", \"Sheba\"],\n  [\"Faatir\", \"The Originator\"],\n  [\"Yaseen\", \"Yaseen\"],\n  [\"As-Saaffaat\", \"Those drawn up in Ranks\"],\n  [\"Saad\", \"The letter Saad\"],\n  [\"Az-Zumar\", \"The Groups\"],\n  [\"Al-Ghaafir\", \"The Forgiver\"],\n  [\"Fussilat\", \"Explained in detail\"],\n  [\"Ash-Shura\", \"Consultation\"],\n  [\"Az-Zukhruf\", \"Ornaments of gold\"],\n  [\"Ad-Dukhaan\", \"The Smoke\"],\n  [\"Al-Jaathiya\", \"Crouching\"],\n  [\"Al-Ahqaf\", \"The Dunes\"],\n  [\"Muhammad\", \"Muhammad\"],\n  [\"Al-Fath\", \"The Victory\"],\n  [\"Al-Hujuraat\", \"The Inner Apartments\"],\n  [\"Qaaf\", \"The letter Qaaf\"],\n  [\"Adh-Dhaariyat\", \"The Winnowing Winds\"],\n  [\"At-Tur\", \"The Mount\"],\n  [\"An-Najm\", \"The Star\"],\n  [\"Al-Qamar\", \"The Moon\"],\n  [\"Ar-Rahmaan\", \"The Beneficent\"],\n  [\"Al-Waaqia\", \"The Inevitable\"],\n  [\"Al-Hadid\", \"The Iron\"],\n  [\"Al-Mujaadila\", \"The Pleading Woman\"],\n  [\"Al-Hashr\", \"The Exile\"],\n  [\"Al-Mumtahana\", \"She that is to be examined\"],\n  [\"As-Saff\", \"The Ranks\"],\n  [\"Al-Jumu'a\", \"Friday\"],\n  [\"Al-Munaafiqoon\", \"The Hypocrites\"],\n  [\"At-Taghaabun\", \"Mutual Disillusion\"],\n  [\"At-Talaaq\", \"Divorce\"],\n  [\"At-Tahrim\", \"The Prohibition\"],\n  [\"Al-Mulk\", \"The Sovereignty\"],\n  [\"Al-Qalam\", \"The Pen\"],\n  [\"Al-Haaqqa\", \"The Reality\"],\n  [\"Al-Ma'aarij\", \"The Ascending Stairways\"],\n  [\"Nooh\", \"Noah\"],\n  [\"Al-Jinn\", \"The Jinn\"],\n  [\"Al-Muzzammil\", \"The Enshrouded One\"],\n  [\"Al-Muddaththir\", \"The Cloaked One\"],\n  [\"Al-Qiyaama\", \"The Resurrection\"],\n  [\"Al-Insaan\", \"Man\"],\n  [\"Al-Mursalaat\", \"The Emissaries\"],\n  [\"An-Naba\", \"The Announcement\"],\n  [\"An-Naazi'aat\", \"Those who drag forth\"],\n  [\"Abasa\", \"He frowned\"],\n  [\"At-Takwir\", \"The Overthrowing\"],\n  [\"Al-Infitaar\", \"The Cleaving\"],\n  [\"Al-Mutaffifin\", \"Defrauding\"],\n  [\"Al-Inshiqaaq\", \"The Splitting Open\"],\n  [\"Al-Burooj\", \"The Constellations\"],\n  [\"At-Taariq\", \"The Morning Star\"],\n  [\"Al-A'laa\", \"The Most High\"],\n  [\"Al-Ghaashiya\", \"The Overwhelming\"],\n  [\"Al-Fajr\", \"The Dawn\"],\n  [\"Al-Balad\", \"The City\"],\n  [\"Ash-Shams\", \"The Sun\"],\n  [\"Al-Lail\", \"The Night\"],\n  [\"Ad-Dhuhaa\", \"The Morning Hours\"],\n  [\"Ash-Sharh\", \"The Consolation\"],\n  [\"At-Tin\", \"The Fig\"],\n  [\"Al-Alaq\", \"The Clot\"],\n  [\"Al-Qadr\", \"The Power, Fate\"],\n  [\"Al-Bayyina\", \"The Evidence\"],\n  [\"Az-Zalzala\", \"The Earthquake\"],\n  [\"Al-Aadiyaat\", \"The Chargers\"],\n  [\"Al-Qaari'a\", \"The Calamity\"],\n  [\"At-Takaathur\", \"Competition\"],\n  [\"Al-Asr\", \"The Declining Day, Epoch\"],\n  [\"Al-Humaza\", \"The Traducer\"],\n  [\"Al-Fil\", \"The Elephant\"],\n  [\"Quraish\", \"Quraysh\"],\n  [\"Al-Maa'un\", \"Almsgiving\"],\n  [\"Al-Kawthar\", \"Abundance\"],\n  [\"Al-Kaafiroon\", \"The Disbelievers\"],\n  [\"An-Nasr\", \"Divine Support\"],\n  [\"Al-Masad\", \"The Palm Fibre\"],\n  [\"Al-Ikhlaas\", \"Sincerity\"],\n  [\"Al-Falaq\", \"The Dawn\"],\n  [\"An-Naas\", \"Mankind\"]\n]\n","import { SuraName } from \"../types\"\nexport const suraNames: (SuraName | [])[] = [\n  [],\n  [\"Аль-Фатиха\", \"Открывающая Коран\"],\n  [\"Аль-Бакара\", \"Корова\"],\n  [\"Аль ‘Имран\", \"Семейство ‘Имрана\"],\n  [\"Ан-Ниса\", \"Женщины\"],\n  [\"Аль-Маида\", \"Трапеза\"],\n  [\"Аль-Ан‘ам\", \"Скот\"],\n  [\"Аль-А‘раф\", \"Ограды\"],\n  [\"Аль-Анфаль\", \"Военная добыча\"],\n  [\"Ат-Тауба\", \"Покаяние\"],\n  [\"Юнус\", \"Иона\"],\n  [\"Худ\", \"Худ\"],\n  [\"Юсуф\", \"Иосиф\"],\n  [\"Ар-Ра‘д\", \"Гром\"],\n  [\"Ибрахим\", \"Авраам\"],\n  [\"Аль-Хиджр\", \"Хиджр\"],\n  [\"Ан-Нахль\", \"Пчёлы\"],\n  [\"Аль-Исра\", \"Ночной перенос\"],\n  [\"Аль-Кяхф\", \"Пещера\"],\n  [\"Марьям\", \"Мария\"],\n  [\"Та, ха\", \"Та, ха\"],\n  [\"Аль-Анбия\", \"Пророки\"],\n  [\"Аль-Хаджж\", \"Хадж\"],\n  [\"Аль-Му’минун\", \"Верующие\"],\n  [\"Ан-Нур\", \"Свет\"],\n  [\"Аль-Фуркан\", \"Различение\"],\n  [\"Аш-Шу‘ара\", \"Поэты\"],\n  [\"Ан-Намль\", \"Муравьи\"],\n  [\"Аль-Касас\", \"Рассказ\"],\n  [\"Аль-‘Анкабут\", \"Паук\"],\n  [\"Ар-Рум\", \"Ромеи\"],\n  [\"Лукман\", \"Лукман\"],\n  [\"Ас-Саджда\", \"Земной поклон\"],\n  [\"Аль-Ахзаб\", \"Полчища\"],\n  [\"Саба’\", \"Сава\"],\n  [\"Фатыр\", \"Зиждитель\"],\n  [\"Йа, син\", \"Йа, син\"],\n  [\"Ас-Саффат\", \"Стоящие в ряд\"],\n  [\"Сад\", \"Сад\"],\n  [\"Аз-Зумар\", \"Толпы\"],\n  [\"Гафир\", \"Прощающий\"],\n  [\"Фуссылят\", \"Разъяснены\"],\n  [\"Аш-Шура\", \"Совет\"],\n  [\"Аз-Зухруф\", \"Украшения\"],\n  [\"Ад-Духан\", \"Дым\"],\n  [\"Аль-Джасия\", \"Коленопреклонённые\"],\n  [\"Аль-Ахкаф\", \"Барханы\"],\n  [\"Мухаммад\", \"Мухаммад\"],\n  [\"Аль-Фатх\", \"Победа\"],\n  [\"Аль-Худжурат\", \"Покои\"],\n  [\"Каф\", \"Каф\"],\n  [\"Аз-Зарият\", \"Рассеивающие\"],\n  [\"Ат-Тур\", \"Гора\"],\n  [\"Ан-Наджм\", \"Звезда\"],\n  [\"Аль-Камар\", \"Луна\"],\n  [\"Ар-Рахман\", \"Милостивый\"],\n  [\"Аль-Ваки‘а\", \"Неизбежное\"],\n  [\"Аль-Хадид\", \"Железо\"],\n  [\"Аль-Муджадиля\", \"Препирающаяся\"],\n  [\"Аль-Хашр\", \"Сбор\"],\n  [\"Аль-Мумтахана\", \"Испытуемая\"],\n  [\"Ас-Сафф\", \"Ряд\"],\n  [\"Аль-Джуму‘а\", \"Собрание\"],\n  [\"Аль-Мунафикун\", \"Лицемеры\"],\n  [\"Ат-Тагабун\", \"Обделение\"],\n  [\"Ат-Таляк\", \"Развод\"],\n  [\"Ат-Тахрим\", \"Запрещение\"],\n  [\"Аль-Мульк\", \"Власть\"],\n  [\"Аль-Калям\", \"Перо\"],\n  [\"Аль-Хакка\", \"Неминуемое\"],\n  [\"Аль-Ма‘аридж\", \"Степени\"],\n  [\"Нух\", \"Ной\"],\n  [\"Аль-Джинн\", \"Джинны\"],\n  [\"Аль-Муззаммиль\", \"Закутавшийся\"],\n  [\"Аль-Муддассир\", \"Завернувшийся\"],\n  [\"Аль-Кияма\", \"Воскресение\"],\n  [\"Аль-Инсан\", \"Человек\"],\n  [\"Аль-Мурсалят\", \"Посылаемые\"],\n  [\"Ан-Наба’\", \"Весть\"],\n  [\"Ан-Нази‘ат\", \"Вырывающие\"],\n  [\"‘Абаса\", \"Нахмурился\"],\n  [\"Ат-Таквир\", \"Сворачивание\"],\n  [\"Аль-Инфитар\", \"Раскалывание\"],\n  [\"Аль-Мутаффифин\", \"Обвешивающие\"],\n  [\"Аль-Иншикак\", \"Разверзнется\"],\n  [\"Аль-Бурудж\", \"Созвездия\"],\n  [\"Ат-Тарик\", \"Ночной гость\"],\n  [\"Аль-А‘ля\", \"Всевышний\"],\n  [\"Аль-Гашия\", \"Покрывающее\"],\n  [\"Аль-Фаджр\", \"Заря\"],\n  [\"Аль-Баляд\", \"Город\"],\n  [\"Аш-Шамс\", \"Солнце\"],\n  [\"Аль-Лейль\", \"Ночь\"],\n  [\"Ад-Духа\", \"Утро\"],\n  [\"Аль-Инширах\", \"Раскрытие\"],\n  [\"Ат-Тин\", \"Смоковница\"],\n  [\"Аль-‘Аляк\", \"Сгусток крови\"],\n  [\"Аль-Кадр\", \"Величие\"],\n  [\"Аль-Баййина\", \"Ясный довод\"],\n  [\"Аз-Зальзаля\", \"Сотрясение\"],\n  [\"Аль-‘Адият\", \"Скачущие\"],\n  [\"Аль-Кари‘а\", \"Поражающее\"],\n  [\"Ат-Такясур\", \"Соперничество\"],\n  [\"Аль-‘Аср\", \"Предвечернее время\"],\n  [\"Аль-Хумаза\", \"Хулитель\"],\n  [\"Аль-Филь\", \"Слон\"],\n  [\"Курайш\", \"Курайшиты\"],\n  [\"Аль-Ма‘ун\", \"Утварь\"],\n  [\"Аль-Каусар\", \"Каусар\"],\n  [\"Аль-Кяфирун\", \"Неверующие\"],\n  [\"Ан-Наср\", \"Помощь\"],\n  [\"Аль-Масад\", \"Пальмовые волокна\"],\n  [\"Аль-Ихляс\", \"Очищение веры\"],\n  [\"Аль-Фаляк\", \"Рассвет\"],\n  [\"Ан-Нас\", \"Люди\"]\n]\n"],"names":["suraNames"],"mappings":"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AAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,E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AAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,E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AAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,E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"}
\ No newline at end of file
diff --git a/dist/quran-meta.min.js b/dist/quran-meta.min.js
index 422a9b9..8793ecb 100644
--- a/dist/quran-meta.min.js
+++ b/dist/quran-meta.min.js
@@ -1 +1,2009 @@
-!function(a,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((a="undefined"!=typeof globalThis?globalThis:a||self).quranMeta={})}(this,(function(a){"use strict";function e(a,e,n){if(n||2===arguments.length)for(var r,i=0,t=e.length;i<t;i++)!r&&i in e||(r||(r=Array.prototype.slice.call(e,0,i)),r[i]=e[i]);return a.concat(r||Array.prototype.slice.call(e))}var n=Object.freeze({numAyas:6236,numSuras:114,numPages:604,numJuzs:30,manzilCount:7}),r=[[-1,-1,-1,-1,"",!1,-1],[0,7,5,1,"الفاتحة",!0,1],[7,286,87,40,"البقرة",!1,2],[293,200,89,20,"آل عمران",!1,50],[493,176,92,24,"النساء",!1,77],[669,120,112,16,"المائدة",!1,107],[789,165,55,20,"الأنعام",!0,128],[954,206,39,24,"الأعراف",!0,151],[1160,75,88,10,"الأنفال",!1,177],[1235,129,113,16,"التوبة",!1,187],[1364,109,51,11,"يونس",!0,208],[1473,123,52,10,"هود",!0,222],[1596,111,53,12,"يوسف",!0,236],[1707,43,96,6,"الرعد",!1,249],[1750,52,72,7,"ابراهيم",!0,256],[1802,99,54,6,"الحجر",!0,262],[1901,128,70,16,"النحل",!0,268],[2029,111,50,12,"الإسراء",!0,282],[2140,110,69,12,"الكهف",!0,294],[2250,98,44,6,"مريم",!0,305],[2348,135,45,8,"طه",!0,313],[2483,112,73,7,"الأنبياء",!0,322],[2595,78,103,10,"الحج",!1,332],[2673,118,74,6,"المؤمنون",!0,342],[2791,64,102,9,"النور",!1,350],[2855,77,42,6,"الفرقان",!0,360],[2932,227,47,11,"الشعراء",!0,367],[3159,93,48,7,"النمل",!0,377],[3252,88,49,8,"القصص",!0,386],[3340,69,85,7,"العنكبوت",!0,397],[3409,60,84,6,"الروم",!0,405],[3469,34,57,3,"لقمان",!0,411],[3503,30,75,3,"السجدة",!0,415],[3533,73,90,9,"الأحزاب",!1,418],[3606,54,58,6,"سبإ",!0,428],[3660,45,43,5,"فاطر",!0,435],[3705,83,41,5,"يس",!0,441],[3788,182,56,5,"الصافات",!0,446],[3970,88,38,5,"ص",!0,453],[4058,75,59,8,"الزمر",!0,459],[4133,85,60,9,"غافر",!0,468],[4218,54,61,6,"فصلت",!0,477],[4272,53,62,5,"الشورى",!0,483],[4325,89,63,7,"الزخرف",!0,490],[4414,59,64,3,"الدخان",!0,496],[4473,37,65,4,"الجاثية",!0,499],[4510,35,66,4,"الأحقاف",!0,503],[4545,38,95,4,"محمد",!1,507],[4583,29,111,4,"الفتح",!1,511],[4612,18,106,2,"الحجرات",!1,516],[4630,45,34,3,"ق",!0,518],[4675,60,67,3,"الذاريات",!0,521],[4735,49,76,2,"الطور",!0,524],[4784,62,23,3,"النجم",!0,526],[4846,55,37,3,"القمر",!0,529],[4901,78,97,3,"الرحمن",!1,532],[4979,96,46,3,"الواقعة",!0,535],[5075,29,94,4,"الحديد",!1,538],[5104,22,105,3,"المجادلة",!1,542],[5126,24,101,3,"الحشر",!1,546],[5150,13,91,2,"الممتحنة",!1,549],[5163,14,109,2,"الصف",!1,552],[5177,11,110,2,"الجمعة",!1,553],[5188,11,104,2,"المنافقون",!1,555],[5199,18,108,2,"التغابن",!1,556],[5217,12,99,2,"الطلاق",!1,558],[5229,12,107,2,"التحريم",!1,560],[5241,30,77,2,"الملك",!0,562],[5271,52,2,2,"القلم",!0,565],[5323,52,78,2,"الحاقة",!0,567],[5375,44,79,2,"المعارج",!0,569],[5419,28,71,2,"نوح",!0,571],[5447,28,40,2,"الجن",!0,572],[5475,20,3,2,"المزمل",!0,574],[5495,56,4,2,"المدثر",!0,576],[5551,40,31,2,"القيامة",!0,578],[5591,31,98,2,"الانسان",!1,579],[5622,50,33,2,"المرسلات",!0,581],[5672,40,80,2,"النبإ",!0,582],[5712,46,81,2,"النازعات",!0,584],[5758,42,24,1,"عبس",!0,585],[5800,29,7,1,"التكوير",!0,586],[5829,19,82,1,"الإنفطار",!0,587],[5848,36,86,1,"المطففين",!0,588],[5884,25,83,1,"الإنشقاق",!0,589],[5909,22,27,1,"البروج",!0,590],[5931,17,36,1,"الطارق",!0,591],[5948,19,8,1,"الأعلى",!0,592],[5967,26,68,1,"الغاشية",!0,592],[5993,30,10,1,"الفجر",!0,593],[6023,20,35,1,"البلد",!0,594],[6043,15,26,1,"الشمس",!0,595],[6058,21,9,1,"الليل",!0,596],[6079,11,11,1,"الضحى",!0,596],[6090,8,12,1,"الشرح",!0,596],[6098,8,28,1,"التين",!0,597],[6106,19,1,1,"العلق",!0,597],[6125,5,25,1,"القدر",!0,598],[6130,8,100,1,"البينة",!1,599],[6138,8,93,1,"الزلزلة",!1,599],[6146,11,14,1,"العاديات",!0,600],[6157,11,30,1,"القارعة",!0,600],[6168,8,16,1,"التكاثر",!0,600],[6176,3,13,1,"العصر",!0,601],[6179,9,32,1,"الهمزة",!0,601],[6188,5,19,1,"الفيل",!0,601],[6193,4,29,1,"قريش",!0,602],[6197,7,17,1,"الماعون",!0,602],[6204,3,15,1,"الكوثر",!0,602],[6207,6,18,1,"الكافرون",!0,603],[6213,3,114,1,"النصر",!1,603],[6216,5,6,1,"المسد",!0,603],[6221,4,22,1,"الإخلاص",!0,604],[6225,5,20,1,"الفلق",!0,604],[6230,6,21,1,"الناس",!0,604],[6236,0,-1,-1,"",!1,-1]],i=[0,1,33,51,67,82,99,113,131,149,165,184,196,210,226,240,250,260,270,279,290,308,326,345,368,386,406,426,446,464,479,494,505,517,529,551,567,581,593,607,628,641,656,670,681,696,710,720,736,751,766,778,802,825,848,863,884,900,916,930,940,955,985,1001,1019,1042,1071,1096,1110,1125,1143,1161,1182,1201,1221,1236,1254,1269,1281,1295,1310,1328,1346,1357,1375,1390,1417,1435,1454,1479,1497,1514,1534,1557,1581,1603,1626,1649,1673,1697,1712,1726,1742,1760,1778,1803,1852,1902,1931,1952,1976,1991,2012,2030,2052,2079,2099,2128,2157,2172,2191,2215,2239,2272,2309,2349,2403,2431,2459,2484,2512,2534,2566,2596,2614,2633,2655,2674,2709,2748,2792,2812,2826,2844,2856,2876,2908,2933,2984,3043,3113,3160,3186,3215,3241,3264,3281,3303,3328,3341,3366,3386,3410,3440,3463,3491,3514,3534,3551,3564,3584,3593,3616,3630,3652,3675,3701,3733,3765,3810,3871,3933,3991,4022,4066,4090,4111,4134,4154,4174,4199,4227,4243,4265,4285,4299,4323,4349,4382,4431,4485,4511,4531,4555,4578,4601,4613,4626,4657,4706,4759,4810,4855,4902,4980,5054,5091,5105,5118,5137,5157,5178,5192,5218,5230,5242,5272,5324,5394,5448,5495,5552,5610,5673,5759,5830,5885,5949,6024,6091,6155,6237],t=[0,1,8,13,24,32,37,45,56,65,69,77,84,91,96,101,109,113,120,127,134,142,149,153,161,171,177,184,189,194,198,204,210,218,223,227,232,238,241,245,253,256,260,264,267,272,277,282,289,290,294,303,309,316,323,331,339,346,355,364,371,377,385,394,402,409,415,426,434,442,447,451,459,467,474,480,488,494,500,505,508,513,517,520,527,531,538,545,553,559,568,573,580,585,588,595,599,607,615,621,628,634,641,648,656,664,669,672,675,679,683,687,693,701,706,711,715,720,727,734,740,746,752,759,765,773,778,783,790,798,808,817,825,834,842,849,858,863,871,880,884,891,900,908,914,921,927,932,936,941,947,955,966,977,985,992,998,1006,1012,1022,1028,1036,1042,1050,1059,1075,1085,1092,1098,1104,1110,1114,1118,1125,1133,1142,1150,1161,1169,1177,1186,1194,1201,1206,1213,1222,1230,1236,1242,1249,1256,1262,1267,1272,1276,1283,1290,1297,1304,1308,1315,1322,1329,1335,1342,1347,1353,1358,1365,1371,1379,1385,1390,1398,1407,1418,1426,1435,1443,1453,1462,1471,1479,1486,1493,1502,1511,1519,1527,1536,1545,1555,1562,1571,1582,1591,1601,1611,1619,1627,1634,1640,1649,1660,1666,1675,1683,1692,1700,1708,1713,1721,1726,1736,1742,1750,1756,1761,1769,1775,1784,1793,1803,1818,1834,1854,1873,1893,1908,1916,1928,1936,1944,1956,1966,1974,1981,1989,1995,2004,2012,2020,2030,2037,2047,2057,2068,2079,2088,2096,2105,2116,2126,2134,2145,2156,2161,2168,2175,2186,2194,2202,2215,2224,2238,2251,2262,2276,2289,2302,2315,2327,2346,2361,2386,2400,2413,2425,2436,2447,2462,2474,2484,2494,2508,2519,2528,2541,2556,2565,2574,2585,2596,2601,2611,2619,2626,2634,2642,2651,2660,2668,2674,2691,2701,2716,2733,2748,2763,2778,2792,2802,2812,2819,2823,2828,2835,2845,2850,2853,2858,2867,2876,2888,2899,2911,2923,2933,2952,2972,2993,3016,3044,3069,3092,3116,3139,3160,3173,3182,3195,3204,3215,3223,3236,3248,3258,3266,3274,3281,3288,3296,3303,3312,3323,3330,3337,3347,3355,3364,3371,3379,3386,3393,3404,3415,3425,3434,3442,3451,3460,3470,3481,3489,3498,3504,3515,3524,3534,3540,3549,3556,3564,3569,3577,3584,3588,3596,3607,3614,3621,3629,3638,3646,3655,3664,3672,3679,3691,3699,3705,3718,3733,3746,3760,3776,3789,3813,3840,3865,3891,3915,3942,3971,3987,3997,4013,4032,4054,4064,4069,4080,4090,4099,4106,4115,4126,4133,4141,4150,4159,4167,4174,4183,4192,4200,4211,4219,4230,4239,4248,4257,4265,4273,4283,4288,4295,4304,4317,4324,4336,4348,4359,4373,4386,4399,4415,4433,4454,4474,4487,4496,4506,4516,4525,4531,4539,4546,4557,4565,4575,4584,4593,4599,4607,4612,4617,4624,4631,4646,4666,4682,4706,4727,4750,4767,4785,4811,4829,4853,4874,4896,4918,4942,4969,4996,5030,5056,5079,5087,5094,5100,5105,5111,5116,5126,5130,5136,5143,5151,5156,5162,5169,5178,5186,5193,5200,5209,5218,5223,5230,5237,5242,5254,5268,5287,5314,5332,5358,5386,5415,5430,5448,5461,5476,5495,5513,5543,5571,5597,5617,5642,5673,5703,5728,5759,5801,5830,5855,5883,5910,5932,5964,5994,6017,6044,6073,6099,6126,6138,6156,6177,6194,6208,6222,6237];var u=[0,1,149,260,386,517,641,751,900,1042,1201,1328,1479,1649,1803,2030,2215,2484,2674,2876,3215,3386,3564,3733,4090,4265,4511,4706,5105,5242,5673,6237];function h(a,e,n){void 0===n&&(n=function(a,e){return a-e});for(var r=0,i=a.length-1;r<=i;){var t=i+r>>1,u=n(e,a[t]);if(u>0)r=t+1;else{if(!(u<0))return t;i=t-1}}return-r-1}function o(a){if(a<1||a>n.numAyas)throw new RangeError("ayaid must be between 1 and "+n.numAyas);return!0}function l(a,e){if(void 0===e&&(e=!1),a<1||a>n.numSuras){if(e)return!1;throw new RangeError("Surah must be between 1 and "+n.numSuras)}return!0}function A(a){o(a);var e=r.findIndex((function(e){return e[0]>=a}))-1;return e<0?[114,a-r[114][0]]:[e,a-r[e][0]]}function s(a){return o(a),u.findIndex((function(e){return e>a}))-1}function d(a){o(a);var e=s(a),n=i.findIndex((function(e){return e>a}))-1;return{juz:e,hizb:n%8||8,id:n}}function T(a,e,n){void 0===n&&(n=!1);var i=s(n?o(e)&&e:l(a)&&c(a,e)),t=u[i];return a<0&&(a=A(t)[0]),{juz:i,ayahsBetweenJuzSurah:r[a][0]-t+1,leftAyahId:t}}function f(a){return l(a),r[a]}function m(a,e,n){void 0===n&&(n=!1);var r=n?o(e)&&e:l(a)&&c(a,e);return t.findIndex((function(a){return a>r}))-1}function c(a,e){return f(a)[0]+e}a.HizbQuarterList=i,a.JuzList=u,a.ManzilList=[0,1,670,1365,2030,2933,3789,4631,6237],a.PageList=t,a.RukuList=[0,1,8,15,28,37,47,54,67,69,79,90,94,104,111,120,129,137,149,155,160,171,175,184,190,196,204,218,224,229,236,239,243,250,256,261,265,268,274,281,289,291,294,303,314,324,335,348,357,365,374,385,395,403,414,423,437,442,449,465,474,483,494,504,508,516,519,527,536,544,553,564,570,581,585,590,594,598,606,609,620,628,635,646,656,665,670,675,681,689,696,704,713,720,726,736,747,756,763,770,778,785,790,800,810,820,831,840,845,850,860,872,880,884,890,900,911,919,930,934,940,944,955,965,980,986,994,1002,1008,1013,1019,1027,1039,1048,1054,1063,1081,1084,1096,1102,1106,1112,1117,1126,1136,1143,1161,1171,1180,1189,1198,1205,1209,1219,1225,1230,1236,1242,1252,1260,1265,1273,1278,1295,1302,1308,1316,1325,1335,1346,1354,1358,1365,1375,1385,1395,1405,1418,1425,1435,1447,1457,1468,1474,1482,1498,1509,1523,1534,1542,1557,1569,1583,1597,1603,1617,1626,1632,1639,1646,1654,1665,1676,1690,1701,1708,1715,1726,1734,1739,1745,1751,1757,1763,1772,1778,1785,1792,1803,1818,1828,1847,1863,1882,1902,1911,1923,1927,1936,1942,1952,1962,1967,1972,1978,1985,1991,2002,2012,2021,2030,2040,2052,2060,2070,2082,2090,2100,2107,2114,2123,2130,2141,2153,2158,2163,2172,2185,2190,2194,2200,2211,2223,2242,2251,2266,2291,2301,2316,2333,2349,2373,2403,2425,2438,2453,2464,2477,2484,2494,2513,2525,2534,2559,2577,2596,2606,2618,2621,2629,2634,2644,2653,2660,2668,2674,2696,2706,2724,2751,2766,2792,2802,2812,2818,2826,2832,2842,2849,2853,2856,2865,2876,2890,2900,2916,2933,2942,2966,2985,3002,3037,3055,3073,3092,3108,3124,3160,3174,3191,3204,3218,3226,3242,3253,3266,3274,3281,3295,3303,3313,3328,3341,3354,3363,3371,3385,3392,3404,3410,3420,3429,3437,3450,3463,3470,3481,3489,3504,3515,3526,3534,3542,3554,3561,3568,3574,3586,3592,3602,3607,3616,3628,3637,3643,3652,3661,3668,3675,3687,3698,3706,3718,3738,3756,3773,3789,3810,3863,3902,3927,3971,3985,3997,4011,4035,4059,4068,4080,4090,4100,4111,4122,4129,4134,4143,4154,4161,4171,4184,4194,4202,4212,4219,4227,4237,4244,4251,4263,4273,4282,4292,4302,4316,4326,4341,4351,4361,4371,4382,4393,4415,4444,4457,4474,4485,4495,4500,4511,4521,4531,4537,4546,4557,4565,4574,4584,4594,4601,4610,4613,4623,4631,4646,4660,4676,4699,4722,4736,4764,4785,4810,4817,4847,4869,4887,4902,4927,4947,4980,5018,5054,5076,5086,5095,5101,5105,5111,5118,5127,5137,5144,5151,5157,5164,5173,5178,5186,5189,5197,5200,5210,5218,5225,5230,5237,5242,5256,5272,5305,5324,5361,5376,5411,5420,5440,5448,5467,5476,5495,5496,5527,5552,5582,5592,5614,5623,5663,5673,5703,5713,5739,5759,5801,5830,5849,5885,5910,5932,5949,5968,5994,6024,6044,6059,6080,6091,6099,6107,6126,6131,6139,6147,6158,6169,6177,6180,6189,6194,6198,6205,6208,6214,6217,6222,6226,6231,6237],a.SajdaList=[[1160,"recommended"],[1722,"recommended"],[1951,"recommended"],[2138,"recommended"],[2308,"recommended"],[2613,"recommended"],[2672,"recommended"],[2915,"recommended"],[3185,"recommended"],[3518,"obligatory"],[3994,"recommended"],[4256,"obligatory"],[4846,"obligatory"],[5905,"recommended"],[6125,"obligatory"]],a.SuraList=r,a.ayaStringSplitter=function(a){var e=a.trim().split(":"),n=e[0],r=e[1];if(!r)throw"Error in data "+a;return[+n,r.includes("-")?r.split("-").map(Number):+r]},a.findAyaidBySurah=c,a.findJuz=function(a,e,n){return void 0===e&&(e=1),void 0===n&&(n=!1),s(n?e:l(a)&&c(a,e))},a.findJuzAndShift=T,a.findJuzByAyaid=s,a.findJuzHizb=function(a,e,n){return void 0===e&&(e=1),void 0===n&&(n=!1),d(n?e:l(a)&&c(a,e))},a.findJuzHizbByAyaid=d,a.findJuzMetaBySurah=function(a,e){void 0===e&&(e=1);for(var r=T(a,e),i=r.juz,t=r.ayahsBetweenJuzSurah,h=r.leftAyahId,o=i;o<n.numJuzs&&A(u[o+1])[0]==a;)o++;return{leftjuz:i,ayahsBetweenJuzSurah:t,rightJuz:o,leftAyahId:h,rightAyahId:u[o+1]}},a.findPage=m,a.findRangeAroundAyah=function(a,e,r,i){void 0===i&&(i=!1);var h=i?e:l(a)&&c(a,e);switch(r){case"juz":var o=s(h);return[u[o],u[o+1]-1];case"surah":return[c(a,1),c(a+1,1)-1];case"ayah":return[h,h];case"page":var A=m(-1,h,!0);return[t[A],t[A+1]-1];default:return[1,n.numAyas]}},a.findSurahByAyaid=A,a.getAyaCountinSura=function(a){return f(a)[1]},a.getSurahMeta=f,a.isAyahJuzFirst=function(a,e,n){void 0===n&&(n=!1);var r=n?o(e)&&e:l(a)&&c(a,e);return h(u,r)},a.isAyahPageFirst=function(a,e,n){void 0===n&&(n=!1);var r=n?o(e)&&e:l(a)&&c(a,e);return h(t,r)},a.meta=n,a.nextAyah=function(a,e){if(a<1||a>n.numSuras)throw new RangeError("Surah must be between 1 and "+n.numSuras);var r=c(a,e);return A(r==n.numAyas?1:r+1)},a.pageMeta=function(a){if(a<1||a>n.numPages)throw new RangeError("pagenum must be between 1 and "+n.numPages);var r=[t[a],t[a+1]],i=r[1];return{pageNum:a,first:A(r[0]),last:e([],A(i-1),!0)}},a.prevAyah=function(a,e){l(a);var r=c(a,e);return A(1==r?n.numAyas:r-1)},a.suraNamesEn=[[],["Al-Faatiha","The Opening"],["Al-Baqara","The Cow"],["Aal-i-Imraan","The Family of Imraan"],["An-Nisaa","The Women"],["Al-Maaida","The Table"],["Al-An'aam","The Cattle"],["Al-A'raaf","The Heights"],["Al-Anfaal","The Spoils of War"],["At-Tawba","The Repentance"],["Yunus","Jonas"],["Hud","Hud"],["Yusuf","Joseph"],["Ar-Ra'd","The Thunder"],["Ibrahim","Abraham"],["Al-Hijr","The Rock"],["An-Nahl","The Bee"],["Al-Israa","The Night Journey"],["Al-Kahf","The Cave"],["Maryam","Mary"],["Taa-Haa","Taa-Haa"],["Al-Anbiyaa","The Prophets"],["Al-Hajj","The Pilgrimage"],["Al-Muminoon","The Believers"],["An-Noor","The Light"],["Al-Furqaan","The Criterion"],["Ash-Shu'araa","The Poets"],["An-Naml","The Ant"],["Al-Qasas","The Stories"],["Al-Ankaboot","The Spider"],["Ar-Room","The Romans"],["Luqman","Luqman"],["As-Sajda","The Prostration"],["Al-Ahzaab","The Clans"],["Saba","Sheba"],["Faatir","The Originator"],["Yaseen","Yaseen"],["As-Saaffaat","Those drawn up in Ranks"],["Saad","The letter Saad"],["Az-Zumar","The Groups"],["Al-Ghaafir","The Forgiver"],["Fussilat","Explained in detail"],["Ash-Shura","Consultation"],["Az-Zukhruf","Ornaments of gold"],["Ad-Dukhaan","The Smoke"],["Al-Jaathiya","Crouching"],["Al-Ahqaf","The Dunes"],["Muhammad","Muhammad"],["Al-Fath","The Victory"],["Al-Hujuraat","The Inner Apartments"],["Qaaf","The letter Qaaf"],["Adh-Dhaariyat","The Winnowing Winds"],["At-Tur","The Mount"],["An-Najm","The Star"],["Al-Qamar","The Moon"],["Ar-Rahmaan","The Beneficent"],["Al-Waaqia","The Inevitable"],["Al-Hadid","The Iron"],["Al-Mujaadila","The Pleading Woman"],["Al-Hashr","The Exile"],["Al-Mumtahana","She that is to be examined"],["As-Saff","The Ranks"],["Al-Jumu'a","Friday"],["Al-Munaafiqoon","The Hypocrites"],["At-Taghaabun","Mutual Disillusion"],["At-Talaaq","Divorce"],["At-Tahrim","The Prohibition"],["Al-Mulk","The Sovereignty"],["Al-Qalam","The Pen"],["Al-Haaqqa","The Reality"],["Al-Ma'aarij","The Ascending Stairways"],["Nooh","Noah"],["Al-Jinn","The Jinn"],["Al-Muzzammil","The Enshrouded One"],["Al-Muddaththir","The Cloaked One"],["Al-Qiyaama","The Resurrection"],["Al-Insaan","Man"],["Al-Mursalaat","The Emissaries"],["An-Naba","The Announcement"],["An-Naazi'aat","Those who drag forth"],["Abasa","He frowned"],["At-Takwir","The Overthrowing"],["Al-Infitaar","The Cleaving"],["Al-Mutaffifin","Defrauding"],["Al-Inshiqaaq","The Splitting Open"],["Al-Burooj","The Constellations"],["At-Taariq","The Morning Star"],["Al-A'laa","The Most High"],["Al-Ghaashiya","The Overwhelming"],["Al-Fajr","The Dawn"],["Al-Balad","The City"],["Ash-Shams","The Sun"],["Al-Lail","The Night"],["Ad-Dhuhaa","The Morning Hours"],["Ash-Sharh","The Consolation"],["At-Tin","The Fig"],["Al-Alaq","The Clot"],["Al-Qadr","The Power, Fate"],["Al-Bayyina","The Evidence"],["Az-Zalzala","The Earthquake"],["Al-Aadiyaat","The Chargers"],["Al-Qaari'a","The Calamity"],["At-Takaathur","Competition"],["Al-Asr","The Declining Day, Epoch"],["Al-Humaza","The Traducer"],["Al-Fil","The Elephant"],["Quraish","Quraysh"],["Al-Maa'un","Almsgiving"],["Al-Kawthar","Abundance"],["Al-Kaafiroon","The Disbelievers"],["An-Nasr","Divine Support"],["Al-Masad","The Palm Fibre"],["Al-Ikhlaas","Sincerity"],["Al-Falaq","The Dawn"],["An-Naas","Mankind"]],a.suraNamesRu=[[],["Аль-Фатиха","Открывающая Коран"],["Аль-Бакара","Корова"],["Аль ‘Имран","Семейство ‘Имрана"],["Ан-Ниса","Женщины"],["Аль-Маида","Трапеза"],["Аль-Ан‘ам","Скот"],["Аль-А‘раф","Ограды"],["Аль-Анфаль","Военная добыча"],["Ат-Тауба","Покаяние"],["Юнус","Иона"],["Худ","Худ"],["Юсуф","Иосиф"],["Ар-Ра‘д","Гром"],["Ибрахим","Авраам"],["Аль-Хиджр","Хиджр"],["Ан-Нахль","Пчёлы"],["Аль-Исра","Ночной перенос"],["Аль-Кяхф","Пещера"],["Марьям","Мария"],["Та, ха","Та, ха"],["Аль-Анбия","Пророки"],["Аль-Хаджж","Хадж"],["Аль-Му’минун","Верующие"],["Ан-Нур","Свет"],["Аль-Фуркан","Различение"],["Аш-Шу‘ара","Поэты"],["Ан-Намль","Муравьи"],["Аль-Касас","Рассказ"],["Аль-‘Анкабут","Паук"],["Ар-Рум","Ромеи"],["Лукман","Лукман"],["Ас-Саджда","Земной поклон"],["Аль-Ахзаб","Полчища"],["Саба’","Сава"],["Фатыр","Зиждитель"],["Йа, син","Йа, син"],["Ас-Саффат","Стоящие в ряд"],["Сад","Сад"],["Аз-Зумар","Толпы"],["Гафир","Прощающий"],["Фуссылят","Разъяснены"],["Аш-Шура","Совет"],["Аз-Зухруф","Украшения"],["Ад-Духан","Дым"],["Аль-Джасия","Коленопреклонённые"],["Аль-Ахкаф","Барханы"],["Мухаммад","Мухаммад"],["Аль-Фатх","Победа"],["Аль-Худжурат","Покои"],["Каф","Каф"],["Аз-Зарият","Рассеивающие"],["Ат-Тур","Гора"],["Ан-Наджм","Звезда"],["Аль-Камар","Луна"],["Ар-Рахман","Милостивый"],["Аль-Ваки‘а","Неизбежное"],["Аль-Хадид","Железо"],["Аль-Муджадиля","Препирающаяся"],["Аль-Хашр","Сбор"],["Аль-Мумтахана","Испытуемая"],["Ас-Сафф","Ряд"],["Аль-Джуму‘а","Собрание"],["Аль-Мунафикун","Лицемеры"],["Ат-Тагабун","Обделение"],["Ат-Таляк","Развод"],["Ат-Тахрим","Запрещение"],["Аль-Мульк","Власть"],["Аль-Калям","Перо"],["Аль-Хакка","Неминуемое"],["Аль-Ма‘аридж","Степени"],["Нух","Ной"],["Аль-Джинн","Джинны"],["Аль-Муззаммиль","Закутавшийся"],["Аль-Муддассир","Завернувшийся"],["Аль-Кияма","Воскресение"],["Аль-Инсан","Человек"],["Аль-Мурсалят","Посылаемые"],["Ан-Наба’","Весть"],["Ан-Нази‘ат","Вырывающие"],["‘Абаса","Нахмурился"],["Ат-Таквир","Сворачивание"],["Аль-Инфитар","Раскалывание"],["Аль-Мутаффифин","Обвешивающие"],["Аль-Иншикак","Разверзнется"],["Аль-Бурудж","Созвездия"],["Ат-Тарик","Ночной гость"],["Аль-А‘ля","Всевышний"],["Аль-Гашия","Покрывающее"],["Аль-Фаджр","Заря"],["Аль-Баляд","Город"],["Аш-Шамс","Солнце"],["Аль-Лейль","Ночь"],["Ад-Духа","Утро"],["Аль-Инширах","Раскрытие"],["Ат-Тин","Смоковница"],["Аль-‘Аляк","Сгусток крови"],["Аль-Кадр","Величие"],["Аль-Баййина","Ясный довод"],["Аз-Зальзаля","Сотрясение"],["Аль-‘Адият","Скачущие"],["Аль-Кари‘а","Поражающее"],["Ат-Такясур","Соперничество"],["Аль-‘Аср","Предвечернее время"],["Аль-Хумаза","Хулитель"],["Аль-Филь","Слон"],["Курайш","Курайшиты"],["Аль-Ма‘ун","Утварь"],["Аль-Каусар","Каусар"],["Аль-Кяфирун","Неверующие"],["Ан-Наср","Помощь"],["Аль-Масад","Пальмовые волокна"],["Аль-Ихляс","Очищение веры"],["Аль-Фаляк","Рассвет"],["Ан-Нас","Люди"]]}));
+/*! 
+ * Quran Meta library 2.5.1
+ *
+ * Released under the MIT license
+ */
+
+(function(g,f){typeof exports==='object'&&typeof module!=='undefined'?f(exports):typeof define==='function'&&define.amd?define(['exports'],f):(g=typeof globalThis!=='undefined'?globalThis:g||self,f(g.quranMeta={}));})(this,(function(exports){'use strict';const meta = Object.freeze({
+  numAyas: 6236,
+  numSuras: 114,
+  numPages: 604,
+  numJuzs: 30,
+  manzilCount: 7
+});const SuraList = [
+  [-1, -1, -1, -1, "", false, -1],
+  [0, 7, 5, 1, "\u0627\u0644\u0641\u0627\u062A\u062D\u0629", true, 1],
+  [7, 286, 87, 40, "\u0627\u0644\u0628\u0642\u0631\u0629", false, 2],
+  [293, 200, 89, 20, "\u0622\u0644 \u0639\u0645\u0631\u0627\u0646", false, 50],
+  [493, 176, 92, 24, "\u0627\u0644\u0646\u0633\u0627\u0621", false, 77],
+  [669, 120, 112, 16, "\u0627\u0644\u0645\u0627\u0626\u062F\u0629", false, 107],
+  [789, 165, 55, 20, "\u0627\u0644\u0623\u0646\u0639\u0627\u0645", true, 128],
+  [954, 206, 39, 24, "\u0627\u0644\u0623\u0639\u0631\u0627\u0641", true, 151],
+  [1160, 75, 88, 10, "\u0627\u0644\u0623\u0646\u0641\u0627\u0644", false, 177],
+  [1235, 129, 113, 16, "\u0627\u0644\u062A\u0648\u0628\u0629", false, 187],
+  [1364, 109, 51, 11, "\u064A\u0648\u0646\u0633", true, 208],
+  [1473, 123, 52, 10, "\u0647\u0648\u062F", true, 222],
+  [1596, 111, 53, 12, "\u064A\u0648\u0633\u0641", true, 236],
+  [1707, 43, 96, 6, "\u0627\u0644\u0631\u0639\u062F", false, 249],
+  [1750, 52, 72, 7, "\u0627\u0628\u0631\u0627\u0647\u064A\u0645", true, 256],
+  [1802, 99, 54, 6, "\u0627\u0644\u062D\u062C\u0631", true, 262],
+  [1901, 128, 70, 16, "\u0627\u0644\u0646\u062D\u0644", true, 268],
+  [2029, 111, 50, 12, "\u0627\u0644\u0625\u0633\u0631\u0627\u0621", true, 282],
+  [2140, 110, 69, 12, "\u0627\u0644\u0643\u0647\u0641", true, 294],
+  [2250, 98, 44, 6, "\u0645\u0631\u064A\u0645", true, 305],
+  [2348, 135, 45, 8, "\u0637\u0647", true, 313],
+  [2483, 112, 73, 7, "\u0627\u0644\u0623\u0646\u0628\u064A\u0627\u0621", true, 322],
+  [2595, 78, 103, 10, "\u0627\u0644\u062D\u062C", false, 332],
+  [2673, 118, 74, 6, "\u0627\u0644\u0645\u0624\u0645\u0646\u0648\u0646", true, 342],
+  [2791, 64, 102, 9, "\u0627\u0644\u0646\u0648\u0631", false, 350],
+  [2855, 77, 42, 6, "\u0627\u0644\u0641\u0631\u0642\u0627\u0646", true, 360],
+  [2932, 227, 47, 11, "\u0627\u0644\u0634\u0639\u0631\u0627\u0621", true, 367],
+  [3159, 93, 48, 7, "\u0627\u0644\u0646\u0645\u0644", true, 377],
+  [3252, 88, 49, 8, "\u0627\u0644\u0642\u0635\u0635", true, 386],
+  [3340, 69, 85, 7, "\u0627\u0644\u0639\u0646\u0643\u0628\u0648\u062A", true, 397],
+  [3409, 60, 84, 6, "\u0627\u0644\u0631\u0648\u0645", true, 405],
+  [3469, 34, 57, 3, "\u0644\u0642\u0645\u0627\u0646", true, 411],
+  [3503, 30, 75, 3, "\u0627\u0644\u0633\u062C\u062F\u0629", true, 415],
+  [3533, 73, 90, 9, "\u0627\u0644\u0623\u062D\u0632\u0627\u0628", false, 418],
+  [3606, 54, 58, 6, "\u0633\u0628\u0625", true, 428],
+  [3660, 45, 43, 5, "\u0641\u0627\u0637\u0631", true, 435],
+  [3705, 83, 41, 5, "\u064A\u0633", true, 441],
+  [3788, 182, 56, 5, "\u0627\u0644\u0635\u0627\u0641\u0627\u062A", true, 446],
+  [3970, 88, 38, 5, "\u0635", true, 453],
+  [4058, 75, 59, 8, "\u0627\u0644\u0632\u0645\u0631", true, 459],
+  [4133, 85, 60, 9, "\u063A\u0627\u0641\u0631", true, 468],
+  [4218, 54, 61, 6, "\u0641\u0635\u0644\u062A", true, 477],
+  [4272, 53, 62, 5, "\u0627\u0644\u0634\u0648\u0631\u0649", true, 483],
+  [4325, 89, 63, 7, "\u0627\u0644\u0632\u062E\u0631\u0641", true, 490],
+  [4414, 59, 64, 3, "\u0627\u0644\u062F\u062E\u0627\u0646", true, 496],
+  [4473, 37, 65, 4, "\u0627\u0644\u062C\u0627\u062B\u064A\u0629", true, 499],
+  [4510, 35, 66, 4, "\u0627\u0644\u0623\u062D\u0642\u0627\u0641", true, 503],
+  [4545, 38, 95, 4, "\u0645\u062D\u0645\u062F", false, 507],
+  [4583, 29, 111, 4, "\u0627\u0644\u0641\u062A\u062D", false, 511],
+  [4612, 18, 106, 2, "\u0627\u0644\u062D\u062C\u0631\u0627\u062A", false, 516],
+  [4630, 45, 34, 3, "\u0642", true, 518],
+  [4675, 60, 67, 3, "\u0627\u0644\u0630\u0627\u0631\u064A\u0627\u062A", true, 521],
+  [4735, 49, 76, 2, "\u0627\u0644\u0637\u0648\u0631", true, 524],
+  [4784, 62, 23, 3, "\u0627\u0644\u0646\u062C\u0645", true, 526],
+  [4846, 55, 37, 3, "\u0627\u0644\u0642\u0645\u0631", true, 529],
+  [4901, 78, 97, 3, "\u0627\u0644\u0631\u062D\u0645\u0646", false, 532],
+  [4979, 96, 46, 3, "\u0627\u0644\u0648\u0627\u0642\u0639\u0629", true, 535],
+  [5075, 29, 94, 4, "\u0627\u0644\u062D\u062F\u064A\u062F", false, 538],
+  [5104, 22, 105, 3, "\u0627\u0644\u0645\u062C\u0627\u062F\u0644\u0629", false, 542],
+  [5126, 24, 101, 3, "\u0627\u0644\u062D\u0634\u0631", false, 546],
+  [5150, 13, 91, 2, "\u0627\u0644\u0645\u0645\u062A\u062D\u0646\u0629", false, 549],
+  [5163, 14, 109, 2, "\u0627\u0644\u0635\u0641", false, 552],
+  [5177, 11, 110, 2, "\u0627\u0644\u062C\u0645\u0639\u0629", false, 553],
+  [5188, 11, 104, 2, "\u0627\u0644\u0645\u0646\u0627\u0641\u0642\u0648\u0646", false, 555],
+  [5199, 18, 108, 2, "\u0627\u0644\u062A\u063A\u0627\u0628\u0646", false, 556],
+  [5217, 12, 99, 2, "\u0627\u0644\u0637\u0644\u0627\u0642", false, 558],
+  [5229, 12, 107, 2, "\u0627\u0644\u062A\u062D\u0631\u064A\u0645", false, 560],
+  [5241, 30, 77, 2, "\u0627\u0644\u0645\u0644\u0643", true, 562],
+  [5271, 52, 2, 2, "\u0627\u0644\u0642\u0644\u0645", true, 565],
+  [5323, 52, 78, 2, "\u0627\u0644\u062D\u0627\u0642\u0629", true, 567],
+  [5375, 44, 79, 2, "\u0627\u0644\u0645\u0639\u0627\u0631\u062C", true, 569],
+  [5419, 28, 71, 2, "\u0646\u0648\u062D", true, 571],
+  [5447, 28, 40, 2, "\u0627\u0644\u062C\u0646", true, 572],
+  [5475, 20, 3, 2, "\u0627\u0644\u0645\u0632\u0645\u0644", true, 574],
+  [5495, 56, 4, 2, "\u0627\u0644\u0645\u062F\u062B\u0631", true, 576],
+  [5551, 40, 31, 2, "\u0627\u0644\u0642\u064A\u0627\u0645\u0629", true, 578],
+  [5591, 31, 98, 2, "\u0627\u0644\u0627\u0646\u0633\u0627\u0646", false, 579],
+  [5622, 50, 33, 2, "\u0627\u0644\u0645\u0631\u0633\u0644\u0627\u062A", true, 581],
+  [5672, 40, 80, 2, "\u0627\u0644\u0646\u0628\u0625", true, 582],
+  [5712, 46, 81, 2, "\u0627\u0644\u0646\u0627\u0632\u0639\u0627\u062A", true, 584],
+  [5758, 42, 24, 1, "\u0639\u0628\u0633", true, 585],
+  [5800, 29, 7, 1, "\u0627\u0644\u062A\u0643\u0648\u064A\u0631", true, 586],
+  [5829, 19, 82, 1, "\u0627\u0644\u0625\u0646\u0641\u0637\u0627\u0631", true, 587],
+  [5848, 36, 86, 1, "\u0627\u0644\u0645\u0637\u0641\u0641\u064A\u0646", true, 588],
+  [5884, 25, 83, 1, "\u0627\u0644\u0625\u0646\u0634\u0642\u0627\u0642", true, 589],
+  [5909, 22, 27, 1, "\u0627\u0644\u0628\u0631\u0648\u062C", true, 590],
+  [5931, 17, 36, 1, "\u0627\u0644\u0637\u0627\u0631\u0642", true, 591],
+  [5948, 19, 8, 1, "\u0627\u0644\u0623\u0639\u0644\u0649", true, 592],
+  [5967, 26, 68, 1, "\u0627\u0644\u063A\u0627\u0634\u064A\u0629", true, 592],
+  [5993, 30, 10, 1, "\u0627\u0644\u0641\u062C\u0631", true, 593],
+  [6023, 20, 35, 1, "\u0627\u0644\u0628\u0644\u062F", true, 594],
+  [6043, 15, 26, 1, "\u0627\u0644\u0634\u0645\u0633", true, 595],
+  [6058, 21, 9, 1, "\u0627\u0644\u0644\u064A\u0644", true, 596],
+  [6079, 11, 11, 1, "\u0627\u0644\u0636\u062D\u0649", true, 596],
+  [6090, 8, 12, 1, "\u0627\u0644\u0634\u0631\u062D", true, 596],
+  [6098, 8, 28, 1, "\u0627\u0644\u062A\u064A\u0646", true, 597],
+  [6106, 19, 1, 1, "\u0627\u0644\u0639\u0644\u0642", true, 597],
+  [6125, 5, 25, 1, "\u0627\u0644\u0642\u062F\u0631", true, 598],
+  [6130, 8, 100, 1, "\u0627\u0644\u0628\u064A\u0646\u0629", false, 599],
+  [6138, 8, 93, 1, "\u0627\u0644\u0632\u0644\u0632\u0644\u0629", false, 599],
+  [6146, 11, 14, 1, "\u0627\u0644\u0639\u0627\u062F\u064A\u0627\u062A", true, 600],
+  [6157, 11, 30, 1, "\u0627\u0644\u0642\u0627\u0631\u0639\u0629", true, 600],
+  [6168, 8, 16, 1, "\u0627\u0644\u062A\u0643\u0627\u062B\u0631", true, 600],
+  [6176, 3, 13, 1, "\u0627\u0644\u0639\u0635\u0631", true, 601],
+  [6179, 9, 32, 1, "\u0627\u0644\u0647\u0645\u0632\u0629", true, 601],
+  [6188, 5, 19, 1, "\u0627\u0644\u0641\u064A\u0644", true, 601],
+  [6193, 4, 29, 1, "\u0642\u0631\u064A\u0634", true, 602],
+  [6197, 7, 17, 1, "\u0627\u0644\u0645\u0627\u0639\u0648\u0646", true, 602],
+  [6204, 3, 15, 1, "\u0627\u0644\u0643\u0648\u062B\u0631", true, 602],
+  [6207, 6, 18, 1, "\u0627\u0644\u0643\u0627\u0641\u0631\u0648\u0646", true, 603],
+  [6213, 3, 114, 1, "\u0627\u0644\u0646\u0635\u0631", false, 603],
+  [6216, 5, 6, 1, "\u0627\u0644\u0645\u0633\u062F", true, 603],
+  [6221, 4, 22, 1, "\u0627\u0644\u0625\u062E\u0644\u0627\u0635", true, 604],
+  [6225, 5, 20, 1, "\u0627\u0644\u0641\u0644\u0642", true, 604],
+  [6230, 6, 21, 1, "\u0627\u0644\u0646\u0627\u0633", true, 604],
+  [6236, 0, -1, -1, "", false, -1]
+];function getSurahMeta(surah) {
+  checkValidSurah(surah);
+  return SuraList[surah];
+}function getAyaCountinSura(surah) {
+  return getSurahMeta(surah)[1];
+}function checkValidSurah(surah, checkOnly = false) {
+  if (typeof surah !== "number" || !Number.isInteger(surah)) {
+    if (checkOnly) return false;
+    throw new TypeError("Ayah ID must be an integer");
+  }
+  if (surah < 1 || surah > meta.numSuras) {
+    if (checkOnly) return false;
+    throw new RangeError("Surah must be between 1 and " + meta.numSuras);
+  }
+  return true;
+}
+function checkValidSurahAyah(surah, ayah, checkOnly = false) {
+  if (!checkValidSurah(surah, checkOnly)) return false;
+  if (ayah < 1 || ayah > getAyaCountinSura(surah)) {
+    if (checkOnly) return false;
+    throw new RangeError("Ayah must be between 1 and " + getAyaCountinSura(surah));
+  }
+  return true;
+}
+function checkValidAyahId(ayahId, checkOnly = false) {
+  if (typeof ayahId !== "number" || !Number.isInteger(ayahId)) {
+    if (checkOnly) return false;
+    throw new TypeError("Ayah ID must be an integer");
+  }
+  if (ayahId < 1 || ayahId > meta.numAyas) {
+    if (checkOnly) return false;
+    throw new RangeError("Ayah ID must be between 1 and " + meta.numAyas);
+  }
+  return true;
+}function ayaStringSplitter(str) {
+  const [surahStr, ayahsStr] = str.trim().split(":");
+  const surah = parseInt(surahStr, 10);
+  if (isNaN(surah)) {
+    throw "Error in surah format " + str;
+  }
+  if (!ayahsStr) {
+    throw "Error in data " + str;
+  }
+  let ayahs;
+  if (ayahsStr.includes("-")) {
+    ayahs = ayahsStr.split("-").map((a) => {
+      const ayah = parseInt(a, 10);
+      if (isNaN(ayah) || ayah === 0) {
+        throw "Error in ayah " + a;
+      }
+      return ayah;
+    });
+    if (ayahs[0] > ayahs[1]) throw "Error in ayah range " + str;
+  } else {
+    ayahs = parseInt(ayahsStr, 10);
+    if (isNaN(ayahs) || ayahs === 0) {
+      throw "Error in data " + str;
+    }
+    checkValidSurahAyah(surah, ayahs);
+  }
+  return [surah, ayahs];
+}function findAyaidBySurah(surah, ayah) {
+  checkValidSurahAyah(surah, ayah);
+  const [startAyahId] = getSurahMeta(surah);
+  return startAyahId + ayah;
+}const JuzList = [
+  0,
+  1,
+  149,
+  260,
+  386,
+  517,
+  641,
+  751,
+  900,
+  1042,
+  1201,
+  1328,
+  1479,
+  1649,
+  1803,
+  2030,
+  2215,
+  2484,
+  2674,
+  2876,
+  3215,
+  3386,
+  3564,
+  3733,
+  4090,
+  4265,
+  4511,
+  4706,
+  5105,
+  5242,
+  5673,
+  6237
+];function findJuzByAyaid(ayaId) {
+  checkValidAyahId(ayaId);
+  return JuzList.findIndex((x) => x > ayaId) - 1;
+}function findJuz(surah, ayah = 1, ayahMode = false) {
+  const ayahId = ayahMode ? ayah : checkValidSurahAyah(surah, ayah) && findAyaidBySurah(surah, ayah);
+  return findJuzByAyaid(ayahId);
+}function findSurahByAyaid(ayaId) {
+  checkValidAyahId(ayaId);
+  const suraNum = SuraList.findIndex((x) => x[0] >= ayaId) - 1;
+  return [suraNum, ayaId - SuraList[suraNum][0]];
+}function findJuzAndShift(surah, ayah, ayahMode = false) {
+  const ayahId = ayahMode ? checkValidAyahId(ayah) && ayah : checkValidSurah(surah) && findAyaidBySurah(surah, ayah);
+  const juz = findJuzByAyaid(ayahId);
+  const leftAyahId = JuzList[juz];
+  if (ayahMode) [surah] = findSurahByAyaid(ayahId);
+  const [surahStartAyahId] = SuraList[surah];
+  return {
+    juz,
+    ayahsBetweenJuzSurah: surahStartAyahId - leftAyahId + 1,
+    leftAyahId
+  };
+}const HizbQuarterList = [
+  0,
+  1,
+  33,
+  51,
+  67,
+  82,
+  99,
+  113,
+  131,
+  149,
+  165,
+  184,
+  196,
+  210,
+  226,
+  240,
+  250,
+  260,
+  270,
+  279,
+  290,
+  308,
+  326,
+  345,
+  368,
+  386,
+  406,
+  426,
+  446,
+  464,
+  479,
+  494,
+  505,
+  517,
+  529,
+  551,
+  567,
+  581,
+  593,
+  607,
+  628,
+  641,
+  656,
+  670,
+  681,
+  696,
+  710,
+  720,
+  736,
+  751,
+  766,
+  778,
+  802,
+  825,
+  848,
+  863,
+  884,
+  900,
+  916,
+  930,
+  940,
+  955,
+  985,
+  1001,
+  1019,
+  1042,
+  1071,
+  1096,
+  1110,
+  1125,
+  1143,
+  1161,
+  1182,
+  1201,
+  1221,
+  1236,
+  1254,
+  1269,
+  1281,
+  1295,
+  1310,
+  1328,
+  1346,
+  1357,
+  1375,
+  1390,
+  1417,
+  1435,
+  1454,
+  1479,
+  1497,
+  1514,
+  1534,
+  1557,
+  1581,
+  1603,
+  1626,
+  1649,
+  1673,
+  1697,
+  1712,
+  1726,
+  1742,
+  1760,
+  1778,
+  1803,
+  1852,
+  1902,
+  1931,
+  1952,
+  1976,
+  1991,
+  2012,
+  2030,
+  2052,
+  2079,
+  2099,
+  2128,
+  2157,
+  2172,
+  2191,
+  2215,
+  2239,
+  2272,
+  2309,
+  2349,
+  2403,
+  2431,
+  2459,
+  2484,
+  2512,
+  2534,
+  2566,
+  2596,
+  2614,
+  2633,
+  2655,
+  2674,
+  2709,
+  2748,
+  2792,
+  2812,
+  2826,
+  2844,
+  2856,
+  2876,
+  2908,
+  2933,
+  2984,
+  3043,
+  3113,
+  3160,
+  3186,
+  3215,
+  3241,
+  3264,
+  3281,
+  3303,
+  3328,
+  3341,
+  3366,
+  3386,
+  3410,
+  3440,
+  3463,
+  3491,
+  3514,
+  3534,
+  3551,
+  3564,
+  3584,
+  3593,
+  3616,
+  3630,
+  3652,
+  3675,
+  3701,
+  3733,
+  3765,
+  3810,
+  3871,
+  3933,
+  3991,
+  4022,
+  4066,
+  4090,
+  4111,
+  4134,
+  4154,
+  4174,
+  4199,
+  4227,
+  4243,
+  4265,
+  4285,
+  4299,
+  4323,
+  4349,
+  4382,
+  4431,
+  4485,
+  4511,
+  4531,
+  4555,
+  4578,
+  4601,
+  4613,
+  4626,
+  4657,
+  4706,
+  4759,
+  4810,
+  4855,
+  4902,
+  4980,
+  5054,
+  5091,
+  5105,
+  5118,
+  5137,
+  5157,
+  5178,
+  5192,
+  5218,
+  5230,
+  5242,
+  5272,
+  5324,
+  5394,
+  5448,
+  5495,
+  5552,
+  5610,
+  5673,
+  5759,
+  5830,
+  5885,
+  5949,
+  6024,
+  6091,
+  6155,
+  6237
+];function findJuzHizbByAyaid(ayaId) {
+  checkValidAyahId(ayaId);
+  const juz = findJuzByAyaid(ayaId);
+  const quarterIndex = HizbQuarterList.findIndex((x) => x > ayaId) - 1;
+  const hizb = quarterIndex % 8 || 8;
+  return { juz, hizb, id: quarterIndex };
+}function findJuzHizb(surah, ayah = 1, ayahMode = false) {
+  const ayahId = ayahMode ? ayah : checkValidSurah(surah) && findAyaidBySurah(surah, ayah);
+  return findJuzHizbByAyaid(ayahId);
+}function findJuzMetaBySurah(surah, ayah = 1) {
+  const {
+    juz: leftjuz,
+    ayahsBetweenJuzSurah,
+    leftAyahId
+  } = findJuzAndShift(surah, ayah);
+  let rightJuz = leftjuz;
+  while (rightJuz < meta.numJuzs && findSurahByAyaid(JuzList[rightJuz + 1])[0] === surah) {
+    rightJuz++;
+  }
+  return {
+    leftjuz,
+    ayahsBetweenJuzSurah,
+    rightJuz,
+    leftAyahId,
+    rightAyahId: JuzList[rightJuz + 1]
+  };
+}const PageList = [
+  0,
+  1,
+  8,
+  13,
+  24,
+  32,
+  37,
+  45,
+  56,
+  65,
+  69,
+  77,
+  84,
+  91,
+  96,
+  101,
+  109,
+  113,
+  120,
+  127,
+  134,
+  142,
+  149,
+  153,
+  161,
+  171,
+  177,
+  184,
+  189,
+  194,
+  198,
+  204,
+  210,
+  218,
+  223,
+  227,
+  232,
+  238,
+  241,
+  245,
+  253,
+  256,
+  260,
+  264,
+  267,
+  272,
+  277,
+  282,
+  289,
+  290,
+  294,
+  303,
+  309,
+  316,
+  323,
+  331,
+  339,
+  346,
+  355,
+  364,
+  371,
+  377,
+  385,
+  394,
+  402,
+  409,
+  415,
+  426,
+  434,
+  442,
+  447,
+  451,
+  459,
+  467,
+  474,
+  480,
+  488,
+  494,
+  500,
+  505,
+  508,
+  513,
+  517,
+  520,
+  527,
+  531,
+  538,
+  545,
+  553,
+  559,
+  568,
+  573,
+  580,
+  585,
+  588,
+  595,
+  599,
+  607,
+  615,
+  621,
+  628,
+  634,
+  641,
+  648,
+  656,
+  664,
+  669,
+  672,
+  675,
+  679,
+  683,
+  687,
+  693,
+  701,
+  706,
+  711,
+  715,
+  720,
+  727,
+  734,
+  740,
+  746,
+  752,
+  759,
+  765,
+  773,
+  778,
+  783,
+  790,
+  798,
+  808,
+  817,
+  825,
+  834,
+  842,
+  849,
+  858,
+  863,
+  871,
+  880,
+  884,
+  891,
+  900,
+  908,
+  914,
+  921,
+  927,
+  932,
+  936,
+  941,
+  947,
+  955,
+  966,
+  977,
+  985,
+  992,
+  998,
+  1006,
+  1012,
+  1022,
+  1028,
+  1036,
+  1042,
+  1050,
+  1059,
+  1075,
+  1085,
+  1092,
+  1098,
+  1104,
+  1110,
+  1114,
+  1118,
+  1125,
+  1133,
+  1142,
+  1150,
+  1161,
+  1169,
+  1177,
+  1186,
+  1194,
+  1201,
+  1206,
+  1213,
+  1222,
+  1230,
+  1236,
+  1242,
+  1249,
+  1256,
+  1262,
+  1267,
+  1272,
+  1276,
+  1283,
+  1290,
+  1297,
+  1304,
+  1308,
+  1315,
+  1322,
+  1329,
+  1335,
+  1342,
+  1347,
+  1353,
+  1358,
+  1365,
+  1371,
+  1379,
+  1385,
+  1390,
+  1398,
+  1407,
+  1418,
+  1426,
+  1435,
+  1443,
+  1453,
+  1462,
+  1471,
+  1479,
+  1486,
+  1493,
+  1502,
+  1511,
+  1519,
+  1527,
+  1536,
+  1545,
+  1555,
+  1562,
+  1571,
+  1582,
+  1591,
+  1601,
+  1611,
+  1619,
+  1627,
+  1634,
+  1640,
+  1649,
+  1660,
+  1666,
+  1675,
+  1683,
+  1692,
+  1700,
+  1708,
+  1713,
+  1721,
+  1726,
+  1736,
+  1742,
+  1750,
+  1756,
+  1761,
+  1769,
+  1775,
+  1784,
+  1793,
+  1803,
+  1818,
+  1834,
+  1854,
+  1873,
+  1893,
+  1908,
+  1916,
+  1928,
+  1936,
+  1944,
+  1956,
+  1966,
+  1974,
+  1981,
+  1989,
+  1995,
+  2004,
+  2012,
+  2020,
+  2030,
+  2037,
+  2047,
+  2057,
+  2068,
+  2079,
+  2088,
+  2096,
+  2105,
+  2116,
+  2126,
+  2134,
+  2145,
+  2156,
+  2161,
+  2168,
+  2175,
+  2186,
+  2194,
+  2202,
+  2215,
+  2224,
+  2238,
+  2251,
+  2262,
+  2276,
+  2289,
+  2302,
+  2315,
+  2327,
+  2346,
+  2361,
+  2386,
+  2400,
+  2413,
+  2425,
+  2436,
+  2447,
+  2462,
+  2474,
+  2484,
+  2494,
+  2508,
+  2519,
+  2528,
+  2541,
+  2556,
+  2565,
+  2574,
+  2585,
+  2596,
+  2601,
+  2611,
+  2619,
+  2626,
+  2634,
+  2642,
+  2651,
+  2660,
+  2668,
+  2674,
+  2691,
+  2701,
+  2716,
+  2733,
+  2748,
+  2763,
+  2778,
+  2792,
+  2802,
+  2812,
+  2819,
+  2823,
+  2828,
+  2835,
+  2845,
+  2850,
+  2853,
+  2858,
+  2867,
+  2876,
+  2888,
+  2899,
+  2911,
+  2923,
+  2933,
+  2952,
+  2972,
+  2993,
+  3016,
+  3044,
+  3069,
+  3092,
+  3116,
+  3139,
+  3160,
+  3173,
+  3182,
+  3195,
+  3204,
+  3215,
+  3223,
+  3236,
+  3248,
+  3258,
+  3266,
+  3274,
+  3281,
+  3288,
+  3296,
+  3303,
+  3312,
+  3323,
+  3330,
+  3337,
+  3347,
+  3355,
+  3364,
+  3371,
+  3379,
+  3386,
+  3393,
+  3404,
+  3415,
+  3425,
+  3434,
+  3442,
+  3451,
+  3460,
+  3470,
+  3481,
+  3489,
+  3498,
+  3504,
+  3515,
+  3524,
+  3534,
+  3540,
+  3549,
+  3556,
+  3564,
+  3569,
+  3577,
+  3584,
+  3588,
+  3596,
+  3607,
+  3614,
+  3621,
+  3629,
+  3638,
+  3646,
+  3655,
+  3664,
+  3672,
+  3679,
+  3691,
+  3699,
+  3705,
+  3718,
+  3733,
+  3746,
+  3760,
+  3776,
+  3789,
+  3813,
+  3840,
+  3865,
+  3891,
+  3915,
+  3942,
+  3971,
+  3987,
+  3997,
+  4013,
+  4032,
+  4054,
+  4064,
+  4069,
+  4080,
+  4090,
+  4099,
+  4106,
+  4115,
+  4126,
+  4133,
+  4141,
+  4150,
+  4159,
+  4167,
+  4174,
+  4183,
+  4192,
+  4200,
+  4211,
+  4219,
+  4230,
+  4239,
+  4248,
+  4257,
+  4265,
+  4273,
+  4283,
+  4288,
+  4295,
+  4304,
+  4317,
+  4324,
+  4336,
+  4348,
+  4359,
+  4373,
+  4386,
+  4399,
+  4415,
+  4433,
+  4454,
+  4474,
+  4487,
+  4496,
+  4506,
+  4516,
+  4525,
+  4531,
+  4539,
+  4546,
+  4557,
+  4565,
+  4575,
+  4584,
+  4593,
+  4599,
+  4607,
+  4612,
+  4617,
+  4624,
+  4631,
+  4646,
+  4666,
+  4682,
+  4706,
+  4727,
+  4750,
+  4767,
+  4785,
+  4811,
+  4829,
+  4853,
+  4874,
+  4896,
+  4918,
+  4942,
+  4969,
+  4996,
+  5030,
+  5056,
+  5079,
+  5087,
+  5094,
+  5100,
+  5105,
+  5111,
+  5116,
+  5126,
+  5130,
+  5136,
+  5143,
+  5151,
+  5156,
+  5162,
+  5169,
+  5178,
+  5186,
+  5193,
+  5200,
+  5209,
+  5218,
+  5223,
+  5230,
+  5237,
+  5242,
+  5254,
+  5268,
+  5287,
+  5314,
+  5332,
+  5358,
+  5386,
+  5415,
+  5430,
+  5448,
+  5461,
+  5476,
+  5495,
+  5513,
+  5543,
+  5571,
+  5597,
+  5617,
+  5642,
+  5673,
+  5703,
+  5728,
+  5759,
+  5801,
+  5830,
+  5855,
+  5883,
+  5910,
+  5932,
+  5964,
+  5994,
+  6017,
+  6044,
+  6073,
+  6099,
+  6126,
+  6138,
+  6156,
+  6177,
+  6194,
+  6208,
+  6222,
+  6237
+];function findPage(surah, ayah, ayahMode = false) {
+  const ayahId = ayahMode ? checkValidAyahId(ayah) && ayah : checkValidSurah(surah) && findAyaidBySurah(surah, ayah);
+  return PageList.findIndex((x) => x > ayahId) - 1;
+}function findRangeAroundAyah(surah, ayah, mode, ayahMode = false) {
+  const ayahId = ayahMode ? ayah : checkValidSurah(surah) && findAyaidBySurah(surah, ayah);
+  switch (mode) {
+    case "juz": {
+      const juz = findJuzByAyaid(ayahId);
+      return [JuzList[juz], JuzList[juz + 1] - 1];
+    }
+    case "surah": {
+      return [SuraList[surah][0] + 1, SuraList[surah + 1][0]];
+    }
+    case "ayah": {
+      return [ayahId, ayahId];
+    }
+    case "page": {
+      const page = findPage(-1, ayahId, true);
+      return [PageList[page], PageList[page + 1] - 1];
+    }
+    case "all":
+    default:
+      return [1, meta.numAyas];
+  }
+}function binarySearch(ar, el, compare_fn = (a, b) => a - b) {
+  let m = 0;
+  let n = ar.length - 1;
+  while (m <= n) {
+    const k = n + m >> 1;
+    const cmp = compare_fn(el, ar[k]);
+    if (cmp > 0) {
+      m = k + 1;
+    } else if (cmp < 0) {
+      n = k - 1;
+    } else {
+      return k;
+    }
+  }
+  return -m - 1;
+}function isAyahJuzFirst(surah, ayah, ayahMode = false) {
+  const ayahId = ayahMode ? checkValidAyahId(ayah) && ayah : checkValidSurah(surah) && findAyaidBySurah(surah, ayah);
+  return binarySearch(JuzList, ayahId);
+}function isAyahPageFirst(surah, ayah, ayahMode = false) {
+  const ayahId = ayahMode ? checkValidAyahId(ayah) && ayah : checkValidSurah(surah) && findAyaidBySurah(surah, ayah);
+  return binarySearch(PageList, ayahId);
+}const ManzilList = [
+  0,
+  1,
+  670,
+  1365,
+  2030,
+  2933,
+  3789,
+  4631,
+  6237
+];const RukuList = [
+  0,
+  1,
+  8,
+  15,
+  28,
+  37,
+  47,
+  54,
+  67,
+  69,
+  79,
+  90,
+  94,
+  104,
+  111,
+  120,
+  129,
+  137,
+  149,
+  155,
+  160,
+  171,
+  175,
+  184,
+  190,
+  196,
+  204,
+  218,
+  224,
+  229,
+  236,
+  239,
+  243,
+  250,
+  256,
+  261,
+  265,
+  268,
+  274,
+  281,
+  289,
+  291,
+  294,
+  303,
+  314,
+  324,
+  335,
+  348,
+  357,
+  365,
+  374,
+  385,
+  395,
+  403,
+  414,
+  423,
+  437,
+  442,
+  449,
+  465,
+  474,
+  483,
+  494,
+  504,
+  508,
+  516,
+  519,
+  527,
+  536,
+  544,
+  553,
+  564,
+  570,
+  581,
+  585,
+  590,
+  594,
+  598,
+  606,
+  609,
+  620,
+  628,
+  635,
+  646,
+  656,
+  665,
+  670,
+  675,
+  681,
+  689,
+  696,
+  704,
+  713,
+  720,
+  726,
+  736,
+  747,
+  756,
+  763,
+  770,
+  778,
+  785,
+  790,
+  800,
+  810,
+  820,
+  831,
+  840,
+  845,
+  850,
+  860,
+  872,
+  880,
+  884,
+  890,
+  900,
+  911,
+  919,
+  930,
+  934,
+  940,
+  944,
+  955,
+  965,
+  980,
+  986,
+  994,
+  1002,
+  1008,
+  1013,
+  1019,
+  1027,
+  1039,
+  1048,
+  1054,
+  1063,
+  1081,
+  1084,
+  1096,
+  1102,
+  1106,
+  1112,
+  1117,
+  1126,
+  1136,
+  1143,
+  1161,
+  1171,
+  1180,
+  1189,
+  1198,
+  1205,
+  1209,
+  1219,
+  1225,
+  1230,
+  1236,
+  1242,
+  1252,
+  1260,
+  1265,
+  1273,
+  1278,
+  1295,
+  1302,
+  1308,
+  1316,
+  1325,
+  1335,
+  1346,
+  1354,
+  1358,
+  1365,
+  1375,
+  1385,
+  1395,
+  1405,
+  1418,
+  1425,
+  1435,
+  1447,
+  1457,
+  1468,
+  1474,
+  1482,
+  1498,
+  1509,
+  1523,
+  1534,
+  1542,
+  1557,
+  1569,
+  1583,
+  1597,
+  1603,
+  1617,
+  1626,
+  1632,
+  1639,
+  1646,
+  1654,
+  1665,
+  1676,
+  1690,
+  1701,
+  1708,
+  1715,
+  1726,
+  1734,
+  1739,
+  1745,
+  1751,
+  1757,
+  1763,
+  1772,
+  1778,
+  1785,
+  1792,
+  1803,
+  1818,
+  1828,
+  1847,
+  1863,
+  1882,
+  1902,
+  1911,
+  1923,
+  1927,
+  1936,
+  1942,
+  1952,
+  1962,
+  1967,
+  1972,
+  1978,
+  1985,
+  1991,
+  2002,
+  2012,
+  2021,
+  2030,
+  2040,
+  2052,
+  2060,
+  2070,
+  2082,
+  2090,
+  2100,
+  2107,
+  2114,
+  2123,
+  2130,
+  2141,
+  2153,
+  2158,
+  2163,
+  2172,
+  2185,
+  2190,
+  2194,
+  2200,
+  2211,
+  2223,
+  2242,
+  2251,
+  2266,
+  2291,
+  2301,
+  2316,
+  2333,
+  2349,
+  2373,
+  2403,
+  2425,
+  2438,
+  2453,
+  2464,
+  2477,
+  2484,
+  2494,
+  2513,
+  2525,
+  2534,
+  2559,
+  2577,
+  2596,
+  2606,
+  2618,
+  2621,
+  2629,
+  2634,
+  2644,
+  2653,
+  2660,
+  2668,
+  2674,
+  2696,
+  2706,
+  2724,
+  2751,
+  2766,
+  2792,
+  2802,
+  2812,
+  2818,
+  2826,
+  2832,
+  2842,
+  2849,
+  2853,
+  2856,
+  2865,
+  2876,
+  2890,
+  2900,
+  2916,
+  2933,
+  2942,
+  2966,
+  2985,
+  3002,
+  3037,
+  3055,
+  3073,
+  3092,
+  3108,
+  3124,
+  3160,
+  3174,
+  3191,
+  3204,
+  3218,
+  3226,
+  3242,
+  3253,
+  3266,
+  3274,
+  3281,
+  3295,
+  3303,
+  3313,
+  3328,
+  3341,
+  3354,
+  3363,
+  3371,
+  3385,
+  3392,
+  3404,
+  3410,
+  3420,
+  3429,
+  3437,
+  3450,
+  3463,
+  3470,
+  3481,
+  3489,
+  3504,
+  3515,
+  3526,
+  3534,
+  3542,
+  3554,
+  3561,
+  3568,
+  3574,
+  3586,
+  3592,
+  3602,
+  3607,
+  3616,
+  3628,
+  3637,
+  3643,
+  3652,
+  3661,
+  3668,
+  3675,
+  3687,
+  3698,
+  3706,
+  3718,
+  3738,
+  3756,
+  3773,
+  3789,
+  3810,
+  3863,
+  3902,
+  3927,
+  3971,
+  3985,
+  3997,
+  4011,
+  4035,
+  4059,
+  4068,
+  4080,
+  4090,
+  4100,
+  4111,
+  4122,
+  4129,
+  4134,
+  4143,
+  4154,
+  4161,
+  4171,
+  4184,
+  4194,
+  4202,
+  4212,
+  4219,
+  4227,
+  4237,
+  4244,
+  4251,
+  4263,
+  4273,
+  4282,
+  4292,
+  4302,
+  4316,
+  4326,
+  4341,
+  4351,
+  4361,
+  4371,
+  4382,
+  4393,
+  4415,
+  4444,
+  4457,
+  4474,
+  4485,
+  4495,
+  4500,
+  4511,
+  4521,
+  4531,
+  4537,
+  4546,
+  4557,
+  4565,
+  4574,
+  4584,
+  4594,
+  4601,
+  4610,
+  4613,
+  4623,
+  4631,
+  4646,
+  4660,
+  4676,
+  4699,
+  4722,
+  4736,
+  4764,
+  4785,
+  4810,
+  4817,
+  4847,
+  4869,
+  4887,
+  4902,
+  4927,
+  4947,
+  4980,
+  5018,
+  5054,
+  5076,
+  5086,
+  5095,
+  5101,
+  5105,
+  5111,
+  5118,
+  5127,
+  5137,
+  5144,
+  5151,
+  5157,
+  5164,
+  5173,
+  5178,
+  5186,
+  5189,
+  5197,
+  5200,
+  5210,
+  5218,
+  5225,
+  5230,
+  5237,
+  5242,
+  5256,
+  5272,
+  5305,
+  5324,
+  5361,
+  5376,
+  5411,
+  5420,
+  5440,
+  5448,
+  5467,
+  5476,
+  5495,
+  5496,
+  5527,
+  5552,
+  5582,
+  5592,
+  5614,
+  5623,
+  5663,
+  5673,
+  5703,
+  5713,
+  5739,
+  5759,
+  5801,
+  5830,
+  5849,
+  5885,
+  5910,
+  5932,
+  5949,
+  5968,
+  5994,
+  6024,
+  6044,
+  6059,
+  6080,
+  6091,
+  6099,
+  6107,
+  6126,
+  6131,
+  6139,
+  6147,
+  6158,
+  6169,
+  6177,
+  6180,
+  6189,
+  6194,
+  6198,
+  6205,
+  6208,
+  6214,
+  6217,
+  6222,
+  6226,
+  6231,
+  6237
+];const SajdaList = [
+  // [ayaId, type]
+  [1160, "recommended"],
+  [1722, "recommended"],
+  [1951, "recommended"],
+  [2138, "recommended"],
+  [2308, "recommended"],
+  [2613, "recommended"],
+  [2672, "recommended"],
+  [2915, "recommended"],
+  [3185, "recommended"],
+  [3518, "obligatory"],
+  [3994, "recommended"],
+  [4256, "obligatory"],
+  [4846, "obligatory"],
+  [5905, "recommended"],
+  [6125, "obligatory"]
+];function nextAyah(surah, ayah) {
+  if (surah < 1 || surah > meta.numSuras)
+    throw new RangeError("Surah must be between 1 and " + meta.numSuras);
+  const ayaid = findAyaidBySurah(surah, ayah);
+  return findSurahByAyaid(ayaid == meta.numAyas ? 1 : ayaid + 1);
+}function pageMeta(pageNum) {
+  if (pageNum < 1 || pageNum > meta.numPages)
+    throw new RangeError("pagenum must be between 1 and " + meta.numPages);
+  const [curPage, nextPage] = [
+    PageList[pageNum],
+    PageList[pageNum + 1]
+  ];
+  return {
+    pageNum,
+    first: findSurahByAyaid(curPage),
+    last: [...findSurahByAyaid(nextPage - 1)]
+  };
+}function prevAyah(surah, ayah) {
+  checkValidSurah(surah);
+  const ayaid = findAyaidBySurah(surah, ayah);
+  return findSurahByAyaid(ayaid == 1 ? meta.numAyas : ayaid - 1);
+}const suraNames$1 = [
+  [],
+  ["Al-Faatiha", "The Opening"],
+  ["Al-Baqara", "The Cow"],
+  ["Aal-i-Imraan", "The Family of Imraan"],
+  ["An-Nisaa", "The Women"],
+  ["Al-Maaida", "The Table"],
+  ["Al-An'aam", "The Cattle"],
+  ["Al-A'raaf", "The Heights"],
+  ["Al-Anfaal", "The Spoils of War"],
+  ["At-Tawba", "The Repentance"],
+  ["Yunus", "Jonas"],
+  ["Hud", "Hud"],
+  ["Yusuf", "Joseph"],
+  ["Ar-Ra'd", "The Thunder"],
+  ["Ibrahim", "Abraham"],
+  ["Al-Hijr", "The Rock"],
+  ["An-Nahl", "The Bee"],
+  ["Al-Israa", "The Night Journey"],
+  ["Al-Kahf", "The Cave"],
+  ["Maryam", "Mary"],
+  ["Taa-Haa", "Taa-Haa"],
+  ["Al-Anbiyaa", "The Prophets"],
+  ["Al-Hajj", "The Pilgrimage"],
+  ["Al-Muminoon", "The Believers"],
+  ["An-Noor", "The Light"],
+  ["Al-Furqaan", "The Criterion"],
+  ["Ash-Shu'araa", "The Poets"],
+  ["An-Naml", "The Ant"],
+  ["Al-Qasas", "The Stories"],
+  ["Al-Ankaboot", "The Spider"],
+  ["Ar-Room", "The Romans"],
+  ["Luqman", "Luqman"],
+  ["As-Sajda", "The Prostration"],
+  ["Al-Ahzaab", "The Clans"],
+  ["Saba", "Sheba"],
+  ["Faatir", "The Originator"],
+  ["Yaseen", "Yaseen"],
+  ["As-Saaffaat", "Those drawn up in Ranks"],
+  ["Saad", "The letter Saad"],
+  ["Az-Zumar", "The Groups"],
+  ["Al-Ghaafir", "The Forgiver"],
+  ["Fussilat", "Explained in detail"],
+  ["Ash-Shura", "Consultation"],
+  ["Az-Zukhruf", "Ornaments of gold"],
+  ["Ad-Dukhaan", "The Smoke"],
+  ["Al-Jaathiya", "Crouching"],
+  ["Al-Ahqaf", "The Dunes"],
+  ["Muhammad", "Muhammad"],
+  ["Al-Fath", "The Victory"],
+  ["Al-Hujuraat", "The Inner Apartments"],
+  ["Qaaf", "The letter Qaaf"],
+  ["Adh-Dhaariyat", "The Winnowing Winds"],
+  ["At-Tur", "The Mount"],
+  ["An-Najm", "The Star"],
+  ["Al-Qamar", "The Moon"],
+  ["Ar-Rahmaan", "The Beneficent"],
+  ["Al-Waaqia", "The Inevitable"],
+  ["Al-Hadid", "The Iron"],
+  ["Al-Mujaadila", "The Pleading Woman"],
+  ["Al-Hashr", "The Exile"],
+  ["Al-Mumtahana", "She that is to be examined"],
+  ["As-Saff", "The Ranks"],
+  ["Al-Jumu'a", "Friday"],
+  ["Al-Munaafiqoon", "The Hypocrites"],
+  ["At-Taghaabun", "Mutual Disillusion"],
+  ["At-Talaaq", "Divorce"],
+  ["At-Tahrim", "The Prohibition"],
+  ["Al-Mulk", "The Sovereignty"],
+  ["Al-Qalam", "The Pen"],
+  ["Al-Haaqqa", "The Reality"],
+  ["Al-Ma'aarij", "The Ascending Stairways"],
+  ["Nooh", "Noah"],
+  ["Al-Jinn", "The Jinn"],
+  ["Al-Muzzammil", "The Enshrouded One"],
+  ["Al-Muddaththir", "The Cloaked One"],
+  ["Al-Qiyaama", "The Resurrection"],
+  ["Al-Insaan", "Man"],
+  ["Al-Mursalaat", "The Emissaries"],
+  ["An-Naba", "The Announcement"],
+  ["An-Naazi'aat", "Those who drag forth"],
+  ["Abasa", "He frowned"],
+  ["At-Takwir", "The Overthrowing"],
+  ["Al-Infitaar", "The Cleaving"],
+  ["Al-Mutaffifin", "Defrauding"],
+  ["Al-Inshiqaaq", "The Splitting Open"],
+  ["Al-Burooj", "The Constellations"],
+  ["At-Taariq", "The Morning Star"],
+  ["Al-A'laa", "The Most High"],
+  ["Al-Ghaashiya", "The Overwhelming"],
+  ["Al-Fajr", "The Dawn"],
+  ["Al-Balad", "The City"],
+  ["Ash-Shams", "The Sun"],
+  ["Al-Lail", "The Night"],
+  ["Ad-Dhuhaa", "The Morning Hours"],
+  ["Ash-Sharh", "The Consolation"],
+  ["At-Tin", "The Fig"],
+  ["Al-Alaq", "The Clot"],
+  ["Al-Qadr", "The Power, Fate"],
+  ["Al-Bayyina", "The Evidence"],
+  ["Az-Zalzala", "The Earthquake"],
+  ["Al-Aadiyaat", "The Chargers"],
+  ["Al-Qaari'a", "The Calamity"],
+  ["At-Takaathur", "Competition"],
+  ["Al-Asr", "The Declining Day, Epoch"],
+  ["Al-Humaza", "The Traducer"],
+  ["Al-Fil", "The Elephant"],
+  ["Quraish", "Quraysh"],
+  ["Al-Maa'un", "Almsgiving"],
+  ["Al-Kawthar", "Abundance"],
+  ["Al-Kaafiroon", "The Disbelievers"],
+  ["An-Nasr", "Divine Support"],
+  ["Al-Masad", "The Palm Fibre"],
+  ["Al-Ikhlaas", "Sincerity"],
+  ["Al-Falaq", "The Dawn"],
+  ["An-Naas", "Mankind"]
+];const suraNames = [
+  [],
+  ["\u0410\u043B\u044C-\u0424\u0430\u0442\u0438\u0445\u0430", "\u041E\u0442\u043A\u0440\u044B\u0432\u0430\u044E\u0449\u0430\u044F \u041A\u043E\u0440\u0430\u043D"],
+  ["\u0410\u043B\u044C-\u0411\u0430\u043A\u0430\u0440\u0430", "\u041A\u043E\u0440\u043E\u0432\u0430"],
+  ["\u0410\u043B\u044C \u2018\u0418\u043C\u0440\u0430\u043D", "\u0421\u0435\u043C\u0435\u0439\u0441\u0442\u0432\u043E \u2018\u0418\u043C\u0440\u0430\u043D\u0430"],
+  ["\u0410\u043D-\u041D\u0438\u0441\u0430", "\u0416\u0435\u043D\u0449\u0438\u043D\u044B"],
+  ["\u0410\u043B\u044C-\u041C\u0430\u0438\u0434\u0430", "\u0422\u0440\u0430\u043F\u0435\u0437\u0430"],
+  ["\u0410\u043B\u044C-\u0410\u043D\u2018\u0430\u043C", "\u0421\u043A\u043E\u0442"],
+  ["\u0410\u043B\u044C-\u0410\u2018\u0440\u0430\u0444", "\u041E\u0433\u0440\u0430\u0434\u044B"],
+  ["\u0410\u043B\u044C-\u0410\u043D\u0444\u0430\u043B\u044C", "\u0412\u043E\u0435\u043D\u043D\u0430\u044F \u0434\u043E\u0431\u044B\u0447\u0430"],
+  ["\u0410\u0442-\u0422\u0430\u0443\u0431\u0430", "\u041F\u043E\u043A\u0430\u044F\u043D\u0438\u0435"],
+  ["\u042E\u043D\u0443\u0441", "\u0418\u043E\u043D\u0430"],
+  ["\u0425\u0443\u0434", "\u0425\u0443\u0434"],
+  ["\u042E\u0441\u0443\u0444", "\u0418\u043E\u0441\u0438\u0444"],
+  ["\u0410\u0440-\u0420\u0430\u2018\u0434", "\u0413\u0440\u043E\u043C"],
+  ["\u0418\u0431\u0440\u0430\u0445\u0438\u043C", "\u0410\u0432\u0440\u0430\u0430\u043C"],
+  ["\u0410\u043B\u044C-\u0425\u0438\u0434\u0436\u0440", "\u0425\u0438\u0434\u0436\u0440"],
+  ["\u0410\u043D-\u041D\u0430\u0445\u043B\u044C", "\u041F\u0447\u0451\u043B\u044B"],
+  ["\u0410\u043B\u044C-\u0418\u0441\u0440\u0430", "\u041D\u043E\u0447\u043D\u043E\u0439 \u043F\u0435\u0440\u0435\u043D\u043E\u0441"],
+  ["\u0410\u043B\u044C-\u041A\u044F\u0445\u0444", "\u041F\u0435\u0449\u0435\u0440\u0430"],
+  ["\u041C\u0430\u0440\u044C\u044F\u043C", "\u041C\u0430\u0440\u0438\u044F"],
+  ["\u0422\u0430, \u0445\u0430", "\u0422\u0430, \u0445\u0430"],
+  ["\u0410\u043B\u044C-\u0410\u043D\u0431\u0438\u044F", "\u041F\u0440\u043E\u0440\u043E\u043A\u0438"],
+  ["\u0410\u043B\u044C-\u0425\u0430\u0434\u0436\u0436", "\u0425\u0430\u0434\u0436"],
+  ["\u0410\u043B\u044C-\u041C\u0443\u2019\u043C\u0438\u043D\u0443\u043D", "\u0412\u0435\u0440\u0443\u044E\u0449\u0438\u0435"],
+  ["\u0410\u043D-\u041D\u0443\u0440", "\u0421\u0432\u0435\u0442"],
+  ["\u0410\u043B\u044C-\u0424\u0443\u0440\u043A\u0430\u043D", "\u0420\u0430\u0437\u043B\u0438\u0447\u0435\u043D\u0438\u0435"],
+  ["\u0410\u0448-\u0428\u0443\u2018\u0430\u0440\u0430", "\u041F\u043E\u044D\u0442\u044B"],
+  ["\u0410\u043D-\u041D\u0430\u043C\u043B\u044C", "\u041C\u0443\u0440\u0430\u0432\u044C\u0438"],
+  ["\u0410\u043B\u044C-\u041A\u0430\u0441\u0430\u0441", "\u0420\u0430\u0441\u0441\u043A\u0430\u0437"],
+  ["\u0410\u043B\u044C-\u2018\u0410\u043D\u043A\u0430\u0431\u0443\u0442", "\u041F\u0430\u0443\u043A"],
+  ["\u0410\u0440-\u0420\u0443\u043C", "\u0420\u043E\u043C\u0435\u0438"],
+  ["\u041B\u0443\u043A\u043C\u0430\u043D", "\u041B\u0443\u043A\u043C\u0430\u043D"],
+  ["\u0410\u0441-\u0421\u0430\u0434\u0436\u0434\u0430", "\u0417\u0435\u043C\u043D\u043E\u0439 \u043F\u043E\u043A\u043B\u043E\u043D"],
+  ["\u0410\u043B\u044C-\u0410\u0445\u0437\u0430\u0431", "\u041F\u043E\u043B\u0447\u0438\u0449\u0430"],
+  ["\u0421\u0430\u0431\u0430\u2019", "\u0421\u0430\u0432\u0430"],
+  ["\u0424\u0430\u0442\u044B\u0440", "\u0417\u0438\u0436\u0434\u0438\u0442\u0435\u043B\u044C"],
+  ["\u0419\u0430, \u0441\u0438\u043D", "\u0419\u0430, \u0441\u0438\u043D"],
+  ["\u0410\u0441-\u0421\u0430\u0444\u0444\u0430\u0442", "\u0421\u0442\u043E\u044F\u0449\u0438\u0435 \u0432 \u0440\u044F\u0434"],
+  ["\u0421\u0430\u0434", "\u0421\u0430\u0434"],
+  ["\u0410\u0437-\u0417\u0443\u043C\u0430\u0440", "\u0422\u043E\u043B\u043F\u044B"],
+  ["\u0413\u0430\u0444\u0438\u0440", "\u041F\u0440\u043E\u0449\u0430\u044E\u0449\u0438\u0439"],
+  ["\u0424\u0443\u0441\u0441\u044B\u043B\u044F\u0442", "\u0420\u0430\u0437\u044A\u044F\u0441\u043D\u0435\u043D\u044B"],
+  ["\u0410\u0448-\u0428\u0443\u0440\u0430", "\u0421\u043E\u0432\u0435\u0442"],
+  ["\u0410\u0437-\u0417\u0443\u0445\u0440\u0443\u0444", "\u0423\u043A\u0440\u0430\u0448\u0435\u043D\u0438\u044F"],
+  ["\u0410\u0434-\u0414\u0443\u0445\u0430\u043D", "\u0414\u044B\u043C"],
+  ["\u0410\u043B\u044C-\u0414\u0436\u0430\u0441\u0438\u044F", "\u041A\u043E\u043B\u0435\u043D\u043E\u043F\u0440\u0435\u043A\u043B\u043E\u043D\u0451\u043D\u043D\u044B\u0435"],
+  ["\u0410\u043B\u044C-\u0410\u0445\u043A\u0430\u0444", "\u0411\u0430\u0440\u0445\u0430\u043D\u044B"],
+  ["\u041C\u0443\u0445\u0430\u043C\u043C\u0430\u0434", "\u041C\u0443\u0445\u0430\u043C\u043C\u0430\u0434"],
+  ["\u0410\u043B\u044C-\u0424\u0430\u0442\u0445", "\u041F\u043E\u0431\u0435\u0434\u0430"],
+  ["\u0410\u043B\u044C-\u0425\u0443\u0434\u0436\u0443\u0440\u0430\u0442", "\u041F\u043E\u043A\u043E\u0438"],
+  ["\u041A\u0430\u0444", "\u041A\u0430\u0444"],
+  ["\u0410\u0437-\u0417\u0430\u0440\u0438\u044F\u0442", "\u0420\u0430\u0441\u0441\u0435\u0438\u0432\u0430\u044E\u0449\u0438\u0435"],
+  ["\u0410\u0442-\u0422\u0443\u0440", "\u0413\u043E\u0440\u0430"],
+  ["\u0410\u043D-\u041D\u0430\u0434\u0436\u043C", "\u0417\u0432\u0435\u0437\u0434\u0430"],
+  ["\u0410\u043B\u044C-\u041A\u0430\u043C\u0430\u0440", "\u041B\u0443\u043D\u0430"],
+  ["\u0410\u0440-\u0420\u0430\u0445\u043C\u0430\u043D", "\u041C\u0438\u043B\u043E\u0441\u0442\u0438\u0432\u044B\u0439"],
+  ["\u0410\u043B\u044C-\u0412\u0430\u043A\u0438\u2018\u0430", "\u041D\u0435\u0438\u0437\u0431\u0435\u0436\u043D\u043E\u0435"],
+  ["\u0410\u043B\u044C-\u0425\u0430\u0434\u0438\u0434", "\u0416\u0435\u043B\u0435\u0437\u043E"],
+  ["\u0410\u043B\u044C-\u041C\u0443\u0434\u0436\u0430\u0434\u0438\u043B\u044F", "\u041F\u0440\u0435\u043F\u0438\u0440\u0430\u044E\u0449\u0430\u044F\u0441\u044F"],
+  ["\u0410\u043B\u044C-\u0425\u0430\u0448\u0440", "\u0421\u0431\u043E\u0440"],
+  ["\u0410\u043B\u044C-\u041C\u0443\u043C\u0442\u0430\u0445\u0430\u043D\u0430", "\u0418\u0441\u043F\u044B\u0442\u0443\u0435\u043C\u0430\u044F"],
+  ["\u0410\u0441-\u0421\u0430\u0444\u0444", "\u0420\u044F\u0434"],
+  ["\u0410\u043B\u044C-\u0414\u0436\u0443\u043C\u0443\u2018\u0430", "\u0421\u043E\u0431\u0440\u0430\u043D\u0438\u0435"],
+  ["\u0410\u043B\u044C-\u041C\u0443\u043D\u0430\u0444\u0438\u043A\u0443\u043D", "\u041B\u0438\u0446\u0435\u043C\u0435\u0440\u044B"],
+  ["\u0410\u0442-\u0422\u0430\u0433\u0430\u0431\u0443\u043D", "\u041E\u0431\u0434\u0435\u043B\u0435\u043D\u0438\u0435"],
+  ["\u0410\u0442-\u0422\u0430\u043B\u044F\u043A", "\u0420\u0430\u0437\u0432\u043E\u0434"],
+  ["\u0410\u0442-\u0422\u0430\u0445\u0440\u0438\u043C", "\u0417\u0430\u043F\u0440\u0435\u0449\u0435\u043D\u0438\u0435"],
+  ["\u0410\u043B\u044C-\u041C\u0443\u043B\u044C\u043A", "\u0412\u043B\u0430\u0441\u0442\u044C"],
+  ["\u0410\u043B\u044C-\u041A\u0430\u043B\u044F\u043C", "\u041F\u0435\u0440\u043E"],
+  ["\u0410\u043B\u044C-\u0425\u0430\u043A\u043A\u0430", "\u041D\u0435\u043C\u0438\u043D\u0443\u0435\u043C\u043E\u0435"],
+  ["\u0410\u043B\u044C-\u041C\u0430\u2018\u0430\u0440\u0438\u0434\u0436", "\u0421\u0442\u0435\u043F\u0435\u043D\u0438"],
+  ["\u041D\u0443\u0445", "\u041D\u043E\u0439"],
+  ["\u0410\u043B\u044C-\u0414\u0436\u0438\u043D\u043D", "\u0414\u0436\u0438\u043D\u043D\u044B"],
+  ["\u0410\u043B\u044C-\u041C\u0443\u0437\u0437\u0430\u043C\u043C\u0438\u043B\u044C", "\u0417\u0430\u043A\u0443\u0442\u0430\u0432\u0448\u0438\u0439\u0441\u044F"],
+  ["\u0410\u043B\u044C-\u041C\u0443\u0434\u0434\u0430\u0441\u0441\u0438\u0440", "\u0417\u0430\u0432\u0435\u0440\u043D\u0443\u0432\u0448\u0438\u0439\u0441\u044F"],
+  ["\u0410\u043B\u044C-\u041A\u0438\u044F\u043C\u0430", "\u0412\u043E\u0441\u043A\u0440\u0435\u0441\u0435\u043D\u0438\u0435"],
+  ["\u0410\u043B\u044C-\u0418\u043D\u0441\u0430\u043D", "\u0427\u0435\u043B\u043E\u0432\u0435\u043A"],
+  ["\u0410\u043B\u044C-\u041C\u0443\u0440\u0441\u0430\u043B\u044F\u0442", "\u041F\u043E\u0441\u044B\u043B\u0430\u0435\u043C\u044B\u0435"],
+  ["\u0410\u043D-\u041D\u0430\u0431\u0430\u2019", "\u0412\u0435\u0441\u0442\u044C"],
+  ["\u0410\u043D-\u041D\u0430\u0437\u0438\u2018\u0430\u0442", "\u0412\u044B\u0440\u044B\u0432\u0430\u044E\u0449\u0438\u0435"],
+  ["\u2018\u0410\u0431\u0430\u0441\u0430", "\u041D\u0430\u0445\u043C\u0443\u0440\u0438\u043B\u0441\u044F"],
+  ["\u0410\u0442-\u0422\u0430\u043A\u0432\u0438\u0440", "\u0421\u0432\u043E\u0440\u0430\u0447\u0438\u0432\u0430\u043D\u0438\u0435"],
+  ["\u0410\u043B\u044C-\u0418\u043D\u0444\u0438\u0442\u0430\u0440", "\u0420\u0430\u0441\u043A\u0430\u043B\u044B\u0432\u0430\u043D\u0438\u0435"],
+  ["\u0410\u043B\u044C-\u041C\u0443\u0442\u0430\u0444\u0444\u0438\u0444\u0438\u043D", "\u041E\u0431\u0432\u0435\u0448\u0438\u0432\u0430\u044E\u0449\u0438\u0435"],
+  ["\u0410\u043B\u044C-\u0418\u043D\u0448\u0438\u043A\u0430\u043A", "\u0420\u0430\u0437\u0432\u0435\u0440\u0437\u043D\u0435\u0442\u0441\u044F"],
+  ["\u0410\u043B\u044C-\u0411\u0443\u0440\u0443\u0434\u0436", "\u0421\u043E\u0437\u0432\u0435\u0437\u0434\u0438\u044F"],
+  ["\u0410\u0442-\u0422\u0430\u0440\u0438\u043A", "\u041D\u043E\u0447\u043D\u043E\u0439 \u0433\u043E\u0441\u0442\u044C"],
+  ["\u0410\u043B\u044C-\u0410\u2018\u043B\u044F", "\u0412\u0441\u0435\u0432\u044B\u0448\u043D\u0438\u0439"],
+  ["\u0410\u043B\u044C-\u0413\u0430\u0448\u0438\u044F", "\u041F\u043E\u043A\u0440\u044B\u0432\u0430\u044E\u0449\u0435\u0435"],
+  ["\u0410\u043B\u044C-\u0424\u0430\u0434\u0436\u0440", "\u0417\u0430\u0440\u044F"],
+  ["\u0410\u043B\u044C-\u0411\u0430\u043B\u044F\u0434", "\u0413\u043E\u0440\u043E\u0434"],
+  ["\u0410\u0448-\u0428\u0430\u043C\u0441", "\u0421\u043E\u043B\u043D\u0446\u0435"],
+  ["\u0410\u043B\u044C-\u041B\u0435\u0439\u043B\u044C", "\u041D\u043E\u0447\u044C"],
+  ["\u0410\u0434-\u0414\u0443\u0445\u0430", "\u0423\u0442\u0440\u043E"],
+  ["\u0410\u043B\u044C-\u0418\u043D\u0448\u0438\u0440\u0430\u0445", "\u0420\u0430\u0441\u043A\u0440\u044B\u0442\u0438\u0435"],
+  ["\u0410\u0442-\u0422\u0438\u043D", "\u0421\u043C\u043E\u043A\u043E\u0432\u043D\u0438\u0446\u0430"],
+  ["\u0410\u043B\u044C-\u2018\u0410\u043B\u044F\u043A", "\u0421\u0433\u0443\u0441\u0442\u043E\u043A \u043A\u0440\u043E\u0432\u0438"],
+  ["\u0410\u043B\u044C-\u041A\u0430\u0434\u0440", "\u0412\u0435\u043B\u0438\u0447\u0438\u0435"],
+  ["\u0410\u043B\u044C-\u0411\u0430\u0439\u0439\u0438\u043D\u0430", "\u042F\u0441\u043D\u044B\u0439 \u0434\u043E\u0432\u043E\u0434"],
+  ["\u0410\u0437-\u0417\u0430\u043B\u044C\u0437\u0430\u043B\u044F", "\u0421\u043E\u0442\u0440\u044F\u0441\u0435\u043D\u0438\u0435"],
+  ["\u0410\u043B\u044C-\u2018\u0410\u0434\u0438\u044F\u0442", "\u0421\u043A\u0430\u0447\u0443\u0449\u0438\u0435"],
+  ["\u0410\u043B\u044C-\u041A\u0430\u0440\u0438\u2018\u0430", "\u041F\u043E\u0440\u0430\u0436\u0430\u044E\u0449\u0435\u0435"],
+  ["\u0410\u0442-\u0422\u0430\u043A\u044F\u0441\u0443\u0440", "\u0421\u043E\u043F\u0435\u0440\u043D\u0438\u0447\u0435\u0441\u0442\u0432\u043E"],
+  ["\u0410\u043B\u044C-\u2018\u0410\u0441\u0440", "\u041F\u0440\u0435\u0434\u0432\u0435\u0447\u0435\u0440\u043D\u0435\u0435 \u0432\u0440\u0435\u043C\u044F"],
+  ["\u0410\u043B\u044C-\u0425\u0443\u043C\u0430\u0437\u0430", "\u0425\u0443\u043B\u0438\u0442\u0435\u043B\u044C"],
+  ["\u0410\u043B\u044C-\u0424\u0438\u043B\u044C", "\u0421\u043B\u043E\u043D"],
+  ["\u041A\u0443\u0440\u0430\u0439\u0448", "\u041A\u0443\u0440\u0430\u0439\u0448\u0438\u0442\u044B"],
+  ["\u0410\u043B\u044C-\u041C\u0430\u2018\u0443\u043D", "\u0423\u0442\u0432\u0430\u0440\u044C"],
+  ["\u0410\u043B\u044C-\u041A\u0430\u0443\u0441\u0430\u0440", "\u041A\u0430\u0443\u0441\u0430\u0440"],
+  ["\u0410\u043B\u044C-\u041A\u044F\u0444\u0438\u0440\u0443\u043D", "\u041D\u0435\u0432\u0435\u0440\u0443\u044E\u0449\u0438\u0435"],
+  ["\u0410\u043D-\u041D\u0430\u0441\u0440", "\u041F\u043E\u043C\u043E\u0449\u044C"],
+  ["\u0410\u043B\u044C-\u041C\u0430\u0441\u0430\u0434", "\u041F\u0430\u043B\u044C\u043C\u043E\u0432\u044B\u0435 \u0432\u043E\u043B\u043E\u043A\u043D\u0430"],
+  ["\u0410\u043B\u044C-\u0418\u0445\u043B\u044F\u0441", "\u041E\u0447\u0438\u0449\u0435\u043D\u0438\u0435 \u0432\u0435\u0440\u044B"],
+  ["\u0410\u043B\u044C-\u0424\u0430\u043B\u044F\u043A", "\u0420\u0430\u0441\u0441\u0432\u0435\u0442"],
+  ["\u0410\u043D-\u041D\u0430\u0441", "\u041B\u044E\u0434\u0438"]
+];exports.HizbQuarterList=HizbQuarterList;exports.JuzList=JuzList;exports.ManzilList=ManzilList;exports.PageList=PageList;exports.RukuList=RukuList;exports.SajdaList=SajdaList;exports.SuraList=SuraList;exports.ayaStringSplitter=ayaStringSplitter;exports.checkValidAyahId=checkValidAyahId;exports.checkValidSurah=checkValidSurah;exports.checkValidSurahAyah=checkValidSurahAyah;exports.findAyaidBySurah=findAyaidBySurah;exports.findJuz=findJuz;exports.findJuzAndShift=findJuzAndShift;exports.findJuzByAyaid=findJuzByAyaid;exports.findJuzHizb=findJuzHizb;exports.findJuzHizbByAyaid=findJuzHizbByAyaid;exports.findJuzMetaBySurah=findJuzMetaBySurah;exports.findPage=findPage;exports.findRangeAroundAyah=findRangeAroundAyah;exports.findSurahByAyaid=findSurahByAyaid;exports.getAyaCountinSura=getAyaCountinSura;exports.getSurahMeta=getSurahMeta;exports.isAyahJuzFirst=isAyahJuzFirst;exports.isAyahPageFirst=isAyahPageFirst;exports.meta=meta;exports.nextAyah=nextAyah;exports.pageMeta=pageMeta;exports.prevAyah=prevAyah;exports.suraNamesEn=suraNames$1;exports.suraNamesRu=suraNames;}));
\ No newline at end of file
diff --git a/docs/assets/highlight.css b/docs/assets/highlight.css
index 6ec77ba..57b8e8a 100644
--- a/docs/assets/highlight.css
+++ b/docs/assets/highlight.css
@@ -5,7 +5,7 @@
     --dark-hl-1: #569CD6;
     --light-hl-2: #000000FF;
     --dark-hl-2: #D4D4D4;
-    --light-hl-3: #FF0000;
+    --light-hl-3: #E50000;
     --dark-hl-3: #9CDCFE;
     --light-hl-4: #0000FF;
     --dark-hl-4: #CE9178;
diff --git a/docs/assets/icons.js b/docs/assets/icons.js
new file mode 100644
index 0000000..e88e8ca
--- /dev/null
+++ b/docs/assets/icons.js
@@ -0,0 +1,18 @@
+(function() {
+    addIcons();
+    function addIcons() {
+        if (document.readyState === "loading") return document.addEventListener("DOMContentLoaded", addIcons);
+        const svg = document.body.appendChild(document.createElementNS("http://www.w3.org/2000/svg", "svg"));
+        svg.innerHTML = `"<g id="icon-1"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-module)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><path d="M9.162 16V7.24H10.578L11.514 10.072C11.602 10.328 11.674 10.584 11.73 10.84C11.794 11.088 11.842 11.28 11.874 11.416C11.906 11.28 11.954 11.088 12.018 10.84C12.082 10.584 12.154 10.324 12.234 10.06L13.122 7.24H14.538V16H13.482V12.82C13.482 12.468 13.49 12.068 13.506 11.62C13.53 11.172 13.558 10.716 13.59 10.252C13.622 9.78 13.654 9.332 13.686 8.908C13.726 8.476 13.762 8.1 13.794 7.78L12.366 12.16H11.334L9.894 7.78C9.934 8.092 9.97 8.456 10.002 8.872C10.042 9.28 10.078 9.716 10.11 10.18C10.142 10.636 10.166 11.092 10.182 11.548C10.206 12.004 10.218 12.428 10.218 12.82V16H9.162Z" fill="var(--color-text)"></path></g><g id="icon-2"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-module)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><path d="M9.162 16V7.24H10.578L11.514 10.072C11.602 10.328 11.674 10.584 11.73 10.84C11.794 11.088 11.842 11.28 11.874 11.416C11.906 11.28 11.954 11.088 12.018 10.84C12.082 10.584 12.154 10.324 12.234 10.06L13.122 7.24H14.538V16H13.482V12.82C13.482 12.468 13.49 12.068 13.506 11.62C13.53 11.172 13.558 10.716 13.59 10.252C13.622 9.78 13.654 9.332 13.686 8.908C13.726 8.476 13.762 8.1 13.794 7.78L12.366 12.16H11.334L9.894 7.78C9.934 8.092 9.97 8.456 10.002 8.872C10.042 9.28 10.078 9.716 10.11 10.18C10.142 10.636 10.166 11.092 10.182 11.548C10.206 12.004 10.218 12.428 10.218 12.82V16H9.162Z" fill="var(--color-text)"></path></g><g id="icon-4"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-namespace)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><path d="M9.33 16V7.24H10.77L13.446 14.74C13.43 14.54 13.41 14.296 13.386 14.008C13.37 13.712 13.354 13.404 13.338 13.084C13.33 12.756 13.326 12.448 13.326 12.16V7.24H14.37V16H12.93L10.266 8.5C10.282 8.692 10.298 8.936 10.314 9.232C10.33 9.52 10.342 9.828 10.35 10.156C10.366 10.476 10.374 10.784 10.374 11.08V16H9.33Z" fill="var(--color-text)"></path></g><g id="icon-8"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-enum)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><path d="M9.45 16V7.24H14.49V8.224H10.518V10.936H14.07V11.908H10.518V15.016H14.49V16H9.45Z" fill="var(--color-text)"></path></g><g id="icon-16"><rect fill="var(--color-icon-background)" stroke="#FF984D" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="12"></rect><path d="M9.354 16V7.24H12.174C12.99 7.24 13.638 7.476 14.118 7.948C14.606 8.412 14.85 9.036 14.85 9.82C14.85 10.604 14.606 11.232 14.118 11.704C13.638 12.168 12.99 12.4 12.174 12.4H10.434V16H9.354ZM10.434 11.428H12.174C12.646 11.428 13.022 11.284 13.302 10.996C13.59 10.7 13.734 10.308 13.734 9.82C13.734 9.324 13.59 8.932 13.302 8.644C13.022 8.356 12.646 8.212 12.174 8.212H10.434V11.428Z" fill="var(--color-text)"></path></g><g id="icon-32"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-variable)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><path d="M11.106 16L8.85 7.24H9.966L11.454 13.192C11.558 13.608 11.646 13.996 11.718 14.356C11.79 14.708 11.842 14.976 11.874 15.16C11.906 14.976 11.954 14.708 12.018 14.356C12.09 13.996 12.178 13.608 12.282 13.192L13.758 7.24H14.85L12.582 16H11.106Z" fill="var(--color-text)"></path></g><g id="icon-64"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-function)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><path d="M9.39 16V7.24H14.55V8.224H10.446V11.128H14.238V12.112H10.47V16H9.39Z" fill="var(--color-text)"></path></g><g id="icon-128"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-class)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><path d="M11.898 16.1201C11.098 16.1201 10.466 15.8961 10.002 15.4481C9.53803 15.0001 9.30603 14.3841 9.30603 13.6001V9.64012C9.30603 8.85612 9.53803 8.24012 10.002 7.79212C10.466 7.34412 11.098 7.12012 11.898 7.12012C12.682 7.12012 13.306 7.34812 13.77 7.80412C14.234 8.25212 14.466 8.86412 14.466 9.64012H13.386C13.386 9.14412 13.254 8.76412 12.99 8.50012C12.734 8.22812 12.37 8.09212 11.898 8.09212C11.426 8.09212 11.054 8.22412 10.782 8.48812C10.518 8.75212 10.386 9.13212 10.386 9.62812V13.6001C10.386 14.0961 10.518 14.4801 10.782 14.7521C11.054 15.0161 11.426 15.1481 11.898 15.1481C12.37 15.1481 12.734 15.0161 12.99 14.7521C13.254 14.4801 13.386 14.0961 13.386 13.6001H14.466C14.466 14.3761 14.234 14.9921 13.77 15.4481C13.306 15.8961 12.682 16.1201 11.898 16.1201Z" fill="var(--color-text)"></path></g><g id="icon-256"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-interface)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><path d="M9.51 16V15.016H11.298V8.224H9.51V7.24H14.19V8.224H12.402V15.016H14.19V16H9.51Z" fill="var(--color-text)"></path></g><g id="icon-512"><rect fill="var(--color-icon-background)" stroke="#4D7FFF" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="12"></rect><path d="M11.898 16.1201C11.098 16.1201 10.466 15.8961 10.002 15.4481C9.53803 15.0001 9.30603 14.3841 9.30603 13.6001V9.64012C9.30603 8.85612 9.53803 8.24012 10.002 7.79212C10.466 7.34412 11.098 7.12012 11.898 7.12012C12.682 7.12012 13.306 7.34812 13.77 7.80412C14.234 8.25212 14.466 8.86412 14.466 9.64012H13.386C13.386 9.14412 13.254 8.76412 12.99 8.50012C12.734 8.22812 12.37 8.09212 11.898 8.09212C11.426 8.09212 11.054 8.22412 10.782 8.48812C10.518 8.75212 10.386 9.13212 10.386 9.62812V13.6001C10.386 14.0961 10.518 14.4801 10.782 14.7521C11.054 15.0161 11.426 15.1481 11.898 15.1481C12.37 15.1481 12.734 15.0161 12.99 14.7521C13.254 14.4801 13.386 14.0961 13.386 13.6001H14.466C14.466 14.3761 14.234 14.9921 13.77 15.4481C13.306 15.8961 12.682 16.1201 11.898 16.1201Z" fill="var(--color-text)"></path></g><g id="icon-1024"><rect fill="var(--color-icon-background)" stroke="#FF984D" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="12"></rect><path d="M9.354 16V7.24H12.174C12.99 7.24 13.638 7.476 14.118 7.948C14.606 8.412 14.85 9.036 14.85 9.82C14.85 10.604 14.606 11.232 14.118 11.704C13.638 12.168 12.99 12.4 12.174 12.4H10.434V16H9.354ZM10.434 11.428H12.174C12.646 11.428 13.022 11.284 13.302 10.996C13.59 10.7 13.734 10.308 13.734 9.82C13.734 9.324 13.59 8.932 13.302 8.644C13.022 8.356 12.646 8.212 12.174 8.212H10.434V11.428Z" fill="var(--color-text)"></path></g><g id="icon-2048"><rect fill="var(--color-icon-background)" stroke="#FF4DB8" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="12"></rect><path d="M9.162 16V7.24H10.578L11.514 10.072C11.602 10.328 11.674 10.584 11.73 10.84C11.794 11.088 11.842 11.28 11.874 11.416C11.906 11.28 11.954 11.088 12.018 10.84C12.082 10.584 12.154 10.324 12.234 10.06L13.122 7.24H14.538V16H13.482V12.82C13.482 12.468 13.49 12.068 13.506 11.62C13.53 11.172 13.558 10.716 13.59 10.252C13.622 9.78 13.654 9.332 13.686 8.908C13.726 8.476 13.762 8.1 13.794 7.78L12.366 12.16H11.334L9.894 7.78C9.934 8.092 9.97 8.456 10.002 8.872C10.042 9.28 10.078 9.716 10.11 10.18C10.142 10.636 10.166 11.092 10.182 11.548C10.206 12.004 10.218 12.428 10.218 12.82V16H9.162Z" fill="var(--color-text)"></path></g><g id="icon-4096"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-function)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><path d="M9.39 16V7.24H14.55V8.224H10.446V11.128H14.238V12.112H10.47V16H9.39Z" fill="var(--color-text)"></path></g><g id="icon-8192"><rect fill="var(--color-icon-background)" stroke="#FF984D" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="12"></rect><path d="M9.354 16V7.24H12.174C12.99 7.24 13.638 7.476 14.118 7.948C14.606 8.412 14.85 9.036 14.85 9.82C14.85 10.604 14.606 11.232 14.118 11.704C13.638 12.168 12.99 12.4 12.174 12.4H10.434V16H9.354ZM10.434 11.428H12.174C12.646 11.428 13.022 11.284 13.302 10.996C13.59 10.7 13.734 10.308 13.734 9.82C13.734 9.324 13.59 8.932 13.302 8.644C13.022 8.356 12.646 8.212 12.174 8.212H10.434V11.428Z" fill="var(--color-text)"></path></g><g id="icon-16384"><rect fill="var(--color-icon-background)" stroke="#4D7FFF" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="12"></rect><path d="M11.898 16.1201C11.098 16.1201 10.466 15.8961 10.002 15.4481C9.53803 15.0001 9.30603 14.3841 9.30603 13.6001V9.64012C9.30603 8.85612 9.53803 8.24012 10.002 7.79212C10.466 7.34412 11.098 7.12012 11.898 7.12012C12.682 7.12012 13.306 7.34812 13.77 7.80412C14.234 8.25212 14.466 8.86412 14.466 9.64012H13.386C13.386 9.14412 13.254 8.76412 12.99 8.50012C12.734 8.22812 12.37 8.09212 11.898 8.09212C11.426 8.09212 11.054 8.22412 10.782 8.48812C10.518 8.75212 10.386 9.13212 10.386 9.62812V13.6001C10.386 14.0961 10.518 14.4801 10.782 14.7521C11.054 15.0161 11.426 15.1481 11.898 15.1481C12.37 15.1481 12.734 15.0161 12.99 14.7521C13.254 14.4801 13.386 14.0961 13.386 13.6001H14.466C14.466 14.3761 14.234 14.9921 13.77 15.4481C13.306 15.8961 12.682 16.1201 11.898 16.1201Z" fill="var(--color-text)"></path></g><g id="icon-32768"><rect fill="var(--color-icon-background)" stroke="#FF984D" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="12"></rect><path d="M9.354 16V7.24H12.174C12.99 7.24 13.638 7.476 14.118 7.948C14.606 8.412 14.85 9.036 14.85 9.82C14.85 10.604 14.606 11.232 14.118 11.704C13.638 12.168 12.99 12.4 12.174 12.4H10.434V16H9.354ZM10.434 11.428H12.174C12.646 11.428 13.022 11.284 13.302 10.996C13.59 10.7 13.734 10.308 13.734 9.82C13.734 9.324 13.59 8.932 13.302 8.644C13.022 8.356 12.646 8.212 12.174 8.212H10.434V11.428Z" fill="var(--color-text)"></path></g><g id="icon-65536"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-type-alias)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><path d="M11.31 16V8.224H8.91V7.24H14.79V8.224H12.39V16H11.31Z" fill="var(--color-text)"></path></g><g id="icon-131072"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-type-alias)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><path d="M11.31 16V8.224H8.91V7.24H14.79V8.224H12.39V16H11.31Z" fill="var(--color-text)"></path></g><g id="icon-262144"><rect fill="var(--color-icon-background)" stroke="#FF4D4D" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="12"></rect><path d="M8.85 16L11.13 7.24H12.582L14.85 16H13.758L13.182 13.672H10.53L9.954 16H8.85ZM10.746 12.76H12.954L12.282 10.06C12.154 9.548 12.054 9.12 11.982 8.776C11.91 8.432 11.866 8.208 11.85 8.104C11.834 8.208 11.79 8.432 11.718 8.776C11.646 9.12 11.546 9.544 11.418 10.048L10.746 12.76Z" fill="var(--color-text)"></path></g><g id="icon-524288"><rect fill="var(--color-icon-background)" stroke="#FF4D4D" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="12"></rect><path d="M8.85 16L11.13 7.24H12.582L14.85 16H13.758L13.182 13.672H10.53L9.954 16H8.85ZM10.746 12.76H12.954L12.282 10.06C12.154 9.548 12.054 9.12 11.982 8.776C11.91 8.432 11.866 8.208 11.85 8.104C11.834 8.208 11.79 8.432 11.718 8.776C11.646 9.12 11.546 9.544 11.418 10.048L10.746 12.76Z" fill="var(--color-text)"></path></g><g id="icon-1048576"><rect fill="var(--color-icon-background)" stroke="#FF4D4D" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="12"></rect><path d="M8.85 16L11.13 7.24H12.582L14.85 16H13.758L13.182 13.672H10.53L9.954 16H8.85ZM10.746 12.76H12.954L12.282 10.06C12.154 9.548 12.054 9.12 11.982 8.776C11.91 8.432 11.866 8.208 11.85 8.104C11.834 8.208 11.79 8.432 11.718 8.776C11.646 9.12 11.546 9.544 11.418 10.048L10.746 12.76Z" fill="var(--color-text)"></path></g><g id="icon-2097152"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-type-alias)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><path d="M11.31 16V8.224H8.91V7.24H14.79V8.224H12.39V16H11.31Z" fill="var(--color-text)"></path></g><g id="icon-4194304"><rect fill="var(--color-icon-background)" stroke="#FF4D82" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="12"></rect><path d="M10.354 17V8.24H13.066C13.586 8.24 14.042 8.348 14.434 8.564C14.826 8.772 15.13 9.064 15.346 9.44C15.562 9.816 15.67 10.256 15.67 10.76C15.67 11.352 15.514 11.86 15.202 12.284C14.898 12.708 14.482 13 13.954 13.16L15.79 17H14.518L12.838 13.28H11.434V17H10.354ZM11.434 12.308H13.066C13.514 12.308 13.874 12.168 14.146 11.888C14.418 11.6 14.554 11.224 14.554 10.76C14.554 10.288 14.418 9.912 14.146 9.632C13.874 9.352 13.514 9.212 13.066 9.212H11.434V12.308Z" fill="var(--color-text)"></path></g><g id="icon-8388608"><rect fill="var(--color-icon-background)" stroke="var(--color-document)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><g stroke="var(--color-text)" fill="var(--color-icon-background)"><polygon points="6,5 6,19 18,19, 18,9 15,5"></polygon><line x1="9" y1="9" x2="14" y2="9"></line><line x1="9" y1="12" x2="15" y2="12"></line><line x1="9" y1="15" x2="15" y2="15"></line></g></g><g id="icon-chevronDown"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></g><g id="icon-chevronSmall"><path d="M1.5 5.50969L8 11.6609L14.5 5.50969L12.5466 3.66086L8 7.96494L3.45341 3.66086L1.5 5.50969Z" fill="var(--color-text)"></path></g><g id="icon-checkbox"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></g><g id="icon-menu"><rect x="1" y="3" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="7" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="11" width="14" height="2" fill="var(--color-text)"></rect></g><g id="icon-search"><path d="M15.7824 13.833L12.6666 10.7177C12.5259 10.5771 12.3353 10.499 12.1353 10.499H11.6259C12.4884 9.39596 13.001 8.00859 13.001 6.49937C13.001 2.90909 10.0914 0 6.50048 0C2.90959 0 0 2.90909 0 6.49937C0 10.0896 2.90959 12.9987 6.50048 12.9987C8.00996 12.9987 9.39756 12.4863 10.5008 11.6239V12.1332C10.5008 12.3332 10.5789 12.5238 10.7195 12.6644L13.8354 15.7797C14.1292 16.0734 14.6042 16.0734 14.8948 15.7797L15.7793 14.8954C16.0731 14.6017 16.0731 14.1267 15.7824 13.833ZM6.50048 10.499C4.29094 10.499 2.50018 8.71165 2.50018 6.49937C2.50018 4.29021 4.28781 2.49976 6.50048 2.49976C8.71001 2.49976 10.5008 4.28708 10.5008 6.49937C10.5008 8.70852 8.71314 10.499 6.50048 10.499Z" fill="var(--color-text)"></path></g><g id="icon-anchor"><g stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M10 14a3.5 3.5 0 0 0 5 0l4 -4a3.5 3.5 0 0 0 -5 -5l-.5 .5"></path><path d="M14 10a3.5 3.5 0 0 0 -5 0l-4 4a3.5 3.5 0 0 0 5 5l.5 -.5"></path></g></g>"`;
+        svg.style.display = "none";
+        if (location.protocol === "file:") updateUseElements();
+    }
+
+    function updateUseElements() {
+        document.querySelectorAll("use").forEach(el => {
+            if (el.getAttribute("href").includes("#icon-")) {
+                el.setAttribute("href", el.getAttribute("href").replace(/.*#/, "#"));
+            }
+        });
+    }
+})()
\ No newline at end of file
diff --git a/docs/assets/icons.svg b/docs/assets/icons.svg
new file mode 100644
index 0000000..e371b8b
--- /dev/null
+++ b/docs/assets/icons.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg"><g id="icon-1"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-module)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><path d="M9.162 16V7.24H10.578L11.514 10.072C11.602 10.328 11.674 10.584 11.73 10.84C11.794 11.088 11.842 11.28 11.874 11.416C11.906 11.28 11.954 11.088 12.018 10.84C12.082 10.584 12.154 10.324 12.234 10.06L13.122 7.24H14.538V16H13.482V12.82C13.482 12.468 13.49 12.068 13.506 11.62C13.53 11.172 13.558 10.716 13.59 10.252C13.622 9.78 13.654 9.332 13.686 8.908C13.726 8.476 13.762 8.1 13.794 7.78L12.366 12.16H11.334L9.894 7.78C9.934 8.092 9.97 8.456 10.002 8.872C10.042 9.28 10.078 9.716 10.11 10.18C10.142 10.636 10.166 11.092 10.182 11.548C10.206 12.004 10.218 12.428 10.218 12.82V16H9.162Z" fill="var(--color-text)"></path></g><g id="icon-2"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-module)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><path d="M9.162 16V7.24H10.578L11.514 10.072C11.602 10.328 11.674 10.584 11.73 10.84C11.794 11.088 11.842 11.28 11.874 11.416C11.906 11.28 11.954 11.088 12.018 10.84C12.082 10.584 12.154 10.324 12.234 10.06L13.122 7.24H14.538V16H13.482V12.82C13.482 12.468 13.49 12.068 13.506 11.62C13.53 11.172 13.558 10.716 13.59 10.252C13.622 9.78 13.654 9.332 13.686 8.908C13.726 8.476 13.762 8.1 13.794 7.78L12.366 12.16H11.334L9.894 7.78C9.934 8.092 9.97 8.456 10.002 8.872C10.042 9.28 10.078 9.716 10.11 10.18C10.142 10.636 10.166 11.092 10.182 11.548C10.206 12.004 10.218 12.428 10.218 12.82V16H9.162Z" fill="var(--color-text)"></path></g><g id="icon-4"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-namespace)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><path d="M9.33 16V7.24H10.77L13.446 14.74C13.43 14.54 13.41 14.296 13.386 14.008C13.37 13.712 13.354 13.404 13.338 13.084C13.33 12.756 13.326 12.448 13.326 12.16V7.24H14.37V16H12.93L10.266 8.5C10.282 8.692 10.298 8.936 10.314 9.232C10.33 9.52 10.342 9.828 10.35 10.156C10.366 10.476 10.374 10.784 10.374 11.08V16H9.33Z" fill="var(--color-text)"></path></g><g id="icon-8"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-enum)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><path d="M9.45 16V7.24H14.49V8.224H10.518V10.936H14.07V11.908H10.518V15.016H14.49V16H9.45Z" fill="var(--color-text)"></path></g><g id="icon-16"><rect fill="var(--color-icon-background)" stroke="#FF984D" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="12"></rect><path d="M9.354 16V7.24H12.174C12.99 7.24 13.638 7.476 14.118 7.948C14.606 8.412 14.85 9.036 14.85 9.82C14.85 10.604 14.606 11.232 14.118 11.704C13.638 12.168 12.99 12.4 12.174 12.4H10.434V16H9.354ZM10.434 11.428H12.174C12.646 11.428 13.022 11.284 13.302 10.996C13.59 10.7 13.734 10.308 13.734 9.82C13.734 9.324 13.59 8.932 13.302 8.644C13.022 8.356 12.646 8.212 12.174 8.212H10.434V11.428Z" fill="var(--color-text)"></path></g><g id="icon-32"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-variable)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><path d="M11.106 16L8.85 7.24H9.966L11.454 13.192C11.558 13.608 11.646 13.996 11.718 14.356C11.79 14.708 11.842 14.976 11.874 15.16C11.906 14.976 11.954 14.708 12.018 14.356C12.09 13.996 12.178 13.608 12.282 13.192L13.758 7.24H14.85L12.582 16H11.106Z" fill="var(--color-text)"></path></g><g id="icon-64"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-function)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><path d="M9.39 16V7.24H14.55V8.224H10.446V11.128H14.238V12.112H10.47V16H9.39Z" fill="var(--color-text)"></path></g><g id="icon-128"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-class)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><path d="M11.898 16.1201C11.098 16.1201 10.466 15.8961 10.002 15.4481C9.53803 15.0001 9.30603 14.3841 9.30603 13.6001V9.64012C9.30603 8.85612 9.53803 8.24012 10.002 7.79212C10.466 7.34412 11.098 7.12012 11.898 7.12012C12.682 7.12012 13.306 7.34812 13.77 7.80412C14.234 8.25212 14.466 8.86412 14.466 9.64012H13.386C13.386 9.14412 13.254 8.76412 12.99 8.50012C12.734 8.22812 12.37 8.09212 11.898 8.09212C11.426 8.09212 11.054 8.22412 10.782 8.48812C10.518 8.75212 10.386 9.13212 10.386 9.62812V13.6001C10.386 14.0961 10.518 14.4801 10.782 14.7521C11.054 15.0161 11.426 15.1481 11.898 15.1481C12.37 15.1481 12.734 15.0161 12.99 14.7521C13.254 14.4801 13.386 14.0961 13.386 13.6001H14.466C14.466 14.3761 14.234 14.9921 13.77 15.4481C13.306 15.8961 12.682 16.1201 11.898 16.1201Z" fill="var(--color-text)"></path></g><g id="icon-256"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-interface)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><path d="M9.51 16V15.016H11.298V8.224H9.51V7.24H14.19V8.224H12.402V15.016H14.19V16H9.51Z" fill="var(--color-text)"></path></g><g id="icon-512"><rect fill="var(--color-icon-background)" stroke="#4D7FFF" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="12"></rect><path d="M11.898 16.1201C11.098 16.1201 10.466 15.8961 10.002 15.4481C9.53803 15.0001 9.30603 14.3841 9.30603 13.6001V9.64012C9.30603 8.85612 9.53803 8.24012 10.002 7.79212C10.466 7.34412 11.098 7.12012 11.898 7.12012C12.682 7.12012 13.306 7.34812 13.77 7.80412C14.234 8.25212 14.466 8.86412 14.466 9.64012H13.386C13.386 9.14412 13.254 8.76412 12.99 8.50012C12.734 8.22812 12.37 8.09212 11.898 8.09212C11.426 8.09212 11.054 8.22412 10.782 8.48812C10.518 8.75212 10.386 9.13212 10.386 9.62812V13.6001C10.386 14.0961 10.518 14.4801 10.782 14.7521C11.054 15.0161 11.426 15.1481 11.898 15.1481C12.37 15.1481 12.734 15.0161 12.99 14.7521C13.254 14.4801 13.386 14.0961 13.386 13.6001H14.466C14.466 14.3761 14.234 14.9921 13.77 15.4481C13.306 15.8961 12.682 16.1201 11.898 16.1201Z" fill="var(--color-text)"></path></g><g id="icon-1024"><rect fill="var(--color-icon-background)" stroke="#FF984D" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="12"></rect><path d="M9.354 16V7.24H12.174C12.99 7.24 13.638 7.476 14.118 7.948C14.606 8.412 14.85 9.036 14.85 9.82C14.85 10.604 14.606 11.232 14.118 11.704C13.638 12.168 12.99 12.4 12.174 12.4H10.434V16H9.354ZM10.434 11.428H12.174C12.646 11.428 13.022 11.284 13.302 10.996C13.59 10.7 13.734 10.308 13.734 9.82C13.734 9.324 13.59 8.932 13.302 8.644C13.022 8.356 12.646 8.212 12.174 8.212H10.434V11.428Z" fill="var(--color-text)"></path></g><g id="icon-2048"><rect fill="var(--color-icon-background)" stroke="#FF4DB8" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="12"></rect><path d="M9.162 16V7.24H10.578L11.514 10.072C11.602 10.328 11.674 10.584 11.73 10.84C11.794 11.088 11.842 11.28 11.874 11.416C11.906 11.28 11.954 11.088 12.018 10.84C12.082 10.584 12.154 10.324 12.234 10.06L13.122 7.24H14.538V16H13.482V12.82C13.482 12.468 13.49 12.068 13.506 11.62C13.53 11.172 13.558 10.716 13.59 10.252C13.622 9.78 13.654 9.332 13.686 8.908C13.726 8.476 13.762 8.1 13.794 7.78L12.366 12.16H11.334L9.894 7.78C9.934 8.092 9.97 8.456 10.002 8.872C10.042 9.28 10.078 9.716 10.11 10.18C10.142 10.636 10.166 11.092 10.182 11.548C10.206 12.004 10.218 12.428 10.218 12.82V16H9.162Z" fill="var(--color-text)"></path></g><g id="icon-4096"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-function)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><path d="M9.39 16V7.24H14.55V8.224H10.446V11.128H14.238V12.112H10.47V16H9.39Z" fill="var(--color-text)"></path></g><g id="icon-8192"><rect fill="var(--color-icon-background)" stroke="#FF984D" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="12"></rect><path d="M9.354 16V7.24H12.174C12.99 7.24 13.638 7.476 14.118 7.948C14.606 8.412 14.85 9.036 14.85 9.82C14.85 10.604 14.606 11.232 14.118 11.704C13.638 12.168 12.99 12.4 12.174 12.4H10.434V16H9.354ZM10.434 11.428H12.174C12.646 11.428 13.022 11.284 13.302 10.996C13.59 10.7 13.734 10.308 13.734 9.82C13.734 9.324 13.59 8.932 13.302 8.644C13.022 8.356 12.646 8.212 12.174 8.212H10.434V11.428Z" fill="var(--color-text)"></path></g><g id="icon-16384"><rect fill="var(--color-icon-background)" stroke="#4D7FFF" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="12"></rect><path d="M11.898 16.1201C11.098 16.1201 10.466 15.8961 10.002 15.4481C9.53803 15.0001 9.30603 14.3841 9.30603 13.6001V9.64012C9.30603 8.85612 9.53803 8.24012 10.002 7.79212C10.466 7.34412 11.098 7.12012 11.898 7.12012C12.682 7.12012 13.306 7.34812 13.77 7.80412C14.234 8.25212 14.466 8.86412 14.466 9.64012H13.386C13.386 9.14412 13.254 8.76412 12.99 8.50012C12.734 8.22812 12.37 8.09212 11.898 8.09212C11.426 8.09212 11.054 8.22412 10.782 8.48812C10.518 8.75212 10.386 9.13212 10.386 9.62812V13.6001C10.386 14.0961 10.518 14.4801 10.782 14.7521C11.054 15.0161 11.426 15.1481 11.898 15.1481C12.37 15.1481 12.734 15.0161 12.99 14.7521C13.254 14.4801 13.386 14.0961 13.386 13.6001H14.466C14.466 14.3761 14.234 14.9921 13.77 15.4481C13.306 15.8961 12.682 16.1201 11.898 16.1201Z" fill="var(--color-text)"></path></g><g id="icon-32768"><rect fill="var(--color-icon-background)" stroke="#FF984D" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="12"></rect><path d="M9.354 16V7.24H12.174C12.99 7.24 13.638 7.476 14.118 7.948C14.606 8.412 14.85 9.036 14.85 9.82C14.85 10.604 14.606 11.232 14.118 11.704C13.638 12.168 12.99 12.4 12.174 12.4H10.434V16H9.354ZM10.434 11.428H12.174C12.646 11.428 13.022 11.284 13.302 10.996C13.59 10.7 13.734 10.308 13.734 9.82C13.734 9.324 13.59 8.932 13.302 8.644C13.022 8.356 12.646 8.212 12.174 8.212H10.434V11.428Z" fill="var(--color-text)"></path></g><g id="icon-65536"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-type-alias)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><path d="M11.31 16V8.224H8.91V7.24H14.79V8.224H12.39V16H11.31Z" fill="var(--color-text)"></path></g><g id="icon-131072"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-type-alias)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><path d="M11.31 16V8.224H8.91V7.24H14.79V8.224H12.39V16H11.31Z" fill="var(--color-text)"></path></g><g id="icon-262144"><rect fill="var(--color-icon-background)" stroke="#FF4D4D" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="12"></rect><path d="M8.85 16L11.13 7.24H12.582L14.85 16H13.758L13.182 13.672H10.53L9.954 16H8.85ZM10.746 12.76H12.954L12.282 10.06C12.154 9.548 12.054 9.12 11.982 8.776C11.91 8.432 11.866 8.208 11.85 8.104C11.834 8.208 11.79 8.432 11.718 8.776C11.646 9.12 11.546 9.544 11.418 10.048L10.746 12.76Z" fill="var(--color-text)"></path></g><g id="icon-524288"><rect fill="var(--color-icon-background)" stroke="#FF4D4D" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="12"></rect><path d="M8.85 16L11.13 7.24H12.582L14.85 16H13.758L13.182 13.672H10.53L9.954 16H8.85ZM10.746 12.76H12.954L12.282 10.06C12.154 9.548 12.054 9.12 11.982 8.776C11.91 8.432 11.866 8.208 11.85 8.104C11.834 8.208 11.79 8.432 11.718 8.776C11.646 9.12 11.546 9.544 11.418 10.048L10.746 12.76Z" fill="var(--color-text)"></path></g><g id="icon-1048576"><rect fill="var(--color-icon-background)" stroke="#FF4D4D" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="12"></rect><path d="M8.85 16L11.13 7.24H12.582L14.85 16H13.758L13.182 13.672H10.53L9.954 16H8.85ZM10.746 12.76H12.954L12.282 10.06C12.154 9.548 12.054 9.12 11.982 8.776C11.91 8.432 11.866 8.208 11.85 8.104C11.834 8.208 11.79 8.432 11.718 8.776C11.646 9.12 11.546 9.544 11.418 10.048L10.746 12.76Z" fill="var(--color-text)"></path></g><g id="icon-2097152"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-type-alias)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><path d="M11.31 16V8.224H8.91V7.24H14.79V8.224H12.39V16H11.31Z" fill="var(--color-text)"></path></g><g id="icon-4194304"><rect fill="var(--color-icon-background)" stroke="#FF4D82" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="12"></rect><path d="M10.354 17V8.24H13.066C13.586 8.24 14.042 8.348 14.434 8.564C14.826 8.772 15.13 9.064 15.346 9.44C15.562 9.816 15.67 10.256 15.67 10.76C15.67 11.352 15.514 11.86 15.202 12.284C14.898 12.708 14.482 13 13.954 13.16L15.79 17H14.518L12.838 13.28H11.434V17H10.354ZM11.434 12.308H13.066C13.514 12.308 13.874 12.168 14.146 11.888C14.418 11.6 14.554 11.224 14.554 10.76C14.554 10.288 14.418 9.912 14.146 9.632C13.874 9.352 13.514 9.212 13.066 9.212H11.434V12.308Z" fill="var(--color-text)"></path></g><g id="icon-8388608"><rect fill="var(--color-icon-background)" stroke="var(--color-document)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><g stroke="var(--color-text)" fill="var(--color-icon-background)"><polygon points="6,5 6,19 18,19, 18,9 15,5"></polygon><line x1="9" y1="9" x2="14" y2="9"></line><line x1="9" y1="12" x2="15" y2="12"></line><line x1="9" y1="15" x2="15" y2="15"></line></g></g><g id="icon-chevronDown"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></g><g id="icon-chevronSmall"><path d="M1.5 5.50969L8 11.6609L14.5 5.50969L12.5466 3.66086L8 7.96494L3.45341 3.66086L1.5 5.50969Z" fill="var(--color-text)"></path></g><g id="icon-checkbox"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></g><g id="icon-menu"><rect x="1" y="3" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="7" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="11" width="14" height="2" fill="var(--color-text)"></rect></g><g id="icon-search"><path d="M15.7824 13.833L12.6666 10.7177C12.5259 10.5771 12.3353 10.499 12.1353 10.499H11.6259C12.4884 9.39596 13.001 8.00859 13.001 6.49937C13.001 2.90909 10.0914 0 6.50048 0C2.90959 0 0 2.90909 0 6.49937C0 10.0896 2.90959 12.9987 6.50048 12.9987C8.00996 12.9987 9.39756 12.4863 10.5008 11.6239V12.1332C10.5008 12.3332 10.5789 12.5238 10.7195 12.6644L13.8354 15.7797C14.1292 16.0734 14.6042 16.0734 14.8948 15.7797L15.7793 14.8954C16.0731 14.6017 16.0731 14.1267 15.7824 13.833ZM6.50048 10.499C4.29094 10.499 2.50018 8.71165 2.50018 6.49937C2.50018 4.29021 4.28781 2.49976 6.50048 2.49976C8.71001 2.49976 10.5008 4.28708 10.5008 6.49937C10.5008 8.70852 8.71314 10.499 6.50048 10.499Z" fill="var(--color-text)"></path></g><g id="icon-anchor"><g stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M10 14a3.5 3.5 0 0 0 5 0l4 -4a3.5 3.5 0 0 0 -5 -5l-.5 .5"></path><path d="M14 10a3.5 3.5 0 0 0 -5 0l-4 4a3.5 3.5 0 0 0 5 5l.5 -.5"></path></g></g></svg>
\ No newline at end of file
diff --git a/docs/assets/main.js b/docs/assets/main.js
index abd0485..21a5d74 100644
--- a/docs/assets/main.js
+++ b/docs/assets/main.js
@@ -1,54 +1,60 @@
 "use strict";
-"use strict";(()=>{var Qe=Object.create;var ae=Object.defineProperty;var Pe=Object.getOwnPropertyDescriptor;var Ce=Object.getOwnPropertyNames;var Oe=Object.getPrototypeOf,Re=Object.prototype.hasOwnProperty;var _e=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var Me=(t,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Ce(e))!Re.call(t,i)&&i!==n&&ae(t,i,{get:()=>e[i],enumerable:!(r=Pe(e,i))||r.enumerable});return t};var De=(t,e,n)=>(n=t!=null?Qe(Oe(t)):{},Me(e||!t||!t.__esModule?ae(n,"default",{value:t,enumerable:!0}):n,t));var de=_e((ce,he)=>{(function(){var t=function(e){var n=new t.Builder;return n.pipeline.add(t.trimmer,t.stopWordFilter,t.stemmer),n.searchPipeline.add(t.stemmer),e.call(n,n),n.build()};t.version="2.3.9";t.utils={},t.utils.warn=function(e){return function(n){e.console&&console.warn&&console.warn(n)}}(this),t.utils.asString=function(e){return e==null?"":e.toString()},t.utils.clone=function(e){if(e==null)return e;for(var n=Object.create(null),r=Object.keys(e),i=0;i<r.length;i++){var s=r[i],o=e[s];if(Array.isArray(o)){n[s]=o.slice();continue}if(typeof o=="string"||typeof o=="number"||typeof o=="boolean"){n[s]=o;continue}throw new TypeError("clone is not deep and does not support nested objects")}return n},t.FieldRef=function(e,n,r){this.docRef=e,this.fieldName=n,this._stringValue=r},t.FieldRef.joiner="/",t.FieldRef.fromString=function(e){var n=e.indexOf(t.FieldRef.joiner);if(n===-1)throw"malformed field ref string";var r=e.slice(0,n),i=e.slice(n+1);return new t.FieldRef(i,r,e)},t.FieldRef.prototype.toString=function(){return this._stringValue==null&&(this._stringValue=this.fieldName+t.FieldRef.joiner+this.docRef),this._stringValue};t.Set=function(e){if(this.elements=Object.create(null),e){this.length=e.length;for(var n=0;n<this.length;n++)this.elements[e[n]]=!0}else this.length=0},t.Set.complete={intersect:function(e){return e},union:function(){return this},contains:function(){return!0}},t.Set.empty={intersect:function(){return this},union:function(e){return e},contains:function(){return!1}},t.Set.prototype.contains=function(e){return!!this.elements[e]},t.Set.prototype.intersect=function(e){var n,r,i,s=[];if(e===t.Set.complete)return this;if(e===t.Set.empty)return e;this.length<e.length?(n=this,r=e):(n=e,r=this),i=Object.keys(n.elements);for(var o=0;o<i.length;o++){var a=i[o];a in r.elements&&s.push(a)}return new t.Set(s)},t.Set.prototype.union=function(e){return e===t.Set.complete?t.Set.complete:e===t.Set.empty?this:new t.Set(Object.keys(this.elements).concat(Object.keys(e.elements)))},t.idf=function(e,n){var r=0;for(var i in e)i!="_index"&&(r+=Object.keys(e[i]).length);var s=(n-r+.5)/(r+.5);return Math.log(1+Math.abs(s))},t.Token=function(e,n){this.str=e||"",this.metadata=n||{}},t.Token.prototype.toString=function(){return this.str},t.Token.prototype.update=function(e){return this.str=e(this.str,this.metadata),this},t.Token.prototype.clone=function(e){return e=e||function(n){return n},new t.Token(e(this.str,this.metadata),this.metadata)};t.tokenizer=function(e,n){if(e==null||e==null)return[];if(Array.isArray(e))return e.map(function(m){return new t.Token(t.utils.asString(m).toLowerCase(),t.utils.clone(n))});for(var r=e.toString().toLowerCase(),i=r.length,s=[],o=0,a=0;o<=i;o++){var u=r.charAt(o),l=o-a;if(u.match(t.tokenizer.separator)||o==i){if(l>0){var h=t.utils.clone(n)||{};h.position=[a,l],h.index=s.length,s.push(new t.Token(r.slice(a,o),h))}a=o+1}}return s},t.tokenizer.separator=/[\s\-]+/;t.Pipeline=function(){this._stack=[]},t.Pipeline.registeredFunctions=Object.create(null),t.Pipeline.registerFunction=function(e,n){n in this.registeredFunctions&&t.utils.warn("Overwriting existing registered function: "+n),e.label=n,t.Pipeline.registeredFunctions[e.label]=e},t.Pipeline.warnIfFunctionNotRegistered=function(e){var n=e.label&&e.label in this.registeredFunctions;n||t.utils.warn(`Function is not registered with pipeline. This may cause problems when serialising the index.
-`,e)},t.Pipeline.load=function(e){var n=new t.Pipeline;return e.forEach(function(r){var i=t.Pipeline.registeredFunctions[r];if(i)n.add(i);else throw new Error("Cannot load unregistered function: "+r)}),n},t.Pipeline.prototype.add=function(){var e=Array.prototype.slice.call(arguments);e.forEach(function(n){t.Pipeline.warnIfFunctionNotRegistered(n),this._stack.push(n)},this)},t.Pipeline.prototype.after=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var r=this._stack.indexOf(e);if(r==-1)throw new Error("Cannot find existingFn");r=r+1,this._stack.splice(r,0,n)},t.Pipeline.prototype.before=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var r=this._stack.indexOf(e);if(r==-1)throw new Error("Cannot find existingFn");this._stack.splice(r,0,n)},t.Pipeline.prototype.remove=function(e){var n=this._stack.indexOf(e);n!=-1&&this._stack.splice(n,1)},t.Pipeline.prototype.run=function(e){for(var n=this._stack.length,r=0;r<n;r++){for(var i=this._stack[r],s=[],o=0;o<e.length;o++){var a=i(e[o],o,e);if(!(a==null||a===""))if(Array.isArray(a))for(var u=0;u<a.length;u++)s.push(a[u]);else s.push(a)}e=s}return e},t.Pipeline.prototype.runString=function(e,n){var r=new t.Token(e,n);return this.run([r]).map(function(i){return i.toString()})},t.Pipeline.prototype.reset=function(){this._stack=[]},t.Pipeline.prototype.toJSON=function(){return this._stack.map(function(e){return t.Pipeline.warnIfFunctionNotRegistered(e),e.label})};t.Vector=function(e){this._magnitude=0,this.elements=e||[]},t.Vector.prototype.positionForIndex=function(e){if(this.elements.length==0)return 0;for(var n=0,r=this.elements.length/2,i=r-n,s=Math.floor(i/2),o=this.elements[s*2];i>1&&(o<e&&(n=s),o>e&&(r=s),o!=e);)i=r-n,s=n+Math.floor(i/2),o=this.elements[s*2];if(o==e||o>e)return s*2;if(o<e)return(s+1)*2},t.Vector.prototype.insert=function(e,n){this.upsert(e,n,function(){throw"duplicate index"})},t.Vector.prototype.upsert=function(e,n,r){this._magnitude=0;var i=this.positionForIndex(e);this.elements[i]==e?this.elements[i+1]=r(this.elements[i+1],n):this.elements.splice(i,0,e,n)},t.Vector.prototype.magnitude=function(){if(this._magnitude)return this._magnitude;for(var e=0,n=this.elements.length,r=1;r<n;r+=2){var i=this.elements[r];e+=i*i}return this._magnitude=Math.sqrt(e)},t.Vector.prototype.dot=function(e){for(var n=0,r=this.elements,i=e.elements,s=r.length,o=i.length,a=0,u=0,l=0,h=0;l<s&&h<o;)a=r[l],u=i[h],a<u?l+=2:a>u?h+=2:a==u&&(n+=r[l+1]*i[h+1],l+=2,h+=2);return n},t.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},t.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),n=1,r=0;n<this.elements.length;n+=2,r++)e[r]=this.elements[n];return e},t.Vector.prototype.toJSON=function(){return this.elements};t.stemmer=function(){var e={ational:"ate",tional:"tion",enci:"ence",anci:"ance",izer:"ize",bli:"ble",alli:"al",entli:"ent",eli:"e",ousli:"ous",ization:"ize",ation:"ate",ator:"ate",alism:"al",iveness:"ive",fulness:"ful",ousness:"ous",aliti:"al",iviti:"ive",biliti:"ble",logi:"log"},n={icate:"ic",ative:"",alize:"al",iciti:"ic",ical:"ic",ful:"",ness:""},r="[^aeiou]",i="[aeiouy]",s=r+"[^aeiouy]*",o=i+"[aeiou]*",a="^("+s+")?"+o+s,u="^("+s+")?"+o+s+"("+o+")?$",l="^("+s+")?"+o+s+o+s,h="^("+s+")?"+i,m=new RegExp(a),v=new RegExp(l),b=new RegExp(u),y=new RegExp(h),E=/^(.+?)(ss|i)es$/,f=/^(.+?)([^s])s$/,p=/^(.+?)eed$/,w=/^(.+?)(ed|ing)$/,S=/.$/,I=/(at|bl|iz)$/,_=new RegExp("([^aeiouylsz])\\1$"),z=new RegExp("^"+s+i+"[^aeiouwxy]$"),A=/^(.+?[^aeiou])y$/,q=/^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/,$=/^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/,V=/^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/,W=/^(.+?)(s|t)(ion)$/,P=/^(.+?)e$/,U=/ll$/,G=new RegExp("^"+s+i+"[^aeiouwxy]$"),N=function(c){var g,C,T,d,x,O,D;if(c.length<3)return c;if(T=c.substr(0,1),T=="y"&&(c=T.toUpperCase()+c.substr(1)),d=E,x=f,d.test(c)?c=c.replace(d,"$1$2"):x.test(c)&&(c=c.replace(x,"$1$2")),d=p,x=w,d.test(c)){var L=d.exec(c);d=m,d.test(L[1])&&(d=S,c=c.replace(d,""))}else if(x.test(c)){var L=x.exec(c);g=L[1],x=y,x.test(g)&&(c=g,x=I,O=_,D=z,x.test(c)?c=c+"e":O.test(c)?(d=S,c=c.replace(d,"")):D.test(c)&&(c=c+"e"))}if(d=A,d.test(c)){var L=d.exec(c);g=L[1],c=g+"i"}if(d=q,d.test(c)){var L=d.exec(c);g=L[1],C=L[2],d=m,d.test(g)&&(c=g+e[C])}if(d=$,d.test(c)){var L=d.exec(c);g=L[1],C=L[2],d=m,d.test(g)&&(c=g+n[C])}if(d=V,x=W,d.test(c)){var L=d.exec(c);g=L[1],d=v,d.test(g)&&(c=g)}else if(x.test(c)){var L=x.exec(c);g=L[1]+L[2],x=v,x.test(g)&&(c=g)}if(d=P,d.test(c)){var L=d.exec(c);g=L[1],d=v,x=b,O=G,(d.test(g)||x.test(g)&&!O.test(g))&&(c=g)}return d=U,x=v,d.test(c)&&x.test(c)&&(d=S,c=c.replace(d,"")),T=="y"&&(c=T.toLowerCase()+c.substr(1)),c};return function(M){return M.update(N)}}(),t.Pipeline.registerFunction(t.stemmer,"stemmer");t.generateStopWordFilter=function(e){var n=e.reduce(function(r,i){return r[i]=i,r},{});return function(r){if(r&&n[r.toString()]!==r.toString())return r}},t.stopWordFilter=t.generateStopWordFilter(["a","able","about","across","after","all","almost","also","am","among","an","and","any","are","as","at","be","because","been","but","by","can","cannot","could","dear","did","do","does","either","else","ever","every","for","from","get","got","had","has","have","he","her","hers","him","his","how","however","i","if","in","into","is","it","its","just","least","let","like","likely","may","me","might","most","must","my","neither","no","nor","not","of","off","often","on","only","or","other","our","own","rather","said","say","says","she","should","since","so","some","than","that","the","their","them","then","there","these","they","this","tis","to","too","twas","us","wants","was","we","were","what","when","where","which","while","who","whom","why","will","with","would","yet","you","your"]),t.Pipeline.registerFunction(t.stopWordFilter,"stopWordFilter");t.trimmer=function(e){return e.update(function(n){return n.replace(/^\W+/,"").replace(/\W+$/,"")})},t.Pipeline.registerFunction(t.trimmer,"trimmer");t.TokenSet=function(){this.final=!1,this.edges={},this.id=t.TokenSet._nextId,t.TokenSet._nextId+=1},t.TokenSet._nextId=1,t.TokenSet.fromArray=function(e){for(var n=new t.TokenSet.Builder,r=0,i=e.length;r<i;r++)n.insert(e[r]);return n.finish(),n.root},t.TokenSet.fromClause=function(e){return"editDistance"in e?t.TokenSet.fromFuzzyString(e.term,e.editDistance):t.TokenSet.fromString(e.term)},t.TokenSet.fromFuzzyString=function(e,n){for(var r=new t.TokenSet,i=[{node:r,editsRemaining:n,str:e}];i.length;){var s=i.pop();if(s.str.length>0){var o=s.str.charAt(0),a;o in s.node.edges?a=s.node.edges[o]:(a=new t.TokenSet,s.node.edges[o]=a),s.str.length==1&&(a.final=!0),i.push({node:a,editsRemaining:s.editsRemaining,str:s.str.slice(1)})}if(s.editsRemaining!=0){if("*"in s.node.edges)var u=s.node.edges["*"];else{var u=new t.TokenSet;s.node.edges["*"]=u}if(s.str.length==0&&(u.final=!0),i.push({node:u,editsRemaining:s.editsRemaining-1,str:s.str}),s.str.length>1&&i.push({node:s.node,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)}),s.str.length==1&&(s.node.final=!0),s.str.length>=1){if("*"in s.node.edges)var l=s.node.edges["*"];else{var l=new t.TokenSet;s.node.edges["*"]=l}s.str.length==1&&(l.final=!0),i.push({node:l,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)})}if(s.str.length>1){var h=s.str.charAt(0),m=s.str.charAt(1),v;m in s.node.edges?v=s.node.edges[m]:(v=new t.TokenSet,s.node.edges[m]=v),s.str.length==1&&(v.final=!0),i.push({node:v,editsRemaining:s.editsRemaining-1,str:h+s.str.slice(2)})}}}return r},t.TokenSet.fromString=function(e){for(var n=new t.TokenSet,r=n,i=0,s=e.length;i<s;i++){var o=e[i],a=i==s-1;if(o=="*")n.edges[o]=n,n.final=a;else{var u=new t.TokenSet;u.final=a,n.edges[o]=u,n=u}}return r},t.TokenSet.prototype.toArray=function(){for(var e=[],n=[{prefix:"",node:this}];n.length;){var r=n.pop(),i=Object.keys(r.node.edges),s=i.length;r.node.final&&(r.prefix.charAt(0),e.push(r.prefix));for(var o=0;o<s;o++){var a=i[o];n.push({prefix:r.prefix.concat(a),node:r.node.edges[a]})}}return e},t.TokenSet.prototype.toString=function(){if(this._str)return this._str;for(var e=this.final?"1":"0",n=Object.keys(this.edges).sort(),r=n.length,i=0;i<r;i++){var s=n[i],o=this.edges[s];e=e+s+o.id}return e},t.TokenSet.prototype.intersect=function(e){for(var n=new t.TokenSet,r=void 0,i=[{qNode:e,output:n,node:this}];i.length;){r=i.pop();for(var s=Object.keys(r.qNode.edges),o=s.length,a=Object.keys(r.node.edges),u=a.length,l=0;l<o;l++)for(var h=s[l],m=0;m<u;m++){var v=a[m];if(v==h||h=="*"){var b=r.node.edges[v],y=r.qNode.edges[h],E=b.final&&y.final,f=void 0;v in r.output.edges?(f=r.output.edges[v],f.final=f.final||E):(f=new t.TokenSet,f.final=E,r.output.edges[v]=f),i.push({qNode:y,output:f,node:b})}}}return n},t.TokenSet.Builder=function(){this.previousWord="",this.root=new t.TokenSet,this.uncheckedNodes=[],this.minimizedNodes={}},t.TokenSet.Builder.prototype.insert=function(e){var n,r=0;if(e<this.previousWord)throw new Error("Out of order word insertion");for(var i=0;i<e.length&&i<this.previousWord.length&&e[i]==this.previousWord[i];i++)r++;this.minimize(r),this.uncheckedNodes.length==0?n=this.root:n=this.uncheckedNodes[this.uncheckedNodes.length-1].child;for(var i=r;i<e.length;i++){var s=new t.TokenSet,o=e[i];n.edges[o]=s,this.uncheckedNodes.push({parent:n,char:o,child:s}),n=s}n.final=!0,this.previousWord=e},t.TokenSet.Builder.prototype.finish=function(){this.minimize(0)},t.TokenSet.Builder.prototype.minimize=function(e){for(var n=this.uncheckedNodes.length-1;n>=e;n--){var r=this.uncheckedNodes[n],i=r.child.toString();i in this.minimizedNodes?r.parent.edges[r.char]=this.minimizedNodes[i]:(r.child._str=i,this.minimizedNodes[i]=r.child),this.uncheckedNodes.pop()}};t.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},t.Index.prototype.search=function(e){return this.query(function(n){var r=new t.QueryParser(e,n);r.parse()})},t.Index.prototype.query=function(e){for(var n=new t.Query(this.fields),r=Object.create(null),i=Object.create(null),s=Object.create(null),o=Object.create(null),a=Object.create(null),u=0;u<this.fields.length;u++)i[this.fields[u]]=new t.Vector;e.call(n,n);for(var u=0;u<n.clauses.length;u++){var l=n.clauses[u],h=null,m=t.Set.empty;l.usePipeline?h=this.pipeline.runString(l.term,{fields:l.fields}):h=[l.term];for(var v=0;v<h.length;v++){var b=h[v];l.term=b;var y=t.TokenSet.fromClause(l),E=this.tokenSet.intersect(y).toArray();if(E.length===0&&l.presence===t.Query.presence.REQUIRED){for(var f=0;f<l.fields.length;f++){var p=l.fields[f];o[p]=t.Set.empty}break}for(var w=0;w<E.length;w++)for(var S=E[w],I=this.invertedIndex[S],_=I._index,f=0;f<l.fields.length;f++){var p=l.fields[f],z=I[p],A=Object.keys(z),q=S+"/"+p,$=new t.Set(A);if(l.presence==t.Query.presence.REQUIRED&&(m=m.union($),o[p]===void 0&&(o[p]=t.Set.complete)),l.presence==t.Query.presence.PROHIBITED){a[p]===void 0&&(a[p]=t.Set.empty),a[p]=a[p].union($);continue}if(i[p].upsert(_,l.boost,function(ke,Ie){return ke+Ie}),!s[q]){for(var V=0;V<A.length;V++){var W=A[V],P=new t.FieldRef(W,p),U=z[W],G;(G=r[P])===void 0?r[P]=new t.MatchData(S,p,U):G.add(S,p,U)}s[q]=!0}}}if(l.presence===t.Query.presence.REQUIRED)for(var f=0;f<l.fields.length;f++){var p=l.fields[f];o[p]=o[p].intersect(m)}}for(var N=t.Set.complete,M=t.Set.empty,u=0;u<this.fields.length;u++){var p=this.fields[u];o[p]&&(N=N.intersect(o[p])),a[p]&&(M=M.union(a[p]))}var c=Object.keys(r),g=[],C=Object.create(null);if(n.isNegated()){c=Object.keys(this.fieldVectors);for(var u=0;u<c.length;u++){var P=c[u],T=t.FieldRef.fromString(P);r[P]=new t.MatchData}}for(var u=0;u<c.length;u++){var T=t.FieldRef.fromString(c[u]),d=T.docRef;if(!!N.contains(d)&&!M.contains(d)){var x=this.fieldVectors[T],O=i[T.fieldName].similarity(x),D;if((D=C[d])!==void 0)D.score+=O,D.matchData.combine(r[T]);else{var L={ref:d,score:O,matchData:r[T]};C[d]=L,g.push(L)}}}return g.sort(function(we,Te){return Te.score-we.score})},t.Index.prototype.toJSON=function(){var e=Object.keys(this.invertedIndex).sort().map(function(r){return[r,this.invertedIndex[r]]},this),n=Object.keys(this.fieldVectors).map(function(r){return[r,this.fieldVectors[r].toJSON()]},this);return{version:t.version,fields:this.fields,fieldVectors:n,invertedIndex:e,pipeline:this.pipeline.toJSON()}},t.Index.load=function(e){var n={},r={},i=e.fieldVectors,s=Object.create(null),o=e.invertedIndex,a=new t.TokenSet.Builder,u=t.Pipeline.load(e.pipeline);e.version!=t.version&&t.utils.warn("Version mismatch when loading serialised index. Current version of lunr '"+t.version+"' does not match serialized index '"+e.version+"'");for(var l=0;l<i.length;l++){var h=i[l],m=h[0],v=h[1];r[m]=new t.Vector(v)}for(var l=0;l<o.length;l++){var h=o[l],b=h[0],y=h[1];a.insert(b),s[b]=y}return a.finish(),n.fields=e.fields,n.fieldVectors=r,n.invertedIndex=s,n.tokenSet=a.root,n.pipeline=u,new t.Index(n)};t.Builder=function(){this._ref="id",this._fields=Object.create(null),this._documents=Object.create(null),this.invertedIndex=Object.create(null),this.fieldTermFrequencies={},this.fieldLengths={},this.tokenizer=t.tokenizer,this.pipeline=new t.Pipeline,this.searchPipeline=new t.Pipeline,this.documentCount=0,this._b=.75,this._k1=1.2,this.termIndex=0,this.metadataWhitelist=[]},t.Builder.prototype.ref=function(e){this._ref=e},t.Builder.prototype.field=function(e,n){if(/\//.test(e))throw new RangeError("Field '"+e+"' contains illegal character '/'");this._fields[e]=n||{}},t.Builder.prototype.b=function(e){e<0?this._b=0:e>1?this._b=1:this._b=e},t.Builder.prototype.k1=function(e){this._k1=e},t.Builder.prototype.add=function(e,n){var r=e[this._ref],i=Object.keys(this._fields);this._documents[r]=n||{},this.documentCount+=1;for(var s=0;s<i.length;s++){var o=i[s],a=this._fields[o].extractor,u=a?a(e):e[o],l=this.tokenizer(u,{fields:[o]}),h=this.pipeline.run(l),m=new t.FieldRef(r,o),v=Object.create(null);this.fieldTermFrequencies[m]=v,this.fieldLengths[m]=0,this.fieldLengths[m]+=h.length;for(var b=0;b<h.length;b++){var y=h[b];if(v[y]==null&&(v[y]=0),v[y]+=1,this.invertedIndex[y]==null){var E=Object.create(null);E._index=this.termIndex,this.termIndex+=1;for(var f=0;f<i.length;f++)E[i[f]]=Object.create(null);this.invertedIndex[y]=E}this.invertedIndex[y][o][r]==null&&(this.invertedIndex[y][o][r]=Object.create(null));for(var p=0;p<this.metadataWhitelist.length;p++){var w=this.metadataWhitelist[p],S=y.metadata[w];this.invertedIndex[y][o][r][w]==null&&(this.invertedIndex[y][o][r][w]=[]),this.invertedIndex[y][o][r][w].push(S)}}}},t.Builder.prototype.calculateAverageFieldLengths=function(){for(var e=Object.keys(this.fieldLengths),n=e.length,r={},i={},s=0;s<n;s++){var o=t.FieldRef.fromString(e[s]),a=o.fieldName;i[a]||(i[a]=0),i[a]+=1,r[a]||(r[a]=0),r[a]+=this.fieldLengths[o]}for(var u=Object.keys(this._fields),s=0;s<u.length;s++){var l=u[s];r[l]=r[l]/i[l]}this.averageFieldLength=r},t.Builder.prototype.createFieldVectors=function(){for(var e={},n=Object.keys(this.fieldTermFrequencies),r=n.length,i=Object.create(null),s=0;s<r;s++){for(var o=t.FieldRef.fromString(n[s]),a=o.fieldName,u=this.fieldLengths[o],l=new t.Vector,h=this.fieldTermFrequencies[o],m=Object.keys(h),v=m.length,b=this._fields[a].boost||1,y=this._documents[o.docRef].boost||1,E=0;E<v;E++){var f=m[E],p=h[f],w=this.invertedIndex[f]._index,S,I,_;i[f]===void 0?(S=t.idf(this.invertedIndex[f],this.documentCount),i[f]=S):S=i[f],I=S*((this._k1+1)*p)/(this._k1*(1-this._b+this._b*(u/this.averageFieldLength[a]))+p),I*=b,I*=y,_=Math.round(I*1e3)/1e3,l.insert(w,_)}e[o]=l}this.fieldVectors=e},t.Builder.prototype.createTokenSet=function(){this.tokenSet=t.TokenSet.fromArray(Object.keys(this.invertedIndex).sort())},t.Builder.prototype.build=function(){return this.calculateAverageFieldLengths(),this.createFieldVectors(),this.createTokenSet(),new t.Index({invertedIndex:this.invertedIndex,fieldVectors:this.fieldVectors,tokenSet:this.tokenSet,fields:Object.keys(this._fields),pipeline:this.searchPipeline})},t.Builder.prototype.use=function(e){var n=Array.prototype.slice.call(arguments,1);n.unshift(this),e.apply(this,n)},t.MatchData=function(e,n,r){for(var i=Object.create(null),s=Object.keys(r||{}),o=0;o<s.length;o++){var a=s[o];i[a]=r[a].slice()}this.metadata=Object.create(null),e!==void 0&&(this.metadata[e]=Object.create(null),this.metadata[e][n]=i)},t.MatchData.prototype.combine=function(e){for(var n=Object.keys(e.metadata),r=0;r<n.length;r++){var i=n[r],s=Object.keys(e.metadata[i]);this.metadata[i]==null&&(this.metadata[i]=Object.create(null));for(var o=0;o<s.length;o++){var a=s[o],u=Object.keys(e.metadata[i][a]);this.metadata[i][a]==null&&(this.metadata[i][a]=Object.create(null));for(var l=0;l<u.length;l++){var h=u[l];this.metadata[i][a][h]==null?this.metadata[i][a][h]=e.metadata[i][a][h]:this.metadata[i][a][h]=this.metadata[i][a][h].concat(e.metadata[i][a][h])}}}},t.MatchData.prototype.add=function(e,n,r){if(!(e in this.metadata)){this.metadata[e]=Object.create(null),this.metadata[e][n]=r;return}if(!(n in this.metadata[e])){this.metadata[e][n]=r;return}for(var i=Object.keys(r),s=0;s<i.length;s++){var o=i[s];o in this.metadata[e][n]?this.metadata[e][n][o]=this.metadata[e][n][o].concat(r[o]):this.metadata[e][n][o]=r[o]}},t.Query=function(e){this.clauses=[],this.allFields=e},t.Query.wildcard=new String("*"),t.Query.wildcard.NONE=0,t.Query.wildcard.LEADING=1,t.Query.wildcard.TRAILING=2,t.Query.presence={OPTIONAL:1,REQUIRED:2,PROHIBITED:3},t.Query.prototype.clause=function(e){return"fields"in e||(e.fields=this.allFields),"boost"in e||(e.boost=1),"usePipeline"in e||(e.usePipeline=!0),"wildcard"in e||(e.wildcard=t.Query.wildcard.NONE),e.wildcard&t.Query.wildcard.LEADING&&e.term.charAt(0)!=t.Query.wildcard&&(e.term="*"+e.term),e.wildcard&t.Query.wildcard.TRAILING&&e.term.slice(-1)!=t.Query.wildcard&&(e.term=""+e.term+"*"),"presence"in e||(e.presence=t.Query.presence.OPTIONAL),this.clauses.push(e),this},t.Query.prototype.isNegated=function(){for(var e=0;e<this.clauses.length;e++)if(this.clauses[e].presence!=t.Query.presence.PROHIBITED)return!1;return!0},t.Query.prototype.term=function(e,n){if(Array.isArray(e))return e.forEach(function(i){this.term(i,t.utils.clone(n))},this),this;var r=n||{};return r.term=e.toString(),this.clause(r),this},t.QueryParseError=function(e,n,r){this.name="QueryParseError",this.message=e,this.start=n,this.end=r},t.QueryParseError.prototype=new Error,t.QueryLexer=function(e){this.lexemes=[],this.str=e,this.length=e.length,this.pos=0,this.start=0,this.escapeCharPositions=[]},t.QueryLexer.prototype.run=function(){for(var e=t.QueryLexer.lexText;e;)e=e(this)},t.QueryLexer.prototype.sliceString=function(){for(var e=[],n=this.start,r=this.pos,i=0;i<this.escapeCharPositions.length;i++)r=this.escapeCharPositions[i],e.push(this.str.slice(n,r)),n=r+1;return e.push(this.str.slice(n,this.pos)),this.escapeCharPositions.length=0,e.join("")},t.QueryLexer.prototype.emit=function(e){this.lexemes.push({type:e,str:this.sliceString(),start:this.start,end:this.pos}),this.start=this.pos},t.QueryLexer.prototype.escapeCharacter=function(){this.escapeCharPositions.push(this.pos-1),this.pos+=1},t.QueryLexer.prototype.next=function(){if(this.pos>=this.length)return t.QueryLexer.EOS;var e=this.str.charAt(this.pos);return this.pos+=1,e},t.QueryLexer.prototype.width=function(){return this.pos-this.start},t.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},t.QueryLexer.prototype.backup=function(){this.pos-=1},t.QueryLexer.prototype.acceptDigitRun=function(){var e,n;do e=this.next(),n=e.charCodeAt(0);while(n>47&&n<58);e!=t.QueryLexer.EOS&&this.backup()},t.QueryLexer.prototype.more=function(){return this.pos<this.length},t.QueryLexer.EOS="EOS",t.QueryLexer.FIELD="FIELD",t.QueryLexer.TERM="TERM",t.QueryLexer.EDIT_DISTANCE="EDIT_DISTANCE",t.QueryLexer.BOOST="BOOST",t.QueryLexer.PRESENCE="PRESENCE",t.QueryLexer.lexField=function(e){return e.backup(),e.emit(t.QueryLexer.FIELD),e.ignore(),t.QueryLexer.lexText},t.QueryLexer.lexTerm=function(e){if(e.width()>1&&(e.backup(),e.emit(t.QueryLexer.TERM)),e.ignore(),e.more())return t.QueryLexer.lexText},t.QueryLexer.lexEditDistance=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(t.QueryLexer.EDIT_DISTANCE),t.QueryLexer.lexText},t.QueryLexer.lexBoost=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(t.QueryLexer.BOOST),t.QueryLexer.lexText},t.QueryLexer.lexEOS=function(e){e.width()>0&&e.emit(t.QueryLexer.TERM)},t.QueryLexer.termSeparator=t.tokenizer.separator,t.QueryLexer.lexText=function(e){for(;;){var n=e.next();if(n==t.QueryLexer.EOS)return t.QueryLexer.lexEOS;if(n.charCodeAt(0)==92){e.escapeCharacter();continue}if(n==":")return t.QueryLexer.lexField;if(n=="~")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexEditDistance;if(n=="^")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexBoost;if(n=="+"&&e.width()===1||n=="-"&&e.width()===1)return e.emit(t.QueryLexer.PRESENCE),t.QueryLexer.lexText;if(n.match(t.QueryLexer.termSeparator))return t.QueryLexer.lexTerm}},t.QueryParser=function(e,n){this.lexer=new t.QueryLexer(e),this.query=n,this.currentClause={},this.lexemeIdx=0},t.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var e=t.QueryParser.parseClause;e;)e=e(this);return this.query},t.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},t.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},t.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},t.QueryParser.parseClause=function(e){var n=e.peekLexeme();if(n!=null)switch(n.type){case t.QueryLexer.PRESENCE:return t.QueryParser.parsePresence;case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var r="expected either a field or a term, found "+n.type;throw n.str.length>=1&&(r+=" with value '"+n.str+"'"),new t.QueryParseError(r,n.start,n.end)}},t.QueryParser.parsePresence=function(e){var n=e.consumeLexeme();if(n!=null){switch(n.str){case"-":e.currentClause.presence=t.Query.presence.PROHIBITED;break;case"+":e.currentClause.presence=t.Query.presence.REQUIRED;break;default:var r="unrecognised presence operator'"+n.str+"'";throw new t.QueryParseError(r,n.start,n.end)}var i=e.peekLexeme();if(i==null){var r="expecting term or field, found nothing";throw new t.QueryParseError(r,n.start,n.end)}switch(i.type){case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var r="expecting term or field, found '"+i.type+"'";throw new t.QueryParseError(r,i.start,i.end)}}},t.QueryParser.parseField=function(e){var n=e.consumeLexeme();if(n!=null){if(e.query.allFields.indexOf(n.str)==-1){var r=e.query.allFields.map(function(o){return"'"+o+"'"}).join(", "),i="unrecognised field '"+n.str+"', possible fields: "+r;throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.fields=[n.str];var s=e.peekLexeme();if(s==null){var i="expecting term, found nothing";throw new t.QueryParseError(i,n.start,n.end)}switch(s.type){case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var i="expecting term, found '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},t.QueryParser.parseTerm=function(e){var n=e.consumeLexeme();if(n!=null){e.currentClause.term=n.str.toLowerCase(),n.str.indexOf("*")!=-1&&(e.currentClause.usePipeline=!1);var r=e.peekLexeme();if(r==null){e.nextClause();return}switch(r.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+r.type+"'";throw new t.QueryParseError(i,r.start,r.end)}}},t.QueryParser.parseEditDistance=function(e){var n=e.consumeLexeme();if(n!=null){var r=parseInt(n.str,10);if(isNaN(r)){var i="edit distance must be numeric";throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.editDistance=r;var s=e.peekLexeme();if(s==null){e.nextClause();return}switch(s.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},t.QueryParser.parseBoost=function(e){var n=e.consumeLexeme();if(n!=null){var r=parseInt(n.str,10);if(isNaN(r)){var i="boost must be numeric";throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.boost=r;var s=e.peekLexeme();if(s==null){e.nextClause();return}switch(s.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},function(e,n){typeof define=="function"&&define.amd?define(n):typeof ce=="object"?he.exports=n():e.lunr=n()}(this,function(){return t})})()});var le=[];function j(t,e){le.push({selector:e,constructor:t})}var Y=class{constructor(){this.createComponents(document.body)}createComponents(e){le.forEach(n=>{e.querySelectorAll(n.selector).forEach(r=>{r.dataset.hasInstance||(new n.constructor({el:r}),r.dataset.hasInstance=String(!0))})})}};var k=class{constructor(e){this.el=e.el}};var J=class{constructor(){this.listeners={}}addEventListener(e,n){e in this.listeners||(this.listeners[e]=[]),this.listeners[e].push(n)}removeEventListener(e,n){if(!(e in this.listeners))return;let r=this.listeners[e];for(let i=0,s=r.length;i<s;i++)if(r[i]===n){r.splice(i,1);return}}dispatchEvent(e){if(!(e.type in this.listeners))return!0;let n=this.listeners[e.type].slice();for(let r=0,i=n.length;r<i;r++)n[r].call(this,e);return!e.defaultPrevented}};var ne=(t,e=100)=>{let n=Date.now();return(...r)=>{n+e-Date.now()<0&&(t(...r),n=Date.now())}};var re=class extends J{constructor(){super();this.scrollTop=0;this.lastY=0;this.width=0;this.height=0;this.showToolbar=!0;this.toolbar=document.querySelector(".tsd-page-toolbar"),this.navigation=document.querySelector(".col-menu"),window.addEventListener("scroll",ne(()=>this.onScroll(),10)),window.addEventListener("resize",ne(()=>this.onResize(),10)),this.searchInput=document.querySelector("#tsd-search input"),this.searchInput&&this.searchInput.addEventListener("focus",()=>{this.hideShowToolbar()}),this.onResize(),this.onScroll()}triggerResize(){let n=new CustomEvent("resize",{detail:{width:this.width,height:this.height}});this.dispatchEvent(n)}onResize(){this.width=window.innerWidth||0,this.height=window.innerHeight||0;let n=new CustomEvent("resize",{detail:{width:this.width,height:this.height}});this.dispatchEvent(n)}onScroll(){this.scrollTop=window.scrollY||0;let n=new CustomEvent("scroll",{detail:{scrollTop:this.scrollTop}});this.dispatchEvent(n),this.hideShowToolbar()}hideShowToolbar(){let n=this.showToolbar;this.showToolbar=this.lastY>=this.scrollTop||this.scrollTop<=0||!!this.searchInput&&this.searchInput===document.activeElement,n!==this.showToolbar&&(this.toolbar.classList.toggle("tsd-page-toolbar--hide"),this.navigation?.classList.toggle("col-menu--hide")),this.lastY=this.scrollTop}},R=re;R.instance=new re;var X=class extends k{constructor(n){super(n);this.anchors=[];this.index=-1;R.instance.addEventListener("resize",()=>this.onResize()),R.instance.addEventListener("scroll",r=>this.onScroll(r)),this.createAnchors()}createAnchors(){let n=window.location.href;n.indexOf("#")!=-1&&(n=n.substring(0,n.indexOf("#"))),this.el.querySelectorAll("a").forEach(r=>{let i=r.href;if(i.indexOf("#")==-1||i.substring(0,n.length)!=n)return;let s=i.substring(i.indexOf("#")+1),o=document.querySelector("a.tsd-anchor[name="+s+"]"),a=r.parentNode;!o||!a||this.anchors.push({link:a,anchor:o,position:0})}),this.onResize()}onResize(){let n;for(let i=0,s=this.anchors.length;i<s;i++){n=this.anchors[i];let o=n.anchor.getBoundingClientRect();n.position=o.top+document.body.scrollTop}this.anchors.sort((i,s)=>i.position-s.position);let r=new CustomEvent("scroll",{detail:{scrollTop:R.instance.scrollTop}});this.onScroll(r)}onScroll(n){let r=n.detail.scrollTop+5,i=this.anchors,s=i.length-1,o=this.index;for(;o>-1&&i[o].position>r;)o-=1;for(;o<s&&i[o+1].position<r;)o+=1;this.index!=o&&(this.index>-1&&this.anchors[this.index].link.classList.remove("focus"),this.index=o,this.index>-1&&this.anchors[this.index].link.classList.add("focus"))}};var ue=(t,e=100)=>{let n;return(...r)=>{clearTimeout(n),n=setTimeout(()=>t(r),e)}};var me=De(de());function ve(){let t=document.getElementById("tsd-search");if(!t)return;let e=document.getElementById("search-script");t.classList.add("loading"),e&&(e.addEventListener("error",()=>{t.classList.remove("loading"),t.classList.add("failure")}),e.addEventListener("load",()=>{t.classList.remove("loading"),t.classList.add("ready")}),window.searchData&&t.classList.remove("loading"));let n=document.querySelector("#tsd-search input"),r=document.querySelector("#tsd-search .results");if(!n||!r)throw new Error("The input field or the result list wrapper was not found");let i=!1;r.addEventListener("mousedown",()=>i=!0),r.addEventListener("mouseup",()=>{i=!1,t.classList.remove("has-focus")}),n.addEventListener("focus",()=>t.classList.add("has-focus")),n.addEventListener("blur",()=>{i||(i=!1,t.classList.remove("has-focus"))});let s={base:t.dataset.base+"/"};Fe(t,r,n,s)}function Fe(t,e,n,r){n.addEventListener("input",ue(()=>{Ae(t,e,n,r)},200));let i=!1;n.addEventListener("keydown",s=>{i=!0,s.key=="Enter"?Ve(e,n):s.key=="Escape"?n.blur():s.key=="ArrowUp"?fe(e,-1):s.key==="ArrowDown"?fe(e,1):i=!1}),n.addEventListener("keypress",s=>{i&&s.preventDefault()}),document.body.addEventListener("keydown",s=>{s.altKey||s.ctrlKey||s.metaKey||!n.matches(":focus")&&s.key==="/"&&(n.focus(),s.preventDefault())})}function He(t,e){t.index||window.searchData&&(e.classList.remove("loading"),e.classList.add("ready"),t.data=window.searchData,t.index=me.Index.load(window.searchData.index))}function Ae(t,e,n,r){if(He(r,t),!r.index||!r.data)return;e.textContent="";let i=n.value.trim(),s=i?r.index.search(`*${i}*`):[];for(let o=0;o<s.length;o++){let a=s[o],u=r.data.rows[Number(a.ref)],l=1;u.name.toLowerCase().startsWith(i.toLowerCase())&&(l*=1+1/(1+Math.abs(u.name.length-i.length))),a.score*=l}s.sort((o,a)=>a.score-o.score);for(let o=0,a=Math.min(10,s.length);o<a;o++){let u=r.data.rows[Number(s[o].ref)],l=pe(u.name,i);globalThis.DEBUG_SEARCH_WEIGHTS&&(l+=` (score: ${s[o].score.toFixed(2)})`),u.parent&&(l=`<span class="parent">${pe(u.parent,i)}.</span>${l}`);let h=document.createElement("li");h.classList.value=u.classes??"";let m=document.createElement("a");m.href=r.base+u.url,m.innerHTML=l,h.append(m),e.appendChild(h)}}function fe(t,e){let n=t.querySelector(".current");if(!n)n=t.querySelector(e==1?"li:first-child":"li:last-child"),n&&n.classList.add("current");else{let r=n;if(e===1)do r=r.nextElementSibling??void 0;while(r instanceof HTMLElement&&r.offsetParent==null);else do r=r.previousElementSibling??void 0;while(r instanceof HTMLElement&&r.offsetParent==null);r&&(n.classList.remove("current"),r.classList.add("current"))}}function Ve(t,e){let n=t.querySelector(".current");if(n||(n=t.querySelector("li:first-child")),n){let r=n.querySelector("a");r&&(window.location.href=r.href),e.blur()}}function pe(t,e){if(e==="")return t;let n=t.toLocaleLowerCase(),r=e.toLocaleLowerCase(),i=[],s=0,o=n.indexOf(r);for(;o!=-1;)i.push(ie(t.substring(s,o)),`<b>${ie(t.substring(o,o+r.length))}</b>`),s=o+r.length,o=n.indexOf(r,s);return i.push(ie(t.substring(s))),i.join("")}var Ne={"&":"&amp;","<":"&lt;",">":"&gt;","'":"&#039;",'"':"&quot;"};function ie(t){return t.replace(/[&<>"'"]/g,e=>Ne[e])}var F="mousedown",ye="mousemove",B="mouseup",Z={x:0,y:0},ge=!1,se=!1,je=!1,H=!1,xe=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);document.documentElement.classList.add(xe?"is-mobile":"not-mobile");xe&&"ontouchstart"in document.documentElement&&(je=!0,F="touchstart",ye="touchmove",B="touchend");document.addEventListener(F,t=>{se=!0,H=!1;let e=F=="touchstart"?t.targetTouches[0]:t;Z.y=e.pageY||0,Z.x=e.pageX||0});document.addEventListener(ye,t=>{if(!!se&&!H){let e=F=="touchstart"?t.targetTouches[0]:t,n=Z.x-(e.pageX||0),r=Z.y-(e.pageY||0);H=Math.sqrt(n*n+r*r)>10}});document.addEventListener(B,()=>{se=!1});document.addEventListener("click",t=>{ge&&(t.preventDefault(),t.stopImmediatePropagation(),ge=!1)});var K=class extends k{constructor(n){super(n);this.className=this.el.dataset.toggle||"",this.el.addEventListener(B,r=>this.onPointerUp(r)),this.el.addEventListener("click",r=>r.preventDefault()),document.addEventListener(F,r=>this.onDocumentPointerDown(r)),document.addEventListener(B,r=>this.onDocumentPointerUp(r))}setActive(n){if(this.active==n)return;this.active=n,document.documentElement.classList.toggle("has-"+this.className,n),this.el.classList.toggle("active",n);let r=(this.active?"to-has-":"from-has-")+this.className;document.documentElement.classList.add(r),setTimeout(()=>document.documentElement.classList.remove(r),500)}onPointerUp(n){H||(this.setActive(!0),n.preventDefault())}onDocumentPointerDown(n){if(this.active){if(n.target.closest(".col-menu, .tsd-filter-group"))return;this.setActive(!1)}}onDocumentPointerUp(n){if(!H&&this.active&&n.target.closest(".col-menu")){let r=n.target.closest("a");if(r){let i=window.location.href;i.indexOf("#")!=-1&&(i=i.substring(0,i.indexOf("#"))),r.href.substring(0,i.length)==i&&setTimeout(()=>this.setActive(!1),250)}}}};var oe;try{oe=localStorage}catch{oe={getItem(){return null},setItem(){}}}var Q=oe;var Le=document.head.appendChild(document.createElement("style"));Le.dataset.for="filters";var ee=class extends k{constructor(n){super(n);this.key=`filter-${this.el.name}`,this.value=this.el.checked,this.el.addEventListener("change",()=>{this.setLocalStorage(this.el.checked)}),this.setLocalStorage(this.fromLocalStorage()),Le.innerHTML+=`html:not(.${this.key}) .tsd-is-${this.el.name} { display: none; }
-`}fromLocalStorage(){let n=Q.getItem(this.key);return n?n==="true":this.el.checked}setLocalStorage(n){Q.setItem(this.key,n.toString()),this.value=n,this.handleValueChange()}handleValueChange(){this.el.checked=this.value,document.documentElement.classList.toggle(this.key,this.value),document.querySelectorAll(".tsd-index-section").forEach(n=>{n.style.display="block";let r=Array.from(n.querySelectorAll(".tsd-index-link")).every(i=>i.offsetParent==null);n.style.display=r?"none":"block"})}};var te=class extends k{constructor(n){super(n);this.calculateHeights(),this.summary=this.el.querySelector(".tsd-accordion-summary"),this.icon=this.summary.querySelector("svg"),this.key=`tsd-accordion-${this.summary.textContent.replace(/\s+/g,"-").toLowerCase()}`,this.setLocalStorage(this.fromLocalStorage(),!0),this.summary.addEventListener("click",r=>this.toggleVisibility(r)),this.icon.style.transform=this.getIconRotation()}getIconRotation(n=this.el.open){return`rotate(${n?0:-90}deg)`}calculateHeights(){let n=this.el.open,{position:r,left:i}=this.el.style;this.el.style.position="fixed",this.el.style.left="-9999px",this.el.open=!0,this.expandedHeight=this.el.offsetHeight+"px",this.el.open=!1,this.collapsedHeight=this.el.offsetHeight+"px",this.el.open=n,this.el.style.height=n?this.expandedHeight:this.collapsedHeight,this.el.style.position=r,this.el.style.left=i}toggleVisibility(n){n.preventDefault(),this.el.style.overflow="hidden",this.el.open?this.collapse():this.expand()}expand(n=!0){this.el.open=!0,this.animate(this.collapsedHeight,this.expandedHeight,{opening:!0,duration:n?300:0})}collapse(n=!0){this.animate(this.expandedHeight,this.collapsedHeight,{opening:!1,duration:n?300:0})}animate(n,r,{opening:i,duration:s=300}){if(this.animation)return;let o={duration:s,easing:"ease"};this.animation=this.el.animate({height:[n,r]},o),this.icon.animate({transform:[this.icon.style.transform||this.getIconRotation(!i),this.getIconRotation(i)]},o).addEventListener("finish",()=>{this.icon.style.transform=this.getIconRotation(i)}),this.animation.addEventListener("finish",()=>this.animationEnd(i))}animationEnd(n){this.el.open=n,this.animation=void 0,this.el.style.height="auto",this.el.style.overflow="visible",this.setLocalStorage(n)}fromLocalStorage(){let n=Q.getItem(this.key);return n?n==="true":this.el.open}setLocalStorage(n,r=!1){this.fromLocalStorage()===n&&!r||(Q.setItem(this.key,n.toString()),this.el.open=n,this.handleValueChange(r))}handleValueChange(n=!1){this.fromLocalStorage()===this.el.open&&!n||(this.fromLocalStorage()?this.expand(!1):this.collapse(!1))}};function be(t){let e=Q.getItem("tsd-theme")||"os";t.value=e,Ee(e),t.addEventListener("change",()=>{Q.setItem("tsd-theme",t.value),Ee(t.value)})}function Ee(t){document.documentElement.dataset.theme=t}ve();j(X,".menu-highlight");j(K,"a[data-toggle]");j(te,".tsd-index-accordion");j(ee,".tsd-filter-item input[type=checkbox]");var Se=document.getElementById("theme");Se&&be(Se);var Be=new Y;Object.defineProperty(window,"app",{value:Be});})();
-/*!
- * lunr.Builder
- * Copyright (C) 2020 Oliver Nightingale
- */
-/*!
- * lunr.Index
- * Copyright (C) 2020 Oliver Nightingale
- */
-/*!
- * lunr.Pipeline
- * Copyright (C) 2020 Oliver Nightingale
- */
-/*!
- * lunr.Set
- * Copyright (C) 2020 Oliver Nightingale
- */
-/*!
- * lunr.TokenSet
- * Copyright (C) 2020 Oliver Nightingale
- */
-/*!
- * lunr.Vector
- * Copyright (C) 2020 Oliver Nightingale
- */
-/*!
- * lunr.stemmer
- * Copyright (C) 2020 Oliver Nightingale
- * Includes code from - http://tartarus.org/~martin/PorterStemmer/js.txt
- */
-/*!
- * lunr.stopWordFilter
- * Copyright (C) 2020 Oliver Nightingale
- */
-/*!
- * lunr.tokenizer
- * Copyright (C) 2020 Oliver Nightingale
- */
-/*!
- * lunr.trimmer
- * Copyright (C) 2020 Oliver Nightingale
- */
-/*!
- * lunr.utils
- * Copyright (C) 2020 Oliver Nightingale
- */
-/**
- * lunr - http://lunrjs.com - A bit like Solr, but much smaller and not as bright - 2.3.9
- * Copyright (C) 2020 Oliver Nightingale
- * @license MIT
- */
+window.translations={"copy":"Copy","copied":"Copied!","normally_hidden":"This member is normally hidden due to your filter settings."};
+"use strict";(()=>{var Pe=Object.create;var ie=Object.defineProperty;var Oe=Object.getOwnPropertyDescriptor;var _e=Object.getOwnPropertyNames;var Re=Object.getPrototypeOf,Me=Object.prototype.hasOwnProperty;var Fe=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var De=(t,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of _e(e))!Me.call(t,i)&&i!==n&&ie(t,i,{get:()=>e[i],enumerable:!(r=Oe(e,i))||r.enumerable});return t};var Ae=(t,e,n)=>(n=t!=null?Pe(Re(t)):{},De(e||!t||!t.__esModule?ie(n,"default",{value:t,enumerable:!0}):n,t));var ue=Fe((ae,le)=>{(function(){var t=function(e){var n=new t.Builder;return n.pipeline.add(t.trimmer,t.stopWordFilter,t.stemmer),n.searchPipeline.add(t.stemmer),e.call(n,n),n.build()};t.version="2.3.9";t.utils={},t.utils.warn=function(e){return function(n){e.console&&console.warn&&console.warn(n)}}(this),t.utils.asString=function(e){return e==null?"":e.toString()},t.utils.clone=function(e){if(e==null)return e;for(var n=Object.create(null),r=Object.keys(e),i=0;i<r.length;i++){var s=r[i],o=e[s];if(Array.isArray(o)){n[s]=o.slice();continue}if(typeof o=="string"||typeof o=="number"||typeof o=="boolean"){n[s]=o;continue}throw new TypeError("clone is not deep and does not support nested objects")}return n},t.FieldRef=function(e,n,r){this.docRef=e,this.fieldName=n,this._stringValue=r},t.FieldRef.joiner="/",t.FieldRef.fromString=function(e){var n=e.indexOf(t.FieldRef.joiner);if(n===-1)throw"malformed field ref string";var r=e.slice(0,n),i=e.slice(n+1);return new t.FieldRef(i,r,e)},t.FieldRef.prototype.toString=function(){return this._stringValue==null&&(this._stringValue=this.fieldName+t.FieldRef.joiner+this.docRef),this._stringValue};t.Set=function(e){if(this.elements=Object.create(null),e){this.length=e.length;for(var n=0;n<this.length;n++)this.elements[e[n]]=!0}else this.length=0},t.Set.complete={intersect:function(e){return e},union:function(){return this},contains:function(){return!0}},t.Set.empty={intersect:function(){return this},union:function(e){return e},contains:function(){return!1}},t.Set.prototype.contains=function(e){return!!this.elements[e]},t.Set.prototype.intersect=function(e){var n,r,i,s=[];if(e===t.Set.complete)return this;if(e===t.Set.empty)return e;this.length<e.length?(n=this,r=e):(n=e,r=this),i=Object.keys(n.elements);for(var o=0;o<i.length;o++){var a=i[o];a in r.elements&&s.push(a)}return new t.Set(s)},t.Set.prototype.union=function(e){return e===t.Set.complete?t.Set.complete:e===t.Set.empty?this:new t.Set(Object.keys(this.elements).concat(Object.keys(e.elements)))},t.idf=function(e,n){var r=0;for(var i in e)i!="_index"&&(r+=Object.keys(e[i]).length);var s=(n-r+.5)/(r+.5);return Math.log(1+Math.abs(s))},t.Token=function(e,n){this.str=e||"",this.metadata=n||{}},t.Token.prototype.toString=function(){return this.str},t.Token.prototype.update=function(e){return this.str=e(this.str,this.metadata),this},t.Token.prototype.clone=function(e){return e=e||function(n){return n},new t.Token(e(this.str,this.metadata),this.metadata)};t.tokenizer=function(e,n){if(e==null||e==null)return[];if(Array.isArray(e))return e.map(function(m){return new t.Token(t.utils.asString(m).toLowerCase(),t.utils.clone(n))});for(var r=e.toString().toLowerCase(),i=r.length,s=[],o=0,a=0;o<=i;o++){var l=r.charAt(o),u=o-a;if(l.match(t.tokenizer.separator)||o==i){if(u>0){var d=t.utils.clone(n)||{};d.position=[a,u],d.index=s.length,s.push(new t.Token(r.slice(a,o),d))}a=o+1}}return s},t.tokenizer.separator=/[\s\-]+/;t.Pipeline=function(){this._stack=[]},t.Pipeline.registeredFunctions=Object.create(null),t.Pipeline.registerFunction=function(e,n){n in this.registeredFunctions&&t.utils.warn("Overwriting existing registered function: "+n),e.label=n,t.Pipeline.registeredFunctions[e.label]=e},t.Pipeline.warnIfFunctionNotRegistered=function(e){var n=e.label&&e.label in this.registeredFunctions;n||t.utils.warn(`Function is not registered with pipeline. This may cause problems when serialising the index.
+`,e)},t.Pipeline.load=function(e){var n=new t.Pipeline;return e.forEach(function(r){var i=t.Pipeline.registeredFunctions[r];if(i)n.add(i);else throw new Error("Cannot load unregistered function: "+r)}),n},t.Pipeline.prototype.add=function(){var e=Array.prototype.slice.call(arguments);e.forEach(function(n){t.Pipeline.warnIfFunctionNotRegistered(n),this._stack.push(n)},this)},t.Pipeline.prototype.after=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var r=this._stack.indexOf(e);if(r==-1)throw new Error("Cannot find existingFn");r=r+1,this._stack.splice(r,0,n)},t.Pipeline.prototype.before=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var r=this._stack.indexOf(e);if(r==-1)throw new Error("Cannot find existingFn");this._stack.splice(r,0,n)},t.Pipeline.prototype.remove=function(e){var n=this._stack.indexOf(e);n!=-1&&this._stack.splice(n,1)},t.Pipeline.prototype.run=function(e){for(var n=this._stack.length,r=0;r<n;r++){for(var i=this._stack[r],s=[],o=0;o<e.length;o++){var a=i(e[o],o,e);if(!(a==null||a===""))if(Array.isArray(a))for(var l=0;l<a.length;l++)s.push(a[l]);else s.push(a)}e=s}return e},t.Pipeline.prototype.runString=function(e,n){var r=new t.Token(e,n);return this.run([r]).map(function(i){return i.toString()})},t.Pipeline.prototype.reset=function(){this._stack=[]},t.Pipeline.prototype.toJSON=function(){return this._stack.map(function(e){return t.Pipeline.warnIfFunctionNotRegistered(e),e.label})};t.Vector=function(e){this._magnitude=0,this.elements=e||[]},t.Vector.prototype.positionForIndex=function(e){if(this.elements.length==0)return 0;for(var n=0,r=this.elements.length/2,i=r-n,s=Math.floor(i/2),o=this.elements[s*2];i>1&&(o<e&&(n=s),o>e&&(r=s),o!=e);)i=r-n,s=n+Math.floor(i/2),o=this.elements[s*2];if(o==e||o>e)return s*2;if(o<e)return(s+1)*2},t.Vector.prototype.insert=function(e,n){this.upsert(e,n,function(){throw"duplicate index"})},t.Vector.prototype.upsert=function(e,n,r){this._magnitude=0;var i=this.positionForIndex(e);this.elements[i]==e?this.elements[i+1]=r(this.elements[i+1],n):this.elements.splice(i,0,e,n)},t.Vector.prototype.magnitude=function(){if(this._magnitude)return this._magnitude;for(var e=0,n=this.elements.length,r=1;r<n;r+=2){var i=this.elements[r];e+=i*i}return this._magnitude=Math.sqrt(e)},t.Vector.prototype.dot=function(e){for(var n=0,r=this.elements,i=e.elements,s=r.length,o=i.length,a=0,l=0,u=0,d=0;u<s&&d<o;)a=r[u],l=i[d],a<l?u+=2:a>l?d+=2:a==l&&(n+=r[u+1]*i[d+1],u+=2,d+=2);return n},t.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},t.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),n=1,r=0;n<this.elements.length;n+=2,r++)e[r]=this.elements[n];return e},t.Vector.prototype.toJSON=function(){return this.elements};t.stemmer=function(){var e={ational:"ate",tional:"tion",enci:"ence",anci:"ance",izer:"ize",bli:"ble",alli:"al",entli:"ent",eli:"e",ousli:"ous",ization:"ize",ation:"ate",ator:"ate",alism:"al",iveness:"ive",fulness:"ful",ousness:"ous",aliti:"al",iviti:"ive",biliti:"ble",logi:"log"},n={icate:"ic",ative:"",alize:"al",iciti:"ic",ical:"ic",ful:"",ness:""},r="[^aeiou]",i="[aeiouy]",s=r+"[^aeiouy]*",o=i+"[aeiou]*",a="^("+s+")?"+o+s,l="^("+s+")?"+o+s+"("+o+")?$",u="^("+s+")?"+o+s+o+s,d="^("+s+")?"+i,m=new RegExp(a),p=new RegExp(u),b=new RegExp(l),g=new RegExp(d),L=/^(.+?)(ss|i)es$/,f=/^(.+?)([^s])s$/,y=/^(.+?)eed$/,S=/^(.+?)(ed|ing)$/,w=/.$/,k=/(at|bl|iz)$/,_=new RegExp("([^aeiouylsz])\\1$"),B=new RegExp("^"+s+i+"[^aeiouwxy]$"),A=/^(.+?[^aeiou])y$/,j=/^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/,q=/^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/,V=/^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/,$=/^(.+?)(s|t)(ion)$/,C=/^(.+?)e$/,z=/ll$/,W=new RegExp("^"+s+i+"[^aeiouwxy]$"),H=function(c){var v,P,T,h,x,O,M;if(c.length<3)return c;if(T=c.substr(0,1),T=="y"&&(c=T.toUpperCase()+c.substr(1)),h=L,x=f,h.test(c)?c=c.replace(h,"$1$2"):x.test(c)&&(c=c.replace(x,"$1$2")),h=y,x=S,h.test(c)){var E=h.exec(c);h=m,h.test(E[1])&&(h=w,c=c.replace(h,""))}else if(x.test(c)){var E=x.exec(c);v=E[1],x=g,x.test(v)&&(c=v,x=k,O=_,M=B,x.test(c)?c=c+"e":O.test(c)?(h=w,c=c.replace(h,"")):M.test(c)&&(c=c+"e"))}if(h=A,h.test(c)){var E=h.exec(c);v=E[1],c=v+"i"}if(h=j,h.test(c)){var E=h.exec(c);v=E[1],P=E[2],h=m,h.test(v)&&(c=v+e[P])}if(h=q,h.test(c)){var E=h.exec(c);v=E[1],P=E[2],h=m,h.test(v)&&(c=v+n[P])}if(h=V,x=$,h.test(c)){var E=h.exec(c);v=E[1],h=p,h.test(v)&&(c=v)}else if(x.test(c)){var E=x.exec(c);v=E[1]+E[2],x=p,x.test(v)&&(c=v)}if(h=C,h.test(c)){var E=h.exec(c);v=E[1],h=p,x=b,O=W,(h.test(v)||x.test(v)&&!O.test(v))&&(c=v)}return h=z,x=p,h.test(c)&&x.test(c)&&(h=w,c=c.replace(h,"")),T=="y"&&(c=T.toLowerCase()+c.substr(1)),c};return function(R){return R.update(H)}}(),t.Pipeline.registerFunction(t.stemmer,"stemmer");t.generateStopWordFilter=function(e){var n=e.reduce(function(r,i){return r[i]=i,r},{});return function(r){if(r&&n[r.toString()]!==r.toString())return r}},t.stopWordFilter=t.generateStopWordFilter(["a","able","about","across","after","all","almost","also","am","among","an","and","any","are","as","at","be","because","been","but","by","can","cannot","could","dear","did","do","does","either","else","ever","every","for","from","get","got","had","has","have","he","her","hers","him","his","how","however","i","if","in","into","is","it","its","just","least","let","like","likely","may","me","might","most","must","my","neither","no","nor","not","of","off","often","on","only","or","other","our","own","rather","said","say","says","she","should","since","so","some","than","that","the","their","them","then","there","these","they","this","tis","to","too","twas","us","wants","was","we","were","what","when","where","which","while","who","whom","why","will","with","would","yet","you","your"]),t.Pipeline.registerFunction(t.stopWordFilter,"stopWordFilter");t.trimmer=function(e){return e.update(function(n){return n.replace(/^\W+/,"").replace(/\W+$/,"")})},t.Pipeline.registerFunction(t.trimmer,"trimmer");t.TokenSet=function(){this.final=!1,this.edges={},this.id=t.TokenSet._nextId,t.TokenSet._nextId+=1},t.TokenSet._nextId=1,t.TokenSet.fromArray=function(e){for(var n=new t.TokenSet.Builder,r=0,i=e.length;r<i;r++)n.insert(e[r]);return n.finish(),n.root},t.TokenSet.fromClause=function(e){return"editDistance"in e?t.TokenSet.fromFuzzyString(e.term,e.editDistance):t.TokenSet.fromString(e.term)},t.TokenSet.fromFuzzyString=function(e,n){for(var r=new t.TokenSet,i=[{node:r,editsRemaining:n,str:e}];i.length;){var s=i.pop();if(s.str.length>0){var o=s.str.charAt(0),a;o in s.node.edges?a=s.node.edges[o]:(a=new t.TokenSet,s.node.edges[o]=a),s.str.length==1&&(a.final=!0),i.push({node:a,editsRemaining:s.editsRemaining,str:s.str.slice(1)})}if(s.editsRemaining!=0){if("*"in s.node.edges)var l=s.node.edges["*"];else{var l=new t.TokenSet;s.node.edges["*"]=l}if(s.str.length==0&&(l.final=!0),i.push({node:l,editsRemaining:s.editsRemaining-1,str:s.str}),s.str.length>1&&i.push({node:s.node,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)}),s.str.length==1&&(s.node.final=!0),s.str.length>=1){if("*"in s.node.edges)var u=s.node.edges["*"];else{var u=new t.TokenSet;s.node.edges["*"]=u}s.str.length==1&&(u.final=!0),i.push({node:u,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)})}if(s.str.length>1){var d=s.str.charAt(0),m=s.str.charAt(1),p;m in s.node.edges?p=s.node.edges[m]:(p=new t.TokenSet,s.node.edges[m]=p),s.str.length==1&&(p.final=!0),i.push({node:p,editsRemaining:s.editsRemaining-1,str:d+s.str.slice(2)})}}}return r},t.TokenSet.fromString=function(e){for(var n=new t.TokenSet,r=n,i=0,s=e.length;i<s;i++){var o=e[i],a=i==s-1;if(o=="*")n.edges[o]=n,n.final=a;else{var l=new t.TokenSet;l.final=a,n.edges[o]=l,n=l}}return r},t.TokenSet.prototype.toArray=function(){for(var e=[],n=[{prefix:"",node:this}];n.length;){var r=n.pop(),i=Object.keys(r.node.edges),s=i.length;r.node.final&&(r.prefix.charAt(0),e.push(r.prefix));for(var o=0;o<s;o++){var a=i[o];n.push({prefix:r.prefix.concat(a),node:r.node.edges[a]})}}return e},t.TokenSet.prototype.toString=function(){if(this._str)return this._str;for(var e=this.final?"1":"0",n=Object.keys(this.edges).sort(),r=n.length,i=0;i<r;i++){var s=n[i],o=this.edges[s];e=e+s+o.id}return e},t.TokenSet.prototype.intersect=function(e){for(var n=new t.TokenSet,r=void 0,i=[{qNode:e,output:n,node:this}];i.length;){r=i.pop();for(var s=Object.keys(r.qNode.edges),o=s.length,a=Object.keys(r.node.edges),l=a.length,u=0;u<o;u++)for(var d=s[u],m=0;m<l;m++){var p=a[m];if(p==d||d=="*"){var b=r.node.edges[p],g=r.qNode.edges[d],L=b.final&&g.final,f=void 0;p in r.output.edges?(f=r.output.edges[p],f.final=f.final||L):(f=new t.TokenSet,f.final=L,r.output.edges[p]=f),i.push({qNode:g,output:f,node:b})}}}return n},t.TokenSet.Builder=function(){this.previousWord="",this.root=new t.TokenSet,this.uncheckedNodes=[],this.minimizedNodes={}},t.TokenSet.Builder.prototype.insert=function(e){var n,r=0;if(e<this.previousWord)throw new Error("Out of order word insertion");for(var i=0;i<e.length&&i<this.previousWord.length&&e[i]==this.previousWord[i];i++)r++;this.minimize(r),this.uncheckedNodes.length==0?n=this.root:n=this.uncheckedNodes[this.uncheckedNodes.length-1].child;for(var i=r;i<e.length;i++){var s=new t.TokenSet,o=e[i];n.edges[o]=s,this.uncheckedNodes.push({parent:n,char:o,child:s}),n=s}n.final=!0,this.previousWord=e},t.TokenSet.Builder.prototype.finish=function(){this.minimize(0)},t.TokenSet.Builder.prototype.minimize=function(e){for(var n=this.uncheckedNodes.length-1;n>=e;n--){var r=this.uncheckedNodes[n],i=r.child.toString();i in this.minimizedNodes?r.parent.edges[r.char]=this.minimizedNodes[i]:(r.child._str=i,this.minimizedNodes[i]=r.child),this.uncheckedNodes.pop()}};t.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},t.Index.prototype.search=function(e){return this.query(function(n){var r=new t.QueryParser(e,n);r.parse()})},t.Index.prototype.query=function(e){for(var n=new t.Query(this.fields),r=Object.create(null),i=Object.create(null),s=Object.create(null),o=Object.create(null),a=Object.create(null),l=0;l<this.fields.length;l++)i[this.fields[l]]=new t.Vector;e.call(n,n);for(var l=0;l<n.clauses.length;l++){var u=n.clauses[l],d=null,m=t.Set.empty;u.usePipeline?d=this.pipeline.runString(u.term,{fields:u.fields}):d=[u.term];for(var p=0;p<d.length;p++){var b=d[p];u.term=b;var g=t.TokenSet.fromClause(u),L=this.tokenSet.intersect(g).toArray();if(L.length===0&&u.presence===t.Query.presence.REQUIRED){for(var f=0;f<u.fields.length;f++){var y=u.fields[f];o[y]=t.Set.empty}break}for(var S=0;S<L.length;S++)for(var w=L[S],k=this.invertedIndex[w],_=k._index,f=0;f<u.fields.length;f++){var y=u.fields[f],B=k[y],A=Object.keys(B),j=w+"/"+y,q=new t.Set(A);if(u.presence==t.Query.presence.REQUIRED&&(m=m.union(q),o[y]===void 0&&(o[y]=t.Set.complete)),u.presence==t.Query.presence.PROHIBITED){a[y]===void 0&&(a[y]=t.Set.empty),a[y]=a[y].union(q);continue}if(i[y].upsert(_,u.boost,function(Ie,Ce){return Ie+Ce}),!s[j]){for(var V=0;V<A.length;V++){var $=A[V],C=new t.FieldRef($,y),z=B[$],W;(W=r[C])===void 0?r[C]=new t.MatchData(w,y,z):W.add(w,y,z)}s[j]=!0}}}if(u.presence===t.Query.presence.REQUIRED)for(var f=0;f<u.fields.length;f++){var y=u.fields[f];o[y]=o[y].intersect(m)}}for(var H=t.Set.complete,R=t.Set.empty,l=0;l<this.fields.length;l++){var y=this.fields[l];o[y]&&(H=H.intersect(o[y])),a[y]&&(R=R.union(a[y]))}var c=Object.keys(r),v=[],P=Object.create(null);if(n.isNegated()){c=Object.keys(this.fieldVectors);for(var l=0;l<c.length;l++){var C=c[l],T=t.FieldRef.fromString(C);r[C]=new t.MatchData}}for(var l=0;l<c.length;l++){var T=t.FieldRef.fromString(c[l]),h=T.docRef;if(H.contains(h)&&!R.contains(h)){var x=this.fieldVectors[T],O=i[T.fieldName].similarity(x),M;if((M=P[h])!==void 0)M.score+=O,M.matchData.combine(r[T]);else{var E={ref:h,score:O,matchData:r[T]};P[h]=E,v.push(E)}}}return v.sort(function(ke,Qe){return Qe.score-ke.score})},t.Index.prototype.toJSON=function(){var e=Object.keys(this.invertedIndex).sort().map(function(r){return[r,this.invertedIndex[r]]},this),n=Object.keys(this.fieldVectors).map(function(r){return[r,this.fieldVectors[r].toJSON()]},this);return{version:t.version,fields:this.fields,fieldVectors:n,invertedIndex:e,pipeline:this.pipeline.toJSON()}},t.Index.load=function(e){var n={},r={},i=e.fieldVectors,s=Object.create(null),o=e.invertedIndex,a=new t.TokenSet.Builder,l=t.Pipeline.load(e.pipeline);e.version!=t.version&&t.utils.warn("Version mismatch when loading serialised index. Current version of lunr '"+t.version+"' does not match serialized index '"+e.version+"'");for(var u=0;u<i.length;u++){var d=i[u],m=d[0],p=d[1];r[m]=new t.Vector(p)}for(var u=0;u<o.length;u++){var d=o[u],b=d[0],g=d[1];a.insert(b),s[b]=g}return a.finish(),n.fields=e.fields,n.fieldVectors=r,n.invertedIndex=s,n.tokenSet=a.root,n.pipeline=l,new t.Index(n)};t.Builder=function(){this._ref="id",this._fields=Object.create(null),this._documents=Object.create(null),this.invertedIndex=Object.create(null),this.fieldTermFrequencies={},this.fieldLengths={},this.tokenizer=t.tokenizer,this.pipeline=new t.Pipeline,this.searchPipeline=new t.Pipeline,this.documentCount=0,this._b=.75,this._k1=1.2,this.termIndex=0,this.metadataWhitelist=[]},t.Builder.prototype.ref=function(e){this._ref=e},t.Builder.prototype.field=function(e,n){if(/\//.test(e))throw new RangeError("Field '"+e+"' contains illegal character '/'");this._fields[e]=n||{}},t.Builder.prototype.b=function(e){e<0?this._b=0:e>1?this._b=1:this._b=e},t.Builder.prototype.k1=function(e){this._k1=e},t.Builder.prototype.add=function(e,n){var r=e[this._ref],i=Object.keys(this._fields);this._documents[r]=n||{},this.documentCount+=1;for(var s=0;s<i.length;s++){var o=i[s],a=this._fields[o].extractor,l=a?a(e):e[o],u=this.tokenizer(l,{fields:[o]}),d=this.pipeline.run(u),m=new t.FieldRef(r,o),p=Object.create(null);this.fieldTermFrequencies[m]=p,this.fieldLengths[m]=0,this.fieldLengths[m]+=d.length;for(var b=0;b<d.length;b++){var g=d[b];if(p[g]==null&&(p[g]=0),p[g]+=1,this.invertedIndex[g]==null){var L=Object.create(null);L._index=this.termIndex,this.termIndex+=1;for(var f=0;f<i.length;f++)L[i[f]]=Object.create(null);this.invertedIndex[g]=L}this.invertedIndex[g][o][r]==null&&(this.invertedIndex[g][o][r]=Object.create(null));for(var y=0;y<this.metadataWhitelist.length;y++){var S=this.metadataWhitelist[y],w=g.metadata[S];this.invertedIndex[g][o][r][S]==null&&(this.invertedIndex[g][o][r][S]=[]),this.invertedIndex[g][o][r][S].push(w)}}}},t.Builder.prototype.calculateAverageFieldLengths=function(){for(var e=Object.keys(this.fieldLengths),n=e.length,r={},i={},s=0;s<n;s++){var o=t.FieldRef.fromString(e[s]),a=o.fieldName;i[a]||(i[a]=0),i[a]+=1,r[a]||(r[a]=0),r[a]+=this.fieldLengths[o]}for(var l=Object.keys(this._fields),s=0;s<l.length;s++){var u=l[s];r[u]=r[u]/i[u]}this.averageFieldLength=r},t.Builder.prototype.createFieldVectors=function(){for(var e={},n=Object.keys(this.fieldTermFrequencies),r=n.length,i=Object.create(null),s=0;s<r;s++){for(var o=t.FieldRef.fromString(n[s]),a=o.fieldName,l=this.fieldLengths[o],u=new t.Vector,d=this.fieldTermFrequencies[o],m=Object.keys(d),p=m.length,b=this._fields[a].boost||1,g=this._documents[o.docRef].boost||1,L=0;L<p;L++){var f=m[L],y=d[f],S=this.invertedIndex[f]._index,w,k,_;i[f]===void 0?(w=t.idf(this.invertedIndex[f],this.documentCount),i[f]=w):w=i[f],k=w*((this._k1+1)*y)/(this._k1*(1-this._b+this._b*(l/this.averageFieldLength[a]))+y),k*=b,k*=g,_=Math.round(k*1e3)/1e3,u.insert(S,_)}e[o]=u}this.fieldVectors=e},t.Builder.prototype.createTokenSet=function(){this.tokenSet=t.TokenSet.fromArray(Object.keys(this.invertedIndex).sort())},t.Builder.prototype.build=function(){return this.calculateAverageFieldLengths(),this.createFieldVectors(),this.createTokenSet(),new t.Index({invertedIndex:this.invertedIndex,fieldVectors:this.fieldVectors,tokenSet:this.tokenSet,fields:Object.keys(this._fields),pipeline:this.searchPipeline})},t.Builder.prototype.use=function(e){var n=Array.prototype.slice.call(arguments,1);n.unshift(this),e.apply(this,n)},t.MatchData=function(e,n,r){for(var i=Object.create(null),s=Object.keys(r||{}),o=0;o<s.length;o++){var a=s[o];i[a]=r[a].slice()}this.metadata=Object.create(null),e!==void 0&&(this.metadata[e]=Object.create(null),this.metadata[e][n]=i)},t.MatchData.prototype.combine=function(e){for(var n=Object.keys(e.metadata),r=0;r<n.length;r++){var i=n[r],s=Object.keys(e.metadata[i]);this.metadata[i]==null&&(this.metadata[i]=Object.create(null));for(var o=0;o<s.length;o++){var a=s[o],l=Object.keys(e.metadata[i][a]);this.metadata[i][a]==null&&(this.metadata[i][a]=Object.create(null));for(var u=0;u<l.length;u++){var d=l[u];this.metadata[i][a][d]==null?this.metadata[i][a][d]=e.metadata[i][a][d]:this.metadata[i][a][d]=this.metadata[i][a][d].concat(e.metadata[i][a][d])}}}},t.MatchData.prototype.add=function(e,n,r){if(!(e in this.metadata)){this.metadata[e]=Object.create(null),this.metadata[e][n]=r;return}if(!(n in this.metadata[e])){this.metadata[e][n]=r;return}for(var i=Object.keys(r),s=0;s<i.length;s++){var o=i[s];o in this.metadata[e][n]?this.metadata[e][n][o]=this.metadata[e][n][o].concat(r[o]):this.metadata[e][n][o]=r[o]}},t.Query=function(e){this.clauses=[],this.allFields=e},t.Query.wildcard=new String("*"),t.Query.wildcard.NONE=0,t.Query.wildcard.LEADING=1,t.Query.wildcard.TRAILING=2,t.Query.presence={OPTIONAL:1,REQUIRED:2,PROHIBITED:3},t.Query.prototype.clause=function(e){return"fields"in e||(e.fields=this.allFields),"boost"in e||(e.boost=1),"usePipeline"in e||(e.usePipeline=!0),"wildcard"in e||(e.wildcard=t.Query.wildcard.NONE),e.wildcard&t.Query.wildcard.LEADING&&e.term.charAt(0)!=t.Query.wildcard&&(e.term="*"+e.term),e.wildcard&t.Query.wildcard.TRAILING&&e.term.slice(-1)!=t.Query.wildcard&&(e.term=""+e.term+"*"),"presence"in e||(e.presence=t.Query.presence.OPTIONAL),this.clauses.push(e),this},t.Query.prototype.isNegated=function(){for(var e=0;e<this.clauses.length;e++)if(this.clauses[e].presence!=t.Query.presence.PROHIBITED)return!1;return!0},t.Query.prototype.term=function(e,n){if(Array.isArray(e))return e.forEach(function(i){this.term(i,t.utils.clone(n))},this),this;var r=n||{};return r.term=e.toString(),this.clause(r),this},t.QueryParseError=function(e,n,r){this.name="QueryParseError",this.message=e,this.start=n,this.end=r},t.QueryParseError.prototype=new Error,t.QueryLexer=function(e){this.lexemes=[],this.str=e,this.length=e.length,this.pos=0,this.start=0,this.escapeCharPositions=[]},t.QueryLexer.prototype.run=function(){for(var e=t.QueryLexer.lexText;e;)e=e(this)},t.QueryLexer.prototype.sliceString=function(){for(var e=[],n=this.start,r=this.pos,i=0;i<this.escapeCharPositions.length;i++)r=this.escapeCharPositions[i],e.push(this.str.slice(n,r)),n=r+1;return e.push(this.str.slice(n,this.pos)),this.escapeCharPositions.length=0,e.join("")},t.QueryLexer.prototype.emit=function(e){this.lexemes.push({type:e,str:this.sliceString(),start:this.start,end:this.pos}),this.start=this.pos},t.QueryLexer.prototype.escapeCharacter=function(){this.escapeCharPositions.push(this.pos-1),this.pos+=1},t.QueryLexer.prototype.next=function(){if(this.pos>=this.length)return t.QueryLexer.EOS;var e=this.str.charAt(this.pos);return this.pos+=1,e},t.QueryLexer.prototype.width=function(){return this.pos-this.start},t.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},t.QueryLexer.prototype.backup=function(){this.pos-=1},t.QueryLexer.prototype.acceptDigitRun=function(){var e,n;do e=this.next(),n=e.charCodeAt(0);while(n>47&&n<58);e!=t.QueryLexer.EOS&&this.backup()},t.QueryLexer.prototype.more=function(){return this.pos<this.length},t.QueryLexer.EOS="EOS",t.QueryLexer.FIELD="FIELD",t.QueryLexer.TERM="TERM",t.QueryLexer.EDIT_DISTANCE="EDIT_DISTANCE",t.QueryLexer.BOOST="BOOST",t.QueryLexer.PRESENCE="PRESENCE",t.QueryLexer.lexField=function(e){return e.backup(),e.emit(t.QueryLexer.FIELD),e.ignore(),t.QueryLexer.lexText},t.QueryLexer.lexTerm=function(e){if(e.width()>1&&(e.backup(),e.emit(t.QueryLexer.TERM)),e.ignore(),e.more())return t.QueryLexer.lexText},t.QueryLexer.lexEditDistance=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(t.QueryLexer.EDIT_DISTANCE),t.QueryLexer.lexText},t.QueryLexer.lexBoost=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(t.QueryLexer.BOOST),t.QueryLexer.lexText},t.QueryLexer.lexEOS=function(e){e.width()>0&&e.emit(t.QueryLexer.TERM)},t.QueryLexer.termSeparator=t.tokenizer.separator,t.QueryLexer.lexText=function(e){for(;;){var n=e.next();if(n==t.QueryLexer.EOS)return t.QueryLexer.lexEOS;if(n.charCodeAt(0)==92){e.escapeCharacter();continue}if(n==":")return t.QueryLexer.lexField;if(n=="~")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexEditDistance;if(n=="^")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexBoost;if(n=="+"&&e.width()===1||n=="-"&&e.width()===1)return e.emit(t.QueryLexer.PRESENCE),t.QueryLexer.lexText;if(n.match(t.QueryLexer.termSeparator))return t.QueryLexer.lexTerm}},t.QueryParser=function(e,n){this.lexer=new t.QueryLexer(e),this.query=n,this.currentClause={},this.lexemeIdx=0},t.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var e=t.QueryParser.parseClause;e;)e=e(this);return this.query},t.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},t.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},t.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},t.QueryParser.parseClause=function(e){var n=e.peekLexeme();if(n!=null)switch(n.type){case t.QueryLexer.PRESENCE:return t.QueryParser.parsePresence;case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var r="expected either a field or a term, found "+n.type;throw n.str.length>=1&&(r+=" with value '"+n.str+"'"),new t.QueryParseError(r,n.start,n.end)}},t.QueryParser.parsePresence=function(e){var n=e.consumeLexeme();if(n!=null){switch(n.str){case"-":e.currentClause.presence=t.Query.presence.PROHIBITED;break;case"+":e.currentClause.presence=t.Query.presence.REQUIRED;break;default:var r="unrecognised presence operator'"+n.str+"'";throw new t.QueryParseError(r,n.start,n.end)}var i=e.peekLexeme();if(i==null){var r="expecting term or field, found nothing";throw new t.QueryParseError(r,n.start,n.end)}switch(i.type){case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var r="expecting term or field, found '"+i.type+"'";throw new t.QueryParseError(r,i.start,i.end)}}},t.QueryParser.parseField=function(e){var n=e.consumeLexeme();if(n!=null){if(e.query.allFields.indexOf(n.str)==-1){var r=e.query.allFields.map(function(o){return"'"+o+"'"}).join(", "),i="unrecognised field '"+n.str+"', possible fields: "+r;throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.fields=[n.str];var s=e.peekLexeme();if(s==null){var i="expecting term, found nothing";throw new t.QueryParseError(i,n.start,n.end)}switch(s.type){case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var i="expecting term, found '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},t.QueryParser.parseTerm=function(e){var n=e.consumeLexeme();if(n!=null){e.currentClause.term=n.str.toLowerCase(),n.str.indexOf("*")!=-1&&(e.currentClause.usePipeline=!1);var r=e.peekLexeme();if(r==null){e.nextClause();return}switch(r.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+r.type+"'";throw new t.QueryParseError(i,r.start,r.end)}}},t.QueryParser.parseEditDistance=function(e){var n=e.consumeLexeme();if(n!=null){var r=parseInt(n.str,10);if(isNaN(r)){var i="edit distance must be numeric";throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.editDistance=r;var s=e.peekLexeme();if(s==null){e.nextClause();return}switch(s.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},t.QueryParser.parseBoost=function(e){var n=e.consumeLexeme();if(n!=null){var r=parseInt(n.str,10);if(isNaN(r)){var i="boost must be numeric";throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.boost=r;var s=e.peekLexeme();if(s==null){e.nextClause();return}switch(s.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},function(e,n){typeof define=="function"&&define.amd?define(n):typeof ae=="object"?le.exports=n():e.lunr=n()}(this,function(){return t})})()});var se=[];function G(t,e){se.push({selector:e,constructor:t})}var U=class{constructor(){this.alwaysVisibleMember=null;this.createComponents(document.body),this.ensureFocusedElementVisible(),this.listenForCodeCopies(),window.addEventListener("hashchange",()=>this.ensureFocusedElementVisible()),document.body.style.display||(this.ensureFocusedElementVisible(),this.updateIndexVisibility(),this.scrollToHash())}createComponents(e){se.forEach(n=>{e.querySelectorAll(n.selector).forEach(r=>{r.dataset.hasInstance||(new n.constructor({el:r,app:this}),r.dataset.hasInstance=String(!0))})})}filterChanged(){this.ensureFocusedElementVisible()}showPage(){document.body.style.display&&(document.body.style.removeProperty("display"),this.ensureFocusedElementVisible(),this.updateIndexVisibility(),this.scrollToHash())}scrollToHash(){if(location.hash){let e=document.getElementById(location.hash.substring(1));if(!e)return;e.scrollIntoView({behavior:"instant",block:"start"})}}ensureActivePageVisible(){let e=document.querySelector(".tsd-navigation .current"),n=e?.parentElement;for(;n&&!n.classList.contains(".tsd-navigation");)n instanceof HTMLDetailsElement&&(n.open=!0),n=n.parentElement;if(e&&!Ve(e)){let r=e.getBoundingClientRect().top-document.documentElement.clientHeight/4;document.querySelector(".site-menu").scrollTop=r,document.querySelector(".col-sidebar").scrollTop=r}}updateIndexVisibility(){let e=document.querySelector(".tsd-index-content"),n=e?.open;e&&(e.open=!0),document.querySelectorAll(".tsd-index-section").forEach(r=>{r.style.display="block";let i=Array.from(r.querySelectorAll(".tsd-index-link")).every(s=>s.offsetParent==null);r.style.display=i?"none":"block"}),e&&(e.open=n)}ensureFocusedElementVisible(){if(this.alwaysVisibleMember&&(this.alwaysVisibleMember.classList.remove("always-visible"),this.alwaysVisibleMember.firstElementChild.remove(),this.alwaysVisibleMember=null),!location.hash)return;let e=document.getElementById(location.hash.substring(1));if(!e)return;let n=e.parentElement;for(;n&&n.tagName!=="SECTION";)n=n.parentElement;if(!n)return;let r=n.offsetParent==null,i=n;for(;i!==document.body;)i instanceof HTMLDetailsElement&&(i.open=!0),i=i.parentElement;if(n.offsetParent==null){this.alwaysVisibleMember=n,n.classList.add("always-visible");let s=document.createElement("p");s.classList.add("warning"),s.textContent=window.translations.normally_hidden,n.prepend(s)}r&&e.scrollIntoView()}listenForCodeCopies(){document.querySelectorAll("pre > button").forEach(e=>{let n;e.addEventListener("click",()=>{e.previousElementSibling instanceof HTMLElement&&navigator.clipboard.writeText(e.previousElementSibling.innerText.trim()),e.textContent=window.translations.copied,e.classList.add("visible"),clearTimeout(n),n=setTimeout(()=>{e.classList.remove("visible"),n=setTimeout(()=>{e.textContent=window.translations.copy},100)},1e3)})})}};function Ve(t){let e=t.getBoundingClientRect(),n=Math.max(document.documentElement.clientHeight,window.innerHeight);return!(e.bottom<0||e.top-n>=0)}var oe=(t,e=100)=>{let n;return()=>{clearTimeout(n),n=setTimeout(()=>t(),e)}};var pe=Ae(ue());async function ce(t,e){if(!window.searchData)return;let n=await fetch(window.searchData),r=new Blob([await n.arrayBuffer()]).stream().pipeThrough(new DecompressionStream("gzip")),i=await new Response(r).json();t.data=i,t.index=pe.Index.load(i.index),e.classList.remove("loading"),e.classList.add("ready")}function fe(){let t=document.getElementById("tsd-search");if(!t)return;let e={base:t.dataset.base+"/"},n=document.getElementById("tsd-search-script");t.classList.add("loading"),n&&(n.addEventListener("error",()=>{t.classList.remove("loading"),t.classList.add("failure")}),n.addEventListener("load",()=>{ce(e,t)}),ce(e,t));let r=document.querySelector("#tsd-search input"),i=document.querySelector("#tsd-search .results");if(!r||!i)throw new Error("The input field or the result list wrapper was not found");i.addEventListener("mouseup",()=>{te(t)}),r.addEventListener("focus",()=>t.classList.add("has-focus")),He(t,i,r,e)}function He(t,e,n,r){n.addEventListener("input",oe(()=>{Ne(t,e,n,r)},200)),n.addEventListener("keydown",i=>{i.key=="Enter"?Be(e,t):i.key=="ArrowUp"?(de(e,n,-1),i.preventDefault()):i.key==="ArrowDown"&&(de(e,n,1),i.preventDefault())}),document.body.addEventListener("keypress",i=>{i.altKey||i.ctrlKey||i.metaKey||!n.matches(":focus")&&i.key==="/"&&(i.preventDefault(),n.focus())}),document.body.addEventListener("keyup",i=>{t.classList.contains("has-focus")&&(i.key==="Escape"||!e.matches(":focus-within")&&!n.matches(":focus"))&&(n.blur(),te(t))})}function te(t){t.classList.remove("has-focus")}function Ne(t,e,n,r){if(!r.index||!r.data)return;e.textContent="";let i=n.value.trim(),s;if(i){let o=i.split(" ").map(a=>a.length?`*${a}*`:"").join(" ");s=r.index.search(o)}else s=[];for(let o=0;o<s.length;o++){let a=s[o],l=r.data.rows[Number(a.ref)],u=1;l.name.toLowerCase().startsWith(i.toLowerCase())&&(u*=1+1/(1+Math.abs(l.name.length-i.length))),a.score*=u}if(s.length===0){let o=document.createElement("li");o.classList.add("no-results");let a=document.createElement("span");a.textContent="No results found",o.appendChild(a),e.appendChild(o)}s.sort((o,a)=>a.score-o.score);for(let o=0,a=Math.min(10,s.length);o<a;o++){let l=r.data.rows[Number(s[o].ref)],u=`<svg width="20" height="20" viewBox="0 0 24 24" fill="none" class="tsd-kind-icon"><use href="#icon-${l.kind}"></use></svg>`,d=he(l.name,i);globalThis.DEBUG_SEARCH_WEIGHTS&&(d+=` (score: ${s[o].score.toFixed(2)})`),l.parent&&(d=`<span class="parent">
+                ${he(l.parent,i)}.</span>${d}`);let m=document.createElement("li");m.classList.value=l.classes??"";let p=document.createElement("a");p.href=r.base+l.url,p.innerHTML=u+d,m.append(p),p.addEventListener("focus",()=>{e.querySelector(".current")?.classList.remove("current"),m.classList.add("current")}),e.appendChild(m)}}function de(t,e,n){let r=t.querySelector(".current");if(!r)r=t.querySelector(n==1?"li:first-child":"li:last-child"),r&&r.classList.add("current");else{let i=r;if(n===1)do i=i.nextElementSibling??void 0;while(i instanceof HTMLElement&&i.offsetParent==null);else do i=i.previousElementSibling??void 0;while(i instanceof HTMLElement&&i.offsetParent==null);i?(r.classList.remove("current"),i.classList.add("current")):n===-1&&(r.classList.remove("current"),e.focus())}}function Be(t,e){let n=t.querySelector(".current");if(n||(n=t.querySelector("li:first-child")),n){let r=n.querySelector("a");r&&(window.location.href=r.href),te(e)}}function he(t,e){if(e==="")return t;let n=t.toLocaleLowerCase(),r=e.toLocaleLowerCase(),i=[],s=0,o=n.indexOf(r);for(;o!=-1;)i.push(ee(t.substring(s,o)),`<b>${ee(t.substring(o,o+r.length))}</b>`),s=o+r.length,o=n.indexOf(r,s);return i.push(ee(t.substring(s))),i.join("")}var je={"&":"&amp;","<":"&lt;",">":"&gt;","'":"&#039;",'"':"&quot;"};function ee(t){return t.replace(/[&<>"'"]/g,e=>je[e])}var I=class{constructor(e){this.el=e.el,this.app=e.app}};var F="mousedown",ye="mousemove",N="mouseup",J={x:0,y:0},me=!1,ne=!1,qe=!1,D=!1,ve=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);document.documentElement.classList.add(ve?"is-mobile":"not-mobile");ve&&"ontouchstart"in document.documentElement&&(qe=!0,F="touchstart",ye="touchmove",N="touchend");document.addEventListener(F,t=>{ne=!0,D=!1;let e=F=="touchstart"?t.targetTouches[0]:t;J.y=e.pageY||0,J.x=e.pageX||0});document.addEventListener(ye,t=>{if(ne&&!D){let e=F=="touchstart"?t.targetTouches[0]:t,n=J.x-(e.pageX||0),r=J.y-(e.pageY||0);D=Math.sqrt(n*n+r*r)>10}});document.addEventListener(N,()=>{ne=!1});document.addEventListener("click",t=>{me&&(t.preventDefault(),t.stopImmediatePropagation(),me=!1)});var X=class extends I{constructor(e){super(e),this.className=this.el.dataset.toggle||"",this.el.addEventListener(N,n=>this.onPointerUp(n)),this.el.addEventListener("click",n=>n.preventDefault()),document.addEventListener(F,n=>this.onDocumentPointerDown(n)),document.addEventListener(N,n=>this.onDocumentPointerUp(n))}setActive(e){if(this.active==e)return;this.active=e,document.documentElement.classList.toggle("has-"+this.className,e),this.el.classList.toggle("active",e);let n=(this.active?"to-has-":"from-has-")+this.className;document.documentElement.classList.add(n),setTimeout(()=>document.documentElement.classList.remove(n),500)}onPointerUp(e){D||(this.setActive(!0),e.preventDefault())}onDocumentPointerDown(e){if(this.active){if(e.target.closest(".col-sidebar, .tsd-filter-group"))return;this.setActive(!1)}}onDocumentPointerUp(e){if(!D&&this.active&&e.target.closest(".col-sidebar")){let n=e.target.closest("a");if(n){let r=window.location.href;r.indexOf("#")!=-1&&(r=r.substring(0,r.indexOf("#"))),n.href.substring(0,r.length)==r&&setTimeout(()=>this.setActive(!1),250)}}}};var re;try{re=localStorage}catch{re={getItem(){return null},setItem(){}}}var Q=re;var ge=document.head.appendChild(document.createElement("style"));ge.dataset.for="filters";var Y=class extends I{constructor(e){super(e),this.key=`filter-${this.el.name}`,this.value=this.el.checked,this.el.addEventListener("change",()=>{this.setLocalStorage(this.el.checked)}),this.setLocalStorage(this.fromLocalStorage()),ge.innerHTML+=`html:not(.${this.key}) .tsd-is-${this.el.name} { display: none; }
+`,this.app.updateIndexVisibility()}fromLocalStorage(){let e=Q.getItem(this.key);return e?e==="true":this.el.checked}setLocalStorage(e){Q.setItem(this.key,e.toString()),this.value=e,this.handleValueChange()}handleValueChange(){this.el.checked=this.value,document.documentElement.classList.toggle(this.key,this.value),this.app.filterChanged(),this.app.updateIndexVisibility()}};var Z=class extends I{constructor(e){super(e),this.summary=this.el.querySelector(".tsd-accordion-summary"),this.icon=this.summary.querySelector("svg"),this.key=`tsd-accordion-${this.summary.dataset.key??this.summary.textContent.trim().replace(/\s+/g,"-").toLowerCase()}`;let n=Q.getItem(this.key);this.el.open=n?n==="true":this.el.open,this.el.addEventListener("toggle",()=>this.update());let r=this.summary.querySelector("a");r&&r.addEventListener("click",()=>{location.assign(r.href)}),this.update()}update(){this.icon.style.transform=`rotate(${this.el.open?0:-90}deg)`,Q.setItem(this.key,this.el.open.toString())}};function Ee(t){let e=Q.getItem("tsd-theme")||"os";t.value=e,xe(e),t.addEventListener("change",()=>{Q.setItem("tsd-theme",t.value),xe(t.value)})}function xe(t){document.documentElement.dataset.theme=t}var K;function we(){let t=document.getElementById("tsd-nav-script");t&&(t.addEventListener("load",Le),Le())}async function Le(){let t=document.getElementById("tsd-nav-container");if(!t||!window.navigationData)return;let n=await(await fetch(window.navigationData)).arrayBuffer(),r=new Blob([n]).stream().pipeThrough(new DecompressionStream("gzip")),i=await new Response(r).json();K=t.dataset.base,K.endsWith("/")||(K+="/"),t.innerHTML="";for(let s of i)Se(s,t,[]);window.app.createComponents(t),window.app.showPage(),window.app.ensureActivePageVisible()}function Se(t,e,n){let r=e.appendChild(document.createElement("li"));if(t.children){let i=[...n,t.text],s=r.appendChild(document.createElement("details"));s.className=t.class?`${t.class} tsd-accordion`:"tsd-accordion";let o=s.appendChild(document.createElement("summary"));o.className="tsd-accordion-summary",o.dataset.key=i.join("$"),o.innerHTML='<svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="#icon-chevronDown"></use></svg>',be(t,o);let a=s.appendChild(document.createElement("div"));a.className="tsd-accordion-details";let l=a.appendChild(document.createElement("ul"));l.className="tsd-nested-navigation";for(let u of t.children)Se(u,l,i)}else be(t,r,t.class)}function be(t,e,n){if(t.path){let r=e.appendChild(document.createElement("a"));r.href=K+t.path,n&&(r.className=n),location.pathname===r.pathname&&!r.href.includes("#")&&r.classList.add("current"),t.kind&&(r.innerHTML=`<svg width="20" height="20" viewBox="0 0 24 24" fill="none" class="tsd-kind-icon"><use href="#icon-${t.kind}"></use></svg>`),r.appendChild(document.createElement("span")).textContent=t.text}else e.appendChild(document.createElement("span")).textContent=t.text}G(X,"a[data-toggle]");G(Z,".tsd-accordion");G(Y,".tsd-filter-item input[type=checkbox]");var Te=document.getElementById("tsd-theme");Te&&Ee(Te);var $e=new U;Object.defineProperty(window,"app",{value:$e});fe();we();})();
+/*! Bundled license information:
+
+lunr/lunr.js:
+  (**
+   * lunr - http://lunrjs.com - A bit like Solr, but much smaller and not as bright - 2.3.9
+   * Copyright (C) 2020 Oliver Nightingale
+   * @license MIT
+   *)
+  (*!
+   * lunr.utils
+   * Copyright (C) 2020 Oliver Nightingale
+   *)
+  (*!
+   * lunr.Set
+   * Copyright (C) 2020 Oliver Nightingale
+   *)
+  (*!
+   * lunr.tokenizer
+   * Copyright (C) 2020 Oliver Nightingale
+   *)
+  (*!
+   * lunr.Pipeline
+   * Copyright (C) 2020 Oliver Nightingale
+   *)
+  (*!
+   * lunr.Vector
+   * Copyright (C) 2020 Oliver Nightingale
+   *)
+  (*!
+   * lunr.stemmer
+   * Copyright (C) 2020 Oliver Nightingale
+   * Includes code from - http://tartarus.org/~martin/PorterStemmer/js.txt
+   *)
+  (*!
+   * lunr.stopWordFilter
+   * Copyright (C) 2020 Oliver Nightingale
+   *)
+  (*!
+   * lunr.trimmer
+   * Copyright (C) 2020 Oliver Nightingale
+   *)
+  (*!
+   * lunr.TokenSet
+   * Copyright (C) 2020 Oliver Nightingale
+   *)
+  (*!
+   * lunr.Index
+   * Copyright (C) 2020 Oliver Nightingale
+   *)
+  (*!
+   * lunr.Builder
+   * Copyright (C) 2020 Oliver Nightingale
+   *)
+*/
diff --git a/docs/assets/navigation.js b/docs/assets/navigation.js
new file mode 100644
index 0000000..40c73a9
--- /dev/null
+++ b/docs/assets/navigation.js
@@ -0,0 +1 @@
+window.navigationData = "data:application/octet-stream;base64,H4sIAAAAAAAACo2WXW/TMBSG/4uvy8o2BqJ3HWKCaqtYg7iZdnHWuIlp4kSOPS1B/HfkkC9/+/a853ni2I6dpz+I4zeONmjbQv49RStUA8/RBvG2xs36f/Ui52WBVuhMaIo2V+8/f7q8ufq7Uth9ZWP3VYjdiU4Hd6KLoL6R7sVCynIE/YA5WGhZDtE/IMM6KmsxnO2xYz3EPwoG1CaYgpAhgd+pQffFKPJnWxsvPgVBg2CQG7QsRpFyM1lpGUQbEpyVmHKnaMijfLaVmIIYwx5KczqHeoiXu/xRAOOY3ZNm8UKvwAi8FLhZay2q8Vr7HFySIfLAD0A7Urj4OfUoSmUmZ7g0JvJa/55czx0zD34QZ+HCx8yD9xvfxU+hTyCYmx8yD94MO6X5Sm2GRRwjOQiv5CA8Emgh4YzQLKkLwjlms+ok6JGTijZro0kVfvywEB5zfDz/goKk+qU0+/SeKJ12BtlslhPJJ1OPJafQPKQU6YlQ+RokvW2dQ9R7AjrlWlUtxvVqg7c0TXJy4h7J2BKW3bb9yD2uoSOsUm99w2Pe/i5JeEyLrrBSHvqB1VO7Akr1J0MVmT8bBn4AmuEtq0S/aZxD0toC0n7cgXlb9nh0GebbFr5UgnJCJWPzGU1+oeVWVlyOy1nRkEbOw050d4Q11s2vdgRVcq0CrqnFI6P4jbsWcsw8eG38es74mL279AkYfnU9f8wM/PkfChQ/T14MAAA="
\ No newline at end of file
diff --git a/docs/assets/search.js b/docs/assets/search.js
index 6f4a3ca..ae22699 100644
--- a/docs/assets/search.js
+++ b/docs/assets/search.js
@@ -1 +1 @@
-window.searchData = JSON.parse("{\"kinds\":{\"32\":\"Variable\",\"64\":\"Function\",\"1024\":\"Property\",\"65536\":\"Type literal\",\"4194304\":\"Type alias\"},\"rows\":[{\"kind\":64,\"name\":\"findSurahByAyaid\",\"url\":\"functions/findSurahByAyaid.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"findJuzByAyaid\",\"url\":\"functions/findJuzByAyaid.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"findJuzHizbByAyaid\",\"url\":\"functions/findJuzHizbByAyaid.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"findJuz\",\"url\":\"functions/findJuz.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"findJuzHizb\",\"url\":\"functions/findJuzHizb.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"isAyahJuzFirst\",\"url\":\"functions/isAyahJuzFirst.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"isAyahPageFirst\",\"url\":\"functions/isAyahPageFirst.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"findJuzAndShift\",\"url\":\"functions/findJuzAndShift.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"functions/findJuzAndShift.html#findJuzAndShift.__type\",\"classes\":\"tsd-kind-type-literal\",\"parent\":\"findJuzAndShift.findJuzAndShift\"},{\"kind\":1024,\"name\":\"juz\",\"url\":\"functions/findJuzAndShift.html#findJuzAndShift.__type.juz\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"findJuzAndShift.findJuzAndShift.__type\"},{\"kind\":1024,\"name\":\"leftAyahId\",\"url\":\"functions/findJuzAndShift.html#findJuzAndShift.__type.leftAyahId\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"findJuzAndShift.findJuzAndShift.__type\"},{\"kind\":1024,\"name\":\"ayahsBetweenJuzSurah\",\"url\":\"functions/findJuzAndShift.html#findJuzAndShift.__type.ayahsBetweenJuzSurah\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"findJuzAndShift.findJuzAndShift.__type\"},{\"kind\":64,\"name\":\"findJuzMetaBySurah\",\"url\":\"functions/findJuzMetaBySurah.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"getSurahMeta\",\"url\":\"functions/getSurahMeta.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"findPage\",\"url\":\"functions/findPage.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"findAyaidBySurah\",\"url\":\"functions/findAyaidBySurah.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"getAyaCountinSura\",\"url\":\"functions/getAyaCountinSura.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"nextAyah\",\"url\":\"functions/nextAyah.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"prevAyah\",\"url\":\"functions/prevAyah.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"pageMeta\",\"url\":\"functions/pageMeta-1.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"findRangeAroundAyah\",\"url\":\"functions/findRangeAroundAyah.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":32,\"name\":\"JuzList\",\"url\":\"variables/JuzList.html\",\"classes\":\"tsd-kind-variable\"},{\"kind\":32,\"name\":\"ManzilList\",\"url\":\"variables/ManzilList.html\",\"classes\":\"tsd-kind-variable\"},{\"kind\":32,\"name\":\"SajdaList\",\"url\":\"variables/SajdaList.html\",\"classes\":\"tsd-kind-variable\"},{\"kind\":4194304,\"name\":\"AyahId\",\"url\":\"types/AyahId.html\",\"classes\":\"tsd-kind-type-alias\"},{\"kind\":4194304,\"name\":\"AyahNo\",\"url\":\"types/AyahNo.html\",\"classes\":\"tsd-kind-type-alias\"},{\"kind\":4194304,\"name\":\"Page\",\"url\":\"types/Page.html\",\"classes\":\"tsd-kind-type-alias\"},{\"kind\":4194304,\"name\":\"Juz\",\"url\":\"types/Juz.html\",\"classes\":\"tsd-kind-type-alias\"},{\"kind\":4194304,\"name\":\"SurahAyah\",\"url\":\"types/SurahAyah.html\",\"classes\":\"tsd-kind-type-alias\"},{\"kind\":4194304,\"name\":\"PageMeta\",\"url\":\"types/PageMeta.html\",\"classes\":\"tsd-kind-type-alias\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"types/PageMeta.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-type-alias\",\"parent\":\"PageMeta\"},{\"kind\":1024,\"name\":\"pageNum\",\"url\":\"types/PageMeta.html#__type.pageNum\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"PageMeta.__type\"},{\"kind\":1024,\"name\":\"first\",\"url\":\"types/PageMeta.html#__type.first\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"PageMeta.__type\"},{\"kind\":1024,\"name\":\"last\",\"url\":\"types/PageMeta.html#__type.last\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"PageMeta.__type\"},{\"kind\":4194304,\"name\":\"JuzMeta\",\"url\":\"types/JuzMeta.html\",\"classes\":\"tsd-kind-type-alias\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"types/JuzMeta.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-type-alias\",\"parent\":\"JuzMeta\"},{\"kind\":1024,\"name\":\"leftjuz\",\"url\":\"types/JuzMeta.html#__type.leftjuz\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"JuzMeta.__type\"},{\"kind\":1024,\"name\":\"ayahsBetweenJuzSurah\",\"url\":\"types/JuzMeta.html#__type.ayahsBetweenJuzSurah\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"JuzMeta.__type\"},{\"kind\":1024,\"name\":\"rightJuz\",\"url\":\"types/JuzMeta.html#__type.rightJuz\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"JuzMeta.__type\"},{\"kind\":1024,\"name\":\"leftAyahId\",\"url\":\"types/JuzMeta.html#__type.leftAyahId\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"JuzMeta.__type\"},{\"kind\":1024,\"name\":\"rightAyahId\",\"url\":\"types/JuzMeta.html#__type.rightAyahId\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"JuzMeta.__type\"},{\"kind\":4194304,\"name\":\"SurahMeta\",\"url\":\"types/SurahMeta.html\",\"classes\":\"tsd-kind-type-alias\"},{\"kind\":4194304,\"name\":\"Sajda\",\"url\":\"types/Sajda.html\",\"classes\":\"tsd-kind-type-alias\"},{\"kind\":4194304,\"name\":\"Surah\",\"url\":\"types/Surah.html\",\"classes\":\"tsd-kind-type-alias\"},{\"kind\":32,\"name\":\"suraNamesEn\",\"url\":\"variables/suraNamesEn.html\",\"classes\":\"tsd-kind-variable\"},{\"kind\":32,\"name\":\"suraNamesRu\",\"url\":\"variables/suraNamesRu.html\",\"classes\":\"tsd-kind-variable\"},{\"kind\":32,\"name\":\"meta\",\"url\":\"variables/meta.html\",\"classes\":\"tsd-kind-variable\"},{\"kind\":32,\"name\":\"SuraList\",\"url\":\"variables/SuraList.html\",\"classes\":\"tsd-kind-variable\"},{\"kind\":32,\"name\":\"HizbQuarterList\",\"url\":\"variables/HizbQuarterList.html\",\"classes\":\"tsd-kind-variable\"},{\"kind\":32,\"name\":\"RukuList\",\"url\":\"variables/RukuList.html\",\"classes\":\"tsd-kind-variable\"},{\"kind\":32,\"name\":\"PageList\",\"url\":\"variables/PageList.html\",\"classes\":\"tsd-kind-variable\"},{\"kind\":64,\"name\":\"ayaStringSplitter\",\"url\":\"functions/ayaStringSplitter.html\",\"classes\":\"tsd-kind-function\"}],\"index\":{\"version\":\"2.3.9\",\"fields\":[\"name\",\"comment\"],\"fieldVectors\":[[\"name/0\",[0,35.648]],[\"comment/0\",[]],[\"name/1\",[1,35.648]],[\"comment/1\",[]],[\"name/2\",[2,35.648]],[\"comment/2\",[]],[\"name/3\",[3,35.648]],[\"comment/3\",[]],[\"name/4\",[4,35.648]],[\"comment/4\",[]],[\"name/5\",[5,35.648]],[\"comment/5\",[]],[\"name/6\",[6,35.648]],[\"comment/6\",[]],[\"name/7\",[7,35.648]],[\"comment/7\",[]],[\"name/8\",[8,27.175]],[\"comment/8\",[]],[\"name/9\",[9,30.54]],[\"comment/9\",[]],[\"name/10\",[10,30.54]],[\"comment/10\",[]],[\"name/11\",[11,30.54]],[\"comment/11\",[]],[\"name/12\",[12,35.648]],[\"comment/12\",[]],[\"name/13\",[13,35.648]],[\"comment/13\",[]],[\"name/14\",[14,35.648]],[\"comment/14\",[]],[\"name/15\",[15,35.648]],[\"comment/15\",[]],[\"name/16\",[16,35.648]],[\"comment/16\",[]],[\"name/17\",[17,35.648]],[\"comment/17\",[]],[\"name/18\",[18,35.648]],[\"comment/18\",[]],[\"name/19\",[19,30.54]],[\"comment/19\",[]],[\"name/20\",[20,35.648]],[\"comment/20\",[]],[\"name/21\",[21,35.648]],[\"comment/21\",[]],[\"name/22\",[22,35.648]],[\"comment/22\",[]],[\"name/23\",[23,35.648]],[\"comment/23\",[]],[\"name/24\",[24,35.648]],[\"comment/24\",[]],[\"name/25\",[25,35.648]],[\"comment/25\",[]],[\"name/26\",[26,35.648]],[\"comment/26\",[]],[\"name/27\",[9,30.54]],[\"comment/27\",[]],[\"name/28\",[27,35.648]],[\"comment/28\",[]],[\"name/29\",[19,30.54]],[\"comment/29\",[]],[\"name/30\",[8,27.175]],[\"comment/30\",[]],[\"name/31\",[28,35.648]],[\"comment/31\",[]],[\"name/32\",[29,35.648]],[\"comment/32\",[]],[\"name/33\",[30,35.648]],[\"comment/33\",[]],[\"name/34\",[31,35.648]],[\"comment/34\",[]],[\"name/35\",[8,27.175]],[\"comment/35\",[]],[\"name/36\",[32,35.648]],[\"comment/36\",[]],[\"name/37\",[11,30.54]],[\"comment/37\",[]],[\"name/38\",[33,35.648]],[\"comment/38\",[]],[\"name/39\",[10,30.54]],[\"comment/39\",[]],[\"name/40\",[34,35.648]],[\"comment/40\",[]],[\"name/41\",[35,35.648]],[\"comment/41\",[]],[\"name/42\",[36,35.648]],[\"comment/42\",[]],[\"name/43\",[37,35.648]],[\"comment/43\",[]],[\"name/44\",[38,35.648]],[\"comment/44\",[]],[\"name/45\",[39,35.648]],[\"comment/45\",[]],[\"name/46\",[40,35.648]],[\"comment/46\",[]],[\"name/47\",[41,35.648]],[\"comment/47\",[]],[\"name/48\",[42,35.648]],[\"comment/48\",[]],[\"name/49\",[43,35.648]],[\"comment/49\",[]],[\"name/50\",[44,35.648]],[\"comment/50\",[]],[\"name/51\",[45,35.648]],[\"comment/51\",[]]],\"invertedIndex\":[[\"__type\",{\"_index\":8,\"name\":{\"8\":{},\"30\":{},\"35\":{}},\"comment\":{}}],[\"ayahid\",{\"_index\":24,\"name\":{\"24\":{}},\"comment\":{}}],[\"ayahno\",{\"_index\":25,\"name\":{\"25\":{}},\"comment\":{}}],[\"ayahsbetweenjuzsurah\",{\"_index\":11,\"name\":{\"11\":{},\"37\":{}},\"comment\":{}}],[\"ayastringsplitter\",{\"_index\":45,\"name\":{\"51\":{}},\"comment\":{}}],[\"findayaidbysurah\",{\"_index\":15,\"name\":{\"15\":{}},\"comment\":{}}],[\"findjuz\",{\"_index\":3,\"name\":{\"3\":{}},\"comment\":{}}],[\"findjuzandshift\",{\"_index\":7,\"name\":{\"7\":{}},\"comment\":{}}],[\"findjuzbyayaid\",{\"_index\":1,\"name\":{\"1\":{}},\"comment\":{}}],[\"findjuzhizb\",{\"_index\":4,\"name\":{\"4\":{}},\"comment\":{}}],[\"findjuzhizbbyayaid\",{\"_index\":2,\"name\":{\"2\":{}},\"comment\":{}}],[\"findjuzmetabysurah\",{\"_index\":12,\"name\":{\"12\":{}},\"comment\":{}}],[\"findpage\",{\"_index\":14,\"name\":{\"14\":{}},\"comment\":{}}],[\"findrangearoundayah\",{\"_index\":20,\"name\":{\"20\":{}},\"comment\":{}}],[\"findsurahbyayaid\",{\"_index\":0,\"name\":{\"0\":{}},\"comment\":{}}],[\"first\",{\"_index\":29,\"name\":{\"32\":{}},\"comment\":{}}],[\"getayacountinsura\",{\"_index\":16,\"name\":{\"16\":{}},\"comment\":{}}],[\"getsurahmeta\",{\"_index\":13,\"name\":{\"13\":{}},\"comment\":{}}],[\"hizbquarterlist\",{\"_index\":42,\"name\":{\"48\":{}},\"comment\":{}}],[\"isayahjuzfirst\",{\"_index\":5,\"name\":{\"5\":{}},\"comment\":{}}],[\"isayahpagefirst\",{\"_index\":6,\"name\":{\"6\":{}},\"comment\":{}}],[\"juz\",{\"_index\":9,\"name\":{\"9\":{},\"27\":{}},\"comment\":{}}],[\"juzlist\",{\"_index\":21,\"name\":{\"21\":{}},\"comment\":{}}],[\"juzmeta\",{\"_index\":31,\"name\":{\"34\":{}},\"comment\":{}}],[\"last\",{\"_index\":30,\"name\":{\"33\":{}},\"comment\":{}}],[\"leftayahid\",{\"_index\":10,\"name\":{\"10\":{},\"39\":{}},\"comment\":{}}],[\"leftjuz\",{\"_index\":32,\"name\":{\"36\":{}},\"comment\":{}}],[\"manzillist\",{\"_index\":22,\"name\":{\"22\":{}},\"comment\":{}}],[\"meta\",{\"_index\":40,\"name\":{\"46\":{}},\"comment\":{}}],[\"nextayah\",{\"_index\":17,\"name\":{\"17\":{}},\"comment\":{}}],[\"page\",{\"_index\":26,\"name\":{\"26\":{}},\"comment\":{}}],[\"pagelist\",{\"_index\":44,\"name\":{\"50\":{}},\"comment\":{}}],[\"pagemeta\",{\"_index\":19,\"name\":{\"19\":{},\"29\":{}},\"comment\":{}}],[\"pagenum\",{\"_index\":28,\"name\":{\"31\":{}},\"comment\":{}}],[\"prevayah\",{\"_index\":18,\"name\":{\"18\":{}},\"comment\":{}}],[\"rightayahid\",{\"_index\":34,\"name\":{\"40\":{}},\"comment\":{}}],[\"rightjuz\",{\"_index\":33,\"name\":{\"38\":{}},\"comment\":{}}],[\"rukulist\",{\"_index\":43,\"name\":{\"49\":{}},\"comment\":{}}],[\"sajda\",{\"_index\":36,\"name\":{\"42\":{}},\"comment\":{}}],[\"sajdalist\",{\"_index\":23,\"name\":{\"23\":{}},\"comment\":{}}],[\"surah\",{\"_index\":37,\"name\":{\"43\":{}},\"comment\":{}}],[\"surahayah\",{\"_index\":27,\"name\":{\"28\":{}},\"comment\":{}}],[\"surahmeta\",{\"_index\":35,\"name\":{\"41\":{}},\"comment\":{}}],[\"suralist\",{\"_index\":41,\"name\":{\"47\":{}},\"comment\":{}}],[\"suranamesen\",{\"_index\":38,\"name\":{\"44\":{}},\"comment\":{}}],[\"suranamesru\",{\"_index\":39,\"name\":{\"45\":{}},\"comment\":{}}]],\"pipeline\":[]}}");
\ No newline at end of file
+window.searchData = "data:application/octet-stream;base64,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";
\ No newline at end of file
diff --git a/docs/assets/style.css b/docs/assets/style.css
index e509385..9d619a6 100644
--- a/docs/assets/style.css
+++ b/docs/assets/style.css
@@ -2,38 +2,84 @@
     /* Light */
     --light-color-background: #f2f4f8;
     --light-color-background-secondary: #eff0f1;
+    --light-color-warning-text: #222;
+    --light-color-background-warning: #e6e600;
     --light-color-icon-background: var(--light-color-background);
     --light-color-accent: #c5c7c9;
+    --light-color-active-menu-item: var(--light-color-accent);
     --light-color-text: #222;
-    --light-color-text-aside: #707070;
-    --light-color-link: #4da6ff;
-    --light-color-ts: #db1373;
-    --light-color-ts-interface: #139d2c;
-    --light-color-ts-enum: #9c891a;
-    --light-color-ts-class: #2484e5;
+    --light-color-text-aside: #6e6e6e;
+    --light-color-link: #1f70c2;
+    --light-color-focus-outline: #3584e4;
+
+    --light-color-ts-keyword: #056bd6;
+    --light-color-ts-project: #b111c9;
+    --light-color-ts-module: var(--light-color-ts-project);
+    --light-color-ts-namespace: var(--light-color-ts-project);
+    --light-color-ts-enum: #7e6f15;
+    --light-color-ts-enum-member: var(--light-color-ts-enum);
+    --light-color-ts-variable: #4760ec;
     --light-color-ts-function: #572be7;
-    --light-color-ts-namespace: #b111c9;
-    --light-color-ts-private: #707070;
-    --light-color-ts-variable: #4d68ff;
+    --light-color-ts-class: #1f70c2;
+    --light-color-ts-interface: #108024;
+    --light-color-ts-constructor: var(--light-color-ts-class);
+    --light-color-ts-property: var(--light-color-ts-variable);
+    --light-color-ts-method: var(--light-color-ts-function);
+    --light-color-ts-call-signature: var(--light-color-ts-method);
+    --light-color-ts-index-signature: var(--light-color-ts-property);
+    --light-color-ts-constructor-signature: var(--light-color-ts-constructor);
+    --light-color-ts-parameter: var(--light-color-ts-variable);
+    /* type literal not included as links will never be generated to it */
+    --light-color-ts-type-parameter: #a55c0e;
+    --light-color-ts-accessor: var(--light-color-ts-property);
+    --light-color-ts-get-signature: var(--light-color-ts-accessor);
+    --light-color-ts-set-signature: var(--light-color-ts-accessor);
+    --light-color-ts-type-alias: #d51270;
+    /* reference not included as links will be colored with the kind that it points to */
+    --light-color-document: #000000;
+
     --light-external-icon: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' width='10' height='10'><path fill-opacity='0' stroke='%23000' stroke-width='10' d='m43,35H5v60h60V57M45,5v10l10,10-30,30 20,20 30-30 10,10h10V5z'/></svg>");
     --light-color-scheme: light;
 
     /* Dark */
     --dark-color-background: #2b2e33;
     --dark-color-background-secondary: #1e2024;
+    --dark-color-background-warning: #bebe00;
+    --dark-color-warning-text: #222;
     --dark-color-icon-background: var(--dark-color-background-secondary);
     --dark-color-accent: #9096a2;
+    --dark-color-active-menu-item: #5d5d6a;
     --dark-color-text: #f5f5f5;
     --dark-color-text-aside: #dddddd;
     --dark-color-link: #00aff4;
-    --dark-color-ts: #ff6492;
-    --dark-color-ts-interface: #6cff87;
+    --dark-color-focus-outline: #4c97f2;
+
+    --dark-color-ts-keyword: #3399ff;
+    --dark-color-ts-project: #e358ff;
+    --dark-color-ts-module: var(--dark-color-ts-project);
+    --dark-color-ts-namespace: var(--dark-color-ts-project);
     --dark-color-ts-enum: #f4d93e;
-    --dark-color-ts-class: #61b0ff;
-    --dark-color-ts-function: #9772ff;
-    --dark-color-ts-namespace: #e14dff;
-    --dark-color-ts-private: #e2e2e2;
-    --dark-color-ts-variable: #4d68ff;
+    --dark-color-ts-enum-member: var(--dark-color-ts-enum);
+    --dark-color-ts-variable: #798dff;
+    --dark-color-ts-function: #a280ff;
+    --dark-color-ts-class: #8ac4ff;
+    --dark-color-ts-interface: #6cff87;
+    --dark-color-ts-constructor: var(--dark-color-ts-class);
+    --dark-color-ts-property: var(--dark-color-ts-variable);
+    --dark-color-ts-method: var(--dark-color-ts-function);
+    --dark-color-ts-call-signature: var(--dark-color-ts-method);
+    --dark-color-ts-index-signature: var(--dark-color-ts-property);
+    --dark-color-ts-constructor-signature: var(--dark-color-ts-constructor);
+    --dark-color-ts-parameter: var(--dark-color-ts-variable);
+    /* type literal not included as links will never be generated to it */
+    --dark-color-ts-type-parameter: #e07d13;
+    --dark-color-ts-accessor: var(--dark-color-ts-property);
+    --dark-color-ts-get-signature: var(--dark-color-ts-accessor);
+    --dark-color-ts-set-signature: var(--dark-color-ts-accessor);
+    --dark-color-ts-type-alias: #ff6492;
+    /* reference not included as links will be colored with the kind that it points to */
+    --dark-color-document: #ffffff;
+
     --dark-external-icon: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' width='10' height='10'><path fill-opacity='0' stroke='%23fff' stroke-width='10' d='m43,35H5v60h60V57M45,5v10l10,10-30,30 20,20 30-30 10,10h10V5z'/></svg>");
     --dark-color-scheme: dark;
 }
@@ -42,19 +88,41 @@
     :root {
         --color-background: var(--light-color-background);
         --color-background-secondary: var(--light-color-background-secondary);
+        --color-background-warning: var(--light-color-background-warning);
+        --color-warning-text: var(--light-color-warning-text);
         --color-icon-background: var(--light-color-icon-background);
         --color-accent: var(--light-color-accent);
+        --color-active-menu-item: var(--light-color-active-menu-item);
         --color-text: var(--light-color-text);
         --color-text-aside: var(--light-color-text-aside);
         --color-link: var(--light-color-link);
-        --color-ts: var(--light-color-ts);
-        --color-ts-interface: var(--light-color-ts-interface);
-        --color-ts-enum: var(--light-color-ts-enum);
-        --color-ts-class: var(--light-color-ts-class);
-        --color-ts-function: var(--light-color-ts-function);
+        --color-focus-outline: var(--light-color-focus-outline);
+
+        --color-ts-keyword: var(--light-color-ts-keyword);
+        --color-ts-module: var(--light-color-ts-module);
         --color-ts-namespace: var(--light-color-ts-namespace);
-        --color-ts-private: var(--light-color-ts-private);
+        --color-ts-enum: var(--light-color-ts-enum);
+        --color-ts-enum-member: var(--light-color-ts-enum-member);
         --color-ts-variable: var(--light-color-ts-variable);
+        --color-ts-function: var(--light-color-ts-function);
+        --color-ts-class: var(--light-color-ts-class);
+        --color-ts-interface: var(--light-color-ts-interface);
+        --color-ts-constructor: var(--light-color-ts-constructor);
+        --color-ts-property: var(--light-color-ts-property);
+        --color-ts-method: var(--light-color-ts-method);
+        --color-ts-call-signature: var(--light-color-ts-call-signature);
+        --color-ts-index-signature: var(--light-color-ts-index-signature);
+        --color-ts-constructor-signature: var(
+            --light-color-ts-constructor-signature
+        );
+        --color-ts-parameter: var(--light-color-ts-parameter);
+        --color-ts-type-parameter: var(--light-color-ts-type-parameter);
+        --color-ts-accessor: var(--light-color-ts-accessor);
+        --color-ts-get-signature: var(--light-color-ts-get-signature);
+        --color-ts-set-signature: var(--light-color-ts-set-signature);
+        --color-ts-type-alias: var(--light-color-ts-type-alias);
+        --color-document: var(--light-color-document);
+
         --external-icon: var(--light-external-icon);
         --color-scheme: var(--light-color-scheme);
     }
@@ -64,19 +132,41 @@
     :root {
         --color-background: var(--dark-color-background);
         --color-background-secondary: var(--dark-color-background-secondary);
+        --color-background-warning: var(--dark-color-background-warning);
+        --color-warning-text: var(--dark-color-warning-text);
         --color-icon-background: var(--dark-color-icon-background);
         --color-accent: var(--dark-color-accent);
+        --color-active-menu-item: var(--dark-color-active-menu-item);
         --color-text: var(--dark-color-text);
         --color-text-aside: var(--dark-color-text-aside);
         --color-link: var(--dark-color-link);
-        --color-ts: var(--dark-color-ts);
-        --color-ts-interface: var(--dark-color-ts-interface);
-        --color-ts-enum: var(--dark-color-ts-enum);
-        --color-ts-class: var(--dark-color-ts-class);
-        --color-ts-function: var(--dark-color-ts-function);
+        --color-focus-outline: var(--dark-color-focus-outline);
+
+        --color-ts-keyword: var(--dark-color-ts-keyword);
+        --color-ts-module: var(--dark-color-ts-module);
         --color-ts-namespace: var(--dark-color-ts-namespace);
-        --color-ts-private: var(--dark-color-ts-private);
+        --color-ts-enum: var(--dark-color-ts-enum);
+        --color-ts-enum-member: var(--dark-color-ts-enum-member);
         --color-ts-variable: var(--dark-color-ts-variable);
+        --color-ts-function: var(--dark-color-ts-function);
+        --color-ts-class: var(--dark-color-ts-class);
+        --color-ts-interface: var(--dark-color-ts-interface);
+        --color-ts-constructor: var(--dark-color-ts-constructor);
+        --color-ts-property: var(--dark-color-ts-property);
+        --color-ts-method: var(--dark-color-ts-method);
+        --color-ts-call-signature: var(--dark-color-ts-call-signature);
+        --color-ts-index-signature: var(--dark-color-ts-index-signature);
+        --color-ts-constructor-signature: var(
+            --dark-color-ts-constructor-signature
+        );
+        --color-ts-parameter: var(--dark-color-ts-parameter);
+        --color-ts-type-parameter: var(--dark-color-ts-type-parameter);
+        --color-ts-accessor: var(--dark-color-ts-accessor);
+        --color-ts-get-signature: var(--dark-color-ts-get-signature);
+        --color-ts-set-signature: var(--dark-color-ts-set-signature);
+        --color-ts-type-alias: var(--dark-color-ts-type-alias);
+        --color-document: var(--dark-color-document);
+
         --external-icon: var(--dark-external-icon);
         --color-scheme: var(--dark-color-scheme);
     }
@@ -93,19 +183,41 @@ body {
 :root[data-theme="light"] {
     --color-background: var(--light-color-background);
     --color-background-secondary: var(--light-color-background-secondary);
+    --color-background-warning: var(--light-color-background-warning);
+    --color-warning-text: var(--light-color-warning-text);
     --color-icon-background: var(--light-color-icon-background);
     --color-accent: var(--light-color-accent);
+    --color-active-menu-item: var(--light-color-active-menu-item);
     --color-text: var(--light-color-text);
     --color-text-aside: var(--light-color-text-aside);
     --color-link: var(--light-color-link);
-    --color-ts: var(--light-color-ts);
-    --color-ts-interface: var(--light-color-ts-interface);
-    --color-ts-enum: var(--light-color-ts-enum);
-    --color-ts-class: var(--light-color-ts-class);
-    --color-ts-function: var(--light-color-ts-function);
+    --color-focus-outline: var(--light-color-focus-outline);
+
+    --color-ts-keyword: var(--light-color-ts-keyword);
+    --color-ts-module: var(--light-color-ts-module);
     --color-ts-namespace: var(--light-color-ts-namespace);
-    --color-ts-private: var(--light-color-ts-private);
+    --color-ts-enum: var(--light-color-ts-enum);
+    --color-ts-enum-member: var(--light-color-ts-enum-member);
     --color-ts-variable: var(--light-color-ts-variable);
+    --color-ts-function: var(--light-color-ts-function);
+    --color-ts-class: var(--light-color-ts-class);
+    --color-ts-interface: var(--light-color-ts-interface);
+    --color-ts-constructor: var(--light-color-ts-constructor);
+    --color-ts-property: var(--light-color-ts-property);
+    --color-ts-method: var(--light-color-ts-method);
+    --color-ts-call-signature: var(--light-color-ts-call-signature);
+    --color-ts-index-signature: var(--light-color-ts-index-signature);
+    --color-ts-constructor-signature: var(
+        --light-color-ts-constructor-signature
+    );
+    --color-ts-parameter: var(--light-color-ts-parameter);
+    --color-ts-type-parameter: var(--light-color-ts-type-parameter);
+    --color-ts-accessor: var(--light-color-ts-accessor);
+    --color-ts-get-signature: var(--light-color-ts-get-signature);
+    --color-ts-set-signature: var(--light-color-ts-set-signature);
+    --color-ts-type-alias: var(--light-color-ts-type-alias);
+    --color-document: var(--light-color-document);
+
     --external-icon: var(--light-external-icon);
     --color-scheme: var(--light-color-scheme);
 }
@@ -113,23 +225,55 @@ body {
 :root[data-theme="dark"] {
     --color-background: var(--dark-color-background);
     --color-background-secondary: var(--dark-color-background-secondary);
+    --color-background-warning: var(--dark-color-background-warning);
+    --color-warning-text: var(--dark-color-warning-text);
     --color-icon-background: var(--dark-color-icon-background);
     --color-accent: var(--dark-color-accent);
+    --color-active-menu-item: var(--dark-color-active-menu-item);
     --color-text: var(--dark-color-text);
     --color-text-aside: var(--dark-color-text-aside);
     --color-link: var(--dark-color-link);
-    --color-ts: var(--dark-color-ts);
-    --color-ts-interface: var(--dark-color-ts-interface);
-    --color-ts-enum: var(--dark-color-ts-enum);
-    --color-ts-class: var(--dark-color-ts-class);
-    --color-ts-function: var(--dark-color-ts-function);
+    --color-focus-outline: var(--dark-color-focus-outline);
+
+    --color-ts-keyword: var(--dark-color-ts-keyword);
+    --color-ts-module: var(--dark-color-ts-module);
     --color-ts-namespace: var(--dark-color-ts-namespace);
-    --color-ts-private: var(--dark-color-ts-private);
+    --color-ts-enum: var(--dark-color-ts-enum);
+    --color-ts-enum-member: var(--dark-color-ts-enum-member);
     --color-ts-variable: var(--dark-color-ts-variable);
+    --color-ts-function: var(--dark-color-ts-function);
+    --color-ts-class: var(--dark-color-ts-class);
+    --color-ts-interface: var(--dark-color-ts-interface);
+    --color-ts-constructor: var(--dark-color-ts-constructor);
+    --color-ts-property: var(--dark-color-ts-property);
+    --color-ts-method: var(--dark-color-ts-method);
+    --color-ts-call-signature: var(--dark-color-ts-call-signature);
+    --color-ts-index-signature: var(--dark-color-ts-index-signature);
+    --color-ts-constructor-signature: var(
+        --dark-color-ts-constructor-signature
+    );
+    --color-ts-parameter: var(--dark-color-ts-parameter);
+    --color-ts-type-parameter: var(--dark-color-ts-type-parameter);
+    --color-ts-accessor: var(--dark-color-ts-accessor);
+    --color-ts-get-signature: var(--dark-color-ts-get-signature);
+    --color-ts-set-signature: var(--dark-color-ts-set-signature);
+    --color-ts-type-alias: var(--dark-color-ts-type-alias);
+    --color-document: var(--dark-color-document);
+
     --external-icon: var(--dark-external-icon);
     --color-scheme: var(--dark-color-scheme);
 }
 
+*:focus-visible,
+.tsd-accordion-summary:focus-visible svg {
+    outline: 2px solid var(--color-focus-outline);
+}
+
+.always-visible,
+.always-visible .tsd-signatures {
+    display: inherit !important;
+}
+
 h1,
 h2,
 h3,
@@ -169,16 +313,6 @@ h6 {
     margin: 2.33rem 0;
 }
 
-.uppercase {
-    text-transform: uppercase;
-}
-
-pre {
-    white-space: pre;
-    white-space: pre-wrap;
-    word-wrap: break-word;
-}
-
 dl,
 menu,
 ol,
@@ -191,61 +325,25 @@ dd {
 }
 
 .container {
-    max-width: 1600px;
+    max-width: 1700px;
     padding: 0 2rem;
 }
 
-@media (min-width: 640px) {
-    .container {
-        padding: 0 4rem;
-    }
-}
-@media (min-width: 1200px) {
-    .container {
-        padding: 0 8rem;
-    }
-}
-@media (min-width: 1600px) {
-    .container {
-        padding: 0 12rem;
-    }
-}
-
 /* Footer */
-.tsd-generator {
+footer {
     border-top: 1px solid var(--color-accent);
     padding-top: 1rem;
     padding-bottom: 1rem;
     max-height: 3.5rem;
 }
-
-.tsd-generator > p {
-    margin-top: 0;
-    margin-bottom: 0;
-    padding: 0 1rem;
+footer > p {
+    margin: 0 1em;
 }
 
 .container-main {
-    display: flex;
-    justify-content: space-between;
-    position: relative;
     margin: 0 auto;
-}
-
-.col-4,
-.col-8 {
-    box-sizing: border-box;
-    float: left;
-    padding: 2rem 1rem;
-}
-
-.col-4 {
-    flex: 0 0 25%;
-}
-.col-8 {
-    flex: 1 0;
-    flex-wrap: wrap;
-    padding-left: 0;
+    /* toolbar, footer, margin */
+    min-height: calc(100vh - 41px - 56px - 4rem);
 }
 
 @keyframes fade-in {
@@ -288,22 +386,6 @@ dd {
         opacity: 0;
     }
 }
-@keyframes shift-to-left {
-    from {
-        transform: translate(0, 0);
-    }
-    to {
-        transform: translate(-25%, 0);
-    }
-}
-@keyframes unshift-to-left {
-    from {
-        transform: translate(-25%, 0);
-    }
-    to {
-        transform: translate(0, 0);
-    }
-}
 @keyframes pop-in-from-right {
     from {
         transform: translate(100%, 0);
@@ -323,7 +405,8 @@ dd {
 }
 body {
     background: var(--color-background);
-    font-family: "Segoe UI", sans-serif;
+    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans",
+        Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji";
     font-size: 16px;
     color: var(--color-text);
 }
@@ -341,6 +424,9 @@ a.external[target="_blank"] {
     background-repeat: no-repeat;
     padding-right: 13px;
 }
+a.tsd-anchor-link {
+    color: var(--color-text);
+}
 
 code,
 pre {
@@ -352,13 +438,29 @@ pre {
 }
 
 pre {
+    position: relative;
+    white-space: pre;
+    white-space: pre-wrap;
+    word-wrap: break-word;
     padding: 10px;
-    border: 0.1em solid var(--color-accent);
+    border: 1px solid var(--color-accent);
 }
 pre code {
     padding: 0;
     font-size: 100%;
 }
+pre > button {
+    position: absolute;
+    top: 10px;
+    right: 10px;
+    opacity: 0;
+    transition: opacity 0.1s;
+    box-sizing: border-box;
+}
+pre:hover > button,
+pre > button.visible {
+    opacity: 1;
+}
 
 blockquote {
     margin: 1em 0;
@@ -374,13 +476,12 @@ blockquote {
     padding: 0 0 0 20px;
     margin: 0;
 }
-.tsd-typography h4,
 .tsd-typography .tsd-index-panel h3,
 .tsd-index-panel .tsd-typography h3,
+.tsd-typography h4,
 .tsd-typography h5,
 .tsd-typography h6 {
     font-size: 1em;
-    margin: 0;
 }
 .tsd-typography h5,
 .tsd-typography h6 {
@@ -391,91 +492,18 @@ blockquote {
 .tsd-typography ol {
     margin: 1em 0;
 }
-
-@media (max-width: 1024px) {
-    html .col-content {
-        float: none;
-        max-width: 100%;
-        width: 100%;
-        padding-top: 3rem;
-    }
-    html .col-menu {
-        position: fixed !important;
-        overflow-y: auto;
-        -webkit-overflow-scrolling: touch;
-        z-index: 1024;
-        top: 0 !important;
-        bottom: 0 !important;
-        left: auto !important;
-        right: 0 !important;
-        padding: 1.5rem 1.5rem 0 0;
-        max-width: 25rem;
-        visibility: hidden;
-        background-color: var(--color-background);
-        transform: translate(100%, 0);
-    }
-    html .col-menu > *:last-child {
-        padding-bottom: 20px;
-    }
-    html .overlay {
-        content: "";
-        display: block;
-        position: fixed;
-        z-index: 1023;
-        top: 0;
-        left: 0;
-        right: 0;
-        bottom: 0;
-        background-color: rgba(0, 0, 0, 0.75);
-        visibility: hidden;
-    }
-
-    .to-has-menu .overlay {
-        animation: fade-in 0.4s;
-    }
-
-    .to-has-menu :is(header, footer, .col-content) {
-        animation: shift-to-left 0.4s;
-    }
-
-    .to-has-menu .col-menu {
-        animation: pop-in-from-right 0.4s;
-    }
-
-    .from-has-menu .overlay {
-        animation: fade-out 0.4s;
-    }
-
-    .from-has-menu :is(header, footer, .col-content) {
-        animation: unshift-to-left 0.4s;
-    }
-
-    .from-has-menu .col-menu {
-        animation: pop-out-to-right 0.4s;
-    }
-
-    .has-menu body {
-        overflow: hidden;
-    }
-    .has-menu .overlay {
-        visibility: visible;
-    }
-    .has-menu :is(header, footer, .col-content) {
-        transform: translate(-25%, 0);
-    }
-    .has-menu .col-menu {
-        visibility: visible;
-        transform: translate(0, 0);
-        display: grid;
-        align-items: center;
-        grid-template-rows: auto 1fr;
-        grid-gap: 1.5rem;
-        max-height: 100vh;
-        padding: 1rem 2rem;
-    }
-    .has-menu .tsd-navigation {
-        max-height: 100%;
-    }
+.tsd-typography table {
+    border-collapse: collapse;
+    border: none;
+}
+.tsd-typography td,
+.tsd-typography th {
+    padding: 6px 13px;
+    border: 1px solid var(--color-accent);
+}
+.tsd-typography thead,
+.tsd-typography tr:nth-child(even) {
+    background-color: var(--color-background-secondary);
 }
 
 .tsd-breadcrumb {
@@ -558,13 +586,13 @@ dl.tsd-comment-tag-group p {
 }
 .tsd-filter-input {
     display: flex;
-    width: fit-content;
     width: -moz-fit-content;
+    width: fit-content;
     align-items: center;
-    user-select: none;
     -webkit-user-select: none;
     -moz-user-select: none;
     -ms-user-select: none;
+    user-select: none;
     cursor: pointer;
 }
 .tsd-filter-input input[type="checkbox"] {
@@ -587,11 +615,8 @@ dl.tsd-comment-tag-group p {
     Don't remove unless you know what you're doing. */
     opacity: 0.99;
 }
-.tsd-filter-input input[type="checkbox"]:focus + svg {
-    transform: scale(0.95);
-}
-.tsd-filter-input input[type="checkbox"]:focus:not(:focus-visible) + svg {
-    transform: scale(1);
+.tsd-filter-input input[type="checkbox"]:focus-visible + svg {
+    outline: 2px solid var(--color-focus-outline);
 }
 .tsd-checkbox-background {
     fill: var(--color-accent);
@@ -608,13 +633,18 @@ input[type="checkbox"]:checked ~ svg .tsd-checkbox-checkmark {
     stroke: var(--color-accent);
 }
 
-.tsd-theme-toggle {
-    padding-top: 0.75rem;
+.settings-label {
+    font-weight: bold;
+    text-transform: uppercase;
+    display: inline-block;
 }
-.tsd-theme-toggle > h4 {
-    display: inline;
-    vertical-align: middle;
-    margin-right: 0.75rem;
+
+.tsd-filter-visibility .settings-label {
+    margin: 0.75rem 0 0.5rem 0;
+}
+
+.tsd-theme-toggle .settings-label {
+    margin: 0.75rem 0.75rem 0 0;
 }
 
 .tsd-hierarchy {
@@ -625,6 +655,28 @@ input[type="checkbox"]:checked ~ svg .tsd-checkbox-checkmark {
     font-weight: bold;
 }
 
+.tsd-full-hierarchy:not(:last-child) {
+    margin-bottom: 1em;
+    padding-bottom: 1em;
+    border-bottom: 1px solid var(--color-accent);
+}
+.tsd-full-hierarchy,
+.tsd-full-hierarchy ul {
+    list-style: none;
+    margin: 0;
+    padding: 0;
+}
+.tsd-full-hierarchy ul {
+    padding-left: 1.5rem;
+}
+.tsd-full-hierarchy a {
+    padding: 0.25rem 0 !important;
+    font-size: 1rem;
+    display: inline-flex;
+    align-items: center;
+    color: var(--color-text);
+}
+
 .tsd-panel-group.tsd-index-group {
     margin-bottom: 0;
 }
@@ -656,43 +708,6 @@ input[type="checkbox"]:checked ~ svg .tsd-checkbox-checkmark {
     -o-page-break-inside: avoid;
     page-break-inside: avoid;
 }
-.tsd-index-panel a,
-.tsd-index-panel a.tsd-parent-kind-module {
-    color: var(--color-ts);
-}
-.tsd-index-panel a.tsd-parent-kind-interface {
-    color: var(--color-ts-interface);
-}
-.tsd-index-panel a.tsd-parent-kind-enum {
-    color: var(--color-ts-enum);
-}
-.tsd-index-panel a.tsd-parent-kind-class {
-    color: var(--color-ts-class);
-}
-.tsd-index-panel a.tsd-kind-module {
-    color: var(--color-ts-namespace);
-}
-.tsd-index-panel a.tsd-kind-interface {
-    color: var(--color-ts-interface);
-}
-.tsd-index-panel a.tsd-kind-enum {
-    color: var(--color-ts-enum);
-}
-.tsd-index-panel a.tsd-kind-class {
-    color: var(--color-ts-class);
-}
-.tsd-index-panel a.tsd-kind-function {
-    color: var(--color-ts-function);
-}
-.tsd-index-panel a.tsd-kind-namespace {
-    color: var(--color-ts-namespace);
-}
-.tsd-index-panel a.tsd-kind-variable {
-    color: var(--color-ts-variable);
-}
-.tsd-index-panel a.tsd-is-private {
-    color: var(--color-ts-private);
-}
 
 .tsd-flag {
     display: inline-block;
@@ -707,7 +722,7 @@ input[type="checkbox"]:checked ~ svg .tsd-checkbox-checkmark {
 }
 
 .tsd-anchor {
-    position: absolute;
+    position: relative;
     top: -100px;
 }
 
@@ -721,108 +736,74 @@ input[type="checkbox"]:checked ~ svg .tsd-checkbox-checkmark {
     margin-bottom: 0;
     border-bottom: none;
 }
-.tsd-member [data-tsd-kind] {
-    color: var(--color-ts);
-}
-.tsd-member [data-tsd-kind="Interface"] {
-    color: var(--color-ts-interface);
-}
-.tsd-member [data-tsd-kind="Enum"] {
-    color: var(--color-ts-enum);
-}
-.tsd-member [data-tsd-kind="Class"] {
-    color: var(--color-ts-class);
+
+.tsd-navigation.settings {
+    margin: 1rem 0;
 }
-.tsd-member [data-tsd-kind="Private"] {
-    color: var(--color-ts-private);
+.tsd-navigation > a,
+.tsd-navigation .tsd-accordion-summary {
+    width: calc(100% - 0.25rem);
+    display: flex;
+    align-items: center;
 }
-
-.tsd-navigation a {
-    display: block;
-    margin: 0.4rem 0;
-    border-left: 2px solid transparent;
+.tsd-navigation a,
+.tsd-navigation summary > span,
+.tsd-page-navigation a {
+    display: flex;
+    width: calc(100% - 0.25rem);
+    align-items: center;
+    padding: 0.25rem;
     color: var(--color-text);
     text-decoration: none;
-    transition: border-left-color 0.1s;
+    box-sizing: border-box;
 }
-.tsd-navigation a:hover {
+.tsd-navigation a.current,
+.tsd-page-navigation a.current {
+    background: var(--color-active-menu-item);
+}
+.tsd-navigation a:hover,
+.tsd-page-navigation a:hover {
     text-decoration: underline;
 }
-.tsd-navigation ul {
-    margin: 0;
+.tsd-navigation ul,
+.tsd-page-navigation ul {
+    margin-top: 0;
+    margin-bottom: 0;
     padding: 0;
     list-style: none;
 }
-.tsd-navigation li {
+.tsd-navigation li,
+.tsd-page-navigation li {
     padding: 0;
+    max-width: 100%;
 }
-
-.tsd-navigation.primary .tsd-accordion-details > ul {
-    margin-top: 0.75rem;
+.tsd-navigation .tsd-nav-link {
+    display: none;
 }
-.tsd-navigation.primary a {
-    padding: 0.75rem 0.5rem;
-    margin: 0;
+.tsd-nested-navigation {
+    margin-left: 3rem;
 }
-.tsd-navigation.primary ul li a {
-    margin-left: 0.5rem;
+.tsd-nested-navigation > li > details {
+    margin-left: -1.5rem;
 }
-.tsd-navigation.primary ul li li a {
+.tsd-small-nested-navigation {
     margin-left: 1.5rem;
 }
-.tsd-navigation.primary ul li li li a {
-    margin-left: 2.5rem;
-}
-.tsd-navigation.primary ul li li li li a {
-    margin-left: 3.5rem;
-}
-.tsd-navigation.primary ul li li li li li a {
-    margin-left: 4.5rem;
-}
-.tsd-navigation.primary ul li li li li li li a {
-    margin-left: 5.5rem;
-}
-.tsd-navigation.primary li.current > a {
-    border-left: 0.15rem var(--color-text) solid;
-}
-.tsd-navigation.primary li.selected > a {
-    font-weight: bold;
-    border-left: 0.2rem var(--color-text) solid;
-}
-.tsd-navigation.primary ul li a:hover {
-    border-left: 0.2rem var(--color-text-aside) solid;
-}
-.tsd-navigation.primary li.globals + li > span,
-.tsd-navigation.primary li.globals + li > a {
-    padding-top: 20px;
+.tsd-small-nested-navigation > li > details {
+    margin-left: -1.5rem;
 }
 
-.tsd-navigation.secondary.tsd-navigation--toolbar-hide {
-    max-height: calc(100vh - 1rem);
-    top: 0.5rem;
-}
-.tsd-navigation.secondary > ul {
-    display: inline;
-    padding-right: 0.5rem;
-    transition: opacity 0.2s;
-}
-.tsd-navigation.secondary ul li a {
-    padding-left: 0;
-}
-.tsd-navigation.secondary ul li li a {
-    padding-left: 1.1rem;
+.tsd-page-navigation-section {
+    margin-left: 10px;
 }
-.tsd-navigation.secondary ul li li li a {
-    padding-left: 2.2rem;
+.tsd-page-navigation-section > summary {
+    padding: 0.25rem;
 }
-.tsd-navigation.secondary ul li li li li a {
-    padding-left: 3.3rem;
+.tsd-page-navigation-section > div {
+    margin-left: 20px;
 }
-.tsd-navigation.secondary ul li li li li li a {
-    padding-left: 4.4rem;
-}
-.tsd-navigation.secondary ul li li li li li li a {
-    padding-left: 5.5rem;
+.tsd-page-navigation ul {
+    padding-left: 1.75rem;
 }
 
 #tsd-sidebar-links a {
@@ -835,41 +816,41 @@ input[type="checkbox"]:checked ~ svg .tsd-checkbox-checkmark {
 }
 
 a.tsd-index-link {
-    margin: 0.25rem 0;
+    padding: 0.25rem 0 !important;
     font-size: 1rem;
     line-height: 1.25rem;
     display: inline-flex;
     align-items: center;
+    color: var(--color-text);
 }
-.tsd-accordion-summary > h1,
-.tsd-accordion-summary > h2,
-.tsd-accordion-summary > h3,
-.tsd-accordion-summary > h4,
-.tsd-accordion-summary > h5 {
-    display: inline-flex;
-    align-items: center;
-    vertical-align: middle;
-    margin-bottom: 0;
-    user-select: none;
+.tsd-accordion-summary {
+    list-style-type: none; /* hide marker on non-safari */
+    outline: none; /* broken on safari, so just hide it */
+}
+.tsd-accordion-summary::-webkit-details-marker {
+    display: none; /* hide marker on safari */
+}
+.tsd-accordion-summary,
+.tsd-accordion-summary a {
     -moz-user-select: none;
     -webkit-user-select: none;
     -ms-user-select: none;
-}
-.tsd-accordion-summary {
-    display: block;
+    user-select: none;
+
     cursor: pointer;
 }
+.tsd-accordion-summary a {
+    width: calc(100% - 1.5rem);
+}
 .tsd-accordion-summary > * {
     margin-top: 0;
     margin-bottom: 0;
     padding-top: 0;
     padding-bottom: 0;
 }
-.tsd-accordion-summary::-webkit-details-marker {
-    display: none;
-}
-.tsd-index-accordion .tsd-accordion-summary svg {
-    margin-right: 0.25rem;
+.tsd-accordion .tsd-accordion-summary > svg {
+    margin-left: 0.25rem;
+    vertical-align: text-top;
 }
 .tsd-index-content > :not(:first-child) {
     margin-top: 0.75rem;
@@ -894,34 +875,6 @@ a.tsd-index-link {
     margin-right: 0.8rem;
 }
 
-@media (min-width: 1024px) {
-    .col-content {
-        margin: 2rem auto;
-    }
-
-    .menu-sticky-wrap {
-        position: sticky;
-        height: calc(100vh - 2rem);
-        top: 4rem;
-        right: 0;
-        padding: 0 1.5rem;
-        padding-top: 1rem;
-        margin-top: 3rem;
-        transition: 0.3s ease-in-out;
-        transition-property: top, padding-top, padding, height;
-        overflow-y: auto;
-    }
-    .col-menu {
-        border-left: 1px solid var(--color-accent);
-    }
-    .col-menu--hide {
-        top: 1rem;
-    }
-    .col-menu .tsd-navigation:not(:last-child) {
-        padding-bottom: 1.75rem;
-    }
-}
-
 .tsd-panel {
     margin-bottom: 2.5rem;
 }
@@ -945,7 +898,7 @@ a.tsd-index-link {
 }
 
 .tsd-panel-group {
-    margin: 4rem 0;
+    margin: 2rem 0;
 }
 .tsd-panel-group.tsd-index-group {
     margin: 2rem 0;
@@ -953,6 +906,9 @@ a.tsd-index-link {
 .tsd-panel-group.tsd-index-group details {
     margin: 2rem 0;
 }
+.tsd-panel-group > .tsd-accordion-summary {
+    margin-bottom: 1rem;
+}
 
 #tsd-search {
     transition: background-color 0.2s;
@@ -1002,8 +958,9 @@ a.tsd-index-link {
     box-shadow: 0 0 4px rgba(0, 0, 0, 0.25);
 }
 #tsd-search .results li {
-    padding: 0 10px;
     background-color: var(--color-background);
+    line-height: initial;
+    padding: 4px;
 }
 #tsd-search .results li:nth-child(even) {
     background-color: var(--color-background-secondary);
@@ -1011,12 +968,15 @@ a.tsd-index-link {
 #tsd-search .results li.state {
     display: none;
 }
-#tsd-search .results li.current,
-#tsd-search .results li:hover {
+#tsd-search .results li.current:not(.no-results),
+#tsd-search .results li:hover:not(.no-results) {
     background-color: var(--color-accent);
 }
 #tsd-search .results a {
-    display: block;
+    display: flex;
+    align-items: center;
+    padding: 0.25rem;
+    box-sizing: border-box;
 }
 #tsd-search .results a:before {
     top: 10px;
@@ -1072,6 +1032,11 @@ a.tsd-index-link {
     overflow-x: auto;
 }
 
+.tsd-signature-keyword {
+    color: var(--color-ts-keyword);
+    font-weight: normal;
+}
+
 .tsd-signature-symbol {
     color: var(--color-text-aside);
     font-weight: normal;
@@ -1093,6 +1058,12 @@ a.tsd-index-link {
     border-width: 1px 0;
     transition: background-color 0.1s;
 }
+.tsd-signatures .tsd-index-signature:not(:last-child) {
+    margin-bottom: 1em;
+}
+.tsd-signatures .tsd-index-signature .tsd-signature {
+    border-width: 1px;
+}
 .tsd-description .tsd-signatures .tsd-signature {
     border-width: 1px;
 }
@@ -1127,7 +1098,7 @@ ul.tsd-type-parameter-list h5 {
 }
 
 .tsd-page-toolbar {
-    position: fixed;
+    position: sticky;
     z-index: 1;
     top: 0;
     left: 0;
@@ -1167,16 +1138,14 @@ ul.tsd-type-parameter-list h5 {
     padding: 12px 0;
 }
 
-.tsd-page-toolbar--hide {
-    transform: translateY(-100%);
-}
-
 .tsd-widget {
     display: inline-block;
     overflow: hidden;
     opacity: 0.8;
     height: 40px;
-    transition: opacity 0.1s, background-color 0.2s;
+    transition:
+        opacity 0.1s,
+        background-color 0.2s;
     vertical-align: bottom;
     cursor: pointer;
 }
@@ -1198,12 +1167,6 @@ ul.tsd-type-parameter-list h5 {
 .tsd-widget.menu {
     display: none;
 }
-@media (max-width: 1024px) {
-    .tsd-widget.options,
-    .tsd-widget.menu {
-        display: inline-block;
-    }
-}
 input[type="checkbox"] + .tsd-widget:before {
     background-position: -120px 0;
 }
@@ -1234,7 +1197,85 @@ img {
 }
 
 .deprecated {
-    text-decoration: line-through;
+    text-decoration: line-through !important;
+}
+
+.warning {
+    padding: 1rem;
+    color: var(--color-warning-text);
+    background: var(--color-background-warning);
+}
+
+.tsd-kind-project {
+    color: var(--color-ts-project);
+}
+.tsd-kind-module {
+    color: var(--color-ts-module);
+}
+.tsd-kind-namespace {
+    color: var(--color-ts-namespace);
+}
+.tsd-kind-enum {
+    color: var(--color-ts-enum);
+}
+.tsd-kind-enum-member {
+    color: var(--color-ts-enum-member);
+}
+.tsd-kind-variable {
+    color: var(--color-ts-variable);
+}
+.tsd-kind-function {
+    color: var(--color-ts-function);
+}
+.tsd-kind-class {
+    color: var(--color-ts-class);
+}
+.tsd-kind-interface {
+    color: var(--color-ts-interface);
+}
+.tsd-kind-constructor {
+    color: var(--color-ts-constructor);
+}
+.tsd-kind-property {
+    color: var(--color-ts-property);
+}
+.tsd-kind-method {
+    color: var(--color-ts-method);
+}
+.tsd-kind-call-signature {
+    color: var(--color-ts-call-signature);
+}
+.tsd-kind-index-signature {
+    color: var(--color-ts-index-signature);
+}
+.tsd-kind-constructor-signature {
+    color: var(--color-ts-constructor-signature);
+}
+.tsd-kind-parameter {
+    color: var(--color-ts-parameter);
+}
+.tsd-kind-type-literal {
+    color: var(--color-ts-type-literal);
+}
+.tsd-kind-type-parameter {
+    color: var(--color-ts-type-parameter);
+}
+.tsd-kind-accessor {
+    color: var(--color-ts-accessor);
+}
+.tsd-kind-get-signature {
+    color: var(--color-ts-get-signature);
+}
+.tsd-kind-set-signature {
+    color: var(--color-ts-set-signature);
+}
+.tsd-kind-type-alias {
+    color: var(--color-ts-type-alias);
+}
+
+/* if we have a kind icon, don't color the text by kind */
+.tsd-kind-icon ~ span {
+    color: var(--color-text);
 }
 
 * {
@@ -1255,3 +1296,153 @@ img {
     border-radius: 999rem;
     border: 0.25rem solid var(--color-icon-background);
 }
+
+/* mobile */
+@media (max-width: 769px) {
+    .tsd-widget.options,
+    .tsd-widget.menu {
+        display: inline-block;
+    }
+
+    .container-main {
+        display: flex;
+    }
+    html .col-content {
+        float: none;
+        max-width: 100%;
+        width: 100%;
+    }
+    html .col-sidebar {
+        position: fixed !important;
+        overflow-y: auto;
+        -webkit-overflow-scrolling: touch;
+        z-index: 1024;
+        top: 0 !important;
+        bottom: 0 !important;
+        left: auto !important;
+        right: 0 !important;
+        padding: 1.5rem 1.5rem 0 0;
+        width: 75vw;
+        visibility: hidden;
+        background-color: var(--color-background);
+        transform: translate(100%, 0);
+    }
+    html .col-sidebar > *:last-child {
+        padding-bottom: 20px;
+    }
+    html .overlay {
+        content: "";
+        display: block;
+        position: fixed;
+        z-index: 1023;
+        top: 0;
+        left: 0;
+        right: 0;
+        bottom: 0;
+        background-color: rgba(0, 0, 0, 0.75);
+        visibility: hidden;
+    }
+
+    .to-has-menu .overlay {
+        animation: fade-in 0.4s;
+    }
+
+    .to-has-menu .col-sidebar {
+        animation: pop-in-from-right 0.4s;
+    }
+
+    .from-has-menu .overlay {
+        animation: fade-out 0.4s;
+    }
+
+    .from-has-menu .col-sidebar {
+        animation: pop-out-to-right 0.4s;
+    }
+
+    .has-menu body {
+        overflow: hidden;
+    }
+    .has-menu .overlay {
+        visibility: visible;
+    }
+    .has-menu .col-sidebar {
+        visibility: visible;
+        transform: translate(0, 0);
+        display: flex;
+        flex-direction: column;
+        gap: 1.5rem;
+        max-height: 100vh;
+        padding: 1rem 2rem;
+    }
+    .has-menu .tsd-navigation {
+        max-height: 100%;
+    }
+    #tsd-toolbar-links {
+        display: none;
+    }
+    .tsd-navigation .tsd-nav-link {
+        display: flex;
+    }
+}
+
+/* one sidebar */
+@media (min-width: 770px) {
+    .container-main {
+        display: grid;
+        grid-template-columns: minmax(0, 1fr) minmax(0, 2fr);
+        grid-template-areas: "sidebar content";
+        margin: 2rem auto;
+    }
+
+    .col-sidebar {
+        grid-area: sidebar;
+    }
+    .col-content {
+        grid-area: content;
+        padding: 0 1rem;
+    }
+}
+@media (min-width: 770px) and (max-width: 1399px) {
+    .col-sidebar {
+        max-height: calc(100vh - 2rem - 42px);
+        overflow: auto;
+        position: sticky;
+        top: 42px;
+        padding-top: 1rem;
+    }
+    .site-menu {
+        margin-top: 1rem;
+    }
+}
+
+/* two sidebars */
+@media (min-width: 1200px) {
+    .container-main {
+        grid-template-columns: minmax(0, 1fr) minmax(0, 2.5fr) minmax(0, 20rem);
+        grid-template-areas: "sidebar content toc";
+    }
+
+    .col-sidebar {
+        display: contents;
+    }
+
+    .page-menu {
+        grid-area: toc;
+        padding-left: 1rem;
+    }
+    .site-menu {
+        grid-area: sidebar;
+    }
+
+    .site-menu {
+        margin-top: 1rem 0;
+    }
+
+    .page-menu,
+    .site-menu {
+        max-height: calc(100vh - 2rem - 42px);
+        overflow: auto;
+        position: sticky;
+        top: 42px;
+    }
+}
diff --git a/docs/functions/ayaStringSplitter.html b/docs/functions/ayaStringSplitter.html
index cd36396..ef10620 100644
--- a/docs/functions/ayaStringSplitter.html
+++ b/docs/functions/ayaStringSplitter.html
@@ -1,99 +1,4 @@
-<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>ayaStringSplitter | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script async src="../assets/search.js" id="search-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os"</script><header class="tsd-page-toolbar">
-<div class="tsd-toolbar-contents container">
-<div class="table-cell" id="tsd-search" data-base="..">
-<div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M15.7824 13.833L12.6666 10.7177C12.5259 10.5771 12.3353 10.499 12.1353 10.499H11.6259C12.4884 9.39596 13.001 8.00859 13.001 6.49937C13.001 2.90909 10.0914 0 6.50048 0C2.90959 0 0 2.90909 0 6.49937C0 10.0896 2.90959 12.9987 6.50048 12.9987C8.00996 12.9987 9.39756 12.4863 10.5008 11.6239V12.1332C10.5008 12.3332 10.5789 12.5238 10.7195 12.6644L13.8354 15.7797C14.1292 16.0734 14.6042 16.0734 14.8948 15.7797L15.7793 14.8954C16.0731 14.6017 16.0731 14.1267 15.7824 13.833ZM6.50048 10.499C4.29094 10.499 2.50018 8.71165 2.50018 6.49937C2.50018 4.29021 4.28781 2.49976 6.50048 2.49976C8.71001 2.49976 10.5008 4.28708 10.5008 6.49937C10.5008 8.70852 8.71314 10.499 6.50048 10.499Z" fill="var(--color-text)"></path></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div>
-<div class="field">
-<div id="tsd-toolbar-links"></div></div>
-<ul class="results">
-<li class="state loading">Preparing search index...</li>
-<li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div>
-<div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><rect x="1" y="3" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="7" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="11" width="14" height="2" fill="var(--color-text)"></rect></svg></a></div></div></header>
-<div class="container container-main">
-<div class="col-8 col-content">
-<div class="tsd-page-title">
-<ul class="tsd-breadcrumb">
-<li><a href="../modules.html">quran-meta</a></li>
-<li><a href="ayaStringSplitter.html">ayaStringSplitter</a></li></ul>
-<h1>Function ayaStringSplitter</h1></div>
-<section class="tsd-panel">
-<ul class="tsd-signatures tsd-kind-function">
-<li class="tsd-signature tsd-anchor-link" id="ayaStringSplitter">aya<wbr/>String<wbr/>Splitter<span class="tsd-signature-symbol">(</span>str<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">SurahAyahSegment</span><a href="#ayaStringSplitter" aria-label="Permalink" class="tsd-anchor-icon"><svg class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none" id="icon-anchor-a"></path><path d="M10 14a3.5 3.5 0 0 0 5 0l4 -4a3.5 3.5 0 0 0 -5 -5l-.5 .5" id="icon-anchor-b"></path><path d="M14 10a3.5 3.5 0 0 0 -5 0l-4 4a3.5 3.5 0 0 0 5 5l.5 -.5" id="icon-anchor-c"></path></svg></a></li>
-<li class="tsd-description">
-<div class="tsd-comment tsd-typography"><p>Turns String of type &quot;x:y&quot; or &quot;x:y1-y2&quot; to array [x,y] or [x,[y1,y2]] respectively</p>
-
-<h3>Returns</h3><p>array [x,y] or [x,[y1,y2]] respectively</p>
-</div>
-<div class="tsd-parameters">
-<h4 class="tsd-parameters-title">Parameters</h4>
-<ul class="tsd-parameter-list">
-<li>
-<h5>str: <span class="tsd-signature-type">string</span></h5>
-<div class="tsd-comment tsd-typography"><p>String of type &quot;x:y&quot; or &quot;x:y1-y2&quot;</p>
-</div></li></ul></div>
-<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">SurahAyahSegment</span></h4><aside class="tsd-sources">
-<ul>
-<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/a8fc894/src/ayaStringSplitter.ts#L8">ayaStringSplitter.ts:8</a></li></ul></aside></li></ul></section></div>
-<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
-<div class="tsd-navigation settings">
-<details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Settings</h3></summary>
-<div class="tsd-accordion-details">
-<div class="tsd-filter-visibility">
-<h4 class="uppercase">Member Visibility</h4><form>
-<ul id="tsd-filter-options">
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div>
-<div class="tsd-theme-toggle">
-<h4 class="uppercase">Theme</h4><select id="theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div>
-<nav class="tsd-navigation primary">
-<details class="tsd-index-accordion" open><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Modules</h3></summary>
-<div class="tsd-accordion-details">
-<ul>
-<li><a href="../modules.html">quran-<wbr/>meta</a>
-<ul></ul></li></ul></div></details></nav>
-<nav class="tsd-navigation secondary menu-sticky">
-<ul>
-<li class="tsd-kind-type-alias"><a href="../types/AyahId.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-4194304-path"></rect><path d="M11.31 16V8.224H8.91V7.24H14.79V8.224H12.39V16H11.31Z" fill="var(--color-text)" id="icon-4194304-text"></path></svg>Ayah<wbr/>Id</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/AyahNo.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Ayah<wbr/>No</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Juz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/JuzMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Page.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/PageMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Sajda.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Sajda</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Surah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/SurahAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Ayah</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/SurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-variable"><a href="../variables/HizbQuarterList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-variable)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-32-path"></rect><path d="M11.106 16L8.85 7.24H9.966L11.454 13.192C11.558 13.608 11.646 13.996 11.718 14.356C11.79 14.708 11.842 14.976 11.874 15.16C11.906 14.976 11.954 14.708 12.018 14.356C12.09 13.996 12.178 13.608 12.282 13.192L13.758 7.24H14.85L12.582 16H11.106Z" fill="var(--color-text)" id="icon-32-text"></path></svg>Hizb<wbr/>Quarter<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/JuzList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Juz<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/ManzilList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Manzil<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/PageList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Page<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/RukuList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Ruku<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/SajdaList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sajda<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/SuraList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sura<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/meta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>meta</a></li>
-<li class="tsd-kind-variable"><a href="../variables/suraNamesEn.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>En</a></li>
-<li class="tsd-kind-variable"><a href="../variables/suraNamesRu.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>Ru</a></li>
-<li class="current tsd-kind-function"><a href="ayaStringSplitter.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-function)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-64-path"></rect><path d="M9.39 16V7.24H14.55V8.224H10.446V11.128H14.238V12.112H10.47V16H9.39Z" fill="var(--color-text)" id="icon-64-text"></path></svg>aya<wbr/>String<wbr/>Splitter</a></li>
-<li class="tsd-kind-function"><a href="findAyaidBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Ayaid<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="findJuz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz</a></li>
-<li class="tsd-kind-function"><a href="findJuzAndShift.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>And<wbr/>Shift</a></li>
-<li class="tsd-kind-function"><a href="findJuzByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="findJuzHizb.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb</a></li>
-<li class="tsd-kind-function"><a href="findJuzHizbByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="findJuzMetaBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Meta<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="findPage.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Page</a></li>
-<li class="tsd-kind-function"><a href="findRangeAroundAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Range<wbr/>Around<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="findSurahByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Surah<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="getAyaCountinSura.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Aya<wbr/>Countin<wbr/>Sura</a></li>
-<li class="tsd-kind-function"><a href="getSurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="isAyahJuzFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Juz<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="isAyahPageFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Page<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="nextAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>next<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="pageMeta-1.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>page<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="prevAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>prev<wbr/>Ayah</a></li></ul></nav></div></div>
-<div class="container tsd-generator">
-<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></div>
-<div class="overlay"></div><script src="../assets/main.js"></script></body></html>
\ No newline at end of file
+<!DOCTYPE html><html class="default" lang="en"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>ayaStringSplitter | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../modules.html">quran-meta</a></li><li><a href="ayaStringSplitter.html">ayaStringSplitter</a></li></ul><h1>Function ayaStringSplitter</h1></div><section class="tsd-panel"><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="ayaStringSplitter" class="tsd-anchor"></a><span class="tsd-kind-call-signature">aya<wbr/>String<wbr/>Splitter</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">str</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="../types/SurahAyahSegment.html" class="tsd-signature-type tsd-kind-type-alias">SurahAyahSegment</a><a href="#ayaStringSplitter" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-comment tsd-typography"><p>Turns String of type &quot;x:y&quot; or &quot;x:y1-y2&quot; to array [x,y] or [x,[y1,y2]] respectively</p>
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">str</span>: <span class="tsd-signature-type">string</span></span><div class="tsd-comment tsd-typography"><p>String of type &quot;x:y&quot; or &quot;x:y1-y2&quot;</p>
+</div><div class="tsd-comment tsd-typography"></div></li></ul></div><h4 class="tsd-returns-title">Returns <a href="../types/SurahAyahSegment.html" class="tsd-signature-type tsd-kind-type-alias">SurahAyahSegment</a></h4><p>array [x,y] or [x,[y1,y2]] respectively</p>
+<div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/7ff9baaee85a66d9099133c3db867ac28679aa62/src/ayaStringSplitter.ts#L9">ayaStringSplitter.ts:9</a></li></ul></aside></li></ul></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>quran-meta</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
diff --git a/docs/functions/checkValidAyahId.html b/docs/functions/checkValidAyahId.html
new file mode 100644
index 0000000..43e0b57
--- /dev/null
+++ b/docs/functions/checkValidAyahId.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html><html class="default" lang="en"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>checkValidAyahId | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../modules.html">quran-meta</a></li><li><a href="checkValidAyahId.html">checkValidAyahId</a></li></ul><h1>Function checkValidAyahId</h1></div><section class="tsd-panel"><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="checkValidAyahId" class="tsd-anchor"></a><span class="tsd-kind-call-signature">check<wbr/>Valid<wbr/>Ayah<wbr/>Id</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">ayahId</span>, <span class="tsd-kind-parameter">checkOnly</span><span class="tsd-signature-symbol">?</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">boolean</span><a href="#checkValidAyahId" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-comment tsd-typography"><p>Checks if the given Ayah (verse) ID is valid.</p>
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">ayahId</span>: <span class="tsd-signature-type">number</span></span><div class="tsd-comment tsd-typography"><p>The Ayah (verse) ID to check.</p>
+</div><div class="tsd-comment tsd-typography"></div></li><li><span><span class="tsd-kind-parameter">checkOnly</span>: <span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol"> = false</span></span><div class="tsd-comment tsd-typography"><p>If true, the function will only check the validity and not throw an error.</p>
+</div><div class="tsd-comment tsd-typography"></div></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><p>True if the Ayah ID is valid, otherwise throws a RangeError.</p>
+<div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/7ff9baaee85a66d9099133c3db867ac28679aa62/src/validation.ts#L49">validation.ts:49</a></li></ul></aside></li></ul></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>quran-meta</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
diff --git a/docs/functions/checkValidSurah.html b/docs/functions/checkValidSurah.html
new file mode 100644
index 0000000..f465733
--- /dev/null
+++ b/docs/functions/checkValidSurah.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html><html class="default" lang="en"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>checkValidSurah | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../modules.html">quran-meta</a></li><li><a href="checkValidSurah.html">checkValidSurah</a></li></ul><h1>Function checkValidSurah</h1></div><section class="tsd-panel"><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="checkValidSurah" class="tsd-anchor"></a><span class="tsd-kind-call-signature">check<wbr/>Valid<wbr/>Surah</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">surah</span>, <span class="tsd-kind-parameter">checkOnly</span><span class="tsd-signature-symbol">?</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">boolean</span><a href="#checkValidSurah" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-comment tsd-typography"><p>Checks if the given Surah (chapter) number is valid.</p>
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">surah</span>: <span class="tsd-signature-type">number</span></span><div class="tsd-comment tsd-typography"><p>The Surah (chapter) number to check.</p>
+</div><div class="tsd-comment tsd-typography"></div></li><li><span><span class="tsd-kind-parameter">checkOnly</span>: <span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol"> = false</span></span><div class="tsd-comment tsd-typography"><p>If true, the function will only check the validity and not throw an error.</p>
+</div><div class="tsd-comment tsd-typography"></div></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><p>True if the Surah number is valid, false otherwise.</p>
+<div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/7ff9baaee85a66d9099133c3db867ac28679aa62/src/validation.ts#L11">validation.ts:11</a></li></ul></aside></li></ul></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>quran-meta</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
diff --git a/docs/functions/checkValidSurahAyah.html b/docs/functions/checkValidSurahAyah.html
new file mode 100644
index 0000000..f7990c8
--- /dev/null
+++ b/docs/functions/checkValidSurahAyah.html
@@ -0,0 +1,6 @@
+<!DOCTYPE html><html class="default" lang="en"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>checkValidSurahAyah | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../modules.html">quran-meta</a></li><li><a href="checkValidSurahAyah.html">checkValidSurahAyah</a></li></ul><h1>Function checkValidSurahAyah</h1></div><section class="tsd-panel"><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="checkValidSurahAyah" class="tsd-anchor"></a><span class="tsd-kind-call-signature">check<wbr/>Valid<wbr/>Surah<wbr/>Ayah</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">surah</span>, <span class="tsd-kind-parameter">ayah</span>, <span class="tsd-kind-parameter">checkOnly</span><span class="tsd-signature-symbol">?</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">boolean</span><a href="#checkValidSurahAyah" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-comment tsd-typography"><p>Checks if the given Surah and Ayah (verse) numbers are valid.</p>
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">surah</span>: <span class="tsd-signature-type">number</span></span><div class="tsd-comment tsd-typography"><p>The Surah (chapter) number to check.</p>
+</div><div class="tsd-comment tsd-typography"></div></li><li><span><span class="tsd-kind-parameter">ayah</span>: <span class="tsd-signature-type">number</span></span><div class="tsd-comment tsd-typography"><p>The Ayah (verse) number to check.</p>
+</div><div class="tsd-comment tsd-typography"></div></li><li><span><span class="tsd-kind-parameter">checkOnly</span>: <span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol"> = false</span></span><div class="tsd-comment tsd-typography"><p>If true, the function will only check the validity and not throw an error.</p>
+</div><div class="tsd-comment tsd-typography"></div></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><p>True if the Surah and Ayah numbers are valid, false otherwise.</p>
+<div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/7ff9baaee85a66d9099133c3db867ac28679aa62/src/validation.ts#L32">validation.ts:32</a></li></ul></aside></li></ul></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>quran-meta</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
diff --git a/docs/functions/findAyaidBySurah.html b/docs/functions/findAyaidBySurah.html
index c19ad52..893b4c2 100644
--- a/docs/functions/findAyaidBySurah.html
+++ b/docs/functions/findAyaidBySurah.html
@@ -1,95 +1,5 @@
-<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>findAyaidBySurah | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script async src="../assets/search.js" id="search-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os"</script><header class="tsd-page-toolbar">
-<div class="tsd-toolbar-contents container">
-<div class="table-cell" id="tsd-search" data-base="..">
-<div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M15.7824 13.833L12.6666 10.7177C12.5259 10.5771 12.3353 10.499 12.1353 10.499H11.6259C12.4884 9.39596 13.001 8.00859 13.001 6.49937C13.001 2.90909 10.0914 0 6.50048 0C2.90959 0 0 2.90909 0 6.49937C0 10.0896 2.90959 12.9987 6.50048 12.9987C8.00996 12.9987 9.39756 12.4863 10.5008 11.6239V12.1332C10.5008 12.3332 10.5789 12.5238 10.7195 12.6644L13.8354 15.7797C14.1292 16.0734 14.6042 16.0734 14.8948 15.7797L15.7793 14.8954C16.0731 14.6017 16.0731 14.1267 15.7824 13.833ZM6.50048 10.499C4.29094 10.499 2.50018 8.71165 2.50018 6.49937C2.50018 4.29021 4.28781 2.49976 6.50048 2.49976C8.71001 2.49976 10.5008 4.28708 10.5008 6.49937C10.5008 8.70852 8.71314 10.499 6.50048 10.499Z" fill="var(--color-text)"></path></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div>
-<div class="field">
-<div id="tsd-toolbar-links"></div></div>
-<ul class="results">
-<li class="state loading">Preparing search index...</li>
-<li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div>
-<div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><rect x="1" y="3" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="7" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="11" width="14" height="2" fill="var(--color-text)"></rect></svg></a></div></div></header>
-<div class="container container-main">
-<div class="col-8 col-content">
-<div class="tsd-page-title">
-<ul class="tsd-breadcrumb">
-<li><a href="../modules.html">quran-meta</a></li>
-<li><a href="findAyaidBySurah.html">findAyaidBySurah</a></li></ul>
-<h1>Function findAyaidBySurah</h1></div>
-<section class="tsd-panel">
-<ul class="tsd-signatures tsd-kind-function">
-<li class="tsd-signature tsd-anchor-link" id="findAyaidBySurah">find<wbr/>Ayaid<wbr/>By<wbr/>Surah<span class="tsd-signature-symbol">(</span>surah<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, ayah<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="../types/AyahId.html" class="tsd-signature-type" data-tsd-kind="Type alias">AyahId</a><a href="#findAyaidBySurah" aria-label="Permalink" class="tsd-anchor-icon"><svg class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none" id="icon-anchor-a"></path><path d="M10 14a3.5 3.5 0 0 0 5 0l4 -4a3.5 3.5 0 0 0 -5 -5l-.5 .5" id="icon-anchor-b"></path><path d="M14 10a3.5 3.5 0 0 0 -5 0l-4 4a3.5 3.5 0 0 0 5 5l.5 -.5" id="icon-anchor-c"></path></svg></a></li>
-<li class="tsd-description">
-<div class="tsd-parameters">
-<h4 class="tsd-parameters-title">Parameters</h4>
-<ul class="tsd-parameter-list">
-<li>
-<h5>surah: <span class="tsd-signature-type">number</span></h5></li>
-<li>
-<h5>ayah: <span class="tsd-signature-type">number</span></h5></li></ul></div>
-<h4 class="tsd-returns-title">Returns <a href="../types/AyahId.html" class="tsd-signature-type" data-tsd-kind="Type alias">AyahId</a></h4><aside class="tsd-sources">
-<ul>
-<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/a8fc894/src/index.ts#L322">index.ts:322</a></li></ul></aside></li></ul></section></div>
-<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
-<div class="tsd-navigation settings">
-<details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Settings</h3></summary>
-<div class="tsd-accordion-details">
-<div class="tsd-filter-visibility">
-<h4 class="uppercase">Member Visibility</h4><form>
-<ul id="tsd-filter-options">
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div>
-<div class="tsd-theme-toggle">
-<h4 class="uppercase">Theme</h4><select id="theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div>
-<nav class="tsd-navigation primary">
-<details class="tsd-index-accordion" open><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Modules</h3></summary>
-<div class="tsd-accordion-details">
-<ul>
-<li><a href="../modules.html">quran-<wbr/>meta</a>
-<ul></ul></li></ul></div></details></nav>
-<nav class="tsd-navigation secondary menu-sticky">
-<ul>
-<li class="tsd-kind-type-alias"><a href="../types/AyahId.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-4194304-path"></rect><path d="M11.31 16V8.224H8.91V7.24H14.79V8.224H12.39V16H11.31Z" fill="var(--color-text)" id="icon-4194304-text"></path></svg>Ayah<wbr/>Id</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/AyahNo.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Ayah<wbr/>No</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Juz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/JuzMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Page.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/PageMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Sajda.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Sajda</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Surah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/SurahAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Ayah</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/SurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-variable"><a href="../variables/HizbQuarterList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-variable)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-32-path"></rect><path d="M11.106 16L8.85 7.24H9.966L11.454 13.192C11.558 13.608 11.646 13.996 11.718 14.356C11.79 14.708 11.842 14.976 11.874 15.16C11.906 14.976 11.954 14.708 12.018 14.356C12.09 13.996 12.178 13.608 12.282 13.192L13.758 7.24H14.85L12.582 16H11.106Z" fill="var(--color-text)" id="icon-32-text"></path></svg>Hizb<wbr/>Quarter<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/JuzList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Juz<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/ManzilList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Manzil<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/PageList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Page<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/RukuList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Ruku<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/SajdaList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sajda<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/SuraList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sura<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/meta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>meta</a></li>
-<li class="tsd-kind-variable"><a href="../variables/suraNamesEn.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>En</a></li>
-<li class="tsd-kind-variable"><a href="../variables/suraNamesRu.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>Ru</a></li>
-<li class="tsd-kind-function"><a href="ayaStringSplitter.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-function)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-64-path"></rect><path d="M9.39 16V7.24H14.55V8.224H10.446V11.128H14.238V12.112H10.47V16H9.39Z" fill="var(--color-text)" id="icon-64-text"></path></svg>aya<wbr/>String<wbr/>Splitter</a></li>
-<li class="current tsd-kind-function"><a href="findAyaidBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Ayaid<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="findJuz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz</a></li>
-<li class="tsd-kind-function"><a href="findJuzAndShift.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>And<wbr/>Shift</a></li>
-<li class="tsd-kind-function"><a href="findJuzByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="findJuzHizb.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb</a></li>
-<li class="tsd-kind-function"><a href="findJuzHizbByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="findJuzMetaBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Meta<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="findPage.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Page</a></li>
-<li class="tsd-kind-function"><a href="findRangeAroundAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Range<wbr/>Around<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="findSurahByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Surah<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="getAyaCountinSura.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Aya<wbr/>Countin<wbr/>Sura</a></li>
-<li class="tsd-kind-function"><a href="getSurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="isAyahJuzFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Juz<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="isAyahPageFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Page<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="nextAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>next<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="pageMeta-1.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>page<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="prevAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>prev<wbr/>Ayah</a></li></ul></nav></div></div>
-<div class="container tsd-generator">
-<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></div>
-<div class="overlay"></div><script src="../assets/main.js"></script></body></html>
\ No newline at end of file
+<!DOCTYPE html><html class="default" lang="en"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>findAyaidBySurah | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../modules.html">quran-meta</a></li><li><a href="findAyaidBySurah.html">findAyaidBySurah</a></li></ul><h1>Function findAyaidBySurah</h1></div><section class="tsd-panel"><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="findAyaidBySurah" class="tsd-anchor"></a><span class="tsd-kind-call-signature">find<wbr/>Ayaid<wbr/>By<wbr/>Surah</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">surah</span>, <span class="tsd-kind-parameter">ayah</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="../types/AyahId.html" class="tsd-signature-type tsd-kind-type-alias">AyahId</a><a href="#findAyaidBySurah" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-comment tsd-typography"><p>Get the ayah ID for the given surah and ayah number.</p>
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">surah</span>: <span class="tsd-signature-type">number</span></span><div class="tsd-comment tsd-typography"><p>The surah number.</p>
+</div><div class="tsd-comment tsd-typography"></div></li><li><span><span class="tsd-kind-parameter">ayah</span>: <span class="tsd-signature-type">number</span></span><div class="tsd-comment tsd-typography"><p>The ayah number within the surah.</p>
+</div><div class="tsd-comment tsd-typography"></div></li></ul></div><h4 class="tsd-returns-title">Returns <a href="../types/AyahId.html" class="tsd-signature-type tsd-kind-type-alias">AyahId</a></h4><p>The ayah ID for the given surah and ayah number.</p>
+<div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/7ff9baaee85a66d9099133c3db867ac28679aa62/src/findAyaidBySurah.ts#L11">findAyaidBySurah.ts:11</a></li></ul></aside></li></ul></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>quran-meta</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
diff --git a/docs/functions/findJuz.html b/docs/functions/findJuz.html
index 524cee7..35a9aea 100644
--- a/docs/functions/findJuz.html
+++ b/docs/functions/findJuz.html
@@ -1,97 +1,6 @@
-<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>findJuz | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script async src="../assets/search.js" id="search-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os"</script><header class="tsd-page-toolbar">
-<div class="tsd-toolbar-contents container">
-<div class="table-cell" id="tsd-search" data-base="..">
-<div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M15.7824 13.833L12.6666 10.7177C12.5259 10.5771 12.3353 10.499 12.1353 10.499H11.6259C12.4884 9.39596 13.001 8.00859 13.001 6.49937C13.001 2.90909 10.0914 0 6.50048 0C2.90959 0 0 2.90909 0 6.49937C0 10.0896 2.90959 12.9987 6.50048 12.9987C8.00996 12.9987 9.39756 12.4863 10.5008 11.6239V12.1332C10.5008 12.3332 10.5789 12.5238 10.7195 12.6644L13.8354 15.7797C14.1292 16.0734 14.6042 16.0734 14.8948 15.7797L15.7793 14.8954C16.0731 14.6017 16.0731 14.1267 15.7824 13.833ZM6.50048 10.499C4.29094 10.499 2.50018 8.71165 2.50018 6.49937C2.50018 4.29021 4.28781 2.49976 6.50048 2.49976C8.71001 2.49976 10.5008 4.28708 10.5008 6.49937C10.5008 8.70852 8.71314 10.499 6.50048 10.499Z" fill="var(--color-text)"></path></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div>
-<div class="field">
-<div id="tsd-toolbar-links"></div></div>
-<ul class="results">
-<li class="state loading">Preparing search index...</li>
-<li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div>
-<div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><rect x="1" y="3" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="7" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="11" width="14" height="2" fill="var(--color-text)"></rect></svg></a></div></div></header>
-<div class="container container-main">
-<div class="col-8 col-content">
-<div class="tsd-page-title">
-<ul class="tsd-breadcrumb">
-<li><a href="../modules.html">quran-meta</a></li>
-<li><a href="findJuz.html">findJuz</a></li></ul>
-<h1>Function findJuz</h1></div>
-<section class="tsd-panel">
-<ul class="tsd-signatures tsd-kind-function">
-<li class="tsd-signature tsd-anchor-link" id="findJuz">find<wbr/>Juz<span class="tsd-signature-symbol">(</span>surah<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, ayah<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">number</span>, ayahMode<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="../types/Juz.html" class="tsd-signature-type" data-tsd-kind="Type alias">Juz</a><a href="#findJuz" aria-label="Permalink" class="tsd-anchor-icon"><svg class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none" id="icon-anchor-a"></path><path d="M10 14a3.5 3.5 0 0 0 5 0l4 -4a3.5 3.5 0 0 0 -5 -5l-.5 .5" id="icon-anchor-b"></path><path d="M14 10a3.5 3.5 0 0 0 -5 0l-4 4a3.5 3.5 0 0 0 5 5l.5 -.5" id="icon-anchor-c"></path></svg></a></li>
-<li class="tsd-description">
-<div class="tsd-parameters">
-<h4 class="tsd-parameters-title">Parameters</h4>
-<ul class="tsd-parameter-list">
-<li>
-<h5>surah: <span class="tsd-signature-type">number</span></h5></li>
-<li>
-<h5>ayah: <span class="tsd-signature-type">number</span><span class="tsd-signature-symbol"> = 1</span></h5></li>
-<li>
-<h5>ayahMode: <span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol"> = false</span></h5></li></ul></div>
-<h4 class="tsd-returns-title">Returns <a href="../types/Juz.html" class="tsd-signature-type" data-tsd-kind="Type alias">Juz</a></h4><aside class="tsd-sources">
-<ul>
-<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/a8fc894/src/index.ts#L175">index.ts:175</a></li></ul></aside></li></ul></section></div>
-<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
-<div class="tsd-navigation settings">
-<details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Settings</h3></summary>
-<div class="tsd-accordion-details">
-<div class="tsd-filter-visibility">
-<h4 class="uppercase">Member Visibility</h4><form>
-<ul id="tsd-filter-options">
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div>
-<div class="tsd-theme-toggle">
-<h4 class="uppercase">Theme</h4><select id="theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div>
-<nav class="tsd-navigation primary">
-<details class="tsd-index-accordion" open><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Modules</h3></summary>
-<div class="tsd-accordion-details">
-<ul>
-<li><a href="../modules.html">quran-<wbr/>meta</a>
-<ul></ul></li></ul></div></details></nav>
-<nav class="tsd-navigation secondary menu-sticky">
-<ul>
-<li class="tsd-kind-type-alias"><a href="../types/AyahId.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-4194304-path"></rect><path d="M11.31 16V8.224H8.91V7.24H14.79V8.224H12.39V16H11.31Z" fill="var(--color-text)" id="icon-4194304-text"></path></svg>Ayah<wbr/>Id</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/AyahNo.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Ayah<wbr/>No</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Juz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/JuzMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Page.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/PageMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Sajda.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Sajda</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Surah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/SurahAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Ayah</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/SurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-variable"><a href="../variables/HizbQuarterList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-variable)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-32-path"></rect><path d="M11.106 16L8.85 7.24H9.966L11.454 13.192C11.558 13.608 11.646 13.996 11.718 14.356C11.79 14.708 11.842 14.976 11.874 15.16C11.906 14.976 11.954 14.708 12.018 14.356C12.09 13.996 12.178 13.608 12.282 13.192L13.758 7.24H14.85L12.582 16H11.106Z" fill="var(--color-text)" id="icon-32-text"></path></svg>Hizb<wbr/>Quarter<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/JuzList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Juz<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/ManzilList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Manzil<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/PageList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Page<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/RukuList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Ruku<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/SajdaList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sajda<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/SuraList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sura<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/meta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>meta</a></li>
-<li class="tsd-kind-variable"><a href="../variables/suraNamesEn.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>En</a></li>
-<li class="tsd-kind-variable"><a href="../variables/suraNamesRu.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>Ru</a></li>
-<li class="tsd-kind-function"><a href="ayaStringSplitter.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-function)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-64-path"></rect><path d="M9.39 16V7.24H14.55V8.224H10.446V11.128H14.238V12.112H10.47V16H9.39Z" fill="var(--color-text)" id="icon-64-text"></path></svg>aya<wbr/>String<wbr/>Splitter</a></li>
-<li class="tsd-kind-function"><a href="findAyaidBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Ayaid<wbr/>By<wbr/>Surah</a></li>
-<li class="current tsd-kind-function"><a href="findJuz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz</a></li>
-<li class="tsd-kind-function"><a href="findJuzAndShift.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>And<wbr/>Shift</a></li>
-<li class="tsd-kind-function"><a href="findJuzByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="findJuzHizb.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb</a></li>
-<li class="tsd-kind-function"><a href="findJuzHizbByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="findJuzMetaBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Meta<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="findPage.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Page</a></li>
-<li class="tsd-kind-function"><a href="findRangeAroundAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Range<wbr/>Around<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="findSurahByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Surah<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="getAyaCountinSura.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Aya<wbr/>Countin<wbr/>Sura</a></li>
-<li class="tsd-kind-function"><a href="getSurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="isAyahJuzFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Juz<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="isAyahPageFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Page<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="nextAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>next<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="pageMeta-1.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>page<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="prevAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>prev<wbr/>Ayah</a></li></ul></nav></div></div>
-<div class="container tsd-generator">
-<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></div>
-<div class="overlay"></div><script src="../assets/main.js"></script></body></html>
\ No newline at end of file
+<!DOCTYPE html><html class="default" lang="en"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>findJuz | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../modules.html">quran-meta</a></li><li><a href="findJuz.html">findJuz</a></li></ul><h1>Function findJuz</h1></div><section class="tsd-panel"><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="findJuz" class="tsd-anchor"></a><span class="tsd-kind-call-signature">find<wbr/>Juz</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">surah</span>, <span class="tsd-kind-parameter">ayah</span><span class="tsd-signature-symbol">?</span>, <span class="tsd-kind-parameter">ayahMode</span><span class="tsd-signature-symbol">?</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="../types/Juz.html" class="tsd-signature-type tsd-kind-type-alias">Juz</a><a href="#findJuz" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-comment tsd-typography"><p>Finds the Juz (part) of the Quran that the given Ayah (verse) belongs to.</p>
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">surah</span>: <span class="tsd-signature-type">number</span></span><div class="tsd-comment tsd-typography"><p>The Surah (chapter) number.</p>
+</div><div class="tsd-comment tsd-typography"></div></li><li><span><span class="tsd-kind-parameter">ayah</span>: <span class="tsd-signature-type">number</span><span class="tsd-signature-symbol"> = 1</span></span><div class="tsd-comment tsd-typography"><p>The Ayah (verse) number. Defaults to 1 if not provided.</p>
+</div><div class="tsd-comment tsd-typography"></div></li><li><span><span class="tsd-kind-parameter">ayahMode</span>: <span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol"> = false</span></span><div class="tsd-comment tsd-typography"><p>If true, the <code>ayah</code> parameter is treated as an Ayah ID instead of a Surah and Ayah number.</p>
+</div><div class="tsd-comment tsd-typography"></div></li></ul></div><h4 class="tsd-returns-title">Returns <a href="../types/Juz.html" class="tsd-signature-type tsd-kind-type-alias">Juz</a></h4><p>The Juz (part) number that the given Ayah belongs to.</p>
+<div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/7ff9baaee85a66d9099133c3db867ac28679aa62/src/findJuz.ts#L14">findJuz.ts:14</a></li></ul></aside></li></ul></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>quran-meta</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
diff --git a/docs/functions/findJuzAndShift.html b/docs/functions/findJuzAndShift.html
index 03c4063..5299ae8 100644
--- a/docs/functions/findJuzAndShift.html
+++ b/docs/functions/findJuzAndShift.html
@@ -1,107 +1,11 @@
-<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>findJuzAndShift | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script async src="../assets/search.js" id="search-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os"</script><header class="tsd-page-toolbar">
-<div class="tsd-toolbar-contents container">
-<div class="table-cell" id="tsd-search" data-base="..">
-<div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M15.7824 13.833L12.6666 10.7177C12.5259 10.5771 12.3353 10.499 12.1353 10.499H11.6259C12.4884 9.39596 13.001 8.00859 13.001 6.49937C13.001 2.90909 10.0914 0 6.50048 0C2.90959 0 0 2.90909 0 6.49937C0 10.0896 2.90959 12.9987 6.50048 12.9987C8.00996 12.9987 9.39756 12.4863 10.5008 11.6239V12.1332C10.5008 12.3332 10.5789 12.5238 10.7195 12.6644L13.8354 15.7797C14.1292 16.0734 14.6042 16.0734 14.8948 15.7797L15.7793 14.8954C16.0731 14.6017 16.0731 14.1267 15.7824 13.833ZM6.50048 10.499C4.29094 10.499 2.50018 8.71165 2.50018 6.49937C2.50018 4.29021 4.28781 2.49976 6.50048 2.49976C8.71001 2.49976 10.5008 4.28708 10.5008 6.49937C10.5008 8.70852 8.71314 10.499 6.50048 10.499Z" fill="var(--color-text)"></path></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div>
-<div class="field">
-<div id="tsd-toolbar-links"></div></div>
-<ul class="results">
-<li class="state loading">Preparing search index...</li>
-<li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div>
-<div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><rect x="1" y="3" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="7" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="11" width="14" height="2" fill="var(--color-text)"></rect></svg></a></div></div></header>
-<div class="container container-main">
-<div class="col-8 col-content">
-<div class="tsd-page-title">
-<ul class="tsd-breadcrumb">
-<li><a href="../modules.html">quran-meta</a></li>
-<li><a href="findJuzAndShift.html">findJuzAndShift</a></li></ul>
-<h1>Function findJuzAndShift</h1></div>
-<section class="tsd-panel">
-<ul class="tsd-signatures tsd-kind-function">
-<li class="tsd-signature tsd-anchor-link" id="findJuzAndShift">find<wbr/>Juz<wbr/>And<wbr/>Shift<span class="tsd-signature-symbol">(</span>surah<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, ayah<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, ayahMode<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">{ </span><br/><span>    </span>ayahsBetweenJuzSurah<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">; </span><br/><span>    </span>juz<span class="tsd-signature-symbol">: </span><a href="../types/Juz.html" class="tsd-signature-type" data-tsd-kind="Type alias">Juz</a><span class="tsd-signature-symbol">; </span><br/><span>    </span>leftAyahId<span class="tsd-signature-symbol">: </span><a href="../types/AyahId.html" class="tsd-signature-type" data-tsd-kind="Type alias">AyahId</a><span class="tsd-signature-symbol">; </span><br/><span class="tsd-signature-symbol">}</span><a href="#findJuzAndShift" aria-label="Permalink" class="tsd-anchor-icon"><svg class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none" id="icon-anchor-a"></path><path d="M10 14a3.5 3.5 0 0 0 5 0l4 -4a3.5 3.5 0 0 0 -5 -5l-.5 .5" id="icon-anchor-b"></path><path d="M14 10a3.5 3.5 0 0 0 -5 0l-4 4a3.5 3.5 0 0 0 5 5l.5 -.5" id="icon-anchor-c"></path></svg></a></li>
-<li class="tsd-description">
-<div class="tsd-comment tsd-typography"><p>Find juz containing ayah</p>
-
-<h3>Returns</h3></div>
-<div class="tsd-parameters">
-<h4 class="tsd-parameters-title">Parameters</h4>
-<ul class="tsd-parameter-list">
-<li>
-<h5>surah: <span class="tsd-signature-type">number</span></h5></li>
-<li>
-<h5>ayah: <span class="tsd-signature-type">number</span></h5></li>
-<li>
-<h5>ayahMode: <span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol"> = false</span></h5></li></ul></div>
-<h4 class="tsd-returns-title">Returns <span class="tsd-signature-symbol">{ </span><br/><span>    </span>ayahsBetweenJuzSurah<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">; </span><br/><span>    </span>juz<span class="tsd-signature-symbol">: </span><a href="../types/Juz.html" class="tsd-signature-type" data-tsd-kind="Type alias">Juz</a><span class="tsd-signature-symbol">; </span><br/><span>    </span>leftAyahId<span class="tsd-signature-symbol">: </span><a href="../types/AyahId.html" class="tsd-signature-type" data-tsd-kind="Type alias">AyahId</a><span class="tsd-signature-symbol">; </span><br/><span class="tsd-signature-symbol">}</span></h4>
-<ul class="tsd-parameters">
-<li class="tsd-parameter">
-<h5>ayahs<wbr/>Between<wbr/>Juz<wbr/>Surah<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span></h5></li>
-<li class="tsd-parameter">
-<h5>juz<span class="tsd-signature-symbol">: </span><a href="../types/Juz.html" class="tsd-signature-type" data-tsd-kind="Type alias">Juz</a></h5></li>
-<li class="tsd-parameter">
-<h5>left<wbr/>Ayah<wbr/>Id<span class="tsd-signature-symbol">: </span><a href="../types/AyahId.html" class="tsd-signature-type" data-tsd-kind="Type alias">AyahId</a></h5></li></ul><aside class="tsd-sources">
+<!DOCTYPE html><html class="default" lang="en"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>findJuzAndShift | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../modules.html">quran-meta</a></li><li><a href="findJuzAndShift.html">findJuzAndShift</a></li></ul><h1>Function findJuzAndShift</h1></div><section class="tsd-panel"><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="findJuzAndShift" class="tsd-anchor"></a><span class="tsd-kind-call-signature">find<wbr/>Juz<wbr/>And<wbr/>Shift</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">surah</span>, <span class="tsd-kind-parameter">ayah</span>, <span class="tsd-kind-parameter">ayahMode</span><span class="tsd-signature-symbol">?</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">{ </span><br/><span>    </span><span class="tsd-kind-property">ayahsBetweenJuzSurah</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">; </span><br/><span>    </span><span class="tsd-kind-property">juz</span><span class="tsd-signature-symbol">: </span><a href="../types/Juz.html" class="tsd-signature-type tsd-kind-type-alias">Juz</a><span class="tsd-signature-symbol">; </span><br/><span>    </span><span class="tsd-kind-property">leftAyahId</span><span class="tsd-signature-symbol">: </span><a href="../types/AyahId.html" class="tsd-signature-type tsd-kind-type-alias">AyahId</a><span class="tsd-signature-symbol">; </span><br/><span class="tsd-signature-symbol">}</span><a href="#findJuzAndShift" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-comment tsd-typography"><p>Finds the juz (section) that contains the specified ayah (verse) and calculates the number of ayahs between the start of the juz and the start of the surah (chapter) that contains the ayah.</p>
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">surah</span>: <span class="tsd-signature-type">number</span></span><div class="tsd-comment tsd-typography"><p>The surah (chapter) that contains the ayah.</p>
+</div><div class="tsd-comment tsd-typography"></div></li><li><span><span class="tsd-kind-parameter">ayah</span>: <span class="tsd-signature-type">number</span></span><div class="tsd-comment tsd-typography"><p>The ayah (verse) number.</p>
+</div><div class="tsd-comment tsd-typography"></div></li><li><span><span class="tsd-kind-parameter">ayahMode</span>: <span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol"> = false</span></span><div class="tsd-comment tsd-typography"><p>A boolean flag indicating whether the <code>ayah</code> parameter represents an ayah number or an ayah ID.</p>
+</div><div class="tsd-comment tsd-typography"></div></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-symbol">{ </span><br/><span>    </span><span class="tsd-kind-property">ayahsBetweenJuzSurah</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">; </span><br/><span>    </span><span class="tsd-kind-property">juz</span><span class="tsd-signature-symbol">: </span><a href="../types/Juz.html" class="tsd-signature-type tsd-kind-type-alias">Juz</a><span class="tsd-signature-symbol">; </span><br/><span>    </span><span class="tsd-kind-property">leftAyahId</span><span class="tsd-signature-symbol">: </span><a href="../types/AyahId.html" class="tsd-signature-type tsd-kind-type-alias">AyahId</a><span class="tsd-signature-symbol">; </span><br/><span class="tsd-signature-symbol">}</span></h4><p>An object containing the following properties:</p>
 <ul>
-<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/a8fc894/src/index.ts#L241">index.ts:241</a></li></ul></aside></li></ul></section></div>
-<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
-<div class="tsd-navigation settings">
-<details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Settings</h3></summary>
-<div class="tsd-accordion-details">
-<div class="tsd-filter-visibility">
-<h4 class="uppercase">Member Visibility</h4><form>
-<ul id="tsd-filter-options">
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div>
-<div class="tsd-theme-toggle">
-<h4 class="uppercase">Theme</h4><select id="theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div>
-<nav class="tsd-navigation primary">
-<details class="tsd-index-accordion" open><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Modules</h3></summary>
-<div class="tsd-accordion-details">
-<ul>
-<li><a href="../modules.html">quran-<wbr/>meta</a>
-<ul></ul></li></ul></div></details></nav>
-<nav class="tsd-navigation secondary menu-sticky">
-<ul>
-<li class="tsd-kind-type-alias"><a href="../types/AyahId.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-4194304-path"></rect><path d="M11.31 16V8.224H8.91V7.24H14.79V8.224H12.39V16H11.31Z" fill="var(--color-text)" id="icon-4194304-text"></path></svg>Ayah<wbr/>Id</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/AyahNo.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Ayah<wbr/>No</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Juz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/JuzMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Page.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/PageMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Sajda.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Sajda</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Surah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/SurahAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Ayah</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/SurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-variable"><a href="../variables/HizbQuarterList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-variable)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-32-path"></rect><path d="M11.106 16L8.85 7.24H9.966L11.454 13.192C11.558 13.608 11.646 13.996 11.718 14.356C11.79 14.708 11.842 14.976 11.874 15.16C11.906 14.976 11.954 14.708 12.018 14.356C12.09 13.996 12.178 13.608 12.282 13.192L13.758 7.24H14.85L12.582 16H11.106Z" fill="var(--color-text)" id="icon-32-text"></path></svg>Hizb<wbr/>Quarter<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/JuzList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Juz<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/ManzilList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Manzil<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/PageList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Page<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/RukuList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Ruku<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/SajdaList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sajda<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/SuraList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sura<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/meta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>meta</a></li>
-<li class="tsd-kind-variable"><a href="../variables/suraNamesEn.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>En</a></li>
-<li class="tsd-kind-variable"><a href="../variables/suraNamesRu.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>Ru</a></li>
-<li class="tsd-kind-function"><a href="ayaStringSplitter.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-function)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-64-path"></rect><path d="M9.39 16V7.24H14.55V8.224H10.446V11.128H14.238V12.112H10.47V16H9.39Z" fill="var(--color-text)" id="icon-64-text"></path></svg>aya<wbr/>String<wbr/>Splitter</a></li>
-<li class="tsd-kind-function"><a href="findAyaidBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Ayaid<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="findJuz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz</a></li>
-<li class="current tsd-kind-function"><a href="findJuzAndShift.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>And<wbr/>Shift</a></li>
-<li class="tsd-kind-function"><a href="findJuzByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="findJuzHizb.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb</a></li>
-<li class="tsd-kind-function"><a href="findJuzHizbByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="findJuzMetaBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Meta<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="findPage.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Page</a></li>
-<li class="tsd-kind-function"><a href="findRangeAroundAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Range<wbr/>Around<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="findSurahByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Surah<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="getAyaCountinSura.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Aya<wbr/>Countin<wbr/>Sura</a></li>
-<li class="tsd-kind-function"><a href="getSurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="isAyahJuzFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Juz<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="isAyahPageFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Page<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="nextAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>next<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="pageMeta-1.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>page<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="prevAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>prev<wbr/>Ayah</a></li></ul></nav></div></div>
-<div class="container tsd-generator">
-<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></div>
-<div class="overlay"></div><script src="../assets/main.js"></script></body></html>
\ No newline at end of file
+<li><code>juz</code>: The juz (section) that contains the ayah.</li>
+<li><code>leftAyahId</code>: The ayah ID of the first ayah in the juz.</li>
+<li><code>ayahsBetweenJuzSurah</code>: The number of ayahs between the start of the juz and the start of the surah (positive if the surah starts is in the juz, negative if the surah starts before the juz).</li>
+</ul>
+<ul class="tsd-parameters"><li class="tsd-parameter"><h5><span class="tsd-kind-property">ayahs<wbr/>Between<wbr/>Juz<wbr/>Surah</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span></h5></li><li class="tsd-parameter"><h5><span class="tsd-kind-property">juz</span><span class="tsd-signature-symbol">: </span><a href="../types/Juz.html" class="tsd-signature-type tsd-kind-type-alias">Juz</a></h5></li><li class="tsd-parameter"><h5><span class="tsd-kind-property">left<wbr/>Ayah<wbr/>Id</span><span class="tsd-signature-symbol">: </span><a href="../types/AyahId.html" class="tsd-signature-type tsd-kind-type-alias">AyahId</a></h5></li></ul><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/7ff9baaee85a66d9099133c3db867ac28679aa62/src/findJuzAndShift.ts#L20">findJuzAndShift.ts:20</a></li></ul></aside></li></ul></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>quran-meta</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
diff --git a/docs/functions/findJuzByAyaid.html b/docs/functions/findJuzByAyaid.html
index 60fb650..b0bc85d 100644
--- a/docs/functions/findJuzByAyaid.html
+++ b/docs/functions/findJuzByAyaid.html
@@ -1,93 +1,4 @@
-<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>findJuzByAyaid | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script async src="../assets/search.js" id="search-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os"</script><header class="tsd-page-toolbar">
-<div class="tsd-toolbar-contents container">
-<div class="table-cell" id="tsd-search" data-base="..">
-<div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M15.7824 13.833L12.6666 10.7177C12.5259 10.5771 12.3353 10.499 12.1353 10.499H11.6259C12.4884 9.39596 13.001 8.00859 13.001 6.49937C13.001 2.90909 10.0914 0 6.50048 0C2.90959 0 0 2.90909 0 6.49937C0 10.0896 2.90959 12.9987 6.50048 12.9987C8.00996 12.9987 9.39756 12.4863 10.5008 11.6239V12.1332C10.5008 12.3332 10.5789 12.5238 10.7195 12.6644L13.8354 15.7797C14.1292 16.0734 14.6042 16.0734 14.8948 15.7797L15.7793 14.8954C16.0731 14.6017 16.0731 14.1267 15.7824 13.833ZM6.50048 10.499C4.29094 10.499 2.50018 8.71165 2.50018 6.49937C2.50018 4.29021 4.28781 2.49976 6.50048 2.49976C8.71001 2.49976 10.5008 4.28708 10.5008 6.49937C10.5008 8.70852 8.71314 10.499 6.50048 10.499Z" fill="var(--color-text)"></path></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div>
-<div class="field">
-<div id="tsd-toolbar-links"></div></div>
-<ul class="results">
-<li class="state loading">Preparing search index...</li>
-<li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div>
-<div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><rect x="1" y="3" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="7" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="11" width="14" height="2" fill="var(--color-text)"></rect></svg></a></div></div></header>
-<div class="container container-main">
-<div class="col-8 col-content">
-<div class="tsd-page-title">
-<ul class="tsd-breadcrumb">
-<li><a href="../modules.html">quran-meta</a></li>
-<li><a href="findJuzByAyaid.html">findJuzByAyaid</a></li></ul>
-<h1>Function findJuzByAyaid</h1></div>
-<section class="tsd-panel">
-<ul class="tsd-signatures tsd-kind-function">
-<li class="tsd-signature tsd-anchor-link" id="findJuzByAyaid">find<wbr/>Juz<wbr/>By<wbr/>Ayaid<span class="tsd-signature-symbol">(</span>ayaId<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="../types/Juz.html" class="tsd-signature-type" data-tsd-kind="Type alias">Juz</a><a href="#findJuzByAyaid" aria-label="Permalink" class="tsd-anchor-icon"><svg class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none" id="icon-anchor-a"></path><path d="M10 14a3.5 3.5 0 0 0 5 0l4 -4a3.5 3.5 0 0 0 -5 -5l-.5 .5" id="icon-anchor-b"></path><path d="M14 10a3.5 3.5 0 0 0 -5 0l-4 4a3.5 3.5 0 0 0 5 5l.5 -.5" id="icon-anchor-c"></path></svg></a></li>
-<li class="tsd-description">
-<div class="tsd-parameters">
-<h4 class="tsd-parameters-title">Parameters</h4>
-<ul class="tsd-parameter-list">
-<li>
-<h5>ayaId: <span class="tsd-signature-type">number</span></h5></li></ul></div>
-<h4 class="tsd-returns-title">Returns <a href="../types/Juz.html" class="tsd-signature-type" data-tsd-kind="Type alias">Juz</a></h4><aside class="tsd-sources">
-<ul>
-<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/a8fc894/src/index.ts#L153">index.ts:153</a></li></ul></aside></li></ul></section></div>
-<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
-<div class="tsd-navigation settings">
-<details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Settings</h3></summary>
-<div class="tsd-accordion-details">
-<div class="tsd-filter-visibility">
-<h4 class="uppercase">Member Visibility</h4><form>
-<ul id="tsd-filter-options">
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div>
-<div class="tsd-theme-toggle">
-<h4 class="uppercase">Theme</h4><select id="theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div>
-<nav class="tsd-navigation primary">
-<details class="tsd-index-accordion" open><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Modules</h3></summary>
-<div class="tsd-accordion-details">
-<ul>
-<li><a href="../modules.html">quran-<wbr/>meta</a>
-<ul></ul></li></ul></div></details></nav>
-<nav class="tsd-navigation secondary menu-sticky">
-<ul>
-<li class="tsd-kind-type-alias"><a href="../types/AyahId.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-4194304-path"></rect><path d="M11.31 16V8.224H8.91V7.24H14.79V8.224H12.39V16H11.31Z" fill="var(--color-text)" id="icon-4194304-text"></path></svg>Ayah<wbr/>Id</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/AyahNo.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Ayah<wbr/>No</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Juz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/JuzMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Page.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/PageMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Sajda.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Sajda</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Surah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/SurahAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Ayah</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/SurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-variable"><a href="../variables/HizbQuarterList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-variable)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-32-path"></rect><path d="M11.106 16L8.85 7.24H9.966L11.454 13.192C11.558 13.608 11.646 13.996 11.718 14.356C11.79 14.708 11.842 14.976 11.874 15.16C11.906 14.976 11.954 14.708 12.018 14.356C12.09 13.996 12.178 13.608 12.282 13.192L13.758 7.24H14.85L12.582 16H11.106Z" fill="var(--color-text)" id="icon-32-text"></path></svg>Hizb<wbr/>Quarter<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/JuzList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Juz<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/ManzilList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Manzil<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/PageList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Page<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/RukuList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Ruku<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/SajdaList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sajda<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/SuraList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sura<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/meta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>meta</a></li>
-<li class="tsd-kind-variable"><a href="../variables/suraNamesEn.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>En</a></li>
-<li class="tsd-kind-variable"><a href="../variables/suraNamesRu.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>Ru</a></li>
-<li class="tsd-kind-function"><a href="ayaStringSplitter.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-function)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-64-path"></rect><path d="M9.39 16V7.24H14.55V8.224H10.446V11.128H14.238V12.112H10.47V16H9.39Z" fill="var(--color-text)" id="icon-64-text"></path></svg>aya<wbr/>String<wbr/>Splitter</a></li>
-<li class="tsd-kind-function"><a href="findAyaidBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Ayaid<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="findJuz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz</a></li>
-<li class="tsd-kind-function"><a href="findJuzAndShift.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>And<wbr/>Shift</a></li>
-<li class="current tsd-kind-function"><a href="findJuzByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="findJuzHizb.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb</a></li>
-<li class="tsd-kind-function"><a href="findJuzHizbByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="findJuzMetaBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Meta<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="findPage.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Page</a></li>
-<li class="tsd-kind-function"><a href="findRangeAroundAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Range<wbr/>Around<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="findSurahByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Surah<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="getAyaCountinSura.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Aya<wbr/>Countin<wbr/>Sura</a></li>
-<li class="tsd-kind-function"><a href="getSurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="isAyahJuzFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Juz<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="isAyahPageFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Page<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="nextAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>next<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="pageMeta-1.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>page<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="prevAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>prev<wbr/>Ayah</a></li></ul></nav></div></div>
-<div class="container tsd-generator">
-<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></div>
-<div class="overlay"></div><script src="../assets/main.js"></script></body></html>
\ No newline at end of file
+<!DOCTYPE html><html class="default" lang="en"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>findJuzByAyaid | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../modules.html">quran-meta</a></li><li><a href="findJuzByAyaid.html">findJuzByAyaid</a></li></ul><h1>Function findJuzByAyaid</h1></div><section class="tsd-panel"><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="findJuzByAyaid" class="tsd-anchor"></a><span class="tsd-kind-call-signature">find<wbr/>Juz<wbr/>By<wbr/>Ayaid</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">ayaId</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="../types/Juz.html" class="tsd-signature-type tsd-kind-type-alias">Juz</a><a href="#findJuzByAyaid" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-comment tsd-typography"><p>Finds the Juz (part) of the Quran that contains the given Ayah (verse) ID.</p>
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">ayaId</span>: <span class="tsd-signature-type">number</span></span><div class="tsd-comment tsd-typography"><p>The ID of the Ayah (verse) to find the Juz for.</p>
+</div><div class="tsd-comment tsd-typography"></div></li></ul></div><h4 class="tsd-returns-title">Returns <a href="../types/Juz.html" class="tsd-signature-type tsd-kind-type-alias">Juz</a></h4><p>The Juz (part) of the Quran that contains the given Ayah ID.</p>
+<div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/7ff9baaee85a66d9099133c3db867ac28679aa62/src/findJuzByAyaid.ts#L11">findJuzByAyaid.ts:11</a></li></ul></aside></li></ul></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>quran-meta</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
diff --git a/docs/functions/findJuzHizb.html b/docs/functions/findJuzHizb.html
index a885d29..c926937 100644
--- a/docs/functions/findJuzHizb.html
+++ b/docs/functions/findJuzHizb.html
@@ -1,97 +1,6 @@
-<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>findJuzHizb | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script async src="../assets/search.js" id="search-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os"</script><header class="tsd-page-toolbar">
-<div class="tsd-toolbar-contents container">
-<div class="table-cell" id="tsd-search" data-base="..">
-<div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M15.7824 13.833L12.6666 10.7177C12.5259 10.5771 12.3353 10.499 12.1353 10.499H11.6259C12.4884 9.39596 13.001 8.00859 13.001 6.49937C13.001 2.90909 10.0914 0 6.50048 0C2.90959 0 0 2.90909 0 6.49937C0 10.0896 2.90959 12.9987 6.50048 12.9987C8.00996 12.9987 9.39756 12.4863 10.5008 11.6239V12.1332C10.5008 12.3332 10.5789 12.5238 10.7195 12.6644L13.8354 15.7797C14.1292 16.0734 14.6042 16.0734 14.8948 15.7797L15.7793 14.8954C16.0731 14.6017 16.0731 14.1267 15.7824 13.833ZM6.50048 10.499C4.29094 10.499 2.50018 8.71165 2.50018 6.49937C2.50018 4.29021 4.28781 2.49976 6.50048 2.49976C8.71001 2.49976 10.5008 4.28708 10.5008 6.49937C10.5008 8.70852 8.71314 10.499 6.50048 10.499Z" fill="var(--color-text)"></path></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div>
-<div class="field">
-<div id="tsd-toolbar-links"></div></div>
-<ul class="results">
-<li class="state loading">Preparing search index...</li>
-<li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div>
-<div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><rect x="1" y="3" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="7" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="11" width="14" height="2" fill="var(--color-text)"></rect></svg></a></div></div></header>
-<div class="container container-main">
-<div class="col-8 col-content">
-<div class="tsd-page-title">
-<ul class="tsd-breadcrumb">
-<li><a href="../modules.html">quran-meta</a></li>
-<li><a href="findJuzHizb.html">findJuzHizb</a></li></ul>
-<h1>Function findJuzHizb</h1></div>
-<section class="tsd-panel">
-<ul class="tsd-signatures tsd-kind-function">
-<li class="tsd-signature tsd-anchor-link" id="findJuzHizb">find<wbr/>Juz<wbr/>Hizb<span class="tsd-signature-symbol">(</span>surah<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, ayah<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">number</span>, ayahMode<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">JuzHizb</span><a href="#findJuzHizb" aria-label="Permalink" class="tsd-anchor-icon"><svg class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none" id="icon-anchor-a"></path><path d="M10 14a3.5 3.5 0 0 0 5 0l4 -4a3.5 3.5 0 0 0 -5 -5l-.5 .5" id="icon-anchor-b"></path><path d="M14 10a3.5 3.5 0 0 0 -5 0l-4 4a3.5 3.5 0 0 0 5 5l.5 -.5" id="icon-anchor-c"></path></svg></a></li>
-<li class="tsd-description">
-<div class="tsd-parameters">
-<h4 class="tsd-parameters-title">Parameters</h4>
-<ul class="tsd-parameter-list">
-<li>
-<h5>surah: <span class="tsd-signature-type">number</span></h5></li>
-<li>
-<h5>ayah: <span class="tsd-signature-type">number</span><span class="tsd-signature-symbol"> = 1</span></h5></li>
-<li>
-<h5>ayahMode: <span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol"> = false</span></h5></li></ul></div>
-<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">JuzHizb</span></h4><aside class="tsd-sources">
-<ul>
-<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/a8fc894/src/index.ts#L187">index.ts:187</a></li></ul></aside></li></ul></section></div>
-<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
-<div class="tsd-navigation settings">
-<details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Settings</h3></summary>
-<div class="tsd-accordion-details">
-<div class="tsd-filter-visibility">
-<h4 class="uppercase">Member Visibility</h4><form>
-<ul id="tsd-filter-options">
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div>
-<div class="tsd-theme-toggle">
-<h4 class="uppercase">Theme</h4><select id="theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div>
-<nav class="tsd-navigation primary">
-<details class="tsd-index-accordion" open><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Modules</h3></summary>
-<div class="tsd-accordion-details">
-<ul>
-<li><a href="../modules.html">quran-<wbr/>meta</a>
-<ul></ul></li></ul></div></details></nav>
-<nav class="tsd-navigation secondary menu-sticky">
-<ul>
-<li class="tsd-kind-type-alias"><a href="../types/AyahId.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-4194304-path"></rect><path d="M11.31 16V8.224H8.91V7.24H14.79V8.224H12.39V16H11.31Z" fill="var(--color-text)" id="icon-4194304-text"></path></svg>Ayah<wbr/>Id</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/AyahNo.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Ayah<wbr/>No</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Juz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/JuzMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Page.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/PageMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Sajda.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Sajda</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Surah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/SurahAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Ayah</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/SurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-variable"><a href="../variables/HizbQuarterList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-variable)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-32-path"></rect><path d="M11.106 16L8.85 7.24H9.966L11.454 13.192C11.558 13.608 11.646 13.996 11.718 14.356C11.79 14.708 11.842 14.976 11.874 15.16C11.906 14.976 11.954 14.708 12.018 14.356C12.09 13.996 12.178 13.608 12.282 13.192L13.758 7.24H14.85L12.582 16H11.106Z" fill="var(--color-text)" id="icon-32-text"></path></svg>Hizb<wbr/>Quarter<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/JuzList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Juz<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/ManzilList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Manzil<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/PageList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Page<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/RukuList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Ruku<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/SajdaList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sajda<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/SuraList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sura<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/meta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>meta</a></li>
-<li class="tsd-kind-variable"><a href="../variables/suraNamesEn.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>En</a></li>
-<li class="tsd-kind-variable"><a href="../variables/suraNamesRu.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>Ru</a></li>
-<li class="tsd-kind-function"><a href="ayaStringSplitter.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-function)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-64-path"></rect><path d="M9.39 16V7.24H14.55V8.224H10.446V11.128H14.238V12.112H10.47V16H9.39Z" fill="var(--color-text)" id="icon-64-text"></path></svg>aya<wbr/>String<wbr/>Splitter</a></li>
-<li class="tsd-kind-function"><a href="findAyaidBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Ayaid<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="findJuz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz</a></li>
-<li class="tsd-kind-function"><a href="findJuzAndShift.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>And<wbr/>Shift</a></li>
-<li class="tsd-kind-function"><a href="findJuzByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>By<wbr/>Ayaid</a></li>
-<li class="current tsd-kind-function"><a href="findJuzHizb.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb</a></li>
-<li class="tsd-kind-function"><a href="findJuzHizbByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="findJuzMetaBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Meta<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="findPage.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Page</a></li>
-<li class="tsd-kind-function"><a href="findRangeAroundAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Range<wbr/>Around<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="findSurahByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Surah<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="getAyaCountinSura.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Aya<wbr/>Countin<wbr/>Sura</a></li>
-<li class="tsd-kind-function"><a href="getSurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="isAyahJuzFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Juz<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="isAyahPageFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Page<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="nextAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>next<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="pageMeta-1.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>page<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="prevAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>prev<wbr/>Ayah</a></li></ul></nav></div></div>
-<div class="container tsd-generator">
-<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></div>
-<div class="overlay"></div><script src="../assets/main.js"></script></body></html>
\ No newline at end of file
+<!DOCTYPE html><html class="default" lang="en"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>findJuzHizb | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../modules.html">quran-meta</a></li><li><a href="findJuzHizb.html">findJuzHizb</a></li></ul><h1>Function findJuzHizb</h1></div><section class="tsd-panel"><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="findJuzHizb" class="tsd-anchor"></a><span class="tsd-kind-call-signature">find<wbr/>Juz<wbr/>Hizb</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">surah</span>, <span class="tsd-kind-parameter">ayah</span><span class="tsd-signature-symbol">?</span>, <span class="tsd-kind-parameter">ayahMode</span><span class="tsd-signature-symbol">?</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="../types/JuzHizb.html" class="tsd-signature-type tsd-kind-type-alias">JuzHizb</a><a href="#findJuzHizb" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-comment tsd-typography"><p>Finds the Juz (part) and Hizb (section) of the Quran that the given Ayah (verse) belongs to.</p>
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">surah</span>: <span class="tsd-signature-type">number</span></span><div class="tsd-comment tsd-typography"><p>The Surah (chapter) number.</p>
+</div><div class="tsd-comment tsd-typography"></div></li><li><span><span class="tsd-kind-parameter">ayah</span>: <span class="tsd-signature-type">number</span><span class="tsd-signature-symbol"> = 1</span></span><div class="tsd-comment tsd-typography"><p>The Ayah (verse) number. Defaults to 1 if not provided.</p>
+</div><div class="tsd-comment tsd-typography"></div></li><li><span><span class="tsd-kind-parameter">ayahMode</span>: <span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol"> = false</span></span><div class="tsd-comment tsd-typography"><p>If true, the <code>ayah</code> parameter is treated as an Ayah ID instead of a Surah and Ayah number.</p>
+</div><div class="tsd-comment tsd-typography"></div></li></ul></div><h4 class="tsd-returns-title">Returns <a href="../types/JuzHizb.html" class="tsd-signature-type tsd-kind-type-alias">JuzHizb</a></h4><p>An object containing the Juz (part) number, Hizb (section) number, and the index of the Hizb that the given Ayah belongs to.</p>
+<div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/7ff9baaee85a66d9099133c3db867ac28679aa62/src/findJuzHizb.ts#L14">findJuzHizb.ts:14</a></li></ul></aside></li></ul></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>quran-meta</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
diff --git a/docs/functions/findJuzHizbByAyaid.html b/docs/functions/findJuzHizbByAyaid.html
index 7e4d085..b6cf81e 100644
--- a/docs/functions/findJuzHizbByAyaid.html
+++ b/docs/functions/findJuzHizbByAyaid.html
@@ -1,93 +1,4 @@
-<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>findJuzHizbByAyaid | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script async src="../assets/search.js" id="search-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os"</script><header class="tsd-page-toolbar">
-<div class="tsd-toolbar-contents container">
-<div class="table-cell" id="tsd-search" data-base="..">
-<div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M15.7824 13.833L12.6666 10.7177C12.5259 10.5771 12.3353 10.499 12.1353 10.499H11.6259C12.4884 9.39596 13.001 8.00859 13.001 6.49937C13.001 2.90909 10.0914 0 6.50048 0C2.90959 0 0 2.90909 0 6.49937C0 10.0896 2.90959 12.9987 6.50048 12.9987C8.00996 12.9987 9.39756 12.4863 10.5008 11.6239V12.1332C10.5008 12.3332 10.5789 12.5238 10.7195 12.6644L13.8354 15.7797C14.1292 16.0734 14.6042 16.0734 14.8948 15.7797L15.7793 14.8954C16.0731 14.6017 16.0731 14.1267 15.7824 13.833ZM6.50048 10.499C4.29094 10.499 2.50018 8.71165 2.50018 6.49937C2.50018 4.29021 4.28781 2.49976 6.50048 2.49976C8.71001 2.49976 10.5008 4.28708 10.5008 6.49937C10.5008 8.70852 8.71314 10.499 6.50048 10.499Z" fill="var(--color-text)"></path></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div>
-<div class="field">
-<div id="tsd-toolbar-links"></div></div>
-<ul class="results">
-<li class="state loading">Preparing search index...</li>
-<li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div>
-<div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><rect x="1" y="3" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="7" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="11" width="14" height="2" fill="var(--color-text)"></rect></svg></a></div></div></header>
-<div class="container container-main">
-<div class="col-8 col-content">
-<div class="tsd-page-title">
-<ul class="tsd-breadcrumb">
-<li><a href="../modules.html">quran-meta</a></li>
-<li><a href="findJuzHizbByAyaid.html">findJuzHizbByAyaid</a></li></ul>
-<h1>Function findJuzHizbByAyaid</h1></div>
-<section class="tsd-panel">
-<ul class="tsd-signatures tsd-kind-function">
-<li class="tsd-signature tsd-anchor-link" id="findJuzHizbByAyaid">find<wbr/>Juz<wbr/>Hizb<wbr/>By<wbr/>Ayaid<span class="tsd-signature-symbol">(</span>ayaId<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">JuzHizb</span><a href="#findJuzHizbByAyaid" aria-label="Permalink" class="tsd-anchor-icon"><svg class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none" id="icon-anchor-a"></path><path d="M10 14a3.5 3.5 0 0 0 5 0l4 -4a3.5 3.5 0 0 0 -5 -5l-.5 .5" id="icon-anchor-b"></path><path d="M14 10a3.5 3.5 0 0 0 -5 0l-4 4a3.5 3.5 0 0 0 5 5l.5 -.5" id="icon-anchor-c"></path></svg></a></li>
-<li class="tsd-description">
-<div class="tsd-parameters">
-<h4 class="tsd-parameters-title">Parameters</h4>
-<ul class="tsd-parameter-list">
-<li>
-<h5>ayaId: <span class="tsd-signature-type">number</span></h5></li></ul></div>
-<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">JuzHizb</span></h4><aside class="tsd-sources">
-<ul>
-<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/a8fc894/src/index.ts#L162">index.ts:162</a></li></ul></aside></li></ul></section></div>
-<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
-<div class="tsd-navigation settings">
-<details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Settings</h3></summary>
-<div class="tsd-accordion-details">
-<div class="tsd-filter-visibility">
-<h4 class="uppercase">Member Visibility</h4><form>
-<ul id="tsd-filter-options">
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div>
-<div class="tsd-theme-toggle">
-<h4 class="uppercase">Theme</h4><select id="theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div>
-<nav class="tsd-navigation primary">
-<details class="tsd-index-accordion" open><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Modules</h3></summary>
-<div class="tsd-accordion-details">
-<ul>
-<li><a href="../modules.html">quran-<wbr/>meta</a>
-<ul></ul></li></ul></div></details></nav>
-<nav class="tsd-navigation secondary menu-sticky">
-<ul>
-<li class="tsd-kind-type-alias"><a href="../types/AyahId.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-4194304-path"></rect><path d="M11.31 16V8.224H8.91V7.24H14.79V8.224H12.39V16H11.31Z" fill="var(--color-text)" id="icon-4194304-text"></path></svg>Ayah<wbr/>Id</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/AyahNo.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Ayah<wbr/>No</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Juz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/JuzMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Page.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/PageMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Sajda.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Sajda</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Surah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/SurahAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Ayah</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/SurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-variable"><a href="../variables/HizbQuarterList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-variable)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-32-path"></rect><path d="M11.106 16L8.85 7.24H9.966L11.454 13.192C11.558 13.608 11.646 13.996 11.718 14.356C11.79 14.708 11.842 14.976 11.874 15.16C11.906 14.976 11.954 14.708 12.018 14.356C12.09 13.996 12.178 13.608 12.282 13.192L13.758 7.24H14.85L12.582 16H11.106Z" fill="var(--color-text)" id="icon-32-text"></path></svg>Hizb<wbr/>Quarter<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/JuzList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Juz<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/ManzilList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Manzil<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/PageList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Page<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/RukuList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Ruku<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/SajdaList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sajda<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/SuraList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sura<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/meta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>meta</a></li>
-<li class="tsd-kind-variable"><a href="../variables/suraNamesEn.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>En</a></li>
-<li class="tsd-kind-variable"><a href="../variables/suraNamesRu.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>Ru</a></li>
-<li class="tsd-kind-function"><a href="ayaStringSplitter.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-function)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-64-path"></rect><path d="M9.39 16V7.24H14.55V8.224H10.446V11.128H14.238V12.112H10.47V16H9.39Z" fill="var(--color-text)" id="icon-64-text"></path></svg>aya<wbr/>String<wbr/>Splitter</a></li>
-<li class="tsd-kind-function"><a href="findAyaidBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Ayaid<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="findJuz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz</a></li>
-<li class="tsd-kind-function"><a href="findJuzAndShift.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>And<wbr/>Shift</a></li>
-<li class="tsd-kind-function"><a href="findJuzByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="findJuzHizb.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb</a></li>
-<li class="current tsd-kind-function"><a href="findJuzHizbByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="findJuzMetaBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Meta<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="findPage.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Page</a></li>
-<li class="tsd-kind-function"><a href="findRangeAroundAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Range<wbr/>Around<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="findSurahByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Surah<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="getAyaCountinSura.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Aya<wbr/>Countin<wbr/>Sura</a></li>
-<li class="tsd-kind-function"><a href="getSurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="isAyahJuzFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Juz<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="isAyahPageFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Page<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="nextAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>next<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="pageMeta-1.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>page<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="prevAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>prev<wbr/>Ayah</a></li></ul></nav></div></div>
-<div class="container tsd-generator">
-<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></div>
-<div class="overlay"></div><script src="../assets/main.js"></script></body></html>
\ No newline at end of file
+<!DOCTYPE html><html class="default" lang="en"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>findJuzHizbByAyaid | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../modules.html">quran-meta</a></li><li><a href="findJuzHizbByAyaid.html">findJuzHizbByAyaid</a></li></ul><h1>Function findJuzHizbByAyaid</h1></div><section class="tsd-panel"><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="findJuzHizbByAyaid" class="tsd-anchor"></a><span class="tsd-kind-call-signature">find<wbr/>Juz<wbr/>Hizb<wbr/>By<wbr/>Ayaid</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">ayaId</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="../types/JuzHizb.html" class="tsd-signature-type tsd-kind-type-alias">JuzHizb</a><a href="#findJuzHizbByAyaid" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-comment tsd-typography"><p>Finds the Juz, Hizb, and Hizb ID for the given Ayah ID.</p>
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">ayaId</span>: <span class="tsd-signature-type">number</span></span><div class="tsd-comment tsd-typography"><p>The Ayah ID to find the Juz, Hizb, and Hizb ID for.</p>
+</div><div class="tsd-comment tsd-typography"></div></li></ul></div><h4 class="tsd-returns-title">Returns <a href="../types/JuzHizb.html" class="tsd-signature-type tsd-kind-type-alias">JuzHizb</a></h4><p>An object containing the Juz, Hizb, and Hizb ID for the given Ayah ID.</p>
+<div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/7ff9baaee85a66d9099133c3db867ac28679aa62/src/findJuzHizbByAyaid.ts#L12">findJuzHizbByAyaid.ts:12</a></li></ul></aside></li></ul></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>quran-meta</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
diff --git a/docs/functions/findJuzMetaBySurah.html b/docs/functions/findJuzMetaBySurah.html
index 13befcd..b3c8eac 100644
--- a/docs/functions/findJuzMetaBySurah.html
+++ b/docs/functions/findJuzMetaBySurah.html
@@ -1,99 +1,5 @@
-<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>findJuzMetaBySurah | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script async src="../assets/search.js" id="search-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os"</script><header class="tsd-page-toolbar">
-<div class="tsd-toolbar-contents container">
-<div class="table-cell" id="tsd-search" data-base="..">
-<div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M15.7824 13.833L12.6666 10.7177C12.5259 10.5771 12.3353 10.499 12.1353 10.499H11.6259C12.4884 9.39596 13.001 8.00859 13.001 6.49937C13.001 2.90909 10.0914 0 6.50048 0C2.90959 0 0 2.90909 0 6.49937C0 10.0896 2.90959 12.9987 6.50048 12.9987C8.00996 12.9987 9.39756 12.4863 10.5008 11.6239V12.1332C10.5008 12.3332 10.5789 12.5238 10.7195 12.6644L13.8354 15.7797C14.1292 16.0734 14.6042 16.0734 14.8948 15.7797L15.7793 14.8954C16.0731 14.6017 16.0731 14.1267 15.7824 13.833ZM6.50048 10.499C4.29094 10.499 2.50018 8.71165 2.50018 6.49937C2.50018 4.29021 4.28781 2.49976 6.50048 2.49976C8.71001 2.49976 10.5008 4.28708 10.5008 6.49937C10.5008 8.70852 8.71314 10.499 6.50048 10.499Z" fill="var(--color-text)"></path></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div>
-<div class="field">
-<div id="tsd-toolbar-links"></div></div>
-<ul class="results">
-<li class="state loading">Preparing search index...</li>
-<li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div>
-<div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><rect x="1" y="3" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="7" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="11" width="14" height="2" fill="var(--color-text)"></rect></svg></a></div></div></header>
-<div class="container container-main">
-<div class="col-8 col-content">
-<div class="tsd-page-title">
-<ul class="tsd-breadcrumb">
-<li><a href="../modules.html">quran-meta</a></li>
-<li><a href="findJuzMetaBySurah.html">findJuzMetaBySurah</a></li></ul>
-<h1>Function findJuzMetaBySurah</h1></div>
-<section class="tsd-panel">
-<ul class="tsd-signatures tsd-kind-function">
-<li class="tsd-signature tsd-anchor-link" id="findJuzMetaBySurah">find<wbr/>Juz<wbr/>Meta<wbr/>By<wbr/>Surah<span class="tsd-signature-symbol">(</span>surah<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, ayah<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="../types/JuzMeta.html" class="tsd-signature-type" data-tsd-kind="Type alias">JuzMeta</a><a href="#findJuzMetaBySurah" aria-label="Permalink" class="tsd-anchor-icon"><svg class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none" id="icon-anchor-a"></path><path d="M10 14a3.5 3.5 0 0 0 5 0l4 -4a3.5 3.5 0 0 0 -5 -5l-.5 .5" id="icon-anchor-b"></path><path d="M14 10a3.5 3.5 0 0 0 -5 0l-4 4a3.5 3.5 0 0 0 5 5l.5 -.5" id="icon-anchor-c"></path></svg></a></li>
-<li class="tsd-description">
-<div class="tsd-comment tsd-typography"><p>for given ayah return [starting juz, number of ayahsFrom beginning of that juz, right juz, number of ayahs in surah</p>
-
-<h3>Returns</h3><p>[leftjuz, ayahsFromStartOfJuz, rightJuz, ayahsinSurah,leftAyahId,rightAyahId]</p>
-</div>
-<div class="tsd-parameters">
-<h4 class="tsd-parameters-title">Parameters</h4>
-<ul class="tsd-parameter-list">
-<li>
-<h5>surah: <span class="tsd-signature-type">number</span></h5></li>
-<li>
-<h5>ayah: <span class="tsd-signature-type">number</span><span class="tsd-signature-symbol"> = 1</span></h5></li></ul></div>
-<h4 class="tsd-returns-title">Returns <a href="../types/JuzMeta.html" class="tsd-signature-type" data-tsd-kind="Type alias">JuzMeta</a></h4><aside class="tsd-sources">
-<ul>
-<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/a8fc894/src/index.ts#L272">index.ts:272</a></li></ul></aside></li></ul></section></div>
-<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
-<div class="tsd-navigation settings">
-<details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Settings</h3></summary>
-<div class="tsd-accordion-details">
-<div class="tsd-filter-visibility">
-<h4 class="uppercase">Member Visibility</h4><form>
-<ul id="tsd-filter-options">
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div>
-<div class="tsd-theme-toggle">
-<h4 class="uppercase">Theme</h4><select id="theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div>
-<nav class="tsd-navigation primary">
-<details class="tsd-index-accordion" open><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Modules</h3></summary>
-<div class="tsd-accordion-details">
-<ul>
-<li><a href="../modules.html">quran-<wbr/>meta</a>
-<ul></ul></li></ul></div></details></nav>
-<nav class="tsd-navigation secondary menu-sticky">
-<ul>
-<li class="tsd-kind-type-alias"><a href="../types/AyahId.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-4194304-path"></rect><path d="M11.31 16V8.224H8.91V7.24H14.79V8.224H12.39V16H11.31Z" fill="var(--color-text)" id="icon-4194304-text"></path></svg>Ayah<wbr/>Id</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/AyahNo.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Ayah<wbr/>No</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Juz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/JuzMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Page.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/PageMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Sajda.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Sajda</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Surah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/SurahAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Ayah</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/SurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-variable"><a href="../variables/HizbQuarterList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-variable)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-32-path"></rect><path d="M11.106 16L8.85 7.24H9.966L11.454 13.192C11.558 13.608 11.646 13.996 11.718 14.356C11.79 14.708 11.842 14.976 11.874 15.16C11.906 14.976 11.954 14.708 12.018 14.356C12.09 13.996 12.178 13.608 12.282 13.192L13.758 7.24H14.85L12.582 16H11.106Z" fill="var(--color-text)" id="icon-32-text"></path></svg>Hizb<wbr/>Quarter<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/JuzList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Juz<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/ManzilList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Manzil<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/PageList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Page<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/RukuList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Ruku<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/SajdaList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sajda<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/SuraList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sura<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/meta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>meta</a></li>
-<li class="tsd-kind-variable"><a href="../variables/suraNamesEn.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>En</a></li>
-<li class="tsd-kind-variable"><a href="../variables/suraNamesRu.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>Ru</a></li>
-<li class="tsd-kind-function"><a href="ayaStringSplitter.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-function)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-64-path"></rect><path d="M9.39 16V7.24H14.55V8.224H10.446V11.128H14.238V12.112H10.47V16H9.39Z" fill="var(--color-text)" id="icon-64-text"></path></svg>aya<wbr/>String<wbr/>Splitter</a></li>
-<li class="tsd-kind-function"><a href="findAyaidBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Ayaid<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="findJuz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz</a></li>
-<li class="tsd-kind-function"><a href="findJuzAndShift.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>And<wbr/>Shift</a></li>
-<li class="tsd-kind-function"><a href="findJuzByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="findJuzHizb.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb</a></li>
-<li class="tsd-kind-function"><a href="findJuzHizbByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb<wbr/>By<wbr/>Ayaid</a></li>
-<li class="current tsd-kind-function"><a href="findJuzMetaBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Meta<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="findPage.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Page</a></li>
-<li class="tsd-kind-function"><a href="findRangeAroundAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Range<wbr/>Around<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="findSurahByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Surah<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="getAyaCountinSura.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Aya<wbr/>Countin<wbr/>Sura</a></li>
-<li class="tsd-kind-function"><a href="getSurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="isAyahJuzFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Juz<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="isAyahPageFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Page<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="nextAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>next<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="pageMeta-1.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>page<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="prevAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>prev<wbr/>Ayah</a></li></ul></nav></div></div>
-<div class="container tsd-generator">
-<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></div>
-<div class="overlay"></div><script src="../assets/main.js"></script></body></html>
\ No newline at end of file
+<!DOCTYPE html><html class="default" lang="en"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>findJuzMetaBySurah | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../modules.html">quran-meta</a></li><li><a href="findJuzMetaBySurah.html">findJuzMetaBySurah</a></li></ul><h1>Function findJuzMetaBySurah</h1></div><section class="tsd-panel"><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="findJuzMetaBySurah" class="tsd-anchor"></a><span class="tsd-kind-call-signature">find<wbr/>Juz<wbr/>Meta<wbr/>By<wbr/>Surah</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">surah</span>, <span class="tsd-kind-parameter">ayah</span><span class="tsd-signature-symbol">?</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="../types/JuzMeta.html" class="tsd-signature-type tsd-kind-type-alias">JuzMeta</a><a href="#findJuzMetaBySurah" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-comment tsd-typography"><p>Finds the JuzMeta for a given Surah and Ayah.</p>
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">surah</span>: <span class="tsd-signature-type">number</span></span><div class="tsd-comment tsd-typography"><p>The Surah (chapter) number.</p>
+</div><div class="tsd-comment tsd-typography"></div></li><li><span><span class="tsd-kind-parameter">ayah</span>: <span class="tsd-signature-type">number</span><span class="tsd-signature-symbol"> = 1</span></span><div class="tsd-comment tsd-typography"><p>The Ayah (verse) number.</p>
+</div><div class="tsd-comment tsd-typography"></div></li></ul></div><h4 class="tsd-returns-title">Returns <a href="../types/JuzMeta.html" class="tsd-signature-type tsd-kind-type-alias">JuzMeta</a></h4><p>The JuzMeta object containing the left juz, ayahs between juz and surah, right juz, left ayah ID, and right ayah ID.</p>
+<div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/7ff9baaee85a66d9099133c3db867ac28679aa62/src/findJuzMetaBySurah.ts#L14">findJuzMetaBySurah.ts:14</a></li></ul></aside></li></ul></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>quran-meta</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
diff --git a/docs/functions/findPage.html b/docs/functions/findPage.html
index 6655e25..66d5731 100644
--- a/docs/functions/findPage.html
+++ b/docs/functions/findPage.html
@@ -1,97 +1,6 @@
-<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>findPage | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script async src="../assets/search.js" id="search-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os"</script><header class="tsd-page-toolbar">
-<div class="tsd-toolbar-contents container">
-<div class="table-cell" id="tsd-search" data-base="..">
-<div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M15.7824 13.833L12.6666 10.7177C12.5259 10.5771 12.3353 10.499 12.1353 10.499H11.6259C12.4884 9.39596 13.001 8.00859 13.001 6.49937C13.001 2.90909 10.0914 0 6.50048 0C2.90959 0 0 2.90909 0 6.49937C0 10.0896 2.90959 12.9987 6.50048 12.9987C8.00996 12.9987 9.39756 12.4863 10.5008 11.6239V12.1332C10.5008 12.3332 10.5789 12.5238 10.7195 12.6644L13.8354 15.7797C14.1292 16.0734 14.6042 16.0734 14.8948 15.7797L15.7793 14.8954C16.0731 14.6017 16.0731 14.1267 15.7824 13.833ZM6.50048 10.499C4.29094 10.499 2.50018 8.71165 2.50018 6.49937C2.50018 4.29021 4.28781 2.49976 6.50048 2.49976C8.71001 2.49976 10.5008 4.28708 10.5008 6.49937C10.5008 8.70852 8.71314 10.499 6.50048 10.499Z" fill="var(--color-text)"></path></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div>
-<div class="field">
-<div id="tsd-toolbar-links"></div></div>
-<ul class="results">
-<li class="state loading">Preparing search index...</li>
-<li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div>
-<div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><rect x="1" y="3" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="7" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="11" width="14" height="2" fill="var(--color-text)"></rect></svg></a></div></div></header>
-<div class="container container-main">
-<div class="col-8 col-content">
-<div class="tsd-page-title">
-<ul class="tsd-breadcrumb">
-<li><a href="../modules.html">quran-meta</a></li>
-<li><a href="findPage.html">findPage</a></li></ul>
-<h1>Function findPage</h1></div>
-<section class="tsd-panel">
-<ul class="tsd-signatures tsd-kind-function">
-<li class="tsd-signature tsd-anchor-link" id="findPage">find<wbr/>Page<span class="tsd-signature-symbol">(</span>surah<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, ayah<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, ayahMode<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="../types/Page.html" class="tsd-signature-type" data-tsd-kind="Type alias">Page</a><a href="#findPage" aria-label="Permalink" class="tsd-anchor-icon"><svg class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none" id="icon-anchor-a"></path><path d="M10 14a3.5 3.5 0 0 0 5 0l4 -4a3.5 3.5 0 0 0 -5 -5l-.5 .5" id="icon-anchor-b"></path><path d="M14 10a3.5 3.5 0 0 0 -5 0l-4 4a3.5 3.5 0 0 0 5 5l.5 -.5" id="icon-anchor-c"></path></svg></a></li>
-<li class="tsd-description">
-<div class="tsd-parameters">
-<h4 class="tsd-parameters-title">Parameters</h4>
-<ul class="tsd-parameter-list">
-<li>
-<h5>surah: <span class="tsd-signature-type">number</span></h5></li>
-<li>
-<h5>ayah: <span class="tsd-signature-type">number</span></h5></li>
-<li>
-<h5>ayahMode: <span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol"> = false</span></h5></li></ul></div>
-<h4 class="tsd-returns-title">Returns <a href="../types/Page.html" class="tsd-signature-type" data-tsd-kind="Type alias">Page</a></h4><aside class="tsd-sources">
-<ul>
-<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/a8fc894/src/index.ts#L309">index.ts:309</a></li></ul></aside></li></ul></section></div>
-<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
-<div class="tsd-navigation settings">
-<details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Settings</h3></summary>
-<div class="tsd-accordion-details">
-<div class="tsd-filter-visibility">
-<h4 class="uppercase">Member Visibility</h4><form>
-<ul id="tsd-filter-options">
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div>
-<div class="tsd-theme-toggle">
-<h4 class="uppercase">Theme</h4><select id="theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div>
-<nav class="tsd-navigation primary">
-<details class="tsd-index-accordion" open><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Modules</h3></summary>
-<div class="tsd-accordion-details">
-<ul>
-<li><a href="../modules.html">quran-<wbr/>meta</a>
-<ul></ul></li></ul></div></details></nav>
-<nav class="tsd-navigation secondary menu-sticky">
-<ul>
-<li class="tsd-kind-type-alias"><a href="../types/AyahId.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-4194304-path"></rect><path d="M11.31 16V8.224H8.91V7.24H14.79V8.224H12.39V16H11.31Z" fill="var(--color-text)" id="icon-4194304-text"></path></svg>Ayah<wbr/>Id</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/AyahNo.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Ayah<wbr/>No</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Juz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/JuzMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Page.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/PageMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Sajda.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Sajda</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Surah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/SurahAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Ayah</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/SurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-variable"><a href="../variables/HizbQuarterList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-variable)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-32-path"></rect><path d="M11.106 16L8.85 7.24H9.966L11.454 13.192C11.558 13.608 11.646 13.996 11.718 14.356C11.79 14.708 11.842 14.976 11.874 15.16C11.906 14.976 11.954 14.708 12.018 14.356C12.09 13.996 12.178 13.608 12.282 13.192L13.758 7.24H14.85L12.582 16H11.106Z" fill="var(--color-text)" id="icon-32-text"></path></svg>Hizb<wbr/>Quarter<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/JuzList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Juz<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/ManzilList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Manzil<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/PageList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Page<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/RukuList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Ruku<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/SajdaList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sajda<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/SuraList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sura<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/meta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>meta</a></li>
-<li class="tsd-kind-variable"><a href="../variables/suraNamesEn.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>En</a></li>
-<li class="tsd-kind-variable"><a href="../variables/suraNamesRu.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>Ru</a></li>
-<li class="tsd-kind-function"><a href="ayaStringSplitter.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-function)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-64-path"></rect><path d="M9.39 16V7.24H14.55V8.224H10.446V11.128H14.238V12.112H10.47V16H9.39Z" fill="var(--color-text)" id="icon-64-text"></path></svg>aya<wbr/>String<wbr/>Splitter</a></li>
-<li class="tsd-kind-function"><a href="findAyaidBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Ayaid<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="findJuz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz</a></li>
-<li class="tsd-kind-function"><a href="findJuzAndShift.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>And<wbr/>Shift</a></li>
-<li class="tsd-kind-function"><a href="findJuzByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="findJuzHizb.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb</a></li>
-<li class="tsd-kind-function"><a href="findJuzHizbByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="findJuzMetaBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Meta<wbr/>By<wbr/>Surah</a></li>
-<li class="current tsd-kind-function"><a href="findPage.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Page</a></li>
-<li class="tsd-kind-function"><a href="findRangeAroundAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Range<wbr/>Around<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="findSurahByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Surah<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="getAyaCountinSura.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Aya<wbr/>Countin<wbr/>Sura</a></li>
-<li class="tsd-kind-function"><a href="getSurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="isAyahJuzFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Juz<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="isAyahPageFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Page<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="nextAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>next<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="pageMeta-1.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>page<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="prevAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>prev<wbr/>Ayah</a></li></ul></nav></div></div>
-<div class="container tsd-generator">
-<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></div>
-<div class="overlay"></div><script src="../assets/main.js"></script></body></html>
\ No newline at end of file
+<!DOCTYPE html><html class="default" lang="en"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>findPage | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../modules.html">quran-meta</a></li><li><a href="findPage.html">findPage</a></li></ul><h1>Function findPage</h1></div><section class="tsd-panel"><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="findPage" class="tsd-anchor"></a><span class="tsd-kind-call-signature">find<wbr/>Page</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">surah</span>, <span class="tsd-kind-parameter">ayah</span>, <span class="tsd-kind-parameter">ayahMode</span><span class="tsd-signature-symbol">?</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="../types/Page.html" class="tsd-signature-type tsd-kind-type-alias">Page</a><a href="#findPage" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-comment tsd-typography"><p>Finds the page number for the given Surah and Ayah number.</p>
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">surah</span>: <span class="tsd-signature-type">number</span></span><div class="tsd-comment tsd-typography"><p>The Surah to find the page for.</p>
+</div><div class="tsd-comment tsd-typography"></div></li><li><span><span class="tsd-kind-parameter">ayah</span>: <span class="tsd-signature-type">number</span></span><div class="tsd-comment tsd-typography"><p>The Ayah number to find the page for.</p>
+</div><div class="tsd-comment tsd-typography"></div></li><li><span><span class="tsd-kind-parameter">ayahMode</span>: <span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol"> = false</span></span><div class="tsd-comment tsd-typography"><p>If true, the <code>ayah</code> parameter is treated as an AyahId instead of an AyahNo.</p>
+</div><div class="tsd-comment tsd-typography"></div></li></ul></div><h4 class="tsd-returns-title">Returns <a href="../types/Page.html" class="tsd-signature-type tsd-kind-type-alias">Page</a></h4><p>The page number for the given Surah and Ayah.</p>
+<div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/7ff9baaee85a66d9099133c3db867ac28679aa62/src/findPage.ts#L14">findPage.ts:14</a></li></ul></aside></li></ul></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>quran-meta</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
diff --git a/docs/functions/findRangeAroundAyah.html b/docs/functions/findRangeAroundAyah.html
index acd24aa..68e2142 100644
--- a/docs/functions/findRangeAroundAyah.html
+++ b/docs/functions/findRangeAroundAyah.html
@@ -1,104 +1,4 @@
-<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>findRangeAroundAyah | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script async src="../assets/search.js" id="search-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os"</script><header class="tsd-page-toolbar">
-<div class="tsd-toolbar-contents container">
-<div class="table-cell" id="tsd-search" data-base="..">
-<div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M15.7824 13.833L12.6666 10.7177C12.5259 10.5771 12.3353 10.499 12.1353 10.499H11.6259C12.4884 9.39596 13.001 8.00859 13.001 6.49937C13.001 2.90909 10.0914 0 6.50048 0C2.90959 0 0 2.90909 0 6.49937C0 10.0896 2.90959 12.9987 6.50048 12.9987C8.00996 12.9987 9.39756 12.4863 10.5008 11.6239V12.1332C10.5008 12.3332 10.5789 12.5238 10.7195 12.6644L13.8354 15.7797C14.1292 16.0734 14.6042 16.0734 14.8948 15.7797L15.7793 14.8954C16.0731 14.6017 16.0731 14.1267 15.7824 13.833ZM6.50048 10.499C4.29094 10.499 2.50018 8.71165 2.50018 6.49937C2.50018 4.29021 4.28781 2.49976 6.50048 2.49976C8.71001 2.49976 10.5008 4.28708 10.5008 6.49937C10.5008 8.70852 8.71314 10.499 6.50048 10.499Z" fill="var(--color-text)"></path></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div>
-<div class="field">
-<div id="tsd-toolbar-links"></div></div>
-<ul class="results">
-<li class="state loading">Preparing search index...</li>
-<li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div>
-<div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><rect x="1" y="3" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="7" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="11" width="14" height="2" fill="var(--color-text)"></rect></svg></a></div></div></header>
-<div class="container container-main">
-<div class="col-8 col-content">
-<div class="tsd-page-title">
-<ul class="tsd-breadcrumb">
-<li><a href="../modules.html">quran-meta</a></li>
-<li><a href="findRangeAroundAyah.html">findRangeAroundAyah</a></li></ul>
-<h1>Function findRangeAroundAyah</h1></div>
-<section class="tsd-panel">
-<ul class="tsd-signatures tsd-kind-function">
-<li class="tsd-signature tsd-anchor-link" id="findRangeAroundAyah">find<wbr/>Range<wbr/>Around<wbr/>Ayah<span class="tsd-signature-symbol">(</span>surah<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, ayah<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, mode<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">&quot;surah&quot;</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">&quot;juz&quot;</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">&quot;ayah&quot;</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">&quot;page&quot;</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">&quot;all&quot;</span>, ayahMode<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="../types/SurahAyah.html" class="tsd-signature-type" data-tsd-kind="Type alias">SurahAyah</a><a href="#findRangeAroundAyah" aria-label="Permalink" class="tsd-anchor-icon"><svg class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none" id="icon-anchor-a"></path><path d="M10 14a3.5 3.5 0 0 0 5 0l4 -4a3.5 3.5 0 0 0 -5 -5l-.5 .5" id="icon-anchor-b"></path><path d="M14 10a3.5 3.5 0 0 0 -5 0l-4 4a3.5 3.5 0 0 0 5 5l.5 -.5" id="icon-anchor-c"></path></svg></a></li>
-<li class="tsd-description">
-<div class="tsd-comment tsd-typography"><p>Find range containing ayah according to the mode</p>
-</div>
-<div class="tsd-parameters">
-<h4 class="tsd-parameters-title">Parameters</h4>
-<ul class="tsd-parameter-list">
-<li>
-<h5>surah: <span class="tsd-signature-type">number</span></h5></li>
-<li>
-<h5>ayah: <span class="tsd-signature-type">number</span></h5></li>
-<li>
-<h5>mode: <span class="tsd-signature-type">&quot;surah&quot;</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">&quot;juz&quot;</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">&quot;ayah&quot;</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">&quot;page&quot;</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">&quot;all&quot;</span></h5>
-<div class="tsd-comment tsd-typography"><p>can be either &#39;all&#39;, &#39;juz&#39;, &#39;surah&#39;, &#39;ayah&#39;, &#39;page&#39;
+<!DOCTYPE html><html class="default" lang="en"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>findRangeAroundAyah | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../modules.html">quran-meta</a></li><li><a href="findRangeAroundAyah.html">findRangeAroundAyah</a></li></ul><h1>Function findRangeAroundAyah</h1></div><section class="tsd-panel"><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="findRangeAroundAyah" class="tsd-anchor"></a><span class="tsd-kind-call-signature">find<wbr/>Range<wbr/>Around<wbr/>Ayah</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">surah</span>, <span class="tsd-kind-parameter">ayah</span>, <span class="tsd-kind-parameter">mode</span>, <span class="tsd-kind-parameter">ayahMode</span><span class="tsd-signature-symbol">?</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="../types/SurahAyah.html" class="tsd-signature-type tsd-kind-type-alias">SurahAyah</a><a href="#findRangeAroundAyah" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-comment tsd-typography"><p>Find range containing ayah according to the mode</p>
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">surah</span>: <span class="tsd-signature-type">number</span></span><div class="tsd-comment tsd-typography"></div></li><li><span><span class="tsd-kind-parameter">ayah</span>: <span class="tsd-signature-type">number</span></span><div class="tsd-comment tsd-typography"></div></li><li><span><span class="tsd-kind-parameter">mode</span>: <br/><span>    </span><span class="tsd-signature-symbol">| </span><span class="tsd-signature-type">&quot;all&quot;</span><br/><span>    </span><span class="tsd-signature-symbol">| </span><span class="tsd-signature-type">&quot;page&quot;</span><br/><span>    </span><span class="tsd-signature-symbol">| </span><span class="tsd-signature-type">&quot;juz&quot;</span><br/><span>    </span><span class="tsd-signature-symbol">| </span><span class="tsd-signature-type">&quot;surah&quot;</span><br/><span>    </span><span class="tsd-signature-symbol">| </span><span class="tsd-signature-type">&quot;ayah&quot;</span></span><div class="tsd-comment tsd-typography"><p>can be either 'all', 'juz', 'surah', 'ayah', 'page'
 default is all</p>
-</div></li>
-<li>
-<h5>ayahMode: <span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol"> = false</span></h5></li></ul></div>
-<h4 class="tsd-returns-title">Returns <a href="../types/SurahAyah.html" class="tsd-signature-type" data-tsd-kind="Type alias">SurahAyah</a></h4><aside class="tsd-sources">
-<ul>
-<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/a8fc894/src/index.ts#L413">index.ts:413</a></li></ul></aside></li></ul></section></div>
-<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
-<div class="tsd-navigation settings">
-<details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Settings</h3></summary>
-<div class="tsd-accordion-details">
-<div class="tsd-filter-visibility">
-<h4 class="uppercase">Member Visibility</h4><form>
-<ul id="tsd-filter-options">
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div>
-<div class="tsd-theme-toggle">
-<h4 class="uppercase">Theme</h4><select id="theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div>
-<nav class="tsd-navigation primary">
-<details class="tsd-index-accordion" open><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Modules</h3></summary>
-<div class="tsd-accordion-details">
-<ul>
-<li><a href="../modules.html">quran-<wbr/>meta</a>
-<ul></ul></li></ul></div></details></nav>
-<nav class="tsd-navigation secondary menu-sticky">
-<ul>
-<li class="tsd-kind-type-alias"><a href="../types/AyahId.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-4194304-path"></rect><path d="M11.31 16V8.224H8.91V7.24H14.79V8.224H12.39V16H11.31Z" fill="var(--color-text)" id="icon-4194304-text"></path></svg>Ayah<wbr/>Id</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/AyahNo.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Ayah<wbr/>No</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Juz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/JuzMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Page.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/PageMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Sajda.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Sajda</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Surah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/SurahAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Ayah</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/SurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-variable"><a href="../variables/HizbQuarterList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-variable)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-32-path"></rect><path d="M11.106 16L8.85 7.24H9.966L11.454 13.192C11.558 13.608 11.646 13.996 11.718 14.356C11.79 14.708 11.842 14.976 11.874 15.16C11.906 14.976 11.954 14.708 12.018 14.356C12.09 13.996 12.178 13.608 12.282 13.192L13.758 7.24H14.85L12.582 16H11.106Z" fill="var(--color-text)" id="icon-32-text"></path></svg>Hizb<wbr/>Quarter<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/JuzList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Juz<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/ManzilList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Manzil<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/PageList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Page<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/RukuList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Ruku<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/SajdaList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sajda<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/SuraList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sura<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/meta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>meta</a></li>
-<li class="tsd-kind-variable"><a href="../variables/suraNamesEn.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>En</a></li>
-<li class="tsd-kind-variable"><a href="../variables/suraNamesRu.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>Ru</a></li>
-<li class="tsd-kind-function"><a href="ayaStringSplitter.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-function)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-64-path"></rect><path d="M9.39 16V7.24H14.55V8.224H10.446V11.128H14.238V12.112H10.47V16H9.39Z" fill="var(--color-text)" id="icon-64-text"></path></svg>aya<wbr/>String<wbr/>Splitter</a></li>
-<li class="tsd-kind-function"><a href="findAyaidBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Ayaid<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="findJuz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz</a></li>
-<li class="tsd-kind-function"><a href="findJuzAndShift.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>And<wbr/>Shift</a></li>
-<li class="tsd-kind-function"><a href="findJuzByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="findJuzHizb.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb</a></li>
-<li class="tsd-kind-function"><a href="findJuzHizbByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="findJuzMetaBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Meta<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="findPage.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Page</a></li>
-<li class="current tsd-kind-function"><a href="findRangeAroundAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Range<wbr/>Around<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="findSurahByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Surah<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="getAyaCountinSura.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Aya<wbr/>Countin<wbr/>Sura</a></li>
-<li class="tsd-kind-function"><a href="getSurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="isAyahJuzFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Juz<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="isAyahPageFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Page<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="nextAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>next<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="pageMeta-1.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>page<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="prevAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>prev<wbr/>Ayah</a></li></ul></nav></div></div>
-<div class="container tsd-generator">
-<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></div>
-<div class="overlay"></div><script src="../assets/main.js"></script></body></html>
\ No newline at end of file
+</div><div class="tsd-comment tsd-typography"></div></li><li><span><span class="tsd-kind-parameter">ayahMode</span>: <span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol"> = false</span></span></li></ul></div><h4 class="tsd-returns-title">Returns <a href="../types/SurahAyah.html" class="tsd-signature-type tsd-kind-type-alias">SurahAyah</a></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/7ff9baaee85a66d9099133c3db867ac28679aa62/src/findRangeAroundAyah.ts#L42">findRangeAroundAyah.ts:42</a></li></ul></aside></li></ul></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>quran-meta</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
diff --git a/docs/functions/findSurahByAyaid.html b/docs/functions/findSurahByAyaid.html
index 031bcef..daa715e 100644
--- a/docs/functions/findSurahByAyaid.html
+++ b/docs/functions/findSurahByAyaid.html
@@ -1,93 +1,4 @@
-<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>findSurahByAyaid | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script async src="../assets/search.js" id="search-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os"</script><header class="tsd-page-toolbar">
-<div class="tsd-toolbar-contents container">
-<div class="table-cell" id="tsd-search" data-base="..">
-<div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M15.7824 13.833L12.6666 10.7177C12.5259 10.5771 12.3353 10.499 12.1353 10.499H11.6259C12.4884 9.39596 13.001 8.00859 13.001 6.49937C13.001 2.90909 10.0914 0 6.50048 0C2.90959 0 0 2.90909 0 6.49937C0 10.0896 2.90959 12.9987 6.50048 12.9987C8.00996 12.9987 9.39756 12.4863 10.5008 11.6239V12.1332C10.5008 12.3332 10.5789 12.5238 10.7195 12.6644L13.8354 15.7797C14.1292 16.0734 14.6042 16.0734 14.8948 15.7797L15.7793 14.8954C16.0731 14.6017 16.0731 14.1267 15.7824 13.833ZM6.50048 10.499C4.29094 10.499 2.50018 8.71165 2.50018 6.49937C2.50018 4.29021 4.28781 2.49976 6.50048 2.49976C8.71001 2.49976 10.5008 4.28708 10.5008 6.49937C10.5008 8.70852 8.71314 10.499 6.50048 10.499Z" fill="var(--color-text)"></path></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div>
-<div class="field">
-<div id="tsd-toolbar-links"></div></div>
-<ul class="results">
-<li class="state loading">Preparing search index...</li>
-<li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div>
-<div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><rect x="1" y="3" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="7" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="11" width="14" height="2" fill="var(--color-text)"></rect></svg></a></div></div></header>
-<div class="container container-main">
-<div class="col-8 col-content">
-<div class="tsd-page-title">
-<ul class="tsd-breadcrumb">
-<li><a href="../modules.html">quran-meta</a></li>
-<li><a href="findSurahByAyaid.html">findSurahByAyaid</a></li></ul>
-<h1>Function findSurahByAyaid</h1></div>
-<section class="tsd-panel">
-<ul class="tsd-signatures tsd-kind-function">
-<li class="tsd-signature tsd-anchor-link" id="findSurahByAyaid">find<wbr/>Surah<wbr/>By<wbr/>Ayaid<span class="tsd-signature-symbol">(</span>ayaId<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="../types/SurahAyah.html" class="tsd-signature-type" data-tsd-kind="Type alias">SurahAyah</a><a href="#findSurahByAyaid" aria-label="Permalink" class="tsd-anchor-icon"><svg class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none" id="icon-anchor-a"></path><path d="M10 14a3.5 3.5 0 0 0 5 0l4 -4a3.5 3.5 0 0 0 -5 -5l-.5 .5" id="icon-anchor-b"></path><path d="M14 10a3.5 3.5 0 0 0 -5 0l-4 4a3.5 3.5 0 0 0 5 5l.5 -.5" id="icon-anchor-c"></path></svg></a></li>
-<li class="tsd-description">
-<div class="tsd-parameters">
-<h4 class="tsd-parameters-title">Parameters</h4>
-<ul class="tsd-parameter-list">
-<li>
-<h5>ayaId: <span class="tsd-signature-type">number</span></h5></li></ul></div>
-<h4 class="tsd-returns-title">Returns <a href="../types/SurahAyah.html" class="tsd-signature-type" data-tsd-kind="Type alias">SurahAyah</a></h4><aside class="tsd-sources">
-<ul>
-<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/a8fc894/src/index.ts#L140">index.ts:140</a></li></ul></aside></li></ul></section></div>
-<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
-<div class="tsd-navigation settings">
-<details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Settings</h3></summary>
-<div class="tsd-accordion-details">
-<div class="tsd-filter-visibility">
-<h4 class="uppercase">Member Visibility</h4><form>
-<ul id="tsd-filter-options">
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div>
-<div class="tsd-theme-toggle">
-<h4 class="uppercase">Theme</h4><select id="theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div>
-<nav class="tsd-navigation primary">
-<details class="tsd-index-accordion" open><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Modules</h3></summary>
-<div class="tsd-accordion-details">
-<ul>
-<li><a href="../modules.html">quran-<wbr/>meta</a>
-<ul></ul></li></ul></div></details></nav>
-<nav class="tsd-navigation secondary menu-sticky">
-<ul>
-<li class="tsd-kind-type-alias"><a href="../types/AyahId.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-4194304-path"></rect><path d="M11.31 16V8.224H8.91V7.24H14.79V8.224H12.39V16H11.31Z" fill="var(--color-text)" id="icon-4194304-text"></path></svg>Ayah<wbr/>Id</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/AyahNo.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Ayah<wbr/>No</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Juz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/JuzMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Page.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/PageMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Sajda.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Sajda</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Surah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/SurahAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Ayah</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/SurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-variable"><a href="../variables/HizbQuarterList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-variable)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-32-path"></rect><path d="M11.106 16L8.85 7.24H9.966L11.454 13.192C11.558 13.608 11.646 13.996 11.718 14.356C11.79 14.708 11.842 14.976 11.874 15.16C11.906 14.976 11.954 14.708 12.018 14.356C12.09 13.996 12.178 13.608 12.282 13.192L13.758 7.24H14.85L12.582 16H11.106Z" fill="var(--color-text)" id="icon-32-text"></path></svg>Hizb<wbr/>Quarter<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/JuzList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Juz<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/ManzilList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Manzil<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/PageList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Page<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/RukuList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Ruku<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/SajdaList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sajda<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/SuraList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sura<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/meta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>meta</a></li>
-<li class="tsd-kind-variable"><a href="../variables/suraNamesEn.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>En</a></li>
-<li class="tsd-kind-variable"><a href="../variables/suraNamesRu.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>Ru</a></li>
-<li class="tsd-kind-function"><a href="ayaStringSplitter.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-function)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-64-path"></rect><path d="M9.39 16V7.24H14.55V8.224H10.446V11.128H14.238V12.112H10.47V16H9.39Z" fill="var(--color-text)" id="icon-64-text"></path></svg>aya<wbr/>String<wbr/>Splitter</a></li>
-<li class="tsd-kind-function"><a href="findAyaidBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Ayaid<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="findJuz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz</a></li>
-<li class="tsd-kind-function"><a href="findJuzAndShift.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>And<wbr/>Shift</a></li>
-<li class="tsd-kind-function"><a href="findJuzByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="findJuzHizb.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb</a></li>
-<li class="tsd-kind-function"><a href="findJuzHizbByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="findJuzMetaBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Meta<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="findPage.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Page</a></li>
-<li class="tsd-kind-function"><a href="findRangeAroundAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Range<wbr/>Around<wbr/>Ayah</a></li>
-<li class="current tsd-kind-function"><a href="findSurahByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Surah<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="getAyaCountinSura.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Aya<wbr/>Countin<wbr/>Sura</a></li>
-<li class="tsd-kind-function"><a href="getSurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="isAyahJuzFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Juz<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="isAyahPageFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Page<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="nextAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>next<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="pageMeta-1.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>page<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="prevAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>prev<wbr/>Ayah</a></li></ul></nav></div></div>
-<div class="container tsd-generator">
-<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></div>
-<div class="overlay"></div><script src="../assets/main.js"></script></body></html>
\ No newline at end of file
+<!DOCTYPE html><html class="default" lang="en"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>findSurahByAyaid | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../modules.html">quran-meta</a></li><li><a href="findSurahByAyaid.html">findSurahByAyaid</a></li></ul><h1>Function findSurahByAyaid</h1></div><section class="tsd-panel"><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="findSurahByAyaid" class="tsd-anchor"></a><span class="tsd-kind-call-signature">find<wbr/>Surah<wbr/>By<wbr/>Ayaid</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">ayaId</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="../types/SurahAyah.html" class="tsd-signature-type tsd-kind-type-alias">SurahAyah</a><a href="#findSurahByAyaid" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-comment tsd-typography"><p>Finds the Surah (chapter) and Ayah (verse) numbers that the given Ayah ID belongs to.</p>
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">ayaId</span>: <span class="tsd-signature-type">number</span></span><div class="tsd-comment tsd-typography"><p>The Ayah ID to find the Surah and Ayah numbers for.</p>
+</div><div class="tsd-comment tsd-typography"></div></li></ul></div><h4 class="tsd-returns-title">Returns <a href="../types/SurahAyah.html" class="tsd-signature-type tsd-kind-type-alias">SurahAyah</a></h4><p>An array containing the Surah number and the Ayah number within that Surah.</p>
+<div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/7ff9baaee85a66d9099133c3db867ac28679aa62/src/findSurahByAyaid.ts#L11">findSurahByAyaid.ts:11</a></li></ul></aside></li></ul></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>quran-meta</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
diff --git a/docs/functions/getAyaCountinSura.html b/docs/functions/getAyaCountinSura.html
index cc72db6..117eab0 100644
--- a/docs/functions/getAyaCountinSura.html
+++ b/docs/functions/getAyaCountinSura.html
@@ -1,93 +1,4 @@
-<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>getAyaCountinSura | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script async src="../assets/search.js" id="search-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os"</script><header class="tsd-page-toolbar">
-<div class="tsd-toolbar-contents container">
-<div class="table-cell" id="tsd-search" data-base="..">
-<div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M15.7824 13.833L12.6666 10.7177C12.5259 10.5771 12.3353 10.499 12.1353 10.499H11.6259C12.4884 9.39596 13.001 8.00859 13.001 6.49937C13.001 2.90909 10.0914 0 6.50048 0C2.90959 0 0 2.90909 0 6.49937C0 10.0896 2.90959 12.9987 6.50048 12.9987C8.00996 12.9987 9.39756 12.4863 10.5008 11.6239V12.1332C10.5008 12.3332 10.5789 12.5238 10.7195 12.6644L13.8354 15.7797C14.1292 16.0734 14.6042 16.0734 14.8948 15.7797L15.7793 14.8954C16.0731 14.6017 16.0731 14.1267 15.7824 13.833ZM6.50048 10.499C4.29094 10.499 2.50018 8.71165 2.50018 6.49937C2.50018 4.29021 4.28781 2.49976 6.50048 2.49976C8.71001 2.49976 10.5008 4.28708 10.5008 6.49937C10.5008 8.70852 8.71314 10.499 6.50048 10.499Z" fill="var(--color-text)"></path></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div>
-<div class="field">
-<div id="tsd-toolbar-links"></div></div>
-<ul class="results">
-<li class="state loading">Preparing search index...</li>
-<li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div>
-<div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><rect x="1" y="3" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="7" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="11" width="14" height="2" fill="var(--color-text)"></rect></svg></a></div></div></header>
-<div class="container container-main">
-<div class="col-8 col-content">
-<div class="tsd-page-title">
-<ul class="tsd-breadcrumb">
-<li><a href="../modules.html">quran-meta</a></li>
-<li><a href="getAyaCountinSura.html">getAyaCountinSura</a></li></ul>
-<h1>Function getAyaCountinSura</h1></div>
-<section class="tsd-panel">
-<ul class="tsd-signatures tsd-kind-function">
-<li class="tsd-signature tsd-anchor-link" id="getAyaCountinSura">get<wbr/>Aya<wbr/>Countin<wbr/>Sura<span class="tsd-signature-symbol">(</span>surah<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><a href="#getAyaCountinSura" aria-label="Permalink" class="tsd-anchor-icon"><svg class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none" id="icon-anchor-a"></path><path d="M10 14a3.5 3.5 0 0 0 5 0l4 -4a3.5 3.5 0 0 0 -5 -5l-.5 .5" id="icon-anchor-b"></path><path d="M14 10a3.5 3.5 0 0 0 -5 0l-4 4a3.5 3.5 0 0 0 5 5l.5 -.5" id="icon-anchor-c"></path></svg></a></li>
-<li class="tsd-description">
-<div class="tsd-parameters">
-<h4 class="tsd-parameters-title">Parameters</h4>
-<ul class="tsd-parameter-list">
-<li>
-<h5>surah: <span class="tsd-signature-type">number</span></h5></li></ul></div>
-<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">number</span></h4><aside class="tsd-sources">
-<ul>
-<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/a8fc894/src/index.ts#L331">index.ts:331</a></li></ul></aside></li></ul></section></div>
-<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
-<div class="tsd-navigation settings">
-<details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Settings</h3></summary>
-<div class="tsd-accordion-details">
-<div class="tsd-filter-visibility">
-<h4 class="uppercase">Member Visibility</h4><form>
-<ul id="tsd-filter-options">
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div>
-<div class="tsd-theme-toggle">
-<h4 class="uppercase">Theme</h4><select id="theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div>
-<nav class="tsd-navigation primary">
-<details class="tsd-index-accordion" open><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Modules</h3></summary>
-<div class="tsd-accordion-details">
-<ul>
-<li><a href="../modules.html">quran-<wbr/>meta</a>
-<ul></ul></li></ul></div></details></nav>
-<nav class="tsd-navigation secondary menu-sticky">
-<ul>
-<li class="tsd-kind-type-alias"><a href="../types/AyahId.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-4194304-path"></rect><path d="M11.31 16V8.224H8.91V7.24H14.79V8.224H12.39V16H11.31Z" fill="var(--color-text)" id="icon-4194304-text"></path></svg>Ayah<wbr/>Id</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/AyahNo.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Ayah<wbr/>No</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Juz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/JuzMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Page.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/PageMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Sajda.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Sajda</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Surah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/SurahAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Ayah</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/SurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-variable"><a href="../variables/HizbQuarterList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-variable)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-32-path"></rect><path d="M11.106 16L8.85 7.24H9.966L11.454 13.192C11.558 13.608 11.646 13.996 11.718 14.356C11.79 14.708 11.842 14.976 11.874 15.16C11.906 14.976 11.954 14.708 12.018 14.356C12.09 13.996 12.178 13.608 12.282 13.192L13.758 7.24H14.85L12.582 16H11.106Z" fill="var(--color-text)" id="icon-32-text"></path></svg>Hizb<wbr/>Quarter<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/JuzList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Juz<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/ManzilList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Manzil<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/PageList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Page<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/RukuList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Ruku<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/SajdaList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sajda<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/SuraList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sura<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/meta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>meta</a></li>
-<li class="tsd-kind-variable"><a href="../variables/suraNamesEn.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>En</a></li>
-<li class="tsd-kind-variable"><a href="../variables/suraNamesRu.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>Ru</a></li>
-<li class="tsd-kind-function"><a href="ayaStringSplitter.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-function)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-64-path"></rect><path d="M9.39 16V7.24H14.55V8.224H10.446V11.128H14.238V12.112H10.47V16H9.39Z" fill="var(--color-text)" id="icon-64-text"></path></svg>aya<wbr/>String<wbr/>Splitter</a></li>
-<li class="tsd-kind-function"><a href="findAyaidBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Ayaid<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="findJuz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz</a></li>
-<li class="tsd-kind-function"><a href="findJuzAndShift.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>And<wbr/>Shift</a></li>
-<li class="tsd-kind-function"><a href="findJuzByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="findJuzHizb.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb</a></li>
-<li class="tsd-kind-function"><a href="findJuzHizbByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="findJuzMetaBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Meta<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="findPage.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Page</a></li>
-<li class="tsd-kind-function"><a href="findRangeAroundAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Range<wbr/>Around<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="findSurahByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Surah<wbr/>By<wbr/>Ayaid</a></li>
-<li class="current tsd-kind-function"><a href="getAyaCountinSura.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Aya<wbr/>Countin<wbr/>Sura</a></li>
-<li class="tsd-kind-function"><a href="getSurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="isAyahJuzFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Juz<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="isAyahPageFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Page<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="nextAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>next<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="pageMeta-1.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>page<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="prevAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>prev<wbr/>Ayah</a></li></ul></nav></div></div>
-<div class="container tsd-generator">
-<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></div>
-<div class="overlay"></div><script src="../assets/main.js"></script></body></html>
\ No newline at end of file
+<!DOCTYPE html><html class="default" lang="en"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>getAyaCountinSura | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../modules.html">quran-meta</a></li><li><a href="getAyaCountinSura.html">getAyaCountinSura</a></li></ul><h1>Function getAyaCountinSura</h1></div><section class="tsd-panel"><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="getAyaCountinSura" class="tsd-anchor"></a><span class="tsd-kind-call-signature">get<wbr/>Aya<wbr/>Countin<wbr/>Sura</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">surah</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><a href="#getAyaCountinSura" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-comment tsd-typography"><p>Get the number of ayahs (verses) in the specified surah.</p>
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">surah</span>: <span class="tsd-signature-type">number</span></span><div class="tsd-comment tsd-typography"><p>The surah number.</p>
+</div><div class="tsd-comment tsd-typography"></div></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">number</span></h4><p>The number of ayahs in the specified surah.</p>
+<div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/7ff9baaee85a66d9099133c3db867ac28679aa62/src/getAyaCountinSura.ts#L9">getAyaCountinSura.ts:9</a></li></ul></aside></li></ul></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>quran-meta</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
diff --git a/docs/functions/getSurahMeta.html b/docs/functions/getSurahMeta.html
index 1d896c9..01eb0fc 100644
--- a/docs/functions/getSurahMeta.html
+++ b/docs/functions/getSurahMeta.html
@@ -1,95 +1,4 @@
-<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>getSurahMeta | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script async src="../assets/search.js" id="search-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os"</script><header class="tsd-page-toolbar">
-<div class="tsd-toolbar-contents container">
-<div class="table-cell" id="tsd-search" data-base="..">
-<div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M15.7824 13.833L12.6666 10.7177C12.5259 10.5771 12.3353 10.499 12.1353 10.499H11.6259C12.4884 9.39596 13.001 8.00859 13.001 6.49937C13.001 2.90909 10.0914 0 6.50048 0C2.90959 0 0 2.90909 0 6.49937C0 10.0896 2.90959 12.9987 6.50048 12.9987C8.00996 12.9987 9.39756 12.4863 10.5008 11.6239V12.1332C10.5008 12.3332 10.5789 12.5238 10.7195 12.6644L13.8354 15.7797C14.1292 16.0734 14.6042 16.0734 14.8948 15.7797L15.7793 14.8954C16.0731 14.6017 16.0731 14.1267 15.7824 13.833ZM6.50048 10.499C4.29094 10.499 2.50018 8.71165 2.50018 6.49937C2.50018 4.29021 4.28781 2.49976 6.50048 2.49976C8.71001 2.49976 10.5008 4.28708 10.5008 6.49937C10.5008 8.70852 8.71314 10.499 6.50048 10.499Z" fill="var(--color-text)"></path></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div>
-<div class="field">
-<div id="tsd-toolbar-links"></div></div>
-<ul class="results">
-<li class="state loading">Preparing search index...</li>
-<li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div>
-<div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><rect x="1" y="3" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="7" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="11" width="14" height="2" fill="var(--color-text)"></rect></svg></a></div></div></header>
-<div class="container container-main">
-<div class="col-8 col-content">
-<div class="tsd-page-title">
-<ul class="tsd-breadcrumb">
-<li><a href="../modules.html">quran-meta</a></li>
-<li><a href="getSurahMeta.html">getSurahMeta</a></li></ul>
-<h1>Function getSurahMeta</h1></div>
-<section class="tsd-panel">
-<ul class="tsd-signatures tsd-kind-function">
-<li class="tsd-signature tsd-anchor-link" id="getSurahMeta">get<wbr/>Surah<wbr/>Meta<span class="tsd-signature-symbol">(</span>surah<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="../types/SurahMeta.html" class="tsd-signature-type" data-tsd-kind="Type alias">SurahMeta</a><a href="#getSurahMeta" aria-label="Permalink" class="tsd-anchor-icon"><svg class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none" id="icon-anchor-a"></path><path d="M10 14a3.5 3.5 0 0 0 5 0l4 -4a3.5 3.5 0 0 0 -5 -5l-.5 .5" id="icon-anchor-b"></path><path d="M14 10a3.5 3.5 0 0 0 -5 0l-4 4a3.5 3.5 0 0 0 5 5l.5 -.5" id="icon-anchor-c"></path></svg></a></li>
-<li class="tsd-description">
-<div class="tsd-comment tsd-typography"><p>Get Surah meta</p>
-</div>
-<div class="tsd-parameters">
-<h4 class="tsd-parameters-title">Parameters</h4>
-<ul class="tsd-parameter-list">
-<li>
-<h5>surah: <span class="tsd-signature-type">number</span></h5></li></ul></div>
-<h4 class="tsd-returns-title">Returns <a href="../types/SurahMeta.html" class="tsd-signature-type" data-tsd-kind="Type alias">SurahMeta</a></h4><aside class="tsd-sources">
-<ul>
-<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/a8fc894/src/index.ts#L299">index.ts:299</a></li></ul></aside></li></ul></section></div>
-<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
-<div class="tsd-navigation settings">
-<details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Settings</h3></summary>
-<div class="tsd-accordion-details">
-<div class="tsd-filter-visibility">
-<h4 class="uppercase">Member Visibility</h4><form>
-<ul id="tsd-filter-options">
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div>
-<div class="tsd-theme-toggle">
-<h4 class="uppercase">Theme</h4><select id="theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div>
-<nav class="tsd-navigation primary">
-<details class="tsd-index-accordion" open><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Modules</h3></summary>
-<div class="tsd-accordion-details">
-<ul>
-<li><a href="../modules.html">quran-<wbr/>meta</a>
-<ul></ul></li></ul></div></details></nav>
-<nav class="tsd-navigation secondary menu-sticky">
-<ul>
-<li class="tsd-kind-type-alias"><a href="../types/AyahId.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-4194304-path"></rect><path d="M11.31 16V8.224H8.91V7.24H14.79V8.224H12.39V16H11.31Z" fill="var(--color-text)" id="icon-4194304-text"></path></svg>Ayah<wbr/>Id</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/AyahNo.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Ayah<wbr/>No</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Juz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/JuzMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Page.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/PageMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Sajda.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Sajda</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Surah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/SurahAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Ayah</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/SurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-variable"><a href="../variables/HizbQuarterList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-variable)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-32-path"></rect><path d="M11.106 16L8.85 7.24H9.966L11.454 13.192C11.558 13.608 11.646 13.996 11.718 14.356C11.79 14.708 11.842 14.976 11.874 15.16C11.906 14.976 11.954 14.708 12.018 14.356C12.09 13.996 12.178 13.608 12.282 13.192L13.758 7.24H14.85L12.582 16H11.106Z" fill="var(--color-text)" id="icon-32-text"></path></svg>Hizb<wbr/>Quarter<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/JuzList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Juz<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/ManzilList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Manzil<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/PageList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Page<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/RukuList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Ruku<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/SajdaList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sajda<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/SuraList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sura<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/meta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>meta</a></li>
-<li class="tsd-kind-variable"><a href="../variables/suraNamesEn.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>En</a></li>
-<li class="tsd-kind-variable"><a href="../variables/suraNamesRu.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>Ru</a></li>
-<li class="tsd-kind-function"><a href="ayaStringSplitter.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-function)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-64-path"></rect><path d="M9.39 16V7.24H14.55V8.224H10.446V11.128H14.238V12.112H10.47V16H9.39Z" fill="var(--color-text)" id="icon-64-text"></path></svg>aya<wbr/>String<wbr/>Splitter</a></li>
-<li class="tsd-kind-function"><a href="findAyaidBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Ayaid<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="findJuz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz</a></li>
-<li class="tsd-kind-function"><a href="findJuzAndShift.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>And<wbr/>Shift</a></li>
-<li class="tsd-kind-function"><a href="findJuzByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="findJuzHizb.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb</a></li>
-<li class="tsd-kind-function"><a href="findJuzHizbByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="findJuzMetaBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Meta<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="findPage.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Page</a></li>
-<li class="tsd-kind-function"><a href="findRangeAroundAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Range<wbr/>Around<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="findSurahByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Surah<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="getAyaCountinSura.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Aya<wbr/>Countin<wbr/>Sura</a></li>
-<li class="current tsd-kind-function"><a href="getSurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="isAyahJuzFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Juz<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="isAyahPageFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Page<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="nextAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>next<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="pageMeta-1.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>page<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="prevAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>prev<wbr/>Ayah</a></li></ul></nav></div></div>
-<div class="container tsd-generator">
-<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></div>
-<div class="overlay"></div><script src="../assets/main.js"></script></body></html>
\ No newline at end of file
+<!DOCTYPE html><html class="default" lang="en"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>getSurahMeta | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../modules.html">quran-meta</a></li><li><a href="getSurahMeta.html">getSurahMeta</a></li></ul><h1>Function getSurahMeta</h1></div><section class="tsd-panel"><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="getSurahMeta" class="tsd-anchor"></a><span class="tsd-kind-call-signature">get<wbr/>Surah<wbr/>Meta</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">surah</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="../types/SurahMeta.html" class="tsd-signature-type tsd-kind-type-alias">SurahMeta</a><a href="#getSurahMeta" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-comment tsd-typography"><p>Gets the metadata for the specified Surah.</p>
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">surah</span>: <span class="tsd-signature-type">number</span></span><div class="tsd-comment tsd-typography"><p>The Surah to get the metadata for.</p>
+</div><div class="tsd-comment tsd-typography"></div></li></ul></div><h4 class="tsd-returns-title">Returns <a href="../types/SurahMeta.html" class="tsd-signature-type tsd-kind-type-alias">SurahMeta</a></h4><p>The metadata for the specified Surah.</p>
+<div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/7ff9baaee85a66d9099133c3db867ac28679aa62/src/getSurahMeta.ts#L11">getSurahMeta.ts:11</a></li></ul></aside></li></ul></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>quran-meta</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
diff --git a/docs/functions/isAyahJuzFirst.html b/docs/functions/isAyahJuzFirst.html
index da15277..3913588 100644
--- a/docs/functions/isAyahJuzFirst.html
+++ b/docs/functions/isAyahJuzFirst.html
@@ -1,99 +1,6 @@
-<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>isAyahJuzFirst | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script async src="../assets/search.js" id="search-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os"</script><header class="tsd-page-toolbar">
-<div class="tsd-toolbar-contents container">
-<div class="table-cell" id="tsd-search" data-base="..">
-<div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M15.7824 13.833L12.6666 10.7177C12.5259 10.5771 12.3353 10.499 12.1353 10.499H11.6259C12.4884 9.39596 13.001 8.00859 13.001 6.49937C13.001 2.90909 10.0914 0 6.50048 0C2.90959 0 0 2.90909 0 6.49937C0 10.0896 2.90959 12.9987 6.50048 12.9987C8.00996 12.9987 9.39756 12.4863 10.5008 11.6239V12.1332C10.5008 12.3332 10.5789 12.5238 10.7195 12.6644L13.8354 15.7797C14.1292 16.0734 14.6042 16.0734 14.8948 15.7797L15.7793 14.8954C16.0731 14.6017 16.0731 14.1267 15.7824 13.833ZM6.50048 10.499C4.29094 10.499 2.50018 8.71165 2.50018 6.49937C2.50018 4.29021 4.28781 2.49976 6.50048 2.49976C8.71001 2.49976 10.5008 4.28708 10.5008 6.49937C10.5008 8.70852 8.71314 10.499 6.50048 10.499Z" fill="var(--color-text)"></path></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div>
-<div class="field">
-<div id="tsd-toolbar-links"></div></div>
-<ul class="results">
-<li class="state loading">Preparing search index...</li>
-<li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div>
-<div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><rect x="1" y="3" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="7" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="11" width="14" height="2" fill="var(--color-text)"></rect></svg></a></div></div></header>
-<div class="container container-main">
-<div class="col-8 col-content">
-<div class="tsd-page-title">
-<ul class="tsd-breadcrumb">
-<li><a href="../modules.html">quran-meta</a></li>
-<li><a href="isAyahJuzFirst.html">isAyahJuzFirst</a></li></ul>
-<h1>Function isAyahJuzFirst</h1></div>
-<section class="tsd-panel">
-<ul class="tsd-signatures tsd-kind-function">
-<li class="tsd-signature tsd-anchor-link" id="isAyahJuzFirst">is<wbr/>Ayah<wbr/>Juz<wbr/>First<span class="tsd-signature-symbol">(</span>surah<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, ayah<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, ayahMode<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="../types/Juz.html" class="tsd-signature-type" data-tsd-kind="Type alias">Juz</a><a href="#isAyahJuzFirst" aria-label="Permalink" class="tsd-anchor-icon"><svg class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none" id="icon-anchor-a"></path><path d="M10 14a3.5 3.5 0 0 0 5 0l4 -4a3.5 3.5 0 0 0 -5 -5l-.5 .5" id="icon-anchor-b"></path><path d="M14 10a3.5 3.5 0 0 0 -5 0l-4 4a3.5 3.5 0 0 0 5 5l.5 -.5" id="icon-anchor-c"></path></svg></a></li>
-<li class="tsd-description">
-<div class="tsd-comment tsd-typography"><p>Returns Positive number if aya is first ayah of juz, number is juz number</p>
-</div>
-<div class="tsd-parameters">
-<h4 class="tsd-parameters-title">Parameters</h4>
-<ul class="tsd-parameter-list">
-<li>
-<h5>surah: <span class="tsd-signature-type">number</span></h5></li>
-<li>
-<h5>ayah: <span class="tsd-signature-type">number</span></h5></li>
-<li>
-<h5>ayahMode: <span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol"> = false</span></h5></li></ul></div>
-<h4 class="tsd-returns-title">Returns <a href="../types/Juz.html" class="tsd-signature-type" data-tsd-kind="Type alias">Juz</a></h4><aside class="tsd-sources">
-<ul>
-<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/a8fc894/src/index.ts#L203">index.ts:203</a></li></ul></aside></li></ul></section></div>
-<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
-<div class="tsd-navigation settings">
-<details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Settings</h3></summary>
-<div class="tsd-accordion-details">
-<div class="tsd-filter-visibility">
-<h4 class="uppercase">Member Visibility</h4><form>
-<ul id="tsd-filter-options">
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div>
-<div class="tsd-theme-toggle">
-<h4 class="uppercase">Theme</h4><select id="theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div>
-<nav class="tsd-navigation primary">
-<details class="tsd-index-accordion" open><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Modules</h3></summary>
-<div class="tsd-accordion-details">
-<ul>
-<li><a href="../modules.html">quran-<wbr/>meta</a>
-<ul></ul></li></ul></div></details></nav>
-<nav class="tsd-navigation secondary menu-sticky">
-<ul>
-<li class="tsd-kind-type-alias"><a href="../types/AyahId.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-4194304-path"></rect><path d="M11.31 16V8.224H8.91V7.24H14.79V8.224H12.39V16H11.31Z" fill="var(--color-text)" id="icon-4194304-text"></path></svg>Ayah<wbr/>Id</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/AyahNo.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Ayah<wbr/>No</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Juz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/JuzMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Page.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/PageMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Sajda.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Sajda</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Surah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/SurahAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Ayah</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/SurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-variable"><a href="../variables/HizbQuarterList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-variable)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-32-path"></rect><path d="M11.106 16L8.85 7.24H9.966L11.454 13.192C11.558 13.608 11.646 13.996 11.718 14.356C11.79 14.708 11.842 14.976 11.874 15.16C11.906 14.976 11.954 14.708 12.018 14.356C12.09 13.996 12.178 13.608 12.282 13.192L13.758 7.24H14.85L12.582 16H11.106Z" fill="var(--color-text)" id="icon-32-text"></path></svg>Hizb<wbr/>Quarter<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/JuzList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Juz<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/ManzilList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Manzil<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/PageList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Page<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/RukuList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Ruku<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/SajdaList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sajda<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/SuraList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sura<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/meta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>meta</a></li>
-<li class="tsd-kind-variable"><a href="../variables/suraNamesEn.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>En</a></li>
-<li class="tsd-kind-variable"><a href="../variables/suraNamesRu.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>Ru</a></li>
-<li class="tsd-kind-function"><a href="ayaStringSplitter.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-function)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-64-path"></rect><path d="M9.39 16V7.24H14.55V8.224H10.446V11.128H14.238V12.112H10.47V16H9.39Z" fill="var(--color-text)" id="icon-64-text"></path></svg>aya<wbr/>String<wbr/>Splitter</a></li>
-<li class="tsd-kind-function"><a href="findAyaidBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Ayaid<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="findJuz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz</a></li>
-<li class="tsd-kind-function"><a href="findJuzAndShift.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>And<wbr/>Shift</a></li>
-<li class="tsd-kind-function"><a href="findJuzByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="findJuzHizb.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb</a></li>
-<li class="tsd-kind-function"><a href="findJuzHizbByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="findJuzMetaBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Meta<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="findPage.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Page</a></li>
-<li class="tsd-kind-function"><a href="findRangeAroundAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Range<wbr/>Around<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="findSurahByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Surah<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="getAyaCountinSura.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Aya<wbr/>Countin<wbr/>Sura</a></li>
-<li class="tsd-kind-function"><a href="getSurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Surah<wbr/>Meta</a></li>
-<li class="current tsd-kind-function"><a href="isAyahJuzFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Juz<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="isAyahPageFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Page<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="nextAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>next<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="pageMeta-1.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>page<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="prevAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>prev<wbr/>Ayah</a></li></ul></nav></div></div>
-<div class="container tsd-generator">
-<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></div>
-<div class="overlay"></div><script src="../assets/main.js"></script></body></html>
\ No newline at end of file
+<!DOCTYPE html><html class="default" lang="en"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>isAyahJuzFirst | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../modules.html">quran-meta</a></li><li><a href="isAyahJuzFirst.html">isAyahJuzFirst</a></li></ul><h1>Function isAyahJuzFirst</h1></div><section class="tsd-panel"><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="isAyahJuzFirst" class="tsd-anchor"></a><span class="tsd-kind-call-signature">is<wbr/>Ayah<wbr/>Juz<wbr/>First</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">surah</span>, <span class="tsd-kind-parameter">ayah</span>, <span class="tsd-kind-parameter">ayahMode</span><span class="tsd-signature-symbol">?</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="../types/Juz.html" class="tsd-signature-type tsd-kind-type-alias">Juz</a><a href="#isAyahJuzFirst" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-comment tsd-typography"><p>Returns the Juz (part) number that the given Ayah (verse) belongs to.</p>
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">surah</span>: <span class="tsd-signature-type">number</span></span><div class="tsd-comment tsd-typography"><p>The Surah (chapter) number.</p>
+</div><div class="tsd-comment tsd-typography"></div></li><li><span><span class="tsd-kind-parameter">ayah</span>: <span class="tsd-signature-type">number</span></span><div class="tsd-comment tsd-typography"><p>The Ayah (verse) number.</p>
+</div><div class="tsd-comment tsd-typography"></div></li><li><span><span class="tsd-kind-parameter">ayahMode</span>: <span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol"> = false</span></span><div class="tsd-comment tsd-typography"><p>If true, the <code>ayah</code> parameter is treated as an Ayah ID instead of a Surah and Ayah number.</p>
+</div><div class="tsd-comment tsd-typography"></div></li></ul></div><h4 class="tsd-returns-title">Returns <a href="../types/Juz.html" class="tsd-signature-type tsd-kind-type-alias">Juz</a></h4><p>The Juz (part) number that the given Ayah belongs to. Returns Positive number if aya is first ayah of juz, number is juz number</p>
+<div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/7ff9baaee85a66d9099133c3db867ac28679aa62/src/isAyahJuzFirst.ts#L16">isAyahJuzFirst.ts:16</a></li></ul></aside></li></ul></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>quran-meta</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
diff --git a/docs/functions/isAyahPageFirst.html b/docs/functions/isAyahPageFirst.html
index 6a0e23e..f8c9a56 100644
--- a/docs/functions/isAyahPageFirst.html
+++ b/docs/functions/isAyahPageFirst.html
@@ -1,99 +1,6 @@
-<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>isAyahPageFirst | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script async src="../assets/search.js" id="search-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os"</script><header class="tsd-page-toolbar">
-<div class="tsd-toolbar-contents container">
-<div class="table-cell" id="tsd-search" data-base="..">
-<div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M15.7824 13.833L12.6666 10.7177C12.5259 10.5771 12.3353 10.499 12.1353 10.499H11.6259C12.4884 9.39596 13.001 8.00859 13.001 6.49937C13.001 2.90909 10.0914 0 6.50048 0C2.90959 0 0 2.90909 0 6.49937C0 10.0896 2.90959 12.9987 6.50048 12.9987C8.00996 12.9987 9.39756 12.4863 10.5008 11.6239V12.1332C10.5008 12.3332 10.5789 12.5238 10.7195 12.6644L13.8354 15.7797C14.1292 16.0734 14.6042 16.0734 14.8948 15.7797L15.7793 14.8954C16.0731 14.6017 16.0731 14.1267 15.7824 13.833ZM6.50048 10.499C4.29094 10.499 2.50018 8.71165 2.50018 6.49937C2.50018 4.29021 4.28781 2.49976 6.50048 2.49976C8.71001 2.49976 10.5008 4.28708 10.5008 6.49937C10.5008 8.70852 8.71314 10.499 6.50048 10.499Z" fill="var(--color-text)"></path></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div>
-<div class="field">
-<div id="tsd-toolbar-links"></div></div>
-<ul class="results">
-<li class="state loading">Preparing search index...</li>
-<li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div>
-<div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><rect x="1" y="3" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="7" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="11" width="14" height="2" fill="var(--color-text)"></rect></svg></a></div></div></header>
-<div class="container container-main">
-<div class="col-8 col-content">
-<div class="tsd-page-title">
-<ul class="tsd-breadcrumb">
-<li><a href="../modules.html">quran-meta</a></li>
-<li><a href="isAyahPageFirst.html">isAyahPageFirst</a></li></ul>
-<h1>Function isAyahPageFirst</h1></div>
-<section class="tsd-panel">
-<ul class="tsd-signatures tsd-kind-function">
-<li class="tsd-signature tsd-anchor-link" id="isAyahPageFirst">is<wbr/>Ayah<wbr/>Page<wbr/>First<span class="tsd-signature-symbol">(</span>surah<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, ayah<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, ayahMode<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="../types/Juz.html" class="tsd-signature-type" data-tsd-kind="Type alias">Juz</a><a href="#isAyahPageFirst" aria-label="Permalink" class="tsd-anchor-icon"><svg class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none" id="icon-anchor-a"></path><path d="M10 14a3.5 3.5 0 0 0 5 0l4 -4a3.5 3.5 0 0 0 -5 -5l-.5 .5" id="icon-anchor-b"></path><path d="M14 10a3.5 3.5 0 0 0 -5 0l-4 4a3.5 3.5 0 0 0 5 5l.5 -.5" id="icon-anchor-c"></path></svg></a></li>
-<li class="tsd-description">
-<div class="tsd-comment tsd-typography"><p>Returns Positive number if aya is first ayah of juz, number is juz number</p>
-</div>
-<div class="tsd-parameters">
-<h4 class="tsd-parameters-title">Parameters</h4>
-<ul class="tsd-parameter-list">
-<li>
-<h5>surah: <span class="tsd-signature-type">number</span></h5></li>
-<li>
-<h5>ayah: <span class="tsd-signature-type">number</span></h5></li>
-<li>
-<h5>ayahMode: <span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol"> = false</span></h5></li></ul></div>
-<h4 class="tsd-returns-title">Returns <a href="../types/Juz.html" class="tsd-signature-type" data-tsd-kind="Type alias">Juz</a></h4><aside class="tsd-sources">
-<ul>
-<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/a8fc894/src/index.ts#L221">index.ts:221</a></li></ul></aside></li></ul></section></div>
-<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
-<div class="tsd-navigation settings">
-<details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Settings</h3></summary>
-<div class="tsd-accordion-details">
-<div class="tsd-filter-visibility">
-<h4 class="uppercase">Member Visibility</h4><form>
-<ul id="tsd-filter-options">
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div>
-<div class="tsd-theme-toggle">
-<h4 class="uppercase">Theme</h4><select id="theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div>
-<nav class="tsd-navigation primary">
-<details class="tsd-index-accordion" open><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Modules</h3></summary>
-<div class="tsd-accordion-details">
-<ul>
-<li><a href="../modules.html">quran-<wbr/>meta</a>
-<ul></ul></li></ul></div></details></nav>
-<nav class="tsd-navigation secondary menu-sticky">
-<ul>
-<li class="tsd-kind-type-alias"><a href="../types/AyahId.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-4194304-path"></rect><path d="M11.31 16V8.224H8.91V7.24H14.79V8.224H12.39V16H11.31Z" fill="var(--color-text)" id="icon-4194304-text"></path></svg>Ayah<wbr/>Id</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/AyahNo.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Ayah<wbr/>No</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Juz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/JuzMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Page.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/PageMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Sajda.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Sajda</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Surah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/SurahAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Ayah</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/SurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-variable"><a href="../variables/HizbQuarterList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-variable)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-32-path"></rect><path d="M11.106 16L8.85 7.24H9.966L11.454 13.192C11.558 13.608 11.646 13.996 11.718 14.356C11.79 14.708 11.842 14.976 11.874 15.16C11.906 14.976 11.954 14.708 12.018 14.356C12.09 13.996 12.178 13.608 12.282 13.192L13.758 7.24H14.85L12.582 16H11.106Z" fill="var(--color-text)" id="icon-32-text"></path></svg>Hizb<wbr/>Quarter<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/JuzList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Juz<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/ManzilList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Manzil<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/PageList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Page<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/RukuList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Ruku<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/SajdaList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sajda<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/SuraList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sura<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/meta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>meta</a></li>
-<li class="tsd-kind-variable"><a href="../variables/suraNamesEn.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>En</a></li>
-<li class="tsd-kind-variable"><a href="../variables/suraNamesRu.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>Ru</a></li>
-<li class="tsd-kind-function"><a href="ayaStringSplitter.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-function)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-64-path"></rect><path d="M9.39 16V7.24H14.55V8.224H10.446V11.128H14.238V12.112H10.47V16H9.39Z" fill="var(--color-text)" id="icon-64-text"></path></svg>aya<wbr/>String<wbr/>Splitter</a></li>
-<li class="tsd-kind-function"><a href="findAyaidBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Ayaid<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="findJuz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz</a></li>
-<li class="tsd-kind-function"><a href="findJuzAndShift.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>And<wbr/>Shift</a></li>
-<li class="tsd-kind-function"><a href="findJuzByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="findJuzHizb.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb</a></li>
-<li class="tsd-kind-function"><a href="findJuzHizbByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="findJuzMetaBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Meta<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="findPage.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Page</a></li>
-<li class="tsd-kind-function"><a href="findRangeAroundAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Range<wbr/>Around<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="findSurahByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Surah<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="getAyaCountinSura.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Aya<wbr/>Countin<wbr/>Sura</a></li>
-<li class="tsd-kind-function"><a href="getSurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="isAyahJuzFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Juz<wbr/>First</a></li>
-<li class="current tsd-kind-function"><a href="isAyahPageFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Page<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="nextAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>next<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="pageMeta-1.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>page<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="prevAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>prev<wbr/>Ayah</a></li></ul></nav></div></div>
-<div class="container tsd-generator">
-<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></div>
-<div class="overlay"></div><script src="../assets/main.js"></script></body></html>
\ No newline at end of file
+<!DOCTYPE html><html class="default" lang="en"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>isAyahPageFirst | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../modules.html">quran-meta</a></li><li><a href="isAyahPageFirst.html">isAyahPageFirst</a></li></ul><h1>Function isAyahPageFirst</h1></div><section class="tsd-panel"><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="isAyahPageFirst" class="tsd-anchor"></a><span class="tsd-kind-call-signature">is<wbr/>Ayah<wbr/>Page<wbr/>First</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">surah</span>, <span class="tsd-kind-parameter">ayah</span>, <span class="tsd-kind-parameter">ayahMode</span><span class="tsd-signature-symbol">?</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="../types/Juz.html" class="tsd-signature-type tsd-kind-type-alias">Juz</a><a href="#isAyahPageFirst" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-comment tsd-typography"><p>Determines if the given ayah is the first ayah of a juz.</p>
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">surah</span>: <span class="tsd-signature-type">number</span></span><div class="tsd-comment tsd-typography"><p>The surah number.</p>
+</div><div class="tsd-comment tsd-typography"></div></li><li><span><span class="tsd-kind-parameter">ayah</span>: <span class="tsd-signature-type">number</span></span><div class="tsd-comment tsd-typography"><p>The ayah number.</p>
+</div><div class="tsd-comment tsd-typography"></div></li><li><span><span class="tsd-kind-parameter">ayahMode</span>: <span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol"> = false</span></span><div class="tsd-comment tsd-typography"><p>Optional flag to indicate if the ayah number is already a valid ayah ID.</p>
+</div><div class="tsd-comment tsd-typography"></div></li></ul></div><h4 class="tsd-returns-title">Returns <a href="../types/Juz.html" class="tsd-signature-type tsd-kind-type-alias">Juz</a></h4><p>The juz number if the ayah is the first ayah of the juz, otherwise -1.</p>
+<div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/7ff9baaee85a66d9099133c3db867ac28679aa62/src/isAyahPageFirst.ts#L15">isAyahPageFirst.ts:15</a></li></ul></aside></li></ul></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>quran-meta</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
diff --git a/docs/functions/nextAyah.html b/docs/functions/nextAyah.html
index 3028eac..21eb1d4 100644
--- a/docs/functions/nextAyah.html
+++ b/docs/functions/nextAyah.html
@@ -1,95 +1,5 @@
-<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>nextAyah | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script async src="../assets/search.js" id="search-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os"</script><header class="tsd-page-toolbar">
-<div class="tsd-toolbar-contents container">
-<div class="table-cell" id="tsd-search" data-base="..">
-<div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M15.7824 13.833L12.6666 10.7177C12.5259 10.5771 12.3353 10.499 12.1353 10.499H11.6259C12.4884 9.39596 13.001 8.00859 13.001 6.49937C13.001 2.90909 10.0914 0 6.50048 0C2.90959 0 0 2.90909 0 6.49937C0 10.0896 2.90959 12.9987 6.50048 12.9987C8.00996 12.9987 9.39756 12.4863 10.5008 11.6239V12.1332C10.5008 12.3332 10.5789 12.5238 10.7195 12.6644L13.8354 15.7797C14.1292 16.0734 14.6042 16.0734 14.8948 15.7797L15.7793 14.8954C16.0731 14.6017 16.0731 14.1267 15.7824 13.833ZM6.50048 10.499C4.29094 10.499 2.50018 8.71165 2.50018 6.49937C2.50018 4.29021 4.28781 2.49976 6.50048 2.49976C8.71001 2.49976 10.5008 4.28708 10.5008 6.49937C10.5008 8.70852 8.71314 10.499 6.50048 10.499Z" fill="var(--color-text)"></path></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div>
-<div class="field">
-<div id="tsd-toolbar-links"></div></div>
-<ul class="results">
-<li class="state loading">Preparing search index...</li>
-<li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div>
-<div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><rect x="1" y="3" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="7" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="11" width="14" height="2" fill="var(--color-text)"></rect></svg></a></div></div></header>
-<div class="container container-main">
-<div class="col-8 col-content">
-<div class="tsd-page-title">
-<ul class="tsd-breadcrumb">
-<li><a href="../modules.html">quran-meta</a></li>
-<li><a href="nextAyah.html">nextAyah</a></li></ul>
-<h1>Function nextAyah</h1></div>
-<section class="tsd-panel">
-<ul class="tsd-signatures tsd-kind-function">
-<li class="tsd-signature tsd-anchor-link" id="nextAyah">next<wbr/>Ayah<span class="tsd-signature-symbol">(</span>surah<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, ayah<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="../types/SurahAyah.html" class="tsd-signature-type" data-tsd-kind="Type alias">SurahAyah</a><a href="#nextAyah" aria-label="Permalink" class="tsd-anchor-icon"><svg class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none" id="icon-anchor-a"></path><path d="M10 14a3.5 3.5 0 0 0 5 0l4 -4a3.5 3.5 0 0 0 -5 -5l-.5 .5" id="icon-anchor-b"></path><path d="M14 10a3.5 3.5 0 0 0 -5 0l-4 4a3.5 3.5 0 0 0 5 5l.5 -.5" id="icon-anchor-c"></path></svg></a></li>
-<li class="tsd-description">
-<div class="tsd-parameters">
-<h4 class="tsd-parameters-title">Parameters</h4>
-<ul class="tsd-parameter-list">
-<li>
-<h5>surah: <span class="tsd-signature-type">number</span></h5></li>
-<li>
-<h5>ayah: <span class="tsd-signature-type">number</span></h5></li></ul></div>
-<h4 class="tsd-returns-title">Returns <a href="../types/SurahAyah.html" class="tsd-signature-type" data-tsd-kind="Type alias">SurahAyah</a></h4><aside class="tsd-sources">
-<ul>
-<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/a8fc894/src/index.ts#L340">index.ts:340</a></li></ul></aside></li></ul></section></div>
-<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
-<div class="tsd-navigation settings">
-<details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Settings</h3></summary>
-<div class="tsd-accordion-details">
-<div class="tsd-filter-visibility">
-<h4 class="uppercase">Member Visibility</h4><form>
-<ul id="tsd-filter-options">
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div>
-<div class="tsd-theme-toggle">
-<h4 class="uppercase">Theme</h4><select id="theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div>
-<nav class="tsd-navigation primary">
-<details class="tsd-index-accordion" open><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Modules</h3></summary>
-<div class="tsd-accordion-details">
-<ul>
-<li><a href="../modules.html">quran-<wbr/>meta</a>
-<ul></ul></li></ul></div></details></nav>
-<nav class="tsd-navigation secondary menu-sticky">
-<ul>
-<li class="tsd-kind-type-alias"><a href="../types/AyahId.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-4194304-path"></rect><path d="M11.31 16V8.224H8.91V7.24H14.79V8.224H12.39V16H11.31Z" fill="var(--color-text)" id="icon-4194304-text"></path></svg>Ayah<wbr/>Id</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/AyahNo.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Ayah<wbr/>No</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Juz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/JuzMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Page.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/PageMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Sajda.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Sajda</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Surah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/SurahAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Ayah</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/SurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-variable"><a href="../variables/HizbQuarterList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-variable)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-32-path"></rect><path d="M11.106 16L8.85 7.24H9.966L11.454 13.192C11.558 13.608 11.646 13.996 11.718 14.356C11.79 14.708 11.842 14.976 11.874 15.16C11.906 14.976 11.954 14.708 12.018 14.356C12.09 13.996 12.178 13.608 12.282 13.192L13.758 7.24H14.85L12.582 16H11.106Z" fill="var(--color-text)" id="icon-32-text"></path></svg>Hizb<wbr/>Quarter<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/JuzList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Juz<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/ManzilList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Manzil<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/PageList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Page<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/RukuList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Ruku<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/SajdaList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sajda<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/SuraList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sura<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/meta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>meta</a></li>
-<li class="tsd-kind-variable"><a href="../variables/suraNamesEn.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>En</a></li>
-<li class="tsd-kind-variable"><a href="../variables/suraNamesRu.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>Ru</a></li>
-<li class="tsd-kind-function"><a href="ayaStringSplitter.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-function)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-64-path"></rect><path d="M9.39 16V7.24H14.55V8.224H10.446V11.128H14.238V12.112H10.47V16H9.39Z" fill="var(--color-text)" id="icon-64-text"></path></svg>aya<wbr/>String<wbr/>Splitter</a></li>
-<li class="tsd-kind-function"><a href="findAyaidBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Ayaid<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="findJuz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz</a></li>
-<li class="tsd-kind-function"><a href="findJuzAndShift.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>And<wbr/>Shift</a></li>
-<li class="tsd-kind-function"><a href="findJuzByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="findJuzHizb.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb</a></li>
-<li class="tsd-kind-function"><a href="findJuzHizbByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="findJuzMetaBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Meta<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="findPage.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Page</a></li>
-<li class="tsd-kind-function"><a href="findRangeAroundAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Range<wbr/>Around<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="findSurahByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Surah<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="getAyaCountinSura.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Aya<wbr/>Countin<wbr/>Sura</a></li>
-<li class="tsd-kind-function"><a href="getSurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="isAyahJuzFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Juz<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="isAyahPageFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Page<wbr/>First</a></li>
-<li class="current tsd-kind-function"><a href="nextAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>next<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="pageMeta-1.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>page<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="prevAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>prev<wbr/>Ayah</a></li></ul></nav></div></div>
-<div class="container tsd-generator">
-<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></div>
-<div class="overlay"></div><script src="../assets/main.js"></script></body></html>
\ No newline at end of file
+<!DOCTYPE html><html class="default" lang="en"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>nextAyah | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../modules.html">quran-meta</a></li><li><a href="nextAyah.html">nextAyah</a></li></ul><h1>Function nextAyah</h1></div><section class="tsd-panel"><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="nextAyah" class="tsd-anchor"></a><span class="tsd-kind-call-signature">next<wbr/>Ayah</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">surah</span>, <span class="tsd-kind-parameter">ayah</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="../types/SurahAyah.html" class="tsd-signature-type tsd-kind-type-alias">SurahAyah</a><a href="#nextAyah" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-comment tsd-typography"><p>Get the next ayah for the given surah and ayah number.</p>
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">surah</span>: <span class="tsd-signature-type">number</span></span><div class="tsd-comment tsd-typography"><p>The surah number.</p>
+</div><div class="tsd-comment tsd-typography"></div></li><li><span><span class="tsd-kind-parameter">ayah</span>: <span class="tsd-signature-type">number</span></span><div class="tsd-comment tsd-typography"><p>The ayah number within the surah.</p>
+</div><div class="tsd-comment tsd-typography"></div></li></ul></div><h4 class="tsd-returns-title">Returns <a href="../types/SurahAyah.html" class="tsd-signature-type tsd-kind-type-alias">SurahAyah</a></h4><p>The surah and ayah number of the next ayah.</p>
+<div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/7ff9baaee85a66d9099133c3db867ac28679aa62/src/nextAyah.ts#L12">nextAyah.ts:12</a></li></ul></aside></li></ul></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>quran-meta</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
diff --git a/docs/functions/pageMeta-1.html b/docs/functions/pageMeta-1.html
index 3442dcc..1469860 100644
--- a/docs/functions/pageMeta-1.html
+++ b/docs/functions/pageMeta-1.html
@@ -1,95 +1,5 @@
-<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>pageMeta | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script async src="../assets/search.js" id="search-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os"</script><header class="tsd-page-toolbar">
-<div class="tsd-toolbar-contents container">
-<div class="table-cell" id="tsd-search" data-base="..">
-<div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M15.7824 13.833L12.6666 10.7177C12.5259 10.5771 12.3353 10.499 12.1353 10.499H11.6259C12.4884 9.39596 13.001 8.00859 13.001 6.49937C13.001 2.90909 10.0914 0 6.50048 0C2.90959 0 0 2.90909 0 6.49937C0 10.0896 2.90959 12.9987 6.50048 12.9987C8.00996 12.9987 9.39756 12.4863 10.5008 11.6239V12.1332C10.5008 12.3332 10.5789 12.5238 10.7195 12.6644L13.8354 15.7797C14.1292 16.0734 14.6042 16.0734 14.8948 15.7797L15.7793 14.8954C16.0731 14.6017 16.0731 14.1267 15.7824 13.833ZM6.50048 10.499C4.29094 10.499 2.50018 8.71165 2.50018 6.49937C2.50018 4.29021 4.28781 2.49976 6.50048 2.49976C8.71001 2.49976 10.5008 4.28708 10.5008 6.49937C10.5008 8.70852 8.71314 10.499 6.50048 10.499Z" fill="var(--color-text)"></path></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div>
-<div class="field">
-<div id="tsd-toolbar-links"></div></div>
-<ul class="results">
-<li class="state loading">Preparing search index...</li>
-<li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div>
-<div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><rect x="1" y="3" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="7" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="11" width="14" height="2" fill="var(--color-text)"></rect></svg></a></div></div></header>
-<div class="container container-main">
-<div class="col-8 col-content">
-<div class="tsd-page-title">
-<ul class="tsd-breadcrumb">
-<li><a href="../modules.html">quran-meta</a></li>
-<li><a href="pageMeta-1.html">pageMeta</a></li></ul>
-<h1>Function pageMeta</h1></div>
-<section class="tsd-panel">
-<ul class="tsd-signatures tsd-kind-function">
-<li class="tsd-signature tsd-anchor-link" id="pageMeta">page<wbr/>Meta<span class="tsd-signature-symbol">(</span>pageNum<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="../types/PageMeta.html" class="tsd-signature-type" data-tsd-kind="Type alias">PageMeta</a><a href="#pageMeta" aria-label="Permalink" class="tsd-anchor-icon"><svg class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none" id="icon-anchor-a"></path><path d="M10 14a3.5 3.5 0 0 0 5 0l4 -4a3.5 3.5 0 0 0 -5 -5l-.5 .5" id="icon-anchor-b"></path><path d="M14 10a3.5 3.5 0 0 0 -5 0l-4 4a3.5 3.5 0 0 0 5 5l.5 -.5" id="icon-anchor-c"></path></svg></a></li>
-<li class="tsd-description">
-<div class="tsd-comment tsd-typography"><p>Get the meta, first and last ayahs of the page</p>
-</div>
-<div class="tsd-parameters">
-<h4 class="tsd-parameters-title">Parameters</h4>
-<ul class="tsd-parameter-list">
-<li>
-<h5>pageNum: <span class="tsd-signature-type">number</span></h5></li></ul></div>
-<h4 class="tsd-returns-title">Returns <a href="../types/PageMeta.html" class="tsd-signature-type" data-tsd-kind="Type alias">PageMeta</a></h4><aside class="tsd-sources">
-<ul>
-<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/a8fc894/src/index.ts#L364">index.ts:364</a></li></ul></aside></li></ul></section></div>
-<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
-<div class="tsd-navigation settings">
-<details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Settings</h3></summary>
-<div class="tsd-accordion-details">
-<div class="tsd-filter-visibility">
-<h4 class="uppercase">Member Visibility</h4><form>
-<ul id="tsd-filter-options">
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div>
-<div class="tsd-theme-toggle">
-<h4 class="uppercase">Theme</h4><select id="theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div>
-<nav class="tsd-navigation primary">
-<details class="tsd-index-accordion" open><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Modules</h3></summary>
-<div class="tsd-accordion-details">
-<ul>
-<li><a href="../modules.html">quran-<wbr/>meta</a>
-<ul></ul></li></ul></div></details></nav>
-<nav class="tsd-navigation secondary menu-sticky">
-<ul>
-<li class="tsd-kind-type-alias"><a href="../types/AyahId.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-4194304-path"></rect><path d="M11.31 16V8.224H8.91V7.24H14.79V8.224H12.39V16H11.31Z" fill="var(--color-text)" id="icon-4194304-text"></path></svg>Ayah<wbr/>Id</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/AyahNo.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Ayah<wbr/>No</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Juz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/JuzMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Page.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/PageMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Sajda.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Sajda</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Surah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/SurahAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Ayah</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/SurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-variable"><a href="../variables/HizbQuarterList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-variable)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-32-path"></rect><path d="M11.106 16L8.85 7.24H9.966L11.454 13.192C11.558 13.608 11.646 13.996 11.718 14.356C11.79 14.708 11.842 14.976 11.874 15.16C11.906 14.976 11.954 14.708 12.018 14.356C12.09 13.996 12.178 13.608 12.282 13.192L13.758 7.24H14.85L12.582 16H11.106Z" fill="var(--color-text)" id="icon-32-text"></path></svg>Hizb<wbr/>Quarter<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/JuzList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Juz<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/ManzilList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Manzil<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/PageList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Page<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/RukuList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Ruku<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/SajdaList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sajda<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/SuraList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sura<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/meta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>meta</a></li>
-<li class="tsd-kind-variable"><a href="../variables/suraNamesEn.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>En</a></li>
-<li class="tsd-kind-variable"><a href="../variables/suraNamesRu.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>Ru</a></li>
-<li class="tsd-kind-function"><a href="ayaStringSplitter.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-function)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-64-path"></rect><path d="M9.39 16V7.24H14.55V8.224H10.446V11.128H14.238V12.112H10.47V16H9.39Z" fill="var(--color-text)" id="icon-64-text"></path></svg>aya<wbr/>String<wbr/>Splitter</a></li>
-<li class="tsd-kind-function"><a href="findAyaidBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Ayaid<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="findJuz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz</a></li>
-<li class="tsd-kind-function"><a href="findJuzAndShift.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>And<wbr/>Shift</a></li>
-<li class="tsd-kind-function"><a href="findJuzByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="findJuzHizb.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb</a></li>
-<li class="tsd-kind-function"><a href="findJuzHizbByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="findJuzMetaBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Meta<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="findPage.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Page</a></li>
-<li class="tsd-kind-function"><a href="findRangeAroundAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Range<wbr/>Around<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="findSurahByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Surah<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="getAyaCountinSura.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Aya<wbr/>Countin<wbr/>Sura</a></li>
-<li class="tsd-kind-function"><a href="getSurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="isAyahJuzFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Juz<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="isAyahPageFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Page<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="nextAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>next<wbr/>Ayah</a></li>
-<li class="current tsd-kind-function"><a href="pageMeta-1.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>page<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="prevAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>prev<wbr/>Ayah</a></li></ul></nav></div></div>
-<div class="container tsd-generator">
-<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></div>
-<div class="overlay"></div><script src="../assets/main.js"></script></body></html>
\ No newline at end of file
+<!DOCTYPE html><html class="default" lang="en"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>pageMeta | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../modules.html">quran-meta</a></li><li><a href="pageMeta-1.html">pageMeta</a></li></ul><h1>Function pageMeta</h1></div><section class="tsd-panel"><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="pageMeta" class="tsd-anchor"></a><span class="tsd-kind-call-signature">page<wbr/>Meta</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">pageNum</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="../types/PageMeta.html" class="tsd-signature-type tsd-kind-type-alias">PageMeta</a><a href="#pageMeta" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-comment tsd-typography"><p>Retrieves the page metadata for the specified page number.</p>
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">pageNum</span>: <span class="tsd-signature-type">number</span></span><div class="tsd-comment tsd-typography"><p>The page number to retrieve metadata for.</p>
+</div><div class="tsd-comment tsd-typography"></div></li></ul></div><h4 class="tsd-returns-title">Returns <a href="../types/PageMeta.html" class="tsd-signature-type tsd-kind-type-alias">PageMeta</a></h4><p>The page metadata, including the first and last ayah IDs on the page.</p>
+<div class="tsd-comment tsd-typography"><div class="tsd-tag-Throws"><h4 class="tsd-anchor-link"><a id="Throws" class="tsd-anchor"></a>Throws<a href="#Throws" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h4><p>If the page number is out of the valid range (1 to <code>meta.numPages</code>).</p>
+</div></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/7ff9baaee85a66d9099133c3db867ac28679aa62/src/pageMeta.ts#L13">pageMeta.ts:13</a></li></ul></aside></li></ul></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>quran-meta</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
diff --git a/docs/functions/prevAyah.html b/docs/functions/prevAyah.html
index 08b98e8..28c2ac3 100644
--- a/docs/functions/prevAyah.html
+++ b/docs/functions/prevAyah.html
@@ -1,95 +1,5 @@
-<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>prevAyah | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script async src="../assets/search.js" id="search-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os"</script><header class="tsd-page-toolbar">
-<div class="tsd-toolbar-contents container">
-<div class="table-cell" id="tsd-search" data-base="..">
-<div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M15.7824 13.833L12.6666 10.7177C12.5259 10.5771 12.3353 10.499 12.1353 10.499H11.6259C12.4884 9.39596 13.001 8.00859 13.001 6.49937C13.001 2.90909 10.0914 0 6.50048 0C2.90959 0 0 2.90909 0 6.49937C0 10.0896 2.90959 12.9987 6.50048 12.9987C8.00996 12.9987 9.39756 12.4863 10.5008 11.6239V12.1332C10.5008 12.3332 10.5789 12.5238 10.7195 12.6644L13.8354 15.7797C14.1292 16.0734 14.6042 16.0734 14.8948 15.7797L15.7793 14.8954C16.0731 14.6017 16.0731 14.1267 15.7824 13.833ZM6.50048 10.499C4.29094 10.499 2.50018 8.71165 2.50018 6.49937C2.50018 4.29021 4.28781 2.49976 6.50048 2.49976C8.71001 2.49976 10.5008 4.28708 10.5008 6.49937C10.5008 8.70852 8.71314 10.499 6.50048 10.499Z" fill="var(--color-text)"></path></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div>
-<div class="field">
-<div id="tsd-toolbar-links"></div></div>
-<ul class="results">
-<li class="state loading">Preparing search index...</li>
-<li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div>
-<div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><rect x="1" y="3" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="7" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="11" width="14" height="2" fill="var(--color-text)"></rect></svg></a></div></div></header>
-<div class="container container-main">
-<div class="col-8 col-content">
-<div class="tsd-page-title">
-<ul class="tsd-breadcrumb">
-<li><a href="../modules.html">quran-meta</a></li>
-<li><a href="prevAyah.html">prevAyah</a></li></ul>
-<h1>Function prevAyah</h1></div>
-<section class="tsd-panel">
-<ul class="tsd-signatures tsd-kind-function">
-<li class="tsd-signature tsd-anchor-link" id="prevAyah">prev<wbr/>Ayah<span class="tsd-signature-symbol">(</span>surah<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, ayah<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="../types/SurahAyah.html" class="tsd-signature-type" data-tsd-kind="Type alias">SurahAyah</a><a href="#prevAyah" aria-label="Permalink" class="tsd-anchor-icon"><svg class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none" id="icon-anchor-a"></path><path d="M10 14a3.5 3.5 0 0 0 5 0l4 -4a3.5 3.5 0 0 0 -5 -5l-.5 .5" id="icon-anchor-b"></path><path d="M14 10a3.5 3.5 0 0 0 -5 0l-4 4a3.5 3.5 0 0 0 5 5l.5 -.5" id="icon-anchor-c"></path></svg></a></li>
-<li class="tsd-description">
-<div class="tsd-parameters">
-<h4 class="tsd-parameters-title">Parameters</h4>
-<ul class="tsd-parameter-list">
-<li>
-<h5>surah: <span class="tsd-signature-type">number</span></h5></li>
-<li>
-<h5>ayah: <span class="tsd-signature-type">number</span></h5></li></ul></div>
-<h4 class="tsd-returns-title">Returns <a href="../types/SurahAyah.html" class="tsd-signature-type" data-tsd-kind="Type alias">SurahAyah</a></h4><aside class="tsd-sources">
-<ul>
-<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/a8fc894/src/index.ts#L353">index.ts:353</a></li></ul></aside></li></ul></section></div>
-<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
-<div class="tsd-navigation settings">
-<details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Settings</h3></summary>
-<div class="tsd-accordion-details">
-<div class="tsd-filter-visibility">
-<h4 class="uppercase">Member Visibility</h4><form>
-<ul id="tsd-filter-options">
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div>
-<div class="tsd-theme-toggle">
-<h4 class="uppercase">Theme</h4><select id="theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div>
-<nav class="tsd-navigation primary">
-<details class="tsd-index-accordion" open><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Modules</h3></summary>
-<div class="tsd-accordion-details">
-<ul>
-<li><a href="../modules.html">quran-<wbr/>meta</a>
-<ul></ul></li></ul></div></details></nav>
-<nav class="tsd-navigation secondary menu-sticky">
-<ul>
-<li class="tsd-kind-type-alias"><a href="../types/AyahId.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-4194304-path"></rect><path d="M11.31 16V8.224H8.91V7.24H14.79V8.224H12.39V16H11.31Z" fill="var(--color-text)" id="icon-4194304-text"></path></svg>Ayah<wbr/>Id</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/AyahNo.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Ayah<wbr/>No</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Juz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/JuzMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Page.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/PageMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Sajda.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Sajda</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Surah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/SurahAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Ayah</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/SurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-variable"><a href="../variables/HizbQuarterList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-variable)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-32-path"></rect><path d="M11.106 16L8.85 7.24H9.966L11.454 13.192C11.558 13.608 11.646 13.996 11.718 14.356C11.79 14.708 11.842 14.976 11.874 15.16C11.906 14.976 11.954 14.708 12.018 14.356C12.09 13.996 12.178 13.608 12.282 13.192L13.758 7.24H14.85L12.582 16H11.106Z" fill="var(--color-text)" id="icon-32-text"></path></svg>Hizb<wbr/>Quarter<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/JuzList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Juz<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/ManzilList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Manzil<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/PageList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Page<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/RukuList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Ruku<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/SajdaList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sajda<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/SuraList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sura<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/meta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>meta</a></li>
-<li class="tsd-kind-variable"><a href="../variables/suraNamesEn.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>En</a></li>
-<li class="tsd-kind-variable"><a href="../variables/suraNamesRu.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>Ru</a></li>
-<li class="tsd-kind-function"><a href="ayaStringSplitter.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-function)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-64-path"></rect><path d="M9.39 16V7.24H14.55V8.224H10.446V11.128H14.238V12.112H10.47V16H9.39Z" fill="var(--color-text)" id="icon-64-text"></path></svg>aya<wbr/>String<wbr/>Splitter</a></li>
-<li class="tsd-kind-function"><a href="findAyaidBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Ayaid<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="findJuz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz</a></li>
-<li class="tsd-kind-function"><a href="findJuzAndShift.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>And<wbr/>Shift</a></li>
-<li class="tsd-kind-function"><a href="findJuzByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="findJuzHizb.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb</a></li>
-<li class="tsd-kind-function"><a href="findJuzHizbByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="findJuzMetaBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Meta<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="findPage.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Page</a></li>
-<li class="tsd-kind-function"><a href="findRangeAroundAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Range<wbr/>Around<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="findSurahByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Surah<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="getAyaCountinSura.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Aya<wbr/>Countin<wbr/>Sura</a></li>
-<li class="tsd-kind-function"><a href="getSurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="isAyahJuzFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Juz<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="isAyahPageFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Page<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="nextAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>next<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="pageMeta-1.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>page<wbr/>Meta</a></li>
-<li class="current tsd-kind-function"><a href="prevAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>prev<wbr/>Ayah</a></li></ul></nav></div></div>
-<div class="container tsd-generator">
-<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></div>
-<div class="overlay"></div><script src="../assets/main.js"></script></body></html>
\ No newline at end of file
+<!DOCTYPE html><html class="default" lang="en"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>prevAyah | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../modules.html">quran-meta</a></li><li><a href="prevAyah.html">prevAyah</a></li></ul><h1>Function prevAyah</h1></div><section class="tsd-panel"><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="prevAyah" class="tsd-anchor"></a><span class="tsd-kind-call-signature">prev<wbr/>Ayah</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">surah</span>, <span class="tsd-kind-parameter">ayah</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="../types/SurahAyah.html" class="tsd-signature-type tsd-kind-type-alias">SurahAyah</a><a href="#prevAyah" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-comment tsd-typography"><p>Get the previous ayah for the given surah and ayah number.</p>
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">surah</span>: <span class="tsd-signature-type">number</span></span><div class="tsd-comment tsd-typography"><p>The surah number.</p>
+</div><div class="tsd-comment tsd-typography"></div></li><li><span><span class="tsd-kind-parameter">ayah</span>: <span class="tsd-signature-type">number</span></span><div class="tsd-comment tsd-typography"><p>The ayah number within the surah.</p>
+</div><div class="tsd-comment tsd-typography"></div></li></ul></div><h4 class="tsd-returns-title">Returns <a href="../types/SurahAyah.html" class="tsd-signature-type tsd-kind-type-alias">SurahAyah</a></h4><p>The surah and ayah number of the previous ayah.</p>
+<div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/7ff9baaee85a66d9099133c3db867ac28679aa62/src/prevAyah.ts#L13">prevAyah.ts:13</a></li></ul></aside></li></ul></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>quran-meta</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
diff --git a/docs/index.html b/docs/index.html
index 158fde5..c0132ba 100644
--- a/docs/index.html
+++ b/docs/index.html
@@ -1,26 +1,9 @@
-<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="assets/style.css"/><link rel="stylesheet" href="assets/highlight.css"/><script async src="assets/search.js" id="search-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os"</script><header class="tsd-page-toolbar">
-<div class="tsd-toolbar-contents container">
-<div class="table-cell" id="tsd-search" data-base=".">
-<div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M15.7824 13.833L12.6666 10.7177C12.5259 10.5771 12.3353 10.499 12.1353 10.499H11.6259C12.4884 9.39596 13.001 8.00859 13.001 6.49937C13.001 2.90909 10.0914 0 6.50048 0C2.90959 0 0 2.90909 0 6.49937C0 10.0896 2.90959 12.9987 6.50048 12.9987C8.00996 12.9987 9.39756 12.4863 10.5008 11.6239V12.1332C10.5008 12.3332 10.5789 12.5238 10.7195 12.6644L13.8354 15.7797C14.1292 16.0734 14.6042 16.0734 14.8948 15.7797L15.7793 14.8954C16.0731 14.6017 16.0731 14.1267 15.7824 13.833ZM6.50048 10.499C4.29094 10.499 2.50018 8.71165 2.50018 6.49937C2.50018 4.29021 4.28781 2.49976 6.50048 2.49976C8.71001 2.49976 10.5008 4.28708 10.5008 6.49937C10.5008 8.70852 8.71314 10.499 6.50048 10.499Z" fill="var(--color-text)"></path></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div>
-<div class="field">
-<div id="tsd-toolbar-links"></div></div>
-<ul class="results">
-<li class="state loading">Preparing search index...</li>
-<li class="state failure">The search index is not available</li></ul><a href="index.html" class="title">quran-meta</a></div>
-<div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><rect x="1" y="3" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="7" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="11" width="14" height="2" fill="var(--color-text)"></rect></svg></a></div></div></header>
-<div class="container container-main">
-<div class="col-8 col-content">
-<div class="tsd-page-title">
-<h2>quran-meta</h2></div>
-<div class="tsd-panel tsd-typography">
-<a href="#welcome-to-quran-meta-project" id="welcome-to-quran-meta-project" style="color: inherit; text-decoration: none;">
-  <h2>Welcome to Quran Meta Project</h2>
-</a>
-<p>This project is to help with Quran related meta queries. </p>
+<!DOCTYPE html><html class="default" lang="en"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="assets/style.css"/><link rel="stylesheet" href="assets/highlight.css"/><script defer src="assets/main.js"></script><script async src="assets/icons.js" id="tsd-icons-script"></script><script async src="assets/search.js" id="tsd-search-script"></script><script async src="assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base="."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="index.html" class="title">quran-meta</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><h2>quran-meta</h2></div><div class="tsd-panel tsd-typography"><a id="md:welcome-to-quran-meta-project" class="tsd-anchor"></a><h2 class="tsd-anchor-link">Welcome to Quran Meta Project<a href="#md:welcome-to-quran-meta-project" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h2><p>This project is to help with Quran related meta queries.</p>
 <p>Answering Questions like:</p>
 <ul>
 <li>How many ayahs in given sura (<code>getAyaCountinSura</code>)</li>
-<li>Is given aya <ul>
+<li>Is given aya
+<ul>
 <li>a sajdah ayah?</li>
 <li>beginnning of a juz (<code>isAyahJuzFirst</code>)?</li>
 <li>beginnning of a page?</li>
@@ -31,53 +14,39 @@ <h2>Welcome to Quran Meta Project</h2>
 <li>Find next or previous ayah (<code>nextAyah</code>/<code>prevAyah</code>)</li>
 <li>converts <code>[surah,aya]</code> to <code>ayaId</code> and vice-verse ( <code>findSurahByAyaid</code> and  <code>findAyaidBySurah</code>)</li>
 </ul>
+<a id="md:installation" class="tsd-anchor"></a><h3 class="tsd-anchor-link">Installation<a href="#md:installation" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h3><p>In a browser:</p>
+<pre><code class="html"><span class="hl-0">&lt;</span><span class="hl-1">script</span><span class="hl-2"> </span><span class="hl-3">src</span><span class="hl-2">=</span><span class="hl-4">&quot;quran-meta.js&quot;</span><span class="hl-0">&gt;&lt;/</span><span class="hl-1">script</span><span class="hl-0">&gt;</span>
+</code><button type="button">Copy</button></pre>
+
+<p>Also modern browsers allow</p>
+<pre><code class="html"><span class="hl-0">&lt;</span><span class="hl-1">script</span><span class="hl-2"> </span><span class="hl-3">type</span><span class="hl-2">=</span><span class="hl-4">&quot;module&quot;</span><span class="hl-0">&gt;</span><br/><span class="hl-5">import</span><span class="hl-2"> </span><span class="hl-6">quranMeta</span><span class="hl-2"> </span><span class="hl-5">from</span><span class="hl-2"> </span><span class="hl-7">&quot;quran-meta.esm.js&quot;</span><br/><span class="hl-0">&lt;/</span><span class="hl-1">script</span><span class="hl-0">&gt;</span>
+</code><button type="button">Copy</button></pre>
 
-<a href="#installation" id="installation" style="color: inherit; text-decoration: none;">
-  <h3>Installation</h3>
-</a>
-<p>In a browser:</p>
-<pre><code class="language-html"><span class="hl-0">&lt;</span><span class="hl-1">script</span><span class="hl-2"> </span><span class="hl-3">src</span><span class="hl-2">=</span><span class="hl-4">&quot;quran-meta.js&quot;</span><span class="hl-0">&gt;&lt;/</span><span class="hl-1">script</span><span class="hl-0">&gt;</span>
-</code></pre>
-<p>Also modern browsers allow </p>
-<pre><code class="language-html"><span class="hl-0">&lt;</span><span class="hl-1">script</span><span class="hl-2"> </span><span class="hl-3">type</span><span class="hl-2">=</span><span class="hl-4">&quot;module&quot;</span><span class="hl-0">&gt;</span><br/><span class="hl-5">import</span><span class="hl-2"> </span><span class="hl-6">quranMeta</span><span class="hl-2"> </span><span class="hl-5">from</span><span class="hl-2"> </span><span class="hl-7">&quot;quran-meta.esm.js&quot;</span><br/><span class="hl-0">&lt;/</span><span class="hl-1">script</span><span class="hl-0">&gt;</span>
-</code></pre>
 <p>The library is available from various CDNs</p>
 <ul>
-<li><a href="https://cdn.jsdelivr.net/npm/quran-meta/dist/">JSDelivr</a> </li>
-<li><a href="https://unpkg.com/browse/quran-meta/dist/">UnPKG</a></li>
+<li><a href="https://cdn.jsdelivr.net/npm/quran-meta/dist/" target="_blank" class="external">JSDelivr</a></li>
+<li><a href="https://unpkg.com/browse/quran-meta/dist/" target="_blank" class="external">UnPKG</a></li>
 </ul>
 <p>Using npm:</p>
 <pre><code><span class="hl-6">$</span><span class="hl-8"> </span><span class="hl-6">npm</span><span class="hl-8"> </span><span class="hl-6">i</span><span class="hl-8"> --</span><span class="hl-6">save</span><span class="hl-8"> </span><span class="hl-6">quran</span><span class="hl-8">-</span><span class="hl-6">meta</span>
-</code></pre>
-<p>In Node.js:</p>
-<pre><code class="language-js"><span class="hl-9">var</span><span class="hl-8"> </span><span class="hl-6">quranMeta</span><span class="hl-8"> = </span><span class="hl-10">require</span><span class="hl-8">(</span><span class="hl-7">&#39;quran-meta&#39;</span><span class="hl-8">);</span>
-</code></pre>
+</code><button>Copy</button></pre>
 
-<a href="#api-reference-documentation" id="api-reference-documentation" style="color: inherit; text-decoration: none;">
-  <h3>APi Reference Documentation</h3>
-</a>
-<p>See <a href="https://quran-center.github.io/quran-meta/docs/globals.html">here</a> for API documentation</p>
-
-<a href="#examples" id="examples" style="color: inherit; text-decoration: none;">
-  <h3>Examples</h3>
-</a>
-<p>You can find some examples <a href="https://quran-center.github.io/quran-meta/examples/">here</a> and souce code for them <a href="https://github.com/quran-center/quran-meta/tree/master/examples">here</a></p>
+<p>In Node.js:</p>
+<pre><code class="js"><span class="hl-9">var</span><span class="hl-8"> </span><span class="hl-6">quranMeta</span><span class="hl-8"> = </span><span class="hl-10">require</span><span class="hl-8">(</span><span class="hl-7">&#39;quran-meta&#39;</span><span class="hl-8">);</span>
+</code><button type="button">Copy</button></pre>
 
-<a href="#demo" id="demo" style="color: inherit; text-decoration: none;">
-  <h3>Demo</h3>
-</a>
-<ul>
-<li><p><a href="https://codesandbox.io/s/quran-visualiser-p3zjd">Quran Meta Visualiser</a> - demo app showcasing number of methods from Quran-meta to build interactive visualisations of Quran structure using Alpine.js &amp; chart.js</p>
+<a id="md:api-reference-documentation" class="tsd-anchor"></a><h3 class="tsd-anchor-link">APi Reference Documentation<a href="#md:api-reference-documentation" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h3><p>See <a href="https://quran-center.github.io/quran-meta/docs/globals.html" target="_blank" class="external">here</a> for API documentation</p>
+<a id="md:examples" class="tsd-anchor"></a><h3 class="tsd-anchor-link">Examples<a href="#md:examples" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h3><p>You can find some examples <a href="https://quran-center.github.io/quran-meta/examples/" target="_blank" class="external">here</a> and souce code for them <a href="https://github.com/quran-center/quran-meta/tree/master/examples" target="_blank" class="external">here</a></p>
+<a id="md:demo" class="tsd-anchor"></a><h3 class="tsd-anchor-link">Demo<a href="#md:demo" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h3><ul>
+<li>
+<p><a href="https://codesandbox.io/s/quran-visualiser-p3zjd" target="_blank" class="external">Quran Meta Visualiser</a> - demo app showcasing number of methods from Quran-meta to build interactive visualisations of Quran structure using Alpine.js &amp; chart.js</p>
 </li>
-<li><p><a href="https://codesandbox.io/s/quran-visualiser-es-module-f0sq0">Quran Meta Visualiser ES module version</a> - ES Module version of the previous demo</p>
+<li>
+<p><a href="https://codesandbox.io/s/quran-visualiser-es-module-f0sq0" target="_blank" class="external">Quran Meta Visualiser ES module version</a> - ES Module version of the previous demo</p>
 </li>
 </ul>
 <p><img src="https://quran-center.github.io/quran-meta/examples/demo-quran-visualiser.jpg" alt="demo image"></p>
-
-<a href="#distributions-and-downloads" id="distributions-and-downloads" style="color: inherit; text-decoration: none;">
-  <h3>Distributions and Downloads</h3>
-</a>
-<p>Here you can find the following</p>
+<a id="md:distributions-and-downloads" class="tsd-anchor"></a><h3 class="tsd-anchor-link">Distributions and Downloads<a href="#md:distributions-and-downloads" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h3><p>Here you can find the following</p>
 <table>
 <thead>
 <tr>
@@ -85,16 +54,17 @@ <h3>Distributions and Downloads</h3>
 <th></th>
 </tr>
 </thead>
-<tbody><tr>
-<td><a href="https://github.com/quran-center/quran-meta/tree/master/src">Source code</a> in typescript</td>
+<tbody>
+<tr>
+<td><a href="https://github.com/quran-center/quran-meta/tree/master/src" target="_blank" class="external">Source code</a> in typescript</td>
 <td>TS</td>
 </tr>
 <tr>
-<td><a href="https://github.com/quran-center/quran-meta/tree/master/lib_es">Javascript code</a> autotranspiled from TS as ES Next</td>
+<td><a href="https://github.com/quran-center/quran-meta/tree/master/lib_es" target="_blank" class="external">Javascript code</a> autotranspiled from TS as ES Next</td>
 <td>ESNext</td>
 </tr>
 <tr>
-<td><a href="https://github.com/quran-center/quran-meta/tree/master/lib_cjs">Javascript code</a> autotranspiled from TS as CJS</td>
+<td><a href="https://github.com/quran-center/quran-meta/tree/master/lib_cjs" target="_blank" class="external">Javascript code</a> autotranspiled from TS as CJS</td>
 <td>ES5+CommonJS</td>
 </tr>
 <tr>
@@ -102,88 +72,25 @@ <h3>Distributions and Downloads</h3>
 <td></td>
 </tr>
 <tr>
-<td><strong><a href="https://github.com/quran-center/quran-meta/tree/master/dist">distributions</a> of library as</strong></td>
+<td><strong><a href="https://github.com/quran-center/quran-meta/tree/master/dist" target="_blank" class="external">distributions</a> of library as</strong></td>
 <td></td>
 </tr>
 <tr>
-<td><a href="https://quran-center.github.io/quran-meta/dist/quran-meta.js">UMD</a>/ <a href="https://quran-center.github.io/quran-meta/dist/quran-meta.min.js">UMD minified</a> builds can be used directly in the browser via a <code>&lt;script&gt;</code> (see  <a href="https://www.syntaxsuccess.com/viewarticle/iife-vs-umd">here</a> about UMD format)</td>
+<td><a href="https://quran-center.github.io/quran-meta/dist/quran-meta.js" target="_blank" class="external">UMD</a>/ <a href="https://quran-center.github.io/quran-meta/dist/quran-meta.min.js" target="_blank" class="external">UMD minified</a> builds can be used directly in the browser via a <code>&lt;script&gt;</code> (see  <a href="https://www.syntaxsuccess.com/viewarticle/iife-vs-umd" target="_blank" class="external">here</a> about UMD format)</td>
 <td>ES5+UMD</td>
 </tr>
 <tr>
-<td><a href="https://quran-center.github.io/quran-meta/dist/quran-meta.common.js">CommonJS</a> for use with older bundlers like browserify or webpack</td>
+<td><a href="https://quran-center.github.io/quran-meta/dist/quran-meta.common.js" target="_blank" class="external">CommonJS</a> for use with older bundlers like browserify or webpack</td>
 <td>ES5+CommonJS</td>
 </tr>
 <tr>
-<td><a href="https://quran-center.github.io/quran-meta/dist/quran-meta.esm.js">ESM</a> for use with modern bundlers like webpack 2 or Rollup</td>
+<td><a href="https://quran-center.github.io/quran-meta/dist/quran-meta.esm.js" target="_blank" class="external">ESM</a> for use with modern bundlers like webpack 2 or Rollup</td>
 <td>ES5+ESM</td>
 </tr>
 <tr>
-<td><a href="https://quran-center.github.io/quran-meta/dist/quran-meta.esm.browser.js">ESM Browser</a>/<a href="https://quran-center.github.io/quran-meta/dist/quran-meta.esm.browser.min.js">ESM Browser minified</a> for direct imports in modern browsers via <code>&lt;script type=&quot;module&quot;&gt;</code></td>
+<td><a href="https://quran-center.github.io/quran-meta/dist/quran-meta.esm.browser.js" target="_blank" class="external">ESM Browser</a>/<a href="https://quran-center.github.io/quran-meta/dist/quran-meta.esm.browser.min.js" target="_blank" class="external">ESM Browser minified</a> for direct imports in modern browsers via <code>&lt;script type=&quot;module&quot;&gt;</code></td>
 <td>ESNext+ESM</td>
 </tr>
-</tbody></table>
-</div></div>
-<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
-<div class="tsd-navigation settings">
-<details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Settings</h3></summary>
-<div class="tsd-accordion-details">
-<div class="tsd-filter-visibility">
-<h4 class="uppercase">Member Visibility</h4><form>
-<ul id="tsd-filter-options">
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div>
-<div class="tsd-theme-toggle">
-<h4 class="uppercase">Theme</h4><select id="theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div>
-<nav class="tsd-navigation primary">
-<details class="tsd-index-accordion" open><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Modules</h3></summary>
-<div class="tsd-accordion-details">
-<ul>
-<li class="current selected"><a href="modules.html">quran-<wbr/>meta</a>
-<ul></ul></li></ul></div></details></nav>
-<nav class="tsd-navigation secondary menu-sticky">
-<ul>
-<li class="tsd-kind-type-alias"><a href="types/AyahId.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-4194304-path"></rect><path d="M11.31 16V8.224H8.91V7.24H14.79V8.224H12.39V16H11.31Z" fill="var(--color-text)" id="icon-4194304-text"></path></svg>Ayah<wbr/>Id</a></li>
-<li class="tsd-kind-type-alias"><a href="types/AyahNo.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Ayah<wbr/>No</a></li>
-<li class="tsd-kind-type-alias"><a href="types/Juz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz</a></li>
-<li class="tsd-kind-type-alias"><a href="types/JuzMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="types/Page.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page</a></li>
-<li class="tsd-kind-type-alias"><a href="types/PageMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="types/Sajda.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Sajda</a></li>
-<li class="tsd-kind-type-alias"><a href="types/Surah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah</a></li>
-<li class="tsd-kind-type-alias"><a href="types/SurahAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Ayah</a></li>
-<li class="tsd-kind-type-alias"><a href="types/SurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-variable"><a href="variables/HizbQuarterList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-variable)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-32-path"></rect><path d="M11.106 16L8.85 7.24H9.966L11.454 13.192C11.558 13.608 11.646 13.996 11.718 14.356C11.79 14.708 11.842 14.976 11.874 15.16C11.906 14.976 11.954 14.708 12.018 14.356C12.09 13.996 12.178 13.608 12.282 13.192L13.758 7.24H14.85L12.582 16H11.106Z" fill="var(--color-text)" id="icon-32-text"></path></svg>Hizb<wbr/>Quarter<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="variables/JuzList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Juz<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="variables/ManzilList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Manzil<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="variables/PageList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Page<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="variables/RukuList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Ruku<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="variables/SajdaList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sajda<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="variables/SuraList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sura<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="variables/meta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>meta</a></li>
-<li class="tsd-kind-variable"><a href="variables/suraNamesEn.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>En</a></li>
-<li class="tsd-kind-variable"><a href="variables/suraNamesRu.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>Ru</a></li>
-<li class="tsd-kind-function"><a href="functions/ayaStringSplitter.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-function)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-64-path"></rect><path d="M9.39 16V7.24H14.55V8.224H10.446V11.128H14.238V12.112H10.47V16H9.39Z" fill="var(--color-text)" id="icon-64-text"></path></svg>aya<wbr/>String<wbr/>Splitter</a></li>
-<li class="tsd-kind-function"><a href="functions/findAyaidBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Ayaid<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="functions/findJuz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz</a></li>
-<li class="tsd-kind-function"><a href="functions/findJuzAndShift.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>And<wbr/>Shift</a></li>
-<li class="tsd-kind-function"><a href="functions/findJuzByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="functions/findJuzHizb.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb</a></li>
-<li class="tsd-kind-function"><a href="functions/findJuzHizbByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="functions/findJuzMetaBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Meta<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="functions/findPage.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Page</a></li>
-<li class="tsd-kind-function"><a href="functions/findRangeAroundAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Range<wbr/>Around<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="functions/findSurahByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Surah<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="functions/getAyaCountinSura.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Aya<wbr/>Countin<wbr/>Sura</a></li>
-<li class="tsd-kind-function"><a href="functions/getSurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="functions/isAyahJuzFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Juz<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="functions/isAyahPageFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Page<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="functions/nextAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>next<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="functions/pageMeta-1.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>page<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="functions/prevAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>prev<wbr/>Ayah</a></li></ul></nav></div></div>
-<div class="container tsd-generator">
-<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></div>
-<div class="overlay"></div><script src="assets/main.js"></script></body></html>
\ No newline at end of file
+</tbody>
+</table>
+</div></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div><details open class="tsd-accordion tsd-page-navigation"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="assets/icons.svg#icon-chevronDown"></use></svg>On This Page</h3></summary><div class="tsd-accordion-details"><a href="#md:welcome-to-quran-meta-project"><span>Welcome to <wbr/>Quran <wbr/>Meta <wbr/>Project</span></a><ul><li><a href="#md:installation"><span>Installation</span></a></li><li><a href="#md:api-reference-documentation"><span>APi <wbr/>Reference <wbr/>Documentation</span></a></li><li><a href="#md:examples"><span>Examples</span></a></li><li><a href="#md:demo"><span>Demo</span></a></li><li><a href="#md:distributions-and-downloads"><span>Distributions and <wbr/>Downloads</span></a></li></ul></div></details></div><div class="site-menu"><nav class="tsd-navigation"><a href="modules.html" class="current"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="assets/icons.svg#icon-1"></use></svg><span>quran-meta</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base="."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
diff --git a/docs/modules.html b/docs/modules.html
index af431f2..479ae2c 100644
--- a/docs/modules.html
+++ b/docs/modules.html
@@ -1,128 +1,47 @@
-<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="assets/style.css"/><link rel="stylesheet" href="assets/highlight.css"/><script async src="assets/search.js" id="search-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os"</script><header class="tsd-page-toolbar">
-<div class="tsd-toolbar-contents container">
-<div class="table-cell" id="tsd-search" data-base=".">
-<div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M15.7824 13.833L12.6666 10.7177C12.5259 10.5771 12.3353 10.499 12.1353 10.499H11.6259C12.4884 9.39596 13.001 8.00859 13.001 6.49937C13.001 2.90909 10.0914 0 6.50048 0C2.90959 0 0 2.90909 0 6.49937C0 10.0896 2.90959 12.9987 6.50048 12.9987C8.00996 12.9987 9.39756 12.4863 10.5008 11.6239V12.1332C10.5008 12.3332 10.5789 12.5238 10.7195 12.6644L13.8354 15.7797C14.1292 16.0734 14.6042 16.0734 14.8948 15.7797L15.7793 14.8954C16.0731 14.6017 16.0731 14.1267 15.7824 13.833ZM6.50048 10.499C4.29094 10.499 2.50018 8.71165 2.50018 6.49937C2.50018 4.29021 4.28781 2.49976 6.50048 2.49976C8.71001 2.49976 10.5008 4.28708 10.5008 6.49937C10.5008 8.70852 8.71314 10.499 6.50048 10.499Z" fill="var(--color-text)"></path></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div>
-<div class="field">
-<div id="tsd-toolbar-links"></div></div>
-<ul class="results">
-<li class="state loading">Preparing search index...</li>
-<li class="state failure">The search index is not available</li></ul><a href="index.html" class="title">quran-meta</a></div>
-<div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><rect x="1" y="3" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="7" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="11" width="14" height="2" fill="var(--color-text)"></rect></svg></a></div></div></header>
-<div class="container container-main">
-<div class="col-8 col-content">
-<div class="tsd-page-title">
-<h2>quran-meta</h2></div>
-<section class="tsd-panel-group tsd-index-group">
-<section class="tsd-panel tsd-index-panel">
-<h3 class="tsd-index-heading uppercase">Index</h3>
-<section class="tsd-index-section">
-<h3 class="tsd-index-heading">Type Aliases</h3>
-<div class="tsd-index-list"><a href="types/AyahId.html" class="tsd-index-link tsd-kind-type-alias"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-4194304-path"></rect><path d="M11.31 16V8.224H8.91V7.24H14.79V8.224H12.39V16H11.31Z" fill="var(--color-text)" id="icon-4194304-text"></path></svg><span>Ayah<wbr/>Id</span></a>
-<a href="types/AyahNo.html" class="tsd-index-link tsd-kind-type-alias"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg><span>Ayah<wbr/>No</span></a>
-<a href="types/Juz.html" class="tsd-index-link tsd-kind-type-alias"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg><span>Juz</span></a>
-<a href="types/JuzMeta.html" class="tsd-index-link tsd-kind-type-alias"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg><span>Juz<wbr/>Meta</span></a>
-<a href="types/Page.html" class="tsd-index-link tsd-kind-type-alias"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg><span>Page</span></a>
-<a href="types/PageMeta.html" class="tsd-index-link tsd-kind-type-alias"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg><span>Page<wbr/>Meta</span></a>
-<a href="types/Sajda.html" class="tsd-index-link tsd-kind-type-alias"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg><span>Sajda</span></a>
-<a href="types/Surah.html" class="tsd-index-link tsd-kind-type-alias"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg><span>Surah</span></a>
-<a href="types/SurahAyah.html" class="tsd-index-link tsd-kind-type-alias"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg><span>Surah<wbr/>Ayah</span></a>
-<a href="types/SurahMeta.html" class="tsd-index-link tsd-kind-type-alias"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg><span>Surah<wbr/>Meta</span></a>
-</div></section>
-<section class="tsd-index-section">
-<h3 class="tsd-index-heading">Variables</h3>
-<div class="tsd-index-list"><a href="variables/HizbQuarterList.html" class="tsd-index-link tsd-kind-variable"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-variable)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-32-path"></rect><path d="M11.106 16L8.85 7.24H9.966L11.454 13.192C11.558 13.608 11.646 13.996 11.718 14.356C11.79 14.708 11.842 14.976 11.874 15.16C11.906 14.976 11.954 14.708 12.018 14.356C12.09 13.996 12.178 13.608 12.282 13.192L13.758 7.24H14.85L12.582 16H11.106Z" fill="var(--color-text)" id="icon-32-text"></path></svg><span>Hizb<wbr/>Quarter<wbr/>List</span></a>
-<a href="variables/JuzList.html" class="tsd-index-link tsd-kind-variable"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg><span>Juz<wbr/>List</span></a>
-<a href="variables/ManzilList.html" class="tsd-index-link tsd-kind-variable"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg><span>Manzil<wbr/>List</span></a>
-<a href="variables/PageList.html" class="tsd-index-link tsd-kind-variable"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg><span>Page<wbr/>List</span></a>
-<a href="variables/RukuList.html" class="tsd-index-link tsd-kind-variable"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg><span>Ruku<wbr/>List</span></a>
-<a href="variables/SajdaList.html" class="tsd-index-link tsd-kind-variable"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg><span>Sajda<wbr/>List</span></a>
-<a href="variables/SuraList.html" class="tsd-index-link tsd-kind-variable"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg><span>Sura<wbr/>List</span></a>
-<a href="variables/meta.html" class="tsd-index-link tsd-kind-variable"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg><span>meta</span></a>
-<a href="variables/suraNamesEn.html" class="tsd-index-link tsd-kind-variable"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg><span>sura<wbr/>Names<wbr/>En</span></a>
-<a href="variables/suraNamesRu.html" class="tsd-index-link tsd-kind-variable"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg><span>sura<wbr/>Names<wbr/>Ru</span></a>
-</div></section>
-<section class="tsd-index-section">
-<h3 class="tsd-index-heading">Functions</h3>
-<div class="tsd-index-list"><a href="functions/ayaStringSplitter.html" class="tsd-index-link tsd-kind-function"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-function)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-64-path"></rect><path d="M9.39 16V7.24H14.55V8.224H10.446V11.128H14.238V12.112H10.47V16H9.39Z" fill="var(--color-text)" id="icon-64-text"></path></svg><span>aya<wbr/>String<wbr/>Splitter</span></a>
-<a href="functions/findAyaidBySurah.html" class="tsd-index-link tsd-kind-function"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg><span>find<wbr/>Ayaid<wbr/>By<wbr/>Surah</span></a>
-<a href="functions/findJuz.html" class="tsd-index-link tsd-kind-function"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg><span>find<wbr/>Juz</span></a>
-<a href="functions/findJuzAndShift.html" class="tsd-index-link tsd-kind-function"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg><span>find<wbr/>Juz<wbr/>And<wbr/>Shift</span></a>
-<a href="functions/findJuzByAyaid.html" class="tsd-index-link tsd-kind-function"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg><span>find<wbr/>Juz<wbr/>By<wbr/>Ayaid</span></a>
-<a href="functions/findJuzHizb.html" class="tsd-index-link tsd-kind-function"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg><span>find<wbr/>Juz<wbr/>Hizb</span></a>
-<a href="functions/findJuzHizbByAyaid.html" class="tsd-index-link tsd-kind-function"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg><span>find<wbr/>Juz<wbr/>Hizb<wbr/>By<wbr/>Ayaid</span></a>
-<a href="functions/findJuzMetaBySurah.html" class="tsd-index-link tsd-kind-function"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg><span>find<wbr/>Juz<wbr/>Meta<wbr/>By<wbr/>Surah</span></a>
-<a href="functions/findPage.html" class="tsd-index-link tsd-kind-function"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg><span>find<wbr/>Page</span></a>
-<a href="functions/findRangeAroundAyah.html" class="tsd-index-link tsd-kind-function"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg><span>find<wbr/>Range<wbr/>Around<wbr/>Ayah</span></a>
-<a href="functions/findSurahByAyaid.html" class="tsd-index-link tsd-kind-function"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg><span>find<wbr/>Surah<wbr/>By<wbr/>Ayaid</span></a>
-<a href="functions/getAyaCountinSura.html" class="tsd-index-link tsd-kind-function"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg><span>get<wbr/>Aya<wbr/>Countin<wbr/>Sura</span></a>
-<a href="functions/getSurahMeta.html" class="tsd-index-link tsd-kind-function"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg><span>get<wbr/>Surah<wbr/>Meta</span></a>
-<a href="functions/isAyahJuzFirst.html" class="tsd-index-link tsd-kind-function"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg><span>is<wbr/>Ayah<wbr/>Juz<wbr/>First</span></a>
-<a href="functions/isAyahPageFirst.html" class="tsd-index-link tsd-kind-function"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg><span>is<wbr/>Ayah<wbr/>Page<wbr/>First</span></a>
-<a href="functions/nextAyah.html" class="tsd-index-link tsd-kind-function"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg><span>next<wbr/>Ayah</span></a>
-<a href="functions/pageMeta-1.html" class="tsd-index-link tsd-kind-function"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg><span>page<wbr/>Meta</span></a>
-<a href="functions/prevAyah.html" class="tsd-index-link tsd-kind-function"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg><span>prev<wbr/>Ayah</span></a>
-</div></section></section></section></div>
-<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
-<div class="tsd-navigation settings">
-<details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Settings</h3></summary>
-<div class="tsd-accordion-details">
-<div class="tsd-filter-visibility">
-<h4 class="uppercase">Member Visibility</h4><form>
-<ul id="tsd-filter-options">
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div>
-<div class="tsd-theme-toggle">
-<h4 class="uppercase">Theme</h4><select id="theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div>
-<nav class="tsd-navigation primary">
-<details class="tsd-index-accordion" open><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Modules</h3></summary>
-<div class="tsd-accordion-details">
-<ul>
-<li class="current selected"><a href="modules.html">quran-<wbr/>meta</a>
-<ul></ul></li></ul></div></details></nav>
-<nav class="tsd-navigation secondary menu-sticky">
-<ul>
-<li class="tsd-kind-type-alias"><a href="types/AyahId.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Ayah<wbr/>Id</a></li>
-<li class="tsd-kind-type-alias"><a href="types/AyahNo.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Ayah<wbr/>No</a></li>
-<li class="tsd-kind-type-alias"><a href="types/Juz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz</a></li>
-<li class="tsd-kind-type-alias"><a href="types/JuzMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="types/Page.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page</a></li>
-<li class="tsd-kind-type-alias"><a href="types/PageMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="types/Sajda.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Sajda</a></li>
-<li class="tsd-kind-type-alias"><a href="types/Surah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah</a></li>
-<li class="tsd-kind-type-alias"><a href="types/SurahAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Ayah</a></li>
-<li class="tsd-kind-type-alias"><a href="types/SurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-variable"><a href="variables/HizbQuarterList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Hizb<wbr/>Quarter<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="variables/JuzList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Juz<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="variables/ManzilList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Manzil<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="variables/PageList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Page<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="variables/RukuList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Ruku<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="variables/SajdaList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sajda<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="variables/SuraList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sura<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="variables/meta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>meta</a></li>
-<li class="tsd-kind-variable"><a href="variables/suraNamesEn.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>En</a></li>
-<li class="tsd-kind-variable"><a href="variables/suraNamesRu.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>Ru</a></li>
-<li class="tsd-kind-function"><a href="functions/ayaStringSplitter.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>aya<wbr/>String<wbr/>Splitter</a></li>
-<li class="tsd-kind-function"><a href="functions/findAyaidBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Ayaid<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="functions/findJuz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz</a></li>
-<li class="tsd-kind-function"><a href="functions/findJuzAndShift.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>And<wbr/>Shift</a></li>
-<li class="tsd-kind-function"><a href="functions/findJuzByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="functions/findJuzHizb.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb</a></li>
-<li class="tsd-kind-function"><a href="functions/findJuzHizbByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="functions/findJuzMetaBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Meta<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="functions/findPage.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Page</a></li>
-<li class="tsd-kind-function"><a href="functions/findRangeAroundAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Range<wbr/>Around<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="functions/findSurahByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Surah<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="functions/getAyaCountinSura.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Aya<wbr/>Countin<wbr/>Sura</a></li>
-<li class="tsd-kind-function"><a href="functions/getSurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="functions/isAyahJuzFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Juz<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="functions/isAyahPageFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Page<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="functions/nextAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>next<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="functions/pageMeta-1.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>page<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="functions/prevAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>prev<wbr/>Ayah</a></li></ul></nav></div></div>
-<div class="container tsd-generator">
-<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></div>
-<div class="overlay"></div><script src="assets/main.js"></script></body></html>
\ No newline at end of file
+<!DOCTYPE html><html class="default" lang="en"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="assets/style.css"/><link rel="stylesheet" href="assets/highlight.css"/><script defer src="assets/main.js"></script><script async src="assets/icons.js" id="tsd-icons-script"></script><script async src="assets/search.js" id="tsd-search-script"></script><script async src="assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base="."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="index.html" class="title">quran-meta</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><h2>quran-meta</h2></div><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><h3 class="tsd-index-heading uppercase">Index</h3><section class="tsd-index-section"><h3 class="tsd-index-heading">Type Aliases</h3><div class="tsd-index-list"><a href="types/AyahId.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="assets/icons.svg#icon-2097152"></use></svg><span>Ayah<wbr/>Id</span></a>
+<a href="types/AyahNo.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="assets/icons.svg#icon-2097152"></use></svg><span>Ayah<wbr/>No</span></a>
+<a href="types/Juz.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="assets/icons.svg#icon-2097152"></use></svg><span>Juz</span></a>
+<a href="types/JuzHizb.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="assets/icons.svg#icon-2097152"></use></svg><span>Juz<wbr/>Hizb</span></a>
+<a href="types/JuzMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="assets/icons.svg#icon-2097152"></use></svg><span>Juz<wbr/>Meta</span></a>
+<a href="types/Page.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="assets/icons.svg#icon-2097152"></use></svg><span>Page</span></a>
+<a href="types/PageMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="assets/icons.svg#icon-2097152"></use></svg><span>Page<wbr/>Meta</span></a>
+<a href="types/QuranMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="assets/icons.svg#icon-2097152"></use></svg><span>Quran<wbr/>Meta</span></a>
+<a href="types/Sajda.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="assets/icons.svg#icon-2097152"></use></svg><span>Sajda</span></a>
+<a href="types/SajdaType.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="assets/icons.svg#icon-2097152"></use></svg><span>Sajda<wbr/>Type</span></a>
+<a href="types/Surah.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="assets/icons.svg#icon-2097152"></use></svg><span>Surah</span></a>
+<a href="types/SurahAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="assets/icons.svg#icon-2097152"></use></svg><span>Surah<wbr/>Ayah</span></a>
+<a href="types/SurahAyahSegment.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="assets/icons.svg#icon-2097152"></use></svg><span>Surah<wbr/>Ayah<wbr/>Segment</span></a>
+<a href="types/SurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="assets/icons.svg#icon-2097152"></use></svg><span>Surah<wbr/>Meta</span></a>
+<a href="types/SuraName.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="assets/icons.svg#icon-2097152"></use></svg><span>Sura<wbr/>Name</span></a>
+</div></section><section class="tsd-index-section"><h3 class="tsd-index-heading">Variables</h3><div class="tsd-index-list"><a href="variables/HizbQuarterList.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="assets/icons.svg#icon-32"></use></svg><span>Hizb<wbr/>Quarter<wbr/>List</span></a>
+<a href="variables/JuzList.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="assets/icons.svg#icon-32"></use></svg><span>Juz<wbr/>List</span></a>
+<a href="variables/ManzilList.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="assets/icons.svg#icon-32"></use></svg><span>Manzil<wbr/>List</span></a>
+<a href="variables/meta.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="assets/icons.svg#icon-32"></use></svg><span>meta</span></a>
+<a href="variables/PageList.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="assets/icons.svg#icon-32"></use></svg><span>Page<wbr/>List</span></a>
+<a href="variables/RukuList.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="assets/icons.svg#icon-32"></use></svg><span>Ruku<wbr/>List</span></a>
+<a href="variables/SajdaList.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="assets/icons.svg#icon-32"></use></svg><span>Sajda<wbr/>List</span></a>
+<a href="variables/SuraList.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="assets/icons.svg#icon-32"></use></svg><span>Sura<wbr/>List</span></a>
+<a href="variables/suraNamesEn.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="assets/icons.svg#icon-32"></use></svg><span>sura<wbr/>Names<wbr/>En</span></a>
+<a href="variables/suraNamesRu.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="assets/icons.svg#icon-32"></use></svg><span>sura<wbr/>Names<wbr/>Ru</span></a>
+</div></section><section class="tsd-index-section"><h3 class="tsd-index-heading">Functions</h3><div class="tsd-index-list"><a href="functions/ayaStringSplitter.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="assets/icons.svg#icon-64"></use></svg><span>aya<wbr/>String<wbr/>Splitter</span></a>
+<a href="functions/checkValidAyahId.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="assets/icons.svg#icon-64"></use></svg><span>check<wbr/>Valid<wbr/>Ayah<wbr/>Id</span></a>
+<a href="functions/checkValidSurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="assets/icons.svg#icon-64"></use></svg><span>check<wbr/>Valid<wbr/>Surah</span></a>
+<a href="functions/checkValidSurahAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="assets/icons.svg#icon-64"></use></svg><span>check<wbr/>Valid<wbr/>Surah<wbr/>Ayah</span></a>
+<a href="functions/findAyaidBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="assets/icons.svg#icon-64"></use></svg><span>find<wbr/>Ayaid<wbr/>By<wbr/>Surah</span></a>
+<a href="functions/findJuz.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="assets/icons.svg#icon-64"></use></svg><span>find<wbr/>Juz</span></a>
+<a href="functions/findJuzAndShift.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="assets/icons.svg#icon-64"></use></svg><span>find<wbr/>Juz<wbr/>And<wbr/>Shift</span></a>
+<a href="functions/findJuzByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="assets/icons.svg#icon-64"></use></svg><span>find<wbr/>Juz<wbr/>By<wbr/>Ayaid</span></a>
+<a href="functions/findJuzHizb.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="assets/icons.svg#icon-64"></use></svg><span>find<wbr/>Juz<wbr/>Hizb</span></a>
+<a href="functions/findJuzHizbByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="assets/icons.svg#icon-64"></use></svg><span>find<wbr/>Juz<wbr/>Hizb<wbr/>By<wbr/>Ayaid</span></a>
+<a href="functions/findJuzMetaBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="assets/icons.svg#icon-64"></use></svg><span>find<wbr/>Juz<wbr/>Meta<wbr/>By<wbr/>Surah</span></a>
+<a href="functions/findPage.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="assets/icons.svg#icon-64"></use></svg><span>find<wbr/>Page</span></a>
+<a href="functions/findRangeAroundAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="assets/icons.svg#icon-64"></use></svg><span>find<wbr/>Range<wbr/>Around<wbr/>Ayah</span></a>
+<a href="functions/findSurahByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="assets/icons.svg#icon-64"></use></svg><span>find<wbr/>Surah<wbr/>By<wbr/>Ayaid</span></a>
+<a href="functions/getAyaCountinSura.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="assets/icons.svg#icon-64"></use></svg><span>get<wbr/>Aya<wbr/>Countin<wbr/>Sura</span></a>
+<a href="functions/getSurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="assets/icons.svg#icon-64"></use></svg><span>get<wbr/>Surah<wbr/>Meta</span></a>
+<a href="functions/isAyahJuzFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="assets/icons.svg#icon-64"></use></svg><span>is<wbr/>Ayah<wbr/>Juz<wbr/>First</span></a>
+<a href="functions/isAyahPageFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="assets/icons.svg#icon-64"></use></svg><span>is<wbr/>Ayah<wbr/>Page<wbr/>First</span></a>
+<a href="functions/nextAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="assets/icons.svg#icon-64"></use></svg><span>next<wbr/>Ayah</span></a>
+<a href="functions/pageMeta-1.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="assets/icons.svg#icon-64"></use></svg><span>page<wbr/>Meta</span></a>
+<a href="functions/prevAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="assets/icons.svg#icon-64"></use></svg><span>prev<wbr/>Ayah</span></a>
+</div></section></section></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="modules.html" class="current"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="assets/icons.svg#icon-1"></use></svg><span>quran-meta</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base="."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
diff --git a/docs/types/AyahId.html b/docs/types/AyahId.html
index 4063197..cf3ac27 100644
--- a/docs/types/AyahId.html
+++ b/docs/types/AyahId.html
@@ -1,84 +1 @@
-<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>AyahId | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script async src="../assets/search.js" id="search-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os"</script><header class="tsd-page-toolbar">
-<div class="tsd-toolbar-contents container">
-<div class="table-cell" id="tsd-search" data-base="..">
-<div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M15.7824 13.833L12.6666 10.7177C12.5259 10.5771 12.3353 10.499 12.1353 10.499H11.6259C12.4884 9.39596 13.001 8.00859 13.001 6.49937C13.001 2.90909 10.0914 0 6.50048 0C2.90959 0 0 2.90909 0 6.49937C0 10.0896 2.90959 12.9987 6.50048 12.9987C8.00996 12.9987 9.39756 12.4863 10.5008 11.6239V12.1332C10.5008 12.3332 10.5789 12.5238 10.7195 12.6644L13.8354 15.7797C14.1292 16.0734 14.6042 16.0734 14.8948 15.7797L15.7793 14.8954C16.0731 14.6017 16.0731 14.1267 15.7824 13.833ZM6.50048 10.499C4.29094 10.499 2.50018 8.71165 2.50018 6.49937C2.50018 4.29021 4.28781 2.49976 6.50048 2.49976C8.71001 2.49976 10.5008 4.28708 10.5008 6.49937C10.5008 8.70852 8.71314 10.499 6.50048 10.499Z" fill="var(--color-text)"></path></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div>
-<div class="field">
-<div id="tsd-toolbar-links"></div></div>
-<ul class="results">
-<li class="state loading">Preparing search index...</li>
-<li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div>
-<div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><rect x="1" y="3" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="7" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="11" width="14" height="2" fill="var(--color-text)"></rect></svg></a></div></div></header>
-<div class="container container-main">
-<div class="col-8 col-content">
-<div class="tsd-page-title">
-<ul class="tsd-breadcrumb">
-<li><a href="../modules.html">quran-meta</a></li>
-<li><a href="AyahId.html">AyahId</a></li></ul>
-<h1>Type alias AyahId</h1></div>
-<div class="tsd-signature">Ayah<wbr/>Id<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span></div><aside class="tsd-sources">
-<ul>
-<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/a8fc894/src/types.ts#L4">types.ts:4</a></li></ul></aside></div>
-<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
-<div class="tsd-navigation settings">
-<details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Settings</h3></summary>
-<div class="tsd-accordion-details">
-<div class="tsd-filter-visibility">
-<h4 class="uppercase">Member Visibility</h4><form>
-<ul id="tsd-filter-options">
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div>
-<div class="tsd-theme-toggle">
-<h4 class="uppercase">Theme</h4><select id="theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div>
-<nav class="tsd-navigation primary">
-<details class="tsd-index-accordion" open><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Modules</h3></summary>
-<div class="tsd-accordion-details">
-<ul>
-<li><a href="../modules.html">quran-<wbr/>meta</a>
-<ul></ul></li></ul></div></details></nav>
-<nav class="tsd-navigation secondary menu-sticky">
-<ul>
-<li class="current tsd-kind-type-alias"><a href="AyahId.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-4194304-path"></rect><path d="M11.31 16V8.224H8.91V7.24H14.79V8.224H12.39V16H11.31Z" fill="var(--color-text)" id="icon-4194304-text"></path></svg>Ayah<wbr/>Id</a></li>
-<li class="tsd-kind-type-alias"><a href="AyahNo.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Ayah<wbr/>No</a></li>
-<li class="tsd-kind-type-alias"><a href="Juz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz</a></li>
-<li class="tsd-kind-type-alias"><a href="JuzMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="Page.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page</a></li>
-<li class="tsd-kind-type-alias"><a href="PageMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="Sajda.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Sajda</a></li>
-<li class="tsd-kind-type-alias"><a href="Surah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah</a></li>
-<li class="tsd-kind-type-alias"><a href="SurahAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Ayah</a></li>
-<li class="tsd-kind-type-alias"><a href="SurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-variable"><a href="../variables/HizbQuarterList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-variable)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-32-path"></rect><path d="M11.106 16L8.85 7.24H9.966L11.454 13.192C11.558 13.608 11.646 13.996 11.718 14.356C11.79 14.708 11.842 14.976 11.874 15.16C11.906 14.976 11.954 14.708 12.018 14.356C12.09 13.996 12.178 13.608 12.282 13.192L13.758 7.24H14.85L12.582 16H11.106Z" fill="var(--color-text)" id="icon-32-text"></path></svg>Hizb<wbr/>Quarter<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/JuzList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Juz<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/ManzilList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Manzil<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/PageList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Page<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/RukuList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Ruku<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/SajdaList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sajda<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/SuraList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sura<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/meta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>meta</a></li>
-<li class="tsd-kind-variable"><a href="../variables/suraNamesEn.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>En</a></li>
-<li class="tsd-kind-variable"><a href="../variables/suraNamesRu.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>Ru</a></li>
-<li class="tsd-kind-function"><a href="../functions/ayaStringSplitter.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-function)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-64-path"></rect><path d="M9.39 16V7.24H14.55V8.224H10.446V11.128H14.238V12.112H10.47V16H9.39Z" fill="var(--color-text)" id="icon-64-text"></path></svg>aya<wbr/>String<wbr/>Splitter</a></li>
-<li class="tsd-kind-function"><a href="../functions/findAyaidBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Ayaid<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzAndShift.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>And<wbr/>Shift</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzHizb.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzHizbByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzMetaBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Meta<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="../functions/findPage.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Page</a></li>
-<li class="tsd-kind-function"><a href="../functions/findRangeAroundAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Range<wbr/>Around<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="../functions/findSurahByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Surah<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="../functions/getAyaCountinSura.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Aya<wbr/>Countin<wbr/>Sura</a></li>
-<li class="tsd-kind-function"><a href="../functions/getSurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="../functions/isAyahJuzFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Juz<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="../functions/isAyahPageFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Page<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="../functions/nextAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>next<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="../functions/pageMeta-1.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>page<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="../functions/prevAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>prev<wbr/>Ayah</a></li></ul></nav></div></div>
-<div class="container tsd-generator">
-<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></div>
-<div class="overlay"></div><script src="../assets/main.js"></script></body></html>
\ No newline at end of file
+<!DOCTYPE html><html class="default" lang="en"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>AyahId | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../modules.html">quran-meta</a></li><li><a href="AyahId.html">AyahId</a></li></ul><h1>Type Alias AyahId</h1></div><div class="tsd-signature"><span class="tsd-kind-type-alias">Ayah<wbr/>Id</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/7ff9baaee85a66d9099133c3db867ac28679aa62/src/types.ts#L4">types.ts:4</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>quran-meta</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
diff --git a/docs/types/AyahNo.html b/docs/types/AyahNo.html
index ebff912..7d95c4a 100644
--- a/docs/types/AyahNo.html
+++ b/docs/types/AyahNo.html
@@ -1,84 +1 @@
-<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>AyahNo | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script async src="../assets/search.js" id="search-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os"</script><header class="tsd-page-toolbar">
-<div class="tsd-toolbar-contents container">
-<div class="table-cell" id="tsd-search" data-base="..">
-<div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M15.7824 13.833L12.6666 10.7177C12.5259 10.5771 12.3353 10.499 12.1353 10.499H11.6259C12.4884 9.39596 13.001 8.00859 13.001 6.49937C13.001 2.90909 10.0914 0 6.50048 0C2.90959 0 0 2.90909 0 6.49937C0 10.0896 2.90959 12.9987 6.50048 12.9987C8.00996 12.9987 9.39756 12.4863 10.5008 11.6239V12.1332C10.5008 12.3332 10.5789 12.5238 10.7195 12.6644L13.8354 15.7797C14.1292 16.0734 14.6042 16.0734 14.8948 15.7797L15.7793 14.8954C16.0731 14.6017 16.0731 14.1267 15.7824 13.833ZM6.50048 10.499C4.29094 10.499 2.50018 8.71165 2.50018 6.49937C2.50018 4.29021 4.28781 2.49976 6.50048 2.49976C8.71001 2.49976 10.5008 4.28708 10.5008 6.49937C10.5008 8.70852 8.71314 10.499 6.50048 10.499Z" fill="var(--color-text)"></path></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div>
-<div class="field">
-<div id="tsd-toolbar-links"></div></div>
-<ul class="results">
-<li class="state loading">Preparing search index...</li>
-<li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div>
-<div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><rect x="1" y="3" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="7" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="11" width="14" height="2" fill="var(--color-text)"></rect></svg></a></div></div></header>
-<div class="container container-main">
-<div class="col-8 col-content">
-<div class="tsd-page-title">
-<ul class="tsd-breadcrumb">
-<li><a href="../modules.html">quran-meta</a></li>
-<li><a href="AyahNo.html">AyahNo</a></li></ul>
-<h1>Type alias AyahNo</h1></div>
-<div class="tsd-signature">Ayah<wbr/>No<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span></div><aside class="tsd-sources">
-<ul>
-<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/a8fc894/src/types.ts#L3">types.ts:3</a></li></ul></aside></div>
-<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
-<div class="tsd-navigation settings">
-<details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Settings</h3></summary>
-<div class="tsd-accordion-details">
-<div class="tsd-filter-visibility">
-<h4 class="uppercase">Member Visibility</h4><form>
-<ul id="tsd-filter-options">
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div>
-<div class="tsd-theme-toggle">
-<h4 class="uppercase">Theme</h4><select id="theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div>
-<nav class="tsd-navigation primary">
-<details class="tsd-index-accordion" open><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Modules</h3></summary>
-<div class="tsd-accordion-details">
-<ul>
-<li><a href="../modules.html">quran-<wbr/>meta</a>
-<ul></ul></li></ul></div></details></nav>
-<nav class="tsd-navigation secondary menu-sticky">
-<ul>
-<li class="tsd-kind-type-alias"><a href="AyahId.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-4194304-path"></rect><path d="M11.31 16V8.224H8.91V7.24H14.79V8.224H12.39V16H11.31Z" fill="var(--color-text)" id="icon-4194304-text"></path></svg>Ayah<wbr/>Id</a></li>
-<li class="current tsd-kind-type-alias"><a href="AyahNo.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Ayah<wbr/>No</a></li>
-<li class="tsd-kind-type-alias"><a href="Juz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz</a></li>
-<li class="tsd-kind-type-alias"><a href="JuzMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="Page.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page</a></li>
-<li class="tsd-kind-type-alias"><a href="PageMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="Sajda.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Sajda</a></li>
-<li class="tsd-kind-type-alias"><a href="Surah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah</a></li>
-<li class="tsd-kind-type-alias"><a href="SurahAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Ayah</a></li>
-<li class="tsd-kind-type-alias"><a href="SurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-variable"><a href="../variables/HizbQuarterList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-variable)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-32-path"></rect><path d="M11.106 16L8.85 7.24H9.966L11.454 13.192C11.558 13.608 11.646 13.996 11.718 14.356C11.79 14.708 11.842 14.976 11.874 15.16C11.906 14.976 11.954 14.708 12.018 14.356C12.09 13.996 12.178 13.608 12.282 13.192L13.758 7.24H14.85L12.582 16H11.106Z" fill="var(--color-text)" id="icon-32-text"></path></svg>Hizb<wbr/>Quarter<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/JuzList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Juz<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/ManzilList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Manzil<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/PageList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Page<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/RukuList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Ruku<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/SajdaList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sajda<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/SuraList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sura<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/meta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>meta</a></li>
-<li class="tsd-kind-variable"><a href="../variables/suraNamesEn.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>En</a></li>
-<li class="tsd-kind-variable"><a href="../variables/suraNamesRu.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>Ru</a></li>
-<li class="tsd-kind-function"><a href="../functions/ayaStringSplitter.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-function)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-64-path"></rect><path d="M9.39 16V7.24H14.55V8.224H10.446V11.128H14.238V12.112H10.47V16H9.39Z" fill="var(--color-text)" id="icon-64-text"></path></svg>aya<wbr/>String<wbr/>Splitter</a></li>
-<li class="tsd-kind-function"><a href="../functions/findAyaidBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Ayaid<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzAndShift.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>And<wbr/>Shift</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzHizb.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzHizbByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzMetaBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Meta<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="../functions/findPage.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Page</a></li>
-<li class="tsd-kind-function"><a href="../functions/findRangeAroundAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Range<wbr/>Around<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="../functions/findSurahByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Surah<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="../functions/getAyaCountinSura.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Aya<wbr/>Countin<wbr/>Sura</a></li>
-<li class="tsd-kind-function"><a href="../functions/getSurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="../functions/isAyahJuzFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Juz<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="../functions/isAyahPageFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Page<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="../functions/nextAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>next<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="../functions/pageMeta-1.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>page<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="../functions/prevAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>prev<wbr/>Ayah</a></li></ul></nav></div></div>
-<div class="container tsd-generator">
-<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></div>
-<div class="overlay"></div><script src="../assets/main.js"></script></body></html>
\ No newline at end of file
+<!DOCTYPE html><html class="default" lang="en"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>AyahNo | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../modules.html">quran-meta</a></li><li><a href="AyahNo.html">AyahNo</a></li></ul><h1>Type Alias AyahNo</h1></div><div class="tsd-signature"><span class="tsd-kind-type-alias">Ayah<wbr/>No</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/7ff9baaee85a66d9099133c3db867ac28679aa62/src/types.ts#L3">types.ts:3</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>quran-meta</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
diff --git a/docs/types/Juz.html b/docs/types/Juz.html
index 1ff0770..5a0f7de 100644
--- a/docs/types/Juz.html
+++ b/docs/types/Juz.html
@@ -1,84 +1 @@
-<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>Juz | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script async src="../assets/search.js" id="search-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os"</script><header class="tsd-page-toolbar">
-<div class="tsd-toolbar-contents container">
-<div class="table-cell" id="tsd-search" data-base="..">
-<div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M15.7824 13.833L12.6666 10.7177C12.5259 10.5771 12.3353 10.499 12.1353 10.499H11.6259C12.4884 9.39596 13.001 8.00859 13.001 6.49937C13.001 2.90909 10.0914 0 6.50048 0C2.90959 0 0 2.90909 0 6.49937C0 10.0896 2.90959 12.9987 6.50048 12.9987C8.00996 12.9987 9.39756 12.4863 10.5008 11.6239V12.1332C10.5008 12.3332 10.5789 12.5238 10.7195 12.6644L13.8354 15.7797C14.1292 16.0734 14.6042 16.0734 14.8948 15.7797L15.7793 14.8954C16.0731 14.6017 16.0731 14.1267 15.7824 13.833ZM6.50048 10.499C4.29094 10.499 2.50018 8.71165 2.50018 6.49937C2.50018 4.29021 4.28781 2.49976 6.50048 2.49976C8.71001 2.49976 10.5008 4.28708 10.5008 6.49937C10.5008 8.70852 8.71314 10.499 6.50048 10.499Z" fill="var(--color-text)"></path></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div>
-<div class="field">
-<div id="tsd-toolbar-links"></div></div>
-<ul class="results">
-<li class="state loading">Preparing search index...</li>
-<li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div>
-<div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><rect x="1" y="3" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="7" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="11" width="14" height="2" fill="var(--color-text)"></rect></svg></a></div></div></header>
-<div class="container container-main">
-<div class="col-8 col-content">
-<div class="tsd-page-title">
-<ul class="tsd-breadcrumb">
-<li><a href="../modules.html">quran-meta</a></li>
-<li><a href="Juz.html">Juz</a></li></ul>
-<h1>Type alias Juz</h1></div>
-<div class="tsd-signature">Juz<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span></div><aside class="tsd-sources">
-<ul>
-<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/a8fc894/src/types.ts#L6">types.ts:6</a></li></ul></aside></div>
-<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
-<div class="tsd-navigation settings">
-<details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Settings</h3></summary>
-<div class="tsd-accordion-details">
-<div class="tsd-filter-visibility">
-<h4 class="uppercase">Member Visibility</h4><form>
-<ul id="tsd-filter-options">
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div>
-<div class="tsd-theme-toggle">
-<h4 class="uppercase">Theme</h4><select id="theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div>
-<nav class="tsd-navigation primary">
-<details class="tsd-index-accordion" open><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Modules</h3></summary>
-<div class="tsd-accordion-details">
-<ul>
-<li><a href="../modules.html">quran-<wbr/>meta</a>
-<ul></ul></li></ul></div></details></nav>
-<nav class="tsd-navigation secondary menu-sticky">
-<ul>
-<li class="tsd-kind-type-alias"><a href="AyahId.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-4194304-path"></rect><path d="M11.31 16V8.224H8.91V7.24H14.79V8.224H12.39V16H11.31Z" fill="var(--color-text)" id="icon-4194304-text"></path></svg>Ayah<wbr/>Id</a></li>
-<li class="tsd-kind-type-alias"><a href="AyahNo.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Ayah<wbr/>No</a></li>
-<li class="current tsd-kind-type-alias"><a href="Juz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz</a></li>
-<li class="tsd-kind-type-alias"><a href="JuzMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="Page.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page</a></li>
-<li class="tsd-kind-type-alias"><a href="PageMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="Sajda.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Sajda</a></li>
-<li class="tsd-kind-type-alias"><a href="Surah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah</a></li>
-<li class="tsd-kind-type-alias"><a href="SurahAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Ayah</a></li>
-<li class="tsd-kind-type-alias"><a href="SurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-variable"><a href="../variables/HizbQuarterList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-variable)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-32-path"></rect><path d="M11.106 16L8.85 7.24H9.966L11.454 13.192C11.558 13.608 11.646 13.996 11.718 14.356C11.79 14.708 11.842 14.976 11.874 15.16C11.906 14.976 11.954 14.708 12.018 14.356C12.09 13.996 12.178 13.608 12.282 13.192L13.758 7.24H14.85L12.582 16H11.106Z" fill="var(--color-text)" id="icon-32-text"></path></svg>Hizb<wbr/>Quarter<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/JuzList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Juz<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/ManzilList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Manzil<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/PageList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Page<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/RukuList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Ruku<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/SajdaList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sajda<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/SuraList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sura<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/meta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>meta</a></li>
-<li class="tsd-kind-variable"><a href="../variables/suraNamesEn.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>En</a></li>
-<li class="tsd-kind-variable"><a href="../variables/suraNamesRu.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>Ru</a></li>
-<li class="tsd-kind-function"><a href="../functions/ayaStringSplitter.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-function)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-64-path"></rect><path d="M9.39 16V7.24H14.55V8.224H10.446V11.128H14.238V12.112H10.47V16H9.39Z" fill="var(--color-text)" id="icon-64-text"></path></svg>aya<wbr/>String<wbr/>Splitter</a></li>
-<li class="tsd-kind-function"><a href="../functions/findAyaidBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Ayaid<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzAndShift.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>And<wbr/>Shift</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzHizb.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzHizbByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzMetaBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Meta<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="../functions/findPage.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Page</a></li>
-<li class="tsd-kind-function"><a href="../functions/findRangeAroundAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Range<wbr/>Around<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="../functions/findSurahByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Surah<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="../functions/getAyaCountinSura.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Aya<wbr/>Countin<wbr/>Sura</a></li>
-<li class="tsd-kind-function"><a href="../functions/getSurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="../functions/isAyahJuzFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Juz<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="../functions/isAyahPageFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Page<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="../functions/nextAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>next<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="../functions/pageMeta-1.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>page<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="../functions/prevAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>prev<wbr/>Ayah</a></li></ul></nav></div></div>
-<div class="container tsd-generator">
-<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></div>
-<div class="overlay"></div><script src="../assets/main.js"></script></body></html>
\ No newline at end of file
+<!DOCTYPE html><html class="default" lang="en"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>Juz | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../modules.html">quran-meta</a></li><li><a href="Juz.html">Juz</a></li></ul><h1>Type Alias Juz</h1></div><div class="tsd-signature"><span class="tsd-kind-type-alias">Juz</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/7ff9baaee85a66d9099133c3db867ac28679aa62/src/types.ts#L6">types.ts:6</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>quran-meta</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
diff --git a/docs/types/JuzHizb.html b/docs/types/JuzHizb.html
new file mode 100644
index 0000000..27b4d73
--- /dev/null
+++ b/docs/types/JuzHizb.html
@@ -0,0 +1 @@
+<!DOCTYPE html><html class="default" lang="en"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>JuzHizb | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../modules.html">quran-meta</a></li><li><a href="JuzHizb.html">JuzHizb</a></li></ul><h1>Type Alias JuzHizb</h1></div><div class="tsd-signature"><span class="tsd-kind-type-alias">Juz<wbr/>Hizb</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">{ </span><br/><span>    </span><span class="tsd-kind-property">hizb</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">; </span><br/><span>    </span><span class="tsd-kind-property">id</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">; </span><br/><span>    </span><span class="tsd-kind-property">juz</span><span class="tsd-signature-symbol">: </span><a href="Juz.html" class="tsd-signature-type tsd-kind-type-alias">Juz</a><span class="tsd-signature-symbol">; </span><br/><span class="tsd-signature-symbol">}</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/7ff9baaee85a66d9099133c3db867ac28679aa62/src/types.ts#L7">types.ts:7</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>quran-meta</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
diff --git a/docs/types/JuzMeta.html b/docs/types/JuzMeta.html
index 65ab900..9ecd32e 100644
--- a/docs/types/JuzMeta.html
+++ b/docs/types/JuzMeta.html
@@ -1,97 +1 @@
-<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>JuzMeta | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script async src="../assets/search.js" id="search-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os"</script><header class="tsd-page-toolbar">
-<div class="tsd-toolbar-contents container">
-<div class="table-cell" id="tsd-search" data-base="..">
-<div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M15.7824 13.833L12.6666 10.7177C12.5259 10.5771 12.3353 10.499 12.1353 10.499H11.6259C12.4884 9.39596 13.001 8.00859 13.001 6.49937C13.001 2.90909 10.0914 0 6.50048 0C2.90959 0 0 2.90909 0 6.49937C0 10.0896 2.90959 12.9987 6.50048 12.9987C8.00996 12.9987 9.39756 12.4863 10.5008 11.6239V12.1332C10.5008 12.3332 10.5789 12.5238 10.7195 12.6644L13.8354 15.7797C14.1292 16.0734 14.6042 16.0734 14.8948 15.7797L15.7793 14.8954C16.0731 14.6017 16.0731 14.1267 15.7824 13.833ZM6.50048 10.499C4.29094 10.499 2.50018 8.71165 2.50018 6.49937C2.50018 4.29021 4.28781 2.49976 6.50048 2.49976C8.71001 2.49976 10.5008 4.28708 10.5008 6.49937C10.5008 8.70852 8.71314 10.499 6.50048 10.499Z" fill="var(--color-text)"></path></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div>
-<div class="field">
-<div id="tsd-toolbar-links"></div></div>
-<ul class="results">
-<li class="state loading">Preparing search index...</li>
-<li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div>
-<div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><rect x="1" y="3" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="7" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="11" width="14" height="2" fill="var(--color-text)"></rect></svg></a></div></div></header>
-<div class="container container-main">
-<div class="col-8 col-content">
-<div class="tsd-page-title">
-<ul class="tsd-breadcrumb">
-<li><a href="../modules.html">quran-meta</a></li>
-<li><a href="JuzMeta.html">JuzMeta</a></li></ul>
-<h1>Type alias JuzMeta</h1></div>
-<div class="tsd-signature">Juz<wbr/>Meta<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">{ </span><br/><span>    </span>ayahsBetweenJuzSurah<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">; </span><br/><span>    </span>leftAyahId<span class="tsd-signature-symbol">: </span><a href="AyahId.html" class="tsd-signature-type" data-tsd-kind="Type alias">AyahId</a><span class="tsd-signature-symbol">; </span><br/><span>    </span>leftjuz<span class="tsd-signature-symbol">: </span><a href="Juz.html" class="tsd-signature-type" data-tsd-kind="Type alias">Juz</a><span class="tsd-signature-symbol">; </span><br/><span>    </span>rightAyahId<span class="tsd-signature-symbol">: </span><a href="AyahId.html" class="tsd-signature-type" data-tsd-kind="Type alias">AyahId</a><span class="tsd-signature-symbol">; </span><br/><span>    </span>rightJuz<span class="tsd-signature-symbol">: </span><a href="Juz.html" class="tsd-signature-type" data-tsd-kind="Type alias">Juz</a><span class="tsd-signature-symbol">; </span><br/><span class="tsd-signature-symbol">}</span></div>
-<div class="tsd-type-declaration">
-<h4>Type declaration</h4>
-<ul class="tsd-parameters">
-<li class="tsd-parameter">
-<h5>ayahs<wbr/>Between<wbr/>Juz<wbr/>Surah<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span></h5></li>
-<li class="tsd-parameter">
-<h5>left<wbr/>Ayah<wbr/>Id<span class="tsd-signature-symbol">: </span><a href="AyahId.html" class="tsd-signature-type" data-tsd-kind="Type alias">AyahId</a></h5></li>
-<li class="tsd-parameter">
-<h5>leftjuz<span class="tsd-signature-symbol">: </span><a href="Juz.html" class="tsd-signature-type" data-tsd-kind="Type alias">Juz</a></h5></li>
-<li class="tsd-parameter">
-<h5>right<wbr/>Ayah<wbr/>Id<span class="tsd-signature-symbol">: </span><a href="AyahId.html" class="tsd-signature-type" data-tsd-kind="Type alias">AyahId</a></h5></li>
-<li class="tsd-parameter">
-<h5>right<wbr/>Juz<span class="tsd-signature-symbol">: </span><a href="Juz.html" class="tsd-signature-type" data-tsd-kind="Type alias">Juz</a></h5></li></ul></div><aside class="tsd-sources">
-<ul>
-<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/a8fc894/src/types.ts#L20">types.ts:20</a></li></ul></aside></div>
-<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
-<div class="tsd-navigation settings">
-<details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Settings</h3></summary>
-<div class="tsd-accordion-details">
-<div class="tsd-filter-visibility">
-<h4 class="uppercase">Member Visibility</h4><form>
-<ul id="tsd-filter-options">
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div>
-<div class="tsd-theme-toggle">
-<h4 class="uppercase">Theme</h4><select id="theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div>
-<nav class="tsd-navigation primary">
-<details class="tsd-index-accordion" open><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Modules</h3></summary>
-<div class="tsd-accordion-details">
-<ul>
-<li><a href="../modules.html">quran-<wbr/>meta</a>
-<ul></ul></li></ul></div></details></nav>
-<nav class="tsd-navigation secondary menu-sticky">
-<ul>
-<li class="tsd-kind-type-alias"><a href="AyahId.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-4194304-path"></rect><path d="M11.31 16V8.224H8.91V7.24H14.79V8.224H12.39V16H11.31Z" fill="var(--color-text)" id="icon-4194304-text"></path></svg>Ayah<wbr/>Id</a></li>
-<li class="tsd-kind-type-alias"><a href="AyahNo.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Ayah<wbr/>No</a></li>
-<li class="tsd-kind-type-alias"><a href="Juz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz</a></li>
-<li class="current tsd-kind-type-alias"><a href="JuzMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="Page.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page</a></li>
-<li class="tsd-kind-type-alias"><a href="PageMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="Sajda.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Sajda</a></li>
-<li class="tsd-kind-type-alias"><a href="Surah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah</a></li>
-<li class="tsd-kind-type-alias"><a href="SurahAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Ayah</a></li>
-<li class="tsd-kind-type-alias"><a href="SurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-variable"><a href="../variables/HizbQuarterList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-variable)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-32-path"></rect><path d="M11.106 16L8.85 7.24H9.966L11.454 13.192C11.558 13.608 11.646 13.996 11.718 14.356C11.79 14.708 11.842 14.976 11.874 15.16C11.906 14.976 11.954 14.708 12.018 14.356C12.09 13.996 12.178 13.608 12.282 13.192L13.758 7.24H14.85L12.582 16H11.106Z" fill="var(--color-text)" id="icon-32-text"></path></svg>Hizb<wbr/>Quarter<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/JuzList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Juz<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/ManzilList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Manzil<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/PageList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Page<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/RukuList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Ruku<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/SajdaList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sajda<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/SuraList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sura<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/meta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>meta</a></li>
-<li class="tsd-kind-variable"><a href="../variables/suraNamesEn.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>En</a></li>
-<li class="tsd-kind-variable"><a href="../variables/suraNamesRu.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>Ru</a></li>
-<li class="tsd-kind-function"><a href="../functions/ayaStringSplitter.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-function)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-64-path"></rect><path d="M9.39 16V7.24H14.55V8.224H10.446V11.128H14.238V12.112H10.47V16H9.39Z" fill="var(--color-text)" id="icon-64-text"></path></svg>aya<wbr/>String<wbr/>Splitter</a></li>
-<li class="tsd-kind-function"><a href="../functions/findAyaidBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Ayaid<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzAndShift.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>And<wbr/>Shift</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzHizb.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzHizbByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzMetaBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Meta<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="../functions/findPage.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Page</a></li>
-<li class="tsd-kind-function"><a href="../functions/findRangeAroundAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Range<wbr/>Around<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="../functions/findSurahByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Surah<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="../functions/getAyaCountinSura.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Aya<wbr/>Countin<wbr/>Sura</a></li>
-<li class="tsd-kind-function"><a href="../functions/getSurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="../functions/isAyahJuzFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Juz<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="../functions/isAyahPageFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Page<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="../functions/nextAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>next<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="../functions/pageMeta-1.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>page<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="../functions/prevAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>prev<wbr/>Ayah</a></li></ul></nav></div></div>
-<div class="container tsd-generator">
-<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></div>
-<div class="overlay"></div><script src="../assets/main.js"></script></body></html>
\ No newline at end of file
+<!DOCTYPE html><html class="default" lang="en"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>JuzMeta | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../modules.html">quran-meta</a></li><li><a href="JuzMeta.html">JuzMeta</a></li></ul><h1>Type Alias JuzMeta</h1></div><div class="tsd-signature"><span class="tsd-kind-type-alias">Juz<wbr/>Meta</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">{ </span><br/><span>    </span><span class="tsd-kind-property">ayahsBetweenJuzSurah</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">; </span><br/><span>    </span><span class="tsd-kind-property">leftAyahId</span><span class="tsd-signature-symbol">: </span><a href="AyahId.html" class="tsd-signature-type tsd-kind-type-alias">AyahId</a><span class="tsd-signature-symbol">; </span><br/><span>    </span><span class="tsd-kind-property">leftjuz</span><span class="tsd-signature-symbol">: </span><a href="Juz.html" class="tsd-signature-type tsd-kind-type-alias">Juz</a><span class="tsd-signature-symbol">; </span><br/><span>    </span><span class="tsd-kind-property">rightAyahId</span><span class="tsd-signature-symbol">: </span><a href="AyahId.html" class="tsd-signature-type tsd-kind-type-alias">AyahId</a><span class="tsd-signature-symbol">; </span><br/><span>    </span><span class="tsd-kind-property">rightJuz</span><span class="tsd-signature-symbol">: </span><a href="Juz.html" class="tsd-signature-type tsd-kind-type-alias">Juz</a><span class="tsd-signature-symbol">; </span><br/><span class="tsd-signature-symbol">}</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/7ff9baaee85a66d9099133c3db867ac28679aa62/src/types.ts#L20">types.ts:20</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>quran-meta</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
diff --git a/docs/types/Page.html b/docs/types/Page.html
index e92914f..f8a7418 100644
--- a/docs/types/Page.html
+++ b/docs/types/Page.html
@@ -1,84 +1 @@
-<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>Page | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script async src="../assets/search.js" id="search-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os"</script><header class="tsd-page-toolbar">
-<div class="tsd-toolbar-contents container">
-<div class="table-cell" id="tsd-search" data-base="..">
-<div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M15.7824 13.833L12.6666 10.7177C12.5259 10.5771 12.3353 10.499 12.1353 10.499H11.6259C12.4884 9.39596 13.001 8.00859 13.001 6.49937C13.001 2.90909 10.0914 0 6.50048 0C2.90959 0 0 2.90909 0 6.49937C0 10.0896 2.90959 12.9987 6.50048 12.9987C8.00996 12.9987 9.39756 12.4863 10.5008 11.6239V12.1332C10.5008 12.3332 10.5789 12.5238 10.7195 12.6644L13.8354 15.7797C14.1292 16.0734 14.6042 16.0734 14.8948 15.7797L15.7793 14.8954C16.0731 14.6017 16.0731 14.1267 15.7824 13.833ZM6.50048 10.499C4.29094 10.499 2.50018 8.71165 2.50018 6.49937C2.50018 4.29021 4.28781 2.49976 6.50048 2.49976C8.71001 2.49976 10.5008 4.28708 10.5008 6.49937C10.5008 8.70852 8.71314 10.499 6.50048 10.499Z" fill="var(--color-text)"></path></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div>
-<div class="field">
-<div id="tsd-toolbar-links"></div></div>
-<ul class="results">
-<li class="state loading">Preparing search index...</li>
-<li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div>
-<div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><rect x="1" y="3" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="7" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="11" width="14" height="2" fill="var(--color-text)"></rect></svg></a></div></div></header>
-<div class="container container-main">
-<div class="col-8 col-content">
-<div class="tsd-page-title">
-<ul class="tsd-breadcrumb">
-<li><a href="../modules.html">quran-meta</a></li>
-<li><a href="Page.html">Page</a></li></ul>
-<h1>Type alias Page</h1></div>
-<div class="tsd-signature">Page<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span></div><aside class="tsd-sources">
-<ul>
-<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/a8fc894/src/types.ts#L5">types.ts:5</a></li></ul></aside></div>
-<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
-<div class="tsd-navigation settings">
-<details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Settings</h3></summary>
-<div class="tsd-accordion-details">
-<div class="tsd-filter-visibility">
-<h4 class="uppercase">Member Visibility</h4><form>
-<ul id="tsd-filter-options">
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div>
-<div class="tsd-theme-toggle">
-<h4 class="uppercase">Theme</h4><select id="theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div>
-<nav class="tsd-navigation primary">
-<details class="tsd-index-accordion" open><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Modules</h3></summary>
-<div class="tsd-accordion-details">
-<ul>
-<li><a href="../modules.html">quran-<wbr/>meta</a>
-<ul></ul></li></ul></div></details></nav>
-<nav class="tsd-navigation secondary menu-sticky">
-<ul>
-<li class="tsd-kind-type-alias"><a href="AyahId.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-4194304-path"></rect><path d="M11.31 16V8.224H8.91V7.24H14.79V8.224H12.39V16H11.31Z" fill="var(--color-text)" id="icon-4194304-text"></path></svg>Ayah<wbr/>Id</a></li>
-<li class="tsd-kind-type-alias"><a href="AyahNo.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Ayah<wbr/>No</a></li>
-<li class="tsd-kind-type-alias"><a href="Juz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz</a></li>
-<li class="tsd-kind-type-alias"><a href="JuzMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz<wbr/>Meta</a></li>
-<li class="current tsd-kind-type-alias"><a href="Page.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page</a></li>
-<li class="tsd-kind-type-alias"><a href="PageMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="Sajda.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Sajda</a></li>
-<li class="tsd-kind-type-alias"><a href="Surah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah</a></li>
-<li class="tsd-kind-type-alias"><a href="SurahAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Ayah</a></li>
-<li class="tsd-kind-type-alias"><a href="SurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-variable"><a href="../variables/HizbQuarterList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-variable)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-32-path"></rect><path d="M11.106 16L8.85 7.24H9.966L11.454 13.192C11.558 13.608 11.646 13.996 11.718 14.356C11.79 14.708 11.842 14.976 11.874 15.16C11.906 14.976 11.954 14.708 12.018 14.356C12.09 13.996 12.178 13.608 12.282 13.192L13.758 7.24H14.85L12.582 16H11.106Z" fill="var(--color-text)" id="icon-32-text"></path></svg>Hizb<wbr/>Quarter<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/JuzList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Juz<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/ManzilList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Manzil<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/PageList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Page<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/RukuList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Ruku<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/SajdaList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sajda<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/SuraList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sura<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/meta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>meta</a></li>
-<li class="tsd-kind-variable"><a href="../variables/suraNamesEn.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>En</a></li>
-<li class="tsd-kind-variable"><a href="../variables/suraNamesRu.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>Ru</a></li>
-<li class="tsd-kind-function"><a href="../functions/ayaStringSplitter.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-function)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-64-path"></rect><path d="M9.39 16V7.24H14.55V8.224H10.446V11.128H14.238V12.112H10.47V16H9.39Z" fill="var(--color-text)" id="icon-64-text"></path></svg>aya<wbr/>String<wbr/>Splitter</a></li>
-<li class="tsd-kind-function"><a href="../functions/findAyaidBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Ayaid<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzAndShift.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>And<wbr/>Shift</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzHizb.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzHizbByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzMetaBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Meta<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="../functions/findPage.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Page</a></li>
-<li class="tsd-kind-function"><a href="../functions/findRangeAroundAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Range<wbr/>Around<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="../functions/findSurahByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Surah<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="../functions/getAyaCountinSura.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Aya<wbr/>Countin<wbr/>Sura</a></li>
-<li class="tsd-kind-function"><a href="../functions/getSurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="../functions/isAyahJuzFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Juz<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="../functions/isAyahPageFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Page<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="../functions/nextAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>next<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="../functions/pageMeta-1.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>page<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="../functions/prevAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>prev<wbr/>Ayah</a></li></ul></nav></div></div>
-<div class="container tsd-generator">
-<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></div>
-<div class="overlay"></div><script src="../assets/main.js"></script></body></html>
\ No newline at end of file
+<!DOCTYPE html><html class="default" lang="en"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>Page | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../modules.html">quran-meta</a></li><li><a href="Page.html">Page</a></li></ul><h1>Type Alias Page</h1></div><div class="tsd-signature"><span class="tsd-kind-type-alias">Page</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/7ff9baaee85a66d9099133c3db867ac28679aa62/src/types.ts#L5">types.ts:5</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>quran-meta</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
diff --git a/docs/types/PageMeta.html b/docs/types/PageMeta.html
index 998f797..48ed5e5 100644
--- a/docs/types/PageMeta.html
+++ b/docs/types/PageMeta.html
@@ -1,93 +1 @@
-<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>PageMeta | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script async src="../assets/search.js" id="search-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os"</script><header class="tsd-page-toolbar">
-<div class="tsd-toolbar-contents container">
-<div class="table-cell" id="tsd-search" data-base="..">
-<div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M15.7824 13.833L12.6666 10.7177C12.5259 10.5771 12.3353 10.499 12.1353 10.499H11.6259C12.4884 9.39596 13.001 8.00859 13.001 6.49937C13.001 2.90909 10.0914 0 6.50048 0C2.90959 0 0 2.90909 0 6.49937C0 10.0896 2.90959 12.9987 6.50048 12.9987C8.00996 12.9987 9.39756 12.4863 10.5008 11.6239V12.1332C10.5008 12.3332 10.5789 12.5238 10.7195 12.6644L13.8354 15.7797C14.1292 16.0734 14.6042 16.0734 14.8948 15.7797L15.7793 14.8954C16.0731 14.6017 16.0731 14.1267 15.7824 13.833ZM6.50048 10.499C4.29094 10.499 2.50018 8.71165 2.50018 6.49937C2.50018 4.29021 4.28781 2.49976 6.50048 2.49976C8.71001 2.49976 10.5008 4.28708 10.5008 6.49937C10.5008 8.70852 8.71314 10.499 6.50048 10.499Z" fill="var(--color-text)"></path></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div>
-<div class="field">
-<div id="tsd-toolbar-links"></div></div>
-<ul class="results">
-<li class="state loading">Preparing search index...</li>
-<li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div>
-<div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><rect x="1" y="3" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="7" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="11" width="14" height="2" fill="var(--color-text)"></rect></svg></a></div></div></header>
-<div class="container container-main">
-<div class="col-8 col-content">
-<div class="tsd-page-title">
-<ul class="tsd-breadcrumb">
-<li><a href="../modules.html">quran-meta</a></li>
-<li><a href="PageMeta.html">PageMeta</a></li></ul>
-<h1>Type alias PageMeta</h1></div>
-<div class="tsd-signature">Page<wbr/>Meta<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">{ </span><br/><span>    </span>first<span class="tsd-signature-symbol">: </span><a href="SurahAyah.html" class="tsd-signature-type" data-tsd-kind="Type alias">SurahAyah</a><span class="tsd-signature-symbol">; </span><br/><span>    </span>last<span class="tsd-signature-symbol">: </span><a href="SurahAyah.html" class="tsd-signature-type" data-tsd-kind="Type alias">SurahAyah</a><span class="tsd-signature-symbol">; </span><br/><span>    </span>pageNum<span class="tsd-signature-symbol">: </span><a href="Page.html" class="tsd-signature-type" data-tsd-kind="Type alias">Page</a><span class="tsd-signature-symbol">; </span><br/><span class="tsd-signature-symbol">}</span></div>
-<div class="tsd-type-declaration">
-<h4>Type declaration</h4>
-<ul class="tsd-parameters">
-<li class="tsd-parameter">
-<h5>first<span class="tsd-signature-symbol">: </span><a href="SurahAyah.html" class="tsd-signature-type" data-tsd-kind="Type alias">SurahAyah</a></h5></li>
-<li class="tsd-parameter">
-<h5>last<span class="tsd-signature-symbol">: </span><a href="SurahAyah.html" class="tsd-signature-type" data-tsd-kind="Type alias">SurahAyah</a></h5></li>
-<li class="tsd-parameter">
-<h5>page<wbr/>Num<span class="tsd-signature-symbol">: </span><a href="Page.html" class="tsd-signature-type" data-tsd-kind="Type alias">Page</a></h5></li></ul></div><aside class="tsd-sources">
-<ul>
-<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/a8fc894/src/types.ts#L14">types.ts:14</a></li></ul></aside></div>
-<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
-<div class="tsd-navigation settings">
-<details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Settings</h3></summary>
-<div class="tsd-accordion-details">
-<div class="tsd-filter-visibility">
-<h4 class="uppercase">Member Visibility</h4><form>
-<ul id="tsd-filter-options">
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div>
-<div class="tsd-theme-toggle">
-<h4 class="uppercase">Theme</h4><select id="theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div>
-<nav class="tsd-navigation primary">
-<details class="tsd-index-accordion" open><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Modules</h3></summary>
-<div class="tsd-accordion-details">
-<ul>
-<li><a href="../modules.html">quran-<wbr/>meta</a>
-<ul></ul></li></ul></div></details></nav>
-<nav class="tsd-navigation secondary menu-sticky">
-<ul>
-<li class="tsd-kind-type-alias"><a href="AyahId.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-4194304-path"></rect><path d="M11.31 16V8.224H8.91V7.24H14.79V8.224H12.39V16H11.31Z" fill="var(--color-text)" id="icon-4194304-text"></path></svg>Ayah<wbr/>Id</a></li>
-<li class="tsd-kind-type-alias"><a href="AyahNo.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Ayah<wbr/>No</a></li>
-<li class="tsd-kind-type-alias"><a href="Juz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz</a></li>
-<li class="tsd-kind-type-alias"><a href="JuzMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="Page.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page</a></li>
-<li class="current tsd-kind-type-alias"><a href="PageMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="Sajda.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Sajda</a></li>
-<li class="tsd-kind-type-alias"><a href="Surah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah</a></li>
-<li class="tsd-kind-type-alias"><a href="SurahAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Ayah</a></li>
-<li class="tsd-kind-type-alias"><a href="SurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-variable"><a href="../variables/HizbQuarterList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-variable)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-32-path"></rect><path d="M11.106 16L8.85 7.24H9.966L11.454 13.192C11.558 13.608 11.646 13.996 11.718 14.356C11.79 14.708 11.842 14.976 11.874 15.16C11.906 14.976 11.954 14.708 12.018 14.356C12.09 13.996 12.178 13.608 12.282 13.192L13.758 7.24H14.85L12.582 16H11.106Z" fill="var(--color-text)" id="icon-32-text"></path></svg>Hizb<wbr/>Quarter<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/JuzList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Juz<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/ManzilList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Manzil<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/PageList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Page<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/RukuList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Ruku<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/SajdaList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sajda<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/SuraList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sura<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/meta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>meta</a></li>
-<li class="tsd-kind-variable"><a href="../variables/suraNamesEn.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>En</a></li>
-<li class="tsd-kind-variable"><a href="../variables/suraNamesRu.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>Ru</a></li>
-<li class="tsd-kind-function"><a href="../functions/ayaStringSplitter.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-function)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-64-path"></rect><path d="M9.39 16V7.24H14.55V8.224H10.446V11.128H14.238V12.112H10.47V16H9.39Z" fill="var(--color-text)" id="icon-64-text"></path></svg>aya<wbr/>String<wbr/>Splitter</a></li>
-<li class="tsd-kind-function"><a href="../functions/findAyaidBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Ayaid<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzAndShift.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>And<wbr/>Shift</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzHizb.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzHizbByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzMetaBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Meta<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="../functions/findPage.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Page</a></li>
-<li class="tsd-kind-function"><a href="../functions/findRangeAroundAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Range<wbr/>Around<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="../functions/findSurahByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Surah<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="../functions/getAyaCountinSura.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Aya<wbr/>Countin<wbr/>Sura</a></li>
-<li class="tsd-kind-function"><a href="../functions/getSurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="../functions/isAyahJuzFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Juz<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="../functions/isAyahPageFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Page<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="../functions/nextAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>next<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="../functions/pageMeta-1.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>page<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="../functions/prevAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>prev<wbr/>Ayah</a></li></ul></nav></div></div>
-<div class="container tsd-generator">
-<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></div>
-<div class="overlay"></div><script src="../assets/main.js"></script></body></html>
\ No newline at end of file
+<!DOCTYPE html><html class="default" lang="en"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>PageMeta | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../modules.html">quran-meta</a></li><li><a href="PageMeta.html">PageMeta</a></li></ul><h1>Type Alias PageMeta</h1></div><div class="tsd-signature"><span class="tsd-kind-type-alias">Page<wbr/>Meta</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">{ </span><br/><span>    </span><span class="tsd-kind-property">first</span><span class="tsd-signature-symbol">: </span><a href="SurahAyah.html" class="tsd-signature-type tsd-kind-type-alias">SurahAyah</a><span class="tsd-signature-symbol">; </span><br/><span>    </span><span class="tsd-kind-property">last</span><span class="tsd-signature-symbol">: </span><a href="SurahAyah.html" class="tsd-signature-type tsd-kind-type-alias">SurahAyah</a><span class="tsd-signature-symbol">; </span><br/><span>    </span><span class="tsd-kind-property">pageNum</span><span class="tsd-signature-symbol">: </span><a href="Page.html" class="tsd-signature-type tsd-kind-type-alias">Page</a><span class="tsd-signature-symbol">; </span><br/><span class="tsd-signature-symbol">}</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/7ff9baaee85a66d9099133c3db867ac28679aa62/src/types.ts#L14">types.ts:14</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>quran-meta</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
diff --git a/docs/types/QuranMeta.html b/docs/types/QuranMeta.html
new file mode 100644
index 0000000..8867348
--- /dev/null
+++ b/docs/types/QuranMeta.html
@@ -0,0 +1 @@
+<!DOCTYPE html><html class="default" lang="en"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>QuranMeta | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../modules.html">quran-meta</a></li><li><a href="QuranMeta.html">QuranMeta</a></li></ul><h1>Type Alias QuranMeta</h1></div><div class="tsd-signature"><span class="tsd-kind-type-alias">Quran<wbr/>Meta</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">{ </span><br/><span>    </span><span class="tsd-kind-property">manzilCount</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">; </span><br/><span>    </span><span class="tsd-kind-property">numAyas</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">; </span><br/><span>    </span><span class="tsd-kind-property">numJuzs</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">; </span><br/><span>    </span><span class="tsd-kind-property">numPages</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">; </span><br/><span>    </span><span class="tsd-kind-property">numSuras</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">; </span><br/><span class="tsd-signature-symbol">}</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/7ff9baaee85a66d9099133c3db867ac28679aa62/src/const.ts#L1">const.ts:1</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>quran-meta</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
diff --git a/docs/types/Sajda.html b/docs/types/Sajda.html
index 2f66698..595a375 100644
--- a/docs/types/Sajda.html
+++ b/docs/types/Sajda.html
@@ -1,84 +1 @@
-<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>Sajda | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script async src="../assets/search.js" id="search-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os"</script><header class="tsd-page-toolbar">
-<div class="tsd-toolbar-contents container">
-<div class="table-cell" id="tsd-search" data-base="..">
-<div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M15.7824 13.833L12.6666 10.7177C12.5259 10.5771 12.3353 10.499 12.1353 10.499H11.6259C12.4884 9.39596 13.001 8.00859 13.001 6.49937C13.001 2.90909 10.0914 0 6.50048 0C2.90959 0 0 2.90909 0 6.49937C0 10.0896 2.90959 12.9987 6.50048 12.9987C8.00996 12.9987 9.39756 12.4863 10.5008 11.6239V12.1332C10.5008 12.3332 10.5789 12.5238 10.7195 12.6644L13.8354 15.7797C14.1292 16.0734 14.6042 16.0734 14.8948 15.7797L15.7793 14.8954C16.0731 14.6017 16.0731 14.1267 15.7824 13.833ZM6.50048 10.499C4.29094 10.499 2.50018 8.71165 2.50018 6.49937C2.50018 4.29021 4.28781 2.49976 6.50048 2.49976C8.71001 2.49976 10.5008 4.28708 10.5008 6.49937C10.5008 8.70852 8.71314 10.499 6.50048 10.499Z" fill="var(--color-text)"></path></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div>
-<div class="field">
-<div id="tsd-toolbar-links"></div></div>
-<ul class="results">
-<li class="state loading">Preparing search index...</li>
-<li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div>
-<div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><rect x="1" y="3" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="7" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="11" width="14" height="2" fill="var(--color-text)"></rect></svg></a></div></div></header>
-<div class="container container-main">
-<div class="col-8 col-content">
-<div class="tsd-page-title">
-<ul class="tsd-breadcrumb">
-<li><a href="../modules.html">quran-meta</a></li>
-<li><a href="Sajda.html">Sajda</a></li></ul>
-<h1>Type alias Sajda</h1></div>
-<div class="tsd-signature">Sajda<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">[</span><a href="AyahId.html" class="tsd-signature-type" data-tsd-kind="Type alias">AyahId</a><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">SajdaType</span><span class="tsd-signature-symbol">]</span></div><aside class="tsd-sources">
-<ul>
-<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/a8fc894/src/types.ts#L29">types.ts:29</a></li></ul></aside></div>
-<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
-<div class="tsd-navigation settings">
-<details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Settings</h3></summary>
-<div class="tsd-accordion-details">
-<div class="tsd-filter-visibility">
-<h4 class="uppercase">Member Visibility</h4><form>
-<ul id="tsd-filter-options">
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div>
-<div class="tsd-theme-toggle">
-<h4 class="uppercase">Theme</h4><select id="theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div>
-<nav class="tsd-navigation primary">
-<details class="tsd-index-accordion" open><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Modules</h3></summary>
-<div class="tsd-accordion-details">
-<ul>
-<li><a href="../modules.html">quran-<wbr/>meta</a>
-<ul></ul></li></ul></div></details></nav>
-<nav class="tsd-navigation secondary menu-sticky">
-<ul>
-<li class="tsd-kind-type-alias"><a href="AyahId.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-4194304-path"></rect><path d="M11.31 16V8.224H8.91V7.24H14.79V8.224H12.39V16H11.31Z" fill="var(--color-text)" id="icon-4194304-text"></path></svg>Ayah<wbr/>Id</a></li>
-<li class="tsd-kind-type-alias"><a href="AyahNo.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Ayah<wbr/>No</a></li>
-<li class="tsd-kind-type-alias"><a href="Juz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz</a></li>
-<li class="tsd-kind-type-alias"><a href="JuzMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="Page.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page</a></li>
-<li class="tsd-kind-type-alias"><a href="PageMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page<wbr/>Meta</a></li>
-<li class="current tsd-kind-type-alias"><a href="Sajda.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Sajda</a></li>
-<li class="tsd-kind-type-alias"><a href="Surah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah</a></li>
-<li class="tsd-kind-type-alias"><a href="SurahAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Ayah</a></li>
-<li class="tsd-kind-type-alias"><a href="SurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-variable"><a href="../variables/HizbQuarterList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-variable)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-32-path"></rect><path d="M11.106 16L8.85 7.24H9.966L11.454 13.192C11.558 13.608 11.646 13.996 11.718 14.356C11.79 14.708 11.842 14.976 11.874 15.16C11.906 14.976 11.954 14.708 12.018 14.356C12.09 13.996 12.178 13.608 12.282 13.192L13.758 7.24H14.85L12.582 16H11.106Z" fill="var(--color-text)" id="icon-32-text"></path></svg>Hizb<wbr/>Quarter<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/JuzList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Juz<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/ManzilList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Manzil<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/PageList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Page<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/RukuList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Ruku<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/SajdaList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sajda<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/SuraList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sura<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/meta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>meta</a></li>
-<li class="tsd-kind-variable"><a href="../variables/suraNamesEn.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>En</a></li>
-<li class="tsd-kind-variable"><a href="../variables/suraNamesRu.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>Ru</a></li>
-<li class="tsd-kind-function"><a href="../functions/ayaStringSplitter.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-function)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-64-path"></rect><path d="M9.39 16V7.24H14.55V8.224H10.446V11.128H14.238V12.112H10.47V16H9.39Z" fill="var(--color-text)" id="icon-64-text"></path></svg>aya<wbr/>String<wbr/>Splitter</a></li>
-<li class="tsd-kind-function"><a href="../functions/findAyaidBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Ayaid<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzAndShift.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>And<wbr/>Shift</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzHizb.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzHizbByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzMetaBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Meta<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="../functions/findPage.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Page</a></li>
-<li class="tsd-kind-function"><a href="../functions/findRangeAroundAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Range<wbr/>Around<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="../functions/findSurahByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Surah<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="../functions/getAyaCountinSura.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Aya<wbr/>Countin<wbr/>Sura</a></li>
-<li class="tsd-kind-function"><a href="../functions/getSurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="../functions/isAyahJuzFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Juz<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="../functions/isAyahPageFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Page<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="../functions/nextAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>next<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="../functions/pageMeta-1.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>page<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="../functions/prevAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>prev<wbr/>Ayah</a></li></ul></nav></div></div>
-<div class="container tsd-generator">
-<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></div>
-<div class="overlay"></div><script src="../assets/main.js"></script></body></html>
\ No newline at end of file
+<!DOCTYPE html><html class="default" lang="en"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>Sajda | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../modules.html">quran-meta</a></li><li><a href="Sajda.html">Sajda</a></li></ul><h1>Type Alias Sajda</h1></div><div class="tsd-signature"><span class="tsd-kind-type-alias">Sajda</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">[</span><a href="AyahId.html" class="tsd-signature-type tsd-kind-type-alias">AyahId</a><span class="tsd-signature-symbol">, </span><a href="SajdaType.html" class="tsd-signature-type tsd-kind-type-alias">SajdaType</a><span class="tsd-signature-symbol">]</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/7ff9baaee85a66d9099133c3db867ac28679aa62/src/types.ts#L29">types.ts:29</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>quran-meta</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
diff --git a/docs/types/SajdaType.html b/docs/types/SajdaType.html
new file mode 100644
index 0000000..ff96ab3
--- /dev/null
+++ b/docs/types/SajdaType.html
@@ -0,0 +1 @@
+<!DOCTYPE html><html class="default" lang="en"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>SajdaType | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../modules.html">quran-meta</a></li><li><a href="SajdaType.html">SajdaType</a></li></ul><h1>Type Alias SajdaType</h1></div><div class="tsd-signature"><span class="tsd-kind-type-alias">Sajda<wbr/>Type</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">&quot;recommended&quot;</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">&quot;obligatory&quot;</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/7ff9baaee85a66d9099133c3db867ac28679aa62/src/types.ts#L28">types.ts:28</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>quran-meta</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
diff --git a/docs/types/SuraName.html b/docs/types/SuraName.html
new file mode 100644
index 0000000..1032056
--- /dev/null
+++ b/docs/types/SuraName.html
@@ -0,0 +1 @@
+<!DOCTYPE html><html class="default" lang="en"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>SuraName | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../modules.html">quran-meta</a></li><li><a href="SuraName.html">SuraName</a></li></ul><h1>Type Alias SuraName</h1></div><div class="tsd-signature"><span class="tsd-kind-type-alias">Sura<wbr/>Name</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">[</span>name<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">, </span>translitName<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">]</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/7ff9baaee85a66d9099133c3db867ac28679aa62/src/types.ts#L40">types.ts:40</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>quran-meta</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
diff --git a/docs/types/Surah.html b/docs/types/Surah.html
index 608aa02..de512f6 100644
--- a/docs/types/Surah.html
+++ b/docs/types/Surah.html
@@ -1,84 +1 @@
-<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>Surah | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script async src="../assets/search.js" id="search-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os"</script><header class="tsd-page-toolbar">
-<div class="tsd-toolbar-contents container">
-<div class="table-cell" id="tsd-search" data-base="..">
-<div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M15.7824 13.833L12.6666 10.7177C12.5259 10.5771 12.3353 10.499 12.1353 10.499H11.6259C12.4884 9.39596 13.001 8.00859 13.001 6.49937C13.001 2.90909 10.0914 0 6.50048 0C2.90959 0 0 2.90909 0 6.49937C0 10.0896 2.90959 12.9987 6.50048 12.9987C8.00996 12.9987 9.39756 12.4863 10.5008 11.6239V12.1332C10.5008 12.3332 10.5789 12.5238 10.7195 12.6644L13.8354 15.7797C14.1292 16.0734 14.6042 16.0734 14.8948 15.7797L15.7793 14.8954C16.0731 14.6017 16.0731 14.1267 15.7824 13.833ZM6.50048 10.499C4.29094 10.499 2.50018 8.71165 2.50018 6.49937C2.50018 4.29021 4.28781 2.49976 6.50048 2.49976C8.71001 2.49976 10.5008 4.28708 10.5008 6.49937C10.5008 8.70852 8.71314 10.499 6.50048 10.499Z" fill="var(--color-text)"></path></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div>
-<div class="field">
-<div id="tsd-toolbar-links"></div></div>
-<ul class="results">
-<li class="state loading">Preparing search index...</li>
-<li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div>
-<div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><rect x="1" y="3" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="7" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="11" width="14" height="2" fill="var(--color-text)"></rect></svg></a></div></div></header>
-<div class="container container-main">
-<div class="col-8 col-content">
-<div class="tsd-page-title">
-<ul class="tsd-breadcrumb">
-<li><a href="../modules.html">quran-meta</a></li>
-<li><a href="Surah.html">Surah</a></li></ul>
-<h1>Type alias Surah</h1></div>
-<div class="tsd-signature">Surah<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span></div><aside class="tsd-sources">
-<ul>
-<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/a8fc894/src/types.ts#L2">types.ts:2</a></li></ul></aside></div>
-<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
-<div class="tsd-navigation settings">
-<details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Settings</h3></summary>
-<div class="tsd-accordion-details">
-<div class="tsd-filter-visibility">
-<h4 class="uppercase">Member Visibility</h4><form>
-<ul id="tsd-filter-options">
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div>
-<div class="tsd-theme-toggle">
-<h4 class="uppercase">Theme</h4><select id="theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div>
-<nav class="tsd-navigation primary">
-<details class="tsd-index-accordion" open><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Modules</h3></summary>
-<div class="tsd-accordion-details">
-<ul>
-<li><a href="../modules.html">quran-<wbr/>meta</a>
-<ul></ul></li></ul></div></details></nav>
-<nav class="tsd-navigation secondary menu-sticky">
-<ul>
-<li class="tsd-kind-type-alias"><a href="AyahId.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-4194304-path"></rect><path d="M11.31 16V8.224H8.91V7.24H14.79V8.224H12.39V16H11.31Z" fill="var(--color-text)" id="icon-4194304-text"></path></svg>Ayah<wbr/>Id</a></li>
-<li class="tsd-kind-type-alias"><a href="AyahNo.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Ayah<wbr/>No</a></li>
-<li class="tsd-kind-type-alias"><a href="Juz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz</a></li>
-<li class="tsd-kind-type-alias"><a href="JuzMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="Page.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page</a></li>
-<li class="tsd-kind-type-alias"><a href="PageMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="Sajda.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Sajda</a></li>
-<li class="current tsd-kind-type-alias"><a href="Surah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah</a></li>
-<li class="tsd-kind-type-alias"><a href="SurahAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Ayah</a></li>
-<li class="tsd-kind-type-alias"><a href="SurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-variable"><a href="../variables/HizbQuarterList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-variable)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-32-path"></rect><path d="M11.106 16L8.85 7.24H9.966L11.454 13.192C11.558 13.608 11.646 13.996 11.718 14.356C11.79 14.708 11.842 14.976 11.874 15.16C11.906 14.976 11.954 14.708 12.018 14.356C12.09 13.996 12.178 13.608 12.282 13.192L13.758 7.24H14.85L12.582 16H11.106Z" fill="var(--color-text)" id="icon-32-text"></path></svg>Hizb<wbr/>Quarter<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/JuzList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Juz<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/ManzilList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Manzil<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/PageList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Page<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/RukuList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Ruku<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/SajdaList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sajda<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/SuraList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sura<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/meta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>meta</a></li>
-<li class="tsd-kind-variable"><a href="../variables/suraNamesEn.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>En</a></li>
-<li class="tsd-kind-variable"><a href="../variables/suraNamesRu.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>Ru</a></li>
-<li class="tsd-kind-function"><a href="../functions/ayaStringSplitter.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-function)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-64-path"></rect><path d="M9.39 16V7.24H14.55V8.224H10.446V11.128H14.238V12.112H10.47V16H9.39Z" fill="var(--color-text)" id="icon-64-text"></path></svg>aya<wbr/>String<wbr/>Splitter</a></li>
-<li class="tsd-kind-function"><a href="../functions/findAyaidBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Ayaid<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzAndShift.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>And<wbr/>Shift</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzHizb.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzHizbByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzMetaBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Meta<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="../functions/findPage.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Page</a></li>
-<li class="tsd-kind-function"><a href="../functions/findRangeAroundAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Range<wbr/>Around<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="../functions/findSurahByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Surah<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="../functions/getAyaCountinSura.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Aya<wbr/>Countin<wbr/>Sura</a></li>
-<li class="tsd-kind-function"><a href="../functions/getSurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="../functions/isAyahJuzFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Juz<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="../functions/isAyahPageFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Page<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="../functions/nextAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>next<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="../functions/pageMeta-1.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>page<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="../functions/prevAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>prev<wbr/>Ayah</a></li></ul></nav></div></div>
-<div class="container tsd-generator">
-<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></div>
-<div class="overlay"></div><script src="../assets/main.js"></script></body></html>
\ No newline at end of file
+<!DOCTYPE html><html class="default" lang="en"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>Surah | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../modules.html">quran-meta</a></li><li><a href="Surah.html">Surah</a></li></ul><h1>Type Alias Surah</h1></div><div class="tsd-signature"><span class="tsd-kind-type-alias">Surah</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/7ff9baaee85a66d9099133c3db867ac28679aa62/src/types.ts#L2">types.ts:2</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>quran-meta</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
diff --git a/docs/types/SurahAyah.html b/docs/types/SurahAyah.html
index 969605b..b59a77e 100644
--- a/docs/types/SurahAyah.html
+++ b/docs/types/SurahAyah.html
@@ -1,84 +1 @@
-<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>SurahAyah | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script async src="../assets/search.js" id="search-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os"</script><header class="tsd-page-toolbar">
-<div class="tsd-toolbar-contents container">
-<div class="table-cell" id="tsd-search" data-base="..">
-<div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M15.7824 13.833L12.6666 10.7177C12.5259 10.5771 12.3353 10.499 12.1353 10.499H11.6259C12.4884 9.39596 13.001 8.00859 13.001 6.49937C13.001 2.90909 10.0914 0 6.50048 0C2.90959 0 0 2.90909 0 6.49937C0 10.0896 2.90959 12.9987 6.50048 12.9987C8.00996 12.9987 9.39756 12.4863 10.5008 11.6239V12.1332C10.5008 12.3332 10.5789 12.5238 10.7195 12.6644L13.8354 15.7797C14.1292 16.0734 14.6042 16.0734 14.8948 15.7797L15.7793 14.8954C16.0731 14.6017 16.0731 14.1267 15.7824 13.833ZM6.50048 10.499C4.29094 10.499 2.50018 8.71165 2.50018 6.49937C2.50018 4.29021 4.28781 2.49976 6.50048 2.49976C8.71001 2.49976 10.5008 4.28708 10.5008 6.49937C10.5008 8.70852 8.71314 10.499 6.50048 10.499Z" fill="var(--color-text)"></path></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div>
-<div class="field">
-<div id="tsd-toolbar-links"></div></div>
-<ul class="results">
-<li class="state loading">Preparing search index...</li>
-<li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div>
-<div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><rect x="1" y="3" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="7" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="11" width="14" height="2" fill="var(--color-text)"></rect></svg></a></div></div></header>
-<div class="container container-main">
-<div class="col-8 col-content">
-<div class="tsd-page-title">
-<ul class="tsd-breadcrumb">
-<li><a href="../modules.html">quran-meta</a></li>
-<li><a href="SurahAyah.html">SurahAyah</a></li></ul>
-<h1>Type alias SurahAyah</h1></div>
-<div class="tsd-signature">Surah<wbr/>Ayah<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">[</span><a href="Surah.html" class="tsd-signature-type" data-tsd-kind="Type alias">Surah</a><span class="tsd-signature-symbol">, </span><a href="AyahNo.html" class="tsd-signature-type" data-tsd-kind="Type alias">AyahNo</a><span class="tsd-signature-symbol">]</span></div><aside class="tsd-sources">
-<ul>
-<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/a8fc894/src/types.ts#L12">types.ts:12</a></li></ul></aside></div>
-<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
-<div class="tsd-navigation settings">
-<details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Settings</h3></summary>
-<div class="tsd-accordion-details">
-<div class="tsd-filter-visibility">
-<h4 class="uppercase">Member Visibility</h4><form>
-<ul id="tsd-filter-options">
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div>
-<div class="tsd-theme-toggle">
-<h4 class="uppercase">Theme</h4><select id="theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div>
-<nav class="tsd-navigation primary">
-<details class="tsd-index-accordion" open><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Modules</h3></summary>
-<div class="tsd-accordion-details">
-<ul>
-<li><a href="../modules.html">quran-<wbr/>meta</a>
-<ul></ul></li></ul></div></details></nav>
-<nav class="tsd-navigation secondary menu-sticky">
-<ul>
-<li class="tsd-kind-type-alias"><a href="AyahId.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-4194304-path"></rect><path d="M11.31 16V8.224H8.91V7.24H14.79V8.224H12.39V16H11.31Z" fill="var(--color-text)" id="icon-4194304-text"></path></svg>Ayah<wbr/>Id</a></li>
-<li class="tsd-kind-type-alias"><a href="AyahNo.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Ayah<wbr/>No</a></li>
-<li class="tsd-kind-type-alias"><a href="Juz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz</a></li>
-<li class="tsd-kind-type-alias"><a href="JuzMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="Page.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page</a></li>
-<li class="tsd-kind-type-alias"><a href="PageMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="Sajda.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Sajda</a></li>
-<li class="tsd-kind-type-alias"><a href="Surah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah</a></li>
-<li class="current tsd-kind-type-alias"><a href="SurahAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Ayah</a></li>
-<li class="tsd-kind-type-alias"><a href="SurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-variable"><a href="../variables/HizbQuarterList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-variable)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-32-path"></rect><path d="M11.106 16L8.85 7.24H9.966L11.454 13.192C11.558 13.608 11.646 13.996 11.718 14.356C11.79 14.708 11.842 14.976 11.874 15.16C11.906 14.976 11.954 14.708 12.018 14.356C12.09 13.996 12.178 13.608 12.282 13.192L13.758 7.24H14.85L12.582 16H11.106Z" fill="var(--color-text)" id="icon-32-text"></path></svg>Hizb<wbr/>Quarter<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/JuzList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Juz<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/ManzilList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Manzil<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/PageList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Page<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/RukuList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Ruku<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/SajdaList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sajda<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/SuraList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sura<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/meta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>meta</a></li>
-<li class="tsd-kind-variable"><a href="../variables/suraNamesEn.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>En</a></li>
-<li class="tsd-kind-variable"><a href="../variables/suraNamesRu.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>Ru</a></li>
-<li class="tsd-kind-function"><a href="../functions/ayaStringSplitter.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-function)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-64-path"></rect><path d="M9.39 16V7.24H14.55V8.224H10.446V11.128H14.238V12.112H10.47V16H9.39Z" fill="var(--color-text)" id="icon-64-text"></path></svg>aya<wbr/>String<wbr/>Splitter</a></li>
-<li class="tsd-kind-function"><a href="../functions/findAyaidBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Ayaid<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzAndShift.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>And<wbr/>Shift</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzHizb.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzHizbByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzMetaBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Meta<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="../functions/findPage.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Page</a></li>
-<li class="tsd-kind-function"><a href="../functions/findRangeAroundAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Range<wbr/>Around<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="../functions/findSurahByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Surah<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="../functions/getAyaCountinSura.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Aya<wbr/>Countin<wbr/>Sura</a></li>
-<li class="tsd-kind-function"><a href="../functions/getSurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="../functions/isAyahJuzFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Juz<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="../functions/isAyahPageFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Page<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="../functions/nextAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>next<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="../functions/pageMeta-1.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>page<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="../functions/prevAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>prev<wbr/>Ayah</a></li></ul></nav></div></div>
-<div class="container tsd-generator">
-<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></div>
-<div class="overlay"></div><script src="../assets/main.js"></script></body></html>
\ No newline at end of file
+<!DOCTYPE html><html class="default" lang="en"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>SurahAyah | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../modules.html">quran-meta</a></li><li><a href="SurahAyah.html">SurahAyah</a></li></ul><h1>Type Alias SurahAyah</h1></div><div class="tsd-signature"><span class="tsd-kind-type-alias">Surah<wbr/>Ayah</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">[</span><a href="Surah.html" class="tsd-signature-type tsd-kind-type-alias">Surah</a><span class="tsd-signature-symbol">, </span><a href="AyahNo.html" class="tsd-signature-type tsd-kind-type-alias">AyahNo</a><span class="tsd-signature-symbol">]</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/7ff9baaee85a66d9099133c3db867ac28679aa62/src/types.ts#L12">types.ts:12</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>quran-meta</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
diff --git a/docs/types/SurahAyahSegment.html b/docs/types/SurahAyahSegment.html
new file mode 100644
index 0000000..bdd7ceb
--- /dev/null
+++ b/docs/types/SurahAyahSegment.html
@@ -0,0 +1 @@
+<!DOCTYPE html><html class="default" lang="en"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>SurahAyahSegment | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../modules.html">quran-meta</a></li><li><a href="SurahAyahSegment.html">SurahAyahSegment</a></li></ul><h1>Type Alias SurahAyahSegment</h1></div><div class="tsd-signature"><span class="tsd-kind-type-alias">Surah<wbr/>Ayah<wbr/>Segment</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">[</span><a href="Surah.html" class="tsd-signature-type tsd-kind-type-alias">Surah</a><span class="tsd-signature-symbol">, </span><a href="AyahNo.html" class="tsd-signature-type tsd-kind-type-alias">AyahNo</a><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-symbol">[</span><a href="AyahNo.html" class="tsd-signature-type tsd-kind-type-alias">AyahNo</a><span class="tsd-signature-symbol">, </span><a href="AyahNo.html" class="tsd-signature-type tsd-kind-type-alias">AyahNo</a><span class="tsd-signature-symbol">]</span><span class="tsd-signature-symbol">]</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/7ff9baaee85a66d9099133c3db867ac28679aa62/src/types.ts#L13">types.ts:13</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>quran-meta</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
diff --git a/docs/types/SurahMeta.html b/docs/types/SurahMeta.html
index 5f473df..4196e30 100644
--- a/docs/types/SurahMeta.html
+++ b/docs/types/SurahMeta.html
@@ -1,84 +1 @@
-<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>SurahMeta | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script async src="../assets/search.js" id="search-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os"</script><header class="tsd-page-toolbar">
-<div class="tsd-toolbar-contents container">
-<div class="table-cell" id="tsd-search" data-base="..">
-<div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M15.7824 13.833L12.6666 10.7177C12.5259 10.5771 12.3353 10.499 12.1353 10.499H11.6259C12.4884 9.39596 13.001 8.00859 13.001 6.49937C13.001 2.90909 10.0914 0 6.50048 0C2.90959 0 0 2.90909 0 6.49937C0 10.0896 2.90959 12.9987 6.50048 12.9987C8.00996 12.9987 9.39756 12.4863 10.5008 11.6239V12.1332C10.5008 12.3332 10.5789 12.5238 10.7195 12.6644L13.8354 15.7797C14.1292 16.0734 14.6042 16.0734 14.8948 15.7797L15.7793 14.8954C16.0731 14.6017 16.0731 14.1267 15.7824 13.833ZM6.50048 10.499C4.29094 10.499 2.50018 8.71165 2.50018 6.49937C2.50018 4.29021 4.28781 2.49976 6.50048 2.49976C8.71001 2.49976 10.5008 4.28708 10.5008 6.49937C10.5008 8.70852 8.71314 10.499 6.50048 10.499Z" fill="var(--color-text)"></path></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div>
-<div class="field">
-<div id="tsd-toolbar-links"></div></div>
-<ul class="results">
-<li class="state loading">Preparing search index...</li>
-<li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div>
-<div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><rect x="1" y="3" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="7" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="11" width="14" height="2" fill="var(--color-text)"></rect></svg></a></div></div></header>
-<div class="container container-main">
-<div class="col-8 col-content">
-<div class="tsd-page-title">
-<ul class="tsd-breadcrumb">
-<li><a href="../modules.html">quran-meta</a></li>
-<li><a href="SurahMeta.html">SurahMeta</a></li></ul>
-<h1>Type alias SurahMeta</h1></div>
-<div class="tsd-signature">Surah<wbr/>Meta<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">[</span>startAyahId<span class="tsd-signature-symbol">: </span><a href="AyahId.html" class="tsd-signature-type" data-tsd-kind="Type alias">AyahId</a><span class="tsd-signature-symbol">, </span>ayahCount<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">, </span>surahOrder<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">, </span>rukuCount<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">, </span>name<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">, </span>isMeccan<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">, </span>page<span class="tsd-signature-symbol">: </span><a href="Page.html" class="tsd-signature-type" data-tsd-kind="Type alias">Page</a><span class="tsd-signature-symbol">]</span></div><aside class="tsd-sources">
-<ul>
-<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/a8fc894/src/types.ts#L31">types.ts:31</a></li></ul></aside></div>
-<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
-<div class="tsd-navigation settings">
-<details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Settings</h3></summary>
-<div class="tsd-accordion-details">
-<div class="tsd-filter-visibility">
-<h4 class="uppercase">Member Visibility</h4><form>
-<ul id="tsd-filter-options">
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div>
-<div class="tsd-theme-toggle">
-<h4 class="uppercase">Theme</h4><select id="theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div>
-<nav class="tsd-navigation primary">
-<details class="tsd-index-accordion" open><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Modules</h3></summary>
-<div class="tsd-accordion-details">
-<ul>
-<li><a href="../modules.html">quran-<wbr/>meta</a>
-<ul></ul></li></ul></div></details></nav>
-<nav class="tsd-navigation secondary menu-sticky">
-<ul>
-<li class="tsd-kind-type-alias"><a href="AyahId.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-4194304-path"></rect><path d="M11.31 16V8.224H8.91V7.24H14.79V8.224H12.39V16H11.31Z" fill="var(--color-text)" id="icon-4194304-text"></path></svg>Ayah<wbr/>Id</a></li>
-<li class="tsd-kind-type-alias"><a href="AyahNo.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Ayah<wbr/>No</a></li>
-<li class="tsd-kind-type-alias"><a href="Juz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz</a></li>
-<li class="tsd-kind-type-alias"><a href="JuzMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="Page.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page</a></li>
-<li class="tsd-kind-type-alias"><a href="PageMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="Sajda.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Sajda</a></li>
-<li class="tsd-kind-type-alias"><a href="Surah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah</a></li>
-<li class="tsd-kind-type-alias"><a href="SurahAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Ayah</a></li>
-<li class="current tsd-kind-type-alias"><a href="SurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-variable"><a href="../variables/HizbQuarterList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-variable)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-32-path"></rect><path d="M11.106 16L8.85 7.24H9.966L11.454 13.192C11.558 13.608 11.646 13.996 11.718 14.356C11.79 14.708 11.842 14.976 11.874 15.16C11.906 14.976 11.954 14.708 12.018 14.356C12.09 13.996 12.178 13.608 12.282 13.192L13.758 7.24H14.85L12.582 16H11.106Z" fill="var(--color-text)" id="icon-32-text"></path></svg>Hizb<wbr/>Quarter<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/JuzList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Juz<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/ManzilList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Manzil<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/PageList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Page<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/RukuList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Ruku<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/SajdaList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sajda<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/SuraList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sura<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/meta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>meta</a></li>
-<li class="tsd-kind-variable"><a href="../variables/suraNamesEn.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>En</a></li>
-<li class="tsd-kind-variable"><a href="../variables/suraNamesRu.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>Ru</a></li>
-<li class="tsd-kind-function"><a href="../functions/ayaStringSplitter.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-function)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-64-path"></rect><path d="M9.39 16V7.24H14.55V8.224H10.446V11.128H14.238V12.112H10.47V16H9.39Z" fill="var(--color-text)" id="icon-64-text"></path></svg>aya<wbr/>String<wbr/>Splitter</a></li>
-<li class="tsd-kind-function"><a href="../functions/findAyaidBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Ayaid<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzAndShift.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>And<wbr/>Shift</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzHizb.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzHizbByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzMetaBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Meta<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="../functions/findPage.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Page</a></li>
-<li class="tsd-kind-function"><a href="../functions/findRangeAroundAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Range<wbr/>Around<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="../functions/findSurahByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Surah<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="../functions/getAyaCountinSura.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Aya<wbr/>Countin<wbr/>Sura</a></li>
-<li class="tsd-kind-function"><a href="../functions/getSurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="../functions/isAyahJuzFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Juz<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="../functions/isAyahPageFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Page<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="../functions/nextAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>next<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="../functions/pageMeta-1.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>page<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="../functions/prevAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>prev<wbr/>Ayah</a></li></ul></nav></div></div>
-<div class="container tsd-generator">
-<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></div>
-<div class="overlay"></div><script src="../assets/main.js"></script></body></html>
\ No newline at end of file
+<!DOCTYPE html><html class="default" lang="en"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>SurahMeta | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../modules.html">quran-meta</a></li><li><a href="SurahMeta.html">SurahMeta</a></li></ul><h1>Type Alias SurahMeta</h1></div><div class="tsd-signature"><span class="tsd-kind-type-alias">Surah<wbr/>Meta</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">[</span>startAyahId<span class="tsd-signature-symbol">: </span><a href="AyahId.html" class="tsd-signature-type tsd-kind-type-alias">AyahId</a><span class="tsd-signature-symbol">, </span>ayahCount<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">, </span>surahOrder<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">, </span>rukuCount<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">, </span>name<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">, </span>isMeccan<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">, </span>page<span class="tsd-signature-symbol">: </span><a href="Page.html" class="tsd-signature-type tsd-kind-type-alias">Page</a><span class="tsd-signature-symbol">]</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/7ff9baaee85a66d9099133c3db867ac28679aa62/src/types.ts#L31">types.ts:31</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>quran-meta</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
diff --git a/docs/variables/HizbQuarterList.html b/docs/variables/HizbQuarterList.html
index 045b6e6..45f94e7 100644
--- a/docs/variables/HizbQuarterList.html
+++ b/docs/variables/HizbQuarterList.html
@@ -1,84 +1 @@
-<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>HizbQuarterList | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script async src="../assets/search.js" id="search-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os"</script><header class="tsd-page-toolbar">
-<div class="tsd-toolbar-contents container">
-<div class="table-cell" id="tsd-search" data-base="..">
-<div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M15.7824 13.833L12.6666 10.7177C12.5259 10.5771 12.3353 10.499 12.1353 10.499H11.6259C12.4884 9.39596 13.001 8.00859 13.001 6.49937C13.001 2.90909 10.0914 0 6.50048 0C2.90959 0 0 2.90909 0 6.49937C0 10.0896 2.90959 12.9987 6.50048 12.9987C8.00996 12.9987 9.39756 12.4863 10.5008 11.6239V12.1332C10.5008 12.3332 10.5789 12.5238 10.7195 12.6644L13.8354 15.7797C14.1292 16.0734 14.6042 16.0734 14.8948 15.7797L15.7793 14.8954C16.0731 14.6017 16.0731 14.1267 15.7824 13.833ZM6.50048 10.499C4.29094 10.499 2.50018 8.71165 2.50018 6.49937C2.50018 4.29021 4.28781 2.49976 6.50048 2.49976C8.71001 2.49976 10.5008 4.28708 10.5008 6.49937C10.5008 8.70852 8.71314 10.499 6.50048 10.499Z" fill="var(--color-text)"></path></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div>
-<div class="field">
-<div id="tsd-toolbar-links"></div></div>
-<ul class="results">
-<li class="state loading">Preparing search index...</li>
-<li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div>
-<div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><rect x="1" y="3" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="7" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="11" width="14" height="2" fill="var(--color-text)"></rect></svg></a></div></div></header>
-<div class="container container-main">
-<div class="col-8 col-content">
-<div class="tsd-page-title">
-<ul class="tsd-breadcrumb">
-<li><a href="../modules.html">quran-meta</a></li>
-<li><a href="HizbQuarterList.html">HizbQuarterList</a></li></ul>
-<h1>Variable HizbQuarterList<code class="tsd-tag ts-flagConst">Const</code> </h1></div>
-<div class="tsd-signature">Hizb<wbr/>Quarter<wbr/>List<span class="tsd-signature-symbol">:</span> <a href="../types/AyahId.html" class="tsd-signature-type" data-tsd-kind="Type alias">AyahId</a><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol"> = ...</span></div><aside class="tsd-sources">
-<ul>
-<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/a8fc894/src/hizbList.ts#L3">hizbList.ts:3</a></li></ul></aside></div>
-<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
-<div class="tsd-navigation settings">
-<details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Settings</h3></summary>
-<div class="tsd-accordion-details">
-<div class="tsd-filter-visibility">
-<h4 class="uppercase">Member Visibility</h4><form>
-<ul id="tsd-filter-options">
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div>
-<div class="tsd-theme-toggle">
-<h4 class="uppercase">Theme</h4><select id="theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div>
-<nav class="tsd-navigation primary">
-<details class="tsd-index-accordion" open><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Modules</h3></summary>
-<div class="tsd-accordion-details">
-<ul>
-<li><a href="../modules.html">quran-<wbr/>meta</a>
-<ul></ul></li></ul></div></details></nav>
-<nav class="tsd-navigation secondary menu-sticky">
-<ul>
-<li class="tsd-kind-type-alias"><a href="../types/AyahId.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-4194304-path"></rect><path d="M11.31 16V8.224H8.91V7.24H14.79V8.224H12.39V16H11.31Z" fill="var(--color-text)" id="icon-4194304-text"></path></svg>Ayah<wbr/>Id</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/AyahNo.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Ayah<wbr/>No</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Juz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/JuzMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Page.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/PageMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Sajda.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Sajda</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Surah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/SurahAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Ayah</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/SurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Meta</a></li>
-<li class="current tsd-kind-variable"><a href="HizbQuarterList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-variable)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-32-path"></rect><path d="M11.106 16L8.85 7.24H9.966L11.454 13.192C11.558 13.608 11.646 13.996 11.718 14.356C11.79 14.708 11.842 14.976 11.874 15.16C11.906 14.976 11.954 14.708 12.018 14.356C12.09 13.996 12.178 13.608 12.282 13.192L13.758 7.24H14.85L12.582 16H11.106Z" fill="var(--color-text)" id="icon-32-text"></path></svg>Hizb<wbr/>Quarter<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="JuzList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Juz<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="ManzilList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Manzil<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="PageList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Page<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="RukuList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Ruku<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="SajdaList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sajda<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="SuraList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sura<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="meta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>meta</a></li>
-<li class="tsd-kind-variable"><a href="suraNamesEn.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>En</a></li>
-<li class="tsd-kind-variable"><a href="suraNamesRu.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>Ru</a></li>
-<li class="tsd-kind-function"><a href="../functions/ayaStringSplitter.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-function)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-64-path"></rect><path d="M9.39 16V7.24H14.55V8.224H10.446V11.128H14.238V12.112H10.47V16H9.39Z" fill="var(--color-text)" id="icon-64-text"></path></svg>aya<wbr/>String<wbr/>Splitter</a></li>
-<li class="tsd-kind-function"><a href="../functions/findAyaidBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Ayaid<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzAndShift.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>And<wbr/>Shift</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzHizb.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzHizbByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzMetaBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Meta<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="../functions/findPage.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Page</a></li>
-<li class="tsd-kind-function"><a href="../functions/findRangeAroundAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Range<wbr/>Around<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="../functions/findSurahByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Surah<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="../functions/getAyaCountinSura.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Aya<wbr/>Countin<wbr/>Sura</a></li>
-<li class="tsd-kind-function"><a href="../functions/getSurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="../functions/isAyahJuzFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Juz<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="../functions/isAyahPageFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Page<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="../functions/nextAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>next<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="../functions/pageMeta-1.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>page<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="../functions/prevAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>prev<wbr/>Ayah</a></li></ul></nav></div></div>
-<div class="container tsd-generator">
-<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></div>
-<div class="overlay"></div><script src="../assets/main.js"></script></body></html>
\ No newline at end of file
+<!DOCTYPE html><html class="default" lang="en"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>HizbQuarterList | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../modules.html">quran-meta</a></li><li><a href="HizbQuarterList.html">HizbQuarterList</a></li></ul><h1>Variable HizbQuarterList<code class="tsd-tag">Const</code></h1></div><div class="tsd-signature"><span class="tsd-kind-variable">Hizb<wbr/>Quarter<wbr/>List</span><span class="tsd-signature-symbol">:</span> <a href="../types/AyahId.html" class="tsd-signature-type tsd-kind-type-alias">AyahId</a><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol"> = ...</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/7ff9baaee85a66d9099133c3db867ac28679aa62/src/lists/hizbList.ts#L4">lists/hizbList.ts:4</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>quran-meta</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
diff --git a/docs/variables/JuzList.html b/docs/variables/JuzList.html
index 8be11a9..ebf488d 100644
--- a/docs/variables/JuzList.html
+++ b/docs/variables/JuzList.html
@@ -1,84 +1 @@
-<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>JuzList | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script async src="../assets/search.js" id="search-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os"</script><header class="tsd-page-toolbar">
-<div class="tsd-toolbar-contents container">
-<div class="table-cell" id="tsd-search" data-base="..">
-<div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M15.7824 13.833L12.6666 10.7177C12.5259 10.5771 12.3353 10.499 12.1353 10.499H11.6259C12.4884 9.39596 13.001 8.00859 13.001 6.49937C13.001 2.90909 10.0914 0 6.50048 0C2.90959 0 0 2.90909 0 6.49937C0 10.0896 2.90959 12.9987 6.50048 12.9987C8.00996 12.9987 9.39756 12.4863 10.5008 11.6239V12.1332C10.5008 12.3332 10.5789 12.5238 10.7195 12.6644L13.8354 15.7797C14.1292 16.0734 14.6042 16.0734 14.8948 15.7797L15.7793 14.8954C16.0731 14.6017 16.0731 14.1267 15.7824 13.833ZM6.50048 10.499C4.29094 10.499 2.50018 8.71165 2.50018 6.49937C2.50018 4.29021 4.28781 2.49976 6.50048 2.49976C8.71001 2.49976 10.5008 4.28708 10.5008 6.49937C10.5008 8.70852 8.71314 10.499 6.50048 10.499Z" fill="var(--color-text)"></path></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div>
-<div class="field">
-<div id="tsd-toolbar-links"></div></div>
-<ul class="results">
-<li class="state loading">Preparing search index...</li>
-<li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div>
-<div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><rect x="1" y="3" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="7" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="11" width="14" height="2" fill="var(--color-text)"></rect></svg></a></div></div></header>
-<div class="container container-main">
-<div class="col-8 col-content">
-<div class="tsd-page-title">
-<ul class="tsd-breadcrumb">
-<li><a href="../modules.html">quran-meta</a></li>
-<li><a href="JuzList.html">JuzList</a></li></ul>
-<h1>Variable JuzList<code class="tsd-tag ts-flagConst">Const</code> </h1></div>
-<div class="tsd-signature">Juz<wbr/>List<span class="tsd-signature-symbol">:</span> <a href="../types/AyahId.html" class="tsd-signature-type" data-tsd-kind="Type alias">AyahId</a><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol"> = ...</span></div><aside class="tsd-sources">
-<ul>
-<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/a8fc894/src/index.ts#L38">index.ts:38</a></li></ul></aside></div>
-<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
-<div class="tsd-navigation settings">
-<details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Settings</h3></summary>
-<div class="tsd-accordion-details">
-<div class="tsd-filter-visibility">
-<h4 class="uppercase">Member Visibility</h4><form>
-<ul id="tsd-filter-options">
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div>
-<div class="tsd-theme-toggle">
-<h4 class="uppercase">Theme</h4><select id="theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div>
-<nav class="tsd-navigation primary">
-<details class="tsd-index-accordion" open><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Modules</h3></summary>
-<div class="tsd-accordion-details">
-<ul>
-<li><a href="../modules.html">quran-<wbr/>meta</a>
-<ul></ul></li></ul></div></details></nav>
-<nav class="tsd-navigation secondary menu-sticky">
-<ul>
-<li class="tsd-kind-type-alias"><a href="../types/AyahId.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-4194304-path"></rect><path d="M11.31 16V8.224H8.91V7.24H14.79V8.224H12.39V16H11.31Z" fill="var(--color-text)" id="icon-4194304-text"></path></svg>Ayah<wbr/>Id</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/AyahNo.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Ayah<wbr/>No</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Juz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/JuzMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Page.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/PageMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Sajda.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Sajda</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Surah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/SurahAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Ayah</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/SurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-variable"><a href="HizbQuarterList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-variable)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-32-path"></rect><path d="M11.106 16L8.85 7.24H9.966L11.454 13.192C11.558 13.608 11.646 13.996 11.718 14.356C11.79 14.708 11.842 14.976 11.874 15.16C11.906 14.976 11.954 14.708 12.018 14.356C12.09 13.996 12.178 13.608 12.282 13.192L13.758 7.24H14.85L12.582 16H11.106Z" fill="var(--color-text)" id="icon-32-text"></path></svg>Hizb<wbr/>Quarter<wbr/>List</a></li>
-<li class="current tsd-kind-variable"><a href="JuzList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Juz<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="ManzilList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Manzil<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="PageList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Page<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="RukuList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Ruku<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="SajdaList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sajda<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="SuraList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sura<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="meta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>meta</a></li>
-<li class="tsd-kind-variable"><a href="suraNamesEn.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>En</a></li>
-<li class="tsd-kind-variable"><a href="suraNamesRu.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>Ru</a></li>
-<li class="tsd-kind-function"><a href="../functions/ayaStringSplitter.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-function)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-64-path"></rect><path d="M9.39 16V7.24H14.55V8.224H10.446V11.128H14.238V12.112H10.47V16H9.39Z" fill="var(--color-text)" id="icon-64-text"></path></svg>aya<wbr/>String<wbr/>Splitter</a></li>
-<li class="tsd-kind-function"><a href="../functions/findAyaidBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Ayaid<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzAndShift.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>And<wbr/>Shift</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzHizb.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzHizbByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzMetaBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Meta<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="../functions/findPage.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Page</a></li>
-<li class="tsd-kind-function"><a href="../functions/findRangeAroundAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Range<wbr/>Around<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="../functions/findSurahByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Surah<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="../functions/getAyaCountinSura.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Aya<wbr/>Countin<wbr/>Sura</a></li>
-<li class="tsd-kind-function"><a href="../functions/getSurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="../functions/isAyahJuzFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Juz<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="../functions/isAyahPageFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Page<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="../functions/nextAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>next<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="../functions/pageMeta-1.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>page<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="../functions/prevAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>prev<wbr/>Ayah</a></li></ul></nav></div></div>
-<div class="container tsd-generator">
-<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></div>
-<div class="overlay"></div><script src="../assets/main.js"></script></body></html>
\ No newline at end of file
+<!DOCTYPE html><html class="default" lang="en"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>JuzList | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../modules.html">quran-meta</a></li><li><a href="JuzList.html">JuzList</a></li></ul><h1>Variable JuzList<code class="tsd-tag">Const</code></h1></div><div class="tsd-signature"><span class="tsd-kind-variable">Juz<wbr/>List</span><span class="tsd-signature-symbol">:</span> <a href="../types/AyahId.html" class="tsd-signature-type tsd-kind-type-alias">AyahId</a><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol"> = ...</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/7ff9baaee85a66d9099133c3db867ac28679aa62/src/lists/juzList.ts#L4">lists/juzList.ts:4</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>quran-meta</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
diff --git a/docs/variables/ManzilList.html b/docs/variables/ManzilList.html
index 5a0bf8b..dd594fc 100644
--- a/docs/variables/ManzilList.html
+++ b/docs/variables/ManzilList.html
@@ -1,84 +1 @@
-<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>ManzilList | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script async src="../assets/search.js" id="search-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os"</script><header class="tsd-page-toolbar">
-<div class="tsd-toolbar-contents container">
-<div class="table-cell" id="tsd-search" data-base="..">
-<div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M15.7824 13.833L12.6666 10.7177C12.5259 10.5771 12.3353 10.499 12.1353 10.499H11.6259C12.4884 9.39596 13.001 8.00859 13.001 6.49937C13.001 2.90909 10.0914 0 6.50048 0C2.90959 0 0 2.90909 0 6.49937C0 10.0896 2.90959 12.9987 6.50048 12.9987C8.00996 12.9987 9.39756 12.4863 10.5008 11.6239V12.1332C10.5008 12.3332 10.5789 12.5238 10.7195 12.6644L13.8354 15.7797C14.1292 16.0734 14.6042 16.0734 14.8948 15.7797L15.7793 14.8954C16.0731 14.6017 16.0731 14.1267 15.7824 13.833ZM6.50048 10.499C4.29094 10.499 2.50018 8.71165 2.50018 6.49937C2.50018 4.29021 4.28781 2.49976 6.50048 2.49976C8.71001 2.49976 10.5008 4.28708 10.5008 6.49937C10.5008 8.70852 8.71314 10.499 6.50048 10.499Z" fill="var(--color-text)"></path></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div>
-<div class="field">
-<div id="tsd-toolbar-links"></div></div>
-<ul class="results">
-<li class="state loading">Preparing search index...</li>
-<li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div>
-<div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><rect x="1" y="3" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="7" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="11" width="14" height="2" fill="var(--color-text)"></rect></svg></a></div></div></header>
-<div class="container container-main">
-<div class="col-8 col-content">
-<div class="tsd-page-title">
-<ul class="tsd-breadcrumb">
-<li><a href="../modules.html">quran-meta</a></li>
-<li><a href="ManzilList.html">ManzilList</a></li></ul>
-<h1>Variable ManzilList<code class="tsd-tag ts-flagConst">Const</code> </h1></div>
-<div class="tsd-signature">Manzil<wbr/>List<span class="tsd-signature-symbol">:</span> <a href="../types/AyahId.html" class="tsd-signature-type" data-tsd-kind="Type alias">AyahId</a><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol"> = ...</span></div><aside class="tsd-sources">
-<ul>
-<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/a8fc894/src/index.ts#L49">index.ts:49</a></li></ul></aside></div>
-<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
-<div class="tsd-navigation settings">
-<details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Settings</h3></summary>
-<div class="tsd-accordion-details">
-<div class="tsd-filter-visibility">
-<h4 class="uppercase">Member Visibility</h4><form>
-<ul id="tsd-filter-options">
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div>
-<div class="tsd-theme-toggle">
-<h4 class="uppercase">Theme</h4><select id="theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div>
-<nav class="tsd-navigation primary">
-<details class="tsd-index-accordion" open><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Modules</h3></summary>
-<div class="tsd-accordion-details">
-<ul>
-<li><a href="../modules.html">quran-<wbr/>meta</a>
-<ul></ul></li></ul></div></details></nav>
-<nav class="tsd-navigation secondary menu-sticky">
-<ul>
-<li class="tsd-kind-type-alias"><a href="../types/AyahId.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-4194304-path"></rect><path d="M11.31 16V8.224H8.91V7.24H14.79V8.224H12.39V16H11.31Z" fill="var(--color-text)" id="icon-4194304-text"></path></svg>Ayah<wbr/>Id</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/AyahNo.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Ayah<wbr/>No</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Juz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/JuzMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Page.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/PageMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Sajda.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Sajda</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Surah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/SurahAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Ayah</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/SurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-variable"><a href="HizbQuarterList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-variable)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-32-path"></rect><path d="M11.106 16L8.85 7.24H9.966L11.454 13.192C11.558 13.608 11.646 13.996 11.718 14.356C11.79 14.708 11.842 14.976 11.874 15.16C11.906 14.976 11.954 14.708 12.018 14.356C12.09 13.996 12.178 13.608 12.282 13.192L13.758 7.24H14.85L12.582 16H11.106Z" fill="var(--color-text)" id="icon-32-text"></path></svg>Hizb<wbr/>Quarter<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="JuzList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Juz<wbr/>List</a></li>
-<li class="current tsd-kind-variable"><a href="ManzilList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Manzil<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="PageList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Page<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="RukuList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Ruku<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="SajdaList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sajda<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="SuraList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sura<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="meta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>meta</a></li>
-<li class="tsd-kind-variable"><a href="suraNamesEn.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>En</a></li>
-<li class="tsd-kind-variable"><a href="suraNamesRu.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>Ru</a></li>
-<li class="tsd-kind-function"><a href="../functions/ayaStringSplitter.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-function)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-64-path"></rect><path d="M9.39 16V7.24H14.55V8.224H10.446V11.128H14.238V12.112H10.47V16H9.39Z" fill="var(--color-text)" id="icon-64-text"></path></svg>aya<wbr/>String<wbr/>Splitter</a></li>
-<li class="tsd-kind-function"><a href="../functions/findAyaidBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Ayaid<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzAndShift.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>And<wbr/>Shift</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzHizb.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzHizbByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzMetaBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Meta<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="../functions/findPage.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Page</a></li>
-<li class="tsd-kind-function"><a href="../functions/findRangeAroundAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Range<wbr/>Around<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="../functions/findSurahByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Surah<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="../functions/getAyaCountinSura.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Aya<wbr/>Countin<wbr/>Sura</a></li>
-<li class="tsd-kind-function"><a href="../functions/getSurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="../functions/isAyahJuzFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Juz<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="../functions/isAyahPageFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Page<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="../functions/nextAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>next<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="../functions/pageMeta-1.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>page<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="../functions/prevAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>prev<wbr/>Ayah</a></li></ul></nav></div></div>
-<div class="container tsd-generator">
-<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></div>
-<div class="overlay"></div><script src="../assets/main.js"></script></body></html>
\ No newline at end of file
+<!DOCTYPE html><html class="default" lang="en"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>ManzilList | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../modules.html">quran-meta</a></li><li><a href="ManzilList.html">ManzilList</a></li></ul><h1>Variable ManzilList<code class="tsd-tag">Const</code></h1></div><div class="tsd-signature"><span class="tsd-kind-variable">Manzil<wbr/>List</span><span class="tsd-signature-symbol">:</span> <a href="../types/AyahId.html" class="tsd-signature-type tsd-kind-type-alias">AyahId</a><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol"> = ...</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/7ff9baaee85a66d9099133c3db867ac28679aa62/src/lists/manzilList.ts#L4">lists/manzilList.ts:4</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>quran-meta</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
diff --git a/docs/variables/PageList.html b/docs/variables/PageList.html
index f71491e..da2d563 100644
--- a/docs/variables/PageList.html
+++ b/docs/variables/PageList.html
@@ -1,84 +1 @@
-<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>PageList | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script async src="../assets/search.js" id="search-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os"</script><header class="tsd-page-toolbar">
-<div class="tsd-toolbar-contents container">
-<div class="table-cell" id="tsd-search" data-base="..">
-<div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M15.7824 13.833L12.6666 10.7177C12.5259 10.5771 12.3353 10.499 12.1353 10.499H11.6259C12.4884 9.39596 13.001 8.00859 13.001 6.49937C13.001 2.90909 10.0914 0 6.50048 0C2.90959 0 0 2.90909 0 6.49937C0 10.0896 2.90959 12.9987 6.50048 12.9987C8.00996 12.9987 9.39756 12.4863 10.5008 11.6239V12.1332C10.5008 12.3332 10.5789 12.5238 10.7195 12.6644L13.8354 15.7797C14.1292 16.0734 14.6042 16.0734 14.8948 15.7797L15.7793 14.8954C16.0731 14.6017 16.0731 14.1267 15.7824 13.833ZM6.50048 10.499C4.29094 10.499 2.50018 8.71165 2.50018 6.49937C2.50018 4.29021 4.28781 2.49976 6.50048 2.49976C8.71001 2.49976 10.5008 4.28708 10.5008 6.49937C10.5008 8.70852 8.71314 10.499 6.50048 10.499Z" fill="var(--color-text)"></path></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div>
-<div class="field">
-<div id="tsd-toolbar-links"></div></div>
-<ul class="results">
-<li class="state loading">Preparing search index...</li>
-<li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div>
-<div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><rect x="1" y="3" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="7" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="11" width="14" height="2" fill="var(--color-text)"></rect></svg></a></div></div></header>
-<div class="container container-main">
-<div class="col-8 col-content">
-<div class="tsd-page-title">
-<ul class="tsd-breadcrumb">
-<li><a href="../modules.html">quran-meta</a></li>
-<li><a href="PageList.html">PageList</a></li></ul>
-<h1>Variable PageList<code class="tsd-tag ts-flagConst">Const</code> </h1></div>
-<div class="tsd-signature">Page<wbr/>List<span class="tsd-signature-symbol">:</span> <a href="../types/AyahId.html" class="tsd-signature-type" data-tsd-kind="Type alias">AyahId</a><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol"> = ...</span></div><aside class="tsd-sources">
-<ul>
-<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/a8fc894/src/pageList.ts#L3">pageList.ts:3</a></li></ul></aside></div>
-<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
-<div class="tsd-navigation settings">
-<details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Settings</h3></summary>
-<div class="tsd-accordion-details">
-<div class="tsd-filter-visibility">
-<h4 class="uppercase">Member Visibility</h4><form>
-<ul id="tsd-filter-options">
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div>
-<div class="tsd-theme-toggle">
-<h4 class="uppercase">Theme</h4><select id="theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div>
-<nav class="tsd-navigation primary">
-<details class="tsd-index-accordion" open><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Modules</h3></summary>
-<div class="tsd-accordion-details">
-<ul>
-<li><a href="../modules.html">quran-<wbr/>meta</a>
-<ul></ul></li></ul></div></details></nav>
-<nav class="tsd-navigation secondary menu-sticky">
-<ul>
-<li class="tsd-kind-type-alias"><a href="../types/AyahId.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-4194304-path"></rect><path d="M11.31 16V8.224H8.91V7.24H14.79V8.224H12.39V16H11.31Z" fill="var(--color-text)" id="icon-4194304-text"></path></svg>Ayah<wbr/>Id</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/AyahNo.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Ayah<wbr/>No</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Juz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/JuzMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Page.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/PageMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Sajda.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Sajda</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Surah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/SurahAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Ayah</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/SurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-variable"><a href="HizbQuarterList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-variable)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-32-path"></rect><path d="M11.106 16L8.85 7.24H9.966L11.454 13.192C11.558 13.608 11.646 13.996 11.718 14.356C11.79 14.708 11.842 14.976 11.874 15.16C11.906 14.976 11.954 14.708 12.018 14.356C12.09 13.996 12.178 13.608 12.282 13.192L13.758 7.24H14.85L12.582 16H11.106Z" fill="var(--color-text)" id="icon-32-text"></path></svg>Hizb<wbr/>Quarter<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="JuzList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Juz<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="ManzilList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Manzil<wbr/>List</a></li>
-<li class="current tsd-kind-variable"><a href="PageList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Page<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="RukuList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Ruku<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="SajdaList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sajda<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="SuraList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sura<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="meta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>meta</a></li>
-<li class="tsd-kind-variable"><a href="suraNamesEn.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>En</a></li>
-<li class="tsd-kind-variable"><a href="suraNamesRu.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>Ru</a></li>
-<li class="tsd-kind-function"><a href="../functions/ayaStringSplitter.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-function)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-64-path"></rect><path d="M9.39 16V7.24H14.55V8.224H10.446V11.128H14.238V12.112H10.47V16H9.39Z" fill="var(--color-text)" id="icon-64-text"></path></svg>aya<wbr/>String<wbr/>Splitter</a></li>
-<li class="tsd-kind-function"><a href="../functions/findAyaidBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Ayaid<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzAndShift.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>And<wbr/>Shift</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzHizb.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzHizbByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzMetaBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Meta<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="../functions/findPage.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Page</a></li>
-<li class="tsd-kind-function"><a href="../functions/findRangeAroundAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Range<wbr/>Around<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="../functions/findSurahByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Surah<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="../functions/getAyaCountinSura.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Aya<wbr/>Countin<wbr/>Sura</a></li>
-<li class="tsd-kind-function"><a href="../functions/getSurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="../functions/isAyahJuzFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Juz<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="../functions/isAyahPageFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Page<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="../functions/nextAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>next<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="../functions/pageMeta-1.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>page<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="../functions/prevAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>prev<wbr/>Ayah</a></li></ul></nav></div></div>
-<div class="container tsd-generator">
-<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></div>
-<div class="overlay"></div><script src="../assets/main.js"></script></body></html>
\ No newline at end of file
+<!DOCTYPE html><html class="default" lang="en"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>PageList | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../modules.html">quran-meta</a></li><li><a href="PageList.html">PageList</a></li></ul><h1>Variable PageList<code class="tsd-tag">Const</code></h1></div><div class="tsd-signature"><span class="tsd-kind-variable">Page<wbr/>List</span><span class="tsd-signature-symbol">:</span> <a href="../types/AyahId.html" class="tsd-signature-type tsd-kind-type-alias">AyahId</a><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol"> = ...</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/7ff9baaee85a66d9099133c3db867ac28679aa62/src/lists/pageList.ts#L3">lists/pageList.ts:3</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>quran-meta</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
diff --git a/docs/variables/RukuList.html b/docs/variables/RukuList.html
index 5f37b20..c30933c 100644
--- a/docs/variables/RukuList.html
+++ b/docs/variables/RukuList.html
@@ -1,84 +1 @@
-<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>RukuList | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script async src="../assets/search.js" id="search-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os"</script><header class="tsd-page-toolbar">
-<div class="tsd-toolbar-contents container">
-<div class="table-cell" id="tsd-search" data-base="..">
-<div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M15.7824 13.833L12.6666 10.7177C12.5259 10.5771 12.3353 10.499 12.1353 10.499H11.6259C12.4884 9.39596 13.001 8.00859 13.001 6.49937C13.001 2.90909 10.0914 0 6.50048 0C2.90959 0 0 2.90909 0 6.49937C0 10.0896 2.90959 12.9987 6.50048 12.9987C8.00996 12.9987 9.39756 12.4863 10.5008 11.6239V12.1332C10.5008 12.3332 10.5789 12.5238 10.7195 12.6644L13.8354 15.7797C14.1292 16.0734 14.6042 16.0734 14.8948 15.7797L15.7793 14.8954C16.0731 14.6017 16.0731 14.1267 15.7824 13.833ZM6.50048 10.499C4.29094 10.499 2.50018 8.71165 2.50018 6.49937C2.50018 4.29021 4.28781 2.49976 6.50048 2.49976C8.71001 2.49976 10.5008 4.28708 10.5008 6.49937C10.5008 8.70852 8.71314 10.499 6.50048 10.499Z" fill="var(--color-text)"></path></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div>
-<div class="field">
-<div id="tsd-toolbar-links"></div></div>
-<ul class="results">
-<li class="state loading">Preparing search index...</li>
-<li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div>
-<div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><rect x="1" y="3" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="7" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="11" width="14" height="2" fill="var(--color-text)"></rect></svg></a></div></div></header>
-<div class="container container-main">
-<div class="col-8 col-content">
-<div class="tsd-page-title">
-<ul class="tsd-breadcrumb">
-<li><a href="../modules.html">quran-meta</a></li>
-<li><a href="RukuList.html">RukuList</a></li></ul>
-<h1>Variable RukuList<code class="tsd-tag ts-flagConst">Const</code> </h1></div>
-<div class="tsd-signature">Ruku<wbr/>List<span class="tsd-signature-symbol">:</span> <a href="../types/AyahId.html" class="tsd-signature-type" data-tsd-kind="Type alias">AyahId</a><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol"> = ...</span></div><aside class="tsd-sources">
-<ul>
-<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/a8fc894/src/rukuList.ts#L3">rukuList.ts:3</a></li></ul></aside></div>
-<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
-<div class="tsd-navigation settings">
-<details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Settings</h3></summary>
-<div class="tsd-accordion-details">
-<div class="tsd-filter-visibility">
-<h4 class="uppercase">Member Visibility</h4><form>
-<ul id="tsd-filter-options">
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div>
-<div class="tsd-theme-toggle">
-<h4 class="uppercase">Theme</h4><select id="theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div>
-<nav class="tsd-navigation primary">
-<details class="tsd-index-accordion" open><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Modules</h3></summary>
-<div class="tsd-accordion-details">
-<ul>
-<li><a href="../modules.html">quran-<wbr/>meta</a>
-<ul></ul></li></ul></div></details></nav>
-<nav class="tsd-navigation secondary menu-sticky">
-<ul>
-<li class="tsd-kind-type-alias"><a href="../types/AyahId.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-4194304-path"></rect><path d="M11.31 16V8.224H8.91V7.24H14.79V8.224H12.39V16H11.31Z" fill="var(--color-text)" id="icon-4194304-text"></path></svg>Ayah<wbr/>Id</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/AyahNo.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Ayah<wbr/>No</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Juz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/JuzMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Page.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/PageMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Sajda.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Sajda</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Surah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/SurahAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Ayah</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/SurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-variable"><a href="HizbQuarterList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-variable)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-32-path"></rect><path d="M11.106 16L8.85 7.24H9.966L11.454 13.192C11.558 13.608 11.646 13.996 11.718 14.356C11.79 14.708 11.842 14.976 11.874 15.16C11.906 14.976 11.954 14.708 12.018 14.356C12.09 13.996 12.178 13.608 12.282 13.192L13.758 7.24H14.85L12.582 16H11.106Z" fill="var(--color-text)" id="icon-32-text"></path></svg>Hizb<wbr/>Quarter<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="JuzList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Juz<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="ManzilList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Manzil<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="PageList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Page<wbr/>List</a></li>
-<li class="current tsd-kind-variable"><a href="RukuList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Ruku<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="SajdaList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sajda<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="SuraList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sura<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="meta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>meta</a></li>
-<li class="tsd-kind-variable"><a href="suraNamesEn.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>En</a></li>
-<li class="tsd-kind-variable"><a href="suraNamesRu.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>Ru</a></li>
-<li class="tsd-kind-function"><a href="../functions/ayaStringSplitter.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-function)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-64-path"></rect><path d="M9.39 16V7.24H14.55V8.224H10.446V11.128H14.238V12.112H10.47V16H9.39Z" fill="var(--color-text)" id="icon-64-text"></path></svg>aya<wbr/>String<wbr/>Splitter</a></li>
-<li class="tsd-kind-function"><a href="../functions/findAyaidBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Ayaid<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzAndShift.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>And<wbr/>Shift</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzHizb.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzHizbByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzMetaBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Meta<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="../functions/findPage.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Page</a></li>
-<li class="tsd-kind-function"><a href="../functions/findRangeAroundAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Range<wbr/>Around<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="../functions/findSurahByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Surah<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="../functions/getAyaCountinSura.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Aya<wbr/>Countin<wbr/>Sura</a></li>
-<li class="tsd-kind-function"><a href="../functions/getSurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="../functions/isAyahJuzFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Juz<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="../functions/isAyahPageFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Page<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="../functions/nextAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>next<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="../functions/pageMeta-1.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>page<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="../functions/prevAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>prev<wbr/>Ayah</a></li></ul></nav></div></div>
-<div class="container tsd-generator">
-<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></div>
-<div class="overlay"></div><script src="../assets/main.js"></script></body></html>
\ No newline at end of file
+<!DOCTYPE html><html class="default" lang="en"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>RukuList | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../modules.html">quran-meta</a></li><li><a href="RukuList.html">RukuList</a></li></ul><h1>Variable RukuList<code class="tsd-tag">Const</code></h1></div><div class="tsd-signature"><span class="tsd-kind-variable">Ruku<wbr/>List</span><span class="tsd-signature-symbol">:</span> <a href="../types/AyahId.html" class="tsd-signature-type tsd-kind-type-alias">AyahId</a><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol"> = ...</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/7ff9baaee85a66d9099133c3db867ac28679aa62/src/lists/rukuList.ts#L4">lists/rukuList.ts:4</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>quran-meta</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
diff --git a/docs/variables/SajdaList.html b/docs/variables/SajdaList.html
index c9bbcf0..7ef65de 100644
--- a/docs/variables/SajdaList.html
+++ b/docs/variables/SajdaList.html
@@ -1,84 +1 @@
-<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>SajdaList | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script async src="../assets/search.js" id="search-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os"</script><header class="tsd-page-toolbar">
-<div class="tsd-toolbar-contents container">
-<div class="table-cell" id="tsd-search" data-base="..">
-<div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M15.7824 13.833L12.6666 10.7177C12.5259 10.5771 12.3353 10.499 12.1353 10.499H11.6259C12.4884 9.39596 13.001 8.00859 13.001 6.49937C13.001 2.90909 10.0914 0 6.50048 0C2.90959 0 0 2.90909 0 6.49937C0 10.0896 2.90959 12.9987 6.50048 12.9987C8.00996 12.9987 9.39756 12.4863 10.5008 11.6239V12.1332C10.5008 12.3332 10.5789 12.5238 10.7195 12.6644L13.8354 15.7797C14.1292 16.0734 14.6042 16.0734 14.8948 15.7797L15.7793 14.8954C16.0731 14.6017 16.0731 14.1267 15.7824 13.833ZM6.50048 10.499C4.29094 10.499 2.50018 8.71165 2.50018 6.49937C2.50018 4.29021 4.28781 2.49976 6.50048 2.49976C8.71001 2.49976 10.5008 4.28708 10.5008 6.49937C10.5008 8.70852 8.71314 10.499 6.50048 10.499Z" fill="var(--color-text)"></path></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div>
-<div class="field">
-<div id="tsd-toolbar-links"></div></div>
-<ul class="results">
-<li class="state loading">Preparing search index...</li>
-<li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div>
-<div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><rect x="1" y="3" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="7" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="11" width="14" height="2" fill="var(--color-text)"></rect></svg></a></div></div></header>
-<div class="container container-main">
-<div class="col-8 col-content">
-<div class="tsd-page-title">
-<ul class="tsd-breadcrumb">
-<li><a href="../modules.html">quran-meta</a></li>
-<li><a href="SajdaList.html">SajdaList</a></li></ul>
-<h1>Variable SajdaList<code class="tsd-tag ts-flagConst">Const</code> </h1></div>
-<div class="tsd-signature">Sajda<wbr/>List<span class="tsd-signature-symbol">:</span> <a href="../types/Sajda.html" class="tsd-signature-type" data-tsd-kind="Type alias">Sajda</a><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol"> = ...</span></div><aside class="tsd-sources">
-<ul>
-<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/a8fc894/src/index.ts#L69">index.ts:69</a></li></ul></aside></div>
-<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
-<div class="tsd-navigation settings">
-<details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Settings</h3></summary>
-<div class="tsd-accordion-details">
-<div class="tsd-filter-visibility">
-<h4 class="uppercase">Member Visibility</h4><form>
-<ul id="tsd-filter-options">
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div>
-<div class="tsd-theme-toggle">
-<h4 class="uppercase">Theme</h4><select id="theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div>
-<nav class="tsd-navigation primary">
-<details class="tsd-index-accordion" open><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Modules</h3></summary>
-<div class="tsd-accordion-details">
-<ul>
-<li><a href="../modules.html">quran-<wbr/>meta</a>
-<ul></ul></li></ul></div></details></nav>
-<nav class="tsd-navigation secondary menu-sticky">
-<ul>
-<li class="tsd-kind-type-alias"><a href="../types/AyahId.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-4194304-path"></rect><path d="M11.31 16V8.224H8.91V7.24H14.79V8.224H12.39V16H11.31Z" fill="var(--color-text)" id="icon-4194304-text"></path></svg>Ayah<wbr/>Id</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/AyahNo.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Ayah<wbr/>No</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Juz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/JuzMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Page.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/PageMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Sajda.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Sajda</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Surah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/SurahAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Ayah</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/SurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-variable"><a href="HizbQuarterList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-variable)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-32-path"></rect><path d="M11.106 16L8.85 7.24H9.966L11.454 13.192C11.558 13.608 11.646 13.996 11.718 14.356C11.79 14.708 11.842 14.976 11.874 15.16C11.906 14.976 11.954 14.708 12.018 14.356C12.09 13.996 12.178 13.608 12.282 13.192L13.758 7.24H14.85L12.582 16H11.106Z" fill="var(--color-text)" id="icon-32-text"></path></svg>Hizb<wbr/>Quarter<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="JuzList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Juz<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="ManzilList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Manzil<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="PageList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Page<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="RukuList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Ruku<wbr/>List</a></li>
-<li class="current tsd-kind-variable"><a href="SajdaList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sajda<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="SuraList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sura<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="meta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>meta</a></li>
-<li class="tsd-kind-variable"><a href="suraNamesEn.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>En</a></li>
-<li class="tsd-kind-variable"><a href="suraNamesRu.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>Ru</a></li>
-<li class="tsd-kind-function"><a href="../functions/ayaStringSplitter.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-function)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-64-path"></rect><path d="M9.39 16V7.24H14.55V8.224H10.446V11.128H14.238V12.112H10.47V16H9.39Z" fill="var(--color-text)" id="icon-64-text"></path></svg>aya<wbr/>String<wbr/>Splitter</a></li>
-<li class="tsd-kind-function"><a href="../functions/findAyaidBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Ayaid<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzAndShift.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>And<wbr/>Shift</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzHizb.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzHizbByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzMetaBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Meta<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="../functions/findPage.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Page</a></li>
-<li class="tsd-kind-function"><a href="../functions/findRangeAroundAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Range<wbr/>Around<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="../functions/findSurahByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Surah<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="../functions/getAyaCountinSura.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Aya<wbr/>Countin<wbr/>Sura</a></li>
-<li class="tsd-kind-function"><a href="../functions/getSurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="../functions/isAyahJuzFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Juz<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="../functions/isAyahPageFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Page<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="../functions/nextAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>next<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="../functions/pageMeta-1.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>page<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="../functions/prevAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>prev<wbr/>Ayah</a></li></ul></nav></div></div>
-<div class="container tsd-generator">
-<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></div>
-<div class="overlay"></div><script src="../assets/main.js"></script></body></html>
\ No newline at end of file
+<!DOCTYPE html><html class="default" lang="en"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>SajdaList | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../modules.html">quran-meta</a></li><li><a href="SajdaList.html">SajdaList</a></li></ul><h1>Variable SajdaList<code class="tsd-tag">Const</code></h1></div><div class="tsd-signature"><span class="tsd-kind-variable">Sajda<wbr/>List</span><span class="tsd-signature-symbol">:</span> <a href="../types/Sajda.html" class="tsd-signature-type tsd-kind-type-alias">Sajda</a><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol"> = ...</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/7ff9baaee85a66d9099133c3db867ac28679aa62/src/lists/sajdaList.ts#L13">lists/sajdaList.ts:13</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>quran-meta</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
diff --git a/docs/variables/SuraList.html b/docs/variables/SuraList.html
index 1c1fcdd..8c6f90b 100644
--- a/docs/variables/SuraList.html
+++ b/docs/variables/SuraList.html
@@ -1,84 +1 @@
-<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>SuraList | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script async src="../assets/search.js" id="search-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os"</script><header class="tsd-page-toolbar">
-<div class="tsd-toolbar-contents container">
-<div class="table-cell" id="tsd-search" data-base="..">
-<div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M15.7824 13.833L12.6666 10.7177C12.5259 10.5771 12.3353 10.499 12.1353 10.499H11.6259C12.4884 9.39596 13.001 8.00859 13.001 6.49937C13.001 2.90909 10.0914 0 6.50048 0C2.90959 0 0 2.90909 0 6.49937C0 10.0896 2.90959 12.9987 6.50048 12.9987C8.00996 12.9987 9.39756 12.4863 10.5008 11.6239V12.1332C10.5008 12.3332 10.5789 12.5238 10.7195 12.6644L13.8354 15.7797C14.1292 16.0734 14.6042 16.0734 14.8948 15.7797L15.7793 14.8954C16.0731 14.6017 16.0731 14.1267 15.7824 13.833ZM6.50048 10.499C4.29094 10.499 2.50018 8.71165 2.50018 6.49937C2.50018 4.29021 4.28781 2.49976 6.50048 2.49976C8.71001 2.49976 10.5008 4.28708 10.5008 6.49937C10.5008 8.70852 8.71314 10.499 6.50048 10.499Z" fill="var(--color-text)"></path></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div>
-<div class="field">
-<div id="tsd-toolbar-links"></div></div>
-<ul class="results">
-<li class="state loading">Preparing search index...</li>
-<li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div>
-<div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><rect x="1" y="3" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="7" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="11" width="14" height="2" fill="var(--color-text)"></rect></svg></a></div></div></header>
-<div class="container container-main">
-<div class="col-8 col-content">
-<div class="tsd-page-title">
-<ul class="tsd-breadcrumb">
-<li><a href="../modules.html">quran-meta</a></li>
-<li><a href="SuraList.html">SuraList</a></li></ul>
-<h1>Variable SuraList<code class="tsd-tag ts-flagConst">Const</code> </h1></div>
-<div class="tsd-signature">Sura<wbr/>List<span class="tsd-signature-symbol">:</span> <a href="../types/SurahMeta.html" class="tsd-signature-type" data-tsd-kind="Type alias">SurahMeta</a><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol"> = ...</span></div><aside class="tsd-sources">
-<ul>
-<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/a8fc894/src/surahList.ts#L3">surahList.ts:3</a></li></ul></aside></div>
-<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
-<div class="tsd-navigation settings">
-<details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Settings</h3></summary>
-<div class="tsd-accordion-details">
-<div class="tsd-filter-visibility">
-<h4 class="uppercase">Member Visibility</h4><form>
-<ul id="tsd-filter-options">
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div>
-<div class="tsd-theme-toggle">
-<h4 class="uppercase">Theme</h4><select id="theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div>
-<nav class="tsd-navigation primary">
-<details class="tsd-index-accordion" open><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Modules</h3></summary>
-<div class="tsd-accordion-details">
-<ul>
-<li><a href="../modules.html">quran-<wbr/>meta</a>
-<ul></ul></li></ul></div></details></nav>
-<nav class="tsd-navigation secondary menu-sticky">
-<ul>
-<li class="tsd-kind-type-alias"><a href="../types/AyahId.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-4194304-path"></rect><path d="M11.31 16V8.224H8.91V7.24H14.79V8.224H12.39V16H11.31Z" fill="var(--color-text)" id="icon-4194304-text"></path></svg>Ayah<wbr/>Id</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/AyahNo.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Ayah<wbr/>No</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Juz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/JuzMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Page.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/PageMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Sajda.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Sajda</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Surah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/SurahAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Ayah</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/SurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-variable"><a href="HizbQuarterList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-variable)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-32-path"></rect><path d="M11.106 16L8.85 7.24H9.966L11.454 13.192C11.558 13.608 11.646 13.996 11.718 14.356C11.79 14.708 11.842 14.976 11.874 15.16C11.906 14.976 11.954 14.708 12.018 14.356C12.09 13.996 12.178 13.608 12.282 13.192L13.758 7.24H14.85L12.582 16H11.106Z" fill="var(--color-text)" id="icon-32-text"></path></svg>Hizb<wbr/>Quarter<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="JuzList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Juz<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="ManzilList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Manzil<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="PageList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Page<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="RukuList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Ruku<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="SajdaList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sajda<wbr/>List</a></li>
-<li class="current tsd-kind-variable"><a href="SuraList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sura<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="meta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>meta</a></li>
-<li class="tsd-kind-variable"><a href="suraNamesEn.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>En</a></li>
-<li class="tsd-kind-variable"><a href="suraNamesRu.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>Ru</a></li>
-<li class="tsd-kind-function"><a href="../functions/ayaStringSplitter.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-function)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-64-path"></rect><path d="M9.39 16V7.24H14.55V8.224H10.446V11.128H14.238V12.112H10.47V16H9.39Z" fill="var(--color-text)" id="icon-64-text"></path></svg>aya<wbr/>String<wbr/>Splitter</a></li>
-<li class="tsd-kind-function"><a href="../functions/findAyaidBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Ayaid<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzAndShift.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>And<wbr/>Shift</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzHizb.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzHizbByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzMetaBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Meta<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="../functions/findPage.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Page</a></li>
-<li class="tsd-kind-function"><a href="../functions/findRangeAroundAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Range<wbr/>Around<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="../functions/findSurahByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Surah<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="../functions/getAyaCountinSura.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Aya<wbr/>Countin<wbr/>Sura</a></li>
-<li class="tsd-kind-function"><a href="../functions/getSurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="../functions/isAyahJuzFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Juz<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="../functions/isAyahPageFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Page<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="../functions/nextAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>next<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="../functions/pageMeta-1.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>page<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="../functions/prevAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>prev<wbr/>Ayah</a></li></ul></nav></div></div>
-<div class="container tsd-generator">
-<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></div>
-<div class="overlay"></div><script src="../assets/main.js"></script></body></html>
\ No newline at end of file
+<!DOCTYPE html><html class="default" lang="en"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>SuraList | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../modules.html">quran-meta</a></li><li><a href="SuraList.html">SuraList</a></li></ul><h1>Variable SuraList<code class="tsd-tag">Const</code></h1></div><div class="tsd-signature"><span class="tsd-kind-variable">Sura<wbr/>List</span><span class="tsd-signature-symbol">:</span> <a href="../types/SurahMeta.html" class="tsd-signature-type tsd-kind-type-alias">SurahMeta</a><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol"> = ...</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/7ff9baaee85a66d9099133c3db867ac28679aa62/src/lists/surahList.ts#L3">lists/surahList.ts:3</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>quran-meta</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
diff --git a/docs/variables/meta.html b/docs/variables/meta.html
index d3c0625..0677403 100644
--- a/docs/variables/meta.html
+++ b/docs/variables/meta.html
@@ -1,84 +1 @@
-<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>meta | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script async src="../assets/search.js" id="search-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os"</script><header class="tsd-page-toolbar">
-<div class="tsd-toolbar-contents container">
-<div class="table-cell" id="tsd-search" data-base="..">
-<div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M15.7824 13.833L12.6666 10.7177C12.5259 10.5771 12.3353 10.499 12.1353 10.499H11.6259C12.4884 9.39596 13.001 8.00859 13.001 6.49937C13.001 2.90909 10.0914 0 6.50048 0C2.90959 0 0 2.90909 0 6.49937C0 10.0896 2.90959 12.9987 6.50048 12.9987C8.00996 12.9987 9.39756 12.4863 10.5008 11.6239V12.1332C10.5008 12.3332 10.5789 12.5238 10.7195 12.6644L13.8354 15.7797C14.1292 16.0734 14.6042 16.0734 14.8948 15.7797L15.7793 14.8954C16.0731 14.6017 16.0731 14.1267 15.7824 13.833ZM6.50048 10.499C4.29094 10.499 2.50018 8.71165 2.50018 6.49937C2.50018 4.29021 4.28781 2.49976 6.50048 2.49976C8.71001 2.49976 10.5008 4.28708 10.5008 6.49937C10.5008 8.70852 8.71314 10.499 6.50048 10.499Z" fill="var(--color-text)"></path></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div>
-<div class="field">
-<div id="tsd-toolbar-links"></div></div>
-<ul class="results">
-<li class="state loading">Preparing search index...</li>
-<li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div>
-<div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><rect x="1" y="3" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="7" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="11" width="14" height="2" fill="var(--color-text)"></rect></svg></a></div></div></header>
-<div class="container container-main">
-<div class="col-8 col-content">
-<div class="tsd-page-title">
-<ul class="tsd-breadcrumb">
-<li><a href="../modules.html">quran-meta</a></li>
-<li><a href="meta.html">meta</a></li></ul>
-<h1>Variable meta<code class="tsd-tag ts-flagConst">Const</code> </h1></div>
-<div class="tsd-signature">meta<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">Readonly</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">QuranMeta</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol"> = ...</span></div><aside class="tsd-sources">
-<ul>
-<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/a8fc894/src/const.ts#L9">const.ts:9</a></li></ul></aside></div>
-<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
-<div class="tsd-navigation settings">
-<details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Settings</h3></summary>
-<div class="tsd-accordion-details">
-<div class="tsd-filter-visibility">
-<h4 class="uppercase">Member Visibility</h4><form>
-<ul id="tsd-filter-options">
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div>
-<div class="tsd-theme-toggle">
-<h4 class="uppercase">Theme</h4><select id="theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div>
-<nav class="tsd-navigation primary">
-<details class="tsd-index-accordion" open><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Modules</h3></summary>
-<div class="tsd-accordion-details">
-<ul>
-<li><a href="../modules.html">quran-<wbr/>meta</a>
-<ul></ul></li></ul></div></details></nav>
-<nav class="tsd-navigation secondary menu-sticky">
-<ul>
-<li class="tsd-kind-type-alias"><a href="../types/AyahId.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-4194304-path"></rect><path d="M11.31 16V8.224H8.91V7.24H14.79V8.224H12.39V16H11.31Z" fill="var(--color-text)" id="icon-4194304-text"></path></svg>Ayah<wbr/>Id</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/AyahNo.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Ayah<wbr/>No</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Juz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/JuzMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Page.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/PageMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Sajda.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Sajda</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Surah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/SurahAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Ayah</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/SurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-variable"><a href="HizbQuarterList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-variable)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-32-path"></rect><path d="M11.106 16L8.85 7.24H9.966L11.454 13.192C11.558 13.608 11.646 13.996 11.718 14.356C11.79 14.708 11.842 14.976 11.874 15.16C11.906 14.976 11.954 14.708 12.018 14.356C12.09 13.996 12.178 13.608 12.282 13.192L13.758 7.24H14.85L12.582 16H11.106Z" fill="var(--color-text)" id="icon-32-text"></path></svg>Hizb<wbr/>Quarter<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="JuzList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Juz<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="ManzilList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Manzil<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="PageList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Page<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="RukuList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Ruku<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="SajdaList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sajda<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="SuraList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sura<wbr/>List</a></li>
-<li class="current tsd-kind-variable"><a href="meta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>meta</a></li>
-<li class="tsd-kind-variable"><a href="suraNamesEn.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>En</a></li>
-<li class="tsd-kind-variable"><a href="suraNamesRu.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>Ru</a></li>
-<li class="tsd-kind-function"><a href="../functions/ayaStringSplitter.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-function)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-64-path"></rect><path d="M9.39 16V7.24H14.55V8.224H10.446V11.128H14.238V12.112H10.47V16H9.39Z" fill="var(--color-text)" id="icon-64-text"></path></svg>aya<wbr/>String<wbr/>Splitter</a></li>
-<li class="tsd-kind-function"><a href="../functions/findAyaidBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Ayaid<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzAndShift.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>And<wbr/>Shift</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzHizb.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzHizbByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzMetaBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Meta<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="../functions/findPage.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Page</a></li>
-<li class="tsd-kind-function"><a href="../functions/findRangeAroundAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Range<wbr/>Around<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="../functions/findSurahByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Surah<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="../functions/getAyaCountinSura.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Aya<wbr/>Countin<wbr/>Sura</a></li>
-<li class="tsd-kind-function"><a href="../functions/getSurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="../functions/isAyahJuzFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Juz<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="../functions/isAyahPageFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Page<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="../functions/nextAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>next<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="../functions/pageMeta-1.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>page<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="../functions/prevAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>prev<wbr/>Ayah</a></li></ul></nav></div></div>
-<div class="container tsd-generator">
-<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></div>
-<div class="overlay"></div><script src="../assets/main.js"></script></body></html>
\ No newline at end of file
+<!DOCTYPE html><html class="default" lang="en"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>meta | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../modules.html">quran-meta</a></li><li><a href="meta.html">meta</a></li></ul><h1>Variable meta<code class="tsd-tag">Const</code></h1></div><div class="tsd-signature"><span class="tsd-kind-variable">meta</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">Readonly</span><span class="tsd-signature-symbol">&lt;</span><a href="../types/QuranMeta.html" class="tsd-signature-type tsd-kind-type-alias">QuranMeta</a><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol"> = ...</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/7ff9baaee85a66d9099133c3db867ac28679aa62/src/const.ts#L9">const.ts:9</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>quran-meta</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
diff --git a/docs/variables/suraNamesEn.html b/docs/variables/suraNamesEn.html
index d3f1cc3..9596362 100644
--- a/docs/variables/suraNamesEn.html
+++ b/docs/variables/suraNamesEn.html
@@ -1,84 +1 @@
-<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>suraNamesEn | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script async src="../assets/search.js" id="search-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os"</script><header class="tsd-page-toolbar">
-<div class="tsd-toolbar-contents container">
-<div class="table-cell" id="tsd-search" data-base="..">
-<div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M15.7824 13.833L12.6666 10.7177C12.5259 10.5771 12.3353 10.499 12.1353 10.499H11.6259C12.4884 9.39596 13.001 8.00859 13.001 6.49937C13.001 2.90909 10.0914 0 6.50048 0C2.90959 0 0 2.90909 0 6.49937C0 10.0896 2.90959 12.9987 6.50048 12.9987C8.00996 12.9987 9.39756 12.4863 10.5008 11.6239V12.1332C10.5008 12.3332 10.5789 12.5238 10.7195 12.6644L13.8354 15.7797C14.1292 16.0734 14.6042 16.0734 14.8948 15.7797L15.7793 14.8954C16.0731 14.6017 16.0731 14.1267 15.7824 13.833ZM6.50048 10.499C4.29094 10.499 2.50018 8.71165 2.50018 6.49937C2.50018 4.29021 4.28781 2.49976 6.50048 2.49976C8.71001 2.49976 10.5008 4.28708 10.5008 6.49937C10.5008 8.70852 8.71314 10.499 6.50048 10.499Z" fill="var(--color-text)"></path></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div>
-<div class="field">
-<div id="tsd-toolbar-links"></div></div>
-<ul class="results">
-<li class="state loading">Preparing search index...</li>
-<li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div>
-<div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><rect x="1" y="3" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="7" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="11" width="14" height="2" fill="var(--color-text)"></rect></svg></a></div></div></header>
-<div class="container container-main">
-<div class="col-8 col-content">
-<div class="tsd-page-title">
-<ul class="tsd-breadcrumb">
-<li><a href="../modules.html">quran-meta</a></li>
-<li><a href="suraNamesEn.html">suraNamesEn</a></li></ul>
-<h1>Variable suraNamesEn<code class="tsd-tag ts-flagConst">Const</code> </h1></div>
-<div class="tsd-signature">sura<wbr/>Names<wbr/>En<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">(</span><span class="tsd-signature-type">SuraName</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-symbol">[</span><span class="tsd-signature-symbol">]</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol"> = ...</span></div><aside class="tsd-sources">
-<ul>
-<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/a8fc894/src/i18n/sura.en.ts#L2">i18n/sura.en.ts:2</a></li></ul></aside></div>
-<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
-<div class="tsd-navigation settings">
-<details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Settings</h3></summary>
-<div class="tsd-accordion-details">
-<div class="tsd-filter-visibility">
-<h4 class="uppercase">Member Visibility</h4><form>
-<ul id="tsd-filter-options">
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div>
-<div class="tsd-theme-toggle">
-<h4 class="uppercase">Theme</h4><select id="theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div>
-<nav class="tsd-navigation primary">
-<details class="tsd-index-accordion" open><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Modules</h3></summary>
-<div class="tsd-accordion-details">
-<ul>
-<li><a href="../modules.html">quran-<wbr/>meta</a>
-<ul></ul></li></ul></div></details></nav>
-<nav class="tsd-navigation secondary menu-sticky">
-<ul>
-<li class="tsd-kind-type-alias"><a href="../types/AyahId.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-4194304-path"></rect><path d="M11.31 16V8.224H8.91V7.24H14.79V8.224H12.39V16H11.31Z" fill="var(--color-text)" id="icon-4194304-text"></path></svg>Ayah<wbr/>Id</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/AyahNo.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Ayah<wbr/>No</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Juz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/JuzMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Page.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/PageMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Sajda.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Sajda</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Surah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/SurahAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Ayah</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/SurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-variable"><a href="HizbQuarterList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-variable)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-32-path"></rect><path d="M11.106 16L8.85 7.24H9.966L11.454 13.192C11.558 13.608 11.646 13.996 11.718 14.356C11.79 14.708 11.842 14.976 11.874 15.16C11.906 14.976 11.954 14.708 12.018 14.356C12.09 13.996 12.178 13.608 12.282 13.192L13.758 7.24H14.85L12.582 16H11.106Z" fill="var(--color-text)" id="icon-32-text"></path></svg>Hizb<wbr/>Quarter<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="JuzList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Juz<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="ManzilList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Manzil<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="PageList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Page<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="RukuList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Ruku<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="SajdaList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sajda<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="SuraList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sura<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="meta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>meta</a></li>
-<li class="current tsd-kind-variable"><a href="suraNamesEn.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>En</a></li>
-<li class="tsd-kind-variable"><a href="suraNamesRu.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>Ru</a></li>
-<li class="tsd-kind-function"><a href="../functions/ayaStringSplitter.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-function)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-64-path"></rect><path d="M9.39 16V7.24H14.55V8.224H10.446V11.128H14.238V12.112H10.47V16H9.39Z" fill="var(--color-text)" id="icon-64-text"></path></svg>aya<wbr/>String<wbr/>Splitter</a></li>
-<li class="tsd-kind-function"><a href="../functions/findAyaidBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Ayaid<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzAndShift.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>And<wbr/>Shift</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzHizb.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzHizbByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzMetaBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Meta<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="../functions/findPage.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Page</a></li>
-<li class="tsd-kind-function"><a href="../functions/findRangeAroundAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Range<wbr/>Around<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="../functions/findSurahByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Surah<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="../functions/getAyaCountinSura.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Aya<wbr/>Countin<wbr/>Sura</a></li>
-<li class="tsd-kind-function"><a href="../functions/getSurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="../functions/isAyahJuzFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Juz<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="../functions/isAyahPageFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Page<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="../functions/nextAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>next<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="../functions/pageMeta-1.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>page<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="../functions/prevAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>prev<wbr/>Ayah</a></li></ul></nav></div></div>
-<div class="container tsd-generator">
-<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></div>
-<div class="overlay"></div><script src="../assets/main.js"></script></body></html>
\ No newline at end of file
+<!DOCTYPE html><html class="default" lang="en"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>suraNamesEn | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../modules.html">quran-meta</a></li><li><a href="suraNamesEn.html">suraNamesEn</a></li></ul><h1>Variable suraNamesEn<code class="tsd-tag">Const</code></h1></div><div class="tsd-signature"><span class="tsd-kind-variable">sura<wbr/>Names<wbr/>En</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">(</span><a href="../types/SuraName.html" class="tsd-signature-type tsd-kind-type-alias">SuraName</a><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-symbol">[</span><span class="tsd-signature-symbol">]</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol"> = ...</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/7ff9baaee85a66d9099133c3db867ac28679aa62/src/i18n/sura.en.ts#L2">i18n/sura.en.ts:2</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>quran-meta</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
diff --git a/docs/variables/suraNamesRu.html b/docs/variables/suraNamesRu.html
index 2607bf0..2e0e951 100644
--- a/docs/variables/suraNamesRu.html
+++ b/docs/variables/suraNamesRu.html
@@ -1,84 +1 @@
-<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>suraNamesRu | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script async src="../assets/search.js" id="search-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os"</script><header class="tsd-page-toolbar">
-<div class="tsd-toolbar-contents container">
-<div class="table-cell" id="tsd-search" data-base="..">
-<div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M15.7824 13.833L12.6666 10.7177C12.5259 10.5771 12.3353 10.499 12.1353 10.499H11.6259C12.4884 9.39596 13.001 8.00859 13.001 6.49937C13.001 2.90909 10.0914 0 6.50048 0C2.90959 0 0 2.90909 0 6.49937C0 10.0896 2.90959 12.9987 6.50048 12.9987C8.00996 12.9987 9.39756 12.4863 10.5008 11.6239V12.1332C10.5008 12.3332 10.5789 12.5238 10.7195 12.6644L13.8354 15.7797C14.1292 16.0734 14.6042 16.0734 14.8948 15.7797L15.7793 14.8954C16.0731 14.6017 16.0731 14.1267 15.7824 13.833ZM6.50048 10.499C4.29094 10.499 2.50018 8.71165 2.50018 6.49937C2.50018 4.29021 4.28781 2.49976 6.50048 2.49976C8.71001 2.49976 10.5008 4.28708 10.5008 6.49937C10.5008 8.70852 8.71314 10.499 6.50048 10.499Z" fill="var(--color-text)"></path></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div>
-<div class="field">
-<div id="tsd-toolbar-links"></div></div>
-<ul class="results">
-<li class="state loading">Preparing search index...</li>
-<li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div>
-<div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><rect x="1" y="3" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="7" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="11" width="14" height="2" fill="var(--color-text)"></rect></svg></a></div></div></header>
-<div class="container container-main">
-<div class="col-8 col-content">
-<div class="tsd-page-title">
-<ul class="tsd-breadcrumb">
-<li><a href="../modules.html">quran-meta</a></li>
-<li><a href="suraNamesRu.html">suraNamesRu</a></li></ul>
-<h1>Variable suraNamesRu<code class="tsd-tag ts-flagConst">Const</code> </h1></div>
-<div class="tsd-signature">sura<wbr/>Names<wbr/>Ru<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">(</span><span class="tsd-signature-type">SuraName</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-symbol">[</span><span class="tsd-signature-symbol">]</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol"> = ...</span></div><aside class="tsd-sources">
-<ul>
-<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/a8fc894/src/i18n/sura.ru.ts#L2">i18n/sura.ru.ts:2</a></li></ul></aside></div>
-<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
-<div class="tsd-navigation settings">
-<details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Settings</h3></summary>
-<div class="tsd-accordion-details">
-<div class="tsd-filter-visibility">
-<h4 class="uppercase">Member Visibility</h4><form>
-<ul id="tsd-filter-options">
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div>
-<div class="tsd-theme-toggle">
-<h4 class="uppercase">Theme</h4><select id="theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div>
-<nav class="tsd-navigation primary">
-<details class="tsd-index-accordion" open><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Modules</h3></summary>
-<div class="tsd-accordion-details">
-<ul>
-<li><a href="../modules.html">quran-<wbr/>meta</a>
-<ul></ul></li></ul></div></details></nav>
-<nav class="tsd-navigation secondary menu-sticky">
-<ul>
-<li class="tsd-kind-type-alias"><a href="../types/AyahId.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-4194304-path"></rect><path d="M11.31 16V8.224H8.91V7.24H14.79V8.224H12.39V16H11.31Z" fill="var(--color-text)" id="icon-4194304-text"></path></svg>Ayah<wbr/>Id</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/AyahNo.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Ayah<wbr/>No</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Juz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/JuzMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Page.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/PageMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Sajda.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Sajda</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Surah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/SurahAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Ayah</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/SurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-variable"><a href="HizbQuarterList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-variable)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-32-path"></rect><path d="M11.106 16L8.85 7.24H9.966L11.454 13.192C11.558 13.608 11.646 13.996 11.718 14.356C11.79 14.708 11.842 14.976 11.874 15.16C11.906 14.976 11.954 14.708 12.018 14.356C12.09 13.996 12.178 13.608 12.282 13.192L13.758 7.24H14.85L12.582 16H11.106Z" fill="var(--color-text)" id="icon-32-text"></path></svg>Hizb<wbr/>Quarter<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="JuzList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Juz<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="ManzilList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Manzil<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="PageList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Page<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="RukuList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Ruku<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="SajdaList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sajda<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="SuraList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sura<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="meta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>meta</a></li>
-<li class="tsd-kind-variable"><a href="suraNamesEn.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>En</a></li>
-<li class="current tsd-kind-variable"><a href="suraNamesRu.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>Ru</a></li>
-<li class="tsd-kind-function"><a href="../functions/ayaStringSplitter.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-function)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-64-path"></rect><path d="M9.39 16V7.24H14.55V8.224H10.446V11.128H14.238V12.112H10.47V16H9.39Z" fill="var(--color-text)" id="icon-64-text"></path></svg>aya<wbr/>String<wbr/>Splitter</a></li>
-<li class="tsd-kind-function"><a href="../functions/findAyaidBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Ayaid<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzAndShift.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>And<wbr/>Shift</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzHizb.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzHizbByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzMetaBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Meta<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="../functions/findPage.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Page</a></li>
-<li class="tsd-kind-function"><a href="../functions/findRangeAroundAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Range<wbr/>Around<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="../functions/findSurahByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Surah<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="../functions/getAyaCountinSura.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Aya<wbr/>Countin<wbr/>Sura</a></li>
-<li class="tsd-kind-function"><a href="../functions/getSurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="../functions/isAyahJuzFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Juz<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="../functions/isAyahPageFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Page<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="../functions/nextAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>next<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="../functions/pageMeta-1.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>page<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="../functions/prevAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>prev<wbr/>Ayah</a></li></ul></nav></div></div>
-<div class="container tsd-generator">
-<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></div>
-<div class="overlay"></div><script src="../assets/main.js"></script></body></html>
\ No newline at end of file
+<!DOCTYPE html><html class="default" lang="en"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>suraNamesRu | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../modules.html">quran-meta</a></li><li><a href="suraNamesRu.html">suraNamesRu</a></li></ul><h1>Variable suraNamesRu<code class="tsd-tag">Const</code></h1></div><div class="tsd-signature"><span class="tsd-kind-variable">sura<wbr/>Names<wbr/>Ru</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">(</span><a href="../types/SuraName.html" class="tsd-signature-type tsd-kind-type-alias">SuraName</a><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-symbol">[</span><span class="tsd-signature-symbol">]</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol"> = ...</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/7ff9baaee85a66d9099133c3db867ac28679aa62/src/i18n/sura.ru.ts#L2">i18n/sura.ru.ts:2</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>quran-meta</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
diff --git a/eslint.config.js b/eslint.config.js
new file mode 100644
index 0000000..ea802cb
--- /dev/null
+++ b/eslint.config.js
@@ -0,0 +1,61 @@
+import jsLint from "@eslint/js"
+import stylistic from "@stylistic/eslint-plugin"
+import globals from "globals"
+import tsLint from "typescript-eslint"
+
+export default [
+  // config parsers
+  {
+    files: ["src/*.{js,mjs,cjs,ts,mts,jsx,tsx}"],
+    languageOptions: {
+      globals: {
+        ...globals.browser, ...globals.node
+      }
+    }
+  },
+
+  // syntax rules
+  jsLint.configs.recommended,
+  ...tsLint.configs.recommended,
+  // code style rules
+  // disable legacy conflict rules about code style
+  stylistic.configs["disable-legacy"],
+  // you can customize or use a preset
+  stylistic.configs.customize({
+    indent: 2,
+    quotes: "double",
+    semi: false,
+    commaDangle: "never"
+  }),
+  {
+    ignores: [
+      "**/node_modules/",
+      "**/coverage/",
+      "**/dist/",
+      "**/docs/",
+      "**/examples/",
+      "**/lib_cjs/",
+      "**/lib_es/"
+    ]
+  },
+  {
+    rules: {
+      // "@typescript-eslint/no-explicit-any": "off"
+    }
+  },
+  {
+    files: ["tests/*.{js,mjs,cjs,ts,mts,jsx,tsx}"],
+    languageOptions: {
+      globals: {
+        ...globals.browser,
+        ...globals.node,
+        ...globals.mocha,
+        ...globals.jest
+      }
+    },
+
+    rules: {
+      "@typescript-eslint/no-explicit-any": "off"
+    }
+  }
+]
diff --git a/examples/hello-es.mjs b/examples/hello-es.mjs
deleted file mode 100644
index 3938759..0000000
--- a/examples/hello-es.mjs
+++ /dev/null
@@ -1,7 +0,0 @@
-// start with
-// node hello-es.mjs
-
-import { meta } from "../dist/quran-meta.js"
-console.log("hello")
-//console.log(`There are ${meta.numSuras} suras in the Holy Quran`)
-console.log(`There are ${meta.numSuras} suras in the Holy Quran`)
diff --git a/examples/hello.js b/examples/hello.cjs
similarity index 77%
rename from examples/hello.js
rename to examples/hello.cjs
index 744c77e..082c63d 100644
--- a/examples/hello.js
+++ b/examples/hello.cjs
@@ -1,5 +1,5 @@
 // node hello.js
 
-var quranMeta = require("../dist/quran-meta.common.js")
+var quranMeta = require("../dist/index.cjs")
 console.log(" Hello World! ") // => 'Hello World'
 console.log(`There are ${quranMeta.meta.numSuras} suras in the Holy Quran`) // => '3 red apples'); // => '3 red apples'
diff --git a/examples/hello.mjs b/examples/hello.mjs
new file mode 100644
index 0000000..614989a
--- /dev/null
+++ b/examples/hello.mjs
@@ -0,0 +1,7 @@
+// start with
+// node hello.mjs
+
+import { meta } from "../dist/index.mjs"
+console.log("hello")
+// console.log(`There are ${meta.numSuras} suras in the Holy Quran`)
+console.log(`There are ${meta.numSuras} suras in the Holy Quran`)
diff --git a/examples/modern/index.html b/examples/modern/index.html
index 88e37b8..0938aa0 100644
--- a/examples/modern/index.html
+++ b/examples/modern/index.html
@@ -2,7 +2,7 @@
 Once library is included local variable `quranMeta` is exposed inside module script:
 
 <script type="module">
-   import { meta } from "../../dist/quran-meta.esm.js"
+   import { meta } from "../../dist/index.mjs"
    console.log("hello")
    console.log(meta)
    alert(`There are ${meta.numSuras} suras in the Holy Quran`)
diff --git a/examples/sample-cjs.js b/examples/sample.cjs
similarity index 84%
rename from examples/sample-cjs.js
rename to examples/sample.cjs
index 68f9fe8..48c8a29 100644
--- a/examples/sample-cjs.js
+++ b/examples/sample.cjs
@@ -1,16 +1,16 @@
 /**
  * This example creates  list of [surah,ayah] number pairs in Holy Quran
  */
-// node sample-cjs.js
+// node sample.cjs
 
 // const quranMeta = require("../dist/quran-meta.common.js")
-const quranMeta = require("../lib_cjs/index.js")
+const quranMeta = require("../dist/index.cjs")
 console.log(`There are ${quranMeta.meta.numSuras} suras in the Holy Quran`)
 const res = []
 for (let surah = 1; surah <= quranMeta.meta.numSuras; surah++) {
   const ayaCount = quranMeta.SuraList[surah][1]
   for (let ayah = 1; ayah <= ayaCount; ayah++) {
-    //console.log(surah, ayah)
+    // console.log(surah, ayah)
     // res.push([surah, ayah])
     res.push(`${String(surah).padStart(3, 0)}${String(ayah).padStart(3, 0)}`)
   }
diff --git a/examples/sample-es.mjs b/examples/sample.mjs
similarity index 80%
rename from examples/sample-es.mjs
rename to examples/sample.mjs
index e4fcdbb..30bda83 100644
--- a/examples/sample-es.mjs
+++ b/examples/sample.mjs
@@ -1,15 +1,15 @@
 /**
  * This example creates  list of [surah,ayah] number pairs in Holy Quran
  */
-// node sample-es.mjs
+// node sample.mjs
 
-import { meta, SuraList } from "../dist/quran-meta.js"
+import { meta, SuraList } from "../dist/index.mjs"
 console.log(`There are ${meta.numSuras} suras in the Holy Quran`)
 const res = []
 for (let surah = 1; surah <= meta.numSuras; surah++) {
   const ayaCount = SuraList[surah][1]
   for (let ayah = 1; ayah <= ayaCount; ayah++) {
-    //console.log(surah, ayah)
+    // console.log(surah, ayah)
     // res.push([surah, ayah])
     res.push(`${String(surah).padStart(3, 0)}${String(ayah).padStart(3, 0)}`)
   }
diff --git a/examples/sample.ts b/examples/sample.ts
index a9e293c..9560dd8 100644
--- a/examples/sample.ts
+++ b/examples/sample.ts
@@ -10,7 +10,7 @@ const res: string[] = []
 for (let surah: Surah = 1; surah <= meta.numSuras; surah++) {
   const ayaCount = SuraList[surah][1]
   for (let ayah: AyahNo = 1; ayah <= ayaCount; ayah++) {
-    //console.log(surah, ayah)
+    // console.log(surah, ayah)
     // res.push([surah, ayah])
     res.push(`${String(surah).padStart(3, 0)}${String(ayah).padStart(3, 0)}`)
   }
diff --git a/jest.config.js b/jest.config.js
deleted file mode 100644
index 8379ab4..0000000
--- a/jest.config.js
+++ /dev/null
@@ -1,23 +0,0 @@
-module.exports = {
-  verbose: true,
-  modulePaths: ["<rootDir>/src/"],
-  collectCoverageFrom: ["src/*.ts"],
-  testEnvironmentOptions: { url: "http://localhost" },
-  testPathIgnorePatterns: ["node_modules"],
-  transformIgnorePatterns: [
-    "[/\\\\]node_modules[/\\\\].+\\.(js|jsx|mjs|ts|tsx)$",
-  ],
-  transform: {
-    "^.+\\.tsx?$": "ts-jest",
-  },
-  testRegex: "(/tests/.*|(\\.|/)(test|spec))\\.(jsx?|tsx?)$",
-  moduleFileExtensions: ["ts", "tsx", "js", "jsx", "json", "node"],
-  coverageThreshold: {
-    global: {
-      statements: 80,
-      branches: 80,
-      functions: 80,
-      lines: 80,
-    },
-  },
-}
diff --git a/lib_cjs/ayaStringSplitter.cjs b/lib_cjs/ayaStringSplitter.cjs
new file mode 100644
index 0000000..5b6edf2
--- /dev/null
+++ b/lib_cjs/ayaStringSplitter.cjs
@@ -0,0 +1,35 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.ayaStringSplitter = ayaStringSplitter;
+var _validation = require("./validation.cjs");
+function ayaStringSplitter(str) {
+  const [surahStr, ayahsStr] = str.trim().split(":");
+  const surah = parseInt(surahStr, 10);
+  if (isNaN(surah)) {
+    throw "Error in surah format " + str;
+  }
+  if (!ayahsStr) {
+    throw "Error in data " + str;
+  }
+  let ayahs;
+  if (ayahsStr.includes("-")) {
+    ayahs = ayahsStr.split("-").map(a => {
+      const ayah = parseInt(a, 10);
+      if (isNaN(ayah) || ayah === 0) {
+        throw "Error in ayah " + a;
+      }
+      return ayah;
+    });
+    if (ayahs[0] > ayahs[1]) throw "Error in ayah range " + str;
+  } else {
+    ayahs = parseInt(ayahsStr, 10);
+    if (isNaN(ayahs) || ayahs === 0) {
+      throw "Error in data " + str;
+    }
+    (0, _validation.checkValidSurahAyah)(surah, ayahs);
+  }
+  return [surah, ayahs];
+}
\ No newline at end of file
diff --git a/lib_cjs/ayaStringSplitter.js b/lib_cjs/ayaStringSplitter.js
deleted file mode 100644
index 615571a..0000000
--- a/lib_cjs/ayaStringSplitter.js
+++ /dev/null
@@ -1,22 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.ayaStringSplitter = void 0;
-/**
- *  Turns String of type "x:y" or "x:y1-y2" to array [x,y] or [x,[y1,y2]] respectively
- * @param {*} str String of type "x:y" or "x:y1-y2"
- * @returns {array} array [x,y] or [x,[y1,y2]] respectively
- */
-function ayaStringSplitter(str) {
-    var _a = str.trim().split(":"), surah = _a[0], ayahs = _a[1];
-    if (!ayahs) {
-        throw "Error in data " + str;
-    }
-    return [
-        +surah,
-        ayahs.includes("-")
-            ? ayahs.split("-").map(Number)
-            : +ayahs,
-    ];
-}
-exports.ayaStringSplitter = ayaStringSplitter;
-//# sourceMappingURL=ayaStringSplitter.js.map
\ No newline at end of file
diff --git a/lib_cjs/ayaStringSplitter.js.map b/lib_cjs/ayaStringSplitter.js.map
deleted file mode 100644
index 2be26dd..0000000
--- a/lib_cjs/ayaStringSplitter.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"ayaStringSplitter.js","sourceRoot":"","sources":["../src/ayaStringSplitter.ts"],"names":[],"mappings":";;;AAEA;;;;GAIG;AACH,SAAgB,iBAAiB,CAAC,GAAW;IACrC,IAAA,KAAiB,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAArC,KAAK,QAAA,EAAE,KAAK,QAAyB,CAAA;IAC5C,IAAI,CAAC,KAAK,EAAE;QACV,MAAM,gBAAgB,GAAG,GAAG,CAAA;KAC7B;IACD,OAAO;QACL,CAAC,KAAK;QACN,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC;YACjB,CAAC,CAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAsB;YACpD,CAAC,CAAC,CAAC,KAAK;KACX,CAAA;AACH,CAAC;AAXD,8CAWC"}
\ No newline at end of file
diff --git a/lib_cjs/const.cjs b/lib_cjs/const.cjs
new file mode 100644
index 0000000..c157aff
--- /dev/null
+++ b/lib_cjs/const.cjs
@@ -0,0 +1,13 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.meta = void 0;
+const meta = exports.meta = Object.freeze({
+  numAyas: 6236,
+  numSuras: 114,
+  numPages: 604,
+  numJuzs: 30,
+  manzilCount: 7
+});
\ No newline at end of file
diff --git a/lib_cjs/const.js b/lib_cjs/const.js
deleted file mode 100644
index 1974d5c..0000000
--- a/lib_cjs/const.js
+++ /dev/null
@@ -1,11 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.meta = void 0;
-exports.meta = Object.freeze({
-    numAyas: 6236,
-    numSuras: 114,
-    numPages: 604,
-    numJuzs: 30,
-    manzilCount: 7,
-});
-//# sourceMappingURL=const.js.map
\ No newline at end of file
diff --git a/lib_cjs/const.js.map b/lib_cjs/const.js.map
deleted file mode 100644
index 236ae00..0000000
--- a/lib_cjs/const.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"const.js","sourceRoot":"","sources":["../src/const.ts"],"names":[],"mappings":";;;AAQa,QAAA,IAAI,GAAwB,MAAM,CAAC,MAAM,CAAC;IACrD,OAAO,EAAE,IAAI;IACb,QAAQ,EAAE,GAAG;IACb,QAAQ,EAAE,GAAG;IACb,OAAO,EAAE,EAAE;IACX,WAAW,EAAE,CAAC;CACf,CAAC,CAAA"}
\ No newline at end of file
diff --git a/lib_cjs/findAyaidBySurah.cjs b/lib_cjs/findAyaidBySurah.cjs
new file mode 100644
index 0000000..68bdf40
--- /dev/null
+++ b/lib_cjs/findAyaidBySurah.cjs
@@ -0,0 +1,13 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.findAyaidBySurah = findAyaidBySurah;
+var _getSurahMeta = require("./getSurahMeta.cjs");
+var _validation = require("./validation.cjs");
+function findAyaidBySurah(surah, ayah) {
+  (0, _validation.checkValidSurahAyah)(surah, ayah);
+  const [startAyahId] = (0, _getSurahMeta.getSurahMeta)(surah);
+  return startAyahId + ayah;
+}
\ No newline at end of file
diff --git a/lib_cjs/findJuz.cjs b/lib_cjs/findJuz.cjs
new file mode 100644
index 0000000..2c86b1a
--- /dev/null
+++ b/lib_cjs/findJuz.cjs
@@ -0,0 +1,13 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.findJuz = findJuz;
+var _findAyaidBySurah = require("./findAyaidBySurah.cjs");
+var _findJuzByAyaid = require("./findJuzByAyaid.cjs");
+var _validation = require("./validation.cjs");
+function findJuz(surah, ayah = 1, ayahMode = false) {
+  const ayahId = ayahMode ? ayah : (0, _validation.checkValidSurahAyah)(surah, ayah) && (0, _findAyaidBySurah.findAyaidBySurah)(surah, ayah);
+  return (0, _findJuzByAyaid.findJuzByAyaid)(ayahId);
+}
\ No newline at end of file
diff --git a/lib_cjs/findJuzAndShift.cjs b/lib_cjs/findJuzAndShift.cjs
new file mode 100644
index 0000000..ca1773d
--- /dev/null
+++ b/lib_cjs/findJuzAndShift.cjs
@@ -0,0 +1,24 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.findJuzAndShift = findJuzAndShift;
+var _findAyaidBySurah = require("./findAyaidBySurah.cjs");
+var _findJuzByAyaid = require("./findJuzByAyaid.cjs");
+var _findSurahByAyaid = require("./findSurahByAyaid.cjs");
+var _juzList = require("./lists/juzList.cjs");
+var _surahList = require("./lists/surahList.cjs");
+var _validation = require("./validation.cjs");
+function findJuzAndShift(surah, ayah, ayahMode = false) {
+  const ayahId = ayahMode ? (0, _validation.checkValidAyahId)(ayah) && ayah : (0, _validation.checkValidSurah)(surah) && (0, _findAyaidBySurah.findAyaidBySurah)(surah, ayah);
+  const juz = (0, _findJuzByAyaid.findJuzByAyaid)(ayahId);
+  const leftAyahId = _juzList.JuzList[juz];
+  if (ayahMode) [surah] = (0, _findSurahByAyaid.findSurahByAyaid)(ayahId);
+  const [surahStartAyahId] = _surahList.SuraList[surah];
+  return {
+    juz,
+    ayahsBetweenJuzSurah: surahStartAyahId - leftAyahId + 1,
+    leftAyahId
+  };
+}
\ No newline at end of file
diff --git a/lib_cjs/findJuzByAyaid.cjs b/lib_cjs/findJuzByAyaid.cjs
new file mode 100644
index 0000000..395900f
--- /dev/null
+++ b/lib_cjs/findJuzByAyaid.cjs
@@ -0,0 +1,12 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.findJuzByAyaid = findJuzByAyaid;
+var _juzList = require("./lists/juzList.cjs");
+var _validation = require("./validation.cjs");
+function findJuzByAyaid(ayaId) {
+  (0, _validation.checkValidAyahId)(ayaId);
+  return _juzList.JuzList.findIndex(x => x > ayaId) - 1;
+}
\ No newline at end of file
diff --git a/lib_cjs/findJuzHizb.cjs b/lib_cjs/findJuzHizb.cjs
new file mode 100644
index 0000000..fe81cdf
--- /dev/null
+++ b/lib_cjs/findJuzHizb.cjs
@@ -0,0 +1,13 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.findJuzHizb = findJuzHizb;
+var _findAyaidBySurah = require("./findAyaidBySurah.cjs");
+var _findJuzHizbByAyaid = require("./findJuzHizbByAyaid.cjs");
+var _validation = require("./validation.cjs");
+function findJuzHizb(surah, ayah = 1, ayahMode = false) {
+  const ayahId = ayahMode ? ayah : (0, _validation.checkValidSurah)(surah) && (0, _findAyaidBySurah.findAyaidBySurah)(surah, ayah);
+  return (0, _findJuzHizbByAyaid.findJuzHizbByAyaid)(ayahId);
+}
\ No newline at end of file
diff --git a/lib_cjs/findJuzHizbByAyaid.cjs b/lib_cjs/findJuzHizbByAyaid.cjs
new file mode 100644
index 0000000..8a19e08
--- /dev/null
+++ b/lib_cjs/findJuzHizbByAyaid.cjs
@@ -0,0 +1,20 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.findJuzHizbByAyaid = findJuzHizbByAyaid;
+var _findJuzByAyaid = require("./findJuzByAyaid.cjs");
+var _hizbList = require("./lists/hizbList.cjs");
+var _validation = require("./validation.cjs");
+function findJuzHizbByAyaid(ayaId) {
+  (0, _validation.checkValidAyahId)(ayaId);
+  const juz = (0, _findJuzByAyaid.findJuzByAyaid)(ayaId);
+  const quarterIndex = _hizbList.HizbQuarterList.findIndex(x => x > ayaId) - 1;
+  const hizb = quarterIndex % 8 || 8;
+  return {
+    juz,
+    hizb,
+    id: quarterIndex
+  };
+}
\ No newline at end of file
diff --git a/lib_cjs/findJuzMetaBySurah.cjs b/lib_cjs/findJuzMetaBySurah.cjs
new file mode 100644
index 0000000..40e3a5e
--- /dev/null
+++ b/lib_cjs/findJuzMetaBySurah.cjs
@@ -0,0 +1,28 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.findJuzMetaBySurah = findJuzMetaBySurah;
+var _const = require("./const.cjs");
+var _findJuzAndShift = require("./findJuzAndShift.cjs");
+var _findSurahByAyaid = require("./findSurahByAyaid.cjs");
+var _juzList = require("./lists/juzList.cjs");
+function findJuzMetaBySurah(surah, ayah = 1) {
+  const {
+    juz: leftjuz,
+    ayahsBetweenJuzSurah,
+    leftAyahId
+  } = (0, _findJuzAndShift.findJuzAndShift)(surah, ayah);
+  let rightJuz = leftjuz;
+  while (rightJuz < _const.meta.numJuzs && (0, _findSurahByAyaid.findSurahByAyaid)(_juzList.JuzList[rightJuz + 1])[0] === surah) {
+    rightJuz++;
+  }
+  return {
+    leftjuz,
+    ayahsBetweenJuzSurah,
+    rightJuz,
+    leftAyahId,
+    rightAyahId: _juzList.JuzList[rightJuz + 1]
+  };
+}
\ No newline at end of file
diff --git a/lib_cjs/findPage.cjs b/lib_cjs/findPage.cjs
new file mode 100644
index 0000000..020c9b0
--- /dev/null
+++ b/lib_cjs/findPage.cjs
@@ -0,0 +1,13 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.findPage = findPage;
+var _findAyaidBySurah = require("./findAyaidBySurah.cjs");
+var _pageList = require("./lists/pageList.cjs");
+var _validation = require("./validation.cjs");
+function findPage(surah, ayah, ayahMode = false) {
+  const ayahId = ayahMode ? (0, _validation.checkValidAyahId)(ayah) && ayah : (0, _validation.checkValidSurah)(surah) && (0, _findAyaidBySurah.findAyaidBySurah)(surah, ayah);
+  return _pageList.PageList.findIndex(x => x > ayahId) - 1;
+}
\ No newline at end of file
diff --git a/lib_cjs/findRangeAroundAyah.cjs b/lib_cjs/findRangeAroundAyah.cjs
new file mode 100644
index 0000000..f1b04b1
--- /dev/null
+++ b/lib_cjs/findRangeAroundAyah.cjs
@@ -0,0 +1,40 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.findRangeAroundAyah = findRangeAroundAyah;
+var _const = require("./const.cjs");
+var _findAyaidBySurah = require("./findAyaidBySurah.cjs");
+var _findJuzByAyaid = require("./findJuzByAyaid.cjs");
+var _findPage = require("./findPage.cjs");
+var _juzList = require("./lists/juzList.cjs");
+var _pageList = require("./lists/pageList.cjs");
+var _surahList = require("./lists/surahList.cjs");
+var _validation = require("./validation.cjs");
+function findRangeAroundAyah(surah, ayah, mode, ayahMode = false) {
+  const ayahId = ayahMode ? ayah : (0, _validation.checkValidSurah)(surah) && (0, _findAyaidBySurah.findAyaidBySurah)(surah, ayah);
+  switch (mode) {
+    case "juz":
+      {
+        const juz = (0, _findJuzByAyaid.findJuzByAyaid)(ayahId);
+        return [_juzList.JuzList[juz], _juzList.JuzList[juz + 1] - 1];
+      }
+    case "surah":
+      {
+        return [_surahList.SuraList[surah][0] + 1, _surahList.SuraList[surah + 1][0]];
+      }
+    case "ayah":
+      {
+        return [ayahId, ayahId];
+      }
+    case "page":
+      {
+        const page = (0, _findPage.findPage)(-1, ayahId, true);
+        return [_pageList.PageList[page], _pageList.PageList[page + 1] - 1];
+      }
+    case "all":
+    default:
+      return [1, _const.meta.numAyas];
+  }
+}
\ No newline at end of file
diff --git a/lib_cjs/findSurahByAyaid.cjs b/lib_cjs/findSurahByAyaid.cjs
new file mode 100644
index 0000000..1093d36
--- /dev/null
+++ b/lib_cjs/findSurahByAyaid.cjs
@@ -0,0 +1,13 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.findSurahByAyaid = findSurahByAyaid;
+var _surahList = require("./lists/surahList.cjs");
+var _validation = require("./validation.cjs");
+function findSurahByAyaid(ayaId) {
+  (0, _validation.checkValidAyahId)(ayaId);
+  const suraNum = _surahList.SuraList.findIndex(x => x[0] >= ayaId) - 1;
+  return [suraNum, ayaId - _surahList.SuraList[suraNum][0]];
+}
\ No newline at end of file
diff --git a/lib_cjs/getAyaCountinSura.cjs b/lib_cjs/getAyaCountinSura.cjs
new file mode 100644
index 0000000..8043b3e
--- /dev/null
+++ b/lib_cjs/getAyaCountinSura.cjs
@@ -0,0 +1,10 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.getAyaCountinSura = getAyaCountinSura;
+var _getSurahMeta = require("./getSurahMeta.cjs");
+function getAyaCountinSura(surah) {
+  return (0, _getSurahMeta.getSurahMeta)(surah)[1];
+}
\ No newline at end of file
diff --git a/lib_cjs/getSurahMeta.cjs b/lib_cjs/getSurahMeta.cjs
new file mode 100644
index 0000000..6702955
--- /dev/null
+++ b/lib_cjs/getSurahMeta.cjs
@@ -0,0 +1,12 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.getSurahMeta = getSurahMeta;
+var _surahList = require("./lists/surahList.cjs");
+var _validation = require("./validation.cjs");
+function getSurahMeta(surah) {
+  (0, _validation.checkValidSurah)(surah);
+  return _surahList.SuraList[surah];
+}
\ No newline at end of file
diff --git a/lib_cjs/hizbList.js b/lib_cjs/hizbList.js
deleted file mode 100644
index 35712bc..0000000
--- a/lib_cjs/hizbList.js
+++ /dev/null
@@ -1,24 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.HizbQuarterList = void 0;
-exports.HizbQuarterList = [
-    0, 1, 33, 51, 67, 82, 99, 113, 131, 149, 165, 184, 196, 210, 226, 240, 250,
-    260, 270, 279, 290, 308, 326, 345, 368, 386, 406, 426, 446, 464, 479, 494,
-    505, 517, 529, 551, 567, 581, 593, 607, 628, 641, 656, 670, 681, 696, 710,
-    720, 736, 751, 766, 778, 802, 825, 848, 863, 884, 900, 916, 930, 940, 955,
-    985, 1001, 1019, 1042, 1071, 1096, 1110, 1125, 1143, 1161, 1182, 1201, 1221,
-    1236, 1254, 1269, 1281, 1295, 1310, 1328, 1346, 1357, 1375, 1390, 1417, 1435,
-    1454, 1479, 1497, 1514, 1534, 1557, 1581, 1603, 1626, 1649, 1673, 1697, 1712,
-    1726, 1742, 1760, 1778, 1803, 1852, 1902, 1931, 1952, 1976, 1991, 2012, 2030,
-    2052, 2079, 2099, 2128, 2157, 2172, 2191, 2215, 2239, 2272, 2309, 2349, 2403,
-    2431, 2459, 2484, 2512, 2534, 2566, 2596, 2614, 2633, 2655, 2674, 2709, 2748,
-    2792, 2812, 2826, 2844, 2856, 2876, 2908, 2933, 2984, 3043, 3113, 3160, 3186,
-    3215, 3241, 3264, 3281, 3303, 3328, 3341, 3366, 3386, 3410, 3440, 3463, 3491,
-    3514, 3534, 3551, 3564, 3584, 3593, 3616, 3630, 3652, 3675, 3701, 3733, 3765,
-    3810, 3871, 3933, 3991, 4022, 4066, 4090, 4111, 4134, 4154, 4174, 4199, 4227,
-    4243, 4265, 4285, 4299, 4323, 4349, 4382, 4431, 4485, 4511, 4531, 4555, 4578,
-    4601, 4613, 4626, 4657, 4706, 4759, 4810, 4855, 4902, 4980, 5054, 5091, 5105,
-    5118, 5137, 5157, 5178, 5192, 5218, 5230, 5242, 5272, 5324, 5394, 5448, 5495,
-    5552, 5610, 5673, 5759, 5830, 5885, 5949, 6024, 6091, 6155, 6237,
-];
-//# sourceMappingURL=hizbList.js.map
\ No newline at end of file
diff --git a/lib_cjs/hizbList.js.map b/lib_cjs/hizbList.js.map
deleted file mode 100644
index 69dfeaa..0000000
--- a/lib_cjs/hizbList.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"hizbList.js","sourceRoot":"","sources":["../src/hizbList.ts"],"names":[],"mappings":";;;AAEa,QAAA,eAAe,GAAa;IACvC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IAC1E,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC3E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;CACjE,CAAA"}
\ No newline at end of file
diff --git a/lib_cjs/i18n/sura.en.cjs b/lib_cjs/i18n/sura.en.cjs
new file mode 100644
index 0000000..3732d15
--- /dev/null
+++ b/lib_cjs/i18n/sura.en.cjs
@@ -0,0 +1,7 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.suraNames = void 0;
+const suraNames = exports.suraNames = [[], ["Al-Faatiha", "The Opening"], ["Al-Baqara", "The Cow"], ["Aal-i-Imraan", "The Family of Imraan"], ["An-Nisaa", "The Women"], ["Al-Maaida", "The Table"], ["Al-An'aam", "The Cattle"], ["Al-A'raaf", "The Heights"], ["Al-Anfaal", "The Spoils of War"], ["At-Tawba", "The Repentance"], ["Yunus", "Jonas"], ["Hud", "Hud"], ["Yusuf", "Joseph"], ["Ar-Ra'd", "The Thunder"], ["Ibrahim", "Abraham"], ["Al-Hijr", "The Rock"], ["An-Nahl", "The Bee"], ["Al-Israa", "The Night Journey"], ["Al-Kahf", "The Cave"], ["Maryam", "Mary"], ["Taa-Haa", "Taa-Haa"], ["Al-Anbiyaa", "The Prophets"], ["Al-Hajj", "The Pilgrimage"], ["Al-Muminoon", "The Believers"], ["An-Noor", "The Light"], ["Al-Furqaan", "The Criterion"], ["Ash-Shu'araa", "The Poets"], ["An-Naml", "The Ant"], ["Al-Qasas", "The Stories"], ["Al-Ankaboot", "The Spider"], ["Ar-Room", "The Romans"], ["Luqman", "Luqman"], ["As-Sajda", "The Prostration"], ["Al-Ahzaab", "The Clans"], ["Saba", "Sheba"], ["Faatir", "The Originator"], ["Yaseen", "Yaseen"], ["As-Saaffaat", "Those drawn up in Ranks"], ["Saad", "The letter Saad"], ["Az-Zumar", "The Groups"], ["Al-Ghaafir", "The Forgiver"], ["Fussilat", "Explained in detail"], ["Ash-Shura", "Consultation"], ["Az-Zukhruf", "Ornaments of gold"], ["Ad-Dukhaan", "The Smoke"], ["Al-Jaathiya", "Crouching"], ["Al-Ahqaf", "The Dunes"], ["Muhammad", "Muhammad"], ["Al-Fath", "The Victory"], ["Al-Hujuraat", "The Inner Apartments"], ["Qaaf", "The letter Qaaf"], ["Adh-Dhaariyat", "The Winnowing Winds"], ["At-Tur", "The Mount"], ["An-Najm", "The Star"], ["Al-Qamar", "The Moon"], ["Ar-Rahmaan", "The Beneficent"], ["Al-Waaqia", "The Inevitable"], ["Al-Hadid", "The Iron"], ["Al-Mujaadila", "The Pleading Woman"], ["Al-Hashr", "The Exile"], ["Al-Mumtahana", "She that is to be examined"], ["As-Saff", "The Ranks"], ["Al-Jumu'a", "Friday"], ["Al-Munaafiqoon", "The Hypocrites"], ["At-Taghaabun", "Mutual Disillusion"], ["At-Talaaq", "Divorce"], ["At-Tahrim", "The Prohibition"], ["Al-Mulk", "The Sovereignty"], ["Al-Qalam", "The Pen"], ["Al-Haaqqa", "The Reality"], ["Al-Ma'aarij", "The Ascending Stairways"], ["Nooh", "Noah"], ["Al-Jinn", "The Jinn"], ["Al-Muzzammil", "The Enshrouded One"], ["Al-Muddaththir", "The Cloaked One"], ["Al-Qiyaama", "The Resurrection"], ["Al-Insaan", "Man"], ["Al-Mursalaat", "The Emissaries"], ["An-Naba", "The Announcement"], ["An-Naazi'aat", "Those who drag forth"], ["Abasa", "He frowned"], ["At-Takwir", "The Overthrowing"], ["Al-Infitaar", "The Cleaving"], ["Al-Mutaffifin", "Defrauding"], ["Al-Inshiqaaq", "The Splitting Open"], ["Al-Burooj", "The Constellations"], ["At-Taariq", "The Morning Star"], ["Al-A'laa", "The Most High"], ["Al-Ghaashiya", "The Overwhelming"], ["Al-Fajr", "The Dawn"], ["Al-Balad", "The City"], ["Ash-Shams", "The Sun"], ["Al-Lail", "The Night"], ["Ad-Dhuhaa", "The Morning Hours"], ["Ash-Sharh", "The Consolation"], ["At-Tin", "The Fig"], ["Al-Alaq", "The Clot"], ["Al-Qadr", "The Power, Fate"], ["Al-Bayyina", "The Evidence"], ["Az-Zalzala", "The Earthquake"], ["Al-Aadiyaat", "The Chargers"], ["Al-Qaari'a", "The Calamity"], ["At-Takaathur", "Competition"], ["Al-Asr", "The Declining Day, Epoch"], ["Al-Humaza", "The Traducer"], ["Al-Fil", "The Elephant"], ["Quraish", "Quraysh"], ["Al-Maa'un", "Almsgiving"], ["Al-Kawthar", "Abundance"], ["Al-Kaafiroon", "The Disbelievers"], ["An-Nasr", "Divine Support"], ["Al-Masad", "The Palm Fibre"], ["Al-Ikhlaas", "Sincerity"], ["Al-Falaq", "The Dawn"], ["An-Naas", "Mankind"]];
\ No newline at end of file
diff --git a/lib_cjs/i18n/sura.en.js b/lib_cjs/i18n/sura.en.js
deleted file mode 100644
index 1368064..0000000
--- a/lib_cjs/i18n/sura.en.js
+++ /dev/null
@@ -1,121 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.suraNames = void 0;
-exports.suraNames = [
-    [],
-    ["Al-Faatiha", "The Opening"],
-    ["Al-Baqara", "The Cow"],
-    ["Aal-i-Imraan", "The Family of Imraan"],
-    ["An-Nisaa", "The Women"],
-    ["Al-Maaida", "The Table"],
-    ["Al-An'aam", "The Cattle"],
-    ["Al-A'raaf", "The Heights"],
-    ["Al-Anfaal", "The Spoils of War"],
-    ["At-Tawba", "The Repentance"],
-    ["Yunus", "Jonas"],
-    ["Hud", "Hud"],
-    ["Yusuf", "Joseph"],
-    ["Ar-Ra'd", "The Thunder"],
-    ["Ibrahim", "Abraham"],
-    ["Al-Hijr", "The Rock"],
-    ["An-Nahl", "The Bee"],
-    ["Al-Israa", "The Night Journey"],
-    ["Al-Kahf", "The Cave"],
-    ["Maryam", "Mary"],
-    ["Taa-Haa", "Taa-Haa"],
-    ["Al-Anbiyaa", "The Prophets"],
-    ["Al-Hajj", "The Pilgrimage"],
-    ["Al-Muminoon", "The Believers"],
-    ["An-Noor", "The Light"],
-    ["Al-Furqaan", "The Criterion"],
-    ["Ash-Shu'araa", "The Poets"],
-    ["An-Naml", "The Ant"],
-    ["Al-Qasas", "The Stories"],
-    ["Al-Ankaboot", "The Spider"],
-    ["Ar-Room", "The Romans"],
-    ["Luqman", "Luqman"],
-    ["As-Sajda", "The Prostration"],
-    ["Al-Ahzaab", "The Clans"],
-    ["Saba", "Sheba"],
-    ["Faatir", "The Originator"],
-    ["Yaseen", "Yaseen"],
-    ["As-Saaffaat", "Those drawn up in Ranks"],
-    ["Saad", "The letter Saad"],
-    ["Az-Zumar", "The Groups"],
-    ["Al-Ghaafir", "The Forgiver"],
-    ["Fussilat", "Explained in detail"],
-    ["Ash-Shura", "Consultation"],
-    ["Az-Zukhruf", "Ornaments of gold"],
-    ["Ad-Dukhaan", "The Smoke"],
-    ["Al-Jaathiya", "Crouching"],
-    ["Al-Ahqaf", "The Dunes"],
-    ["Muhammad", "Muhammad"],
-    ["Al-Fath", "The Victory"],
-    ["Al-Hujuraat", "The Inner Apartments"],
-    ["Qaaf", "The letter Qaaf"],
-    ["Adh-Dhaariyat", "The Winnowing Winds"],
-    ["At-Tur", "The Mount"],
-    ["An-Najm", "The Star"],
-    ["Al-Qamar", "The Moon"],
-    ["Ar-Rahmaan", "The Beneficent"],
-    ["Al-Waaqia", "The Inevitable"],
-    ["Al-Hadid", "The Iron"],
-    ["Al-Mujaadila", "The Pleading Woman"],
-    ["Al-Hashr", "The Exile"],
-    ["Al-Mumtahana", "She that is to be examined"],
-    ["As-Saff", "The Ranks"],
-    ["Al-Jumu'a", "Friday"],
-    ["Al-Munaafiqoon", "The Hypocrites"],
-    ["At-Taghaabun", "Mutual Disillusion"],
-    ["At-Talaaq", "Divorce"],
-    ["At-Tahrim", "The Prohibition"],
-    ["Al-Mulk", "The Sovereignty"],
-    ["Al-Qalam", "The Pen"],
-    ["Al-Haaqqa", "The Reality"],
-    ["Al-Ma'aarij", "The Ascending Stairways"],
-    ["Nooh", "Noah"],
-    ["Al-Jinn", "The Jinn"],
-    ["Al-Muzzammil", "The Enshrouded One"],
-    ["Al-Muddaththir", "The Cloaked One"],
-    ["Al-Qiyaama", "The Resurrection"],
-    ["Al-Insaan", "Man"],
-    ["Al-Mursalaat", "The Emissaries"],
-    ["An-Naba", "The Announcement"],
-    ["An-Naazi'aat", "Those who drag forth"],
-    ["Abasa", "He frowned"],
-    ["At-Takwir", "The Overthrowing"],
-    ["Al-Infitaar", "The Cleaving"],
-    ["Al-Mutaffifin", "Defrauding"],
-    ["Al-Inshiqaaq", "The Splitting Open"],
-    ["Al-Burooj", "The Constellations"],
-    ["At-Taariq", "The Morning Star"],
-    ["Al-A'laa", "The Most High"],
-    ["Al-Ghaashiya", "The Overwhelming"],
-    ["Al-Fajr", "The Dawn"],
-    ["Al-Balad", "The City"],
-    ["Ash-Shams", "The Sun"],
-    ["Al-Lail", "The Night"],
-    ["Ad-Dhuhaa", "The Morning Hours"],
-    ["Ash-Sharh", "The Consolation"],
-    ["At-Tin", "The Fig"],
-    ["Al-Alaq", "The Clot"],
-    ["Al-Qadr", "The Power, Fate"],
-    ["Al-Bayyina", "The Evidence"],
-    ["Az-Zalzala", "The Earthquake"],
-    ["Al-Aadiyaat", "The Chargers"],
-    ["Al-Qaari'a", "The Calamity"],
-    ["At-Takaathur", "Competition"],
-    ["Al-Asr", "The Declining Day, Epoch"],
-    ["Al-Humaza", "The Traducer"],
-    ["Al-Fil", "The Elephant"],
-    ["Quraish", "Quraysh"],
-    ["Al-Maa'un", "Almsgiving"],
-    ["Al-Kawthar", "Abundance"],
-    ["Al-Kaafiroon", "The Disbelievers"],
-    ["An-Nasr", "Divine Support"],
-    ["Al-Masad", "The Palm Fibre"],
-    ["Al-Ikhlaas", "Sincerity"],
-    ["Al-Falaq", "The Dawn"],
-    ["An-Naas", "Mankind"],
-];
-//# sourceMappingURL=sura.en.js.map
\ No newline at end of file
diff --git a/lib_cjs/i18n/sura.en.js.map b/lib_cjs/i18n/sura.en.js.map
deleted file mode 100644
index 1e27de7..0000000
--- a/lib_cjs/i18n/sura.en.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"sura.en.js","sourceRoot":"","sources":["../../src/i18n/sura.en.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/lib_cjs/i18n/sura.ru.cjs b/lib_cjs/i18n/sura.ru.cjs
new file mode 100644
index 0000000..0c7784b
--- /dev/null
+++ b/lib_cjs/i18n/sura.ru.cjs
@@ -0,0 +1,7 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.suraNames = void 0;
+const suraNames = exports.suraNames = [[], ["\u0410\u043B\u044C-\u0424\u0430\u0442\u0438\u0445\u0430", "\u041E\u0442\u043A\u0440\u044B\u0432\u0430\u044E\u0449\u0430\u044F \u041A\u043E\u0440\u0430\u043D"], ["\u0410\u043B\u044C-\u0411\u0430\u043A\u0430\u0440\u0430", "\u041A\u043E\u0440\u043E\u0432\u0430"], ["\u0410\u043B\u044C \u2018\u0418\u043C\u0440\u0430\u043D", "\u0421\u0435\u043C\u0435\u0439\u0441\u0442\u0432\u043E \u2018\u0418\u043C\u0440\u0430\u043D\u0430"], ["\u0410\u043D-\u041D\u0438\u0441\u0430", "\u0416\u0435\u043D\u0449\u0438\u043D\u044B"], ["\u0410\u043B\u044C-\u041C\u0430\u0438\u0434\u0430", "\u0422\u0440\u0430\u043F\u0435\u0437\u0430"], ["\u0410\u043B\u044C-\u0410\u043D\u2018\u0430\u043C", "\u0421\u043A\u043E\u0442"], ["\u0410\u043B\u044C-\u0410\u2018\u0440\u0430\u0444", "\u041E\u0433\u0440\u0430\u0434\u044B"], ["\u0410\u043B\u044C-\u0410\u043D\u0444\u0430\u043B\u044C", "\u0412\u043E\u0435\u043D\u043D\u0430\u044F \u0434\u043E\u0431\u044B\u0447\u0430"], ["\u0410\u0442-\u0422\u0430\u0443\u0431\u0430", "\u041F\u043E\u043A\u0430\u044F\u043D\u0438\u0435"], ["\u042E\u043D\u0443\u0441", "\u0418\u043E\u043D\u0430"], ["\u0425\u0443\u0434", "\u0425\u0443\u0434"], ["\u042E\u0441\u0443\u0444", "\u0418\u043E\u0441\u0438\u0444"], ["\u0410\u0440-\u0420\u0430\u2018\u0434", "\u0413\u0440\u043E\u043C"], ["\u0418\u0431\u0440\u0430\u0445\u0438\u043C", "\u0410\u0432\u0440\u0430\u0430\u043C"], ["\u0410\u043B\u044C-\u0425\u0438\u0434\u0436\u0440", "\u0425\u0438\u0434\u0436\u0440"], ["\u0410\u043D-\u041D\u0430\u0445\u043B\u044C", "\u041F\u0447\u0451\u043B\u044B"], ["\u0410\u043B\u044C-\u0418\u0441\u0440\u0430", "\u041D\u043E\u0447\u043D\u043E\u0439 \u043F\u0435\u0440\u0435\u043D\u043E\u0441"], ["\u0410\u043B\u044C-\u041A\u044F\u0445\u0444", "\u041F\u0435\u0449\u0435\u0440\u0430"], ["\u041C\u0430\u0440\u044C\u044F\u043C", "\u041C\u0430\u0440\u0438\u044F"], ["\u0422\u0430, \u0445\u0430", "\u0422\u0430, \u0445\u0430"], ["\u0410\u043B\u044C-\u0410\u043D\u0431\u0438\u044F", "\u041F\u0440\u043E\u0440\u043E\u043A\u0438"], ["\u0410\u043B\u044C-\u0425\u0430\u0434\u0436\u0436", "\u0425\u0430\u0434\u0436"], ["\u0410\u043B\u044C-\u041C\u0443\u2019\u043C\u0438\u043D\u0443\u043D", "\u0412\u0435\u0440\u0443\u044E\u0449\u0438\u0435"], ["\u0410\u043D-\u041D\u0443\u0440", "\u0421\u0432\u0435\u0442"], ["\u0410\u043B\u044C-\u0424\u0443\u0440\u043A\u0430\u043D", "\u0420\u0430\u0437\u043B\u0438\u0447\u0435\u043D\u0438\u0435"], ["\u0410\u0448-\u0428\u0443\u2018\u0430\u0440\u0430", "\u041F\u043E\u044D\u0442\u044B"], ["\u0410\u043D-\u041D\u0430\u043C\u043B\u044C", "\u041C\u0443\u0440\u0430\u0432\u044C\u0438"], ["\u0410\u043B\u044C-\u041A\u0430\u0441\u0430\u0441", "\u0420\u0430\u0441\u0441\u043A\u0430\u0437"], ["\u0410\u043B\u044C-\u2018\u0410\u043D\u043A\u0430\u0431\u0443\u0442", "\u041F\u0430\u0443\u043A"], ["\u0410\u0440-\u0420\u0443\u043C", "\u0420\u043E\u043C\u0435\u0438"], ["\u041B\u0443\u043A\u043C\u0430\u043D", "\u041B\u0443\u043A\u043C\u0430\u043D"], ["\u0410\u0441-\u0421\u0430\u0434\u0436\u0434\u0430", "\u0417\u0435\u043C\u043D\u043E\u0439 \u043F\u043E\u043A\u043B\u043E\u043D"], ["\u0410\u043B\u044C-\u0410\u0445\u0437\u0430\u0431", "\u041F\u043E\u043B\u0447\u0438\u0449\u0430"], ["\u0421\u0430\u0431\u0430\u2019", "\u0421\u0430\u0432\u0430"], ["\u0424\u0430\u0442\u044B\u0440", "\u0417\u0438\u0436\u0434\u0438\u0442\u0435\u043B\u044C"], ["\u0419\u0430, \u0441\u0438\u043D", "\u0419\u0430, \u0441\u0438\u043D"], ["\u0410\u0441-\u0421\u0430\u0444\u0444\u0430\u0442", "\u0421\u0442\u043E\u044F\u0449\u0438\u0435 \u0432 \u0440\u044F\u0434"], ["\u0421\u0430\u0434", "\u0421\u0430\u0434"], ["\u0410\u0437-\u0417\u0443\u043C\u0430\u0440", "\u0422\u043E\u043B\u043F\u044B"], ["\u0413\u0430\u0444\u0438\u0440", "\u041F\u0440\u043E\u0449\u0430\u044E\u0449\u0438\u0439"], ["\u0424\u0443\u0441\u0441\u044B\u043B\u044F\u0442", "\u0420\u0430\u0437\u044A\u044F\u0441\u043D\u0435\u043D\u044B"], ["\u0410\u0448-\u0428\u0443\u0440\u0430", "\u0421\u043E\u0432\u0435\u0442"], ["\u0410\u0437-\u0417\u0443\u0445\u0440\u0443\u0444", "\u0423\u043A\u0440\u0430\u0448\u0435\u043D\u0438\u044F"], ["\u0410\u0434-\u0414\u0443\u0445\u0430\u043D", "\u0414\u044B\u043C"], ["\u0410\u043B\u044C-\u0414\u0436\u0430\u0441\u0438\u044F", "\u041A\u043E\u043B\u0435\u043D\u043E\u043F\u0440\u0435\u043A\u043B\u043E\u043D\u0451\u043D\u043D\u044B\u0435"], ["\u0410\u043B\u044C-\u0410\u0445\u043A\u0430\u0444", "\u0411\u0430\u0440\u0445\u0430\u043D\u044B"], ["\u041C\u0443\u0445\u0430\u043C\u043C\u0430\u0434", "\u041C\u0443\u0445\u0430\u043C\u043C\u0430\u0434"], ["\u0410\u043B\u044C-\u0424\u0430\u0442\u0445", "\u041F\u043E\u0431\u0435\u0434\u0430"], ["\u0410\u043B\u044C-\u0425\u0443\u0434\u0436\u0443\u0440\u0430\u0442", "\u041F\u043E\u043A\u043E\u0438"], ["\u041A\u0430\u0444", "\u041A\u0430\u0444"], ["\u0410\u0437-\u0417\u0430\u0440\u0438\u044F\u0442", "\u0420\u0430\u0441\u0441\u0435\u0438\u0432\u0430\u044E\u0449\u0438\u0435"], ["\u0410\u0442-\u0422\u0443\u0440", "\u0413\u043E\u0440\u0430"], ["\u0410\u043D-\u041D\u0430\u0434\u0436\u043C", "\u0417\u0432\u0435\u0437\u0434\u0430"], ["\u0410\u043B\u044C-\u041A\u0430\u043C\u0430\u0440", "\u041B\u0443\u043D\u0430"], ["\u0410\u0440-\u0420\u0430\u0445\u043C\u0430\u043D", "\u041C\u0438\u043B\u043E\u0441\u0442\u0438\u0432\u044B\u0439"], ["\u0410\u043B\u044C-\u0412\u0430\u043A\u0438\u2018\u0430", "\u041D\u0435\u0438\u0437\u0431\u0435\u0436\u043D\u043E\u0435"], ["\u0410\u043B\u044C-\u0425\u0430\u0434\u0438\u0434", "\u0416\u0435\u043B\u0435\u0437\u043E"], ["\u0410\u043B\u044C-\u041C\u0443\u0434\u0436\u0430\u0434\u0438\u043B\u044F", "\u041F\u0440\u0435\u043F\u0438\u0440\u0430\u044E\u0449\u0430\u044F\u0441\u044F"], ["\u0410\u043B\u044C-\u0425\u0430\u0448\u0440", "\u0421\u0431\u043E\u0440"], ["\u0410\u043B\u044C-\u041C\u0443\u043C\u0442\u0430\u0445\u0430\u043D\u0430", "\u0418\u0441\u043F\u044B\u0442\u0443\u0435\u043C\u0430\u044F"], ["\u0410\u0441-\u0421\u0430\u0444\u0444", "\u0420\u044F\u0434"], ["\u0410\u043B\u044C-\u0414\u0436\u0443\u043C\u0443\u2018\u0430", "\u0421\u043E\u0431\u0440\u0430\u043D\u0438\u0435"], ["\u0410\u043B\u044C-\u041C\u0443\u043D\u0430\u0444\u0438\u043A\u0443\u043D", "\u041B\u0438\u0446\u0435\u043C\u0435\u0440\u044B"], ["\u0410\u0442-\u0422\u0430\u0433\u0430\u0431\u0443\u043D", "\u041E\u0431\u0434\u0435\u043B\u0435\u043D\u0438\u0435"], ["\u0410\u0442-\u0422\u0430\u043B\u044F\u043A", "\u0420\u0430\u0437\u0432\u043E\u0434"], ["\u0410\u0442-\u0422\u0430\u0445\u0440\u0438\u043C", "\u0417\u0430\u043F\u0440\u0435\u0449\u0435\u043D\u0438\u0435"], ["\u0410\u043B\u044C-\u041C\u0443\u043B\u044C\u043A", "\u0412\u043B\u0430\u0441\u0442\u044C"], ["\u0410\u043B\u044C-\u041A\u0430\u043B\u044F\u043C", "\u041F\u0435\u0440\u043E"], ["\u0410\u043B\u044C-\u0425\u0430\u043A\u043A\u0430", "\u041D\u0435\u043C\u0438\u043D\u0443\u0435\u043C\u043E\u0435"], ["\u0410\u043B\u044C-\u041C\u0430\u2018\u0430\u0440\u0438\u0434\u0436", "\u0421\u0442\u0435\u043F\u0435\u043D\u0438"], ["\u041D\u0443\u0445", "\u041D\u043E\u0439"], ["\u0410\u043B\u044C-\u0414\u0436\u0438\u043D\u043D", "\u0414\u0436\u0438\u043D\u043D\u044B"], ["\u0410\u043B\u044C-\u041C\u0443\u0437\u0437\u0430\u043C\u043C\u0438\u043B\u044C", "\u0417\u0430\u043A\u0443\u0442\u0430\u0432\u0448\u0438\u0439\u0441\u044F"], ["\u0410\u043B\u044C-\u041C\u0443\u0434\u0434\u0430\u0441\u0441\u0438\u0440", "\u0417\u0430\u0432\u0435\u0440\u043D\u0443\u0432\u0448\u0438\u0439\u0441\u044F"], ["\u0410\u043B\u044C-\u041A\u0438\u044F\u043C\u0430", "\u0412\u043E\u0441\u043A\u0440\u0435\u0441\u0435\u043D\u0438\u0435"], ["\u0410\u043B\u044C-\u0418\u043D\u0441\u0430\u043D", "\u0427\u0435\u043B\u043E\u0432\u0435\u043A"], ["\u0410\u043B\u044C-\u041C\u0443\u0440\u0441\u0430\u043B\u044F\u0442", "\u041F\u043E\u0441\u044B\u043B\u0430\u0435\u043C\u044B\u0435"], ["\u0410\u043D-\u041D\u0430\u0431\u0430\u2019", "\u0412\u0435\u0441\u0442\u044C"], ["\u0410\u043D-\u041D\u0430\u0437\u0438\u2018\u0430\u0442", "\u0412\u044B\u0440\u044B\u0432\u0430\u044E\u0449\u0438\u0435"], ["\u2018\u0410\u0431\u0430\u0441\u0430", "\u041D\u0430\u0445\u043C\u0443\u0440\u0438\u043B\u0441\u044F"], ["\u0410\u0442-\u0422\u0430\u043A\u0432\u0438\u0440", "\u0421\u0432\u043E\u0440\u0430\u0447\u0438\u0432\u0430\u043D\u0438\u0435"], ["\u0410\u043B\u044C-\u0418\u043D\u0444\u0438\u0442\u0430\u0440", "\u0420\u0430\u0441\u043A\u0430\u043B\u044B\u0432\u0430\u043D\u0438\u0435"], ["\u0410\u043B\u044C-\u041C\u0443\u0442\u0430\u0444\u0444\u0438\u0444\u0438\u043D", "\u041E\u0431\u0432\u0435\u0448\u0438\u0432\u0430\u044E\u0449\u0438\u0435"], ["\u0410\u043B\u044C-\u0418\u043D\u0448\u0438\u043A\u0430\u043A", "\u0420\u0430\u0437\u0432\u0435\u0440\u0437\u043D\u0435\u0442\u0441\u044F"], ["\u0410\u043B\u044C-\u0411\u0443\u0440\u0443\u0434\u0436", "\u0421\u043E\u0437\u0432\u0435\u0437\u0434\u0438\u044F"], ["\u0410\u0442-\u0422\u0430\u0440\u0438\u043A", "\u041D\u043E\u0447\u043D\u043E\u0439 \u0433\u043E\u0441\u0442\u044C"], ["\u0410\u043B\u044C-\u0410\u2018\u043B\u044F", "\u0412\u0441\u0435\u0432\u044B\u0448\u043D\u0438\u0439"], ["\u0410\u043B\u044C-\u0413\u0430\u0448\u0438\u044F", "\u041F\u043E\u043A\u0440\u044B\u0432\u0430\u044E\u0449\u0435\u0435"], ["\u0410\u043B\u044C-\u0424\u0430\u0434\u0436\u0440", "\u0417\u0430\u0440\u044F"], ["\u0410\u043B\u044C-\u0411\u0430\u043B\u044F\u0434", "\u0413\u043E\u0440\u043E\u0434"], ["\u0410\u0448-\u0428\u0430\u043C\u0441", "\u0421\u043E\u043B\u043D\u0446\u0435"], ["\u0410\u043B\u044C-\u041B\u0435\u0439\u043B\u044C", "\u041D\u043E\u0447\u044C"], ["\u0410\u0434-\u0414\u0443\u0445\u0430", "\u0423\u0442\u0440\u043E"], ["\u0410\u043B\u044C-\u0418\u043D\u0448\u0438\u0440\u0430\u0445", "\u0420\u0430\u0441\u043A\u0440\u044B\u0442\u0438\u0435"], ["\u0410\u0442-\u0422\u0438\u043D", "\u0421\u043C\u043E\u043A\u043E\u0432\u043D\u0438\u0446\u0430"], ["\u0410\u043B\u044C-\u2018\u0410\u043B\u044F\u043A", "\u0421\u0433\u0443\u0441\u0442\u043E\u043A \u043A\u0440\u043E\u0432\u0438"], ["\u0410\u043B\u044C-\u041A\u0430\u0434\u0440", "\u0412\u0435\u043B\u0438\u0447\u0438\u0435"], ["\u0410\u043B\u044C-\u0411\u0430\u0439\u0439\u0438\u043D\u0430", "\u042F\u0441\u043D\u044B\u0439 \u0434\u043E\u0432\u043E\u0434"], ["\u0410\u0437-\u0417\u0430\u043B\u044C\u0437\u0430\u043B\u044F", "\u0421\u043E\u0442\u0440\u044F\u0441\u0435\u043D\u0438\u0435"], ["\u0410\u043B\u044C-\u2018\u0410\u0434\u0438\u044F\u0442", "\u0421\u043A\u0430\u0447\u0443\u0449\u0438\u0435"], ["\u0410\u043B\u044C-\u041A\u0430\u0440\u0438\u2018\u0430", "\u041F\u043E\u0440\u0430\u0436\u0430\u044E\u0449\u0435\u0435"], ["\u0410\u0442-\u0422\u0430\u043A\u044F\u0441\u0443\u0440", "\u0421\u043E\u043F\u0435\u0440\u043D\u0438\u0447\u0435\u0441\u0442\u0432\u043E"], ["\u0410\u043B\u044C-\u2018\u0410\u0441\u0440", "\u041F\u0440\u0435\u0434\u0432\u0435\u0447\u0435\u0440\u043D\u0435\u0435 \u0432\u0440\u0435\u043C\u044F"], ["\u0410\u043B\u044C-\u0425\u0443\u043C\u0430\u0437\u0430", "\u0425\u0443\u043B\u0438\u0442\u0435\u043B\u044C"], ["\u0410\u043B\u044C-\u0424\u0438\u043B\u044C", "\u0421\u043B\u043E\u043D"], ["\u041A\u0443\u0440\u0430\u0439\u0448", "\u041A\u0443\u0440\u0430\u0439\u0448\u0438\u0442\u044B"], ["\u0410\u043B\u044C-\u041C\u0430\u2018\u0443\u043D", "\u0423\u0442\u0432\u0430\u0440\u044C"], ["\u0410\u043B\u044C-\u041A\u0430\u0443\u0441\u0430\u0440", "\u041A\u0430\u0443\u0441\u0430\u0440"], ["\u0410\u043B\u044C-\u041A\u044F\u0444\u0438\u0440\u0443\u043D", "\u041D\u0435\u0432\u0435\u0440\u0443\u044E\u0449\u0438\u0435"], ["\u0410\u043D-\u041D\u0430\u0441\u0440", "\u041F\u043E\u043C\u043E\u0449\u044C"], ["\u0410\u043B\u044C-\u041C\u0430\u0441\u0430\u0434", "\u041F\u0430\u043B\u044C\u043C\u043E\u0432\u044B\u0435 \u0432\u043E\u043B\u043E\u043A\u043D\u0430"], ["\u0410\u043B\u044C-\u0418\u0445\u043B\u044F\u0441", "\u041E\u0447\u0438\u0449\u0435\u043D\u0438\u0435 \u0432\u0435\u0440\u044B"], ["\u0410\u043B\u044C-\u0424\u0430\u043B\u044F\u043A", "\u0420\u0430\u0441\u0441\u0432\u0435\u0442"], ["\u0410\u043D-\u041D\u0430\u0441", "\u041B\u044E\u0434\u0438"]];
\ No newline at end of file
diff --git a/lib_cjs/i18n/sura.ru.js b/lib_cjs/i18n/sura.ru.js
deleted file mode 100644
index 944292b..0000000
--- a/lib_cjs/i18n/sura.ru.js
+++ /dev/null
@@ -1,121 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.suraNames = void 0;
-exports.suraNames = [
-    [],
-    ["Аль-Фатиха", "Открывающая Коран"],
-    ["Аль-Бакара", "Корова"],
-    ["Аль ‘Имран", "Семейство ‘Имрана"],
-    ["Ан-Ниса", "Женщины"],
-    ["Аль-Маида", "Трапеза"],
-    ["Аль-Ан‘ам", "Скот"],
-    ["Аль-А‘раф", "Ограды"],
-    ["Аль-Анфаль", "Военная добыча"],
-    ["Ат-Тауба", "Покаяние"],
-    ["Юнус", "Иона"],
-    ["Худ", "Худ"],
-    ["Юсуф", "Иосиф"],
-    ["Ар-Ра‘д", "Гром"],
-    ["Ибрахим", "Авраам"],
-    ["Аль-Хиджр", "Хиджр"],
-    ["Ан-Нахль", "Пчёлы"],
-    ["Аль-Исра", "Ночной перенос"],
-    ["Аль-Кяхф", "Пещера"],
-    ["Марьям", "Мария"],
-    ["Та, ха", "Та, ха"],
-    ["Аль-Анбия", "Пророки"],
-    ["Аль-Хаджж", "Хадж"],
-    ["Аль-Му’минун", "Верующие"],
-    ["Ан-Нур", "Свет"],
-    ["Аль-Фуркан", "Различение"],
-    ["Аш-Шу‘ара", "Поэты"],
-    ["Ан-Намль", "Муравьи"],
-    ["Аль-Касас", "Рассказ"],
-    ["Аль-‘Анкабут", "Паук"],
-    ["Ар-Рум", "Ромеи"],
-    ["Лукман", "Лукман"],
-    ["Ас-Саджда", "Земной поклон"],
-    ["Аль-Ахзаб", "Полчища"],
-    ["Саба’", "Сава"],
-    ["Фатыр", "Зиждитель"],
-    ["Йа, син", "Йа, син"],
-    ["Ас-Саффат", "Стоящие в ряд"],
-    ["Сад", "Сад"],
-    ["Аз-Зумар", "Толпы"],
-    ["Гафир", "Прощающий"],
-    ["Фуссылят", "Разъяснены"],
-    ["Аш-Шура", "Совет"],
-    ["Аз-Зухруф", "Украшения"],
-    ["Ад-Духан", "Дым"],
-    ["Аль-Джасия", "Коленопреклонённые"],
-    ["Аль-Ахкаф", "Барханы"],
-    ["Мухаммад", "Мухаммад"],
-    ["Аль-Фатх", "Победа"],
-    ["Аль-Худжурат", "Покои"],
-    ["Каф", "Каф"],
-    ["Аз-Зарият", "Рассеивающие"],
-    ["Ат-Тур", "Гора"],
-    ["Ан-Наджм", "Звезда"],
-    ["Аль-Камар", "Луна"],
-    ["Ар-Рахман", "Милостивый"],
-    ["Аль-Ваки‘а", "Неизбежное"],
-    ["Аль-Хадид", "Железо"],
-    ["Аль-Муджадиля", "Препирающаяся"],
-    ["Аль-Хашр", "Сбор"],
-    ["Аль-Мумтахана", "Испытуемая"],
-    ["Ас-Сафф", "Ряд"],
-    ["Аль-Джуму‘а", "Собрание"],
-    ["Аль-Мунафикун", "Лицемеры"],
-    ["Ат-Тагабун", "Обделение"],
-    ["Ат-Таляк", "Развод"],
-    ["Ат-Тахрим", "Запрещение"],
-    ["Аль-Мульк", "Власть"],
-    ["Аль-Калям", "Перо"],
-    ["Аль-Хакка", "Неминуемое"],
-    ["Аль-Ма‘аридж", "Степени"],
-    ["Нух", "Ной"],
-    ["Аль-Джинн", "Джинны"],
-    ["Аль-Муззаммиль", "Закутавшийся"],
-    ["Аль-Муддассир", "Завернувшийся"],
-    ["Аль-Кияма", "Воскресение"],
-    ["Аль-Инсан", "Человек"],
-    ["Аль-Мурсалят", "Посылаемые"],
-    ["Ан-Наба’", "Весть"],
-    ["Ан-Нази‘ат", "Вырывающие"],
-    ["‘Абаса", "Нахмурился"],
-    ["Ат-Таквир", "Сворачивание"],
-    ["Аль-Инфитар", "Раскалывание"],
-    ["Аль-Мутаффифин", "Обвешивающие"],
-    ["Аль-Иншикак", "Разверзнется"],
-    ["Аль-Бурудж", "Созвездия"],
-    ["Ат-Тарик", "Ночной гость"],
-    ["Аль-А‘ля", "Всевышний"],
-    ["Аль-Гашия", "Покрывающее"],
-    ["Аль-Фаджр", "Заря"],
-    ["Аль-Баляд", "Город"],
-    ["Аш-Шамс", "Солнце"],
-    ["Аль-Лейль", "Ночь"],
-    ["Ад-Духа", "Утро"],
-    ["Аль-Инширах", "Раскрытие"],
-    ["Ат-Тин", "Смоковница"],
-    ["Аль-‘Аляк", "Сгусток крови"],
-    ["Аль-Кадр", "Величие"],
-    ["Аль-Баййина", "Ясный довод"],
-    ["Аз-Зальзаля", "Сотрясение"],
-    ["Аль-‘Адият", "Скачущие"],
-    ["Аль-Кари‘а", "Поражающее"],
-    ["Ат-Такясур", "Соперничество"],
-    ["Аль-‘Аср", "Предвечернее время"],
-    ["Аль-Хумаза", "Хулитель"],
-    ["Аль-Филь", "Слон"],
-    ["Курайш", "Курайшиты"],
-    ["Аль-Ма‘ун", "Утварь"],
-    ["Аль-Каусар", "Каусар"],
-    ["Аль-Кяфирун", "Неверующие"],
-    ["Ан-Наср", "Помощь"],
-    ["Аль-Масад", "Пальмовые волокна"],
-    ["Аль-Ихляс", "Очищение веры"],
-    ["Аль-Фаляк", "Рассвет"],
-    ["Ан-Нас", "Люди"],
-];
-//# sourceMappingURL=sura.ru.js.map
\ No newline at end of file
diff --git a/lib_cjs/i18n/sura.ru.js.map b/lib_cjs/i18n/sura.ru.js.map
deleted file mode 100644
index 0ff5ebb..0000000
--- a/lib_cjs/i18n/sura.ru.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"sura.ru.js","sourceRoot":"","sources":["../../src/i18n/sura.ru.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/lib_cjs/index.cjs b/lib_cjs/index.cjs
new file mode 100644
index 0000000..944922f
--- /dev/null
+++ b/lib_cjs/index.cjs
@@ -0,0 +1,220 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+Object.defineProperty(exports, "HizbQuarterList", {
+  enumerable: true,
+  get: function () {
+    return _hizbList.HizbQuarterList;
+  }
+});
+Object.defineProperty(exports, "JuzList", {
+  enumerable: true,
+  get: function () {
+    return _juzList.JuzList;
+  }
+});
+Object.defineProperty(exports, "ManzilList", {
+  enumerable: true,
+  get: function () {
+    return _manzilList.ManzilList;
+  }
+});
+Object.defineProperty(exports, "PageList", {
+  enumerable: true,
+  get: function () {
+    return _pageList.PageList;
+  }
+});
+Object.defineProperty(exports, "RukuList", {
+  enumerable: true,
+  get: function () {
+    return _rukuList.RukuList;
+  }
+});
+Object.defineProperty(exports, "SajdaList", {
+  enumerable: true,
+  get: function () {
+    return _sajdaList.SajdaList;
+  }
+});
+Object.defineProperty(exports, "SuraList", {
+  enumerable: true,
+  get: function () {
+    return _surahList.SuraList;
+  }
+});
+Object.defineProperty(exports, "ayaStringSplitter", {
+  enumerable: true,
+  get: function () {
+    return _ayaStringSplitter.ayaStringSplitter;
+  }
+});
+Object.defineProperty(exports, "checkValidAyahId", {
+  enumerable: true,
+  get: function () {
+    return _validation.checkValidAyahId;
+  }
+});
+Object.defineProperty(exports, "checkValidSurah", {
+  enumerable: true,
+  get: function () {
+    return _validation.checkValidSurah;
+  }
+});
+Object.defineProperty(exports, "checkValidSurahAyah", {
+  enumerable: true,
+  get: function () {
+    return _validation.checkValidSurahAyah;
+  }
+});
+Object.defineProperty(exports, "findAyaidBySurah", {
+  enumerable: true,
+  get: function () {
+    return _findAyaidBySurah.findAyaidBySurah;
+  }
+});
+Object.defineProperty(exports, "findJuz", {
+  enumerable: true,
+  get: function () {
+    return _findJuz.findJuz;
+  }
+});
+Object.defineProperty(exports, "findJuzAndShift", {
+  enumerable: true,
+  get: function () {
+    return _findJuzAndShift.findJuzAndShift;
+  }
+});
+Object.defineProperty(exports, "findJuzByAyaid", {
+  enumerable: true,
+  get: function () {
+    return _findJuzByAyaid.findJuzByAyaid;
+  }
+});
+Object.defineProperty(exports, "findJuzHizb", {
+  enumerable: true,
+  get: function () {
+    return _findJuzHizb.findJuzHizb;
+  }
+});
+Object.defineProperty(exports, "findJuzHizbByAyaid", {
+  enumerable: true,
+  get: function () {
+    return _findJuzHizbByAyaid.findJuzHizbByAyaid;
+  }
+});
+Object.defineProperty(exports, "findJuzMetaBySurah", {
+  enumerable: true,
+  get: function () {
+    return _findJuzMetaBySurah.findJuzMetaBySurah;
+  }
+});
+Object.defineProperty(exports, "findPage", {
+  enumerable: true,
+  get: function () {
+    return _findPage.findPage;
+  }
+});
+Object.defineProperty(exports, "findRangeAroundAyah", {
+  enumerable: true,
+  get: function () {
+    return _findRangeAroundAyah.findRangeAroundAyah;
+  }
+});
+Object.defineProperty(exports, "findSurahByAyaid", {
+  enumerable: true,
+  get: function () {
+    return _findSurahByAyaid.findSurahByAyaid;
+  }
+});
+Object.defineProperty(exports, "getAyaCountinSura", {
+  enumerable: true,
+  get: function () {
+    return _getAyaCountinSura.getAyaCountinSura;
+  }
+});
+Object.defineProperty(exports, "getSurahMeta", {
+  enumerable: true,
+  get: function () {
+    return _getSurahMeta.getSurahMeta;
+  }
+});
+Object.defineProperty(exports, "isAyahJuzFirst", {
+  enumerable: true,
+  get: function () {
+    return _isAyahJuzFirst.isAyahJuzFirst;
+  }
+});
+Object.defineProperty(exports, "isAyahPageFirst", {
+  enumerable: true,
+  get: function () {
+    return _isAyahPageFirst.isAyahPageFirst;
+  }
+});
+Object.defineProperty(exports, "meta", {
+  enumerable: true,
+  get: function () {
+    return _const.meta;
+  }
+});
+Object.defineProperty(exports, "nextAyah", {
+  enumerable: true,
+  get: function () {
+    return _nextAyah.nextAyah;
+  }
+});
+Object.defineProperty(exports, "pageMeta", {
+  enumerable: true,
+  get: function () {
+    return _pageMeta.pageMeta;
+  }
+});
+Object.defineProperty(exports, "prevAyah", {
+  enumerable: true,
+  get: function () {
+    return _prevAyah.prevAyah;
+  }
+});
+Object.defineProperty(exports, "suraNamesEn", {
+  enumerable: true,
+  get: function () {
+    return _sura.suraNames;
+  }
+});
+Object.defineProperty(exports, "suraNamesRu", {
+  enumerable: true,
+  get: function () {
+    return _sura2.suraNames;
+  }
+});
+var _ayaStringSplitter = require("./ayaStringSplitter.cjs");
+var _const = require("./const.cjs");
+var _findAyaidBySurah = require("./findAyaidBySurah.cjs");
+var _findJuz = require("./findJuz.cjs");
+var _findJuzAndShift = require("./findJuzAndShift.cjs");
+var _findJuzByAyaid = require("./findJuzByAyaid.cjs");
+var _findJuzHizb = require("./findJuzHizb.cjs");
+var _findJuzHizbByAyaid = require("./findJuzHizbByAyaid.cjs");
+var _findJuzMetaBySurah = require("./findJuzMetaBySurah.cjs");
+var _findPage = require("./findPage.cjs");
+var _findRangeAroundAyah = require("./findRangeAroundAyah.cjs");
+var _findSurahByAyaid = require("./findSurahByAyaid.cjs");
+var _getAyaCountinSura = require("./getAyaCountinSura.cjs");
+var _getSurahMeta = require("./getSurahMeta.cjs");
+var _isAyahJuzFirst = require("./isAyahJuzFirst.cjs");
+var _isAyahPageFirst = require("./isAyahPageFirst.cjs");
+var _hizbList = require("./lists/hizbList.cjs");
+var _juzList = require("./lists/juzList.cjs");
+var _manzilList = require("./lists/manzilList.cjs");
+var _pageList = require("./lists/pageList.cjs");
+var _rukuList = require("./lists/rukuList.cjs");
+var _sajdaList = require("./lists/sajdaList.cjs");
+var _surahList = require("./lists/surahList.cjs");
+var _nextAyah = require("./nextAyah.cjs");
+var _pageMeta = require("./pageMeta.cjs");
+var _prevAyah = require("./prevAyah.cjs");
+var _validation = require("./validation.cjs");
+var _sura = require("./i18n/sura.en.cjs");
+var _sura2 = require("./i18n/sura.ru.cjs");
\ No newline at end of file
diff --git a/lib_cjs/index.js b/lib_cjs/index.js
deleted file mode 100644
index 0154d17..0000000
--- a/lib_cjs/index.js
+++ /dev/null
@@ -1,381 +0,0 @@
-"use strict";
-var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
-    if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
-        if (ar || !(i in from)) {
-            if (!ar) ar = Array.prototype.slice.call(from, 0, i);
-            ar[i] = from[i];
-        }
-    }
-    return to.concat(ar || Array.prototype.slice.call(from));
-};
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.findRangeAroundAyah = exports.pageMeta = exports.prevAyah = exports.nextAyah = exports.getAyaCountinSura = exports.findAyaidBySurah = exports.findPage = exports.getSurahMeta = exports.findJuzMetaBySurah = exports.findJuzAndShift = exports.isAyahPageFirst = exports.isAyahJuzFirst = exports.findJuzHizb = exports.findJuz = exports.findJuzHizbByAyaid = exports.findJuzByAyaid = exports.findSurahByAyaid = exports.ayaStringSplitter = exports.SajdaList = exports.PageList = exports.RukuList = exports.ManzilList = exports.HizbQuarterList = exports.JuzList = exports.SuraList = exports.meta = exports.suraNamesRu = exports.suraNamesEn = void 0;
-// Quran Meta
-var const_1 = require("./const");
-Object.defineProperty(exports, "meta", { enumerable: true, get: function () { return const_1.meta; } });
-//export default QuranMeta;
-//------------------ Sura Data ---------------------
-var sura_en_1 = require("./i18n/sura.en");
-Object.defineProperty(exports, "suraNamesEn", { enumerable: true, get: function () { return sura_en_1.suraNames; } });
-var sura_ru_1 = require("./i18n/sura.ru");
-Object.defineProperty(exports, "suraNamesRu", { enumerable: true, get: function () { return sura_ru_1.suraNames; } });
-var surahList_1 = require("./surahList");
-Object.defineProperty(exports, "SuraList", { enumerable: true, get: function () { return surahList_1.SuraList; } });
-//------------------ Juz Data ---------------------
-var JuzList = [
-    0, 1, 149, 260, 386, 517, 641, 751, 900, 1042, 1201, 1328, 1479, 1649, 1803,
-    2030, 2215, 2484, 2674, 2876, 3215, 3386, 3564, 3733, 4090, 4265, 4511, 4706,
-    5105, 5242, 5673, 6237,
-];
-exports.JuzList = JuzList;
-//------------------ Hizb Data ---------------------
-var hizbList_1 = require("./hizbList");
-Object.defineProperty(exports, "HizbQuarterList", { enumerable: true, get: function () { return hizbList_1.HizbQuarterList; } });
-//------------------ Manzil Data ---------------------
-var ManzilList = [0, 1, 670, 1365, 2030, 2933, 3789, 4631, 6237];
-exports.ManzilList = ManzilList;
-//------------------ Ruku Data ---------------------
-// export Ruku  from "~/js/qdata-ruku.json"
-var rukuList_1 = require("./rukuList");
-Object.defineProperty(exports, "RukuList", { enumerable: true, get: function () { return rukuList_1.RukuList; } });
-//------------------ Page Data ---------------------
-// code to get starting pages for surahs
-// let res=[];
-// Page.reduce((s,c,p)=>{
-// 	while (c[0]>=s)
-// 		{res.push([s,c[0],s==c[0]?p:p-1]);s+=1;}
-// 	return s
-// },0)
-var pageList_1 = require("./pageList");
-Object.defineProperty(exports, "PageList", { enumerable: true, get: function () { return pageList_1.PageList; } });
-// export Page from "~/js/qdata-page.json"
-//------------------ Sajda Data ---------------------
-var SajdaList = [
-    // [ayaId, type]
-    [1160, "recommended"],
-    [1722, "recommended"],
-    [1951, "recommended"],
-    [2138, "recommended"],
-    [2308, "recommended"],
-    [2613, "recommended"],
-    [2672, "recommended"],
-    [2915, "recommended"],
-    [3185, "recommended"],
-    [3518, "obligatory"],
-    [3994, "recommended"],
-    [4256, "obligatory"],
-    [4846, "obligatory"],
-    [5905, "recommended"],
-    [6125, "obligatory"],
-];
-exports.SajdaList = SajdaList;
-//export default QuranMeta;
-var ayaStringSplitter_1 = require("./ayaStringSplitter");
-Object.defineProperty(exports, "ayaStringSplitter", { enumerable: true, get: function () { return ayaStringSplitter_1.ayaStringSplitter; } });
-function binarySearch(ar, el, compare_fn) {
-    if (compare_fn === void 0) { compare_fn = function (a, b) { return a - b; }; }
-    var m = 0;
-    var n = ar.length - 1;
-    while (m <= n) {
-        var k = (n + m) >> 1;
-        var cmp = compare_fn(el, ar[k]);
-        if (cmp > 0) {
-            m = k + 1;
-        }
-        else if (cmp < 0) {
-            n = k - 1;
-        }
-        else {
-            return k;
-        }
-    }
-    return -m - 1;
-}
-function checkValidAyahId(ayaId) {
-    if (ayaId < 1 || ayaId > const_1.meta.numAyas)
-        throw new RangeError("ayaid must be between 1 and " + const_1.meta.numAyas);
-    return true;
-}
-function checkValidSurah(surah, checkOnly) {
-    if (checkOnly === void 0) { checkOnly = false; }
-    if (surah < 1 || surah > const_1.meta.numSuras) {
-        if (checkOnly)
-            return false;
-        throw new RangeError("Surah must be between 1 and " + const_1.meta.numSuras);
-    }
-    return true;
-}
-/**
- *
- * @param {*} ayaId
- */
-function findSurahByAyaid(ayaId) {
-    checkValidAyahId(ayaId);
-    var suraNum = surahList_1.SuraList.findIndex(function (x) { return x[0] >= ayaId; }) - 1;
-    return suraNum < 0
-        ? [114, ayaId - surahList_1.SuraList[114][0]]
-        : [suraNum, ayaId - surahList_1.SuraList[suraNum][0]];
-}
-exports.findSurahByAyaid = findSurahByAyaid;
-/**
- *
- * @param {*} ayaId
- */
-function findJuzByAyaid(ayaId) {
-    checkValidAyahId(ayaId);
-    return JuzList.findIndex(function (x) { return x > ayaId; }) - 1;
-}
-exports.findJuzByAyaid = findJuzByAyaid;
-/**
- *
- * @param {*} ayaId
- */
-function findJuzHizbByAyaid(ayaId) {
-    checkValidAyahId(ayaId);
-    var juz = findJuzByAyaid(ayaId);
-    var id = hizbList_1.HizbQuarterList.findIndex(function (x) { return x > ayaId; }) - 1;
-    return { juz: juz, hizb: id % 8 || 8, id: id };
-}
-exports.findJuzHizbByAyaid = findJuzHizbByAyaid;
-/**
- *
- * @param {*} surah
- * @param {*} ayah
- */
-function findJuz(surah, ayah, ayahMode) {
-    if (ayah === void 0) { ayah = 1; }
-    if (ayahMode === void 0) { ayahMode = false; }
-    var ayahId = ayahMode
-        ? ayah
-        : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
-    return findJuzByAyaid(ayahId);
-}
-exports.findJuz = findJuz;
-/**
- *
- * @param {*} surah
- * @param {*} ayah
- */
-function findJuzHizb(surah, ayah, ayahMode) {
-    if (ayah === void 0) { ayah = 1; }
-    if (ayahMode === void 0) { ayahMode = false; }
-    var ayahId = ayahMode
-        ? ayah
-        : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
-    return findJuzHizbByAyaid(ayahId);
-}
-exports.findJuzHizb = findJuzHizb;
-/**
- * Returns Positive number if aya is first ayah of juz, number is juz number
- * @param {*} surah
- * @param {*} ayah
- */
-function isAyahJuzFirst(surah, ayah, ayahMode) {
-    if (ayahMode === void 0) { ayahMode = false; }
-    var ayahId = ayahMode
-        ? (checkValidAyahId(ayah) && ayah)
-        : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
-    return binarySearch(JuzList, ayahId);
-    // return JuzList.findIndex((x: AyahId) => x == ayahId)
-}
-exports.isAyahJuzFirst = isAyahJuzFirst;
-/**
- * Returns Positive number if aya is first ayah of juz, number is juz number
- * @param {*} surah
- * @param {*} ayah
- */
-function isAyahPageFirst(surah, ayah, ayahMode) {
-    if (ayahMode === void 0) { ayahMode = false; }
-    var ayahId = ayahMode
-        ? (checkValidAyahId(ayah) && ayah)
-        : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
-    return binarySearch(pageList_1.PageList, ayahId);
-    // return PageList.findIndex((x: AyahId) => x == ayahId)
-}
-exports.isAyahPageFirst = isAyahPageFirst;
-/**
- *  Find juz containing ayah
- * @param surah
- * @param ayah
- * @param ayahMode
- * @returns
- */
-function findJuzAndShift(surah, ayah, ayahMode) {
-    if (ayahMode === void 0) { ayahMode = false; }
-    var ayahId = ayahMode
-        ? (checkValidAyahId(ayah) && ayah)
-        : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
-    var juz = findJuzByAyaid(ayahId);
-    var leftAyahId = JuzList[juz];
-    if (surah < 0)
-        surah = findSurahByAyaid(leftAyahId)[0];
-    var surahStartAyahId = surahList_1.SuraList[surah][0];
-    return {
-        juz: juz,
-        ayahsBetweenJuzSurah: surahStartAyahId - leftAyahId + 1,
-        leftAyahId: leftAyahId,
-    };
-}
-exports.findJuzAndShift = findJuzAndShift;
-//todo explain function
-/**
- * for given ayah return [starting juz, number of ayahsFrom beginning of that juz, right juz, number of ayahs in surah
- * @param {*} suraNumber
- * @param {*} ayaNumber
- * @returns [leftjuz, ayahsFromStartOfJuz, rightJuz, ayahsinSurah,leftAyahId,rightAyahId]
- */
-function findJuzMetaBySurah(surah, ayah) {
-    if (ayah === void 0) { ayah = 1; }
-    var _a = findJuzAndShift(surah, ayah), leftjuz = _a.juz, ayahsBetweenJuzSurah = _a.ayahsBetweenJuzSurah, leftAyahId = _a.leftAyahId;
-    var rightJuz = leftjuz;
-    while (rightJuz < const_1.meta.numJuzs &&
-        findSurahByAyaid(JuzList[rightJuz + 1])[0] == surah)
-        rightJuz++;
-    return {
-        leftjuz: leftjuz,
-        ayahsBetweenJuzSurah: ayahsBetweenJuzSurah,
-        rightJuz: rightJuz,
-        leftAyahId: leftAyahId,
-        rightAyahId: JuzList[rightJuz + 1],
-    };
-}
-exports.findJuzMetaBySurah = findJuzMetaBySurah;
-/**
- * Get Surah meta
- * @param surah
- */
-function getSurahMeta(surah) {
-    checkValidSurah(surah);
-    return surahList_1.SuraList[surah];
-}
-exports.getSurahMeta = getSurahMeta;
-/**
- *
- * @param {*} suraNumber
- * @param {*} ayaNumber
- */
-function findPage(surah, ayah, ayahMode) {
-    if (ayahMode === void 0) { ayahMode = false; }
-    var ayahId = ayahMode
-        ? (checkValidAyahId(ayah) && ayah)
-        : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
-    return pageList_1.PageList.findIndex(function (x) { return x > ayahId; }) - 1;
-}
-exports.findPage = findPage;
-/**
- *
- * @param {*} surah
- * @param {*} ayah```
- */
-function findAyaidBySurah(surah, ayah) {
-    var startAyahId = getSurahMeta(surah)[0];
-    return startAyahId + ayah;
-}
-exports.findAyaidBySurah = findAyaidBySurah;
-/**
- *
- * @param {*} surah
- */
-function getAyaCountinSura(surah) {
-    return getSurahMeta(surah)[1];
-}
-exports.getAyaCountinSura = getAyaCountinSura;
-/**
- *
- * @param {*} surah
- * @param {*} ayah
- */
-function nextAyah(surah, ayah) {
-    if (surah < 1 || surah > const_1.meta.numSuras)
-        throw new RangeError("Surah must be between 1 and " + const_1.meta.numSuras);
-    var ayaid = findAyaidBySurah(surah, ayah);
-    return findSurahByAyaid(ayaid == const_1.meta.numAyas ? 1 : ayaid + 1);
-}
-exports.nextAyah = nextAyah;
-/**
- *
- * @param {*} surah
- * @param {*} ayah
- */
-function prevAyah(surah, ayah) {
-    checkValidSurah(surah);
-    var ayaid = findAyaidBySurah(surah, ayah);
-    return findSurahByAyaid(ayaid == 1 ? const_1.meta.numAyas : ayaid - 1);
-}
-exports.prevAyah = prevAyah;
-/**
- * Get the meta, first and last ayahs of the page
- * @param {*} pageNum
- */
-function pageMeta(pageNum) {
-    // todo rename to getPageMeta in next major version
-    if (pageNum < 1 || pageNum > const_1.meta.numPages)
-        throw new RangeError("pagenum must be between 1 and " + const_1.meta.numPages);
-    var _a = [
-        pageList_1.PageList[pageNum],
-        pageList_1.PageList[pageNum + 1],
-    ], curPage = _a[0], nextPage = _a[1];
-    return {
-        pageNum: pageNum,
-        first: findSurahByAyaid(curPage),
-        last: __spreadArray([], findSurahByAyaid(nextPage - 1), true),
-    };
-}
-exports.pageMeta = pageMeta;
-/**
- * ALternative deprecated method
- * @param {*} pageNum
- */
-// export function pageMetaOld(pageNum: number): any {
-//   if (pageNum < 1 || pageNum > meta.numPages)
-//   throw new RangeError("pagenum must be between 1 and " + meta.numPages)
-//   const [curPage, nextPage] = [
-//     findSurahByAyaid(PageList[pageNum]),
-//     findSurahByAyaid(PageList[pageNum + 1]),
-//   ]
-//   const [firstSurah, firstAyah, lastSurah, lastAyah] = [
-//     curPage[0],
-//     curPage[1],
-//     nextPage[1] === 1 ? nextPage[0] - 1 : nextPage[0],
-//     nextPage[1] === 1 ? SuraList[nextPage[0] - 1][1] : nextPage[1] - 1,
-//   ]
-//   return {
-//     pageNum,
-//     first: [firstSurah, firstAyah],
-//     last: [lastSurah, lastAyah],
-//   }
-// }
-/**
- * Find range containing ayah according to the mode
- * @param surah
- * @param ayah
- * @param {*} mode can be either 'all', 'juz', 'surah', 'ayah', 'page'
- * default is all
- */
-function findRangeAroundAyah(surah, ayah, mode, ayahMode) {
-    if (ayahMode === void 0) { ayahMode = false; }
-    var ayahId = ayahMode
-        ? ayah
-        : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
-    switch (mode) {
-        case "juz": {
-            var juz = findJuzByAyaid(ayahId);
-            return [JuzList[juz], JuzList[juz + 1] - 1];
-        }
-        case "surah": {
-            return [findAyaidBySurah(surah, 1), findAyaidBySurah(surah + 1, 1) - 1];
-        }
-        case "ayah": {
-            return [ayahId, ayahId];
-        }
-        case "page": {
-            var page = findPage(-1, ayahId, true);
-            return [pageList_1.PageList[page], pageList_1.PageList[page + 1] - 1];
-        }
-        case "all":
-        default:
-            return [1, const_1.meta.numAyas];
-    }
-}
-exports.findRangeAroundAyah = findRangeAroundAyah;
-//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/lib_cjs/index.js.map b/lib_cjs/index.js.map
deleted file mode 100644
index f1ae0f0..0000000
--- a/lib_cjs/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/lib_cjs/isAyahJuzFirst.cjs b/lib_cjs/isAyahJuzFirst.cjs
new file mode 100644
index 0000000..5332e57
--- /dev/null
+++ b/lib_cjs/isAyahJuzFirst.cjs
@@ -0,0 +1,14 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.isAyahJuzFirst = isAyahJuzFirst;
+var _findAyaidBySurah = require("./findAyaidBySurah.cjs");
+var _juzList = require("./lists/juzList.cjs");
+var _utils = require("./utils.cjs");
+var _validation = require("./validation.cjs");
+function isAyahJuzFirst(surah, ayah, ayahMode = false) {
+  const ayahId = ayahMode ? (0, _validation.checkValidAyahId)(ayah) && ayah : (0, _validation.checkValidSurah)(surah) && (0, _findAyaidBySurah.findAyaidBySurah)(surah, ayah);
+  return (0, _utils.binarySearch)(_juzList.JuzList, ayahId);
+}
\ No newline at end of file
diff --git a/lib_cjs/isAyahPageFirst.cjs b/lib_cjs/isAyahPageFirst.cjs
new file mode 100644
index 0000000..917a9e7
--- /dev/null
+++ b/lib_cjs/isAyahPageFirst.cjs
@@ -0,0 +1,14 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.isAyahPageFirst = isAyahPageFirst;
+var _findAyaidBySurah = require("./findAyaidBySurah.cjs");
+var _pageList = require("./lists/pageList.cjs");
+var _utils = require("./utils.cjs");
+var _validation = require("./validation.cjs");
+function isAyahPageFirst(surah, ayah, ayahMode = false) {
+  const ayahId = ayahMode ? (0, _validation.checkValidAyahId)(ayah) && ayah : (0, _validation.checkValidSurah)(surah) && (0, _findAyaidBySurah.findAyaidBySurah)(surah, ayah);
+  return (0, _utils.binarySearch)(_pageList.PageList, ayahId);
+}
\ No newline at end of file
diff --git a/lib_cjs/json/qdata-hizb.json b/lib_cjs/json/qdata-hizb.json
new file mode 100644
index 0000000..a0acf70
--- /dev/null
+++ b/lib_cjs/json/qdata-hizb.json
@@ -0,0 +1,244 @@
+[
+  [],
+  [1, 1],
+  [2, 26],
+  [2, 44],
+  [2, 60],
+  [2, 75],
+  [2, 92],
+  [2, 106],
+  [2, 124],
+  [2, 142],
+  [2, 158],
+  [2, 177],
+  [2, 189],
+  [2, 203],
+  [2, 219],
+  [2, 233],
+  [2, 243],
+  [2, 253],
+  [2, 263],
+  [2, 272],
+  [2, 283],
+  [3, 15],
+  [3, 33],
+  [3, 52],
+  [3, 75],
+  [3, 93],
+  [3, 113],
+  [3, 133],
+  [3, 153],
+  [3, 171],
+  [3, 186],
+  [4, 1],
+  [4, 12],
+  [4, 24],
+  [4, 36],
+  [4, 58],
+  [4, 74],
+  [4, 88],
+  [4, 100],
+  [4, 114],
+  [4, 135],
+  [4, 148],
+  [4, 163],
+  [5, 1],
+  [5, 12],
+  [5, 27],
+  [5, 41],
+  [5, 51],
+  [5, 67],
+  [5, 82],
+  [5, 97],
+  [5, 109],
+  [6, 13],
+  [6, 36],
+  [6, 59],
+  [6, 74],
+  [6, 95],
+  [6, 111],
+  [6, 127],
+  [6, 141],
+  [6, 151],
+  [7, 1],
+  [7, 31],
+  [7, 47],
+  [7, 65],
+  [7, 88],
+  [7, 117],
+  [7, 142],
+  [7, 156],
+  [7, 171],
+  [7, 189],
+  [8, 1],
+  [8, 22],
+  [8, 41],
+  [8, 61],
+  [9, 1],
+  [9, 19],
+  [9, 34],
+  [9, 46],
+  [9, 60],
+  [9, 75],
+  [9, 93],
+  [9, 111],
+  [9, 122],
+  [10, 11],
+  [10, 26],
+  [10, 53],
+  [10, 71],
+  [10, 90],
+  [11, 6],
+  [11, 24],
+  [11, 41],
+  [11, 61],
+  [11, 84],
+  [11, 108],
+  [12, 7],
+  [12, 30],
+  [12, 53],
+  [12, 77],
+  [12, 101],
+  [13, 5],
+  [13, 19],
+  [13, 35],
+  [14, 10],
+  [14, 28],
+  [15, 1],
+  [15, 50],
+  [16, 1],
+  [16, 30],
+  [16, 51],
+  [16, 75],
+  [16, 90],
+  [16, 111],
+  [17, 1],
+  [17, 23],
+  [17, 50],
+  [17, 70],
+  [17, 99],
+  [18, 17],
+  [18, 32],
+  [18, 51],
+  [18, 75],
+  [18, 99],
+  [19, 22],
+  [19, 59],
+  [20, 1],
+  [20, 55],
+  [20, 83],
+  [20, 111],
+  [21, 1],
+  [21, 29],
+  [21, 51],
+  [21, 83],
+  [22, 1],
+  [22, 19],
+  [22, 38],
+  [22, 60],
+  [23, 1],
+  [23, 36],
+  [23, 75],
+  [24, 1],
+  [24, 21],
+  [24, 35],
+  [24, 53],
+  [25, 1],
+  [25, 21],
+  [25, 53],
+  [26, 1],
+  [26, 52],
+  [26, 111],
+  [26, 181],
+  [27, 1],
+  [27, 27],
+  [27, 56],
+  [27, 82],
+  [28, 12],
+  [28, 29],
+  [28, 51],
+  [28, 76],
+  [29, 1],
+  [29, 26],
+  [29, 46],
+  [30, 1],
+  [30, 31],
+  [30, 54],
+  [31, 22],
+  [32, 11],
+  [33, 1],
+  [33, 18],
+  [33, 31],
+  [33, 51],
+  [33, 60],
+  [34, 10],
+  [34, 24],
+  [34, 46],
+  [35, 15],
+  [35, 41],
+  [36, 28],
+  [36, 60],
+  [37, 22],
+  [37, 83],
+  [37, 145],
+  [38, 21],
+  [38, 52],
+  [39, 8],
+  [39, 32],
+  [39, 53],
+  [40, 1],
+  [40, 21],
+  [40, 41],
+  [40, 66],
+  [41, 9],
+  [41, 25],
+  [41, 47],
+  [42, 13],
+  [42, 27],
+  [42, 51],
+  [43, 24],
+  [43, 57],
+  [44, 17],
+  [45, 12],
+  [46, 1],
+  [46, 21],
+  [47, 10],
+  [47, 33],
+  [48, 18],
+  [49, 1],
+  [49, 14],
+  [50, 27],
+  [51, 31],
+  [52, 24],
+  [53, 26],
+  [54, 9],
+  [55, 1],
+  [56, 1],
+  [56, 75],
+  [57, 16],
+  [58, 1],
+  [58, 14],
+  [59, 11],
+  [60, 7],
+  [62, 1],
+  [63, 4],
+  [65, 1],
+  [66, 1],
+  [67, 1],
+  [68, 1],
+  [69, 1],
+  [70, 19],
+  [72, 1],
+  [73, 20],
+  [75, 1],
+  [76, 19],
+  [78, 1],
+  [80, 1],
+  [82, 1],
+  [84, 1],
+  [87, 1],
+  [90, 1],
+  [94, 1],
+  [100, 9],
+  [115, 1]
+]
diff --git a/lib_cjs/json/qdata-page.json b/lib_cjs/json/qdata-page.json
new file mode 100644
index 0000000..c1ac363
--- /dev/null
+++ b/lib_cjs/json/qdata-page.json
@@ -0,0 +1,608 @@
+[
+  [0, 0],
+  [1, 1],
+  [2, 1],
+  [2, 6],
+  [2, 17],
+  [2, 25],
+  [2, 30],
+  [2, 38],
+  [2, 49],
+  [2, 58],
+  [2, 62],
+  [2, 70],
+  [2, 77],
+  [2, 84],
+  [2, 89],
+  [2, 94],
+  [2, 102],
+  [2, 106],
+  [2, 113],
+  [2, 120],
+  [2, 127],
+  [2, 135],
+  [2, 142],
+  [2, 146],
+  [2, 154],
+  [2, 164],
+  [2, 170],
+  [2, 177],
+  [2, 182],
+  [2, 187],
+  [2, 191],
+  [2, 197],
+  [2, 203],
+  [2, 211],
+  [2, 216],
+  [2, 220],
+  [2, 225],
+  [2, 231],
+  [2, 234],
+  [2, 238],
+  [2, 246],
+  [2, 249],
+  [2, 253],
+  [2, 257],
+  [2, 260],
+  [2, 265],
+  [2, 270],
+  [2, 275],
+  [2, 282],
+  [2, 283],
+  [3, 1],
+  [3, 10],
+  [3, 16],
+  [3, 23],
+  [3, 30],
+  [3, 38],
+  [3, 46],
+  [3, 53],
+  [3, 62],
+  [3, 71],
+  [3, 78],
+  [3, 84],
+  [3, 92],
+  [3, 101],
+  [3, 109],
+  [3, 116],
+  [3, 122],
+  [3, 133],
+  [3, 141],
+  [3, 149],
+  [3, 154],
+  [3, 158],
+  [3, 166],
+  [3, 174],
+  [3, 181],
+  [3, 187],
+  [3, 195],
+  [4, 1],
+  [4, 7],
+  [4, 12],
+  [4, 15],
+  [4, 20],
+  [4, 24],
+  [4, 27],
+  [4, 34],
+  [4, 38],
+  [4, 45],
+  [4, 52],
+  [4, 60],
+  [4, 66],
+  [4, 75],
+  [4, 80],
+  [4, 87],
+  [4, 92],
+  [4, 95],
+  [4, 102],
+  [4, 106],
+  [4, 114],
+  [4, 122],
+  [4, 128],
+  [4, 135],
+  [4, 141],
+  [4, 148],
+  [4, 155],
+  [4, 163],
+  [4, 171],
+  [4, 176],
+  [5, 3],
+  [5, 6],
+  [5, 10],
+  [5, 14],
+  [5, 18],
+  [5, 24],
+  [5, 32],
+  [5, 37],
+  [5, 42],
+  [5, 46],
+  [5, 51],
+  [5, 58],
+  [5, 65],
+  [5, 71],
+  [5, 77],
+  [5, 83],
+  [5, 90],
+  [5, 96],
+  [5, 104],
+  [5, 109],
+  [5, 114],
+  [6, 1],
+  [6, 9],
+  [6, 19],
+  [6, 28],
+  [6, 36],
+  [6, 45],
+  [6, 53],
+  [6, 60],
+  [6, 69],
+  [6, 74],
+  [6, 82],
+  [6, 91],
+  [6, 95],
+  [6, 102],
+  [6, 111],
+  [6, 119],
+  [6, 125],
+  [6, 132],
+  [6, 138],
+  [6, 143],
+  [6, 147],
+  [6, 152],
+  [6, 158],
+  [7, 1],
+  [7, 12],
+  [7, 23],
+  [7, 31],
+  [7, 38],
+  [7, 44],
+  [7, 52],
+  [7, 58],
+  [7, 68],
+  [7, 74],
+  [7, 82],
+  [7, 88],
+  [7, 96],
+  [7, 105],
+  [7, 121],
+  [7, 131],
+  [7, 138],
+  [7, 144],
+  [7, 150],
+  [7, 156],
+  [7, 160],
+  [7, 164],
+  [7, 171],
+  [7, 179],
+  [7, 188],
+  [7, 196],
+  [8, 1],
+  [8, 9],
+  [8, 17],
+  [8, 26],
+  [8, 34],
+  [8, 41],
+  [8, 46],
+  [8, 53],
+  [8, 62],
+  [8, 70],
+  [9, 1],
+  [9, 7],
+  [9, 14],
+  [9, 21],
+  [9, 27],
+  [9, 32],
+  [9, 37],
+  [9, 41],
+  [9, 48],
+  [9, 55],
+  [9, 62],
+  [9, 69],
+  [9, 73],
+  [9, 80],
+  [9, 87],
+  [9, 94],
+  [9, 100],
+  [9, 107],
+  [9, 112],
+  [9, 118],
+  [9, 123],
+  [10, 1],
+  [10, 7],
+  [10, 15],
+  [10, 21],
+  [10, 26],
+  [10, 34],
+  [10, 43],
+  [10, 54],
+  [10, 62],
+  [10, 71],
+  [10, 79],
+  [10, 89],
+  [10, 98],
+  [10, 107],
+  [11, 6],
+  [11, 13],
+  [11, 20],
+  [11, 29],
+  [11, 38],
+  [11, 46],
+  [11, 54],
+  [11, 63],
+  [11, 72],
+  [11, 82],
+  [11, 89],
+  [11, 98],
+  [11, 109],
+  [11, 118],
+  [12, 5],
+  [12, 15],
+  [12, 23],
+  [12, 31],
+  [12, 38],
+  [12, 44],
+  [12, 53],
+  [12, 64],
+  [12, 70],
+  [12, 79],
+  [12, 87],
+  [12, 96],
+  [12, 104],
+  [13, 1],
+  [13, 6],
+  [13, 14],
+  [13, 19],
+  [13, 29],
+  [13, 35],
+  [13, 43],
+  [14, 6],
+  [14, 11],
+  [14, 19],
+  [14, 25],
+  [14, 34],
+  [14, 43],
+  [15, 1],
+  [15, 16],
+  [15, 32],
+  [15, 52],
+  [15, 71],
+  [15, 91],
+  [16, 7],
+  [16, 15],
+  [16, 27],
+  [16, 35],
+  [16, 43],
+  [16, 55],
+  [16, 65],
+  [16, 73],
+  [16, 80],
+  [16, 88],
+  [16, 94],
+  [16, 103],
+  [16, 111],
+  [16, 119],
+  [17, 1],
+  [17, 8],
+  [17, 18],
+  [17, 28],
+  [17, 39],
+  [17, 50],
+  [17, 59],
+  [17, 67],
+  [17, 76],
+  [17, 87],
+  [17, 97],
+  [17, 105],
+  [18, 5],
+  [18, 16],
+  [18, 21],
+  [18, 28],
+  [18, 35],
+  [18, 46],
+  [18, 54],
+  [18, 62],
+  [18, 75],
+  [18, 84],
+  [18, 98],
+  [19, 1],
+  [19, 12],
+  [19, 26],
+  [19, 39],
+  [19, 52],
+  [19, 65],
+  [19, 77],
+  [19, 96],
+  [20, 13],
+  [20, 38],
+  [20, 52],
+  [20, 65],
+  [20, 77],
+  [20, 88],
+  [20, 99],
+  [20, 114],
+  [20, 126],
+  [21, 1],
+  [21, 11],
+  [21, 25],
+  [21, 36],
+  [21, 45],
+  [21, 58],
+  [21, 73],
+  [21, 82],
+  [21, 91],
+  [21, 102],
+  [22, 1],
+  [22, 6],
+  [22, 16],
+  [22, 24],
+  [22, 31],
+  [22, 39],
+  [22, 47],
+  [22, 56],
+  [22, 65],
+  [22, 73],
+  [23, 1],
+  [23, 18],
+  [23, 28],
+  [23, 43],
+  [23, 60],
+  [23, 75],
+  [23, 90],
+  [23, 105],
+  [24, 1],
+  [24, 11],
+  [24, 21],
+  [24, 28],
+  [24, 32],
+  [24, 37],
+  [24, 44],
+  [24, 54],
+  [24, 59],
+  [24, 62],
+  [25, 3],
+  [25, 12],
+  [25, 21],
+  [25, 33],
+  [25, 44],
+  [25, 56],
+  [25, 68],
+  [26, 1],
+  [26, 20],
+  [26, 40],
+  [26, 61],
+  [26, 84],
+  [26, 112],
+  [26, 137],
+  [26, 160],
+  [26, 184],
+  [26, 207],
+  [27, 1],
+  [27, 14],
+  [27, 23],
+  [27, 36],
+  [27, 45],
+  [27, 56],
+  [27, 64],
+  [27, 77],
+  [27, 89],
+  [28, 6],
+  [28, 14],
+  [28, 22],
+  [28, 29],
+  [28, 36],
+  [28, 44],
+  [28, 51],
+  [28, 60],
+  [28, 71],
+  [28, 78],
+  [28, 85],
+  [29, 7],
+  [29, 15],
+  [29, 24],
+  [29, 31],
+  [29, 39],
+  [29, 46],
+  [29, 53],
+  [29, 64],
+  [30, 6],
+  [30, 16],
+  [30, 25],
+  [30, 33],
+  [30, 42],
+  [30, 51],
+  [31, 1],
+  [31, 12],
+  [31, 20],
+  [31, 29],
+  [32, 1],
+  [32, 12],
+  [32, 21],
+  [33, 1],
+  [33, 7],
+  [33, 16],
+  [33, 23],
+  [33, 31],
+  [33, 36],
+  [33, 44],
+  [33, 51],
+  [33, 55],
+  [33, 63],
+  [34, 1],
+  [34, 8],
+  [34, 15],
+  [34, 23],
+  [34, 32],
+  [34, 40],
+  [34, 49],
+  [35, 4],
+  [35, 12],
+  [35, 19],
+  [35, 31],
+  [35, 39],
+  [35, 45],
+  [36, 13],
+  [36, 28],
+  [36, 41],
+  [36, 55],
+  [36, 71],
+  [37, 1],
+  [37, 25],
+  [37, 52],
+  [37, 77],
+  [37, 103],
+  [37, 127],
+  [37, 154],
+  [38, 1],
+  [38, 17],
+  [38, 27],
+  [38, 43],
+  [38, 62],
+  [38, 84],
+  [39, 6],
+  [39, 11],
+  [39, 22],
+  [39, 32],
+  [39, 41],
+  [39, 48],
+  [39, 57],
+  [39, 68],
+  [39, 75],
+  [40, 8],
+  [40, 17],
+  [40, 26],
+  [40, 34],
+  [40, 41],
+  [40, 50],
+  [40, 59],
+  [40, 67],
+  [40, 78],
+  [41, 1],
+  [41, 12],
+  [41, 21],
+  [41, 30],
+  [41, 39],
+  [41, 47],
+  [42, 1],
+  [42, 11],
+  [42, 16],
+  [42, 23],
+  [42, 32],
+  [42, 45],
+  [42, 52],
+  [43, 11],
+  [43, 23],
+  [43, 34],
+  [43, 48],
+  [43, 61],
+  [43, 74],
+  [44, 1],
+  [44, 19],
+  [44, 40],
+  [45, 1],
+  [45, 14],
+  [45, 23],
+  [45, 33],
+  [46, 6],
+  [46, 15],
+  [46, 21],
+  [46, 29],
+  [47, 1],
+  [47, 12],
+  [47, 20],
+  [47, 30],
+  [48, 1],
+  [48, 10],
+  [48, 16],
+  [48, 24],
+  [48, 29],
+  [49, 5],
+  [49, 12],
+  [50, 1],
+  [50, 16],
+  [50, 36],
+  [51, 7],
+  [51, 31],
+  [51, 52],
+  [52, 15],
+  [52, 32],
+  [53, 1],
+  [53, 27],
+  [53, 45],
+  [54, 7],
+  [54, 28],
+  [54, 50],
+  [55, 17],
+  [55, 41],
+  [55, 68],
+  [56, 17],
+  [56, 51],
+  [56, 77],
+  [57, 4],
+  [57, 12],
+  [57, 19],
+  [57, 25],
+  [58, 1],
+  [58, 7],
+  [58, 12],
+  [58, 22],
+  [59, 4],
+  [59, 10],
+  [59, 17],
+  [60, 1],
+  [60, 6],
+  [60, 12],
+  [61, 6],
+  [62, 1],
+  [62, 9],
+  [63, 5],
+  [64, 1],
+  [64, 10],
+  [65, 1],
+  [65, 6],
+  [66, 1],
+  [66, 8],
+  [67, 1],
+  [67, 13],
+  [67, 27],
+  [68, 16],
+  [68, 43],
+  [69, 9],
+  [69, 35],
+  [70, 11],
+  [70, 40],
+  [71, 11],
+  [72, 1],
+  [72, 14],
+  [73, 1],
+  [73, 20],
+  [74, 18],
+  [74, 48],
+  [75, 20],
+  [76, 6],
+  [76, 26],
+  [77, 20],
+  [78, 1],
+  [78, 31],
+  [79, 16],
+  [80, 1],
+  [81, 1],
+  [82, 1],
+  [83, 7],
+  [83, 35],
+  [85, 1],
+  [86, 1],
+  [87, 16],
+  [89, 1],
+  [89, 24],
+  [91, 1],
+  [92, 15],
+  [95, 1],
+  [97, 1],
+  [98, 8],
+  [100, 10],
+  [103, 1],
+  [106, 1],
+  [109, 1],
+  [112, 1],
+  [115, 1]
+]
diff --git a/lib_cjs/json/qdata-ruku.json b/lib_cjs/json/qdata-ruku.json
new file mode 100644
index 0000000..0665163
--- /dev/null
+++ b/lib_cjs/json/qdata-ruku.json
@@ -0,0 +1,559 @@
+[
+  [],
+  [1, 1],
+  [2, 1],
+  [2, 8],
+  [2, 21],
+  [2, 30],
+  [2, 40],
+  [2, 47],
+  [2, 60],
+  [2, 62],
+  [2, 72],
+  [2, 83],
+  [2, 87],
+  [2, 97],
+  [2, 104],
+  [2, 113],
+  [2, 122],
+  [2, 130],
+  [2, 142],
+  [2, 148],
+  [2, 153],
+  [2, 164],
+  [2, 168],
+  [2, 177],
+  [2, 183],
+  [2, 189],
+  [2, 197],
+  [2, 211],
+  [2, 217],
+  [2, 222],
+  [2, 229],
+  [2, 232],
+  [2, 236],
+  [2, 243],
+  [2, 249],
+  [2, 254],
+  [2, 258],
+  [2, 261],
+  [2, 267],
+  [2, 274],
+  [2, 282],
+  [2, 284],
+  [3, 1],
+  [3, 10],
+  [3, 21],
+  [3, 31],
+  [3, 42],
+  [3, 55],
+  [3, 64],
+  [3, 72],
+  [3, 81],
+  [3, 92],
+  [3, 102],
+  [3, 110],
+  [3, 121],
+  [3, 130],
+  [3, 144],
+  [3, 149],
+  [3, 156],
+  [3, 172],
+  [3, 181],
+  [3, 190],
+  [4, 1],
+  [4, 11],
+  [4, 15],
+  [4, 23],
+  [4, 26],
+  [4, 34],
+  [4, 43],
+  [4, 51],
+  [4, 60],
+  [4, 71],
+  [4, 77],
+  [4, 88],
+  [4, 92],
+  [4, 97],
+  [4, 101],
+  [4, 105],
+  [4, 113],
+  [4, 116],
+  [4, 127],
+  [4, 135],
+  [4, 142],
+  [4, 153],
+  [4, 163],
+  [4, 172],
+  [5, 1],
+  [5, 6],
+  [5, 12],
+  [5, 20],
+  [5, 27],
+  [5, 35],
+  [5, 44],
+  [5, 51],
+  [5, 57],
+  [5, 67],
+  [5, 78],
+  [5, 87],
+  [5, 94],
+  [5, 101],
+  [5, 109],
+  [5, 116],
+  [6, 1],
+  [6, 11],
+  [6, 21],
+  [6, 31],
+  [6, 42],
+  [6, 51],
+  [6, 56],
+  [6, 61],
+  [6, 71],
+  [6, 83],
+  [6, 91],
+  [6, 95],
+  [6, 101],
+  [6, 111],
+  [6, 122],
+  [6, 130],
+  [6, 141],
+  [6, 145],
+  [6, 151],
+  [6, 155],
+  [7, 1],
+  [7, 11],
+  [7, 26],
+  [7, 32],
+  [7, 40],
+  [7, 48],
+  [7, 54],
+  [7, 59],
+  [7, 65],
+  [7, 73],
+  [7, 85],
+  [7, 94],
+  [7, 100],
+  [7, 109],
+  [7, 127],
+  [7, 130],
+  [7, 142],
+  [7, 148],
+  [7, 152],
+  [7, 158],
+  [7, 163],
+  [7, 172],
+  [7, 182],
+  [7, 189],
+  [8, 1],
+  [8, 11],
+  [8, 20],
+  [8, 29],
+  [8, 38],
+  [8, 45],
+  [8, 49],
+  [8, 59],
+  [8, 65],
+  [8, 70],
+  [9, 1],
+  [9, 7],
+  [9, 17],
+  [9, 25],
+  [9, 30],
+  [9, 38],
+  [9, 43],
+  [9, 60],
+  [9, 67],
+  [9, 73],
+  [9, 81],
+  [9, 90],
+  [9, 100],
+  [9, 111],
+  [9, 119],
+  [9, 123],
+  [10, 1],
+  [10, 11],
+  [10, 21],
+  [10, 31],
+  [10, 41],
+  [10, 54],
+  [10, 61],
+  [10, 71],
+  [10, 83],
+  [10, 93],
+  [10, 104],
+  [11, 1],
+  [11, 9],
+  [11, 25],
+  [11, 36],
+  [11, 50],
+  [11, 61],
+  [11, 69],
+  [11, 84],
+  [11, 96],
+  [11, 110],
+  [12, 1],
+  [12, 7],
+  [12, 21],
+  [12, 30],
+  [12, 36],
+  [12, 43],
+  [12, 50],
+  [12, 58],
+  [12, 69],
+  [12, 80],
+  [12, 94],
+  [12, 105],
+  [13, 1],
+  [13, 8],
+  [13, 19],
+  [13, 27],
+  [13, 32],
+  [13, 38],
+  [14, 1],
+  [14, 7],
+  [14, 13],
+  [14, 22],
+  [14, 28],
+  [14, 35],
+  [14, 42],
+  [15, 1],
+  [15, 16],
+  [15, 26],
+  [15, 45],
+  [15, 61],
+  [15, 80],
+  [16, 1],
+  [16, 10],
+  [16, 22],
+  [16, 26],
+  [16, 35],
+  [16, 41],
+  [16, 51],
+  [16, 61],
+  [16, 66],
+  [16, 71],
+  [16, 77],
+  [16, 84],
+  [16, 90],
+  [16, 101],
+  [16, 111],
+  [16, 120],
+  [17, 1],
+  [17, 11],
+  [17, 23],
+  [17, 31],
+  [17, 41],
+  [17, 53],
+  [17, 61],
+  [17, 71],
+  [17, 78],
+  [17, 85],
+  [17, 94],
+  [17, 101],
+  [18, 1],
+  [18, 13],
+  [18, 18],
+  [18, 23],
+  [18, 32],
+  [18, 45],
+  [18, 50],
+  [18, 54],
+  [18, 60],
+  [18, 71],
+  [18, 83],
+  [18, 102],
+  [19, 1],
+  [19, 16],
+  [19, 41],
+  [19, 51],
+  [19, 66],
+  [19, 83],
+  [20, 1],
+  [20, 25],
+  [20, 55],
+  [20, 77],
+  [20, 90],
+  [20, 105],
+  [20, 116],
+  [20, 129],
+  [21, 1],
+  [21, 11],
+  [21, 30],
+  [21, 42],
+  [21, 51],
+  [21, 76],
+  [21, 94],
+  [22, 1],
+  [22, 11],
+  [22, 23],
+  [22, 26],
+  [22, 34],
+  [22, 39],
+  [22, 49],
+  [22, 58],
+  [22, 65],
+  [22, 73],
+  [23, 1],
+  [23, 23],
+  [23, 33],
+  [23, 51],
+  [23, 78],
+  [23, 93],
+  [24, 1],
+  [24, 11],
+  [24, 21],
+  [24, 27],
+  [24, 35],
+  [24, 41],
+  [24, 51],
+  [24, 58],
+  [24, 62],
+  [25, 1],
+  [25, 10],
+  [25, 21],
+  [25, 35],
+  [25, 45],
+  [25, 61],
+  [26, 1],
+  [26, 10],
+  [26, 34],
+  [26, 53],
+  [26, 70],
+  [26, 105],
+  [26, 123],
+  [26, 141],
+  [26, 160],
+  [26, 176],
+  [26, 192],
+  [27, 1],
+  [27, 15],
+  [27, 32],
+  [27, 45],
+  [27, 59],
+  [27, 67],
+  [27, 83],
+  [28, 1],
+  [28, 14],
+  [28, 22],
+  [28, 29],
+  [28, 43],
+  [28, 51],
+  [28, 61],
+  [28, 76],
+  [29, 1],
+  [29, 14],
+  [29, 23],
+  [29, 31],
+  [29, 45],
+  [29, 52],
+  [29, 64],
+  [30, 1],
+  [30, 11],
+  [30, 20],
+  [30, 28],
+  [30, 41],
+  [30, 54],
+  [31, 1],
+  [31, 12],
+  [31, 20],
+  [32, 1],
+  [32, 12],
+  [32, 23],
+  [33, 1],
+  [33, 9],
+  [33, 21],
+  [33, 28],
+  [33, 35],
+  [33, 41],
+  [33, 53],
+  [33, 59],
+  [33, 69],
+  [34, 1],
+  [34, 10],
+  [34, 22],
+  [34, 31],
+  [34, 37],
+  [34, 46],
+  [35, 1],
+  [35, 8],
+  [35, 15],
+  [35, 27],
+  [35, 38],
+  [36, 1],
+  [36, 13],
+  [36, 33],
+  [36, 51],
+  [36, 68],
+  [37, 1],
+  [37, 22],
+  [37, 75],
+  [37, 114],
+  [37, 139],
+  [38, 1],
+  [38, 15],
+  [38, 27],
+  [38, 41],
+  [38, 65],
+  [39, 1],
+  [39, 10],
+  [39, 22],
+  [39, 32],
+  [39, 42],
+  [39, 53],
+  [39, 64],
+  [39, 71],
+  [40, 1],
+  [40, 10],
+  [40, 21],
+  [40, 28],
+  [40, 38],
+  [40, 51],
+  [40, 61],
+  [40, 69],
+  [40, 79],
+  [41, 1],
+  [41, 9],
+  [41, 19],
+  [41, 26],
+  [41, 33],
+  [41, 45],
+  [42, 1],
+  [42, 10],
+  [42, 20],
+  [42, 30],
+  [42, 44],
+  [43, 1],
+  [43, 16],
+  [43, 26],
+  [43, 36],
+  [43, 46],
+  [43, 57],
+  [43, 68],
+  [44, 1],
+  [44, 30],
+  [44, 43],
+  [45, 1],
+  [45, 12],
+  [45, 22],
+  [45, 27],
+  [46, 1],
+  [46, 11],
+  [46, 21],
+  [46, 27],
+  [47, 1],
+  [47, 12],
+  [47, 20],
+  [47, 29],
+  [48, 1],
+  [48, 11],
+  [48, 18],
+  [48, 27],
+  [49, 1],
+  [49, 11],
+  [50, 1],
+  [50, 16],
+  [50, 30],
+  [51, 1],
+  [51, 24],
+  [51, 47],
+  [52, 1],
+  [52, 29],
+  [53, 1],
+  [53, 26],
+  [53, 33],
+  [54, 1],
+  [54, 23],
+  [54, 41],
+  [55, 1],
+  [55, 26],
+  [55, 46],
+  [56, 1],
+  [56, 39],
+  [56, 75],
+  [57, 1],
+  [57, 11],
+  [57, 20],
+  [57, 26],
+  [58, 1],
+  [58, 7],
+  [58, 14],
+  [59, 1],
+  [59, 11],
+  [59, 18],
+  [60, 1],
+  [60, 7],
+  [61, 1],
+  [61, 10],
+  [62, 1],
+  [62, 9],
+  [63, 1],
+  [63, 9],
+  [64, 1],
+  [64, 11],
+  [65, 1],
+  [65, 8],
+  [66, 1],
+  [66, 8],
+  [67, 1],
+  [67, 15],
+  [68, 1],
+  [68, 34],
+  [69, 1],
+  [69, 38],
+  [70, 1],
+  [70, 36],
+  [71, 1],
+  [71, 21],
+  [72, 1],
+  [72, 20],
+  [73, 1],
+  [73, 20],
+  [74, 1],
+  [74, 32],
+  [75, 1],
+  [75, 31],
+  [76, 1],
+  [76, 23],
+  [77, 1],
+  [77, 41],
+  [78, 1],
+  [78, 31],
+  [79, 1],
+  [79, 27],
+  [80, 1],
+  [81, 1],
+  [82, 1],
+  [83, 1],
+  [84, 1],
+  [85, 1],
+  [86, 1],
+  [87, 1],
+  [88, 1],
+  [89, 1],
+  [90, 1],
+  [91, 1],
+  [92, 1],
+  [93, 1],
+  [94, 1],
+  [95, 1],
+  [96, 1],
+  [97, 1],
+  [98, 1],
+  [99, 1],
+  [100, 1],
+  [101, 1],
+  [102, 1],
+  [103, 1],
+  [104, 1],
+  [105, 1],
+  [106, 1],
+  [107, 1],
+  [108, 1],
+  [109, 1],
+  [110, 1],
+  [111, 1],
+  [112, 1],
+  [113, 1],
+  [114, 1]
+]
diff --git a/lib_cjs/json/qdata-surah.json b/lib_cjs/json/qdata-surah.json
new file mode 100644
index 0000000..d27a8f7
--- /dev/null
+++ b/lib_cjs/json/qdata-surah.json
@@ -0,0 +1,118 @@
+[
+  [],
+  [0, 7, 5, 1, "الفاتحة", true, 1],
+  [7, 286, 87, 40, "البقرة", false, 2],
+  [293, 200, 89, 20, "آل عمران", false, 50],
+  [493, 176, 92, 24, "النساء", false, 77],
+  [669, 120, 112, 16, "المائدة", false, 107],
+  [789, 165, 55, 20, "الأنعام", true, 128],
+  [954, 206, 39, 24, "الأعراف", true, 151],
+  [1160, 75, 88, 10, "الأنفال", false, 177],
+  [1235, 129, 113, 16, "التوبة", false, 187],
+  [1364, 109, 51, 11, "يونس", true, 208],
+  [1473, 123, 52, 10, "هود", true, 222],
+  [1596, 111, 53, 12, "يوسف", true, 236],
+  [1707, 43, 96, 6, "الرعد", false, 249],
+  [1750, 52, 72, 7, "ابراهيم", true, 256],
+  [1802, 99, 54, 6, "الحجر", true, 262],
+  [1901, 128, 70, 16, "النحل", true, 268],
+  [2029, 111, 50, 12, "الإسراء", true, 282],
+  [2140, 110, 69, 12, "الكهف", true, 294],
+  [2250, 98, 44, 6, "مريم", true, 305],
+  [2348, 135, 45, 8, "طه", true, 313],
+  [2483, 112, 73, 7, "الأنبياء", true, 322],
+  [2595, 78, 103, 10, "الحج", false, 332],
+  [2673, 118, 74, 6, "المؤمنون", true, 342],
+  [2791, 64, 102, 9, "النور", false, 350],
+  [2855, 77, 42, 6, "الفرقان", true, 360],
+  [2932, 227, 47, 11, "الشعراء", true, 367],
+  [3159, 93, 48, 7, "النمل", true, 377],
+  [3252, 88, 49, 8, "القصص", true, 386],
+  [3340, 69, 85, 7, "العنكبوت", true, 397],
+  [3409, 60, 84, 6, "الروم", true, 405],
+  [3469, 34, 57, 3, "لقمان", true, 411],
+  [3503, 30, 75, 3, "السجدة", true, 415],
+  [3533, 73, 90, 9, "الأحزاب", false, 418],
+  [3606, 54, 58, 6, "سبإ", true, 428],
+  [3660, 45, 43, 5, "فاطر", true, 435],
+  [3705, 83, 41, 5, "يس", true, 441],
+  [3788, 182, 56, 5, "الصافات", true, 446],
+  [3970, 88, 38, 5, "ص", true, 453],
+  [4058, 75, 59, 8, "الزمر", true, 459],
+  [4133, 85, 60, 9, "غافر", true, 468],
+  [4218, 54, 61, 6, "فصلت", true, 477],
+  [4272, 53, 62, 5, "الشورى", true, 483],
+  [4325, 89, 63, 7, "الزخرف", true, 490],
+  [4414, 59, 64, 3, "الدخان", true, 496],
+  [4473, 37, 65, 4, "الجاثية", true, 499],
+  [4510, 35, 66, 4, "الأحقاف", true, 503],
+  [4545, 38, 95, 4, "محمد", false, 507],
+  [4583, 29, 111, 4, "الفتح", false, 511],
+  [4612, 18, 106, 2, "الحجرات", false, 516],
+  [4630, 45, 34, 3, "ق", true, 518],
+  [4675, 60, 67, 3, "الذاريات", true, 521],
+  [4735, 49, 76, 2, "الطور", true, 524],
+  [4784, 62, 23, 3, "النجم", true, 526],
+  [4846, 55, 37, 3, "القمر", true, 529],
+  [4901, 78, 97, 3, "الرحمن", false, 532],
+  [4979, 96, 46, 3, "الواقعة", true, 535],
+  [5075, 29, 94, 4, "الحديد", false, 538],
+  [5104, 22, 105, 3, "المجادلة", false, 542],
+  [5126, 24, 101, 3, "الحشر", false, 546],
+  [5150, 13, 91, 2, "الممتحنة", false, 549],
+  [5163, 14, 109, 2, "الصف", false, 552],
+  [5177, 11, 110, 2, "الجمعة", false, 553],
+  [5188, 11, 104, 2, "المنافقون", false, 555],
+  [5199, 18, 108, 2, "التغابن", false, 556],
+  [5217, 12, 99, 2, "الطلاق", false, 558],
+  [5229, 12, 107, 2, "التحريم", false, 560],
+  [5241, 30, 77, 2, "الملك", true, 562],
+  [5271, 52, 2, 2, "القلم", true, 565],
+  [5323, 52, 78, 2, "الحاقة", true, 567],
+  [5375, 44, 79, 2, "المعارج", true, 569],
+  [5419, 28, 71, 2, "نوح", true, 571],
+  [5447, 28, 40, 2, "الجن", true, 572],
+  [5475, 20, 3, 2, "المزمل", true, 574],
+  [5495, 56, 4, 2, "المدثر", true, 576],
+  [5551, 40, 31, 2, "القيامة", true, 578],
+  [5591, 31, 98, 2, "الانسان", false, 579],
+  [5622, 50, 33, 2, "المرسلات", true, 581],
+  [5672, 40, 80, 2, "النبإ", true, 582],
+  [5712, 46, 81, 2, "النازعات", true, 584],
+  [5758, 42, 24, 1, "عبس", true, 585],
+  [5800, 29, 7, 1, "التكوير", true, 586],
+  [5829, 19, 82, 1, "الإنفطار", true, 587],
+  [5848, 36, 86, 1, "المطففين", true, 588],
+  [5884, 25, 83, 1, "الإنشقاق", true, 589],
+  [5909, 22, 27, 1, "البروج", true, 590],
+  [5931, 17, 36, 1, "الطارق", true, 591],
+  [5948, 19, 8, 1, "الأعلى", true, 592],
+  [5967, 26, 68, 1, "الغاشية", true, 592],
+  [5993, 30, 10, 1, "الفجر", true, 593],
+  [6023, 20, 35, 1, "البلد", true, 594],
+  [6043, 15, 26, 1, "الشمس", true, 595],
+  [6058, 21, 9, 1, "الليل", true, 596],
+  [6079, 11, 11, 1, "الضحى", true, 596],
+  [6090, 8, 12, 1, "الشرح", true, 596],
+  [6098, 8, 28, 1, "التين", true, 597],
+  [6106, 19, 1, 1, "العلق", true, 597],
+  [6125, 5, 25, 1, "القدر", true, 598],
+  [6130, 8, 100, 1, "البينة", false, 599],
+  [6138, 8, 93, 1, "الزلزلة", false, 599],
+  [6146, 11, 14, 1, "العاديات", true, 600],
+  [6157, 11, 30, 1, "القارعة", true, 600],
+  [6168, 8, 16, 1, "التكاثر", true, 600],
+  [6176, 3, 13, 1, "العصر", true, 601],
+  [6179, 9, 32, 1, "الهمزة", true, 601],
+  [6188, 5, 19, 1, "الفيل", true, 601],
+  [6193, 4, 29, 1, "قريش", true, 602],
+  [6197, 7, 17, 1, "الماعون", true, 602],
+  [6204, 3, 15, 1, "الكوثر", true, 602],
+  [6207, 6, 18, 1, "الكافرون", true, 603],
+  [6213, 3, 114, 1, "النصر", false, 603],
+  [6216, 5, 6, 1, "المسد", true, 603],
+  [6221, 4, 22, 1, "الإخلاص", true, 604],
+  [6225, 5, 20, 1, "الفلق", true, 604],
+  [6230, 6, 21, 1, "الناس", true, 604],
+  [6236, 0]
+]
diff --git a/lib_cjs/lists/hizbList.cjs b/lib_cjs/lists/hizbList.cjs
new file mode 100644
index 0000000..41c5926
--- /dev/null
+++ b/lib_cjs/lists/hizbList.cjs
@@ -0,0 +1,7 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.HizbQuarterList = void 0;
+const HizbQuarterList = exports.HizbQuarterList = [0, 1, 33, 51, 67, 82, 99, 113, 131, 149, 165, 184, 196, 210, 226, 240, 250, 260, 270, 279, 290, 308, 326, 345, 368, 386, 406, 426, 446, 464, 479, 494, 505, 517, 529, 551, 567, 581, 593, 607, 628, 641, 656, 670, 681, 696, 710, 720, 736, 751, 766, 778, 802, 825, 848, 863, 884, 900, 916, 930, 940, 955, 985, 1001, 1019, 1042, 1071, 1096, 1110, 1125, 1143, 1161, 1182, 1201, 1221, 1236, 1254, 1269, 1281, 1295, 1310, 1328, 1346, 1357, 1375, 1390, 1417, 1435, 1454, 1479, 1497, 1514, 1534, 1557, 1581, 1603, 1626, 1649, 1673, 1697, 1712, 1726, 1742, 1760, 1778, 1803, 1852, 1902, 1931, 1952, 1976, 1991, 2012, 2030, 2052, 2079, 2099, 2128, 2157, 2172, 2191, 2215, 2239, 2272, 2309, 2349, 2403, 2431, 2459, 2484, 2512, 2534, 2566, 2596, 2614, 2633, 2655, 2674, 2709, 2748, 2792, 2812, 2826, 2844, 2856, 2876, 2908, 2933, 2984, 3043, 3113, 3160, 3186, 3215, 3241, 3264, 3281, 3303, 3328, 3341, 3366, 3386, 3410, 3440, 3463, 3491, 3514, 3534, 3551, 3564, 3584, 3593, 3616, 3630, 3652, 3675, 3701, 3733, 3765, 3810, 3871, 3933, 3991, 4022, 4066, 4090, 4111, 4134, 4154, 4174, 4199, 4227, 4243, 4265, 4285, 4299, 4323, 4349, 4382, 4431, 4485, 4511, 4531, 4555, 4578, 4601, 4613, 4626, 4657, 4706, 4759, 4810, 4855, 4902, 4980, 5054, 5091, 5105, 5118, 5137, 5157, 5178, 5192, 5218, 5230, 5242, 5272, 5324, 5394, 5448, 5495, 5552, 5610, 5673, 5759, 5830, 5885, 5949, 6024, 6091, 6155, 6237];
\ No newline at end of file
diff --git a/lib_cjs/lists/juzList.cjs b/lib_cjs/lists/juzList.cjs
new file mode 100644
index 0000000..4943d0f
--- /dev/null
+++ b/lib_cjs/lists/juzList.cjs
@@ -0,0 +1,7 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.JuzList = void 0;
+const JuzList = exports.JuzList = [0, 1, 149, 260, 386, 517, 641, 751, 900, 1042, 1201, 1328, 1479, 1649, 1803, 2030, 2215, 2484, 2674, 2876, 3215, 3386, 3564, 3733, 4090, 4265, 4511, 4706, 5105, 5242, 5673, 6237];
\ No newline at end of file
diff --git a/lib_cjs/lists/manzilList.cjs b/lib_cjs/lists/manzilList.cjs
new file mode 100644
index 0000000..8b606d5
--- /dev/null
+++ b/lib_cjs/lists/manzilList.cjs
@@ -0,0 +1,7 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.ManzilList = void 0;
+const ManzilList = exports.ManzilList = [0, 1, 670, 1365, 2030, 2933, 3789, 4631, 6237];
\ No newline at end of file
diff --git a/lib_cjs/lists/pageList.cjs b/lib_cjs/lists/pageList.cjs
new file mode 100644
index 0000000..198942d
--- /dev/null
+++ b/lib_cjs/lists/pageList.cjs
@@ -0,0 +1,7 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.PageList = void 0;
+const PageList = exports.PageList = [0, 1, 8, 13, 24, 32, 37, 45, 56, 65, 69, 77, 84, 91, 96, 101, 109, 113, 120, 127, 134, 142, 149, 153, 161, 171, 177, 184, 189, 194, 198, 204, 210, 218, 223, 227, 232, 238, 241, 245, 253, 256, 260, 264, 267, 272, 277, 282, 289, 290, 294, 303, 309, 316, 323, 331, 339, 346, 355, 364, 371, 377, 385, 394, 402, 409, 415, 426, 434, 442, 447, 451, 459, 467, 474, 480, 488, 494, 500, 505, 508, 513, 517, 520, 527, 531, 538, 545, 553, 559, 568, 573, 580, 585, 588, 595, 599, 607, 615, 621, 628, 634, 641, 648, 656, 664, 669, 672, 675, 679, 683, 687, 693, 701, 706, 711, 715, 720, 727, 734, 740, 746, 752, 759, 765, 773, 778, 783, 790, 798, 808, 817, 825, 834, 842, 849, 858, 863, 871, 880, 884, 891, 900, 908, 914, 921, 927, 932, 936, 941, 947, 955, 966, 977, 985, 992, 998, 1006, 1012, 1022, 1028, 1036, 1042, 1050, 1059, 1075, 1085, 1092, 1098, 1104, 1110, 1114, 1118, 1125, 1133, 1142, 1150, 1161, 1169, 1177, 1186, 1194, 1201, 1206, 1213, 1222, 1230, 1236, 1242, 1249, 1256, 1262, 1267, 1272, 1276, 1283, 1290, 1297, 1304, 1308, 1315, 1322, 1329, 1335, 1342, 1347, 1353, 1358, 1365, 1371, 1379, 1385, 1390, 1398, 1407, 1418, 1426, 1435, 1443, 1453, 1462, 1471, 1479, 1486, 1493, 1502, 1511, 1519, 1527, 1536, 1545, 1555, 1562, 1571, 1582, 1591, 1601, 1611, 1619, 1627, 1634, 1640, 1649, 1660, 1666, 1675, 1683, 1692, 1700, 1708, 1713, 1721, 1726, 1736, 1742, 1750, 1756, 1761, 1769, 1775, 1784, 1793, 1803, 1818, 1834, 1854, 1873, 1893, 1908, 1916, 1928, 1936, 1944, 1956, 1966, 1974, 1981, 1989, 1995, 2004, 2012, 2020, 2030, 2037, 2047, 2057, 2068, 2079, 2088, 2096, 2105, 2116, 2126, 2134, 2145, 2156, 2161, 2168, 2175, 2186, 2194, 2202, 2215, 2224, 2238, 2251, 2262, 2276, 2289, 2302, 2315, 2327, 2346, 2361, 2386, 2400, 2413, 2425, 2436, 2447, 2462, 2474, 2484, 2494, 2508, 2519, 2528, 2541, 2556, 2565, 2574, 2585, 2596, 2601, 2611, 2619, 2626, 2634, 2642, 2651, 2660, 2668, 2674, 2691, 2701, 2716, 2733, 2748, 2763, 2778, 2792, 2802, 2812, 2819, 2823, 2828, 2835, 2845, 2850, 2853, 2858, 2867, 2876, 2888, 2899, 2911, 2923, 2933, 2952, 2972, 2993, 3016, 3044, 3069, 3092, 3116, 3139, 3160, 3173, 3182, 3195, 3204, 3215, 3223, 3236, 3248, 3258, 3266, 3274, 3281, 3288, 3296, 3303, 3312, 3323, 3330, 3337, 3347, 3355, 3364, 3371, 3379, 3386, 3393, 3404, 3415, 3425, 3434, 3442, 3451, 3460, 3470, 3481, 3489, 3498, 3504, 3515, 3524, 3534, 3540, 3549, 3556, 3564, 3569, 3577, 3584, 3588, 3596, 3607, 3614, 3621, 3629, 3638, 3646, 3655, 3664, 3672, 3679, 3691, 3699, 3705, 3718, 3733, 3746, 3760, 3776, 3789, 3813, 3840, 3865, 3891, 3915, 3942, 3971, 3987, 3997, 4013, 4032, 4054, 4064, 4069, 4080, 4090, 4099, 4106, 4115, 4126, 4133, 4141, 4150, 4159, 4167, 4174, 4183, 4192, 4200, 4211, 4219, 4230, 4239, 4248, 4257, 4265, 4273, 4283, 4288, 4295, 4304, 4317, 4324, 4336, 4348, 4359, 4373, 4386, 4399, 4415, 4433, 4454, 4474, 4487, 4496, 4506, 4516, 4525, 4531, 4539, 4546, 4557, 4565, 4575, 4584, 4593, 4599, 4607, 4612, 4617, 4624, 4631, 4646, 4666, 4682, 4706, 4727, 4750, 4767, 4785, 4811, 4829, 4853, 4874, 4896, 4918, 4942, 4969, 4996, 5030, 5056, 5079, 5087, 5094, 5100, 5105, 5111, 5116, 5126, 5130, 5136, 5143, 5151, 5156, 5162, 5169, 5178, 5186, 5193, 5200, 5209, 5218, 5223, 5230, 5237, 5242, 5254, 5268, 5287, 5314, 5332, 5358, 5386, 5415, 5430, 5448, 5461, 5476, 5495, 5513, 5543, 5571, 5597, 5617, 5642, 5673, 5703, 5728, 5759, 5801, 5830, 5855, 5883, 5910, 5932, 5964, 5994, 6017, 6044, 6073, 6099, 6126, 6138, 6156, 6177, 6194, 6208, 6222, 6237];
\ No newline at end of file
diff --git a/lib_cjs/lists/rukuList.cjs b/lib_cjs/lists/rukuList.cjs
new file mode 100644
index 0000000..f3774a6
--- /dev/null
+++ b/lib_cjs/lists/rukuList.cjs
@@ -0,0 +1,7 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.RukuList = void 0;
+const RukuList = exports.RukuList = [0, 1, 8, 15, 28, 37, 47, 54, 67, 69, 79, 90, 94, 104, 111, 120, 129, 137, 149, 155, 160, 171, 175, 184, 190, 196, 204, 218, 224, 229, 236, 239, 243, 250, 256, 261, 265, 268, 274, 281, 289, 291, 294, 303, 314, 324, 335, 348, 357, 365, 374, 385, 395, 403, 414, 423, 437, 442, 449, 465, 474, 483, 494, 504, 508, 516, 519, 527, 536, 544, 553, 564, 570, 581, 585, 590, 594, 598, 606, 609, 620, 628, 635, 646, 656, 665, 670, 675, 681, 689, 696, 704, 713, 720, 726, 736, 747, 756, 763, 770, 778, 785, 790, 800, 810, 820, 831, 840, 845, 850, 860, 872, 880, 884, 890, 900, 911, 919, 930, 934, 940, 944, 955, 965, 980, 986, 994, 1002, 1008, 1013, 1019, 1027, 1039, 1048, 1054, 1063, 1081, 1084, 1096, 1102, 1106, 1112, 1117, 1126, 1136, 1143, 1161, 1171, 1180, 1189, 1198, 1205, 1209, 1219, 1225, 1230, 1236, 1242, 1252, 1260, 1265, 1273, 1278, 1295, 1302, 1308, 1316, 1325, 1335, 1346, 1354, 1358, 1365, 1375, 1385, 1395, 1405, 1418, 1425, 1435, 1447, 1457, 1468, 1474, 1482, 1498, 1509, 1523, 1534, 1542, 1557, 1569, 1583, 1597, 1603, 1617, 1626, 1632, 1639, 1646, 1654, 1665, 1676, 1690, 1701, 1708, 1715, 1726, 1734, 1739, 1745, 1751, 1757, 1763, 1772, 1778, 1785, 1792, 1803, 1818, 1828, 1847, 1863, 1882, 1902, 1911, 1923, 1927, 1936, 1942, 1952, 1962, 1967, 1972, 1978, 1985, 1991, 2002, 2012, 2021, 2030, 2040, 2052, 2060, 2070, 2082, 2090, 2100, 2107, 2114, 2123, 2130, 2141, 2153, 2158, 2163, 2172, 2185, 2190, 2194, 2200, 2211, 2223, 2242, 2251, 2266, 2291, 2301, 2316, 2333, 2349, 2373, 2403, 2425, 2438, 2453, 2464, 2477, 2484, 2494, 2513, 2525, 2534, 2559, 2577, 2596, 2606, 2618, 2621, 2629, 2634, 2644, 2653, 2660, 2668, 2674, 2696, 2706, 2724, 2751, 2766, 2792, 2802, 2812, 2818, 2826, 2832, 2842, 2849, 2853, 2856, 2865, 2876, 2890, 2900, 2916, 2933, 2942, 2966, 2985, 3002, 3037, 3055, 3073, 3092, 3108, 3124, 3160, 3174, 3191, 3204, 3218, 3226, 3242, 3253, 3266, 3274, 3281, 3295, 3303, 3313, 3328, 3341, 3354, 3363, 3371, 3385, 3392, 3404, 3410, 3420, 3429, 3437, 3450, 3463, 3470, 3481, 3489, 3504, 3515, 3526, 3534, 3542, 3554, 3561, 3568, 3574, 3586, 3592, 3602, 3607, 3616, 3628, 3637, 3643, 3652, 3661, 3668, 3675, 3687, 3698, 3706, 3718, 3738, 3756, 3773, 3789, 3810, 3863, 3902, 3927, 3971, 3985, 3997, 4011, 4035, 4059, 4068, 4080, 4090, 4100, 4111, 4122, 4129, 4134, 4143, 4154, 4161, 4171, 4184, 4194, 4202, 4212, 4219, 4227, 4237, 4244, 4251, 4263, 4273, 4282, 4292, 4302, 4316, 4326, 4341, 4351, 4361, 4371, 4382, 4393, 4415, 4444, 4457, 4474, 4485, 4495, 4500, 4511, 4521, 4531, 4537, 4546, 4557, 4565, 4574, 4584, 4594, 4601, 4610, 4613, 4623, 4631, 4646, 4660, 4676, 4699, 4722, 4736, 4764, 4785, 4810, 4817, 4847, 4869, 4887, 4902, 4927, 4947, 4980, 5018, 5054, 5076, 5086, 5095, 5101, 5105, 5111, 5118, 5127, 5137, 5144, 5151, 5157, 5164, 5173, 5178, 5186, 5189, 5197, 5200, 5210, 5218, 5225, 5230, 5237, 5242, 5256, 5272, 5305, 5324, 5361, 5376, 5411, 5420, 5440, 5448, 5467, 5476, 5495, 5496, 5527, 5552, 5582, 5592, 5614, 5623, 5663, 5673, 5703, 5713, 5739, 5759, 5801, 5830, 5849, 5885, 5910, 5932, 5949, 5968, 5994, 6024, 6044, 6059, 6080, 6091, 6099, 6107, 6126, 6131, 6139, 6147, 6158, 6169, 6177, 6180, 6189, 6194, 6198, 6205, 6208, 6214, 6217, 6222, 6226, 6231, 6237];
\ No newline at end of file
diff --git a/lib_cjs/lists/sajdaList.cjs b/lib_cjs/lists/sajdaList.cjs
new file mode 100644
index 0000000..da43440
--- /dev/null
+++ b/lib_cjs/lists/sajdaList.cjs
@@ -0,0 +1,9 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.SajdaList = void 0;
+const SajdaList = exports.SajdaList = [
+// [ayaId, type]
+[1160, "recommended"], [1722, "recommended"], [1951, "recommended"], [2138, "recommended"], [2308, "recommended"], [2613, "recommended"], [2672, "recommended"], [2915, "recommended"], [3185, "recommended"], [3518, "obligatory"], [3994, "recommended"], [4256, "obligatory"], [4846, "obligatory"], [5905, "recommended"], [6125, "obligatory"]];
\ No newline at end of file
diff --git a/lib_cjs/lists/surahList.cjs b/lib_cjs/lists/surahList.cjs
new file mode 100644
index 0000000..0387e8e
--- /dev/null
+++ b/lib_cjs/lists/surahList.cjs
@@ -0,0 +1,7 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.SuraList = void 0;
+const SuraList = exports.SuraList = [[-1, -1, -1, -1, "", false, -1], [0, 7, 5, 1, "\u0627\u0644\u0641\u0627\u062A\u062D\u0629", true, 1], [7, 286, 87, 40, "\u0627\u0644\u0628\u0642\u0631\u0629", false, 2], [293, 200, 89, 20, "\u0622\u0644 \u0639\u0645\u0631\u0627\u0646", false, 50], [493, 176, 92, 24, "\u0627\u0644\u0646\u0633\u0627\u0621", false, 77], [669, 120, 112, 16, "\u0627\u0644\u0645\u0627\u0626\u062F\u0629", false, 107], [789, 165, 55, 20, "\u0627\u0644\u0623\u0646\u0639\u0627\u0645", true, 128], [954, 206, 39, 24, "\u0627\u0644\u0623\u0639\u0631\u0627\u0641", true, 151], [1160, 75, 88, 10, "\u0627\u0644\u0623\u0646\u0641\u0627\u0644", false, 177], [1235, 129, 113, 16, "\u0627\u0644\u062A\u0648\u0628\u0629", false, 187], [1364, 109, 51, 11, "\u064A\u0648\u0646\u0633", true, 208], [1473, 123, 52, 10, "\u0647\u0648\u062F", true, 222], [1596, 111, 53, 12, "\u064A\u0648\u0633\u0641", true, 236], [1707, 43, 96, 6, "\u0627\u0644\u0631\u0639\u062F", false, 249], [1750, 52, 72, 7, "\u0627\u0628\u0631\u0627\u0647\u064A\u0645", true, 256], [1802, 99, 54, 6, "\u0627\u0644\u062D\u062C\u0631", true, 262], [1901, 128, 70, 16, "\u0627\u0644\u0646\u062D\u0644", true, 268], [2029, 111, 50, 12, "\u0627\u0644\u0625\u0633\u0631\u0627\u0621", true, 282], [2140, 110, 69, 12, "\u0627\u0644\u0643\u0647\u0641", true, 294], [2250, 98, 44, 6, "\u0645\u0631\u064A\u0645", true, 305], [2348, 135, 45, 8, "\u0637\u0647", true, 313], [2483, 112, 73, 7, "\u0627\u0644\u0623\u0646\u0628\u064A\u0627\u0621", true, 322], [2595, 78, 103, 10, "\u0627\u0644\u062D\u062C", false, 332], [2673, 118, 74, 6, "\u0627\u0644\u0645\u0624\u0645\u0646\u0648\u0646", true, 342], [2791, 64, 102, 9, "\u0627\u0644\u0646\u0648\u0631", false, 350], [2855, 77, 42, 6, "\u0627\u0644\u0641\u0631\u0642\u0627\u0646", true, 360], [2932, 227, 47, 11, "\u0627\u0644\u0634\u0639\u0631\u0627\u0621", true, 367], [3159, 93, 48, 7, "\u0627\u0644\u0646\u0645\u0644", true, 377], [3252, 88, 49, 8, "\u0627\u0644\u0642\u0635\u0635", true, 386], [3340, 69, 85, 7, "\u0627\u0644\u0639\u0646\u0643\u0628\u0648\u062A", true, 397], [3409, 60, 84, 6, "\u0627\u0644\u0631\u0648\u0645", true, 405], [3469, 34, 57, 3, "\u0644\u0642\u0645\u0627\u0646", true, 411], [3503, 30, 75, 3, "\u0627\u0644\u0633\u062C\u062F\u0629", true, 415], [3533, 73, 90, 9, "\u0627\u0644\u0623\u062D\u0632\u0627\u0628", false, 418], [3606, 54, 58, 6, "\u0633\u0628\u0625", true, 428], [3660, 45, 43, 5, "\u0641\u0627\u0637\u0631", true, 435], [3705, 83, 41, 5, "\u064A\u0633", true, 441], [3788, 182, 56, 5, "\u0627\u0644\u0635\u0627\u0641\u0627\u062A", true, 446], [3970, 88, 38, 5, "\u0635", true, 453], [4058, 75, 59, 8, "\u0627\u0644\u0632\u0645\u0631", true, 459], [4133, 85, 60, 9, "\u063A\u0627\u0641\u0631", true, 468], [4218, 54, 61, 6, "\u0641\u0635\u0644\u062A", true, 477], [4272, 53, 62, 5, "\u0627\u0644\u0634\u0648\u0631\u0649", true, 483], [4325, 89, 63, 7, "\u0627\u0644\u0632\u062E\u0631\u0641", true, 490], [4414, 59, 64, 3, "\u0627\u0644\u062F\u062E\u0627\u0646", true, 496], [4473, 37, 65, 4, "\u0627\u0644\u062C\u0627\u062B\u064A\u0629", true, 499], [4510, 35, 66, 4, "\u0627\u0644\u0623\u062D\u0642\u0627\u0641", true, 503], [4545, 38, 95, 4, "\u0645\u062D\u0645\u062F", false, 507], [4583, 29, 111, 4, "\u0627\u0644\u0641\u062A\u062D", false, 511], [4612, 18, 106, 2, "\u0627\u0644\u062D\u062C\u0631\u0627\u062A", false, 516], [4630, 45, 34, 3, "\u0642", true, 518], [4675, 60, 67, 3, "\u0627\u0644\u0630\u0627\u0631\u064A\u0627\u062A", true, 521], [4735, 49, 76, 2, "\u0627\u0644\u0637\u0648\u0631", true, 524], [4784, 62, 23, 3, "\u0627\u0644\u0646\u062C\u0645", true, 526], [4846, 55, 37, 3, "\u0627\u0644\u0642\u0645\u0631", true, 529], [4901, 78, 97, 3, "\u0627\u0644\u0631\u062D\u0645\u0646", false, 532], [4979, 96, 46, 3, "\u0627\u0644\u0648\u0627\u0642\u0639\u0629", true, 535], [5075, 29, 94, 4, "\u0627\u0644\u062D\u062F\u064A\u062F", false, 538], [5104, 22, 105, 3, "\u0627\u0644\u0645\u062C\u0627\u062F\u0644\u0629", false, 542], [5126, 24, 101, 3, "\u0627\u0644\u062D\u0634\u0631", false, 546], [5150, 13, 91, 2, "\u0627\u0644\u0645\u0645\u062A\u062D\u0646\u0629", false, 549], [5163, 14, 109, 2, "\u0627\u0644\u0635\u0641", false, 552], [5177, 11, 110, 2, "\u0627\u0644\u062C\u0645\u0639\u0629", false, 553], [5188, 11, 104, 2, "\u0627\u0644\u0645\u0646\u0627\u0641\u0642\u0648\u0646", false, 555], [5199, 18, 108, 2, "\u0627\u0644\u062A\u063A\u0627\u0628\u0646", false, 556], [5217, 12, 99, 2, "\u0627\u0644\u0637\u0644\u0627\u0642", false, 558], [5229, 12, 107, 2, "\u0627\u0644\u062A\u062D\u0631\u064A\u0645", false, 560], [5241, 30, 77, 2, "\u0627\u0644\u0645\u0644\u0643", true, 562], [5271, 52, 2, 2, "\u0627\u0644\u0642\u0644\u0645", true, 565], [5323, 52, 78, 2, "\u0627\u0644\u062D\u0627\u0642\u0629", true, 567], [5375, 44, 79, 2, "\u0627\u0644\u0645\u0639\u0627\u0631\u062C", true, 569], [5419, 28, 71, 2, "\u0646\u0648\u062D", true, 571], [5447, 28, 40, 2, "\u0627\u0644\u062C\u0646", true, 572], [5475, 20, 3, 2, "\u0627\u0644\u0645\u0632\u0645\u0644", true, 574], [5495, 56, 4, 2, "\u0627\u0644\u0645\u062F\u062B\u0631", true, 576], [5551, 40, 31, 2, "\u0627\u0644\u0642\u064A\u0627\u0645\u0629", true, 578], [5591, 31, 98, 2, "\u0627\u0644\u0627\u0646\u0633\u0627\u0646", false, 579], [5622, 50, 33, 2, "\u0627\u0644\u0645\u0631\u0633\u0644\u0627\u062A", true, 581], [5672, 40, 80, 2, "\u0627\u0644\u0646\u0628\u0625", true, 582], [5712, 46, 81, 2, "\u0627\u0644\u0646\u0627\u0632\u0639\u0627\u062A", true, 584], [5758, 42, 24, 1, "\u0639\u0628\u0633", true, 585], [5800, 29, 7, 1, "\u0627\u0644\u062A\u0643\u0648\u064A\u0631", true, 586], [5829, 19, 82, 1, "\u0627\u0644\u0625\u0646\u0641\u0637\u0627\u0631", true, 587], [5848, 36, 86, 1, "\u0627\u0644\u0645\u0637\u0641\u0641\u064A\u0646", true, 588], [5884, 25, 83, 1, "\u0627\u0644\u0625\u0646\u0634\u0642\u0627\u0642", true, 589], [5909, 22, 27, 1, "\u0627\u0644\u0628\u0631\u0648\u062C", true, 590], [5931, 17, 36, 1, "\u0627\u0644\u0637\u0627\u0631\u0642", true, 591], [5948, 19, 8, 1, "\u0627\u0644\u0623\u0639\u0644\u0649", true, 592], [5967, 26, 68, 1, "\u0627\u0644\u063A\u0627\u0634\u064A\u0629", true, 592], [5993, 30, 10, 1, "\u0627\u0644\u0641\u062C\u0631", true, 593], [6023, 20, 35, 1, "\u0627\u0644\u0628\u0644\u062F", true, 594], [6043, 15, 26, 1, "\u0627\u0644\u0634\u0645\u0633", true, 595], [6058, 21, 9, 1, "\u0627\u0644\u0644\u064A\u0644", true, 596], [6079, 11, 11, 1, "\u0627\u0644\u0636\u062D\u0649", true, 596], [6090, 8, 12, 1, "\u0627\u0644\u0634\u0631\u062D", true, 596], [6098, 8, 28, 1, "\u0627\u0644\u062A\u064A\u0646", true, 597], [6106, 19, 1, 1, "\u0627\u0644\u0639\u0644\u0642", true, 597], [6125, 5, 25, 1, "\u0627\u0644\u0642\u062F\u0631", true, 598], [6130, 8, 100, 1, "\u0627\u0644\u0628\u064A\u0646\u0629", false, 599], [6138, 8, 93, 1, "\u0627\u0644\u0632\u0644\u0632\u0644\u0629", false, 599], [6146, 11, 14, 1, "\u0627\u0644\u0639\u0627\u062F\u064A\u0627\u062A", true, 600], [6157, 11, 30, 1, "\u0627\u0644\u0642\u0627\u0631\u0639\u0629", true, 600], [6168, 8, 16, 1, "\u0627\u0644\u062A\u0643\u0627\u062B\u0631", true, 600], [6176, 3, 13, 1, "\u0627\u0644\u0639\u0635\u0631", true, 601], [6179, 9, 32, 1, "\u0627\u0644\u0647\u0645\u0632\u0629", true, 601], [6188, 5, 19, 1, "\u0627\u0644\u0641\u064A\u0644", true, 601], [6193, 4, 29, 1, "\u0642\u0631\u064A\u0634", true, 602], [6197, 7, 17, 1, "\u0627\u0644\u0645\u0627\u0639\u0648\u0646", true, 602], [6204, 3, 15, 1, "\u0627\u0644\u0643\u0648\u062B\u0631", true, 602], [6207, 6, 18, 1, "\u0627\u0644\u0643\u0627\u0641\u0631\u0648\u0646", true, 603], [6213, 3, 114, 1, "\u0627\u0644\u0646\u0635\u0631", false, 603], [6216, 5, 6, 1, "\u0627\u0644\u0645\u0633\u062F", true, 603], [6221, 4, 22, 1, "\u0627\u0644\u0625\u062E\u0644\u0627\u0635", true, 604], [6225, 5, 20, 1, "\u0627\u0644\u0641\u0644\u0642", true, 604], [6230, 6, 21, 1, "\u0627\u0644\u0646\u0627\u0633", true, 604], [6236, 0, -1, -1, "", false, -1]];
\ No newline at end of file
diff --git a/lib_cjs/nextAyah.cjs b/lib_cjs/nextAyah.cjs
new file mode 100644
index 0000000..7c74763
--- /dev/null
+++ b/lib_cjs/nextAyah.cjs
@@ -0,0 +1,14 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.nextAyah = nextAyah;
+var _const = require("./const.cjs");
+var _findAyaidBySurah = require("./findAyaidBySurah.cjs");
+var _findSurahByAyaid = require("./findSurahByAyaid.cjs");
+function nextAyah(surah, ayah) {
+  if (surah < 1 || surah > _const.meta.numSuras) throw new RangeError("Surah must be between 1 and " + _const.meta.numSuras);
+  const ayaid = (0, _findAyaidBySurah.findAyaidBySurah)(surah, ayah);
+  return (0, _findSurahByAyaid.findSurahByAyaid)(ayaid == _const.meta.numAyas ? 1 : ayaid + 1);
+}
\ No newline at end of file
diff --git a/lib_cjs/pageList.js b/lib_cjs/pageList.js
deleted file mode 100644
index d8fd74f..0000000
--- a/lib_cjs/pageList.js
+++ /dev/null
@@ -1,51 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.PageList = void 0;
-exports.PageList = [
-    0, 1, 8, 13, 24, 32, 37, 45, 56, 65, 69, 77, 84, 91, 96, 101, 109, 113, 120,
-    127, 134, 142, 149, 153, 161, 171, 177, 184, 189, 194, 198, 204, 210, 218,
-    223, 227, 232, 238, 241, 245, 253, 256, 260, 264, 267, 272, 277, 282, 289,
-    290, 294, 303, 309, 316, 323, 331, 339, 346, 355, 364, 371, 377, 385, 394,
-    402, 409, 415, 426, 434, 442, 447, 451, 459, 467, 474, 480, 488, 494, 500,
-    505, 508, 513, 517, 520, 527, 531, 538, 545, 553, 559, 568, 573, 580, 585,
-    588, 595, 599, 607, 615, 621, 628, 634, 641, 648, 656, 664, 669, 672, 675,
-    679, 683, 687, 693, 701, 706, 711, 715, 720, 727, 734, 740, 746, 752, 759,
-    765, 773, 778, 783, 790, 798, 808, 817, 825, 834, 842, 849, 858, 863, 871,
-    880, 884, 891, 900, 908, 914, 921, 927, 932, 936, 941, 947, 955, 966, 977,
-    985, 992, 998, 1006, 1012, 1022, 1028, 1036, 1042, 1050, 1059, 1075, 1085,
-    1092, 1098, 1104, 1110, 1114, 1118, 1125, 1133, 1142, 1150, 1161, 1169, 1177,
-    1186, 1194, 1201, 1206, 1213, 1222, 1230, 1236, 1242, 1249, 1256, 1262, 1267,
-    1272, 1276, 1283, 1290, 1297, 1304, 1308, 1315, 1322, 1329, 1335, 1342, 1347,
-    1353, 1358, 1365, 1371, 1379, 1385, 1390, 1398, 1407, 1418, 1426, 1435, 1443,
-    1453, 1462, 1471, 1479, 1486, 1493, 1502, 1511, 1519, 1527, 1536, 1545, 1555,
-    1562, 1571, 1582, 1591, 1601, 1611, 1619, 1627, 1634, 1640, 1649, 1660, 1666,
-    1675, 1683, 1692, 1700, 1708, 1713, 1721, 1726, 1736, 1742, 1750, 1756, 1761,
-    1769, 1775, 1784, 1793, 1803, 1818, 1834, 1854, 1873, 1893, 1908, 1916, 1928,
-    1936, 1944, 1956, 1966, 1974, 1981, 1989, 1995, 2004, 2012, 2020, 2030, 2037,
-    2047, 2057, 2068, 2079, 2088, 2096, 2105, 2116, 2126, 2134, 2145, 2156, 2161,
-    2168, 2175, 2186, 2194, 2202, 2215, 2224, 2238, 2251, 2262, 2276, 2289, 2302,
-    2315, 2327, 2346, 2361, 2386, 2400, 2413, 2425, 2436, 2447, 2462, 2474, 2484,
-    2494, 2508, 2519, 2528, 2541, 2556, 2565, 2574, 2585, 2596, 2601, 2611, 2619,
-    2626, 2634, 2642, 2651, 2660, 2668, 2674, 2691, 2701, 2716, 2733, 2748, 2763,
-    2778, 2792, 2802, 2812, 2819, 2823, 2828, 2835, 2845, 2850, 2853, 2858, 2867,
-    2876, 2888, 2899, 2911, 2923, 2933, 2952, 2972, 2993, 3016, 3044, 3069, 3092,
-    3116, 3139, 3160, 3173, 3182, 3195, 3204, 3215, 3223, 3236, 3248, 3258, 3266,
-    3274, 3281, 3288, 3296, 3303, 3312, 3323, 3330, 3337, 3347, 3355, 3364, 3371,
-    3379, 3386, 3393, 3404, 3415, 3425, 3434, 3442, 3451, 3460, 3470, 3481, 3489,
-    3498, 3504, 3515, 3524, 3534, 3540, 3549, 3556, 3564, 3569, 3577, 3584, 3588,
-    3596, 3607, 3614, 3621, 3629, 3638, 3646, 3655, 3664, 3672, 3679, 3691, 3699,
-    3705, 3718, 3733, 3746, 3760, 3776, 3789, 3813, 3840, 3865, 3891, 3915, 3942,
-    3971, 3987, 3997, 4013, 4032, 4054, 4064, 4069, 4080, 4090, 4099, 4106, 4115,
-    4126, 4133, 4141, 4150, 4159, 4167, 4174, 4183, 4192, 4200, 4211, 4219, 4230,
-    4239, 4248, 4257, 4265, 4273, 4283, 4288, 4295, 4304, 4317, 4324, 4336, 4348,
-    4359, 4373, 4386, 4399, 4415, 4433, 4454, 4474, 4487, 4496, 4506, 4516, 4525,
-    4531, 4539, 4546, 4557, 4565, 4575, 4584, 4593, 4599, 4607, 4612, 4617, 4624,
-    4631, 4646, 4666, 4682, 4706, 4727, 4750, 4767, 4785, 4811, 4829, 4853, 4874,
-    4896, 4918, 4942, 4969, 4996, 5030, 5056, 5079, 5087, 5094, 5100, 5105, 5111,
-    5116, 5126, 5130, 5136, 5143, 5151, 5156, 5162, 5169, 5178, 5186, 5193, 5200,
-    5209, 5218, 5223, 5230, 5237, 5242, 5254, 5268, 5287, 5314, 5332, 5358, 5386,
-    5415, 5430, 5448, 5461, 5476, 5495, 5513, 5543, 5571, 5597, 5617, 5642, 5673,
-    5703, 5728, 5759, 5801, 5830, 5855, 5883, 5910, 5932, 5964, 5994, 6017, 6044,
-    6073, 6099, 6126, 6138, 6156, 6177, 6194, 6208, 6222, 6237,
-];
-//# sourceMappingURL=pageList.js.map
\ No newline at end of file
diff --git a/lib_cjs/pageList.js.map b/lib_cjs/pageList.js.map
deleted file mode 100644
index d0bc47f..0000000
--- a/lib_cjs/pageList.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"pageList.js","sourceRoot":"","sources":["../src/pageList.ts"],"names":[],"mappings":";;;AAEa,QAAA,QAAQ,GAAa;IAChC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IAC3E,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IACzE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;CAC3D,CAAA"}
\ No newline at end of file
diff --git a/lib_cjs/pageMeta.cjs b/lib_cjs/pageMeta.cjs
new file mode 100644
index 0000000..32db8fb
--- /dev/null
+++ b/lib_cjs/pageMeta.cjs
@@ -0,0 +1,18 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.pageMeta = pageMeta;
+var _const = require("./const.cjs");
+var _findSurahByAyaid = require("./findSurahByAyaid.cjs");
+var _pageList = require("./lists/pageList.cjs");
+function pageMeta(pageNum) {
+  if (pageNum < 1 || pageNum > _const.meta.numPages) throw new RangeError("pagenum must be between 1 and " + _const.meta.numPages);
+  const [curPage, nextPage] = [_pageList.PageList[pageNum], _pageList.PageList[pageNum + 1]];
+  return {
+    pageNum,
+    first: (0, _findSurahByAyaid.findSurahByAyaid)(curPage),
+    last: [...(0, _findSurahByAyaid.findSurahByAyaid)(nextPage - 1)]
+  };
+}
\ No newline at end of file
diff --git a/lib_cjs/prevAyah.cjs b/lib_cjs/prevAyah.cjs
new file mode 100644
index 0000000..55c9da9
--- /dev/null
+++ b/lib_cjs/prevAyah.cjs
@@ -0,0 +1,15 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.prevAyah = prevAyah;
+var _const = require("./const.cjs");
+var _findAyaidBySurah = require("./findAyaidBySurah.cjs");
+var _findSurahByAyaid = require("./findSurahByAyaid.cjs");
+var _validation = require("./validation.cjs");
+function prevAyah(surah, ayah) {
+  (0, _validation.checkValidSurah)(surah);
+  const ayaid = (0, _findAyaidBySurah.findAyaidBySurah)(surah, ayah);
+  return (0, _findSurahByAyaid.findSurahByAyaid)(ayaid == 1 ? _const.meta.numAyas : ayaid - 1);
+}
\ No newline at end of file
diff --git a/lib_cjs/rukuList.js b/lib_cjs/rukuList.js
deleted file mode 100644
index e6ff3e5..0000000
--- a/lib_cjs/rukuList.js
+++ /dev/null
@@ -1,48 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.RukuList = void 0;
-exports.RukuList = [
-    0, 1, 8, 15, 28, 37, 47, 54, 67, 69, 79, 90, 94, 104, 111, 120, 129, 137, 149,
-    155, 160, 171, 175, 184, 190, 196, 204, 218, 224, 229, 236, 239, 243, 250,
-    256, 261, 265, 268, 274, 281, 289, 291, 294, 303, 314, 324, 335, 348, 357,
-    365, 374, 385, 395, 403, 414, 423, 437, 442, 449, 465, 474, 483, 494, 504,
-    508, 516, 519, 527, 536, 544, 553, 564, 570, 581, 585, 590, 594, 598, 606,
-    609, 620, 628, 635, 646, 656, 665, 670, 675, 681, 689, 696, 704, 713, 720,
-    726, 736, 747, 756, 763, 770, 778, 785, 790, 800, 810, 820, 831, 840, 845,
-    850, 860, 872, 880, 884, 890, 900, 911, 919, 930, 934, 940, 944, 955, 965,
-    980, 986, 994, 1002, 1008, 1013, 1019, 1027, 1039, 1048, 1054, 1063, 1081,
-    1084, 1096, 1102, 1106, 1112, 1117, 1126, 1136, 1143, 1161, 1171, 1180, 1189,
-    1198, 1205, 1209, 1219, 1225, 1230, 1236, 1242, 1252, 1260, 1265, 1273, 1278,
-    1295, 1302, 1308, 1316, 1325, 1335, 1346, 1354, 1358, 1365, 1375, 1385, 1395,
-    1405, 1418, 1425, 1435, 1447, 1457, 1468, 1474, 1482, 1498, 1509, 1523, 1534,
-    1542, 1557, 1569, 1583, 1597, 1603, 1617, 1626, 1632, 1639, 1646, 1654, 1665,
-    1676, 1690, 1701, 1708, 1715, 1726, 1734, 1739, 1745, 1751, 1757, 1763, 1772,
-    1778, 1785, 1792, 1803, 1818, 1828, 1847, 1863, 1882, 1902, 1911, 1923, 1927,
-    1936, 1942, 1952, 1962, 1967, 1972, 1978, 1985, 1991, 2002, 2012, 2021, 2030,
-    2040, 2052, 2060, 2070, 2082, 2090, 2100, 2107, 2114, 2123, 2130, 2141, 2153,
-    2158, 2163, 2172, 2185, 2190, 2194, 2200, 2211, 2223, 2242, 2251, 2266, 2291,
-    2301, 2316, 2333, 2349, 2373, 2403, 2425, 2438, 2453, 2464, 2477, 2484, 2494,
-    2513, 2525, 2534, 2559, 2577, 2596, 2606, 2618, 2621, 2629, 2634, 2644, 2653,
-    2660, 2668, 2674, 2696, 2706, 2724, 2751, 2766, 2792, 2802, 2812, 2818, 2826,
-    2832, 2842, 2849, 2853, 2856, 2865, 2876, 2890, 2900, 2916, 2933, 2942, 2966,
-    2985, 3002, 3037, 3055, 3073, 3092, 3108, 3124, 3160, 3174, 3191, 3204, 3218,
-    3226, 3242, 3253, 3266, 3274, 3281, 3295, 3303, 3313, 3328, 3341, 3354, 3363,
-    3371, 3385, 3392, 3404, 3410, 3420, 3429, 3437, 3450, 3463, 3470, 3481, 3489,
-    3504, 3515, 3526, 3534, 3542, 3554, 3561, 3568, 3574, 3586, 3592, 3602, 3607,
-    3616, 3628, 3637, 3643, 3652, 3661, 3668, 3675, 3687, 3698, 3706, 3718, 3738,
-    3756, 3773, 3789, 3810, 3863, 3902, 3927, 3971, 3985, 3997, 4011, 4035, 4059,
-    4068, 4080, 4090, 4100, 4111, 4122, 4129, 4134, 4143, 4154, 4161, 4171, 4184,
-    4194, 4202, 4212, 4219, 4227, 4237, 4244, 4251, 4263, 4273, 4282, 4292, 4302,
-    4316, 4326, 4341, 4351, 4361, 4371, 4382, 4393, 4415, 4444, 4457, 4474, 4485,
-    4495, 4500, 4511, 4521, 4531, 4537, 4546, 4557, 4565, 4574, 4584, 4594, 4601,
-    4610, 4613, 4623, 4631, 4646, 4660, 4676, 4699, 4722, 4736, 4764, 4785, 4810,
-    4817, 4847, 4869, 4887, 4902, 4927, 4947, 4980, 5018, 5054, 5076, 5086, 5095,
-    5101, 5105, 5111, 5118, 5127, 5137, 5144, 5151, 5157, 5164, 5173, 5178, 5186,
-    5189, 5197, 5200, 5210, 5218, 5225, 5230, 5237, 5242, 5256, 5272, 5305, 5324,
-    5361, 5376, 5411, 5420, 5440, 5448, 5467, 5476, 5495, 5496, 5527, 5552, 5582,
-    5592, 5614, 5623, 5663, 5673, 5703, 5713, 5739, 5759, 5801, 5830, 5849, 5885,
-    5910, 5932, 5949, 5968, 5994, 6024, 6044, 6059, 6080, 6091, 6099, 6107, 6126,
-    6131, 6139, 6147, 6158, 6169, 6177, 6180, 6189, 6194, 6198, 6205, 6208, 6214,
-    6217, 6222, 6226, 6231, 6237,
-];
-//# sourceMappingURL=rukuList.js.map
\ No newline at end of file
diff --git a/lib_cjs/rukuList.js.map b/lib_cjs/rukuList.js.map
deleted file mode 100644
index c1d60fe..0000000
--- a/lib_cjs/rukuList.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"rukuList.js","sourceRoot":"","sources":["../src/rukuList.ts"],"names":[],"mappings":";;;AAEa,QAAA,QAAQ,GAAa;IAChC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IAC7E,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IACzE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;CAC7B,CAAA"}
\ No newline at end of file
diff --git a/lib_cjs/surahList.js b/lib_cjs/surahList.js
deleted file mode 100644
index 4c0cef3..0000000
--- a/lib_cjs/surahList.js
+++ /dev/null
@@ -1,122 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.SuraList = void 0;
-exports.SuraList = [
-    [-1, -1, -1, -1, "", false, -1],
-    [0, 7, 5, 1, "الفاتحة", true, 1],
-    [7, 286, 87, 40, "البقرة", false, 2],
-    [293, 200, 89, 20, "آل عمران", false, 50],
-    [493, 176, 92, 24, "النساء", false, 77],
-    [669, 120, 112, 16, "المائدة", false, 107],
-    [789, 165, 55, 20, "الأنعام", true, 128],
-    [954, 206, 39, 24, "الأعراف", true, 151],
-    [1160, 75, 88, 10, "الأنفال", false, 177],
-    [1235, 129, 113, 16, "التوبة", false, 187],
-    [1364, 109, 51, 11, "يونس", true, 208],
-    [1473, 123, 52, 10, "هود", true, 222],
-    [1596, 111, 53, 12, "يوسف", true, 236],
-    [1707, 43, 96, 6, "الرعد", false, 249],
-    [1750, 52, 72, 7, "ابراهيم", true, 256],
-    [1802, 99, 54, 6, "الحجر", true, 262],
-    [1901, 128, 70, 16, "النحل", true, 268],
-    [2029, 111, 50, 12, "الإسراء", true, 282],
-    [2140, 110, 69, 12, "الكهف", true, 294],
-    [2250, 98, 44, 6, "مريم", true, 305],
-    [2348, 135, 45, 8, "طه", true, 313],
-    [2483, 112, 73, 7, "الأنبياء", true, 322],
-    [2595, 78, 103, 10, "الحج", false, 332],
-    [2673, 118, 74, 6, "المؤمنون", true, 342],
-    [2791, 64, 102, 9, "النور", false, 350],
-    [2855, 77, 42, 6, "الفرقان", true, 360],
-    [2932, 227, 47, 11, "الشعراء", true, 367],
-    [3159, 93, 48, 7, "النمل", true, 377],
-    [3252, 88, 49, 8, "القصص", true, 386],
-    [3340, 69, 85, 7, "العنكبوت", true, 397],
-    [3409, 60, 84, 6, "الروم", true, 405],
-    [3469, 34, 57, 3, "لقمان", true, 411],
-    [3503, 30, 75, 3, "السجدة", true, 415],
-    [3533, 73, 90, 9, "الأحزاب", false, 418],
-    [3606, 54, 58, 6, "سبإ", true, 428],
-    [3660, 45, 43, 5, "فاطر", true, 435],
-    [3705, 83, 41, 5, "يس", true, 441],
-    [3788, 182, 56, 5, "الصافات", true, 446],
-    [3970, 88, 38, 5, "ص", true, 453],
-    [4058, 75, 59, 8, "الزمر", true, 459],
-    [4133, 85, 60, 9, "غافر", true, 468],
-    [4218, 54, 61, 6, "فصلت", true, 477],
-    [4272, 53, 62, 5, "الشورى", true, 483],
-    [4325, 89, 63, 7, "الزخرف", true, 490],
-    [4414, 59, 64, 3, "الدخان", true, 496],
-    [4473, 37, 65, 4, "الجاثية", true, 499],
-    [4510, 35, 66, 4, "الأحقاف", true, 503],
-    [4545, 38, 95, 4, "محمد", false, 507],
-    [4583, 29, 111, 4, "الفتح", false, 511],
-    [4612, 18, 106, 2, "الحجرات", false, 516],
-    [4630, 45, 34, 3, "ق", true, 518],
-    [4675, 60, 67, 3, "الذاريات", true, 521],
-    [4735, 49, 76, 2, "الطور", true, 524],
-    [4784, 62, 23, 3, "النجم", true, 526],
-    [4846, 55, 37, 3, "القمر", true, 529],
-    [4901, 78, 97, 3, "الرحمن", false, 532],
-    [4979, 96, 46, 3, "الواقعة", true, 535],
-    [5075, 29, 94, 4, "الحديد", false, 538],
-    [5104, 22, 105, 3, "المجادلة", false, 542],
-    [5126, 24, 101, 3, "الحشر", false, 546],
-    [5150, 13, 91, 2, "الممتحنة", false, 549],
-    [5163, 14, 109, 2, "الصف", false, 552],
-    [5177, 11, 110, 2, "الجمعة", false, 553],
-    [5188, 11, 104, 2, "المنافقون", false, 555],
-    [5199, 18, 108, 2, "التغابن", false, 556],
-    [5217, 12, 99, 2, "الطلاق", false, 558],
-    [5229, 12, 107, 2, "التحريم", false, 560],
-    [5241, 30, 77, 2, "الملك", true, 562],
-    [5271, 52, 2, 2, "القلم", true, 565],
-    [5323, 52, 78, 2, "الحاقة", true, 567],
-    [5375, 44, 79, 2, "المعارج", true, 569],
-    [5419, 28, 71, 2, "نوح", true, 571],
-    [5447, 28, 40, 2, "الجن", true, 572],
-    [5475, 20, 3, 2, "المزمل", true, 574],
-    [5495, 56, 4, 2, "المدثر", true, 576],
-    [5551, 40, 31, 2, "القيامة", true, 578],
-    [5591, 31, 98, 2, "الانسان", false, 579],
-    [5622, 50, 33, 2, "المرسلات", true, 581],
-    [5672, 40, 80, 2, "النبإ", true, 582],
-    [5712, 46, 81, 2, "النازعات", true, 584],
-    [5758, 42, 24, 1, "عبس", true, 585],
-    [5800, 29, 7, 1, "التكوير", true, 586],
-    [5829, 19, 82, 1, "الإنفطار", true, 587],
-    [5848, 36, 86, 1, "المطففين", true, 588],
-    [5884, 25, 83, 1, "الإنشقاق", true, 589],
-    [5909, 22, 27, 1, "البروج", true, 590],
-    [5931, 17, 36, 1, "الطارق", true, 591],
-    [5948, 19, 8, 1, "الأعلى", true, 592],
-    [5967, 26, 68, 1, "الغاشية", true, 592],
-    [5993, 30, 10, 1, "الفجر", true, 593],
-    [6023, 20, 35, 1, "البلد", true, 594],
-    [6043, 15, 26, 1, "الشمس", true, 595],
-    [6058, 21, 9, 1, "الليل", true, 596],
-    [6079, 11, 11, 1, "الضحى", true, 596],
-    [6090, 8, 12, 1, "الشرح", true, 596],
-    [6098, 8, 28, 1, "التين", true, 597],
-    [6106, 19, 1, 1, "العلق", true, 597],
-    [6125, 5, 25, 1, "القدر", true, 598],
-    [6130, 8, 100, 1, "البينة", false, 599],
-    [6138, 8, 93, 1, "الزلزلة", false, 599],
-    [6146, 11, 14, 1, "العاديات", true, 600],
-    [6157, 11, 30, 1, "القارعة", true, 600],
-    [6168, 8, 16, 1, "التكاثر", true, 600],
-    [6176, 3, 13, 1, "العصر", true, 601],
-    [6179, 9, 32, 1, "الهمزة", true, 601],
-    [6188, 5, 19, 1, "الفيل", true, 601],
-    [6193, 4, 29, 1, "قريش", true, 602],
-    [6197, 7, 17, 1, "الماعون", true, 602],
-    [6204, 3, 15, 1, "الكوثر", true, 602],
-    [6207, 6, 18, 1, "الكافرون", true, 603],
-    [6213, 3, 114, 1, "النصر", false, 603],
-    [6216, 5, 6, 1, "المسد", true, 603],
-    [6221, 4, 22, 1, "الإخلاص", true, 604],
-    [6225, 5, 20, 1, "الفلق", true, 604],
-    [6230, 6, 21, 1, "الناس", true, 604],
-    [6236, 0, -1, -1, "", false, -1],
-];
-//# sourceMappingURL=surahList.js.map
\ No newline at end of file
diff --git a/lib_cjs/surahList.js.map b/lib_cjs/surahList.js.map
deleted file mode 100644
index 58d2b75..0000000
--- a/lib_cjs/surahList.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"surahList.js","sourceRoot":"","sources":["../src/surahList.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/lib_cjs/types.cjs b/lib_cjs/types.cjs
new file mode 100644
index 0000000..9a390c3
--- /dev/null
+++ b/lib_cjs/types.cjs
@@ -0,0 +1 @@
+"use strict";
\ No newline at end of file
diff --git a/lib_cjs/types.js b/lib_cjs/types.js
deleted file mode 100644
index 11e638d..0000000
--- a/lib_cjs/types.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-//# sourceMappingURL=types.js.map
\ No newline at end of file
diff --git a/lib_cjs/types.js.map b/lib_cjs/types.js.map
deleted file mode 100644
index c768b79..0000000
--- a/lib_cjs/types.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
\ No newline at end of file
diff --git a/lib_cjs/utils.cjs b/lib_cjs/utils.cjs
new file mode 100644
index 0000000..f71baca
--- /dev/null
+++ b/lib_cjs/utils.cjs
@@ -0,0 +1,22 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.binarySearch = binarySearch;
+function binarySearch(ar, el, compare_fn = (a, b) => a - b) {
+  let m = 0;
+  let n = ar.length - 1;
+  while (m <= n) {
+    const k = n + m >> 1;
+    const cmp = compare_fn(el, ar[k]);
+    if (cmp > 0) {
+      m = k + 1;
+    } else if (cmp < 0) {
+      n = k - 1;
+    } else {
+      return k;
+    }
+  }
+  return -m - 1;
+}
\ No newline at end of file
diff --git a/lib_cjs/validation.cjs b/lib_cjs/validation.cjs
new file mode 100644
index 0000000..d342f2b
--- /dev/null
+++ b/lib_cjs/validation.cjs
@@ -0,0 +1,40 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.checkValidAyahId = checkValidAyahId;
+exports.checkValidSurah = checkValidSurah;
+exports.checkValidSurahAyah = checkValidSurahAyah;
+var _const = require("./const.cjs");
+var _getAyaCountinSura = require("./getAyaCountinSura.cjs");
+function checkValidSurah(surah, checkOnly = false) {
+  if (typeof surah !== "number" || !Number.isInteger(surah)) {
+    if (checkOnly) return false;
+    throw new TypeError("Ayah ID must be an integer");
+  }
+  if (surah < 1 || surah > _const.meta.numSuras) {
+    if (checkOnly) return false;
+    throw new RangeError("Surah must be between 1 and " + _const.meta.numSuras);
+  }
+  return true;
+}
+function checkValidSurahAyah(surah, ayah, checkOnly = false) {
+  if (!checkValidSurah(surah, checkOnly)) return false;
+  if (ayah < 1 || ayah > (0, _getAyaCountinSura.getAyaCountinSura)(surah)) {
+    if (checkOnly) return false;
+    throw new RangeError("Ayah must be between 1 and " + (0, _getAyaCountinSura.getAyaCountinSura)(surah));
+  }
+  return true;
+}
+function checkValidAyahId(ayahId, checkOnly = false) {
+  if (typeof ayahId !== "number" || !Number.isInteger(ayahId)) {
+    if (checkOnly) return false;
+    throw new TypeError("Ayah ID must be an integer");
+  }
+  if (ayahId < 1 || ayahId > _const.meta.numAyas) {
+    if (checkOnly) return false;
+    throw new RangeError("Ayah ID must be between 1 and " + _const.meta.numAyas);
+  }
+  return true;
+}
\ No newline at end of file
diff --git a/types/ayaStringSplitter.d.ts b/lib_es/ayaStringSplitter.d.ts
similarity index 100%
rename from types/ayaStringSplitter.d.ts
rename to lib_es/ayaStringSplitter.d.ts
diff --git a/lib_es/ayaStringSplitter.js b/lib_es/ayaStringSplitter.js
deleted file mode 100644
index 106c9d1..0000000
--- a/lib_es/ayaStringSplitter.js
+++ /dev/null
@@ -1,18 +0,0 @@
-/**
- *  Turns String of type "x:y" or "x:y1-y2" to array [x,y] or [x,[y1,y2]] respectively
- * @param {*} str String of type "x:y" or "x:y1-y2"
- * @returns {array} array [x,y] or [x,[y1,y2]] respectively
- */
-export function ayaStringSplitter(str) {
-    const [surah, ayahs] = str.trim().split(":");
-    if (!ayahs) {
-        throw "Error in data " + str;
-    }
-    return [
-        +surah,
-        ayahs.includes("-")
-            ? ayahs.split("-").map(Number)
-            : +ayahs,
-    ];
-}
-//# sourceMappingURL=ayaStringSplitter.js.map
\ No newline at end of file
diff --git a/lib_es/ayaStringSplitter.js.map b/lib_es/ayaStringSplitter.js.map
deleted file mode 100644
index a7f80d9..0000000
--- a/lib_es/ayaStringSplitter.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"ayaStringSplitter.js","sourceRoot":"","sources":["../src/ayaStringSplitter.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,GAAW;IAC3C,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAC5C,IAAI,CAAC,KAAK,EAAE;QACV,MAAM,gBAAgB,GAAG,GAAG,CAAA;KAC7B;IACD,OAAO;QACL,CAAC,KAAK;QACN,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC;YACjB,CAAC,CAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAsB;YACpD,CAAC,CAAC,CAAC,KAAK;KACX,CAAA;AACH,CAAC"}
\ No newline at end of file
diff --git a/lib_es/ayaStringSplitter.mjs b/lib_es/ayaStringSplitter.mjs
new file mode 100644
index 0000000..cb23f53
--- /dev/null
+++ b/lib_es/ayaStringSplitter.mjs
@@ -0,0 +1,29 @@
+import { checkValidSurahAyah } from "./validation.mjs";
+export function ayaStringSplitter(str) {
+  const [surahStr, ayahsStr] = str.trim().split(":");
+  const surah = parseInt(surahStr, 10);
+  if (isNaN(surah)) {
+    throw "Error in surah format " + str;
+  }
+  if (!ayahsStr) {
+    throw "Error in data " + str;
+  }
+  let ayahs;
+  if (ayahsStr.includes("-")) {
+    ayahs = ayahsStr.split("-").map((a) => {
+      const ayah = parseInt(a, 10);
+      if (isNaN(ayah) || ayah === 0) {
+        throw "Error in ayah " + a;
+      }
+      return ayah;
+    });
+    if (ayahs[0] > ayahs[1]) throw "Error in ayah range " + str;
+  } else {
+    ayahs = parseInt(ayahsStr, 10);
+    if (isNaN(ayahs) || ayahs === 0) {
+      throw "Error in data " + str;
+    }
+    checkValidSurahAyah(surah, ayahs);
+  }
+  return [surah, ayahs];
+}
diff --git a/types/const.d.ts b/lib_es/const.d.ts
similarity index 81%
rename from types/const.d.ts
rename to lib_es/const.d.ts
index 1cf624f..6ff1b0d 100644
--- a/types/const.d.ts
+++ b/lib_es/const.d.ts
@@ -1,4 +1,4 @@
-declare type QuranMeta = {
+export type QuranMeta = {
     numAyas: number;
     numSuras: number;
     numPages: number;
@@ -6,4 +6,3 @@ declare type QuranMeta = {
     manzilCount: number;
 };
 export declare const meta: Readonly<QuranMeta>;
-export {};
diff --git a/lib_es/const.js b/lib_es/const.js
deleted file mode 100644
index 6df8027..0000000
--- a/lib_es/const.js
+++ /dev/null
@@ -1,8 +0,0 @@
-export const meta = Object.freeze({
-    numAyas: 6236,
-    numSuras: 114,
-    numPages: 604,
-    numJuzs: 30,
-    manzilCount: 7,
-});
-//# sourceMappingURL=const.js.map
\ No newline at end of file
diff --git a/lib_es/const.js.map b/lib_es/const.js.map
deleted file mode 100644
index 8b1765d..0000000
--- a/lib_es/const.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"const.js","sourceRoot":"","sources":["../src/const.ts"],"names":[],"mappings":"AAQA,MAAM,CAAC,MAAM,IAAI,GAAwB,MAAM,CAAC,MAAM,CAAC;IACrD,OAAO,EAAE,IAAI;IACb,QAAQ,EAAE,GAAG;IACb,QAAQ,EAAE,GAAG;IACb,OAAO,EAAE,EAAE;IACX,WAAW,EAAE,CAAC;CACf,CAAC,CAAA"}
\ No newline at end of file
diff --git a/lib_es/const.mjs b/lib_es/const.mjs
new file mode 100644
index 0000000..f14c611
--- /dev/null
+++ b/lib_es/const.mjs
@@ -0,0 +1,7 @@
+export const meta = Object.freeze({
+  numAyas: 6236,
+  numSuras: 114,
+  numPages: 604,
+  numJuzs: 30,
+  manzilCount: 7
+});
diff --git a/lib_es/findAyaidBySurah.d.ts b/lib_es/findAyaidBySurah.d.ts
new file mode 100644
index 0000000..f556193
--- /dev/null
+++ b/lib_es/findAyaidBySurah.d.ts
@@ -0,0 +1,8 @@
+import { AyahId, AyahNo, Surah } from "./types";
+/**
+ * Get the ayah ID for the given surah and ayah number.
+ * @param surah - The surah number.
+ * @param ayah - The ayah number within the surah.
+ * @returns The ayah ID for the given surah and ayah number.
+ */
+export declare function findAyaidBySurah(surah: Surah, ayah: AyahNo): AyahId;
diff --git a/lib_es/findAyaidBySurah.mjs b/lib_es/findAyaidBySurah.mjs
new file mode 100644
index 0000000..687e99b
--- /dev/null
+++ b/lib_es/findAyaidBySurah.mjs
@@ -0,0 +1,7 @@
+import { getSurahMeta } from "./getSurahMeta.mjs";
+import { checkValidSurahAyah } from "./validation.mjs";
+export function findAyaidBySurah(surah, ayah) {
+  checkValidSurahAyah(surah, ayah);
+  const [startAyahId] = getSurahMeta(surah);
+  return startAyahId + ayah;
+}
diff --git a/lib_es/findJuz.d.ts b/lib_es/findJuz.d.ts
new file mode 100644
index 0000000..066ebb7
--- /dev/null
+++ b/lib_es/findJuz.d.ts
@@ -0,0 +1,10 @@
+import { AyahNo, Juz, Surah } from "./types";
+/**
+ * Finds the Juz (part) of the Quran that the given Ayah (verse) belongs to.
+ *
+ * @param surah - The Surah (chapter) number.
+ * @param ayah - The Ayah (verse) number. Defaults to 1 if not provided.
+ * @param ayahMode - If true, the `ayah` parameter is treated as an Ayah ID instead of a Surah and Ayah number.
+ * @returns The Juz (part) number that the given Ayah belongs to.
+ */
+export declare function findJuz(surah: Surah, ayah?: AyahNo, ayahMode?: boolean): Juz;
diff --git a/lib_es/findJuz.mjs b/lib_es/findJuz.mjs
new file mode 100644
index 0000000..e947518
--- /dev/null
+++ b/lib_es/findJuz.mjs
@@ -0,0 +1,7 @@
+import { findAyaidBySurah } from "./findAyaidBySurah.mjs";
+import { findJuzByAyaid } from "./findJuzByAyaid.mjs";
+import { checkValidSurahAyah } from "./validation.mjs";
+export function findJuz(surah, ayah = 1, ayahMode = false) {
+  const ayahId = ayahMode ? ayah : checkValidSurahAyah(surah, ayah) && findAyaidBySurah(surah, ayah);
+  return findJuzByAyaid(ayahId);
+}
diff --git a/lib_es/findJuzAndShift.d.ts b/lib_es/findJuzAndShift.d.ts
new file mode 100644
index 0000000..f3761a4
--- /dev/null
+++ b/lib_es/findJuzAndShift.d.ts
@@ -0,0 +1,17 @@
+import { AyahId, AyahNo, Juz, Surah } from "./types";
+/**
+ * Finds the juz (section) that contains the specified ayah (verse) and calculates the number of ayahs between the start of the juz and the start of the surah (chapter) that contains the ayah.
+ *
+ * @param surah - The surah (chapter) that contains the ayah.
+ * @param ayah - The ayah (verse) number.
+ * @param ayahMode - A boolean flag indicating whether the `ayah` parameter represents an ayah number or an ayah ID.
+ * @returns An object containing the following properties:
+ *   - `juz`: The juz (section) that contains the ayah.
+ *   - `leftAyahId`: The ayah ID of the first ayah in the juz.
+ *   - `ayahsBetweenJuzSurah`: The number of ayahs between the start of the juz and the start of the surah (positive if the surah starts is in the juz, negative if the surah starts before the juz).
+ */
+export declare function findJuzAndShift(surah: Surah, ayah: AyahNo, ayahMode?: boolean): {
+    juz: Juz;
+    leftAyahId: AyahId;
+    ayahsBetweenJuzSurah: number;
+};
diff --git a/lib_es/findJuzAndShift.mjs b/lib_es/findJuzAndShift.mjs
new file mode 100644
index 0000000..bfc0633
--- /dev/null
+++ b/lib_es/findJuzAndShift.mjs
@@ -0,0 +1,18 @@
+import { findAyaidBySurah } from "./findAyaidBySurah.mjs";
+import { findJuzByAyaid } from "./findJuzByAyaid.mjs";
+import { findSurahByAyaid } from "./findSurahByAyaid.mjs";
+import { JuzList } from "./lists/juzList.mjs";
+import { SuraList } from "./lists/surahList.mjs";
+import { checkValidAyahId, checkValidSurah } from "./validation.mjs";
+export function findJuzAndShift(surah, ayah, ayahMode = false) {
+  const ayahId = ayahMode ? checkValidAyahId(ayah) && ayah : checkValidSurah(surah) && findAyaidBySurah(surah, ayah);
+  const juz = findJuzByAyaid(ayahId);
+  const leftAyahId = JuzList[juz];
+  if (ayahMode) [surah] = findSurahByAyaid(ayahId);
+  const [surahStartAyahId] = SuraList[surah];
+  return {
+    juz,
+    ayahsBetweenJuzSurah: surahStartAyahId - leftAyahId + 1,
+    leftAyahId
+  };
+}
diff --git a/lib_es/findJuzByAyaid.d.ts b/lib_es/findJuzByAyaid.d.ts
new file mode 100644
index 0000000..be02da9
--- /dev/null
+++ b/lib_es/findJuzByAyaid.d.ts
@@ -0,0 +1,8 @@
+import { AyahId, Juz } from "./types";
+/**
+ * Finds the Juz (part) of the Quran that contains the given Ayah (verse) ID.
+ *
+ * @param ayaId - The ID of the Ayah (verse) to find the Juz for.
+ * @returns The Juz (part) of the Quran that contains the given Ayah ID.
+ */
+export declare function findJuzByAyaid(ayaId: AyahId): Juz;
diff --git a/lib_es/findJuzByAyaid.mjs b/lib_es/findJuzByAyaid.mjs
new file mode 100644
index 0000000..17327d5
--- /dev/null
+++ b/lib_es/findJuzByAyaid.mjs
@@ -0,0 +1,6 @@
+import { JuzList } from "./lists/juzList.mjs";
+import { checkValidAyahId } from "./validation.mjs";
+export function findJuzByAyaid(ayaId) {
+  checkValidAyahId(ayaId);
+  return JuzList.findIndex((x) => x > ayaId) - 1;
+}
diff --git a/lib_es/findJuzHizb.d.ts b/lib_es/findJuzHizb.d.ts
new file mode 100644
index 0000000..44b440f
--- /dev/null
+++ b/lib_es/findJuzHizb.d.ts
@@ -0,0 +1,10 @@
+import { AyahNo, JuzHizb, Surah } from "./types";
+/**
+ * Finds the Juz (part) and Hizb (section) of the Quran that the given Ayah (verse) belongs to.
+ *
+ * @param surah - The Surah (chapter) number.
+ * @param ayah - The Ayah (verse) number. Defaults to 1 if not provided.
+ * @param ayahMode - If true, the `ayah` parameter is treated as an Ayah ID instead of a Surah and Ayah number.
+ * @returns An object containing the Juz (part) number, Hizb (section) number, and the index of the Hizb that the given Ayah belongs to.
+ */
+export declare function findJuzHizb(surah: Surah, ayah?: AyahNo, ayahMode?: boolean): JuzHizb;
diff --git a/lib_es/findJuzHizb.mjs b/lib_es/findJuzHizb.mjs
new file mode 100644
index 0000000..00620bc
--- /dev/null
+++ b/lib_es/findJuzHizb.mjs
@@ -0,0 +1,7 @@
+import { findAyaidBySurah } from "./findAyaidBySurah.mjs";
+import { findJuzHizbByAyaid } from "./findJuzHizbByAyaid.mjs";
+import { checkValidSurah } from "./validation.mjs";
+export function findJuzHizb(surah, ayah = 1, ayahMode = false) {
+  const ayahId = ayahMode ? ayah : checkValidSurah(surah) && findAyaidBySurah(surah, ayah);
+  return findJuzHizbByAyaid(ayahId);
+}
diff --git a/lib_es/findJuzHizbByAyaid.d.ts b/lib_es/findJuzHizbByAyaid.d.ts
new file mode 100644
index 0000000..4438267
--- /dev/null
+++ b/lib_es/findJuzHizbByAyaid.d.ts
@@ -0,0 +1,8 @@
+import { AyahId, JuzHizb } from "./types";
+/**
+ * Finds the Juz, Hizb, and Hizb ID for the given Ayah ID.
+ *
+ * @param ayaId - The Ayah ID to find the Juz, Hizb, and Hizb ID for.
+ * @returns An object containing the Juz, Hizb, and Hizb ID for the given Ayah ID.
+ */
+export declare function findJuzHizbByAyaid(ayaId: AyahId): JuzHizb;
diff --git a/lib_es/findJuzHizbByAyaid.mjs b/lib_es/findJuzHizbByAyaid.mjs
new file mode 100644
index 0000000..91c0ad4
--- /dev/null
+++ b/lib_es/findJuzHizbByAyaid.mjs
@@ -0,0 +1,10 @@
+import { findJuzByAyaid } from "./findJuzByAyaid.mjs";
+import { HizbQuarterList } from "./lists/hizbList.mjs";
+import { checkValidAyahId } from "./validation.mjs";
+export function findJuzHizbByAyaid(ayaId) {
+  checkValidAyahId(ayaId);
+  const juz = findJuzByAyaid(ayaId);
+  const quarterIndex = HizbQuarterList.findIndex((x) => x > ayaId) - 1;
+  const hizb = quarterIndex % 8 || 8;
+  return { juz, hizb, id: quarterIndex };
+}
diff --git a/lib_es/findJuzMetaBySurah.d.ts b/lib_es/findJuzMetaBySurah.d.ts
new file mode 100644
index 0000000..6c3d16e
--- /dev/null
+++ b/lib_es/findJuzMetaBySurah.d.ts
@@ -0,0 +1,9 @@
+import { AyahNo, JuzMeta, Surah } from "./types";
+/**
+ * Finds the JuzMeta for a given Surah and Ayah.
+ *
+ * @param surah - The Surah (chapter) number.
+ * @param ayah - The Ayah (verse) number.
+ * @returns The JuzMeta object containing the left juz, ayahs between juz and surah, right juz, left ayah ID, and right ayah ID.
+ */
+export declare function findJuzMetaBySurah(surah: Surah, ayah?: AyahNo): JuzMeta;
diff --git a/lib_es/findJuzMetaBySurah.mjs b/lib_es/findJuzMetaBySurah.mjs
new file mode 100644
index 0000000..7fa3c46
--- /dev/null
+++ b/lib_es/findJuzMetaBySurah.mjs
@@ -0,0 +1,22 @@
+import { meta } from "./const.mjs";
+import { findJuzAndShift } from "./findJuzAndShift.mjs";
+import { findSurahByAyaid } from "./findSurahByAyaid.mjs";
+import { JuzList } from "./lists/juzList.mjs";
+export function findJuzMetaBySurah(surah, ayah = 1) {
+  const {
+    juz: leftjuz,
+    ayahsBetweenJuzSurah,
+    leftAyahId
+  } = findJuzAndShift(surah, ayah);
+  let rightJuz = leftjuz;
+  while (rightJuz < meta.numJuzs && findSurahByAyaid(JuzList[rightJuz + 1])[0] === surah) {
+    rightJuz++;
+  }
+  return {
+    leftjuz,
+    ayahsBetweenJuzSurah,
+    rightJuz,
+    leftAyahId,
+    rightAyahId: JuzList[rightJuz + 1]
+  };
+}
diff --git a/lib_es/findPage.d.ts b/lib_es/findPage.d.ts
new file mode 100644
index 0000000..6213d7f
--- /dev/null
+++ b/lib_es/findPage.d.ts
@@ -0,0 +1,10 @@
+import { AyahNo, Page, Surah } from "./types";
+/**
+ * Finds the page number for the given Surah and Ayah number.
+ *
+ * @param surah - The Surah to find the page for.
+ * @param ayah - The Ayah number to find the page for.
+ * @param ayahMode - If true, the `ayah` parameter is treated as an AyahId instead of an AyahNo.
+ * @returns The page number for the given Surah and Ayah.
+ */
+export declare function findPage(surah: Surah, ayah: AyahNo, ayahMode?: boolean): Page;
diff --git a/lib_es/findPage.mjs b/lib_es/findPage.mjs
new file mode 100644
index 0000000..3d821a8
--- /dev/null
+++ b/lib_es/findPage.mjs
@@ -0,0 +1,7 @@
+import { findAyaidBySurah } from "./findAyaidBySurah.mjs";
+import { PageList } from "./lists/pageList.mjs";
+import { checkValidAyahId, checkValidSurah } from "./validation.mjs";
+export function findPage(surah, ayah, ayahMode = false) {
+  const ayahId = ayahMode ? checkValidAyahId(ayah) && ayah : checkValidSurah(surah) && findAyaidBySurah(surah, ayah);
+  return PageList.findIndex((x) => x > ayahId) - 1;
+}
diff --git a/lib_es/findRangeAroundAyah.d.ts b/lib_es/findRangeAroundAyah.d.ts
new file mode 100644
index 0000000..54f649e
--- /dev/null
+++ b/lib_es/findRangeAroundAyah.d.ts
@@ -0,0 +1,13 @@
+import { AyahNo, Surah, SurahAyah } from "./types";
+/**
+ * ALternative deprecated method
+ * @param {*} pageNum
+ */
+/**
+ * Find range containing ayah according to the mode
+ * @param surah
+ * @param ayah
+ * @param {*} mode can be either 'all', 'juz', 'surah', 'ayah', 'page'
+ * default is all
+ */
+export declare function findRangeAroundAyah(surah: Surah, ayah: AyahNo, mode: "juz" | "surah" | "ayah" | "page" | "all", ayahMode?: boolean): SurahAyah;
diff --git a/lib_es/findRangeAroundAyah.mjs b/lib_es/findRangeAroundAyah.mjs
new file mode 100644
index 0000000..a0bbac5
--- /dev/null
+++ b/lib_es/findRangeAroundAyah.mjs
@@ -0,0 +1,30 @@
+import { meta } from "./const.mjs";
+import { findAyaidBySurah } from "./findAyaidBySurah.mjs";
+import { findJuzByAyaid } from "./findJuzByAyaid.mjs";
+import { findPage } from "./findPage.mjs";
+import { JuzList } from "./lists/juzList.mjs";
+import { PageList } from "./lists/pageList.mjs";
+import { SuraList } from "./lists/surahList.mjs";
+import { checkValidSurah } from "./validation.mjs";
+export function findRangeAroundAyah(surah, ayah, mode, ayahMode = false) {
+  const ayahId = ayahMode ? ayah : checkValidSurah(surah) && findAyaidBySurah(surah, ayah);
+  switch (mode) {
+    case "juz": {
+      const juz = findJuzByAyaid(ayahId);
+      return [JuzList[juz], JuzList[juz + 1] - 1];
+    }
+    case "surah": {
+      return [SuraList[surah][0] + 1, SuraList[surah + 1][0]];
+    }
+    case "ayah": {
+      return [ayahId, ayahId];
+    }
+    case "page": {
+      const page = findPage(-1, ayahId, true);
+      return [PageList[page], PageList[page + 1] - 1];
+    }
+    case "all":
+    default:
+      return [1, meta.numAyas];
+  }
+}
diff --git a/lib_es/findSurahByAyaid.d.ts b/lib_es/findSurahByAyaid.d.ts
new file mode 100644
index 0000000..931be95
--- /dev/null
+++ b/lib_es/findSurahByAyaid.d.ts
@@ -0,0 +1,8 @@
+import { AyahId, SurahAyah } from "./types";
+/**
+ * Finds the Surah (chapter) and Ayah (verse) numbers that the given Ayah ID belongs to.
+ *
+ * @param ayaId - The Ayah ID to find the Surah and Ayah numbers for.
+ * @returns An array containing the Surah number and the Ayah number within that Surah.
+ */
+export declare function findSurahByAyaid(ayaId: AyahId): SurahAyah;
diff --git a/lib_es/findSurahByAyaid.mjs b/lib_es/findSurahByAyaid.mjs
new file mode 100644
index 0000000..e6fb538
--- /dev/null
+++ b/lib_es/findSurahByAyaid.mjs
@@ -0,0 +1,7 @@
+import { SuraList } from "./lists/surahList.mjs";
+import { checkValidAyahId } from "./validation.mjs";
+export function findSurahByAyaid(ayaId) {
+  checkValidAyahId(ayaId);
+  const suraNum = SuraList.findIndex((x) => x[0] >= ayaId) - 1;
+  return [suraNum, ayaId - SuraList[suraNum][0]];
+}
diff --git a/lib_es/getAyaCountinSura.d.ts b/lib_es/getAyaCountinSura.d.ts
new file mode 100644
index 0000000..a8cff44
--- /dev/null
+++ b/lib_es/getAyaCountinSura.d.ts
@@ -0,0 +1,7 @@
+import { Surah } from "./types";
+/**
+ * Get the number of ayahs (verses) in the specified surah.
+ * @param surah - The surah number.
+ * @returns The number of ayahs in the specified surah.
+ */
+export declare function getAyaCountinSura(surah: Surah): number;
diff --git a/lib_es/getAyaCountinSura.mjs b/lib_es/getAyaCountinSura.mjs
new file mode 100644
index 0000000..33db30a
--- /dev/null
+++ b/lib_es/getAyaCountinSura.mjs
@@ -0,0 +1,4 @@
+import { getSurahMeta } from "./getSurahMeta.mjs";
+export function getAyaCountinSura(surah) {
+  return getSurahMeta(surah)[1];
+}
diff --git a/lib_es/getSurahMeta.d.ts b/lib_es/getSurahMeta.d.ts
new file mode 100644
index 0000000..408c72d
--- /dev/null
+++ b/lib_es/getSurahMeta.d.ts
@@ -0,0 +1,8 @@
+import { Surah, SurahMeta } from "./types";
+/**
+ * Gets the metadata for the specified Surah.
+ *
+ * @param surah - The Surah to get the metadata for.
+ * @returns The metadata for the specified Surah.
+ */
+export declare function getSurahMeta(surah: Surah): SurahMeta;
diff --git a/lib_es/getSurahMeta.mjs b/lib_es/getSurahMeta.mjs
new file mode 100644
index 0000000..7447bce
--- /dev/null
+++ b/lib_es/getSurahMeta.mjs
@@ -0,0 +1,6 @@
+import { SuraList } from "./lists/surahList.mjs";
+import { checkValidSurah } from "./validation.mjs";
+export function getSurahMeta(surah) {
+  checkValidSurah(surah);
+  return SuraList[surah];
+}
diff --git a/lib_es/hizbList.js b/lib_es/hizbList.js
deleted file mode 100644
index 6bb7381..0000000
--- a/lib_es/hizbList.js
+++ /dev/null
@@ -1,21 +0,0 @@
-export const HizbQuarterList = [
-    0, 1, 33, 51, 67, 82, 99, 113, 131, 149, 165, 184, 196, 210, 226, 240, 250,
-    260, 270, 279, 290, 308, 326, 345, 368, 386, 406, 426, 446, 464, 479, 494,
-    505, 517, 529, 551, 567, 581, 593, 607, 628, 641, 656, 670, 681, 696, 710,
-    720, 736, 751, 766, 778, 802, 825, 848, 863, 884, 900, 916, 930, 940, 955,
-    985, 1001, 1019, 1042, 1071, 1096, 1110, 1125, 1143, 1161, 1182, 1201, 1221,
-    1236, 1254, 1269, 1281, 1295, 1310, 1328, 1346, 1357, 1375, 1390, 1417, 1435,
-    1454, 1479, 1497, 1514, 1534, 1557, 1581, 1603, 1626, 1649, 1673, 1697, 1712,
-    1726, 1742, 1760, 1778, 1803, 1852, 1902, 1931, 1952, 1976, 1991, 2012, 2030,
-    2052, 2079, 2099, 2128, 2157, 2172, 2191, 2215, 2239, 2272, 2309, 2349, 2403,
-    2431, 2459, 2484, 2512, 2534, 2566, 2596, 2614, 2633, 2655, 2674, 2709, 2748,
-    2792, 2812, 2826, 2844, 2856, 2876, 2908, 2933, 2984, 3043, 3113, 3160, 3186,
-    3215, 3241, 3264, 3281, 3303, 3328, 3341, 3366, 3386, 3410, 3440, 3463, 3491,
-    3514, 3534, 3551, 3564, 3584, 3593, 3616, 3630, 3652, 3675, 3701, 3733, 3765,
-    3810, 3871, 3933, 3991, 4022, 4066, 4090, 4111, 4134, 4154, 4174, 4199, 4227,
-    4243, 4265, 4285, 4299, 4323, 4349, 4382, 4431, 4485, 4511, 4531, 4555, 4578,
-    4601, 4613, 4626, 4657, 4706, 4759, 4810, 4855, 4902, 4980, 5054, 5091, 5105,
-    5118, 5137, 5157, 5178, 5192, 5218, 5230, 5242, 5272, 5324, 5394, 5448, 5495,
-    5552, 5610, 5673, 5759, 5830, 5885, 5949, 6024, 6091, 6155, 6237,
-];
-//# sourceMappingURL=hizbList.js.map
\ No newline at end of file
diff --git a/lib_es/hizbList.js.map b/lib_es/hizbList.js.map
deleted file mode 100644
index 04c2ab8..0000000
--- a/lib_es/hizbList.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"hizbList.js","sourceRoot":"","sources":["../src/hizbList.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,eAAe,GAAa;IACvC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IAC1E,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC3E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;CACjE,CAAA"}
\ No newline at end of file
diff --git a/types/i18n/sura.en.d.ts b/lib_es/i18n/sura.en.d.ts
similarity index 100%
rename from types/i18n/sura.en.d.ts
rename to lib_es/i18n/sura.en.d.ts
diff --git a/lib_es/i18n/sura.en.js b/lib_es/i18n/sura.en.js
deleted file mode 100644
index 9daff5f..0000000
--- a/lib_es/i18n/sura.en.js
+++ /dev/null
@@ -1,118 +0,0 @@
-export const suraNames = [
-    [],
-    ["Al-Faatiha", "The Opening"],
-    ["Al-Baqara", "The Cow"],
-    ["Aal-i-Imraan", "The Family of Imraan"],
-    ["An-Nisaa", "The Women"],
-    ["Al-Maaida", "The Table"],
-    ["Al-An'aam", "The Cattle"],
-    ["Al-A'raaf", "The Heights"],
-    ["Al-Anfaal", "The Spoils of War"],
-    ["At-Tawba", "The Repentance"],
-    ["Yunus", "Jonas"],
-    ["Hud", "Hud"],
-    ["Yusuf", "Joseph"],
-    ["Ar-Ra'd", "The Thunder"],
-    ["Ibrahim", "Abraham"],
-    ["Al-Hijr", "The Rock"],
-    ["An-Nahl", "The Bee"],
-    ["Al-Israa", "The Night Journey"],
-    ["Al-Kahf", "The Cave"],
-    ["Maryam", "Mary"],
-    ["Taa-Haa", "Taa-Haa"],
-    ["Al-Anbiyaa", "The Prophets"],
-    ["Al-Hajj", "The Pilgrimage"],
-    ["Al-Muminoon", "The Believers"],
-    ["An-Noor", "The Light"],
-    ["Al-Furqaan", "The Criterion"],
-    ["Ash-Shu'araa", "The Poets"],
-    ["An-Naml", "The Ant"],
-    ["Al-Qasas", "The Stories"],
-    ["Al-Ankaboot", "The Spider"],
-    ["Ar-Room", "The Romans"],
-    ["Luqman", "Luqman"],
-    ["As-Sajda", "The Prostration"],
-    ["Al-Ahzaab", "The Clans"],
-    ["Saba", "Sheba"],
-    ["Faatir", "The Originator"],
-    ["Yaseen", "Yaseen"],
-    ["As-Saaffaat", "Those drawn up in Ranks"],
-    ["Saad", "The letter Saad"],
-    ["Az-Zumar", "The Groups"],
-    ["Al-Ghaafir", "The Forgiver"],
-    ["Fussilat", "Explained in detail"],
-    ["Ash-Shura", "Consultation"],
-    ["Az-Zukhruf", "Ornaments of gold"],
-    ["Ad-Dukhaan", "The Smoke"],
-    ["Al-Jaathiya", "Crouching"],
-    ["Al-Ahqaf", "The Dunes"],
-    ["Muhammad", "Muhammad"],
-    ["Al-Fath", "The Victory"],
-    ["Al-Hujuraat", "The Inner Apartments"],
-    ["Qaaf", "The letter Qaaf"],
-    ["Adh-Dhaariyat", "The Winnowing Winds"],
-    ["At-Tur", "The Mount"],
-    ["An-Najm", "The Star"],
-    ["Al-Qamar", "The Moon"],
-    ["Ar-Rahmaan", "The Beneficent"],
-    ["Al-Waaqia", "The Inevitable"],
-    ["Al-Hadid", "The Iron"],
-    ["Al-Mujaadila", "The Pleading Woman"],
-    ["Al-Hashr", "The Exile"],
-    ["Al-Mumtahana", "She that is to be examined"],
-    ["As-Saff", "The Ranks"],
-    ["Al-Jumu'a", "Friday"],
-    ["Al-Munaafiqoon", "The Hypocrites"],
-    ["At-Taghaabun", "Mutual Disillusion"],
-    ["At-Talaaq", "Divorce"],
-    ["At-Tahrim", "The Prohibition"],
-    ["Al-Mulk", "The Sovereignty"],
-    ["Al-Qalam", "The Pen"],
-    ["Al-Haaqqa", "The Reality"],
-    ["Al-Ma'aarij", "The Ascending Stairways"],
-    ["Nooh", "Noah"],
-    ["Al-Jinn", "The Jinn"],
-    ["Al-Muzzammil", "The Enshrouded One"],
-    ["Al-Muddaththir", "The Cloaked One"],
-    ["Al-Qiyaama", "The Resurrection"],
-    ["Al-Insaan", "Man"],
-    ["Al-Mursalaat", "The Emissaries"],
-    ["An-Naba", "The Announcement"],
-    ["An-Naazi'aat", "Those who drag forth"],
-    ["Abasa", "He frowned"],
-    ["At-Takwir", "The Overthrowing"],
-    ["Al-Infitaar", "The Cleaving"],
-    ["Al-Mutaffifin", "Defrauding"],
-    ["Al-Inshiqaaq", "The Splitting Open"],
-    ["Al-Burooj", "The Constellations"],
-    ["At-Taariq", "The Morning Star"],
-    ["Al-A'laa", "The Most High"],
-    ["Al-Ghaashiya", "The Overwhelming"],
-    ["Al-Fajr", "The Dawn"],
-    ["Al-Balad", "The City"],
-    ["Ash-Shams", "The Sun"],
-    ["Al-Lail", "The Night"],
-    ["Ad-Dhuhaa", "The Morning Hours"],
-    ["Ash-Sharh", "The Consolation"],
-    ["At-Tin", "The Fig"],
-    ["Al-Alaq", "The Clot"],
-    ["Al-Qadr", "The Power, Fate"],
-    ["Al-Bayyina", "The Evidence"],
-    ["Az-Zalzala", "The Earthquake"],
-    ["Al-Aadiyaat", "The Chargers"],
-    ["Al-Qaari'a", "The Calamity"],
-    ["At-Takaathur", "Competition"],
-    ["Al-Asr", "The Declining Day, Epoch"],
-    ["Al-Humaza", "The Traducer"],
-    ["Al-Fil", "The Elephant"],
-    ["Quraish", "Quraysh"],
-    ["Al-Maa'un", "Almsgiving"],
-    ["Al-Kawthar", "Abundance"],
-    ["Al-Kaafiroon", "The Disbelievers"],
-    ["An-Nasr", "Divine Support"],
-    ["Al-Masad", "The Palm Fibre"],
-    ["Al-Ikhlaas", "Sincerity"],
-    ["Al-Falaq", "The Dawn"],
-    ["An-Naas", "Mankind"],
-];
-//# sourceMappingURL=sura.en.js.map
\ No newline at end of file
diff --git a/lib_es/i18n/sura.en.js.map b/lib_es/i18n/sura.en.js.map
deleted file mode 100644
index 70b8dba..0000000
--- a/lib_es/i18n/sura.en.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"sura.en.js","sourceRoot":"","sources":["../../src/i18n/sura.en.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/dist/json/sura.en.ts b/lib_es/i18n/sura.en.mjs
similarity index 97%
rename from dist/json/sura.en.ts
rename to lib_es/i18n/sura.en.mjs
index 036cba0..0af2b32 100644
--- a/dist/json/sura.en.ts
+++ b/lib_es/i18n/sura.en.mjs
@@ -1,5 +1,4 @@
-import { SuraName } from "../types"
-export const suraNames: (SuraName | [])[] = [
+export const suraNames = [
   [],
   ["Al-Faatiha", "The Opening"],
   ["Al-Baqara", "The Cow"],
@@ -114,5 +113,5 @@ export const suraNames: (SuraName | [])[] = [
   ["Al-Masad", "The Palm Fibre"],
   ["Al-Ikhlaas", "Sincerity"],
   ["Al-Falaq", "The Dawn"],
-  ["An-Naas", "Mankind"],
-]
+  ["An-Naas", "Mankind"]
+];
diff --git a/types/i18n/sura.ru.d.ts b/lib_es/i18n/sura.ru.d.ts
similarity index 100%
rename from types/i18n/sura.ru.d.ts
rename to lib_es/i18n/sura.ru.d.ts
diff --git a/lib_es/i18n/sura.ru.js b/lib_es/i18n/sura.ru.js
deleted file mode 100644
index d79dd12..0000000
--- a/lib_es/i18n/sura.ru.js
+++ /dev/null
@@ -1,118 +0,0 @@
-export const suraNames = [
-    [],
-    ["Аль-Фатиха", "Открывающая Коран"],
-    ["Аль-Бакара", "Корова"],
-    ["Аль ‘Имран", "Семейство ‘Имрана"],
-    ["Ан-Ниса", "Женщины"],
-    ["Аль-Маида", "Трапеза"],
-    ["Аль-Ан‘ам", "Скот"],
-    ["Аль-А‘раф", "Ограды"],
-    ["Аль-Анфаль", "Военная добыча"],
-    ["Ат-Тауба", "Покаяние"],
-    ["Юнус", "Иона"],
-    ["Худ", "Худ"],
-    ["Юсуф", "Иосиф"],
-    ["Ар-Ра‘д", "Гром"],
-    ["Ибрахим", "Авраам"],
-    ["Аль-Хиджр", "Хиджр"],
-    ["Ан-Нахль", "Пчёлы"],
-    ["Аль-Исра", "Ночной перенос"],
-    ["Аль-Кяхф", "Пещера"],
-    ["Марьям", "Мария"],
-    ["Та, ха", "Та, ха"],
-    ["Аль-Анбия", "Пророки"],
-    ["Аль-Хаджж", "Хадж"],
-    ["Аль-Му’минун", "Верующие"],
-    ["Ан-Нур", "Свет"],
-    ["Аль-Фуркан", "Различение"],
-    ["Аш-Шу‘ара", "Поэты"],
-    ["Ан-Намль", "Муравьи"],
-    ["Аль-Касас", "Рассказ"],
-    ["Аль-‘Анкабут", "Паук"],
-    ["Ар-Рум", "Ромеи"],
-    ["Лукман", "Лукман"],
-    ["Ас-Саджда", "Земной поклон"],
-    ["Аль-Ахзаб", "Полчища"],
-    ["Саба’", "Сава"],
-    ["Фатыр", "Зиждитель"],
-    ["Йа, син", "Йа, син"],
-    ["Ас-Саффат", "Стоящие в ряд"],
-    ["Сад", "Сад"],
-    ["Аз-Зумар", "Толпы"],
-    ["Гафир", "Прощающий"],
-    ["Фуссылят", "Разъяснены"],
-    ["Аш-Шура", "Совет"],
-    ["Аз-Зухруф", "Украшения"],
-    ["Ад-Духан", "Дым"],
-    ["Аль-Джасия", "Коленопреклонённые"],
-    ["Аль-Ахкаф", "Барханы"],
-    ["Мухаммад", "Мухаммад"],
-    ["Аль-Фатх", "Победа"],
-    ["Аль-Худжурат", "Покои"],
-    ["Каф", "Каф"],
-    ["Аз-Зарият", "Рассеивающие"],
-    ["Ат-Тур", "Гора"],
-    ["Ан-Наджм", "Звезда"],
-    ["Аль-Камар", "Луна"],
-    ["Ар-Рахман", "Милостивый"],
-    ["Аль-Ваки‘а", "Неизбежное"],
-    ["Аль-Хадид", "Железо"],
-    ["Аль-Муджадиля", "Препирающаяся"],
-    ["Аль-Хашр", "Сбор"],
-    ["Аль-Мумтахана", "Испытуемая"],
-    ["Ас-Сафф", "Ряд"],
-    ["Аль-Джуму‘а", "Собрание"],
-    ["Аль-Мунафикун", "Лицемеры"],
-    ["Ат-Тагабун", "Обделение"],
-    ["Ат-Таляк", "Развод"],
-    ["Ат-Тахрим", "Запрещение"],
-    ["Аль-Мульк", "Власть"],
-    ["Аль-Калям", "Перо"],
-    ["Аль-Хакка", "Неминуемое"],
-    ["Аль-Ма‘аридж", "Степени"],
-    ["Нух", "Ной"],
-    ["Аль-Джинн", "Джинны"],
-    ["Аль-Муззаммиль", "Закутавшийся"],
-    ["Аль-Муддассир", "Завернувшийся"],
-    ["Аль-Кияма", "Воскресение"],
-    ["Аль-Инсан", "Человек"],
-    ["Аль-Мурсалят", "Посылаемые"],
-    ["Ан-Наба’", "Весть"],
-    ["Ан-Нази‘ат", "Вырывающие"],
-    ["‘Абаса", "Нахмурился"],
-    ["Ат-Таквир", "Сворачивание"],
-    ["Аль-Инфитар", "Раскалывание"],
-    ["Аль-Мутаффифин", "Обвешивающие"],
-    ["Аль-Иншикак", "Разверзнется"],
-    ["Аль-Бурудж", "Созвездия"],
-    ["Ат-Тарик", "Ночной гость"],
-    ["Аль-А‘ля", "Всевышний"],
-    ["Аль-Гашия", "Покрывающее"],
-    ["Аль-Фаджр", "Заря"],
-    ["Аль-Баляд", "Город"],
-    ["Аш-Шамс", "Солнце"],
-    ["Аль-Лейль", "Ночь"],
-    ["Ад-Духа", "Утро"],
-    ["Аль-Инширах", "Раскрытие"],
-    ["Ат-Тин", "Смоковница"],
-    ["Аль-‘Аляк", "Сгусток крови"],
-    ["Аль-Кадр", "Величие"],
-    ["Аль-Баййина", "Ясный довод"],
-    ["Аз-Зальзаля", "Сотрясение"],
-    ["Аль-‘Адият", "Скачущие"],
-    ["Аль-Кари‘а", "Поражающее"],
-    ["Ат-Такясур", "Соперничество"],
-    ["Аль-‘Аср", "Предвечернее время"],
-    ["Аль-Хумаза", "Хулитель"],
-    ["Аль-Филь", "Слон"],
-    ["Курайш", "Курайшиты"],
-    ["Аль-Ма‘ун", "Утварь"],
-    ["Аль-Каусар", "Каусар"],
-    ["Аль-Кяфирун", "Неверующие"],
-    ["Ан-Наср", "Помощь"],
-    ["Аль-Масад", "Пальмовые волокна"],
-    ["Аль-Ихляс", "Очищение веры"],
-    ["Аль-Фаляк", "Рассвет"],
-    ["Ан-Нас", "Люди"],
-];
-//# sourceMappingURL=sura.ru.js.map
\ No newline at end of file
diff --git a/lib_es/i18n/sura.ru.js.map b/lib_es/i18n/sura.ru.js.map
deleted file mode 100644
index 61b7945..0000000
--- a/lib_es/i18n/sura.ru.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"sura.ru.js","sourceRoot":"","sources":["../../src/i18n/sura.ru.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/lib_es/i18n/sura.ru.mjs b/lib_es/i18n/sura.ru.mjs
new file mode 100644
index 0000000..b28463a
--- /dev/null
+++ b/lib_es/i18n/sura.ru.mjs
@@ -0,0 +1,117 @@
+export const suraNames = [
+  [],
+  ["\u0410\u043B\u044C-\u0424\u0430\u0442\u0438\u0445\u0430", "\u041E\u0442\u043A\u0440\u044B\u0432\u0430\u044E\u0449\u0430\u044F \u041A\u043E\u0440\u0430\u043D"],
+  ["\u0410\u043B\u044C-\u0411\u0430\u043A\u0430\u0440\u0430", "\u041A\u043E\u0440\u043E\u0432\u0430"],
+  ["\u0410\u043B\u044C \u2018\u0418\u043C\u0440\u0430\u043D", "\u0421\u0435\u043C\u0435\u0439\u0441\u0442\u0432\u043E \u2018\u0418\u043C\u0440\u0430\u043D\u0430"],
+  ["\u0410\u043D-\u041D\u0438\u0441\u0430", "\u0416\u0435\u043D\u0449\u0438\u043D\u044B"],
+  ["\u0410\u043B\u044C-\u041C\u0430\u0438\u0434\u0430", "\u0422\u0440\u0430\u043F\u0435\u0437\u0430"],
+  ["\u0410\u043B\u044C-\u0410\u043D\u2018\u0430\u043C", "\u0421\u043A\u043E\u0442"],
+  ["\u0410\u043B\u044C-\u0410\u2018\u0440\u0430\u0444", "\u041E\u0433\u0440\u0430\u0434\u044B"],
+  ["\u0410\u043B\u044C-\u0410\u043D\u0444\u0430\u043B\u044C", "\u0412\u043E\u0435\u043D\u043D\u0430\u044F \u0434\u043E\u0431\u044B\u0447\u0430"],
+  ["\u0410\u0442-\u0422\u0430\u0443\u0431\u0430", "\u041F\u043E\u043A\u0430\u044F\u043D\u0438\u0435"],
+  ["\u042E\u043D\u0443\u0441", "\u0418\u043E\u043D\u0430"],
+  ["\u0425\u0443\u0434", "\u0425\u0443\u0434"],
+  ["\u042E\u0441\u0443\u0444", "\u0418\u043E\u0441\u0438\u0444"],
+  ["\u0410\u0440-\u0420\u0430\u2018\u0434", "\u0413\u0440\u043E\u043C"],
+  ["\u0418\u0431\u0440\u0430\u0445\u0438\u043C", "\u0410\u0432\u0440\u0430\u0430\u043C"],
+  ["\u0410\u043B\u044C-\u0425\u0438\u0434\u0436\u0440", "\u0425\u0438\u0434\u0436\u0440"],
+  ["\u0410\u043D-\u041D\u0430\u0445\u043B\u044C", "\u041F\u0447\u0451\u043B\u044B"],
+  ["\u0410\u043B\u044C-\u0418\u0441\u0440\u0430", "\u041D\u043E\u0447\u043D\u043E\u0439 \u043F\u0435\u0440\u0435\u043D\u043E\u0441"],
+  ["\u0410\u043B\u044C-\u041A\u044F\u0445\u0444", "\u041F\u0435\u0449\u0435\u0440\u0430"],
+  ["\u041C\u0430\u0440\u044C\u044F\u043C", "\u041C\u0430\u0440\u0438\u044F"],
+  ["\u0422\u0430, \u0445\u0430", "\u0422\u0430, \u0445\u0430"],
+  ["\u0410\u043B\u044C-\u0410\u043D\u0431\u0438\u044F", "\u041F\u0440\u043E\u0440\u043E\u043A\u0438"],
+  ["\u0410\u043B\u044C-\u0425\u0430\u0434\u0436\u0436", "\u0425\u0430\u0434\u0436"],
+  ["\u0410\u043B\u044C-\u041C\u0443\u2019\u043C\u0438\u043D\u0443\u043D", "\u0412\u0435\u0440\u0443\u044E\u0449\u0438\u0435"],
+  ["\u0410\u043D-\u041D\u0443\u0440", "\u0421\u0432\u0435\u0442"],
+  ["\u0410\u043B\u044C-\u0424\u0443\u0440\u043A\u0430\u043D", "\u0420\u0430\u0437\u043B\u0438\u0447\u0435\u043D\u0438\u0435"],
+  ["\u0410\u0448-\u0428\u0443\u2018\u0430\u0440\u0430", "\u041F\u043E\u044D\u0442\u044B"],
+  ["\u0410\u043D-\u041D\u0430\u043C\u043B\u044C", "\u041C\u0443\u0440\u0430\u0432\u044C\u0438"],
+  ["\u0410\u043B\u044C-\u041A\u0430\u0441\u0430\u0441", "\u0420\u0430\u0441\u0441\u043A\u0430\u0437"],
+  ["\u0410\u043B\u044C-\u2018\u0410\u043D\u043A\u0430\u0431\u0443\u0442", "\u041F\u0430\u0443\u043A"],
+  ["\u0410\u0440-\u0420\u0443\u043C", "\u0420\u043E\u043C\u0435\u0438"],
+  ["\u041B\u0443\u043A\u043C\u0430\u043D", "\u041B\u0443\u043A\u043C\u0430\u043D"],
+  ["\u0410\u0441-\u0421\u0430\u0434\u0436\u0434\u0430", "\u0417\u0435\u043C\u043D\u043E\u0439 \u043F\u043E\u043A\u043B\u043E\u043D"],
+  ["\u0410\u043B\u044C-\u0410\u0445\u0437\u0430\u0431", "\u041F\u043E\u043B\u0447\u0438\u0449\u0430"],
+  ["\u0421\u0430\u0431\u0430\u2019", "\u0421\u0430\u0432\u0430"],
+  ["\u0424\u0430\u0442\u044B\u0440", "\u0417\u0438\u0436\u0434\u0438\u0442\u0435\u043B\u044C"],
+  ["\u0419\u0430, \u0441\u0438\u043D", "\u0419\u0430, \u0441\u0438\u043D"],
+  ["\u0410\u0441-\u0421\u0430\u0444\u0444\u0430\u0442", "\u0421\u0442\u043E\u044F\u0449\u0438\u0435 \u0432 \u0440\u044F\u0434"],
+  ["\u0421\u0430\u0434", "\u0421\u0430\u0434"],
+  ["\u0410\u0437-\u0417\u0443\u043C\u0430\u0440", "\u0422\u043E\u043B\u043F\u044B"],
+  ["\u0413\u0430\u0444\u0438\u0440", "\u041F\u0440\u043E\u0449\u0430\u044E\u0449\u0438\u0439"],
+  ["\u0424\u0443\u0441\u0441\u044B\u043B\u044F\u0442", "\u0420\u0430\u0437\u044A\u044F\u0441\u043D\u0435\u043D\u044B"],
+  ["\u0410\u0448-\u0428\u0443\u0440\u0430", "\u0421\u043E\u0432\u0435\u0442"],
+  ["\u0410\u0437-\u0417\u0443\u0445\u0440\u0443\u0444", "\u0423\u043A\u0440\u0430\u0448\u0435\u043D\u0438\u044F"],
+  ["\u0410\u0434-\u0414\u0443\u0445\u0430\u043D", "\u0414\u044B\u043C"],
+  ["\u0410\u043B\u044C-\u0414\u0436\u0430\u0441\u0438\u044F", "\u041A\u043E\u043B\u0435\u043D\u043E\u043F\u0440\u0435\u043A\u043B\u043E\u043D\u0451\u043D\u043D\u044B\u0435"],
+  ["\u0410\u043B\u044C-\u0410\u0445\u043A\u0430\u0444", "\u0411\u0430\u0440\u0445\u0430\u043D\u044B"],
+  ["\u041C\u0443\u0445\u0430\u043C\u043C\u0430\u0434", "\u041C\u0443\u0445\u0430\u043C\u043C\u0430\u0434"],
+  ["\u0410\u043B\u044C-\u0424\u0430\u0442\u0445", "\u041F\u043E\u0431\u0435\u0434\u0430"],
+  ["\u0410\u043B\u044C-\u0425\u0443\u0434\u0436\u0443\u0440\u0430\u0442", "\u041F\u043E\u043A\u043E\u0438"],
+  ["\u041A\u0430\u0444", "\u041A\u0430\u0444"],
+  ["\u0410\u0437-\u0417\u0430\u0440\u0438\u044F\u0442", "\u0420\u0430\u0441\u0441\u0435\u0438\u0432\u0430\u044E\u0449\u0438\u0435"],
+  ["\u0410\u0442-\u0422\u0443\u0440", "\u0413\u043E\u0440\u0430"],
+  ["\u0410\u043D-\u041D\u0430\u0434\u0436\u043C", "\u0417\u0432\u0435\u0437\u0434\u0430"],
+  ["\u0410\u043B\u044C-\u041A\u0430\u043C\u0430\u0440", "\u041B\u0443\u043D\u0430"],
+  ["\u0410\u0440-\u0420\u0430\u0445\u043C\u0430\u043D", "\u041C\u0438\u043B\u043E\u0441\u0442\u0438\u0432\u044B\u0439"],
+  ["\u0410\u043B\u044C-\u0412\u0430\u043A\u0438\u2018\u0430", "\u041D\u0435\u0438\u0437\u0431\u0435\u0436\u043D\u043E\u0435"],
+  ["\u0410\u043B\u044C-\u0425\u0430\u0434\u0438\u0434", "\u0416\u0435\u043B\u0435\u0437\u043E"],
+  ["\u0410\u043B\u044C-\u041C\u0443\u0434\u0436\u0430\u0434\u0438\u043B\u044F", "\u041F\u0440\u0435\u043F\u0438\u0440\u0430\u044E\u0449\u0430\u044F\u0441\u044F"],
+  ["\u0410\u043B\u044C-\u0425\u0430\u0448\u0440", "\u0421\u0431\u043E\u0440"],
+  ["\u0410\u043B\u044C-\u041C\u0443\u043C\u0442\u0430\u0445\u0430\u043D\u0430", "\u0418\u0441\u043F\u044B\u0442\u0443\u0435\u043C\u0430\u044F"],
+  ["\u0410\u0441-\u0421\u0430\u0444\u0444", "\u0420\u044F\u0434"],
+  ["\u0410\u043B\u044C-\u0414\u0436\u0443\u043C\u0443\u2018\u0430", "\u0421\u043E\u0431\u0440\u0430\u043D\u0438\u0435"],
+  ["\u0410\u043B\u044C-\u041C\u0443\u043D\u0430\u0444\u0438\u043A\u0443\u043D", "\u041B\u0438\u0446\u0435\u043C\u0435\u0440\u044B"],
+  ["\u0410\u0442-\u0422\u0430\u0433\u0430\u0431\u0443\u043D", "\u041E\u0431\u0434\u0435\u043B\u0435\u043D\u0438\u0435"],
+  ["\u0410\u0442-\u0422\u0430\u043B\u044F\u043A", "\u0420\u0430\u0437\u0432\u043E\u0434"],
+  ["\u0410\u0442-\u0422\u0430\u0445\u0440\u0438\u043C", "\u0417\u0430\u043F\u0440\u0435\u0449\u0435\u043D\u0438\u0435"],
+  ["\u0410\u043B\u044C-\u041C\u0443\u043B\u044C\u043A", "\u0412\u043B\u0430\u0441\u0442\u044C"],
+  ["\u0410\u043B\u044C-\u041A\u0430\u043B\u044F\u043C", "\u041F\u0435\u0440\u043E"],
+  ["\u0410\u043B\u044C-\u0425\u0430\u043A\u043A\u0430", "\u041D\u0435\u043C\u0438\u043D\u0443\u0435\u043C\u043E\u0435"],
+  ["\u0410\u043B\u044C-\u041C\u0430\u2018\u0430\u0440\u0438\u0434\u0436", "\u0421\u0442\u0435\u043F\u0435\u043D\u0438"],
+  ["\u041D\u0443\u0445", "\u041D\u043E\u0439"],
+  ["\u0410\u043B\u044C-\u0414\u0436\u0438\u043D\u043D", "\u0414\u0436\u0438\u043D\u043D\u044B"],
+  ["\u0410\u043B\u044C-\u041C\u0443\u0437\u0437\u0430\u043C\u043C\u0438\u043B\u044C", "\u0417\u0430\u043A\u0443\u0442\u0430\u0432\u0448\u0438\u0439\u0441\u044F"],
+  ["\u0410\u043B\u044C-\u041C\u0443\u0434\u0434\u0430\u0441\u0441\u0438\u0440", "\u0417\u0430\u0432\u0435\u0440\u043D\u0443\u0432\u0448\u0438\u0439\u0441\u044F"],
+  ["\u0410\u043B\u044C-\u041A\u0438\u044F\u043C\u0430", "\u0412\u043E\u0441\u043A\u0440\u0435\u0441\u0435\u043D\u0438\u0435"],
+  ["\u0410\u043B\u044C-\u0418\u043D\u0441\u0430\u043D", "\u0427\u0435\u043B\u043E\u0432\u0435\u043A"],
+  ["\u0410\u043B\u044C-\u041C\u0443\u0440\u0441\u0430\u043B\u044F\u0442", "\u041F\u043E\u0441\u044B\u043B\u0430\u0435\u043C\u044B\u0435"],
+  ["\u0410\u043D-\u041D\u0430\u0431\u0430\u2019", "\u0412\u0435\u0441\u0442\u044C"],
+  ["\u0410\u043D-\u041D\u0430\u0437\u0438\u2018\u0430\u0442", "\u0412\u044B\u0440\u044B\u0432\u0430\u044E\u0449\u0438\u0435"],
+  ["\u2018\u0410\u0431\u0430\u0441\u0430", "\u041D\u0430\u0445\u043C\u0443\u0440\u0438\u043B\u0441\u044F"],
+  ["\u0410\u0442-\u0422\u0430\u043A\u0432\u0438\u0440", "\u0421\u0432\u043E\u0440\u0430\u0447\u0438\u0432\u0430\u043D\u0438\u0435"],
+  ["\u0410\u043B\u044C-\u0418\u043D\u0444\u0438\u0442\u0430\u0440", "\u0420\u0430\u0441\u043A\u0430\u043B\u044B\u0432\u0430\u043D\u0438\u0435"],
+  ["\u0410\u043B\u044C-\u041C\u0443\u0442\u0430\u0444\u0444\u0438\u0444\u0438\u043D", "\u041E\u0431\u0432\u0435\u0448\u0438\u0432\u0430\u044E\u0449\u0438\u0435"],
+  ["\u0410\u043B\u044C-\u0418\u043D\u0448\u0438\u043A\u0430\u043A", "\u0420\u0430\u0437\u0432\u0435\u0440\u0437\u043D\u0435\u0442\u0441\u044F"],
+  ["\u0410\u043B\u044C-\u0411\u0443\u0440\u0443\u0434\u0436", "\u0421\u043E\u0437\u0432\u0435\u0437\u0434\u0438\u044F"],
+  ["\u0410\u0442-\u0422\u0430\u0440\u0438\u043A", "\u041D\u043E\u0447\u043D\u043E\u0439 \u0433\u043E\u0441\u0442\u044C"],
+  ["\u0410\u043B\u044C-\u0410\u2018\u043B\u044F", "\u0412\u0441\u0435\u0432\u044B\u0448\u043D\u0438\u0439"],
+  ["\u0410\u043B\u044C-\u0413\u0430\u0448\u0438\u044F", "\u041F\u043E\u043A\u0440\u044B\u0432\u0430\u044E\u0449\u0435\u0435"],
+  ["\u0410\u043B\u044C-\u0424\u0430\u0434\u0436\u0440", "\u0417\u0430\u0440\u044F"],
+  ["\u0410\u043B\u044C-\u0411\u0430\u043B\u044F\u0434", "\u0413\u043E\u0440\u043E\u0434"],
+  ["\u0410\u0448-\u0428\u0430\u043C\u0441", "\u0421\u043E\u043B\u043D\u0446\u0435"],
+  ["\u0410\u043B\u044C-\u041B\u0435\u0439\u043B\u044C", "\u041D\u043E\u0447\u044C"],
+  ["\u0410\u0434-\u0414\u0443\u0445\u0430", "\u0423\u0442\u0440\u043E"],
+  ["\u0410\u043B\u044C-\u0418\u043D\u0448\u0438\u0440\u0430\u0445", "\u0420\u0430\u0441\u043A\u0440\u044B\u0442\u0438\u0435"],
+  ["\u0410\u0442-\u0422\u0438\u043D", "\u0421\u043C\u043E\u043A\u043E\u0432\u043D\u0438\u0446\u0430"],
+  ["\u0410\u043B\u044C-\u2018\u0410\u043B\u044F\u043A", "\u0421\u0433\u0443\u0441\u0442\u043E\u043A \u043A\u0440\u043E\u0432\u0438"],
+  ["\u0410\u043B\u044C-\u041A\u0430\u0434\u0440", "\u0412\u0435\u043B\u0438\u0447\u0438\u0435"],
+  ["\u0410\u043B\u044C-\u0411\u0430\u0439\u0439\u0438\u043D\u0430", "\u042F\u0441\u043D\u044B\u0439 \u0434\u043E\u0432\u043E\u0434"],
+  ["\u0410\u0437-\u0417\u0430\u043B\u044C\u0437\u0430\u043B\u044F", "\u0421\u043E\u0442\u0440\u044F\u0441\u0435\u043D\u0438\u0435"],
+  ["\u0410\u043B\u044C-\u2018\u0410\u0434\u0438\u044F\u0442", "\u0421\u043A\u0430\u0447\u0443\u0449\u0438\u0435"],
+  ["\u0410\u043B\u044C-\u041A\u0430\u0440\u0438\u2018\u0430", "\u041F\u043E\u0440\u0430\u0436\u0430\u044E\u0449\u0435\u0435"],
+  ["\u0410\u0442-\u0422\u0430\u043A\u044F\u0441\u0443\u0440", "\u0421\u043E\u043F\u0435\u0440\u043D\u0438\u0447\u0435\u0441\u0442\u0432\u043E"],
+  ["\u0410\u043B\u044C-\u2018\u0410\u0441\u0440", "\u041F\u0440\u0435\u0434\u0432\u0435\u0447\u0435\u0440\u043D\u0435\u0435 \u0432\u0440\u0435\u043C\u044F"],
+  ["\u0410\u043B\u044C-\u0425\u0443\u043C\u0430\u0437\u0430", "\u0425\u0443\u043B\u0438\u0442\u0435\u043B\u044C"],
+  ["\u0410\u043B\u044C-\u0424\u0438\u043B\u044C", "\u0421\u043B\u043E\u043D"],
+  ["\u041A\u0443\u0440\u0430\u0439\u0448", "\u041A\u0443\u0440\u0430\u0439\u0448\u0438\u0442\u044B"],
+  ["\u0410\u043B\u044C-\u041C\u0430\u2018\u0443\u043D", "\u0423\u0442\u0432\u0430\u0440\u044C"],
+  ["\u0410\u043B\u044C-\u041A\u0430\u0443\u0441\u0430\u0440", "\u041A\u0430\u0443\u0441\u0430\u0440"],
+  ["\u0410\u043B\u044C-\u041A\u044F\u0444\u0438\u0440\u0443\u043D", "\u041D\u0435\u0432\u0435\u0440\u0443\u044E\u0449\u0438\u0435"],
+  ["\u0410\u043D-\u041D\u0430\u0441\u0440", "\u041F\u043E\u043C\u043E\u0449\u044C"],
+  ["\u0410\u043B\u044C-\u041C\u0430\u0441\u0430\u0434", "\u041F\u0430\u043B\u044C\u043C\u043E\u0432\u044B\u0435 \u0432\u043E\u043B\u043E\u043A\u043D\u0430"],
+  ["\u0410\u043B\u044C-\u0418\u0445\u043B\u044F\u0441", "\u041E\u0447\u0438\u0449\u0435\u043D\u0438\u0435 \u0432\u0435\u0440\u044B"],
+  ["\u0410\u043B\u044C-\u0424\u0430\u043B\u044F\u043A", "\u0420\u0430\u0441\u0441\u0432\u0435\u0442"],
+  ["\u0410\u043D-\u041D\u0430\u0441", "\u041B\u044E\u0434\u0438"]
+];
diff --git a/lib_es/index.d.ts b/lib_es/index.d.ts
new file mode 100644
index 0000000..351af84
--- /dev/null
+++ b/lib_es/index.d.ts
@@ -0,0 +1,31 @@
+export type { QuranMeta } from "./const";
+export type { AyahId, AyahNo, Juz, JuzHizb, JuzMeta, Page, PageMeta, Sajda, SajdaType, SuraName, Surah, SurahAyah, SurahAyahSegment, SurahMeta } from "./types";
+export { ayaStringSplitter } from "./ayaStringSplitter";
+export { meta } from "./const";
+export { findAyaidBySurah } from "./findAyaidBySurah";
+export { findJuz } from "./findJuz";
+export { findJuzAndShift } from "./findJuzAndShift";
+export { findJuzByAyaid } from "./findJuzByAyaid";
+export { findJuzHizb } from "./findJuzHizb";
+export { findJuzHizbByAyaid } from "./findJuzHizbByAyaid";
+export { findJuzMetaBySurah } from "./findJuzMetaBySurah";
+export { findPage } from "./findPage";
+export { findRangeAroundAyah } from "./findRangeAroundAyah";
+export { findSurahByAyaid } from "./findSurahByAyaid";
+export { getAyaCountinSura } from "./getAyaCountinSura";
+export { getSurahMeta } from "./getSurahMeta";
+export { isAyahJuzFirst } from "./isAyahJuzFirst";
+export { isAyahPageFirst } from "./isAyahPageFirst";
+export { HizbQuarterList } from "./lists/hizbList";
+export { JuzList } from "./lists/juzList";
+export { ManzilList } from "./lists/manzilList";
+export { PageList } from "./lists/pageList";
+export { RukuList } from "./lists/rukuList";
+export { SajdaList } from "./lists/sajdaList";
+export { SuraList } from "./lists/surahList";
+export { nextAyah } from "./nextAyah";
+export { pageMeta } from "./pageMeta";
+export { prevAyah } from "./prevAyah";
+export { checkValidAyahId, checkValidSurah, checkValidSurahAyah } from "./validation";
+export { suraNames as suraNamesEn } from "./i18n/sura.en";
+export { suraNames as suraNamesRu } from "./i18n/sura.ru";
diff --git a/lib_es/index.js b/lib_es/index.js
deleted file mode 100644
index 8a4bb86..0000000
--- a/lib_es/index.js
+++ /dev/null
@@ -1,330 +0,0 @@
-// Quran Meta
-import { meta } from "./const";
-//export default QuranMeta;
-//------------------ Sura Data ---------------------
-export { suraNames as suraNamesEn } from "./i18n/sura.en";
-export { suraNames as suraNamesRu } from "./i18n/sura.ru";
-import { SuraList } from "./surahList";
-//------------------ Juz Data ---------------------
-const JuzList = [
-    0, 1, 149, 260, 386, 517, 641, 751, 900, 1042, 1201, 1328, 1479, 1649, 1803,
-    2030, 2215, 2484, 2674, 2876, 3215, 3386, 3564, 3733, 4090, 4265, 4511, 4706,
-    5105, 5242, 5673, 6237,
-];
-//------------------ Hizb Data ---------------------
-import { HizbQuarterList } from "./hizbList";
-//------------------ Manzil Data ---------------------
-const ManzilList = [0, 1, 670, 1365, 2030, 2933, 3789, 4631, 6237];
-//------------------ Ruku Data ---------------------
-// export Ruku  from "~/js/qdata-ruku.json"
-import { RukuList } from "./rukuList";
-//------------------ Page Data ---------------------
-// code to get starting pages for surahs
-// let res=[];
-// Page.reduce((s,c,p)=>{
-// 	while (c[0]>=s)
-// 		{res.push([s,c[0],s==c[0]?p:p-1]);s+=1;}
-// 	return s
-// },0)
-import { PageList } from "./pageList";
-// export Page from "~/js/qdata-page.json"
-//------------------ Sajda Data ---------------------
-const SajdaList = [
-    // [ayaId, type]
-    [1160, "recommended"],
-    [1722, "recommended"],
-    [1951, "recommended"],
-    [2138, "recommended"],
-    [2308, "recommended"],
-    [2613, "recommended"],
-    [2672, "recommended"],
-    [2915, "recommended"],
-    [3185, "recommended"],
-    [3518, "obligatory"],
-    [3994, "recommended"],
-    [4256, "obligatory"],
-    [4846, "obligatory"],
-    [5905, "recommended"],
-    [6125, "obligatory"],
-];
-//export default QuranMeta;
-import { ayaStringSplitter } from "./ayaStringSplitter";
-export { meta, SuraList, JuzList, HizbQuarterList, ManzilList, RukuList, PageList, SajdaList, ayaStringSplitter, };
-function binarySearch(ar, el, compare_fn = (a, b) => a - b) {
-    let m = 0;
-    let n = ar.length - 1;
-    while (m <= n) {
-        const k = (n + m) >> 1;
-        const cmp = compare_fn(el, ar[k]);
-        if (cmp > 0) {
-            m = k + 1;
-        }
-        else if (cmp < 0) {
-            n = k - 1;
-        }
-        else {
-            return k;
-        }
-    }
-    return -m - 1;
-}
-function checkValidAyahId(ayaId) {
-    if (ayaId < 1 || ayaId > meta.numAyas)
-        throw new RangeError("ayaid must be between 1 and " + meta.numAyas);
-    return true;
-}
-function checkValidSurah(surah, checkOnly = false) {
-    if (surah < 1 || surah > meta.numSuras) {
-        if (checkOnly)
-            return false;
-        throw new RangeError("Surah must be between 1 and " + meta.numSuras);
-    }
-    return true;
-}
-/**
- *
- * @param {*} ayaId
- */
-export function findSurahByAyaid(ayaId) {
-    checkValidAyahId(ayaId);
-    const suraNum = SuraList.findIndex(x => x[0] >= ayaId) - 1;
-    return suraNum < 0
-        ? [114, ayaId - SuraList[114][0]]
-        : [suraNum, ayaId - SuraList[suraNum][0]];
-}
-/**
- *
- * @param {*} ayaId
- */
-export function findJuzByAyaid(ayaId) {
-    checkValidAyahId(ayaId);
-    return JuzList.findIndex(x => x > ayaId) - 1;
-}
-/**
- *
- * @param {*} ayaId
- */
-export function findJuzHizbByAyaid(ayaId) {
-    checkValidAyahId(ayaId);
-    const juz = findJuzByAyaid(ayaId);
-    const id = HizbQuarterList.findIndex(x => x > ayaId) - 1;
-    return { juz, hizb: id % 8 || 8, id };
-}
-/**
- *
- * @param {*} surah
- * @param {*} ayah
- */
-export function findJuz(surah, ayah = 1, ayahMode = false) {
-    const ayahId = ayahMode
-        ? ayah
-        : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
-    return findJuzByAyaid(ayahId);
-}
-/**
- *
- * @param {*} surah
- * @param {*} ayah
- */
-export function findJuzHizb(surah, ayah = 1, ayahMode = false) {
-    const ayahId = ayahMode
-        ? ayah
-        : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
-    return findJuzHizbByAyaid(ayahId);
-}
-/**
- * Returns Positive number if aya is first ayah of juz, number is juz number
- * @param {*} surah
- * @param {*} ayah
- */
-export function isAyahJuzFirst(surah, ayah, ayahMode = false) {
-    const ayahId = ayahMode
-        ? (checkValidAyahId(ayah) && ayah)
-        : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
-    return binarySearch(JuzList, ayahId);
-    // return JuzList.findIndex((x: AyahId) => x == ayahId)
-}
-/**
- * Returns Positive number if aya is first ayah of juz, number is juz number
- * @param {*} surah
- * @param {*} ayah
- */
-export function isAyahPageFirst(surah, ayah, ayahMode = false) {
-    const ayahId = ayahMode
-        ? (checkValidAyahId(ayah) && ayah)
-        : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
-    return binarySearch(PageList, ayahId);
-    // return PageList.findIndex((x: AyahId) => x == ayahId)
-}
-/**
- *  Find juz containing ayah
- * @param surah
- * @param ayah
- * @param ayahMode
- * @returns
- */
-export function findJuzAndShift(surah, ayah, ayahMode = false) {
-    const ayahId = ayahMode
-        ? (checkValidAyahId(ayah) && ayah)
-        : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
-    const juz = findJuzByAyaid(ayahId);
-    const leftAyahId = JuzList[juz];
-    if (surah < 0)
-        [surah] = findSurahByAyaid(leftAyahId);
-    const [surahStartAyahId] = SuraList[surah];
-    return {
-        juz,
-        ayahsBetweenJuzSurah: surahStartAyahId - leftAyahId + 1,
-        leftAyahId,
-    };
-}
-//todo explain function
-/**
- * for given ayah return [starting juz, number of ayahsFrom beginning of that juz, right juz, number of ayahs in surah
- * @param {*} suraNumber
- * @param {*} ayaNumber
- * @returns [leftjuz, ayahsFromStartOfJuz, rightJuz, ayahsinSurah,leftAyahId,rightAyahId]
- */
-export function findJuzMetaBySurah(surah, ayah = 1) {
-    const { juz: leftjuz, ayahsBetweenJuzSurah, leftAyahId, } = findJuzAndShift(surah, ayah);
-    let rightJuz = leftjuz;
-    while (rightJuz < meta.numJuzs &&
-        findSurahByAyaid(JuzList[rightJuz + 1])[0] == surah)
-        rightJuz++;
-    return {
-        leftjuz,
-        ayahsBetweenJuzSurah,
-        rightJuz,
-        leftAyahId,
-        rightAyahId: JuzList[rightJuz + 1],
-    };
-}
-/**
- * Get Surah meta
- * @param surah
- */
-export function getSurahMeta(surah) {
-    checkValidSurah(surah);
-    return SuraList[surah];
-}
-/**
- *
- * @param {*} suraNumber
- * @param {*} ayaNumber
- */
-export function findPage(surah, ayah, ayahMode = false) {
-    const ayahId = ayahMode
-        ? (checkValidAyahId(ayah) && ayah)
-        : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
-    return PageList.findIndex(x => x > ayahId) - 1;
-}
-/**
- *
- * @param {*} surah
- * @param {*} ayah```
- */
-export function findAyaidBySurah(surah, ayah) {
-    const [startAyahId] = getSurahMeta(surah);
-    return startAyahId + ayah;
-}
-/**
- *
- * @param {*} surah
- */
-export function getAyaCountinSura(surah) {
-    return getSurahMeta(surah)[1];
-}
-/**
- *
- * @param {*} surah
- * @param {*} ayah
- */
-export function nextAyah(surah, ayah) {
-    if (surah < 1 || surah > meta.numSuras)
-        throw new RangeError("Surah must be between 1 and " + meta.numSuras);
-    const ayaid = findAyaidBySurah(surah, ayah);
-    return findSurahByAyaid(ayaid == meta.numAyas ? 1 : ayaid + 1);
-}
-/**
- *
- * @param {*} surah
- * @param {*} ayah
- */
-export function prevAyah(surah, ayah) {
-    checkValidSurah(surah);
-    const ayaid = findAyaidBySurah(surah, ayah);
-    return findSurahByAyaid(ayaid == 1 ? meta.numAyas : ayaid - 1);
-}
-/**
- * Get the meta, first and last ayahs of the page
- * @param {*} pageNum
- */
-export function pageMeta(pageNum) {
-    // todo rename to getPageMeta in next major version
-    if (pageNum < 1 || pageNum > meta.numPages)
-        throw new RangeError("pagenum must be between 1 and " + meta.numPages);
-    const [curPage, nextPage] = [
-        PageList[pageNum],
-        PageList[pageNum + 1],
-    ];
-    return {
-        pageNum,
-        first: findSurahByAyaid(curPage),
-        last: [...findSurahByAyaid(nextPage - 1)],
-    };
-}
-/**
- * ALternative deprecated method
- * @param {*} pageNum
- */
-// export function pageMetaOld(pageNum: number): any {
-//   if (pageNum < 1 || pageNum > meta.numPages)
-//   throw new RangeError("pagenum must be between 1 and " + meta.numPages)
-//   const [curPage, nextPage] = [
-//     findSurahByAyaid(PageList[pageNum]),
-//     findSurahByAyaid(PageList[pageNum + 1]),
-//   ]
-//   const [firstSurah, firstAyah, lastSurah, lastAyah] = [
-//     curPage[0],
-//     curPage[1],
-//     nextPage[1] === 1 ? nextPage[0] - 1 : nextPage[0],
-//     nextPage[1] === 1 ? SuraList[nextPage[0] - 1][1] : nextPage[1] - 1,
-//   ]
-//   return {
-//     pageNum,
-//     first: [firstSurah, firstAyah],
-//     last: [lastSurah, lastAyah],
-//   }
-// }
-/**
- * Find range containing ayah according to the mode
- * @param surah
- * @param ayah
- * @param {*} mode can be either 'all', 'juz', 'surah', 'ayah', 'page'
- * default is all
- */
-export function findRangeAroundAyah(surah, ayah, mode, ayahMode = false) {
-    const ayahId = ayahMode
-        ? ayah
-        : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
-    switch (mode) {
-        case "juz": {
-            const juz = findJuzByAyaid(ayahId);
-            return [JuzList[juz], JuzList[juz + 1] - 1];
-        }
-        case "surah": {
-            return [findAyaidBySurah(surah, 1), findAyaidBySurah(surah + 1, 1) - 1];
-        }
-        case "ayah": {
-            return [ayahId, ayahId];
-        }
-        case "page": {
-            const page = findPage(-1, ayahId, true);
-            return [PageList[page], PageList[page + 1] - 1];
-        }
-        case "all":
-        default:
-            return [1, meta.numAyas];
-    }
-}
-//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/lib_es/index.js.map b/lib_es/index.js.map
deleted file mode 100644
index fa424bc..0000000
--- a/lib_es/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/lib_es/index.mjs b/lib_es/index.mjs
new file mode 100644
index 0000000..b3d9fa4
--- /dev/null
+++ b/lib_es/index.mjs
@@ -0,0 +1,29 @@
+export { ayaStringSplitter } from "./ayaStringSplitter.mjs";
+export { meta } from "./const.mjs";
+export { findAyaidBySurah } from "./findAyaidBySurah.mjs";
+export { findJuz } from "./findJuz.mjs";
+export { findJuzAndShift } from "./findJuzAndShift.mjs";
+export { findJuzByAyaid } from "./findJuzByAyaid.mjs";
+export { findJuzHizb } from "./findJuzHizb.mjs";
+export { findJuzHizbByAyaid } from "./findJuzHizbByAyaid.mjs";
+export { findJuzMetaBySurah } from "./findJuzMetaBySurah.mjs";
+export { findPage } from "./findPage.mjs";
+export { findRangeAroundAyah } from "./findRangeAroundAyah.mjs";
+export { findSurahByAyaid } from "./findSurahByAyaid.mjs";
+export { getAyaCountinSura } from "./getAyaCountinSura.mjs";
+export { getSurahMeta } from "./getSurahMeta.mjs";
+export { isAyahJuzFirst } from "./isAyahJuzFirst.mjs";
+export { isAyahPageFirst } from "./isAyahPageFirst.mjs";
+export { HizbQuarterList } from "./lists/hizbList.mjs";
+export { JuzList } from "./lists/juzList.mjs";
+export { ManzilList } from "./lists/manzilList.mjs";
+export { PageList } from "./lists/pageList.mjs";
+export { RukuList } from "./lists/rukuList.mjs";
+export { SajdaList } from "./lists/sajdaList.mjs";
+export { SuraList } from "./lists/surahList.mjs";
+export { nextAyah } from "./nextAyah.mjs";
+export { pageMeta } from "./pageMeta.mjs";
+export { prevAyah } from "./prevAyah.mjs";
+export { checkValidAyahId, checkValidSurah, checkValidSurahAyah } from "./validation.mjs";
+export { suraNames as suraNamesEn } from "./i18n/sura.en.mjs";
+export { suraNames as suraNamesRu } from "./i18n/sura.ru.mjs";
diff --git a/lib_es/isAyahJuzFirst.d.ts b/lib_es/isAyahJuzFirst.d.ts
new file mode 100644
index 0000000..7ff0b2a
--- /dev/null
+++ b/lib_es/isAyahJuzFirst.d.ts
@@ -0,0 +1,11 @@
+import { AyahNo, Juz, Surah } from "./types";
+/**
+ * Returns the Juz (part) number that the given Ayah (verse) belongs to.
+ *
+ *
+ * @param surah - The Surah (chapter) number.
+ * @param ayah - The Ayah (verse) number.
+ * @param ayahMode - If true, the `ayah` parameter is treated as an Ayah ID instead of a Surah and Ayah number.
+ * @returns The Juz (part) number that the given Ayah belongs to. Returns Positive number if aya is first ayah of juz, number is juz number
+ */
+export declare function isAyahJuzFirst(surah: Surah, ayah: AyahNo, ayahMode?: boolean): Juz;
diff --git a/lib_es/isAyahJuzFirst.mjs b/lib_es/isAyahJuzFirst.mjs
new file mode 100644
index 0000000..c4eb0f6
--- /dev/null
+++ b/lib_es/isAyahJuzFirst.mjs
@@ -0,0 +1,8 @@
+import { findAyaidBySurah } from "./findAyaidBySurah.mjs";
+import { JuzList } from "./lists/juzList.mjs";
+import { binarySearch } from "./utils.mjs";
+import { checkValidAyahId, checkValidSurah } from "./validation.mjs";
+export function isAyahJuzFirst(surah, ayah, ayahMode = false) {
+  const ayahId = ayahMode ? checkValidAyahId(ayah) && ayah : checkValidSurah(surah) && findAyaidBySurah(surah, ayah);
+  return binarySearch(JuzList, ayahId);
+}
diff --git a/lib_es/isAyahPageFirst.d.ts b/lib_es/isAyahPageFirst.d.ts
new file mode 100644
index 0000000..c091206
--- /dev/null
+++ b/lib_es/isAyahPageFirst.d.ts
@@ -0,0 +1,10 @@
+import { AyahNo, Juz, Surah } from "./types";
+/**
+ * Determines if the given ayah is the first ayah of a juz.
+ *
+ * @param surah - The surah number.
+ * @param ayah - The ayah number.
+ * @param ayahMode - Optional flag to indicate if the ayah number is already a valid ayah ID.
+ * @returns The juz number if the ayah is the first ayah of the juz, otherwise -1.
+ */
+export declare function isAyahPageFirst(surah: Surah, ayah: AyahNo, ayahMode?: boolean): Juz;
diff --git a/lib_es/isAyahPageFirst.mjs b/lib_es/isAyahPageFirst.mjs
new file mode 100644
index 0000000..f9afff1
--- /dev/null
+++ b/lib_es/isAyahPageFirst.mjs
@@ -0,0 +1,8 @@
+import { findAyaidBySurah } from "./findAyaidBySurah.mjs";
+import { PageList } from "./lists/pageList.mjs";
+import { binarySearch } from "./utils.mjs";
+import { checkValidAyahId, checkValidSurah } from "./validation.mjs";
+export function isAyahPageFirst(surah, ayah, ayahMode = false) {
+  const ayahId = ayahMode ? checkValidAyahId(ayah) && ayah : checkValidSurah(surah) && findAyaidBySurah(surah, ayah);
+  return binarySearch(PageList, ayahId);
+}
diff --git a/lib_es/json/qdata-hizb.json b/lib_es/json/qdata-hizb.json
new file mode 100644
index 0000000..a0acf70
--- /dev/null
+++ b/lib_es/json/qdata-hizb.json
@@ -0,0 +1,244 @@
+[
+  [],
+  [1, 1],
+  [2, 26],
+  [2, 44],
+  [2, 60],
+  [2, 75],
+  [2, 92],
+  [2, 106],
+  [2, 124],
+  [2, 142],
+  [2, 158],
+  [2, 177],
+  [2, 189],
+  [2, 203],
+  [2, 219],
+  [2, 233],
+  [2, 243],
+  [2, 253],
+  [2, 263],
+  [2, 272],
+  [2, 283],
+  [3, 15],
+  [3, 33],
+  [3, 52],
+  [3, 75],
+  [3, 93],
+  [3, 113],
+  [3, 133],
+  [3, 153],
+  [3, 171],
+  [3, 186],
+  [4, 1],
+  [4, 12],
+  [4, 24],
+  [4, 36],
+  [4, 58],
+  [4, 74],
+  [4, 88],
+  [4, 100],
+  [4, 114],
+  [4, 135],
+  [4, 148],
+  [4, 163],
+  [5, 1],
+  [5, 12],
+  [5, 27],
+  [5, 41],
+  [5, 51],
+  [5, 67],
+  [5, 82],
+  [5, 97],
+  [5, 109],
+  [6, 13],
+  [6, 36],
+  [6, 59],
+  [6, 74],
+  [6, 95],
+  [6, 111],
+  [6, 127],
+  [6, 141],
+  [6, 151],
+  [7, 1],
+  [7, 31],
+  [7, 47],
+  [7, 65],
+  [7, 88],
+  [7, 117],
+  [7, 142],
+  [7, 156],
+  [7, 171],
+  [7, 189],
+  [8, 1],
+  [8, 22],
+  [8, 41],
+  [8, 61],
+  [9, 1],
+  [9, 19],
+  [9, 34],
+  [9, 46],
+  [9, 60],
+  [9, 75],
+  [9, 93],
+  [9, 111],
+  [9, 122],
+  [10, 11],
+  [10, 26],
+  [10, 53],
+  [10, 71],
+  [10, 90],
+  [11, 6],
+  [11, 24],
+  [11, 41],
+  [11, 61],
+  [11, 84],
+  [11, 108],
+  [12, 7],
+  [12, 30],
+  [12, 53],
+  [12, 77],
+  [12, 101],
+  [13, 5],
+  [13, 19],
+  [13, 35],
+  [14, 10],
+  [14, 28],
+  [15, 1],
+  [15, 50],
+  [16, 1],
+  [16, 30],
+  [16, 51],
+  [16, 75],
+  [16, 90],
+  [16, 111],
+  [17, 1],
+  [17, 23],
+  [17, 50],
+  [17, 70],
+  [17, 99],
+  [18, 17],
+  [18, 32],
+  [18, 51],
+  [18, 75],
+  [18, 99],
+  [19, 22],
+  [19, 59],
+  [20, 1],
+  [20, 55],
+  [20, 83],
+  [20, 111],
+  [21, 1],
+  [21, 29],
+  [21, 51],
+  [21, 83],
+  [22, 1],
+  [22, 19],
+  [22, 38],
+  [22, 60],
+  [23, 1],
+  [23, 36],
+  [23, 75],
+  [24, 1],
+  [24, 21],
+  [24, 35],
+  [24, 53],
+  [25, 1],
+  [25, 21],
+  [25, 53],
+  [26, 1],
+  [26, 52],
+  [26, 111],
+  [26, 181],
+  [27, 1],
+  [27, 27],
+  [27, 56],
+  [27, 82],
+  [28, 12],
+  [28, 29],
+  [28, 51],
+  [28, 76],
+  [29, 1],
+  [29, 26],
+  [29, 46],
+  [30, 1],
+  [30, 31],
+  [30, 54],
+  [31, 22],
+  [32, 11],
+  [33, 1],
+  [33, 18],
+  [33, 31],
+  [33, 51],
+  [33, 60],
+  [34, 10],
+  [34, 24],
+  [34, 46],
+  [35, 15],
+  [35, 41],
+  [36, 28],
+  [36, 60],
+  [37, 22],
+  [37, 83],
+  [37, 145],
+  [38, 21],
+  [38, 52],
+  [39, 8],
+  [39, 32],
+  [39, 53],
+  [40, 1],
+  [40, 21],
+  [40, 41],
+  [40, 66],
+  [41, 9],
+  [41, 25],
+  [41, 47],
+  [42, 13],
+  [42, 27],
+  [42, 51],
+  [43, 24],
+  [43, 57],
+  [44, 17],
+  [45, 12],
+  [46, 1],
+  [46, 21],
+  [47, 10],
+  [47, 33],
+  [48, 18],
+  [49, 1],
+  [49, 14],
+  [50, 27],
+  [51, 31],
+  [52, 24],
+  [53, 26],
+  [54, 9],
+  [55, 1],
+  [56, 1],
+  [56, 75],
+  [57, 16],
+  [58, 1],
+  [58, 14],
+  [59, 11],
+  [60, 7],
+  [62, 1],
+  [63, 4],
+  [65, 1],
+  [66, 1],
+  [67, 1],
+  [68, 1],
+  [69, 1],
+  [70, 19],
+  [72, 1],
+  [73, 20],
+  [75, 1],
+  [76, 19],
+  [78, 1],
+  [80, 1],
+  [82, 1],
+  [84, 1],
+  [87, 1],
+  [90, 1],
+  [94, 1],
+  [100, 9],
+  [115, 1]
+]
diff --git a/lib_es/json/qdata-page.json b/lib_es/json/qdata-page.json
new file mode 100644
index 0000000..c1ac363
--- /dev/null
+++ b/lib_es/json/qdata-page.json
@@ -0,0 +1,608 @@
+[
+  [0, 0],
+  [1, 1],
+  [2, 1],
+  [2, 6],
+  [2, 17],
+  [2, 25],
+  [2, 30],
+  [2, 38],
+  [2, 49],
+  [2, 58],
+  [2, 62],
+  [2, 70],
+  [2, 77],
+  [2, 84],
+  [2, 89],
+  [2, 94],
+  [2, 102],
+  [2, 106],
+  [2, 113],
+  [2, 120],
+  [2, 127],
+  [2, 135],
+  [2, 142],
+  [2, 146],
+  [2, 154],
+  [2, 164],
+  [2, 170],
+  [2, 177],
+  [2, 182],
+  [2, 187],
+  [2, 191],
+  [2, 197],
+  [2, 203],
+  [2, 211],
+  [2, 216],
+  [2, 220],
+  [2, 225],
+  [2, 231],
+  [2, 234],
+  [2, 238],
+  [2, 246],
+  [2, 249],
+  [2, 253],
+  [2, 257],
+  [2, 260],
+  [2, 265],
+  [2, 270],
+  [2, 275],
+  [2, 282],
+  [2, 283],
+  [3, 1],
+  [3, 10],
+  [3, 16],
+  [3, 23],
+  [3, 30],
+  [3, 38],
+  [3, 46],
+  [3, 53],
+  [3, 62],
+  [3, 71],
+  [3, 78],
+  [3, 84],
+  [3, 92],
+  [3, 101],
+  [3, 109],
+  [3, 116],
+  [3, 122],
+  [3, 133],
+  [3, 141],
+  [3, 149],
+  [3, 154],
+  [3, 158],
+  [3, 166],
+  [3, 174],
+  [3, 181],
+  [3, 187],
+  [3, 195],
+  [4, 1],
+  [4, 7],
+  [4, 12],
+  [4, 15],
+  [4, 20],
+  [4, 24],
+  [4, 27],
+  [4, 34],
+  [4, 38],
+  [4, 45],
+  [4, 52],
+  [4, 60],
+  [4, 66],
+  [4, 75],
+  [4, 80],
+  [4, 87],
+  [4, 92],
+  [4, 95],
+  [4, 102],
+  [4, 106],
+  [4, 114],
+  [4, 122],
+  [4, 128],
+  [4, 135],
+  [4, 141],
+  [4, 148],
+  [4, 155],
+  [4, 163],
+  [4, 171],
+  [4, 176],
+  [5, 3],
+  [5, 6],
+  [5, 10],
+  [5, 14],
+  [5, 18],
+  [5, 24],
+  [5, 32],
+  [5, 37],
+  [5, 42],
+  [5, 46],
+  [5, 51],
+  [5, 58],
+  [5, 65],
+  [5, 71],
+  [5, 77],
+  [5, 83],
+  [5, 90],
+  [5, 96],
+  [5, 104],
+  [5, 109],
+  [5, 114],
+  [6, 1],
+  [6, 9],
+  [6, 19],
+  [6, 28],
+  [6, 36],
+  [6, 45],
+  [6, 53],
+  [6, 60],
+  [6, 69],
+  [6, 74],
+  [6, 82],
+  [6, 91],
+  [6, 95],
+  [6, 102],
+  [6, 111],
+  [6, 119],
+  [6, 125],
+  [6, 132],
+  [6, 138],
+  [6, 143],
+  [6, 147],
+  [6, 152],
+  [6, 158],
+  [7, 1],
+  [7, 12],
+  [7, 23],
+  [7, 31],
+  [7, 38],
+  [7, 44],
+  [7, 52],
+  [7, 58],
+  [7, 68],
+  [7, 74],
+  [7, 82],
+  [7, 88],
+  [7, 96],
+  [7, 105],
+  [7, 121],
+  [7, 131],
+  [7, 138],
+  [7, 144],
+  [7, 150],
+  [7, 156],
+  [7, 160],
+  [7, 164],
+  [7, 171],
+  [7, 179],
+  [7, 188],
+  [7, 196],
+  [8, 1],
+  [8, 9],
+  [8, 17],
+  [8, 26],
+  [8, 34],
+  [8, 41],
+  [8, 46],
+  [8, 53],
+  [8, 62],
+  [8, 70],
+  [9, 1],
+  [9, 7],
+  [9, 14],
+  [9, 21],
+  [9, 27],
+  [9, 32],
+  [9, 37],
+  [9, 41],
+  [9, 48],
+  [9, 55],
+  [9, 62],
+  [9, 69],
+  [9, 73],
+  [9, 80],
+  [9, 87],
+  [9, 94],
+  [9, 100],
+  [9, 107],
+  [9, 112],
+  [9, 118],
+  [9, 123],
+  [10, 1],
+  [10, 7],
+  [10, 15],
+  [10, 21],
+  [10, 26],
+  [10, 34],
+  [10, 43],
+  [10, 54],
+  [10, 62],
+  [10, 71],
+  [10, 79],
+  [10, 89],
+  [10, 98],
+  [10, 107],
+  [11, 6],
+  [11, 13],
+  [11, 20],
+  [11, 29],
+  [11, 38],
+  [11, 46],
+  [11, 54],
+  [11, 63],
+  [11, 72],
+  [11, 82],
+  [11, 89],
+  [11, 98],
+  [11, 109],
+  [11, 118],
+  [12, 5],
+  [12, 15],
+  [12, 23],
+  [12, 31],
+  [12, 38],
+  [12, 44],
+  [12, 53],
+  [12, 64],
+  [12, 70],
+  [12, 79],
+  [12, 87],
+  [12, 96],
+  [12, 104],
+  [13, 1],
+  [13, 6],
+  [13, 14],
+  [13, 19],
+  [13, 29],
+  [13, 35],
+  [13, 43],
+  [14, 6],
+  [14, 11],
+  [14, 19],
+  [14, 25],
+  [14, 34],
+  [14, 43],
+  [15, 1],
+  [15, 16],
+  [15, 32],
+  [15, 52],
+  [15, 71],
+  [15, 91],
+  [16, 7],
+  [16, 15],
+  [16, 27],
+  [16, 35],
+  [16, 43],
+  [16, 55],
+  [16, 65],
+  [16, 73],
+  [16, 80],
+  [16, 88],
+  [16, 94],
+  [16, 103],
+  [16, 111],
+  [16, 119],
+  [17, 1],
+  [17, 8],
+  [17, 18],
+  [17, 28],
+  [17, 39],
+  [17, 50],
+  [17, 59],
+  [17, 67],
+  [17, 76],
+  [17, 87],
+  [17, 97],
+  [17, 105],
+  [18, 5],
+  [18, 16],
+  [18, 21],
+  [18, 28],
+  [18, 35],
+  [18, 46],
+  [18, 54],
+  [18, 62],
+  [18, 75],
+  [18, 84],
+  [18, 98],
+  [19, 1],
+  [19, 12],
+  [19, 26],
+  [19, 39],
+  [19, 52],
+  [19, 65],
+  [19, 77],
+  [19, 96],
+  [20, 13],
+  [20, 38],
+  [20, 52],
+  [20, 65],
+  [20, 77],
+  [20, 88],
+  [20, 99],
+  [20, 114],
+  [20, 126],
+  [21, 1],
+  [21, 11],
+  [21, 25],
+  [21, 36],
+  [21, 45],
+  [21, 58],
+  [21, 73],
+  [21, 82],
+  [21, 91],
+  [21, 102],
+  [22, 1],
+  [22, 6],
+  [22, 16],
+  [22, 24],
+  [22, 31],
+  [22, 39],
+  [22, 47],
+  [22, 56],
+  [22, 65],
+  [22, 73],
+  [23, 1],
+  [23, 18],
+  [23, 28],
+  [23, 43],
+  [23, 60],
+  [23, 75],
+  [23, 90],
+  [23, 105],
+  [24, 1],
+  [24, 11],
+  [24, 21],
+  [24, 28],
+  [24, 32],
+  [24, 37],
+  [24, 44],
+  [24, 54],
+  [24, 59],
+  [24, 62],
+  [25, 3],
+  [25, 12],
+  [25, 21],
+  [25, 33],
+  [25, 44],
+  [25, 56],
+  [25, 68],
+  [26, 1],
+  [26, 20],
+  [26, 40],
+  [26, 61],
+  [26, 84],
+  [26, 112],
+  [26, 137],
+  [26, 160],
+  [26, 184],
+  [26, 207],
+  [27, 1],
+  [27, 14],
+  [27, 23],
+  [27, 36],
+  [27, 45],
+  [27, 56],
+  [27, 64],
+  [27, 77],
+  [27, 89],
+  [28, 6],
+  [28, 14],
+  [28, 22],
+  [28, 29],
+  [28, 36],
+  [28, 44],
+  [28, 51],
+  [28, 60],
+  [28, 71],
+  [28, 78],
+  [28, 85],
+  [29, 7],
+  [29, 15],
+  [29, 24],
+  [29, 31],
+  [29, 39],
+  [29, 46],
+  [29, 53],
+  [29, 64],
+  [30, 6],
+  [30, 16],
+  [30, 25],
+  [30, 33],
+  [30, 42],
+  [30, 51],
+  [31, 1],
+  [31, 12],
+  [31, 20],
+  [31, 29],
+  [32, 1],
+  [32, 12],
+  [32, 21],
+  [33, 1],
+  [33, 7],
+  [33, 16],
+  [33, 23],
+  [33, 31],
+  [33, 36],
+  [33, 44],
+  [33, 51],
+  [33, 55],
+  [33, 63],
+  [34, 1],
+  [34, 8],
+  [34, 15],
+  [34, 23],
+  [34, 32],
+  [34, 40],
+  [34, 49],
+  [35, 4],
+  [35, 12],
+  [35, 19],
+  [35, 31],
+  [35, 39],
+  [35, 45],
+  [36, 13],
+  [36, 28],
+  [36, 41],
+  [36, 55],
+  [36, 71],
+  [37, 1],
+  [37, 25],
+  [37, 52],
+  [37, 77],
+  [37, 103],
+  [37, 127],
+  [37, 154],
+  [38, 1],
+  [38, 17],
+  [38, 27],
+  [38, 43],
+  [38, 62],
+  [38, 84],
+  [39, 6],
+  [39, 11],
+  [39, 22],
+  [39, 32],
+  [39, 41],
+  [39, 48],
+  [39, 57],
+  [39, 68],
+  [39, 75],
+  [40, 8],
+  [40, 17],
+  [40, 26],
+  [40, 34],
+  [40, 41],
+  [40, 50],
+  [40, 59],
+  [40, 67],
+  [40, 78],
+  [41, 1],
+  [41, 12],
+  [41, 21],
+  [41, 30],
+  [41, 39],
+  [41, 47],
+  [42, 1],
+  [42, 11],
+  [42, 16],
+  [42, 23],
+  [42, 32],
+  [42, 45],
+  [42, 52],
+  [43, 11],
+  [43, 23],
+  [43, 34],
+  [43, 48],
+  [43, 61],
+  [43, 74],
+  [44, 1],
+  [44, 19],
+  [44, 40],
+  [45, 1],
+  [45, 14],
+  [45, 23],
+  [45, 33],
+  [46, 6],
+  [46, 15],
+  [46, 21],
+  [46, 29],
+  [47, 1],
+  [47, 12],
+  [47, 20],
+  [47, 30],
+  [48, 1],
+  [48, 10],
+  [48, 16],
+  [48, 24],
+  [48, 29],
+  [49, 5],
+  [49, 12],
+  [50, 1],
+  [50, 16],
+  [50, 36],
+  [51, 7],
+  [51, 31],
+  [51, 52],
+  [52, 15],
+  [52, 32],
+  [53, 1],
+  [53, 27],
+  [53, 45],
+  [54, 7],
+  [54, 28],
+  [54, 50],
+  [55, 17],
+  [55, 41],
+  [55, 68],
+  [56, 17],
+  [56, 51],
+  [56, 77],
+  [57, 4],
+  [57, 12],
+  [57, 19],
+  [57, 25],
+  [58, 1],
+  [58, 7],
+  [58, 12],
+  [58, 22],
+  [59, 4],
+  [59, 10],
+  [59, 17],
+  [60, 1],
+  [60, 6],
+  [60, 12],
+  [61, 6],
+  [62, 1],
+  [62, 9],
+  [63, 5],
+  [64, 1],
+  [64, 10],
+  [65, 1],
+  [65, 6],
+  [66, 1],
+  [66, 8],
+  [67, 1],
+  [67, 13],
+  [67, 27],
+  [68, 16],
+  [68, 43],
+  [69, 9],
+  [69, 35],
+  [70, 11],
+  [70, 40],
+  [71, 11],
+  [72, 1],
+  [72, 14],
+  [73, 1],
+  [73, 20],
+  [74, 18],
+  [74, 48],
+  [75, 20],
+  [76, 6],
+  [76, 26],
+  [77, 20],
+  [78, 1],
+  [78, 31],
+  [79, 16],
+  [80, 1],
+  [81, 1],
+  [82, 1],
+  [83, 7],
+  [83, 35],
+  [85, 1],
+  [86, 1],
+  [87, 16],
+  [89, 1],
+  [89, 24],
+  [91, 1],
+  [92, 15],
+  [95, 1],
+  [97, 1],
+  [98, 8],
+  [100, 10],
+  [103, 1],
+  [106, 1],
+  [109, 1],
+  [112, 1],
+  [115, 1]
+]
diff --git a/lib_es/json/qdata-ruku.json b/lib_es/json/qdata-ruku.json
new file mode 100644
index 0000000..0665163
--- /dev/null
+++ b/lib_es/json/qdata-ruku.json
@@ -0,0 +1,559 @@
+[
+  [],
+  [1, 1],
+  [2, 1],
+  [2, 8],
+  [2, 21],
+  [2, 30],
+  [2, 40],
+  [2, 47],
+  [2, 60],
+  [2, 62],
+  [2, 72],
+  [2, 83],
+  [2, 87],
+  [2, 97],
+  [2, 104],
+  [2, 113],
+  [2, 122],
+  [2, 130],
+  [2, 142],
+  [2, 148],
+  [2, 153],
+  [2, 164],
+  [2, 168],
+  [2, 177],
+  [2, 183],
+  [2, 189],
+  [2, 197],
+  [2, 211],
+  [2, 217],
+  [2, 222],
+  [2, 229],
+  [2, 232],
+  [2, 236],
+  [2, 243],
+  [2, 249],
+  [2, 254],
+  [2, 258],
+  [2, 261],
+  [2, 267],
+  [2, 274],
+  [2, 282],
+  [2, 284],
+  [3, 1],
+  [3, 10],
+  [3, 21],
+  [3, 31],
+  [3, 42],
+  [3, 55],
+  [3, 64],
+  [3, 72],
+  [3, 81],
+  [3, 92],
+  [3, 102],
+  [3, 110],
+  [3, 121],
+  [3, 130],
+  [3, 144],
+  [3, 149],
+  [3, 156],
+  [3, 172],
+  [3, 181],
+  [3, 190],
+  [4, 1],
+  [4, 11],
+  [4, 15],
+  [4, 23],
+  [4, 26],
+  [4, 34],
+  [4, 43],
+  [4, 51],
+  [4, 60],
+  [4, 71],
+  [4, 77],
+  [4, 88],
+  [4, 92],
+  [4, 97],
+  [4, 101],
+  [4, 105],
+  [4, 113],
+  [4, 116],
+  [4, 127],
+  [4, 135],
+  [4, 142],
+  [4, 153],
+  [4, 163],
+  [4, 172],
+  [5, 1],
+  [5, 6],
+  [5, 12],
+  [5, 20],
+  [5, 27],
+  [5, 35],
+  [5, 44],
+  [5, 51],
+  [5, 57],
+  [5, 67],
+  [5, 78],
+  [5, 87],
+  [5, 94],
+  [5, 101],
+  [5, 109],
+  [5, 116],
+  [6, 1],
+  [6, 11],
+  [6, 21],
+  [6, 31],
+  [6, 42],
+  [6, 51],
+  [6, 56],
+  [6, 61],
+  [6, 71],
+  [6, 83],
+  [6, 91],
+  [6, 95],
+  [6, 101],
+  [6, 111],
+  [6, 122],
+  [6, 130],
+  [6, 141],
+  [6, 145],
+  [6, 151],
+  [6, 155],
+  [7, 1],
+  [7, 11],
+  [7, 26],
+  [7, 32],
+  [7, 40],
+  [7, 48],
+  [7, 54],
+  [7, 59],
+  [7, 65],
+  [7, 73],
+  [7, 85],
+  [7, 94],
+  [7, 100],
+  [7, 109],
+  [7, 127],
+  [7, 130],
+  [7, 142],
+  [7, 148],
+  [7, 152],
+  [7, 158],
+  [7, 163],
+  [7, 172],
+  [7, 182],
+  [7, 189],
+  [8, 1],
+  [8, 11],
+  [8, 20],
+  [8, 29],
+  [8, 38],
+  [8, 45],
+  [8, 49],
+  [8, 59],
+  [8, 65],
+  [8, 70],
+  [9, 1],
+  [9, 7],
+  [9, 17],
+  [9, 25],
+  [9, 30],
+  [9, 38],
+  [9, 43],
+  [9, 60],
+  [9, 67],
+  [9, 73],
+  [9, 81],
+  [9, 90],
+  [9, 100],
+  [9, 111],
+  [9, 119],
+  [9, 123],
+  [10, 1],
+  [10, 11],
+  [10, 21],
+  [10, 31],
+  [10, 41],
+  [10, 54],
+  [10, 61],
+  [10, 71],
+  [10, 83],
+  [10, 93],
+  [10, 104],
+  [11, 1],
+  [11, 9],
+  [11, 25],
+  [11, 36],
+  [11, 50],
+  [11, 61],
+  [11, 69],
+  [11, 84],
+  [11, 96],
+  [11, 110],
+  [12, 1],
+  [12, 7],
+  [12, 21],
+  [12, 30],
+  [12, 36],
+  [12, 43],
+  [12, 50],
+  [12, 58],
+  [12, 69],
+  [12, 80],
+  [12, 94],
+  [12, 105],
+  [13, 1],
+  [13, 8],
+  [13, 19],
+  [13, 27],
+  [13, 32],
+  [13, 38],
+  [14, 1],
+  [14, 7],
+  [14, 13],
+  [14, 22],
+  [14, 28],
+  [14, 35],
+  [14, 42],
+  [15, 1],
+  [15, 16],
+  [15, 26],
+  [15, 45],
+  [15, 61],
+  [15, 80],
+  [16, 1],
+  [16, 10],
+  [16, 22],
+  [16, 26],
+  [16, 35],
+  [16, 41],
+  [16, 51],
+  [16, 61],
+  [16, 66],
+  [16, 71],
+  [16, 77],
+  [16, 84],
+  [16, 90],
+  [16, 101],
+  [16, 111],
+  [16, 120],
+  [17, 1],
+  [17, 11],
+  [17, 23],
+  [17, 31],
+  [17, 41],
+  [17, 53],
+  [17, 61],
+  [17, 71],
+  [17, 78],
+  [17, 85],
+  [17, 94],
+  [17, 101],
+  [18, 1],
+  [18, 13],
+  [18, 18],
+  [18, 23],
+  [18, 32],
+  [18, 45],
+  [18, 50],
+  [18, 54],
+  [18, 60],
+  [18, 71],
+  [18, 83],
+  [18, 102],
+  [19, 1],
+  [19, 16],
+  [19, 41],
+  [19, 51],
+  [19, 66],
+  [19, 83],
+  [20, 1],
+  [20, 25],
+  [20, 55],
+  [20, 77],
+  [20, 90],
+  [20, 105],
+  [20, 116],
+  [20, 129],
+  [21, 1],
+  [21, 11],
+  [21, 30],
+  [21, 42],
+  [21, 51],
+  [21, 76],
+  [21, 94],
+  [22, 1],
+  [22, 11],
+  [22, 23],
+  [22, 26],
+  [22, 34],
+  [22, 39],
+  [22, 49],
+  [22, 58],
+  [22, 65],
+  [22, 73],
+  [23, 1],
+  [23, 23],
+  [23, 33],
+  [23, 51],
+  [23, 78],
+  [23, 93],
+  [24, 1],
+  [24, 11],
+  [24, 21],
+  [24, 27],
+  [24, 35],
+  [24, 41],
+  [24, 51],
+  [24, 58],
+  [24, 62],
+  [25, 1],
+  [25, 10],
+  [25, 21],
+  [25, 35],
+  [25, 45],
+  [25, 61],
+  [26, 1],
+  [26, 10],
+  [26, 34],
+  [26, 53],
+  [26, 70],
+  [26, 105],
+  [26, 123],
+  [26, 141],
+  [26, 160],
+  [26, 176],
+  [26, 192],
+  [27, 1],
+  [27, 15],
+  [27, 32],
+  [27, 45],
+  [27, 59],
+  [27, 67],
+  [27, 83],
+  [28, 1],
+  [28, 14],
+  [28, 22],
+  [28, 29],
+  [28, 43],
+  [28, 51],
+  [28, 61],
+  [28, 76],
+  [29, 1],
+  [29, 14],
+  [29, 23],
+  [29, 31],
+  [29, 45],
+  [29, 52],
+  [29, 64],
+  [30, 1],
+  [30, 11],
+  [30, 20],
+  [30, 28],
+  [30, 41],
+  [30, 54],
+  [31, 1],
+  [31, 12],
+  [31, 20],
+  [32, 1],
+  [32, 12],
+  [32, 23],
+  [33, 1],
+  [33, 9],
+  [33, 21],
+  [33, 28],
+  [33, 35],
+  [33, 41],
+  [33, 53],
+  [33, 59],
+  [33, 69],
+  [34, 1],
+  [34, 10],
+  [34, 22],
+  [34, 31],
+  [34, 37],
+  [34, 46],
+  [35, 1],
+  [35, 8],
+  [35, 15],
+  [35, 27],
+  [35, 38],
+  [36, 1],
+  [36, 13],
+  [36, 33],
+  [36, 51],
+  [36, 68],
+  [37, 1],
+  [37, 22],
+  [37, 75],
+  [37, 114],
+  [37, 139],
+  [38, 1],
+  [38, 15],
+  [38, 27],
+  [38, 41],
+  [38, 65],
+  [39, 1],
+  [39, 10],
+  [39, 22],
+  [39, 32],
+  [39, 42],
+  [39, 53],
+  [39, 64],
+  [39, 71],
+  [40, 1],
+  [40, 10],
+  [40, 21],
+  [40, 28],
+  [40, 38],
+  [40, 51],
+  [40, 61],
+  [40, 69],
+  [40, 79],
+  [41, 1],
+  [41, 9],
+  [41, 19],
+  [41, 26],
+  [41, 33],
+  [41, 45],
+  [42, 1],
+  [42, 10],
+  [42, 20],
+  [42, 30],
+  [42, 44],
+  [43, 1],
+  [43, 16],
+  [43, 26],
+  [43, 36],
+  [43, 46],
+  [43, 57],
+  [43, 68],
+  [44, 1],
+  [44, 30],
+  [44, 43],
+  [45, 1],
+  [45, 12],
+  [45, 22],
+  [45, 27],
+  [46, 1],
+  [46, 11],
+  [46, 21],
+  [46, 27],
+  [47, 1],
+  [47, 12],
+  [47, 20],
+  [47, 29],
+  [48, 1],
+  [48, 11],
+  [48, 18],
+  [48, 27],
+  [49, 1],
+  [49, 11],
+  [50, 1],
+  [50, 16],
+  [50, 30],
+  [51, 1],
+  [51, 24],
+  [51, 47],
+  [52, 1],
+  [52, 29],
+  [53, 1],
+  [53, 26],
+  [53, 33],
+  [54, 1],
+  [54, 23],
+  [54, 41],
+  [55, 1],
+  [55, 26],
+  [55, 46],
+  [56, 1],
+  [56, 39],
+  [56, 75],
+  [57, 1],
+  [57, 11],
+  [57, 20],
+  [57, 26],
+  [58, 1],
+  [58, 7],
+  [58, 14],
+  [59, 1],
+  [59, 11],
+  [59, 18],
+  [60, 1],
+  [60, 7],
+  [61, 1],
+  [61, 10],
+  [62, 1],
+  [62, 9],
+  [63, 1],
+  [63, 9],
+  [64, 1],
+  [64, 11],
+  [65, 1],
+  [65, 8],
+  [66, 1],
+  [66, 8],
+  [67, 1],
+  [67, 15],
+  [68, 1],
+  [68, 34],
+  [69, 1],
+  [69, 38],
+  [70, 1],
+  [70, 36],
+  [71, 1],
+  [71, 21],
+  [72, 1],
+  [72, 20],
+  [73, 1],
+  [73, 20],
+  [74, 1],
+  [74, 32],
+  [75, 1],
+  [75, 31],
+  [76, 1],
+  [76, 23],
+  [77, 1],
+  [77, 41],
+  [78, 1],
+  [78, 31],
+  [79, 1],
+  [79, 27],
+  [80, 1],
+  [81, 1],
+  [82, 1],
+  [83, 1],
+  [84, 1],
+  [85, 1],
+  [86, 1],
+  [87, 1],
+  [88, 1],
+  [89, 1],
+  [90, 1],
+  [91, 1],
+  [92, 1],
+  [93, 1],
+  [94, 1],
+  [95, 1],
+  [96, 1],
+  [97, 1],
+  [98, 1],
+  [99, 1],
+  [100, 1],
+  [101, 1],
+  [102, 1],
+  [103, 1],
+  [104, 1],
+  [105, 1],
+  [106, 1],
+  [107, 1],
+  [108, 1],
+  [109, 1],
+  [110, 1],
+  [111, 1],
+  [112, 1],
+  [113, 1],
+  [114, 1]
+]
diff --git a/lib_es/json/qdata-surah.json b/lib_es/json/qdata-surah.json
new file mode 100644
index 0000000..d27a8f7
--- /dev/null
+++ b/lib_es/json/qdata-surah.json
@@ -0,0 +1,118 @@
+[
+  [],
+  [0, 7, 5, 1, "الفاتحة", true, 1],
+  [7, 286, 87, 40, "البقرة", false, 2],
+  [293, 200, 89, 20, "آل عمران", false, 50],
+  [493, 176, 92, 24, "النساء", false, 77],
+  [669, 120, 112, 16, "المائدة", false, 107],
+  [789, 165, 55, 20, "الأنعام", true, 128],
+  [954, 206, 39, 24, "الأعراف", true, 151],
+  [1160, 75, 88, 10, "الأنفال", false, 177],
+  [1235, 129, 113, 16, "التوبة", false, 187],
+  [1364, 109, 51, 11, "يونس", true, 208],
+  [1473, 123, 52, 10, "هود", true, 222],
+  [1596, 111, 53, 12, "يوسف", true, 236],
+  [1707, 43, 96, 6, "الرعد", false, 249],
+  [1750, 52, 72, 7, "ابراهيم", true, 256],
+  [1802, 99, 54, 6, "الحجر", true, 262],
+  [1901, 128, 70, 16, "النحل", true, 268],
+  [2029, 111, 50, 12, "الإسراء", true, 282],
+  [2140, 110, 69, 12, "الكهف", true, 294],
+  [2250, 98, 44, 6, "مريم", true, 305],
+  [2348, 135, 45, 8, "طه", true, 313],
+  [2483, 112, 73, 7, "الأنبياء", true, 322],
+  [2595, 78, 103, 10, "الحج", false, 332],
+  [2673, 118, 74, 6, "المؤمنون", true, 342],
+  [2791, 64, 102, 9, "النور", false, 350],
+  [2855, 77, 42, 6, "الفرقان", true, 360],
+  [2932, 227, 47, 11, "الشعراء", true, 367],
+  [3159, 93, 48, 7, "النمل", true, 377],
+  [3252, 88, 49, 8, "القصص", true, 386],
+  [3340, 69, 85, 7, "العنكبوت", true, 397],
+  [3409, 60, 84, 6, "الروم", true, 405],
+  [3469, 34, 57, 3, "لقمان", true, 411],
+  [3503, 30, 75, 3, "السجدة", true, 415],
+  [3533, 73, 90, 9, "الأحزاب", false, 418],
+  [3606, 54, 58, 6, "سبإ", true, 428],
+  [3660, 45, 43, 5, "فاطر", true, 435],
+  [3705, 83, 41, 5, "يس", true, 441],
+  [3788, 182, 56, 5, "الصافات", true, 446],
+  [3970, 88, 38, 5, "ص", true, 453],
+  [4058, 75, 59, 8, "الزمر", true, 459],
+  [4133, 85, 60, 9, "غافر", true, 468],
+  [4218, 54, 61, 6, "فصلت", true, 477],
+  [4272, 53, 62, 5, "الشورى", true, 483],
+  [4325, 89, 63, 7, "الزخرف", true, 490],
+  [4414, 59, 64, 3, "الدخان", true, 496],
+  [4473, 37, 65, 4, "الجاثية", true, 499],
+  [4510, 35, 66, 4, "الأحقاف", true, 503],
+  [4545, 38, 95, 4, "محمد", false, 507],
+  [4583, 29, 111, 4, "الفتح", false, 511],
+  [4612, 18, 106, 2, "الحجرات", false, 516],
+  [4630, 45, 34, 3, "ق", true, 518],
+  [4675, 60, 67, 3, "الذاريات", true, 521],
+  [4735, 49, 76, 2, "الطور", true, 524],
+  [4784, 62, 23, 3, "النجم", true, 526],
+  [4846, 55, 37, 3, "القمر", true, 529],
+  [4901, 78, 97, 3, "الرحمن", false, 532],
+  [4979, 96, 46, 3, "الواقعة", true, 535],
+  [5075, 29, 94, 4, "الحديد", false, 538],
+  [5104, 22, 105, 3, "المجادلة", false, 542],
+  [5126, 24, 101, 3, "الحشر", false, 546],
+  [5150, 13, 91, 2, "الممتحنة", false, 549],
+  [5163, 14, 109, 2, "الصف", false, 552],
+  [5177, 11, 110, 2, "الجمعة", false, 553],
+  [5188, 11, 104, 2, "المنافقون", false, 555],
+  [5199, 18, 108, 2, "التغابن", false, 556],
+  [5217, 12, 99, 2, "الطلاق", false, 558],
+  [5229, 12, 107, 2, "التحريم", false, 560],
+  [5241, 30, 77, 2, "الملك", true, 562],
+  [5271, 52, 2, 2, "القلم", true, 565],
+  [5323, 52, 78, 2, "الحاقة", true, 567],
+  [5375, 44, 79, 2, "المعارج", true, 569],
+  [5419, 28, 71, 2, "نوح", true, 571],
+  [5447, 28, 40, 2, "الجن", true, 572],
+  [5475, 20, 3, 2, "المزمل", true, 574],
+  [5495, 56, 4, 2, "المدثر", true, 576],
+  [5551, 40, 31, 2, "القيامة", true, 578],
+  [5591, 31, 98, 2, "الانسان", false, 579],
+  [5622, 50, 33, 2, "المرسلات", true, 581],
+  [5672, 40, 80, 2, "النبإ", true, 582],
+  [5712, 46, 81, 2, "النازعات", true, 584],
+  [5758, 42, 24, 1, "عبس", true, 585],
+  [5800, 29, 7, 1, "التكوير", true, 586],
+  [5829, 19, 82, 1, "الإنفطار", true, 587],
+  [5848, 36, 86, 1, "المطففين", true, 588],
+  [5884, 25, 83, 1, "الإنشقاق", true, 589],
+  [5909, 22, 27, 1, "البروج", true, 590],
+  [5931, 17, 36, 1, "الطارق", true, 591],
+  [5948, 19, 8, 1, "الأعلى", true, 592],
+  [5967, 26, 68, 1, "الغاشية", true, 592],
+  [5993, 30, 10, 1, "الفجر", true, 593],
+  [6023, 20, 35, 1, "البلد", true, 594],
+  [6043, 15, 26, 1, "الشمس", true, 595],
+  [6058, 21, 9, 1, "الليل", true, 596],
+  [6079, 11, 11, 1, "الضحى", true, 596],
+  [6090, 8, 12, 1, "الشرح", true, 596],
+  [6098, 8, 28, 1, "التين", true, 597],
+  [6106, 19, 1, 1, "العلق", true, 597],
+  [6125, 5, 25, 1, "القدر", true, 598],
+  [6130, 8, 100, 1, "البينة", false, 599],
+  [6138, 8, 93, 1, "الزلزلة", false, 599],
+  [6146, 11, 14, 1, "العاديات", true, 600],
+  [6157, 11, 30, 1, "القارعة", true, 600],
+  [6168, 8, 16, 1, "التكاثر", true, 600],
+  [6176, 3, 13, 1, "العصر", true, 601],
+  [6179, 9, 32, 1, "الهمزة", true, 601],
+  [6188, 5, 19, 1, "الفيل", true, 601],
+  [6193, 4, 29, 1, "قريش", true, 602],
+  [6197, 7, 17, 1, "الماعون", true, 602],
+  [6204, 3, 15, 1, "الكوثر", true, 602],
+  [6207, 6, 18, 1, "الكافرون", true, 603],
+  [6213, 3, 114, 1, "النصر", false, 603],
+  [6216, 5, 6, 1, "المسد", true, 603],
+  [6221, 4, 22, 1, "الإخلاص", true, 604],
+  [6225, 5, 20, 1, "الفلق", true, 604],
+  [6230, 6, 21, 1, "الناس", true, 604],
+  [6236, 0]
+]
diff --git a/types/hizbList.d.ts b/lib_es/lists/hizbList.d.ts
similarity index 57%
rename from types/hizbList.d.ts
rename to lib_es/lists/hizbList.d.ts
index 08a6abf..030f87f 100644
--- a/types/hizbList.d.ts
+++ b/lib_es/lists/hizbList.d.ts
@@ -1,2 +1,2 @@
-import { AyahId } from "./types";
+import { AyahId } from "../types";
 export declare const HizbQuarterList: AyahId[];
diff --git a/lib_es/lists/hizbList.mjs b/lib_es/lists/hizbList.mjs
new file mode 100644
index 0000000..f822724
--- /dev/null
+++ b/lib_es/lists/hizbList.mjs
@@ -0,0 +1,244 @@
+export const HizbQuarterList = [
+  0,
+  1,
+  33,
+  51,
+  67,
+  82,
+  99,
+  113,
+  131,
+  149,
+  165,
+  184,
+  196,
+  210,
+  226,
+  240,
+  250,
+  260,
+  270,
+  279,
+  290,
+  308,
+  326,
+  345,
+  368,
+  386,
+  406,
+  426,
+  446,
+  464,
+  479,
+  494,
+  505,
+  517,
+  529,
+  551,
+  567,
+  581,
+  593,
+  607,
+  628,
+  641,
+  656,
+  670,
+  681,
+  696,
+  710,
+  720,
+  736,
+  751,
+  766,
+  778,
+  802,
+  825,
+  848,
+  863,
+  884,
+  900,
+  916,
+  930,
+  940,
+  955,
+  985,
+  1001,
+  1019,
+  1042,
+  1071,
+  1096,
+  1110,
+  1125,
+  1143,
+  1161,
+  1182,
+  1201,
+  1221,
+  1236,
+  1254,
+  1269,
+  1281,
+  1295,
+  1310,
+  1328,
+  1346,
+  1357,
+  1375,
+  1390,
+  1417,
+  1435,
+  1454,
+  1479,
+  1497,
+  1514,
+  1534,
+  1557,
+  1581,
+  1603,
+  1626,
+  1649,
+  1673,
+  1697,
+  1712,
+  1726,
+  1742,
+  1760,
+  1778,
+  1803,
+  1852,
+  1902,
+  1931,
+  1952,
+  1976,
+  1991,
+  2012,
+  2030,
+  2052,
+  2079,
+  2099,
+  2128,
+  2157,
+  2172,
+  2191,
+  2215,
+  2239,
+  2272,
+  2309,
+  2349,
+  2403,
+  2431,
+  2459,
+  2484,
+  2512,
+  2534,
+  2566,
+  2596,
+  2614,
+  2633,
+  2655,
+  2674,
+  2709,
+  2748,
+  2792,
+  2812,
+  2826,
+  2844,
+  2856,
+  2876,
+  2908,
+  2933,
+  2984,
+  3043,
+  3113,
+  3160,
+  3186,
+  3215,
+  3241,
+  3264,
+  3281,
+  3303,
+  3328,
+  3341,
+  3366,
+  3386,
+  3410,
+  3440,
+  3463,
+  3491,
+  3514,
+  3534,
+  3551,
+  3564,
+  3584,
+  3593,
+  3616,
+  3630,
+  3652,
+  3675,
+  3701,
+  3733,
+  3765,
+  3810,
+  3871,
+  3933,
+  3991,
+  4022,
+  4066,
+  4090,
+  4111,
+  4134,
+  4154,
+  4174,
+  4199,
+  4227,
+  4243,
+  4265,
+  4285,
+  4299,
+  4323,
+  4349,
+  4382,
+  4431,
+  4485,
+  4511,
+  4531,
+  4555,
+  4578,
+  4601,
+  4613,
+  4626,
+  4657,
+  4706,
+  4759,
+  4810,
+  4855,
+  4902,
+  4980,
+  5054,
+  5091,
+  5105,
+  5118,
+  5137,
+  5157,
+  5178,
+  5192,
+  5218,
+  5230,
+  5242,
+  5272,
+  5324,
+  5394,
+  5448,
+  5495,
+  5552,
+  5610,
+  5673,
+  5759,
+  5830,
+  5885,
+  5949,
+  6024,
+  6091,
+  6155,
+  6237
+];
diff --git a/lib_es/lists/juzList.d.ts b/lib_es/lists/juzList.d.ts
new file mode 100644
index 0000000..86bba79
--- /dev/null
+++ b/lib_es/lists/juzList.d.ts
@@ -0,0 +1,2 @@
+import { AyahId } from "../types";
+export declare const JuzList: AyahId[];
diff --git a/lib_es/lists/juzList.mjs b/lib_es/lists/juzList.mjs
new file mode 100644
index 0000000..97916df
--- /dev/null
+++ b/lib_es/lists/juzList.mjs
@@ -0,0 +1,34 @@
+export const JuzList = [
+  0,
+  1,
+  149,
+  260,
+  386,
+  517,
+  641,
+  751,
+  900,
+  1042,
+  1201,
+  1328,
+  1479,
+  1649,
+  1803,
+  2030,
+  2215,
+  2484,
+  2674,
+  2876,
+  3215,
+  3386,
+  3564,
+  3733,
+  4090,
+  4265,
+  4511,
+  4706,
+  5105,
+  5242,
+  5673,
+  6237
+];
diff --git a/lib_es/lists/manzilList.d.ts b/lib_es/lists/manzilList.d.ts
new file mode 100644
index 0000000..682f0cb
--- /dev/null
+++ b/lib_es/lists/manzilList.d.ts
@@ -0,0 +1,2 @@
+import { AyahId } from "../types";
+export declare const ManzilList: AyahId[];
diff --git a/lib_es/lists/manzilList.mjs b/lib_es/lists/manzilList.mjs
new file mode 100644
index 0000000..d1a86b7
--- /dev/null
+++ b/lib_es/lists/manzilList.mjs
@@ -0,0 +1,11 @@
+export const ManzilList = [
+  0,
+  1,
+  670,
+  1365,
+  2030,
+  2933,
+  3789,
+  4631,
+  6237
+];
diff --git a/types/pageList.d.ts b/lib_es/lists/pageList.d.ts
similarity index 53%
rename from types/pageList.d.ts
rename to lib_es/lists/pageList.d.ts
index 074106e..7a4df16 100644
--- a/types/pageList.d.ts
+++ b/lib_es/lists/pageList.d.ts
@@ -1,2 +1,2 @@
-import { AyahId } from "./types";
+import { AyahId } from "../types";
 export declare const PageList: AyahId[];
diff --git a/lib_es/lists/pageList.mjs b/lib_es/lists/pageList.mjs
new file mode 100644
index 0000000..dee0969
--- /dev/null
+++ b/lib_es/lists/pageList.mjs
@@ -0,0 +1,608 @@
+export const PageList = [
+  0,
+  1,
+  8,
+  13,
+  24,
+  32,
+  37,
+  45,
+  56,
+  65,
+  69,
+  77,
+  84,
+  91,
+  96,
+  101,
+  109,
+  113,
+  120,
+  127,
+  134,
+  142,
+  149,
+  153,
+  161,
+  171,
+  177,
+  184,
+  189,
+  194,
+  198,
+  204,
+  210,
+  218,
+  223,
+  227,
+  232,
+  238,
+  241,
+  245,
+  253,
+  256,
+  260,
+  264,
+  267,
+  272,
+  277,
+  282,
+  289,
+  290,
+  294,
+  303,
+  309,
+  316,
+  323,
+  331,
+  339,
+  346,
+  355,
+  364,
+  371,
+  377,
+  385,
+  394,
+  402,
+  409,
+  415,
+  426,
+  434,
+  442,
+  447,
+  451,
+  459,
+  467,
+  474,
+  480,
+  488,
+  494,
+  500,
+  505,
+  508,
+  513,
+  517,
+  520,
+  527,
+  531,
+  538,
+  545,
+  553,
+  559,
+  568,
+  573,
+  580,
+  585,
+  588,
+  595,
+  599,
+  607,
+  615,
+  621,
+  628,
+  634,
+  641,
+  648,
+  656,
+  664,
+  669,
+  672,
+  675,
+  679,
+  683,
+  687,
+  693,
+  701,
+  706,
+  711,
+  715,
+  720,
+  727,
+  734,
+  740,
+  746,
+  752,
+  759,
+  765,
+  773,
+  778,
+  783,
+  790,
+  798,
+  808,
+  817,
+  825,
+  834,
+  842,
+  849,
+  858,
+  863,
+  871,
+  880,
+  884,
+  891,
+  900,
+  908,
+  914,
+  921,
+  927,
+  932,
+  936,
+  941,
+  947,
+  955,
+  966,
+  977,
+  985,
+  992,
+  998,
+  1006,
+  1012,
+  1022,
+  1028,
+  1036,
+  1042,
+  1050,
+  1059,
+  1075,
+  1085,
+  1092,
+  1098,
+  1104,
+  1110,
+  1114,
+  1118,
+  1125,
+  1133,
+  1142,
+  1150,
+  1161,
+  1169,
+  1177,
+  1186,
+  1194,
+  1201,
+  1206,
+  1213,
+  1222,
+  1230,
+  1236,
+  1242,
+  1249,
+  1256,
+  1262,
+  1267,
+  1272,
+  1276,
+  1283,
+  1290,
+  1297,
+  1304,
+  1308,
+  1315,
+  1322,
+  1329,
+  1335,
+  1342,
+  1347,
+  1353,
+  1358,
+  1365,
+  1371,
+  1379,
+  1385,
+  1390,
+  1398,
+  1407,
+  1418,
+  1426,
+  1435,
+  1443,
+  1453,
+  1462,
+  1471,
+  1479,
+  1486,
+  1493,
+  1502,
+  1511,
+  1519,
+  1527,
+  1536,
+  1545,
+  1555,
+  1562,
+  1571,
+  1582,
+  1591,
+  1601,
+  1611,
+  1619,
+  1627,
+  1634,
+  1640,
+  1649,
+  1660,
+  1666,
+  1675,
+  1683,
+  1692,
+  1700,
+  1708,
+  1713,
+  1721,
+  1726,
+  1736,
+  1742,
+  1750,
+  1756,
+  1761,
+  1769,
+  1775,
+  1784,
+  1793,
+  1803,
+  1818,
+  1834,
+  1854,
+  1873,
+  1893,
+  1908,
+  1916,
+  1928,
+  1936,
+  1944,
+  1956,
+  1966,
+  1974,
+  1981,
+  1989,
+  1995,
+  2004,
+  2012,
+  2020,
+  2030,
+  2037,
+  2047,
+  2057,
+  2068,
+  2079,
+  2088,
+  2096,
+  2105,
+  2116,
+  2126,
+  2134,
+  2145,
+  2156,
+  2161,
+  2168,
+  2175,
+  2186,
+  2194,
+  2202,
+  2215,
+  2224,
+  2238,
+  2251,
+  2262,
+  2276,
+  2289,
+  2302,
+  2315,
+  2327,
+  2346,
+  2361,
+  2386,
+  2400,
+  2413,
+  2425,
+  2436,
+  2447,
+  2462,
+  2474,
+  2484,
+  2494,
+  2508,
+  2519,
+  2528,
+  2541,
+  2556,
+  2565,
+  2574,
+  2585,
+  2596,
+  2601,
+  2611,
+  2619,
+  2626,
+  2634,
+  2642,
+  2651,
+  2660,
+  2668,
+  2674,
+  2691,
+  2701,
+  2716,
+  2733,
+  2748,
+  2763,
+  2778,
+  2792,
+  2802,
+  2812,
+  2819,
+  2823,
+  2828,
+  2835,
+  2845,
+  2850,
+  2853,
+  2858,
+  2867,
+  2876,
+  2888,
+  2899,
+  2911,
+  2923,
+  2933,
+  2952,
+  2972,
+  2993,
+  3016,
+  3044,
+  3069,
+  3092,
+  3116,
+  3139,
+  3160,
+  3173,
+  3182,
+  3195,
+  3204,
+  3215,
+  3223,
+  3236,
+  3248,
+  3258,
+  3266,
+  3274,
+  3281,
+  3288,
+  3296,
+  3303,
+  3312,
+  3323,
+  3330,
+  3337,
+  3347,
+  3355,
+  3364,
+  3371,
+  3379,
+  3386,
+  3393,
+  3404,
+  3415,
+  3425,
+  3434,
+  3442,
+  3451,
+  3460,
+  3470,
+  3481,
+  3489,
+  3498,
+  3504,
+  3515,
+  3524,
+  3534,
+  3540,
+  3549,
+  3556,
+  3564,
+  3569,
+  3577,
+  3584,
+  3588,
+  3596,
+  3607,
+  3614,
+  3621,
+  3629,
+  3638,
+  3646,
+  3655,
+  3664,
+  3672,
+  3679,
+  3691,
+  3699,
+  3705,
+  3718,
+  3733,
+  3746,
+  3760,
+  3776,
+  3789,
+  3813,
+  3840,
+  3865,
+  3891,
+  3915,
+  3942,
+  3971,
+  3987,
+  3997,
+  4013,
+  4032,
+  4054,
+  4064,
+  4069,
+  4080,
+  4090,
+  4099,
+  4106,
+  4115,
+  4126,
+  4133,
+  4141,
+  4150,
+  4159,
+  4167,
+  4174,
+  4183,
+  4192,
+  4200,
+  4211,
+  4219,
+  4230,
+  4239,
+  4248,
+  4257,
+  4265,
+  4273,
+  4283,
+  4288,
+  4295,
+  4304,
+  4317,
+  4324,
+  4336,
+  4348,
+  4359,
+  4373,
+  4386,
+  4399,
+  4415,
+  4433,
+  4454,
+  4474,
+  4487,
+  4496,
+  4506,
+  4516,
+  4525,
+  4531,
+  4539,
+  4546,
+  4557,
+  4565,
+  4575,
+  4584,
+  4593,
+  4599,
+  4607,
+  4612,
+  4617,
+  4624,
+  4631,
+  4646,
+  4666,
+  4682,
+  4706,
+  4727,
+  4750,
+  4767,
+  4785,
+  4811,
+  4829,
+  4853,
+  4874,
+  4896,
+  4918,
+  4942,
+  4969,
+  4996,
+  5030,
+  5056,
+  5079,
+  5087,
+  5094,
+  5100,
+  5105,
+  5111,
+  5116,
+  5126,
+  5130,
+  5136,
+  5143,
+  5151,
+  5156,
+  5162,
+  5169,
+  5178,
+  5186,
+  5193,
+  5200,
+  5209,
+  5218,
+  5223,
+  5230,
+  5237,
+  5242,
+  5254,
+  5268,
+  5287,
+  5314,
+  5332,
+  5358,
+  5386,
+  5415,
+  5430,
+  5448,
+  5461,
+  5476,
+  5495,
+  5513,
+  5543,
+  5571,
+  5597,
+  5617,
+  5642,
+  5673,
+  5703,
+  5728,
+  5759,
+  5801,
+  5830,
+  5855,
+  5883,
+  5910,
+  5932,
+  5964,
+  5994,
+  6017,
+  6044,
+  6073,
+  6099,
+  6126,
+  6138,
+  6156,
+  6177,
+  6194,
+  6208,
+  6222,
+  6237
+];
diff --git a/types/rukuList.d.ts b/lib_es/lists/rukuList.d.ts
similarity index 53%
rename from types/rukuList.d.ts
rename to lib_es/lists/rukuList.d.ts
index 1bf6ea7..32feb55 100644
--- a/types/rukuList.d.ts
+++ b/lib_es/lists/rukuList.d.ts
@@ -1,2 +1,2 @@
-import { AyahId } from "./types";
+import { AyahId } from "../types";
 export declare const RukuList: AyahId[];
diff --git a/lib_es/lists/rukuList.mjs b/lib_es/lists/rukuList.mjs
new file mode 100644
index 0000000..6d14d15
--- /dev/null
+++ b/lib_es/lists/rukuList.mjs
@@ -0,0 +1,560 @@
+export const RukuList = [
+  0,
+  1,
+  8,
+  15,
+  28,
+  37,
+  47,
+  54,
+  67,
+  69,
+  79,
+  90,
+  94,
+  104,
+  111,
+  120,
+  129,
+  137,
+  149,
+  155,
+  160,
+  171,
+  175,
+  184,
+  190,
+  196,
+  204,
+  218,
+  224,
+  229,
+  236,
+  239,
+  243,
+  250,
+  256,
+  261,
+  265,
+  268,
+  274,
+  281,
+  289,
+  291,
+  294,
+  303,
+  314,
+  324,
+  335,
+  348,
+  357,
+  365,
+  374,
+  385,
+  395,
+  403,
+  414,
+  423,
+  437,
+  442,
+  449,
+  465,
+  474,
+  483,
+  494,
+  504,
+  508,
+  516,
+  519,
+  527,
+  536,
+  544,
+  553,
+  564,
+  570,
+  581,
+  585,
+  590,
+  594,
+  598,
+  606,
+  609,
+  620,
+  628,
+  635,
+  646,
+  656,
+  665,
+  670,
+  675,
+  681,
+  689,
+  696,
+  704,
+  713,
+  720,
+  726,
+  736,
+  747,
+  756,
+  763,
+  770,
+  778,
+  785,
+  790,
+  800,
+  810,
+  820,
+  831,
+  840,
+  845,
+  850,
+  860,
+  872,
+  880,
+  884,
+  890,
+  900,
+  911,
+  919,
+  930,
+  934,
+  940,
+  944,
+  955,
+  965,
+  980,
+  986,
+  994,
+  1002,
+  1008,
+  1013,
+  1019,
+  1027,
+  1039,
+  1048,
+  1054,
+  1063,
+  1081,
+  1084,
+  1096,
+  1102,
+  1106,
+  1112,
+  1117,
+  1126,
+  1136,
+  1143,
+  1161,
+  1171,
+  1180,
+  1189,
+  1198,
+  1205,
+  1209,
+  1219,
+  1225,
+  1230,
+  1236,
+  1242,
+  1252,
+  1260,
+  1265,
+  1273,
+  1278,
+  1295,
+  1302,
+  1308,
+  1316,
+  1325,
+  1335,
+  1346,
+  1354,
+  1358,
+  1365,
+  1375,
+  1385,
+  1395,
+  1405,
+  1418,
+  1425,
+  1435,
+  1447,
+  1457,
+  1468,
+  1474,
+  1482,
+  1498,
+  1509,
+  1523,
+  1534,
+  1542,
+  1557,
+  1569,
+  1583,
+  1597,
+  1603,
+  1617,
+  1626,
+  1632,
+  1639,
+  1646,
+  1654,
+  1665,
+  1676,
+  1690,
+  1701,
+  1708,
+  1715,
+  1726,
+  1734,
+  1739,
+  1745,
+  1751,
+  1757,
+  1763,
+  1772,
+  1778,
+  1785,
+  1792,
+  1803,
+  1818,
+  1828,
+  1847,
+  1863,
+  1882,
+  1902,
+  1911,
+  1923,
+  1927,
+  1936,
+  1942,
+  1952,
+  1962,
+  1967,
+  1972,
+  1978,
+  1985,
+  1991,
+  2002,
+  2012,
+  2021,
+  2030,
+  2040,
+  2052,
+  2060,
+  2070,
+  2082,
+  2090,
+  2100,
+  2107,
+  2114,
+  2123,
+  2130,
+  2141,
+  2153,
+  2158,
+  2163,
+  2172,
+  2185,
+  2190,
+  2194,
+  2200,
+  2211,
+  2223,
+  2242,
+  2251,
+  2266,
+  2291,
+  2301,
+  2316,
+  2333,
+  2349,
+  2373,
+  2403,
+  2425,
+  2438,
+  2453,
+  2464,
+  2477,
+  2484,
+  2494,
+  2513,
+  2525,
+  2534,
+  2559,
+  2577,
+  2596,
+  2606,
+  2618,
+  2621,
+  2629,
+  2634,
+  2644,
+  2653,
+  2660,
+  2668,
+  2674,
+  2696,
+  2706,
+  2724,
+  2751,
+  2766,
+  2792,
+  2802,
+  2812,
+  2818,
+  2826,
+  2832,
+  2842,
+  2849,
+  2853,
+  2856,
+  2865,
+  2876,
+  2890,
+  2900,
+  2916,
+  2933,
+  2942,
+  2966,
+  2985,
+  3002,
+  3037,
+  3055,
+  3073,
+  3092,
+  3108,
+  3124,
+  3160,
+  3174,
+  3191,
+  3204,
+  3218,
+  3226,
+  3242,
+  3253,
+  3266,
+  3274,
+  3281,
+  3295,
+  3303,
+  3313,
+  3328,
+  3341,
+  3354,
+  3363,
+  3371,
+  3385,
+  3392,
+  3404,
+  3410,
+  3420,
+  3429,
+  3437,
+  3450,
+  3463,
+  3470,
+  3481,
+  3489,
+  3504,
+  3515,
+  3526,
+  3534,
+  3542,
+  3554,
+  3561,
+  3568,
+  3574,
+  3586,
+  3592,
+  3602,
+  3607,
+  3616,
+  3628,
+  3637,
+  3643,
+  3652,
+  3661,
+  3668,
+  3675,
+  3687,
+  3698,
+  3706,
+  3718,
+  3738,
+  3756,
+  3773,
+  3789,
+  3810,
+  3863,
+  3902,
+  3927,
+  3971,
+  3985,
+  3997,
+  4011,
+  4035,
+  4059,
+  4068,
+  4080,
+  4090,
+  4100,
+  4111,
+  4122,
+  4129,
+  4134,
+  4143,
+  4154,
+  4161,
+  4171,
+  4184,
+  4194,
+  4202,
+  4212,
+  4219,
+  4227,
+  4237,
+  4244,
+  4251,
+  4263,
+  4273,
+  4282,
+  4292,
+  4302,
+  4316,
+  4326,
+  4341,
+  4351,
+  4361,
+  4371,
+  4382,
+  4393,
+  4415,
+  4444,
+  4457,
+  4474,
+  4485,
+  4495,
+  4500,
+  4511,
+  4521,
+  4531,
+  4537,
+  4546,
+  4557,
+  4565,
+  4574,
+  4584,
+  4594,
+  4601,
+  4610,
+  4613,
+  4623,
+  4631,
+  4646,
+  4660,
+  4676,
+  4699,
+  4722,
+  4736,
+  4764,
+  4785,
+  4810,
+  4817,
+  4847,
+  4869,
+  4887,
+  4902,
+  4927,
+  4947,
+  4980,
+  5018,
+  5054,
+  5076,
+  5086,
+  5095,
+  5101,
+  5105,
+  5111,
+  5118,
+  5127,
+  5137,
+  5144,
+  5151,
+  5157,
+  5164,
+  5173,
+  5178,
+  5186,
+  5189,
+  5197,
+  5200,
+  5210,
+  5218,
+  5225,
+  5230,
+  5237,
+  5242,
+  5256,
+  5272,
+  5305,
+  5324,
+  5361,
+  5376,
+  5411,
+  5420,
+  5440,
+  5448,
+  5467,
+  5476,
+  5495,
+  5496,
+  5527,
+  5552,
+  5582,
+  5592,
+  5614,
+  5623,
+  5663,
+  5673,
+  5703,
+  5713,
+  5739,
+  5759,
+  5801,
+  5830,
+  5849,
+  5885,
+  5910,
+  5932,
+  5949,
+  5968,
+  5994,
+  6024,
+  6044,
+  6059,
+  6080,
+  6091,
+  6099,
+  6107,
+  6126,
+  6131,
+  6139,
+  6147,
+  6158,
+  6169,
+  6177,
+  6180,
+  6189,
+  6194,
+  6198,
+  6205,
+  6208,
+  6214,
+  6217,
+  6222,
+  6226,
+  6231,
+  6237
+];
diff --git a/lib_es/lists/sajdaList.d.ts b/lib_es/lists/sajdaList.d.ts
new file mode 100644
index 0000000..c8958a7
--- /dev/null
+++ b/lib_es/lists/sajdaList.d.ts
@@ -0,0 +1,2 @@
+import { Sajda } from "../types";
+export declare const SajdaList: Sajda[];
diff --git a/lib_es/lists/sajdaList.mjs b/lib_es/lists/sajdaList.mjs
new file mode 100644
index 0000000..37bf585
--- /dev/null
+++ b/lib_es/lists/sajdaList.mjs
@@ -0,0 +1,18 @@
+export const SajdaList = [
+  // [ayaId, type]
+  [1160, "recommended"],
+  [1722, "recommended"],
+  [1951, "recommended"],
+  [2138, "recommended"],
+  [2308, "recommended"],
+  [2613, "recommended"],
+  [2672, "recommended"],
+  [2915, "recommended"],
+  [3185, "recommended"],
+  [3518, "obligatory"],
+  [3994, "recommended"],
+  [4256, "obligatory"],
+  [4846, "obligatory"],
+  [5905, "recommended"],
+  [6125, "obligatory"]
+];
diff --git a/types/surahList.d.ts b/lib_es/lists/surahList.d.ts
similarity index 53%
rename from types/surahList.d.ts
rename to lib_es/lists/surahList.d.ts
index ff5662d..696c75d 100644
--- a/types/surahList.d.ts
+++ b/lib_es/lists/surahList.d.ts
@@ -1,2 +1,2 @@
-import { SurahMeta } from "./types";
+import { SurahMeta } from "../types";
 export declare const SuraList: SurahMeta[];
diff --git a/lib_es/lists/surahList.mjs b/lib_es/lists/surahList.mjs
new file mode 100644
index 0000000..e39110c
--- /dev/null
+++ b/lib_es/lists/surahList.mjs
@@ -0,0 +1,118 @@
+export const SuraList = [
+  [-1, -1, -1, -1, "", false, -1],
+  [0, 7, 5, 1, "\u0627\u0644\u0641\u0627\u062A\u062D\u0629", true, 1],
+  [7, 286, 87, 40, "\u0627\u0644\u0628\u0642\u0631\u0629", false, 2],
+  [293, 200, 89, 20, "\u0622\u0644 \u0639\u0645\u0631\u0627\u0646", false, 50],
+  [493, 176, 92, 24, "\u0627\u0644\u0646\u0633\u0627\u0621", false, 77],
+  [669, 120, 112, 16, "\u0627\u0644\u0645\u0627\u0626\u062F\u0629", false, 107],
+  [789, 165, 55, 20, "\u0627\u0644\u0623\u0646\u0639\u0627\u0645", true, 128],
+  [954, 206, 39, 24, "\u0627\u0644\u0623\u0639\u0631\u0627\u0641", true, 151],
+  [1160, 75, 88, 10, "\u0627\u0644\u0623\u0646\u0641\u0627\u0644", false, 177],
+  [1235, 129, 113, 16, "\u0627\u0644\u062A\u0648\u0628\u0629", false, 187],
+  [1364, 109, 51, 11, "\u064A\u0648\u0646\u0633", true, 208],
+  [1473, 123, 52, 10, "\u0647\u0648\u062F", true, 222],
+  [1596, 111, 53, 12, "\u064A\u0648\u0633\u0641", true, 236],
+  [1707, 43, 96, 6, "\u0627\u0644\u0631\u0639\u062F", false, 249],
+  [1750, 52, 72, 7, "\u0627\u0628\u0631\u0627\u0647\u064A\u0645", true, 256],
+  [1802, 99, 54, 6, "\u0627\u0644\u062D\u062C\u0631", true, 262],
+  [1901, 128, 70, 16, "\u0627\u0644\u0646\u062D\u0644", true, 268],
+  [2029, 111, 50, 12, "\u0627\u0644\u0625\u0633\u0631\u0627\u0621", true, 282],
+  [2140, 110, 69, 12, "\u0627\u0644\u0643\u0647\u0641", true, 294],
+  [2250, 98, 44, 6, "\u0645\u0631\u064A\u0645", true, 305],
+  [2348, 135, 45, 8, "\u0637\u0647", true, 313],
+  [2483, 112, 73, 7, "\u0627\u0644\u0623\u0646\u0628\u064A\u0627\u0621", true, 322],
+  [2595, 78, 103, 10, "\u0627\u0644\u062D\u062C", false, 332],
+  [2673, 118, 74, 6, "\u0627\u0644\u0645\u0624\u0645\u0646\u0648\u0646", true, 342],
+  [2791, 64, 102, 9, "\u0627\u0644\u0646\u0648\u0631", false, 350],
+  [2855, 77, 42, 6, "\u0627\u0644\u0641\u0631\u0642\u0627\u0646", true, 360],
+  [2932, 227, 47, 11, "\u0627\u0644\u0634\u0639\u0631\u0627\u0621", true, 367],
+  [3159, 93, 48, 7, "\u0627\u0644\u0646\u0645\u0644", true, 377],
+  [3252, 88, 49, 8, "\u0627\u0644\u0642\u0635\u0635", true, 386],
+  [3340, 69, 85, 7, "\u0627\u0644\u0639\u0646\u0643\u0628\u0648\u062A", true, 397],
+  [3409, 60, 84, 6, "\u0627\u0644\u0631\u0648\u0645", true, 405],
+  [3469, 34, 57, 3, "\u0644\u0642\u0645\u0627\u0646", true, 411],
+  [3503, 30, 75, 3, "\u0627\u0644\u0633\u062C\u062F\u0629", true, 415],
+  [3533, 73, 90, 9, "\u0627\u0644\u0623\u062D\u0632\u0627\u0628", false, 418],
+  [3606, 54, 58, 6, "\u0633\u0628\u0625", true, 428],
+  [3660, 45, 43, 5, "\u0641\u0627\u0637\u0631", true, 435],
+  [3705, 83, 41, 5, "\u064A\u0633", true, 441],
+  [3788, 182, 56, 5, "\u0627\u0644\u0635\u0627\u0641\u0627\u062A", true, 446],
+  [3970, 88, 38, 5, "\u0635", true, 453],
+  [4058, 75, 59, 8, "\u0627\u0644\u0632\u0645\u0631", true, 459],
+  [4133, 85, 60, 9, "\u063A\u0627\u0641\u0631", true, 468],
+  [4218, 54, 61, 6, "\u0641\u0635\u0644\u062A", true, 477],
+  [4272, 53, 62, 5, "\u0627\u0644\u0634\u0648\u0631\u0649", true, 483],
+  [4325, 89, 63, 7, "\u0627\u0644\u0632\u062E\u0631\u0641", true, 490],
+  [4414, 59, 64, 3, "\u0627\u0644\u062F\u062E\u0627\u0646", true, 496],
+  [4473, 37, 65, 4, "\u0627\u0644\u062C\u0627\u062B\u064A\u0629", true, 499],
+  [4510, 35, 66, 4, "\u0627\u0644\u0623\u062D\u0642\u0627\u0641", true, 503],
+  [4545, 38, 95, 4, "\u0645\u062D\u0645\u062F", false, 507],
+  [4583, 29, 111, 4, "\u0627\u0644\u0641\u062A\u062D", false, 511],
+  [4612, 18, 106, 2, "\u0627\u0644\u062D\u062C\u0631\u0627\u062A", false, 516],
+  [4630, 45, 34, 3, "\u0642", true, 518],
+  [4675, 60, 67, 3, "\u0627\u0644\u0630\u0627\u0631\u064A\u0627\u062A", true, 521],
+  [4735, 49, 76, 2, "\u0627\u0644\u0637\u0648\u0631", true, 524],
+  [4784, 62, 23, 3, "\u0627\u0644\u0646\u062C\u0645", true, 526],
+  [4846, 55, 37, 3, "\u0627\u0644\u0642\u0645\u0631", true, 529],
+  [4901, 78, 97, 3, "\u0627\u0644\u0631\u062D\u0645\u0646", false, 532],
+  [4979, 96, 46, 3, "\u0627\u0644\u0648\u0627\u0642\u0639\u0629", true, 535],
+  [5075, 29, 94, 4, "\u0627\u0644\u062D\u062F\u064A\u062F", false, 538],
+  [5104, 22, 105, 3, "\u0627\u0644\u0645\u062C\u0627\u062F\u0644\u0629", false, 542],
+  [5126, 24, 101, 3, "\u0627\u0644\u062D\u0634\u0631", false, 546],
+  [5150, 13, 91, 2, "\u0627\u0644\u0645\u0645\u062A\u062D\u0646\u0629", false, 549],
+  [5163, 14, 109, 2, "\u0627\u0644\u0635\u0641", false, 552],
+  [5177, 11, 110, 2, "\u0627\u0644\u062C\u0645\u0639\u0629", false, 553],
+  [5188, 11, 104, 2, "\u0627\u0644\u0645\u0646\u0627\u0641\u0642\u0648\u0646", false, 555],
+  [5199, 18, 108, 2, "\u0627\u0644\u062A\u063A\u0627\u0628\u0646", false, 556],
+  [5217, 12, 99, 2, "\u0627\u0644\u0637\u0644\u0627\u0642", false, 558],
+  [5229, 12, 107, 2, "\u0627\u0644\u062A\u062D\u0631\u064A\u0645", false, 560],
+  [5241, 30, 77, 2, "\u0627\u0644\u0645\u0644\u0643", true, 562],
+  [5271, 52, 2, 2, "\u0627\u0644\u0642\u0644\u0645", true, 565],
+  [5323, 52, 78, 2, "\u0627\u0644\u062D\u0627\u0642\u0629", true, 567],
+  [5375, 44, 79, 2, "\u0627\u0644\u0645\u0639\u0627\u0631\u062C", true, 569],
+  [5419, 28, 71, 2, "\u0646\u0648\u062D", true, 571],
+  [5447, 28, 40, 2, "\u0627\u0644\u062C\u0646", true, 572],
+  [5475, 20, 3, 2, "\u0627\u0644\u0645\u0632\u0645\u0644", true, 574],
+  [5495, 56, 4, 2, "\u0627\u0644\u0645\u062F\u062B\u0631", true, 576],
+  [5551, 40, 31, 2, "\u0627\u0644\u0642\u064A\u0627\u0645\u0629", true, 578],
+  [5591, 31, 98, 2, "\u0627\u0644\u0627\u0646\u0633\u0627\u0646", false, 579],
+  [5622, 50, 33, 2, "\u0627\u0644\u0645\u0631\u0633\u0644\u0627\u062A", true, 581],
+  [5672, 40, 80, 2, "\u0627\u0644\u0646\u0628\u0625", true, 582],
+  [5712, 46, 81, 2, "\u0627\u0644\u0646\u0627\u0632\u0639\u0627\u062A", true, 584],
+  [5758, 42, 24, 1, "\u0639\u0628\u0633", true, 585],
+  [5800, 29, 7, 1, "\u0627\u0644\u062A\u0643\u0648\u064A\u0631", true, 586],
+  [5829, 19, 82, 1, "\u0627\u0644\u0625\u0646\u0641\u0637\u0627\u0631", true, 587],
+  [5848, 36, 86, 1, "\u0627\u0644\u0645\u0637\u0641\u0641\u064A\u0646", true, 588],
+  [5884, 25, 83, 1, "\u0627\u0644\u0625\u0646\u0634\u0642\u0627\u0642", true, 589],
+  [5909, 22, 27, 1, "\u0627\u0644\u0628\u0631\u0648\u062C", true, 590],
+  [5931, 17, 36, 1, "\u0627\u0644\u0637\u0627\u0631\u0642", true, 591],
+  [5948, 19, 8, 1, "\u0627\u0644\u0623\u0639\u0644\u0649", true, 592],
+  [5967, 26, 68, 1, "\u0627\u0644\u063A\u0627\u0634\u064A\u0629", true, 592],
+  [5993, 30, 10, 1, "\u0627\u0644\u0641\u062C\u0631", true, 593],
+  [6023, 20, 35, 1, "\u0627\u0644\u0628\u0644\u062F", true, 594],
+  [6043, 15, 26, 1, "\u0627\u0644\u0634\u0645\u0633", true, 595],
+  [6058, 21, 9, 1, "\u0627\u0644\u0644\u064A\u0644", true, 596],
+  [6079, 11, 11, 1, "\u0627\u0644\u0636\u062D\u0649", true, 596],
+  [6090, 8, 12, 1, "\u0627\u0644\u0634\u0631\u062D", true, 596],
+  [6098, 8, 28, 1, "\u0627\u0644\u062A\u064A\u0646", true, 597],
+  [6106, 19, 1, 1, "\u0627\u0644\u0639\u0644\u0642", true, 597],
+  [6125, 5, 25, 1, "\u0627\u0644\u0642\u062F\u0631", true, 598],
+  [6130, 8, 100, 1, "\u0627\u0644\u0628\u064A\u0646\u0629", false, 599],
+  [6138, 8, 93, 1, "\u0627\u0644\u0632\u0644\u0632\u0644\u0629", false, 599],
+  [6146, 11, 14, 1, "\u0627\u0644\u0639\u0627\u062F\u064A\u0627\u062A", true, 600],
+  [6157, 11, 30, 1, "\u0627\u0644\u0642\u0627\u0631\u0639\u0629", true, 600],
+  [6168, 8, 16, 1, "\u0627\u0644\u062A\u0643\u0627\u062B\u0631", true, 600],
+  [6176, 3, 13, 1, "\u0627\u0644\u0639\u0635\u0631", true, 601],
+  [6179, 9, 32, 1, "\u0627\u0644\u0647\u0645\u0632\u0629", true, 601],
+  [6188, 5, 19, 1, "\u0627\u0644\u0641\u064A\u0644", true, 601],
+  [6193, 4, 29, 1, "\u0642\u0631\u064A\u0634", true, 602],
+  [6197, 7, 17, 1, "\u0627\u0644\u0645\u0627\u0639\u0648\u0646", true, 602],
+  [6204, 3, 15, 1, "\u0627\u0644\u0643\u0648\u062B\u0631", true, 602],
+  [6207, 6, 18, 1, "\u0627\u0644\u0643\u0627\u0641\u0631\u0648\u0646", true, 603],
+  [6213, 3, 114, 1, "\u0627\u0644\u0646\u0635\u0631", false, 603],
+  [6216, 5, 6, 1, "\u0627\u0644\u0645\u0633\u062F", true, 603],
+  [6221, 4, 22, 1, "\u0627\u0644\u0625\u062E\u0644\u0627\u0635", true, 604],
+  [6225, 5, 20, 1, "\u0627\u0644\u0641\u0644\u0642", true, 604],
+  [6230, 6, 21, 1, "\u0627\u0644\u0646\u0627\u0633", true, 604],
+  [6236, 0, -1, -1, "", false, -1]
+];
diff --git a/lib_es/nextAyah.d.ts b/lib_es/nextAyah.d.ts
new file mode 100644
index 0000000..b9a294f
--- /dev/null
+++ b/lib_es/nextAyah.d.ts
@@ -0,0 +1,8 @@
+import { AyahNo, Surah, SurahAyah } from "./types";
+/**
+ * Get the next ayah for the given surah and ayah number.
+ * @param surah - The surah number.
+ * @param ayah - The ayah number within the surah.
+ * @returns The surah and ayah number of the next ayah.
+ */
+export declare function nextAyah(surah: Surah, ayah: AyahNo): SurahAyah;
diff --git a/lib_es/nextAyah.mjs b/lib_es/nextAyah.mjs
new file mode 100644
index 0000000..2e38deb
--- /dev/null
+++ b/lib_es/nextAyah.mjs
@@ -0,0 +1,9 @@
+import { meta } from "./const.mjs";
+import { findAyaidBySurah } from "./findAyaidBySurah.mjs";
+import { findSurahByAyaid } from "./findSurahByAyaid.mjs";
+export function nextAyah(surah, ayah) {
+  if (surah < 1 || surah > meta.numSuras)
+    throw new RangeError("Surah must be between 1 and " + meta.numSuras);
+  const ayaid = findAyaidBySurah(surah, ayah);
+  return findSurahByAyaid(ayaid == meta.numAyas ? 1 : ayaid + 1);
+}
diff --git a/lib_es/pageList.js b/lib_es/pageList.js
deleted file mode 100644
index 1586192..0000000
--- a/lib_es/pageList.js
+++ /dev/null
@@ -1,48 +0,0 @@
-export const PageList = [
-    0, 1, 8, 13, 24, 32, 37, 45, 56, 65, 69, 77, 84, 91, 96, 101, 109, 113, 120,
-    127, 134, 142, 149, 153, 161, 171, 177, 184, 189, 194, 198, 204, 210, 218,
-    223, 227, 232, 238, 241, 245, 253, 256, 260, 264, 267, 272, 277, 282, 289,
-    290, 294, 303, 309, 316, 323, 331, 339, 346, 355, 364, 371, 377, 385, 394,
-    402, 409, 415, 426, 434, 442, 447, 451, 459, 467, 474, 480, 488, 494, 500,
-    505, 508, 513, 517, 520, 527, 531, 538, 545, 553, 559, 568, 573, 580, 585,
-    588, 595, 599, 607, 615, 621, 628, 634, 641, 648, 656, 664, 669, 672, 675,
-    679, 683, 687, 693, 701, 706, 711, 715, 720, 727, 734, 740, 746, 752, 759,
-    765, 773, 778, 783, 790, 798, 808, 817, 825, 834, 842, 849, 858, 863, 871,
-    880, 884, 891, 900, 908, 914, 921, 927, 932, 936, 941, 947, 955, 966, 977,
-    985, 992, 998, 1006, 1012, 1022, 1028, 1036, 1042, 1050, 1059, 1075, 1085,
-    1092, 1098, 1104, 1110, 1114, 1118, 1125, 1133, 1142, 1150, 1161, 1169, 1177,
-    1186, 1194, 1201, 1206, 1213, 1222, 1230, 1236, 1242, 1249, 1256, 1262, 1267,
-    1272, 1276, 1283, 1290, 1297, 1304, 1308, 1315, 1322, 1329, 1335, 1342, 1347,
-    1353, 1358, 1365, 1371, 1379, 1385, 1390, 1398, 1407, 1418, 1426, 1435, 1443,
-    1453, 1462, 1471, 1479, 1486, 1493, 1502, 1511, 1519, 1527, 1536, 1545, 1555,
-    1562, 1571, 1582, 1591, 1601, 1611, 1619, 1627, 1634, 1640, 1649, 1660, 1666,
-    1675, 1683, 1692, 1700, 1708, 1713, 1721, 1726, 1736, 1742, 1750, 1756, 1761,
-    1769, 1775, 1784, 1793, 1803, 1818, 1834, 1854, 1873, 1893, 1908, 1916, 1928,
-    1936, 1944, 1956, 1966, 1974, 1981, 1989, 1995, 2004, 2012, 2020, 2030, 2037,
-    2047, 2057, 2068, 2079, 2088, 2096, 2105, 2116, 2126, 2134, 2145, 2156, 2161,
-    2168, 2175, 2186, 2194, 2202, 2215, 2224, 2238, 2251, 2262, 2276, 2289, 2302,
-    2315, 2327, 2346, 2361, 2386, 2400, 2413, 2425, 2436, 2447, 2462, 2474, 2484,
-    2494, 2508, 2519, 2528, 2541, 2556, 2565, 2574, 2585, 2596, 2601, 2611, 2619,
-    2626, 2634, 2642, 2651, 2660, 2668, 2674, 2691, 2701, 2716, 2733, 2748, 2763,
-    2778, 2792, 2802, 2812, 2819, 2823, 2828, 2835, 2845, 2850, 2853, 2858, 2867,
-    2876, 2888, 2899, 2911, 2923, 2933, 2952, 2972, 2993, 3016, 3044, 3069, 3092,
-    3116, 3139, 3160, 3173, 3182, 3195, 3204, 3215, 3223, 3236, 3248, 3258, 3266,
-    3274, 3281, 3288, 3296, 3303, 3312, 3323, 3330, 3337, 3347, 3355, 3364, 3371,
-    3379, 3386, 3393, 3404, 3415, 3425, 3434, 3442, 3451, 3460, 3470, 3481, 3489,
-    3498, 3504, 3515, 3524, 3534, 3540, 3549, 3556, 3564, 3569, 3577, 3584, 3588,
-    3596, 3607, 3614, 3621, 3629, 3638, 3646, 3655, 3664, 3672, 3679, 3691, 3699,
-    3705, 3718, 3733, 3746, 3760, 3776, 3789, 3813, 3840, 3865, 3891, 3915, 3942,
-    3971, 3987, 3997, 4013, 4032, 4054, 4064, 4069, 4080, 4090, 4099, 4106, 4115,
-    4126, 4133, 4141, 4150, 4159, 4167, 4174, 4183, 4192, 4200, 4211, 4219, 4230,
-    4239, 4248, 4257, 4265, 4273, 4283, 4288, 4295, 4304, 4317, 4324, 4336, 4348,
-    4359, 4373, 4386, 4399, 4415, 4433, 4454, 4474, 4487, 4496, 4506, 4516, 4525,
-    4531, 4539, 4546, 4557, 4565, 4575, 4584, 4593, 4599, 4607, 4612, 4617, 4624,
-    4631, 4646, 4666, 4682, 4706, 4727, 4750, 4767, 4785, 4811, 4829, 4853, 4874,
-    4896, 4918, 4942, 4969, 4996, 5030, 5056, 5079, 5087, 5094, 5100, 5105, 5111,
-    5116, 5126, 5130, 5136, 5143, 5151, 5156, 5162, 5169, 5178, 5186, 5193, 5200,
-    5209, 5218, 5223, 5230, 5237, 5242, 5254, 5268, 5287, 5314, 5332, 5358, 5386,
-    5415, 5430, 5448, 5461, 5476, 5495, 5513, 5543, 5571, 5597, 5617, 5642, 5673,
-    5703, 5728, 5759, 5801, 5830, 5855, 5883, 5910, 5932, 5964, 5994, 6017, 6044,
-    6073, 6099, 6126, 6138, 6156, 6177, 6194, 6208, 6222, 6237,
-];
-//# sourceMappingURL=pageList.js.map
\ No newline at end of file
diff --git a/lib_es/pageList.js.map b/lib_es/pageList.js.map
deleted file mode 100644
index 214ea8a..0000000
--- a/lib_es/pageList.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"pageList.js","sourceRoot":"","sources":["../src/pageList.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,QAAQ,GAAa;IAChC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IAC3E,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IACzE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;CAC3D,CAAA"}
\ No newline at end of file
diff --git a/lib_es/pageMeta.d.ts b/lib_es/pageMeta.d.ts
new file mode 100644
index 0000000..f7ff91a
--- /dev/null
+++ b/lib_es/pageMeta.d.ts
@@ -0,0 +1,9 @@
+import { Page, PageMeta } from "./types";
+/**
+ * Retrieves the page metadata for the specified page number.
+ *
+ * @param pageNum - The page number to retrieve metadata for.
+ * @returns The page metadata, including the first and last ayah IDs on the page.
+ * @throws {RangeError} If the page number is out of the valid range (1 to `meta.numPages`).
+ */
+export declare function pageMeta(pageNum: Page): PageMeta;
diff --git a/lib_es/pageMeta.mjs b/lib_es/pageMeta.mjs
new file mode 100644
index 0000000..d50d8ad
--- /dev/null
+++ b/lib_es/pageMeta.mjs
@@ -0,0 +1,16 @@
+import { meta } from "./const.mjs";
+import { findSurahByAyaid } from "./findSurahByAyaid.mjs";
+import { PageList } from "./lists/pageList.mjs";
+export function pageMeta(pageNum) {
+  if (pageNum < 1 || pageNum > meta.numPages)
+    throw new RangeError("pagenum must be between 1 and " + meta.numPages);
+  const [curPage, nextPage] = [
+    PageList[pageNum],
+    PageList[pageNum + 1]
+  ];
+  return {
+    pageNum,
+    first: findSurahByAyaid(curPage),
+    last: [...findSurahByAyaid(nextPage - 1)]
+  };
+}
diff --git a/lib_es/prevAyah.d.ts b/lib_es/prevAyah.d.ts
new file mode 100644
index 0000000..b5c9bbb
--- /dev/null
+++ b/lib_es/prevAyah.d.ts
@@ -0,0 +1,8 @@
+import { AyahNo, Surah, SurahAyah } from "./types";
+/**
+ * Get the previous ayah for the given surah and ayah number.
+ * @param surah - The surah number.
+ * @param ayah - The ayah number within the surah.
+ * @returns The surah and ayah number of the previous ayah.
+ */
+export declare function prevAyah(surah: Surah, ayah: AyahNo): SurahAyah;
diff --git a/lib_es/prevAyah.mjs b/lib_es/prevAyah.mjs
new file mode 100644
index 0000000..e7dddb0
--- /dev/null
+++ b/lib_es/prevAyah.mjs
@@ -0,0 +1,9 @@
+import { meta } from "./const.mjs";
+import { findAyaidBySurah } from "./findAyaidBySurah.mjs";
+import { findSurahByAyaid } from "./findSurahByAyaid.mjs";
+import { checkValidSurah } from "./validation.mjs";
+export function prevAyah(surah, ayah) {
+  checkValidSurah(surah);
+  const ayaid = findAyaidBySurah(surah, ayah);
+  return findSurahByAyaid(ayaid == 1 ? meta.numAyas : ayaid - 1);
+}
diff --git a/lib_es/rukuList.js b/lib_es/rukuList.js
deleted file mode 100644
index 526a07a..0000000
--- a/lib_es/rukuList.js
+++ /dev/null
@@ -1,45 +0,0 @@
-export const RukuList = [
-    0, 1, 8, 15, 28, 37, 47, 54, 67, 69, 79, 90, 94, 104, 111, 120, 129, 137, 149,
-    155, 160, 171, 175, 184, 190, 196, 204, 218, 224, 229, 236, 239, 243, 250,
-    256, 261, 265, 268, 274, 281, 289, 291, 294, 303, 314, 324, 335, 348, 357,
-    365, 374, 385, 395, 403, 414, 423, 437, 442, 449, 465, 474, 483, 494, 504,
-    508, 516, 519, 527, 536, 544, 553, 564, 570, 581, 585, 590, 594, 598, 606,
-    609, 620, 628, 635, 646, 656, 665, 670, 675, 681, 689, 696, 704, 713, 720,
-    726, 736, 747, 756, 763, 770, 778, 785, 790, 800, 810, 820, 831, 840, 845,
-    850, 860, 872, 880, 884, 890, 900, 911, 919, 930, 934, 940, 944, 955, 965,
-    980, 986, 994, 1002, 1008, 1013, 1019, 1027, 1039, 1048, 1054, 1063, 1081,
-    1084, 1096, 1102, 1106, 1112, 1117, 1126, 1136, 1143, 1161, 1171, 1180, 1189,
-    1198, 1205, 1209, 1219, 1225, 1230, 1236, 1242, 1252, 1260, 1265, 1273, 1278,
-    1295, 1302, 1308, 1316, 1325, 1335, 1346, 1354, 1358, 1365, 1375, 1385, 1395,
-    1405, 1418, 1425, 1435, 1447, 1457, 1468, 1474, 1482, 1498, 1509, 1523, 1534,
-    1542, 1557, 1569, 1583, 1597, 1603, 1617, 1626, 1632, 1639, 1646, 1654, 1665,
-    1676, 1690, 1701, 1708, 1715, 1726, 1734, 1739, 1745, 1751, 1757, 1763, 1772,
-    1778, 1785, 1792, 1803, 1818, 1828, 1847, 1863, 1882, 1902, 1911, 1923, 1927,
-    1936, 1942, 1952, 1962, 1967, 1972, 1978, 1985, 1991, 2002, 2012, 2021, 2030,
-    2040, 2052, 2060, 2070, 2082, 2090, 2100, 2107, 2114, 2123, 2130, 2141, 2153,
-    2158, 2163, 2172, 2185, 2190, 2194, 2200, 2211, 2223, 2242, 2251, 2266, 2291,
-    2301, 2316, 2333, 2349, 2373, 2403, 2425, 2438, 2453, 2464, 2477, 2484, 2494,
-    2513, 2525, 2534, 2559, 2577, 2596, 2606, 2618, 2621, 2629, 2634, 2644, 2653,
-    2660, 2668, 2674, 2696, 2706, 2724, 2751, 2766, 2792, 2802, 2812, 2818, 2826,
-    2832, 2842, 2849, 2853, 2856, 2865, 2876, 2890, 2900, 2916, 2933, 2942, 2966,
-    2985, 3002, 3037, 3055, 3073, 3092, 3108, 3124, 3160, 3174, 3191, 3204, 3218,
-    3226, 3242, 3253, 3266, 3274, 3281, 3295, 3303, 3313, 3328, 3341, 3354, 3363,
-    3371, 3385, 3392, 3404, 3410, 3420, 3429, 3437, 3450, 3463, 3470, 3481, 3489,
-    3504, 3515, 3526, 3534, 3542, 3554, 3561, 3568, 3574, 3586, 3592, 3602, 3607,
-    3616, 3628, 3637, 3643, 3652, 3661, 3668, 3675, 3687, 3698, 3706, 3718, 3738,
-    3756, 3773, 3789, 3810, 3863, 3902, 3927, 3971, 3985, 3997, 4011, 4035, 4059,
-    4068, 4080, 4090, 4100, 4111, 4122, 4129, 4134, 4143, 4154, 4161, 4171, 4184,
-    4194, 4202, 4212, 4219, 4227, 4237, 4244, 4251, 4263, 4273, 4282, 4292, 4302,
-    4316, 4326, 4341, 4351, 4361, 4371, 4382, 4393, 4415, 4444, 4457, 4474, 4485,
-    4495, 4500, 4511, 4521, 4531, 4537, 4546, 4557, 4565, 4574, 4584, 4594, 4601,
-    4610, 4613, 4623, 4631, 4646, 4660, 4676, 4699, 4722, 4736, 4764, 4785, 4810,
-    4817, 4847, 4869, 4887, 4902, 4927, 4947, 4980, 5018, 5054, 5076, 5086, 5095,
-    5101, 5105, 5111, 5118, 5127, 5137, 5144, 5151, 5157, 5164, 5173, 5178, 5186,
-    5189, 5197, 5200, 5210, 5218, 5225, 5230, 5237, 5242, 5256, 5272, 5305, 5324,
-    5361, 5376, 5411, 5420, 5440, 5448, 5467, 5476, 5495, 5496, 5527, 5552, 5582,
-    5592, 5614, 5623, 5663, 5673, 5703, 5713, 5739, 5759, 5801, 5830, 5849, 5885,
-    5910, 5932, 5949, 5968, 5994, 6024, 6044, 6059, 6080, 6091, 6099, 6107, 6126,
-    6131, 6139, 6147, 6158, 6169, 6177, 6180, 6189, 6194, 6198, 6205, 6208, 6214,
-    6217, 6222, 6226, 6231, 6237,
-];
-//# sourceMappingURL=rukuList.js.map
\ No newline at end of file
diff --git a/lib_es/rukuList.js.map b/lib_es/rukuList.js.map
deleted file mode 100644
index 40d5d4d..0000000
--- a/lib_es/rukuList.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"rukuList.js","sourceRoot":"","sources":["../src/rukuList.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,QAAQ,GAAa;IAChC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IAC7E,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IACzE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;CAC7B,CAAA"}
\ No newline at end of file
diff --git a/lib_es/surahList.js b/lib_es/surahList.js
deleted file mode 100644
index 828e937..0000000
--- a/lib_es/surahList.js
+++ /dev/null
@@ -1,119 +0,0 @@
-export const SuraList = [
-    [-1, -1, -1, -1, "", false, -1],
-    [0, 7, 5, 1, "الفاتحة", true, 1],
-    [7, 286, 87, 40, "البقرة", false, 2],
-    [293, 200, 89, 20, "آل عمران", false, 50],
-    [493, 176, 92, 24, "النساء", false, 77],
-    [669, 120, 112, 16, "المائدة", false, 107],
-    [789, 165, 55, 20, "الأنعام", true, 128],
-    [954, 206, 39, 24, "الأعراف", true, 151],
-    [1160, 75, 88, 10, "الأنفال", false, 177],
-    [1235, 129, 113, 16, "التوبة", false, 187],
-    [1364, 109, 51, 11, "يونس", true, 208],
-    [1473, 123, 52, 10, "هود", true, 222],
-    [1596, 111, 53, 12, "يوسف", true, 236],
-    [1707, 43, 96, 6, "الرعد", false, 249],
-    [1750, 52, 72, 7, "ابراهيم", true, 256],
-    [1802, 99, 54, 6, "الحجر", true, 262],
-    [1901, 128, 70, 16, "النحل", true, 268],
-    [2029, 111, 50, 12, "الإسراء", true, 282],
-    [2140, 110, 69, 12, "الكهف", true, 294],
-    [2250, 98, 44, 6, "مريم", true, 305],
-    [2348, 135, 45, 8, "طه", true, 313],
-    [2483, 112, 73, 7, "الأنبياء", true, 322],
-    [2595, 78, 103, 10, "الحج", false, 332],
-    [2673, 118, 74, 6, "المؤمنون", true, 342],
-    [2791, 64, 102, 9, "النور", false, 350],
-    [2855, 77, 42, 6, "الفرقان", true, 360],
-    [2932, 227, 47, 11, "الشعراء", true, 367],
-    [3159, 93, 48, 7, "النمل", true, 377],
-    [3252, 88, 49, 8, "القصص", true, 386],
-    [3340, 69, 85, 7, "العنكبوت", true, 397],
-    [3409, 60, 84, 6, "الروم", true, 405],
-    [3469, 34, 57, 3, "لقمان", true, 411],
-    [3503, 30, 75, 3, "السجدة", true, 415],
-    [3533, 73, 90, 9, "الأحزاب", false, 418],
-    [3606, 54, 58, 6, "سبإ", true, 428],
-    [3660, 45, 43, 5, "فاطر", true, 435],
-    [3705, 83, 41, 5, "يس", true, 441],
-    [3788, 182, 56, 5, "الصافات", true, 446],
-    [3970, 88, 38, 5, "ص", true, 453],
-    [4058, 75, 59, 8, "الزمر", true, 459],
-    [4133, 85, 60, 9, "غافر", true, 468],
-    [4218, 54, 61, 6, "فصلت", true, 477],
-    [4272, 53, 62, 5, "الشورى", true, 483],
-    [4325, 89, 63, 7, "الزخرف", true, 490],
-    [4414, 59, 64, 3, "الدخان", true, 496],
-    [4473, 37, 65, 4, "الجاثية", true, 499],
-    [4510, 35, 66, 4, "الأحقاف", true, 503],
-    [4545, 38, 95, 4, "محمد", false, 507],
-    [4583, 29, 111, 4, "الفتح", false, 511],
-    [4612, 18, 106, 2, "الحجرات", false, 516],
-    [4630, 45, 34, 3, "ق", true, 518],
-    [4675, 60, 67, 3, "الذاريات", true, 521],
-    [4735, 49, 76, 2, "الطور", true, 524],
-    [4784, 62, 23, 3, "النجم", true, 526],
-    [4846, 55, 37, 3, "القمر", true, 529],
-    [4901, 78, 97, 3, "الرحمن", false, 532],
-    [4979, 96, 46, 3, "الواقعة", true, 535],
-    [5075, 29, 94, 4, "الحديد", false, 538],
-    [5104, 22, 105, 3, "المجادلة", false, 542],
-    [5126, 24, 101, 3, "الحشر", false, 546],
-    [5150, 13, 91, 2, "الممتحنة", false, 549],
-    [5163, 14, 109, 2, "الصف", false, 552],
-    [5177, 11, 110, 2, "الجمعة", false, 553],
-    [5188, 11, 104, 2, "المنافقون", false, 555],
-    [5199, 18, 108, 2, "التغابن", false, 556],
-    [5217, 12, 99, 2, "الطلاق", false, 558],
-    [5229, 12, 107, 2, "التحريم", false, 560],
-    [5241, 30, 77, 2, "الملك", true, 562],
-    [5271, 52, 2, 2, "القلم", true, 565],
-    [5323, 52, 78, 2, "الحاقة", true, 567],
-    [5375, 44, 79, 2, "المعارج", true, 569],
-    [5419, 28, 71, 2, "نوح", true, 571],
-    [5447, 28, 40, 2, "الجن", true, 572],
-    [5475, 20, 3, 2, "المزمل", true, 574],
-    [5495, 56, 4, 2, "المدثر", true, 576],
-    [5551, 40, 31, 2, "القيامة", true, 578],
-    [5591, 31, 98, 2, "الانسان", false, 579],
-    [5622, 50, 33, 2, "المرسلات", true, 581],
-    [5672, 40, 80, 2, "النبإ", true, 582],
-    [5712, 46, 81, 2, "النازعات", true, 584],
-    [5758, 42, 24, 1, "عبس", true, 585],
-    [5800, 29, 7, 1, "التكوير", true, 586],
-    [5829, 19, 82, 1, "الإنفطار", true, 587],
-    [5848, 36, 86, 1, "المطففين", true, 588],
-    [5884, 25, 83, 1, "الإنشقاق", true, 589],
-    [5909, 22, 27, 1, "البروج", true, 590],
-    [5931, 17, 36, 1, "الطارق", true, 591],
-    [5948, 19, 8, 1, "الأعلى", true, 592],
-    [5967, 26, 68, 1, "الغاشية", true, 592],
-    [5993, 30, 10, 1, "الفجر", true, 593],
-    [6023, 20, 35, 1, "البلد", true, 594],
-    [6043, 15, 26, 1, "الشمس", true, 595],
-    [6058, 21, 9, 1, "الليل", true, 596],
-    [6079, 11, 11, 1, "الضحى", true, 596],
-    [6090, 8, 12, 1, "الشرح", true, 596],
-    [6098, 8, 28, 1, "التين", true, 597],
-    [6106, 19, 1, 1, "العلق", true, 597],
-    [6125, 5, 25, 1, "القدر", true, 598],
-    [6130, 8, 100, 1, "البينة", false, 599],
-    [6138, 8, 93, 1, "الزلزلة", false, 599],
-    [6146, 11, 14, 1, "العاديات", true, 600],
-    [6157, 11, 30, 1, "القارعة", true, 600],
-    [6168, 8, 16, 1, "التكاثر", true, 600],
-    [6176, 3, 13, 1, "العصر", true, 601],
-    [6179, 9, 32, 1, "الهمزة", true, 601],
-    [6188, 5, 19, 1, "الفيل", true, 601],
-    [6193, 4, 29, 1, "قريش", true, 602],
-    [6197, 7, 17, 1, "الماعون", true, 602],
-    [6204, 3, 15, 1, "الكوثر", true, 602],
-    [6207, 6, 18, 1, "الكافرون", true, 603],
-    [6213, 3, 114, 1, "النصر", false, 603],
-    [6216, 5, 6, 1, "المسد", true, 603],
-    [6221, 4, 22, 1, "الإخلاص", true, 604],
-    [6225, 5, 20, 1, "الفلق", true, 604],
-    [6230, 6, 21, 1, "الناس", true, 604],
-    [6236, 0, -1, -1, "", false, -1],
-];
-//# sourceMappingURL=surahList.js.map
\ No newline at end of file
diff --git a/lib_es/surahList.js.map b/lib_es/surahList.js.map
deleted file mode 100644
index 6a4d93a..0000000
--- a/lib_es/surahList.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"surahList.js","sourceRoot":"","sources":["../src/surahList.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/lib_es/types.d.ts b/lib_es/types.d.ts
new file mode 100644
index 0000000..1e48666
--- /dev/null
+++ b/lib_es/types.d.ts
@@ -0,0 +1,36 @@
+export type Surah = number;
+export type AyahNo = number;
+export type AyahId = number;
+export type Page = number;
+export type Juz = number;
+export type JuzHizb = {
+    juz: Juz;
+    hizb: number;
+    id: number;
+};
+export type SurahAyah = [Surah, AyahNo];
+export type SurahAyahSegment = [Surah, AyahNo | [AyahNo, AyahNo]];
+export type PageMeta = {
+    pageNum: Page;
+    first: SurahAyah;
+    last: SurahAyah;
+};
+export type JuzMeta = {
+    leftjuz: Juz;
+    ayahsBetweenJuzSurah: number;
+    rightJuz: Juz;
+    leftAyahId: AyahId;
+    rightAyahId: AyahId;
+};
+export type SajdaType = "recommended" | "obligatory";
+export type Sajda = [AyahId, SajdaType];
+export type SurahMeta = [
+    startAyahId: AyahId,
+    ayahCount: number,
+    surahOrder: number,
+    rukuCount: number,
+    name: string,
+    isMeccan: boolean,
+    page: Page
+];
+export type SuraName = [name: string, translitName: string];
diff --git a/lib_es/types.js b/lib_es/types.js
deleted file mode 100644
index 718fd38..0000000
--- a/lib_es/types.js
+++ /dev/null
@@ -1,2 +0,0 @@
-export {};
-//# sourceMappingURL=types.js.map
\ No newline at end of file
diff --git a/lib_es/types.js.map b/lib_es/types.js.map
deleted file mode 100644
index c768b79..0000000
--- a/lib_es/types.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
\ No newline at end of file
diff --git a/lib_es/types.mjs b/lib_es/types.mjs
new file mode 100644
index 0000000..e69de29
diff --git a/lib_es/utils.d.ts b/lib_es/utils.d.ts
new file mode 100644
index 0000000..87ab115
--- /dev/null
+++ b/lib_es/utils.d.ts
@@ -0,0 +1,9 @@
+/**
+ * Performs a binary search on the given array to find the index of the specified element.
+ *
+ * @param ar - The array to search.
+ * @param el - The element to search for.
+ * @param compare_fn - An optional comparison function to use for the search. Defaults to a simple numeric comparison.
+ * @returns The index of the element if found, or a negative value indicating the insertion point if not found.
+ */
+export declare function binarySearch(ar: Array<number>, el: number, compare_fn?: (a: number, b: number) => number): number;
diff --git a/lib_es/utils.mjs b/lib_es/utils.mjs
new file mode 100644
index 0000000..bb3be86
--- /dev/null
+++ b/lib_es/utils.mjs
@@ -0,0 +1,16 @@
+export function binarySearch(ar, el, compare_fn = (a, b) => a - b) {
+  let m = 0;
+  let n = ar.length - 1;
+  while (m <= n) {
+    const k = n + m >> 1;
+    const cmp = compare_fn(el, ar[k]);
+    if (cmp > 0) {
+      m = k + 1;
+    } else if (cmp < 0) {
+      n = k - 1;
+    } else {
+      return k;
+    }
+  }
+  return -m - 1;
+}
diff --git a/lib_es/validation.d.ts b/lib_es/validation.d.ts
new file mode 100644
index 0000000..7a8bf4a
--- /dev/null
+++ b/lib_es/validation.d.ts
@@ -0,0 +1,25 @@
+/**
+ * Checks if the given Surah (chapter) number is valid.
+ *
+ * @param surah - The Surah (chapter) number to check.
+ * @param checkOnly - If true, the function will only check the validity and not throw an error.
+ * @returns True if the Surah number is valid, false otherwise.
+ */
+export declare function checkValidSurah(surah: number, checkOnly?: boolean): boolean;
+/**
+ * Checks if the given Surah and Ayah (verse) numbers are valid.
+ *
+ * @param surah - The Surah (chapter) number to check.
+ * @param ayah - The Ayah (verse) number to check.
+ * @param checkOnly - If true, the function will only check the validity and not throw an error.
+ * @returns True if the Surah and Ayah numbers are valid, false otherwise.
+ */
+export declare function checkValidSurahAyah(surah: number, ayah: number, checkOnly?: boolean): boolean;
+/**
+ * Checks if the given Ayah (verse) ID is valid.
+ *
+ * @param ayahId - The Ayah (verse) ID to check.
+ * @param checkOnly - If true, the function will only check the validity and not throw an error.
+ * @returns True if the Ayah ID is valid, otherwise throws a RangeError.
+ */
+export declare function checkValidAyahId(ayahId: number, checkOnly?: boolean): boolean;
diff --git a/lib_es/validation.mjs b/lib_es/validation.mjs
new file mode 100644
index 0000000..0744e83
--- /dev/null
+++ b/lib_es/validation.mjs
@@ -0,0 +1,32 @@
+import { meta } from "./const.mjs";
+import { getAyaCountinSura } from "./getAyaCountinSura.mjs";
+export function checkValidSurah(surah, checkOnly = false) {
+  if (typeof surah !== "number" || !Number.isInteger(surah)) {
+    if (checkOnly) return false;
+    throw new TypeError("Ayah ID must be an integer");
+  }
+  if (surah < 1 || surah > meta.numSuras) {
+    if (checkOnly) return false;
+    throw new RangeError("Surah must be between 1 and " + meta.numSuras);
+  }
+  return true;
+}
+export function checkValidSurahAyah(surah, ayah, checkOnly = false) {
+  if (!checkValidSurah(surah, checkOnly)) return false;
+  if (ayah < 1 || ayah > getAyaCountinSura(surah)) {
+    if (checkOnly) return false;
+    throw new RangeError("Ayah must be between 1 and " + getAyaCountinSura(surah));
+  }
+  return true;
+}
+export function checkValidAyahId(ayahId, checkOnly = false) {
+  if (typeof ayahId !== "number" || !Number.isInteger(ayahId)) {
+    if (checkOnly) return false;
+    throw new TypeError("Ayah ID must be an integer");
+  }
+  if (ayahId < 1 || ayahId > meta.numAyas) {
+    if (checkOnly) return false;
+    throw new RangeError("Ayah ID must be between 1 and " + meta.numAyas);
+  }
+  return true;
+}
diff --git a/package.json b/package.json
index 3cd49ae..c05c998 100644
--- a/package.json
+++ b/package.json
@@ -8,13 +8,39 @@
     "surah",
     "juz"
   ],
-  "version": "2.4.15",
+  "version": "2.5.2",
   "license": "MIT",
-  "jsdelivr": "dist/quran-meta.js",
-  "unpkg": "dist/quran-meta.js",
-  "main": "dist/quran-meta.common.js",
-  "module": "lib_es/index.js",
-  "typings": "types/index.d.ts",
+  "jsdelivr": "dist/index.mjs",
+  "unpkg": "dist/index.mjs",
+  "main": "dist/index.cjs",
+  "module": "lib_es/index.mjs",
+  "typings": "dist/index.d.ts",
+  "type": "module",
+  "exports": {
+    "./package.json": "./package.json",
+    ".": {
+      "browser": "./dist/quran-meta.js",
+      "bun": "./dist/index.mjs",
+      "deno": "./dist/index.mjs",
+      "edge-light": "./dist/index.mjs",
+      "edge-routine": "./dist/index.mjs",
+      "netlify": "./dist/index.mjs",
+      "react-native": "./dist/index.mjs",
+      "wintercg": "./dist/index.mjs",
+      "worker": "./dist/index.mjs",
+      "workerd": "./dist/index.mjs",
+      "import": {
+        "types": "./dist/index.d.mts",
+        "default": "./dist/index.mjs"
+      },
+      "require": {
+        "types": "./dist/index.d.cts",
+        "default": "./dist/index.cjs"
+      },
+      "types": "./dist/index.d.mts",
+      "default": "./dist/index.mjs"
+    }
+  },
   "repository": {
     "type": "git",
     "url": "git+https@github.com:quran-center/quran-meta.git",
@@ -23,7 +49,6 @@
   "files": [
     "src/",
     "dist/",
-    "lib_cjs/",
     "lib_es/",
     "types/"
   ],
@@ -31,44 +56,34 @@
     "node": ">=14.0.0"
   },
   "scripts": {
-    "eslint": "eslint src/ --ext .ts --fix",
-    "build": "pnpm run build-universal && pnpm build-ts-es && pnpm build-ts-cjs",
-    "build-universal": "rollup -c config/rollup/dist/umd.mjs && rollup -c config/rollup/dist/es.mjs && copyfiles -f  ./src/i18n/* ./dist/json",
-    "build-ts-es": "tsc -d -p tsconfig.json --sourceMap --outDir lib_es --declarationDir types",
-    "build-ts-cjs": "tsc -d -p tsconfig.json --sourceMap --outDir lib_cjs -m CommonJS -t ES5 -d false",
-    "prepare-npm-package": "rimraf dist && rimraf lib_cjs && rimraf lib_es && rimraf dist && pnpm build",
-    "test": "jest",
-    "coverage": "jest --coverage",
-    "verify": "pnpm eslint && pnpm coverage",
-    "tsdoc": "typedoc --out docs/ src/",
-    "deploy": "###rollup -c config/rollup_dist.js && copyfiles dist/quran-meta.js docs/scripts",
-    "precommit": "lint-staged && jest --onlyChanged",
-    "prerelease": "standard-version&&pnpm prepare-npm-package && pnpm test && pnpm tsdoc",
-    "release": "git push --follow-tags&&npm publish"
+    "dev": "vitest",
+    "lint": "eslint . --fix",
+    "coverage": "vitest run --coverage",
+    "build": "unbuild",
+    "precommit": "lint-staged && vitest --onlyChanged",
+    "prepack": "pnpm build && pnpm test&&rimraf docs&&pnpm tsdoc",
+    "prerelease": "changelogen --release --prerelease --publish --publishTag rc",
+    "release": "changelogen --release --publish",
+    "test": "pnpm lint && pnpm test:types && pnpm coverage",
+    "test:types": "tsc --noEmit",
+    "tsdoc": "typedoc --options ./typedoc.json",
+    "verify": "pnpm lint && pnpm coverage"
   },
   "devDependencies": {
-    "@rollup/plugin-commonjs": "^23.0.2",
-    "@rollup/plugin-node-resolve": "^15.0.1",
-    "@rollup/plugin-typescript": "^9.0.2",
-    "@types/jest": "^29.2.2",
-    "@types/node": "16.0.0",
-    "@typescript-eslint/eslint-plugin": "^5.42.1",
-    "@typescript-eslint/parser": "^5.42.1",
-    "copyfiles": "^2.4.1",
-    "eslint": "8.27.0",
-    "eslint-config-prettier": "^8.5.0",
-    "eslint-plugin-prettier": "^4.2.1",
-    "jest": "^29.3.1",
-    "prettier": "2.7.1",
-    "rimraf": "^3.0.2",
-    "rollup": "^3.3.0",
-    "rollup-plugin-terser": "^7.0.2",
-    "source-map-support": "0.5.21",
+    "@eslint/js": "^9.12.0",
+    "@stylistic/eslint-plugin": "^2.9.0",
+    "@types/node": "22.7.4",
+    "@vitest/coverage-v8": "2.1.2",
+    "changelogen": "^0.5.7",
+    "eslint": "9.12.0",
+    "globals": "^15.10.0",
+    "rimraf": "^6.0.1",
     "standard-version": "^9.5.0",
-    "ts-jest": "^29.0.3",
-    "ts-node": "^10.9.1",
-    "tslib": "^2.4.1",
-    "typedoc": "^0.23.20",
-    "typescript": "^4.8.4"
-  }
-}
+    "typedoc": "^0.26.8",
+    "typescript": "^5.6.2",
+    "typescript-eslint": "^8.8.1",
+    "unbuild": "v3.0.0-rc.11",
+    "vitest": "latest"
+  },
+  "packageManager": "pnpm@9.11.0+sha512.0a203ffaed5a3f63242cd064c8fb5892366c103e328079318f78062f24ea8c9d50bc6a47aa3567cabefd824d170e78fa2745ed1f16b132e16436146b7688f19b"
+}
\ No newline at end of file
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 2a40e0e..7dba3bf 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -1,1492 +1,3831 @@
-lockfileVersion: 5.4
-
-specifiers:
-  '@rollup/plugin-commonjs': ^23.0.2
-  '@rollup/plugin-node-resolve': ^15.0.1
-  '@rollup/plugin-typescript': ^9.0.2
-  '@types/jest': ^29.2.2
-  '@types/node': 16.0.0
-  '@typescript-eslint/eslint-plugin': ^5.42.1
-  '@typescript-eslint/parser': ^5.42.1
-  copyfiles: ^2.4.1
-  eslint: 8.27.0
-  eslint-config-prettier: ^8.5.0
-  eslint-plugin-prettier: ^4.2.1
-  jest: ^29.3.1
-  prettier: 2.7.1
-  rimraf: ^3.0.2
-  rollup: ^3.3.0
-  rollup-plugin-terser: ^7.0.2
-  source-map-support: 0.5.21
-  standard-version: ^9.5.0
-  ts-jest: ^29.0.3
-  ts-node: ^10.9.1
-  tslib: ^2.4.1
-  typedoc: ^0.23.20
-  typescript: ^4.8.4
-
-devDependencies:
-  '@rollup/plugin-commonjs': 23.0.2_rollup@3.3.0
-  '@rollup/plugin-node-resolve': 15.0.1_rollup@3.3.0
-  '@rollup/plugin-typescript': 9.0.2_uxzoppybjjm3iv3alceonunahm
-  '@types/jest': 29.2.2
-  '@types/node': 16.0.0
-  '@typescript-eslint/eslint-plugin': 5.42.1_2udltptbznfmezdozpdoa2aemq
-  '@typescript-eslint/parser': 5.42.1_rmayb2veg2btbq6mbmnyivgasy
-  copyfiles: 2.4.1
-  eslint: 8.27.0
-  eslint-config-prettier: 8.5.0_eslint@8.27.0
-  eslint-plugin-prettier: 4.2.1_v7o5sx5x3wbs57ifz6wc4f76we
-  jest: 29.3.1_qgsvtivhigskinhtkon55hue3i
-  prettier: 2.7.1
-  rimraf: 3.0.2
-  rollup: 3.3.0
-  rollup-plugin-terser: 7.0.2_rollup@3.3.0
-  source-map-support: 0.5.21
-  standard-version: 9.5.0
-  ts-jest: 29.0.3_r24ewcothphvclnu77pxb4u4se
-  ts-node: 10.9.1_st2htz3eb6effj72w7hhhfw6hu
-  tslib: 2.4.1
-  typedoc: 0.23.20_typescript@4.8.4
-  typescript: 4.8.4
+lockfileVersion: '9.0'
+
+settings:
+  autoInstallPeers: true
+  excludeLinksFromLockfile: false
+
+importers:
+
+  .:
+    devDependencies:
+      '@eslint/js':
+        specifier: ^9.12.0
+        version: 9.12.0
+      '@stylistic/eslint-plugin':
+        specifier: ^2.9.0
+        version: 2.9.0(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.2)
+      '@types/node':
+        specifier: 22.7.4
+        version: 22.7.4
+      '@vitest/coverage-v8':
+        specifier: 2.1.2
+        version: 2.1.2(vitest@2.1.2(@types/node@22.7.4)(terser@5.34.1))
+      changelogen:
+        specifier: ^0.5.7
+        version: 0.5.7(magicast@0.3.5)
+      eslint:
+        specifier: 9.12.0
+        version: 9.12.0(jiti@2.3.3)
+      globals:
+        specifier: ^15.10.0
+        version: 15.10.0
+      rimraf:
+        specifier: ^6.0.1
+        version: 6.0.1
+      standard-version:
+        specifier: ^9.5.0
+        version: 9.5.0
+      typedoc:
+        specifier: ^0.26.8
+        version: 0.26.8(typescript@5.6.2)
+      typescript:
+        specifier: ^5.6.2
+        version: 5.6.2
+      typescript-eslint:
+        specifier: ^8.8.1
+        version: 8.8.1(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.2)
+      unbuild:
+        specifier: v3.0.0-rc.11
+        version: 3.0.0-rc.11(typescript@5.6.2)
+      vitest:
+        specifier: latest
+        version: 2.1.2(@types/node@22.7.4)(terser@5.34.1)
 
 packages:
 
-  /@ampproject/remapping/2.2.0:
-    resolution: {integrity: sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==}
+  '@ampproject/remapping@2.3.0':
+    resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==}
     engines: {node: '>=6.0.0'}
-    dependencies:
-      '@jridgewell/gen-mapping': 0.1.1
-      '@jridgewell/trace-mapping': 0.3.17
-    dev: true
 
-  /@babel/code-frame/7.18.6:
-    resolution: {integrity: sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==}
+  '@babel/code-frame@7.25.7':
+    resolution: {integrity: sha512-0xZJFNE5XMpENsgfHYTw8FbX4kv53mFLn2i3XPoq69LyhYSCBJtitaHx9QnsVTrsogI4Z3+HtEfZ2/GFPOtf5g==}
     engines: {node: '>=6.9.0'}
-    dependencies:
-      '@babel/highlight': 7.18.6
-    dev: true
 
-  /@babel/compat-data/7.20.1:
-    resolution: {integrity: sha512-EWZ4mE2diW3QALKvDMiXnbZpRvlj+nayZ112nK93SnhqOtpdsbVD4W+2tEoT3YNBAG9RBR0ISY758ZkOgsn6pQ==}
+  '@babel/compat-data@7.25.7':
+    resolution: {integrity: sha512-9ickoLz+hcXCeh7jrcin+/SLWm+GkxE2kTvoYyp38p4WkdFXfQJxDFGWp/YHjiKLPx06z2A7W8XKuqbReXDzsw==}
     engines: {node: '>=6.9.0'}
-    dev: true
 
-  /@babel/core/7.20.2:
-    resolution: {integrity: sha512-w7DbG8DtMrJcFOi4VrLm+8QM4az8Mo+PuLBKLp2zrYRCow8W/f9xiXm5sN53C8HksCyDQwCKha9JiDoIyPjT2g==}
+  '@babel/core@7.25.7':
+    resolution: {integrity: sha512-yJ474Zv3cwiSOO9nXJuqzvwEeM+chDuQ8GJirw+pZ91sCGCyOZ3dJkVE09fTV0VEVzXyLWhh3G/AolYTPX7Mow==}
     engines: {node: '>=6.9.0'}
-    dependencies:
-      '@ampproject/remapping': 2.2.0
-      '@babel/code-frame': 7.18.6
-      '@babel/generator': 7.20.4
-      '@babel/helper-compilation-targets': 7.20.0_@babel+core@7.20.2
-      '@babel/helper-module-transforms': 7.20.2
-      '@babel/helpers': 7.20.1
-      '@babel/parser': 7.20.3
-      '@babel/template': 7.18.10
-      '@babel/traverse': 7.20.1
-      '@babel/types': 7.20.2
-      convert-source-map: 1.9.0
-      debug: 4.3.4
-      gensync: 1.0.0-beta.2
-      json5: 2.2.1
-      semver: 6.3.0
-    transitivePeerDependencies:
-      - supports-color
-    dev: true
 
-  /@babel/generator/7.20.4:
-    resolution: {integrity: sha512-luCf7yk/cm7yab6CAW1aiFnmEfBJplb/JojV56MYEK7ziWfGmFlTfmL9Ehwfy4gFhbjBfWO1wj7/TuSbVNEEtA==}
+  '@babel/generator@7.25.7':
+    resolution: {integrity: sha512-5Dqpl5fyV9pIAD62yK9P7fcA768uVPUyrQmqpqstHWgMma4feF1x/oFysBCVZLY5wJ2GkMUCdsNDnGZrPoR6rA==}
     engines: {node: '>=6.9.0'}
-    dependencies:
-      '@babel/types': 7.20.2
-      '@jridgewell/gen-mapping': 0.3.2
-      jsesc: 2.5.2
-    dev: true
 
-  /@babel/helper-compilation-targets/7.20.0_@babel+core@7.20.2:
-    resolution: {integrity: sha512-0jp//vDGp9e8hZzBc6N/KwA5ZK3Wsm/pfm4CrY7vzegkVxc65SgSn6wYOnwHe9Js9HRQ1YTCKLGPzDtaS3RoLQ==}
+  '@babel/helper-compilation-targets@7.25.7':
+    resolution: {integrity: sha512-DniTEax0sv6isaw6qSQSfV4gVRNtw2rte8HHM45t9ZR0xILaufBRNkpMifCRiAPyvL4ACD6v0gfCwCmtOQaV4A==}
     engines: {node: '>=6.9.0'}
-    peerDependencies:
-      '@babel/core': ^7.0.0
-    dependencies:
-      '@babel/compat-data': 7.20.1
-      '@babel/core': 7.20.2
-      '@babel/helper-validator-option': 7.18.6
-      browserslist: 4.21.4
-      semver: 6.3.0
-    dev: true
 
-  /@babel/helper-environment-visitor/7.18.9:
-    resolution: {integrity: sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==}
+  '@babel/helper-module-imports@7.25.7':
+    resolution: {integrity: sha512-o0xCgpNmRohmnoWKQ0Ij8IdddjyBFE4T2kagL/x6M3+4zUgc+4qTOUBoNe4XxDskt1HPKO007ZPiMgLDq2s7Kw==}
     engines: {node: '>=6.9.0'}
-    dev: true
 
-  /@babel/helper-function-name/7.19.0:
-    resolution: {integrity: sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==}
+  '@babel/helper-module-transforms@7.25.7':
+    resolution: {integrity: sha512-k/6f8dKG3yDz/qCwSM+RKovjMix563SLxQFo0UhRNo239SP6n9u5/eLtKD6EAjwta2JHJ49CsD8pms2HdNiMMQ==}
     engines: {node: '>=6.9.0'}
-    dependencies:
-      '@babel/template': 7.18.10
-      '@babel/types': 7.20.2
-    dev: true
+    peerDependencies:
+      '@babel/core': ^7.0.0
 
-  /@babel/helper-hoist-variables/7.18.6:
-    resolution: {integrity: sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==}
+  '@babel/helper-simple-access@7.25.7':
+    resolution: {integrity: sha512-FPGAkJmyoChQeM+ruBGIDyrT2tKfZJO8NcxdC+CWNJi7N8/rZpSxK7yvBJ5O/nF1gfu5KzN7VKG3YVSLFfRSxQ==}
     engines: {node: '>=6.9.0'}
-    dependencies:
-      '@babel/types': 7.20.2
-    dev: true
 
-  /@babel/helper-module-imports/7.18.6:
-    resolution: {integrity: sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==}
+  '@babel/helper-string-parser@7.25.7':
+    resolution: {integrity: sha512-CbkjYdsJNHFk8uqpEkpCvRs3YRp9tY6FmFY7wLMSYuGYkrdUi7r2lc4/wqsvlHoMznX3WJ9IP8giGPq68T/Y6g==}
     engines: {node: '>=6.9.0'}
-    dependencies:
-      '@babel/types': 7.20.2
-    dev: true
 
-  /@babel/helper-module-transforms/7.20.2:
-    resolution: {integrity: sha512-zvBKyJXRbmK07XhMuujYoJ48B5yvvmM6+wcpv6Ivj4Yg6qO7NOZOSnvZN9CRl1zz1Z4cKf8YejmCMh8clOoOeA==}
+  '@babel/helper-validator-identifier@7.25.7':
+    resolution: {integrity: sha512-AM6TzwYqGChO45oiuPqwL2t20/HdMC1rTPAesnBCgPCSF1x3oN9MVUwQV2iyz4xqWrctwK5RNC8LV22kaQCNYg==}
     engines: {node: '>=6.9.0'}
-    dependencies:
-      '@babel/helper-environment-visitor': 7.18.9
-      '@babel/helper-module-imports': 7.18.6
-      '@babel/helper-simple-access': 7.20.2
-      '@babel/helper-split-export-declaration': 7.18.6
-      '@babel/helper-validator-identifier': 7.19.1
-      '@babel/template': 7.18.10
-      '@babel/traverse': 7.20.1
-      '@babel/types': 7.20.2
-    transitivePeerDependencies:
-      - supports-color
-    dev: true
 
-  /@babel/helper-plugin-utils/7.20.2:
-    resolution: {integrity: sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==}
+  '@babel/helper-validator-option@7.25.7':
+    resolution: {integrity: sha512-ytbPLsm+GjArDYXJ8Ydr1c/KJuutjF2besPNbIZnZ6MKUxi/uTA22t2ymmA4WFjZFpjiAMO0xuuJPqK2nvDVfQ==}
     engines: {node: '>=6.9.0'}
-    dev: true
 
-  /@babel/helper-simple-access/7.20.2:
-    resolution: {integrity: sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==}
+  '@babel/helpers@7.25.7':
+    resolution: {integrity: sha512-Sv6pASx7Esm38KQpF/U/OXLwPPrdGHNKoeblRxgZRLXnAtnkEe4ptJPDtAZM7fBLadbc1Q07kQpSiGQ0Jg6tRA==}
     engines: {node: '>=6.9.0'}
-    dependencies:
-      '@babel/types': 7.20.2
-    dev: true
 
-  /@babel/helper-split-export-declaration/7.18.6:
-    resolution: {integrity: sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==}
+  '@babel/highlight@7.25.7':
+    resolution: {integrity: sha512-iYyACpW3iW8Fw+ZybQK+drQre+ns/tKpXbNESfrhNnPLIklLbXr7MYJ6gPEd0iETGLOK+SxMjVvKb/ffmk+FEw==}
     engines: {node: '>=6.9.0'}
-    dependencies:
-      '@babel/types': 7.20.2
-    dev: true
 
-  /@babel/helper-string-parser/7.19.4:
-    resolution: {integrity: sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==}
-    engines: {node: '>=6.9.0'}
-    dev: true
+  '@babel/parser@7.25.7':
+    resolution: {integrity: sha512-aZn7ETtQsjjGG5HruveUK06cU3Hljuhd9Iojm4M8WWv3wLE6OkE5PWbDUkItmMgegmccaITudyuW5RPYrYlgWw==}
+    engines: {node: '>=6.0.0'}
+    hasBin: true
 
-  /@babel/helper-validator-identifier/7.19.1:
-    resolution: {integrity: sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==}
+  '@babel/standalone@7.25.7':
+    resolution: {integrity: sha512-7H+mK18Ew4C/pIIiZwF1eiVjUEh2Ju/BpwRZwcPeXltF/rIjHjFL0gol7PtGrHocmIq6P6ubJrylmmWQ3lGJPA==}
     engines: {node: '>=6.9.0'}
-    dev: true
 
-  /@babel/helper-validator-option/7.18.6:
-    resolution: {integrity: sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==}
+  '@babel/template@7.25.7':
+    resolution: {integrity: sha512-wRwtAgI3bAS+JGU2upWNL9lSlDcRCqD05BZ1n3X2ONLH1WilFP6O1otQjeMK/1g0pvYcXC7b/qVUB1keofjtZA==}
     engines: {node: '>=6.9.0'}
-    dev: true
 
-  /@babel/helpers/7.20.1:
-    resolution: {integrity: sha512-J77mUVaDTUJFZ5BpP6mMn6OIl3rEWymk2ZxDBQJUG3P+PbmyMcF3bYWvz0ma69Af1oobDqT/iAsvzhB58xhQUg==}
+  '@babel/traverse@7.25.7':
+    resolution: {integrity: sha512-jatJPT1Zjqvh/1FyJs6qAHL+Dzb7sTb+xr7Q+gM1b+1oBsMsQQ4FkVKb6dFlJvLlVssqkRzV05Jzervt9yhnzg==}
     engines: {node: '>=6.9.0'}
-    dependencies:
-      '@babel/template': 7.18.10
-      '@babel/traverse': 7.20.1
-      '@babel/types': 7.20.2
-    transitivePeerDependencies:
-      - supports-color
-    dev: true
 
-  /@babel/highlight/7.18.6:
-    resolution: {integrity: sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==}
+  '@babel/types@7.25.7':
+    resolution: {integrity: sha512-vwIVdXG+j+FOpkwqHRcBgHLYNL7XMkufrlaFvL9o6Ai9sJn9+PdyIL5qa0XzTZw084c+u9LOls53eoZWP/W5WQ==}
     engines: {node: '>=6.9.0'}
-    dependencies:
-      '@babel/helper-validator-identifier': 7.19.1
-      chalk: 2.4.2
-      js-tokens: 4.0.0
-    dev: true
 
-  /@babel/parser/7.20.3:
-    resolution: {integrity: sha512-OP/s5a94frIPXwjzEcv5S/tpQfc6XhxYUnmWpgdqMWGgYCuErA3SzozaRAMQgSZWKeTJxht9aWAkUY+0UzvOFg==}
-    engines: {node: '>=6.0.0'}
-    hasBin: true
-    dependencies:
-      '@babel/types': 7.20.2
-    dev: true
+  '@bcoe/v8-coverage@0.2.3':
+    resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==}
 
-  /@babel/plugin-syntax-async-generators/7.8.4_@babel+core@7.20.2:
-    resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==}
-    peerDependencies:
-      '@babel/core': ^7.0.0-0
-    dependencies:
-      '@babel/core': 7.20.2
-      '@babel/helper-plugin-utils': 7.20.2
-    dev: true
+  '@esbuild/aix-ppc64@0.21.5':
+    resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==}
+    engines: {node: '>=12'}
+    cpu: [ppc64]
+    os: [aix]
 
-  /@babel/plugin-syntax-bigint/7.8.3_@babel+core@7.20.2:
-    resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==}
-    peerDependencies:
-      '@babel/core': ^7.0.0-0
-    dependencies:
-      '@babel/core': 7.20.2
-      '@babel/helper-plugin-utils': 7.20.2
-    dev: true
+  '@esbuild/aix-ppc64@0.24.0':
+    resolution: {integrity: sha512-WtKdFM7ls47zkKHFVzMz8opM7LkcsIp9amDUBIAWirg70RM71WRSjdILPsY5Uv1D42ZpUfaPILDlfactHgsRkw==}
+    engines: {node: '>=18'}
+    cpu: [ppc64]
+    os: [aix]
 
-  /@babel/plugin-syntax-class-properties/7.12.13_@babel+core@7.20.2:
-    resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==}
-    peerDependencies:
-      '@babel/core': ^7.0.0-0
-    dependencies:
-      '@babel/core': 7.20.2
-      '@babel/helper-plugin-utils': 7.20.2
-    dev: true
+  '@esbuild/android-arm64@0.21.5':
+    resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==}
+    engines: {node: '>=12'}
+    cpu: [arm64]
+    os: [android]
 
-  /@babel/plugin-syntax-import-meta/7.10.4_@babel+core@7.20.2:
-    resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==}
-    peerDependencies:
-      '@babel/core': ^7.0.0-0
-    dependencies:
-      '@babel/core': 7.20.2
-      '@babel/helper-plugin-utils': 7.20.2
-    dev: true
+  '@esbuild/android-arm64@0.24.0':
+    resolution: {integrity: sha512-Vsm497xFM7tTIPYK9bNTYJyF/lsP590Qc1WxJdlB6ljCbdZKU9SY8i7+Iin4kyhV/KV5J2rOKsBQbB77Ab7L/w==}
+    engines: {node: '>=18'}
+    cpu: [arm64]
+    os: [android]
 
-  /@babel/plugin-syntax-json-strings/7.8.3_@babel+core@7.20.2:
-    resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==}
-    peerDependencies:
-      '@babel/core': ^7.0.0-0
-    dependencies:
-      '@babel/core': 7.20.2
-      '@babel/helper-plugin-utils': 7.20.2
-    dev: true
+  '@esbuild/android-arm@0.21.5':
+    resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==}
+    engines: {node: '>=12'}
+    cpu: [arm]
+    os: [android]
 
-  /@babel/plugin-syntax-jsx/7.18.6_@babel+core@7.20.2:
-    resolution: {integrity: sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==}
-    engines: {node: '>=6.9.0'}
-    peerDependencies:
-      '@babel/core': ^7.0.0-0
-    dependencies:
-      '@babel/core': 7.20.2
-      '@babel/helper-plugin-utils': 7.20.2
-    dev: true
+  '@esbuild/android-arm@0.24.0':
+    resolution: {integrity: sha512-arAtTPo76fJ/ICkXWetLCc9EwEHKaeya4vMrReVlEIUCAUncH7M4bhMQ+M9Vf+FFOZJdTNMXNBrWwW+OXWpSew==}
+    engines: {node: '>=18'}
+    cpu: [arm]
+    os: [android]
 
-  /@babel/plugin-syntax-logical-assignment-operators/7.10.4_@babel+core@7.20.2:
-    resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==}
-    peerDependencies:
-      '@babel/core': ^7.0.0-0
-    dependencies:
-      '@babel/core': 7.20.2
-      '@babel/helper-plugin-utils': 7.20.2
-    dev: true
+  '@esbuild/android-x64@0.21.5':
+    resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==}
+    engines: {node: '>=12'}
+    cpu: [x64]
+    os: [android]
 
-  /@babel/plugin-syntax-nullish-coalescing-operator/7.8.3_@babel+core@7.20.2:
-    resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==}
-    peerDependencies:
-      '@babel/core': ^7.0.0-0
-    dependencies:
-      '@babel/core': 7.20.2
-      '@babel/helper-plugin-utils': 7.20.2
-    dev: true
+  '@esbuild/android-x64@0.24.0':
+    resolution: {integrity: sha512-t8GrvnFkiIY7pa7mMgJd7p8p8qqYIz1NYiAoKc75Zyv73L3DZW++oYMSHPRarcotTKuSs6m3hTOa5CKHaS02TQ==}
+    engines: {node: '>=18'}
+    cpu: [x64]
+    os: [android]
 
-  /@babel/plugin-syntax-numeric-separator/7.10.4_@babel+core@7.20.2:
-    resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==}
-    peerDependencies:
-      '@babel/core': ^7.0.0-0
-    dependencies:
-      '@babel/core': 7.20.2
-      '@babel/helper-plugin-utils': 7.20.2
-    dev: true
+  '@esbuild/darwin-arm64@0.21.5':
+    resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==}
+    engines: {node: '>=12'}
+    cpu: [arm64]
+    os: [darwin]
 
-  /@babel/plugin-syntax-object-rest-spread/7.8.3_@babel+core@7.20.2:
-    resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==}
-    peerDependencies:
-      '@babel/core': ^7.0.0-0
-    dependencies:
-      '@babel/core': 7.20.2
-      '@babel/helper-plugin-utils': 7.20.2
-    dev: true
+  '@esbuild/darwin-arm64@0.24.0':
+    resolution: {integrity: sha512-CKyDpRbK1hXwv79soeTJNHb5EiG6ct3efd/FTPdzOWdbZZfGhpbcqIpiD0+vwmpu0wTIL97ZRPZu8vUt46nBSw==}
+    engines: {node: '>=18'}
+    cpu: [arm64]
+    os: [darwin]
 
-  /@babel/plugin-syntax-optional-catch-binding/7.8.3_@babel+core@7.20.2:
-    resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==}
-    peerDependencies:
-      '@babel/core': ^7.0.0-0
-    dependencies:
-      '@babel/core': 7.20.2
-      '@babel/helper-plugin-utils': 7.20.2
-    dev: true
+  '@esbuild/darwin-x64@0.21.5':
+    resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==}
+    engines: {node: '>=12'}
+    cpu: [x64]
+    os: [darwin]
 
-  /@babel/plugin-syntax-optional-chaining/7.8.3_@babel+core@7.20.2:
-    resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==}
-    peerDependencies:
-      '@babel/core': ^7.0.0-0
-    dependencies:
-      '@babel/core': 7.20.2
-      '@babel/helper-plugin-utils': 7.20.2
-    dev: true
+  '@esbuild/darwin-x64@0.24.0':
+    resolution: {integrity: sha512-rgtz6flkVkh58od4PwTRqxbKH9cOjaXCMZgWD905JOzjFKW+7EiUObfd/Kav+A6Gyud6WZk9w+xu6QLytdi2OA==}
+    engines: {node: '>=18'}
+    cpu: [x64]
+    os: [darwin]
 
-  /@babel/plugin-syntax-top-level-await/7.14.5_@babel+core@7.20.2:
-    resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==}
-    engines: {node: '>=6.9.0'}
-    peerDependencies:
-      '@babel/core': ^7.0.0-0
-    dependencies:
-      '@babel/core': 7.20.2
-      '@babel/helper-plugin-utils': 7.20.2
-    dev: true
+  '@esbuild/freebsd-arm64@0.21.5':
+    resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==}
+    engines: {node: '>=12'}
+    cpu: [arm64]
+    os: [freebsd]
 
-  /@babel/plugin-syntax-typescript/7.20.0_@babel+core@7.20.2:
-    resolution: {integrity: sha512-rd9TkG+u1CExzS4SM1BlMEhMXwFLKVjOAFFCDx9PbX5ycJWDoWMcwdJH9RhkPu1dOgn5TrxLot/Gx6lWFuAUNQ==}
-    engines: {node: '>=6.9.0'}
-    peerDependencies:
-      '@babel/core': ^7.0.0-0
-    dependencies:
-      '@babel/core': 7.20.2
-      '@babel/helper-plugin-utils': 7.20.2
-    dev: true
+  '@esbuild/freebsd-arm64@0.24.0':
+    resolution: {integrity: sha512-6Mtdq5nHggwfDNLAHkPlyLBpE5L6hwsuXZX8XNmHno9JuL2+bg2BX5tRkwjyfn6sKbxZTq68suOjgWqCicvPXA==}
+    engines: {node: '>=18'}
+    cpu: [arm64]
+    os: [freebsd]
 
-  /@babel/template/7.18.10:
-    resolution: {integrity: sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==}
-    engines: {node: '>=6.9.0'}
-    dependencies:
-      '@babel/code-frame': 7.18.6
-      '@babel/parser': 7.20.3
-      '@babel/types': 7.20.2
-    dev: true
+  '@esbuild/freebsd-x64@0.21.5':
+    resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==}
+    engines: {node: '>=12'}
+    cpu: [x64]
+    os: [freebsd]
 
-  /@babel/traverse/7.20.1:
-    resolution: {integrity: sha512-d3tN8fkVJwFLkHkBN479SOsw4DMZnz8cdbL/gvuDuzy3TS6Nfw80HuQqhw1pITbIruHyh7d1fMA47kWzmcUEGA==}
-    engines: {node: '>=6.9.0'}
-    dependencies:
-      '@babel/code-frame': 7.18.6
-      '@babel/generator': 7.20.4
-      '@babel/helper-environment-visitor': 7.18.9
-      '@babel/helper-function-name': 7.19.0
-      '@babel/helper-hoist-variables': 7.18.6
-      '@babel/helper-split-export-declaration': 7.18.6
-      '@babel/parser': 7.20.3
-      '@babel/types': 7.20.2
-      debug: 4.3.4
-      globals: 11.12.0
-    transitivePeerDependencies:
-      - supports-color
-    dev: true
+  '@esbuild/freebsd-x64@0.24.0':
+    resolution: {integrity: sha512-D3H+xh3/zphoX8ck4S2RxKR6gHlHDXXzOf6f/9dbFt/NRBDIE33+cVa49Kil4WUjxMGW0ZIYBYtaGCa2+OsQwQ==}
+    engines: {node: '>=18'}
+    cpu: [x64]
+    os: [freebsd]
 
-  /@babel/types/7.20.2:
-    resolution: {integrity: sha512-FnnvsNWgZCr232sqtXggapvlkk/tuwR/qhGzcmxI0GXLCjmPYQPzio2FbdlWuY6y1sHFfQKk+rRbUZ9VStQMog==}
-    engines: {node: '>=6.9.0'}
-    dependencies:
-      '@babel/helper-string-parser': 7.19.4
-      '@babel/helper-validator-identifier': 7.19.1
-      to-fast-properties: 2.0.0
-    dev: true
+  '@esbuild/linux-arm64@0.21.5':
+    resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==}
+    engines: {node: '>=12'}
+    cpu: [arm64]
+    os: [linux]
 
-  /@bcoe/v8-coverage/0.2.3:
-    resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==}
-    dev: true
+  '@esbuild/linux-arm64@0.24.0':
+    resolution: {integrity: sha512-TDijPXTOeE3eaMkRYpcy3LarIg13dS9wWHRdwYRnzlwlA370rNdZqbcp0WTyyV/k2zSxfko52+C7jU5F9Tfj1g==}
+    engines: {node: '>=18'}
+    cpu: [arm64]
+    os: [linux]
 
-  /@cspotcode/source-map-support/0.8.1:
-    resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==}
+  '@esbuild/linux-arm@0.21.5':
+    resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==}
     engines: {node: '>=12'}
-    dependencies:
-      '@jridgewell/trace-mapping': 0.3.9
-    dev: true
+    cpu: [arm]
+    os: [linux]
 
-  /@eslint/eslintrc/1.3.3:
-    resolution: {integrity: sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg==}
-    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
-    dependencies:
-      ajv: 6.12.6
-      debug: 4.3.4
-      espree: 9.4.1
-      globals: 13.17.0
-      ignore: 5.2.0
-      import-fresh: 3.3.0
-      js-yaml: 4.1.0
-      minimatch: 3.1.2
-      strip-json-comments: 3.1.1
-    transitivePeerDependencies:
-      - supports-color
-    dev: true
+  '@esbuild/linux-arm@0.24.0':
+    resolution: {integrity: sha512-gJKIi2IjRo5G6Glxb8d3DzYXlxdEj2NlkixPsqePSZMhLudqPhtZ4BUrpIuTjJYXxvF9njql+vRjB2oaC9XpBw==}
+    engines: {node: '>=18'}
+    cpu: [arm]
+    os: [linux]
 
-  /@humanwhocodes/config-array/0.11.7:
-    resolution: {integrity: sha512-kBbPWzN8oVMLb0hOUYXhmxggL/1cJE6ydvjDIGi9EnAGUyA7cLVKQg+d/Dsm+KZwx2czGHrCmMVLiyg8s5JPKw==}
-    engines: {node: '>=10.10.0'}
-    dependencies:
-      '@humanwhocodes/object-schema': 1.2.1
-      debug: 4.3.4
-      minimatch: 3.1.2
-    transitivePeerDependencies:
-      - supports-color
-    dev: true
+  '@esbuild/linux-ia32@0.21.5':
+    resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==}
+    engines: {node: '>=12'}
+    cpu: [ia32]
+    os: [linux]
 
-  /@humanwhocodes/module-importer/1.0.1:
-    resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==}
-    engines: {node: '>=12.22'}
-    dev: true
+  '@esbuild/linux-ia32@0.24.0':
+    resolution: {integrity: sha512-K40ip1LAcA0byL05TbCQ4yJ4swvnbzHscRmUilrmP9Am7//0UjPreh4lpYzvThT2Quw66MhjG//20mrufm40mA==}
+    engines: {node: '>=18'}
+    cpu: [ia32]
+    os: [linux]
 
-  /@humanwhocodes/object-schema/1.2.1:
-    resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==}
-    dev: true
+  '@esbuild/linux-loong64@0.21.5':
+    resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==}
+    engines: {node: '>=12'}
+    cpu: [loong64]
+    os: [linux]
 
-  /@hutson/parse-repository-url/3.0.2:
-    resolution: {integrity: sha512-H9XAx3hc0BQHY6l+IFSWHDySypcXsvsuLhgYLUGywmJ5pswRVQJUHpOsobnLYp2ZUaUlKiKDrgWWhosOwAEM8Q==}
-    engines: {node: '>=6.9.0'}
-    dev: true
+  '@esbuild/linux-loong64@0.24.0':
+    resolution: {integrity: sha512-0mswrYP/9ai+CU0BzBfPMZ8RVm3RGAN/lmOMgW4aFUSOQBjA31UP8Mr6DDhWSuMwj7jaWOT0p0WoZ6jeHhrD7g==}
+    engines: {node: '>=18'}
+    cpu: [loong64]
+    os: [linux]
 
-  /@istanbuljs/load-nyc-config/1.1.0:
-    resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==}
-    engines: {node: '>=8'}
-    dependencies:
-      camelcase: 5.3.1
-      find-up: 4.1.0
-      get-package-type: 0.1.0
-      js-yaml: 3.14.1
-      resolve-from: 5.0.0
-    dev: true
+  '@esbuild/linux-mips64el@0.21.5':
+    resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==}
+    engines: {node: '>=12'}
+    cpu: [mips64el]
+    os: [linux]
 
-  /@istanbuljs/schema/0.1.3:
-    resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==}
-    engines: {node: '>=8'}
-    dev: true
+  '@esbuild/linux-mips64el@0.24.0':
+    resolution: {integrity: sha512-hIKvXm0/3w/5+RDtCJeXqMZGkI2s4oMUGj3/jM0QzhgIASWrGO5/RlzAzm5nNh/awHE0A19h/CvHQe6FaBNrRA==}
+    engines: {node: '>=18'}
+    cpu: [mips64el]
+    os: [linux]
 
-  /@jest/console/29.3.1:
-    resolution: {integrity: sha512-IRE6GD47KwcqA09RIWrabKdHPiKDGgtAL31xDxbi/RjQMsr+lY+ppxmHwY0dUEV3qvvxZzoe5Hl0RXZJOjQNUg==}
-    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-    dependencies:
-      '@jest/types': 29.3.1
-      '@types/node': 16.0.0
-      chalk: 4.1.2
-      jest-message-util: 29.3.1
-      jest-util: 29.3.1
-      slash: 3.0.0
-    dev: true
-
-  /@jest/core/29.3.1_ts-node@10.9.1:
-    resolution: {integrity: sha512-0ohVjjRex985w5MmO5L3u5GR1O30DexhBSpuwx2P+9ftyqHdJXnk7IUWiP80oHMvt7ubHCJHxV0a0vlKVuZirw==}
-    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-    peerDependencies:
-      node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
-    peerDependenciesMeta:
-      node-notifier:
-        optional: true
-    dependencies:
-      '@jest/console': 29.3.1
-      '@jest/reporters': 29.3.1
-      '@jest/test-result': 29.3.1
-      '@jest/transform': 29.3.1
-      '@jest/types': 29.3.1
-      '@types/node': 16.0.0
-      ansi-escapes: 4.3.2
-      chalk: 4.1.2
-      ci-info: 3.6.1
-      exit: 0.1.2
-      graceful-fs: 4.2.10
-      jest-changed-files: 29.2.0
-      jest-config: 29.3.1_qgsvtivhigskinhtkon55hue3i
-      jest-haste-map: 29.3.1
-      jest-message-util: 29.3.1
-      jest-regex-util: 29.2.0
-      jest-resolve: 29.3.1
-      jest-resolve-dependencies: 29.3.1
-      jest-runner: 29.3.1
-      jest-runtime: 29.3.1
-      jest-snapshot: 29.3.1
-      jest-util: 29.3.1
-      jest-validate: 29.3.1
-      jest-watcher: 29.3.1
-      micromatch: 4.0.5
-      pretty-format: 29.3.1
-      slash: 3.0.0
-      strip-ansi: 6.0.1
-    transitivePeerDependencies:
-      - supports-color
-      - ts-node
-    dev: true
+  '@esbuild/linux-ppc64@0.21.5':
+    resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==}
+    engines: {node: '>=12'}
+    cpu: [ppc64]
+    os: [linux]
 
-  /@jest/environment/29.3.1:
-    resolution: {integrity: sha512-pMmvfOPmoa1c1QpfFW0nXYtNLpofqo4BrCIk6f2kW4JFeNlHV2t3vd+3iDLf31e2ot2Mec0uqZfmI+U0K2CFag==}
-    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-    dependencies:
-      '@jest/fake-timers': 29.3.1
-      '@jest/types': 29.3.1
-      '@types/node': 16.0.0
-      jest-mock: 29.3.1
-    dev: true
+  '@esbuild/linux-ppc64@0.24.0':
+    resolution: {integrity: sha512-HcZh5BNq0aC52UoocJxaKORfFODWXZxtBaaZNuN3PUX3MoDsChsZqopzi5UupRhPHSEHotoiptqikjN/B77mYQ==}
+    engines: {node: '>=18'}
+    cpu: [ppc64]
+    os: [linux]
 
-  /@jest/expect-utils/29.3.1:
-    resolution: {integrity: sha512-wlrznINZI5sMjwvUoLVk617ll/UYfGIZNxmbU+Pa7wmkL4vYzhV9R2pwVqUh4NWWuLQWkI8+8mOkxs//prKQ3g==}
-    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-    dependencies:
-      jest-get-type: 29.2.0
-    dev: true
+  '@esbuild/linux-riscv64@0.21.5':
+    resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==}
+    engines: {node: '>=12'}
+    cpu: [riscv64]
+    os: [linux]
 
-  /@jest/expect/29.3.1:
-    resolution: {integrity: sha512-QivM7GlSHSsIAWzgfyP8dgeExPRZ9BIe2LsdPyEhCGkZkoyA+kGsoIzbKAfZCvvRzfZioKwPtCZIt5SaoxYCvg==}
-    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-    dependencies:
-      expect: 29.3.1
-      jest-snapshot: 29.3.1
-    transitivePeerDependencies:
-      - supports-color
-    dev: true
-
-  /@jest/fake-timers/29.3.1:
-    resolution: {integrity: sha512-iHTL/XpnDlFki9Tq0Q1GGuVeQ8BHZGIYsvCO5eN/O/oJaRzofG9Xndd9HuSDBI/0ZS79pg0iwn07OMTQ7ngF2A==}
-    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-    dependencies:
-      '@jest/types': 29.3.1
-      '@sinonjs/fake-timers': 9.1.2
-      '@types/node': 16.0.0
-      jest-message-util: 29.3.1
-      jest-mock: 29.3.1
-      jest-util: 29.3.1
-    dev: true
-
-  /@jest/globals/29.3.1:
-    resolution: {integrity: sha512-cTicd134vOcwO59OPaB6AmdHQMCtWOe+/DitpTZVxWgMJ+YvXL1HNAmPyiGbSHmF/mXVBkvlm8YYtQhyHPnV6Q==}
-    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-    dependencies:
-      '@jest/environment': 29.3.1
-      '@jest/expect': 29.3.1
-      '@jest/types': 29.3.1
-      jest-mock: 29.3.1
-    transitivePeerDependencies:
-      - supports-color
-    dev: true
+  '@esbuild/linux-riscv64@0.24.0':
+    resolution: {integrity: sha512-bEh7dMn/h3QxeR2KTy1DUszQjUrIHPZKyO6aN1X4BCnhfYhuQqedHaa5MxSQA/06j3GpiIlFGSsy1c7Gf9padw==}
+    engines: {node: '>=18'}
+    cpu: [riscv64]
+    os: [linux]
+
+  '@esbuild/linux-s390x@0.21.5':
+    resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==}
+    engines: {node: '>=12'}
+    cpu: [s390x]
+    os: [linux]
+
+  '@esbuild/linux-s390x@0.24.0':
+    resolution: {integrity: sha512-ZcQ6+qRkw1UcZGPyrCiHHkmBaj9SiCD8Oqd556HldP+QlpUIe2Wgn3ehQGVoPOvZvtHm8HPx+bH20c9pvbkX3g==}
+    engines: {node: '>=18'}
+    cpu: [s390x]
+    os: [linux]
+
+  '@esbuild/linux-x64@0.21.5':
+    resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==}
+    engines: {node: '>=12'}
+    cpu: [x64]
+    os: [linux]
+
+  '@esbuild/linux-x64@0.24.0':
+    resolution: {integrity: sha512-vbutsFqQ+foy3wSSbmjBXXIJ6PL3scghJoM8zCL142cGaZKAdCZHyf+Bpu/MmX9zT9Q0zFBVKb36Ma5Fzfa8xA==}
+    engines: {node: '>=18'}
+    cpu: [x64]
+    os: [linux]
+
+  '@esbuild/netbsd-x64@0.21.5':
+    resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==}
+    engines: {node: '>=12'}
+    cpu: [x64]
+    os: [netbsd]
+
+  '@esbuild/netbsd-x64@0.24.0':
+    resolution: {integrity: sha512-hjQ0R/ulkO8fCYFsG0FZoH+pWgTTDreqpqY7UnQntnaKv95uP5iW3+dChxnx7C3trQQU40S+OgWhUVwCjVFLvg==}
+    engines: {node: '>=18'}
+    cpu: [x64]
+    os: [netbsd]
+
+  '@esbuild/openbsd-arm64@0.24.0':
+    resolution: {integrity: sha512-MD9uzzkPQbYehwcN583yx3Tu5M8EIoTD+tUgKF982WYL9Pf5rKy9ltgD0eUgs8pvKnmizxjXZyLt0z6DC3rRXg==}
+    engines: {node: '>=18'}
+    cpu: [arm64]
+    os: [openbsd]
+
+  '@esbuild/openbsd-x64@0.21.5':
+    resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==}
+    engines: {node: '>=12'}
+    cpu: [x64]
+    os: [openbsd]
+
+  '@esbuild/openbsd-x64@0.24.0':
+    resolution: {integrity: sha512-4ir0aY1NGUhIC1hdoCzr1+5b43mw99uNwVzhIq1OY3QcEwPDO3B7WNXBzaKY5Nsf1+N11i1eOfFcq+D/gOS15Q==}
+    engines: {node: '>=18'}
+    cpu: [x64]
+    os: [openbsd]
+
+  '@esbuild/sunos-x64@0.21.5':
+    resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==}
+    engines: {node: '>=12'}
+    cpu: [x64]
+    os: [sunos]
+
+  '@esbuild/sunos-x64@0.24.0':
+    resolution: {integrity: sha512-jVzdzsbM5xrotH+W5f1s+JtUy1UWgjU0Cf4wMvffTB8m6wP5/kx0KiaLHlbJO+dMgtxKV8RQ/JvtlFcdZ1zCPA==}
+    engines: {node: '>=18'}
+    cpu: [x64]
+    os: [sunos]
+
+  '@esbuild/win32-arm64@0.21.5':
+    resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==}
+    engines: {node: '>=12'}
+    cpu: [arm64]
+    os: [win32]
+
+  '@esbuild/win32-arm64@0.24.0':
+    resolution: {integrity: sha512-iKc8GAslzRpBytO2/aN3d2yb2z8XTVfNV0PjGlCxKo5SgWmNXx82I/Q3aG1tFfS+A2igVCY97TJ8tnYwpUWLCA==}
+    engines: {node: '>=18'}
+    cpu: [arm64]
+    os: [win32]
 
-  /@jest/reporters/29.3.1:
-    resolution: {integrity: sha512-GhBu3YFuDrcAYW/UESz1JphEAbvUjaY2vShRZRoRY1mxpCMB3yGSJ4j9n0GxVlEOdCf7qjvUfBCrTUUqhVfbRA==}
-    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+  '@esbuild/win32-ia32@0.21.5':
+    resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==}
+    engines: {node: '>=12'}
+    cpu: [ia32]
+    os: [win32]
+
+  '@esbuild/win32-ia32@0.24.0':
+    resolution: {integrity: sha512-vQW36KZolfIudCcTnaTpmLQ24Ha1RjygBo39/aLkM2kmjkWmZGEJ5Gn9l5/7tzXA42QGIoWbICfg6KLLkIw6yw==}
+    engines: {node: '>=18'}
+    cpu: [ia32]
+    os: [win32]
+
+  '@esbuild/win32-x64@0.21.5':
+    resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==}
+    engines: {node: '>=12'}
+    cpu: [x64]
+    os: [win32]
+
+  '@esbuild/win32-x64@0.24.0':
+    resolution: {integrity: sha512-7IAFPrjSQIJrGsK6flwg7NFmwBoSTyF3rl7If0hNUFQU4ilTsEPL6GuMuU9BfIWVVGuRnuIidkSMC+c0Otu8IA==}
+    engines: {node: '>=18'}
+    cpu: [x64]
+    os: [win32]
+
+  '@eslint-community/eslint-utils@4.4.0':
+    resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==}
+    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
     peerDependencies:
-      node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
-    peerDependenciesMeta:
-      node-notifier:
-        optional: true
-    dependencies:
-      '@bcoe/v8-coverage': 0.2.3
-      '@jest/console': 29.3.1
-      '@jest/test-result': 29.3.1
-      '@jest/transform': 29.3.1
-      '@jest/types': 29.3.1
-      '@jridgewell/trace-mapping': 0.3.17
-      '@types/node': 16.0.0
-      chalk: 4.1.2
-      collect-v8-coverage: 1.0.1
-      exit: 0.1.2
-      glob: 7.2.3
-      graceful-fs: 4.2.10
-      istanbul-lib-coverage: 3.2.0
-      istanbul-lib-instrument: 5.2.1
-      istanbul-lib-report: 3.0.0
-      istanbul-lib-source-maps: 4.0.1
-      istanbul-reports: 3.1.5
-      jest-message-util: 29.3.1
-      jest-util: 29.3.1
-      jest-worker: 29.3.1
-      slash: 3.0.0
-      string-length: 4.0.2
-      strip-ansi: 6.0.1
-      v8-to-istanbul: 9.0.1
-    transitivePeerDependencies:
-      - supports-color
-    dev: true
+      eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
 
-  /@jest/schemas/29.0.0:
-    resolution: {integrity: sha512-3Ab5HgYIIAnS0HjqJHQYZS+zXc4tUmTmBH3z83ajI6afXp8X3ZtdLX+nXx+I7LNkJD7uN9LAVhgnjDgZa2z0kA==}
-    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-    dependencies:
-      '@sinclair/typebox': 0.24.51
-    dev: true
+  '@eslint-community/regexpp@4.11.1':
+    resolution: {integrity: sha512-m4DVN9ZqskZoLU5GlWZadwDnYo3vAEydiUayB9widCl9ffWx2IvPnp6n3on5rJmziJSw9Bv+Z3ChDVdMwXCY8Q==}
+    engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
 
-  /@jest/source-map/29.2.0:
-    resolution: {integrity: sha512-1NX9/7zzI0nqa6+kgpSdKPK+WU1p+SJk3TloWZf5MzPbxri9UEeXX5bWZAPCzbQcyuAzubcdUHA7hcNznmRqWQ==}
-    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-    dependencies:
-      '@jridgewell/trace-mapping': 0.3.17
-      callsites: 3.1.0
-      graceful-fs: 4.2.10
-    dev: true
-
-  /@jest/test-result/29.3.1:
-    resolution: {integrity: sha512-qeLa6qc0ddB0kuOZyZIhfN5q0e2htngokyTWsGriedsDhItisW7SDYZ7ceOe57Ii03sL988/03wAcBh3TChMGw==}
-    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-    dependencies:
-      '@jest/console': 29.3.1
-      '@jest/types': 29.3.1
-      '@types/istanbul-lib-coverage': 2.0.4
-      collect-v8-coverage: 1.0.1
-    dev: true
-
-  /@jest/test-sequencer/29.3.1:
-    resolution: {integrity: sha512-IqYvLbieTv20ArgKoAMyhLHNrVHJfzO6ARZAbQRlY4UGWfdDnLlZEF0BvKOMd77uIiIjSZRwq3Jb3Fa3I8+2UA==}
-    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-    dependencies:
-      '@jest/test-result': 29.3.1
-      graceful-fs: 4.2.10
-      jest-haste-map: 29.3.1
-      slash: 3.0.0
-    dev: true
-
-  /@jest/transform/29.3.1:
-    resolution: {integrity: sha512-8wmCFBTVGYqFNLWfcOWoVuMuKYPUBTnTMDkdvFtAYELwDOl9RGwOsvQWGPFxDJ8AWY9xM/8xCXdqmPK3+Q5Lug==}
-    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-    dependencies:
-      '@babel/core': 7.20.2
-      '@jest/types': 29.3.1
-      '@jridgewell/trace-mapping': 0.3.17
-      babel-plugin-istanbul: 6.1.1
-      chalk: 4.1.2
-      convert-source-map: 2.0.0
-      fast-json-stable-stringify: 2.1.0
-      graceful-fs: 4.2.10
-      jest-haste-map: 29.3.1
-      jest-regex-util: 29.2.0
-      jest-util: 29.3.1
-      micromatch: 4.0.5
-      pirates: 4.0.5
-      slash: 3.0.0
-      write-file-atomic: 4.0.2
-    transitivePeerDependencies:
-      - supports-color
-    dev: true
+  '@eslint/config-array@0.18.0':
+    resolution: {integrity: sha512-fTxvnS1sRMu3+JjXwJG0j/i4RT9u4qJ+lqS/yCGap4lH4zZGzQ7tu+xZqQmcMZq5OBZDL4QRxQzRjkWcGt8IVw==}
+    engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
 
-  /@jest/types/29.3.1:
-    resolution: {integrity: sha512-d0S0jmmTpjnhCmNpApgX3jrUZgZ22ivKJRvL2lli5hpCRoNnp1f85r2/wpKfXuYu8E7Jjh1hGfhPyup1NM5AmA==}
-    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-    dependencies:
-      '@jest/schemas': 29.0.0
-      '@types/istanbul-lib-coverage': 2.0.4
-      '@types/istanbul-reports': 3.0.1
-      '@types/node': 16.0.0
-      '@types/yargs': 17.0.13
-      chalk: 4.1.2
-    dev: true
+  '@eslint/core@0.6.0':
+    resolution: {integrity: sha512-8I2Q8ykA4J0x0o7cg67FPVnehcqWTBehu/lmY+bolPFHGjh49YzGBMXTvpqVgEbBdvNCSxj6iFgiIyHzf03lzg==}
+    engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
 
-  /@jridgewell/gen-mapping/0.1.1:
-    resolution: {integrity: sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==}
-    engines: {node: '>=6.0.0'}
-    dependencies:
-      '@jridgewell/set-array': 1.1.2
-      '@jridgewell/sourcemap-codec': 1.4.14
-    dev: true
+  '@eslint/eslintrc@3.1.0':
+    resolution: {integrity: sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==}
+    engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
 
-  /@jridgewell/gen-mapping/0.3.2:
-    resolution: {integrity: sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==}
-    engines: {node: '>=6.0.0'}
-    dependencies:
-      '@jridgewell/set-array': 1.1.2
-      '@jridgewell/sourcemap-codec': 1.4.14
-      '@jridgewell/trace-mapping': 0.3.17
-    dev: true
+  '@eslint/js@9.12.0':
+    resolution: {integrity: sha512-eohesHH8WFRUprDNyEREgqP6beG6htMeUYeCpkEgBCieCMme5r9zFWjzAJp//9S+Kub4rqE+jXe9Cp1a7IYIIA==}
+    engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+  '@eslint/object-schema@2.1.4':
+    resolution: {integrity: sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==}
+    engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+  '@eslint/plugin-kit@0.2.0':
+    resolution: {integrity: sha512-vH9PiIMMwvhCx31Af3HiGzsVNULDbyVkHXwlemn/B0TFj/00ho3y55efXrUZTfQipxoHC5u4xq6zblww1zm1Ig==}
+    engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+  '@humanfs/core@0.19.0':
+    resolution: {integrity: sha512-2cbWIHbZVEweE853g8jymffCA+NCMiuqeECeBBLm8dg2oFdjuGJhgN4UAbI+6v0CKbbhvtXA4qV8YR5Ji86nmw==}
+    engines: {node: '>=18.18.0'}
+
+  '@humanfs/node@0.16.5':
+    resolution: {integrity: sha512-KSPA4umqSG4LHYRodq31VDwKAvaTF4xmVlzM8Aeh4PlU1JQ3IG0wiA8C25d3RQ9nJyM3mBHyI53K06VVL/oFFg==}
+    engines: {node: '>=18.18.0'}
+
+  '@humanwhocodes/module-importer@1.0.1':
+    resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==}
+    engines: {node: '>=12.22'}
+
+  '@humanwhocodes/retry@0.3.1':
+    resolution: {integrity: sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==}
+    engines: {node: '>=18.18'}
+
+  '@hutson/parse-repository-url@3.0.2':
+    resolution: {integrity: sha512-H9XAx3hc0BQHY6l+IFSWHDySypcXsvsuLhgYLUGywmJ5pswRVQJUHpOsobnLYp2ZUaUlKiKDrgWWhosOwAEM8Q==}
+    engines: {node: '>=6.9.0'}
 
-  /@jridgewell/resolve-uri/3.1.0:
-    resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==}
+  '@isaacs/cliui@8.0.2':
+    resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==}
+    engines: {node: '>=12'}
+
+  '@istanbuljs/schema@0.1.3':
+    resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==}
+    engines: {node: '>=8'}
+
+  '@jridgewell/gen-mapping@0.3.5':
+    resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==}
     engines: {node: '>=6.0.0'}
-    dev: true
 
-  /@jridgewell/set-array/1.1.2:
-    resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==}
+  '@jridgewell/resolve-uri@3.1.2':
+    resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==}
     engines: {node: '>=6.0.0'}
-    dev: true
 
-  /@jridgewell/source-map/0.3.2:
-    resolution: {integrity: sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==}
-    dependencies:
-      '@jridgewell/gen-mapping': 0.3.2
-      '@jridgewell/trace-mapping': 0.3.17
-    dev: true
+  '@jridgewell/set-array@1.2.1':
+    resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==}
+    engines: {node: '>=6.0.0'}
 
-  /@jridgewell/sourcemap-codec/1.4.14:
-    resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==}
-    dev: true
+  '@jridgewell/source-map@0.3.6':
+    resolution: {integrity: sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==}
 
-  /@jridgewell/trace-mapping/0.3.17:
-    resolution: {integrity: sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==}
-    dependencies:
-      '@jridgewell/resolve-uri': 3.1.0
-      '@jridgewell/sourcemap-codec': 1.4.14
-    dev: true
+  '@jridgewell/sourcemap-codec@1.5.0':
+    resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==}
 
-  /@jridgewell/trace-mapping/0.3.9:
-    resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==}
-    dependencies:
-      '@jridgewell/resolve-uri': 3.1.0
-      '@jridgewell/sourcemap-codec': 1.4.14
-    dev: true
+  '@jridgewell/trace-mapping@0.3.25':
+    resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==}
 
-  /@nodelib/fs.scandir/2.1.5:
+  '@nodelib/fs.scandir@2.1.5':
     resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
     engines: {node: '>= 8'}
-    dependencies:
-      '@nodelib/fs.stat': 2.0.5
-      run-parallel: 1.2.0
-    dev: true
 
-  /@nodelib/fs.stat/2.0.5:
+  '@nodelib/fs.stat@2.0.5':
     resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==}
     engines: {node: '>= 8'}
-    dev: true
 
-  /@nodelib/fs.walk/1.2.8:
+  '@nodelib/fs.walk@1.2.8':
     resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
     engines: {node: '>= 8'}
-    dependencies:
-      '@nodelib/fs.scandir': 2.1.5
-      fastq: 1.13.0
-    dev: true
 
-  /@rollup/plugin-commonjs/23.0.2_rollup@3.3.0:
-    resolution: {integrity: sha512-e9ThuiRf93YlVxc4qNIurvv+Hp9dnD+4PjOqQs5vAYfcZ3+AXSrcdzXnVjWxcGQOa6KGJFcRZyUI3ktWLavFjg==}
+  '@pkgjs/parseargs@0.11.0':
+    resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==}
+    engines: {node: '>=14'}
+
+  '@rollup/plugin-alias@5.1.1':
+    resolution: {integrity: sha512-PR9zDb+rOzkRb2VD+EuKB7UC41vU5DIwZ5qqCpk0KJudcWAyi8rvYOhS7+L5aZCspw1stTViLgN5v6FF1p5cgQ==}
     engines: {node: '>=14.0.0'}
     peerDependencies:
-      rollup: ^2.68.0||^3.0.0
+      rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0
     peerDependenciesMeta:
       rollup:
         optional: true
-    dependencies:
-      '@rollup/pluginutils': 5.0.2_rollup@3.3.0
-      commondir: 1.0.1
-      estree-walker: 2.0.2
-      glob: 8.0.3
-      is-reference: 1.2.1
-      magic-string: 0.26.7
-      rollup: 3.3.0
-    dev: true
 
-  /@rollup/plugin-node-resolve/15.0.1_rollup@3.3.0:
-    resolution: {integrity: sha512-ReY88T7JhJjeRVbfCyNj+NXAG3IIsVMsX9b5/9jC98dRP8/yxlZdz7mHZbHk5zHr24wZZICS5AcXsFZAXYUQEg==}
-    engines: {node: '>=14.0.0'}
+  '@rollup/plugin-commonjs@28.0.0':
+    resolution: {integrity: sha512-BJcu+a+Mpq476DMXG+hevgPSl56bkUoi88dKT8t3RyUp8kGuOh+2bU8Gs7zXDlu+fyZggnJ+iOBGrb/O1SorYg==}
+    engines: {node: '>=16.0.0 || 14 >= 14.17'}
     peerDependencies:
-      rollup: ^2.78.0||^3.0.0
+      rollup: ^2.68.0||^3.0.0||^4.0.0
     peerDependenciesMeta:
       rollup:
         optional: true
-    dependencies:
-      '@rollup/pluginutils': 5.0.2_rollup@3.3.0
-      '@types/resolve': 1.20.2
-      deepmerge: 4.2.2
-      is-builtin-module: 3.2.0
-      is-module: 1.0.0
-      resolve: 1.22.1
-      rollup: 3.3.0
-    dev: true
 
-  /@rollup/plugin-typescript/9.0.2_uxzoppybjjm3iv3alceonunahm:
-    resolution: {integrity: sha512-/sS93vmHUMjzDUsl5scNQr1mUlNE1QjBBvOhmRwJCH8k2RRhDIm3c977B3wdu3t3Ap17W6dDeXP3hj1P1Un1bA==}
+  '@rollup/plugin-json@6.1.0':
+    resolution: {integrity: sha512-EGI2te5ENk1coGeADSIwZ7G2Q8CJS2sF120T7jLw4xFw9n7wIOXHo+kIYRAoVpJAN+kmqZSoO3Fp4JtoNF4ReA==}
     engines: {node: '>=14.0.0'}
     peerDependencies:
-      rollup: ^2.14.0||^3.0.0
-      tslib: '*'
-      typescript: '>=3.7.0'
+      rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0
     peerDependenciesMeta:
       rollup:
         optional: true
-      tslib:
-        optional: true
-    dependencies:
-      '@rollup/pluginutils': 5.0.2_rollup@3.3.0
-      resolve: 1.22.1
-      rollup: 3.3.0
-      tslib: 2.4.1
-      typescript: 4.8.4
-    dev: true
 
-  /@rollup/pluginutils/5.0.2_rollup@3.3.0:
-    resolution: {integrity: sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA==}
+  '@rollup/plugin-node-resolve@15.3.0':
+    resolution: {integrity: sha512-9eO5McEICxMzJpDW9OnMYSv4Sta3hmt7VtBFz5zR9273suNOydOyq/FrGeGy+KsTRFm8w0SLVhzig2ILFT63Ag==}
     engines: {node: '>=14.0.0'}
     peerDependencies:
-      rollup: ^1.20.0||^2.0.0||^3.0.0
+      rollup: ^2.78.0||^3.0.0||^4.0.0
     peerDependenciesMeta:
       rollup:
         optional: true
-    dependencies:
-      '@types/estree': 1.0.0
-      estree-walker: 2.0.2
-      picomatch: 2.3.1
-      rollup: 3.3.0
-    dev: true
-
-  /@sinclair/typebox/0.24.51:
-    resolution: {integrity: sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA==}
-    dev: true
-
-  /@sinonjs/commons/1.8.5:
-    resolution: {integrity: sha512-rTpCA0wG1wUxglBSFdMMY0oTrKYvgf4fNgv/sXbfCVAdf+FnPBdKJR/7XbpTCwbCrvCbdPYnlWaUUYz4V2fPDA==}
-    dependencies:
-      type-detect: 4.0.8
-    dev: true
-
-  /@sinonjs/fake-timers/9.1.2:
-    resolution: {integrity: sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw==}
-    dependencies:
-      '@sinonjs/commons': 1.8.5
-    dev: true
-
-  /@tsconfig/node10/1.0.9:
-    resolution: {integrity: sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==}
-    dev: true
-
-  /@tsconfig/node12/1.0.11:
-    resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==}
-    dev: true
-
-  /@tsconfig/node14/1.0.3:
-    resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==}
-    dev: true
 
-  /@tsconfig/node16/1.0.3:
-    resolution: {integrity: sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==}
-    dev: true
-
-  /@types/babel__core/7.1.20:
-    resolution: {integrity: sha512-PVb6Bg2QuscZ30FvOU7z4guG6c926D9YRvOxEaelzndpMsvP+YM74Q/dAFASpg2l6+XLalxSGxcq/lrgYWZtyQ==}
-    dependencies:
-      '@babel/parser': 7.20.3
-      '@babel/types': 7.20.2
-      '@types/babel__generator': 7.6.4
-      '@types/babel__template': 7.4.1
-      '@types/babel__traverse': 7.18.2
-    dev: true
+  '@rollup/plugin-replace@6.0.1':
+    resolution: {integrity: sha512-2sPh9b73dj5IxuMmDAsQWVFT7mR+yoHweBaXG2W/R8vQ+IWZlnaI7BR7J6EguVQUp1hd8Z7XuozpDjEKQAAC2Q==}
+    engines: {node: '>=14.0.0'}
+    peerDependencies:
+      rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0
+    peerDependenciesMeta:
+      rollup:
+        optional: true
 
-  /@types/babel__generator/7.6.4:
-    resolution: {integrity: sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==}
-    dependencies:
-      '@babel/types': 7.20.2
-    dev: true
+  '@rollup/pluginutils@5.1.2':
+    resolution: {integrity: sha512-/FIdS3PyZ39bjZlwqFnWqCOVnW7o963LtKMwQOD0NhQqw22gSr2YY1afu3FxRip4ZCZNsD5jq6Aaz6QV3D/Njw==}
+    engines: {node: '>=14.0.0'}
+    peerDependencies:
+      rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0
+    peerDependenciesMeta:
+      rollup:
+        optional: true
 
-  /@types/babel__template/7.4.1:
-    resolution: {integrity: sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==}
-    dependencies:
-      '@babel/parser': 7.20.3
-      '@babel/types': 7.20.2
-    dev: true
+  '@rollup/rollup-android-arm-eabi@4.24.0':
+    resolution: {integrity: sha512-Q6HJd7Y6xdB48x8ZNVDOqsbh2uByBhgK8PiQgPhwkIw/HC/YX5Ghq2mQY5sRMZWHb3VsFkWooUVOZHKr7DmDIA==}
+    cpu: [arm]
+    os: [android]
 
-  /@types/babel__traverse/7.18.2:
-    resolution: {integrity: sha512-FcFaxOr2V5KZCviw1TnutEMVUVsGt4D2hP1TAfXZAMKuHYW3xQhe3jTxNPWutgCJ3/X1c5yX8ZoGVEItxKbwBg==}
-    dependencies:
-      '@babel/types': 7.20.2
-    dev: true
+  '@rollup/rollup-android-arm64@4.24.0':
+    resolution: {integrity: sha512-ijLnS1qFId8xhKjT81uBHuuJp2lU4x2yxa4ctFPtG+MqEE6+C5f/+X/bStmxapgmwLwiL3ih122xv8kVARNAZA==}
+    cpu: [arm64]
+    os: [android]
 
-  /@types/estree/1.0.0:
-    resolution: {integrity: sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==}
-    dev: true
+  '@rollup/rollup-darwin-arm64@4.24.0':
+    resolution: {integrity: sha512-bIv+X9xeSs1XCk6DVvkO+S/z8/2AMt/2lMqdQbMrmVpgFvXlmde9mLcbQpztXm1tajC3raFDqegsH18HQPMYtA==}
+    cpu: [arm64]
+    os: [darwin]
 
-  /@types/graceful-fs/4.1.5:
-    resolution: {integrity: sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==}
-    dependencies:
-      '@types/node': 16.0.0
-    dev: true
+  '@rollup/rollup-darwin-x64@4.24.0':
+    resolution: {integrity: sha512-X6/nOwoFN7RT2svEQWUsW/5C/fYMBe4fnLK9DQk4SX4mgVBiTA9h64kjUYPvGQ0F/9xwJ5U5UfTbl6BEjaQdBQ==}
+    cpu: [x64]
+    os: [darwin]
 
-  /@types/istanbul-lib-coverage/2.0.4:
-    resolution: {integrity: sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==}
-    dev: true
+  '@rollup/rollup-linux-arm-gnueabihf@4.24.0':
+    resolution: {integrity: sha512-0KXvIJQMOImLCVCz9uvvdPgfyWo93aHHp8ui3FrtOP57svqrF/roSSR5pjqL2hcMp0ljeGlU4q9o/rQaAQ3AYA==}
+    cpu: [arm]
+    os: [linux]
+
+  '@rollup/rollup-linux-arm-musleabihf@4.24.0':
+    resolution: {integrity: sha512-it2BW6kKFVh8xk/BnHfakEeoLPv8STIISekpoF+nBgWM4d55CZKc7T4Dx1pEbTnYm/xEKMgy1MNtYuoA8RFIWw==}
+    cpu: [arm]
+    os: [linux]
+
+  '@rollup/rollup-linux-arm64-gnu@4.24.0':
+    resolution: {integrity: sha512-i0xTLXjqap2eRfulFVlSnM5dEbTVque/3Pi4g2y7cxrs7+a9De42z4XxKLYJ7+OhE3IgxvfQM7vQc43bwTgPwA==}
+    cpu: [arm64]
+    os: [linux]
+
+  '@rollup/rollup-linux-arm64-musl@4.24.0':
+    resolution: {integrity: sha512-9E6MKUJhDuDh604Qco5yP/3qn3y7SLXYuiC0Rpr89aMScS2UAmK1wHP2b7KAa1nSjWJc/f/Lc0Wl1L47qjiyQw==}
+    cpu: [arm64]
+    os: [linux]
+
+  '@rollup/rollup-linux-powerpc64le-gnu@4.24.0':
+    resolution: {integrity: sha512-2XFFPJ2XMEiF5Zi2EBf4h73oR1V/lycirxZxHZNc93SqDN/IWhYYSYj8I9381ikUFXZrz2v7r2tOVk2NBwxrWw==}
+    cpu: [ppc64]
+    os: [linux]
+
+  '@rollup/rollup-linux-riscv64-gnu@4.24.0':
+    resolution: {integrity: sha512-M3Dg4hlwuntUCdzU7KjYqbbd+BLq3JMAOhCKdBE3TcMGMZbKkDdJ5ivNdehOssMCIokNHFOsv7DO4rlEOfyKpg==}
+    cpu: [riscv64]
+    os: [linux]
+
+  '@rollup/rollup-linux-s390x-gnu@4.24.0':
+    resolution: {integrity: sha512-mjBaoo4ocxJppTorZVKWFpy1bfFj9FeCMJqzlMQGjpNPY9JwQi7OuS1axzNIk0nMX6jSgy6ZURDZ2w0QW6D56g==}
+    cpu: [s390x]
+    os: [linux]
+
+  '@rollup/rollup-linux-x64-gnu@4.24.0':
+    resolution: {integrity: sha512-ZXFk7M72R0YYFN5q13niV0B7G8/5dcQ9JDp8keJSfr3GoZeXEoMHP/HlvqROA3OMbMdfr19IjCeNAnPUG93b6A==}
+    cpu: [x64]
+    os: [linux]
+
+  '@rollup/rollup-linux-x64-musl@4.24.0':
+    resolution: {integrity: sha512-w1i+L7kAXZNdYl+vFvzSZy8Y1arS7vMgIy8wusXJzRrPyof5LAb02KGr1PD2EkRcl73kHulIID0M501lN+vobQ==}
+    cpu: [x64]
+    os: [linux]
+
+  '@rollup/rollup-win32-arm64-msvc@4.24.0':
+    resolution: {integrity: sha512-VXBrnPWgBpVDCVY6XF3LEW0pOU51KbaHhccHw6AS6vBWIC60eqsH19DAeeObl+g8nKAz04QFdl/Cefta0xQtUQ==}
+    cpu: [arm64]
+    os: [win32]
+
+  '@rollup/rollup-win32-ia32-msvc@4.24.0':
+    resolution: {integrity: sha512-xrNcGDU0OxVcPTH/8n/ShH4UevZxKIO6HJFK0e15XItZP2UcaiLFd5kiX7hJnqCbSztUF8Qot+JWBC/QXRPYWQ==}
+    cpu: [ia32]
+    os: [win32]
+
+  '@rollup/rollup-win32-x64-msvc@4.24.0':
+    resolution: {integrity: sha512-fbMkAF7fufku0N2dE5TBXcNlg0pt0cJue4xBRE2Qc5Vqikxr4VCgKj/ht6SMdFcOacVA9rqF70APJ8RN/4vMJw==}
+    cpu: [x64]
+    os: [win32]
+
+  '@shikijs/core@1.21.1':
+    resolution: {integrity: sha512-scBQo4V4O4WZLEDg11e75UPmXoCMq4Ya2A16U6efi/aTiR4o7T/GMNWZs2rq1U8dEvFKGxJZxiUy+tXgmr/4vw==}
+
+  '@shikijs/engine-javascript@1.21.1':
+    resolution: {integrity: sha512-29EG4KYKlAona8yikEx8uoKbK7N2YoXUO26LS1GOIxpMMIAlQS9UFONg95lkGmIfp1rRcvCvSpYYIJ/blsQxvg==}
+
+  '@shikijs/engine-oniguruma@1.21.1':
+    resolution: {integrity: sha512-PvfEtXCDbQZc9ud0SC0bPiuMbul44Cv0Ky2go4SsvVkYAAKYJsMe/Hx7nxThW8yS0r+w8USa0WfOtQKsD9DU9A==}
+
+  '@shikijs/types@1.21.1':
+    resolution: {integrity: sha512-yLuTJTCHmYznerJ0nxF+f2rBKHQf2FMAd08QL/3du2xNBy/7yQ8CjuKN4Zc+Pk0vfIFzdBoxdzvEXE4JtXoR4Q==}
+
+  '@shikijs/vscode-textmate@9.3.0':
+    resolution: {integrity: sha512-jn7/7ky30idSkd/O5yDBfAnVt+JJpepofP/POZ1iMOxK59cOfqIgg/Dj0eFsjOTMw+4ycJN0uhZH/Eb0bs/EUA==}
+
+  '@stylistic/eslint-plugin@2.9.0':
+    resolution: {integrity: sha512-OrDyFAYjBT61122MIY1a3SfEgy3YCMgt2vL4eoPmvTwDBwyQhAXurxNQznlRD/jESNfYWfID8Ej+31LljvF7Xg==}
+    engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+    peerDependencies:
+      eslint: '>=8.40.0'
 
-  /@types/istanbul-lib-report/3.0.0:
-    resolution: {integrity: sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==}
-    dependencies:
-      '@types/istanbul-lib-coverage': 2.0.4
-    dev: true
+  '@trysound/sax@0.2.0':
+    resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==}
+    engines: {node: '>=10.13.0'}
 
-  /@types/istanbul-reports/3.0.1:
-    resolution: {integrity: sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==}
-    dependencies:
-      '@types/istanbul-lib-report': 3.0.0
-    dev: true
+  '@types/estree@1.0.6':
+    resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==}
 
-  /@types/jest/29.2.2:
-    resolution: {integrity: sha512-og1wAmdxKoS71K2ZwSVqWPX6OVn3ihZ6ZT2qvZvZQm90lJVDyXIjYcu4Khx2CNIeaFv12rOU/YObOsI3VOkzog==}
-    dependencies:
-      expect: 29.3.1
-      pretty-format: 29.3.1
-    dev: true
+  '@types/hast@3.0.4':
+    resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==}
 
-  /@types/json-schema/7.0.11:
-    resolution: {integrity: sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==}
-    dev: true
+  '@types/json-schema@7.0.15':
+    resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==}
 
-  /@types/minimist/1.2.2:
-    resolution: {integrity: sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==}
-    dev: true
+  '@types/mdast@4.0.4':
+    resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==}
 
-  /@types/node/16.0.0:
-    resolution: {integrity: sha512-TmCW5HoZ2o2/z2EYi109jLqIaPIi9y/lc2LmDCWzuCi35bcaQ+OtUh6nwBiFK7SOu25FAU5+YKdqFZUwtqGSdg==}
-    dev: true
+  '@types/minimist@1.2.5':
+    resolution: {integrity: sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==}
 
-  /@types/normalize-package-data/2.4.1:
-    resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==}
-    dev: true
+  '@types/node@22.7.4':
+    resolution: {integrity: sha512-y+NPi1rFzDs1NdQHHToqeiX2TIS79SWEAw9GYhkkx8bD0ChpfqC+n2j5OXOCpzfojBEBt6DnEnnG9MY0zk1XLg==}
 
-  /@types/prettier/2.7.1:
-    resolution: {integrity: sha512-ri0UmynRRvZiiUJdiz38MmIblKK+oH30MztdBVR95dv/Ubw6neWSb8u1XpRb72L4qsZOhz+L+z9JD40SJmfWow==}
-    dev: true
+  '@types/normalize-package-data@2.4.4':
+    resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==}
 
-  /@types/resolve/1.20.2:
+  '@types/resolve@1.20.2':
     resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==}
-    dev: true
-
-  /@types/semver/7.3.13:
-    resolution: {integrity: sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==}
-    dev: true
 
-  /@types/stack-utils/2.0.1:
-    resolution: {integrity: sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==}
-    dev: true
+  '@types/unist@3.0.3':
+    resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==}
 
-  /@types/yargs-parser/21.0.0:
-    resolution: {integrity: sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==}
-    dev: true
-
-  /@types/yargs/17.0.13:
-    resolution: {integrity: sha512-9sWaruZk2JGxIQU+IhI1fhPYRcQ0UuTNuKuCW9bR5fp7qi2Llf7WDzNa17Cy7TKnh3cdxDOiyTu6gaLS0eDatg==}
-    dependencies:
-      '@types/yargs-parser': 21.0.0
-    dev: true
-
-  /@typescript-eslint/eslint-plugin/5.42.1_2udltptbznfmezdozpdoa2aemq:
-    resolution: {integrity: sha512-LyR6x784JCiJ1j6sH5Y0K6cdExqCCm8DJUTcwG5ThNXJj/G8o5E56u5EdG4SLy+bZAwZBswC+GYn3eGdttBVCg==}
-    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+  '@typescript-eslint/eslint-plugin@8.8.1':
+    resolution: {integrity: sha512-xfvdgA8AP/vxHgtgU310+WBnLB4uJQ9XdyP17RebG26rLtDrQJV3ZYrcopX91GrHmMoH8bdSwMRh2a//TiJ1jQ==}
+    engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
     peerDependencies:
-      '@typescript-eslint/parser': ^5.0.0
-      eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
+      '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0
+      eslint: ^8.57.0 || ^9.0.0
       typescript: '*'
     peerDependenciesMeta:
       typescript:
         optional: true
-    dependencies:
-      '@typescript-eslint/parser': 5.42.1_rmayb2veg2btbq6mbmnyivgasy
-      '@typescript-eslint/scope-manager': 5.42.1
-      '@typescript-eslint/type-utils': 5.42.1_rmayb2veg2btbq6mbmnyivgasy
-      '@typescript-eslint/utils': 5.42.1_rmayb2veg2btbq6mbmnyivgasy
-      debug: 4.3.4
-      eslint: 8.27.0
-      ignore: 5.2.0
-      natural-compare-lite: 1.4.0
-      regexpp: 3.2.0
-      semver: 7.3.8
-      tsutils: 3.21.0_typescript@4.8.4
-      typescript: 4.8.4
-    transitivePeerDependencies:
-      - supports-color
-    dev: true
 
-  /@typescript-eslint/parser/5.42.1_rmayb2veg2btbq6mbmnyivgasy:
-    resolution: {integrity: sha512-kAV+NiNBWVQDY9gDJDToTE/NO8BHi4f6b7zTsVAJoTkmB/zlfOpiEVBzHOKtlgTndCKe8vj9F/PuolemZSh50Q==}
-    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+  '@typescript-eslint/parser@8.8.1':
+    resolution: {integrity: sha512-hQUVn2Lij2NAxVFEdvIGxT9gP1tq2yM83m+by3whWFsWC+1y8pxxxHUFE1UqDu2VsGi2i6RLcv4QvouM84U+ow==}
+    engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
     peerDependencies:
-      eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
+      eslint: ^8.57.0 || ^9.0.0
       typescript: '*'
     peerDependenciesMeta:
       typescript:
         optional: true
-    dependencies:
-      '@typescript-eslint/scope-manager': 5.42.1
-      '@typescript-eslint/types': 5.42.1
-      '@typescript-eslint/typescript-estree': 5.42.1_typescript@4.8.4
-      debug: 4.3.4
-      eslint: 8.27.0
-      typescript: 4.8.4
-    transitivePeerDependencies:
-      - supports-color
-    dev: true
 
-  /@typescript-eslint/scope-manager/5.42.1:
-    resolution: {integrity: sha512-QAZY/CBP1Emx4rzxurgqj3rUinfsh/6mvuKbLNMfJMMKYLRBfweus8brgXF8f64ABkIZ3zdj2/rYYtF8eiuksQ==}
-    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
-    dependencies:
-      '@typescript-eslint/types': 5.42.1
-      '@typescript-eslint/visitor-keys': 5.42.1
-    dev: true
+  '@typescript-eslint/scope-manager@8.8.0':
+    resolution: {integrity: sha512-EL8eaGC6gx3jDd8GwEFEV091210U97J0jeEHrAYvIYosmEGet4wJ+g0SYmLu+oRiAwbSA5AVrt6DxLHfdd+bUg==}
+    engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
 
-  /@typescript-eslint/type-utils/5.42.1_rmayb2veg2btbq6mbmnyivgasy:
-    resolution: {integrity: sha512-WWiMChneex5w4xPIX56SSnQQo0tEOy5ZV2dqmj8Z371LJ0E+aymWD25JQ/l4FOuuX+Q49A7pzh/CGIQflxMVXg==}
-    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+  '@typescript-eslint/scope-manager@8.8.1':
+    resolution: {integrity: sha512-X4JdU+66Mazev/J0gfXlcC/dV6JI37h+93W9BRYXrSn0hrE64IoWgVkO9MSJgEzoWkxONgaQpICWg8vAN74wlA==}
+    engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+  '@typescript-eslint/type-utils@8.8.1':
+    resolution: {integrity: sha512-qSVnpcbLP8CALORf0za+vjLYj1Wp8HSoiI8zYU5tHxRVj30702Z1Yw4cLwfNKhTPWp5+P+k1pjmD5Zd1nhxiZA==}
+    engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+    peerDependencies:
+      typescript: '*'
+    peerDependenciesMeta:
+      typescript:
+        optional: true
+
+  '@typescript-eslint/types@8.8.0':
+    resolution: {integrity: sha512-QJwc50hRCgBd/k12sTykOJbESe1RrzmX6COk8Y525C9l7oweZ+1lw9JiU56im7Amm8swlz00DRIlxMYLizr2Vw==}
+    engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+  '@typescript-eslint/types@8.8.1':
+    resolution: {integrity: sha512-WCcTP4SDXzMd23N27u66zTKMuEevH4uzU8C9jf0RO4E04yVHgQgW+r+TeVTNnO1KIfrL8ebgVVYYMMO3+jC55Q==}
+    engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+  '@typescript-eslint/typescript-estree@8.8.0':
+    resolution: {integrity: sha512-ZaMJwc/0ckLz5DaAZ+pNLmHv8AMVGtfWxZe/x2JVEkD5LnmhWiQMMcYT7IY7gkdJuzJ9P14fRy28lUrlDSWYdw==}
+    engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+    peerDependencies:
+      typescript: '*'
+    peerDependenciesMeta:
+      typescript:
+        optional: true
+
+  '@typescript-eslint/typescript-estree@8.8.1':
+    resolution: {integrity: sha512-A5d1R9p+X+1js4JogdNilDuuq+EHZdsH9MjTVxXOdVFfTJXunKJR/v+fNNyO4TnoOn5HqobzfRlc70NC6HTcdg==}
+    engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
     peerDependencies:
-      eslint: '*'
       typescript: '*'
     peerDependenciesMeta:
       typescript:
         optional: true
+
+  '@typescript-eslint/utils@8.8.0':
+    resolution: {integrity: sha512-QE2MgfOTem00qrlPgyByaCHay9yb1+9BjnMFnSFkUKQfu7adBXDTnCAivURnuPPAG/qiB+kzKkZKmKfaMT0zVg==}
+    engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+    peerDependencies:
+      eslint: ^8.57.0 || ^9.0.0
+
+  '@typescript-eslint/utils@8.8.1':
+    resolution: {integrity: sha512-/QkNJDbV0bdL7H7d0/y0qBbV2HTtf0TIyjSDTvvmQEzeVx8jEImEbLuOA4EsvE8gIgqMitns0ifb5uQhMj8d9w==}
+    engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+    peerDependencies:
+      eslint: ^8.57.0 || ^9.0.0
+
+  '@typescript-eslint/visitor-keys@8.8.0':
+    resolution: {integrity: sha512-8mq51Lx6Hpmd7HnA2fcHQo3YgfX1qbccxQOgZcb4tvasu//zXRaA1j5ZRFeCw/VRAdFi4mRM9DnZw0Nu0Q2d1g==}
+    engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+  '@typescript-eslint/visitor-keys@8.8.1':
+    resolution: {integrity: sha512-0/TdC3aeRAsW7MDvYRwEc1Uwm0TIBfzjPFgg60UU2Haj5qsCs9cc3zNgY71edqE3LbWfF/WoZQd3lJoDXFQpag==}
+    engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+  '@ungap/structured-clone@1.2.0':
+    resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==}
+
+  '@vitest/coverage-v8@2.1.2':
+    resolution: {integrity: sha512-b7kHrFrs2urS0cOk5N10lttI8UdJ/yP3nB4JYTREvR5o18cR99yPpK4gK8oQgI42BVv0ILWYUSYB7AXkAUDc0g==}
+    peerDependencies:
+      '@vitest/browser': 2.1.2
+      vitest: 2.1.2
+    peerDependenciesMeta:
+      '@vitest/browser':
+        optional: true
+
+  '@vitest/expect@2.1.2':
+    resolution: {integrity: sha512-FEgtlN8mIUSEAAnlvn7mP8vzaWhEaAEvhSXCqrsijM7K6QqjB11qoRZYEd4AKSCDz8p0/+yH5LzhZ47qt+EyPg==}
+
+  '@vitest/mocker@2.1.2':
+    resolution: {integrity: sha512-ExElkCGMS13JAJy+812fw1aCv2QO/LBK6CyO4WOPAzLTmve50gydOlWhgdBJPx2ztbADUq3JVI0C5U+bShaeEA==}
+    peerDependencies:
+      '@vitest/spy': 2.1.2
+      msw: ^2.3.5
+      vite: ^5.0.0
+    peerDependenciesMeta:
+      msw:
+        optional: true
+      vite:
+        optional: true
+
+  '@vitest/pretty-format@2.1.2':
+    resolution: {integrity: sha512-FIoglbHrSUlOJPDGIrh2bjX1sNars5HbxlcsFKCtKzu4+5lpsRhOCVcuzp0fEhAGHkPZRIXVNzPcpSlkoZ3LuA==}
+
+  '@vitest/runner@2.1.2':
+    resolution: {integrity: sha512-UCsPtvluHO3u7jdoONGjOSil+uON5SSvU9buQh3lP7GgUXHp78guN1wRmZDX4wGK6J10f9NUtP6pO+SFquoMlw==}
+
+  '@vitest/snapshot@2.1.2':
+    resolution: {integrity: sha512-xtAeNsZ++aRIYIUsek7VHzry/9AcxeULlegBvsdLncLmNCR6tR8SRjn8BbDP4naxtccvzTqZ+L1ltZlRCfBZFA==}
+
+  '@vitest/spy@2.1.2':
+    resolution: {integrity: sha512-GSUi5zoy+abNRJwmFhBDC0yRuVUn8WMlQscvnbbXdKLXX9dE59YbfwXxuJ/mth6eeqIzofU8BB5XDo/Ns/qK2A==}
+
+  '@vitest/utils@2.1.2':
+    resolution: {integrity: sha512-zMO2KdYy6mx56btx9JvAqAZ6EyS3g49krMPPrgOp1yxGZiA93HumGk+bZ5jIZtOg5/VBYl5eBmGRQHqq4FG6uQ==}
+
+  JSONStream@1.3.5:
+    resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==}
+    hasBin: true
+
+  acorn-jsx@5.3.2:
+    resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
+    peerDependencies:
+      acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
+
+  acorn@8.12.1:
+    resolution: {integrity: sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==}
+    engines: {node: '>=0.4.0'}
+    hasBin: true
+
+  add-stream@1.0.0:
+    resolution: {integrity: sha512-qQLMr+8o0WC4FZGQTcJiKBVC59JylcPSrTtk6usvmIDFUOCKegapy1VHQwRbFMOFyb/inzUVqHs+eMYKDM1YeQ==}
+
+  ajv@6.12.6:
+    resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}
+
+  ansi-regex@5.0.1:
+    resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
+    engines: {node: '>=8'}
+
+  ansi-regex@6.1.0:
+    resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==}
+    engines: {node: '>=12'}
+
+  ansi-styles@3.2.1:
+    resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==}
+    engines: {node: '>=4'}
+
+  ansi-styles@4.3.0:
+    resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
+    engines: {node: '>=8'}
+
+  ansi-styles@6.2.1:
+    resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==}
+    engines: {node: '>=12'}
+
+  anymatch@3.1.3:
+    resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==}
+    engines: {node: '>= 8'}
+
+  argparse@2.0.1:
+    resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
+
+  array-ify@1.0.0:
+    resolution: {integrity: sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==}
+
+  arrify@1.0.1:
+    resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==}
+    engines: {node: '>=0.10.0'}
+
+  assertion-error@2.0.1:
+    resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==}
+    engines: {node: '>=12'}
+
+  autoprefixer@10.4.20:
+    resolution: {integrity: sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==}
+    engines: {node: ^10 || ^12 || >=14}
+    hasBin: true
+    peerDependencies:
+      postcss: ^8.1.0
+
+  balanced-match@1.0.2:
+    resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
+
+  binary-extensions@2.3.0:
+    resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==}
+    engines: {node: '>=8'}
+
+  boolbase@1.0.0:
+    resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==}
+
+  brace-expansion@1.1.11:
+    resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
+
+  brace-expansion@2.0.1:
+    resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==}
+
+  braces@3.0.3:
+    resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==}
+    engines: {node: '>=8'}
+
+  browserslist@4.24.0:
+    resolution: {integrity: sha512-Rmb62sR1Zpjql25eSanFGEhAxcFwfA1K0GuQcLoaJBAcENegrQut3hYdhXFF1obQfiDyqIW/cLM5HSJ/9k884A==}
+    engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
+    hasBin: true
+
+  buffer-from@1.1.2:
+    resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==}
+
+  bundle-name@4.1.0:
+    resolution: {integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==}
+    engines: {node: '>=18'}
+
+  c12@1.11.2:
+    resolution: {integrity: sha512-oBs8a4uvSDO9dm8b7OCFW7+dgtVrwmwnrVXYzLm43ta7ep2jCn/0MhoUFygIWtxhyy6+/MG7/agvpY0U1Iemew==}
+    peerDependencies:
+      magicast: ^0.3.4
+    peerDependenciesMeta:
+      magicast:
+        optional: true
+
+  cac@6.7.14:
+    resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==}
+    engines: {node: '>=8'}
+
+  callsites@3.1.0:
+    resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
+    engines: {node: '>=6'}
+
+  camelcase-keys@6.2.2:
+    resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==}
+    engines: {node: '>=8'}
+
+  camelcase@5.3.1:
+    resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==}
+    engines: {node: '>=6'}
+
+  caniuse-api@3.0.0:
+    resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==}
+
+  caniuse-lite@1.0.30001667:
+    resolution: {integrity: sha512-7LTwJjcRkzKFmtqGsibMeuXmvFDfZq/nzIjnmgCGzKKRVzjD72selLDK1oPF/Oxzmt4fNcPvTDvGqSDG4tCALw==}
+
+  ccount@2.0.1:
+    resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==}
+
+  chai@5.1.1:
+    resolution: {integrity: sha512-pT1ZgP8rPNqUgieVaEY+ryQr6Q4HXNg8Ei9UnLUrjN4IA7dvQC5JB+/kxVcPNDHyBcc/26CXPkbNzq3qwrOEKA==}
+    engines: {node: '>=12'}
+
+  chalk@2.4.2:
+    resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==}
+    engines: {node: '>=4'}
+
+  chalk@4.1.2:
+    resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
+    engines: {node: '>=10'}
+
+  changelogen@0.5.7:
+    resolution: {integrity: sha512-cTZXBcJMl3pudE40WENOakXkcVtrbBpbkmSkM20NdRiUqa4+VYRdXdEsgQ0BNQ6JBE2YymTNWtPKVF7UCTN5+g==}
+    hasBin: true
+
+  character-entities-html4@2.1.0:
+    resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==}
+
+  character-entities-legacy@3.0.0:
+    resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==}
+
+  check-error@2.1.1:
+    resolution: {integrity: sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==}
+    engines: {node: '>= 16'}
+
+  chokidar@3.6.0:
+    resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==}
+    engines: {node: '>= 8.10.0'}
+
+  chownr@2.0.0:
+    resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==}
+    engines: {node: '>=10'}
+
+  citty@0.1.6:
+    resolution: {integrity: sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ==}
+
+  cliui@7.0.4:
+    resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==}
+
+  color-convert@1.9.3:
+    resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==}
+
+  color-convert@2.0.1:
+    resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
+    engines: {node: '>=7.0.0'}
+
+  color-name@1.1.3:
+    resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==}
+
+  color-name@1.1.4:
+    resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
+
+  colord@2.9.3:
+    resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==}
+
+  colorette@2.0.20:
+    resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==}
+
+  comma-separated-tokens@2.0.3:
+    resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==}
+
+  commander@2.20.3:
+    resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==}
+
+  commander@7.2.0:
+    resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==}
+    engines: {node: '>= 10'}
+
+  commondir@1.0.1:
+    resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==}
+
+  compare-func@2.0.0:
+    resolution: {integrity: sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==}
+
+  concat-map@0.0.1:
+    resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
+
+  concat-stream@2.0.0:
+    resolution: {integrity: sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==}
+    engines: {'0': node >= 6.0}
+
+  confbox@0.1.8:
+    resolution: {integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==}
+
+  consola@3.2.3:
+    resolution: {integrity: sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==}
+    engines: {node: ^14.18.0 || >=16.10.0}
+
+  conventional-changelog-angular@5.0.13:
+    resolution: {integrity: sha512-i/gipMxs7s8L/QeuavPF2hLnJgH6pEZAttySB6aiQLWcX3puWDL3ACVmvBhJGxnAy52Qc15ua26BufY6KpmrVA==}
+    engines: {node: '>=10'}
+
+  conventional-changelog-atom@2.0.8:
+    resolution: {integrity: sha512-xo6v46icsFTK3bb7dY/8m2qvc8sZemRgdqLb/bjpBsH2UyOS8rKNTgcb5025Hri6IpANPApbXMg15QLb1LJpBw==}
+    engines: {node: '>=10'}
+
+  conventional-changelog-codemirror@2.0.8:
+    resolution: {integrity: sha512-z5DAsn3uj1Vfp7po3gpt2Boc+Bdwmw2++ZHa5Ak9k0UKsYAO5mH1UBTN0qSCuJZREIhX6WU4E1p3IW2oRCNzQw==}
+    engines: {node: '>=10'}
+
+  conventional-changelog-config-spec@2.1.0:
+    resolution: {integrity: sha512-IpVePh16EbbB02V+UA+HQnnPIohgXvJRxHcS5+Uwk4AT5LjzCZJm5sp/yqs5C6KZJ1jMsV4paEV13BN1pvDuxQ==}
+
+  conventional-changelog-conventionalcommits@4.6.3:
+    resolution: {integrity: sha512-LTTQV4fwOM4oLPad317V/QNQ1FY4Hju5qeBIM1uTHbrnCE+Eg4CdRZ3gO2pUeR+tzWdp80M2j3qFFEDWVqOV4g==}
+    engines: {node: '>=10'}
+
+  conventional-changelog-core@4.2.4:
+    resolution: {integrity: sha512-gDVS+zVJHE2v4SLc6B0sLsPiloR0ygU7HaDW14aNJE1v4SlqJPILPl/aJC7YdtRE4CybBf8gDwObBvKha8Xlyg==}
+    engines: {node: '>=10'}
+
+  conventional-changelog-ember@2.0.9:
+    resolution: {integrity: sha512-ulzIReoZEvZCBDhcNYfDIsLTHzYHc7awh+eI44ZtV5cx6LVxLlVtEmcO+2/kGIHGtw+qVabJYjdI5cJOQgXh1A==}
+    engines: {node: '>=10'}
+
+  conventional-changelog-eslint@3.0.9:
+    resolution: {integrity: sha512-6NpUCMgU8qmWmyAMSZO5NrRd7rTgErjrm4VASam2u5jrZS0n38V7Y9CzTtLT2qwz5xEChDR4BduoWIr8TfwvXA==}
+    engines: {node: '>=10'}
+
+  conventional-changelog-express@2.0.6:
+    resolution: {integrity: sha512-SDez2f3iVJw6V563O3pRtNwXtQaSmEfTCaTBPCqn0oG0mfkq0rX4hHBq5P7De2MncoRixrALj3u3oQsNK+Q0pQ==}
+    engines: {node: '>=10'}
+
+  conventional-changelog-jquery@3.0.11:
+    resolution: {integrity: sha512-x8AWz5/Td55F7+o/9LQ6cQIPwrCjfJQ5Zmfqi8thwUEKHstEn4kTIofXub7plf1xvFA2TqhZlq7fy5OmV6BOMw==}
+    engines: {node: '>=10'}
+
+  conventional-changelog-jshint@2.0.9:
+    resolution: {integrity: sha512-wMLdaIzq6TNnMHMy31hql02OEQ8nCQfExw1SE0hYL5KvU+JCTuPaDO+7JiogGT2gJAxiUGATdtYYfh+nT+6riA==}
+    engines: {node: '>=10'}
+
+  conventional-changelog-preset-loader@2.3.4:
+    resolution: {integrity: sha512-GEKRWkrSAZeTq5+YjUZOYxdHq+ci4dNwHvpaBC3+ENalzFWuCWa9EZXSuZBpkr72sMdKB+1fyDV4takK1Lf58g==}
+    engines: {node: '>=10'}
+
+  conventional-changelog-writer@5.0.1:
+    resolution: {integrity: sha512-5WsuKUfxW7suLblAbFnxAcrvf6r+0b7GvNaWUwUIk0bXMnENP/PEieGKVUQrjPqwPT4o3EPAASBXiY6iHooLOQ==}
+    engines: {node: '>=10'}
+    hasBin: true
+
+  conventional-changelog@3.1.25:
+    resolution: {integrity: sha512-ryhi3fd1mKf3fSjbLXOfK2D06YwKNic1nC9mWqybBHdObPd8KJ2vjaXZfYj1U23t+V8T8n0d7gwnc9XbIdFbyQ==}
+    engines: {node: '>=10'}
+
+  conventional-commits-filter@2.0.7:
+    resolution: {integrity: sha512-ASS9SamOP4TbCClsRHxIHXRfcGCnIoQqkvAzCSbZzTFLfcTqJVugB0agRgsEELsqaeWgsXv513eS116wnlSSPA==}
+    engines: {node: '>=10'}
+
+  conventional-commits-parser@3.2.4:
+    resolution: {integrity: sha512-nK7sAtfi+QXbxHCYfhpZsfRtaitZLIA6889kFIouLvz6repszQDgxBu7wf2WbU+Dco7sAnNCJYERCwt54WPC2Q==}
+    engines: {node: '>=10'}
+    hasBin: true
+
+  conventional-recommended-bump@6.1.0:
+    resolution: {integrity: sha512-uiApbSiNGM/kkdL9GTOLAqC4hbptObFo4wW2QRyHsKciGAfQuLU1ShZ1BIVI/+K2BE/W1AWYQMCXAsv4dyKPaw==}
+    engines: {node: '>=10'}
+    hasBin: true
+
+  convert-gitmoji@0.1.5:
+    resolution: {integrity: sha512-4wqOafJdk2tqZC++cjcbGcaJ13BZ3kwldf06PTiAQRAB76Z1KJwZNL1SaRZMi2w1FM9RYTgZ6QErS8NUl/GBmQ==}
+
+  convert-source-map@2.0.0:
+    resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==}
+
+  core-util-is@1.0.3:
+    resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==}
+
+  cross-spawn@7.0.3:
+    resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==}
+    engines: {node: '>= 8'}
+
+  css-declaration-sorter@7.2.0:
+    resolution: {integrity: sha512-h70rUM+3PNFuaBDTLe8wF/cdWu+dOZmb7pJt8Z2sedYbAcQVQV/tEchueg3GWxwqS0cxtbxmaHEdkNACqcvsow==}
+    engines: {node: ^14 || ^16 || >=18}
+    peerDependencies:
+      postcss: ^8.0.9
+
+  css-select@5.1.0:
+    resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==}
+
+  css-tree@2.2.1:
+    resolution: {integrity: sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==}
+    engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'}
+
+  css-tree@2.3.1:
+    resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==}
+    engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0}
+
+  css-what@6.1.0:
+    resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==}
+    engines: {node: '>= 6'}
+
+  cssesc@3.0.0:
+    resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==}
+    engines: {node: '>=4'}
+    hasBin: true
+
+  cssnano-preset-default@7.0.6:
+    resolution: {integrity: sha512-ZzrgYupYxEvdGGuqL+JKOY70s7+saoNlHSCK/OGn1vB2pQK8KSET8jvenzItcY+kA7NoWvfbb/YhlzuzNKjOhQ==}
+    engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
+    peerDependencies:
+      postcss: ^8.4.31
+
+  cssnano-utils@5.0.0:
+    resolution: {integrity: sha512-Uij0Xdxc24L6SirFr25MlwC2rCFX6scyUmuKpzI+JQ7cyqDEwD42fJ0xfB3yLfOnRDU5LKGgjQ9FA6LYh76GWQ==}
+    engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
+    peerDependencies:
+      postcss: ^8.4.31
+
+  cssnano@7.0.6:
+    resolution: {integrity: sha512-54woqx8SCbp8HwvNZYn68ZFAepuouZW4lTwiMVnBErM3VkO7/Sd4oTOt3Zz3bPx3kxQ36aISppyXj2Md4lg8bw==}
+    engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
+    peerDependencies:
+      postcss: ^8.4.31
+
+  csso@5.0.5:
+    resolution: {integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==}
+    engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'}
+
+  dargs@7.0.0:
+    resolution: {integrity: sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==}
+    engines: {node: '>=8'}
+
+  dateformat@3.0.3:
+    resolution: {integrity: sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==}
+
+  debug@4.3.7:
+    resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==}
+    engines: {node: '>=6.0'}
+    peerDependencies:
+      supports-color: '*'
+    peerDependenciesMeta:
+      supports-color:
+        optional: true
+
+  decamelize-keys@1.1.1:
+    resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==}
+    engines: {node: '>=0.10.0'}
+
+  decamelize@1.2.0:
+    resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==}
+    engines: {node: '>=0.10.0'}
+
+  deep-eql@5.0.2:
+    resolution: {integrity: sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==}
+    engines: {node: '>=6'}
+
+  deep-is@0.1.4:
+    resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
+
+  deepmerge@4.3.1:
+    resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==}
+    engines: {node: '>=0.10.0'}
+
+  default-browser-id@5.0.0:
+    resolution: {integrity: sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==}
+    engines: {node: '>=18'}
+
+  default-browser@5.2.1:
+    resolution: {integrity: sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==}
+    engines: {node: '>=18'}
+
+  define-lazy-prop@3.0.0:
+    resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==}
+    engines: {node: '>=12'}
+
+  defu@6.1.4:
+    resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==}
+
+  dequal@2.0.3:
+    resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==}
+    engines: {node: '>=6'}
+
+  destr@2.0.3:
+    resolution: {integrity: sha512-2N3BOUU4gYMpTP24s5rF5iP7BDr7uNTCs4ozw3kf/eKfvWSIu93GEBi5m427YoyJoeOzQ5smuu4nNAPGb8idSQ==}
+
+  detect-indent@6.1.0:
+    resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==}
+    engines: {node: '>=8'}
+
+  detect-newline@3.1.0:
+    resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==}
+    engines: {node: '>=8'}
+
+  devlop@1.1.0:
+    resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==}
+
+  dom-serializer@2.0.0:
+    resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==}
+
+  domelementtype@2.3.0:
+    resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==}
+
+  domhandler@5.0.3:
+    resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==}
+    engines: {node: '>= 4'}
+
+  domutils@3.1.0:
+    resolution: {integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==}
+
+  dot-prop@5.3.0:
+    resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==}
+    engines: {node: '>=8'}
+
+  dotenv@16.4.5:
+    resolution: {integrity: sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==}
+    engines: {node: '>=12'}
+
+  dotgitignore@2.1.0:
+    resolution: {integrity: sha512-sCm11ak2oY6DglEPpCB8TixLjWAxd3kJTs6UIcSasNYxXdFPV+YKlye92c8H4kKFqV5qYMIh7d+cYecEg0dIkA==}
+    engines: {node: '>=6'}
+
+  eastasianwidth@0.2.0:
+    resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==}
+
+  electron-to-chromium@1.5.33:
+    resolution: {integrity: sha512-+cYTcFB1QqD4j4LegwLfpCNxifb6dDFUAwk6RsLusCwIaZI6or2f+q8rs5tTB2YC53HhOlIbEaqHMAAC8IOIwA==}
+
+  emoji-regex@8.0.0:
+    resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
+
+  emoji-regex@9.2.2:
+    resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==}
+
+  entities@4.5.0:
+    resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==}
+    engines: {node: '>=0.12'}
+
+  error-ex@1.3.2:
+    resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==}
+
+  esbuild@0.21.5:
+    resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==}
+    engines: {node: '>=12'}
+    hasBin: true
+
+  esbuild@0.24.0:
+    resolution: {integrity: sha512-FuLPevChGDshgSicjisSooU0cemp/sGXR841D5LHMB7mTVOmsEHcAxaH3irL53+8YDIeVNQEySh4DaYU/iuPqQ==}
+    engines: {node: '>=18'}
+    hasBin: true
+
+  escalade@3.2.0:
+    resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==}
+    engines: {node: '>=6'}
+
+  escape-string-regexp@1.0.5:
+    resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==}
+    engines: {node: '>=0.8.0'}
+
+  escape-string-regexp@4.0.0:
+    resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
+    engines: {node: '>=10'}
+
+  eslint-scope@8.1.0:
+    resolution: {integrity: sha512-14dSvlhaVhKKsa9Fx1l8A17s7ah7Ef7wCakJ10LYk6+GYmP9yDti2oq2SEwcyndt6knfcZyhyxwY3i9yL78EQw==}
+    engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+  eslint-visitor-keys@3.4.3:
+    resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==}
+    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+
+  eslint-visitor-keys@4.1.0:
+    resolution: {integrity: sha512-Q7lok0mqMUSf5a/AdAZkA5a/gHcO6snwQClVNNvFKCAVlxXucdU8pKydU5ZVZjBx5xr37vGbFFWtLQYreLzrZg==}
+    engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+  eslint@9.12.0:
+    resolution: {integrity: sha512-UVIOlTEWxwIopRL1wgSQYdnVDcEvs2wyaO6DGo5mXqe3r16IoCNWkR29iHhyaP4cICWjbgbmFUGAhh0GJRuGZw==}
+    engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+    hasBin: true
+    peerDependencies:
+      jiti: '*'
+    peerDependenciesMeta:
+      jiti:
+        optional: true
+
+  espree@10.2.0:
+    resolution: {integrity: sha512-upbkBJbckcCNBDBDXEbuhjbP68n+scUd3k/U2EkyM9nw+I/jPiL4cLF/Al06CF96wRltFda16sxDFrxsI1v0/g==}
+    engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+  esquery@1.6.0:
+    resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==}
+    engines: {node: '>=0.10'}
+
+  esrecurse@4.3.0:
+    resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==}
+    engines: {node: '>=4.0'}
+
+  estraverse@5.3.0:
+    resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==}
+    engines: {node: '>=4.0'}
+
+  estree-walker@2.0.2:
+    resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==}
+
+  estree-walker@3.0.3:
+    resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==}
+
+  esutils@2.0.3:
+    resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==}
+    engines: {node: '>=0.10.0'}
+
+  execa@8.0.1:
+    resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==}
+    engines: {node: '>=16.17'}
+
+  fast-deep-equal@3.1.3:
+    resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
+
+  fast-glob@3.3.2:
+    resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==}
+    engines: {node: '>=8.6.0'}
+
+  fast-json-stable-stringify@2.1.0:
+    resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==}
+
+  fast-levenshtein@2.0.6:
+    resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==}
+
+  fastq@1.17.1:
+    resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==}
+
+  fdir@6.4.0:
+    resolution: {integrity: sha512-3oB133prH1o4j/L5lLW7uOCF1PlD+/It2L0eL/iAqWMB91RBbqTewABqxhj0ibBd90EEmWZq7ntIWzVaWcXTGQ==}
+    peerDependencies:
+      picomatch: ^3 || ^4
+    peerDependenciesMeta:
+      picomatch:
+        optional: true
+
+  figures@3.2.0:
+    resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==}
+    engines: {node: '>=8'}
+
+  file-entry-cache@8.0.0:
+    resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==}
+    engines: {node: '>=16.0.0'}
+
+  fill-range@7.1.1:
+    resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==}
+    engines: {node: '>=8'}
+
+  find-up@2.1.0:
+    resolution: {integrity: sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==}
+    engines: {node: '>=4'}
+
+  find-up@3.0.0:
+    resolution: {integrity: sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==}
+    engines: {node: '>=6'}
+
+  find-up@4.1.0:
+    resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==}
+    engines: {node: '>=8'}
+
+  find-up@5.0.0:
+    resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==}
+    engines: {node: '>=10'}
+
+  flat-cache@4.0.1:
+    resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==}
+    engines: {node: '>=16'}
+
+  flatted@3.3.1:
+    resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==}
+
+  foreground-child@3.3.0:
+    resolution: {integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==}
+    engines: {node: '>=14'}
+
+  fraction.js@4.3.7:
+    resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==}
+
+  fs-minipass@2.1.0:
+    resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==}
+    engines: {node: '>= 8'}
+
+  fsevents@2.3.3:
+    resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
+    engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
+    os: [darwin]
+
+  function-bind@1.1.2:
+    resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==}
+
+  gensync@1.0.0-beta.2:
+    resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==}
+    engines: {node: '>=6.9.0'}
+
+  get-caller-file@2.0.5:
+    resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==}
+    engines: {node: 6.* || 8.* || >= 10.*}
+
+  get-func-name@2.0.2:
+    resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==}
+
+  get-pkg-repo@4.2.1:
+    resolution: {integrity: sha512-2+QbHjFRfGB74v/pYWjd5OhU3TDIC2Gv/YKUTk/tCvAz0pkn/Mz6P3uByuBimLOcPvN2jYdScl3xGFSrx0jEcA==}
+    engines: {node: '>=6.9.0'}
+    hasBin: true
+
+  get-stream@8.0.1:
+    resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==}
+    engines: {node: '>=16'}
+
+  giget@1.2.3:
+    resolution: {integrity: sha512-8EHPljDvs7qKykr6uw8b+lqLiUc/vUg+KVTI0uND4s63TdsZM2Xus3mflvF0DDG9SiM4RlCkFGL+7aAjRmV7KA==}
+    hasBin: true
+
+  git-raw-commits@2.0.11:
+    resolution: {integrity: sha512-VnctFhw+xfj8Va1xtfEqCUD2XDrbAPSJx+hSrE5K7fGdjZruW7XV+QOrN7LF/RJyvspRiD2I0asWsxFp0ya26A==}
+    engines: {node: '>=10'}
+    hasBin: true
+
+  git-remote-origin-url@2.0.0:
+    resolution: {integrity: sha512-eU+GGrZgccNJcsDH5LkXR3PB9M958hxc7sbA8DFJjrv9j4L2P/eZfKhM+QD6wyzpiv+b1BpK0XrYCxkovtjSLw==}
+    engines: {node: '>=4'}
+
+  git-semver-tags@4.1.1:
+    resolution: {integrity: sha512-OWyMt5zBe7xFs8vglMmhM9lRQzCWL3WjHtxNNfJTMngGym7pC1kh8sP6jevfydJ6LP3ZvGxfb6ABYgPUM0mtsA==}
+    engines: {node: '>=10'}
+    hasBin: true
+
+  gitconfiglocal@1.0.0:
+    resolution: {integrity: sha512-spLUXeTAVHxDtKsJc8FkFVgFtMdEN9qPGpL23VfSHx4fP4+Ds097IXLvymbnDH8FnmxX5Nr9bPw3A+AQ6mWEaQ==}
+
+  glob-parent@5.1.2:
+    resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
+    engines: {node: '>= 6'}
+
+  glob-parent@6.0.2:
+    resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==}
+    engines: {node: '>=10.13.0'}
+
+  glob@10.4.5:
+    resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==}
+    hasBin: true
+
+  glob@11.0.0:
+    resolution: {integrity: sha512-9UiX/Bl6J2yaBbxKoEBRm4Cipxgok8kQYcOPEhScPwebu2I0HoQOuYdIO6S3hLuWoZgpDpwQZMzTFxgpkyT76g==}
+    engines: {node: 20 || >=22}
+    hasBin: true
+
+  globals@11.12.0:
+    resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==}
+    engines: {node: '>=4'}
+
+  globals@14.0.0:
+    resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==}
+    engines: {node: '>=18'}
+
+  globals@15.10.0:
+    resolution: {integrity: sha512-tqFIbz83w4Y5TCbtgjZjApohbuh7K9BxGYFm7ifwDR240tvdb7P9x+/9VvUKlmkPoiknoJtanI8UOrqxS3a7lQ==}
+    engines: {node: '>=18'}
+
+  graceful-fs@4.2.11:
+    resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==}
+
+  graphemer@1.4.0:
+    resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==}
+
+  handlebars@4.7.8:
+    resolution: {integrity: sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==}
+    engines: {node: '>=0.4.7'}
+    hasBin: true
+
+  hard-rejection@2.1.0:
+    resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==}
+    engines: {node: '>=6'}
+
+  has-flag@3.0.0:
+    resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==}
+    engines: {node: '>=4'}
+
+  has-flag@4.0.0:
+    resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==}
+    engines: {node: '>=8'}
+
+  hasown@2.0.2:
+    resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==}
+    engines: {node: '>= 0.4'}
+
+  hast-util-to-html@9.0.3:
+    resolution: {integrity: sha512-M17uBDzMJ9RPCqLMO92gNNUDuBSq10a25SDBI08iCCxmorf4Yy6sYHK57n9WAbRAAaU+DuR4W6GN9K4DFZesYg==}
+
+  hast-util-whitespace@3.0.0:
+    resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==}
+
+  hookable@5.5.3:
+    resolution: {integrity: sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==}
+
+  hosted-git-info@2.8.9:
+    resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==}
+
+  hosted-git-info@4.1.0:
+    resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==}
+    engines: {node: '>=10'}
+
+  html-escaper@2.0.2:
+    resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==}
+
+  html-void-elements@3.0.0:
+    resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==}
+
+  human-signals@5.0.0:
+    resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==}
+    engines: {node: '>=16.17.0'}
+
+  ignore@5.3.2:
+    resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==}
+    engines: {node: '>= 4'}
+
+  import-fresh@3.3.0:
+    resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==}
+    engines: {node: '>=6'}
+
+  imurmurhash@0.1.4:
+    resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==}
+    engines: {node: '>=0.8.19'}
+
+  indent-string@4.0.0:
+    resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==}
+    engines: {node: '>=8'}
+
+  inherits@2.0.4:
+    resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
+
+  ini@1.3.8:
+    resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==}
+
+  is-arrayish@0.2.1:
+    resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==}
+
+  is-binary-path@2.1.0:
+    resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==}
+    engines: {node: '>=8'}
+
+  is-core-module@2.15.1:
+    resolution: {integrity: sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==}
+    engines: {node: '>= 0.4'}
+
+  is-docker@3.0.0:
+    resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==}
+    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+    hasBin: true
+
+  is-extglob@2.1.1:
+    resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
+    engines: {node: '>=0.10.0'}
+
+  is-fullwidth-code-point@3.0.0:
+    resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==}
+    engines: {node: '>=8'}
+
+  is-glob@4.0.3:
+    resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
+    engines: {node: '>=0.10.0'}
+
+  is-inside-container@1.0.0:
+    resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==}
+    engines: {node: '>=14.16'}
+    hasBin: true
+
+  is-module@1.0.0:
+    resolution: {integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==}
+
+  is-number@7.0.0:
+    resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
+    engines: {node: '>=0.12.0'}
+
+  is-obj@2.0.0:
+    resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==}
+    engines: {node: '>=8'}
+
+  is-plain-obj@1.1.0:
+    resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==}
+    engines: {node: '>=0.10.0'}
+
+  is-reference@1.2.1:
+    resolution: {integrity: sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==}
+
+  is-stream@3.0.0:
+    resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==}
+    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+
+  is-text-path@1.0.1:
+    resolution: {integrity: sha512-xFuJpne9oFz5qDaodwmmG08e3CawH/2ZV8Qqza1Ko7Sk8POWbkRdwIoAWVhqvq0XeUzANEhKo2n0IXUGBm7A/w==}
+    engines: {node: '>=0.10.0'}
+
+  is-wsl@3.1.0:
+    resolution: {integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==}
+    engines: {node: '>=16'}
+
+  isarray@1.0.0:
+    resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==}
+
+  isexe@2.0.0:
+    resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
+
+  istanbul-lib-coverage@3.2.2:
+    resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==}
+    engines: {node: '>=8'}
+
+  istanbul-lib-report@3.0.1:
+    resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==}
+    engines: {node: '>=10'}
+
+  istanbul-lib-source-maps@5.0.6:
+    resolution: {integrity: sha512-yg2d+Em4KizZC5niWhQaIomgf5WlL4vOOjZ5xGCmF8SnPE/mDWWXgvRExdcpCgh9lLRRa1/fSYp2ymmbJ1pI+A==}
+    engines: {node: '>=10'}
+
+  istanbul-reports@3.1.7:
+    resolution: {integrity: sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==}
+    engines: {node: '>=8'}
+
+  jackspeak@3.4.3:
+    resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==}
+
+  jackspeak@4.0.2:
+    resolution: {integrity: sha512-bZsjR/iRjl1Nk1UkjGpAzLNfQtzuijhn2g+pbZb98HQ1Gk8vM9hfbxeMBP+M2/UUdwj0RqGG3mlvk2MsAqwvEw==}
+    engines: {node: 20 || >=22}
+
+  jiti@1.21.6:
+    resolution: {integrity: sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==}
+    hasBin: true
+
+  jiti@2.3.3:
+    resolution: {integrity: sha512-EX4oNDwcXSivPrw2qKH2LB5PoFxEvgtv2JgwW0bU858HoLQ+kutSvjLMUqBd0PeJYEinLWhoI9Ol0eYMqj/wNQ==}
+    hasBin: true
+
+  js-tokens@4.0.0:
+    resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
+
+  js-yaml@4.1.0:
+    resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==}
+    hasBin: true
+
+  jsesc@3.0.2:
+    resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==}
+    engines: {node: '>=6'}
+    hasBin: true
+
+  json-buffer@3.0.1:
+    resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==}
+
+  json-parse-better-errors@1.0.2:
+    resolution: {integrity: sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==}
+
+  json-parse-even-better-errors@2.3.1:
+    resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==}
+
+  json-schema-traverse@0.4.1:
+    resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==}
+
+  json-stable-stringify-without-jsonify@1.0.1:
+    resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==}
+
+  json-stringify-safe@5.0.1:
+    resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==}
+
+  json5@2.2.3:
+    resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==}
+    engines: {node: '>=6'}
+    hasBin: true
+
+  jsonparse@1.3.1:
+    resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==}
+    engines: {'0': node >= 0.2.0}
+
+  keyv@4.5.4:
+    resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==}
+
+  kind-of@6.0.3:
+    resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==}
+    engines: {node: '>=0.10.0'}
+
+  levn@0.4.1:
+    resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==}
+    engines: {node: '>= 0.8.0'}
+
+  lilconfig@3.1.2:
+    resolution: {integrity: sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==}
+    engines: {node: '>=14'}
+
+  lines-and-columns@1.2.4:
+    resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==}
+
+  linkify-it@5.0.0:
+    resolution: {integrity: sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==}
+
+  load-json-file@4.0.0:
+    resolution: {integrity: sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==}
+    engines: {node: '>=4'}
+
+  locate-path@2.0.0:
+    resolution: {integrity: sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==}
+    engines: {node: '>=4'}
+
+  locate-path@3.0.0:
+    resolution: {integrity: sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==}
+    engines: {node: '>=6'}
+
+  locate-path@5.0.0:
+    resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==}
+    engines: {node: '>=8'}
+
+  locate-path@6.0.0:
+    resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
+    engines: {node: '>=10'}
+
+  lodash.ismatch@4.4.0:
+    resolution: {integrity: sha512-fPMfXjGQEV9Xsq/8MTSgUf255gawYRbjwMyDbcvDhXgV7enSZA0hynz6vMPnpAb5iONEzBHBPsT+0zes5Z301g==}
+
+  lodash.memoize@4.1.2:
+    resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==}
+
+  lodash.merge@4.6.2:
+    resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==}
+
+  lodash.uniq@4.5.0:
+    resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==}
+
+  lodash@4.17.21:
+    resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==}
+
+  loupe@3.1.1:
+    resolution: {integrity: sha512-edNu/8D5MKVfGVFRhFf8aAxiTM6Wumfz5XsaatSxlD3w4R1d/WEKUTydCdPGbl9K7QG/Ca3GnDV2sIKIpXRQcw==}
+
+  lru-cache@10.4.3:
+    resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==}
+
+  lru-cache@11.0.1:
+    resolution: {integrity: sha512-CgeuL5uom6j/ZVrg7G/+1IXqRY8JXX4Hghfy5YE0EhoYQWvndP1kufu58cmZLNIDKnRhZrXfdS9urVWx98AipQ==}
+    engines: {node: 20 || >=22}
+
+  lru-cache@5.1.1:
+    resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==}
+
+  lru-cache@6.0.0:
+    resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==}
+    engines: {node: '>=10'}
+
+  lunr@2.3.9:
+    resolution: {integrity: sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==}
+
+  magic-string@0.30.11:
+    resolution: {integrity: sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A==}
+
+  magicast@0.3.5:
+    resolution: {integrity: sha512-L0WhttDl+2BOsybvEOLK7fW3UA0OQ0IQ2d6Zl2x/a6vVRs3bAY0ECOSHHeL5jD+SbOpOCUEi0y1DgHEn9Qn1AQ==}
+
+  make-dir@4.0.0:
+    resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==}
+    engines: {node: '>=10'}
+
+  map-obj@1.0.1:
+    resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==}
+    engines: {node: '>=0.10.0'}
+
+  map-obj@4.3.0:
+    resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==}
+    engines: {node: '>=8'}
+
+  markdown-it@14.1.0:
+    resolution: {integrity: sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==}
+    hasBin: true
+
+  mdast-util-to-hast@13.2.0:
+    resolution: {integrity: sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==}
+
+  mdn-data@2.0.28:
+    resolution: {integrity: sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==}
+
+  mdn-data@2.0.30:
+    resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==}
+
+  mdurl@2.0.0:
+    resolution: {integrity: sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==}
+
+  meow@8.1.2:
+    resolution: {integrity: sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==}
+    engines: {node: '>=10'}
+
+  merge-stream@2.0.0:
+    resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==}
+
+  merge2@1.4.1:
+    resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
+    engines: {node: '>= 8'}
+
+  micromark-util-character@2.1.0:
+    resolution: {integrity: sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==}
+
+  micromark-util-encode@2.0.0:
+    resolution: {integrity: sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==}
+
+  micromark-util-sanitize-uri@2.0.0:
+    resolution: {integrity: sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==}
+
+  micromark-util-symbol@2.0.0:
+    resolution: {integrity: sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==}
+
+  micromark-util-types@2.0.0:
+    resolution: {integrity: sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==}
+
+  micromatch@4.0.8:
+    resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==}
+    engines: {node: '>=8.6'}
+
+  mimic-fn@4.0.0:
+    resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==}
+    engines: {node: '>=12'}
+
+  min-indent@1.0.1:
+    resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==}
+    engines: {node: '>=4'}
+
+  minimatch@10.0.1:
+    resolution: {integrity: sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==}
+    engines: {node: 20 || >=22}
+
+  minimatch@3.1.2:
+    resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
+
+  minimatch@9.0.5:
+    resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==}
+    engines: {node: '>=16 || 14 >=14.17'}
+
+  minimist-options@4.1.0:
+    resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==}
+    engines: {node: '>= 6'}
+
+  minimist@1.2.8:
+    resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==}
+
+  minipass@3.3.6:
+    resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==}
+    engines: {node: '>=8'}
+
+  minipass@5.0.0:
+    resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==}
+    engines: {node: '>=8'}
+
+  minipass@7.1.2:
+    resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==}
+    engines: {node: '>=16 || 14 >=14.17'}
+
+  minizlib@2.1.2:
+    resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==}
+    engines: {node: '>= 8'}
+
+  mkdirp@1.0.4:
+    resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==}
+    engines: {node: '>=10'}
+    hasBin: true
+
+  mkdist@1.6.0:
+    resolution: {integrity: sha512-nD7J/mx33Lwm4Q4qoPgRBVA9JQNKgyE7fLo5vdPWVDdjz96pXglGERp/fRnGPCTB37Kykfxs5bDdXa9BWOT9nw==}
+    hasBin: true
+    peerDependencies:
+      sass: ^1.78.0
+      typescript: '>=5.5.4'
+      vue-tsc: ^1.8.27 || ^2.0.21
+    peerDependenciesMeta:
+      sass:
+        optional: true
+      typescript:
+        optional: true
+      vue-tsc:
+        optional: true
+
+  mlly@1.7.2:
+    resolution: {integrity: sha512-tN3dvVHYVz4DhSXinXIk7u9syPYaJvio118uomkovAtWBT+RdbP6Lfh/5Lvo519YMmwBafwlh20IPTXIStscpA==}
+
+  modify-values@1.0.1:
+    resolution: {integrity: sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw==}
+    engines: {node: '>=0.10.0'}
+
+  mri@1.2.0:
+    resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==}
+    engines: {node: '>=4'}
+
+  ms@2.1.3:
+    resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
+
+  nanoid@3.3.7:
+    resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==}
+    engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
+    hasBin: true
+
+  natural-compare@1.4.0:
+    resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
+
+  neo-async@2.6.2:
+    resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==}
+
+  node-fetch-native@1.6.4:
+    resolution: {integrity: sha512-IhOigYzAKHd244OC0JIMIUrjzctirCmPkaIfhDeGcEETWof5zKYUW7e7MYvChGWh/4CJeXEgsRyGzuF334rOOQ==}
+
+  node-releases@2.0.18:
+    resolution: {integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==}
+
+  normalize-package-data@2.5.0:
+    resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==}
+
+  normalize-package-data@3.0.3:
+    resolution: {integrity: sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==}
+    engines: {node: '>=10'}
+
+  normalize-path@3.0.0:
+    resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
+    engines: {node: '>=0.10.0'}
+
+  normalize-range@0.1.2:
+    resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==}
+    engines: {node: '>=0.10.0'}
+
+  npm-run-path@5.3.0:
+    resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==}
+    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+
+  nth-check@2.1.1:
+    resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==}
+
+  nypm@0.3.12:
+    resolution: {integrity: sha512-D3pzNDWIvgA+7IORhD/IuWzEk4uXv6GsgOxiid4UU3h9oq5IqV1KtPDi63n4sZJ/xcWlr88c0QM2RgN5VbOhFA==}
+    engines: {node: ^14.16.0 || >=16.10.0}
+    hasBin: true
+
+  ofetch@1.4.0:
+    resolution: {integrity: sha512-MuHgsEhU6zGeX+EMh+8mSMrYTnsqJQQrpM00Q6QHMKNqQ0bKy0B43tk8tL1wg+CnsSTy1kg4Ir2T5Ig6rD+dfQ==}
+
+  ohash@1.1.4:
+    resolution: {integrity: sha512-FlDryZAahJmEF3VR3w1KogSEdWX3WhA5GPakFx4J81kEAiHyLMpdLLElS8n8dfNadMgAne/MywcvmogzscVt4g==}
+
+  onetime@6.0.0:
+    resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==}
+    engines: {node: '>=12'}
+
+  oniguruma-to-js@0.4.3:
+    resolution: {integrity: sha512-X0jWUcAlxORhOqqBREgPMgnshB7ZGYszBNspP+tS9hPD3l13CdaXcHbgImoHUHlrvGx/7AvFEkTRhAGYh+jzjQ==}
+
+  open@10.1.0:
+    resolution: {integrity: sha512-mnkeQ1qP5Ue2wd+aivTD3NHd/lZ96Lu0jgf0pwktLPtx6cTZiH7tyeGRRHs0zX0rbrahXPnXlUnbeXyaBBuIaw==}
+    engines: {node: '>=18'}
+
+  optionator@0.9.4:
+    resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==}
+    engines: {node: '>= 0.8.0'}
+
+  p-limit@1.3.0:
+    resolution: {integrity: sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==}
+    engines: {node: '>=4'}
+
+  p-limit@2.3.0:
+    resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==}
+    engines: {node: '>=6'}
+
+  p-limit@3.1.0:
+    resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==}
+    engines: {node: '>=10'}
+
+  p-locate@2.0.0:
+    resolution: {integrity: sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==}
+    engines: {node: '>=4'}
+
+  p-locate@3.0.0:
+    resolution: {integrity: sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==}
+    engines: {node: '>=6'}
+
+  p-locate@4.1.0:
+    resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==}
+    engines: {node: '>=8'}
+
+  p-locate@5.0.0:
+    resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==}
+    engines: {node: '>=10'}
+
+  p-try@1.0.0:
+    resolution: {integrity: sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==}
+    engines: {node: '>=4'}
+
+  p-try@2.2.0:
+    resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==}
+    engines: {node: '>=6'}
+
+  package-json-from-dist@1.0.1:
+    resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==}
+
+  parent-module@1.0.1:
+    resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==}
+    engines: {node: '>=6'}
+
+  parse-json@4.0.0:
+    resolution: {integrity: sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==}
+    engines: {node: '>=4'}
+
+  parse-json@5.2.0:
+    resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==}
+    engines: {node: '>=8'}
+
+  path-exists@3.0.0:
+    resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==}
+    engines: {node: '>=4'}
+
+  path-exists@4.0.0:
+    resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
+    engines: {node: '>=8'}
+
+  path-key@3.1.1:
+    resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==}
+    engines: {node: '>=8'}
+
+  path-key@4.0.0:
+    resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==}
+    engines: {node: '>=12'}
+
+  path-parse@1.0.7:
+    resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
+
+  path-scurry@1.11.1:
+    resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==}
+    engines: {node: '>=16 || 14 >=14.18'}
+
+  path-scurry@2.0.0:
+    resolution: {integrity: sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==}
+    engines: {node: 20 || >=22}
+
+  path-type@3.0.0:
+    resolution: {integrity: sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==}
+    engines: {node: '>=4'}
+
+  pathe@1.1.2:
+    resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==}
+
+  pathval@2.0.0:
+    resolution: {integrity: sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==}
+    engines: {node: '>= 14.16'}
+
+  perfect-debounce@1.0.0:
+    resolution: {integrity: sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==}
+
+  picocolors@1.1.0:
+    resolution: {integrity: sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==}
+
+  picomatch@2.3.1:
+    resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
+    engines: {node: '>=8.6'}
+
+  picomatch@4.0.2:
+    resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==}
+    engines: {node: '>=12'}
+
+  pify@2.3.0:
+    resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==}
+    engines: {node: '>=0.10.0'}
+
+  pify@3.0.0:
+    resolution: {integrity: sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==}
+    engines: {node: '>=4'}
+
+  pkg-types@1.2.0:
+    resolution: {integrity: sha512-+ifYuSSqOQ8CqP4MbZA5hDpb97n3E8SVWdJe+Wms9kj745lmd3b7EZJiqvmLwAlmRfjrI7Hi5z3kdBJ93lFNPA==}
+
+  postcss-calc@10.0.2:
+    resolution: {integrity: sha512-DT/Wwm6fCKgpYVI7ZEWuPJ4az8hiEHtCUeYjZXqU7Ou4QqYh1Df2yCQ7Ca6N7xqKPFkxN3fhf+u9KSoOCJNAjg==}
+    engines: {node: ^18.12 || ^20.9 || >=22.0}
+    peerDependencies:
+      postcss: ^8.4.38
+
+  postcss-colormin@7.0.2:
+    resolution: {integrity: sha512-YntRXNngcvEvDbEjTdRWGU606eZvB5prmHG4BF0yLmVpamXbpsRJzevyy6MZVyuecgzI2AWAlvFi8DAeCqwpvA==}
+    engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
+    peerDependencies:
+      postcss: ^8.4.31
+
+  postcss-convert-values@7.0.4:
+    resolution: {integrity: sha512-e2LSXPqEHVW6aoGbjV9RsSSNDO3A0rZLCBxN24zvxF25WknMPpX8Dm9UxxThyEbaytzggRuZxaGXqaOhxQ514Q==}
+    engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
+    peerDependencies:
+      postcss: ^8.4.31
+
+  postcss-discard-comments@7.0.3:
+    resolution: {integrity: sha512-q6fjd4WU4afNhWOA2WltHgCbkRhZPgQe7cXF74fuVB/ge4QbM9HEaOIzGSiMvM+g/cOsNAUGdf2JDzqA2F8iLA==}
+    engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
+    peerDependencies:
+      postcss: ^8.4.31
+
+  postcss-discard-duplicates@7.0.1:
+    resolution: {integrity: sha512-oZA+v8Jkpu1ct/xbbrntHRsfLGuzoP+cpt0nJe5ED2FQF8n8bJtn7Bo28jSmBYwqgqnqkuSXJfSUEE7if4nClQ==}
+    engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
+    peerDependencies:
+      postcss: ^8.4.31
+
+  postcss-discard-empty@7.0.0:
+    resolution: {integrity: sha512-e+QzoReTZ8IAwhnSdp/++7gBZ/F+nBq9y6PomfwORfP7q9nBpK5AMP64kOt0bA+lShBFbBDcgpJ3X4etHg4lzA==}
+    engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
+    peerDependencies:
+      postcss: ^8.4.31
+
+  postcss-discard-overridden@7.0.0:
+    resolution: {integrity: sha512-GmNAzx88u3k2+sBTZrJSDauR0ccpE24omTQCVmaTTZFz1du6AasspjaUPMJ2ud4RslZpoFKyf+6MSPETLojc6w==}
+    engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
+    peerDependencies:
+      postcss: ^8.4.31
+
+  postcss-merge-longhand@7.0.4:
+    resolution: {integrity: sha512-zer1KoZA54Q8RVHKOY5vMke0cCdNxMP3KBfDerjH/BYHh4nCIh+1Yy0t1pAEQF18ac/4z3OFclO+ZVH8azjR4A==}
+    engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
+    peerDependencies:
+      postcss: ^8.4.31
+
+  postcss-merge-rules@7.0.4:
+    resolution: {integrity: sha512-ZsaamiMVu7uBYsIdGtKJ64PkcQt6Pcpep/uO90EpLS3dxJi6OXamIobTYcImyXGoW0Wpugh7DSD3XzxZS9JCPg==}
+    engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
+    peerDependencies:
+      postcss: ^8.4.31
+
+  postcss-minify-font-values@7.0.0:
+    resolution: {integrity: sha512-2ckkZtgT0zG8SMc5aoNwtm5234eUx1GGFJKf2b1bSp8UflqaeFzR50lid4PfqVI9NtGqJ2J4Y7fwvnP/u1cQog==}
+    engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
+    peerDependencies:
+      postcss: ^8.4.31
+
+  postcss-minify-gradients@7.0.0:
+    resolution: {integrity: sha512-pdUIIdj/C93ryCHew0UgBnL2DtUS3hfFa5XtERrs4x+hmpMYGhbzo6l/Ir5de41O0GaKVpK1ZbDNXSY6GkXvtg==}
+    engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
+    peerDependencies:
+      postcss: ^8.4.31
+
+  postcss-minify-params@7.0.2:
+    resolution: {integrity: sha512-nyqVLu4MFl9df32zTsdcLqCFfE/z2+f8GE1KHPxWOAmegSo6lpV2GNy5XQvrzwbLmiU7d+fYay4cwto1oNdAaQ==}
+    engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
+    peerDependencies:
+      postcss: ^8.4.31
+
+  postcss-minify-selectors@7.0.4:
+    resolution: {integrity: sha512-JG55VADcNb4xFCf75hXkzc1rNeURhlo7ugf6JjiiKRfMsKlDzN9CXHZDyiG6x/zGchpjQS+UAgb1d4nqXqOpmA==}
+    engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
+    peerDependencies:
+      postcss: ^8.4.31
+
+  postcss-nested@6.2.0:
+    resolution: {integrity: sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==}
+    engines: {node: '>=12.0'}
+    peerDependencies:
+      postcss: ^8.2.14
+
+  postcss-normalize-charset@7.0.0:
+    resolution: {integrity: sha512-ABisNUXMeZeDNzCQxPxBCkXexvBrUHV+p7/BXOY+ulxkcjUZO0cp8ekGBwvIh2LbCwnWbyMPNJVtBSdyhM2zYQ==}
+    engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
+    peerDependencies:
+      postcss: ^8.4.31
+
+  postcss-normalize-display-values@7.0.0:
+    resolution: {integrity: sha512-lnFZzNPeDf5uGMPYgGOw7v0BfB45+irSRz9gHQStdkkhiM0gTfvWkWB5BMxpn0OqgOQuZG/mRlZyJxp0EImr2Q==}
+    engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
+    peerDependencies:
+      postcss: ^8.4.31
+
+  postcss-normalize-positions@7.0.0:
+    resolution: {integrity: sha512-I0yt8wX529UKIGs2y/9Ybs2CelSvItfmvg/DBIjTnoUSrPxSV7Z0yZ8ShSVtKNaV/wAY+m7bgtyVQLhB00A1NQ==}
+    engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
+    peerDependencies:
+      postcss: ^8.4.31
+
+  postcss-normalize-repeat-style@7.0.0:
+    resolution: {integrity: sha512-o3uSGYH+2q30ieM3ppu9GTjSXIzOrRdCUn8UOMGNw7Af61bmurHTWI87hRybrP6xDHvOe5WlAj3XzN6vEO8jLw==}
+    engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
+    peerDependencies:
+      postcss: ^8.4.31
+
+  postcss-normalize-string@7.0.0:
+    resolution: {integrity: sha512-w/qzL212DFVOpMy3UGyxrND+Kb0fvCiBBujiaONIihq7VvtC7bswjWgKQU/w4VcRyDD8gpfqUiBQ4DUOwEJ6Qg==}
+    engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
+    peerDependencies:
+      postcss: ^8.4.31
+
+  postcss-normalize-timing-functions@7.0.0:
+    resolution: {integrity: sha512-tNgw3YV0LYoRwg43N3lTe3AEWZ66W7Dh7lVEpJbHoKOuHc1sLrzMLMFjP8SNULHaykzsonUEDbKedv8C+7ej6g==}
+    engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
+    peerDependencies:
+      postcss: ^8.4.31
+
+  postcss-normalize-unicode@7.0.2:
+    resolution: {integrity: sha512-ztisabK5C/+ZWBdYC+Y9JCkp3M9qBv/XFvDtSw0d/XwfT3UaKeW/YTm/MD/QrPNxuecia46vkfEhewjwcYFjkg==}
+    engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
+    peerDependencies:
+      postcss: ^8.4.31
+
+  postcss-normalize-url@7.0.0:
+    resolution: {integrity: sha512-+d7+PpE+jyPX1hDQZYG+NaFD+Nd2ris6r8fPTBAjE8z/U41n/bib3vze8x7rKs5H1uEw5ppe9IojewouHk0klQ==}
+    engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
+    peerDependencies:
+      postcss: ^8.4.31
+
+  postcss-normalize-whitespace@7.0.0:
+    resolution: {integrity: sha512-37/toN4wwZErqohedXYqWgvcHUGlT8O/m2jVkAfAe9Bd4MzRqlBmXrJRePH0e9Wgnz2X7KymTgTOaaFizQe3AQ==}
+    engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
+    peerDependencies:
+      postcss: ^8.4.31
+
+  postcss-ordered-values@7.0.1:
+    resolution: {integrity: sha512-irWScWRL6nRzYmBOXReIKch75RRhNS86UPUAxXdmW/l0FcAsg0lvAXQCby/1lymxn/o0gVa6Rv/0f03eJOwHxw==}
+    engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
+    peerDependencies:
+      postcss: ^8.4.31
+
+  postcss-reduce-initial@7.0.2:
+    resolution: {integrity: sha512-pOnu9zqQww7dEKf62Nuju6JgsW2V0KRNBHxeKohU+JkHd/GAH5uvoObqFLqkeB2n20mr6yrlWDvo5UBU5GnkfA==}
+    engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
+    peerDependencies:
+      postcss: ^8.4.31
+
+  postcss-reduce-transforms@7.0.0:
+    resolution: {integrity: sha512-pnt1HKKZ07/idH8cpATX/ujMbtOGhUfE+m8gbqwJE05aTaNw8gbo34a2e3if0xc0dlu75sUOiqvwCGY3fzOHew==}
+    engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
+    peerDependencies:
+      postcss: ^8.4.31
+
+  postcss-selector-parser@6.1.2:
+    resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==}
+    engines: {node: '>=4'}
+
+  postcss-svgo@7.0.1:
+    resolution: {integrity: sha512-0WBUlSL4lhD9rA5k1e5D8EN5wCEyZD6HJk0jIvRxl+FDVOMlJ7DePHYWGGVc5QRqrJ3/06FTXM0bxjmJpmTPSA==}
+    engines: {node: ^18.12.0 || ^20.9.0 || >= 18}
+    peerDependencies:
+      postcss: ^8.4.31
+
+  postcss-unique-selectors@7.0.3:
+    resolution: {integrity: sha512-J+58u5Ic5T1QjP/LDV9g3Cx4CNOgB5vz+kM6+OxHHhFACdcDeKhBXjQmB7fnIZM12YSTvsL0Opwco83DmacW2g==}
+    engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
+    peerDependencies:
+      postcss: ^8.4.31
+
+  postcss-value-parser@4.2.0:
+    resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==}
+
+  postcss@8.4.47:
+    resolution: {integrity: sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==}
+    engines: {node: ^10 || ^12 || >=14}
+
+  prelude-ls@1.2.1:
+    resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
+    engines: {node: '>= 0.8.0'}
+
+  pretty-bytes@6.1.1:
+    resolution: {integrity: sha512-mQUvGU6aUFQ+rNvTIAcZuWGRT9a6f6Yrg9bHs4ImKF+HZCEK+plBvnAZYSIQztknZF2qnzNtr6F8s0+IuptdlQ==}
+    engines: {node: ^14.13.1 || >=16.0.0}
+
+  process-nextick-args@2.0.1:
+    resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==}
+
+  property-information@6.5.0:
+    resolution: {integrity: sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==}
+
+  punycode.js@2.3.1:
+    resolution: {integrity: sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==}
+    engines: {node: '>=6'}
+
+  punycode@2.3.1:
+    resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==}
+    engines: {node: '>=6'}
+
+  q@1.5.1:
+    resolution: {integrity: sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==}
+    engines: {node: '>=0.6.0', teleport: '>=0.2.0'}
+    deprecated: |-
+      You or someone you depend on is using Q, the JavaScript Promise library that gave JavaScript developers strong feelings about promises. They can almost certainly migrate to the native JavaScript promise now. Thank you literally everyone for joining me in this bet against the odds. Be excellent to each other.
+
+      (For a CapTP with native promises, see @endo/eventual-send and @endo/captp)
+
+  queue-microtask@1.2.3:
+    resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
+
+  quick-lru@4.0.1:
+    resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==}
+    engines: {node: '>=8'}
+
+  rc9@2.1.2:
+    resolution: {integrity: sha512-btXCnMmRIBINM2LDZoEmOogIZU7Qe7zn4BpomSKZ/ykbLObuBdvG+mFq11DL6fjH1DRwHhrlgtYWG96bJiC7Cg==}
+
+  read-pkg-up@3.0.0:
+    resolution: {integrity: sha512-YFzFrVvpC6frF1sz8psoHDBGF7fLPc+llq/8NB43oagqWkx8ar5zYtsTORtOjw9W2RHLpWP+zTWwBvf1bCmcSw==}
+    engines: {node: '>=4'}
+
+  read-pkg-up@7.0.1:
+    resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==}
+    engines: {node: '>=8'}
+
+  read-pkg@3.0.0:
+    resolution: {integrity: sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==}
+    engines: {node: '>=4'}
+
+  read-pkg@5.2.0:
+    resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==}
+    engines: {node: '>=8'}
+
+  readable-stream@2.3.8:
+    resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==}
+
+  readable-stream@3.6.2:
+    resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==}
+    engines: {node: '>= 6'}
+
+  readdirp@3.6.0:
+    resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==}
+    engines: {node: '>=8.10.0'}
+
+  redent@3.0.0:
+    resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==}
+    engines: {node: '>=8'}
+
+  regex@4.3.3:
+    resolution: {integrity: sha512-r/AadFO7owAq1QJVeZ/nq9jNS1vyZt+6t1p/E59B56Rn2GCya+gr1KSyOzNL/er+r+B7phv5jG2xU2Nz1YkmJg==}
+
+  require-directory@2.1.1:
+    resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==}
+    engines: {node: '>=0.10.0'}
+
+  resolve-from@4.0.0:
+    resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==}
+    engines: {node: '>=4'}
+
+  resolve@1.22.8:
+    resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==}
+    hasBin: true
+
+  reusify@1.0.4:
+    resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==}
+    engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
+
+  rimraf@6.0.1:
+    resolution: {integrity: sha512-9dkvaxAsk/xNXSJzMgFqqMCuFgt2+KsOFek3TMLfo8NCPfWpBmqwyNn5Y+NX56QUYfCtsyhF3ayiboEoUmJk/A==}
+    engines: {node: 20 || >=22}
+    hasBin: true
+
+  rollup-plugin-dts@6.1.1:
+    resolution: {integrity: sha512-aSHRcJ6KG2IHIioYlvAOcEq6U99sVtqDDKVhnwt70rW6tsz3tv5OSjEiWcgzfsHdLyGXZ/3b/7b/+Za3Y6r1XA==}
+    engines: {node: '>=16'}
+    peerDependencies:
+      rollup: ^3.29.4 || ^4
+      typescript: ^4.5 || ^5.0
+
+  rollup@4.24.0:
+    resolution: {integrity: sha512-DOmrlGSXNk1DM0ljiQA+i+o0rSLhtii1je5wgk60j49d1jHT5YYttBv1iWOnYSTG+fZZESUOSNiAl89SIet+Cg==}
+    engines: {node: '>=18.0.0', npm: '>=8.0.0'}
+    hasBin: true
+
+  run-applescript@7.0.0:
+    resolution: {integrity: sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==}
+    engines: {node: '>=18'}
+
+  run-parallel@1.2.0:
+    resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
+
+  safe-buffer@5.1.2:
+    resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==}
+
+  safe-buffer@5.2.1:
+    resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
+
+  scule@1.3.0:
+    resolution: {integrity: sha512-6FtHJEvt+pVMIB9IBY+IcCJ6Z5f1iQnytgyfKMhDKgmzYG+TeH/wx1y3l27rshSbLiSanrR9ffZDrEsmjlQF2g==}
+
+  semver@5.7.2:
+    resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==}
+    hasBin: true
+
+  semver@6.3.1:
+    resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==}
+    hasBin: true
+
+  semver@7.6.3:
+    resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==}
+    engines: {node: '>=10'}
+    hasBin: true
+
+  shebang-command@2.0.0:
+    resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==}
+    engines: {node: '>=8'}
+
+  shebang-regex@3.0.0:
+    resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
+    engines: {node: '>=8'}
+
+  shiki@1.21.1:
+    resolution: {integrity: sha512-jSOKRHyQJxGOW3kJflmwzHJbp/kjg6hP8LYuVbCPw5oyX+fSNNoCywvcCD3w9eHbj2rvNljt7YMa5BP5Xi+nHg==}
+
+  siginfo@2.0.0:
+    resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==}
+
+  signal-exit@4.1.0:
+    resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==}
+    engines: {node: '>=14'}
+
+  source-map-js@1.2.1:
+    resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==}
+    engines: {node: '>=0.10.0'}
+
+  source-map-support@0.5.21:
+    resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==}
+
+  source-map@0.6.1:
+    resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==}
+    engines: {node: '>=0.10.0'}
+
+  space-separated-tokens@2.0.2:
+    resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==}
+
+  spdx-correct@3.2.0:
+    resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==}
+
+  spdx-exceptions@2.5.0:
+    resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==}
+
+  spdx-expression-parse@3.0.1:
+    resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==}
+
+  spdx-license-ids@3.0.20:
+    resolution: {integrity: sha512-jg25NiDV/1fLtSgEgyvVyDunvaNHbuwF9lfNV17gSmPFAlYzdfNBlLtLzXTevwkPj7DhGbmN9VnmJIgLnhvaBw==}
+
+  split2@3.2.2:
+    resolution: {integrity: sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==}
+
+  split@1.0.1:
+    resolution: {integrity: sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==}
+
+  stackback@0.0.2:
+    resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==}
+
+  standard-version@9.5.0:
+    resolution: {integrity: sha512-3zWJ/mmZQsOaO+fOlsa0+QK90pwhNd042qEcw6hKFNoLFs7peGyvPffpEBbK/DSGPbyOvli0mUIFv5A4qTjh2Q==}
+    engines: {node: '>=10'}
+    hasBin: true
+
+  std-env@3.7.0:
+    resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==}
+
+  string-width@4.2.3:
+    resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
+    engines: {node: '>=8'}
+
+  string-width@5.1.2:
+    resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==}
+    engines: {node: '>=12'}
+
+  string_decoder@1.1.1:
+    resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==}
+
+  string_decoder@1.3.0:
+    resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==}
+
+  stringify-entities@4.0.4:
+    resolution: {integrity: sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==}
+
+  stringify-package@1.0.1:
+    resolution: {integrity: sha512-sa4DUQsYciMP1xhKWGuFM04fB0LG/9DlluZoSVywUMRNvzid6XucHK0/90xGxRoHrAaROrcHK1aPKaijCtSrhg==}
+    deprecated: This module is not used anymore, and has been replaced by @npmcli/package-json
+
+  strip-ansi@6.0.1:
+    resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
+    engines: {node: '>=8'}
+
+  strip-ansi@7.1.0:
+    resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==}
+    engines: {node: '>=12'}
+
+  strip-bom@3.0.0:
+    resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==}
+    engines: {node: '>=4'}
+
+  strip-final-newline@3.0.0:
+    resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==}
+    engines: {node: '>=12'}
+
+  strip-indent@3.0.0:
+    resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==}
+    engines: {node: '>=8'}
+
+  strip-json-comments@3.1.1:
+    resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
+    engines: {node: '>=8'}
+
+  stylehacks@7.0.4:
+    resolution: {integrity: sha512-i4zfNrGMt9SB4xRK9L83rlsFCgdGANfeDAYacO1pkqcE7cRHPdWHwnKZVz7WY17Veq/FvyYsRAU++Ga+qDFIww==}
+    engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
+    peerDependencies:
+      postcss: ^8.4.31
+
+  supports-color@5.5.0:
+    resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==}
+    engines: {node: '>=4'}
+
+  supports-color@7.2.0:
+    resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==}
+    engines: {node: '>=8'}
+
+  supports-preserve-symlinks-flag@1.0.0:
+    resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
+    engines: {node: '>= 0.4'}
+
+  svgo@3.3.2:
+    resolution: {integrity: sha512-OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw==}
+    engines: {node: '>=14.0.0'}
+    hasBin: true
+
+  tar@6.2.1:
+    resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==}
+    engines: {node: '>=10'}
+
+  terser@5.34.1:
+    resolution: {integrity: sha512-FsJZ7iZLd/BXkz+4xrRTGJ26o/6VTjQytUk8b8OxkwcD2I+79VPJlz7qss1+zE7h8GNIScFqXcDyJ/KqBYZFVA==}
+    engines: {node: '>=10'}
+    hasBin: true
+
+  test-exclude@7.0.1:
+    resolution: {integrity: sha512-pFYqmTw68LXVjeWJMST4+borgQP2AyMNbg1BpZh9LbyhUeNkeaPF9gzfPGUAnSMV3qPYdWUwDIjjCLiSDOl7vg==}
+    engines: {node: '>=18'}
+
+  text-extensions@1.9.0:
+    resolution: {integrity: sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==}
+    engines: {node: '>=0.10'}
+
+  text-table@0.2.0:
+    resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==}
+
+  through2@2.0.5:
+    resolution: {integrity: sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==}
+
+  through2@4.0.2:
+    resolution: {integrity: sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==}
+
+  through@2.3.8:
+    resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==}
+
+  tinybench@2.9.0:
+    resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==}
+
+  tinyexec@0.3.0:
+    resolution: {integrity: sha512-tVGE0mVJPGb0chKhqmsoosjsS+qUnJVGJpZgsHYQcGoPlG3B51R3PouqTgEGH2Dc9jjFyOqOpix6ZHNMXp1FZg==}
+
+  tinyglobby@0.2.9:
+    resolution: {integrity: sha512-8or1+BGEdk1Zkkw2ii16qSS7uVrQJPre5A9o/XkWPATkk23FZh/15BKFxPnlTy6vkljZxLqYCzzBMj30ZrSvjw==}
+    engines: {node: '>=12.0.0'}
+
+  tinypool@1.0.1:
+    resolution: {integrity: sha512-URZYihUbRPcGv95En+sz6MfghfIc2OJ1sv/RmhWZLouPY0/8Vo80viwPvg3dlaS9fuq7fQMEfgRRK7BBZThBEA==}
+    engines: {node: ^18.0.0 || >=20.0.0}
+
+  tinyrainbow@1.2.0:
+    resolution: {integrity: sha512-weEDEq7Z5eTHPDh4xjX789+fHfF+P8boiFB+0vbWzpbnbsEr/GRaohi/uMKxg8RZMXnl1ItAi/IUHWMsjDV7kQ==}
+    engines: {node: '>=14.0.0'}
+
+  tinyspy@3.0.2:
+    resolution: {integrity: sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==}
+    engines: {node: '>=14.0.0'}
+
+  to-fast-properties@2.0.0:
+    resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==}
+    engines: {node: '>=4'}
+
+  to-regex-range@5.0.1:
+    resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
+    engines: {node: '>=8.0'}
+
+  trim-lines@3.0.1:
+    resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==}
+
+  trim-newlines@3.0.1:
+    resolution: {integrity: sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==}
+    engines: {node: '>=8'}
+
+  ts-api-utils@1.3.0:
+    resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==}
+    engines: {node: '>=16'}
+    peerDependencies:
+      typescript: '>=4.2.0'
+
+  type-check@0.4.0:
+    resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==}
+    engines: {node: '>= 0.8.0'}
+
+  type-fest@0.18.1:
+    resolution: {integrity: sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==}
+    engines: {node: '>=10'}
+
+  type-fest@0.6.0:
+    resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==}
+    engines: {node: '>=8'}
+
+  type-fest@0.8.1:
+    resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==}
+    engines: {node: '>=8'}
+
+  typedarray@0.0.6:
+    resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==}
+
+  typedoc@0.26.8:
+    resolution: {integrity: sha512-QBF0BMbnNeUc6U7pRHY7Jb8pjhmiNWZNQT8LU6uk9qP9t3goP9bJptdlNqMC0wBB2w9sQrxjZt835bpRSSq1LA==}
+    engines: {node: '>= 18'}
+    hasBin: true
+    peerDependencies:
+      typescript: 4.6.x || 4.7.x || 4.8.x || 4.9.x || 5.0.x || 5.1.x || 5.2.x || 5.3.x || 5.4.x || 5.5.x || 5.6.x
+
+  typescript-eslint@8.8.1:
+    resolution: {integrity: sha512-R0dsXFt6t4SAFjUSKFjMh4pXDtq04SsFKCVGDP3ZOzNP7itF0jBcZYU4fMsZr4y7O7V7Nc751dDeESbe4PbQMQ==}
+    engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+    peerDependencies:
+      typescript: '*'
+    peerDependenciesMeta:
+      typescript:
+        optional: true
+
+  typescript@5.6.2:
+    resolution: {integrity: sha512-NW8ByodCSNCwZeghjN3o+JX5OFH0Ojg6sadjEKY4huZ52TqbJTJnDo5+Tw98lSy63NZvi4n+ez5m2u5d4PkZyw==}
+    engines: {node: '>=14.17'}
+    hasBin: true
+
+  uc.micro@2.1.0:
+    resolution: {integrity: sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==}
+
+  ufo@1.5.4:
+    resolution: {integrity: sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==}
+
+  uglify-js@3.19.3:
+    resolution: {integrity: sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==}
+    engines: {node: '>=0.8.0'}
+    hasBin: true
+
+  unbuild@3.0.0-rc.11:
+    resolution: {integrity: sha512-faBmtdo73jSSoghmf7CuscmAMOr34eri9j674pQP+KKjxvwTKaRol6f2DVhKhNCfceeHdfm2BfDwRxo2L/w0fg==}
+    hasBin: true
+    peerDependencies:
+      typescript: ^5.6.2
+    peerDependenciesMeta:
+      typescript:
+        optional: true
+
+  undici-types@6.19.8:
+    resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==}
+
+  unist-util-is@6.0.0:
+    resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==}
+
+  unist-util-position@5.0.0:
+    resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==}
+
+  unist-util-stringify-position@4.0.0:
+    resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==}
+
+  unist-util-visit-parents@6.0.1:
+    resolution: {integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==}
+
+  unist-util-visit@5.0.0:
+    resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==}
+
+  untyped@1.5.1:
+    resolution: {integrity: sha512-reBOnkJBFfBZ8pCKaeHgfZLcehXtM6UTxc+vqs1JvCps0c4amLNp3fhdGBZwYp+VLyoY9n3X5KOP7lCyWBUX9A==}
+    hasBin: true
+
+  update-browserslist-db@1.1.1:
+    resolution: {integrity: sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==}
+    hasBin: true
+    peerDependencies:
+      browserslist: '>= 4.21.0'
+
+  uri-js@4.4.1:
+    resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
+
+  util-deprecate@1.0.2:
+    resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
+
+  validate-npm-package-license@3.0.4:
+    resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==}
+
+  vfile-message@4.0.2:
+    resolution: {integrity: sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==}
+
+  vfile@6.0.3:
+    resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==}
+
+  vite-node@2.1.2:
+    resolution: {integrity: sha512-HPcGNN5g/7I2OtPjLqgOtCRu/qhVvBxTUD3qzitmL0SrG1cWFzxzhMDWussxSbrRYWqnKf8P2jiNhPMSN+ymsQ==}
+    engines: {node: ^18.0.0 || >=20.0.0}
+    hasBin: true
+
+  vite@5.4.8:
+    resolution: {integrity: sha512-FqrItQ4DT1NC4zCUqMB4c4AZORMKIa0m8/URVCZ77OZ/QSNeJ54bU1vrFADbDsuwfIPcgknRkmqakQcgnL4GiQ==}
+    engines: {node: ^18.0.0 || >=20.0.0}
+    hasBin: true
+    peerDependencies:
+      '@types/node': ^18.0.0 || >=20.0.0
+      less: '*'
+      lightningcss: ^1.21.0
+      sass: '*'
+      sass-embedded: '*'
+      stylus: '*'
+      sugarss: '*'
+      terser: ^5.4.0
+    peerDependenciesMeta:
+      '@types/node':
+        optional: true
+      less:
+        optional: true
+      lightningcss:
+        optional: true
+      sass:
+        optional: true
+      sass-embedded:
+        optional: true
+      stylus:
+        optional: true
+      sugarss:
+        optional: true
+      terser:
+        optional: true
+
+  vitest@2.1.2:
+    resolution: {integrity: sha512-veNjLizOMkRrJ6xxb+pvxN6/QAWg95mzcRjtmkepXdN87FNfxAss9RKe2far/G9cQpipfgP2taqg0KiWsquj8A==}
+    engines: {node: ^18.0.0 || >=20.0.0}
+    hasBin: true
+    peerDependencies:
+      '@edge-runtime/vm': '*'
+      '@types/node': ^18.0.0 || >=20.0.0
+      '@vitest/browser': 2.1.2
+      '@vitest/ui': 2.1.2
+      happy-dom: '*'
+      jsdom: '*'
+    peerDependenciesMeta:
+      '@edge-runtime/vm':
+        optional: true
+      '@types/node':
+        optional: true
+      '@vitest/browser':
+        optional: true
+      '@vitest/ui':
+        optional: true
+      happy-dom:
+        optional: true
+      jsdom:
+        optional: true
+
+  which@2.0.2:
+    resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
+    engines: {node: '>= 8'}
+    hasBin: true
+
+  why-is-node-running@2.3.0:
+    resolution: {integrity: sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==}
+    engines: {node: '>=8'}
+    hasBin: true
+
+  word-wrap@1.2.5:
+    resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==}
+    engines: {node: '>=0.10.0'}
+
+  wordwrap@1.0.0:
+    resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==}
+
+  wrap-ansi@7.0.0:
+    resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==}
+    engines: {node: '>=10'}
+
+  wrap-ansi@8.1.0:
+    resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==}
+    engines: {node: '>=12'}
+
+  xtend@4.0.2:
+    resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==}
+    engines: {node: '>=0.4'}
+
+  y18n@5.0.8:
+    resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==}
+    engines: {node: '>=10'}
+
+  yallist@3.1.1:
+    resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==}
+
+  yallist@4.0.0:
+    resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==}
+
+  yaml@2.5.1:
+    resolution: {integrity: sha512-bLQOjaX/ADgQ20isPJRvF0iRUHIxVhYvr53Of7wGcWlO2jvtUlH5m87DsmulFVxRpNLOnI4tB6p/oh8D7kpn9Q==}
+    engines: {node: '>= 14'}
+    hasBin: true
+
+  yargs-parser@20.2.9:
+    resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==}
+    engines: {node: '>=10'}
+
+  yargs@16.2.0:
+    resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==}
+    engines: {node: '>=10'}
+
+  yocto-queue@0.1.0:
+    resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
+    engines: {node: '>=10'}
+
+  zwitch@2.0.4:
+    resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==}
+
+snapshots:
+
+  '@ampproject/remapping@2.3.0':
+    dependencies:
+      '@jridgewell/gen-mapping': 0.3.5
+      '@jridgewell/trace-mapping': 0.3.25
+
+  '@babel/code-frame@7.25.7':
+    dependencies:
+      '@babel/highlight': 7.25.7
+      picocolors: 1.1.0
+
+  '@babel/compat-data@7.25.7': {}
+
+  '@babel/core@7.25.7':
+    dependencies:
+      '@ampproject/remapping': 2.3.0
+      '@babel/code-frame': 7.25.7
+      '@babel/generator': 7.25.7
+      '@babel/helper-compilation-targets': 7.25.7
+      '@babel/helper-module-transforms': 7.25.7(@babel/core@7.25.7)
+      '@babel/helpers': 7.25.7
+      '@babel/parser': 7.25.7
+      '@babel/template': 7.25.7
+      '@babel/traverse': 7.25.7
+      '@babel/types': 7.25.7
+      convert-source-map: 2.0.0
+      debug: 4.3.7
+      gensync: 1.0.0-beta.2
+      json5: 2.2.3
+      semver: 6.3.1
+    transitivePeerDependencies:
+      - supports-color
+
+  '@babel/generator@7.25.7':
+    dependencies:
+      '@babel/types': 7.25.7
+      '@jridgewell/gen-mapping': 0.3.5
+      '@jridgewell/trace-mapping': 0.3.25
+      jsesc: 3.0.2
+
+  '@babel/helper-compilation-targets@7.25.7':
+    dependencies:
+      '@babel/compat-data': 7.25.7
+      '@babel/helper-validator-option': 7.25.7
+      browserslist: 4.24.0
+      lru-cache: 5.1.1
+      semver: 6.3.1
+
+  '@babel/helper-module-imports@7.25.7':
+    dependencies:
+      '@babel/traverse': 7.25.7
+      '@babel/types': 7.25.7
+    transitivePeerDependencies:
+      - supports-color
+
+  '@babel/helper-module-transforms@7.25.7(@babel/core@7.25.7)':
+    dependencies:
+      '@babel/core': 7.25.7
+      '@babel/helper-module-imports': 7.25.7
+      '@babel/helper-simple-access': 7.25.7
+      '@babel/helper-validator-identifier': 7.25.7
+      '@babel/traverse': 7.25.7
+    transitivePeerDependencies:
+      - supports-color
+
+  '@babel/helper-simple-access@7.25.7':
+    dependencies:
+      '@babel/traverse': 7.25.7
+      '@babel/types': 7.25.7
+    transitivePeerDependencies:
+      - supports-color
+
+  '@babel/helper-string-parser@7.25.7': {}
+
+  '@babel/helper-validator-identifier@7.25.7': {}
+
+  '@babel/helper-validator-option@7.25.7': {}
+
+  '@babel/helpers@7.25.7':
+    dependencies:
+      '@babel/template': 7.25.7
+      '@babel/types': 7.25.7
+
+  '@babel/highlight@7.25.7':
+    dependencies:
+      '@babel/helper-validator-identifier': 7.25.7
+      chalk: 2.4.2
+      js-tokens: 4.0.0
+      picocolors: 1.1.0
+
+  '@babel/parser@7.25.7':
+    dependencies:
+      '@babel/types': 7.25.7
+
+  '@babel/standalone@7.25.7': {}
+
+  '@babel/template@7.25.7':
+    dependencies:
+      '@babel/code-frame': 7.25.7
+      '@babel/parser': 7.25.7
+      '@babel/types': 7.25.7
+
+  '@babel/traverse@7.25.7':
+    dependencies:
+      '@babel/code-frame': 7.25.7
+      '@babel/generator': 7.25.7
+      '@babel/parser': 7.25.7
+      '@babel/template': 7.25.7
+      '@babel/types': 7.25.7
+      debug: 4.3.7
+      globals: 11.12.0
+    transitivePeerDependencies:
+      - supports-color
+
+  '@babel/types@7.25.7':
+    dependencies:
+      '@babel/helper-string-parser': 7.25.7
+      '@babel/helper-validator-identifier': 7.25.7
+      to-fast-properties: 2.0.0
+
+  '@bcoe/v8-coverage@0.2.3': {}
+
+  '@esbuild/aix-ppc64@0.21.5':
+    optional: true
+
+  '@esbuild/aix-ppc64@0.24.0':
+    optional: true
+
+  '@esbuild/android-arm64@0.21.5':
+    optional: true
+
+  '@esbuild/android-arm64@0.24.0':
+    optional: true
+
+  '@esbuild/android-arm@0.21.5':
+    optional: true
+
+  '@esbuild/android-arm@0.24.0':
+    optional: true
+
+  '@esbuild/android-x64@0.21.5':
+    optional: true
+
+  '@esbuild/android-x64@0.24.0':
+    optional: true
+
+  '@esbuild/darwin-arm64@0.21.5':
+    optional: true
+
+  '@esbuild/darwin-arm64@0.24.0':
+    optional: true
+
+  '@esbuild/darwin-x64@0.21.5':
+    optional: true
+
+  '@esbuild/darwin-x64@0.24.0':
+    optional: true
+
+  '@esbuild/freebsd-arm64@0.21.5':
+    optional: true
+
+  '@esbuild/freebsd-arm64@0.24.0':
+    optional: true
+
+  '@esbuild/freebsd-x64@0.21.5':
+    optional: true
+
+  '@esbuild/freebsd-x64@0.24.0':
+    optional: true
+
+  '@esbuild/linux-arm64@0.21.5':
+    optional: true
+
+  '@esbuild/linux-arm64@0.24.0':
+    optional: true
+
+  '@esbuild/linux-arm@0.21.5':
+    optional: true
+
+  '@esbuild/linux-arm@0.24.0':
+    optional: true
+
+  '@esbuild/linux-ia32@0.21.5':
+    optional: true
+
+  '@esbuild/linux-ia32@0.24.0':
+    optional: true
+
+  '@esbuild/linux-loong64@0.21.5':
+    optional: true
+
+  '@esbuild/linux-loong64@0.24.0':
+    optional: true
+
+  '@esbuild/linux-mips64el@0.21.5':
+    optional: true
+
+  '@esbuild/linux-mips64el@0.24.0':
+    optional: true
+
+  '@esbuild/linux-ppc64@0.21.5':
+    optional: true
+
+  '@esbuild/linux-ppc64@0.24.0':
+    optional: true
+
+  '@esbuild/linux-riscv64@0.21.5':
+    optional: true
+
+  '@esbuild/linux-riscv64@0.24.0':
+    optional: true
+
+  '@esbuild/linux-s390x@0.21.5':
+    optional: true
+
+  '@esbuild/linux-s390x@0.24.0':
+    optional: true
+
+  '@esbuild/linux-x64@0.21.5':
+    optional: true
+
+  '@esbuild/linux-x64@0.24.0':
+    optional: true
+
+  '@esbuild/netbsd-x64@0.21.5':
+    optional: true
+
+  '@esbuild/netbsd-x64@0.24.0':
+    optional: true
+
+  '@esbuild/openbsd-arm64@0.24.0':
+    optional: true
+
+  '@esbuild/openbsd-x64@0.21.5':
+    optional: true
+
+  '@esbuild/openbsd-x64@0.24.0':
+    optional: true
+
+  '@esbuild/sunos-x64@0.21.5':
+    optional: true
+
+  '@esbuild/sunos-x64@0.24.0':
+    optional: true
+
+  '@esbuild/win32-arm64@0.21.5':
+    optional: true
+
+  '@esbuild/win32-arm64@0.24.0':
+    optional: true
+
+  '@esbuild/win32-ia32@0.21.5':
+    optional: true
+
+  '@esbuild/win32-ia32@0.24.0':
+    optional: true
+
+  '@esbuild/win32-x64@0.21.5':
+    optional: true
+
+  '@esbuild/win32-x64@0.24.0':
+    optional: true
+
+  '@eslint-community/eslint-utils@4.4.0(eslint@9.12.0(jiti@2.3.3))':
+    dependencies:
+      eslint: 9.12.0(jiti@2.3.3)
+      eslint-visitor-keys: 3.4.3
+
+  '@eslint-community/regexpp@4.11.1': {}
+
+  '@eslint/config-array@0.18.0':
+    dependencies:
+      '@eslint/object-schema': 2.1.4
+      debug: 4.3.7
+      minimatch: 3.1.2
+    transitivePeerDependencies:
+      - supports-color
+
+  '@eslint/core@0.6.0': {}
+
+  '@eslint/eslintrc@3.1.0':
+    dependencies:
+      ajv: 6.12.6
+      debug: 4.3.7
+      espree: 10.2.0
+      globals: 14.0.0
+      ignore: 5.3.2
+      import-fresh: 3.3.0
+      js-yaml: 4.1.0
+      minimatch: 3.1.2
+      strip-json-comments: 3.1.1
+    transitivePeerDependencies:
+      - supports-color
+
+  '@eslint/js@9.12.0': {}
+
+  '@eslint/object-schema@2.1.4': {}
+
+  '@eslint/plugin-kit@0.2.0':
+    dependencies:
+      levn: 0.4.1
+
+  '@humanfs/core@0.19.0': {}
+
+  '@humanfs/node@0.16.5':
+    dependencies:
+      '@humanfs/core': 0.19.0
+      '@humanwhocodes/retry': 0.3.1
+
+  '@humanwhocodes/module-importer@1.0.1': {}
+
+  '@humanwhocodes/retry@0.3.1': {}
+
+  '@hutson/parse-repository-url@3.0.2': {}
+
+  '@isaacs/cliui@8.0.2':
+    dependencies:
+      string-width: 5.1.2
+      string-width-cjs: string-width@4.2.3
+      strip-ansi: 7.1.0
+      strip-ansi-cjs: strip-ansi@6.0.1
+      wrap-ansi: 8.1.0
+      wrap-ansi-cjs: wrap-ansi@7.0.0
+
+  '@istanbuljs/schema@0.1.3': {}
+
+  '@jridgewell/gen-mapping@0.3.5':
+    dependencies:
+      '@jridgewell/set-array': 1.2.1
+      '@jridgewell/sourcemap-codec': 1.5.0
+      '@jridgewell/trace-mapping': 0.3.25
+
+  '@jridgewell/resolve-uri@3.1.2': {}
+
+  '@jridgewell/set-array@1.2.1': {}
+
+  '@jridgewell/source-map@0.3.6':
+    dependencies:
+      '@jridgewell/gen-mapping': 0.3.5
+      '@jridgewell/trace-mapping': 0.3.25
+    optional: true
+
+  '@jridgewell/sourcemap-codec@1.5.0': {}
+
+  '@jridgewell/trace-mapping@0.3.25':
+    dependencies:
+      '@jridgewell/resolve-uri': 3.1.2
+      '@jridgewell/sourcemap-codec': 1.5.0
+
+  '@nodelib/fs.scandir@2.1.5':
+    dependencies:
+      '@nodelib/fs.stat': 2.0.5
+      run-parallel: 1.2.0
+
+  '@nodelib/fs.stat@2.0.5': {}
+
+  '@nodelib/fs.walk@1.2.8':
+    dependencies:
+      '@nodelib/fs.scandir': 2.1.5
+      fastq: 1.17.1
+
+  '@pkgjs/parseargs@0.11.0':
+    optional: true
+
+  '@rollup/plugin-alias@5.1.1(rollup@4.24.0)':
+    optionalDependencies:
+      rollup: 4.24.0
+
+  '@rollup/plugin-commonjs@28.0.0(rollup@4.24.0)':
+    dependencies:
+      '@rollup/pluginutils': 5.1.2(rollup@4.24.0)
+      commondir: 1.0.1
+      estree-walker: 2.0.2
+      fdir: 6.4.0(picomatch@2.3.1)
+      is-reference: 1.2.1
+      magic-string: 0.30.11
+      picomatch: 2.3.1
+    optionalDependencies:
+      rollup: 4.24.0
+
+  '@rollup/plugin-json@6.1.0(rollup@4.24.0)':
+    dependencies:
+      '@rollup/pluginutils': 5.1.2(rollup@4.24.0)
+    optionalDependencies:
+      rollup: 4.24.0
+
+  '@rollup/plugin-node-resolve@15.3.0(rollup@4.24.0)':
+    dependencies:
+      '@rollup/pluginutils': 5.1.2(rollup@4.24.0)
+      '@types/resolve': 1.20.2
+      deepmerge: 4.3.1
+      is-module: 1.0.0
+      resolve: 1.22.8
+    optionalDependencies:
+      rollup: 4.24.0
+
+  '@rollup/plugin-replace@6.0.1(rollup@4.24.0)':
+    dependencies:
+      '@rollup/pluginutils': 5.1.2(rollup@4.24.0)
+      magic-string: 0.30.11
+    optionalDependencies:
+      rollup: 4.24.0
+
+  '@rollup/pluginutils@5.1.2(rollup@4.24.0)':
+    dependencies:
+      '@types/estree': 1.0.6
+      estree-walker: 2.0.2
+      picomatch: 2.3.1
+    optionalDependencies:
+      rollup: 4.24.0
+
+  '@rollup/rollup-android-arm-eabi@4.24.0':
+    optional: true
+
+  '@rollup/rollup-android-arm64@4.24.0':
+    optional: true
+
+  '@rollup/rollup-darwin-arm64@4.24.0':
+    optional: true
+
+  '@rollup/rollup-darwin-x64@4.24.0':
+    optional: true
+
+  '@rollup/rollup-linux-arm-gnueabihf@4.24.0':
+    optional: true
+
+  '@rollup/rollup-linux-arm-musleabihf@4.24.0':
+    optional: true
+
+  '@rollup/rollup-linux-arm64-gnu@4.24.0':
+    optional: true
+
+  '@rollup/rollup-linux-arm64-musl@4.24.0':
+    optional: true
+
+  '@rollup/rollup-linux-powerpc64le-gnu@4.24.0':
+    optional: true
+
+  '@rollup/rollup-linux-riscv64-gnu@4.24.0':
+    optional: true
+
+  '@rollup/rollup-linux-s390x-gnu@4.24.0':
+    optional: true
+
+  '@rollup/rollup-linux-x64-gnu@4.24.0':
+    optional: true
+
+  '@rollup/rollup-linux-x64-musl@4.24.0':
+    optional: true
+
+  '@rollup/rollup-win32-arm64-msvc@4.24.0':
+    optional: true
+
+  '@rollup/rollup-win32-ia32-msvc@4.24.0':
+    optional: true
+
+  '@rollup/rollup-win32-x64-msvc@4.24.0':
+    optional: true
+
+  '@shikijs/core@1.21.1':
+    dependencies:
+      '@shikijs/engine-javascript': 1.21.1
+      '@shikijs/engine-oniguruma': 1.21.1
+      '@shikijs/types': 1.21.1
+      '@shikijs/vscode-textmate': 9.3.0
+      '@types/hast': 3.0.4
+      hast-util-to-html: 9.0.3
+
+  '@shikijs/engine-javascript@1.21.1':
+    dependencies:
+      '@shikijs/types': 1.21.1
+      '@shikijs/vscode-textmate': 9.3.0
+      oniguruma-to-js: 0.4.3
+
+  '@shikijs/engine-oniguruma@1.21.1':
+    dependencies:
+      '@shikijs/types': 1.21.1
+      '@shikijs/vscode-textmate': 9.3.0
+
+  '@shikijs/types@1.21.1':
+    dependencies:
+      '@shikijs/vscode-textmate': 9.3.0
+      '@types/hast': 3.0.4
+
+  '@shikijs/vscode-textmate@9.3.0': {}
+
+  '@stylistic/eslint-plugin@2.9.0(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.2)':
+    dependencies:
+      '@typescript-eslint/utils': 8.8.0(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.2)
+      eslint: 9.12.0(jiti@2.3.3)
+      eslint-visitor-keys: 4.1.0
+      espree: 10.2.0
+      estraverse: 5.3.0
+      picomatch: 4.0.2
+    transitivePeerDependencies:
+      - supports-color
+      - typescript
+
+  '@trysound/sax@0.2.0': {}
+
+  '@types/estree@1.0.6': {}
+
+  '@types/hast@3.0.4':
+    dependencies:
+      '@types/unist': 3.0.3
+
+  '@types/json-schema@7.0.15': {}
+
+  '@types/mdast@4.0.4':
+    dependencies:
+      '@types/unist': 3.0.3
+
+  '@types/minimist@1.2.5': {}
+
+  '@types/node@22.7.4':
+    dependencies:
+      undici-types: 6.19.8
+
+  '@types/normalize-package-data@2.4.4': {}
+
+  '@types/resolve@1.20.2': {}
+
+  '@types/unist@3.0.3': {}
+
+  '@typescript-eslint/eslint-plugin@8.8.1(@typescript-eslint/parser@8.8.1(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.2))(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.2)':
+    dependencies:
+      '@eslint-community/regexpp': 4.11.1
+      '@typescript-eslint/parser': 8.8.1(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.2)
+      '@typescript-eslint/scope-manager': 8.8.1
+      '@typescript-eslint/type-utils': 8.8.1(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.2)
+      '@typescript-eslint/utils': 8.8.1(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.2)
+      '@typescript-eslint/visitor-keys': 8.8.1
+      eslint: 9.12.0(jiti@2.3.3)
+      graphemer: 1.4.0
+      ignore: 5.3.2
+      natural-compare: 1.4.0
+      ts-api-utils: 1.3.0(typescript@5.6.2)
+    optionalDependencies:
+      typescript: 5.6.2
+    transitivePeerDependencies:
+      - supports-color
+
+  '@typescript-eslint/parser@8.8.1(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.2)':
+    dependencies:
+      '@typescript-eslint/scope-manager': 8.8.1
+      '@typescript-eslint/types': 8.8.1
+      '@typescript-eslint/typescript-estree': 8.8.1(typescript@5.6.2)
+      '@typescript-eslint/visitor-keys': 8.8.1
+      debug: 4.3.7
+      eslint: 9.12.0(jiti@2.3.3)
+    optionalDependencies:
+      typescript: 5.6.2
+    transitivePeerDependencies:
+      - supports-color
+
+  '@typescript-eslint/scope-manager@8.8.0':
+    dependencies:
+      '@typescript-eslint/types': 8.8.0
+      '@typescript-eslint/visitor-keys': 8.8.0
+
+  '@typescript-eslint/scope-manager@8.8.1':
+    dependencies:
+      '@typescript-eslint/types': 8.8.1
+      '@typescript-eslint/visitor-keys': 8.8.1
+
+  '@typescript-eslint/type-utils@8.8.1(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.2)':
+    dependencies:
+      '@typescript-eslint/typescript-estree': 8.8.1(typescript@5.6.2)
+      '@typescript-eslint/utils': 8.8.1(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.2)
+      debug: 4.3.7
+      ts-api-utils: 1.3.0(typescript@5.6.2)
+    optionalDependencies:
+      typescript: 5.6.2
+    transitivePeerDependencies:
+      - eslint
+      - supports-color
+
+  '@typescript-eslint/types@8.8.0': {}
+
+  '@typescript-eslint/types@8.8.1': {}
+
+  '@typescript-eslint/typescript-estree@8.8.0(typescript@5.6.2)':
+    dependencies:
+      '@typescript-eslint/types': 8.8.0
+      '@typescript-eslint/visitor-keys': 8.8.0
+      debug: 4.3.7
+      fast-glob: 3.3.2
+      is-glob: 4.0.3
+      minimatch: 9.0.5
+      semver: 7.6.3
+      ts-api-utils: 1.3.0(typescript@5.6.2)
+    optionalDependencies:
+      typescript: 5.6.2
+    transitivePeerDependencies:
+      - supports-color
+
+  '@typescript-eslint/typescript-estree@8.8.1(typescript@5.6.2)':
+    dependencies:
+      '@typescript-eslint/types': 8.8.1
+      '@typescript-eslint/visitor-keys': 8.8.1
+      debug: 4.3.7
+      fast-glob: 3.3.2
+      is-glob: 4.0.3
+      minimatch: 9.0.5
+      semver: 7.6.3
+      ts-api-utils: 1.3.0(typescript@5.6.2)
+    optionalDependencies:
+      typescript: 5.6.2
+    transitivePeerDependencies:
+      - supports-color
+
+  '@typescript-eslint/utils@8.8.0(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.2)':
+    dependencies:
+      '@eslint-community/eslint-utils': 4.4.0(eslint@9.12.0(jiti@2.3.3))
+      '@typescript-eslint/scope-manager': 8.8.0
+      '@typescript-eslint/types': 8.8.0
+      '@typescript-eslint/typescript-estree': 8.8.0(typescript@5.6.2)
+      eslint: 9.12.0(jiti@2.3.3)
+    transitivePeerDependencies:
+      - supports-color
+      - typescript
+
+  '@typescript-eslint/utils@8.8.1(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.2)':
+    dependencies:
+      '@eslint-community/eslint-utils': 4.4.0(eslint@9.12.0(jiti@2.3.3))
+      '@typescript-eslint/scope-manager': 8.8.1
+      '@typescript-eslint/types': 8.8.1
+      '@typescript-eslint/typescript-estree': 8.8.1(typescript@5.6.2)
+      eslint: 9.12.0(jiti@2.3.3)
+    transitivePeerDependencies:
+      - supports-color
+      - typescript
+
+  '@typescript-eslint/visitor-keys@8.8.0':
+    dependencies:
+      '@typescript-eslint/types': 8.8.0
+      eslint-visitor-keys: 3.4.3
+
+  '@typescript-eslint/visitor-keys@8.8.1':
+    dependencies:
+      '@typescript-eslint/types': 8.8.1
+      eslint-visitor-keys: 3.4.3
+
+  '@ungap/structured-clone@1.2.0': {}
+
+  '@vitest/coverage-v8@2.1.2(vitest@2.1.2(@types/node@22.7.4)(terser@5.34.1))':
+    dependencies:
+      '@ampproject/remapping': 2.3.0
+      '@bcoe/v8-coverage': 0.2.3
+      debug: 4.3.7
+      istanbul-lib-coverage: 3.2.2
+      istanbul-lib-report: 3.0.1
+      istanbul-lib-source-maps: 5.0.6
+      istanbul-reports: 3.1.7
+      magic-string: 0.30.11
+      magicast: 0.3.5
+      std-env: 3.7.0
+      test-exclude: 7.0.1
+      tinyrainbow: 1.2.0
+      vitest: 2.1.2(@types/node@22.7.4)(terser@5.34.1)
+    transitivePeerDependencies:
+      - supports-color
+
+  '@vitest/expect@2.1.2':
+    dependencies:
+      '@vitest/spy': 2.1.2
+      '@vitest/utils': 2.1.2
+      chai: 5.1.1
+      tinyrainbow: 1.2.0
+
+  '@vitest/mocker@2.1.2(@vitest/spy@2.1.2)(vite@5.4.8(@types/node@22.7.4)(terser@5.34.1))':
     dependencies:
-      '@typescript-eslint/typescript-estree': 5.42.1_typescript@4.8.4
-      '@typescript-eslint/utils': 5.42.1_rmayb2veg2btbq6mbmnyivgasy
-      debug: 4.3.4
-      eslint: 8.27.0
-      tsutils: 3.21.0_typescript@4.8.4
-      typescript: 4.8.4
-    transitivePeerDependencies:
-      - supports-color
-    dev: true
+      '@vitest/spy': 2.1.2
+      estree-walker: 3.0.3
+      magic-string: 0.30.11
+    optionalDependencies:
+      vite: 5.4.8(@types/node@22.7.4)(terser@5.34.1)
 
-  /@typescript-eslint/types/5.42.1:
-    resolution: {integrity: sha512-Qrco9dsFF5lhalz+lLFtxs3ui1/YfC6NdXu+RAGBa8uSfn01cjO7ssCsjIsUs484vny9Xm699FSKwpkCcqwWwA==}
-    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
-    dev: true
+  '@vitest/pretty-format@2.1.2':
+    dependencies:
+      tinyrainbow: 1.2.0
 
-  /@typescript-eslint/typescript-estree/5.42.1_typescript@4.8.4:
-    resolution: {integrity: sha512-qElc0bDOuO0B8wDhhW4mYVgi/LZL+igPwXtV87n69/kYC/7NG3MES0jHxJNCr4EP7kY1XVsRy8C/u3DYeTKQmw==}
-    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
-    peerDependencies:
-      typescript: '*'
-    peerDependenciesMeta:
-      typescript:
-        optional: true
+  '@vitest/runner@2.1.2':
     dependencies:
-      '@typescript-eslint/types': 5.42.1
-      '@typescript-eslint/visitor-keys': 5.42.1
-      debug: 4.3.4
-      globby: 11.1.0
-      is-glob: 4.0.3
-      semver: 7.3.8
-      tsutils: 3.21.0_typescript@4.8.4
-      typescript: 4.8.4
-    transitivePeerDependencies:
-      - supports-color
-    dev: true
+      '@vitest/utils': 2.1.2
+      pathe: 1.1.2
 
-  /@typescript-eslint/utils/5.42.1_rmayb2veg2btbq6mbmnyivgasy:
-    resolution: {integrity: sha512-Gxvf12xSp3iYZd/fLqiQRD4uKZjDNR01bQ+j8zvhPjpsZ4HmvEFL/tC4amGNyxN9Rq+iqvpHLhlqx6KTxz9ZyQ==}
-    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
-    peerDependencies:
-      eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
-    dependencies:
-      '@types/json-schema': 7.0.11
-      '@types/semver': 7.3.13
-      '@typescript-eslint/scope-manager': 5.42.1
-      '@typescript-eslint/types': 5.42.1
-      '@typescript-eslint/typescript-estree': 5.42.1_typescript@4.8.4
-      eslint: 8.27.0
-      eslint-scope: 5.1.1
-      eslint-utils: 3.0.0_eslint@8.27.0
-      semver: 7.3.8
-    transitivePeerDependencies:
-      - supports-color
-      - typescript
-    dev: true
+  '@vitest/snapshot@2.1.2':
+    dependencies:
+      '@vitest/pretty-format': 2.1.2
+      magic-string: 0.30.11
+      pathe: 1.1.2
 
-  /@typescript-eslint/visitor-keys/5.42.1:
-    resolution: {integrity: sha512-LOQtSF4z+hejmpUvitPlc4hA7ERGoj2BVkesOcG91HCn8edLGUXbTrErmutmPbl8Bo9HjAvOO/zBKQHExXNA2A==}
-    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+  '@vitest/spy@2.1.2':
     dependencies:
-      '@typescript-eslint/types': 5.42.1
-      eslint-visitor-keys: 3.3.0
-    dev: true
+      tinyspy: 3.0.2
 
-  /JSONStream/1.3.5:
-    resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==}
-    hasBin: true
+  '@vitest/utils@2.1.2':
+    dependencies:
+      '@vitest/pretty-format': 2.1.2
+      loupe: 3.1.1
+      tinyrainbow: 1.2.0
+
+  JSONStream@1.3.5:
     dependencies:
       jsonparse: 1.3.1
       through: 2.3.8
-    dev: true
 
-  /acorn-jsx/5.3.2_acorn@8.8.1:
-    resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
-    peerDependencies:
-      acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
+  acorn-jsx@5.3.2(acorn@8.12.1):
     dependencies:
-      acorn: 8.8.1
-    dev: true
+      acorn: 8.12.1
 
-  /acorn-walk/8.2.0:
-    resolution: {integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==}
-    engines: {node: '>=0.4.0'}
-    dev: true
-
-  /acorn/8.8.1:
-    resolution: {integrity: sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==}
-    engines: {node: '>=0.4.0'}
-    hasBin: true
-    dev: true
+  acorn@8.12.1: {}
 
-  /add-stream/1.0.0:
-    resolution: {integrity: sha512-qQLMr+8o0WC4FZGQTcJiKBVC59JylcPSrTtk6usvmIDFUOCKegapy1VHQwRbFMOFyb/inzUVqHs+eMYKDM1YeQ==}
-    dev: true
+  add-stream@1.0.0: {}
 
-  /ajv/6.12.6:
-    resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}
+  ajv@6.12.6:
     dependencies:
       fast-deep-equal: 3.1.3
       fast-json-stable-stringify: 2.1.0
       json-schema-traverse: 0.4.1
       uri-js: 4.4.1
-    dev: true
 
-  /ansi-escapes/4.3.2:
-    resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==}
-    engines: {node: '>=8'}
-    dependencies:
-      type-fest: 0.21.3
-    dev: true
+  ansi-regex@5.0.1: {}
 
-  /ansi-regex/5.0.1:
-    resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
-    engines: {node: '>=8'}
-    dev: true
+  ansi-regex@6.1.0: {}
 
-  /ansi-styles/3.2.1:
-    resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==}
-    engines: {node: '>=4'}
+  ansi-styles@3.2.1:
     dependencies:
       color-convert: 1.9.3
-    dev: true
 
-  /ansi-styles/4.3.0:
-    resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
-    engines: {node: '>=8'}
+  ansi-styles@4.3.0:
     dependencies:
       color-convert: 2.0.1
-    dev: true
 
-  /ansi-styles/5.2.0:
-    resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==}
-    engines: {node: '>=10'}
-    dev: true
+  ansi-styles@6.2.1: {}
 
-  /anymatch/3.1.2:
-    resolution: {integrity: sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==}
-    engines: {node: '>= 8'}
+  anymatch@3.1.3:
     dependencies:
       normalize-path: 3.0.0
       picomatch: 2.3.1
-    dev: true
-
-  /arg/4.1.3:
-    resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==}
-    dev: true
-
-  /argparse/1.0.10:
-    resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==}
-    dependencies:
-      sprintf-js: 1.0.3
-    dev: true
-
-  /argparse/2.0.1:
-    resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
-    dev: true
 
-  /array-ify/1.0.0:
-    resolution: {integrity: sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==}
-    dev: true
+  argparse@2.0.1: {}
 
-  /array-union/2.1.0:
-    resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==}
-    engines: {node: '>=8'}
-    dev: true
+  array-ify@1.0.0: {}
 
-  /arrify/1.0.1:
-    resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==}
-    engines: {node: '>=0.10.0'}
-    dev: true
+  arrify@1.0.1: {}
 
-  /babel-jest/29.3.1_@babel+core@7.20.2:
-    resolution: {integrity: sha512-aard+xnMoxgjwV70t0L6wkW/3HQQtV+O0PEimxKgzNqCJnbYmroPojdP2tqKSOAt8QAKV/uSZU8851M7B5+fcA==}
-    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-    peerDependencies:
-      '@babel/core': ^7.8.0
-    dependencies:
-      '@babel/core': 7.20.2
-      '@jest/transform': 29.3.1
-      '@types/babel__core': 7.1.20
-      babel-plugin-istanbul: 6.1.1
-      babel-preset-jest: 29.2.0_@babel+core@7.20.2
-      chalk: 4.1.2
-      graceful-fs: 4.2.10
-      slash: 3.0.0
-    transitivePeerDependencies:
-      - supports-color
-    dev: true
+  assertion-error@2.0.1: {}
 
-  /babel-plugin-istanbul/6.1.1:
-    resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==}
-    engines: {node: '>=8'}
+  autoprefixer@10.4.20(postcss@8.4.47):
     dependencies:
-      '@babel/helper-plugin-utils': 7.20.2
-      '@istanbuljs/load-nyc-config': 1.1.0
-      '@istanbuljs/schema': 0.1.3
-      istanbul-lib-instrument: 5.2.1
-      test-exclude: 6.0.0
-    transitivePeerDependencies:
-      - supports-color
-    dev: true
+      browserslist: 4.24.0
+      caniuse-lite: 1.0.30001667
+      fraction.js: 4.3.7
+      normalize-range: 0.1.2
+      picocolors: 1.1.0
+      postcss: 8.4.47
+      postcss-value-parser: 4.2.0
 
-  /babel-plugin-jest-hoist/29.2.0:
-    resolution: {integrity: sha512-TnspP2WNiR3GLfCsUNHqeXw0RoQ2f9U5hQ5L3XFpwuO8htQmSrhh8qsB6vi5Yi8+kuynN1yjDjQsPfkebmB6ZA==}
-    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-    dependencies:
-      '@babel/template': 7.18.10
-      '@babel/types': 7.20.2
-      '@types/babel__core': 7.1.20
-      '@types/babel__traverse': 7.18.2
-    dev: true
+  balanced-match@1.0.2: {}
 
-  /babel-preset-current-node-syntax/1.0.1_@babel+core@7.20.2:
-    resolution: {integrity: sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==}
-    peerDependencies:
-      '@babel/core': ^7.0.0
-    dependencies:
-      '@babel/core': 7.20.2
-      '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.20.2
-      '@babel/plugin-syntax-bigint': 7.8.3_@babel+core@7.20.2
-      '@babel/plugin-syntax-class-properties': 7.12.13_@babel+core@7.20.2
-      '@babel/plugin-syntax-import-meta': 7.10.4_@babel+core@7.20.2
-      '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.20.2
-      '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.20.2
-      '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.20.2
-      '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.20.2
-      '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.20.2
-      '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.20.2
-      '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.20.2
-      '@babel/plugin-syntax-top-level-await': 7.14.5_@babel+core@7.20.2
-    dev: true
-
-  /babel-preset-jest/29.2.0_@babel+core@7.20.2:
-    resolution: {integrity: sha512-z9JmMJppMxNv8N7fNRHvhMg9cvIkMxQBXgFkane3yKVEvEOP+kB50lk8DFRvF9PGqbyXxlmebKWhuDORO8RgdA==}
-    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-    peerDependencies:
-      '@babel/core': ^7.0.0
-    dependencies:
-      '@babel/core': 7.20.2
-      babel-plugin-jest-hoist: 29.2.0
-      babel-preset-current-node-syntax: 1.0.1_@babel+core@7.20.2
-    dev: true
+  binary-extensions@2.3.0: {}
 
-  /balanced-match/1.0.2:
-    resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
-    dev: true
+  boolbase@1.0.0: {}
 
-  /brace-expansion/1.1.11:
-    resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
+  brace-expansion@1.1.11:
     dependencies:
       balanced-match: 1.0.2
       concat-map: 0.0.1
-    dev: true
 
-  /brace-expansion/2.0.1:
-    resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==}
+  brace-expansion@2.0.1:
     dependencies:
       balanced-match: 1.0.2
-    dev: true
 
-  /braces/3.0.2:
-    resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==}
-    engines: {node: '>=8'}
+  braces@3.0.3:
     dependencies:
-      fill-range: 7.0.1
-    dev: true
+      fill-range: 7.1.1
 
-  /browserslist/4.21.4:
-    resolution: {integrity: sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==}
-    engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
-    hasBin: true
+  browserslist@4.24.0:
     dependencies:
-      caniuse-lite: 1.0.30001431
-      electron-to-chromium: 1.4.284
-      node-releases: 2.0.6
-      update-browserslist-db: 1.0.10_browserslist@4.21.4
-    dev: true
+      caniuse-lite: 1.0.30001667
+      electron-to-chromium: 1.5.33
+      node-releases: 2.0.18
+      update-browserslist-db: 1.1.1(browserslist@4.24.0)
 
-  /bs-logger/0.2.6:
-    resolution: {integrity: sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==}
-    engines: {node: '>= 6'}
-    dependencies:
-      fast-json-stable-stringify: 2.1.0
-    dev: true
+  buffer-from@1.1.2: {}
 
-  /bser/2.1.1:
-    resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==}
+  bundle-name@4.1.0:
     dependencies:
-      node-int64: 0.4.0
-    dev: true
+      run-applescript: 7.0.0
 
-  /buffer-from/1.1.2:
-    resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==}
-    dev: true
+  c12@1.11.2(magicast@0.3.5):
+    dependencies:
+      chokidar: 3.6.0
+      confbox: 0.1.8
+      defu: 6.1.4
+      dotenv: 16.4.5
+      giget: 1.2.3
+      jiti: 1.21.6
+      mlly: 1.7.2
+      ohash: 1.1.4
+      pathe: 1.1.2
+      perfect-debounce: 1.0.0
+      pkg-types: 1.2.0
+      rc9: 2.1.2
+    optionalDependencies:
+      magicast: 0.3.5
 
-  /builtin-modules/3.3.0:
-    resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==}
-    engines: {node: '>=6'}
-    dev: true
+  cac@6.7.14: {}
 
-  /callsites/3.1.0:
-    resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
-    engines: {node: '>=6'}
-    dev: true
+  callsites@3.1.0: {}
 
-  /camelcase-keys/6.2.2:
-    resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==}
-    engines: {node: '>=8'}
+  camelcase-keys@6.2.2:
     dependencies:
       camelcase: 5.3.1
       map-obj: 4.3.0
       quick-lru: 4.0.1
-    dev: true
 
-  /camelcase/5.3.1:
-    resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==}
-    engines: {node: '>=6'}
-    dev: true
+  camelcase@5.3.1: {}
 
-  /camelcase/6.3.0:
-    resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==}
-    engines: {node: '>=10'}
-    dev: true
+  caniuse-api@3.0.0:
+    dependencies:
+      browserslist: 4.24.0
+      caniuse-lite: 1.0.30001667
+      lodash.memoize: 4.1.2
+      lodash.uniq: 4.5.0
 
-  /caniuse-lite/1.0.30001431:
-    resolution: {integrity: sha512-zBUoFU0ZcxpvSt9IU66dXVT/3ctO1cy4y9cscs1szkPlcWb6pasYM144GqrUygUbT+k7cmUCW61cvskjcv0enQ==}
-    dev: true
+  caniuse-lite@1.0.30001667: {}
 
-  /chalk/2.4.2:
-    resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==}
-    engines: {node: '>=4'}
+  ccount@2.0.1: {}
+
+  chai@5.1.1:
+    dependencies:
+      assertion-error: 2.0.1
+      check-error: 2.1.1
+      deep-eql: 5.0.2
+      loupe: 3.1.1
+      pathval: 2.0.0
+
+  chalk@2.4.2:
     dependencies:
       ansi-styles: 3.2.1
       escape-string-regexp: 1.0.5
       supports-color: 5.5.0
-    dev: true
 
-  /chalk/4.1.2:
-    resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
-    engines: {node: '>=10'}
+  chalk@4.1.2:
     dependencies:
       ansi-styles: 4.3.0
       supports-color: 7.2.0
-    dev: true
 
-  /char-regex/1.0.2:
-    resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==}
-    engines: {node: '>=10'}
-    dev: true
+  changelogen@0.5.7(magicast@0.3.5):
+    dependencies:
+      c12: 1.11.2(magicast@0.3.5)
+      colorette: 2.0.20
+      consola: 3.2.3
+      convert-gitmoji: 0.1.5
+      mri: 1.2.0
+      node-fetch-native: 1.6.4
+      ofetch: 1.4.0
+      open: 10.1.0
+      pathe: 1.1.2
+      pkg-types: 1.2.0
+      scule: 1.3.0
+      semver: 7.6.3
+      std-env: 3.7.0
+      yaml: 2.5.1
+    transitivePeerDependencies:
+      - magicast
 
-  /ci-info/3.6.1:
-    resolution: {integrity: sha512-up5ggbaDqOqJ4UqLKZ2naVkyqSJQgJi5lwD6b6mM748ysrghDBX0bx/qJTUHzw7zu6Mq4gycviSF5hJnwceD8w==}
-    engines: {node: '>=8'}
-    dev: true
+  character-entities-html4@2.1.0: {}
 
-  /cjs-module-lexer/1.2.2:
-    resolution: {integrity: sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==}
-    dev: true
+  character-entities-legacy@3.0.0: {}
 
-  /cliui/7.0.4:
-    resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==}
+  check-error@2.1.1: {}
+
+  chokidar@3.6.0:
     dependencies:
-      string-width: 4.2.3
-      strip-ansi: 6.0.1
-      wrap-ansi: 7.0.0
-    dev: true
+      anymatch: 3.1.3
+      braces: 3.0.3
+      glob-parent: 5.1.2
+      is-binary-path: 2.1.0
+      is-glob: 4.0.3
+      normalize-path: 3.0.0
+      readdirp: 3.6.0
+    optionalDependencies:
+      fsevents: 2.3.3
 
-  /cliui/8.0.1:
-    resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==}
-    engines: {node: '>=12'}
+  chownr@2.0.0: {}
+
+  citty@0.1.6:
+    dependencies:
+      consola: 3.2.3
+
+  cliui@7.0.4:
     dependencies:
       string-width: 4.2.3
       strip-ansi: 6.0.1
       wrap-ansi: 7.0.0
-    dev: true
-
-  /co/4.6.0:
-    resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==}
-    engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'}
-    dev: true
-
-  /collect-v8-coverage/1.0.1:
-    resolution: {integrity: sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==}
-    dev: true
 
-  /color-convert/1.9.3:
-    resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==}
+  color-convert@1.9.3:
     dependencies:
       color-name: 1.1.3
-    dev: true
 
-  /color-convert/2.0.1:
-    resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
-    engines: {node: '>=7.0.0'}
+  color-convert@2.0.1:
     dependencies:
       color-name: 1.1.4
-    dev: true
 
-  /color-name/1.1.3:
-    resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==}
-    dev: true
+  color-name@1.1.3: {}
 
-  /color-name/1.1.4:
-    resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
-    dev: true
+  color-name@1.1.4: {}
 
-  /commander/2.20.3:
-    resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==}
-    dev: true
+  colord@2.9.3: {}
 
-  /commondir/1.0.1:
-    resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==}
-    dev: true
+  colorette@2.0.20: {}
 
-  /compare-func/2.0.0:
-    resolution: {integrity: sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==}
+  comma-separated-tokens@2.0.3: {}
+
+  commander@2.20.3:
+    optional: true
+
+  commander@7.2.0: {}
+
+  commondir@1.0.1: {}
+
+  compare-func@2.0.0:
     dependencies:
       array-ify: 1.0.0
       dot-prop: 5.3.0
-    dev: true
 
-  /concat-map/0.0.1:
-    resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=}
-    dev: true
+  concat-map@0.0.1: {}
 
-  /concat-stream/2.0.0:
-    resolution: {integrity: sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==}
-    engines: {'0': node >= 6.0}
+  concat-stream@2.0.0:
     dependencies:
       buffer-from: 1.1.2
       inherits: 2.0.4
-      readable-stream: 3.6.0
+      readable-stream: 3.6.2
       typedarray: 0.0.6
-    dev: true
 
-  /conventional-changelog-angular/5.0.13:
-    resolution: {integrity: sha512-i/gipMxs7s8L/QeuavPF2hLnJgH6pEZAttySB6aiQLWcX3puWDL3ACVmvBhJGxnAy52Qc15ua26BufY6KpmrVA==}
-    engines: {node: '>=10'}
+  confbox@0.1.8: {}
+
+  consola@3.2.3: {}
+
+  conventional-changelog-angular@5.0.13:
     dependencies:
       compare-func: 2.0.0
       q: 1.5.1
-    dev: true
 
-  /conventional-changelog-atom/2.0.8:
-    resolution: {integrity: sha512-xo6v46icsFTK3bb7dY/8m2qvc8sZemRgdqLb/bjpBsH2UyOS8rKNTgcb5025Hri6IpANPApbXMg15QLb1LJpBw==}
-    engines: {node: '>=10'}
+  conventional-changelog-atom@2.0.8:
     dependencies:
       q: 1.5.1
-    dev: true
 
-  /conventional-changelog-codemirror/2.0.8:
-    resolution: {integrity: sha512-z5DAsn3uj1Vfp7po3gpt2Boc+Bdwmw2++ZHa5Ak9k0UKsYAO5mH1UBTN0qSCuJZREIhX6WU4E1p3IW2oRCNzQw==}
-    engines: {node: '>=10'}
+  conventional-changelog-codemirror@2.0.8:
     dependencies:
       q: 1.5.1
-    dev: true
 
-  /conventional-changelog-config-spec/2.1.0:
-    resolution: {integrity: sha512-IpVePh16EbbB02V+UA+HQnnPIohgXvJRxHcS5+Uwk4AT5LjzCZJm5sp/yqs5C6KZJ1jMsV4paEV13BN1pvDuxQ==}
-    dev: true
+  conventional-changelog-config-spec@2.1.0: {}
 
-  /conventional-changelog-conventionalcommits/4.6.3:
-    resolution: {integrity: sha512-LTTQV4fwOM4oLPad317V/QNQ1FY4Hju5qeBIM1uTHbrnCE+Eg4CdRZ3gO2pUeR+tzWdp80M2j3qFFEDWVqOV4g==}
-    engines: {node: '>=10'}
+  conventional-changelog-conventionalcommits@4.6.3:
     dependencies:
       compare-func: 2.0.0
       lodash: 4.17.21
       q: 1.5.1
-    dev: true
 
-  /conventional-changelog-core/4.2.4:
-    resolution: {integrity: sha512-gDVS+zVJHE2v4SLc6B0sLsPiloR0ygU7HaDW14aNJE1v4SlqJPILPl/aJC7YdtRE4CybBf8gDwObBvKha8Xlyg==}
-    engines: {node: '>=10'}
+  conventional-changelog-core@4.2.4:
     dependencies:
       add-stream: 1.0.0
       conventional-changelog-writer: 5.0.1
@@ -1502,68 +3841,43 @@ packages:
       read-pkg: 3.0.0
       read-pkg-up: 3.0.0
       through2: 4.0.2
-    dev: true
 
-  /conventional-changelog-ember/2.0.9:
-    resolution: {integrity: sha512-ulzIReoZEvZCBDhcNYfDIsLTHzYHc7awh+eI44ZtV5cx6LVxLlVtEmcO+2/kGIHGtw+qVabJYjdI5cJOQgXh1A==}
-    engines: {node: '>=10'}
+  conventional-changelog-ember@2.0.9:
     dependencies:
       q: 1.5.1
-    dev: true
 
-  /conventional-changelog-eslint/3.0.9:
-    resolution: {integrity: sha512-6NpUCMgU8qmWmyAMSZO5NrRd7rTgErjrm4VASam2u5jrZS0n38V7Y9CzTtLT2qwz5xEChDR4BduoWIr8TfwvXA==}
-    engines: {node: '>=10'}
+  conventional-changelog-eslint@3.0.9:
     dependencies:
       q: 1.5.1
-    dev: true
 
-  /conventional-changelog-express/2.0.6:
-    resolution: {integrity: sha512-SDez2f3iVJw6V563O3pRtNwXtQaSmEfTCaTBPCqn0oG0mfkq0rX4hHBq5P7De2MncoRixrALj3u3oQsNK+Q0pQ==}
-    engines: {node: '>=10'}
+  conventional-changelog-express@2.0.6:
     dependencies:
       q: 1.5.1
-    dev: true
 
-  /conventional-changelog-jquery/3.0.11:
-    resolution: {integrity: sha512-x8AWz5/Td55F7+o/9LQ6cQIPwrCjfJQ5Zmfqi8thwUEKHstEn4kTIofXub7plf1xvFA2TqhZlq7fy5OmV6BOMw==}
-    engines: {node: '>=10'}
+  conventional-changelog-jquery@3.0.11:
     dependencies:
       q: 1.5.1
-    dev: true
 
-  /conventional-changelog-jshint/2.0.9:
-    resolution: {integrity: sha512-wMLdaIzq6TNnMHMy31hql02OEQ8nCQfExw1SE0hYL5KvU+JCTuPaDO+7JiogGT2gJAxiUGATdtYYfh+nT+6riA==}
-    engines: {node: '>=10'}
+  conventional-changelog-jshint@2.0.9:
     dependencies:
       compare-func: 2.0.0
       q: 1.5.1
-    dev: true
 
-  /conventional-changelog-preset-loader/2.3.4:
-    resolution: {integrity: sha512-GEKRWkrSAZeTq5+YjUZOYxdHq+ci4dNwHvpaBC3+ENalzFWuCWa9EZXSuZBpkr72sMdKB+1fyDV4takK1Lf58g==}
-    engines: {node: '>=10'}
-    dev: true
+  conventional-changelog-preset-loader@2.3.4: {}
 
-  /conventional-changelog-writer/5.0.1:
-    resolution: {integrity: sha512-5WsuKUfxW7suLblAbFnxAcrvf6r+0b7GvNaWUwUIk0bXMnENP/PEieGKVUQrjPqwPT4o3EPAASBXiY6iHooLOQ==}
-    engines: {node: '>=10'}
-    hasBin: true
+  conventional-changelog-writer@5.0.1:
     dependencies:
       conventional-commits-filter: 2.0.7
       dateformat: 3.0.3
-      handlebars: 4.7.7
+      handlebars: 4.7.8
       json-stringify-safe: 5.0.1
       lodash: 4.17.21
       meow: 8.1.2
-      semver: 6.3.0
+      semver: 6.3.1
       split: 1.0.1
       through2: 4.0.2
-    dev: true
 
-  /conventional-changelog/3.1.25:
-    resolution: {integrity: sha512-ryhi3fd1mKf3fSjbLXOfK2D06YwKNic1nC9mWqybBHdObPd8KJ2vjaXZfYj1U23t+V8T8n0d7gwnc9XbIdFbyQ==}
-    engines: {node: '>=10'}
+  conventional-changelog@3.1.25:
     dependencies:
       conventional-changelog-angular: 5.0.13
       conventional-changelog-atom: 2.0.8
@@ -1576,20 +3890,13 @@ packages:
       conventional-changelog-jquery: 3.0.11
       conventional-changelog-jshint: 2.0.9
       conventional-changelog-preset-loader: 2.3.4
-    dev: true
 
-  /conventional-commits-filter/2.0.7:
-    resolution: {integrity: sha512-ASS9SamOP4TbCClsRHxIHXRfcGCnIoQqkvAzCSbZzTFLfcTqJVugB0agRgsEELsqaeWgsXv513eS116wnlSSPA==}
-    engines: {node: '>=10'}
+  conventional-commits-filter@2.0.7:
     dependencies:
       lodash.ismatch: 4.4.0
       modify-values: 1.0.1
-    dev: true
 
-  /conventional-commits-parser/3.2.4:
-    resolution: {integrity: sha512-nK7sAtfi+QXbxHCYfhpZsfRtaitZLIA6889kFIouLvz6repszQDgxBu7wf2WbU+Dco7sAnNCJYERCwt54WPC2Q==}
-    engines: {node: '>=10'}
-    hasBin: true
+  conventional-commits-parser@3.2.4:
     dependencies:
       JSONStream: 1.3.5
       is-text-path: 1.0.1
@@ -1597,12 +3904,8 @@ packages:
       meow: 8.1.2
       split2: 3.2.2
       through2: 4.0.2
-    dev: true
 
-  /conventional-recommended-bump/6.1.0:
-    resolution: {integrity: sha512-uiApbSiNGM/kkdL9GTOLAqC4hbptObFo4wW2QRyHsKciGAfQuLU1ShZ1BIVI/+K2BE/W1AWYQMCXAsv4dyKPaw==}
-    engines: {node: '>=10'}
-    hasBin: true
+  conventional-recommended-bump@6.1.0:
     dependencies:
       concat-stream: 2.0.0
       conventional-changelog-preset-loader: 2.3.4
@@ -1612,1485 +3915,784 @@ packages:
       git-semver-tags: 4.1.1
       meow: 8.1.2
       q: 1.5.1
-    dev: true
-
-  /convert-source-map/1.9.0:
-    resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==}
-    dev: true
-
-  /convert-source-map/2.0.0:
-    resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==}
-    dev: true
 
-  /copyfiles/2.4.1:
-    resolution: {integrity: sha512-fereAvAvxDrQDOXybk3Qu3dPbOoKoysFMWtkY3mv5BsL8//OSZVL5DCLYqgRfY5cWirgRzlC+WSrxp6Bo3eNZg==}
-    hasBin: true
-    dependencies:
-      glob: 7.2.3
-      minimatch: 3.1.2
-      mkdirp: 1.0.4
-      noms: 0.0.0
-      through2: 2.0.5
-      untildify: 4.0.0
-      yargs: 16.2.0
-    dev: true
+  convert-gitmoji@0.1.5: {}
 
-  /core-util-is/1.0.3:
-    resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==}
-    dev: true
+  convert-source-map@2.0.0: {}
 
-  /create-require/1.1.1:
-    resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==}
-    dev: true
+  core-util-is@1.0.3: {}
 
-  /cross-spawn/7.0.3:
-    resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==}
-    engines: {node: '>= 8'}
+  cross-spawn@7.0.3:
     dependencies:
       path-key: 3.1.1
       shebang-command: 2.0.0
       which: 2.0.2
-    dev: true
 
-  /dargs/7.0.0:
-    resolution: {integrity: sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==}
-    engines: {node: '>=8'}
-    dev: true
+  css-declaration-sorter@7.2.0(postcss@8.4.47):
+    dependencies:
+      postcss: 8.4.47
 
-  /dateformat/3.0.3:
-    resolution: {integrity: sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==}
-    dev: true
+  css-select@5.1.0:
+    dependencies:
+      boolbase: 1.0.0
+      css-what: 6.1.0
+      domhandler: 5.0.3
+      domutils: 3.1.0
+      nth-check: 2.1.1
 
-  /debug/4.3.4:
-    resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==}
-    engines: {node: '>=6.0'}
-    peerDependencies:
-      supports-color: '*'
-    peerDependenciesMeta:
-      supports-color:
-        optional: true
+  css-tree@2.2.1:
     dependencies:
-      ms: 2.1.2
-    dev: true
+      mdn-data: 2.0.28
+      source-map-js: 1.2.1
 
-  /decamelize-keys/1.1.1:
-    resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==}
-    engines: {node: '>=0.10.0'}
+  css-tree@2.3.1:
     dependencies:
-      decamelize: 1.2.0
-      map-obj: 1.0.1
-    dev: true
+      mdn-data: 2.0.30
+      source-map-js: 1.2.1
 
-  /decamelize/1.2.0:
-    resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==}
-    engines: {node: '>=0.10.0'}
-    dev: true
+  css-what@6.1.0: {}
 
-  /dedent/0.7.0:
-    resolution: {integrity: sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==}
-    dev: true
+  cssesc@3.0.0: {}
 
-  /deep-is/0.1.4:
-    resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
-    dev: true
+  cssnano-preset-default@7.0.6(postcss@8.4.47):
+    dependencies:
+      browserslist: 4.24.0
+      css-declaration-sorter: 7.2.0(postcss@8.4.47)
+      cssnano-utils: 5.0.0(postcss@8.4.47)
+      postcss: 8.4.47
+      postcss-calc: 10.0.2(postcss@8.4.47)
+      postcss-colormin: 7.0.2(postcss@8.4.47)
+      postcss-convert-values: 7.0.4(postcss@8.4.47)
+      postcss-discard-comments: 7.0.3(postcss@8.4.47)
+      postcss-discard-duplicates: 7.0.1(postcss@8.4.47)
+      postcss-discard-empty: 7.0.0(postcss@8.4.47)
+      postcss-discard-overridden: 7.0.0(postcss@8.4.47)
+      postcss-merge-longhand: 7.0.4(postcss@8.4.47)
+      postcss-merge-rules: 7.0.4(postcss@8.4.47)
+      postcss-minify-font-values: 7.0.0(postcss@8.4.47)
+      postcss-minify-gradients: 7.0.0(postcss@8.4.47)
+      postcss-minify-params: 7.0.2(postcss@8.4.47)
+      postcss-minify-selectors: 7.0.4(postcss@8.4.47)
+      postcss-normalize-charset: 7.0.0(postcss@8.4.47)
+      postcss-normalize-display-values: 7.0.0(postcss@8.4.47)
+      postcss-normalize-positions: 7.0.0(postcss@8.4.47)
+      postcss-normalize-repeat-style: 7.0.0(postcss@8.4.47)
+      postcss-normalize-string: 7.0.0(postcss@8.4.47)
+      postcss-normalize-timing-functions: 7.0.0(postcss@8.4.47)
+      postcss-normalize-unicode: 7.0.2(postcss@8.4.47)
+      postcss-normalize-url: 7.0.0(postcss@8.4.47)
+      postcss-normalize-whitespace: 7.0.0(postcss@8.4.47)
+      postcss-ordered-values: 7.0.1(postcss@8.4.47)
+      postcss-reduce-initial: 7.0.2(postcss@8.4.47)
+      postcss-reduce-transforms: 7.0.0(postcss@8.4.47)
+      postcss-svgo: 7.0.1(postcss@8.4.47)
+      postcss-unique-selectors: 7.0.3(postcss@8.4.47)
 
-  /deepmerge/4.2.2:
-    resolution: {integrity: sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==}
-    engines: {node: '>=0.10.0'}
-    dev: true
+  cssnano-utils@5.0.0(postcss@8.4.47):
+    dependencies:
+      postcss: 8.4.47
 
-  /detect-indent/6.1.0:
-    resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==}
-    engines: {node: '>=8'}
-    dev: true
+  cssnano@7.0.6(postcss@8.4.47):
+    dependencies:
+      cssnano-preset-default: 7.0.6(postcss@8.4.47)
+      lilconfig: 3.1.2
+      postcss: 8.4.47
 
-  /detect-newline/3.1.0:
-    resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==}
-    engines: {node: '>=8'}
-    dev: true
+  csso@5.0.5:
+    dependencies:
+      css-tree: 2.2.1
 
-  /diff-sequences/29.3.1:
-    resolution: {integrity: sha512-hlM3QR272NXCi4pq+N4Kok4kOp6EsgOM3ZSpJI7Da3UAs+Ttsi8MRmB6trM/lhyzUxGfOgnpkHtgqm5Q/CTcfQ==}
-    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-    dev: true
+  dargs@7.0.0: {}
 
-  /diff/4.0.2:
-    resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==}
-    engines: {node: '>=0.3.1'}
-    dev: true
+  dateformat@3.0.3: {}
 
-  /dir-glob/3.0.1:
-    resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==}
-    engines: {node: '>=8'}
+  debug@4.3.7:
     dependencies:
-      path-type: 4.0.0
-    dev: true
+      ms: 2.1.3
 
-  /doctrine/3.0.0:
-    resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==}
-    engines: {node: '>=6.0.0'}
+  decamelize-keys@1.1.1:
     dependencies:
-      esutils: 2.0.3
-    dev: true
+      decamelize: 1.2.0
+      map-obj: 1.0.1
 
-  /dot-prop/5.3.0:
-    resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==}
-    engines: {node: '>=8'}
-    dependencies:
-      is-obj: 2.0.0
-    dev: true
+  decamelize@1.2.0: {}
 
-  /dotgitignore/2.1.0:
-    resolution: {integrity: sha512-sCm11ak2oY6DglEPpCB8TixLjWAxd3kJTs6UIcSasNYxXdFPV+YKlye92c8H4kKFqV5qYMIh7d+cYecEg0dIkA==}
-    engines: {node: '>=6'}
+  deep-eql@5.0.2: {}
+
+  deep-is@0.1.4: {}
+
+  deepmerge@4.3.1: {}
+
+  default-browser-id@5.0.0: {}
+
+  default-browser@5.2.1:
     dependencies:
-      find-up: 3.0.0
-      minimatch: 3.1.2
-    dev: true
+      bundle-name: 4.1.0
+      default-browser-id: 5.0.0
 
-  /electron-to-chromium/1.4.284:
-    resolution: {integrity: sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==}
-    dev: true
+  define-lazy-prop@3.0.0: {}
 
-  /emittery/0.13.1:
-    resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==}
-    engines: {node: '>=12'}
-    dev: true
+  defu@6.1.4: {}
 
-  /emoji-regex/8.0.0:
-    resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
-    dev: true
+  dequal@2.0.3: {}
 
-  /error-ex/1.3.2:
-    resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==}
+  destr@2.0.3: {}
+
+  detect-indent@6.1.0: {}
+
+  detect-newline@3.1.0: {}
+
+  devlop@1.1.0:
     dependencies:
-      is-arrayish: 0.2.1
-    dev: true
+      dequal: 2.0.3
 
-  /escalade/3.1.1:
-    resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==}
-    engines: {node: '>=6'}
-    dev: true
+  dom-serializer@2.0.0:
+    dependencies:
+      domelementtype: 2.3.0
+      domhandler: 5.0.3
+      entities: 4.5.0
 
-  /escape-string-regexp/1.0.5:
-    resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==}
-    engines: {node: '>=0.8.0'}
-    dev: true
+  domelementtype@2.3.0: {}
 
-  /escape-string-regexp/2.0.0:
-    resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==}
-    engines: {node: '>=8'}
-    dev: true
+  domhandler@5.0.3:
+    dependencies:
+      domelementtype: 2.3.0
 
-  /escape-string-regexp/4.0.0:
-    resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
-    engines: {node: '>=10'}
-    dev: true
+  domutils@3.1.0:
+    dependencies:
+      dom-serializer: 2.0.0
+      domelementtype: 2.3.0
+      domhandler: 5.0.3
 
-  /eslint-config-prettier/8.5.0_eslint@8.27.0:
-    resolution: {integrity: sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==}
-    hasBin: true
-    peerDependencies:
-      eslint: '>=7.0.0'
+  dot-prop@5.3.0:
     dependencies:
-      eslint: 8.27.0
-    dev: true
+      is-obj: 2.0.0
 
-  /eslint-plugin-prettier/4.2.1_v7o5sx5x3wbs57ifz6wc4f76we:
-    resolution: {integrity: sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==}
-    engines: {node: '>=12.0.0'}
-    peerDependencies:
-      eslint: '>=7.28.0'
-      eslint-config-prettier: '*'
-      prettier: '>=2.0.0'
-    peerDependenciesMeta:
-      eslint-config-prettier:
-        optional: true
+  dotenv@16.4.5: {}
+
+  dotgitignore@2.1.0:
     dependencies:
-      eslint: 8.27.0
-      eslint-config-prettier: 8.5.0_eslint@8.27.0
-      prettier: 2.7.1
-      prettier-linter-helpers: 1.0.0
-    dev: true
+      find-up: 3.0.0
+      minimatch: 3.1.2
+
+  eastasianwidth@0.2.0: {}
+
+  electron-to-chromium@1.5.33: {}
+
+  emoji-regex@8.0.0: {}
+
+  emoji-regex@9.2.2: {}
+
+  entities@4.5.0: {}
 
-  /eslint-scope/5.1.1:
-    resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==}
-    engines: {node: '>=8.0.0'}
+  error-ex@1.3.2:
     dependencies:
-      esrecurse: 4.3.0
-      estraverse: 4.3.0
-    dev: true
+      is-arrayish: 0.2.1
 
-  /eslint-scope/7.1.1:
-    resolution: {integrity: sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==}
-    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+  esbuild@0.21.5:
+    optionalDependencies:
+      '@esbuild/aix-ppc64': 0.21.5
+      '@esbuild/android-arm': 0.21.5
+      '@esbuild/android-arm64': 0.21.5
+      '@esbuild/android-x64': 0.21.5
+      '@esbuild/darwin-arm64': 0.21.5
+      '@esbuild/darwin-x64': 0.21.5
+      '@esbuild/freebsd-arm64': 0.21.5
+      '@esbuild/freebsd-x64': 0.21.5
+      '@esbuild/linux-arm': 0.21.5
+      '@esbuild/linux-arm64': 0.21.5
+      '@esbuild/linux-ia32': 0.21.5
+      '@esbuild/linux-loong64': 0.21.5
+      '@esbuild/linux-mips64el': 0.21.5
+      '@esbuild/linux-ppc64': 0.21.5
+      '@esbuild/linux-riscv64': 0.21.5
+      '@esbuild/linux-s390x': 0.21.5
+      '@esbuild/linux-x64': 0.21.5
+      '@esbuild/netbsd-x64': 0.21.5
+      '@esbuild/openbsd-x64': 0.21.5
+      '@esbuild/sunos-x64': 0.21.5
+      '@esbuild/win32-arm64': 0.21.5
+      '@esbuild/win32-ia32': 0.21.5
+      '@esbuild/win32-x64': 0.21.5
+
+  esbuild@0.24.0:
+    optionalDependencies:
+      '@esbuild/aix-ppc64': 0.24.0
+      '@esbuild/android-arm': 0.24.0
+      '@esbuild/android-arm64': 0.24.0
+      '@esbuild/android-x64': 0.24.0
+      '@esbuild/darwin-arm64': 0.24.0
+      '@esbuild/darwin-x64': 0.24.0
+      '@esbuild/freebsd-arm64': 0.24.0
+      '@esbuild/freebsd-x64': 0.24.0
+      '@esbuild/linux-arm': 0.24.0
+      '@esbuild/linux-arm64': 0.24.0
+      '@esbuild/linux-ia32': 0.24.0
+      '@esbuild/linux-loong64': 0.24.0
+      '@esbuild/linux-mips64el': 0.24.0
+      '@esbuild/linux-ppc64': 0.24.0
+      '@esbuild/linux-riscv64': 0.24.0
+      '@esbuild/linux-s390x': 0.24.0
+      '@esbuild/linux-x64': 0.24.0
+      '@esbuild/netbsd-x64': 0.24.0
+      '@esbuild/openbsd-arm64': 0.24.0
+      '@esbuild/openbsd-x64': 0.24.0
+      '@esbuild/sunos-x64': 0.24.0
+      '@esbuild/win32-arm64': 0.24.0
+      '@esbuild/win32-ia32': 0.24.0
+      '@esbuild/win32-x64': 0.24.0
+
+  escalade@3.2.0: {}
+
+  escape-string-regexp@1.0.5: {}
+
+  escape-string-regexp@4.0.0: {}
+
+  eslint-scope@8.1.0:
     dependencies:
       esrecurse: 4.3.0
       estraverse: 5.3.0
-    dev: true
-
-  /eslint-utils/3.0.0_eslint@8.27.0:
-    resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==}
-    engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0}
-    peerDependencies:
-      eslint: '>=5'
-    dependencies:
-      eslint: 8.27.0
-      eslint-visitor-keys: 2.1.0
-    dev: true
 
-  /eslint-visitor-keys/2.1.0:
-    resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==}
-    engines: {node: '>=10'}
-    dev: true
+  eslint-visitor-keys@3.4.3: {}
 
-  /eslint-visitor-keys/3.3.0:
-    resolution: {integrity: sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==}
-    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
-    dev: true
+  eslint-visitor-keys@4.1.0: {}
 
-  /eslint/8.27.0:
-    resolution: {integrity: sha512-0y1bfG2ho7mty+SiILVf9PfuRA49ek4Nc60Wmmu62QlobNR+CeXa4xXIJgcuwSQgZiWaPH+5BDsctpIW0PR/wQ==}
-    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
-    hasBin: true
+  eslint@9.12.0(jiti@2.3.3):
     dependencies:
-      '@eslint/eslintrc': 1.3.3
-      '@humanwhocodes/config-array': 0.11.7
+      '@eslint-community/eslint-utils': 4.4.0(eslint@9.12.0(jiti@2.3.3))
+      '@eslint-community/regexpp': 4.11.1
+      '@eslint/config-array': 0.18.0
+      '@eslint/core': 0.6.0
+      '@eslint/eslintrc': 3.1.0
+      '@eslint/js': 9.12.0
+      '@eslint/plugin-kit': 0.2.0
+      '@humanfs/node': 0.16.5
       '@humanwhocodes/module-importer': 1.0.1
-      '@nodelib/fs.walk': 1.2.8
+      '@humanwhocodes/retry': 0.3.1
+      '@types/estree': 1.0.6
+      '@types/json-schema': 7.0.15
       ajv: 6.12.6
       chalk: 4.1.2
       cross-spawn: 7.0.3
-      debug: 4.3.4
-      doctrine: 3.0.0
+      debug: 4.3.7
       escape-string-regexp: 4.0.0
-      eslint-scope: 7.1.1
-      eslint-utils: 3.0.0_eslint@8.27.0
-      eslint-visitor-keys: 3.3.0
-      espree: 9.4.1
-      esquery: 1.4.0
+      eslint-scope: 8.1.0
+      eslint-visitor-keys: 4.1.0
+      espree: 10.2.0
+      esquery: 1.6.0
       esutils: 2.0.3
       fast-deep-equal: 3.1.3
-      file-entry-cache: 6.0.1
+      file-entry-cache: 8.0.0
       find-up: 5.0.0
       glob-parent: 6.0.2
-      globals: 13.17.0
-      grapheme-splitter: 1.0.4
-      ignore: 5.2.0
-      import-fresh: 3.3.0
+      ignore: 5.3.2
       imurmurhash: 0.1.4
       is-glob: 4.0.3
-      is-path-inside: 3.0.3
-      js-sdsl: 4.1.5
-      js-yaml: 4.1.0
       json-stable-stringify-without-jsonify: 1.0.1
-      levn: 0.4.1
       lodash.merge: 4.6.2
       minimatch: 3.1.2
       natural-compare: 1.4.0
-      optionator: 0.9.1
-      regexpp: 3.2.0
-      strip-ansi: 6.0.1
-      strip-json-comments: 3.1.1
+      optionator: 0.9.4
       text-table: 0.2.0
+    optionalDependencies:
+      jiti: 2.3.3
     transitivePeerDependencies:
       - supports-color
-    dev: true
 
-  /espree/9.4.1:
-    resolution: {integrity: sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==}
-    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+  espree@10.2.0:
     dependencies:
-      acorn: 8.8.1
-      acorn-jsx: 5.3.2_acorn@8.8.1
-      eslint-visitor-keys: 3.3.0
-    dev: true
+      acorn: 8.12.1
+      acorn-jsx: 5.3.2(acorn@8.12.1)
+      eslint-visitor-keys: 4.1.0
 
-  /esprima/4.0.1:
-    resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==}
-    engines: {node: '>=4'}
-    hasBin: true
-    dev: true
-
-  /esquery/1.4.0:
-    resolution: {integrity: sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==}
-    engines: {node: '>=0.10'}
+  esquery@1.6.0:
     dependencies:
       estraverse: 5.3.0
-    dev: true
 
-  /esrecurse/4.3.0:
-    resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==}
-    engines: {node: '>=4.0'}
+  esrecurse@4.3.0:
     dependencies:
       estraverse: 5.3.0
-    dev: true
 
-  /estraverse/4.3.0:
-    resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==}
-    engines: {node: '>=4.0'}
-    dev: true
+  estraverse@5.3.0: {}
 
-  /estraverse/5.3.0:
-    resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==}
-    engines: {node: '>=4.0'}
-    dev: true
+  estree-walker@2.0.2: {}
 
-  /estree-walker/2.0.2:
-    resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==}
-    dev: true
+  estree-walker@3.0.3:
+    dependencies:
+      '@types/estree': 1.0.6
 
-  /esutils/2.0.3:
-    resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==}
-    engines: {node: '>=0.10.0'}
-    dev: true
+  esutils@2.0.3: {}
 
-  /execa/5.1.1:
-    resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==}
-    engines: {node: '>=10'}
+  execa@8.0.1:
     dependencies:
       cross-spawn: 7.0.3
-      get-stream: 6.0.1
-      human-signals: 2.1.0
-      is-stream: 2.0.1
+      get-stream: 8.0.1
+      human-signals: 5.0.0
+      is-stream: 3.0.0
       merge-stream: 2.0.0
-      npm-run-path: 4.0.1
-      onetime: 5.1.2
-      signal-exit: 3.0.7
-      strip-final-newline: 2.0.0
-    dev: true
-
-  /exit/0.1.2:
-    resolution: {integrity: sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==}
-    engines: {node: '>= 0.8.0'}
-    dev: true
-
-  /expect/29.3.1:
-    resolution: {integrity: sha512-gGb1yTgU30Q0O/tQq+z30KBWv24ApkMgFUpvKBkyLUBL68Wv8dHdJxTBZFl/iT8K/bqDHvUYRH6IIN3rToopPA==}
-    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-    dependencies:
-      '@jest/expect-utils': 29.3.1
-      jest-get-type: 29.2.0
-      jest-matcher-utils: 29.3.1
-      jest-message-util: 29.3.1
-      jest-util: 29.3.1
-    dev: true
-
-  /fast-deep-equal/3.1.3:
-    resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
-    dev: true
+      npm-run-path: 5.3.0
+      onetime: 6.0.0
+      signal-exit: 4.1.0
+      strip-final-newline: 3.0.0
 
-  /fast-diff/1.2.0:
-    resolution: {integrity: sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==}
-    dev: true
+  fast-deep-equal@3.1.3: {}
 
-  /fast-glob/3.2.12:
-    resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==}
-    engines: {node: '>=8.6.0'}
+  fast-glob@3.3.2:
     dependencies:
       '@nodelib/fs.stat': 2.0.5
       '@nodelib/fs.walk': 1.2.8
       glob-parent: 5.1.2
       merge2: 1.4.1
-      micromatch: 4.0.5
-    dev: true
+      micromatch: 4.0.8
 
-  /fast-json-stable-stringify/2.1.0:
-    resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==}
-    dev: true
+  fast-json-stable-stringify@2.1.0: {}
 
-  /fast-levenshtein/2.0.6:
-    resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==}
-    dev: true
+  fast-levenshtein@2.0.6: {}
 
-  /fastq/1.13.0:
-    resolution: {integrity: sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==}
+  fastq@1.17.1:
     dependencies:
       reusify: 1.0.4
-    dev: true
 
-  /fb-watchman/2.0.2:
-    resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==}
-    dependencies:
-      bser: 2.1.1
-    dev: true
+  fdir@6.4.0(picomatch@2.3.1):
+    optionalDependencies:
+      picomatch: 2.3.1
 
-  /figures/3.2.0:
-    resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==}
-    engines: {node: '>=8'}
+  fdir@6.4.0(picomatch@4.0.2):
+    optionalDependencies:
+      picomatch: 4.0.2
+
+  figures@3.2.0:
     dependencies:
       escape-string-regexp: 1.0.5
-    dev: true
 
-  /file-entry-cache/6.0.1:
-    resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==}
-    engines: {node: ^10.12.0 || >=12.0.0}
+  file-entry-cache@8.0.0:
     dependencies:
-      flat-cache: 3.0.4
-    dev: true
+      flat-cache: 4.0.1
 
-  /fill-range/7.0.1:
-    resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==}
-    engines: {node: '>=8'}
+  fill-range@7.1.1:
     dependencies:
       to-regex-range: 5.0.1
-    dev: true
 
-  /find-up/2.1.0:
-    resolution: {integrity: sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==}
-    engines: {node: '>=4'}
+  find-up@2.1.0:
     dependencies:
       locate-path: 2.0.0
-    dev: true
 
-  /find-up/3.0.0:
-    resolution: {integrity: sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==}
-    engines: {node: '>=6'}
+  find-up@3.0.0:
     dependencies:
       locate-path: 3.0.0
-    dev: true
 
-  /find-up/4.1.0:
-    resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==}
-    engines: {node: '>=8'}
+  find-up@4.1.0:
     dependencies:
       locate-path: 5.0.0
       path-exists: 4.0.0
-    dev: true
 
-  /find-up/5.0.0:
-    resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==}
-    engines: {node: '>=10'}
+  find-up@5.0.0:
     dependencies:
       locate-path: 6.0.0
       path-exists: 4.0.0
-    dev: true
 
-  /flat-cache/3.0.4:
-    resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==}
-    engines: {node: ^10.12.0 || >=12.0.0}
+  flat-cache@4.0.1:
     dependencies:
-      flatted: 3.2.7
-      rimraf: 3.0.2
-    dev: true
+      flatted: 3.3.1
+      keyv: 4.5.4
 
-  /flatted/3.2.7:
-    resolution: {integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==}
-    dev: true
+  flatted@3.3.1: {}
+
+  foreground-child@3.3.0:
+    dependencies:
+      cross-spawn: 7.0.3
+      signal-exit: 4.1.0
 
-  /fs.realpath/1.0.0:
-    resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==}
-    dev: true
+  fraction.js@4.3.7: {}
 
-  /fsevents/2.3.2:
-    resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==}
-    engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
-    os: [darwin]
-    requiresBuild: true
-    dev: true
+  fs-minipass@2.1.0:
+    dependencies:
+      minipass: 3.3.6
+
+  fsevents@2.3.3:
     optional: true
 
-  /function-bind/1.1.1:
-    resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==}
-    dev: true
+  function-bind@1.1.2: {}
 
-  /gensync/1.0.0-beta.2:
-    resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==}
-    engines: {node: '>=6.9.0'}
-    dev: true
+  gensync@1.0.0-beta.2: {}
 
-  /get-caller-file/2.0.5:
-    resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==}
-    engines: {node: 6.* || 8.* || >= 10.*}
-    dev: true
+  get-caller-file@2.0.5: {}
 
-  /get-package-type/0.1.0:
-    resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==}
-    engines: {node: '>=8.0.0'}
-    dev: true
+  get-func-name@2.0.2: {}
 
-  /get-pkg-repo/4.2.1:
-    resolution: {integrity: sha512-2+QbHjFRfGB74v/pYWjd5OhU3TDIC2Gv/YKUTk/tCvAz0pkn/Mz6P3uByuBimLOcPvN2jYdScl3xGFSrx0jEcA==}
-    engines: {node: '>=6.9.0'}
-    hasBin: true
+  get-pkg-repo@4.2.1:
     dependencies:
       '@hutson/parse-repository-url': 3.0.2
       hosted-git-info: 4.1.0
       through2: 2.0.5
       yargs: 16.2.0
-    dev: true
 
-  /get-stream/6.0.1:
-    resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==}
-    engines: {node: '>=10'}
-    dev: true
+  get-stream@8.0.1: {}
 
-  /git-raw-commits/2.0.11:
-    resolution: {integrity: sha512-VnctFhw+xfj8Va1xtfEqCUD2XDrbAPSJx+hSrE5K7fGdjZruW7XV+QOrN7LF/RJyvspRiD2I0asWsxFp0ya26A==}
-    engines: {node: '>=10'}
-    hasBin: true
+  giget@1.2.3:
+    dependencies:
+      citty: 0.1.6
+      consola: 3.2.3
+      defu: 6.1.4
+      node-fetch-native: 1.6.4
+      nypm: 0.3.12
+      ohash: 1.1.4
+      pathe: 1.1.2
+      tar: 6.2.1
+
+  git-raw-commits@2.0.11:
     dependencies:
       dargs: 7.0.0
       lodash: 4.17.21
       meow: 8.1.2
       split2: 3.2.2
       through2: 4.0.2
-    dev: true
 
-  /git-remote-origin-url/2.0.0:
-    resolution: {integrity: sha512-eU+GGrZgccNJcsDH5LkXR3PB9M958hxc7sbA8DFJjrv9j4L2P/eZfKhM+QD6wyzpiv+b1BpK0XrYCxkovtjSLw==}
-    engines: {node: '>=4'}
+  git-remote-origin-url@2.0.0:
     dependencies:
       gitconfiglocal: 1.0.0
       pify: 2.3.0
-    dev: true
 
-  /git-semver-tags/4.1.1:
-    resolution: {integrity: sha512-OWyMt5zBe7xFs8vglMmhM9lRQzCWL3WjHtxNNfJTMngGym7pC1kh8sP6jevfydJ6LP3ZvGxfb6ABYgPUM0mtsA==}
-    engines: {node: '>=10'}
-    hasBin: true
+  git-semver-tags@4.1.1:
     dependencies:
       meow: 8.1.2
-      semver: 6.3.0
-    dev: true
+      semver: 6.3.1
 
-  /gitconfiglocal/1.0.0:
-    resolution: {integrity: sha512-spLUXeTAVHxDtKsJc8FkFVgFtMdEN9qPGpL23VfSHx4fP4+Ds097IXLvymbnDH8FnmxX5Nr9bPw3A+AQ6mWEaQ==}
+  gitconfiglocal@1.0.0:
     dependencies:
       ini: 1.3.8
-    dev: true
 
-  /glob-parent/5.1.2:
-    resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
-    engines: {node: '>= 6'}
+  glob-parent@5.1.2:
     dependencies:
       is-glob: 4.0.3
-    dev: true
 
-  /glob-parent/6.0.2:
-    resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==}
-    engines: {node: '>=10.13.0'}
+  glob-parent@6.0.2:
     dependencies:
       is-glob: 4.0.3
-    dev: true
 
-  /glob/7.2.3:
-    resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==}
+  glob@10.4.5:
     dependencies:
-      fs.realpath: 1.0.0
-      inflight: 1.0.6
-      inherits: 2.0.4
-      minimatch: 3.1.2
-      once: 1.4.0
-      path-is-absolute: 1.0.1
-    dev: true
+      foreground-child: 3.3.0
+      jackspeak: 3.4.3
+      minimatch: 9.0.5
+      minipass: 7.1.2
+      package-json-from-dist: 1.0.1
+      path-scurry: 1.11.1
 
-  /glob/8.0.3:
-    resolution: {integrity: sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==}
-    engines: {node: '>=12'}
+  glob@11.0.0:
     dependencies:
-      fs.realpath: 1.0.0
-      inflight: 1.0.6
-      inherits: 2.0.4
-      minimatch: 5.1.0
-      once: 1.4.0
-    dev: true
+      foreground-child: 3.3.0
+      jackspeak: 4.0.2
+      minimatch: 10.0.1
+      minipass: 7.1.2
+      package-json-from-dist: 1.0.1
+      path-scurry: 2.0.0
 
-  /globals/11.12.0:
-    resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==}
-    engines: {node: '>=4'}
-    dev: true
+  globals@11.12.0: {}
 
-  /globals/13.17.0:
-    resolution: {integrity: sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==}
-    engines: {node: '>=8'}
-    dependencies:
-      type-fest: 0.20.2
-    dev: true
+  globals@14.0.0: {}
 
-  /globby/11.1.0:
-    resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==}
-    engines: {node: '>=10'}
-    dependencies:
-      array-union: 2.1.0
-      dir-glob: 3.0.1
-      fast-glob: 3.2.12
-      ignore: 5.2.0
-      merge2: 1.4.1
-      slash: 3.0.0
-    dev: true
+  globals@15.10.0: {}
 
-  /graceful-fs/4.2.10:
-    resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==}
-    dev: true
+  graceful-fs@4.2.11: {}
 
-  /grapheme-splitter/1.0.4:
-    resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==}
-    dev: true
+  graphemer@1.4.0: {}
 
-  /handlebars/4.7.7:
-    resolution: {integrity: sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==}
-    engines: {node: '>=0.4.7'}
-    hasBin: true
+  handlebars@4.7.8:
     dependencies:
-      minimist: 1.2.7
+      minimist: 1.2.8
       neo-async: 2.6.2
       source-map: 0.6.1
       wordwrap: 1.0.0
     optionalDependencies:
-      uglify-js: 3.17.4
-    dev: true
-
-  /hard-rejection/2.1.0:
-    resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==}
-    engines: {node: '>=6'}
-    dev: true
-
-  /has-flag/3.0.0:
-    resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==}
-    engines: {node: '>=4'}
-    dev: true
-
-  /has-flag/4.0.0:
-    resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==}
-    engines: {node: '>=8'}
-    dev: true
-
-  /has/1.0.3:
-    resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==}
-    engines: {node: '>= 0.4.0'}
-    dependencies:
-      function-bind: 1.1.1
-    dev: true
-
-  /hosted-git-info/2.8.9:
-    resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==}
-    dev: true
-
-  /hosted-git-info/4.1.0:
-    resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==}
-    engines: {node: '>=10'}
-    dependencies:
-      lru-cache: 6.0.0
-    dev: true
-
-  /html-escaper/2.0.2:
-    resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==}
-    dev: true
-
-  /human-signals/2.1.0:
-    resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==}
-    engines: {node: '>=10.17.0'}
-    dev: true
-
-  /ignore/5.2.0:
-    resolution: {integrity: sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==}
-    engines: {node: '>= 4'}
-    dev: true
-
-  /import-fresh/3.3.0:
-    resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==}
-    engines: {node: '>=6'}
-    dependencies:
-      parent-module: 1.0.1
-      resolve-from: 4.0.0
-    dev: true
+      uglify-js: 3.19.3
 
-  /import-local/3.1.0:
-    resolution: {integrity: sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==}
-    engines: {node: '>=8'}
-    hasBin: true
-    dependencies:
-      pkg-dir: 4.2.0
-      resolve-cwd: 3.0.0
-    dev: true
+  hard-rejection@2.1.0: {}
 
-  /imurmurhash/0.1.4:
-    resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==}
-    engines: {node: '>=0.8.19'}
-    dev: true
+  has-flag@3.0.0: {}
 
-  /indent-string/4.0.0:
-    resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==}
-    engines: {node: '>=8'}
-    dev: true
+  has-flag@4.0.0: {}
 
-  /inflight/1.0.6:
-    resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==}
+  hasown@2.0.2:
     dependencies:
-      once: 1.4.0
-      wrappy: 1.0.2
-    dev: true
-
-  /inherits/2.0.4:
-    resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
-    dev: true
-
-  /ini/1.3.8:
-    resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==}
-    dev: true
-
-  /is-arrayish/0.2.1:
-    resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==}
-    dev: true
+      function-bind: 1.1.2
 
-  /is-builtin-module/3.2.0:
-    resolution: {integrity: sha512-phDA4oSGt7vl1n5tJvTWooWWAsXLY+2xCnxNqvKhGEzujg+A43wPlPOyDg3C8XQHN+6k/JTQWJ/j0dQh/qr+Hw==}
-    engines: {node: '>=6'}
+  hast-util-to-html@9.0.3:
     dependencies:
-      builtin-modules: 3.3.0
-    dev: true
+      '@types/hast': 3.0.4
+      '@types/unist': 3.0.3
+      ccount: 2.0.1
+      comma-separated-tokens: 2.0.3
+      hast-util-whitespace: 3.0.0
+      html-void-elements: 3.0.0
+      mdast-util-to-hast: 13.2.0
+      property-information: 6.5.0
+      space-separated-tokens: 2.0.2
+      stringify-entities: 4.0.4
+      zwitch: 2.0.4
 
-  /is-core-module/2.11.0:
-    resolution: {integrity: sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==}
+  hast-util-whitespace@3.0.0:
     dependencies:
-      has: 1.0.3
-    dev: true
+      '@types/hast': 3.0.4
 
-  /is-extglob/2.1.1:
-    resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
-    engines: {node: '>=0.10.0'}
-    dev: true
-
-  /is-fullwidth-code-point/3.0.0:
-    resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==}
-    engines: {node: '>=8'}
-    dev: true
+  hookable@5.5.3: {}
 
-  /is-generator-fn/2.1.0:
-    resolution: {integrity: sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==}
-    engines: {node: '>=6'}
-    dev: true
+  hosted-git-info@2.8.9: {}
 
-  /is-glob/4.0.3:
-    resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
-    engines: {node: '>=0.10.0'}
+  hosted-git-info@4.1.0:
     dependencies:
-      is-extglob: 2.1.1
-    dev: true
-
-  /is-module/1.0.0:
-    resolution: {integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==}
-    dev: true
-
-  /is-number/7.0.0:
-    resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
-    engines: {node: '>=0.12.0'}
-    dev: true
-
-  /is-obj/2.0.0:
-    resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==}
-    engines: {node: '>=8'}
-    dev: true
+      lru-cache: 6.0.0
 
-  /is-path-inside/3.0.3:
-    resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==}
-    engines: {node: '>=8'}
-    dev: true
+  html-escaper@2.0.2: {}
 
-  /is-plain-obj/1.1.0:
-    resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==}
-    engines: {node: '>=0.10.0'}
-    dev: true
+  html-void-elements@3.0.0: {}
 
-  /is-reference/1.2.1:
-    resolution: {integrity: sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==}
-    dependencies:
-      '@types/estree': 1.0.0
-    dev: true
+  human-signals@5.0.0: {}
 
-  /is-stream/2.0.1:
-    resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==}
-    engines: {node: '>=8'}
-    dev: true
+  ignore@5.3.2: {}
 
-  /is-text-path/1.0.1:
-    resolution: {integrity: sha512-xFuJpne9oFz5qDaodwmmG08e3CawH/2ZV8Qqza1Ko7Sk8POWbkRdwIoAWVhqvq0XeUzANEhKo2n0IXUGBm7A/w==}
-    engines: {node: '>=0.10.0'}
+  import-fresh@3.3.0:
     dependencies:
-      text-extensions: 1.9.0
-    dev: true
+      parent-module: 1.0.1
+      resolve-from: 4.0.0
 
-  /isarray/0.0.1:
-    resolution: {integrity: sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==}
-    dev: true
+  imurmurhash@0.1.4: {}
 
-  /isarray/1.0.0:
-    resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==}
-    dev: true
+  indent-string@4.0.0: {}
 
-  /isexe/2.0.0:
-    resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
-    dev: true
+  inherits@2.0.4: {}
 
-  /istanbul-lib-coverage/3.2.0:
-    resolution: {integrity: sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==}
-    engines: {node: '>=8'}
-    dev: true
+  ini@1.3.8: {}
 
-  /istanbul-lib-instrument/5.2.1:
-    resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==}
-    engines: {node: '>=8'}
-    dependencies:
-      '@babel/core': 7.20.2
-      '@babel/parser': 7.20.3
-      '@istanbuljs/schema': 0.1.3
-      istanbul-lib-coverage: 3.2.0
-      semver: 6.3.0
-    transitivePeerDependencies:
-      - supports-color
-    dev: true
+  is-arrayish@0.2.1: {}
 
-  /istanbul-lib-report/3.0.0:
-    resolution: {integrity: sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==}
-    engines: {node: '>=8'}
+  is-binary-path@2.1.0:
     dependencies:
-      istanbul-lib-coverage: 3.2.0
-      make-dir: 3.1.0
-      supports-color: 7.2.0
-    dev: true
+      binary-extensions: 2.3.0
 
-  /istanbul-lib-source-maps/4.0.1:
-    resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==}
-    engines: {node: '>=10'}
+  is-core-module@2.15.1:
     dependencies:
-      debug: 4.3.4
-      istanbul-lib-coverage: 3.2.0
-      source-map: 0.6.1
-    transitivePeerDependencies:
-      - supports-color
-    dev: true
+      hasown: 2.0.2
 
-  /istanbul-reports/3.1.5:
-    resolution: {integrity: sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==}
-    engines: {node: '>=8'}
-    dependencies:
-      html-escaper: 2.0.2
-      istanbul-lib-report: 3.0.0
-    dev: true
+  is-docker@3.0.0: {}
 
-  /jest-changed-files/29.2.0:
-    resolution: {integrity: sha512-qPVmLLyBmvF5HJrY7krDisx6Voi8DmlV3GZYX0aFNbaQsZeoz1hfxcCMbqDGuQCxU1dJy9eYc2xscE8QrCCYaA==}
-    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-    dependencies:
-      execa: 5.1.1
-      p-limit: 3.1.0
-    dev: true
+  is-extglob@2.1.1: {}
 
-  /jest-circus/29.3.1:
-    resolution: {integrity: sha512-wpr26sEvwb3qQQbdlmei+gzp6yoSSoSL6GsLPxnuayZSMrSd5Ka7IjAvatpIernBvT2+Ic6RLTg+jSebScmasg==}
-    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-    dependencies:
-      '@jest/environment': 29.3.1
-      '@jest/expect': 29.3.1
-      '@jest/test-result': 29.3.1
-      '@jest/types': 29.3.1
-      '@types/node': 16.0.0
-      chalk: 4.1.2
-      co: 4.6.0
-      dedent: 0.7.0
-      is-generator-fn: 2.1.0
-      jest-each: 29.3.1
-      jest-matcher-utils: 29.3.1
-      jest-message-util: 29.3.1
-      jest-runtime: 29.3.1
-      jest-snapshot: 29.3.1
-      jest-util: 29.3.1
-      p-limit: 3.1.0
-      pretty-format: 29.3.1
-      slash: 3.0.0
-      stack-utils: 2.0.6
-    transitivePeerDependencies:
-      - supports-color
-    dev: true
+  is-fullwidth-code-point@3.0.0: {}
 
-  /jest-cli/29.3.1_qgsvtivhigskinhtkon55hue3i:
-    resolution: {integrity: sha512-TO/ewvwyvPOiBBuWZ0gm04z3WWP8TIK8acgPzE4IxgsLKQgb377NYGrQLc3Wl/7ndWzIH2CDNNsUjGxwLL43VQ==}
-    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-    hasBin: true
-    peerDependencies:
-      node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
-    peerDependenciesMeta:
-      node-notifier:
-        optional: true
+  is-glob@4.0.3:
     dependencies:
-      '@jest/core': 29.3.1_ts-node@10.9.1
-      '@jest/test-result': 29.3.1
-      '@jest/types': 29.3.1
-      chalk: 4.1.2
-      exit: 0.1.2
-      graceful-fs: 4.2.10
-      import-local: 3.1.0
-      jest-config: 29.3.1_qgsvtivhigskinhtkon55hue3i
-      jest-util: 29.3.1
-      jest-validate: 29.3.1
-      prompts: 2.4.2
-      yargs: 17.6.2
-    transitivePeerDependencies:
-      - '@types/node'
-      - supports-color
-      - ts-node
-    dev: true
+      is-extglob: 2.1.1
 
-  /jest-config/29.3.1_qgsvtivhigskinhtkon55hue3i:
-    resolution: {integrity: sha512-y0tFHdj2WnTEhxmGUK1T7fgLen7YK4RtfvpLFBXfQkh2eMJAQq24Vx9472lvn5wg0MAO6B+iPfJfzdR9hJYalg==}
-    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-    peerDependencies:
-      '@types/node': '*'
-      ts-node: '>=9.0.0'
-    peerDependenciesMeta:
-      '@types/node':
-        optional: true
-      ts-node:
-        optional: true
+  is-inside-container@1.0.0:
     dependencies:
-      '@babel/core': 7.20.2
-      '@jest/test-sequencer': 29.3.1
-      '@jest/types': 29.3.1
-      '@types/node': 16.0.0
-      babel-jest: 29.3.1_@babel+core@7.20.2
-      chalk: 4.1.2
-      ci-info: 3.6.1
-      deepmerge: 4.2.2
-      glob: 7.2.3
-      graceful-fs: 4.2.10
-      jest-circus: 29.3.1
-      jest-environment-node: 29.3.1
-      jest-get-type: 29.2.0
-      jest-regex-util: 29.2.0
-      jest-resolve: 29.3.1
-      jest-runner: 29.3.1
-      jest-util: 29.3.1
-      jest-validate: 29.3.1
-      micromatch: 4.0.5
-      parse-json: 5.2.0
-      pretty-format: 29.3.1
-      slash: 3.0.0
-      strip-json-comments: 3.1.1
-      ts-node: 10.9.1_st2htz3eb6effj72w7hhhfw6hu
-    transitivePeerDependencies:
-      - supports-color
-    dev: true
+      is-docker: 3.0.0
 
-  /jest-diff/29.3.1:
-    resolution: {integrity: sha512-vU8vyiO7568tmin2lA3r2DP8oRvzhvRcD4DjpXc6uGveQodyk7CKLhQlCSiwgx3g0pFaE88/KLZ0yaTWMc4Uiw==}
-    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-    dependencies:
-      chalk: 4.1.2
-      diff-sequences: 29.3.1
-      jest-get-type: 29.2.0
-      pretty-format: 29.3.1
-    dev: true
+  is-module@1.0.0: {}
 
-  /jest-docblock/29.2.0:
-    resolution: {integrity: sha512-bkxUsxTgWQGbXV5IENmfiIuqZhJcyvF7tU4zJ/7ioTutdz4ToB5Yx6JOFBpgI+TphRY4lhOyCWGNH/QFQh5T6A==}
-    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-    dependencies:
-      detect-newline: 3.1.0
-    dev: true
+  is-number@7.0.0: {}
 
-  /jest-each/29.3.1:
-    resolution: {integrity: sha512-qrZH7PmFB9rEzCSl00BWjZYuS1BSOH8lLuC0azQE9lQrAx3PWGKHTDudQiOSwIy5dGAJh7KA0ScYlCP7JxvFYA==}
-    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-    dependencies:
-      '@jest/types': 29.3.1
-      chalk: 4.1.2
-      jest-get-type: 29.2.0
-      jest-util: 29.3.1
-      pretty-format: 29.3.1
-    dev: true
-
-  /jest-environment-node/29.3.1:
-    resolution: {integrity: sha512-xm2THL18Xf5sIHoU7OThBPtuH6Lerd+Y1NLYiZJlkE3hbE+7N7r8uvHIl/FkZ5ymKXJe/11SQuf3fv4v6rUMag==}
-    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-    dependencies:
-      '@jest/environment': 29.3.1
-      '@jest/fake-timers': 29.3.1
-      '@jest/types': 29.3.1
-      '@types/node': 16.0.0
-      jest-mock: 29.3.1
-      jest-util: 29.3.1
-    dev: true
-
-  /jest-get-type/29.2.0:
-    resolution: {integrity: sha512-uXNJlg8hKFEnDgFsrCjznB+sTxdkuqiCL6zMgA75qEbAJjJYTs9XPrvDctrEig2GDow22T/LvHgO57iJhXB/UA==}
-    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-    dev: true
-
-  /jest-haste-map/29.3.1:
-    resolution: {integrity: sha512-/FFtvoG1xjbbPXQLFef+WSU4yrc0fc0Dds6aRPBojUid7qlPqZvxdUBA03HW0fnVHXVCnCdkuoghYItKNzc/0A==}
-    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-    dependencies:
-      '@jest/types': 29.3.1
-      '@types/graceful-fs': 4.1.5
-      '@types/node': 16.0.0
-      anymatch: 3.1.2
-      fb-watchman: 2.0.2
-      graceful-fs: 4.2.10
-      jest-regex-util: 29.2.0
-      jest-util: 29.3.1
-      jest-worker: 29.3.1
-      micromatch: 4.0.5
-      walker: 1.0.8
-    optionalDependencies:
-      fsevents: 2.3.2
-    dev: true
+  is-obj@2.0.0: {}
 
-  /jest-leak-detector/29.3.1:
-    resolution: {integrity: sha512-3DA/VVXj4zFOPagGkuqHnSQf1GZBmmlagpguxEERO6Pla2g84Q1MaVIB3YMxgUaFIaYag8ZnTyQgiZ35YEqAQA==}
-    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-    dependencies:
-      jest-get-type: 29.2.0
-      pretty-format: 29.3.1
-    dev: true
+  is-plain-obj@1.1.0: {}
 
-  /jest-matcher-utils/29.3.1:
-    resolution: {integrity: sha512-fkRMZUAScup3txIKfMe3AIZZmPEjWEdsPJFK3AIy5qRohWqQFg1qrmKfYXR9qEkNc7OdAu2N4KPHibEmy4HPeQ==}
-    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+  is-reference@1.2.1:
     dependencies:
-      chalk: 4.1.2
-      jest-diff: 29.3.1
-      jest-get-type: 29.2.0
-      pretty-format: 29.3.1
-    dev: true
-
-  /jest-message-util/29.3.1:
-    resolution: {integrity: sha512-lMJTbgNcDm5z+6KDxWtqOFWlGQxD6XaYwBqHR8kmpkP+WWWG90I35kdtQHY67Ay5CSuydkTBbJG+tH9JShFCyA==}
-    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-    dependencies:
-      '@babel/code-frame': 7.18.6
-      '@jest/types': 29.3.1
-      '@types/stack-utils': 2.0.1
-      chalk: 4.1.2
-      graceful-fs: 4.2.10
-      micromatch: 4.0.5
-      pretty-format: 29.3.1
-      slash: 3.0.0
-      stack-utils: 2.0.6
-    dev: true
-
-  /jest-mock/29.3.1:
-    resolution: {integrity: sha512-H8/qFDtDVMFvFP4X8NuOT3XRDzOUTz+FeACjufHzsOIBAxivLqkB1PoLCaJx9iPPQ8dZThHPp/G3WRWyMgA3JA==}
-    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-    dependencies:
-      '@jest/types': 29.3.1
-      '@types/node': 16.0.0
-      jest-util: 29.3.1
-    dev: true
-
-  /jest-pnp-resolver/1.2.2_jest-resolve@29.3.1:
-    resolution: {integrity: sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==}
-    engines: {node: '>=6'}
-    peerDependencies:
-      jest-resolve: '*'
-    peerDependenciesMeta:
-      jest-resolve:
-        optional: true
-    dependencies:
-      jest-resolve: 29.3.1
-    dev: true
-
-  /jest-regex-util/29.2.0:
-    resolution: {integrity: sha512-6yXn0kg2JXzH30cr2NlThF+70iuO/3irbaB4mh5WyqNIvLLP+B6sFdluO1/1RJmslyh/f9osnefECflHvTbwVA==}
-    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-    dev: true
+      '@types/estree': 1.0.6
 
-  /jest-resolve-dependencies/29.3.1:
-    resolution: {integrity: sha512-Vk0cYq0byRw2WluNmNWGqPeRnZ3p3hHmjJMp2dyyZeYIfiBskwq4rpiuGFR6QGAdbj58WC7HN4hQHjf2mpvrLA==}
-    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-    dependencies:
-      jest-regex-util: 29.2.0
-      jest-snapshot: 29.3.1
-    transitivePeerDependencies:
-      - supports-color
-    dev: true
+  is-stream@3.0.0: {}
 
-  /jest-resolve/29.3.1:
-    resolution: {integrity: sha512-amXJgH/Ng712w3Uz5gqzFBBjxV8WFLSmNjoreBGMqxgCz5cH7swmBZzgBaCIOsvb0NbpJ0vgaSFdJqMdT+rADw==}
-    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+  is-text-path@1.0.1:
     dependencies:
-      chalk: 4.1.2
-      graceful-fs: 4.2.10
-      jest-haste-map: 29.3.1
-      jest-pnp-resolver: 1.2.2_jest-resolve@29.3.1
-      jest-util: 29.3.1
-      jest-validate: 29.3.1
-      resolve: 1.22.1
-      resolve.exports: 1.1.0
-      slash: 3.0.0
-    dev: true
-
-  /jest-runner/29.3.1:
-    resolution: {integrity: sha512-oFvcwRNrKMtE6u9+AQPMATxFcTySyKfLhvso7Sdk/rNpbhg4g2GAGCopiInk1OP4q6gz3n6MajW4+fnHWlU3bA==}
-    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-    dependencies:
-      '@jest/console': 29.3.1
-      '@jest/environment': 29.3.1
-      '@jest/test-result': 29.3.1
-      '@jest/transform': 29.3.1
-      '@jest/types': 29.3.1
-      '@types/node': 16.0.0
-      chalk: 4.1.2
-      emittery: 0.13.1
-      graceful-fs: 4.2.10
-      jest-docblock: 29.2.0
-      jest-environment-node: 29.3.1
-      jest-haste-map: 29.3.1
-      jest-leak-detector: 29.3.1
-      jest-message-util: 29.3.1
-      jest-resolve: 29.3.1
-      jest-runtime: 29.3.1
-      jest-util: 29.3.1
-      jest-watcher: 29.3.1
-      jest-worker: 29.3.1
-      p-limit: 3.1.0
-      source-map-support: 0.5.13
-    transitivePeerDependencies:
-      - supports-color
-    dev: true
-
-  /jest-runtime/29.3.1:
-    resolution: {integrity: sha512-jLzkIxIqXwBEOZx7wx9OO9sxoZmgT2NhmQKzHQm1xwR1kNW/dn0OjxR424VwHHf1SPN6Qwlb5pp1oGCeFTQ62A==}
-    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-    dependencies:
-      '@jest/environment': 29.3.1
-      '@jest/fake-timers': 29.3.1
-      '@jest/globals': 29.3.1
-      '@jest/source-map': 29.2.0
-      '@jest/test-result': 29.3.1
-      '@jest/transform': 29.3.1
-      '@jest/types': 29.3.1
-      '@types/node': 16.0.0
-      chalk: 4.1.2
-      cjs-module-lexer: 1.2.2
-      collect-v8-coverage: 1.0.1
-      glob: 7.2.3
-      graceful-fs: 4.2.10
-      jest-haste-map: 29.3.1
-      jest-message-util: 29.3.1
-      jest-mock: 29.3.1
-      jest-regex-util: 29.2.0
-      jest-resolve: 29.3.1
-      jest-snapshot: 29.3.1
-      jest-util: 29.3.1
-      slash: 3.0.0
-      strip-bom: 4.0.0
-    transitivePeerDependencies:
-      - supports-color
-    dev: true
-
-  /jest-snapshot/29.3.1:
-    resolution: {integrity: sha512-+3JOc+s28upYLI2OJM4PWRGK9AgpsMs/ekNryUV0yMBClT9B1DF2u2qay8YxcQd338PPYSFNb0lsar1B49sLDA==}
-    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-    dependencies:
-      '@babel/core': 7.20.2
-      '@babel/generator': 7.20.4
-      '@babel/plugin-syntax-jsx': 7.18.6_@babel+core@7.20.2
-      '@babel/plugin-syntax-typescript': 7.20.0_@babel+core@7.20.2
-      '@babel/traverse': 7.20.1
-      '@babel/types': 7.20.2
-      '@jest/expect-utils': 29.3.1
-      '@jest/transform': 29.3.1
-      '@jest/types': 29.3.1
-      '@types/babel__traverse': 7.18.2
-      '@types/prettier': 2.7.1
-      babel-preset-current-node-syntax: 1.0.1_@babel+core@7.20.2
-      chalk: 4.1.2
-      expect: 29.3.1
-      graceful-fs: 4.2.10
-      jest-diff: 29.3.1
-      jest-get-type: 29.2.0
-      jest-haste-map: 29.3.1
-      jest-matcher-utils: 29.3.1
-      jest-message-util: 29.3.1
-      jest-util: 29.3.1
-      natural-compare: 1.4.0
-      pretty-format: 29.3.1
-      semver: 7.3.8
-    transitivePeerDependencies:
-      - supports-color
-    dev: true
+      text-extensions: 1.9.0
 
-  /jest-util/29.3.1:
-    resolution: {integrity: sha512-7YOVZaiX7RJLv76ZfHt4nbNEzzTRiMW/IiOG7ZOKmTXmoGBxUDefgMAxQubu6WPVqP5zSzAdZG0FfLcC7HOIFQ==}
-    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+  is-wsl@3.1.0:
     dependencies:
-      '@jest/types': 29.3.1
-      '@types/node': 16.0.0
-      chalk: 4.1.2
-      ci-info: 3.6.1
-      graceful-fs: 4.2.10
-      picomatch: 2.3.1
-    dev: true
+      is-inside-container: 1.0.0
 
-  /jest-validate/29.3.1:
-    resolution: {integrity: sha512-N9Lr3oYR2Mpzuelp1F8negJR3YE+L1ebk1rYA5qYo9TTY3f9OWdptLoNSPP9itOCBIRBqjt/S5XHlzYglLN67g==}
-    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-    dependencies:
-      '@jest/types': 29.3.1
-      camelcase: 6.3.0
-      chalk: 4.1.2
-      jest-get-type: 29.2.0
-      leven: 3.1.0
-      pretty-format: 29.3.1
-    dev: true
-
-  /jest-watcher/29.3.1:
-    resolution: {integrity: sha512-RspXG2BQFDsZSRKGCT/NiNa8RkQ1iKAjrO0//soTMWx/QUt+OcxMqMSBxz23PYGqUuWm2+m2mNNsmj0eIoOaFg==}
-    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-    dependencies:
-      '@jest/test-result': 29.3.1
-      '@jest/types': 29.3.1
-      '@types/node': 16.0.0
-      ansi-escapes: 4.3.2
-      chalk: 4.1.2
-      emittery: 0.13.1
-      jest-util: 29.3.1
-      string-length: 4.0.2
-    dev: true
+  isarray@1.0.0: {}
 
-  /jest-worker/26.6.2:
-    resolution: {integrity: sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==}
-    engines: {node: '>= 10.13.0'}
-    dependencies:
-      '@types/node': 16.0.0
-      merge-stream: 2.0.0
-      supports-color: 7.2.0
-    dev: true
+  isexe@2.0.0: {}
 
-  /jest-worker/29.3.1:
-    resolution: {integrity: sha512-lY4AnnmsEWeiXirAIA0c9SDPbuCBq8IYuDVL8PMm0MZ2PEs2yPvRA/J64QBXuZp7CYKrDM/rmNrc9/i3KJQncw==}
-    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+  istanbul-lib-coverage@3.2.2: {}
+
+  istanbul-lib-report@3.0.1:
     dependencies:
-      '@types/node': 16.0.0
-      jest-util: 29.3.1
-      merge-stream: 2.0.0
-      supports-color: 8.1.1
-    dev: true
+      istanbul-lib-coverage: 3.2.2
+      make-dir: 4.0.0
+      supports-color: 7.2.0
 
-  /jest/29.3.1_qgsvtivhigskinhtkon55hue3i:
-    resolution: {integrity: sha512-6iWfL5DTT0Np6UYs/y5Niu7WIfNv/wRTtN5RSXt2DIEft3dx3zPuw/3WJQBCJfmEzvDiEKwoqMbGD9n49+qLSA==}
-    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-    hasBin: true
-    peerDependencies:
-      node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
-    peerDependenciesMeta:
-      node-notifier:
-        optional: true
+  istanbul-lib-source-maps@5.0.6:
     dependencies:
-      '@jest/core': 29.3.1_ts-node@10.9.1
-      '@jest/types': 29.3.1
-      import-local: 3.1.0
-      jest-cli: 29.3.1_qgsvtivhigskinhtkon55hue3i
+      '@jridgewell/trace-mapping': 0.3.25
+      debug: 4.3.7
+      istanbul-lib-coverage: 3.2.2
     transitivePeerDependencies:
-      - '@types/node'
       - supports-color
-      - ts-node
-    dev: true
 
-  /js-sdsl/4.1.5:
-    resolution: {integrity: sha512-08bOAKweV2NUC1wqTtf3qZlnpOX/R2DU9ikpjOHs0H+ibQv3zpncVQg6um4uYtRtrwIX8M4Nh3ytK4HGlYAq7Q==}
-    dev: true
+  istanbul-reports@3.1.7:
+    dependencies:
+      html-escaper: 2.0.2
+      istanbul-lib-report: 3.0.1
 
-  /js-tokens/4.0.0:
-    resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
-    dev: true
+  jackspeak@3.4.3:
+    dependencies:
+      '@isaacs/cliui': 8.0.2
+    optionalDependencies:
+      '@pkgjs/parseargs': 0.11.0
 
-  /js-yaml/3.14.1:
-    resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==}
-    hasBin: true
+  jackspeak@4.0.2:
     dependencies:
-      argparse: 1.0.10
-      esprima: 4.0.1
-    dev: true
+      '@isaacs/cliui': 8.0.2
 
-  /js-yaml/4.1.0:
-    resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==}
-    hasBin: true
+  jiti@1.21.6: {}
+
+  jiti@2.3.3: {}
+
+  js-tokens@4.0.0: {}
+
+  js-yaml@4.1.0:
     dependencies:
       argparse: 2.0.1
-    dev: true
-
-  /jsesc/2.5.2:
-    resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==}
-    engines: {node: '>=4'}
-    hasBin: true
-    dev: true
 
-  /json-parse-better-errors/1.0.2:
-    resolution: {integrity: sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==}
-    dev: true
+  jsesc@3.0.2: {}
 
-  /json-parse-even-better-errors/2.3.1:
-    resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==}
-    dev: true
+  json-buffer@3.0.1: {}
 
-  /json-schema-traverse/0.4.1:
-    resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==}
-    dev: true
+  json-parse-better-errors@1.0.2: {}
 
-  /json-stable-stringify-without-jsonify/1.0.1:
-    resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==}
-    dev: true
+  json-parse-even-better-errors@2.3.1: {}
 
-  /json-stringify-safe/5.0.1:
-    resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==}
-    dev: true
+  json-schema-traverse@0.4.1: {}
 
-  /json5/2.2.1:
-    resolution: {integrity: sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==}
-    engines: {node: '>=6'}
-    hasBin: true
-    dev: true
+  json-stable-stringify-without-jsonify@1.0.1: {}
 
-  /jsonc-parser/3.2.0:
-    resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==}
-    dev: true
+  json-stringify-safe@5.0.1: {}
 
-  /jsonparse/1.3.1:
-    resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==}
-    engines: {'0': node >= 0.2.0}
-    dev: true
+  json5@2.2.3: {}
 
-  /kind-of/6.0.3:
-    resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==}
-    engines: {node: '>=0.10.0'}
-    dev: true
+  jsonparse@1.3.1: {}
 
-  /kleur/3.0.3:
-    resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==}
-    engines: {node: '>=6'}
-    dev: true
+  keyv@4.5.4:
+    dependencies:
+      json-buffer: 3.0.1
 
-  /leven/3.1.0:
-    resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==}
-    engines: {node: '>=6'}
-    dev: true
+  kind-of@6.0.3: {}
 
-  /levn/0.4.1:
-    resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==}
-    engines: {node: '>= 0.8.0'}
+  levn@0.4.1:
     dependencies:
       prelude-ls: 1.2.1
       type-check: 0.4.0
-    dev: true
 
-  /lines-and-columns/1.2.4:
-    resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==}
-    dev: true
+  lilconfig@3.1.2: {}
 
-  /load-json-file/4.0.0:
-    resolution: {integrity: sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==}
-    engines: {node: '>=4'}
+  lines-and-columns@1.2.4: {}
+
+  linkify-it@5.0.0:
+    dependencies:
+      uc.micro: 2.1.0
+
+  load-json-file@4.0.0:
     dependencies:
-      graceful-fs: 4.2.10
+      graceful-fs: 4.2.11
       parse-json: 4.0.0
       pify: 3.0.0
       strip-bom: 3.0.0
-    dev: true
 
-  /locate-path/2.0.0:
-    resolution: {integrity: sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==}
-    engines: {node: '>=4'}
+  locate-path@2.0.0:
     dependencies:
       p-locate: 2.0.0
       path-exists: 3.0.0
-    dev: true
 
-  /locate-path/3.0.0:
-    resolution: {integrity: sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==}
-    engines: {node: '>=6'}
+  locate-path@3.0.0:
     dependencies:
       p-locate: 3.0.0
       path-exists: 3.0.0
-    dev: true
 
-  /locate-path/5.0.0:
-    resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==}
-    engines: {node: '>=8'}
+  locate-path@5.0.0:
     dependencies:
       p-locate: 4.1.0
-    dev: true
 
-  /locate-path/6.0.0:
-    resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
-    engines: {node: '>=10'}
+  locate-path@6.0.0:
     dependencies:
       p-locate: 5.0.0
-    dev: true
 
-  /lodash.ismatch/4.4.0:
-    resolution: {integrity: sha512-fPMfXjGQEV9Xsq/8MTSgUf255gawYRbjwMyDbcvDhXgV7enSZA0hynz6vMPnpAb5iONEzBHBPsT+0zes5Z301g==}
-    dev: true
+  lodash.ismatch@4.4.0: {}
 
-  /lodash.memoize/4.1.2:
-    resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==}
-    dev: true
+  lodash.memoize@4.1.2: {}
 
-  /lodash.merge/4.6.2:
-    resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==}
-    dev: true
+  lodash.merge@4.6.2: {}
 
-  /lodash/4.17.21:
-    resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==}
-    dev: true
+  lodash.uniq@4.5.0: {}
 
-  /lru-cache/6.0.0:
-    resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==}
-    engines: {node: '>=10'}
+  lodash@4.17.21: {}
+
+  loupe@3.1.1:
+    dependencies:
+      get-func-name: 2.0.2
+
+  lru-cache@10.4.3: {}
+
+  lru-cache@11.0.1: {}
+
+  lru-cache@5.1.1:
+    dependencies:
+      yallist: 3.1.1
+
+  lru-cache@6.0.0:
     dependencies:
       yallist: 4.0.0
-    dev: true
 
-  /lunr/2.3.9:
-    resolution: {integrity: sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==}
-    dev: true
+  lunr@2.3.9: {}
 
-  /magic-string/0.26.7:
-    resolution: {integrity: sha512-hX9XH3ziStPoPhJxLq1syWuZMxbDvGNbVchfrdCtanC7D13888bMFow61x8axrx+GfHLtVeAx2kxL7tTGRl+Ow==}
-    engines: {node: '>=12'}
+  magic-string@0.30.11:
     dependencies:
-      sourcemap-codec: 1.4.8
-    dev: true
+      '@jridgewell/sourcemap-codec': 1.5.0
 
-  /make-dir/3.1.0:
-    resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==}
-    engines: {node: '>=8'}
+  magicast@0.3.5:
     dependencies:
-      semver: 6.3.0
-    dev: true
+      '@babel/parser': 7.25.7
+      '@babel/types': 7.25.7
+      source-map-js: 1.2.1
 
-  /make-error/1.3.6:
-    resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==}
-    dev: true
+  make-dir@4.0.0:
+    dependencies:
+      semver: 7.6.3
+
+  map-obj@1.0.1: {}
 
-  /makeerror/1.0.12:
-    resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==}
+  map-obj@4.3.0: {}
+
+  markdown-it@14.1.0:
     dependencies:
-      tmpl: 1.0.5
-    dev: true
+      argparse: 2.0.1
+      entities: 4.5.0
+      linkify-it: 5.0.0
+      mdurl: 2.0.0
+      punycode.js: 2.3.1
+      uc.micro: 2.1.0
 
-  /map-obj/1.0.1:
-    resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==}
-    engines: {node: '>=0.10.0'}
-    dev: true
+  mdast-util-to-hast@13.2.0:
+    dependencies:
+      '@types/hast': 3.0.4
+      '@types/mdast': 4.0.4
+      '@ungap/structured-clone': 1.2.0
+      devlop: 1.1.0
+      micromark-util-sanitize-uri: 2.0.0
+      trim-lines: 3.0.1
+      unist-util-position: 5.0.0
+      unist-util-visit: 5.0.0
+      vfile: 6.0.3
 
-  /map-obj/4.3.0:
-    resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==}
-    engines: {node: '>=8'}
-    dev: true
+  mdn-data@2.0.28: {}
 
-  /marked/4.2.2:
-    resolution: {integrity: sha512-JjBTFTAvuTgANXx82a5vzK9JLSMoV6V3LBVn4Uhdso6t7vXrGx7g1Cd2r6NYSsxrYbQGFCMqBDhFHyK5q2UvcQ==}
-    engines: {node: '>= 12'}
-    hasBin: true
-    dev: true
+  mdn-data@2.0.30: {}
 
-  /meow/8.1.2:
-    resolution: {integrity: sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==}
-    engines: {node: '>=10'}
+  mdurl@2.0.0: {}
+
+  meow@8.1.2:
     dependencies:
-      '@types/minimist': 1.2.2
+      '@types/minimist': 1.2.5
       camelcase-keys: 6.2.2
       decamelize-keys: 1.1.1
       hard-rejection: 2.1.0
@@ -3101,425 +4703,491 @@ packages:
       trim-newlines: 3.0.1
       type-fest: 0.18.1
       yargs-parser: 20.2.9
-    dev: true
 
-  /merge-stream/2.0.0:
-    resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==}
-    dev: true
+  merge-stream@2.0.0: {}
 
-  /merge2/1.4.1:
-    resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
-    engines: {node: '>= 8'}
-    dev: true
+  merge2@1.4.1: {}
 
-  /micromatch/4.0.5:
-    resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==}
-    engines: {node: '>=8.6'}
+  micromark-util-character@2.1.0:
+    dependencies:
+      micromark-util-symbol: 2.0.0
+      micromark-util-types: 2.0.0
+
+  micromark-util-encode@2.0.0: {}
+
+  micromark-util-sanitize-uri@2.0.0:
     dependencies:
-      braces: 3.0.2
+      micromark-util-character: 2.1.0
+      micromark-util-encode: 2.0.0
+      micromark-util-symbol: 2.0.0
+
+  micromark-util-symbol@2.0.0: {}
+
+  micromark-util-types@2.0.0: {}
+
+  micromatch@4.0.8:
+    dependencies:
+      braces: 3.0.3
       picomatch: 2.3.1
-    dev: true
 
-  /mimic-fn/2.1.0:
-    resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==}
-    engines: {node: '>=6'}
-    dev: true
+  mimic-fn@4.0.0: {}
 
-  /min-indent/1.0.1:
-    resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==}
-    engines: {node: '>=4'}
-    dev: true
+  min-indent@1.0.1: {}
 
-  /minimatch/3.1.2:
-    resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
+  minimatch@10.0.1:
+    dependencies:
+      brace-expansion: 2.0.1
+
+  minimatch@3.1.2:
     dependencies:
       brace-expansion: 1.1.11
-    dev: true
 
-  /minimatch/5.1.0:
-    resolution: {integrity: sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==}
-    engines: {node: '>=10'}
+  minimatch@9.0.5:
     dependencies:
       brace-expansion: 2.0.1
-    dev: true
 
-  /minimist-options/4.1.0:
-    resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==}
-    engines: {node: '>= 6'}
+  minimist-options@4.1.0:
     dependencies:
       arrify: 1.0.1
       is-plain-obj: 1.1.0
       kind-of: 6.0.3
-    dev: true
 
-  /minimist/1.2.7:
-    resolution: {integrity: sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==}
-    dev: true
+  minimist@1.2.8: {}
 
-  /mkdirp/1.0.4:
-    resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==}
-    engines: {node: '>=10'}
-    hasBin: true
-    dev: true
+  minipass@3.3.6:
+    dependencies:
+      yallist: 4.0.0
 
-  /modify-values/1.0.1:
-    resolution: {integrity: sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw==}
-    engines: {node: '>=0.10.0'}
-    dev: true
+  minipass@5.0.0: {}
 
-  /ms/2.1.2:
-    resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==}
-    dev: true
+  minipass@7.1.2: {}
 
-  /natural-compare-lite/1.4.0:
-    resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==}
-    dev: true
+  minizlib@2.1.2:
+    dependencies:
+      minipass: 3.3.6
+      yallist: 4.0.0
 
-  /natural-compare/1.4.0:
-    resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
-    dev: true
+  mkdirp@1.0.4: {}
+
+  mkdist@1.6.0(typescript@5.6.2):
+    dependencies:
+      autoprefixer: 10.4.20(postcss@8.4.47)
+      citty: 0.1.6
+      cssnano: 7.0.6(postcss@8.4.47)
+      defu: 6.1.4
+      esbuild: 0.24.0
+      jiti: 1.21.6
+      mlly: 1.7.2
+      pathe: 1.1.2
+      pkg-types: 1.2.0
+      postcss: 8.4.47
+      postcss-nested: 6.2.0(postcss@8.4.47)
+      semver: 7.6.3
+      tinyglobby: 0.2.9
+    optionalDependencies:
+      typescript: 5.6.2
 
-  /neo-async/2.6.2:
-    resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==}
-    dev: true
+  mlly@1.7.2:
+    dependencies:
+      acorn: 8.12.1
+      pathe: 1.1.2
+      pkg-types: 1.2.0
+      ufo: 1.5.4
 
-  /node-int64/0.4.0:
-    resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==}
-    dev: true
+  modify-values@1.0.1: {}
 
-  /node-releases/2.0.6:
-    resolution: {integrity: sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==}
-    dev: true
+  mri@1.2.0: {}
 
-  /noms/0.0.0:
-    resolution: {integrity: sha512-lNDU9VJaOPxUmXcLb+HQFeUgQQPtMI24Gt6hgfuMHRJgMRHMF/qZ4HJD3GDru4sSw9IQl2jPjAYnQrdIeLbwow==}
-    dependencies:
-      inherits: 2.0.4
-      readable-stream: 1.0.34
-    dev: true
+  ms@2.1.3: {}
 
-  /normalize-package-data/2.5.0:
-    resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==}
+  nanoid@3.3.7: {}
+
+  natural-compare@1.4.0: {}
+
+  neo-async@2.6.2: {}
+
+  node-fetch-native@1.6.4: {}
+
+  node-releases@2.0.18: {}
+
+  normalize-package-data@2.5.0:
     dependencies:
       hosted-git-info: 2.8.9
-      resolve: 1.22.1
-      semver: 5.7.1
+      resolve: 1.22.8
+      semver: 5.7.2
       validate-npm-package-license: 3.0.4
-    dev: true
 
-  /normalize-package-data/3.0.3:
-    resolution: {integrity: sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==}
-    engines: {node: '>=10'}
+  normalize-package-data@3.0.3:
     dependencies:
       hosted-git-info: 4.1.0
-      is-core-module: 2.11.0
-      semver: 7.3.8
+      is-core-module: 2.15.1
+      semver: 7.6.3
       validate-npm-package-license: 3.0.4
-    dev: true
 
-  /normalize-path/3.0.0:
-    resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
-    engines: {node: '>=0.10.0'}
-    dev: true
+  normalize-path@3.0.0: {}
 
-  /npm-run-path/4.0.1:
-    resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==}
-    engines: {node: '>=8'}
+  normalize-range@0.1.2: {}
+
+  npm-run-path@5.3.0:
     dependencies:
-      path-key: 3.1.1
-    dev: true
+      path-key: 4.0.0
 
-  /once/1.4.0:
-    resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
+  nth-check@2.1.1:
     dependencies:
-      wrappy: 1.0.2
-    dev: true
+      boolbase: 1.0.0
 
-  /onetime/5.1.2:
-    resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==}
-    engines: {node: '>=6'}
+  nypm@0.3.12:
     dependencies:
-      mimic-fn: 2.1.0
-    dev: true
+      citty: 0.1.6
+      consola: 3.2.3
+      execa: 8.0.1
+      pathe: 1.1.2
+      pkg-types: 1.2.0
+      ufo: 1.5.4
 
-  /optionator/0.9.1:
-    resolution: {integrity: sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==}
-    engines: {node: '>= 0.8.0'}
+  ofetch@1.4.0:
+    dependencies:
+      destr: 2.0.3
+      node-fetch-native: 1.6.4
+      ufo: 1.5.4
+
+  ohash@1.1.4: {}
+
+  onetime@6.0.0:
+    dependencies:
+      mimic-fn: 4.0.0
+
+  oniguruma-to-js@0.4.3:
+    dependencies:
+      regex: 4.3.3
+
+  open@10.1.0:
+    dependencies:
+      default-browser: 5.2.1
+      define-lazy-prop: 3.0.0
+      is-inside-container: 1.0.0
+      is-wsl: 3.1.0
+
+  optionator@0.9.4:
     dependencies:
       deep-is: 0.1.4
       fast-levenshtein: 2.0.6
       levn: 0.4.1
       prelude-ls: 1.2.1
       type-check: 0.4.0
-      word-wrap: 1.2.3
-    dev: true
+      word-wrap: 1.2.5
 
-  /p-limit/1.3.0:
-    resolution: {integrity: sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==}
-    engines: {node: '>=4'}
+  p-limit@1.3.0:
     dependencies:
       p-try: 1.0.0
-    dev: true
 
-  /p-limit/2.3.0:
-    resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==}
-    engines: {node: '>=6'}
+  p-limit@2.3.0:
     dependencies:
       p-try: 2.2.0
-    dev: true
 
-  /p-limit/3.1.0:
-    resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==}
-    engines: {node: '>=10'}
+  p-limit@3.1.0:
     dependencies:
       yocto-queue: 0.1.0
-    dev: true
 
-  /p-locate/2.0.0:
-    resolution: {integrity: sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==}
-    engines: {node: '>=4'}
+  p-locate@2.0.0:
     dependencies:
       p-limit: 1.3.0
-    dev: true
 
-  /p-locate/3.0.0:
-    resolution: {integrity: sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==}
-    engines: {node: '>=6'}
+  p-locate@3.0.0:
     dependencies:
       p-limit: 2.3.0
-    dev: true
 
-  /p-locate/4.1.0:
-    resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==}
-    engines: {node: '>=8'}
+  p-locate@4.1.0:
     dependencies:
       p-limit: 2.3.0
-    dev: true
 
-  /p-locate/5.0.0:
-    resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==}
-    engines: {node: '>=10'}
+  p-locate@5.0.0:
     dependencies:
       p-limit: 3.1.0
-    dev: true
 
-  /p-try/1.0.0:
-    resolution: {integrity: sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==}
-    engines: {node: '>=4'}
-    dev: true
+  p-try@1.0.0: {}
 
-  /p-try/2.2.0:
-    resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==}
-    engines: {node: '>=6'}
-    dev: true
+  p-try@2.2.0: {}
 
-  /parent-module/1.0.1:
-    resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==}
-    engines: {node: '>=6'}
+  package-json-from-dist@1.0.1: {}
+
+  parent-module@1.0.1:
     dependencies:
       callsites: 3.1.0
-    dev: true
 
-  /parse-json/4.0.0:
-    resolution: {integrity: sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==}
-    engines: {node: '>=4'}
+  parse-json@4.0.0:
     dependencies:
       error-ex: 1.3.2
       json-parse-better-errors: 1.0.2
-    dev: true
 
-  /parse-json/5.2.0:
-    resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==}
-    engines: {node: '>=8'}
+  parse-json@5.2.0:
     dependencies:
-      '@babel/code-frame': 7.18.6
+      '@babel/code-frame': 7.25.7
       error-ex: 1.3.2
       json-parse-even-better-errors: 2.3.1
       lines-and-columns: 1.2.4
-    dev: true
 
-  /path-exists/3.0.0:
-    resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==}
-    engines: {node: '>=4'}
-    dev: true
+  path-exists@3.0.0: {}
 
-  /path-exists/4.0.0:
-    resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
-    engines: {node: '>=8'}
-    dev: true
+  path-exists@4.0.0: {}
 
-  /path-is-absolute/1.0.1:
-    resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==}
-    engines: {node: '>=0.10.0'}
-    dev: true
+  path-key@3.1.1: {}
 
-  /path-key/3.1.1:
-    resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==}
-    engines: {node: '>=8'}
-    dev: true
+  path-key@4.0.0: {}
 
-  /path-parse/1.0.7:
-    resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
-    dev: true
+  path-parse@1.0.7: {}
 
-  /path-type/3.0.0:
-    resolution: {integrity: sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==}
-    engines: {node: '>=4'}
+  path-scurry@1.11.1:
+    dependencies:
+      lru-cache: 10.4.3
+      minipass: 7.1.2
+
+  path-scurry@2.0.0:
+    dependencies:
+      lru-cache: 11.0.1
+      minipass: 7.1.2
+
+  path-type@3.0.0:
     dependencies:
       pify: 3.0.0
-    dev: true
 
-  /path-type/4.0.0:
-    resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==}
-    engines: {node: '>=8'}
-    dev: true
+  pathe@1.1.2: {}
 
-  /picocolors/1.0.0:
-    resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==}
-    dev: true
+  pathval@2.0.0: {}
 
-  /picomatch/2.3.1:
-    resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
-    engines: {node: '>=8.6'}
-    dev: true
+  perfect-debounce@1.0.0: {}
 
-  /pify/2.3.0:
-    resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==}
-    engines: {node: '>=0.10.0'}
-    dev: true
+  picocolors@1.1.0: {}
 
-  /pify/3.0.0:
-    resolution: {integrity: sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==}
-    engines: {node: '>=4'}
-    dev: true
+  picomatch@2.3.1: {}
 
-  /pirates/4.0.5:
-    resolution: {integrity: sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==}
-    engines: {node: '>= 6'}
-    dev: true
+  picomatch@4.0.2: {}
 
-  /pkg-dir/4.2.0:
-    resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==}
-    engines: {node: '>=8'}
+  pify@2.3.0: {}
+
+  pify@3.0.0: {}
+
+  pkg-types@1.2.0:
     dependencies:
-      find-up: 4.1.0
-    dev: true
+      confbox: 0.1.8
+      mlly: 1.7.2
+      pathe: 1.1.2
 
-  /prelude-ls/1.2.1:
-    resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
-    engines: {node: '>= 0.8.0'}
-    dev: true
+  postcss-calc@10.0.2(postcss@8.4.47):
+    dependencies:
+      postcss: 8.4.47
+      postcss-selector-parser: 6.1.2
+      postcss-value-parser: 4.2.0
 
-  /prettier-linter-helpers/1.0.0:
-    resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==}
-    engines: {node: '>=6.0.0'}
+  postcss-colormin@7.0.2(postcss@8.4.47):
     dependencies:
-      fast-diff: 1.2.0
-    dev: true
+      browserslist: 4.24.0
+      caniuse-api: 3.0.0
+      colord: 2.9.3
+      postcss: 8.4.47
+      postcss-value-parser: 4.2.0
 
-  /prettier/2.7.1:
-    resolution: {integrity: sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g==}
-    engines: {node: '>=10.13.0'}
-    hasBin: true
-    dev: true
+  postcss-convert-values@7.0.4(postcss@8.4.47):
+    dependencies:
+      browserslist: 4.24.0
+      postcss: 8.4.47
+      postcss-value-parser: 4.2.0
+
+  postcss-discard-comments@7.0.3(postcss@8.4.47):
+    dependencies:
+      postcss: 8.4.47
+      postcss-selector-parser: 6.1.2
+
+  postcss-discard-duplicates@7.0.1(postcss@8.4.47):
+    dependencies:
+      postcss: 8.4.47
+
+  postcss-discard-empty@7.0.0(postcss@8.4.47):
+    dependencies:
+      postcss: 8.4.47
+
+  postcss-discard-overridden@7.0.0(postcss@8.4.47):
+    dependencies:
+      postcss: 8.4.47
+
+  postcss-merge-longhand@7.0.4(postcss@8.4.47):
+    dependencies:
+      postcss: 8.4.47
+      postcss-value-parser: 4.2.0
+      stylehacks: 7.0.4(postcss@8.4.47)
+
+  postcss-merge-rules@7.0.4(postcss@8.4.47):
+    dependencies:
+      browserslist: 4.24.0
+      caniuse-api: 3.0.0
+      cssnano-utils: 5.0.0(postcss@8.4.47)
+      postcss: 8.4.47
+      postcss-selector-parser: 6.1.2
+
+  postcss-minify-font-values@7.0.0(postcss@8.4.47):
+    dependencies:
+      postcss: 8.4.47
+      postcss-value-parser: 4.2.0
+
+  postcss-minify-gradients@7.0.0(postcss@8.4.47):
+    dependencies:
+      colord: 2.9.3
+      cssnano-utils: 5.0.0(postcss@8.4.47)
+      postcss: 8.4.47
+      postcss-value-parser: 4.2.0
+
+  postcss-minify-params@7.0.2(postcss@8.4.47):
+    dependencies:
+      browserslist: 4.24.0
+      cssnano-utils: 5.0.0(postcss@8.4.47)
+      postcss: 8.4.47
+      postcss-value-parser: 4.2.0
+
+  postcss-minify-selectors@7.0.4(postcss@8.4.47):
+    dependencies:
+      cssesc: 3.0.0
+      postcss: 8.4.47
+      postcss-selector-parser: 6.1.2
+
+  postcss-nested@6.2.0(postcss@8.4.47):
+    dependencies:
+      postcss: 8.4.47
+      postcss-selector-parser: 6.1.2
+
+  postcss-normalize-charset@7.0.0(postcss@8.4.47):
+    dependencies:
+      postcss: 8.4.47
+
+  postcss-normalize-display-values@7.0.0(postcss@8.4.47):
+    dependencies:
+      postcss: 8.4.47
+      postcss-value-parser: 4.2.0
+
+  postcss-normalize-positions@7.0.0(postcss@8.4.47):
+    dependencies:
+      postcss: 8.4.47
+      postcss-value-parser: 4.2.0
+
+  postcss-normalize-repeat-style@7.0.0(postcss@8.4.47):
+    dependencies:
+      postcss: 8.4.47
+      postcss-value-parser: 4.2.0
+
+  postcss-normalize-string@7.0.0(postcss@8.4.47):
+    dependencies:
+      postcss: 8.4.47
+      postcss-value-parser: 4.2.0
+
+  postcss-normalize-timing-functions@7.0.0(postcss@8.4.47):
+    dependencies:
+      postcss: 8.4.47
+      postcss-value-parser: 4.2.0
+
+  postcss-normalize-unicode@7.0.2(postcss@8.4.47):
+    dependencies:
+      browserslist: 4.24.0
+      postcss: 8.4.47
+      postcss-value-parser: 4.2.0
+
+  postcss-normalize-url@7.0.0(postcss@8.4.47):
+    dependencies:
+      postcss: 8.4.47
+      postcss-value-parser: 4.2.0
+
+  postcss-normalize-whitespace@7.0.0(postcss@8.4.47):
+    dependencies:
+      postcss: 8.4.47
+      postcss-value-parser: 4.2.0
+
+  postcss-ordered-values@7.0.1(postcss@8.4.47):
+    dependencies:
+      cssnano-utils: 5.0.0(postcss@8.4.47)
+      postcss: 8.4.47
+      postcss-value-parser: 4.2.0
+
+  postcss-reduce-initial@7.0.2(postcss@8.4.47):
+    dependencies:
+      browserslist: 4.24.0
+      caniuse-api: 3.0.0
+      postcss: 8.4.47
+
+  postcss-reduce-transforms@7.0.0(postcss@8.4.47):
+    dependencies:
+      postcss: 8.4.47
+      postcss-value-parser: 4.2.0
+
+  postcss-selector-parser@6.1.2:
+    dependencies:
+      cssesc: 3.0.0
+      util-deprecate: 1.0.2
 
-  /pretty-format/29.3.1:
-    resolution: {integrity: sha512-FyLnmb1cYJV8biEIiRyzRFvs2lry7PPIvOqKVe1GCUEYg4YGmlx1qG9EJNMxArYm7piII4qb8UV1Pncq5dxmcg==}
-    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+  postcss-svgo@7.0.1(postcss@8.4.47):
     dependencies:
-      '@jest/schemas': 29.0.0
-      ansi-styles: 5.2.0
-      react-is: 18.2.0
-    dev: true
+      postcss: 8.4.47
+      postcss-value-parser: 4.2.0
+      svgo: 3.3.2
+
+  postcss-unique-selectors@7.0.3(postcss@8.4.47):
+    dependencies:
+      postcss: 8.4.47
+      postcss-selector-parser: 6.1.2
+
+  postcss-value-parser@4.2.0: {}
+
+  postcss@8.4.47:
+    dependencies:
+      nanoid: 3.3.7
+      picocolors: 1.1.0
+      source-map-js: 1.2.1
+
+  prelude-ls@1.2.1: {}
+
+  pretty-bytes@6.1.1: {}
+
+  process-nextick-args@2.0.1: {}
 
-  /process-nextick-args/2.0.1:
-    resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==}
-    dev: true
+  property-information@6.5.0: {}
 
-  /prompts/2.4.2:
-    resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==}
-    engines: {node: '>= 6'}
-    dependencies:
-      kleur: 3.0.3
-      sisteransi: 1.0.5
-    dev: true
+  punycode.js@2.3.1: {}
 
-  /punycode/2.1.1:
-    resolution: {integrity: sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==}
-    engines: {node: '>=6'}
-    dev: true
+  punycode@2.3.1: {}
 
-  /q/1.5.1:
-    resolution: {integrity: sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==}
-    engines: {node: '>=0.6.0', teleport: '>=0.2.0'}
-    dev: true
+  q@1.5.1: {}
 
-  /queue-microtask/1.2.3:
-    resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
-    dev: true
+  queue-microtask@1.2.3: {}
 
-  /quick-lru/4.0.1:
-    resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==}
-    engines: {node: '>=8'}
-    dev: true
+  quick-lru@4.0.1: {}
 
-  /randombytes/2.1.0:
-    resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==}
+  rc9@2.1.2:
     dependencies:
-      safe-buffer: 5.2.1
-    dev: true
+      defu: 6.1.4
+      destr: 2.0.3
 
-  /react-is/18.2.0:
-    resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==}
-    dev: true
-
-  /read-pkg-up/3.0.0:
-    resolution: {integrity: sha512-YFzFrVvpC6frF1sz8psoHDBGF7fLPc+llq/8NB43oagqWkx8ar5zYtsTORtOjw9W2RHLpWP+zTWwBvf1bCmcSw==}
-    engines: {node: '>=4'}
+  read-pkg-up@3.0.0:
     dependencies:
       find-up: 2.1.0
       read-pkg: 3.0.0
-    dev: true
 
-  /read-pkg-up/7.0.1:
-    resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==}
-    engines: {node: '>=8'}
+  read-pkg-up@7.0.1:
     dependencies:
       find-up: 4.1.0
       read-pkg: 5.2.0
       type-fest: 0.8.1
-    dev: true
 
-  /read-pkg/3.0.0:
-    resolution: {integrity: sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==}
-    engines: {node: '>=4'}
+  read-pkg@3.0.0:
     dependencies:
       load-json-file: 4.0.0
       normalize-package-data: 2.5.0
       path-type: 3.0.0
-    dev: true
 
-  /read-pkg/5.2.0:
-    resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==}
-    engines: {node: '>=8'}
+  read-pkg@5.2.0:
     dependencies:
-      '@types/normalize-package-data': 2.4.1
+      '@types/normalize-package-data': 2.4.4
       normalize-package-data: 2.5.0
       parse-json: 5.2.0
       type-fest: 0.6.0
-    dev: true
-
-  /readable-stream/1.0.34:
-    resolution: {integrity: sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==}
-    dependencies:
-      core-util-is: 1.0.3
-      inherits: 2.0.4
-      isarray: 0.0.1
-      string_decoder: 0.10.31
-    dev: true
 
-  /readable-stream/2.3.7:
-    resolution: {integrity: sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==}
+  readable-stream@2.3.8:
     dependencies:
       core-util-is: 1.0.3
       inherits: 2.0.4
@@ -3528,241 +5196,145 @@ packages:
       safe-buffer: 5.1.2
       string_decoder: 1.1.1
       util-deprecate: 1.0.2
-    dev: true
 
-  /readable-stream/3.6.0:
-    resolution: {integrity: sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==}
-    engines: {node: '>= 6'}
+  readable-stream@3.6.2:
     dependencies:
       inherits: 2.0.4
       string_decoder: 1.3.0
       util-deprecate: 1.0.2
-    dev: true
 
-  /redent/3.0.0:
-    resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==}
-    engines: {node: '>=8'}
+  readdirp@3.6.0:
     dependencies:
-      indent-string: 4.0.0
-      strip-indent: 3.0.0
-    dev: true
-
-  /regexpp/3.2.0:
-    resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==}
-    engines: {node: '>=8'}
-    dev: true
-
-  /require-directory/2.1.1:
-    resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==}
-    engines: {node: '>=0.10.0'}
-    dev: true
+      picomatch: 2.3.1
 
-  /resolve-cwd/3.0.0:
-    resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==}
-    engines: {node: '>=8'}
+  redent@3.0.0:
     dependencies:
-      resolve-from: 5.0.0
-    dev: true
+      indent-string: 4.0.0
+      strip-indent: 3.0.0
 
-  /resolve-from/4.0.0:
-    resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==}
-    engines: {node: '>=4'}
-    dev: true
+  regex@4.3.3: {}
 
-  /resolve-from/5.0.0:
-    resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==}
-    engines: {node: '>=8'}
-    dev: true
+  require-directory@2.1.1: {}
 
-  /resolve.exports/1.1.0:
-    resolution: {integrity: sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==}
-    engines: {node: '>=10'}
-    dev: true
+  resolve-from@4.0.0: {}
 
-  /resolve/1.22.1:
-    resolution: {integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==}
-    hasBin: true
+  resolve@1.22.8:
     dependencies:
-      is-core-module: 2.11.0
+      is-core-module: 2.15.1
       path-parse: 1.0.7
       supports-preserve-symlinks-flag: 1.0.0
-    dev: true
 
-  /reusify/1.0.4:
-    resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==}
-    engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
-    dev: true
+  reusify@1.0.4: {}
 
-  /rimraf/3.0.2:
-    resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==}
-    hasBin: true
+  rimraf@6.0.1:
     dependencies:
-      glob: 7.2.3
-    dev: true
+      glob: 11.0.0
+      package-json-from-dist: 1.0.1
 
-  /rollup-plugin-terser/7.0.2_rollup@3.3.0:
-    resolution: {integrity: sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==}
-    peerDependencies:
-      rollup: ^2.0.0
-    dependencies:
-      '@babel/code-frame': 7.18.6
-      jest-worker: 26.6.2
-      rollup: 3.3.0
-      serialize-javascript: 4.0.0
-      terser: 5.15.1
-    dev: true
-
-  /rollup/3.3.0:
-    resolution: {integrity: sha512-wqOV/vUJCYEbWsXvwCkgGWvgaEnsbn4jxBQWKpN816CqsmCimDmCNJI83c6if7QVD4v/zlyRzxN7U2yDT5rfoA==}
-    engines: {node: '>=14.18.0', npm: '>=8.0.0'}
-    hasBin: true
+  rollup-plugin-dts@6.1.1(rollup@4.24.0)(typescript@5.6.2):
+    dependencies:
+      magic-string: 0.30.11
+      rollup: 4.24.0
+      typescript: 5.6.2
     optionalDependencies:
-      fsevents: 2.3.2
-    dev: true
+      '@babel/code-frame': 7.25.7
 
-  /run-parallel/1.2.0:
-    resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
+  rollup@4.24.0:
+    dependencies:
+      '@types/estree': 1.0.6
+    optionalDependencies:
+      '@rollup/rollup-android-arm-eabi': 4.24.0
+      '@rollup/rollup-android-arm64': 4.24.0
+      '@rollup/rollup-darwin-arm64': 4.24.0
+      '@rollup/rollup-darwin-x64': 4.24.0
+      '@rollup/rollup-linux-arm-gnueabihf': 4.24.0
+      '@rollup/rollup-linux-arm-musleabihf': 4.24.0
+      '@rollup/rollup-linux-arm64-gnu': 4.24.0
+      '@rollup/rollup-linux-arm64-musl': 4.24.0
+      '@rollup/rollup-linux-powerpc64le-gnu': 4.24.0
+      '@rollup/rollup-linux-riscv64-gnu': 4.24.0
+      '@rollup/rollup-linux-s390x-gnu': 4.24.0
+      '@rollup/rollup-linux-x64-gnu': 4.24.0
+      '@rollup/rollup-linux-x64-musl': 4.24.0
+      '@rollup/rollup-win32-arm64-msvc': 4.24.0
+      '@rollup/rollup-win32-ia32-msvc': 4.24.0
+      '@rollup/rollup-win32-x64-msvc': 4.24.0
+      fsevents: 2.3.3
+
+  run-applescript@7.0.0: {}
+
+  run-parallel@1.2.0:
     dependencies:
       queue-microtask: 1.2.3
-    dev: true
 
-  /safe-buffer/5.1.2:
-    resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==}
-    dev: true
+  safe-buffer@5.1.2: {}
 
-  /safe-buffer/5.2.1:
-    resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
-    dev: true
+  safe-buffer@5.2.1: {}
 
-  /semver/5.7.1:
-    resolution: {integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==}
-    hasBin: true
-    dev: true
+  scule@1.3.0: {}
 
-  /semver/6.3.0:
-    resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==}
-    hasBin: true
-    dev: true
+  semver@5.7.2: {}
 
-  /semver/7.3.8:
-    resolution: {integrity: sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==}
-    engines: {node: '>=10'}
-    hasBin: true
-    dependencies:
-      lru-cache: 6.0.0
-    dev: true
+  semver@6.3.1: {}
 
-  /serialize-javascript/4.0.0:
-    resolution: {integrity: sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==}
-    dependencies:
-      randombytes: 2.1.0
-    dev: true
+  semver@7.6.3: {}
 
-  /shebang-command/2.0.0:
-    resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==}
-    engines: {node: '>=8'}
+  shebang-command@2.0.0:
     dependencies:
       shebang-regex: 3.0.0
-    dev: true
 
-  /shebang-regex/3.0.0:
-    resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
-    engines: {node: '>=8'}
-    dev: true
+  shebang-regex@3.0.0: {}
 
-  /shiki/0.11.1:
-    resolution: {integrity: sha512-EugY9VASFuDqOexOgXR18ZV+TbFrQHeCpEYaXamO+SZlsnT/2LxuLBX25GGtIrwaEVFXUAbUQ601SWE2rMwWHA==}
+  shiki@1.21.1:
     dependencies:
-      jsonc-parser: 3.2.0
-      vscode-oniguruma: 1.6.2
-      vscode-textmate: 6.0.0
-    dev: true
+      '@shikijs/core': 1.21.1
+      '@shikijs/engine-javascript': 1.21.1
+      '@shikijs/engine-oniguruma': 1.21.1
+      '@shikijs/types': 1.21.1
+      '@shikijs/vscode-textmate': 9.3.0
+      '@types/hast': 3.0.4
 
-  /signal-exit/3.0.7:
-    resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==}
-    dev: true
+  siginfo@2.0.0: {}
 
-  /sisteransi/1.0.5:
-    resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==}
-    dev: true
+  signal-exit@4.1.0: {}
 
-  /slash/3.0.0:
-    resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==}
-    engines: {node: '>=8'}
-    dev: true
-
-  /source-map-support/0.5.13:
-    resolution: {integrity: sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==}
-    dependencies:
-      buffer-from: 1.1.2
-      source-map: 0.6.1
-    dev: true
+  source-map-js@1.2.1: {}
 
-  /source-map-support/0.5.21:
-    resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==}
+  source-map-support@0.5.21:
     dependencies:
       buffer-from: 1.1.2
       source-map: 0.6.1
-    dev: true
+    optional: true
 
-  /source-map/0.6.1:
-    resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==}
-    engines: {node: '>=0.10.0'}
-    dev: true
+  source-map@0.6.1: {}
 
-  /sourcemap-codec/1.4.8:
-    resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==}
-    dev: true
+  space-separated-tokens@2.0.2: {}
 
-  /spdx-correct/3.1.1:
-    resolution: {integrity: sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==}
+  spdx-correct@3.2.0:
     dependencies:
       spdx-expression-parse: 3.0.1
-      spdx-license-ids: 3.0.12
-    dev: true
+      spdx-license-ids: 3.0.20
 
-  /spdx-exceptions/2.3.0:
-    resolution: {integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==}
-    dev: true
+  spdx-exceptions@2.5.0: {}
 
-  /spdx-expression-parse/3.0.1:
-    resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==}
+  spdx-expression-parse@3.0.1:
     dependencies:
-      spdx-exceptions: 2.3.0
-      spdx-license-ids: 3.0.12
-    dev: true
+      spdx-exceptions: 2.5.0
+      spdx-license-ids: 3.0.20
 
-  /spdx-license-ids/3.0.12:
-    resolution: {integrity: sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA==}
-    dev: true
+  spdx-license-ids@3.0.20: {}
 
-  /split/1.0.1:
-    resolution: {integrity: sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==}
+  split2@3.2.2:
     dependencies:
-      through: 2.3.8
-    dev: true
+      readable-stream: 3.6.2
 
-  /split2/3.2.2:
-    resolution: {integrity: sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==}
+  split@1.0.1:
     dependencies:
-      readable-stream: 3.6.0
-    dev: true
-
-  /sprintf-js/1.0.3:
-    resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==}
-    dev: true
+      through: 2.3.8
 
-  /stack-utils/2.0.6:
-    resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==}
-    engines: {node: '>=10'}
-    dependencies:
-      escape-string-regexp: 2.0.0
-    dev: true
+  stackback@0.0.2: {}
 
-  /standard-version/9.5.0:
-    resolution: {integrity: sha512-3zWJ/mmZQsOaO+fOlsa0+QK90pwhNd042qEcw6hKFNoLFs7peGyvPffpEBbK/DSGPbyOvli0mUIFv5A4qTjh2Q==}
-    engines: {node: '>=10'}
-    hasBin: true
+  standard-version@9.5.0:
     dependencies:
       chalk: 2.4.2
       conventional-changelog: 3.1.25
@@ -3775,481 +5347,396 @@ packages:
       figures: 3.2.0
       find-up: 5.0.0
       git-semver-tags: 4.1.1
-      semver: 7.3.8
+      semver: 7.6.3
       stringify-package: 1.0.1
       yargs: 16.2.0
-    dev: true
 
-  /string-length/4.0.2:
-    resolution: {integrity: sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==}
-    engines: {node: '>=10'}
-    dependencies:
-      char-regex: 1.0.2
-      strip-ansi: 6.0.1
-    dev: true
+  std-env@3.7.0: {}
 
-  /string-width/4.2.3:
-    resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
-    engines: {node: '>=8'}
+  string-width@4.2.3:
     dependencies:
       emoji-regex: 8.0.0
       is-fullwidth-code-point: 3.0.0
       strip-ansi: 6.0.1
-    dev: true
 
-  /string_decoder/0.10.31:
-    resolution: {integrity: sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==}
-    dev: true
+  string-width@5.1.2:
+    dependencies:
+      eastasianwidth: 0.2.0
+      emoji-regex: 9.2.2
+      strip-ansi: 7.1.0
 
-  /string_decoder/1.1.1:
-    resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==}
+  string_decoder@1.1.1:
     dependencies:
       safe-buffer: 5.1.2
-    dev: true
 
-  /string_decoder/1.3.0:
-    resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==}
+  string_decoder@1.3.0:
     dependencies:
       safe-buffer: 5.2.1
-    dev: true
 
-  /stringify-package/1.0.1:
-    resolution: {integrity: sha512-sa4DUQsYciMP1xhKWGuFM04fB0LG/9DlluZoSVywUMRNvzid6XucHK0/90xGxRoHrAaROrcHK1aPKaijCtSrhg==}
-    deprecated: This module is not used anymore, and has been replaced by @npmcli/package-json
-    dev: true
+  stringify-entities@4.0.4:
+    dependencies:
+      character-entities-html4: 2.1.0
+      character-entities-legacy: 3.0.0
 
-  /strip-ansi/6.0.1:
-    resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
-    engines: {node: '>=8'}
+  stringify-package@1.0.1: {}
+
+  strip-ansi@6.0.1:
     dependencies:
       ansi-regex: 5.0.1
-    dev: true
 
-  /strip-bom/3.0.0:
-    resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==}
-    engines: {node: '>=4'}
-    dev: true
+  strip-ansi@7.1.0:
+    dependencies:
+      ansi-regex: 6.1.0
 
-  /strip-bom/4.0.0:
-    resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==}
-    engines: {node: '>=8'}
-    dev: true
+  strip-bom@3.0.0: {}
 
-  /strip-final-newline/2.0.0:
-    resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==}
-    engines: {node: '>=6'}
-    dev: true
+  strip-final-newline@3.0.0: {}
 
-  /strip-indent/3.0.0:
-    resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==}
-    engines: {node: '>=8'}
+  strip-indent@3.0.0:
     dependencies:
       min-indent: 1.0.1
-    dev: true
 
-  /strip-json-comments/3.1.1:
-    resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
-    engines: {node: '>=8'}
-    dev: true
+  strip-json-comments@3.1.1: {}
 
-  /supports-color/5.5.0:
-    resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==}
-    engines: {node: '>=4'}
+  stylehacks@7.0.4(postcss@8.4.47):
+    dependencies:
+      browserslist: 4.24.0
+      postcss: 8.4.47
+      postcss-selector-parser: 6.1.2
+
+  supports-color@5.5.0:
     dependencies:
       has-flag: 3.0.0
-    dev: true
 
-  /supports-color/7.2.0:
-    resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==}
-    engines: {node: '>=8'}
+  supports-color@7.2.0:
     dependencies:
       has-flag: 4.0.0
-    dev: true
 
-  /supports-color/8.1.1:
-    resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==}
-    engines: {node: '>=10'}
+  supports-preserve-symlinks-flag@1.0.0: {}
+
+  svgo@3.3.2:
     dependencies:
-      has-flag: 4.0.0
-    dev: true
+      '@trysound/sax': 0.2.0
+      commander: 7.2.0
+      css-select: 5.1.0
+      css-tree: 2.3.1
+      css-what: 6.1.0
+      csso: 5.0.5
+      picocolors: 1.1.0
 
-  /supports-preserve-symlinks-flag/1.0.0:
-    resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
-    engines: {node: '>= 0.4'}
-    dev: true
+  tar@6.2.1:
+    dependencies:
+      chownr: 2.0.0
+      fs-minipass: 2.1.0
+      minipass: 5.0.0
+      minizlib: 2.1.2
+      mkdirp: 1.0.4
+      yallist: 4.0.0
 
-  /terser/5.15.1:
-    resolution: {integrity: sha512-K1faMUvpm/FBxjBXud0LWVAGxmvoPbZbfTCYbSgaaYQaIXI3/TdI7a7ZGA73Zrou6Q8Zmz3oeUTsp/dj+ag2Xw==}
-    engines: {node: '>=10'}
-    hasBin: true
+  terser@5.34.1:
     dependencies:
-      '@jridgewell/source-map': 0.3.2
-      acorn: 8.8.1
+      '@jridgewell/source-map': 0.3.6
+      acorn: 8.12.1
       commander: 2.20.3
       source-map-support: 0.5.21
-    dev: true
+    optional: true
 
-  /test-exclude/6.0.0:
-    resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==}
-    engines: {node: '>=8'}
+  test-exclude@7.0.1:
     dependencies:
       '@istanbuljs/schema': 0.1.3
-      glob: 7.2.3
-      minimatch: 3.1.2
-    dev: true
-
-  /text-extensions/1.9.0:
-    resolution: {integrity: sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==}
-    engines: {node: '>=0.10'}
-    dev: true
+      glob: 10.4.5
+      minimatch: 9.0.5
 
-  /text-table/0.2.0:
-    resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==}
-    dev: true
+  text-extensions@1.9.0: {}
 
-  /through/2.3.8:
-    resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==}
-    dev: true
+  text-table@0.2.0: {}
 
-  /through2/2.0.5:
-    resolution: {integrity: sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==}
+  through2@2.0.5:
     dependencies:
-      readable-stream: 2.3.7
+      readable-stream: 2.3.8
       xtend: 4.0.2
-    dev: true
 
-  /through2/4.0.2:
-    resolution: {integrity: sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==}
+  through2@4.0.2:
     dependencies:
-      readable-stream: 3.6.0
-    dev: true
+      readable-stream: 3.6.2
 
-  /tmpl/1.0.5:
-    resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==}
-    dev: true
+  through@2.3.8: {}
 
-  /to-fast-properties/2.0.0:
-    resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==}
-    engines: {node: '>=4'}
-    dev: true
+  tinybench@2.9.0: {}
 
-  /to-regex-range/5.0.1:
-    resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
-    engines: {node: '>=8.0'}
+  tinyexec@0.3.0: {}
+
+  tinyglobby@0.2.9:
     dependencies:
-      is-number: 7.0.0
-    dev: true
+      fdir: 6.4.0(picomatch@4.0.2)
+      picomatch: 4.0.2
 
-  /trim-newlines/3.0.1:
-    resolution: {integrity: sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==}
-    engines: {node: '>=8'}
-    dev: true
+  tinypool@1.0.1: {}
 
-  /ts-jest/29.0.3_r24ewcothphvclnu77pxb4u4se:
-    resolution: {integrity: sha512-Ibygvmuyq1qp/z3yTh9QTwVVAbFdDy/+4BtIQR2sp6baF2SJU/8CKK/hhnGIDY2L90Az2jIqTwZPnN2p+BweiQ==}
-    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-    hasBin: true
-    peerDependencies:
-      '@babel/core': '>=7.0.0-beta.0 <8'
-      '@jest/types': ^29.0.0
-      babel-jest: ^29.0.0
-      esbuild: '*'
-      jest: ^29.0.0
-      typescript: '>=4.3'
-    peerDependenciesMeta:
-      '@babel/core':
-        optional: true
-      '@jest/types':
-        optional: true
-      babel-jest:
-        optional: true
-      esbuild:
-        optional: true
-    dependencies:
-      bs-logger: 0.2.6
-      fast-json-stable-stringify: 2.1.0
-      jest: 29.3.1_qgsvtivhigskinhtkon55hue3i
-      jest-util: 29.3.1
-      json5: 2.2.1
-      lodash.memoize: 4.1.2
-      make-error: 1.3.6
-      semver: 7.3.8
-      typescript: 4.8.4
-      yargs-parser: 21.1.1
-    dev: true
-
-  /ts-node/10.9.1_st2htz3eb6effj72w7hhhfw6hu:
-    resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==}
-    hasBin: true
-    peerDependencies:
-      '@swc/core': '>=1.2.50'
-      '@swc/wasm': '>=1.2.50'
-      '@types/node': '*'
-      typescript: '>=2.7'
-    peerDependenciesMeta:
-      '@swc/core':
-        optional: true
-      '@swc/wasm':
-        optional: true
+  tinyrainbow@1.2.0: {}
+
+  tinyspy@3.0.2: {}
+
+  to-fast-properties@2.0.0: {}
+
+  to-regex-range@5.0.1:
     dependencies:
-      '@cspotcode/source-map-support': 0.8.1
-      '@tsconfig/node10': 1.0.9
-      '@tsconfig/node12': 1.0.11
-      '@tsconfig/node14': 1.0.3
-      '@tsconfig/node16': 1.0.3
-      '@types/node': 16.0.0
-      acorn: 8.8.1
-      acorn-walk: 8.2.0
-      arg: 4.1.3
-      create-require: 1.1.1
-      diff: 4.0.2
-      make-error: 1.3.6
-      typescript: 4.8.4
-      v8-compile-cache-lib: 3.0.1
-      yn: 3.1.1
-    dev: true
-
-  /tslib/1.14.1:
-    resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==}
-    dev: true
-
-  /tslib/2.4.1:
-    resolution: {integrity: sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==}
-    dev: true
-
-  /tsutils/3.21.0_typescript@4.8.4:
-    resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==}
-    engines: {node: '>= 6'}
-    peerDependencies:
-      typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta'
+      is-number: 7.0.0
+
+  trim-lines@3.0.1: {}
+
+  trim-newlines@3.0.1: {}
+
+  ts-api-utils@1.3.0(typescript@5.6.2):
     dependencies:
-      tslib: 1.14.1
-      typescript: 4.8.4
-    dev: true
+      typescript: 5.6.2
 
-  /type-check/0.4.0:
-    resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==}
-    engines: {node: '>= 0.8.0'}
+  type-check@0.4.0:
     dependencies:
       prelude-ls: 1.2.1
-    dev: true
 
-  /type-detect/4.0.8:
-    resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==}
-    engines: {node: '>=4'}
-    dev: true
+  type-fest@0.18.1: {}
 
-  /type-fest/0.18.1:
-    resolution: {integrity: sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==}
-    engines: {node: '>=10'}
-    dev: true
+  type-fest@0.6.0: {}
 
-  /type-fest/0.20.2:
-    resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==}
-    engines: {node: '>=10'}
-    dev: true
+  type-fest@0.8.1: {}
 
-  /type-fest/0.21.3:
-    resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==}
-    engines: {node: '>=10'}
-    dev: true
+  typedarray@0.0.6: {}
 
-  /type-fest/0.6.0:
-    resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==}
-    engines: {node: '>=8'}
-    dev: true
+  typedoc@0.26.8(typescript@5.6.2):
+    dependencies:
+      lunr: 2.3.9
+      markdown-it: 14.1.0
+      minimatch: 9.0.5
+      shiki: 1.21.1
+      typescript: 5.6.2
+      yaml: 2.5.1
 
-  /type-fest/0.8.1:
-    resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==}
-    engines: {node: '>=8'}
-    dev: true
+  typescript-eslint@8.8.1(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.2):
+    dependencies:
+      '@typescript-eslint/eslint-plugin': 8.8.1(@typescript-eslint/parser@8.8.1(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.2))(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.2)
+      '@typescript-eslint/parser': 8.8.1(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.2)
+      '@typescript-eslint/utils': 8.8.1(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.2)
+    optionalDependencies:
+      typescript: 5.6.2
+    transitivePeerDependencies:
+      - eslint
+      - supports-color
 
-  /typedarray/0.0.6:
-    resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==}
-    dev: true
+  typescript@5.6.2: {}
 
-  /typedoc/0.23.20_typescript@4.8.4:
-    resolution: {integrity: sha512-nfb4Mx05ZZZXux3zPcLuc7+3TVePDW3jTdEBqXdQzJUyEILxoprgPIiTChbvci9crkqNJG9YESmfCptuh9Gn3g==}
-    engines: {node: '>= 14.14'}
-    hasBin: true
-    peerDependencies:
-      typescript: 4.6.x || 4.7.x || 4.8.x
-    dependencies:
-      lunr: 2.3.9
-      marked: 4.2.2
-      minimatch: 5.1.0
-      shiki: 0.11.1
-      typescript: 4.8.4
-    dev: true
-
-  /typescript/4.8.4:
-    resolution: {integrity: sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ==}
-    engines: {node: '>=4.2.0'}
-    hasBin: true
-    dev: true
+  uc.micro@2.1.0: {}
 
-  /uglify-js/3.17.4:
-    resolution: {integrity: sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==}
-    engines: {node: '>=0.8.0'}
-    hasBin: true
-    requiresBuild: true
-    dev: true
+  ufo@1.5.4: {}
+
+  uglify-js@3.19.3:
     optional: true
 
-  /untildify/4.0.0:
-    resolution: {integrity: sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==}
-    engines: {node: '>=8'}
-    dev: true
+  unbuild@3.0.0-rc.11(typescript@5.6.2):
+    dependencies:
+      '@rollup/plugin-alias': 5.1.1(rollup@4.24.0)
+      '@rollup/plugin-commonjs': 28.0.0(rollup@4.24.0)
+      '@rollup/plugin-json': 6.1.0(rollup@4.24.0)
+      '@rollup/plugin-node-resolve': 15.3.0(rollup@4.24.0)
+      '@rollup/plugin-replace': 6.0.1(rollup@4.24.0)
+      '@rollup/pluginutils': 5.1.2(rollup@4.24.0)
+      citty: 0.1.6
+      consola: 3.2.3
+      defu: 6.1.4
+      esbuild: 0.24.0
+      hookable: 5.5.3
+      jiti: 2.3.3
+      magic-string: 0.30.11
+      mkdist: 1.6.0(typescript@5.6.2)
+      mlly: 1.7.2
+      pathe: 1.1.2
+      pkg-types: 1.2.0
+      pretty-bytes: 6.1.1
+      rollup: 4.24.0
+      rollup-plugin-dts: 6.1.1(rollup@4.24.0)(typescript@5.6.2)
+      scule: 1.3.0
+      tinyglobby: 0.2.9
+      ufo: 1.5.4
+      untyped: 1.5.1
+    optionalDependencies:
+      typescript: 5.6.2
+    transitivePeerDependencies:
+      - sass
+      - supports-color
+      - vue-tsc
 
-  /update-browserslist-db/1.0.10_browserslist@4.21.4:
-    resolution: {integrity: sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==}
-    hasBin: true
-    peerDependencies:
-      browserslist: '>= 4.21.0'
+  undici-types@6.19.8: {}
+
+  unist-util-is@6.0.0:
     dependencies:
-      browserslist: 4.21.4
-      escalade: 3.1.1
-      picocolors: 1.0.0
-    dev: true
+      '@types/unist': 3.0.3
 
-  /uri-js/4.4.1:
-    resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
+  unist-util-position@5.0.0:
     dependencies:
-      punycode: 2.1.1
-    dev: true
+      '@types/unist': 3.0.3
 
-  /util-deprecate/1.0.2:
-    resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
-    dev: true
+  unist-util-stringify-position@4.0.0:
+    dependencies:
+      '@types/unist': 3.0.3
 
-  /v8-compile-cache-lib/3.0.1:
-    resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==}
-    dev: true
+  unist-util-visit-parents@6.0.1:
+    dependencies:
+      '@types/unist': 3.0.3
+      unist-util-is: 6.0.0
 
-  /v8-to-istanbul/9.0.1:
-    resolution: {integrity: sha512-74Y4LqY74kLE6IFyIjPtkSTWzUZmj8tdHT9Ii/26dvQ6K9Dl2NbEfj0XgU2sHCtKgt5VupqhlO/5aWuqS+IY1w==}
-    engines: {node: '>=10.12.0'}
+  unist-util-visit@5.0.0:
     dependencies:
-      '@jridgewell/trace-mapping': 0.3.17
-      '@types/istanbul-lib-coverage': 2.0.4
-      convert-source-map: 1.9.0
-    dev: true
+      '@types/unist': 3.0.3
+      unist-util-is: 6.0.0
+      unist-util-visit-parents: 6.0.1
 
-  /validate-npm-package-license/3.0.4:
-    resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==}
+  untyped@1.5.1:
+    dependencies:
+      '@babel/core': 7.25.7
+      '@babel/standalone': 7.25.7
+      '@babel/types': 7.25.7
+      defu: 6.1.4
+      jiti: 2.3.3
+      mri: 1.2.0
+      scule: 1.3.0
+    transitivePeerDependencies:
+      - supports-color
+
+  update-browserslist-db@1.1.1(browserslist@4.24.0):
     dependencies:
-      spdx-correct: 3.1.1
+      browserslist: 4.24.0
+      escalade: 3.2.0
+      picocolors: 1.1.0
+
+  uri-js@4.4.1:
+    dependencies:
+      punycode: 2.3.1
+
+  util-deprecate@1.0.2: {}
+
+  validate-npm-package-license@3.0.4:
+    dependencies:
+      spdx-correct: 3.2.0
       spdx-expression-parse: 3.0.1
-    dev: true
 
-  /vscode-oniguruma/1.6.2:
-    resolution: {integrity: sha512-KH8+KKov5eS/9WhofZR8M8dMHWN2gTxjMsG4jd04YhpbPR91fUj7rYQ2/XjeHCJWbg7X++ApRIU9NUwM2vTvLA==}
-    dev: true
+  vfile-message@4.0.2:
+    dependencies:
+      '@types/unist': 3.0.3
+      unist-util-stringify-position: 4.0.0
 
-  /vscode-textmate/6.0.0:
-    resolution: {integrity: sha512-gu73tuZfJgu+mvCSy4UZwd2JXykjK9zAZsfmDeut5dx/1a7FeTk0XwJsSuqQn+cuMCGVbIBfl+s53X4T19DnzQ==}
-    dev: true
+  vfile@6.0.3:
+    dependencies:
+      '@types/unist': 3.0.3
+      vfile-message: 4.0.2
 
-  /walker/1.0.8:
-    resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==}
+  vite-node@2.1.2(@types/node@22.7.4)(terser@5.34.1):
     dependencies:
-      makeerror: 1.0.12
-    dev: true
+      cac: 6.7.14
+      debug: 4.3.7
+      pathe: 1.1.2
+      vite: 5.4.8(@types/node@22.7.4)(terser@5.34.1)
+    transitivePeerDependencies:
+      - '@types/node'
+      - less
+      - lightningcss
+      - sass
+      - sass-embedded
+      - stylus
+      - sugarss
+      - supports-color
+      - terser
 
-  /which/2.0.2:
-    resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
-    engines: {node: '>= 8'}
-    hasBin: true
+  vite@5.4.8(@types/node@22.7.4)(terser@5.34.1):
+    dependencies:
+      esbuild: 0.21.5
+      postcss: 8.4.47
+      rollup: 4.24.0
+    optionalDependencies:
+      '@types/node': 22.7.4
+      fsevents: 2.3.3
+      terser: 5.34.1
+
+  vitest@2.1.2(@types/node@22.7.4)(terser@5.34.1):
+    dependencies:
+      '@vitest/expect': 2.1.2
+      '@vitest/mocker': 2.1.2(@vitest/spy@2.1.2)(vite@5.4.8(@types/node@22.7.4)(terser@5.34.1))
+      '@vitest/pretty-format': 2.1.2
+      '@vitest/runner': 2.1.2
+      '@vitest/snapshot': 2.1.2
+      '@vitest/spy': 2.1.2
+      '@vitest/utils': 2.1.2
+      chai: 5.1.1
+      debug: 4.3.7
+      magic-string: 0.30.11
+      pathe: 1.1.2
+      std-env: 3.7.0
+      tinybench: 2.9.0
+      tinyexec: 0.3.0
+      tinypool: 1.0.1
+      tinyrainbow: 1.2.0
+      vite: 5.4.8(@types/node@22.7.4)(terser@5.34.1)
+      vite-node: 2.1.2(@types/node@22.7.4)(terser@5.34.1)
+      why-is-node-running: 2.3.0
+    optionalDependencies:
+      '@types/node': 22.7.4
+    transitivePeerDependencies:
+      - less
+      - lightningcss
+      - msw
+      - sass
+      - sass-embedded
+      - stylus
+      - sugarss
+      - supports-color
+      - terser
+
+  which@2.0.2:
     dependencies:
       isexe: 2.0.0
-    dev: true
 
-  /word-wrap/1.2.3:
-    resolution: {integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==}
-    engines: {node: '>=0.10.0'}
-    dev: true
+  why-is-node-running@2.3.0:
+    dependencies:
+      siginfo: 2.0.0
+      stackback: 0.0.2
 
-  /wordwrap/1.0.0:
-    resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==}
-    dev: true
+  word-wrap@1.2.5: {}
 
-  /wrap-ansi/7.0.0:
-    resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==}
-    engines: {node: '>=10'}
+  wordwrap@1.0.0: {}
+
+  wrap-ansi@7.0.0:
     dependencies:
       ansi-styles: 4.3.0
       string-width: 4.2.3
       strip-ansi: 6.0.1
-    dev: true
-
-  /wrappy/1.0.2:
-    resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
-    dev: true
 
-  /write-file-atomic/4.0.2:
-    resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==}
-    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
+  wrap-ansi@8.1.0:
     dependencies:
-      imurmurhash: 0.1.4
-      signal-exit: 3.0.7
-    dev: true
+      ansi-styles: 6.2.1
+      string-width: 5.1.2
+      strip-ansi: 7.1.0
 
-  /xtend/4.0.2:
-    resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==}
-    engines: {node: '>=0.4'}
-    dev: true
+  xtend@4.0.2: {}
 
-  /y18n/5.0.8:
-    resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==}
-    engines: {node: '>=10'}
-    dev: true
+  y18n@5.0.8: {}
 
-  /yallist/4.0.0:
-    resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==}
-    dev: true
+  yallist@3.1.1: {}
 
-  /yargs-parser/20.2.9:
-    resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==}
-    engines: {node: '>=10'}
-    dev: true
+  yallist@4.0.0: {}
 
-  /yargs-parser/21.1.1:
-    resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==}
-    engines: {node: '>=12'}
-    dev: true
+  yaml@2.5.1: {}
 
-  /yargs/16.2.0:
-    resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==}
-    engines: {node: '>=10'}
+  yargs-parser@20.2.9: {}
+
+  yargs@16.2.0:
     dependencies:
       cliui: 7.0.4
-      escalade: 3.1.1
+      escalade: 3.2.0
       get-caller-file: 2.0.5
       require-directory: 2.1.1
       string-width: 4.2.3
       y18n: 5.0.8
       yargs-parser: 20.2.9
-    dev: true
-
-  /yargs/17.6.2:
-    resolution: {integrity: sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw==}
-    engines: {node: '>=12'}
-    dependencies:
-      cliui: 8.0.1
-      escalade: 3.1.1
-      get-caller-file: 2.0.5
-      require-directory: 2.1.1
-      string-width: 4.2.3
-      y18n: 5.0.8
-      yargs-parser: 21.1.1
-    dev: true
 
-  /yn/3.1.1:
-    resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==}
-    engines: {node: '>=6'}
-    dev: true
+  yocto-queue@0.1.0: {}
 
-  /yocto-queue/0.1.0:
-    resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
-    engines: {node: '>=10'}
-    dev: true
+  zwitch@2.0.4: {}
diff --git a/src/ayaStringSplitter.ts b/src/ayaStringSplitter.ts
index 6737ec6..025efdf 100644
--- a/src/ayaStringSplitter.ts
+++ b/src/ayaStringSplitter.ts
@@ -1,4 +1,5 @@
-import { SurahAyahSegment, AyahNo } from "./types"
+import { AyahNo, SurahAyahSegment } from "./types"
+import { checkValidSurahAyah } from "./validation"
 
 /**
  *  Turns String of type "x:y" or "x:y1-y2" to array [x,y] or [x,[y1,y2]] respectively
@@ -6,14 +7,35 @@ import { SurahAyahSegment, AyahNo } from "./types"
  * @returns {array} array [x,y] or [x,[y1,y2]] respectively
  */
 export function ayaStringSplitter(str: string): SurahAyahSegment {
-  const [surah, ayahs] = str.trim().split(":")
-  if (!ayahs) {
+  const [surahStr, ayahsStr] = str.trim().split(":")
+  const surah = parseInt(surahStr, 10)
+
+  if (isNaN(surah)) {
+    throw "Error in surah format " + str
+  }
+
+  if (!ayahsStr) {
     throw "Error in data " + str
   }
-  return [
-    +surah,
-    ayahs.includes("-")
-      ? (ayahs.split("-").map(Number) as [AyahNo, AyahNo])
-      : +ayahs,
-  ]
+
+  let ayahs: AyahNo | [AyahNo, AyahNo]
+  if (ayahsStr.includes("-")) {
+    ayahs = ayahsStr.split("-").map((a) => {
+      const ayah = parseInt(a, 10)
+      if (isNaN(ayah) || ayah === 0) {
+        throw "Error in ayah " + a
+      }
+      return ayah
+    }) as [AyahNo, AyahNo]
+    if (ayahs[0] > ayahs[1]) throw "Error in ayah range " + str
+  }
+  else {
+    ayahs = parseInt(ayahsStr, 10)
+    if (isNaN(ayahs) || ayahs === 0) {
+      throw "Error in data " + str
+    }
+    checkValidSurahAyah(surah, ayahs)
+  }
+
+  return [surah, ayahs]
 }
diff --git a/src/const.ts b/src/const.ts
index 38649be..4bb8d5f 100644
--- a/src/const.ts
+++ b/src/const.ts
@@ -1,4 +1,4 @@
-type QuranMeta = {
+export type QuranMeta = {
   numAyas: number
   numSuras: number
   numPages: number
@@ -11,5 +11,5 @@ export const meta: Readonly<QuranMeta> = Object.freeze({
   numSuras: 114,
   numPages: 604,
   numJuzs: 30,
-  manzilCount: 7,
+  manzilCount: 7
 })
diff --git a/src/findAyaidBySurah.ts b/src/findAyaidBySurah.ts
new file mode 100644
index 0000000..4560192
--- /dev/null
+++ b/src/findAyaidBySurah.ts
@@ -0,0 +1,15 @@
+import { getSurahMeta } from "./getSurahMeta"
+import { AyahId, AyahNo, Surah } from "./types"
+import { checkValidSurahAyah } from "./validation"
+
+/**
+ * Get the ayah ID for the given surah and ayah number.
+ * @param surah - The surah number.
+ * @param ayah - The ayah number within the surah.
+ * @returns The ayah ID for the given surah and ayah number.
+ */
+export function findAyaidBySurah(surah: Surah, ayah: AyahNo): AyahId {
+  checkValidSurahAyah(surah, ayah)
+  const [startAyahId] = getSurahMeta(surah)
+  return startAyahId + ayah
+}
diff --git a/src/findJuz.ts b/src/findJuz.ts
new file mode 100644
index 0000000..1ac8168
--- /dev/null
+++ b/src/findJuz.ts
@@ -0,0 +1,21 @@
+import { findAyaidBySurah } from "./findAyaidBySurah"
+import { findJuzByAyaid } from "./findJuzByAyaid"
+import { AyahId, AyahNo, Juz, Surah } from "./types"
+import { checkValidSurahAyah } from "./validation"
+
+/**
+ * Finds the Juz (part) of the Quran that the given Ayah (verse) belongs to.
+ *
+ * @param surah - The Surah (chapter) number.
+ * @param ayah - The Ayah (verse) number. Defaults to 1 if not provided.
+ * @param ayahMode - If true, the `ayah` parameter is treated as an Ayah ID instead of a Surah and Ayah number.
+ * @returns The Juz (part) number that the given Ayah belongs to.
+ */
+export function findJuz(surah: Surah, ayah: AyahNo = 1, ayahMode = false): Juz {
+  const ayahId: AyahId = ayahMode
+    ? ayah
+    : ((checkValidSurahAyah(surah, ayah)
+      && findAyaidBySurah(surah, ayah)) as AyahId)
+
+  return findJuzByAyaid(ayahId)
+}
diff --git a/src/findJuzAndShift.ts b/src/findJuzAndShift.ts
new file mode 100644
index 0000000..99fe12f
--- /dev/null
+++ b/src/findJuzAndShift.ts
@@ -0,0 +1,42 @@
+import { findAyaidBySurah } from "./findAyaidBySurah"
+import { findJuzByAyaid } from "./findJuzByAyaid"
+import { findSurahByAyaid } from "./findSurahByAyaid"
+import { JuzList } from "./lists/juzList"
+import { SuraList } from "./lists/surahList"
+import { AyahId, AyahNo, Juz, Surah } from "./types"
+import { checkValidAyahId, checkValidSurah } from "./validation"
+
+/**
+ * Finds the juz (section) that contains the specified ayah (verse) and calculates the number of ayahs between the start of the juz and the start of the surah (chapter) that contains the ayah.
+ *
+ * @param surah - The surah (chapter) that contains the ayah.
+ * @param ayah - The ayah (verse) number.
+ * @param ayahMode - A boolean flag indicating whether the `ayah` parameter represents an ayah number or an ayah ID.
+ * @returns An object containing the following properties:
+ *   - `juz`: The juz (section) that contains the ayah.
+ *   - `leftAyahId`: The ayah ID of the first ayah in the juz.
+ *   - `ayahsBetweenJuzSurah`: The number of ayahs between the start of the juz and the start of the surah (positive if the surah starts is in the juz, negative if the surah starts before the juz).
+ */
+export function findJuzAndShift(
+  surah: Surah,
+  ayah: AyahNo,
+  ayahMode = false
+): {
+    juz: Juz
+    leftAyahId: AyahId
+    ayahsBetweenJuzSurah: number
+  } {
+  const ayahId: AyahId = ayahMode
+    ? ((checkValidAyahId(ayah) && ayah) as AyahId)
+    : ((checkValidSurah(surah) && findAyaidBySurah(surah, ayah)) as AyahId)
+
+  const juz = findJuzByAyaid(ayahId)
+  const leftAyahId = JuzList[juz]
+  if (ayahMode) [surah] = findSurahByAyaid(ayahId)
+  const [surahStartAyahId] = SuraList[surah]
+  return {
+    juz,
+    ayahsBetweenJuzSurah: surahStartAyahId - leftAyahId + 1,
+    leftAyahId
+  }
+}
diff --git a/src/findJuzByAyaid.ts b/src/findJuzByAyaid.ts
new file mode 100644
index 0000000..4134fd7
--- /dev/null
+++ b/src/findJuzByAyaid.ts
@@ -0,0 +1,15 @@
+import { JuzList } from "./lists/juzList"
+import { AyahId, Juz } from "./types"
+import { checkValidAyahId } from "./validation"
+
+/**
+ * Finds the Juz (part) of the Quran that contains the given Ayah (verse) ID.
+ *
+ * @param ayaId - The ID of the Ayah (verse) to find the Juz for.
+ * @returns The Juz (part) of the Quran that contains the given Ayah ID.
+ */
+export function findJuzByAyaid(ayaId: AyahId): Juz {
+  checkValidAyahId(ayaId)
+
+  return JuzList.findIndex(x => x > ayaId) - 1
+}
diff --git a/src/findJuzHizb.ts b/src/findJuzHizb.ts
new file mode 100644
index 0000000..87f0a12
--- /dev/null
+++ b/src/findJuzHizb.ts
@@ -0,0 +1,24 @@
+import { findAyaidBySurah } from "./findAyaidBySurah"
+import { findJuzHizbByAyaid } from "./findJuzHizbByAyaid"
+import { AyahId, AyahNo, JuzHizb, Surah } from "./types"
+import { checkValidSurah } from "./validation"
+
+/**
+ * Finds the Juz (part) and Hizb (section) of the Quran that the given Ayah (verse) belongs to.
+ *
+ * @param surah - The Surah (chapter) number.
+ * @param ayah - The Ayah (verse) number. Defaults to 1 if not provided.
+ * @param ayahMode - If true, the `ayah` parameter is treated as an Ayah ID instead of a Surah and Ayah number.
+ * @returns An object containing the Juz (part) number, Hizb (section) number, and the index of the Hizb that the given Ayah belongs to.
+ */
+export function findJuzHizb(
+  surah: Surah,
+  ayah: AyahNo = 1,
+  ayahMode = false
+): JuzHizb {
+  const ayahId: AyahId = ayahMode
+    ? ayah
+    : ((checkValidSurah(surah) && findAyaidBySurah(surah, ayah)) as AyahId)
+
+  return findJuzHizbByAyaid(ayahId)
+}
diff --git a/src/findJuzHizbByAyaid.ts b/src/findJuzHizbByAyaid.ts
new file mode 100644
index 0000000..e38492b
--- /dev/null
+++ b/src/findJuzHizbByAyaid.ts
@@ -0,0 +1,20 @@
+import { findJuzByAyaid } from "./findJuzByAyaid"
+import { HizbQuarterList } from "./lists/hizbList"
+import { AyahId, JuzHizb } from "./types"
+import { checkValidAyahId } from "./validation"
+
+/**
+ * Finds the Juz, Hizb, and Hizb ID for the given Ayah ID.
+ *
+ * @param ayaId - The Ayah ID to find the Juz, Hizb, and Hizb ID for.
+ * @returns An object containing the Juz, Hizb, and Hizb ID for the given Ayah ID.
+ */
+export function findJuzHizbByAyaid(ayaId: AyahId): JuzHizb {
+  checkValidAyahId(ayaId)
+
+  const juz = findJuzByAyaid(ayaId)
+  const quarterIndex = HizbQuarterList.findIndex(x => x > ayaId) - 1
+
+  const hizb = quarterIndex % 8 || 8
+  return { juz, hizb, id: quarterIndex }
+}
diff --git a/src/findJuzMetaBySurah.ts b/src/findJuzMetaBySurah.ts
new file mode 100644
index 0000000..7f33f94
--- /dev/null
+++ b/src/findJuzMetaBySurah.ts
@@ -0,0 +1,36 @@
+import { meta } from "./const"
+import { findJuzAndShift } from "./findJuzAndShift"
+import { findSurahByAyaid } from "./findSurahByAyaid"
+import { JuzList } from "./lists/juzList"
+import { AyahNo, Juz, JuzMeta, Surah } from "./types"
+
+/**
+ * Finds the JuzMeta for a given Surah and Ayah.
+ *
+ * @param surah - The Surah (chapter) number.
+ * @param ayah - The Ayah (verse) number.
+ * @returns The JuzMeta object containing the left juz, ayahs between juz and surah, right juz, left ayah ID, and right ayah ID.
+ */
+export function findJuzMetaBySurah(surah: Surah, ayah: AyahNo = 1): JuzMeta {
+  const {
+    juz: leftjuz,
+    ayahsBetweenJuzSurah,
+    leftAyahId
+  } = findJuzAndShift(surah, ayah)
+
+  let rightJuz: Juz = leftjuz
+  while (
+    rightJuz < meta.numJuzs
+    && findSurahByAyaid(JuzList[rightJuz + 1])[0] === surah
+  ) {
+    rightJuz++
+  }
+
+  return {
+    leftjuz,
+    ayahsBetweenJuzSurah,
+    rightJuz,
+    leftAyahId,
+    rightAyahId: JuzList[rightJuz + 1]
+  }
+}
diff --git a/src/findPage.ts b/src/findPage.ts
new file mode 100644
index 0000000..70f3777
--- /dev/null
+++ b/src/findPage.ts
@@ -0,0 +1,20 @@
+import { findAyaidBySurah } from "./findAyaidBySurah"
+import { PageList } from "./lists/pageList"
+import { AyahId, AyahNo, Page, Surah } from "./types"
+import { checkValidAyahId, checkValidSurah } from "./validation"
+
+/**
+ * Finds the page number for the given Surah and Ayah number.
+ *
+ * @param surah - The Surah to find the page for.
+ * @param ayah - The Ayah number to find the page for.
+ * @param ayahMode - If true, the `ayah` parameter is treated as an AyahId instead of an AyahNo.
+ * @returns The page number for the given Surah and Ayah.
+ */
+export function findPage(surah: Surah, ayah: AyahNo, ayahMode = false): Page {
+  const ayahId: AyahId = ayahMode
+    ? ((checkValidAyahId(ayah) && ayah) as AyahId)
+    : ((checkValidSurah(surah) && findAyaidBySurah(surah, ayah)) as AyahId)
+
+  return PageList.findIndex(x => x > ayahId) - 1
+}
diff --git a/src/findRangeAroundAyah.ts b/src/findRangeAroundAyah.ts
new file mode 100644
index 0000000..cc2d3e6
--- /dev/null
+++ b/src/findRangeAroundAyah.ts
@@ -0,0 +1,74 @@
+import { meta } from "./const"
+import { findAyaidBySurah } from "./findAyaidBySurah"
+import { findJuzByAyaid } from "./findJuzByAyaid"
+import { findPage } from "./findPage"
+import { JuzList } from "./lists/juzList"
+import { PageList } from "./lists/pageList"
+import { SuraList } from "./lists/surahList"
+import { AyahId, AyahNo, Juz, Page, Surah, SurahAyah } from "./types"
+import { checkValidSurah } from "./validation"
+
+/**
+ * ALternative deprecated method
+ * @param {*} pageNum
+ */
+// export function pageMetaOld(pageNum: number): any {
+//   if (pageNum < 1 || pageNum > meta.numPages)
+//   throw new RangeError("pagenum must be between 1 and " + meta.numPages)
+//   const [curPage, nextPage] = [
+//     findSurahByAyaid(PageList[pageNum]),
+//     findSurahByAyaid(PageList[pageNum + 1]),
+//   ]
+//   const [firstSurah, firstAyah, lastSurah, lastAyah] = [
+//     curPage[0],
+//     curPage[1],
+//     nextPage[1] === 1 ? nextPage[0] - 1 : nextPage[0],
+//     nextPage[1] === 1 ? SuraList[nextPage[0] - 1][1] : nextPage[1] - 1,
+//   ]
+//   return {
+//     pageNum,
+//     first: [firstSurah, firstAyah],
+//     last: [lastSurah, lastAyah],
+//   }
+// }
+
+/**
+ * Find range containing ayah according to the mode
+ * @param surah
+ * @param ayah
+ * @param {*} mode can be either 'all', 'juz', 'surah', 'ayah', 'page'
+ * default is all
+ */
+export function findRangeAroundAyah(
+  surah: Surah,
+  ayah: AyahNo,
+  mode: "juz" | "surah" | "ayah" | "page" | "all",
+  ayahMode = false
+): SurahAyah {
+  const ayahId: AyahId = ayahMode
+    ? ayah
+    : ((checkValidSurah(surah) && findAyaidBySurah(surah, ayah)) as AyahId)
+
+  switch (mode) {
+    case "juz": {
+      const juz: Juz = findJuzByAyaid(ayahId)
+      return [JuzList[juz], JuzList[juz + 1] - 1]
+    }
+
+    case "surah": {
+      return [SuraList[surah][0] + 1, SuraList[surah + 1][0]]
+    }
+
+    case "ayah": {
+      return [ayahId, ayahId]
+    }
+    case "page": {
+      const page: Page = findPage(-1, ayahId, true)
+      return [PageList[page], PageList[page + 1] - 1]
+    }
+
+    case "all":
+    default:
+      return [1, meta.numAyas]
+  }
+}
diff --git a/src/findSurahByAyaid.ts b/src/findSurahByAyaid.ts
new file mode 100644
index 0000000..bcad7fd
--- /dev/null
+++ b/src/findSurahByAyaid.ts
@@ -0,0 +1,16 @@
+import { SuraList } from "./lists/surahList"
+import { AyahId, Surah, SurahAyah } from "./types"
+import { checkValidAyahId } from "./validation"
+
+/**
+ * Finds the Surah (chapter) and Ayah (verse) numbers that the given Ayah ID belongs to.
+ *
+ * @param ayaId - The Ayah ID to find the Surah and Ayah numbers for.
+ * @returns An array containing the Surah number and the Ayah number within that Surah.
+ */
+export function findSurahByAyaid(ayaId: AyahId): SurahAyah {
+  checkValidAyahId(ayaId)
+
+  const suraNum: Surah = SuraList.findIndex(x => x[0] >= ayaId) - 1
+  return [suraNum, ayaId - SuraList[suraNum][0]]
+}
diff --git a/src/getAyaCountinSura.ts b/src/getAyaCountinSura.ts
new file mode 100644
index 0000000..969afe5
--- /dev/null
+++ b/src/getAyaCountinSura.ts
@@ -0,0 +1,11 @@
+import { getSurahMeta } from "./getSurahMeta"
+import { Surah } from "./types"
+
+/**
+ * Get the number of ayahs (verses) in the specified surah.
+ * @param surah - The surah number.
+ * @returns The number of ayahs in the specified surah.
+ */
+export function getAyaCountinSura(surah: Surah): number {
+  return getSurahMeta(surah)[1]
+}
diff --git a/src/getSurahMeta.ts b/src/getSurahMeta.ts
new file mode 100644
index 0000000..2b2f8dc
--- /dev/null
+++ b/src/getSurahMeta.ts
@@ -0,0 +1,14 @@
+import { SuraList } from "./lists/surahList"
+import { Surah, SurahMeta } from "./types"
+import { checkValidSurah } from "./validation"
+
+/**
+ * Gets the metadata for the specified Surah.
+ *
+ * @param surah - The Surah to get the metadata for.
+ * @returns The metadata for the specified Surah.
+ */
+export function getSurahMeta(surah: Surah): SurahMeta {
+  checkValidSurah(surah)
+  return SuraList[surah]
+}
diff --git a/src/i18n/sura.en.ts b/src/i18n/sura.en.ts
index 036cba0..415e462 100644
--- a/src/i18n/sura.en.ts
+++ b/src/i18n/sura.en.ts
@@ -114,5 +114,5 @@ export const suraNames: (SuraName | [])[] = [
   ["Al-Masad", "The Palm Fibre"],
   ["Al-Ikhlaas", "Sincerity"],
   ["Al-Falaq", "The Dawn"],
-  ["An-Naas", "Mankind"],
+  ["An-Naas", "Mankind"]
 ]
diff --git a/src/i18n/sura.ru.ts b/src/i18n/sura.ru.ts
index 9fe3ad1..8070edf 100644
--- a/src/i18n/sura.ru.ts
+++ b/src/i18n/sura.ru.ts
@@ -114,5 +114,5 @@ export const suraNames: (SuraName | [])[] = [
   ["Аль-Масад", "Пальмовые волокна"],
   ["Аль-Ихляс", "Очищение веры"],
   ["Аль-Фаляк", "Рассвет"],
-  ["Ан-Нас", "Люди"],
+  ["Ан-Нас", "Люди"]
 ]
diff --git a/src/index.ts b/src/index.ts
index 43184f3..44d324d 100644
--- a/src/index.ts
+++ b/src/index.ts
@@ -1,445 +1,39 @@
 // Quran Meta
-import { meta } from "./const"
-import {
-  AyahId,
-  AyahNo,
-  Page,
-  Juz,
-  SurahAyah,
-  PageMeta,
-  JuzMeta,
-  JuzHizb,
-  SurahMeta,
-  Sajda,
-  Surah,
+
+export type { QuranMeta } from "./const"
+export type {
+  AyahId, AyahNo, Juz, JuzHizb, JuzMeta, Page, PageMeta, Sajda, SajdaType, SuraName, Surah, SurahAyah, SurahAyahSegment, SurahMeta
 } from "./types"
 
-export {
-  AyahId,
-  AyahNo,
-  Page,
-  Juz,
-  SurahAyah,
-  PageMeta,
-  JuzMeta,
-  SurahMeta,
-  Sajda,
-  Surah,
-}
-//export default QuranMeta;
-//------------------ Sura Data ---------------------
+export { ayaStringSplitter } from "./ayaStringSplitter"
+export { meta } from "./const"
+export { findAyaidBySurah } from "./findAyaidBySurah"
+export { findJuz } from "./findJuz"
+export { findJuzAndShift } from "./findJuzAndShift"
+export { findJuzByAyaid } from "./findJuzByAyaid"
+export { findJuzHizb } from "./findJuzHizb"
+export { findJuzHizbByAyaid } from "./findJuzHizbByAyaid"
+export { findJuzMetaBySurah } from "./findJuzMetaBySurah"
+export { findPage } from "./findPage"
+export { findRangeAroundAyah } from "./findRangeAroundAyah"
+export { findSurahByAyaid } from "./findSurahByAyaid"
+export { getAyaCountinSura } from "./getAyaCountinSura"
+export { getSurahMeta } from "./getSurahMeta"
+export { isAyahJuzFirst } from "./isAyahJuzFirst"
+export { isAyahPageFirst } from "./isAyahPageFirst"
+export { HizbQuarterList } from "./lists/hizbList"
+export { JuzList } from "./lists/juzList"
+export { ManzilList } from "./lists/manzilList"
+export { PageList } from "./lists/pageList"
+export { RukuList } from "./lists/rukuList"
+export { SajdaList } from "./lists/sajdaList"
+export { SuraList } from "./lists/surahList"
+export { nextAyah } from "./nextAyah"
+export { pageMeta } from "./pageMeta"
+export { prevAyah } from "./prevAyah"
+export { checkValidAyahId, checkValidSurah, checkValidSurahAyah } from "./validation"
+
+// ------------------ Sura i18 Data ---------------------
 
 export { suraNames as suraNamesEn } from "./i18n/sura.en"
 export { suraNames as suraNamesRu } from "./i18n/sura.ru"
-
-import { SuraList } from "./surahList"
-
-//------------------ Juz Data ---------------------
-const JuzList: AyahId[] = [
-  0, 1, 149, 260, 386, 517, 641, 751, 900, 1042, 1201, 1328, 1479, 1649, 1803,
-  2030, 2215, 2484, 2674, 2876, 3215, 3386, 3564, 3733, 4090, 4265, 4511, 4706,
-  5105, 5242, 5673, 6237,
-]
-
-//------------------ Hizb Data ---------------------
-import { HizbQuarterList } from "./hizbList"
-
-//------------------ Manzil Data ---------------------
-
-const ManzilList: AyahId[] = [0, 1, 670, 1365, 2030, 2933, 3789, 4631, 6237]
-
-//------------------ Ruku Data ---------------------
-// export Ruku  from "~/js/qdata-ruku.json"
-import { RukuList } from "./rukuList"
-
-//------------------ Page Data ---------------------
-// code to get starting pages for surahs
-// let res=[];
-// Page.reduce((s,c,p)=>{
-// 	while (c[0]>=s)
-// 		{res.push([s,c[0],s==c[0]?p:p-1]);s+=1;}
-// 	return s
-// },0)
-import { PageList } from "./pageList"
-
-// export Page from "~/js/qdata-page.json"
-
-//------------------ Sajda Data ---------------------
-
-const SajdaList: Sajda[] = [
-  // [ayaId, type]
-  [1160, "recommended"],
-  [1722, "recommended"],
-  [1951, "recommended"],
-  [2138, "recommended"],
-  [2308, "recommended"],
-  [2613, "recommended"],
-  [2672, "recommended"],
-  [2915, "recommended"],
-  [3185, "recommended"],
-  [3518, "obligatory"],
-  [3994, "recommended"],
-  [4256, "obligatory"],
-  [4846, "obligatory"],
-  [5905, "recommended"],
-  [6125, "obligatory"],
-]
-//export default QuranMeta;
-import { ayaStringSplitter } from "./ayaStringSplitter"
-export {
-  meta,
-  SuraList,
-  JuzList,
-  HizbQuarterList,
-  ManzilList,
-  RukuList,
-  PageList,
-  SajdaList,
-  ayaStringSplitter,
-}
-
-function binarySearch(
-  ar: Array<number>,
-  el: number,
-  compare_fn: (a: number, b: number) => number = (a, b) => a - b
-): number {
-  let m = 0
-  let n = ar.length - 1
-  while (m <= n) {
-    const k = (n + m) >> 1
-    const cmp = compare_fn(el, ar[k])
-    if (cmp > 0) {
-      m = k + 1
-    } else if (cmp < 0) {
-      n = k - 1
-    } else {
-      return k
-    }
-  }
-  return -m - 1
-}
-
-function checkValidAyahId(ayaId: AyahId) {
-  if (ayaId < 1 || ayaId > meta.numAyas)
-    throw new RangeError("ayaid must be between 1 and " + meta.numAyas)
-  return true
-}
-
-function checkValidSurah(surah: Surah, checkOnly = false) {
-  if (surah < 1 || surah > meta.numSuras) {
-    if (checkOnly) return false
-    throw new RangeError("Surah must be between 1 and " + meta.numSuras)
-  }
-  return true
-}
-
-/**
- *
- * @param {*} ayaId
- */
-export function findSurahByAyaid(ayaId: AyahId): SurahAyah {
-  checkValidAyahId(ayaId)
-
-  const suraNum: Surah = SuraList.findIndex(x => x[0] >= ayaId) - 1
-  return suraNum < 0
-    ? [114, ayaId - SuraList[114][0]]
-    : [suraNum, ayaId - SuraList[suraNum][0]]
-}
-
-/**
- *
- * @param {*} ayaId
- */
-export function findJuzByAyaid(ayaId: AyahId): Juz {
-  checkValidAyahId(ayaId)
-
-  return JuzList.findIndex(x => x > ayaId) - 1
-}
-/**
- *
- * @param {*} ayaId
- */
-export function findJuzHizbByAyaid(ayaId: AyahId): JuzHizb {
-  checkValidAyahId(ayaId)
-
-  const juz = findJuzByAyaid(ayaId)
-
-  const id = HizbQuarterList.findIndex(x => x > ayaId) - 1
-  return { juz, hizb: id % 8 || 8, id }
-}
-/**
- *
- * @param {*} surah
- * @param {*} ayah
- */
-export function findJuz(surah: Surah, ayah: AyahNo = 1, ayahMode = false): Juz {
-  const ayahId: AyahId = ayahMode
-    ? ayah
-    : ((checkValidSurah(surah) && findAyaidBySurah(surah, ayah)) as AyahId)
-
-  return findJuzByAyaid(ayahId)
-}
-/**
- *
- * @param {*} surah
- * @param {*} ayah
- */
-export function findJuzHizb(
-  surah: Surah,
-  ayah: AyahNo = 1,
-  ayahMode = false
-): JuzHizb {
-  const ayahId: AyahId = ayahMode
-    ? ayah
-    : ((checkValidSurah(surah) && findAyaidBySurah(surah, ayah)) as AyahId)
-
-  return findJuzHizbByAyaid(ayahId)
-}
-/**
- * Returns Positive number if aya is first ayah of juz, number is juz number
- * @param {*} surah
- * @param {*} ayah
- */
-export function isAyahJuzFirst(
-  surah: Surah,
-  ayah: AyahNo,
-  ayahMode = false
-): Juz {
-  const ayahId: AyahId = ayahMode
-    ? ((checkValidAyahId(ayah) && ayah) as AyahId)
-    : ((checkValidSurah(surah) && findAyaidBySurah(surah, ayah)) as AyahId)
-
-  return binarySearch(JuzList, ayahId)
-  // return JuzList.findIndex((x: AyahId) => x == ayahId)
-}
-
-/**
- * Returns Positive number if aya is first ayah of juz, number is juz number
- * @param {*} surah
- * @param {*} ayah
- */
-export function isAyahPageFirst(
-  surah: Surah,
-  ayah: AyahNo,
-  ayahMode = false
-): Juz {
-  const ayahId: AyahId = ayahMode
-    ? ((checkValidAyahId(ayah) && ayah) as AyahId)
-    : ((checkValidSurah(surah) && findAyaidBySurah(surah, ayah)) as AyahId)
-
-  return binarySearch(PageList, ayahId)
-  // return PageList.findIndex((x: AyahId) => x == ayahId)
-}
-
-/**
- *  Find juz containing ayah
- * @param surah
- * @param ayah
- * @param ayahMode
- * @returns
- */
-export function findJuzAndShift(
-  surah: Surah,
-  ayah: AyahNo,
-  ayahMode = false
-): {
-  juz: Juz
-  leftAyahId: AyahId
-  ayahsBetweenJuzSurah: number
-} {
-  const ayahId: AyahId = ayahMode
-    ? ((checkValidAyahId(ayah) && ayah) as AyahId)
-    : ((checkValidSurah(surah) && findAyaidBySurah(surah, ayah)) as AyahId)
-
-  const juz = findJuzByAyaid(ayahId)
-  const leftAyahId = JuzList[juz]
-  if (surah < 0) [surah] = findSurahByAyaid(leftAyahId)
-  const [surahStartAyahId] = SuraList[surah]
-  return {
-    juz,
-    ayahsBetweenJuzSurah: surahStartAyahId - leftAyahId + 1,
-    leftAyahId,
-  }
-}
-
-//todo explain function
-/**
- * for given ayah return [starting juz, number of ayahsFrom beginning of that juz, right juz, number of ayahs in surah
- * @param {*} suraNumber
- * @param {*} ayaNumber
- * @returns [leftjuz, ayahsFromStartOfJuz, rightJuz, ayahsinSurah,leftAyahId,rightAyahId]
- */
-export function findJuzMetaBySurah(surah: Surah, ayah: AyahNo = 1): JuzMeta {
-  const {
-    juz: leftjuz,
-    ayahsBetweenJuzSurah,
-    leftAyahId,
-  } = findJuzAndShift(surah, ayah)
-
-  let rightJuz: Juz = leftjuz
-  while (
-    rightJuz < meta.numJuzs &&
-    findSurahByAyaid(JuzList[rightJuz + 1])[0] == surah
-  )
-    rightJuz++
-
-  return {
-    leftjuz,
-    ayahsBetweenJuzSurah,
-    rightJuz,
-    leftAyahId,
-    rightAyahId: JuzList[rightJuz + 1],
-  }
-}
-
-/**
- * Get Surah meta
- * @param surah
- */
-export function getSurahMeta(surah: Surah): SurahMeta {
-  checkValidSurah(surah)
-  return SuraList[surah]
-}
-
-/**
- *
- * @param {*} suraNumber
- * @param {*} ayaNumber
- */
-export function findPage(surah: Surah, ayah: AyahNo, ayahMode = false): Page {
-  const ayahId: AyahId = ayahMode
-    ? ((checkValidAyahId(ayah) && ayah) as AyahId)
-    : ((checkValidSurah(surah) && findAyaidBySurah(surah, ayah)) as AyahId)
-
-  return PageList.findIndex(x => x > ayahId) - 1
-}
-
-/**
- *
- * @param {*} surah
- * @param {*} ayah```
- */
-export function findAyaidBySurah(surah: Surah, ayah: AyahNo): AyahId {
-  const [startAyahId] = getSurahMeta(surah)
-  return startAyahId + ayah
-}
-
-/**
- *
- * @param {*} surah
- */
-export function getAyaCountinSura(surah: Surah): number {
-  return getSurahMeta(surah)[1]
-}
-
-/**
- *
- * @param {*} surah
- * @param {*} ayah
- */
-export function nextAyah(surah: Surah, ayah: AyahNo): SurahAyah {
-  if (surah < 1 || surah > meta.numSuras)
-    throw new RangeError("Surah must be between 1 and " + meta.numSuras)
-
-  const ayaid: AyahId = findAyaidBySurah(surah, ayah)
-  return findSurahByAyaid(ayaid == meta.numAyas ? 1 : ayaid + 1)
-}
-
-/**
- *
- * @param {*} surah
- * @param {*} ayah
- */
-export function prevAyah(surah: Surah, ayah: AyahNo): SurahAyah {
-  checkValidSurah(surah)
-
-  const ayaid: AyahId = findAyaidBySurah(surah, ayah)
-  return findSurahByAyaid(ayaid == 1 ? meta.numAyas : ayaid - 1)
-}
-
-/**
- * Get the meta, first and last ayahs of the page
- * @param {*} pageNum
- */
-export function pageMeta(pageNum: Page): PageMeta {
-  // todo rename to getPageMeta in next major version
-  if (pageNum < 1 || pageNum > meta.numPages)
-    throw new RangeError("pagenum must be between 1 and " + meta.numPages)
-
-  const [curPage, nextPage]: [AyahId, AyahId] = [
-    PageList[pageNum],
-    PageList[pageNum + 1],
-  ]
-
-  return {
-    pageNum,
-    first: findSurahByAyaid(curPage),
-    last: [...findSurahByAyaid(nextPage - 1)],
-  }
-}
-
-/**
- * ALternative deprecated method
- * @param {*} pageNum
- */
-// export function pageMetaOld(pageNum: number): any {
-//   if (pageNum < 1 || pageNum > meta.numPages)
-//   throw new RangeError("pagenum must be between 1 and " + meta.numPages)
-
-//   const [curPage, nextPage] = [
-//     findSurahByAyaid(PageList[pageNum]),
-//     findSurahByAyaid(PageList[pageNum + 1]),
-//   ]
-//   const [firstSurah, firstAyah, lastSurah, lastAyah] = [
-//     curPage[0],
-//     curPage[1],
-//     nextPage[1] === 1 ? nextPage[0] - 1 : nextPage[0],
-//     nextPage[1] === 1 ? SuraList[nextPage[0] - 1][1] : nextPage[1] - 1,
-//   ]
-
-//   return {
-//     pageNum,
-//     first: [firstSurah, firstAyah],
-//     last: [lastSurah, lastAyah],
-//   }
-// }
-/**
- * Find range containing ayah according to the mode
- * @param surah
- * @param ayah
- * @param {*} mode can be either 'all', 'juz', 'surah', 'ayah', 'page'
- * default is all
- */
-export function findRangeAroundAyah(
-  surah: Surah,
-  ayah: AyahNo,
-  mode: "juz" | "surah" | "ayah" | "page" | "all",
-  ayahMode = false
-): SurahAyah {
-  const ayahId: AyahId = ayahMode
-    ? ayah
-    : ((checkValidSurah(surah) && findAyaidBySurah(surah, ayah)) as AyahId)
-
-  switch (mode) {
-    case "juz": {
-      const juz: Juz = findJuzByAyaid(ayahId)
-      return [JuzList[juz], JuzList[juz + 1] - 1]
-    }
-
-    case "surah": {
-      return [findAyaidBySurah(surah, 1), findAyaidBySurah(surah + 1, 1) - 1]
-    }
-
-    case "ayah": {
-      return [ayahId, ayahId]
-    }
-    case "page": {
-      const page: Page = findPage(-1, ayahId, true)
-      return [PageList[page], PageList[page + 1] - 1]
-    }
-
-    case "all":
-    default:
-      return [1, meta.numAyas]
-  }
-}
diff --git a/src/isAyahJuzFirst.ts b/src/isAyahJuzFirst.ts
new file mode 100644
index 0000000..9f34bba
--- /dev/null
+++ b/src/isAyahJuzFirst.ts
@@ -0,0 +1,27 @@
+import { findAyaidBySurah } from "./findAyaidBySurah"
+import { JuzList } from "./lists/juzList"
+import { AyahId, AyahNo, Juz, Surah } from "./types"
+import { binarySearch } from "./utils"
+import { checkValidAyahId, checkValidSurah } from "./validation"
+
+/**
+ * Returns the Juz (part) number that the given Ayah (verse) belongs to.
+ *
+ *
+ * @param surah - The Surah (chapter) number.
+ * @param ayah - The Ayah (verse) number.
+ * @param ayahMode - If true, the `ayah` parameter is treated as an Ayah ID instead of a Surah and Ayah number.
+ * @returns The Juz (part) number that the given Ayah belongs to. Returns Positive number if aya is first ayah of juz, number is juz number
+ */
+export function isAyahJuzFirst(
+  surah: Surah,
+  ayah: AyahNo,
+  ayahMode = false
+): Juz {
+  const ayahId: AyahId = ayahMode
+    ? ((checkValidAyahId(ayah) && ayah) as AyahId)
+    : ((checkValidSurah(surah) && findAyaidBySurah(surah, ayah)) as AyahId)
+
+  return binarySearch(JuzList, ayahId)
+  // return JuzList.findIndex((x: AyahId) => x == ayahId)
+}
diff --git a/src/isAyahPageFirst.ts b/src/isAyahPageFirst.ts
new file mode 100644
index 0000000..6773ee5
--- /dev/null
+++ b/src/isAyahPageFirst.ts
@@ -0,0 +1,26 @@
+import { findAyaidBySurah } from "./findAyaidBySurah"
+import { PageList } from "./lists/pageList"
+import { AyahId, AyahNo, Juz, Surah } from "./types"
+import { binarySearch } from "./utils"
+import { checkValidAyahId, checkValidSurah } from "./validation"
+
+/**
+ * Determines if the given ayah is the first ayah of a juz.
+ *
+ * @param surah - The surah number.
+ * @param ayah - The ayah number.
+ * @param ayahMode - Optional flag to indicate if the ayah number is already a valid ayah ID.
+ * @returns The juz number if the ayah is the first ayah of the juz, otherwise -1.
+ */
+export function isAyahPageFirst(
+  surah: Surah,
+  ayah: AyahNo,
+  ayahMode = false
+): Juz {
+  const ayahId: AyahId = ayahMode
+    ? ((checkValidAyahId(ayah) && ayah) as AyahId)
+    : ((checkValidSurah(surah) && findAyaidBySurah(surah, ayah)) as AyahId)
+
+  return binarySearch(PageList, ayahId)
+  // return PageList.findIndex((x: AyahId) => x == ayahId)
+}
diff --git a/src/hizbList.ts b/src/lists/hizbList.ts
similarity index 94%
rename from src/hizbList.ts
rename to src/lists/hizbList.ts
index 531e695..efb2e5d 100644
--- a/src/hizbList.ts
+++ b/src/lists/hizbList.ts
@@ -1,5 +1,6 @@
-import { AyahId } from "./types"
+import { AyahId } from "../types"
 
+// ------------------ Hizb Data ---------------------
 export const HizbQuarterList: AyahId[] = [
   0, 1, 33, 51, 67, 82, 99, 113, 131, 149, 165, 184, 196, 210, 226, 240, 250,
   260, 270, 279, 290, 308, 326, 345, 368, 386, 406, 426, 446, 464, 479, 494,
@@ -18,5 +19,5 @@ export const HizbQuarterList: AyahId[] = [
   4243, 4265, 4285, 4299, 4323, 4349, 4382, 4431, 4485, 4511, 4531, 4555, 4578,
   4601, 4613, 4626, 4657, 4706, 4759, 4810, 4855, 4902, 4980, 5054, 5091, 5105,
   5118, 5137, 5157, 5178, 5192, 5218, 5230, 5242, 5272, 5324, 5394, 5448, 5495,
-  5552, 5610, 5673, 5759, 5830, 5885, 5949, 6024, 6091, 6155, 6237,
+  5552, 5610, 5673, 5759, 5830, 5885, 5949, 6024, 6091, 6155, 6237
 ]
diff --git a/src/lists/juzList.ts b/src/lists/juzList.ts
new file mode 100644
index 0000000..ca11314
--- /dev/null
+++ b/src/lists/juzList.ts
@@ -0,0 +1,8 @@
+import { AyahId } from "../types"
+
+// ------------------ Juz Data ---------------------
+export const JuzList: AyahId[] = [
+  0, 1, 149, 260, 386, 517, 641, 751, 900, 1042, 1201, 1328, 1479, 1649, 1803,
+  2030, 2215, 2484, 2674, 2876, 3215, 3386, 3564, 3733, 4090, 4265, 4511, 4706,
+  5105, 5242, 5673, 6237
+]
diff --git a/src/lists/manzilList.ts b/src/lists/manzilList.ts
new file mode 100644
index 0000000..bc94e55
--- /dev/null
+++ b/src/lists/manzilList.ts
@@ -0,0 +1,6 @@
+import { AyahId } from "../types"
+
+// ------------------ Manzil Data ---------------------
+export const ManzilList: AyahId[] = [
+  0, 1, 670, 1365, 2030, 2933, 3789, 4631, 6237
+]
diff --git a/src/pageList.ts b/src/lists/pageList.ts
similarity index 97%
rename from src/pageList.ts
rename to src/lists/pageList.ts
index fbc75c9..febe0c1 100644
--- a/src/pageList.ts
+++ b/src/lists/pageList.ts
@@ -1,4 +1,4 @@
-import { AyahId } from "./types"
+import { AyahId } from "../types"
 
 export const PageList: AyahId[] = [
   0, 1, 8, 13, 24, 32, 37, 45, 56, 65, 69, 77, 84, 91, 96, 101, 109, 113, 120,
@@ -45,5 +45,5 @@ export const PageList: AyahId[] = [
   5209, 5218, 5223, 5230, 5237, 5242, 5254, 5268, 5287, 5314, 5332, 5358, 5386,
   5415, 5430, 5448, 5461, 5476, 5495, 5513, 5543, 5571, 5597, 5617, 5642, 5673,
   5703, 5728, 5759, 5801, 5830, 5855, 5883, 5910, 5932, 5964, 5994, 6017, 6044,
-  6073, 6099, 6126, 6138, 6156, 6177, 6194, 6208, 6222, 6237,
+  6073, 6099, 6126, 6138, 6156, 6177, 6194, 6208, 6222, 6237
 ]
diff --git a/src/rukuList.ts b/src/lists/rukuList.ts
similarity index 96%
rename from src/rukuList.ts
rename to src/lists/rukuList.ts
index da5441b..e3b46f5 100644
--- a/src/rukuList.ts
+++ b/src/lists/rukuList.ts
@@ -1,5 +1,6 @@
-import { AyahId } from "./types"
+import { AyahId } from "../types"
 
+// ------------------ Ruku Data ---------------------
 export const RukuList: AyahId[] = [
   0, 1, 8, 15, 28, 37, 47, 54, 67, 69, 79, 90, 94, 104, 111, 120, 129, 137, 149,
   155, 160, 171, 175, 184, 190, 196, 204, 218, 224, 229, 236, 239, 243, 250,
@@ -42,5 +43,5 @@ export const RukuList: AyahId[] = [
   5592, 5614, 5623, 5663, 5673, 5703, 5713, 5739, 5759, 5801, 5830, 5849, 5885,
   5910, 5932, 5949, 5968, 5994, 6024, 6044, 6059, 6080, 6091, 6099, 6107, 6126,
   6131, 6139, 6147, 6158, 6169, 6177, 6180, 6189, 6194, 6198, 6205, 6208, 6214,
-  6217, 6222, 6226, 6231, 6237,
+  6217, 6222, 6226, 6231, 6237
 ]
diff --git a/src/lists/sajdaList.ts b/src/lists/sajdaList.ts
new file mode 100644
index 0000000..ed9d853
--- /dev/null
+++ b/src/lists/sajdaList.ts
@@ -0,0 +1,30 @@
+import { Sajda } from "../types"
+
+// ------------------ Page Data ---------------------
+// code to get starting pages for surahs
+// let res=[];
+// Page.reduce((s,c,p)=>{
+// while (c[0]>=s)
+// {res.push([s,c[0],s==c[0]?p:p-1]);s+=1;}
+// return s
+// },0)
+// export Page from "~/js/qdata-page.json"
+// ------------------ Sajda Data ---------------------
+export const SajdaList: Sajda[] = [
+  // [ayaId, type]
+  [1160, "recommended"],
+  [1722, "recommended"],
+  [1951, "recommended"],
+  [2138, "recommended"],
+  [2308, "recommended"],
+  [2613, "recommended"],
+  [2672, "recommended"],
+  [2915, "recommended"],
+  [3185, "recommended"],
+  [3518, "obligatory"],
+  [3994, "recommended"],
+  [4256, "obligatory"],
+  [4846, "obligatory"],
+  [5905, "recommended"],
+  [6125, "obligatory"]
+]
diff --git a/src/surahList.ts b/src/lists/surahList.ts
similarity index 98%
rename from src/surahList.ts
rename to src/lists/surahList.ts
index 2fda87c..a4595f3 100644
--- a/src/surahList.ts
+++ b/src/lists/surahList.ts
@@ -1,4 +1,4 @@
-import { SurahMeta } from "./types"
+import { SurahMeta } from "../types"
 
 export const SuraList: SurahMeta[] = [
   [-1, -1, -1, -1, "", false, -1],
@@ -116,5 +116,5 @@ export const SuraList: SurahMeta[] = [
   [6221, 4, 22, 1, "الإخلاص", true, 604],
   [6225, 5, 20, 1, "الفلق", true, 604],
   [6230, 6, 21, 1, "الناس", true, 604],
-  [6236, 0, -1, -1, "", false, -1],
+  [6236, 0, -1, -1, "", false, -1]
 ]
diff --git a/src/nextAyah.ts b/src/nextAyah.ts
new file mode 100644
index 0000000..253ed69
--- /dev/null
+++ b/src/nextAyah.ts
@@ -0,0 +1,18 @@
+import { meta } from "./const"
+import { findAyaidBySurah } from "./findAyaidBySurah"
+import { findSurahByAyaid } from "./findSurahByAyaid"
+import { AyahId, AyahNo, Surah, SurahAyah } from "./types"
+
+/**
+ * Get the next ayah for the given surah and ayah number.
+ * @param surah - The surah number.
+ * @param ayah - The ayah number within the surah.
+ * @returns The surah and ayah number of the next ayah.
+ */
+export function nextAyah(surah: Surah, ayah: AyahNo): SurahAyah {
+  if (surah < 1 || surah > meta.numSuras)
+    throw new RangeError("Surah must be between 1 and " + meta.numSuras)
+
+  const ayaid: AyahId = findAyaidBySurah(surah, ayah)
+  return findSurahByAyaid(ayaid == meta.numAyas ? 1 : ayaid + 1)
+}
diff --git a/src/pageMeta.ts b/src/pageMeta.ts
new file mode 100644
index 0000000..ba79ab2
--- /dev/null
+++ b/src/pageMeta.ts
@@ -0,0 +1,28 @@
+import { meta } from "./const"
+import { findSurahByAyaid } from "./findSurahByAyaid"
+import { PageList } from "./lists/pageList"
+import { AyahId, Page, PageMeta } from "./types"
+
+/**
+ * Retrieves the page metadata for the specified page number.
+ *
+ * @param pageNum - The page number to retrieve metadata for.
+ * @returns The page metadata, including the first and last ayah IDs on the page.
+ * @throws {RangeError} If the page number is out of the valid range (1 to `meta.numPages`).
+ */
+export function pageMeta(pageNum: Page): PageMeta {
+  // todo rename to getPageMeta in next major version
+  if (pageNum < 1 || pageNum > meta.numPages)
+    throw new RangeError("pagenum must be between 1 and " + meta.numPages)
+
+  const [curPage, nextPage]: [AyahId, AyahId] = [
+    PageList[pageNum],
+    PageList[pageNum + 1]
+  ]
+
+  return {
+    pageNum,
+    first: findSurahByAyaid(curPage),
+    last: [...findSurahByAyaid(nextPage - 1)]
+  }
+}
diff --git a/src/prevAyah.ts b/src/prevAyah.ts
new file mode 100644
index 0000000..2e49133
--- /dev/null
+++ b/src/prevAyah.ts
@@ -0,0 +1,18 @@
+import { meta } from "./const"
+import { findAyaidBySurah } from "./findAyaidBySurah"
+import { findSurahByAyaid } from "./findSurahByAyaid"
+import { AyahId, AyahNo, Surah, SurahAyah } from "./types"
+import { checkValidSurah } from "./validation"
+
+/**
+ * Get the previous ayah for the given surah and ayah number.
+ * @param surah - The surah number.
+ * @param ayah - The ayah number within the surah.
+ * @returns The surah and ayah number of the previous ayah.
+ */
+export function prevAyah(surah: Surah, ayah: AyahNo): SurahAyah {
+  checkValidSurah(surah)
+
+  const ayaid: AyahId = findAyaidBySurah(surah, ayah)
+  return findSurahByAyaid(ayaid == 1 ? meta.numAyas : ayaid - 1)
+}
diff --git a/src/types.ts b/src/types.ts
index 42f3980..6d7fe49 100644
--- a/src/types.ts
+++ b/src/types.ts
@@ -16,7 +16,7 @@ export type PageMeta = {
   first: SurahAyah
   last: SurahAyah
 }
-//[leftjuz, ayahsFromStartOfJuz, rightJuz, ayahsinJuz]
+// [leftjuz, ayahsFromStartOfJuz, rightJuz, ayahsinJuz]
 export type JuzMeta = {
   leftjuz: Juz
   ayahsBetweenJuzSurah: number
diff --git a/src/utils.ts b/src/utils.ts
new file mode 100644
index 0000000..b04b8ce
--- /dev/null
+++ b/src/utils.ts
@@ -0,0 +1,30 @@
+/**
+ * Performs a binary search on the given array to find the index of the specified element.
+ *
+ * @param ar - The array to search.
+ * @param el - The element to search for.
+ * @param compare_fn - An optional comparison function to use for the search. Defaults to a simple numeric comparison.
+ * @returns The index of the element if found, or a negative value indicating the insertion point if not found.
+ */
+export function binarySearch(
+  ar: Array<number>,
+  el: number,
+  compare_fn: (a: number, b: number) => number = (a, b) => a - b
+): number {
+  let m = 0
+  let n = ar.length - 1
+  while (m <= n) {
+    const k = (n + m) >> 1
+    const cmp = compare_fn(el, ar[k])
+    if (cmp > 0) {
+      m = k + 1
+    }
+    else if (cmp < 0) {
+      n = k - 1
+    }
+    else {
+      return k
+    }
+  }
+  return -m - 1
+}
diff --git a/src/validation.ts b/src/validation.ts
new file mode 100644
index 0000000..c317272
--- /dev/null
+++ b/src/validation.ts
@@ -0,0 +1,59 @@
+import { meta } from "./const"
+import { getAyaCountinSura } from "./getAyaCountinSura"
+
+/**
+ * Checks if the given Surah (chapter) number is valid.
+ *
+ * @param surah - The Surah (chapter) number to check.
+ * @param checkOnly - If true, the function will only check the validity and not throw an error.
+ * @returns True if the Surah number is valid, false otherwise.
+ */
+export function checkValidSurah(surah: number, checkOnly = false): boolean {
+  if (typeof surah !== "number" || !Number.isInteger(surah)) {
+    if (checkOnly) return false
+    throw new TypeError("Ayah ID must be an integer")
+  }
+
+  if (surah < 1 || surah > meta.numSuras) {
+    if (checkOnly) return false
+    throw new RangeError("Surah must be between 1 and " + meta.numSuras)
+  }
+  return true
+}
+
+/**
+ * Checks if the given Surah and Ayah (verse) numbers are valid.
+ *
+ * @param surah - The Surah (chapter) number to check.
+ * @param ayah - The Ayah (verse) number to check.
+ * @param checkOnly - If true, the function will only check the validity and not throw an error.
+ * @returns True if the Surah and Ayah numbers are valid, false otherwise.
+ */
+export function checkValidSurahAyah(surah: number, ayah: number, checkOnly = false): boolean {
+  if (!checkValidSurah(surah, checkOnly)) return false
+
+  if (ayah < 1 || ayah > getAyaCountinSura(surah)) {
+    if (checkOnly) return false
+    throw new RangeError("Ayah must be between 1 and " + getAyaCountinSura(surah))
+  }
+  return true
+}
+
+/**
+ * Checks if the given Ayah (verse) ID is valid.
+ *
+ * @param ayahId - The Ayah (verse) ID to check.
+ * @param checkOnly - If true, the function will only check the validity and not throw an error.
+ * @returns True if the Ayah ID is valid, otherwise throws a RangeError.
+ */
+export function checkValidAyahId(ayahId: number, checkOnly = false): boolean {
+  if (typeof ayahId !== "number" || !Number.isInteger(ayahId)) {
+    if (checkOnly) return false
+    throw new TypeError("Ayah ID must be an integer")
+  }
+  if (ayahId < 1 || ayahId > meta.numAyas) {
+    if (checkOnly) return false
+    throw new RangeError("Ayah ID must be between 1 and " + meta.numAyas)
+  }
+  return true
+}
diff --git a/tests/.eslintrc b/tests/.eslintrc
deleted file mode 100644
index 959a4f4..0000000
--- a/tests/.eslintrc
+++ /dev/null
@@ -1,9 +0,0 @@
-{
-  "env": {
-    "mocha": true
-  },
-  "globals": {
-    "expect": true,
-    "sinon": true
-  }
-}
diff --git a/tests/ayaStringSplitter.spec.ts b/tests/ayaStringSplitter.spec.ts
new file mode 100644
index 0000000..16ccaed
--- /dev/null
+++ b/tests/ayaStringSplitter.spec.ts
@@ -0,0 +1,55 @@
+import { ayaStringSplitter } from "../src/ayaStringSplitter"
+
+describe("ayaStringSplitter", () => {
+  it("basic tests", () => {
+    expect(ayaStringSplitter("1:1")).toEqual([1, 1])
+    expect(ayaStringSplitter("1:1-5")).toEqual([1, [1, 5]])
+    expect(ayaStringSplitter("114:1")).toEqual([114, 1])
+    // expect(ayaStringSplitter("115:1")).toEqual([115,1])
+  })
+
+  it("error checks", () => {
+    expect(() => ayaStringSplitter("1")).toThrow()
+    expect(() => ayaStringSplitter("")).toThrow()
+    expect(() => ayaStringSplitter("sdsgw")).toThrow()
+    expect(() => ayaStringSplitter("sd:sgw")).toThrow()
+    expect(() => ayaStringSplitter("34:sgw")).toThrow()
+  })
+
+  it("handles single-digit sura and aya numbers", () => {
+    expect(ayaStringSplitter("2:3")).toEqual([2, 3])
+    expect(ayaStringSplitter("9:5")).toEqual([9, 5])
+  })
+
+  it("handles multi-digit sura and aya numbers", () => {
+    expect(ayaStringSplitter("110:3")).toEqual([110, 3])
+    expect(ayaStringSplitter("2:255")).toEqual([2, 255])
+  })
+
+  it("handles aya ranges with multi-digit numbers", () => {
+    expect(ayaStringSplitter("7:26-30")).toEqual([7, [26, 30]])
+    expect(ayaStringSplitter("18:1-10")).toEqual([18, [1, 10]])
+  })
+
+  it("throws error for invalid sura numbers", () => {
+    expect(() => ayaStringSplitter("0:1")).toThrow()
+    expect(() => ayaStringSplitter("115:1")).toThrow()
+  })
+
+  it("throws error for invalid aya numbers", () => {
+    expect(() => ayaStringSplitter("1:0")).toThrow()
+    expect(() => ayaStringSplitter("1:300")).toThrow()
+  })
+
+  it("throws error for invalid range format", () => {
+    expect(() => ayaStringSplitter("1:5-3")).toThrow()
+    expect(() => ayaStringSplitter("1:5-")).toThrow()
+    expect(() => ayaStringSplitter("1:-5")).toThrow()
+  })
+
+  it("throws error for non-numeric input", () => {
+    expect(() => ayaStringSplitter("1:a")).toThrow()
+    expect(() => ayaStringSplitter("a:1")).toThrow()
+    expect(() => ayaStringSplitter("1:1-a")).toThrow()
+  })
+})
diff --git a/tests/checkValidAyahId.spec.ts b/tests/checkValidAyahId.spec.ts
new file mode 100644
index 0000000..b0aa7ca
--- /dev/null
+++ b/tests/checkValidAyahId.spec.ts
@@ -0,0 +1,52 @@
+import { checkValidAyahId, meta } from "../src"
+
+describe("checkValidAyahId", () => {
+  it("should throw RangeError for ayah id less than 1", () => {
+    expect(() => checkValidAyahId(0)).toThrow(RangeError)
+    expect(() => checkValidAyahId(-1)).toThrow(RangeError)
+  })
+
+  it("should throw RangeError for ayah id greater than total number of ayas", () => {
+    expect(() => checkValidAyahId(meta.numAyas + 1)).toThrow(RangeError)
+    expect(() => checkValidAyahId(Number.MAX_SAFE_INTEGER)).toThrow(RangeError)
+  })
+
+  it("should throw TypeError for non-integer ayah id", () => {
+    expect(() => checkValidAyahId(1.5)).toThrow(TypeError)
+    expect(() => checkValidAyahId(2.99)).toThrow(TypeError)
+    expect(() => checkValidAyahId(Math.PI)).toThrow(TypeError)
+  })
+
+  it("should throw TypeError for NaN", () => {
+    expect(() => checkValidAyahId(NaN)).toThrow(TypeError)
+  })
+
+  it("should throw TypeError for Infinity", () => {
+    expect(() => checkValidAyahId(Infinity)).toThrow(TypeError)
+    expect(() => checkValidAyahId(-Infinity)).toThrow(TypeError)
+  })
+
+  it("should handle checkOnly", () => {
+    expect(checkValidAyahId(1, true)).toBe(true)
+    expect(checkValidAyahId(meta.numAyas, true)).toBe(true)
+    expect(checkValidAyahId(Math.floor(meta.numAyas / 2), true)).toBe(true)
+    expect(checkValidAyahId(0, true)).toBe(false)
+    expect(checkValidAyahId(meta.numAyas + 1, true)).toBe(false)
+    expect(checkValidAyahId(1.5, true)).toBe(false)
+    expect(checkValidAyahId(NaN, true)).toBe(false)
+    expect(checkValidAyahId(Infinity, true)).toBe(false)
+  })
+
+  it("should handle edge cases correctly", () => {
+    expect(checkValidAyahId(1)).toBe(true)
+    expect(checkValidAyahId(meta.numAyas)).toBe(true)
+    expect(() => checkValidAyahId(meta.numAyas + 0.5)).toThrow(TypeError)
+    expect(checkValidAyahId(Math.floor(meta.numAyas / 2))).toBe(true)
+  })
+
+  it("should throw TypeError for non-number ayah id", () => {
+    expect(() => checkValidAyahId("1" as any)).toThrow(TypeError)
+    expect(() => checkValidAyahId(null as any)).toThrow(TypeError)
+    expect(() => checkValidAyahId(undefined as any)).toThrow(TypeError)
+  })
+})
diff --git a/tests/checkValidSurah.spec.ts b/tests/checkValidSurah.spec.ts
new file mode 100644
index 0000000..164edc2
--- /dev/null
+++ b/tests/checkValidSurah.spec.ts
@@ -0,0 +1,42 @@
+import { checkValidSurah, meta } from "../src"
+
+describe("checkValidSurah", () => {
+  it("should return true for valid surah numbers", () => {
+    expect(checkValidSurah(1)).toBe(true)
+    expect(checkValidSurah(meta.numSuras)).toBe(true)
+    expect(checkValidSurah(Math.floor(meta.numSuras / 2))).toBe(true)
+  })
+
+  it("should throw RangeError for surah number less than 1", () => {
+    expect(() => checkValidSurah(0)).toThrow(RangeError)
+    expect(() => checkValidSurah(-1)).toThrow(RangeError)
+  })
+
+  it("should throw RangeError for surah number greater than total number of surahs", () => {
+    expect(() => checkValidSurah(meta.numSuras + 1)).toThrow(RangeError)
+    expect(() => checkValidSurah(Number.MAX_SAFE_INTEGER)).toThrow(RangeError)
+  })
+
+  it("should return false for invalid surah numbers when checkOnly is true", () => {
+    expect(checkValidSurah(0, true)).toBe(false)
+    expect(checkValidSurah(1.9, true)).toBe(false)
+    expect(checkValidSurah(meta.numSuras + 1, true)).toBe(false)
+  })
+
+  it("should return true for valid surah numbers when checkOnly is true", () => {
+    expect(checkValidSurah(1, true)).toBe(true)
+    expect(checkValidSurah(meta.numSuras, true)).toBe(true)
+  })
+
+  it("should throw TypeError for non-number surah number", () => {
+    expect(() => checkValidSurah("1" as any)).toThrow(TypeError)
+    expect(() => checkValidSurah(null as any)).toThrow(TypeError)
+    expect(() => checkValidSurah(undefined as any)).toThrow(TypeError)
+  })
+
+  it("should throw TypeError for non-integer ayah id", () => {
+    expect(() => checkValidSurah(1.5)).toThrow(TypeError)
+    expect(() => checkValidSurah(2.99)).toThrow(TypeError)
+    expect(() => checkValidSurah(Math.PI)).toThrow(TypeError)
+  })
+})
diff --git a/tests/checkValidSurahAyah.spec.ts b/tests/checkValidSurahAyah.spec.ts
new file mode 100644
index 0000000..d542850
--- /dev/null
+++ b/tests/checkValidSurahAyah.spec.ts
@@ -0,0 +1,34 @@
+import { checkValidSurahAyah } from "../src"
+
+describe("checkValidSurahAyah", () => {
+  it("should return true for valid surah and ayah", () => {
+    expect(checkValidSurahAyah(1, 1)).toBe(true)
+    expect(checkValidSurahAyah(114, 6)).toBe(true)
+  })
+
+  it("should return false for invalid surah", () => {
+    expect(checkValidSurahAyah(0, 1, true)).toBe(false)
+    expect(checkValidSurahAyah(115, 1, true)).toBe(false)
+  })
+
+  it("should return false for invalid ayah when checkOnly is true", () => {
+    expect(checkValidSurahAyah(1, 0, true)).toBe(false)
+    expect(checkValidSurahAyah(1, 8, true)).toBe(false)
+  })
+
+  it("should throw RangeError for invalid ayah when checkOnly is false", () => {
+    expect(() => checkValidSurahAyah(1, 0)).toThrow(RangeError)
+    expect(() => checkValidSurahAyah(1, 8)).toThrow(RangeError)
+  })
+
+  it("should throw RangeError with correct message for invalid ayah", () => {
+    expect(() => checkValidSurahAyah(1, 8)).toThrow("Ayah must be between 1 and 7")
+    expect(() => checkValidSurahAyah(2, 287)).toThrow("Ayah must be between 1 and 286")
+  })
+
+  it("should handle edge cases", () => {
+    expect(checkValidSurahAyah(1, 7)).toBe(true)
+    expect(checkValidSurahAyah(2, 286)).toBe(true)
+    expect(checkValidSurahAyah(114, 1)).toBe(true)
+  })
+})
diff --git a/tests/findAyaidBySurah.spec.ts b/tests/findAyaidBySurah.spec.ts
new file mode 100644
index 0000000..c480521
--- /dev/null
+++ b/tests/findAyaidBySurah.spec.ts
@@ -0,0 +1,43 @@
+import { findAyaidBySurah, meta } from "../src"
+
+describe("findAyaidBySurah", () => {
+  it("should return correct AyahId for first ayah of first surah", () => {
+    expect(findAyaidBySurah(1, 1)).toEqual(1)
+  })
+
+  it("should return correct AyahId for last ayah of first surah", () => {
+    expect(findAyaidBySurah(1, 7)).toEqual(7)
+  })
+
+  it("should return correct AyahId for first ayah of second surah", () => {
+    expect(findAyaidBySurah(2, 1)).toEqual(8)
+  })
+
+  it("should return correct AyahId for middle of a surah", () => {
+    expect(findAyaidBySurah(3, 60)).toEqual(353)
+  })
+
+  it("should return correct AyahId for last surah", () => {
+    expect(findAyaidBySurah(114, 1)).toEqual(6231)
+  })
+
+  it("should return correct AyahId for last ayah of last surah", () => {
+    expect(findAyaidBySurah(114, 6)).toEqual(6236)
+  })
+
+  it("should handle edge cases", () => {
+    expect(findAyaidBySurah(1, 2)).toEqual(2)
+    expect(findAyaidBySurah(114, 6)).toEqual(meta.numAyas)
+    expect(findAyaidBySurah(9, 51)).toEqual(1286)
+    expect(findAyaidBySurah(9, 1)).toEqual(1236)
+    expect(findAyaidBySurah(10, 50)).toEqual(1414)
+  })
+
+  it("should throw error for invalid surah", () => {
+    expect(() => findAyaidBySurah(115, 1)).toThrow()
+  })
+
+  it("should throw error for invalid ayah", () => {
+    expect(() => findAyaidBySurah(1, 8)).toThrow()
+  })
+})
diff --git a/tests/findJuz.spec.ts b/tests/findJuz.spec.ts
new file mode 100644
index 0000000..ca09a86
--- /dev/null
+++ b/tests/findJuz.spec.ts
@@ -0,0 +1,46 @@
+import { findJuz } from "../src"
+
+describe("findJuz", () => {
+  it("basic", () => {
+    expect(findJuz(1, 2)).toEqual(1)
+    expect(findJuz(2, 1)).toEqual(1)
+    expect(findJuz(3, 1)).toEqual(3)
+  })
+
+  it("should return correct juz for first ayah of first surah", () => {
+    expect(findJuz(1, 1)).toEqual(1)
+  })
+
+  it("should return correct juz for first ayah of first surah", () => {
+    expect(findJuz(0, 1, true)).toEqual(1)
+    expect(findJuz(0, 6236, true)).toEqual(30)
+  })
+  it("should return correct juz for last surah", () => {
+    expect(findJuz(114, 1)).toEqual(30)
+  })
+
+  it("should return correct juz for middle of Quran", () => {
+    expect(findJuz(18, 1)).toEqual(15)
+  })
+
+  it("should return correct juz when ayah is not specified", () => {
+    expect(findJuz(2)).toEqual(1)
+  })
+
+  it("should handle juz change within a surah", () => {
+    expect(findJuz(2, 141)).toEqual(1)
+    expect(findJuz(2, 142)).toEqual(2)
+  })
+
+  it("should return correct juz for last ayah of Quran", () => {
+    expect(findJuz(114, 6)).toEqual(30)
+  })
+
+  it("should handle invalid surah numbers", () => {
+    expect(() => findJuz(115, 1)).toThrow()
+  })
+
+  it("should handle invalid ayah numbers", () => {
+    expect(() => findJuz(1, 8)).toThrow()
+  })
+})
diff --git a/tests/findJuzAndShift.spec.ts b/tests/findJuzAndShift.spec.ts
new file mode 100644
index 0000000..a66e482
--- /dev/null
+++ b/tests/findJuzAndShift.spec.ts
@@ -0,0 +1,110 @@
+import { meta } from "../src"
+import { findJuzAndShift } from "../src/findJuzAndShift"
+
+describe("findJuzAndShift", () => {
+  it("basic", () => {
+    expect(findJuzAndShift(1, 1)).toEqual({
+      juz: 1,
+      leftAyahId: 1,
+      ayahsBetweenJuzSurah: 0
+    })
+    expect(findJuzAndShift(1, 1, true)).toEqual({
+      juz: 1,
+      leftAyahId: 1,
+      ayahsBetweenJuzSurah: 0
+    })
+
+    expect(findJuzAndShift(1, 2)).toEqual({
+      juz: 1,
+      leftAyahId: 1,
+      ayahsBetweenJuzSurah: 0
+    })
+
+    expect(findJuzAndShift(2, 141)).toEqual({
+      juz: 1,
+      leftAyahId: 1,
+      ayahsBetweenJuzSurah: 7
+    })
+
+    expect(findJuzAndShift(2, 142)).toEqual({
+      juz: 2,
+      leftAyahId: 149,
+      ayahsBetweenJuzSurah: -141
+    })
+    expect(findJuzAndShift(2, 143)).toEqual({
+      juz: 2,
+      leftAyahId: 149,
+      ayahsBetweenJuzSurah: -141
+    })
+    expect(findJuzAndShift(2, 150)).toEqual({
+      juz: 2,
+      leftAyahId: 149,
+      ayahsBetweenJuzSurah: -141
+    })
+
+    expect(findJuzAndShift(2, 252)).toEqual({
+      juz: 2,
+      leftAyahId: 149,
+      ayahsBetweenJuzSurah: -141
+    })
+
+    expect(findJuzAndShift(2, 253)).toEqual({
+      juz: 3,
+      leftAyahId: 260,
+      ayahsBetweenJuzSurah: -252
+    })
+
+    expect(findJuzAndShift(3, 1)).toEqual({
+      juz: 3,
+      leftAyahId: 260,
+      ayahsBetweenJuzSurah: 34
+    })
+  })
+
+  it("should return correct juz, leftAyahId, and ayahsBetweenJuzSurah for valid input in surah mode", () => {
+    const result = findJuzAndShift(2, 1)
+    expect(result).toEqual({
+      juz: 1,
+      leftAyahId: 1,
+      ayahsBetweenJuzSurah: 7
+    })
+  })
+
+  it("should return correct juz, leftAyahId, and ayahsBetweenJuzSurah for valid input in ayah mode", () => {
+    expect(findJuzAndShift(0, 8, true)).toEqual({
+      juz: 1,
+      leftAyahId: 1,
+      ayahsBetweenJuzSurah: 7
+    })
+
+    expect(findJuzAndShift(0, 10, true)).toEqual({
+      juz: 1,
+      leftAyahId: 1,
+      ayahsBetweenJuzSurah: 7
+    })
+  })
+
+  it("should handle edge case at the end of a juz", () => {
+    const result = findJuzAndShift(2, 141)
+    expect(result.juz).toBe(1)
+  })
+
+  it("should handle edge case at the start of a juz", () => {
+    const result = findJuzAndShift(2, 142)
+    expect(result.juz).toBe(2)
+  })
+
+  it("should throw RangeError for invalid surah in surah mode", () => {
+    expect(() => findJuzAndShift(115, 1)).toThrow(RangeError)
+  })
+
+  it("should throw RangeError for invalid ayah in ayah mode", () => {
+    expect(() => findJuzAndShift(0, meta.numAyas + 1, true)).toThrow(RangeError)
+  })
+
+  it("should ignore surah number if yahmmode is true", () => {
+    const result = findJuzAndShift(-1, 1, true)
+    expect(result.juz).toBeGreaterThan(0)
+    expect(result.juz).toBeLessThanOrEqual(30)
+  })
+})
diff --git a/tests/findJuzByAyaid.spec.ts b/tests/findJuzByAyaid.spec.ts
new file mode 100644
index 0000000..2b2ed42
--- /dev/null
+++ b/tests/findJuzByAyaid.spec.ts
@@ -0,0 +1,36 @@
+import { findJuzByAyaid } from "../src"
+
+describe("findJuzByAyaid", () => {
+  it("basic", () => {
+    expect(findJuzByAyaid(2)).toEqual(1)
+    expect(findJuzByAyaid(100)).toEqual(1)
+    expect(findJuzByAyaid(200)).toEqual(2)
+  })
+
+  it("should return correct Juz for first ayah", () => {
+    expect(findJuzByAyaid(1)).toBe(1)
+  })
+
+  it("should return correct Juz for last ayah", () => {
+    expect(findJuzByAyaid(6236)).toBe(30)
+  })
+
+  it("should return correct Juz for ayah at Juz boundary", () => {
+    expect(findJuzByAyaid(148)).toBe(1)
+    expect(findJuzByAyaid(149)).toBe(2)
+  })
+
+  it("should return correct Juz for middle ayah", () => {
+    expect(findJuzByAyaid(3000)).toBe(19)
+  })
+
+  it("should throw error for invalid ayah id", () => {
+    expect(() => findJuzByAyaid(0)).toThrow()
+    expect(() => findJuzByAyaid(6237)).toThrow()
+  })
+
+  it("should handle edge cases", () => {
+    expect(findJuzByAyaid(2)).toBe(1)
+    expect(findJuzByAyaid(6235)).toBe(30)
+  })
+})
diff --git a/tests/findJuzHizb.spec.ts b/tests/findJuzHizb.spec.ts
new file mode 100644
index 0000000..d7ed548
--- /dev/null
+++ b/tests/findJuzHizb.spec.ts
@@ -0,0 +1,29 @@
+import { findJuzHizb } from "../src"
+
+describe("findJuzHizb", () => {
+  it("should return correct JuzHizb for first surah and ayah", () => {
+    expect(findJuzHizb(1, 1)).toEqual({ juz: 1, hizb: 1, id: 1 })
+  })
+
+  it("should return correct JuzHizb for last surah and ayah", () => {
+    expect(findJuzHizb(114, 6)).toEqual({ juz: 30, hizb: 8, id: 240 })
+  })
+
+  it("should return correct JuzHizb for a middle surah and ayah", () => {
+    expect(findJuzHizb(18, 1)).toEqual({ juz: 15, hizb: 5, id: 117 })
+  })
+
+  it("should handle ayahMode correctly", () => {
+    expect(findJuzHizb(2, 286, true)).toEqual({ juz: 3, hizb: 3, id: 19 })
+  })
+
+  it("should throw an error for invalid surah number", () => {
+    expect(() => findJuzHizb(0)).toThrow()
+    expect(() => findJuzHizb(115)).toThrow()
+  })
+
+  it("should handle edge cases", () => {
+    expect(findJuzHizb(2, 1)).toEqual({ juz: 1, hizb: 1, id: 1 })
+    expect(findJuzHizb(2, 142)).toEqual({ juz: 2, hizb: 1, id: 9 })
+  })
+})
diff --git a/tests/findJuzHizbByAyaid.spec.ts b/tests/findJuzHizbByAyaid.spec.ts
new file mode 100644
index 0000000..b787d8a
--- /dev/null
+++ b/tests/findJuzHizbByAyaid.spec.ts
@@ -0,0 +1,56 @@
+import { expect, vi } from "vitest"
+import { findJuzHizbByAyaid, meta } from "../src"
+import * as module from "../src/validation"
+
+describe("findJuzHizbByAyaid", () => {
+  beforeEach(() => {
+    vi.clearAllMocks()
+  })
+
+  it("basic", () => {
+    expect(findJuzHizbByAyaid(1)).toEqual({ hizb: 1, id: 1, juz: 1 })
+    expect(findJuzHizbByAyaid(32)).toEqual({ hizb: 1, id: 1, juz: 1 })
+    expect(findJuzHizbByAyaid(33)).toEqual({ hizb: 2, id: 2, juz: 1 })
+    expect(findJuzHizbByAyaid(148)).toEqual({ hizb: 8, id: 8, juz: 1 })
+    expect(findJuzHizbByAyaid(149)).toEqual({ hizb: 1, id: 9, juz: 2 })
+    expect(findJuzHizbByAyaid(meta.numAyas)).toEqual({
+      hizb: 8,
+      id: 240,
+      juz: 30
+    })
+  })
+
+  it("should return correct JuzHizb for first ayah", () => {
+    const result = findJuzHizbByAyaid(1)
+    expect(result).toEqual({ juz: 1, hizb: 1, id: 1 })
+  })
+
+  it("should return correct JuzHizb for last ayah", () => {
+    const result = findJuzHizbByAyaid(6236)
+    expect(result).toEqual({ juz: 30, hizb: 8, id: 240 })
+  })
+
+  it("should return correct JuzHizb for middle ayah", () => {
+    const result = findJuzHizbByAyaid(3000)
+    expect(result).toEqual({ juz: 19, hizb: 4, id: 148 })
+  })
+
+  it("should call checkValidAyahId with correct argument", () => {
+    const spy = vi.spyOn(module, "checkValidAyahId")
+
+    findJuzHizbByAyaid(100)
+    expect(spy).toHaveBeenCalledWith(100)
+  })
+
+  describe("findJuzHizbByAyaid error handling", () => {
+    it("should throw an error for invalid Ayah ID", () => {
+      expect(() => findJuzHizbByAyaid(6237)).toThrow()
+      expect(() => findJuzHizbByAyaid(0)).toThrow()
+    })
+  })
+
+  it("should handle edge case when ayaId is at hizb boundary", () => {
+    const result = findJuzHizbByAyaid(148)
+    expect(result).toEqual({ juz: 1, hizb: 8, id: 8 })
+  })
+})
diff --git a/tests/findJuzMetaBySurah.spec.ts b/tests/findJuzMetaBySurah.spec.ts
new file mode 100644
index 0000000..fca4bae
--- /dev/null
+++ b/tests/findJuzMetaBySurah.spec.ts
@@ -0,0 +1,72 @@
+import { expect, vi } from "vitest"
+import { findJuzMetaBySurah } from "../src/findJuzMetaBySurah"
+import * as findSurahByAyaidModule from "../src/findSurahByAyaid"
+
+describe("findJuzMetaBySurah", () => {
+  beforeEach(() => {
+    vi.clearAllMocks()
+  })
+
+  it("should return correct JuzMeta for first surah", () => {
+    const result = findJuzMetaBySurah(1)
+    expect(result).toEqual({
+      leftjuz: 1,
+      ayahsBetweenJuzSurah: 0,
+      rightJuz: 1,
+      leftAyahId: 1,
+      rightAyahId: 149
+    })
+  })
+
+  it("should return correct JuzMeta for a surah spanning multiple juz", () => {
+    const result = findJuzMetaBySurah(2)
+    expect(result).toEqual({
+      leftjuz: 1,
+      ayahsBetweenJuzSurah: 7,
+      rightJuz: 3,
+      leftAyahId: 1,
+      rightAyahId: 386
+    })
+  })
+
+  it("should handle a surah entirely within one juz", () => {
+    const result = findJuzMetaBySurah(114)
+    expect(result).toEqual({
+      leftjuz: 30,
+      ayahsBetweenJuzSurah: 558,
+      rightJuz: 30,
+      leftAyahId: 5673,
+      rightAyahId: 6237
+    })
+  })
+
+  it("should return correct JuzMeta when ayah is specified", () => {
+    const result = findJuzMetaBySurah(2, 150)
+    expect(result).toEqual({
+      leftjuz: 2,
+      ayahsBetweenJuzSurah: -141,
+      rightJuz: 3,
+      leftAyahId: 149,
+      rightAyahId: 386
+    })
+  })
+
+  it("should handle edge case when ayah is at juz boundary", () => {
+    const result = findJuzMetaBySurah(2, 141)
+    expect(result).toEqual({
+      leftjuz: 1,
+      ayahsBetweenJuzSurah: 7,
+      rightJuz: 3,
+      leftAyahId: 1,
+      rightAyahId: 386
+    })
+  })
+
+  it("should use mocked findSurahByAyaid", () => {
+    const mockFindSurahByAyaid = vi.spyOn(findSurahByAyaidModule, "findSurahByAyaid")
+    mockFindSurahByAyaid.mockReturnValue([2, 1])
+    const result = findJuzMetaBySurah(2)
+    expect(mockFindSurahByAyaid).toHaveBeenCalled()
+    expect(result.rightJuz).toBe(30)
+  })
+})
diff --git a/tests/findPage.spec.ts b/tests/findPage.spec.ts
new file mode 100644
index 0000000..7b673ab
--- /dev/null
+++ b/tests/findPage.spec.ts
@@ -0,0 +1,53 @@
+import { expect, vi } from "vitest"
+import { findPage } from "../src"
+import * as ayahIdModule from "../src/findAyaidBySurah"
+import * as module from "../src/validation"
+
+describe("findPage", () => {
+  beforeEach(() => {
+    vi.clearAllMocks()
+  })
+
+  it("basic", () => {
+    expect(findPage(1, 1)).toEqual(1)
+    expect(findPage(1, 2)).toEqual(1)
+    expect(findPage(2, 1)).toEqual(2)
+    expect(findPage(114, 1)).toEqual(604)
+  })
+
+  it("should return correct page for first surah and ayah", () => {
+    const result = findPage(1, 1)
+    expect(result).toBe(1)
+  })
+
+  it("should return correct page for last surah and ayah", () => {
+    const result = findPage(114, 6)
+    expect(result).toBe(604)
+  })
+
+  it("should return correct page for middle surah and ayah", () => {
+    const result = findPage(56, 50)
+    expect(result).toBe(535)
+  })
+
+  it("should handle ayahMode correctly", () => {
+    const spy = vi.spyOn(module, "checkValidAyahId")
+    const result = findPage(0, 100, true)
+    expect(spy).toHaveBeenCalledWith(100)
+    expect(result).toBe(14)
+  })
+
+  it("should call checkValidSurah and findAyaidBySurah when not in ayahMode", () => {
+    const surahSpy = vi.spyOn(module, "checkValidSurah")
+    const ayahIdSpy = vi.spyOn(ayahIdModule, "findAyaidBySurah")
+    const result = findPage(5, 10)
+    expect(surahSpy).toHaveBeenCalledWith(5)
+    expect(ayahIdSpy).toHaveBeenCalledWith(5, 10)
+    expect(result).toBe(109)
+  })
+
+  it("should handle edge case when ayahId is at page boundary", () => {
+    const result = findPage(2, 141)
+    expect(result).toBe(21)
+  })
+})
diff --git a/tests/findRangeAroundAyah.spec.ts b/tests/findRangeAroundAyah.spec.ts
new file mode 100644
index 0000000..6e677ec
--- /dev/null
+++ b/tests/findRangeAroundAyah.spec.ts
@@ -0,0 +1,47 @@
+import { findRangeAroundAyah, meta } from "../src"
+
+describe("findRangeAroundAyah", () => {
+  it("should return correct range for juz mode", () => {
+    expect(findRangeAroundAyah(2, 142, "juz")).toEqual([149, 259])
+  })
+
+  it("should return correct range for surah mode", () => {
+    expect(findRangeAroundAyah(3, 60, "surah")).toEqual([294, 493])
+  })
+
+  it("should return correct range for ayah mode", () => {
+    expect(findRangeAroundAyah(4, 20, "ayah")).toEqual([513, 513])
+  })
+
+  it("should return correct range for page mode", () => {
+    expect(findRangeAroundAyah(5, 30, "page")).toEqual([693, 700])
+    expect(findRangeAroundAyah(1, 1, "page")).toEqual([1, 7])
+    expect(findRangeAroundAyah(114, 4, "page")).toEqual([6222, 6236])
+  })
+
+  it("should return full Quran range for all mode", () => {
+    expect(findRangeAroundAyah(1, 1, "all")).toEqual([1, meta.numAyas])
+    expect(findRangeAroundAyah(2, 21, "all")).toEqual([1, meta.numAyas])
+    expect(findRangeAroundAyah(114, 6, "all")).toEqual([1, meta.numAyas])
+  })
+
+  it("should handle ayahMode correctly", () => {
+    expect(findRangeAroundAyah(1, 500, "ayah", true)).toEqual([500, 500])
+  })
+
+  it("should throw error for invalid surah in non-ayahMode", () => {
+    expect(() => findRangeAroundAyah(115, 1, "surah")).toThrow()
+  })
+
+  it("should throw error for invalid ayah in non-ayahMode", () => {
+    expect(() => findRangeAroundAyah(1, 8, "ayah")).toThrow()
+  })
+
+  it("should return correct range for first ayah of first surah", () => {
+    expect(findRangeAroundAyah(1, 1, "juz")).toEqual([1, 148])
+  })
+
+  it("should return correct range for last ayah of last surah", () => {
+    expect(findRangeAroundAyah(114, 6, "surah")).toEqual([6231, 6236])
+  })
+})
diff --git a/tests/findSurahByAyaid.spec.ts b/tests/findSurahByAyaid.spec.ts
new file mode 100644
index 0000000..578c549
--- /dev/null
+++ b/tests/findSurahByAyaid.spec.ts
@@ -0,0 +1,39 @@
+import { meta } from "../src"
+import { findSurahByAyaid } from "../src/findSurahByAyaid"
+
+describe("findSurahByAyaid", () => {
+  it("surah of ayaid 1", () => {
+    expect(findSurahByAyaid(1)).toEqual(expect.arrayContaining([1, 1]))
+    expect(findSurahByAyaid(2)).toEqual(expect.arrayContaining([1, 2]))
+    expect(findSurahByAyaid(7)).toEqual(expect.arrayContaining([1, 7]))
+    expect(findSurahByAyaid(8)).toEqual(expect.arrayContaining([2, 1]))
+    expect(findSurahByAyaid(6231)).toEqual(expect.arrayContaining([114, 1]))
+    expect(findSurahByAyaid(6230)).toEqual(expect.arrayContaining([113, 5]))
+    expect(findSurahByAyaid(meta.numAyas)).toEqual(
+      expect.arrayContaining([114, 6])
+    )
+  })
+
+  it("should return correct surah and ayah for first ayah", () => {
+    expect(findSurahByAyaid(1)).toEqual([1, 1])
+  })
+
+  it("should return correct surah and ayah for last ayah", () => {
+    expect(findSurahByAyaid(meta.numAyas)).toEqual([114, 6])
+  })
+
+  it("should return correct surah and ayah for middle ayah", () => {
+    const middleAyah = Math.floor(meta.numAyas / 2)
+    expect(findSurahByAyaid(middleAyah)).toEqual([26, 186])
+  })
+
+  it("should return correct surah and ayah for ayah at surah boundary", () => {
+    expect(findSurahByAyaid(7)).toEqual([1, 7])
+    expect(findSurahByAyaid(8)).toEqual([2, 1])
+  })
+
+  it("should throw RangeError for invalid ayah id", () => {
+    expect(() => findSurahByAyaid(0)).toThrow(RangeError)
+    expect(() => findSurahByAyaid(meta.numAyas + 1)).toThrow(RangeError)
+  })
+})
diff --git a/tests/getAyaCountinSura.spec.ts b/tests/getAyaCountinSura.spec.ts
new file mode 100644
index 0000000..6bdea52
--- /dev/null
+++ b/tests/getAyaCountinSura.spec.ts
@@ -0,0 +1,28 @@
+import { getAyaCountinSura } from "../src"
+
+describe("getAyaCountinSura", () => {
+  it("should return correct aya count for first surah", () => {
+    expect(getAyaCountinSura(1)).toBe(7)
+  })
+
+  it("should return correct aya count for last surah", () => {
+    expect(getAyaCountinSura(114)).toBe(6)
+  })
+
+  it("should return correct aya count for a middle surah", () => {
+    expect(getAyaCountinSura(56)).toBe(96)
+  })
+
+  it("should return correct aya count for the longest surah", () => {
+    expect(getAyaCountinSura(2)).toBe(286)
+  })
+
+  it("should return correct aya count for the shortest surah", () => {
+    expect(getAyaCountinSura(108)).toBe(3)
+  })
+
+  it("should throw an error for invalid surah number", () => {
+    expect(() => getAyaCountinSura(0)).toThrow()
+    expect(() => getAyaCountinSura(115)).toThrow()
+  })
+})
diff --git a/tests/getSurahMeta.spec.ts b/tests/getSurahMeta.spec.ts
new file mode 100644
index 0000000..a5c48a8
--- /dev/null
+++ b/tests/getSurahMeta.spec.ts
@@ -0,0 +1,27 @@
+import { getSurahMeta } from "../src/getSurahMeta"
+import { SuraList } from "../src/lists/surahList"
+
+describe("getSurahMeta", () => {
+  it("should return correct metadata for first surah", () => {
+    const result = getSurahMeta(1)
+    expect(result).toEqual(SuraList[1])
+  })
+
+  it("should return correct metadata for last surah", () => {
+    const result = getSurahMeta(114)
+    expect(result).toEqual(SuraList[114])
+  })
+
+  it("should return correct metadata for a middle surah", () => {
+    const result = getSurahMeta(57)
+    expect(result).toEqual(SuraList[57])
+  })
+
+  it("should throw an error for surah number 0", () => {
+    expect(() => getSurahMeta(0)).toThrow()
+  })
+
+  it("should throw an error for surah number 115", () => {
+    expect(() => getSurahMeta(115)).toThrow()
+  })
+})
diff --git a/tests/isAyahJuzFirst.spec.ts b/tests/isAyahJuzFirst.spec.ts
new file mode 100644
index 0000000..ca7dec5
--- /dev/null
+++ b/tests/isAyahJuzFirst.spec.ts
@@ -0,0 +1,47 @@
+import { isAyahJuzFirst } from "../src/isAyahJuzFirst"
+
+describe("isAyahJuzFirst", () => {
+  it("basic", () => {
+    expect(isAyahJuzFirst(1, 1)).toEqual(1)
+    expect(isAyahJuzFirst(-1, 1, true)).toEqual(1)
+    expect(isAyahJuzFirst(2, 142)).toEqual(2)
+    expect(isAyahJuzFirst(-1, 149, true)).toEqual(2)
+
+    expect(isAyahJuzFirst(2, 1)).toEqual(-3)
+    expect(isAyahJuzFirst(114, 1)).toEqual(-32)
+    // expect(isAyahJuzFirst(1, 114)).toEqual(-3)
+  })
+
+  it("should return correct Juz for the first ayah of a Juz", () => {
+    expect(isAyahJuzFirst(2, 142)).toBe(2)
+    expect(isAyahJuzFirst(4, 1)).toBeLessThan(0)
+    expect(isAyahJuzFirst(6, 111)).toBe(8)
+  })
+
+  it("should return correct Juz for non-first ayah of a Juz", () => {
+    expect(isAyahJuzFirst(2, 143)).toBeLessThan(0)
+    expect(isAyahJuzFirst(4, 2)).toBeLessThan(0)
+    expect(isAyahJuzFirst(6, 112)).toBeLessThan(0)
+  })
+
+  it("should handle ayahMode correctly", () => {
+    expect(isAyahJuzFirst(0, 2142, true)).toBeLessThan(0)
+    expect(isAyahJuzFirst(0, 4001, true)).toBeLessThan(0)
+    expect(isAyahJuzFirst(0, 5673, true)).toBe(30)
+  })
+
+  it("should throw an error for invalid surah", () => {
+    expect(() => isAyahJuzFirst(0, 1)).toThrow()
+    expect(() => isAyahJuzFirst(115, 1)).toThrow()
+  })
+
+  it("should throw an error for invalid ayah", () => {
+    expect(() => isAyahJuzFirst(1, 0)).toThrow()
+    expect(() => isAyahJuzFirst(1, 8)).toThrow()
+  })
+
+  it("should handle edge cases", () => {
+    expect(isAyahJuzFirst(1, 1)).toBe(1)
+    expect(isAyahJuzFirst(114, 6)).toBeLessThan(0)
+  })
+})
diff --git a/tests/isAyahPageFirst.spec.ts b/tests/isAyahPageFirst.spec.ts
new file mode 100644
index 0000000..3197908
--- /dev/null
+++ b/tests/isAyahPageFirst.spec.ts
@@ -0,0 +1,47 @@
+import { isAyahPageFirst } from "../src/isAyahPageFirst"
+
+describe("isAyahPageFirst", () => {
+  it("basic", () => {
+    expect(isAyahPageFirst(1, 1)).toEqual(1)
+    expect(isAyahPageFirst(-1, 1, true)).toEqual(1)
+    expect(isAyahPageFirst(2, 1)).toEqual(2)
+    expect(isAyahPageFirst(2, 142)).toEqual(22)
+    expect(isAyahPageFirst(-1, 149, true)).toEqual(22)
+
+    expect(isAyahPageFirst(2, 2)).toEqual(-4)
+    // expect(isAyahPageFirst(114, 1)).toEqual(-32)
+    // expect(isAyahPageFirst(1, 114)).toEqual(-3)
+  })
+
+  it("should return correct Juz for valid surah and ayah in ayah mode", () => {
+    const result = isAyahPageFirst(1, 1, true)
+    expect(result).toBeDefined()
+    expect(typeof result).toBe("number")
+  })
+
+  it("should return correct Juz for valid surah and ayah in non-ayah mode", () => {
+    const result = isAyahPageFirst(1, 1)
+    expect(result).toBeDefined()
+    expect(typeof result).toBe("number")
+  })
+
+  it("should handle edge case with last surah and ayah", () => {
+    const result = isAyahPageFirst(114, 6)
+    expect(result).toBeDefined()
+    expect(typeof result).toBe("number")
+  })
+
+  it("should throw error for invalid surah in non-ayah mode", () => {
+    expect(() => isAyahPageFirst(115, 1)).toThrow()
+  })
+
+  it("should throw error for invalid ayah in ayah mode", () => {
+    expect(() => isAyahPageFirst(1, 0, true)).toThrow()
+  })
+
+  it("should handle middle surah and ayah", () => {
+    const result = isAyahPageFirst(50, 20)
+    expect(result).toBeDefined()
+    expect(typeof result).toBe("number")
+  })
+})
diff --git a/tests/nextAyah.spec.ts b/tests/nextAyah.spec.ts
new file mode 100644
index 0000000..570aa6b
--- /dev/null
+++ b/tests/nextAyah.spec.ts
@@ -0,0 +1,32 @@
+import { meta, nextAyah } from "../src"
+
+describe("nextAyah", () => {
+  it("should return the next ayah within the same surah", () => {
+    expect(nextAyah(1, 1)).toEqual(expect.arrayContaining([1, 2]))
+    expect(nextAyah(2, 285)).toEqual(expect.arrayContaining([2, 286]))
+  })
+
+  it("should return the first ayah of the next surah when at the end of a surah", () => {
+    expect(nextAyah(1, 7)).toEqual(expect.arrayContaining([2, 1]))
+    expect(nextAyah(113, 5)).toEqual(expect.arrayContaining([114, 1]))
+  })
+
+  it("should wrap around to the first ayah of the first surah when at the end of the Quran", () => {
+    expect(nextAyah(114, 6)).toEqual(expect.arrayContaining([1, 1]))
+  })
+
+  it("should throw RangeError for invalid surah", () => {
+    expect(() => nextAyah(0, 1)).toThrow(RangeError)
+    expect(() => nextAyah(115, 1)).toThrow(RangeError)
+  })
+
+  it("should throw RangeError with correct message for invalid surah", () => {
+    expect(() => nextAyah(0, 1)).toThrow(`Surah must be between 1 and ${meta.numSuras}`)
+    expect(() => nextAyah(115, 1)).toThrow(`Surah must be between 1 and ${meta.numSuras}`)
+  })
+
+  it("should handle edge cases", () => {
+    expect(nextAyah(9, 127)).toEqual(expect.arrayContaining([9, 128]))
+    expect(nextAyah(2, 286)).toEqual(expect.arrayContaining([3, 1]))
+  })
+})
diff --git a/tests/pageMeta.spec.ts b/tests/pageMeta.spec.ts
new file mode 100644
index 0000000..f894bb0
--- /dev/null
+++ b/tests/pageMeta.spec.ts
@@ -0,0 +1,32 @@
+import { meta, pageMeta } from "../src"
+
+describe("pageMeta", () => {
+  it("should return correct metadata for the first page", () => {
+    const result = pageMeta(1)
+    expect(result.pageNum).toBe(1)
+    expect(result.first).toEqual([1, 1])
+    expect(result.last).toEqual([1, 7])
+  })
+
+  it("should return correct metadata for the last page", () => {
+    const result = pageMeta(meta.numPages)
+    expect(result.pageNum).toBe(meta.numPages)
+    expect(result.first).toEqual([112, 1])
+    expect(result.last).toEqual([114, 6])
+  })
+
+  it("should return correct metadata for a middle page", () => {
+    const result = pageMeta(300)
+    expect(result.pageNum).toBe(300)
+    expect(result.first).toEqual([18, 54])
+    expect(result.last).toEqual([18, 61])
+  })
+
+  it("should throw RangeError for page number below 1", () => {
+    expect(() => pageMeta(0)).toThrow(RangeError)
+  })
+
+  it("should throw RangeError for page number above numPages", () => {
+    expect(() => pageMeta(meta.numPages + 1)).toThrow(RangeError)
+  })
+})
diff --git a/tests/prevAyah.spec.ts b/tests/prevAyah.spec.ts
new file mode 100644
index 0000000..d88c259
--- /dev/null
+++ b/tests/prevAyah.spec.ts
@@ -0,0 +1,38 @@
+import { meta } from "../src"
+import { prevAyah } from "../src/prevAyah"
+
+describe("prevAyah", () => {
+  it("basic", () => {
+    expect(prevAyah(1, 6)).toEqual(expect.arrayContaining([1, 5]))
+    expect(prevAyah(113, 1)).toEqual(expect.arrayContaining([112, 4]))
+  })
+
+  it("should return the previous ayah within the same surah", () => {
+    expect(prevAyah(1, 2)).toEqual(expect.arrayContaining([1, 1]))
+    expect(prevAyah(2, 286)).toEqual(expect.arrayContaining([2, 285]))
+  })
+
+  it("should return the last ayah of the previous surah when at the beginning of a surah", () => {
+    expect(prevAyah(2, 1)).toEqual(expect.arrayContaining([1, 7]))
+    expect(prevAyah(114, 1)).toEqual(expect.arrayContaining([113, 5]))
+  })
+
+  it("should wrap around to the last ayah of the last surah when at the beginning of the Quran", () => {
+    expect(prevAyah(1, 1)).toEqual(expect.arrayContaining([114, 6]))
+  })
+
+  it("should throw RangeError for invalid surah", () => {
+    expect(() => prevAyah(0, 1)).toThrow(RangeError)
+    expect(() => prevAyah(115, 1)).toThrow(RangeError)
+  })
+
+  it("should throw RangeError with correct message for invalid surah", () => {
+    expect(() => prevAyah(0, 1)).toThrow(`Surah must be between 1 and ${meta.numSuras}`)
+    expect(() => prevAyah(115, 1)).toThrow(`Surah must be between 1 and ${meta.numSuras}`)
+  })
+
+  it("should handle edge cases", () => {
+    expect(prevAyah(9, 128)).toEqual(expect.arrayContaining([9, 127]))
+    expect(prevAyah(3, 1)).toEqual(expect.arrayContaining([2, 286]))
+  })
+})
diff --git a/tests/quran-data.spec.ts b/tests/quran-data.spec.ts
index 36c5312..b2f3877 100644
--- a/tests/quran-data.spec.ts
+++ b/tests/quran-data.spec.ts
@@ -1,30 +1,15 @@
 import {
   findAyaidBySurah,
-  findSurahByAyaid,
-  isAyahJuzFirst,
-  findJuz,
-  findJuzHizbByAyaid,
   findJuzMetaBySurah,
   findPage,
-  nextAyah,
-  prevAyah,
-  ayaStringSplitter,
-  // pageMetaOld,
-  JuzList,
-  pageMeta,
-  SuraList,
-  SajdaList,
-  HizbQuarterList,
-  ManzilList,
-  PageList,
-  RukuList,
+  findSurahByAyaid,
   getSurahMeta,
-  findJuzAndShift,
+  isAyahJuzFirst,
+  JuzList,
   meta,
-  findJuzByAyaid,
-  isAyahPageFirst,
+  pageMeta
 } from "../src/"
-import { AyahNo, AyahId, Surah } from "../src/types"
+import { AyahId, AyahNo, Surah } from "../src/types"
 
 console.log("STARING")
 console.log(1, findSurahByAyaid(1))
@@ -43,8 +28,7 @@ console.log("isAyahJuzFirst 2", isAyahJuzFirst(2, 142))
 console.log("isAyahJuzFirst -1", isAyahJuzFirst(2, 143))
 console.log("findAyaidBySurah 110.3", findAyaidBySurah(110, 3))
 console.log("findAyaidBySurah 114.6", findAyaidBySurah(114, 6))
-console.log("2,1", findJuz(2, 1))
-console.log("114,1", findJuz(114, 1))
+
 console.log("JuzList 6237", JuzList[31])
 console.log("findJuzMetaBySurah 1,1", findJuzMetaBySurah(1, 1))
 console.log("findJuzMetaBySurah 2,1", findJuzMetaBySurah(2, 1))
@@ -58,179 +42,9 @@ console.log("pageMeta 604", pageMeta(604))
 console.log("pmeta", pageMeta(1))
 // console.log("pmeta", pageMetaOld(1))
 
-describe("nextAyah", () => {
-  it("true", () => {
-    expect(nextAyah(1, 1)).toEqual(expect.arrayContaining([1, 2]))
-    expect(nextAyah(1, 7)).toEqual(expect.arrayContaining([2, 1]))
-    expect(nextAyah(113, 5)).toEqual(expect.arrayContaining([114, 1]))
-    expect(nextAyah(114, 6)).toEqual(expect.arrayContaining([1, 1]))
-  })
-})
-
-describe("prevAyah", () => {
-  it("true", () => {
-    expect(prevAyah(1, 2)).toEqual(expect.arrayContaining([1, 1]))
-    expect(prevAyah(1, 6)).toEqual(expect.arrayContaining([1, 5]))
-    expect(prevAyah(2, 1)).toEqual(expect.arrayContaining([1, 7]))
-    expect(prevAyah(113, 1)).toEqual(expect.arrayContaining([112, 4]))
-    expect(prevAyah(1, 1)).toEqual(expect.arrayContaining([114, 6]))
-  })
-})
-
-describe("ayaStringSplitter", () => {
-  it("true", () => {
-    expect(ayaStringSplitter("1:1")).toEqual([1, 1])
-    expect(ayaStringSplitter("1:1-5")).toEqual([1, [1, 5]])
-    expect(ayaStringSplitter("114:1")).toEqual([114, 1])
-    // expect(ayaStringSplitter("115:1")).toEqual([115,1])
-  })
-})
-
-describe("findPage", () => {
-  it("true", () => {
-    expect(findPage(1, 1)).toEqual(1)
-    expect(findPage(1, 2)).toEqual(1)
-    expect(findPage(2, 1)).toEqual(2)
-    expect(findPage(114, 1)).toEqual(604)
-  })
-})
-
-describe("findJuzByAyaid", () => {
-  it("true", () => {
-    expect(findJuzByAyaid(1)).toEqual(1)
-    expect(findJuzByAyaid(2)).toEqual(1)
-    expect(findJuzByAyaid(100)).toEqual(1)
-    expect(findJuzByAyaid(148)).toEqual(1)
-    expect(findJuzByAyaid(149)).toEqual(2)
-    expect(findJuzByAyaid(200)).toEqual(2)
-    expect(findJuzByAyaid(6236)).toEqual(30)
-  })
-})
-
-describe("findJuz", () => {
-  it("true", () => {
-    expect(findJuz(1, 1)).toEqual(1)
-    expect(findJuz(1, 2)).toEqual(1)
-    expect(findJuz(2, 1)).toEqual(1)
-    expect(findJuz(3, 1)).toEqual(3)
-    expect(findJuz(114, 1)).toEqual(30)
-  })
-})
-
-describe("findJuzAndShift", () => {
-  it("true", () => {
-    expect(findJuzAndShift(1, 1)).toEqual({
-      juz: 1,
-      leftAyahId: 1,
-      ayahsBetweenJuzSurah: 0,
-    })
-    expect(findJuzAndShift(1, 1, true)).toEqual({
-      juz: 1,
-      leftAyahId: 1,
-      ayahsBetweenJuzSurah: 0,
-    })
-
-    expect(findJuzAndShift(1, 2)).toEqual({
-      juz: 1,
-      leftAyahId: 1,
-      ayahsBetweenJuzSurah: 0,
-    })
-
-    expect(findJuzAndShift(2, 1)).toEqual({
-      juz: 1,
-      leftAyahId: 1,
-      ayahsBetweenJuzSurah: 7,
-    })
-
-    expect(findJuzAndShift(2, 141)).toEqual({
-      juz: 1,
-      leftAyahId: 1,
-      ayahsBetweenJuzSurah: 7,
-    })
-
-    expect(findJuzAndShift(2, 142)).toEqual({
-      juz: 2,
-      leftAyahId: 149,
-      ayahsBetweenJuzSurah: -141,
-    })
-    expect(findJuzAndShift(2, 143)).toEqual({
-      juz: 2,
-      leftAyahId: 149,
-      ayahsBetweenJuzSurah: -141,
-    })
-  })
-})
-
-describe("findJuzHizbByAyaid", () => {
-  it("true", () => {
-    expect(findJuzHizbByAyaid(1)).toEqual({ hizb: 1, id: 1, juz: 1 })
-    expect(findJuzHizbByAyaid(32)).toEqual({ hizb: 1, id: 1, juz: 1 })
-    expect(findJuzHizbByAyaid(33)).toEqual({ hizb: 2, id: 2, juz: 1 })
-    expect(findJuzHizbByAyaid(148)).toEqual({ hizb: 8, id: 8, juz: 1 })
-    expect(findJuzHizbByAyaid(149)).toEqual({ hizb: 1, id: 9, juz: 2 })
-    expect(findJuzHizbByAyaid(meta.numAyas)).toEqual({
-      hizb: 8,
-      id: 240,
-      juz: 30,
-    })
-  })
-})
-
-describe("isAyahJuzFirst", () => {
-  it("true", () => {
-    expect(isAyahJuzFirst(1, 1)).toEqual(1)
-    expect(isAyahJuzFirst(-1, 1, true)).toEqual(1)
-    expect(isAyahJuzFirst(2, 142)).toEqual(2)
-    expect(isAyahJuzFirst(-1, 149, true)).toEqual(2)
-  })
-
-  it("false", () => {
-    expect(isAyahJuzFirst(2, 1)).toEqual(-3)
-    expect(isAyahJuzFirst(114, 1)).toEqual(-32)
-    expect(isAyahJuzFirst(1, 114)).toEqual(-3)
-  })
-})
-
-describe("isAyahPageFirst", () => {
-  it("true", () => {
-    expect(isAyahPageFirst(1, 1)).toEqual(1)
-    expect(isAyahPageFirst(-1, 1, true)).toEqual(1)
-    expect(isAyahPageFirst(2, 1)).toEqual(2)
-    expect(isAyahPageFirst(2, 142)).toEqual(22)
-    expect(isAyahPageFirst(-1, 149, true)).toEqual(22)
-  })
-
-  it("false", () => {
-    expect(isAyahPageFirst(2, 2)).toEqual(-4)
-    // expect(isAyahPageFirst(114, 1)).toEqual(-32)
-    // expect(isAyahPageFirst(1, 114)).toEqual(-3)
-  })
-})
-
-describe("findSurahByAyaid", () => {
-  it("surah of ayaid 1", () => {
-    expect(findSurahByAyaid(1)).toEqual(expect.arrayContaining([1, 1]))
-    expect(findSurahByAyaid(2)).toEqual(expect.arrayContaining([1, 2]))
-    expect(findSurahByAyaid(7)).toEqual(expect.arrayContaining([1, 7]))
-    expect(findSurahByAyaid(8)).toEqual(expect.arrayContaining([2, 1]))
-    expect(findSurahByAyaid(meta.numAyas)).toEqual(
-      expect.arrayContaining([114, 6])
-    )
-  })
-})
-
-describe("findAyaidBySurah", () => {
-  it("ayaid of surah 1", () => {
-    expect(findAyaidBySurah(1, 1)).toEqual(1)
-    expect(findAyaidBySurah(1, 2)).toEqual(2)
-    expect(findAyaidBySurah(2, 1)).toEqual(8)
-    expect(findAyaidBySurah(114, 6)).toEqual(meta.numAyas)
-  })
-})
-
-let f = (i: AyahId) =>
+const f = (i: AyahId) =>
   expect(findAyaidBySurah(...findSurahByAyaid(i))).toEqual(i)
-let xf = (i: Surah, j: AyahNo) =>
+const xf = (i: Surah, j: AyahNo) =>
   expect(findSurahByAyaid(findAyaidBySurah(i, j))).toEqual([i, j])
 
 describe("crossTest", () => {
diff --git a/tests/tsconfig.json b/tests/tsconfig.json
new file mode 100644
index 0000000..b2ae4bf
--- /dev/null
+++ b/tests/tsconfig.json
@@ -0,0 +1,8 @@
+{
+  "extends":"../tsconfig.json",
+  "compilerOptions": {
+   
+    "types": ["vitest/globals"],
+  },
+  "include": ["../tests"]
+}
\ No newline at end of file
diff --git a/tsconfig.json b/tsconfig.json
index 2eca4ae..762a92e 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -2,20 +2,19 @@
   "compilerOptions": {
     "target": "esnext",
     "module": "esnext",
-    "moduleResolution": "node",
+    "moduleResolution": "bundler",
     "rootDir": "./src",
-    "allowJs": false,
-    "experimentalDecorators": true,
+    // "allowJs": false,
+    // "experimentalDecorators": true,
     "resolveJsonModule": true,
     "esModuleInterop": true,
     "removeComments": false,
     "noImplicitAny": true,
     "sourceMap": false,
     "strictNullChecks": true,
-    "typeRoots": ["./node_modules/@types/"],
-    "lib": ["es2015", "es2016", "es2017", "es2018", "esnext"]
+    // "lib": ["es2015", "es2016", "es2017", "es2018", "esnext"]
   },
-  "include": ["src/**/*.ts"],
+  "include": ["src"],
   "exclude": ["node_modules", "dist", "lib_cjs", "lib_es", "examples"],
   "compileOnSave": false
-}
+}
\ No newline at end of file
diff --git a/typedoc.json b/typedoc.json
new file mode 100644
index 0000000..63f2cd9
--- /dev/null
+++ b/typedoc.json
@@ -0,0 +1,5 @@
+{
+    // Comments are supported, like tsconfig.json
+    "entryPoints": ["./src/index.ts"],
+    "out": "docs"
+}
\ No newline at end of file
diff --git a/types/index.d.ts b/types/index.d.ts
deleted file mode 100644
index 091d9f6..0000000
--- a/types/index.d.ts
+++ /dev/null
@@ -1,123 +0,0 @@
-import { meta } from "./const";
-import { AyahId, AyahNo, Page, Juz, SurahAyah, PageMeta, JuzMeta, JuzHizb, SurahMeta, Sajda, Surah } from "./types";
-export { AyahId, AyahNo, Page, Juz, SurahAyah, PageMeta, JuzMeta, SurahMeta, Sajda, Surah, };
-export { suraNames as suraNamesEn } from "./i18n/sura.en";
-export { suraNames as suraNamesRu } from "./i18n/sura.ru";
-import { SuraList } from "./surahList";
-declare const JuzList: AyahId[];
-import { HizbQuarterList } from "./hizbList";
-declare const ManzilList: AyahId[];
-import { RukuList } from "./rukuList";
-import { PageList } from "./pageList";
-declare const SajdaList: Sajda[];
-import { ayaStringSplitter } from "./ayaStringSplitter";
-export { meta, SuraList, JuzList, HizbQuarterList, ManzilList, RukuList, PageList, SajdaList, ayaStringSplitter, };
-/**
- *
- * @param {*} ayaId
- */
-export declare function findSurahByAyaid(ayaId: AyahId): SurahAyah;
-/**
- *
- * @param {*} ayaId
- */
-export declare function findJuzByAyaid(ayaId: AyahId): Juz;
-/**
- *
- * @param {*} ayaId
- */
-export declare function findJuzHizbByAyaid(ayaId: AyahId): JuzHizb;
-/**
- *
- * @param {*} surah
- * @param {*} ayah
- */
-export declare function findJuz(surah: Surah, ayah?: AyahNo, ayahMode?: boolean): Juz;
-/**
- *
- * @param {*} surah
- * @param {*} ayah
- */
-export declare function findJuzHizb(surah: Surah, ayah?: AyahNo, ayahMode?: boolean): JuzHizb;
-/**
- * Returns Positive number if aya is first ayah of juz, number is juz number
- * @param {*} surah
- * @param {*} ayah
- */
-export declare function isAyahJuzFirst(surah: Surah, ayah: AyahNo, ayahMode?: boolean): Juz;
-/**
- * Returns Positive number if aya is first ayah of juz, number is juz number
- * @param {*} surah
- * @param {*} ayah
- */
-export declare function isAyahPageFirst(surah: Surah, ayah: AyahNo, ayahMode?: boolean): Juz;
-/**
- *  Find juz containing ayah
- * @param surah
- * @param ayah
- * @param ayahMode
- * @returns
- */
-export declare function findJuzAndShift(surah: Surah, ayah: AyahNo, ayahMode?: boolean): {
-    juz: Juz;
-    leftAyahId: AyahId;
-    ayahsBetweenJuzSurah: number;
-};
-/**
- * for given ayah return [starting juz, number of ayahsFrom beginning of that juz, right juz, number of ayahs in surah
- * @param {*} suraNumber
- * @param {*} ayaNumber
- * @returns [leftjuz, ayahsFromStartOfJuz, rightJuz, ayahsinSurah,leftAyahId,rightAyahId]
- */
-export declare function findJuzMetaBySurah(surah: Surah, ayah?: AyahNo): JuzMeta;
-/**
- * Get Surah meta
- * @param surah
- */
-export declare function getSurahMeta(surah: Surah): SurahMeta;
-/**
- *
- * @param {*} suraNumber
- * @param {*} ayaNumber
- */
-export declare function findPage(surah: Surah, ayah: AyahNo, ayahMode?: boolean): Page;
-/**
- *
- * @param {*} surah
- * @param {*} ayah```
- */
-export declare function findAyaidBySurah(surah: Surah, ayah: AyahNo): AyahId;
-/**
- *
- * @param {*} surah
- */
-export declare function getAyaCountinSura(surah: Surah): number;
-/**
- *
- * @param {*} surah
- * @param {*} ayah
- */
-export declare function nextAyah(surah: Surah, ayah: AyahNo): SurahAyah;
-/**
- *
- * @param {*} surah
- * @param {*} ayah
- */
-export declare function prevAyah(surah: Surah, ayah: AyahNo): SurahAyah;
-/**
- * Get the meta, first and last ayahs of the page
- * @param {*} pageNum
- */
-export declare function pageMeta(pageNum: Page): PageMeta;
-/**
- * ALternative deprecated method
- * @param {*} pageNum
- */
-/**
- * Find range containing ayah according to the mode
- * @param surah
- * @param ayah
- * @param {*} mode can be either 'all', 'juz', 'surah', 'ayah', 'page'
- * default is all
- */
-export declare function findRangeAroundAyah(surah: Surah, ayah: AyahNo, mode: "juz" | "surah" | "ayah" | "page" | "all", ayahMode?: boolean): SurahAyah;
diff --git a/types/types.d.ts b/types/types.d.ts
deleted file mode 100644
index 35ec531..0000000
--- a/types/types.d.ts
+++ /dev/null
@@ -1,36 +0,0 @@
-export declare type Surah = number;
-export declare type AyahNo = number;
-export declare type AyahId = number;
-export declare type Page = number;
-export declare type Juz = number;
-export declare type JuzHizb = {
-    juz: Juz;
-    hizb: number;
-    id: number;
-};
-export declare type SurahAyah = [Surah, AyahNo];
-export declare type SurahAyahSegment = [Surah, AyahNo | [AyahNo, AyahNo]];
-export declare type PageMeta = {
-    pageNum: Page;
-    first: SurahAyah;
-    last: SurahAyah;
-};
-export declare type JuzMeta = {
-    leftjuz: Juz;
-    ayahsBetweenJuzSurah: number;
-    rightJuz: Juz;
-    leftAyahId: AyahId;
-    rightAyahId: AyahId;
-};
-export declare type SajdaType = "recommended" | "obligatory";
-export declare type Sajda = [AyahId, SajdaType];
-export declare type SurahMeta = [
-    startAyahId: AyahId,
-    ayahCount: number,
-    surahOrder: number,
-    rukuCount: number,
-    name: string,
-    isMeccan: boolean,
-    page: Page
-];
-export declare type SuraName = [name: string, translitName: string];
diff --git a/vitest.config.ts b/vitest.config.ts
new file mode 100644
index 0000000..4ba7bd0
--- /dev/null
+++ b/vitest.config.ts
@@ -0,0 +1,10 @@
+import { defineConfig } from "vitest/config"
+
+export default defineConfig({
+  test: {
+    globals: true,
+    coverage: {
+      include: ["src/**/*.ts"]
+    }
+  }
+})