pax_global_header00006660000000000000000000000064142445024610014514gustar00rootroot0000000000000052 comment=042546096fbd987af9d93a21ebede132954fffc0 pysword-0.2.8/000077500000000000000000000000001424450246100132325ustar00rootroot00000000000000pysword-0.2.8/.gitignore000066400000000000000000000001401424450246100152150ustar00rootroot00000000000000*.pyc __pycache__/ .idea/ tests/resources/mods.d tests/resources/modules tests/resources/*.zip pysword-0.2.8/.gitlab-ci.yml000066400000000000000000000010261424450246100156650ustar00rootroot00000000000000test: script: - apt-get update -qy - apt-get install -y python-pytest python3-pytest python-mock python3-mock python3-pep8 - python3 tests/resources/download_bibles.py - python2 -m pytest -v tests/ - python3 -m pytest -v tests/ - python3 -m pep8 --max-line-length=120 tests/ pysword/ pages: script: - apt-get update -qy - apt-get install -y python-sphinx python-sphinx-rtd-theme - cp README.rst docs/ - cd docs - make html - mv _build/html/ ../public artifacts: paths: - public only: - tags pysword-0.2.8/LICENSE000066400000000000000000000022141424450246100142360ustar00rootroot00000000000000Copyright (c) 2008-2019 Various PySword developers: Kenneth Arnold, Joshua Gross, Tomas Groth, Ryan Hiebert, Philip Ridout, Matthew Wardrop Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. pysword-0.2.8/MANIFEST.in000066400000000000000000000000201424450246100147600ustar00rootroot00000000000000include LICENSE pysword-0.2.8/README.rst000066400000000000000000000046471424450246100147340ustar00rootroot00000000000000.. image:: https://gitlab.com/tgc-dk/pysword/badges/master/build.svg :target: https://gitlab.com/tgc-dk/pysword/pipelines .. image:: https://ci.appveyor.com/api/projects/status/7n8848av82arr9xv?svg=true :target: (https://ci.appveyor.com/project/OpenLP/pysword A native Python reader of the SWORD Project Bible Modules This project is **not** an official `CrossWire `_ project. It merely provides an alternative way to read the bible modules created by CrossWires `SWORD `_ project. Features -------- - Read SWORD bibles (not commentaries etc.) - Detection of locally installed bible modules. - Supports all known SWORD module formats (ztext, ztext4, rawtext, rawtext4) - Read from zipped modules, like those available from http://www.crosswire.org/sword/modules/ModDisp.jsp?modType=Bibles - Clean text of OSIS, GBF or ThML tags. - Supports both python 2.7 and 3.3+ [*]_ (CI tested with 2.7 to 3.10) .. [*] pysword makes use of io.open (introduced in python 2.6 and the unicode literal (available in pyhton 2 and reintroduced in python 3.3 - PEP 414) License ------- PySword is and can be distributed under the `MIT license `_ Installation ------------ PySwords source code can be downloaded from PySwords `release list `_, but it is also available from `PyPI `_ for install using ``pip``:: pip install pysword It also available for `ArchLinux (AUR) `_ and `Fedora `_ and `Debian `_. Run tests --------- To run the testsuite, first run the script that download the files used for testing, and then use pytest to run the testsuite: .. code:: sh $ python tests/resources/download_bibles.py $ pytest -v tests/ The tests should run and pass using both python 2 and 3. Using PySword ------------- Read the `documentation `_ for how to use pysword and to see the API docs. Contributing ------------ If you want to contribute, you are most welcome to do so! Feel free to report issues and create merge request at https://gitlab.com/tgc-dk/pysword If you create a merge request please include a test the proves that your code actually works. pysword-0.2.8/appveyor.yml000066400000000000000000000017611424450246100156270ustar00rootroot00000000000000image: Visual Studio 2022 install: - c:\\python27\\Scripts\\pip.exe install pytest mock - c:\\python34\\python.exe -m pip install pytest - c:\\python35\\python.exe -m pip install pytest - c:\\python36\\python.exe -m pip install pytest - c:\\python37\\python.exe -m pip install pytest - c:\\python38\\python.exe -m pip install pytest - c:\\python39\\python.exe -m pip install pytest - c:\\python310\\python.exe -m pip install pytest build: off test_script: - cd c:\\projects\\pysword # Download modules used for testing - c:\\python38\\python.exe tests/resources/download_bibles.py # Run the tests - c:\\python27\\python.exe -m pytest -v tests - c:\\python34\\python.exe -m pytest -v tests - c:\\python35\\python.exe -m pytest -v tests - c:\\python36\\python.exe -m pytest -v tests - c:\\python37\\python.exe -m pytest -v tests - c:\\python38\\python.exe -m pytest -v tests - c:\\python39\\python.exe -m pytest -v tests - c:\\python310\\python.exe -m pytest -v tests pysword-0.2.8/docs/000077500000000000000000000000001424450246100141625ustar00rootroot00000000000000pysword-0.2.8/docs/Makefile000066400000000000000000000011341424450246100156210ustar00rootroot00000000000000# Minimal makefile for Sphinx documentation # # You can set these variables from the command line. SPHINXOPTS = SPHINXBUILD = sphinx-build SPHINXPROJ = pysword SOURCEDIR = . BUILDDIR = _build # Put it first so that "make" without argument is like "make help". help: @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) .PHONY: help Makefile # Catch-all target: route all unknown targets to Sphinx using the new # "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). %: Makefile @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)pysword-0.2.8/docs/conf.py000066400000000000000000000126701424450246100154670ustar00rootroot00000000000000# -*- coding: utf-8 -*- # # Configuration file for the Sphinx documentation builder. # # This file does only contain a selection of the most common options. For a # full list see the documentation: # http://www.sphinx-doc.org/en/stable/config # -- Path setup -------------------------------------------------------------- # If extensions (or modules to document with autodoc) are in another directory, # add these directories to sys.path here. If the directory is relative to the # documentation root, use os.path.abspath to make it absolute, like shown here. # import os import sys sys.path.insert(0, '../') from pysword import __version__ as pysword_version # -- Project information ----------------------------------------------------- project = 'pysword' copyright = '2019, Various Authors' author = 'Various Authors' # The short X.Y version version = pysword_version # The full version, including alpha/beta/rc tags release = pysword_version # -- General configuration --------------------------------------------------- # If your documentation needs a minimal Sphinx version, state it here. # # needs_sphinx = '1.0' # Add any Sphinx extension module names here, as strings. They can be # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom # ones. extensions = [ 'sphinx.ext.autodoc', ] # Add any paths that contain templates here, relative to this directory. templates_path = ['_templates'] # The suffix(es) of source filenames. # You can specify multiple suffix as a list of string: # # source_suffix = ['.rst', '.md'] source_suffix = '.rst' # The master toctree document. master_doc = 'index' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. # # This is also used if you do content translation via gettext catalogs. # Usually you set "language" from the command line for these cases. language = 'en' # List of patterns, relative to source directory, that match files and # directories to ignore when looking for source files. # This pattern also affects html_static_path and html_extra_path . exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store'] # The name of the Pygments (syntax highlighting) style to use. pygments_style = 'sphinx' # -- Options for HTML output ------------------------------------------------- # The theme to use for HTML and HTML Help pages. See the documentation for # a list of builtin themes. # html_theme = 'sphinx_rtd_theme' # Theme options are theme-specific and customize the look and feel of a theme # further. For a list of options available for each theme, see the # documentation. # # html_theme_options = {} # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, # so a file named "default.css" will overwrite the builtin "default.css". html_static_path = ['_static'] # Custom sidebar templates, must be a dictionary that maps document names # to template names. # # The default sidebars (for documents that don't match any pattern) are # defined by theme itself. Builtin themes are using these templates by # default: ``['localtoc.html', 'relations.html', 'sourcelink.html', # 'searchbox.html']``. # # html_sidebars = {} # -- Options for HTMLHelp output --------------------------------------------- # Output file base name for HTML help builder. htmlhelp_basename = 'pysworddoc' # -- Options for LaTeX output ------------------------------------------------ latex_elements = { # The paper size ('letterpaper' or 'a4paper'). # # 'papersize': 'letterpaper', # The font size ('10pt', '11pt' or '12pt'). # # 'pointsize': '10pt', # Additional stuff for the LaTeX preamble. # # 'preamble': '', # Latex figure (float) alignment # # 'figure_align': 'htbp', } # Grouping the document tree into LaTeX files. List of tuples # (source start file, target name, title, # author, documentclass [howto, manual, or own class]). latex_documents = [ (master_doc, 'pysword.tex', 'pysword Documentation', 'Author', 'manual'), ] # -- Options for manual page output ------------------------------------------ # One entry per manual page. List of tuples # (source start file, name, description, authors, manual section). man_pages = [ (master_doc, 'pysword', 'pysword Documentation', [author], 1) ] # -- Options for Texinfo output ---------------------------------------------- # Grouping the document tree into Texinfo files. List of tuples # (source start file, target name, title, author, # dir menu entry, description, category) texinfo_documents = [ (master_doc, 'pysword', 'pysword Documentation', author, 'pysword', 'One line description of project.', 'Miscellaneous'), ] # -- Options for Epub output ------------------------------------------------- # Bibliographic Dublin Core info. epub_title = project epub_author = author epub_publisher = author epub_copyright = copyright # The unique identifier of the text. This can be a ISBN number # or the project homepage. # # epub_identifier = '' # A unique identification for the text. # # epub_uid = '' # A list of files that should not be packed into the epub file. epub_exclude_files = ['search.html'] # -- Extension configuration ------------------------------------------------- # -- Options for todo extension ---------------------------------------------- # If true, `todo` and `todoList` produce output, else they produce nothing. todo_include_todos = False pysword-0.2.8/docs/examples.rst000066400000000000000000000035231424450246100165350ustar00rootroot00000000000000Example code ------------ Use modules from default datapath ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. code:: python from pysword.modules import SwordModules # Find available modules/bibles in standard data path. # For non-standard data path, pass it as an argument to the SwordModules constructor. modules = SwordModules() # In this case we'll assume the modules found is something like: # {'KJV': {'description': 'KingJamesVersion(1769)withStrongsNumbersandMorphology', 'encoding': 'UTF-8', ...}} found_modules = modules.parse_modules() bible = modules.get_bible_from_module(u'KJV') # Get John chapter 3 verse 16 output = bible.get(books=[u'john'], chapters=[3], verses=[16]) Load module from zip-file ~~~~~~~~~~~~~~~~~~~~~~~~~ .. code:: python from pysword.modules import SwordModules # Load module in zip # NB: the zip content is only available as long as the SwordModules object exists modules = SwordModules(u'KJV.zip') # In this case the module found is: # {'KJV': {'description': 'KingJamesVersion(1769)withStrongsNumbersandMorphology', 'encoding': 'UTF-8', ...}} found_modules = modules.parse_modules() bible = modules.get_bible_from_module(u'KJV') # Get John chapter 3 verse 16 output = bible.get(books=[u'john'], chapters=[3], verses=[16]) Manually create bible ~~~~~~~~~~~~~~~~~~~~~ .. code:: python from pysword.bible import SwordBible # Create the bible. The arguments are: # SwordBible(, , , , ) # Only the first is required, the rest have default values which should work in most cases. bible = SwordBible(u'/home/me/.sword/modules/texts/ztext/kjv/', u'ztext', u'kjv', u'utf8', u'OSIS') # Get John chapter 3 verse 16 output = bible.get(books=[u'john'], chapters=[3], verses=[16]) pysword-0.2.8/docs/index.rst000066400000000000000000000007471424450246100160330ustar00rootroot00000000000000.. pysword documentation master file, created by sphinx-quickstart on Wed Mar 21 14:25:58 2018. You can adapt this file completely to your liking, but it should at least contain the root `toctree` directive. Welcome to pysword's documentation! =================================== .. toctree:: :maxdepth: 4 :caption: Contents: README examples module-format pysword Indices and tables ================== * :ref:`genindex` * :ref:`modindex` * :ref:`search` pysword-0.2.8/docs/make.bat000066400000000000000000000014531424450246100155720ustar00rootroot00000000000000@ECHO OFF pushd %~dp0 REM Command file for Sphinx documentation if "%SPHINXBUILD%" == "" ( set SPHINXBUILD=sphinx-build ) set SOURCEDIR=. set BUILDDIR=_build set SPHINXPROJ=pysword if "%1" == "" goto help %SPHINXBUILD% >NUL 2>NUL if errorlevel 9009 ( echo. echo.The 'sphinx-build' command was not found. Make sure you have Sphinx echo.installed, then set the SPHINXBUILD environment variable to point echo.to the full path of the 'sphinx-build' executable. Alternatively you echo.may add the Sphinx directory to PATH. echo. echo.If you don't have Sphinx installed, grab it from echo.http://sphinx-doc.org/ exit /b 1 ) %SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% goto end :help %SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% :end popd pysword-0.2.8/docs/module-format.rst000066400000000000000000000042751424450246100174770ustar00rootroot00000000000000Module formats -------------- I'll use Python's struct module's format strings to describe byte formatting. See https://docs.python.org/3/library/struct.html There are current 4 formats for bible modules in SWORD. ztext format documentation ~~~~~~~~~~~~~~~~~~~~~~~~~~ Take the Old Testament (OT) for example. Three files: - ot.bzv: Maps verses to character ranges in compressed buffers. 10 bytes (' (3,) if PY3: import lzma class SwordModuleType: RAWTEXT = u'rawtext' RAWTEXT4 = u'rawtext4' ZTEXT = u'ztext' ZTEXT4 = u'ztext4' class BlockType: BOOK = u'BOOK' CHAPTER = u'CHAPTER' VERSE = u'VERSE' @staticmethod def get_file_ext_first_letter(block_type): """ Return the first letter of modules file extensions based on the block type. :param block_type: Type of block, can be BOOK, CHAPTER or VERSE. :return: The first letter of modules file extensions based on the block type. """ if block_type == BlockType.BOOK: return u'b' elif block_type == BlockType.CHAPTER: return u'c' elif block_type == BlockType.VERSE: return u'v' else: return u'' class CompressType: ZIP = u'ZIP' BZIP2 = u'BZIP2' XZ = u'XZ' LZSS = u'LZSS' class Testament(object): """ :class:`Testament` manages the file for each testament. """ def __init__(self, testament_name, **kwargs): """ Load the files specified in `kwargs` and keep a handle for the files. :param str testament_name: Name of the testament this instance represents. :param dict[str] kwargs: A dictionary of files to load. """ self.name = testament_name self._open_files = [] for key, value in kwargs.items(): file_handle = io.open(value, u'rb') setattr(self, key, file_handle) self._open_files.append(file_handle) # Set a size attribute. Should be named v2b_size, b2l_size, text_size size_key = '%s_size' % key.split(u'_')[0] setattr(self, size_key, os.fstat(file_handle.fileno()).st_size) def __del__(self): """ Ensure that the file open handles are closed when the :class:Testament object is deleted. :rtype: None """ for file_handle in self._open_files: file_handle.close() class SwordBible(object): """ :class:`SwordBible` is an abstract base class containing the core common functionality required by each SWORD module type. """ def __new__(cls, *args, **kwargs): """ Override the creation of a new instance of this class, instead create an instance of the specific subclass as specified by the module_type parameter. :param args: The positional arguments that this method was called with. :param kwargs: The keyword arguments that this method was called with. :return: The subclass required to parse the module specified by the module_type parmeter. """ if cls != SwordBible: # The user has chosen the specific Module type the wish to use. Lets assume they know best and go with it return super(SwordBible, cls).__new__(cls) module_type = None if 'module_type' in kwargs: module_type = kwargs['module_type'] elif len(args) >= 2: # The module_type parameter was not specified with a keyword and there are two or more positional arguments, # so the second positional argument must be the module_type module_type = args[1] # Validate the module type if module_type and module_type not in [SwordModuleType.RAWTEXT, SwordModuleType.RAWTEXT4, SwordModuleType.ZTEXT, SwordModuleType.ZTEXT4]: raise ValueError(u'ModDrv/module_type "%s" is not supported.' % module_type) if not module_type: module_type = SwordModuleType.ZTEXT return super(SwordBible, cls).__new__(SwordBible._MODULE_CLASSES[module_type]) def __init__(self, module_path, module_type=None, versification=u'kjv', encoding=None, source_type=u'OSIS', block_type=BlockType.BOOK, compress_type=CompressType.ZIP, cipherkey=None): """ Initialize the SwordBible object. :param module_path: Path to SWORD modules datapath. :param module_type: Types as defined by SwordModuleType, defaults to SwordModuleType.ZText :param versification: Versification used for bible, defaults to 'kjv'. :param encoding: Encoding used by the bible, should be either 'utf-8' or 'latin1'. :param source_type: Type of (possible) tags in the text, can be 'OSIS', 'GBF' or 'ThML'. :param block_type: Type of block used for this module, can be BOOK, CHAPTER or VERSE. :param compress_type: Type of compression used for this module, can be ZIP, BZIP2, XZ or LZSS. :param cipherkey: Cipher to use to decrypt text. """ self._encoding = encoding self._block_type = block_type self._compress_type = compress_type self._setup(module_path, versification, source_type, cipherkey) def _setup(self, module_path, versification, source_type, cipherkey): """ Preform setup separate from __init__ to allow easier patching when testing :raise IOError: If files cannot be opened. :raise ValueError: If unknown module_type is supplied. """ try: self._module_path = path_like_to_str(module_path) except TypeError: raise TypeError(u'`module_path` should be a str, PathLike object or an instance of pathlib.Path') self._testaments = {} self._load_testament('ot') self._load_testament('nt') if not self._testaments: raise IOError(u'Could not open OT or NT for module') # Create cleaner to remove OSIS or GBF tags if source_type: if source_type.upper() == u'THML': self._cleaner = ThMLCleaner() elif source_type.upper() == u'GBF': self._cleaner = GBFCleaner() else: self._cleaner = OSISCleaner() else: self._cleaner = OSISCleaner() self._structure = BibleStructure(versification, self._testaments) # Initialise decryption if needed if cipherkey: self._sappire_decryptor = Sapphire(cipherkey) else: self._sappire_decryptor = None def _decode_bytes(self, byte_data): """ Decode the param:`byte_data`. If instance variable :ivar:`_encoding` has been set use that exclusively. Otherwise assume utf-8. If that fails set :ivar:`_encoding` so that the rest of the document is decoded as cp1252 (a superset of latin-1/iso-8859-1) :param byte_data: The data to decode. str in Py2, bytes in Py3 :return: The decoded data. unicode in Py2, str in Py3 """ if not self._encoding: # No encoding specified try utf-8 try: unicode_data = byte_data.decode(u'utf-8', u'strict') except UnicodeDecodeError as u: # Fallback to decoding the rest of the document as cp1252 (a superset of latin-1/iso-8859-1) self._encoding = u'cp1252' if self._encoding: unicode_data = byte_data.decode(self._encoding, u'replace') return unicode_data def _load_testament(self, testament_name): """ `_load_testament` needs to be reimplemented in the specific module subclass. :param testament_name: The name of the testament to be loaded. :rtype: None """ raise NotImplemented('`_load_testament` needs to be overridden') # USER FACING ################################################################################# def get_iter(self, books=None, chapters=None, verses=None, clean=True): """ Retrieve the text for a given reference as a dict. :param books: Single book name or an array of book names :param chapters: Single chapter number or an array of chapter numbers :param verses: Single verse number or an array of verse numbers :param clean: True for cleaning text for tags, False to keep them. :return: iterator for the dict that contains the text """ indicies = self._structure.ref_to_indicies(books=books, chapters=chapters, verses=verses) for testament, idxs in indicies.items(): for idx in idxs: text = self._text_for_index(testament, idx) if text is None: continue if clean and self._cleaner and '<' in text: text = self._cleaner.clean(text) yield text def get(self, books=None, chapters=None, verses=None, clean=True, join='\n'): """ Retrieve the text for a given reference. :param books: Single book name or an array of book names :param chapters: Single chapter number or an array of chapter numbers :param verses: Single verse number or an array of verse numbers :param clean: True for cleaning text for tags, False to keep them. :param join: The char/string that should be used to mark a new verse, defaults to newline :return: the text for the reference. """ output = [] output.extend(list(self.get_iter(books=books, chapters=chapters, verses=verses, clean=clean))) return join.join(output) def get_structure(self): """ Retrieve the structure of this bible. :return: BibleStructure of this bible """ return self._structure class RawTextModule(SwordBible): """ :class:`RawTextModule` subclasses :class:`SwordBible` allowing the RawText version of SWORD bibles to be parsed. """ def __init__(self, *args, **kwargs): """ Initalise the instance, setting some specific instance variables for parsing raw text SWORD bibles. :param args: Positional arguments to pass on to the super class. :param kwargs: Keyword arguments to pass on to the super class. """ super(RawTextModule, self).__init__(*args, **kwargs) self._verse_record_format = ' self._testaments[testament].v2l_size: return u'' verse_to_loc = self._testaments[testament].v2l_name text = self._testaments[testament].text_name # Read the verse record. verse_to_loc.seek(self._verse_record_size * index) verse_start, verse_len = struct.unpack(self._verse_record_format, verse_to_loc.read(self._verse_record_size)) # Verify that the data is available if (verse_start + verse_len) > self._testaments[testament].text_size: return b'' text.seek(verse_start) ret_text = text.read(verse_len) # Decrypt if neccesary if self._sappire_decryptor: ret_text = self._sappire_decryptor.decrypt_bytes(ret_text) return self._decode_bytes(ret_text) class RawTextModule4(RawTextModule): """ Subclass the :class:`RawTextModule` to allow parsing SWORD bibles that use the Raw Text Specification. """ def __init__(self, *args, **kwargs): """ Initalise the instance, setting some specific instance variables for parsing raw text SWORD bibles. :param args: Positional arguments to pass on to the super class. :param kwargs: Keyword arguments to pass on to the super class. """ super(RawTextModule4, self).__init__(*args, **kwargs) self._verse_record_format = ' self._testaments[testament].v2b_size: return u'' verse_to_buf = self._testaments[testament].v2b_name # Read the verse record. verse_to_buf.seek(self._verse_record_size * index) buf_num, verse_start, verse_len = struct.unpack(self._verse_record_format, verse_to_buf.read(self._verse_record_size)) decompressed_text = self._decompressed_text(testament, buf_num) return self._decode_bytes(decompressed_text[verse_start:verse_start + verse_len]) def _decompressed_text(self, testament, buf_num): """ Decompress ztext at given position. :param testament: 'ot' or 'nt' :param buf_num: Buffer to read :return: The decompressed text """ # Verify that the data is available if ((buf_num + 1) * 12) > self._testaments[testament].b2l_size: return b'' buf_to_loc = self._testaments[testament].b2l_name text = self._testaments[testament].text_name # Determine where the compressed data starts and ends. buf_to_loc.seek(buf_num * 12) offset, size, uc_size = struct.unpack(' self._testaments[testament].text_size: return b'' # Get the compressed data. text.seek(offset) compressed_data = text.read(size) # Decrypt if neccesary if self._sappire_decryptor: compressed_data = self._sappire_decryptor.decrypt_bytes(compressed_data) # Decompress decompressed_data = self._decompress(compressed_data) return decompressed_data def _decompress(self, compressed_data): """ Decompress data using algorithm the modules uses :param data: The to decompress :return: The decompressed text """ decompressed_data = b'' if self._compress_type == CompressType.ZIP: try: decompressed_data = zlib.decompress(compressed_data) except zlib.error: decompressed_data = b'' elif self._compress_type == CompressType.BZIP2: try: decompressed_data = bz2.decompress(compressed_data) except Exception: decompressed_data = b'' elif self._compress_type == CompressType.XZ: if PY3: try: decompressed_data = lzma.decompress(compressed_data) except Exception: decompressed_data = b'' else: raise NotImplementedError(u'XZ compressed modules is not supported under python2') elif self._compress_type == CompressType.LZSS: raise NotImplementedError(u'LZSS compressed modules is not yet supported') return decompressed_data class ZTextModule4(ZTextModule): def __init__(self, *args, **kwargs): """ Initalise the instance, setting some specific instance variables for parsing raw text SWORD bibles. :param args: Positional arguments to pass on to the super class. :param kwargs: Keyword arguments to pass on to the super class. """ super(ZTextModule4, self).__init__(*args, **kwargs) self._verse_record_format = ' (3,) class BookStructure(object): def __init__(self, name, osis_name, preferred_abbreviation, chapter_lengths): """ :param name: Full English name of book :param osis_name: Abbreviation of book :param preferred_abbreviation: Preferred abbreviation of book :param chapter_lengths: List containing the number of verses for each chapter. """ self.name = name self.osis_name = osis_name self.preferred_abbreviation = preferred_abbreviation self.chapter_lengths = chapter_lengths self.num_chapters = len(chapter_lengths) def __repr__(self): return u'Book(%s)' % self.name def name_matches(self, name): """ Check if a name matches the name of this book. :param name: The name to match :return: True if matching else False """ name = name.lower() return name in [self.name.lower(), self.osis_name.lower(), self.preferred_abbreviation.lower()] def chapter_offset(self, chapter_index): """ Get offset based on chapter :param chapter_index: The chapter index to calculate from. :return: The calculated offset. """ # Add chapter lengths to this point; plus 1 for every chapter title; plus 1 for book title return sum(self.chapter_lengths[:chapter_index]) + (chapter_index + 1) + 1 def get_indicies(self, chapters=None, verses=None, offset=0): """ Get indicies for given chapter(s) and verse(s). :param chapters: Single chapter number or an array of chapter numbers :param verses: Single verse number or an array of verse numbers :param offset: The offset to used for this book when reading from file. :return: An array of indicies. """ if chapters is None: chapters = list(range(1, self.num_chapters+1)) elif isinstance(chapters, int): chapters = [chapters] if len(chapters) != 1: verses = None elif isinstance(verses, int): verses = [verses] refs = [] for chapter in chapters: if chapter > self.num_chapters: raise ValueError(u'Book "%s" only have %d chapters.' % (self.name, self.num_chapters)) if verses is None: tmp_verses = list(range(1, self.chapter_lengths[chapter-1]+1)) else: tmp_verses = verses if tmp_verses[-1] > self.chapter_lengths[chapter-1]: raise ValueError(u'Book "%s", chapter %d, only have %d verses.' % (self.name, chapter, self.chapter_lengths[chapter-1])) refs.extend([offset + self.chapter_offset(chapter-1) + verse-1 for verse in tmp_verses]) return refs @property def size(self): """ Size of book. """ # Total verses + chapter heading for each chapter + 1 for book title return sum(self.chapter_lengths) + len(self.chapter_lengths) + 1 class BibleStructure(object): def __init__(self, versification, testaments=[u'ot', u'nt']): """ Initialize structure based on the versification. :param versification: The versification to use. :param testaments: List of testaments in this bible, must be 'ot' and/or 'nt' """ self._book_offsets = None # offsets within sections self._books = {} # Find the canon used. The canons are original defined in SWORD header files. if versification not in canons.keys(): raise ValueError('The versification "%s" is unknown!' % versification) else: canon = canons[versification] # Based on the canon create the BookStructure objects needed for testament in testaments: self._books[testament] = [] for book in canon[testament]: self._books[testament].append(BookStructure(*book)) def _update_book_offsets(self): """ Compute index offsets and add other data """ # FIXME: this is still a little hairy. self._book_offsets = {} for testament, books in self._books.items(): idx = 2 # start after the testament heading for book in books: self._book_offsets[book.name] = idx offset = 1 # start after the book heading idx += book.size def _book_offset(self, book_name): """ Find offset for the given book :param book_name: Name of book to find offset for :return: The offset """ if self._book_offsets is None: self._update_book_offsets() return self._book_offsets[book_name] def find_book(self, name): """ Find book :param name: The book to find :return: A tuple of the testament the book is in ('ot' or 'nt') and a BookStructure object. :raise ValueError: If the book is not in this BibleStructure. """ name = name.lower() for testament, books in self._books.items(): for num, book in enumerate(books): if book.name_matches(name): return testament, book raise ValueError(u'Book name "%s" does not exist in BibleStructure.' % name) def ref_to_indicies(self, books=None, chapters=None, verses=None): """ Get references to indicies for given book(s), chapter(s) and verse(s). :param books: Single book name or an array of book names :param chapters: Single chapter number or an array of chapter numbers :param verses: Single verse number or an array of verse numbers :return: """ # TODO: CHECK NOT OVERSPECIFIED if books is None: # Return all books books = [] for section in self._books: books.extend([b.name for b in self._books[section]]) # It is needed to check for both str and unicode for python2 support elif isinstance(books, str) or not PY3 and isinstance(books, unicode): books = [books] refs = {} for book in books: testament, book = self.find_book(book) if testament not in refs: refs[testament] = [] refs[testament].extend(book.get_indicies(chapters=chapters, verses=verses, offset=self._book_offset(book.name))) # Deal with the one book presented. return refs def get_books(self): """ Return the bookstructure for this bible. :return: book structure """ return self._books pysword-0.2.8/pysword/canon-parser.py000066400000000000000000000144631424450246100177130ustar00rootroot00000000000000# -*- coding: utf-8 -*- ############################################################################### # PySword - A native Python reader of the SWORD Project Bible Modules # # --------------------------------------------------------------------------- # # Copyright (c) 2008-2019 Various PySword developers: # # Kenneth Arnold, Joshua Gross, Tomas Groth, Ryan Hiebert, Philip Ridout, # # Matthew Wardrop # # --------------------------------------------------------------------------- # # Permission is hereby granted, free of charge, to any person obtaining a # # copy of this software and associated documentation files (the "Software"), # # to deal in the Software without restriction, including without limitation # # the rights to use, copy, modify, merge, publish, distribute, sublicense, # # and/or sell copies of the Software, and to permit persons to whom the # # Software is furnished to do so, subject to the following conditions: # # # # The above copyright notice and this permission notice shall be included # # in all copies or substantial portions of the Software. # # # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE # # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER # # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING # # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER # # DEALINGS IN THE SOFTWARE. # ############################################################################### # Util to convert SWORD canon header files into pysword format. # Place the script in the same folder as the canon header files and run like this: # python3 canon-parser.py > canons.py def parse_canon_header(canon_name, canon_filename, otbook_struct_filename, ntbook_struct_filename): # Open file canon_header_file = open(canon_filename, 'rt') fulltext = canon_header_file.read() canon_header_file.close() if otbook_struct_filename: otbook_struct_file = open(otbook_struct_filename, 'rt') otbook_struct_fulltext = otbook_struct_file.read() otbook_struct_file.close() else: otbook_struct_fulltext = fulltext if ntbook_struct_filename: ntbook_struct_file = open(ntbook_struct_filename, 'rt') ntbook_struct_fulltext = ntbook_struct_file.read() ntbook_struct_file.close() else: ntbook_struct_fulltext = fulltext # Detect if OT books are listed otbooks_pos = otbook_struct_fulltext.find('struct sbook otbooks') if otbooks_pos > 0: # Find the declaration of the OT struct, first instance of "struct sbook otbooks[] = {", # but we just search for the last part ot_struct_start = otbook_struct_fulltext.find('= {', otbooks_pos) + 4 # Find end of OT struct ot_struct_end = otbook_struct_fulltext.find('};', ot_struct_start) # Extract OT struct ot_struct = otbook_struct_fulltext[ot_struct_start:ot_struct_end] else: ot_struct = '' # Detect if NT books are listed ntbooks_pos = ntbook_struct_fulltext.find('struct sbook ntbooks') if ntbooks_pos > 0: # Find start NT struct nt_struct_start = ntbook_struct_fulltext.find('= {', ntbooks_pos) + 4 # Find end of NT struct nt_struct_end = ntbook_struct_fulltext.find('};', nt_struct_start) # Extract NT struct nt_struct = ntbook_struct_fulltext[nt_struct_start:nt_struct_end] else: nt_struct = '' verse_struct_loc = fulltext.find('int vm') # Find start verse number struct verse_struct_start = fulltext.find('= {', verse_struct_loc) + 4 # Find end verse number struct verse_struct_end = fulltext.find('};', verse_struct_start) # Extract verse struct verse_struct = fulltext[verse_struct_start:verse_struct_end] # Convert/evaluate the ot and nt structs into python ot = eval('[' + ot_struct.replace('{', '[').replace('}', ']') + ']') nt = eval('[' + nt_struct.replace('{', '[').replace('}', ']') + ']') # Convert/evaluate the verse struct into python verses_per_chapter = eval('[' + verse_struct.replace('//', '#') + ']') # Print the structure in the format pysword uses idx = 0 print('u%r : {' % canon_name) for testament, contents in (('ot', ot), ('nt', nt)): print('u%r: [' % testament) for num, (name, osis, pref_abbr, num_chapters) in enumerate(contents): new_idx = idx + num_chapters if name: print('(u%r, u%r, u%r, %r),' % (name, osis, pref_abbr, verses_per_chapter[idx:new_idx])) idx = new_idx print('],') print('},') if __name__ == '__main__': print(u'canons = {') # The canons and where to get ot, nt booklists. None means the file itself has it. canons = [ (u'kjv', u'canon.h', None, None), (u'calvin', u'canon_calvin.h', u'canon.h', u'canon.h'), (u'catholic', u'canon_catholic.h', None, u'canon.h'), (u'catholic2', u'canon_catholic2.h', None, u'canon.h'), (u'darbyfr', u'canon_darbyfr.h', u'canon.h', u'canon.h'), (u'german', u'canon_german.h', None, u'canon.h'), (u'kjva', u'canon_kjva.h', None, u'canon.h'), (u'leningrad', u'canon_leningrad.h', None, None), (u'luther', u'canon_luther.h', None, None), (u'lxx', u'canon_lxx.h', None, u'canon.h'), (u'mt', u'canon_mt.h', None, None), (u'nrsv', u'canon_nrsv.h', u'canon.h', u'canon.h'), (u'nrsva', u'canon_nrsva.h', None, u'canon.h'), (u'orthodox', u'canon_orthodox.h', None, u'canon.h'), (u'segond', u'canon_segond.h', u'canon.h', u'canon.h'), (u'synodal', u'canon_synodal.h', None, None), (u'synodalprot', u'canon_synodalprot.h', None, u'canon_synodal.h'), (u'vulg', u'canon_vulg.h', None, None) ] for canon in canons: parse_canon_header(*canon) print(u'}') pysword-0.2.8/pysword/canons.py000066400000000000000000005065601424450246100166100ustar00rootroot00000000000000# -*- coding: utf-8 -*- ############################################################################### # PySword - A native Python reader of the SWORD Project Bible Modules # # --------------------------------------------------------------------------- # # Copyright (c) 2008-2019 Various PySword developers: # # Kenneth Arnold, Joshua Gross, Tomas Groth, Ryan Hiebert, Philip Ridout, # # Matthew Wardrop # # --------------------------------------------------------------------------- # # Permission is hereby granted, free of charge, to any person obtaining a # # copy of this software and associated documentation files (the "Software"), # # to deal in the Software without restriction, including without limitation # # the rights to use, copy, modify, merge, publish, distribute, sublicense, # # and/or sell copies of the Software, and to permit persons to whom the # # Software is furnished to do so, subject to the following conditions: # # # # The above copyright notice and this permission notice shall be included # # in all copies or substantial portions of the Software. # # # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE # # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER # # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING # # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER # # DEALINGS IN THE SOFTWARE. # ############################################################################### # List of canons supported by SWORD. # Auto-generated by canon-parser.py, formatted by YAPF canons = { u'kjv': { u'ot': [ (u'Genesis', u'Gen', u'Gen', [ 31, 25, 24, 26, 32, 22, 24, 22, 29, 32, 32, 20, 18, 24, 21, 16, 27, 33, 38, 18, 34, 24, 20, 67, 34, 35, 46, 22, 35, 43, 55, 32, 20, 31, 29, 43, 36, 30, 23, 23, 57, 38, 34, 34, 28, 34, 31, 22, 33, 26 ]), (u'Exodus', u'Exod', u'Exod', [ 22, 25, 22, 31, 23, 30, 25, 32, 35, 29, 10, 51, 22, 31, 27, 36, 16, 27, 25, 26, 36, 31, 33, 18, 40, 37, 21, 43, 46, 38, 18, 35, 23, 35, 35, 38, 29, 31, 43, 38 ]), (u'Leviticus', u'Lev', u'Lev', [ 17, 16, 17, 35, 19, 30, 38, 36, 24, 20, 47, 8, 59, 57, 33, 34, 16, 30, 37, 27, 24, 33, 44, 23, 55, 46, 34 ]), (u'Numbers', u'Num', u'Num', [ 54, 34, 51, 49, 31, 27, 89, 26, 23, 36, 35, 16, 33, 45, 41, 50, 13, 32, 22, 29, 35, 41, 30, 25, 18, 65, 23, 31, 40, 16, 54, 42, 56, 29, 34, 13 ]), (u'Deuteronomy', u'Deut', u'Deut', [ 46, 37, 29, 49, 33, 25, 26, 20, 29, 22, 32, 32, 18, 29, 23, 22, 20, 22, 21, 20, 23, 30, 25, 22, 19, 19, 26, 68, 29, 20, 30, 52, 29, 12 ]), (u'Joshua', u'Josh', u'Josh', [18, 24, 17, 24, 15, 27, 26, 35, 27, 43, 23, 24, 33, 15, 63, 10, 18, 28, 51, 9, 45, 34, 16, 33]), (u'Judges', u'Judg', u'Judg', [36, 23, 31, 24, 31, 40, 25, 35, 57, 18, 40, 15, 25, 20, 20, 31, 13, 31, 30, 48, 25]), (u'Ruth', u'Ruth', u'Ruth', [22, 23, 18, 22]), (u'I Samuel', u'1Sam', u'1Sam', [ 28, 36, 21, 22, 12, 21, 17, 22, 27, 27, 15, 25, 23, 52, 35, 23, 58, 30, 24, 42, 15, 23, 29, 22, 44, 25, 12, 25, 11, 31, 13 ]), (u'II Samuel', u'2Sam', u'2Sam', [27, 32, 39, 12, 25, 23, 29, 18, 13, 19, 27, 31, 39, 33, 37, 23, 29, 33, 43, 26, 22, 51, 39, 25]), (u'I Kings', u'1Kgs', u'1Kgs', [53, 46, 28, 34, 18, 38, 51, 66, 28, 29, 43, 33, 34, 31, 34, 34, 24, 46, 21, 43, 29, 53]), (u'II Kings', u'2Kgs', u'2Kgs', [18, 25, 27, 44, 27, 33, 20, 29, 37, 36, 21, 21, 25, 29, 38, 20, 41, 37, 37, 21, 26, 20, 37, 20, 30]), (u'I Chronicles', u'1Chr', u'1Chr', [ 54, 55, 24, 43, 26, 81, 40, 40, 44, 14, 47, 40, 14, 17, 29, 43, 27, 17, 19, 8, 30, 19, 32, 31, 31, 32, 34, 21, 30 ]), (u'II Chronicles', u'2Chr', u'2Chr', [ 17, 18, 17, 22, 14, 42, 22, 18, 31, 19, 23, 16, 22, 15, 19, 14, 19, 34, 11, 37, 20, 12, 21, 27, 28, 23, 9, 27, 36, 27, 21, 33, 25, 33, 27, 23 ]), (u'Ezra', u'Ezra', u'Ezra', [11, 70, 13, 24, 17, 22, 28, 36, 15, 44]), (u'Nehemiah', u'Neh', u'Neh', [11, 20, 32, 23, 19, 19, 73, 18, 38, 39, 36, 47, 31]), (u'Esther', u'Esth', u'Esth', [22, 23, 15, 17, 14, 14, 10, 17, 32, 3]), (u'Job', u'Job', u'Job', [ 22, 13, 26, 21, 27, 30, 21, 22, 35, 22, 20, 25, 28, 22, 35, 22, 16, 21, 29, 29, 34, 30, 17, 25, 6, 14, 23, 28, 25, 31, 40, 22, 33, 37, 16, 33, 24, 41, 30, 24, 34, 17 ]), (u'Psalms', u'Ps', u'Ps', [ 6, 12, 8, 8, 12, 10, 17, 9, 20, 18, 7, 8, 6, 7, 5, 11, 15, 50, 14, 9, 13, 31, 6, 10, 22, 12, 14, 9, 11, 12, 24, 11, 22, 22, 28, 12, 40, 22, 13, 17, 13, 11, 5, 26, 17, 11, 9, 14, 20, 23, 19, 9, 6, 7, 23, 13, 11, 11, 17, 12, 8, 12, 11, 10, 13, 20, 7, 35, 36, 5, 24, 20, 28, 23, 10, 12, 20, 72, 13, 19, 16, 8, 18, 12, 13, 17, 7, 18, 52, 17, 16, 15, 5, 23, 11, 13, 12, 9, 9, 5, 8, 28, 22, 35, 45, 48, 43, 13, 31, 7, 10, 10, 9, 8, 18, 19, 2, 29, 176, 7, 8, 9, 4, 8, 5, 6, 5, 6, 8, 8, 3, 18, 3, 3, 21, 26, 9, 8, 24, 13, 10, 7, 12, 15, 21, 10, 20, 14, 9, 6 ]), (u'Proverbs', u'Prov', u'Prov', [ 33, 22, 35, 27, 23, 35, 27, 36, 18, 32, 31, 28, 25, 35, 33, 33, 28, 24, 29, 30, 31, 29, 35, 34, 28, 28, 27, 28, 27, 33, 31 ]), (u'Ecclesiastes', u'Eccl', u'Eccl', [18, 26, 22, 16, 20, 12, 29, 17, 18, 20, 10, 14]), (u'Song of Solomon', u'Song', u'Song', [17, 17, 11, 16, 16, 13, 13, 14]), (u'Isaiah', u'Isa', u'Isa', [ 31, 22, 26, 6, 30, 13, 25, 22, 21, 34, 16, 6, 22, 32, 9, 14, 14, 7, 25, 6, 17, 25, 18, 23, 12, 21, 13, 29, 24, 33, 9, 20, 24, 17, 10, 22, 38, 22, 8, 31, 29, 25, 28, 28, 25, 13, 15, 22, 26, 11, 23, 15, 12, 17, 13, 12, 21, 14, 21, 22, 11, 12, 19, 12, 25, 24 ]), (u'Jeremiah', u'Jer', u'Jer', [ 19, 37, 25, 31, 31, 30, 34, 22, 26, 25, 23, 17, 27, 22, 21, 21, 27, 23, 15, 18, 14, 30, 40, 10, 38, 24, 22, 17, 32, 24, 40, 44, 26, 22, 19, 32, 21, 28, 18, 16, 18, 22, 13, 30, 5, 28, 7, 47, 39, 46, 64, 34 ]), (u'Lamentations', u'Lam', u'Lam', [22, 22, 66, 22, 22]), (u'Ezekiel', u'Ezek', u'Ezek', [ 28, 10, 27, 17, 17, 14, 27, 18, 11, 22, 25, 28, 23, 23, 8, 63, 24, 32, 14, 49, 32, 31, 49, 27, 17, 21, 36, 26, 21, 26, 18, 32, 33, 31, 15, 38, 28, 23, 29, 49, 26, 20, 27, 31, 25, 24, 23, 35 ]), (u'Daniel', u'Dan', u'Dan', [21, 49, 30, 37, 31, 28, 28, 27, 27, 21, 45, 13]), (u'Hosea', u'Hos', u'Hos', [11, 23, 5, 19, 15, 11, 16, 14, 17, 15, 12, 14, 16, 9]), (u'Joel', u'Joel', u'Joel', [20, 32, 21]), (u'Amos', u'Amos', u'Amos', [15, 16, 15, 13, 27, 14, 17, 14, 15]), (u'Obadiah', u'Obad', u'Obad', [21]), (u'Jonah', u'Jonah', u'Jonah', [17, 10, 10, 11]), (u'Micah', u'Mic', u'Mic', [16, 13, 12, 13, 15, 16, 20]), (u'Nahum', u'Nah', u'Nah', [15, 13, 19]), (u'Habakkuk', u'Hab', u'Hab', [17, 20, 19]), (u'Zephaniah', u'Zeph', u'Zeph', [18, 15, 20]), (u'Haggai', u'Hag', u'Hag', [15, 23]), (u'Zechariah', u'Zech', u'Zech', [21, 13, 10, 14, 11, 15, 14, 23, 17, 12, 17, 14, 9, 21]), (u'Malachi', u'Mal', u'Mal', [14, 17, 18, 6]), ], u'nt': [ (u'Matthew', u'Matt', u'Matt', [ 25, 23, 17, 25, 48, 34, 29, 34, 38, 42, 30, 50, 58, 36, 39, 28, 27, 35, 30, 34, 46, 46, 39, 51, 46, 75, 66, 20 ]), (u'Mark', u'Mark', u'Mark', [45, 28, 35, 41, 43, 56, 37, 38, 50, 52, 33, 44, 37, 72, 47, 20]), (u'Luke', u'Luke', u'Luke', [80, 52, 38, 44, 39, 49, 50, 56, 62, 42, 54, 59, 35, 35, 32, 31, 37, 43, 48, 47, 38, 71, 56, 53]), (u'John', u'John', u'John', [51, 25, 36, 54, 47, 71, 53, 59, 41, 42, 57, 50, 38, 31, 27, 33, 26, 40, 42, 31, 25]), (u'Acts', u'Acts', u'Acts', [ 26, 47, 26, 37, 42, 15, 60, 40, 43, 48, 30, 25, 52, 28, 41, 40, 34, 28, 41, 38, 40, 30, 35, 27, 27, 32, 44, 31 ]), (u'Romans', u'Rom', u'Rom', [32, 29, 31, 25, 21, 23, 25, 39, 33, 21, 36, 21, 14, 23, 33, 27]), (u'I Corinthians', u'1Cor', u'1Cor', [31, 16, 23, 21, 13, 20, 40, 13, 27, 33, 34, 31, 13, 40, 58, 24]), (u'II Corinthians', u'2Cor', u'2Cor', [24, 17, 18, 18, 21, 18, 16, 24, 15, 18, 33, 21, 14]), (u'Galatians', u'Gal', u'Gal', [24, 21, 29, 31, 26, 18]), (u'Ephesians', u'Eph', u'Eph', [23, 22, 21, 32, 33, 24]), (u'Philippians', u'Phil', u'Phil', [30, 30, 21, 23]), (u'Colossians', u'Col', u'Col', [29, 23, 25, 18]), (u'I Thessalonians', u'1Thess', u'1Thess', [10, 20, 13, 18, 28]), (u'II Thessalonians', u'2Thess', u'2Thess', [12, 17, 18]), (u'I Timothy', u'1Tim', u'1Tim', [20, 15, 16, 16, 25, 21]), (u'II Timothy', u'2Tim', u'2Tim', [18, 26, 17, 22]), (u'Titus', u'Titus', u'Titus', [16, 15, 15]), (u'Philemon', u'Phlm', u'Phlm', [25]), (u'Hebrews', u'Heb', u'Heb', [14, 18, 19, 16, 14, 20, 28, 13, 28, 39, 40, 29, 25]), (u'James', u'Jas', u'Jas', [27, 26, 18, 17, 20]), (u'I Peter', u'1Pet', u'1Pet', [25, 25, 22, 19, 14]), (u'II Peter', u'2Pet', u'2Pet', [21, 22, 18]), (u'I John', u'1John', u'1John', [10, 29, 24, 21, 21]), (u'II John', u'2John', u'2John', [13]), (u'III John', u'3John', u'3John', [14]), (u'Jude', u'Jude', u'Jude', [25]), (u'Revelation of John', u'Rev', u'Rev', [20, 29, 22, 11, 14, 17, 17, 13, 21, 11, 19, 17, 18, 20, 8, 21, 18, 24, 21, 15, 27, 21]), ], }, u'calvin': { u'ot': [ (u'Genesis', u'Gen', u'Gen', [ 31, 25, 24, 26, 32, 22, 24, 22, 29, 32, 32, 20, 18, 24, 21, 16, 27, 33, 38, 18, 34, 24, 20, 67, 34, 35, 46, 22, 35, 43, 55, 32, 20, 31, 29, 43, 36, 30, 23, 23, 57, 38, 34, 34, 28, 34, 31, 22, 33, 26 ]), (u'Exodus', u'Exod', u'Exod', [ 22, 25, 22, 31, 23, 30, 25, 32, 35, 29, 10, 51, 22, 31, 27, 36, 16, 27, 25, 26, 36, 31, 33, 18, 40, 37, 21, 43, 46, 38, 18, 35, 23, 35, 35, 38, 29, 31, 43, 38 ]), (u'Leviticus', u'Lev', u'Lev', [ 17, 16, 17, 35, 19, 30, 38, 36, 24, 20, 47, 8, 59, 57, 33, 34, 16, 30, 37, 27, 24, 33, 44, 23, 55, 46, 34 ]), (u'Numbers', u'Num', u'Num', [ 54, 34, 51, 49, 31, 27, 89, 26, 23, 36, 35, 15, 34, 45, 41, 50, 13, 32, 22, 29, 35, 41, 30, 25, 18, 65, 23, 31, 39, 17, 54, 42, 56, 29, 34, 13 ]), (u'Deuteronomy', u'Deut', u'Deut', [ 46, 37, 29, 49, 33, 25, 26, 20, 29, 22, 32, 32, 18, 29, 23, 22, 20, 22, 21, 20, 23, 30, 25, 22, 19, 19, 26, 68, 29, 20, 30, 52, 29, 12 ]), (u'Joshua', u'Josh', u'Josh', [18, 24, 17, 24, 15, 27, 26, 35, 27, 43, 23, 24, 33, 15, 63, 10, 18, 28, 51, 9, 45, 34, 16, 33]), (u'Judges', u'Judg', u'Judg', [36, 23, 31, 24, 31, 40, 25, 35, 57, 18, 40, 15, 25, 20, 20, 31, 13, 31, 30, 48, 25]), (u'Ruth', u'Ruth', u'Ruth', [22, 23, 18, 22]), (u'I Samuel', u'1Sam', u'1Sam', [ 28, 36, 21, 22, 12, 21, 17, 22, 27, 27, 15, 25, 23, 52, 35, 23, 58, 30, 24, 43, 15, 23, 28, 23, 44, 25, 12, 25, 11, 31, 13 ]), (u'II Samuel', u'2Sam', u'2Sam', [27, 32, 39, 12, 25, 23, 29, 18, 13, 19, 27, 31, 39, 33, 37, 23, 29, 33, 43, 26, 22, 51, 39, 25]), (u'I Kings', u'1Kgs', u'1Kgs', [53, 46, 28, 34, 18, 38, 51, 66, 28, 29, 43, 33, 34, 31, 34, 34, 24, 46, 21, 43, 29, 54]), (u'II Kings', u'2Kgs', u'2Kgs', [18, 25, 27, 44, 27, 33, 20, 29, 37, 36, 21, 21, 25, 29, 38, 20, 41, 37, 37, 21, 26, 20, 37, 20, 30]), (u'I Chronicles', u'1Chr', u'1Chr', [ 54, 55, 24, 43, 26, 81, 40, 40, 44, 14, 47, 40, 14, 17, 29, 43, 27, 17, 19, 8, 30, 19, 32, 31, 31, 32, 34, 21, 30 ]), (u'II Chronicles', u'2Chr', u'2Chr', [ 17, 18, 17, 22, 14, 42, 22, 18, 31, 19, 23, 16, 22, 15, 19, 14, 19, 34, 11, 37, 20, 12, 21, 27, 28, 23, 9, 27, 36, 27, 21, 33, 25, 33, 27, 23 ]), (u'Ezra', u'Ezra', u'Ezra', [11, 70, 13, 24, 17, 22, 28, 36, 15, 44]), (u'Nehemiah', u'Neh', u'Neh', [11, 20, 32, 23, 19, 19, 73, 18, 38, 39, 36, 47, 31]), (u'Esther', u'Esth', u'Esth', [22, 23, 15, 17, 14, 14, 10, 17, 32, 3]), (u'Job', u'Job', u'Job', [ 22, 13, 26, 21, 27, 30, 21, 22, 35, 22, 20, 25, 28, 22, 35, 22, 16, 21, 29, 29, 34, 30, 17, 25, 6, 14, 23, 28, 25, 31, 40, 22, 33, 37, 16, 33, 24, 38, 38, 28, 25, 17 ]), (u'Psalms', u'Ps', u'Ps', [ 6, 12, 9, 9, 13, 11, 18, 10, 21, 18, 7, 9, 6, 7, 5, 11, 15, 51, 15, 10, 14, 32, 6, 10, 22, 12, 14, 9, 11, 13, 25, 11, 22, 23, 28, 13, 40, 23, 14, 18, 14, 12, 5, 27, 18, 12, 10, 15, 21, 23, 21, 11, 7, 9, 24, 14, 12, 12, 18, 14, 9, 13, 12, 11, 14, 20, 8, 36, 37, 6, 24, 20, 28, 23, 11, 13, 21, 72, 13, 20, 17, 8, 19, 13, 14, 17, 7, 19, 53, 17, 16, 16, 5, 23, 11, 13, 12, 9, 9, 5, 8, 29, 22, 35, 45, 48, 43, 14, 31, 7, 10, 10, 9, 8, 18, 19, 2, 29, 176, 7, 8, 9, 4, 8, 5, 6, 5, 6, 8, 8, 3, 18, 3, 3, 21, 26, 9, 8, 24, 14, 10, 8, 12, 15, 21, 10, 20, 14, 9, 6 ]), (u'Proverbs', u'Prov', u'Prov', [ 33, 22, 35, 27, 23, 35, 27, 36, 18, 32, 31, 28, 25, 35, 33, 33, 28, 24, 29, 30, 31, 29, 35, 34, 28, 28, 27, 28, 27, 33, 31 ]), (u'Ecclesiastes', u'Eccl', u'Eccl', [18, 26, 22, 16, 20, 12, 29, 17, 18, 20, 8, 16]), (u'Song of Solomon', u'Song', u'Song', [17, 17, 11, 16, 16, 13, 13, 14]), (u'Isaiah', u'Isa', u'Isa', [ 31, 22, 26, 6, 30, 13, 25, 23, 20, 34, 16, 6, 22, 32, 9, 14, 14, 7, 25, 6, 17, 25, 18, 23, 12, 21, 13, 29, 24, 33, 9, 20, 24, 17, 10, 22, 38, 22, 8, 31, 29, 25, 28, 28, 25, 13, 15, 22, 26, 11, 23, 15, 12, 17, 13, 12, 21, 14, 21, 22, 11, 12, 19, 12, 25, 24 ]), (u'Jeremiah', u'Jer', u'Jer', [ 19, 37, 25, 31, 31, 30, 34, 22, 26, 25, 23, 17, 27, 22, 21, 21, 27, 23, 15, 18, 14, 30, 40, 10, 38, 24, 22, 17, 32, 24, 40, 44, 26, 22, 19, 32, 21, 28, 18, 16, 18, 22, 13, 30, 5, 28, 7, 47, 39, 46, 64, 34 ]), (u'Lamentations', u'Lam', u'Lam', [22, 22, 66, 22, 22]), (u'Ezekiel', u'Ezek', u'Ezek', [ 28, 10, 27, 17, 17, 14, 27, 18, 11, 22, 25, 28, 23, 23, 8, 63, 24, 32, 14, 44, 37, 31, 49, 27, 17, 21, 36, 26, 21, 26, 18, 32, 33, 31, 15, 38, 28, 23, 29, 49, 26, 20, 27, 31, 25, 24, 23, 35 ]), (u'Daniel', u'Dan', u'Dan', [21, 49, 30, 37, 31, 28, 28, 27, 27, 21, 45, 13]), (u'Hosea', u'Hos', u'Hos', [11, 23, 5, 19, 15, 11, 16, 14, 17, 15, 11, 15, 16, 9]), (u'Joel', u'Joel', u'Joel', [20, 32, 21]), (u'Amos', u'Amos', u'Amos', [15, 16, 15, 13, 27, 14, 17, 14, 15]), (u'Obadiah', u'Obad', u'Obad', [21]), (u'Jonah', u'Jonah', u'Jonah', [16, 11, 10, 11]), (u'Micah', u'Mic', u'Mic', [16, 13, 12, 13, 15, 16, 20]), (u'Nahum', u'Nah', u'Nah', [15, 13, 19]), (u'Habakkuk', u'Hab', u'Hab', [17, 20, 19]), (u'Zephaniah', u'Zeph', u'Zeph', [18, 15, 20]), (u'Haggai', u'Hag', u'Hag', [15, 23]), (u'Zechariah', u'Zech', u'Zech', [21, 13, 10, 14, 11, 15, 14, 23, 17, 12, 17, 14, 9, 21]), (u'Malachi', u'Mal', u'Mal', [14, 17, 18, 6]), ], u'nt': [ (u'Matthew', u'Matt', u'Matt', [ 25, 23, 17, 25, 48, 34, 29, 34, 38, 42, 30, 50, 58, 36, 39, 28, 27, 35, 30, 34, 46, 46, 39, 51, 46, 75, 66, 20 ]), (u'Mark', u'Mark', u'Mark', [45, 28, 35, 41, 43, 56, 37, 38, 51, 53, 33, 44, 37, 72, 47, 20]), (u'Luke', u'Luke', u'Luke', [80, 52, 38, 44, 39, 49, 50, 56, 62, 42, 54, 59, 35, 35, 32, 31, 37, 43, 48, 47, 38, 71, 56, 53]), (u'John', u'John', u'John', [51, 25, 36, 54, 47, 71, 53, 59, 41, 42, 57, 50, 38, 31, 27, 33, 26, 40, 42, 31, 25]), (u'Acts', u'Acts', u'Acts', [ 26, 47, 26, 37, 42, 15, 60, 40, 43, 48, 30, 25, 52, 28, 41, 40, 34, 28, 40, 38, 40, 30, 35, 28, 27, 32, 44, 31 ]), (u'Romans', u'Rom', u'Rom', [32, 29, 30, 25, 21, 23, 25, 38, 33, 21, 36, 21, 14, 23, 33, 27]), (u'I Corinthians', u'1Cor', u'1Cor', [31, 16, 22, 21, 13, 20, 40, 13, 27, 33, 34, 31, 13, 40, 58, 24]), (u'II Corinthians', u'2Cor', u'2Cor', [24, 17, 18, 18, 21, 18, 16, 24, 15, 18, 33, 21, 13]), (u'Galatians', u'Gal', u'Gal', [24, 21, 29, 31, 26, 18]), (u'Ephesians', u'Eph', u'Eph', [23, 22, 21, 32, 33, 24]), (u'Philippians', u'Phil', u'Phil', [30, 30, 21, 23]), (u'Colossians', u'Col', u'Col', [29, 23, 25, 18]), (u'I Thessalonians', u'1Thess', u'1Thess', [10, 20, 13, 18, 28]), (u'II Thessalonians', u'2Thess', u'2Thess', [12, 17, 18]), (u'I Timothy', u'1Tim', u'1Tim', [20, 15, 16, 16, 25, 21]), (u'II Timothy', u'2Tim', u'2Tim', [18, 26, 17, 22]), (u'Titus', u'Titus', u'Titus', [16, 15, 15]), (u'Philemon', u'Phlm', u'Phlm', [25]), (u'Hebrews', u'Heb', u'Heb', [14, 18, 19, 16, 14, 20, 28, 13, 28, 39, 40, 29, 25]), (u'James', u'Jas', u'Jas', [27, 26, 18, 17, 20]), (u'I Peter', u'1Pet', u'1Pet', [25, 25, 22, 19, 14]), (u'II Peter', u'2Pet', u'2Pet', [21, 22, 18]), (u'I John', u'1John', u'1John', [10, 29, 24, 21, 21]), (u'II John', u'2John', u'2John', [13]), (u'III John', u'3John', u'3John', [15]), (u'Jude', u'Jude', u'Jude', [25]), (u'Revelation of John', u'Rev', u'Rev', [20, 29, 22, 11, 14, 17, 17, 13, 21, 11, 19, 18, 18, 20, 8, 21, 18, 24, 21, 15, 27, 21]), ], }, u'catholic': { u'ot': [ (u'Genesis', u'Gen', u'Gen', [ 31, 25, 24, 26, 32, 22, 24, 22, 29, 32, 32, 20, 18, 24, 21, 16, 27, 33, 38, 18, 34, 24, 20, 67, 34, 35, 46, 22, 35, 43, 54, 33, 20, 31, 29, 43, 36, 30, 23, 23, 57, 38, 34, 34, 28, 34, 31, 22, 33, 26 ]), (u'Exodus', u'Exod', u'Exod', [ 22, 25, 22, 31, 23, 30, 29, 28, 35, 29, 10, 51, 22, 31, 27, 36, 16, 27, 25, 26, 37, 30, 33, 18, 40, 37, 21, 43, 46, 38, 18, 35, 23, 35, 35, 38, 29, 31, 43, 38 ]), (u'Leviticus', u'Lev', u'Lev', [ 17, 16, 17, 35, 26, 23, 38, 36, 24, 20, 47, 8, 59, 57, 33, 34, 16, 30, 37, 27, 24, 33, 44, 23, 55, 46, 34 ]), (u'Numbers', u'Num', u'Num', [ 54, 34, 51, 49, 31, 27, 89, 26, 23, 36, 35, 16, 33, 45, 41, 35, 28, 32, 22, 29, 35, 41, 30, 25, 19, 66, 23, 31, 39, 17, 54, 42, 56, 29, 34, 13 ]), (u'Deuteronomy', u'Deut', u'Deut', [ 46, 37, 29, 49, 33, 25, 26, 20, 29, 22, 32, 31, 19, 29, 23, 22, 20, 22, 21, 20, 23, 29, 26, 22, 19, 19, 26, 69, 28, 20, 30, 52, 29, 12 ]), (u'Joshua', u'Josh', u'Josh', [18, 24, 17, 24, 15, 27, 26, 35, 27, 43, 23, 24, 33, 15, 63, 10, 18, 28, 51, 9, 45, 34, 16, 33]), (u'Judges', u'Judg', u'Judg', [36, 23, 31, 24, 32, 40, 25, 35, 57, 18, 40, 15, 25, 20, 20, 31, 13, 31, 30, 48, 25]), (u'Ruth', u'Ruth', u'Ruth', [22, 23, 18, 22]), (u'I Samuel', u'1Sam', u'1Sam', [ 28, 36, 21, 22, 12, 21, 17, 22, 27, 27, 15, 25, 23, 52, 35, 23, 58, 30, 24, 42, 16, 23, 28, 23, 44, 25, 12, 25, 11, 31, 13 ]), (u'II Samuel', u'2Sam', u'2Sam', [27, 32, 39, 12, 25, 23, 29, 18, 13, 19, 27, 31, 39, 33, 37, 23, 29, 32, 44, 26, 22, 51, 39, 25]), (u'I Kings', u'1Kgs', u'1Kgs', [53, 46, 28, 20, 32, 38, 51, 66, 28, 29, 43, 33, 34, 31, 34, 34, 24, 46, 21, 43, 29, 54]), (u'II Kings', u'2Kgs', u'2Kgs', [18, 25, 27, 44, 27, 33, 20, 29, 37, 36, 20, 22, 25, 29, 38, 20, 41, 37, 37, 21, 26, 20, 37, 20, 30]), (u'I Chronicles', u'1Chr', u'1Chr', [ 54, 55, 24, 43, 41, 66, 40, 40, 44, 14, 47, 41, 14, 17, 29, 43, 27, 17, 19, 8, 30, 19, 32, 31, 31, 32, 34, 21, 30 ]), (u'II Chronicles', u'2Chr', u'2Chr', [ 18, 17, 17, 22, 14, 42, 22, 18, 31, 19, 23, 16, 23, 14, 19, 14, 19, 34, 11, 37, 20, 12, 21, 27, 28, 23, 9, 27, 36, 27, 21, 33, 25, 33, 27, 23 ]), (u'Ezra', u'Ezra', u'Ezra', [11, 70, 13, 24, 17, 22, 28, 36, 15, 44]), (u'Nehemiah', u'Neh', u'Neh', [11, 20, 38, 17, 19, 19, 73, 18, 37, 40, 36, 47, 31]), (u'Tobit', u'Tob', u'Tob', [22, 14, 17, 21, 23, 19, 17, 21, 6, 14, 19, 22, 18, 15]), (u'Judith', u'Jdt', u'Jdt', [16, 28, 10, 15, 24, 21, 32, 36, 14, 23, 23, 20, 20, 19, 14, 25]), (u'Esther', u'Esth', u'Esth', [22, 23, 15, 17, 14, 14, 10, 17, 32, 3]), (u'I Maccabees', u'1Macc', u'1Macc', [64, 70, 60, 61, 68, 63, 50, 32, 73, 89, 74, 54, 53, 49, 41, 24]), (u'II Maccabees', u'2Macc', u'2Macc', [36, 32, 40, 50, 27, 31, 42, 36, 29, 38, 38, 46, 26, 46, 39]), (u'Job', u'Job', u'Job', [ 22, 13, 26, 21, 27, 30, 21, 22, 35, 22, 20, 25, 28, 22, 35, 22, 16, 21, 29, 29, 34, 30, 17, 25, 14, 14, 24, 28, 25, 31, 40, 22, 33, 37, 16, 33, 24, 41, 30, 32, 26, 17 ]), (u'Psalms', u'Ps', u'Ps', [ 6, 12, 9, 9, 13, 11, 18, 10, 21, 18, 7, 9, 6, 7, 5, 11, 15, 51, 15, 10, 14, 32, 6, 10, 22, 12, 14, 9, 11, 13, 25, 11, 22, 23, 28, 13, 40, 23, 14, 18, 14, 12, 5, 27, 18, 12, 10, 15, 21, 24, 21, 11, 7, 9, 24, 14, 12, 12, 18, 14, 9, 13, 12, 11, 14, 20, 8, 36, 37, 6, 24, 20, 28, 23, 11, 13, 21, 72, 13, 20, 17, 8, 19, 13, 14, 17, 7, 19, 53, 17, 16, 16, 5, 23, 11, 13, 12, 9, 9, 5, 9, 29, 22, 35, 45, 48, 43, 14, 31, 7, 10, 10, 9, 8, 18, 19, 2, 29, 176, 7, 8, 9, 4, 8, 5, 6, 5, 6, 8, 8, 3, 18, 3, 3, 21, 26, 9, 8, 24, 14, 10, 8, 12, 15, 21, 10, 20, 14, 9, 6 ]), (u'Proverbs', u'Prov', u'Prov', [ 33, 22, 35, 27, 23, 35, 27, 36, 18, 32, 31, 28, 25, 35, 33, 33, 28, 24, 29, 30, 31, 29, 35, 34, 28, 28, 27, 28, 27, 33, 31 ]), (u'Ecclesiastes', u'Eccl', u'Eccl', [18, 26, 22, 17, 19, 12, 29, 17, 18, 20, 10, 14]), (u'Song of Solomon', u'Song', u'Song', [17, 17, 11, 17, 16, 12, 14, 14]), (u'Wisdom', u'Wis', u'Wis', [16, 24, 19, 20, 23, 25, 30, 21, 19, 21, 26, 27, 19, 31, 19, 29, 21, 25, 22]), (u'Sirach', u'Sir', u'Sir', [ 30, 18, 31, 31, 17, 37, 36, 19, 18, 31, 34, 18, 26, 27, 20, 30, 32, 33, 30, 32, 28, 27, 28, 34, 26, 29, 30, 26, 28, 25, 31, 24, 33, 31, 26, 31, 31, 34, 35, 30, 27, 25, 35, 23, 26, 20, 25, 25, 16, 29, 30 ]), (u'Isaiah', u'Isa', u'Isa', [ 31, 22, 26, 6, 30, 13, 25, 24, 21, 34, 16, 6, 22, 32, 9, 14, 14, 7, 25, 6, 17, 25, 18, 23, 12, 21, 13, 29, 24, 33, 9, 20, 24, 17, 10, 22, 38, 22, 8, 31, 29, 25, 28, 28, 25, 13, 15, 22, 26, 11, 23, 15, 12, 17, 13, 12, 21, 14, 21, 22, 11, 12, 19, 11, 25, 24 ]), (u'Jeremiah', u'Jer', u'Jer', [ 19, 37, 25, 31, 31, 30, 34, 23, 25, 25, 23, 17, 27, 22, 21, 21, 27, 23, 15, 18, 14, 30, 40, 10, 38, 24, 22, 17, 32, 24, 40, 44, 26, 22, 19, 32, 21, 28, 18, 16, 18, 22, 13, 30, 5, 28, 7, 47, 39, 46, 64, 34 ]), (u'Lamentations', u'Lam', u'Lam', [22, 22, 66, 22, 22]), (u'Baruch', u'Bar', u'Bar', [22, 35, 38, 37, 9, 72]), (u'Ezekiel', u'Ezek', u'Ezek', [ 28, 10, 27, 17, 17, 14, 27, 18, 11, 22, 25, 28, 23, 23, 8, 63, 24, 32, 14, 44, 37, 31, 49, 27, 17, 21, 36, 26, 21, 26, 18, 32, 33, 31, 15, 38, 28, 23, 29, 49, 26, 20, 27, 31, 25, 24, 23, 35 ]), (u'Daniel', u'Dan', u'Dan', [21, 49, 100, 34, 30, 29, 28, 27, 27, 21, 45, 13, 64, 43]), (u'Hosea', u'Hos', u'Hos', [9, 25, 5, 19, 15, 11, 16, 14, 17, 15, 11, 15, 15, 10]), (u'Joel', u'Joel', u'Joel', [20, 27, 5, 21]), (u'Amos', u'Amos', u'Amos', [15, 16, 15, 13, 27, 14, 17, 14, 15]), (u'Obadiah', u'Obad', u'Obad', [21]), (u'Jonah', u'Jonah', u'Jonah', [16, 11, 10, 11]), (u'Micah', u'Mic', u'Mic', [16, 13, 12, 14, 14, 16, 20]), (u'Nahum', u'Nah', u'Nah', [14, 14, 19]), (u'Habakkuk', u'Hab', u'Hab', [17, 20, 19]), (u'Zephaniah', u'Zeph', u'Zeph', [18, 15, 20]), (u'Haggai', u'Hag', u'Hag', [15, 23]), (u'Zechariah', u'Zech', u'Zech', [17, 17, 10, 16, 11, 15, 14, 23, 17, 12, 17, 14, 9, 21]), (u'Malachi', u'Mal', u'Mal', [14, 17, 24]), ], u'nt': [ (u'Matthew', u'Matt', u'Matt', [ 25, 23, 17, 25, 48, 34, 29, 34, 38, 42, 30, 50, 58, 36, 39, 28, 27, 35, 30, 34, 46, 46, 39, 51, 46, 75, 66, 20 ]), (u'Mark', u'Mark', u'Mark', [45, 28, 35, 41, 43, 56, 37, 38, 50, 52, 33, 44, 37, 72, 47, 20]), (u'Luke', u'Luke', u'Luke', [80, 52, 38, 44, 39, 49, 50, 56, 62, 42, 54, 59, 35, 35, 32, 31, 37, 43, 48, 47, 38, 71, 56, 53]), (u'John', u'John', u'John', [51, 25, 36, 54, 47, 71, 53, 59, 41, 42, 57, 50, 38, 31, 27, 33, 26, 40, 42, 31, 25]), (u'Acts', u'Acts', u'Acts', [ 26, 47, 26, 37, 42, 15, 60, 40, 43, 49, 30, 25, 52, 28, 41, 40, 34, 28, 41, 38, 40, 30, 35, 27, 27, 32, 44, 31 ]), (u'Romans', u'Rom', u'Rom', [32, 29, 31, 25, 21, 23, 25, 39, 33, 21, 36, 21, 14, 23, 33, 27]), (u'I Corinthians', u'1Cor', u'1Cor', [31, 16, 23, 21, 13, 20, 40, 13, 27, 33, 34, 31, 13, 40, 58, 24]), (u'II Corinthians', u'2Cor', u'2Cor', [24, 17, 18, 18, 21, 18, 16, 24, 15, 18, 33, 21, 13]), (u'Galatians', u'Gal', u'Gal', [24, 21, 29, 31, 26, 18]), (u'Ephesians', u'Eph', u'Eph', [23, 22, 21, 32, 33, 24]), (u'Philippians', u'Phil', u'Phil', [30, 30, 21, 23]), (u'Colossians', u'Col', u'Col', [29, 23, 25, 18]), (u'I Thessalonians', u'1Thess', u'1Thess', [10, 20, 13, 18, 28]), (u'II Thessalonians', u'2Thess', u'2Thess', [12, 17, 18]), (u'I Timothy', u'1Tim', u'1Tim', [20, 15, 16, 16, 25, 21]), (u'II Timothy', u'2Tim', u'2Tim', [18, 26, 17, 22]), (u'Titus', u'Titus', u'Titus', [16, 15, 15]), (u'Philemon', u'Phlm', u'Phlm', [25]), (u'Hebrews', u'Heb', u'Heb', [14, 18, 19, 16, 14, 20, 28, 13, 28, 39, 40, 29, 25]), (u'James', u'Jas', u'Jas', [27, 26, 18, 17, 20]), (u'I Peter', u'1Pet', u'1Pet', [25, 25, 22, 19, 14]), (u'II Peter', u'2Pet', u'2Pet', [21, 22, 18]), (u'I John', u'1John', u'1John', [10, 29, 24, 21, 21]), (u'II John', u'2John', u'2John', [13]), (u'III John', u'3John', u'3John', [15]), (u'Jude', u'Jude', u'Jude', [25]), (u'Revelation of John', u'Rev', u'Rev', [20, 29, 22, 11, 14, 17, 17, 13, 21, 11, 19, 18, 18, 20, 8, 21, 18, 24, 21, 15, 27, 21]), ], }, u'catholic2': { u'ot': [ (u'Genesis', u'Gen', u'Gen', [ 31, 25, 24, 26, 32, 22, 24, 22, 29, 32, 32, 20, 18, 24, 21, 16, 27, 33, 38, 18, 34, 24, 20, 67, 34, 35, 46, 22, 35, 43, 54, 33, 20, 31, 29, 43, 36, 30, 23, 23, 57, 38, 34, 34, 28, 34, 31, 22, 33, 26 ]), (u'Exodus', u'Exod', u'Exod', [ 22, 25, 22, 31, 23, 30, 29, 28, 35, 29, 10, 51, 22, 31, 27, 36, 16, 27, 25, 26, 37, 30, 33, 18, 40, 37, 21, 43, 46, 38, 18, 35, 23, 35, 35, 38, 29, 31, 43, 38 ]), (u'Leviticus', u'Lev', u'Lev', [ 17, 16, 17, 35, 26, 23, 38, 36, 24, 20, 47, 8, 59, 57, 33, 34, 16, 30, 37, 27, 24, 33, 44, 23, 55, 46, 34 ]), (u'Numbers', u'Num', u'Num', [ 54, 34, 51, 49, 31, 27, 89, 26, 23, 36, 35, 16, 33, 45, 41, 35, 28, 32, 22, 29, 35, 41, 30, 25, 19, 66, 23, 31, 39, 17, 54, 42, 56, 29, 34, 13 ]), (u'Deuteronomy', u'Deut', u'Deut', [ 46, 37, 29, 49, 33, 25, 26, 20, 29, 22, 32, 31, 19, 29, 23, 22, 20, 22, 21, 20, 23, 29, 26, 22, 19, 19, 26, 69, 28, 20, 30, 52, 29, 12 ]), (u'Joshua', u'Josh', u'Josh', [18, 24, 17, 24, 15, 27, 26, 35, 27, 43, 23, 24, 33, 15, 63, 10, 18, 28, 51, 9, 45, 34, 16, 33]), (u'Judges', u'Judg', u'Judg', [36, 23, 31, 24, 32, 40, 25, 35, 57, 18, 40, 15, 25, 20, 20, 31, 13, 31, 30, 48, 25]), (u'Ruth', u'Ruth', u'Ruth', [22, 23, 18, 22]), (u'I Samuel', u'1Sam', u'1Sam', [ 28, 36, 21, 22, 12, 21, 17, 22, 27, 27, 15, 25, 23, 52, 35, 23, 58, 30, 24, 42, 16, 23, 28, 23, 44, 25, 12, 25, 11, 31, 13 ]), (u'II Samuel', u'2Sam', u'2Sam', [27, 32, 39, 12, 25, 23, 29, 18, 13, 19, 27, 31, 39, 33, 37, 23, 29, 32, 44, 26, 22, 51, 39, 25]), (u'I Kings', u'1Kgs', u'1Kgs', [53, 46, 28, 20, 32, 38, 51, 66, 28, 29, 43, 33, 34, 31, 34, 34, 24, 46, 21, 43, 29, 54]), (u'II Kings', u'2Kgs', u'2Kgs', [18, 25, 27, 44, 27, 33, 20, 29, 37, 36, 20, 22, 25, 29, 38, 20, 41, 37, 37, 21, 26, 20, 37, 20, 30]), (u'I Chronicles', u'1Chr', u'1Chr', [ 54, 55, 24, 43, 41, 66, 40, 40, 44, 14, 47, 41, 14, 17, 29, 43, 27, 17, 19, 8, 30, 19, 32, 31, 31, 32, 34, 21, 30 ]), (u'II Chronicles', u'2Chr', u'2Chr', [ 18, 17, 17, 22, 14, 42, 22, 18, 31, 19, 23, 16, 23, 14, 19, 14, 19, 34, 11, 37, 20, 12, 21, 27, 28, 23, 9, 27, 36, 27, 21, 33, 25, 33, 27, 23 ]), (u'Ezra', u'Ezra', u'Ezra', [11, 70, 13, 24, 17, 22, 28, 36, 15, 44]), (u'Nehemiah', u'Neh', u'Neh', [11, 20, 38, 17, 19, 19, 73, 18, 37, 40, 36, 47, 31]), (u'Tobit', u'Tob', u'Tob', [22, 14, 17, 21, 23, 19, 17, 21, 6, 14, 19, 22, 18, 15]), (u'Judith', u'Jdt', u'Jdt', [16, 28, 10, 15, 24, 21, 32, 36, 14, 23, 23, 20, 20, 19, 14, 25]), (u'Esther', u'Esth', u'Esth', [22, 23, 15, 17, 14, 14, 10, 17, 32, 13, 12, 6, 18, 19, 19, 24]), (u'I Maccabees', u'1Macc', u'1Macc', [64, 70, 60, 61, 68, 63, 50, 32, 73, 89, 74, 54, 53, 49, 41, 24]), (u'II Maccabees', u'2Macc', u'2Macc', [36, 32, 40, 50, 27, 31, 42, 36, 29, 38, 38, 46, 26, 46, 39]), (u'Job', u'Job', u'Job', [ 22, 13, 26, 21, 27, 30, 21, 22, 35, 22, 20, 25, 28, 22, 35, 22, 16, 21, 29, 29, 34, 30, 17, 25, 14, 14, 24, 28, 25, 31, 40, 22, 33, 37, 16, 33, 24, 41, 30, 32, 26, 17 ]), (u'Psalms', u'Ps', u'Ps', [ 6, 12, 9, 9, 13, 11, 18, 10, 21, 18, 7, 9, 6, 7, 5, 11, 15, 51, 15, 10, 14, 32, 6, 10, 22, 12, 14, 9, 11, 13, 25, 11, 22, 23, 28, 13, 40, 23, 14, 18, 14, 12, 5, 27, 18, 12, 10, 15, 21, 24, 21, 11, 7, 9, 24, 14, 12, 12, 18, 14, 9, 13, 12, 11, 14, 20, 8, 36, 37, 6, 24, 20, 28, 23, 11, 13, 21, 72, 13, 20, 17, 8, 19, 13, 14, 17, 7, 19, 53, 17, 16, 16, 5, 23, 11, 13, 12, 9, 9, 5, 9, 29, 22, 35, 45, 48, 43, 14, 31, 7, 10, 10, 9, 8, 18, 19, 2, 29, 176, 7, 8, 9, 4, 8, 5, 6, 5, 6, 8, 8, 3, 18, 3, 3, 21, 26, 9, 8, 24, 14, 10, 8, 12, 15, 21, 10, 20, 14, 9, 6 ]), (u'Proverbs', u'Prov', u'Prov', [ 33, 22, 35, 27, 23, 35, 27, 36, 18, 32, 31, 28, 25, 35, 33, 33, 28, 24, 29, 30, 31, 29, 35, 34, 28, 28, 27, 28, 27, 33, 31 ]), (u'Ecclesiastes', u'Eccl', u'Eccl', [18, 26, 22, 17, 19, 12, 29, 17, 18, 20, 10, 14]), (u'Song of Solomon', u'Song', u'Song', [17, 17, 11, 17, 16, 12, 14, 14]), (u'Wisdom', u'Wis', u'Wis', [16, 24, 19, 20, 23, 25, 30, 21, 19, 21, 26, 27, 19, 31, 19, 29, 21, 25, 22]), (u'Sirach', u'Sir', u'Sir', [ 30, 18, 31, 31, 17, 37, 36, 19, 18, 31, 34, 18, 26, 27, 20, 30, 32, 33, 30, 32, 28, 27, 28, 34, 26, 29, 30, 26, 28, 25, 31, 24, 33, 31, 26, 31, 31, 34, 35, 30, 27, 25, 35, 23, 26, 20, 25, 25, 16, 29, 30 ]), (u'Isaiah', u'Isa', u'Isa', [ 31, 22, 26, 6, 30, 13, 25, 24, 21, 34, 16, 6, 22, 32, 9, 14, 14, 7, 25, 6, 17, 25, 18, 23, 12, 21, 13, 29, 24, 33, 9, 20, 24, 17, 10, 22, 38, 22, 8, 31, 29, 25, 28, 28, 25, 13, 15, 22, 26, 11, 23, 15, 12, 17, 13, 12, 21, 14, 21, 22, 11, 12, 19, 11, 25, 24 ]), (u'Jeremiah', u'Jer', u'Jer', [ 19, 37, 25, 31, 31, 30, 34, 23, 25, 25, 23, 17, 27, 22, 21, 21, 27, 23, 15, 18, 14, 30, 40, 10, 38, 24, 22, 17, 32, 24, 40, 44, 26, 22, 19, 32, 21, 28, 18, 16, 18, 22, 13, 30, 5, 28, 7, 47, 39, 46, 64, 34 ]), (u'Lamentations', u'Lam', u'Lam', [22, 22, 66, 22, 22]), (u'Baruch', u'Bar', u'Bar', [22, 35, 38, 37, 9, 72]), (u'Ezekiel', u'Ezek', u'Ezek', [ 28, 10, 27, 17, 17, 14, 27, 18, 11, 22, 25, 28, 23, 23, 8, 63, 24, 32, 14, 44, 37, 31, 49, 27, 17, 21, 36, 26, 21, 26, 18, 32, 33, 31, 15, 38, 28, 23, 29, 49, 26, 20, 27, 31, 25, 24, 23, 35 ]), (u'Daniel', u'Dan', u'Dan', [21, 49, 100, 34, 30, 29, 28, 27, 27, 21, 45, 13, 64, 43]), (u'Hosea', u'Hos', u'Hos', [9, 25, 5, 19, 15, 11, 16, 14, 17, 15, 11, 15, 15, 10]), (u'Joel', u'Joel', u'Joel', [20, 27, 5, 21]), (u'Amos', u'Amos', u'Amos', [15, 16, 15, 13, 27, 14, 17, 14, 15]), (u'Obadiah', u'Obad', u'Obad', [21]), (u'Jonah', u'Jonah', u'Jonah', [16, 11, 10, 11]), (u'Micah', u'Mic', u'Mic', [16, 13, 12, 14, 14, 16, 20]), (u'Nahum', u'Nah', u'Nah', [14, 14, 19]), (u'Habakkuk', u'Hab', u'Hab', [17, 20, 19]), (u'Zephaniah', u'Zeph', u'Zeph', [18, 15, 20]), (u'Haggai', u'Hag', u'Hag', [15, 23]), (u'Zechariah', u'Zech', u'Zech', [17, 17, 10, 16, 11, 15, 14, 23, 17, 12, 17, 14, 9, 21]), (u'Malachi', u'Mal', u'Mal', [14, 17, 24]), ], u'nt': [ (u'Matthew', u'Matt', u'Matt', [ 25, 23, 17, 25, 48, 34, 29, 34, 38, 42, 30, 50, 58, 36, 39, 28, 27, 35, 30, 34, 46, 46, 39, 51, 46, 75, 66, 20 ]), (u'Mark', u'Mark', u'Mark', [45, 28, 35, 41, 43, 56, 37, 38, 50, 52, 33, 44, 37, 72, 47, 20]), (u'Luke', u'Luke', u'Luke', [80, 52, 38, 44, 39, 49, 50, 56, 62, 42, 54, 59, 35, 35, 32, 31, 37, 43, 48, 47, 38, 71, 56, 53]), (u'John', u'John', u'John', [51, 25, 36, 54, 47, 71, 53, 59, 41, 42, 57, 50, 38, 31, 27, 33, 26, 40, 42, 31, 25]), (u'Acts', u'Acts', u'Acts', [ 26, 47, 26, 37, 42, 15, 60, 40, 43, 49, 30, 25, 52, 28, 41, 40, 34, 28, 41, 38, 40, 30, 35, 27, 27, 32, 44, 31 ]), (u'Romans', u'Rom', u'Rom', [32, 29, 31, 25, 21, 23, 25, 39, 33, 21, 36, 21, 14, 23, 33, 27]), (u'I Corinthians', u'1Cor', u'1Cor', [31, 16, 23, 21, 13, 20, 40, 13, 27, 33, 34, 31, 13, 40, 58, 24]), (u'II Corinthians', u'2Cor', u'2Cor', [24, 17, 18, 18, 21, 18, 16, 24, 15, 18, 33, 21, 13]), (u'Galatians', u'Gal', u'Gal', [24, 21, 29, 31, 26, 18]), (u'Ephesians', u'Eph', u'Eph', [23, 22, 21, 32, 33, 24]), (u'Philippians', u'Phil', u'Phil', [30, 30, 21, 23]), (u'Colossians', u'Col', u'Col', [29, 23, 25, 18]), (u'I Thessalonians', u'1Thess', u'1Thess', [10, 20, 13, 18, 28]), (u'II Thessalonians', u'2Thess', u'2Thess', [12, 17, 18]), (u'I Timothy', u'1Tim', u'1Tim', [20, 15, 16, 16, 25, 21]), (u'II Timothy', u'2Tim', u'2Tim', [18, 26, 17, 22]), (u'Titus', u'Titus', u'Titus', [16, 15, 15]), (u'Philemon', u'Phlm', u'Phlm', [25]), (u'Hebrews', u'Heb', u'Heb', [14, 18, 19, 16, 14, 20, 28, 13, 28, 39, 40, 29, 25]), (u'James', u'Jas', u'Jas', [27, 26, 18, 17, 20]), (u'I Peter', u'1Pet', u'1Pet', [25, 25, 22, 19, 14]), (u'II Peter', u'2Pet', u'2Pet', [21, 22, 18]), (u'I John', u'1John', u'1John', [10, 29, 24, 21, 21]), (u'II John', u'2John', u'2John', [13]), (u'III John', u'3John', u'3John', [15]), (u'Jude', u'Jude', u'Jude', [25]), (u'Revelation of John', u'Rev', u'Rev', [20, 29, 22, 11, 14, 17, 17, 13, 21, 11, 19, 18, 18, 20, 8, 21, 18, 24, 21, 15, 27, 21]), ], }, u'darbyfr': { u'ot': [ (u'Genesis', u'Gen', u'Gen', [ 31, 25, 24, 26, 32, 22, 24, 22, 29, 32, 32, 20, 18, 24, 21, 16, 27, 33, 38, 18, 34, 24, 20, 67, 34, 35, 46, 22, 35, 43, 55, 32, 20, 31, 29, 43, 36, 30, 23, 23, 57, 38, 34, 34, 28, 34, 31, 22, 33, 26 ]), (u'Exodus', u'Exod', u'Exod', [ 22, 25, 22, 31, 23, 30, 25, 32, 35, 29, 10, 51, 22, 31, 27, 36, 16, 27, 25, 26, 36, 31, 33, 18, 40, 37, 21, 43, 46, 38, 18, 35, 23, 35, 35, 38, 29, 31, 43, 38 ]), (u'Leviticus', u'Lev', u'Lev', [ 17, 16, 17, 35, 26, 23, 38, 36, 24, 20, 47, 8, 59, 57, 33, 34, 16, 30, 37, 27, 24, 33, 44, 23, 55, 46, 34 ]), (u'Numbers', u'Num', u'Num', [ 54, 34, 51, 49, 31, 27, 89, 26, 23, 36, 35, 15, 34, 45, 41, 50, 13, 32, 22, 29, 35, 41, 30, 25, 18, 65, 23, 31, 40, 17, 54, 42, 56, 29, 34, 13 ]), (u'Deuteronomy', u'Deut', u'Deut', [ 46, 37, 29, 49, 33, 25, 26, 20, 29, 22, 32, 32, 18, 29, 23, 22, 20, 22, 21, 20, 23, 30, 25, 22, 19, 19, 26, 69, 29, 20, 30, 52, 29, 12 ]), (u'Joshua', u'Josh', u'Josh', [18, 24, 17, 24, 15, 27, 26, 35, 27, 43, 23, 24, 33, 15, 63, 10, 18, 28, 51, 9, 45, 34, 16, 33]), (u'Judges', u'Judg', u'Judg', [36, 23, 31, 24, 31, 40, 25, 35, 57, 18, 40, 15, 25, 20, 20, 31, 13, 31, 30, 48, 25]), (u'Ruth', u'Ruth', u'Ruth', [22, 23, 18, 22]), (u'I Samuel', u'1Sam', u'1Sam', [ 28, 36, 21, 22, 12, 21, 17, 22, 27, 27, 15, 25, 23, 52, 35, 23, 58, 30, 24, 43, 15, 23, 28, 23, 44, 25, 12, 25, 11, 31, 13 ]), (u'II Samuel', u'2Sam', u'2Sam', [27, 32, 39, 12, 25, 23, 29, 18, 13, 19, 27, 31, 39, 33, 37, 23, 29, 33, 43, 26, 22, 51, 39, 25]), (u'I Kings', u'1Kgs', u'1Kgs', [53, 46, 28, 34, 18, 38, 51, 66, 28, 29, 43, 33, 34, 31, 34, 34, 24, 46, 21, 43, 29, 54]), (u'II Kings', u'2Kgs', u'2Kgs', [18, 25, 27, 44, 27, 33, 20, 29, 37, 36, 21, 21, 25, 29, 38, 20, 41, 37, 37, 21, 26, 20, 37, 20, 30]), (u'I Chronicles', u'1Chr', u'1Chr', [ 54, 55, 24, 43, 26, 81, 40, 40, 44, 14, 47, 40, 14, 17, 29, 43, 27, 17, 19, 8, 30, 19, 32, 31, 31, 32, 34, 21, 30 ]), (u'II Chronicles', u'2Chr', u'2Chr', [ 17, 18, 17, 22, 14, 42, 22, 18, 31, 19, 23, 16, 22, 15, 19, 14, 19, 34, 11, 37, 20, 12, 21, 27, 28, 23, 9, 27, 36, 27, 21, 33, 25, 33, 27, 23 ]), (u'Ezra', u'Ezra', u'Ezra', [11, 70, 13, 24, 17, 22, 28, 36, 15, 44]), (u'Nehemiah', u'Neh', u'Neh', [11, 20, 32, 23, 19, 19, 73, 18, 38, 39, 36, 47, 31]), (u'Esther', u'Esth', u'Esth', [22, 23, 15, 17, 14, 14, 10, 17, 32, 3]), (u'Job', u'Job', u'Job', [ 22, 13, 26, 21, 27, 30, 21, 22, 35, 22, 20, 25, 28, 22, 35, 22, 16, 21, 29, 29, 34, 30, 17, 25, 6, 14, 23, 28, 25, 31, 40, 22, 33, 37, 16, 33, 24, 38, 38, 27, 25, 17 ]), (u'Psalms', u'Ps', u'Ps', [ 6, 12, 8, 8, 12, 10, 17, 9, 20, 18, 7, 8, 5, 7, 5, 11, 15, 50, 14, 9, 13, 31, 6, 10, 22, 12, 14, 9, 11, 12, 24, 11, 22, 22, 28, 12, 40, 22, 13, 17, 13, 11, 5, 26, 17, 11, 9, 14, 20, 23, 19, 9, 6, 7, 23, 13, 11, 11, 17, 12, 8, 12, 11, 10, 13, 20, 7, 35, 36, 5, 24, 20, 28, 23, 10, 12, 20, 72, 13, 19, 16, 8, 18, 12, 13, 17, 7, 18, 52, 17, 16, 15, 5, 23, 11, 13, 12, 9, 9, 5, 8, 28, 22, 35, 45, 48, 43, 13, 31, 7, 10, 10, 9, 8, 18, 19, 2, 29, 176, 7, 8, 9, 4, 8, 5, 6, 5, 6, 8, 8, 3, 18, 3, 3, 21, 26, 9, 8, 24, 13, 10, 7, 12, 15, 21, 10, 20, 14, 9, 6 ]), (u'Proverbs', u'Prov', u'Prov', [ 33, 22, 35, 27, 23, 35, 27, 36, 18, 32, 31, 28, 25, 35, 33, 33, 28, 24, 29, 30, 31, 29, 35, 34, 28, 28, 27, 28, 27, 33, 31 ]), (u'Ecclesiastes', u'Eccl', u'Eccl', [18, 26, 22, 16, 20, 12, 29, 17, 18, 20, 10, 14]), (u'Song of Solomon', u'Song', u'Song', [17, 17, 11, 16, 16, 13, 13, 14]), (u'Isaiah', u'Isa', u'Isa', [ 31, 22, 26, 6, 30, 13, 25, 22, 21, 34, 16, 6, 22, 32, 9, 14, 14, 7, 25, 6, 17, 25, 18, 23, 12, 21, 13, 29, 24, 33, 9, 20, 24, 17, 10, 22, 38, 22, 8, 31, 29, 25, 28, 28, 25, 13, 15, 22, 26, 11, 23, 15, 12, 17, 13, 12, 21, 14, 21, 22, 11, 12, 19, 12, 25, 24 ]), (u'Jeremiah', u'Jer', u'Jer', [ 19, 37, 25, 31, 31, 30, 34, 22, 26, 25, 23, 17, 27, 22, 21, 21, 27, 23, 15, 18, 14, 30, 40, 10, 38, 24, 22, 17, 32, 24, 40, 44, 26, 22, 19, 32, 21, 28, 18, 16, 18, 22, 13, 30, 5, 28, 7, 47, 39, 46, 64, 34 ]), (u'Lamentations', u'Lam', u'Lam', [22, 22, 66, 22, 22]), (u'Ezekiel', u'Ezek', u'Ezek', [ 28, 10, 27, 17, 17, 14, 27, 18, 11, 22, 25, 28, 23, 23, 8, 63, 24, 32, 14, 44, 37, 31, 49, 27, 17, 21, 36, 26, 21, 26, 18, 32, 33, 31, 15, 38, 28, 23, 29, 49, 26, 20, 27, 31, 25, 24, 23, 35 ]), (u'Daniel', u'Dan', u'Dan', [21, 49, 30, 37, 31, 28, 28, 27, 27, 21, 45, 13]), (u'Hosea', u'Hos', u'Hos', [11, 23, 5, 19, 15, 11, 16, 14, 17, 15, 11, 15, 16, 9]), (u'Joel', u'Joel', u'Joel', [20, 32, 21]), (u'Amos', u'Amos', u'Amos', [15, 16, 15, 13, 27, 14, 17, 14, 15]), (u'Obadiah', u'Obad', u'Obad', [21]), (u'Jonah', u'Jonah', u'Jonah', [16, 11, 10, 11]), (u'Micah', u'Mic', u'Mic', [16, 13, 12, 13, 15, 16, 20]), (u'Nahum', u'Nah', u'Nah', [15, 13, 19]), (u'Habakkuk', u'Hab', u'Hab', [17, 20, 19]), (u'Zephaniah', u'Zeph', u'Zeph', [18, 15, 20]), (u'Haggai', u'Hag', u'Hag', [15, 23]), (u'Zechariah', u'Zech', u'Zech', [21, 13, 10, 14, 11, 15, 14, 23, 17, 12, 17, 14, 9, 21]), (u'Malachi', u'Mal', u'Mal', [14, 17, 18, 6]), ], u'nt': [ (u'Matthew', u'Matt', u'Matt', [ 25, 23, 17, 25, 48, 34, 29, 34, 38, 42, 30, 50, 58, 36, 39, 28, 27, 35, 30, 34, 46, 46, 39, 51, 46, 75, 66, 20 ]), (u'Mark', u'Mark', u'Mark', [45, 28, 35, 41, 43, 56, 37, 38, 51, 52, 33, 44, 37, 72, 47, 20]), (u'Luke', u'Luke', u'Luke', [80, 52, 38, 44, 39, 49, 50, 56, 62, 42, 54, 59, 35, 35, 32, 31, 37, 43, 48, 47, 38, 71, 56, 53]), (u'John', u'John', u'John', [52, 25, 36, 54, 47, 71, 53, 59, 41, 42, 57, 50, 38, 31, 27, 33, 26, 40, 42, 31, 25]), (u'Acts', u'Acts', u'Acts', [ 26, 47, 26, 37, 42, 15, 60, 40, 43, 48, 30, 25, 52, 28, 41, 40, 34, 28, 41, 38, 40, 30, 35, 27, 27, 32, 44, 31 ]), (u'Romans', u'Rom', u'Rom', [32, 29, 31, 25, 21, 23, 25, 39, 33, 21, 36, 21, 14, 23, 33, 27]), (u'I Corinthians', u'1Cor', u'1Cor', [31, 16, 23, 21, 13, 20, 40, 13, 27, 33, 34, 31, 13, 40, 58, 24]), (u'II Corinthians', u'2Cor', u'2Cor', [24, 17, 18, 18, 21, 18, 16, 24, 15, 18, 33, 21, 13]), (u'Galatians', u'Gal', u'Gal', [24, 21, 29, 31, 26, 18]), (u'Ephesians', u'Eph', u'Eph', [23, 22, 21, 32, 33, 24]), (u'Philippians', u'Phil', u'Phil', [30, 30, 21, 23]), (u'Colossians', u'Col', u'Col', [29, 23, 25, 18]), (u'I Thessalonians', u'1Thess', u'1Thess', [10, 20, 13, 18, 28]), (u'II Thessalonians', u'2Thess', u'2Thess', [12, 17, 18]), (u'I Timothy', u'1Tim', u'1Tim', [20, 15, 16, 16, 25, 21]), (u'II Timothy', u'2Tim', u'2Tim', [18, 26, 17, 22]), (u'Titus', u'Titus', u'Titus', [16, 15, 15]), (u'Philemon', u'Phlm', u'Phlm', [25]), (u'Hebrews', u'Heb', u'Heb', [14, 18, 19, 16, 14, 20, 28, 13, 28, 39, 40, 29, 25]), (u'James', u'Jas', u'Jas', [27, 26, 18, 17, 20]), (u'I Peter', u'1Pet', u'1Pet', [25, 25, 22, 19, 14]), (u'II Peter', u'2Pet', u'2Pet', [21, 22, 18]), (u'I John', u'1John', u'1John', [10, 29, 24, 21, 21]), (u'II John', u'2John', u'2John', [13]), (u'III John', u'3John', u'3John', [15]), (u'Jude', u'Jude', u'Jude', [25]), (u'Revelation of John', u'Rev', u'Rev', [20, 29, 22, 11, 14, 17, 17, 13, 21, 11, 19, 18, 18, 20, 8, 21, 18, 24, 21, 15, 27, 21]), ], }, u'german': { u'ot': [ (u'Genesis', u'Gen', u'Gen', [ 31, 25, 24, 26, 32, 22, 24, 22, 29, 32, 32, 20, 18, 24, 21, 16, 27, 33, 38, 18, 34, 24, 20, 67, 34, 35, 46, 22, 35, 43, 54, 33, 20, 31, 29, 43, 36, 30, 23, 23, 57, 38, 34, 34, 28, 34, 31, 22, 33, 26 ]), (u'Exodus', u'Exod', u'Exod', [ 22, 25, 22, 31, 23, 30, 29, 28, 35, 29, 10, 51, 22, 31, 27, 36, 16, 27, 25, 26, 37, 30, 33, 18, 40, 37, 21, 43, 46, 38, 18, 35, 23, 35, 35, 38, 29, 31, 43, 38 ]), (u'Leviticus', u'Lev', u'Lev', [ 17, 16, 17, 35, 26, 23, 38, 36, 24, 20, 47, 8, 59, 57, 33, 34, 16, 30, 37, 27, 24, 33, 44, 23, 55, 46, 34 ]), (u'Numbers', u'Num', u'Num', [ 54, 34, 51, 49, 31, 27, 89, 26, 23, 36, 35, 16, 33, 45, 41, 35, 28, 32, 22, 29, 35, 41, 30, 25, 19, 65, 23, 31, 39, 17, 54, 42, 56, 29, 34, 13 ]), (u'Deuteronomy', u'Deut', u'Deut', [ 46, 37, 29, 49, 33, 25, 26, 20, 29, 22, 32, 31, 19, 29, 23, 22, 20, 22, 21, 20, 23, 29, 26, 22, 19, 19, 26, 69, 28, 20, 30, 52, 29, 12 ]), (u'Joshua', u'Josh', u'Josh', [18, 24, 17, 24, 15, 27, 26, 35, 27, 43, 23, 24, 33, 15, 63, 10, 18, 28, 51, 9, 45, 34, 16, 33]), (u'Judges', u'Judg', u'Judg', [36, 23, 31, 24, 31, 40, 25, 35, 57, 18, 40, 15, 25, 20, 20, 31, 13, 31, 30, 48, 25]), (u'Ruth', u'Ruth', u'Ruth', [22, 23, 18, 22]), (u'I Samuel', u'1Sam', u'1Sam', [ 28, 36, 21, 22, 12, 21, 17, 22, 27, 27, 15, 25, 23, 52, 35, 23, 58, 30, 24, 42, 16, 23, 28, 23, 44, 25, 12, 25, 11, 31, 13 ]), (u'II Samuel', u'2Sam', u'2Sam', [27, 32, 39, 12, 25, 23, 29, 18, 13, 19, 27, 31, 39, 33, 37, 23, 29, 32, 44, 26, 22, 51, 39, 25]), (u'I Kings', u'1Kgs', u'1Kgs', [53, 46, 28, 20, 32, 38, 51, 66, 28, 29, 43, 33, 34, 31, 34, 34, 24, 46, 21, 43, 29, 54]), (u'II Kings', u'2Kgs', u'2Kgs', [18, 25, 27, 44, 27, 33, 20, 29, 37, 36, 20, 22, 25, 29, 39, 20, 41, 37, 37, 21, 26, 20, 37, 20, 30]), (u'I Chronicles', u'1Chr', u'1Chr', [ 54, 55, 24, 43, 41, 66, 40, 40, 44, 14, 47, 41, 14, 17, 29, 43, 27, 17, 19, 8, 30, 19, 32, 31, 31, 32, 34, 21, 30 ]), (u'II Chronicles', u'2Chr', u'2Chr', [ 18, 17, 17, 22, 14, 42, 22, 18, 31, 19, 23, 16, 23, 14, 19, 14, 19, 34, 11, 37, 20, 12, 21, 27, 28, 23, 9, 27, 36, 27, 21, 33, 25, 33, 27, 23 ]), (u'Ezra', u'Ezra', u'Ezra', [11, 70, 13, 24, 17, 22, 28, 36, 15, 44]), (u'Nehemiah', u'Neh', u'Neh', [11, 20, 38, 17, 19, 19, 73, 18, 37, 40, 36, 47, 31]), (u'Esther', u'Esth', u'Esth', [22, 23, 15, 17, 14, 14, 10, 17, 32, 3]), (u'Job', u'Job', u'Job', [ 22, 13, 26, 21, 27, 30, 21, 22, 35, 22, 20, 25, 28, 22, 35, 22, 16, 21, 29, 29, 34, 30, 17, 25, 6, 14, 23, 28, 25, 31, 40, 22, 33, 37, 16, 33, 24, 41, 30, 32, 26, 17 ]), (u'Psalms', u'Ps', u'Ps', [ 6, 12, 9, 9, 13, 11, 18, 10, 21, 18, 7, 9, 6, 7, 5, 11, 15, 51, 15, 10, 14, 32, 6, 10, 22, 12, 14, 9, 11, 13, 25, 11, 22, 23, 28, 13, 40, 23, 14, 18, 14, 12, 5, 27, 18, 12, 10, 15, 21, 23, 21, 11, 7, 9, 24, 14, 12, 12, 18, 14, 9, 13, 12, 11, 14, 20, 8, 36, 37, 6, 24, 20, 28, 23, 11, 13, 21, 72, 13, 20, 17, 8, 19, 13, 14, 17, 7, 19, 53, 17, 16, 16, 5, 23, 11, 13, 12, 9, 9, 5, 8, 29, 22, 35, 45, 48, 43, 14, 31, 7, 10, 10, 9, 8, 18, 19, 2, 29, 176, 7, 8, 9, 4, 8, 5, 6, 5, 6, 8, 8, 3, 18, 3, 3, 21, 26, 9, 8, 24, 14, 10, 8, 12, 15, 21, 10, 20, 14, 9, 6 ]), (u'Proverbs', u'Prov', u'Prov', [ 33, 22, 35, 27, 23, 35, 27, 36, 18, 32, 31, 28, 25, 35, 33, 33, 28, 24, 29, 30, 31, 29, 35, 34, 28, 28, 27, 28, 27, 33, 31 ]), (u'Ecclesiastes', u'Eccl', u'Eccl', [18, 26, 22, 17, 19, 12, 29, 17, 18, 20, 10, 14]), (u'Song of Solomon', u'Song', u'Song', [17, 17, 11, 16, 16, 12, 14, 14]), (u'Isaiah', u'Isa', u'Isa', [ 31, 22, 26, 6, 30, 13, 25, 23, 20, 34, 16, 6, 22, 32, 9, 14, 14, 7, 25, 6, 17, 25, 18, 23, 12, 21, 13, 29, 24, 33, 9, 20, 24, 17, 10, 22, 38, 22, 8, 31, 29, 25, 28, 28, 25, 13, 15, 22, 26, 11, 23, 15, 12, 17, 13, 12, 21, 14, 21, 22, 11, 12, 19, 11, 25, 24 ]), (u'Jeremiah', u'Jer', u'Jer', [ 19, 37, 25, 31, 31, 30, 34, 23, 25, 25, 23, 17, 27, 22, 21, 21, 27, 23, 15, 18, 14, 30, 40, 10, 38, 24, 22, 17, 32, 24, 40, 44, 26, 22, 19, 32, 21, 28, 18, 16, 18, 22, 13, 30, 5, 28, 7, 47, 39, 46, 64, 34 ]), (u'Lamentations', u'Lam', u'Lam', [22, 22, 66, 22, 22]), (u'Ezekiel', u'Ezek', u'Ezek', [ 28, 10, 27, 17, 17, 14, 27, 18, 11, 22, 25, 28, 23, 23, 8, 63, 24, 32, 14, 44, 37, 31, 49, 27, 17, 21, 36, 26, 21, 26, 18, 32, 33, 31, 15, 38, 28, 23, 29, 49, 26, 20, 27, 31, 25, 24, 23, 35 ]), (u'Daniel', u'Dan', u'Dan', [21, 49, 33, 34, 30, 29, 28, 27, 27, 21, 45, 13]), (u'Hosea', u'Hos', u'Hos', [9, 25, 5, 19, 15, 11, 16, 14, 17, 15, 11, 15, 15, 10]), (u'Joel', u'Joel', u'Joel', [20, 27, 5, 21]), (u'Amos', u'Amos', u'Amos', [15, 16, 15, 13, 27, 14, 17, 14, 15]), (u'Obadiah', u'Obad', u'Obad', [21]), (u'Jonah', u'Jonah', u'Jonah', [16, 11, 10, 11]), (u'Micah', u'Mic', u'Mic', [16, 13, 12, 14, 14, 16, 20]), (u'Nahum', u'Nah', u'Nah', [14, 14, 19]), (u'Habakkuk', u'Hab', u'Hab', [17, 20, 19]), (u'Zephaniah', u'Zeph', u'Zeph', [18, 15, 20]), (u'Haggai', u'Hag', u'Hag', [15, 23]), (u'Zechariah', u'Zech', u'Zech', [17, 17, 10, 14, 11, 15, 14, 23, 17, 12, 17, 14, 9, 21]), (u'Malachi', u'Mal', u'Mal', [14, 17, 24]), ], u'nt': [ (u'Matthew', u'Matt', u'Matt', [ 25, 23, 17, 25, 48, 34, 29, 34, 38, 42, 30, 50, 58, 36, 39, 28, 27, 35, 30, 34, 46, 46, 39, 51, 46, 75, 66, 20 ]), (u'Mark', u'Mark', u'Mark', [45, 28, 35, 41, 43, 56, 37, 38, 50, 52, 33, 44, 37, 72, 47, 20]), (u'Luke', u'Luke', u'Luke', [80, 52, 38, 44, 39, 49, 50, 56, 62, 42, 54, 59, 35, 35, 32, 31, 37, 43, 48, 47, 38, 71, 56, 53]), (u'John', u'John', u'John', [51, 25, 36, 54, 47, 71, 53, 59, 41, 42, 57, 50, 38, 31, 27, 33, 26, 40, 42, 31, 25]), (u'Acts', u'Acts', u'Acts', [ 26, 47, 26, 37, 42, 15, 60, 40, 43, 48, 30, 25, 52, 28, 41, 40, 34, 28, 40, 38, 40, 30, 35, 27, 27, 32, 44, 31 ]), (u'Romans', u'Rom', u'Rom', [32, 29, 31, 25, 21, 23, 25, 39, 33, 21, 36, 21, 14, 23, 33, 27]), (u'I Corinthians', u'1Cor', u'1Cor', [31, 16, 23, 21, 13, 20, 40, 13, 27, 33, 34, 31, 13, 40, 58, 24]), (u'II Corinthians', u'2Cor', u'2Cor', [24, 17, 18, 18, 21, 18, 16, 24, 15, 18, 33, 21, 13]), (u'Galatians', u'Gal', u'Gal', [24, 21, 29, 31, 26, 18]), (u'Ephesians', u'Eph', u'Eph', [23, 22, 21, 32, 33, 24]), (u'Philippians', u'Phil', u'Phil', [30, 30, 21, 23]), (u'Colossians', u'Col', u'Col', [29, 23, 25, 18]), (u'I Thessalonians', u'1Thess', u'1Thess', [10, 20, 13, 18, 28]), (u'II Thessalonians', u'2Thess', u'2Thess', [12, 17, 18]), (u'I Timothy', u'1Tim', u'1Tim', [20, 15, 16, 16, 25, 21]), (u'II Timothy', u'2Tim', u'2Tim', [18, 26, 17, 22]), (u'Titus', u'Titus', u'Titus', [16, 15, 15]), (u'Philemon', u'Phlm', u'Phlm', [25]), (u'Hebrews', u'Heb', u'Heb', [14, 18, 19, 16, 14, 20, 28, 13, 28, 39, 40, 29, 25]), (u'James', u'Jas', u'Jas', [27, 26, 18, 17, 20]), (u'I Peter', u'1Pet', u'1Pet', [25, 25, 22, 19, 14]), (u'II Peter', u'2Pet', u'2Pet', [21, 22, 18]), (u'I John', u'1John', u'1John', [10, 29, 24, 21, 21]), (u'II John', u'2John', u'2John', [13]), (u'III John', u'3John', u'3John', [15]), (u'Jude', u'Jude', u'Jude', [25]), (u'Revelation of John', u'Rev', u'Rev', [20, 29, 22, 11, 14, 17, 17, 13, 21, 11, 19, 18, 18, 20, 8, 21, 18, 24, 21, 15, 27, 21]), ], }, u'kjva': { u'ot': [ (u'Genesis', u'Gen', u'Gen', [ 31, 25, 24, 26, 32, 22, 24, 22, 29, 32, 32, 20, 18, 24, 21, 16, 27, 33, 38, 18, 34, 24, 20, 67, 34, 35, 46, 22, 35, 43, 55, 32, 20, 31, 29, 43, 36, 30, 23, 23, 57, 38, 34, 34, 28, 34, 31, 22, 33, 26 ]), (u'Exodus', u'Exod', u'Exod', [ 22, 25, 22, 31, 23, 30, 25, 32, 35, 29, 10, 51, 22, 31, 27, 36, 16, 27, 25, 26, 36, 31, 33, 18, 40, 37, 21, 43, 46, 38, 18, 35, 23, 35, 35, 38, 29, 31, 43, 38 ]), (u'Leviticus', u'Lev', u'Lev', [ 17, 16, 17, 35, 19, 30, 38, 36, 24, 20, 47, 8, 59, 57, 33, 34, 16, 30, 37, 27, 24, 33, 44, 23, 55, 46, 34 ]), (u'Numbers', u'Num', u'Num', [ 54, 34, 51, 49, 31, 27, 89, 26, 23, 36, 35, 16, 33, 45, 41, 50, 13, 32, 22, 29, 35, 41, 30, 25, 18, 65, 23, 31, 40, 16, 54, 42, 56, 29, 34, 13 ]), (u'Deuteronomy', u'Deut', u'Deut', [ 46, 37, 29, 49, 33, 25, 26, 20, 29, 22, 32, 32, 18, 29, 23, 22, 20, 22, 21, 20, 23, 30, 25, 22, 19, 19, 26, 68, 29, 20, 30, 52, 29, 12 ]), (u'Joshua', u'Josh', u'Josh', [18, 24, 17, 24, 15, 27, 26, 35, 27, 43, 23, 24, 33, 15, 63, 10, 18, 28, 51, 9, 45, 34, 16, 33]), (u'Judges', u'Judg', u'Judg', [36, 23, 31, 24, 31, 40, 25, 35, 57, 18, 40, 15, 25, 20, 20, 31, 13, 31, 30, 48, 25]), (u'Ruth', u'Ruth', u'Ruth', [22, 23, 18, 22]), (u'I Samuel', u'1Sam', u'1Sam', [ 28, 36, 21, 22, 12, 21, 17, 22, 27, 27, 15, 25, 23, 52, 35, 23, 58, 30, 24, 42, 15, 23, 29, 22, 44, 25, 12, 25, 11, 31, 13 ]), (u'II Samuel', u'2Sam', u'2Sam', [27, 32, 39, 12, 25, 23, 29, 18, 13, 19, 27, 31, 39, 33, 37, 23, 29, 33, 43, 26, 22, 51, 39, 25]), (u'I Kings', u'1Kgs', u'1Kgs', [53, 46, 28, 34, 18, 38, 51, 66, 28, 29, 43, 33, 34, 31, 34, 34, 24, 46, 21, 43, 29, 53]), (u'II Kings', u'2Kgs', u'2Kgs', [18, 25, 27, 44, 27, 33, 20, 29, 37, 36, 21, 21, 25, 29, 38, 20, 41, 37, 37, 21, 26, 20, 37, 20, 30]), (u'I Chronicles', u'1Chr', u'1Chr', [ 54, 55, 24, 43, 26, 81, 40, 40, 44, 14, 47, 40, 14, 17, 29, 43, 27, 17, 19, 8, 30, 19, 32, 31, 31, 32, 34, 21, 30 ]), (u'II Chronicles', u'2Chr', u'2Chr', [ 17, 18, 17, 22, 14, 42, 22, 18, 31, 19, 23, 16, 22, 15, 19, 14, 19, 34, 11, 37, 20, 12, 21, 27, 28, 23, 9, 27, 36, 27, 21, 33, 25, 33, 27, 23 ]), (u'Ezra', u'Ezra', u'Ezra', [11, 70, 13, 24, 17, 22, 28, 36, 15, 44]), (u'Nehemiah', u'Neh', u'Neh', [11, 20, 32, 23, 19, 19, 73, 18, 38, 39, 36, 47, 31]), (u'Esther', u'Esth', u'Esth', [22, 23, 15, 17, 14, 14, 10, 17, 32, 3]), (u'Job', u'Job', u'Job', [ 22, 13, 26, 21, 27, 30, 21, 22, 35, 22, 20, 25, 28, 22, 35, 22, 16, 21, 29, 29, 34, 30, 17, 25, 6, 14, 23, 28, 25, 31, 40, 22, 33, 37, 16, 33, 24, 41, 30, 24, 34, 17 ]), (u'Psalms', u'Ps', u'Ps', [ 6, 12, 8, 8, 12, 10, 17, 9, 20, 18, 7, 8, 6, 7, 5, 11, 15, 50, 14, 9, 13, 31, 6, 10, 22, 12, 14, 9, 11, 12, 24, 11, 22, 22, 28, 12, 40, 22, 13, 17, 13, 11, 5, 26, 17, 11, 9, 14, 20, 23, 19, 9, 6, 7, 23, 13, 11, 11, 17, 12, 8, 12, 11, 10, 13, 20, 7, 35, 36, 5, 24, 20, 28, 23, 10, 12, 20, 72, 13, 19, 16, 8, 18, 12, 13, 17, 7, 18, 52, 17, 16, 15, 5, 23, 11, 13, 12, 9, 9, 5, 8, 28, 22, 35, 45, 48, 43, 13, 31, 7, 10, 10, 9, 8, 18, 19, 2, 29, 176, 7, 8, 9, 4, 8, 5, 6, 5, 6, 8, 8, 3, 18, 3, 3, 21, 26, 9, 8, 24, 13, 10, 7, 12, 15, 21, 10, 20, 14, 9, 6 ]), (u'Proverbs', u'Prov', u'Prov', [ 33, 22, 35, 27, 23, 35, 27, 36, 18, 32, 31, 28, 25, 35, 33, 33, 28, 24, 29, 30, 31, 29, 35, 34, 28, 28, 27, 28, 27, 33, 31 ]), (u'Ecclesiastes', u'Eccl', u'Eccl', [18, 26, 22, 16, 20, 12, 29, 17, 18, 20, 10, 14]), (u'Song of Solomon', u'Song', u'Song', [17, 17, 11, 16, 16, 13, 13, 14]), (u'Isaiah', u'Isa', u'Isa', [ 31, 22, 26, 6, 30, 13, 25, 22, 21, 34, 16, 6, 22, 32, 9, 14, 14, 7, 25, 6, 17, 25, 18, 23, 12, 21, 13, 29, 24, 33, 9, 20, 24, 17, 10, 22, 38, 22, 8, 31, 29, 25, 28, 28, 25, 13, 15, 22, 26, 11, 23, 15, 12, 17, 13, 12, 21, 14, 21, 22, 11, 12, 19, 12, 25, 24 ]), (u'Jeremiah', u'Jer', u'Jer', [ 19, 37, 25, 31, 31, 30, 34, 22, 26, 25, 23, 17, 27, 22, 21, 21, 27, 23, 15, 18, 14, 30, 40, 10, 38, 24, 22, 17, 32, 24, 40, 44, 26, 22, 19, 32, 21, 28, 18, 16, 18, 22, 13, 30, 5, 28, 7, 47, 39, 46, 64, 34 ]), (u'Lamentations', u'Lam', u'Lam', [22, 22, 66, 22, 22]), (u'Ezekiel', u'Ezek', u'Ezek', [ 28, 10, 27, 17, 17, 14, 27, 18, 11, 22, 25, 28, 23, 23, 8, 63, 24, 32, 14, 49, 32, 31, 49, 27, 17, 21, 36, 26, 21, 26, 18, 32, 33, 31, 15, 38, 28, 23, 29, 49, 26, 20, 27, 31, 25, 24, 23, 35 ]), (u'Daniel', u'Dan', u'Dan', [21, 49, 30, 37, 31, 28, 28, 27, 27, 21, 45, 13]), (u'Hosea', u'Hos', u'Hos', [11, 23, 5, 19, 15, 11, 16, 14, 17, 15, 12, 14, 16, 9]), (u'Joel', u'Joel', u'Joel', [20, 32, 21]), (u'Amos', u'Amos', u'Amos', [15, 16, 15, 13, 27, 14, 17, 14, 15]), (u'Obadiah', u'Obad', u'Obad', [21]), (u'Jonah', u'Jonah', u'Jonah', [17, 10, 10, 11]), (u'Micah', u'Mic', u'Mic', [16, 13, 12, 13, 15, 16, 20]), (u'Nahum', u'Nah', u'Nah', [15, 13, 19]), (u'Habakkuk', u'Hab', u'Hab', [17, 20, 19]), (u'Zephaniah', u'Zeph', u'Zeph', [18, 15, 20]), (u'Haggai', u'Hag', u'Hag', [15, 23]), (u'Zechariah', u'Zech', u'Zech', [21, 13, 10, 14, 11, 15, 14, 23, 17, 12, 17, 14, 9, 21]), (u'Malachi', u'Mal', u'Mal', [14, 17, 18, 6]), (u'I Esdras', u'1Esd', u'1Esd', [58, 30, 24, 63, 73, 34, 15, 96, 55]), (u'II Esdras', u'2Esd', u'2Esd', [40, 48, 36, 52, 56, 59, 70, 63, 47, 59, 46, 51, 58, 48, 63, 78]), (u'Tobit', u'Tob', u'Tob', [22, 14, 17, 21, 22, 17, 18, 21, 6, 12, 19, 22, 18, 15]), (u'Judith', u'Jdt', u'Jdt', [16, 28, 10, 15, 24, 21, 32, 36, 14, 23, 23, 20, 20, 19, 13, 25]), (u'Additions to Esther', u'AddEsth', u'AddEsth', [1, 1, 1, 1, 1, 1, 1, 1, 1, 13, 12, 6, 18, 19, 16, 24]), (u'Wisdom', u'Wis', u'Wis', [16, 24, 19, 20, 23, 25, 30, 21, 18, 21, 26, 27, 19, 31, 19, 29, 21, 25, 22]), (u'Sirach', u'Sir', u'Sir', [ 30, 18, 31, 31, 15, 37, 36, 19, 18, 31, 34, 18, 26, 27, 20, 30, 32, 33, 30, 32, 28, 27, 28, 34, 26, 29, 30, 26, 28, 25, 31, 24, 31, 26, 20, 26, 31, 34, 35, 30, 24, 25, 33, 22, 26, 20, 25, 25, 16, 29, 30 ]), (u'Baruch', u'Bar', u'Bar', [22, 35, 37, 37, 9, 73]), (u'Prayer of Azariah', u'PrAzar', u'PrAzar', [68]), (u'Susanna', u'Sus', u'Sus', [64]), (u'Bel and the Dragon', u'Bel', u'Bel', [42]), (u'Prayer of Manasses', u'PrMan', u'PrMan', [1]), (u'I Maccabees', u'1Macc', u'1Macc', [64, 70, 60, 61, 68, 63, 50, 32, 73, 89, 74, 53, 53, 49, 41, 24]), (u'II Maccabees', u'2Macc', u'2Macc', [36, 32, 40, 50, 27, 31, 42, 36, 29, 38, 38, 45, 26, 46, 39]), ], u'nt': [ (u'Matthew', u'Matt', u'Matt', [ 25, 23, 17, 25, 48, 34, 29, 34, 38, 42, 30, 50, 58, 36, 39, 28, 27, 35, 30, 34, 46, 46, 39, 51, 46, 75, 66, 20 ]), (u'Mark', u'Mark', u'Mark', [45, 28, 35, 41, 43, 56, 37, 38, 50, 52, 33, 44, 37, 72, 47, 20]), (u'Luke', u'Luke', u'Luke', [80, 52, 38, 44, 39, 49, 50, 56, 62, 42, 54, 59, 35, 35, 32, 31, 37, 43, 48, 47, 38, 71, 56, 53]), (u'John', u'John', u'John', [51, 25, 36, 54, 47, 71, 53, 59, 41, 42, 57, 50, 38, 31, 27, 33, 26, 40, 42, 31, 25]), (u'Acts', u'Acts', u'Acts', [ 26, 47, 26, 37, 42, 15, 60, 40, 43, 48, 30, 25, 52, 28, 41, 40, 34, 28, 41, 38, 40, 30, 35, 27, 27, 32, 44, 31 ]), (u'Romans', u'Rom', u'Rom', [32, 29, 31, 25, 21, 23, 25, 39, 33, 21, 36, 21, 14, 23, 33, 27]), (u'I Corinthians', u'1Cor', u'1Cor', [31, 16, 23, 21, 13, 20, 40, 13, 27, 33, 34, 31, 13, 40, 58, 24]), (u'II Corinthians', u'2Cor', u'2Cor', [24, 17, 18, 18, 21, 18, 16, 24, 15, 18, 33, 21, 14]), (u'Galatians', u'Gal', u'Gal', [24, 21, 29, 31, 26, 18]), (u'Ephesians', u'Eph', u'Eph', [23, 22, 21, 32, 33, 24]), (u'Philippians', u'Phil', u'Phil', [30, 30, 21, 23]), (u'Colossians', u'Col', u'Col', [29, 23, 25, 18]), (u'I Thessalonians', u'1Thess', u'1Thess', [10, 20, 13, 18, 28]), (u'II Thessalonians', u'2Thess', u'2Thess', [12, 17, 18]), (u'I Timothy', u'1Tim', u'1Tim', [20, 15, 16, 16, 25, 21]), (u'II Timothy', u'2Tim', u'2Tim', [18, 26, 17, 22]), (u'Titus', u'Titus', u'Titus', [16, 15, 15]), (u'Philemon', u'Phlm', u'Phlm', [25]), (u'Hebrews', u'Heb', u'Heb', [14, 18, 19, 16, 14, 20, 28, 13, 28, 39, 40, 29, 25]), (u'James', u'Jas', u'Jas', [27, 26, 18, 17, 20]), (u'I Peter', u'1Pet', u'1Pet', [25, 25, 22, 19, 14]), (u'II Peter', u'2Pet', u'2Pet', [21, 22, 18]), (u'I John', u'1John', u'1John', [10, 29, 24, 21, 21]), (u'II John', u'2John', u'2John', [13]), (u'III John', u'3John', u'3John', [14]), (u'Jude', u'Jude', u'Jude', [25]), (u'Revelation of John', u'Rev', u'Rev', [20, 29, 22, 11, 14, 17, 17, 13, 21, 11, 19, 17, 18, 20, 8, 21, 18, 24, 21, 15, 27, 21]), ], }, u'leningrad': { u'ot': [ (u'Genesis', u'Gen', u'Gen', [ 31, 25, 24, 26, 32, 22, 24, 22, 29, 32, 32, 20, 18, 24, 21, 16, 27, 33, 38, 18, 34, 24, 20, 67, 34, 35, 46, 22, 35, 43, 54, 33, 20, 31, 29, 43, 36, 30, 23, 23, 57, 38, 34, 34, 28, 34, 31, 22, 33, 26 ]), (u'Exodus', u'Exod', u'Exod', [ 22, 25, 22, 31, 23, 30, 29, 28, 35, 29, 10, 51, 22, 31, 27, 36, 16, 27, 25, 26, 37, 30, 33, 18, 40, 37, 21, 43, 46, 38, 18, 35, 23, 35, 35, 38, 29, 31, 43, 38 ]), (u'Leviticus', u'Lev', u'Lev', [ 17, 16, 17, 35, 26, 23, 38, 36, 24, 20, 47, 8, 59, 57, 33, 34, 16, 30, 37, 27, 24, 33, 44, 23, 55, 46, 34 ]), (u'Numbers', u'Num', u'Num', [ 54, 34, 51, 49, 31, 27, 89, 26, 23, 36, 35, 16, 33, 45, 41, 35, 28, 32, 22, 29, 35, 41, 30, 25, 19, 65, 23, 31, 39, 17, 54, 42, 56, 29, 34, 13 ]), (u'Deuteronomy', u'Deut', u'Deut', [ 46, 37, 29, 49, 33, 25, 26, 20, 29, 22, 32, 31, 19, 29, 23, 22, 20, 22, 21, 20, 23, 29, 26, 22, 19, 19, 26, 69, 28, 20, 30, 52, 29, 12 ]), (u'Joshua', u'Josh', u'Josh', [18, 24, 17, 24, 15, 27, 26, 35, 27, 43, 23, 24, 33, 15, 63, 10, 18, 28, 51, 9, 45, 34, 16, 33]), (u'Judges', u'Judg', u'Judg', [36, 23, 31, 24, 31, 40, 25, 35, 57, 18, 40, 15, 25, 20, 20, 31, 13, 31, 30, 48, 25]), (u'I Samuel', u'1Sam', u'1Sam', [ 28, 36, 21, 22, 12, 21, 17, 22, 27, 27, 15, 25, 23, 52, 35, 23, 58, 30, 24, 42, 16, 23, 28, 23, 44, 25, 12, 25, 11, 31, 13 ]), (u'II Samuel', u'2Sam', u'2Sam', [27, 32, 39, 12, 25, 23, 29, 18, 13, 19, 27, 31, 39, 33, 37, 23, 29, 32, 44, 26, 22, 51, 39, 25]), (u'I Kings', u'1Kgs', u'1Kgs', [53, 46, 28, 20, 32, 38, 51, 66, 28, 29, 43, 33, 34, 31, 34, 34, 24, 46, 21, 43, 29, 54]), (u'II Kings', u'2Kgs', u'2Kgs', [18, 25, 27, 44, 27, 33, 20, 29, 37, 36, 20, 22, 25, 29, 38, 20, 41, 37, 37, 21, 26, 20, 37, 20, 30]), (u'Isaiah', u'Isa', u'Isa', [ 31, 22, 26, 6, 30, 13, 25, 23, 20, 34, 16, 6, 22, 32, 9, 14, 14, 7, 25, 6, 17, 25, 18, 23, 12, 21, 13, 29, 24, 33, 9, 20, 24, 17, 10, 22, 38, 22, 8, 31, 29, 25, 28, 28, 25, 13, 15, 22, 26, 11, 23, 15, 12, 17, 13, 12, 21, 14, 21, 22, 11, 12, 19, 11, 25, 24 ]), (u'Jeremiah', u'Jer', u'Jer', [ 19, 37, 25, 31, 31, 30, 34, 23, 25, 25, 23, 17, 27, 22, 21, 21, 27, 23, 15, 18, 14, 30, 40, 10, 38, 24, 22, 17, 32, 24, 40, 44, 26, 22, 19, 32, 21, 28, 18, 16, 18, 22, 13, 30, 5, 28, 7, 47, 39, 46, 64, 34 ]), (u'Ezekiel', u'Ezek', u'Ezek', [ 28, 10, 27, 17, 17, 14, 27, 18, 11, 22, 25, 28, 23, 23, 8, 63, 24, 32, 14, 44, 37, 31, 49, 27, 17, 21, 36, 26, 21, 26, 18, 32, 33, 31, 15, 38, 28, 23, 29, 49, 26, 20, 27, 31, 25, 24, 23, 35 ]), (u'Hosea', u'Hos', u'Hos', [9, 25, 5, 19, 15, 11, 16, 14, 17, 15, 11, 15, 15, 10]), (u'Joel', u'Joel', u'Joel', [20, 27, 5, 21]), (u'Amos', u'Amos', u'Amos', [15, 16, 15, 13, 27, 14, 17, 14, 15]), (u'Obadiah', u'Obad', u'Obad', [21]), (u'Jonah', u'Jonah', u'Jonah', [16, 11, 10, 11]), (u'Micah', u'Mic', u'Mic', [16, 13, 12, 14, 14, 16, 20]), (u'Nahum', u'Nah', u'Nah', [14, 14, 19]), (u'Habakkuk', u'Hab', u'Hab', [17, 20, 19]), (u'Zephaniah', u'Zeph', u'Zeph', [18, 15, 20]), (u'Haggai', u'Hag', u'Hag', [15, 23]), (u'Zechariah', u'Zech', u'Zech', [17, 17, 10, 14, 11, 15, 14, 23, 17, 12, 17, 14, 9, 21]), (u'Malachi', u'Mal', u'Mal', [14, 17, 24]), (u'I Chronicles', u'1Chr', u'1Chr', [ 54, 55, 24, 43, 41, 66, 40, 40, 44, 14, 47, 41, 14, 17, 29, 43, 27, 17, 19, 8, 30, 19, 32, 31, 31, 32, 34, 21, 30 ]), (u'II Chronicles', u'2Chr', u'2Chr', [ 18, 17, 17, 22, 14, 42, 22, 18, 31, 19, 23, 16, 23, 14, 19, 14, 19, 34, 11, 37, 20, 12, 21, 27, 28, 23, 9, 27, 36, 27, 21, 33, 25, 33, 27, 23 ]), (u'Psalms', u'Ps', u'Ps', [ 6, 12, 9, 9, 13, 11, 18, 10, 21, 18, 7, 9, 6, 7, 5, 11, 15, 51, 15, 10, 14, 32, 6, 10, 22, 12, 14, 9, 11, 13, 25, 11, 22, 23, 28, 13, 40, 23, 14, 18, 14, 12, 5, 27, 18, 12, 10, 15, 21, 23, 21, 11, 7, 9, 24, 14, 12, 12, 18, 14, 9, 13, 12, 11, 14, 20, 8, 36, 37, 6, 24, 20, 28, 23, 11, 13, 21, 72, 13, 20, 17, 8, 19, 13, 14, 17, 7, 19, 53, 17, 16, 16, 5, 23, 11, 13, 12, 9, 9, 5, 8, 29, 22, 35, 45, 48, 43, 14, 31, 7, 10, 10, 9, 8, 18, 19, 2, 29, 176, 7, 8, 9, 4, 8, 5, 6, 5, 6, 8, 8, 3, 18, 3, 3, 21, 26, 9, 8, 24, 14, 10, 8, 12, 15, 21, 10, 20, 14, 9, 6 ]), (u'Job', u'Job', u'Job', [ 22, 13, 26, 21, 27, 30, 21, 22, 35, 22, 20, 25, 28, 22, 35, 22, 16, 21, 29, 29, 34, 30, 17, 25, 6, 14, 23, 28, 25, 31, 40, 22, 33, 37, 16, 33, 24, 41, 30, 32, 26, 17 ]), (u'Proverbs', u'Prov', u'Prov', [ 33, 22, 35, 27, 23, 35, 27, 36, 18, 32, 31, 28, 25, 35, 33, 33, 28, 24, 29, 30, 31, 29, 35, 34, 28, 28, 27, 28, 27, 33, 31 ]), (u'Ruth', u'Ruth', u'Ruth', [22, 23, 18, 22]), (u'Song of Solomon', u'Song', u'Song', [17, 17, 11, 16, 16, 12, 14, 14]), (u'Ecclesiastes', u'Eccl', u'Eccl', [18, 26, 22, 17, 19, 12, 29, 17, 18, 20, 10, 14]), (u'Lamentations', u'Lam', u'Lam', [22, 22, 66, 22, 22]), (u'Esther', u'Esth', u'Esth', [22, 23, 15, 17, 14, 14, 10, 17, 32, 3]), (u'Daniel', u'Dan', u'Dan', [21, 49, 33, 34, 30, 29, 28, 27, 27, 21, 45, 13]), (u'Ezra', u'Ezra', u'Ezra', [11, 70, 13, 24, 17, 22, 28, 36, 15, 44]), (u'Nehemiah', u'Neh', u'Neh', [11, 20, 38, 17, 19, 19, 72, 18, 37, 40, 36, 47, 31]), ], u'nt': [], }, u'luther': { u'ot': [ (u'Genesis', u'Gen', u'Gen', [ 31, 25, 24, 26, 32, 22, 24, 22, 29, 32, 32, 20, 18, 24, 21, 16, 27, 33, 38, 18, 34, 24, 20, 67, 34, 35, 46, 22, 35, 43, 54, 33, 20, 31, 29, 43, 36, 30, 23, 23, 57, 38, 34, 34, 28, 34, 31, 22, 33, 26 ]), (u'Exodus', u'Exod', u'Exod', [ 22, 25, 22, 31, 23, 30, 29, 28, 35, 29, 10, 51, 22, 31, 27, 36, 16, 27, 25, 26, 37, 30, 33, 18, 40, 37, 21, 43, 46, 38, 18, 35, 23, 35, 35, 38, 29, 31, 43, 38 ]), (u'Leviticus', u'Lev', u'Lev', [ 17, 16, 17, 35, 26, 23, 38, 36, 24, 20, 47, 8, 59, 57, 33, 34, 16, 30, 37, 27, 24, 33, 44, 23, 55, 46, 34 ]), (u'Numbers', u'Num', u'Num', [ 54, 34, 51, 49, 31, 27, 89, 26, 23, 36, 35, 16, 33, 45, 41, 35, 28, 32, 22, 29, 35, 41, 30, 25, 19, 65, 23, 31, 39, 17, 54, 42, 56, 29, 34, 13 ]), (u'Deuteronomy', u'Deut', u'Deut', [ 46, 37, 29, 49, 33, 25, 26, 20, 29, 22, 32, 31, 19, 29, 23, 22, 20, 22, 21, 20, 23, 29, 26, 22, 19, 19, 26, 69, 28, 20, 30, 52, 29, 12 ]), (u'Joshua', u'Josh', u'Josh', [18, 24, 17, 24, 15, 27, 26, 35, 27, 43, 23, 24, 33, 15, 63, 10, 18, 28, 51, 9, 45, 34, 16, 33]), (u'Judges', u'Judg', u'Judg', [36, 23, 31, 24, 31, 40, 25, 35, 57, 18, 40, 15, 25, 20, 20, 31, 13, 31, 30, 48, 25]), (u'Ruth', u'Ruth', u'Ruth', [22, 23, 18, 22]), (u'I Samuel', u'1Sam', u'1Sam', [ 28, 36, 21, 22, 12, 21, 17, 22, 27, 27, 15, 25, 23, 52, 35, 23, 58, 30, 24, 42, 16, 23, 28, 23, 44, 25, 12, 25, 11, 31, 13 ]), (u'II Samuel', u'2Sam', u'2Sam', [27, 32, 39, 12, 25, 23, 29, 18, 13, 19, 27, 31, 39, 33, 37, 23, 29, 32, 44, 26, 22, 51, 39, 25]), (u'I Kings', u'1Kgs', u'1Kgs', [53, 46, 28, 20, 32, 38, 51, 66, 28, 29, 43, 33, 34, 31, 34, 34, 24, 46, 21, 43, 29, 54]), (u'II Kings', u'2Kgs', u'2Kgs', [18, 25, 27, 44, 27, 33, 20, 29, 37, 36, 20, 22, 25, 29, 39, 20, 41, 37, 37, 21, 26, 20, 37, 20, 30]), (u'I Chronicles', u'1Chr', u'1Chr', [ 54, 55, 24, 43, 41, 66, 40, 40, 44, 14, 47, 41, 14, 17, 29, 43, 27, 17, 19, 8, 30, 19, 32, 31, 31, 32, 34, 21, 30 ]), (u'II Chronicles', u'2Chr', u'2Chr', [ 18, 17, 17, 22, 14, 42, 22, 18, 31, 19, 23, 16, 23, 14, 19, 14, 19, 34, 11, 37, 20, 12, 21, 27, 28, 23, 9, 27, 36, 27, 21, 33, 25, 33, 27, 23 ]), (u'Ezra', u'Ezra', u'Ezra', [11, 70, 13, 24, 17, 22, 28, 36, 15, 44]), (u'Nehemiah', u'Neh', u'Neh', [11, 20, 38, 17, 19, 19, 73, 18, 37, 40, 36, 47, 31]), (u'Esther', u'Esth', u'Esth', [22, 23, 15, 17, 14, 14, 10, 17, 32, 3]), (u'Job', u'Job', u'Job', [ 22, 13, 26, 21, 27, 30, 21, 22, 35, 22, 20, 25, 28, 22, 35, 22, 16, 21, 29, 29, 34, 30, 17, 25, 6, 14, 23, 28, 25, 31, 40, 22, 33, 37, 16, 33, 24, 41, 30, 32, 26, 17 ]), (u'Psalms', u'Ps', u'Ps', [ 6, 12, 9, 9, 13, 11, 18, 10, 21, 18, 7, 9, 6, 7, 5, 11, 15, 51, 15, 10, 14, 32, 6, 10, 22, 12, 14, 9, 11, 13, 25, 11, 22, 23, 28, 13, 40, 23, 14, 18, 14, 12, 5, 27, 18, 12, 10, 15, 21, 23, 21, 11, 7, 9, 24, 14, 12, 12, 18, 14, 9, 13, 12, 11, 14, 20, 8, 36, 37, 6, 24, 20, 28, 23, 11, 13, 21, 72, 13, 20, 17, 8, 19, 13, 14, 17, 7, 19, 53, 17, 16, 16, 5, 23, 11, 13, 12, 9, 9, 5, 8, 29, 22, 35, 45, 48, 43, 14, 31, 7, 10, 10, 9, 8, 18, 19, 2, 29, 176, 7, 8, 9, 4, 8, 5, 6, 5, 6, 8, 8, 3, 18, 3, 3, 21, 26, 9, 8, 24, 14, 10, 8, 12, 15, 21, 10, 20, 14, 9, 6 ]), (u'Proverbs', u'Prov', u'Prov', [ 33, 22, 35, 27, 23, 35, 27, 36, 18, 32, 31, 28, 25, 35, 33, 33, 28, 24, 29, 30, 31, 29, 35, 34, 28, 28, 27, 28, 27, 33, 31 ]), (u'Ecclesiastes', u'Eccl', u'Eccl', [18, 26, 22, 17, 19, 12, 29, 17, 18, 20, 10, 14]), (u'Song of Solomon', u'Song', u'Song', [17, 17, 11, 16, 16, 12, 14, 14]), (u'Isaiah', u'Isa', u'Isa', [ 31, 22, 26, 6, 30, 13, 25, 23, 20, 34, 16, 6, 22, 32, 9, 14, 14, 7, 25, 6, 17, 25, 18, 23, 12, 21, 13, 29, 24, 33, 9, 20, 24, 17, 10, 22, 38, 22, 8, 31, 29, 25, 28, 28, 25, 13, 15, 22, 26, 11, 23, 15, 12, 17, 13, 12, 21, 14, 21, 22, 11, 12, 19, 11, 25, 24 ]), (u'Jeremiah', u'Jer', u'Jer', [ 19, 37, 25, 31, 31, 30, 34, 23, 25, 25, 23, 17, 27, 22, 21, 21, 27, 23, 15, 18, 14, 30, 40, 10, 38, 24, 22, 17, 32, 24, 40, 44, 26, 22, 19, 32, 21, 28, 18, 16, 18, 22, 13, 30, 5, 28, 7, 47, 39, 46, 64, 34 ]), (u'Lamentations', u'Lam', u'Lam', [22, 22, 66, 22, 22]), (u'Ezekiel', u'Ezek', u'Ezek', [ 28, 10, 27, 17, 17, 14, 27, 18, 11, 22, 25, 28, 23, 23, 8, 63, 24, 32, 14, 44, 37, 31, 49, 27, 17, 21, 36, 26, 21, 26, 18, 32, 33, 31, 15, 38, 28, 23, 29, 49, 26, 20, 27, 31, 25, 24, 23, 35 ]), (u'Daniel', u'Dan', u'Dan', [21, 49, 33, 34, 30, 29, 28, 27, 27, 21, 45, 13]), (u'Hosea', u'Hos', u'Hos', [9, 25, 5, 19, 15, 11, 16, 14, 17, 15, 11, 15, 15, 10]), (u'Joel', u'Joel', u'Joel', [20, 27, 5, 21]), (u'Amos', u'Amos', u'Amos', [15, 16, 15, 13, 27, 14, 17, 14, 15]), (u'Obadiah', u'Obad', u'Obad', [21]), (u'Jonah', u'Jonah', u'Jonah', [16, 11, 10, 11]), (u'Micah', u'Mic', u'Mic', [16, 13, 12, 14, 14, 16, 20]), (u'Nahum', u'Nah', u'Nah', [14, 14, 19]), (u'Habakkuk', u'Hab', u'Hab', [17, 20, 19]), (u'Zephaniah', u'Zeph', u'Zeph', [18, 15, 20]), (u'Haggai', u'Hag', u'Hag', [15, 23]), (u'Zechariah', u'Zech', u'Zech', [17, 17, 10, 14, 11, 15, 14, 23, 17, 12, 17, 14, 9, 21]), (u'Malachi', u'Mal', u'Mal', [14, 17, 24]), (u'Judith', u'Jdt', u'Jdt', [11, 18, 12, 14, 26, 20, 24, 28, 15, 21, 17, 21, 31, 16, 16, 31]), (u'Wisdom', u'Wis', u'Wis', [16, 25, 19, 20, 24, 27, 30, 21, 19, 21, 26, 27, 19, 31, 19, 29, 21, 25, 21]), (u'Tobit', u'Tob', u'Tob', [25, 23, 25, 22, 29, 23, 20, 23, 12, 13, 20, 22, 22, 17]), (u'Sirach', u'Sir', u'Sir', [ 38, 23, 34, 36, 18, 37, 40, 22, 25, 34, 35, 19, 32, 27, 21, 30, 31, 33, 27, 33, 31, 33, 37, 47, 34, 28, 33, 30, 35, 27, 40, 28, 32, 31, 26, 28, 34, 39, 41, 32, 29, 26, 37, 26, 32, 23, 31, 28, 20, 31, 38 ]), (u'Baruch', u'Bar', u'Bar', [22, 35, 38, 37, 9, 73]), (u'I Maccabees', u'1Macc', u'1Macc', [68, 70, 60, 61, 68, 63, 50, 32, 73, 89, 74, 54, 54, 49, 41, 24]), (u'II Maccabees', u'2Macc', u'2Macc', [36, 33, 40, 50, 27, 31, 42, 36, 29, 38, 38, 46, 26, 46, 40]), (u'Additions to Esther', u'AddEsth', u'AddEsth', [4, 8, 12, 12, 16, 9, 8]), (u'Additions to Daniel', u'AddDan', u'AddDan', [64, 41, 66]), (u'Prayer of Manasses', u'PrMan', u'PrMan', [16]), ], u'nt': [ (u'Matthew', u'Matt', u'Matt', [ 25, 23, 17, 25, 48, 34, 29, 34, 38, 42, 30, 50, 58, 36, 39, 28, 27, 35, 30, 34, 46, 46, 39, 51, 46, 75, 66, 20 ]), (u'Mark', u'Mark', u'Mark', [45, 28, 35, 41, 43, 56, 37, 38, 50, 52, 33, 44, 37, 72, 47, 20]), (u'Luke', u'Luke', u'Luke', [80, 52, 38, 44, 39, 49, 50, 56, 62, 42, 54, 59, 35, 35, 32, 31, 37, 43, 48, 47, 38, 71, 56, 53]), (u'John', u'John', u'John', [51, 25, 36, 54, 47, 71, 53, 59, 41, 42, 57, 50, 38, 31, 27, 33, 26, 40, 42, 31, 25]), (u'Acts', u'Acts', u'Acts', [ 26, 47, 26, 37, 42, 15, 60, 40, 43, 48, 30, 25, 52, 28, 41, 40, 34, 28, 40, 38, 40, 30, 35, 27, 27, 32, 44, 31 ]), (u'Romans', u'Rom', u'Rom', [32, 29, 31, 25, 21, 23, 25, 39, 33, 21, 36, 21, 14, 23, 33, 27]), (u'I Corinthians', u'1Cor', u'1Cor', [31, 16, 23, 21, 13, 20, 40, 13, 27, 33, 34, 31, 13, 40, 58, 24]), (u'II Corinthians', u'2Cor', u'2Cor', [24, 17, 18, 18, 21, 18, 16, 24, 15, 18, 33, 21, 13]), (u'Galatians', u'Gal', u'Gal', [24, 21, 29, 31, 26, 18]), (u'Ephesians', u'Eph', u'Eph', [23, 22, 21, 32, 33, 24]), (u'Philippians', u'Phil', u'Phil', [30, 30, 21, 23]), (u'Colossians', u'Col', u'Col', [29, 23, 25, 18]), (u'I Thessalonians', u'1Thess', u'1Thess', [10, 20, 13, 18, 28]), (u'II Thessalonians', u'2Thess', u'2Thess', [12, 17, 18]), (u'I Timothy', u'1Tim', u'1Tim', [20, 15, 16, 16, 25, 21]), (u'II Timothy', u'2Tim', u'2Tim', [18, 26, 17, 22]), (u'Titus', u'Titus', u'Titus', [16, 15, 15]), (u'Philemon', u'Phlm', u'Phlm', [25]), (u'I Peter', u'1Pet', u'1Pet', [25, 25, 22, 19, 14]), (u'II Peter', u'2Pet', u'2Pet', [21, 22, 18]), (u'I John', u'1John', u'1John', [10, 29, 24, 21, 21]), (u'II John', u'2John', u'2John', [13]), (u'III John', u'3John', u'3John', [15]), (u'Hebrews', u'Heb', u'Heb', [14, 18, 19, 16, 14, 20, 28, 13, 28, 39, 40, 29, 25]), (u'James', u'Jas', u'Jas', [27, 26, 18, 17, 20]), (u'Jude', u'Jude', u'Jude', [25]), (u'Revelation of John', u'Rev', u'Rev', [20, 29, 22, 11, 14, 17, 17, 13, 21, 11, 19, 18, 18, 20, 8, 21, 18, 24, 21, 15, 27, 21]), ], }, u'lxx': { u'ot': [ (u'Genesis', u'Gen', u'Gen', [ 31, 25, 25, 26, 32, 23, 24, 22, 29, 32, 32, 20, 18, 24, 21, 16, 27, 33, 39, 18, 34, 24, 20, 67, 34, 35, 46, 22, 35, 43, 55, 33, 20, 31, 29, 44, 36, 30, 23, 23, 57, 39, 34, 34, 28, 34, 31, 22, 33, 26 ]), (u'Exodus', u'Exod', u'Exod', [ 22, 25, 22, 31, 23, 30, 29, 32, 35, 29, 10, 51, 22, 31, 27, 36, 16, 27, 25, 26, 37, 31, 33, 18, 40, 37, 21, 43, 46, 38, 18, 35, 23, 35, 35, 40, 21, 29, 23, 38 ]), (u'Leviticus', u'Lev', u'Lev', [ 17, 16, 17, 35, 26, 40, 38, 36, 24, 20, 47, 8, 59, 57, 33, 34, 16, 30, 37, 27, 24, 33, 44, 23, 55, 46, 34 ]), (u'Numbers', u'Num', u'Num', [ 54, 34, 51, 49, 31, 27, 89, 26, 23, 36, 35, 16, 34, 45, 41, 50, 28, 32, 22, 29, 35, 41, 30, 25, 18, 65, 23, 31, 40, 17, 54, 42, 56, 29, 34, 13 ]), (u'Deuteronomy', u'Deut', u'Deut', [ 46, 37, 29, 49, 33, 25, 26, 20, 29, 22, 32, 32, 19, 29, 23, 22, 20, 22, 21, 20, 23, 30, 26, 24, 19, 19, 27, 69, 29, 20, 30, 52, 29, 12 ]), (u'Joshua', u'Josh', u'Josh', [18, 24, 17, 24, 16, 27, 26, 35, 33, 43, 23, 24, 33, 15, 64, 10, 18, 28, 54, 9, 49, 34, 16, 36]), (u'Judges', u'Judg', u'Judg', [36, 23, 31, 24, 32, 40, 25, 35, 57, 18, 40, 15, 25, 20, 20, 31, 13, 32, 30, 48, 25]), (u'Ruth', u'Ruth', u'Ruth', [22, 23, 18, 22]), (u'I Samuel', u'1Sam', u'1Sam', [ 28, 36, 21, 22, 12, 21, 17, 22, 27, 27, 15, 25, 23, 52, 35, 23, 58, 30, 24, 43, 16, 23, 29, 23, 44, 25, 12, 25, 11, 32, 13 ]), (u'II Samuel', u'2Sam', u'2Sam', [27, 32, 39, 12, 26, 23, 29, 18, 13, 19, 27, 31, 39, 33, 37, 23, 29, 33, 44, 26, 22, 51, 41, 25]), (u'I Kings', u'1Kgs', u'1Kgs', [53, 71, 39, 34, 32, 38, 51, 66, 28, 33, 44, 54, 34, 31, 34, 42, 24, 46, 21, 43, 43, 54]), (u'II Kings', u'2Kgs', u'2Kgs', [22, 25, 27, 44, 27, 35, 20, 29, 37, 36, 21, 22, 25, 29, 38, 20, 41, 37, 37, 21, 26, 20, 37, 20, 30]), (u'I Chronicles', u'1Chr', u'1Chr', [ 54, 55, 24, 43, 41, 81, 40, 40, 44, 14, 47, 41, 14, 17, 29, 43, 27, 17, 19, 8, 30, 19, 32, 31, 31, 32, 34, 21, 30 ]), (u'II Chronicles', u'2Chr', u'2Chr', [ 18, 18, 17, 23, 14, 42, 22, 18, 31, 19, 23, 16, 23, 15, 19, 14, 19, 34, 11, 37, 20, 12, 21, 27, 28, 23, 9, 27, 36, 27, 21, 33, 25, 33, 31, 31 ]), (u'I Esdras', u'1Esd', u'1Esd', [58, 30, 24, 63, 73, 34, 15, 96, 55]), (u'Ezra', u'Ezra', u'Ezra', [11, 70, 13, 24, 17, 22, 28, 36, 15, 44]), (u'Nehemiah', u'Neh', u'Neh', [11, 20, 37, 23, 19, 19, 73, 18, 38, 40, 36, 47, 31]), (u'Esther', u'Esth', u'Esth', [22, 23, 15, 17, 22, 14, 10, 17, 35, 13, 17, 7, 30, 19, 24, 24]), (u'Judith', u'Jdt', u'Jdt', [16, 28, 10, 15, 24, 21, 32, 36, 14, 23, 23, 20, 20, 19, 14, 25]), (u'Tobit', u'Tob', u'Tob', [22, 14, 17, 21, 23, 19, 18, 21, 6, 14, 19, 22, 19, 15]), (u'I Maccabees', u'1Macc', u'1Macc', [64, 70, 60, 61, 68, 63, 50, 32, 73, 89, 74, 53, 54, 49, 41, 24]), (u'II Maccabees', u'2Macc', u'2Macc', [36, 32, 40, 50, 27, 31, 42, 36, 29, 38, 38, 46, 26, 46, 39]), (u'III Maccabees', u'3Macc', u'3Macc', [29, 33, 30, 21, 51, 41, 23]), (u'IV Maccabees', u'4Macc', u'4Macc', [35, 24, 21, 26, 38, 35, 25, 29, 32, 21, 27, 20, 27, 20, 32, 25, 24, 24]), (u'Psalms', u'Ps', u'Ps', [ 6, 13, 9, 9, 13, 11, 18, 10, 40, 8, 9, 6, 7, 6, 11, 15, 51, 15, 10, 14, 32, 6, 10, 22, 12, 14, 9, 11, 13, 25, 11, 22, 23, 28, 13, 40, 23, 14, 18, 14, 12, 6, 27, 18, 12, 10, 15, 21, 23, 21, 11, 7, 9, 24, 14, 12, 12, 19, 14, 9, 13, 12, 11, 14, 20, 8, 36, 37, 7, 24, 20, 28, 23, 11, 13, 21, 72, 13, 20, 17, 8, 19, 13, 14, 17, 7, 19, 53, 17, 16, 16, 5, 23, 11, 13, 12, 9, 9, 5, 8, 29, 22, 36, 45, 48, 43, 14, 31, 7, 10, 10, 9, 26, 18, 19, 2, 29, 176, 7, 8, 9, 4, 8, 5, 7, 5, 6, 8, 8, 3, 18, 3, 3, 21, 26, 9, 8, 24, 15, 10, 8, 12, 15, 22, 10, 11, 20, 14, 9, 6, 7 ]), (u'Prayer of Manasses', u'PrMan', u'PrMan', [15]), (u'Proverbs', u'Prov', u'Prov', [ 35, 23, 38, 28, 23, 40, 28, 37, 25, 33, 31, 31, 27, 36, 38, 33, 30, 24, 29, 30, 31, 31, 36, 77, 31, 29, 29, 30, 49, 35, 31 ]), (u'Ecclesiastes', u'Eccl', u'Eccl', [18, 26, 22, 17, 20, 12, 30, 17, 18, 20, 10, 14]), (u'Song of Solomon', u'Song', u'Song', [17, 17, 11, 16, 17, 13, 14, 15]), (u'Job', u'Job', u'Job', [ 22, 18, 26, 21, 27, 30, 22, 22, 35, 22, 20, 25, 28, 22, 35, 23, 16, 21, 29, 29, 34, 30, 17, 25, 6, 14, 23, 28, 25, 31, 40, 22, 33, 37, 16, 34, 24, 41, 35, 32, 34, 22 ]), (u'Wisdom', u'Wis', u'Wis', [16, 25, 19, 20, 24, 27, 30, 21, 19, 21, 27, 27, 19, 31, 19, 29, 21, 25, 22]), (u'Sirach', u'Sir', u'Sir', [ 30, 18, 31, 31, 15, 37, 36, 19, 18, 31, 34, 18, 26, 27, 20, 30, 32, 33, 31, 32, 28, 27, 28, 34, 26, 29, 30, 26, 28, 40, 31, 26, 33, 31, 26, 31, 31, 35, 35, 30, 27, 27, 33, 24, 26, 20, 25, 25, 16, 29, 30 ]), (u'Psalms of Solomon', u'PssSol', u'PssSol', [8, 41, 16, 29, 22, 9, 10, 40, 20, 9, 9, 8, 12, 10, 15, 15, 51, 14]), (u'Hosea', u'Hos', u'Hos', [11, 25, 5, 19, 15, 12, 16, 14, 17, 15, 12, 15, 16, 10]), (u'Amos', u'Amos', u'Amos', [15, 16, 15, 13, 27, 15, 17, 14, 15]), (u'Micah', u'Mic', u'Mic', [16, 13, 12, 14, 15, 16, 20]), (u'Joel', u'Joel', u'Joel', [20, 32, 21, 21]), (u'Obadiah', u'Obad', u'Obad', [21]), (u'Jonah', u'Jonah', u'Jonah', [17, 11, 10, 11]), (u'Nahum', u'Nah', u'Nah', [15, 14, 19]), (u'Habakkuk', u'Hab', u'Hab', [17, 20, 19]), (u'Zephaniah', u'Zeph', u'Zeph', [18, 15, 21]), (u'Haggai', u'Hag', u'Hag', [15, 24]), (u'Zechariah', u'Zech', u'Zech', [21, 17, 11, 14, 11, 15, 14, 23, 17, 12, 17, 14, 9, 21]), (u'Malachi', u'Mal', u'Mal', [14, 17, 24, 6]), (u'Isaiah', u'Isa', u'Isa', [ 31, 22, 26, 6, 30, 13, 25, 23, 21, 34, 16, 6, 22, 32, 9, 14, 14, 7, 25, 6, 17, 25, 18, 23, 12, 21, 13, 29, 24, 33, 9, 20, 24, 17, 10, 22, 38, 22, 8, 31, 29, 25, 28, 28, 26, 13, 15, 22, 26, 11, 23, 15, 12, 17, 13, 12, 21, 14, 21, 22, 11, 12, 20, 12, 25, 24 ]), (u'Jeremiah', u'Jer', u'Jer', [ 19, 37, 25, 31, 31, 30, 34, 23, 26, 25, 23, 17, 27, 22, 21, 21, 27, 23, 15, 18, 14, 30, 42, 10, 39, 28, 46, 64, 31, 33, 47, 44, 24, 22, 19, 32, 24, 40, 44, 26, 22, 22, 32, 30, 28, 28, 16, 44, 38, 46, 63, 34 ]), (u'Baruch', u'Bar', u'Bar', [22, 35, 38, 37, 9]), (u'Lamentations', u'Lam', u'Lam', [22, 22, 66, 22, 22]), (u'Epistle of Jeremiah', u'EpJer', u'EpJer', [73]), (u'Ezekiel', u'Ezek', u'Ezek', [ 28, 13, 27, 17, 17, 14, 27, 18, 11, 22, 25, 28, 23, 23, 8, 63, 24, 32, 14, 49, 37, 31, 49, 27, 17, 21, 36, 26, 21, 26, 18, 32, 33, 31, 15, 38, 28, 23, 29, 49, 26, 20, 27, 31, 25, 24, 23, 35 ]), (u'Prayer of Azariah', u'PrAzar', u'PrAzar', [68]), (u'Susanna', u'Sus', u'Sus', [64]), (u'Daniel', u'Dan', u'Dan', [21, 49, 100, 37, 31, 29, 28, 27, 27, 21, 45, 13]), (u'Bel and the Dragon', u'Bel', u'Bel', [42]), (u'I Enoch', u'1En', u'1En', [ 9, 3, 1, 1, 10, 8, 6, 4, 11, 22, 2, 6, 10, 25, 12, 4, 8, 16, 3, 8, 10, 14, 4, 6, 7, 6, 5, 3, 2, 3, 3, 6, 4, 3, 1, 4, 6, 6, 14, 10, 9, 3, 4, 1, 6, 8, 4, 10, 4, 5, 5, 9, 7, 10, 4, 8, 3, 6, 3, 25, 13, 16, 12, 2, 12, 3, 13, 5, 30, 4, 17, 37, 8, 17, 9, 14, 9, 17, 6, 8, 10, 20, 11, 6, 10, 6, 4, 3, 77, 43, 19, 17, 14, 11, 7, 8, 10, 16, 16, 13, 9, 11, 15, 13, 2, 19, 3, 15 ]), (u'Odes', u'Odes', u'Odes', [19, 43, 10, 20, 20, 19, 45, 88, 79, 88, 55, 32, 79, 46]), ], u'nt': [ (u'Matthew', u'Matt', u'Matt', [ 25, 23, 17, 25, 48, 34, 29, 34, 38, 42, 30, 50, 58, 36, 39, 28, 27, 35, 30, 34, 46, 46, 39, 51, 46, 75, 66, 20 ]), (u'Mark', u'Mark', u'Mark', [45, 28, 35, 41, 43, 56, 37, 38, 50, 52, 33, 44, 37, 72, 47, 20]), (u'Luke', u'Luke', u'Luke', [80, 52, 38, 44, 39, 49, 50, 56, 62, 42, 54, 59, 35, 35, 32, 31, 37, 43, 48, 47, 38, 71, 56, 53]), (u'John', u'John', u'John', [52, 25, 36, 54, 47, 71, 53, 59, 41, 42, 57, 50, 38, 31, 27, 33, 26, 40, 42, 31, 25]), (u'Acts', u'Acts', u'Acts', [ 26, 47, 26, 37, 42, 15, 60, 40, 43, 48, 30, 25, 52, 28, 41, 40, 34, 28, 41, 38, 40, 30, 35, 27, 27, 32, 44, 31 ]), (u'Romans', u'Rom', u'Rom', [32, 29, 31, 25, 21, 23, 25, 39, 33, 21, 36, 21, 14, 26, 33, 27]), (u'I Corinthians', u'1Cor', u'1Cor', [31, 16, 23, 21, 13, 20, 40, 13, 27, 33, 34, 31, 13, 40, 58, 24]), (u'II Corinthians', u'2Cor', u'2Cor', [24, 17, 18, 18, 21, 18, 16, 24, 15, 18, 33, 21, 14]), (u'Galatians', u'Gal', u'Gal', [24, 21, 29, 31, 26, 18]), (u'Ephesians', u'Eph', u'Eph', [23, 22, 21, 32, 33, 24]), (u'Philippians', u'Phil', u'Phil', [30, 30, 21, 23]), (u'Colossians', u'Col', u'Col', [29, 23, 25, 18]), (u'I Thessalonians', u'1Thess', u'1Thess', [10, 20, 13, 18, 28]), (u'II Thessalonians', u'2Thess', u'2Thess', [12, 17, 18]), (u'I Timothy', u'1Tim', u'1Tim', [20, 15, 16, 16, 25, 21]), (u'II Timothy', u'2Tim', u'2Tim', [18, 26, 17, 22]), (u'Titus', u'Titus', u'Titus', [16, 15, 15]), (u'Philemon', u'Phlm', u'Phlm', [25]), (u'Hebrews', u'Heb', u'Heb', [14, 18, 19, 16, 14, 20, 28, 13, 28, 39, 40, 29, 25]), (u'James', u'Jas', u'Jas', [27, 26, 18, 17, 20]), (u'I Peter', u'1Pet', u'1Pet', [25, 25, 22, 19, 14]), (u'II Peter', u'2Pet', u'2Pet', [21, 22, 18]), (u'I John', u'1John', u'1John', [10, 29, 24, 21, 21]), (u'II John', u'2John', u'2John', [13]), (u'III John', u'3John', u'3John', [15]), (u'Jude', u'Jude', u'Jude', [25]), (u'Revelation of John', u'Rev', u'Rev', [20, 29, 22, 11, 14, 17, 17, 13, 21, 11, 19, 18, 18, 20, 9, 21, 18, 24, 21, 15, 27, 21]), ], }, u'mt': { u'ot': [ (u'Genesis', u'Gen', u'Gen', [ 31, 25, 24, 26, 32, 22, 24, 22, 29, 32, 32, 20, 18, 24, 21, 16, 27, 33, 38, 18, 34, 24, 20, 67, 34, 35, 46, 22, 35, 43, 54, 33, 20, 31, 29, 43, 36, 30, 23, 23, 57, 38, 34, 34, 28, 34, 31, 22, 33, 26 ]), (u'Exodus', u'Exod', u'Exod', [ 22, 25, 22, 31, 23, 30, 29, 28, 35, 29, 10, 51, 22, 31, 27, 36, 16, 27, 25, 26, 37, 30, 33, 18, 40, 37, 21, 43, 46, 38, 18, 35, 23, 35, 35, 38, 29, 31, 43, 38 ]), (u'Leviticus', u'Lev', u'Lev', [ 17, 16, 17, 35, 26, 23, 38, 36, 24, 20, 47, 8, 59, 57, 33, 34, 16, 30, 37, 27, 24, 33, 44, 23, 55, 46, 34 ]), (u'Numbers', u'Num', u'Num', [ 54, 34, 51, 49, 31, 27, 89, 26, 23, 36, 35, 16, 33, 45, 41, 35, 28, 32, 22, 29, 35, 41, 30, 25, 19, 65, 23, 31, 39, 17, 54, 42, 56, 29, 34, 13 ]), (u'Deuteronomy', u'Deut', u'Deut', [ 46, 37, 29, 49, 33, 25, 26, 20, 29, 22, 32, 31, 19, 29, 23, 22, 20, 22, 21, 20, 23, 29, 26, 22, 19, 19, 26, 69, 28, 20, 30, 52, 29, 12 ]), (u'Joshua', u'Josh', u'Josh', [18, 24, 17, 24, 15, 27, 26, 35, 27, 43, 23, 24, 33, 15, 63, 10, 18, 28, 51, 9, 45, 34, 16, 33]), (u'Judges', u'Judg', u'Judg', [36, 23, 31, 24, 31, 40, 25, 35, 57, 18, 40, 15, 25, 20, 20, 31, 13, 31, 30, 48, 25]), (u'I Samuel', u'1Sam', u'1Sam', [ 28, 36, 21, 22, 12, 21, 17, 22, 27, 27, 15, 25, 23, 52, 35, 23, 58, 30, 24, 42, 16, 23, 28, 23, 44, 25, 12, 25, 11, 31, 13 ]), (u'II Samuel', u'2Sam', u'2Sam', [27, 32, 39, 12, 25, 23, 29, 18, 13, 19, 27, 31, 39, 33, 37, 23, 29, 32, 44, 26, 22, 51, 39, 25]), (u'I Kings', u'1Kgs', u'1Kgs', [53, 46, 28, 20, 32, 38, 51, 66, 28, 29, 43, 33, 34, 31, 34, 34, 24, 46, 21, 43, 29, 54]), (u'II Kings', u'2Kgs', u'2Kgs', [18, 25, 27, 44, 27, 33, 20, 29, 37, 36, 20, 22, 25, 29, 38, 20, 41, 37, 37, 21, 26, 20, 37, 20, 30]), (u'Isaiah', u'Isa', u'Isa', [ 31, 22, 26, 6, 30, 13, 25, 23, 20, 34, 16, 6, 22, 32, 9, 14, 14, 7, 25, 6, 17, 25, 18, 23, 12, 21, 13, 29, 24, 33, 9, 20, 24, 17, 10, 22, 38, 22, 8, 31, 29, 25, 28, 28, 25, 13, 15, 22, 26, 11, 23, 15, 12, 17, 13, 12, 21, 14, 21, 22, 11, 12, 19, 11, 25, 24 ]), (u'Jeremiah', u'Jer', u'Jer', [ 19, 37, 25, 31, 31, 30, 34, 23, 25, 25, 23, 17, 27, 22, 21, 21, 27, 23, 15, 18, 14, 30, 40, 10, 38, 24, 22, 17, 32, 24, 40, 44, 26, 22, 19, 32, 21, 28, 18, 16, 18, 22, 13, 30, 5, 28, 7, 47, 39, 46, 64, 34 ]), (u'Ezekiel', u'Ezek', u'Ezek', [ 28, 10, 27, 17, 17, 14, 27, 18, 11, 22, 25, 28, 23, 23, 8, 63, 24, 32, 14, 44, 37, 31, 49, 27, 17, 21, 36, 26, 21, 26, 18, 32, 33, 31, 15, 38, 28, 23, 29, 49, 26, 20, 27, 31, 25, 24, 23, 35 ]), (u'Hosea', u'Hos', u'Hos', [9, 25, 5, 19, 15, 11, 16, 14, 17, 15, 11, 15, 15, 10]), (u'Joel', u'Joel', u'Joel', [20, 27, 5, 21]), (u'Amos', u'Amos', u'Amos', [15, 16, 15, 13, 27, 14, 17, 14, 15]), (u'Obadiah', u'Obad', u'Obad', [21]), (u'Jonah', u'Jonah', u'Jonah', [16, 11, 10, 11]), (u'Micah', u'Mic', u'Mic', [16, 13, 12, 14, 14, 16, 20]), (u'Nahum', u'Nah', u'Nah', [14, 14, 19]), (u'Habakkuk', u'Hab', u'Hab', [17, 20, 19]), (u'Zephaniah', u'Zeph', u'Zeph', [18, 15, 20]), (u'Haggai', u'Hag', u'Hag', [15, 23]), (u'Zechariah', u'Zech', u'Zech', [17, 17, 10, 14, 11, 15, 14, 23, 17, 12, 17, 14, 9, 21]), (u'Malachi', u'Mal', u'Mal', [14, 17, 24]), (u'Psalms', u'Ps', u'Ps', [ 6, 12, 9, 9, 13, 11, 18, 10, 21, 18, 7, 9, 6, 7, 5, 11, 15, 51, 15, 10, 14, 32, 6, 10, 22, 12, 14, 9, 11, 13, 25, 11, 22, 23, 28, 13, 40, 23, 14, 18, 14, 12, 5, 27, 18, 12, 10, 15, 21, 23, 21, 11, 7, 9, 24, 14, 12, 12, 18, 14, 9, 13, 12, 11, 14, 20, 8, 36, 37, 6, 24, 20, 28, 23, 11, 13, 21, 72, 13, 20, 17, 8, 19, 13, 14, 17, 7, 19, 53, 17, 16, 16, 5, 23, 11, 13, 12, 9, 9, 5, 8, 29, 22, 35, 45, 48, 43, 14, 31, 7, 10, 10, 9, 8, 18, 19, 2, 29, 176, 7, 8, 9, 4, 8, 5, 6, 5, 6, 8, 8, 3, 18, 3, 3, 21, 26, 9, 8, 24, 14, 10, 8, 12, 15, 21, 10, 20, 14, 9, 6 ]), (u'Job', u'Job', u'Job', [ 22, 13, 26, 21, 27, 30, 21, 22, 35, 22, 20, 25, 28, 22, 35, 22, 16, 21, 29, 29, 34, 30, 17, 25, 6, 14, 23, 28, 25, 31, 40, 22, 33, 37, 16, 33, 24, 41, 30, 32, 26, 17 ]), (u'Proverbs', u'Prov', u'Prov', [ 33, 22, 35, 27, 23, 35, 27, 36, 18, 32, 31, 28, 25, 35, 33, 33, 28, 24, 29, 30, 31, 29, 35, 34, 28, 28, 27, 28, 27, 33, 31 ]), (u'Ruth', u'Ruth', u'Ruth', [22, 23, 18, 22]), (u'Song of Solomon', u'Song', u'Song', [17, 17, 11, 16, 16, 12, 14, 14]), (u'Ecclesiastes', u'Eccl', u'Eccl', [18, 26, 22, 17, 19, 12, 29, 17, 18, 20, 10, 14]), (u'Lamentations', u'Lam', u'Lam', [22, 22, 66, 22, 22]), (u'Esther', u'Esth', u'Esth', [22, 23, 15, 17, 14, 14, 10, 17, 32, 3]), (u'Daniel', u'Dan', u'Dan', [21, 49, 33, 34, 30, 29, 28, 27, 27, 21, 45, 13]), (u'Ezra', u'Ezra', u'Ezra', [11, 70, 13, 24, 17, 22, 28, 36, 15, 44]), (u'Nehemiah', u'Neh', u'Neh', [11, 20, 38, 17, 19, 19, 72, 18, 37, 40, 36, 47, 31]), (u'I Chronicles', u'1Chr', u'1Chr', [ 54, 55, 24, 43, 41, 66, 40, 40, 44, 14, 47, 41, 14, 17, 29, 43, 27, 17, 19, 8, 30, 19, 32, 31, 31, 32, 34, 21, 30 ]), (u'II Chronicles', u'2Chr', u'2Chr', [ 18, 17, 17, 22, 14, 42, 22, 18, 31, 19, 23, 16, 23, 14, 19, 14, 19, 34, 11, 37, 20, 12, 21, 27, 28, 23, 9, 27, 36, 27, 21, 33, 25, 33, 27, 23 ]), ], u'nt': [], }, u'nrsv': { u'ot': [ (u'Genesis', u'Gen', u'Gen', [ 31, 25, 24, 26, 32, 22, 24, 22, 29, 32, 32, 20, 18, 24, 21, 16, 27, 33, 38, 18, 34, 24, 20, 67, 34, 35, 46, 22, 35, 43, 55, 32, 20, 31, 29, 43, 36, 30, 23, 23, 57, 38, 34, 34, 28, 34, 31, 22, 33, 26 ]), (u'Exodus', u'Exod', u'Exod', [ 22, 25, 22, 31, 23, 30, 25, 32, 35, 29, 10, 51, 22, 31, 27, 36, 16, 27, 25, 26, 36, 31, 33, 18, 40, 37, 21, 43, 46, 38, 18, 35, 23, 35, 35, 38, 29, 31, 43, 38 ]), (u'Leviticus', u'Lev', u'Lev', [ 17, 16, 17, 35, 19, 30, 38, 36, 24, 20, 47, 8, 59, 57, 33, 34, 16, 30, 37, 27, 24, 33, 44, 23, 55, 46, 34 ]), (u'Numbers', u'Num', u'Num', [ 54, 34, 51, 49, 31, 27, 89, 26, 23, 36, 35, 16, 33, 45, 41, 50, 13, 32, 22, 29, 35, 41, 30, 25, 18, 65, 23, 31, 40, 16, 54, 42, 56, 29, 34, 13 ]), (u'Deuteronomy', u'Deut', u'Deut', [ 46, 37, 29, 49, 33, 25, 26, 20, 29, 22, 32, 32, 18, 29, 23, 22, 20, 22, 21, 20, 23, 30, 25, 22, 19, 19, 26, 68, 29, 20, 30, 52, 29, 12 ]), (u'Joshua', u'Josh', u'Josh', [18, 24, 17, 24, 15, 27, 26, 35, 27, 43, 23, 24, 33, 15, 63, 10, 18, 28, 51, 9, 45, 34, 16, 33]), (u'Judges', u'Judg', u'Judg', [36, 23, 31, 24, 31, 40, 25, 35, 57, 18, 40, 15, 25, 20, 20, 31, 13, 31, 30, 48, 25]), (u'Ruth', u'Ruth', u'Ruth', [22, 23, 18, 22]), (u'I Samuel', u'1Sam', u'1Sam', [ 28, 36, 21, 22, 12, 21, 17, 22, 27, 27, 15, 25, 23, 52, 35, 23, 58, 30, 24, 42, 15, 23, 29, 22, 44, 25, 12, 25, 11, 31, 13 ]), (u'II Samuel', u'2Sam', u'2Sam', [27, 32, 39, 12, 25, 23, 29, 18, 13, 19, 27, 31, 39, 33, 37, 23, 29, 33, 43, 26, 22, 51, 39, 25]), (u'I Kings', u'1Kgs', u'1Kgs', [53, 46, 28, 34, 18, 38, 51, 66, 28, 29, 43, 33, 34, 31, 34, 34, 24, 46, 21, 43, 29, 53]), (u'II Kings', u'2Kgs', u'2Kgs', [18, 25, 27, 44, 27, 33, 20, 29, 37, 36, 21, 21, 25, 29, 38, 20, 41, 37, 37, 21, 26, 20, 37, 20, 30]), (u'I Chronicles', u'1Chr', u'1Chr', [ 54, 55, 24, 43, 26, 81, 40, 40, 44, 14, 47, 40, 14, 17, 29, 43, 27, 17, 19, 8, 30, 19, 32, 31, 31, 32, 34, 21, 30 ]), (u'II Chronicles', u'2Chr', u'2Chr', [ 17, 18, 17, 22, 14, 42, 22, 18, 31, 19, 23, 16, 22, 15, 19, 14, 19, 34, 11, 37, 20, 12, 21, 27, 28, 23, 9, 27, 36, 27, 21, 33, 25, 33, 27, 23 ]), (u'Ezra', u'Ezra', u'Ezra', [11, 70, 13, 24, 17, 22, 28, 36, 15, 44]), (u'Nehemiah', u'Neh', u'Neh', [11, 20, 32, 23, 19, 19, 73, 18, 38, 39, 36, 47, 31]), (u'Esther', u'Esth', u'Esth', [22, 23, 15, 17, 14, 14, 10, 17, 32, 3]), (u'Job', u'Job', u'Job', [ 22, 13, 26, 21, 27, 30, 21, 22, 35, 22, 20, 25, 28, 22, 35, 22, 16, 21, 29, 29, 34, 30, 17, 25, 6, 14, 23, 28, 25, 31, 40, 22, 33, 37, 16, 33, 24, 41, 30, 24, 34, 17 ]), (u'Psalms', u'Ps', u'Ps', [ 6, 12, 8, 8, 12, 10, 17, 9, 20, 18, 7, 8, 6, 7, 5, 11, 15, 50, 14, 9, 13, 31, 6, 10, 22, 12, 14, 9, 11, 12, 24, 11, 22, 22, 28, 12, 40, 22, 13, 17, 13, 11, 5, 26, 17, 11, 9, 14, 20, 23, 19, 9, 6, 7, 23, 13, 11, 11, 17, 12, 8, 12, 11, 10, 13, 20, 7, 35, 36, 5, 24, 20, 28, 23, 10, 12, 20, 72, 13, 19, 16, 8, 18, 12, 13, 17, 7, 18, 52, 17, 16, 15, 5, 23, 11, 13, 12, 9, 9, 5, 8, 28, 22, 35, 45, 48, 43, 13, 31, 7, 10, 10, 9, 8, 18, 19, 2, 29, 176, 7, 8, 9, 4, 8, 5, 6, 5, 6, 8, 8, 3, 18, 3, 3, 21, 26, 9, 8, 24, 13, 10, 7, 12, 15, 21, 10, 20, 14, 9, 6 ]), (u'Proverbs', u'Prov', u'Prov', [ 33, 22, 35, 27, 23, 35, 27, 36, 18, 32, 31, 28, 25, 35, 33, 33, 28, 24, 29, 30, 31, 29, 35, 34, 28, 28, 27, 28, 27, 33, 31 ]), (u'Ecclesiastes', u'Eccl', u'Eccl', [18, 26, 22, 16, 20, 12, 29, 17, 18, 20, 10, 14]), (u'Song of Solomon', u'Song', u'Song', [17, 17, 11, 16, 16, 13, 13, 14]), (u'Isaiah', u'Isa', u'Isa', [ 31, 22, 26, 6, 30, 13, 25, 22, 21, 34, 16, 6, 22, 32, 9, 14, 14, 7, 25, 6, 17, 25, 18, 23, 12, 21, 13, 29, 24, 33, 9, 20, 24, 17, 10, 22, 38, 22, 8, 31, 29, 25, 28, 28, 25, 13, 15, 22, 26, 11, 23, 15, 12, 17, 13, 12, 21, 14, 21, 22, 11, 12, 19, 12, 25, 24 ]), (u'Jeremiah', u'Jer', u'Jer', [ 19, 37, 25, 31, 31, 30, 34, 22, 26, 25, 23, 17, 27, 22, 21, 21, 27, 23, 15, 18, 14, 30, 40, 10, 38, 24, 22, 17, 32, 24, 40, 44, 26, 22, 19, 32, 21, 28, 18, 16, 18, 22, 13, 30, 5, 28, 7, 47, 39, 46, 64, 34 ]), (u'Lamentations', u'Lam', u'Lam', [22, 22, 66, 22, 22]), (u'Ezekiel', u'Ezek', u'Ezek', [ 28, 10, 27, 17, 17, 14, 27, 18, 11, 22, 25, 28, 23, 23, 8, 63, 24, 32, 14, 49, 32, 31, 49, 27, 17, 21, 36, 26, 21, 26, 18, 32, 33, 31, 15, 38, 28, 23, 29, 49, 26, 20, 27, 31, 25, 24, 23, 35 ]), (u'Daniel', u'Dan', u'Dan', [21, 49, 30, 37, 31, 28, 28, 27, 27, 21, 45, 13]), (u'Hosea', u'Hos', u'Hos', [11, 23, 5, 19, 15, 11, 16, 14, 17, 15, 12, 14, 16, 9]), (u'Joel', u'Joel', u'Joel', [20, 32, 21]), (u'Amos', u'Amos', u'Amos', [15, 16, 15, 13, 27, 14, 17, 14, 15]), (u'Obadiah', u'Obad', u'Obad', [21]), (u'Jonah', u'Jonah', u'Jonah', [17, 10, 10, 11]), (u'Micah', u'Mic', u'Mic', [16, 13, 12, 13, 15, 16, 20]), (u'Nahum', u'Nah', u'Nah', [15, 13, 19]), (u'Habakkuk', u'Hab', u'Hab', [17, 20, 19]), (u'Zephaniah', u'Zeph', u'Zeph', [18, 15, 20]), (u'Haggai', u'Hag', u'Hag', [15, 23]), (u'Zechariah', u'Zech', u'Zech', [21, 13, 10, 14, 11, 15, 14, 23, 17, 12, 17, 14, 9, 21]), (u'Malachi', u'Mal', u'Mal', [14, 17, 18, 6]), ], u'nt': [ (u'Matthew', u'Matt', u'Matt', [ 25, 23, 17, 25, 48, 34, 29, 34, 38, 42, 30, 50, 58, 36, 39, 28, 27, 35, 30, 34, 46, 46, 39, 51, 46, 75, 66, 20 ]), (u'Mark', u'Mark', u'Mark', [45, 28, 35, 41, 43, 56, 37, 38, 50, 52, 33, 44, 37, 72, 47, 20]), (u'Luke', u'Luke', u'Luke', [80, 52, 38, 44, 39, 49, 50, 56, 62, 42, 54, 59, 35, 35, 32, 31, 37, 43, 48, 47, 38, 71, 56, 53]), (u'John', u'John', u'John', [51, 25, 36, 54, 47, 71, 53, 59, 41, 42, 57, 50, 38, 31, 27, 33, 26, 40, 42, 31, 25]), (u'Acts', u'Acts', u'Acts', [ 26, 47, 26, 37, 42, 15, 60, 40, 43, 48, 30, 25, 52, 28, 41, 40, 34, 28, 41, 38, 40, 30, 35, 27, 27, 32, 44, 31 ]), (u'Romans', u'Rom', u'Rom', [32, 29, 31, 25, 21, 23, 25, 39, 33, 21, 36, 21, 14, 23, 33, 27]), (u'I Corinthians', u'1Cor', u'1Cor', [31, 16, 23, 21, 13, 20, 40, 13, 27, 33, 34, 31, 13, 40, 58, 24]), (u'II Corinthians', u'2Cor', u'2Cor', [24, 17, 18, 18, 21, 18, 16, 24, 15, 18, 33, 21, 14]), (u'Galatians', u'Gal', u'Gal', [24, 21, 29, 31, 26, 18]), (u'Ephesians', u'Eph', u'Eph', [23, 22, 21, 32, 33, 24]), (u'Philippians', u'Phil', u'Phil', [30, 30, 21, 23]), (u'Colossians', u'Col', u'Col', [29, 23, 25, 18]), (u'I Thessalonians', u'1Thess', u'1Thess', [10, 20, 13, 18, 28]), (u'II Thessalonians', u'2Thess', u'2Thess', [12, 17, 18]), (u'I Timothy', u'1Tim', u'1Tim', [20, 15, 16, 16, 25, 21]), (u'II Timothy', u'2Tim', u'2Tim', [18, 26, 17, 22]), (u'Titus', u'Titus', u'Titus', [16, 15, 15]), (u'Philemon', u'Phlm', u'Phlm', [25]), (u'Hebrews', u'Heb', u'Heb', [14, 18, 19, 16, 14, 20, 28, 13, 28, 39, 40, 29, 25]), (u'James', u'Jas', u'Jas', [27, 26, 18, 17, 20]), (u'I Peter', u'1Pet', u'1Pet', [25, 25, 22, 19, 14]), (u'II Peter', u'2Pet', u'2Pet', [21, 22, 18]), (u'I John', u'1John', u'1John', [10, 29, 24, 21, 21]), (u'II John', u'2John', u'2John', [13]), (u'III John', u'3John', u'3John', [15]), (u'Jude', u'Jude', u'Jude', [25]), (u'Revelation of John', u'Rev', u'Rev', [20, 29, 22, 11, 14, 17, 17, 13, 21, 11, 19, 18, 18, 20, 8, 21, 18, 24, 21, 15, 27, 21]), ], }, u'nrsva': { u'ot': [ (u'Genesis', u'Gen', u'Gen', [ 31, 25, 24, 26, 32, 22, 24, 22, 29, 32, 32, 20, 18, 24, 21, 16, 27, 33, 38, 18, 34, 24, 20, 67, 34, 35, 46, 22, 35, 43, 55, 32, 20, 31, 29, 43, 36, 30, 23, 23, 57, 38, 34, 34, 28, 34, 31, 22, 33, 26 ]), (u'Exodus', u'Exod', u'Exod', [ 22, 25, 22, 31, 23, 30, 25, 32, 35, 29, 10, 51, 22, 31, 27, 36, 16, 27, 25, 26, 36, 31, 33, 18, 40, 37, 21, 43, 46, 38, 18, 35, 23, 35, 35, 38, 29, 31, 43, 38 ]), (u'Leviticus', u'Lev', u'Lev', [ 17, 16, 17, 35, 19, 30, 38, 36, 24, 20, 47, 8, 59, 57, 33, 34, 16, 30, 37, 27, 24, 33, 44, 23, 55, 46, 34 ]), (u'Numbers', u'Num', u'Num', [ 54, 34, 51, 49, 31, 27, 89, 26, 23, 36, 35, 16, 33, 45, 41, 50, 13, 32, 22, 29, 35, 41, 30, 25, 18, 65, 23, 31, 40, 16, 54, 42, 56, 29, 34, 13 ]), (u'Deuteronomy', u'Deut', u'Deut', [ 46, 37, 29, 49, 33, 25, 26, 20, 29, 22, 32, 32, 18, 29, 23, 22, 20, 22, 21, 20, 23, 30, 25, 22, 19, 19, 26, 68, 29, 20, 30, 52, 29, 12 ]), (u'Joshua', u'Josh', u'Josh', [18, 24, 17, 24, 15, 27, 26, 35, 27, 43, 23, 24, 33, 15, 63, 10, 18, 28, 51, 9, 45, 34, 16, 33]), (u'Judges', u'Judg', u'Judg', [36, 23, 31, 24, 31, 40, 25, 35, 57, 18, 40, 15, 25, 20, 20, 31, 13, 31, 30, 48, 25]), (u'Ruth', u'Ruth', u'Ruth', [22, 23, 18, 22]), (u'I Samuel', u'1Sam', u'1Sam', [ 28, 36, 21, 22, 12, 21, 17, 22, 27, 27, 15, 25, 23, 52, 35, 23, 58, 30, 24, 42, 15, 23, 29, 22, 44, 25, 12, 25, 11, 31, 13 ]), (u'II Samuel', u'2Sam', u'2Sam', [27, 32, 39, 12, 25, 23, 29, 18, 13, 19, 27, 31, 39, 33, 37, 23, 29, 33, 43, 26, 22, 51, 39, 25]), (u'I Kings', u'1Kgs', u'1Kgs', [53, 46, 28, 34, 18, 38, 51, 66, 28, 29, 43, 33, 34, 31, 34, 34, 24, 46, 21, 43, 29, 53]), (u'II Kings', u'2Kgs', u'2Kgs', [18, 25, 27, 44, 27, 33, 20, 29, 37, 36, 21, 21, 25, 29, 38, 20, 41, 37, 37, 21, 26, 20, 37, 20, 30]), (u'I Chronicles', u'1Chr', u'1Chr', [ 54, 55, 24, 43, 26, 81, 40, 40, 44, 14, 47, 40, 14, 17, 29, 43, 27, 17, 19, 8, 30, 19, 32, 31, 31, 32, 34, 21, 30 ]), (u'II Chronicles', u'2Chr', u'2Chr', [ 17, 18, 17, 22, 14, 42, 22, 18, 31, 19, 23, 16, 22, 15, 19, 14, 19, 34, 11, 37, 20, 12, 21, 27, 28, 23, 9, 27, 36, 27, 21, 33, 25, 33, 27, 23 ]), (u'Ezra', u'Ezra', u'Ezra', [11, 70, 13, 24, 17, 22, 28, 36, 15, 44]), (u'Nehemiah', u'Neh', u'Neh', [11, 20, 32, 23, 19, 19, 73, 18, 38, 39, 36, 47, 31]), (u'Esther', u'Esth', u'Esth', [22, 23, 15, 17, 14, 14, 10, 17, 32, 3]), (u'Job', u'Job', u'Job', [ 22, 13, 26, 21, 27, 30, 21, 22, 35, 22, 20, 25, 28, 22, 35, 22, 16, 21, 29, 29, 34, 30, 17, 25, 6, 14, 23, 28, 25, 31, 40, 22, 33, 37, 16, 33, 24, 41, 30, 24, 34, 17 ]), (u'Psalms', u'Ps', u'Ps', [ 6, 12, 8, 8, 12, 10, 17, 9, 20, 18, 7, 8, 6, 7, 5, 11, 15, 50, 14, 9, 13, 31, 6, 10, 22, 12, 14, 9, 11, 12, 24, 11, 22, 22, 28, 12, 40, 22, 13, 17, 13, 11, 5, 26, 17, 11, 9, 14, 20, 23, 19, 9, 6, 7, 23, 13, 11, 11, 17, 12, 8, 12, 11, 10, 13, 20, 7, 35, 36, 5, 24, 20, 28, 23, 10, 12, 20, 72, 13, 19, 16, 8, 18, 12, 13, 17, 7, 18, 52, 17, 16, 15, 5, 23, 11, 13, 12, 9, 9, 5, 8, 28, 22, 35, 45, 48, 43, 13, 31, 7, 10, 10, 9, 8, 18, 19, 2, 29, 176, 7, 8, 9, 4, 8, 5, 6, 5, 6, 8, 8, 3, 18, 3, 3, 21, 26, 9, 8, 24, 13, 10, 7, 12, 15, 21, 10, 20, 14, 9, 6 ]), (u'Proverbs', u'Prov', u'Prov', [ 33, 22, 35, 27, 23, 35, 27, 36, 18, 32, 31, 28, 25, 35, 33, 33, 28, 24, 29, 30, 31, 29, 35, 34, 28, 28, 27, 28, 27, 33, 31 ]), (u'Ecclesiastes', u'Eccl', u'Eccl', [18, 26, 22, 16, 20, 12, 29, 17, 18, 20, 10, 14]), (u'Song of Solomon', u'Song', u'Song', [17, 17, 11, 16, 16, 13, 13, 14]), (u'Isaiah', u'Isa', u'Isa', [ 31, 22, 26, 6, 30, 13, 25, 22, 21, 34, 16, 6, 22, 32, 9, 14, 14, 7, 25, 6, 17, 25, 18, 23, 12, 21, 13, 29, 24, 33, 9, 20, 24, 17, 10, 22, 38, 22, 8, 31, 29, 25, 28, 28, 25, 13, 15, 22, 26, 11, 23, 15, 12, 17, 13, 12, 21, 14, 21, 22, 11, 12, 19, 12, 25, 24 ]), (u'Jeremiah', u'Jer', u'Jer', [ 19, 37, 25, 31, 31, 30, 34, 22, 26, 25, 23, 17, 27, 22, 21, 21, 27, 23, 15, 18, 14, 30, 40, 10, 38, 24, 22, 17, 32, 24, 40, 44, 26, 22, 19, 32, 21, 28, 18, 16, 18, 22, 13, 30, 5, 28, 7, 47, 39, 46, 64, 34 ]), (u'Lamentations', u'Lam', u'Lam', [22, 22, 66, 22, 22]), (u'Ezekiel', u'Ezek', u'Ezek', [ 28, 10, 27, 17, 17, 14, 27, 18, 11, 22, 25, 28, 23, 23, 8, 63, 24, 32, 14, 49, 32, 31, 49, 27, 17, 21, 36, 26, 21, 26, 18, 32, 33, 31, 15, 38, 28, 23, 29, 49, 26, 20, 27, 31, 25, 24, 23, 35 ]), (u'Daniel', u'Dan', u'Dan', [21, 49, 30, 37, 31, 28, 28, 27, 27, 21, 45, 13]), (u'Hosea', u'Hos', u'Hos', [11, 23, 5, 19, 15, 11, 16, 14, 17, 15, 12, 14, 16, 9]), (u'Joel', u'Joel', u'Joel', [20, 32, 21]), (u'Amos', u'Amos', u'Amos', [15, 16, 15, 13, 27, 14, 17, 14, 15]), (u'Obadiah', u'Obad', u'Obad', [21]), (u'Jonah', u'Jonah', u'Jonah', [17, 10, 10, 11]), (u'Micah', u'Mic', u'Mic', [16, 13, 12, 13, 15, 16, 20]), (u'Nahum', u'Nah', u'Nah', [15, 13, 19]), (u'Habakkuk', u'Hab', u'Hab', [17, 20, 19]), (u'Zephaniah', u'Zeph', u'Zeph', [18, 15, 20]), (u'Haggai', u'Hag', u'Hag', [15, 23]), (u'Zechariah', u'Zech', u'Zech', [21, 13, 10, 14, 11, 15, 14, 23, 17, 12, 17, 14, 9, 21]), (u'Malachi', u'Mal', u'Mal', [14, 17, 18, 6]), (u'Tobit', u'Tob', u'Tob', [22, 14, 17, 21, 22, 18, 16, 21, 6, 13, 18, 22, 17, 15]), (u'Judith', u'Jdt', u'Jdt', [16, 28, 10, 15, 24, 21, 32, 36, 14, 23, 23, 20, 20, 19, 14, 25]), (u'Esther (Greek)', u'EsthGr', u'EsthGr', [22, 23, 15, 17, 14, 14, 10, 17, 32, 13, 12, 6, 18, 19, 16, 24]), (u'Wisdom', u'Wis', u'Wis', [16, 24, 19, 20, 23, 25, 30, 21, 18, 21, 26, 27, 19, 31, 19, 29, 21, 25, 22]), (u'Sirach', u'Sir', u'Sir', [ 30, 18, 31, 31, 15, 37, 36, 19, 18, 31, 34, 18, 26, 27, 20, 30, 32, 33, 30, 31, 28, 27, 27, 34, 26, 29, 30, 26, 28, 25, 31, 24, 33, 31, 26, 31, 31, 34, 35, 30, 22, 25, 33, 23, 26, 20, 25, 25, 16, 29, 30 ]), (u'Baruch', u'Bar', u'Bar', [22, 35, 37, 37, 9, 73]), (u'Prayer of Azariah', u'PrAzar', u'PrAzar', [68]), (u'Susanna', u'Sus', u'Sus', [64]), (u'Bel and the Dragon', u'Bel', u'Bel', [42]), (u'I Maccabees', u'1Macc', u'1Macc', [64, 70, 60, 61, 68, 63, 50, 32, 73, 89, 74, 53, 53, 49, 41, 24]), (u'II Maccabees', u'2Macc', u'2Macc', [36, 32, 40, 50, 27, 31, 42, 36, 29, 38, 38, 45, 26, 46, 39]), (u'I Esdras', u'1Esd', u'1Esd', [58, 30, 24, 63, 73, 34, 15, 96, 55]), (u'Prayer of Manasses', u'PrMan', u'PrMan', [15]), (u'Additional Psalm', u'AddPs', u'AddPs', [7]), (u'III Maccabees', u'3Macc', u'3Macc', [29, 33, 30, 21, 51, 41, 23]), (u'II Esdras', u'2Esd', u'2Esd', [40, 48, 36, 52, 56, 59, 140, 63, 47, 59, 46, 51, 58, 48, 63, 78]), (u'IV Maccabees', u'4Macc', u'4Macc', [35, 24, 21, 26, 38, 35, 23, 29, 32, 21, 27, 19, 27, 20, 32, 25, 24, 24]), ], u'nt': [ (u'Matthew', u'Matt', u'Matt', [ 25, 23, 17, 25, 48, 34, 29, 34, 38, 42, 30, 50, 58, 36, 39, 28, 27, 35, 30, 34, 46, 46, 39, 51, 46, 75, 66, 20 ]), (u'Mark', u'Mark', u'Mark', [45, 28, 35, 41, 43, 56, 37, 38, 50, 52, 33, 44, 37, 72, 47, 20]), (u'Luke', u'Luke', u'Luke', [80, 52, 38, 44, 39, 49, 50, 56, 62, 42, 54, 59, 35, 35, 32, 31, 37, 43, 48, 47, 38, 71, 56, 53]), (u'John', u'John', u'John', [51, 25, 36, 54, 47, 71, 53, 59, 41, 42, 57, 50, 38, 31, 27, 33, 26, 40, 42, 31, 25]), (u'Acts', u'Acts', u'Acts', [ 26, 47, 26, 37, 42, 15, 60, 40, 43, 48, 30, 25, 52, 28, 41, 40, 34, 28, 41, 38, 40, 30, 35, 27, 27, 32, 44, 31 ]), (u'Romans', u'Rom', u'Rom', [32, 29, 31, 25, 21, 23, 25, 39, 33, 21, 36, 21, 14, 23, 33, 27]), (u'I Corinthians', u'1Cor', u'1Cor', [31, 16, 23, 21, 13, 20, 40, 13, 27, 33, 34, 31, 13, 40, 58, 24]), (u'II Corinthians', u'2Cor', u'2Cor', [24, 17, 18, 18, 21, 18, 16, 24, 15, 18, 33, 21, 14]), (u'Galatians', u'Gal', u'Gal', [24, 21, 29, 31, 26, 18]), (u'Ephesians', u'Eph', u'Eph', [23, 22, 21, 32, 33, 24]), (u'Philippians', u'Phil', u'Phil', [30, 30, 21, 23]), (u'Colossians', u'Col', u'Col', [29, 23, 25, 18]), (u'I Thessalonians', u'1Thess', u'1Thess', [10, 20, 13, 18, 28]), (u'II Thessalonians', u'2Thess', u'2Thess', [12, 17, 18]), (u'I Timothy', u'1Tim', u'1Tim', [20, 15, 16, 16, 25, 21]), (u'II Timothy', u'2Tim', u'2Tim', [18, 26, 17, 22]), (u'Titus', u'Titus', u'Titus', [16, 15, 15]), (u'Philemon', u'Phlm', u'Phlm', [25]), (u'Hebrews', u'Heb', u'Heb', [14, 18, 19, 16, 14, 20, 28, 13, 28, 39, 40, 29, 25]), (u'James', u'Jas', u'Jas', [27, 26, 18, 17, 20]), (u'I Peter', u'1Pet', u'1Pet', [25, 25, 22, 19, 14]), (u'II Peter', u'2Pet', u'2Pet', [21, 22, 18]), (u'I John', u'1John', u'1John', [10, 29, 24, 21, 21]), (u'II John', u'2John', u'2John', [13]), (u'III John', u'3John', u'3John', [15]), (u'Jude', u'Jude', u'Jude', [25]), (u'Revelation of John', u'Rev', u'Rev', [20, 29, 22, 11, 14, 17, 17, 13, 21, 11, 19, 18, 18, 20, 8, 21, 18, 24, 21, 15, 27, 21]), ], }, u'orthodox': { u'ot': [ (u'Genesis', u'Gen', u'Gen', [ 31, 25, 25, 26, 32, 23, 24, 22, 29, 32, 32, 20, 18, 24, 21, 16, 27, 33, 39, 18, 34, 24, 20, 67, 34, 35, 46, 22, 35, 43, 55, 33, 20, 31, 29, 44, 36, 30, 23, 23, 57, 39, 34, 34, 28, 34, 31, 22, 33, 26 ]), (u'Exodus', u'Exod', u'Exod', [ 22, 25, 22, 31, 23, 30, 29, 32, 35, 29, 10, 51, 22, 31, 27, 36, 16, 27, 25, 26, 37, 31, 33, 18, 40, 37, 21, 43, 46, 38, 18, 35, 23, 35, 35, 40, 21, 29, 23, 38 ]), (u'Leviticus', u'Lev', u'Lev', [ 17, 16, 17, 35, 26, 40, 38, 36, 24, 20, 47, 8, 59, 57, 33, 34, 16, 30, 37, 27, 24, 33, 44, 23, 55, 46, 34 ]), (u'Numbers', u'Num', u'Num', [ 54, 34, 51, 49, 31, 27, 89, 26, 23, 36, 35, 16, 34, 45, 41, 50, 28, 32, 22, 29, 35, 41, 30, 25, 18, 65, 23, 31, 40, 17, 54, 42, 56, 29, 34, 13 ]), (u'Deuteronomy', u'Deut', u'Deut', [ 46, 37, 29, 49, 33, 25, 26, 20, 29, 22, 32, 32, 19, 29, 23, 22, 20, 22, 21, 20, 23, 30, 26, 24, 19, 19, 27, 69, 29, 20, 30, 52, 29, 12 ]), (u'Joshua', u'Josh', u'Josh', [18, 24, 17, 24, 16, 27, 26, 35, 33, 43, 23, 24, 33, 15, 64, 10, 18, 28, 54, 9, 49, 34, 16, 36]), (u'Judges', u'Judg', u'Judg', [36, 23, 31, 24, 32, 40, 25, 35, 57, 18, 40, 15, 25, 20, 20, 31, 13, 32, 30, 48, 25]), (u'Ruth', u'Ruth', u'Ruth', [22, 23, 18, 22]), (u'I Samuel', u'1Sam', u'1Sam', [ 28, 36, 21, 22, 12, 21, 17, 22, 27, 27, 15, 25, 23, 52, 35, 23, 58, 30, 24, 43, 16, 23, 29, 23, 44, 25, 12, 25, 11, 32, 13 ]), (u'II Samuel', u'2Sam', u'2Sam', [27, 32, 39, 12, 26, 23, 29, 18, 13, 19, 27, 31, 39, 33, 37, 23, 29, 33, 44, 26, 22, 51, 41, 25]), (u'I Kings', u'1Kgs', u'1Kgs', [53, 71, 39, 34, 32, 38, 51, 66, 28, 33, 44, 54, 34, 31, 34, 42, 24, 46, 21, 43, 43, 54]), (u'II Kings', u'2Kgs', u'2Kgs', [22, 25, 27, 44, 27, 35, 20, 29, 37, 36, 21, 22, 25, 29, 38, 20, 41, 37, 37, 21, 26, 20, 37, 20, 30]), (u'I Chronicles', u'1Chr', u'1Chr', [ 54, 55, 24, 43, 41, 81, 40, 40, 44, 14, 47, 41, 14, 17, 29, 43, 27, 17, 19, 8, 30, 19, 32, 31, 31, 32, 34, 21, 30 ]), (u'II Chronicles', u'2Chr', u'2Chr', [ 18, 18, 17, 23, 14, 42, 22, 18, 31, 19, 23, 16, 23, 15, 19, 14, 19, 34, 11, 37, 20, 12, 21, 27, 28, 23, 9, 27, 36, 27, 21, 33, 25, 33, 31, 31 ]), (u'I Esdras', u'1Esd', u'1Esd', [58, 30, 24, 63, 73, 34, 15, 96, 55]), (u'Ezra', u'Ezra', u'Ezra', [11, 70, 13, 24, 17, 22, 28, 36, 15, 44]), (u'Nehemiah', u'Neh', u'Neh', [11, 20, 37, 23, 19, 19, 73, 18, 38, 40, 36, 47, 31]), (u'Tobit', u'Tob', u'Tob', [22, 14, 17, 21, 23, 19, 18, 21, 6, 14, 19, 22, 19, 15]), (u'Judith', u'Jdt', u'Jdt', [16, 28, 10, 15, 24, 21, 32, 36, 14, 23, 23, 20, 20, 19, 14, 25]), (u'Esther', u'Esth', u'Esth', [22, 23, 15, 17, 22, 14, 10, 17, 35, 13, 17, 7, 30, 19, 24, 24]), (u'I Maccabees', u'1Macc', u'1Macc', [64, 70, 60, 61, 68, 63, 50, 32, 73, 89, 74, 53, 54, 49, 41, 24]), (u'II Maccabees', u'2Macc', u'2Macc', [36, 32, 40, 50, 27, 31, 42, 36, 29, 38, 38, 46, 26, 46, 39]), (u'III Maccabees', u'3Macc', u'3Macc', [29, 33, 30, 21, 51, 41, 23]), (u'Psalms', u'Ps', u'Ps', [ 6, 13, 9, 9, 13, 11, 18, 10, 40, 8, 9, 6, 7, 6, 11, 15, 51, 15, 10, 14, 32, 6, 10, 22, 12, 14, 9, 11, 13, 25, 11, 22, 23, 28, 13, 40, 23, 14, 18, 14, 12, 6, 27, 18, 12, 10, 15, 21, 23, 21, 11, 7, 9, 24, 14, 12, 12, 19, 14, 9, 13, 12, 11, 14, 20, 8, 36, 37, 7, 24, 20, 28, 23, 11, 13, 21, 72, 13, 20, 17, 8, 19, 13, 14, 17, 7, 19, 53, 17, 16, 16, 5, 23, 11, 13, 12, 9, 9, 5, 8, 29, 22, 36, 45, 48, 43, 14, 31, 7, 10, 10, 9, 26, 18, 19, 2, 29, 176, 7, 8, 9, 4, 8, 5, 7, 5, 6, 8, 8, 3, 18, 3, 3, 21, 26, 9, 8, 24, 15, 10, 8, 12, 15, 22, 10, 11, 20, 14, 9, 6, 7 ]), (u'Prayer of Manasses', u'PrMan', u'PrMan', [15]), (u'Job', u'Job', u'Job', [ 22, 18, 26, 21, 27, 30, 22, 22, 35, 22, 20, 25, 28, 22, 35, 23, 16, 21, 29, 29, 34, 30, 17, 25, 6, 14, 23, 28, 25, 31, 40, 22, 33, 37, 16, 34, 24, 41, 35, 32, 34, 22 ]), (u'Proverbs', u'Prov', u'Prov', [ 35, 23, 38, 28, 23, 40, 28, 37, 25, 33, 31, 31, 27, 36, 38, 33, 30, 24, 29, 30, 31, 31, 36, 77, 31, 29, 29, 30, 49, 35, 31 ]), (u'Ecclesiastes', u'Eccl', u'Eccl', [18, 26, 22, 17, 20, 12, 30, 17, 18, 20, 10, 14]), (u'Song of Solomon', u'Song', u'Song', [17, 17, 11, 16, 17, 13, 14, 15]), (u'Wisdom', u'Wis', u'Wis', [16, 25, 19, 20, 24, 27, 30, 21, 19, 21, 27, 27, 19, 31, 19, 29, 21, 25, 22]), (u'Sirach', u'Sir', u'Sir', [ 30, 18, 31, 31, 15, 37, 36, 19, 18, 31, 34, 18, 26, 27, 20, 30, 32, 33, 31, 32, 28, 27, 28, 34, 26, 29, 30, 26, 28, 40, 31, 26, 33, 31, 26, 31, 31, 35, 35, 30, 27, 27, 33, 24, 26, 20, 25, 25, 16, 29, 30 ]), (u'Hosea', u'Hos', u'Hos', [11, 25, 5, 19, 15, 12, 16, 14, 17, 15, 12, 15, 16, 10]), (u'Amos', u'Amos', u'Amos', [15, 16, 15, 13, 27, 15, 17, 14, 15]), (u'Micah', u'Mic', u'Mic', [16, 13, 12, 14, 15, 16, 20]), (u'Joel', u'Joel', u'Joel', [20, 32, 21, 21]), (u'Obadiah', u'Obad', u'Obad', [21]), (u'Jonah', u'Jonah', u'Jonah', [17, 11, 10, 11]), (u'Nahum', u'Nah', u'Nah', [15, 14, 19]), (u'Habakkuk', u'Hab', u'Hab', [17, 20, 19]), (u'Zephaniah', u'Zeph', u'Zeph', [18, 15, 21]), (u'Haggai', u'Hag', u'Hag', [15, 24]), (u'Zechariah', u'Zech', u'Zech', [21, 17, 11, 14, 11, 15, 14, 23, 17, 12, 17, 14, 9, 21]), (u'Malachi', u'Mal', u'Mal', [14, 17, 24, 6]), (u'Isaiah', u'Isa', u'Isa', [ 31, 22, 26, 6, 30, 13, 25, 23, 21, 34, 16, 6, 22, 32, 9, 14, 14, 7, 25, 6, 17, 25, 18, 23, 12, 21, 13, 29, 24, 33, 9, 20, 24, 17, 10, 22, 38, 22, 8, 31, 29, 25, 28, 28, 26, 13, 15, 22, 26, 11, 23, 15, 12, 17, 13, 12, 21, 14, 21, 22, 11, 12, 20, 12, 25, 24 ]), (u'Jeremiah', u'Jer', u'Jer', [ 19, 37, 25, 31, 31, 30, 34, 23, 26, 25, 23, 17, 27, 22, 21, 21, 27, 23, 15, 18, 14, 30, 42, 10, 39, 28, 46, 64, 31, 33, 47, 44, 24, 22, 19, 32, 24, 40, 44, 26, 22, 22, 32, 30, 28, 28, 16, 44, 38, 46, 63, 34 ]), (u'Baruch', u'Bar', u'Bar', [22, 35, 38, 37, 9]), (u'Lamentations', u'Lam', u'Lam', [22, 22, 66, 22, 22]), (u'Epistle of Jeremiah', u'EpJer', u'EpJer', [73]), (u'Ezekiel', u'Ezek', u'Ezek', [ 28, 13, 27, 17, 17, 14, 27, 18, 11, 22, 25, 28, 23, 23, 8, 63, 24, 32, 14, 49, 37, 31, 49, 27, 17, 21, 36, 26, 21, 26, 18, 32, 33, 31, 15, 38, 28, 23, 29, 49, 26, 20, 27, 31, 25, 24, 23, 35 ]), (u'Susanna', u'Sus', u'Sus', [64]), (u'Daniel', u'Dan', u'Dan', [21, 49, 100, 37, 31, 29, 28, 27, 27, 21, 45, 13]), (u'Bel and the Dragon', u'Bel', u'Bel', [42]), (u'IV Maccabees', u'4Macc', u'4Macc', [35, 24, 21, 26, 38, 35, 25, 29, 32, 21, 27, 20, 27, 20, 32, 25, 24, 24]), ], u'nt': [ (u'Matthew', u'Matt', u'Matt', [ 25, 23, 17, 25, 48, 34, 29, 34, 38, 42, 30, 50, 58, 36, 39, 28, 27, 35, 30, 34, 46, 46, 39, 51, 46, 75, 66, 20 ]), (u'Mark', u'Mark', u'Mark', [45, 28, 35, 41, 43, 56, 37, 38, 50, 52, 33, 44, 37, 72, 47, 20]), (u'Luke', u'Luke', u'Luke', [80, 52, 38, 44, 39, 49, 50, 56, 62, 42, 54, 59, 35, 35, 32, 31, 37, 43, 48, 47, 38, 71, 56, 53]), (u'John', u'John', u'John', [52, 25, 36, 54, 47, 71, 53, 59, 41, 42, 57, 50, 38, 31, 27, 33, 26, 40, 42, 31, 25]), (u'Acts', u'Acts', u'Acts', [ 26, 47, 26, 37, 42, 15, 60, 40, 43, 48, 30, 25, 52, 28, 41, 40, 34, 28, 41, 38, 40, 30, 35, 27, 27, 32, 44, 31 ]), (u'Romans', u'Rom', u'Rom', [32, 29, 31, 25, 21, 23, 25, 39, 33, 21, 36, 21, 14, 26, 33, 27]), (u'I Corinthians', u'1Cor', u'1Cor', [31, 16, 23, 21, 13, 20, 40, 13, 27, 33, 34, 31, 13, 40, 58, 24]), (u'II Corinthians', u'2Cor', u'2Cor', [24, 17, 18, 18, 21, 18, 16, 24, 15, 18, 33, 21, 14]), (u'Galatians', u'Gal', u'Gal', [24, 21, 29, 31, 26, 18]), (u'Ephesians', u'Eph', u'Eph', [23, 22, 21, 32, 33, 24]), (u'Philippians', u'Phil', u'Phil', [30, 30, 21, 23]), (u'Colossians', u'Col', u'Col', [29, 23, 25, 18]), (u'I Thessalonians', u'1Thess', u'1Thess', [10, 20, 13, 18, 28]), (u'II Thessalonians', u'2Thess', u'2Thess', [12, 17, 18]), (u'I Timothy', u'1Tim', u'1Tim', [20, 15, 16, 16, 25, 21]), (u'II Timothy', u'2Tim', u'2Tim', [18, 26, 17, 22]), (u'Titus', u'Titus', u'Titus', [16, 15, 15]), (u'Philemon', u'Phlm', u'Phlm', [25]), (u'Hebrews', u'Heb', u'Heb', [14, 18, 19, 16, 14, 20, 28, 13, 28, 39, 40, 29, 25]), (u'James', u'Jas', u'Jas', [27, 26, 18, 17, 20]), (u'I Peter', u'1Pet', u'1Pet', [25, 25, 22, 19, 14]), (u'II Peter', u'2Pet', u'2Pet', [21, 22, 18]), (u'I John', u'1John', u'1John', [10, 29, 24, 21, 21]), (u'II John', u'2John', u'2John', [13]), (u'III John', u'3John', u'3John', [15]), (u'Jude', u'Jude', u'Jude', [25]), (u'Revelation of John', u'Rev', u'Rev', [20, 29, 22, 11, 14, 17, 17, 13, 21, 11, 19, 18, 18, 20, 9, 21, 18, 24, 21, 15, 27, 21]), ], }, u'segond': { u'ot': [ (u'Genesis', u'Gen', u'Gen', [ 31, 25, 24, 26, 32, 22, 24, 22, 29, 32, 32, 20, 18, 24, 21, 16, 27, 33, 38, 18, 34, 24, 20, 67, 34, 35, 46, 22, 35, 43, 55, 32, 20, 31, 29, 43, 36, 30, 23, 23, 57, 38, 34, 34, 28, 34, 31, 22, 33, 26 ]), (u'Exodus', u'Exod', u'Exod', [ 22, 25, 22, 31, 23, 30, 29, 28, 35, 29, 10, 51, 22, 31, 27, 36, 16, 27, 25, 26, 36, 31, 33, 18, 40, 37, 21, 43, 46, 38, 18, 35, 23, 35, 35, 38, 29, 31, 43, 38 ]), (u'Leviticus', u'Lev', u'Lev', [ 17, 16, 17, 35, 26, 23, 38, 36, 24, 20, 47, 8, 59, 57, 33, 34, 16, 30, 37, 27, 24, 33, 44, 23, 55, 46, 34 ]), (u'Numbers', u'Num', u'Num', [ 54, 34, 51, 49, 31, 27, 89, 26, 23, 36, 35, 16, 33, 45, 41, 50, 13, 32, 22, 29, 35, 41, 30, 25, 18, 65, 23, 31, 39, 17, 54, 42, 56, 29, 34, 13 ]), (u'Deuteronomy', u'Deut', u'Deut', [ 46, 37, 29, 49, 33, 25, 26, 20, 29, 22, 32, 32, 18, 29, 23, 22, 20, 22, 21, 20, 23, 30, 25, 22, 19, 19, 26, 68, 29, 20, 30, 52, 29, 12 ]), (u'Joshua', u'Josh', u'Josh', [18, 24, 17, 24, 15, 27, 26, 35, 27, 43, 23, 24, 33, 15, 63, 10, 18, 28, 51, 9, 45, 34, 16, 33]), (u'Judges', u'Judg', u'Judg', [36, 23, 31, 24, 31, 40, 25, 35, 57, 18, 40, 15, 25, 20, 20, 31, 13, 31, 30, 48, 25]), (u'Ruth', u'Ruth', u'Ruth', [22, 23, 18, 22]), (u'I Samuel', u'1Sam', u'1Sam', [ 28, 36, 21, 22, 12, 21, 17, 22, 27, 27, 15, 25, 23, 52, 35, 23, 58, 30, 24, 43, 15, 23, 28, 23, 44, 25, 12, 25, 11, 31, 13 ]), (u'II Samuel', u'2Sam', u'2Sam', [27, 32, 39, 12, 25, 23, 29, 18, 13, 19, 27, 31, 39, 33, 37, 23, 29, 33, 43, 26, 22, 51, 39, 25]), (u'I Kings', u'1Kgs', u'1Kgs', [53, 46, 28, 34, 18, 38, 51, 66, 28, 29, 43, 33, 34, 31, 34, 34, 24, 46, 21, 43, 29, 54]), (u'II Kings', u'2Kgs', u'2Kgs', [18, 25, 27, 44, 27, 33, 20, 29, 37, 36, 21, 21, 25, 29, 38, 20, 41, 37, 37, 21, 26, 20, 37, 20, 30]), (u'I Chronicles', u'1Chr', u'1Chr', [ 54, 55, 24, 43, 26, 81, 40, 40, 44, 14, 47, 40, 14, 17, 29, 43, 27, 17, 19, 8, 30, 19, 32, 31, 31, 32, 34, 21, 30 ]), (u'II Chronicles', u'2Chr', u'2Chr', [ 17, 18, 17, 22, 14, 42, 22, 18, 31, 19, 23, 16, 23, 14, 19, 14, 19, 34, 11, 37, 20, 12, 21, 27, 28, 23, 9, 27, 36, 27, 21, 33, 25, 33, 27, 23 ]), (u'Ezra', u'Ezra', u'Ezra', [11, 70, 13, 24, 17, 22, 28, 36, 15, 44]), (u'Nehemiah', u'Neh', u'Neh', [11, 20, 32, 23, 19, 19, 73, 18, 38, 39, 36, 47, 31]), (u'Esther', u'Esth', u'Esth', [22, 23, 15, 17, 14, 14, 10, 17, 32, 3]), (u'Job', u'Job', u'Job', [ 22, 13, 26, 21, 27, 30, 21, 22, 35, 22, 20, 25, 28, 22, 35, 22, 16, 21, 29, 29, 34, 30, 17, 25, 6, 14, 23, 28, 25, 31, 40, 22, 33, 37, 16, 33, 24, 38, 38, 28, 25, 17 ]), (u'Psalms', u'Ps', u'Ps', [ 6, 12, 9, 9, 13, 11, 18, 10, 21, 18, 7, 9, 6, 7, 5, 11, 15, 51, 15, 10, 14, 32, 6, 10, 22, 12, 14, 9, 11, 13, 25, 11, 22, 23, 28, 13, 40, 23, 14, 18, 14, 12, 5, 27, 18, 12, 10, 15, 21, 23, 21, 11, 7, 9, 24, 14, 12, 12, 18, 14, 9, 13, 12, 11, 14, 20, 8, 36, 37, 6, 24, 20, 28, 23, 11, 13, 21, 72, 13, 20, 17, 8, 19, 13, 14, 17, 7, 19, 53, 17, 16, 16, 5, 23, 11, 13, 12, 9, 9, 5, 8, 29, 22, 35, 45, 48, 43, 14, 31, 7, 10, 10, 9, 8, 18, 19, 2, 29, 176, 7, 8, 9, 4, 8, 5, 6, 5, 6, 8, 8, 3, 18, 3, 3, 21, 26, 9, 8, 24, 14, 10, 8, 12, 15, 21, 10, 20, 14, 9, 6 ]), (u'Proverbs', u'Prov', u'Prov', [ 33, 22, 35, 27, 23, 35, 27, 36, 18, 32, 31, 28, 25, 35, 33, 33, 28, 24, 29, 30, 31, 29, 35, 34, 28, 28, 27, 28, 27, 33, 31 ]), (u'Ecclesiastes', u'Eccl', u'Eccl', [18, 26, 22, 17, 19, 12, 29, 17, 18, 20, 8, 16]), (u'Song of Solomon', u'Song', u'Song', [17, 17, 11, 16, 16, 12, 14, 14]), (u'Isaiah', u'Isa', u'Isa', [ 31, 22, 26, 6, 30, 13, 25, 23, 20, 34, 16, 6, 22, 32, 9, 14, 14, 7, 25, 6, 17, 25, 18, 23, 12, 21, 13, 29, 24, 33, 9, 20, 24, 17, 10, 22, 38, 22, 8, 31, 29, 25, 28, 28, 25, 13, 15, 22, 26, 11, 23, 15, 12, 17, 13, 12, 21, 14, 21, 22, 11, 12, 19, 11, 25, 24 ]), (u'Jeremiah', u'Jer', u'Jer', [ 19, 37, 25, 31, 31, 30, 34, 22, 26, 25, 23, 17, 27, 22, 21, 21, 27, 23, 15, 18, 14, 30, 40, 10, 38, 24, 22, 17, 32, 24, 40, 44, 26, 22, 19, 32, 21, 28, 18, 16, 18, 22, 13, 30, 5, 28, 7, 47, 39, 46, 64, 34 ]), (u'Lamentations', u'Lam', u'Lam', [22, 22, 66, 22, 22]), (u'Ezekiel', u'Ezek', u'Ezek', [ 28, 10, 27, 17, 17, 14, 27, 18, 11, 22, 25, 28, 23, 23, 8, 63, 24, 32, 14, 44, 37, 31, 49, 27, 17, 21, 36, 26, 21, 26, 18, 32, 33, 31, 15, 38, 28, 23, 29, 49, 26, 20, 27, 31, 25, 24, 23, 35 ]), (u'Daniel', u'Dan', u'Dan', [21, 49, 30, 37, 31, 28, 28, 27, 27, 21, 45, 13]), (u'Hosea', u'Hos', u'Hos', [9, 25, 5, 19, 15, 11, 16, 14, 17, 15, 11, 15, 16, 9]), (u'Joel', u'Joel', u'Joel', [20, 32, 21]), (u'Amos', u'Amos', u'Amos', [15, 16, 15, 13, 27, 14, 17, 14, 15]), (u'Obadiah', u'Obad', u'Obad', [21]), (u'Jonah', u'Jonah', u'Jonah', [16, 11, 10, 11]), (u'Micah', u'Mic', u'Mic', [16, 13, 12, 14, 14, 16, 20]), (u'Nahum', u'Nah', u'Nah', [14, 14, 19]), (u'Habakkuk', u'Hab', u'Hab', [17, 20, 19]), (u'Zephaniah', u'Zeph', u'Zeph', [18, 15, 20]), (u'Haggai', u'Hag', u'Hag', [15, 23]), (u'Zechariah', u'Zech', u'Zech', [21, 13, 10, 14, 11, 15, 14, 23, 17, 12, 17, 14, 9, 21]), (u'Malachi', u'Mal', u'Mal', [14, 17, 18, 6]), ], u'nt': [ (u'Matthew', u'Matt', u'Matt', [ 25, 23, 17, 25, 48, 34, 29, 34, 38, 42, 30, 50, 58, 36, 39, 28, 27, 35, 30, 34, 46, 46, 39, 51, 46, 75, 66, 20 ]), (u'Mark', u'Mark', u'Mark', [45, 28, 35, 41, 43, 56, 37, 38, 51, 52, 33, 44, 37, 72, 47, 20]), (u'Luke', u'Luke', u'Luke', [80, 52, 38, 44, 39, 49, 50, 56, 62, 42, 54, 59, 35, 35, 32, 31, 37, 43, 48, 47, 38, 71, 56, 53]), (u'John', u'John', u'John', [51, 25, 36, 54, 47, 71, 53, 59, 41, 42, 57, 50, 38, 31, 27, 33, 26, 40, 42, 31, 25]), (u'Acts', u'Acts', u'Acts', [ 26, 47, 26, 37, 42, 15, 60, 40, 43, 48, 30, 25, 52, 28, 41, 40, 34, 28, 40, 38, 40, 30, 35, 27, 27, 32, 44, 31 ]), (u'Romans', u'Rom', u'Rom', [32, 29, 31, 25, 21, 23, 25, 39, 33, 21, 36, 21, 14, 23, 33, 27]), (u'I Corinthians', u'1Cor', u'1Cor', [31, 16, 23, 21, 13, 20, 40, 13, 27, 33, 34, 31, 13, 40, 58, 24]), (u'II Corinthians', u'2Cor', u'2Cor', [24, 17, 18, 18, 21, 18, 16, 24, 15, 18, 33, 21, 13]), (u'Galatians', u'Gal', u'Gal', [24, 21, 29, 31, 26, 18]), (u'Ephesians', u'Eph', u'Eph', [23, 22, 21, 32, 33, 24]), (u'Philippians', u'Phil', u'Phil', [30, 30, 21, 23]), (u'Colossians', u'Col', u'Col', [29, 23, 25, 18]), (u'I Thessalonians', u'1Thess', u'1Thess', [10, 20, 13, 18, 28]), (u'II Thessalonians', u'2Thess', u'2Thess', [12, 17, 18]), (u'I Timothy', u'1Tim', u'1Tim', [20, 15, 16, 16, 25, 21]), (u'II Timothy', u'2Tim', u'2Tim', [18, 26, 17, 22]), (u'Titus', u'Titus', u'Titus', [16, 15, 15]), (u'Philemon', u'Phlm', u'Phlm', [25]), (u'Hebrews', u'Heb', u'Heb', [14, 18, 19, 16, 14, 20, 28, 13, 28, 39, 40, 29, 25]), (u'James', u'Jas', u'Jas', [27, 26, 18, 17, 20]), (u'I Peter', u'1Pet', u'1Pet', [25, 25, 22, 19, 14]), (u'II Peter', u'2Pet', u'2Pet', [21, 22, 18]), (u'I John', u'1John', u'1John', [10, 29, 24, 21, 21]), (u'II John', u'2John', u'2John', [13]), (u'III John', u'3John', u'3John', [15]), (u'Jude', u'Jude', u'Jude', [25]), (u'Revelation of John', u'Rev', u'Rev', [20, 29, 22, 11, 14, 17, 17, 13, 21, 11, 19, 18, 18, 20, 8, 21, 18, 24, 21, 15, 27, 21]), ], }, u'synodal': { u'ot': [ (u'Genesis', u'Gen', u'Gen', [ 31, 25, 24, 26, 32, 22, 24, 22, 29, 32, 32, 20, 18, 24, 21, 16, 27, 33, 38, 18, 34, 24, 20, 67, 34, 35, 46, 22, 35, 43, 55, 32, 20, 31, 29, 43, 36, 30, 23, 23, 57, 38, 34, 34, 28, 34, 31, 22, 33, 26 ]), (u'Exodus', u'Exod', u'Exod', [ 22, 25, 22, 31, 23, 30, 25, 32, 35, 29, 10, 51, 22, 31, 27, 36, 16, 27, 25, 26, 36, 31, 33, 18, 40, 37, 21, 43, 46, 38, 18, 35, 23, 35, 35, 38, 29, 31, 43, 38 ]), (u'Leviticus', u'Lev', u'Lev', [ 17, 16, 17, 35, 19, 30, 38, 36, 24, 20, 47, 8, 59, 56, 33, 34, 16, 30, 37, 27, 24, 33, 44, 23, 55, 46, 34 ]), (u'Numbers', u'Num', u'Num', [ 54, 34, 51, 49, 31, 27, 89, 26, 23, 36, 35, 15, 34, 45, 41, 50, 13, 32, 22, 29, 35, 41, 30, 25, 18, 65, 23, 31, 39, 17, 54, 42, 56, 29, 34, 13 ]), (u'Deuteronomy', u'Deut', u'Deut', [ 46, 37, 29, 49, 33, 25, 26, 20, 29, 22, 32, 32, 18, 29, 23, 22, 20, 22, 21, 20, 23, 30, 25, 22, 19, 19, 26, 68, 29, 20, 30, 52, 29, 12 ]), (u'Joshua', u'Josh', u'Josh', [18, 24, 17, 24, 16, 26, 26, 35, 27, 43, 23, 24, 33, 15, 63, 10, 18, 28, 51, 9, 45, 34, 16, 36]), (u'Judges', u'Judg', u'Judg', [36, 23, 31, 24, 31, 40, 25, 35, 57, 18, 40, 15, 25, 20, 20, 31, 13, 31, 30, 48, 25]), (u'Ruth', u'Ruth', u'Ruth', [22, 23, 18, 22]), (u'I Samuel', u'1Sam', u'1Sam', [ 28, 36, 21, 22, 12, 21, 17, 22, 27, 27, 15, 25, 23, 52, 35, 23, 58, 30, 24, 43, 15, 23, 28, 23, 44, 25, 12, 25, 11, 31, 13 ]), (u'II Samuel', u'2Sam', u'2Sam', [27, 32, 39, 12, 25, 23, 29, 18, 13, 19, 27, 31, 39, 33, 37, 23, 29, 33, 43, 26, 22, 51, 39, 25]), (u'I Kings', u'1Kgs', u'1Kgs', [53, 46, 28, 34, 18, 38, 51, 66, 28, 29, 43, 33, 34, 31, 34, 34, 24, 46, 21, 43, 29, 53]), (u'II Kings', u'2Kgs', u'2Kgs', [18, 25, 27, 44, 27, 33, 20, 29, 37, 36, 21, 21, 25, 29, 38, 20, 41, 37, 37, 21, 26, 20, 37, 20, 30]), (u'I Chronicles', u'1Chr', u'1Chr', [ 54, 55, 24, 43, 26, 81, 40, 40, 44, 14, 47, 40, 14, 17, 29, 43, 27, 17, 19, 8, 30, 19, 32, 31, 31, 32, 34, 21, 30 ]), (u'II Chronicles', u'2Chr', u'2Chr', [ 17, 18, 17, 22, 14, 42, 22, 18, 31, 19, 23, 16, 22, 15, 19, 14, 19, 34, 11, 37, 20, 12, 21, 27, 28, 23, 9, 27, 36, 27, 21, 33, 25, 33, 27, 23 ]), (u'Prayer of Manasses', u'PrMan', u'PrMan', [12]), (u'Ezra', u'Ezra', u'Ezra', [11, 70, 13, 24, 17, 22, 28, 36, 15, 44]), (u'Nehemiah', u'Neh', u'Neh', [11, 20, 32, 23, 19, 19, 73, 18, 38, 39, 36, 47, 31]), (u'I Esdras', u'1Esd', u'1Esd', [58, 31, 24, 63, 70, 34, 15, 92, 55]), (u'Tobit', u'Tob', u'Tob', [22, 14, 17, 21, 22, 18, 17, 21, 6, 13, 18, 22, 18, 15]), (u'Judith', u'Jdt', u'Jdt', [16, 28, 10, 15, 24, 21, 32, 36, 14, 23, 23, 20, 20, 19, 14, 25]), (u'Esther', u'Esth', u'Esth', [22, 23, 15, 17, 14, 14, 10, 17, 32, 3]), (u'Job', u'Job', u'Job', [ 22, 13, 26, 21, 27, 30, 21, 22, 35, 22, 20, 25, 28, 22, 35, 22, 16, 21, 29, 29, 34, 30, 17, 25, 6, 14, 23, 28, 25, 31, 40, 22, 33, 37, 16, 33, 24, 41, 35, 27, 26, 17 ]), (u'Psalms', u'Ps', u'Ps', [ 6, 12, 9, 9, 13, 11, 18, 10, 39, 7, 9, 6, 7, 5, 11, 15, 51, 15, 10, 14, 32, 6, 10, 22, 12, 14, 9, 11, 13, 25, 11, 22, 23, 28, 13, 40, 23, 14, 18, 14, 12, 5, 27, 18, 12, 10, 15, 21, 23, 21, 11, 7, 9, 24, 14, 12, 12, 18, 14, 9, 13, 12, 11, 14, 20, 8, 36, 37, 6, 24, 20, 28, 23, 11, 13, 21, 72, 13, 20, 17, 8, 19, 13, 14, 17, 7, 19, 53, 17, 16, 16, 5, 23, 11, 13, 12, 9, 9, 5, 8, 29, 22, 35, 45, 48, 43, 14, 31, 7, 10, 10, 9, 26, 9, 10, 2, 29, 176, 7, 8, 9, 4, 8, 5, 6, 5, 6, 8, 8, 3, 18, 3, 3, 21, 26, 9, 8, 24, 14, 10, 7, 12, 15, 21, 10, 11, 9, 14, 9, 6, 7 ]), (u'Proverbs', u'Prov', u'Prov', [ 33, 22, 35, 29, 23, 35, 27, 36, 18, 32, 31, 28, 26, 35, 33, 33, 28, 25, 29, 30, 31, 29, 35, 34, 28, 28, 27, 28, 27, 33, 31 ]), (u'Ecclesiastes', u'Eccl', u'Eccl', [18, 26, 22, 17, 19, 12, 29, 17, 18, 20, 10, 14]), (u'Song of Solomon', u'Song', u'Song', [16, 17, 11, 16, 16, 12, 14, 14]), (u'Wisdom', u'Wis', u'Wis', [16, 24, 19, 20, 24, 27, 30, 21, 19, 21, 27, 28, 19, 31, 19, 29, 20, 25, 21]), (u'Sirach', u'Sir', u'Sir', [ 30, 18, 31, 35, 18, 37, 39, 22, 23, 34, 34, 18, 32, 27, 20, 31, 31, 33, 28, 31, 31, 31, 37, 37, 29, 27, 33, 30, 31, 27, 37, 25, 33, 26, 23, 29, 34, 39, 42, 32, 29, 26, 36, 27, 31, 23, 31, 28, 18, 31, 38 ]), (u'Isaiah', u'Isa', u'Isa', [ 31, 22, 25, 6, 30, 13, 25, 22, 21, 34, 16, 6, 22, 32, 9, 14, 14, 7, 25, 6, 17, 25, 18, 23, 12, 21, 13, 29, 24, 33, 9, 20, 24, 17, 10, 22, 38, 22, 8, 31, 29, 25, 28, 28, 25, 13, 15, 22, 26, 11, 23, 15, 12, 17, 13, 12, 21, 14, 21, 22, 11, 12, 19, 12, 25, 24 ]), (u'Jeremiah', u'Jer', u'Jer', [ 19, 37, 25, 31, 31, 30, 34, 22, 26, 25, 23, 17, 27, 22, 21, 21, 27, 23, 15, 18, 14, 30, 40, 10, 38, 24, 22, 17, 32, 24, 40, 44, 26, 22, 19, 32, 21, 28, 18, 16, 18, 22, 13, 30, 5, 28, 7, 47, 39, 46, 64, 34 ]), (u'Lamentations', u'Lam', u'Lam', [22, 22, 66, 22, 22]), (u'Epistle of Jeremiah', u'EpJer', u'EpJer', [72]), (u'Baruch', u'Bar', u'Bar', [22, 35, 38, 37, 9]), (u'Ezekiel', u'Ezek', u'Ezek', [ 28, 10, 27, 17, 17, 14, 27, 18, 11, 22, 25, 28, 23, 23, 8, 63, 24, 32, 14, 49, 32, 31, 49, 27, 17, 21, 36, 26, 21, 26, 18, 32, 33, 31, 15, 38, 28, 23, 29, 49, 26, 20, 27, 31, 25, 24, 23, 35 ]), (u'Daniel', u'Dan', u'Dan', [21, 49, 100, 34, 31, 28, 28, 27, 27, 21, 45, 13, 64, 42]), (u'Hosea', u'Hos', u'Hos', [11, 23, 5, 19, 15, 11, 16, 14, 17, 15, 12, 14, 15, 10]), (u'Joel', u'Joel', u'Joel', [20, 32, 21]), (u'Amos', u'Amos', u'Amos', [15, 16, 15, 13, 27, 14, 17, 14, 15]), (u'Obadiah', u'Obad', u'Obad', [21]), (u'Jonah', u'Jonah', u'Jonah', [16, 11, 10, 11]), (u'Micah', u'Mic', u'Mic', [16, 13, 12, 13, 15, 16, 20]), (u'Nahum', u'Nah', u'Nah', [15, 13, 19]), (u'Habakkuk', u'Hab', u'Hab', [17, 20, 19]), (u'Zephaniah', u'Zeph', u'Zeph', [18, 15, 20]), (u'Haggai', u'Hag', u'Hag', [15, 23]), (u'Zechariah', u'Zech', u'Zech', [21, 13, 10, 14, 11, 15, 14, 23, 17, 12, 17, 14, 9, 21]), (u'Malachi', u'Mal', u'Mal', [14, 17, 18, 6]), (u'I Maccabees', u'1Macc', u'1Macc', [64, 70, 60, 61, 68, 63, 50, 32, 73, 89, 74, 53, 53, 49, 41, 24]), (u'II Maccabees', u'2Macc', u'2Macc', [36, 33, 40, 50, 27, 31, 42, 36, 29, 38, 38, 45, 26, 46, 39]), (u'III Maccabees', u'3Macc', u'3Macc', [25, 24, 22, 16, 36, 37, 20]), (u'II Esdras', u'2Esd', u'2Esd', [40, 48, 36, 52, 56, 59, 70, 63, 47, 60, 46, 51, 58, 48, 63, 78]), ], u'nt': [ (u'Matthew', u'Matt', u'Matt', [ 25, 23, 17, 25, 48, 34, 29, 34, 38, 42, 30, 50, 58, 36, 39, 28, 27, 35, 30, 34, 46, 46, 39, 51, 46, 75, 66, 20 ]), (u'Mark', u'Mark', u'Mark', [45, 28, 35, 41, 43, 56, 37, 38, 50, 52, 33, 44, 37, 72, 47, 20]), (u'Luke', u'Luke', u'Luke', [80, 52, 38, 44, 39, 49, 50, 56, 62, 42, 54, 59, 35, 35, 32, 31, 37, 43, 48, 47, 38, 71, 56, 53]), (u'John', u'John', u'John', [51, 25, 36, 54, 47, 71, 53, 59, 41, 42, 57, 50, 38, 31, 27, 33, 26, 40, 42, 31, 25]), (u'Acts', u'Acts', u'Acts', [ 26, 47, 26, 37, 42, 15, 60, 40, 43, 48, 30, 25, 52, 28, 41, 40, 34, 28, 40, 38, 40, 30, 35, 27, 27, 32, 44, 31 ]), (u'James', u'Jas', u'Jas', [27, 26, 18, 17, 20]), (u'I Peter', u'1Pet', u'1Pet', [25, 25, 22, 19, 14]), (u'II Peter', u'2Pet', u'2Pet', [21, 22, 18]), (u'I John', u'1John', u'1John', [10, 29, 24, 21, 21]), (u'II John', u'2John', u'2John', [13]), (u'III John', u'3John', u'3John', [15]), (u'Jude', u'Jude', u'Jude', [25]), (u'Romans', u'Rom', u'Rom', [32, 29, 31, 25, 21, 23, 25, 39, 33, 21, 36, 21, 14, 26, 33, 24]), (u'I Corinthians', u'1Cor', u'1Cor', [31, 16, 23, 21, 13, 20, 40, 13, 27, 33, 34, 31, 13, 40, 58, 24]), (u'II Corinthians', u'2Cor', u'2Cor', [24, 17, 18, 18, 21, 18, 16, 24, 15, 18, 32, 21, 13]), (u'Galatians', u'Gal', u'Gal', [24, 21, 29, 31, 26, 18]), (u'Ephesians', u'Eph', u'Eph', [23, 22, 21, 32, 33, 24]), (u'Philippians', u'Phil', u'Phil', [30, 30, 21, 23]), (u'Colossians', u'Col', u'Col', [29, 23, 25, 18]), (u'I Thessalonians', u'1Thess', u'1Thess', [10, 20, 13, 18, 28]), (u'II Thessalonians', u'2Thess', u'2Thess', [12, 17, 18]), (u'I Timothy', u'1Tim', u'1Tim', [20, 15, 16, 16, 25, 21]), (u'II Timothy', u'2Tim', u'2Tim', [18, 26, 17, 22]), (u'Titus', u'Titus', u'Titus', [16, 15, 15]), (u'Philemon', u'Phlm', u'Phlm', [25]), (u'Hebrews', u'Heb', u'Heb', [14, 18, 19, 16, 14, 20, 28, 13, 28, 39, 40, 29, 25]), (u'Revelation of John', u'Rev', u'Rev', [20, 29, 22, 11, 14, 17, 17, 13, 21, 11, 19, 17, 18, 20, 8, 21, 18, 24, 21, 15, 27, 21]), ], }, u'synodalprot': { u'ot': [ (u'Genesis', u'Gen', u'Gen', [ 31, 25, 24, 26, 32, 22, 24, 22, 29, 32, 32, 20, 18, 24, 21, 16, 27, 33, 38, 18, 34, 24, 20, 67, 34, 35, 46, 22, 35, 43, 55, 32, 20, 31, 29, 43, 36, 30, 23, 23, 57, 38, 34, 34, 28, 34, 31, 22, 33, 26 ]), (u'Exodus', u'Exod', u'Exod', [ 22, 25, 22, 31, 23, 30, 25, 32, 35, 29, 10, 51, 22, 31, 27, 36, 16, 27, 25, 26, 36, 31, 33, 18, 40, 37, 21, 43, 46, 38, 18, 35, 23, 35, 35, 38, 29, 31, 43, 38 ]), (u'Leviticus', u'Lev', u'Lev', [ 17, 16, 17, 35, 19, 30, 38, 36, 24, 20, 47, 8, 59, 56, 33, 34, 16, 30, 37, 27, 24, 33, 44, 23, 55, 46, 34 ]), (u'Numbers', u'Num', u'Num', [ 54, 34, 51, 49, 31, 27, 89, 26, 23, 36, 35, 15, 34, 45, 41, 50, 13, 32, 22, 29, 35, 41, 30, 25, 18, 65, 23, 31, 39, 17, 54, 42, 56, 29, 34, 13 ]), (u'Deuteronomy', u'Deut', u'Deut', [ 46, 37, 29, 49, 33, 25, 26, 20, 29, 22, 32, 32, 18, 29, 23, 22, 20, 22, 21, 20, 23, 30, 25, 22, 19, 19, 26, 68, 29, 20, 30, 52, 29, 12 ]), (u'Joshua', u'Josh', u'Josh', [18, 24, 17, 24, 16, 26, 26, 35, 27, 43, 23, 24, 33, 15, 63, 10, 18, 28, 51, 9, 45, 34, 16, 33]), (u'Judges', u'Judg', u'Judg', [36, 23, 31, 24, 31, 40, 25, 35, 57, 18, 40, 15, 25, 20, 20, 31, 13, 31, 30, 48, 25]), (u'Ruth', u'Ruth', u'Ruth', [22, 23, 18, 22]), (u'I Samuel', u'1Sam', u'1Sam', [ 28, 36, 21, 22, 12, 21, 17, 22, 27, 27, 15, 25, 23, 52, 35, 23, 58, 30, 24, 43, 15, 23, 28, 23, 44, 25, 12, 25, 11, 31, 13 ]), (u'II Samuel', u'2Sam', u'2Sam', [27, 32, 39, 12, 25, 23, 29, 18, 13, 19, 27, 31, 39, 33, 37, 23, 29, 33, 43, 26, 22, 51, 39, 25]), (u'I Kings', u'1Kgs', u'1Kgs', [53, 46, 28, 34, 18, 38, 51, 66, 28, 29, 43, 33, 34, 31, 34, 34, 24, 46, 21, 43, 29, 53]), (u'II Kings', u'2Kgs', u'2Kgs', [18, 25, 27, 44, 27, 33, 20, 29, 37, 36, 21, 21, 25, 29, 38, 20, 41, 37, 37, 21, 26, 20, 37, 20, 30]), (u'I Chronicles', u'1Chr', u'1Chr', [ 54, 55, 24, 43, 26, 81, 40, 40, 44, 14, 47, 40, 14, 17, 29, 43, 27, 17, 19, 8, 30, 19, 32, 31, 31, 32, 34, 21, 30 ]), (u'II Chronicles', u'2Chr', u'2Chr', [ 17, 18, 17, 22, 14, 42, 22, 18, 31, 19, 23, 16, 22, 15, 19, 14, 19, 34, 11, 37, 20, 12, 21, 27, 28, 23, 9, 27, 36, 27, 21, 33, 25, 33, 27, 23 ]), (u'Ezra', u'Ezra', u'Ezra', [11, 70, 13, 24, 17, 22, 28, 36, 15, 44]), (u'Nehemiah', u'Neh', u'Neh', [11, 20, 32, 23, 19, 19, 73, 18, 38, 39, 36, 47, 31]), (u'Esther', u'Esth', u'Esth', [22, 23, 15, 17, 14, 14, 10, 17, 32, 3]), (u'Job', u'Job', u'Job', [ 22, 13, 26, 21, 27, 30, 21, 22, 35, 22, 20, 25, 28, 22, 35, 22, 16, 21, 29, 29, 34, 30, 17, 25, 6, 14, 23, 28, 25, 31, 40, 22, 33, 37, 16, 33, 24, 41, 35, 27, 26, 17 ]), (u'Psalms', u'Ps', u'Ps', [ 6, 12, 9, 9, 13, 11, 18, 10, 39, 7, 9, 6, 7, 5, 11, 15, 51, 15, 10, 14, 32, 6, 10, 22, 12, 14, 9, 11, 13, 25, 11, 22, 23, 28, 13, 40, 23, 14, 18, 14, 12, 5, 27, 18, 12, 10, 15, 21, 23, 21, 11, 7, 9, 24, 14, 12, 12, 18, 14, 9, 13, 12, 11, 14, 20, 8, 36, 37, 6, 24, 20, 28, 23, 11, 13, 21, 72, 13, 20, 17, 8, 19, 13, 14, 17, 7, 19, 53, 17, 16, 16, 5, 23, 11, 13, 12, 9, 9, 5, 8, 29, 22, 35, 45, 48, 43, 14, 31, 7, 10, 10, 9, 26, 9, 10, 2, 29, 176, 7, 8, 9, 4, 8, 5, 6, 5, 6, 8, 8, 3, 18, 3, 3, 21, 26, 9, 8, 24, 14, 10, 7, 12, 15, 21, 10, 11, 9, 14, 9, 6 ]), (u'Proverbs', u'Prov', u'Prov', [ 33, 22, 35, 27, 23, 35, 27, 36, 18, 32, 31, 28, 25, 35, 33, 33, 28, 24, 29, 30, 31, 29, 35, 34, 28, 28, 27, 28, 27, 33, 31 ]), (u'Ecclesiastes', u'Eccl', u'Eccl', [18, 26, 22, 17, 19, 12, 29, 17, 18, 20, 10, 14]), (u'Song of Solomon', u'Song', u'Song', [16, 17, 11, 16, 16, 12, 14, 14]), (u'Isaiah', u'Isa', u'Isa', [ 31, 22, 25, 6, 30, 13, 25, 22, 21, 34, 16, 6, 22, 32, 9, 14, 14, 7, 25, 6, 17, 25, 18, 23, 12, 21, 13, 29, 24, 33, 9, 20, 24, 17, 10, 22, 38, 22, 8, 31, 29, 25, 28, 28, 25, 13, 15, 22, 26, 11, 23, 15, 12, 17, 13, 12, 21, 14, 21, 22, 11, 12, 19, 12, 25, 24 ]), (u'Jeremiah', u'Jer', u'Jer', [ 19, 37, 25, 31, 31, 30, 34, 22, 26, 25, 23, 17, 27, 22, 21, 21, 27, 23, 15, 18, 14, 30, 40, 10, 38, 24, 22, 17, 32, 24, 40, 44, 26, 22, 19, 32, 21, 28, 18, 16, 18, 22, 13, 30, 5, 28, 7, 47, 39, 46, 64, 34 ]), (u'Lamentations', u'Lam', u'Lam', [22, 22, 66, 22, 22]), (u'Ezekiel', u'Ezek', u'Ezek', [ 28, 10, 27, 17, 17, 14, 27, 18, 11, 22, 25, 28, 23, 23, 8, 63, 24, 32, 14, 49, 32, 31, 49, 27, 17, 21, 36, 26, 21, 26, 18, 32, 33, 31, 15, 38, 28, 23, 29, 49, 26, 20, 27, 31, 25, 24, 23, 35 ]), (u'Daniel', u'Dan', u'Dan', [21, 49, 33, 34, 31, 28, 28, 27, 27, 21, 45, 13]), (u'Hosea', u'Hos', u'Hos', [11, 23, 5, 19, 15, 11, 16, 14, 17, 15, 12, 14, 15, 10]), (u'Joel', u'Joel', u'Joel', [20, 32, 21]), (u'Amos', u'Amos', u'Amos', [15, 16, 15, 13, 27, 14, 17, 14, 15]), (u'Obadiah', u'Obad', u'Obad', [21]), (u'Jonah', u'Jonah', u'Jonah', [16, 11, 10, 11]), (u'Micah', u'Mic', u'Mic', [16, 13, 12, 13, 15, 16, 20]), (u'Nahum', u'Nah', u'Nah', [15, 13, 19]), (u'Habakkuk', u'Hab', u'Hab', [17, 20, 19]), (u'Zephaniah', u'Zeph', u'Zeph', [18, 15, 20]), (u'Haggai', u'Hag', u'Hag', [15, 23]), (u'Zechariah', u'Zech', u'Zech', [21, 13, 10, 14, 11, 15, 14, 23, 17, 12, 17, 14, 9, 21]), (u'Malachi', u'Mal', u'Mal', [14, 17, 18, 6]), ], u'nt': [ (u'Matthew', u'Matt', u'Matt', [ 25, 23, 17, 25, 48, 34, 29, 34, 38, 42, 30, 50, 58, 36, 39, 28, 27, 35, 30, 34, 46, 46, 39, 51, 46, 75, 66, 20 ]), (u'Mark', u'Mark', u'Mark', [45, 28, 35, 41, 43, 56, 37, 38, 50, 52, 33, 44, 37, 72, 47, 20]), (u'Luke', u'Luke', u'Luke', [80, 52, 38, 44, 39, 49, 50, 56, 62, 42, 54, 59, 35, 35, 32, 31, 37, 43, 48, 47, 38, 71, 56, 53]), (u'John', u'John', u'John', [51, 25, 36, 54, 47, 71, 53, 59, 41, 42, 57, 50, 38, 31, 27, 33, 26, 40, 42, 31, 25]), (u'Acts', u'Acts', u'Acts', [ 26, 47, 26, 37, 42, 15, 60, 40, 43, 48, 30, 25, 52, 28, 41, 40, 34, 28, 40, 38, 40, 30, 35, 27, 27, 32, 44, 31 ]), (u'James', u'Jas', u'Jas', [27, 26, 18, 17, 20]), (u'I Peter', u'1Pet', u'1Pet', [25, 25, 22, 19, 14]), (u'II Peter', u'2Pet', u'2Pet', [21, 22, 18]), (u'I John', u'1John', u'1John', [10, 29, 24, 21, 21]), (u'II John', u'2John', u'2John', [13]), (u'III John', u'3John', u'3John', [15]), (u'Jude', u'Jude', u'Jude', [25]), (u'Romans', u'Rom', u'Rom', [32, 29, 31, 25, 21, 23, 25, 39, 33, 21, 36, 21, 14, 26, 33, 24]), (u'I Corinthians', u'1Cor', u'1Cor', [31, 16, 23, 21, 13, 20, 40, 13, 27, 33, 34, 31, 13, 40, 58, 24]), (u'II Corinthians', u'2Cor', u'2Cor', [24, 17, 18, 18, 21, 18, 16, 24, 15, 18, 32, 21, 13]), (u'Galatians', u'Gal', u'Gal', [24, 21, 29, 31, 26, 18]), (u'Ephesians', u'Eph', u'Eph', [23, 22, 21, 32, 33, 24]), (u'Philippians', u'Phil', u'Phil', [30, 30, 21, 23]), (u'Colossians', u'Col', u'Col', [29, 23, 25, 18]), (u'I Thessalonians', u'1Thess', u'1Thess', [10, 20, 13, 18, 28]), (u'II Thessalonians', u'2Thess', u'2Thess', [12, 17, 18]), (u'I Timothy', u'1Tim', u'1Tim', [20, 15, 16, 16, 25, 21]), (u'II Timothy', u'2Tim', u'2Tim', [18, 26, 17, 22]), (u'Titus', u'Titus', u'Titus', [16, 15, 15]), (u'Philemon', u'Phlm', u'Phlm', [25]), (u'Hebrews', u'Heb', u'Heb', [14, 18, 19, 16, 14, 20, 28, 13, 28, 39, 40, 29, 25]), (u'Revelation of John', u'Rev', u'Rev', [20, 29, 22, 11, 14, 17, 17, 13, 21, 11, 19, 17, 18, 20, 8, 21, 18, 24, 21, 15, 27, 21]), ], }, u'vulg': { u'ot': [ (u'Genesis', u'Gen', u'Gen', [ 31, 25, 24, 26, 31, 22, 24, 22, 29, 32, 32, 20, 18, 24, 21, 16, 27, 33, 38, 18, 34, 24, 20, 67, 34, 35, 46, 22, 35, 43, 55, 32, 20, 31, 29, 43, 36, 30, 23, 23, 57, 38, 34, 34, 28, 34, 31, 22, 32, 25 ]), (u'Exodus', u'Exod', u'Exod', [ 22, 25, 22, 31, 23, 30, 25, 32, 35, 29, 10, 51, 22, 31, 27, 36, 16, 27, 25, 26, 36, 31, 33, 18, 40, 37, 21, 43, 46, 38, 18, 35, 23, 35, 35, 38, 29, 31, 43, 36 ]), (u'Leviticus', u'Lev', u'Lev', [ 17, 16, 17, 35, 19, 30, 38, 36, 24, 20, 47, 8, 59, 57, 33, 34, 16, 30, 37, 27, 24, 33, 44, 23, 55, 45, 34 ]), (u'Numbers', u'Num', u'Num', [ 54, 34, 51, 49, 31, 27, 89, 26, 23, 36, 34, 15, 34, 45, 41, 50, 13, 32, 22, 30, 35, 41, 30, 25, 18, 65, 23, 31, 39, 17, 54, 42, 56, 29, 34, 13 ]), (u'Deuteronomy', u'Deut', u'Deut', [ 46, 37, 29, 49, 33, 25, 26, 20, 29, 22, 32, 32, 18, 29, 23, 22, 20, 22, 21, 20, 23, 30, 25, 22, 19, 19, 26, 68, 29, 20, 30, 52, 29, 12 ]), (u'Joshua', u'Josh', u'Josh', [18, 24, 17, 25, 16, 27, 26, 35, 27, 43, 23, 24, 33, 15, 63, 10, 18, 28, 51, 9, 43, 34, 16, 33]), (u'Judges', u'Judg', u'Judg', [36, 23, 31, 24, 32, 40, 25, 35, 57, 18, 40, 15, 25, 20, 20, 31, 13, 31, 30, 48, 24]), (u'Ruth', u'Ruth', u'Ruth', [22, 23, 18, 22]), (u'I Samuel', u'1Sam', u'1Sam', [ 28, 36, 21, 22, 12, 21, 17, 22, 27, 27, 15, 25, 23, 52, 35, 23, 58, 30, 24, 43, 15, 23, 28, 23, 44, 25, 12, 25, 11, 31, 13 ]), (u'II Samuel', u'2Sam', u'2Sam', [27, 32, 39, 12, 25, 23, 29, 18, 13, 19, 27, 31, 39, 33, 37, 23, 29, 33, 43, 26, 22, 51, 39, 25]), (u'I Kings', u'1Kgs', u'1Kgs', [53, 46, 28, 34, 18, 38, 51, 66, 28, 29, 43, 33, 34, 31, 34, 34, 24, 46, 21, 43, 29, 54]), (u'II Kings', u'2Kgs', u'2Kgs', [18, 25, 27, 44, 27, 33, 20, 29, 37, 36, 21, 21, 25, 29, 38, 20, 41, 37, 37, 21, 26, 20, 37, 20, 30]), (u'I Chronicles', u'1Chr', u'1Chr', [ 54, 55, 24, 43, 26, 81, 40, 40, 44, 14, 46, 40, 14, 17, 29, 43, 27, 17, 19, 7, 30, 19, 32, 31, 31, 32, 34, 21, 30 ]), (u'II Chronicles', u'2Chr', u'2Chr', [ 17, 18, 17, 22, 14, 42, 22, 18, 31, 19, 23, 16, 22, 15, 19, 14, 19, 34, 11, 37, 20, 12, 21, 27, 28, 23, 9, 27, 36, 27, 21, 33, 25, 33, 27, 23 ]), (u'Ezra', u'Ezra', u'Ezra', [11, 70, 13, 24, 17, 22, 28, 36, 15, 44]), (u'Nehemiah', u'Neh', u'Neh', [11, 20, 31, 23, 19, 19, 73, 18, 38, 39, 36, 46, 31]), (u'Tobit', u'Tob', u'Tob', [25, 23, 25, 23, 28, 22, 20, 24, 12, 13, 21, 22, 23, 17]), (u'Judith', u'Jdt', u'Jdt', [12, 18, 15, 17, 29, 21, 25, 34, 19, 20, 21, 20, 31, 18, 15, 31]), (u'Esther', u'Esth', u'Esth', [22, 23, 15, 17, 14, 14, 10, 17, 32, 13, 12, 6, 18, 19, 19, 24]), (u'Job', u'Job', u'Job', [ 22, 13, 26, 21, 27, 30, 21, 22, 35, 22, 20, 25, 28, 22, 35, 23, 16, 21, 29, 29, 34, 30, 17, 25, 6, 14, 23, 28, 25, 31, 40, 22, 33, 37, 16, 33, 24, 41, 35, 28, 25, 16 ]), (u'Psalms', u'Ps', u'Ps', [ 6, 13, 9, 10, 13, 11, 18, 10, 39, 8, 9, 6, 7, 5, 11, 15, 51, 15, 10, 14, 32, 6, 10, 22, 12, 14, 9, 11, 13, 25, 11, 22, 23, 28, 13, 40, 23, 14, 18, 14, 12, 6, 26, 18, 12, 10, 15, 21, 23, 21, 11, 7, 9, 24, 13, 12, 12, 18, 14, 9, 13, 12, 11, 14, 20, 8, 36, 37, 6, 24, 20, 28, 23, 11, 13, 21, 72, 13, 20, 17, 8, 19, 13, 14, 17, 7, 19, 53, 17, 16, 16, 5, 23, 11, 13, 12, 9, 9, 5, 8, 29, 22, 35, 45, 48, 43, 14, 31, 7, 10, 10, 9, 26, 9, 10, 2, 29, 176, 7, 8, 9, 4, 8, 5, 7, 5, 6, 8, 8, 3, 18, 3, 3, 21, 27, 9, 8, 24, 14, 10, 8, 12, 15, 21, 10, 11, 9, 14, 9, 6 ]), (u'Proverbs', u'Prov', u'Prov', [ 33, 22, 35, 27, 23, 35, 27, 36, 18, 32, 31, 28, 25, 35, 33, 33, 28, 24, 29, 30, 31, 29, 35, 34, 28, 28, 27, 28, 27, 33, 31 ]), (u'Ecclesiastes', u'Eccl', u'Eccl', [18, 26, 22, 17, 19, 11, 30, 17, 18, 20, 10, 14]), (u'Song of Solomon', u'Song', u'Song', [16, 17, 11, 16, 17, 12, 13, 14]), (u'Wisdom', u'Wis', u'Wis', [16, 25, 19, 20, 24, 27, 30, 21, 19, 21, 27, 27, 19, 31, 19, 29, 20, 25, 20]), (u'Sirach', u'Sir', u'Sir', [ 40, 23, 34, 36, 18, 37, 40, 22, 25, 34, 36, 19, 32, 27, 22, 31, 31, 33, 28, 33, 31, 33, 38, 47, 36, 28, 33, 30, 35, 27, 42, 28, 33, 31, 26, 28, 34, 39, 41, 32, 28, 26, 37, 27, 31, 23, 31, 28, 19, 31, 38 ]), (u'Isaiah', u'Isa', u'Isa', [ 31, 22, 26, 6, 30, 13, 25, 22, 21, 34, 16, 6, 22, 32, 9, 14, 14, 7, 25, 6, 17, 25, 18, 23, 12, 21, 13, 29, 24, 33, 9, 20, 24, 17, 10, 22, 38, 22, 8, 31, 29, 25, 28, 28, 26, 13, 15, 22, 26, 11, 23, 15, 12, 17, 13, 12, 21, 14, 21, 22, 11, 12, 19, 12, 25, 24 ]), (u'Jeremiah', u'Jer', u'Jer', [ 19, 37, 25, 31, 31, 30, 34, 22, 26, 25, 23, 17, 27, 22, 21, 21, 27, 23, 15, 18, 14, 30, 40, 10, 38, 24, 22, 17, 32, 24, 40, 44, 26, 22, 19, 32, 20, 28, 18, 16, 18, 22, 13, 30, 5, 28, 7, 47, 39, 46, 64, 34 ]), (u'Lamentations', u'Lam', u'Lam', [22, 22, 66, 22, 22]), (u'Baruch', u'Bar', u'Bar', [22, 35, 38, 37, 9, 72]), (u'Ezekiel', u'Ezek', u'Ezek', [ 28, 9, 27, 17, 17, 14, 27, 18, 11, 22, 25, 28, 23, 23, 8, 63, 24, 32, 14, 49, 32, 31, 49, 27, 17, 21, 36, 26, 21, 26, 18, 32, 33, 31, 15, 38, 28, 23, 29, 49, 26, 20, 27, 31, 25, 24, 23, 35 ]), (u'Daniel', u'Dan', u'Dan', [21, 49, 100, 34, 31, 28, 28, 27, 27, 21, 45, 13, 65, 42]), (u'Hosea', u'Hos', u'Hos', [11, 24, 5, 19, 15, 11, 16, 14, 17, 15, 12, 14, 15, 10]), (u'Joel', u'Joel', u'Joel', [20, 32, 21]), (u'Amos', u'Amos', u'Amos', [15, 16, 15, 13, 27, 15, 17, 14, 15]), (u'Obadiah', u'Obad', u'Obad', [21]), (u'Jonah', u'Jonah', u'Jonah', [16, 11, 10, 11]), (u'Micah', u'Mic', u'Mic', [16, 13, 12, 13, 14, 16, 20]), (u'Nahum', u'Nah', u'Nah', [15, 13, 19]), (u'Habakkuk', u'Hab', u'Hab', [17, 20, 19]), (u'Zephaniah', u'Zeph', u'Zeph', [18, 15, 20]), (u'Haggai', u'Hag', u'Hag', [14, 24]), (u'Zechariah', u'Zech', u'Zech', [21, 13, 10, 14, 11, 15, 14, 23, 17, 12, 17, 14, 9, 21]), (u'Malachi', u'Mal', u'Mal', [14, 17, 18, 6]), (u'I Maccabees', u'1Macc', u'1Macc', [67, 70, 60, 61, 68, 63, 50, 32, 73, 89, 74, 54, 54, 49, 41, 24]), (u'II Maccabees', u'2Macc', u'2Macc', [36, 33, 40, 50, 27, 31, 42, 36, 29, 38, 38, 46, 26, 46, 40]), ], u'nt': [ (u'Matthew', u'Matt', u'Matt', [ 25, 23, 17, 25, 48, 34, 29, 34, 38, 42, 30, 50, 58, 36, 39, 28, 26, 35, 30, 34, 46, 46, 39, 51, 46, 75, 66, 20 ]), (u'Mark', u'Mark', u'Mark', [45, 28, 35, 40, 43, 56, 37, 39, 49, 52, 33, 44, 37, 72, 47, 20]), (u'Luke', u'Luke', u'Luke', [80, 52, 38, 44, 39, 49, 50, 56, 62, 42, 54, 59, 35, 35, 32, 31, 37, 43, 48, 47, 38, 71, 56, 53]), (u'John', u'John', u'John', [51, 25, 36, 54, 47, 72, 53, 59, 41, 42, 57, 50, 38, 31, 27, 33, 26, 40, 42, 31, 25]), (u'Acts', u'Acts', u'Acts', [ 26, 47, 26, 37, 42, 15, 59, 40, 43, 48, 30, 25, 52, 27, 41, 40, 34, 28, 40, 38, 40, 30, 35, 27, 27, 32, 44, 31 ]), (u'Romans', u'Rom', u'Rom', [32, 29, 31, 25, 21, 23, 25, 39, 33, 21, 36, 21, 14, 23, 33, 27]), (u'I Corinthians', u'1Cor', u'1Cor', [31, 16, 23, 21, 13, 20, 40, 13, 27, 33, 34, 31, 13, 40, 58, 24]), (u'II Corinthians', u'2Cor', u'2Cor', [24, 17, 18, 18, 21, 18, 16, 24, 15, 18, 33, 21, 13]), (u'Galatians', u'Gal', u'Gal', [24, 21, 29, 31, 26, 18]), (u'Ephesians', u'Eph', u'Eph', [23, 22, 21, 32, 33, 24]), (u'Philippians', u'Phil', u'Phil', [30, 30, 21, 23]), (u'Colossians', u'Col', u'Col', [29, 23, 25, 18]), (u'I Thessalonians', u'1Thess', u'1Thess', [10, 20, 13, 18, 28]), (u'II Thessalonians', u'2Thess', u'2Thess', [12, 17, 18]), (u'I Timothy', u'1Tim', u'1Tim', [20, 15, 16, 16, 25, 21]), (u'II Timothy', u'2Tim', u'2Tim', [18, 26, 17, 22]), (u'Titus', u'Titus', u'Titus', [16, 15, 15]), (u'Philemon', u'Phlm', u'Phlm', [25]), (u'Hebrews', u'Heb', u'Heb', [14, 18, 19, 16, 14, 20, 28, 13, 28, 39, 40, 29, 25]), (u'James', u'Jas', u'Jas', [27, 26, 18, 17, 20]), (u'I Peter', u'1Pet', u'1Pet', [25, 25, 22, 19, 14]), (u'II Peter', u'2Pet', u'2Pet', [21, 22, 18]), (u'I John', u'1John', u'1John', [10, 29, 24, 21, 21]), (u'II John', u'2John', u'2John', [13]), (u'III John', u'3John', u'3John', [15]), (u'Jude', u'Jude', u'Jude', [25]), (u'Revelation of John', u'Rev', u'Rev', [20, 29, 22, 11, 14, 17, 17, 13, 21, 11, 19, 18, 18, 20, 8, 21, 18, 24, 21, 15, 27, 21]), (u'Prayer of Manasses', u'PrMan', u'PrMan', [15]), (u'I Esdras', u'1Esd', u'1Esd', [58, 31, 24, 63, 73, 34, 15, 97, 56]), (u'II Esdras', u'2Esd', u'2Esd', [40, 48, 36, 52, 56, 59, 140, 63, 47, 60, 46, 51, 58, 48, 63, 78]), (u'Additional Psalm', u'AddPs', u'AddPs', [7]), (u'Laodiceans', u'EpLao', u'EpLao', [20]), ], }, } pysword-0.2.8/pysword/cleaner.py000066400000000000000000000161511424450246100167300ustar00rootroot00000000000000# -*- coding: utf-8 -*- ############################################################################### # PySword - A native Python reader of the SWORD Project Bible Modules # # --------------------------------------------------------------------------- # # Copyright (c) 2008-2019 Various PySword developers: # # Kenneth Arnold, Joshua Gross, Tomas Groth, Ryan Hiebert, Philip Ridout, # # Matthew Wardrop # # --------------------------------------------------------------------------- # # Permission is hereby granted, free of charge, to any person obtaining a # # copy of this software and associated documentation files (the "Software"), # # to deal in the Software without restriction, including without limitation # # the rights to use, copy, modify, merge, publish, distribute, sublicense, # # and/or sell copies of the Software, and to permit persons to whom the # # Software is furnished to do so, subject to the following conditions: # # # # The above copyright notice and this permission notice shall be included # # in all copies or substantial portions of the Software. # # # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE # # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER # # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING # # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER # # DEALINGS IN THE SOFTWARE. # ############################################################################### import re class Cleaner(object): def __init(self): pass def clean(self, text): pass class OSISCleaner(Cleaner): """ Class to clean text of OSIS tags. OSIS spec can be found here: http://www.bibletechnologies.net/ """ def __init__(self): self.__setup() def __setup(self): """ Compile regular expressions that will be used to remove OSIS tags. Not all OSIS tags are "mentioned" here since we should only have to deal with those that can be found in the biblical texts. """ remove_content_tagnames = [r'note', r'milestone', r'title', r'abbr', r'catchWord', r'index', r'rdg', r'rdgGroup', r'figure'] self.__remove_tags_regexes = [] for tag_name in remove_content_tagnames: tag_regex = r'<' + tag_name + r'.*?' + tag_name + r'>' self.__remove_tags_regexes.append(re.compile(tag_regex, re.IGNORECASE)) single_tag_regex = r'<' + tag_name + r'[^<]*/>' self.__remove_tags_regexes.append(re.compile(single_tag_regex, re.IGNORECASE)) keep_content_tagnames = [r'p', r'l', r'lg', r'q', r'a', r'w', r'divineName', r'foreign', r'hi', r'inscription', r'mentioned', r'name', r'reference', r'seg', r'transChange', r'salute', r'signed', r'closer', r'speech', r'speaker', r'list', r'item', r'table', r'head', r'row', r'cell', r'caption', r'chapter', r'div'] for tag_name in keep_content_tagnames: begin_tag_regex = r'<' + tag_name + r'.*?>' self.__remove_tags_regexes.append(re.compile(begin_tag_regex, re.IGNORECASE)) end_tag_regex = r'' self.__remove_tags_regexes.append(re.compile(end_tag_regex, re.IGNORECASE)) # Just remove if tag appear in single form single_tag_regex = r'<' + tag_name + r'[^<]*/>' self.__remove_tags_regexes.append(re.compile(single_tag_regex, re.IGNORECASE)) def clean(self, text): """ Clean text for OSIS tags. :param text: The text to be cleaned :return: The cleaned text is returned """ text = re.sub(r'(<[^\>]+type="x-br"[^\>]+\>)', r'\1 ', text) for regex in self.__remove_tags_regexes: text = regex.sub(u'', text) return text class GBFCleaner(Cleaner): """ Class to clean text of GBF tags. GBF spec can be found here: http://ebible.org/bible/gbf.htm """ def __init__(self): self.__setup() def __setup(self): """ Compile regular expressions that will be used to remove GBF 'tags'. Not all GBF tags are "mentioned" here since we should only have to deal with those that can be found in the biblical texts. """ remove_content_tags = [r'.*?', r'.*?', r'.*?', r'.*?', r'.*?', r'.*?', r'.*?', r'.*?', r'.*?', r'.*?', r'.*?', r'.*?', r'.*?', r'.*?', r'.*?', r'.*?', r'.*?', r'.*?', r'', r'', r'', r'', r'', r'', r'', r'', r'', r'', r'', r'', r'', r'', r''] self.__remove_content_regexes = [] for tag in remove_content_tags: self.__remove_content_regexes.append(re.compile(tag)) def clean(self, text): """ Clean text for GBF tags. :param text: The text to be cleaned :return: The cleaned text is returned """ for regex in self.__remove_content_regexes: text = regex.sub(u'', text) # TODO: Support special char tags and return text class ThMLCleaner(Cleaner): """ Class to clean text of ThML tags. ThML spec can be found here: https://www.ccel.org/ThML/ """ def __init__(self): self.__setup() def __setup(self): """ Compile regular expressions that will be used to remove ThML tags. Not all ThML tags are "mentioned" here since we should only have to deal with those that can be found in the biblical texts. """ remove_content_tags = [r'.*?', r'.*?', r'<.*?>'] self.__remove_content_regexes = [] for tag in remove_content_tags: self.__remove_content_regexes.append(re.compile(tag)) def clean(self, text): """ Clean text for ThML tags. :param text: The text to be cleaned :return: The cleaned text is returned """ for regex in self.__remove_content_regexes: text = regex.sub(u'', text) return text pysword-0.2.8/pysword/modules.py000066400000000000000000000230001424450246100167560ustar00rootroot00000000000000# -*- coding: utf-8 -*- ############################################################################### # PySword - A native Python reader of the SWORD Project Bible Modules # # --------------------------------------------------------------------------- # # Copyright (c) 2008-2019 Various PySword developers: # # Kenneth Arnold, Joshua Gross, Tomas Groth, Ryan Hiebert, Philip Ridout, # # Matthew Wardrop # # --------------------------------------------------------------------------- # # Permission is hereby granted, free of charge, to any person obtaining a # # copy of this software and associated documentation files (the "Software"), # # to deal in the Software without restriction, including without limitation # # the rights to use, copy, modify, merge, publish, distribute, sublicense, # # and/or sell copies of the Software, and to permit persons to whom the # # Software is furnished to do so, subject to the following conditions: # # # # The above copyright notice and this permission notice shall be included # # in all copies or substantial portions of the Software. # # # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE # # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER # # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING # # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER # # DEALINGS IN THE SOFTWARE. # ############################################################################### import io import os import zipfile import tempfile import shutil import sys from pysword.bible import SwordBible, BlockType, CompressType from pysword.utils import path_like_to_str def get_platform_path(): """ Returns the default SWORD datapath for the current platform. This is useful if you want to search for modules in both the default path and some additional paths. """ if sys.platform.startswith(u'win32'): return os.path.join(os.getenv(u'APPDATA'), u'Sword') elif sys.platform.startswith(u'darwin'): return os.path.join(os.getenv(u'HOME'), u'Library', u'Application Support', u'Sword') else: # Linux etc. return os.path.join(os.getenv(u'HOME'), u'.sword') class SwordModules(object): """ Class used to parse module conf-files. """ def __init__(self, paths=None, encoding=None): """ Initialize the SwordModules object. :param paths: Path the SWORD datapath or to a zip-file containing a module. Defaults to the platform's expected SWORD datapath. A list of paths may be given. In that case, modules will be loaded from all of the paths, with later paths taking precedence. :param encoding: The encoding to use when reading the text. """ self._encoding = encoding if paths is None: # Based on the platform find the SWORD data path self._sword_paths = [get_platform_path()] else: if not isinstance(paths, list): paths = [paths] try: self._sword_paths = [path_like_to_str(path) for path in paths] except TypeError: raise TypeError(u'`path` should be a str, PathLike object or an instance of pathlib.Path') self._modules = {} self._module_paths = {} self._temp_folders = [] def __del__(self): """ Clean up. If we decompressed a zip-file remove the files again. """ for temp_folder in self._temp_folders: # TODO: This sometimes fails because it is getting GC'ed before the files in the bible module are closed! shutil.rmtree(temp_folder, ignore_errors=True) def _parse_conf_file(self, conf_filename, module_folder): """ Parse a module conf file and add the result to module dict :param conf_filename: The conf file to parse. :param module_folder: The folder the module is in """ # Open configuration file try: conf_file_lines = [] if self._encoding is None: # No encoding specified try uft-8 try: with io.open(conf_filename, mode=u'rt', encoding=u'utf-8', errors=u'strict') as conf_file: conf_file_lines = conf_file.readlines() except UnicodeDecodeError: # Fallback to iso=8859-1 (latin-1) self._encoding = u'iso-8859-1' if self._encoding: with io.open(conf_filename, mode=u'rt', encoding=self._encoding, errors=u'strict') as conf_file: conf_file_lines = conf_file.readlines() except Exception as e: print(u'Exception %s caught while parsing %s\n%s' % (sys.exc_info()[0].__name__, f, e)) return # Start parsing configuration file module_conf = dict() module_name = u'' cur_key = u'' for line in conf_file_lines: # Ignore comments if line.startswith(u'#'): continue line = line.strip() # Detect start of module configurations. Support multiple module configurations in one file. if line.startswith(u'[') and line.endswith(u']'): # If a configuration was already parsed, save it. if module_name: self._modules[module_name] = module_conf self._module_paths[module_name] = module_folder # Set the module name, strip the '[' and ']' module_name = line[1:-1] module_conf = dict() continue # Handle configuration line. Try to split the line by '='. line_split = line.split(u'=', 1) # if a '=' was detected a new configuration key was found if len(line_split) > 1: cur_key = line_split[0].lower() # Join the remaining elements using a '=', this makes it possible to have a '=' in the value part module_conf[cur_key] = u'='.join(line_split[1:]) else: if cur_key and line: module_conf[cur_key] += u'\n' + line if module_name: self._modules[module_name] = module_conf self._module_paths[module_name] = module_folder def parse_modules(self): """ Based on the datapath given to the constructor parse modules conf-files and return the result :return: A dict containing the data read from the conf files. """ for path in self._sword_paths: # If path is a zipfile, we extract it to a temp-folder if path.endswith(u'.zip'): module_folder = tempfile.mkdtemp() self._temp_folders.append(module_folder) zipped_module = zipfile.ZipFile(path) zipped_module.extractall(module_folder) else: module_folder = path conf_folder = os.path.join(module_folder, u'mods.d') # Loop over config files and save data in a dict for f in os.listdir(conf_folder): if f.endswith(u'.conf'): conf_filename = os.path.join(conf_folder, f) self._parse_conf_file(conf_filename, module_folder) # Return the modules metadata return self._modules def get_bible_from_module(self, module_key, cipher=None): """ Return a SwordBible object for the key given. :param module_key: The key to use for finding the module. :param cipher: Cipher key to use to decrypt module. Overrules any cipher in the module conf :return: a SwordBible object for the key given. """ # TODO could replace the try excepts with a simple.get bible_module = self._modules[module_key] module_path = os.path.join(self._module_paths[module_key], bible_module[u'datapath']) module_type = bible_module[u'moddrv'].lower() try: module_versification = bible_module[u'versification'].lower() except KeyError: module_versification = u'kjv' try: module_encoding = bible_module[u'encoding'].lower() except KeyError: module_encoding = None try: source_type = bible_module[u'sourcetype'] except KeyError: source_type = None try: block_type = bible_module[u'blocktype'] except KeyError: block_type = BlockType.BOOK try: compress_type = bible_module[u'compress_type'] except KeyError: compress_type = CompressType.ZIP if cipher: cipherkey = cipher else: try: cipherkey = bible_module[u'cipherkey'] except KeyError: cipherkey = None return SwordBible(module_path, module_type, module_versification, module_encoding, source_type, block_type, compress_type, cipherkey) pysword-0.2.8/pysword/sapphire.py000066400000000000000000000226751424450246100171420ustar00rootroot00000000000000# -*- coding: utf-8 -*- """ This is a direct port of the original C++ code to Python done by Tomas Groth in 2019. The original copyright note is below. This port is also Public Domain. /* sapphire.cpp -- the Sapphire II stream cipher class. Dedicated to the Public Domain the author and inventor: (Michael Paul Johnson). This code comes with no warranty. Use it at your own risk. Ported from the Pascal implementation of the Sapphire Stream Cipher 9 December 1994. Added hash pre- and post-processing 27 December 1994. Modified initialization to make index variables key dependent, made the output function more resistant to cryptanalysis, and renamed to Sapphire II 2 January 1995 */ """ class Sapphire: def __init__(self, key): """ Constructor. Initializes the stream cipher. :param key: The cipher key to use. """ self.initial_cards = [0] * 256 self.initial_rsum = 0 self.cards = [0] * 256 self.rotor = 0 self.ratchet = 0 self.avalanche = 0 self.last_plain = 0 self.last_cipher = 0 bytes_key = bytearray(key, 'utf-8') if key: self._initialize(bytes_key, len(bytes_key)) def _initialize(self, key, keysize): """ Key size may be up to 256 bytes. Pass phrases may be used directly, with longer length compensating for the low entropy expected in such keys. Alternatively, shorter keys hashed from a pass phrase or generated randomly may be used. For random keys, lengths of from 4 to 16 bytes are recommended, depending on how secure you want this to be. :param key: The cipher key to use. :param keysize: The size of the cipher key. """ # If we have been given no key, assume the default hash setup. if not key: self._hash_init() return # Start with cards all in order, one of each. self.cards = list(range(0, 256)) # Swap the card at each position with some other card. toswap = 0 keypos = 0 # Start with first byte of user key. rsum = 0 for i in range(255, -1, -1): toswap, rsum, keypos = self._keyrand(i, key, keysize, rsum, keypos) swaptemp = self.cards[i] self.cards[i] = self.cards[toswap] self.cards[toswap] = swaptemp # Initialize the indices and data dependencies. # Indices are set to different values instead of all 0 # to reduce what is known about the state of the cards # when the first byte is emitted. self.rotor = self.cards[1] self.ratchet = self.cards[3] self.avalanche = self.cards[5] self.last_plain = self.cards[7] self.last_cipher = self.cards[rsum] # Save initial cards and rsum for easy reset, might be a security risk. # Note that this was added for python and was not in the original C++ code self.initial_cards = self.cards[:] self.initial_rsum = rsum def reset(self): """ Resets the cipher stream for new data. Note that this was added for python and was not in the original C++ code. The data save to be able to reset might be a security risk. """ if self.initial_cards: self.cards = self.initial_cards[:] self.rotor = self.cards[1] self.ratchet = self.cards[3] self.avalanche = self.cards[5] self.last_plain = self.cards[7] self.last_cipher = self.cards[self.initial_rsum] else: self._hash_init() def _keyrand(self, limit, user_key, keysize, rsum, keypos): """ Helper function used to determine which cards to swap randomly based on the user key. :param limit: Value from 0 to limit to return. :param user_key: The user key. :param keysize: Size of the user key. :param keypos: Current position/index of the user key to start from. :return: Three values are returned: card to swap, new rsum, new keypos """ u = limit + 1 # Value from 0 to limit to return. retry_limiter = 0 # No infinite loops allowed. mask = 0 # Select just enough bits. if limit == 0: # Avoid divide by zero error. return 0, rsum, keypos mask = 1 # Fill mask with enough bits to cover while mask < limit: # the desired range. mask = (mask << 1) + 1 while (u > limit): rsum = self.cards[rsum] + user_key[keypos] keypos += 1 if keypos >= keysize: keypos = 0 # Recycle the user key. rsum += keysize # key "aaaa" != key "aaaaaaaa" rsum &= 0xFF u = mask & rsum retry_limiter += 1 if retry_limiter > 11: u %= limit # Prevent very rare long loops. return u, rsum, keypos def _hash_init(self): """ This function is used to initialize non-keyed hash computation. """ # Initialize the indices and data dependencies. self.rotor = 1 self.ratchet = 3 self.avalanche = 5 self.last_plain = 7 self.last_cipher = 11 # Start with cards all in inverse order. self.cards = list(range(255, -1, -1)) def _burn(self): """ Destroy the key and state information in RAM. """ self.initial_cards = [0] * 256 self.initial_rsum = 0 self.cards = [0] * 256 self.rotor = 0 self.ratchet = 0 self.avalanche = 0 self.last_plain = 0 self.last_cipher = 0 def __del__(self): """ Destructor """ self._burn() def encrypt(self, b): """ Picture a single enigma rotor with 256 positions, rewired on the fly by card-shuffling. This cipher is a variant of one invented and written by Michael Paul Johnson in November, 1993. :param b: Byte to encrypt :return: Encrypted byte """ swaptemp = 0 # Shuffle the deck a little more. self.ratchet = (self.ratchet + self.cards[self.rotor]) & 0xFF self.rotor = (1 + self.rotor) & 0xFF swaptemp = self.cards[self.last_cipher] self.cards[self.last_cipher] = self.cards[self.ratchet] self.cards[self.ratchet] = self.cards[self.last_plain] self.cards[self.last_plain] = self.cards[self.rotor] self.cards[self.rotor] = swaptemp self.avalanche = (self.avalanche + self.cards[swaptemp]) & 0xFF # Output one byte from the state in such a way as to make it # very hard to figure out which one you are looking at. self.last_cipher = b ^ self.cards[(self.cards[self.ratchet] + self.cards[self.rotor]) & 0xFF] ^ \ self.cards[self.cards[(self.cards[self.last_plain] + self.cards[self.last_cipher] + self.cards[self.avalanche]) & 0xFF]] self.last_plain = b return self.last_cipher def decrypt_bytes(self, encrypted_data): """ Helper function to make it easier for the users to decrypt data. Added in the python version :param encrypted_data: Bytes to decrypt :return: Decrypted bytes """ self.reset() decrypted_data = [] for b in bytearray(encrypted_data): decrypted_data.append(self.decrypt(b)) # Doing both bytes and bytearray to make it work on both python2 and 3 return bytes(bytearray(decrypted_data)) def decrypt(self, b): """ Decrypts a byte :param b: Byte to decrypt :return: Decrypted byte """ swaptemp = 0 # Shuffle the deck a little more. self.ratchet = (self.ratchet + self.cards[self.rotor]) & 0xFF self.rotor = (1 + self.rotor) & 0xFF swaptemp = self.cards[self.last_cipher] self.cards[self.last_cipher] = self.cards[self.ratchet] self.cards[self.ratchet] = self.cards[self.last_plain] self.cards[self.last_plain] = self.cards[self.rotor] self.cards[self.rotor] = swaptemp self.avalanche = (self.avalanche + self.cards[swaptemp]) & 0xFF # Output one byte from the state in such a way as to make it # very hard to figure out which one you are looking at. self.last_plain = b ^ self.cards[(self.cards[self.ratchet] + self.cards[self.rotor]) & 0xFF] ^ \ self.cards[self.cards[(self.cards[self.last_plain] + self.cards[self.last_cipher] + self.cards[self.avalanche]) & 0xFF]] self.last_cipher = b return self.last_plain def hash_final(self, hashlength): """ Generates a hash of the given length :param hashlength: Length of the hash to generate :return: Decrypted byte """ for i in range(255, -1, -1): self.encrypt(i) hash_out = [] for i in range(0, hashlength): hash_out.append(self.encrypt(0)) # Doing both bytes and bytearray to make it work on both python2 and 3 return bytes(bytearray(hash_out)) pysword-0.2.8/pysword/utils.py000066400000000000000000000056771424450246100164720ustar00rootroot00000000000000# -*- coding: utf-8 -*- ############################################################################### # PySword - A native Python reader of the SWORD Project Bible Modules # # --------------------------------------------------------------------------- # # Copyright (c) 2008-2019 Various Pysword developers: # # Kenneth Arnold, Joshua Gross, Tomas Groth, Ryan Hiebert, Philip Ridout, # # Matthew Wardrop # # --------------------------------------------------------------------------- # # Permission is hereby granted, free of charge, to any person obtaining a # # copy of this software and associated documentation files (the "Software"), # # to deal in the Software without restriction, including without limitation # # the rights to use, copy, modify, merge, publish, distribute, sublicense, # # and/or sell copies of the Software, and to permit persons to whom the # # Software is furnished to do so, subject to the following conditions: # # # # The above copyright notice and this permission notice shall be included # # in all copies or substantial portions of the Software. # # # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE # # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER # # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING # # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER # # DEALINGS IN THE SOFTWARE. # ############################################################################### import os import sys try: import pathlib pathlib_available = True except ImportError: pathlib_available = False PY3 = sys.version_info > (3,) def path_like_to_str(path): """ Take an object and convert it to a string representation of a file path. :param path: The object to convert, should be an `os.PathLike` object, a `pathlib.Path` object or a str object :return: The string representation of the path """ if PY3: if isinstance(path, str): return path if hasattr(path, '__fspath__'): # py 3.6 and above implemented os.PathLike objects, which make use if the __fspath__ method. return os.fspath(path) if pathlib_available and isinstance(path, pathlib.Path): # py 3.4 and 3.5 have the pathlib.Path object, but it doesn't have the fspath interface. return str(path) else: if isinstance(path, unicode): return path raise TypeError pysword-0.2.8/setup.py000066400000000000000000000057701424450246100147550ustar00rootroot00000000000000# -*- coding: utf-8 -*- ############################################################################### # PySword - A native Python reader of the SWORD Project Bible Modules # # --------------------------------------------------------------------------- # # Copyright (c) 2008-2019 Various PySword developers: # # Kenneth Arnold, Joshua Gross, Tomas Groth, Ryan Hiebert, Philip Ridout, # # Matthew Wardrop # # --------------------------------------------------------------------------- # # Permission is hereby granted, free of charge, to any person obtaining a # # copy of this software and associated documentation files (the "Software"), # # to deal in the Software without restriction, including without limitation # # the rights to use, copy, modify, merge, publish, distribute, sublicense, # # and/or sell copies of the Software, and to permit persons to whom the # # Software is furnished to do so, subject to the following conditions: # # # # The above copyright notice and this permission notice shall be included # # in all copies or substantial portions of the Software. # # # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE # # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER # # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING # # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER # # DEALINGS IN THE SOFTWARE. # ############################################################################### from pysword import __version__ as pysword_version from setuptools import setup, find_packages def read(filename): f = open(filename) text = f.read() f.close() return text setup( name=u'pysword', version=pysword_version, packages=find_packages(exclude=[u'*.tests', u'*.tests.*', u'tests.*', u'tests']), url=u'https://gitlab.com/tgc-dk/pysword', license=u'MIT', author=u'Tomas Groth', author_email=u'second@tgc.dk', description=u'A native Python2/3 reader module for the SWORD Project Bible Modules', long_description=read(u'README.rst'), platforms=[u'any'], classifiers=[ u'Development Status :: 4 - Beta', u'Intended Audience :: Religion', u'Intended Audience :: Developers', u'Operating System :: OS Independent', u'Programming Language :: Python :: 2', u'Programming Language :: Python :: 3', u'Topic :: Religion', u'Topic :: Software Development', u'License :: OSI Approved :: MIT License', ], ) pysword-0.2.8/tests/000077500000000000000000000000001424450246100143745ustar00rootroot00000000000000pysword-0.2.8/tests/__init__.py000066400000000000000000000042701424450246100165100ustar00rootroot00000000000000# -*- coding: utf-8 -*- ############################################################################### # PySword - A native Python reader of the SWORD Project Bible Modules # # --------------------------------------------------------------------------- # # Copyright (c) 2008-2019 Various PySword developers: # # Kenneth Arnold, Joshua Gross, Tomas Groth, Ryan Hiebert, Philip Ridout, # # Matthew Wardrop # # --------------------------------------------------------------------------- # # Permission is hereby granted, free of charge, to any person obtaining a # # copy of this software and associated documentation files (the "Software"), # # to deal in the Software without restriction, including without limitation # # the rights to use, copy, modify, merge, publish, distribute, sublicense, # # and/or sell copies of the Software, and to permit persons to whom the # # Software is furnished to do so, subject to the following conditions: # # # # The above copyright notice and this permission notice shall be included # # in all copies or substantial portions of the Software. # # # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE # # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER # # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING # # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER # # DEALINGS IN THE SOFTWARE. # ############################################################################### from unittest import skipUnless, TestCase try: from unittest.mock import MagicMock, call, patch except: # Use the back port for mock for versions < Py3.3 from mock import MagicMock, call, patch pysword-0.2.8/tests/resources/000077500000000000000000000000001424450246100164065ustar00rootroot00000000000000pysword-0.2.8/tests/resources/download_bibles.py000066400000000000000000000053371424450246100221170ustar00rootroot00000000000000#!/usr/bin/python # -*- coding: utf-8 -*- ############################################################################### # PySword - A native Python reader of the SWORD Project Bible Modules # # --------------------------------------------------------------------------- # # Copyright (c) 2008-2019 Various developers: # # Kenneth Arnold, Joshua Gross, Tomas Groth, Ryan Hiebert, Philip Ridout, # # Matthew Wardrop # # --------------------------------------------------------------------------- # # This program is free software; you can redistribute it and/or modify it # # under the terms of the GNU General Public License as published by the Free # # Software Foundation; version 2 of the License. # # # # This program is distributed in the hope that it will be useful, but WITHOUT # # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or # # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for # # more details. # # # # You should have received a copy of the GNU General Public License along # # with this program; if not, write to the Free Software Foundation, Inc., 51 # # Franklin St, Fifth Floor, Boston, MA 02110-1301 USA # ############################################################################### import zipfile import os try: import urllib.request as urllib except: import urllib def get_and_extract(url, filename): """ Downloads and extract bibles for testing """ target_folder = os.path.dirname(os.path.realpath(__file__)) target_file = os.path.join(target_folder, filename) print(u'Downloading from %s...' % url) urllib.urlretrieve(url, target_file) print('Extracting %s...' % filename) with zipfile.ZipFile(target_file, u'r') as z: z.extractall(target_folder) bibles = [(u'ftp://ftp.xiphos.org/zip/chipinyin.zip', u'chipinyin.zip'), (u'ftp://ftp.xiphos.org/zip/bsv.zip', u'bsv.zip'), (u'http://www.crosswire.org/ftpmirror/pub/sword/packages/rawzip/FinPR.zip', u'FinPR.zip'), (u'http://www.crosswire.org/ftpmirror/pub/sword/packages/rawzip/ASV.zip', u'ASV.zip'), (u'http://www.crosswire.org/ftpmirror/pub/sword/packages/rawzip/OSHB.zip', u'OSHB.zip'), (u'http://www.crosswire.org/ftpmirror/pub/sword/packages/rawzip/SpaRV1909.zip', u'SpaRV1909.zip'), ] for bible in bibles: get_and_extract(bible[0], bible[1]) pysword-0.2.8/tests/test_OSISCleaner.py000066400000000000000000000050721424450246100200600ustar00rootroot00000000000000# -*- coding: utf-8 -*- ############################################################################### # PySword - A native Python reader of the SWORD Project Bible Modules # # --------------------------------------------------------------------------- # # Copyright (c) 2008-2019 Various PySword developers: # # Kenneth Arnold, Joshua Gross, Tomas Groth, Ryan Hiebert, Philip Ridout, # # Matthew Wardrop # # --------------------------------------------------------------------------- # # Permission is hereby granted, free of charge, to any person obtaining a # # copy of this software and associated documentation files (the "Software"), # # to deal in the Software without restriction, including without limitation # # the rights to use, copy, modify, merge, publish, distribute, sublicense, # # and/or sell copies of the Software, and to permit persons to whom the # # Software is furnished to do so, subject to the following conditions: # # # # The above copyright notice and this permission notice shall be included # # in all copies or substantial portions of the Software. # # # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE # # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER # # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING # # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER # # DEALINGS IN THE SOFTWARE. # ############################################################################### from tests import TestCase from pysword.cleaner import OSISCleaner class TestOSISCleaner(TestCase): def test_brx_type_tags(self): """ Test that OSISCleaner inserts space when tags of type x-br is encountered """ # GIVEN: A text with a tag of type x-br and a OSISCleaer text = 'the way of sinners,nor ' cleaner = OSISCleaner() # WHEN: Cleaning the text output = cleaner.clean(text) # THEN: A space should have been inserted self.assertEqual(output, 'the way of sinners, nor ') pysword-0.2.8/tests/test_bibleStructure.py000066400000000000000000000064761424450246100210200ustar00rootroot00000000000000# -*- coding: utf-8 -*- ############################################################################### # PySword - A native Python reader of the SWORD Project Bible Modules # # --------------------------------------------------------------------------- # # Copyright (c) 2008-2019 Various PySword developers: # # Kenneth Arnold, Joshua Gross, Tomas Groth, Ryan Hiebert, Philip Ridout, # # Matthew Wardrop # # --------------------------------------------------------------------------- # # Permission is hereby granted, free of charge, to any person obtaining a # # copy of this software and associated documentation files (the "Software"), # # to deal in the Software without restriction, including without limitation # # the rights to use, copy, modify, merge, publish, distribute, sublicense, # # and/or sell copies of the Software, and to permit persons to whom the # # Software is furnished to do so, subject to the following conditions: # # # # The above copyright notice and this permission notice shall be included # # in all copies or substantial portions of the Software. # # # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE # # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER # # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING # # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER # # DEALINGS IN THE SOFTWARE. # ############################################################################### from tests import MagicMock, TestCase from pysword.books import BibleStructure class TestBibleStructure(TestCase): def test_init_invalid_versification(self): """ Test that BibleStructure raises an exception on invalid versification """ # GIVEN: An invalid versification versification = u'does_not_exists' # WHEN: Creating a new BibleStructure # THEN: An ValueError exception should be raised self.assertRaises(ValueError, BibleStructure, versification) def test_ref_to_indicies(self): """ Test that ref_to_indicies can handle unicode and non-unicode input, only makes sense for python2 """ # GIVEN: A bible structure with mocked find_book bible_structure = BibleStructure(u'kjv') mocked_find_book = MagicMock() mocked_find_book.return_value = ('mocked_testament', MagicMock()) bible_structure.find_book = mocked_find_book bible_structure._book_offset = MagicMock() # WHEN: Calling ref_to_indicies with both str and unicode input bible_structure.ref_to_indicies('test') bible_structure.ref_to_indicies(u'test') # THEN: The mocked find_book should have been called twice self.assertEqual(mocked_find_book.call_count, 2, u'The mocked find_book should have been called twice') pysword-0.2.8/tests/test_bookStructure.py000066400000000000000000000060541424450246100206650ustar00rootroot00000000000000# -*- coding: utf-8 -*- ############################################################################### # PySword - A native Python reader of the SWORD Project Bible Modules # # --------------------------------------------------------------------------- # # Copyright (c) 2008-2019 Various PySword developers: # # Kenneth Arnold, Joshua Gross, Tomas Groth, Ryan Hiebert, Philip Ridout, # # Matthew Wardrop # # --------------------------------------------------------------------------- # # Permission is hereby granted, free of charge, to any person obtaining a # # copy of this software and associated documentation files (the "Software"), # # to deal in the Software without restriction, including without limitation # # the rights to use, copy, modify, merge, publish, distribute, sublicense, # # and/or sell copies of the Software, and to permit persons to whom the # # Software is furnished to do so, subject to the following conditions: # # # # The above copyright notice and this permission notice shall be included # # in all copies or substantial portions of the Software. # # # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE # # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER # # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING # # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER # # DEALINGS IN THE SOFTWARE. # ############################################################################### from tests import TestCase from pysword.books import BookStructure class TestBookStructure(TestCase): def test_get_indicies_invalid_chapter(self): """ Test that get_indicies() throws exception on invalid chapter """ # GIVEN: A test BookStructure with 4 chapters structure = BookStructure(u'test name', u'test osis name', u'test abbr', [31, 25, 24, 26]) # WHEN: Calling get_indicies() with an invalid chapter parameter # THEN: An ValueError exception should be thrown self.assertRaises(ValueError, structure.get_indicies, 5, 1) def test_get_indicies_invalid_verse(self): """ Test that get_indicies() throws exception on invalid verse """ # GIVEN: A test BookStructure with 4 chapters structure = BookStructure(u'test name', u'test osis name', u'test abbr', [31, 25, 24, 26]) # WHEN: Calling get_indicies() with an invalid verse parameter # THEN: An ValueError exception should be thrown self.assertRaises(ValueError, structure.get_indicies, 3, 25) pysword-0.2.8/tests/test_files.py000066400000000000000000000172761424450246100171240ustar00rootroot00000000000000# -*- coding: utf-8 -*- ############################################################################### # PySword - A native Python reader of the SWORD Project Bible Modules # # --------------------------------------------------------------------------- # # Copyright (c) 2008-2019 Various PySword developers: # # Kenneth Arnold, Joshua Gross, Tomas Groth, Ryan Hiebert, Philip Ridout, # # Matthew Wardrop # # --------------------------------------------------------------------------- # # Permission is hereby granted, free of charge, to any person obtaining a # # copy of this software and associated documentation files (the "Software"), # # to deal in the Software without restriction, including without limitation # # the rights to use, copy, modify, merge, publish, distribute, sublicense, # # and/or sell copies of the Software, and to permit persons to whom the # # Software is furnished to do so, subject to the following conditions: # # # # The above copyright notice and this permission notice shall be included # # in all copies or substantial portions of the Software. # # # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE # # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER # # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING # # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER # # DEALINGS IN THE SOFTWARE. # ############################################################################### import os from tests.test_utils import TestCase from pysword.modules import SwordModules TEST_RESOURCE_FOLDER = os.path.join(os.path.dirname(os.path.realpath(__file__)), u'resources') class TestModules(TestCase): def test_load_finpr_zip(self): """ Test that the FinPR.zip file is loaded correctly. """ # GIVEN: The FinPR.zip file modules = SwordModules(os.path.join(TEST_RESOURCE_FOLDER, u'FinPR.zip')) # WHEN: Parsing the FinPR module and reading a passage. found_modules = modules.parse_modules() bible = modules.get_bible_from_module(u'FinPR') output = bible.get(books=[u'john'], chapters=[3], verses=[16]) # THEN: The FinPR module should be the only one found. And the passage should be equal to the known text. assert u'FinPR' in found_modules assert len(found_modules) == 1 assert output == u'Sillä niin on Jumala maailmaa rakastanut, että hän antoi ainokaisen Poikansa, ' \ u'ettei yksikään, joka häneen uskoo, hukkuisi, vaan hänellä olisi iankaikkinen elämä.' def test_load_chipinyin_zip(self): """ Test that the chipinyin.zip file is loaded correctly. """ # GIVEN: The chipinyin.zip file modules = SwordModules(os.path.join(TEST_RESOURCE_FOLDER, u'chipinyin.zip')) # WHEN: Parsing the chipinyin module and reading a passage. found_modules = modules.parse_modules() bible = modules.get_bible_from_module(u'ChiPinyin') output = bible.get(books=[u'john'], chapters=[3], verses=[16]) # THEN: The ChiPinyin module should be the only one found. And the passage should be equal to the known text. assert u'ChiPinyin' in found_modules assert len(found_modules) == 1 assert output == u' Shén aì shìrén , shènzhì jiāng tāde dú shēng zǐ cìgĕi tāmen , jiào yīqiè xìn tāde , bú ' \ u'zhì mièwáng , fǎn dé yǒngshēng . ' def test_load_bsv_zip(self): """ Test that the bsv.zip file is loaded correctly. """ # GIVEN: The bsv.zip file modules = SwordModules(os.path.join(TEST_RESOURCE_FOLDER, u'bsv.zip')) # WHEN: Parsing the BSV module and reading a passage. found_modules = modules.parse_modules() bible = modules.get_bible_from_module(u'BSV') output = bible.get(books=[u'john'], chapters=[3], verses=[16]) # THEN: The BSV module should be the only one found. And the passage should be equal to the known text. assert u'BSV' in found_modules assert len(found_modules) == 1 assert output == u'For God so loved the world, that he gave his only begotten Son, that whoever believes in ' \ u'him should not perish, but have everlasting life.' def test_load_asv_zip(self): """ Test that the ASV.zip file is loaded correctly. """ # GIVEN: The ASV.zip file modules = SwordModules(os.path.join(TEST_RESOURCE_FOLDER, u'ASV.zip')) # WHEN: Parsing the ASV module and reading a passage. found_modules = modules.parse_modules() bible = modules.get_bible_from_module(u'ASV') output = bible.get(books=[u'gen'], chapters=[3], verses=[20]) # THEN: The ASV module should be the only one found. And the passage should be equal to the known text. assert u'ASV' in found_modules assert len(found_modules) == 1 assert output == u'And the man called his wife’s name Eve; because she was the mother of all living. ' def test_load_oshb_zip(self): """ Test that the OSHB.zip file is loaded correctly. """ # GIVEN: The OSHB.zip file modules = SwordModules(os.path.join(TEST_RESOURCE_FOLDER, u'OSHB.zip')) # WHEN: Parsing the OSHB module and reading a passage. found_modules = modules.parse_modules() bible = modules.get_bible_from_module(u'OSHB') output = bible.get(books=[u'gen'], chapters=[3], verses=[20]) # THEN: The OSHB module should be the only one found. assert u'OSHB' in found_modules assert len(found_modules) == 1 assert output.strip() == u'וַיִּקְרָ֧א הָֽאָדָ֛ם שֵׁ֥ם אִשְׁתּ֖וֹ חַוָּ֑ה כִּ֛י הִ֥וא הָֽיְתָ֖ה אֵ֥ם כָּל־חָֽי׃' def test_load_sparv1909_zip(self): """ Test that the encrypted SpaRV1909.zip file is loaded correctly. """ # GIVEN: The SpaRV1909.zip file modules = SwordModules(os.path.join(TEST_RESOURCE_FOLDER, u'SpaRV1909.zip')) # WHEN: Parsing the SpaRV1909 module and reading a passage. found_modules = modules.parse_modules() bible = modules.get_bible_from_module(u'SpaRV1909') output = bible.get(books=[u'gen'], chapters=[3], verses=[20]) # THEN: The SpaRV1909 module should be the only one found. And the passage should be equal to the known text. assert u'SpaRV1909' in found_modules assert len(found_modules) == 1 print(output) assert output == u'Y llamó el hombre el nombre de su mujer, Eva; por cuanto ella era madre de todos ' \ u'los vivientes.' # WHEN: Reading a second passage output = bible.get(books=[u'john'], chapters=[3], verses=[17]) # THEN: The the passage should be equal to the expected text assert output == u'Porque no envió Dios á su Hijo al mundo para que condene al mundo, mas para ' \ u'que el mundo sea salvo por él.' pysword-0.2.8/tests/test_sapphire.py000066400000000000000000000060121424450246100176170ustar00rootroot00000000000000# -*- coding: utf-8 -*- ############################################################################### # PySword - A native Python reader of the SWORD Project Bible Modules # # --------------------------------------------------------------------------- # # Copyright (c) 2008-2019 Various PySword developers: # # Kenneth Arnold, Joshua Gross, Tomas Groth, Ryan Hiebert, Philip Ridout, # # Matthew Wardrop # # --------------------------------------------------------------------------- # # Permission is hereby granted, free of charge, to any person obtaining a # # copy of this software and associated documentation files (the "Software"), # # to deal in the Software without restriction, including without limitation # # the rights to use, copy, modify, merge, publish, distribute, sublicense, # # and/or sell copies of the Software, and to permit persons to whom the # # Software is furnished to do so, subject to the following conditions: # # # # The above copyright notice and this permission notice shall be included # # in all copies or substantial portions of the Software. # # # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE # # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER # # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING # # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER # # DEALINGS IN THE SOFTWARE. # ############################################################################### import os import sys from tests import TestCase from pysword.sapphire import Sapphire class TestSapphire(TestCase): def test_sapphire_encrypt_and_decrypt(self): """ Test that sapphire can encrypt and decrypt """ # GIVEN: A cipherkey, a text and the Sapphire stream class cipherkey = 'qwerty' text = 'pysword' sap = Sapphire(cipherkey) # WHEN: Encrypting the text encrypted = [] for b in bytearray(text, 'utf-8'): encrypted.append(sap.encrypt(b)) # THEN: The output should be encrypted as expected assert encrypted == [95, 56, 27, 126, 46, 13, 112] # GIVEN: A reset Sapphire stream class sap.reset() # WHEN: Decrypting the encrypted data decrypted = [] for b in bytearray(encrypted): decrypted.append(sap.decrypt(b)) decrypted_data = bytes(bytearray(decrypted)) # THEN: Then decrypted data should match the original data assert decrypted_data.decode() == text pysword-0.2.8/tests/test_swordBible.py000066400000000000000000000324601424450246100201060ustar00rootroot00000000000000# -*- coding: utf-8 -*- ############################################################################### # PySword - A native Python reader of the SWORD Project Bible Modules # # --------------------------------------------------------------------------- # # Copyright (c) 2008-2019 Various PySword developers: # # Kenneth Arnold, Joshua Gross, Tomas Groth, Ryan Hiebert, Philip Ridout, # # Matthew Wardrop # # --------------------------------------------------------------------------- # # Permission is hereby granted, free of charge, to any person obtaining a # # copy of this software and associated documentation files (the "Software"), # # to deal in the Software without restriction, including without limitation # # the rights to use, copy, modify, merge, publish, distribute, sublicense, # # and/or sell copies of the Software, and to permit persons to whom the # # Software is furnished to do so, subject to the following conditions: # # # # The above copyright notice and this permission notice shall be included # # in all copies or substantial portions of the Software. # # # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE # # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER # # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING # # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER # # DEALINGS IN THE SOFTWARE. # ############################################################################### import os from tests import MagicMock, TestCase, call, patch from pysword.bible import RawTextModule, RawTextModule4, SwordModuleType, SwordBible, Testament, ZTextModule, \ ZTextModule4 TEST_RESOURCE_FOLDER = os.path.join(os.path.dirname(os.path.realpath(__file__)), u'resources') class TestBookStructure(TestCase): @patch('pysword.bible.Testament') def test_init_only_one_testament(self, mocked_testament): """ Test that when loading a bible with only one testament, only that testament is available """ # GIVEN: A mocked _get_ztext_files method in SwordBible mocked_testament.side_effect = [True, IOError('Not good')] # WHEN: Creating a SwordBible bible = SwordBible(u'test_path', SwordModuleType.ZTEXT, u'kjv', 'utf-8', u'OSIS') # THEN: Only 'nt' should have been loaded testaments = list(bible._testaments.keys()) self.assertListEqual(testaments, [u'ot'], u'Only "ot" files should be available') @patch('pysword.bible.SwordBible._setup') def test_init(self, patched_sword_bible_setup): """ Test that the init loading of bible works """ # GIVEN: A bible path = os.path.join(TEST_RESOURCE_FOLDER, u'modules', u'texts', u'ztext', u'finpr') # WHEN: Loading the bible bible = SwordBible(path) # THEN: It should load self.assertIsNotNone(bible, u'The bible should have loaded') class TestSwordBible(TestCase): """ Test the :class:`pysword.bible.SwordBible` class. """ def setUp(self): setup_patcher = patch('pysword.bible.SwordBible._setup') self.addCleanup(setup_patcher.stop) setup_patcher.start() def test_instantiation_default(self): """ Test that the instance returned is an instance of the correct class. """ # GIVEN: The SwordBible class # WHEN: Creating an instance without any module_type specified instance = SwordBible('path') # THEN: The instance should be an instance of the :class:`pysword.bible.RawTextModule` self.assertIsInstance(instance, ZTextModule) self.assertFalse(isinstance(instance, ZTextModule4)) def test_instantiation_raw_text(self): """ Test that the instance returned is an instance of the correct class. """ # GIVEN: The SwordBible class # WHEN: Creating an instance with a module_type of raw text instance = SwordBible('path', SwordModuleType.RAWTEXT) # THEN: The instance should be an instance of the :class:`pysword.bible.RawTextModule` self.assertIsInstance(instance, RawTextModule) self.assertFalse(isinstance(instance, RawTextModule4)) def test_instantiation_raw_text_keyword(self): """ Test that the instance returned is an instance of the correct class. """ # GIVEN: The SwordBible class # WHEN: Creating an instance with a module_type of raw text as specified by a keyword argument instance = SwordBible('path', module_type=SwordModuleType.RAWTEXT) # THEN: The instance should be an instance of the :class:`pysword.bible.RawTextModule` self.assertIsInstance(instance, RawTextModule) self.assertFalse(isinstance(instance, RawTextModule4)) def test_instantiation_raw_text_4(self): """ Test that the instance returned is an instance of the correct class. """ # GIVEN: The SwordBible class # WHEN: Creating an instance with a module_type of raw text 4 instance = SwordBible('path', SwordModuleType.RAWTEXT4) # THEN: The instance should be an instance of the :class:`pysword.bible.RawTextModule4` self.assertIsInstance(instance, RawTextModule4) def test_instantiation_z_text(self): """ Test that the instance returned is an instance of the correct class. """ # GIVEN: The SwordBible class # WHEN: Creating an instance with a module_type of z text instance = SwordBible('path', SwordModuleType.ZTEXT) # THEN: The instance should be an instance of the :class:`pysword.bible.ZTextModule` self.assertIsInstance(instance, ZTextModule) self.assertFalse(isinstance(instance, ZTextModule4)) def test_instantiation_z_text_4(self): """ Test that the instance returned is an instance of the correct class. """ # GIVEN: The SwordBible class # WHEN: Creating an instance with a module_type of z text 4 instance = SwordBible('path', SwordModuleType.ZTEXT4) # THEN: The instance should be an instance of the :class:`pysword.bible.ZTextModule4` self.assertIsInstance(instance, ZTextModule4) def test_instantiation_invalid_type(self): """ Test that the instance returned is an instance of the correct class. """ # GIVEN: The SwordBible class # WHEN: Creating an instance with a module_type of zLD # THEN: A ValueError should be raised self.assertRaises(ValueError, SwordBible, 'path', 'zLD') def test_direct_instantiation_raw_text(self): """ Test that the instance returned is an instance of the correct class. """ # GIVEN: The :class:`pysword.bible.RawTextModule` # WHEN: Creating an instance of it instance = RawTextModule('path') # THEN: The instance should be an instance of the :class:`pysword.bible.RawTextModule` self.assertIsInstance(instance, RawTextModule) def test_direct_instantiation_raw_text_34(self): """ Test that the instance returned is an instance of the correct class. """ # GIVEN: The :class:`pysword.bible.RawTextModule4` # WHEN: Creating an instance of it instance = RawTextModule4('path') # THEN: The instance should be an instance of the :class:`pysword.bible.RawTextModule4` self.assertIsInstance(instance, RawTextModule4) def test_direct_instantiation_z_text(self): """ Test that the instance returned is an instance of the correct class. """ # GIVEN: The :class:`pysword.bible.ZTextModule` # WHEN: Creating an instance of it instance = ZTextModule('path') # THEN: The instance should be an instance of the :class:`pysword.bible.ZTextModule` self.assertIsInstance(instance, ZTextModule) def test_direct_instantiation_z_text_4(self): """ Test that the instance returned is an instance of the correct class. """ # GIVEN: The :class:`pysword.bible.ZTextModule4` # WHEN: Creating an instance of it instance = ZTextModule4('path') # THEN: The instance should be an instance of the :class:`pysword.bible.ZTextModule4` self.assertIsInstance(instance, ZTextModule4) class TestDecodeBytesPy2(TestCase): def setUp(self): self.setup_patcher = patch.object(SwordBible, '_setup') self.addCleanup(self.setup_patcher.stop) self.setup_patcher.start() def test_decode_bytes_utf8(self): """ Test SwordBible._decode_bytes when called with a Py2 str / Py3 bytes object encoded with utf-8 """ # GIVEN: A Py2 str / Py3 bytes object which has been encoded from utf-8 bible_instance = SwordBible('module_path') unicode_data = u'Finnish Pyhä Raamattu (1933/1938)' byte_data = unicode_data.encode('utf-8') # WHEN: Calling `_decode_bytes` result = bible_instance._decode_bytes(byte_data) # THEN: The result should be equal to the original unicode data. `_encoding` should still be None, as it was # successfully decoded in the try statment block self.assertEqual(unicode_data, result) self.assertEqual(bible_instance._encoding, None) def test_decode_bytes_iso_8859_1(self): """ Test SwordBible._decode_bytes when called with a Py2 str / Py3 bytes object encoded with iso-8859-1 """ # GIVEN: A Py2 str / Py3 bytes object which has been encoded from iso-8859-1 bible_instance = SwordBible('module_path') unicode_data = u'Finnish Pyhä Raamattu (1933/1938)' byte_data = unicode_data.encode(u'iso-8859-1') # WHEN: Calling `_decode_bytes` result = bible_instance._decode_bytes(byte_data) # THEN: The result should be equal to the original unicode data. `_encoding` should be set to `iso-8859-1` as # the statment block failed. self.assertEqual(unicode_data, result) self.assertEqual(bible_instance._encoding, u'cp1252') def test_decode_bytes_specified_encoding(self): """ Test SwordBible._decode_bytes when called with a Py2 str / Py3 bytes object encoded by the encoding specified in the initialisation of the SwordBible object """ # GIVEN: A Py2 str / Py3 bytes object which has been encoded from utf-16, and when the encoding has # been specified. bible_instance = SwordBible('module_path', encoding='utf-16') unicode_data = u'Finnish Pyhä Raamattu (1933/1938)' byte_data = unicode_data.encode('utf-16') # WHEN: Calling `_decode_bytes` result = bible_instance._decode_bytes(byte_data) # THEN: The result should be equal to the original unicode data. `_encoding` should be set to encoding specified self.assertEqual(unicode_data, result) self.assertEqual(bible_instance._encoding, 'utf-16') class TestTestamentClass(TestCase): """ Tests to test the :class:`pysword.bible.Testament` class. """ @patch(u'pysword.bible.io') def test_instantiation(self, mocked_io): """ Test the instantation of the :class:`pysword.bible.Testament` class """ # GIVEN: The Testament class # WHEN: Instantiating it. instance = Testament(u'nt', test_file_1=u'test_1.ext', test_file_2=u'test_2.ext', test_file_3=u'test_3.ext') # THEN: An attribute should have been created for each file handler that was opened. io.open should have been # called with each file. self.assertTrue(hasattr(instance, u'test_file_1')) self.assertTrue(hasattr(instance, u'test_file_2')) self.assertTrue(hasattr(instance, u'test_file_3')) # Prior to Py3.6 the order of keyword arguments was not guaranteed. mocked_io.open.assert_has_calls( [call(u'test_1.ext', u'rb'), call(u'test_2.ext', u'rb'), call(u'test_3.ext', u'rb')], any_order=True) self.assertEqual(mocked_io.open.call_count, 3) @patch(u'pysword.bible.io') def test_deletion(self, mocked_io): """ Test the deletion of and instance of the :class:`pysword.bible.Testament` class """ file_handle_1_mock = MagicMock() file_handle_2_mock = MagicMock() file_handle_3_mock = MagicMock() mocked_io.open.side_effect = [file_handle_1_mock, file_handle_2_mock, file_handle_3_mock] # GIVEN: An instance of the Testament class instance = Testament('nt', test_file_1=u'test_1.ext', test_file_2=u'test_2.ext', test_file_3=u'test_3.ext') # WHEN: Deleting the instance del instance # THEN: Each file should have been closed file_handle_1_mock.close.assert_called_once_with() file_handle_2_mock.close.assert_called_once_with() file_handle_3_mock.close.assert_called_once_with() pysword-0.2.8/tests/test_swordModules.py000066400000000000000000000156461424450246100205100ustar00rootroot00000000000000# -*- coding: utf-8 -*- ############################################################################### # PySword - A native Python reader of the SWORD Project Bible Modules # # --------------------------------------------------------------------------- # # Copyright (c) 2008-2019 Various PySword developers: # # Kenneth Arnold, Joshua Gross, Tomas Groth, Ryan Hiebert, Philip Ridout, # # Matthew Wardrop # # --------------------------------------------------------------------------- # # Permission is hereby granted, free of charge, to any person obtaining a # # copy of this software and associated documentation files (the "Software"), # # to deal in the Software without restriction, including without limitation # # the rights to use, copy, modify, merge, publish, distribute, sublicense, # # and/or sell copies of the Software, and to permit persons to whom the # # Software is furnished to do so, subject to the following conditions: # # # # The above copyright notice and this permission notice shall be included # # in all copies or substantial portions of the Software. # # # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE # # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER # # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING # # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER # # DEALINGS IN THE SOFTWARE. # ############################################################################### import os from tests import TestCase, patch from pysword.modules import SwordModules, get_platform_path from pysword.bible import BlockType, CompressType TEST_RESOURCE_FOLDER = os.path.join(os.path.dirname(os.path.realpath(__file__)), u'resources') class TestSwordModules(TestCase): def test_parse_modules_folder(self): """ Test that conf file from a folder can be parsed. """ # GIVEN: A SwordModules object using a folder for input modules = SwordModules(TEST_RESOURCE_FOLDER) # WHEN: parsing the modules conf files mods_metadata = modules.parse_modules() # THEN: Modules should be detectable and information extractable module_list = [u'ChiPinyin', u'FinPR', u'BSV', u'ASV', u'OSHB', u'SpaRV1909'] self.assertTrue(all(x in module_list for x in mods_metadata.keys()), u'Some expected bibles were not detected') # Depending on the operating system, the handling of non-utf8 encoded conf-files is different self.assertEqual(mods_metadata[u'FinPR'][u'description'], u'Finnish Pyhä Raamattu (1933/1938)', u'Could not extract "description" for "FinPR"') self.assertEqual(mods_metadata[u'BSV'][u'description'], u'The Bond Slave Version Bible', u'Could not extract "description" for "BSV"') self.assertEqual(mods_metadata[u'ASV'][u'description'], u'American Standard Version (1901)', u'Could not extract "description" for "ASV"') self.assertEqual(mods_metadata[u'OSHB'][u'description'], u'Open Scriptures Hebrew Bible', u'Could not extract "description" for "OSHB"') def test_parse_modules_zip(self): """ Test that conf file from a zip can be parsed. """ # GIVEN: A SwordModules object using a folder for input modules = SwordModules(os.path.join(TEST_RESOURCE_FOLDER, u'FinPR.zip')) # WHEN: parsing the modules conf files mods_metadata = modules.parse_modules() # THEN: Modules should be detectable and information extractable self.assertEqual(1, len(mods_metadata.keys()), u'There should be only 1 module in a zip.') self.assertIn(u'FinPR', mods_metadata.keys(), u'FinPR should be available') self.assertEqual(mods_metadata['FinPR']['description'], u'Finnish Pyhä Raamattu (1933/1938)', u'Could not extract "description" for "FinPR"') def test_multiple_paths(self): """ Test that multiple paths are loaded correctly and that preference is given to later paths """ # GIVEN: A SwordModules object using multiple paths, including both # directories and zip files finpr = os.path.join(TEST_RESOURCE_FOLDER, u'FinPR.zip') modules = SwordModules([TEST_RESOURCE_FOLDER, finpr]) # WHEN: parsing the conf files mods_metadata = modules.parse_modules() # THEN: All the modules should be present, and FinPR's module path # should be the ZIP file, not the directory module_list = [u'ChiPinyin', u'FinPR', u'BSV', u'ASV', u'OSHB', u'SpaRV1909'] self.assertTrue(all(x in module_list for x in mods_metadata.keys()), u'Some expected bibles were not detected') self.assertEqual(modules._module_paths['BSV'], TEST_RESOURCE_FOLDER, u'Module paths are broken') self.assertNotEqual(modules._module_paths['FinPR'], TEST_RESOURCE_FOLDER, u'FinPR was not loaded from the zip file') def test_platform_paths(self): """ Test that constructing a SwordModules with no paths uses the platform default path """ # GIVEN: A SwordModules object constructed with no paths modules = SwordModules() # THEN: The search path should match get_platform_path() self.assertEqual(len(modules._sword_paths), 1) self.assertEqual(modules._sword_paths[0], get_platform_path()) @patch(u'pysword.modules.SwordBible') def test_get_bible_from_module(self, mocked_sword_bible): """ Test that the assigning of default values works. """ # GIVEN: A SwordModules object modules = SwordModules(u'test_sword_path') modules._modules = {u'test_key': {u'datapath': u'test_path', u'moddrv': u'test_mod_type'}} modules._module_paths = {u'test_key': u'test_sword_path'} # WHEN: Requesting a bible from a module bible = modules.get_bible_from_module(u'test_key') # THEN: It should succeed # Check that the returned mock bible has created with default values self.assertIsNotNone(bible, u'Returned bible should not be None') mocked_sword_bible.assert_called_with(os.path.join(u'test_sword_path', u'test_path'), u'test_mod_type', u'kjv', None, None, BlockType.BOOK, CompressType.ZIP, None) pysword-0.2.8/tests/test_utils.py000066400000000000000000000112331424450246100171450ustar00rootroot00000000000000# -*- coding: utf-8 -*- ############################################################################### # PySword - A native Python reader of the SWORD Project Bible Modules # # --------------------------------------------------------------------------- # # Copyright (c) 2008-2019 Various PySword developers: # # Kenneth Arnold, Joshua Gross, Tomas Groth, Ryan Hiebert, Philip Ridout, # # Matthew Wardrop # # --------------------------------------------------------------------------- # # Permission is hereby granted, free of charge, to any person obtaining a # # copy of this software and associated documentation files (the "Software"), # # to deal in the Software without restriction, including without limitation # # the rights to use, copy, modify, merge, publish, distribute, sublicense, # # and/or sell copies of the Software, and to permit persons to whom the # # Software is furnished to do so, subject to the following conditions: # # # # The above copyright notice and this permission notice shall be included # # in all copies or substantial portions of the Software. # # # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE # # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER # # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING # # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER # # DEALINGS IN THE SOFTWARE. # ############################################################################### import os import sys from tests import TestCase, skipUnless try: import pathlib except ImportError: pass from pysword.utils import path_like_to_str class TestPathLikeToStr(TestCase): @skipUnless(sys.version_info >= (3, 6), u'Only Python 3.6 and above has the os.PathLike object') def test_path_like_object(self): # GIVEN: An object that implements the `os.PathLike` `__fspath__` method path_like_object = pathlib.Path(u'test', u'path') # WHEN: Calling with path_like_to_str with an `os.PathLike` object result = path_like_to_str(path_like_object) # Then a string of the Path should have been returned self.assertIsInstance(result, str) self.assertEqual(result, os.path.join(u'test', u'path')) @skipUnless(sys.version_info >= (3, 4) and sys.version_info < (3, 6), u'Only Python 3.4 and 3.5 has a `pathlib.Path` object that is not also a `os.PathLike` object.') def test_path_object(self): # GIVEN: A `pathlib.Path` object path_object = pathlib.Path(u'test', u'path') # WHEN: Calling with path_like_to_str with an `pathlib.Path` object result = path_like_to_str(path_object) # Then a string of the Path should have been returned self.assertIsInstance(result, str) self.assertEqual(result, os.path.join(u'test', u'path')) @skipUnless(sys.version_info >= (3,), u'Use the str object in py3') def test_str_object(self): # GIVEN: A `str` object str_object = os.path.join(u'test', u'path') # WHEN: Calling with path_like_to_str with an `pathlib.Path` object result = path_like_to_str(str_object) # THEN: The returned valus should be a str and equal to the object passed in self.assertIsInstance(result, str) self.assertEqual(result, str_object) @skipUnless(sys.version_info < (3,), u'Use the unicode object in py2') def test_unicode_object(self): # GIVEN: A `unicode` object unicode_object = os.path.join(u'test', u'path') # WHEN: Calling with path_like_to_str with an `unicode` object result = path_like_to_str(unicode_object) # THEN: The returned valus should be a unicode and equal to the object passed in self.assertIsInstance(result, unicode) self.assertEqual(result, unicode_object) def test_invalid_type(self): # GIVEN: A list of unsupported types unsupported_types = [None, False, True, 0, 1, 3, list(), dict(), tuple()] for unsupported_object in unsupported_types: # WHEN: Calling path_like_to_str with an invalid object self.assertRaises(TypeError, path_like_to_str, unsupported_types)