[med-svn] [sambamba] 01/02: New upstream version 0.6.5

Andreas Tille tille at debian.org
Sat Mar 4 18:18:29 UTC 2017


This is an automated email from the git hooks/post-receive script.

tille pushed a commit to branch master
in repository sambamba.

commit 00562268bda5e61e4d462211ba5aacd389ad1eeb
Author: Andreas Tille <tille at debian.org>
Date:   Sat Mar 4 19:17:25 2017 +0100

    New upstream version 0.6.5
---
 .dropbox.sh                                   |     6 +
 .gitignore                                    |     8 +
 .gitmodules                                   |     9 +
 .run_tests.sh                                 |     6 +
 .test_suite.sh                                |   116 +
 .travis.yml                                   |    29 +
 LICENSE                                       |   340 +
 Makefile                                      |    84 +
 README.md                                     |   117 +
 bioconda_yaml_gen.py                          |    55 +
 cram/exception.d                              |     7 +
 cram/htslib.d                                 |  1544 +++
 cram/reader.d                                 |   122 +
 cram/reference.d                              |   111 +
 cram/slicereader.d                            |   113 +
 cram/wrappers.d                               |   420 +
 cram/writer.d                                 |   108 +
 deb/DEBIAN_CHANGELOG                          |   139 +
 deb/makepackage.rb                            |   181 +
 etc/bash_completion.d/sambamba                |    77 +
 main.d                                        |    80 +
 man/.gitignore                                |     1 +
 man/sambamba-flagstat.1                       |    59 +
 man/sambamba-flagstat.1.ronn                  |    34 +
 man/sambamba-index.1                          |    53 +
 man/sambamba-index.1.ronn                     |    41 +
 man/sambamba-markdup.1                        |    53 +
 man/sambamba-markdup.1.ronn                   |    56 +
 man/sambamba-merge.1                          |    35 +
 man/sambamba-merge.1.ronn                     |    34 +
 man/sambamba-pileup.1                         |    60 +
 man/sambamba-pileup.1.ronn                    |    53 +
 man/sambamba-slice.1                          |    23 +
 man/sambamba-slice.1.ronn                     |    26 +
 man/sambamba-sort.1                           |    68 +
 man/sambamba-sort.1.ronn                      |    72 +
 man/sambamba-view.1                           |   174 +
 man/sambamba-view.1.ronn                      |   128 +
 man/sambamba.1                                |    45 +
 man/sambamba.1.ronn                           |    24 +
 randomize_bases.d                             |    22 +
 sambamba-ldmd-debug.rsp                       |     1 +
 sambamba-ldmd-release.rsp                     |     1 +
 sambamba/depth.d                              |  1241 ++
 sambamba/fixbins.d                            |   100 +
 sambamba/flagstat.d                           |   139 +
 sambamba/index.d                              |   117 +
 sambamba/markdup.d                            |  1313 ++
 sambamba/merge.d                              |   466 +
 sambamba/pileup.d                             |   726 ++
 sambamba/slice.d                              |   334 +
 sambamba/sort.d                               |   588 +
 sambamba/utils/common/bed.d                   |   151 +
 sambamba/utils/common/file.d                  |    10 +
 sambamba/utils/common/filtering.d             |   356 +
 sambamba/utils/common/intervaltree.d          |   153 +
 sambamba/utils/common/ldc_gc_workaround.d     |    81 +
 sambamba/utils/common/overwrite.d             |    37 +
 sambamba/utils/common/pratt_parser.d          |   467 +
 sambamba/utils/common/progressbar.d           |    83 +
 sambamba/utils/common/queryparser.d           |   491 +
 sambamba/utils/common/readstorage.d           |   140 +
 sambamba/utils/common/tmpdir.d                |    24 +
 sambamba/utils/view/alignmentrangeprocessor.d |   195 +
 sambamba/utils/view/headerserializer.d        |    80 +
 sambamba/view.d                               |   384 +
 test/issue225.bam                             |   Bin 0 -> 4261 bytes
 test/issue225.bam.bai                         |   Bin 0 -> 96 bytes
 test/issue225.out                             |  1904 +++
 test/issue225.z.out                           | 16572 ++++++++++++++++++++++++
 test/issue_193.bam                            |   Bin 0 -> 5167 bytes
 test/issue_193.bam.bai                        |   Bin 0 -> 256 bytes
 test/issue_193_expected_output.txt            |   255 +
 test/issue_204.bam                            |   Bin 0 -> 38690 bytes
 test/issue_204.bam.bai                        |   Bin 0 -> 81792 bytes
 test/issue_204_expected_output.txt            |     2 +
 test/mate_overlaps_1_3M_4M.bam                |   Bin 0 -> 30315 bytes
 test/mate_overlaps_1_3M_4M.bam.bai            |   Bin 0 -> 2952 bytes
 test/mate_overlaps_1_3M_4M.bed                |     5 +
 test/test_depth.py                            |   126 +
 thirdparty/mergesort.d                        |   221 +
 thirdparty/unstablesort.d                     |   328 +
 utils/lz4.d                                   |   322 +
 utils/strip_bcf_header.d                      |   107 +
 utils/version_.d                              |    21 +
 85 files changed, 32274 insertions(+)

diff --git a/.dropbox.sh b/.dropbox.sh
new file mode 100755
index 0000000..84d653f
--- /dev/null
+++ b/.dropbox.sh
@@ -0,0 +1,6 @@
+#!/bin/bash
+for i in "$@"; do
+  CONTENT_LENGTH=`ls -la "$i" | awk '{ print $5}'`
+  curl --request PUT --header "Content-Length: "${CONTENT_LENGTH}"" --header "Content-Type: multipart/mixed" --data-binary "@"$i"" "https://api-content.dropbox.com/1/files_put/sandbox/$i?access_token="${ACCESS_TOKEN}""
+  printf "\n"
+done
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..84a1605
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,8 @@
+build/
+shunit*
+/*.sam
+/*.bam
+/*.bai
+/*.cram
+/*.crai
+/*.txt
diff --git a/.gitmodules b/.gitmodules
new file mode 100644
index 0000000..c976cd4
--- /dev/null
+++ b/.gitmodules
@@ -0,0 +1,9 @@
+[submodule "BioD"]
+	path = BioD
+	url = https://github.com/biod/BioD.git
+[submodule "htslib"]
+	path = htslib
+	url = https://github.com/lomereiter/htslib.git
+[submodule "lz4"]
+	path = lz4
+	url = https://github.com/Cyan4973/lz4
diff --git a/.run_tests.sh b/.run_tests.sh
new file mode 100755
index 0000000..4b2d086
--- /dev/null
+++ b/.run_tests.sh
@@ -0,0 +1,6 @@
+#!/usr/bin/env bash
+
+# download shunit2 in order to run tests:
+# curl -L "https://dl.dropboxusercontent.com/u/7916095/shunit2-2.0.3.tgz" | tar zx --overwrite
+
+./.test_suite.sh | tee /dev/stderr | grep -q 'success rate: 100%'
diff --git a/.test_suite.sh b/.test_suite.sh
new file mode 100755
index 0000000..87bcf8b
--- /dev/null
+++ b/.test_suite.sh
@@ -0,0 +1,116 @@
+#!/usr/bin/env bash
+
+testSortByName() {
+    # use very tiny buffer of 200K so that multithreading is used
+    ./build/sambamba sort -t2 -n BioD/test/data/ex1_header.bam -o ex1_header.nsorted.bam -m 200K
+    ./build/sambamba view -t2 ex1_header.nsorted.bam > ex1_header.nsorted.sam
+    assertEquals "3270" `wc -l < ex1_header.nsorted.sam`
+    cat ex1_header.nsorted.sam | cut -f1 | LC_ALL=C sort -c
+    assertEquals 0 $?
+}
+
+testSortByCoordinate() {
+    ./build/sambamba sort -t2 -m 50M ex1_header.nsorted.bam -o ex1_header.sorted.bam
+    ./build/sambamba index -t2 ex1_header.sorted.bam
+    assertEquals 0 $?
+}
+
+testSlice() {
+    ./build/sambamba slice ex1_header.sorted.bam chr1 -o /dev/null
+    assertEquals 0 $?
+}
+
+testView() {
+    assertEquals "1806" `./build/sambamba view -c ex1_header.sorted.bam chr2`
+    assertEquals "1464" `./build/sambamba view -c ex1_header.sorted.bam chr1`
+    assertEquals "0" `./build/sambamba view -c ex1_header.sorted.bam '*'`
+}
+
+testOverwriteProtection() {
+    ./build/sambamba view ex1_header.nsorted.bam -f bam -o ./ex1_header.nsorted.bam 2>/dev/null
+    assertNotSame 0 $?
+    ./build/sambamba merge ex1_header.sorted.bam ex1_header.sorted.bam ex1_header.sorted.bam 2>/dev/null
+    assertNotSame 0 $?
+    ./build/sambamba sort -m 50M ex1_header.nsorted.bam -o ./build/../ex1_header.nsorted.bam 2>/dev/null
+    assertNotSame 0 $?
+    ./build/sambamba markdup ex1_header.nsorted.bam ./build/../ex1_header.nsorted.bam 2>/dev/null
+    assertNotSame 0 $?
+    ./build/sambamba slice ex1_header.nsorted.bam chr1 -o ./build/../ex1_header.nsorted.bam 2>/dev/null
+    assertNotSame 0 $?
+}
+
+testSortingEmptyFile() {
+    ./build/sambamba view ex1_header.sorted.bam -f bam -F "ref_id > 3" -o empty.bam 2>/dev/null
+    ./build/sambamba sort -m 50M empty.bam -o empty2.bam 2>/dev/null
+    assertEquals "0" `./build/sambamba view -c empty2.bam`
+}
+
+testMarkdupEmptyFile() {
+    ./build/sambamba view ex1_header.sorted.bam -f bam -F "ref_id > 3" -o empty.bam 2>/dev/null
+    ./build/sambamba markdup empty.bam empty.dedup.bam 2>/dev/null
+    assertEquals "0" `./build/sambamba view -c empty.dedup.bam`
+}
+
+testCramView() {
+    ./build/sambamba view -S htslib/test/c1\#pad2.sam -T htslib/test/c1.fa -f cram -o c1_pad2.cram
+    ./build/sambamba view -C c1_pad2.cram >/dev/null
+    assertEquals 0 $?
+}
+
+testIndexUsage() {
+    rm *.bai && rm c1_*
+    ./build/sambamba view -S htslib/test/c1\#pad2.sam -T htslib/test/c1.fa -f cram -o c1_pad2.cram &&
+    ./build/sambamba index -C c1_pad2.cram && test -e c1_pad2.cram.crai
+    ./build/sambamba index -C c1_pad2.cram c1_cram_index && test -e c1_cram_index.crai
+    ./build/sambamba index ex1_header.sorted.bam && test -e ex1_header.sorted.bam.bai
+    ./build/sambamba index ex1_header.sorted.bam ex1_header.sorted.bai && test -e ex1_header.sorted.bai
+    assertEquals 0 $?
+}
+
+testIssue193() {
+    rm -f output_193.txt
+    ./build/sambamba depth base test/issue_193.bam > output_193.txt 2>/dev/null
+    diff -q output_193.txt test/issue_193_expected_output.txt
+    assertEquals 0 $?
+}
+
+testIssue204() {
+    rm -f output_204.txt
+    ./build/sambamba index test/issue_204.bam
+    ./build/sambamba depth region test/issue_204.bam -L 2:166868600-166868813 -T 15 -T 20 -T 25 -m > output_204.txt 2>/dev/null
+    diff -q output_204.txt test/issue_204_expected_output.txt
+    assertEquals 0 $?
+}
+
+testIssue206() {
+    ./build/sambamba markdup ex1_header.sorted.bam ex1_header.dedup.bam 2>/dev/null
+    ./build/sambamba view -H ex1_header.dedup.bam | grep '@PG' | grep -q 'sambamba'
+    assertEquals 0 $?
+
+    ./build/sambamba view ex1_header.sorted.bam -f bam -o ex1_header.filtered.bam\
+                     -F "supplementary or secondary_alignment"
+    ./build/sambamba view -H ex1_header.filtered.bam | grep '@PG' | grep -q 'secondary'
+    assertEquals 0 $?
+}
+
+testIssue225() {
+    ./build/sambamba index test/issue225.bam
+    ./build/sambamba depth base -c 1 test/issue225.bam > depth_base_225_1.txt 2>/dev/null
+    diff -q depth_base_225_1.txt test/issue225.out
+    assertEquals 0 $?
+
+    ./build/sambamba depth base -c 0 test/issue225.bam > depth_base_225_0.txt 2>/dev/null
+    diff -q depth_base_225_0.txt test/issue225.z.out
+    assertEquals 0 $?
+
+    # exercise BED codepath as well
+    ./build/sambamba depth base -c 1 -L chrM test/issue225.bam > depth_base_225_1.txt 2>/dev/null
+    diff -q depth_base_225_1.txt test/issue225.out
+    assertEquals 0 $?
+
+    ./build/sambamba depth base -c 0 -L chrM test/issue225.bam > depth_base_225_0.txt 2>/dev/null
+    diff -q depth_base_225_0.txt test/issue225.z.out
+    assertEquals 0 $?
+}
+
+. shunit2-2.0.3/src/shell/shunit2
diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 0000000..ffd849c
--- /dev/null
+++ b/.travis.yml
@@ -0,0 +1,29 @@
+# this file is used in order to build sambamba for Mac OS X on Travis CI
+language: objective-c
+
+env:
+  global:
+  - ACCESS_LEVEL=sandbox
+  - secure: blVtZH4Ia+4MkeTm0gRwL07r/bzhVRJJjUEbtvt0pIQNAtDq5aYuKnCI9sIw99XmEbv9+tSLc6DXq9d6LrDDR0EG7UUB4sTP6XW1XNJXm/kLIuoOCxTnVk6WBHZ4jusMWE0MNNDVmIS8nHrpoDp2ERXbfasD/9GT+3avVUvnsMg=
+  - secure: Kzdt/6PLGBhD5f8yOPaPdX5yxHisCPvmfYEKUcEVksKOEurQoIpsNjzAky/yzso4R21T6xycjawFvDXvlVA83m/WJZSDDiFLZVgGoaMoZl9UYOPESeZlJR57/HkjgCss0iz/AX9abUzJ1jGfRt9ujtwcoXB15PqUhbjk2iHF0f0=
+  - secure: K0J2r5R8xQMlAUwCaPVWHZUO4U+c+czK6H9bnN5RZPYs5BXpYjdV7/RgkOHsN9b+UksFx7LQRstgcVVcC+mQJRV8slGrx/GSmIA93Dp2mskU9eR1aQjxcUK10VMbIQI6qbXsZvvRSWPirNDQY4s3CjEKEv34t2IGALTkwaU1NmI=
+  - secure: J1ta2/K8lj5dbHRvk+jTUAMICSnepfyc8ILCfM/HFCRaXMJQJTX1HDzEMwK3tAzzKaKEp9Tbm2b3IwE1tCtFaAfYUGozmHLirkFfKqCu/jNUkxL807M8NiqMx+H7tu2aR6t9opYyBjNhtuthbIdir3c42nldYdpse0ZLhzQTLfs=
+
+before_install:
+  - brew install xz
+  - wget https://github.com/ldc-developers/ldc/releases/download/v0.17.1/ldc2-0.17.1-osx-x86_64.tar.xz
+  - tar xJf ldc2-0.17.1-osx-x86_64.tar.xz
+  - export PATH=`pwd`/ldc2-0.17.1-osx-x86_64/bin:$PATH
+  - export LIBRARY_PATH=`pwd`/ldc2-0.17.1-osx-x86_64/lib
+  - git submodule update --init --recursive
+  - wget https://github.com/craigcitro/r-travis/raw/master/scripts/dropbox.sh
+  - chmod +x dropbox.sh
+  - curl -L "https://dl.dropboxusercontent.com/u/7916095/shunit2-2.0.3.tgz" | tar zx
+
+script:
+  - make sambamba-ldmd2-64
+  - ./.run_tests.sh
+
+after_success:
+  - tar cjvf sambamba_osx.tar.bz2 ./build/sambamba
+  - ./dropbox.sh upload sambamba_osx.tar.bz2
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..d60c31a
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,340 @@
+		    GNU GENERAL PUBLIC LICENSE
+		       Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+     59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+			    Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users.  This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it.  (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.)  You can apply it to
+your programs, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+  To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have.  You must make sure that they, too, receive or can get the
+source code.  And you must show them these terms so they know their
+rights.
+
+  We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+  Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software.  If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+  Finally, any free program is threatened constantly by software
+patents.  We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary.  To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+

+		    GNU GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License.  The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language.  (Hereinafter, translation is included without limitation in
+the term "modification".)  Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+  1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+  2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) You must cause the modified files to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    b) You must cause any work that you distribute or publish, that in
+    whole or in part contains or is derived from the Program or any
+    part thereof, to be licensed as a whole at no charge to all third
+    parties under the terms of this License.
+
+    c) If the modified program normally reads commands interactively
+    when run, you must cause it, when started running for such
+    interactive use in the most ordinary way, to print or display an
+    announcement including an appropriate copyright notice and a
+    notice that there is no warranty (or else, saying that you provide
+    a warranty) and that users may redistribute the program under
+    these conditions, and telling the user how to view a copy of this
+    License.  (Exception: if the Program itself is interactive but
+    does not normally print such an announcement, your work based on
+    the Program is not required to print an announcement.)
+

+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+    a) Accompany it with the complete corresponding machine-readable
+    source code, which must be distributed under the terms of Sections
+    1 and 2 above on a medium customarily used for software interchange; or,
+
+    b) Accompany it with a written offer, valid for at least three
+    years, to give any third party, for a charge no more than your
+    cost of physically performing source distribution, a complete
+    machine-readable copy of the corresponding source code, to be
+    distributed under the terms of Sections 1 and 2 above on a medium
+    customarily used for software interchange; or,
+
+    c) Accompany it with the information you received as to the offer
+    to distribute corresponding source code.  (This alternative is
+    allowed only for noncommercial distribution and only if you
+    received the program in object code or executable form with such
+    an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it.  For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable.  However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+

+  4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License.  Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+  5. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Program or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+  6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+  7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+

+  8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded.  In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+  9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time.  Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation.  If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+  10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission.  For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this.  Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+			    NO WARRANTY
+
+  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+		     END OF TERMS AND CONDITIONS
+

+	    How to Apply These Terms to Your New Programs
+
+  If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+  To do so, attach the following notices to the program.  It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the program's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    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; either version 2 of the License, or
+    (at your option) any later version.
+
+    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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+    Gnomovision version 69, Copyright (C) year  name of author
+    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+    This is free software, and you are welcome to redistribute it
+    under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License.  Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+  `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+  <signature of Ty Coon>, 1 April 1989
+  Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs.  If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library.  If this is what you want to do, use the GNU Library General
+Public License instead of this License.
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..28a0c50
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,84 @@
+D_COMPILER=dmd
+D_FLAGS=--compiler=dmd -IBioD -g -d#-O -release -inline # -version=serial
+
+STATIC_LIB_PATH=-Lhtslib -Llz4/lib
+STATIC_LIB_SUBCMD=$(STATIC_LIB_PATH) -Wl,-Bstatic -lhts -llz4 -Wl,-Bdynamic
+RDMD_FLAGS=--force --build-only --compiler=$(D_COMPILER) $(D_FLAGS)
+
+PLATFORM := $(shell uname -s)
+
+ifeq "$(PLATFORM)" "Darwin"
+LINK_CMD=gcc -dead_strip -lphobos2-ldc -ldruntime-ldc -lm -lpthread htslib/libhts.a lz4/lib/liblz4.a build/sambamba.o -o build/sambamba
+DMD_STATIC_LIBS=htslib/libhts.a lz4/lib/liblz4.a
+else
+LINK_CMD=gcc -Wl,--gc-sections -o build/sambamba build/sambamba.o $(STATIC_LIB_SUBCMD) -l:libphobos2-ldc.a -l:libdruntime-ldc.a  -lrt -lpthread -lm
+DMD_STATIC_LIBS=-L-Lhtslib -L-l:libhts.a -L-l:libphobos2.a -L-Llz4/lib -L-l:liblz4.a
+endif
+
+# DMD only - this goal is used because of fast compilation speed, during development
+all: htslib-static lz4-static
+	mkdir -p build/
+	rdmd --force --build-only $(D_FLAGS) $(DMD_STATIC_LIBS) -ofbuild/sambamba main.d
+
+# This is the main Makefile goal, used for building releases (best performance)
+sambamba-ldmd2-64: htslib-static lz4-static
+	mkdir -p build/
+	ldmd2 @sambamba-ldmd-release.rsp
+	$(LINK_CMD)
+
+# For debugging; GDB & Valgrind are more friendly to executables created using LDC/GDC than DMD
+sambamba-ldmd2-debug: htslib-static lz4-static
+	mkdir -p build/
+	ldmd2 @sambamba-ldmd-debug.rsp
+	$(LINK_CMD)
+
+htslib-static:
+	cd htslib && $(MAKE)
+
+lz4-static: lz4/lib/liblz4.a
+
+lz4/lib/liblz4.a: lz4/lib/lz4.c lz4/lib/lz4hc.c lz4/lib/lz4frame.c lz4/lib/xxhash.c
+	cd lz4/lib && $(CC) -O3 -c lz4.c lz4hc.c lz4frame.c xxhash.c && $(AR) rcs liblz4.a lz4.o lz4hc.o lz4frame.o xxhash.o
+
+# all below link to libhts dynamically for simplicity
+
+sambamba-flagstat:
+	mkdir -p build/
+	rdmd $(RDMD_FLAGS) -L-lhts -version=standalone -ofbuild/sambamba-flagstat sambamba/flagstat.d
+
+sambamba-merge:
+	mkdir -p build/
+	rdmd $(RDMD_FLAGS) -L-lhts -version=standalone -ofbuild/sambamba-merge sambamba/merge.d
+
+sambamba-index:
+	mkdir -p build/
+	rdmd $(RDMD_FLAGS) -L-lhts -version=standalone -ofbuild/sambamba-index sambamba/index.d
+
+sambamba-sort:
+	mkdir -p build/
+	rdmd $(RDMD_FLAGS) -L-lhts -version=standalone -ofbuild/sambamba-sort sambamba/sort.d
+
+sambamba-view:
+	mkdir -p build/
+	rdmd $(RDMD_FLAGS) -L-lhts -version=standalone -ofbuild/sambamba-view sambamba/view.d
+
+sambamba-slice:
+	mkdir -p build/
+	rdmd $(RDMD_FLAGS) -L-lhts -version=standalone -ofbuild/sambamba-slice sambamba/slice.d
+
+sambamba-markdup:
+	mkdir -p build/
+	rdmd $(RDMD_FLAGS) -L-lhts -version=standalone -ofbuild/sambamba-markdup sambamba/markdup.d
+
+sambamba-depth:
+	mkdir -p build/
+	rdmd $(RDMD_FLAGS) -L-lhts -version=standalone -ofbuild/sambamba-depth sambamba/depth.d
+
+sambamba-pileup:
+	mkdir -p build/
+	rdmd $(RDMD_FLAGS) -L-lhts -version=standalone -ofbuild/sambamba-pileup sambamba/pileup.d
+
+.PHONY: clean
+
+clean:
+	rm -rf build/ ; $(MAKE) -C htslib clean ; $(MAKE) -C lz4 clean
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..d9995ad
--- /dev/null
+++ b/README.md
@@ -0,0 +1,117 @@
+[![Anaconda-Server Badge](https://anaconda.org/bioconda/sambamba/badges/installer/conda.svg)](https://conda.anaconda.org/bioconda)
+
+[![DOI](https://zenodo.org/badge/doi/10.5281/zenodo.13200.svg)](http://dx.doi.org/10.5281/zenodo.13200)
+# Sambamba
+
+Sambamba is a high performance modern robust and fast tool (and
+library), written in the D programming language, for working with SAM
+and BAM files.  Current parallelised functionality is an important
+subset of samtools functionality, including view, index, sort,
+markdup, and depth. 
+
+Because of efficient use of modern multicore CPUs, usually `sambamba` is much faster
+than `samtools`. For example, indexing a 2.5 Gb BAM file (fully cached into RAM) 
+on a 8 core machine utilizes all cores at 64% CPU:
+
+    time sambamba index merged_NIT20120138_F3_20130715.bam -t8
+
+      real    0m17.398s
+      user    1m25.841s
+      sys     0m3.752s
+
+meanwhile samtools is *4x* slower:
+
+    time samtools index merged_NIT20120138_F3_20130715.bam
+
+      real    1m8.083s
+      user    1m6.640s
+      sys     0m1.448s
+
+In practice, the speedup is usually smaller since I/O becomes a bottleneck.
+Even so, it makes a big difference, shifting the focus to I/O optimization, i.e.
+less temporary files, more UNIX pipes, faster disk storage, tweaking filesystem, etc.
+Most tools in `sambamba` support piping: just specify `/dev/stdin` or `/dev/stdout` as filenames.
+
+Notice that `samtools` implements parallel BAM compression in `sort` and `merge`, 
+but `sambamba` should be faster for these tasks (given same amount of memory) 
+due to more cache-friendly approach to parallelization.
+If it is not the case for you, please file a bug.
+
+Sambamba is free and open source software, licensed under GPLv2+.
+See manual pages [online](https://lomereiter.github.io/sambamba/docs/sambamba-view.html) 
+to know more about what is available and how to use it.
+
+For more information on Sambamba you can contact Artem Tarasov and Pjotr Prins.
+
+# Binaries
+
+If you are already a Conda user, please use [`bioconda`](https://bioconda.github.io/) channel.
+If you are not, strongly consider becoming one.
+
+Users of Homebrew can also use the formula from `homebrew-science`.
+
+For those not in the mood to learn/install new package managers, there are of course Github [releases](https://github.com/lomereiter/sambamba/releases).
+
+# Compiling Sambamba
+
+The preferred method for compiling Sambamba is with the LDC compiler
+which targets LLVM.
+
+## Compiling for Linux
+
+The LDC compiler's github repository also provides binary images. The current
+preferred release for sambamba is LDC - the LLVM D compiler (>= 0.16.1). After
+installing LDC:
+
+```sh
+    git clone --recursive https://github.com/lomereiter/sambamba.git
+    cd sambamba
+    make sambamba-ldmd2-64
+```
+
+Installing LDC only means unpacking an archive and setting some environmental variables, e.g. unpacking into `$HOME`:
+```sh
+cd
+wget https://github.com/ldc-developers/ldc/releases/download/v0.17.1/ldc2-0.17.1-linux-x86_64.tar.xz
+tar xJf ldc2-0.17.1-linux-x86_64.tar.xz
+export PATH=~/ldc2-0.17.1-linux-x86_64/bin/:$PATH
+export LIBRARY_PATH=~/ldc2-0.17.1-linux-x86_64/lib/
+```
+
+## Compiling for Mac OS X
+
+```sh
+    brew install ldc
+    git clone --recursive https://github.com/lomereiter/sambamba.git
+    cd sambamba
+    make sambamba-ldmd2-64
+```
+
+# Troubleshooting
+
+In case of crashes it's helpful to have GDB stacktraces (`bt` command).
+
+Note that GDB should be made aware of D garbage collector:
+```
+handle SIGUSR1 nostop
+handle SIGUSR1 noprint
+handle SIGUSR2 nostop
+handle SIGUSR2 noprint
+```
+
+# Development
+
+Sambamba development and issue tracker is on
+[github](https://github.com/lomereiter/sambamba). Developer
+documentation can be found in the source code and the [development
+documentation](https://github.com/lomereiter/sambamba-dev-docs).
+
+# Copyright
+
+Sambamba is distributed under GNU Public License v2+.
+
+# Citation
+
+If you are using Sambamba in your research, please cite the following article:
+
+A. Tarasov, A. J. Vilella, E. Cuppen, I. J. Nijman, and P. Prins. Sambamba: fast processing of NGS alignment formats. Bioinformatics, 2015.
diff --git a/bioconda_yaml_gen.py b/bioconda_yaml_gen.py
new file mode 100644
index 0000000..c9d24fe
--- /dev/null
+++ b/bioconda_yaml_gen.py
@@ -0,0 +1,55 @@
+template = """package:
+  name: sambamba
+  version: '{version}'
+
+source:
+  fn: sambamba_v{version}.tar.bz2
+  url: {linux_url} # [linux]
+  md5: {linux_md5} # [linux]
+  url: {osx_url} # [osx]
+  md5: {osx_md5} # [osx]
+
+build:
+  number: 0
+
+requirements:
+  build:
+  run:
+    - samtools # required for mpileup
+    - bcftools # required for mpileup
+
+test:
+  commands:
+    - sambamba view
+
+about:
+  home: https://github.com/lomereiter/sambamba
+  license: GPLv2
+  summary: Tools for working with SAM/BAM data
+"""
+
+import json
+from urllib2 import urlopen
+from hashlib import md5
+
+latest_release = json.loads(urlopen("https://api.github.com/repos/lomereiter/sambamba/releases").read())[0]
+sambamba_version = latest_release['tag_name'][1:]
+
+downloads = {}
+for asset in latest_release['assets']:
+    url = asset['browser_download_url']
+    platform = asset['name'].split(sambamba_version)[1].split(".")[0][1:]
+    downloads[platform] = url
+
+def md5sum(download):
+    h = md5()
+    h.update(urlopen(download).read())
+    return h.hexdigest()
+
+linux_md5 = md5sum(downloads['linux'])
+osx_md5 = md5sum(downloads['osx'])
+
+print template.format(version=sambamba_version, 
+                linux_url=downloads['linux'], 
+                osx_url=downloads['osx'],
+                linux_md5=linux_md5, osx_md5=osx_md5)
diff --git a/cram/exception.d b/cram/exception.d
new file mode 100644
index 0000000..937fe53
--- /dev/null
+++ b/cram/exception.d
@@ -0,0 +1,7 @@
+module cram.exception;
+
+public import std.exception;
+
+class CramException : Exception {
+    this(string msg) { super(msg); }
+}
diff --git a/cram/htslib.d b/cram/htslib.d
new file mode 100644
index 0000000..8cc3fef
--- /dev/null
+++ b/cram/htslib.d
@@ -0,0 +1,1544 @@
+module cram.htslib;
+
+// TODO: structs with bitfields are not represented correctly
+
+import core.stdc.stdio;
+import core.stdc.config;
+import core.stdc.stdarg;
+import core.sys.posix.pthread;
+
+extern (C):
+
+alias __kstring_t kstring_t;
+alias _Anonymous_0 htsFile;
+alias __hts_idx_t hts_idx_t;
+alias _Anonymous_1 hts_pair64_t;
+alias int function (BGZF*, void*, void*, int*, int*, int*) hts_readrec_func;
+alias _Anonymous_2 hts_itr_t;
+alias int function (void*, const(char)*) hts_name2id_f;
+alias _Anonymous_2* function (const(__hts_idx_t)*, int, int, int, int function (BGZF*, void*, void*, int*, int*, int*)) hts_itr_query_func;
+alias const(char)* function (void*, int) hts_id2name_f;
+alias _Anonymous_3 bam_hdr_t;
+alias _Anonymous_4 bam1_core_t;
+alias _Anonymous_5 bam1_t;
+alias _Anonymous_0 samFile;
+alias _Anonymous_6 bam_pileup1_t;
+alias int function (void*, _Anonymous_5*) bam_plp_auto_f;
+alias __bam_plp_t* bam_plp_t;
+alias __bam_mplp_t* bam_mplp_t;
+alias _Anonymous_5 bam_seq_t;
+alias _Anonymous_7 string_t;
+alias _Anonymous_8 string_alloc_t;
+alias _Anonymous_9 pool_t;
+alias _Anonymous_10 pool_alloc_t;
+alias uint khint32_t;
+alias c_ulong khint64_t;
+alias uint khint_t;
+alias uint khiter_t;
+alias const(char)* kh_cstr_t;
+alias _Anonymous_11 ks_tokaux_t;
+alias SAM_hdr_tag_s SAM_hdr_tag;
+alias SAM_hdr_item_s SAM_hdr_type;
+alias _Anonymous_12 SAM_SQ;
+alias _Anonymous_13 SAM_RG;
+alias _Anonymous_14 SAM_PG;
+alias kh_sam_hdr_s kh_sam_hdr_t;
+alias kh_m_s2i_s kh_m_s2i_t;
+alias _Anonymous_15 SAM_hdr;
+alias t_res t_pool_result;
+alias _Anonymous_16 t_pool_worker_t;
+alias _Anonymous_17 mFILE;
+alias kh_m_i2i_s kh_m_i2i_t;
+alias kh_s_i2i_s kh_s_i2i_t;
+alias ubyte uc;
+alias _Anonymous_18 pmap_t;
+alias kh_map_s kh_map_t;
+alias _Anonymous_19 cram_stats;
+alias _Anonymous_20 cram_file_def;
+alias _Anonymous_21 cram_metrics;
+alias _Anonymous_22 cram_block;
+alias _Anonymous_23 cram_block_compression_hdr;
+alias _Anonymous_24 cram_block_slice_hdr;
+alias _Anonymous_25 cram_container;
+alias _Anonymous_26 cram_record;
+alias _Anonymous_27 cram_feature;
+alias _Anonymous_28 refs_t;
+alias _Anonymous_29 cram_range;
+alias _Anonymous_30 cram_huffman_code;
+alias _Anonymous_31 cram_huffman_decoder;
+alias _Anonymous_32 cram_huffman_encoder;
+alias _Anonymous_33 cram_beta_decoder;
+alias _Anonymous_34 cram_gamma_decoder;
+alias _Anonymous_35 cram_subexp_decoder;
+alias _Anonymous_36 cram_external_decoder;
+alias _Anonymous_37 cram_byte_array_len_decoder;
+alias _Anonymous_38 cram_byte_array_stop_decoder;
+alias _Anonymous_39 cram_byte_array_len_encoder;
+
+extern __gshared int hts_verbose;
+extern __gshared const ubyte[256] seq_nt16_table;
+extern __gshared const ubyte* seq_nt16_str;
+extern __gshared const double __ac_HASH_UPPER;
+
+enum htsFormatCategory
+{
+	unknown_category = 0,
+	sequence_data = 1,
+	variant_data = 2,
+	index_file = 3,
+	region_list = 4,
+	category_maximum = 32767
+}
+
+enum htsExactFormat
+{
+	unknown_format = 0,
+	binary_format = 1,
+	text_format = 2,
+	sam = 3,
+	bam = 4,
+	bai = 5,
+	cram = 6,
+	crai = 7,
+	vcf = 8,
+	bcf = 9,
+	csi = 10,
+	gzi = 11,
+	tbi = 12,
+	bed = 13,
+	format_maximum = 32767
+}
+
+enum htsCompression
+{
+	no_compression = 0,
+	gzip = 1,
+	bgzf = 2,
+	custom = 3,
+	compression_maximum = 32767
+}
+
+enum sam_fields
+{
+	SAM_QNAME = 1,
+	SAM_FLAG = 2,
+	SAM_RNAME = 4,
+	SAM_POS = 8,
+	SAM_MAPQ = 16,
+	SAM_CIGAR = 32,
+	SAM_RNEXT = 64,
+	SAM_PNEXT = 128,
+	SAM_TLEN = 256,
+	SAM_SEQ = 512,
+	SAM_QUAL = 1024,
+	SAM_AUX = 2048,
+	SAM_RGAUX = 4096
+}
+
+enum cram_option
+{
+	CRAM_OPT_DECODE_MD = 0,
+	CRAM_OPT_PREFIX = 1,
+	CRAM_OPT_VERBOSITY = 2,
+	CRAM_OPT_SEQS_PER_SLICE = 3,
+	CRAM_OPT_SLICES_PER_CONTAINER = 4,
+	CRAM_OPT_RANGE = 5,
+	CRAM_OPT_VERSION = 6,
+	CRAM_OPT_EMBED_REF = 7,
+	CRAM_OPT_IGNORE_MD5 = 8,
+	CRAM_OPT_REFERENCE = 9,
+	CRAM_OPT_MULTI_SEQ_PER_SLICE = 10,
+	CRAM_OPT_NO_REF = 11,
+	CRAM_OPT_USE_BZIP2 = 12,
+	CRAM_OPT_SHARED_REF = 13,
+	CRAM_OPT_NTHREADS = 14,
+	CRAM_OPT_THREAD_POOL = 15,
+	CRAM_OPT_USE_LZMA = 16,
+	CRAM_OPT_USE_RANS = 17,
+	CRAM_OPT_REQUIRED_FIELDS = 18
+}
+
+enum cigar_op
+{
+	BAM_CMATCH_ = 0,
+	BAM_CINS_ = 1,
+	BAM_CDEL_ = 2,
+	BAM_CREF_SKIP_ = 3,
+	BAM_CSOFT_CLIP_ = 4,
+	BAM_CHARD_CLIP_ = 5,
+	BAM_CPAD_ = 6,
+	BAM_CBASE_MATCH = 7,
+	BAM_CBASE_MISMATCH = 8
+}
+
+enum sam_sort_order
+{
+	ORDER_UNKNOWN = -1,
+	ORDER_UNSORTED = 0,
+	ORDER_NAME = 1,
+	ORDER_COORD = 2
+}
+
+enum cram_encoding
+{
+	E_NULL = 0,
+	E_EXTERNAL = 1,
+	E_GOLOMB = 2,
+	E_HUFFMAN = 3,
+	E_BYTE_ARRAY_LEN = 4,
+	E_BYTE_ARRAY_STOP = 5,
+	E_BETA = 6,
+	E_SUBEXP = 7,
+	E_GOLOMB_RICE = 8,
+	E_GAMMA = 9
+}
+
+enum cram_external_type
+{
+	E_INT = 1,
+	E_LONG = 2,
+	E_BYTE = 3,
+	E_BYTE_ARRAY = 4,
+	E_BYTE_ARRAY_BLOCK = 5
+}
+
+enum cram_DS_ID
+{
+	DS_CORE = 0,
+	DS_aux = 1,
+	DS_aux_OQ = 2,
+	DS_aux_BQ = 3,
+	DS_aux_BD = 4,
+	DS_aux_BI = 5,
+	DS_aux_FZ = 6,
+	DS_aux_oq = 7,
+	DS_aux_os = 8,
+	DS_aux_oz = 9,
+	DS_ref = 10,
+	DS_RN = 11,
+	DS_QS = 12,
+	DS_IN = 13,
+	DS_SC = 14,
+	DS_BF = 15,
+	DS_CF = 16,
+	DS_AP = 17,
+	DS_RG = 18,
+	DS_MQ = 19,
+	DS_NS = 20,
+	DS_MF = 21,
+	DS_TS = 22,
+	DS_NP = 23,
+	DS_NF = 24,
+	DS_RL = 25,
+	DS_FN = 26,
+	DS_FC = 27,
+	DS_FP = 28,
+	DS_DL = 29,
+	DS_BA = 30,
+	DS_BS = 31,
+	DS_TL = 32,
+	DS_RI = 33,
+	DS_RS = 34,
+	DS_PD = 35,
+	DS_HC = 36,
+	DS_BB = 37,
+	DS_QQ = 38,
+	DS_TN = 39,
+	DS_RN_len = 40,
+	DS_SC_len = 41,
+	DS_BB_len = 42,
+	DS_QQ_len = 43,
+	DS_TC = 44,
+	DS_TM = 45,
+	DS_TV = 46,
+	DS_END = 47
+}
+
+enum cram_block_method
+{
+	ERROR = -1,
+	RAW = 0,
+	GZIP = 1,
+	BZIP2 = 2,
+	LZMA = 3,
+	RANS = 4,
+	RANS0 = 4,
+	RANS1 = 10,
+	GZIP_RLE = 11
+}
+
+enum cram_content_type
+{
+	CT_ERROR = -1,
+	FILE_HEADER = 0,
+	COMPRESSION_HEADER = 1,
+	MAPPED_SLICE = 2,
+	UNMAPPED_SLICE = 3,
+	EXTERNAL = 4,
+	CORE = 5
+}
+
+enum cram_fields
+{
+	CRAM_BF = 1,
+	CRAM_AP = 2,
+	CRAM_FP = 4,
+	CRAM_RL = 8,
+	CRAM_DL = 16,
+	CRAM_NF = 32,
+	CRAM_BA = 64,
+	CRAM_QS = 128,
+	CRAM_FC = 256,
+	CRAM_FN = 512,
+	CRAM_BS = 1024,
+	CRAM_IN = 2048,
+	CRAM_RG = 4096,
+	CRAM_MQ = 8192,
+	CRAM_TL = 16384,
+	CRAM_RN = 32768,
+	CRAM_NS = 65536,
+	CRAM_NP = 131072,
+	CRAM_TS = 262144,
+	CRAM_MF = 524288,
+	CRAM_CF = 1048576,
+	CRAM_RI = 2097152,
+	CRAM_RS = 4194304,
+	CRAM_PD = 8388608,
+	CRAM_HC = 16777216,
+	CRAM_SC = 33554432,
+	CRAM_BB = 67108864,
+	CRAM_BB_len = 134217728,
+	CRAM_QQ = 268435456,
+	CRAM_QQ_len = 536870912,
+	CRAM_aux = 1073741824,
+	CRAM_ALL = 2147483647
+}
+
+struct __kstring_t
+{
+	size_t l;
+	size_t m;
+	char* s;
+}
+
+struct htsFormat
+{
+	enum htsFormatCategory
+	{
+		unknown_category = 0,
+		sequence_data = 1,
+		variant_data = 2,
+		index_file = 3,
+		region_list = 4,
+		category_maximum = 32767
+	}
+	htsFormatCategory category;
+	enum htsExactFormat
+	{
+		unknown_format = 0,
+		binary_format = 1,
+		text_format = 2,
+		sam = 3,
+		bam = 4,
+		bai = 5,
+		cram = 6,
+		crai = 7,
+		vcf = 8,
+		bcf = 9,
+		csi = 10,
+		gzi = 11,
+		tbi = 12,
+		bed = 13,
+		format_maximum = 32767
+	}
+	htsExactFormat format;
+	struct
+	{
+		short major;
+		short minor;
+	}
+	enum htsCompression
+	{
+		no_compression = 0,
+		gzip = 1,
+		bgzf = 2,
+		custom = 3,
+		compression_maximum = 32767
+	}
+	htsCompression compression;
+	short compression_level;
+	void* specific;
+}
+
+struct _Anonymous_0
+{
+	uint is_bin;
+	uint is_write;
+	uint is_be;
+	uint is_cram;
+	uint dummy;
+	long lineno;
+	kstring_t line;
+	char* fn;
+	char* fn_aux;
+	union
+	{
+		BGZF* bgzf;
+		cram_fd* cram;
+		hFILE* hfile;
+		void* voidp;
+	}
+	htsFormat format;
+}
+
+struct _Anonymous_1
+{
+	ulong u;
+	ulong v;
+}
+
+struct _Anonymous_2
+{
+	uint read_rest;
+	uint finished;
+	uint dummy;
+	int tid;
+	int beg;
+	int end;
+	int n_off;
+	int i;
+	int curr_tid;
+	int curr_beg;
+	int curr_end;
+	ulong curr_off;
+	hts_pair64_t* off;
+	int function (BGZF*, void*, void*, int*, int*, int*) readrec;
+	struct
+	{
+		int n;
+		int m;
+		int* a;
+	}
+}
+
+struct _Anonymous_3
+{
+	int n_targets;
+	int ignore_sam_err;
+	uint l_text;
+	uint* target_len;
+	byte* cigar_tab;
+	char** target_name;
+	char* text;
+	void* sdict;
+}
+
+struct _Anonymous_4
+{
+	int tid;
+	int pos;
+	ushort bin;
+	ubyte qual;
+	ubyte l_qname;
+	ushort flag;
+	ushort n_cigar;
+	int l_qseq;
+	int mtid;
+	int mpos;
+	int isize;
+}
+
+struct _Anonymous_5
+{
+	bam1_core_t core;
+	int l_data;
+	int m_data;
+	ubyte* data;
+	ulong id;
+}
+
+struct _Anonymous_6
+{
+	bam1_t* b;
+	int qpos;
+	int indel;
+	int level;
+	uint is_del;
+	uint is_head;
+	uint is_tail;
+	uint is_refskip;
+	uint aux;
+}
+
+struct _Anonymous_7
+{
+	char* str;
+	size_t used;
+}
+
+struct _Anonymous_8
+{
+	size_t max_length;
+	size_t nstrings;
+	string_t* strings;
+}
+
+struct _Anonymous_9
+{
+	void* pool;
+	size_t used;
+}
+
+struct _Anonymous_10
+{
+	size_t dsize;
+	size_t npools;
+	pool_t* pools;
+	void* free;
+}
+
+struct _Anonymous_11
+{
+	ulong[4] tab;
+	int sep;
+	int finished;
+	const(char)* p;
+}
+
+struct SAM_hdr_tag_s
+{
+	SAM_hdr_tag_s* next;
+	char* str;
+	int len;
+}
+
+struct SAM_hdr_item_s
+{
+	SAM_hdr_item_s* next;
+	SAM_hdr_item_s* prev;
+	SAM_hdr_tag* tag;
+	int order;
+}
+
+struct _Anonymous_12
+{
+	char* name;
+	uint len;
+	SAM_hdr_type* ty;
+	SAM_hdr_tag* tag;
+}
+
+struct _Anonymous_13
+{
+	char* name;
+	SAM_hdr_type* ty;
+	SAM_hdr_tag* tag;
+	int name_len;
+	int id;
+}
+
+struct _Anonymous_14
+{
+	char* name;
+	SAM_hdr_type* ty;
+	SAM_hdr_tag* tag;
+	int name_len;
+	int id;
+	int prev_id;
+}
+
+struct kh_sam_hdr_s
+{
+	khint_t n_buckets;
+	khint_t size;
+	khint_t n_occupied;
+	khint_t upper_bound;
+	khint32_t* flags;
+	khint32_t* keys;
+	SAM_hdr_type** vals;
+}
+
+struct kh_m_s2i_s
+{
+	khint_t n_buckets;
+	khint_t size;
+	khint_t n_occupied;
+	khint_t upper_bound;
+	khint32_t* flags;
+	kh_cstr_t* keys;
+	int* vals;
+}
+
+struct _Anonymous_15
+{
+	kstring_t text;
+	kh_sam_hdr_t* h;
+	string_alloc_t* str_pool;
+	pool_alloc_t* type_pool;
+	pool_alloc_t* tag_pool;
+	int nref;
+	SAM_SQ* ref_;
+	kh_m_s2i_t* ref_hash;
+	int nrg;
+	SAM_RG* rg;
+	kh_m_s2i_t* rg_hash;
+	int npg;
+	int npg_end;
+	int npg_end_alloc;
+	SAM_PG* pg;
+	kh_m_s2i_t* pg_hash;
+	int* pg_end;
+  sam_sort_order sort_order;
+	char[1024] ID_buf;
+	int ID_cnt;
+	int ref_count;
+}
+
+struct t_pool_job
+{
+	void* function (void*) func;
+	void* arg;
+	t_pool_job* next;
+	t_pool* p;
+	t_results_queue* q;
+	int serial;
+}
+
+struct t_res
+{
+	t_res* next;
+	int serial;
+	void* data;
+}
+
+struct _Anonymous_16
+{
+	t_pool* p;
+	int idx;
+	pthread_t tid;
+	pthread_cond_t pending_c;
+	long wait_time;
+}
+
+struct t_pool
+{
+	int qsize;
+	int njobs;
+	int nwaiting;
+	int shutdown;
+	t_pool_job* head;
+	t_pool_job* tail;
+	int tsize;
+	t_pool_worker_t* t;
+	pthread_mutex_t pool_m;
+	pthread_cond_t empty_c;
+	pthread_cond_t pending_c;
+	pthread_cond_t full_c;
+	int* t_stack;
+	int t_stack_top;
+	long total_time;
+	long wait_time;
+}
+
+struct t_results_queue
+{
+	t_pool_result* result_head;
+	t_pool_result* result_tail;
+	int next_serial;
+	int curr_serial;
+	int queue_len;
+	int pending;
+	pthread_mutex_t result_m;
+	pthread_cond_t result_avail_c;
+}
+
+struct _Anonymous_17
+{
+	FILE* fp;
+	char* data;
+	size_t alloced;
+	int eof;
+	int mode;
+	size_t size;
+	size_t offset;
+	size_t flush_pos;
+}
+
+struct kh_m_i2i_s
+{
+	khint_t n_buckets;
+	khint_t size;
+	khint_t n_occupied;
+	khint_t upper_bound;
+	khint32_t* flags;
+	khint32_t* keys;
+	int* vals;
+}
+
+struct kh_s_i2i_s
+{
+	khint_t n_buckets;
+	khint_t size;
+	khint_t n_occupied;
+	khint_t upper_bound;
+	khint32_t* flags;
+	khint32_t* keys;
+	char* vals;
+}
+
+struct kh_map_s
+{
+	khint_t n_buckets;
+	khint_t size;
+	khint_t n_occupied;
+	khint_t upper_bound;
+	khint32_t* flags;
+	kh_cstr_t* keys;
+	pmap_t* vals;
+}
+
+struct _Anonymous_19
+{
+	int[1024] freqs;
+	kh_m_i2i_t* h;
+	int nsamp;
+	int nvals;
+}
+
+struct _Anonymous_20
+{
+	char[4] magic;
+	ubyte major_version;
+	ubyte minor_version;
+	char[20] file_id;
+}
+
+struct _Anonymous_21
+{
+	int trial;
+	int next_trial;
+	int sz_gz_rle;
+	int sz_gz_def;
+	int sz_rans0;
+	int sz_rans1;
+	int sz_bzip2;
+	int sz_lzma;
+	int method;
+	int strat;
+	int gz_rle_cnt;
+	int gz_def_cnt;
+	int rans0_cnt;
+	int rans1_cnt;
+	int bzip2_cnt;
+	int lzma_cnt;
+	int revised_method;
+	double gz_rle_extra;
+	double gz_def_extra;
+	double rans0_extra;
+	double rans1_extra;
+	double bzip2_extra;
+	double lzma_extra;
+}
+
+struct _Anonymous_22
+{
+	enum cram_block_method
+	{
+		ERROR = -1,
+		RAW = 0,
+		GZIP = 1,
+		BZIP2 = 2,
+		LZMA = 3,
+		RANS = 4,
+		RANS0 = 4,
+		RANS1 = 10,
+		GZIP_RLE = 11
+	}
+	cram_block_method method;
+  cram_block_method orig_method;
+	enum cram_content_type
+	{
+		CT_ERROR = -1,
+		FILE_HEADER = 0,
+		COMPRESSION_HEADER = 1,
+		MAPPED_SLICE = 2,
+		UNMAPPED_SLICE = 3,
+		EXTERNAL = 4,
+		CORE = 5
+	}
+	cram_content_type content_type;
+	int content_id;
+	int comp_size;
+	int uncomp_size;
+	uint crc32;
+	int idx;
+	ubyte* data;
+	size_t alloc;
+	size_t byte_;
+	int bit;
+}
+
+struct _Anonymous_23
+{
+	int ref_seq_id;
+	int ref_seq_start;
+	int ref_seq_span;
+	int num_records;
+	int num_landmarks;
+	int* landmark;
+	int mapped_qs_included;
+	int unmapped_qs_included;
+	int unmapped_placed;
+	int qs_included;
+	int read_names_included;
+	int AP_delta;
+	char[4][5] substitution_matrix;
+	cram_block* TD_blk;
+	int nTL;
+	ubyte** TL;
+	kh_m_s2i_t* TD_hash;
+	string_alloc_t* TD_keys;
+	kh_map_t* preservation_map;
+	cram_map*[32] rec_encoding_map;
+	cram_map*[32] tag_encoding_map;
+	cram_codec*[47] codecs;
+	char* uncomp;
+	size_t uncomp_size;
+	size_t uncomp_alloc;
+	uint data_series;
+}
+
+struct cram_map
+{
+	int key;
+	enum cram_encoding
+	{
+		E_NULL = 0,
+		E_EXTERNAL = 1,
+		E_GOLOMB = 2,
+		E_HUFFMAN = 3,
+		E_BYTE_ARRAY_LEN = 4,
+		E_BYTE_ARRAY_STOP = 5,
+		E_BETA = 6,
+		E_SUBEXP = 7,
+		E_GOLOMB_RICE = 8,
+		E_GAMMA = 9
+	}
+	cram_encoding encoding;
+	int offset;
+	int size;
+	cram_codec* codec;
+	cram_map* next;
+}
+
+struct _Anonymous_24
+{
+	enum cram_content_type
+	{
+		CT_ERROR = -1,
+		FILE_HEADER = 0,
+		COMPRESSION_HEADER = 1,
+		MAPPED_SLICE = 2,
+		UNMAPPED_SLICE = 3,
+		EXTERNAL = 4,
+		CORE = 5
+	}
+	cram_content_type content_type;
+	int ref_seq_id;
+	int ref_seq_start;
+	int ref_seq_span;
+	int num_records;
+	long record_counter;
+	int num_blocks;
+	int num_content_ids;
+	int* block_content_ids;
+	int ref_base_id;
+	ubyte[16] md5;
+}
+
+struct _Anonymous_25
+{
+	int length;
+	int ref_seq_id;
+	int ref_seq_start;
+	int ref_seq_span;
+	long record_counter;
+	long num_bases;
+	int num_records;
+	int num_blocks;
+	int num_landmarks;
+	int* landmark;
+	size_t offset;
+	cram_block_compression_hdr* comp_hdr;
+	cram_block* comp_hdr_block;
+	int max_slice;
+	int curr_slice;
+	int max_rec;
+	int curr_rec;
+	int max_c_rec;
+	int curr_c_rec;
+	int slice_rec;
+	int curr_ref;
+	int last_pos;
+	cram_slice** slices;
+	cram_slice* slice;
+	int pos_sorted;
+	int max_apos;
+	int last_slice;
+	int multi_seq;
+	int unsorted;
+	int ref_start;
+	int first_base;
+	int last_base;
+	int ref_id;
+	int ref_end;
+	char* ref_;
+	bam_seq_t** bams;
+	cram_stats*[47] stats;
+	kh_s_i2i_t* tags_used;
+	int* refs_used;
+	uint crc32;
+}
+
+struct _Anonymous_26
+{
+	cram_slice* s;
+	int ref_id;
+	int flags;
+	int cram_flags;
+	int len;
+	int apos;
+	int rg;
+	int name;
+	int name_len;
+	int mate_line;
+	int mate_ref_id;
+	int mate_pos;
+	int tlen;
+	int ntags;
+	int aux;
+	int aux_size;
+	int TN_idx;
+	int TL;
+	int seq;
+	int qual;
+	int cigar;
+	int ncigar;
+	int aend;
+	int mqual;
+	int feature;
+	int nfeature;
+	int mate_flags;
+}
+
+struct _Anonymous_27
+{
+}
+
+struct cram_slice
+{
+	cram_block_slice_hdr* hdr;
+	cram_block* hdr_block;
+	cram_block** block;
+	cram_block** block_by_id;
+	int last_apos;
+	int max_apos;
+	cram_record* crecs;
+	uint* cigar;
+	uint cigar_alloc;
+	uint ncigar;
+	cram_feature* features;
+	int nfeatures;
+	int afeatures;
+	uint* TN;
+	int nTN;
+	int aTN;
+	cram_block* name_blk;
+	cram_block* seqs_blk;
+	cram_block* qual_blk;
+	cram_block* base_blk;
+	cram_block* soft_blk;
+	cram_block* aux_blk;
+	cram_block* aux_OQ_blk;
+	cram_block* aux_BQ_blk;
+	cram_block* aux_BD_blk;
+	cram_block* aux_BI_blk;
+	cram_block* aux_FZ_blk;
+	cram_block* aux_oq_blk;
+	cram_block* aux_os_blk;
+	cram_block* aux_oz_blk;
+	string_alloc_t* pair_keys;
+	kh_m_s2i_t*[2] pair;
+	char* ref_;
+	int ref_start;
+	int ref_end;
+	int ref_id;
+}
+
+struct ref_entry
+{
+	char* name;
+	char* fn;
+	long length;
+	long offset;
+	int bases_per_line;
+	int line_length;
+	long count;
+	char* seq;
+	mFILE* mf;
+}
+
+struct kh_refs_s
+{
+	khint_t n_buckets;
+	khint_t size;
+	khint_t n_occupied;
+	khint_t upper_bound;
+	khint32_t* flags;
+	kh_cstr_t* keys;
+	ref_entry** vals;
+}
+
+alias kh_refs_s kh_refs_t;
+
+struct _Anonymous_28
+{
+	string_alloc_t* pool;
+	kh_refs_t* h_meta;
+	ref_entry** ref_id;
+	int nref;
+	char* fn;
+	BGZF* fp;
+	int count;
+	pthread_mutex_t lock;
+	ref_entry* last;
+	int last_id;
+}
+
+struct cram_index
+{
+	int nslice;
+	int nalloc;
+	cram_index* e;
+	int refid;
+	int start;
+	int end;
+	int nseq;
+	int slice;
+	int len;
+	long offset;
+}
+
+struct _Anonymous_29
+{
+	int refid;
+	int start;
+	int end;
+}
+
+struct spare_bams
+{
+	bam_seq_t** bams;
+	spare_bams* next;
+}
+
+struct cram_fd
+{
+	hFILE* fp;
+	int mode;
+	int version_;
+	cram_file_def* file_def;
+	SAM_hdr* header;
+	char* prefix;
+	long record_counter;
+	int err;
+	cram_container* ctr;
+	int first_base;
+	int last_base;
+	refs_t* refs;
+	char* ref_;
+	char* ref_free;
+	int ref_id;
+	int ref_start;
+	int ref_end;
+	char* ref_fn;
+	int level;
+	cram_metrics*[47] m;
+	int decode_md;
+	int verbose;
+	int seqs_per_slice;
+	int slices_per_container;
+	int embed_ref;
+	int no_ref;
+	int ignore_md5;
+	int use_bz2;
+	int use_rans;
+	int use_lzma;
+	int shared_ref;
+	uint required_fields;
+	cram_range range;
+	uint[4096] bam_flag_swap;
+	uint[4096] cram_flag_swap;
+	ubyte[256] L1;
+	ubyte[256] L2;
+	char[32][32] cram_sub_matrix;
+	int index_sz;
+	cram_index* index;
+	off_t first_container;
+	int eof;
+	int last_slice;
+	int multi_seq;
+	int unsorted;
+	int empty_container;
+	int own_pool;
+	t_pool* pool;
+	t_results_queue* rqueue;
+	pthread_mutex_t metrics_lock;
+	pthread_mutex_t ref_lock;
+	spare_bams* bl;
+	pthread_mutex_t bam_list_lock;
+	void* job_pending;
+	int ooc;
+}
+
+struct _Anonymous_30
+{
+	int symbol;
+	int p;
+	int code;
+	int len;
+}
+
+struct _Anonymous_31
+{
+	int ncodes;
+	cram_huffman_code* codes;
+}
+
+struct _Anonymous_32
+{
+	cram_huffman_code* codes;
+	int nvals;
+	int[129] val2code;
+}
+
+struct _Anonymous_33
+{
+	int offset;
+	int nbits;
+}
+
+struct _Anonymous_34
+{
+	int offset;
+}
+
+struct _Anonymous_35
+{
+	int offset;
+	int k;
+}
+
+struct _Anonymous_36
+{
+	int content_id;
+	enum cram_external_type
+	{
+		E_INT = 1,
+		E_LONG = 2,
+		E_BYTE = 3,
+		E_BYTE_ARRAY = 4,
+		E_BYTE_ARRAY_BLOCK = 5
+	}
+	cram_external_type type;
+}
+
+struct _Anonymous_37
+{
+	cram_codec* len_codec;
+	cram_codec* value_codec;
+}
+
+struct _Anonymous_38
+{
+	ubyte stop;
+	int content_id;
+}
+
+struct _Anonymous_39
+{
+	enum cram_encoding
+	{
+		E_NULL = 0,
+		E_EXTERNAL = 1,
+		E_GOLOMB = 2,
+		E_HUFFMAN = 3,
+		E_BYTE_ARRAY_LEN = 4,
+		E_BYTE_ARRAY_STOP = 5,
+		E_BETA = 6,
+		E_SUBEXP = 7,
+		E_GOLOMB_RICE = 8,
+		E_GAMMA = 9
+	}
+	cram_encoding len_encoding;
+  cram_encoding val_encoding;
+	void* len_dat;
+	void* val_dat;
+	cram_codec* len_codec;
+	cram_codec* val_codec;
+}
+
+struct cram_codec
+{
+	enum cram_encoding
+	{
+		E_NULL = 0,
+		E_EXTERNAL = 1,
+		E_GOLOMB = 2,
+		E_HUFFMAN = 3,
+		E_BYTE_ARRAY_LEN = 4,
+		E_BYTE_ARRAY_STOP = 5,
+		E_BETA = 6,
+		E_SUBEXP = 7,
+		E_GOLOMB_RICE = 8,
+		E_GAMMA = 9
+	}
+	cram_encoding codec;
+	cram_block* out_;
+	void function (cram_codec*) free;
+	int function (cram_slice*, cram_codec*, cram_block*, char*, int*) decode;
+	int function (cram_slice*, cram_codec*, char*, int) encode;
+	int function (cram_codec*, cram_block*, char*, int) store;
+}
+
+struct hFILE;
+
+
+struct __bam_plp_t;
+
+
+struct BGZF;
+
+
+struct __bam_mplp_t;
+
+
+struct __hts_idx_t;
+
+
+struct hts_md5_context;
+
+
+union _Anonymous_18
+{
+	int i;
+	char* p;
+}
+
+const(char)* hts_version ();
+int hts_detect_format (hFILE* fp, htsFormat* fmt);
+const(char)* hts_format_description (const(htsFormat)* format);
+htsFile* hts_open (const(char)* fn, const(char)* mode);
+htsFile* hts_hopen (hFILE* fp, const(char)* fn, const(char)* mode);
+int hts_close (htsFile* fp);
+const(htsFormat)* hts_get_format (htsFile* fp);
+int hts_set_opt (htsFile* fp, cram_option opt, ...);
+int hts_getline (htsFile* fp, int delimiter, kstring_t* str);
+char** hts_readlines (const(char)* fn, int* _n);
+char** hts_readlist (const(char)* fn, int is_file, int* _n);
+int hts_set_threads (htsFile* fp, int n);
+int hts_set_fai_filename (htsFile* fp, const(char)* fn_aux);
+hts_idx_t* hts_idx_init (int n, int fmt, ulong offset0, int min_shift, int n_lvls);
+void hts_idx_destroy (hts_idx_t* idx);
+int hts_idx_push (hts_idx_t* idx, int tid, int beg, int end, ulong offset, int is_mapped);
+void hts_idx_finish (hts_idx_t* idx, ulong final_offset);
+void hts_idx_save (const(hts_idx_t)* idx, const(char)* fn, int fmt);
+hts_idx_t* hts_idx_load (const(char)* fn, int fmt);
+ubyte* hts_idx_get_meta (hts_idx_t* idx, int* l_meta);
+void hts_idx_set_meta (hts_idx_t* idx, int l_meta, ubyte* meta, int is_copy);
+int hts_idx_get_stat (const(hts_idx_t)* idx, int tid, ulong* mapped, ulong* unmapped);
+ulong hts_idx_get_n_no_coor (const(hts_idx_t)* idx);
+long hts_parse_decimal (const(char)* str, char** end);
+const(char)* hts_parse_reg (const(char)* str, int* beg, int* end);
+hts_itr_t* hts_itr_query (const(hts_idx_t)* idx, int tid, int beg, int end, int function (BGZF*, void*, void*, int*, int*, int*) readrec);
+void hts_itr_destroy (hts_itr_t* iter);
+hts_itr_t* hts_itr_querys (const(hts_idx_t)* idx, const(char)* reg, hts_name2id_f getid, void* hdr, hts_itr_t* function (const(hts_idx_t)*, int, int, int, int function (BGZF*, void*, void*, int*, int*, int*)) itr_query, int function (BGZF*, void*, void*, int*, int*, int*) readrec);
+int hts_itr_next (BGZF* fp, hts_itr_t* iter, void* r, void* data);
+const(char*)* hts_idx_seqnames (const(hts_idx_t)* idx, int* n, hts_id2name_f getid, void* hdr);
+int hts_file_type (const(char)* fname);
+hts_md5_context* hts_md5_init ();
+void hts_md5_update (hts_md5_context* ctx, const(void)* data, c_ulong size);
+void hts_md5_final (ubyte* digest, hts_md5_context* ctx);
+void hts_md5_reset (hts_md5_context* ctx);
+void hts_md5_hex (char* hex, const(ubyte)* digest);
+void hts_md5_destroy (hts_md5_context* ctx);
+int hts_reg2bin (long beg, long end, int min_shift, int n_lvls);
+int hts_bin_bot (int bin, int n_lvls);
+int ed_is_big ();
+ushort ed_swap_2 (ushort v);
+void* ed_swap_2p (void* x);
+uint ed_swap_4 (uint v);
+void* ed_swap_4p (void* x);
+ulong ed_swap_8 (ulong v);
+void* ed_swap_8p (void* x);
+bam_hdr_t* bam_hdr_init ();
+bam_hdr_t* bam_hdr_read (BGZF* fp);
+int bam_hdr_write (BGZF* fp, const(bam_hdr_t)* h);
+void bam_hdr_destroy (bam_hdr_t* h);
+int bam_name2id (bam_hdr_t* h, const(char)* ref_);
+bam_hdr_t* bam_hdr_dup (const(bam_hdr_t)* h0);
+bam1_t* bam_init1 ();
+void bam_destroy1 (bam1_t* b);
+int bam_read1 (BGZF* fp, bam1_t* b);
+int bam_write1 (BGZF* fp, const(bam1_t)* b);
+bam1_t* bam_copy1 (bam1_t* bdst, const(bam1_t)* bsrc);
+bam1_t* bam_dup1 (const(bam1_t)* bsrc);
+int bam_cigar2qlen (int n_cigar, const(uint)* cigar);
+int bam_cigar2rlen (int n_cigar, const(uint)* cigar);
+int bam_endpos (const(bam1_t)* b);
+int bam_str2flag (const(char)* str);
+char* bam_flag2str (int flag);
+int bam_index_build (const(char)* fn, int min_shift);
+hts_idx_t* sam_index_load (htsFile* fp, const(char)* fn);
+hts_itr_t* sam_itr_queryi (const(hts_idx_t)* idx, int tid, int beg, int end);
+hts_itr_t* sam_itr_querys (const(hts_idx_t)* idx, bam_hdr_t* hdr, const(char)* region);
+int sam_open_mode (char* mode, const(char)* fn, const(char)* format);
+bam_hdr_t* sam_hdr_parse (int l_text, const(char)* text);
+bam_hdr_t* sam_hdr_read (samFile* fp);
+int sam_hdr_write (samFile* fp, const(bam_hdr_t)* h);
+int sam_parse1 (kstring_t* s, bam_hdr_t* h, bam1_t* b);
+int sam_format1 (const(bam_hdr_t)* h, const(bam1_t)* b, kstring_t* str);
+int sam_read1 (samFile* fp, bam_hdr_t* h, bam1_t* b);
+int sam_write1 (samFile* fp, const(bam_hdr_t)* h, const(bam1_t)* b);
+ubyte* bam_aux_get (const(bam1_t)* b, const char[2] tag);
+int bam_aux2i (const(ubyte)* s);
+double bam_aux2f (const(ubyte)* s);
+char bam_aux2A (const(ubyte)* s);
+char* bam_aux2Z (const(ubyte)* s);
+void bam_aux_append (bam1_t* b, const char[2] tag, char type, int len, ubyte* data);
+int bam_aux_del (bam1_t* b, ubyte* s);
+bam_plp_t bam_plp_init (bam_plp_auto_f func, void* data);
+void bam_plp_destroy (bam_plp_t iter);
+int bam_plp_push (bam_plp_t iter, const(bam1_t)* b);
+const(bam_pileup1_t)* bam_plp_next (bam_plp_t iter, int* _tid, int* _pos, int* _n_plp);
+const(bam_pileup1_t)* bam_plp_auto (bam_plp_t iter, int* _tid, int* _pos, int* _n_plp);
+void bam_plp_set_maxcnt (bam_plp_t iter, int maxcnt);
+void bam_plp_reset (bam_plp_t iter);
+bam_mplp_t bam_mplp_init (int n, bam_plp_auto_f func, void** data);
+void bam_mplp_init_overlaps (bam_mplp_t iter);
+void bam_mplp_destroy (bam_mplp_t iter);
+void bam_mplp_set_maxcnt (bam_mplp_t iter, int maxcnt);
+int bam_mplp_auto (bam_mplp_t iter, int* _tid, int* _pos, int* n_plp, const(bam_pileup1_t*)* plp);
+string_alloc_t* string_pool_create (size_t max_length);
+void string_pool_destroy (string_alloc_t* a_str);
+char* string_alloc (string_alloc_t* a_str, size_t length);
+char* string_dup (string_alloc_t* a_str, char* instr);
+char* string_ndup (string_alloc_t* a_str, char* instr, size_t len);
+pool_alloc_t* pool_create (size_t dsize);
+void pool_destroy (pool_alloc_t* p);
+void* pool_alloc (pool_alloc_t* p);
+void pool_free (pool_alloc_t* p, void* ptr);
+khint_t __ac_X31_hash_string (const(char)* s);
+khint_t __ac_Wang_hash (khint_t key);
+int kvsprintf (kstring_t* s, const(char)* fmt, va_list ap);
+int ksprintf (kstring_t* s, const(char)* fmt, ...);
+int ksplit_core (char* s, int delimiter, int* _max, int** _offsets);
+char* kstrstr (const(char)* str, const(char)* pat, int** _prep);
+char* kstrnstr (const(char)* str, const(char)* pat, int n, int** _prep);
+void* kmemmem (const(void)* _str, int n, const(void)* _pat, int m, int** _prep);
+char* kstrtok (const(char)* str, const(char)* sep, ks_tokaux_t* aux);
+int ks_resize (kstring_t* s, size_t size);
+char* ks_str (kstring_t* s);
+size_t ks_len (kstring_t* s);
+char* ks_release (kstring_t* s);
+int kputsn (const(char)* p, int l, kstring_t* s);
+int kputs (const(char)* p, kstring_t* s);
+int kputc (int c, kstring_t* s);
+int kputc_ (int c, kstring_t* s);
+int kputsn_ (const(void)* p, int l, kstring_t* s);
+int kputw (int c, kstring_t* s);
+int kputuw (uint c, kstring_t* s);
+int kputl (c_long c, kstring_t* s);
+int* ksplit (kstring_t* s, int delimiter, int* n);
+kh_sam_hdr_t* kh_init_sam_hdr ();
+void kh_destroy_sam_hdr (kh_sam_hdr_t* h);
+void kh_clear_sam_hdr (kh_sam_hdr_t* h);
+khint_t kh_get_sam_hdr (const(kh_sam_hdr_t)* h, khint32_t key);
+int kh_resize_sam_hdr (kh_sam_hdr_t* h, khint_t new_n_buckets);
+khint_t kh_put_sam_hdr (kh_sam_hdr_t* h, khint32_t key, int* ret);
+void kh_del_sam_hdr (kh_sam_hdr_t* h, khint_t x);
+kh_m_s2i_t* kh_init_m_s2i ();
+void kh_destroy_m_s2i (kh_m_s2i_t* h);
+void kh_clear_m_s2i (kh_m_s2i_t* h);
+khint_t kh_get_m_s2i (const(kh_m_s2i_t)* h, kh_cstr_t key);
+int kh_resize_m_s2i (kh_m_s2i_t* h, khint_t new_n_buckets);
+khint_t kh_put_m_s2i (kh_m_s2i_t* h, kh_cstr_t key, int* ret);
+void kh_del_m_s2i (kh_m_s2i_t* h, khint_t x);
+SAM_hdr* sam_hdr_new ();
+SAM_hdr* sam_hdr_parse_ (const(char)* hdr, int len);
+SAM_hdr* sam_hdr_dup (SAM_hdr* hdr);
+void sam_hdr_incr_ref (SAM_hdr* hdr);
+void sam_hdr_decr_ref (SAM_hdr* hdr);
+void sam_hdr_free (SAM_hdr* hdr);
+int sam_hdr_length (SAM_hdr* hdr);
+char* sam_hdr_str (SAM_hdr* hdr);
+int sam_hdr_add_lines (SAM_hdr* sh, const(char)* lines, int len);
+int sam_hdr_add (SAM_hdr* sh, const(char)* type, ...);
+int sam_hdr_vadd (SAM_hdr* sh, const(char)* type, va_list ap, ...);
+SAM_hdr_type* sam_hdr_find (SAM_hdr* hdr, char* type, char* ID_key, char* ID_value);
+char* sam_hdr_find_line (SAM_hdr* hdr, char* type, char* ID_key, char* ID_value);
+SAM_hdr_tag* sam_hdr_find_key (SAM_hdr* sh, SAM_hdr_type* type, char* key, SAM_hdr_tag** prev);
+int sam_hdr_update (SAM_hdr* hdr, SAM_hdr_type* type, ...);
+sam_sort_order sam_hdr_sort_order (SAM_hdr* hdr);
+int sam_hdr_rebuild (SAM_hdr* hdr);
+int sam_hdr_name2ref (SAM_hdr* hdr, const(char)* ref_);
+SAM_RG* sam_hdr_find_rg (SAM_hdr* hdr, const(char)* rg);
+int sam_hdr_link_pg (SAM_hdr* hdr);
+int sam_hdr_add_PG (SAM_hdr* sh, const(char)* name, ...);
+bam_hdr_t* cram_header_to_bam (SAM_hdr* h);
+SAM_hdr* bam_header_to_cram (bam_hdr_t* h);
+int bam_construct_seq (bam_seq_t** bp, size_t extra_len, const(char)* qname, size_t qname_len, int flag, int rname, int pos, int end, int mapq, uint ncigar, const(uint)* cigar, int mrnm, int mpos, int isize, int len, const(char)* seq, const(char)* qual);
+t_pool* t_pool_init (int qsize, int tsize);
+int t_pool_dispatch (t_pool* p, t_results_queue* q, void* function (void*) func, void* arg);
+int t_pool_dispatch2 (t_pool* p, t_results_queue* q, void* function (void*) func, void* arg, int nonblock);
+int t_pool_flush (t_pool* p);
+void t_pool_destroy (t_pool* p, int kill);
+t_pool_result* t_pool_next_result (t_results_queue* q);
+t_pool_result* t_pool_next_result_wait (t_results_queue* q);
+void t_pool_delete_result (t_pool_result* r, int free_data);
+t_results_queue* t_results_queue_init ();
+void t_results_queue_destroy (t_results_queue* q);
+int t_pool_results_queue_empty (t_results_queue* q);
+int t_pool_results_queue_len (t_results_queue* q);
+int t_pool_results_queue_sz (t_results_queue* q);
+mFILE* mfreopen (const(char)* path, const(char)* mode, FILE* fp);
+mFILE* mfopen (const(char)* path, const(char)* mode);
+int mfdetach (mFILE* mf);
+int mfclose (mFILE* mf);
+int mfdestroy (mFILE* mf);
+int mfseek (mFILE* mf, c_long offset, int whence);
+c_long mftell (mFILE* mf);
+void mrewind (mFILE* mf);
+void mftruncate (mFILE* mf, c_long offset);
+int mfeof (mFILE* mf);
+size_t mfread (void* ptr, size_t size, size_t nmemb, mFILE* mf);
+size_t mfwrite (void* ptr, size_t size, size_t nmemb, mFILE* mf);
+int mfgetc (mFILE* mf);
+int mungetc (int c, mFILE* mf);
+mFILE* mfcreate (char* data, int size);
+mFILE* mfcreate_from (const(char)* path, const(char)* mode_str, FILE* fp);
+void mfrecreate (mFILE* mf, char* data, int size);
+void* mfsteal (mFILE* mf, size_t* size_out);
+char* mfgets (char* s, int size, mFILE* mf);
+int mfflush (mFILE* mf);
+int mfprintf (mFILE* mf, char* fmt, ...);
+mFILE* mstdin ();
+mFILE* mstdout ();
+mFILE* mstderr ();
+void mfascii (mFILE* mf);
+kh_m_i2i_t* kh_init_m_i2i ();
+void kh_destroy_m_i2i (kh_m_i2i_t* h);
+void kh_clear_m_i2i (kh_m_i2i_t* h);
+khint_t kh_get_m_i2i (const(kh_m_i2i_t)* h, khint32_t key);
+int kh_resize_m_i2i (kh_m_i2i_t* h, khint_t new_n_buckets);
+khint_t kh_put_m_i2i (kh_m_i2i_t* h, khint32_t key, int* ret);
+void kh_del_m_i2i (kh_m_i2i_t* h, khint_t x);
+kh_s_i2i_t* kh_init_s_i2i ();
+void kh_destroy_s_i2i (kh_s_i2i_t* h);
+void kh_clear_s_i2i (kh_s_i2i_t* h);
+khint_t kh_get_s_i2i (const(kh_s_i2i_t)* h, khint32_t key);
+int kh_resize_s_i2i (kh_s_i2i_t* h, khint_t new_n_buckets);
+khint_t kh_put_s_i2i (kh_s_i2i_t* h, khint32_t key, int* ret);
+void kh_del_s_i2i (kh_s_i2i_t* h, khint_t x);
+kh_map_t* kh_init_map ();
+void kh_destroy_map (kh_map_t* h);
+void kh_clear_map (kh_map_t* h);
+khint_t kh_get_map (const(kh_map_t)* h, kh_cstr_t key);
+int kh_resize_map (kh_map_t* h, khint_t new_n_buckets);
+khint_t kh_put_map (kh_map_t* h, kh_cstr_t key, int* ret);
+void kh_del_map (kh_map_t* h, khint_t x);
+kh_refs_t* kh_init_refs ();
+void kh_destroy_refs (kh_refs_t* h);
+void kh_clear_refs (kh_refs_t* h);
+khint_t kh_get_refs (const(kh_refs_t)* h, kh_cstr_t key);
+int kh_resize_refs (kh_refs_t* h, khint_t new_n_buckets);
+khint_t kh_put_refs (kh_refs_t* h, kh_cstr_t key, int* ret);
+void kh_del_refs (kh_refs_t* h, khint_t x);
+int is_directory (char* fn);
+int is_file (char* fn);
+int file_size (char* fn);
+int itf8_decode (cram_fd* fd, int* val);
+int ltf8_get (char* cp, long* val_p);
+int ltf8_put (char* cp, long val);
+int itf8_put_blk (cram_block* blk, int val);
+cram_block* cram_new_block (cram_content_type content_type, int content_id);
+cram_block* cram_read_block (cram_fd* fd);
+int cram_write_block (cram_fd* fd, cram_block* b);
+void cram_free_block (cram_block* b);
+char* zlib_mem_inflate (char* cdata, size_t csize, size_t* size);
+int cram_uncompress_block (cram_block* b);
+int cram_compress_block (cram_fd* fd, cram_block* b, cram_metrics* metrics, int method, int level);
+cram_metrics* cram_new_metrics ();
+char* cram_block_method2str (cram_block_method m);
+char* cram_content_type2str (cram_content_type t);
+ubyte* append_uint32 (ubyte* cp, uint i);
+ubyte* append_sub32 (ubyte* cp, uint i);
+ubyte* append_uint64 (ubyte* cp, ulong i);
+int cram_load_reference (cram_fd* fd, const(char)* fn);
+int refs2id (refs_t* r, SAM_hdr* bfd);
+void refs_free (refs_t* r);
+char* cram_get_ref (cram_fd* fd, int id, int start, int end);
+void cram_ref_incr (refs_t* r, int id);
+void cram_ref_decr (refs_t* r, int id);
+cram_container* cram_new_container (int nrec, int nslice);
+void cram_free_container (cram_container* c);
+cram_container* cram_read_container (cram_fd* fd);
+int cram_write_container (cram_fd* fd, cram_container* h);
+int cram_flush_container (cram_fd* fd, cram_container* c);
+int cram_flush_container_mt (cram_fd* fd, cram_container* c);
+cram_block_compression_hdr* cram_new_compression_header ();
+void cram_free_compression_header (cram_block_compression_hdr* hdr);
+void cram_free_slice_header (cram_block_slice_hdr* hdr);
+void cram_free_slice (cram_slice* s);
+cram_slice* cram_new_slice (cram_content_type type, int nrecs);
+cram_slice* cram_read_slice (cram_fd* fd);
+cram_file_def* cram_read_file_def (cram_fd* fd);
+int cram_write_file_def (cram_fd* fd, cram_file_def* def);
+void cram_free_file_def (cram_file_def* def);
+SAM_hdr* cram_read_SAM_hdr (cram_fd* fd);
+int cram_write_SAM_hdr (cram_fd* fd, SAM_hdr* hdr);
+cram_fd* cram_open (const(char)* filename, const(char)* mode);
+cram_fd* cram_dopen (hFILE* fp, const(char)* filename, const(char)* mode);
+int cram_close (cram_fd* fd);
+int cram_seek (cram_fd* fd, off_t offset, int whence);
+int cram_flush (cram_fd* fd);
+int cram_eof (cram_fd* fd);
+int cram_set_option (cram_fd* fd, cram_option opt, ...);
+int cram_set_voption (cram_fd* fd, cram_option opt, va_list args);
+int cram_set_header (cram_fd* fd, SAM_hdr* hdr);
+int cram_put_bam_seq (cram_fd* fd, bam_seq_t* b);
+cram_block* cram_encode_compression_header (cram_fd* fd, cram_container* c, cram_block_compression_hdr* h);
+cram_block* cram_encode_slice_header (cram_fd* fd, cram_slice* s);
+int cram_encode_container (cram_fd* fd, cram_container* c);
+cram_record* cram_get_seq (cram_fd* fd);
+int cram_get_bam_seq (cram_fd* fd, bam_seq_t** bam);
+cram_block_compression_hdr* cram_decode_compression_header (cram_fd* fd, cram_block* b);
+cram_block_slice_hdr* cram_decode_slice_header (cram_fd* fd, cram_block* b);
+int cram_decode_slice (cram_fd* fd, cram_container* c, cram_slice* s, SAM_hdr* hdr);
+int cram_to_bam (SAM_hdr* bfd, cram_fd* fd, cram_slice* s, cram_record* cr, int rec, bam_seq_t** bam);
+cram_stats* cram_stats_create ();
+void cram_stats_add (cram_stats* st, int val);
+void cram_stats_del (cram_stats* st, int val);
+void cram_stats_dump (cram_stats* st);
+void cram_stats_free (cram_stats* st);
+cram_encoding cram_stats_encoding (cram_fd* fd, cram_stats* st);
+char* cram_encoding2str (cram_encoding t);
+cram_codec* cram_decoder_init (cram_encoding codec, char* data, int size, cram_external_type option, int version_);
+cram_codec* cram_encoder_init (cram_encoding codec, cram_stats* st, cram_external_type option, void* dat, int version_);
+int cram_codec_to_id (cram_codec* c, int* id2);
+int cram_index_load (cram_fd* fd, const(char)* fn);
+void cram_index_free (cram_fd* fd);
+cram_index* cram_index_query (cram_fd* fd, int refid, int pos, cram_index* frm);
+void cram_index_free (cram_fd* fd);
+int cram_seek_to_refpos (cram_fd* fd, cram_range* r);
+int cram_index_build (cram_fd* fd, const(char)* fn_base);
diff --git a/cram/reader.d b/cram/reader.d
new file mode 100644
index 0000000..f3a3583
--- /dev/null
+++ b/cram/reader.d
@@ -0,0 +1,122 @@
+module cram.reader;
+
+// uses some internal functions of htslib => static linking is necessary
+
+import cram.htslib;
+import cram.reference;
+import cram.exception;
+import cram.wrappers;
+import cram.slicereader;
+
+import bio.bam.abstractreader, bio.bam.referenceinfo,
+       bio.sam.header, bio.bam.reference, bio.bam.read;
+import std.string, std.array, std.range, std.algorithm, std.conv, std.typecons;
+import std.parallelism;
+
+class CramReader : IBamSamReader {
+    private {
+        string _fn;
+        string _mode;
+        CramFd _fd;
+        TaskPool _task_pool;
+
+        SamHeader _header; // (RE-)parsed lazily
+
+        SamHeader parseHeader() {
+            auto ptr = sam_hdr_str(_fd.header);
+            auto len = sam_hdr_length(_fd.header);
+            // FIXME: avoid reparsing header; turn it into an interface
+            // with two implementations?
+            return new SamHeader(cast(string)(ptr[0 .. len]));
+        }
+
+        ReferenceSequenceInfo[] _reference_sequences;
+        int[string] _reference_sequence_dict;
+    }
+
+    this(string filename, TaskPool pool=taskPool) {
+        _fn = filename;
+        _task_pool = pool;
+
+        _fd = openCram(filename);
+        _reference_sequences.length = _fd.header.nref;
+        foreach (k; 0 .. _fd.header.nref) {
+            auto seq = _fd.header.ref_[k];
+            _reference_sequences[k] = ReferenceSequenceInfo(seq.name.to!string,
+                    seq.len);
+            _reference_sequence_dict[_reference_sequences[k].name] = cast(int)k;
+        }
+    }
+
+    ///
+    bool hasReference(string reference) {
+        return null != (reference in _reference_sequence_dict);
+    }
+
+    ///
+    string filename() @property const {
+        return _fn;
+    }
+
+    ///
+    cram.reference.ReferenceSequence opIndex(string ref_name) {
+        enforce(hasReference(ref_name), "Reference with name " ~ ref_name ~ " is not present in the header");
+        auto ref_id = _reference_sequence_dict[ref_name];
+        return reference(ref_id);
+    }
+
+    ///
+    cram.reference.ReferenceSequence reference(int ref_id) {
+        enforce(ref_id < _reference_sequences.length, "Invalid reference index");
+        return cram.reference.ReferenceSequence(this, fd(), _seq_op, ref_id,
+                                                _reference_sequences[ref_id],
+                                                _task_pool);
+    }
+
+    BamRead[] unmappedReads() {
+        throw new Exception("* region unimplemented for CRAM files");
+        return [];
+    }
+
+    SamHeader header() @property {
+        if (_header is null)
+            _header = parseHeader();
+        return _header;
+    }
+
+    const(ReferenceSequenceInfo)[] reference_sequences() @property const nothrow {
+        return _reference_sequences;
+    }
+
+    private bool _seq_op;
+    void assumeSequentialProcessing() {
+        _seq_op = true;
+    }
+
+    private CramFd fd() {
+        return _fn == "-" ? _fd : openCram(_fn);
+    }
+
+    auto reads() {
+        alias R = CramFilterResult;
+        auto s = fd().slices(c => c.length > 0 ? R.pass : R.skip, 
+                             null, 
+                             _task_pool);
+        // no trust for delegates implementation => use zip-repeat trick
+        auto reads = s.zip(repeat(this), repeat(bamReadAlloc(_seq_op)))
+                      .map!(x => bamReads(x[0], x[1], x[2]))
+                      .joiner2;
+        return reads;
+    }
+
+    std.range.InputRange!(bio.bam.read.BamRead) allReads() @property {
+        return inputRangeObject(reads());
+    }
+
+    void createIndex(string fn_prefix=null) {
+        int ret = cram_index_build(_fd, toStringz(fn_prefix is null ? _fn : fn_prefix));
+        if (ret != 0) {
+            throw new Exception("failed to build index for CRAM file " ~ _fn);
+        }
+    }
+}
diff --git a/cram/reference.d b/cram/reference.d
new file mode 100644
index 0000000..82625a1
--- /dev/null
+++ b/cram/reference.d
@@ -0,0 +1,111 @@
+module cram.reference;
+
+import cram.exception, cram.wrappers, cram.slicereader;
+import cram.htslib;
+
+import bio.bam.abstractreader;
+import bio.bam.referenceinfo;
+import bio.bam.read;
+import std.string;
+import std.parallelism;
+import std.range, std.algorithm;
+
+int ref_seq_id(BamRead r) { return r.ref_id; }
+int ref_seq_start(BamRead r) { return r.position + 1; }
+int ref_seq_span(BamRead r) { return r.basesCovered(); }
+
+struct PositionChecker {
+    cram_range range;
+
+    private CramFilterResult passImpl(T)(T x) {
+        if (x.ref_seq_id < range.refid) return CramFilterResult.skip;
+        if (x.ref_seq_id > range.refid) return CramFilterResult.stop;
+        if (x.ref_seq_start > range.end) return CramFilterResult.stop;
+
+        // order of checks matters: ref_seq_span is relatively slow for reads
+        if (x.ref_seq_start + x.ref_seq_span - 1 < range.start) 
+            return CramFilterResult.skip;
+        
+        return CramFilterResult.pass;
+    }
+
+    auto pass(cram_container* c) {
+        if (c.length == 0) return CramFilterResult.skip;
+        return passImpl(c);
+    }
+
+    auto pass(cram_slice* s) { return passImpl(s.hdr); }
+    auto pass(BamRead r) { return passImpl(r); }
+}
+
+struct ReferenceSequence {
+    /// Name
+    string name() @property const {
+        return _info.name;
+    }
+
+    /// Length in base pairs
+    int length() @property const {
+        return _info.length;
+    }
+
+    /// Reference ID
+    int id() @property const {
+        return _ref_id;
+    }
+
+    private TaskPool _task_pool;
+
+    this(IBamSamReader reader, CramFd fd, bool seq_op, 
+         int ref_id, ReferenceSequenceInfo info,
+         TaskPool task_pool)
+    {
+        _reader = reader;
+        _fd = fd;
+        _seq_op = seq_op;
+        _ref_id = ref_id;
+        _info = info;
+        _task_pool = task_pool;
+    }
+
+    /// Get alignments overlapping [start, end) region.
+    /// $(BR)
+    /// Coordinates are 0-based.
+    auto opSlice(uint start, uint end) {
+        enforce(start < end, "start must be less than end");
+        enforce(_ref_id >= 0, "invalid reference id");
+        enforce(cram_index_load(_fd, toStringz(_reader.filename)) == 0,
+                "couldn't load CRAM index");
+
+        cram_range r;
+        r.refid = _ref_id;
+        r.start = start + 1;
+        r.end = end;
+        if (cram_seek_to_refpos(_fd, &r) == -1)
+            throw new CramException("Failure in cram_seek_to_refpos");
+        auto checker = PositionChecker(r);
+        auto alloc = bamReadAlloc(_seq_op);
+
+        return _fd.slices(c => checker.pass(c), s => checker.pass(s),
+                          _task_pool)
+                  .zip(repeat(checker), repeat(_reader), repeat(alloc))
+                  .map!(x => bamReads(x[0], x[2], x[3])
+                             .zip(repeat(x[1]))
+                             .filter!(y => y[1].pass(y[0]) == CramFilterResult.pass)
+                             .map!(y => y[0]))
+                  .joiner2;
+    }
+
+    /// All alignments
+    auto opSlice() {
+        assert(length > 0);
+        return opSlice(0, length);
+    }
+
+    private:
+    IBamSamReader _reader;
+    CramFd _fd;
+    int _ref_id;
+    bool _seq_op;
+    ReferenceSequenceInfo _info;
+}
diff --git a/cram/slicereader.d b/cram/slicereader.d
new file mode 100644
index 0000000..c7e548f
--- /dev/null
+++ b/cram/slicereader.d
@@ -0,0 +1,113 @@
+module cram.slicereader;
+
+import cram.htslib, cram.wrappers, cram.exception;
+import bio.bam.abstractreader, bio.bam.read;
+
+alias AllocateFunc = ubyte[] function(size_t);
+
+ubyte[] reusableChunkAllocator(size_t size) {
+    static ubyte[] _block;
+    if (size > _block.length) {
+        _block.assumeSafeAppend();
+        _block.length = size;
+    }
+    return _block[0 .. size];
+}
+
+ubyte[] chunkAllocator(size_t size) {
+    static ubyte[] _block;
+    static size_t _capa = 65536;
+    static size_t _used;
+            
+    if (size + _used <= _capa && _block !is null) {
+        auto result = _block[_used .. $][0 .. size];
+        _used += size;
+        return result;
+    } else {
+        if (size > _capa)
+            _capa = size;
+        _block = uninitializedArray!(ubyte[])(_capa);
+        _used = size;
+        return _block[0 .. size];
+    }
+}
+
+AllocateFunc bamReadAlloc(bool buffer_is_safe_to_reuse) {
+    if (buffer_is_safe_to_reuse)
+        return &reusableChunkAllocator;
+    else
+        return &chunkAllocator;
+}
+
+struct CramSliceReader {
+    private {
+        CramSlice _slice;
+        int _n_curr;
+        size_t _n_total;
+        alias RcBamSeq = RcPtr!(bam_seq_t, bam_destroy1);
+        RcBamSeq _bam_seq_ptr;
+        IBamSamReader _reader;
+        AllocateFunc _alloc;
+    }
+
+    BamRead front;
+    bool empty;
+
+    this(CramSlice slice, IBamSamReader reader, AllocateFunc alloc) {
+        _bam_seq_ptr = RcBamSeq(bam_init1());
+        _slice = slice;
+        _reader = reader;
+        _alloc = alloc;
+        _n_total = slice.hdr.num_records;
+        popFront();
+    }
+
+    void popFront() {
+        if (_n_curr == _n_total) {
+            empty = true;
+            return;
+        }
+
+        int ret = cram_to_bam(_slice.fd.header,
+                              _slice.fd.data.ptr,
+                              _slice.data.ptr,
+                              &_slice.crecs[_n_curr],
+                              _n_curr,
+                              &_bam_seq_ptr.data.ptr);
+        if (ret == -1)
+            throw new CramException("Failure in cram_to_bam");
+
+        front = toBamRead(_bam_seq_ptr);
+        front.associateWithReader(_reader);
+
+        ++_n_curr;
+    }
+
+    private BamRead toBamRead(bam_seq_t* record) {
+        auto chunk = _alloc(32 + record.l_data);
+        chunk[32 .. $] = record.data[0 .. record.l_data];
+        auto ptr = cast(void*)(chunk.ptr);
+        *(cast(int*)ptr + 0) = record.core.tid;
+        *(cast(int*)ptr + 1) = record.core.pos;
+
+        auto bin = record.core.bin;
+        auto mq = record.core.qual;
+        auto nl = record.core.l_qname;
+        *(cast(uint*)ptr + 2) = (bin << 16) | (mq << 8) | nl;
+        auto flag = record.core.flag;
+        auto nc = record.core.n_cigar;
+        *(cast(uint*)ptr + 3) = (flag << 16) | nc;
+
+        *(cast(int*)ptr + 4) = record.core.l_qseq;
+        *(cast(int*)ptr + 5) = record.core.mtid;
+        *(cast(int*)ptr + 6) = record.core.mpos;
+        *(cast(int*)ptr + 7) = record.core.isize;
+        return BamRead(chunk);
+    }
+}
+
+auto bamReads(CramSlice slice, IBamSamReader reader=null, 
+              AllocateFunc alloc=&chunkAllocator)
+{
+    return CramSliceReader(slice, reader, alloc); 
+}
diff --git a/cram/wrappers.d b/cram/wrappers.d
new file mode 100644
index 0000000..56b892c
--- /dev/null
+++ b/cram/wrappers.d
@@ -0,0 +1,420 @@
+module cram.wrappers;
+
+import cram.htslib, cram.exception;
+
+import std.typecons, std.parallelism, std.range;
+debug import std.stdio;
+
+auto zeroChecked(alias func, T...)(string err_msg, auto ref T params) {
+    int ret = func(params);
+    if (!ret)
+        throw new CramException(err_msg);
+}
+
+struct RcPtr(T, alias Free) {
+    static struct Payload {
+        debug {
+            static size_t payload_counter;
+            size_t payload_id;
+        }
+
+        T* ptr;
+        this(T* ptr) { 
+            this.ptr = ptr;
+            debug {
+                payload_id = ++payload_counter;
+                stderr.writeln("Init ", T.stringof, "* #", payload_id);
+            }
+        }
+
+        ~this() { 
+            debug {
+                stderr.writeln("Free ", T.stringof, "* #", payload_id);
+            }
+            Free(ptr);
+        }
+
+        alias ptr this;
+
+        this(this) { assert(false); }
+        void opAssign(Payload rhs) { assert(false); }
+    }
+
+    alias Data = RefCounted!(Payload, RefCountedAutoInitialize.no);
+    Data data;
+    alias data this;
+
+    bool isNull() @property const {
+        return !data.refCountedStore.isInitialized || data.ptr is null;
+    }
+
+    this(this)
+    {
+        static if (is(T == cram_slice)) {
+            debug writeln("COPIED #", data.ptr.id + 1);
+        }
+    }
+
+    this(T* ptr) { data = Data(ptr); }
+}
+
+auto nullChecked(alias func, T...)(string err_msg, cram_fd* fd, 
+                                   auto ref T other_params)
+{
+    auto ptr = func(fd, other_params);
+    if (ptr !is null)
+        return ptr;
+    if (fd.err == 0)
+        return null;
+    throw new CramException(err_msg);
+}
+
+// instances of these types must be used within the same thread!
+void my_cram_close(cram_fd* fd) {
+    import core.sys.posix.pthread;
+    pthread_mutex_destroy(&fd.metrics_lock);
+    pthread_mutex_destroy(&fd.ref_lock);
+    pthread_mutex_destroy(&fd.bam_list_lock);
+    cram_close(fd);
+}
+
+alias RcCramFd = RcPtr!(cram_fd, my_cram_close);
+alias CramFd = RcCramFd;
+
+CramFd openCram(string filename) {
+    import std.string : toStringz;
+    auto fd = cram_open(toStringz(filename), "rb");
+
+    if (fd == null)
+        throw new CramException("Can't open file " ~ filename);
+
+    cram_set_option(fd, cram_option.CRAM_OPT_DECODE_MD);
+
+    // initialize locks, but we will use the pool from D standard library
+    // instead of the htslib implementation 
+    import core.sys.posix.pthread;
+    pthread_mutex_init(&fd.metrics_lock, null);
+    pthread_mutex_init(&fd.ref_lock, null);
+    pthread_mutex_init(&fd.bam_list_lock, null);
+    fd.shared_ref = 1;
+    fd.own_pool = 0;
+    fd.pool = null;
+
+    return CramFd(fd);
+}
+
+enum CramFilterResult {
+    skip, // skip over the object
+    pass, // the filter doesn't reject the object
+    stop  // skip, and further iteration won't give any results
+}
+
+alias RcCramContainer = RcPtr!(cram_container, cram_free_container);
+alias CramContainer = RcCramContainer;
+alias CramContainerFilter = CramFilterResult delegate(cram_container*);
+
+alias RcCramSlice = RcPtr!(cram_slice, cram_free_slice);
+alias UndecodedSliceFilter = CramFilterResult delegate(cram_slice*);
+
+struct CramSlice {
+    CramFd fd;
+    RcCramContainer container;
+    RcCramSlice slice;
+
+    alias slice this;
+
+    bool is_decoded() @property const {
+        return slice.crecs !is null;
+    }
+}
+
+struct CramContainerRange {
+    CramContainer front;
+    bool empty;
+
+    private CramFd _fd;
+    private CramContainerFilter _filter;
+
+    // the containers that doesn't pass the filter
+    // will be simply skipped without any decoding
+    this(CramFd fd, CramContainerFilter f)
+    {
+        _fd = fd;
+        _filter = f;
+        popFront();
+    }
+
+    void popFront() {
+        if (!front.isNull) {
+            // skip remaining blocks of previous container
+            while (front.curr_slice != front.max_slice) {
+                ++front.curr_slice;
+                auto next_slice = cram_read_slice(_fd);
+                if (!next_slice)
+                    throw new CramException("Failure in cram_read_slice");
+                cram_free_slice(next_slice);
+            }
+        }
+
+        auto err_msg = "Failed to read container header";
+        while (true) {
+            // read container header
+            debug writeln("cram_read_container");
+            auto ptr = nullChecked!cram_read_container(err_msg, _fd);
+            if (ptr is null) {
+                empty = true;
+                break;
+            }
+            front = CramContainer(ptr);
+            // apply the filter
+            if (_filter is null) break;
+            auto res = _filter(front);
+
+            if (res == CramFilterResult.stop) {
+                empty = true;
+                break;
+            }
+
+            if (res == CramFilterResult.pass) {
+                break;
+            }
+
+            if (-1 == cram_seek(_fd, front.length, 1))
+                throw new CramException("Failed to seek in CRAM file");
+        }
+
+        if (empty) return;
+
+        // read compression header block
+        err_msg = "Failed to read compression header block";
+        front.comp_hdr_block = nullChecked!cram_read_block(err_msg, _fd);
+        auto content_type = front.comp_hdr_block.content_type;
+        if (content_type != cram_content_type.COMPRESSION_HEADER)
+            throw new CramException(err_msg);
+
+        err_msg = "Failed to decode compression header";
+        front.comp_hdr = cram_decode_compression_header(_fd, 
+                                                        front.comp_hdr_block);
+        if (front.comp_hdr is null)
+            throw new CramException(err_msg);
+
+        if (!(front.comp_hdr.AP_delta)) {
+            // FIXME: in cram_decode.c, there's a mutex locked around this line,
+            //        but it looks unnecessary
+            _fd.unsorted = 1;
+        }
+    }
+}
+
+auto containers(CramFd fd, CramContainerFilter f) {
+    return CramContainerRange(fd, f);
+}
+
+class UndecodedSliceRange {
+    private {
+        CramFd _fd;
+        ref CramContainer _container() @property {
+            assert(!_containers.empty);
+            return _containers.front;
+        }
+        CramContainerRange _containers;
+        UndecodedSliceFilter _sf;
+    }
+
+    this(CramFd fd, CramContainerFilter cf, UndecodedSliceFilter sf) {
+        _fd = fd;
+        _sf = sf;
+        _containers = containers(_fd, cf);
+
+        if (_containers.empty)
+            empty = true;
+        popFront();
+    }
+
+    CramSlice front;
+    bool empty;
+
+    // true == either front or empty is set
+    private bool readNextSliceFromCurrentContainer() {
+        assert(_container.curr_slice < _container.max_slice);
+        _container.curr_slice++;
+
+        auto err_msg = "Failure in cram_read_slice";
+        debug stderr.writeln("cram_read_slice (", _container.curr_slice,
+                             "/", _container.max_slice, ")");
+        auto ptr = cram_read_slice(_fd);
+        if (ptr is null) {
+            throw new CramException(err_msg);
+        }
+        assert(ptr.hdr !is null);
+        ptr.last_apos = ptr.hdr.ref_seq_start;
+
+        if (_sf is null) { setupFront(ptr); return true; }
+        auto ret = _sf(ptr);
+        if (ret == CramFilterResult.pass) { setupFront(ptr); return true; }
+        if (ret == CramFilterResult.stop) { empty = true; return true; }
+        return false;
+    }
+
+    private void setupFront(cram_slice* ptr) { 
+        front = CramSlice(_fd, _container, RcCramSlice(ptr));
+    }
+
+    void popFront() {
+        while (!empty) {
+            while (_container.curr_slice < _container.max_slice)
+                if (readNextSliceFromCurrentContainer())
+                    return;
+
+            // no slice (satisfying the filter) in the current container
+            _containers.popFront();
+            if (_containers.empty) { empty = true; return; }
+        }
+    }
+}
+
+auto undecodedSlices(CramFd fd, CramContainerFilter cf, 
+                     UndecodedSliceFilter sf=null)
+{
+    return new UndecodedSliceRange(fd, cf, sf);
+}
+
+void decodeSlice(cram_fd* fd, cram_container* c, cram_slice* s) {
+    auto err_msg = "Failure in cram_decode_slice";
+    debug writeln("DECODING slice #", s.id + 1);
+    int ret = cram_decode_slice(fd, c, s, fd.header);
+    if (ret != 0)
+        throw new CramException(err_msg);
+}
+
+void decodeSlice(CramSlice slice) {
+    decodeSlice(slice.fd, slice.container, slice.data.ptr);
+}
+
+import bio.core.utils.roundbuf;
+
+struct CramSliceDecoder(R) 
+    if (isInputRange!R && is(ElementType!R == CramSlice))
+{
+    private {
+        R _slices;
+        TaskPool _pool;
+
+        // FIXME: D arrays don't call element destructors when GC-d :(
+        RoundBuf!CramSlice _input_queue;
+        alias DecodeTask = Task!(decodeSlice, 
+                                 cram_fd*, cram_container*, cram_slice*)*;
+        RoundBuf!DecodeTask _output_queue;
+
+        void putNextSliceIntoQueue() {
+            auto slice = _slices.front;
+            _input_queue.put(slice);
+            _slices.popFront();
+
+            // don't copy it between threads (ref. counting is not atomic)
+            cram_fd* fd = slice.fd;
+            cram_container* c = slice.container;
+            cram_slice* s = slice;
+            debug writeln("PUT slice #", s.id + 1, " into queue");
+            version (serial) {
+                decodeSlice(fd, c, s);
+            } else {
+                auto t = task!decodeSlice(fd, c, s);
+                _pool.put(t);
+                _output_queue.put(t);
+            }
+        }
+    }
+
+    this(R slices, TaskPool pool) {
+        _slices = slices;
+        _pool = pool;
+        import std.algorithm : max;
+        auto size = max(1, pool.size) * 2;
+        _input_queue = RoundBuf!CramSlice(size);
+        _output_queue = RoundBuf!DecodeTask(size);
+        while (!_slices.empty && !_input_queue.full)
+            putNextSliceIntoQueue();
+
+        popFront();
+    }
+
+    CramSlice front;
+    bool empty;
+
+    void popFront() {
+        if (_input_queue.empty) {
+            empty = true;
+            return;
+        }
+
+        version (serial) {} else {
+            auto t = _output_queue.front;
+            _output_queue.popFront();
+            t.yieldForce(); // now _input_queue.front is decoded
+        }
+
+        front = _input_queue.front;
+        _input_queue.popFront();
+        debug writeln("GET slice #", front.id + 1, " from queue");
+        if (!_slices.empty)
+            putNextSliceIntoQueue();
+    }
+}
+
+auto decode(R)(R slices, std.parallelism.TaskPool pool) 
+    if(isInputRange!R && is(ElementType!R == CramSlice))
+{
+    return CramSliceDecoder!R(slices, pool);
+}
+
+auto slices(CramFd fd, CramContainerFilter cf, UndecodedSliceFilter sf,
+            TaskPool pool)
+{
+    auto undecoded_slices = new UndecodedSliceRange(fd, cf, sf);
+    return undecoded_slices.decode(pool);
+}
+
+// workaround for LDC #795 - doesn't use short-circuit evaluation
+// TODO remove when 0.15.0 release comes out
+auto joiner2(RoR)(RoR r)
+if (isInputRange!RoR && isInputRange!(ElementType!RoR)) {
+    static struct Result {
+    private:
+        RoR _items;
+        ElementType!RoR _current;
+    public:
+        this(RoR r) {
+            _items = r;
+
+            _current = ElementType!RoR.init;
+
+            while (!_items.empty) {
+                _current = _items.front;
+                if (!_current.empty)
+                    break;
+                _items.popFront();
+            }
+        }
+
+        @property auto empty() { return _items.empty; }
+        @property auto ref front() { assert(!empty); return _current.front; }
+        void popFront()
+        {
+            assert(!_current.empty);
+            _current.popFront();
+            if (_current.empty)
+            {
+                assert(!_items.empty);
+                _items.popFront();
+                while (!_items.empty) {
+                    _current = _items.front;
+                    if (!_current.empty)
+                        break;
+                    _items.popFront();
+                }
+            }
+        }
+    }
+    return Result(r);
+}
diff --git a/cram/writer.d b/cram/writer.d
new file mode 100644
index 0000000..0b7583d
--- /dev/null
+++ b/cram/writer.d
@@ -0,0 +1,108 @@
+module cram.writer;
+
+import std.stream;
+import std.string;
+
+import cram.htslib;
+import cram.exception;
+
+import bio.bam.read;
+import bio.bam.referenceinfo;
+import bio.sam.header;
+
+extern(C) {
+    int fai_build(const(char)* fn);
+}
+
+string fastaIndexFilename(string fasta_fn) {
+    import std.file : exists, isFile;
+    auto fn = fasta_fn ~ ".fai";
+    if (fn.exists && fn.isFile)
+        return fn;
+    if (fai_build(toStringz(fasta_fn)) < 0)
+        throw new Exception("Failed to build fasta index for " ~ fasta_fn);
+    return fn;
+}
+
+final class CramWriter {
+    private {
+        cram_fd* _fd;
+        string _fn;
+        size_t _n_threads;
+
+        string _reference_fn;
+        string _fasta_idx_fn;
+    }
+
+    this(string filename, size_t n_threads) {
+        _fn = filename;
+        _n_threads = n_threads;
+
+        _fd = cram_open(toStringz(filename), "wb");
+        if (_fd is null)
+            throw new CramException("Can't open file for writing: " ~ filename);
+
+        if (_n_threads > 1)
+            cram_set_option(_fd, cram_option.CRAM_OPT_NTHREADS, _n_threads);
+    }
+
+    void setFastaFilename(string ref_fn) {
+        _reference_fn = ref_fn ~ "\0";
+        _fasta_idx_fn = fastaIndexFilename(ref_fn);
+    }
+
+    void writeSamHeader(SamHeader header) {
+        writeSamHeader(header.text);
+    }
+
+    void writeSamHeader(string header_text) {
+        auto hdr = sam_hdr_parse_(header_text.ptr, cast(int)header_text.length);
+        if (cram_set_header(_fd, hdr) < 0)
+            throw new CramException("Failed to set SAM header");
+        if (_reference_fn !is null)
+            cram_load_reference(_fd, _reference_fn.ptr);
+        if (cram_write_SAM_hdr(_fd, _fd.header) < 0)
+            throw new CramException("Failed to write SAM header");
+    }
+
+    private void convertToBamSeq(R)(ref R read, bam_seq_t* bam_seq) {
+        with (bam_seq.core) {
+            tid = read.ref_id;
+            pos = read.position;
+            bin = cast(ushort)read.bin.id;
+            qual = read.mapping_quality;
+            l_qname = cast(ubyte)(read.name.length + 1);
+            flag = read.flag;
+            n_cigar = cast(ushort)read.cigar.length;
+            l_qseq = cast(int)read.sequence.length;
+            mtid = read.mate_ref_id;
+            mpos = read.mate_position;
+            isize = read.template_length;
+        }
+        bam_seq.l_data = bam_seq.m_data = cast(int)(read.raw_data.length - 32);
+        bam_seq.data = read.raw_data.ptr + 32;
+    }
+
+    void writeRecord(R)(auto ref R read) if(isBamRead!R) {
+        // somewhat messy code because of the decision 
+        // to use ending zero byte of qname for flags
+        auto offset = 32 + read.name.length;
+        ubyte old_byte = read.raw_data[offset];
+        read.raw_data[offset] = 0;
+        scope(exit) read.raw_data[offset] = old_byte;
+
+        bam_seq_t bam_seq;
+        convertToBamSeq(read, &bam_seq);
+        cram_put_bam_seq(_fd, &bam_seq);
+    }
+
+    void flush() {
+        if (cram_flush(_fd) == -1)
+            throw new CramException("Failed to flush block (" ~ _fn ~ ")");
+    }
+
+    void finish() {
+        if (cram_close(_fd) == -1)
+            throw new CramException("Failed to close CRAM file: " ~ _fn);
+    }
+}
diff --git a/deb/DEBIAN_CHANGELOG b/deb/DEBIAN_CHANGELOG
new file mode 100644
index 0000000..0ab4503
--- /dev/null
+++ b/deb/DEBIAN_CHANGELOG
@@ -0,0 +1,139 @@
+sambamba (0.4.7) unstable, urgency=low
+  * use random subdirectories for temporary files in both sort and markdup utilities 
+    (allows to run multiple processes in parallel)
+  * fixed bug in slice tool: when slicing last reference, unmapped reads were written too
+  * fixed a bug in uncompressed BAM output
+  * fixed a bug in intersecting with BED
+
+ -- Artem Tarasov <lomereiter at gmail.com>  Fri, 20 Jun 2014 16:27:19 +0400
+
+sambamba (0.4.6) unstable, urgency=low
+  * fixed a bug in duplicate marking tool
+  * fixed handling empty BAM files in sort tool
+
+ -- Artem Tarasov <lomereiter at gmail.com>  Mon, 28 Apr 2014 23:47:20 +0400
+
+sambamba (0.4.5) unstable, urgency=low
+
+  * new -L option in the 'view' tool for intersecting a file with BED
+  * preventing incidental file overwrites by checking output filename
+  * slightly improved performance of converting to SAM/JSON
+
+ -- Artem Tarasov <lomereiter at gmail.com>  Tue, 04 Feb 2014 10:57:21 +0400
+
+sambamba (0.4.4) unstable, urgency=low
+
+  * fixed sorting by name which didn't work in recent releases
+
+ -- Artem Tarasov <lomereiter at gmail.com>  Wed, 18 Dec 2013 20:38:39 +0400
+
+sambamba (0.4.3) unstable, urgency=low
+
+  * improved sorting performance
+  * bug fixed in the 'sort' tool
+  * 'view' supports '*' region, '--unmapped' option removed
+
+ -- Artem Tarasov <lomereiter at gmail.com>  Sun, 01 Dec 2013 17:11:42 +0400
+
+sambamba (0.4.2) unstable; urgency=low
+  
+  * new option '--unmapped' in view tool (for indexed BAMs)
+  * fixed an epic bug in region queries introduced in 0.4.1
+
+ -- Artem Tarasov <lomereiter at gmail.com>  Thu, 14 Nov 2013 02:45:58 +0400
+
+sambamba (0.4.1) unstable, urgency=low
+
+  * integrated new BAM reader (better scaling on multicore)
+  * `index` tool now collects optional statistics (for idxstats)
+  * fixed a bug with outputting SAM when requested JSON
+
+ -- Artem Tarasov <lomereiter at gmail.com>  Wed, 30 Oct 2013 00:42:33 +0400
+
+sambamba (0.4.0) unstable; urgency=low
+
+  * added tool for marking duplicates, which uses Picard criteria
+
+ -- Artem Tarasov <lomereiter at gmail.com>  Wed, 02 Oct 2013 23:07:14 +0400
+
+sambamba (0.3.3) unstable; urgency=low
+
+  * reduced buffer size for uncompressed BAM output
+    so that it is less than pipe buffer size
+  * added subsampling option to sambamba view
+
+ -- Artem Tarasov <lomereiter at gmail.com>  Sat, 13 Jul 2013 16:27:25 +0400
+
+sambamba (0.3.2) unstable; urgency=low
+
+  * fixed bug in flagstat parameter parsing
+  * consistent naming for number of threads in CLI
+
+ -- Artem Tarasov <lomereiter at gmail.com>  Tue, 16 Apr 2013 09:23:35 +0400
+
+sambamba (0.3.1) unstable; urgency=low
+
+  * numerous bugfixes
+  * now requires at least v2.061 of D compiler
+
+ -- Artem Tarasov <lomereiter at gmail.com>  Sun, 11 Mar 2013 01:03:17 +0400
+
+sambamba (0.3.0) unstable; urgency=low
+
+  * new command line tool -- sambamba-slice
+  * several minor bugfixes
+  * compiles with LDC2
+
+ -- Artem Tarasov <lomereiter at gmail.com>  Wed, 12 Dec 2012 22:57:12 +0400
+
+sambamba (0.2.9) unstable; urgency=low
+
+  * random access speedup
+
+ -- Artem Tarasov <lomereiter at gmail.com>  Sun, 08 Oct 2012 01:39:26 +0400
+
+sambamba (0.2.8) unstable; urgency=low
+
+  * fix segfault on opening unexistent file
+  * fix random-access for files >2GB
+
+ -- Artem Tarasov <lomereiter at gmail.com>  Wed, 26 Sep 2012 17:17:03 +0400
+
+sambamba (0.2.7) unstable; urgency=low
+
+  * fix a stupid bug related to determining end of file
+  * add support for BAM files of size > 2GB (workaround for Phobos bug)
+
+ -- Artem Tarasov <lomereiter at gmail.com>  Sun, 16 Sep 2012 14:45:09 +0400
+
+sambamba (0.2.6) unstable; urgency=low
+
+  * add output in MessagePack format to sambamba-view
+
+ -- Artem Tarasov <lomereiter at gmail.com>  Sun, 19 Aug 2012 19:42:48 +0400
+
+sambamba (0.2.5) unstable; urgency=low
+
+  * fix bug in indexing (worked correctly for < 73Mbp long references)
+
+ -- Artem Tarasov <lomereiter at gmail.com>  Sat, 18 Aug 2012 20:02:12 +0400
+
+sambamba (0.2.4) unstable; urgency=low
+
+  * fix bug about outputting header to a file in SAM/JSON output
+  * consistent use of stderr for error messages and usage information
+
+ -- Artem Tarasov <lomereiter at gmail.com>  Tue, 14 Aug 2012 21:31:52 +0400
+
+sambamba (0.2.3) unstable; urgency=low
+
+  * fix bug in BAM output
+  * support for non-seekable streams (pipes, stdin/stdout)
+
+ -- Artem Tarasov <lomereiter at gmail.com>  Sat, 11 Aug 2012 16:20:44 +0400
+
+sambamba (0.2.1) unstable; urgency=low
+
+  * Initial release
+
+ -- Artem Tarasov <lomereiter at gmail.com>  Tue,  7 Aug 2012 17:51:11 +0400
diff --git a/deb/makepackage.rb b/deb/makepackage.rb
new file mode 100755
index 0000000..6f33d28
--- /dev/null
+++ b/deb/makepackage.rb
@@ -0,0 +1,181 @@
+#!/usr/bin/env ruby
+
+require 'fileutils'
+
+def print_usage
+  puts 'usage: ./makepackage.rb <i386|amd64>'
+  puts
+  puts '       makes a debian package for specified architecture'
+end
+
+if ARGV.length.zero?
+  print_usage
+  exit
+end
+
+$debdir = Dir.pwd
+
+################################################################################
+
+def get_current_tag
+  `git describe --tags \`git rev-list --tags --max-count=1\``.strip
+end
+
+def get_current_version
+  if $current_version.nil?
+    # tag is expected to be of form vX.Y.Z
+    tag = get_current_tag
+    $current_version = tag[1 .. -1]
+  end
+  $current_version
+end
+
+def generate_copyright_file
+  gpl2_notice =<<GPL
+ 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; either
+ version 2 of the License, or (at your option) any later
+ version.
+ .
+ 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 package; if not, write to the Free
+ Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ Boston, MA  02110-1301 USA
+ .
+ On Debian systems, the full text of the GNU General Public
+ License version 2 can be found in the file
+ `/usr/share/common-licenses/GPL-2'.
+GPL
+
+  File.open('usr/share/doc/sambamba/copyright', 'w+') do |f|
+    f.puts 'Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/'
+    f.puts 'Upstream-Name: sambamba'
+    f.puts 'Upstream-Contact: Artem Tarasov <lomereiter at gmail.com>'
+    f.puts 'Source: https://github.com/lomereiter/sambamba'
+    f.puts
+    f.puts 'Files: *'
+    f.puts 'Copyright: 2012-2014 Artem Tarasov'
+    f.puts 'License: GPL-2+'
+    f.puts gpl2_notice
+  end
+end
+
+def copy_changelog_to_usr_share_doc_sambamba
+  FileUtils.copy '../DEBIAN_CHANGELOG', 'usr/share/doc/sambamba/changelog'
+end
+
+def gzip_changelog
+  `gzip --best usr/share/doc/sambamba/changelog`
+end
+
+def make_sambamba
+  Dir.chdir '../..'
+  if $arch == 'i386' then
+    `make sambamba-ldmd2-32`
+  elsif $arch == 'amd64' then
+    `make sambamba-ldmd2-64`
+  else
+    puts 'architecture must be one of i386, amd64'
+    exit 1
+  end
+
+  Dir.chdir $debdir
+  Dir.chdir $rootdir
+end
+
+def copy_sambamba_to_usr_bin
+  FileUtils.copy '../../build/sambamba', 'usr/bin'
+end
+
+def strip_sambamba_executable
+  `strip usr/bin/sambamba`
+end
+
+def copy_manpages_to_usr_share_man_man1
+  Dir.glob('../../man/*.1').each do |fn|
+    FileUtils.copy fn, 'usr/share/man/man1'
+  end
+end
+
+def gzip_manpages
+  `gzip --best usr/share/man/man1/*.1`
+end
+
+def get_dependencies
+  # TODO: get from dpkg-shlibdeps
+  "Depends: libc6 (>= 2.3.2), libgcc1 (>= 1:4.1.1)"
+end
+
+def compute_installed_size
+  sz = `du -bs .`.to_i
+  puts "package size: #{sz}"
+  (sz / 1024.0).ceil * 1024
+end
+
+def generate_control_file
+  text = <<CONTROL
+Source: sambamba
+Package: sambamba
+Priority: optional
+Version: #{get_current_version}
+Section: science
+Architecture: #{$arch}
+#{get_dependencies}
+Installed-Size: #{compute_installed_size}
+Maintainer: Artem Tarasov <lomereiter at gmail.com>
+Description: tool for working with data in SAM/BAM file formats
+ It provides a number of utilities (including sort, merge, and index)
+ all of which use parallel compression and decompression of BAM files, 
+ wisely using resources of modern multi-core machines.
+CONTROL
+   
+  File.open('DEBIAN/control', 'w+') do |f|
+    f.puts text
+  end
+end
+
+def add_lintian_override_concerning_embedded_zlib
+  File.open('usr/share/lintian/overrides/sambamba', 'w+') do |f|
+    f.puts '# Phobos links with Zlib statically'
+    f.puts 'sambamba binary: embedded-zlib'
+  end
+end
+
+def build_debian_package
+  Dir.chdir '..'
+  `fakeroot dpkg-deb --build #{$rootdir}`
+end
+
+################################################################################
+
+$arch = ARGV[0]
+
+$rootdir = "sambamba-#{get_current_version}_#{$arch}"
+FileUtils.remove_entry_secure $rootdir if File.exists? $rootdir
+Dir.mkdir $rootdir
+Dir.chdir $rootdir
+Dir.mkdir 'DEBIAN'
+FileUtils.mkdir_p 'usr/bin'
+FileUtils.mkdir_p 'usr/share/doc/sambamba'
+FileUtils.mkdir_p 'usr/share/lintian/overrides'
+FileUtils.mkdir_p 'usr/share/man/man1'
+# stay in rootdir
+
+generate_copyright_file
+copy_changelog_to_usr_share_doc_sambamba
+gzip_changelog
+make_sambamba
+copy_sambamba_to_usr_bin
+strip_sambamba_executable
+copy_manpages_to_usr_share_man_man1
+gzip_manpages
+generate_control_file
+add_lintian_override_concerning_embedded_zlib
+build_debian_package
diff --git a/etc/bash_completion.d/sambamba b/etc/bash_completion.d/sambamba
new file mode 100644
index 0000000..0d0ac86
--- /dev/null
+++ b/etc/bash_completion.d/sambamba
@@ -0,0 +1,77 @@
+_sambamba()
+{
+    local cur=${COMP_WORDS[COMP_CWORD]}
+    local subcommand=${COMP_WORDS[1]}
+
+    if [[ $COMP_CWORD == 1 ]]; then
+        COMPREPLY=( $(compgen -W "view index merge sort \
+                                  flagstat slice markdup" -- $cur) )
+        compopt +o nospace
+    elif [[ $cur == -* ]]; then
+        case "$subcommand" in
+            view)
+              COMPREPLY=( $(compgen -W "-F -f -h -H -I -c -S -p \
+                                        -l -o -t -s --filter= --header \
+                                        --format= --with-header --count \
+                                        --reference-info --show-progress \
+                                        --sam-input --output-filename= \
+                                        --nthreads= --compression-level= \
+                                        --subsample= --subsampling-seed=" -- $cur) )
+              ;;
+            index)
+              COMPREPLY=( $(compgen -W "-p -t --nthreads= --show-progress" -- $cur) )
+              ;;
+            merge)
+              COMPREPLY=( $(compgen -W "-p -t --nthreads= -l -H --header \
+                                        --compression-level=" -- $cur) )
+              ;;
+            sort)
+              COMPREPLY=( $(compgen -W "-m --memory-limit= --tmpdir= -o --out \
+                                        -n --compression-level= -u -p -t \
+                                        --uncompressed-chunks --show-progress \
+                                        --nthreads=" -- $cur) )
+              ;;
+            flagstat)
+              COMPREPLY=( $(compgen -W "-t -p --nthreads= --show-progress" -- $cur) )
+              ;;
+            slice)
+              COMPREPLY=( $(compgen -W "-o --output-filename=" -- $cur) )
+              ;;
+            markdup)
+              COMPREPLY=( $(compgen -W "-r -t -l -p --tmpdir= --remove-duplicates \
+                                        --nthreads= --compression-level= \
+                                        --show-progress" -- $cur) )
+              ;;
+        esac
+    
+        if [[ ${#COMPREPLY[@]} == 1 && ${COMPREPLY[0]} != "--"*"=" ]] ; then
+            compopt +o nospace
+        fi
+
+    elif [[ ${COMP_WORDS[COMP_CWORD - 2]} == "--format" || ${COMP_WORDS[COMP_CWORD - 1]} == "-f" ]]; then
+        COMPREPLY=( $(compgen -W "sam bam json msgpack" -- $cur) )
+        compopt +o nospace
+    elif [[ $subcommand == "view" || $subcommand == "slice" ]]; then
+        for word in ${COMP_WORDS[@]}; do
+            if [[ $word == *.bam && $word != "" ]]; then
+                eval abspath=$word
+                COMPREPLY=( $(sambamba view -H -t4 $abspath | grep @SQ | \
+                              cut -f 2 | cut -f2 -d: 2>/dev/null | grep "^$cur") )
+                break
+            fi
+        done
+
+        if [[ ${#COMPREPLY[@]} == 0 ]]; then
+            compopt +o nospace
+        fi
+
+        compopt -o default
+        compopt -o filenames
+    else
+        compopt +o nospace
+        compopt -o default
+    fi
+}
+
+complete -o nospace -F _sambamba sambamba
+# vim: set syntax=sh :
diff --git a/main.d b/main.d
new file mode 100644
index 0000000..8093d3c
--- /dev/null
+++ b/main.d
@@ -0,0 +1,80 @@
+/*
+    This file is part of Sambamba.
+    Copyright (C) 2012-2016    Artem Tarasov <lomereiter at gmail.com>
+
+    Sambamba 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; either version 2 of the License, or
+    (at your option) any later version.
+
+    Sambamba 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+import sambamba.view;
+import sambamba.index;
+import sambamba.merge;
+import sambamba.sort;
+import sambamba.flagstat;
+import sambamba.slice;
+import sambamba.markdup;
+import sambamba.depth;
+import sambamba.pileup;
+import sambamba.fixbins;
+
+import sambamba.utils.common.ldc_gc_workaround;
+
+import utils.strip_bcf_header;
+import utils.lz4;
+import utils.version_ : VERSION;
+
+import std.stdio;
+
+void printUsage() {
+    stderr.writeln("sambamba " ~ VERSION);
+    stderr.writeln();
+    stderr.writeln("Usage: sambamba [command] [args...]");
+    stderr.writeln();
+    stderr.writeln("    Available commands: 'view', 'index', 'merge', 'sort',");
+    stderr.writeln("                        'flagstat', 'slice', 'markdup', 'depth', 'mpileup'");
+    stderr.writeln("    To get help on a particular command, just call it without args.");
+    stderr.writeln();
+    stderr.writeln("Leave bug reports and feature requests at");
+    stderr.writeln("https://github.com/lomereiter/sambamba/issues");
+    stderr.writeln();
+}
+
+int main(string[] args) {
+    if (args.length == 1) {
+        printUsage();
+        return 1;
+    }
+
+    auto _args = args[0] ~ args[2 .. $];
+
+    switch (args[1]) {
+        case "view":     return view_main(_args);
+        case "index":    return index_main(_args);
+        case "merge":    return merge_main(_args);
+        case "sort":     return sort_main(_args);
+        case "flagstat": return flagstat_main(_args);
+        case "slice":    return slice_main(_args);
+        case "markdup":  return markdup_main(_args);
+        case "depth":    return depth_main(_args);
+        case "mpileup":  return pileup_main(_args);
+
+        // hidden commands
+        case "fixbins":  return fixbins_main(_args);
+        case "strip_bcf_header": return strip_bcf_header_main(_args);
+        case "lz4compress": return lz4compress_main();
+        default:
+            printUsage();
+            return 1;
+    }
+}
diff --git a/man/.gitignore b/man/.gitignore
new file mode 100644
index 0000000..2d19fc7
--- /dev/null
+++ b/man/.gitignore
@@ -0,0 +1 @@
+*.html
diff --git a/man/sambamba-flagstat.1 b/man/sambamba-flagstat.1
new file mode 100644
index 0000000..925c256
--- /dev/null
+++ b/man/sambamba-flagstat.1
@@ -0,0 +1,59 @@
+.\" generated with Ronn/v0.7.3
+.\" http://github.com/rtomayko/ronn/tree/0.7.3
+.
+.TH "SAMBAMBA\-FLAGSTAT" "1" "August 2014" "" ""
+.
+.SH "NAME"
+\fBsambamba\-flagstat\fR \- getting flag statistics from BAM file
+.
+.SH "SYNOPSIS"
+\fBsambamba flagstat\fR \fIOPTIONS\fR <input\.bam>
+.
+.SH "DESCRIPTION"
+Outputs some statistics drawn from read flags\.
+.
+.P
+First line contains numbers of QC\-passed and QC\-failed reads\. Then come pairs of numbers, the former for QC\-passed reads, the latter for QC\-failed ones:
+.
+.IP "\(bu" 4
+duplicates
+.
+.IP "\(bu" 4
+mapped reads (plus percentage relative to the numbers from the first line)
+.
+.IP "\(bu" 4
+reads with \'is_paired\' flag set
+.
+.IP "\(bu" 4
+paired reads which are first mates
+.
+.IP "\(bu" 4
+paired reads which are second mates
+.
+.IP "\(bu" 4
+paired reads with \'proper_pair\' flag set (plus percentage relative to the numbers of QC\-passed/failed reads with \'is_paired\' flag set)
+.
+.IP "\(bu" 4
+paired reads where both mates are mapped
+.
+.IP "\(bu" 4
+paired reads where read itself is unmapped but mate is mapped
+.
+.IP "\(bu" 4
+paired reads where mate is mapped to a different chromosome
+.
+.IP "\(bu" 4
+the same as previous but mapping quality is not less than 5
+.
+.IP "" 0
+.
+.SH "OPTIONS"
+.
+.TP
+\fB\-t\fR, \fB\-\-nthreads\fR=\fINTHREADS\fR
+Specify number of threads to use for BAM decompression
+.
+.TP
+\fB\-p\fR, \fB\-\-show\-progress\fR
+Show progressbar in STDERR
+
diff --git a/man/sambamba-flagstat.1.ronn b/man/sambamba-flagstat.1.ronn
new file mode 100644
index 0000000..12c6756
--- /dev/null
+++ b/man/sambamba-flagstat.1.ronn
@@ -0,0 +1,34 @@
+sambamba-flagstat(1) -- getting flag statistics from BAM file
+=============================================================
+
+## SYNOPSIS
+
+`sambamba flagstat` [OPTIONS] <input.bam>
+
+## DESCRIPTION
+
+Outputs some statistics drawn from read flags.
+
+First line contains numbers of QC-passed and QC-failed reads.
+Then come pairs of numbers, the former for QC-passed reads, the latter for
+QC-failed ones:
+
+* duplicates
+* mapped reads (plus percentage relative to the numbers from the first line)
+* reads with 'is_paired' flag set
+* paired reads which are first mates
+* paired reads which are second mates
+* paired reads with 'proper_pair' flag set (plus percentage relative to
+  the numbers of QC-passed/failed reads with 'is_paired' flag set)
+* paired reads where both mates are mapped
+* paired reads where read itself is unmapped but mate is mapped
+* paired reads where mate is mapped to a different chromosome
+* the same as previous but mapping quality is not less than 5
+
+## OPTIONS
+
+  * `-t`, `--nthreads`=<NTHREADS>:
+     Specify number of threads to use for BAM decompression
+
+  * `-p`, `--show-progress`:
+     Show progressbar in STDERR
diff --git a/man/sambamba-index.1 b/man/sambamba-index.1
new file mode 100644
index 0000000..9918c9a
--- /dev/null
+++ b/man/sambamba-index.1
@@ -0,0 +1,53 @@
+.\" generated with Ronn/v0.7.3
+.\" http://github.com/rtomayko/ronn/tree/0.7.3
+.
+.TH "SAMBAMBA\-INDEX" "1" "February 2015" "" ""
+.
+.SH "NAME"
+\fBsambamba\-index\fR \- tool for building standard index files for BAM data
+.
+.SH "SYNOPSIS"
+\fBsambamba index\fR [\fB\-p\fR|\fB\-\-show\-progress\fR] [\fB\-n\fR|\fB\-\-threads\fR=NTHREADS] <input\.bam> [<output\.bai>]
+.
+.SH "DESCRIPTION"
+\fBsambamba index\fR builds an index for a sorted by coordinate BAM file\. This step is required for effective region querying in most tools for working with BAM data\.
+.
+.P
+An index is by default written to the file with the same filename except \fB\.bai\fR extension added to the end\. The user can, however, override this default by providing desired output filename explicitly as an optional command\-line argument\.
+.
+.SH "OPTIONS"
+.
+.TP
+\fB\-p\fR, \fB\-\-show\-progress\fR
+Show a wget\-like progressbar in STDERR\.
+.
+.TP
+\fB\-t\fR, \fB\-\-nthreads\fR=\fINTHREADS\fR
+Number of threads to use\.
+.
+.SH "EXAMPLES"
+Build index file example\.bam\.bai given a sorted BAM file example\.bam:
+.
+.IP "" 4
+.
+.nf
+
+$ sambamba index example\.bam
+.
+.fi
+.
+.IP "" 0
+.
+.P
+Build index file at custom location showing progress:
+.
+.IP "" 4
+.
+.nf
+
+$ sambamba index \-\-show\-progress example\.bam /tmp/example\.bam\.bai
+.
+.fi
+.
+.IP "" 0
+For more information on the original samtools INDEX behaviour, check out the [samtools documentation](http://samtools\.sourceforge\.net/samtools\.shtml
diff --git a/man/sambamba-index.1.ronn b/man/sambamba-index.1.ronn
new file mode 100644
index 0000000..625d09b
--- /dev/null
+++ b/man/sambamba-index.1.ronn
@@ -0,0 +1,41 @@
+sambamba-index(1) -- tool for building standard index files for BAM data
+========================================================================
+
+## SYNOPSIS
+
+`sambamba index` [`-p`|`--show-progress`] [`-n`|`--threads`=NTHREADS] <input.bam> [<output.bai>]
+
+## DESCRIPTION
+
+`sambamba index` builds an index for a sorted by coordinate BAM file.
+This step is required for effective region querying in most tools for working
+with BAM data.
+
+An index is by default written to the file with the same filename except 
+`.bai` extension added to the end. The user can, however, override this default
+by providing desired output filename explicitly as an optional command-line 
+argument.
+
+## OPTIONS
+
+  * `-p`, `--show-progress`:
+    Show a wget-like progressbar in STDERR.
+
+  * `-t`, `--nthreads`=<NTHREADS>:
+    Number of threads to use.
+
+## EXAMPLES
+
+Build index file example.bam.bai given a sorted BAM file example.bam:
+
+    $ sambamba index example.bam
+
+Build index file at custom location showing progress:
+
+    $ sambamba index --show-progress example.bam /tmp/example.bam.bai
+
+# SEE ALSO
+
+For more information on the original samtools INDEX behaviour, check
+out the [samtools documentation](http://samtools.sourceforge.net/samtools.shtml
+
diff --git a/man/sambamba-markdup.1 b/man/sambamba-markdup.1
new file mode 100644
index 0000000..c6bff1c
--- /dev/null
+++ b/man/sambamba-markdup.1
@@ -0,0 +1,53 @@
+.\" generated with Ronn/v0.7.3
+.\" http://github.com/rtomayko/ronn/tree/0.7.3
+.
+.TH "SAMBAMBA\-MARKDUP" "1" "February 2015" "" ""
+.
+.SH "NAME"
+\fBsambamba\-markdup\fR \- finding duplicate reads in BAM file
+.
+.SH "SYNOPSIS"
+\fBsambamba markdup\fR \fIOPTIONS\fR <input\.bam> <output\.bam>
+.
+.SH "DESCRIPTION"
+Marks (by default) or removes duplicate reads\. For determining whether a read is a duplicate or not, the same `sum of base qualities\' method is used as in Picard \fIhttps://broadinstitute\.github\.io/picard/picard\-metric\-definitions\.html\fR\.
+.
+.SH "OPTIONS"
+.
+.TP
+\fB\-r\fR, \fB\-\-remove\-duplicates\fR
+remove duplicates instead of just marking them
+.
+.TP
+\fB\-t\fR, \fB\-\-nthreads\fR=\fINTHREADS\fR
+number of threads to use
+.
+.TP
+\fB\-l\fR, \fB\-\-compression\-level\fR=\fIN\fR
+specify compression level of the resulting file (from 0 to 9)");
+.
+.TP
+\fB\-p\fR, \fB\-\-show\-progress\fR
+show progressbar in STDERR
+.
+.TP
+\fB\-\-tmpdir\fR=\fITMPDIR\fR
+specify directory for temporary files; default is \fB/tmp\fR
+.
+.TP
+\fB\-\-hash\-table\-size\fR=\fIHASHTABLESIZE\fR
+size of hash table for finding read pairs (default is 262144 reads); will be rounded down to the nearest power of two; should be \fB> (average coverage) * (insert size)\fR for good performance
+.
+.TP
+\fB\-\-overflow\-list\-size\fR=\fIOVERFLOWLISTSIZE\fR
+size of the overflow list where reads, thrown away from the hash table, get a second chance to meet their pairs (default is 200000 reads); increasing the size reduces the number of temporary files created
+.
+.TP
+\fB\-\-io\-buffer\-size\fR=\fIBUFFERSIZE\fR
+controls sizes of two buffers of BUFFERSIZE \fImegabytes\fR each, used for reading and writing BAM during the second pass (default is 128)
+.
+.SH "SEE ALSO"
+Picard \fIhttps://broadinstitute\.github\.io/picard/picard\-metric\-definitions\.html\fR metric definitions for removing duplicates\.
+.
+.SH "BUGS"
+External sort is not implemented\. Thus, memory consumption grows by 2Gb per each 100M reads\. Check that you have enough RAM before running the tool\.
diff --git a/man/sambamba-markdup.1.ronn b/man/sambamba-markdup.1.ronn
new file mode 100644
index 0000000..5c64e26
--- /dev/null
+++ b/man/sambamba-markdup.1.ronn
@@ -0,0 +1,56 @@
+sambamba-markdup(1) -- finding duplicate reads in BAM file
+=============================================================
+
+## SYNOPSIS
+
+`sambamba markdup` [OPTIONS] <input.bam> <output.bam>
+
+## DESCRIPTION
+
+Marks (by default) or removes duplicate reads. For determining
+whether a read is a duplicate or not, the same `sum of base qualities' method is
+used as in [Picard](https://broadinstitute.github.io/picard/picard-metric-definitions.html).
+
+## OPTIONS
+
+  * `-r`, `--remove-duplicates`:
+     remove duplicates instead of just marking them
+
+  * `-t`, `--nthreads`=<NTHREADS>:
+     number of threads to use
+
+  * `-l`, `--compression-level`=<N>:
+    specify compression level of the resulting file (from 0 to 9)");
+     
+  * `-p`, `--show-progress`:
+    show progressbar in STDERR
+
+  * `--tmpdir`=<TMPDIR>:
+    specify directory for temporary files; default is `/tmp`
+
+  * `--hash-table-size`=<HASHTABLESIZE>:
+    size of hash table for finding read pairs (default is 262144 reads);
+    will be rounded down to the nearest power of two;
+    should be `> (average coverage) * (insert size)` for good performance
+
+  * `--overflow-list-size`=<OVERFLOWLISTSIZE>:
+    size of the overflow list where reads, thrown away from the hash table,
+    get a second chance to meet their pairs (default is 200000 reads);
+    increasing the size reduces the number of temporary files created
+
+  * `--io-buffer-size`=<BUFFERSIZE>:
+    controls sizes of two buffers of BUFFERSIZE *megabytes* each, used
+    for reading and writing BAM during the second pass (default is 128)
+
+## SEE ALSO
+
+[Picard](https://broadinstitute.github.io/picard/picard-metric-definitions.html) metric
+definitions for removing duplicates.
+
+
+## BUGS
+
+  External sort is not implemented.
+  Thus, memory consumption grows by 2Gb per each 100M reads.
+  Check that you have enough RAM before running the tool.
+
diff --git a/man/sambamba-merge.1 b/man/sambamba-merge.1
new file mode 100644
index 0000000..39e793d
--- /dev/null
+++ b/man/sambamba-merge.1
@@ -0,0 +1,35 @@
+.\" generated with Ronn/v0.7.3
+.\" http://github.com/rtomayko/ronn/tree/0.7.3
+.
+.TH "SAMBAMBA\-MERGE" "1" "February 2015" "" ""
+.
+.SH "NAME"
+\fBsambamba\-merge\fR \- tool for merging several BAM files into one
+.
+.SH "SYNOPSIS"
+\fBsambamba merge\fR \fIOPTIONS\fR <output\.bam> <input1\.bam> <input2\.bam> [\.\.\.]
+.
+.SH "DESCRIPTION"
+\fBsambamba merge\fR is used for merging several sorted BAM files into one\. The sorting order of all the files must be the same, and it is maintained in the output file\.
+.
+.P
+SAM headers are merged automatically like in Picard merging tool\.
+.
+.SH "OPTIONS"
+.
+.TP
+\fB\-t\fR, \fB\-\-nthreads\fR=\fINTHREADS\fR
+Specify number of threads to use for compression/decompression tasks\.
+.
+.TP
+\fB\-l\fR, \fB\-\-compression\-level\fR=\fICOMPRESSION_LEVEL\fR
+Specify compression level of output file as a number from 0 to 9
+.
+.TP
+\fB\-H\fR, \fB\-\-header\fR
+Output only merged header to stdout in SAM format (e\.g\. for debugging purposes)\. Other options are ignored\.
+.
+.TP
+\fB\-p\fR, \fB\-\-show\-progress\fR
+Show progressbar in STDERR\.
+For more information on the original samtools MERGE behaviour, check out the [samtools documentation](http://samtools\.sourceforge\.net/samtools\.shtml
diff --git a/man/sambamba-merge.1.ronn b/man/sambamba-merge.1.ronn
new file mode 100644
index 0000000..1978ee1
--- /dev/null
+++ b/man/sambamba-merge.1.ronn
@@ -0,0 +1,34 @@
+sambamba-merge(1) -- tool for merging several BAM files into one
+================================================================
+
+## SYNOPSIS
+
+`sambamba merge` [OPTIONS] <output.bam> <input1.bam> <input2.bam> [...]
+
+## DESCRIPTION
+
+`sambamba merge` is used for merging several sorted BAM files into one.
+The sorting order of all the files must be the same, and it is maintained in the output file.
+
+SAM headers are merged automatically like in Picard merging tool. 
+
+## OPTIONS
+
+  * `-t`, `--nthreads`=<NTHREADS>:
+    Specify number of threads to use for compression/decompression tasks.
+
+  * `-l`, `--compression-level`=<COMPRESSION_LEVEL>:
+    Specify compression level of output file as a number from 0 to 9
+
+  * `-H`, `--header`:
+    Output only merged header to stdout in SAM format (e.g. for debugging purposes).
+    Other options are ignored.
+
+  * `-p`, `--show-progress`:
+    Show progressbar in STDERR.
+
+# SEE ALSO
+
+For more information on the original samtools MERGE behaviour, check
+out the [samtools documentation](http://samtools.sourceforge.net/samtools.shtml
+
diff --git a/man/sambamba-pileup.1 b/man/sambamba-pileup.1
new file mode 100644
index 0000000..1ee6c1f
--- /dev/null
+++ b/man/sambamba-pileup.1
@@ -0,0 +1,60 @@
+.\" generated with Ronn/v0.7.3
+.\" http://github.com/rtomayko/ronn/tree/0.7.3
+.
+.TH "SAMBAMBA\-MILEUP" "1" "January 2015" "" ""
+.
+.SH "NAME"
+\fBsambamba\-mileup\fR \- make a pileup
+.
+.SH "SYNOPSIS"
+\fBsambamba mpileup\fR \fIOPTIONS\fR <input1\.bam> <input2\.bam> [\.\.\.] [\-\-samtools \fIsamtools mpileup args\fR] [\-\-bcftools \fIbcftools args\fR]
+.
+.SH "DESCRIPTION"
+Parallel version of samtools mpileup in map\-reduce fashion\. Sambamba splits input BAM files into chunks and feeds them to samtools mpileup and, optionally, bcftools in parallel\. The chunks are slightly overlapping so that variant calling should not be impacted by these manipulations\. The obtained results from the multiple processes are combined as ordered output\. Named pipes are created in TMPDIR\.
+.
+.P
+Sambamba mpileup relies on external tools and acts as a multi\-core implementation of samtools + bcftools\. Therefore, the following tools should be present in the PATH:
+.
+.IP "" 4
+.
+.nf
+
+* samtools
+* bcftools (when used)
+.
+.fi
+.
+.IP "" 0
+.
+.IP "\(bu" 4
+If \-\-samtools is skipped, samtools mpileup is called with default arguments \'samtools\'
+.
+.IP "\(bu" 4
+If \-\-bcftools is used without parameters, samtools is called with switch \'\-gu\' and bcftools is called as \'bcftools view \-Ov\'
+.
+.IP "\(bu" 4
+If \-\-bcftools is skipped, bcftools is not called
+.
+.IP "" 0
+.
+.SH "OPTIONS"
+.
+.IP "\(bu" 4
+\fB\-F\fR, \fB\-\-filter=FILTER\fR set custom filter for alignments
+.
+.IP "\(bu" 4
+\fB\-L\fR, \fB\-\-regions=FILENAME\fR provide BED file with regions (no need to duplicate it in samtools args); all input files must be indexed
+.
+.IP "\(bu" 4
+\fB\-o\fR, \fB\-\-output\-filename=<STDOUT>\fR specify output filename
+.
+.IP "\(bu" 4
+\fB\-t\fR, \fB\-\-nthreads=NTHREADS\fR maximum number of threads to use
+.
+.IP "\(bu" 4
+\fB\-b\fR, \fB\-\-buffer\-size=4_000_000\fR chunk size (in bytes)
+.
+.IP "" 0
+.
+.SH "BUGS"
+
diff --git a/man/sambamba-pileup.1.ronn b/man/sambamba-pileup.1.ronn
new file mode 100644
index 0000000..3ce5832
--- /dev/null
+++ b/man/sambamba-pileup.1.ronn
@@ -0,0 +1,53 @@
+sambamba-mileup(1) -- make a pileup
+=============================================================
+
+## SYNOPSIS
+
+`sambamba mpileup` [OPTIONS] <input1.bam> <input2.bam> [...]
+                   [--samtools <samtools mpileup args>]
+                   [--bcftools <bcftools args>]
+
+
+
+## DESCRIPTION
+
+Parallel version of samtools mpileup in map-reduce fashion.  Sambamba
+splits input BAM files into chunks and feeds them to samtools mpileup
+and, optionally, bcftools in parallel.  The chunks are slightly
+overlapping so that variant calling should not be impacted by these
+manipulations. The obtained results from the multiple processes are
+combined as ordered output. Named pipes are created in TMPDIR.
+
+Sambamba mpileup relies on external tools and acts as a multi-core
+implementation of samtools + bcftools. Therefore, the following tools
+should be present in the PATH:
+
+    * samtools
+    * bcftools (when used)
+
+
+* If --samtools is skipped, samtools mpileup is called with default arguments 'samtools'
+* If --bcftools is used without parameters, samtools is called with switch '-gu' and bcftools is called as 'bcftools view -Ov'
+* If --bcftools is skipped, bcftools is not called
+
+## OPTIONS
+
+  * `-F`, `--filter=FILTER`
+    set custom filter for alignments
+    
+  * `-L`, `--regions=FILENAME`
+    provide BED file with regions
+    (no need to duplicate it in samtools args);
+    all input files must be indexed
+		    
+  * `-o`, `--output-filename=<STDOUT>`
+    specify output filename
+  	    
+  * `-t`, `--nthreads=NTHREADS`
+    maximum number of threads to use
+  	    
+  * `-b`, `--buffer-size=4_000_000`
+    chunk size (in bytes)
+
+## BUGS
+
diff --git a/man/sambamba-slice.1 b/man/sambamba-slice.1
new file mode 100644
index 0000000..654efcf
--- /dev/null
+++ b/man/sambamba-slice.1
@@ -0,0 +1,23 @@
+.\" generated with Ronn/v0.7.3
+.\" http://github.com/rtomayko/ronn/tree/0.7.3
+.
+.TH "SAMBAMBA\-SLICE" "1" "August 2014" "" ""
+.
+.SH "NAME"
+\fBsambamba\-slice\fR \- copying a slice of BAM file
+.
+.SH "SYNOPSIS"
+\fBsambamba slice\fR \fIOPTIONS\fR <input\.bam> \fIregion\fR
+.
+.SH "DESCRIPTION"
+Outputs reads overlapping specified region into new BAM file\. (Default destination is STDOUT\.) Input file must be coordinate\-sorted and indexed\.
+.
+.P
+While the same can be done with \fIsambamba\-view\fR, that would be much slower due to a lot of compression/decompression work\. Instead of naive method, \fIsambamba\-slice\fR leverages knowledge about structure of BAM file and recompresses only a few BGZF blocks at the beginning and the end of the region, while the BGZF blocks in the middle are copied as is\. As such, this tool doesn\'t offer any options related to number of threads or compression level \- most of the time is spent on I [...]
+.
+.SH "OPTIONS"
+.
+.TP
+\fB\-o\fR, \fB\-\-output\-filename\fR=\fIOUTPUTFILE\fR
+Name of output file
+
diff --git a/man/sambamba-slice.1.ronn b/man/sambamba-slice.1.ronn
new file mode 100644
index 0000000..59f8692
--- /dev/null
+++ b/man/sambamba-slice.1.ronn
@@ -0,0 +1,26 @@
+sambamba-slice(1) -- copying a slice of BAM file
+=============================================================
+
+## SYNOPSIS
+
+`sambamba slice` [OPTIONS] <input.bam> <region>
+
+## DESCRIPTION
+
+Outputs reads overlapping specified region into new BAM file.
+(Default destination is STDOUT.)
+Input file must be coordinate-sorted and indexed.
+
+While the same can be done with *sambamba-view*, that would be
+much slower due to a lot of compression/decompression work.
+Instead of naive method, *sambamba-slice* leverages knowledge
+about structure of BAM file and recompresses only a few BGZF
+blocks at the beginning and the end of the region, while the
+BGZF blocks in the middle are copied as is. As such, this tool
+doesn't offer any options related to number of threads or
+compression level - most of the time is spent on I/O operations.
+
+## OPTIONS
+
+  * `-o`, `--output-filename`=<OUTPUTFILE>:
+      Name of output file
diff --git a/man/sambamba-sort.1 b/man/sambamba-sort.1
new file mode 100644
index 0000000..937ece4
--- /dev/null
+++ b/man/sambamba-sort.1
@@ -0,0 +1,68 @@
+.\" generated with Ronn/v0.7.3
+.\" http://github.com/rtomayko/ronn/tree/0.7.3
+.
+.TH "SAMBAMBA\-SORT" "1" "February 2015" "" ""
+.
+.SH "NAME"
+\fBsambamba\-sort\fR \- tool for sorting BAM files
+.
+.SH "SYNOPSIS"
+\fBsambamba sort\fR \fIOPTIONS\fR <input\.bam>
+.
+.SH "DESCRIPTION"
+BAM files can have either \'coordinate\' sort order, or \'qname\' one\.
+.
+.P
+The first one means to sort the file by (integer) reference ID, and for each reference sort corresponding reads by start coordinate\.
+.
+.P
+\'qname\' sorting order is when reads are sorted lexicographically by their names\.
+.
+.P
+\fBsambamba sort\fR does an external \fBstable\fR\-type sort on input file\. That means it reads the source BAM file in chunks that fit into memory, sorts them and writes to a temporary directory, and then merges them\. After merging temporary files are removed automatically\.
+.
+.P
+Both sorting orders are supported\. Default one is \'coordinate\' because this is the one used for building index later\. In order to switch to \'qname\' sorting order, use \fB\-n\fR|\fB\-\-sort\-by\-name\fR flag\.
+.
+.SH "OPTIONS"
+.
+.TP
+\fB\-m\fR, \fB\-\-memory\-limit\fR=\fILIMIT\fR
+Sets an upper bound for used memory\. However, this is very approximate\. Default memory limit is 512MiB\. Increasing it will allow to make chunk sizes larger and also reduce amount of I/O seeks thus improving the overall performance\.
+.
+.IP
+\fILIMIT\fR must be a number with an optional suffix specyfying unit of measumerent\. The following endings are recognized: K, KiB, KB, M, MiB, MB, G, GiB, GB\.
+.
+.TP
+\fB\-\-tmpdir\fR=\fITMPDIR\fR
+Use \fITMPDIR\fR to output sorted chunks\. Default behaviour is to use system temporary directory\.
+.
+.TP
+\fB\-o\fR, \fB\-\-out\fR=\fIOUTPUTFILE\fR
+Output file name\. If not provided, the result is written to a file with \.sorted\.bam extension\.
+.
+.TP
+\fB\-n\fR, \fB\-\-sort\-by\-name\fR
+Sort by read name instead of doing coordinate sort\.
+.
+.TP
+\fB\-l\fR, \fB\-\-compression\-level\fR=\fICOMPRESSION_LEVEL\fR
+Compression level to use for \fIsorted\fR BAM, from 0 (known as uncompressed BAM in samtools) to 9\.
+.
+.TP
+\fB\-u\fR, \fB\-\-uncompressed\-chunks\fR
+Write sorted chunks as uncompressed BAM\. Default behaviour is to write them with compression level 1, because that reduces time spent on I/O, but in some cases using this option can give you a better speed\. Note, however, that the disk space needed for sorting will typically be 3\-4 times more than without enabling this option\.
+.
+.TP
+\fB\-p\fR, \fB\-\-show\-progress\fR
+Show wget\-like progressbar in STDERR (in fact, two of them one after another, first one for sorting, and then another one for merging)\.
+.
+.TP
+\fB\-t\fR, \fB\-\-nthreads\fR=\fINTHREADS\fR
+Number of threads to use\.
+.
+.SH "SEE ALSO"
+For more information on the original samtools SORT behaviour, check out the samtools documentation \fIhttp://samtools\.sourceforge\.net/samtools\.shtml\fR\.
+.
+.SH "BUGS"
+At the moment, the memory is used quite ineffectively for really large files\.
diff --git a/man/sambamba-sort.1.ronn b/man/sambamba-sort.1.ronn
new file mode 100644
index 0000000..a4646bb
--- /dev/null
+++ b/man/sambamba-sort.1.ronn
@@ -0,0 +1,72 @@
+sambamba-sort(1) -- tool for sorting BAM files
+==============================================
+
+## SYNOPSIS
+
+`sambamba sort` [OPTIONS] <input.bam>
+
+## DESCRIPTION
+
+BAM files can have either 'coordinate' sort order, or 'qname' one.
+
+The first one means to sort the file by (integer) reference ID, and
+for each reference sort corresponding reads by start coordinate.
+
+'qname' sorting order is when reads are sorted lexicographically by
+their names.
+
+`sambamba sort` does an external `stable`-type sort on input file. That means it
+reads the source BAM file in chunks that fit into memory, sorts them
+and writes to a temporary directory, and then merges them. After merging
+temporary files are removed automatically.
+
+Both sorting orders are supported. Default one is 'coordinate' 
+because this is the one used for building index later. In order to
+switch to 'qname' sorting order, use `-n`|`--sort-by-name` flag.
+
+## OPTIONS
+
+  * `-m`, `--memory-limit`=<LIMIT>:
+    Sets an upper bound for used memory. However, this is very approximate.
+    Default memory limit is 512MiB. Increasing it will allow to make chunk
+    sizes larger and also reduce amount of I/O seeks thus improving the overall
+    performance.
+
+    <LIMIT> must be a number with an optional suffix specyfying unit of measumerent.
+    The following endings are recognized: K, KiB, KB, M, MiB, MB, G, GiB, GB.
+
+  * `--tmpdir`=<TMPDIR>:
+    Use <TMPDIR> to output sorted chunks. Default behaviour is to use system
+    temporary directory.
+
+  * `-o`, `--out`=<OUTPUTFILE>:
+    Output file name. If not provided, the result is written to a file with .sorted.bam extension.
+
+  * `-n`, `--sort-by-name`:
+    Sort by read name instead of doing coordinate sort.
+
+  * `-l`, `--compression-level`=<COMPRESSION_LEVEL>:
+    Compression level to use for *sorted* BAM, from 0 (known as uncompressed BAM in samtools) to 9.
+
+  * `-u`, `--uncompressed-chunks`:
+    Write sorted chunks as uncompressed BAM. 
+    Default behaviour is to write them with compression level 1, because that reduces time spent on I/O,
+    but in some cases using this option can give you a better speed. Note, however, that the disk space
+    needed for sorting will typically be 3-4 times more than without enabling this option.
+    
+  * `-p`, `--show-progress`:
+    Show wget-like progressbar in STDERR (in fact, two of them one after another, first one for sorting,
+    and then another one for merging).
+
+  * `-t`, `--nthreads`=<NTHREADS>:
+    Number of threads to use.
+
+## SEE ALSO
+
+For more information on the original samtools SORT behaviour, check
+out the [samtools documentation](http://samtools.sourceforge.net/samtools.shtml).
+
+## BUGS
+
+At the moment, the memory is used quite ineffectively for really large files.
+
diff --git a/man/sambamba-view.1 b/man/sambamba-view.1
new file mode 100644
index 0000000..28f8d49
--- /dev/null
+++ b/man/sambamba-view.1
@@ -0,0 +1,174 @@
+.\" generated with Ronn/v0.7.3
+.\" http://github.com/rtomayko/ronn/tree/0.7.3
+.
+.TH "SAMBAMBA\-VIEW" "1" "June 2016" "" ""
+.
+.SH "NAME"
+\fBsambamba\-view\fR \- tool for extracting information from SAM/BAM/CRAM files
+.
+.SH "SYNOPSIS"
+\fBsambamba view\fR \fIOPTIONS\fR <input\.bam | input\.sam | input\.cram> [region1 [\.\.\.]]
+.
+.SH "DESCRIPTION"
+\fBsambamba view\fR allows to efficiently filter SAM/BAM/CRAM files for alignments satisfying various conditions, as well as access its SAM header and information about reference sequences\. In order to make these data readily available for consumption by scripts in Perl/Python/Ruby, JSON output is provided\.
+.
+.P
+By default, the tool expects BAM file as an input\. In order to work with CRAM, specify \-C and for SAM, specify \fB\-S\fR|\fB\-\-sam\-input\fR as a command\-line option, the tool does NOT try to guess file format from the extension\. Beware that when reading SAM, the tool will skip tags which don\'t conform to the SAM/BAM specification, and set invalid fields to their default values\.
+.
+.SH "FILTERING"
+Filtering is presented in two ways\. First, you can specify a condition with \fB\-F\fR option, using a special language for filtering, described at
+.
+.P
+https://github\.com/lomereiter/sambamba/wiki/%5Bsambamba\-view%5D\-Filter\-expression\-syntax
+.
+.P
+Second, if you have an indexed BAM file, several regions can be specified as well\. The syntax for regions is the same as in samtools: \fIchr\fR:\fIbeg\fR\-\fIend\fR where \fIbeg\fR and \fIend\fR are 1\-based start and end of a closed\-end interval on the reference \fIchr\fR\.
+.
+.SH "JSON"
+Alignment record JSON representation is a hash with keys \'qname\', \'flag\', \'rname\', \'pos\', \'mapq\', \'cigar\', \'rnext\', \'qual\', \'tags\', e\.g\.
+.
+.P
+{"qname":"EAS56_57:6:190:289:82","flag":69,"rname":"chr1","pos":100,
+.
+.br
+"mapq":0,"cigar":"*","rnext":"=","pnext":100,"tlen":0,
+.
+.br
+"seq":"CTCAAGGTTGTTGCAAGGGGGTCTATGTGAACAAA",
+.
+.br
+"qual":[27,27,27,22,27,27,27,26,27,27,27,27,27,27,27,27,23,26,26,27,
+.
+.br
+22,26,19,27,26,27,26,26,26,26,26,24,19,27,26],"tags":{"MF":192}}
+.
+.P
+JSON representation mimics SAM format except quality is given as an array of integers\.
+.
+.P
+Postprocessing JSON output is best accomplished with https://stedolan\.github\.io/jq/
+.
+.P
+The output is one line per read, for building a proper JSON array pipe the output into \fBjq \-\-slurp\fR\.
+.
+.SH "OPTIONS"
+.
+.TP
+\fB\-F\fR, \fB\-\-filter\fR=\fIFILTER\fR
+Set custom filter for alignments\.
+.
+.TP
+\fB\-f\fR, \fB\-\-format\fR=\fIFORMAT\fR
+Specify output format\. \fIFORMAT\fR must be one of sam, bam, cram, or json (in lowercase)\. Default is SAM\.
+.
+.TP
+\fB\-h\fR, \fB\-\-with\-header\fR
+Print SAM header before reads\. This is always done for BAM output\.
+.
+.TP
+\fB\-H\fR, \fB\-\-header\fR
+Print only SAM header to STDOUT\. If \fIFORMAT\fR is sam or bam, its text version is printed, otherwise JSON object is written\.
+.
+.TP
+\fB\-I\fR, \fB\-\-reference\-info\fR
+Output to STDOUT reference sequence names and lengths in JSON (see \fIEXAMPLES\fR)\.
+.
+.TP
+\fB\-L\fR, \fB\-\-regions\fR=\fIBEDFILE\fR
+Intersect a file with regions specified in the BED file\.
+.
+.TP
+\fB\-c\fR, \fB\-\-count\fR
+Output to STDOUT only the number of matching records, \-hHI options are ignored\.
+.
+.TP
+\fB\-v\fR, \fB\-\-valid\fR
+Output only valid reads\.
+.
+.TP
+\fB\-S\fR, \fB\-\-sam\-input\fR
+Specify that the input is SAM file (default is BAM for all operations)\.
+.
+.TP
+\fB\-C\fR, \fB\-\-cram\-input\fR
+Specify that input is in CRAM format
+.
+.TP
+\fB\-p\fR, \fB\-\-show\-progress\fR
+Show progressbar in STDERR\. Works only for BAM files, and with no regions specified, i\.e\. only when reading full file\.
+.
+.TP
+\fB\-l\fR, \fB\-\-compression\-level\fR=\fICOMPRESSION_LEVEL\fR
+Set compression level for BAM output, a number from 0 to 9\.
+.
+.TP
+\fB\-o\fR, \fB\-\-output\-filename\fR=\fIFILENAME\fR
+Specify output filename (by default everything is written to STDOUT)\.
+.
+.TP
+\fB\-t\fR, \fB\-\-nthreads\fR=\fINTHREADS\fR
+Number of threads to use\.
+.
+.SH "EXAMPLES"
+Print basic reference sequence information:
+.
+.IP "" 4
+.
+.nf
+
+ $ sambamba view \-\-reference\-info ex1_header\.bam
+ [{"name":"chr1","length":1575},{"name":"chr2","length":1584}]
+.
+.fi
+.
+.IP "" 0
+.
+.P
+Count reads with mapping quality not less than 50:
+.
+.IP "" 4
+.
+.nf
+
+ $ sambamba view \-c \-F "mapping_quality >= 50" ex1_header\.bam
+ 3124
+.
+.fi
+.
+.IP "" 0
+.
+.P
+Count properly paired reads overlapping 100\.\.200 on chr1:
+.
+.IP "" 4
+.
+.nf
+
+ $ sambamba view \-c \-F "proper_pair" ex1_header\.bam chr1:100\-200
+ 39
+.
+.fi
+.
+.IP "" 0
+.
+.P
+Output header in JSON format:
+.
+.IP "" 4
+.
+.nf
+
+ $ sambamba view \-\-header \-\-format=json ex1_header\.bam
+ {"format_version":"1\.3","rg_lines":[],
+  "sq_lines":[{"sequence_length":1575,"species":"","uri":"",
+  "sequence_name":"chr1","assembly":"","md5":""},
+  {"sequence_length":1584,"species":"","uri":"",
+  "sequence_name":"chr2","assembly":"","md5":""}],
+  "sorting_order":"coordinate","pg_lines":[]}
+.
+.fi
+.
+.IP "" 0
+.
+.SH "SEE ALSO"
+For more information on the original samtools VIEW behaviour, check out the samtools documentation \fIhttp://samtools\.sourceforge\.net/samtools\.shtml\fR\.
diff --git a/man/sambamba-view.1.ronn b/man/sambamba-view.1.ronn
new file mode 100644
index 0000000..cb1d357
--- /dev/null
+++ b/man/sambamba-view.1.ronn
@@ -0,0 +1,128 @@
+sambamba-view(1) -- tool for extracting information from SAM/BAM/CRAM files
+======================================================================
+
+## SYNOPSIS
+
+`sambamba view` [OPTIONS] <input.bam | input.sam | input.cram> [region1 [...]]
+
+## DESCRIPTION
+
+`sambamba view` allows to efficiently filter SAM/BAM/CRAM files for
+alignments satisfying various conditions, as well as access its SAM
+header and information about reference sequences. In order to make
+these data readily available for consumption by scripts in
+Perl/Python/Ruby, JSON output is provided.
+
+By default, the tool expects BAM file as an input.  In order to work
+with CRAM, specify -C and for SAM, specify `-S`|`--sam-input` as a
+command-line option, the tool does NOT try to guess file format from
+the extension.  Beware that when reading SAM, the tool will skip tags
+which don't conform to the SAM/BAM specification, and set invalid
+fields to their default values.
+
+## FILTERING
+
+Filtering is presented in two ways. First, you can specify a condition
+with `-F` option, using a special language for filtering, described at
+
+https://github.com/lomereiter/sambamba/wiki/%5Bsambamba-view%5D-Filter-expression-syntax
+
+Second, if you have an indexed BAM file, several regions can be specified as well.
+The syntax for regions is the same as in samtools: <chr>:<beg>-<end> where <beg> and <end>
+are 1-based start and end of a closed-end interval on the reference <chr>.
+
+## JSON
+
+Alignment record JSON representation is a hash with keys 'qname', 'flag', 'rname', 'pos', 'mapq',
+'cigar', 'rnext', 'qual', 'tags', e.g.
+
+{"qname":"EAS56_57:6:190:289:82","flag":69,"rname":"chr1","pos":100,  
+ "mapq":0,"cigar":"*","rnext":"=","pnext":100,"tlen":0,  
+ "seq":"CTCAAGGTTGTTGCAAGGGGGTCTATGTGAACAAA",  
+ "qual":[27,27,27,22,27,27,27,26,27,27,27,27,27,27,27,27,23,26,26,27,  
+ 22,26,19,27,26,27,26,26,26,26,26,24,19,27,26],"tags":{"MF":192}}
+
+JSON representation mimics SAM format except quality is given as an array of integers.
+
+Postprocessing JSON output is best accomplished with https://stedolan.github.io/jq/
+
+The output is one line per read, for building a proper JSON array pipe the output into `jq --slurp`.
+
+## OPTIONS
+
+  * `-F`, `--filter`=<FILTER>:
+    Set custom filter for alignments.
+
+  * `-f`, `--format`=<FORMAT>:
+    Specify output format. <FORMAT> must be one of sam, bam, cram, or json (in lowercase).
+    Default is SAM.
+
+  * `-h`, `--with-header`:
+    Print SAM header before reads. This is always done for BAM output.
+
+  * `-H`, `--header`:
+    Print only SAM header to STDOUT. If <FORMAT> is sam or bam, its text version is
+    printed, otherwise JSON object is written.
+
+  * `-I`, `--reference-info`:
+    Output to STDOUT reference sequence names and lengths in JSON (see [EXAMPLES][]).
+
+  * `-L`, `--regions`=<BEDFILE>:
+    Intersect a file with regions specified in the BED file.
+
+  * `-c`, `--count`:
+    Output to STDOUT only the number of matching records, -hHI options are ignored.
+
+  * `-v`, `--valid`:
+    Output only valid reads.
+
+  * `-S`, `--sam-input`:
+    Specify that the input is SAM file (default is BAM for all operations).
+
+  * `-C`, `--cram-input`:
+    Specify that input is in CRAM format
+
+  * `-p`, `--show-progress`:
+    Show progressbar in STDERR. Works only for BAM files, and with no regions
+    specified, i.e. only when reading full file.
+
+  * `-l`, `--compression-level`=<COMPRESSION_LEVEL>:
+    Set compression level for BAM output, a number from 0 to 9.
+
+  * `-o`, `--output-filename`=<FILENAME>:
+    Specify output filename (by default everything is written to STDOUT).
+
+  * `-t`, `--nthreads`=<NTHREADS>:
+    Number of threads to use.
+
+## EXAMPLES
+
+  Print basic reference sequence information:
+
+     $ sambamba view --reference-info ex1_header.bam
+     [{"name":"chr1","length":1575},{"name":"chr2","length":1584}]
+
+  Count reads with mapping quality not less than 50:
+
+     $ sambamba view -c -F "mapping_quality >= 50" ex1_header.bam
+     3124
+
+  Count properly paired reads overlapping 100..200 on chr1:
+     
+     $ sambamba view -c -F "proper_pair" ex1_header.bam chr1:100-200
+     39
+
+  Output header in JSON format:
+
+     $ sambamba view --header --format=json ex1_header.bam
+     {"format_version":"1.3","rg_lines":[],  
+      "sq_lines":[{"sequence_length":1575,"species":"","uri":"",  
+      "sequence_name":"chr1","assembly":"","md5":""},  
+      {"sequence_length":1584,"species":"","uri":"",  
+      "sequence_name":"chr2","assembly":"","md5":""}],  
+      "sorting_order":"coordinate","pg_lines":[]}
+
+## SEE ALSO
+
+For more information on the original samtools VIEW behaviour, check
+out the [samtools documentation](http://samtools.sourceforge.net/samtools.shtml).
diff --git a/man/sambamba.1 b/man/sambamba.1
new file mode 100644
index 0000000..063b2f1
--- /dev/null
+++ b/man/sambamba.1
@@ -0,0 +1,45 @@
+.\" generated with Ronn/v0.7.3
+.\" http://github.com/rtomayko/ronn/tree/0.7.3
+.
+.TH "SAMBAMBA" "1" "February 2015" "" ""
+.
+.SH "NAME"
+\fBsambamba\fR \- toolkit for working with SAM/BAM/CRAM files
+.
+.SH "SYNOPSIS"
+\fBsambamba\fR [subcommand] [arguments\.\.\.]
+.
+.SH "DESCRIPTION"
+\fBsambamba\fR unifies several independent tools in one executable:
+.
+.IP "\(bu" 4
+sambamba\-view(1)
+.
+.IP "\(bu" 4
+sambamba\-index(1)
+.
+.IP "\(bu" 4
+sambamba\-merge(1)
+.
+.IP "\(bu" 4
+sambamba\-sort(1)
+.
+.IP "\(bu" 4
+sambamba\-markdup(1)
+.
+.IP "\(bu" 4
+sambamba\-flagstat(1)
+.
+.IP "\(bu" 4
+sambamba\-slice(1)
+.
+.IP "\(bu" 4
+sambamba\-pileup(1)
+.
+.IP "" 0
+.
+.P
+Thus available subcommands are \fIview\fR, \fIindex\fR, \fImerge\fR, \fIsort\fR, \fImarkdup\fR, \fIflagstat\fR, \fIslice\fR, and \fImpileup\fR\. Their use is explained on the corresponding man pages\.
+.
+.P
+Note that sambamba uses all available cores by default\.
diff --git a/man/sambamba.1.ronn b/man/sambamba.1.ronn
new file mode 100644
index 0000000..05582e9
--- /dev/null
+++ b/man/sambamba.1.ronn
@@ -0,0 +1,24 @@
+sambamba(1) -- toolkit for working with SAM/BAM/CRAM files
+==========================================================
+
+## SYNOPSIS
+
+`sambamba` [subcommand] [arguments...]
+
+## DESCRIPTION
+
+`sambamba` unifies several independent tools in one executable:
+
+* sambamba-view(1)
+* sambamba-index(1)
+* sambamba-merge(1)
+* sambamba-sort(1)
+* sambamba-markdup(1)
+* sambamba-flagstat(1)
+* sambamba-slice(1)
+* sambamba-pileup(1)
+
+Thus available subcommands are *view*, *index*, *merge*, *sort*, *markdup*, 
+*flagstat*, *slice*, and *mpileup*. Their use is explained on the corresponding man pages.
+
+Note that sambamba uses all available cores by default.
\ No newline at end of file
diff --git a/randomize_bases.d b/randomize_bases.d
new file mode 100644
index 0000000..4c24db4
--- /dev/null
+++ b/randomize_bases.d
@@ -0,0 +1,22 @@
+import bio.bam.reader;
+import bio.bam.writer;
+import std.random;
+
+void main(string[] args) {
+  auto bam = new BamReader(args[1]);
+  auto w = new BamWriter(args[2]);
+  scope(exit) w.finish();
+
+  auto gen = Random(unpredictableSeed);
+
+  w.writeSamHeader(bam.header);
+  w.writeReferenceSequenceInfo(bam.reference_sequences);
+
+  foreach (r; bam.reads) {
+    auto new_seq = new ubyte[r.sequence.length];
+    foreach (ref x; new_seq)
+      x = "ACGT"[uniform(0, 4, gen)];
+    r.sequence = cast(string)new_seq;
+    w.writeRecord(r);
+  }
+}
diff --git a/sambamba-ldmd-debug.rsp b/sambamba-ldmd-debug.rsp
new file mode 100644
index 0000000..31e9f0a
--- /dev/null
+++ b/sambamba-ldmd-debug.rsp
@@ -0,0 +1 @@
+"-g" "-c" "-m64" "-noboundscheck" "-IBioD/" "-ofbuild/sambamba.o" "-odbuild" "-I." "main.d" "BioD/bio/bam/baifile.d" "sambamba/depth.d" "BioD/bio/core/utils/switchendianness.d" "sambamba/utils/common/readstorage.d" "BioD/bio/core/utils/tmpfile.d" "sambamba/utils/common/bed.d" "BioD/bio/bam/utils/samheadermerger.d" "thirdparty/mergesort.d" "BioD/bio/bam/readrange.d" "cram/exception.d" "sambamba/utils/view/headerserializer.d" "BioD/bio/bam/splitter.d" "cram/htslib.d" "BioD/bio/core/utils/r [...]
diff --git a/sambamba-ldmd-release.rsp b/sambamba-ldmd-release.rsp
new file mode 100644
index 0000000..8a2e180
--- /dev/null
+++ b/sambamba-ldmd-release.rsp
@@ -0,0 +1 @@
+"-O2" "-c" "-m64" "-noboundscheck" "-release" "-inline" "-IBioD/" "-ofbuild/sambamba.o" "-odbuild" "-I." "main.d" "BioD/bio/bam/baifile.d" "sambamba/depth.d" "BioD/bio/core/utils/switchendianness.d" "sambamba/utils/common/readstorage.d" "BioD/bio/core/utils/tmpfile.d" "sambamba/utils/common/bed.d" "BioD/bio/bam/utils/samheadermerger.d" "thirdparty/mergesort.d" "BioD/bio/bam/readrange.d" "cram/exception.d" "sambamba/utils/view/headerserializer.d" "BioD/bio/bam/splitter.d" "cram/htslib.d"  [...]
diff --git a/sambamba/depth.d b/sambamba/depth.d
new file mode 100644
index 0000000..e6bd6d5
--- /dev/null
+++ b/sambamba/depth.d
@@ -0,0 +1,1241 @@
+/*
+    This file is part of Sambamba.
+    Copyright (C) 2012-2016    Artem Tarasov <lomereiter at gmail.com>
+
+    Sambamba 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; either version 2 of the License, or
+    (at your option) any later version.
+
+    Sambamba 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+module sambamba.depth;
+
+import bio.bam.reader;
+import bio.bam.pileup;
+import bio.bam.region;
+import bio.bam.multireader;
+import bio.core.base;
+import bio.core.region;
+import sambamba.utils.common.bed;
+import sambamba.utils.common.filtering;
+import sambamba.utils.common.intervaltree;
+
+import std.stdio;
+import std.exception;
+import std.ascii: isWhite;
+import std.range;
+import std.algorithm;
+import std.array;
+import std.getopt;
+import std.parallelism;
+import std.typecons;
+
+version(standalone) {
+    int main(string[] args) {
+        return depth_main(args);
+    }
+}
+
+alias uint pos_t;
+
+void printUsage() {
+    stderr.writeln("Usage: sambamba-depth region|window|base [options] input.bam  [input2.bam [...]]");
+    stderr.writeln();
+    stderr.writeln("          All BAM files must be coordinate-sorted and indexed.");
+    stderr.writeln();
+    stderr.writeln("          The tool has three modes: base, region, and window,");
+    stderr.writeln("          each name means per which unit to print the statistics.");
+    stderr.writeln();
+    stderr.writeln("Common options:");
+    stderr.writeln("         -F, --filter=FILTER");
+    stderr.writeln("                    set custom filter for alignments; the default value is");
+    stderr.writeln("                    'mapping_quality > 0 and not duplicate and not failed_quality_control'");
+    stderr.writeln("         -o, --output-file=FILENAME");
+    stderr.writeln("                    output filename (by default /dev/stdout)");
+    stderr.writeln("         -t, --nthreads=NTHREADS");
+    stderr.writeln("                    maximum number of threads to use");
+    stderr.writeln("         -c, --min-coverage=MINCOVERAGE");
+    stderr.writeln("                    minimum mean coverage for output (default: 0 for region/window, 1 for base)");
+    stderr.writeln("         -C, --max-coverage=MAXCOVERAGE");
+    stderr.writeln("                    maximum mean coverage for output");
+    stderr.writeln("         -q, --min-base-quality=QUAL");
+    stderr.writeln("                    don't count bases with lower base quality");
+    stderr.writeln("         --combined");
+    stderr.writeln("                    output combined statistics for all samples");
+    stderr.writeln("         -a, --annotate");
+    stderr.writeln("                    add additional column of y/n instead of");
+    stderr.writeln("                    skipping records not satisfying the criteria");
+    stderr.writeln("         -m, --fix-mate-overlaps");
+    stderr.writeln("                    detect overlaps of mate reads and handle them on per-base basis");
+    stderr.writeln("base subcommand options:");
+    stderr.writeln("         -L, --regions=FILENAME|REGION");
+    stderr.writeln("                    list or regions of interest or a single region in form chr:beg-end (optional)");
+    stderr.writeln("         -z, --report-zero-coverage (DEPRECATED, use --min-coverage=0 instead)");
+    stderr.writeln("                    don't skip zero coverage bases");
+    stderr.writeln("region subcommand options:");
+    stderr.writeln("         -L, --regions=FILENAME|REGION");
+    stderr.writeln("                    list or regions of interest or a single region in form chr:beg-end (required)");
+    stderr.writeln("         -T, --cov-threshold=COVTHRESHOLD");
+    stderr.writeln("                    multiple thresholds can be provided,");
+    stderr.writeln("                    for each one an extra column will be added,");
+    stderr.writeln("                    the percentage of bases in the region");
+    stderr.writeln("                    where coverage is more than this value");
+    stderr.writeln("window subcommand options:");
+    stderr.writeln("         -w, --window-size=WINDOWSIZE");
+    stderr.writeln("                    breadth of the window, in bp (required)");
+    stderr.writeln("         --overlap=OVERLAP");
+    stderr.writeln("                    overlap of successive windows, in bp (default is 0)");
+    stderr.writeln("         -T, --cov-threshold=COVTHRESHOLD");
+    stderr.writeln("                    same meaning as in 'region' subcommand");
+}
+
+enum Mode {
+    base,
+    region,
+    window
+}
+
+abstract class RegionStatsCollector {
+    void nextColumn(uint ref_id, pos_t position,
+                    scope void delegate(size_t id) updater);
+}
+
+class GeneralRegionStatsCollector : RegionStatsCollector {
+    private BamRegion[] bed_;
+
+    private {
+        // stores index of the region in initial array
+        alias size_t payload;
+        alias IntervalTree!(payload, uint) intervalTree;
+        alias IntervalTreeNode!(payload, uint) intervalTreeNode;
+        intervalTree[] trees_;
+    }
+
+    this(BamRegion[] bed) {
+        bed_ = bed;
+
+        if (bed.length == 0)
+            return;
+
+        size_t start_index = 0;
+        size_t end_index = start_index;
+
+        intervalTreeNode[][int] intervals;
+        foreach (i, line; bed) {
+            auto node = new intervalTreeNode(line.start, line.end, i);
+            intervals[line.ref_id] ~= node;
+        }
+
+        trees_.length = reduce!max(intervals.keys) + 1;
+        foreach (ref_id, ivs; intervals)
+            trees_[ref_id] = new intervalTree(ivs);
+    }
+
+    override void nextColumn(uint ref_id, pos_t position,
+                             scope void delegate(size_t id) updater)
+    {
+        if (ref_id >= trees_.length || trees_[ref_id] is null)
+            return;
+
+        foreach (node; trees_[ref_id].eachOverlap(position, position + 1)) {
+            updater(node.value);
+        }
+    }
+}
+
+bool isSortedAndNonOverlapping(BamRegion[] bed) {
+    size_t n = bed.length;
+    if (n <= 1) return true;
+    foreach (k; 0 .. n - 1) {
+        auto reg1 = bed[k];
+        auto reg2 = bed[k + 1];
+        if (reg1.ref_id > reg2.ref_id)
+            return false;
+        if (reg1.ref_id < reg2.ref_id)
+            continue;
+        if (reg1.end > reg2.start)
+            return false;
+    }
+    return true;
+}
+
+class NonOverlappingRegionStatsCollector : RegionStatsCollector {
+    private BamRegion[] bed_;
+
+    size_t current_index_;
+
+    this(BamRegion[] bed) {
+        assert(isSortedAndNonOverlapping(bed));
+        bed_ = bed;
+        current_index_ = 0;
+    }
+
+    override void nextColumn(uint ref_id, pos_t position,
+                             scope void delegate(size_t id) updater)
+    {
+        while (bed_.length > 0 &&
+               bed_.front.fullyLeftOf(ref_id, position))
+        {
+            bed_ = bed_[1 .. $];
+            ++current_index_;
+        }
+
+        if (bed_.length > 0 &&
+            bed_.front.overlaps(ref_id, position.to!uint))
+        {
+            updater(current_index_);
+        }
+    }
+}
+
+class WindowStatsCollector : RegionStatsCollector {
+    MultiBamReader bam;
+    size_t window_size;
+    size_t overlap;
+    size_t step;
+    size_t n;
+
+    this(MultiBamReader bam, size_t window_size, size_t overlap, size_t n) {
+        this.bam = bam;
+        this.window_size = window_size;
+        this.overlap = overlap;
+        step = window_size - overlap;
+        this.n = n;
+    }
+
+    override void nextColumn(uint ref_id, pos_t position,
+                             scope void delegate(size_t id) updater)
+    {
+        size_t k;
+        if (position < window_size)
+            k = position / step + 1;
+        else
+            k = n;
+
+        foreach (id; 0 .. k)
+            updater(id);
+    }
+}
+
+enum MateOverlapStatus : ubyte {
+    none = 0,
+    detected = 1,
+    fixed = 2,
+    past = 3
+}
+
+struct CustomBamRead {
+    MultiBamRead!BamRead read;
+    alias read this;
+
+    this(MultiBamRead!BamRead read, uint[string] rg2id) {
+        this.read = read;
+        auto rg_value = read["RG"];
+        if (rg2id.length > 0 && !rg_value.is_nothing) {
+            auto rg_str = *(cast(string*)(&rg_value));
+            auto p = rg_str in rg2id;
+            if (!p)
+              throw new Exception("error in read " ~ read.name ~
+                                  ": read group " ~ rg_str ~ " is not present in the header");
+            sample_id = *p;
+        }
+
+        // FNV hashing
+        ulong h = 14695981039346656037UL;
+        foreach (ubyte b; read.name) {
+            h ^= b;
+            h *= 1099511628211UL;
+        }
+        read_name_hash = h;
+    }
+
+    ulong read_name_hash;
+    uint sample_id;
+    MateOverlapStatus mate_overlap = MateOverlapStatus.none;
+
+    CustomBamRead dup() @property const {
+        CustomBamRead r = void;
+        r.read = read.dup;
+        r.sample_id = sample_id;
+        r.read_name_hash = read_name_hash;
+        r.mate_overlap = mate_overlap;
+        return r;
+    }
+}
+
+alias Column = PileupRange!(InputRange!CustomBamRead).Column;
+
+abstract class ColumnPrinter {
+    double min_cov = 0.0;
+    double max_cov = 1e50;
+    ubyte min_base_quality = 0;
+    MultiBamReader bam;
+
+    bool combined = false;
+    bool annotate = false;
+    bool fix_mate_overlaps = false;
+    File output_file;
+
+    string[] sample_names;
+
+    BamRegion[] raw_bed;
+
+    void setBed(BamRegion[] bed) {
+        raw_bed = bed;
+    }
+
+    string[] raw_bed_lines;
+
+    abstract void init(ref string[] args);
+    abstract void push(ref Column);
+    abstract void close();
+
+    uint getSampleId(R)(auto ref R read) {
+        if (combined || sample_names.length == 1)
+            return 0;
+        return read.sample_id;
+    }
+
+    string getSampleName(uint sample_id) {
+        return sample_names[sample_id];
+    }
+
+    private {
+        Tuple!(ulong, size_t)[] read_name_hashes_buf;
+        Tuple!(size_t, size_t)[] overlapping_mate_positions_buf;
+    }
+
+    Tuple!(size_t, size_t)[] overlapping_mate_positions;
+
+    void detectOverlappingMates(ref Column column) {
+        if (!fix_mate_overlaps)
+            return;
+
+        size_t n = column.coverage;
+
+        if (n == 0) {
+            overlapping_mate_positions = [];
+            return;
+        }
+
+        if (n > read_name_hashes_buf.length) {
+            read_name_hashes_buf.length = n;
+            overlapping_mate_positions_buf.length = n;
+        }
+
+        for (size_t i = 0; i < n; i++)
+            read_name_hashes_buf[i] = tuple(column.reads[i].read_name_hash, i);
+
+        sort!((a, b) => a[0] < b[0])(read_name_hashes_buf[0 .. n]);
+
+        size_t n_overlaps = 0;
+
+        for (size_t i = 0; i < n - 1; i++) {
+            if (read_name_hashes_buf[i][0] != read_name_hashes_buf[i + 1][0]) {
+                auto idx = read_name_hashes_buf[i][1];
+                if (column.reads[idx].mate_overlap != MateOverlapStatus.none)
+                    column.reads[idx].mate_overlap = MateOverlapStatus.past;
+                continue;
+            }
+
+            auto idx1 = read_name_hashes_buf[i][1];
+            auto idx2 = read_name_hashes_buf[i + 1][1];
+
+            if (column.reads[idx1].sample_id == column.reads[idx2].sample_id &&
+                column.reads[idx1].name == column.reads[idx2].name)
+            {
+                if (column.reads[idx1].mate_overlap != MateOverlapStatus.none &&
+                    column.reads[idx2].mate_overlap != MateOverlapStatus.none)
+                {
+                    assert(column.reads[idx1].mate_overlap == column.reads[idx2].mate_overlap);
+                }
+
+                overlapping_mate_positions_buf[n_overlaps++] = tuple(idx1, idx2);
+
+                // don't touch status if it's already set
+                if (column.reads[idx1].mate_overlap == MateOverlapStatus.none)
+                    column.reads[idx1].mate_overlap = MateOverlapStatus.detected;
+
+                if (column.reads[idx2].mate_overlap == MateOverlapStatus.none)
+                    column.reads[idx2].mate_overlap = MateOverlapStatus.detected;
+
+                // don't consider rare cases of >= 3 reads with the same name
+                i += 1;
+            }
+        }
+
+        auto idx = read_name_hashes_buf[n - 1][1];
+        if (column.reads[idx].mate_overlap != MateOverlapStatus.none &&
+            ((n == 1) ||
+             (read_name_hashes_buf[n - 2][0] != read_name_hashes_buf[n - 1][0])))
+            column.reads[idx].mate_overlap = MateOverlapStatus.past;
+
+        // store positions of overlapping mates for this column
+        overlapping_mate_positions = overlapping_mate_positions_buf[0 .. n_overlaps];
+    }
+
+    // selects a mate of better quality out of two overlapping candidates
+    auto ref R selectBetterMate(R)(auto ref R m1, auto ref R m2) {
+        if (m1.current_base == '-' || m2.current_base == '-') {
+            // if either one hits an indel, look at the mapping quality
+            return m1.mapping_quality > m2.mapping_quality ?  m1 : m2;
+        } else {
+            // otherwise, choose one with higher base quality
+            return m1.current_base_quality > m2.current_base_quality ? m1 : m2;
+        }
+    }
+}
+
+final class PerBasePrinter : ColumnPrinter {
+    NonOverlappingRegionStatsCollector stats_collector;
+    bool report_zero_coverage;
+
+    private {
+        int _prev_ref_id = -2;
+        long _prev_position;
+        bool _bed_is_provided;
+    }
+
+    override void init(ref string[] args) {
+        getopt(args,
+                std.getopt.config.caseSensitive,
+                "report-zero-coverage|z", &report_zero_coverage);
+        if (report_zero_coverage)
+            min_cov = 0;
+        if (min_cov == 0)
+            report_zero_coverage = true;
+
+        output_file.write("REF\tPOS\tCOV\tA\tC\tG\tT\tDEL\tREFSKIP");
+        if (!combined)
+            output_file.write("\tSAMPLE");
+        if (annotate)
+            output_file.write("\tFLAG");
+        output_file.writeln();
+    }
+
+    override void setBed(BamRegion[] bed) {
+        super.setBed(bed);
+        _bed_is_provided = true;
+        stats_collector = new NonOverlappingRegionStatsCollector(bed);
+    }
+
+    private string[] tails;
+    private void initTails() {
+        if (!tails.empty) return;
+
+        if (combined) {
+            tails ~= "\t0\t0\t0\t0\t0\t0\t0";
+            if (annotate)
+                tails[0] = tails[0] ~ (min_cov > 0 ? "\tn" : "\ty");
+        } else {
+            foreach (sample_name; sample_names) {
+                tails ~= "\t0\t0\t0\t0\t0\t0\t0\t" ~ sample_name;
+                if (annotate)
+                    tails.back = tails.back ~ (min_cov > 0 ? "\tn" : "\ty");
+            }
+        }
+    }
+
+    private void writeEmptyColumns(long ref_id, long start, long end) {
+        if (min_cov > 0 && !annotate)
+            return;
+        auto ref_name = bam.reference_sequences[cast(uint)ref_id].name;
+
+        initTails();
+
+        if (!_bed_is_provided) {
+            foreach (pos; start .. end) {
+                foreach (tail; tails)
+                    output_file.writeln(ref_name, '\t', pos, tail);
+            }
+        } else {
+            if (raw_bed.empty || raw_bed.front.ref_id > cast(uint)ref_id)
+                return;
+            while (!raw_bed.empty && raw_bed.front.ref_id < cast(uint)ref_id)
+                raw_bed.popFront();
+            while (!raw_bed.empty && raw_bed.front.ref_id == ref_id) {
+                if (raw_bed.front.fullyLeftOf(cast(uint)ref_id, cast(uint)start)) {
+                    raw_bed.popFront();
+                    continue;
+                }
+                auto from = max(start, raw_bed.front.start);
+                auto to = min(end, raw_bed.front.end);
+                if (from >= to)
+                    break;
+                foreach (pos; from .. to)
+                    foreach (tail; tails)
+                    output_file.writeln(ref_name, '\t', pos, tail);
+                raw_bed.front.start = cast(uint)to;
+                if (raw_bed.front.start >= raw_bed.front.end)
+                    raw_bed.popFront();
+            }
+            stats_collector = new NonOverlappingRegionStatsCollector(raw_bed);
+        }
+    }
+
+    private {
+        size_t[] coverage;
+        size_t[] deletions;
+        size_t[] ref_skips;
+    }
+
+    private void writeColumn(ref Column c) {
+        if (coverage.empty) {
+            deletions.length = max(1, combined ? 1 : sample_names.length);
+            ref_skips.length = deletions.length;
+            coverage.length = 5 * deletions.length;
+        }
+
+        coverage[] = 0;
+        deletions[] = 0;
+        ref_skips[] = 0;
+
+        void processCurrentBase(R)(auto ref R read) {
+            auto sample_id = getSampleId(read);
+            if (read.current_base == '-') {
+                if (read.cigar_operation.type == 'D')
+                    deletions[sample_id] += 1;
+                else
+                    ref_skips[sample_id] += 1;
+                return;
+            }
+
+            if (read.current_base_quality >= min_base_quality)
+                coverage[5 * sample_id + Base5(read.current_base).internal_code] += 1;
+        }
+
+        detectOverlappingMates(c);
+
+        foreach (read; c.reads) {
+            if (read.mate_overlap == MateOverlapStatus.detected)
+                continue; // process overlapping mates separately
+            else
+                processCurrentBase(read);
+        }
+
+        foreach (pair; overlapping_mate_positions) {
+            auto read = selectBetterMate(c.reads[pair[0]], c.reads[pair[1]]);
+            processCurrentBase(read);
+        }
+
+        foreach (sample_id; 0 .. coverage.length / 5) {
+            auto cov = coverage[sample_id * 5 .. $][0 .. 5];
+            size_t total_coverage = reduce!`a+b`(cov[]) +
+                deletions[sample_id] + ref_skips[sample_id];
+
+            bool ok = total_coverage >= min_cov && total_coverage <= max_cov;
+            if (!ok && !annotate)
+                return;
+
+            output_file.write(bam.reference_sequences[c.ref_id].name, '\t',
+                    c.position, '\t', total_coverage);
+            foreach (i; 0 .. 4)
+                output_file.write('\t', cov[i]);
+            output_file.write('\t', deletions[sample_id], '\t', ref_skips[sample_id]);
+
+            if (!combined)
+                output_file.write('\t', getSampleName(sample_id.to!uint));
+
+            if (annotate)
+                output_file.write('\t', ok ? 'y' : 'n');
+            output_file.writeln();
+        }
+    }
+
+    private bool outputRequired(int ref_id, ulong position) {
+        if (stats_collector is null)
+            return true;
+        bool output = false;
+        stats_collector.nextColumn(cast(uint)ref_id, cast(uint)position,
+                                   (size_t id) { output = true; });
+        return output;
+    }
+
+    override void push(ref Column c) {
+        if (min_cov > 0) {
+            if (outputRequired(c.ref_id, c.position))
+                writeColumn(c);
+            return;
+        }
+
+        if (_prev_ref_id == -2) {
+            foreach (id; 0 .. c.ref_id)
+                writeEmptyColumns(id, 0, bam.reference_sequences[id].length);
+            writeEmptyColumns(c.ref_id, 0, c.position);
+        } else if (_prev_ref_id != c.ref_id) {
+            writeEmptyColumns(_prev_ref_id, _prev_position + 1,
+                    bam.reference_sequences[_prev_ref_id].length);
+            writeEmptyColumns(c.ref_id, 0, c.position);
+        } else if (_prev_position != c.position - 1) {
+            writeEmptyColumns(c.ref_id, _prev_position + 1, c.position);
+        }
+
+        _prev_ref_id = c.ref_id;
+        _prev_position = c.position;
+
+        if (outputRequired(c.ref_id, c.position))
+            writeColumn(c);
+    }
+
+    override void close() {
+        if (!report_zero_coverage)
+            return;
+
+        if (_prev_ref_id == -2) {
+            foreach (id; 0 .. bam.reference_sequences.length)
+                writeEmptyColumns(id, 0, bam.reference_sequences[id].length);
+        } else {
+            writeEmptyColumns(_prev_ref_id, _prev_position + 1,
+                              bam.reference_sequences[_prev_ref_id].length);
+            foreach (id; _prev_ref_id + 1 .. bam.reference_sequences.length)
+                writeEmptyColumns(id, 0, bam.reference_sequences[id].length);
+        }
+    }
+}
+
+final class PerSampleRegionData {
+    this(size_t n_coverage_counters, size_t n_regions) {
+        coverage_counters_ = new uint[][](n_coverage_counters, n_regions);
+        n_reads_.length = n_regions;
+        n_bases_.length = n_regions;
+    }
+
+    // for each coverage threshold, we hold here numbers of bases with
+    // cov. >= that threshold, for each region
+    private uint[][] coverage_counters_;
+    private uint[] n_reads_; // for each region
+    private uint[] n_bases_; // ditto
+
+    ref uint coverage_count(size_t cov_id, size_t region_id) {
+        return coverage_counters_[cov_id][region_id];
+    }
+
+    ref uint n_reads(size_t id) { return n_reads_[id]; }
+    ref uint n_bases(size_t id) { return n_bases_[id]; }
+
+    void reset(size_t id) {
+        n_reads_[id] = 0;
+        n_bases_[id] = 0;
+        foreach (ref cov_counter; coverage_counters_)
+            cov_counter[id] = 0;
+    }
+}
+
+abstract class PerRegionPrinter : ColumnPrinter {
+    RegionStatsCollector stats_collector;
+    private PerSampleRegionData[] samples;
+
+    static immutable default_bed_fields = ["chrom", "chromStart", "chromEnd"];
+
+    private void printBedHeader(size_t n_before) {
+        output_file.write("# ");
+        foreach (field; default_bed_fields[0 .. min($, n_before)])
+            output_file.write(field, "\t");
+        foreach (k; 3 .. n_before)
+            output_file.write("F", k, "\t");
+        output_file.write("readCount\tmeanCoverage");
+        foreach (cov; cov_thresholds)
+            output_file.write("\tpercentage", cov);
+        if (!combined)
+            output_file.write("\tsampleName");
+
+        if (annotate)
+            output_file.write("\tmeanCovWithinBounds");
+        output_file.write("\n");
+        output_file.flush();
+    }
+
+    private void countRead(R)(auto ref R read, size_t id) {
+        auto n = countOverlappingBases(read, id);
+        auto data = getSampleData(getSampleId(read));
+        data.n_bases(id) += n;
+
+        // count the read only if at least one base is good
+        if (n > 0)
+            data.n_reads(id) += 1;
+    }
+
+    private size_t countOverlappingBases(R)(auto ref R read, size_t id, ulong start_pos=0) {
+        auto sample_id = getSampleId(read);
+        assert(sample_names.empty || sample_id < sample_names.length, "Invalid sample ID");
+        auto data = getSampleData(sample_id);
+
+        auto region = getRegionById(id);
+
+        auto pos = read.position; // current position on the reference
+        auto q = read.base_qualities;
+        size_t n; // number of read bases that are not insertions
+                  // and also have good quality
+        foreach (op; read.cigar) {
+            if (op.is_match_or_mismatch)
+                foreach (qual; q[0 .. min(op.length, $)]) {
+                    n += region.overlaps(region.ref_id, pos) &&
+                         qual >= min_base_quality && pos >= start_pos;
+                    ++pos;
+                }
+            else if (op.is_reference_consuming)
+                pos += op.length;
+
+            // min(op.length, $) protects from invalid memory accesses
+            // possible only when the input data is incorrect
+            if (op.is_query_consuming)
+                q = q[min(op.length, $) .. $];
+        }
+        return n;
+    }
+
+    abstract BamRegion getRegionById(size_t id);
+    abstract PerSampleRegionData getSampleData(uint sample_id);
+    abstract bool isFirstOccurrence(size_t id);
+    abstract void markAsSeen(size_t id);
+    abstract void writeOriginalBedLine(size_t id);
+
+    uint[] cov_thresholds;
+    bool[] is_first_occurrence;
+
+    uint[] cov_per_sample;
+
+    override void init(ref string[] args) {
+        getopt(args,
+               std.getopt.config.caseSensitive,
+               "cov-threshold|T", &cov_thresholds);
+    }
+
+    private void uncountOverlappingMates(R)(ref R r1, ref R r2, size_t id, ulong curr_pos) {
+        if (r1.mate_overlap == MateOverlapStatus.fixed &&
+            r2.mate_overlap == MateOverlapStatus.fixed)
+            return;
+
+        assert(r1.mate_overlap == MateOverlapStatus.detected);
+        assert(r2.mate_overlap == MateOverlapStatus.detected);
+
+        // re-count all good bases
+        auto n1_full = countOverlappingBases(r1, id);
+        auto n2_full = countOverlappingBases(r2, id);
+
+        // now count bases starting from the current column
+        auto n1 = r1.position == curr_pos ? n1_full : countOverlappingBases(r1, id, curr_pos);
+        auto n2 = r2.position == curr_pos ? n2_full : countOverlappingBases(r2, id, curr_pos);
+
+        auto data = getSampleData(r1.sample_id);
+
+        data.n_bases(id) -= n1 + n2; // this count is then dealt with on per-base basis
+
+        data.n_reads(id) -= (n1_full > 0) + (n2_full > 0);
+        data.n_reads(id) += (n1_full + n2_full > 0); // count only one read instead of two
+
+        // don't set status to fixed just yet, there might be other regions as well
+    }
+
+    private void fixRegionBaseCounter(ref Column column, size_t region_id) {
+        foreach (p; overlapping_mate_positions)
+            uncountOverlappingMates(column.reads[p[0]],
+                                    column.reads[p[1]], region_id, column.position);
+    }
+
+    private void markOverlappingMatesAsFixed(ref Column column) {
+        foreach (p; overlapping_mate_positions) {
+            assert(column.reads[p[0]].mate_overlap != MateOverlapStatus.past);
+            assert(column.reads[p[1]].mate_overlap != MateOverlapStatus.past);
+            column.reads[p[0]].mate_overlap = MateOverlapStatus.fixed;
+            column.reads[p[1]].mate_overlap = MateOverlapStatus.fixed;
+        }
+    }
+
+    override void push(ref Column column) {
+        uint ref_id = column.ref_id.to!uint;
+        pos_t position = column.position.to!pos_t;
+
+        if (cov_per_sample.length == 0) {
+            cov_per_sample.length = max(1, combined ? 1 : sample_names.length);
+        }
+
+        detectOverlappingMates(column);
+
+        void processCurrentBase(R)(auto ref R read, size_t region_id) {
+            if (read.current_base_quality < min_base_quality)
+                return;
+            auto sample_id = getSampleId(read);
+            auto data = getSampleData(sample_id);
+            data.n_bases(region_id) += 1;
+            cov_per_sample[sample_id] += 1;
+        }
+
+        void countPreviouslySeenMateOverlaps(size_t id) {
+            foreach (pair; overlapping_mate_positions) {
+                auto m1 = column.reads[pair[0]];
+                auto m2 = column.reads[pair[1]];
+                if (m1.mate_overlap != MateOverlapStatus.fixed)
+                    continue;
+
+                // don't set n_bases here, only n_reads
+                auto n1 = countOverlappingBases(m1, id);
+                auto n2 = countOverlappingBases(m2, id);
+
+                if (n1 + n2 == 0)
+                    continue;
+
+                auto data = getSampleData(m1.sample_id);
+                data.n_reads(id) += 1;
+            }
+        }
+
+        bool fixes_applied = false;
+
+        stats_collector.nextColumn(ref_id, position,
+            (size_t id) {
+                if (isFirstOccurrence(id)) {
+                    foreach (read; column.reads)
+                        if (read.mate_overlap != MateOverlapStatus.fixed)
+                            countRead(read, id);
+                    countPreviouslySeenMateOverlaps(id);
+                    markAsSeen(id);
+                } else {
+                    foreach (read; column.reads_starting_here)
+                        countRead(read, id);
+                }
+
+                fixRegionBaseCounter(column, id);
+                fixes_applied = true;
+
+                cov_per_sample[] = 0;
+
+                foreach (ref read; column.reads) {
+                    if (read.mate_overlap != MateOverlapStatus.none)
+                    {
+                        if (read.mate_overlap != MateOverlapStatus.past)
+                            continue;
+                        processCurrentBase(read, id);
+                    } else {
+                        if (read.current_base_quality >= min_base_quality)
+                            cov_per_sample[getSampleId(read)] += 1;
+                    }
+                }
+
+                foreach (pair; overlapping_mate_positions) {
+                    auto m1 = column.reads[pair[0]], m2 = column.reads[pair[1]];
+                    processCurrentBase(selectBetterMate(m1, m2), id);
+                }
+
+                foreach (sample_id; iota(cov_per_sample.length.to!uint)) {
+                    auto data = getSampleData(sample_id);
+                    foreach (i, threshold; cov_thresholds)
+                        if (cov_per_sample[sample_id] >= threshold)
+                            data.coverage_count(i, id) += 1;
+                }
+        });
+
+        if (fixes_applied)
+            markOverlappingMatesAsFixed(column);
+    }
+
+    void printRegionStats(uint sample_id, size_t id, PerSampleRegionData data) {
+        auto region = getRegionById(id);
+        auto length = region.end - region.start;
+        with(output_file) {
+            auto mean_cov = data.n_bases(id).to!float / length;
+
+            bool ok = mean_cov >= this.min_cov && mean_cov <= this.max_cov;
+
+            if (!ok && !this.annotate)
+                return;
+
+            writeOriginalBedLine(id);
+            write(data.n_reads(id), '\t', mean_cov);
+            foreach (j; 0 .. cov_thresholds.length) {
+                auto percentage = data.coverage_count(j, id).to!float * 100 / length;
+                if (cov_thresholds[j] == 0)
+                    percentage = 100.0;
+                write('\t', percentage);
+            }
+
+            if (!combined)
+                write('\t', getSampleName(sample_id));
+
+            if (annotate)
+                write('\t', ok ? 'y' : 'n');
+
+            writeln();
+            flush();
+        }
+    }
+}
+
+final class PerBedRegionPrinter : PerRegionPrinter {
+    bool[] is_first_occurrence;
+
+    override PerSampleRegionData getSampleData(uint id) {
+        if (samples.length == 0) {
+            samples.length = max(1, combined ? 1 : sample_names.length);
+            foreach (k; 0 .. samples.length)
+                samples[k] = new PerSampleRegionData(cov_thresholds.length, raw_bed.length);
+        }
+        assert(id < samples.length, "Invalid sample ID: " ~
+               id.to!string ~ "/" ~ samples.length.to!string);
+        assert(samples[id] !is null);
+        return samples[id];
+    }
+
+    override bool isFirstOccurrence(size_t id) {
+        return is_first_occurrence[id];
+    }
+
+    override void markAsSeen(size_t id) {
+        is_first_occurrence[id] = false;
+    }
+
+    override void writeOriginalBedLine(size_t id) {
+        import std.string;
+        raw_bed_lines[id] = std.string.stripRight(raw_bed_lines[id]);
+        output_file.write(raw_bed_lines[id], "\t");
+    }
+
+    override BamRegion getRegionById(size_t id) {
+        return raw_bed[id];
+    }
+
+    override void setBed(BamRegion[] bed) {
+        raw_bed = bed;
+        is_first_occurrence = new bool[](raw_bed.length);
+        is_first_occurrence[] = true;
+
+        if (isSortedAndNonOverlapping(raw_bed))
+            stats_collector = new NonOverlappingRegionStatsCollector(raw_bed);
+        else
+            stats_collector = new GeneralRegionStatsCollector(raw_bed);
+
+        printBedHeader(raw_bed_lines[0].split().length);
+    }
+
+    override void close() {
+        foreach (id; 0 .. raw_bed.length) {
+            foreach (sample_id; iota(samples.length.to!uint))
+                printRegionStats(sample_id, id, getSampleData(sample_id));
+        }
+    }
+}
+
+final class PerWindowPrinter : PerRegionPrinter {
+    size_t window_size;
+    size_t overlap;
+    size_t step;
+    size_t n; // number of windows to keep at each moment
+
+    bool[] is_first_occurrence;
+
+    size_t leftmost_window_index = 0;
+    size_t leftmost_window_start_pos = 0;
+    int window_ref_id = -1;
+    size_t ref_length;
+
+    void printWindowStats(size_t id) {
+        foreach (sample_id; iota(samples.length.to!uint))
+            printRegionStats(sample_id, leftmost_window_index, getSampleData(sample_id));
+    }
+
+    void resetAllWindows() {
+        foreach (data; samples) {
+            foreach (id; 0 .. n) {
+                data.reset(id);
+            }
+        }
+        is_first_occurrence[] = true;
+        leftmost_window_index = 0;
+        leftmost_window_start_pos = 0;
+    }
+
+    void finishLeftMostWindow() {
+        printWindowStats(leftmost_window_index);
+        foreach (sample, data; samples)
+            data.reset(leftmost_window_index);
+        is_first_occurrence[leftmost_window_index] = true;
+
+        leftmost_window_index += 1;
+        if (leftmost_window_index == n)
+            leftmost_window_index = 0;
+        leftmost_window_start_pos += step;
+    }
+
+    size_t windowStart(size_t id) {
+        size_t k_from_leftmost;
+        if (id >= leftmost_window_index) {
+            k_from_leftmost = id - leftmost_window_index;
+        } else {
+            k_from_leftmost = n - leftmost_window_index + id;
+        }
+        return leftmost_window_start_pos + step * k_from_leftmost;
+    }
+
+    override PerSampleRegionData getSampleData(uint id) {
+        if (samples.length == 0) {
+            samples.length = max(1, combined ? 1 : sample_names.length);
+            foreach (k; 0 .. samples.length)
+                samples[k] = new PerSampleRegionData(cov_thresholds.length, n);
+        }
+        return samples[id];
+    }
+
+    override bool isFirstOccurrence(size_t id) {
+        return is_first_occurrence[id];
+    }
+
+    override void markAsSeen(size_t id) {
+        is_first_occurrence[id] = false;
+    }
+
+    override BamRegion getRegionById(size_t id) {
+        auto start = windowStart(id);
+        auto end = start + window_size;
+        return BamRegion(window_ref_id, cast(uint)start, cast(uint)end);
+    }
+
+    override void writeOriginalBedLine(size_t id) {
+        auto region = getRegionById(id);
+        output_file.write(bam.reference_sequences[region.ref_id].name, '\t',
+                          region.start, '\t',
+                          region.end, '\t');
+    }
+
+    override void init(ref string[] args) {
+        getopt(args, std.getopt.config.caseSensitive,
+               "window-size|w", &window_size,
+               "overlap", &overlap,
+               "cov-threshold|T", &cov_thresholds);
+
+        enforce(window_size > 0,
+                "positive window size must be specified");
+
+        enforce(overlap < window_size,
+                "specified overlap is larger than window size");
+
+        step = window_size - overlap;
+        n = window_size / step;
+        if (window_size % step != 0)
+            ++n;
+
+        is_first_occurrence = new bool[n];
+        is_first_occurrence[] = false;
+
+        stats_collector = new WindowStatsCollector(bam, window_size, overlap, n);
+
+        printBedHeader(3);
+    }
+
+    private void printEmptyWindows(int ref_id) {
+        window_ref_id = ref_id;
+        foreach (j; 0 .. bam.reference_sequences[ref_id].length / step)
+            finishLeftMostWindow();
+        resetAllWindows();
+    }
+
+    private void moveToReference(int ref_id) {
+        window_ref_id = ref_id;
+        ref_length = bam.reference_sequences[ref_id].length;
+    }
+
+    override void push(ref Column column) {
+        if (window_ref_id == -1) {
+            foreach (int k; 0 .. column.ref_id)
+                printEmptyWindows(k);
+            moveToReference(column.ref_id);
+        } else if (column.ref_id != window_ref_id) {
+            while (leftmost_window_start_pos + window_size <= ref_length)
+                finishLeftMostWindow();
+            resetAllWindows();
+            foreach (k; window_ref_id + 1 .. column.ref_id)
+                printEmptyWindows(k);
+            moveToReference(column.ref_id);
+        }
+
+        while (column.position >= leftmost_window_start_pos + window_size)
+            finishLeftMostWindow();
+        super.push(column);
+    }
+
+    override void close() {
+        while (leftmost_window_start_pos + window_size <= ref_length)
+            finishLeftMostWindow();
+        foreach (k; window_ref_id + 1 .. bam.reference_sequences.length)
+            printEmptyWindows(cast(int)k);
+        output_file.close();
+    }
+}
+
+int depth_main(string[] args) {
+
+    int n_threads;
+    string query = null;
+    Filter read_filter = new NullFilter();
+
+    string bed_filename = null;
+
+    if (args.length < 3) {
+        printUsage();
+        return 0;
+    }
+
+    Mode mode;
+    ColumnPrinter printer;
+
+    switch (args[1]) {
+    case "base":
+        mode = Mode.base;
+        printer = new PerBasePrinter();
+        break;
+    case "region":
+        mode = Mode.region;
+        printer = new PerBedRegionPrinter();
+        break;
+    case "window":
+        mode = Mode.window;
+        printer = new PerWindowPrinter();
+        break;
+    default:
+        printUsage();
+        return 0;
+    }
+
+    if (mode == Mode.base)
+        printer.min_cov = 1;
+
+    string output_fn;
+
+    args = args[1 .. $];
+
+    try {
+        getopt(args,
+               std.getopt.config.caseSensitive,
+               std.getopt.config.passThrough,
+               "filter|F",               &query,
+               "output-filename|o",      &output_fn,
+               "nthreads|t",             &n_threads,
+               "min-coverage|c",         &printer.min_cov,
+               "max-coverage|C",         &printer.max_cov,
+               "min-base-quality|q",     &printer.min_base_quality,
+               "annotate|a",             &printer.annotate,
+               "combined",               &printer.combined,
+               "fix-mate-overlaps|m",    &printer.fix_mate_overlaps);
+
+        if (output_fn is null)
+            printer.output_file = stdout;
+        else
+            printer.output_file = File(output_fn, "w+");
+
+        if (mode != Mode.window) {
+            getopt(args,
+                   std.getopt.config.caseSensitive,
+                   std.getopt.config.passThrough,
+                   "regions|L", &bed_filename);
+        }
+
+        if (mode == Mode.region && bed_filename is null) {
+            stderr.writeln("BED file or a region must be provided in region mode");
+            return 1;
+        }
+
+        // handles subcommand arguments and removes them from the list
+        printer.init(args);
+
+        defaultPoolThreads = max(n_threads, 0);
+
+        if (query !is null) {
+            read_filter = createFilterFromQuery(query);
+        } else {
+            read_filter = createFilterFromQuery("mapping_quality > 0 and "
+                    "not duplicate and "
+                    "not failed_quality_control");
+        }
+
+        auto bam_filenames = args[1 .. $];
+        auto bam = new MultiBamReader(bam_filenames);
+        enforce(bam.header.sorting_order == SortingOrder.coordinate,
+                "All files must be coordinate-sorted");
+        enforce(bam.has_index, "All files must be indexed");
+
+        printer.bam = bam;
+
+        uint[string] sm2id;
+        uint[string] rg2id;
+        foreach (rg; bam.header.read_groups) {
+            if (rg.sample !in sm2id) {
+                sm2id[rg.sample] = printer.sample_names.length.to!uint;
+                printer.sample_names ~= rg.sample;
+            }
+            rg2id[rg.identifier] = sm2id[rg.sample];
+        }
+
+        if (printer.sample_names.empty)
+            printer.sample_names = ["*"];
+
+        InputRange!(CustomBamRead) reads;
+        if (bed_filename !is null) {
+            BamRegion[] bed;
+            try {
+                bed = parseBed(bed_filename, bam);
+                if (mode == Mode.base) {
+                    parseBed(bed_filename, bam, true, &printer.raw_bed_lines);
+                    printer.setBed(parseBed(bed_filename, bam, true));
+                } else {
+                    printer.setBed(parseBed(bed_filename, bam, false, &printer.raw_bed_lines));
+                }
+            } catch (Exception e) {
+                auto region = parseRegion(bed_filename);
+                enforce(bam.hasReference(region.reference),
+                    "couldn't open file " ~ bed_filename ~
+                    " or find reference " ~ region.reference);
+                auto ref_id = bam[region.reference].id;
+                bed ~= BamRegion(ref_id, region.beg, region.end);
+                if (bed[0].end == uint.max)
+                    bed[0].end = bam[region.reference].length;
+                auto s = region.reference ~ "\t" ~
+                         bed[0].start.to!string() ~ "\t" ~
+                         bed[0].end.to!string();
+                printer.raw_bed_lines = [s];
+                printer.setBed(bed);
+            }
+            reads = inputRangeObject(bam.getReadsOverlapping(bed)
+                    .map!(r => CustomBamRead(r, rg2id)));
+        } else {
+            reads = inputRangeObject(bam.reads.map!(r => CustomBamRead(r, rg2id)));
+        }
+
+        auto filtered_reads = inputRangeObject(filtered(reads, read_filter));
+        auto pileup = pileupColumns(filtered_reads);
+
+        int last_ref_id = -2;
+
+        foreach (column; pileup) {
+            auto ref_name = bam.reference_sequences[column.ref_id].name;
+
+            if (column.ref_id != last_ref_id) {
+                last_ref_id = column.ref_id;
+                stderr.writeln("Processing reference #", column.ref_id + 1,
+                               " (", ref_name, ")");
+            }
+
+            printer.push(column);
+        }
+
+        printer.close();
+        return 0;
+
+    } catch (Exception e) {
+        stderr.writeln("sambamba-depth: ", e.msg);
+
+        version(development) {
+            throw e;
+        }
+        return 1;
+    }
+
+    return 0;
+}
diff --git a/sambamba/fixbins.d b/sambamba/fixbins.d
new file mode 100644
index 0000000..b8b7f2d
--- /dev/null
+++ b/sambamba/fixbins.d
@@ -0,0 +1,100 @@
+/*
+    This file is part of Sambamba.
+    Copyright (C) 2012-2015    Artem Tarasov <lomereiter at gmail.com>
+
+    Sambamba 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; either version 2 of the License, or
+    (at your option) any later version.
+
+    Sambamba 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+module sambamba.fixbins;
+
+import std.stdio, std.getopt, std.parallelism;
+import sambamba.utils.common.progressbar;
+import sambamba.utils.common.overwrite;
+import bio.bam.reader, bio.bam.writer;
+import bio.bam.bai.bin;
+
+void printUsage() {
+    stderr.writeln("Usage: sambamba-fixbins [options] <input.bam> <output.bam>");
+    stderr.writeln();
+    stderr.writeln("Options: -t, --nthreads=NTHREADS");
+    stderr.writeln("                    maximum number of threads to use");
+    stderr.writeln("         -p, --show-progress");
+    stderr.writeln("                    show progressbar in STDERR");
+    stderr.writeln("         -l, --compression-level=LEVEL");
+    stderr.writeln("                    specify compression level (from 0 to 9)");
+}
+
+version(standalone) {
+    int main(string[] args) {
+        return fixbins_main(args);
+    }
+}
+
+int fixbins_main(string[] args) {
+    try {
+        int compression_level = -1;
+        size_t nthreads = totalCPUs - 1;
+        bool show_progress;
+        getopt(args,
+               std.getopt.config.caseSensitive,
+               "nthreads|t", &nthreads,
+               "compression-level|l", &compression_level,
+               "show-progress|p", &show_progress);
+
+        if (args.length != 3) {
+            printUsage();
+            return 0;
+        }
+
+        protectFromOverwrite(args[1], args[2]);
+        
+        auto bam = new BamReader(args[1]);
+        bam.assumeSequentialProcessing();
+        auto w = new BamWriter(args[2], compression_level);
+
+        w.writeSamHeader(bam.header);
+        w.writeReferenceSequenceInfo(bam.reference_sequences);
+
+        void fixBins(R)(R reads) {
+            foreach (r; reads) {
+                auto start = r.position;
+                auto end = start + r.basesCovered();
+                uint correct_bin = cast(uint)reg2bin(start, end);
+                uint* x = cast(uint*)r.raw_data.ptr + 2;
+                *x = (*x & 0xFFFF) | (correct_bin << 16);
+                w.writeRecord(r);
+            }
+        }
+
+        if (show_progress) {
+            auto bar = new shared(ProgressBar)();
+            auto reads = bam.readsWithProgress((lazy float p) { bar.update(p); });
+            fixBins(reads);
+            bar.finish();
+        } else {
+            fixBins(bam.reads);
+        }
+
+        scope(exit) w.finish();
+
+    } catch (Throwable e) {
+        stderr.writeln("sambamba-fixbins: ", e.msg);
+        version(development) { throw e; }
+        return 1;
+    }
+
+    return 0;
+}
+
diff --git a/sambamba/flagstat.d b/sambamba/flagstat.d
new file mode 100644
index 0000000..59ac33b
--- /dev/null
+++ b/sambamba/flagstat.d
@@ -0,0 +1,139 @@
+/*
+    This file is part of Sambamba.
+    Copyright (C) 2012-2013    Artem Tarasov <lomereiter at gmail.com>
+
+    Sambamba 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; either version 2 of the License, or
+    (at your option) any later version.
+
+    Sambamba 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+module sambamba.flagstat;
+
+/// port of samtools flagstat tool
+import bio.bam.reader;
+import std.stdio, std.conv, std.parallelism, std.getopt, std.string;
+
+import sambamba.utils.common.progressbar;
+
+ulong[2] reads, pair_all, pair_good, first, second, single, pair_map, mapped,
+         dup, diff_chr, diff_high, secondary, supplementary;
+
+void computeFlagStatistics(R)(R alignments) {
+    foreach (read; alignments) {
+        size_t failed = read.failed_quality_control ? 1 : 0;
+        ++reads[failed];
+        if (!read.is_unmapped) ++mapped[failed];
+        if (read.is_duplicate) ++dup[failed];
+        if (read.is_secondary_alignment) {
+            ++secondary[failed];
+        } else if (read.is_supplementary) {
+            ++supplementary[failed];
+        } else if (read.is_paired) {
+            ++pair_all[failed];
+            if (read.proper_pair && !read.is_unmapped) ++pair_good[failed];
+            if (read.is_first_of_pair) ++first[failed];
+            if (read.is_second_of_pair) ++second[failed];
+            if (read.mate_is_unmapped && !read.is_unmapped) ++single[failed];
+            if (!read.is_unmapped && !read.mate_is_unmapped) {
+                ++pair_map[failed];
+                if (read.ref_id != read.mate_ref_id) {
+                    ++diff_chr[failed];
+                    if (read.mapping_quality >= 5)
+                        ++diff_high[failed];
+                }
+            }
+        }
+    }
+}
+
+void writeParam(string description, ulong[2] param) {
+    writefln("%s + %s %s", param[0], param[1], description);
+}
+
+float percent(ulong a, ulong b) { return to!float(a) / b * 100.0; }
+
+string percentStr(ulong a, ulong b) {
+    if (b == 0) return "N/A";
+    return format("%.2f%%", percent(a, b));
+}
+
+void writeParamWithPercentage(string description, ulong[2] param, ulong[2] total) {
+    writefln("%s + %s %s (%s:%s)", param[0], param[1], description,
+             percentStr(param[0], total[0]),
+             percentStr(param[1], total[1]));
+}
+
+version(standalone) {
+    int main(string[] args) {
+        return flagstat_main(args);
+    }
+}
+
+void printUsage() {
+    stderr.writeln("Usage: sambamba-flagstat [options] <input.bam>");
+    stderr.writeln();
+    stderr.writeln("OPTIONS: -t, --nthreads=NTHREADS");
+    stderr.writeln("            use NTHREADS for decompression");
+    stderr.writeln("         -p, --show-progress");
+    stderr.writeln("            show progressbar in STDERR");
+}
+
+int flagstat_main(string[] args) {
+    size_t threads = totalCPUs;
+    bool show_progress;
+
+    try {
+        getopt(args,
+               std.getopt.config.caseSensitive,
+               "nthreads|t",      &threads,
+               "show-progress|p", &show_progress);
+
+        if (args.length < 2) {
+            printUsage();
+            return 1;
+        }
+
+        auto task_pool = new TaskPool(threads);
+        scope(exit) task_pool.finish();
+
+        auto bam = new BamReader(args[1], task_pool);
+        bam.assumeSequentialProcessing();
+
+        if (show_progress) {
+            auto bar = new shared(ProgressBar)();
+            computeFlagStatistics(bam.readsWithProgress((lazy float p) { bar.update(p); }));
+            bar.finish();
+        } else {
+            computeFlagStatistics(bam.reads!withoutOffsets);
+        }
+        
+        scope(exit) {
+            writeParam("in total (QC-passed reads + QC-failed reads)", reads);
+            writeParam("secondary", secondary);
+            writeParam("supplementary", supplementary);
+            writeParam("duplicates", dup);
+            writeParamWithPercentage("mapped", mapped, reads);
+            writeParam("paired in sequencing", pair_all);
+            writeParam("read1", first);
+            writeParam("read2", second);
+            writeParamWithPercentage("properly paired", pair_good, pair_all);
+            writeParam("with itself and mate mapped", pair_map);
+            writeParamWithPercentage("singletons", single, pair_all);
+            writeParam("with mate mapped to a different chr", diff_chr);
+            writeParam("with mate mapped to a different chr (mapQ>=5)", diff_high);
+        }
+    } catch (Throwable e) {
+        stderr.writeln(e.msg);
+    }
+    return 0;
+}
diff --git a/sambamba/index.d b/sambamba/index.d
new file mode 100644
index 0000000..bfc2965
--- /dev/null
+++ b/sambamba/index.d
@@ -0,0 +1,117 @@
+/*
+    This file is part of Sambamba.
+    Copyright (C) 2012-2015    Artem Tarasov <lomereiter at gmail.com>
+
+    Sambamba 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; either version 2 of the License, or
+    (at your option) any later version.
+
+    Sambamba 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+module sambamba.index;
+
+import std.stdio;
+import std.stream;
+import std.range;
+import std.parallelism;
+import std.getopt;
+import cram.reader;
+
+import sambamba.utils.common.progressbar;
+
+import bio.bam.bai.indexing;
+import bio.bam.reader;
+
+void printUsage() {
+    stderr.writeln("Usage: sambamba-index [OPTIONS] <input.bam|input.cram> [output_file]");
+    stderr.writeln();
+    stderr.writeln("\tCreates index for a BAM or CRAM file");
+    stderr.writeln();
+    stderr.writeln("Options: -t, --nthreads=NTHREADS");
+    stderr.writeln("               number of threads to use for decompression");
+    stderr.writeln("         -p, --show-progress");
+    stderr.writeln("               show progress bar in STDERR");
+    stderr.writeln("         -c, --check-bins");
+    stderr.writeln("               check that bins are set correctly");
+    stderr.writeln("         -C, --cram-input");
+    stderr.writeln("               specify that input is in CRAM format");
+}
+
+version(standalone) {
+    int main(string[] args) {
+        return index_main(args);
+    }
+}
+
+int index_main(string[] args) {
+
+    bool show_progress;
+    bool check_bins;
+    uint n_threads = totalCPUs;
+    bool is_cram;
+    string out_filename = null;
+
+    getopt(args,
+           std.getopt.config.caseSensitive,
+           "show-progress|p", &show_progress,
+           "nthreads|t",      &n_threads,
+           "check-bins|c",    &check_bins,
+           "cram-input|C",    &is_cram);
+
+    try {
+        if (args.length < 2 || args.length > 3) {
+            printUsage();
+            return 0;
+        }
+
+        if (!is_cram) {
+            if (args.length > 2)
+                out_filename = args[2];
+            else
+                out_filename = args[1] ~ ".bai";
+
+            // default taskPool uses only totalCPUs-1 threads,
+            // but in case of indexing the most time is spent
+            // on decompression, and it makes perfect sense
+            // to use all available cores for that
+            //
+            // (this is not the case with the sambamba tool where
+            // filtering can consume significant amount of time)
+            auto task_pool = new TaskPool(n_threads);
+            scope(exit) task_pool.finish();
+
+            auto bam = new BamReader(args[1], task_pool);
+            bam.assumeSequentialProcessing();
+            Stream stream = new BufferedFile(out_filename, FileMode.Out);
+            scope(exit) stream.close();
+
+            if (show_progress) {
+                auto bar = new shared(ProgressBar)();
+                createIndex(bam, stream, check_bins, (lazy float p) { bar.update(p); });
+                bar.finish();
+            } else {
+                createIndex(bam, stream, check_bins);
+            }
+        } else {
+            if (show_progress)
+                stderr.writeln("[info] progressbar is unavailable for CRAM input");
+            defaultPoolThreads = 0; // decompression not needed for CRAM
+            auto cram = new CramReader(args[1], taskPool);
+            cram.createIndex(args[$-1]);
+        }
+    } catch (Throwable e) {
+        stderr.writeln("sambamba-index: ", e.msg);
+        version(development) { throw e; }
+        return 1;
+    }
+    return 0;
+}
diff --git a/sambamba/markdup.d b/sambamba/markdup.d
new file mode 100644
index 0000000..028e88a
--- /dev/null
+++ b/sambamba/markdup.d
@@ -0,0 +1,1313 @@
+/*
+    This file is part of Sambamba.
+    Copyright (C) 2012-2016    Artem Tarasov <lomereiter at gmail.com>
+
+    Sambamba 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; either version 2 of the License, or
+    (at your option) any later version.
+
+    Sambamba 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+module sambamba.markdup;
+
+import std.stdio;
+import std.getopt;
+import std.path : buildPath;
+import sambamba.utils.common.tmpdir;
+import sambamba.utils.common.progressbar;
+import sambamba.utils.common.overwrite;
+import thirdparty.unstablesort;
+import utils.lz4;
+import utils.version_ : addPG;
+
+import bio.bam.reader, bio.bam.readrange, bio.bam.writer, bio.bam.referenceinfo,
+       bio.bam.read, bio.sam.header, bio.bam.abstractreader,
+       bio.bam.multireader;
+import std.traits, std.typecons, std.range, std.algorithm, std.parallelism,
+       std.exception, std.file, std.typetuple, std.conv, std.array, std.bitmanip,
+       std.c.stdlib, std.datetime, std.stream : BufferedFile, FileMode;
+
+/// Read + its index (0-based)
+struct IndexedBamRead {
+    ulong index;
+    BamRead read;
+    alias read this;
+
+    IndexedBamRead dup() @property const {
+        return IndexedBamRead(index, read.dup);
+    }
+}
+
+auto withIndices(R)(R reads) {
+    return reads.zip(sequence!((a,n)=>n)())
+                .map!(t => IndexedBamRead(t[1], t[0]))();
+}
+
+struct ReadPair {
+    IndexedBamRead read1;
+    IndexedBamRead read2;
+}
+
+struct ReadPairOrFragment {
+    IndexedBamRead read1;
+    Nullable!IndexedBamRead read2;
+
+    this(IndexedBamRead r1) {
+        read1 = r1;
+    }
+
+    this(IndexedBamRead r1, IndexedBamRead r2) {
+        read1 = r1;
+        read2 = r2;
+    }
+}
+
+class MallocArray(T) {
+    private {
+        T* _p;
+        size_t _sz;
+        size_t _cur;
+        float _gf;
+    }
+
+    /// call manually!
+    void free() {
+        std.c.stdlib.free(_p);
+        _p = null;
+    }
+
+    this(size_t initial_size=16, float grow_factor=1.5) {
+        enforce(initial_size >= 16);
+        enforce(grow_factor >= 1.2);
+        _p = cast(T*)std.c.stdlib.malloc(initial_size * T.sizeof);
+        _sz = initial_size;
+        _gf = grow_factor;
+    }
+
+    T[] data() @property {
+        return _p[0 .. _cur];
+    }
+
+    size_t capacity() @property const {
+        return _sz;
+    }
+
+    /// sets length to zero without releasing the memory
+    void reset() {
+        _cur = 0;
+    }
+
+    void put(ref T element) {
+        if (_cur < _sz) {
+            _p[_cur++] = element;
+        } else {
+            assert(_cur == _sz);
+            _sz = cast(size_t)(_sz * _gf);
+            _p = cast(T*)std.c.stdlib.realloc(_p, _sz * T.sizeof);
+            _p[_cur++] = element;
+        }
+    }
+
+    void put(T element) {
+        put(element);
+    }
+}
+
+/// 48 bytes; fast access to read group;
+/// also stores precomputed hash.
+struct HReadBlock {
+    IndexedBamRead read;
+    alias read this;
+    alias read get;
+    uint hash;
+    uint _rg_pos;
+    mixin(bitfields!(ushort, "_rg_len", 15,
+                     bool, "_is_not_null", 1));
+    bool isNull() @property const { return !_is_not_null; }
+    string read_group() @property const {
+        if (_rg_pos == 0)
+            return "";
+        return cast(string)read.raw_data[_rg_pos .. _rg_pos + _rg_len];
+    }
+    void nullify() {
+        .destroy(read);
+        _is_not_null = false;
+    }
+
+    HReadBlock dup() @property {
+        auto result = this;
+        result.read = read.dup;
+        return result;
+    }
+}
+
+template makeHReadBlock(alias charsHashFunc) {
+    HReadBlock makeHReadBlock(R)(auto ref R read) {
+        HReadBlock r = void;
+        r.read = read;
+        auto rg = cast(ubyte[])getRG(read);
+        if (rg.length > 0) {
+            assert(rg.length <= ushort.max / 2);
+            r._rg_pos = cast(uint)(rg.ptr - read.raw_data.ptr);
+            r._rg_len = cast(ushort)(rg.length);
+        } else {
+            r._rg_pos = 0;
+        }
+        r._is_not_null = true;
+        assert(r.read_group == getRG(r.read));
+        auto h = charsHashFunc(chain(cast(ubyte[])r.name,
+                                     cast(ubyte[])r.read_group));
+        r.hash = h & 0xFFFFFFFF;
+        return r;
+    }
+}
+
+private string getRG(R)(auto ref R r) {
+    static if (is(R == HReadBlock)) {
+        assert(r.read_group == getRG(r.read));
+        return r.read_group;
+    } else {
+        auto v = r["RG"];
+        if (v.is_nothing)
+            return "";
+        return *(cast(string*)(&v));
+    }
+}
+
+bool compareReadNamesAndReadGroups(R1, R2)(auto ref R1 r1, auto ref R2 r2) {
+    auto name_cmp_result = std.algorithm.cmp(r1.name, r2.name);
+    if (name_cmp_result < 0)
+        return true;
+    if (name_cmp_result > 0)
+        return false;
+    return getRG(r1) < getRG(r2);
+}
+
+// LDC doesn't like lambdas :-(
+auto _rse2brb(T)(T t) { return IndexedBamRead(t[1], t[0]); }
+auto _rse2rs(T)(T t) { return map!_rse2brb(zip(t[0].reads, t[1])); }
+auto _rse2r(BamReader[] r, SimpleReader!(ulong, std.stdio.File)[] s) {
+    return map!_rse2rs(zip(r, s)).array()
+              .nWayUnion!compareReadNamesAndReadGroups();
+}
+
+private auto readsFromTempFiles(size_t buf_size, string[] tmp_filenames,
+                                TaskPool pool) {
+    BamReader[] readers;
+    SimpleReader!(ulong, std.stdio.File)[] indices;
+    foreach (fn; tmp_filenames) {
+        readers ~= new BamReader(fn, pool);
+        indices ~= new SimpleReader!(ulong, std.stdio.File)(fn ~ ".idx");
+        readers[$ - 1].setBufferSize(buf_size / tmp_filenames.length);
+    }
+
+    return _rse2r(readers, indices);
+}
+
+struct CollateReadPairRange(R, bool keepFragments, alias charsHashFunc)
+    if (isInputRange!R && is(Unqual!(ElementType!R) == IndexedBamRead))
+{
+    private {
+        static auto wrapper(R reads, TaskPool pool) {
+            auto r1 = reads.filter!q{ a.ref_id != -1 }
+                           .filter!q{ !a.is_unmapped }
+                           .filter!q{ !a.is_secondary_alignment }
+                           .filter!q{ !a.is_supplementary };
+
+            static if (keepFragments) {
+                auto r2 = r1;
+            } else {
+                auto r2 = r1.filter!q{a.is_paired && !a.mate_is_unmapped}();
+            }
+
+            return pool.map!(makeHReadBlock!charsHashFunc)(r2, 1024);
+        }
+
+        ReturnType!wrapper _reads;
+        TaskPool _task_pool;
+
+        alias IndexedBamRead Read;
+
+        HReadBlock[] _table; // size is always power of two
+        size_t _table_mask;
+
+        ulong _min_idx, _max_idx;
+
+        version(profile) {
+            size_t _duped_during_compaction;
+            StopWatch _compact_sw;
+        }
+
+        void _compact() {
+            enum max_diff = 2_000UL;
+            if (_max_idx - _min_idx < max_diff * 6)
+                return;
+
+            version(profile) { _compact_sw.start(); scope(exit) _compact_sw.stop(); }
+
+            _min_idx = _max_idx;
+            foreach (ref r; _table)
+                if (!r.isNull && r.is_slice_backed
+                    && _max_idx - r.index > max_diff)
+                {
+                    version(profile) ++_duped_during_compaction;
+                    r = r.dup;
+                } else if (!r.isNull && r.is_slice_backed) {
+                    _min_idx = min(_min_idx, r.index);
+                }
+        }
+
+        version(profile) {
+            ~this() {
+                stderr.writeln("duped during compaction:     ", _duped_during_compaction);
+                stderr.writeln("time spent on compaction:    ", _compact_sw.peek().msecs, " ms");
+            }
+        }
+
+        HReadBlock[] _overflow_list;
+        size_t _stored_in_overflow_list; // current number of elements
+        size_t _overflow_list_cur_pos; // for finishing current list
+        HReadBlock _process_after_dumping;
+
+        enum Source { hashTable, overflowList, tempFiles, none }
+        Source _src;
+
+        IBamSamReader _reader;
+
+        static if (keepFragments)
+            alias ReadPairOrFragment FrontType;
+        else
+            alias ReadPair FrontType;
+        FrontType _front;
+
+        string _tmp_dir;
+        string[] _tmp_filenames;
+        BamWriter _tmp_w;
+        size_t _tmp_written;
+
+        std.stdio.File _tmp_w_idx;
+        MallocArray!ulong _tmp_idx;
+
+        Nullable!Read _tmp_r1;
+        ReturnType!readsFromTempFiles _tmp_reads;
+    }
+
+    this(R reads, ubyte table_size_log2, size_t overflow_list_size,
+         string tmp_dir, TaskPool task_pool = taskPool)
+    {
+        enforce(overflow_list_size > 0);
+        _tmp_dir = tmp_dir;
+
+        _reads = wrapper(reads, task_pool);
+        _task_pool = task_pool;
+        setSource(Source.hashTable);
+
+        _table = new HReadBlock[1 << table_size_log2];
+        _table_mask = (1 << table_size_log2) - 1;
+        _overflow_list = new HReadBlock[overflow_list_size];
+
+        _tmp_idx = new MallocArray!ulong(8192);
+
+        popFront();
+    }
+
+    bool empty() const { return _src == Source.none; }
+
+    auto front() { return _front; }
+
+    void popFront() {
+        final switch (_src) {
+            case Source.hashTable:    popFrontHashTable();    return;
+            case Source.overflowList: popFrontOverflowList(); return;
+            case Source.tempFiles:    popFrontTempFiles();    return;
+            case Source.none:         assert(false);
+        }
+    }
+
+    private:
+    void setSource(Source source) {
+        _src = source;
+    }
+
+    auto next(R)(ref R range) {
+        auto r = range.front;
+        range.popFront();
+        if (_src == Source.tempFiles)
+            r.associateWithReader(_reader);
+        return r;
+    }
+
+    static bool readsArePaired(R1, R2)(auto ref R1 r1, auto ref R2 r2) {
+        return r1.name == r2.name && getRG(r1) == getRG(r2);
+    }
+
+    size_t computeHash(ref HReadBlock r) {
+        return r.hash & _table_mask;
+    }
+
+    void copyToOverflowList(ref HReadBlock r) {
+        auto old = r.is_slice_backed ? r.dup : r;
+        _overflow_list[_stored_in_overflow_list++] = old;
+    }
+
+    void updateHashTableEntry(size_t position, ref HReadBlock read) {
+        _max_idx = max(_max_idx, read.index);
+        _table[position] = read;
+    }
+
+    void removeHashTableEntry(size_t position) {
+        _table[position].nullify();
+    }
+
+    void createTmpWriter() {
+        if (_reader is null) {
+            _tmp_w = null;
+            return;
+        }
+
+        _tmp_filenames ~= _tmp_dir ~ "/sorted." ~
+                          _tmp_filenames.length.to!string() ~ ".bam";
+        _tmp_w = new BamWriter(_tmp_filenames[$ - 1], 1, _task_pool);
+        _tmp_w_idx = std.stdio.File(_tmp_filenames[$ - 1] ~ ".idx", "w+");
+        _tmp_w.disableAutoIndexCreation();
+        _tmp_w.writeSamHeader(_reader.header);
+        _tmp_w.writeReferenceSequenceInfo(_reader.reference_sequences);
+        _tmp_written = 0;
+    }
+
+    void closeTmpWriter() {
+        if (_tmp_w !is null)
+            _tmp_w.finish();
+        if (_tmp_filenames.length > 0) {
+            _tmp_w_idx.rawWrite(_tmp_idx.data);
+            _tmp_w_idx.close();
+        }
+        _tmp_idx.reset();
+    }
+
+    void dumpTmpRecord(R)(auto ref R read) {
+        assert(_tmp_w !is null);
+        _tmp_w.writeRecord(read);
+        _tmp_written++;
+        _tmp_idx.put(read.index);
+        if (_tmp_idx.data.length == _tmp_idx.capacity) {
+            _tmp_w_idx.rawWrite(_tmp_idx.data);
+            _tmp_idx.reset();
+        }
+    }
+
+    void popFrontHashTable() {
+        while (!_reads.empty) {
+            _compact();
+            auto read = next(_reads);
+
+            if (_reader is null) {
+                _reader = read.reader;
+            }
+
+            static if (keepFragments) {
+                if (!read.is_paired || read.mate_is_unmapped) {
+                    _front = FrontType(read);
+                    return;
+                }
+            }
+
+            auto h = computeHash(read);
+            if (_table[h].isNull) {
+                updateHashTableEntry(h, read);
+            } else if (readsArePaired(_table[h], read)) {
+                _front = FrontType(_table[h], read);
+                removeHashTableEntry(h);
+                return;
+            } else if (_stored_in_overflow_list < _overflow_list.length) {
+                copyToOverflowList(_table[h]);
+                updateHashTableEntry(h, read);
+            } else {
+                _process_after_dumping = read.dup;
+                sort!compareReadNamesAndReadGroups(_overflow_list[]);
+                createTmpWriter();
+                _overflow_list_cur_pos = 0;
+                setSource(Source.overflowList);
+                popFrontOverflowList();
+                return;
+            }
+        }
+
+        auto remaining_reads = _table.filter!"!a.isNull"
+                                     .array().sort!compareReadNamesAndReadGroups();
+        createTmpWriter();
+        foreach (r; remaining_reads)
+            dumpTmpRecord(r);
+        closeTmpWriter();
+
+        if (_stored_in_overflow_list > 0) {
+            createTmpWriter();
+            auto list = _overflow_list[0 .. _stored_in_overflow_list];
+            sort!compareReadNamesAndReadGroups(list);
+            foreach (r; list) dumpTmpRecord(r);
+            closeTmpWriter();
+        }
+
+        _table = null;
+        _overflow_list = null;
+
+        // FIXME: constant!
+        _tmp_reads = readsFromTempFiles(128_000_000, _tmp_filenames, _task_pool);
+        setSource(Source.tempFiles);
+        if (!_tmp_reads.empty)
+            _tmp_r1 = next(_tmp_reads);
+        popFrontTempFiles();
+    }
+
+    void popFrontOverflowList() {
+        while (_overflow_list_cur_pos < _stored_in_overflow_list - 1) {
+            auto r1 = _overflow_list[_overflow_list_cur_pos];
+            auto r2 = _overflow_list[_overflow_list_cur_pos + 1];
+            if (readsArePaired(r1, r2)) {
+                _overflow_list_cur_pos += 2;
+                _front = FrontType(r1, r2);
+                return;
+            } else {
+                dumpTmpRecord(_overflow_list[_overflow_list_cur_pos++]);
+            }
+        }
+
+        if (_overflow_list_cur_pos < _stored_in_overflow_list)
+            dumpTmpRecord(_overflow_list[_overflow_list_cur_pos]);
+        closeTmpWriter();
+
+        _stored_in_overflow_list = 0;
+        if (!_process_after_dumping.isNull) {
+            auto h = computeHash(_process_after_dumping);
+            copyToOverflowList(_table[h]);
+            updateHashTableEntry(h, _process_after_dumping);
+            _process_after_dumping.nullify();
+        }
+
+        setSource(Source.hashTable);
+        popFrontHashTable();
+    }
+
+    void popFrontTempFiles() {
+        while (!_tmp_reads.empty) {
+            auto r2 = next(_tmp_reads);
+            if (readsArePaired(_tmp_r1, r2)) {
+                _front = FrontType(_tmp_r1, r2);
+                if (!_tmp_reads.empty)
+                    _tmp_r1 = next(_tmp_reads);
+                else
+                    _tmp_r1.nullify();
+                return;
+            } else {
+                static if (keepFragments) {
+                    _front = FrontType(_tmp_r1);
+                    _tmp_r1 = r2;
+                    return;
+                } else {
+                    _tmp_r1 = r2;
+                }
+            }
+        }
+
+        if (!_tmp_r1.isNull) {
+            _front = FrontType(_tmp_r1);
+            _tmp_r1.nullify();
+            return;
+        }
+
+        foreach (fn; _tmp_filenames) {
+            std.file.remove(fn);
+            std.file.remove(fn ~ ".idx");
+        }
+        setSource(Source.none);
+    }
+}
+
+auto simpleHash(R)(R chars)
+if (isInputRange!R && is(ElementType!R == ubyte))
+{
+    hash_t h = 0;
+    foreach (ubyte c; chars) {
+        h += c;
+        h *= 37;
+    }
+    return h;
+}
+
+auto readPairs(alias hashFunc=simpleHash, R)
+(R reads, ubyte table_size_log2, size_t overflow_list_size,
+ string tmp_dir, TaskPool task_pool=taskPool) {
+    return CollateReadPairRange!(R, false, hashFunc)
+            (reads, table_size_log2, overflow_list_size, tmp_dir, task_pool);
+}
+
+auto readPairsAndFragments(alias hashFunc=simpleHash, R)
+(R reads, ubyte table_size_log2, size_t overflow_list_size,
+ string tmp_dir, TaskPool task_pool=taskPool) {
+    return CollateReadPairRange!(R, true, hashFunc)
+            (reads, table_size_log2, overflow_list_size, tmp_dir, task_pool);
+}
+
+/////////////////////////////////////////////////////////////////////////////////
+/// no more than 32767 libraries and 16383 reference sequences are supported ////
+/////////////////////////////////////////////////////////////////////////////////
+
+// 8 bytes
+struct SingleEndBasicInfo {
+    mixin(bitfields!(short, "library_id", 16,
+                     ushort, "ref_id", 14,
+                     ubyte, "reversed", 1,
+                     ubyte, "paired", 1));
+    int coord;
+
+    bool samePosition(SingleEndBasicInfo other) const {
+        return coord == other.coord && ref_id == other.ref_id &&
+            reversed == other.reversed && library_id == other.library_id;
+    }
+}
+static assert(SingleEndBasicInfo.sizeof == 8);
+
+// 24 bytes :-(
+struct SingleEndInfo {
+    SingleEndBasicInfo basic_info;
+    alias basic_info this;
+    ulong idx;
+    ushort score;
+}
+
+// 32 bytes
+struct PairedEndsInfo {
+    mixin(bitfields!(short, "library_id", 16,
+                     ushort, "ref_id1", 14,
+                     ubyte, "reversed1", 1,
+                     ubyte, "reversed2", 1));
+    int coord1;
+    int coord2;
+    ushort ref_id2;
+
+    ushort score; // sum of base qualities that are >= 15
+    ulong idx1, idx2;
+
+    SingleEndBasicInfo read1_basic_info() @property {
+        typeof(return) result = void;
+        // HACK! HACK! HACK! use the fact that the structures are almost
+        // the same except the one bit meaning 'paired' instead of 'reversed2'.
+        auto p = cast(ubyte*)(&result);
+        p[0 .. 8] = (cast(ubyte*)(&this))[0 .. 8];
+        result.paired = true;
+        return result;
+    }
+}
+
+static assert(PairedEndsInfo.sizeof == 32);
+
+bool singleEndInfoComparator(S1, S2)(auto ref S1 s1, auto ref S2 s2) {
+    if (s1.library_id < s2.library_id) return true;
+    if (s1.library_id > s2.library_id) return false;
+    if (s1.ref_id < s2.ref_id) return true;
+    if (s1.ref_id > s2.ref_id) return false;
+    if (s1.coord < s2.coord) return true;
+    if (s1.coord > s2.coord) return false;
+    if (s1.reversed < s2.reversed) return true;
+    return false;
+}
+
+bool pairedEndsInfoComparator(P1, P2)(auto ref P1 p1, auto ref P2 p2) {
+    if (p1.library_id < p2.library_id) return true;
+    if (p1.library_id > p2.library_id) return false;
+    if (p1.ref_id1 < p2.ref_id1) return true;
+    if (p1.ref_id1 > p2.ref_id1) return false;
+    if (p1.coord1 < p2.coord1) return true;
+    if (p1.coord1 > p2.coord1) return false;
+    if (p1.reversed1 < p2.reversed1) return true;
+    if (p1.reversed1 > p2.reversed1) return false;
+    if (p1.reversed2 < p2.reversed2) return true;
+    if (p1.reversed2 > p2.reversed2) return false;
+    if (p1.ref_id2 < p2.ref_id2) return true;
+    if (p1.ref_id2 > p2.ref_id2) return false;
+    if (p1.coord2 < p2.coord2) return true;
+    return false;
+}
+
+struct MarkDuplicatesConfig {
+    ubyte hash_table_size_log2 = 18;
+    size_t overflow_list_size = 200_000;
+    string tmpdir;
+    size_t bufsize = 500_000_000; // for sorting storage
+
+    // called on each group of PE duplicates
+    void delegate(PairedEndsInfo[]) pe_callback = null;
+
+    // called on each group of SE duplicates;
+    // the second argument tells if there is a paired read at that position
+    void delegate(SingleEndInfo[], bool) se_callback = null;
+}
+
+private /* algorithm */ {
+
+class ReadGroupIndex {
+    private {
+        int[string] _rg_ids;
+        int[] _rg_id_to_lb_id;
+    }
+
+    this(SamHeader header) {
+        int[string] libraries;
+        _rg_id_to_lb_id.length = header.read_groups.length;
+        int i = 0;
+        int n_libs = 0;
+        foreach (rg; header.read_groups) {
+            _rg_ids[rg.identifier] = i;
+            if (rg.library in libraries) {
+                _rg_id_to_lb_id[i] = libraries[rg.library];
+            } else {
+                _rg_id_to_lb_id[i] = n_libs;
+                libraries[rg.library] = n_libs;
+                ++n_libs;
+            }
+            ++i;
+        }
+        enforce(n_libs <= 32767, "More than 32767 libraries are unsupported");
+    }
+
+    /// -1 if read group with such name is not found in the header
+    int getId(string name) const {
+        auto p = name in _rg_ids;
+        if (p is null)
+            return -1;
+        return *p;
+    }
+
+    int getLibraryId(int read_group_id) const {
+        if (read_group_id == -1)
+            return -1;
+        return _rg_id_to_lb_id[read_group_id];
+    }
+}
+
+int computeFivePrimeCoord(R)(auto ref R read) {
+    if (!read.is_reverse_strand) {
+        auto ops = read.cigar.until!q{ !a.is_clipping };
+        return read.position - reduce!q{ a + b }(0, ops.map!q{ a.length });
+    } else {
+        auto ops = read.cigar.retro.until!q{ !a.is_clipping };
+        auto clipped = reduce!q{ a + b }(0, ops.map!q{ a.length });
+        return read.position + read.basesCovered() + clipped;
+    }
+}
+
+ushort computeScore(R)(auto ref R read) {
+    return reduce!"a + b"(0, read.base_qualities.filter!"a >= 15").to!ushort;
+}
+
+auto collectSingleEndInfo(IndexedBamRead read, ReadGroupIndex read_group_index) {
+    assert(read.ref_id != -1);
+
+    SingleEndInfo result = void;
+    result.coord = computeFivePrimeCoord(read);
+    result.idx = read.index;
+    result.score = computeScore(read);
+    result.ref_id = cast(ushort)read.ref_id;
+    result.reversed = read.is_reverse_strand ? 1 : 0;
+    result.paired = (read.is_paired && !read.mate_is_unmapped) ? 1 : 0;
+
+    auto rg = read_group_index.getId(getRG(read));
+    result.library_id = cast(short)read_group_index.getLibraryId(rg);
+    return result;
+}
+
+// may swap the two arguments
+PairedEndsInfo combine(ref SingleEndInfo s1, ref SingleEndInfo s2) {
+    assert(s1.library_id == s2.library_id);
+    assert(s1.paired && s2.paired);
+
+    if ((s2.ref_id < s1.ref_id) ||
+        ((s2.ref_id == s1.ref_id) &&
+         ((s2.coord < s1.coord) ||
+          (s2.coord == s1.coord && s2.reversed < s1.reversed))))
+        swap(s1, s2);
+
+    PairedEndsInfo result = void;
+    result.library_id = s1.library_id;
+    result.ref_id1 = s1.ref_id;
+    result.ref_id2 = s2.ref_id;
+    result.reversed1 = s1.reversed;
+    result.reversed2 = s2.reversed;
+    result.coord1 = s1.coord;
+    result.coord2 = s2.coord;
+    result.score = cast(ushort)(s1.score + s2.score);
+    result.idx1 = s1.idx;
+    result.idx2 = s2.idx;
+    return result;
+}
+
+// helpers for $(D samePosition)
+SingleEndBasicInfo basicInfo(E)(auto ref E e) {
+    static if (is(E == SingleEndBasicInfo))
+        return e;
+    else static if (is(E == SingleEndInfo))
+             return e.basic_info;
+    else static if (is(E == PairedEndsInfo))
+             return e.read1_basic_info;
+}
+
+bool samePosition(E1, E2)(auto ref E1 e1, auto ref E2 e2) {
+    static if (is(E1 == PairedEndsInfo) && is(E2 == PairedEndsInfo)) {
+        return *cast(ulong*)(&e1) == *cast(ulong*)(&e2) &&
+            e1.ref_id2 == e2.ref_id2 && e1.coord2 == e2.coord2;
+    } else {
+        return basicInfo(e1).samePosition(basicInfo(e2));
+    }
+}
+
+bool positionLessOrEq(E1, E2)(auto ref E1 e1, auto ref E2 e2) {
+    return !singleEndInfoComparator(basicInfo(e2), basicInfo(e1));
+}
+
+bool positionLess(E1, E2)(auto ref E1 e1, auto ref E2 e2) {
+    return !positionLessOrEq(e2, e1);
+}
+
+class SortedStorage(T, alias Cmp="a<b") {
+    private {
+        string _tmp_dir, _salt;
+        string[] _filenames;
+        MallocArray!T _buffer;
+        TaskPool _pool;
+        size_t _length;
+    }
+
+    this(string tmp_dir, TaskPool pool, size_t max_memory_usage) {
+        _buffer = new MallocArray!T(max_memory_usage / T.sizeof);
+        _tmp_dir = tmp_dir;
+        _pool = pool;
+
+        import std.file : dirEntries, SpanMode;
+        _filenames = dirEntries(tmp_dir, T.stringof ~ "*",
+                                SpanMode.shallow).map!(a => a.name).array;
+        if (!_filenames.empty) { // this if-branch is for debug purposes only
+            _salt = _filenames[0][T.stringof.length .. $][0 .. 4];
+        } else {
+            import std.random;
+            char[4] tmp;
+            auto gen = Random(unpredictableSeed);
+            foreach (ref c; tmp[]) c = uniform!"[]"('a', 'z', gen);
+            _salt = tmp[].idup;
+        }
+    }
+
+    void put(T item) {
+        if (_buffer.capacity == _buffer.data.length)
+            flush();
+        _buffer.put(item);
+        ++_length;
+    }
+
+    size_t length() @property const {
+        return _length;
+    }
+
+    void flush() {
+        if (_buffer.data.length == 0)
+            return;
+
+        unstableSort!Cmp(_buffer.data, _pool);
+
+        auto fn = buildPath(_tmp_dir, T.stringof ~ _salt ~
+                            _filenames.length.to!string);
+
+        auto compressor = new LZ4Compressor();
+        auto lz4_output = std.stdio.File(fn, "w+");
+        compressor.compress(cast(ubyte[])_buffer.data, lz4_output, 1);
+        lz4_output.close();
+
+        _filenames ~= fn;
+        _buffer.reset();
+    }
+
+    void close(bool remove_files=false) {
+        flush();
+        _buffer.free();
+
+        if (remove_files)
+            removeTemporaryFiles();
+    }
+
+    void removeTemporaryFiles() {
+        foreach (fn; _filenames)
+            std.file.remove(fn);
+    }
+
+    auto reader() {
+        SimpleReader!(T, LZ4File)[] readers;
+        foreach (fn; _filenames)
+            readers ~= new SimpleReader!(T, LZ4File)(fn);
+        return nWayUnion!Cmp(readers);
+    }
+}
+
+class SimpleReader(T, U) {
+    this(string filename) {
+        _file = U(filename);
+        _buf = new ubyte[T.sizeof * 1024];
+        popFront();
+    }
+
+    private {
+        U _file;
+        T _front;
+        bool _empty;
+        ubyte[] _buf;
+        ubyte[] _raw_data;
+    }
+
+    bool empty() @property const { return _empty; }
+    T front() @property const { return _front; }
+
+    void popFront() {
+        import std.algorithm : copy;
+
+        while (_raw_data.length < T.sizeof) {
+            auto remaining = _raw_data.length;
+            copy(_raw_data[], _buf[0 .. remaining]);
+            _raw_data = _file.rawRead(_buf[remaining .. $]);
+            _raw_data = _buf[0 .. remaining + _raw_data.length];
+
+            if (_raw_data.length == 0) {
+                _empty = true;
+                _file.close();
+                return;
+            }
+        }
+        _front = *(cast(T*)_raw_data.ptr);
+        _raw_data = _raw_data[T.sizeof .. $];
+    }
+}
+
+alias PEStorage = SortedStorage!(PairedEndsInfo, pairedEndsInfoComparator);
+alias SEStorage = SortedStorage!(SingleEndInfo, singleEndInfoComparator);
+alias SEBStorage = SortedStorage!(SingleEndBasicInfo, singleEndInfoComparator);
+
+auto collectDuplicates(PEStorage pe_storage,
+                       SEStorage se_storage,
+                       SEBStorage pos_storage,
+                       MarkDuplicatesConfig cfg,
+                       TaskPool pool)
+{
+    auto pe_tmp = new MallocArray!PairedEndsInfo();
+    auto se_tmp = new MallocArray!SingleEndInfo();
+
+    auto pe = pe_storage.reader;
+    auto se = se_storage.reader;
+    auto pos = pos_storage.reader;
+
+    auto duplicate_indices = new SortedStorage!ulong(cfg.tmpdir, pool, cfg.bufsize);
+
+    while (true) {
+        // sort of three-way merge
+
+        // number of elements processed at the current position
+        size_t pe_proc;
+        size_t se_proc;
+
+        pe_tmp.reset(); se_tmp.reset();
+
+        // process paired ends
+        if (!pe.empty && (se.empty || positionLessOrEq(pe.front, se.front))) {
+            // this is essentially group-by operation,
+            // but maximum score is computed on the fly for efficiency
+            pe_tmp.put(pe.front);
+            pe.popFront();
+            size_t k = 1;
+            size_t best_k = 0;
+            while (!pe.empty) {
+                if (!samePosition(pe.front, pe_tmp.data[0]))
+                    break;
+                if (pe.front.score > pe_tmp.data[best_k].score)
+                    best_k = k;
+                pe_tmp.put(pe.front);
+                pe.popFront();
+                ++k;
+            }
+
+            if (cfg.pe_callback !is null)
+                cfg.pe_callback(pe_tmp.data);
+
+            for (size_t i = 0; i < k; ++i) {
+                if (i != best_k) {
+                    auto paired_ends = pe_tmp.data[i];
+                    duplicate_indices.put(paired_ends.idx1);
+                    duplicate_indices.put(paired_ends.idx2);
+                }
+            }
+
+            pe_proc = k;
+        }
+
+        // process single ends
+        if (!se.empty && (pe_tmp.data.empty || positionLessOrEq(se.front, pe_tmp.data[0]))) {
+            while (!pos.empty && positionLess(pos.front, se.front))
+                pos.popFront();
+
+            bool seen_paired_read = false;
+            bool seen_fragment = false;
+
+            auto cur = se.front;
+            size_t k = 0;
+            while (!se.empty) {
+                if (!samePosition(se.front, cur))
+                    break;
+                if (se.front.paired)
+                    seen_paired_read = true;
+                else
+                    seen_fragment = true;
+                se_tmp.put(se.front); ++k;
+                se.popFront();
+            }
+
+            size_t k_pe, k_pos;
+            while (k_pe < pe_tmp.data.length && samePosition(pe_tmp.data[k_pe], cur)) {
+                ++k_pe;
+            }
+            while (!pos.empty && samePosition(pos.front, cur)) {
+                ++k_pos;
+                pos.popFront();
+            }
+
+            if (k_pe + k_pos > 0)
+                seen_paired_read = true;
+
+            size_t total = k + k_pe + k_pos;
+
+            if (cfg.se_callback !is null)
+                cfg.se_callback(se_tmp.data, seen_paired_read);
+
+            if (total < 2 || !seen_fragment) { /* do nothing */ }
+            else if (seen_paired_read) {
+                // there was a paired read at this position
+                // => mark all single reads as duplicates
+                for (size_t i = 0; i < k; ++i)
+                    if (!se_tmp.data[i].paired)
+                        duplicate_indices.put(se_tmp.data[i].idx);
+            } else {
+                size_t best_i = 0;
+                for (size_t i = 0; i < k; ++i) {
+                    if (se_tmp.data[i].score > se_tmp.data[best_i].score)
+                        best_i = i;
+                }
+                for (size_t i = 0; i < k; ++i) {
+                    if (i != best_i)
+                        duplicate_indices.put(se_tmp.data[i].idx);
+                }
+            }
+            se_proc = k;
+        }
+
+        if (se.empty && pe.empty) {
+            break;
+        }
+
+        assert(pe_proc + se_proc > 0);
+    }
+
+    pe_tmp.free();
+    se_tmp.free();
+
+    duplicate_indices.close();
+    return duplicate_indices;
+}
+
+auto getDuplicateOffsets(R)(R reads, ReadGroupIndex rg_index,
+                            TaskPool pool, MarkDuplicatesConfig cfg) {
+
+    auto single_ends = new SEStorage(cfg.tmpdir, pool, cfg.bufsize);
+    auto paired_ends = new PEStorage(cfg.tmpdir, pool, cfg.bufsize);
+    auto second_ends = new SEBStorage(cfg.tmpdir, pool, cfg.bufsize);
+
+    scope(failure) {
+        paired_ends.close(true);
+        single_ends.close(true);
+        second_ends.close(true);
+    }
+
+    size_t unmatched_pairs;
+
+    foreach (pf; readPairsAndFragments(reads,
+                                       cfg.hash_table_size_log2,
+                                       cfg.overflow_list_size,
+                                       cfg.tmpdir, pool)) {
+        auto end1 = collectSingleEndInfo(pf.read1, rg_index);
+        if (!pf.read2.isNull) {
+            auto end2 = collectSingleEndInfo(pf.read2, rg_index);
+            auto pair = combine(end1, end2);
+            paired_ends.put(pair);
+            second_ends.put(end2.basic_info);
+        } else {
+            if (end1.paired)
+                ++unmatched_pairs;
+            single_ends.put(end1);
+        }
+    }
+
+    paired_ends.flush();
+    single_ends.flush();
+    second_ends.flush();
+
+    stderr.writeln("  sorted ", paired_ends.length, " end pairs");
+
+    stderr.writeln("     and ", single_ends.length, " single ends",
+                   " (among them ", unmatched_pairs, " unmatched pairs)");
+
+    StopWatch sw;
+    stderr.write("  collecting indices of duplicate reads... ");
+    sw.start();
+    auto duplicates = collectDuplicates(paired_ends, single_ends, second_ends, cfg, pool);
+    sw.stop(); stderr.writeln("  done in ", sw.peek().msecs, " ms"); sw.reset();
+    stderr.writeln("  found ", duplicates.length, " duplicates");
+
+    paired_ends.removeTemporaryFiles();
+    single_ends.removeTemporaryFiles();
+    second_ends.removeTemporaryFiles();
+
+    return duplicates;
+}
+
+} /* end of algorithm */
+
+void printUsage() {
+    stderr.writeln("Usage: sambamba-markdup [options] <input.bam> [<input2.bam> [...]] <output.bam>");
+    stderr.writeln("       By default, marks the duplicates without removing them");
+    stderr.writeln();
+    stderr.writeln("Options: -r, --remove-duplicates");
+    stderr.writeln("                    remove duplicates instead of just marking them");
+    stderr.writeln("         -t, --nthreads=NTHREADS");
+    stderr.writeln("                    number of threads to use");
+    stderr.writeln("         -l, --compression-level=N");
+    stderr.writeln("                    specify compression level of the resulting file (from 0 to 9)");
+    stderr.writeln("         -p, --show-progress");
+    stderr.writeln("                    show progressbar in STDERR");
+    stderr.writeln("         --tmpdir=TMPDIR");
+    stderr.writeln("                    specify directory for temporary files");
+    stderr.writeln();
+    stderr.writeln("Performance tweaking parameters");
+    stderr.writeln("         --hash-table-size=HASH_TABLE_SIZE");
+    stderr.writeln("                    size of hash table for finding read pairs (default is 262144 reads);");
+    stderr.writeln("                    will be rounded down to the nearest power of two;");
+    stderr.writeln("                    should be > (average coverage) * (insert size) for good performance");
+    stderr.writeln("         --overflow-list-size=OVERFLOW_LIST_SIZE");
+    stderr.writeln("                    size of the overflow list where reads, thrown from the hash table,");
+    stderr.writeln("                    get a second chance to meet their pairs (default is 200000 reads);");
+    stderr.writeln("                    increasing the size reduces the number of temporary files created");
+    stderr.writeln("         --sort-buffer-size=SORT_BUFFER_SIZE");
+    stderr.writeln("                    total amount of memory (in *megabytes*) used for sorting purposes;");
+    stderr.writeln("                    the default is 2048, increasing it will reduce the number of created");
+    stderr.writeln("                    temporary files and the time spent in the main thread");
+    stderr.writeln("         --io-buffer-size=BUFFER_SIZE");
+    stderr.writeln("                    two buffers of BUFFER_SIZE *megabytes* each are used");
+    stderr.writeln("                    for reading and writing BAM during the second pass (default is 128)");
+}
+
+version(standalone) {
+    int main(string[] args) {
+        return markdup_main(args);
+    }
+}
+
+int markdup_main(string[] args) {
+
+    MarkDuplicatesConfig cfg;
+    cfg.tmpdir = defaultTmpDir();
+
+    auto unparsed_args = args.dup;
+
+    bool remove_duplicates;
+    uint n_threads = totalCPUs;
+    bool show_progress;
+    size_t io_buffer_size = 128;
+    size_t hash_table_size;
+    size_t sort_buffer_size = 2048;
+    int compression_level = -1;
+
+    bool cmp_with_picard_mode; // for development purposes!
+
+    StopWatch sw;
+    sw.start();
+
+    try {
+        getopt(args,
+           std.getopt.config.caseSensitive,
+           "remove-duplicates|r", &remove_duplicates,
+           "nthreads|t", &n_threads,
+           "compression-level|l", &compression_level,
+           "show-progress|p", &show_progress,
+           "tmpdir", &cfg.tmpdir,
+           "hash-table-size", &hash_table_size,
+           "overflow-list-size", &cfg.overflow_list_size,
+           "io-buffer-size", &io_buffer_size,
+           "sort-buffer-size", &sort_buffer_size,
+           "compare-with-picard-mode", &cmp_with_picard_mode);
+
+        if (args.length < 3) {
+            printUsage();
+            return 0;
+        }
+
+        foreach (arg; args[1 .. $-1])
+            protectFromOverwrite(arg, args[$-1]);
+        cfg.tmpdir = randomSubdir(cfg.tmpdir, "markdup-");
+
+        if (n_threads == 0) n_threads = 1;
+        std.parallelism.defaultPoolThreads = n_threads - 1;
+
+        if (cmp_with_picard_mode) {
+            static class PicardChecker {
+                static string output_filename;
+                this(MarkDuplicatesConfig cfg, string fn1, string fn2, TaskPool pool) {
+                    output_filename = buildPath(cfg.tmpdir, "_diff1.bam");
+                    auto output_filename2 = buildPath(cfg.tmpdir, "_diff2.bam");
+                    auto b1 = new BamReader(fn1, pool);
+                    auto b2 = new BamReader(fn2, pool);
+                    b1.setBufferSize(64_000_000);
+                    b2.setBufferSize(64_000_000);
+                    auto w = new BamWriter(output_filename, 1, pool);
+                    auto w2 = new BamWriter(output_filename2, 1, pool);
+                    scope(exit) {
+                        w.finish();
+                        w2.finish();
+                        stderr.writeln("Saved differing reads to ", output_filename,
+                                       " and ", output_filename2);
+                    }
+                    w.writeSamHeader(b1.header);
+                    w.writeReferenceSequenceInfo(b1.reference_sequences);
+                    w2.writeSamHeader(b2.header);
+                    w2.writeReferenceSequenceInfo(b2.reference_sequences);
+                    foreach (pair; zip(b1.reads, b2.reads)) {
+                        if (pair[0].is_duplicate != pair[1].is_duplicate) {
+                            w.writeRecord(pair[0]);
+                            w2.writeRecord(pair[1]);
+                        }
+                    }
+                }
+
+                void check(PairedEndsInfo[] dups) {
+                    if (dups.length != 2 || dups[0].score != dups[1].score) {
+                        writefln("weird group of PE duplicates found, their indices: %(%s, %); scores: %(%s, %)",
+                                 roundRobin(dups.map!"a.idx1", dups.map!"a.idx2"),
+                                 dups.map!"a.score");
+                    }
+                }
+
+                void check(SingleEndInfo[] dups, bool has_paired) {
+                    if (has_paired || dups.length != 2 || dups[0].score != dups[1].score) {
+                        writefln("weird group of SE duplicates found, their indices: %(%s, %); scores: %(%s, %)",
+                                 dups.map!"a.idx", dups.map!"a.score");
+                    }
+                }
+            }
+            auto checker = new PicardChecker(cfg, args[1], args[2], taskPool);
+            args[1] = checker.output_filename;
+            args[2] = "/dev/null";
+            cfg.pe_callback = (pe_dups) => checker.check(pe_dups);
+            cfg.se_callback = (se_dups, has_paired) => checker.check(se_dups, has_paired);
+        }
+
+        io_buffer_size <<= 20; // -> convert to megabytes
+
+        // max. 4 at the same time (single/paired/second reads + dup. indices)
+        cfg.bufsize = sort_buffer_size << 18;
+
+        cfg.hash_table_size_log2 = 10; // FIXME: overrides default value of 18
+        while ((2UL << cfg.hash_table_size_log2) <= hash_table_size)
+            cfg.hash_table_size_log2 += 1;
+        // 2^^(cfg.hash_table_size_log2 + 1) > hash_table_size
+
+        // Set up the BAM reader and pass in the thread pool
+        auto bam = new MultiBamReader(args[1 .. $-1], taskPool);
+        auto n_refs = bam.reference_sequences.length;
+        enforce(n_refs < 16384, "More than 16383 reference sequences are unsupported");
+
+        auto rg_index = new ReadGroupIndex(bam.header);
+
+        stderr.writeln("finding positions of the duplicate reads in the file...");
+
+        InputRange!IndexedBamRead reads;
+        shared(ProgressBar) bar;
+
+        void initInputs() {
+            if (!show_progress)
+                reads = bam.reads.withIndices.inputRangeObject;
+            else {
+                bar = new shared(ProgressBar)();
+                reads = bam.readsWithProgress((lazy float p) { bar.update(p); },
+                                              () { bar.finish(); }).withIndices
+                           .inputRangeObject;
+            }
+        }
+
+        initInputs();
+        auto dup_idx_storage = getDuplicateOffsets(reads, rg_index, taskPool, cfg);
+
+        auto elapsed = sw.peek();
+        stderr.writeln("collected list of positions in ",
+                       elapsed.seconds / 60, " min ",
+                       elapsed.seconds % 60, " sec");
+
+        // marking or removing duplicates
+        bam = new MultiBamReader(args[1 .. $-1]);
+        bam.setBufferSize(io_buffer_size);
+        auto out_stream = new BufferedFile(args[$-1], FileMode.OutNew, io_buffer_size);
+        auto writer = new BamWriter(out_stream, compression_level);
+        writer.setFilename(args[$-1]);
+        scope(exit) writer.finish();
+        auto header = addPG("markdup", unparsed_args, bam.header);
+        writer.writeSamHeader(header);
+        writer.writeReferenceSequenceInfo(bam.reference_sequences);
+
+        stderr.writeln(remove_duplicates ? "removing" : "marking", " duplicates...");
+
+        initInputs();
+
+        auto indices = dup_idx_storage.reader;
+
+        foreach (read; reads) {
+            if (!indices.empty && read.index == indices.front) {
+                assumeUnique(read).is_duplicate = true;
+                indices.popFront();
+            } else if (!read.is_secondary_alignment && !read.is_supplementary) {
+                assumeUnique(read).is_duplicate = false;
+            }
+
+            if (read.is_duplicate && remove_duplicates)
+                continue;
+
+            writer.writeRecord(read);
+        }
+
+        dup_idx_storage.removeTemporaryFiles();
+        try {
+          std.file.rmdirRecurse(cfg.tmpdir);
+        } catch (FileException e) {
+        }
+
+        sw.stop();
+        stderr.writeln("total time elapsed: ",
+                       sw.peek().seconds / 60, " min ",
+                       sw.peek().seconds % 60, " sec");
+
+    } catch (Throwable e) {
+        stderr.writeln("sambamba-markdup: ", e.msg);
+        version(development) { throw e; }
+        return 1;
+    }
+
+    return 0;
+}
diff --git a/sambamba/merge.d b/sambamba/merge.d
new file mode 100644
index 0000000..6cfad25
--- /dev/null
+++ b/sambamba/merge.d
@@ -0,0 +1,466 @@
+/*
+    This file is part of Sambamba.
+    Copyright (C) 2012-2016    Artem Tarasov <lomereiter at gmail.com>
+
+    Sambamba 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; either version 2 of the License, or
+    (at your option) any later version.
+
+    Sambamba 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+module sambamba.merge;
+/*
+   Merging.
+
+   In order for several BAM files to be merged into one, they must firstly be
+   sorted in the same order.
+
+   1) Merging headers.
+
+        a) Merging sequence dictionaries.
+
+            Create map: file -> old ref. ID -> index of sequence name in merged dict
+
+            If sorting order is coordinate, the following invariant holds:
+            for any file, reference sequences sorted by old ref. ID appear in
+            the same order in the merged list (if that's impossible,
+            throw an exception because one of files needs to be sorted again
+            with a different order of reference sequences)
+
+            For that, a graph is created and topological sort is performed.
+
+        b) Merging program records.
+
+            Create map: file -> old program record name -> new program record name
+
+            Some ids can be changed to avoid collisions.
+
+            Invariant: partial order, implied by PP tag, is maintained.
+
+            Program records form disjoint set of trees if we consider this relation,
+            therefore to maintain partial order we walk these trees with BFS,
+            and on each step update changed PP tags.
+
+        c) Merging read group dictionaries.
+
+            The simplest one because there're no restrictions on order.
+            Just detect collisions and rename read groups appropriately in such a case.
+
+   2) Merging alignments.
+
+        Use maps built during merging headers:
+            file -> old reference id -> new reference id,
+            file -> old program record name -> new program record name,
+            file -> old read group name -> new read group name
+
+        filenames -> ranges of alignments for these filenames
+                  -> ranges of alignments modified accordingly to the maps
+                  -> nWayUnion with a comparator corresponding to the common sorting order
+                  -> write BAM with merged header and reference sequences info
+
+   */
+
+import bio.bam.reader;
+import bio.bam.writer;
+import bio.bam.utils.samheadermerger;
+import bio.bam.read;
+
+import std.stdio;
+import std.algorithm;
+import std.conv;
+import std.functional;
+import std.array;
+import std.file;
+import std.range;
+import std.typecons;
+import std.traits;
+import std.numeric;
+import std.parallelism;
+import std.stream;
+import std.getopt;
+
+import core.atomic;
+import core.memory;
+
+import sambamba.utils.common.progressbar;
+import sambamba.utils.common.overwrite;
+import sambamba.utils.common.filtering;
+import sambamba.utils.common.readstorage;
+import bio.core.utils.outbuffer;
+import bio.core.utils.roundbuf;
+import bio.bam.utils.value;
+
+void printUsage() {
+    stderr.writeln("Usage: sambamba-merge [options] <output.bam> <input1.bam> <input2.bam> [...]");
+    stderr.writeln();
+    stderr.writeln("Options: -t, --nthreads=NTHREADS");
+    stderr.writeln("               number of threads to use for compression/decompression");
+    stderr.writeln("         -l, --compression-level=COMPRESSION_LEVEL");
+    stderr.writeln("               level of compression for merged BAM file, number from 0 to 9");
+    stderr.writeln("         -H, --header");
+    stderr.writeln("               output merged header to stdout in SAM format, other options are ignored; mainly for debug purposes");
+    stderr.writeln("         -p, --show-progress");
+    stderr.writeln("               show progress bar in STDERR");
+    stderr.writeln("         -F, --filter=FILTER");
+    stderr.writeln("               keep only reads that satisfy FILTER");
+}
+
+// these variables can be implicitly used in tasks created in writeBAM
+shared(SamHeaderMerger) merger;
+shared(SamHeader) merged_header;
+shared(size_t[size_t][]) ref_id_map;
+shared(size_t[size_t][]) ref_id_reverse_map;
+shared(string[string][]) program_id_map;
+shared(string[string][]) readgroup_id_map;
+
+__gshared static TaskPool task_pool;
+__gshared static Filter read_filter;
+
+auto modifyAlignmentRange(T)(T alignments_with_file_id) {
+    return AlignmentRangeModifier!T(alignments_with_file_id);
+}
+
+ubyte[] modifier(BamRead[] reads, OutBuffer output_buffer, size_t _file_id,
+                 ubyte[] tmp)
+{
+    // it's practically impossible that one will merge > 10000 files,
+    // so add 10 extra bytes for each read (5 for RG and 5 for PG)
+    size_t bytes_required = 0;
+    foreach (read; reads) {
+        bytes_required += read.size_in_bytes + 10;
+    }
+
+    output_buffer.capacity = bytes_required;
+
+    foreach (read; reads) {
+        auto data = read.raw_data;
+
+        auto cigar_offset = 8 * int.sizeof + read.name.length + 1;
+        auto tags_offset = cigar_offset + uint.sizeof * read.cigar.length +
+            (3 * read.sequence_length + 1) / 2;
+
+        auto start_offset = output_buffer.data.length + int.sizeof;
+        auto p = cast(int*)(output_buffer.data.ptr + start_offset - int.sizeof);
+        output_buffer.putUnsafe(int.init);
+        size_t chunk_size = read.size_in_bytes - int.sizeof;
+
+        // change ref. id
+        auto ref_id_ptr = cast(int*)(data.ptr);
+        auto old_ref_id = *ref_id_ptr;
+        if (old_ref_id != -1 && old_ref_id in ref_id_map[_file_id]) {
+            auto new_ref_id = to!int(ref_id_map[_file_id][old_ref_id]);
+            if (new_ref_id != old_ref_id)
+                *ref_id_ptr = new_ref_id;
+        }
+
+        data[cigar_offset - 1] = 0;
+        output_buffer.putUnsafe(data[0 .. tags_offset]);
+
+        auto bytes_written = tags_offset;
+
+        // cool, now change PG and RG tags where needed
+        foreach (tag, value; read) {
+            Value val = value;
+            if (tag == "PG") {
+                auto pg_str = *cast(string*)(&val);
+                if (pg_str in program_id_map[_file_id]) {
+                    auto new_pg = program_id_map[_file_id][pg_str];
+                    if (new_pg != pg_str) {
+                        val = Value(new_pg);
+                        auto delta = new_pg.length - pg_str.length;
+                        chunk_size += cast(int)delta;
+                    }
+                }
+            } else if (tag == "RG") {
+                auto rg_str = *cast(string*)(&val);
+                if (rg_str in readgroup_id_map[_file_id]) {
+                    auto new_rg = readgroup_id_map[_file_id][rg_str];
+                    if (new_rg != rg_str) {
+                        val = Value(new_rg);
+                        auto delta = new_rg.length - rg_str.length;
+                        chunk_size += cast(int)delta;
+                    }
+                }
+            }
+            output_buffer.putUnsafe(cast(ubyte[])tag);
+            emplaceValue(tmp.ptr, val);
+            auto val_size = sizeInBytes(val);
+            output_buffer.putUnsafe(tmp[0 .. val_size]);
+            bytes_written += 2 + val_size;
+        }
+        import std.exception;
+        enforce(bytes_written == chunk_size);
+
+        *p = cast(int)chunk_size;
+    }
+    return output_buffer.data;
+}
+
+struct AlignmentRangeModifier(T) {
+    private {
+        InputRange!BamRead _reads;
+        size_t _file_id;
+
+        alias TaskWithData!(modifier, size_t, ubyte[]) ModifyTask;
+        RoundBuf!ModifyTask _tasks;
+
+        enum _tmp_size = 128 * 1024;
+        size_t _task_index;
+        ubyte[] _tmp;
+        ubyte[] _tmp_space(size_t _task_index) {
+            auto n_tasks = _tmp.length / _tmp_size;
+            auto k =_task_index % n_tasks;
+            return _tmp[k * _tmp_size .. $][0 .. _tmp_size];
+        }
+
+        ubyte[] _curr_data;
+        size_t _bytes_read;
+        size_t _curr_data_len;
+        bool _empty;
+        BamRead _front;
+    }
+
+    bool empty() @property const {
+        return _empty;
+    }
+
+    this(T alignments_with_file_id) {
+        _reads = alignments_with_file_id[0].filtered(read_filter).inputRangeObject;
+        _file_id = alignments_with_file_id[1];
+
+        auto n_tasks = max(task_pool.size, 2) * 4;
+        _tasks = RoundBuf!ModifyTask(n_tasks);
+        _tmp = new ubyte[_tmp_size * n_tasks];
+
+        foreach (i; 0 .. n_tasks) {
+            if (_reads.empty)
+                break;
+            auto t = new ModifyTask();
+            t.input_buffer.fill(&_reads);
+            t.run(task_pool, _file_id, _tmp_space(_task_index));
+            _tasks.put(t);
+            ++_task_index;
+        }
+
+        popFront();
+    }
+
+    BamRead front() {
+        return _front;
+    }
+
+    void popFront() {
+        if (_bytes_read == _curr_data_len) {
+            if (_tasks.empty) {
+                _empty = true;
+                return;
+            }
+
+            auto t = _tasks.front;
+            auto data = t.conversion_task.yieldForce();
+            _curr_data.length = max(data.length, _curr_data.length);
+            _curr_data_len = data.length;
+            _curr_data[0 .. data.length] = data[];
+            _bytes_read = 0;
+            _tasks.popFront();
+            if (!_reads.empty) {
+                t.input_buffer.clear();
+                t.input_buffer.fill(&_reads);
+                t.output_buffer.clear();
+                t.run(task_pool, _file_id, _tmp_space(_task_index));
+                _tasks.put(t);
+                ++_task_index;
+            }
+        }
+
+        int chunk_size = *(cast(int*)(_curr_data.ptr + _bytes_read));
+        auto chunk = _curr_data[int.sizeof + _bytes_read .. $][0 .. chunk_size];
+        bool fix_byte_order = false;
+        _front = BamRead(chunk, fix_byte_order);
+        _bytes_read += int.sizeof + chunk_size;
+    }
+}
+
+version(standalone) {
+    int main(string[] args) {
+        return merge_main(args);
+    }
+}
+
+int merge_main(string[] args) {
+
+    int compression_level = -1;
+    int number_of_threads = totalCPUs;
+    bool validate_headers = false;
+    bool header_only = false;
+    bool show_progress = false;
+    string filter_str = null;
+
+    try {
+
+        getopt(args,
+               std.getopt.config.caseSensitive,
+               "nthreads|t",            &number_of_threads,
+               "compression-level|l",   &compression_level,
+               "validate-headers|v",    &validate_headers,
+               "header|H",              &header_only,
+               "show-progress|p",       &show_progress,
+               "filter|F",              &filter_str);
+
+        if (args.length < 4) {
+          printUsage();
+          return 1;
+        }
+
+        read_filter = createFilterFromQuery(filter_str);
+
+        task_pool = new TaskPool(number_of_threads);
+        scope(exit) task_pool.finish();
+
+        auto output_filename = args[1];
+        auto filenames = args[2 .. $];
+        foreach (filename; filenames)
+            protectFromOverwrite(filename, output_filename);
+
+        GC.disable();
+
+        BamReader[] files;
+        files.length = filenames.length;
+        foreach (i; 0 .. files.length) {
+            files[i] = new BamReader(filenames[i], task_pool);
+            files[i].setBufferSize(50_000_000 / files.length); //TODO
+            files[i].assumeSequentialProcessing();
+        }
+        auto headers = array(map!"a.header"(files));
+
+        GC.disable();
+        merger = cast(shared) new SamHeaderMerger(headers, validate_headers);
+        merged_header = merger.merged_header;
+        ref_id_map = merger.ref_id_map;
+        ref_id_reverse_map = merger.ref_id_reverse_map;
+        readgroup_id_map = merger.readgroup_id_map;
+        program_id_map = merger.program_id_map;
+
+        auto strategy = cast()merger.strategy;
+        auto n_references = (cast()merged_header).sequences.length;
+
+        if (header_only) {
+            write((cast()merged_header).text);
+            return 0;
+        }
+
+        // alignmentranges must hold tuples of some range of alignment and file id
+        void mergeAlignments(R)(R alignmentranges) {
+            // ranges with replaced reference ID, PG and RG tags
+            auto modifiedranges = array(map!modifyAlignmentRange(alignmentranges));
+
+            // write BAM file
+            Stream stream = new BufferedFile(output_filename, FileMode.OutNew, 50_000_000); // TODO
+            scope(failure) stream.close();
+
+            auto reference_sequences = new ReferenceSequenceInfo[(cast()merged_header).sequences.length];
+            size_t i;
+            foreach (line; (cast()merged_header).sequences.values) {
+                reference_sequences[i] = ReferenceSequenceInfo(line.name, line.length);
+                ++i;
+            }
+
+            auto writer = new BamWriter(stream, compression_level, task_pool);
+            writer.setFilename(output_filename);
+            scope(exit) writer.finish();
+            writer.writeSamHeader(cast()merged_header);
+            writer.writeReferenceSequenceInfo(reference_sequences);
+
+            switch (merged_header.sorting_order) {
+                case SortingOrder.queryname:
+                    foreach (read; nWayUnion!compareReadNames(modifiedranges))
+                        writer.writeRecord(read);
+                    break;
+                case SortingOrder.coordinate:
+                    foreach (read; nWayUnion!compareCoordinates(modifiedranges))
+                        writer.writeRecord(read);
+                    break;
+                default: assert(0);
+            }
+        } // mergeAlignments
+
+        if (show_progress && strategy == SamHeaderMerger.Strategy.simple) {
+            // tuples of (alignments, file_id)
+            shared(float[]) merging_progress;
+            merging_progress.length = files.length;
+
+            auto bar = new shared(ProgressBar)();
+
+            alias ReturnType!(BamReader.readsWithProgress!withoutOffsets) AlignmentRangePB;
+            auto alignmentranges_with_file_ids = new Tuple!(AlignmentRangePB, size_t)[files.length];
+
+            auto weights = cast(shared)array(map!(pipe!(getSize, to!float))(filenames));
+            normalize(cast()weights);
+
+            foreach (i; 0 .. files.length) {
+                alignmentranges_with_file_ids[i] = tuple(
+                        files[i].readsWithProgress(
+                            (size_t j) {
+                                return (lazy float p) {
+                                    atomicStore(merging_progress[j], p);
+                                    synchronized (bar) {
+                                        bar.update(dotProduct(merging_progress, weights));
+                                    }
+                                };
+                            }(i)),
+                        i
+                );
+            }
+            mergeAlignments(alignmentranges_with_file_ids);
+
+            bar.finish();
+        } else {
+            if (strategy == SamHeaderMerger.Strategy.simple) {
+                auto alignmentranges_with_file_ids = array(
+                        zip(map!"a.reads"(files), iota(files.length))
+                        );
+                mergeAlignments(alignmentranges_with_file_ids);
+            } else {
+                alias Tuple!(InputRange!BamRead, size_t) R;
+                auto alignmentranges_with_file_ids = new R[files.length];
+                foreach (k; 0 .. files.length) {
+                    size_t[] order; // order of reference ids to fetch
+                    order.length = files[k].reference_sequences.length;
+                    size_t n_refs; // in this particular file
+                    foreach (j; 0 .. n_references) { // refs from all files
+                        auto old_ref_id_ptr = j in ref_id_reverse_map[k];
+                        if (old_ref_id_ptr !is null) {
+                            order[n_refs++] = *old_ref_id_ptr;
+                        }
+                    }
+                    assert(n_refs == order.length);
+                    order = order[0 .. n_refs];
+                    auto reads = order.map!(
+                            ref_id => files[k].reference(cast(int)ref_id)[]
+                            ).joiner().chain(files[k].unmappedReads())
+                             .map!(r => r.read).inputRangeObject();
+                    alignmentranges_with_file_ids[k] = tuple(reads, k);
+                }
+                mergeAlignments(alignmentranges_with_file_ids);
+            }
+        }
+
+    } catch (Throwable e) {
+        version(development) {
+            throw e;
+        } else {
+            stderr.writeln("sambamba-merge: ", e.msg);
+            return 1;
+        }
+    }
+    return 0;
+}
diff --git a/sambamba/pileup.d b/sambamba/pileup.d
new file mode 100644
index 0000000..aed9a40
--- /dev/null
+++ b/sambamba/pileup.d
@@ -0,0 +1,726 @@
+/*
+    This file is part of Sambamba.
+    Copyright (C) 2012-2016    Artem Tarasov <lomereiter at gmail.com>
+
+    Sambamba 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; either version 2 of the License, or
+    (at your option) any later version.
+
+    Sambamba 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+/** module for executing samtools mpileup in parallel using named pipes,
+ *  after chunking a file
+ */
+
+module sambamba.pileup;
+
+import sambamba.utils.common.bed;
+import sambamba.utils.common.tmpdir;
+import sambamba.utils.common.overwrite;
+import utils.lz4;
+
+import bio.bam.multireader;
+import bio.bam.reader;
+import bio.bam.writer;
+import bio.bam.pileup;
+
+import bio.core.utils.format : write;
+import bio.core.utils.roundbuf;
+import bio.core.utils.stream;
+
+import std.process;
+import std.stdio;
+import std.parallelism;
+import std.file : rmdirRecurse;
+import std.algorithm;
+import std.array;
+import std.getopt;
+import std.string : strip, indexOf, toStringz;
+import std.c.stdlib;
+import std.typecons;
+import std.stream;
+import std.range;
+import std.algorithm;
+import std.path;
+import std.traits;
+import std.typecons;
+import std.conv;
+import std.container;
+
+import core.thread;
+import core.sync.mutex, core.sync.condition;
+import core.sys.posix.sys.stat;
+import core.sys.posix.stdio : fopen;
+import core.stdc.errno;
+
+extern(C) char* mkdtemp(char* template_);
+extern(C) int mkfifo(immutable(char)* fn, int mode);
+
+string samtoolsBin     = null;  // cached path to samtools binary
+string samtoolsVersion = null;
+string bcftoolsBin     = null;
+string bcftoolsVersion = null;
+
+// Return path to samtools after testing whether it exists and supports mpileup
+auto samtoolsInfo()
+{
+  if (samtoolsBin == null) {
+    auto paths = environment["PATH"].split(":");
+    auto a = array(filter!(path => std.file.exists(path ~ "/samtools"))(paths));
+    if (a.length == 0)
+      throw new Exception("failed to locate samtools executable in PATH");
+    samtoolsBin = a[0] ~ "/samtools";
+    // we found the path, now test the binary
+    auto samtools = execute([samtoolsBin]);
+    if (samtools.status != 1)
+      throw new Exception("samtools failed: ", samtools.output);
+    samtoolsVersion = samtools.output.split("\n")[2];
+    if (samtoolsVersion.startsWith("Version: 0."))
+      throw new Exception("versions 0.* of samtools/bcftools are unsupported");
+  }
+  return [samtoolsBin, samtoolsVersion];
+}
+
+auto samtoolsPath() { return samtoolsInfo()[0]; }
+
+auto bcftoolsPath()
+{
+  if (bcftoolsBin == null) {
+    auto paths = environment["PATH"].split(":");
+    auto a = array(filter!(path => std.file.exists(path ~ "/bcftools"))(paths));
+    if (a.length == 0)
+      throw new Exception("failed to locate bcftools executable in PATH");
+    bcftoolsBin = a[0] ~ "/bcftools";
+    // we found the path, now test the binary
+    auto bcftools = execute([bcftoolsBin]);
+    if (bcftools.status != 1)
+      throw new Exception("bcftools failed: ", bcftools.output);
+    bcftoolsVersion = bcftools.output.split("\n")[2];
+    if (bcftoolsVersion.startsWith("Version: 0."))
+      throw new Exception("versions 0.* of samtools/bcftools are unsupported");
+  }
+  return [bcftoolsBin, bcftoolsVersion];
+}
+
+void makeFifo(string filename) {
+    auto s = toStringz(filename);
+    int ret = mkfifo(s, octal!"666");
+    if (ret == -1) {
+        stderr.writeln(errno);
+        throw new Exception("failed to create named pipe " ~ filename);
+    }
+}
+
+struct BedRecord {
+    string reference;
+    ulong start;
+    ulong end;
+
+    void toString(scope void delegate(const(char)[]) dg) const {
+        dg.write(reference);
+        dg.write('\t');
+        dg.write(start);
+        dg.write('\t');
+        dg.write(end);
+    }
+}
+
+struct MArray(T) { T[] data; T* ptr; }
+
+MArray!char data;
+
+__gshared string this_app;
+
+private {
+    struct Recipe {
+        string strip_header_cmd;
+        string compression_cmd;
+        void function (ubyte[] data, std.stdio.File output_file) decompressionFunc;
+    }
+
+    void dump(ubyte[] data, std.stdio.File output_file) {
+        output_file.rawWrite(data);
+    }
+
+    void lz4decompress(ubyte[] data, std.stdio.File output_file) {
+        lz4decompressor.decompress(new MemoryStream(data), output_file);
+    }
+
+    __gshared Recipe[FileFormat] recipes;
+    __gshared LZ4Decompressor lz4decompressor;
+}
+
+// TODO: fix bcftoolsCommand and samtoolsCommand in the header
+void init() {
+    lz4decompressor = new LZ4Decompressor();
+
+    recipes[FileFormat.pileup] =          Recipe(this_app~" strip_bcf_header --vcf",
+                                                 this_app~" lz4compress",
+                                                 &lz4decompress);
+    recipes[FileFormat.BCF] =             Recipe(this_app~" strip_bcf_header --bcf",
+                                                 null,
+                                                 &dump);
+    recipes[FileFormat.uncompressedBCF] = Recipe(this_app~" strip_bcf_header --ubcf",
+                                                 this_app~" lz4compress",
+                                                 &lz4decompress);
+    recipes[FileFormat.VCF] =             Recipe(this_app~" strip_bcf_header --vcf",
+                                                 this_app~" lz4compress",
+                                                 &lz4decompress);
+}
+
+string makeInputCmdLine(string input_cmd, FileFormat input_format, bool strip_header) {
+    auto recipe = recipes[input_format];
+    string cmd = input_cmd;
+    if (strip_header && recipe.strip_header_cmd !is null)
+        cmd ~= "| " ~ recipe.strip_header_cmd;
+    if (recipe.compression_cmd !is null)
+        cmd ~= "| " ~ recipe.compression_cmd;
+    return cmd;
+}
+
+void decompressIntoFile(char[] data, FileFormat input_format,
+                        std.stdio.File output_file) {
+    recipes[input_format].decompressionFunc(cast(ubyte[])data, output_file);
+}
+
+struct Args {
+    string[] samtools_args;
+    string[] bcftools_args;
+    FileFormat input_format;
+
+    this(string[] samtools_args_, string[] bcftools_args_) {
+        samtools_args = unbundle(samtools_args_);
+        bcftools_args = unbundle(bcftools_args_, "O"); // keep -Ov|-Ob|...
+        auto samtools_output_fmt = fixSamtoolsArgs(samtools_args, !bcftools_args.empty);
+        auto bcftools_output_fmt = fixBcftoolsArgs(bcftools_args);
+
+        input_format = samtools_output_fmt;
+        if (bcftools_args.length > 0)
+            input_format = bcftools_output_fmt;
+    }
+
+    string makeCommandLine(string filename) {
+        auto basic_args = [samtoolsPath(), "mpileup", filename];
+        basic_args ~= ["-l", filename ~ ".bed"];
+        auto samtools_cmd = (basic_args ~ samtools_args).join(" ");
+        string cmd = samtools_cmd;
+        if (bcftools_args.length > 0) {
+            auto bcftools_cmd = bcftoolsPath()[0] ~ " " ~ bcftools_args.join(" ");
+            cmd = samtools_cmd ~ " | " ~ bcftools_cmd;
+        }
+
+        bool strip_header = !filename.endsWith("/1");
+        return makeInputCmdLine(cmd, input_format, strip_header);
+    }
+}
+
+enum FileFormat {
+    pileup,
+    BCF,
+    uncompressedBCF,
+    VCF,
+    gzippedVCF
+}
+
+string[] unbundle(string[] args, string exclude="") {
+    import std.ascii : isAlpha;
+    import std.conv : text;
+    import std.algorithm : count;
+    string[] unbundled;
+    foreach (a; args) {
+        if (a.length >= 2 && a[0] == '-' && exclude.count(a[1]) == 0) {
+            string[] expanded;
+            foreach (j, dchar c; a[1 .. $])
+            {
+                if (!isAlpha(c)) {
+                    expanded ~= a[j + 1 .. $];
+                    break;
+                }
+                expanded ~= text('-', c);
+            }
+            unbundled ~= expanded;
+        } else {
+            unbundled ~= a;
+        }
+    }
+    return unbundled;
+}
+
+// input: unbundled samtools arguments
+// output: detected output format
+FileFormat fixSamtoolsArgs(ref string[] args, bool use_caller) {
+    bool vcf = false;
+    bool bcf = false;
+    bool uncompressed = false;
+    bool[] keep;
+    foreach (i; 0 .. args.length) {
+        if (args[i] == "-o") {
+            throw new Exception("-o argument of samtools is disallowed, use --output-filename argument of sambamba mpileup");
+        }
+        if (args[i] == "-g") {
+            bcf = true; keep ~= true;
+        } else if (args[i] == "-v") {
+            vcf = true; keep ~= !use_caller;
+        } else if (args[i] == "-u") {
+            bcf = true; uncompressed = true; keep ~= true;
+        } else {
+            keep ~= true;
+        }
+    }
+
+    string[] fixed_args;
+    foreach (i; 0 .. args.length) {
+        if (keep[i])
+            fixed_args ~= args[i];
+    }
+
+    bool fixes_applied;
+    if (vcf && use_caller) {
+        fixed_args ~= ["-g", "-u"];
+        fixes_applied = true;
+    } else if (bcf && use_caller && !uncompressed) {
+        fixed_args ~= "-u";
+        fixes_applied = true;
+    }
+
+    args = fixed_args;
+
+    if (fixes_applied && use_caller) {
+        stderr.writeln("NOTE: changed samtools output format to uncompressed BCF for better performance (-gu)");
+    }
+
+    if (bcf && vcf) {
+        throw new Exception("samtools can't be asked for both -g and -v");
+    } else if (bcf && uncompressed) {
+        return FileFormat.uncompressedBCF;
+    } else if (bcf && !uncompressed) {
+        return FileFormat.BCF;
+    } else if (vcf && uncompressed) {
+        return FileFormat.VCF;
+    } else if (vcf && !uncompressed) {
+        // TODO
+        throw new Exception("compressed VCF is not supported, please use bgzip and uncompressed VCF");
+    } else {
+        return FileFormat.pileup;
+    }
+}
+
+// input: unbundled bcftools arguments
+// output: detected output format
+FileFormat fixBcftoolsArgs(ref string[] args) {
+    FileFormat fmt = FileFormat.VCF;
+    bool[] keep;
+    foreach (i; 0 .. args.length) {
+        if (args[i] == "-o") {
+            throw new Exception("-o argument of bcftools is disallowed, use --output-filename argument of sambamba mpileup");
+        }
+        if (args[i] == "-Ov") {
+            fmt = FileFormat.VCF; keep ~= true;
+        } else if (args[i] == "-Oz") {
+            // TODO
+            throw new Exception("compressed VCF is not supported, please use bgzip and uncompressed VCF");
+            fmt = FileFormat.gzippedVCF; keep ~= false;
+        } else if (args[i] == "-Ob") {
+            fmt = FileFormat.BCF; keep ~= true;
+        } else if (args[i] == "-Ou") {
+            fmt = FileFormat.uncompressedBCF; keep ~= true;
+        } else {
+            keep ~= true;
+        }
+    }
+
+    string[] fixed_args;
+    foreach (i; 0 .. args.length) {
+        if (keep[i])
+            fixed_args ~= args[i];
+    }
+
+    args = fixed_args;
+    return fmt;
+}
+
+class ChunkDispatcher(ChunkRange) {
+    private string tmp_dir_;
+    private ChunkRange chunks_;
+    private MultiBamReader bam_;
+    private size_t num_, curr_num_ = 1;
+    private int total_num_;
+    private FileFormat format_;
+    private std.stdio.File output_file_;
+    private size_t max_queue_length_;
+    private int prev_ref_id;
+    private ulong prev_pos_diff;
+    private size_t max_queue_data_size_;
+    private size_t curr_queue_data_size_;
+
+    private Mutex mutex_, queue_mutex_;
+    private Condition queue_not_empty_condition_, queue_not_full_condition_;
+
+    alias Tuple!(size_t, "num", char[], "data") Result;
+    alias Array!(Result) ResultQueue;
+    private BinaryHeap!(ResultQueue, "a.num > b.num") result_queue_;
+
+    alias ElementType!(Unqual!(ChunkRange)) Chunk;
+
+    this(string tmp_dir, ChunkRange chunks, MultiBamReader bam,
+         FileFormat format, std.stdio.File output_file, size_t max_queue_length,
+         size_t max_queue_data_size) {
+        tmp_dir_ = tmp_dir;
+        chunks_ = chunks;
+        bam_ = bam;
+        num_ = 0;
+        total_num_ = -1;
+        mutex_ = new Mutex();
+        queue_mutex_ = new Mutex();
+        queue_not_empty_condition_ = new Condition(queue_mutex_);
+        queue_not_full_condition_ = new Condition(queue_mutex_);
+        result_queue_ = heapify!("a.num > b.num", ResultQueue)(ResultQueue());
+        format_ = format;
+        output_file_ = output_file;
+        max_queue_length_ = max_queue_length;
+        max_queue_data_size_ = max_queue_data_size;
+    }
+
+    Nullable!(Tuple!(Chunk, string, size_t)) nextChunk() {
+        mutex_.lock();
+        scope(exit) mutex_.unlock();
+
+        typeof(return) chunk;
+        if (chunks_.empty) {
+            if (num_ == 0)
+                total_num_ = num_.to!int();
+            return chunk;
+        }
+
+        if (chunks_.front.ref_id >= bam_.reference_sequences.length) {
+            if (chunks_.front.ref_id != -1)
+              stderr.writeln("Invalid ref. id ", chunks_.front.ref_id, " in chunk #", num_ + 1);
+            return chunk;
+        }
+        ++num_;
+
+        auto filename = buildPath(tmp_dir_, num_.to!string());
+        chunk = tuple(chunks_.front, filename, num_);
+        chunks_.popFront();
+        if (chunks_.empty) {
+            stderr.writeln("[Last chunk fetched] ", num_);
+            total_num_ = num_.to!int();
+        }
+
+        if (num_ > 1) {
+            ulong diff = chunk[0].end_position - chunk[0].start_position;
+            int ref_id = chunk[0].ref_id;
+            if (ref_id == prev_ref_id && !chunk[0].front.reads.empty &&
+                prev_pos_diff + diff < chunk[0].front.reads[0].sequence_length) // assume reads are ~same length
+                stderr.writeln("[WARNING] COVERAGE IS TOO HIGH, INCREASE --buffer-size TO AVOID WRONG RESULTS");
+            prev_pos_diff = diff;
+            prev_ref_id = ref_id;
+        }
+
+        auto ref_name = bam_.reference_sequences[chunk[0].ref_id].name;
+        auto f = std.stdio.File(filename ~ ".bed", "w");
+        if (bed_filename is null) {
+            auto start = chunk[0].start_position;
+            auto end = chunk[0].end_position;
+
+            auto bed = BedRecord(ref_name, start, end);
+            f.writeln(bed);
+        } else {
+            foreach (reg; regions) {
+                if (chunk[0].ref_id != reg.ref_id) continue;
+                auto start = max(reg.start, chunk[0].start_position);
+                auto end = min(reg.end, chunk[0].end_position);
+                if (start > end) continue;
+                auto bed = BedRecord(ref_name, start, end);
+                f.writeln(bed);
+            }
+        }
+        f.close();
+
+        return chunk;
+    }
+
+    void queueResult(size_t num, char[] data) {
+        synchronized(queue_mutex_) {
+            while (true) { // wait until it's good time to put the result into the output queue
+                if (num == curr_num_) // always put if it should be written out now
+                    break;
+                if (result_queue_.empty) // always put if the queue is empty
+                    break;
+
+                if (result_queue_.length >= max_queue_length_) {
+                    stderr.writeln("[chunk waiting for dump queue] ", num, " (output is too slow: reduce threads or improve output speed)");
+                    queue_not_full_condition_.wait();
+                } else if (curr_queue_data_size_ + data.length > max_queue_data_size_) {
+                    stderr.writeln("[chunk waiting for dump queue] ", num, " (output is too large: increase buffer size)");
+                    queue_not_full_condition_.wait();
+                } else {
+                    break;
+                }
+            }
+            result_queue_.insert(Result(num, data));
+            curr_queue_data_size_ += data.length;
+            queue_not_empty_condition_.notify();
+        }
+        stderr.writeln("[chunk queued for dumping] ", num);
+    }
+
+    void dumpResults() {
+        Result result;
+        while (!dumpFinished()) {
+            synchronized(queue_mutex_) {
+                while (!hasDumpableResult()) {
+                    queue_not_empty_condition_.wait();
+                }
+                result = result_queue_.front;
+                result_queue_.popFront();
+                curr_queue_data_size_ -= result.data.length;
+                ++curr_num_;
+                queue_not_full_condition_.notifyAll();
+            }
+            decompressIntoFile(result.data, format_, output_file_);
+            stderr.writeln("[chunk dumped] ", result.num);
+            std.c.stdlib.free(result.data.ptr);
+        }
+    }
+
+private:
+    bool hasDumpableResult() {
+        synchronized(queue_mutex_) {
+            return !result_queue_.empty() && result_queue_.front.num == curr_num_;
+        }
+    }
+
+    bool dumpFinished() {
+        return total_num_ >= 0 && curr_num_.to!int() > total_num_;
+    }
+}
+
+void worker(Dispatcher)(Dispatcher d,
+                        MultiBamReader bam,
+                        Args args) {
+    while (true) {
+        auto result = d.nextChunk();
+        if (result.isNull)
+            return;
+
+        auto chunk = result[0];
+        auto filename = result[1];
+        auto num = result[2];
+        makeFifo(filename);
+
+        import core.sys.posix.signal;
+        signal(SIGPIPE, SIG_IGN);
+
+        auto writing_thread = new Thread(() {
+
+            auto output_stream = new bio.core.utils.stream.File(filename, "w");
+            stderr.writeln("[opened FIFO for writing] ", filename);
+            auto writer = new BamWriter(output_stream, 0);
+            writer.writeSamHeader(bam.header);
+            writer.writeReferenceSequenceInfo(bam.reference_sequences);
+            foreach (read; chunk.reads)
+                writer.writeRecord(read);
+            writer.finish();
+            stderr.writeln("[closed FIFO] ", filename);
+            });
+
+        auto cmd = args.makeCommandLine(filename);
+        stderr.writeln("[executing] ", cmd);
+        auto pp = pipeShell(cmd, Redirect.stdout);
+
+        writing_thread.start();
+
+        size_t capa = 1_024_576;
+        size_t used = 0;
+        char* output = cast(char*)std.c.stdlib.malloc(capa);
+
+        char[4096] buffer = void;
+        while (true) {
+            auto buf = pp.stdout.rawRead(buffer[]);
+            if (buf.length == 0)
+                break;
+            if (used + buf.length > capa) {
+                capa = max(capa * 2, used + buf.length);
+                output = cast(char*)std.c.stdlib.realloc(cast(void*)output, capa);
+                if (output is null)
+                    throw new Exception("failed to allocate " ~ capa.to!string ~ " bytes");
+            }
+            output[used .. used + buf.length] = buf[];
+            used += buf.length;
+        }
+
+        writing_thread.join();
+        pp.pid.wait();
+
+        d.queueResult(num, output[0 .. used]);
+    }
+}
+
+auto chunkDispatcher(ChunkRange)(string tmp_dir, ChunkRange chunks,
+                                 MultiBamReader bam, FileFormat format,
+                                 std.stdio.File output_file, size_t max_queue_length, size_t max_queue_data_size) {
+  return new ChunkDispatcher!ChunkRange(tmp_dir, chunks, bam, format, output_file, max_queue_length, max_queue_data_size);
+}
+
+void printUsage() {
+    stderr.writeln("usage: sambamba-pileup [options] input.bam [input2.bam [...]]");
+    stderr.writeln("                       [--samtools <samtools mpileup args>]");
+    stderr.writeln("                       [--bcftools <bcftools call args>]");
+    stderr.writeln();
+    stderr.writeln("This subcommand relies on external tools and acts as a multi-core implementation of samtools and bcftools.");
+    stderr.writeln("Therefore, the following tools should be present in $PATH:");
+    stderr.writeln("    * samtools");
+    stderr.writeln("    * bcftools (when used)");
+    stderr.writeln();
+    stderr.writeln("If --samtools is skipped, samtools mpileup is called with default arguments");
+    stderr.writeln("If --bcftools is used without parameters, samtools is called with");
+    stderr.writeln("     switch '-gu' and bcftools is called as 'bcftools view -'");
+    stderr.writeln("If --bcftools is skipped, bcftools is not called");
+    stderr.writeln();
+    stderr.writeln("Sambamba splits input BAM files into chunks and feeds them");
+    stderr.writeln("to samtools mpileup and, optionally, bcftools in parallel.");
+    stderr.writeln("The chunks are slightly overlapping so that variant calling");
+    stderr.writeln("should not be impacted by these manipulations. The obtained results");
+    stderr.writeln("from the multiple processes are combined as ordered output.");
+    stderr.writeln();
+    stderr.writeln("Sambamba options:");
+//    stderr.writeln("         -F, --filter=FILTER");
+//    stderr.writeln("                    set custom filter for alignments");
+    stderr.writeln("         -L, --regions=FILENAME");
+    stderr.writeln("                    provide BED file with regions");
+    stderr.writeln("                    (no need to duplicate it in samtools args);");
+    stderr.writeln("                    all input files must be indexed");
+    stderr.writeln("         -o, --output-filename=<STDOUT>");
+    stderr.writeln("                    specify output filename");
+    stderr.writeln("         --tmpdir=TMPDIR");
+    stderr.writeln("                    directory for temporary files");
+    stderr.writeln("         -t, --nthreads=NTHREADS");
+    stderr.writeln("                    maximum number of threads to use");
+    stderr.writeln("         -b, --buffer-size=64_000_000");
+    stderr.writeln("                    chunk size (in bytes)");
+    stderr.writeln("         -B, --output-buffer-size=512_000_000");
+    stderr.writeln("                    output buffer size (in bytes)");
+}
+
+version(standalone) {
+    int main(string[] args) {
+       return pileup_main(args);
+    }
+}
+
+string output_filename = null;
+__gshared string bed_filename = null;
+__gshared BamRegion[] regions;
+
+int pileup_main(string[] args) {
+    this_app = args[0];
+    init();
+
+    auto bcftools_args = find(args, "--bcftools");
+    auto args1 = (bcftools_args.length>0 ? args[0 .. $-bcftools_args.length] : args );
+    auto samtools_args = find(args1, "--samtools");
+    auto own_args = (samtools_args.length>0 ? args1[0 .. $-samtools_args.length] : args1 );
+
+    if (!samtools_args.empty) {
+        samtools_args.popFront();
+    } else {
+        samtools_args = [];
+    }
+
+    if (!bcftools_args.empty) {
+        bcftools_args.popFront(); // remove the switch --bcftools
+    }
+
+    //string query;
+    uint n_threads = defaultPoolThreads;
+    std.stdio.File output_file = stdout;
+    size_t buffer_size = 64_000_000;
+    size_t output_buffer_size = 512_000_000;
+
+    string tmp_dir_prefix = defaultTmpDir();
+
+    try {
+        getopt(own_args,
+               std.getopt.config.caseSensitive,
+               "regions|L",         &bed_filename,
+               //"filter|F",          &query,
+               "output-filename|o", &output_filename,
+               "tmpdir",            &tmp_dir_prefix,
+               "nthreads|t",        &n_threads,
+               "buffer-size|b",     &buffer_size,
+               "output-buffer-size|B", &output_buffer_size);
+
+        if (own_args.length < 2) {
+            printUsage();
+            return 0;
+        }
+
+        stderr.writeln("samtools mpileup options: ",samtools_args.join(" "));
+        if (bcftools_args.length>0)
+            stderr.writeln("bcftools options: ", bcftools_args.join(" "));
+
+        if (output_filename != null) {
+            foreach (filename; own_args[1 .. $])
+                protectFromOverwrite(filename, output_filename);
+            output_file = std.stdio.File(output_filename, "w+");
+        }
+
+        defaultPoolThreads = n_threads;
+        auto bam = new MultiBamReader(own_args[1 .. $]);
+
+        string tmp_dir = randomSubdir(tmp_dir_prefix);
+        scope(exit) rmdirRecurse(tmp_dir);
+
+        auto bundled_args = Args(samtools_args, bcftools_args);
+
+        InputRange!BamRead reads;
+        if (bed_filename is null) {
+            reads = inputRangeObject(bam.reads().map!`a.read`);
+        } else {
+            regions = parseBed(bed_filename, bam);
+            reads = inputRangeObject(bam.getReadsOverlapping(regions).map!`a.read`);
+        }
+
+        auto chunks = reads.pileupChunks(false, buffer_size);
+        auto dispatcher = chunkDispatcher(tmp_dir, chunks, bam, bundled_args.input_format, output_file,
+                                          2 * n_threads, output_buffer_size);
+
+        auto writer = new Thread(&dispatcher.dumpResults);
+        writer.start();
+        auto threads = new ThreadGroup();
+
+        scope (exit) {
+            output_file.close();
+        }
+
+        foreach (i; 0 .. max(1, n_threads))
+            threads.create(() { worker(dispatcher, bam, bundled_args); });
+
+        threads.joinAll();
+        writer.join();
+        stderr.writeln("[Successful exit]");
+
+        return 0;
+
+    } catch (Exception e) {
+        stderr.writeln("sambamba-pileup: ", e.msg);
+
+        version(development) {
+            throw e;
+        }
+
+        return 1;
+    }
+
+    return 0;
+}
diff --git a/sambamba/slice.d b/sambamba/slice.d
new file mode 100644
index 0000000..bc55ccd
--- /dev/null
+++ b/sambamba/slice.d
@@ -0,0 +1,334 @@
+/*
+    This file is part of Sambamba.
+    Copyright (C) 2012-2014    Artem Tarasov <lomereiter at gmail.com>
+
+    Sambamba 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; either version 2 of the License, or
+    (at your option) any later version.
+
+    Sambamba 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+module sambamba.slice;
+
+import bio.bam.reader;
+import bio.bam.writer;
+import bio.bam.constants;
+import bio.core.bgzf.block;
+import bio.core.bgzf.compress;
+import bio.core.utils.stream;
+import bio.core.region;
+
+import std.array;
+import std.stream;
+import std.getopt;
+import std.parallelism;
+import std.conv;
+import std.stdio;
+import std.exception;
+
+import sambamba.utils.common.overwrite;
+
+/**
+    Consider interval [beg .. end) on the reference, where 0 <= beg < end.
+
+    Let R1 = { read from BAM file | read overlaps [beg .. end), read.position < beg },
+        R2 = { read from BAM file | beg <= read.position < end },
+
+        s1_start_offset = virtual offset of the first read that overlaps [beg .. end)
+        s2_start_offset = virtual offset of the first read whose position >= beg
+        s2_end_offset = virtual offset of the first read whose position >= end
+
+                /\/\/\/\/\/\/\/\/\/\/\/\/#########==============  ...  =============#####      
+BGZF blocks   ..........)[...........)[..........)[..........)[.  ...  ....)[.........)[.......
+                .                        .                                               .     
+                s1_start_offset          s2_start_offset                          s2_end_offset
+                                                                                               
+                /\/\/\/\/\/\/\/\/\/\/\/\/######                   ...                          
+         ...)[..........)[...........)[..........)[..........)[.  ...  ....)[.........)[.......
+                .                        .     .                                               
+                s1_start_offset   s2_start_offset, s2_end_offset                               
+
+    These numbers are not correctly defined in some cases, so let's extend their
+    definitions.
+
+    1) There are no reads that overlap [beg .. end) (R1 and R2 are empty)
+        Set all three numbers to the virtual offset of the end of file.
+    2) There are no reads that have position >= beg (R2 is empty)
+        Set both s2_start_offset and s2_end_offset to the end virtual offset of the last read in R1.
+    3) There are reads that have position >= beg, but no one with position >= end
+        Set s2_end_offset to the end virtual offset of the last read from current reference.
+
+    Define sets
+    S1 = { read | s1_start_offset <= read.start_virtual_offset < s2_start_offset },
+    S2 = { read | s2_start_offset <= read.start_virtual_offset < s2_end_offset }
+
+    Notice that R1 is a subset of S1, and R2 = S2.
+
+    Now we divide the algorithm into subcases.
+
+    1) Both R1 and R2 are empty.
+        
+        Output BAM file with no reads.
+
+    2) R1 is not empty, R2 is empty.
+
+        Output BAM file with reads from R1, creating new BGZF blocks for all of them.
+
+    3) R1 is empty, R2 is not empty.
+
+        First of all, output BAM header and reference sequences information.
+
+        Take first read from R2. Adjust its first BGZF block by chomping s2_start_offset.uoffset
+        from the left, and output it. Set start_offset to the start file offset of the next BGZF block.
+        Take last read from R2. Adjust its last BGZF block by chomping everything after the end of
+        the alignment record. Set end_offset to the start file offset of this BGZF block.
+        
+        Output first adjusted block, then copy of file since start_offset till end_offset, then
+        second adjusted block.
+
+        (It may turn out that after chomping some of blocks are empty. In this case we skip them.)
+
+    4) R1 and R2 are not empty.
+
+        Since R1 and R2 are disjoint, combine approaches 2) and 3)
+*/
+
+
+void fetchRegion(BamReader bam, Region region, ref Stream stream)
+{
+    auto chr = region.reference;
+    auto beg = region.beg;
+    auto end = region.end;
+
+    auto filename = bam.filename;
+
+    auto reads1 = bam[chr][beg .. end];
+
+    auto eof_offset = bam.eofVirtualOffset();
+
+    VirtualOffset s1_start_offset;
+    VirtualOffset s2_start_offset;
+    VirtualOffset s2_end_offset = eof_offset;
+
+    if (reads1.empty) {
+        s1_start_offset = s2_start_offset = eof_offset;
+    } else {
+        s1_start_offset = s2_start_offset = reads1.front.start_virtual_offset;
+    }
+
+    // Set R1
+    auto r1 = appender!(typeof(reads1.front)[])();
+
+    while (!reads1.empty) {
+        auto front = reads1.front;
+        if (front.position < beg) {
+            r1.put(front);
+            s2_start_offset = front.end_virtual_offset;
+            reads1.popFront();
+        } else {
+            break;
+        }
+    }
+
+    auto reference = bam[chr];
+    if (end == uint.max)
+        end = reference.length;
+    auto reads2 = reference[end .. uint.max];
+
+    if (reads1.empty && reads2.empty) {
+        // are there any reads with position >= beg?
+        s2_end_offset = s2_start_offset;
+    } else if (!reads1.empty && reads2.empty) { 
+        // are there any reads with position >= end?
+        s2_end_offset = bam[chr].endVirtualOffset();
+    } else {
+        foreach (read; reads2) {
+            s2_end_offset = read.start_virtual_offset;
+            if (read.position >= end) {
+                break;
+            }
+        }
+    }
+
+    // write header and reference sequence information
+    auto writer = new BamWriter(stream);
+    writer.writeSamHeader(bam.header);
+    writer.writeReferenceSequenceInfo(bam.reference_sequences);
+    // write R1
+    foreach (read; r1.data)
+        writer.writeRecord(read);
+    writer.flush();
+
+    copyAsIs(bam, stream, s2_start_offset, s2_end_offset);
+    // write EOF
+    stream.writeExact(BAM_EOF.ptr, BAM_EOF.length);
+}
+
+void fetchUnmapped(BamReader bam, Stream stream) {
+    auto writer = new BamWriter(stream);
+    writer.writeSamHeader(bam.header);
+    writer.writeReferenceSequenceInfo(bam.reference_sequences);
+    writer.flush();
+
+    auto unmapped_reads = bam.unmappedReads();
+    if (!unmapped_reads.empty) {
+        copyAsIs(bam, stream, 
+                 unmapped_reads.front.start_virtual_offset,
+                 bam.eofVirtualOffset());
+    }
+
+    stream.writeExact(BAM_EOF.ptr, BAM_EOF.length);
+}
+
+version (Linux) {
+    import core.sys.posix.fcntl;
+    extern(C) int posix_fadvise(int, off_t, off_t, int);
+}
+
+void copyAsIs(BamReader bam, Stream stream, 
+              VirtualOffset s2_start_offset, VirtualOffset s2_end_offset)
+{
+    // R2 is non-empty
+    if (s2_start_offset < s2_end_offset) {
+       
+        // Either R2 is fully contained in one BGZF block...
+        if (s2_start_offset.coffset == s2_end_offset.coffset) {
+            // write chomped block
+            auto block = bam.getBgzfBlockAt(s2_start_offset.coffset);
+            auto data = decompressBgzfBlock(block).decompressed_data;
+            data = data[s2_start_offset.uoffset .. s2_end_offset.uoffset];
+            stream.write(bgzfCompress(data, -1));
+        } else { // ...or it spans several of them.
+
+            // left chomped block
+            auto block1 = bam.getBgzfBlockAt(s2_start_offset.coffset);
+            auto copy_start_offset = block1.end_offset;
+
+            auto data1 = decompressBgzfBlock(block1).decompressed_data;
+            data1 = data1[s2_start_offset.uoffset .. $];
+            if (data1.length > 0) {
+                stream.write(bgzfCompress(data1, -1));
+            }
+
+            // right chomped block
+            auto block2 = bam.getBgzfBlockAt(s2_end_offset.coffset);
+
+            auto data2 = decompressBgzfBlock(block2).decompressed_data;
+            data2 = data2[0 .. s2_end_offset.uoffset];
+
+            auto copy_end_offset = s2_end_offset.coffset;
+
+            enum N = 8192;
+            ubyte[N] copy_buffer;
+            auto file_stream = new bio.core.utils.stream.File(bam.filename);
+
+            version (Linux) {
+                off_t offset = copy_start_offset;
+                off_t len = copy_end_offset - copy_start_offset;
+                immutable int POSIX_FADV_SEQUENTIAL = 2;
+                posix_fadvise(file_stream.handle, offset, len, POSIX_FADV_SEQUENTIAL);
+            }
+
+            file_stream.seekSet(copy_start_offset);
+
+            size_t curpos = cast(size_t)copy_start_offset;
+            while (copy_end_offset - curpos > N) {
+                file_stream.readExact(copy_buffer.ptr, N);
+                stream.writeExact(copy_buffer.ptr, N);
+                curpos += N;
+            }
+
+            file_stream.readExact(copy_buffer.ptr, cast(size_t)copy_end_offset - curpos);
+            stream.writeExact(copy_buffer.ptr, cast(size_t)copy_end_offset - curpos);
+
+            if (data2.length > 0)
+                stream.write(bgzfCompress(data2, -1));
+        }
+    }
+}
+
+void printUsage()
+{
+    stderr.writeln("Usage: sambamba-slice [options] <input.bam> <region>");
+    stderr.writeln();
+    stderr.writeln("       Fast copy of a region from indexed BAM file to a new file");
+    stderr.writeln();
+    stderr.writeln("       Region is given in standard form ref:beg-end.");
+    stderr.writeln("       In addition, region '*' denotes reads with no reference.");
+    stderr.writeln("       Output is to STDOUT unless output filename is specified.");
+    stderr.writeln();
+    stderr.writeln("OPTIONS: -o, --output-filename=OUTPUT_FILENAME");
+    stderr.writeln("            output BAM filename");
+}
+
+version(standalone) {
+    int main(string[] args) {
+        return slice_main(args);
+    }
+}
+
+int slice_main(string[] args) {
+
+    // at least two arguments must be presented
+    string output_filename = null;
+
+    try {
+        getopt(args,
+               std.getopt.config.caseSensitive,
+               "output-filename|o", &output_filename);
+
+        if (args.length < 3) {
+            printUsage();
+            return 0;
+        }
+
+        protectFromOverwrite(args[1], output_filename);
+
+        import std.parallelism;
+        defaultPoolThreads = 2;
+
+        auto bam = new BamReader(args[1]);
+
+        Stream stream;
+        scope(exit) stream.close();
+
+        if (output_filename != null) {
+            stream = new std.stream.BufferedFile(output_filename, FileMode.OutNew);
+        } else {
+            immutable BUFSIZE = 1_048_576;
+            version (Posix) {
+                auto handle = stdout.fileno;
+            }
+            version (Windows) {
+                import core.sys.windows.windows;
+                auto handle = GetStdHandle(STD_OUTPUT_HANDLE);
+            }
+            stream = new std.stream.BufferedFile(handle, FileMode.Out, BUFSIZE);
+        }
+
+        if (args[2] == "*") {
+            fetchUnmapped(bam, stream);
+        } else {
+            auto region = parseRegion(args[2]);
+            fetchRegion(bam, region, stream);
+        }
+
+    } catch (Exception e) {
+        stderr.writeln("sambamba-slice: ", e);
+        version (development) {
+            throw e;
+        }
+
+        return 1;
+    }
+    return 0;
+}
diff --git a/sambamba/sort.d b/sambamba/sort.d
new file mode 100644
index 0000000..4eed5f7
--- /dev/null
+++ b/sambamba/sort.d
@@ -0,0 +1,588 @@
+/*
+    This file is part of Sambamba.
+    Copyright (C) 2012-2014    Artem Tarasov <lomereiter at gmail.com>
+
+    Sambamba 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; either version 2 of the License, or
+    (at your option) any later version.
+
+    Sambamba 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+module sambamba.sort;
+
+import bio.bam.reader;
+import bio.bam.writer;
+import bio.sam.header;
+import bio.bam.read;
+import bio.bam.splitter;
+import bio.core.utils.tmpfile;
+
+import std.range;
+import std.datetime;
+import std.algorithm;
+import std.traits;
+import std.array;
+import std.ascii;
+import std.numeric;
+import std.parallelism;
+import std.getopt;
+import std.path;
+import std.file;
+import std.stream;
+import std.stdio;
+import std.typecons;
+import core.atomic;
+
+import std.c.stdlib;
+import std.c.string;
+
+import sambamba.utils.common.progressbar;
+import sambamba.utils.common.overwrite;
+import sambamba.utils.common.tmpdir;
+import sambamba.utils.common.filtering;
+import sambamba.utils.common.file;
+
+import thirdparty.mergesort;
+
+void printUsage() {
+    stderr.writeln("Usage: sambamba-sort [options] <input.bam>");
+    stderr.writeln();
+    stderr.writeln("Options: -m, --memory-limit=LIMIT");
+    stderr.writeln("               approximate total memory limit for all threads (by default 2GB)");
+    stderr.writeln("         --tmpdir=TMPDIR");
+    stderr.writeln("               directory for storing intermediate files; default is system directory for temporary files");
+    stderr.writeln("         -o, --out=OUTPUTFILE");
+    stderr.writeln("               output file name; if not provided, the result is written to a file with .sorted.bam extension");
+    stderr.writeln("         -n, --sort-by-name");
+    stderr.writeln("               sort by read name instead of coordinate (lexicographical order)");
+    stderr.writeln("         -N, --natural-sort");
+    stderr.writeln("               sort by read name instead of coordinate (so-called 'natural' sort as in samtools)");
+    stderr.writeln("         -l, --compression-level=COMPRESSION_LEVEL");
+    stderr.writeln("               level of compression for sorted BAM, from 0 to 9");
+    stderr.writeln("         -u, --uncompressed-chunks");
+    stderr.writeln("               write sorted chunks as uncompressed BAM (default is writing with compression level 1), that might be faster in some cases but uses more disk space");
+    stderr.writeln("         -p, --show-progress");
+    stderr.writeln("               show progressbar in STDERR");
+    stderr.writeln("         -t, --nthreads=NTHREADS");
+    stderr.writeln("               use specified number of threads");
+    stderr.writeln("         -F, --filter=FILTER");
+    stderr.writeln("               keep only reads that satisfy FILTER");
+}
+
+version(standalone) {
+    int main(string[] args) {
+        return sort_main(args);
+    }
+}
+
+private __gshared bool sort_by_name;
+private __gshared bool natural_sort;
+private bool show_progress;
+
+private shared(ProgressBar) bar;
+private shared(float[]) weights;
+private shared(float[]) merging_progress;
+
+class Sorter {
+
+    BamReader bam;
+    TaskPool task_pool;
+    size_t memory_limit = 2u * 1024 * 1024 * 1024;
+    string tmpdir;
+    int compression_level = -1;
+    bool uncompressed_chunks = false;
+    string output_filename = null;
+    string filename = null;
+    string filter_str = null;
+
+    this() {
+        tmpdir = defaultTmpDir();
+    }
+
+    struct UnsortedChunk {
+        size_t max_sz;
+
+        this(size_t max_total_size) {
+            max_sz = max_total_size;
+            while (read_storage is null && max_sz > 65536) {
+                read_storage = cast(ubyte*)std.c.stdlib.malloc(max_sz);
+                if (read_storage is null)
+                  max_sz /= 2;
+            }
+            _reads_capa = 1024;
+            auto sz = BamRead.sizeof * _reads_capa;
+            _reads = cast(BamRead*)std.c.stdlib.malloc(sz);
+            if (_reads is null) {
+                throw new Exception("alloc failed: no space for read pointers");
+            }
+        }
+
+        void clear() {
+            _used = 0;
+            _n_reads = 0;
+            if (_low_memory) {
+                auto realloc_storage = cast(ubyte*)std.c.stdlib.realloc(read_storage, max_sz / 2);
+                if (realloc_storage !is null) {
+                    max_sz /= 2;
+                    read_storage = realloc_storage;
+                    stderr.writeln("reduced maximum buffer size to ", max_sz);
+                }
+                _low_memory = false;
+            }
+        }
+
+        void fill(R)(R* reads) {
+            while (!reads.empty) {
+                auto read = reads.front;
+                auto len = read.raw_data.length;
+                if (len + _used > max_sz)
+                    break;
+                
+                if (_n_reads == _reads_capa) {
+                    auto realloc_reads = cast(BamRead*)std.c.stdlib.realloc(_reads, 2 * _reads_capa * BamRead.sizeof);
+                    if (realloc_reads is null) {
+                        _low_memory = true;
+                        stderr.writeln("realloc failed: system low on memory, limited to ", _reads_capa, " reads in buffer");
+                        break;
+                    } else {
+                        _reads_capa *= 2;
+                        _reads = realloc_reads;
+                    }
+                }
+                std.c.string.memcpy(read_storage + _used, read.raw_data.ptr, len);
+                _reads[_n_reads].raw_data = read_storage[_used .. _used + len];
+                _reads[_n_reads].associateWithReader(read.reader);
+
+                _n_reads += 1;
+                _used += len;
+
+                reads.popFront();
+            }
+
+            if (_n_reads == 0) {
+                auto read = reads.front;
+                auto len = read.raw_data.length;
+                assert(len > max_sz);
+                _n_reads = 1;
+                auto realloc_storage = cast(ubyte*)std.c.stdlib.realloc(read_storage, len);
+                if (realloc_storage is null) {
+                    throw new Exception("realloc failed: not enough memory for read");
+                } else {
+                    read_storage = realloc_storage;
+                    max_sz = len;
+                }
+                _used = len;
+                read_storage[0 .. len] = read.raw_data[];
+                _reads[0].raw_data = read_storage[0 .. _used];
+                _reads[0].associateWithReader(read.reader);
+                reads.popFront();
+            }
+        }
+
+        void free() {
+            std.c.stdlib.free(read_storage);
+            std.c.stdlib.free(_reads);
+        }
+
+        BamRead[] reads() @property { return _reads[0 .. _n_reads]; }
+        BamRead* _reads;
+        size_t _reads_capa;
+        size_t _n_reads;
+
+        ubyte* read_storage;
+        size_t _used;
+        bool _low_memory;
+    }
+
+    static BamRead[] sortChunk(size_t n, BamRead[] chunk, TaskPool task_pool) {
+        version (development) {
+        StopWatch sw;
+        sw.start();
+        stderr.writeln("Sorting chunk #", n, "...");
+        }
+        auto buf = cast(BamRead*)std.c.stdlib.malloc(chunk.length * BamRead.sizeof);
+        BamRead[] tmp = buf[0 .. chunk.length];
+        scope (exit) std.c.stdlib.free(buf);
+        if (sort_by_name) {
+            mergeSort!(compareReadNames, false)(chunk, task_pool, tmp);
+        } else if (natural_sort) {
+            mergeSort!(mixedCompareReadNames, false)(chunk, task_pool, tmp);
+        } else {
+            mergeSort!(compareCoordinates, false)(chunk, task_pool, tmp);
+        }
+        version (development) {
+        stderr.writeln("Finished sorting of chunk #", n, " in ", sw.peek().seconds, "s");
+        }
+        return chunk;
+    }
+
+    void sort() {
+        auto filter = createFilterFromQuery(filter_str);
+
+        createHeader();
+
+        size_t buf_size = 16_000_000;
+        bam.setBufferSize(buf_size);
+        bam.assumeSequentialProcessing();
+
+        auto output_buffer_ptr = cast(ubyte*)std.c.stdlib.malloc(buf_size);
+        output_buffer = output_buffer_ptr[0 .. buf_size];
+        scope(exit)std.c.stdlib.free(output_buffer_ptr);
+
+        if (show_progress) {
+            stderr.writeln("Writing sorted chunks to temporary directory...");
+            bar = new shared(ProgressBar)();
+            auto reads = bam.readsWithProgress(
+                                  (lazy float p){ bar.update(p); }
+                              );
+            auto filtered_reads = filtered(reads, filter);
+            writeSortedChunks(filtered_reads);
+            bar.finish();
+        } else {
+            auto filtered_reads = filtered(bam.reads!withoutOffsets(), filter);
+            writeSortedChunks(filtered_reads);
+        }
+
+        scope(success) {
+            if (tmpfiles.length > 1) {
+                // if length == 1, the file was moved
+                foreach (tmpfile; tmpfiles) {
+                    remove(tmpfile);
+                }
+            }
+        }
+
+        if (sort_by_name)
+            mergeSortedChunks!compareReadNames();
+        else if (natural_sort)
+            mergeSortedChunks!mixedCompareReadNames();
+        else
+            mergeSortedChunks!compareCoordinates();
+    }
+
+    private void createHeader() {
+        header = bam.header;
+        header.sorting_order = (sort_by_name || natural_sort) ? SortingOrder.queryname :
+                                                                SortingOrder.coordinate;
+    }
+
+    private size_t k; // number of sorting tasks submitted
+
+    private void writeSortedChunks(R)(R reads_) {
+        auto buf1 = UnsortedChunk(memory_limit / 2);
+        auto buf2 = UnsortedChunk(memory_limit / 2);
+        scope(exit) { buf1.free(); buf2.free(); }
+
+        version (development) {
+        StopWatch sw;
+        sw.start();
+        scope(exit) {
+            sw.stop();
+            stderr.writeln("Wrote ", num_of_chunks, " sorted chunk",
+                           num_of_chunks == 1 ? "" : "s",
+                           " in ", sw.peek().seconds, " seconds");
+        }
+        }
+
+        Task!(sortChunk, size_t, BamRead[], TaskPool)* sorting_task;
+
+        auto reads = reads_;
+
+        // 1) fill buf1
+        // 2) sort buf1 in parallel with filling buf2
+        // 3) dump buf1
+        // 4) sort buf2 in parallel with filling buf1
+        // ...
+        while (!reads.empty) {
+            buf1.clear();
+            version(development) {
+            stderr.writeln("Reading chunk #", k + 1);
+            StopWatch sw_inner;
+            sw_inner.start();
+            }
+            buf1.fill(&reads);
+
+            version(development)
+            stderr.writeln("Finished reading of chunk #", k + 1,
+                           " in ", sw_inner.peek().seconds, "s");
+
+            BamRead[] sorted_reads;
+            if (sorting_task !is null)
+                sorted_reads = sorting_task.yieldForce();
+
+            sorting_task = task!sortChunk(k + 1, buf1.reads, task_pool);
+            task_pool.put(sorting_task);
+            ++k;
+
+            if (sorted_reads.length > 0)
+                dump(sorted_reads);
+
+            swap(buf1, buf2);
+        }
+
+        version(development) stderr.writeln("waiting for the last sorting task...");
+
+        if (sorting_task !is null)
+            dump(sorting_task.yieldForce());
+
+        // handle empty BAM file case
+        if (k == 0) {
+            ++k;
+            dump([]);
+        }
+    }
+
+    private ubyte[] output_buffer;
+
+    // if there's more than one chunk, first call to dump will be when k == 2
+    // because we first submit sorting task and only when dump previous chunk
+    private void dump(BamRead[] sorted_reads) {
+        version(development) {
+            stderr.writeln("Dumping chunk #", num_of_chunks + 1, " to disk...");
+            StopWatch sw;
+            sw.start();
+        }
+
+        int level = uncompressed_chunks ? 0 : 1;
+
+        string fn;
+
+        if (k <= 1) { 
+            level = compression_level;
+            fn = output_filename;
+        } else {
+            fn = tmpFile(chunkBaseName(filename, num_of_chunks), tmpdir);
+            tmpfiles ~= fn;
+        }
+
+        auto stream = bufferedFile(fn, FileMode.OutNew, 0);
+        stream.buffer = output_buffer;
+        scope(failure) stream.close();
+
+        // if there's only one chunk, we will write straight to the output file
+        auto writer = scoped!BamWriter(stream, level, task_pool, 32_000_000);
+        writer.setFilename(fn);
+
+        writer.writeSamHeader(header);
+        writer.writeReferenceSequenceInfo(bam.reference_sequences);
+
+        foreach (read; sorted_reads)
+            writer.writeRecord(read);
+
+        writer.finish();
+
+        version(development)
+        stderr.writeln("Finished dumping of chunk #", num_of_chunks + 1,
+                       " in ", sw.peek().seconds, "s");
+
+        num_of_chunks += 1;
+    }
+
+    private void mergeSortedChunks(alias comparator)() {
+
+        if (num_of_chunks <= 1) {
+            // dump() wrote it to destination already
+            return;
+        }
+
+        version(development) {
+        StopWatch sw;
+        sw.start();
+        scope(exit) {
+            sw.stop();
+            stderr.writeln("Merging took ", sw.peek().seconds, " seconds");
+        }
+        }
+
+        auto input_buf_size = min(16_000_000, memory_limit / 4 / num_of_chunks);
+        auto output_buf_size = min(64_000_000, memory_limit / 6);
+        auto stream = bufferedFile(output_filename, FileMode.OutNew, 
+                                   output_buf_size);
+        scope(failure) stream.close();
+
+        alias ReturnType!(BamReader.readsWithProgress!withoutOffsets) AlignmentRangePB;
+        auto alignmentranges = new AlignmentRangePB[num_of_chunks];
+
+        if (show_progress) {
+            stderr.writeln("Merging sorted chunks...");
+            weights.length = num_of_chunks;
+            merging_progress.length = num_of_chunks;
+            merging_progress[] = 0.0;
+
+            bar = new shared(ProgressBar)();
+
+            foreach (i; 0 .. num_of_chunks) {
+                weights[i] = std.file.getSize(tmpfiles[i]); // set file size as weight
+            }
+
+            normalize(cast()weights);
+        }
+
+        foreach (i; 0 .. num_of_chunks) {
+            auto bamfile = new BamReader(tmpfiles[i], task_pool);
+            bamfile.setBufferSize(input_buf_size);
+            bamfile.assumeSequentialProcessing();
+            if (show_progress)
+                alignmentranges[i] = bamfile.readsWithProgress(
+                        // WTF is going on here? See this thread:
+                        // http://forum.dlang.org/thread/mailman.112.1341467786.31962.digitalmars-d@puremagic.com
+                        (size_t j) { 
+                        return (lazy float progress) { 
+                        atomicStore(merging_progress[j], progress);
+                        synchronized (bar) {
+                        bar.update(dotProduct(merging_progress, weights));
+                        }
+                        };
+                        }(i));
+            else
+                alignmentranges[i] = bamfile.readsWithProgress(null);
+        }
+
+        auto writer = scoped!BamWriter(stream, compression_level, task_pool,
+                                       2 * output_buf_size);
+        writer.setFilename(output_filename);
+        scope(exit) writer.finish();
+        writer.writeSamHeader(header);
+        writer.writeReferenceSequenceInfo(bam.reference_sequences);
+
+        foreach (read; nWayUnion!comparator(alignmentranges))
+            writer.writeRecord(read);
+
+        if (show_progress)
+            bar.finish();
+    }
+
+    private {
+        SamHeader header;
+
+        string[] tmpfiles; // temporary file names
+        size_t num_of_chunks; // number of temporary files
+    }
+}
+
+int sort_main(string[] args) {
+
+    if (args.length < 2) {
+        printUsage();
+        return 0;
+    }
+
+    try {
+        string memory_limit_str = null;
+        uint n_threads = totalCPUs;
+
+        auto sorter = scoped!Sorter();
+
+        getopt(args,
+               std.getopt.config.caseSensitive,
+               "memory-limit|m",        &memory_limit_str,
+               "tmpdir",                &sorter.tmpdir,
+               "out|o",                 &sorter.output_filename,
+               "sort-by-name|n",        &sort_by_name,
+               "natural-sort|N",        &natural_sort,
+               "uncompressed-chunks|u", &sorter.uncompressed_chunks,
+               "compression-level|l",   &sorter.compression_level,
+               "show-progress|p",       &show_progress,
+               "nthreads|t",            &n_threads,
+               "filter|F",              &sorter.filter_str);
+
+        if (sort_by_name && natural_sort) {
+            stderr.writeln("only one of -n and -N parameters can be provided");
+            return -1;
+        }
+
+        if (sorter.output_filename is null) {
+            sorter.output_filename = setExtension(args[1], "sorted.bam");
+        }
+
+        protectFromOverwrite(args[1], sorter.output_filename);
+        sorter.tmpdir = randomSubdir(sorter.tmpdir);
+
+        if (memory_limit_str !is null) {
+            sorter.memory_limit = parseMemory(memory_limit_str);
+            if (sorter.memory_limit / max(n_threads, 1) < 100_000) {
+                throw new Exception("memory limit per thread can't be less than 100Kb");
+            }
+        }
+
+        sorter.memory_limit = (sorter.memory_limit * 5) / 6;
+
+        sorter.task_pool = new TaskPool(n_threads);
+        scope(exit) sorter.task_pool.finish();
+        sorter.bam = new BamReader(args[1], sorter.task_pool);
+        sorter.filename = args[1];
+
+        import core.memory;
+        GC.disable();
+
+        sorter.sort();
+
+        try {
+          std.file.rmdirRecurse(sorter.tmpdir);
+        } catch (FileException e) {
+          // Ignore errors removing temporary directories, due to NFS failure under load
+          // https://github.com/chapmanb/bcbio-nextgen/issues/784
+        }
+
+        return 0;
+    } catch (Throwable e) {
+        version (development) {
+            throw e;
+        } else {
+            stderr.writeln("sambamba-sort: ", e.msg);
+        }
+        return 1;
+    }
+}
+
+/// parses \d+K, \d+M, \d+G
+size_t parseMemory(string str) {
+    auto initial_str = str.idup;
+    size_t sz = 0;
+    while (!str.empty) {
+        if (isDigit(str[0]))
+            sz *= 10, sz += str[0] - '0';
+        else
+            break;
+        str = str[1 .. $];
+    }
+    if (str.empty) return sz;
+    switch (str) {
+        case "K":
+        case "KiB":
+            return sz << 10;
+        case "KB":
+            return sz * 1_000;
+        case "M":
+        case "MiB":
+            return sz << 20;
+        case "MB":
+            return sz * 1_000_000;
+        case "G":
+        case "GiB":
+            return sz << 30;
+        case "GB":
+            return sz * 1_000_000_000;
+        default:
+            throw new Exception("couldn't parse ", initial_str);
+    }
+}
+
+/// Base name of the file corresponding to chunk number $(D chunk_num)
+///
+/// Params:
+///     unsorted_fn - filename of unsorted BAM
+///     chunk_num   - 0-based index of the chunk
+///                                               
+string chunkBaseName(string unsorted_fn, size_t chunk_num) {
+    return baseName(unsorted_fn) ~ "." ~ to!string(chunk_num);
+}
diff --git a/sambamba/utils/common/bed.d b/sambamba/utils/common/bed.d
new file mode 100644
index 0000000..bb6835a
--- /dev/null
+++ b/sambamba/utils/common/bed.d
@@ -0,0 +1,151 @@
+/*
+    This file is part of Sambamba.
+    Copyright (C) 2013-2015    Artem Tarasov <lomereiter at gmail.com>
+
+    Sambamba 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; either version 2 of the License, or
+    (at your option) any later version.
+
+    Sambamba 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+module sambamba.utils.common.bed;
+
+import std.stdio;
+import std.algorithm;
+import std.string;
+import std.conv;
+import std.math;
+import std.array;
+import std.range;
+import std.typecons;
+
+struct Interval {
+    long beg;
+    long end;
+}
+
+Interval[] nonOverlappingIntervals(Interval[] list) {
+    if (list.length == 0)
+        return [];
+    sort!"a.beg < b.beg"(list);
+    size_t cur_position = 0;
+
+    auto cur = list[0];
+    foreach (interval; list[1 .. $]) {
+        if (cur.end >= interval.beg) {
+            cur.end = max(cur.end, interval.end);
+        } else {
+            list[cur_position++] = cur;
+            cur = interval;
+        }
+    }
+    list[cur_position++] = cur;
+    return list[0 .. cur_position];
+}
+
+alias Interval[][string] BedIndex;
+
+// TODO: rewrite this mess
+BedIndex readIntervals(string bed_filename, bool non_overlapping=true, string[]* lines=null, Tuple!(string, Interval)[]* intervals=null) {
+    BedIndex index;
+
+    auto bed = cast(string)(std.file.readText(bed_filename));
+    foreach (str; bed.splitter('\n')) {
+        auto fields = split(str);
+        if (fields.length < 2)
+            continue;
+        string chr = fields[0];
+        Interval interval;
+        if (fields.length >= 3) {
+            interval.beg = to!long(fields[1]);
+            interval.end = to!long(fields[2]);
+        } else if (fields.length >= 2) {
+            interval.beg = to!long(fields[1]);
+            interval.end = interval.beg + 1;
+        }
+
+        if (interval.beg == interval.end)
+            interval.end = interval.beg + 1;
+        if (interval.beg < interval.end) {
+            if (lines is null)
+                index[chr] ~= interval;
+            else
+                (*intervals) ~= tuple(chr, interval);
+        }
+
+        if (lines !is null) {
+            (*lines) ~= str;
+        }
+    }
+
+    if (non_overlapping) {
+        foreach (k, ref v; index) {
+            v = nonOverlappingIntervals(v);
+        }
+    }
+    return index;
+}
+
+bool hasOverlap(const(Interval[]) intervals_, Interval interval) {
+    auto intervals = intervals_[];
+    auto r = intervals.assumeSorted!"a.beg < b.beg".upperBound(Interval(interval.end - 1, -1));
+    intervals = intervals[0 .. $ - r.length];
+    auto l = intervals.assumeSorted!"a.end < b.end".lowerBound(Interval(-1, interval.beg + 1));
+    return intervals.length != l.length;
+}
+
+unittest {
+    alias Interval I;
+    BedIndex index = [
+        "1": nonOverlappingIntervals([I(5, 8), I(7, 10), I(22, 25), I(23, 24), I(14, 17)])
+    ];
+    assert( index["1"] == [I(5, 10), I(14, 17), I(22, 25)]);
+    assert(!index["1"].hasOverlap(I(11, 14)));
+    assert( index["1"].hasOverlap(I(13, 15)));
+    assert(!index["1"].hasOverlap(I(0, 4)));
+    assert(!index["1"].hasOverlap(I(0, 5)));
+    assert( index["1"].hasOverlap(I(0, 6)));
+    assert( index["1"].hasOverlap(I(9, 10)));
+    assert(!index["1"].hasOverlap(I(25, 42)));
+    assert( index["1"].hasOverlap(I(22, 23)));
+    assert(!index["1"].hasOverlap(I(22, 22)));
+    assert(!index["1"].hasOverlap(I(20, 22)));
+}
+
+import bio.bam.reader;
+public import bio.bam.region;
+
+BamRegion[] parseBed(Reader)(string bed_filename, Reader bam, bool non_overlapping=true, string[]* bed_lines=null) {
+    Tuple!(string, Interval)[] ivs;
+    auto index = sambamba.utils.common.bed.readIntervals(bed_filename, non_overlapping, bed_lines, &ivs);
+    BamRegion[] regions;
+    if (non_overlapping) {
+        foreach (reference, intervals; index) {
+            if (!bam.hasReference(reference))
+                continue;
+            auto id = bam[reference].id;
+            foreach (interval; intervals)
+                regions ~= BamRegion(cast(uint)id,
+                                     cast(uint)interval.beg, cast(uint)interval.end);
+        }
+        std.algorithm.sort(regions);
+    } else {
+        foreach (t; ivs) {
+            if (!bam.hasReference(t[0]))
+                continue;
+            auto id = bam[t[0]].id;
+            regions ~= BamRegion(cast(uint)id,
+                                 cast(uint)t[1].beg, cast(uint)t[1].end);
+        }
+    }
+    return regions;
+}
diff --git a/sambamba/utils/common/file.d b/sambamba/utils/common/file.d
new file mode 100644
index 0000000..ac3418b
--- /dev/null
+++ b/sambamba/utils/common/file.d
@@ -0,0 +1,10 @@
+module sambamba.utils.common.file;
+import std.stream;
+import std.stdio;
+
+BufferedFile bufferedFile(string fn, std.stream.FileMode mode, size_t buffer_size=8192) {
+    if (fn == "-")
+        return new BufferedFile(std.stdio.stdout.fileno, mode, buffer_size);
+    else
+        return new BufferedFile(fn, mode, buffer_size);
+}
diff --git a/sambamba/utils/common/filtering.d b/sambamba/utils/common/filtering.d
new file mode 100644
index 0000000..d60e64d
--- /dev/null
+++ b/sambamba/utils/common/filtering.d
@@ -0,0 +1,356 @@
+/*
+    This file is part of Sambamba.
+    Copyright (C) 2013-2016    Artem Tarasov <lomereiter at gmail.com>
+
+    Sambamba 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; either version 2 of the License, or
+    (at your option) any later version.
+
+    Sambamba 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+module sambamba.utils.common.filtering;
+
+import bio.bam.splitter;
+import bio.bam.region;
+
+import sambamba.utils.common.queryparser;
+import sambamba.utils.common.intervaltree;
+import std.algorithm;
+import std.stdio;
+import std.random;
+import std.parallelism;
+import std.range;
+import std.algorithm;
+import std.array;
+import std.string : representation;
+
+auto filtered(R)(R reads, Filter f) {
+    return reads.zip(f.repeat()).filter!q{a[1].accepts(a[0])}.map!"a[0]"();
+}
+
+Filter createFilterFromQuery(string query) {
+    if (query == "")
+        return new NullFilter();
+    auto query_grammar = new QueryGrammar();
+    auto node = query_grammar.parse(query);
+    auto condition_node = cast(ConditionNode) node;
+    if (condition_node is null) {
+        stderr.writeln("filter string must represent a condition");
+        return null;
+    }
+    return condition_node.condition;
+}
+
+/**
+  Set of filters for alignments. 
+  All share a common interface and can be easily combined.
+*/
+
+import std.regex;
+import std.algorithm;
+import std.conv;
+import bio.bam.read;
+import bio.bam.tagvalue;
+import bio.bam.validation.alignment;
+
+/// Common interface for all filters
+interface Filter {
+    bool accepts(ref BamRead a);
+}
+
+/// Filter which accepts all alignments
+final class NullFilter : Filter {
+    bool accepts(ref BamRead a) {
+        return true;
+    }
+}
+
+/// Validating filter
+final class ValidAlignmentFilter : Filter {
+    
+    bool accepts(ref BamRead a) {
+        return isValid(a);
+    }
+}
+
+/// Intersection of two filters
+final class AndFilter : Filter {
+    private Filter _a, _b;
+
+    this(Filter a, Filter b) { _a = a; _b = b; }
+
+    bool accepts(ref BamRead a) {
+        return _a.accepts(a) && _b.accepts(a);
+    }
+}
+
+/// Union of two filters
+final class OrFilter : Filter {
+    private Filter _a, _b;
+
+    this(Filter a, Filter b) { _a = a, _b = b; }
+
+    bool accepts(ref BamRead a) {
+        return _a.accepts(a) || _b.accepts(a);
+    }
+}
+
+/// Negation of a filter
+final class NotFilter : Filter {
+    private Filter _a;
+
+    this(Filter a) { _a = a; }
+    bool accepts(ref BamRead a) {
+        return !_a.accepts(a);
+    }
+}
+
+/// Checks if read overlaps one of regions
+final class BedFilter : Filter {
+    private {
+        alias IntervalTree!(void, uint) intervalTree;
+        alias IntervalTreeNode!(void, uint) intervalTreeNode;
+        intervalTree[] trees_;
+    }
+
+    this(BamRegion[] bed) {
+        // assumes that regions are sorted
+        trees_.length = bed.back.ref_id + 1;
+
+        size_t start_index = 0;
+        size_t end_index = start_index;
+
+        intervalTreeNode[] intervals;
+
+        while (start_index < bed.length) {
+            while (end_index < bed.length && bed[end_index].ref_id == bed[start_index].ref_id)
+                ++end_index;
+
+            intervals.length = end_index - start_index;
+            foreach (i; 0 .. intervals.length) {
+                auto start = bed[start_index + i].start;
+                auto stop = bed[start_index + i].end;
+                intervals[i] = new intervalTreeNode(start, stop);
+            }
+
+            trees_[bed[start_index].ref_id] = new intervalTree(intervals);
+            start_index = end_index;
+        }
+    }
+
+    bool accepts(ref BamRead a) {
+        if (a.ref_id < 0 || a.ref_id >= trees_.length || trees_[a.ref_id] is null)
+            return false;
+        auto start = a.position;
+        auto end = start + a.basesCovered();
+        foreach (overlap; trees_[a.ref_id].eachOverlap(start, end)) {
+            return true;
+        }
+        return false;
+    }
+}
+
+/// Filter alignments which has $(D flagname) flag set
+final class FlagFilter(string flagname) : Filter {
+    bool accepts(ref BamRead a) {
+        mixin("return a." ~ flagname ~ ";");
+    }
+}
+
+final class ChimericFilter : Filter {
+    bool accepts(ref BamRead a) {
+        return a.is_paired && !a.is_unmapped && !a.mate_is_unmapped &&
+               a.ref_id != a.mate_ref_id;
+    }
+}
+
+float avg_base_quality(BamRead r) {
+    return reduce!"a+b"(0.0f, r.base_qualities)/r.sequence_length;
+}
+
+/// Filtering integer fields
+final class IntegerFieldFilter(string op) : Filter {
+    private long _value;
+    private string _fieldname;
+    this(string fieldname, long value) {
+        _fieldname = fieldname;
+        _value = value;
+    }
+    bool accepts(ref BamRead a) {
+        switch(_fieldname) {
+            case "ref_id": mixin("return a.ref_id " ~ op ~ "_value;");
+            case "position": mixin("return a.position " ~ op ~ "_value;");
+            case "mapping_quality": mixin("return a.mapping_quality " ~ op ~ "_value;");
+            case "avg_base_quality": mixin("return a.avg_base_quality " ~ op ~ "_value;");
+            case "sequence_length": mixin("return a.sequence_length " ~ op ~ "_value;");
+            case "mate_ref_id": mixin("return a.mate_ref_id " ~ op ~ "_value;");
+            case "mate_position": mixin("return a.mate_position " ~ op ~ "_value;");
+            case "template_length": mixin("return a.template_length " ~ op ~ "_value;");
+            default: throw new Exception("unknown integer field '" ~ _fieldname ~ "'");
+        }
+    }
+}
+
+final class TagExistenceFilter(string op) : Filter {
+    static assert(op == "==" || op == "!=");
+    private string _tagname;
+    private static bool _should_exist = op == "!=";
+    this(string tagname, typeof(null) dummy) {
+        _tagname = tagname;
+    }
+    bool accepts(ref BamRead a) {
+        auto v = a[_tagname];
+        if (_should_exist) 
+            return !v.is_nothing;
+        else 
+            return v.is_nothing;
+    }
+}
+
+/// Filtering integer tags
+final class IntegerTagFilter(string op) : Filter {
+    private long _value;
+    private string _tagname;
+
+    this(string tagname, long value) {
+        _tagname = tagname;
+        _value = value;
+    }
+
+    bool accepts(ref BamRead a) {
+        auto v = a[_tagname];
+        if (!v.is_integer && !v.is_float) 
+            return false;
+        if (v.is_float) {
+            mixin(`return cast(float)v` ~ op ~ `_value;`);
+        } else {
+            mixin(`return cast(long)v` ~ op ~ `_value;`);
+        }
+    }
+}
+
+/// Filtering string fields
+final class StringFieldFilter(string op) : Filter {
+    private string _value;
+    private string _fieldname;
+    this(string fieldname, string value) {
+        _fieldname = fieldname;
+        _value = value;
+    }
+    bool accepts(ref BamRead a) {
+        switch(_fieldname) {
+            case "read_name": mixin("return a.name " ~ op ~ " _value;");
+            case "sequence": mixin("return cmp(a.sequence, _value) " ~ op ~ " 0;");
+            case "cigar": mixin("return a.cigarString() " ~ op ~ " _value;");
+            case "strand": mixin("return a.strand " ~ op ~ " _value[0];"); // FIXME: a separate filter would be cleaner
+            case "ref_name": mixin("return a.ref_name " ~ op ~ " _value;");
+            case "mate_ref_name": mixin("return a.mate_ref_name " ~ op ~ " _value;");
+            default: throw new Exception("unknown string field '" ~ _fieldname ~ "'");
+        }
+    }
+}
+
+/// Filtering string and character tags
+final class StringTagFilter(string op) : Filter {
+    private string _value;
+    private string _tagname;
+
+    this(string tagname, string value) {
+        _tagname = tagname;
+        _value = value;
+    }
+
+    bool accepts(ref BamRead a) {
+        auto v = a[_tagname];
+        if (v.is_string) {
+            mixin(`return cast(string)v` ~ op ~ `_value;`);
+        } else if (v.is_character) {
+            if (_value.length != 1)
+                return false; // doesn't make sense to compare char with string
+            mixin(`return cast(char)v` ~ op ~ `_value[0];`);
+        } else {
+            return false;
+        }
+    }
+}
+
+/// Filtering string fields with a regular expression
+final class RegexpFieldFilter : Filter {
+    private string _fieldname;
+    private Regex!char _pattern;
+    
+    this(string fieldname, Regex!char pattern) {
+        _fieldname = fieldname; 
+        _pattern = pattern;
+    }
+
+    bool accepts(ref BamRead a) {
+        switch(_fieldname) {
+            case "read_name": return !match(a.name, cast()_pattern).empty;
+            case "sequence": return !match(to!string(a.sequence), cast()_pattern).empty;
+            case "cigar": return !match(a.cigarString(), cast()_pattern).empty;
+            default: throw new Exception("unknown string field '" ~ _fieldname ~ "'");
+        }
+    }
+}
+
+/// Filtering string tags with a regular expression
+final class RegexpTagFilter : Filter { 
+    private string _tagname;
+    private Regex!char _pattern;
+    
+    this(string tagname, Regex!char pattern) {
+        _tagname = tagname;
+        _pattern = pattern;
+    }
+
+    bool accepts(ref BamRead a) {
+        auto v = a[_tagname];
+        if (!v.is_string) {
+            return false;
+        }
+        return !match(cast(string)v, cast()_pattern).empty;
+    }
+}
+
+final class SubsampleFilter : Filter {
+    private ulong _threshold;
+    private ulong _seed;
+    
+    this(double subsample_frac, ulong seed) {
+        _threshold = (0x100000000UL * subsample_frac).to!ulong;
+        _seed = seed;
+    }
+
+    // FNV-1a algorithm
+    private ulong simpleHash(string s) const {
+        ulong h = 14695981039346656037UL;
+        auto salt = (cast(ubyte*)(&_seed))[0 .. 8];
+        foreach (b; chain(s.representation, salt)) {
+            h ^= b;
+            h *= 1099511628211UL;
+        }
+        return h;
+    }
+        /*
+        uint h = 0;
+        foreach (char c; s)
+            h = (h << 5) - h + c;
+        return h + _seed;
+    }
+    */
+
+    bool accepts(ref BamRead read) const {
+        auto h = simpleHash(read.name);
+        return (h&0xFFFFFFFFUL) < _threshold;
+    }
+}
diff --git a/sambamba/utils/common/intervaltree.d b/sambamba/utils/common/intervaltree.d
new file mode 100644
index 0000000..425e4b2
--- /dev/null
+++ b/sambamba/utils/common/intervaltree.d
@@ -0,0 +1,153 @@
+// based on https://github.com/ekg/intervaltree
+module sambamba.utils.common.intervaltree;
+
+import std.range;
+import std.algorithm;
+import std.array;
+import std.conv;
+
+class IntervalTreeNode(T, pos_t) {
+    static if (is(T == void)) {
+        pos_t start;
+        pos_t stop;
+
+        this(pos_t start, pos_t stop) {
+            this.start = start;
+            this.stop = stop;
+        }
+
+        override string toString() const {
+            return "(" ~ start.to!string ~ " .. " ~ stop.to!string ~ ")";
+        }
+    } else {
+        pos_t start;
+        pos_t stop;
+        T value;
+
+        this(pos_t start, pos_t stop, T value) {
+            this.start = start;
+            this.stop = stop;
+            this.value = value;
+        }
+
+        override string toString() const {
+            return "(" ~ start.to!string ~ " .. " ~ stop.to!string ~
+                ", " ~ value.to!string ~ ")";
+        }
+    }
+}
+
+class IntervalTree(T, pos_t) {
+    alias IntervalTreeNode!(T, pos_t) interval;
+    alias IntervalTree!(T, pos_t) intervalTree;
+
+    void print(int depth=0) {
+        import std.stdio;
+        writeln(repeat(' ', depth), "INTERVALS: ", intervals);
+        if (left !is null) {
+            writeln(repeat(' ', depth), "LEFT");
+            left.print(depth + 4);
+        }
+        if (right !is null) {
+            writeln(repeat(' ', depth), "RIGHT");
+            right.print(depth + 4);
+        }
+    }
+
+    interval[] intervals;
+    intervalTree left;
+    intervalTree right;
+    pos_t center;
+
+    this() {
+        left = right = null;
+        center = 0;
+    }
+
+    this(ref interval[] ivals, uint depth=16, uint minBucket=2,//64,
+         int leftExtent=0, int rightExtent=0)
+    {
+        left = right = null;
+
+        --depth;
+        if (depth == 0 || ivals.length < minBucket)
+        {
+            sort!((a, b) => a.start < b.start)(ivals[]);
+            intervals = ivals.dup;
+        } else {
+            if (leftExtent == 0 && rightExtent == 0) {
+                sort!((a, b) => a.start < b.start)(ivals[]);
+            }
+
+            int leftP = 0;
+            int rightP = 0;
+            int centerP = 0;
+
+            if (leftExtent != 0 || rightExtent != 0) {
+                leftP = leftExtent;
+                rightP = rightExtent;
+            } else {
+                leftP = ivals.front.start;
+                rightP = ivals.map!(iv => iv.stop).reduce!max;
+            }
+
+            centerP = ivals[ivals.length / 2].start;
+            center = centerP;
+
+            interval[] lefts;
+            interval[] rights;
+
+            foreach (iv; ivals) {
+                if (iv.stop <= center)
+                    lefts ~= iv;
+                else if (iv.start > center)
+                    rights ~= iv;
+                else intervals ~= iv;
+            }
+
+            if (lefts.length > 0)
+                left = new intervalTree(lefts, depth, minBucket,
+                        leftP, centerP);
+
+            if (rights.length > 0)
+                right = new intervalTree(rights, depth, minBucket,
+                        centerP, rightP);
+        }
+    }
+
+    static struct OverlapWalker {
+        pos_t start;
+        pos_t stop;
+        intervalTree tree;
+        int opApply(scope int delegate(ref interval) dg) {
+            int result = 0;
+            if (!tree.intervals.empty && !(stop <= tree.intervals.front.start)) {
+                foreach (ref iv; tree.intervals)
+                    if (iv.stop > start && iv.start < stop) {
+                        result = dg(iv);
+                        if (result != 0)
+                            return result;
+                    }
+            }
+
+            if (tree.left !is null && start < tree.center) {
+                result = tree.left.eachOverlap(start, stop).opApply(dg);
+                if (result != 0)
+                    return result;
+            }
+
+            if (tree.right !is null && stop >= tree.center) {
+                result = tree.right.eachOverlap(start, stop).opApply(dg);
+                if (result != 0)
+                    return result;
+            }
+
+            return result;
+        }
+    }
+
+    auto eachOverlap(pos_t start=pos_t.min, pos_t stop=pos_t.max)
+    {
+        return OverlapWalker(start, stop, this);
+    }
+}
diff --git a/sambamba/utils/common/ldc_gc_workaround.d b/sambamba/utils/common/ldc_gc_workaround.d
new file mode 100644
index 0000000..39b4aaf
--- /dev/null
+++ b/sambamba/utils/common/ldc_gc_workaround.d
@@ -0,0 +1,81 @@
+/// Remove address ranges related to system libraries, from GC scanning.
+/// That makes a huge speed difference in case of frequent allocations.
+module sambamba.utils.common.ldc_gc_workaround;
+
+import std.stdio;
+import std.format;
+import std.algorithm;
+
+import core.memory;
+
+/// Shared static constructor does the job, no need to do any calls manually.
+shared static this() {
+    version(LDC) {
+        version(Linux) {
+            removeExtraGcRanges();
+        }
+    }
+}
+
+/// A path is excluded from GC scanning if it contains any of these substrings.
+immutable defaultExclusionList = ["/libc-", "/ld-", "/libpthread-", "/librt-", "/libm-", "/libgcc_s", "/libdl-"];
+
+/// On start, LDC parses /proc/self/maps file 
+/// and adds every range with writable permissions to GC.
+/// However, standard libraries don't contain any pointers to D objects,
+/// and garbage collector spends a lot of time dealing with these ranges,
+/// while this is completely unnecessary.
+///
+/// This function scans /proc/self/maps again and excludes ranges
+/// that come from libc, ld, libpthread, librt, and libm.
+/// You can pass your own exclusion list instead of the default one.
+void removeExtraGcRanges(const char[][] exclusionList=defaultExclusionList) {
+
+    debug {
+        writeln("[DEBUG] removing extra GC ranges...");
+    }
+
+    version(Posix) {
+        foreach (line; File("/proc/self/maps").byLine())
+        {
+            ulong start;
+            ulong end;
+            char[] permissions;
+            ulong offset;
+            char[] dev;
+            ulong inode;
+            char[] path;
+            auto l = line.dup;
+
+            formattedRead(l, "%x-%x %s %x %s %d %s", &start, &end, &permissions, 
+                                                     &offset, &dev, &inode, &path);
+
+            if (permissions[1] == 'w') {
+
+                // exclude empty entries
+                if (path.length == 0) {
+                    GC.removeRange(cast(void*)start);
+                }
+
+                bool is_system_lib = false;
+                foreach (substr; exclusionList) {
+                    if (path.canFind(substr)) {
+
+                        debug {
+                            writeln("removing path ", path);
+                        }
+
+                        GC.removeRange(cast(void*)start);
+                        is_system_lib = true;
+                        break;
+                    }
+                } 
+                
+                debug {
+                    if (!is_system_lib)
+                        writeln("skipping path ", path);
+                }
+            }
+        }
+    }
+}
diff --git a/sambamba/utils/common/overwrite.d b/sambamba/utils/common/overwrite.d
new file mode 100644
index 0000000..d714ef3
--- /dev/null
+++ b/sambamba/utils/common/overwrite.d
@@ -0,0 +1,37 @@
+/*
+    This file is part of Sambamba.
+    Copyright (C) 2014    Artem Tarasov <lomereiter at gmail.com>
+
+    Sambamba 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; either version 2 of the License, or
+    (at your option) any later version.
+
+    Sambamba 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+module sambamba.utils.common.overwrite;
+
+import std.exception;
+import std.path;
+
+class OverwriteException : Exception {
+    this(string output_fn) {
+	super("Specified output filename " ~ output_fn ~
+	      " clashes with one of input file names. Exiting.");
+    }
+}
+
+void protectFromOverwrite(string input_filename, string output_filename) {
+    auto input_fn = buildNormalizedPath(input_filename);
+    auto output_fn = buildNormalizedPath(output_filename);
+    if (input_fn.filenameCmp(output_fn) == 0)
+	throw new OverwriteException(output_fn);
+}
diff --git a/sambamba/utils/common/pratt_parser.d b/sambamba/utils/common/pratt_parser.d
new file mode 100644
index 0000000..38b944e
--- /dev/null
+++ b/sambamba/utils/common/pratt_parser.d
@@ -0,0 +1,467 @@
+/*
+    This file is part of Sambamba.
+    Copyright (C) 2012-2013    Artem Tarasov <lomereiter at gmail.com>
+
+    Sambamba 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; either version 2 of the License, or
+    (at your option) any later version.
+
+    Sambamba 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+module sambamba.utils.common.pratt_parser;
+
+import std.string;
+import std.exception;
+import std.conv;
+import std.algorithm;
+import std.ascii;
+
+struct SourcePosition {
+    size_t position;
+    size_t line;
+    size_t column;
+}
+
+class PrattParser(T, alias WSSkipper=DefaultWSSkipper) {
+
+    private {
+        alias Token!(T, WSSkipper) Tok;
+        alias SymbolDict!(T, WSSkipper) Dict;
+        alias PrattParser!(T, WSSkipper) Parser;
+        alias TokenRange!(T, WSSkipper) Range;
+    }
+
+    this(string str, Dict symbols) {
+        this.str = str;
+        token_range = Range(str, symbols);
+        token = next();
+    }
+
+    T parse(int rbp=0) {
+        prev_token = token;
+        if (!prev_token_initialized) {
+            prev_token_initialized = true;
+        }
+        token = next();
+
+        T left = prev_token.nud(this);
+        while (rbp < token.lbp) {
+            prev_token = token;
+            token = next();
+            left = prev_token.led(this, left);
+        }
+        return left;
+    }
+
+    auto next_token() {
+        return token;
+    }
+
+    string next_token_as_string() @property const {
+        return str[token.start_position .. token.end_position];
+    }
+
+    Parser advance() { 
+        token = next();
+        return this;
+    }
+
+    Parser advance(string s) {
+        if (next_token_as_string() != s) {
+            throw new Exception("unexpected character at position " ~ to!string(current_position.line) ~ ":" ~
+                    to!string(current_position.column));
+        }
+        token = next();
+        return this;
+    }
+
+    @property SourcePosition current_position() const {
+        SourcePosition sp;
+        auto tok = token_initialized ? token : prev_token;
+        sp.position = prev_token_initialized ? tok.start_position : 0;
+        sp.line = token_range.current_line;
+        sp.column = sp.position - token_range.last_new_line + 1;
+        return sp;
+    }
+
+    @property string code() const { return str; }
+
+private:
+    string str;
+
+    Range token_range;
+    Tok token = void;
+    Tok prev_token = void;
+    bool token_initialized = false;
+    bool prev_token_initialized = false;
+
+    auto next() {
+        auto token = token_range.front();
+        if (!token_initialized) {
+            token_initialized = true;
+        }
+        token_range.popFront();
+        return token;
+    }
+}
+
+class Symbol(T, alias WSSkipper=DefaultWSSkipper) {
+
+    alias size_t delegate(in string str, size_t pos) TokenScanner;
+    alias T delegate(in string str) TokenParser;
+    alias PrattParser!(T, WSSkipper) Parser;
+
+    private TokenScanner scanner;
+    private TokenParser parser;
+
+    string id;
+    int lbp;
+    T delegate(Parser) nud;
+    T delegate(Parser, T) led;
+
+    this(string id, int lbp=0) {
+        this.id = id;
+        this.lbp = lbp;
+    }
+
+    size_t scan(in string str, size_t pos) const {
+        if (scanner) {
+            return scanner(str, pos);
+        } else {
+            size_t len = id.length;
+            for (size_t i = 0; i < len; ++i) {
+                if (i + pos >= str.length || id[i] != str[i + pos])
+                    return pos;
+            }
+            return pos + len;
+        }
+    }
+
+    T parse(in string str) const {
+        if (parser) {
+            return parser(str);
+        } else {
+            T obj;
+            return obj;
+        }
+    }
+
+    bool has_scanner() @property const { return scanner !is null; }
+    bool has_parser() @property const { return parser !is null; }
+
+    Symbol setScanner(TokenScanner s) { 
+        scanner = s; 
+        return this;
+    }
+
+    Symbol setParser(TokenParser p) {
+        parser = p; 
+        return this;
+    }
+}
+
+class SymbolDict(T, alias WSSkipper) {
+    alias Symbol!(T, WSSkipper) Sym;
+    private Sym[string] dict;
+    private string end_id_;
+
+    this(string end_id) { 
+        this.end_id_ = end_id;
+        dict[end_id] = new Sym(end_id, int.min);
+    }
+
+    Sym opIndex(string id) {
+        return dict[id];
+    }
+
+    Sym opIndexAssign(Sym sym, string id) {
+        dict[id] = sym;
+        return sym;
+    }
+
+    bool opBinaryRight(string op)(string id) if (op == "in") { 
+        return ((id in dict) !is null); 
+    }
+
+    @property auto values() { return dict.byValue(); }
+    @property Sym end_symbol() { return dict[end_id_]; }
+    @property string end_id() { return end_id_; }
+}
+
+struct Token(T, alias WSSkipper=DefaultWSSkipper) {
+    private alias Symbol!(T, WSSkipper) Sym;
+    private alias PrattParser!(T, WSSkipper) Parser;
+
+    private Sym symbol_;
+    size_t start_position;
+    size_t length;
+    T value = void;
+    bool has_value = false;
+
+    this(Sym sym, size_t start=0, size_t end=0) {
+        symbol_ = sym;
+        start_position = start;
+        length = end - start;
+    }
+   
+    this(Sym sym, T value, size_t start=0, size_t end=0) {
+        this(sym, start, end);
+        this.value = value;
+        has_value = true;
+    }
+
+    @property string id() const { return symbol_.id; }
+    @property Sym symbol() { return symbol_; }
+    @property int lbp() const { return symbol_.lbp; }
+    @property size_t end_position() const { return start_position + length; }
+
+    T nud(Parser parser) {
+        if (has_value) return value;
+        if (symbol_.nud is null) {
+            throw new Exception("parsing error near line " ~ to!string(parser.current_position.line)
+                                ~ ": expected prefix operator");
+        }
+        return symbol_.nud(parser);
+    }
+
+    T led(Parser parser, T left) {
+        if (symbol_.led is null) {
+            throw new Exception("parsing error near line " ~ to!string(parser.current_position.line)
+                                ~ ": expected infix/postfix operator");
+        }
+        return symbol_.led(parser, left);
+    }
+} 
+
+struct TokenRange(T, alias WSSkipper) {
+
+    private alias Symbol!(T, WSSkipper) Sym;
+    private alias PrattParser!(T, WSSkipper) Parser;
+    private alias SymbolDict!(T, WSSkipper) Dict;
+    private alias Token!(T, WSSkipper) Tok;
+
+private:
+    string str;
+    Dict symbols;
+    size_t start;
+    size_t end;
+    Sym match;
+    bool match_found;
+    size_t last_new_line_;
+    size_t current_line_;
+public:
+
+    @property size_t current_line() const { return current_line_; }
+    @property size_t last_new_line() const { return last_new_line_; }
+
+    this(string str_, Dict symbols_) {
+        str = str_;
+        symbols = symbols_;
+        start = end = last_new_line_ = 0;
+        current_line_ = 1;
+        popFront();
+    }
+
+    bool empty() {
+        return false;
+    }
+
+    void popFront() {
+        WSSkipper(str, start, last_new_line_, current_line_);
+
+        if (start < str.length) {
+            end = start;
+            match_found = false;
+            foreach (sym; symbols.values) {
+                size_t p = sym.scan(str, start);
+
+                if (p > end || (match_found && sym.lbp > match.lbp && p == end)) {
+                    match = sym;
+                    match_found = true;
+                    end = p;
+                }
+            }
+            if (!match_found) {
+                throw new Exception("invalid symbol in input stream at position " ~ to!string(start));
+            }
+        }
+    }
+
+    auto front() {
+        if (start >= str.length) {
+            return Tok(symbols.end_symbol);
+        }
+        size_t old_start = start;
+        start = end;
+
+        if (match.has_parser) {
+            return Tok(match, match.parse(str[old_start .. end]), old_start, end);
+        } else {
+            return Tok(match, old_start, end);
+        }
+    }
+} 
+
+private struct keep_symbol_lbp_t {}
+static keep_symbol_lbp_t keep_symbol_lbp;
+
+void DefaultWSSkipper(const char[] str, ref size_t start,
+                                        ref size_t last_new_line,
+                                        ref size_t current_line)
+{
+    while (start < str.length && std.ascii.isWhite(str[start])) {
+        if (str[start] == '\n') {
+            last_new_line = start;
+            ++current_line;
+        }
+        ++start;
+    }
+};
+
+class Grammar(T, alias WSSkipper=DefaultWSSkipper) {
+    protected alias Symbol!(T, WSSkipper) Sym;
+    protected alias PrattParser!(T, WSSkipper) Parser;
+    protected alias SymbolDict!(T, WSSkipper) Dict;
+
+    protected Dict symbols_;
+
+    this(string end_id) {
+        symbols_ = new Dict(end_id);
+        size_t delegate(in string, size_t) scanner = (in string s, size_t pos) { return pos; };
+        symbols_[end_id].setScanner(scanner);
+    }
+
+    auto addSymbolToDict(string sym, int lbp=0) { 
+        if (sym in symbols_) {
+            auto s = symbols_[sym];
+            s.lbp = max(s.lbp, lbp);
+            return s;
+        } else {
+            auto s = new Sym(sym, lbp);
+            return symbols_[sym] = s;
+        }
+    }
+
+    struct Prefix {
+        alias T delegate(T) handler_type;
+        alias T delegate(Parser) func_type;
+    }
+
+    struct Postfix {
+        alias T delegate(T) handler_type;
+        alias T delegate(Parser, T) func_type;
+    }
+
+    struct LeftAssociative {
+        alias T delegate(T, T) handler_type;
+        alias T delegate(Parser, T) func_type;
+    }
+
+    struct RightAssociative {
+        alias T delegate(T, T) handler_type;
+        alias T delegate(Parser, T) func_type;
+    }
+
+    private static void setBehaviour(Semantics)(Sym sym, int rbp, Semantics.handler_type func) {
+        static if (is (Semantics == Prefix)) 
+            sym.nud = (Parser p) { return func(p.parse(rbp)); };
+        else static if (is (Semantics == Postfix))
+            sym.led = (Parser p, T left) { return func(left); };
+        else static if (is (Semantics == LeftAssociative))
+            sym.led = (Parser p, T left) { return func(left, p.parse(rbp)); };
+        else static if (is (Semantics == RightAssociative))
+            sym.led = (Parser p, T left) { return func(left, p.parse(rbp - 1)); };
+        else 
+            static assert(0, "expected Prefix | Postfix | LeftAssociative | RightAssociative");
+    }
+
+    private static void setBehaviour(Semantics)(Sym sym, Semantics.handler_type func) {
+        setBehaviour!(Semantics)(sym, sym.lbp, func);
+    }
+
+    auto prefix(string op, int binding_power, T delegate(T) handler) {
+        auto sym = addSymbolToDict(op, binding_power);
+        setBehaviour!(Prefix)(sym, binding_power, handler);
+        return sym;
+    }
+
+    auto prefix(string op, int binding_power, T delegate(T) handler, keep_symbol_lbp_t) {
+        auto sym = addSymbolToDict(op);
+        setBehaviour!(Prefix)(sym, binding_power, handler);
+        return sym;
+    }
+
+    private template make_fix(string name, string semantics) {
+        mixin("auto " ~ name ~ "(string op, int binding_power, " ~ semantics ~ ".handler_type handler) {
+            auto sym = addSymbolToDict(op, binding_power);
+            setBehaviour!(" ~ semantics ~ ")(sym, binding_power, handler);
+            return sym;
+        }");
+    }
+
+    mixin make_fix!("prefix", "Prefix");
+    mixin make_fix!("postfix", "Postfix");
+    mixin make_fix!("infix", "LeftAssociative");
+    mixin make_fix!("infix_r", "RightAssociative");
+
+    auto brackets(string ob, string cb, int binding_power, T delegate(T) handler=null) {
+        auto open_sym = addSymbolToDict(ob, binding_power);
+        addSymbolToDict(cb, 0);
+        if (handler is null) {
+            handler = (T val) { return val; };
+        }
+        open_sym.nud = (Parser p) { 
+            T val = p.parse(0); 
+            p.advance(cb); 
+            return handler(val); 
+        };
+        return open_sym;
+    }
+
+    T parse(string text) {
+        auto p = new Parser(text, symbols);
+        return p.parse();
+    }
+
+    @property Dict symbols() { return symbols_; }
+}
+
+unittest {
+
+    class Calculator : Grammar!int {
+        this() {
+            super("(end)");
+            addSymbolToDict("(number)", 0).setScanner(
+                (in string str, size_t pos) { 
+                    size_t i = pos;
+                    while (i < str.length && std.ascii.isDigit(str[i]))
+                        ++i;
+                    return i;
+                }).setParser(
+                (in string str) { 
+                    return to!int(str);
+                });
+            infix("+", 10, (int a, int b){ return a + b;});
+            infix("-", 10, (int a, int b){ return a - b;});
+            infix("*", 20, (int a, int b){ return a * b;});
+            infix("/", 20, (int a, int b){ return a / b;});
+            prefix("+", 100, (int a){ return a; }, keep_symbol_lbp);
+            prefix("-", 100, (int a){ return -a;}, keep_symbol_lbp);
+            brackets("(", ")", int.max);
+        }
+    }
+
+    auto calc = new Calculator();
+    assert(calc.parse("2 + 3 * (4 - 5)") == -1);
+    assert(calc.parse("2 * (3 + 2) / 5") == 2);
+    assert(calc.parse("36 / (-2 + 2 * (2 + 3) * (1 + 1))") == 2);
+}
diff --git a/sambamba/utils/common/progressbar.d b/sambamba/utils/common/progressbar.d
new file mode 100644
index 0000000..99e8a7b
--- /dev/null
+++ b/sambamba/utils/common/progressbar.d
@@ -0,0 +1,83 @@
+/*
+    This file is part of Sambamba.
+    Copyright (C) 2012-2013    Artem Tarasov <lomereiter at gmail.com>
+
+    Sambamba 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; either version 2 of the License, or
+    (at your option) any later version.
+
+    Sambamba 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+/** module for showing progressbar */
+module sambamba.utils.common.progressbar;
+
+import std.stdio;
+import std.range;
+import std.numeric;
+import core.atomic;
+
+/// Common interface for all progressbars.
+shared interface IProgressBar {
+    /// Update percentage
+    void update(lazy float percentage);
+    /// Indicate that the process is finished
+    void finish();
+}
+
+/// [==================>           ]
+shared class ProgressBar : IProgressBar {
+
+    /// Create a progress bar which will be redrawn every $(D n) update calls,
+    /// and its width will be $(D width) characters.
+    this(size_t n=16384, size_t width=80) {
+        _n = n;
+        _width = width;
+        draw(0.0);
+    }
+
+    void update(lazy float percentage) {
+        if (_k == _n) {
+            redraw(percentage);
+            _k = 0;
+        } else {
+            _k.atomicOp!"+="(1);
+        }
+    }
+
+    void finish() {
+        redraw(1.0);
+        stderr.writeln();
+    }
+
+    private {
+        size_t _n;
+        size_t _k;
+        size_t _width;
+
+        void draw(float percentage) {
+            auto progress = cast(int)((_width - 2) * percentage + 0.5);
+            if (progress == 0) {
+                stderr.write("[", repeat(' ', _width - 2), "]");
+            } else if (progress >= _width - 2) {
+                stderr.write("[", repeat('=', _width - 2), "]");
+            } else {
+                stderr.write("[", repeat('=', progress - 1), ">", 
+                                  repeat(' ', (_width - 2) - progress), "]");
+            }
+        }
+
+        void redraw(float percentage) {
+            stderr.write('\r');
+            draw(percentage);
+        }
+    }
+}
diff --git a/sambamba/utils/common/queryparser.d b/sambamba/utils/common/queryparser.d
new file mode 100644
index 0000000..b78f5ca
--- /dev/null
+++ b/sambamba/utils/common/queryparser.d
@@ -0,0 +1,491 @@
+/*
+    This file is part of Sambamba.
+    Copyright (C) 2012-2016    Artem Tarasov <lomereiter at gmail.com>
+
+    Sambamba 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; either version 2 of the License, or
+    (at your option) any later version.
+
+    Sambamba 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+module sambamba.utils.common.queryparser;
+import sambamba.utils.common.filtering;
+import sambamba.utils.common.pratt_parser;
+
+import std.array;
+import std.regex;
+import std.algorithm;
+import std.conv;
+import std.ascii;
+import std.exception;
+
+interface Node {
+    string toString() const;
+}
+
+final class TagNameNode : Node {
+    string tagname;
+    this(string tagname) {
+        this.tagname = tagname;
+    }
+
+    override string toString() const {
+        return "[" ~ tagname ~ "]";
+    }
+}
+
+final class NullValueNode : Node {
+    static auto value = null;
+    override string toString() const {
+        return "null";
+    }
+}
+
+final class IntegerNode : Node {
+    long value;
+    this(long value) {
+        this.value = value;
+    }
+    override string toString() const {
+        return to!string(value);
+    }
+}
+
+final class IntegerFieldNode : Node {
+    string fieldname;
+    this(string fieldname) {
+        this.fieldname = fieldname;
+    }
+    override string toString() const {
+        return fieldname;
+    }
+}
+
+final class StringNode : Node {
+    string value;
+    this(string value) {
+        this.value = value;
+    }
+    override string toString() const {
+        return "'" ~ replace(value, "'", "\\'") ~ "'";
+    }
+}
+
+final class StringFieldNode : Node {
+    string fieldname;
+    this(string fieldname) {
+        this.fieldname = fieldname;
+    }
+    override string toString() const {
+        return fieldname;
+    }
+}
+
+final class RegexpNode : Node {
+    private string _pattern;
+    private string _options;
+    Regex!char regexp;
+    this(string pattern, string options) {
+        _pattern = pattern;
+        _options = options;
+        regexp = regex(_pattern, _options);
+    }
+
+    override string toString() const {
+        return "/" ~ replace(_pattern, "/", "\\/") ~ "/" ~ _options;
+    }
+}
+
+abstract class ConditionNode : Node {
+    Filter condition;
+    override abstract string toString() const;
+}
+
+final class RegexpFieldConditionNode : ConditionNode {
+    private StringFieldNode _fieldnode;
+    private RegexpNode _regexpnode;
+   
+    this(StringFieldNode field, RegexpNode regexp) {
+        _fieldnode = field;
+        _regexpnode = regexp;
+        condition = new RegexpFieldFilter(_fieldnode.fieldname, _regexpnode.regexp);
+    }
+
+    override string toString() const {
+        return _fieldnode.toString ~ " =~ " ~ _regexpnode.toString();
+    }
+}
+
+final class RegexpTagConditionNode : ConditionNode {
+    private TagNameNode _tagnode;
+    private RegexpNode _regexpnode;
+
+    this(TagNameNode tag, RegexpNode regexp) {
+        _tagnode = tag;
+        _regexpnode = regexp;
+        condition = new RegexpTagFilter(_tagnode.tagname, _regexpnode.regexp);
+    }
+
+    override string toString() const {
+        return _tagnode.toString() ~ " =~ " ~ _regexpnode.toString();
+    }
+}
+
+/// LeftNodeType refers to TagNameNode, IntegerFieldNode, or StringFieldNode
+/// RightNodeType refers to IntegerNode or StringNode
+final class ComparisonNode(T, LeftNodeType, RightNodeType, alias Filter) : ConditionNode {
+    private {
+        LeftNodeType _node;
+        RightNodeType _valuenode;
+        string _op;
+    }
+    this(string op, LeftNodeType node, RightNodeType valuenode) {
+        _node = node;
+        _valuenode = valuenode;
+        _op = op;
+        static if (is(LeftNodeType == TagNameNode)) {
+            auto n = node.tagname;
+        } else {
+            auto n = node.fieldname;
+        }
+        auto v = valuenode.value;
+        static if (is(RightNodeType == NullValueNode)) {
+            if (op == "==") condition = new Filter!"=="(n, v);
+            else if (op == "!=") condition = new Filter!"!="(n, v);
+            else assert(0);
+        } else {
+            switch (op) {
+                case ">": condition = new Filter!">"(n, v); break;
+                case "<": condition = new Filter!"<"(n, v); break;
+                case ">=": condition = new Filter!">="(n, v); break;
+                case "<=": condition = new Filter!"<="(n, v); break;
+                case "!=": condition = new Filter!"!="(n, v); break;
+                case "==": condition = new Filter!"=="(n, v); break;
+                default: assert(0); // must be catched before calling constructor
+            }
+        }
+    }
+
+    override string toString() const {
+        return _node.toString() ~ " " ~ _op ~ " " ~ _valuenode.toString();
+    }
+}
+
+alias ComparisonNode!(long, TagNameNode, IntegerNode, IntegerTagFilter) IntegerTagConditionNode;
+alias ComparisonNode!(string, TagNameNode, StringNode, StringTagFilter) StringTagConditionNode;
+alias ComparisonNode!(long, IntegerFieldNode, IntegerNode, IntegerFieldFilter) IntegerFieldConditionNode;
+alias ComparisonNode!(string, StringFieldNode, StringNode, StringFieldFilter) StringFieldConditionNode;
+alias ComparisonNode!(typeof(null), TagNameNode, NullValueNode, TagExistenceFilter) TagExistenceConditionNode;
+
+final class OrConditionNode : ConditionNode {
+    private ConditionNode _a, _b;
+    this(Node a, Node b) {
+        _a = cast(ConditionNode)a;
+        _b = cast(ConditionNode)b;
+        enforce(_a !is null, "'" ~ a.toString() ~ "' is not a condition");
+        enforce(_a !is null, "'" ~ b.toString() ~ "' is not a condition");
+        condition = new OrFilter(_a.condition, _b.condition);
+    }
+
+    override string toString() const {
+        return "(" ~ _a.toString()  ~ ") or (" ~ _b.toString() ~ ")";
+    }
+}
+
+final class AndConditionNode : ConditionNode {
+    private ConditionNode _a, _b;
+    this(Node a, Node b) {
+        _a = cast(ConditionNode)a;
+        _b = cast(ConditionNode)b;
+        enforce(_a !is null, "'" ~ a.toString() ~ "' is not a condition");
+        enforce(_a !is null, "'" ~ b.toString() ~ "' is not a condition");
+        condition = new AndFilter(_a.condition, _b.condition);
+    }
+
+    override string toString() const {
+        return "(" ~ _a.toString()  ~ ") and (" ~ _b.toString() ~ ")";
+    }
+}
+
+final class NegateConditionNode : ConditionNode {
+    private ConditionNode _a;
+    this(Node a) {
+        _a = cast(ConditionNode)a;
+        enforce(_a !is null, "'" ~ a.toString() ~ "' is not a condition");
+        condition = new NotFilter(_a.condition);
+    }
+
+    override string toString() const {
+        return "not (" ~ _a.toString() ~ ")";
+    }
+}
+
+final class FlagConditionNode : ConditionNode {
+    private string _flagname;
+    this(in string flagname) {
+        _flagname = flagname;
+        switch (flagname) {
+            case "paired":
+                condition = new FlagFilter!"is_paired"(); break;
+            case "proper_pair":
+                condition = new FlagFilter!"proper_pair"(); break;
+            case "unmapped":
+                condition = new FlagFilter!"is_unmapped"(); break;
+            case "mate_is_unmapped":
+                condition = new FlagFilter!"mate_is_unmapped"(); break;
+            case "reverse_strand":
+                condition = new FlagFilter!"is_reverse_strand"(); break;
+            case "mate_is_reverse_strand":
+                condition = new FlagFilter!"mate_is_reverse_strand"(); break;
+            case "first_of_pair":
+                condition = new FlagFilter!"is_first_of_pair"(); break;
+            case "second_of_pair":
+                condition = new FlagFilter!"is_second_of_pair"(); break;
+            case "secondary_alignment":
+                condition = new FlagFilter!"is_secondary_alignment"(); break;
+            case "failed_quality_control":
+                condition = new FlagFilter!"failed_quality_control"(); break;
+            case "duplicate":
+                condition = new FlagFilter!"is_duplicate"(); break;
+            case "supplementary":
+                condition = new FlagFilter!"is_supplementary"(); break;
+            case "chimeric":
+                condition = new ChimericFilter(); break;
+            default:
+                throw new Exception("unknown flag '" ~ flagname ~ "'");
+        }
+    }
+
+    override string toString() const {
+        return _flagname; 
+    }
+}
+
+final class QueryGrammar : Grammar!Node {
+    this() {
+        super("(end)");
+
+        addSymbolToDict("null").setParser((in string str) { return cast(Node) new NullValueNode(); });
+
+        static auto makeScanner(string[] values) {
+            return (in string str, size_t pos) {
+                foreach (value; values) {
+                    if (startsWith(str[pos .. $], value)) {
+                        return pos + value.length;
+                    }
+                }
+                return pos;
+            };
+        }
+
+        auto flagnames = ["paired", "proper_pair", "unmapped", "mate_is_unmapped",
+                          "reverse_strand", "mate_is_reverse_strand", "first_of_pair",
+                          "second_of_pair", "secondary_alignment", "failed_quality_control",
+                          "duplicate", "supplementary", "chimeric"];
+
+        addSymbolToDict("(flag condition)", 0)
+            .setScanner(makeScanner(flagnames))
+            .setParser((in string str) { return cast(Node) new FlagConditionNode(str);});
+
+        auto integer_fields = ["ref_id", "position", "mapping_quality", "avg_base_quality",
+                               "sequence_length", "mate_ref_id", "mate_position",
+                               "template_length"];
+
+        addSymbolToDict("(integer field)", 0)
+            .setScanner(makeScanner(integer_fields))
+            .setParser((in string str) { return cast(Node) new IntegerFieldNode(str);});
+               
+        auto string_fields = ["read_name", "sequence", "cigar", "strand", "ref_name", "mate_ref_name"];
+
+        addSymbolToDict("(string field)", 0)
+            .setScanner(makeScanner(string_fields))
+            .setParser((in string str) { return cast(Node) new StringFieldNode(str); });
+
+        addSymbolToDict("(tag name)", 0)
+            .setScanner(
+                (in string str, size_t pos) {
+                    auto s = str[pos .. $];
+                    if (s.length == 0) return pos;
+                    if (s[0] == '[' && s.length >= 4 && s[3] == ']') {
+                        return pos + 4;
+                    } else {
+                        return pos;
+                    }
+                }
+            ).setParser(
+                (in string str) { return cast(Node) new TagNameNode(str[1..3]); }
+            );
+
+        addSymbolToDict("(integer)", 0)
+            .setScanner(
+                (in string str, size_t pos) {
+                    if (pos >= str.length) return pos;
+                    size_t i = pos;
+                    if (str[i] == '-' || str[i] == '+') {
+                        ++i;
+                        if (str.length == 1) return pos;
+                    }
+                    while (i < str.length && isDigit(str[i])) ++i;
+                    return i;
+                }
+            ).setParser(
+                (in string str) { return cast(Node) new IntegerNode(to!long(str)); }
+            );
+
+        // string literal matches /'([^']|\\')*'/
+        addSymbolToDict("(string)", 0)
+            .setScanner(
+                (in string str, size_t pos) {
+                    if (pos >= str.length || str[pos] != '\'') return pos;
+                    size_t i = pos + 1;
+                    while (i < str.length) {
+                        if (str[i] == '\\' && i + 1 < str.length && str[i+1] == '\'') {
+                            i += 2;
+                        } else if (str[i] == '\'') {
+                            i += 1;
+                            break;
+                        } else {
+                            i += 1;
+                        }
+                    }
+                    if (i == str.length && str[$-1] != '\'') return pos;
+                    return i;
+                }
+            ).setParser(
+                (in string str) { 
+                    assert(str[0] == '\'');
+                    assert(str[$ - 1] == '\'');
+                    auto strbuilder = appender!(char[])();
+                    strbuilder.reserve(str.length - 2);
+                    auto s = str[1 .. $ - 1];
+                    for (size_t i = 0; i < s.length; i++) {
+                        if (s[i] == '\\' && i + 1 < s.length && s[i+1] == '\'') {
+                            strbuilder.put('\'');
+                            i += 1;
+                        } else {
+                            strbuilder.put(s[i]);
+                        }
+                    }
+                    return cast(Node) new StringNode(cast(string)(strbuilder.data));
+                }
+            );
+
+        static auto makeComparisonOperator(string op) {
+            return (Node a, Node b) { 
+                auto integer = cast(IntegerNode) b;
+                auto str = cast(StringNode) b;
+                auto nil = cast(NullValueNode) b;
+
+                auto tag = cast(TagNameNode) a;
+                if (integer !is null) {
+                    if (tag !is null) {
+                        auto node = new IntegerTagConditionNode(op, tag, integer);
+                        return cast(Node) node;
+                    } else {
+                        auto field = cast(IntegerFieldNode) a;
+                        if (field is null) {
+                            throw new Exception("expected tag or integer field name instead of '"~
+                                                a.toString() ~ "'"); 
+                        }
+                        return cast(Node) new IntegerFieldConditionNode(op, field, integer);
+                    }
+                } else if (str !is null) {
+                    if (tag !is null) {
+                        auto node = new StringTagConditionNode(op, tag, str);
+                        return cast(Node) node;
+                    } else {
+                        auto field = cast(StringFieldNode) a;
+                        if (field is null) {
+                            throw new Exception("expected tag or string field name instead of '"~
+                                                a.toString() ~ "'");
+                        }
+                        return cast(Node) new StringFieldConditionNode(op, field, str);
+                    }
+                } else if (nil !is null && (op == "==" || op == "!=")) {
+                    enforce(tag !is null, "only tag value can be compared with null");
+                    auto node = new TagExistenceConditionNode(op, tag, nil);
+                    return cast(Node) node;
+                } else {
+                    throw new Exception("can't compare `" ~ a.toString() ~ "` and `" ~
+                                        b.toString() ~ "`");
+                }
+            };
+        }
+
+        foreach (op; [">", "<", ">=", "<=", "==", "!="])
+            infix(op, 110, makeComparisonOperator(op));
+
+        // regexp literal matches /\/([^\/]|\\/)*\/[gixUms]
+        addSymbolToDict("(regexp)", 0)
+            .setScanner((in string str, size_t pos) {
+                if (pos >= str.length) return pos;
+                if (str[pos] != '/') return pos;
+                size_t i = pos + 1;
+                while (i < str.length) {
+                    if (str[i] == '\\' && i + 1 < str.length && str[i+1] == '/') {
+                        i += 2;
+                    } else if (str[i] == '/') {
+                        i += 1;
+                        break;
+                    } else {
+                        i += 1;
+                    }
+                }
+                if (i == str.length && str[$ - 1] != '/') return pos;
+                while (i < str.length) {
+                    if (std.ascii.isWhite(str[i]) || str[i] == ')') break;
+                    if (canFind("gixUms", str[i])) {
+                        ++i;
+                    } else {
+                        return pos;
+                    }
+                }
+                return i;
+            }).setParser((in string str) {
+                size_t delimiter_pos = str.length - 1;
+                while (str[delimiter_pos] != '/') 
+                    --delimiter_pos;
+                auto pattern = str[1 .. delimiter_pos];
+                auto options = str[delimiter_pos + 1 .. $];
+                return cast(Node) new RegexpNode(pattern, options);
+            });
+
+        infix("=~", 110, 
+            (Node a, Node b) {
+                auto regexp_node = cast(RegexpNode) b;
+                if (regexp_node is null) {
+                    throw new Exception("expected regular expression, not '" ~ b.toString() ~ "'");
+                }
+                auto strfield = cast(StringFieldNode) a;
+                if (strfield !is null) {
+                    return cast(Node) new RegexpFieldConditionNode(strfield, regexp_node);
+                } 
+                auto tag = cast(TagNameNode) a;
+                if (tag !is null) {
+                    return cast(Node) new RegexpTagConditionNode(tag, regexp_node);
+                }
+                throw new Exception("expected string field or tag name, not '" ~ a.toString(), "'");
+            });
+
+        infix("and", 80, (Node a, Node b) { return cast(Node) new AndConditionNode(a, b); });
+        infix("or", 60, (Node a, Node b) { return cast(Node) new OrConditionNode(a, b);  });
+        prefix("not", 100, (Node a) { return cast(Node) new NegateConditionNode(a); });
+        brackets("(", ")", int.max);
+    }
+}
+
+unittest {
+    import std.stdio;
+    auto grammar = new QueryGrammar();
+    assert(grammar.parse("unmapped and mate_is_unmapped").toString() == "(unmapped) and (mate_is_unmapped)");
+//    writeln(grammar.parse("[BQ] >= 'ab\\'asdga' and ([NM] < 12 or unmapped and [PS] == '321') or mapping_quality < 150 and read_name >= 'abcd' and [PG] != null").toString());
+}
diff --git a/sambamba/utils/common/readstorage.d b/sambamba/utils/common/readstorage.d
new file mode 100644
index 0000000..7ced740
--- /dev/null
+++ b/sambamba/utils/common/readstorage.d
@@ -0,0 +1,140 @@
+/*
+    This file is part of Sambamba.
+    Copyright (C) 2012-2014    Artem Tarasov <lomereiter at gmail.com>
+
+    Sambamba 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; either version 2 of the License, or
+    (at your option) any later version.
+
+    Sambamba 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+module sambamba.utils.common.readstorage;
+
+import std.c.stdlib;
+import std.c.string;
+import std.parallelism;
+import std.algorithm;
+import bio.core.utils.roundbuf;
+import bio.core.utils.outbuffer;
+
+import bio.bam.read;
+
+struct ReadStorage {
+    private size_t max_sz;
+
+    this(size_t max_total_size) {
+        max_sz = max_total_size;
+        read_storage = cast(ubyte*)std.c.stdlib.malloc(max_sz);
+        _reads_capa = 1024;
+        auto sz = BamRead.sizeof * _reads_capa;
+        _reads = cast(BamRead*)std.c.stdlib.malloc(sz);
+    }
+
+    void clear() {
+        _used = 0;
+        _n_reads = 0;
+    }
+
+    void fill(R)(R* reads) {
+        while (!reads.empty) {
+            auto read = reads.front;
+            auto len = read.raw_data.length;
+            if (len + _used > max_sz)
+                break;
+
+            std.c.string.memcpy(read_storage + _used, read.raw_data.ptr, len);
+            if (_n_reads == _reads_capa) {
+                _reads_capa *= 2;
+                _reads = cast(BamRead*)std.c.stdlib.realloc(_reads, _reads_capa * BamRead.sizeof);
+            }
+            _reads[_n_reads].raw_data = read_storage[_used .. _used + len];
+            _reads[_n_reads].associateWithReader(read.reader);
+
+            _n_reads += 1;
+            _used += len;
+
+            reads.popFront();
+        }
+
+        if (_n_reads == 0) {
+            auto read = reads.front;
+            auto len = read.raw_data.length;
+            assert(len > max_sz);
+            _n_reads = 1;
+            read_storage = cast(ubyte*)std.c.stdlib.realloc(read_storage, len);
+            _used = len;
+            read_storage[0 .. len] = read.raw_data[];
+            _reads[0].raw_data = read_storage[0 .. _used];
+            _reads[0].associateWithReader(read.reader);
+            reads.popFront();
+        }
+    }
+
+    void free() {
+        std.c.stdlib.free(read_storage);
+        std.c.stdlib.free(_reads);
+    }
+
+    BamRead[] reads() @property { return _reads[0 .. _n_reads]; }
+
+    private {
+        BamRead* _reads;
+        size_t _reads_capa;
+        size_t _n_reads;
+
+        ubyte* read_storage;
+        size_t _used;
+    }
+}
+
+class TaskWithData(alias converter, T...) {
+    Task!(converter, BamRead[], OutBuffer, T)* conversion_task;
+    ReadStorage input_buffer;
+    OutBuffer output_buffer;
+
+    this(size_t n=131072) {
+        input_buffer = ReadStorage(n);
+        output_buffer = new OutBuffer(n * 5);
+    }
+
+    final void run(TaskPool pool, T params) {
+        conversion_task = task!converter(input_buffer.reads, output_buffer,
+					 params);
+        pool.put(conversion_task);
+    }
+}
+
+void runConversion(alias converter, alias writer, R)(R reads, TaskPool pool) {
+    auto n_tasks = max(pool.size, 2) * 4;
+    auto tasks = RoundBuf!(TaskWithData!converter)(n_tasks);
+    foreach (i; 0 .. n_tasks) {
+        if (reads.empty)
+            break;
+        auto t = new TaskWithData!converter();
+        t.input_buffer.fill(&reads);
+        t.run(pool);
+        tasks.put(t);
+    }
+
+    while (!tasks.empty) {
+        auto t = tasks.front;
+        writer(t.conversion_task.yieldForce());
+        tasks.popFront();
+        if (!reads.empty) {
+            t.input_buffer.clear();
+            t.input_buffer.fill(&reads);
+            t.output_buffer.clear();
+            t.run(pool);
+            tasks.put(t);
+        }
+    }
+}
diff --git a/sambamba/utils/common/tmpdir.d b/sambamba/utils/common/tmpdir.d
new file mode 100644
index 0000000..05bf3e2
--- /dev/null
+++ b/sambamba/utils/common/tmpdir.d
@@ -0,0 +1,24 @@
+module sambamba.utils.common.tmpdir;
+import std.random;
+import std.path;
+import std.file;
+import std.process;
+import std.conv;
+
+string defaultTmpDir() {
+    return environment.get("TMPDIR", "/tmp");
+}
+
+string randomSubdir(string tmpdir, string prefix="") {
+    auto gen = Random(unpredictableSeed);
+    char[4] subdirname;
+    string result;
+    do { 
+      foreach (ref c; subdirname[])
+          c = uniform!"[]"('a', 'z', gen);
+      result = buildPath(tmpdir, "sambamba-pid" ~ thisProcessID.to!string ~ 
+                                 "-" ~ prefix ~ subdirname[]);
+    } while (std.file.exists(result));
+    std.file.mkdirRecurse(result);
+    return result;
+}
diff --git a/sambamba/utils/view/alignmentrangeprocessor.d b/sambamba/utils/view/alignmentrangeprocessor.d
new file mode 100644
index 0000000..ff96219
--- /dev/null
+++ b/sambamba/utils/view/alignmentrangeprocessor.d
@@ -0,0 +1,195 @@
+/*
+    This file is part of Sambamba.
+    Copyright (C) 2012-2013    Artem Tarasov <lomereiter at gmail.com>
+
+    Sambamba 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; either version 2 of the License, or
+    (at your option) any later version.
+
+    Sambamba 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+module sambamba.utils.view.alignmentrangeprocessor;
+
+import bio.bam.reader;
+import bio.bam.read;
+import bio.bam.writer;
+import bio.bam.thirdparty.msgpack;
+import bio.core.utils.outbuffer;
+import bio.core.utils.range;
+import sambamba.utils.common.readstorage;
+
+import std.stdio;
+import std.exception;
+import std.string;
+import std.range;
+import std.array;
+import std.format;
+import std.traits;
+import std.stream : Stream, BufferedFile, FileMode;
+import std.conv;
+import std.algorithm;
+import std.parallelism;
+
+class ReadCounter {
+    size_t number_of_reads;
+    
+    void process(R, SB)(R reads, SB bam) {
+        number_of_reads = walkLength(reads);
+    }
+
+    enum is_serial = true;
+}
+
+version(Posix) {
+    extern(C) int isatty(int fd);
+}
+
+version(Windows) {
+    bool isatty(int handle) {
+        return 1; // FIXME!!!
+    }
+}
+
+private bool isTty(ref std.stdio.File file) @property {
+    return isatty(file.fileno()) != 0;
+}
+
+template chunkToFormat(char format) {
+    char[] chunkToFormat(R)(in R[] reads, OutBuffer outbuffer) {
+        FormatSpec!char f = void;
+        f.spec = format; // nothing else matters
+        if (reads.length > 0) {
+            outbuffer.capacity = reads.length * reads.front.size_in_bytes * 2;
+            foreach (r; reads) {
+                r.toString((const(char)[] s) { outbuffer.put(cast(ubyte[])s); }, f);
+                outbuffer.put('\n');
+            }
+        }
+        return cast(char[])(outbuffer.data);
+    }
+}
+
+alias chunkToFormat!'s' chunkToSam;
+alias chunkToFormat!'j' chunkToJson;
+
+class TextSerializer {
+    this(File f, TaskPool pool) {
+        _f = f;
+        _pool = pool;
+
+        if (!_f.isTty)
+            _f.setvbuf(1_024_576);
+    }
+
+    private std.stdio.File _f;
+    private TaskPool _pool;
+}
+
+final class SamSerializer : TextSerializer {
+    this(File f, TaskPool pool) { super(f, pool); }
+
+    void process(R, SB)(R reads, SB bam) {
+        auto w = _f.lockingTextWriter;
+        runConversion!(chunkToSam, data => w.put(data))(reads, _pool);
+    }
+
+    enum is_serial = true;
+}
+
+import cram.writer;
+final class CramSerializer {
+    private CramWriter _writer;
+    this(string output_fn, string ref_fn, size_t n_threads) {
+        if (output_fn is null)
+            output_fn = "-"; // stdout
+        _writer = new CramWriter(output_fn, n_threads);
+        if (ref_fn !is null)
+            _writer.setFastaFilename(ref_fn);
+    }
+
+    enum is_serial = true;
+
+    void process(R, SB)(R reads, SB bam)
+    {
+        scope (exit) _writer.finish();
+        _writer.writeSamHeader(bam.header);
+        foreach (read; reads)
+            _writer.writeRecord(read);
+    }
+}
+
+final class BamSerializer {
+
+    private File _f;
+    private int _level;
+    private TaskPool _task_pool;
+    private enum BUFSIZE = 4096;//1_048_576;
+
+    string output_filename;
+
+    this(string output_fn, File f, int compression_level, TaskPool pool) {
+        output_filename = output_fn;
+        _f = f;
+        if (!_f.isTty)
+            _f.setvbuf(BUFSIZE);
+        _level = compression_level;
+        _task_pool = pool;
+    }
+
+    enum is_serial = true;
+
+    void process(R, SB)(R reads, SB bam) 
+    {
+        version (Posix) {
+            auto handle = _f.fileno;
+        }
+        version (Win32) {
+            import core.stdc.stdio : _fdToHandle;
+            auto handle = _fdToHandle(_f.fileno);
+        }
+        Stream output_stream = new BufferedFile(handle, FileMode.OutNew, 
+                                                BUFSIZE);
+        auto writer = new BamWriter(output_stream, _level, _task_pool);
+        writer.setFilename(output_filename);
+        scope(exit) writer.finish();
+        writer.writeSamHeader(bam.header);
+        writer.writeReferenceSequenceInfo(bam.reference_sequences);
+        foreach (read; reads)
+            writer.writeRecord(read);
+    }
+}
+
+final class JsonSerializer : TextSerializer {
+    this(File f, TaskPool pool) { super(f, pool); }
+
+    void process(R, SB)(R reads, SB bam) {
+        auto w = _f.lockingTextWriter;
+        runConversion!(chunkToJson, data => w.put(data))(reads, _pool);
+    }
+
+    enum is_serial = true;
+}
+
+final class MsgpackSerializer : TextSerializer {
+    this(File f) { super(f, null); }
+
+    void process(R, SB)(R reads, SB bam) {
+        auto packer = packer(Appender!(ubyte[])());
+        foreach (read; reads) {
+            packer.pack(read);
+            fwrite(packer.stream.data.ptr, packer.stream.data.length, ubyte.sizeof, _f.getFP());
+            packer.stream.clear();
+        }
+    }
+
+    enum is_serial = true;
+}
diff --git a/sambamba/utils/view/headerserializer.d b/sambamba/utils/view/headerserializer.d
new file mode 100644
index 0000000..92fb9b9
--- /dev/null
+++ b/sambamba/utils/view/headerserializer.d
@@ -0,0 +1,80 @@
+/*
+    This file is part of Sambamba.
+    Copyright (C) 2012-2013    Artem Tarasov <lomereiter at gmail.com>
+
+    Sambamba 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; either version 2 of the License, or
+    (at your option) any later version.
+
+    Sambamba 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+module sambamba.utils.view.headerserializer;
+
+import bio.sam.header;
+import std.conv;
+import std.array;
+import std.stdio;
+import bio.bam.thirdparty.msgpack;
+
+private {
+    abstract class IHeaderSerializer {
+        private File _f;
+        this(File f) { _f = f; }
+        void writeln(SamHeader header);
+    }
+
+    final class HeaderSamSerializer : IHeaderSerializer {
+        this(File f) { super(f); }
+        override void writeln(SamHeader header) {
+            _f.writef("%s", header);
+        }
+    }
+
+    final class HeaderJsonSerializer : IHeaderSerializer {
+        this(File f) { super(f); }
+        override void writeln(SamHeader header) {
+            _f.writef("%j", header);
+        }
+    }
+
+    final class HeaderMsgpackSerializer : IHeaderSerializer {
+        this(File f) { super(f); }
+        override void writeln(SamHeader header) {
+            auto packer = packer(Appender!(ubyte[])());
+            packer.pack(header);
+            fwrite(packer.stream.data.ptr, packer.stream.data.length, ubyte.sizeof, _f.getFP());
+        }
+    }
+}
+
+final class HeaderSerializer {
+    private IHeaderSerializer _serializer;
+
+    this(File f, string format) {
+        switch(format) {
+            case "sam":
+            case "bam":
+                _serializer = new HeaderSamSerializer(f); break;
+            case "json":
+                _serializer = new HeaderJsonSerializer(f); break;
+            case "msgpack":
+                _serializer = new HeaderMsgpackSerializer(f); break;
+            default:
+                throw new Exception("unknown format for serialization: '" ~ format ~ 
+                                    "' (expected 'sam', 'bam', 'json', or 'msgpack')");
+        }
+    }
+
+    void writeln(SamHeader header) {
+        _serializer.writeln(header);
+    }
+}
diff --git a/sambamba/view.d b/sambamba/view.d
new file mode 100644
index 0000000..66ac917
--- /dev/null
+++ b/sambamba/view.d
@@ -0,0 +1,384 @@
+/*
+    This file is part of Sambamba.
+    Copyright (C) 2012-2016    Artem Tarasov <lomereiter at gmail.com>
+
+    Sambamba 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; either version 2 of the License, or
+    (at your option) any later version.
+
+    Sambamba 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+module sambamba.view;
+
+import bio.bam.reader;
+import bio.bam.read;
+import bio.bam.splitter;
+import bio.bam.region;
+import bio.sam.reader;
+import cram.reader;
+import bio.core.region;
+
+import sambamba.utils.common.filtering;
+import sambamba.utils.common.overwrite;
+import sambamba.utils.common.progressbar;
+import sambamba.utils.view.alignmentrangeprocessor;
+import sambamba.utils.view.headerserializer;
+import sambamba.utils.common.bed;
+
+import bio.core.utils.format;
+import utils.version_ : addPG;
+
+import std.stdio;
+import std.string;
+import std.array;
+import std.traits;
+import std.getopt;
+import std.parallelism;
+import std.algorithm;
+import std.math : isNaN;
+import std.random;
+import std.range;
+import std.conv;
+
+void printUsage() {
+    stderr.writeln("Usage: sambamba-view [options] <input.bam | input.sam> [region1 [...]]");
+    stderr.writeln();
+    stderr.writeln("Options: -F, --filter=FILTER");
+    stderr.writeln("                    set custom filter for alignments");
+    stderr.writeln("         -f, --format=sam|bam|cram|json");
+    stderr.writeln("                    specify which format to use for output (default is SAM)");
+    stderr.writeln("         -h, --with-header");
+    stderr.writeln("                    print header before reads (always done for BAM output)");
+    stderr.writeln("         -H, --header");
+    stderr.writeln("                    output only header to stdout (if format=bam, the header is printed as SAM)");
+    stderr.writeln("         -I, --reference-info");
+    stderr.writeln("                    output to stdout only reference names and lengths in JSON");
+    stderr.writeln("         -L, --regions=FILENAME");
+    stderr.writeln("                    output only reads overlapping one of regions from the BED file");
+    stderr.writeln("         -c, --count");
+    stderr.writeln("                    output to stdout only count of matching records, hHI are ignored");
+    stderr.writeln("         -v, --valid");
+    stderr.writeln("                    output only valid alignments");
+    stderr.writeln("         -S, --sam-input");
+    stderr.writeln("                    specify that input is in SAM format");
+    stderr.writeln("         -C, --cram-input");
+    stderr.writeln("                    specify that input is in CRAM format");
+    stderr.writeln("         -T, --ref-filename=FASTA");
+    stderr.writeln("                    specify reference for writing CRAM");
+    stderr.writeln("         -p, --show-progress");
+    stderr.writeln("                    show progressbar in STDERR (works only for BAM files with no regions specified)");
+    stderr.writeln("         -l, --compression-level");
+    stderr.writeln("                    specify compression level (from 0 to 9, works only for BAM output)");
+    stderr.writeln("         -o, --output-filename");
+    stderr.writeln("                    specify output filename");
+    stderr.writeln("         -t, --nthreads=NTHREADS");
+    stderr.writeln("                    maximum number of threads to use");
+    stderr.writeln("         -s, --subsample=FRACTION");
+    stderr.writeln("                    subsample reads (read pairs)");
+    stderr.writeln("         --subsampling-seed=SEED");
+    stderr.writeln("                    set seed for subsampling");
+}
+
+void outputReferenceInfoJson(T)(T bam) {
+
+    auto w = stdout.lockingTextWriter;
+    w.put('[');
+
+    bool first = true;
+    foreach (refseq; bam.reference_sequences) {
+        if (first) {
+            first = false;
+        } else {
+            w.put(',');
+        }
+        w.put(`{"name":`);
+        writeJson((const(char)[] s) { w.put(s); }, refseq.name);
+        w.put(`,"length":`);
+        writeJson((const(char)[] s) { w.put(s); }, refseq.length);
+        w.put('}');
+    }
+
+    w.put("]\n");
+}
+
+string format = "sam";
+string query;
+string ref_fn;
+bool with_header;
+bool header_only;
+bool reference_info_only;
+bool count_only;
+bool skip_invalid_alignments;
+bool is_sam;
+bool is_cram;
+
+bool show_progress;
+
+int compression_level = -1;
+string output_filename;
+uint n_threads;
+double subsample_frac; // NaN by default
+ulong subsampling_seed;
+string bed_filename;
+
+string[] unparsed_args;
+
+version(standalone) {
+    int main(string[] args) {
+        return view_main(args);
+    }
+}
+
+int view_main(string[] args) {
+    n_threads = totalCPUs;
+
+    subsampling_seed = unpredictableSeed;
+    subsampling_seed <<= 32;
+    subsampling_seed += unpredictableSeed;
+
+    unparsed_args = args.dup;
+
+    try {
+
+        getopt(args,
+               std.getopt.config.caseSensitive,
+               "filter|F",            &query,
+               "format|f",            &format,
+               "with-header|h",       &with_header,
+               "header|H",            &header_only,
+               "reference-info|I",    &reference_info_only,
+               "regions|L",           &bed_filename,
+               "count|c",             &count_only,
+               "valid|v",             &skip_invalid_alignments,
+               "sam-input|S",         &is_sam,
+               "cram-input|C",        &is_cram, // TODO: autodetection of format
+               "show-progress|p",     &show_progress,
+               "compression-level|l", &compression_level,
+               "output-filename|o",   &output_filename,
+               "nthreads|t",          &n_threads,
+               "subsample|s",         &subsample_frac,
+               "subsampling-seed",    &subsampling_seed,
+               "ref-filename|T",      &ref_fn);
+
+        if (args.length < 2) {
+            printUsage();
+            return 0;
+        }
+
+        // <cludge> cram writer doesn't share the task pool
+        if (!is_sam && format == "cram")
+          n_threads /= 2;
+        // </cludge>
+
+        protectFromOverwrite(args[1], output_filename);
+
+        if (is_cram && is_sam)
+            throw new Exception("only one of --sam-input and --cram-input can be specified");
+
+        auto task_pool = new TaskPool(n_threads);
+        scope(exit) task_pool.finish();
+        if (is_sam) {
+            auto sam = new SamReader(args[1]);
+            return sambambaMain(sam, task_pool, args);
+        } else if (!is_cram) {
+            auto bam = new BamReader(args[1], task_pool);
+            return sambambaMain(bam, task_pool, args);
+        } else {
+            auto cram = new CramReader(args[1], task_pool);
+            return sambambaMain(cram, task_pool, args);
+        }
+    } catch (Exception e) {
+        stderr.writeln("sambamba-view: ", e.msg);
+
+        version(development) {
+            throw e; // rethrow to see detailed message
+        }
+
+        return 1;
+    }
+}
+
+auto filtered(R)(R reads, Filter f) {
+    return reads.zip(f.repeat()).filter!q{a[1].accepts(a[0])}.map!q{a[0]}();
+}
+
+int sambambaMain(T)(T _bam, TaskPool pool, string[] args)
+{
+    auto bam = _bam; // FIXME: uhm, that was a workaround for some closure-related bug
+
+    if (reference_info_only && !count_only) {
+        outputReferenceInfoJson(bam);
+        return 0;
+    }
+
+    File output_file;
+    if (output_filename is null || output_filename == "-")
+        output_file = stdout;
+    else
+        output_file = File(output_filename, "w+");
+
+    if (!header_only)  // = some processing is done
+        addPG("view", unparsed_args, bam.header);
+
+    if (header_only && !count_only) {
+        // write header to stdout
+        (new HeaderSerializer(stdout, format)).writeln(bam.header);
+    } else if (with_header && !count_only &&
+               format != "bam" && format != "cram")
+    {
+        (new HeaderSerializer(output_file, format)).writeln(bam.header);
+    }
+
+    if (header_only) {
+        output_file.close();
+        return 0;
+    }
+
+    Filter read_filter = new NullFilter();
+
+    if (skip_invalid_alignments) {
+        read_filter = new AndFilter(read_filter, new ValidAlignmentFilter());
+    }
+
+    if (query !is null) {
+        auto query_filter = createFilterFromQuery(query);
+        if (query_filter is null)
+            return 1;
+        read_filter = new AndFilter(read_filter, query_filter);
+    }
+
+    if (!isNaN(subsample_frac)) {
+        auto subsample_filter = new SubsampleFilter(subsample_frac, subsampling_seed);
+        read_filter = new AndFilter(subsample_filter, read_filter);
+    }
+
+    int processAlignments(P)(P processor) {
+        static if (is(T == SamReader)) {
+            if (args.length > 2) {
+                stderr.writeln("region queries are unavailable for SAM input");
+                return 1;
+            }
+        }
+
+        void runProcessor(SB, R, F)(SB bam, R reads, F filter) {
+            if (processor.is_serial)
+                bam.assumeSequentialProcessing();
+            if (cast(NullFilter) filter)
+                processor.process(reads, bam);
+            else
+                processor.process(reads.filtered(filter), bam);
+        }
+
+        bool output_all_reads = args.length == 2 &&
+          (bed_filename.empty || bam.header.sorting_order != SortingOrder.coordinate);
+        static if (is(T == SamReader))
+          output_all_reads = true;
+
+        if (bed_filename.length > 0 && args.length > 2) {
+            throw new Exception("specifying both region and BED filename is disallowed");
+        }
+
+        if (output_all_reads) {
+            if (bed_filename !is null) {
+                auto regions = parseBed(bed_filename, bam);
+                read_filter = new AndFilter(read_filter, new BedFilter(regions));
+            }
+
+            static if (is(T == BamReader)) {
+                if (show_progress) {
+                    auto bar = new shared(ProgressBar)();
+                    auto reads = bam.readsWithProgress((lazy float p) { bar.update(p); });
+                    runProcessor(bam, reads, read_filter);
+                    bar.finish();
+                } else {
+                    runProcessor(bam, bam.reads!withoutOffsets(), read_filter);
+                }
+            } else { // SamFile
+                runProcessor(bam, bam.reads, read_filter);
+            }
+        } else {
+        // for BAM/CRAM, random access is available
+        static if (is(T == BamReader) || is(T == CramReader)) {
+            if (args.length > 2) {
+                auto regions = map!parseRegion(args[2 .. $]);
+
+                alias typeof(bam.unmappedReads().front) Read;
+                alias InputRange!Read AlignmentRange;
+                auto alignment_ranges = new AlignmentRange[regions.length];
+
+                size_t i = 0;
+                foreach (region_description; args[2 .. $]) {
+                    AlignmentRange range;
+                    if (region_description == "*") {
+                        range = bam.unmappedReads().inputRangeObject;
+                    } else {
+                        auto r = parseRegion(region_description);
+                        auto seq = bam[r.reference];
+                        if (r.end == uint.max)
+                            r.end = seq.length;
+                        range = seq[r.beg .. r.end].inputRangeObject;
+                    }
+                    alignment_ranges[i++] = range;
+                }
+
+                auto reads = joiner(alignment_ranges);
+                runProcessor(bam, reads, read_filter);
+            } else if (bed_filename.length > 0) {
+                static if (is(T == CramReader)) {
+                    throw new Exception("BED support is unavailable for CRAM");
+                } else {
+                    auto regions = parseBed(bed_filename, bam);
+                    auto reads = bam.getReadsOverlapping(regions);
+                    runProcessor(bam, reads, read_filter);
+                }
+            }
+        }
+        }
+
+        return 0;
+    }
+
+    if (count_only) {
+        auto counter = new ReadCounter();
+
+        if (processAlignments(counter))
+            return 1;
+        writeln(counter.number_of_reads);
+    } else {
+        if (format == "bam") {
+            // FIXME: dirty hack to avoid closing file twice, depends on std.stdio.File internals
+            scope(exit) *(*cast(void***)(&output_file)) = null;
+            return processAlignments(new BamSerializer(output_filename,
+                                                       output_file,
+                                                       compression_level, pool));
+        } else if (format == "cram") {
+            output_file.close();
+            return processAlignments(new CramSerializer(output_filename, ref_fn,
+                                                        n_threads));
+        }
+
+        scope (exit) output_file.close();
+        switch (format) {
+            case "sam":
+                return processAlignments(new SamSerializer(output_file, pool));
+            case "json":
+                return processAlignments(new JsonSerializer(output_file, pool));
+            case "msgpack":
+                return processAlignments(new MsgpackSerializer(output_file));
+            default:
+                stderr.writeln("output format must be one of sam, bam, cram, json");
+                return 1;
+        }
+    }
+
+    return 0;
+}
diff --git a/test/issue225.bam b/test/issue225.bam
new file mode 100644
index 0000000..db9dbd3
Binary files /dev/null and b/test/issue225.bam differ
diff --git a/test/issue225.bam.bai b/test/issue225.bam.bai
new file mode 100644
index 0000000..13300ad
Binary files /dev/null and b/test/issue225.bam.bai differ
diff --git a/test/issue225.out b/test/issue225.out
new file mode 100644
index 0000000..6a633f9
--- /dev/null
+++ b/test/issue225.out
@@ -0,0 +1,1904 @@
+REF	POS	COV	A	C	G	T	DEL	REFSKIP	SAMPLE
+chrM	699	1	0	1	0	0	0	0	16-3584
+chrM	700	1	0	1	0	0	0	0	16-3584
+chrM	701	1	0	1	0	0	0	0	16-3584
+chrM	702	1	0	0	0	1	0	0	16-3584
+chrM	703	1	1	0	0	0	0	0	16-3584
+chrM	704	2	0	1	0	1	0	0	16-3584
+chrM	705	2	0	1	1	0	0	0	16-3584
+chrM	706	2	0	1	0	1	0	0	16-3584
+chrM	707	2	0	0	1	1	0	0	16-3584
+chrM	708	2	0	1	1	0	0	0	16-3584
+chrM	709	2	1	0	1	0	0	0	16-3584
+chrM	710	2	0	2	0	0	0	0	16-3584
+chrM	711	2	0	0	2	0	0	0	16-3584
+chrM	712	2	0	2	0	0	0	0	16-3584
+chrM	713	2	2	0	0	0	0	0	16-3584
+chrM	714	2	0	1	1	0	0	0	16-3584
+chrM	715	2	1	1	0	0	0	0	16-3584
+chrM	716	2	0	1	1	0	0	0	16-3584
+chrM	717	2	1	0	0	1	0	0	16-3584
+chrM	718	2	1	0	0	1	0	0	16-3584
+chrM	719	2	1	1	0	0	0	0	16-3584
+chrM	720	2	2	0	0	0	0	0	16-3584
+chrM	721	2	1	0	1	0	0	0	16-3584
+chrM	722	2	1	0	0	1	0	0	16-3584
+chrM	723	2	1	1	0	0	0	0	16-3584
+chrM	724	2	0	0	2	0	0	0	16-3584
+chrM	725	2	0	1	0	1	0	0	16-3584
+chrM	726	2	1	0	1	0	0	0	16-3584
+chrM	727	2	0	0	1	1	0	0	16-3584
+chrM	728	2	0	2	0	0	0	0	16-3584
+chrM	729	2	0	0	2	0	0	0	16-3584
+chrM	730	2	0	2	0	0	0	0	16-3584
+chrM	731	2	0	1	0	1	0	0	16-3584
+chrM	732	2	0	1	1	0	0	0	16-3584
+chrM	733	2	2	0	0	0	0	0	16-3584
+chrM	734	2	2	0	0	0	0	0	16-3584
+chrM	735	2	0	1	0	1	0	0	16-3584
+chrM	736	2	2	0	0	0	0	0	16-3584
+chrM	737	2	1	1	0	0	0	0	16-3584
+chrM	738	2	0	1	1	0	0	0	16-3584
+chrM	739	2	0	1	0	1	0	0	16-3584
+chrM	740	2	0	0	2	0	0	0	16-3584
+chrM	741	2	1	0	0	1	0	0	16-3584
+chrM	742	2	1	0	1	0	0	0	16-3584
+chrM	743	2	1	0	1	0	0	0	16-3584
+chrM	744	2	0	0	1	1	0	0	16-3584
+chrM	745	2	1	1	0	0	0	0	16-3584
+chrM	746	2	0	1	1	0	0	0	16-3584
+chrM	747	2	0	1	1	0	0	0	16-3584
+chrM	748	2	1	1	0	0	0	0	16-3584
+chrM	749	2	0	0	1	1	0	0	16-3584
+chrM	750	2	1	1	0	0	0	0	16-3584
+chrM	751	2	1	0	1	0	0	0	16-3584
+chrM	752	2	1	0	1	0	0	0	16-3584
+chrM	753	2	0	1	0	1	0	0	16-3584
+chrM	754	2	1	0	1	0	0	0	16-3584
+chrM	755	2	1	0	0	1	0	0	16-3584
+chrM	756	2	0	0	1	1	0	0	16-3584
+chrM	757	2	1	0	0	1	0	0	16-3584
+chrM	758	2	1	0	0	1	0	0	16-3584
+chrM	759	2	0	1	0	1	0	0	16-3584
+chrM	760	2	0	2	0	0	0	0	16-3584
+chrM	761	2	0	1	1	0	0	0	16-3584
+chrM	762	2	0	1	0	1	0	0	16-3584
+chrM	763	2	0	0	1	1	0	0	16-3584
+chrM	764	2	1	0	1	0	0	0	16-3584
+chrM	765	2	0	1	0	1	0	0	16-3584
+chrM	766	2	1	0	1	0	0	0	16-3584
+chrM	767	2	0	0	0	2	0	0	16-3584
+chrM	768	2	1	0	1	0	0	0	16-3584
+chrM	769	2	0	2	0	0	0	0	16-3584
+chrM	770	2	0	2	0	0	0	0	16-3584
+chrM	771	1	1	0	0	0	0	0	16-3584
+chrM	772	1	0	1	0	0	0	0	16-3584
+chrM	773	1	0	1	0	0	0	0	16-3584
+chrM	774	1	1	0	0	0	0	0	16-3584
+chrM	775	1	0	1	0	0	0	0	16-3584
+chrM	1860	15	2	4	6	3	0	0	16-3584
+chrM	1861	15	4	1	3	7	0	0	16-3584
+chrM	1862	15	3	7	2	3	0	0	16-3584
+chrM	1863	15	4	5	4	2	0	0	16-3584
+chrM	1864	15	3	4	3	5	0	0	16-3584
+chrM	1865	30	8	8	11	3	0	0	16-3584
+chrM	1866	30	7	4	10	9	0	0	16-3584
+chrM	1867	30	9	6	6	9	0	0	16-3584
+chrM	1868	30	6	4	9	11	0	0	16-3584
+chrM	1869	30	8	9	6	7	0	0	16-3584
+chrM	1870	30	7	6	10	7	0	0	16-3584
+chrM	1871	30	10	6	7	7	0	0	16-3584
+chrM	1872	30	7	5	9	9	0	0	16-3584
+chrM	1873	30	6	11	8	5	0	0	16-3584
+chrM	1874	30	7	6	10	7	0	0	16-3584
+chrM	1875	30	5	6	5	14	0	0	16-3584
+chrM	1876	30	8	9	8	5	0	0	16-3584
+chrM	1877	30	7	6	12	5	0	0	16-3584
+chrM	1878	30	7	12	6	5	0	0	16-3584
+chrM	1879	30	8	6	7	9	0	0	16-3584
+chrM	1880	30	10	6	7	7	0	0	16-3584
+chrM	1881	30	6	12	7	5	0	0	16-3584
+chrM	1882	30	6	8	7	9	0	0	16-3584
+chrM	1883	30	7	8	8	7	0	0	16-3584
+chrM	1884	30	8	6	4	12	0	0	16-3584
+chrM	1885	30	11	6	8	5	0	0	16-3584
+chrM	1886	30	7	6	8	9	0	0	16-3584
+chrM	1887	30	7	12	7	4	0	0	16-3584
+chrM	1888	30	9	7	8	6	0	0	16-3584
+chrM	1889	30	9	4	8	9	0	0	16-3584
+chrM	1890	30	7	6	8	9	0	0	16-3584
+chrM	1891	30	8	8	6	8	0	0	16-3584
+chrM	1892	30	10	7	8	5	0	0	16-3584
+chrM	1893	30	3	8	8	11	0	0	16-3584
+chrM	1894	30	6	8	8	8	0	0	16-3584
+chrM	1895	30	7	9	7	7	0	0	16-3584
+chrM	1896	30	9	4	8	9	0	0	16-3584
+chrM	1897	30	5	9	5	11	0	0	16-3584
+chrM	1898	30	10	6	4	10	0	0	16-3584
+chrM	1899	30	6	8	10	6	0	0	16-3584
+chrM	1900	30	8	6	8	8	0	0	16-3584
+chrM	1901	30	7	11	4	8	0	0	16-3584
+chrM	1902	30	9	7	6	8	0	0	16-3584
+chrM	1903	30	7	7	7	9	0	0	16-3584
+chrM	1904	30	6	5	8	11	0	0	16-3584
+chrM	1905	30	6	6	8	10	0	0	16-3584
+chrM	1906	30	12	6	10	2	0	0	16-3584
+chrM	1907	30	7	6	4	13	0	0	16-3584
+chrM	1908	30	8	8	7	7	0	0	16-3584
+chrM	1909	30	6	8	11	5	0	0	16-3584
+chrM	1910	30	10	13	6	1	0	0	16-3584
+chrM	1911	30	8	6	13	3	0	0	16-3584
+chrM	1912	30	5	9	10	6	0	0	16-3584
+chrM	1913	30	5	7	7	11	0	0	16-3584
+chrM	1914	30	8	9	9	4	0	0	16-3584
+chrM	1915	30	7	5	12	6	0	0	16-3584
+chrM	1916	30	10	8	5	7	0	0	16-3584
+chrM	1917	30	5	5	10	10	0	0	16-3584
+chrM	1918	30	4	9	11	6	0	0	16-3584
+chrM	1919	30	11	7	7	5	0	0	16-3584
+chrM	1920	30	7	10	8	5	0	0	16-3584
+chrM	1921	30	7	6	10	7	0	0	16-3584
+chrM	1922	30	11	6	8	5	0	0	16-3584
+chrM	1923	30	6	9	8	7	0	0	16-3584
+chrM	1924	30	9	7	8	6	0	0	16-3584
+chrM	1925	30	6	7	7	10	0	0	16-3584
+chrM	1926	30	8	4	5	13	0	0	16-3584
+chrM	1927	30	6	9	6	9	0	0	16-3584
+chrM	1928	30	6	5	10	9	0	0	16-3584
+chrM	1929	30	4	10	8	8	0	0	16-3584
+chrM	1930	30	5	8	9	8	0	0	16-3584
+chrM	1931	30	6	5	9	10	0	0	16-3584
+chrM	1932	30	10	6	8	6	0	0	16-3584
+chrM	1933	30	8	4	6	12	0	0	16-3584
+chrM	1934	30	6	9	7	8	0	0	16-3584
+chrM	1935	30	8	7	9	6	0	0	16-3584
+chrM	1936	30	7	4	7	12	0	0	16-3584
+chrM	1937	30	12	9	7	2	0	0	16-3584
+chrM	1938	30	8	9	7	6	0	0	16-3584
+chrM	1939	30	5	5	9	11	0	0	16-3584
+chrM	1940	15	6	5	3	1	0	0	16-3584
+chrM	1941	15	6	2	2	5	0	0	16-3584
+chrM	1942	15	1	2	5	7	0	0	16-3584
+chrM	1943	15	6	3	3	3	0	0	16-3584
+chrM	1944	15	3	2	4	6	0	0	16-3584
+chrM	3965	1	0	1	0	0	0	0	16-3584
+chrM	3966	1	0	1	0	0	0	0	16-3584
+chrM	3967	1	1	0	0	0	0	0	16-3584
+chrM	3968	1	0	0	0	1	0	0	16-3584
+chrM	3969	1	0	0	1	0	0	0	16-3584
+chrM	3970	1	0	0	1	0	0	0	16-3584
+chrM	3971	1	1	0	0	0	0	0	16-3584
+chrM	3972	1	1	0	0	0	0	0	16-3584
+chrM	3973	1	0	0	1	0	0	0	16-3584
+chrM	3974	1	1	0	0	0	0	0	16-3584
+chrM	3975	1	0	1	0	0	0	0	16-3584
+chrM	3976	1	0	1	0	0	0	0	16-3584
+chrM	3977	1	0	1	0	0	0	0	16-3584
+chrM	3978	1	0	1	0	0	0	0	16-3584
+chrM	3979	1	0	1	0	0	0	0	16-3584
+chrM	3980	1	0	0	0	1	0	0	16-3584
+chrM	3981	1	0	1	0	0	0	0	16-3584
+chrM	3982	1	0	0	1	0	0	0	16-3584
+chrM	3983	1	0	0	0	1	0	0	16-3584
+chrM	3984	1	0	0	1	0	0	0	16-3584
+chrM	3985	1	1	0	0	0	0	0	16-3584
+chrM	3986	1	0	1	0	0	0	0	16-3584
+chrM	3987	1	0	0	1	0	0	0	16-3584
+chrM	3988	1	0	0	1	0	0	0	16-3584
+chrM	3989	1	0	0	0	1	0	0	16-3584
+chrM	3990	1	0	0	1	0	0	0	16-3584
+chrM	3991	1	0	0	0	1	0	0	16-3584
+chrM	3992	1	1	0	0	0	0	0	16-3584
+chrM	3993	1	0	0	0	1	0	0	16-3584
+chrM	3994	1	0	0	0	1	0	0	16-3584
+chrM	3995	1	0	0	1	0	0	0	16-3584
+chrM	3996	1	0	0	1	0	0	0	16-3584
+chrM	3997	1	0	1	0	0	0	0	16-3584
+chrM	3998	1	0	1	0	0	0	0	16-3584
+chrM	3999	1	0	0	0	1	0	0	16-3584
+chrM	4000	1	1	0	0	0	0	0	16-3584
+chrM	4001	1	1	0	0	0	0	0	16-3584
+chrM	4002	1	0	1	0	0	0	0	16-3584
+chrM	4003	1	0	0	1	0	0	0	16-3584
+chrM	4004	1	0	0	1	0	0	0	16-3584
+chrM	4005	1	0	0	0	1	0	0	16-3584
+chrM	4006	1	1	0	0	0	0	0	16-3584
+chrM	4007	1	1	0	0	0	0	0	16-3584
+chrM	4008	1	1	0	0	0	0	0	16-3584
+chrM	4009	1	0	1	0	0	0	0	16-3584
+chrM	4010	1	0	0	1	0	0	0	16-3584
+chrM	4011	1	1	0	0	0	0	0	16-3584
+chrM	4012	1	0	0	1	0	0	0	16-3584
+chrM	4013	1	1	0	0	0	0	0	16-3584
+chrM	4014	1	0	1	0	0	0	0	16-3584
+chrM	4015	1	0	0	1	0	0	0	16-3584
+chrM	4016	1	0	1	0	0	0	0	16-3584
+chrM	4017	1	0	0	1	0	0	0	16-3584
+chrM	4018	1	1	0	0	0	0	0	16-3584
+chrM	4019	1	0	0	0	1	0	0	16-3584
+chrM	4020	1	0	1	0	0	0	0	16-3584
+chrM	4021	1	0	0	1	0	0	0	16-3584
+chrM	4022	1	1	0	0	0	0	0	16-3584
+chrM	4023	1	1	0	0	0	0	0	16-3584
+chrM	4024	1	1	0	0	0	0	0	16-3584
+chrM	4025	1	1	0	0	0	0	0	16-3584
+chrM	4026	1	0	0	0	1	0	0	16-3584
+chrM	4027	1	0	0	0	1	0	0	16-3584
+chrM	4028	1	0	0	1	0	0	0	16-3584
+chrM	4029	1	1	0	0	0	0	0	16-3584
+chrM	4030	1	0	1	0	0	0	0	16-3584
+chrM	4031	1	0	1	0	0	0	0	16-3584
+chrM	4032	1	1	0	0	0	0	0	16-3584
+chrM	4033	1	0	0	0	1	0	0	16-3584
+chrM	4034	1	0	0	1	0	0	0	16-3584
+chrM	4035	1	0	0	0	1	0	0	16-3584
+chrM	4036	1	0	1	0	0	0	0	16-3584
+chrM	4037	1	0	0	1	0	0	0	16-3584
+chrM	4038	1	0	1	0	0	0	0	16-3584
+chrM	4039	1	0	1	0	0	0	0	16-3584
+chrM	4040	1	1	0	0	0	0	0	16-3584
+chrM	4041	1	1	0	0	0	0	0	16-3584
+chrM	4042	1	0	0	1	0	0	0	16-3584
+chrM	4043	1	0	0	1	0	0	0	16-3584
+chrM	4044	1	0	1	0	0	0	0	16-3584
+chrM	4045	1	1	0	0	0	0	0	16-3584
+chrM	4046	1	0	0	1	0	0	0	16-3584
+chrM	4047	1	0	1	0	0	0	0	16-3584
+chrM	4048	1	1	0	0	0	0	0	16-3584
+chrM	4049	1	0	0	1	0	0	0	16-3584
+chrM	4050	1	0	1	0	0	0	0	16-3584
+chrM	4051	1	0	0	1	0	0	0	16-3584
+chrM	4052	1	0	0	1	0	0	0	16-3584
+chrM	4053	1	0	0	1	0	0	0	16-3584
+chrM	4054	1	0	0	0	1	0	0	16-3584
+chrM	4055	1	0	1	0	0	0	0	16-3584
+chrM	4056	1	0	1	0	0	0	0	16-3584
+chrM	4057	1	0	0	0	1	0	0	16-3584
+chrM	4058	1	0	0	0	1	0	0	16-3584
+chrM	4059	1	0	1	0	0	0	0	16-3584
+chrM	4060	1	0	0	0	1	0	0	16-3584
+chrM	4061	1	0	1	0	0	0	0	16-3584
+chrM	4062	1	0	0	1	0	0	0	16-3584
+chrM	4063	1	0	1	0	0	0	0	16-3584
+chrM	4064	1	0	0	1	0	0	0	16-3584
+chrM	4065	1	0	0	1	0	0	0	16-3584
+chrM	4066	1	0	0	0	1	0	0	16-3584
+chrM	4067	1	0	0	1	0	0	0	16-3584
+chrM	4068	1	1	0	0	0	0	0	16-3584
+chrM	4069	1	0	0	1	0	0	0	16-3584
+chrM	4070	1	0	0	0	1	0	0	16-3584
+chrM	4071	1	1	0	0	0	0	0	16-3584
+chrM	4072	1	0	0	0	1	0	0	16-3584
+chrM	4073	1	0	0	1	0	0	0	16-3584
+chrM	4074	1	1	0	0	0	0	0	16-3584
+chrM	4075	1	0	0	1	0	0	0	16-3584
+chrM	4076	1	0	1	0	0	0	0	16-3584
+chrM	4077	1	0	1	0	0	0	0	16-3584
+chrM	4078	1	1	0	0	0	0	0	16-3584
+chrM	4079	1	0	0	1	0	0	0	16-3584
+chrM	4080	1	0	0	0	1	0	0	16-3584
+chrM	4081	1	0	0	1	0	0	0	16-3584
+chrM	4082	1	1	0	0	0	0	0	16-3584
+chrM	4083	1	0	0	1	0	0	0	16-3584
+chrM	4084	1	1	0	0	0	0	0	16-3584
+chrM	4085	1	0	0	0	1	0	0	16-3584
+chrM	4086	1	0	1	0	0	0	0	16-3584
+chrM	4087	1	0	0	0	1	0	0	16-3584
+chrM	4088	1	1	0	0	0	0	0	16-3584
+chrM	4089	1	0	0	1	0	0	0	16-3584
+chrM	4090	1	1	0	0	0	0	0	16-3584
+chrM	4091	1	1	0	0	0	0	0	16-3584
+chrM	4092	1	0	0	0	1	0	0	16-3584
+chrM	4093	1	1	0	0	0	0	0	16-3584
+chrM	4094	1	0	1	0	0	0	0	16-3584
+chrM	4095	1	1	0	0	0	0	0	16-3584
+chrM	4096	1	0	0	1	0	0	0	16-3584
+chrM	4097	1	0	0	0	1	0	0	16-3584
+chrM	4098	1	0	0	1	0	0	0	16-3584
+chrM	4099	1	0	0	0	1	0	0	16-3584
+chrM	4100	1	1	0	0	0	0	0	16-3584
+chrM	4101	1	0	0	1	0	0	0	16-3584
+chrM	4102	1	1	0	0	0	0	0	16-3584
+chrM	4103	1	0	0	1	0	0	0	16-3584
+chrM	4104	1	0	1	0	0	0	0	16-3584
+chrM	4105	1	0	0	1	0	0	0	16-3584
+chrM	4106	1	0	0	0	1	0	0	16-3584
+chrM	4107	1	1	0	0	0	0	0	16-3584
+chrM	4108	1	0	0	0	1	0	0	16-3584
+chrM	4109	1	0	0	1	0	0	0	16-3584
+chrM	4110	1	0	0	0	1	0	0	16-3584
+chrM	4127	1	1	0	0	0	0	0	16-3584
+chrM	4128	1	0	0	0	1	0	0	16-3584
+chrM	4129	1	0	0	0	1	0	0	16-3584
+chrM	4130	1	0	0	0	1	0	0	16-3584
+chrM	4131	1	1	0	0	0	0	0	16-3584
+chrM	4132	1	0	0	0	1	0	0	16-3584
+chrM	4133	1	0	1	0	0	0	0	16-3584
+chrM	4134	1	1	0	0	0	0	0	16-3584
+chrM	4135	1	1	0	0	0	0	0	16-3584
+chrM	4136	1	0	0	1	0	0	0	16-3584
+chrM	4137	1	0	0	1	0	0	0	16-3584
+chrM	4138	1	0	1	0	0	0	0	16-3584
+chrM	4139	1	0	0	1	0	0	0	16-3584
+chrM	4140	1	0	1	0	0	0	0	16-3584
+chrM	4141	1	0	0	0	1	0	0	16-3584
+chrM	4142	1	1	0	0	0	0	0	16-3584
+chrM	4143	1	0	1	0	0	0	0	16-3584
+chrM	4144	1	0	0	1	0	0	0	16-3584
+chrM	4145	1	0	0	0	1	0	0	16-3584
+chrM	4146	1	1	0	0	0	0	0	16-3584
+chrM	4147	1	0	1	0	0	0	0	16-3584
+chrM	4148	1	0	1	0	0	0	0	16-3584
+chrM	4149	1	1	0	0	0	0	0	16-3584
+chrM	4150	1	0	1	0	0	0	0	16-3584
+chrM	4151	1	1	0	0	0	0	0	16-3584
+chrM	4152	1	0	1	0	0	0	0	16-3584
+chrM	4153	1	1	0	0	0	0	0	16-3584
+chrM	4154	1	0	0	0	1	0	0	16-3584
+chrM	4155	1	1	0	0	0	0	0	16-3584
+chrM	4156	1	0	1	0	0	0	0	16-3584
+chrM	4157	1	0	0	1	0	0	0	16-3584
+chrM	4158	1	1	0	0	0	0	0	16-3584
+chrM	4159	1	1	0	0	0	0	0	16-3584
+chrM	4160	1	0	1	0	0	0	0	16-3584
+chrM	4161	1	0	1	0	0	0	0	16-3584
+chrM	4162	1	0	0	1	0	0	0	16-3584
+chrM	4163	1	1	0	0	0	0	0	16-3584
+chrM	4164	1	0	0	1	0	0	0	16-3584
+chrM	4165	2	0	1	0	1	0	0	16-3584
+chrM	4166	2	2	0	0	0	0	0	16-3584
+chrM	4167	2	0	2	0	0	0	0	16-3584
+chrM	4168	2	0	1	0	1	0	0	16-3584
+chrM	4169	2	0	2	0	0	0	0	16-3584
+chrM	4170	2	0	1	1	0	0	0	16-3584
+chrM	4171	2	1	0	1	0	0	0	16-3584
+chrM	4172	2	0	1	0	1	0	0	16-3584
+chrM	4173	2	0	0	2	0	0	0	16-3584
+chrM	4174	2	0	1	0	1	0	0	16-3584
+chrM	4175	2	0	0	1	1	0	0	16-3584
+chrM	4176	2	1	0	0	1	0	0	16-3584
+chrM	4177	2	2	0	0	0	0	0	16-3584
+chrM	4178	2	0	0	1	1	0	0	16-3584
+chrM	4179	2	2	0	0	0	0	0	16-3584
+chrM	4180	2	0	0	2	0	0	0	16-3584
+chrM	4181	2	1	1	0	0	0	0	16-3584
+chrM	4182	2	0	0	0	2	0	0	16-3584
+chrM	4183	2	0	0	1	1	0	0	16-3584
+chrM	4184	2	0	1	1	0	0	0	16-3584
+chrM	4185	2	1	0	0	1	0	0	16-3584
+chrM	4186	2	1	0	0	1	0	0	16-3584
+chrM	4187	2	1	0	0	1	0	0	16-3584
+chrM	4188	2	0	1	0	1	0	0	16-3584
+chrM	4189	2	0	2	0	0	0	0	16-3584
+chrM	4190	2	0	0	1	1	0	0	16-3584
+chrM	4191	2	0	2	0	0	0	0	16-3584
+chrM	4192	2	1	1	0	0	0	0	16-3584
+chrM	4193	2	1	0	1	0	0	0	16-3584
+chrM	4194	2	1	0	0	1	0	0	16-3584
+chrM	4195	2	0	1	0	1	0	0	16-3584
+chrM	4196	2	1	0	1	0	0	0	16-3584
+chrM	4197	2	0	1	1	0	0	0	16-3584
+chrM	4198	2	0	0	0	2	0	0	16-3584
+chrM	4199	2	1	0	0	1	0	0	16-3584
+chrM	4200	2	1	1	0	0	0	0	16-3584
+chrM	4201	2	0	0	0	2	0	0	16-3584
+chrM	4202	2	0	1	0	1	0	0	16-3584
+chrM	4203	2	0	1	1	0	0	0	16-3584
+chrM	4204	2	2	0	0	0	0	0	16-3584
+chrM	4205	2	1	0	1	0	0	0	16-3584
+chrM	4206	2	1	0	0	1	0	0	16-3584
+chrM	4207	2	1	0	1	0	0	0	16-3584
+chrM	4208	2	0	1	1	0	0	0	16-3584
+chrM	4209	2	1	1	0	0	0	0	16-3584
+chrM	4210	2	0	0	1	1	0	0	16-3584
+chrM	4211	2	0	1	1	0	0	0	16-3584
+chrM	4212	2	1	1	0	0	0	0	16-3584
+chrM	4213	2	1	0	0	1	0	0	16-3584
+chrM	4214	2	0	0	1	1	0	0	16-3584
+chrM	4215	2	0	1	1	0	0	0	16-3584
+chrM	4216	2	0	2	0	0	0	0	16-3584
+chrM	4217	3	2	0	1	0	0	0	16-3584
+chrM	4218	3	2	0	0	1	0	0	16-3584
+chrM	4219	3	1	0	0	2	0	0	16-3584
+chrM	4220	3	0	0	1	2	0	0	16-3584
+chrM	4221	3	0	1	2	0	0	0	16-3584
+chrM	4222	3	1	0	1	1	0	0	16-3584
+chrM	4223	3	1	2	0	0	0	0	16-3584
+chrM	4224	3	1	0	2	0	0	0	16-3584
+chrM	4225	3	0	1	2	0	0	0	16-3584
+chrM	4226	3	1	1	0	1	0	0	16-3584
+chrM	4227	3	2	1	0	0	0	0	16-3584
+chrM	4228	3	0	1	1	1	0	0	16-3584
+chrM	4229	3	1	1	0	1	0	0	16-3584
+chrM	4230	3	1	1	0	1	0	0	16-3584
+chrM	4231	3	1	0	1	1	0	0	16-3584
+chrM	4232	3	0	1	2	0	0	0	16-3584
+chrM	4233	3	0	1	1	1	0	0	16-3584
+chrM	4234	3	0	2	1	0	0	0	16-3584
+chrM	4235	3	1	1	0	1	0	0	16-3584
+chrM	4236	3	0	2	0	1	0	0	16-3584
+chrM	4237	3	2	0	0	1	0	0	16-3584
+chrM	4238	3	1	0	0	2	0	0	16-3584
+chrM	4239	3	2	0	0	1	0	0	16-3584
+chrM	4240	3	0	2	1	0	0	0	16-3584
+chrM	4241	3	1	0	1	1	0	0	16-3584
+chrM	4242	3	0	1	0	2	0	0	16-3584
+chrM	4243	3	0	1	2	0	0	0	16-3584
+chrM	4244	3	0	2	1	0	0	0	16-3584
+chrM	4245	3	0	2	0	1	0	0	16-3584
+chrM	4246	3	0	2	1	0	0	0	16-3584
+chrM	4247	3	1	1	0	1	0	0	16-3584
+chrM	4248	3	0	0	1	2	0	0	16-3584
+chrM	4249	3	1	1	1	0	0	0	16-3584
+chrM	4250	3	1	0	1	1	0	0	16-3584
+chrM	4251	3	0	2	0	1	0	0	16-3584
+chrM	4252	3	1	0	1	1	0	0	16-3584
+chrM	4253	3	1	1	1	0	0	0	16-3584
+chrM	4254	3	1	1	0	1	0	0	16-3584
+chrM	4255	3	1	1	0	1	0	0	16-3584
+chrM	4256	3	0	2	0	1	0	0	16-3584
+chrM	4257	3	0	0	3	0	0	0	16-3584
+chrM	4258	3	0	0	3	0	0	0	16-3584
+chrM	4259	3	0	1	1	1	0	0	16-3584
+chrM	4260	3	1	0	0	2	0	0	16-3584
+chrM	4261	3	1	2	0	0	0	0	16-3584
+chrM	4262	3	1	1	1	0	0	0	16-3584
+chrM	4263	3	0	0	2	1	0	0	16-3584
+chrM	4264	3	0	2	0	1	0	0	16-3584
+chrM	4265	3	0	0	1	2	0	0	16-3584
+chrM	4266	3	1	1	1	0	0	0	16-3584
+chrM	4267	3	1	1	1	0	0	0	16-3584
+chrM	4268	3	1	1	1	0	0	0	16-3584
+chrM	4269	3	1	1	0	1	0	0	16-3584
+chrM	4270	3	0	2	0	1	0	0	16-3584
+chrM	4271	3	0	1	2	0	0	0	16-3584
+chrM	4272	3	0	2	0	1	0	0	16-3584
+chrM	4273	2	1	0	1	0	0	0	16-3584
+chrM	4274	2	1	0	0	1	0	0	16-3584
+chrM	4275	2	0	1	1	0	0	0	16-3584
+chrM	4276	2	2	0	0	0	0	0	16-3584
+chrM	4277	2	1	0	1	0	0	0	16-3584
+chrM	4278	2	1	0	1	0	0	0	16-3584
+chrM	4279	2	0	0	2	0	0	0	16-3584
+chrM	4280	2	0	0	0	2	0	0	16-3584
+chrM	4281	2	2	0	0	0	0	0	16-3584
+chrM	4282	2	1	0	1	0	0	0	16-3584
+chrM	4283	2	0	1	1	0	0	0	16-3584
+chrM	4284	2	0	0	1	1	0	0	16-3584
+chrM	4285	2	0	0	1	1	0	0	16-3584
+chrM	4286	2	1	0	1	0	0	0	16-3584
+chrM	4287	2	0	2	0	0	0	0	16-3584
+chrM	4288	2	2	0	0	0	0	0	16-3584
+chrM	4289	2	0	1	0	1	0	0	16-3584
+chrM	4290	2	0	0	1	1	0	0	16-3584
+chrM	4291	2	0	0	0	2	0	0	16-3584
+chrM	4292	2	2	0	0	0	0	0	16-3584
+chrM	4293	2	2	0	0	0	0	0	16-3584
+chrM	4294	2	1	1	0	0	0	0	16-3584
+chrM	4295	2	0	0	1	1	0	0	16-3584
+chrM	4296	2	1	1	0	0	0	0	16-3584
+chrM	4297	2	1	0	0	1	0	0	16-3584
+chrM	4298	2	1	0	0	1	0	0	16-3584
+chrM	4299	2	1	0	0	1	0	0	16-3584
+chrM	4300	2	1	1	0	0	0	0	16-3584
+chrM	4301	2	0	0	0	2	0	0	16-3584
+chrM	4302	2	1	0	1	0	0	0	16-3584
+chrM	4303	2	1	1	0	0	0	0	16-3584
+chrM	4304	2	0	0	0	2	0	0	16-3584
+chrM	4305	2	1	0	0	1	0	0	16-3584
+chrM	4306	2	2	0	0	0	0	0	16-3584
+chrM	4307	2	0	0	1	1	0	0	16-3584
+chrM	4308	2	2	0	0	0	0	0	16-3584
+chrM	4309	1	0	0	1	0	0	0	16-3584
+chrM	4310	1	0	1	0	0	0	0	16-3584
+chrM	4311	1	0	0	1	0	0	0	16-3584
+chrM	4312	1	1	0	0	0	0	0	16-3584
+chrM	4313	1	0	1	0	0	0	0	16-3584
+chrM	4314	1	0	1	0	0	0	0	16-3584
+chrM	4315	1	0	0	0	1	0	0	16-3584
+chrM	4316	1	0	0	0	1	0	0	16-3584
+chrM	4317	1	0	0	0	1	0	0	16-3584
+chrM	4318	1	0	0	1	0	0	0	16-3584
+chrM	4319	1	0	0	0	1	0	0	16-3584
+chrM	4320	1	0	1	0	0	0	0	16-3584
+chrM	4321	1	0	0	1	0	0	0	16-3584
+chrM	4322	1	1	0	0	0	0	0	16-3584
+chrM	4323	1	0	1	0	0	0	0	16-3584
+chrM	4324	1	0	1	0	0	0	0	16-3584
+chrM	4325	1	1	0	0	0	0	0	16-3584
+chrM	4326	1	0	0	0	1	0	0	16-3584
+chrM	4327	1	0	0	0	1	0	0	16-3584
+chrM	4328	1	1	0	0	0	0	0	16-3584
+chrM	4329	1	0	0	1	0	0	0	16-3584
+chrM	4330	1	1	0	0	0	0	0	16-3584
+chrM	4331	1	0	0	1	0	0	0	16-3584
+chrM	4332	1	1	0	0	0	0	0	16-3584
+chrM	4333	1	1	0	0	0	0	0	16-3584
+chrM	4334	1	0	0	0	1	0	0	16-3584
+chrM	4335	1	0	0	0	1	0	0	16-3584
+chrM	4336	1	0	0	0	1	0	0	16-3584
+chrM	4337	1	0	0	0	1	0	0	16-3584
+chrM	4338	1	0	0	1	0	0	0	16-3584
+chrM	4339	1	0	0	0	1	0	0	16-3584
+chrM	4340	1	1	0	0	0	0	0	16-3584
+chrM	4341	1	0	0	0	1	0	0	16-3584
+chrM	4342	1	0	0	0	1	0	0	16-3584
+chrM	4343	1	1	0	0	0	0	0	16-3584
+chrM	4344	1	0	0	1	0	0	0	16-3584
+chrM	4345	1	0	0	0	1	0	0	16-3584
+chrM	4346	1	0	1	0	0	0	0	16-3584
+chrM	4347	1	1	0	0	0	0	0	16-3584
+chrM	4348	1	0	1	0	0	0	0	16-3584
+chrM	4349	1	0	0	0	1	0	0	16-3584
+chrM	4350	1	0	0	1	0	0	0	16-3584
+chrM	4351	1	0	0	0	1	0	0	16-3584
+chrM	4352	1	0	0	0	1	0	0	16-3584
+chrM	4353	1	0	1	0	0	0	0	16-3584
+chrM	4354	1	1	0	0	0	0	0	16-3584
+chrM	4355	1	0	0	0	1	0	0	16-3584
+chrM	4356	1	0	0	0	1	0	0	16-3584
+chrM	4357	1	0	0	0	1	0	0	16-3584
+chrM	4358	1	0	0	1	0	0	0	16-3584
+chrM	4359	1	1	0	0	0	0	0	16-3584
+chrM	4360	1	1	0	0	0	0	0	16-3584
+chrM	4361	1	0	0	0	1	0	0	16-3584
+chrM	4362	1	0	0	1	0	0	0	16-3584
+chrM	4814	2	0	2	0	0	0	0	16-3584
+chrM	4815	2	1	0	1	0	0	0	16-3584
+chrM	4816	2	0	1	1	0	0	0	16-3584
+chrM	4817	2	0	1	1	0	0	0	16-3584
+chrM	4818	2	0	0	0	2	0	0	16-3584
+chrM	4819	2	0	0	0	2	0	0	16-3584
+chrM	4820	2	0	0	0	2	0	0	16-3584
+chrM	4821	2	0	0	2	0	0	0	16-3584
+chrM	4822	2	0	0	0	2	0	0	16-3584
+chrM	4823	2	1	1	0	0	0	0	16-3584
+chrM	4824	2	1	1	0	0	0	0	16-3584
+chrM	4825	2	1	0	1	0	0	0	16-3584
+chrM	4826	2	1	0	0	1	0	0	16-3584
+chrM	4827	2	1	0	0	1	0	0	16-3584
+chrM	4828	2	0	0	1	1	0	0	16-3584
+chrM	4829	2	0	0	1	1	0	0	16-3584
+chrM	4830	2	0	1	0	1	0	0	16-3584
+chrM	4831	2	0	1	0	1	0	0	16-3584
+chrM	4832	4	0	2	2	0	0	0	16-3584
+chrM	4833	4	1	2	1	0	0	0	16-3584
+chrM	4834	4	2	1	1	0	0	0	16-3584
+chrM	4835	4	1	1	1	1	0	0	16-3584
+chrM	4836	4	3	0	0	1	0	0	16-3584
+chrM	4837	4	1	1	0	2	0	0	16-3584
+chrM	4838	4	0	2	2	0	0	0	16-3584
+chrM	4839	4	1	0	0	3	0	0	16-3584
+chrM	4840	4	0	0	3	1	0	0	16-3584
+chrM	4841	4	1	2	1	0	0	0	16-3584
+chrM	4842	4	0	1	1	2	0	0	16-3584
+chrM	4843	4	0	2	0	2	0	0	16-3584
+chrM	4844	4	2	1	1	0	0	0	16-3584
+chrM	4845	4	1	2	0	1	0	0	16-3584
+chrM	4846	4	1	2	0	1	0	0	16-3584
+chrM	4847	4	0	1	1	2	0	0	16-3584
+chrM	4848	4	1	0	2	1	0	0	16-3584
+chrM	4849	4	2	0	2	0	0	0	16-3584
+chrM	4850	4	2	1	1	0	0	0	16-3584
+chrM	4851	4	1	0	1	2	0	0	16-3584
+chrM	4852	4	1	0	3	0	0	0	16-3584
+chrM	4853	6	1	3	1	1	0	0	16-3584
+chrM	4854	6	0	1	1	4	0	0	16-3584
+chrM	4855	6	2	1	1	2	0	0	16-3584
+chrM	4856	6	1	0	2	3	0	0	16-3584
+chrM	4857	6	3	1	0	2	0	0	16-3584
+chrM	4858	6	0	3	1	2	0	0	16-3584
+chrM	4859	6	2	0	2	2	0	0	16-3584
+chrM	4860	6	1	1	1	3	0	0	16-3584
+chrM	4861	6	2	2	0	2	0	0	16-3584
+chrM	4862	6	3	1	1	1	0	0	16-3584
+chrM	4863	6	0	2	2	2	0	0	16-3584
+chrM	4864	6	1	2	2	1	0	0	16-3584
+chrM	4865	6	2	1	1	2	0	0	16-3584
+chrM	4866	6	3	2	0	1	0	0	16-3584
+chrM	4867	6	2	1	3	0	0	0	16-3584
+chrM	4868	6	3	0	2	1	0	0	16-3584
+chrM	4869	6	0	1	3	2	0	0	16-3584
+chrM	4870	6	1	1	2	2	0	0	16-3584
+chrM	4871	6	3	0	1	2	0	0	16-3584
+chrM	4872	6	1	3	1	1	0	0	16-3584
+chrM	4873	6	0	1	2	3	0	0	16-3584
+chrM	4874	6	4	0	0	2	0	0	16-3584
+chrM	4875	6	0	3	2	1	0	0	16-3584
+chrM	4876	6	0	3	2	1	0	0	16-3584
+chrM	4877	6	3	0	2	1	0	0	16-3584
+chrM	4878	6	5	1	0	0	0	0	16-3584
+chrM	4879	6	2	2	1	1	0	0	16-3584
+chrM	4880	6	2	2	1	1	0	0	16-3584
+chrM	4881	6	1	1	3	1	0	0	16-3584
+chrM	4882	6	1	1	2	2	0	0	16-3584
+chrM	4883	6	1	1	1	3	0	0	16-3584
+chrM	4884	6	1	1	2	2	0	0	16-3584
+chrM	4885	6	1	2	1	2	0	0	16-3584
+chrM	4886	6	1	3	0	2	0	0	16-3584
+chrM	4887	6	2	2	2	0	0	0	16-3584
+chrM	4888	6	2	1	1	2	0	0	16-3584
+chrM	4889	6	1	3	2	0	0	0	16-3584
+chrM	4890	6	1	2	1	2	0	0	16-3584
+chrM	4891	6	0	3	0	3	0	0	16-3584
+chrM	4892	6	2	4	0	0	0	0	16-3584
+chrM	4893	6	1	3	1	1	0	0	16-3584
+chrM	4894	6	3	1	1	1	0	0	16-3584
+chrM	4895	6	0	1	2	3	0	0	16-3584
+chrM	4896	6	1	1	3	1	0	0	16-3584
+chrM	4897	6	2	1	2	1	0	0	16-3584
+chrM	4898	6	3	3	0	0	0	0	16-3584
+chrM	4899	6	1	4	0	1	0	0	16-3584
+chrM	4900	6	2	0	2	2	0	0	16-3584
+chrM	4901	6	1	2	2	1	0	0	16-3584
+chrM	4902	6	1	3	1	1	0	0	16-3584
+chrM	4903	6	2	2	1	1	0	0	16-3584
+chrM	4904	6	0	2	3	1	0	0	16-3584
+chrM	4905	6	0	1	4	1	0	0	16-3584
+chrM	4906	6	3	0	1	2	0	0	16-3584
+chrM	4907	6	1	1	1	3	0	0	16-3584
+chrM	4908	6	1	0	1	4	0	0	16-3584
+chrM	4909	6	3	2	1	0	0	0	16-3584
+chrM	4910	6	2	3	0	1	0	0	16-3584
+chrM	4911	6	1	2	2	1	0	0	16-3584
+chrM	4912	6	0	3	2	1	0	0	16-3584
+chrM	4913	6	1	0	1	4	0	0	16-3584
+chrM	4914	6	1	1	0	4	0	0	16-3584
+chrM	4915	6	2	0	1	3	0	0	16-3584
+chrM	4916	6	1	2	1	2	0	0	16-3584
+chrM	4917	6	0	1	3	2	0	0	16-3584
+chrM	4918	6	4	1	1	0	0	0	16-3584
+chrM	4919	6	1	1	0	4	0	0	16-3584
+chrM	4920	6	3	0	2	1	0	0	16-3584
+chrM	4921	6	2	3	0	1	0	0	16-3584
+chrM	4922	6	2	0	1	3	0	0	16-3584
+chrM	4923	6	1	1	3	1	0	0	16-3584
+chrM	4924	6	1	2	1	2	0	0	16-3584
+chrM	4925	6	0	1	3	2	0	0	16-3584
+chrM	4926	6	2	2	0	2	0	0	16-3584
+chrM	4927	6	1	3	1	1	0	0	16-3584
+chrM	4928	6	1	1	2	2	0	0	16-3584
+chrM	4929	6	3	1	0	2	0	0	16-3584
+chrM	4930	6	3	1	1	1	0	0	16-3584
+chrM	4931	6	0	1	3	2	0	0	16-3584
+chrM	4932	6	1	3	0	2	0	0	16-3584
+chrM	4933	6	2	1	3	0	0	0	16-3584
+chrM	4934	6	1	4	0	1	0	0	16-3584
+chrM	4935	6	1	1	2	2	0	0	16-3584
+chrM	4936	6	1	3	0	2	0	0	16-3584
+chrM	4937	6	3	0	1	2	0	0	16-3584
+chrM	4938	6	1	2	1	2	0	0	16-3584
+chrM	4939	6	1	3	1	1	0	0	16-3584
+chrM	4940	6	3	2	1	0	0	0	16-3584
+chrM	4941	6	2	1	1	2	0	0	16-3584
+chrM	4942	6	1	3	0	2	0	0	16-3584
+chrM	4943	6	3	1	1	1	0	0	16-3584
+chrM	4944	6	1	1	2	2	0	0	16-3584
+chrM	4945	6	0	3	0	3	0	0	16-3584
+chrM	4946	6	2	1	1	2	0	0	16-3584
+chrM	4947	6	1	3	0	2	0	0	16-3584
+chrM	4948	6	1	3	0	2	0	0	16-3584
+chrM	4949	6	1	3	1	1	0	0	16-3584
+chrM	4950	6	2	2	1	1	0	0	16-3584
+chrM	4951	6	2	0	3	1	0	0	16-3584
+chrM	4952	6	3	3	0	0	0	0	16-3584
+chrM	4953	6	1	2	2	1	0	0	16-3584
+chrM	4954	6	2	1	3	0	0	0	16-3584
+chrM	4955	6	3	1	0	2	0	0	16-3584
+chrM	4956	6	0	1	1	4	0	0	16-3584
+chrM	4957	6	1	0	2	3	0	0	16-3584
+chrM	4958	4	0	2	2	0	0	0	16-3584
+chrM	4959	4	2	1	1	0	0	0	16-3584
+chrM	4960	4	0	2	0	2	0	0	16-3584
+chrM	4961	4	2	1	0	1	0	0	16-3584
+chrM	4962	4	1	0	1	2	0	0	16-3584
+chrM	4963	4	1	0	1	2	0	0	16-3584
+chrM	4964	4	1	1	1	1	0	0	16-3584
+chrM	4965	4	1	2	0	1	0	0	16-3584
+chrM	4966	4	1	0	3	0	0	0	16-3584
+chrM	4967	4	1	1	0	2	0	0	16-3584
+chrM	4968	4	2	0	0	2	0	0	16-3584
+chrM	4969	4	0	2	1	1	0	0	16-3584
+chrM	4970	4	1	1	1	1	0	0	16-3584
+chrM	4971	4	2	0	0	2	0	0	16-3584
+chrM	4972	4	0	1	1	2	0	0	16-3584
+chrM	4973	4	1	1	1	1	0	0	16-3584
+chrM	4974	4	3	1	0	0	0	0	16-3584
+chrM	4975	4	3	0	1	0	0	0	16-3584
+chrM	4976	4	0	1	1	2	0	0	16-3584
+chrM	4977	4	0	3	0	1	0	0	16-3584
+chrM	4978	2	0	0	2	0	0	0	16-3584
+chrM	4979	2	1	1	0	0	0	0	16-3584
+chrM	4980	2	0	2	0	0	0	0	16-3584
+chrM	4981	2	1	0	1	0	0	0	16-3584
+chrM	4982	2	0	0	0	2	0	0	16-3584
+chrM	4983	2	0	0	0	2	0	0	16-3584
+chrM	4984	2	0	1	0	1	0	0	16-3584
+chrM	4985	2	0	1	0	1	0	0	16-3584
+chrM	4986	2	2	0	0	0	0	0	16-3584
+chrM	4987	2	1	1	0	0	0	0	16-3584
+chrM	4988	2	2	0	0	0	0	0	16-3584
+chrM	4989	2	1	0	0	1	0	0	16-3584
+chrM	4990	2	1	0	0	1	0	0	16-3584
+chrM	4991	2	1	0	0	1	0	0	16-3584
+chrM	4992	2	1	1	0	0	0	0	16-3584
+chrM	4993	2	1	1	0	0	0	0	16-3584
+chrM	4994	2	1	1	0	0	0	0	16-3584
+chrM	4995	2	2	0	0	0	0	0	16-3584
+chrM	4996	2	0	0	1	1	0	0	16-3584
+chrM	4997	2	0	0	0	2	0	0	16-3584
+chrM	4998	2	1	0	0	1	0	0	16-3584
+chrM	5069	1	0	1	0	0	0	0	16-3584
+chrM	5070	1	0	0	0	1	0	0	16-3584
+chrM	5071	1	0	1	0	0	0	0	16-3584
+chrM	5072	1	0	1	0	0	0	0	16-3584
+chrM	5073	1	0	0	1	0	0	0	16-3584
+chrM	5074	1	0	1	0	0	0	0	16-3584
+chrM	5075	1	1	0	0	0	0	0	16-3584
+chrM	5076	1	0	0	1	0	0	0	16-3584
+chrM	5077	1	1	0	0	0	0	0	16-3584
+chrM	5078	1	0	0	0	1	0	0	16-3584
+chrM	5079	1	0	0	0	1	0	0	16-3584
+chrM	5080	1	1	0	0	0	0	0	16-3584
+chrM	5081	1	0	1	0	0	0	0	16-3584
+chrM	5082	2	1	0	0	1	0	0	16-3584
+chrM	5083	2	2	0	0	0	0	0	16-3584
+chrM	5084	2	1	0	1	0	0	0	16-3584
+chrM	5085	2	0	1	1	0	0	0	16-3584
+chrM	5086	2	1	0	0	1	0	0	16-3584
+chrM	5087	2	0	1	0	1	0	0	16-3584
+chrM	5088	2	0	2	0	0	0	0	16-3584
+chrM	5089	2	1	1	0	0	0	0	16-3584
+chrM	5090	2	2	0	0	0	0	0	16-3584
+chrM	5091	2	0	1	1	0	0	0	16-3584
+chrM	5092	2	0	1	1	0	0	0	16-3584
+chrM	5093	2	1	0	0	1	0	0	16-3584
+chrM	5094	2	1	1	0	0	0	0	16-3584
+chrM	5095	2	0	0	1	1	0	0	16-3584
+chrM	5096	2	1	0	1	0	0	0	16-3584
+chrM	5097	2	0	1	0	1	0	0	16-3584
+chrM	5098	2	0	2	0	0	0	0	16-3584
+chrM	5099	2	1	1	0	0	0	0	16-3584
+chrM	5100	2	0	1	0	1	0	0	16-3584
+chrM	5101	2	0	1	0	1	0	0	16-3584
+chrM	5102	2	1	0	0	1	0	0	16-3584
+chrM	5103	2	1	0	0	1	0	0	16-3584
+chrM	5104	2	0	0	1	1	0	0	16-3584
+chrM	5105	2	0	1	1	0	0	0	16-3584
+chrM	5106	2	0	0	1	1	0	0	16-3584
+chrM	5107	2	0	1	0	1	0	0	16-3584
+chrM	5108	2	1	0	1	0	0	0	16-3584
+chrM	5109	2	1	1	0	0	0	0	16-3584
+chrM	5110	2	0	1	0	1	0	0	16-3584
+chrM	5111	2	1	0	0	1	0	0	16-3584
+chrM	5112	2	2	0	0	0	0	0	16-3584
+chrM	5113	2	0	1	1	0	0	0	16-3584
+chrM	5114	2	0	0	1	1	0	0	16-3584
+chrM	5115	2	0	2	0	0	0	0	16-3584
+chrM	5116	2	0	0	0	2	0	0	16-3584
+chrM	5117	2	1	1	0	0	0	0	16-3584
+chrM	5118	2	0	0	2	0	0	0	16-3584
+chrM	5119	2	0	2	0	0	0	0	16-3584
+chrM	5120	2	0	0	1	1	0	0	16-3584
+chrM	5121	2	0	0	2	0	0	0	16-3584
+chrM	5122	2	1	1	0	0	0	0	16-3584
+chrM	5123	2	0	1	1	0	0	0	16-3584
+chrM	5124	2	0	2	0	0	0	0	16-3584
+chrM	5125	2	0	1	0	1	0	0	16-3584
+chrM	5126	2	1	0	1	0	0	0	16-3584
+chrM	5127	2	1	1	0	0	0	0	16-3584
+chrM	5128	2	0	0	0	2	0	0	16-3584
+chrM	5129	2	1	1	0	0	0	0	16-3584
+chrM	5130	2	0	1	1	0	0	0	16-3584
+chrM	5131	2	1	0	0	1	0	0	16-3584
+chrM	5132	2	0	1	0	1	0	0	16-3584
+chrM	5133	2	0	0	1	1	0	0	16-3584
+chrM	5134	2	1	1	0	0	0	0	16-3584
+chrM	5135	2	0	0	1	1	0	0	16-3584
+chrM	5136	2	0	0	0	2	0	0	16-3584
+chrM	5137	2	1	0	1	0	0	0	16-3584
+chrM	5138	2	0	0	1	1	0	0	16-3584
+chrM	5139	2	1	0	1	0	0	0	16-3584
+chrM	5140	2	0	2	0	0	0	0	16-3584
+chrM	5141	2	1	0	1	0	0	0	16-3584
+chrM	5142	2	0	0	1	1	0	0	16-3584
+chrM	5143	2	0	0	0	2	0	0	16-3584
+chrM	5144	2	0	0	2	0	0	0	16-3584
+chrM	5145	2	0	0	0	2	0	0	16-3584
+chrM	5146	2	0	0	2	0	0	0	16-3584
+chrM	5147	2	0	0	0	2	0	0	16-3584
+chrM	5148	2	1	0	0	1	0	0	16-3584
+chrM	5149	2	1	0	0	1	0	0	16-3584
+chrM	5150	2	2	0	0	0	0	0	16-3584
+chrM	5151	2	1	0	0	1	0	0	16-3584
+chrM	5152	2	0	1	1	0	0	0	16-3584
+chrM	5153	2	0	1	1	0	0	0	16-3584
+chrM	5154	2	0	0	0	2	0	0	16-3584
+chrM	5155	2	1	0	0	1	0	0	16-3584
+chrM	5156	2	0	1	1	0	0	0	16-3584
+chrM	5157	2	0	1	0	1	0	0	16-3584
+chrM	5158	2	1	0	0	1	0	0	16-3584
+chrM	5159	2	1	1	0	0	0	0	16-3584
+chrM	5160	2	1	0	1	0	0	0	16-3584
+chrM	5161	2	0	0	1	1	0	0	16-3584
+chrM	5162	2	1	0	1	0	0	0	16-3584
+chrM	5163	2	1	0	1	0	0	0	16-3584
+chrM	5164	2	0	0	2	0	0	0	16-3584
+chrM	5165	2	0	0	2	0	0	0	16-3584
+chrM	5166	2	1	0	1	0	0	0	16-3584
+chrM	5167	2	0	0	1	1	0	0	16-3584
+chrM	5168	2	1	0	1	0	0	0	16-3584
+chrM	5169	2	1	1	0	0	0	0	16-3584
+chrM	5170	2	0	0	1	1	0	0	16-3584
+chrM	5171	2	0	1	1	0	0	0	16-3584
+chrM	5172	2	0	0	0	2	0	0	16-3584
+chrM	5173	2	1	0	1	0	0	0	16-3584
+chrM	5174	2	0	1	0	1	0	0	16-3584
+chrM	5175	2	1	1	0	0	0	0	16-3584
+chrM	5176	2	0	1	1	0	0	0	16-3584
+chrM	5177	2	0	1	0	1	0	0	16-3584
+chrM	5178	2	1	1	0	0	0	0	16-3584
+chrM	5179	2	0	1	1	0	0	0	16-3584
+chrM	5180	2	0	1	1	0	0	0	16-3584
+chrM	5181	2	1	0	0	1	0	0	16-3584
+chrM	5182	2	1	1	0	0	0	0	16-3584
+chrM	5183	2	1	0	1	0	0	0	16-3584
+chrM	5184	2	0	2	0	0	0	0	16-3584
+chrM	5185	2	1	1	0	0	0	0	16-3584
+chrM	5186	2	0	0	2	0	0	0	16-3584
+chrM	5187	2	2	0	0	0	0	0	16-3584
+chrM	5188	2	0	0	2	0	0	0	16-3584
+chrM	5189	2	0	0	2	0	0	0	16-3584
+chrM	5190	2	1	1	0	0	0	0	16-3584
+chrM	5191	2	1	1	0	0	0	0	16-3584
+chrM	5192	2	1	0	0	1	0	0	16-3584
+chrM	5193	2	0	1	0	1	0	0	16-3584
+chrM	5194	2	1	0	1	0	0	0	16-3584
+chrM	5195	2	1	0	0	1	0	0	16-3584
+chrM	5196	2	0	1	1	0	0	0	16-3584
+chrM	5197	2	0	1	1	0	0	0	16-3584
+chrM	5198	2	0	1	0	1	0	0	16-3584
+chrM	5199	2	1	1	0	0	0	0	16-3584
+chrM	5200	2	0	1	1	0	0	0	16-3584
+chrM	5201	2	0	0	1	1	0	0	16-3584
+chrM	5202	2	0	1	0	1	0	0	16-3584
+chrM	5203	2	0	0	0	2	0	0	16-3584
+chrM	5204	2	1	0	1	0	0	0	16-3584
+chrM	5205	2	2	0	0	0	0	0	16-3584
+chrM	5206	2	2	0	0	0	0	0	16-3584
+chrM	5207	2	0	0	0	2	0	0	16-3584
+chrM	5208	2	1	0	0	1	0	0	16-3584
+chrM	5209	2	2	0	0	0	0	0	16-3584
+chrM	5210	2	0	1	1	0	0	0	16-3584
+chrM	5211	2	2	0	0	0	0	0	16-3584
+chrM	5212	2	1	1	0	0	0	0	16-3584
+chrM	5213	2	0	2	0	0	0	0	16-3584
+chrM	5214	2	0	0	1	1	0	0	16-3584
+chrM	5229	1	0	0	1	0	0	0	16-3584
+chrM	5230	1	1	0	0	0	0	0	16-3584
+chrM	5231	1	1	0	0	0	0	0	16-3584
+chrM	5232	1	0	1	0	0	0	0	16-3584
+chrM	5233	1	0	1	0	0	0	0	16-3584
+chrM	5234	1	0	0	0	1	0	0	16-3584
+chrM	5235	1	0	0	1	0	0	0	16-3584
+chrM	5236	1	0	0	1	0	0	0	16-3584
+chrM	5237	1	1	0	0	0	0	0	16-3584
+chrM	5238	1	1	0	0	0	0	0	16-3584
+chrM	5239	1	0	0	0	1	0	0	16-3584
+chrM	5240	1	0	0	1	0	0	0	16-3584
+chrM	5241	1	0	0	0	1	0	0	16-3584
+chrM	5242	1	0	1	0	0	0	0	16-3584
+chrM	5243	1	0	0	1	0	0	0	16-3584
+chrM	5244	1	0	1	0	0	0	0	16-3584
+chrM	5245	1	1	0	0	0	0	0	16-3584
+chrM	5246	1	0	0	0	1	0	0	16-3584
+chrM	5247	1	0	0	1	0	0	0	16-3584
+chrM	5248	1	0	0	1	0	0	0	16-3584
+chrM	5249	1	0	0	1	0	0	0	16-3584
+chrM	5250	1	1	0	0	0	0	0	16-3584
+chrM	5251	1	0	0	0	1	0	0	16-3584
+chrM	5252	1	0	0	1	0	0	0	16-3584
+chrM	5253	1	0	1	0	0	0	0	16-3584
+chrM	5254	1	1	0	0	0	0	0	16-3584
+chrM	5255	1	0	1	0	0	0	0	16-3584
+chrM	5256	1	0	0	0	1	0	0	16-3584
+chrM	5257	1	0	0	0	1	0	0	16-3584
+chrM	5258	1	0	1	0	0	0	0	16-3584
+chrM	5259	1	0	0	0	1	0	0	16-3584
+chrM	5260	1	0	1	0	0	0	0	16-3584
+chrM	5261	1	1	0	0	0	0	0	16-3584
+chrM	5262	1	0	0	1	0	0	0	16-3584
+chrM	5263	1	1	0	0	0	0	0	16-3584
+chrM	5264	1	0	1	0	0	0	0	16-3584
+chrM	5265	1	0	0	0	1	0	0	16-3584
+chrM	5266	1	0	0	0	1	0	0	16-3584
+chrM	5267	1	0	0	1	0	0	0	16-3584
+chrM	5268	1	0	0	0	1	0	0	16-3584
+chrM	5269	1	1	0	0	0	0	0	16-3584
+chrM	5270	1	0	1	0	0	0	0	16-3584
+chrM	5271	1	1	0	0	0	0	0	16-3584
+chrM	5272	1	1	0	0	0	0	0	16-3584
+chrM	5273	1	1	0	0	0	0	0	16-3584
+chrM	5274	1	1	0	0	0	0	0	16-3584
+chrM	5275	1	0	1	0	0	0	0	16-3584
+chrM	5276	1	1	0	0	0	0	0	16-3584
+chrM	5277	1	0	0	0	1	0	0	16-3584
+chrM	5278	1	0	0	0	1	0	0	16-3584
+chrM	5279	1	1	0	0	0	0	0	16-3584
+chrM	5280	1	1	0	0	0	0	0	16-3584
+chrM	5281	1	0	0	1	0	0	0	16-3584
+chrM	5282	1	0	0	1	0	0	0	16-3584
+chrM	5283	1	0	0	0	1	0	0	16-3584
+chrM	5284	1	0	0	1	0	0	0	16-3584
+chrM	5285	1	0	0	1	0	0	0	16-3584
+chrM	5286	1	1	0	0	0	0	0	16-3584
+chrM	5287	1	0	0	1	0	0	0	16-3584
+chrM	5288	1	0	1	0	0	0	0	16-3584
+chrM	5289	1	0	0	1	0	0	0	16-3584
+chrM	5290	1	1	0	0	0	0	0	16-3584
+chrM	5291	1	0	0	0	1	0	0	16-3584
+chrM	5292	1	0	0	1	0	0	0	16-3584
+chrM	5293	1	0	0	0	1	0	0	16-3584
+chrM	5294	1	1	0	0	0	0	0	16-3584
+chrM	5295	1	0	0	1	0	0	0	16-3584
+chrM	5296	1	0	0	0	1	0	0	16-3584
+chrM	5297	1	0	1	0	0	0	0	16-3584
+chrM	5298	1	0	0	1	0	0	0	16-3584
+chrM	5299	1	1	0	0	0	0	0	16-3584
+chrM	5300	1	0	0	0	1	0	0	16-3584
+chrM	5301	1	0	0	1	0	0	0	16-3584
+chrM	5302	1	0	0	0	1	0	0	16-3584
+chrM	5303	1	0	0	1	0	0	0	16-3584
+chrM	5304	1	0	0	1	0	0	0	16-3584
+chrM	5305	1	0	0	1	0	0	0	16-3584
+chrM	5306	1	0	1	0	0	0	0	16-3584
+chrM	5307	1	0	0	1	0	0	0	16-3584
+chrM	5308	1	0	0	0	1	0	0	16-3584
+chrM	5309	1	0	0	0	1	0	0	16-3584
+chrM	5310	1	0	1	0	0	0	0	16-3584
+chrM	5311	1	1	0	0	0	0	0	16-3584
+chrM	5312	1	0	0	0	1	0	0	16-3584
+chrM	5313	1	0	0	0	1	0	0	16-3584
+chrM	5314	1	0	0	0	1	0	0	16-3584
+chrM	5315	1	0	1	0	0	0	0	16-3584
+chrM	5316	1	0	0	1	0	0	0	16-3584
+chrM	5317	1	0	0	1	0	0	0	16-3584
+chrM	5318	1	1	0	0	0	0	0	16-3584
+chrM	5319	1	1	0	0	0	0	0	16-3584
+chrM	5320	1	0	1	0	0	0	0	16-3584
+chrM	5321	1	1	0	0	0	0	0	16-3584
+chrM	5322	1	1	0	0	0	0	0	16-3584
+chrM	5323	1	1	0	0	0	0	0	16-3584
+chrM	5324	1	0	1	0	0	0	0	16-3584
+chrM	5325	1	0	1	0	0	0	0	16-3584
+chrM	5326	1	0	1	0	0	0	0	16-3584
+chrM	5327	1	0	0	1	0	0	0	16-3584
+chrM	5328	1	1	0	0	0	0	0	16-3584
+chrM	5329	1	0	0	1	0	0	0	16-3584
+chrM	5330	1	0	0	0	1	0	0	16-3584
+chrM	5331	1	0	1	0	0	0	0	16-3584
+chrM	5332	1	1	0	0	0	0	0	16-3584
+chrM	5333	1	0	0	0	1	0	0	16-3584
+chrM	5334	1	0	0	1	0	0	0	16-3584
+chrM	5335	1	0	0	0	1	0	0	16-3584
+chrM	5336	1	0	0	0	1	0	0	16-3584
+chrM	5337	1	0	0	0	1	0	0	16-3584
+chrM	5338	1	0	0	1	0	0	0	16-3584
+chrM	5339	1	0	0	1	0	0	0	16-3584
+chrM	5340	1	0	1	0	0	0	0	16-3584
+chrM	5341	1	0	1	0	0	0	0	16-3584
+chrM	5342	1	0	0	0	1	0	0	16-3584
+chrM	5343	1	1	0	0	0	0	0	16-3584
+chrM	5344	1	1	0	0	0	0	0	16-3584
+chrM	5345	1	1	0	0	0	0	0	16-3584
+chrM	5346	1	1	0	0	0	0	0	16-3584
+chrM	5347	1	0	1	0	0	0	0	16-3584
+chrM	5348	1	0	1	0	0	0	0	16-3584
+chrM	5349	1	0	0	1	0	0	0	16-3584
+chrM	5350	1	1	0	0	0	0	0	16-3584
+chrM	5351	1	1	0	0	0	0	0	16-3584
+chrM	5352	1	0	0	1	0	0	0	16-3584
+chrM	5353	1	0	1	0	0	0	0	16-3584
+chrM	5354	1	1	0	0	0	0	0	16-3584
+chrM	5355	1	0	0	1	0	0	0	16-3584
+chrM	5356	1	0	0	1	0	0	0	16-3584
+chrM	5357	1	0	1	0	0	0	0	16-3584
+chrM	5358	1	0	0	1	0	0	0	16-3584
+chrM	5359	1	0	0	1	0	0	0	16-3584
+chrM	5360	1	0	0	1	0	0	0	16-3584
+chrM	5361	1	0	1	0	0	0	0	16-3584
+chrM	5362	1	1	0	0	0	0	0	16-3584
+chrM	5363	1	0	1	0	0	0	0	16-3584
+chrM	5364	1	0	0	1	0	0	0	16-3584
+chrM	5365	1	0	1	0	0	0	0	16-3584
+chrM	5366	1	0	1	0	0	0	0	16-3584
+chrM	5367	1	0	1	0	0	0	0	16-3584
+chrM	5368	1	0	0	0	1	0	0	16-3584
+chrM	5369	1	0	1	0	0	0	0	16-3584
+chrM	5370	1	0	1	0	0	0	0	16-3584
+chrM	5371	1	0	0	1	0	0	0	16-3584
+chrM	5372	1	0	1	0	0	0	0	16-3584
+chrM	5413	1	0	1	0	0	0	0	16-3584
+chrM	5414	1	1	0	0	0	0	0	16-3584
+chrM	5415	1	0	1	0	0	0	0	16-3584
+chrM	5416	1	0	0	1	0	0	0	16-3584
+chrM	5417	1	0	0	1	0	0	0	16-3584
+chrM	5418	1	1	0	0	0	0	0	16-3584
+chrM	5419	1	0	0	0	1	0	0	16-3584
+chrM	5420	1	1	0	0	0	0	0	16-3584
+chrM	5421	1	0	1	0	0	0	0	16-3584
+chrM	5422	1	0	1	0	0	0	0	16-3584
+chrM	5423	1	0	0	1	0	0	0	16-3584
+chrM	5424	1	0	1	0	0	0	0	16-3584
+chrM	5425	1	0	1	0	0	0	0	16-3584
+chrM	5426	1	0	1	0	0	0	0	16-3584
+chrM	5427	1	0	0	1	0	0	0	16-3584
+chrM	5428	1	0	1	0	0	0	0	16-3584
+chrM	5429	1	0	1	0	0	0	0	16-3584
+chrM	5430	1	0	1	0	0	0	0	16-3584
+chrM	5431	1	0	0	1	0	0	0	16-3584
+chrM	5432	1	1	0	0	0	0	0	16-3584
+chrM	5433	1	0	1	0	0	0	0	16-3584
+chrM	5434	1	0	0	0	1	0	0	16-3584
+chrM	5435	1	0	0	0	1	0	0	16-3584
+chrM	5436	1	0	1	0	0	0	0	16-3584
+chrM	5437	1	0	0	1	0	0	0	16-3584
+chrM	5438	1	1	0	0	0	0	0	16-3584
+chrM	5439	1	0	1	0	0	0	0	16-3584
+chrM	5440	1	0	0	0	1	0	0	16-3584
+chrM	5441	1	0	0	0	1	0	0	16-3584
+chrM	5442	1	0	0	1	0	0	0	16-3584
+chrM	5443	1	1	0	0	0	0	0	16-3584
+chrM	5444	1	0	0	1	0	0	0	16-3584
+chrM	5445	1	0	0	0	1	0	0	16-3584
+chrM	5446	1	0	0	1	0	0	0	16-3584
+chrM	5447	1	0	0	1	0	0	0	16-3584
+chrM	5448	1	1	0	0	0	0	0	16-3584
+chrM	5449	1	0	1	0	0	0	0	16-3584
+chrM	5450	1	1	0	0	0	0	0	16-3584
+chrM	5451	1	0	1	0	0	0	0	16-3584
+chrM	5452	1	1	0	0	0	0	0	16-3584
+chrM	5453	1	0	0	0	1	0	0	16-3584
+chrM	5454	1	0	1	0	0	0	0	16-3584
+chrM	5455	1	1	0	0	0	0	0	16-3584
+chrM	5456	1	1	0	0	0	0	0	16-3584
+chrM	5457	1	0	0	0	1	0	0	16-3584
+chrM	5458	1	1	0	0	0	0	0	16-3584
+chrM	5459	1	0	0	0	1	0	0	16-3584
+chrM	5460	1	0	0	1	0	0	0	16-3584
+chrM	5461	1	0	0	0	1	0	0	16-3584
+chrM	5462	1	0	0	0	1	0	0	16-3584
+chrM	5463	1	0	1	0	0	0	0	16-3584
+chrM	5464	1	0	0	0	1	0	0	16-3584
+chrM	5465	1	0	0	0	1	0	0	16-3584
+chrM	5466	1	0	1	0	0	0	0	16-3584
+chrM	5467	1	0	0	0	1	0	0	16-3584
+chrM	5468	1	0	0	0	1	0	0	16-3584
+chrM	5469	1	1	0	0	0	0	0	16-3584
+chrM	5470	1	0	0	1	0	0	0	16-3584
+chrM	5471	1	0	1	0	0	0	0	16-3584
+chrM	5472	1	1	0	0	0	0	0	16-3584
+chrM	5473	1	0	0	1	0	0	0	16-3584
+chrM	5474	1	1	0	0	0	0	0	16-3584
+chrM	5475	1	1	0	0	0	0	0	16-3584
+chrM	5476	1	0	1	0	0	0	0	16-3584
+chrM	5477	1	0	0	0	1	0	0	16-3584
+chrM	5478	1	0	0	0	1	0	0	16-3584
+chrM	5479	1	1	0	0	0	0	0	16-3584
+chrM	5480	1	1	0	0	0	0	0	16-3584
+chrM	5481	1	1	0	0	0	0	0	16-3584
+chrM	5482	1	0	1	0	0	0	0	16-3584
+chrM	5483	1	0	1	0	0	0	0	16-3584
+chrM	5484	1	0	1	0	0	0	0	16-3584
+chrM	5485	1	0	1	0	0	0	0	16-3584
+chrM	5486	1	0	1	0	0	0	0	16-3584
+chrM	5487	1	0	0	0	1	0	0	16-3584
+chrM	5488	1	0	0	0	1	0	0	16-3584
+chrM	5489	1	1	0	0	0	0	0	16-3584
+chrM	5490	1	0	0	1	0	0	0	16-3584
+chrM	5491	1	0	1	0	0	0	0	16-3584
+chrM	5492	1	0	0	0	1	0	0	16-3584
+chrM	5493	1	0	0	1	0	0	0	16-3584
+chrM	5494	1	0	0	0	1	0	0	16-3584
+chrM	5495	1	0	1	0	0	0	0	16-3584
+chrM	5496	1	0	0	0	1	0	0	16-3584
+chrM	5497	1	1	0	0	0	0	0	16-3584
+chrM	5498	1	1	0	0	0	0	0	16-3584
+chrM	5499	1	1	0	0	0	0	0	16-3584
+chrM	5500	1	0	1	0	0	0	0	16-3584
+chrM	5501	1	0	0	1	0	0	0	16-3584
+chrM	5502	1	0	0	0	1	0	0	16-3584
+chrM	5503	1	0	0	1	0	0	0	16-3584
+chrM	5504	1	0	1	0	0	0	0	16-3584
+chrM	5505	1	0	0	0	1	0	0	16-3584
+chrM	5506	1	1	0	0	0	0	0	16-3584
+chrM	5507	1	0	1	0	0	0	0	16-3584
+chrM	5508	1	0	0	0	1	0	0	16-3584
+chrM	5509	1	1	0	0	0	0	0	16-3584
+chrM	5510	1	0	0	1	0	0	0	16-3584
+chrM	5511	1	1	0	0	0	0	0	16-3584
+chrM	5512	1	0	1	0	0	0	0	16-3584
+chrM	5513	1	0	0	0	1	0	0	16-3584
+chrM	5514	1	0	1	0	0	0	0	16-3584
+chrM	5515	1	0	0	1	0	0	0	16-3584
+chrM	5516	1	0	0	1	0	0	0	16-3584
+chrM	5517	1	0	0	0	1	0	0	16-3584
+chrM	5518	1	0	1	0	0	0	0	16-3584
+chrM	5519	1	0	0	0	1	0	0	16-3584
+chrM	5520	1	0	0	1	0	0	0	16-3584
+chrM	5521	1	0	1	0	0	0	0	16-3584
+chrM	5522	1	0	0	1	0	0	0	16-3584
+chrM	5523	1	0	0	0	1	0	0	16-3584
+chrM	5524	1	0	0	0	1	0	0	16-3584
+chrM	5525	1	0	0	0	1	0	0	16-3584
+chrM	5526	1	0	0	0	1	0	0	16-3584
+chrM	5527	1	0	1	0	0	0	0	16-3584
+chrM	5528	1	1	0	0	0	0	0	16-3584
+chrM	5529	1	1	0	0	0	0	0	16-3584
+chrM	5530	1	0	0	0	1	0	0	16-3584
+chrM	5531	1	1	0	0	0	0	0	16-3584
+chrM	5532	1	0	0	0	1	0	0	16-3584
+chrM	5533	1	0	0	0	1	0	0	16-3584
+chrM	5534	1	0	0	0	1	0	0	16-3584
+chrM	5535	1	0	1	0	0	0	0	16-3584
+chrM	5536	1	0	0	0	1	0	0	16-3584
+chrM	5537	1	0	0	0	1	0	0	16-3584
+chrM	5538	1	0	0	0	1	0	0	16-3584
+chrM	5539	1	0	0	0	1	0	0	16-3584
+chrM	5540	1	0	1	0	0	0	0	16-3584
+chrM	5541	1	0	1	0	0	0	0	16-3584
+chrM	5542	1	0	1	0	0	0	0	16-3584
+chrM	5543	1	0	0	0	1	0	0	16-3584
+chrM	5544	1	0	0	1	0	0	0	16-3584
+chrM	5545	1	1	0	0	0	0	0	16-3584
+chrM	5546	1	1	0	0	0	0	0	16-3584
+chrM	5547	1	0	1	0	0	0	0	16-3584
+chrM	5548	1	0	0	1	0	0	0	16-3584
+chrM	5549	1	0	0	1	0	0	0	16-3584
+chrM	5550	1	0	0	1	0	0	0	16-3584
+chrM	5551	1	0	0	0	1	0	0	16-3584
+chrM	5552	1	0	1	0	0	0	0	16-3584
+chrM	5553	1	0	0	0	1	0	0	16-3584
+chrM	5554	1	0	1	0	0	0	0	16-3584
+chrM	5555	1	0	0	1	0	0	0	16-3584
+chrM	5556	1	1	0	0	0	0	0	16-3584
+chrM	5557	1	0	0	0	1	0	0	16-3584
+chrM	5558	1	0	0	1	0	0	0	16-3584
+chrM	9027	2	1	1	0	0	0	0	16-3584
+chrM	9028	2	0	0	0	2	0	0	16-3584
+chrM	9029	2	2	0	0	0	0	0	16-3584
+chrM	9030	2	1	0	0	1	0	0	16-3584
+chrM	9031	2	0	0	2	0	0	0	16-3584
+chrM	9032	4	0	2	0	2	0	0	16-3584
+chrM	9033	4	2	0	2	0	0	0	16-3584
+chrM	9034	4	1	1	1	1	0	0	16-3584
+chrM	9035	4	0	1	2	1	0	0	16-3584
+chrM	9036	4	1	2	0	1	0	0	16-3584
+chrM	9037	4	1	1	1	1	0	0	16-3584
+chrM	9038	4	1	0	2	1	0	0	16-3584
+chrM	9039	4	0	2	2	0	0	0	16-3584
+chrM	9040	4	0	3	0	1	0	0	16-3584
+chrM	9041	4	0	0	1	3	0	0	16-3584
+chrM	9042	4	1	2	0	1	0	0	16-3584
+chrM	9043	4	1	0	3	0	0	0	16-3584
+chrM	9044	4	2	1	1	0	0	0	16-3584
+chrM	9045	4	0	1	2	1	0	0	16-3584
+chrM	9046	4	0	2	1	1	0	0	16-3584
+chrM	9047	4	2	2	0	0	0	0	16-3584
+chrM	9048	4	0	1	2	1	0	0	16-3584
+chrM	9049	4	0	1	0	3	0	0	16-3584
+chrM	9050	4	1	1	2	0	0	0	16-3584
+chrM	9051	4	0	0	0	4	0	0	16-3584
+chrM	9052	4	1	0	2	1	0	0	16-3584
+chrM	9053	4	2	0	1	1	0	0	16-3584
+chrM	9054	4	0	2	0	2	0	0	16-3584
+chrM	9055	4	0	2	2	0	0	0	16-3584
+chrM	9056	4	2	0	1	1	0	0	16-3584
+chrM	9057	4	0	0	1	3	0	0	16-3584
+chrM	9058	4	2	1	0	1	0	0	16-3584
+chrM	9059	4	1	1	0	2	0	0	16-3584
+chrM	9060	4	0	2	0	2	0	0	16-3584
+chrM	9061	4	1	0	2	1	0	0	16-3584
+chrM	9062	4	1	1	1	1	0	0	16-3584
+chrM	9063	4	2	1	0	1	0	0	16-3584
+chrM	9064	4	1	1	2	0	0	0	16-3584
+chrM	9065	4	0	3	1	0	0	0	16-3584
+chrM	9066	4	1	0	1	2	0	0	16-3584
+chrM	9067	4	2	0	1	1	0	0	16-3584
+chrM	9068	4	0	1	1	2	0	0	16-3584
+chrM	9069	4	1	1	0	2	0	0	16-3584
+chrM	9070	4	0	0	4	0	0	0	16-3584
+chrM	9071	4	1	1	2	0	0	0	16-3584
+chrM	9072	4	3	1	0	0	0	0	16-3584
+chrM	9073	4	2	1	1	0	0	0	16-3584
+chrM	9074	4	1	1	1	1	0	0	16-3584
+chrM	9075	2	0	0	2	0	0	0	16-3584
+chrM	9076	2	0	1	1	0	0	0	16-3584
+chrM	9077	2	0	1	0	1	0	0	16-3584
+chrM	9078	2	0	1	1	0	0	0	16-3584
+chrM	9079	2	0	1	0	1	0	0	16-3584
+chrM	9278	2	1	0	1	0	0	0	16-3584
+chrM	9279	2	0	2	0	0	0	0	16-3584
+chrM	9280	2	0	1	0	1	0	0	16-3584
+chrM	9281	2	0	2	0	0	0	0	16-3584
+chrM	9282	2	0	0	2	0	0	0	16-3584
+chrM	9283	2	0	1	1	0	0	0	16-3584
+chrM	9284	2	0	0	1	1	0	0	16-3584
+chrM	9285	2	0	0	0	2	0	0	16-3584
+chrM	9286	2	2	0	0	0	0	0	16-3584
+chrM	9287	2	1	1	0	0	0	0	16-3584
+chrM	9288	2	0	1	1	0	0	0	16-3584
+chrM	9289	2	1	0	0	1	0	0	16-3584
+chrM	9290	2	0	0	0	2	0	0	16-3584
+chrM	9291	2	1	0	0	1	0	0	16-3584
+chrM	9292	2	1	1	0	0	0	0	16-3584
+chrM	9293	2	1	0	1	0	0	0	16-3584
+chrM	9294	2	2	0	0	0	0	0	16-3584
+chrM	9295	2	1	0	1	0	0	0	16-3584
+chrM	9296	2	1	0	1	0	0	0	16-3584
+chrM	9297	2	1	0	1	0	0	0	16-3584
+chrM	9298	2	1	0	0	1	0	0	16-3584
+chrM	9299	2	1	0	1	0	0	0	16-3584
+chrM	9300	2	1	1	0	0	0	0	16-3584
+chrM	9301	2	1	0	0	1	0	0	16-3584
+chrM	9302	2	0	1	0	1	0	0	16-3584
+chrM	9303	2	0	1	0	1	0	0	16-3584
+chrM	9304	2	1	0	0	1	0	0	16-3584
+chrM	9305	2	0	1	0	1	0	0	16-3584
+chrM	9306	2	0	1	0	1	0	0	16-3584
+chrM	9307	2	0	1	1	0	0	0	16-3584
+chrM	9308	2	1	0	0	1	0	0	16-3584
+chrM	9309	2	1	0	1	0	0	0	16-3584
+chrM	9310	2	2	0	0	0	0	0	16-3584
+chrM	9311	2	0	1	1	0	0	0	16-3584
+chrM	9312	2	1	0	0	1	0	0	16-3584
+chrM	9313	2	0	1	1	0	0	0	16-3584
+chrM	9314	2	0	2	0	0	0	0	16-3584
+chrM	9315	2	1	1	0	0	0	0	16-3584
+chrM	9316	2	0	1	1	0	0	0	16-3584
+chrM	9317	2	0	1	0	1	0	0	16-3584
+chrM	9318	2	1	0	1	0	0	0	16-3584
+chrM	9319	2	1	0	1	0	0	0	16-3584
+chrM	9320	2	2	0	0	0	0	0	16-3584
+chrM	9321	2	1	1	0	0	0	0	16-3584
+chrM	9322	4	1	0	0	3	0	0	16-3584
+chrM	9323	4	1	1	1	1	0	0	16-3584
+chrM	9324	4	1	0	1	2	0	0	16-3584
+chrM	9325	4	0	1	3	0	0	0	16-3584
+chrM	9326	4	2	1	1	0	0	0	16-3584
+chrM	9327	4	2	0	2	0	0	0	16-3584
+chrM	9328	4	1	0	1	2	0	0	16-3584
+chrM	9329	4	1	2	1	0	0	0	16-3584
+chrM	9330	4	2	1	0	1	0	0	16-3584
+chrM	9331	4	2	1	1	0	0	0	16-3584
+chrM	9332	4	2	1	0	1	0	0	16-3584
+chrM	9333	4	0	1	1	2	0	0	16-3584
+chrM	9334	4	1	2	0	1	0	0	16-3584
+chrM	9335	4	0	1	0	3	0	0	16-3584
+chrM	9336	4	1	0	1	2	0	0	16-3584
+chrM	9337	4	1	0	1	2	0	0	16-3584
+chrM	9338	4	2	0	0	2	0	0	16-3584
+chrM	9339	4	2	0	1	1	0	0	16-3584
+chrM	9340	4	3	0	1	0	0	0	16-3584
+chrM	9341	4	1	1	1	1	0	0	16-3584
+chrM	9342	4	0	1	0	3	0	0	16-3584
+chrM	9343	4	0	1	1	2	0	0	16-3584
+chrM	9344	4	0	1	2	1	0	0	16-3584
+chrM	9345	4	2	1	0	1	0	0	16-3584
+chrM	9346	4	1	3	0	0	0	0	16-3584
+chrM	9347	4	1	1	0	2	0	0	16-3584
+chrM	9348	4	2	1	1	0	0	0	16-3584
+chrM	9349	4	2	1	1	0	0	0	16-3584
+chrM	9350	4	0	0	2	2	0	0	16-3584
+chrM	9351	4	0	2	0	2	0	0	16-3584
+chrM	9352	4	1	1	2	0	0	0	16-3584
+chrM	9353	4	1	0	2	1	0	0	16-3584
+chrM	9354	4	1	0	2	1	0	0	16-3584
+chrM	9355	4	4	0	0	0	0	0	16-3584
+chrM	9356	4	2	0	1	1	0	0	16-3584
+chrM	9357	4	0	0	1	3	0	0	16-3584
+chrM	9358	4	2	1	0	1	0	0	16-3584
+chrM	9359	4	2	2	0	0	0	0	16-3584
+chrM	9360	4	2	1	0	1	0	0	16-3584
+chrM	9361	4	0	2	2	0	0	0	16-3584
+chrM	9362	4	1	1	0	2	0	0	16-3584
+chrM	9363	4	1	1	0	2	0	0	16-3584
+chrM	9364	4	2	0	1	1	0	0	16-3584
+chrM	9365	4	1	2	0	1	0	0	16-3584
+chrM	9366	4	1	2	1	0	0	0	16-3584
+chrM	9367	4	0	0	1	3	0	0	16-3584
+chrM	9368	4	3	0	1	0	0	0	16-3584
+chrM	9369	4	0	1	1	2	0	0	16-3584
+chrM	9370	4	0	0	3	1	0	0	16-3584
+chrM	9371	4	0	2	1	1	0	0	16-3584
+chrM	9372	4	1	2	1	0	0	0	16-3584
+chrM	9373	4	1	1	1	1	0	0	16-3584
+chrM	9374	4	1	0	1	2	0	0	16-3584
+chrM	9375	4	2	0	0	2	0	0	16-3584
+chrM	9376	4	0	1	3	0	0	0	16-3584
+chrM	9377	4	0	1	0	3	0	0	16-3584
+chrM	9378	4	1	1	0	2	0	0	16-3584
+chrM	9379	4	0	1	2	1	0	0	16-3584
+chrM	9380	4	2	1	0	1	0	0	16-3584
+chrM	9381	4	2	2	0	0	0	0	16-3584
+chrM	9382	4	0	1	1	2	0	0	16-3584
+chrM	9383	4	0	0	3	1	0	0	16-3584
+chrM	9384	4	0	1	2	1	0	0	16-3584
+chrM	9385	4	2	0	0	2	0	0	16-3584
+chrM	9386	4	2	0	2	0	0	0	16-3584
+chrM	9387	4	0	1	2	1	0	0	16-3584
+chrM	9388	4	1	0	1	2	0	0	16-3584
+chrM	9389	4	1	1	2	0	0	0	16-3584
+chrM	9390	4	1	1	1	1	0	0	16-3584
+chrM	9391	4	2	0	1	1	0	0	16-3584
+chrM	9392	4	0	1	1	2	0	0	16-3584
+chrM	9393	4	3	0	0	1	0	0	16-3584
+chrM	9394	4	1	1	1	1	0	0	16-3584
+chrM	9395	4	0	0	3	1	0	0	16-3584
+chrM	9396	4	2	1	0	1	0	0	16-3584
+chrM	9397	4	0	0	2	2	0	0	16-3584
+chrM	9398	4	2	1	1	0	0	0	16-3584
+chrM	9399	4	0	2	0	2	0	0	16-3584
+chrM	9400	4	1	2	0	1	0	0	16-3584
+chrM	9401	4	0	1	2	1	0	0	16-3584
+chrM	9402	4	1	2	0	1	0	0	16-3584
+chrM	9403	4	1	1	0	2	0	0	16-3584
+chrM	9404	4	2	2	0	0	0	0	16-3584
+chrM	9405	4	1	1	0	2	0	0	16-3584
+chrM	9406	4	0	1	3	0	0	0	16-3584
+chrM	9407	4	0	1	1	2	0	0	16-3584
+chrM	9408	4	1	2	0	1	0	0	16-3584
+chrM	9409	4	1	1	1	1	0	0	16-3584
+chrM	9410	4	1	1	1	1	0	0	16-3584
+chrM	9411	4	1	1	2	0	0	0	16-3584
+chrM	9412	4	1	0	1	2	0	0	16-3584
+chrM	9413	4	3	0	0	1	0	0	16-3584
+chrM	9414	4	1	2	0	1	0	0	16-3584
+chrM	9415	4	1	1	1	1	0	0	16-3584
+chrM	9416	4	1	0	2	1	0	0	16-3584
+chrM	9417	4	1	0	1	2	0	0	16-3584
+chrM	9418	4	2	0	1	1	0	0	16-3584
+chrM	9419	4	2	1	1	0	0	0	16-3584
+chrM	9420	4	1	2	0	1	0	0	16-3584
+chrM	9421	4	0	2	2	0	0	0	16-3584
+chrM	9422	4	0	0	4	0	0	0	16-3584
+chrM	9423	4	0	1	1	2	0	0	16-3584
+chrM	9424	2	1	0	0	1	0	0	16-3584
+chrM	9425	2	1	1	0	0	0	0	16-3584
+chrM	9426	2	1	1	0	0	0	0	16-3584
+chrM	9427	2	2	0	0	0	0	0	16-3584
+chrM	9428	2	0	1	1	0	0	0	16-3584
+chrM	9429	2	0	0	1	1	0	0	16-3584
+chrM	9430	2	2	0	0	0	0	0	16-3584
+chrM	9431	2	2	0	0	0	0	0	16-3584
+chrM	9432	2	0	0	1	1	0	0	16-3584
+chrM	9433	2	0	1	1	0	0	0	16-3584
+chrM	9434	2	0	0	0	2	0	0	16-3584
+chrM	9435	2	1	0	0	1	0	0	16-3584
+chrM	9436	2	0	1	1	0	0	0	16-3584
+chrM	9437	2	0	0	1	1	0	0	16-3584
+chrM	9438	2	0	0	0	2	0	0	16-3584
+chrM	9439	2	0	1	0	1	0	0	16-3584
+chrM	9440	2	0	0	1	1	0	0	16-3584
+chrM	9441	2	0	0	1	1	0	0	16-3584
+chrM	9442	2	0	1	0	1	0	0	16-3584
+chrM	9443	2	0	1	1	0	0	0	16-3584
+chrM	9444	2	0	0	1	1	0	0	16-3584
+chrM	9445	2	1	0	1	0	0	0	16-3584
+chrM	9446	2	1	0	1	0	0	0	16-3584
+chrM	9447	2	0	1	1	0	0	0	16-3584
+chrM	9448	2	0	0	0	2	0	0	16-3584
+chrM	9449	2	1	0	0	1	0	0	16-3584
+chrM	9450	2	1	0	1	0	0	0	16-3584
+chrM	9451	2	1	0	0	1	0	0	16-3584
+chrM	9452	2	0	1	1	0	0	0	16-3584
+chrM	9453	2	1	1	0	0	0	0	16-3584
+chrM	9454	2	1	1	0	0	0	0	16-3584
+chrM	9455	2	1	1	0	0	0	0	16-3584
+chrM	9456	2	2	0	0	0	0	0	16-3584
+chrM	9457	2	1	0	0	1	0	0	16-3584
+chrM	9458	2	2	0	0	0	0	0	16-3584
+chrM	9459	2	0	0	1	1	0	0	16-3584
+chrM	9460	2	0	1	0	1	0	0	16-3584
+chrM	9461	2	0	1	1	0	0	0	16-3584
+chrM	9462	2	0	1	1	0	0	0	16-3584
+chrM	9463	2	2	0	0	0	0	0	16-3584
+chrM	9464	2	1	1	0	0	0	0	16-3584
+chrM	9465	2	1	1	0	0	0	0	16-3584
+chrM	10912	1	0	0	0	1	0	0	16-3584
+chrM	10913	1	1	0	0	0	0	0	16-3584
+chrM	10914	1	1	0	0	0	0	0	16-3584
+chrM	10915	1	0	0	1	0	0	0	16-3584
+chrM	10916	1	0	0	0	1	0	0	16-3584
+chrM	10917	2	0	0	2	0	0	0	16-3584
+chrM	10918	2	0	1	0	1	0	0	16-3584
+chrM	10919	2	0	2	0	0	0	0	16-3584
+chrM	10920	2	0	1	1	0	0	0	16-3584
+chrM	10921	2	0	2	0	0	0	0	16-3584
+chrM	10922	2	1	0	1	0	0	0	16-3584
+chrM	10923	2	1	0	1	0	0	0	16-3584
+chrM	10924	2	1	0	1	0	0	0	16-3584
+chrM	10925	2	0	0	2	0	0	0	16-3584
+chrM	10926	2	0	2	0	0	0	0	16-3584
+chrM	10927	2	0	0	2	0	0	0	16-3584
+chrM	10928	2	1	0	1	0	0	0	16-3584
+chrM	10929	2	1	1	0	0	0	0	16-3584
+chrM	10930	2	1	0	0	1	0	0	16-3584
+chrM	10931	2	1	0	1	0	0	0	16-3584
+chrM	10932	2	1	1	0	0	0	0	16-3584
+chrM	10933	2	1	0	1	0	0	0	16-3584
+chrM	10934	2	0	1	1	0	0	0	16-3584
+chrM	10935	2	1	1	0	0	0	0	16-3584
+chrM	10936	2	1	0	0	1	0	0	16-3584
+chrM	10937	2	0	2	0	0	0	0	16-3584
+chrM	10938	2	1	0	0	1	0	0	16-3584
+chrM	10939	2	0	0	1	1	0	0	16-3584
+chrM	10940	2	0	0	1	1	0	0	16-3584
+chrM	10941	2	0	1	1	0	0	0	16-3584
+chrM	10942	2	0	1	0	1	0	0	16-3584
+chrM	10943	2	0	1	0	1	0	0	16-3584
+chrM	10944	2	2	0	0	0	0	0	16-3584
+chrM	10945	2	1	0	1	0	0	0	16-3584
+chrM	10946	2	1	1	0	0	0	0	16-3584
+chrM	10947	2	0	0	1	1	0	0	16-3584
+chrM	10948	2	0	1	1	0	0	0	16-3584
+chrM	10949	2	1	1	0	0	0	0	16-3584
+chrM	10950	2	1	0	0	1	0	0	16-3584
+chrM	10951	2	0	1	0	1	0	0	16-3584
+chrM	10952	2	0	0	0	2	0	0	16-3584
+chrM	10953	2	0	0	1	1	0	0	16-3584
+chrM	10954	2	0	0	2	0	0	0	16-3584
+chrM	10955	2	2	0	0	0	0	0	16-3584
+chrM	10956	2	0	1	0	1	0	0	16-3584
+chrM	10957	2	0	0	2	0	0	0	16-3584
+chrM	10958	2	0	1	0	1	0	0	16-3584
+chrM	10959	2	0	1	0	1	0	0	16-3584
+chrM	10960	2	1	0	0	1	0	0	16-3584
+chrM	10961	2	1	1	0	0	0	0	16-3584
+chrM	10962	2	1	0	0	1	0	0	16-3584
+chrM	10963	2	1	0	0	1	0	0	16-3584
+chrM	10964	2	0	0	0	2	0	0	16-3584
+chrM	10965	2	1	1	0	0	0	0	16-3584
+chrM	10966	2	0	1	1	0	0	0	16-3584
+chrM	10967	2	0	1	0	1	0	0	16-3584
+chrM	10968	2	0	1	0	1	0	0	16-3584
+chrM	10969	2	0	1	1	0	0	0	16-3584
+chrM	10970	2	0	0	1	1	0	0	16-3584
+chrM	10971	2	1	1	0	0	0	0	16-3584
+chrM	10972	2	0	0	1	1	0	0	16-3584
+chrM	10973	2	2	0	0	0	0	0	16-3584
+chrM	10974	2	2	0	0	0	0	0	16-3584
+chrM	10975	2	1	0	1	0	0	0	16-3584
+chrM	10976	2	0	2	0	0	0	0	16-3584
+chrM	10977	2	1	0	1	0	0	0	16-3584
+chrM	10978	2	1	0	0	1	0	0	16-3584
+chrM	10979	2	0	0	0	2	0	0	16-3584
+chrM	10980	2	2	0	0	0	0	0	16-3584
+chrM	10981	2	0	2	0	0	0	0	16-3584
+chrM	10982	2	1	1	0	0	0	0	16-3584
+chrM	10983	2	1	1	0	0	0	0	16-3584
+chrM	10984	1	0	0	0	1	0	0	16-3584
+chrM	10985	1	1	0	0	0	0	0	16-3584
+chrM	10986	1	0	1	0	0	0	0	16-3584
+chrM	10987	1	0	1	0	0	0	0	16-3584
+chrM	10988	1	1	0	0	0	0	0	16-3584
+chrM	11991	1	0	1	0	0	0	0	16-3584
+chrM	11992	1	1	0	0	0	0	0	16-3584
+chrM	11993	1	1	0	0	0	0	0	16-3584
+chrM	11994	1	0	1	0	0	0	0	16-3584
+chrM	11995	1	1	0	0	0	0	0	16-3584
+chrM	11996	2	0	1	0	1	0	0	16-3584
+chrM	11997	2	1	1	0	0	0	0	16-3584
+chrM	11998	2	1	0	0	1	0	0	16-3584
+chrM	11999	2	0	0	0	2	0	0	16-3584
+chrM	12000	2	0	0	1	1	0	0	16-3584
+chrM	12001	2	1	1	0	0	0	0	16-3584
+chrM	12002	2	0	1	1	0	0	0	16-3584
+chrM	12003	2	1	0	1	0	0	0	16-3584
+chrM	12004	2	1	0	1	0	0	0	16-3584
+chrM	12005	2	0	1	1	0	0	0	16-3584
+chrM	12006	2	0	1	1	0	0	0	16-3584
+chrM	12007	2	1	0	0	1	0	0	16-3584
+chrM	12008	2	0	2	0	0	0	0	16-3584
+chrM	12009	2	1	1	0	0	0	0	16-3584
+chrM	12010	2	0	2	0	0	0	0	16-3584
+chrM	12011	2	0	0	1	1	0	0	16-3584
+chrM	12012	2	0	1	0	1	0	0	16-3584
+chrM	12013	2	0	0	2	0	0	0	16-3584
+chrM	12014	2	1	0	1	0	0	0	16-3584
+chrM	12015	2	0	1	1	0	0	0	16-3584
+chrM	12016	2	1	0	0	1	0	0	16-3584
+chrM	12017	2	0	1	0	1	0	0	16-3584
+chrM	12018	2	1	1	0	0	0	0	16-3584
+chrM	12019	2	0	1	0	1	0	0	16-3584
+chrM	12020	2	1	0	0	1	0	0	16-3584
+chrM	12021	2	0	0	0	2	0	0	16-3584
+chrM	12022	2	1	1	0	0	0	0	16-3584
+chrM	12023	2	0	1	1	0	0	0	16-3584
+chrM	12024	2	1	1	0	0	0	0	16-3584
+chrM	12025	2	2	0	0	0	0	0	16-3584
+chrM	12026	2	1	0	0	1	0	0	16-3584
+chrM	12027	2	1	0	1	0	0	0	16-3584
+chrM	12028	2	0	0	1	1	0	0	16-3584
+chrM	12029	2	0	0	0	2	0	0	16-3584
+chrM	12030	2	0	1	1	0	0	0	16-3584
+chrM	12031	2	0	1	1	0	0	0	16-3584
+chrM	12032	2	0	1	1	0	0	0	16-3584
+chrM	12033	2	1	0	0	1	0	0	16-3584
+chrM	12034	2	1	1	0	0	0	0	16-3584
+chrM	12035	2	2	0	0	0	0	0	16-3584
+chrM	12036	2	0	0	2	0	0	0	16-3584
+chrM	12037	2	0	0	1	1	0	0	16-3584
+chrM	12038	2	0	1	0	1	0	0	16-3584
+chrM	12039	2	1	0	0	1	0	0	16-3584
+chrM	12040	2	0	0	1	1	0	0	16-3584
+chrM	12041	2	0	0	0	2	0	0	16-3584
+chrM	12042	2	1	1	0	0	0	0	16-3584
+chrM	12043	2	1	0	0	1	0	0	16-3584
+chrM	12044	2	1	1	0	0	0	0	16-3584
+chrM	12045	2	0	0	1	1	0	0	16-3584
+chrM	12046	2	0	2	0	0	0	0	16-3584
+chrM	12047	2	0	0	2	0	0	0	16-3584
+chrM	12048	1	0	0	1	0	0	0	16-3584
+chrM	12049	1	1	0	0	0	0	0	16-3584
+chrM	12050	1	0	0	1	0	0	0	16-3584
+chrM	12051	1	1	0	0	0	0	0	16-3584
+chrM	12052	1	0	0	0	1	0	0	16-3584
+chrM	13365	1	1	0	0	0	0	0	16-3584
+chrM	13366	1	0	0	0	1	0	0	16-3584
+chrM	13367	1	0	1	0	0	0	0	16-3584
+chrM	13368	1	1	0	0	0	0	0	16-3584
+chrM	13369	1	0	0	0	1	0	0	16-3584
+chrM	13370	1	1	0	0	0	0	0	16-3584
+chrM	13371	1	0	0	1	0	0	0	16-3584
+chrM	13372	1	0	0	0	1	0	0	16-3584
+chrM	13373	1	0	0	0	1	0	0	16-3584
+chrM	13374	1	0	1	0	0	0	0	16-3584
+chrM	13375	1	1	0	0	0	0	0	16-3584
+chrM	13376	1	0	0	1	0	0	0	16-3584
+chrM	13377	1	0	0	0	1	0	0	16-3584
+chrM	13378	1	1	0	0	0	0	0	16-3584
+chrM	13379	1	0	1	0	0	0	0	16-3584
+chrM	13380	1	0	0	1	0	0	0	16-3584
+chrM	13381	1	1	0	0	0	0	0	16-3584
+chrM	13382	1	1	0	0	0	0	0	16-3584
+chrM	13383	1	0	0	0	1	0	0	16-3584
+chrM	13384	1	1	0	0	0	0	0	16-3584
+chrM	13385	1	1	0	0	0	0	0	16-3584
+chrM	13386	1	0	0	1	0	0	0	16-3584
+chrM	13387	1	1	0	0	0	0	0	16-3584
+chrM	13388	1	0	1	0	0	0	0	16-3584
+chrM	13389	1	1	0	0	0	0	0	16-3584
+chrM	13390	1	1	0	0	0	0	0	16-3584
+chrM	13391	1	0	1	0	0	0	0	16-3584
+chrM	13392	1	1	0	0	0	0	0	16-3584
+chrM	13393	1	0	1	0	0	0	0	16-3584
+chrM	13394	1	0	0	0	1	0	0	16-3584
+chrM	13395	1	1	0	0	0	0	0	16-3584
+chrM	13396	1	1	0	0	0	0	0	16-3584
+chrM	13397	1	0	0	0	1	0	0	16-3584
+chrM	13398	1	1	0	0	0	0	0	16-3584
+chrM	13399	1	0	0	0	1	0	0	16-3584
+chrM	13400	1	0	1	0	0	0	0	16-3584
+chrM	13401	1	1	0	0	0	0	0	16-3584
+chrM	13402	1	0	0	1	0	0	0	16-3584
+chrM	13403	1	0	0	1	0	0	0	16-3584
+chrM	13404	1	1	0	0	0	0	0	16-3584
+chrM	13405	1	0	0	1	0	0	0	16-3584
+chrM	13406	2	1	0	1	0	0	0	16-3584
+chrM	13407	2	1	0	0	1	0	0	16-3584
+chrM	13408	2	1	0	0	1	0	0	16-3584
+chrM	13409	2	1	0	1	0	0	0	16-3584
+chrM	13410	2	0	1	0	1	0	0	16-3584
+chrM	13411	2	0	1	1	0	0	0	16-3584
+chrM	13412	2	0	0	2	0	0	0	16-3584
+chrM	13413	2	0	1	0	1	0	0	16-3584
+chrM	13414	2	1	0	0	1	0	0	16-3584
+chrM	13415	2	1	0	0	1	0	0	16-3584
+chrM	13416	2	0	0	1	1	0	0	16-3584
+chrM	13417	2	1	0	0	1	0	0	16-3584
+chrM	13418	2	0	0	1	1	0	0	16-3584
+chrM	13419	2	0	1	0	1	0	0	16-3584
+chrM	13420	2	0	1	1	0	0	0	16-3584
+chrM	13421	2	0	1	0	1	0	0	16-3584
+chrM	13422	2	0	0	1	1	0	0	16-3584
+chrM	13423	2	2	0	0	0	0	0	16-3584
+chrM	13424	2	0	1	0	1	0	0	16-3584
+chrM	13425	2	0	0	1	1	0	0	16-3584
+chrM	13426	2	1	0	0	1	0	0	16-3584
+chrM	13427	2	1	0	1	0	0	0	16-3584
+chrM	13428	2	0	1	1	0	0	0	16-3584
+chrM	13429	2	0	0	2	0	0	0	16-3584
+chrM	13430	2	0	0	1	1	0	0	16-3584
+chrM	13431	2	0	1	1	0	0	0	16-3584
+chrM	13432	2	0	1	1	0	0	0	16-3584
+chrM	13433	2	0	1	1	0	0	0	16-3584
+chrM	13434	2	1	1	0	0	0	0	16-3584
+chrM	13435	2	1	0	1	0	0	0	16-3584
+chrM	13436	2	1	0	1	0	0	0	16-3584
+chrM	13437	2	0	1	0	1	0	0	16-3584
+chrM	13438	2	0	1	0	1	0	0	16-3584
+chrM	13439	2	1	1	0	0	0	0	16-3584
+chrM	13440	2	1	0	1	0	0	0	16-3584
+chrM	13441	2	0	1	1	0	0	0	16-3584
+chrM	13442	2	1	0	0	1	0	0	16-3584
+chrM	13443	2	0	0	0	2	0	0	16-3584
+chrM	13444	2	0	1	0	1	0	0	16-3584
+chrM	13445	2	1	0	0	1	0	0	16-3584
+chrM	13446	2	0	0	0	2	0	0	16-3584
+chrM	13447	2	1	0	0	1	0	0	16-3584
+chrM	13448	2	0	0	0	2	0	0	16-3584
+chrM	13449	2	0	2	0	0	0	0	16-3584
+chrM	13450	2	2	0	0	0	0	0	16-3584
+chrM	13451	2	1	0	1	0	0	0	16-3584
+chrM	13452	2	0	1	0	1	0	0	16-3584
+chrM	13453	2	1	0	0	1	0	0	16-3584
+chrM	13454	2	2	0	0	0	0	0	16-3584
+chrM	13455	2	0	1	0	1	0	0	16-3584
+chrM	13456	2	0	2	0	0	0	0	16-3584
+chrM	13457	2	0	1	0	1	0	0	16-3584
+chrM	13458	2	1	1	0	0	0	0	16-3584
+chrM	13459	2	1	0	0	1	0	0	16-3584
+chrM	13460	2	0	0	0	2	0	0	16-3584
+chrM	13461	2	1	0	0	1	0	0	16-3584
+chrM	13462	2	1	1	0	0	0	0	16-3584
+chrM	13463	2	1	0	1	0	0	0	16-3584
+chrM	13464	2	0	1	1	0	0	0	16-3584
+chrM	13465	2	1	0	0	1	0	0	16-3584
+chrM	13466	2	0	0	2	0	0	0	16-3584
+chrM	13467	2	0	1	1	0	0	0	16-3584
+chrM	13468	2	0	2	0	0	0	0	16-3584
+chrM	13469	2	1	1	0	0	0	0	16-3584
+chrM	13470	2	0	0	0	2	0	0	16-3584
+chrM	13471	2	1	1	0	0	0	0	16-3584
+chrM	13472	2	0	1	0	1	0	0	16-3584
+chrM	13473	2	1	0	1	0	0	0	16-3584
+chrM	13474	2	1	0	0	1	0	0	16-3584
+chrM	13475	2	0	0	0	2	0	0	16-3584
+chrM	13476	2	0	1	1	0	0	0	16-3584
+chrM	13477	2	1	1	0	0	0	0	16-3584
+chrM	13478	2	0	1	0	1	0	0	16-3584
+chrM	13479	2	0	1	1	0	0	0	16-3584
+chrM	13480	2	0	1	1	0	0	0	16-3584
+chrM	13481	2	2	0	0	0	0	0	16-3584
+chrM	13482	2	1	0	1	0	0	0	16-3584
+chrM	13483	2	1	1	0	0	0	0	16-3584
+chrM	13484	2	0	1	0	1	0	0	16-3584
+chrM	13485	2	1	0	0	1	0	0	16-3584
+chrM	13486	2	0	0	0	2	0	0	16-3584
+chrM	13487	2	2	0	0	0	0	0	16-3584
+chrM	13488	2	1	1	0	0	0	0	16-3584
+chrM	13489	2	0	1	1	0	0	0	16-3584
+chrM	13490	2	2	0	0	0	0	0	16-3584
+chrM	13491	2	0	1	0	1	0	0	16-3584
+chrM	13492	2	0	2	0	0	0	0	16-3584
+chrM	13493	2	1	0	0	1	0	0	16-3584
+chrM	13494	2	0	0	0	2	0	0	16-3584
+chrM	13495	2	1	1	0	0	0	0	16-3584
+chrM	13496	2	1	1	0	0	0	0	16-3584
+chrM	13497	2	1	0	1	0	0	0	16-3584
+chrM	13498	2	1	1	0	0	0	0	16-3584
+chrM	13499	2	0	2	0	0	0	0	16-3584
+chrM	13500	2	0	0	0	2	0	0	16-3584
+chrM	13501	2	1	0	1	0	0	0	16-3584
+chrM	13502	2	1	1	0	0	0	0	16-3584
+chrM	13503	2	0	1	1	0	0	0	16-3584
+chrM	13504	2	0	1	1	0	0	0	16-3584
+chrM	13505	2	2	0	0	0	0	0	16-3584
+chrM	13506	2	1	0	1	0	0	0	16-3584
+chrM	13507	2	0	1	0	1	0	0	16-3584
+chrM	13508	2	1	0	1	0	0	0	16-3584
+chrM	13509	2	0	0	0	2	0	0	16-3584
+chrM	13510	1	0	0	1	0	0	0	16-3584
+chrM	13511	1	0	0	0	1	0	0	16-3584
+chrM	13512	1	0	0	0	1	0	0	16-3584
+chrM	13513	1	0	0	0	1	0	0	16-3584
+chrM	13514	1	1	0	0	0	0	0	16-3584
+chrM	13515	1	0	0	0	1	0	0	16-3584
+chrM	13516	1	1	0	0	0	0	0	16-3584
+chrM	13517	1	0	0	1	0	0	0	16-3584
+chrM	13518	1	0	0	1	0	0	0	16-3584
+chrM	13519	1	1	0	0	0	0	0	16-3584
+chrM	13520	1	0	0	1	0	0	0	16-3584
+chrM	13521	1	0	0	1	0	0	0	16-3584
+chrM	13522	1	0	0	1	0	0	0	16-3584
+chrM	13523	1	0	0	1	0	0	0	16-3584
+chrM	13524	1	0	0	1	0	0	0	16-3584
+chrM	13525	1	0	0	1	0	0	0	16-3584
+chrM	13526	1	0	0	1	0	0	0	16-3584
+chrM	13527	1	0	1	0	0	0	0	16-3584
+chrM	13528	1	0	0	1	0	0	0	16-3584
+chrM	13529	1	0	0	1	0	0	0	16-3584
+chrM	13530	1	0	1	0	0	0	0	16-3584
+chrM	13531	1	1	0	0	0	0	0	16-3584
+chrM	13532	1	1	0	0	0	0	0	16-3584
+chrM	13533	1	1	0	0	0	0	0	16-3584
+chrM	13534	1	0	0	1	0	0	0	16-3584
+chrM	13535	1	1	0	0	0	0	0	16-3584
+chrM	13536	1	0	0	0	1	0	0	16-3584
+chrM	13537	1	0	0	1	0	0	0	16-3584
+chrM	13538	1	0	0	1	0	0	0	16-3584
+chrM	13539	1	0	1	0	0	0	0	16-3584
+chrM	13540	1	0	0	0	1	0	0	16-3584
+chrM	13541	1	0	0	1	0	0	0	16-3584
+chrM	13542	1	0	0	1	0	0	0	16-3584
+chrM	13543	1	1	0	0	0	0	0	16-3584
+chrM	13544	1	0	0	1	0	0	0	16-3584
+chrM	13545	1	0	0	0	1	0	0	16-3584
+chrM	13546	1	0	0	1	0	0	0	16-3584
+chrM	13547	1	0	1	0	0	0	0	16-3584
+chrM	13548	1	1	0	0	0	0	0	16-3584
+chrM	13549	1	0	0	0	1	0	0	16-3584
+chrM	13550	1	0	0	0	1	0	0	16-3584
+chrM	13551	1	1	0	0	0	0	0	16-3584
+chrM	14794	1	0	0	1	0	0	0	16-3584
+chrM	14795	1	0	0	1	0	0	0	16-3584
+chrM	14796	1	0	0	0	1	0	0	16-3584
+chrM	14797	1	1	0	0	0	0	0	16-3584
+chrM	14798	1	1	0	0	0	0	0	16-3584
+chrM	14799	1	1	0	0	0	0	0	16-3584
+chrM	14800	1	0	1	0	0	0	0	16-3584
+chrM	14801	1	0	1	0	0	0	0	16-3584
+chrM	14802	1	0	0	1	0	0	0	16-3584
+chrM	14803	1	0	0	0	1	0	0	16-3584
+chrM	14804	1	0	0	0	1	0	0	16-3584
+chrM	14805	1	0	1	0	0	0	0	16-3584
+chrM	14806	1	0	1	0	0	0	0	16-3584
+chrM	14807	1	0	1	0	0	0	0	16-3584
+chrM	14808	1	0	0	0	1	0	0	16-3584
+chrM	14809	1	0	0	0	1	0	0	16-3584
+chrM	14810	1	0	0	1	0	0	0	16-3584
+chrM	14811	1	0	0	1	0	0	0	16-3584
+chrM	14812	1	0	1	0	0	0	0	16-3584
+chrM	14813	1	0	0	0	1	0	0	16-3584
+chrM	14814	1	0	1	0	0	0	0	16-3584
+chrM	14815	1	0	0	1	0	0	0	16-3584
+chrM	14816	1	0	1	0	0	0	0	16-3584
+chrM	14817	1	0	0	1	0	0	0	16-3584
+chrM	14818	1	1	0	0	0	0	0	16-3584
+chrM	14819	1	0	0	1	0	0	0	16-3584
+chrM	14820	2	0	1	0	1	0	0	16-3584
+chrM	14821	2	0	1	0	1	0	0	16-3584
+chrM	14822	2	0	1	0	1	0	0	16-3584
+chrM	14823	2	0	1	1	0	0	0	16-3584
+chrM	14824	2	1	1	0	0	0	0	16-3584
+chrM	14825	2	0	0	1	1	0	0	16-3584
+chrM	14826	2	0	1	1	0	0	0	16-3584
+chrM	14827	2	1	0	1	0	0	0	16-3584
+chrM	14828	2	0	1	0	1	0	0	16-3584
+chrM	14829	2	1	1	0	0	0	0	16-3584
+chrM	14830	2	0	0	2	0	0	0	16-3584
+chrM	14831	2	0	0	1	1	0	0	16-3584
+chrM	14832	2	0	1	1	0	0	0	16-3584
+chrM	14833	2	0	2	0	0	0	0	16-3584
+chrM	14834	2	1	0	1	0	0	0	16-3584
+chrM	14835	2	1	0	1	0	0	0	16-3584
+chrM	14836	2	1	1	0	0	0	0	16-3584
+chrM	14837	2	0	1	1	0	0	0	16-3584
+chrM	14838	2	1	0	1	0	0	0	16-3584
+chrM	14839	2	0	1	1	0	0	0	16-3584
+chrM	14840	2	0	2	0	0	0	0	16-3584
+chrM	14841	2	0	0	2	0	0	0	16-3584
+chrM	14842	2	0	1	0	1	0	0	16-3584
+chrM	14843	2	0	2	0	0	0	0	16-3584
+chrM	14844	2	0	1	0	1	0	0	16-3584
+chrM	14845	2	1	1	0	0	0	0	16-3584
+chrM	14846	2	1	1	0	0	0	0	16-3584
+chrM	14847	2	2	0	0	0	0	0	16-3584
+chrM	14848	2	1	1	0	0	0	0	16-3584
+chrM	14849	2	0	0	2	0	0	0	16-3584
+chrM	14850	2	0	0	2	0	0	0	16-3584
+chrM	14851	2	1	1	0	0	0	0	16-3584
+chrM	14852	2	0	1	0	1	0	0	16-3584
+chrM	14853	2	0	0	0	2	0	0	16-3584
+chrM	14854	2	0	2	0	0	0	0	16-3584
+chrM	14855	2	2	0	0	0	0	0	16-3584
+chrM	14856	2	1	0	1	0	0	0	16-3584
+chrM	14857	2	0	1	0	1	0	0	16-3584
+chrM	14858	2	0	0	1	1	0	0	16-3584
+chrM	14859	2	0	1	1	0	0	0	16-3584
+chrM	14860	2	0	1	1	0	0	0	16-3584
+chrM	14861	2	0	1	1	0	0	0	16-3584
+chrM	14862	2	1	1	0	0	0	0	16-3584
+chrM	14863	2	0	0	2	0	0	0	16-3584
+chrM	14864	2	2	0	0	0	0	0	16-3584
+chrM	14865	2	1	1	0	0	0	0	16-3584
+chrM	14866	2	0	1	1	0	0	0	16-3584
+chrM	14867	2	0	2	0	0	0	0	16-3584
+chrM	14868	2	0	0	0	2	0	0	16-3584
+chrM	14869	2	1	1	0	0	0	0	16-3584
+chrM	14870	2	1	0	1	0	0	0	16-3584
+chrM	14871	2	0	2	0	0	0	0	16-3584
+chrM	14872	2	1	0	0	1	0	0	16-3584
+chrM	14873	2	1	0	1	0	0	0	16-3584
+chrM	14874	2	0	0	1	1	0	0	16-3584
+chrM	14875	2	1	0	0	1	0	0	16-3584
+chrM	14876	2	0	2	0	0	0	0	16-3584
+chrM	14877	2	0	2	0	0	0	0	16-3584
+chrM	14878	2	0	0	2	0	0	0	16-3584
+chrM	14879	2	0	1	1	0	0	0	16-3584
+chrM	14880	2	0	0	2	0	0	0	16-3584
+chrM	14881	2	0	0	0	2	0	0	16-3584
+chrM	14882	2	0	0	2	0	0	0	16-3584
+chrM	14883	2	1	0	0	1	0	0	16-3584
+chrM	14884	2	0	1	0	1	0	0	16-3584
+chrM	14885	2	0	1	1	0	0	0	16-3584
+chrM	14886	2	0	0	1	1	0	0	16-3584
+chrM	14887	2	0	1	1	0	0	0	16-3584
+chrM	14888	2	0	0	1	1	0	0	16-3584
+chrM	14889	2	0	1	0	1	0	0	16-3584
+chrM	14890	2	1	0	0	1	0	0	16-3584
+chrM	14891	2	0	1	1	0	0	0	16-3584
+chrM	14892	2	0	1	0	1	0	0	16-3584
+chrM	14893	2	1	0	1	0	0	0	16-3584
+chrM	14894	2	1	0	0	1	0	0	16-3584
+chrM	14895	2	2	0	0	0	0	0	16-3584
+chrM	14896	2	0	2	0	0	0	0	16-3584
+chrM	14897	2	0	1	1	0	0	0	16-3584
+chrM	14898	2	0	1	0	1	0	0	16-3584
+chrM	14899	2	0	0	0	2	0	0	16-3584
+chrM	14900	2	1	0	0	1	0	0	16-3584
+chrM	14901	2	1	0	0	1	0	0	16-3584
+chrM	14902	2	0	0	2	0	0	0	16-3584
+chrM	14903	2	1	0	0	1	0	0	16-3584
+chrM	14904	2	1	0	0	1	0	0	16-3584
+chrM	14905	2	1	1	0	0	0	0	16-3584
+chrM	14906	2	0	1	0	1	0	0	16-3584
+chrM	14907	2	0	0	2	0	0	0	16-3584
+chrM	14908	2	0	0	1	1	0	0	16-3584
+chrM	14909	2	0	0	1	1	0	0	16-3584
+chrM	14910	2	0	1	0	1	0	0	16-3584
+chrM	14911	2	1	0	0	1	0	0	16-3584
+chrM	14912	2	1	0	0	1	0	0	16-3584
+chrM	14913	2	2	0	0	0	0	0	16-3584
+chrM	14914	2	1	0	0	1	0	0	16-3584
+chrM	14915	2	1	0	0	1	0	0	16-3584
+chrM	14916	2	1	1	0	0	0	0	16-3584
+chrM	14917	2	0	1	1	0	0	0	16-3584
+chrM	14918	2	1	0	0	1	0	0	16-3584
+chrM	14919	2	1	0	1	0	0	0	16-3584
+chrM	14920	2	0	1	1	0	0	0	16-3584
+chrM	14921	2	1	0	0	1	0	0	16-3584
+chrM	14922	2	0	1	0	1	0	0	16-3584
+chrM	14923	2	0	1	1	0	0	0	16-3584
+chrM	14924	2	0	0	2	0	0	0	16-3584
+chrM	14925	2	1	0	0	1	0	0	16-3584
+chrM	14926	2	0	1	1	0	0	0	16-3584
+chrM	14927	2	0	1	0	1	0	0	16-3584
+chrM	14928	2	0	1	0	1	0	0	16-3584
+chrM	14929	2	0	1	0	1	0	0	16-3584
+chrM	14930	2	1	1	0	0	0	0	16-3584
+chrM	14931	2	1	0	0	1	0	0	16-3584
+chrM	14932	2	0	1	0	1	0	0	16-3584
+chrM	14933	2	0	0	0	2	0	0	16-3584
+chrM	14934	2	1	1	0	0	0	0	16-3584
+chrM	14935	2	0	1	1	0	0	0	16-3584
+chrM	14936	2	1	0	1	0	0	0	16-3584
+chrM	14937	2	1	0	1	0	0	0	16-3584
+chrM	14938	2	1	0	0	1	0	0	16-3584
+chrM	14939	2	1	1	0	0	0	0	16-3584
+chrM	14940	1	0	0	0	1	0	0	16-3584
+chrM	14941	1	0	1	0	0	0	0	16-3584
+chrM	14942	1	0	0	0	1	0	0	16-3584
+chrM	14943	1	0	0	1	0	0	0	16-3584
+chrM	14944	1	0	0	1	0	0	0	16-3584
+chrM	14945	1	0	1	0	0	0	0	16-3584
+chrM	14946	1	0	0	1	0	0	0	16-3584
+chrM	14947	1	0	0	1	0	0	0	16-3584
+chrM	14948	1	1	0	0	0	0	0	16-3584
+chrM	14949	1	1	0	0	0	0	0	16-3584
+chrM	14950	1	0	1	0	0	0	0	16-3584
+chrM	14951	1	1	0	0	0	0	0	16-3584
+chrM	14952	1	0	0	0	1	0	0	16-3584
+chrM	14953	1	0	0	1	0	0	0	16-3584
+chrM	14954	1	0	0	1	0	0	0	16-3584
+chrM	14955	1	0	0	1	0	0	0	16-3584
+chrM	14956	1	0	1	0	0	0	0	16-3584
+chrM	14957	1	0	0	0	1	0	0	16-3584
+chrM	14958	1	1	0	0	0	0	0	16-3584
+chrM	14959	1	1	0	0	0	0	0	16-3584
+chrM	14960	1	0	1	0	0	0	0	16-3584
+chrM	14961	1	1	0	0	0	0	0	16-3584
+chrM	14962	1	0	0	1	0	0	0	16-3584
+chrM	14963	1	1	0	0	0	0	0	16-3584
+chrM	14964	1	0	1	0	0	0	0	16-3584
diff --git a/test/issue225.z.out b/test/issue225.z.out
new file mode 100644
index 0000000..f4fabdf
--- /dev/null
+++ b/test/issue225.z.out
@@ -0,0 +1,16572 @@
+REF	POS	COV	A	C	G	T	DEL	REFSKIP	SAMPLE
+chrM	0	0	0	0	0	0	0	0	16-3584
+chrM	1	0	0	0	0	0	0	0	16-3584
+chrM	2	0	0	0	0	0	0	0	16-3584
+chrM	3	0	0	0	0	0	0	0	16-3584
+chrM	4	0	0	0	0	0	0	0	16-3584
+chrM	5	0	0	0	0	0	0	0	16-3584
+chrM	6	0	0	0	0	0	0	0	16-3584
+chrM	7	0	0	0	0	0	0	0	16-3584
+chrM	8	0	0	0	0	0	0	0	16-3584
+chrM	9	0	0	0	0	0	0	0	16-3584
+chrM	10	0	0	0	0	0	0	0	16-3584
+chrM	11	0	0	0	0	0	0	0	16-3584
+chrM	12	0	0	0	0	0	0	0	16-3584
+chrM	13	0	0	0	0	0	0	0	16-3584
+chrM	14	0	0	0	0	0	0	0	16-3584
+chrM	15	0	0	0	0	0	0	0	16-3584
+chrM	16	0	0	0	0	0	0	0	16-3584
+chrM	17	0	0	0	0	0	0	0	16-3584
+chrM	18	0	0	0	0	0	0	0	16-3584
+chrM	19	0	0	0	0	0	0	0	16-3584
+chrM	20	0	0	0	0	0	0	0	16-3584
+chrM	21	0	0	0	0	0	0	0	16-3584
+chrM	22	0	0	0	0	0	0	0	16-3584
+chrM	23	0	0	0	0	0	0	0	16-3584
+chrM	24	0	0	0	0	0	0	0	16-3584
+chrM	25	0	0	0	0	0	0	0	16-3584
+chrM	26	0	0	0	0	0	0	0	16-3584
+chrM	27	0	0	0	0	0	0	0	16-3584
+chrM	28	0	0	0	0	0	0	0	16-3584
+chrM	29	0	0	0	0	0	0	0	16-3584
+chrM	30	0	0	0	0	0	0	0	16-3584
+chrM	31	0	0	0	0	0	0	0	16-3584
+chrM	32	0	0	0	0	0	0	0	16-3584
+chrM	33	0	0	0	0	0	0	0	16-3584
+chrM	34	0	0	0	0	0	0	0	16-3584
+chrM	35	0	0	0	0	0	0	0	16-3584
+chrM	36	0	0	0	0	0	0	0	16-3584
+chrM	37	0	0	0	0	0	0	0	16-3584
+chrM	38	0	0	0	0	0	0	0	16-3584
+chrM	39	0	0	0	0	0	0	0	16-3584
+chrM	40	0	0	0	0	0	0	0	16-3584
+chrM	41	0	0	0	0	0	0	0	16-3584
+chrM	42	0	0	0	0	0	0	0	16-3584
+chrM	43	0	0	0	0	0	0	0	16-3584
+chrM	44	0	0	0	0	0	0	0	16-3584
+chrM	45	0	0	0	0	0	0	0	16-3584
+chrM	46	0	0	0	0	0	0	0	16-3584
+chrM	47	0	0	0	0	0	0	0	16-3584
+chrM	48	0	0	0	0	0	0	0	16-3584
+chrM	49	0	0	0	0	0	0	0	16-3584
+chrM	50	0	0	0	0	0	0	0	16-3584
+chrM	51	0	0	0	0	0	0	0	16-3584
+chrM	52	0	0	0	0	0	0	0	16-3584
+chrM	53	0	0	0	0	0	0	0	16-3584
+chrM	54	0	0	0	0	0	0	0	16-3584
+chrM	55	0	0	0	0	0	0	0	16-3584
+chrM	56	0	0	0	0	0	0	0	16-3584
+chrM	57	0	0	0	0	0	0	0	16-3584
+chrM	58	0	0	0	0	0	0	0	16-3584
+chrM	59	0	0	0	0	0	0	0	16-3584
+chrM	60	0	0	0	0	0	0	0	16-3584
+chrM	61	0	0	0	0	0	0	0	16-3584
+chrM	62	0	0	0	0	0	0	0	16-3584
+chrM	63	0	0	0	0	0	0	0	16-3584
+chrM	64	0	0	0	0	0	0	0	16-3584
+chrM	65	0	0	0	0	0	0	0	16-3584
+chrM	66	0	0	0	0	0	0	0	16-3584
+chrM	67	0	0	0	0	0	0	0	16-3584
+chrM	68	0	0	0	0	0	0	0	16-3584
+chrM	69	0	0	0	0	0	0	0	16-3584
+chrM	70	0	0	0	0	0	0	0	16-3584
+chrM	71	0	0	0	0	0	0	0	16-3584
+chrM	72	0	0	0	0	0	0	0	16-3584
+chrM	73	0	0	0	0	0	0	0	16-3584
+chrM	74	0	0	0	0	0	0	0	16-3584
+chrM	75	0	0	0	0	0	0	0	16-3584
+chrM	76	0	0	0	0	0	0	0	16-3584
+chrM	77	0	0	0	0	0	0	0	16-3584
+chrM	78	0	0	0	0	0	0	0	16-3584
+chrM	79	0	0	0	0	0	0	0	16-3584
+chrM	80	0	0	0	0	0	0	0	16-3584
+chrM	81	0	0	0	0	0	0	0	16-3584
+chrM	82	0	0	0	0	0	0	0	16-3584
+chrM	83	0	0	0	0	0	0	0	16-3584
+chrM	84	0	0	0	0	0	0	0	16-3584
+chrM	85	0	0	0	0	0	0	0	16-3584
+chrM	86	0	0	0	0	0	0	0	16-3584
+chrM	87	0	0	0	0	0	0	0	16-3584
+chrM	88	0	0	0	0	0	0	0	16-3584
+chrM	89	0	0	0	0	0	0	0	16-3584
+chrM	90	0	0	0	0	0	0	0	16-3584
+chrM	91	0	0	0	0	0	0	0	16-3584
+chrM	92	0	0	0	0	0	0	0	16-3584
+chrM	93	0	0	0	0	0	0	0	16-3584
+chrM	94	0	0	0	0	0	0	0	16-3584
+chrM	95	0	0	0	0	0	0	0	16-3584
+chrM	96	0	0	0	0	0	0	0	16-3584
+chrM	97	0	0	0	0	0	0	0	16-3584
+chrM	98	0	0	0	0	0	0	0	16-3584
+chrM	99	0	0	0	0	0	0	0	16-3584
+chrM	100	0	0	0	0	0	0	0	16-3584
+chrM	101	0	0	0	0	0	0	0	16-3584
+chrM	102	0	0	0	0	0	0	0	16-3584
+chrM	103	0	0	0	0	0	0	0	16-3584
+chrM	104	0	0	0	0	0	0	0	16-3584
+chrM	105	0	0	0	0	0	0	0	16-3584
+chrM	106	0	0	0	0	0	0	0	16-3584
+chrM	107	0	0	0	0	0	0	0	16-3584
+chrM	108	0	0	0	0	0	0	0	16-3584
+chrM	109	0	0	0	0	0	0	0	16-3584
+chrM	110	0	0	0	0	0	0	0	16-3584
+chrM	111	0	0	0	0	0	0	0	16-3584
+chrM	112	0	0	0	0	0	0	0	16-3584
+chrM	113	0	0	0	0	0	0	0	16-3584
+chrM	114	0	0	0	0	0	0	0	16-3584
+chrM	115	0	0	0	0	0	0	0	16-3584
+chrM	116	0	0	0	0	0	0	0	16-3584
+chrM	117	0	0	0	0	0	0	0	16-3584
+chrM	118	0	0	0	0	0	0	0	16-3584
+chrM	119	0	0	0	0	0	0	0	16-3584
+chrM	120	0	0	0	0	0	0	0	16-3584
+chrM	121	0	0	0	0	0	0	0	16-3584
+chrM	122	0	0	0	0	0	0	0	16-3584
+chrM	123	0	0	0	0	0	0	0	16-3584
+chrM	124	0	0	0	0	0	0	0	16-3584
+chrM	125	0	0	0	0	0	0	0	16-3584
+chrM	126	0	0	0	0	0	0	0	16-3584
+chrM	127	0	0	0	0	0	0	0	16-3584
+chrM	128	0	0	0	0	0	0	0	16-3584
+chrM	129	0	0	0	0	0	0	0	16-3584
+chrM	130	0	0	0	0	0	0	0	16-3584
+chrM	131	0	0	0	0	0	0	0	16-3584
+chrM	132	0	0	0	0	0	0	0	16-3584
+chrM	133	0	0	0	0	0	0	0	16-3584
+chrM	134	0	0	0	0	0	0	0	16-3584
+chrM	135	0	0	0	0	0	0	0	16-3584
+chrM	136	0	0	0	0	0	0	0	16-3584
+chrM	137	0	0	0	0	0	0	0	16-3584
+chrM	138	0	0	0	0	0	0	0	16-3584
+chrM	139	0	0	0	0	0	0	0	16-3584
+chrM	140	0	0	0	0	0	0	0	16-3584
+chrM	141	0	0	0	0	0	0	0	16-3584
+chrM	142	0	0	0	0	0	0	0	16-3584
+chrM	143	0	0	0	0	0	0	0	16-3584
+chrM	144	0	0	0	0	0	0	0	16-3584
+chrM	145	0	0	0	0	0	0	0	16-3584
+chrM	146	0	0	0	0	0	0	0	16-3584
+chrM	147	0	0	0	0	0	0	0	16-3584
+chrM	148	0	0	0	0	0	0	0	16-3584
+chrM	149	0	0	0	0	0	0	0	16-3584
+chrM	150	0	0	0	0	0	0	0	16-3584
+chrM	151	0	0	0	0	0	0	0	16-3584
+chrM	152	0	0	0	0	0	0	0	16-3584
+chrM	153	0	0	0	0	0	0	0	16-3584
+chrM	154	0	0	0	0	0	0	0	16-3584
+chrM	155	0	0	0	0	0	0	0	16-3584
+chrM	156	0	0	0	0	0	0	0	16-3584
+chrM	157	0	0	0	0	0	0	0	16-3584
+chrM	158	0	0	0	0	0	0	0	16-3584
+chrM	159	0	0	0	0	0	0	0	16-3584
+chrM	160	0	0	0	0	0	0	0	16-3584
+chrM	161	0	0	0	0	0	0	0	16-3584
+chrM	162	0	0	0	0	0	0	0	16-3584
+chrM	163	0	0	0	0	0	0	0	16-3584
+chrM	164	0	0	0	0	0	0	0	16-3584
+chrM	165	0	0	0	0	0	0	0	16-3584
+chrM	166	0	0	0	0	0	0	0	16-3584
+chrM	167	0	0	0	0	0	0	0	16-3584
+chrM	168	0	0	0	0	0	0	0	16-3584
+chrM	169	0	0	0	0	0	0	0	16-3584
+chrM	170	0	0	0	0	0	0	0	16-3584
+chrM	171	0	0	0	0	0	0	0	16-3584
+chrM	172	0	0	0	0	0	0	0	16-3584
+chrM	173	0	0	0	0	0	0	0	16-3584
+chrM	174	0	0	0	0	0	0	0	16-3584
+chrM	175	0	0	0	0	0	0	0	16-3584
+chrM	176	0	0	0	0	0	0	0	16-3584
+chrM	177	0	0	0	0	0	0	0	16-3584
+chrM	178	0	0	0	0	0	0	0	16-3584
+chrM	179	0	0	0	0	0	0	0	16-3584
+chrM	180	0	0	0	0	0	0	0	16-3584
+chrM	181	0	0	0	0	0	0	0	16-3584
+chrM	182	0	0	0	0	0	0	0	16-3584
+chrM	183	0	0	0	0	0	0	0	16-3584
+chrM	184	0	0	0	0	0	0	0	16-3584
+chrM	185	0	0	0	0	0	0	0	16-3584
+chrM	186	0	0	0	0	0	0	0	16-3584
+chrM	187	0	0	0	0	0	0	0	16-3584
+chrM	188	0	0	0	0	0	0	0	16-3584
+chrM	189	0	0	0	0	0	0	0	16-3584
+chrM	190	0	0	0	0	0	0	0	16-3584
+chrM	191	0	0	0	0	0	0	0	16-3584
+chrM	192	0	0	0	0	0	0	0	16-3584
+chrM	193	0	0	0	0	0	0	0	16-3584
+chrM	194	0	0	0	0	0	0	0	16-3584
+chrM	195	0	0	0	0	0	0	0	16-3584
+chrM	196	0	0	0	0	0	0	0	16-3584
+chrM	197	0	0	0	0	0	0	0	16-3584
+chrM	198	0	0	0	0	0	0	0	16-3584
+chrM	199	0	0	0	0	0	0	0	16-3584
+chrM	200	0	0	0	0	0	0	0	16-3584
+chrM	201	0	0	0	0	0	0	0	16-3584
+chrM	202	0	0	0	0	0	0	0	16-3584
+chrM	203	0	0	0	0	0	0	0	16-3584
+chrM	204	0	0	0	0	0	0	0	16-3584
+chrM	205	0	0	0	0	0	0	0	16-3584
+chrM	206	0	0	0	0	0	0	0	16-3584
+chrM	207	0	0	0	0	0	0	0	16-3584
+chrM	208	0	0	0	0	0	0	0	16-3584
+chrM	209	0	0	0	0	0	0	0	16-3584
+chrM	210	0	0	0	0	0	0	0	16-3584
+chrM	211	0	0	0	0	0	0	0	16-3584
+chrM	212	0	0	0	0	0	0	0	16-3584
+chrM	213	0	0	0	0	0	0	0	16-3584
+chrM	214	0	0	0	0	0	0	0	16-3584
+chrM	215	0	0	0	0	0	0	0	16-3584
+chrM	216	0	0	0	0	0	0	0	16-3584
+chrM	217	0	0	0	0	0	0	0	16-3584
+chrM	218	0	0	0	0	0	0	0	16-3584
+chrM	219	0	0	0	0	0	0	0	16-3584
+chrM	220	0	0	0	0	0	0	0	16-3584
+chrM	221	0	0	0	0	0	0	0	16-3584
+chrM	222	0	0	0	0	0	0	0	16-3584
+chrM	223	0	0	0	0	0	0	0	16-3584
+chrM	224	0	0	0	0	0	0	0	16-3584
+chrM	225	0	0	0	0	0	0	0	16-3584
+chrM	226	0	0	0	0	0	0	0	16-3584
+chrM	227	0	0	0	0	0	0	0	16-3584
+chrM	228	0	0	0	0	0	0	0	16-3584
+chrM	229	0	0	0	0	0	0	0	16-3584
+chrM	230	0	0	0	0	0	0	0	16-3584
+chrM	231	0	0	0	0	0	0	0	16-3584
+chrM	232	0	0	0	0	0	0	0	16-3584
+chrM	233	0	0	0	0	0	0	0	16-3584
+chrM	234	0	0	0	0	0	0	0	16-3584
+chrM	235	0	0	0	0	0	0	0	16-3584
+chrM	236	0	0	0	0	0	0	0	16-3584
+chrM	237	0	0	0	0	0	0	0	16-3584
+chrM	238	0	0	0	0	0	0	0	16-3584
+chrM	239	0	0	0	0	0	0	0	16-3584
+chrM	240	0	0	0	0	0	0	0	16-3584
+chrM	241	0	0	0	0	0	0	0	16-3584
+chrM	242	0	0	0	0	0	0	0	16-3584
+chrM	243	0	0	0	0	0	0	0	16-3584
+chrM	244	0	0	0	0	0	0	0	16-3584
+chrM	245	0	0	0	0	0	0	0	16-3584
+chrM	246	0	0	0	0	0	0	0	16-3584
+chrM	247	0	0	0	0	0	0	0	16-3584
+chrM	248	0	0	0	0	0	0	0	16-3584
+chrM	249	0	0	0	0	0	0	0	16-3584
+chrM	250	0	0	0	0	0	0	0	16-3584
+chrM	251	0	0	0	0	0	0	0	16-3584
+chrM	252	0	0	0	0	0	0	0	16-3584
+chrM	253	0	0	0	0	0	0	0	16-3584
+chrM	254	0	0	0	0	0	0	0	16-3584
+chrM	255	0	0	0	0	0	0	0	16-3584
+chrM	256	0	0	0	0	0	0	0	16-3584
+chrM	257	0	0	0	0	0	0	0	16-3584
+chrM	258	0	0	0	0	0	0	0	16-3584
+chrM	259	0	0	0	0	0	0	0	16-3584
+chrM	260	0	0	0	0	0	0	0	16-3584
+chrM	261	0	0	0	0	0	0	0	16-3584
+chrM	262	0	0	0	0	0	0	0	16-3584
+chrM	263	0	0	0	0	0	0	0	16-3584
+chrM	264	0	0	0	0	0	0	0	16-3584
+chrM	265	0	0	0	0	0	0	0	16-3584
+chrM	266	0	0	0	0	0	0	0	16-3584
+chrM	267	0	0	0	0	0	0	0	16-3584
+chrM	268	0	0	0	0	0	0	0	16-3584
+chrM	269	0	0	0	0	0	0	0	16-3584
+chrM	270	0	0	0	0	0	0	0	16-3584
+chrM	271	0	0	0	0	0	0	0	16-3584
+chrM	272	0	0	0	0	0	0	0	16-3584
+chrM	273	0	0	0	0	0	0	0	16-3584
+chrM	274	0	0	0	0	0	0	0	16-3584
+chrM	275	0	0	0	0	0	0	0	16-3584
+chrM	276	0	0	0	0	0	0	0	16-3584
+chrM	277	0	0	0	0	0	0	0	16-3584
+chrM	278	0	0	0	0	0	0	0	16-3584
+chrM	279	0	0	0	0	0	0	0	16-3584
+chrM	280	0	0	0	0	0	0	0	16-3584
+chrM	281	0	0	0	0	0	0	0	16-3584
+chrM	282	0	0	0	0	0	0	0	16-3584
+chrM	283	0	0	0	0	0	0	0	16-3584
+chrM	284	0	0	0	0	0	0	0	16-3584
+chrM	285	0	0	0	0	0	0	0	16-3584
+chrM	286	0	0	0	0	0	0	0	16-3584
+chrM	287	0	0	0	0	0	0	0	16-3584
+chrM	288	0	0	0	0	0	0	0	16-3584
+chrM	289	0	0	0	0	0	0	0	16-3584
+chrM	290	0	0	0	0	0	0	0	16-3584
+chrM	291	0	0	0	0	0	0	0	16-3584
+chrM	292	0	0	0	0	0	0	0	16-3584
+chrM	293	0	0	0	0	0	0	0	16-3584
+chrM	294	0	0	0	0	0	0	0	16-3584
+chrM	295	0	0	0	0	0	0	0	16-3584
+chrM	296	0	0	0	0	0	0	0	16-3584
+chrM	297	0	0	0	0	0	0	0	16-3584
+chrM	298	0	0	0	0	0	0	0	16-3584
+chrM	299	0	0	0	0	0	0	0	16-3584
+chrM	300	0	0	0	0	0	0	0	16-3584
+chrM	301	0	0	0	0	0	0	0	16-3584
+chrM	302	0	0	0	0	0	0	0	16-3584
+chrM	303	0	0	0	0	0	0	0	16-3584
+chrM	304	0	0	0	0	0	0	0	16-3584
+chrM	305	0	0	0	0	0	0	0	16-3584
+chrM	306	0	0	0	0	0	0	0	16-3584
+chrM	307	0	0	0	0	0	0	0	16-3584
+chrM	308	0	0	0	0	0	0	0	16-3584
+chrM	309	0	0	0	0	0	0	0	16-3584
+chrM	310	0	0	0	0	0	0	0	16-3584
+chrM	311	0	0	0	0	0	0	0	16-3584
+chrM	312	0	0	0	0	0	0	0	16-3584
+chrM	313	0	0	0	0	0	0	0	16-3584
+chrM	314	0	0	0	0	0	0	0	16-3584
+chrM	315	0	0	0	0	0	0	0	16-3584
+chrM	316	0	0	0	0	0	0	0	16-3584
+chrM	317	0	0	0	0	0	0	0	16-3584
+chrM	318	0	0	0	0	0	0	0	16-3584
+chrM	319	0	0	0	0	0	0	0	16-3584
+chrM	320	0	0	0	0	0	0	0	16-3584
+chrM	321	0	0	0	0	0	0	0	16-3584
+chrM	322	0	0	0	0	0	0	0	16-3584
+chrM	323	0	0	0	0	0	0	0	16-3584
+chrM	324	0	0	0	0	0	0	0	16-3584
+chrM	325	0	0	0	0	0	0	0	16-3584
+chrM	326	0	0	0	0	0	0	0	16-3584
+chrM	327	0	0	0	0	0	0	0	16-3584
+chrM	328	0	0	0	0	0	0	0	16-3584
+chrM	329	0	0	0	0	0	0	0	16-3584
+chrM	330	0	0	0	0	0	0	0	16-3584
+chrM	331	0	0	0	0	0	0	0	16-3584
+chrM	332	0	0	0	0	0	0	0	16-3584
+chrM	333	0	0	0	0	0	0	0	16-3584
+chrM	334	0	0	0	0	0	0	0	16-3584
+chrM	335	0	0	0	0	0	0	0	16-3584
+chrM	336	0	0	0	0	0	0	0	16-3584
+chrM	337	0	0	0	0	0	0	0	16-3584
+chrM	338	0	0	0	0	0	0	0	16-3584
+chrM	339	0	0	0	0	0	0	0	16-3584
+chrM	340	0	0	0	0	0	0	0	16-3584
+chrM	341	0	0	0	0	0	0	0	16-3584
+chrM	342	0	0	0	0	0	0	0	16-3584
+chrM	343	0	0	0	0	0	0	0	16-3584
+chrM	344	0	0	0	0	0	0	0	16-3584
+chrM	345	0	0	0	0	0	0	0	16-3584
+chrM	346	0	0	0	0	0	0	0	16-3584
+chrM	347	0	0	0	0	0	0	0	16-3584
+chrM	348	0	0	0	0	0	0	0	16-3584
+chrM	349	0	0	0	0	0	0	0	16-3584
+chrM	350	0	0	0	0	0	0	0	16-3584
+chrM	351	0	0	0	0	0	0	0	16-3584
+chrM	352	0	0	0	0	0	0	0	16-3584
+chrM	353	0	0	0	0	0	0	0	16-3584
+chrM	354	0	0	0	0	0	0	0	16-3584
+chrM	355	0	0	0	0	0	0	0	16-3584
+chrM	356	0	0	0	0	0	0	0	16-3584
+chrM	357	0	0	0	0	0	0	0	16-3584
+chrM	358	0	0	0	0	0	0	0	16-3584
+chrM	359	0	0	0	0	0	0	0	16-3584
+chrM	360	0	0	0	0	0	0	0	16-3584
+chrM	361	0	0	0	0	0	0	0	16-3584
+chrM	362	0	0	0	0	0	0	0	16-3584
+chrM	363	0	0	0	0	0	0	0	16-3584
+chrM	364	0	0	0	0	0	0	0	16-3584
+chrM	365	0	0	0	0	0	0	0	16-3584
+chrM	366	0	0	0	0	0	0	0	16-3584
+chrM	367	0	0	0	0	0	0	0	16-3584
+chrM	368	0	0	0	0	0	0	0	16-3584
+chrM	369	0	0	0	0	0	0	0	16-3584
+chrM	370	0	0	0	0	0	0	0	16-3584
+chrM	371	0	0	0	0	0	0	0	16-3584
+chrM	372	0	0	0	0	0	0	0	16-3584
+chrM	373	0	0	0	0	0	0	0	16-3584
+chrM	374	0	0	0	0	0	0	0	16-3584
+chrM	375	0	0	0	0	0	0	0	16-3584
+chrM	376	0	0	0	0	0	0	0	16-3584
+chrM	377	0	0	0	0	0	0	0	16-3584
+chrM	378	0	0	0	0	0	0	0	16-3584
+chrM	379	0	0	0	0	0	0	0	16-3584
+chrM	380	0	0	0	0	0	0	0	16-3584
+chrM	381	0	0	0	0	0	0	0	16-3584
+chrM	382	0	0	0	0	0	0	0	16-3584
+chrM	383	0	0	0	0	0	0	0	16-3584
+chrM	384	0	0	0	0	0	0	0	16-3584
+chrM	385	0	0	0	0	0	0	0	16-3584
+chrM	386	0	0	0	0	0	0	0	16-3584
+chrM	387	0	0	0	0	0	0	0	16-3584
+chrM	388	0	0	0	0	0	0	0	16-3584
+chrM	389	0	0	0	0	0	0	0	16-3584
+chrM	390	0	0	0	0	0	0	0	16-3584
+chrM	391	0	0	0	0	0	0	0	16-3584
+chrM	392	0	0	0	0	0	0	0	16-3584
+chrM	393	0	0	0	0	0	0	0	16-3584
+chrM	394	0	0	0	0	0	0	0	16-3584
+chrM	395	0	0	0	0	0	0	0	16-3584
+chrM	396	0	0	0	0	0	0	0	16-3584
+chrM	397	0	0	0	0	0	0	0	16-3584
+chrM	398	0	0	0	0	0	0	0	16-3584
+chrM	399	0	0	0	0	0	0	0	16-3584
+chrM	400	0	0	0	0	0	0	0	16-3584
+chrM	401	0	0	0	0	0	0	0	16-3584
+chrM	402	0	0	0	0	0	0	0	16-3584
+chrM	403	0	0	0	0	0	0	0	16-3584
+chrM	404	0	0	0	0	0	0	0	16-3584
+chrM	405	0	0	0	0	0	0	0	16-3584
+chrM	406	0	0	0	0	0	0	0	16-3584
+chrM	407	0	0	0	0	0	0	0	16-3584
+chrM	408	0	0	0	0	0	0	0	16-3584
+chrM	409	0	0	0	0	0	0	0	16-3584
+chrM	410	0	0	0	0	0	0	0	16-3584
+chrM	411	0	0	0	0	0	0	0	16-3584
+chrM	412	0	0	0	0	0	0	0	16-3584
+chrM	413	0	0	0	0	0	0	0	16-3584
+chrM	414	0	0	0	0	0	0	0	16-3584
+chrM	415	0	0	0	0	0	0	0	16-3584
+chrM	416	0	0	0	0	0	0	0	16-3584
+chrM	417	0	0	0	0	0	0	0	16-3584
+chrM	418	0	0	0	0	0	0	0	16-3584
+chrM	419	0	0	0	0	0	0	0	16-3584
+chrM	420	0	0	0	0	0	0	0	16-3584
+chrM	421	0	0	0	0	0	0	0	16-3584
+chrM	422	0	0	0	0	0	0	0	16-3584
+chrM	423	0	0	0	0	0	0	0	16-3584
+chrM	424	0	0	0	0	0	0	0	16-3584
+chrM	425	0	0	0	0	0	0	0	16-3584
+chrM	426	0	0	0	0	0	0	0	16-3584
+chrM	427	0	0	0	0	0	0	0	16-3584
+chrM	428	0	0	0	0	0	0	0	16-3584
+chrM	429	0	0	0	0	0	0	0	16-3584
+chrM	430	0	0	0	0	0	0	0	16-3584
+chrM	431	0	0	0	0	0	0	0	16-3584
+chrM	432	0	0	0	0	0	0	0	16-3584
+chrM	433	0	0	0	0	0	0	0	16-3584
+chrM	434	0	0	0	0	0	0	0	16-3584
+chrM	435	0	0	0	0	0	0	0	16-3584
+chrM	436	0	0	0	0	0	0	0	16-3584
+chrM	437	0	0	0	0	0	0	0	16-3584
+chrM	438	0	0	0	0	0	0	0	16-3584
+chrM	439	0	0	0	0	0	0	0	16-3584
+chrM	440	0	0	0	0	0	0	0	16-3584
+chrM	441	0	0	0	0	0	0	0	16-3584
+chrM	442	0	0	0	0	0	0	0	16-3584
+chrM	443	0	0	0	0	0	0	0	16-3584
+chrM	444	0	0	0	0	0	0	0	16-3584
+chrM	445	0	0	0	0	0	0	0	16-3584
+chrM	446	0	0	0	0	0	0	0	16-3584
+chrM	447	0	0	0	0	0	0	0	16-3584
+chrM	448	0	0	0	0	0	0	0	16-3584
+chrM	449	0	0	0	0	0	0	0	16-3584
+chrM	450	0	0	0	0	0	0	0	16-3584
+chrM	451	0	0	0	0	0	0	0	16-3584
+chrM	452	0	0	0	0	0	0	0	16-3584
+chrM	453	0	0	0	0	0	0	0	16-3584
+chrM	454	0	0	0	0	0	0	0	16-3584
+chrM	455	0	0	0	0	0	0	0	16-3584
+chrM	456	0	0	0	0	0	0	0	16-3584
+chrM	457	0	0	0	0	0	0	0	16-3584
+chrM	458	0	0	0	0	0	0	0	16-3584
+chrM	459	0	0	0	0	0	0	0	16-3584
+chrM	460	0	0	0	0	0	0	0	16-3584
+chrM	461	0	0	0	0	0	0	0	16-3584
+chrM	462	0	0	0	0	0	0	0	16-3584
+chrM	463	0	0	0	0	0	0	0	16-3584
+chrM	464	0	0	0	0	0	0	0	16-3584
+chrM	465	0	0	0	0	0	0	0	16-3584
+chrM	466	0	0	0	0	0	0	0	16-3584
+chrM	467	0	0	0	0	0	0	0	16-3584
+chrM	468	0	0	0	0	0	0	0	16-3584
+chrM	469	0	0	0	0	0	0	0	16-3584
+chrM	470	0	0	0	0	0	0	0	16-3584
+chrM	471	0	0	0	0	0	0	0	16-3584
+chrM	472	0	0	0	0	0	0	0	16-3584
+chrM	473	0	0	0	0	0	0	0	16-3584
+chrM	474	0	0	0	0	0	0	0	16-3584
+chrM	475	0	0	0	0	0	0	0	16-3584
+chrM	476	0	0	0	0	0	0	0	16-3584
+chrM	477	0	0	0	0	0	0	0	16-3584
+chrM	478	0	0	0	0	0	0	0	16-3584
+chrM	479	0	0	0	0	0	0	0	16-3584
+chrM	480	0	0	0	0	0	0	0	16-3584
+chrM	481	0	0	0	0	0	0	0	16-3584
+chrM	482	0	0	0	0	0	0	0	16-3584
+chrM	483	0	0	0	0	0	0	0	16-3584
+chrM	484	0	0	0	0	0	0	0	16-3584
+chrM	485	0	0	0	0	0	0	0	16-3584
+chrM	486	0	0	0	0	0	0	0	16-3584
+chrM	487	0	0	0	0	0	0	0	16-3584
+chrM	488	0	0	0	0	0	0	0	16-3584
+chrM	489	0	0	0	0	0	0	0	16-3584
+chrM	490	0	0	0	0	0	0	0	16-3584
+chrM	491	0	0	0	0	0	0	0	16-3584
+chrM	492	0	0	0	0	0	0	0	16-3584
+chrM	493	0	0	0	0	0	0	0	16-3584
+chrM	494	0	0	0	0	0	0	0	16-3584
+chrM	495	0	0	0	0	0	0	0	16-3584
+chrM	496	0	0	0	0	0	0	0	16-3584
+chrM	497	0	0	0	0	0	0	0	16-3584
+chrM	498	0	0	0	0	0	0	0	16-3584
+chrM	499	0	0	0	0	0	0	0	16-3584
+chrM	500	0	0	0	0	0	0	0	16-3584
+chrM	501	0	0	0	0	0	0	0	16-3584
+chrM	502	0	0	0	0	0	0	0	16-3584
+chrM	503	0	0	0	0	0	0	0	16-3584
+chrM	504	0	0	0	0	0	0	0	16-3584
+chrM	505	0	0	0	0	0	0	0	16-3584
+chrM	506	0	0	0	0	0	0	0	16-3584
+chrM	507	0	0	0	0	0	0	0	16-3584
+chrM	508	0	0	0	0	0	0	0	16-3584
+chrM	509	0	0	0	0	0	0	0	16-3584
+chrM	510	0	0	0	0	0	0	0	16-3584
+chrM	511	0	0	0	0	0	0	0	16-3584
+chrM	512	0	0	0	0	0	0	0	16-3584
+chrM	513	0	0	0	0	0	0	0	16-3584
+chrM	514	0	0	0	0	0	0	0	16-3584
+chrM	515	0	0	0	0	0	0	0	16-3584
+chrM	516	0	0	0	0	0	0	0	16-3584
+chrM	517	0	0	0	0	0	0	0	16-3584
+chrM	518	0	0	0	0	0	0	0	16-3584
+chrM	519	0	0	0	0	0	0	0	16-3584
+chrM	520	0	0	0	0	0	0	0	16-3584
+chrM	521	0	0	0	0	0	0	0	16-3584
+chrM	522	0	0	0	0	0	0	0	16-3584
+chrM	523	0	0	0	0	0	0	0	16-3584
+chrM	524	0	0	0	0	0	0	0	16-3584
+chrM	525	0	0	0	0	0	0	0	16-3584
+chrM	526	0	0	0	0	0	0	0	16-3584
+chrM	527	0	0	0	0	0	0	0	16-3584
+chrM	528	0	0	0	0	0	0	0	16-3584
+chrM	529	0	0	0	0	0	0	0	16-3584
+chrM	530	0	0	0	0	0	0	0	16-3584
+chrM	531	0	0	0	0	0	0	0	16-3584
+chrM	532	0	0	0	0	0	0	0	16-3584
+chrM	533	0	0	0	0	0	0	0	16-3584
+chrM	534	0	0	0	0	0	0	0	16-3584
+chrM	535	0	0	0	0	0	0	0	16-3584
+chrM	536	0	0	0	0	0	0	0	16-3584
+chrM	537	0	0	0	0	0	0	0	16-3584
+chrM	538	0	0	0	0	0	0	0	16-3584
+chrM	539	0	0	0	0	0	0	0	16-3584
+chrM	540	0	0	0	0	0	0	0	16-3584
+chrM	541	0	0	0	0	0	0	0	16-3584
+chrM	542	0	0	0	0	0	0	0	16-3584
+chrM	543	0	0	0	0	0	0	0	16-3584
+chrM	544	0	0	0	0	0	0	0	16-3584
+chrM	545	0	0	0	0	0	0	0	16-3584
+chrM	546	0	0	0	0	0	0	0	16-3584
+chrM	547	0	0	0	0	0	0	0	16-3584
+chrM	548	0	0	0	0	0	0	0	16-3584
+chrM	549	0	0	0	0	0	0	0	16-3584
+chrM	550	0	0	0	0	0	0	0	16-3584
+chrM	551	0	0	0	0	0	0	0	16-3584
+chrM	552	0	0	0	0	0	0	0	16-3584
+chrM	553	0	0	0	0	0	0	0	16-3584
+chrM	554	0	0	0	0	0	0	0	16-3584
+chrM	555	0	0	0	0	0	0	0	16-3584
+chrM	556	0	0	0	0	0	0	0	16-3584
+chrM	557	0	0	0	0	0	0	0	16-3584
+chrM	558	0	0	0	0	0	0	0	16-3584
+chrM	559	0	0	0	0	0	0	0	16-3584
+chrM	560	0	0	0	0	0	0	0	16-3584
+chrM	561	0	0	0	0	0	0	0	16-3584
+chrM	562	0	0	0	0	0	0	0	16-3584
+chrM	563	0	0	0	0	0	0	0	16-3584
+chrM	564	0	0	0	0	0	0	0	16-3584
+chrM	565	0	0	0	0	0	0	0	16-3584
+chrM	566	0	0	0	0	0	0	0	16-3584
+chrM	567	0	0	0	0	0	0	0	16-3584
+chrM	568	0	0	0	0	0	0	0	16-3584
+chrM	569	0	0	0	0	0	0	0	16-3584
+chrM	570	0	0	0	0	0	0	0	16-3584
+chrM	571	0	0	0	0	0	0	0	16-3584
+chrM	572	0	0	0	0	0	0	0	16-3584
+chrM	573	0	0	0	0	0	0	0	16-3584
+chrM	574	0	0	0	0	0	0	0	16-3584
+chrM	575	0	0	0	0	0	0	0	16-3584
+chrM	576	0	0	0	0	0	0	0	16-3584
+chrM	577	0	0	0	0	0	0	0	16-3584
+chrM	578	0	0	0	0	0	0	0	16-3584
+chrM	579	0	0	0	0	0	0	0	16-3584
+chrM	580	0	0	0	0	0	0	0	16-3584
+chrM	581	0	0	0	0	0	0	0	16-3584
+chrM	582	0	0	0	0	0	0	0	16-3584
+chrM	583	0	0	0	0	0	0	0	16-3584
+chrM	584	0	0	0	0	0	0	0	16-3584
+chrM	585	0	0	0	0	0	0	0	16-3584
+chrM	586	0	0	0	0	0	0	0	16-3584
+chrM	587	0	0	0	0	0	0	0	16-3584
+chrM	588	0	0	0	0	0	0	0	16-3584
+chrM	589	0	0	0	0	0	0	0	16-3584
+chrM	590	0	0	0	0	0	0	0	16-3584
+chrM	591	0	0	0	0	0	0	0	16-3584
+chrM	592	0	0	0	0	0	0	0	16-3584
+chrM	593	0	0	0	0	0	0	0	16-3584
+chrM	594	0	0	0	0	0	0	0	16-3584
+chrM	595	0	0	0	0	0	0	0	16-3584
+chrM	596	0	0	0	0	0	0	0	16-3584
+chrM	597	0	0	0	0	0	0	0	16-3584
+chrM	598	0	0	0	0	0	0	0	16-3584
+chrM	599	0	0	0	0	0	0	0	16-3584
+chrM	600	0	0	0	0	0	0	0	16-3584
+chrM	601	0	0	0	0	0	0	0	16-3584
+chrM	602	0	0	0	0	0	0	0	16-3584
+chrM	603	0	0	0	0	0	0	0	16-3584
+chrM	604	0	0	0	0	0	0	0	16-3584
+chrM	605	0	0	0	0	0	0	0	16-3584
+chrM	606	0	0	0	0	0	0	0	16-3584
+chrM	607	0	0	0	0	0	0	0	16-3584
+chrM	608	0	0	0	0	0	0	0	16-3584
+chrM	609	0	0	0	0	0	0	0	16-3584
+chrM	610	0	0	0	0	0	0	0	16-3584
+chrM	611	0	0	0	0	0	0	0	16-3584
+chrM	612	0	0	0	0	0	0	0	16-3584
+chrM	613	0	0	0	0	0	0	0	16-3584
+chrM	614	0	0	0	0	0	0	0	16-3584
+chrM	615	0	0	0	0	0	0	0	16-3584
+chrM	616	0	0	0	0	0	0	0	16-3584
+chrM	617	0	0	0	0	0	0	0	16-3584
+chrM	618	0	0	0	0	0	0	0	16-3584
+chrM	619	0	0	0	0	0	0	0	16-3584
+chrM	620	0	0	0	0	0	0	0	16-3584
+chrM	621	0	0	0	0	0	0	0	16-3584
+chrM	622	0	0	0	0	0	0	0	16-3584
+chrM	623	0	0	0	0	0	0	0	16-3584
+chrM	624	0	0	0	0	0	0	0	16-3584
+chrM	625	0	0	0	0	0	0	0	16-3584
+chrM	626	0	0	0	0	0	0	0	16-3584
+chrM	627	0	0	0	0	0	0	0	16-3584
+chrM	628	0	0	0	0	0	0	0	16-3584
+chrM	629	0	0	0	0	0	0	0	16-3584
+chrM	630	0	0	0	0	0	0	0	16-3584
+chrM	631	0	0	0	0	0	0	0	16-3584
+chrM	632	0	0	0	0	0	0	0	16-3584
+chrM	633	0	0	0	0	0	0	0	16-3584
+chrM	634	0	0	0	0	0	0	0	16-3584
+chrM	635	0	0	0	0	0	0	0	16-3584
+chrM	636	0	0	0	0	0	0	0	16-3584
+chrM	637	0	0	0	0	0	0	0	16-3584
+chrM	638	0	0	0	0	0	0	0	16-3584
+chrM	639	0	0	0	0	0	0	0	16-3584
+chrM	640	0	0	0	0	0	0	0	16-3584
+chrM	641	0	0	0	0	0	0	0	16-3584
+chrM	642	0	0	0	0	0	0	0	16-3584
+chrM	643	0	0	0	0	0	0	0	16-3584
+chrM	644	0	0	0	0	0	0	0	16-3584
+chrM	645	0	0	0	0	0	0	0	16-3584
+chrM	646	0	0	0	0	0	0	0	16-3584
+chrM	647	0	0	0	0	0	0	0	16-3584
+chrM	648	0	0	0	0	0	0	0	16-3584
+chrM	649	0	0	0	0	0	0	0	16-3584
+chrM	650	0	0	0	0	0	0	0	16-3584
+chrM	651	0	0	0	0	0	0	0	16-3584
+chrM	652	0	0	0	0	0	0	0	16-3584
+chrM	653	0	0	0	0	0	0	0	16-3584
+chrM	654	0	0	0	0	0	0	0	16-3584
+chrM	655	0	0	0	0	0	0	0	16-3584
+chrM	656	0	0	0	0	0	0	0	16-3584
+chrM	657	0	0	0	0	0	0	0	16-3584
+chrM	658	0	0	0	0	0	0	0	16-3584
+chrM	659	0	0	0	0	0	0	0	16-3584
+chrM	660	0	0	0	0	0	0	0	16-3584
+chrM	661	0	0	0	0	0	0	0	16-3584
+chrM	662	0	0	0	0	0	0	0	16-3584
+chrM	663	0	0	0	0	0	0	0	16-3584
+chrM	664	0	0	0	0	0	0	0	16-3584
+chrM	665	0	0	0	0	0	0	0	16-3584
+chrM	666	0	0	0	0	0	0	0	16-3584
+chrM	667	0	0	0	0	0	0	0	16-3584
+chrM	668	0	0	0	0	0	0	0	16-3584
+chrM	669	0	0	0	0	0	0	0	16-3584
+chrM	670	0	0	0	0	0	0	0	16-3584
+chrM	671	0	0	0	0	0	0	0	16-3584
+chrM	672	0	0	0	0	0	0	0	16-3584
+chrM	673	0	0	0	0	0	0	0	16-3584
+chrM	674	0	0	0	0	0	0	0	16-3584
+chrM	675	0	0	0	0	0	0	0	16-3584
+chrM	676	0	0	0	0	0	0	0	16-3584
+chrM	677	0	0	0	0	0	0	0	16-3584
+chrM	678	0	0	0	0	0	0	0	16-3584
+chrM	679	0	0	0	0	0	0	0	16-3584
+chrM	680	0	0	0	0	0	0	0	16-3584
+chrM	681	0	0	0	0	0	0	0	16-3584
+chrM	682	0	0	0	0	0	0	0	16-3584
+chrM	683	0	0	0	0	0	0	0	16-3584
+chrM	684	0	0	0	0	0	0	0	16-3584
+chrM	685	0	0	0	0	0	0	0	16-3584
+chrM	686	0	0	0	0	0	0	0	16-3584
+chrM	687	0	0	0	0	0	0	0	16-3584
+chrM	688	0	0	0	0	0	0	0	16-3584
+chrM	689	0	0	0	0	0	0	0	16-3584
+chrM	690	0	0	0	0	0	0	0	16-3584
+chrM	691	0	0	0	0	0	0	0	16-3584
+chrM	692	0	0	0	0	0	0	0	16-3584
+chrM	693	0	0	0	0	0	0	0	16-3584
+chrM	694	0	0	0	0	0	0	0	16-3584
+chrM	695	0	0	0	0	0	0	0	16-3584
+chrM	696	0	0	0	0	0	0	0	16-3584
+chrM	697	0	0	0	0	0	0	0	16-3584
+chrM	698	0	0	0	0	0	0	0	16-3584
+chrM	699	1	0	1	0	0	0	0	16-3584
+chrM	700	1	0	1	0	0	0	0	16-3584
+chrM	701	1	0	1	0	0	0	0	16-3584
+chrM	702	1	0	0	0	1	0	0	16-3584
+chrM	703	1	1	0	0	0	0	0	16-3584
+chrM	704	2	0	1	0	1	0	0	16-3584
+chrM	705	2	0	1	1	0	0	0	16-3584
+chrM	706	2	0	1	0	1	0	0	16-3584
+chrM	707	2	0	0	1	1	0	0	16-3584
+chrM	708	2	0	1	1	0	0	0	16-3584
+chrM	709	2	1	0	1	0	0	0	16-3584
+chrM	710	2	0	2	0	0	0	0	16-3584
+chrM	711	2	0	0	2	0	0	0	16-3584
+chrM	712	2	0	2	0	0	0	0	16-3584
+chrM	713	2	2	0	0	0	0	0	16-3584
+chrM	714	2	0	1	1	0	0	0	16-3584
+chrM	715	2	1	1	0	0	0	0	16-3584
+chrM	716	2	0	1	1	0	0	0	16-3584
+chrM	717	2	1	0	0	1	0	0	16-3584
+chrM	718	2	1	0	0	1	0	0	16-3584
+chrM	719	2	1	1	0	0	0	0	16-3584
+chrM	720	2	2	0	0	0	0	0	16-3584
+chrM	721	2	1	0	1	0	0	0	16-3584
+chrM	722	2	1	0	0	1	0	0	16-3584
+chrM	723	2	1	1	0	0	0	0	16-3584
+chrM	724	2	0	0	2	0	0	0	16-3584
+chrM	725	2	0	1	0	1	0	0	16-3584
+chrM	726	2	1	0	1	0	0	0	16-3584
+chrM	727	2	0	0	1	1	0	0	16-3584
+chrM	728	2	0	2	0	0	0	0	16-3584
+chrM	729	2	0	0	2	0	0	0	16-3584
+chrM	730	2	0	2	0	0	0	0	16-3584
+chrM	731	2	0	1	0	1	0	0	16-3584
+chrM	732	2	0	1	1	0	0	0	16-3584
+chrM	733	2	2	0	0	0	0	0	16-3584
+chrM	734	2	2	0	0	0	0	0	16-3584
+chrM	735	2	0	1	0	1	0	0	16-3584
+chrM	736	2	2	0	0	0	0	0	16-3584
+chrM	737	2	1	1	0	0	0	0	16-3584
+chrM	738	2	0	1	1	0	0	0	16-3584
+chrM	739	2	0	1	0	1	0	0	16-3584
+chrM	740	2	0	0	2	0	0	0	16-3584
+chrM	741	2	1	0	0	1	0	0	16-3584
+chrM	742	2	1	0	1	0	0	0	16-3584
+chrM	743	2	1	0	1	0	0	0	16-3584
+chrM	744	2	0	0	1	1	0	0	16-3584
+chrM	745	2	1	1	0	0	0	0	16-3584
+chrM	746	2	0	1	1	0	0	0	16-3584
+chrM	747	2	0	1	1	0	0	0	16-3584
+chrM	748	2	1	1	0	0	0	0	16-3584
+chrM	749	2	0	0	1	1	0	0	16-3584
+chrM	750	2	1	1	0	0	0	0	16-3584
+chrM	751	2	1	0	1	0	0	0	16-3584
+chrM	752	2	1	0	1	0	0	0	16-3584
+chrM	753	2	0	1	0	1	0	0	16-3584
+chrM	754	2	1	0	1	0	0	0	16-3584
+chrM	755	2	1	0	0	1	0	0	16-3584
+chrM	756	2	0	0	1	1	0	0	16-3584
+chrM	757	2	1	0	0	1	0	0	16-3584
+chrM	758	2	1	0	0	1	0	0	16-3584
+chrM	759	2	0	1	0	1	0	0	16-3584
+chrM	760	2	0	2	0	0	0	0	16-3584
+chrM	761	2	0	1	1	0	0	0	16-3584
+chrM	762	2	0	1	0	1	0	0	16-3584
+chrM	763	2	0	0	1	1	0	0	16-3584
+chrM	764	2	1	0	1	0	0	0	16-3584
+chrM	765	2	0	1	0	1	0	0	16-3584
+chrM	766	2	1	0	1	0	0	0	16-3584
+chrM	767	2	0	0	0	2	0	0	16-3584
+chrM	768	2	1	0	1	0	0	0	16-3584
+chrM	769	2	0	2	0	0	0	0	16-3584
+chrM	770	2	0	2	0	0	0	0	16-3584
+chrM	771	1	1	0	0	0	0	0	16-3584
+chrM	772	1	0	1	0	0	0	0	16-3584
+chrM	773	1	0	1	0	0	0	0	16-3584
+chrM	774	1	1	0	0	0	0	0	16-3584
+chrM	775	1	0	1	0	0	0	0	16-3584
+chrM	776	0	0	0	0	0	0	0	16-3584
+chrM	777	0	0	0	0	0	0	0	16-3584
+chrM	778	0	0	0	0	0	0	0	16-3584
+chrM	779	0	0	0	0	0	0	0	16-3584
+chrM	780	0	0	0	0	0	0	0	16-3584
+chrM	781	0	0	0	0	0	0	0	16-3584
+chrM	782	0	0	0	0	0	0	0	16-3584
+chrM	783	0	0	0	0	0	0	0	16-3584
+chrM	784	0	0	0	0	0	0	0	16-3584
+chrM	785	0	0	0	0	0	0	0	16-3584
+chrM	786	0	0	0	0	0	0	0	16-3584
+chrM	787	0	0	0	0	0	0	0	16-3584
+chrM	788	0	0	0	0	0	0	0	16-3584
+chrM	789	0	0	0	0	0	0	0	16-3584
+chrM	790	0	0	0	0	0	0	0	16-3584
+chrM	791	0	0	0	0	0	0	0	16-3584
+chrM	792	0	0	0	0	0	0	0	16-3584
+chrM	793	0	0	0	0	0	0	0	16-3584
+chrM	794	0	0	0	0	0	0	0	16-3584
+chrM	795	0	0	0	0	0	0	0	16-3584
+chrM	796	0	0	0	0	0	0	0	16-3584
+chrM	797	0	0	0	0	0	0	0	16-3584
+chrM	798	0	0	0	0	0	0	0	16-3584
+chrM	799	0	0	0	0	0	0	0	16-3584
+chrM	800	0	0	0	0	0	0	0	16-3584
+chrM	801	0	0	0	0	0	0	0	16-3584
+chrM	802	0	0	0	0	0	0	0	16-3584
+chrM	803	0	0	0	0	0	0	0	16-3584
+chrM	804	0	0	0	0	0	0	0	16-3584
+chrM	805	0	0	0	0	0	0	0	16-3584
+chrM	806	0	0	0	0	0	0	0	16-3584
+chrM	807	0	0	0	0	0	0	0	16-3584
+chrM	808	0	0	0	0	0	0	0	16-3584
+chrM	809	0	0	0	0	0	0	0	16-3584
+chrM	810	0	0	0	0	0	0	0	16-3584
+chrM	811	0	0	0	0	0	0	0	16-3584
+chrM	812	0	0	0	0	0	0	0	16-3584
+chrM	813	0	0	0	0	0	0	0	16-3584
+chrM	814	0	0	0	0	0	0	0	16-3584
+chrM	815	0	0	0	0	0	0	0	16-3584
+chrM	816	0	0	0	0	0	0	0	16-3584
+chrM	817	0	0	0	0	0	0	0	16-3584
+chrM	818	0	0	0	0	0	0	0	16-3584
+chrM	819	0	0	0	0	0	0	0	16-3584
+chrM	820	0	0	0	0	0	0	0	16-3584
+chrM	821	0	0	0	0	0	0	0	16-3584
+chrM	822	0	0	0	0	0	0	0	16-3584
+chrM	823	0	0	0	0	0	0	0	16-3584
+chrM	824	0	0	0	0	0	0	0	16-3584
+chrM	825	0	0	0	0	0	0	0	16-3584
+chrM	826	0	0	0	0	0	0	0	16-3584
+chrM	827	0	0	0	0	0	0	0	16-3584
+chrM	828	0	0	0	0	0	0	0	16-3584
+chrM	829	0	0	0	0	0	0	0	16-3584
+chrM	830	0	0	0	0	0	0	0	16-3584
+chrM	831	0	0	0	0	0	0	0	16-3584
+chrM	832	0	0	0	0	0	0	0	16-3584
+chrM	833	0	0	0	0	0	0	0	16-3584
+chrM	834	0	0	0	0	0	0	0	16-3584
+chrM	835	0	0	0	0	0	0	0	16-3584
+chrM	836	0	0	0	0	0	0	0	16-3584
+chrM	837	0	0	0	0	0	0	0	16-3584
+chrM	838	0	0	0	0	0	0	0	16-3584
+chrM	839	0	0	0	0	0	0	0	16-3584
+chrM	840	0	0	0	0	0	0	0	16-3584
+chrM	841	0	0	0	0	0	0	0	16-3584
+chrM	842	0	0	0	0	0	0	0	16-3584
+chrM	843	0	0	0	0	0	0	0	16-3584
+chrM	844	0	0	0	0	0	0	0	16-3584
+chrM	845	0	0	0	0	0	0	0	16-3584
+chrM	846	0	0	0	0	0	0	0	16-3584
+chrM	847	0	0	0	0	0	0	0	16-3584
+chrM	848	0	0	0	0	0	0	0	16-3584
+chrM	849	0	0	0	0	0	0	0	16-3584
+chrM	850	0	0	0	0	0	0	0	16-3584
+chrM	851	0	0	0	0	0	0	0	16-3584
+chrM	852	0	0	0	0	0	0	0	16-3584
+chrM	853	0	0	0	0	0	0	0	16-3584
+chrM	854	0	0	0	0	0	0	0	16-3584
+chrM	855	0	0	0	0	0	0	0	16-3584
+chrM	856	0	0	0	0	0	0	0	16-3584
+chrM	857	0	0	0	0	0	0	0	16-3584
+chrM	858	0	0	0	0	0	0	0	16-3584
+chrM	859	0	0	0	0	0	0	0	16-3584
+chrM	860	0	0	0	0	0	0	0	16-3584
+chrM	861	0	0	0	0	0	0	0	16-3584
+chrM	862	0	0	0	0	0	0	0	16-3584
+chrM	863	0	0	0	0	0	0	0	16-3584
+chrM	864	0	0	0	0	0	0	0	16-3584
+chrM	865	0	0	0	0	0	0	0	16-3584
+chrM	866	0	0	0	0	0	0	0	16-3584
+chrM	867	0	0	0	0	0	0	0	16-3584
+chrM	868	0	0	0	0	0	0	0	16-3584
+chrM	869	0	0	0	0	0	0	0	16-3584
+chrM	870	0	0	0	0	0	0	0	16-3584
+chrM	871	0	0	0	0	0	0	0	16-3584
+chrM	872	0	0	0	0	0	0	0	16-3584
+chrM	873	0	0	0	0	0	0	0	16-3584
+chrM	874	0	0	0	0	0	0	0	16-3584
+chrM	875	0	0	0	0	0	0	0	16-3584
+chrM	876	0	0	0	0	0	0	0	16-3584
+chrM	877	0	0	0	0	0	0	0	16-3584
+chrM	878	0	0	0	0	0	0	0	16-3584
+chrM	879	0	0	0	0	0	0	0	16-3584
+chrM	880	0	0	0	0	0	0	0	16-3584
+chrM	881	0	0	0	0	0	0	0	16-3584
+chrM	882	0	0	0	0	0	0	0	16-3584
+chrM	883	0	0	0	0	0	0	0	16-3584
+chrM	884	0	0	0	0	0	0	0	16-3584
+chrM	885	0	0	0	0	0	0	0	16-3584
+chrM	886	0	0	0	0	0	0	0	16-3584
+chrM	887	0	0	0	0	0	0	0	16-3584
+chrM	888	0	0	0	0	0	0	0	16-3584
+chrM	889	0	0	0	0	0	0	0	16-3584
+chrM	890	0	0	0	0	0	0	0	16-3584
+chrM	891	0	0	0	0	0	0	0	16-3584
+chrM	892	0	0	0	0	0	0	0	16-3584
+chrM	893	0	0	0	0	0	0	0	16-3584
+chrM	894	0	0	0	0	0	0	0	16-3584
+chrM	895	0	0	0	0	0	0	0	16-3584
+chrM	896	0	0	0	0	0	0	0	16-3584
+chrM	897	0	0	0	0	0	0	0	16-3584
+chrM	898	0	0	0	0	0	0	0	16-3584
+chrM	899	0	0	0	0	0	0	0	16-3584
+chrM	900	0	0	0	0	0	0	0	16-3584
+chrM	901	0	0	0	0	0	0	0	16-3584
+chrM	902	0	0	0	0	0	0	0	16-3584
+chrM	903	0	0	0	0	0	0	0	16-3584
+chrM	904	0	0	0	0	0	0	0	16-3584
+chrM	905	0	0	0	0	0	0	0	16-3584
+chrM	906	0	0	0	0	0	0	0	16-3584
+chrM	907	0	0	0	0	0	0	0	16-3584
+chrM	908	0	0	0	0	0	0	0	16-3584
+chrM	909	0	0	0	0	0	0	0	16-3584
+chrM	910	0	0	0	0	0	0	0	16-3584
+chrM	911	0	0	0	0	0	0	0	16-3584
+chrM	912	0	0	0	0	0	0	0	16-3584
+chrM	913	0	0	0	0	0	0	0	16-3584
+chrM	914	0	0	0	0	0	0	0	16-3584
+chrM	915	0	0	0	0	0	0	0	16-3584
+chrM	916	0	0	0	0	0	0	0	16-3584
+chrM	917	0	0	0	0	0	0	0	16-3584
+chrM	918	0	0	0	0	0	0	0	16-3584
+chrM	919	0	0	0	0	0	0	0	16-3584
+chrM	920	0	0	0	0	0	0	0	16-3584
+chrM	921	0	0	0	0	0	0	0	16-3584
+chrM	922	0	0	0	0	0	0	0	16-3584
+chrM	923	0	0	0	0	0	0	0	16-3584
+chrM	924	0	0	0	0	0	0	0	16-3584
+chrM	925	0	0	0	0	0	0	0	16-3584
+chrM	926	0	0	0	0	0	0	0	16-3584
+chrM	927	0	0	0	0	0	0	0	16-3584
+chrM	928	0	0	0	0	0	0	0	16-3584
+chrM	929	0	0	0	0	0	0	0	16-3584
+chrM	930	0	0	0	0	0	0	0	16-3584
+chrM	931	0	0	0	0	0	0	0	16-3584
+chrM	932	0	0	0	0	0	0	0	16-3584
+chrM	933	0	0	0	0	0	0	0	16-3584
+chrM	934	0	0	0	0	0	0	0	16-3584
+chrM	935	0	0	0	0	0	0	0	16-3584
+chrM	936	0	0	0	0	0	0	0	16-3584
+chrM	937	0	0	0	0	0	0	0	16-3584
+chrM	938	0	0	0	0	0	0	0	16-3584
+chrM	939	0	0	0	0	0	0	0	16-3584
+chrM	940	0	0	0	0	0	0	0	16-3584
+chrM	941	0	0	0	0	0	0	0	16-3584
+chrM	942	0	0	0	0	0	0	0	16-3584
+chrM	943	0	0	0	0	0	0	0	16-3584
+chrM	944	0	0	0	0	0	0	0	16-3584
+chrM	945	0	0	0	0	0	0	0	16-3584
+chrM	946	0	0	0	0	0	0	0	16-3584
+chrM	947	0	0	0	0	0	0	0	16-3584
+chrM	948	0	0	0	0	0	0	0	16-3584
+chrM	949	0	0	0	0	0	0	0	16-3584
+chrM	950	0	0	0	0	0	0	0	16-3584
+chrM	951	0	0	0	0	0	0	0	16-3584
+chrM	952	0	0	0	0	0	0	0	16-3584
+chrM	953	0	0	0	0	0	0	0	16-3584
+chrM	954	0	0	0	0	0	0	0	16-3584
+chrM	955	0	0	0	0	0	0	0	16-3584
+chrM	956	0	0	0	0	0	0	0	16-3584
+chrM	957	0	0	0	0	0	0	0	16-3584
+chrM	958	0	0	0	0	0	0	0	16-3584
+chrM	959	0	0	0	0	0	0	0	16-3584
+chrM	960	0	0	0	0	0	0	0	16-3584
+chrM	961	0	0	0	0	0	0	0	16-3584
+chrM	962	0	0	0	0	0	0	0	16-3584
+chrM	963	0	0	0	0	0	0	0	16-3584
+chrM	964	0	0	0	0	0	0	0	16-3584
+chrM	965	0	0	0	0	0	0	0	16-3584
+chrM	966	0	0	0	0	0	0	0	16-3584
+chrM	967	0	0	0	0	0	0	0	16-3584
+chrM	968	0	0	0	0	0	0	0	16-3584
+chrM	969	0	0	0	0	0	0	0	16-3584
+chrM	970	0	0	0	0	0	0	0	16-3584
+chrM	971	0	0	0	0	0	0	0	16-3584
+chrM	972	0	0	0	0	0	0	0	16-3584
+chrM	973	0	0	0	0	0	0	0	16-3584
+chrM	974	0	0	0	0	0	0	0	16-3584
+chrM	975	0	0	0	0	0	0	0	16-3584
+chrM	976	0	0	0	0	0	0	0	16-3584
+chrM	977	0	0	0	0	0	0	0	16-3584
+chrM	978	0	0	0	0	0	0	0	16-3584
+chrM	979	0	0	0	0	0	0	0	16-3584
+chrM	980	0	0	0	0	0	0	0	16-3584
+chrM	981	0	0	0	0	0	0	0	16-3584
+chrM	982	0	0	0	0	0	0	0	16-3584
+chrM	983	0	0	0	0	0	0	0	16-3584
+chrM	984	0	0	0	0	0	0	0	16-3584
+chrM	985	0	0	0	0	0	0	0	16-3584
+chrM	986	0	0	0	0	0	0	0	16-3584
+chrM	987	0	0	0	0	0	0	0	16-3584
+chrM	988	0	0	0	0	0	0	0	16-3584
+chrM	989	0	0	0	0	0	0	0	16-3584
+chrM	990	0	0	0	0	0	0	0	16-3584
+chrM	991	0	0	0	0	0	0	0	16-3584
+chrM	992	0	0	0	0	0	0	0	16-3584
+chrM	993	0	0	0	0	0	0	0	16-3584
+chrM	994	0	0	0	0	0	0	0	16-3584
+chrM	995	0	0	0	0	0	0	0	16-3584
+chrM	996	0	0	0	0	0	0	0	16-3584
+chrM	997	0	0	0	0	0	0	0	16-3584
+chrM	998	0	0	0	0	0	0	0	16-3584
+chrM	999	0	0	0	0	0	0	0	16-3584
+chrM	1000	0	0	0	0	0	0	0	16-3584
+chrM	1001	0	0	0	0	0	0	0	16-3584
+chrM	1002	0	0	0	0	0	0	0	16-3584
+chrM	1003	0	0	0	0	0	0	0	16-3584
+chrM	1004	0	0	0	0	0	0	0	16-3584
+chrM	1005	0	0	0	0	0	0	0	16-3584
+chrM	1006	0	0	0	0	0	0	0	16-3584
+chrM	1007	0	0	0	0	0	0	0	16-3584
+chrM	1008	0	0	0	0	0	0	0	16-3584
+chrM	1009	0	0	0	0	0	0	0	16-3584
+chrM	1010	0	0	0	0	0	0	0	16-3584
+chrM	1011	0	0	0	0	0	0	0	16-3584
+chrM	1012	0	0	0	0	0	0	0	16-3584
+chrM	1013	0	0	0	0	0	0	0	16-3584
+chrM	1014	0	0	0	0	0	0	0	16-3584
+chrM	1015	0	0	0	0	0	0	0	16-3584
+chrM	1016	0	0	0	0	0	0	0	16-3584
+chrM	1017	0	0	0	0	0	0	0	16-3584
+chrM	1018	0	0	0	0	0	0	0	16-3584
+chrM	1019	0	0	0	0	0	0	0	16-3584
+chrM	1020	0	0	0	0	0	0	0	16-3584
+chrM	1021	0	0	0	0	0	0	0	16-3584
+chrM	1022	0	0	0	0	0	0	0	16-3584
+chrM	1023	0	0	0	0	0	0	0	16-3584
+chrM	1024	0	0	0	0	0	0	0	16-3584
+chrM	1025	0	0	0	0	0	0	0	16-3584
+chrM	1026	0	0	0	0	0	0	0	16-3584
+chrM	1027	0	0	0	0	0	0	0	16-3584
+chrM	1028	0	0	0	0	0	0	0	16-3584
+chrM	1029	0	0	0	0	0	0	0	16-3584
+chrM	1030	0	0	0	0	0	0	0	16-3584
+chrM	1031	0	0	0	0	0	0	0	16-3584
+chrM	1032	0	0	0	0	0	0	0	16-3584
+chrM	1033	0	0	0	0	0	0	0	16-3584
+chrM	1034	0	0	0	0	0	0	0	16-3584
+chrM	1035	0	0	0	0	0	0	0	16-3584
+chrM	1036	0	0	0	0	0	0	0	16-3584
+chrM	1037	0	0	0	0	0	0	0	16-3584
+chrM	1038	0	0	0	0	0	0	0	16-3584
+chrM	1039	0	0	0	0	0	0	0	16-3584
+chrM	1040	0	0	0	0	0	0	0	16-3584
+chrM	1041	0	0	0	0	0	0	0	16-3584
+chrM	1042	0	0	0	0	0	0	0	16-3584
+chrM	1043	0	0	0	0	0	0	0	16-3584
+chrM	1044	0	0	0	0	0	0	0	16-3584
+chrM	1045	0	0	0	0	0	0	0	16-3584
+chrM	1046	0	0	0	0	0	0	0	16-3584
+chrM	1047	0	0	0	0	0	0	0	16-3584
+chrM	1048	0	0	0	0	0	0	0	16-3584
+chrM	1049	0	0	0	0	0	0	0	16-3584
+chrM	1050	0	0	0	0	0	0	0	16-3584
+chrM	1051	0	0	0	0	0	0	0	16-3584
+chrM	1052	0	0	0	0	0	0	0	16-3584
+chrM	1053	0	0	0	0	0	0	0	16-3584
+chrM	1054	0	0	0	0	0	0	0	16-3584
+chrM	1055	0	0	0	0	0	0	0	16-3584
+chrM	1056	0	0	0	0	0	0	0	16-3584
+chrM	1057	0	0	0	0	0	0	0	16-3584
+chrM	1058	0	0	0	0	0	0	0	16-3584
+chrM	1059	0	0	0	0	0	0	0	16-3584
+chrM	1060	0	0	0	0	0	0	0	16-3584
+chrM	1061	0	0	0	0	0	0	0	16-3584
+chrM	1062	0	0	0	0	0	0	0	16-3584
+chrM	1063	0	0	0	0	0	0	0	16-3584
+chrM	1064	0	0	0	0	0	0	0	16-3584
+chrM	1065	0	0	0	0	0	0	0	16-3584
+chrM	1066	0	0	0	0	0	0	0	16-3584
+chrM	1067	0	0	0	0	0	0	0	16-3584
+chrM	1068	0	0	0	0	0	0	0	16-3584
+chrM	1069	0	0	0	0	0	0	0	16-3584
+chrM	1070	0	0	0	0	0	0	0	16-3584
+chrM	1071	0	0	0	0	0	0	0	16-3584
+chrM	1072	0	0	0	0	0	0	0	16-3584
+chrM	1073	0	0	0	0	0	0	0	16-3584
+chrM	1074	0	0	0	0	0	0	0	16-3584
+chrM	1075	0	0	0	0	0	0	0	16-3584
+chrM	1076	0	0	0	0	0	0	0	16-3584
+chrM	1077	0	0	0	0	0	0	0	16-3584
+chrM	1078	0	0	0	0	0	0	0	16-3584
+chrM	1079	0	0	0	0	0	0	0	16-3584
+chrM	1080	0	0	0	0	0	0	0	16-3584
+chrM	1081	0	0	0	0	0	0	0	16-3584
+chrM	1082	0	0	0	0	0	0	0	16-3584
+chrM	1083	0	0	0	0	0	0	0	16-3584
+chrM	1084	0	0	0	0	0	0	0	16-3584
+chrM	1085	0	0	0	0	0	0	0	16-3584
+chrM	1086	0	0	0	0	0	0	0	16-3584
+chrM	1087	0	0	0	0	0	0	0	16-3584
+chrM	1088	0	0	0	0	0	0	0	16-3584
+chrM	1089	0	0	0	0	0	0	0	16-3584
+chrM	1090	0	0	0	0	0	0	0	16-3584
+chrM	1091	0	0	0	0	0	0	0	16-3584
+chrM	1092	0	0	0	0	0	0	0	16-3584
+chrM	1093	0	0	0	0	0	0	0	16-3584
+chrM	1094	0	0	0	0	0	0	0	16-3584
+chrM	1095	0	0	0	0	0	0	0	16-3584
+chrM	1096	0	0	0	0	0	0	0	16-3584
+chrM	1097	0	0	0	0	0	0	0	16-3584
+chrM	1098	0	0	0	0	0	0	0	16-3584
+chrM	1099	0	0	0	0	0	0	0	16-3584
+chrM	1100	0	0	0	0	0	0	0	16-3584
+chrM	1101	0	0	0	0	0	0	0	16-3584
+chrM	1102	0	0	0	0	0	0	0	16-3584
+chrM	1103	0	0	0	0	0	0	0	16-3584
+chrM	1104	0	0	0	0	0	0	0	16-3584
+chrM	1105	0	0	0	0	0	0	0	16-3584
+chrM	1106	0	0	0	0	0	0	0	16-3584
+chrM	1107	0	0	0	0	0	0	0	16-3584
+chrM	1108	0	0	0	0	0	0	0	16-3584
+chrM	1109	0	0	0	0	0	0	0	16-3584
+chrM	1110	0	0	0	0	0	0	0	16-3584
+chrM	1111	0	0	0	0	0	0	0	16-3584
+chrM	1112	0	0	0	0	0	0	0	16-3584
+chrM	1113	0	0	0	0	0	0	0	16-3584
+chrM	1114	0	0	0	0	0	0	0	16-3584
+chrM	1115	0	0	0	0	0	0	0	16-3584
+chrM	1116	0	0	0	0	0	0	0	16-3584
+chrM	1117	0	0	0	0	0	0	0	16-3584
+chrM	1118	0	0	0	0	0	0	0	16-3584
+chrM	1119	0	0	0	0	0	0	0	16-3584
+chrM	1120	0	0	0	0	0	0	0	16-3584
+chrM	1121	0	0	0	0	0	0	0	16-3584
+chrM	1122	0	0	0	0	0	0	0	16-3584
+chrM	1123	0	0	0	0	0	0	0	16-3584
+chrM	1124	0	0	0	0	0	0	0	16-3584
+chrM	1125	0	0	0	0	0	0	0	16-3584
+chrM	1126	0	0	0	0	0	0	0	16-3584
+chrM	1127	0	0	0	0	0	0	0	16-3584
+chrM	1128	0	0	0	0	0	0	0	16-3584
+chrM	1129	0	0	0	0	0	0	0	16-3584
+chrM	1130	0	0	0	0	0	0	0	16-3584
+chrM	1131	0	0	0	0	0	0	0	16-3584
+chrM	1132	0	0	0	0	0	0	0	16-3584
+chrM	1133	0	0	0	0	0	0	0	16-3584
+chrM	1134	0	0	0	0	0	0	0	16-3584
+chrM	1135	0	0	0	0	0	0	0	16-3584
+chrM	1136	0	0	0	0	0	0	0	16-3584
+chrM	1137	0	0	0	0	0	0	0	16-3584
+chrM	1138	0	0	0	0	0	0	0	16-3584
+chrM	1139	0	0	0	0	0	0	0	16-3584
+chrM	1140	0	0	0	0	0	0	0	16-3584
+chrM	1141	0	0	0	0	0	0	0	16-3584
+chrM	1142	0	0	0	0	0	0	0	16-3584
+chrM	1143	0	0	0	0	0	0	0	16-3584
+chrM	1144	0	0	0	0	0	0	0	16-3584
+chrM	1145	0	0	0	0	0	0	0	16-3584
+chrM	1146	0	0	0	0	0	0	0	16-3584
+chrM	1147	0	0	0	0	0	0	0	16-3584
+chrM	1148	0	0	0	0	0	0	0	16-3584
+chrM	1149	0	0	0	0	0	0	0	16-3584
+chrM	1150	0	0	0	0	0	0	0	16-3584
+chrM	1151	0	0	0	0	0	0	0	16-3584
+chrM	1152	0	0	0	0	0	0	0	16-3584
+chrM	1153	0	0	0	0	0	0	0	16-3584
+chrM	1154	0	0	0	0	0	0	0	16-3584
+chrM	1155	0	0	0	0	0	0	0	16-3584
+chrM	1156	0	0	0	0	0	0	0	16-3584
+chrM	1157	0	0	0	0	0	0	0	16-3584
+chrM	1158	0	0	0	0	0	0	0	16-3584
+chrM	1159	0	0	0	0	0	0	0	16-3584
+chrM	1160	0	0	0	0	0	0	0	16-3584
+chrM	1161	0	0	0	0	0	0	0	16-3584
+chrM	1162	0	0	0	0	0	0	0	16-3584
+chrM	1163	0	0	0	0	0	0	0	16-3584
+chrM	1164	0	0	0	0	0	0	0	16-3584
+chrM	1165	0	0	0	0	0	0	0	16-3584
+chrM	1166	0	0	0	0	0	0	0	16-3584
+chrM	1167	0	0	0	0	0	0	0	16-3584
+chrM	1168	0	0	0	0	0	0	0	16-3584
+chrM	1169	0	0	0	0	0	0	0	16-3584
+chrM	1170	0	0	0	0	0	0	0	16-3584
+chrM	1171	0	0	0	0	0	0	0	16-3584
+chrM	1172	0	0	0	0	0	0	0	16-3584
+chrM	1173	0	0	0	0	0	0	0	16-3584
+chrM	1174	0	0	0	0	0	0	0	16-3584
+chrM	1175	0	0	0	0	0	0	0	16-3584
+chrM	1176	0	0	0	0	0	0	0	16-3584
+chrM	1177	0	0	0	0	0	0	0	16-3584
+chrM	1178	0	0	0	0	0	0	0	16-3584
+chrM	1179	0	0	0	0	0	0	0	16-3584
+chrM	1180	0	0	0	0	0	0	0	16-3584
+chrM	1181	0	0	0	0	0	0	0	16-3584
+chrM	1182	0	0	0	0	0	0	0	16-3584
+chrM	1183	0	0	0	0	0	0	0	16-3584
+chrM	1184	0	0	0	0	0	0	0	16-3584
+chrM	1185	0	0	0	0	0	0	0	16-3584
+chrM	1186	0	0	0	0	0	0	0	16-3584
+chrM	1187	0	0	0	0	0	0	0	16-3584
+chrM	1188	0	0	0	0	0	0	0	16-3584
+chrM	1189	0	0	0	0	0	0	0	16-3584
+chrM	1190	0	0	0	0	0	0	0	16-3584
+chrM	1191	0	0	0	0	0	0	0	16-3584
+chrM	1192	0	0	0	0	0	0	0	16-3584
+chrM	1193	0	0	0	0	0	0	0	16-3584
+chrM	1194	0	0	0	0	0	0	0	16-3584
+chrM	1195	0	0	0	0	0	0	0	16-3584
+chrM	1196	0	0	0	0	0	0	0	16-3584
+chrM	1197	0	0	0	0	0	0	0	16-3584
+chrM	1198	0	0	0	0	0	0	0	16-3584
+chrM	1199	0	0	0	0	0	0	0	16-3584
+chrM	1200	0	0	0	0	0	0	0	16-3584
+chrM	1201	0	0	0	0	0	0	0	16-3584
+chrM	1202	0	0	0	0	0	0	0	16-3584
+chrM	1203	0	0	0	0	0	0	0	16-3584
+chrM	1204	0	0	0	0	0	0	0	16-3584
+chrM	1205	0	0	0	0	0	0	0	16-3584
+chrM	1206	0	0	0	0	0	0	0	16-3584
+chrM	1207	0	0	0	0	0	0	0	16-3584
+chrM	1208	0	0	0	0	0	0	0	16-3584
+chrM	1209	0	0	0	0	0	0	0	16-3584
+chrM	1210	0	0	0	0	0	0	0	16-3584
+chrM	1211	0	0	0	0	0	0	0	16-3584
+chrM	1212	0	0	0	0	0	0	0	16-3584
+chrM	1213	0	0	0	0	0	0	0	16-3584
+chrM	1214	0	0	0	0	0	0	0	16-3584
+chrM	1215	0	0	0	0	0	0	0	16-3584
+chrM	1216	0	0	0	0	0	0	0	16-3584
+chrM	1217	0	0	0	0	0	0	0	16-3584
+chrM	1218	0	0	0	0	0	0	0	16-3584
+chrM	1219	0	0	0	0	0	0	0	16-3584
+chrM	1220	0	0	0	0	0	0	0	16-3584
+chrM	1221	0	0	0	0	0	0	0	16-3584
+chrM	1222	0	0	0	0	0	0	0	16-3584
+chrM	1223	0	0	0	0	0	0	0	16-3584
+chrM	1224	0	0	0	0	0	0	0	16-3584
+chrM	1225	0	0	0	0	0	0	0	16-3584
+chrM	1226	0	0	0	0	0	0	0	16-3584
+chrM	1227	0	0	0	0	0	0	0	16-3584
+chrM	1228	0	0	0	0	0	0	0	16-3584
+chrM	1229	0	0	0	0	0	0	0	16-3584
+chrM	1230	0	0	0	0	0	0	0	16-3584
+chrM	1231	0	0	0	0	0	0	0	16-3584
+chrM	1232	0	0	0	0	0	0	0	16-3584
+chrM	1233	0	0	0	0	0	0	0	16-3584
+chrM	1234	0	0	0	0	0	0	0	16-3584
+chrM	1235	0	0	0	0	0	0	0	16-3584
+chrM	1236	0	0	0	0	0	0	0	16-3584
+chrM	1237	0	0	0	0	0	0	0	16-3584
+chrM	1238	0	0	0	0	0	0	0	16-3584
+chrM	1239	0	0	0	0	0	0	0	16-3584
+chrM	1240	0	0	0	0	0	0	0	16-3584
+chrM	1241	0	0	0	0	0	0	0	16-3584
+chrM	1242	0	0	0	0	0	0	0	16-3584
+chrM	1243	0	0	0	0	0	0	0	16-3584
+chrM	1244	0	0	0	0	0	0	0	16-3584
+chrM	1245	0	0	0	0	0	0	0	16-3584
+chrM	1246	0	0	0	0	0	0	0	16-3584
+chrM	1247	0	0	0	0	0	0	0	16-3584
+chrM	1248	0	0	0	0	0	0	0	16-3584
+chrM	1249	0	0	0	0	0	0	0	16-3584
+chrM	1250	0	0	0	0	0	0	0	16-3584
+chrM	1251	0	0	0	0	0	0	0	16-3584
+chrM	1252	0	0	0	0	0	0	0	16-3584
+chrM	1253	0	0	0	0	0	0	0	16-3584
+chrM	1254	0	0	0	0	0	0	0	16-3584
+chrM	1255	0	0	0	0	0	0	0	16-3584
+chrM	1256	0	0	0	0	0	0	0	16-3584
+chrM	1257	0	0	0	0	0	0	0	16-3584
+chrM	1258	0	0	0	0	0	0	0	16-3584
+chrM	1259	0	0	0	0	0	0	0	16-3584
+chrM	1260	0	0	0	0	0	0	0	16-3584
+chrM	1261	0	0	0	0	0	0	0	16-3584
+chrM	1262	0	0	0	0	0	0	0	16-3584
+chrM	1263	0	0	0	0	0	0	0	16-3584
+chrM	1264	0	0	0	0	0	0	0	16-3584
+chrM	1265	0	0	0	0	0	0	0	16-3584
+chrM	1266	0	0	0	0	0	0	0	16-3584
+chrM	1267	0	0	0	0	0	0	0	16-3584
+chrM	1268	0	0	0	0	0	0	0	16-3584
+chrM	1269	0	0	0	0	0	0	0	16-3584
+chrM	1270	0	0	0	0	0	0	0	16-3584
+chrM	1271	0	0	0	0	0	0	0	16-3584
+chrM	1272	0	0	0	0	0	0	0	16-3584
+chrM	1273	0	0	0	0	0	0	0	16-3584
+chrM	1274	0	0	0	0	0	0	0	16-3584
+chrM	1275	0	0	0	0	0	0	0	16-3584
+chrM	1276	0	0	0	0	0	0	0	16-3584
+chrM	1277	0	0	0	0	0	0	0	16-3584
+chrM	1278	0	0	0	0	0	0	0	16-3584
+chrM	1279	0	0	0	0	0	0	0	16-3584
+chrM	1280	0	0	0	0	0	0	0	16-3584
+chrM	1281	0	0	0	0	0	0	0	16-3584
+chrM	1282	0	0	0	0	0	0	0	16-3584
+chrM	1283	0	0	0	0	0	0	0	16-3584
+chrM	1284	0	0	0	0	0	0	0	16-3584
+chrM	1285	0	0	0	0	0	0	0	16-3584
+chrM	1286	0	0	0	0	0	0	0	16-3584
+chrM	1287	0	0	0	0	0	0	0	16-3584
+chrM	1288	0	0	0	0	0	0	0	16-3584
+chrM	1289	0	0	0	0	0	0	0	16-3584
+chrM	1290	0	0	0	0	0	0	0	16-3584
+chrM	1291	0	0	0	0	0	0	0	16-3584
+chrM	1292	0	0	0	0	0	0	0	16-3584
+chrM	1293	0	0	0	0	0	0	0	16-3584
+chrM	1294	0	0	0	0	0	0	0	16-3584
+chrM	1295	0	0	0	0	0	0	0	16-3584
+chrM	1296	0	0	0	0	0	0	0	16-3584
+chrM	1297	0	0	0	0	0	0	0	16-3584
+chrM	1298	0	0	0	0	0	0	0	16-3584
+chrM	1299	0	0	0	0	0	0	0	16-3584
+chrM	1300	0	0	0	0	0	0	0	16-3584
+chrM	1301	0	0	0	0	0	0	0	16-3584
+chrM	1302	0	0	0	0	0	0	0	16-3584
+chrM	1303	0	0	0	0	0	0	0	16-3584
+chrM	1304	0	0	0	0	0	0	0	16-3584
+chrM	1305	0	0	0	0	0	0	0	16-3584
+chrM	1306	0	0	0	0	0	0	0	16-3584
+chrM	1307	0	0	0	0	0	0	0	16-3584
+chrM	1308	0	0	0	0	0	0	0	16-3584
+chrM	1309	0	0	0	0	0	0	0	16-3584
+chrM	1310	0	0	0	0	0	0	0	16-3584
+chrM	1311	0	0	0	0	0	0	0	16-3584
+chrM	1312	0	0	0	0	0	0	0	16-3584
+chrM	1313	0	0	0	0	0	0	0	16-3584
+chrM	1314	0	0	0	0	0	0	0	16-3584
+chrM	1315	0	0	0	0	0	0	0	16-3584
+chrM	1316	0	0	0	0	0	0	0	16-3584
+chrM	1317	0	0	0	0	0	0	0	16-3584
+chrM	1318	0	0	0	0	0	0	0	16-3584
+chrM	1319	0	0	0	0	0	0	0	16-3584
+chrM	1320	0	0	0	0	0	0	0	16-3584
+chrM	1321	0	0	0	0	0	0	0	16-3584
+chrM	1322	0	0	0	0	0	0	0	16-3584
+chrM	1323	0	0	0	0	0	0	0	16-3584
+chrM	1324	0	0	0	0	0	0	0	16-3584
+chrM	1325	0	0	0	0	0	0	0	16-3584
+chrM	1326	0	0	0	0	0	0	0	16-3584
+chrM	1327	0	0	0	0	0	0	0	16-3584
+chrM	1328	0	0	0	0	0	0	0	16-3584
+chrM	1329	0	0	0	0	0	0	0	16-3584
+chrM	1330	0	0	0	0	0	0	0	16-3584
+chrM	1331	0	0	0	0	0	0	0	16-3584
+chrM	1332	0	0	0	0	0	0	0	16-3584
+chrM	1333	0	0	0	0	0	0	0	16-3584
+chrM	1334	0	0	0	0	0	0	0	16-3584
+chrM	1335	0	0	0	0	0	0	0	16-3584
+chrM	1336	0	0	0	0	0	0	0	16-3584
+chrM	1337	0	0	0	0	0	0	0	16-3584
+chrM	1338	0	0	0	0	0	0	0	16-3584
+chrM	1339	0	0	0	0	0	0	0	16-3584
+chrM	1340	0	0	0	0	0	0	0	16-3584
+chrM	1341	0	0	0	0	0	0	0	16-3584
+chrM	1342	0	0	0	0	0	0	0	16-3584
+chrM	1343	0	0	0	0	0	0	0	16-3584
+chrM	1344	0	0	0	0	0	0	0	16-3584
+chrM	1345	0	0	0	0	0	0	0	16-3584
+chrM	1346	0	0	0	0	0	0	0	16-3584
+chrM	1347	0	0	0	0	0	0	0	16-3584
+chrM	1348	0	0	0	0	0	0	0	16-3584
+chrM	1349	0	0	0	0	0	0	0	16-3584
+chrM	1350	0	0	0	0	0	0	0	16-3584
+chrM	1351	0	0	0	0	0	0	0	16-3584
+chrM	1352	0	0	0	0	0	0	0	16-3584
+chrM	1353	0	0	0	0	0	0	0	16-3584
+chrM	1354	0	0	0	0	0	0	0	16-3584
+chrM	1355	0	0	0	0	0	0	0	16-3584
+chrM	1356	0	0	0	0	0	0	0	16-3584
+chrM	1357	0	0	0	0	0	0	0	16-3584
+chrM	1358	0	0	0	0	0	0	0	16-3584
+chrM	1359	0	0	0	0	0	0	0	16-3584
+chrM	1360	0	0	0	0	0	0	0	16-3584
+chrM	1361	0	0	0	0	0	0	0	16-3584
+chrM	1362	0	0	0	0	0	0	0	16-3584
+chrM	1363	0	0	0	0	0	0	0	16-3584
+chrM	1364	0	0	0	0	0	0	0	16-3584
+chrM	1365	0	0	0	0	0	0	0	16-3584
+chrM	1366	0	0	0	0	0	0	0	16-3584
+chrM	1367	0	0	0	0	0	0	0	16-3584
+chrM	1368	0	0	0	0	0	0	0	16-3584
+chrM	1369	0	0	0	0	0	0	0	16-3584
+chrM	1370	0	0	0	0	0	0	0	16-3584
+chrM	1371	0	0	0	0	0	0	0	16-3584
+chrM	1372	0	0	0	0	0	0	0	16-3584
+chrM	1373	0	0	0	0	0	0	0	16-3584
+chrM	1374	0	0	0	0	0	0	0	16-3584
+chrM	1375	0	0	0	0	0	0	0	16-3584
+chrM	1376	0	0	0	0	0	0	0	16-3584
+chrM	1377	0	0	0	0	0	0	0	16-3584
+chrM	1378	0	0	0	0	0	0	0	16-3584
+chrM	1379	0	0	0	0	0	0	0	16-3584
+chrM	1380	0	0	0	0	0	0	0	16-3584
+chrM	1381	0	0	0	0	0	0	0	16-3584
+chrM	1382	0	0	0	0	0	0	0	16-3584
+chrM	1383	0	0	0	0	0	0	0	16-3584
+chrM	1384	0	0	0	0	0	0	0	16-3584
+chrM	1385	0	0	0	0	0	0	0	16-3584
+chrM	1386	0	0	0	0	0	0	0	16-3584
+chrM	1387	0	0	0	0	0	0	0	16-3584
+chrM	1388	0	0	0	0	0	0	0	16-3584
+chrM	1389	0	0	0	0	0	0	0	16-3584
+chrM	1390	0	0	0	0	0	0	0	16-3584
+chrM	1391	0	0	0	0	0	0	0	16-3584
+chrM	1392	0	0	0	0	0	0	0	16-3584
+chrM	1393	0	0	0	0	0	0	0	16-3584
+chrM	1394	0	0	0	0	0	0	0	16-3584
+chrM	1395	0	0	0	0	0	0	0	16-3584
+chrM	1396	0	0	0	0	0	0	0	16-3584
+chrM	1397	0	0	0	0	0	0	0	16-3584
+chrM	1398	0	0	0	0	0	0	0	16-3584
+chrM	1399	0	0	0	0	0	0	0	16-3584
+chrM	1400	0	0	0	0	0	0	0	16-3584
+chrM	1401	0	0	0	0	0	0	0	16-3584
+chrM	1402	0	0	0	0	0	0	0	16-3584
+chrM	1403	0	0	0	0	0	0	0	16-3584
+chrM	1404	0	0	0	0	0	0	0	16-3584
+chrM	1405	0	0	0	0	0	0	0	16-3584
+chrM	1406	0	0	0	0	0	0	0	16-3584
+chrM	1407	0	0	0	0	0	0	0	16-3584
+chrM	1408	0	0	0	0	0	0	0	16-3584
+chrM	1409	0	0	0	0	0	0	0	16-3584
+chrM	1410	0	0	0	0	0	0	0	16-3584
+chrM	1411	0	0	0	0	0	0	0	16-3584
+chrM	1412	0	0	0	0	0	0	0	16-3584
+chrM	1413	0	0	0	0	0	0	0	16-3584
+chrM	1414	0	0	0	0	0	0	0	16-3584
+chrM	1415	0	0	0	0	0	0	0	16-3584
+chrM	1416	0	0	0	0	0	0	0	16-3584
+chrM	1417	0	0	0	0	0	0	0	16-3584
+chrM	1418	0	0	0	0	0	0	0	16-3584
+chrM	1419	0	0	0	0	0	0	0	16-3584
+chrM	1420	0	0	0	0	0	0	0	16-3584
+chrM	1421	0	0	0	0	0	0	0	16-3584
+chrM	1422	0	0	0	0	0	0	0	16-3584
+chrM	1423	0	0	0	0	0	0	0	16-3584
+chrM	1424	0	0	0	0	0	0	0	16-3584
+chrM	1425	0	0	0	0	0	0	0	16-3584
+chrM	1426	0	0	0	0	0	0	0	16-3584
+chrM	1427	0	0	0	0	0	0	0	16-3584
+chrM	1428	0	0	0	0	0	0	0	16-3584
+chrM	1429	0	0	0	0	0	0	0	16-3584
+chrM	1430	0	0	0	0	0	0	0	16-3584
+chrM	1431	0	0	0	0	0	0	0	16-3584
+chrM	1432	0	0	0	0	0	0	0	16-3584
+chrM	1433	0	0	0	0	0	0	0	16-3584
+chrM	1434	0	0	0	0	0	0	0	16-3584
+chrM	1435	0	0	0	0	0	0	0	16-3584
+chrM	1436	0	0	0	0	0	0	0	16-3584
+chrM	1437	0	0	0	0	0	0	0	16-3584
+chrM	1438	0	0	0	0	0	0	0	16-3584
+chrM	1439	0	0	0	0	0	0	0	16-3584
+chrM	1440	0	0	0	0	0	0	0	16-3584
+chrM	1441	0	0	0	0	0	0	0	16-3584
+chrM	1442	0	0	0	0	0	0	0	16-3584
+chrM	1443	0	0	0	0	0	0	0	16-3584
+chrM	1444	0	0	0	0	0	0	0	16-3584
+chrM	1445	0	0	0	0	0	0	0	16-3584
+chrM	1446	0	0	0	0	0	0	0	16-3584
+chrM	1447	0	0	0	0	0	0	0	16-3584
+chrM	1448	0	0	0	0	0	0	0	16-3584
+chrM	1449	0	0	0	0	0	0	0	16-3584
+chrM	1450	0	0	0	0	0	0	0	16-3584
+chrM	1451	0	0	0	0	0	0	0	16-3584
+chrM	1452	0	0	0	0	0	0	0	16-3584
+chrM	1453	0	0	0	0	0	0	0	16-3584
+chrM	1454	0	0	0	0	0	0	0	16-3584
+chrM	1455	0	0	0	0	0	0	0	16-3584
+chrM	1456	0	0	0	0	0	0	0	16-3584
+chrM	1457	0	0	0	0	0	0	0	16-3584
+chrM	1458	0	0	0	0	0	0	0	16-3584
+chrM	1459	0	0	0	0	0	0	0	16-3584
+chrM	1460	0	0	0	0	0	0	0	16-3584
+chrM	1461	0	0	0	0	0	0	0	16-3584
+chrM	1462	0	0	0	0	0	0	0	16-3584
+chrM	1463	0	0	0	0	0	0	0	16-3584
+chrM	1464	0	0	0	0	0	0	0	16-3584
+chrM	1465	0	0	0	0	0	0	0	16-3584
+chrM	1466	0	0	0	0	0	0	0	16-3584
+chrM	1467	0	0	0	0	0	0	0	16-3584
+chrM	1468	0	0	0	0	0	0	0	16-3584
+chrM	1469	0	0	0	0	0	0	0	16-3584
+chrM	1470	0	0	0	0	0	0	0	16-3584
+chrM	1471	0	0	0	0	0	0	0	16-3584
+chrM	1472	0	0	0	0	0	0	0	16-3584
+chrM	1473	0	0	0	0	0	0	0	16-3584
+chrM	1474	0	0	0	0	0	0	0	16-3584
+chrM	1475	0	0	0	0	0	0	0	16-3584
+chrM	1476	0	0	0	0	0	0	0	16-3584
+chrM	1477	0	0	0	0	0	0	0	16-3584
+chrM	1478	0	0	0	0	0	0	0	16-3584
+chrM	1479	0	0	0	0	0	0	0	16-3584
+chrM	1480	0	0	0	0	0	0	0	16-3584
+chrM	1481	0	0	0	0	0	0	0	16-3584
+chrM	1482	0	0	0	0	0	0	0	16-3584
+chrM	1483	0	0	0	0	0	0	0	16-3584
+chrM	1484	0	0	0	0	0	0	0	16-3584
+chrM	1485	0	0	0	0	0	0	0	16-3584
+chrM	1486	0	0	0	0	0	0	0	16-3584
+chrM	1487	0	0	0	0	0	0	0	16-3584
+chrM	1488	0	0	0	0	0	0	0	16-3584
+chrM	1489	0	0	0	0	0	0	0	16-3584
+chrM	1490	0	0	0	0	0	0	0	16-3584
+chrM	1491	0	0	0	0	0	0	0	16-3584
+chrM	1492	0	0	0	0	0	0	0	16-3584
+chrM	1493	0	0	0	0	0	0	0	16-3584
+chrM	1494	0	0	0	0	0	0	0	16-3584
+chrM	1495	0	0	0	0	0	0	0	16-3584
+chrM	1496	0	0	0	0	0	0	0	16-3584
+chrM	1497	0	0	0	0	0	0	0	16-3584
+chrM	1498	0	0	0	0	0	0	0	16-3584
+chrM	1499	0	0	0	0	0	0	0	16-3584
+chrM	1500	0	0	0	0	0	0	0	16-3584
+chrM	1501	0	0	0	0	0	0	0	16-3584
+chrM	1502	0	0	0	0	0	0	0	16-3584
+chrM	1503	0	0	0	0	0	0	0	16-3584
+chrM	1504	0	0	0	0	0	0	0	16-3584
+chrM	1505	0	0	0	0	0	0	0	16-3584
+chrM	1506	0	0	0	0	0	0	0	16-3584
+chrM	1507	0	0	0	0	0	0	0	16-3584
+chrM	1508	0	0	0	0	0	0	0	16-3584
+chrM	1509	0	0	0	0	0	0	0	16-3584
+chrM	1510	0	0	0	0	0	0	0	16-3584
+chrM	1511	0	0	0	0	0	0	0	16-3584
+chrM	1512	0	0	0	0	0	0	0	16-3584
+chrM	1513	0	0	0	0	0	0	0	16-3584
+chrM	1514	0	0	0	0	0	0	0	16-3584
+chrM	1515	0	0	0	0	0	0	0	16-3584
+chrM	1516	0	0	0	0	0	0	0	16-3584
+chrM	1517	0	0	0	0	0	0	0	16-3584
+chrM	1518	0	0	0	0	0	0	0	16-3584
+chrM	1519	0	0	0	0	0	0	0	16-3584
+chrM	1520	0	0	0	0	0	0	0	16-3584
+chrM	1521	0	0	0	0	0	0	0	16-3584
+chrM	1522	0	0	0	0	0	0	0	16-3584
+chrM	1523	0	0	0	0	0	0	0	16-3584
+chrM	1524	0	0	0	0	0	0	0	16-3584
+chrM	1525	0	0	0	0	0	0	0	16-3584
+chrM	1526	0	0	0	0	0	0	0	16-3584
+chrM	1527	0	0	0	0	0	0	0	16-3584
+chrM	1528	0	0	0	0	0	0	0	16-3584
+chrM	1529	0	0	0	0	0	0	0	16-3584
+chrM	1530	0	0	0	0	0	0	0	16-3584
+chrM	1531	0	0	0	0	0	0	0	16-3584
+chrM	1532	0	0	0	0	0	0	0	16-3584
+chrM	1533	0	0	0	0	0	0	0	16-3584
+chrM	1534	0	0	0	0	0	0	0	16-3584
+chrM	1535	0	0	0	0	0	0	0	16-3584
+chrM	1536	0	0	0	0	0	0	0	16-3584
+chrM	1537	0	0	0	0	0	0	0	16-3584
+chrM	1538	0	0	0	0	0	0	0	16-3584
+chrM	1539	0	0	0	0	0	0	0	16-3584
+chrM	1540	0	0	0	0	0	0	0	16-3584
+chrM	1541	0	0	0	0	0	0	0	16-3584
+chrM	1542	0	0	0	0	0	0	0	16-3584
+chrM	1543	0	0	0	0	0	0	0	16-3584
+chrM	1544	0	0	0	0	0	0	0	16-3584
+chrM	1545	0	0	0	0	0	0	0	16-3584
+chrM	1546	0	0	0	0	0	0	0	16-3584
+chrM	1547	0	0	0	0	0	0	0	16-3584
+chrM	1548	0	0	0	0	0	0	0	16-3584
+chrM	1549	0	0	0	0	0	0	0	16-3584
+chrM	1550	0	0	0	0	0	0	0	16-3584
+chrM	1551	0	0	0	0	0	0	0	16-3584
+chrM	1552	0	0	0	0	0	0	0	16-3584
+chrM	1553	0	0	0	0	0	0	0	16-3584
+chrM	1554	0	0	0	0	0	0	0	16-3584
+chrM	1555	0	0	0	0	0	0	0	16-3584
+chrM	1556	0	0	0	0	0	0	0	16-3584
+chrM	1557	0	0	0	0	0	0	0	16-3584
+chrM	1558	0	0	0	0	0	0	0	16-3584
+chrM	1559	0	0	0	0	0	0	0	16-3584
+chrM	1560	0	0	0	0	0	0	0	16-3584
+chrM	1561	0	0	0	0	0	0	0	16-3584
+chrM	1562	0	0	0	0	0	0	0	16-3584
+chrM	1563	0	0	0	0	0	0	0	16-3584
+chrM	1564	0	0	0	0	0	0	0	16-3584
+chrM	1565	0	0	0	0	0	0	0	16-3584
+chrM	1566	0	0	0	0	0	0	0	16-3584
+chrM	1567	0	0	0	0	0	0	0	16-3584
+chrM	1568	0	0	0	0	0	0	0	16-3584
+chrM	1569	0	0	0	0	0	0	0	16-3584
+chrM	1570	0	0	0	0	0	0	0	16-3584
+chrM	1571	0	0	0	0	0	0	0	16-3584
+chrM	1572	0	0	0	0	0	0	0	16-3584
+chrM	1573	0	0	0	0	0	0	0	16-3584
+chrM	1574	0	0	0	0	0	0	0	16-3584
+chrM	1575	0	0	0	0	0	0	0	16-3584
+chrM	1576	0	0	0	0	0	0	0	16-3584
+chrM	1577	0	0	0	0	0	0	0	16-3584
+chrM	1578	0	0	0	0	0	0	0	16-3584
+chrM	1579	0	0	0	0	0	0	0	16-3584
+chrM	1580	0	0	0	0	0	0	0	16-3584
+chrM	1581	0	0	0	0	0	0	0	16-3584
+chrM	1582	0	0	0	0	0	0	0	16-3584
+chrM	1583	0	0	0	0	0	0	0	16-3584
+chrM	1584	0	0	0	0	0	0	0	16-3584
+chrM	1585	0	0	0	0	0	0	0	16-3584
+chrM	1586	0	0	0	0	0	0	0	16-3584
+chrM	1587	0	0	0	0	0	0	0	16-3584
+chrM	1588	0	0	0	0	0	0	0	16-3584
+chrM	1589	0	0	0	0	0	0	0	16-3584
+chrM	1590	0	0	0	0	0	0	0	16-3584
+chrM	1591	0	0	0	0	0	0	0	16-3584
+chrM	1592	0	0	0	0	0	0	0	16-3584
+chrM	1593	0	0	0	0	0	0	0	16-3584
+chrM	1594	0	0	0	0	0	0	0	16-3584
+chrM	1595	0	0	0	0	0	0	0	16-3584
+chrM	1596	0	0	0	0	0	0	0	16-3584
+chrM	1597	0	0	0	0	0	0	0	16-3584
+chrM	1598	0	0	0	0	0	0	0	16-3584
+chrM	1599	0	0	0	0	0	0	0	16-3584
+chrM	1600	0	0	0	0	0	0	0	16-3584
+chrM	1601	0	0	0	0	0	0	0	16-3584
+chrM	1602	0	0	0	0	0	0	0	16-3584
+chrM	1603	0	0	0	0	0	0	0	16-3584
+chrM	1604	0	0	0	0	0	0	0	16-3584
+chrM	1605	0	0	0	0	0	0	0	16-3584
+chrM	1606	0	0	0	0	0	0	0	16-3584
+chrM	1607	0	0	0	0	0	0	0	16-3584
+chrM	1608	0	0	0	0	0	0	0	16-3584
+chrM	1609	0	0	0	0	0	0	0	16-3584
+chrM	1610	0	0	0	0	0	0	0	16-3584
+chrM	1611	0	0	0	0	0	0	0	16-3584
+chrM	1612	0	0	0	0	0	0	0	16-3584
+chrM	1613	0	0	0	0	0	0	0	16-3584
+chrM	1614	0	0	0	0	0	0	0	16-3584
+chrM	1615	0	0	0	0	0	0	0	16-3584
+chrM	1616	0	0	0	0	0	0	0	16-3584
+chrM	1617	0	0	0	0	0	0	0	16-3584
+chrM	1618	0	0	0	0	0	0	0	16-3584
+chrM	1619	0	0	0	0	0	0	0	16-3584
+chrM	1620	0	0	0	0	0	0	0	16-3584
+chrM	1621	0	0	0	0	0	0	0	16-3584
+chrM	1622	0	0	0	0	0	0	0	16-3584
+chrM	1623	0	0	0	0	0	0	0	16-3584
+chrM	1624	0	0	0	0	0	0	0	16-3584
+chrM	1625	0	0	0	0	0	0	0	16-3584
+chrM	1626	0	0	0	0	0	0	0	16-3584
+chrM	1627	0	0	0	0	0	0	0	16-3584
+chrM	1628	0	0	0	0	0	0	0	16-3584
+chrM	1629	0	0	0	0	0	0	0	16-3584
+chrM	1630	0	0	0	0	0	0	0	16-3584
+chrM	1631	0	0	0	0	0	0	0	16-3584
+chrM	1632	0	0	0	0	0	0	0	16-3584
+chrM	1633	0	0	0	0	0	0	0	16-3584
+chrM	1634	0	0	0	0	0	0	0	16-3584
+chrM	1635	0	0	0	0	0	0	0	16-3584
+chrM	1636	0	0	0	0	0	0	0	16-3584
+chrM	1637	0	0	0	0	0	0	0	16-3584
+chrM	1638	0	0	0	0	0	0	0	16-3584
+chrM	1639	0	0	0	0	0	0	0	16-3584
+chrM	1640	0	0	0	0	0	0	0	16-3584
+chrM	1641	0	0	0	0	0	0	0	16-3584
+chrM	1642	0	0	0	0	0	0	0	16-3584
+chrM	1643	0	0	0	0	0	0	0	16-3584
+chrM	1644	0	0	0	0	0	0	0	16-3584
+chrM	1645	0	0	0	0	0	0	0	16-3584
+chrM	1646	0	0	0	0	0	0	0	16-3584
+chrM	1647	0	0	0	0	0	0	0	16-3584
+chrM	1648	0	0	0	0	0	0	0	16-3584
+chrM	1649	0	0	0	0	0	0	0	16-3584
+chrM	1650	0	0	0	0	0	0	0	16-3584
+chrM	1651	0	0	0	0	0	0	0	16-3584
+chrM	1652	0	0	0	0	0	0	0	16-3584
+chrM	1653	0	0	0	0	0	0	0	16-3584
+chrM	1654	0	0	0	0	0	0	0	16-3584
+chrM	1655	0	0	0	0	0	0	0	16-3584
+chrM	1656	0	0	0	0	0	0	0	16-3584
+chrM	1657	0	0	0	0	0	0	0	16-3584
+chrM	1658	0	0	0	0	0	0	0	16-3584
+chrM	1659	0	0	0	0	0	0	0	16-3584
+chrM	1660	0	0	0	0	0	0	0	16-3584
+chrM	1661	0	0	0	0	0	0	0	16-3584
+chrM	1662	0	0	0	0	0	0	0	16-3584
+chrM	1663	0	0	0	0	0	0	0	16-3584
+chrM	1664	0	0	0	0	0	0	0	16-3584
+chrM	1665	0	0	0	0	0	0	0	16-3584
+chrM	1666	0	0	0	0	0	0	0	16-3584
+chrM	1667	0	0	0	0	0	0	0	16-3584
+chrM	1668	0	0	0	0	0	0	0	16-3584
+chrM	1669	0	0	0	0	0	0	0	16-3584
+chrM	1670	0	0	0	0	0	0	0	16-3584
+chrM	1671	0	0	0	0	0	0	0	16-3584
+chrM	1672	0	0	0	0	0	0	0	16-3584
+chrM	1673	0	0	0	0	0	0	0	16-3584
+chrM	1674	0	0	0	0	0	0	0	16-3584
+chrM	1675	0	0	0	0	0	0	0	16-3584
+chrM	1676	0	0	0	0	0	0	0	16-3584
+chrM	1677	0	0	0	0	0	0	0	16-3584
+chrM	1678	0	0	0	0	0	0	0	16-3584
+chrM	1679	0	0	0	0	0	0	0	16-3584
+chrM	1680	0	0	0	0	0	0	0	16-3584
+chrM	1681	0	0	0	0	0	0	0	16-3584
+chrM	1682	0	0	0	0	0	0	0	16-3584
+chrM	1683	0	0	0	0	0	0	0	16-3584
+chrM	1684	0	0	0	0	0	0	0	16-3584
+chrM	1685	0	0	0	0	0	0	0	16-3584
+chrM	1686	0	0	0	0	0	0	0	16-3584
+chrM	1687	0	0	0	0	0	0	0	16-3584
+chrM	1688	0	0	0	0	0	0	0	16-3584
+chrM	1689	0	0	0	0	0	0	0	16-3584
+chrM	1690	0	0	0	0	0	0	0	16-3584
+chrM	1691	0	0	0	0	0	0	0	16-3584
+chrM	1692	0	0	0	0	0	0	0	16-3584
+chrM	1693	0	0	0	0	0	0	0	16-3584
+chrM	1694	0	0	0	0	0	0	0	16-3584
+chrM	1695	0	0	0	0	0	0	0	16-3584
+chrM	1696	0	0	0	0	0	0	0	16-3584
+chrM	1697	0	0	0	0	0	0	0	16-3584
+chrM	1698	0	0	0	0	0	0	0	16-3584
+chrM	1699	0	0	0	0	0	0	0	16-3584
+chrM	1700	0	0	0	0	0	0	0	16-3584
+chrM	1701	0	0	0	0	0	0	0	16-3584
+chrM	1702	0	0	0	0	0	0	0	16-3584
+chrM	1703	0	0	0	0	0	0	0	16-3584
+chrM	1704	0	0	0	0	0	0	0	16-3584
+chrM	1705	0	0	0	0	0	0	0	16-3584
+chrM	1706	0	0	0	0	0	0	0	16-3584
+chrM	1707	0	0	0	0	0	0	0	16-3584
+chrM	1708	0	0	0	0	0	0	0	16-3584
+chrM	1709	0	0	0	0	0	0	0	16-3584
+chrM	1710	0	0	0	0	0	0	0	16-3584
+chrM	1711	0	0	0	0	0	0	0	16-3584
+chrM	1712	0	0	0	0	0	0	0	16-3584
+chrM	1713	0	0	0	0	0	0	0	16-3584
+chrM	1714	0	0	0	0	0	0	0	16-3584
+chrM	1715	0	0	0	0	0	0	0	16-3584
+chrM	1716	0	0	0	0	0	0	0	16-3584
+chrM	1717	0	0	0	0	0	0	0	16-3584
+chrM	1718	0	0	0	0	0	0	0	16-3584
+chrM	1719	0	0	0	0	0	0	0	16-3584
+chrM	1720	0	0	0	0	0	0	0	16-3584
+chrM	1721	0	0	0	0	0	0	0	16-3584
+chrM	1722	0	0	0	0	0	0	0	16-3584
+chrM	1723	0	0	0	0	0	0	0	16-3584
+chrM	1724	0	0	0	0	0	0	0	16-3584
+chrM	1725	0	0	0	0	0	0	0	16-3584
+chrM	1726	0	0	0	0	0	0	0	16-3584
+chrM	1727	0	0	0	0	0	0	0	16-3584
+chrM	1728	0	0	0	0	0	0	0	16-3584
+chrM	1729	0	0	0	0	0	0	0	16-3584
+chrM	1730	0	0	0	0	0	0	0	16-3584
+chrM	1731	0	0	0	0	0	0	0	16-3584
+chrM	1732	0	0	0	0	0	0	0	16-3584
+chrM	1733	0	0	0	0	0	0	0	16-3584
+chrM	1734	0	0	0	0	0	0	0	16-3584
+chrM	1735	0	0	0	0	0	0	0	16-3584
+chrM	1736	0	0	0	0	0	0	0	16-3584
+chrM	1737	0	0	0	0	0	0	0	16-3584
+chrM	1738	0	0	0	0	0	0	0	16-3584
+chrM	1739	0	0	0	0	0	0	0	16-3584
+chrM	1740	0	0	0	0	0	0	0	16-3584
+chrM	1741	0	0	0	0	0	0	0	16-3584
+chrM	1742	0	0	0	0	0	0	0	16-3584
+chrM	1743	0	0	0	0	0	0	0	16-3584
+chrM	1744	0	0	0	0	0	0	0	16-3584
+chrM	1745	0	0	0	0	0	0	0	16-3584
+chrM	1746	0	0	0	0	0	0	0	16-3584
+chrM	1747	0	0	0	0	0	0	0	16-3584
+chrM	1748	0	0	0	0	0	0	0	16-3584
+chrM	1749	0	0	0	0	0	0	0	16-3584
+chrM	1750	0	0	0	0	0	0	0	16-3584
+chrM	1751	0	0	0	0	0	0	0	16-3584
+chrM	1752	0	0	0	0	0	0	0	16-3584
+chrM	1753	0	0	0	0	0	0	0	16-3584
+chrM	1754	0	0	0	0	0	0	0	16-3584
+chrM	1755	0	0	0	0	0	0	0	16-3584
+chrM	1756	0	0	0	0	0	0	0	16-3584
+chrM	1757	0	0	0	0	0	0	0	16-3584
+chrM	1758	0	0	0	0	0	0	0	16-3584
+chrM	1759	0	0	0	0	0	0	0	16-3584
+chrM	1760	0	0	0	0	0	0	0	16-3584
+chrM	1761	0	0	0	0	0	0	0	16-3584
+chrM	1762	0	0	0	0	0	0	0	16-3584
+chrM	1763	0	0	0	0	0	0	0	16-3584
+chrM	1764	0	0	0	0	0	0	0	16-3584
+chrM	1765	0	0	0	0	0	0	0	16-3584
+chrM	1766	0	0	0	0	0	0	0	16-3584
+chrM	1767	0	0	0	0	0	0	0	16-3584
+chrM	1768	0	0	0	0	0	0	0	16-3584
+chrM	1769	0	0	0	0	0	0	0	16-3584
+chrM	1770	0	0	0	0	0	0	0	16-3584
+chrM	1771	0	0	0	0	0	0	0	16-3584
+chrM	1772	0	0	0	0	0	0	0	16-3584
+chrM	1773	0	0	0	0	0	0	0	16-3584
+chrM	1774	0	0	0	0	0	0	0	16-3584
+chrM	1775	0	0	0	0	0	0	0	16-3584
+chrM	1776	0	0	0	0	0	0	0	16-3584
+chrM	1777	0	0	0	0	0	0	0	16-3584
+chrM	1778	0	0	0	0	0	0	0	16-3584
+chrM	1779	0	0	0	0	0	0	0	16-3584
+chrM	1780	0	0	0	0	0	0	0	16-3584
+chrM	1781	0	0	0	0	0	0	0	16-3584
+chrM	1782	0	0	0	0	0	0	0	16-3584
+chrM	1783	0	0	0	0	0	0	0	16-3584
+chrM	1784	0	0	0	0	0	0	0	16-3584
+chrM	1785	0	0	0	0	0	0	0	16-3584
+chrM	1786	0	0	0	0	0	0	0	16-3584
+chrM	1787	0	0	0	0	0	0	0	16-3584
+chrM	1788	0	0	0	0	0	0	0	16-3584
+chrM	1789	0	0	0	0	0	0	0	16-3584
+chrM	1790	0	0	0	0	0	0	0	16-3584
+chrM	1791	0	0	0	0	0	0	0	16-3584
+chrM	1792	0	0	0	0	0	0	0	16-3584
+chrM	1793	0	0	0	0	0	0	0	16-3584
+chrM	1794	0	0	0	0	0	0	0	16-3584
+chrM	1795	0	0	0	0	0	0	0	16-3584
+chrM	1796	0	0	0	0	0	0	0	16-3584
+chrM	1797	0	0	0	0	0	0	0	16-3584
+chrM	1798	0	0	0	0	0	0	0	16-3584
+chrM	1799	0	0	0	0	0	0	0	16-3584
+chrM	1800	0	0	0	0	0	0	0	16-3584
+chrM	1801	0	0	0	0	0	0	0	16-3584
+chrM	1802	0	0	0	0	0	0	0	16-3584
+chrM	1803	0	0	0	0	0	0	0	16-3584
+chrM	1804	0	0	0	0	0	0	0	16-3584
+chrM	1805	0	0	0	0	0	0	0	16-3584
+chrM	1806	0	0	0	0	0	0	0	16-3584
+chrM	1807	0	0	0	0	0	0	0	16-3584
+chrM	1808	0	0	0	0	0	0	0	16-3584
+chrM	1809	0	0	0	0	0	0	0	16-3584
+chrM	1810	0	0	0	0	0	0	0	16-3584
+chrM	1811	0	0	0	0	0	0	0	16-3584
+chrM	1812	0	0	0	0	0	0	0	16-3584
+chrM	1813	0	0	0	0	0	0	0	16-3584
+chrM	1814	0	0	0	0	0	0	0	16-3584
+chrM	1815	0	0	0	0	0	0	0	16-3584
+chrM	1816	0	0	0	0	0	0	0	16-3584
+chrM	1817	0	0	0	0	0	0	0	16-3584
+chrM	1818	0	0	0	0	0	0	0	16-3584
+chrM	1819	0	0	0	0	0	0	0	16-3584
+chrM	1820	0	0	0	0	0	0	0	16-3584
+chrM	1821	0	0	0	0	0	0	0	16-3584
+chrM	1822	0	0	0	0	0	0	0	16-3584
+chrM	1823	0	0	0	0	0	0	0	16-3584
+chrM	1824	0	0	0	0	0	0	0	16-3584
+chrM	1825	0	0	0	0	0	0	0	16-3584
+chrM	1826	0	0	0	0	0	0	0	16-3584
+chrM	1827	0	0	0	0	0	0	0	16-3584
+chrM	1828	0	0	0	0	0	0	0	16-3584
+chrM	1829	0	0	0	0	0	0	0	16-3584
+chrM	1830	0	0	0	0	0	0	0	16-3584
+chrM	1831	0	0	0	0	0	0	0	16-3584
+chrM	1832	0	0	0	0	0	0	0	16-3584
+chrM	1833	0	0	0	0	0	0	0	16-3584
+chrM	1834	0	0	0	0	0	0	0	16-3584
+chrM	1835	0	0	0	0	0	0	0	16-3584
+chrM	1836	0	0	0	0	0	0	0	16-3584
+chrM	1837	0	0	0	0	0	0	0	16-3584
+chrM	1838	0	0	0	0	0	0	0	16-3584
+chrM	1839	0	0	0	0	0	0	0	16-3584
+chrM	1840	0	0	0	0	0	0	0	16-3584
+chrM	1841	0	0	0	0	0	0	0	16-3584
+chrM	1842	0	0	0	0	0	0	0	16-3584
+chrM	1843	0	0	0	0	0	0	0	16-3584
+chrM	1844	0	0	0	0	0	0	0	16-3584
+chrM	1845	0	0	0	0	0	0	0	16-3584
+chrM	1846	0	0	0	0	0	0	0	16-3584
+chrM	1847	0	0	0	0	0	0	0	16-3584
+chrM	1848	0	0	0	0	0	0	0	16-3584
+chrM	1849	0	0	0	0	0	0	0	16-3584
+chrM	1850	0	0	0	0	0	0	0	16-3584
+chrM	1851	0	0	0	0	0	0	0	16-3584
+chrM	1852	0	0	0	0	0	0	0	16-3584
+chrM	1853	0	0	0	0	0	0	0	16-3584
+chrM	1854	0	0	0	0	0	0	0	16-3584
+chrM	1855	0	0	0	0	0	0	0	16-3584
+chrM	1856	0	0	0	0	0	0	0	16-3584
+chrM	1857	0	0	0	0	0	0	0	16-3584
+chrM	1858	0	0	0	0	0	0	0	16-3584
+chrM	1859	0	0	0	0	0	0	0	16-3584
+chrM	1860	15	2	4	6	3	0	0	16-3584
+chrM	1861	15	4	1	3	7	0	0	16-3584
+chrM	1862	15	3	7	2	3	0	0	16-3584
+chrM	1863	15	4	5	4	2	0	0	16-3584
+chrM	1864	15	3	4	3	5	0	0	16-3584
+chrM	1865	30	8	8	11	3	0	0	16-3584
+chrM	1866	30	7	4	10	9	0	0	16-3584
+chrM	1867	30	9	6	6	9	0	0	16-3584
+chrM	1868	30	6	4	9	11	0	0	16-3584
+chrM	1869	30	8	9	6	7	0	0	16-3584
+chrM	1870	30	7	6	10	7	0	0	16-3584
+chrM	1871	30	10	6	7	7	0	0	16-3584
+chrM	1872	30	7	5	9	9	0	0	16-3584
+chrM	1873	30	6	11	8	5	0	0	16-3584
+chrM	1874	30	7	6	10	7	0	0	16-3584
+chrM	1875	30	5	6	5	14	0	0	16-3584
+chrM	1876	30	8	9	8	5	0	0	16-3584
+chrM	1877	30	7	6	12	5	0	0	16-3584
+chrM	1878	30	7	12	6	5	0	0	16-3584
+chrM	1879	30	8	6	7	9	0	0	16-3584
+chrM	1880	30	10	6	7	7	0	0	16-3584
+chrM	1881	30	6	12	7	5	0	0	16-3584
+chrM	1882	30	6	8	7	9	0	0	16-3584
+chrM	1883	30	7	8	8	7	0	0	16-3584
+chrM	1884	30	8	6	4	12	0	0	16-3584
+chrM	1885	30	11	6	8	5	0	0	16-3584
+chrM	1886	30	7	6	8	9	0	0	16-3584
+chrM	1887	30	7	12	7	4	0	0	16-3584
+chrM	1888	30	9	7	8	6	0	0	16-3584
+chrM	1889	30	9	4	8	9	0	0	16-3584
+chrM	1890	30	7	6	8	9	0	0	16-3584
+chrM	1891	30	8	8	6	8	0	0	16-3584
+chrM	1892	30	10	7	8	5	0	0	16-3584
+chrM	1893	30	3	8	8	11	0	0	16-3584
+chrM	1894	30	6	8	8	8	0	0	16-3584
+chrM	1895	30	7	9	7	7	0	0	16-3584
+chrM	1896	30	9	4	8	9	0	0	16-3584
+chrM	1897	30	5	9	5	11	0	0	16-3584
+chrM	1898	30	10	6	4	10	0	0	16-3584
+chrM	1899	30	6	8	10	6	0	0	16-3584
+chrM	1900	30	8	6	8	8	0	0	16-3584
+chrM	1901	30	7	11	4	8	0	0	16-3584
+chrM	1902	30	9	7	6	8	0	0	16-3584
+chrM	1903	30	7	7	7	9	0	0	16-3584
+chrM	1904	30	6	5	8	11	0	0	16-3584
+chrM	1905	30	6	6	8	10	0	0	16-3584
+chrM	1906	30	12	6	10	2	0	0	16-3584
+chrM	1907	30	7	6	4	13	0	0	16-3584
+chrM	1908	30	8	8	7	7	0	0	16-3584
+chrM	1909	30	6	8	11	5	0	0	16-3584
+chrM	1910	30	10	13	6	1	0	0	16-3584
+chrM	1911	30	8	6	13	3	0	0	16-3584
+chrM	1912	30	5	9	10	6	0	0	16-3584
+chrM	1913	30	5	7	7	11	0	0	16-3584
+chrM	1914	30	8	9	9	4	0	0	16-3584
+chrM	1915	30	7	5	12	6	0	0	16-3584
+chrM	1916	30	10	8	5	7	0	0	16-3584
+chrM	1917	30	5	5	10	10	0	0	16-3584
+chrM	1918	30	4	9	11	6	0	0	16-3584
+chrM	1919	30	11	7	7	5	0	0	16-3584
+chrM	1920	30	7	10	8	5	0	0	16-3584
+chrM	1921	30	7	6	10	7	0	0	16-3584
+chrM	1922	30	11	6	8	5	0	0	16-3584
+chrM	1923	30	6	9	8	7	0	0	16-3584
+chrM	1924	30	9	7	8	6	0	0	16-3584
+chrM	1925	30	6	7	7	10	0	0	16-3584
+chrM	1926	30	8	4	5	13	0	0	16-3584
+chrM	1927	30	6	9	6	9	0	0	16-3584
+chrM	1928	30	6	5	10	9	0	0	16-3584
+chrM	1929	30	4	10	8	8	0	0	16-3584
+chrM	1930	30	5	8	9	8	0	0	16-3584
+chrM	1931	30	6	5	9	10	0	0	16-3584
+chrM	1932	30	10	6	8	6	0	0	16-3584
+chrM	1933	30	8	4	6	12	0	0	16-3584
+chrM	1934	30	6	9	7	8	0	0	16-3584
+chrM	1935	30	8	7	9	6	0	0	16-3584
+chrM	1936	30	7	4	7	12	0	0	16-3584
+chrM	1937	30	12	9	7	2	0	0	16-3584
+chrM	1938	30	8	9	7	6	0	0	16-3584
+chrM	1939	30	5	5	9	11	0	0	16-3584
+chrM	1940	15	6	5	3	1	0	0	16-3584
+chrM	1941	15	6	2	2	5	0	0	16-3584
+chrM	1942	15	1	2	5	7	0	0	16-3584
+chrM	1943	15	6	3	3	3	0	0	16-3584
+chrM	1944	15	3	2	4	6	0	0	16-3584
+chrM	1945	0	0	0	0	0	0	0	16-3584
+chrM	1946	0	0	0	0	0	0	0	16-3584
+chrM	1947	0	0	0	0	0	0	0	16-3584
+chrM	1948	0	0	0	0	0	0	0	16-3584
+chrM	1949	0	0	0	0	0	0	0	16-3584
+chrM	1950	0	0	0	0	0	0	0	16-3584
+chrM	1951	0	0	0	0	0	0	0	16-3584
+chrM	1952	0	0	0	0	0	0	0	16-3584
+chrM	1953	0	0	0	0	0	0	0	16-3584
+chrM	1954	0	0	0	0	0	0	0	16-3584
+chrM	1955	0	0	0	0	0	0	0	16-3584
+chrM	1956	0	0	0	0	0	0	0	16-3584
+chrM	1957	0	0	0	0	0	0	0	16-3584
+chrM	1958	0	0	0	0	0	0	0	16-3584
+chrM	1959	0	0	0	0	0	0	0	16-3584
+chrM	1960	0	0	0	0	0	0	0	16-3584
+chrM	1961	0	0	0	0	0	0	0	16-3584
+chrM	1962	0	0	0	0	0	0	0	16-3584
+chrM	1963	0	0	0	0	0	0	0	16-3584
+chrM	1964	0	0	0	0	0	0	0	16-3584
+chrM	1965	0	0	0	0	0	0	0	16-3584
+chrM	1966	0	0	0	0	0	0	0	16-3584
+chrM	1967	0	0	0	0	0	0	0	16-3584
+chrM	1968	0	0	0	0	0	0	0	16-3584
+chrM	1969	0	0	0	0	0	0	0	16-3584
+chrM	1970	0	0	0	0	0	0	0	16-3584
+chrM	1971	0	0	0	0	0	0	0	16-3584
+chrM	1972	0	0	0	0	0	0	0	16-3584
+chrM	1973	0	0	0	0	0	0	0	16-3584
+chrM	1974	0	0	0	0	0	0	0	16-3584
+chrM	1975	0	0	0	0	0	0	0	16-3584
+chrM	1976	0	0	0	0	0	0	0	16-3584
+chrM	1977	0	0	0	0	0	0	0	16-3584
+chrM	1978	0	0	0	0	0	0	0	16-3584
+chrM	1979	0	0	0	0	0	0	0	16-3584
+chrM	1980	0	0	0	0	0	0	0	16-3584
+chrM	1981	0	0	0	0	0	0	0	16-3584
+chrM	1982	0	0	0	0	0	0	0	16-3584
+chrM	1983	0	0	0	0	0	0	0	16-3584
+chrM	1984	0	0	0	0	0	0	0	16-3584
+chrM	1985	0	0	0	0	0	0	0	16-3584
+chrM	1986	0	0	0	0	0	0	0	16-3584
+chrM	1987	0	0	0	0	0	0	0	16-3584
+chrM	1988	0	0	0	0	0	0	0	16-3584
+chrM	1989	0	0	0	0	0	0	0	16-3584
+chrM	1990	0	0	0	0	0	0	0	16-3584
+chrM	1991	0	0	0	0	0	0	0	16-3584
+chrM	1992	0	0	0	0	0	0	0	16-3584
+chrM	1993	0	0	0	0	0	0	0	16-3584
+chrM	1994	0	0	0	0	0	0	0	16-3584
+chrM	1995	0	0	0	0	0	0	0	16-3584
+chrM	1996	0	0	0	0	0	0	0	16-3584
+chrM	1997	0	0	0	0	0	0	0	16-3584
+chrM	1998	0	0	0	0	0	0	0	16-3584
+chrM	1999	0	0	0	0	0	0	0	16-3584
+chrM	2000	0	0	0	0	0	0	0	16-3584
+chrM	2001	0	0	0	0	0	0	0	16-3584
+chrM	2002	0	0	0	0	0	0	0	16-3584
+chrM	2003	0	0	0	0	0	0	0	16-3584
+chrM	2004	0	0	0	0	0	0	0	16-3584
+chrM	2005	0	0	0	0	0	0	0	16-3584
+chrM	2006	0	0	0	0	0	0	0	16-3584
+chrM	2007	0	0	0	0	0	0	0	16-3584
+chrM	2008	0	0	0	0	0	0	0	16-3584
+chrM	2009	0	0	0	0	0	0	0	16-3584
+chrM	2010	0	0	0	0	0	0	0	16-3584
+chrM	2011	0	0	0	0	0	0	0	16-3584
+chrM	2012	0	0	0	0	0	0	0	16-3584
+chrM	2013	0	0	0	0	0	0	0	16-3584
+chrM	2014	0	0	0	0	0	0	0	16-3584
+chrM	2015	0	0	0	0	0	0	0	16-3584
+chrM	2016	0	0	0	0	0	0	0	16-3584
+chrM	2017	0	0	0	0	0	0	0	16-3584
+chrM	2018	0	0	0	0	0	0	0	16-3584
+chrM	2019	0	0	0	0	0	0	0	16-3584
+chrM	2020	0	0	0	0	0	0	0	16-3584
+chrM	2021	0	0	0	0	0	0	0	16-3584
+chrM	2022	0	0	0	0	0	0	0	16-3584
+chrM	2023	0	0	0	0	0	0	0	16-3584
+chrM	2024	0	0	0	0	0	0	0	16-3584
+chrM	2025	0	0	0	0	0	0	0	16-3584
+chrM	2026	0	0	0	0	0	0	0	16-3584
+chrM	2027	0	0	0	0	0	0	0	16-3584
+chrM	2028	0	0	0	0	0	0	0	16-3584
+chrM	2029	0	0	0	0	0	0	0	16-3584
+chrM	2030	0	0	0	0	0	0	0	16-3584
+chrM	2031	0	0	0	0	0	0	0	16-3584
+chrM	2032	0	0	0	0	0	0	0	16-3584
+chrM	2033	0	0	0	0	0	0	0	16-3584
+chrM	2034	0	0	0	0	0	0	0	16-3584
+chrM	2035	0	0	0	0	0	0	0	16-3584
+chrM	2036	0	0	0	0	0	0	0	16-3584
+chrM	2037	0	0	0	0	0	0	0	16-3584
+chrM	2038	0	0	0	0	0	0	0	16-3584
+chrM	2039	0	0	0	0	0	0	0	16-3584
+chrM	2040	0	0	0	0	0	0	0	16-3584
+chrM	2041	0	0	0	0	0	0	0	16-3584
+chrM	2042	0	0	0	0	0	0	0	16-3584
+chrM	2043	0	0	0	0	0	0	0	16-3584
+chrM	2044	0	0	0	0	0	0	0	16-3584
+chrM	2045	0	0	0	0	0	0	0	16-3584
+chrM	2046	0	0	0	0	0	0	0	16-3584
+chrM	2047	0	0	0	0	0	0	0	16-3584
+chrM	2048	0	0	0	0	0	0	0	16-3584
+chrM	2049	0	0	0	0	0	0	0	16-3584
+chrM	2050	0	0	0	0	0	0	0	16-3584
+chrM	2051	0	0	0	0	0	0	0	16-3584
+chrM	2052	0	0	0	0	0	0	0	16-3584
+chrM	2053	0	0	0	0	0	0	0	16-3584
+chrM	2054	0	0	0	0	0	0	0	16-3584
+chrM	2055	0	0	0	0	0	0	0	16-3584
+chrM	2056	0	0	0	0	0	0	0	16-3584
+chrM	2057	0	0	0	0	0	0	0	16-3584
+chrM	2058	0	0	0	0	0	0	0	16-3584
+chrM	2059	0	0	0	0	0	0	0	16-3584
+chrM	2060	0	0	0	0	0	0	0	16-3584
+chrM	2061	0	0	0	0	0	0	0	16-3584
+chrM	2062	0	0	0	0	0	0	0	16-3584
+chrM	2063	0	0	0	0	0	0	0	16-3584
+chrM	2064	0	0	0	0	0	0	0	16-3584
+chrM	2065	0	0	0	0	0	0	0	16-3584
+chrM	2066	0	0	0	0	0	0	0	16-3584
+chrM	2067	0	0	0	0	0	0	0	16-3584
+chrM	2068	0	0	0	0	0	0	0	16-3584
+chrM	2069	0	0	0	0	0	0	0	16-3584
+chrM	2070	0	0	0	0	0	0	0	16-3584
+chrM	2071	0	0	0	0	0	0	0	16-3584
+chrM	2072	0	0	0	0	0	0	0	16-3584
+chrM	2073	0	0	0	0	0	0	0	16-3584
+chrM	2074	0	0	0	0	0	0	0	16-3584
+chrM	2075	0	0	0	0	0	0	0	16-3584
+chrM	2076	0	0	0	0	0	0	0	16-3584
+chrM	2077	0	0	0	0	0	0	0	16-3584
+chrM	2078	0	0	0	0	0	0	0	16-3584
+chrM	2079	0	0	0	0	0	0	0	16-3584
+chrM	2080	0	0	0	0	0	0	0	16-3584
+chrM	2081	0	0	0	0	0	0	0	16-3584
+chrM	2082	0	0	0	0	0	0	0	16-3584
+chrM	2083	0	0	0	0	0	0	0	16-3584
+chrM	2084	0	0	0	0	0	0	0	16-3584
+chrM	2085	0	0	0	0	0	0	0	16-3584
+chrM	2086	0	0	0	0	0	0	0	16-3584
+chrM	2087	0	0	0	0	0	0	0	16-3584
+chrM	2088	0	0	0	0	0	0	0	16-3584
+chrM	2089	0	0	0	0	0	0	0	16-3584
+chrM	2090	0	0	0	0	0	0	0	16-3584
+chrM	2091	0	0	0	0	0	0	0	16-3584
+chrM	2092	0	0	0	0	0	0	0	16-3584
+chrM	2093	0	0	0	0	0	0	0	16-3584
+chrM	2094	0	0	0	0	0	0	0	16-3584
+chrM	2095	0	0	0	0	0	0	0	16-3584
+chrM	2096	0	0	0	0	0	0	0	16-3584
+chrM	2097	0	0	0	0	0	0	0	16-3584
+chrM	2098	0	0	0	0	0	0	0	16-3584
+chrM	2099	0	0	0	0	0	0	0	16-3584
+chrM	2100	0	0	0	0	0	0	0	16-3584
+chrM	2101	0	0	0	0	0	0	0	16-3584
+chrM	2102	0	0	0	0	0	0	0	16-3584
+chrM	2103	0	0	0	0	0	0	0	16-3584
+chrM	2104	0	0	0	0	0	0	0	16-3584
+chrM	2105	0	0	0	0	0	0	0	16-3584
+chrM	2106	0	0	0	0	0	0	0	16-3584
+chrM	2107	0	0	0	0	0	0	0	16-3584
+chrM	2108	0	0	0	0	0	0	0	16-3584
+chrM	2109	0	0	0	0	0	0	0	16-3584
+chrM	2110	0	0	0	0	0	0	0	16-3584
+chrM	2111	0	0	0	0	0	0	0	16-3584
+chrM	2112	0	0	0	0	0	0	0	16-3584
+chrM	2113	0	0	0	0	0	0	0	16-3584
+chrM	2114	0	0	0	0	0	0	0	16-3584
+chrM	2115	0	0	0	0	0	0	0	16-3584
+chrM	2116	0	0	0	0	0	0	0	16-3584
+chrM	2117	0	0	0	0	0	0	0	16-3584
+chrM	2118	0	0	0	0	0	0	0	16-3584
+chrM	2119	0	0	0	0	0	0	0	16-3584
+chrM	2120	0	0	0	0	0	0	0	16-3584
+chrM	2121	0	0	0	0	0	0	0	16-3584
+chrM	2122	0	0	0	0	0	0	0	16-3584
+chrM	2123	0	0	0	0	0	0	0	16-3584
+chrM	2124	0	0	0	0	0	0	0	16-3584
+chrM	2125	0	0	0	0	0	0	0	16-3584
+chrM	2126	0	0	0	0	0	0	0	16-3584
+chrM	2127	0	0	0	0	0	0	0	16-3584
+chrM	2128	0	0	0	0	0	0	0	16-3584
+chrM	2129	0	0	0	0	0	0	0	16-3584
+chrM	2130	0	0	0	0	0	0	0	16-3584
+chrM	2131	0	0	0	0	0	0	0	16-3584
+chrM	2132	0	0	0	0	0	0	0	16-3584
+chrM	2133	0	0	0	0	0	0	0	16-3584
+chrM	2134	0	0	0	0	0	0	0	16-3584
+chrM	2135	0	0	0	0	0	0	0	16-3584
+chrM	2136	0	0	0	0	0	0	0	16-3584
+chrM	2137	0	0	0	0	0	0	0	16-3584
+chrM	2138	0	0	0	0	0	0	0	16-3584
+chrM	2139	0	0	0	0	0	0	0	16-3584
+chrM	2140	0	0	0	0	0	0	0	16-3584
+chrM	2141	0	0	0	0	0	0	0	16-3584
+chrM	2142	0	0	0	0	0	0	0	16-3584
+chrM	2143	0	0	0	0	0	0	0	16-3584
+chrM	2144	0	0	0	0	0	0	0	16-3584
+chrM	2145	0	0	0	0	0	0	0	16-3584
+chrM	2146	0	0	0	0	0	0	0	16-3584
+chrM	2147	0	0	0	0	0	0	0	16-3584
+chrM	2148	0	0	0	0	0	0	0	16-3584
+chrM	2149	0	0	0	0	0	0	0	16-3584
+chrM	2150	0	0	0	0	0	0	0	16-3584
+chrM	2151	0	0	0	0	0	0	0	16-3584
+chrM	2152	0	0	0	0	0	0	0	16-3584
+chrM	2153	0	0	0	0	0	0	0	16-3584
+chrM	2154	0	0	0	0	0	0	0	16-3584
+chrM	2155	0	0	0	0	0	0	0	16-3584
+chrM	2156	0	0	0	0	0	0	0	16-3584
+chrM	2157	0	0	0	0	0	0	0	16-3584
+chrM	2158	0	0	0	0	0	0	0	16-3584
+chrM	2159	0	0	0	0	0	0	0	16-3584
+chrM	2160	0	0	0	0	0	0	0	16-3584
+chrM	2161	0	0	0	0	0	0	0	16-3584
+chrM	2162	0	0	0	0	0	0	0	16-3584
+chrM	2163	0	0	0	0	0	0	0	16-3584
+chrM	2164	0	0	0	0	0	0	0	16-3584
+chrM	2165	0	0	0	0	0	0	0	16-3584
+chrM	2166	0	0	0	0	0	0	0	16-3584
+chrM	2167	0	0	0	0	0	0	0	16-3584
+chrM	2168	0	0	0	0	0	0	0	16-3584
+chrM	2169	0	0	0	0	0	0	0	16-3584
+chrM	2170	0	0	0	0	0	0	0	16-3584
+chrM	2171	0	0	0	0	0	0	0	16-3584
+chrM	2172	0	0	0	0	0	0	0	16-3584
+chrM	2173	0	0	0	0	0	0	0	16-3584
+chrM	2174	0	0	0	0	0	0	0	16-3584
+chrM	2175	0	0	0	0	0	0	0	16-3584
+chrM	2176	0	0	0	0	0	0	0	16-3584
+chrM	2177	0	0	0	0	0	0	0	16-3584
+chrM	2178	0	0	0	0	0	0	0	16-3584
+chrM	2179	0	0	0	0	0	0	0	16-3584
+chrM	2180	0	0	0	0	0	0	0	16-3584
+chrM	2181	0	0	0	0	0	0	0	16-3584
+chrM	2182	0	0	0	0	0	0	0	16-3584
+chrM	2183	0	0	0	0	0	0	0	16-3584
+chrM	2184	0	0	0	0	0	0	0	16-3584
+chrM	2185	0	0	0	0	0	0	0	16-3584
+chrM	2186	0	0	0	0	0	0	0	16-3584
+chrM	2187	0	0	0	0	0	0	0	16-3584
+chrM	2188	0	0	0	0	0	0	0	16-3584
+chrM	2189	0	0	0	0	0	0	0	16-3584
+chrM	2190	0	0	0	0	0	0	0	16-3584
+chrM	2191	0	0	0	0	0	0	0	16-3584
+chrM	2192	0	0	0	0	0	0	0	16-3584
+chrM	2193	0	0	0	0	0	0	0	16-3584
+chrM	2194	0	0	0	0	0	0	0	16-3584
+chrM	2195	0	0	0	0	0	0	0	16-3584
+chrM	2196	0	0	0	0	0	0	0	16-3584
+chrM	2197	0	0	0	0	0	0	0	16-3584
+chrM	2198	0	0	0	0	0	0	0	16-3584
+chrM	2199	0	0	0	0	0	0	0	16-3584
+chrM	2200	0	0	0	0	0	0	0	16-3584
+chrM	2201	0	0	0	0	0	0	0	16-3584
+chrM	2202	0	0	0	0	0	0	0	16-3584
+chrM	2203	0	0	0	0	0	0	0	16-3584
+chrM	2204	0	0	0	0	0	0	0	16-3584
+chrM	2205	0	0	0	0	0	0	0	16-3584
+chrM	2206	0	0	0	0	0	0	0	16-3584
+chrM	2207	0	0	0	0	0	0	0	16-3584
+chrM	2208	0	0	0	0	0	0	0	16-3584
+chrM	2209	0	0	0	0	0	0	0	16-3584
+chrM	2210	0	0	0	0	0	0	0	16-3584
+chrM	2211	0	0	0	0	0	0	0	16-3584
+chrM	2212	0	0	0	0	0	0	0	16-3584
+chrM	2213	0	0	0	0	0	0	0	16-3584
+chrM	2214	0	0	0	0	0	0	0	16-3584
+chrM	2215	0	0	0	0	0	0	0	16-3584
+chrM	2216	0	0	0	0	0	0	0	16-3584
+chrM	2217	0	0	0	0	0	0	0	16-3584
+chrM	2218	0	0	0	0	0	0	0	16-3584
+chrM	2219	0	0	0	0	0	0	0	16-3584
+chrM	2220	0	0	0	0	0	0	0	16-3584
+chrM	2221	0	0	0	0	0	0	0	16-3584
+chrM	2222	0	0	0	0	0	0	0	16-3584
+chrM	2223	0	0	0	0	0	0	0	16-3584
+chrM	2224	0	0	0	0	0	0	0	16-3584
+chrM	2225	0	0	0	0	0	0	0	16-3584
+chrM	2226	0	0	0	0	0	0	0	16-3584
+chrM	2227	0	0	0	0	0	0	0	16-3584
+chrM	2228	0	0	0	0	0	0	0	16-3584
+chrM	2229	0	0	0	0	0	0	0	16-3584
+chrM	2230	0	0	0	0	0	0	0	16-3584
+chrM	2231	0	0	0	0	0	0	0	16-3584
+chrM	2232	0	0	0	0	0	0	0	16-3584
+chrM	2233	0	0	0	0	0	0	0	16-3584
+chrM	2234	0	0	0	0	0	0	0	16-3584
+chrM	2235	0	0	0	0	0	0	0	16-3584
+chrM	2236	0	0	0	0	0	0	0	16-3584
+chrM	2237	0	0	0	0	0	0	0	16-3584
+chrM	2238	0	0	0	0	0	0	0	16-3584
+chrM	2239	0	0	0	0	0	0	0	16-3584
+chrM	2240	0	0	0	0	0	0	0	16-3584
+chrM	2241	0	0	0	0	0	0	0	16-3584
+chrM	2242	0	0	0	0	0	0	0	16-3584
+chrM	2243	0	0	0	0	0	0	0	16-3584
+chrM	2244	0	0	0	0	0	0	0	16-3584
+chrM	2245	0	0	0	0	0	0	0	16-3584
+chrM	2246	0	0	0	0	0	0	0	16-3584
+chrM	2247	0	0	0	0	0	0	0	16-3584
+chrM	2248	0	0	0	0	0	0	0	16-3584
+chrM	2249	0	0	0	0	0	0	0	16-3584
+chrM	2250	0	0	0	0	0	0	0	16-3584
+chrM	2251	0	0	0	0	0	0	0	16-3584
+chrM	2252	0	0	0	0	0	0	0	16-3584
+chrM	2253	0	0	0	0	0	0	0	16-3584
+chrM	2254	0	0	0	0	0	0	0	16-3584
+chrM	2255	0	0	0	0	0	0	0	16-3584
+chrM	2256	0	0	0	0	0	0	0	16-3584
+chrM	2257	0	0	0	0	0	0	0	16-3584
+chrM	2258	0	0	0	0	0	0	0	16-3584
+chrM	2259	0	0	0	0	0	0	0	16-3584
+chrM	2260	0	0	0	0	0	0	0	16-3584
+chrM	2261	0	0	0	0	0	0	0	16-3584
+chrM	2262	0	0	0	0	0	0	0	16-3584
+chrM	2263	0	0	0	0	0	0	0	16-3584
+chrM	2264	0	0	0	0	0	0	0	16-3584
+chrM	2265	0	0	0	0	0	0	0	16-3584
+chrM	2266	0	0	0	0	0	0	0	16-3584
+chrM	2267	0	0	0	0	0	0	0	16-3584
+chrM	2268	0	0	0	0	0	0	0	16-3584
+chrM	2269	0	0	0	0	0	0	0	16-3584
+chrM	2270	0	0	0	0	0	0	0	16-3584
+chrM	2271	0	0	0	0	0	0	0	16-3584
+chrM	2272	0	0	0	0	0	0	0	16-3584
+chrM	2273	0	0	0	0	0	0	0	16-3584
+chrM	2274	0	0	0	0	0	0	0	16-3584
+chrM	2275	0	0	0	0	0	0	0	16-3584
+chrM	2276	0	0	0	0	0	0	0	16-3584
+chrM	2277	0	0	0	0	0	0	0	16-3584
+chrM	2278	0	0	0	0	0	0	0	16-3584
+chrM	2279	0	0	0	0	0	0	0	16-3584
+chrM	2280	0	0	0	0	0	0	0	16-3584
+chrM	2281	0	0	0	0	0	0	0	16-3584
+chrM	2282	0	0	0	0	0	0	0	16-3584
+chrM	2283	0	0	0	0	0	0	0	16-3584
+chrM	2284	0	0	0	0	0	0	0	16-3584
+chrM	2285	0	0	0	0	0	0	0	16-3584
+chrM	2286	0	0	0	0	0	0	0	16-3584
+chrM	2287	0	0	0	0	0	0	0	16-3584
+chrM	2288	0	0	0	0	0	0	0	16-3584
+chrM	2289	0	0	0	0	0	0	0	16-3584
+chrM	2290	0	0	0	0	0	0	0	16-3584
+chrM	2291	0	0	0	0	0	0	0	16-3584
+chrM	2292	0	0	0	0	0	0	0	16-3584
+chrM	2293	0	0	0	0	0	0	0	16-3584
+chrM	2294	0	0	0	0	0	0	0	16-3584
+chrM	2295	0	0	0	0	0	0	0	16-3584
+chrM	2296	0	0	0	0	0	0	0	16-3584
+chrM	2297	0	0	0	0	0	0	0	16-3584
+chrM	2298	0	0	0	0	0	0	0	16-3584
+chrM	2299	0	0	0	0	0	0	0	16-3584
+chrM	2300	0	0	0	0	0	0	0	16-3584
+chrM	2301	0	0	0	0	0	0	0	16-3584
+chrM	2302	0	0	0	0	0	0	0	16-3584
+chrM	2303	0	0	0	0	0	0	0	16-3584
+chrM	2304	0	0	0	0	0	0	0	16-3584
+chrM	2305	0	0	0	0	0	0	0	16-3584
+chrM	2306	0	0	0	0	0	0	0	16-3584
+chrM	2307	0	0	0	0	0	0	0	16-3584
+chrM	2308	0	0	0	0	0	0	0	16-3584
+chrM	2309	0	0	0	0	0	0	0	16-3584
+chrM	2310	0	0	0	0	0	0	0	16-3584
+chrM	2311	0	0	0	0	0	0	0	16-3584
+chrM	2312	0	0	0	0	0	0	0	16-3584
+chrM	2313	0	0	0	0	0	0	0	16-3584
+chrM	2314	0	0	0	0	0	0	0	16-3584
+chrM	2315	0	0	0	0	0	0	0	16-3584
+chrM	2316	0	0	0	0	0	0	0	16-3584
+chrM	2317	0	0	0	0	0	0	0	16-3584
+chrM	2318	0	0	0	0	0	0	0	16-3584
+chrM	2319	0	0	0	0	0	0	0	16-3584
+chrM	2320	0	0	0	0	0	0	0	16-3584
+chrM	2321	0	0	0	0	0	0	0	16-3584
+chrM	2322	0	0	0	0	0	0	0	16-3584
+chrM	2323	0	0	0	0	0	0	0	16-3584
+chrM	2324	0	0	0	0	0	0	0	16-3584
+chrM	2325	0	0	0	0	0	0	0	16-3584
+chrM	2326	0	0	0	0	0	0	0	16-3584
+chrM	2327	0	0	0	0	0	0	0	16-3584
+chrM	2328	0	0	0	0	0	0	0	16-3584
+chrM	2329	0	0	0	0	0	0	0	16-3584
+chrM	2330	0	0	0	0	0	0	0	16-3584
+chrM	2331	0	0	0	0	0	0	0	16-3584
+chrM	2332	0	0	0	0	0	0	0	16-3584
+chrM	2333	0	0	0	0	0	0	0	16-3584
+chrM	2334	0	0	0	0	0	0	0	16-3584
+chrM	2335	0	0	0	0	0	0	0	16-3584
+chrM	2336	0	0	0	0	0	0	0	16-3584
+chrM	2337	0	0	0	0	0	0	0	16-3584
+chrM	2338	0	0	0	0	0	0	0	16-3584
+chrM	2339	0	0	0	0	0	0	0	16-3584
+chrM	2340	0	0	0	0	0	0	0	16-3584
+chrM	2341	0	0	0	0	0	0	0	16-3584
+chrM	2342	0	0	0	0	0	0	0	16-3584
+chrM	2343	0	0	0	0	0	0	0	16-3584
+chrM	2344	0	0	0	0	0	0	0	16-3584
+chrM	2345	0	0	0	0	0	0	0	16-3584
+chrM	2346	0	0	0	0	0	0	0	16-3584
+chrM	2347	0	0	0	0	0	0	0	16-3584
+chrM	2348	0	0	0	0	0	0	0	16-3584
+chrM	2349	0	0	0	0	0	0	0	16-3584
+chrM	2350	0	0	0	0	0	0	0	16-3584
+chrM	2351	0	0	0	0	0	0	0	16-3584
+chrM	2352	0	0	0	0	0	0	0	16-3584
+chrM	2353	0	0	0	0	0	0	0	16-3584
+chrM	2354	0	0	0	0	0	0	0	16-3584
+chrM	2355	0	0	0	0	0	0	0	16-3584
+chrM	2356	0	0	0	0	0	0	0	16-3584
+chrM	2357	0	0	0	0	0	0	0	16-3584
+chrM	2358	0	0	0	0	0	0	0	16-3584
+chrM	2359	0	0	0	0	0	0	0	16-3584
+chrM	2360	0	0	0	0	0	0	0	16-3584
+chrM	2361	0	0	0	0	0	0	0	16-3584
+chrM	2362	0	0	0	0	0	0	0	16-3584
+chrM	2363	0	0	0	0	0	0	0	16-3584
+chrM	2364	0	0	0	0	0	0	0	16-3584
+chrM	2365	0	0	0	0	0	0	0	16-3584
+chrM	2366	0	0	0	0	0	0	0	16-3584
+chrM	2367	0	0	0	0	0	0	0	16-3584
+chrM	2368	0	0	0	0	0	0	0	16-3584
+chrM	2369	0	0	0	0	0	0	0	16-3584
+chrM	2370	0	0	0	0	0	0	0	16-3584
+chrM	2371	0	0	0	0	0	0	0	16-3584
+chrM	2372	0	0	0	0	0	0	0	16-3584
+chrM	2373	0	0	0	0	0	0	0	16-3584
+chrM	2374	0	0	0	0	0	0	0	16-3584
+chrM	2375	0	0	0	0	0	0	0	16-3584
+chrM	2376	0	0	0	0	0	0	0	16-3584
+chrM	2377	0	0	0	0	0	0	0	16-3584
+chrM	2378	0	0	0	0	0	0	0	16-3584
+chrM	2379	0	0	0	0	0	0	0	16-3584
+chrM	2380	0	0	0	0	0	0	0	16-3584
+chrM	2381	0	0	0	0	0	0	0	16-3584
+chrM	2382	0	0	0	0	0	0	0	16-3584
+chrM	2383	0	0	0	0	0	0	0	16-3584
+chrM	2384	0	0	0	0	0	0	0	16-3584
+chrM	2385	0	0	0	0	0	0	0	16-3584
+chrM	2386	0	0	0	0	0	0	0	16-3584
+chrM	2387	0	0	0	0	0	0	0	16-3584
+chrM	2388	0	0	0	0	0	0	0	16-3584
+chrM	2389	0	0	0	0	0	0	0	16-3584
+chrM	2390	0	0	0	0	0	0	0	16-3584
+chrM	2391	0	0	0	0	0	0	0	16-3584
+chrM	2392	0	0	0	0	0	0	0	16-3584
+chrM	2393	0	0	0	0	0	0	0	16-3584
+chrM	2394	0	0	0	0	0	0	0	16-3584
+chrM	2395	0	0	0	0	0	0	0	16-3584
+chrM	2396	0	0	0	0	0	0	0	16-3584
+chrM	2397	0	0	0	0	0	0	0	16-3584
+chrM	2398	0	0	0	0	0	0	0	16-3584
+chrM	2399	0	0	0	0	0	0	0	16-3584
+chrM	2400	0	0	0	0	0	0	0	16-3584
+chrM	2401	0	0	0	0	0	0	0	16-3584
+chrM	2402	0	0	0	0	0	0	0	16-3584
+chrM	2403	0	0	0	0	0	0	0	16-3584
+chrM	2404	0	0	0	0	0	0	0	16-3584
+chrM	2405	0	0	0	0	0	0	0	16-3584
+chrM	2406	0	0	0	0	0	0	0	16-3584
+chrM	2407	0	0	0	0	0	0	0	16-3584
+chrM	2408	0	0	0	0	0	0	0	16-3584
+chrM	2409	0	0	0	0	0	0	0	16-3584
+chrM	2410	0	0	0	0	0	0	0	16-3584
+chrM	2411	0	0	0	0	0	0	0	16-3584
+chrM	2412	0	0	0	0	0	0	0	16-3584
+chrM	2413	0	0	0	0	0	0	0	16-3584
+chrM	2414	0	0	0	0	0	0	0	16-3584
+chrM	2415	0	0	0	0	0	0	0	16-3584
+chrM	2416	0	0	0	0	0	0	0	16-3584
+chrM	2417	0	0	0	0	0	0	0	16-3584
+chrM	2418	0	0	0	0	0	0	0	16-3584
+chrM	2419	0	0	0	0	0	0	0	16-3584
+chrM	2420	0	0	0	0	0	0	0	16-3584
+chrM	2421	0	0	0	0	0	0	0	16-3584
+chrM	2422	0	0	0	0	0	0	0	16-3584
+chrM	2423	0	0	0	0	0	0	0	16-3584
+chrM	2424	0	0	0	0	0	0	0	16-3584
+chrM	2425	0	0	0	0	0	0	0	16-3584
+chrM	2426	0	0	0	0	0	0	0	16-3584
+chrM	2427	0	0	0	0	0	0	0	16-3584
+chrM	2428	0	0	0	0	0	0	0	16-3584
+chrM	2429	0	0	0	0	0	0	0	16-3584
+chrM	2430	0	0	0	0	0	0	0	16-3584
+chrM	2431	0	0	0	0	0	0	0	16-3584
+chrM	2432	0	0	0	0	0	0	0	16-3584
+chrM	2433	0	0	0	0	0	0	0	16-3584
+chrM	2434	0	0	0	0	0	0	0	16-3584
+chrM	2435	0	0	0	0	0	0	0	16-3584
+chrM	2436	0	0	0	0	0	0	0	16-3584
+chrM	2437	0	0	0	0	0	0	0	16-3584
+chrM	2438	0	0	0	0	0	0	0	16-3584
+chrM	2439	0	0	0	0	0	0	0	16-3584
+chrM	2440	0	0	0	0	0	0	0	16-3584
+chrM	2441	0	0	0	0	0	0	0	16-3584
+chrM	2442	0	0	0	0	0	0	0	16-3584
+chrM	2443	0	0	0	0	0	0	0	16-3584
+chrM	2444	0	0	0	0	0	0	0	16-3584
+chrM	2445	0	0	0	0	0	0	0	16-3584
+chrM	2446	0	0	0	0	0	0	0	16-3584
+chrM	2447	0	0	0	0	0	0	0	16-3584
+chrM	2448	0	0	0	0	0	0	0	16-3584
+chrM	2449	0	0	0	0	0	0	0	16-3584
+chrM	2450	0	0	0	0	0	0	0	16-3584
+chrM	2451	0	0	0	0	0	0	0	16-3584
+chrM	2452	0	0	0	0	0	0	0	16-3584
+chrM	2453	0	0	0	0	0	0	0	16-3584
+chrM	2454	0	0	0	0	0	0	0	16-3584
+chrM	2455	0	0	0	0	0	0	0	16-3584
+chrM	2456	0	0	0	0	0	0	0	16-3584
+chrM	2457	0	0	0	0	0	0	0	16-3584
+chrM	2458	0	0	0	0	0	0	0	16-3584
+chrM	2459	0	0	0	0	0	0	0	16-3584
+chrM	2460	0	0	0	0	0	0	0	16-3584
+chrM	2461	0	0	0	0	0	0	0	16-3584
+chrM	2462	0	0	0	0	0	0	0	16-3584
+chrM	2463	0	0	0	0	0	0	0	16-3584
+chrM	2464	0	0	0	0	0	0	0	16-3584
+chrM	2465	0	0	0	0	0	0	0	16-3584
+chrM	2466	0	0	0	0	0	0	0	16-3584
+chrM	2467	0	0	0	0	0	0	0	16-3584
+chrM	2468	0	0	0	0	0	0	0	16-3584
+chrM	2469	0	0	0	0	0	0	0	16-3584
+chrM	2470	0	0	0	0	0	0	0	16-3584
+chrM	2471	0	0	0	0	0	0	0	16-3584
+chrM	2472	0	0	0	0	0	0	0	16-3584
+chrM	2473	0	0	0	0	0	0	0	16-3584
+chrM	2474	0	0	0	0	0	0	0	16-3584
+chrM	2475	0	0	0	0	0	0	0	16-3584
+chrM	2476	0	0	0	0	0	0	0	16-3584
+chrM	2477	0	0	0	0	0	0	0	16-3584
+chrM	2478	0	0	0	0	0	0	0	16-3584
+chrM	2479	0	0	0	0	0	0	0	16-3584
+chrM	2480	0	0	0	0	0	0	0	16-3584
+chrM	2481	0	0	0	0	0	0	0	16-3584
+chrM	2482	0	0	0	0	0	0	0	16-3584
+chrM	2483	0	0	0	0	0	0	0	16-3584
+chrM	2484	0	0	0	0	0	0	0	16-3584
+chrM	2485	0	0	0	0	0	0	0	16-3584
+chrM	2486	0	0	0	0	0	0	0	16-3584
+chrM	2487	0	0	0	0	0	0	0	16-3584
+chrM	2488	0	0	0	0	0	0	0	16-3584
+chrM	2489	0	0	0	0	0	0	0	16-3584
+chrM	2490	0	0	0	0	0	0	0	16-3584
+chrM	2491	0	0	0	0	0	0	0	16-3584
+chrM	2492	0	0	0	0	0	0	0	16-3584
+chrM	2493	0	0	0	0	0	0	0	16-3584
+chrM	2494	0	0	0	0	0	0	0	16-3584
+chrM	2495	0	0	0	0	0	0	0	16-3584
+chrM	2496	0	0	0	0	0	0	0	16-3584
+chrM	2497	0	0	0	0	0	0	0	16-3584
+chrM	2498	0	0	0	0	0	0	0	16-3584
+chrM	2499	0	0	0	0	0	0	0	16-3584
+chrM	2500	0	0	0	0	0	0	0	16-3584
+chrM	2501	0	0	0	0	0	0	0	16-3584
+chrM	2502	0	0	0	0	0	0	0	16-3584
+chrM	2503	0	0	0	0	0	0	0	16-3584
+chrM	2504	0	0	0	0	0	0	0	16-3584
+chrM	2505	0	0	0	0	0	0	0	16-3584
+chrM	2506	0	0	0	0	0	0	0	16-3584
+chrM	2507	0	0	0	0	0	0	0	16-3584
+chrM	2508	0	0	0	0	0	0	0	16-3584
+chrM	2509	0	0	0	0	0	0	0	16-3584
+chrM	2510	0	0	0	0	0	0	0	16-3584
+chrM	2511	0	0	0	0	0	0	0	16-3584
+chrM	2512	0	0	0	0	0	0	0	16-3584
+chrM	2513	0	0	0	0	0	0	0	16-3584
+chrM	2514	0	0	0	0	0	0	0	16-3584
+chrM	2515	0	0	0	0	0	0	0	16-3584
+chrM	2516	0	0	0	0	0	0	0	16-3584
+chrM	2517	0	0	0	0	0	0	0	16-3584
+chrM	2518	0	0	0	0	0	0	0	16-3584
+chrM	2519	0	0	0	0	0	0	0	16-3584
+chrM	2520	0	0	0	0	0	0	0	16-3584
+chrM	2521	0	0	0	0	0	0	0	16-3584
+chrM	2522	0	0	0	0	0	0	0	16-3584
+chrM	2523	0	0	0	0	0	0	0	16-3584
+chrM	2524	0	0	0	0	0	0	0	16-3584
+chrM	2525	0	0	0	0	0	0	0	16-3584
+chrM	2526	0	0	0	0	0	0	0	16-3584
+chrM	2527	0	0	0	0	0	0	0	16-3584
+chrM	2528	0	0	0	0	0	0	0	16-3584
+chrM	2529	0	0	0	0	0	0	0	16-3584
+chrM	2530	0	0	0	0	0	0	0	16-3584
+chrM	2531	0	0	0	0	0	0	0	16-3584
+chrM	2532	0	0	0	0	0	0	0	16-3584
+chrM	2533	0	0	0	0	0	0	0	16-3584
+chrM	2534	0	0	0	0	0	0	0	16-3584
+chrM	2535	0	0	0	0	0	0	0	16-3584
+chrM	2536	0	0	0	0	0	0	0	16-3584
+chrM	2537	0	0	0	0	0	0	0	16-3584
+chrM	2538	0	0	0	0	0	0	0	16-3584
+chrM	2539	0	0	0	0	0	0	0	16-3584
+chrM	2540	0	0	0	0	0	0	0	16-3584
+chrM	2541	0	0	0	0	0	0	0	16-3584
+chrM	2542	0	0	0	0	0	0	0	16-3584
+chrM	2543	0	0	0	0	0	0	0	16-3584
+chrM	2544	0	0	0	0	0	0	0	16-3584
+chrM	2545	0	0	0	0	0	0	0	16-3584
+chrM	2546	0	0	0	0	0	0	0	16-3584
+chrM	2547	0	0	0	0	0	0	0	16-3584
+chrM	2548	0	0	0	0	0	0	0	16-3584
+chrM	2549	0	0	0	0	0	0	0	16-3584
+chrM	2550	0	0	0	0	0	0	0	16-3584
+chrM	2551	0	0	0	0	0	0	0	16-3584
+chrM	2552	0	0	0	0	0	0	0	16-3584
+chrM	2553	0	0	0	0	0	0	0	16-3584
+chrM	2554	0	0	0	0	0	0	0	16-3584
+chrM	2555	0	0	0	0	0	0	0	16-3584
+chrM	2556	0	0	0	0	0	0	0	16-3584
+chrM	2557	0	0	0	0	0	0	0	16-3584
+chrM	2558	0	0	0	0	0	0	0	16-3584
+chrM	2559	0	0	0	0	0	0	0	16-3584
+chrM	2560	0	0	0	0	0	0	0	16-3584
+chrM	2561	0	0	0	0	0	0	0	16-3584
+chrM	2562	0	0	0	0	0	0	0	16-3584
+chrM	2563	0	0	0	0	0	0	0	16-3584
+chrM	2564	0	0	0	0	0	0	0	16-3584
+chrM	2565	0	0	0	0	0	0	0	16-3584
+chrM	2566	0	0	0	0	0	0	0	16-3584
+chrM	2567	0	0	0	0	0	0	0	16-3584
+chrM	2568	0	0	0	0	0	0	0	16-3584
+chrM	2569	0	0	0	0	0	0	0	16-3584
+chrM	2570	0	0	0	0	0	0	0	16-3584
+chrM	2571	0	0	0	0	0	0	0	16-3584
+chrM	2572	0	0	0	0	0	0	0	16-3584
+chrM	2573	0	0	0	0	0	0	0	16-3584
+chrM	2574	0	0	0	0	0	0	0	16-3584
+chrM	2575	0	0	0	0	0	0	0	16-3584
+chrM	2576	0	0	0	0	0	0	0	16-3584
+chrM	2577	0	0	0	0	0	0	0	16-3584
+chrM	2578	0	0	0	0	0	0	0	16-3584
+chrM	2579	0	0	0	0	0	0	0	16-3584
+chrM	2580	0	0	0	0	0	0	0	16-3584
+chrM	2581	0	0	0	0	0	0	0	16-3584
+chrM	2582	0	0	0	0	0	0	0	16-3584
+chrM	2583	0	0	0	0	0	0	0	16-3584
+chrM	2584	0	0	0	0	0	0	0	16-3584
+chrM	2585	0	0	0	0	0	0	0	16-3584
+chrM	2586	0	0	0	0	0	0	0	16-3584
+chrM	2587	0	0	0	0	0	0	0	16-3584
+chrM	2588	0	0	0	0	0	0	0	16-3584
+chrM	2589	0	0	0	0	0	0	0	16-3584
+chrM	2590	0	0	0	0	0	0	0	16-3584
+chrM	2591	0	0	0	0	0	0	0	16-3584
+chrM	2592	0	0	0	0	0	0	0	16-3584
+chrM	2593	0	0	0	0	0	0	0	16-3584
+chrM	2594	0	0	0	0	0	0	0	16-3584
+chrM	2595	0	0	0	0	0	0	0	16-3584
+chrM	2596	0	0	0	0	0	0	0	16-3584
+chrM	2597	0	0	0	0	0	0	0	16-3584
+chrM	2598	0	0	0	0	0	0	0	16-3584
+chrM	2599	0	0	0	0	0	0	0	16-3584
+chrM	2600	0	0	0	0	0	0	0	16-3584
+chrM	2601	0	0	0	0	0	0	0	16-3584
+chrM	2602	0	0	0	0	0	0	0	16-3584
+chrM	2603	0	0	0	0	0	0	0	16-3584
+chrM	2604	0	0	0	0	0	0	0	16-3584
+chrM	2605	0	0	0	0	0	0	0	16-3584
+chrM	2606	0	0	0	0	0	0	0	16-3584
+chrM	2607	0	0	0	0	0	0	0	16-3584
+chrM	2608	0	0	0	0	0	0	0	16-3584
+chrM	2609	0	0	0	0	0	0	0	16-3584
+chrM	2610	0	0	0	0	0	0	0	16-3584
+chrM	2611	0	0	0	0	0	0	0	16-3584
+chrM	2612	0	0	0	0	0	0	0	16-3584
+chrM	2613	0	0	0	0	0	0	0	16-3584
+chrM	2614	0	0	0	0	0	0	0	16-3584
+chrM	2615	0	0	0	0	0	0	0	16-3584
+chrM	2616	0	0	0	0	0	0	0	16-3584
+chrM	2617	0	0	0	0	0	0	0	16-3584
+chrM	2618	0	0	0	0	0	0	0	16-3584
+chrM	2619	0	0	0	0	0	0	0	16-3584
+chrM	2620	0	0	0	0	0	0	0	16-3584
+chrM	2621	0	0	0	0	0	0	0	16-3584
+chrM	2622	0	0	0	0	0	0	0	16-3584
+chrM	2623	0	0	0	0	0	0	0	16-3584
+chrM	2624	0	0	0	0	0	0	0	16-3584
+chrM	2625	0	0	0	0	0	0	0	16-3584
+chrM	2626	0	0	0	0	0	0	0	16-3584
+chrM	2627	0	0	0	0	0	0	0	16-3584
+chrM	2628	0	0	0	0	0	0	0	16-3584
+chrM	2629	0	0	0	0	0	0	0	16-3584
+chrM	2630	0	0	0	0	0	0	0	16-3584
+chrM	2631	0	0	0	0	0	0	0	16-3584
+chrM	2632	0	0	0	0	0	0	0	16-3584
+chrM	2633	0	0	0	0	0	0	0	16-3584
+chrM	2634	0	0	0	0	0	0	0	16-3584
+chrM	2635	0	0	0	0	0	0	0	16-3584
+chrM	2636	0	0	0	0	0	0	0	16-3584
+chrM	2637	0	0	0	0	0	0	0	16-3584
+chrM	2638	0	0	0	0	0	0	0	16-3584
+chrM	2639	0	0	0	0	0	0	0	16-3584
+chrM	2640	0	0	0	0	0	0	0	16-3584
+chrM	2641	0	0	0	0	0	0	0	16-3584
+chrM	2642	0	0	0	0	0	0	0	16-3584
+chrM	2643	0	0	0	0	0	0	0	16-3584
+chrM	2644	0	0	0	0	0	0	0	16-3584
+chrM	2645	0	0	0	0	0	0	0	16-3584
+chrM	2646	0	0	0	0	0	0	0	16-3584
+chrM	2647	0	0	0	0	0	0	0	16-3584
+chrM	2648	0	0	0	0	0	0	0	16-3584
+chrM	2649	0	0	0	0	0	0	0	16-3584
+chrM	2650	0	0	0	0	0	0	0	16-3584
+chrM	2651	0	0	0	0	0	0	0	16-3584
+chrM	2652	0	0	0	0	0	0	0	16-3584
+chrM	2653	0	0	0	0	0	0	0	16-3584
+chrM	2654	0	0	0	0	0	0	0	16-3584
+chrM	2655	0	0	0	0	0	0	0	16-3584
+chrM	2656	0	0	0	0	0	0	0	16-3584
+chrM	2657	0	0	0	0	0	0	0	16-3584
+chrM	2658	0	0	0	0	0	0	0	16-3584
+chrM	2659	0	0	0	0	0	0	0	16-3584
+chrM	2660	0	0	0	0	0	0	0	16-3584
+chrM	2661	0	0	0	0	0	0	0	16-3584
+chrM	2662	0	0	0	0	0	0	0	16-3584
+chrM	2663	0	0	0	0	0	0	0	16-3584
+chrM	2664	0	0	0	0	0	0	0	16-3584
+chrM	2665	0	0	0	0	0	0	0	16-3584
+chrM	2666	0	0	0	0	0	0	0	16-3584
+chrM	2667	0	0	0	0	0	0	0	16-3584
+chrM	2668	0	0	0	0	0	0	0	16-3584
+chrM	2669	0	0	0	0	0	0	0	16-3584
+chrM	2670	0	0	0	0	0	0	0	16-3584
+chrM	2671	0	0	0	0	0	0	0	16-3584
+chrM	2672	0	0	0	0	0	0	0	16-3584
+chrM	2673	0	0	0	0	0	0	0	16-3584
+chrM	2674	0	0	0	0	0	0	0	16-3584
+chrM	2675	0	0	0	0	0	0	0	16-3584
+chrM	2676	0	0	0	0	0	0	0	16-3584
+chrM	2677	0	0	0	0	0	0	0	16-3584
+chrM	2678	0	0	0	0	0	0	0	16-3584
+chrM	2679	0	0	0	0	0	0	0	16-3584
+chrM	2680	0	0	0	0	0	0	0	16-3584
+chrM	2681	0	0	0	0	0	0	0	16-3584
+chrM	2682	0	0	0	0	0	0	0	16-3584
+chrM	2683	0	0	0	0	0	0	0	16-3584
+chrM	2684	0	0	0	0	0	0	0	16-3584
+chrM	2685	0	0	0	0	0	0	0	16-3584
+chrM	2686	0	0	0	0	0	0	0	16-3584
+chrM	2687	0	0	0	0	0	0	0	16-3584
+chrM	2688	0	0	0	0	0	0	0	16-3584
+chrM	2689	0	0	0	0	0	0	0	16-3584
+chrM	2690	0	0	0	0	0	0	0	16-3584
+chrM	2691	0	0	0	0	0	0	0	16-3584
+chrM	2692	0	0	0	0	0	0	0	16-3584
+chrM	2693	0	0	0	0	0	0	0	16-3584
+chrM	2694	0	0	0	0	0	0	0	16-3584
+chrM	2695	0	0	0	0	0	0	0	16-3584
+chrM	2696	0	0	0	0	0	0	0	16-3584
+chrM	2697	0	0	0	0	0	0	0	16-3584
+chrM	2698	0	0	0	0	0	0	0	16-3584
+chrM	2699	0	0	0	0	0	0	0	16-3584
+chrM	2700	0	0	0	0	0	0	0	16-3584
+chrM	2701	0	0	0	0	0	0	0	16-3584
+chrM	2702	0	0	0	0	0	0	0	16-3584
+chrM	2703	0	0	0	0	0	0	0	16-3584
+chrM	2704	0	0	0	0	0	0	0	16-3584
+chrM	2705	0	0	0	0	0	0	0	16-3584
+chrM	2706	0	0	0	0	0	0	0	16-3584
+chrM	2707	0	0	0	0	0	0	0	16-3584
+chrM	2708	0	0	0	0	0	0	0	16-3584
+chrM	2709	0	0	0	0	0	0	0	16-3584
+chrM	2710	0	0	0	0	0	0	0	16-3584
+chrM	2711	0	0	0	0	0	0	0	16-3584
+chrM	2712	0	0	0	0	0	0	0	16-3584
+chrM	2713	0	0	0	0	0	0	0	16-3584
+chrM	2714	0	0	0	0	0	0	0	16-3584
+chrM	2715	0	0	0	0	0	0	0	16-3584
+chrM	2716	0	0	0	0	0	0	0	16-3584
+chrM	2717	0	0	0	0	0	0	0	16-3584
+chrM	2718	0	0	0	0	0	0	0	16-3584
+chrM	2719	0	0	0	0	0	0	0	16-3584
+chrM	2720	0	0	0	0	0	0	0	16-3584
+chrM	2721	0	0	0	0	0	0	0	16-3584
+chrM	2722	0	0	0	0	0	0	0	16-3584
+chrM	2723	0	0	0	0	0	0	0	16-3584
+chrM	2724	0	0	0	0	0	0	0	16-3584
+chrM	2725	0	0	0	0	0	0	0	16-3584
+chrM	2726	0	0	0	0	0	0	0	16-3584
+chrM	2727	0	0	0	0	0	0	0	16-3584
+chrM	2728	0	0	0	0	0	0	0	16-3584
+chrM	2729	0	0	0	0	0	0	0	16-3584
+chrM	2730	0	0	0	0	0	0	0	16-3584
+chrM	2731	0	0	0	0	0	0	0	16-3584
+chrM	2732	0	0	0	0	0	0	0	16-3584
+chrM	2733	0	0	0	0	0	0	0	16-3584
+chrM	2734	0	0	0	0	0	0	0	16-3584
+chrM	2735	0	0	0	0	0	0	0	16-3584
+chrM	2736	0	0	0	0	0	0	0	16-3584
+chrM	2737	0	0	0	0	0	0	0	16-3584
+chrM	2738	0	0	0	0	0	0	0	16-3584
+chrM	2739	0	0	0	0	0	0	0	16-3584
+chrM	2740	0	0	0	0	0	0	0	16-3584
+chrM	2741	0	0	0	0	0	0	0	16-3584
+chrM	2742	0	0	0	0	0	0	0	16-3584
+chrM	2743	0	0	0	0	0	0	0	16-3584
+chrM	2744	0	0	0	0	0	0	0	16-3584
+chrM	2745	0	0	0	0	0	0	0	16-3584
+chrM	2746	0	0	0	0	0	0	0	16-3584
+chrM	2747	0	0	0	0	0	0	0	16-3584
+chrM	2748	0	0	0	0	0	0	0	16-3584
+chrM	2749	0	0	0	0	0	0	0	16-3584
+chrM	2750	0	0	0	0	0	0	0	16-3584
+chrM	2751	0	0	0	0	0	0	0	16-3584
+chrM	2752	0	0	0	0	0	0	0	16-3584
+chrM	2753	0	0	0	0	0	0	0	16-3584
+chrM	2754	0	0	0	0	0	0	0	16-3584
+chrM	2755	0	0	0	0	0	0	0	16-3584
+chrM	2756	0	0	0	0	0	0	0	16-3584
+chrM	2757	0	0	0	0	0	0	0	16-3584
+chrM	2758	0	0	0	0	0	0	0	16-3584
+chrM	2759	0	0	0	0	0	0	0	16-3584
+chrM	2760	0	0	0	0	0	0	0	16-3584
+chrM	2761	0	0	0	0	0	0	0	16-3584
+chrM	2762	0	0	0	0	0	0	0	16-3584
+chrM	2763	0	0	0	0	0	0	0	16-3584
+chrM	2764	0	0	0	0	0	0	0	16-3584
+chrM	2765	0	0	0	0	0	0	0	16-3584
+chrM	2766	0	0	0	0	0	0	0	16-3584
+chrM	2767	0	0	0	0	0	0	0	16-3584
+chrM	2768	0	0	0	0	0	0	0	16-3584
+chrM	2769	0	0	0	0	0	0	0	16-3584
+chrM	2770	0	0	0	0	0	0	0	16-3584
+chrM	2771	0	0	0	0	0	0	0	16-3584
+chrM	2772	0	0	0	0	0	0	0	16-3584
+chrM	2773	0	0	0	0	0	0	0	16-3584
+chrM	2774	0	0	0	0	0	0	0	16-3584
+chrM	2775	0	0	0	0	0	0	0	16-3584
+chrM	2776	0	0	0	0	0	0	0	16-3584
+chrM	2777	0	0	0	0	0	0	0	16-3584
+chrM	2778	0	0	0	0	0	0	0	16-3584
+chrM	2779	0	0	0	0	0	0	0	16-3584
+chrM	2780	0	0	0	0	0	0	0	16-3584
+chrM	2781	0	0	0	0	0	0	0	16-3584
+chrM	2782	0	0	0	0	0	0	0	16-3584
+chrM	2783	0	0	0	0	0	0	0	16-3584
+chrM	2784	0	0	0	0	0	0	0	16-3584
+chrM	2785	0	0	0	0	0	0	0	16-3584
+chrM	2786	0	0	0	0	0	0	0	16-3584
+chrM	2787	0	0	0	0	0	0	0	16-3584
+chrM	2788	0	0	0	0	0	0	0	16-3584
+chrM	2789	0	0	0	0	0	0	0	16-3584
+chrM	2790	0	0	0	0	0	0	0	16-3584
+chrM	2791	0	0	0	0	0	0	0	16-3584
+chrM	2792	0	0	0	0	0	0	0	16-3584
+chrM	2793	0	0	0	0	0	0	0	16-3584
+chrM	2794	0	0	0	0	0	0	0	16-3584
+chrM	2795	0	0	0	0	0	0	0	16-3584
+chrM	2796	0	0	0	0	0	0	0	16-3584
+chrM	2797	0	0	0	0	0	0	0	16-3584
+chrM	2798	0	0	0	0	0	0	0	16-3584
+chrM	2799	0	0	0	0	0	0	0	16-3584
+chrM	2800	0	0	0	0	0	0	0	16-3584
+chrM	2801	0	0	0	0	0	0	0	16-3584
+chrM	2802	0	0	0	0	0	0	0	16-3584
+chrM	2803	0	0	0	0	0	0	0	16-3584
+chrM	2804	0	0	0	0	0	0	0	16-3584
+chrM	2805	0	0	0	0	0	0	0	16-3584
+chrM	2806	0	0	0	0	0	0	0	16-3584
+chrM	2807	0	0	0	0	0	0	0	16-3584
+chrM	2808	0	0	0	0	0	0	0	16-3584
+chrM	2809	0	0	0	0	0	0	0	16-3584
+chrM	2810	0	0	0	0	0	0	0	16-3584
+chrM	2811	0	0	0	0	0	0	0	16-3584
+chrM	2812	0	0	0	0	0	0	0	16-3584
+chrM	2813	0	0	0	0	0	0	0	16-3584
+chrM	2814	0	0	0	0	0	0	0	16-3584
+chrM	2815	0	0	0	0	0	0	0	16-3584
+chrM	2816	0	0	0	0	0	0	0	16-3584
+chrM	2817	0	0	0	0	0	0	0	16-3584
+chrM	2818	0	0	0	0	0	0	0	16-3584
+chrM	2819	0	0	0	0	0	0	0	16-3584
+chrM	2820	0	0	0	0	0	0	0	16-3584
+chrM	2821	0	0	0	0	0	0	0	16-3584
+chrM	2822	0	0	0	0	0	0	0	16-3584
+chrM	2823	0	0	0	0	0	0	0	16-3584
+chrM	2824	0	0	0	0	0	0	0	16-3584
+chrM	2825	0	0	0	0	0	0	0	16-3584
+chrM	2826	0	0	0	0	0	0	0	16-3584
+chrM	2827	0	0	0	0	0	0	0	16-3584
+chrM	2828	0	0	0	0	0	0	0	16-3584
+chrM	2829	0	0	0	0	0	0	0	16-3584
+chrM	2830	0	0	0	0	0	0	0	16-3584
+chrM	2831	0	0	0	0	0	0	0	16-3584
+chrM	2832	0	0	0	0	0	0	0	16-3584
+chrM	2833	0	0	0	0	0	0	0	16-3584
+chrM	2834	0	0	0	0	0	0	0	16-3584
+chrM	2835	0	0	0	0	0	0	0	16-3584
+chrM	2836	0	0	0	0	0	0	0	16-3584
+chrM	2837	0	0	0	0	0	0	0	16-3584
+chrM	2838	0	0	0	0	0	0	0	16-3584
+chrM	2839	0	0	0	0	0	0	0	16-3584
+chrM	2840	0	0	0	0	0	0	0	16-3584
+chrM	2841	0	0	0	0	0	0	0	16-3584
+chrM	2842	0	0	0	0	0	0	0	16-3584
+chrM	2843	0	0	0	0	0	0	0	16-3584
+chrM	2844	0	0	0	0	0	0	0	16-3584
+chrM	2845	0	0	0	0	0	0	0	16-3584
+chrM	2846	0	0	0	0	0	0	0	16-3584
+chrM	2847	0	0	0	0	0	0	0	16-3584
+chrM	2848	0	0	0	0	0	0	0	16-3584
+chrM	2849	0	0	0	0	0	0	0	16-3584
+chrM	2850	0	0	0	0	0	0	0	16-3584
+chrM	2851	0	0	0	0	0	0	0	16-3584
+chrM	2852	0	0	0	0	0	0	0	16-3584
+chrM	2853	0	0	0	0	0	0	0	16-3584
+chrM	2854	0	0	0	0	0	0	0	16-3584
+chrM	2855	0	0	0	0	0	0	0	16-3584
+chrM	2856	0	0	0	0	0	0	0	16-3584
+chrM	2857	0	0	0	0	0	0	0	16-3584
+chrM	2858	0	0	0	0	0	0	0	16-3584
+chrM	2859	0	0	0	0	0	0	0	16-3584
+chrM	2860	0	0	0	0	0	0	0	16-3584
+chrM	2861	0	0	0	0	0	0	0	16-3584
+chrM	2862	0	0	0	0	0	0	0	16-3584
+chrM	2863	0	0	0	0	0	0	0	16-3584
+chrM	2864	0	0	0	0	0	0	0	16-3584
+chrM	2865	0	0	0	0	0	0	0	16-3584
+chrM	2866	0	0	0	0	0	0	0	16-3584
+chrM	2867	0	0	0	0	0	0	0	16-3584
+chrM	2868	0	0	0	0	0	0	0	16-3584
+chrM	2869	0	0	0	0	0	0	0	16-3584
+chrM	2870	0	0	0	0	0	0	0	16-3584
+chrM	2871	0	0	0	0	0	0	0	16-3584
+chrM	2872	0	0	0	0	0	0	0	16-3584
+chrM	2873	0	0	0	0	0	0	0	16-3584
+chrM	2874	0	0	0	0	0	0	0	16-3584
+chrM	2875	0	0	0	0	0	0	0	16-3584
+chrM	2876	0	0	0	0	0	0	0	16-3584
+chrM	2877	0	0	0	0	0	0	0	16-3584
+chrM	2878	0	0	0	0	0	0	0	16-3584
+chrM	2879	0	0	0	0	0	0	0	16-3584
+chrM	2880	0	0	0	0	0	0	0	16-3584
+chrM	2881	0	0	0	0	0	0	0	16-3584
+chrM	2882	0	0	0	0	0	0	0	16-3584
+chrM	2883	0	0	0	0	0	0	0	16-3584
+chrM	2884	0	0	0	0	0	0	0	16-3584
+chrM	2885	0	0	0	0	0	0	0	16-3584
+chrM	2886	0	0	0	0	0	0	0	16-3584
+chrM	2887	0	0	0	0	0	0	0	16-3584
+chrM	2888	0	0	0	0	0	0	0	16-3584
+chrM	2889	0	0	0	0	0	0	0	16-3584
+chrM	2890	0	0	0	0	0	0	0	16-3584
+chrM	2891	0	0	0	0	0	0	0	16-3584
+chrM	2892	0	0	0	0	0	0	0	16-3584
+chrM	2893	0	0	0	0	0	0	0	16-3584
+chrM	2894	0	0	0	0	0	0	0	16-3584
+chrM	2895	0	0	0	0	0	0	0	16-3584
+chrM	2896	0	0	0	0	0	0	0	16-3584
+chrM	2897	0	0	0	0	0	0	0	16-3584
+chrM	2898	0	0	0	0	0	0	0	16-3584
+chrM	2899	0	0	0	0	0	0	0	16-3584
+chrM	2900	0	0	0	0	0	0	0	16-3584
+chrM	2901	0	0	0	0	0	0	0	16-3584
+chrM	2902	0	0	0	0	0	0	0	16-3584
+chrM	2903	0	0	0	0	0	0	0	16-3584
+chrM	2904	0	0	0	0	0	0	0	16-3584
+chrM	2905	0	0	0	0	0	0	0	16-3584
+chrM	2906	0	0	0	0	0	0	0	16-3584
+chrM	2907	0	0	0	0	0	0	0	16-3584
+chrM	2908	0	0	0	0	0	0	0	16-3584
+chrM	2909	0	0	0	0	0	0	0	16-3584
+chrM	2910	0	0	0	0	0	0	0	16-3584
+chrM	2911	0	0	0	0	0	0	0	16-3584
+chrM	2912	0	0	0	0	0	0	0	16-3584
+chrM	2913	0	0	0	0	0	0	0	16-3584
+chrM	2914	0	0	0	0	0	0	0	16-3584
+chrM	2915	0	0	0	0	0	0	0	16-3584
+chrM	2916	0	0	0	0	0	0	0	16-3584
+chrM	2917	0	0	0	0	0	0	0	16-3584
+chrM	2918	0	0	0	0	0	0	0	16-3584
+chrM	2919	0	0	0	0	0	0	0	16-3584
+chrM	2920	0	0	0	0	0	0	0	16-3584
+chrM	2921	0	0	0	0	0	0	0	16-3584
+chrM	2922	0	0	0	0	0	0	0	16-3584
+chrM	2923	0	0	0	0	0	0	0	16-3584
+chrM	2924	0	0	0	0	0	0	0	16-3584
+chrM	2925	0	0	0	0	0	0	0	16-3584
+chrM	2926	0	0	0	0	0	0	0	16-3584
+chrM	2927	0	0	0	0	0	0	0	16-3584
+chrM	2928	0	0	0	0	0	0	0	16-3584
+chrM	2929	0	0	0	0	0	0	0	16-3584
+chrM	2930	0	0	0	0	0	0	0	16-3584
+chrM	2931	0	0	0	0	0	0	0	16-3584
+chrM	2932	0	0	0	0	0	0	0	16-3584
+chrM	2933	0	0	0	0	0	0	0	16-3584
+chrM	2934	0	0	0	0	0	0	0	16-3584
+chrM	2935	0	0	0	0	0	0	0	16-3584
+chrM	2936	0	0	0	0	0	0	0	16-3584
+chrM	2937	0	0	0	0	0	0	0	16-3584
+chrM	2938	0	0	0	0	0	0	0	16-3584
+chrM	2939	0	0	0	0	0	0	0	16-3584
+chrM	2940	0	0	0	0	0	0	0	16-3584
+chrM	2941	0	0	0	0	0	0	0	16-3584
+chrM	2942	0	0	0	0	0	0	0	16-3584
+chrM	2943	0	0	0	0	0	0	0	16-3584
+chrM	2944	0	0	0	0	0	0	0	16-3584
+chrM	2945	0	0	0	0	0	0	0	16-3584
+chrM	2946	0	0	0	0	0	0	0	16-3584
+chrM	2947	0	0	0	0	0	0	0	16-3584
+chrM	2948	0	0	0	0	0	0	0	16-3584
+chrM	2949	0	0	0	0	0	0	0	16-3584
+chrM	2950	0	0	0	0	0	0	0	16-3584
+chrM	2951	0	0	0	0	0	0	0	16-3584
+chrM	2952	0	0	0	0	0	0	0	16-3584
+chrM	2953	0	0	0	0	0	0	0	16-3584
+chrM	2954	0	0	0	0	0	0	0	16-3584
+chrM	2955	0	0	0	0	0	0	0	16-3584
+chrM	2956	0	0	0	0	0	0	0	16-3584
+chrM	2957	0	0	0	0	0	0	0	16-3584
+chrM	2958	0	0	0	0	0	0	0	16-3584
+chrM	2959	0	0	0	0	0	0	0	16-3584
+chrM	2960	0	0	0	0	0	0	0	16-3584
+chrM	2961	0	0	0	0	0	0	0	16-3584
+chrM	2962	0	0	0	0	0	0	0	16-3584
+chrM	2963	0	0	0	0	0	0	0	16-3584
+chrM	2964	0	0	0	0	0	0	0	16-3584
+chrM	2965	0	0	0	0	0	0	0	16-3584
+chrM	2966	0	0	0	0	0	0	0	16-3584
+chrM	2967	0	0	0	0	0	0	0	16-3584
+chrM	2968	0	0	0	0	0	0	0	16-3584
+chrM	2969	0	0	0	0	0	0	0	16-3584
+chrM	2970	0	0	0	0	0	0	0	16-3584
+chrM	2971	0	0	0	0	0	0	0	16-3584
+chrM	2972	0	0	0	0	0	0	0	16-3584
+chrM	2973	0	0	0	0	0	0	0	16-3584
+chrM	2974	0	0	0	0	0	0	0	16-3584
+chrM	2975	0	0	0	0	0	0	0	16-3584
+chrM	2976	0	0	0	0	0	0	0	16-3584
+chrM	2977	0	0	0	0	0	0	0	16-3584
+chrM	2978	0	0	0	0	0	0	0	16-3584
+chrM	2979	0	0	0	0	0	0	0	16-3584
+chrM	2980	0	0	0	0	0	0	0	16-3584
+chrM	2981	0	0	0	0	0	0	0	16-3584
+chrM	2982	0	0	0	0	0	0	0	16-3584
+chrM	2983	0	0	0	0	0	0	0	16-3584
+chrM	2984	0	0	0	0	0	0	0	16-3584
+chrM	2985	0	0	0	0	0	0	0	16-3584
+chrM	2986	0	0	0	0	0	0	0	16-3584
+chrM	2987	0	0	0	0	0	0	0	16-3584
+chrM	2988	0	0	0	0	0	0	0	16-3584
+chrM	2989	0	0	0	0	0	0	0	16-3584
+chrM	2990	0	0	0	0	0	0	0	16-3584
+chrM	2991	0	0	0	0	0	0	0	16-3584
+chrM	2992	0	0	0	0	0	0	0	16-3584
+chrM	2993	0	0	0	0	0	0	0	16-3584
+chrM	2994	0	0	0	0	0	0	0	16-3584
+chrM	2995	0	0	0	0	0	0	0	16-3584
+chrM	2996	0	0	0	0	0	0	0	16-3584
+chrM	2997	0	0	0	0	0	0	0	16-3584
+chrM	2998	0	0	0	0	0	0	0	16-3584
+chrM	2999	0	0	0	0	0	0	0	16-3584
+chrM	3000	0	0	0	0	0	0	0	16-3584
+chrM	3001	0	0	0	0	0	0	0	16-3584
+chrM	3002	0	0	0	0	0	0	0	16-3584
+chrM	3003	0	0	0	0	0	0	0	16-3584
+chrM	3004	0	0	0	0	0	0	0	16-3584
+chrM	3005	0	0	0	0	0	0	0	16-3584
+chrM	3006	0	0	0	0	0	0	0	16-3584
+chrM	3007	0	0	0	0	0	0	0	16-3584
+chrM	3008	0	0	0	0	0	0	0	16-3584
+chrM	3009	0	0	0	0	0	0	0	16-3584
+chrM	3010	0	0	0	0	0	0	0	16-3584
+chrM	3011	0	0	0	0	0	0	0	16-3584
+chrM	3012	0	0	0	0	0	0	0	16-3584
+chrM	3013	0	0	0	0	0	0	0	16-3584
+chrM	3014	0	0	0	0	0	0	0	16-3584
+chrM	3015	0	0	0	0	0	0	0	16-3584
+chrM	3016	0	0	0	0	0	0	0	16-3584
+chrM	3017	0	0	0	0	0	0	0	16-3584
+chrM	3018	0	0	0	0	0	0	0	16-3584
+chrM	3019	0	0	0	0	0	0	0	16-3584
+chrM	3020	0	0	0	0	0	0	0	16-3584
+chrM	3021	0	0	0	0	0	0	0	16-3584
+chrM	3022	0	0	0	0	0	0	0	16-3584
+chrM	3023	0	0	0	0	0	0	0	16-3584
+chrM	3024	0	0	0	0	0	0	0	16-3584
+chrM	3025	0	0	0	0	0	0	0	16-3584
+chrM	3026	0	0	0	0	0	0	0	16-3584
+chrM	3027	0	0	0	0	0	0	0	16-3584
+chrM	3028	0	0	0	0	0	0	0	16-3584
+chrM	3029	0	0	0	0	0	0	0	16-3584
+chrM	3030	0	0	0	0	0	0	0	16-3584
+chrM	3031	0	0	0	0	0	0	0	16-3584
+chrM	3032	0	0	0	0	0	0	0	16-3584
+chrM	3033	0	0	0	0	0	0	0	16-3584
+chrM	3034	0	0	0	0	0	0	0	16-3584
+chrM	3035	0	0	0	0	0	0	0	16-3584
+chrM	3036	0	0	0	0	0	0	0	16-3584
+chrM	3037	0	0	0	0	0	0	0	16-3584
+chrM	3038	0	0	0	0	0	0	0	16-3584
+chrM	3039	0	0	0	0	0	0	0	16-3584
+chrM	3040	0	0	0	0	0	0	0	16-3584
+chrM	3041	0	0	0	0	0	0	0	16-3584
+chrM	3042	0	0	0	0	0	0	0	16-3584
+chrM	3043	0	0	0	0	0	0	0	16-3584
+chrM	3044	0	0	0	0	0	0	0	16-3584
+chrM	3045	0	0	0	0	0	0	0	16-3584
+chrM	3046	0	0	0	0	0	0	0	16-3584
+chrM	3047	0	0	0	0	0	0	0	16-3584
+chrM	3048	0	0	0	0	0	0	0	16-3584
+chrM	3049	0	0	0	0	0	0	0	16-3584
+chrM	3050	0	0	0	0	0	0	0	16-3584
+chrM	3051	0	0	0	0	0	0	0	16-3584
+chrM	3052	0	0	0	0	0	0	0	16-3584
+chrM	3053	0	0	0	0	0	0	0	16-3584
+chrM	3054	0	0	0	0	0	0	0	16-3584
+chrM	3055	0	0	0	0	0	0	0	16-3584
+chrM	3056	0	0	0	0	0	0	0	16-3584
+chrM	3057	0	0	0	0	0	0	0	16-3584
+chrM	3058	0	0	0	0	0	0	0	16-3584
+chrM	3059	0	0	0	0	0	0	0	16-3584
+chrM	3060	0	0	0	0	0	0	0	16-3584
+chrM	3061	0	0	0	0	0	0	0	16-3584
+chrM	3062	0	0	0	0	0	0	0	16-3584
+chrM	3063	0	0	0	0	0	0	0	16-3584
+chrM	3064	0	0	0	0	0	0	0	16-3584
+chrM	3065	0	0	0	0	0	0	0	16-3584
+chrM	3066	0	0	0	0	0	0	0	16-3584
+chrM	3067	0	0	0	0	0	0	0	16-3584
+chrM	3068	0	0	0	0	0	0	0	16-3584
+chrM	3069	0	0	0	0	0	0	0	16-3584
+chrM	3070	0	0	0	0	0	0	0	16-3584
+chrM	3071	0	0	0	0	0	0	0	16-3584
+chrM	3072	0	0	0	0	0	0	0	16-3584
+chrM	3073	0	0	0	0	0	0	0	16-3584
+chrM	3074	0	0	0	0	0	0	0	16-3584
+chrM	3075	0	0	0	0	0	0	0	16-3584
+chrM	3076	0	0	0	0	0	0	0	16-3584
+chrM	3077	0	0	0	0	0	0	0	16-3584
+chrM	3078	0	0	0	0	0	0	0	16-3584
+chrM	3079	0	0	0	0	0	0	0	16-3584
+chrM	3080	0	0	0	0	0	0	0	16-3584
+chrM	3081	0	0	0	0	0	0	0	16-3584
+chrM	3082	0	0	0	0	0	0	0	16-3584
+chrM	3083	0	0	0	0	0	0	0	16-3584
+chrM	3084	0	0	0	0	0	0	0	16-3584
+chrM	3085	0	0	0	0	0	0	0	16-3584
+chrM	3086	0	0	0	0	0	0	0	16-3584
+chrM	3087	0	0	0	0	0	0	0	16-3584
+chrM	3088	0	0	0	0	0	0	0	16-3584
+chrM	3089	0	0	0	0	0	0	0	16-3584
+chrM	3090	0	0	0	0	0	0	0	16-3584
+chrM	3091	0	0	0	0	0	0	0	16-3584
+chrM	3092	0	0	0	0	0	0	0	16-3584
+chrM	3093	0	0	0	0	0	0	0	16-3584
+chrM	3094	0	0	0	0	0	0	0	16-3584
+chrM	3095	0	0	0	0	0	0	0	16-3584
+chrM	3096	0	0	0	0	0	0	0	16-3584
+chrM	3097	0	0	0	0	0	0	0	16-3584
+chrM	3098	0	0	0	0	0	0	0	16-3584
+chrM	3099	0	0	0	0	0	0	0	16-3584
+chrM	3100	0	0	0	0	0	0	0	16-3584
+chrM	3101	0	0	0	0	0	0	0	16-3584
+chrM	3102	0	0	0	0	0	0	0	16-3584
+chrM	3103	0	0	0	0	0	0	0	16-3584
+chrM	3104	0	0	0	0	0	0	0	16-3584
+chrM	3105	0	0	0	0	0	0	0	16-3584
+chrM	3106	0	0	0	0	0	0	0	16-3584
+chrM	3107	0	0	0	0	0	0	0	16-3584
+chrM	3108	0	0	0	0	0	0	0	16-3584
+chrM	3109	0	0	0	0	0	0	0	16-3584
+chrM	3110	0	0	0	0	0	0	0	16-3584
+chrM	3111	0	0	0	0	0	0	0	16-3584
+chrM	3112	0	0	0	0	0	0	0	16-3584
+chrM	3113	0	0	0	0	0	0	0	16-3584
+chrM	3114	0	0	0	0	0	0	0	16-3584
+chrM	3115	0	0	0	0	0	0	0	16-3584
+chrM	3116	0	0	0	0	0	0	0	16-3584
+chrM	3117	0	0	0	0	0	0	0	16-3584
+chrM	3118	0	0	0	0	0	0	0	16-3584
+chrM	3119	0	0	0	0	0	0	0	16-3584
+chrM	3120	0	0	0	0	0	0	0	16-3584
+chrM	3121	0	0	0	0	0	0	0	16-3584
+chrM	3122	0	0	0	0	0	0	0	16-3584
+chrM	3123	0	0	0	0	0	0	0	16-3584
+chrM	3124	0	0	0	0	0	0	0	16-3584
+chrM	3125	0	0	0	0	0	0	0	16-3584
+chrM	3126	0	0	0	0	0	0	0	16-3584
+chrM	3127	0	0	0	0	0	0	0	16-3584
+chrM	3128	0	0	0	0	0	0	0	16-3584
+chrM	3129	0	0	0	0	0	0	0	16-3584
+chrM	3130	0	0	0	0	0	0	0	16-3584
+chrM	3131	0	0	0	0	0	0	0	16-3584
+chrM	3132	0	0	0	0	0	0	0	16-3584
+chrM	3133	0	0	0	0	0	0	0	16-3584
+chrM	3134	0	0	0	0	0	0	0	16-3584
+chrM	3135	0	0	0	0	0	0	0	16-3584
+chrM	3136	0	0	0	0	0	0	0	16-3584
+chrM	3137	0	0	0	0	0	0	0	16-3584
+chrM	3138	0	0	0	0	0	0	0	16-3584
+chrM	3139	0	0	0	0	0	0	0	16-3584
+chrM	3140	0	0	0	0	0	0	0	16-3584
+chrM	3141	0	0	0	0	0	0	0	16-3584
+chrM	3142	0	0	0	0	0	0	0	16-3584
+chrM	3143	0	0	0	0	0	0	0	16-3584
+chrM	3144	0	0	0	0	0	0	0	16-3584
+chrM	3145	0	0	0	0	0	0	0	16-3584
+chrM	3146	0	0	0	0	0	0	0	16-3584
+chrM	3147	0	0	0	0	0	0	0	16-3584
+chrM	3148	0	0	0	0	0	0	0	16-3584
+chrM	3149	0	0	0	0	0	0	0	16-3584
+chrM	3150	0	0	0	0	0	0	0	16-3584
+chrM	3151	0	0	0	0	0	0	0	16-3584
+chrM	3152	0	0	0	0	0	0	0	16-3584
+chrM	3153	0	0	0	0	0	0	0	16-3584
+chrM	3154	0	0	0	0	0	0	0	16-3584
+chrM	3155	0	0	0	0	0	0	0	16-3584
+chrM	3156	0	0	0	0	0	0	0	16-3584
+chrM	3157	0	0	0	0	0	0	0	16-3584
+chrM	3158	0	0	0	0	0	0	0	16-3584
+chrM	3159	0	0	0	0	0	0	0	16-3584
+chrM	3160	0	0	0	0	0	0	0	16-3584
+chrM	3161	0	0	0	0	0	0	0	16-3584
+chrM	3162	0	0	0	0	0	0	0	16-3584
+chrM	3163	0	0	0	0	0	0	0	16-3584
+chrM	3164	0	0	0	0	0	0	0	16-3584
+chrM	3165	0	0	0	0	0	0	0	16-3584
+chrM	3166	0	0	0	0	0	0	0	16-3584
+chrM	3167	0	0	0	0	0	0	0	16-3584
+chrM	3168	0	0	0	0	0	0	0	16-3584
+chrM	3169	0	0	0	0	0	0	0	16-3584
+chrM	3170	0	0	0	0	0	0	0	16-3584
+chrM	3171	0	0	0	0	0	0	0	16-3584
+chrM	3172	0	0	0	0	0	0	0	16-3584
+chrM	3173	0	0	0	0	0	0	0	16-3584
+chrM	3174	0	0	0	0	0	0	0	16-3584
+chrM	3175	0	0	0	0	0	0	0	16-3584
+chrM	3176	0	0	0	0	0	0	0	16-3584
+chrM	3177	0	0	0	0	0	0	0	16-3584
+chrM	3178	0	0	0	0	0	0	0	16-3584
+chrM	3179	0	0	0	0	0	0	0	16-3584
+chrM	3180	0	0	0	0	0	0	0	16-3584
+chrM	3181	0	0	0	0	0	0	0	16-3584
+chrM	3182	0	0	0	0	0	0	0	16-3584
+chrM	3183	0	0	0	0	0	0	0	16-3584
+chrM	3184	0	0	0	0	0	0	0	16-3584
+chrM	3185	0	0	0	0	0	0	0	16-3584
+chrM	3186	0	0	0	0	0	0	0	16-3584
+chrM	3187	0	0	0	0	0	0	0	16-3584
+chrM	3188	0	0	0	0	0	0	0	16-3584
+chrM	3189	0	0	0	0	0	0	0	16-3584
+chrM	3190	0	0	0	0	0	0	0	16-3584
+chrM	3191	0	0	0	0	0	0	0	16-3584
+chrM	3192	0	0	0	0	0	0	0	16-3584
+chrM	3193	0	0	0	0	0	0	0	16-3584
+chrM	3194	0	0	0	0	0	0	0	16-3584
+chrM	3195	0	0	0	0	0	0	0	16-3584
+chrM	3196	0	0	0	0	0	0	0	16-3584
+chrM	3197	0	0	0	0	0	0	0	16-3584
+chrM	3198	0	0	0	0	0	0	0	16-3584
+chrM	3199	0	0	0	0	0	0	0	16-3584
+chrM	3200	0	0	0	0	0	0	0	16-3584
+chrM	3201	0	0	0	0	0	0	0	16-3584
+chrM	3202	0	0	0	0	0	0	0	16-3584
+chrM	3203	0	0	0	0	0	0	0	16-3584
+chrM	3204	0	0	0	0	0	0	0	16-3584
+chrM	3205	0	0	0	0	0	0	0	16-3584
+chrM	3206	0	0	0	0	0	0	0	16-3584
+chrM	3207	0	0	0	0	0	0	0	16-3584
+chrM	3208	0	0	0	0	0	0	0	16-3584
+chrM	3209	0	0	0	0	0	0	0	16-3584
+chrM	3210	0	0	0	0	0	0	0	16-3584
+chrM	3211	0	0	0	0	0	0	0	16-3584
+chrM	3212	0	0	0	0	0	0	0	16-3584
+chrM	3213	0	0	0	0	0	0	0	16-3584
+chrM	3214	0	0	0	0	0	0	0	16-3584
+chrM	3215	0	0	0	0	0	0	0	16-3584
+chrM	3216	0	0	0	0	0	0	0	16-3584
+chrM	3217	0	0	0	0	0	0	0	16-3584
+chrM	3218	0	0	0	0	0	0	0	16-3584
+chrM	3219	0	0	0	0	0	0	0	16-3584
+chrM	3220	0	0	0	0	0	0	0	16-3584
+chrM	3221	0	0	0	0	0	0	0	16-3584
+chrM	3222	0	0	0	0	0	0	0	16-3584
+chrM	3223	0	0	0	0	0	0	0	16-3584
+chrM	3224	0	0	0	0	0	0	0	16-3584
+chrM	3225	0	0	0	0	0	0	0	16-3584
+chrM	3226	0	0	0	0	0	0	0	16-3584
+chrM	3227	0	0	0	0	0	0	0	16-3584
+chrM	3228	0	0	0	0	0	0	0	16-3584
+chrM	3229	0	0	0	0	0	0	0	16-3584
+chrM	3230	0	0	0	0	0	0	0	16-3584
+chrM	3231	0	0	0	0	0	0	0	16-3584
+chrM	3232	0	0	0	0	0	0	0	16-3584
+chrM	3233	0	0	0	0	0	0	0	16-3584
+chrM	3234	0	0	0	0	0	0	0	16-3584
+chrM	3235	0	0	0	0	0	0	0	16-3584
+chrM	3236	0	0	0	0	0	0	0	16-3584
+chrM	3237	0	0	0	0	0	0	0	16-3584
+chrM	3238	0	0	0	0	0	0	0	16-3584
+chrM	3239	0	0	0	0	0	0	0	16-3584
+chrM	3240	0	0	0	0	0	0	0	16-3584
+chrM	3241	0	0	0	0	0	0	0	16-3584
+chrM	3242	0	0	0	0	0	0	0	16-3584
+chrM	3243	0	0	0	0	0	0	0	16-3584
+chrM	3244	0	0	0	0	0	0	0	16-3584
+chrM	3245	0	0	0	0	0	0	0	16-3584
+chrM	3246	0	0	0	0	0	0	0	16-3584
+chrM	3247	0	0	0	0	0	0	0	16-3584
+chrM	3248	0	0	0	0	0	0	0	16-3584
+chrM	3249	0	0	0	0	0	0	0	16-3584
+chrM	3250	0	0	0	0	0	0	0	16-3584
+chrM	3251	0	0	0	0	0	0	0	16-3584
+chrM	3252	0	0	0	0	0	0	0	16-3584
+chrM	3253	0	0	0	0	0	0	0	16-3584
+chrM	3254	0	0	0	0	0	0	0	16-3584
+chrM	3255	0	0	0	0	0	0	0	16-3584
+chrM	3256	0	0	0	0	0	0	0	16-3584
+chrM	3257	0	0	0	0	0	0	0	16-3584
+chrM	3258	0	0	0	0	0	0	0	16-3584
+chrM	3259	0	0	0	0	0	0	0	16-3584
+chrM	3260	0	0	0	0	0	0	0	16-3584
+chrM	3261	0	0	0	0	0	0	0	16-3584
+chrM	3262	0	0	0	0	0	0	0	16-3584
+chrM	3263	0	0	0	0	0	0	0	16-3584
+chrM	3264	0	0	0	0	0	0	0	16-3584
+chrM	3265	0	0	0	0	0	0	0	16-3584
+chrM	3266	0	0	0	0	0	0	0	16-3584
+chrM	3267	0	0	0	0	0	0	0	16-3584
+chrM	3268	0	0	0	0	0	0	0	16-3584
+chrM	3269	0	0	0	0	0	0	0	16-3584
+chrM	3270	0	0	0	0	0	0	0	16-3584
+chrM	3271	0	0	0	0	0	0	0	16-3584
+chrM	3272	0	0	0	0	0	0	0	16-3584
+chrM	3273	0	0	0	0	0	0	0	16-3584
+chrM	3274	0	0	0	0	0	0	0	16-3584
+chrM	3275	0	0	0	0	0	0	0	16-3584
+chrM	3276	0	0	0	0	0	0	0	16-3584
+chrM	3277	0	0	0	0	0	0	0	16-3584
+chrM	3278	0	0	0	0	0	0	0	16-3584
+chrM	3279	0	0	0	0	0	0	0	16-3584
+chrM	3280	0	0	0	0	0	0	0	16-3584
+chrM	3281	0	0	0	0	0	0	0	16-3584
+chrM	3282	0	0	0	0	0	0	0	16-3584
+chrM	3283	0	0	0	0	0	0	0	16-3584
+chrM	3284	0	0	0	0	0	0	0	16-3584
+chrM	3285	0	0	0	0	0	0	0	16-3584
+chrM	3286	0	0	0	0	0	0	0	16-3584
+chrM	3287	0	0	0	0	0	0	0	16-3584
+chrM	3288	0	0	0	0	0	0	0	16-3584
+chrM	3289	0	0	0	0	0	0	0	16-3584
+chrM	3290	0	0	0	0	0	0	0	16-3584
+chrM	3291	0	0	0	0	0	0	0	16-3584
+chrM	3292	0	0	0	0	0	0	0	16-3584
+chrM	3293	0	0	0	0	0	0	0	16-3584
+chrM	3294	0	0	0	0	0	0	0	16-3584
+chrM	3295	0	0	0	0	0	0	0	16-3584
+chrM	3296	0	0	0	0	0	0	0	16-3584
+chrM	3297	0	0	0	0	0	0	0	16-3584
+chrM	3298	0	0	0	0	0	0	0	16-3584
+chrM	3299	0	0	0	0	0	0	0	16-3584
+chrM	3300	0	0	0	0	0	0	0	16-3584
+chrM	3301	0	0	0	0	0	0	0	16-3584
+chrM	3302	0	0	0	0	0	0	0	16-3584
+chrM	3303	0	0	0	0	0	0	0	16-3584
+chrM	3304	0	0	0	0	0	0	0	16-3584
+chrM	3305	0	0	0	0	0	0	0	16-3584
+chrM	3306	0	0	0	0	0	0	0	16-3584
+chrM	3307	0	0	0	0	0	0	0	16-3584
+chrM	3308	0	0	0	0	0	0	0	16-3584
+chrM	3309	0	0	0	0	0	0	0	16-3584
+chrM	3310	0	0	0	0	0	0	0	16-3584
+chrM	3311	0	0	0	0	0	0	0	16-3584
+chrM	3312	0	0	0	0	0	0	0	16-3584
+chrM	3313	0	0	0	0	0	0	0	16-3584
+chrM	3314	0	0	0	0	0	0	0	16-3584
+chrM	3315	0	0	0	0	0	0	0	16-3584
+chrM	3316	0	0	0	0	0	0	0	16-3584
+chrM	3317	0	0	0	0	0	0	0	16-3584
+chrM	3318	0	0	0	0	0	0	0	16-3584
+chrM	3319	0	0	0	0	0	0	0	16-3584
+chrM	3320	0	0	0	0	0	0	0	16-3584
+chrM	3321	0	0	0	0	0	0	0	16-3584
+chrM	3322	0	0	0	0	0	0	0	16-3584
+chrM	3323	0	0	0	0	0	0	0	16-3584
+chrM	3324	0	0	0	0	0	0	0	16-3584
+chrM	3325	0	0	0	0	0	0	0	16-3584
+chrM	3326	0	0	0	0	0	0	0	16-3584
+chrM	3327	0	0	0	0	0	0	0	16-3584
+chrM	3328	0	0	0	0	0	0	0	16-3584
+chrM	3329	0	0	0	0	0	0	0	16-3584
+chrM	3330	0	0	0	0	0	0	0	16-3584
+chrM	3331	0	0	0	0	0	0	0	16-3584
+chrM	3332	0	0	0	0	0	0	0	16-3584
+chrM	3333	0	0	0	0	0	0	0	16-3584
+chrM	3334	0	0	0	0	0	0	0	16-3584
+chrM	3335	0	0	0	0	0	0	0	16-3584
+chrM	3336	0	0	0	0	0	0	0	16-3584
+chrM	3337	0	0	0	0	0	0	0	16-3584
+chrM	3338	0	0	0	0	0	0	0	16-3584
+chrM	3339	0	0	0	0	0	0	0	16-3584
+chrM	3340	0	0	0	0	0	0	0	16-3584
+chrM	3341	0	0	0	0	0	0	0	16-3584
+chrM	3342	0	0	0	0	0	0	0	16-3584
+chrM	3343	0	0	0	0	0	0	0	16-3584
+chrM	3344	0	0	0	0	0	0	0	16-3584
+chrM	3345	0	0	0	0	0	0	0	16-3584
+chrM	3346	0	0	0	0	0	0	0	16-3584
+chrM	3347	0	0	0	0	0	0	0	16-3584
+chrM	3348	0	0	0	0	0	0	0	16-3584
+chrM	3349	0	0	0	0	0	0	0	16-3584
+chrM	3350	0	0	0	0	0	0	0	16-3584
+chrM	3351	0	0	0	0	0	0	0	16-3584
+chrM	3352	0	0	0	0	0	0	0	16-3584
+chrM	3353	0	0	0	0	0	0	0	16-3584
+chrM	3354	0	0	0	0	0	0	0	16-3584
+chrM	3355	0	0	0	0	0	0	0	16-3584
+chrM	3356	0	0	0	0	0	0	0	16-3584
+chrM	3357	0	0	0	0	0	0	0	16-3584
+chrM	3358	0	0	0	0	0	0	0	16-3584
+chrM	3359	0	0	0	0	0	0	0	16-3584
+chrM	3360	0	0	0	0	0	0	0	16-3584
+chrM	3361	0	0	0	0	0	0	0	16-3584
+chrM	3362	0	0	0	0	0	0	0	16-3584
+chrM	3363	0	0	0	0	0	0	0	16-3584
+chrM	3364	0	0	0	0	0	0	0	16-3584
+chrM	3365	0	0	0	0	0	0	0	16-3584
+chrM	3366	0	0	0	0	0	0	0	16-3584
+chrM	3367	0	0	0	0	0	0	0	16-3584
+chrM	3368	0	0	0	0	0	0	0	16-3584
+chrM	3369	0	0	0	0	0	0	0	16-3584
+chrM	3370	0	0	0	0	0	0	0	16-3584
+chrM	3371	0	0	0	0	0	0	0	16-3584
+chrM	3372	0	0	0	0	0	0	0	16-3584
+chrM	3373	0	0	0	0	0	0	0	16-3584
+chrM	3374	0	0	0	0	0	0	0	16-3584
+chrM	3375	0	0	0	0	0	0	0	16-3584
+chrM	3376	0	0	0	0	0	0	0	16-3584
+chrM	3377	0	0	0	0	0	0	0	16-3584
+chrM	3378	0	0	0	0	0	0	0	16-3584
+chrM	3379	0	0	0	0	0	0	0	16-3584
+chrM	3380	0	0	0	0	0	0	0	16-3584
+chrM	3381	0	0	0	0	0	0	0	16-3584
+chrM	3382	0	0	0	0	0	0	0	16-3584
+chrM	3383	0	0	0	0	0	0	0	16-3584
+chrM	3384	0	0	0	0	0	0	0	16-3584
+chrM	3385	0	0	0	0	0	0	0	16-3584
+chrM	3386	0	0	0	0	0	0	0	16-3584
+chrM	3387	0	0	0	0	0	0	0	16-3584
+chrM	3388	0	0	0	0	0	0	0	16-3584
+chrM	3389	0	0	0	0	0	0	0	16-3584
+chrM	3390	0	0	0	0	0	0	0	16-3584
+chrM	3391	0	0	0	0	0	0	0	16-3584
+chrM	3392	0	0	0	0	0	0	0	16-3584
+chrM	3393	0	0	0	0	0	0	0	16-3584
+chrM	3394	0	0	0	0	0	0	0	16-3584
+chrM	3395	0	0	0	0	0	0	0	16-3584
+chrM	3396	0	0	0	0	0	0	0	16-3584
+chrM	3397	0	0	0	0	0	0	0	16-3584
+chrM	3398	0	0	0	0	0	0	0	16-3584
+chrM	3399	0	0	0	0	0	0	0	16-3584
+chrM	3400	0	0	0	0	0	0	0	16-3584
+chrM	3401	0	0	0	0	0	0	0	16-3584
+chrM	3402	0	0	0	0	0	0	0	16-3584
+chrM	3403	0	0	0	0	0	0	0	16-3584
+chrM	3404	0	0	0	0	0	0	0	16-3584
+chrM	3405	0	0	0	0	0	0	0	16-3584
+chrM	3406	0	0	0	0	0	0	0	16-3584
+chrM	3407	0	0	0	0	0	0	0	16-3584
+chrM	3408	0	0	0	0	0	0	0	16-3584
+chrM	3409	0	0	0	0	0	0	0	16-3584
+chrM	3410	0	0	0	0	0	0	0	16-3584
+chrM	3411	0	0	0	0	0	0	0	16-3584
+chrM	3412	0	0	0	0	0	0	0	16-3584
+chrM	3413	0	0	0	0	0	0	0	16-3584
+chrM	3414	0	0	0	0	0	0	0	16-3584
+chrM	3415	0	0	0	0	0	0	0	16-3584
+chrM	3416	0	0	0	0	0	0	0	16-3584
+chrM	3417	0	0	0	0	0	0	0	16-3584
+chrM	3418	0	0	0	0	0	0	0	16-3584
+chrM	3419	0	0	0	0	0	0	0	16-3584
+chrM	3420	0	0	0	0	0	0	0	16-3584
+chrM	3421	0	0	0	0	0	0	0	16-3584
+chrM	3422	0	0	0	0	0	0	0	16-3584
+chrM	3423	0	0	0	0	0	0	0	16-3584
+chrM	3424	0	0	0	0	0	0	0	16-3584
+chrM	3425	0	0	0	0	0	0	0	16-3584
+chrM	3426	0	0	0	0	0	0	0	16-3584
+chrM	3427	0	0	0	0	0	0	0	16-3584
+chrM	3428	0	0	0	0	0	0	0	16-3584
+chrM	3429	0	0	0	0	0	0	0	16-3584
+chrM	3430	0	0	0	0	0	0	0	16-3584
+chrM	3431	0	0	0	0	0	0	0	16-3584
+chrM	3432	0	0	0	0	0	0	0	16-3584
+chrM	3433	0	0	0	0	0	0	0	16-3584
+chrM	3434	0	0	0	0	0	0	0	16-3584
+chrM	3435	0	0	0	0	0	0	0	16-3584
+chrM	3436	0	0	0	0	0	0	0	16-3584
+chrM	3437	0	0	0	0	0	0	0	16-3584
+chrM	3438	0	0	0	0	0	0	0	16-3584
+chrM	3439	0	0	0	0	0	0	0	16-3584
+chrM	3440	0	0	0	0	0	0	0	16-3584
+chrM	3441	0	0	0	0	0	0	0	16-3584
+chrM	3442	0	0	0	0	0	0	0	16-3584
+chrM	3443	0	0	0	0	0	0	0	16-3584
+chrM	3444	0	0	0	0	0	0	0	16-3584
+chrM	3445	0	0	0	0	0	0	0	16-3584
+chrM	3446	0	0	0	0	0	0	0	16-3584
+chrM	3447	0	0	0	0	0	0	0	16-3584
+chrM	3448	0	0	0	0	0	0	0	16-3584
+chrM	3449	0	0	0	0	0	0	0	16-3584
+chrM	3450	0	0	0	0	0	0	0	16-3584
+chrM	3451	0	0	0	0	0	0	0	16-3584
+chrM	3452	0	0	0	0	0	0	0	16-3584
+chrM	3453	0	0	0	0	0	0	0	16-3584
+chrM	3454	0	0	0	0	0	0	0	16-3584
+chrM	3455	0	0	0	0	0	0	0	16-3584
+chrM	3456	0	0	0	0	0	0	0	16-3584
+chrM	3457	0	0	0	0	0	0	0	16-3584
+chrM	3458	0	0	0	0	0	0	0	16-3584
+chrM	3459	0	0	0	0	0	0	0	16-3584
+chrM	3460	0	0	0	0	0	0	0	16-3584
+chrM	3461	0	0	0	0	0	0	0	16-3584
+chrM	3462	0	0	0	0	0	0	0	16-3584
+chrM	3463	0	0	0	0	0	0	0	16-3584
+chrM	3464	0	0	0	0	0	0	0	16-3584
+chrM	3465	0	0	0	0	0	0	0	16-3584
+chrM	3466	0	0	0	0	0	0	0	16-3584
+chrM	3467	0	0	0	0	0	0	0	16-3584
+chrM	3468	0	0	0	0	0	0	0	16-3584
+chrM	3469	0	0	0	0	0	0	0	16-3584
+chrM	3470	0	0	0	0	0	0	0	16-3584
+chrM	3471	0	0	0	0	0	0	0	16-3584
+chrM	3472	0	0	0	0	0	0	0	16-3584
+chrM	3473	0	0	0	0	0	0	0	16-3584
+chrM	3474	0	0	0	0	0	0	0	16-3584
+chrM	3475	0	0	0	0	0	0	0	16-3584
+chrM	3476	0	0	0	0	0	0	0	16-3584
+chrM	3477	0	0	0	0	0	0	0	16-3584
+chrM	3478	0	0	0	0	0	0	0	16-3584
+chrM	3479	0	0	0	0	0	0	0	16-3584
+chrM	3480	0	0	0	0	0	0	0	16-3584
+chrM	3481	0	0	0	0	0	0	0	16-3584
+chrM	3482	0	0	0	0	0	0	0	16-3584
+chrM	3483	0	0	0	0	0	0	0	16-3584
+chrM	3484	0	0	0	0	0	0	0	16-3584
+chrM	3485	0	0	0	0	0	0	0	16-3584
+chrM	3486	0	0	0	0	0	0	0	16-3584
+chrM	3487	0	0	0	0	0	0	0	16-3584
+chrM	3488	0	0	0	0	0	0	0	16-3584
+chrM	3489	0	0	0	0	0	0	0	16-3584
+chrM	3490	0	0	0	0	0	0	0	16-3584
+chrM	3491	0	0	0	0	0	0	0	16-3584
+chrM	3492	0	0	0	0	0	0	0	16-3584
+chrM	3493	0	0	0	0	0	0	0	16-3584
+chrM	3494	0	0	0	0	0	0	0	16-3584
+chrM	3495	0	0	0	0	0	0	0	16-3584
+chrM	3496	0	0	0	0	0	0	0	16-3584
+chrM	3497	0	0	0	0	0	0	0	16-3584
+chrM	3498	0	0	0	0	0	0	0	16-3584
+chrM	3499	0	0	0	0	0	0	0	16-3584
+chrM	3500	0	0	0	0	0	0	0	16-3584
+chrM	3501	0	0	0	0	0	0	0	16-3584
+chrM	3502	0	0	0	0	0	0	0	16-3584
+chrM	3503	0	0	0	0	0	0	0	16-3584
+chrM	3504	0	0	0	0	0	0	0	16-3584
+chrM	3505	0	0	0	0	0	0	0	16-3584
+chrM	3506	0	0	0	0	0	0	0	16-3584
+chrM	3507	0	0	0	0	0	0	0	16-3584
+chrM	3508	0	0	0	0	0	0	0	16-3584
+chrM	3509	0	0	0	0	0	0	0	16-3584
+chrM	3510	0	0	0	0	0	0	0	16-3584
+chrM	3511	0	0	0	0	0	0	0	16-3584
+chrM	3512	0	0	0	0	0	0	0	16-3584
+chrM	3513	0	0	0	0	0	0	0	16-3584
+chrM	3514	0	0	0	0	0	0	0	16-3584
+chrM	3515	0	0	0	0	0	0	0	16-3584
+chrM	3516	0	0	0	0	0	0	0	16-3584
+chrM	3517	0	0	0	0	0	0	0	16-3584
+chrM	3518	0	0	0	0	0	0	0	16-3584
+chrM	3519	0	0	0	0	0	0	0	16-3584
+chrM	3520	0	0	0	0	0	0	0	16-3584
+chrM	3521	0	0	0	0	0	0	0	16-3584
+chrM	3522	0	0	0	0	0	0	0	16-3584
+chrM	3523	0	0	0	0	0	0	0	16-3584
+chrM	3524	0	0	0	0	0	0	0	16-3584
+chrM	3525	0	0	0	0	0	0	0	16-3584
+chrM	3526	0	0	0	0	0	0	0	16-3584
+chrM	3527	0	0	0	0	0	0	0	16-3584
+chrM	3528	0	0	0	0	0	0	0	16-3584
+chrM	3529	0	0	0	0	0	0	0	16-3584
+chrM	3530	0	0	0	0	0	0	0	16-3584
+chrM	3531	0	0	0	0	0	0	0	16-3584
+chrM	3532	0	0	0	0	0	0	0	16-3584
+chrM	3533	0	0	0	0	0	0	0	16-3584
+chrM	3534	0	0	0	0	0	0	0	16-3584
+chrM	3535	0	0	0	0	0	0	0	16-3584
+chrM	3536	0	0	0	0	0	0	0	16-3584
+chrM	3537	0	0	0	0	0	0	0	16-3584
+chrM	3538	0	0	0	0	0	0	0	16-3584
+chrM	3539	0	0	0	0	0	0	0	16-3584
+chrM	3540	0	0	0	0	0	0	0	16-3584
+chrM	3541	0	0	0	0	0	0	0	16-3584
+chrM	3542	0	0	0	0	0	0	0	16-3584
+chrM	3543	0	0	0	0	0	0	0	16-3584
+chrM	3544	0	0	0	0	0	0	0	16-3584
+chrM	3545	0	0	0	0	0	0	0	16-3584
+chrM	3546	0	0	0	0	0	0	0	16-3584
+chrM	3547	0	0	0	0	0	0	0	16-3584
+chrM	3548	0	0	0	0	0	0	0	16-3584
+chrM	3549	0	0	0	0	0	0	0	16-3584
+chrM	3550	0	0	0	0	0	0	0	16-3584
+chrM	3551	0	0	0	0	0	0	0	16-3584
+chrM	3552	0	0	0	0	0	0	0	16-3584
+chrM	3553	0	0	0	0	0	0	0	16-3584
+chrM	3554	0	0	0	0	0	0	0	16-3584
+chrM	3555	0	0	0	0	0	0	0	16-3584
+chrM	3556	0	0	0	0	0	0	0	16-3584
+chrM	3557	0	0	0	0	0	0	0	16-3584
+chrM	3558	0	0	0	0	0	0	0	16-3584
+chrM	3559	0	0	0	0	0	0	0	16-3584
+chrM	3560	0	0	0	0	0	0	0	16-3584
+chrM	3561	0	0	0	0	0	0	0	16-3584
+chrM	3562	0	0	0	0	0	0	0	16-3584
+chrM	3563	0	0	0	0	0	0	0	16-3584
+chrM	3564	0	0	0	0	0	0	0	16-3584
+chrM	3565	0	0	0	0	0	0	0	16-3584
+chrM	3566	0	0	0	0	0	0	0	16-3584
+chrM	3567	0	0	0	0	0	0	0	16-3584
+chrM	3568	0	0	0	0	0	0	0	16-3584
+chrM	3569	0	0	0	0	0	0	0	16-3584
+chrM	3570	0	0	0	0	0	0	0	16-3584
+chrM	3571	0	0	0	0	0	0	0	16-3584
+chrM	3572	0	0	0	0	0	0	0	16-3584
+chrM	3573	0	0	0	0	0	0	0	16-3584
+chrM	3574	0	0	0	0	0	0	0	16-3584
+chrM	3575	0	0	0	0	0	0	0	16-3584
+chrM	3576	0	0	0	0	0	0	0	16-3584
+chrM	3577	0	0	0	0	0	0	0	16-3584
+chrM	3578	0	0	0	0	0	0	0	16-3584
+chrM	3579	0	0	0	0	0	0	0	16-3584
+chrM	3580	0	0	0	0	0	0	0	16-3584
+chrM	3581	0	0	0	0	0	0	0	16-3584
+chrM	3582	0	0	0	0	0	0	0	16-3584
+chrM	3583	0	0	0	0	0	0	0	16-3584
+chrM	3584	0	0	0	0	0	0	0	16-3584
+chrM	3585	0	0	0	0	0	0	0	16-3584
+chrM	3586	0	0	0	0	0	0	0	16-3584
+chrM	3587	0	0	0	0	0	0	0	16-3584
+chrM	3588	0	0	0	0	0	0	0	16-3584
+chrM	3589	0	0	0	0	0	0	0	16-3584
+chrM	3590	0	0	0	0	0	0	0	16-3584
+chrM	3591	0	0	0	0	0	0	0	16-3584
+chrM	3592	0	0	0	0	0	0	0	16-3584
+chrM	3593	0	0	0	0	0	0	0	16-3584
+chrM	3594	0	0	0	0	0	0	0	16-3584
+chrM	3595	0	0	0	0	0	0	0	16-3584
+chrM	3596	0	0	0	0	0	0	0	16-3584
+chrM	3597	0	0	0	0	0	0	0	16-3584
+chrM	3598	0	0	0	0	0	0	0	16-3584
+chrM	3599	0	0	0	0	0	0	0	16-3584
+chrM	3600	0	0	0	0	0	0	0	16-3584
+chrM	3601	0	0	0	0	0	0	0	16-3584
+chrM	3602	0	0	0	0	0	0	0	16-3584
+chrM	3603	0	0	0	0	0	0	0	16-3584
+chrM	3604	0	0	0	0	0	0	0	16-3584
+chrM	3605	0	0	0	0	0	0	0	16-3584
+chrM	3606	0	0	0	0	0	0	0	16-3584
+chrM	3607	0	0	0	0	0	0	0	16-3584
+chrM	3608	0	0	0	0	0	0	0	16-3584
+chrM	3609	0	0	0	0	0	0	0	16-3584
+chrM	3610	0	0	0	0	0	0	0	16-3584
+chrM	3611	0	0	0	0	0	0	0	16-3584
+chrM	3612	0	0	0	0	0	0	0	16-3584
+chrM	3613	0	0	0	0	0	0	0	16-3584
+chrM	3614	0	0	0	0	0	0	0	16-3584
+chrM	3615	0	0	0	0	0	0	0	16-3584
+chrM	3616	0	0	0	0	0	0	0	16-3584
+chrM	3617	0	0	0	0	0	0	0	16-3584
+chrM	3618	0	0	0	0	0	0	0	16-3584
+chrM	3619	0	0	0	0	0	0	0	16-3584
+chrM	3620	0	0	0	0	0	0	0	16-3584
+chrM	3621	0	0	0	0	0	0	0	16-3584
+chrM	3622	0	0	0	0	0	0	0	16-3584
+chrM	3623	0	0	0	0	0	0	0	16-3584
+chrM	3624	0	0	0	0	0	0	0	16-3584
+chrM	3625	0	0	0	0	0	0	0	16-3584
+chrM	3626	0	0	0	0	0	0	0	16-3584
+chrM	3627	0	0	0	0	0	0	0	16-3584
+chrM	3628	0	0	0	0	0	0	0	16-3584
+chrM	3629	0	0	0	0	0	0	0	16-3584
+chrM	3630	0	0	0	0	0	0	0	16-3584
+chrM	3631	0	0	0	0	0	0	0	16-3584
+chrM	3632	0	0	0	0	0	0	0	16-3584
+chrM	3633	0	0	0	0	0	0	0	16-3584
+chrM	3634	0	0	0	0	0	0	0	16-3584
+chrM	3635	0	0	0	0	0	0	0	16-3584
+chrM	3636	0	0	0	0	0	0	0	16-3584
+chrM	3637	0	0	0	0	0	0	0	16-3584
+chrM	3638	0	0	0	0	0	0	0	16-3584
+chrM	3639	0	0	0	0	0	0	0	16-3584
+chrM	3640	0	0	0	0	0	0	0	16-3584
+chrM	3641	0	0	0	0	0	0	0	16-3584
+chrM	3642	0	0	0	0	0	0	0	16-3584
+chrM	3643	0	0	0	0	0	0	0	16-3584
+chrM	3644	0	0	0	0	0	0	0	16-3584
+chrM	3645	0	0	0	0	0	0	0	16-3584
+chrM	3646	0	0	0	0	0	0	0	16-3584
+chrM	3647	0	0	0	0	0	0	0	16-3584
+chrM	3648	0	0	0	0	0	0	0	16-3584
+chrM	3649	0	0	0	0	0	0	0	16-3584
+chrM	3650	0	0	0	0	0	0	0	16-3584
+chrM	3651	0	0	0	0	0	0	0	16-3584
+chrM	3652	0	0	0	0	0	0	0	16-3584
+chrM	3653	0	0	0	0	0	0	0	16-3584
+chrM	3654	0	0	0	0	0	0	0	16-3584
+chrM	3655	0	0	0	0	0	0	0	16-3584
+chrM	3656	0	0	0	0	0	0	0	16-3584
+chrM	3657	0	0	0	0	0	0	0	16-3584
+chrM	3658	0	0	0	0	0	0	0	16-3584
+chrM	3659	0	0	0	0	0	0	0	16-3584
+chrM	3660	0	0	0	0	0	0	0	16-3584
+chrM	3661	0	0	0	0	0	0	0	16-3584
+chrM	3662	0	0	0	0	0	0	0	16-3584
+chrM	3663	0	0	0	0	0	0	0	16-3584
+chrM	3664	0	0	0	0	0	0	0	16-3584
+chrM	3665	0	0	0	0	0	0	0	16-3584
+chrM	3666	0	0	0	0	0	0	0	16-3584
+chrM	3667	0	0	0	0	0	0	0	16-3584
+chrM	3668	0	0	0	0	0	0	0	16-3584
+chrM	3669	0	0	0	0	0	0	0	16-3584
+chrM	3670	0	0	0	0	0	0	0	16-3584
+chrM	3671	0	0	0	0	0	0	0	16-3584
+chrM	3672	0	0	0	0	0	0	0	16-3584
+chrM	3673	0	0	0	0	0	0	0	16-3584
+chrM	3674	0	0	0	0	0	0	0	16-3584
+chrM	3675	0	0	0	0	0	0	0	16-3584
+chrM	3676	0	0	0	0	0	0	0	16-3584
+chrM	3677	0	0	0	0	0	0	0	16-3584
+chrM	3678	0	0	0	0	0	0	0	16-3584
+chrM	3679	0	0	0	0	0	0	0	16-3584
+chrM	3680	0	0	0	0	0	0	0	16-3584
+chrM	3681	0	0	0	0	0	0	0	16-3584
+chrM	3682	0	0	0	0	0	0	0	16-3584
+chrM	3683	0	0	0	0	0	0	0	16-3584
+chrM	3684	0	0	0	0	0	0	0	16-3584
+chrM	3685	0	0	0	0	0	0	0	16-3584
+chrM	3686	0	0	0	0	0	0	0	16-3584
+chrM	3687	0	0	0	0	0	0	0	16-3584
+chrM	3688	0	0	0	0	0	0	0	16-3584
+chrM	3689	0	0	0	0	0	0	0	16-3584
+chrM	3690	0	0	0	0	0	0	0	16-3584
+chrM	3691	0	0	0	0	0	0	0	16-3584
+chrM	3692	0	0	0	0	0	0	0	16-3584
+chrM	3693	0	0	0	0	0	0	0	16-3584
+chrM	3694	0	0	0	0	0	0	0	16-3584
+chrM	3695	0	0	0	0	0	0	0	16-3584
+chrM	3696	0	0	0	0	0	0	0	16-3584
+chrM	3697	0	0	0	0	0	0	0	16-3584
+chrM	3698	0	0	0	0	0	0	0	16-3584
+chrM	3699	0	0	0	0	0	0	0	16-3584
+chrM	3700	0	0	0	0	0	0	0	16-3584
+chrM	3701	0	0	0	0	0	0	0	16-3584
+chrM	3702	0	0	0	0	0	0	0	16-3584
+chrM	3703	0	0	0	0	0	0	0	16-3584
+chrM	3704	0	0	0	0	0	0	0	16-3584
+chrM	3705	0	0	0	0	0	0	0	16-3584
+chrM	3706	0	0	0	0	0	0	0	16-3584
+chrM	3707	0	0	0	0	0	0	0	16-3584
+chrM	3708	0	0	0	0	0	0	0	16-3584
+chrM	3709	0	0	0	0	0	0	0	16-3584
+chrM	3710	0	0	0	0	0	0	0	16-3584
+chrM	3711	0	0	0	0	0	0	0	16-3584
+chrM	3712	0	0	0	0	0	0	0	16-3584
+chrM	3713	0	0	0	0	0	0	0	16-3584
+chrM	3714	0	0	0	0	0	0	0	16-3584
+chrM	3715	0	0	0	0	0	0	0	16-3584
+chrM	3716	0	0	0	0	0	0	0	16-3584
+chrM	3717	0	0	0	0	0	0	0	16-3584
+chrM	3718	0	0	0	0	0	0	0	16-3584
+chrM	3719	0	0	0	0	0	0	0	16-3584
+chrM	3720	0	0	0	0	0	0	0	16-3584
+chrM	3721	0	0	0	0	0	0	0	16-3584
+chrM	3722	0	0	0	0	0	0	0	16-3584
+chrM	3723	0	0	0	0	0	0	0	16-3584
+chrM	3724	0	0	0	0	0	0	0	16-3584
+chrM	3725	0	0	0	0	0	0	0	16-3584
+chrM	3726	0	0	0	0	0	0	0	16-3584
+chrM	3727	0	0	0	0	0	0	0	16-3584
+chrM	3728	0	0	0	0	0	0	0	16-3584
+chrM	3729	0	0	0	0	0	0	0	16-3584
+chrM	3730	0	0	0	0	0	0	0	16-3584
+chrM	3731	0	0	0	0	0	0	0	16-3584
+chrM	3732	0	0	0	0	0	0	0	16-3584
+chrM	3733	0	0	0	0	0	0	0	16-3584
+chrM	3734	0	0	0	0	0	0	0	16-3584
+chrM	3735	0	0	0	0	0	0	0	16-3584
+chrM	3736	0	0	0	0	0	0	0	16-3584
+chrM	3737	0	0	0	0	0	0	0	16-3584
+chrM	3738	0	0	0	0	0	0	0	16-3584
+chrM	3739	0	0	0	0	0	0	0	16-3584
+chrM	3740	0	0	0	0	0	0	0	16-3584
+chrM	3741	0	0	0	0	0	0	0	16-3584
+chrM	3742	0	0	0	0	0	0	0	16-3584
+chrM	3743	0	0	0	0	0	0	0	16-3584
+chrM	3744	0	0	0	0	0	0	0	16-3584
+chrM	3745	0	0	0	0	0	0	0	16-3584
+chrM	3746	0	0	0	0	0	0	0	16-3584
+chrM	3747	0	0	0	0	0	0	0	16-3584
+chrM	3748	0	0	0	0	0	0	0	16-3584
+chrM	3749	0	0	0	0	0	0	0	16-3584
+chrM	3750	0	0	0	0	0	0	0	16-3584
+chrM	3751	0	0	0	0	0	0	0	16-3584
+chrM	3752	0	0	0	0	0	0	0	16-3584
+chrM	3753	0	0	0	0	0	0	0	16-3584
+chrM	3754	0	0	0	0	0	0	0	16-3584
+chrM	3755	0	0	0	0	0	0	0	16-3584
+chrM	3756	0	0	0	0	0	0	0	16-3584
+chrM	3757	0	0	0	0	0	0	0	16-3584
+chrM	3758	0	0	0	0	0	0	0	16-3584
+chrM	3759	0	0	0	0	0	0	0	16-3584
+chrM	3760	0	0	0	0	0	0	0	16-3584
+chrM	3761	0	0	0	0	0	0	0	16-3584
+chrM	3762	0	0	0	0	0	0	0	16-3584
+chrM	3763	0	0	0	0	0	0	0	16-3584
+chrM	3764	0	0	0	0	0	0	0	16-3584
+chrM	3765	0	0	0	0	0	0	0	16-3584
+chrM	3766	0	0	0	0	0	0	0	16-3584
+chrM	3767	0	0	0	0	0	0	0	16-3584
+chrM	3768	0	0	0	0	0	0	0	16-3584
+chrM	3769	0	0	0	0	0	0	0	16-3584
+chrM	3770	0	0	0	0	0	0	0	16-3584
+chrM	3771	0	0	0	0	0	0	0	16-3584
+chrM	3772	0	0	0	0	0	0	0	16-3584
+chrM	3773	0	0	0	0	0	0	0	16-3584
+chrM	3774	0	0	0	0	0	0	0	16-3584
+chrM	3775	0	0	0	0	0	0	0	16-3584
+chrM	3776	0	0	0	0	0	0	0	16-3584
+chrM	3777	0	0	0	0	0	0	0	16-3584
+chrM	3778	0	0	0	0	0	0	0	16-3584
+chrM	3779	0	0	0	0	0	0	0	16-3584
+chrM	3780	0	0	0	0	0	0	0	16-3584
+chrM	3781	0	0	0	0	0	0	0	16-3584
+chrM	3782	0	0	0	0	0	0	0	16-3584
+chrM	3783	0	0	0	0	0	0	0	16-3584
+chrM	3784	0	0	0	0	0	0	0	16-3584
+chrM	3785	0	0	0	0	0	0	0	16-3584
+chrM	3786	0	0	0	0	0	0	0	16-3584
+chrM	3787	0	0	0	0	0	0	0	16-3584
+chrM	3788	0	0	0	0	0	0	0	16-3584
+chrM	3789	0	0	0	0	0	0	0	16-3584
+chrM	3790	0	0	0	0	0	0	0	16-3584
+chrM	3791	0	0	0	0	0	0	0	16-3584
+chrM	3792	0	0	0	0	0	0	0	16-3584
+chrM	3793	0	0	0	0	0	0	0	16-3584
+chrM	3794	0	0	0	0	0	0	0	16-3584
+chrM	3795	0	0	0	0	0	0	0	16-3584
+chrM	3796	0	0	0	0	0	0	0	16-3584
+chrM	3797	0	0	0	0	0	0	0	16-3584
+chrM	3798	0	0	0	0	0	0	0	16-3584
+chrM	3799	0	0	0	0	0	0	0	16-3584
+chrM	3800	0	0	0	0	0	0	0	16-3584
+chrM	3801	0	0	0	0	0	0	0	16-3584
+chrM	3802	0	0	0	0	0	0	0	16-3584
+chrM	3803	0	0	0	0	0	0	0	16-3584
+chrM	3804	0	0	0	0	0	0	0	16-3584
+chrM	3805	0	0	0	0	0	0	0	16-3584
+chrM	3806	0	0	0	0	0	0	0	16-3584
+chrM	3807	0	0	0	0	0	0	0	16-3584
+chrM	3808	0	0	0	0	0	0	0	16-3584
+chrM	3809	0	0	0	0	0	0	0	16-3584
+chrM	3810	0	0	0	0	0	0	0	16-3584
+chrM	3811	0	0	0	0	0	0	0	16-3584
+chrM	3812	0	0	0	0	0	0	0	16-3584
+chrM	3813	0	0	0	0	0	0	0	16-3584
+chrM	3814	0	0	0	0	0	0	0	16-3584
+chrM	3815	0	0	0	0	0	0	0	16-3584
+chrM	3816	0	0	0	0	0	0	0	16-3584
+chrM	3817	0	0	0	0	0	0	0	16-3584
+chrM	3818	0	0	0	0	0	0	0	16-3584
+chrM	3819	0	0	0	0	0	0	0	16-3584
+chrM	3820	0	0	0	0	0	0	0	16-3584
+chrM	3821	0	0	0	0	0	0	0	16-3584
+chrM	3822	0	0	0	0	0	0	0	16-3584
+chrM	3823	0	0	0	0	0	0	0	16-3584
+chrM	3824	0	0	0	0	0	0	0	16-3584
+chrM	3825	0	0	0	0	0	0	0	16-3584
+chrM	3826	0	0	0	0	0	0	0	16-3584
+chrM	3827	0	0	0	0	0	0	0	16-3584
+chrM	3828	0	0	0	0	0	0	0	16-3584
+chrM	3829	0	0	0	0	0	0	0	16-3584
+chrM	3830	0	0	0	0	0	0	0	16-3584
+chrM	3831	0	0	0	0	0	0	0	16-3584
+chrM	3832	0	0	0	0	0	0	0	16-3584
+chrM	3833	0	0	0	0	0	0	0	16-3584
+chrM	3834	0	0	0	0	0	0	0	16-3584
+chrM	3835	0	0	0	0	0	0	0	16-3584
+chrM	3836	0	0	0	0	0	0	0	16-3584
+chrM	3837	0	0	0	0	0	0	0	16-3584
+chrM	3838	0	0	0	0	0	0	0	16-3584
+chrM	3839	0	0	0	0	0	0	0	16-3584
+chrM	3840	0	0	0	0	0	0	0	16-3584
+chrM	3841	0	0	0	0	0	0	0	16-3584
+chrM	3842	0	0	0	0	0	0	0	16-3584
+chrM	3843	0	0	0	0	0	0	0	16-3584
+chrM	3844	0	0	0	0	0	0	0	16-3584
+chrM	3845	0	0	0	0	0	0	0	16-3584
+chrM	3846	0	0	0	0	0	0	0	16-3584
+chrM	3847	0	0	0	0	0	0	0	16-3584
+chrM	3848	0	0	0	0	0	0	0	16-3584
+chrM	3849	0	0	0	0	0	0	0	16-3584
+chrM	3850	0	0	0	0	0	0	0	16-3584
+chrM	3851	0	0	0	0	0	0	0	16-3584
+chrM	3852	0	0	0	0	0	0	0	16-3584
+chrM	3853	0	0	0	0	0	0	0	16-3584
+chrM	3854	0	0	0	0	0	0	0	16-3584
+chrM	3855	0	0	0	0	0	0	0	16-3584
+chrM	3856	0	0	0	0	0	0	0	16-3584
+chrM	3857	0	0	0	0	0	0	0	16-3584
+chrM	3858	0	0	0	0	0	0	0	16-3584
+chrM	3859	0	0	0	0	0	0	0	16-3584
+chrM	3860	0	0	0	0	0	0	0	16-3584
+chrM	3861	0	0	0	0	0	0	0	16-3584
+chrM	3862	0	0	0	0	0	0	0	16-3584
+chrM	3863	0	0	0	0	0	0	0	16-3584
+chrM	3864	0	0	0	0	0	0	0	16-3584
+chrM	3865	0	0	0	0	0	0	0	16-3584
+chrM	3866	0	0	0	0	0	0	0	16-3584
+chrM	3867	0	0	0	0	0	0	0	16-3584
+chrM	3868	0	0	0	0	0	0	0	16-3584
+chrM	3869	0	0	0	0	0	0	0	16-3584
+chrM	3870	0	0	0	0	0	0	0	16-3584
+chrM	3871	0	0	0	0	0	0	0	16-3584
+chrM	3872	0	0	0	0	0	0	0	16-3584
+chrM	3873	0	0	0	0	0	0	0	16-3584
+chrM	3874	0	0	0	0	0	0	0	16-3584
+chrM	3875	0	0	0	0	0	0	0	16-3584
+chrM	3876	0	0	0	0	0	0	0	16-3584
+chrM	3877	0	0	0	0	0	0	0	16-3584
+chrM	3878	0	0	0	0	0	0	0	16-3584
+chrM	3879	0	0	0	0	0	0	0	16-3584
+chrM	3880	0	0	0	0	0	0	0	16-3584
+chrM	3881	0	0	0	0	0	0	0	16-3584
+chrM	3882	0	0	0	0	0	0	0	16-3584
+chrM	3883	0	0	0	0	0	0	0	16-3584
+chrM	3884	0	0	0	0	0	0	0	16-3584
+chrM	3885	0	0	0	0	0	0	0	16-3584
+chrM	3886	0	0	0	0	0	0	0	16-3584
+chrM	3887	0	0	0	0	0	0	0	16-3584
+chrM	3888	0	0	0	0	0	0	0	16-3584
+chrM	3889	0	0	0	0	0	0	0	16-3584
+chrM	3890	0	0	0	0	0	0	0	16-3584
+chrM	3891	0	0	0	0	0	0	0	16-3584
+chrM	3892	0	0	0	0	0	0	0	16-3584
+chrM	3893	0	0	0	0	0	0	0	16-3584
+chrM	3894	0	0	0	0	0	0	0	16-3584
+chrM	3895	0	0	0	0	0	0	0	16-3584
+chrM	3896	0	0	0	0	0	0	0	16-3584
+chrM	3897	0	0	0	0	0	0	0	16-3584
+chrM	3898	0	0	0	0	0	0	0	16-3584
+chrM	3899	0	0	0	0	0	0	0	16-3584
+chrM	3900	0	0	0	0	0	0	0	16-3584
+chrM	3901	0	0	0	0	0	0	0	16-3584
+chrM	3902	0	0	0	0	0	0	0	16-3584
+chrM	3903	0	0	0	0	0	0	0	16-3584
+chrM	3904	0	0	0	0	0	0	0	16-3584
+chrM	3905	0	0	0	0	0	0	0	16-3584
+chrM	3906	0	0	0	0	0	0	0	16-3584
+chrM	3907	0	0	0	0	0	0	0	16-3584
+chrM	3908	0	0	0	0	0	0	0	16-3584
+chrM	3909	0	0	0	0	0	0	0	16-3584
+chrM	3910	0	0	0	0	0	0	0	16-3584
+chrM	3911	0	0	0	0	0	0	0	16-3584
+chrM	3912	0	0	0	0	0	0	0	16-3584
+chrM	3913	0	0	0	0	0	0	0	16-3584
+chrM	3914	0	0	0	0	0	0	0	16-3584
+chrM	3915	0	0	0	0	0	0	0	16-3584
+chrM	3916	0	0	0	0	0	0	0	16-3584
+chrM	3917	0	0	0	0	0	0	0	16-3584
+chrM	3918	0	0	0	0	0	0	0	16-3584
+chrM	3919	0	0	0	0	0	0	0	16-3584
+chrM	3920	0	0	0	0	0	0	0	16-3584
+chrM	3921	0	0	0	0	0	0	0	16-3584
+chrM	3922	0	0	0	0	0	0	0	16-3584
+chrM	3923	0	0	0	0	0	0	0	16-3584
+chrM	3924	0	0	0	0	0	0	0	16-3584
+chrM	3925	0	0	0	0	0	0	0	16-3584
+chrM	3926	0	0	0	0	0	0	0	16-3584
+chrM	3927	0	0	0	0	0	0	0	16-3584
+chrM	3928	0	0	0	0	0	0	0	16-3584
+chrM	3929	0	0	0	0	0	0	0	16-3584
+chrM	3930	0	0	0	0	0	0	0	16-3584
+chrM	3931	0	0	0	0	0	0	0	16-3584
+chrM	3932	0	0	0	0	0	0	0	16-3584
+chrM	3933	0	0	0	0	0	0	0	16-3584
+chrM	3934	0	0	0	0	0	0	0	16-3584
+chrM	3935	0	0	0	0	0	0	0	16-3584
+chrM	3936	0	0	0	0	0	0	0	16-3584
+chrM	3937	0	0	0	0	0	0	0	16-3584
+chrM	3938	0	0	0	0	0	0	0	16-3584
+chrM	3939	0	0	0	0	0	0	0	16-3584
+chrM	3940	0	0	0	0	0	0	0	16-3584
+chrM	3941	0	0	0	0	0	0	0	16-3584
+chrM	3942	0	0	0	0	0	0	0	16-3584
+chrM	3943	0	0	0	0	0	0	0	16-3584
+chrM	3944	0	0	0	0	0	0	0	16-3584
+chrM	3945	0	0	0	0	0	0	0	16-3584
+chrM	3946	0	0	0	0	0	0	0	16-3584
+chrM	3947	0	0	0	0	0	0	0	16-3584
+chrM	3948	0	0	0	0	0	0	0	16-3584
+chrM	3949	0	0	0	0	0	0	0	16-3584
+chrM	3950	0	0	0	0	0	0	0	16-3584
+chrM	3951	0	0	0	0	0	0	0	16-3584
+chrM	3952	0	0	0	0	0	0	0	16-3584
+chrM	3953	0	0	0	0	0	0	0	16-3584
+chrM	3954	0	0	0	0	0	0	0	16-3584
+chrM	3955	0	0	0	0	0	0	0	16-3584
+chrM	3956	0	0	0	0	0	0	0	16-3584
+chrM	3957	0	0	0	0	0	0	0	16-3584
+chrM	3958	0	0	0	0	0	0	0	16-3584
+chrM	3959	0	0	0	0	0	0	0	16-3584
+chrM	3960	0	0	0	0	0	0	0	16-3584
+chrM	3961	0	0	0	0	0	0	0	16-3584
+chrM	3962	0	0	0	0	0	0	0	16-3584
+chrM	3963	0	0	0	0	0	0	0	16-3584
+chrM	3964	0	0	0	0	0	0	0	16-3584
+chrM	3965	1	0	1	0	0	0	0	16-3584
+chrM	3966	1	0	1	0	0	0	0	16-3584
+chrM	3967	1	1	0	0	0	0	0	16-3584
+chrM	3968	1	0	0	0	1	0	0	16-3584
+chrM	3969	1	0	0	1	0	0	0	16-3584
+chrM	3970	1	0	0	1	0	0	0	16-3584
+chrM	3971	1	1	0	0	0	0	0	16-3584
+chrM	3972	1	1	0	0	0	0	0	16-3584
+chrM	3973	1	0	0	1	0	0	0	16-3584
+chrM	3974	1	1	0	0	0	0	0	16-3584
+chrM	3975	1	0	1	0	0	0	0	16-3584
+chrM	3976	1	0	1	0	0	0	0	16-3584
+chrM	3977	1	0	1	0	0	0	0	16-3584
+chrM	3978	1	0	1	0	0	0	0	16-3584
+chrM	3979	1	0	1	0	0	0	0	16-3584
+chrM	3980	1	0	0	0	1	0	0	16-3584
+chrM	3981	1	0	1	0	0	0	0	16-3584
+chrM	3982	1	0	0	1	0	0	0	16-3584
+chrM	3983	1	0	0	0	1	0	0	16-3584
+chrM	3984	1	0	0	1	0	0	0	16-3584
+chrM	3985	1	1	0	0	0	0	0	16-3584
+chrM	3986	1	0	1	0	0	0	0	16-3584
+chrM	3987	1	0	0	1	0	0	0	16-3584
+chrM	3988	1	0	0	1	0	0	0	16-3584
+chrM	3989	1	0	0	0	1	0	0	16-3584
+chrM	3990	1	0	0	1	0	0	0	16-3584
+chrM	3991	1	0	0	0	1	0	0	16-3584
+chrM	3992	1	1	0	0	0	0	0	16-3584
+chrM	3993	1	0	0	0	1	0	0	16-3584
+chrM	3994	1	0	0	0	1	0	0	16-3584
+chrM	3995	1	0	0	1	0	0	0	16-3584
+chrM	3996	1	0	0	1	0	0	0	16-3584
+chrM	3997	1	0	1	0	0	0	0	16-3584
+chrM	3998	1	0	1	0	0	0	0	16-3584
+chrM	3999	1	0	0	0	1	0	0	16-3584
+chrM	4000	1	1	0	0	0	0	0	16-3584
+chrM	4001	1	1	0	0	0	0	0	16-3584
+chrM	4002	1	0	1	0	0	0	0	16-3584
+chrM	4003	1	0	0	1	0	0	0	16-3584
+chrM	4004	1	0	0	1	0	0	0	16-3584
+chrM	4005	1	0	0	0	1	0	0	16-3584
+chrM	4006	1	1	0	0	0	0	0	16-3584
+chrM	4007	1	1	0	0	0	0	0	16-3584
+chrM	4008	1	1	0	0	0	0	0	16-3584
+chrM	4009	1	0	1	0	0	0	0	16-3584
+chrM	4010	1	0	0	1	0	0	0	16-3584
+chrM	4011	1	1	0	0	0	0	0	16-3584
+chrM	4012	1	0	0	1	0	0	0	16-3584
+chrM	4013	1	1	0	0	0	0	0	16-3584
+chrM	4014	1	0	1	0	0	0	0	16-3584
+chrM	4015	1	0	0	1	0	0	0	16-3584
+chrM	4016	1	0	1	0	0	0	0	16-3584
+chrM	4017	1	0	0	1	0	0	0	16-3584
+chrM	4018	1	1	0	0	0	0	0	16-3584
+chrM	4019	1	0	0	0	1	0	0	16-3584
+chrM	4020	1	0	1	0	0	0	0	16-3584
+chrM	4021	1	0	0	1	0	0	0	16-3584
+chrM	4022	1	1	0	0	0	0	0	16-3584
+chrM	4023	1	1	0	0	0	0	0	16-3584
+chrM	4024	1	1	0	0	0	0	0	16-3584
+chrM	4025	1	1	0	0	0	0	0	16-3584
+chrM	4026	1	0	0	0	1	0	0	16-3584
+chrM	4027	1	0	0	0	1	0	0	16-3584
+chrM	4028	1	0	0	1	0	0	0	16-3584
+chrM	4029	1	1	0	0	0	0	0	16-3584
+chrM	4030	1	0	1	0	0	0	0	16-3584
+chrM	4031	1	0	1	0	0	0	0	16-3584
+chrM	4032	1	1	0	0	0	0	0	16-3584
+chrM	4033	1	0	0	0	1	0	0	16-3584
+chrM	4034	1	0	0	1	0	0	0	16-3584
+chrM	4035	1	0	0	0	1	0	0	16-3584
+chrM	4036	1	0	1	0	0	0	0	16-3584
+chrM	4037	1	0	0	1	0	0	0	16-3584
+chrM	4038	1	0	1	0	0	0	0	16-3584
+chrM	4039	1	0	1	0	0	0	0	16-3584
+chrM	4040	1	1	0	0	0	0	0	16-3584
+chrM	4041	1	1	0	0	0	0	0	16-3584
+chrM	4042	1	0	0	1	0	0	0	16-3584
+chrM	4043	1	0	0	1	0	0	0	16-3584
+chrM	4044	1	0	1	0	0	0	0	16-3584
+chrM	4045	1	1	0	0	0	0	0	16-3584
+chrM	4046	1	0	0	1	0	0	0	16-3584
+chrM	4047	1	0	1	0	0	0	0	16-3584
+chrM	4048	1	1	0	0	0	0	0	16-3584
+chrM	4049	1	0	0	1	0	0	0	16-3584
+chrM	4050	1	0	1	0	0	0	0	16-3584
+chrM	4051	1	0	0	1	0	0	0	16-3584
+chrM	4052	1	0	0	1	0	0	0	16-3584
+chrM	4053	1	0	0	1	0	0	0	16-3584
+chrM	4054	1	0	0	0	1	0	0	16-3584
+chrM	4055	1	0	1	0	0	0	0	16-3584
+chrM	4056	1	0	1	0	0	0	0	16-3584
+chrM	4057	1	0	0	0	1	0	0	16-3584
+chrM	4058	1	0	0	0	1	0	0	16-3584
+chrM	4059	1	0	1	0	0	0	0	16-3584
+chrM	4060	1	0	0	0	1	0	0	16-3584
+chrM	4061	1	0	1	0	0	0	0	16-3584
+chrM	4062	1	0	0	1	0	0	0	16-3584
+chrM	4063	1	0	1	0	0	0	0	16-3584
+chrM	4064	1	0	0	1	0	0	0	16-3584
+chrM	4065	1	0	0	1	0	0	0	16-3584
+chrM	4066	1	0	0	0	1	0	0	16-3584
+chrM	4067	1	0	0	1	0	0	0	16-3584
+chrM	4068	1	1	0	0	0	0	0	16-3584
+chrM	4069	1	0	0	1	0	0	0	16-3584
+chrM	4070	1	0	0	0	1	0	0	16-3584
+chrM	4071	1	1	0	0	0	0	0	16-3584
+chrM	4072	1	0	0	0	1	0	0	16-3584
+chrM	4073	1	0	0	1	0	0	0	16-3584
+chrM	4074	1	1	0	0	0	0	0	16-3584
+chrM	4075	1	0	0	1	0	0	0	16-3584
+chrM	4076	1	0	1	0	0	0	0	16-3584
+chrM	4077	1	0	1	0	0	0	0	16-3584
+chrM	4078	1	1	0	0	0	0	0	16-3584
+chrM	4079	1	0	0	1	0	0	0	16-3584
+chrM	4080	1	0	0	0	1	0	0	16-3584
+chrM	4081	1	0	0	1	0	0	0	16-3584
+chrM	4082	1	1	0	0	0	0	0	16-3584
+chrM	4083	1	0	0	1	0	0	0	16-3584
+chrM	4084	1	1	0	0	0	0	0	16-3584
+chrM	4085	1	0	0	0	1	0	0	16-3584
+chrM	4086	1	0	1	0	0	0	0	16-3584
+chrM	4087	1	0	0	0	1	0	0	16-3584
+chrM	4088	1	1	0	0	0	0	0	16-3584
+chrM	4089	1	0	0	1	0	0	0	16-3584
+chrM	4090	1	1	0	0	0	0	0	16-3584
+chrM	4091	1	1	0	0	0	0	0	16-3584
+chrM	4092	1	0	0	0	1	0	0	16-3584
+chrM	4093	1	1	0	0	0	0	0	16-3584
+chrM	4094	1	0	1	0	0	0	0	16-3584
+chrM	4095	1	1	0	0	0	0	0	16-3584
+chrM	4096	1	0	0	1	0	0	0	16-3584
+chrM	4097	1	0	0	0	1	0	0	16-3584
+chrM	4098	1	0	0	1	0	0	0	16-3584
+chrM	4099	1	0	0	0	1	0	0	16-3584
+chrM	4100	1	1	0	0	0	0	0	16-3584
+chrM	4101	1	0	0	1	0	0	0	16-3584
+chrM	4102	1	1	0	0	0	0	0	16-3584
+chrM	4103	1	0	0	1	0	0	0	16-3584
+chrM	4104	1	0	1	0	0	0	0	16-3584
+chrM	4105	1	0	0	1	0	0	0	16-3584
+chrM	4106	1	0	0	0	1	0	0	16-3584
+chrM	4107	1	1	0	0	0	0	0	16-3584
+chrM	4108	1	0	0	0	1	0	0	16-3584
+chrM	4109	1	0	0	1	0	0	0	16-3584
+chrM	4110	1	0	0	0	1	0	0	16-3584
+chrM	4111	0	0	0	0	0	0	0	16-3584
+chrM	4112	0	0	0	0	0	0	0	16-3584
+chrM	4113	0	0	0	0	0	0	0	16-3584
+chrM	4114	0	0	0	0	0	0	0	16-3584
+chrM	4115	0	0	0	0	0	0	0	16-3584
+chrM	4116	0	0	0	0	0	0	0	16-3584
+chrM	4117	0	0	0	0	0	0	0	16-3584
+chrM	4118	0	0	0	0	0	0	0	16-3584
+chrM	4119	0	0	0	0	0	0	0	16-3584
+chrM	4120	0	0	0	0	0	0	0	16-3584
+chrM	4121	0	0	0	0	0	0	0	16-3584
+chrM	4122	0	0	0	0	0	0	0	16-3584
+chrM	4123	0	0	0	0	0	0	0	16-3584
+chrM	4124	0	0	0	0	0	0	0	16-3584
+chrM	4125	0	0	0	0	0	0	0	16-3584
+chrM	4126	0	0	0	0	0	0	0	16-3584
+chrM	4127	1	1	0	0	0	0	0	16-3584
+chrM	4128	1	0	0	0	1	0	0	16-3584
+chrM	4129	1	0	0	0	1	0	0	16-3584
+chrM	4130	1	0	0	0	1	0	0	16-3584
+chrM	4131	1	1	0	0	0	0	0	16-3584
+chrM	4132	1	0	0	0	1	0	0	16-3584
+chrM	4133	1	0	1	0	0	0	0	16-3584
+chrM	4134	1	1	0	0	0	0	0	16-3584
+chrM	4135	1	1	0	0	0	0	0	16-3584
+chrM	4136	1	0	0	1	0	0	0	16-3584
+chrM	4137	1	0	0	1	0	0	0	16-3584
+chrM	4138	1	0	1	0	0	0	0	16-3584
+chrM	4139	1	0	0	1	0	0	0	16-3584
+chrM	4140	1	0	1	0	0	0	0	16-3584
+chrM	4141	1	0	0	0	1	0	0	16-3584
+chrM	4142	1	1	0	0	0	0	0	16-3584
+chrM	4143	1	0	1	0	0	0	0	16-3584
+chrM	4144	1	0	0	1	0	0	0	16-3584
+chrM	4145	1	0	0	0	1	0	0	16-3584
+chrM	4146	1	1	0	0	0	0	0	16-3584
+chrM	4147	1	0	1	0	0	0	0	16-3584
+chrM	4148	1	0	1	0	0	0	0	16-3584
+chrM	4149	1	1	0	0	0	0	0	16-3584
+chrM	4150	1	0	1	0	0	0	0	16-3584
+chrM	4151	1	1	0	0	0	0	0	16-3584
+chrM	4152	1	0	1	0	0	0	0	16-3584
+chrM	4153	1	1	0	0	0	0	0	16-3584
+chrM	4154	1	0	0	0	1	0	0	16-3584
+chrM	4155	1	1	0	0	0	0	0	16-3584
+chrM	4156	1	0	1	0	0	0	0	16-3584
+chrM	4157	1	0	0	1	0	0	0	16-3584
+chrM	4158	1	1	0	0	0	0	0	16-3584
+chrM	4159	1	1	0	0	0	0	0	16-3584
+chrM	4160	1	0	1	0	0	0	0	16-3584
+chrM	4161	1	0	1	0	0	0	0	16-3584
+chrM	4162	1	0	0	1	0	0	0	16-3584
+chrM	4163	1	1	0	0	0	0	0	16-3584
+chrM	4164	1	0	0	1	0	0	0	16-3584
+chrM	4165	2	0	1	0	1	0	0	16-3584
+chrM	4166	2	2	0	0	0	0	0	16-3584
+chrM	4167	2	0	2	0	0	0	0	16-3584
+chrM	4168	2	0	1	0	1	0	0	16-3584
+chrM	4169	2	0	2	0	0	0	0	16-3584
+chrM	4170	2	0	1	1	0	0	0	16-3584
+chrM	4171	2	1	0	1	0	0	0	16-3584
+chrM	4172	2	0	1	0	1	0	0	16-3584
+chrM	4173	2	0	0	2	0	0	0	16-3584
+chrM	4174	2	0	1	0	1	0	0	16-3584
+chrM	4175	2	0	0	1	1	0	0	16-3584
+chrM	4176	2	1	0	0	1	0	0	16-3584
+chrM	4177	2	2	0	0	0	0	0	16-3584
+chrM	4178	2	0	0	1	1	0	0	16-3584
+chrM	4179	2	2	0	0	0	0	0	16-3584
+chrM	4180	2	0	0	2	0	0	0	16-3584
+chrM	4181	2	1	1	0	0	0	0	16-3584
+chrM	4182	2	0	0	0	2	0	0	16-3584
+chrM	4183	2	0	0	1	1	0	0	16-3584
+chrM	4184	2	0	1	1	0	0	0	16-3584
+chrM	4185	2	1	0	0	1	0	0	16-3584
+chrM	4186	2	1	0	0	1	0	0	16-3584
+chrM	4187	2	1	0	0	1	0	0	16-3584
+chrM	4188	2	0	1	0	1	0	0	16-3584
+chrM	4189	2	0	2	0	0	0	0	16-3584
+chrM	4190	2	0	0	1	1	0	0	16-3584
+chrM	4191	2	0	2	0	0	0	0	16-3584
+chrM	4192	2	1	1	0	0	0	0	16-3584
+chrM	4193	2	1	0	1	0	0	0	16-3584
+chrM	4194	2	1	0	0	1	0	0	16-3584
+chrM	4195	2	0	1	0	1	0	0	16-3584
+chrM	4196	2	1	0	1	0	0	0	16-3584
+chrM	4197	2	0	1	1	0	0	0	16-3584
+chrM	4198	2	0	0	0	2	0	0	16-3584
+chrM	4199	2	1	0	0	1	0	0	16-3584
+chrM	4200	2	1	1	0	0	0	0	16-3584
+chrM	4201	2	0	0	0	2	0	0	16-3584
+chrM	4202	2	0	1	0	1	0	0	16-3584
+chrM	4203	2	0	1	1	0	0	0	16-3584
+chrM	4204	2	2	0	0	0	0	0	16-3584
+chrM	4205	2	1	0	1	0	0	0	16-3584
+chrM	4206	2	1	0	0	1	0	0	16-3584
+chrM	4207	2	1	0	1	0	0	0	16-3584
+chrM	4208	2	0	1	1	0	0	0	16-3584
+chrM	4209	2	1	1	0	0	0	0	16-3584
+chrM	4210	2	0	0	1	1	0	0	16-3584
+chrM	4211	2	0	1	1	0	0	0	16-3584
+chrM	4212	2	1	1	0	0	0	0	16-3584
+chrM	4213	2	1	0	0	1	0	0	16-3584
+chrM	4214	2	0	0	1	1	0	0	16-3584
+chrM	4215	2	0	1	1	0	0	0	16-3584
+chrM	4216	2	0	2	0	0	0	0	16-3584
+chrM	4217	3	2	0	1	0	0	0	16-3584
+chrM	4218	3	2	0	0	1	0	0	16-3584
+chrM	4219	3	1	0	0	2	0	0	16-3584
+chrM	4220	3	0	0	1	2	0	0	16-3584
+chrM	4221	3	0	1	2	0	0	0	16-3584
+chrM	4222	3	1	0	1	1	0	0	16-3584
+chrM	4223	3	1	2	0	0	0	0	16-3584
+chrM	4224	3	1	0	2	0	0	0	16-3584
+chrM	4225	3	0	1	2	0	0	0	16-3584
+chrM	4226	3	1	1	0	1	0	0	16-3584
+chrM	4227	3	2	1	0	0	0	0	16-3584
+chrM	4228	3	0	1	1	1	0	0	16-3584
+chrM	4229	3	1	1	0	1	0	0	16-3584
+chrM	4230	3	1	1	0	1	0	0	16-3584
+chrM	4231	3	1	0	1	1	0	0	16-3584
+chrM	4232	3	0	1	2	0	0	0	16-3584
+chrM	4233	3	0	1	1	1	0	0	16-3584
+chrM	4234	3	0	2	1	0	0	0	16-3584
+chrM	4235	3	1	1	0	1	0	0	16-3584
+chrM	4236	3	0	2	0	1	0	0	16-3584
+chrM	4237	3	2	0	0	1	0	0	16-3584
+chrM	4238	3	1	0	0	2	0	0	16-3584
+chrM	4239	3	2	0	0	1	0	0	16-3584
+chrM	4240	3	0	2	1	0	0	0	16-3584
+chrM	4241	3	1	0	1	1	0	0	16-3584
+chrM	4242	3	0	1	0	2	0	0	16-3584
+chrM	4243	3	0	1	2	0	0	0	16-3584
+chrM	4244	3	0	2	1	0	0	0	16-3584
+chrM	4245	3	0	2	0	1	0	0	16-3584
+chrM	4246	3	0	2	1	0	0	0	16-3584
+chrM	4247	3	1	1	0	1	0	0	16-3584
+chrM	4248	3	0	0	1	2	0	0	16-3584
+chrM	4249	3	1	1	1	0	0	0	16-3584
+chrM	4250	3	1	0	1	1	0	0	16-3584
+chrM	4251	3	0	2	0	1	0	0	16-3584
+chrM	4252	3	1	0	1	1	0	0	16-3584
+chrM	4253	3	1	1	1	0	0	0	16-3584
+chrM	4254	3	1	1	0	1	0	0	16-3584
+chrM	4255	3	1	1	0	1	0	0	16-3584
+chrM	4256	3	0	2	0	1	0	0	16-3584
+chrM	4257	3	0	0	3	0	0	0	16-3584
+chrM	4258	3	0	0	3	0	0	0	16-3584
+chrM	4259	3	0	1	1	1	0	0	16-3584
+chrM	4260	3	1	0	0	2	0	0	16-3584
+chrM	4261	3	1	2	0	0	0	0	16-3584
+chrM	4262	3	1	1	1	0	0	0	16-3584
+chrM	4263	3	0	0	2	1	0	0	16-3584
+chrM	4264	3	0	2	0	1	0	0	16-3584
+chrM	4265	3	0	0	1	2	0	0	16-3584
+chrM	4266	3	1	1	1	0	0	0	16-3584
+chrM	4267	3	1	1	1	0	0	0	16-3584
+chrM	4268	3	1	1	1	0	0	0	16-3584
+chrM	4269	3	1	1	0	1	0	0	16-3584
+chrM	4270	3	0	2	0	1	0	0	16-3584
+chrM	4271	3	0	1	2	0	0	0	16-3584
+chrM	4272	3	0	2	0	1	0	0	16-3584
+chrM	4273	2	1	0	1	0	0	0	16-3584
+chrM	4274	2	1	0	0	1	0	0	16-3584
+chrM	4275	2	0	1	1	0	0	0	16-3584
+chrM	4276	2	2	0	0	0	0	0	16-3584
+chrM	4277	2	1	0	1	0	0	0	16-3584
+chrM	4278	2	1	0	1	0	0	0	16-3584
+chrM	4279	2	0	0	2	0	0	0	16-3584
+chrM	4280	2	0	0	0	2	0	0	16-3584
+chrM	4281	2	2	0	0	0	0	0	16-3584
+chrM	4282	2	1	0	1	0	0	0	16-3584
+chrM	4283	2	0	1	1	0	0	0	16-3584
+chrM	4284	2	0	0	1	1	0	0	16-3584
+chrM	4285	2	0	0	1	1	0	0	16-3584
+chrM	4286	2	1	0	1	0	0	0	16-3584
+chrM	4287	2	0	2	0	0	0	0	16-3584
+chrM	4288	2	2	0	0	0	0	0	16-3584
+chrM	4289	2	0	1	0	1	0	0	16-3584
+chrM	4290	2	0	0	1	1	0	0	16-3584
+chrM	4291	2	0	0	0	2	0	0	16-3584
+chrM	4292	2	2	0	0	0	0	0	16-3584
+chrM	4293	2	2	0	0	0	0	0	16-3584
+chrM	4294	2	1	1	0	0	0	0	16-3584
+chrM	4295	2	0	0	1	1	0	0	16-3584
+chrM	4296	2	1	1	0	0	0	0	16-3584
+chrM	4297	2	1	0	0	1	0	0	16-3584
+chrM	4298	2	1	0	0	1	0	0	16-3584
+chrM	4299	2	1	0	0	1	0	0	16-3584
+chrM	4300	2	1	1	0	0	0	0	16-3584
+chrM	4301	2	0	0	0	2	0	0	16-3584
+chrM	4302	2	1	0	1	0	0	0	16-3584
+chrM	4303	2	1	1	0	0	0	0	16-3584
+chrM	4304	2	0	0	0	2	0	0	16-3584
+chrM	4305	2	1	0	0	1	0	0	16-3584
+chrM	4306	2	2	0	0	0	0	0	16-3584
+chrM	4307	2	0	0	1	1	0	0	16-3584
+chrM	4308	2	2	0	0	0	0	0	16-3584
+chrM	4309	1	0	0	1	0	0	0	16-3584
+chrM	4310	1	0	1	0	0	0	0	16-3584
+chrM	4311	1	0	0	1	0	0	0	16-3584
+chrM	4312	1	1	0	0	0	0	0	16-3584
+chrM	4313	1	0	1	0	0	0	0	16-3584
+chrM	4314	1	0	1	0	0	0	0	16-3584
+chrM	4315	1	0	0	0	1	0	0	16-3584
+chrM	4316	1	0	0	0	1	0	0	16-3584
+chrM	4317	1	0	0	0	1	0	0	16-3584
+chrM	4318	1	0	0	1	0	0	0	16-3584
+chrM	4319	1	0	0	0	1	0	0	16-3584
+chrM	4320	1	0	1	0	0	0	0	16-3584
+chrM	4321	1	0	0	1	0	0	0	16-3584
+chrM	4322	1	1	0	0	0	0	0	16-3584
+chrM	4323	1	0	1	0	0	0	0	16-3584
+chrM	4324	1	0	1	0	0	0	0	16-3584
+chrM	4325	1	1	0	0	0	0	0	16-3584
+chrM	4326	1	0	0	0	1	0	0	16-3584
+chrM	4327	1	0	0	0	1	0	0	16-3584
+chrM	4328	1	1	0	0	0	0	0	16-3584
+chrM	4329	1	0	0	1	0	0	0	16-3584
+chrM	4330	1	1	0	0	0	0	0	16-3584
+chrM	4331	1	0	0	1	0	0	0	16-3584
+chrM	4332	1	1	0	0	0	0	0	16-3584
+chrM	4333	1	1	0	0	0	0	0	16-3584
+chrM	4334	1	0	0	0	1	0	0	16-3584
+chrM	4335	1	0	0	0	1	0	0	16-3584
+chrM	4336	1	0	0	0	1	0	0	16-3584
+chrM	4337	1	0	0	0	1	0	0	16-3584
+chrM	4338	1	0	0	1	0	0	0	16-3584
+chrM	4339	1	0	0	0	1	0	0	16-3584
+chrM	4340	1	1	0	0	0	0	0	16-3584
+chrM	4341	1	0	0	0	1	0	0	16-3584
+chrM	4342	1	0	0	0	1	0	0	16-3584
+chrM	4343	1	1	0	0	0	0	0	16-3584
+chrM	4344	1	0	0	1	0	0	0	16-3584
+chrM	4345	1	0	0	0	1	0	0	16-3584
+chrM	4346	1	0	1	0	0	0	0	16-3584
+chrM	4347	1	1	0	0	0	0	0	16-3584
+chrM	4348	1	0	1	0	0	0	0	16-3584
+chrM	4349	1	0	0	0	1	0	0	16-3584
+chrM	4350	1	0	0	1	0	0	0	16-3584
+chrM	4351	1	0	0	0	1	0	0	16-3584
+chrM	4352	1	0	0	0	1	0	0	16-3584
+chrM	4353	1	0	1	0	0	0	0	16-3584
+chrM	4354	1	1	0	0	0	0	0	16-3584
+chrM	4355	1	0	0	0	1	0	0	16-3584
+chrM	4356	1	0	0	0	1	0	0	16-3584
+chrM	4357	1	0	0	0	1	0	0	16-3584
+chrM	4358	1	0	0	1	0	0	0	16-3584
+chrM	4359	1	1	0	0	0	0	0	16-3584
+chrM	4360	1	1	0	0	0	0	0	16-3584
+chrM	4361	1	0	0	0	1	0	0	16-3584
+chrM	4362	1	0	0	1	0	0	0	16-3584
+chrM	4363	0	0	0	0	0	0	0	16-3584
+chrM	4364	0	0	0	0	0	0	0	16-3584
+chrM	4365	0	0	0	0	0	0	0	16-3584
+chrM	4366	0	0	0	0	0	0	0	16-3584
+chrM	4367	0	0	0	0	0	0	0	16-3584
+chrM	4368	0	0	0	0	0	0	0	16-3584
+chrM	4369	0	0	0	0	0	0	0	16-3584
+chrM	4370	0	0	0	0	0	0	0	16-3584
+chrM	4371	0	0	0	0	0	0	0	16-3584
+chrM	4372	0	0	0	0	0	0	0	16-3584
+chrM	4373	0	0	0	0	0	0	0	16-3584
+chrM	4374	0	0	0	0	0	0	0	16-3584
+chrM	4375	0	0	0	0	0	0	0	16-3584
+chrM	4376	0	0	0	0	0	0	0	16-3584
+chrM	4377	0	0	0	0	0	0	0	16-3584
+chrM	4378	0	0	0	0	0	0	0	16-3584
+chrM	4379	0	0	0	0	0	0	0	16-3584
+chrM	4380	0	0	0	0	0	0	0	16-3584
+chrM	4381	0	0	0	0	0	0	0	16-3584
+chrM	4382	0	0	0	0	0	0	0	16-3584
+chrM	4383	0	0	0	0	0	0	0	16-3584
+chrM	4384	0	0	0	0	0	0	0	16-3584
+chrM	4385	0	0	0	0	0	0	0	16-3584
+chrM	4386	0	0	0	0	0	0	0	16-3584
+chrM	4387	0	0	0	0	0	0	0	16-3584
+chrM	4388	0	0	0	0	0	0	0	16-3584
+chrM	4389	0	0	0	0	0	0	0	16-3584
+chrM	4390	0	0	0	0	0	0	0	16-3584
+chrM	4391	0	0	0	0	0	0	0	16-3584
+chrM	4392	0	0	0	0	0	0	0	16-3584
+chrM	4393	0	0	0	0	0	0	0	16-3584
+chrM	4394	0	0	0	0	0	0	0	16-3584
+chrM	4395	0	0	0	0	0	0	0	16-3584
+chrM	4396	0	0	0	0	0	0	0	16-3584
+chrM	4397	0	0	0	0	0	0	0	16-3584
+chrM	4398	0	0	0	0	0	0	0	16-3584
+chrM	4399	0	0	0	0	0	0	0	16-3584
+chrM	4400	0	0	0	0	0	0	0	16-3584
+chrM	4401	0	0	0	0	0	0	0	16-3584
+chrM	4402	0	0	0	0	0	0	0	16-3584
+chrM	4403	0	0	0	0	0	0	0	16-3584
+chrM	4404	0	0	0	0	0	0	0	16-3584
+chrM	4405	0	0	0	0	0	0	0	16-3584
+chrM	4406	0	0	0	0	0	0	0	16-3584
+chrM	4407	0	0	0	0	0	0	0	16-3584
+chrM	4408	0	0	0	0	0	0	0	16-3584
+chrM	4409	0	0	0	0	0	0	0	16-3584
+chrM	4410	0	0	0	0	0	0	0	16-3584
+chrM	4411	0	0	0	0	0	0	0	16-3584
+chrM	4412	0	0	0	0	0	0	0	16-3584
+chrM	4413	0	0	0	0	0	0	0	16-3584
+chrM	4414	0	0	0	0	0	0	0	16-3584
+chrM	4415	0	0	0	0	0	0	0	16-3584
+chrM	4416	0	0	0	0	0	0	0	16-3584
+chrM	4417	0	0	0	0	0	0	0	16-3584
+chrM	4418	0	0	0	0	0	0	0	16-3584
+chrM	4419	0	0	0	0	0	0	0	16-3584
+chrM	4420	0	0	0	0	0	0	0	16-3584
+chrM	4421	0	0	0	0	0	0	0	16-3584
+chrM	4422	0	0	0	0	0	0	0	16-3584
+chrM	4423	0	0	0	0	0	0	0	16-3584
+chrM	4424	0	0	0	0	0	0	0	16-3584
+chrM	4425	0	0	0	0	0	0	0	16-3584
+chrM	4426	0	0	0	0	0	0	0	16-3584
+chrM	4427	0	0	0	0	0	0	0	16-3584
+chrM	4428	0	0	0	0	0	0	0	16-3584
+chrM	4429	0	0	0	0	0	0	0	16-3584
+chrM	4430	0	0	0	0	0	0	0	16-3584
+chrM	4431	0	0	0	0	0	0	0	16-3584
+chrM	4432	0	0	0	0	0	0	0	16-3584
+chrM	4433	0	0	0	0	0	0	0	16-3584
+chrM	4434	0	0	0	0	0	0	0	16-3584
+chrM	4435	0	0	0	0	0	0	0	16-3584
+chrM	4436	0	0	0	0	0	0	0	16-3584
+chrM	4437	0	0	0	0	0	0	0	16-3584
+chrM	4438	0	0	0	0	0	0	0	16-3584
+chrM	4439	0	0	0	0	0	0	0	16-3584
+chrM	4440	0	0	0	0	0	0	0	16-3584
+chrM	4441	0	0	0	0	0	0	0	16-3584
+chrM	4442	0	0	0	0	0	0	0	16-3584
+chrM	4443	0	0	0	0	0	0	0	16-3584
+chrM	4444	0	0	0	0	0	0	0	16-3584
+chrM	4445	0	0	0	0	0	0	0	16-3584
+chrM	4446	0	0	0	0	0	0	0	16-3584
+chrM	4447	0	0	0	0	0	0	0	16-3584
+chrM	4448	0	0	0	0	0	0	0	16-3584
+chrM	4449	0	0	0	0	0	0	0	16-3584
+chrM	4450	0	0	0	0	0	0	0	16-3584
+chrM	4451	0	0	0	0	0	0	0	16-3584
+chrM	4452	0	0	0	0	0	0	0	16-3584
+chrM	4453	0	0	0	0	0	0	0	16-3584
+chrM	4454	0	0	0	0	0	0	0	16-3584
+chrM	4455	0	0	0	0	0	0	0	16-3584
+chrM	4456	0	0	0	0	0	0	0	16-3584
+chrM	4457	0	0	0	0	0	0	0	16-3584
+chrM	4458	0	0	0	0	0	0	0	16-3584
+chrM	4459	0	0	0	0	0	0	0	16-3584
+chrM	4460	0	0	0	0	0	0	0	16-3584
+chrM	4461	0	0	0	0	0	0	0	16-3584
+chrM	4462	0	0	0	0	0	0	0	16-3584
+chrM	4463	0	0	0	0	0	0	0	16-3584
+chrM	4464	0	0	0	0	0	0	0	16-3584
+chrM	4465	0	0	0	0	0	0	0	16-3584
+chrM	4466	0	0	0	0	0	0	0	16-3584
+chrM	4467	0	0	0	0	0	0	0	16-3584
+chrM	4468	0	0	0	0	0	0	0	16-3584
+chrM	4469	0	0	0	0	0	0	0	16-3584
+chrM	4470	0	0	0	0	0	0	0	16-3584
+chrM	4471	0	0	0	0	0	0	0	16-3584
+chrM	4472	0	0	0	0	0	0	0	16-3584
+chrM	4473	0	0	0	0	0	0	0	16-3584
+chrM	4474	0	0	0	0	0	0	0	16-3584
+chrM	4475	0	0	0	0	0	0	0	16-3584
+chrM	4476	0	0	0	0	0	0	0	16-3584
+chrM	4477	0	0	0	0	0	0	0	16-3584
+chrM	4478	0	0	0	0	0	0	0	16-3584
+chrM	4479	0	0	0	0	0	0	0	16-3584
+chrM	4480	0	0	0	0	0	0	0	16-3584
+chrM	4481	0	0	0	0	0	0	0	16-3584
+chrM	4482	0	0	0	0	0	0	0	16-3584
+chrM	4483	0	0	0	0	0	0	0	16-3584
+chrM	4484	0	0	0	0	0	0	0	16-3584
+chrM	4485	0	0	0	0	0	0	0	16-3584
+chrM	4486	0	0	0	0	0	0	0	16-3584
+chrM	4487	0	0	0	0	0	0	0	16-3584
+chrM	4488	0	0	0	0	0	0	0	16-3584
+chrM	4489	0	0	0	0	0	0	0	16-3584
+chrM	4490	0	0	0	0	0	0	0	16-3584
+chrM	4491	0	0	0	0	0	0	0	16-3584
+chrM	4492	0	0	0	0	0	0	0	16-3584
+chrM	4493	0	0	0	0	0	0	0	16-3584
+chrM	4494	0	0	0	0	0	0	0	16-3584
+chrM	4495	0	0	0	0	0	0	0	16-3584
+chrM	4496	0	0	0	0	0	0	0	16-3584
+chrM	4497	0	0	0	0	0	0	0	16-3584
+chrM	4498	0	0	0	0	0	0	0	16-3584
+chrM	4499	0	0	0	0	0	0	0	16-3584
+chrM	4500	0	0	0	0	0	0	0	16-3584
+chrM	4501	0	0	0	0	0	0	0	16-3584
+chrM	4502	0	0	0	0	0	0	0	16-3584
+chrM	4503	0	0	0	0	0	0	0	16-3584
+chrM	4504	0	0	0	0	0	0	0	16-3584
+chrM	4505	0	0	0	0	0	0	0	16-3584
+chrM	4506	0	0	0	0	0	0	0	16-3584
+chrM	4507	0	0	0	0	0	0	0	16-3584
+chrM	4508	0	0	0	0	0	0	0	16-3584
+chrM	4509	0	0	0	0	0	0	0	16-3584
+chrM	4510	0	0	0	0	0	0	0	16-3584
+chrM	4511	0	0	0	0	0	0	0	16-3584
+chrM	4512	0	0	0	0	0	0	0	16-3584
+chrM	4513	0	0	0	0	0	0	0	16-3584
+chrM	4514	0	0	0	0	0	0	0	16-3584
+chrM	4515	0	0	0	0	0	0	0	16-3584
+chrM	4516	0	0	0	0	0	0	0	16-3584
+chrM	4517	0	0	0	0	0	0	0	16-3584
+chrM	4518	0	0	0	0	0	0	0	16-3584
+chrM	4519	0	0	0	0	0	0	0	16-3584
+chrM	4520	0	0	0	0	0	0	0	16-3584
+chrM	4521	0	0	0	0	0	0	0	16-3584
+chrM	4522	0	0	0	0	0	0	0	16-3584
+chrM	4523	0	0	0	0	0	0	0	16-3584
+chrM	4524	0	0	0	0	0	0	0	16-3584
+chrM	4525	0	0	0	0	0	0	0	16-3584
+chrM	4526	0	0	0	0	0	0	0	16-3584
+chrM	4527	0	0	0	0	0	0	0	16-3584
+chrM	4528	0	0	0	0	0	0	0	16-3584
+chrM	4529	0	0	0	0	0	0	0	16-3584
+chrM	4530	0	0	0	0	0	0	0	16-3584
+chrM	4531	0	0	0	0	0	0	0	16-3584
+chrM	4532	0	0	0	0	0	0	0	16-3584
+chrM	4533	0	0	0	0	0	0	0	16-3584
+chrM	4534	0	0	0	0	0	0	0	16-3584
+chrM	4535	0	0	0	0	0	0	0	16-3584
+chrM	4536	0	0	0	0	0	0	0	16-3584
+chrM	4537	0	0	0	0	0	0	0	16-3584
+chrM	4538	0	0	0	0	0	0	0	16-3584
+chrM	4539	0	0	0	0	0	0	0	16-3584
+chrM	4540	0	0	0	0	0	0	0	16-3584
+chrM	4541	0	0	0	0	0	0	0	16-3584
+chrM	4542	0	0	0	0	0	0	0	16-3584
+chrM	4543	0	0	0	0	0	0	0	16-3584
+chrM	4544	0	0	0	0	0	0	0	16-3584
+chrM	4545	0	0	0	0	0	0	0	16-3584
+chrM	4546	0	0	0	0	0	0	0	16-3584
+chrM	4547	0	0	0	0	0	0	0	16-3584
+chrM	4548	0	0	0	0	0	0	0	16-3584
+chrM	4549	0	0	0	0	0	0	0	16-3584
+chrM	4550	0	0	0	0	0	0	0	16-3584
+chrM	4551	0	0	0	0	0	0	0	16-3584
+chrM	4552	0	0	0	0	0	0	0	16-3584
+chrM	4553	0	0	0	0	0	0	0	16-3584
+chrM	4554	0	0	0	0	0	0	0	16-3584
+chrM	4555	0	0	0	0	0	0	0	16-3584
+chrM	4556	0	0	0	0	0	0	0	16-3584
+chrM	4557	0	0	0	0	0	0	0	16-3584
+chrM	4558	0	0	0	0	0	0	0	16-3584
+chrM	4559	0	0	0	0	0	0	0	16-3584
+chrM	4560	0	0	0	0	0	0	0	16-3584
+chrM	4561	0	0	0	0	0	0	0	16-3584
+chrM	4562	0	0	0	0	0	0	0	16-3584
+chrM	4563	0	0	0	0	0	0	0	16-3584
+chrM	4564	0	0	0	0	0	0	0	16-3584
+chrM	4565	0	0	0	0	0	0	0	16-3584
+chrM	4566	0	0	0	0	0	0	0	16-3584
+chrM	4567	0	0	0	0	0	0	0	16-3584
+chrM	4568	0	0	0	0	0	0	0	16-3584
+chrM	4569	0	0	0	0	0	0	0	16-3584
+chrM	4570	0	0	0	0	0	0	0	16-3584
+chrM	4571	0	0	0	0	0	0	0	16-3584
+chrM	4572	0	0	0	0	0	0	0	16-3584
+chrM	4573	0	0	0	0	0	0	0	16-3584
+chrM	4574	0	0	0	0	0	0	0	16-3584
+chrM	4575	0	0	0	0	0	0	0	16-3584
+chrM	4576	0	0	0	0	0	0	0	16-3584
+chrM	4577	0	0	0	0	0	0	0	16-3584
+chrM	4578	0	0	0	0	0	0	0	16-3584
+chrM	4579	0	0	0	0	0	0	0	16-3584
+chrM	4580	0	0	0	0	0	0	0	16-3584
+chrM	4581	0	0	0	0	0	0	0	16-3584
+chrM	4582	0	0	0	0	0	0	0	16-3584
+chrM	4583	0	0	0	0	0	0	0	16-3584
+chrM	4584	0	0	0	0	0	0	0	16-3584
+chrM	4585	0	0	0	0	0	0	0	16-3584
+chrM	4586	0	0	0	0	0	0	0	16-3584
+chrM	4587	0	0	0	0	0	0	0	16-3584
+chrM	4588	0	0	0	0	0	0	0	16-3584
+chrM	4589	0	0	0	0	0	0	0	16-3584
+chrM	4590	0	0	0	0	0	0	0	16-3584
+chrM	4591	0	0	0	0	0	0	0	16-3584
+chrM	4592	0	0	0	0	0	0	0	16-3584
+chrM	4593	0	0	0	0	0	0	0	16-3584
+chrM	4594	0	0	0	0	0	0	0	16-3584
+chrM	4595	0	0	0	0	0	0	0	16-3584
+chrM	4596	0	0	0	0	0	0	0	16-3584
+chrM	4597	0	0	0	0	0	0	0	16-3584
+chrM	4598	0	0	0	0	0	0	0	16-3584
+chrM	4599	0	0	0	0	0	0	0	16-3584
+chrM	4600	0	0	0	0	0	0	0	16-3584
+chrM	4601	0	0	0	0	0	0	0	16-3584
+chrM	4602	0	0	0	0	0	0	0	16-3584
+chrM	4603	0	0	0	0	0	0	0	16-3584
+chrM	4604	0	0	0	0	0	0	0	16-3584
+chrM	4605	0	0	0	0	0	0	0	16-3584
+chrM	4606	0	0	0	0	0	0	0	16-3584
+chrM	4607	0	0	0	0	0	0	0	16-3584
+chrM	4608	0	0	0	0	0	0	0	16-3584
+chrM	4609	0	0	0	0	0	0	0	16-3584
+chrM	4610	0	0	0	0	0	0	0	16-3584
+chrM	4611	0	0	0	0	0	0	0	16-3584
+chrM	4612	0	0	0	0	0	0	0	16-3584
+chrM	4613	0	0	0	0	0	0	0	16-3584
+chrM	4614	0	0	0	0	0	0	0	16-3584
+chrM	4615	0	0	0	0	0	0	0	16-3584
+chrM	4616	0	0	0	0	0	0	0	16-3584
+chrM	4617	0	0	0	0	0	0	0	16-3584
+chrM	4618	0	0	0	0	0	0	0	16-3584
+chrM	4619	0	0	0	0	0	0	0	16-3584
+chrM	4620	0	0	0	0	0	0	0	16-3584
+chrM	4621	0	0	0	0	0	0	0	16-3584
+chrM	4622	0	0	0	0	0	0	0	16-3584
+chrM	4623	0	0	0	0	0	0	0	16-3584
+chrM	4624	0	0	0	0	0	0	0	16-3584
+chrM	4625	0	0	0	0	0	0	0	16-3584
+chrM	4626	0	0	0	0	0	0	0	16-3584
+chrM	4627	0	0	0	0	0	0	0	16-3584
+chrM	4628	0	0	0	0	0	0	0	16-3584
+chrM	4629	0	0	0	0	0	0	0	16-3584
+chrM	4630	0	0	0	0	0	0	0	16-3584
+chrM	4631	0	0	0	0	0	0	0	16-3584
+chrM	4632	0	0	0	0	0	0	0	16-3584
+chrM	4633	0	0	0	0	0	0	0	16-3584
+chrM	4634	0	0	0	0	0	0	0	16-3584
+chrM	4635	0	0	0	0	0	0	0	16-3584
+chrM	4636	0	0	0	0	0	0	0	16-3584
+chrM	4637	0	0	0	0	0	0	0	16-3584
+chrM	4638	0	0	0	0	0	0	0	16-3584
+chrM	4639	0	0	0	0	0	0	0	16-3584
+chrM	4640	0	0	0	0	0	0	0	16-3584
+chrM	4641	0	0	0	0	0	0	0	16-3584
+chrM	4642	0	0	0	0	0	0	0	16-3584
+chrM	4643	0	0	0	0	0	0	0	16-3584
+chrM	4644	0	0	0	0	0	0	0	16-3584
+chrM	4645	0	0	0	0	0	0	0	16-3584
+chrM	4646	0	0	0	0	0	0	0	16-3584
+chrM	4647	0	0	0	0	0	0	0	16-3584
+chrM	4648	0	0	0	0	0	0	0	16-3584
+chrM	4649	0	0	0	0	0	0	0	16-3584
+chrM	4650	0	0	0	0	0	0	0	16-3584
+chrM	4651	0	0	0	0	0	0	0	16-3584
+chrM	4652	0	0	0	0	0	0	0	16-3584
+chrM	4653	0	0	0	0	0	0	0	16-3584
+chrM	4654	0	0	0	0	0	0	0	16-3584
+chrM	4655	0	0	0	0	0	0	0	16-3584
+chrM	4656	0	0	0	0	0	0	0	16-3584
+chrM	4657	0	0	0	0	0	0	0	16-3584
+chrM	4658	0	0	0	0	0	0	0	16-3584
+chrM	4659	0	0	0	0	0	0	0	16-3584
+chrM	4660	0	0	0	0	0	0	0	16-3584
+chrM	4661	0	0	0	0	0	0	0	16-3584
+chrM	4662	0	0	0	0	0	0	0	16-3584
+chrM	4663	0	0	0	0	0	0	0	16-3584
+chrM	4664	0	0	0	0	0	0	0	16-3584
+chrM	4665	0	0	0	0	0	0	0	16-3584
+chrM	4666	0	0	0	0	0	0	0	16-3584
+chrM	4667	0	0	0	0	0	0	0	16-3584
+chrM	4668	0	0	0	0	0	0	0	16-3584
+chrM	4669	0	0	0	0	0	0	0	16-3584
+chrM	4670	0	0	0	0	0	0	0	16-3584
+chrM	4671	0	0	0	0	0	0	0	16-3584
+chrM	4672	0	0	0	0	0	0	0	16-3584
+chrM	4673	0	0	0	0	0	0	0	16-3584
+chrM	4674	0	0	0	0	0	0	0	16-3584
+chrM	4675	0	0	0	0	0	0	0	16-3584
+chrM	4676	0	0	0	0	0	0	0	16-3584
+chrM	4677	0	0	0	0	0	0	0	16-3584
+chrM	4678	0	0	0	0	0	0	0	16-3584
+chrM	4679	0	0	0	0	0	0	0	16-3584
+chrM	4680	0	0	0	0	0	0	0	16-3584
+chrM	4681	0	0	0	0	0	0	0	16-3584
+chrM	4682	0	0	0	0	0	0	0	16-3584
+chrM	4683	0	0	0	0	0	0	0	16-3584
+chrM	4684	0	0	0	0	0	0	0	16-3584
+chrM	4685	0	0	0	0	0	0	0	16-3584
+chrM	4686	0	0	0	0	0	0	0	16-3584
+chrM	4687	0	0	0	0	0	0	0	16-3584
+chrM	4688	0	0	0	0	0	0	0	16-3584
+chrM	4689	0	0	0	0	0	0	0	16-3584
+chrM	4690	0	0	0	0	0	0	0	16-3584
+chrM	4691	0	0	0	0	0	0	0	16-3584
+chrM	4692	0	0	0	0	0	0	0	16-3584
+chrM	4693	0	0	0	0	0	0	0	16-3584
+chrM	4694	0	0	0	0	0	0	0	16-3584
+chrM	4695	0	0	0	0	0	0	0	16-3584
+chrM	4696	0	0	0	0	0	0	0	16-3584
+chrM	4697	0	0	0	0	0	0	0	16-3584
+chrM	4698	0	0	0	0	0	0	0	16-3584
+chrM	4699	0	0	0	0	0	0	0	16-3584
+chrM	4700	0	0	0	0	0	0	0	16-3584
+chrM	4701	0	0	0	0	0	0	0	16-3584
+chrM	4702	0	0	0	0	0	0	0	16-3584
+chrM	4703	0	0	0	0	0	0	0	16-3584
+chrM	4704	0	0	0	0	0	0	0	16-3584
+chrM	4705	0	0	0	0	0	0	0	16-3584
+chrM	4706	0	0	0	0	0	0	0	16-3584
+chrM	4707	0	0	0	0	0	0	0	16-3584
+chrM	4708	0	0	0	0	0	0	0	16-3584
+chrM	4709	0	0	0	0	0	0	0	16-3584
+chrM	4710	0	0	0	0	0	0	0	16-3584
+chrM	4711	0	0	0	0	0	0	0	16-3584
+chrM	4712	0	0	0	0	0	0	0	16-3584
+chrM	4713	0	0	0	0	0	0	0	16-3584
+chrM	4714	0	0	0	0	0	0	0	16-3584
+chrM	4715	0	0	0	0	0	0	0	16-3584
+chrM	4716	0	0	0	0	0	0	0	16-3584
+chrM	4717	0	0	0	0	0	0	0	16-3584
+chrM	4718	0	0	0	0	0	0	0	16-3584
+chrM	4719	0	0	0	0	0	0	0	16-3584
+chrM	4720	0	0	0	0	0	0	0	16-3584
+chrM	4721	0	0	0	0	0	0	0	16-3584
+chrM	4722	0	0	0	0	0	0	0	16-3584
+chrM	4723	0	0	0	0	0	0	0	16-3584
+chrM	4724	0	0	0	0	0	0	0	16-3584
+chrM	4725	0	0	0	0	0	0	0	16-3584
+chrM	4726	0	0	0	0	0	0	0	16-3584
+chrM	4727	0	0	0	0	0	0	0	16-3584
+chrM	4728	0	0	0	0	0	0	0	16-3584
+chrM	4729	0	0	0	0	0	0	0	16-3584
+chrM	4730	0	0	0	0	0	0	0	16-3584
+chrM	4731	0	0	0	0	0	0	0	16-3584
+chrM	4732	0	0	0	0	0	0	0	16-3584
+chrM	4733	0	0	0	0	0	0	0	16-3584
+chrM	4734	0	0	0	0	0	0	0	16-3584
+chrM	4735	0	0	0	0	0	0	0	16-3584
+chrM	4736	0	0	0	0	0	0	0	16-3584
+chrM	4737	0	0	0	0	0	0	0	16-3584
+chrM	4738	0	0	0	0	0	0	0	16-3584
+chrM	4739	0	0	0	0	0	0	0	16-3584
+chrM	4740	0	0	0	0	0	0	0	16-3584
+chrM	4741	0	0	0	0	0	0	0	16-3584
+chrM	4742	0	0	0	0	0	0	0	16-3584
+chrM	4743	0	0	0	0	0	0	0	16-3584
+chrM	4744	0	0	0	0	0	0	0	16-3584
+chrM	4745	0	0	0	0	0	0	0	16-3584
+chrM	4746	0	0	0	0	0	0	0	16-3584
+chrM	4747	0	0	0	0	0	0	0	16-3584
+chrM	4748	0	0	0	0	0	0	0	16-3584
+chrM	4749	0	0	0	0	0	0	0	16-3584
+chrM	4750	0	0	0	0	0	0	0	16-3584
+chrM	4751	0	0	0	0	0	0	0	16-3584
+chrM	4752	0	0	0	0	0	0	0	16-3584
+chrM	4753	0	0	0	0	0	0	0	16-3584
+chrM	4754	0	0	0	0	0	0	0	16-3584
+chrM	4755	0	0	0	0	0	0	0	16-3584
+chrM	4756	0	0	0	0	0	0	0	16-3584
+chrM	4757	0	0	0	0	0	0	0	16-3584
+chrM	4758	0	0	0	0	0	0	0	16-3584
+chrM	4759	0	0	0	0	0	0	0	16-3584
+chrM	4760	0	0	0	0	0	0	0	16-3584
+chrM	4761	0	0	0	0	0	0	0	16-3584
+chrM	4762	0	0	0	0	0	0	0	16-3584
+chrM	4763	0	0	0	0	0	0	0	16-3584
+chrM	4764	0	0	0	0	0	0	0	16-3584
+chrM	4765	0	0	0	0	0	0	0	16-3584
+chrM	4766	0	0	0	0	0	0	0	16-3584
+chrM	4767	0	0	0	0	0	0	0	16-3584
+chrM	4768	0	0	0	0	0	0	0	16-3584
+chrM	4769	0	0	0	0	0	0	0	16-3584
+chrM	4770	0	0	0	0	0	0	0	16-3584
+chrM	4771	0	0	0	0	0	0	0	16-3584
+chrM	4772	0	0	0	0	0	0	0	16-3584
+chrM	4773	0	0	0	0	0	0	0	16-3584
+chrM	4774	0	0	0	0	0	0	0	16-3584
+chrM	4775	0	0	0	0	0	0	0	16-3584
+chrM	4776	0	0	0	0	0	0	0	16-3584
+chrM	4777	0	0	0	0	0	0	0	16-3584
+chrM	4778	0	0	0	0	0	0	0	16-3584
+chrM	4779	0	0	0	0	0	0	0	16-3584
+chrM	4780	0	0	0	0	0	0	0	16-3584
+chrM	4781	0	0	0	0	0	0	0	16-3584
+chrM	4782	0	0	0	0	0	0	0	16-3584
+chrM	4783	0	0	0	0	0	0	0	16-3584
+chrM	4784	0	0	0	0	0	0	0	16-3584
+chrM	4785	0	0	0	0	0	0	0	16-3584
+chrM	4786	0	0	0	0	0	0	0	16-3584
+chrM	4787	0	0	0	0	0	0	0	16-3584
+chrM	4788	0	0	0	0	0	0	0	16-3584
+chrM	4789	0	0	0	0	0	0	0	16-3584
+chrM	4790	0	0	0	0	0	0	0	16-3584
+chrM	4791	0	0	0	0	0	0	0	16-3584
+chrM	4792	0	0	0	0	0	0	0	16-3584
+chrM	4793	0	0	0	0	0	0	0	16-3584
+chrM	4794	0	0	0	0	0	0	0	16-3584
+chrM	4795	0	0	0	0	0	0	0	16-3584
+chrM	4796	0	0	0	0	0	0	0	16-3584
+chrM	4797	0	0	0	0	0	0	0	16-3584
+chrM	4798	0	0	0	0	0	0	0	16-3584
+chrM	4799	0	0	0	0	0	0	0	16-3584
+chrM	4800	0	0	0	0	0	0	0	16-3584
+chrM	4801	0	0	0	0	0	0	0	16-3584
+chrM	4802	0	0	0	0	0	0	0	16-3584
+chrM	4803	0	0	0	0	0	0	0	16-3584
+chrM	4804	0	0	0	0	0	0	0	16-3584
+chrM	4805	0	0	0	0	0	0	0	16-3584
+chrM	4806	0	0	0	0	0	0	0	16-3584
+chrM	4807	0	0	0	0	0	0	0	16-3584
+chrM	4808	0	0	0	0	0	0	0	16-3584
+chrM	4809	0	0	0	0	0	0	0	16-3584
+chrM	4810	0	0	0	0	0	0	0	16-3584
+chrM	4811	0	0	0	0	0	0	0	16-3584
+chrM	4812	0	0	0	0	0	0	0	16-3584
+chrM	4813	0	0	0	0	0	0	0	16-3584
+chrM	4814	2	0	2	0	0	0	0	16-3584
+chrM	4815	2	1	0	1	0	0	0	16-3584
+chrM	4816	2	0	1	1	0	0	0	16-3584
+chrM	4817	2	0	1	1	0	0	0	16-3584
+chrM	4818	2	0	0	0	2	0	0	16-3584
+chrM	4819	2	0	0	0	2	0	0	16-3584
+chrM	4820	2	0	0	0	2	0	0	16-3584
+chrM	4821	2	0	0	2	0	0	0	16-3584
+chrM	4822	2	0	0	0	2	0	0	16-3584
+chrM	4823	2	1	1	0	0	0	0	16-3584
+chrM	4824	2	1	1	0	0	0	0	16-3584
+chrM	4825	2	1	0	1	0	0	0	16-3584
+chrM	4826	2	1	0	0	1	0	0	16-3584
+chrM	4827	2	1	0	0	1	0	0	16-3584
+chrM	4828	2	0	0	1	1	0	0	16-3584
+chrM	4829	2	0	0	1	1	0	0	16-3584
+chrM	4830	2	0	1	0	1	0	0	16-3584
+chrM	4831	2	0	1	0	1	0	0	16-3584
+chrM	4832	4	0	2	2	0	0	0	16-3584
+chrM	4833	4	1	2	1	0	0	0	16-3584
+chrM	4834	4	2	1	1	0	0	0	16-3584
+chrM	4835	4	1	1	1	1	0	0	16-3584
+chrM	4836	4	3	0	0	1	0	0	16-3584
+chrM	4837	4	1	1	0	2	0	0	16-3584
+chrM	4838	4	0	2	2	0	0	0	16-3584
+chrM	4839	4	1	0	0	3	0	0	16-3584
+chrM	4840	4	0	0	3	1	0	0	16-3584
+chrM	4841	4	1	2	1	0	0	0	16-3584
+chrM	4842	4	0	1	1	2	0	0	16-3584
+chrM	4843	4	0	2	0	2	0	0	16-3584
+chrM	4844	4	2	1	1	0	0	0	16-3584
+chrM	4845	4	1	2	0	1	0	0	16-3584
+chrM	4846	4	1	2	0	1	0	0	16-3584
+chrM	4847	4	0	1	1	2	0	0	16-3584
+chrM	4848	4	1	0	2	1	0	0	16-3584
+chrM	4849	4	2	0	2	0	0	0	16-3584
+chrM	4850	4	2	1	1	0	0	0	16-3584
+chrM	4851	4	1	0	1	2	0	0	16-3584
+chrM	4852	4	1	0	3	0	0	0	16-3584
+chrM	4853	6	1	3	1	1	0	0	16-3584
+chrM	4854	6	0	1	1	4	0	0	16-3584
+chrM	4855	6	2	1	1	2	0	0	16-3584
+chrM	4856	6	1	0	2	3	0	0	16-3584
+chrM	4857	6	3	1	0	2	0	0	16-3584
+chrM	4858	6	0	3	1	2	0	0	16-3584
+chrM	4859	6	2	0	2	2	0	0	16-3584
+chrM	4860	6	1	1	1	3	0	0	16-3584
+chrM	4861	6	2	2	0	2	0	0	16-3584
+chrM	4862	6	3	1	1	1	0	0	16-3584
+chrM	4863	6	0	2	2	2	0	0	16-3584
+chrM	4864	6	1	2	2	1	0	0	16-3584
+chrM	4865	6	2	1	1	2	0	0	16-3584
+chrM	4866	6	3	2	0	1	0	0	16-3584
+chrM	4867	6	2	1	3	0	0	0	16-3584
+chrM	4868	6	3	0	2	1	0	0	16-3584
+chrM	4869	6	0	1	3	2	0	0	16-3584
+chrM	4870	6	1	1	2	2	0	0	16-3584
+chrM	4871	6	3	0	1	2	0	0	16-3584
+chrM	4872	6	1	3	1	1	0	0	16-3584
+chrM	4873	6	0	1	2	3	0	0	16-3584
+chrM	4874	6	4	0	0	2	0	0	16-3584
+chrM	4875	6	0	3	2	1	0	0	16-3584
+chrM	4876	6	0	3	2	1	0	0	16-3584
+chrM	4877	6	3	0	2	1	0	0	16-3584
+chrM	4878	6	5	1	0	0	0	0	16-3584
+chrM	4879	6	2	2	1	1	0	0	16-3584
+chrM	4880	6	2	2	1	1	0	0	16-3584
+chrM	4881	6	1	1	3	1	0	0	16-3584
+chrM	4882	6	1	1	2	2	0	0	16-3584
+chrM	4883	6	1	1	1	3	0	0	16-3584
+chrM	4884	6	1	1	2	2	0	0	16-3584
+chrM	4885	6	1	2	1	2	0	0	16-3584
+chrM	4886	6	1	3	0	2	0	0	16-3584
+chrM	4887	6	2	2	2	0	0	0	16-3584
+chrM	4888	6	2	1	1	2	0	0	16-3584
+chrM	4889	6	1	3	2	0	0	0	16-3584
+chrM	4890	6	1	2	1	2	0	0	16-3584
+chrM	4891	6	0	3	0	3	0	0	16-3584
+chrM	4892	6	2	4	0	0	0	0	16-3584
+chrM	4893	6	1	3	1	1	0	0	16-3584
+chrM	4894	6	3	1	1	1	0	0	16-3584
+chrM	4895	6	0	1	2	3	0	0	16-3584
+chrM	4896	6	1	1	3	1	0	0	16-3584
+chrM	4897	6	2	1	2	1	0	0	16-3584
+chrM	4898	6	3	3	0	0	0	0	16-3584
+chrM	4899	6	1	4	0	1	0	0	16-3584
+chrM	4900	6	2	0	2	2	0	0	16-3584
+chrM	4901	6	1	2	2	1	0	0	16-3584
+chrM	4902	6	1	3	1	1	0	0	16-3584
+chrM	4903	6	2	2	1	1	0	0	16-3584
+chrM	4904	6	0	2	3	1	0	0	16-3584
+chrM	4905	6	0	1	4	1	0	0	16-3584
+chrM	4906	6	3	0	1	2	0	0	16-3584
+chrM	4907	6	1	1	1	3	0	0	16-3584
+chrM	4908	6	1	0	1	4	0	0	16-3584
+chrM	4909	6	3	2	1	0	0	0	16-3584
+chrM	4910	6	2	3	0	1	0	0	16-3584
+chrM	4911	6	1	2	2	1	0	0	16-3584
+chrM	4912	6	0	3	2	1	0	0	16-3584
+chrM	4913	6	1	0	1	4	0	0	16-3584
+chrM	4914	6	1	1	0	4	0	0	16-3584
+chrM	4915	6	2	0	1	3	0	0	16-3584
+chrM	4916	6	1	2	1	2	0	0	16-3584
+chrM	4917	6	0	1	3	2	0	0	16-3584
+chrM	4918	6	4	1	1	0	0	0	16-3584
+chrM	4919	6	1	1	0	4	0	0	16-3584
+chrM	4920	6	3	0	2	1	0	0	16-3584
+chrM	4921	6	2	3	0	1	0	0	16-3584
+chrM	4922	6	2	0	1	3	0	0	16-3584
+chrM	4923	6	1	1	3	1	0	0	16-3584
+chrM	4924	6	1	2	1	2	0	0	16-3584
+chrM	4925	6	0	1	3	2	0	0	16-3584
+chrM	4926	6	2	2	0	2	0	0	16-3584
+chrM	4927	6	1	3	1	1	0	0	16-3584
+chrM	4928	6	1	1	2	2	0	0	16-3584
+chrM	4929	6	3	1	0	2	0	0	16-3584
+chrM	4930	6	3	1	1	1	0	0	16-3584
+chrM	4931	6	0	1	3	2	0	0	16-3584
+chrM	4932	6	1	3	0	2	0	0	16-3584
+chrM	4933	6	2	1	3	0	0	0	16-3584
+chrM	4934	6	1	4	0	1	0	0	16-3584
+chrM	4935	6	1	1	2	2	0	0	16-3584
+chrM	4936	6	1	3	0	2	0	0	16-3584
+chrM	4937	6	3	0	1	2	0	0	16-3584
+chrM	4938	6	1	2	1	2	0	0	16-3584
+chrM	4939	6	1	3	1	1	0	0	16-3584
+chrM	4940	6	3	2	1	0	0	0	16-3584
+chrM	4941	6	2	1	1	2	0	0	16-3584
+chrM	4942	6	1	3	0	2	0	0	16-3584
+chrM	4943	6	3	1	1	1	0	0	16-3584
+chrM	4944	6	1	1	2	2	0	0	16-3584
+chrM	4945	6	0	3	0	3	0	0	16-3584
+chrM	4946	6	2	1	1	2	0	0	16-3584
+chrM	4947	6	1	3	0	2	0	0	16-3584
+chrM	4948	6	1	3	0	2	0	0	16-3584
+chrM	4949	6	1	3	1	1	0	0	16-3584
+chrM	4950	6	2	2	1	1	0	0	16-3584
+chrM	4951	6	2	0	3	1	0	0	16-3584
+chrM	4952	6	3	3	0	0	0	0	16-3584
+chrM	4953	6	1	2	2	1	0	0	16-3584
+chrM	4954	6	2	1	3	0	0	0	16-3584
+chrM	4955	6	3	1	0	2	0	0	16-3584
+chrM	4956	6	0	1	1	4	0	0	16-3584
+chrM	4957	6	1	0	2	3	0	0	16-3584
+chrM	4958	4	0	2	2	0	0	0	16-3584
+chrM	4959	4	2	1	1	0	0	0	16-3584
+chrM	4960	4	0	2	0	2	0	0	16-3584
+chrM	4961	4	2	1	0	1	0	0	16-3584
+chrM	4962	4	1	0	1	2	0	0	16-3584
+chrM	4963	4	1	0	1	2	0	0	16-3584
+chrM	4964	4	1	1	1	1	0	0	16-3584
+chrM	4965	4	1	2	0	1	0	0	16-3584
+chrM	4966	4	1	0	3	0	0	0	16-3584
+chrM	4967	4	1	1	0	2	0	0	16-3584
+chrM	4968	4	2	0	0	2	0	0	16-3584
+chrM	4969	4	0	2	1	1	0	0	16-3584
+chrM	4970	4	1	1	1	1	0	0	16-3584
+chrM	4971	4	2	0	0	2	0	0	16-3584
+chrM	4972	4	0	1	1	2	0	0	16-3584
+chrM	4973	4	1	1	1	1	0	0	16-3584
+chrM	4974	4	3	1	0	0	0	0	16-3584
+chrM	4975	4	3	0	1	0	0	0	16-3584
+chrM	4976	4	0	1	1	2	0	0	16-3584
+chrM	4977	4	0	3	0	1	0	0	16-3584
+chrM	4978	2	0	0	2	0	0	0	16-3584
+chrM	4979	2	1	1	0	0	0	0	16-3584
+chrM	4980	2	0	2	0	0	0	0	16-3584
+chrM	4981	2	1	0	1	0	0	0	16-3584
+chrM	4982	2	0	0	0	2	0	0	16-3584
+chrM	4983	2	0	0	0	2	0	0	16-3584
+chrM	4984	2	0	1	0	1	0	0	16-3584
+chrM	4985	2	0	1	0	1	0	0	16-3584
+chrM	4986	2	2	0	0	0	0	0	16-3584
+chrM	4987	2	1	1	0	0	0	0	16-3584
+chrM	4988	2	2	0	0	0	0	0	16-3584
+chrM	4989	2	1	0	0	1	0	0	16-3584
+chrM	4990	2	1	0	0	1	0	0	16-3584
+chrM	4991	2	1	0	0	1	0	0	16-3584
+chrM	4992	2	1	1	0	0	0	0	16-3584
+chrM	4993	2	1	1	0	0	0	0	16-3584
+chrM	4994	2	1	1	0	0	0	0	16-3584
+chrM	4995	2	2	0	0	0	0	0	16-3584
+chrM	4996	2	0	0	1	1	0	0	16-3584
+chrM	4997	2	0	0	0	2	0	0	16-3584
+chrM	4998	2	1	0	0	1	0	0	16-3584
+chrM	4999	0	0	0	0	0	0	0	16-3584
+chrM	5000	0	0	0	0	0	0	0	16-3584
+chrM	5001	0	0	0	0	0	0	0	16-3584
+chrM	5002	0	0	0	0	0	0	0	16-3584
+chrM	5003	0	0	0	0	0	0	0	16-3584
+chrM	5004	0	0	0	0	0	0	0	16-3584
+chrM	5005	0	0	0	0	0	0	0	16-3584
+chrM	5006	0	0	0	0	0	0	0	16-3584
+chrM	5007	0	0	0	0	0	0	0	16-3584
+chrM	5008	0	0	0	0	0	0	0	16-3584
+chrM	5009	0	0	0	0	0	0	0	16-3584
+chrM	5010	0	0	0	0	0	0	0	16-3584
+chrM	5011	0	0	0	0	0	0	0	16-3584
+chrM	5012	0	0	0	0	0	0	0	16-3584
+chrM	5013	0	0	0	0	0	0	0	16-3584
+chrM	5014	0	0	0	0	0	0	0	16-3584
+chrM	5015	0	0	0	0	0	0	0	16-3584
+chrM	5016	0	0	0	0	0	0	0	16-3584
+chrM	5017	0	0	0	0	0	0	0	16-3584
+chrM	5018	0	0	0	0	0	0	0	16-3584
+chrM	5019	0	0	0	0	0	0	0	16-3584
+chrM	5020	0	0	0	0	0	0	0	16-3584
+chrM	5021	0	0	0	0	0	0	0	16-3584
+chrM	5022	0	0	0	0	0	0	0	16-3584
+chrM	5023	0	0	0	0	0	0	0	16-3584
+chrM	5024	0	0	0	0	0	0	0	16-3584
+chrM	5025	0	0	0	0	0	0	0	16-3584
+chrM	5026	0	0	0	0	0	0	0	16-3584
+chrM	5027	0	0	0	0	0	0	0	16-3584
+chrM	5028	0	0	0	0	0	0	0	16-3584
+chrM	5029	0	0	0	0	0	0	0	16-3584
+chrM	5030	0	0	0	0	0	0	0	16-3584
+chrM	5031	0	0	0	0	0	0	0	16-3584
+chrM	5032	0	0	0	0	0	0	0	16-3584
+chrM	5033	0	0	0	0	0	0	0	16-3584
+chrM	5034	0	0	0	0	0	0	0	16-3584
+chrM	5035	0	0	0	0	0	0	0	16-3584
+chrM	5036	0	0	0	0	0	0	0	16-3584
+chrM	5037	0	0	0	0	0	0	0	16-3584
+chrM	5038	0	0	0	0	0	0	0	16-3584
+chrM	5039	0	0	0	0	0	0	0	16-3584
+chrM	5040	0	0	0	0	0	0	0	16-3584
+chrM	5041	0	0	0	0	0	0	0	16-3584
+chrM	5042	0	0	0	0	0	0	0	16-3584
+chrM	5043	0	0	0	0	0	0	0	16-3584
+chrM	5044	0	0	0	0	0	0	0	16-3584
+chrM	5045	0	0	0	0	0	0	0	16-3584
+chrM	5046	0	0	0	0	0	0	0	16-3584
+chrM	5047	0	0	0	0	0	0	0	16-3584
+chrM	5048	0	0	0	0	0	0	0	16-3584
+chrM	5049	0	0	0	0	0	0	0	16-3584
+chrM	5050	0	0	0	0	0	0	0	16-3584
+chrM	5051	0	0	0	0	0	0	0	16-3584
+chrM	5052	0	0	0	0	0	0	0	16-3584
+chrM	5053	0	0	0	0	0	0	0	16-3584
+chrM	5054	0	0	0	0	0	0	0	16-3584
+chrM	5055	0	0	0	0	0	0	0	16-3584
+chrM	5056	0	0	0	0	0	0	0	16-3584
+chrM	5057	0	0	0	0	0	0	0	16-3584
+chrM	5058	0	0	0	0	0	0	0	16-3584
+chrM	5059	0	0	0	0	0	0	0	16-3584
+chrM	5060	0	0	0	0	0	0	0	16-3584
+chrM	5061	0	0	0	0	0	0	0	16-3584
+chrM	5062	0	0	0	0	0	0	0	16-3584
+chrM	5063	0	0	0	0	0	0	0	16-3584
+chrM	5064	0	0	0	0	0	0	0	16-3584
+chrM	5065	0	0	0	0	0	0	0	16-3584
+chrM	5066	0	0	0	0	0	0	0	16-3584
+chrM	5067	0	0	0	0	0	0	0	16-3584
+chrM	5068	0	0	0	0	0	0	0	16-3584
+chrM	5069	1	0	1	0	0	0	0	16-3584
+chrM	5070	1	0	0	0	1	0	0	16-3584
+chrM	5071	1	0	1	0	0	0	0	16-3584
+chrM	5072	1	0	1	0	0	0	0	16-3584
+chrM	5073	1	0	0	1	0	0	0	16-3584
+chrM	5074	1	0	1	0	0	0	0	16-3584
+chrM	5075	1	1	0	0	0	0	0	16-3584
+chrM	5076	1	0	0	1	0	0	0	16-3584
+chrM	5077	1	1	0	0	0	0	0	16-3584
+chrM	5078	1	0	0	0	1	0	0	16-3584
+chrM	5079	1	0	0	0	1	0	0	16-3584
+chrM	5080	1	1	0	0	0	0	0	16-3584
+chrM	5081	1	0	1	0	0	0	0	16-3584
+chrM	5082	2	1	0	0	1	0	0	16-3584
+chrM	5083	2	2	0	0	0	0	0	16-3584
+chrM	5084	2	1	0	1	0	0	0	16-3584
+chrM	5085	2	0	1	1	0	0	0	16-3584
+chrM	5086	2	1	0	0	1	0	0	16-3584
+chrM	5087	2	0	1	0	1	0	0	16-3584
+chrM	5088	2	0	2	0	0	0	0	16-3584
+chrM	5089	2	1	1	0	0	0	0	16-3584
+chrM	5090	2	2	0	0	0	0	0	16-3584
+chrM	5091	2	0	1	1	0	0	0	16-3584
+chrM	5092	2	0	1	1	0	0	0	16-3584
+chrM	5093	2	1	0	0	1	0	0	16-3584
+chrM	5094	2	1	1	0	0	0	0	16-3584
+chrM	5095	2	0	0	1	1	0	0	16-3584
+chrM	5096	2	1	0	1	0	0	0	16-3584
+chrM	5097	2	0	1	0	1	0	0	16-3584
+chrM	5098	2	0	2	0	0	0	0	16-3584
+chrM	5099	2	1	1	0	0	0	0	16-3584
+chrM	5100	2	0	1	0	1	0	0	16-3584
+chrM	5101	2	0	1	0	1	0	0	16-3584
+chrM	5102	2	1	0	0	1	0	0	16-3584
+chrM	5103	2	1	0	0	1	0	0	16-3584
+chrM	5104	2	0	0	1	1	0	0	16-3584
+chrM	5105	2	0	1	1	0	0	0	16-3584
+chrM	5106	2	0	0	1	1	0	0	16-3584
+chrM	5107	2	0	1	0	1	0	0	16-3584
+chrM	5108	2	1	0	1	0	0	0	16-3584
+chrM	5109	2	1	1	0	0	0	0	16-3584
+chrM	5110	2	0	1	0	1	0	0	16-3584
+chrM	5111	2	1	0	0	1	0	0	16-3584
+chrM	5112	2	2	0	0	0	0	0	16-3584
+chrM	5113	2	0	1	1	0	0	0	16-3584
+chrM	5114	2	0	0	1	1	0	0	16-3584
+chrM	5115	2	0	2	0	0	0	0	16-3584
+chrM	5116	2	0	0	0	2	0	0	16-3584
+chrM	5117	2	1	1	0	0	0	0	16-3584
+chrM	5118	2	0	0	2	0	0	0	16-3584
+chrM	5119	2	0	2	0	0	0	0	16-3584
+chrM	5120	2	0	0	1	1	0	0	16-3584
+chrM	5121	2	0	0	2	0	0	0	16-3584
+chrM	5122	2	1	1	0	0	0	0	16-3584
+chrM	5123	2	0	1	1	0	0	0	16-3584
+chrM	5124	2	0	2	0	0	0	0	16-3584
+chrM	5125	2	0	1	0	1	0	0	16-3584
+chrM	5126	2	1	0	1	0	0	0	16-3584
+chrM	5127	2	1	1	0	0	0	0	16-3584
+chrM	5128	2	0	0	0	2	0	0	16-3584
+chrM	5129	2	1	1	0	0	0	0	16-3584
+chrM	5130	2	0	1	1	0	0	0	16-3584
+chrM	5131	2	1	0	0	1	0	0	16-3584
+chrM	5132	2	0	1	0	1	0	0	16-3584
+chrM	5133	2	0	0	1	1	0	0	16-3584
+chrM	5134	2	1	1	0	0	0	0	16-3584
+chrM	5135	2	0	0	1	1	0	0	16-3584
+chrM	5136	2	0	0	0	2	0	0	16-3584
+chrM	5137	2	1	0	1	0	0	0	16-3584
+chrM	5138	2	0	0	1	1	0	0	16-3584
+chrM	5139	2	1	0	1	0	0	0	16-3584
+chrM	5140	2	0	2	0	0	0	0	16-3584
+chrM	5141	2	1	0	1	0	0	0	16-3584
+chrM	5142	2	0	0	1	1	0	0	16-3584
+chrM	5143	2	0	0	0	2	0	0	16-3584
+chrM	5144	2	0	0	2	0	0	0	16-3584
+chrM	5145	2	0	0	0	2	0	0	16-3584
+chrM	5146	2	0	0	2	0	0	0	16-3584
+chrM	5147	2	0	0	0	2	0	0	16-3584
+chrM	5148	2	1	0	0	1	0	0	16-3584
+chrM	5149	2	1	0	0	1	0	0	16-3584
+chrM	5150	2	2	0	0	0	0	0	16-3584
+chrM	5151	2	1	0	0	1	0	0	16-3584
+chrM	5152	2	0	1	1	0	0	0	16-3584
+chrM	5153	2	0	1	1	0	0	0	16-3584
+chrM	5154	2	0	0	0	2	0	0	16-3584
+chrM	5155	2	1	0	0	1	0	0	16-3584
+chrM	5156	2	0	1	1	0	0	0	16-3584
+chrM	5157	2	0	1	0	1	0	0	16-3584
+chrM	5158	2	1	0	0	1	0	0	16-3584
+chrM	5159	2	1	1	0	0	0	0	16-3584
+chrM	5160	2	1	0	1	0	0	0	16-3584
+chrM	5161	2	0	0	1	1	0	0	16-3584
+chrM	5162	2	1	0	1	0	0	0	16-3584
+chrM	5163	2	1	0	1	0	0	0	16-3584
+chrM	5164	2	0	0	2	0	0	0	16-3584
+chrM	5165	2	0	0	2	0	0	0	16-3584
+chrM	5166	2	1	0	1	0	0	0	16-3584
+chrM	5167	2	0	0	1	1	0	0	16-3584
+chrM	5168	2	1	0	1	0	0	0	16-3584
+chrM	5169	2	1	1	0	0	0	0	16-3584
+chrM	5170	2	0	0	1	1	0	0	16-3584
+chrM	5171	2	0	1	1	0	0	0	16-3584
+chrM	5172	2	0	0	0	2	0	0	16-3584
+chrM	5173	2	1	0	1	0	0	0	16-3584
+chrM	5174	2	0	1	0	1	0	0	16-3584
+chrM	5175	2	1	1	0	0	0	0	16-3584
+chrM	5176	2	0	1	1	0	0	0	16-3584
+chrM	5177	2	0	1	0	1	0	0	16-3584
+chrM	5178	2	1	1	0	0	0	0	16-3584
+chrM	5179	2	0	1	1	0	0	0	16-3584
+chrM	5180	2	0	1	1	0	0	0	16-3584
+chrM	5181	2	1	0	0	1	0	0	16-3584
+chrM	5182	2	1	1	0	0	0	0	16-3584
+chrM	5183	2	1	0	1	0	0	0	16-3584
+chrM	5184	2	0	2	0	0	0	0	16-3584
+chrM	5185	2	1	1	0	0	0	0	16-3584
+chrM	5186	2	0	0	2	0	0	0	16-3584
+chrM	5187	2	2	0	0	0	0	0	16-3584
+chrM	5188	2	0	0	2	0	0	0	16-3584
+chrM	5189	2	0	0	2	0	0	0	16-3584
+chrM	5190	2	1	1	0	0	0	0	16-3584
+chrM	5191	2	1	1	0	0	0	0	16-3584
+chrM	5192	2	1	0	0	1	0	0	16-3584
+chrM	5193	2	0	1	0	1	0	0	16-3584
+chrM	5194	2	1	0	1	0	0	0	16-3584
+chrM	5195	2	1	0	0	1	0	0	16-3584
+chrM	5196	2	0	1	1	0	0	0	16-3584
+chrM	5197	2	0	1	1	0	0	0	16-3584
+chrM	5198	2	0	1	0	1	0	0	16-3584
+chrM	5199	2	1	1	0	0	0	0	16-3584
+chrM	5200	2	0	1	1	0	0	0	16-3584
+chrM	5201	2	0	0	1	1	0	0	16-3584
+chrM	5202	2	0	1	0	1	0	0	16-3584
+chrM	5203	2	0	0	0	2	0	0	16-3584
+chrM	5204	2	1	0	1	0	0	0	16-3584
+chrM	5205	2	2	0	0	0	0	0	16-3584
+chrM	5206	2	2	0	0	0	0	0	16-3584
+chrM	5207	2	0	0	0	2	0	0	16-3584
+chrM	5208	2	1	0	0	1	0	0	16-3584
+chrM	5209	2	2	0	0	0	0	0	16-3584
+chrM	5210	2	0	1	1	0	0	0	16-3584
+chrM	5211	2	2	0	0	0	0	0	16-3584
+chrM	5212	2	1	1	0	0	0	0	16-3584
+chrM	5213	2	0	2	0	0	0	0	16-3584
+chrM	5214	2	0	0	1	1	0	0	16-3584
+chrM	5215	0	0	0	0	0	0	0	16-3584
+chrM	5216	0	0	0	0	0	0	0	16-3584
+chrM	5217	0	0	0	0	0	0	0	16-3584
+chrM	5218	0	0	0	0	0	0	0	16-3584
+chrM	5219	0	0	0	0	0	0	0	16-3584
+chrM	5220	0	0	0	0	0	0	0	16-3584
+chrM	5221	0	0	0	0	0	0	0	16-3584
+chrM	5222	0	0	0	0	0	0	0	16-3584
+chrM	5223	0	0	0	0	0	0	0	16-3584
+chrM	5224	0	0	0	0	0	0	0	16-3584
+chrM	5225	0	0	0	0	0	0	0	16-3584
+chrM	5226	0	0	0	0	0	0	0	16-3584
+chrM	5227	0	0	0	0	0	0	0	16-3584
+chrM	5228	0	0	0	0	0	0	0	16-3584
+chrM	5229	1	0	0	1	0	0	0	16-3584
+chrM	5230	1	1	0	0	0	0	0	16-3584
+chrM	5231	1	1	0	0	0	0	0	16-3584
+chrM	5232	1	0	1	0	0	0	0	16-3584
+chrM	5233	1	0	1	0	0	0	0	16-3584
+chrM	5234	1	0	0	0	1	0	0	16-3584
+chrM	5235	1	0	0	1	0	0	0	16-3584
+chrM	5236	1	0	0	1	0	0	0	16-3584
+chrM	5237	1	1	0	0	0	0	0	16-3584
+chrM	5238	1	1	0	0	0	0	0	16-3584
+chrM	5239	1	0	0	0	1	0	0	16-3584
+chrM	5240	1	0	0	1	0	0	0	16-3584
+chrM	5241	1	0	0	0	1	0	0	16-3584
+chrM	5242	1	0	1	0	0	0	0	16-3584
+chrM	5243	1	0	0	1	0	0	0	16-3584
+chrM	5244	1	0	1	0	0	0	0	16-3584
+chrM	5245	1	1	0	0	0	0	0	16-3584
+chrM	5246	1	0	0	0	1	0	0	16-3584
+chrM	5247	1	0	0	1	0	0	0	16-3584
+chrM	5248	1	0	0	1	0	0	0	16-3584
+chrM	5249	1	0	0	1	0	0	0	16-3584
+chrM	5250	1	1	0	0	0	0	0	16-3584
+chrM	5251	1	0	0	0	1	0	0	16-3584
+chrM	5252	1	0	0	1	0	0	0	16-3584
+chrM	5253	1	0	1	0	0	0	0	16-3584
+chrM	5254	1	1	0	0	0	0	0	16-3584
+chrM	5255	1	0	1	0	0	0	0	16-3584
+chrM	5256	1	0	0	0	1	0	0	16-3584
+chrM	5257	1	0	0	0	1	0	0	16-3584
+chrM	5258	1	0	1	0	0	0	0	16-3584
+chrM	5259	1	0	0	0	1	0	0	16-3584
+chrM	5260	1	0	1	0	0	0	0	16-3584
+chrM	5261	1	1	0	0	0	0	0	16-3584
+chrM	5262	1	0	0	1	0	0	0	16-3584
+chrM	5263	1	1	0	0	0	0	0	16-3584
+chrM	5264	1	0	1	0	0	0	0	16-3584
+chrM	5265	1	0	0	0	1	0	0	16-3584
+chrM	5266	1	0	0	0	1	0	0	16-3584
+chrM	5267	1	0	0	1	0	0	0	16-3584
+chrM	5268	1	0	0	0	1	0	0	16-3584
+chrM	5269	1	1	0	0	0	0	0	16-3584
+chrM	5270	1	0	1	0	0	0	0	16-3584
+chrM	5271	1	1	0	0	0	0	0	16-3584
+chrM	5272	1	1	0	0	0	0	0	16-3584
+chrM	5273	1	1	0	0	0	0	0	16-3584
+chrM	5274	1	1	0	0	0	0	0	16-3584
+chrM	5275	1	0	1	0	0	0	0	16-3584
+chrM	5276	1	1	0	0	0	0	0	16-3584
+chrM	5277	1	0	0	0	1	0	0	16-3584
+chrM	5278	1	0	0	0	1	0	0	16-3584
+chrM	5279	1	1	0	0	0	0	0	16-3584
+chrM	5280	1	1	0	0	0	0	0	16-3584
+chrM	5281	1	0	0	1	0	0	0	16-3584
+chrM	5282	1	0	0	1	0	0	0	16-3584
+chrM	5283	1	0	0	0	1	0	0	16-3584
+chrM	5284	1	0	0	1	0	0	0	16-3584
+chrM	5285	1	0	0	1	0	0	0	16-3584
+chrM	5286	1	1	0	0	0	0	0	16-3584
+chrM	5287	1	0	0	1	0	0	0	16-3584
+chrM	5288	1	0	1	0	0	0	0	16-3584
+chrM	5289	1	0	0	1	0	0	0	16-3584
+chrM	5290	1	1	0	0	0	0	0	16-3584
+chrM	5291	1	0	0	0	1	0	0	16-3584
+chrM	5292	1	0	0	1	0	0	0	16-3584
+chrM	5293	1	0	0	0	1	0	0	16-3584
+chrM	5294	1	1	0	0	0	0	0	16-3584
+chrM	5295	1	0	0	1	0	0	0	16-3584
+chrM	5296	1	0	0	0	1	0	0	16-3584
+chrM	5297	1	0	1	0	0	0	0	16-3584
+chrM	5298	1	0	0	1	0	0	0	16-3584
+chrM	5299	1	1	0	0	0	0	0	16-3584
+chrM	5300	1	0	0	0	1	0	0	16-3584
+chrM	5301	1	0	0	1	0	0	0	16-3584
+chrM	5302	1	0	0	0	1	0	0	16-3584
+chrM	5303	1	0	0	1	0	0	0	16-3584
+chrM	5304	1	0	0	1	0	0	0	16-3584
+chrM	5305	1	0	0	1	0	0	0	16-3584
+chrM	5306	1	0	1	0	0	0	0	16-3584
+chrM	5307	1	0	0	1	0	0	0	16-3584
+chrM	5308	1	0	0	0	1	0	0	16-3584
+chrM	5309	1	0	0	0	1	0	0	16-3584
+chrM	5310	1	0	1	0	0	0	0	16-3584
+chrM	5311	1	1	0	0	0	0	0	16-3584
+chrM	5312	1	0	0	0	1	0	0	16-3584
+chrM	5313	1	0	0	0	1	0	0	16-3584
+chrM	5314	1	0	0	0	1	0	0	16-3584
+chrM	5315	1	0	1	0	0	0	0	16-3584
+chrM	5316	1	0	0	1	0	0	0	16-3584
+chrM	5317	1	0	0	1	0	0	0	16-3584
+chrM	5318	1	1	0	0	0	0	0	16-3584
+chrM	5319	1	1	0	0	0	0	0	16-3584
+chrM	5320	1	0	1	0	0	0	0	16-3584
+chrM	5321	1	1	0	0	0	0	0	16-3584
+chrM	5322	1	1	0	0	0	0	0	16-3584
+chrM	5323	1	1	0	0	0	0	0	16-3584
+chrM	5324	1	0	1	0	0	0	0	16-3584
+chrM	5325	1	0	1	0	0	0	0	16-3584
+chrM	5326	1	0	1	0	0	0	0	16-3584
+chrM	5327	1	0	0	1	0	0	0	16-3584
+chrM	5328	1	1	0	0	0	0	0	16-3584
+chrM	5329	1	0	0	1	0	0	0	16-3584
+chrM	5330	1	0	0	0	1	0	0	16-3584
+chrM	5331	1	0	1	0	0	0	0	16-3584
+chrM	5332	1	1	0	0	0	0	0	16-3584
+chrM	5333	1	0	0	0	1	0	0	16-3584
+chrM	5334	1	0	0	1	0	0	0	16-3584
+chrM	5335	1	0	0	0	1	0	0	16-3584
+chrM	5336	1	0	0	0	1	0	0	16-3584
+chrM	5337	1	0	0	0	1	0	0	16-3584
+chrM	5338	1	0	0	1	0	0	0	16-3584
+chrM	5339	1	0	0	1	0	0	0	16-3584
+chrM	5340	1	0	1	0	0	0	0	16-3584
+chrM	5341	1	0	1	0	0	0	0	16-3584
+chrM	5342	1	0	0	0	1	0	0	16-3584
+chrM	5343	1	1	0	0	0	0	0	16-3584
+chrM	5344	1	1	0	0	0	0	0	16-3584
+chrM	5345	1	1	0	0	0	0	0	16-3584
+chrM	5346	1	1	0	0	0	0	0	16-3584
+chrM	5347	1	0	1	0	0	0	0	16-3584
+chrM	5348	1	0	1	0	0	0	0	16-3584
+chrM	5349	1	0	0	1	0	0	0	16-3584
+chrM	5350	1	1	0	0	0	0	0	16-3584
+chrM	5351	1	1	0	0	0	0	0	16-3584
+chrM	5352	1	0	0	1	0	0	0	16-3584
+chrM	5353	1	0	1	0	0	0	0	16-3584
+chrM	5354	1	1	0	0	0	0	0	16-3584
+chrM	5355	1	0	0	1	0	0	0	16-3584
+chrM	5356	1	0	0	1	0	0	0	16-3584
+chrM	5357	1	0	1	0	0	0	0	16-3584
+chrM	5358	1	0	0	1	0	0	0	16-3584
+chrM	5359	1	0	0	1	0	0	0	16-3584
+chrM	5360	1	0	0	1	0	0	0	16-3584
+chrM	5361	1	0	1	0	0	0	0	16-3584
+chrM	5362	1	1	0	0	0	0	0	16-3584
+chrM	5363	1	0	1	0	0	0	0	16-3584
+chrM	5364	1	0	0	1	0	0	0	16-3584
+chrM	5365	1	0	1	0	0	0	0	16-3584
+chrM	5366	1	0	1	0	0	0	0	16-3584
+chrM	5367	1	0	1	0	0	0	0	16-3584
+chrM	5368	1	0	0	0	1	0	0	16-3584
+chrM	5369	1	0	1	0	0	0	0	16-3584
+chrM	5370	1	0	1	0	0	0	0	16-3584
+chrM	5371	1	0	0	1	0	0	0	16-3584
+chrM	5372	1	0	1	0	0	0	0	16-3584
+chrM	5373	0	0	0	0	0	0	0	16-3584
+chrM	5374	0	0	0	0	0	0	0	16-3584
+chrM	5375	0	0	0	0	0	0	0	16-3584
+chrM	5376	0	0	0	0	0	0	0	16-3584
+chrM	5377	0	0	0	0	0	0	0	16-3584
+chrM	5378	0	0	0	0	0	0	0	16-3584
+chrM	5379	0	0	0	0	0	0	0	16-3584
+chrM	5380	0	0	0	0	0	0	0	16-3584
+chrM	5381	0	0	0	0	0	0	0	16-3584
+chrM	5382	0	0	0	0	0	0	0	16-3584
+chrM	5383	0	0	0	0	0	0	0	16-3584
+chrM	5384	0	0	0	0	0	0	0	16-3584
+chrM	5385	0	0	0	0	0	0	0	16-3584
+chrM	5386	0	0	0	0	0	0	0	16-3584
+chrM	5387	0	0	0	0	0	0	0	16-3584
+chrM	5388	0	0	0	0	0	0	0	16-3584
+chrM	5389	0	0	0	0	0	0	0	16-3584
+chrM	5390	0	0	0	0	0	0	0	16-3584
+chrM	5391	0	0	0	0	0	0	0	16-3584
+chrM	5392	0	0	0	0	0	0	0	16-3584
+chrM	5393	0	0	0	0	0	0	0	16-3584
+chrM	5394	0	0	0	0	0	0	0	16-3584
+chrM	5395	0	0	0	0	0	0	0	16-3584
+chrM	5396	0	0	0	0	0	0	0	16-3584
+chrM	5397	0	0	0	0	0	0	0	16-3584
+chrM	5398	0	0	0	0	0	0	0	16-3584
+chrM	5399	0	0	0	0	0	0	0	16-3584
+chrM	5400	0	0	0	0	0	0	0	16-3584
+chrM	5401	0	0	0	0	0	0	0	16-3584
+chrM	5402	0	0	0	0	0	0	0	16-3584
+chrM	5403	0	0	0	0	0	0	0	16-3584
+chrM	5404	0	0	0	0	0	0	0	16-3584
+chrM	5405	0	0	0	0	0	0	0	16-3584
+chrM	5406	0	0	0	0	0	0	0	16-3584
+chrM	5407	0	0	0	0	0	0	0	16-3584
+chrM	5408	0	0	0	0	0	0	0	16-3584
+chrM	5409	0	0	0	0	0	0	0	16-3584
+chrM	5410	0	0	0	0	0	0	0	16-3584
+chrM	5411	0	0	0	0	0	0	0	16-3584
+chrM	5412	0	0	0	0	0	0	0	16-3584
+chrM	5413	1	0	1	0	0	0	0	16-3584
+chrM	5414	1	1	0	0	0	0	0	16-3584
+chrM	5415	1	0	1	0	0	0	0	16-3584
+chrM	5416	1	0	0	1	0	0	0	16-3584
+chrM	5417	1	0	0	1	0	0	0	16-3584
+chrM	5418	1	1	0	0	0	0	0	16-3584
+chrM	5419	1	0	0	0	1	0	0	16-3584
+chrM	5420	1	1	0	0	0	0	0	16-3584
+chrM	5421	1	0	1	0	0	0	0	16-3584
+chrM	5422	1	0	1	0	0	0	0	16-3584
+chrM	5423	1	0	0	1	0	0	0	16-3584
+chrM	5424	1	0	1	0	0	0	0	16-3584
+chrM	5425	1	0	1	0	0	0	0	16-3584
+chrM	5426	1	0	1	0	0	0	0	16-3584
+chrM	5427	1	0	0	1	0	0	0	16-3584
+chrM	5428	1	0	1	0	0	0	0	16-3584
+chrM	5429	1	0	1	0	0	0	0	16-3584
+chrM	5430	1	0	1	0	0	0	0	16-3584
+chrM	5431	1	0	0	1	0	0	0	16-3584
+chrM	5432	1	1	0	0	0	0	0	16-3584
+chrM	5433	1	0	1	0	0	0	0	16-3584
+chrM	5434	1	0	0	0	1	0	0	16-3584
+chrM	5435	1	0	0	0	1	0	0	16-3584
+chrM	5436	1	0	1	0	0	0	0	16-3584
+chrM	5437	1	0	0	1	0	0	0	16-3584
+chrM	5438	1	1	0	0	0	0	0	16-3584
+chrM	5439	1	0	1	0	0	0	0	16-3584
+chrM	5440	1	0	0	0	1	0	0	16-3584
+chrM	5441	1	0	0	0	1	0	0	16-3584
+chrM	5442	1	0	0	1	0	0	0	16-3584
+chrM	5443	1	1	0	0	0	0	0	16-3584
+chrM	5444	1	0	0	1	0	0	0	16-3584
+chrM	5445	1	0	0	0	1	0	0	16-3584
+chrM	5446	1	0	0	1	0	0	0	16-3584
+chrM	5447	1	0	0	1	0	0	0	16-3584
+chrM	5448	1	1	0	0	0	0	0	16-3584
+chrM	5449	1	0	1	0	0	0	0	16-3584
+chrM	5450	1	1	0	0	0	0	0	16-3584
+chrM	5451	1	0	1	0	0	0	0	16-3584
+chrM	5452	1	1	0	0	0	0	0	16-3584
+chrM	5453	1	0	0	0	1	0	0	16-3584
+chrM	5454	1	0	1	0	0	0	0	16-3584
+chrM	5455	1	1	0	0	0	0	0	16-3584
+chrM	5456	1	1	0	0	0	0	0	16-3584
+chrM	5457	1	0	0	0	1	0	0	16-3584
+chrM	5458	1	1	0	0	0	0	0	16-3584
+chrM	5459	1	0	0	0	1	0	0	16-3584
+chrM	5460	1	0	0	1	0	0	0	16-3584
+chrM	5461	1	0	0	0	1	0	0	16-3584
+chrM	5462	1	0	0	0	1	0	0	16-3584
+chrM	5463	1	0	1	0	0	0	0	16-3584
+chrM	5464	1	0	0	0	1	0	0	16-3584
+chrM	5465	1	0	0	0	1	0	0	16-3584
+chrM	5466	1	0	1	0	0	0	0	16-3584
+chrM	5467	1	0	0	0	1	0	0	16-3584
+chrM	5468	1	0	0	0	1	0	0	16-3584
+chrM	5469	1	1	0	0	0	0	0	16-3584
+chrM	5470	1	0	0	1	0	0	0	16-3584
+chrM	5471	1	0	1	0	0	0	0	16-3584
+chrM	5472	1	1	0	0	0	0	0	16-3584
+chrM	5473	1	0	0	1	0	0	0	16-3584
+chrM	5474	1	1	0	0	0	0	0	16-3584
+chrM	5475	1	1	0	0	0	0	0	16-3584
+chrM	5476	1	0	1	0	0	0	0	16-3584
+chrM	5477	1	0	0	0	1	0	0	16-3584
+chrM	5478	1	0	0	0	1	0	0	16-3584
+chrM	5479	1	1	0	0	0	0	0	16-3584
+chrM	5480	1	1	0	0	0	0	0	16-3584
+chrM	5481	1	1	0	0	0	0	0	16-3584
+chrM	5482	1	0	1	0	0	0	0	16-3584
+chrM	5483	1	0	1	0	0	0	0	16-3584
+chrM	5484	1	0	1	0	0	0	0	16-3584
+chrM	5485	1	0	1	0	0	0	0	16-3584
+chrM	5486	1	0	1	0	0	0	0	16-3584
+chrM	5487	1	0	0	0	1	0	0	16-3584
+chrM	5488	1	0	0	0	1	0	0	16-3584
+chrM	5489	1	1	0	0	0	0	0	16-3584
+chrM	5490	1	0	0	1	0	0	0	16-3584
+chrM	5491	1	0	1	0	0	0	0	16-3584
+chrM	5492	1	0	0	0	1	0	0	16-3584
+chrM	5493	1	0	0	1	0	0	0	16-3584
+chrM	5494	1	0	0	0	1	0	0	16-3584
+chrM	5495	1	0	1	0	0	0	0	16-3584
+chrM	5496	1	0	0	0	1	0	0	16-3584
+chrM	5497	1	1	0	0	0	0	0	16-3584
+chrM	5498	1	1	0	0	0	0	0	16-3584
+chrM	5499	1	1	0	0	0	0	0	16-3584
+chrM	5500	1	0	1	0	0	0	0	16-3584
+chrM	5501	1	0	0	1	0	0	0	16-3584
+chrM	5502	1	0	0	0	1	0	0	16-3584
+chrM	5503	1	0	0	1	0	0	0	16-3584
+chrM	5504	1	0	1	0	0	0	0	16-3584
+chrM	5505	1	0	0	0	1	0	0	16-3584
+chrM	5506	1	1	0	0	0	0	0	16-3584
+chrM	5507	1	0	1	0	0	0	0	16-3584
+chrM	5508	1	0	0	0	1	0	0	16-3584
+chrM	5509	1	1	0	0	0	0	0	16-3584
+chrM	5510	1	0	0	1	0	0	0	16-3584
+chrM	5511	1	1	0	0	0	0	0	16-3584
+chrM	5512	1	0	1	0	0	0	0	16-3584
+chrM	5513	1	0	0	0	1	0	0	16-3584
+chrM	5514	1	0	1	0	0	0	0	16-3584
+chrM	5515	1	0	0	1	0	0	0	16-3584
+chrM	5516	1	0	0	1	0	0	0	16-3584
+chrM	5517	1	0	0	0	1	0	0	16-3584
+chrM	5518	1	0	1	0	0	0	0	16-3584
+chrM	5519	1	0	0	0	1	0	0	16-3584
+chrM	5520	1	0	0	1	0	0	0	16-3584
+chrM	5521	1	0	1	0	0	0	0	16-3584
+chrM	5522	1	0	0	1	0	0	0	16-3584
+chrM	5523	1	0	0	0	1	0	0	16-3584
+chrM	5524	1	0	0	0	1	0	0	16-3584
+chrM	5525	1	0	0	0	1	0	0	16-3584
+chrM	5526	1	0	0	0	1	0	0	16-3584
+chrM	5527	1	0	1	0	0	0	0	16-3584
+chrM	5528	1	1	0	0	0	0	0	16-3584
+chrM	5529	1	1	0	0	0	0	0	16-3584
+chrM	5530	1	0	0	0	1	0	0	16-3584
+chrM	5531	1	1	0	0	0	0	0	16-3584
+chrM	5532	1	0	0	0	1	0	0	16-3584
+chrM	5533	1	0	0	0	1	0	0	16-3584
+chrM	5534	1	0	0	0	1	0	0	16-3584
+chrM	5535	1	0	1	0	0	0	0	16-3584
+chrM	5536	1	0	0	0	1	0	0	16-3584
+chrM	5537	1	0	0	0	1	0	0	16-3584
+chrM	5538	1	0	0	0	1	0	0	16-3584
+chrM	5539	1	0	0	0	1	0	0	16-3584
+chrM	5540	1	0	1	0	0	0	0	16-3584
+chrM	5541	1	0	1	0	0	0	0	16-3584
+chrM	5542	1	0	1	0	0	0	0	16-3584
+chrM	5543	1	0	0	0	1	0	0	16-3584
+chrM	5544	1	0	0	1	0	0	0	16-3584
+chrM	5545	1	1	0	0	0	0	0	16-3584
+chrM	5546	1	1	0	0	0	0	0	16-3584
+chrM	5547	1	0	1	0	0	0	0	16-3584
+chrM	5548	1	0	0	1	0	0	0	16-3584
+chrM	5549	1	0	0	1	0	0	0	16-3584
+chrM	5550	1	0	0	1	0	0	0	16-3584
+chrM	5551	1	0	0	0	1	0	0	16-3584
+chrM	5552	1	0	1	0	0	0	0	16-3584
+chrM	5553	1	0	0	0	1	0	0	16-3584
+chrM	5554	1	0	1	0	0	0	0	16-3584
+chrM	5555	1	0	0	1	0	0	0	16-3584
+chrM	5556	1	1	0	0	0	0	0	16-3584
+chrM	5557	1	0	0	0	1	0	0	16-3584
+chrM	5558	1	0	0	1	0	0	0	16-3584
+chrM	5559	0	0	0	0	0	0	0	16-3584
+chrM	5560	0	0	0	0	0	0	0	16-3584
+chrM	5561	0	0	0	0	0	0	0	16-3584
+chrM	5562	0	0	0	0	0	0	0	16-3584
+chrM	5563	0	0	0	0	0	0	0	16-3584
+chrM	5564	0	0	0	0	0	0	0	16-3584
+chrM	5565	0	0	0	0	0	0	0	16-3584
+chrM	5566	0	0	0	0	0	0	0	16-3584
+chrM	5567	0	0	0	0	0	0	0	16-3584
+chrM	5568	0	0	0	0	0	0	0	16-3584
+chrM	5569	0	0	0	0	0	0	0	16-3584
+chrM	5570	0	0	0	0	0	0	0	16-3584
+chrM	5571	0	0	0	0	0	0	0	16-3584
+chrM	5572	0	0	0	0	0	0	0	16-3584
+chrM	5573	0	0	0	0	0	0	0	16-3584
+chrM	5574	0	0	0	0	0	0	0	16-3584
+chrM	5575	0	0	0	0	0	0	0	16-3584
+chrM	5576	0	0	0	0	0	0	0	16-3584
+chrM	5577	0	0	0	0	0	0	0	16-3584
+chrM	5578	0	0	0	0	0	0	0	16-3584
+chrM	5579	0	0	0	0	0	0	0	16-3584
+chrM	5580	0	0	0	0	0	0	0	16-3584
+chrM	5581	0	0	0	0	0	0	0	16-3584
+chrM	5582	0	0	0	0	0	0	0	16-3584
+chrM	5583	0	0	0	0	0	0	0	16-3584
+chrM	5584	0	0	0	0	0	0	0	16-3584
+chrM	5585	0	0	0	0	0	0	0	16-3584
+chrM	5586	0	0	0	0	0	0	0	16-3584
+chrM	5587	0	0	0	0	0	0	0	16-3584
+chrM	5588	0	0	0	0	0	0	0	16-3584
+chrM	5589	0	0	0	0	0	0	0	16-3584
+chrM	5590	0	0	0	0	0	0	0	16-3584
+chrM	5591	0	0	0	0	0	0	0	16-3584
+chrM	5592	0	0	0	0	0	0	0	16-3584
+chrM	5593	0	0	0	0	0	0	0	16-3584
+chrM	5594	0	0	0	0	0	0	0	16-3584
+chrM	5595	0	0	0	0	0	0	0	16-3584
+chrM	5596	0	0	0	0	0	0	0	16-3584
+chrM	5597	0	0	0	0	0	0	0	16-3584
+chrM	5598	0	0	0	0	0	0	0	16-3584
+chrM	5599	0	0	0	0	0	0	0	16-3584
+chrM	5600	0	0	0	0	0	0	0	16-3584
+chrM	5601	0	0	0	0	0	0	0	16-3584
+chrM	5602	0	0	0	0	0	0	0	16-3584
+chrM	5603	0	0	0	0	0	0	0	16-3584
+chrM	5604	0	0	0	0	0	0	0	16-3584
+chrM	5605	0	0	0	0	0	0	0	16-3584
+chrM	5606	0	0	0	0	0	0	0	16-3584
+chrM	5607	0	0	0	0	0	0	0	16-3584
+chrM	5608	0	0	0	0	0	0	0	16-3584
+chrM	5609	0	0	0	0	0	0	0	16-3584
+chrM	5610	0	0	0	0	0	0	0	16-3584
+chrM	5611	0	0	0	0	0	0	0	16-3584
+chrM	5612	0	0	0	0	0	0	0	16-3584
+chrM	5613	0	0	0	0	0	0	0	16-3584
+chrM	5614	0	0	0	0	0	0	0	16-3584
+chrM	5615	0	0	0	0	0	0	0	16-3584
+chrM	5616	0	0	0	0	0	0	0	16-3584
+chrM	5617	0	0	0	0	0	0	0	16-3584
+chrM	5618	0	0	0	0	0	0	0	16-3584
+chrM	5619	0	0	0	0	0	0	0	16-3584
+chrM	5620	0	0	0	0	0	0	0	16-3584
+chrM	5621	0	0	0	0	0	0	0	16-3584
+chrM	5622	0	0	0	0	0	0	0	16-3584
+chrM	5623	0	0	0	0	0	0	0	16-3584
+chrM	5624	0	0	0	0	0	0	0	16-3584
+chrM	5625	0	0	0	0	0	0	0	16-3584
+chrM	5626	0	0	0	0	0	0	0	16-3584
+chrM	5627	0	0	0	0	0	0	0	16-3584
+chrM	5628	0	0	0	0	0	0	0	16-3584
+chrM	5629	0	0	0	0	0	0	0	16-3584
+chrM	5630	0	0	0	0	0	0	0	16-3584
+chrM	5631	0	0	0	0	0	0	0	16-3584
+chrM	5632	0	0	0	0	0	0	0	16-3584
+chrM	5633	0	0	0	0	0	0	0	16-3584
+chrM	5634	0	0	0	0	0	0	0	16-3584
+chrM	5635	0	0	0	0	0	0	0	16-3584
+chrM	5636	0	0	0	0	0	0	0	16-3584
+chrM	5637	0	0	0	0	0	0	0	16-3584
+chrM	5638	0	0	0	0	0	0	0	16-3584
+chrM	5639	0	0	0	0	0	0	0	16-3584
+chrM	5640	0	0	0	0	0	0	0	16-3584
+chrM	5641	0	0	0	0	0	0	0	16-3584
+chrM	5642	0	0	0	0	0	0	0	16-3584
+chrM	5643	0	0	0	0	0	0	0	16-3584
+chrM	5644	0	0	0	0	0	0	0	16-3584
+chrM	5645	0	0	0	0	0	0	0	16-3584
+chrM	5646	0	0	0	0	0	0	0	16-3584
+chrM	5647	0	0	0	0	0	0	0	16-3584
+chrM	5648	0	0	0	0	0	0	0	16-3584
+chrM	5649	0	0	0	0	0	0	0	16-3584
+chrM	5650	0	0	0	0	0	0	0	16-3584
+chrM	5651	0	0	0	0	0	0	0	16-3584
+chrM	5652	0	0	0	0	0	0	0	16-3584
+chrM	5653	0	0	0	0	0	0	0	16-3584
+chrM	5654	0	0	0	0	0	0	0	16-3584
+chrM	5655	0	0	0	0	0	0	0	16-3584
+chrM	5656	0	0	0	0	0	0	0	16-3584
+chrM	5657	0	0	0	0	0	0	0	16-3584
+chrM	5658	0	0	0	0	0	0	0	16-3584
+chrM	5659	0	0	0	0	0	0	0	16-3584
+chrM	5660	0	0	0	0	0	0	0	16-3584
+chrM	5661	0	0	0	0	0	0	0	16-3584
+chrM	5662	0	0	0	0	0	0	0	16-3584
+chrM	5663	0	0	0	0	0	0	0	16-3584
+chrM	5664	0	0	0	0	0	0	0	16-3584
+chrM	5665	0	0	0	0	0	0	0	16-3584
+chrM	5666	0	0	0	0	0	0	0	16-3584
+chrM	5667	0	0	0	0	0	0	0	16-3584
+chrM	5668	0	0	0	0	0	0	0	16-3584
+chrM	5669	0	0	0	0	0	0	0	16-3584
+chrM	5670	0	0	0	0	0	0	0	16-3584
+chrM	5671	0	0	0	0	0	0	0	16-3584
+chrM	5672	0	0	0	0	0	0	0	16-3584
+chrM	5673	0	0	0	0	0	0	0	16-3584
+chrM	5674	0	0	0	0	0	0	0	16-3584
+chrM	5675	0	0	0	0	0	0	0	16-3584
+chrM	5676	0	0	0	0	0	0	0	16-3584
+chrM	5677	0	0	0	0	0	0	0	16-3584
+chrM	5678	0	0	0	0	0	0	0	16-3584
+chrM	5679	0	0	0	0	0	0	0	16-3584
+chrM	5680	0	0	0	0	0	0	0	16-3584
+chrM	5681	0	0	0	0	0	0	0	16-3584
+chrM	5682	0	0	0	0	0	0	0	16-3584
+chrM	5683	0	0	0	0	0	0	0	16-3584
+chrM	5684	0	0	0	0	0	0	0	16-3584
+chrM	5685	0	0	0	0	0	0	0	16-3584
+chrM	5686	0	0	0	0	0	0	0	16-3584
+chrM	5687	0	0	0	0	0	0	0	16-3584
+chrM	5688	0	0	0	0	0	0	0	16-3584
+chrM	5689	0	0	0	0	0	0	0	16-3584
+chrM	5690	0	0	0	0	0	0	0	16-3584
+chrM	5691	0	0	0	0	0	0	0	16-3584
+chrM	5692	0	0	0	0	0	0	0	16-3584
+chrM	5693	0	0	0	0	0	0	0	16-3584
+chrM	5694	0	0	0	0	0	0	0	16-3584
+chrM	5695	0	0	0	0	0	0	0	16-3584
+chrM	5696	0	0	0	0	0	0	0	16-3584
+chrM	5697	0	0	0	0	0	0	0	16-3584
+chrM	5698	0	0	0	0	0	0	0	16-3584
+chrM	5699	0	0	0	0	0	0	0	16-3584
+chrM	5700	0	0	0	0	0	0	0	16-3584
+chrM	5701	0	0	0	0	0	0	0	16-3584
+chrM	5702	0	0	0	0	0	0	0	16-3584
+chrM	5703	0	0	0	0	0	0	0	16-3584
+chrM	5704	0	0	0	0	0	0	0	16-3584
+chrM	5705	0	0	0	0	0	0	0	16-3584
+chrM	5706	0	0	0	0	0	0	0	16-3584
+chrM	5707	0	0	0	0	0	0	0	16-3584
+chrM	5708	0	0	0	0	0	0	0	16-3584
+chrM	5709	0	0	0	0	0	0	0	16-3584
+chrM	5710	0	0	0	0	0	0	0	16-3584
+chrM	5711	0	0	0	0	0	0	0	16-3584
+chrM	5712	0	0	0	0	0	0	0	16-3584
+chrM	5713	0	0	0	0	0	0	0	16-3584
+chrM	5714	0	0	0	0	0	0	0	16-3584
+chrM	5715	0	0	0	0	0	0	0	16-3584
+chrM	5716	0	0	0	0	0	0	0	16-3584
+chrM	5717	0	0	0	0	0	0	0	16-3584
+chrM	5718	0	0	0	0	0	0	0	16-3584
+chrM	5719	0	0	0	0	0	0	0	16-3584
+chrM	5720	0	0	0	0	0	0	0	16-3584
+chrM	5721	0	0	0	0	0	0	0	16-3584
+chrM	5722	0	0	0	0	0	0	0	16-3584
+chrM	5723	0	0	0	0	0	0	0	16-3584
+chrM	5724	0	0	0	0	0	0	0	16-3584
+chrM	5725	0	0	0	0	0	0	0	16-3584
+chrM	5726	0	0	0	0	0	0	0	16-3584
+chrM	5727	0	0	0	0	0	0	0	16-3584
+chrM	5728	0	0	0	0	0	0	0	16-3584
+chrM	5729	0	0	0	0	0	0	0	16-3584
+chrM	5730	0	0	0	0	0	0	0	16-3584
+chrM	5731	0	0	0	0	0	0	0	16-3584
+chrM	5732	0	0	0	0	0	0	0	16-3584
+chrM	5733	0	0	0	0	0	0	0	16-3584
+chrM	5734	0	0	0	0	0	0	0	16-3584
+chrM	5735	0	0	0	0	0	0	0	16-3584
+chrM	5736	0	0	0	0	0	0	0	16-3584
+chrM	5737	0	0	0	0	0	0	0	16-3584
+chrM	5738	0	0	0	0	0	0	0	16-3584
+chrM	5739	0	0	0	0	0	0	0	16-3584
+chrM	5740	0	0	0	0	0	0	0	16-3584
+chrM	5741	0	0	0	0	0	0	0	16-3584
+chrM	5742	0	0	0	0	0	0	0	16-3584
+chrM	5743	0	0	0	0	0	0	0	16-3584
+chrM	5744	0	0	0	0	0	0	0	16-3584
+chrM	5745	0	0	0	0	0	0	0	16-3584
+chrM	5746	0	0	0	0	0	0	0	16-3584
+chrM	5747	0	0	0	0	0	0	0	16-3584
+chrM	5748	0	0	0	0	0	0	0	16-3584
+chrM	5749	0	0	0	0	0	0	0	16-3584
+chrM	5750	0	0	0	0	0	0	0	16-3584
+chrM	5751	0	0	0	0	0	0	0	16-3584
+chrM	5752	0	0	0	0	0	0	0	16-3584
+chrM	5753	0	0	0	0	0	0	0	16-3584
+chrM	5754	0	0	0	0	0	0	0	16-3584
+chrM	5755	0	0	0	0	0	0	0	16-3584
+chrM	5756	0	0	0	0	0	0	0	16-3584
+chrM	5757	0	0	0	0	0	0	0	16-3584
+chrM	5758	0	0	0	0	0	0	0	16-3584
+chrM	5759	0	0	0	0	0	0	0	16-3584
+chrM	5760	0	0	0	0	0	0	0	16-3584
+chrM	5761	0	0	0	0	0	0	0	16-3584
+chrM	5762	0	0	0	0	0	0	0	16-3584
+chrM	5763	0	0	0	0	0	0	0	16-3584
+chrM	5764	0	0	0	0	0	0	0	16-3584
+chrM	5765	0	0	0	0	0	0	0	16-3584
+chrM	5766	0	0	0	0	0	0	0	16-3584
+chrM	5767	0	0	0	0	0	0	0	16-3584
+chrM	5768	0	0	0	0	0	0	0	16-3584
+chrM	5769	0	0	0	0	0	0	0	16-3584
+chrM	5770	0	0	0	0	0	0	0	16-3584
+chrM	5771	0	0	0	0	0	0	0	16-3584
+chrM	5772	0	0	0	0	0	0	0	16-3584
+chrM	5773	0	0	0	0	0	0	0	16-3584
+chrM	5774	0	0	0	0	0	0	0	16-3584
+chrM	5775	0	0	0	0	0	0	0	16-3584
+chrM	5776	0	0	0	0	0	0	0	16-3584
+chrM	5777	0	0	0	0	0	0	0	16-3584
+chrM	5778	0	0	0	0	0	0	0	16-3584
+chrM	5779	0	0	0	0	0	0	0	16-3584
+chrM	5780	0	0	0	0	0	0	0	16-3584
+chrM	5781	0	0	0	0	0	0	0	16-3584
+chrM	5782	0	0	0	0	0	0	0	16-3584
+chrM	5783	0	0	0	0	0	0	0	16-3584
+chrM	5784	0	0	0	0	0	0	0	16-3584
+chrM	5785	0	0	0	0	0	0	0	16-3584
+chrM	5786	0	0	0	0	0	0	0	16-3584
+chrM	5787	0	0	0	0	0	0	0	16-3584
+chrM	5788	0	0	0	0	0	0	0	16-3584
+chrM	5789	0	0	0	0	0	0	0	16-3584
+chrM	5790	0	0	0	0	0	0	0	16-3584
+chrM	5791	0	0	0	0	0	0	0	16-3584
+chrM	5792	0	0	0	0	0	0	0	16-3584
+chrM	5793	0	0	0	0	0	0	0	16-3584
+chrM	5794	0	0	0	0	0	0	0	16-3584
+chrM	5795	0	0	0	0	0	0	0	16-3584
+chrM	5796	0	0	0	0	0	0	0	16-3584
+chrM	5797	0	0	0	0	0	0	0	16-3584
+chrM	5798	0	0	0	0	0	0	0	16-3584
+chrM	5799	0	0	0	0	0	0	0	16-3584
+chrM	5800	0	0	0	0	0	0	0	16-3584
+chrM	5801	0	0	0	0	0	0	0	16-3584
+chrM	5802	0	0	0	0	0	0	0	16-3584
+chrM	5803	0	0	0	0	0	0	0	16-3584
+chrM	5804	0	0	0	0	0	0	0	16-3584
+chrM	5805	0	0	0	0	0	0	0	16-3584
+chrM	5806	0	0	0	0	0	0	0	16-3584
+chrM	5807	0	0	0	0	0	0	0	16-3584
+chrM	5808	0	0	0	0	0	0	0	16-3584
+chrM	5809	0	0	0	0	0	0	0	16-3584
+chrM	5810	0	0	0	0	0	0	0	16-3584
+chrM	5811	0	0	0	0	0	0	0	16-3584
+chrM	5812	0	0	0	0	0	0	0	16-3584
+chrM	5813	0	0	0	0	0	0	0	16-3584
+chrM	5814	0	0	0	0	0	0	0	16-3584
+chrM	5815	0	0	0	0	0	0	0	16-3584
+chrM	5816	0	0	0	0	0	0	0	16-3584
+chrM	5817	0	0	0	0	0	0	0	16-3584
+chrM	5818	0	0	0	0	0	0	0	16-3584
+chrM	5819	0	0	0	0	0	0	0	16-3584
+chrM	5820	0	0	0	0	0	0	0	16-3584
+chrM	5821	0	0	0	0	0	0	0	16-3584
+chrM	5822	0	0	0	0	0	0	0	16-3584
+chrM	5823	0	0	0	0	0	0	0	16-3584
+chrM	5824	0	0	0	0	0	0	0	16-3584
+chrM	5825	0	0	0	0	0	0	0	16-3584
+chrM	5826	0	0	0	0	0	0	0	16-3584
+chrM	5827	0	0	0	0	0	0	0	16-3584
+chrM	5828	0	0	0	0	0	0	0	16-3584
+chrM	5829	0	0	0	0	0	0	0	16-3584
+chrM	5830	0	0	0	0	0	0	0	16-3584
+chrM	5831	0	0	0	0	0	0	0	16-3584
+chrM	5832	0	0	0	0	0	0	0	16-3584
+chrM	5833	0	0	0	0	0	0	0	16-3584
+chrM	5834	0	0	0	0	0	0	0	16-3584
+chrM	5835	0	0	0	0	0	0	0	16-3584
+chrM	5836	0	0	0	0	0	0	0	16-3584
+chrM	5837	0	0	0	0	0	0	0	16-3584
+chrM	5838	0	0	0	0	0	0	0	16-3584
+chrM	5839	0	0	0	0	0	0	0	16-3584
+chrM	5840	0	0	0	0	0	0	0	16-3584
+chrM	5841	0	0	0	0	0	0	0	16-3584
+chrM	5842	0	0	0	0	0	0	0	16-3584
+chrM	5843	0	0	0	0	0	0	0	16-3584
+chrM	5844	0	0	0	0	0	0	0	16-3584
+chrM	5845	0	0	0	0	0	0	0	16-3584
+chrM	5846	0	0	0	0	0	0	0	16-3584
+chrM	5847	0	0	0	0	0	0	0	16-3584
+chrM	5848	0	0	0	0	0	0	0	16-3584
+chrM	5849	0	0	0	0	0	0	0	16-3584
+chrM	5850	0	0	0	0	0	0	0	16-3584
+chrM	5851	0	0	0	0	0	0	0	16-3584
+chrM	5852	0	0	0	0	0	0	0	16-3584
+chrM	5853	0	0	0	0	0	0	0	16-3584
+chrM	5854	0	0	0	0	0	0	0	16-3584
+chrM	5855	0	0	0	0	0	0	0	16-3584
+chrM	5856	0	0	0	0	0	0	0	16-3584
+chrM	5857	0	0	0	0	0	0	0	16-3584
+chrM	5858	0	0	0	0	0	0	0	16-3584
+chrM	5859	0	0	0	0	0	0	0	16-3584
+chrM	5860	0	0	0	0	0	0	0	16-3584
+chrM	5861	0	0	0	0	0	0	0	16-3584
+chrM	5862	0	0	0	0	0	0	0	16-3584
+chrM	5863	0	0	0	0	0	0	0	16-3584
+chrM	5864	0	0	0	0	0	0	0	16-3584
+chrM	5865	0	0	0	0	0	0	0	16-3584
+chrM	5866	0	0	0	0	0	0	0	16-3584
+chrM	5867	0	0	0	0	0	0	0	16-3584
+chrM	5868	0	0	0	0	0	0	0	16-3584
+chrM	5869	0	0	0	0	0	0	0	16-3584
+chrM	5870	0	0	0	0	0	0	0	16-3584
+chrM	5871	0	0	0	0	0	0	0	16-3584
+chrM	5872	0	0	0	0	0	0	0	16-3584
+chrM	5873	0	0	0	0	0	0	0	16-3584
+chrM	5874	0	0	0	0	0	0	0	16-3584
+chrM	5875	0	0	0	0	0	0	0	16-3584
+chrM	5876	0	0	0	0	0	0	0	16-3584
+chrM	5877	0	0	0	0	0	0	0	16-3584
+chrM	5878	0	0	0	0	0	0	0	16-3584
+chrM	5879	0	0	0	0	0	0	0	16-3584
+chrM	5880	0	0	0	0	0	0	0	16-3584
+chrM	5881	0	0	0	0	0	0	0	16-3584
+chrM	5882	0	0	0	0	0	0	0	16-3584
+chrM	5883	0	0	0	0	0	0	0	16-3584
+chrM	5884	0	0	0	0	0	0	0	16-3584
+chrM	5885	0	0	0	0	0	0	0	16-3584
+chrM	5886	0	0	0	0	0	0	0	16-3584
+chrM	5887	0	0	0	0	0	0	0	16-3584
+chrM	5888	0	0	0	0	0	0	0	16-3584
+chrM	5889	0	0	0	0	0	0	0	16-3584
+chrM	5890	0	0	0	0	0	0	0	16-3584
+chrM	5891	0	0	0	0	0	0	0	16-3584
+chrM	5892	0	0	0	0	0	0	0	16-3584
+chrM	5893	0	0	0	0	0	0	0	16-3584
+chrM	5894	0	0	0	0	0	0	0	16-3584
+chrM	5895	0	0	0	0	0	0	0	16-3584
+chrM	5896	0	0	0	0	0	0	0	16-3584
+chrM	5897	0	0	0	0	0	0	0	16-3584
+chrM	5898	0	0	0	0	0	0	0	16-3584
+chrM	5899	0	0	0	0	0	0	0	16-3584
+chrM	5900	0	0	0	0	0	0	0	16-3584
+chrM	5901	0	0	0	0	0	0	0	16-3584
+chrM	5902	0	0	0	0	0	0	0	16-3584
+chrM	5903	0	0	0	0	0	0	0	16-3584
+chrM	5904	0	0	0	0	0	0	0	16-3584
+chrM	5905	0	0	0	0	0	0	0	16-3584
+chrM	5906	0	0	0	0	0	0	0	16-3584
+chrM	5907	0	0	0	0	0	0	0	16-3584
+chrM	5908	0	0	0	0	0	0	0	16-3584
+chrM	5909	0	0	0	0	0	0	0	16-3584
+chrM	5910	0	0	0	0	0	0	0	16-3584
+chrM	5911	0	0	0	0	0	0	0	16-3584
+chrM	5912	0	0	0	0	0	0	0	16-3584
+chrM	5913	0	0	0	0	0	0	0	16-3584
+chrM	5914	0	0	0	0	0	0	0	16-3584
+chrM	5915	0	0	0	0	0	0	0	16-3584
+chrM	5916	0	0	0	0	0	0	0	16-3584
+chrM	5917	0	0	0	0	0	0	0	16-3584
+chrM	5918	0	0	0	0	0	0	0	16-3584
+chrM	5919	0	0	0	0	0	0	0	16-3584
+chrM	5920	0	0	0	0	0	0	0	16-3584
+chrM	5921	0	0	0	0	0	0	0	16-3584
+chrM	5922	0	0	0	0	0	0	0	16-3584
+chrM	5923	0	0	0	0	0	0	0	16-3584
+chrM	5924	0	0	0	0	0	0	0	16-3584
+chrM	5925	0	0	0	0	0	0	0	16-3584
+chrM	5926	0	0	0	0	0	0	0	16-3584
+chrM	5927	0	0	0	0	0	0	0	16-3584
+chrM	5928	0	0	0	0	0	0	0	16-3584
+chrM	5929	0	0	0	0	0	0	0	16-3584
+chrM	5930	0	0	0	0	0	0	0	16-3584
+chrM	5931	0	0	0	0	0	0	0	16-3584
+chrM	5932	0	0	0	0	0	0	0	16-3584
+chrM	5933	0	0	0	0	0	0	0	16-3584
+chrM	5934	0	0	0	0	0	0	0	16-3584
+chrM	5935	0	0	0	0	0	0	0	16-3584
+chrM	5936	0	0	0	0	0	0	0	16-3584
+chrM	5937	0	0	0	0	0	0	0	16-3584
+chrM	5938	0	0	0	0	0	0	0	16-3584
+chrM	5939	0	0	0	0	0	0	0	16-3584
+chrM	5940	0	0	0	0	0	0	0	16-3584
+chrM	5941	0	0	0	0	0	0	0	16-3584
+chrM	5942	0	0	0	0	0	0	0	16-3584
+chrM	5943	0	0	0	0	0	0	0	16-3584
+chrM	5944	0	0	0	0	0	0	0	16-3584
+chrM	5945	0	0	0	0	0	0	0	16-3584
+chrM	5946	0	0	0	0	0	0	0	16-3584
+chrM	5947	0	0	0	0	0	0	0	16-3584
+chrM	5948	0	0	0	0	0	0	0	16-3584
+chrM	5949	0	0	0	0	0	0	0	16-3584
+chrM	5950	0	0	0	0	0	0	0	16-3584
+chrM	5951	0	0	0	0	0	0	0	16-3584
+chrM	5952	0	0	0	0	0	0	0	16-3584
+chrM	5953	0	0	0	0	0	0	0	16-3584
+chrM	5954	0	0	0	0	0	0	0	16-3584
+chrM	5955	0	0	0	0	0	0	0	16-3584
+chrM	5956	0	0	0	0	0	0	0	16-3584
+chrM	5957	0	0	0	0	0	0	0	16-3584
+chrM	5958	0	0	0	0	0	0	0	16-3584
+chrM	5959	0	0	0	0	0	0	0	16-3584
+chrM	5960	0	0	0	0	0	0	0	16-3584
+chrM	5961	0	0	0	0	0	0	0	16-3584
+chrM	5962	0	0	0	0	0	0	0	16-3584
+chrM	5963	0	0	0	0	0	0	0	16-3584
+chrM	5964	0	0	0	0	0	0	0	16-3584
+chrM	5965	0	0	0	0	0	0	0	16-3584
+chrM	5966	0	0	0	0	0	0	0	16-3584
+chrM	5967	0	0	0	0	0	0	0	16-3584
+chrM	5968	0	0	0	0	0	0	0	16-3584
+chrM	5969	0	0	0	0	0	0	0	16-3584
+chrM	5970	0	0	0	0	0	0	0	16-3584
+chrM	5971	0	0	0	0	0	0	0	16-3584
+chrM	5972	0	0	0	0	0	0	0	16-3584
+chrM	5973	0	0	0	0	0	0	0	16-3584
+chrM	5974	0	0	0	0	0	0	0	16-3584
+chrM	5975	0	0	0	0	0	0	0	16-3584
+chrM	5976	0	0	0	0	0	0	0	16-3584
+chrM	5977	0	0	0	0	0	0	0	16-3584
+chrM	5978	0	0	0	0	0	0	0	16-3584
+chrM	5979	0	0	0	0	0	0	0	16-3584
+chrM	5980	0	0	0	0	0	0	0	16-3584
+chrM	5981	0	0	0	0	0	0	0	16-3584
+chrM	5982	0	0	0	0	0	0	0	16-3584
+chrM	5983	0	0	0	0	0	0	0	16-3584
+chrM	5984	0	0	0	0	0	0	0	16-3584
+chrM	5985	0	0	0	0	0	0	0	16-3584
+chrM	5986	0	0	0	0	0	0	0	16-3584
+chrM	5987	0	0	0	0	0	0	0	16-3584
+chrM	5988	0	0	0	0	0	0	0	16-3584
+chrM	5989	0	0	0	0	0	0	0	16-3584
+chrM	5990	0	0	0	0	0	0	0	16-3584
+chrM	5991	0	0	0	0	0	0	0	16-3584
+chrM	5992	0	0	0	0	0	0	0	16-3584
+chrM	5993	0	0	0	0	0	0	0	16-3584
+chrM	5994	0	0	0	0	0	0	0	16-3584
+chrM	5995	0	0	0	0	0	0	0	16-3584
+chrM	5996	0	0	0	0	0	0	0	16-3584
+chrM	5997	0	0	0	0	0	0	0	16-3584
+chrM	5998	0	0	0	0	0	0	0	16-3584
+chrM	5999	0	0	0	0	0	0	0	16-3584
+chrM	6000	0	0	0	0	0	0	0	16-3584
+chrM	6001	0	0	0	0	0	0	0	16-3584
+chrM	6002	0	0	0	0	0	0	0	16-3584
+chrM	6003	0	0	0	0	0	0	0	16-3584
+chrM	6004	0	0	0	0	0	0	0	16-3584
+chrM	6005	0	0	0	0	0	0	0	16-3584
+chrM	6006	0	0	0	0	0	0	0	16-3584
+chrM	6007	0	0	0	0	0	0	0	16-3584
+chrM	6008	0	0	0	0	0	0	0	16-3584
+chrM	6009	0	0	0	0	0	0	0	16-3584
+chrM	6010	0	0	0	0	0	0	0	16-3584
+chrM	6011	0	0	0	0	0	0	0	16-3584
+chrM	6012	0	0	0	0	0	0	0	16-3584
+chrM	6013	0	0	0	0	0	0	0	16-3584
+chrM	6014	0	0	0	0	0	0	0	16-3584
+chrM	6015	0	0	0	0	0	0	0	16-3584
+chrM	6016	0	0	0	0	0	0	0	16-3584
+chrM	6017	0	0	0	0	0	0	0	16-3584
+chrM	6018	0	0	0	0	0	0	0	16-3584
+chrM	6019	0	0	0	0	0	0	0	16-3584
+chrM	6020	0	0	0	0	0	0	0	16-3584
+chrM	6021	0	0	0	0	0	0	0	16-3584
+chrM	6022	0	0	0	0	0	0	0	16-3584
+chrM	6023	0	0	0	0	0	0	0	16-3584
+chrM	6024	0	0	0	0	0	0	0	16-3584
+chrM	6025	0	0	0	0	0	0	0	16-3584
+chrM	6026	0	0	0	0	0	0	0	16-3584
+chrM	6027	0	0	0	0	0	0	0	16-3584
+chrM	6028	0	0	0	0	0	0	0	16-3584
+chrM	6029	0	0	0	0	0	0	0	16-3584
+chrM	6030	0	0	0	0	0	0	0	16-3584
+chrM	6031	0	0	0	0	0	0	0	16-3584
+chrM	6032	0	0	0	0	0	0	0	16-3584
+chrM	6033	0	0	0	0	0	0	0	16-3584
+chrM	6034	0	0	0	0	0	0	0	16-3584
+chrM	6035	0	0	0	0	0	0	0	16-3584
+chrM	6036	0	0	0	0	0	0	0	16-3584
+chrM	6037	0	0	0	0	0	0	0	16-3584
+chrM	6038	0	0	0	0	0	0	0	16-3584
+chrM	6039	0	0	0	0	0	0	0	16-3584
+chrM	6040	0	0	0	0	0	0	0	16-3584
+chrM	6041	0	0	0	0	0	0	0	16-3584
+chrM	6042	0	0	0	0	0	0	0	16-3584
+chrM	6043	0	0	0	0	0	0	0	16-3584
+chrM	6044	0	0	0	0	0	0	0	16-3584
+chrM	6045	0	0	0	0	0	0	0	16-3584
+chrM	6046	0	0	0	0	0	0	0	16-3584
+chrM	6047	0	0	0	0	0	0	0	16-3584
+chrM	6048	0	0	0	0	0	0	0	16-3584
+chrM	6049	0	0	0	0	0	0	0	16-3584
+chrM	6050	0	0	0	0	0	0	0	16-3584
+chrM	6051	0	0	0	0	0	0	0	16-3584
+chrM	6052	0	0	0	0	0	0	0	16-3584
+chrM	6053	0	0	0	0	0	0	0	16-3584
+chrM	6054	0	0	0	0	0	0	0	16-3584
+chrM	6055	0	0	0	0	0	0	0	16-3584
+chrM	6056	0	0	0	0	0	0	0	16-3584
+chrM	6057	0	0	0	0	0	0	0	16-3584
+chrM	6058	0	0	0	0	0	0	0	16-3584
+chrM	6059	0	0	0	0	0	0	0	16-3584
+chrM	6060	0	0	0	0	0	0	0	16-3584
+chrM	6061	0	0	0	0	0	0	0	16-3584
+chrM	6062	0	0	0	0	0	0	0	16-3584
+chrM	6063	0	0	0	0	0	0	0	16-3584
+chrM	6064	0	0	0	0	0	0	0	16-3584
+chrM	6065	0	0	0	0	0	0	0	16-3584
+chrM	6066	0	0	0	0	0	0	0	16-3584
+chrM	6067	0	0	0	0	0	0	0	16-3584
+chrM	6068	0	0	0	0	0	0	0	16-3584
+chrM	6069	0	0	0	0	0	0	0	16-3584
+chrM	6070	0	0	0	0	0	0	0	16-3584
+chrM	6071	0	0	0	0	0	0	0	16-3584
+chrM	6072	0	0	0	0	0	0	0	16-3584
+chrM	6073	0	0	0	0	0	0	0	16-3584
+chrM	6074	0	0	0	0	0	0	0	16-3584
+chrM	6075	0	0	0	0	0	0	0	16-3584
+chrM	6076	0	0	0	0	0	0	0	16-3584
+chrM	6077	0	0	0	0	0	0	0	16-3584
+chrM	6078	0	0	0	0	0	0	0	16-3584
+chrM	6079	0	0	0	0	0	0	0	16-3584
+chrM	6080	0	0	0	0	0	0	0	16-3584
+chrM	6081	0	0	0	0	0	0	0	16-3584
+chrM	6082	0	0	0	0	0	0	0	16-3584
+chrM	6083	0	0	0	0	0	0	0	16-3584
+chrM	6084	0	0	0	0	0	0	0	16-3584
+chrM	6085	0	0	0	0	0	0	0	16-3584
+chrM	6086	0	0	0	0	0	0	0	16-3584
+chrM	6087	0	0	0	0	0	0	0	16-3584
+chrM	6088	0	0	0	0	0	0	0	16-3584
+chrM	6089	0	0	0	0	0	0	0	16-3584
+chrM	6090	0	0	0	0	0	0	0	16-3584
+chrM	6091	0	0	0	0	0	0	0	16-3584
+chrM	6092	0	0	0	0	0	0	0	16-3584
+chrM	6093	0	0	0	0	0	0	0	16-3584
+chrM	6094	0	0	0	0	0	0	0	16-3584
+chrM	6095	0	0	0	0	0	0	0	16-3584
+chrM	6096	0	0	0	0	0	0	0	16-3584
+chrM	6097	0	0	0	0	0	0	0	16-3584
+chrM	6098	0	0	0	0	0	0	0	16-3584
+chrM	6099	0	0	0	0	0	0	0	16-3584
+chrM	6100	0	0	0	0	0	0	0	16-3584
+chrM	6101	0	0	0	0	0	0	0	16-3584
+chrM	6102	0	0	0	0	0	0	0	16-3584
+chrM	6103	0	0	0	0	0	0	0	16-3584
+chrM	6104	0	0	0	0	0	0	0	16-3584
+chrM	6105	0	0	0	0	0	0	0	16-3584
+chrM	6106	0	0	0	0	0	0	0	16-3584
+chrM	6107	0	0	0	0	0	0	0	16-3584
+chrM	6108	0	0	0	0	0	0	0	16-3584
+chrM	6109	0	0	0	0	0	0	0	16-3584
+chrM	6110	0	0	0	0	0	0	0	16-3584
+chrM	6111	0	0	0	0	0	0	0	16-3584
+chrM	6112	0	0	0	0	0	0	0	16-3584
+chrM	6113	0	0	0	0	0	0	0	16-3584
+chrM	6114	0	0	0	0	0	0	0	16-3584
+chrM	6115	0	0	0	0	0	0	0	16-3584
+chrM	6116	0	0	0	0	0	0	0	16-3584
+chrM	6117	0	0	0	0	0	0	0	16-3584
+chrM	6118	0	0	0	0	0	0	0	16-3584
+chrM	6119	0	0	0	0	0	0	0	16-3584
+chrM	6120	0	0	0	0	0	0	0	16-3584
+chrM	6121	0	0	0	0	0	0	0	16-3584
+chrM	6122	0	0	0	0	0	0	0	16-3584
+chrM	6123	0	0	0	0	0	0	0	16-3584
+chrM	6124	0	0	0	0	0	0	0	16-3584
+chrM	6125	0	0	0	0	0	0	0	16-3584
+chrM	6126	0	0	0	0	0	0	0	16-3584
+chrM	6127	0	0	0	0	0	0	0	16-3584
+chrM	6128	0	0	0	0	0	0	0	16-3584
+chrM	6129	0	0	0	0	0	0	0	16-3584
+chrM	6130	0	0	0	0	0	0	0	16-3584
+chrM	6131	0	0	0	0	0	0	0	16-3584
+chrM	6132	0	0	0	0	0	0	0	16-3584
+chrM	6133	0	0	0	0	0	0	0	16-3584
+chrM	6134	0	0	0	0	0	0	0	16-3584
+chrM	6135	0	0	0	0	0	0	0	16-3584
+chrM	6136	0	0	0	0	0	0	0	16-3584
+chrM	6137	0	0	0	0	0	0	0	16-3584
+chrM	6138	0	0	0	0	0	0	0	16-3584
+chrM	6139	0	0	0	0	0	0	0	16-3584
+chrM	6140	0	0	0	0	0	0	0	16-3584
+chrM	6141	0	0	0	0	0	0	0	16-3584
+chrM	6142	0	0	0	0	0	0	0	16-3584
+chrM	6143	0	0	0	0	0	0	0	16-3584
+chrM	6144	0	0	0	0	0	0	0	16-3584
+chrM	6145	0	0	0	0	0	0	0	16-3584
+chrM	6146	0	0	0	0	0	0	0	16-3584
+chrM	6147	0	0	0	0	0	0	0	16-3584
+chrM	6148	0	0	0	0	0	0	0	16-3584
+chrM	6149	0	0	0	0	0	0	0	16-3584
+chrM	6150	0	0	0	0	0	0	0	16-3584
+chrM	6151	0	0	0	0	0	0	0	16-3584
+chrM	6152	0	0	0	0	0	0	0	16-3584
+chrM	6153	0	0	0	0	0	0	0	16-3584
+chrM	6154	0	0	0	0	0	0	0	16-3584
+chrM	6155	0	0	0	0	0	0	0	16-3584
+chrM	6156	0	0	0	0	0	0	0	16-3584
+chrM	6157	0	0	0	0	0	0	0	16-3584
+chrM	6158	0	0	0	0	0	0	0	16-3584
+chrM	6159	0	0	0	0	0	0	0	16-3584
+chrM	6160	0	0	0	0	0	0	0	16-3584
+chrM	6161	0	0	0	0	0	0	0	16-3584
+chrM	6162	0	0	0	0	0	0	0	16-3584
+chrM	6163	0	0	0	0	0	0	0	16-3584
+chrM	6164	0	0	0	0	0	0	0	16-3584
+chrM	6165	0	0	0	0	0	0	0	16-3584
+chrM	6166	0	0	0	0	0	0	0	16-3584
+chrM	6167	0	0	0	0	0	0	0	16-3584
+chrM	6168	0	0	0	0	0	0	0	16-3584
+chrM	6169	0	0	0	0	0	0	0	16-3584
+chrM	6170	0	0	0	0	0	0	0	16-3584
+chrM	6171	0	0	0	0	0	0	0	16-3584
+chrM	6172	0	0	0	0	0	0	0	16-3584
+chrM	6173	0	0	0	0	0	0	0	16-3584
+chrM	6174	0	0	0	0	0	0	0	16-3584
+chrM	6175	0	0	0	0	0	0	0	16-3584
+chrM	6176	0	0	0	0	0	0	0	16-3584
+chrM	6177	0	0	0	0	0	0	0	16-3584
+chrM	6178	0	0	0	0	0	0	0	16-3584
+chrM	6179	0	0	0	0	0	0	0	16-3584
+chrM	6180	0	0	0	0	0	0	0	16-3584
+chrM	6181	0	0	0	0	0	0	0	16-3584
+chrM	6182	0	0	0	0	0	0	0	16-3584
+chrM	6183	0	0	0	0	0	0	0	16-3584
+chrM	6184	0	0	0	0	0	0	0	16-3584
+chrM	6185	0	0	0	0	0	0	0	16-3584
+chrM	6186	0	0	0	0	0	0	0	16-3584
+chrM	6187	0	0	0	0	0	0	0	16-3584
+chrM	6188	0	0	0	0	0	0	0	16-3584
+chrM	6189	0	0	0	0	0	0	0	16-3584
+chrM	6190	0	0	0	0	0	0	0	16-3584
+chrM	6191	0	0	0	0	0	0	0	16-3584
+chrM	6192	0	0	0	0	0	0	0	16-3584
+chrM	6193	0	0	0	0	0	0	0	16-3584
+chrM	6194	0	0	0	0	0	0	0	16-3584
+chrM	6195	0	0	0	0	0	0	0	16-3584
+chrM	6196	0	0	0	0	0	0	0	16-3584
+chrM	6197	0	0	0	0	0	0	0	16-3584
+chrM	6198	0	0	0	0	0	0	0	16-3584
+chrM	6199	0	0	0	0	0	0	0	16-3584
+chrM	6200	0	0	0	0	0	0	0	16-3584
+chrM	6201	0	0	0	0	0	0	0	16-3584
+chrM	6202	0	0	0	0	0	0	0	16-3584
+chrM	6203	0	0	0	0	0	0	0	16-3584
+chrM	6204	0	0	0	0	0	0	0	16-3584
+chrM	6205	0	0	0	0	0	0	0	16-3584
+chrM	6206	0	0	0	0	0	0	0	16-3584
+chrM	6207	0	0	0	0	0	0	0	16-3584
+chrM	6208	0	0	0	0	0	0	0	16-3584
+chrM	6209	0	0	0	0	0	0	0	16-3584
+chrM	6210	0	0	0	0	0	0	0	16-3584
+chrM	6211	0	0	0	0	0	0	0	16-3584
+chrM	6212	0	0	0	0	0	0	0	16-3584
+chrM	6213	0	0	0	0	0	0	0	16-3584
+chrM	6214	0	0	0	0	0	0	0	16-3584
+chrM	6215	0	0	0	0	0	0	0	16-3584
+chrM	6216	0	0	0	0	0	0	0	16-3584
+chrM	6217	0	0	0	0	0	0	0	16-3584
+chrM	6218	0	0	0	0	0	0	0	16-3584
+chrM	6219	0	0	0	0	0	0	0	16-3584
+chrM	6220	0	0	0	0	0	0	0	16-3584
+chrM	6221	0	0	0	0	0	0	0	16-3584
+chrM	6222	0	0	0	0	0	0	0	16-3584
+chrM	6223	0	0	0	0	0	0	0	16-3584
+chrM	6224	0	0	0	0	0	0	0	16-3584
+chrM	6225	0	0	0	0	0	0	0	16-3584
+chrM	6226	0	0	0	0	0	0	0	16-3584
+chrM	6227	0	0	0	0	0	0	0	16-3584
+chrM	6228	0	0	0	0	0	0	0	16-3584
+chrM	6229	0	0	0	0	0	0	0	16-3584
+chrM	6230	0	0	0	0	0	0	0	16-3584
+chrM	6231	0	0	0	0	0	0	0	16-3584
+chrM	6232	0	0	0	0	0	0	0	16-3584
+chrM	6233	0	0	0	0	0	0	0	16-3584
+chrM	6234	0	0	0	0	0	0	0	16-3584
+chrM	6235	0	0	0	0	0	0	0	16-3584
+chrM	6236	0	0	0	0	0	0	0	16-3584
+chrM	6237	0	0	0	0	0	0	0	16-3584
+chrM	6238	0	0	0	0	0	0	0	16-3584
+chrM	6239	0	0	0	0	0	0	0	16-3584
+chrM	6240	0	0	0	0	0	0	0	16-3584
+chrM	6241	0	0	0	0	0	0	0	16-3584
+chrM	6242	0	0	0	0	0	0	0	16-3584
+chrM	6243	0	0	0	0	0	0	0	16-3584
+chrM	6244	0	0	0	0	0	0	0	16-3584
+chrM	6245	0	0	0	0	0	0	0	16-3584
+chrM	6246	0	0	0	0	0	0	0	16-3584
+chrM	6247	0	0	0	0	0	0	0	16-3584
+chrM	6248	0	0	0	0	0	0	0	16-3584
+chrM	6249	0	0	0	0	0	0	0	16-3584
+chrM	6250	0	0	0	0	0	0	0	16-3584
+chrM	6251	0	0	0	0	0	0	0	16-3584
+chrM	6252	0	0	0	0	0	0	0	16-3584
+chrM	6253	0	0	0	0	0	0	0	16-3584
+chrM	6254	0	0	0	0	0	0	0	16-3584
+chrM	6255	0	0	0	0	0	0	0	16-3584
+chrM	6256	0	0	0	0	0	0	0	16-3584
+chrM	6257	0	0	0	0	0	0	0	16-3584
+chrM	6258	0	0	0	0	0	0	0	16-3584
+chrM	6259	0	0	0	0	0	0	0	16-3584
+chrM	6260	0	0	0	0	0	0	0	16-3584
+chrM	6261	0	0	0	0	0	0	0	16-3584
+chrM	6262	0	0	0	0	0	0	0	16-3584
+chrM	6263	0	0	0	0	0	0	0	16-3584
+chrM	6264	0	0	0	0	0	0	0	16-3584
+chrM	6265	0	0	0	0	0	0	0	16-3584
+chrM	6266	0	0	0	0	0	0	0	16-3584
+chrM	6267	0	0	0	0	0	0	0	16-3584
+chrM	6268	0	0	0	0	0	0	0	16-3584
+chrM	6269	0	0	0	0	0	0	0	16-3584
+chrM	6270	0	0	0	0	0	0	0	16-3584
+chrM	6271	0	0	0	0	0	0	0	16-3584
+chrM	6272	0	0	0	0	0	0	0	16-3584
+chrM	6273	0	0	0	0	0	0	0	16-3584
+chrM	6274	0	0	0	0	0	0	0	16-3584
+chrM	6275	0	0	0	0	0	0	0	16-3584
+chrM	6276	0	0	0	0	0	0	0	16-3584
+chrM	6277	0	0	0	0	0	0	0	16-3584
+chrM	6278	0	0	0	0	0	0	0	16-3584
+chrM	6279	0	0	0	0	0	0	0	16-3584
+chrM	6280	0	0	0	0	0	0	0	16-3584
+chrM	6281	0	0	0	0	0	0	0	16-3584
+chrM	6282	0	0	0	0	0	0	0	16-3584
+chrM	6283	0	0	0	0	0	0	0	16-3584
+chrM	6284	0	0	0	0	0	0	0	16-3584
+chrM	6285	0	0	0	0	0	0	0	16-3584
+chrM	6286	0	0	0	0	0	0	0	16-3584
+chrM	6287	0	0	0	0	0	0	0	16-3584
+chrM	6288	0	0	0	0	0	0	0	16-3584
+chrM	6289	0	0	0	0	0	0	0	16-3584
+chrM	6290	0	0	0	0	0	0	0	16-3584
+chrM	6291	0	0	0	0	0	0	0	16-3584
+chrM	6292	0	0	0	0	0	0	0	16-3584
+chrM	6293	0	0	0	0	0	0	0	16-3584
+chrM	6294	0	0	0	0	0	0	0	16-3584
+chrM	6295	0	0	0	0	0	0	0	16-3584
+chrM	6296	0	0	0	0	0	0	0	16-3584
+chrM	6297	0	0	0	0	0	0	0	16-3584
+chrM	6298	0	0	0	0	0	0	0	16-3584
+chrM	6299	0	0	0	0	0	0	0	16-3584
+chrM	6300	0	0	0	0	0	0	0	16-3584
+chrM	6301	0	0	0	0	0	0	0	16-3584
+chrM	6302	0	0	0	0	0	0	0	16-3584
+chrM	6303	0	0	0	0	0	0	0	16-3584
+chrM	6304	0	0	0	0	0	0	0	16-3584
+chrM	6305	0	0	0	0	0	0	0	16-3584
+chrM	6306	0	0	0	0	0	0	0	16-3584
+chrM	6307	0	0	0	0	0	0	0	16-3584
+chrM	6308	0	0	0	0	0	0	0	16-3584
+chrM	6309	0	0	0	0	0	0	0	16-3584
+chrM	6310	0	0	0	0	0	0	0	16-3584
+chrM	6311	0	0	0	0	0	0	0	16-3584
+chrM	6312	0	0	0	0	0	0	0	16-3584
+chrM	6313	0	0	0	0	0	0	0	16-3584
+chrM	6314	0	0	0	0	0	0	0	16-3584
+chrM	6315	0	0	0	0	0	0	0	16-3584
+chrM	6316	0	0	0	0	0	0	0	16-3584
+chrM	6317	0	0	0	0	0	0	0	16-3584
+chrM	6318	0	0	0	0	0	0	0	16-3584
+chrM	6319	0	0	0	0	0	0	0	16-3584
+chrM	6320	0	0	0	0	0	0	0	16-3584
+chrM	6321	0	0	0	0	0	0	0	16-3584
+chrM	6322	0	0	0	0	0	0	0	16-3584
+chrM	6323	0	0	0	0	0	0	0	16-3584
+chrM	6324	0	0	0	0	0	0	0	16-3584
+chrM	6325	0	0	0	0	0	0	0	16-3584
+chrM	6326	0	0	0	0	0	0	0	16-3584
+chrM	6327	0	0	0	0	0	0	0	16-3584
+chrM	6328	0	0	0	0	0	0	0	16-3584
+chrM	6329	0	0	0	0	0	0	0	16-3584
+chrM	6330	0	0	0	0	0	0	0	16-3584
+chrM	6331	0	0	0	0	0	0	0	16-3584
+chrM	6332	0	0	0	0	0	0	0	16-3584
+chrM	6333	0	0	0	0	0	0	0	16-3584
+chrM	6334	0	0	0	0	0	0	0	16-3584
+chrM	6335	0	0	0	0	0	0	0	16-3584
+chrM	6336	0	0	0	0	0	0	0	16-3584
+chrM	6337	0	0	0	0	0	0	0	16-3584
+chrM	6338	0	0	0	0	0	0	0	16-3584
+chrM	6339	0	0	0	0	0	0	0	16-3584
+chrM	6340	0	0	0	0	0	0	0	16-3584
+chrM	6341	0	0	0	0	0	0	0	16-3584
+chrM	6342	0	0	0	0	0	0	0	16-3584
+chrM	6343	0	0	0	0	0	0	0	16-3584
+chrM	6344	0	0	0	0	0	0	0	16-3584
+chrM	6345	0	0	0	0	0	0	0	16-3584
+chrM	6346	0	0	0	0	0	0	0	16-3584
+chrM	6347	0	0	0	0	0	0	0	16-3584
+chrM	6348	0	0	0	0	0	0	0	16-3584
+chrM	6349	0	0	0	0	0	0	0	16-3584
+chrM	6350	0	0	0	0	0	0	0	16-3584
+chrM	6351	0	0	0	0	0	0	0	16-3584
+chrM	6352	0	0	0	0	0	0	0	16-3584
+chrM	6353	0	0	0	0	0	0	0	16-3584
+chrM	6354	0	0	0	0	0	0	0	16-3584
+chrM	6355	0	0	0	0	0	0	0	16-3584
+chrM	6356	0	0	0	0	0	0	0	16-3584
+chrM	6357	0	0	0	0	0	0	0	16-3584
+chrM	6358	0	0	0	0	0	0	0	16-3584
+chrM	6359	0	0	0	0	0	0	0	16-3584
+chrM	6360	0	0	0	0	0	0	0	16-3584
+chrM	6361	0	0	0	0	0	0	0	16-3584
+chrM	6362	0	0	0	0	0	0	0	16-3584
+chrM	6363	0	0	0	0	0	0	0	16-3584
+chrM	6364	0	0	0	0	0	0	0	16-3584
+chrM	6365	0	0	0	0	0	0	0	16-3584
+chrM	6366	0	0	0	0	0	0	0	16-3584
+chrM	6367	0	0	0	0	0	0	0	16-3584
+chrM	6368	0	0	0	0	0	0	0	16-3584
+chrM	6369	0	0	0	0	0	0	0	16-3584
+chrM	6370	0	0	0	0	0	0	0	16-3584
+chrM	6371	0	0	0	0	0	0	0	16-3584
+chrM	6372	0	0	0	0	0	0	0	16-3584
+chrM	6373	0	0	0	0	0	0	0	16-3584
+chrM	6374	0	0	0	0	0	0	0	16-3584
+chrM	6375	0	0	0	0	0	0	0	16-3584
+chrM	6376	0	0	0	0	0	0	0	16-3584
+chrM	6377	0	0	0	0	0	0	0	16-3584
+chrM	6378	0	0	0	0	0	0	0	16-3584
+chrM	6379	0	0	0	0	0	0	0	16-3584
+chrM	6380	0	0	0	0	0	0	0	16-3584
+chrM	6381	0	0	0	0	0	0	0	16-3584
+chrM	6382	0	0	0	0	0	0	0	16-3584
+chrM	6383	0	0	0	0	0	0	0	16-3584
+chrM	6384	0	0	0	0	0	0	0	16-3584
+chrM	6385	0	0	0	0	0	0	0	16-3584
+chrM	6386	0	0	0	0	0	0	0	16-3584
+chrM	6387	0	0	0	0	0	0	0	16-3584
+chrM	6388	0	0	0	0	0	0	0	16-3584
+chrM	6389	0	0	0	0	0	0	0	16-3584
+chrM	6390	0	0	0	0	0	0	0	16-3584
+chrM	6391	0	0	0	0	0	0	0	16-3584
+chrM	6392	0	0	0	0	0	0	0	16-3584
+chrM	6393	0	0	0	0	0	0	0	16-3584
+chrM	6394	0	0	0	0	0	0	0	16-3584
+chrM	6395	0	0	0	0	0	0	0	16-3584
+chrM	6396	0	0	0	0	0	0	0	16-3584
+chrM	6397	0	0	0	0	0	0	0	16-3584
+chrM	6398	0	0	0	0	0	0	0	16-3584
+chrM	6399	0	0	0	0	0	0	0	16-3584
+chrM	6400	0	0	0	0	0	0	0	16-3584
+chrM	6401	0	0	0	0	0	0	0	16-3584
+chrM	6402	0	0	0	0	0	0	0	16-3584
+chrM	6403	0	0	0	0	0	0	0	16-3584
+chrM	6404	0	0	0	0	0	0	0	16-3584
+chrM	6405	0	0	0	0	0	0	0	16-3584
+chrM	6406	0	0	0	0	0	0	0	16-3584
+chrM	6407	0	0	0	0	0	0	0	16-3584
+chrM	6408	0	0	0	0	0	0	0	16-3584
+chrM	6409	0	0	0	0	0	0	0	16-3584
+chrM	6410	0	0	0	0	0	0	0	16-3584
+chrM	6411	0	0	0	0	0	0	0	16-3584
+chrM	6412	0	0	0	0	0	0	0	16-3584
+chrM	6413	0	0	0	0	0	0	0	16-3584
+chrM	6414	0	0	0	0	0	0	0	16-3584
+chrM	6415	0	0	0	0	0	0	0	16-3584
+chrM	6416	0	0	0	0	0	0	0	16-3584
+chrM	6417	0	0	0	0	0	0	0	16-3584
+chrM	6418	0	0	0	0	0	0	0	16-3584
+chrM	6419	0	0	0	0	0	0	0	16-3584
+chrM	6420	0	0	0	0	0	0	0	16-3584
+chrM	6421	0	0	0	0	0	0	0	16-3584
+chrM	6422	0	0	0	0	0	0	0	16-3584
+chrM	6423	0	0	0	0	0	0	0	16-3584
+chrM	6424	0	0	0	0	0	0	0	16-3584
+chrM	6425	0	0	0	0	0	0	0	16-3584
+chrM	6426	0	0	0	0	0	0	0	16-3584
+chrM	6427	0	0	0	0	0	0	0	16-3584
+chrM	6428	0	0	0	0	0	0	0	16-3584
+chrM	6429	0	0	0	0	0	0	0	16-3584
+chrM	6430	0	0	0	0	0	0	0	16-3584
+chrM	6431	0	0	0	0	0	0	0	16-3584
+chrM	6432	0	0	0	0	0	0	0	16-3584
+chrM	6433	0	0	0	0	0	0	0	16-3584
+chrM	6434	0	0	0	0	0	0	0	16-3584
+chrM	6435	0	0	0	0	0	0	0	16-3584
+chrM	6436	0	0	0	0	0	0	0	16-3584
+chrM	6437	0	0	0	0	0	0	0	16-3584
+chrM	6438	0	0	0	0	0	0	0	16-3584
+chrM	6439	0	0	0	0	0	0	0	16-3584
+chrM	6440	0	0	0	0	0	0	0	16-3584
+chrM	6441	0	0	0	0	0	0	0	16-3584
+chrM	6442	0	0	0	0	0	0	0	16-3584
+chrM	6443	0	0	0	0	0	0	0	16-3584
+chrM	6444	0	0	0	0	0	0	0	16-3584
+chrM	6445	0	0	0	0	0	0	0	16-3584
+chrM	6446	0	0	0	0	0	0	0	16-3584
+chrM	6447	0	0	0	0	0	0	0	16-3584
+chrM	6448	0	0	0	0	0	0	0	16-3584
+chrM	6449	0	0	0	0	0	0	0	16-3584
+chrM	6450	0	0	0	0	0	0	0	16-3584
+chrM	6451	0	0	0	0	0	0	0	16-3584
+chrM	6452	0	0	0	0	0	0	0	16-3584
+chrM	6453	0	0	0	0	0	0	0	16-3584
+chrM	6454	0	0	0	0	0	0	0	16-3584
+chrM	6455	0	0	0	0	0	0	0	16-3584
+chrM	6456	0	0	0	0	0	0	0	16-3584
+chrM	6457	0	0	0	0	0	0	0	16-3584
+chrM	6458	0	0	0	0	0	0	0	16-3584
+chrM	6459	0	0	0	0	0	0	0	16-3584
+chrM	6460	0	0	0	0	0	0	0	16-3584
+chrM	6461	0	0	0	0	0	0	0	16-3584
+chrM	6462	0	0	0	0	0	0	0	16-3584
+chrM	6463	0	0	0	0	0	0	0	16-3584
+chrM	6464	0	0	0	0	0	0	0	16-3584
+chrM	6465	0	0	0	0	0	0	0	16-3584
+chrM	6466	0	0	0	0	0	0	0	16-3584
+chrM	6467	0	0	0	0	0	0	0	16-3584
+chrM	6468	0	0	0	0	0	0	0	16-3584
+chrM	6469	0	0	0	0	0	0	0	16-3584
+chrM	6470	0	0	0	0	0	0	0	16-3584
+chrM	6471	0	0	0	0	0	0	0	16-3584
+chrM	6472	0	0	0	0	0	0	0	16-3584
+chrM	6473	0	0	0	0	0	0	0	16-3584
+chrM	6474	0	0	0	0	0	0	0	16-3584
+chrM	6475	0	0	0	0	0	0	0	16-3584
+chrM	6476	0	0	0	0	0	0	0	16-3584
+chrM	6477	0	0	0	0	0	0	0	16-3584
+chrM	6478	0	0	0	0	0	0	0	16-3584
+chrM	6479	0	0	0	0	0	0	0	16-3584
+chrM	6480	0	0	0	0	0	0	0	16-3584
+chrM	6481	0	0	0	0	0	0	0	16-3584
+chrM	6482	0	0	0	0	0	0	0	16-3584
+chrM	6483	0	0	0	0	0	0	0	16-3584
+chrM	6484	0	0	0	0	0	0	0	16-3584
+chrM	6485	0	0	0	0	0	0	0	16-3584
+chrM	6486	0	0	0	0	0	0	0	16-3584
+chrM	6487	0	0	0	0	0	0	0	16-3584
+chrM	6488	0	0	0	0	0	0	0	16-3584
+chrM	6489	0	0	0	0	0	0	0	16-3584
+chrM	6490	0	0	0	0	0	0	0	16-3584
+chrM	6491	0	0	0	0	0	0	0	16-3584
+chrM	6492	0	0	0	0	0	0	0	16-3584
+chrM	6493	0	0	0	0	0	0	0	16-3584
+chrM	6494	0	0	0	0	0	0	0	16-3584
+chrM	6495	0	0	0	0	0	0	0	16-3584
+chrM	6496	0	0	0	0	0	0	0	16-3584
+chrM	6497	0	0	0	0	0	0	0	16-3584
+chrM	6498	0	0	0	0	0	0	0	16-3584
+chrM	6499	0	0	0	0	0	0	0	16-3584
+chrM	6500	0	0	0	0	0	0	0	16-3584
+chrM	6501	0	0	0	0	0	0	0	16-3584
+chrM	6502	0	0	0	0	0	0	0	16-3584
+chrM	6503	0	0	0	0	0	0	0	16-3584
+chrM	6504	0	0	0	0	0	0	0	16-3584
+chrM	6505	0	0	0	0	0	0	0	16-3584
+chrM	6506	0	0	0	0	0	0	0	16-3584
+chrM	6507	0	0	0	0	0	0	0	16-3584
+chrM	6508	0	0	0	0	0	0	0	16-3584
+chrM	6509	0	0	0	0	0	0	0	16-3584
+chrM	6510	0	0	0	0	0	0	0	16-3584
+chrM	6511	0	0	0	0	0	0	0	16-3584
+chrM	6512	0	0	0	0	0	0	0	16-3584
+chrM	6513	0	0	0	0	0	0	0	16-3584
+chrM	6514	0	0	0	0	0	0	0	16-3584
+chrM	6515	0	0	0	0	0	0	0	16-3584
+chrM	6516	0	0	0	0	0	0	0	16-3584
+chrM	6517	0	0	0	0	0	0	0	16-3584
+chrM	6518	0	0	0	0	0	0	0	16-3584
+chrM	6519	0	0	0	0	0	0	0	16-3584
+chrM	6520	0	0	0	0	0	0	0	16-3584
+chrM	6521	0	0	0	0	0	0	0	16-3584
+chrM	6522	0	0	0	0	0	0	0	16-3584
+chrM	6523	0	0	0	0	0	0	0	16-3584
+chrM	6524	0	0	0	0	0	0	0	16-3584
+chrM	6525	0	0	0	0	0	0	0	16-3584
+chrM	6526	0	0	0	0	0	0	0	16-3584
+chrM	6527	0	0	0	0	0	0	0	16-3584
+chrM	6528	0	0	0	0	0	0	0	16-3584
+chrM	6529	0	0	0	0	0	0	0	16-3584
+chrM	6530	0	0	0	0	0	0	0	16-3584
+chrM	6531	0	0	0	0	0	0	0	16-3584
+chrM	6532	0	0	0	0	0	0	0	16-3584
+chrM	6533	0	0	0	0	0	0	0	16-3584
+chrM	6534	0	0	0	0	0	0	0	16-3584
+chrM	6535	0	0	0	0	0	0	0	16-3584
+chrM	6536	0	0	0	0	0	0	0	16-3584
+chrM	6537	0	0	0	0	0	0	0	16-3584
+chrM	6538	0	0	0	0	0	0	0	16-3584
+chrM	6539	0	0	0	0	0	0	0	16-3584
+chrM	6540	0	0	0	0	0	0	0	16-3584
+chrM	6541	0	0	0	0	0	0	0	16-3584
+chrM	6542	0	0	0	0	0	0	0	16-3584
+chrM	6543	0	0	0	0	0	0	0	16-3584
+chrM	6544	0	0	0	0	0	0	0	16-3584
+chrM	6545	0	0	0	0	0	0	0	16-3584
+chrM	6546	0	0	0	0	0	0	0	16-3584
+chrM	6547	0	0	0	0	0	0	0	16-3584
+chrM	6548	0	0	0	0	0	0	0	16-3584
+chrM	6549	0	0	0	0	0	0	0	16-3584
+chrM	6550	0	0	0	0	0	0	0	16-3584
+chrM	6551	0	0	0	0	0	0	0	16-3584
+chrM	6552	0	0	0	0	0	0	0	16-3584
+chrM	6553	0	0	0	0	0	0	0	16-3584
+chrM	6554	0	0	0	0	0	0	0	16-3584
+chrM	6555	0	0	0	0	0	0	0	16-3584
+chrM	6556	0	0	0	0	0	0	0	16-3584
+chrM	6557	0	0	0	0	0	0	0	16-3584
+chrM	6558	0	0	0	0	0	0	0	16-3584
+chrM	6559	0	0	0	0	0	0	0	16-3584
+chrM	6560	0	0	0	0	0	0	0	16-3584
+chrM	6561	0	0	0	0	0	0	0	16-3584
+chrM	6562	0	0	0	0	0	0	0	16-3584
+chrM	6563	0	0	0	0	0	0	0	16-3584
+chrM	6564	0	0	0	0	0	0	0	16-3584
+chrM	6565	0	0	0	0	0	0	0	16-3584
+chrM	6566	0	0	0	0	0	0	0	16-3584
+chrM	6567	0	0	0	0	0	0	0	16-3584
+chrM	6568	0	0	0	0	0	0	0	16-3584
+chrM	6569	0	0	0	0	0	0	0	16-3584
+chrM	6570	0	0	0	0	0	0	0	16-3584
+chrM	6571	0	0	0	0	0	0	0	16-3584
+chrM	6572	0	0	0	0	0	0	0	16-3584
+chrM	6573	0	0	0	0	0	0	0	16-3584
+chrM	6574	0	0	0	0	0	0	0	16-3584
+chrM	6575	0	0	0	0	0	0	0	16-3584
+chrM	6576	0	0	0	0	0	0	0	16-3584
+chrM	6577	0	0	0	0	0	0	0	16-3584
+chrM	6578	0	0	0	0	0	0	0	16-3584
+chrM	6579	0	0	0	0	0	0	0	16-3584
+chrM	6580	0	0	0	0	0	0	0	16-3584
+chrM	6581	0	0	0	0	0	0	0	16-3584
+chrM	6582	0	0	0	0	0	0	0	16-3584
+chrM	6583	0	0	0	0	0	0	0	16-3584
+chrM	6584	0	0	0	0	0	0	0	16-3584
+chrM	6585	0	0	0	0	0	0	0	16-3584
+chrM	6586	0	0	0	0	0	0	0	16-3584
+chrM	6587	0	0	0	0	0	0	0	16-3584
+chrM	6588	0	0	0	0	0	0	0	16-3584
+chrM	6589	0	0	0	0	0	0	0	16-3584
+chrM	6590	0	0	0	0	0	0	0	16-3584
+chrM	6591	0	0	0	0	0	0	0	16-3584
+chrM	6592	0	0	0	0	0	0	0	16-3584
+chrM	6593	0	0	0	0	0	0	0	16-3584
+chrM	6594	0	0	0	0	0	0	0	16-3584
+chrM	6595	0	0	0	0	0	0	0	16-3584
+chrM	6596	0	0	0	0	0	0	0	16-3584
+chrM	6597	0	0	0	0	0	0	0	16-3584
+chrM	6598	0	0	0	0	0	0	0	16-3584
+chrM	6599	0	0	0	0	0	0	0	16-3584
+chrM	6600	0	0	0	0	0	0	0	16-3584
+chrM	6601	0	0	0	0	0	0	0	16-3584
+chrM	6602	0	0	0	0	0	0	0	16-3584
+chrM	6603	0	0	0	0	0	0	0	16-3584
+chrM	6604	0	0	0	0	0	0	0	16-3584
+chrM	6605	0	0	0	0	0	0	0	16-3584
+chrM	6606	0	0	0	0	0	0	0	16-3584
+chrM	6607	0	0	0	0	0	0	0	16-3584
+chrM	6608	0	0	0	0	0	0	0	16-3584
+chrM	6609	0	0	0	0	0	0	0	16-3584
+chrM	6610	0	0	0	0	0	0	0	16-3584
+chrM	6611	0	0	0	0	0	0	0	16-3584
+chrM	6612	0	0	0	0	0	0	0	16-3584
+chrM	6613	0	0	0	0	0	0	0	16-3584
+chrM	6614	0	0	0	0	0	0	0	16-3584
+chrM	6615	0	0	0	0	0	0	0	16-3584
+chrM	6616	0	0	0	0	0	0	0	16-3584
+chrM	6617	0	0	0	0	0	0	0	16-3584
+chrM	6618	0	0	0	0	0	0	0	16-3584
+chrM	6619	0	0	0	0	0	0	0	16-3584
+chrM	6620	0	0	0	0	0	0	0	16-3584
+chrM	6621	0	0	0	0	0	0	0	16-3584
+chrM	6622	0	0	0	0	0	0	0	16-3584
+chrM	6623	0	0	0	0	0	0	0	16-3584
+chrM	6624	0	0	0	0	0	0	0	16-3584
+chrM	6625	0	0	0	0	0	0	0	16-3584
+chrM	6626	0	0	0	0	0	0	0	16-3584
+chrM	6627	0	0	0	0	0	0	0	16-3584
+chrM	6628	0	0	0	0	0	0	0	16-3584
+chrM	6629	0	0	0	0	0	0	0	16-3584
+chrM	6630	0	0	0	0	0	0	0	16-3584
+chrM	6631	0	0	0	0	0	0	0	16-3584
+chrM	6632	0	0	0	0	0	0	0	16-3584
+chrM	6633	0	0	0	0	0	0	0	16-3584
+chrM	6634	0	0	0	0	0	0	0	16-3584
+chrM	6635	0	0	0	0	0	0	0	16-3584
+chrM	6636	0	0	0	0	0	0	0	16-3584
+chrM	6637	0	0	0	0	0	0	0	16-3584
+chrM	6638	0	0	0	0	0	0	0	16-3584
+chrM	6639	0	0	0	0	0	0	0	16-3584
+chrM	6640	0	0	0	0	0	0	0	16-3584
+chrM	6641	0	0	0	0	0	0	0	16-3584
+chrM	6642	0	0	0	0	0	0	0	16-3584
+chrM	6643	0	0	0	0	0	0	0	16-3584
+chrM	6644	0	0	0	0	0	0	0	16-3584
+chrM	6645	0	0	0	0	0	0	0	16-3584
+chrM	6646	0	0	0	0	0	0	0	16-3584
+chrM	6647	0	0	0	0	0	0	0	16-3584
+chrM	6648	0	0	0	0	0	0	0	16-3584
+chrM	6649	0	0	0	0	0	0	0	16-3584
+chrM	6650	0	0	0	0	0	0	0	16-3584
+chrM	6651	0	0	0	0	0	0	0	16-3584
+chrM	6652	0	0	0	0	0	0	0	16-3584
+chrM	6653	0	0	0	0	0	0	0	16-3584
+chrM	6654	0	0	0	0	0	0	0	16-3584
+chrM	6655	0	0	0	0	0	0	0	16-3584
+chrM	6656	0	0	0	0	0	0	0	16-3584
+chrM	6657	0	0	0	0	0	0	0	16-3584
+chrM	6658	0	0	0	0	0	0	0	16-3584
+chrM	6659	0	0	0	0	0	0	0	16-3584
+chrM	6660	0	0	0	0	0	0	0	16-3584
+chrM	6661	0	0	0	0	0	0	0	16-3584
+chrM	6662	0	0	0	0	0	0	0	16-3584
+chrM	6663	0	0	0	0	0	0	0	16-3584
+chrM	6664	0	0	0	0	0	0	0	16-3584
+chrM	6665	0	0	0	0	0	0	0	16-3584
+chrM	6666	0	0	0	0	0	0	0	16-3584
+chrM	6667	0	0	0	0	0	0	0	16-3584
+chrM	6668	0	0	0	0	0	0	0	16-3584
+chrM	6669	0	0	0	0	0	0	0	16-3584
+chrM	6670	0	0	0	0	0	0	0	16-3584
+chrM	6671	0	0	0	0	0	0	0	16-3584
+chrM	6672	0	0	0	0	0	0	0	16-3584
+chrM	6673	0	0	0	0	0	0	0	16-3584
+chrM	6674	0	0	0	0	0	0	0	16-3584
+chrM	6675	0	0	0	0	0	0	0	16-3584
+chrM	6676	0	0	0	0	0	0	0	16-3584
+chrM	6677	0	0	0	0	0	0	0	16-3584
+chrM	6678	0	0	0	0	0	0	0	16-3584
+chrM	6679	0	0	0	0	0	0	0	16-3584
+chrM	6680	0	0	0	0	0	0	0	16-3584
+chrM	6681	0	0	0	0	0	0	0	16-3584
+chrM	6682	0	0	0	0	0	0	0	16-3584
+chrM	6683	0	0	0	0	0	0	0	16-3584
+chrM	6684	0	0	0	0	0	0	0	16-3584
+chrM	6685	0	0	0	0	0	0	0	16-3584
+chrM	6686	0	0	0	0	0	0	0	16-3584
+chrM	6687	0	0	0	0	0	0	0	16-3584
+chrM	6688	0	0	0	0	0	0	0	16-3584
+chrM	6689	0	0	0	0	0	0	0	16-3584
+chrM	6690	0	0	0	0	0	0	0	16-3584
+chrM	6691	0	0	0	0	0	0	0	16-3584
+chrM	6692	0	0	0	0	0	0	0	16-3584
+chrM	6693	0	0	0	0	0	0	0	16-3584
+chrM	6694	0	0	0	0	0	0	0	16-3584
+chrM	6695	0	0	0	0	0	0	0	16-3584
+chrM	6696	0	0	0	0	0	0	0	16-3584
+chrM	6697	0	0	0	0	0	0	0	16-3584
+chrM	6698	0	0	0	0	0	0	0	16-3584
+chrM	6699	0	0	0	0	0	0	0	16-3584
+chrM	6700	0	0	0	0	0	0	0	16-3584
+chrM	6701	0	0	0	0	0	0	0	16-3584
+chrM	6702	0	0	0	0	0	0	0	16-3584
+chrM	6703	0	0	0	0	0	0	0	16-3584
+chrM	6704	0	0	0	0	0	0	0	16-3584
+chrM	6705	0	0	0	0	0	0	0	16-3584
+chrM	6706	0	0	0	0	0	0	0	16-3584
+chrM	6707	0	0	0	0	0	0	0	16-3584
+chrM	6708	0	0	0	0	0	0	0	16-3584
+chrM	6709	0	0	0	0	0	0	0	16-3584
+chrM	6710	0	0	0	0	0	0	0	16-3584
+chrM	6711	0	0	0	0	0	0	0	16-3584
+chrM	6712	0	0	0	0	0	0	0	16-3584
+chrM	6713	0	0	0	0	0	0	0	16-3584
+chrM	6714	0	0	0	0	0	0	0	16-3584
+chrM	6715	0	0	0	0	0	0	0	16-3584
+chrM	6716	0	0	0	0	0	0	0	16-3584
+chrM	6717	0	0	0	0	0	0	0	16-3584
+chrM	6718	0	0	0	0	0	0	0	16-3584
+chrM	6719	0	0	0	0	0	0	0	16-3584
+chrM	6720	0	0	0	0	0	0	0	16-3584
+chrM	6721	0	0	0	0	0	0	0	16-3584
+chrM	6722	0	0	0	0	0	0	0	16-3584
+chrM	6723	0	0	0	0	0	0	0	16-3584
+chrM	6724	0	0	0	0	0	0	0	16-3584
+chrM	6725	0	0	0	0	0	0	0	16-3584
+chrM	6726	0	0	0	0	0	0	0	16-3584
+chrM	6727	0	0	0	0	0	0	0	16-3584
+chrM	6728	0	0	0	0	0	0	0	16-3584
+chrM	6729	0	0	0	0	0	0	0	16-3584
+chrM	6730	0	0	0	0	0	0	0	16-3584
+chrM	6731	0	0	0	0	0	0	0	16-3584
+chrM	6732	0	0	0	0	0	0	0	16-3584
+chrM	6733	0	0	0	0	0	0	0	16-3584
+chrM	6734	0	0	0	0	0	0	0	16-3584
+chrM	6735	0	0	0	0	0	0	0	16-3584
+chrM	6736	0	0	0	0	0	0	0	16-3584
+chrM	6737	0	0	0	0	0	0	0	16-3584
+chrM	6738	0	0	0	0	0	0	0	16-3584
+chrM	6739	0	0	0	0	0	0	0	16-3584
+chrM	6740	0	0	0	0	0	0	0	16-3584
+chrM	6741	0	0	0	0	0	0	0	16-3584
+chrM	6742	0	0	0	0	0	0	0	16-3584
+chrM	6743	0	0	0	0	0	0	0	16-3584
+chrM	6744	0	0	0	0	0	0	0	16-3584
+chrM	6745	0	0	0	0	0	0	0	16-3584
+chrM	6746	0	0	0	0	0	0	0	16-3584
+chrM	6747	0	0	0	0	0	0	0	16-3584
+chrM	6748	0	0	0	0	0	0	0	16-3584
+chrM	6749	0	0	0	0	0	0	0	16-3584
+chrM	6750	0	0	0	0	0	0	0	16-3584
+chrM	6751	0	0	0	0	0	0	0	16-3584
+chrM	6752	0	0	0	0	0	0	0	16-3584
+chrM	6753	0	0	0	0	0	0	0	16-3584
+chrM	6754	0	0	0	0	0	0	0	16-3584
+chrM	6755	0	0	0	0	0	0	0	16-3584
+chrM	6756	0	0	0	0	0	0	0	16-3584
+chrM	6757	0	0	0	0	0	0	0	16-3584
+chrM	6758	0	0	0	0	0	0	0	16-3584
+chrM	6759	0	0	0	0	0	0	0	16-3584
+chrM	6760	0	0	0	0	0	0	0	16-3584
+chrM	6761	0	0	0	0	0	0	0	16-3584
+chrM	6762	0	0	0	0	0	0	0	16-3584
+chrM	6763	0	0	0	0	0	0	0	16-3584
+chrM	6764	0	0	0	0	0	0	0	16-3584
+chrM	6765	0	0	0	0	0	0	0	16-3584
+chrM	6766	0	0	0	0	0	0	0	16-3584
+chrM	6767	0	0	0	0	0	0	0	16-3584
+chrM	6768	0	0	0	0	0	0	0	16-3584
+chrM	6769	0	0	0	0	0	0	0	16-3584
+chrM	6770	0	0	0	0	0	0	0	16-3584
+chrM	6771	0	0	0	0	0	0	0	16-3584
+chrM	6772	0	0	0	0	0	0	0	16-3584
+chrM	6773	0	0	0	0	0	0	0	16-3584
+chrM	6774	0	0	0	0	0	0	0	16-3584
+chrM	6775	0	0	0	0	0	0	0	16-3584
+chrM	6776	0	0	0	0	0	0	0	16-3584
+chrM	6777	0	0	0	0	0	0	0	16-3584
+chrM	6778	0	0	0	0	0	0	0	16-3584
+chrM	6779	0	0	0	0	0	0	0	16-3584
+chrM	6780	0	0	0	0	0	0	0	16-3584
+chrM	6781	0	0	0	0	0	0	0	16-3584
+chrM	6782	0	0	0	0	0	0	0	16-3584
+chrM	6783	0	0	0	0	0	0	0	16-3584
+chrM	6784	0	0	0	0	0	0	0	16-3584
+chrM	6785	0	0	0	0	0	0	0	16-3584
+chrM	6786	0	0	0	0	0	0	0	16-3584
+chrM	6787	0	0	0	0	0	0	0	16-3584
+chrM	6788	0	0	0	0	0	0	0	16-3584
+chrM	6789	0	0	0	0	0	0	0	16-3584
+chrM	6790	0	0	0	0	0	0	0	16-3584
+chrM	6791	0	0	0	0	0	0	0	16-3584
+chrM	6792	0	0	0	0	0	0	0	16-3584
+chrM	6793	0	0	0	0	0	0	0	16-3584
+chrM	6794	0	0	0	0	0	0	0	16-3584
+chrM	6795	0	0	0	0	0	0	0	16-3584
+chrM	6796	0	0	0	0	0	0	0	16-3584
+chrM	6797	0	0	0	0	0	0	0	16-3584
+chrM	6798	0	0	0	0	0	0	0	16-3584
+chrM	6799	0	0	0	0	0	0	0	16-3584
+chrM	6800	0	0	0	0	0	0	0	16-3584
+chrM	6801	0	0	0	0	0	0	0	16-3584
+chrM	6802	0	0	0	0	0	0	0	16-3584
+chrM	6803	0	0	0	0	0	0	0	16-3584
+chrM	6804	0	0	0	0	0	0	0	16-3584
+chrM	6805	0	0	0	0	0	0	0	16-3584
+chrM	6806	0	0	0	0	0	0	0	16-3584
+chrM	6807	0	0	0	0	0	0	0	16-3584
+chrM	6808	0	0	0	0	0	0	0	16-3584
+chrM	6809	0	0	0	0	0	0	0	16-3584
+chrM	6810	0	0	0	0	0	0	0	16-3584
+chrM	6811	0	0	0	0	0	0	0	16-3584
+chrM	6812	0	0	0	0	0	0	0	16-3584
+chrM	6813	0	0	0	0	0	0	0	16-3584
+chrM	6814	0	0	0	0	0	0	0	16-3584
+chrM	6815	0	0	0	0	0	0	0	16-3584
+chrM	6816	0	0	0	0	0	0	0	16-3584
+chrM	6817	0	0	0	0	0	0	0	16-3584
+chrM	6818	0	0	0	0	0	0	0	16-3584
+chrM	6819	0	0	0	0	0	0	0	16-3584
+chrM	6820	0	0	0	0	0	0	0	16-3584
+chrM	6821	0	0	0	0	0	0	0	16-3584
+chrM	6822	0	0	0	0	0	0	0	16-3584
+chrM	6823	0	0	0	0	0	0	0	16-3584
+chrM	6824	0	0	0	0	0	0	0	16-3584
+chrM	6825	0	0	0	0	0	0	0	16-3584
+chrM	6826	0	0	0	0	0	0	0	16-3584
+chrM	6827	0	0	0	0	0	0	0	16-3584
+chrM	6828	0	0	0	0	0	0	0	16-3584
+chrM	6829	0	0	0	0	0	0	0	16-3584
+chrM	6830	0	0	0	0	0	0	0	16-3584
+chrM	6831	0	0	0	0	0	0	0	16-3584
+chrM	6832	0	0	0	0	0	0	0	16-3584
+chrM	6833	0	0	0	0	0	0	0	16-3584
+chrM	6834	0	0	0	0	0	0	0	16-3584
+chrM	6835	0	0	0	0	0	0	0	16-3584
+chrM	6836	0	0	0	0	0	0	0	16-3584
+chrM	6837	0	0	0	0	0	0	0	16-3584
+chrM	6838	0	0	0	0	0	0	0	16-3584
+chrM	6839	0	0	0	0	0	0	0	16-3584
+chrM	6840	0	0	0	0	0	0	0	16-3584
+chrM	6841	0	0	0	0	0	0	0	16-3584
+chrM	6842	0	0	0	0	0	0	0	16-3584
+chrM	6843	0	0	0	0	0	0	0	16-3584
+chrM	6844	0	0	0	0	0	0	0	16-3584
+chrM	6845	0	0	0	0	0	0	0	16-3584
+chrM	6846	0	0	0	0	0	0	0	16-3584
+chrM	6847	0	0	0	0	0	0	0	16-3584
+chrM	6848	0	0	0	0	0	0	0	16-3584
+chrM	6849	0	0	0	0	0	0	0	16-3584
+chrM	6850	0	0	0	0	0	0	0	16-3584
+chrM	6851	0	0	0	0	0	0	0	16-3584
+chrM	6852	0	0	0	0	0	0	0	16-3584
+chrM	6853	0	0	0	0	0	0	0	16-3584
+chrM	6854	0	0	0	0	0	0	0	16-3584
+chrM	6855	0	0	0	0	0	0	0	16-3584
+chrM	6856	0	0	0	0	0	0	0	16-3584
+chrM	6857	0	0	0	0	0	0	0	16-3584
+chrM	6858	0	0	0	0	0	0	0	16-3584
+chrM	6859	0	0	0	0	0	0	0	16-3584
+chrM	6860	0	0	0	0	0	0	0	16-3584
+chrM	6861	0	0	0	0	0	0	0	16-3584
+chrM	6862	0	0	0	0	0	0	0	16-3584
+chrM	6863	0	0	0	0	0	0	0	16-3584
+chrM	6864	0	0	0	0	0	0	0	16-3584
+chrM	6865	0	0	0	0	0	0	0	16-3584
+chrM	6866	0	0	0	0	0	0	0	16-3584
+chrM	6867	0	0	0	0	0	0	0	16-3584
+chrM	6868	0	0	0	0	0	0	0	16-3584
+chrM	6869	0	0	0	0	0	0	0	16-3584
+chrM	6870	0	0	0	0	0	0	0	16-3584
+chrM	6871	0	0	0	0	0	0	0	16-3584
+chrM	6872	0	0	0	0	0	0	0	16-3584
+chrM	6873	0	0	0	0	0	0	0	16-3584
+chrM	6874	0	0	0	0	0	0	0	16-3584
+chrM	6875	0	0	0	0	0	0	0	16-3584
+chrM	6876	0	0	0	0	0	0	0	16-3584
+chrM	6877	0	0	0	0	0	0	0	16-3584
+chrM	6878	0	0	0	0	0	0	0	16-3584
+chrM	6879	0	0	0	0	0	0	0	16-3584
+chrM	6880	0	0	0	0	0	0	0	16-3584
+chrM	6881	0	0	0	0	0	0	0	16-3584
+chrM	6882	0	0	0	0	0	0	0	16-3584
+chrM	6883	0	0	0	0	0	0	0	16-3584
+chrM	6884	0	0	0	0	0	0	0	16-3584
+chrM	6885	0	0	0	0	0	0	0	16-3584
+chrM	6886	0	0	0	0	0	0	0	16-3584
+chrM	6887	0	0	0	0	0	0	0	16-3584
+chrM	6888	0	0	0	0	0	0	0	16-3584
+chrM	6889	0	0	0	0	0	0	0	16-3584
+chrM	6890	0	0	0	0	0	0	0	16-3584
+chrM	6891	0	0	0	0	0	0	0	16-3584
+chrM	6892	0	0	0	0	0	0	0	16-3584
+chrM	6893	0	0	0	0	0	0	0	16-3584
+chrM	6894	0	0	0	0	0	0	0	16-3584
+chrM	6895	0	0	0	0	0	0	0	16-3584
+chrM	6896	0	0	0	0	0	0	0	16-3584
+chrM	6897	0	0	0	0	0	0	0	16-3584
+chrM	6898	0	0	0	0	0	0	0	16-3584
+chrM	6899	0	0	0	0	0	0	0	16-3584
+chrM	6900	0	0	0	0	0	0	0	16-3584
+chrM	6901	0	0	0	0	0	0	0	16-3584
+chrM	6902	0	0	0	0	0	0	0	16-3584
+chrM	6903	0	0	0	0	0	0	0	16-3584
+chrM	6904	0	0	0	0	0	0	0	16-3584
+chrM	6905	0	0	0	0	0	0	0	16-3584
+chrM	6906	0	0	0	0	0	0	0	16-3584
+chrM	6907	0	0	0	0	0	0	0	16-3584
+chrM	6908	0	0	0	0	0	0	0	16-3584
+chrM	6909	0	0	0	0	0	0	0	16-3584
+chrM	6910	0	0	0	0	0	0	0	16-3584
+chrM	6911	0	0	0	0	0	0	0	16-3584
+chrM	6912	0	0	0	0	0	0	0	16-3584
+chrM	6913	0	0	0	0	0	0	0	16-3584
+chrM	6914	0	0	0	0	0	0	0	16-3584
+chrM	6915	0	0	0	0	0	0	0	16-3584
+chrM	6916	0	0	0	0	0	0	0	16-3584
+chrM	6917	0	0	0	0	0	0	0	16-3584
+chrM	6918	0	0	0	0	0	0	0	16-3584
+chrM	6919	0	0	0	0	0	0	0	16-3584
+chrM	6920	0	0	0	0	0	0	0	16-3584
+chrM	6921	0	0	0	0	0	0	0	16-3584
+chrM	6922	0	0	0	0	0	0	0	16-3584
+chrM	6923	0	0	0	0	0	0	0	16-3584
+chrM	6924	0	0	0	0	0	0	0	16-3584
+chrM	6925	0	0	0	0	0	0	0	16-3584
+chrM	6926	0	0	0	0	0	0	0	16-3584
+chrM	6927	0	0	0	0	0	0	0	16-3584
+chrM	6928	0	0	0	0	0	0	0	16-3584
+chrM	6929	0	0	0	0	0	0	0	16-3584
+chrM	6930	0	0	0	0	0	0	0	16-3584
+chrM	6931	0	0	0	0	0	0	0	16-3584
+chrM	6932	0	0	0	0	0	0	0	16-3584
+chrM	6933	0	0	0	0	0	0	0	16-3584
+chrM	6934	0	0	0	0	0	0	0	16-3584
+chrM	6935	0	0	0	0	0	0	0	16-3584
+chrM	6936	0	0	0	0	0	0	0	16-3584
+chrM	6937	0	0	0	0	0	0	0	16-3584
+chrM	6938	0	0	0	0	0	0	0	16-3584
+chrM	6939	0	0	0	0	0	0	0	16-3584
+chrM	6940	0	0	0	0	0	0	0	16-3584
+chrM	6941	0	0	0	0	0	0	0	16-3584
+chrM	6942	0	0	0	0	0	0	0	16-3584
+chrM	6943	0	0	0	0	0	0	0	16-3584
+chrM	6944	0	0	0	0	0	0	0	16-3584
+chrM	6945	0	0	0	0	0	0	0	16-3584
+chrM	6946	0	0	0	0	0	0	0	16-3584
+chrM	6947	0	0	0	0	0	0	0	16-3584
+chrM	6948	0	0	0	0	0	0	0	16-3584
+chrM	6949	0	0	0	0	0	0	0	16-3584
+chrM	6950	0	0	0	0	0	0	0	16-3584
+chrM	6951	0	0	0	0	0	0	0	16-3584
+chrM	6952	0	0	0	0	0	0	0	16-3584
+chrM	6953	0	0	0	0	0	0	0	16-3584
+chrM	6954	0	0	0	0	0	0	0	16-3584
+chrM	6955	0	0	0	0	0	0	0	16-3584
+chrM	6956	0	0	0	0	0	0	0	16-3584
+chrM	6957	0	0	0	0	0	0	0	16-3584
+chrM	6958	0	0	0	0	0	0	0	16-3584
+chrM	6959	0	0	0	0	0	0	0	16-3584
+chrM	6960	0	0	0	0	0	0	0	16-3584
+chrM	6961	0	0	0	0	0	0	0	16-3584
+chrM	6962	0	0	0	0	0	0	0	16-3584
+chrM	6963	0	0	0	0	0	0	0	16-3584
+chrM	6964	0	0	0	0	0	0	0	16-3584
+chrM	6965	0	0	0	0	0	0	0	16-3584
+chrM	6966	0	0	0	0	0	0	0	16-3584
+chrM	6967	0	0	0	0	0	0	0	16-3584
+chrM	6968	0	0	0	0	0	0	0	16-3584
+chrM	6969	0	0	0	0	0	0	0	16-3584
+chrM	6970	0	0	0	0	0	0	0	16-3584
+chrM	6971	0	0	0	0	0	0	0	16-3584
+chrM	6972	0	0	0	0	0	0	0	16-3584
+chrM	6973	0	0	0	0	0	0	0	16-3584
+chrM	6974	0	0	0	0	0	0	0	16-3584
+chrM	6975	0	0	0	0	0	0	0	16-3584
+chrM	6976	0	0	0	0	0	0	0	16-3584
+chrM	6977	0	0	0	0	0	0	0	16-3584
+chrM	6978	0	0	0	0	0	0	0	16-3584
+chrM	6979	0	0	0	0	0	0	0	16-3584
+chrM	6980	0	0	0	0	0	0	0	16-3584
+chrM	6981	0	0	0	0	0	0	0	16-3584
+chrM	6982	0	0	0	0	0	0	0	16-3584
+chrM	6983	0	0	0	0	0	0	0	16-3584
+chrM	6984	0	0	0	0	0	0	0	16-3584
+chrM	6985	0	0	0	0	0	0	0	16-3584
+chrM	6986	0	0	0	0	0	0	0	16-3584
+chrM	6987	0	0	0	0	0	0	0	16-3584
+chrM	6988	0	0	0	0	0	0	0	16-3584
+chrM	6989	0	0	0	0	0	0	0	16-3584
+chrM	6990	0	0	0	0	0	0	0	16-3584
+chrM	6991	0	0	0	0	0	0	0	16-3584
+chrM	6992	0	0	0	0	0	0	0	16-3584
+chrM	6993	0	0	0	0	0	0	0	16-3584
+chrM	6994	0	0	0	0	0	0	0	16-3584
+chrM	6995	0	0	0	0	0	0	0	16-3584
+chrM	6996	0	0	0	0	0	0	0	16-3584
+chrM	6997	0	0	0	0	0	0	0	16-3584
+chrM	6998	0	0	0	0	0	0	0	16-3584
+chrM	6999	0	0	0	0	0	0	0	16-3584
+chrM	7000	0	0	0	0	0	0	0	16-3584
+chrM	7001	0	0	0	0	0	0	0	16-3584
+chrM	7002	0	0	0	0	0	0	0	16-3584
+chrM	7003	0	0	0	0	0	0	0	16-3584
+chrM	7004	0	0	0	0	0	0	0	16-3584
+chrM	7005	0	0	0	0	0	0	0	16-3584
+chrM	7006	0	0	0	0	0	0	0	16-3584
+chrM	7007	0	0	0	0	0	0	0	16-3584
+chrM	7008	0	0	0	0	0	0	0	16-3584
+chrM	7009	0	0	0	0	0	0	0	16-3584
+chrM	7010	0	0	0	0	0	0	0	16-3584
+chrM	7011	0	0	0	0	0	0	0	16-3584
+chrM	7012	0	0	0	0	0	0	0	16-3584
+chrM	7013	0	0	0	0	0	0	0	16-3584
+chrM	7014	0	0	0	0	0	0	0	16-3584
+chrM	7015	0	0	0	0	0	0	0	16-3584
+chrM	7016	0	0	0	0	0	0	0	16-3584
+chrM	7017	0	0	0	0	0	0	0	16-3584
+chrM	7018	0	0	0	0	0	0	0	16-3584
+chrM	7019	0	0	0	0	0	0	0	16-3584
+chrM	7020	0	0	0	0	0	0	0	16-3584
+chrM	7021	0	0	0	0	0	0	0	16-3584
+chrM	7022	0	0	0	0	0	0	0	16-3584
+chrM	7023	0	0	0	0	0	0	0	16-3584
+chrM	7024	0	0	0	0	0	0	0	16-3584
+chrM	7025	0	0	0	0	0	0	0	16-3584
+chrM	7026	0	0	0	0	0	0	0	16-3584
+chrM	7027	0	0	0	0	0	0	0	16-3584
+chrM	7028	0	0	0	0	0	0	0	16-3584
+chrM	7029	0	0	0	0	0	0	0	16-3584
+chrM	7030	0	0	0	0	0	0	0	16-3584
+chrM	7031	0	0	0	0	0	0	0	16-3584
+chrM	7032	0	0	0	0	0	0	0	16-3584
+chrM	7033	0	0	0	0	0	0	0	16-3584
+chrM	7034	0	0	0	0	0	0	0	16-3584
+chrM	7035	0	0	0	0	0	0	0	16-3584
+chrM	7036	0	0	0	0	0	0	0	16-3584
+chrM	7037	0	0	0	0	0	0	0	16-3584
+chrM	7038	0	0	0	0	0	0	0	16-3584
+chrM	7039	0	0	0	0	0	0	0	16-3584
+chrM	7040	0	0	0	0	0	0	0	16-3584
+chrM	7041	0	0	0	0	0	0	0	16-3584
+chrM	7042	0	0	0	0	0	0	0	16-3584
+chrM	7043	0	0	0	0	0	0	0	16-3584
+chrM	7044	0	0	0	0	0	0	0	16-3584
+chrM	7045	0	0	0	0	0	0	0	16-3584
+chrM	7046	0	0	0	0	0	0	0	16-3584
+chrM	7047	0	0	0	0	0	0	0	16-3584
+chrM	7048	0	0	0	0	0	0	0	16-3584
+chrM	7049	0	0	0	0	0	0	0	16-3584
+chrM	7050	0	0	0	0	0	0	0	16-3584
+chrM	7051	0	0	0	0	0	0	0	16-3584
+chrM	7052	0	0	0	0	0	0	0	16-3584
+chrM	7053	0	0	0	0	0	0	0	16-3584
+chrM	7054	0	0	0	0	0	0	0	16-3584
+chrM	7055	0	0	0	0	0	0	0	16-3584
+chrM	7056	0	0	0	0	0	0	0	16-3584
+chrM	7057	0	0	0	0	0	0	0	16-3584
+chrM	7058	0	0	0	0	0	0	0	16-3584
+chrM	7059	0	0	0	0	0	0	0	16-3584
+chrM	7060	0	0	0	0	0	0	0	16-3584
+chrM	7061	0	0	0	0	0	0	0	16-3584
+chrM	7062	0	0	0	0	0	0	0	16-3584
+chrM	7063	0	0	0	0	0	0	0	16-3584
+chrM	7064	0	0	0	0	0	0	0	16-3584
+chrM	7065	0	0	0	0	0	0	0	16-3584
+chrM	7066	0	0	0	0	0	0	0	16-3584
+chrM	7067	0	0	0	0	0	0	0	16-3584
+chrM	7068	0	0	0	0	0	0	0	16-3584
+chrM	7069	0	0	0	0	0	0	0	16-3584
+chrM	7070	0	0	0	0	0	0	0	16-3584
+chrM	7071	0	0	0	0	0	0	0	16-3584
+chrM	7072	0	0	0	0	0	0	0	16-3584
+chrM	7073	0	0	0	0	0	0	0	16-3584
+chrM	7074	0	0	0	0	0	0	0	16-3584
+chrM	7075	0	0	0	0	0	0	0	16-3584
+chrM	7076	0	0	0	0	0	0	0	16-3584
+chrM	7077	0	0	0	0	0	0	0	16-3584
+chrM	7078	0	0	0	0	0	0	0	16-3584
+chrM	7079	0	0	0	0	0	0	0	16-3584
+chrM	7080	0	0	0	0	0	0	0	16-3584
+chrM	7081	0	0	0	0	0	0	0	16-3584
+chrM	7082	0	0	0	0	0	0	0	16-3584
+chrM	7083	0	0	0	0	0	0	0	16-3584
+chrM	7084	0	0	0	0	0	0	0	16-3584
+chrM	7085	0	0	0	0	0	0	0	16-3584
+chrM	7086	0	0	0	0	0	0	0	16-3584
+chrM	7087	0	0	0	0	0	0	0	16-3584
+chrM	7088	0	0	0	0	0	0	0	16-3584
+chrM	7089	0	0	0	0	0	0	0	16-3584
+chrM	7090	0	0	0	0	0	0	0	16-3584
+chrM	7091	0	0	0	0	0	0	0	16-3584
+chrM	7092	0	0	0	0	0	0	0	16-3584
+chrM	7093	0	0	0	0	0	0	0	16-3584
+chrM	7094	0	0	0	0	0	0	0	16-3584
+chrM	7095	0	0	0	0	0	0	0	16-3584
+chrM	7096	0	0	0	0	0	0	0	16-3584
+chrM	7097	0	0	0	0	0	0	0	16-3584
+chrM	7098	0	0	0	0	0	0	0	16-3584
+chrM	7099	0	0	0	0	0	0	0	16-3584
+chrM	7100	0	0	0	0	0	0	0	16-3584
+chrM	7101	0	0	0	0	0	0	0	16-3584
+chrM	7102	0	0	0	0	0	0	0	16-3584
+chrM	7103	0	0	0	0	0	0	0	16-3584
+chrM	7104	0	0	0	0	0	0	0	16-3584
+chrM	7105	0	0	0	0	0	0	0	16-3584
+chrM	7106	0	0	0	0	0	0	0	16-3584
+chrM	7107	0	0	0	0	0	0	0	16-3584
+chrM	7108	0	0	0	0	0	0	0	16-3584
+chrM	7109	0	0	0	0	0	0	0	16-3584
+chrM	7110	0	0	0	0	0	0	0	16-3584
+chrM	7111	0	0	0	0	0	0	0	16-3584
+chrM	7112	0	0	0	0	0	0	0	16-3584
+chrM	7113	0	0	0	0	0	0	0	16-3584
+chrM	7114	0	0	0	0	0	0	0	16-3584
+chrM	7115	0	0	0	0	0	0	0	16-3584
+chrM	7116	0	0	0	0	0	0	0	16-3584
+chrM	7117	0	0	0	0	0	0	0	16-3584
+chrM	7118	0	0	0	0	0	0	0	16-3584
+chrM	7119	0	0	0	0	0	0	0	16-3584
+chrM	7120	0	0	0	0	0	0	0	16-3584
+chrM	7121	0	0	0	0	0	0	0	16-3584
+chrM	7122	0	0	0	0	0	0	0	16-3584
+chrM	7123	0	0	0	0	0	0	0	16-3584
+chrM	7124	0	0	0	0	0	0	0	16-3584
+chrM	7125	0	0	0	0	0	0	0	16-3584
+chrM	7126	0	0	0	0	0	0	0	16-3584
+chrM	7127	0	0	0	0	0	0	0	16-3584
+chrM	7128	0	0	0	0	0	0	0	16-3584
+chrM	7129	0	0	0	0	0	0	0	16-3584
+chrM	7130	0	0	0	0	0	0	0	16-3584
+chrM	7131	0	0	0	0	0	0	0	16-3584
+chrM	7132	0	0	0	0	0	0	0	16-3584
+chrM	7133	0	0	0	0	0	0	0	16-3584
+chrM	7134	0	0	0	0	0	0	0	16-3584
+chrM	7135	0	0	0	0	0	0	0	16-3584
+chrM	7136	0	0	0	0	0	0	0	16-3584
+chrM	7137	0	0	0	0	0	0	0	16-3584
+chrM	7138	0	0	0	0	0	0	0	16-3584
+chrM	7139	0	0	0	0	0	0	0	16-3584
+chrM	7140	0	0	0	0	0	0	0	16-3584
+chrM	7141	0	0	0	0	0	0	0	16-3584
+chrM	7142	0	0	0	0	0	0	0	16-3584
+chrM	7143	0	0	0	0	0	0	0	16-3584
+chrM	7144	0	0	0	0	0	0	0	16-3584
+chrM	7145	0	0	0	0	0	0	0	16-3584
+chrM	7146	0	0	0	0	0	0	0	16-3584
+chrM	7147	0	0	0	0	0	0	0	16-3584
+chrM	7148	0	0	0	0	0	0	0	16-3584
+chrM	7149	0	0	0	0	0	0	0	16-3584
+chrM	7150	0	0	0	0	0	0	0	16-3584
+chrM	7151	0	0	0	0	0	0	0	16-3584
+chrM	7152	0	0	0	0	0	0	0	16-3584
+chrM	7153	0	0	0	0	0	0	0	16-3584
+chrM	7154	0	0	0	0	0	0	0	16-3584
+chrM	7155	0	0	0	0	0	0	0	16-3584
+chrM	7156	0	0	0	0	0	0	0	16-3584
+chrM	7157	0	0	0	0	0	0	0	16-3584
+chrM	7158	0	0	0	0	0	0	0	16-3584
+chrM	7159	0	0	0	0	0	0	0	16-3584
+chrM	7160	0	0	0	0	0	0	0	16-3584
+chrM	7161	0	0	0	0	0	0	0	16-3584
+chrM	7162	0	0	0	0	0	0	0	16-3584
+chrM	7163	0	0	0	0	0	0	0	16-3584
+chrM	7164	0	0	0	0	0	0	0	16-3584
+chrM	7165	0	0	0	0	0	0	0	16-3584
+chrM	7166	0	0	0	0	0	0	0	16-3584
+chrM	7167	0	0	0	0	0	0	0	16-3584
+chrM	7168	0	0	0	0	0	0	0	16-3584
+chrM	7169	0	0	0	0	0	0	0	16-3584
+chrM	7170	0	0	0	0	0	0	0	16-3584
+chrM	7171	0	0	0	0	0	0	0	16-3584
+chrM	7172	0	0	0	0	0	0	0	16-3584
+chrM	7173	0	0	0	0	0	0	0	16-3584
+chrM	7174	0	0	0	0	0	0	0	16-3584
+chrM	7175	0	0	0	0	0	0	0	16-3584
+chrM	7176	0	0	0	0	0	0	0	16-3584
+chrM	7177	0	0	0	0	0	0	0	16-3584
+chrM	7178	0	0	0	0	0	0	0	16-3584
+chrM	7179	0	0	0	0	0	0	0	16-3584
+chrM	7180	0	0	0	0	0	0	0	16-3584
+chrM	7181	0	0	0	0	0	0	0	16-3584
+chrM	7182	0	0	0	0	0	0	0	16-3584
+chrM	7183	0	0	0	0	0	0	0	16-3584
+chrM	7184	0	0	0	0	0	0	0	16-3584
+chrM	7185	0	0	0	0	0	0	0	16-3584
+chrM	7186	0	0	0	0	0	0	0	16-3584
+chrM	7187	0	0	0	0	0	0	0	16-3584
+chrM	7188	0	0	0	0	0	0	0	16-3584
+chrM	7189	0	0	0	0	0	0	0	16-3584
+chrM	7190	0	0	0	0	0	0	0	16-3584
+chrM	7191	0	0	0	0	0	0	0	16-3584
+chrM	7192	0	0	0	0	0	0	0	16-3584
+chrM	7193	0	0	0	0	0	0	0	16-3584
+chrM	7194	0	0	0	0	0	0	0	16-3584
+chrM	7195	0	0	0	0	0	0	0	16-3584
+chrM	7196	0	0	0	0	0	0	0	16-3584
+chrM	7197	0	0	0	0	0	0	0	16-3584
+chrM	7198	0	0	0	0	0	0	0	16-3584
+chrM	7199	0	0	0	0	0	0	0	16-3584
+chrM	7200	0	0	0	0	0	0	0	16-3584
+chrM	7201	0	0	0	0	0	0	0	16-3584
+chrM	7202	0	0	0	0	0	0	0	16-3584
+chrM	7203	0	0	0	0	0	0	0	16-3584
+chrM	7204	0	0	0	0	0	0	0	16-3584
+chrM	7205	0	0	0	0	0	0	0	16-3584
+chrM	7206	0	0	0	0	0	0	0	16-3584
+chrM	7207	0	0	0	0	0	0	0	16-3584
+chrM	7208	0	0	0	0	0	0	0	16-3584
+chrM	7209	0	0	0	0	0	0	0	16-3584
+chrM	7210	0	0	0	0	0	0	0	16-3584
+chrM	7211	0	0	0	0	0	0	0	16-3584
+chrM	7212	0	0	0	0	0	0	0	16-3584
+chrM	7213	0	0	0	0	0	0	0	16-3584
+chrM	7214	0	0	0	0	0	0	0	16-3584
+chrM	7215	0	0	0	0	0	0	0	16-3584
+chrM	7216	0	0	0	0	0	0	0	16-3584
+chrM	7217	0	0	0	0	0	0	0	16-3584
+chrM	7218	0	0	0	0	0	0	0	16-3584
+chrM	7219	0	0	0	0	0	0	0	16-3584
+chrM	7220	0	0	0	0	0	0	0	16-3584
+chrM	7221	0	0	0	0	0	0	0	16-3584
+chrM	7222	0	0	0	0	0	0	0	16-3584
+chrM	7223	0	0	0	0	0	0	0	16-3584
+chrM	7224	0	0	0	0	0	0	0	16-3584
+chrM	7225	0	0	0	0	0	0	0	16-3584
+chrM	7226	0	0	0	0	0	0	0	16-3584
+chrM	7227	0	0	0	0	0	0	0	16-3584
+chrM	7228	0	0	0	0	0	0	0	16-3584
+chrM	7229	0	0	0	0	0	0	0	16-3584
+chrM	7230	0	0	0	0	0	0	0	16-3584
+chrM	7231	0	0	0	0	0	0	0	16-3584
+chrM	7232	0	0	0	0	0	0	0	16-3584
+chrM	7233	0	0	0	0	0	0	0	16-3584
+chrM	7234	0	0	0	0	0	0	0	16-3584
+chrM	7235	0	0	0	0	0	0	0	16-3584
+chrM	7236	0	0	0	0	0	0	0	16-3584
+chrM	7237	0	0	0	0	0	0	0	16-3584
+chrM	7238	0	0	0	0	0	0	0	16-3584
+chrM	7239	0	0	0	0	0	0	0	16-3584
+chrM	7240	0	0	0	0	0	0	0	16-3584
+chrM	7241	0	0	0	0	0	0	0	16-3584
+chrM	7242	0	0	0	0	0	0	0	16-3584
+chrM	7243	0	0	0	0	0	0	0	16-3584
+chrM	7244	0	0	0	0	0	0	0	16-3584
+chrM	7245	0	0	0	0	0	0	0	16-3584
+chrM	7246	0	0	0	0	0	0	0	16-3584
+chrM	7247	0	0	0	0	0	0	0	16-3584
+chrM	7248	0	0	0	0	0	0	0	16-3584
+chrM	7249	0	0	0	0	0	0	0	16-3584
+chrM	7250	0	0	0	0	0	0	0	16-3584
+chrM	7251	0	0	0	0	0	0	0	16-3584
+chrM	7252	0	0	0	0	0	0	0	16-3584
+chrM	7253	0	0	0	0	0	0	0	16-3584
+chrM	7254	0	0	0	0	0	0	0	16-3584
+chrM	7255	0	0	0	0	0	0	0	16-3584
+chrM	7256	0	0	0	0	0	0	0	16-3584
+chrM	7257	0	0	0	0	0	0	0	16-3584
+chrM	7258	0	0	0	0	0	0	0	16-3584
+chrM	7259	0	0	0	0	0	0	0	16-3584
+chrM	7260	0	0	0	0	0	0	0	16-3584
+chrM	7261	0	0	0	0	0	0	0	16-3584
+chrM	7262	0	0	0	0	0	0	0	16-3584
+chrM	7263	0	0	0	0	0	0	0	16-3584
+chrM	7264	0	0	0	0	0	0	0	16-3584
+chrM	7265	0	0	0	0	0	0	0	16-3584
+chrM	7266	0	0	0	0	0	0	0	16-3584
+chrM	7267	0	0	0	0	0	0	0	16-3584
+chrM	7268	0	0	0	0	0	0	0	16-3584
+chrM	7269	0	0	0	0	0	0	0	16-3584
+chrM	7270	0	0	0	0	0	0	0	16-3584
+chrM	7271	0	0	0	0	0	0	0	16-3584
+chrM	7272	0	0	0	0	0	0	0	16-3584
+chrM	7273	0	0	0	0	0	0	0	16-3584
+chrM	7274	0	0	0	0	0	0	0	16-3584
+chrM	7275	0	0	0	0	0	0	0	16-3584
+chrM	7276	0	0	0	0	0	0	0	16-3584
+chrM	7277	0	0	0	0	0	0	0	16-3584
+chrM	7278	0	0	0	0	0	0	0	16-3584
+chrM	7279	0	0	0	0	0	0	0	16-3584
+chrM	7280	0	0	0	0	0	0	0	16-3584
+chrM	7281	0	0	0	0	0	0	0	16-3584
+chrM	7282	0	0	0	0	0	0	0	16-3584
+chrM	7283	0	0	0	0	0	0	0	16-3584
+chrM	7284	0	0	0	0	0	0	0	16-3584
+chrM	7285	0	0	0	0	0	0	0	16-3584
+chrM	7286	0	0	0	0	0	0	0	16-3584
+chrM	7287	0	0	0	0	0	0	0	16-3584
+chrM	7288	0	0	0	0	0	0	0	16-3584
+chrM	7289	0	0	0	0	0	0	0	16-3584
+chrM	7290	0	0	0	0	0	0	0	16-3584
+chrM	7291	0	0	0	0	0	0	0	16-3584
+chrM	7292	0	0	0	0	0	0	0	16-3584
+chrM	7293	0	0	0	0	0	0	0	16-3584
+chrM	7294	0	0	0	0	0	0	0	16-3584
+chrM	7295	0	0	0	0	0	0	0	16-3584
+chrM	7296	0	0	0	0	0	0	0	16-3584
+chrM	7297	0	0	0	0	0	0	0	16-3584
+chrM	7298	0	0	0	0	0	0	0	16-3584
+chrM	7299	0	0	0	0	0	0	0	16-3584
+chrM	7300	0	0	0	0	0	0	0	16-3584
+chrM	7301	0	0	0	0	0	0	0	16-3584
+chrM	7302	0	0	0	0	0	0	0	16-3584
+chrM	7303	0	0	0	0	0	0	0	16-3584
+chrM	7304	0	0	0	0	0	0	0	16-3584
+chrM	7305	0	0	0	0	0	0	0	16-3584
+chrM	7306	0	0	0	0	0	0	0	16-3584
+chrM	7307	0	0	0	0	0	0	0	16-3584
+chrM	7308	0	0	0	0	0	0	0	16-3584
+chrM	7309	0	0	0	0	0	0	0	16-3584
+chrM	7310	0	0	0	0	0	0	0	16-3584
+chrM	7311	0	0	0	0	0	0	0	16-3584
+chrM	7312	0	0	0	0	0	0	0	16-3584
+chrM	7313	0	0	0	0	0	0	0	16-3584
+chrM	7314	0	0	0	0	0	0	0	16-3584
+chrM	7315	0	0	0	0	0	0	0	16-3584
+chrM	7316	0	0	0	0	0	0	0	16-3584
+chrM	7317	0	0	0	0	0	0	0	16-3584
+chrM	7318	0	0	0	0	0	0	0	16-3584
+chrM	7319	0	0	0	0	0	0	0	16-3584
+chrM	7320	0	0	0	0	0	0	0	16-3584
+chrM	7321	0	0	0	0	0	0	0	16-3584
+chrM	7322	0	0	0	0	0	0	0	16-3584
+chrM	7323	0	0	0	0	0	0	0	16-3584
+chrM	7324	0	0	0	0	0	0	0	16-3584
+chrM	7325	0	0	0	0	0	0	0	16-3584
+chrM	7326	0	0	0	0	0	0	0	16-3584
+chrM	7327	0	0	0	0	0	0	0	16-3584
+chrM	7328	0	0	0	0	0	0	0	16-3584
+chrM	7329	0	0	0	0	0	0	0	16-3584
+chrM	7330	0	0	0	0	0	0	0	16-3584
+chrM	7331	0	0	0	0	0	0	0	16-3584
+chrM	7332	0	0	0	0	0	0	0	16-3584
+chrM	7333	0	0	0	0	0	0	0	16-3584
+chrM	7334	0	0	0	0	0	0	0	16-3584
+chrM	7335	0	0	0	0	0	0	0	16-3584
+chrM	7336	0	0	0	0	0	0	0	16-3584
+chrM	7337	0	0	0	0	0	0	0	16-3584
+chrM	7338	0	0	0	0	0	0	0	16-3584
+chrM	7339	0	0	0	0	0	0	0	16-3584
+chrM	7340	0	0	0	0	0	0	0	16-3584
+chrM	7341	0	0	0	0	0	0	0	16-3584
+chrM	7342	0	0	0	0	0	0	0	16-3584
+chrM	7343	0	0	0	0	0	0	0	16-3584
+chrM	7344	0	0	0	0	0	0	0	16-3584
+chrM	7345	0	0	0	0	0	0	0	16-3584
+chrM	7346	0	0	0	0	0	0	0	16-3584
+chrM	7347	0	0	0	0	0	0	0	16-3584
+chrM	7348	0	0	0	0	0	0	0	16-3584
+chrM	7349	0	0	0	0	0	0	0	16-3584
+chrM	7350	0	0	0	0	0	0	0	16-3584
+chrM	7351	0	0	0	0	0	0	0	16-3584
+chrM	7352	0	0	0	0	0	0	0	16-3584
+chrM	7353	0	0	0	0	0	0	0	16-3584
+chrM	7354	0	0	0	0	0	0	0	16-3584
+chrM	7355	0	0	0	0	0	0	0	16-3584
+chrM	7356	0	0	0	0	0	0	0	16-3584
+chrM	7357	0	0	0	0	0	0	0	16-3584
+chrM	7358	0	0	0	0	0	0	0	16-3584
+chrM	7359	0	0	0	0	0	0	0	16-3584
+chrM	7360	0	0	0	0	0	0	0	16-3584
+chrM	7361	0	0	0	0	0	0	0	16-3584
+chrM	7362	0	0	0	0	0	0	0	16-3584
+chrM	7363	0	0	0	0	0	0	0	16-3584
+chrM	7364	0	0	0	0	0	0	0	16-3584
+chrM	7365	0	0	0	0	0	0	0	16-3584
+chrM	7366	0	0	0	0	0	0	0	16-3584
+chrM	7367	0	0	0	0	0	0	0	16-3584
+chrM	7368	0	0	0	0	0	0	0	16-3584
+chrM	7369	0	0	0	0	0	0	0	16-3584
+chrM	7370	0	0	0	0	0	0	0	16-3584
+chrM	7371	0	0	0	0	0	0	0	16-3584
+chrM	7372	0	0	0	0	0	0	0	16-3584
+chrM	7373	0	0	0	0	0	0	0	16-3584
+chrM	7374	0	0	0	0	0	0	0	16-3584
+chrM	7375	0	0	0	0	0	0	0	16-3584
+chrM	7376	0	0	0	0	0	0	0	16-3584
+chrM	7377	0	0	0	0	0	0	0	16-3584
+chrM	7378	0	0	0	0	0	0	0	16-3584
+chrM	7379	0	0	0	0	0	0	0	16-3584
+chrM	7380	0	0	0	0	0	0	0	16-3584
+chrM	7381	0	0	0	0	0	0	0	16-3584
+chrM	7382	0	0	0	0	0	0	0	16-3584
+chrM	7383	0	0	0	0	0	0	0	16-3584
+chrM	7384	0	0	0	0	0	0	0	16-3584
+chrM	7385	0	0	0	0	0	0	0	16-3584
+chrM	7386	0	0	0	0	0	0	0	16-3584
+chrM	7387	0	0	0	0	0	0	0	16-3584
+chrM	7388	0	0	0	0	0	0	0	16-3584
+chrM	7389	0	0	0	0	0	0	0	16-3584
+chrM	7390	0	0	0	0	0	0	0	16-3584
+chrM	7391	0	0	0	0	0	0	0	16-3584
+chrM	7392	0	0	0	0	0	0	0	16-3584
+chrM	7393	0	0	0	0	0	0	0	16-3584
+chrM	7394	0	0	0	0	0	0	0	16-3584
+chrM	7395	0	0	0	0	0	0	0	16-3584
+chrM	7396	0	0	0	0	0	0	0	16-3584
+chrM	7397	0	0	0	0	0	0	0	16-3584
+chrM	7398	0	0	0	0	0	0	0	16-3584
+chrM	7399	0	0	0	0	0	0	0	16-3584
+chrM	7400	0	0	0	0	0	0	0	16-3584
+chrM	7401	0	0	0	0	0	0	0	16-3584
+chrM	7402	0	0	0	0	0	0	0	16-3584
+chrM	7403	0	0	0	0	0	0	0	16-3584
+chrM	7404	0	0	0	0	0	0	0	16-3584
+chrM	7405	0	0	0	0	0	0	0	16-3584
+chrM	7406	0	0	0	0	0	0	0	16-3584
+chrM	7407	0	0	0	0	0	0	0	16-3584
+chrM	7408	0	0	0	0	0	0	0	16-3584
+chrM	7409	0	0	0	0	0	0	0	16-3584
+chrM	7410	0	0	0	0	0	0	0	16-3584
+chrM	7411	0	0	0	0	0	0	0	16-3584
+chrM	7412	0	0	0	0	0	0	0	16-3584
+chrM	7413	0	0	0	0	0	0	0	16-3584
+chrM	7414	0	0	0	0	0	0	0	16-3584
+chrM	7415	0	0	0	0	0	0	0	16-3584
+chrM	7416	0	0	0	0	0	0	0	16-3584
+chrM	7417	0	0	0	0	0	0	0	16-3584
+chrM	7418	0	0	0	0	0	0	0	16-3584
+chrM	7419	0	0	0	0	0	0	0	16-3584
+chrM	7420	0	0	0	0	0	0	0	16-3584
+chrM	7421	0	0	0	0	0	0	0	16-3584
+chrM	7422	0	0	0	0	0	0	0	16-3584
+chrM	7423	0	0	0	0	0	0	0	16-3584
+chrM	7424	0	0	0	0	0	0	0	16-3584
+chrM	7425	0	0	0	0	0	0	0	16-3584
+chrM	7426	0	0	0	0	0	0	0	16-3584
+chrM	7427	0	0	0	0	0	0	0	16-3584
+chrM	7428	0	0	0	0	0	0	0	16-3584
+chrM	7429	0	0	0	0	0	0	0	16-3584
+chrM	7430	0	0	0	0	0	0	0	16-3584
+chrM	7431	0	0	0	0	0	0	0	16-3584
+chrM	7432	0	0	0	0	0	0	0	16-3584
+chrM	7433	0	0	0	0	0	0	0	16-3584
+chrM	7434	0	0	0	0	0	0	0	16-3584
+chrM	7435	0	0	0	0	0	0	0	16-3584
+chrM	7436	0	0	0	0	0	0	0	16-3584
+chrM	7437	0	0	0	0	0	0	0	16-3584
+chrM	7438	0	0	0	0	0	0	0	16-3584
+chrM	7439	0	0	0	0	0	0	0	16-3584
+chrM	7440	0	0	0	0	0	0	0	16-3584
+chrM	7441	0	0	0	0	0	0	0	16-3584
+chrM	7442	0	0	0	0	0	0	0	16-3584
+chrM	7443	0	0	0	0	0	0	0	16-3584
+chrM	7444	0	0	0	0	0	0	0	16-3584
+chrM	7445	0	0	0	0	0	0	0	16-3584
+chrM	7446	0	0	0	0	0	0	0	16-3584
+chrM	7447	0	0	0	0	0	0	0	16-3584
+chrM	7448	0	0	0	0	0	0	0	16-3584
+chrM	7449	0	0	0	0	0	0	0	16-3584
+chrM	7450	0	0	0	0	0	0	0	16-3584
+chrM	7451	0	0	0	0	0	0	0	16-3584
+chrM	7452	0	0	0	0	0	0	0	16-3584
+chrM	7453	0	0	0	0	0	0	0	16-3584
+chrM	7454	0	0	0	0	0	0	0	16-3584
+chrM	7455	0	0	0	0	0	0	0	16-3584
+chrM	7456	0	0	0	0	0	0	0	16-3584
+chrM	7457	0	0	0	0	0	0	0	16-3584
+chrM	7458	0	0	0	0	0	0	0	16-3584
+chrM	7459	0	0	0	0	0	0	0	16-3584
+chrM	7460	0	0	0	0	0	0	0	16-3584
+chrM	7461	0	0	0	0	0	0	0	16-3584
+chrM	7462	0	0	0	0	0	0	0	16-3584
+chrM	7463	0	0	0	0	0	0	0	16-3584
+chrM	7464	0	0	0	0	0	0	0	16-3584
+chrM	7465	0	0	0	0	0	0	0	16-3584
+chrM	7466	0	0	0	0	0	0	0	16-3584
+chrM	7467	0	0	0	0	0	0	0	16-3584
+chrM	7468	0	0	0	0	0	0	0	16-3584
+chrM	7469	0	0	0	0	0	0	0	16-3584
+chrM	7470	0	0	0	0	0	0	0	16-3584
+chrM	7471	0	0	0	0	0	0	0	16-3584
+chrM	7472	0	0	0	0	0	0	0	16-3584
+chrM	7473	0	0	0	0	0	0	0	16-3584
+chrM	7474	0	0	0	0	0	0	0	16-3584
+chrM	7475	0	0	0	0	0	0	0	16-3584
+chrM	7476	0	0	0	0	0	0	0	16-3584
+chrM	7477	0	0	0	0	0	0	0	16-3584
+chrM	7478	0	0	0	0	0	0	0	16-3584
+chrM	7479	0	0	0	0	0	0	0	16-3584
+chrM	7480	0	0	0	0	0	0	0	16-3584
+chrM	7481	0	0	0	0	0	0	0	16-3584
+chrM	7482	0	0	0	0	0	0	0	16-3584
+chrM	7483	0	0	0	0	0	0	0	16-3584
+chrM	7484	0	0	0	0	0	0	0	16-3584
+chrM	7485	0	0	0	0	0	0	0	16-3584
+chrM	7486	0	0	0	0	0	0	0	16-3584
+chrM	7487	0	0	0	0	0	0	0	16-3584
+chrM	7488	0	0	0	0	0	0	0	16-3584
+chrM	7489	0	0	0	0	0	0	0	16-3584
+chrM	7490	0	0	0	0	0	0	0	16-3584
+chrM	7491	0	0	0	0	0	0	0	16-3584
+chrM	7492	0	0	0	0	0	0	0	16-3584
+chrM	7493	0	0	0	0	0	0	0	16-3584
+chrM	7494	0	0	0	0	0	0	0	16-3584
+chrM	7495	0	0	0	0	0	0	0	16-3584
+chrM	7496	0	0	0	0	0	0	0	16-3584
+chrM	7497	0	0	0	0	0	0	0	16-3584
+chrM	7498	0	0	0	0	0	0	0	16-3584
+chrM	7499	0	0	0	0	0	0	0	16-3584
+chrM	7500	0	0	0	0	0	0	0	16-3584
+chrM	7501	0	0	0	0	0	0	0	16-3584
+chrM	7502	0	0	0	0	0	0	0	16-3584
+chrM	7503	0	0	0	0	0	0	0	16-3584
+chrM	7504	0	0	0	0	0	0	0	16-3584
+chrM	7505	0	0	0	0	0	0	0	16-3584
+chrM	7506	0	0	0	0	0	0	0	16-3584
+chrM	7507	0	0	0	0	0	0	0	16-3584
+chrM	7508	0	0	0	0	0	0	0	16-3584
+chrM	7509	0	0	0	0	0	0	0	16-3584
+chrM	7510	0	0	0	0	0	0	0	16-3584
+chrM	7511	0	0	0	0	0	0	0	16-3584
+chrM	7512	0	0	0	0	0	0	0	16-3584
+chrM	7513	0	0	0	0	0	0	0	16-3584
+chrM	7514	0	0	0	0	0	0	0	16-3584
+chrM	7515	0	0	0	0	0	0	0	16-3584
+chrM	7516	0	0	0	0	0	0	0	16-3584
+chrM	7517	0	0	0	0	0	0	0	16-3584
+chrM	7518	0	0	0	0	0	0	0	16-3584
+chrM	7519	0	0	0	0	0	0	0	16-3584
+chrM	7520	0	0	0	0	0	0	0	16-3584
+chrM	7521	0	0	0	0	0	0	0	16-3584
+chrM	7522	0	0	0	0	0	0	0	16-3584
+chrM	7523	0	0	0	0	0	0	0	16-3584
+chrM	7524	0	0	0	0	0	0	0	16-3584
+chrM	7525	0	0	0	0	0	0	0	16-3584
+chrM	7526	0	0	0	0	0	0	0	16-3584
+chrM	7527	0	0	0	0	0	0	0	16-3584
+chrM	7528	0	0	0	0	0	0	0	16-3584
+chrM	7529	0	0	0	0	0	0	0	16-3584
+chrM	7530	0	0	0	0	0	0	0	16-3584
+chrM	7531	0	0	0	0	0	0	0	16-3584
+chrM	7532	0	0	0	0	0	0	0	16-3584
+chrM	7533	0	0	0	0	0	0	0	16-3584
+chrM	7534	0	0	0	0	0	0	0	16-3584
+chrM	7535	0	0	0	0	0	0	0	16-3584
+chrM	7536	0	0	0	0	0	0	0	16-3584
+chrM	7537	0	0	0	0	0	0	0	16-3584
+chrM	7538	0	0	0	0	0	0	0	16-3584
+chrM	7539	0	0	0	0	0	0	0	16-3584
+chrM	7540	0	0	0	0	0	0	0	16-3584
+chrM	7541	0	0	0	0	0	0	0	16-3584
+chrM	7542	0	0	0	0	0	0	0	16-3584
+chrM	7543	0	0	0	0	0	0	0	16-3584
+chrM	7544	0	0	0	0	0	0	0	16-3584
+chrM	7545	0	0	0	0	0	0	0	16-3584
+chrM	7546	0	0	0	0	0	0	0	16-3584
+chrM	7547	0	0	0	0	0	0	0	16-3584
+chrM	7548	0	0	0	0	0	0	0	16-3584
+chrM	7549	0	0	0	0	0	0	0	16-3584
+chrM	7550	0	0	0	0	0	0	0	16-3584
+chrM	7551	0	0	0	0	0	0	0	16-3584
+chrM	7552	0	0	0	0	0	0	0	16-3584
+chrM	7553	0	0	0	0	0	0	0	16-3584
+chrM	7554	0	0	0	0	0	0	0	16-3584
+chrM	7555	0	0	0	0	0	0	0	16-3584
+chrM	7556	0	0	0	0	0	0	0	16-3584
+chrM	7557	0	0	0	0	0	0	0	16-3584
+chrM	7558	0	0	0	0	0	0	0	16-3584
+chrM	7559	0	0	0	0	0	0	0	16-3584
+chrM	7560	0	0	0	0	0	0	0	16-3584
+chrM	7561	0	0	0	0	0	0	0	16-3584
+chrM	7562	0	0	0	0	0	0	0	16-3584
+chrM	7563	0	0	0	0	0	0	0	16-3584
+chrM	7564	0	0	0	0	0	0	0	16-3584
+chrM	7565	0	0	0	0	0	0	0	16-3584
+chrM	7566	0	0	0	0	0	0	0	16-3584
+chrM	7567	0	0	0	0	0	0	0	16-3584
+chrM	7568	0	0	0	0	0	0	0	16-3584
+chrM	7569	0	0	0	0	0	0	0	16-3584
+chrM	7570	0	0	0	0	0	0	0	16-3584
+chrM	7571	0	0	0	0	0	0	0	16-3584
+chrM	7572	0	0	0	0	0	0	0	16-3584
+chrM	7573	0	0	0	0	0	0	0	16-3584
+chrM	7574	0	0	0	0	0	0	0	16-3584
+chrM	7575	0	0	0	0	0	0	0	16-3584
+chrM	7576	0	0	0	0	0	0	0	16-3584
+chrM	7577	0	0	0	0	0	0	0	16-3584
+chrM	7578	0	0	0	0	0	0	0	16-3584
+chrM	7579	0	0	0	0	0	0	0	16-3584
+chrM	7580	0	0	0	0	0	0	0	16-3584
+chrM	7581	0	0	0	0	0	0	0	16-3584
+chrM	7582	0	0	0	0	0	0	0	16-3584
+chrM	7583	0	0	0	0	0	0	0	16-3584
+chrM	7584	0	0	0	0	0	0	0	16-3584
+chrM	7585	0	0	0	0	0	0	0	16-3584
+chrM	7586	0	0	0	0	0	0	0	16-3584
+chrM	7587	0	0	0	0	0	0	0	16-3584
+chrM	7588	0	0	0	0	0	0	0	16-3584
+chrM	7589	0	0	0	0	0	0	0	16-3584
+chrM	7590	0	0	0	0	0	0	0	16-3584
+chrM	7591	0	0	0	0	0	0	0	16-3584
+chrM	7592	0	0	0	0	0	0	0	16-3584
+chrM	7593	0	0	0	0	0	0	0	16-3584
+chrM	7594	0	0	0	0	0	0	0	16-3584
+chrM	7595	0	0	0	0	0	0	0	16-3584
+chrM	7596	0	0	0	0	0	0	0	16-3584
+chrM	7597	0	0	0	0	0	0	0	16-3584
+chrM	7598	0	0	0	0	0	0	0	16-3584
+chrM	7599	0	0	0	0	0	0	0	16-3584
+chrM	7600	0	0	0	0	0	0	0	16-3584
+chrM	7601	0	0	0	0	0	0	0	16-3584
+chrM	7602	0	0	0	0	0	0	0	16-3584
+chrM	7603	0	0	0	0	0	0	0	16-3584
+chrM	7604	0	0	0	0	0	0	0	16-3584
+chrM	7605	0	0	0	0	0	0	0	16-3584
+chrM	7606	0	0	0	0	0	0	0	16-3584
+chrM	7607	0	0	0	0	0	0	0	16-3584
+chrM	7608	0	0	0	0	0	0	0	16-3584
+chrM	7609	0	0	0	0	0	0	0	16-3584
+chrM	7610	0	0	0	0	0	0	0	16-3584
+chrM	7611	0	0	0	0	0	0	0	16-3584
+chrM	7612	0	0	0	0	0	0	0	16-3584
+chrM	7613	0	0	0	0	0	0	0	16-3584
+chrM	7614	0	0	0	0	0	0	0	16-3584
+chrM	7615	0	0	0	0	0	0	0	16-3584
+chrM	7616	0	0	0	0	0	0	0	16-3584
+chrM	7617	0	0	0	0	0	0	0	16-3584
+chrM	7618	0	0	0	0	0	0	0	16-3584
+chrM	7619	0	0	0	0	0	0	0	16-3584
+chrM	7620	0	0	0	0	0	0	0	16-3584
+chrM	7621	0	0	0	0	0	0	0	16-3584
+chrM	7622	0	0	0	0	0	0	0	16-3584
+chrM	7623	0	0	0	0	0	0	0	16-3584
+chrM	7624	0	0	0	0	0	0	0	16-3584
+chrM	7625	0	0	0	0	0	0	0	16-3584
+chrM	7626	0	0	0	0	0	0	0	16-3584
+chrM	7627	0	0	0	0	0	0	0	16-3584
+chrM	7628	0	0	0	0	0	0	0	16-3584
+chrM	7629	0	0	0	0	0	0	0	16-3584
+chrM	7630	0	0	0	0	0	0	0	16-3584
+chrM	7631	0	0	0	0	0	0	0	16-3584
+chrM	7632	0	0	0	0	0	0	0	16-3584
+chrM	7633	0	0	0	0	0	0	0	16-3584
+chrM	7634	0	0	0	0	0	0	0	16-3584
+chrM	7635	0	0	0	0	0	0	0	16-3584
+chrM	7636	0	0	0	0	0	0	0	16-3584
+chrM	7637	0	0	0	0	0	0	0	16-3584
+chrM	7638	0	0	0	0	0	0	0	16-3584
+chrM	7639	0	0	0	0	0	0	0	16-3584
+chrM	7640	0	0	0	0	0	0	0	16-3584
+chrM	7641	0	0	0	0	0	0	0	16-3584
+chrM	7642	0	0	0	0	0	0	0	16-3584
+chrM	7643	0	0	0	0	0	0	0	16-3584
+chrM	7644	0	0	0	0	0	0	0	16-3584
+chrM	7645	0	0	0	0	0	0	0	16-3584
+chrM	7646	0	0	0	0	0	0	0	16-3584
+chrM	7647	0	0	0	0	0	0	0	16-3584
+chrM	7648	0	0	0	0	0	0	0	16-3584
+chrM	7649	0	0	0	0	0	0	0	16-3584
+chrM	7650	0	0	0	0	0	0	0	16-3584
+chrM	7651	0	0	0	0	0	0	0	16-3584
+chrM	7652	0	0	0	0	0	0	0	16-3584
+chrM	7653	0	0	0	0	0	0	0	16-3584
+chrM	7654	0	0	0	0	0	0	0	16-3584
+chrM	7655	0	0	0	0	0	0	0	16-3584
+chrM	7656	0	0	0	0	0	0	0	16-3584
+chrM	7657	0	0	0	0	0	0	0	16-3584
+chrM	7658	0	0	0	0	0	0	0	16-3584
+chrM	7659	0	0	0	0	0	0	0	16-3584
+chrM	7660	0	0	0	0	0	0	0	16-3584
+chrM	7661	0	0	0	0	0	0	0	16-3584
+chrM	7662	0	0	0	0	0	0	0	16-3584
+chrM	7663	0	0	0	0	0	0	0	16-3584
+chrM	7664	0	0	0	0	0	0	0	16-3584
+chrM	7665	0	0	0	0	0	0	0	16-3584
+chrM	7666	0	0	0	0	0	0	0	16-3584
+chrM	7667	0	0	0	0	0	0	0	16-3584
+chrM	7668	0	0	0	0	0	0	0	16-3584
+chrM	7669	0	0	0	0	0	0	0	16-3584
+chrM	7670	0	0	0	0	0	0	0	16-3584
+chrM	7671	0	0	0	0	0	0	0	16-3584
+chrM	7672	0	0	0	0	0	0	0	16-3584
+chrM	7673	0	0	0	0	0	0	0	16-3584
+chrM	7674	0	0	0	0	0	0	0	16-3584
+chrM	7675	0	0	0	0	0	0	0	16-3584
+chrM	7676	0	0	0	0	0	0	0	16-3584
+chrM	7677	0	0	0	0	0	0	0	16-3584
+chrM	7678	0	0	0	0	0	0	0	16-3584
+chrM	7679	0	0	0	0	0	0	0	16-3584
+chrM	7680	0	0	0	0	0	0	0	16-3584
+chrM	7681	0	0	0	0	0	0	0	16-3584
+chrM	7682	0	0	0	0	0	0	0	16-3584
+chrM	7683	0	0	0	0	0	0	0	16-3584
+chrM	7684	0	0	0	0	0	0	0	16-3584
+chrM	7685	0	0	0	0	0	0	0	16-3584
+chrM	7686	0	0	0	0	0	0	0	16-3584
+chrM	7687	0	0	0	0	0	0	0	16-3584
+chrM	7688	0	0	0	0	0	0	0	16-3584
+chrM	7689	0	0	0	0	0	0	0	16-3584
+chrM	7690	0	0	0	0	0	0	0	16-3584
+chrM	7691	0	0	0	0	0	0	0	16-3584
+chrM	7692	0	0	0	0	0	0	0	16-3584
+chrM	7693	0	0	0	0	0	0	0	16-3584
+chrM	7694	0	0	0	0	0	0	0	16-3584
+chrM	7695	0	0	0	0	0	0	0	16-3584
+chrM	7696	0	0	0	0	0	0	0	16-3584
+chrM	7697	0	0	0	0	0	0	0	16-3584
+chrM	7698	0	0	0	0	0	0	0	16-3584
+chrM	7699	0	0	0	0	0	0	0	16-3584
+chrM	7700	0	0	0	0	0	0	0	16-3584
+chrM	7701	0	0	0	0	0	0	0	16-3584
+chrM	7702	0	0	0	0	0	0	0	16-3584
+chrM	7703	0	0	0	0	0	0	0	16-3584
+chrM	7704	0	0	0	0	0	0	0	16-3584
+chrM	7705	0	0	0	0	0	0	0	16-3584
+chrM	7706	0	0	0	0	0	0	0	16-3584
+chrM	7707	0	0	0	0	0	0	0	16-3584
+chrM	7708	0	0	0	0	0	0	0	16-3584
+chrM	7709	0	0	0	0	0	0	0	16-3584
+chrM	7710	0	0	0	0	0	0	0	16-3584
+chrM	7711	0	0	0	0	0	0	0	16-3584
+chrM	7712	0	0	0	0	0	0	0	16-3584
+chrM	7713	0	0	0	0	0	0	0	16-3584
+chrM	7714	0	0	0	0	0	0	0	16-3584
+chrM	7715	0	0	0	0	0	0	0	16-3584
+chrM	7716	0	0	0	0	0	0	0	16-3584
+chrM	7717	0	0	0	0	0	0	0	16-3584
+chrM	7718	0	0	0	0	0	0	0	16-3584
+chrM	7719	0	0	0	0	0	0	0	16-3584
+chrM	7720	0	0	0	0	0	0	0	16-3584
+chrM	7721	0	0	0	0	0	0	0	16-3584
+chrM	7722	0	0	0	0	0	0	0	16-3584
+chrM	7723	0	0	0	0	0	0	0	16-3584
+chrM	7724	0	0	0	0	0	0	0	16-3584
+chrM	7725	0	0	0	0	0	0	0	16-3584
+chrM	7726	0	0	0	0	0	0	0	16-3584
+chrM	7727	0	0	0	0	0	0	0	16-3584
+chrM	7728	0	0	0	0	0	0	0	16-3584
+chrM	7729	0	0	0	0	0	0	0	16-3584
+chrM	7730	0	0	0	0	0	0	0	16-3584
+chrM	7731	0	0	0	0	0	0	0	16-3584
+chrM	7732	0	0	0	0	0	0	0	16-3584
+chrM	7733	0	0	0	0	0	0	0	16-3584
+chrM	7734	0	0	0	0	0	0	0	16-3584
+chrM	7735	0	0	0	0	0	0	0	16-3584
+chrM	7736	0	0	0	0	0	0	0	16-3584
+chrM	7737	0	0	0	0	0	0	0	16-3584
+chrM	7738	0	0	0	0	0	0	0	16-3584
+chrM	7739	0	0	0	0	0	0	0	16-3584
+chrM	7740	0	0	0	0	0	0	0	16-3584
+chrM	7741	0	0	0	0	0	0	0	16-3584
+chrM	7742	0	0	0	0	0	0	0	16-3584
+chrM	7743	0	0	0	0	0	0	0	16-3584
+chrM	7744	0	0	0	0	0	0	0	16-3584
+chrM	7745	0	0	0	0	0	0	0	16-3584
+chrM	7746	0	0	0	0	0	0	0	16-3584
+chrM	7747	0	0	0	0	0	0	0	16-3584
+chrM	7748	0	0	0	0	0	0	0	16-3584
+chrM	7749	0	0	0	0	0	0	0	16-3584
+chrM	7750	0	0	0	0	0	0	0	16-3584
+chrM	7751	0	0	0	0	0	0	0	16-3584
+chrM	7752	0	0	0	0	0	0	0	16-3584
+chrM	7753	0	0	0	0	0	0	0	16-3584
+chrM	7754	0	0	0	0	0	0	0	16-3584
+chrM	7755	0	0	0	0	0	0	0	16-3584
+chrM	7756	0	0	0	0	0	0	0	16-3584
+chrM	7757	0	0	0	0	0	0	0	16-3584
+chrM	7758	0	0	0	0	0	0	0	16-3584
+chrM	7759	0	0	0	0	0	0	0	16-3584
+chrM	7760	0	0	0	0	0	0	0	16-3584
+chrM	7761	0	0	0	0	0	0	0	16-3584
+chrM	7762	0	0	0	0	0	0	0	16-3584
+chrM	7763	0	0	0	0	0	0	0	16-3584
+chrM	7764	0	0	0	0	0	0	0	16-3584
+chrM	7765	0	0	0	0	0	0	0	16-3584
+chrM	7766	0	0	0	0	0	0	0	16-3584
+chrM	7767	0	0	0	0	0	0	0	16-3584
+chrM	7768	0	0	0	0	0	0	0	16-3584
+chrM	7769	0	0	0	0	0	0	0	16-3584
+chrM	7770	0	0	0	0	0	0	0	16-3584
+chrM	7771	0	0	0	0	0	0	0	16-3584
+chrM	7772	0	0	0	0	0	0	0	16-3584
+chrM	7773	0	0	0	0	0	0	0	16-3584
+chrM	7774	0	0	0	0	0	0	0	16-3584
+chrM	7775	0	0	0	0	0	0	0	16-3584
+chrM	7776	0	0	0	0	0	0	0	16-3584
+chrM	7777	0	0	0	0	0	0	0	16-3584
+chrM	7778	0	0	0	0	0	0	0	16-3584
+chrM	7779	0	0	0	0	0	0	0	16-3584
+chrM	7780	0	0	0	0	0	0	0	16-3584
+chrM	7781	0	0	0	0	0	0	0	16-3584
+chrM	7782	0	0	0	0	0	0	0	16-3584
+chrM	7783	0	0	0	0	0	0	0	16-3584
+chrM	7784	0	0	0	0	0	0	0	16-3584
+chrM	7785	0	0	0	0	0	0	0	16-3584
+chrM	7786	0	0	0	0	0	0	0	16-3584
+chrM	7787	0	0	0	0	0	0	0	16-3584
+chrM	7788	0	0	0	0	0	0	0	16-3584
+chrM	7789	0	0	0	0	0	0	0	16-3584
+chrM	7790	0	0	0	0	0	0	0	16-3584
+chrM	7791	0	0	0	0	0	0	0	16-3584
+chrM	7792	0	0	0	0	0	0	0	16-3584
+chrM	7793	0	0	0	0	0	0	0	16-3584
+chrM	7794	0	0	0	0	0	0	0	16-3584
+chrM	7795	0	0	0	0	0	0	0	16-3584
+chrM	7796	0	0	0	0	0	0	0	16-3584
+chrM	7797	0	0	0	0	0	0	0	16-3584
+chrM	7798	0	0	0	0	0	0	0	16-3584
+chrM	7799	0	0	0	0	0	0	0	16-3584
+chrM	7800	0	0	0	0	0	0	0	16-3584
+chrM	7801	0	0	0	0	0	0	0	16-3584
+chrM	7802	0	0	0	0	0	0	0	16-3584
+chrM	7803	0	0	0	0	0	0	0	16-3584
+chrM	7804	0	0	0	0	0	0	0	16-3584
+chrM	7805	0	0	0	0	0	0	0	16-3584
+chrM	7806	0	0	0	0	0	0	0	16-3584
+chrM	7807	0	0	0	0	0	0	0	16-3584
+chrM	7808	0	0	0	0	0	0	0	16-3584
+chrM	7809	0	0	0	0	0	0	0	16-3584
+chrM	7810	0	0	0	0	0	0	0	16-3584
+chrM	7811	0	0	0	0	0	0	0	16-3584
+chrM	7812	0	0	0	0	0	0	0	16-3584
+chrM	7813	0	0	0	0	0	0	0	16-3584
+chrM	7814	0	0	0	0	0	0	0	16-3584
+chrM	7815	0	0	0	0	0	0	0	16-3584
+chrM	7816	0	0	0	0	0	0	0	16-3584
+chrM	7817	0	0	0	0	0	0	0	16-3584
+chrM	7818	0	0	0	0	0	0	0	16-3584
+chrM	7819	0	0	0	0	0	0	0	16-3584
+chrM	7820	0	0	0	0	0	0	0	16-3584
+chrM	7821	0	0	0	0	0	0	0	16-3584
+chrM	7822	0	0	0	0	0	0	0	16-3584
+chrM	7823	0	0	0	0	0	0	0	16-3584
+chrM	7824	0	0	0	0	0	0	0	16-3584
+chrM	7825	0	0	0	0	0	0	0	16-3584
+chrM	7826	0	0	0	0	0	0	0	16-3584
+chrM	7827	0	0	0	0	0	0	0	16-3584
+chrM	7828	0	0	0	0	0	0	0	16-3584
+chrM	7829	0	0	0	0	0	0	0	16-3584
+chrM	7830	0	0	0	0	0	0	0	16-3584
+chrM	7831	0	0	0	0	0	0	0	16-3584
+chrM	7832	0	0	0	0	0	0	0	16-3584
+chrM	7833	0	0	0	0	0	0	0	16-3584
+chrM	7834	0	0	0	0	0	0	0	16-3584
+chrM	7835	0	0	0	0	0	0	0	16-3584
+chrM	7836	0	0	0	0	0	0	0	16-3584
+chrM	7837	0	0	0	0	0	0	0	16-3584
+chrM	7838	0	0	0	0	0	0	0	16-3584
+chrM	7839	0	0	0	0	0	0	0	16-3584
+chrM	7840	0	0	0	0	0	0	0	16-3584
+chrM	7841	0	0	0	0	0	0	0	16-3584
+chrM	7842	0	0	0	0	0	0	0	16-3584
+chrM	7843	0	0	0	0	0	0	0	16-3584
+chrM	7844	0	0	0	0	0	0	0	16-3584
+chrM	7845	0	0	0	0	0	0	0	16-3584
+chrM	7846	0	0	0	0	0	0	0	16-3584
+chrM	7847	0	0	0	0	0	0	0	16-3584
+chrM	7848	0	0	0	0	0	0	0	16-3584
+chrM	7849	0	0	0	0	0	0	0	16-3584
+chrM	7850	0	0	0	0	0	0	0	16-3584
+chrM	7851	0	0	0	0	0	0	0	16-3584
+chrM	7852	0	0	0	0	0	0	0	16-3584
+chrM	7853	0	0	0	0	0	0	0	16-3584
+chrM	7854	0	0	0	0	0	0	0	16-3584
+chrM	7855	0	0	0	0	0	0	0	16-3584
+chrM	7856	0	0	0	0	0	0	0	16-3584
+chrM	7857	0	0	0	0	0	0	0	16-3584
+chrM	7858	0	0	0	0	0	0	0	16-3584
+chrM	7859	0	0	0	0	0	0	0	16-3584
+chrM	7860	0	0	0	0	0	0	0	16-3584
+chrM	7861	0	0	0	0	0	0	0	16-3584
+chrM	7862	0	0	0	0	0	0	0	16-3584
+chrM	7863	0	0	0	0	0	0	0	16-3584
+chrM	7864	0	0	0	0	0	0	0	16-3584
+chrM	7865	0	0	0	0	0	0	0	16-3584
+chrM	7866	0	0	0	0	0	0	0	16-3584
+chrM	7867	0	0	0	0	0	0	0	16-3584
+chrM	7868	0	0	0	0	0	0	0	16-3584
+chrM	7869	0	0	0	0	0	0	0	16-3584
+chrM	7870	0	0	0	0	0	0	0	16-3584
+chrM	7871	0	0	0	0	0	0	0	16-3584
+chrM	7872	0	0	0	0	0	0	0	16-3584
+chrM	7873	0	0	0	0	0	0	0	16-3584
+chrM	7874	0	0	0	0	0	0	0	16-3584
+chrM	7875	0	0	0	0	0	0	0	16-3584
+chrM	7876	0	0	0	0	0	0	0	16-3584
+chrM	7877	0	0	0	0	0	0	0	16-3584
+chrM	7878	0	0	0	0	0	0	0	16-3584
+chrM	7879	0	0	0	0	0	0	0	16-3584
+chrM	7880	0	0	0	0	0	0	0	16-3584
+chrM	7881	0	0	0	0	0	0	0	16-3584
+chrM	7882	0	0	0	0	0	0	0	16-3584
+chrM	7883	0	0	0	0	0	0	0	16-3584
+chrM	7884	0	0	0	0	0	0	0	16-3584
+chrM	7885	0	0	0	0	0	0	0	16-3584
+chrM	7886	0	0	0	0	0	0	0	16-3584
+chrM	7887	0	0	0	0	0	0	0	16-3584
+chrM	7888	0	0	0	0	0	0	0	16-3584
+chrM	7889	0	0	0	0	0	0	0	16-3584
+chrM	7890	0	0	0	0	0	0	0	16-3584
+chrM	7891	0	0	0	0	0	0	0	16-3584
+chrM	7892	0	0	0	0	0	0	0	16-3584
+chrM	7893	0	0	0	0	0	0	0	16-3584
+chrM	7894	0	0	0	0	0	0	0	16-3584
+chrM	7895	0	0	0	0	0	0	0	16-3584
+chrM	7896	0	0	0	0	0	0	0	16-3584
+chrM	7897	0	0	0	0	0	0	0	16-3584
+chrM	7898	0	0	0	0	0	0	0	16-3584
+chrM	7899	0	0	0	0	0	0	0	16-3584
+chrM	7900	0	0	0	0	0	0	0	16-3584
+chrM	7901	0	0	0	0	0	0	0	16-3584
+chrM	7902	0	0	0	0	0	0	0	16-3584
+chrM	7903	0	0	0	0	0	0	0	16-3584
+chrM	7904	0	0	0	0	0	0	0	16-3584
+chrM	7905	0	0	0	0	0	0	0	16-3584
+chrM	7906	0	0	0	0	0	0	0	16-3584
+chrM	7907	0	0	0	0	0	0	0	16-3584
+chrM	7908	0	0	0	0	0	0	0	16-3584
+chrM	7909	0	0	0	0	0	0	0	16-3584
+chrM	7910	0	0	0	0	0	0	0	16-3584
+chrM	7911	0	0	0	0	0	0	0	16-3584
+chrM	7912	0	0	0	0	0	0	0	16-3584
+chrM	7913	0	0	0	0	0	0	0	16-3584
+chrM	7914	0	0	0	0	0	0	0	16-3584
+chrM	7915	0	0	0	0	0	0	0	16-3584
+chrM	7916	0	0	0	0	0	0	0	16-3584
+chrM	7917	0	0	0	0	0	0	0	16-3584
+chrM	7918	0	0	0	0	0	0	0	16-3584
+chrM	7919	0	0	0	0	0	0	0	16-3584
+chrM	7920	0	0	0	0	0	0	0	16-3584
+chrM	7921	0	0	0	0	0	0	0	16-3584
+chrM	7922	0	0	0	0	0	0	0	16-3584
+chrM	7923	0	0	0	0	0	0	0	16-3584
+chrM	7924	0	0	0	0	0	0	0	16-3584
+chrM	7925	0	0	0	0	0	0	0	16-3584
+chrM	7926	0	0	0	0	0	0	0	16-3584
+chrM	7927	0	0	0	0	0	0	0	16-3584
+chrM	7928	0	0	0	0	0	0	0	16-3584
+chrM	7929	0	0	0	0	0	0	0	16-3584
+chrM	7930	0	0	0	0	0	0	0	16-3584
+chrM	7931	0	0	0	0	0	0	0	16-3584
+chrM	7932	0	0	0	0	0	0	0	16-3584
+chrM	7933	0	0	0	0	0	0	0	16-3584
+chrM	7934	0	0	0	0	0	0	0	16-3584
+chrM	7935	0	0	0	0	0	0	0	16-3584
+chrM	7936	0	0	0	0	0	0	0	16-3584
+chrM	7937	0	0	0	0	0	0	0	16-3584
+chrM	7938	0	0	0	0	0	0	0	16-3584
+chrM	7939	0	0	0	0	0	0	0	16-3584
+chrM	7940	0	0	0	0	0	0	0	16-3584
+chrM	7941	0	0	0	0	0	0	0	16-3584
+chrM	7942	0	0	0	0	0	0	0	16-3584
+chrM	7943	0	0	0	0	0	0	0	16-3584
+chrM	7944	0	0	0	0	0	0	0	16-3584
+chrM	7945	0	0	0	0	0	0	0	16-3584
+chrM	7946	0	0	0	0	0	0	0	16-3584
+chrM	7947	0	0	0	0	0	0	0	16-3584
+chrM	7948	0	0	0	0	0	0	0	16-3584
+chrM	7949	0	0	0	0	0	0	0	16-3584
+chrM	7950	0	0	0	0	0	0	0	16-3584
+chrM	7951	0	0	0	0	0	0	0	16-3584
+chrM	7952	0	0	0	0	0	0	0	16-3584
+chrM	7953	0	0	0	0	0	0	0	16-3584
+chrM	7954	0	0	0	0	0	0	0	16-3584
+chrM	7955	0	0	0	0	0	0	0	16-3584
+chrM	7956	0	0	0	0	0	0	0	16-3584
+chrM	7957	0	0	0	0	0	0	0	16-3584
+chrM	7958	0	0	0	0	0	0	0	16-3584
+chrM	7959	0	0	0	0	0	0	0	16-3584
+chrM	7960	0	0	0	0	0	0	0	16-3584
+chrM	7961	0	0	0	0	0	0	0	16-3584
+chrM	7962	0	0	0	0	0	0	0	16-3584
+chrM	7963	0	0	0	0	0	0	0	16-3584
+chrM	7964	0	0	0	0	0	0	0	16-3584
+chrM	7965	0	0	0	0	0	0	0	16-3584
+chrM	7966	0	0	0	0	0	0	0	16-3584
+chrM	7967	0	0	0	0	0	0	0	16-3584
+chrM	7968	0	0	0	0	0	0	0	16-3584
+chrM	7969	0	0	0	0	0	0	0	16-3584
+chrM	7970	0	0	0	0	0	0	0	16-3584
+chrM	7971	0	0	0	0	0	0	0	16-3584
+chrM	7972	0	0	0	0	0	0	0	16-3584
+chrM	7973	0	0	0	0	0	0	0	16-3584
+chrM	7974	0	0	0	0	0	0	0	16-3584
+chrM	7975	0	0	0	0	0	0	0	16-3584
+chrM	7976	0	0	0	0	0	0	0	16-3584
+chrM	7977	0	0	0	0	0	0	0	16-3584
+chrM	7978	0	0	0	0	0	0	0	16-3584
+chrM	7979	0	0	0	0	0	0	0	16-3584
+chrM	7980	0	0	0	0	0	0	0	16-3584
+chrM	7981	0	0	0	0	0	0	0	16-3584
+chrM	7982	0	0	0	0	0	0	0	16-3584
+chrM	7983	0	0	0	0	0	0	0	16-3584
+chrM	7984	0	0	0	0	0	0	0	16-3584
+chrM	7985	0	0	0	0	0	0	0	16-3584
+chrM	7986	0	0	0	0	0	0	0	16-3584
+chrM	7987	0	0	0	0	0	0	0	16-3584
+chrM	7988	0	0	0	0	0	0	0	16-3584
+chrM	7989	0	0	0	0	0	0	0	16-3584
+chrM	7990	0	0	0	0	0	0	0	16-3584
+chrM	7991	0	0	0	0	0	0	0	16-3584
+chrM	7992	0	0	0	0	0	0	0	16-3584
+chrM	7993	0	0	0	0	0	0	0	16-3584
+chrM	7994	0	0	0	0	0	0	0	16-3584
+chrM	7995	0	0	0	0	0	0	0	16-3584
+chrM	7996	0	0	0	0	0	0	0	16-3584
+chrM	7997	0	0	0	0	0	0	0	16-3584
+chrM	7998	0	0	0	0	0	0	0	16-3584
+chrM	7999	0	0	0	0	0	0	0	16-3584
+chrM	8000	0	0	0	0	0	0	0	16-3584
+chrM	8001	0	0	0	0	0	0	0	16-3584
+chrM	8002	0	0	0	0	0	0	0	16-3584
+chrM	8003	0	0	0	0	0	0	0	16-3584
+chrM	8004	0	0	0	0	0	0	0	16-3584
+chrM	8005	0	0	0	0	0	0	0	16-3584
+chrM	8006	0	0	0	0	0	0	0	16-3584
+chrM	8007	0	0	0	0	0	0	0	16-3584
+chrM	8008	0	0	0	0	0	0	0	16-3584
+chrM	8009	0	0	0	0	0	0	0	16-3584
+chrM	8010	0	0	0	0	0	0	0	16-3584
+chrM	8011	0	0	0	0	0	0	0	16-3584
+chrM	8012	0	0	0	0	0	0	0	16-3584
+chrM	8013	0	0	0	0	0	0	0	16-3584
+chrM	8014	0	0	0	0	0	0	0	16-3584
+chrM	8015	0	0	0	0	0	0	0	16-3584
+chrM	8016	0	0	0	0	0	0	0	16-3584
+chrM	8017	0	0	0	0	0	0	0	16-3584
+chrM	8018	0	0	0	0	0	0	0	16-3584
+chrM	8019	0	0	0	0	0	0	0	16-3584
+chrM	8020	0	0	0	0	0	0	0	16-3584
+chrM	8021	0	0	0	0	0	0	0	16-3584
+chrM	8022	0	0	0	0	0	0	0	16-3584
+chrM	8023	0	0	0	0	0	0	0	16-3584
+chrM	8024	0	0	0	0	0	0	0	16-3584
+chrM	8025	0	0	0	0	0	0	0	16-3584
+chrM	8026	0	0	0	0	0	0	0	16-3584
+chrM	8027	0	0	0	0	0	0	0	16-3584
+chrM	8028	0	0	0	0	0	0	0	16-3584
+chrM	8029	0	0	0	0	0	0	0	16-3584
+chrM	8030	0	0	0	0	0	0	0	16-3584
+chrM	8031	0	0	0	0	0	0	0	16-3584
+chrM	8032	0	0	0	0	0	0	0	16-3584
+chrM	8033	0	0	0	0	0	0	0	16-3584
+chrM	8034	0	0	0	0	0	0	0	16-3584
+chrM	8035	0	0	0	0	0	0	0	16-3584
+chrM	8036	0	0	0	0	0	0	0	16-3584
+chrM	8037	0	0	0	0	0	0	0	16-3584
+chrM	8038	0	0	0	0	0	0	0	16-3584
+chrM	8039	0	0	0	0	0	0	0	16-3584
+chrM	8040	0	0	0	0	0	0	0	16-3584
+chrM	8041	0	0	0	0	0	0	0	16-3584
+chrM	8042	0	0	0	0	0	0	0	16-3584
+chrM	8043	0	0	0	0	0	0	0	16-3584
+chrM	8044	0	0	0	0	0	0	0	16-3584
+chrM	8045	0	0	0	0	0	0	0	16-3584
+chrM	8046	0	0	0	0	0	0	0	16-3584
+chrM	8047	0	0	0	0	0	0	0	16-3584
+chrM	8048	0	0	0	0	0	0	0	16-3584
+chrM	8049	0	0	0	0	0	0	0	16-3584
+chrM	8050	0	0	0	0	0	0	0	16-3584
+chrM	8051	0	0	0	0	0	0	0	16-3584
+chrM	8052	0	0	0	0	0	0	0	16-3584
+chrM	8053	0	0	0	0	0	0	0	16-3584
+chrM	8054	0	0	0	0	0	0	0	16-3584
+chrM	8055	0	0	0	0	0	0	0	16-3584
+chrM	8056	0	0	0	0	0	0	0	16-3584
+chrM	8057	0	0	0	0	0	0	0	16-3584
+chrM	8058	0	0	0	0	0	0	0	16-3584
+chrM	8059	0	0	0	0	0	0	0	16-3584
+chrM	8060	0	0	0	0	0	0	0	16-3584
+chrM	8061	0	0	0	0	0	0	0	16-3584
+chrM	8062	0	0	0	0	0	0	0	16-3584
+chrM	8063	0	0	0	0	0	0	0	16-3584
+chrM	8064	0	0	0	0	0	0	0	16-3584
+chrM	8065	0	0	0	0	0	0	0	16-3584
+chrM	8066	0	0	0	0	0	0	0	16-3584
+chrM	8067	0	0	0	0	0	0	0	16-3584
+chrM	8068	0	0	0	0	0	0	0	16-3584
+chrM	8069	0	0	0	0	0	0	0	16-3584
+chrM	8070	0	0	0	0	0	0	0	16-3584
+chrM	8071	0	0	0	0	0	0	0	16-3584
+chrM	8072	0	0	0	0	0	0	0	16-3584
+chrM	8073	0	0	0	0	0	0	0	16-3584
+chrM	8074	0	0	0	0	0	0	0	16-3584
+chrM	8075	0	0	0	0	0	0	0	16-3584
+chrM	8076	0	0	0	0	0	0	0	16-3584
+chrM	8077	0	0	0	0	0	0	0	16-3584
+chrM	8078	0	0	0	0	0	0	0	16-3584
+chrM	8079	0	0	0	0	0	0	0	16-3584
+chrM	8080	0	0	0	0	0	0	0	16-3584
+chrM	8081	0	0	0	0	0	0	0	16-3584
+chrM	8082	0	0	0	0	0	0	0	16-3584
+chrM	8083	0	0	0	0	0	0	0	16-3584
+chrM	8084	0	0	0	0	0	0	0	16-3584
+chrM	8085	0	0	0	0	0	0	0	16-3584
+chrM	8086	0	0	0	0	0	0	0	16-3584
+chrM	8087	0	0	0	0	0	0	0	16-3584
+chrM	8088	0	0	0	0	0	0	0	16-3584
+chrM	8089	0	0	0	0	0	0	0	16-3584
+chrM	8090	0	0	0	0	0	0	0	16-3584
+chrM	8091	0	0	0	0	0	0	0	16-3584
+chrM	8092	0	0	0	0	0	0	0	16-3584
+chrM	8093	0	0	0	0	0	0	0	16-3584
+chrM	8094	0	0	0	0	0	0	0	16-3584
+chrM	8095	0	0	0	0	0	0	0	16-3584
+chrM	8096	0	0	0	0	0	0	0	16-3584
+chrM	8097	0	0	0	0	0	0	0	16-3584
+chrM	8098	0	0	0	0	0	0	0	16-3584
+chrM	8099	0	0	0	0	0	0	0	16-3584
+chrM	8100	0	0	0	0	0	0	0	16-3584
+chrM	8101	0	0	0	0	0	0	0	16-3584
+chrM	8102	0	0	0	0	0	0	0	16-3584
+chrM	8103	0	0	0	0	0	0	0	16-3584
+chrM	8104	0	0	0	0	0	0	0	16-3584
+chrM	8105	0	0	0	0	0	0	0	16-3584
+chrM	8106	0	0	0	0	0	0	0	16-3584
+chrM	8107	0	0	0	0	0	0	0	16-3584
+chrM	8108	0	0	0	0	0	0	0	16-3584
+chrM	8109	0	0	0	0	0	0	0	16-3584
+chrM	8110	0	0	0	0	0	0	0	16-3584
+chrM	8111	0	0	0	0	0	0	0	16-3584
+chrM	8112	0	0	0	0	0	0	0	16-3584
+chrM	8113	0	0	0	0	0	0	0	16-3584
+chrM	8114	0	0	0	0	0	0	0	16-3584
+chrM	8115	0	0	0	0	0	0	0	16-3584
+chrM	8116	0	0	0	0	0	0	0	16-3584
+chrM	8117	0	0	0	0	0	0	0	16-3584
+chrM	8118	0	0	0	0	0	0	0	16-3584
+chrM	8119	0	0	0	0	0	0	0	16-3584
+chrM	8120	0	0	0	0	0	0	0	16-3584
+chrM	8121	0	0	0	0	0	0	0	16-3584
+chrM	8122	0	0	0	0	0	0	0	16-3584
+chrM	8123	0	0	0	0	0	0	0	16-3584
+chrM	8124	0	0	0	0	0	0	0	16-3584
+chrM	8125	0	0	0	0	0	0	0	16-3584
+chrM	8126	0	0	0	0	0	0	0	16-3584
+chrM	8127	0	0	0	0	0	0	0	16-3584
+chrM	8128	0	0	0	0	0	0	0	16-3584
+chrM	8129	0	0	0	0	0	0	0	16-3584
+chrM	8130	0	0	0	0	0	0	0	16-3584
+chrM	8131	0	0	0	0	0	0	0	16-3584
+chrM	8132	0	0	0	0	0	0	0	16-3584
+chrM	8133	0	0	0	0	0	0	0	16-3584
+chrM	8134	0	0	0	0	0	0	0	16-3584
+chrM	8135	0	0	0	0	0	0	0	16-3584
+chrM	8136	0	0	0	0	0	0	0	16-3584
+chrM	8137	0	0	0	0	0	0	0	16-3584
+chrM	8138	0	0	0	0	0	0	0	16-3584
+chrM	8139	0	0	0	0	0	0	0	16-3584
+chrM	8140	0	0	0	0	0	0	0	16-3584
+chrM	8141	0	0	0	0	0	0	0	16-3584
+chrM	8142	0	0	0	0	0	0	0	16-3584
+chrM	8143	0	0	0	0	0	0	0	16-3584
+chrM	8144	0	0	0	0	0	0	0	16-3584
+chrM	8145	0	0	0	0	0	0	0	16-3584
+chrM	8146	0	0	0	0	0	0	0	16-3584
+chrM	8147	0	0	0	0	0	0	0	16-3584
+chrM	8148	0	0	0	0	0	0	0	16-3584
+chrM	8149	0	0	0	0	0	0	0	16-3584
+chrM	8150	0	0	0	0	0	0	0	16-3584
+chrM	8151	0	0	0	0	0	0	0	16-3584
+chrM	8152	0	0	0	0	0	0	0	16-3584
+chrM	8153	0	0	0	0	0	0	0	16-3584
+chrM	8154	0	0	0	0	0	0	0	16-3584
+chrM	8155	0	0	0	0	0	0	0	16-3584
+chrM	8156	0	0	0	0	0	0	0	16-3584
+chrM	8157	0	0	0	0	0	0	0	16-3584
+chrM	8158	0	0	0	0	0	0	0	16-3584
+chrM	8159	0	0	0	0	0	0	0	16-3584
+chrM	8160	0	0	0	0	0	0	0	16-3584
+chrM	8161	0	0	0	0	0	0	0	16-3584
+chrM	8162	0	0	0	0	0	0	0	16-3584
+chrM	8163	0	0	0	0	0	0	0	16-3584
+chrM	8164	0	0	0	0	0	0	0	16-3584
+chrM	8165	0	0	0	0	0	0	0	16-3584
+chrM	8166	0	0	0	0	0	0	0	16-3584
+chrM	8167	0	0	0	0	0	0	0	16-3584
+chrM	8168	0	0	0	0	0	0	0	16-3584
+chrM	8169	0	0	0	0	0	0	0	16-3584
+chrM	8170	0	0	0	0	0	0	0	16-3584
+chrM	8171	0	0	0	0	0	0	0	16-3584
+chrM	8172	0	0	0	0	0	0	0	16-3584
+chrM	8173	0	0	0	0	0	0	0	16-3584
+chrM	8174	0	0	0	0	0	0	0	16-3584
+chrM	8175	0	0	0	0	0	0	0	16-3584
+chrM	8176	0	0	0	0	0	0	0	16-3584
+chrM	8177	0	0	0	0	0	0	0	16-3584
+chrM	8178	0	0	0	0	0	0	0	16-3584
+chrM	8179	0	0	0	0	0	0	0	16-3584
+chrM	8180	0	0	0	0	0	0	0	16-3584
+chrM	8181	0	0	0	0	0	0	0	16-3584
+chrM	8182	0	0	0	0	0	0	0	16-3584
+chrM	8183	0	0	0	0	0	0	0	16-3584
+chrM	8184	0	0	0	0	0	0	0	16-3584
+chrM	8185	0	0	0	0	0	0	0	16-3584
+chrM	8186	0	0	0	0	0	0	0	16-3584
+chrM	8187	0	0	0	0	0	0	0	16-3584
+chrM	8188	0	0	0	0	0	0	0	16-3584
+chrM	8189	0	0	0	0	0	0	0	16-3584
+chrM	8190	0	0	0	0	0	0	0	16-3584
+chrM	8191	0	0	0	0	0	0	0	16-3584
+chrM	8192	0	0	0	0	0	0	0	16-3584
+chrM	8193	0	0	0	0	0	0	0	16-3584
+chrM	8194	0	0	0	0	0	0	0	16-3584
+chrM	8195	0	0	0	0	0	0	0	16-3584
+chrM	8196	0	0	0	0	0	0	0	16-3584
+chrM	8197	0	0	0	0	0	0	0	16-3584
+chrM	8198	0	0	0	0	0	0	0	16-3584
+chrM	8199	0	0	0	0	0	0	0	16-3584
+chrM	8200	0	0	0	0	0	0	0	16-3584
+chrM	8201	0	0	0	0	0	0	0	16-3584
+chrM	8202	0	0	0	0	0	0	0	16-3584
+chrM	8203	0	0	0	0	0	0	0	16-3584
+chrM	8204	0	0	0	0	0	0	0	16-3584
+chrM	8205	0	0	0	0	0	0	0	16-3584
+chrM	8206	0	0	0	0	0	0	0	16-3584
+chrM	8207	0	0	0	0	0	0	0	16-3584
+chrM	8208	0	0	0	0	0	0	0	16-3584
+chrM	8209	0	0	0	0	0	0	0	16-3584
+chrM	8210	0	0	0	0	0	0	0	16-3584
+chrM	8211	0	0	0	0	0	0	0	16-3584
+chrM	8212	0	0	0	0	0	0	0	16-3584
+chrM	8213	0	0	0	0	0	0	0	16-3584
+chrM	8214	0	0	0	0	0	0	0	16-3584
+chrM	8215	0	0	0	0	0	0	0	16-3584
+chrM	8216	0	0	0	0	0	0	0	16-3584
+chrM	8217	0	0	0	0	0	0	0	16-3584
+chrM	8218	0	0	0	0	0	0	0	16-3584
+chrM	8219	0	0	0	0	0	0	0	16-3584
+chrM	8220	0	0	0	0	0	0	0	16-3584
+chrM	8221	0	0	0	0	0	0	0	16-3584
+chrM	8222	0	0	0	0	0	0	0	16-3584
+chrM	8223	0	0	0	0	0	0	0	16-3584
+chrM	8224	0	0	0	0	0	0	0	16-3584
+chrM	8225	0	0	0	0	0	0	0	16-3584
+chrM	8226	0	0	0	0	0	0	0	16-3584
+chrM	8227	0	0	0	0	0	0	0	16-3584
+chrM	8228	0	0	0	0	0	0	0	16-3584
+chrM	8229	0	0	0	0	0	0	0	16-3584
+chrM	8230	0	0	0	0	0	0	0	16-3584
+chrM	8231	0	0	0	0	0	0	0	16-3584
+chrM	8232	0	0	0	0	0	0	0	16-3584
+chrM	8233	0	0	0	0	0	0	0	16-3584
+chrM	8234	0	0	0	0	0	0	0	16-3584
+chrM	8235	0	0	0	0	0	0	0	16-3584
+chrM	8236	0	0	0	0	0	0	0	16-3584
+chrM	8237	0	0	0	0	0	0	0	16-3584
+chrM	8238	0	0	0	0	0	0	0	16-3584
+chrM	8239	0	0	0	0	0	0	0	16-3584
+chrM	8240	0	0	0	0	0	0	0	16-3584
+chrM	8241	0	0	0	0	0	0	0	16-3584
+chrM	8242	0	0	0	0	0	0	0	16-3584
+chrM	8243	0	0	0	0	0	0	0	16-3584
+chrM	8244	0	0	0	0	0	0	0	16-3584
+chrM	8245	0	0	0	0	0	0	0	16-3584
+chrM	8246	0	0	0	0	0	0	0	16-3584
+chrM	8247	0	0	0	0	0	0	0	16-3584
+chrM	8248	0	0	0	0	0	0	0	16-3584
+chrM	8249	0	0	0	0	0	0	0	16-3584
+chrM	8250	0	0	0	0	0	0	0	16-3584
+chrM	8251	0	0	0	0	0	0	0	16-3584
+chrM	8252	0	0	0	0	0	0	0	16-3584
+chrM	8253	0	0	0	0	0	0	0	16-3584
+chrM	8254	0	0	0	0	0	0	0	16-3584
+chrM	8255	0	0	0	0	0	0	0	16-3584
+chrM	8256	0	0	0	0	0	0	0	16-3584
+chrM	8257	0	0	0	0	0	0	0	16-3584
+chrM	8258	0	0	0	0	0	0	0	16-3584
+chrM	8259	0	0	0	0	0	0	0	16-3584
+chrM	8260	0	0	0	0	0	0	0	16-3584
+chrM	8261	0	0	0	0	0	0	0	16-3584
+chrM	8262	0	0	0	0	0	0	0	16-3584
+chrM	8263	0	0	0	0	0	0	0	16-3584
+chrM	8264	0	0	0	0	0	0	0	16-3584
+chrM	8265	0	0	0	0	0	0	0	16-3584
+chrM	8266	0	0	0	0	0	0	0	16-3584
+chrM	8267	0	0	0	0	0	0	0	16-3584
+chrM	8268	0	0	0	0	0	0	0	16-3584
+chrM	8269	0	0	0	0	0	0	0	16-3584
+chrM	8270	0	0	0	0	0	0	0	16-3584
+chrM	8271	0	0	0	0	0	0	0	16-3584
+chrM	8272	0	0	0	0	0	0	0	16-3584
+chrM	8273	0	0	0	0	0	0	0	16-3584
+chrM	8274	0	0	0	0	0	0	0	16-3584
+chrM	8275	0	0	0	0	0	0	0	16-3584
+chrM	8276	0	0	0	0	0	0	0	16-3584
+chrM	8277	0	0	0	0	0	0	0	16-3584
+chrM	8278	0	0	0	0	0	0	0	16-3584
+chrM	8279	0	0	0	0	0	0	0	16-3584
+chrM	8280	0	0	0	0	0	0	0	16-3584
+chrM	8281	0	0	0	0	0	0	0	16-3584
+chrM	8282	0	0	0	0	0	0	0	16-3584
+chrM	8283	0	0	0	0	0	0	0	16-3584
+chrM	8284	0	0	0	0	0	0	0	16-3584
+chrM	8285	0	0	0	0	0	0	0	16-3584
+chrM	8286	0	0	0	0	0	0	0	16-3584
+chrM	8287	0	0	0	0	0	0	0	16-3584
+chrM	8288	0	0	0	0	0	0	0	16-3584
+chrM	8289	0	0	0	0	0	0	0	16-3584
+chrM	8290	0	0	0	0	0	0	0	16-3584
+chrM	8291	0	0	0	0	0	0	0	16-3584
+chrM	8292	0	0	0	0	0	0	0	16-3584
+chrM	8293	0	0	0	0	0	0	0	16-3584
+chrM	8294	0	0	0	0	0	0	0	16-3584
+chrM	8295	0	0	0	0	0	0	0	16-3584
+chrM	8296	0	0	0	0	0	0	0	16-3584
+chrM	8297	0	0	0	0	0	0	0	16-3584
+chrM	8298	0	0	0	0	0	0	0	16-3584
+chrM	8299	0	0	0	0	0	0	0	16-3584
+chrM	8300	0	0	0	0	0	0	0	16-3584
+chrM	8301	0	0	0	0	0	0	0	16-3584
+chrM	8302	0	0	0	0	0	0	0	16-3584
+chrM	8303	0	0	0	0	0	0	0	16-3584
+chrM	8304	0	0	0	0	0	0	0	16-3584
+chrM	8305	0	0	0	0	0	0	0	16-3584
+chrM	8306	0	0	0	0	0	0	0	16-3584
+chrM	8307	0	0	0	0	0	0	0	16-3584
+chrM	8308	0	0	0	0	0	0	0	16-3584
+chrM	8309	0	0	0	0	0	0	0	16-3584
+chrM	8310	0	0	0	0	0	0	0	16-3584
+chrM	8311	0	0	0	0	0	0	0	16-3584
+chrM	8312	0	0	0	0	0	0	0	16-3584
+chrM	8313	0	0	0	0	0	0	0	16-3584
+chrM	8314	0	0	0	0	0	0	0	16-3584
+chrM	8315	0	0	0	0	0	0	0	16-3584
+chrM	8316	0	0	0	0	0	0	0	16-3584
+chrM	8317	0	0	0	0	0	0	0	16-3584
+chrM	8318	0	0	0	0	0	0	0	16-3584
+chrM	8319	0	0	0	0	0	0	0	16-3584
+chrM	8320	0	0	0	0	0	0	0	16-3584
+chrM	8321	0	0	0	0	0	0	0	16-3584
+chrM	8322	0	0	0	0	0	0	0	16-3584
+chrM	8323	0	0	0	0	0	0	0	16-3584
+chrM	8324	0	0	0	0	0	0	0	16-3584
+chrM	8325	0	0	0	0	0	0	0	16-3584
+chrM	8326	0	0	0	0	0	0	0	16-3584
+chrM	8327	0	0	0	0	0	0	0	16-3584
+chrM	8328	0	0	0	0	0	0	0	16-3584
+chrM	8329	0	0	0	0	0	0	0	16-3584
+chrM	8330	0	0	0	0	0	0	0	16-3584
+chrM	8331	0	0	0	0	0	0	0	16-3584
+chrM	8332	0	0	0	0	0	0	0	16-3584
+chrM	8333	0	0	0	0	0	0	0	16-3584
+chrM	8334	0	0	0	0	0	0	0	16-3584
+chrM	8335	0	0	0	0	0	0	0	16-3584
+chrM	8336	0	0	0	0	0	0	0	16-3584
+chrM	8337	0	0	0	0	0	0	0	16-3584
+chrM	8338	0	0	0	0	0	0	0	16-3584
+chrM	8339	0	0	0	0	0	0	0	16-3584
+chrM	8340	0	0	0	0	0	0	0	16-3584
+chrM	8341	0	0	0	0	0	0	0	16-3584
+chrM	8342	0	0	0	0	0	0	0	16-3584
+chrM	8343	0	0	0	0	0	0	0	16-3584
+chrM	8344	0	0	0	0	0	0	0	16-3584
+chrM	8345	0	0	0	0	0	0	0	16-3584
+chrM	8346	0	0	0	0	0	0	0	16-3584
+chrM	8347	0	0	0	0	0	0	0	16-3584
+chrM	8348	0	0	0	0	0	0	0	16-3584
+chrM	8349	0	0	0	0	0	0	0	16-3584
+chrM	8350	0	0	0	0	0	0	0	16-3584
+chrM	8351	0	0	0	0	0	0	0	16-3584
+chrM	8352	0	0	0	0	0	0	0	16-3584
+chrM	8353	0	0	0	0	0	0	0	16-3584
+chrM	8354	0	0	0	0	0	0	0	16-3584
+chrM	8355	0	0	0	0	0	0	0	16-3584
+chrM	8356	0	0	0	0	0	0	0	16-3584
+chrM	8357	0	0	0	0	0	0	0	16-3584
+chrM	8358	0	0	0	0	0	0	0	16-3584
+chrM	8359	0	0	0	0	0	0	0	16-3584
+chrM	8360	0	0	0	0	0	0	0	16-3584
+chrM	8361	0	0	0	0	0	0	0	16-3584
+chrM	8362	0	0	0	0	0	0	0	16-3584
+chrM	8363	0	0	0	0	0	0	0	16-3584
+chrM	8364	0	0	0	0	0	0	0	16-3584
+chrM	8365	0	0	0	0	0	0	0	16-3584
+chrM	8366	0	0	0	0	0	0	0	16-3584
+chrM	8367	0	0	0	0	0	0	0	16-3584
+chrM	8368	0	0	0	0	0	0	0	16-3584
+chrM	8369	0	0	0	0	0	0	0	16-3584
+chrM	8370	0	0	0	0	0	0	0	16-3584
+chrM	8371	0	0	0	0	0	0	0	16-3584
+chrM	8372	0	0	0	0	0	0	0	16-3584
+chrM	8373	0	0	0	0	0	0	0	16-3584
+chrM	8374	0	0	0	0	0	0	0	16-3584
+chrM	8375	0	0	0	0	0	0	0	16-3584
+chrM	8376	0	0	0	0	0	0	0	16-3584
+chrM	8377	0	0	0	0	0	0	0	16-3584
+chrM	8378	0	0	0	0	0	0	0	16-3584
+chrM	8379	0	0	0	0	0	0	0	16-3584
+chrM	8380	0	0	0	0	0	0	0	16-3584
+chrM	8381	0	0	0	0	0	0	0	16-3584
+chrM	8382	0	0	0	0	0	0	0	16-3584
+chrM	8383	0	0	0	0	0	0	0	16-3584
+chrM	8384	0	0	0	0	0	0	0	16-3584
+chrM	8385	0	0	0	0	0	0	0	16-3584
+chrM	8386	0	0	0	0	0	0	0	16-3584
+chrM	8387	0	0	0	0	0	0	0	16-3584
+chrM	8388	0	0	0	0	0	0	0	16-3584
+chrM	8389	0	0	0	0	0	0	0	16-3584
+chrM	8390	0	0	0	0	0	0	0	16-3584
+chrM	8391	0	0	0	0	0	0	0	16-3584
+chrM	8392	0	0	0	0	0	0	0	16-3584
+chrM	8393	0	0	0	0	0	0	0	16-3584
+chrM	8394	0	0	0	0	0	0	0	16-3584
+chrM	8395	0	0	0	0	0	0	0	16-3584
+chrM	8396	0	0	0	0	0	0	0	16-3584
+chrM	8397	0	0	0	0	0	0	0	16-3584
+chrM	8398	0	0	0	0	0	0	0	16-3584
+chrM	8399	0	0	0	0	0	0	0	16-3584
+chrM	8400	0	0	0	0	0	0	0	16-3584
+chrM	8401	0	0	0	0	0	0	0	16-3584
+chrM	8402	0	0	0	0	0	0	0	16-3584
+chrM	8403	0	0	0	0	0	0	0	16-3584
+chrM	8404	0	0	0	0	0	0	0	16-3584
+chrM	8405	0	0	0	0	0	0	0	16-3584
+chrM	8406	0	0	0	0	0	0	0	16-3584
+chrM	8407	0	0	0	0	0	0	0	16-3584
+chrM	8408	0	0	0	0	0	0	0	16-3584
+chrM	8409	0	0	0	0	0	0	0	16-3584
+chrM	8410	0	0	0	0	0	0	0	16-3584
+chrM	8411	0	0	0	0	0	0	0	16-3584
+chrM	8412	0	0	0	0	0	0	0	16-3584
+chrM	8413	0	0	0	0	0	0	0	16-3584
+chrM	8414	0	0	0	0	0	0	0	16-3584
+chrM	8415	0	0	0	0	0	0	0	16-3584
+chrM	8416	0	0	0	0	0	0	0	16-3584
+chrM	8417	0	0	0	0	0	0	0	16-3584
+chrM	8418	0	0	0	0	0	0	0	16-3584
+chrM	8419	0	0	0	0	0	0	0	16-3584
+chrM	8420	0	0	0	0	0	0	0	16-3584
+chrM	8421	0	0	0	0	0	0	0	16-3584
+chrM	8422	0	0	0	0	0	0	0	16-3584
+chrM	8423	0	0	0	0	0	0	0	16-3584
+chrM	8424	0	0	0	0	0	0	0	16-3584
+chrM	8425	0	0	0	0	0	0	0	16-3584
+chrM	8426	0	0	0	0	0	0	0	16-3584
+chrM	8427	0	0	0	0	0	0	0	16-3584
+chrM	8428	0	0	0	0	0	0	0	16-3584
+chrM	8429	0	0	0	0	0	0	0	16-3584
+chrM	8430	0	0	0	0	0	0	0	16-3584
+chrM	8431	0	0	0	0	0	0	0	16-3584
+chrM	8432	0	0	0	0	0	0	0	16-3584
+chrM	8433	0	0	0	0	0	0	0	16-3584
+chrM	8434	0	0	0	0	0	0	0	16-3584
+chrM	8435	0	0	0	0	0	0	0	16-3584
+chrM	8436	0	0	0	0	0	0	0	16-3584
+chrM	8437	0	0	0	0	0	0	0	16-3584
+chrM	8438	0	0	0	0	0	0	0	16-3584
+chrM	8439	0	0	0	0	0	0	0	16-3584
+chrM	8440	0	0	0	0	0	0	0	16-3584
+chrM	8441	0	0	0	0	0	0	0	16-3584
+chrM	8442	0	0	0	0	0	0	0	16-3584
+chrM	8443	0	0	0	0	0	0	0	16-3584
+chrM	8444	0	0	0	0	0	0	0	16-3584
+chrM	8445	0	0	0	0	0	0	0	16-3584
+chrM	8446	0	0	0	0	0	0	0	16-3584
+chrM	8447	0	0	0	0	0	0	0	16-3584
+chrM	8448	0	0	0	0	0	0	0	16-3584
+chrM	8449	0	0	0	0	0	0	0	16-3584
+chrM	8450	0	0	0	0	0	0	0	16-3584
+chrM	8451	0	0	0	0	0	0	0	16-3584
+chrM	8452	0	0	0	0	0	0	0	16-3584
+chrM	8453	0	0	0	0	0	0	0	16-3584
+chrM	8454	0	0	0	0	0	0	0	16-3584
+chrM	8455	0	0	0	0	0	0	0	16-3584
+chrM	8456	0	0	0	0	0	0	0	16-3584
+chrM	8457	0	0	0	0	0	0	0	16-3584
+chrM	8458	0	0	0	0	0	0	0	16-3584
+chrM	8459	0	0	0	0	0	0	0	16-3584
+chrM	8460	0	0	0	0	0	0	0	16-3584
+chrM	8461	0	0	0	0	0	0	0	16-3584
+chrM	8462	0	0	0	0	0	0	0	16-3584
+chrM	8463	0	0	0	0	0	0	0	16-3584
+chrM	8464	0	0	0	0	0	0	0	16-3584
+chrM	8465	0	0	0	0	0	0	0	16-3584
+chrM	8466	0	0	0	0	0	0	0	16-3584
+chrM	8467	0	0	0	0	0	0	0	16-3584
+chrM	8468	0	0	0	0	0	0	0	16-3584
+chrM	8469	0	0	0	0	0	0	0	16-3584
+chrM	8470	0	0	0	0	0	0	0	16-3584
+chrM	8471	0	0	0	0	0	0	0	16-3584
+chrM	8472	0	0	0	0	0	0	0	16-3584
+chrM	8473	0	0	0	0	0	0	0	16-3584
+chrM	8474	0	0	0	0	0	0	0	16-3584
+chrM	8475	0	0	0	0	0	0	0	16-3584
+chrM	8476	0	0	0	0	0	0	0	16-3584
+chrM	8477	0	0	0	0	0	0	0	16-3584
+chrM	8478	0	0	0	0	0	0	0	16-3584
+chrM	8479	0	0	0	0	0	0	0	16-3584
+chrM	8480	0	0	0	0	0	0	0	16-3584
+chrM	8481	0	0	0	0	0	0	0	16-3584
+chrM	8482	0	0	0	0	0	0	0	16-3584
+chrM	8483	0	0	0	0	0	0	0	16-3584
+chrM	8484	0	0	0	0	0	0	0	16-3584
+chrM	8485	0	0	0	0	0	0	0	16-3584
+chrM	8486	0	0	0	0	0	0	0	16-3584
+chrM	8487	0	0	0	0	0	0	0	16-3584
+chrM	8488	0	0	0	0	0	0	0	16-3584
+chrM	8489	0	0	0	0	0	0	0	16-3584
+chrM	8490	0	0	0	0	0	0	0	16-3584
+chrM	8491	0	0	0	0	0	0	0	16-3584
+chrM	8492	0	0	0	0	0	0	0	16-3584
+chrM	8493	0	0	0	0	0	0	0	16-3584
+chrM	8494	0	0	0	0	0	0	0	16-3584
+chrM	8495	0	0	0	0	0	0	0	16-3584
+chrM	8496	0	0	0	0	0	0	0	16-3584
+chrM	8497	0	0	0	0	0	0	0	16-3584
+chrM	8498	0	0	0	0	0	0	0	16-3584
+chrM	8499	0	0	0	0	0	0	0	16-3584
+chrM	8500	0	0	0	0	0	0	0	16-3584
+chrM	8501	0	0	0	0	0	0	0	16-3584
+chrM	8502	0	0	0	0	0	0	0	16-3584
+chrM	8503	0	0	0	0	0	0	0	16-3584
+chrM	8504	0	0	0	0	0	0	0	16-3584
+chrM	8505	0	0	0	0	0	0	0	16-3584
+chrM	8506	0	0	0	0	0	0	0	16-3584
+chrM	8507	0	0	0	0	0	0	0	16-3584
+chrM	8508	0	0	0	0	0	0	0	16-3584
+chrM	8509	0	0	0	0	0	0	0	16-3584
+chrM	8510	0	0	0	0	0	0	0	16-3584
+chrM	8511	0	0	0	0	0	0	0	16-3584
+chrM	8512	0	0	0	0	0	0	0	16-3584
+chrM	8513	0	0	0	0	0	0	0	16-3584
+chrM	8514	0	0	0	0	0	0	0	16-3584
+chrM	8515	0	0	0	0	0	0	0	16-3584
+chrM	8516	0	0	0	0	0	0	0	16-3584
+chrM	8517	0	0	0	0	0	0	0	16-3584
+chrM	8518	0	0	0	0	0	0	0	16-3584
+chrM	8519	0	0	0	0	0	0	0	16-3584
+chrM	8520	0	0	0	0	0	0	0	16-3584
+chrM	8521	0	0	0	0	0	0	0	16-3584
+chrM	8522	0	0	0	0	0	0	0	16-3584
+chrM	8523	0	0	0	0	0	0	0	16-3584
+chrM	8524	0	0	0	0	0	0	0	16-3584
+chrM	8525	0	0	0	0	0	0	0	16-3584
+chrM	8526	0	0	0	0	0	0	0	16-3584
+chrM	8527	0	0	0	0	0	0	0	16-3584
+chrM	8528	0	0	0	0	0	0	0	16-3584
+chrM	8529	0	0	0	0	0	0	0	16-3584
+chrM	8530	0	0	0	0	0	0	0	16-3584
+chrM	8531	0	0	0	0	0	0	0	16-3584
+chrM	8532	0	0	0	0	0	0	0	16-3584
+chrM	8533	0	0	0	0	0	0	0	16-3584
+chrM	8534	0	0	0	0	0	0	0	16-3584
+chrM	8535	0	0	0	0	0	0	0	16-3584
+chrM	8536	0	0	0	0	0	0	0	16-3584
+chrM	8537	0	0	0	0	0	0	0	16-3584
+chrM	8538	0	0	0	0	0	0	0	16-3584
+chrM	8539	0	0	0	0	0	0	0	16-3584
+chrM	8540	0	0	0	0	0	0	0	16-3584
+chrM	8541	0	0	0	0	0	0	0	16-3584
+chrM	8542	0	0	0	0	0	0	0	16-3584
+chrM	8543	0	0	0	0	0	0	0	16-3584
+chrM	8544	0	0	0	0	0	0	0	16-3584
+chrM	8545	0	0	0	0	0	0	0	16-3584
+chrM	8546	0	0	0	0	0	0	0	16-3584
+chrM	8547	0	0	0	0	0	0	0	16-3584
+chrM	8548	0	0	0	0	0	0	0	16-3584
+chrM	8549	0	0	0	0	0	0	0	16-3584
+chrM	8550	0	0	0	0	0	0	0	16-3584
+chrM	8551	0	0	0	0	0	0	0	16-3584
+chrM	8552	0	0	0	0	0	0	0	16-3584
+chrM	8553	0	0	0	0	0	0	0	16-3584
+chrM	8554	0	0	0	0	0	0	0	16-3584
+chrM	8555	0	0	0	0	0	0	0	16-3584
+chrM	8556	0	0	0	0	0	0	0	16-3584
+chrM	8557	0	0	0	0	0	0	0	16-3584
+chrM	8558	0	0	0	0	0	0	0	16-3584
+chrM	8559	0	0	0	0	0	0	0	16-3584
+chrM	8560	0	0	0	0	0	0	0	16-3584
+chrM	8561	0	0	0	0	0	0	0	16-3584
+chrM	8562	0	0	0	0	0	0	0	16-3584
+chrM	8563	0	0	0	0	0	0	0	16-3584
+chrM	8564	0	0	0	0	0	0	0	16-3584
+chrM	8565	0	0	0	0	0	0	0	16-3584
+chrM	8566	0	0	0	0	0	0	0	16-3584
+chrM	8567	0	0	0	0	0	0	0	16-3584
+chrM	8568	0	0	0	0	0	0	0	16-3584
+chrM	8569	0	0	0	0	0	0	0	16-3584
+chrM	8570	0	0	0	0	0	0	0	16-3584
+chrM	8571	0	0	0	0	0	0	0	16-3584
+chrM	8572	0	0	0	0	0	0	0	16-3584
+chrM	8573	0	0	0	0	0	0	0	16-3584
+chrM	8574	0	0	0	0	0	0	0	16-3584
+chrM	8575	0	0	0	0	0	0	0	16-3584
+chrM	8576	0	0	0	0	0	0	0	16-3584
+chrM	8577	0	0	0	0	0	0	0	16-3584
+chrM	8578	0	0	0	0	0	0	0	16-3584
+chrM	8579	0	0	0	0	0	0	0	16-3584
+chrM	8580	0	0	0	0	0	0	0	16-3584
+chrM	8581	0	0	0	0	0	0	0	16-3584
+chrM	8582	0	0	0	0	0	0	0	16-3584
+chrM	8583	0	0	0	0	0	0	0	16-3584
+chrM	8584	0	0	0	0	0	0	0	16-3584
+chrM	8585	0	0	0	0	0	0	0	16-3584
+chrM	8586	0	0	0	0	0	0	0	16-3584
+chrM	8587	0	0	0	0	0	0	0	16-3584
+chrM	8588	0	0	0	0	0	0	0	16-3584
+chrM	8589	0	0	0	0	0	0	0	16-3584
+chrM	8590	0	0	0	0	0	0	0	16-3584
+chrM	8591	0	0	0	0	0	0	0	16-3584
+chrM	8592	0	0	0	0	0	0	0	16-3584
+chrM	8593	0	0	0	0	0	0	0	16-3584
+chrM	8594	0	0	0	0	0	0	0	16-3584
+chrM	8595	0	0	0	0	0	0	0	16-3584
+chrM	8596	0	0	0	0	0	0	0	16-3584
+chrM	8597	0	0	0	0	0	0	0	16-3584
+chrM	8598	0	0	0	0	0	0	0	16-3584
+chrM	8599	0	0	0	0	0	0	0	16-3584
+chrM	8600	0	0	0	0	0	0	0	16-3584
+chrM	8601	0	0	0	0	0	0	0	16-3584
+chrM	8602	0	0	0	0	0	0	0	16-3584
+chrM	8603	0	0	0	0	0	0	0	16-3584
+chrM	8604	0	0	0	0	0	0	0	16-3584
+chrM	8605	0	0	0	0	0	0	0	16-3584
+chrM	8606	0	0	0	0	0	0	0	16-3584
+chrM	8607	0	0	0	0	0	0	0	16-3584
+chrM	8608	0	0	0	0	0	0	0	16-3584
+chrM	8609	0	0	0	0	0	0	0	16-3584
+chrM	8610	0	0	0	0	0	0	0	16-3584
+chrM	8611	0	0	0	0	0	0	0	16-3584
+chrM	8612	0	0	0	0	0	0	0	16-3584
+chrM	8613	0	0	0	0	0	0	0	16-3584
+chrM	8614	0	0	0	0	0	0	0	16-3584
+chrM	8615	0	0	0	0	0	0	0	16-3584
+chrM	8616	0	0	0	0	0	0	0	16-3584
+chrM	8617	0	0	0	0	0	0	0	16-3584
+chrM	8618	0	0	0	0	0	0	0	16-3584
+chrM	8619	0	0	0	0	0	0	0	16-3584
+chrM	8620	0	0	0	0	0	0	0	16-3584
+chrM	8621	0	0	0	0	0	0	0	16-3584
+chrM	8622	0	0	0	0	0	0	0	16-3584
+chrM	8623	0	0	0	0	0	0	0	16-3584
+chrM	8624	0	0	0	0	0	0	0	16-3584
+chrM	8625	0	0	0	0	0	0	0	16-3584
+chrM	8626	0	0	0	0	0	0	0	16-3584
+chrM	8627	0	0	0	0	0	0	0	16-3584
+chrM	8628	0	0	0	0	0	0	0	16-3584
+chrM	8629	0	0	0	0	0	0	0	16-3584
+chrM	8630	0	0	0	0	0	0	0	16-3584
+chrM	8631	0	0	0	0	0	0	0	16-3584
+chrM	8632	0	0	0	0	0	0	0	16-3584
+chrM	8633	0	0	0	0	0	0	0	16-3584
+chrM	8634	0	0	0	0	0	0	0	16-3584
+chrM	8635	0	0	0	0	0	0	0	16-3584
+chrM	8636	0	0	0	0	0	0	0	16-3584
+chrM	8637	0	0	0	0	0	0	0	16-3584
+chrM	8638	0	0	0	0	0	0	0	16-3584
+chrM	8639	0	0	0	0	0	0	0	16-3584
+chrM	8640	0	0	0	0	0	0	0	16-3584
+chrM	8641	0	0	0	0	0	0	0	16-3584
+chrM	8642	0	0	0	0	0	0	0	16-3584
+chrM	8643	0	0	0	0	0	0	0	16-3584
+chrM	8644	0	0	0	0	0	0	0	16-3584
+chrM	8645	0	0	0	0	0	0	0	16-3584
+chrM	8646	0	0	0	0	0	0	0	16-3584
+chrM	8647	0	0	0	0	0	0	0	16-3584
+chrM	8648	0	0	0	0	0	0	0	16-3584
+chrM	8649	0	0	0	0	0	0	0	16-3584
+chrM	8650	0	0	0	0	0	0	0	16-3584
+chrM	8651	0	0	0	0	0	0	0	16-3584
+chrM	8652	0	0	0	0	0	0	0	16-3584
+chrM	8653	0	0	0	0	0	0	0	16-3584
+chrM	8654	0	0	0	0	0	0	0	16-3584
+chrM	8655	0	0	0	0	0	0	0	16-3584
+chrM	8656	0	0	0	0	0	0	0	16-3584
+chrM	8657	0	0	0	0	0	0	0	16-3584
+chrM	8658	0	0	0	0	0	0	0	16-3584
+chrM	8659	0	0	0	0	0	0	0	16-3584
+chrM	8660	0	0	0	0	0	0	0	16-3584
+chrM	8661	0	0	0	0	0	0	0	16-3584
+chrM	8662	0	0	0	0	0	0	0	16-3584
+chrM	8663	0	0	0	0	0	0	0	16-3584
+chrM	8664	0	0	0	0	0	0	0	16-3584
+chrM	8665	0	0	0	0	0	0	0	16-3584
+chrM	8666	0	0	0	0	0	0	0	16-3584
+chrM	8667	0	0	0	0	0	0	0	16-3584
+chrM	8668	0	0	0	0	0	0	0	16-3584
+chrM	8669	0	0	0	0	0	0	0	16-3584
+chrM	8670	0	0	0	0	0	0	0	16-3584
+chrM	8671	0	0	0	0	0	0	0	16-3584
+chrM	8672	0	0	0	0	0	0	0	16-3584
+chrM	8673	0	0	0	0	0	0	0	16-3584
+chrM	8674	0	0	0	0	0	0	0	16-3584
+chrM	8675	0	0	0	0	0	0	0	16-3584
+chrM	8676	0	0	0	0	0	0	0	16-3584
+chrM	8677	0	0	0	0	0	0	0	16-3584
+chrM	8678	0	0	0	0	0	0	0	16-3584
+chrM	8679	0	0	0	0	0	0	0	16-3584
+chrM	8680	0	0	0	0	0	0	0	16-3584
+chrM	8681	0	0	0	0	0	0	0	16-3584
+chrM	8682	0	0	0	0	0	0	0	16-3584
+chrM	8683	0	0	0	0	0	0	0	16-3584
+chrM	8684	0	0	0	0	0	0	0	16-3584
+chrM	8685	0	0	0	0	0	0	0	16-3584
+chrM	8686	0	0	0	0	0	0	0	16-3584
+chrM	8687	0	0	0	0	0	0	0	16-3584
+chrM	8688	0	0	0	0	0	0	0	16-3584
+chrM	8689	0	0	0	0	0	0	0	16-3584
+chrM	8690	0	0	0	0	0	0	0	16-3584
+chrM	8691	0	0	0	0	0	0	0	16-3584
+chrM	8692	0	0	0	0	0	0	0	16-3584
+chrM	8693	0	0	0	0	0	0	0	16-3584
+chrM	8694	0	0	0	0	0	0	0	16-3584
+chrM	8695	0	0	0	0	0	0	0	16-3584
+chrM	8696	0	0	0	0	0	0	0	16-3584
+chrM	8697	0	0	0	0	0	0	0	16-3584
+chrM	8698	0	0	0	0	0	0	0	16-3584
+chrM	8699	0	0	0	0	0	0	0	16-3584
+chrM	8700	0	0	0	0	0	0	0	16-3584
+chrM	8701	0	0	0	0	0	0	0	16-3584
+chrM	8702	0	0	0	0	0	0	0	16-3584
+chrM	8703	0	0	0	0	0	0	0	16-3584
+chrM	8704	0	0	0	0	0	0	0	16-3584
+chrM	8705	0	0	0	0	0	0	0	16-3584
+chrM	8706	0	0	0	0	0	0	0	16-3584
+chrM	8707	0	0	0	0	0	0	0	16-3584
+chrM	8708	0	0	0	0	0	0	0	16-3584
+chrM	8709	0	0	0	0	0	0	0	16-3584
+chrM	8710	0	0	0	0	0	0	0	16-3584
+chrM	8711	0	0	0	0	0	0	0	16-3584
+chrM	8712	0	0	0	0	0	0	0	16-3584
+chrM	8713	0	0	0	0	0	0	0	16-3584
+chrM	8714	0	0	0	0	0	0	0	16-3584
+chrM	8715	0	0	0	0	0	0	0	16-3584
+chrM	8716	0	0	0	0	0	0	0	16-3584
+chrM	8717	0	0	0	0	0	0	0	16-3584
+chrM	8718	0	0	0	0	0	0	0	16-3584
+chrM	8719	0	0	0	0	0	0	0	16-3584
+chrM	8720	0	0	0	0	0	0	0	16-3584
+chrM	8721	0	0	0	0	0	0	0	16-3584
+chrM	8722	0	0	0	0	0	0	0	16-3584
+chrM	8723	0	0	0	0	0	0	0	16-3584
+chrM	8724	0	0	0	0	0	0	0	16-3584
+chrM	8725	0	0	0	0	0	0	0	16-3584
+chrM	8726	0	0	0	0	0	0	0	16-3584
+chrM	8727	0	0	0	0	0	0	0	16-3584
+chrM	8728	0	0	0	0	0	0	0	16-3584
+chrM	8729	0	0	0	0	0	0	0	16-3584
+chrM	8730	0	0	0	0	0	0	0	16-3584
+chrM	8731	0	0	0	0	0	0	0	16-3584
+chrM	8732	0	0	0	0	0	0	0	16-3584
+chrM	8733	0	0	0	0	0	0	0	16-3584
+chrM	8734	0	0	0	0	0	0	0	16-3584
+chrM	8735	0	0	0	0	0	0	0	16-3584
+chrM	8736	0	0	0	0	0	0	0	16-3584
+chrM	8737	0	0	0	0	0	0	0	16-3584
+chrM	8738	0	0	0	0	0	0	0	16-3584
+chrM	8739	0	0	0	0	0	0	0	16-3584
+chrM	8740	0	0	0	0	0	0	0	16-3584
+chrM	8741	0	0	0	0	0	0	0	16-3584
+chrM	8742	0	0	0	0	0	0	0	16-3584
+chrM	8743	0	0	0	0	0	0	0	16-3584
+chrM	8744	0	0	0	0	0	0	0	16-3584
+chrM	8745	0	0	0	0	0	0	0	16-3584
+chrM	8746	0	0	0	0	0	0	0	16-3584
+chrM	8747	0	0	0	0	0	0	0	16-3584
+chrM	8748	0	0	0	0	0	0	0	16-3584
+chrM	8749	0	0	0	0	0	0	0	16-3584
+chrM	8750	0	0	0	0	0	0	0	16-3584
+chrM	8751	0	0	0	0	0	0	0	16-3584
+chrM	8752	0	0	0	0	0	0	0	16-3584
+chrM	8753	0	0	0	0	0	0	0	16-3584
+chrM	8754	0	0	0	0	0	0	0	16-3584
+chrM	8755	0	0	0	0	0	0	0	16-3584
+chrM	8756	0	0	0	0	0	0	0	16-3584
+chrM	8757	0	0	0	0	0	0	0	16-3584
+chrM	8758	0	0	0	0	0	0	0	16-3584
+chrM	8759	0	0	0	0	0	0	0	16-3584
+chrM	8760	0	0	0	0	0	0	0	16-3584
+chrM	8761	0	0	0	0	0	0	0	16-3584
+chrM	8762	0	0	0	0	0	0	0	16-3584
+chrM	8763	0	0	0	0	0	0	0	16-3584
+chrM	8764	0	0	0	0	0	0	0	16-3584
+chrM	8765	0	0	0	0	0	0	0	16-3584
+chrM	8766	0	0	0	0	0	0	0	16-3584
+chrM	8767	0	0	0	0	0	0	0	16-3584
+chrM	8768	0	0	0	0	0	0	0	16-3584
+chrM	8769	0	0	0	0	0	0	0	16-3584
+chrM	8770	0	0	0	0	0	0	0	16-3584
+chrM	8771	0	0	0	0	0	0	0	16-3584
+chrM	8772	0	0	0	0	0	0	0	16-3584
+chrM	8773	0	0	0	0	0	0	0	16-3584
+chrM	8774	0	0	0	0	0	0	0	16-3584
+chrM	8775	0	0	0	0	0	0	0	16-3584
+chrM	8776	0	0	0	0	0	0	0	16-3584
+chrM	8777	0	0	0	0	0	0	0	16-3584
+chrM	8778	0	0	0	0	0	0	0	16-3584
+chrM	8779	0	0	0	0	0	0	0	16-3584
+chrM	8780	0	0	0	0	0	0	0	16-3584
+chrM	8781	0	0	0	0	0	0	0	16-3584
+chrM	8782	0	0	0	0	0	0	0	16-3584
+chrM	8783	0	0	0	0	0	0	0	16-3584
+chrM	8784	0	0	0	0	0	0	0	16-3584
+chrM	8785	0	0	0	0	0	0	0	16-3584
+chrM	8786	0	0	0	0	0	0	0	16-3584
+chrM	8787	0	0	0	0	0	0	0	16-3584
+chrM	8788	0	0	0	0	0	0	0	16-3584
+chrM	8789	0	0	0	0	0	0	0	16-3584
+chrM	8790	0	0	0	0	0	0	0	16-3584
+chrM	8791	0	0	0	0	0	0	0	16-3584
+chrM	8792	0	0	0	0	0	0	0	16-3584
+chrM	8793	0	0	0	0	0	0	0	16-3584
+chrM	8794	0	0	0	0	0	0	0	16-3584
+chrM	8795	0	0	0	0	0	0	0	16-3584
+chrM	8796	0	0	0	0	0	0	0	16-3584
+chrM	8797	0	0	0	0	0	0	0	16-3584
+chrM	8798	0	0	0	0	0	0	0	16-3584
+chrM	8799	0	0	0	0	0	0	0	16-3584
+chrM	8800	0	0	0	0	0	0	0	16-3584
+chrM	8801	0	0	0	0	0	0	0	16-3584
+chrM	8802	0	0	0	0	0	0	0	16-3584
+chrM	8803	0	0	0	0	0	0	0	16-3584
+chrM	8804	0	0	0	0	0	0	0	16-3584
+chrM	8805	0	0	0	0	0	0	0	16-3584
+chrM	8806	0	0	0	0	0	0	0	16-3584
+chrM	8807	0	0	0	0	0	0	0	16-3584
+chrM	8808	0	0	0	0	0	0	0	16-3584
+chrM	8809	0	0	0	0	0	0	0	16-3584
+chrM	8810	0	0	0	0	0	0	0	16-3584
+chrM	8811	0	0	0	0	0	0	0	16-3584
+chrM	8812	0	0	0	0	0	0	0	16-3584
+chrM	8813	0	0	0	0	0	0	0	16-3584
+chrM	8814	0	0	0	0	0	0	0	16-3584
+chrM	8815	0	0	0	0	0	0	0	16-3584
+chrM	8816	0	0	0	0	0	0	0	16-3584
+chrM	8817	0	0	0	0	0	0	0	16-3584
+chrM	8818	0	0	0	0	0	0	0	16-3584
+chrM	8819	0	0	0	0	0	0	0	16-3584
+chrM	8820	0	0	0	0	0	0	0	16-3584
+chrM	8821	0	0	0	0	0	0	0	16-3584
+chrM	8822	0	0	0	0	0	0	0	16-3584
+chrM	8823	0	0	0	0	0	0	0	16-3584
+chrM	8824	0	0	0	0	0	0	0	16-3584
+chrM	8825	0	0	0	0	0	0	0	16-3584
+chrM	8826	0	0	0	0	0	0	0	16-3584
+chrM	8827	0	0	0	0	0	0	0	16-3584
+chrM	8828	0	0	0	0	0	0	0	16-3584
+chrM	8829	0	0	0	0	0	0	0	16-3584
+chrM	8830	0	0	0	0	0	0	0	16-3584
+chrM	8831	0	0	0	0	0	0	0	16-3584
+chrM	8832	0	0	0	0	0	0	0	16-3584
+chrM	8833	0	0	0	0	0	0	0	16-3584
+chrM	8834	0	0	0	0	0	0	0	16-3584
+chrM	8835	0	0	0	0	0	0	0	16-3584
+chrM	8836	0	0	0	0	0	0	0	16-3584
+chrM	8837	0	0	0	0	0	0	0	16-3584
+chrM	8838	0	0	0	0	0	0	0	16-3584
+chrM	8839	0	0	0	0	0	0	0	16-3584
+chrM	8840	0	0	0	0	0	0	0	16-3584
+chrM	8841	0	0	0	0	0	0	0	16-3584
+chrM	8842	0	0	0	0	0	0	0	16-3584
+chrM	8843	0	0	0	0	0	0	0	16-3584
+chrM	8844	0	0	0	0	0	0	0	16-3584
+chrM	8845	0	0	0	0	0	0	0	16-3584
+chrM	8846	0	0	0	0	0	0	0	16-3584
+chrM	8847	0	0	0	0	0	0	0	16-3584
+chrM	8848	0	0	0	0	0	0	0	16-3584
+chrM	8849	0	0	0	0	0	0	0	16-3584
+chrM	8850	0	0	0	0	0	0	0	16-3584
+chrM	8851	0	0	0	0	0	0	0	16-3584
+chrM	8852	0	0	0	0	0	0	0	16-3584
+chrM	8853	0	0	0	0	0	0	0	16-3584
+chrM	8854	0	0	0	0	0	0	0	16-3584
+chrM	8855	0	0	0	0	0	0	0	16-3584
+chrM	8856	0	0	0	0	0	0	0	16-3584
+chrM	8857	0	0	0	0	0	0	0	16-3584
+chrM	8858	0	0	0	0	0	0	0	16-3584
+chrM	8859	0	0	0	0	0	0	0	16-3584
+chrM	8860	0	0	0	0	0	0	0	16-3584
+chrM	8861	0	0	0	0	0	0	0	16-3584
+chrM	8862	0	0	0	0	0	0	0	16-3584
+chrM	8863	0	0	0	0	0	0	0	16-3584
+chrM	8864	0	0	0	0	0	0	0	16-3584
+chrM	8865	0	0	0	0	0	0	0	16-3584
+chrM	8866	0	0	0	0	0	0	0	16-3584
+chrM	8867	0	0	0	0	0	0	0	16-3584
+chrM	8868	0	0	0	0	0	0	0	16-3584
+chrM	8869	0	0	0	0	0	0	0	16-3584
+chrM	8870	0	0	0	0	0	0	0	16-3584
+chrM	8871	0	0	0	0	0	0	0	16-3584
+chrM	8872	0	0	0	0	0	0	0	16-3584
+chrM	8873	0	0	0	0	0	0	0	16-3584
+chrM	8874	0	0	0	0	0	0	0	16-3584
+chrM	8875	0	0	0	0	0	0	0	16-3584
+chrM	8876	0	0	0	0	0	0	0	16-3584
+chrM	8877	0	0	0	0	0	0	0	16-3584
+chrM	8878	0	0	0	0	0	0	0	16-3584
+chrM	8879	0	0	0	0	0	0	0	16-3584
+chrM	8880	0	0	0	0	0	0	0	16-3584
+chrM	8881	0	0	0	0	0	0	0	16-3584
+chrM	8882	0	0	0	0	0	0	0	16-3584
+chrM	8883	0	0	0	0	0	0	0	16-3584
+chrM	8884	0	0	0	0	0	0	0	16-3584
+chrM	8885	0	0	0	0	0	0	0	16-3584
+chrM	8886	0	0	0	0	0	0	0	16-3584
+chrM	8887	0	0	0	0	0	0	0	16-3584
+chrM	8888	0	0	0	0	0	0	0	16-3584
+chrM	8889	0	0	0	0	0	0	0	16-3584
+chrM	8890	0	0	0	0	0	0	0	16-3584
+chrM	8891	0	0	0	0	0	0	0	16-3584
+chrM	8892	0	0	0	0	0	0	0	16-3584
+chrM	8893	0	0	0	0	0	0	0	16-3584
+chrM	8894	0	0	0	0	0	0	0	16-3584
+chrM	8895	0	0	0	0	0	0	0	16-3584
+chrM	8896	0	0	0	0	0	0	0	16-3584
+chrM	8897	0	0	0	0	0	0	0	16-3584
+chrM	8898	0	0	0	0	0	0	0	16-3584
+chrM	8899	0	0	0	0	0	0	0	16-3584
+chrM	8900	0	0	0	0	0	0	0	16-3584
+chrM	8901	0	0	0	0	0	0	0	16-3584
+chrM	8902	0	0	0	0	0	0	0	16-3584
+chrM	8903	0	0	0	0	0	0	0	16-3584
+chrM	8904	0	0	0	0	0	0	0	16-3584
+chrM	8905	0	0	0	0	0	0	0	16-3584
+chrM	8906	0	0	0	0	0	0	0	16-3584
+chrM	8907	0	0	0	0	0	0	0	16-3584
+chrM	8908	0	0	0	0	0	0	0	16-3584
+chrM	8909	0	0	0	0	0	0	0	16-3584
+chrM	8910	0	0	0	0	0	0	0	16-3584
+chrM	8911	0	0	0	0	0	0	0	16-3584
+chrM	8912	0	0	0	0	0	0	0	16-3584
+chrM	8913	0	0	0	0	0	0	0	16-3584
+chrM	8914	0	0	0	0	0	0	0	16-3584
+chrM	8915	0	0	0	0	0	0	0	16-3584
+chrM	8916	0	0	0	0	0	0	0	16-3584
+chrM	8917	0	0	0	0	0	0	0	16-3584
+chrM	8918	0	0	0	0	0	0	0	16-3584
+chrM	8919	0	0	0	0	0	0	0	16-3584
+chrM	8920	0	0	0	0	0	0	0	16-3584
+chrM	8921	0	0	0	0	0	0	0	16-3584
+chrM	8922	0	0	0	0	0	0	0	16-3584
+chrM	8923	0	0	0	0	0	0	0	16-3584
+chrM	8924	0	0	0	0	0	0	0	16-3584
+chrM	8925	0	0	0	0	0	0	0	16-3584
+chrM	8926	0	0	0	0	0	0	0	16-3584
+chrM	8927	0	0	0	0	0	0	0	16-3584
+chrM	8928	0	0	0	0	0	0	0	16-3584
+chrM	8929	0	0	0	0	0	0	0	16-3584
+chrM	8930	0	0	0	0	0	0	0	16-3584
+chrM	8931	0	0	0	0	0	0	0	16-3584
+chrM	8932	0	0	0	0	0	0	0	16-3584
+chrM	8933	0	0	0	0	0	0	0	16-3584
+chrM	8934	0	0	0	0	0	0	0	16-3584
+chrM	8935	0	0	0	0	0	0	0	16-3584
+chrM	8936	0	0	0	0	0	0	0	16-3584
+chrM	8937	0	0	0	0	0	0	0	16-3584
+chrM	8938	0	0	0	0	0	0	0	16-3584
+chrM	8939	0	0	0	0	0	0	0	16-3584
+chrM	8940	0	0	0	0	0	0	0	16-3584
+chrM	8941	0	0	0	0	0	0	0	16-3584
+chrM	8942	0	0	0	0	0	0	0	16-3584
+chrM	8943	0	0	0	0	0	0	0	16-3584
+chrM	8944	0	0	0	0	0	0	0	16-3584
+chrM	8945	0	0	0	0	0	0	0	16-3584
+chrM	8946	0	0	0	0	0	0	0	16-3584
+chrM	8947	0	0	0	0	0	0	0	16-3584
+chrM	8948	0	0	0	0	0	0	0	16-3584
+chrM	8949	0	0	0	0	0	0	0	16-3584
+chrM	8950	0	0	0	0	0	0	0	16-3584
+chrM	8951	0	0	0	0	0	0	0	16-3584
+chrM	8952	0	0	0	0	0	0	0	16-3584
+chrM	8953	0	0	0	0	0	0	0	16-3584
+chrM	8954	0	0	0	0	0	0	0	16-3584
+chrM	8955	0	0	0	0	0	0	0	16-3584
+chrM	8956	0	0	0	0	0	0	0	16-3584
+chrM	8957	0	0	0	0	0	0	0	16-3584
+chrM	8958	0	0	0	0	0	0	0	16-3584
+chrM	8959	0	0	0	0	0	0	0	16-3584
+chrM	8960	0	0	0	0	0	0	0	16-3584
+chrM	8961	0	0	0	0	0	0	0	16-3584
+chrM	8962	0	0	0	0	0	0	0	16-3584
+chrM	8963	0	0	0	0	0	0	0	16-3584
+chrM	8964	0	0	0	0	0	0	0	16-3584
+chrM	8965	0	0	0	0	0	0	0	16-3584
+chrM	8966	0	0	0	0	0	0	0	16-3584
+chrM	8967	0	0	0	0	0	0	0	16-3584
+chrM	8968	0	0	0	0	0	0	0	16-3584
+chrM	8969	0	0	0	0	0	0	0	16-3584
+chrM	8970	0	0	0	0	0	0	0	16-3584
+chrM	8971	0	0	0	0	0	0	0	16-3584
+chrM	8972	0	0	0	0	0	0	0	16-3584
+chrM	8973	0	0	0	0	0	0	0	16-3584
+chrM	8974	0	0	0	0	0	0	0	16-3584
+chrM	8975	0	0	0	0	0	0	0	16-3584
+chrM	8976	0	0	0	0	0	0	0	16-3584
+chrM	8977	0	0	0	0	0	0	0	16-3584
+chrM	8978	0	0	0	0	0	0	0	16-3584
+chrM	8979	0	0	0	0	0	0	0	16-3584
+chrM	8980	0	0	0	0	0	0	0	16-3584
+chrM	8981	0	0	0	0	0	0	0	16-3584
+chrM	8982	0	0	0	0	0	0	0	16-3584
+chrM	8983	0	0	0	0	0	0	0	16-3584
+chrM	8984	0	0	0	0	0	0	0	16-3584
+chrM	8985	0	0	0	0	0	0	0	16-3584
+chrM	8986	0	0	0	0	0	0	0	16-3584
+chrM	8987	0	0	0	0	0	0	0	16-3584
+chrM	8988	0	0	0	0	0	0	0	16-3584
+chrM	8989	0	0	0	0	0	0	0	16-3584
+chrM	8990	0	0	0	0	0	0	0	16-3584
+chrM	8991	0	0	0	0	0	0	0	16-3584
+chrM	8992	0	0	0	0	0	0	0	16-3584
+chrM	8993	0	0	0	0	0	0	0	16-3584
+chrM	8994	0	0	0	0	0	0	0	16-3584
+chrM	8995	0	0	0	0	0	0	0	16-3584
+chrM	8996	0	0	0	0	0	0	0	16-3584
+chrM	8997	0	0	0	0	0	0	0	16-3584
+chrM	8998	0	0	0	0	0	0	0	16-3584
+chrM	8999	0	0	0	0	0	0	0	16-3584
+chrM	9000	0	0	0	0	0	0	0	16-3584
+chrM	9001	0	0	0	0	0	0	0	16-3584
+chrM	9002	0	0	0	0	0	0	0	16-3584
+chrM	9003	0	0	0	0	0	0	0	16-3584
+chrM	9004	0	0	0	0	0	0	0	16-3584
+chrM	9005	0	0	0	0	0	0	0	16-3584
+chrM	9006	0	0	0	0	0	0	0	16-3584
+chrM	9007	0	0	0	0	0	0	0	16-3584
+chrM	9008	0	0	0	0	0	0	0	16-3584
+chrM	9009	0	0	0	0	0	0	0	16-3584
+chrM	9010	0	0	0	0	0	0	0	16-3584
+chrM	9011	0	0	0	0	0	0	0	16-3584
+chrM	9012	0	0	0	0	0	0	0	16-3584
+chrM	9013	0	0	0	0	0	0	0	16-3584
+chrM	9014	0	0	0	0	0	0	0	16-3584
+chrM	9015	0	0	0	0	0	0	0	16-3584
+chrM	9016	0	0	0	0	0	0	0	16-3584
+chrM	9017	0	0	0	0	0	0	0	16-3584
+chrM	9018	0	0	0	0	0	0	0	16-3584
+chrM	9019	0	0	0	0	0	0	0	16-3584
+chrM	9020	0	0	0	0	0	0	0	16-3584
+chrM	9021	0	0	0	0	0	0	0	16-3584
+chrM	9022	0	0	0	0	0	0	0	16-3584
+chrM	9023	0	0	0	0	0	0	0	16-3584
+chrM	9024	0	0	0	0	0	0	0	16-3584
+chrM	9025	0	0	0	0	0	0	0	16-3584
+chrM	9026	0	0	0	0	0	0	0	16-3584
+chrM	9027	2	1	1	0	0	0	0	16-3584
+chrM	9028	2	0	0	0	2	0	0	16-3584
+chrM	9029	2	2	0	0	0	0	0	16-3584
+chrM	9030	2	1	0	0	1	0	0	16-3584
+chrM	9031	2	0	0	2	0	0	0	16-3584
+chrM	9032	4	0	2	0	2	0	0	16-3584
+chrM	9033	4	2	0	2	0	0	0	16-3584
+chrM	9034	4	1	1	1	1	0	0	16-3584
+chrM	9035	4	0	1	2	1	0	0	16-3584
+chrM	9036	4	1	2	0	1	0	0	16-3584
+chrM	9037	4	1	1	1	1	0	0	16-3584
+chrM	9038	4	1	0	2	1	0	0	16-3584
+chrM	9039	4	0	2	2	0	0	0	16-3584
+chrM	9040	4	0	3	0	1	0	0	16-3584
+chrM	9041	4	0	0	1	3	0	0	16-3584
+chrM	9042	4	1	2	0	1	0	0	16-3584
+chrM	9043	4	1	0	3	0	0	0	16-3584
+chrM	9044	4	2	1	1	0	0	0	16-3584
+chrM	9045	4	0	1	2	1	0	0	16-3584
+chrM	9046	4	0	2	1	1	0	0	16-3584
+chrM	9047	4	2	2	0	0	0	0	16-3584
+chrM	9048	4	0	1	2	1	0	0	16-3584
+chrM	9049	4	0	1	0	3	0	0	16-3584
+chrM	9050	4	1	1	2	0	0	0	16-3584
+chrM	9051	4	0	0	0	4	0	0	16-3584
+chrM	9052	4	1	0	2	1	0	0	16-3584
+chrM	9053	4	2	0	1	1	0	0	16-3584
+chrM	9054	4	0	2	0	2	0	0	16-3584
+chrM	9055	4	0	2	2	0	0	0	16-3584
+chrM	9056	4	2	0	1	1	0	0	16-3584
+chrM	9057	4	0	0	1	3	0	0	16-3584
+chrM	9058	4	2	1	0	1	0	0	16-3584
+chrM	9059	4	1	1	0	2	0	0	16-3584
+chrM	9060	4	0	2	0	2	0	0	16-3584
+chrM	9061	4	1	0	2	1	0	0	16-3584
+chrM	9062	4	1	1	1	1	0	0	16-3584
+chrM	9063	4	2	1	0	1	0	0	16-3584
+chrM	9064	4	1	1	2	0	0	0	16-3584
+chrM	9065	4	0	3	1	0	0	0	16-3584
+chrM	9066	4	1	0	1	2	0	0	16-3584
+chrM	9067	4	2	0	1	1	0	0	16-3584
+chrM	9068	4	0	1	1	2	0	0	16-3584
+chrM	9069	4	1	1	0	2	0	0	16-3584
+chrM	9070	4	0	0	4	0	0	0	16-3584
+chrM	9071	4	1	1	2	0	0	0	16-3584
+chrM	9072	4	3	1	0	0	0	0	16-3584
+chrM	9073	4	2	1	1	0	0	0	16-3584
+chrM	9074	4	1	1	1	1	0	0	16-3584
+chrM	9075	2	0	0	2	0	0	0	16-3584
+chrM	9076	2	0	1	1	0	0	0	16-3584
+chrM	9077	2	0	1	0	1	0	0	16-3584
+chrM	9078	2	0	1	1	0	0	0	16-3584
+chrM	9079	2	0	1	0	1	0	0	16-3584
+chrM	9080	0	0	0	0	0	0	0	16-3584
+chrM	9081	0	0	0	0	0	0	0	16-3584
+chrM	9082	0	0	0	0	0	0	0	16-3584
+chrM	9083	0	0	0	0	0	0	0	16-3584
+chrM	9084	0	0	0	0	0	0	0	16-3584
+chrM	9085	0	0	0	0	0	0	0	16-3584
+chrM	9086	0	0	0	0	0	0	0	16-3584
+chrM	9087	0	0	0	0	0	0	0	16-3584
+chrM	9088	0	0	0	0	0	0	0	16-3584
+chrM	9089	0	0	0	0	0	0	0	16-3584
+chrM	9090	0	0	0	0	0	0	0	16-3584
+chrM	9091	0	0	0	0	0	0	0	16-3584
+chrM	9092	0	0	0	0	0	0	0	16-3584
+chrM	9093	0	0	0	0	0	0	0	16-3584
+chrM	9094	0	0	0	0	0	0	0	16-3584
+chrM	9095	0	0	0	0	0	0	0	16-3584
+chrM	9096	0	0	0	0	0	0	0	16-3584
+chrM	9097	0	0	0	0	0	0	0	16-3584
+chrM	9098	0	0	0	0	0	0	0	16-3584
+chrM	9099	0	0	0	0	0	0	0	16-3584
+chrM	9100	0	0	0	0	0	0	0	16-3584
+chrM	9101	0	0	0	0	0	0	0	16-3584
+chrM	9102	0	0	0	0	0	0	0	16-3584
+chrM	9103	0	0	0	0	0	0	0	16-3584
+chrM	9104	0	0	0	0	0	0	0	16-3584
+chrM	9105	0	0	0	0	0	0	0	16-3584
+chrM	9106	0	0	0	0	0	0	0	16-3584
+chrM	9107	0	0	0	0	0	0	0	16-3584
+chrM	9108	0	0	0	0	0	0	0	16-3584
+chrM	9109	0	0	0	0	0	0	0	16-3584
+chrM	9110	0	0	0	0	0	0	0	16-3584
+chrM	9111	0	0	0	0	0	0	0	16-3584
+chrM	9112	0	0	0	0	0	0	0	16-3584
+chrM	9113	0	0	0	0	0	0	0	16-3584
+chrM	9114	0	0	0	0	0	0	0	16-3584
+chrM	9115	0	0	0	0	0	0	0	16-3584
+chrM	9116	0	0	0	0	0	0	0	16-3584
+chrM	9117	0	0	0	0	0	0	0	16-3584
+chrM	9118	0	0	0	0	0	0	0	16-3584
+chrM	9119	0	0	0	0	0	0	0	16-3584
+chrM	9120	0	0	0	0	0	0	0	16-3584
+chrM	9121	0	0	0	0	0	0	0	16-3584
+chrM	9122	0	0	0	0	0	0	0	16-3584
+chrM	9123	0	0	0	0	0	0	0	16-3584
+chrM	9124	0	0	0	0	0	0	0	16-3584
+chrM	9125	0	0	0	0	0	0	0	16-3584
+chrM	9126	0	0	0	0	0	0	0	16-3584
+chrM	9127	0	0	0	0	0	0	0	16-3584
+chrM	9128	0	0	0	0	0	0	0	16-3584
+chrM	9129	0	0	0	0	0	0	0	16-3584
+chrM	9130	0	0	0	0	0	0	0	16-3584
+chrM	9131	0	0	0	0	0	0	0	16-3584
+chrM	9132	0	0	0	0	0	0	0	16-3584
+chrM	9133	0	0	0	0	0	0	0	16-3584
+chrM	9134	0	0	0	0	0	0	0	16-3584
+chrM	9135	0	0	0	0	0	0	0	16-3584
+chrM	9136	0	0	0	0	0	0	0	16-3584
+chrM	9137	0	0	0	0	0	0	0	16-3584
+chrM	9138	0	0	0	0	0	0	0	16-3584
+chrM	9139	0	0	0	0	0	0	0	16-3584
+chrM	9140	0	0	0	0	0	0	0	16-3584
+chrM	9141	0	0	0	0	0	0	0	16-3584
+chrM	9142	0	0	0	0	0	0	0	16-3584
+chrM	9143	0	0	0	0	0	0	0	16-3584
+chrM	9144	0	0	0	0	0	0	0	16-3584
+chrM	9145	0	0	0	0	0	0	0	16-3584
+chrM	9146	0	0	0	0	0	0	0	16-3584
+chrM	9147	0	0	0	0	0	0	0	16-3584
+chrM	9148	0	0	0	0	0	0	0	16-3584
+chrM	9149	0	0	0	0	0	0	0	16-3584
+chrM	9150	0	0	0	0	0	0	0	16-3584
+chrM	9151	0	0	0	0	0	0	0	16-3584
+chrM	9152	0	0	0	0	0	0	0	16-3584
+chrM	9153	0	0	0	0	0	0	0	16-3584
+chrM	9154	0	0	0	0	0	0	0	16-3584
+chrM	9155	0	0	0	0	0	0	0	16-3584
+chrM	9156	0	0	0	0	0	0	0	16-3584
+chrM	9157	0	0	0	0	0	0	0	16-3584
+chrM	9158	0	0	0	0	0	0	0	16-3584
+chrM	9159	0	0	0	0	0	0	0	16-3584
+chrM	9160	0	0	0	0	0	0	0	16-3584
+chrM	9161	0	0	0	0	0	0	0	16-3584
+chrM	9162	0	0	0	0	0	0	0	16-3584
+chrM	9163	0	0	0	0	0	0	0	16-3584
+chrM	9164	0	0	0	0	0	0	0	16-3584
+chrM	9165	0	0	0	0	0	0	0	16-3584
+chrM	9166	0	0	0	0	0	0	0	16-3584
+chrM	9167	0	0	0	0	0	0	0	16-3584
+chrM	9168	0	0	0	0	0	0	0	16-3584
+chrM	9169	0	0	0	0	0	0	0	16-3584
+chrM	9170	0	0	0	0	0	0	0	16-3584
+chrM	9171	0	0	0	0	0	0	0	16-3584
+chrM	9172	0	0	0	0	0	0	0	16-3584
+chrM	9173	0	0	0	0	0	0	0	16-3584
+chrM	9174	0	0	0	0	0	0	0	16-3584
+chrM	9175	0	0	0	0	0	0	0	16-3584
+chrM	9176	0	0	0	0	0	0	0	16-3584
+chrM	9177	0	0	0	0	0	0	0	16-3584
+chrM	9178	0	0	0	0	0	0	0	16-3584
+chrM	9179	0	0	0	0	0	0	0	16-3584
+chrM	9180	0	0	0	0	0	0	0	16-3584
+chrM	9181	0	0	0	0	0	0	0	16-3584
+chrM	9182	0	0	0	0	0	0	0	16-3584
+chrM	9183	0	0	0	0	0	0	0	16-3584
+chrM	9184	0	0	0	0	0	0	0	16-3584
+chrM	9185	0	0	0	0	0	0	0	16-3584
+chrM	9186	0	0	0	0	0	0	0	16-3584
+chrM	9187	0	0	0	0	0	0	0	16-3584
+chrM	9188	0	0	0	0	0	0	0	16-3584
+chrM	9189	0	0	0	0	0	0	0	16-3584
+chrM	9190	0	0	0	0	0	0	0	16-3584
+chrM	9191	0	0	0	0	0	0	0	16-3584
+chrM	9192	0	0	0	0	0	0	0	16-3584
+chrM	9193	0	0	0	0	0	0	0	16-3584
+chrM	9194	0	0	0	0	0	0	0	16-3584
+chrM	9195	0	0	0	0	0	0	0	16-3584
+chrM	9196	0	0	0	0	0	0	0	16-3584
+chrM	9197	0	0	0	0	0	0	0	16-3584
+chrM	9198	0	0	0	0	0	0	0	16-3584
+chrM	9199	0	0	0	0	0	0	0	16-3584
+chrM	9200	0	0	0	0	0	0	0	16-3584
+chrM	9201	0	0	0	0	0	0	0	16-3584
+chrM	9202	0	0	0	0	0	0	0	16-3584
+chrM	9203	0	0	0	0	0	0	0	16-3584
+chrM	9204	0	0	0	0	0	0	0	16-3584
+chrM	9205	0	0	0	0	0	0	0	16-3584
+chrM	9206	0	0	0	0	0	0	0	16-3584
+chrM	9207	0	0	0	0	0	0	0	16-3584
+chrM	9208	0	0	0	0	0	0	0	16-3584
+chrM	9209	0	0	0	0	0	0	0	16-3584
+chrM	9210	0	0	0	0	0	0	0	16-3584
+chrM	9211	0	0	0	0	0	0	0	16-3584
+chrM	9212	0	0	0	0	0	0	0	16-3584
+chrM	9213	0	0	0	0	0	0	0	16-3584
+chrM	9214	0	0	0	0	0	0	0	16-3584
+chrM	9215	0	0	0	0	0	0	0	16-3584
+chrM	9216	0	0	0	0	0	0	0	16-3584
+chrM	9217	0	0	0	0	0	0	0	16-3584
+chrM	9218	0	0	0	0	0	0	0	16-3584
+chrM	9219	0	0	0	0	0	0	0	16-3584
+chrM	9220	0	0	0	0	0	0	0	16-3584
+chrM	9221	0	0	0	0	0	0	0	16-3584
+chrM	9222	0	0	0	0	0	0	0	16-3584
+chrM	9223	0	0	0	0	0	0	0	16-3584
+chrM	9224	0	0	0	0	0	0	0	16-3584
+chrM	9225	0	0	0	0	0	0	0	16-3584
+chrM	9226	0	0	0	0	0	0	0	16-3584
+chrM	9227	0	0	0	0	0	0	0	16-3584
+chrM	9228	0	0	0	0	0	0	0	16-3584
+chrM	9229	0	0	0	0	0	0	0	16-3584
+chrM	9230	0	0	0	0	0	0	0	16-3584
+chrM	9231	0	0	0	0	0	0	0	16-3584
+chrM	9232	0	0	0	0	0	0	0	16-3584
+chrM	9233	0	0	0	0	0	0	0	16-3584
+chrM	9234	0	0	0	0	0	0	0	16-3584
+chrM	9235	0	0	0	0	0	0	0	16-3584
+chrM	9236	0	0	0	0	0	0	0	16-3584
+chrM	9237	0	0	0	0	0	0	0	16-3584
+chrM	9238	0	0	0	0	0	0	0	16-3584
+chrM	9239	0	0	0	0	0	0	0	16-3584
+chrM	9240	0	0	0	0	0	0	0	16-3584
+chrM	9241	0	0	0	0	0	0	0	16-3584
+chrM	9242	0	0	0	0	0	0	0	16-3584
+chrM	9243	0	0	0	0	0	0	0	16-3584
+chrM	9244	0	0	0	0	0	0	0	16-3584
+chrM	9245	0	0	0	0	0	0	0	16-3584
+chrM	9246	0	0	0	0	0	0	0	16-3584
+chrM	9247	0	0	0	0	0	0	0	16-3584
+chrM	9248	0	0	0	0	0	0	0	16-3584
+chrM	9249	0	0	0	0	0	0	0	16-3584
+chrM	9250	0	0	0	0	0	0	0	16-3584
+chrM	9251	0	0	0	0	0	0	0	16-3584
+chrM	9252	0	0	0	0	0	0	0	16-3584
+chrM	9253	0	0	0	0	0	0	0	16-3584
+chrM	9254	0	0	0	0	0	0	0	16-3584
+chrM	9255	0	0	0	0	0	0	0	16-3584
+chrM	9256	0	0	0	0	0	0	0	16-3584
+chrM	9257	0	0	0	0	0	0	0	16-3584
+chrM	9258	0	0	0	0	0	0	0	16-3584
+chrM	9259	0	0	0	0	0	0	0	16-3584
+chrM	9260	0	0	0	0	0	0	0	16-3584
+chrM	9261	0	0	0	0	0	0	0	16-3584
+chrM	9262	0	0	0	0	0	0	0	16-3584
+chrM	9263	0	0	0	0	0	0	0	16-3584
+chrM	9264	0	0	0	0	0	0	0	16-3584
+chrM	9265	0	0	0	0	0	0	0	16-3584
+chrM	9266	0	0	0	0	0	0	0	16-3584
+chrM	9267	0	0	0	0	0	0	0	16-3584
+chrM	9268	0	0	0	0	0	0	0	16-3584
+chrM	9269	0	0	0	0	0	0	0	16-3584
+chrM	9270	0	0	0	0	0	0	0	16-3584
+chrM	9271	0	0	0	0	0	0	0	16-3584
+chrM	9272	0	0	0	0	0	0	0	16-3584
+chrM	9273	0	0	0	0	0	0	0	16-3584
+chrM	9274	0	0	0	0	0	0	0	16-3584
+chrM	9275	0	0	0	0	0	0	0	16-3584
+chrM	9276	0	0	0	0	0	0	0	16-3584
+chrM	9277	0	0	0	0	0	0	0	16-3584
+chrM	9278	2	1	0	1	0	0	0	16-3584
+chrM	9279	2	0	2	0	0	0	0	16-3584
+chrM	9280	2	0	1	0	1	0	0	16-3584
+chrM	9281	2	0	2	0	0	0	0	16-3584
+chrM	9282	2	0	0	2	0	0	0	16-3584
+chrM	9283	2	0	1	1	0	0	0	16-3584
+chrM	9284	2	0	0	1	1	0	0	16-3584
+chrM	9285	2	0	0	0	2	0	0	16-3584
+chrM	9286	2	2	0	0	0	0	0	16-3584
+chrM	9287	2	1	1	0	0	0	0	16-3584
+chrM	9288	2	0	1	1	0	0	0	16-3584
+chrM	9289	2	1	0	0	1	0	0	16-3584
+chrM	9290	2	0	0	0	2	0	0	16-3584
+chrM	9291	2	1	0	0	1	0	0	16-3584
+chrM	9292	2	1	1	0	0	0	0	16-3584
+chrM	9293	2	1	0	1	0	0	0	16-3584
+chrM	9294	2	2	0	0	0	0	0	16-3584
+chrM	9295	2	1	0	1	0	0	0	16-3584
+chrM	9296	2	1	0	1	0	0	0	16-3584
+chrM	9297	2	1	0	1	0	0	0	16-3584
+chrM	9298	2	1	0	0	1	0	0	16-3584
+chrM	9299	2	1	0	1	0	0	0	16-3584
+chrM	9300	2	1	1	0	0	0	0	16-3584
+chrM	9301	2	1	0	0	1	0	0	16-3584
+chrM	9302	2	0	1	0	1	0	0	16-3584
+chrM	9303	2	0	1	0	1	0	0	16-3584
+chrM	9304	2	1	0	0	1	0	0	16-3584
+chrM	9305	2	0	1	0	1	0	0	16-3584
+chrM	9306	2	0	1	0	1	0	0	16-3584
+chrM	9307	2	0	1	1	0	0	0	16-3584
+chrM	9308	2	1	0	0	1	0	0	16-3584
+chrM	9309	2	1	0	1	0	0	0	16-3584
+chrM	9310	2	2	0	0	0	0	0	16-3584
+chrM	9311	2	0	1	1	0	0	0	16-3584
+chrM	9312	2	1	0	0	1	0	0	16-3584
+chrM	9313	2	0	1	1	0	0	0	16-3584
+chrM	9314	2	0	2	0	0	0	0	16-3584
+chrM	9315	2	1	1	0	0	0	0	16-3584
+chrM	9316	2	0	1	1	0	0	0	16-3584
+chrM	9317	2	0	1	0	1	0	0	16-3584
+chrM	9318	2	1	0	1	0	0	0	16-3584
+chrM	9319	2	1	0	1	0	0	0	16-3584
+chrM	9320	2	2	0	0	0	0	0	16-3584
+chrM	9321	2	1	1	0	0	0	0	16-3584
+chrM	9322	4	1	0	0	3	0	0	16-3584
+chrM	9323	4	1	1	1	1	0	0	16-3584
+chrM	9324	4	1	0	1	2	0	0	16-3584
+chrM	9325	4	0	1	3	0	0	0	16-3584
+chrM	9326	4	2	1	1	0	0	0	16-3584
+chrM	9327	4	2	0	2	0	0	0	16-3584
+chrM	9328	4	1	0	1	2	0	0	16-3584
+chrM	9329	4	1	2	1	0	0	0	16-3584
+chrM	9330	4	2	1	0	1	0	0	16-3584
+chrM	9331	4	2	1	1	0	0	0	16-3584
+chrM	9332	4	2	1	0	1	0	0	16-3584
+chrM	9333	4	0	1	1	2	0	0	16-3584
+chrM	9334	4	1	2	0	1	0	0	16-3584
+chrM	9335	4	0	1	0	3	0	0	16-3584
+chrM	9336	4	1	0	1	2	0	0	16-3584
+chrM	9337	4	1	0	1	2	0	0	16-3584
+chrM	9338	4	2	0	0	2	0	0	16-3584
+chrM	9339	4	2	0	1	1	0	0	16-3584
+chrM	9340	4	3	0	1	0	0	0	16-3584
+chrM	9341	4	1	1	1	1	0	0	16-3584
+chrM	9342	4	0	1	0	3	0	0	16-3584
+chrM	9343	4	0	1	1	2	0	0	16-3584
+chrM	9344	4	0	1	2	1	0	0	16-3584
+chrM	9345	4	2	1	0	1	0	0	16-3584
+chrM	9346	4	1	3	0	0	0	0	16-3584
+chrM	9347	4	1	1	0	2	0	0	16-3584
+chrM	9348	4	2	1	1	0	0	0	16-3584
+chrM	9349	4	2	1	1	0	0	0	16-3584
+chrM	9350	4	0	0	2	2	0	0	16-3584
+chrM	9351	4	0	2	0	2	0	0	16-3584
+chrM	9352	4	1	1	2	0	0	0	16-3584
+chrM	9353	4	1	0	2	1	0	0	16-3584
+chrM	9354	4	1	0	2	1	0	0	16-3584
+chrM	9355	4	4	0	0	0	0	0	16-3584
+chrM	9356	4	2	0	1	1	0	0	16-3584
+chrM	9357	4	0	0	1	3	0	0	16-3584
+chrM	9358	4	2	1	0	1	0	0	16-3584
+chrM	9359	4	2	2	0	0	0	0	16-3584
+chrM	9360	4	2	1	0	1	0	0	16-3584
+chrM	9361	4	0	2	2	0	0	0	16-3584
+chrM	9362	4	1	1	0	2	0	0	16-3584
+chrM	9363	4	1	1	0	2	0	0	16-3584
+chrM	9364	4	2	0	1	1	0	0	16-3584
+chrM	9365	4	1	2	0	1	0	0	16-3584
+chrM	9366	4	1	2	1	0	0	0	16-3584
+chrM	9367	4	0	0	1	3	0	0	16-3584
+chrM	9368	4	3	0	1	0	0	0	16-3584
+chrM	9369	4	0	1	1	2	0	0	16-3584
+chrM	9370	4	0	0	3	1	0	0	16-3584
+chrM	9371	4	0	2	1	1	0	0	16-3584
+chrM	9372	4	1	2	1	0	0	0	16-3584
+chrM	9373	4	1	1	1	1	0	0	16-3584
+chrM	9374	4	1	0	1	2	0	0	16-3584
+chrM	9375	4	2	0	0	2	0	0	16-3584
+chrM	9376	4	0	1	3	0	0	0	16-3584
+chrM	9377	4	0	1	0	3	0	0	16-3584
+chrM	9378	4	1	1	0	2	0	0	16-3584
+chrM	9379	4	0	1	2	1	0	0	16-3584
+chrM	9380	4	2	1	0	1	0	0	16-3584
+chrM	9381	4	2	2	0	0	0	0	16-3584
+chrM	9382	4	0	1	1	2	0	0	16-3584
+chrM	9383	4	0	0	3	1	0	0	16-3584
+chrM	9384	4	0	1	2	1	0	0	16-3584
+chrM	9385	4	2	0	0	2	0	0	16-3584
+chrM	9386	4	2	0	2	0	0	0	16-3584
+chrM	9387	4	0	1	2	1	0	0	16-3584
+chrM	9388	4	1	0	1	2	0	0	16-3584
+chrM	9389	4	1	1	2	0	0	0	16-3584
+chrM	9390	4	1	1	1	1	0	0	16-3584
+chrM	9391	4	2	0	1	1	0	0	16-3584
+chrM	9392	4	0	1	1	2	0	0	16-3584
+chrM	9393	4	3	0	0	1	0	0	16-3584
+chrM	9394	4	1	1	1	1	0	0	16-3584
+chrM	9395	4	0	0	3	1	0	0	16-3584
+chrM	9396	4	2	1	0	1	0	0	16-3584
+chrM	9397	4	0	0	2	2	0	0	16-3584
+chrM	9398	4	2	1	1	0	0	0	16-3584
+chrM	9399	4	0	2	0	2	0	0	16-3584
+chrM	9400	4	1	2	0	1	0	0	16-3584
+chrM	9401	4	0	1	2	1	0	0	16-3584
+chrM	9402	4	1	2	0	1	0	0	16-3584
+chrM	9403	4	1	1	0	2	0	0	16-3584
+chrM	9404	4	2	2	0	0	0	0	16-3584
+chrM	9405	4	1	1	0	2	0	0	16-3584
+chrM	9406	4	0	1	3	0	0	0	16-3584
+chrM	9407	4	0	1	1	2	0	0	16-3584
+chrM	9408	4	1	2	0	1	0	0	16-3584
+chrM	9409	4	1	1	1	1	0	0	16-3584
+chrM	9410	4	1	1	1	1	0	0	16-3584
+chrM	9411	4	1	1	2	0	0	0	16-3584
+chrM	9412	4	1	0	1	2	0	0	16-3584
+chrM	9413	4	3	0	0	1	0	0	16-3584
+chrM	9414	4	1	2	0	1	0	0	16-3584
+chrM	9415	4	1	1	1	1	0	0	16-3584
+chrM	9416	4	1	0	2	1	0	0	16-3584
+chrM	9417	4	1	0	1	2	0	0	16-3584
+chrM	9418	4	2	0	1	1	0	0	16-3584
+chrM	9419	4	2	1	1	0	0	0	16-3584
+chrM	9420	4	1	2	0	1	0	0	16-3584
+chrM	9421	4	0	2	2	0	0	0	16-3584
+chrM	9422	4	0	0	4	0	0	0	16-3584
+chrM	9423	4	0	1	1	2	0	0	16-3584
+chrM	9424	2	1	0	0	1	0	0	16-3584
+chrM	9425	2	1	1	0	0	0	0	16-3584
+chrM	9426	2	1	1	0	0	0	0	16-3584
+chrM	9427	2	2	0	0	0	0	0	16-3584
+chrM	9428	2	0	1	1	0	0	0	16-3584
+chrM	9429	2	0	0	1	1	0	0	16-3584
+chrM	9430	2	2	0	0	0	0	0	16-3584
+chrM	9431	2	2	0	0	0	0	0	16-3584
+chrM	9432	2	0	0	1	1	0	0	16-3584
+chrM	9433	2	0	1	1	0	0	0	16-3584
+chrM	9434	2	0	0	0	2	0	0	16-3584
+chrM	9435	2	1	0	0	1	0	0	16-3584
+chrM	9436	2	0	1	1	0	0	0	16-3584
+chrM	9437	2	0	0	1	1	0	0	16-3584
+chrM	9438	2	0	0	0	2	0	0	16-3584
+chrM	9439	2	0	1	0	1	0	0	16-3584
+chrM	9440	2	0	0	1	1	0	0	16-3584
+chrM	9441	2	0	0	1	1	0	0	16-3584
+chrM	9442	2	0	1	0	1	0	0	16-3584
+chrM	9443	2	0	1	1	0	0	0	16-3584
+chrM	9444	2	0	0	1	1	0	0	16-3584
+chrM	9445	2	1	0	1	0	0	0	16-3584
+chrM	9446	2	1	0	1	0	0	0	16-3584
+chrM	9447	2	0	1	1	0	0	0	16-3584
+chrM	9448	2	0	0	0	2	0	0	16-3584
+chrM	9449	2	1	0	0	1	0	0	16-3584
+chrM	9450	2	1	0	1	0	0	0	16-3584
+chrM	9451	2	1	0	0	1	0	0	16-3584
+chrM	9452	2	0	1	1	0	0	0	16-3584
+chrM	9453	2	1	1	0	0	0	0	16-3584
+chrM	9454	2	1	1	0	0	0	0	16-3584
+chrM	9455	2	1	1	0	0	0	0	16-3584
+chrM	9456	2	2	0	0	0	0	0	16-3584
+chrM	9457	2	1	0	0	1	0	0	16-3584
+chrM	9458	2	2	0	0	0	0	0	16-3584
+chrM	9459	2	0	0	1	1	0	0	16-3584
+chrM	9460	2	0	1	0	1	0	0	16-3584
+chrM	9461	2	0	1	1	0	0	0	16-3584
+chrM	9462	2	0	1	1	0	0	0	16-3584
+chrM	9463	2	2	0	0	0	0	0	16-3584
+chrM	9464	2	1	1	0	0	0	0	16-3584
+chrM	9465	2	1	1	0	0	0	0	16-3584
+chrM	9466	0	0	0	0	0	0	0	16-3584
+chrM	9467	0	0	0	0	0	0	0	16-3584
+chrM	9468	0	0	0	0	0	0	0	16-3584
+chrM	9469	0	0	0	0	0	0	0	16-3584
+chrM	9470	0	0	0	0	0	0	0	16-3584
+chrM	9471	0	0	0	0	0	0	0	16-3584
+chrM	9472	0	0	0	0	0	0	0	16-3584
+chrM	9473	0	0	0	0	0	0	0	16-3584
+chrM	9474	0	0	0	0	0	0	0	16-3584
+chrM	9475	0	0	0	0	0	0	0	16-3584
+chrM	9476	0	0	0	0	0	0	0	16-3584
+chrM	9477	0	0	0	0	0	0	0	16-3584
+chrM	9478	0	0	0	0	0	0	0	16-3584
+chrM	9479	0	0	0	0	0	0	0	16-3584
+chrM	9480	0	0	0	0	0	0	0	16-3584
+chrM	9481	0	0	0	0	0	0	0	16-3584
+chrM	9482	0	0	0	0	0	0	0	16-3584
+chrM	9483	0	0	0	0	0	0	0	16-3584
+chrM	9484	0	0	0	0	0	0	0	16-3584
+chrM	9485	0	0	0	0	0	0	0	16-3584
+chrM	9486	0	0	0	0	0	0	0	16-3584
+chrM	9487	0	0	0	0	0	0	0	16-3584
+chrM	9488	0	0	0	0	0	0	0	16-3584
+chrM	9489	0	0	0	0	0	0	0	16-3584
+chrM	9490	0	0	0	0	0	0	0	16-3584
+chrM	9491	0	0	0	0	0	0	0	16-3584
+chrM	9492	0	0	0	0	0	0	0	16-3584
+chrM	9493	0	0	0	0	0	0	0	16-3584
+chrM	9494	0	0	0	0	0	0	0	16-3584
+chrM	9495	0	0	0	0	0	0	0	16-3584
+chrM	9496	0	0	0	0	0	0	0	16-3584
+chrM	9497	0	0	0	0	0	0	0	16-3584
+chrM	9498	0	0	0	0	0	0	0	16-3584
+chrM	9499	0	0	0	0	0	0	0	16-3584
+chrM	9500	0	0	0	0	0	0	0	16-3584
+chrM	9501	0	0	0	0	0	0	0	16-3584
+chrM	9502	0	0	0	0	0	0	0	16-3584
+chrM	9503	0	0	0	0	0	0	0	16-3584
+chrM	9504	0	0	0	0	0	0	0	16-3584
+chrM	9505	0	0	0	0	0	0	0	16-3584
+chrM	9506	0	0	0	0	0	0	0	16-3584
+chrM	9507	0	0	0	0	0	0	0	16-3584
+chrM	9508	0	0	0	0	0	0	0	16-3584
+chrM	9509	0	0	0	0	0	0	0	16-3584
+chrM	9510	0	0	0	0	0	0	0	16-3584
+chrM	9511	0	0	0	0	0	0	0	16-3584
+chrM	9512	0	0	0	0	0	0	0	16-3584
+chrM	9513	0	0	0	0	0	0	0	16-3584
+chrM	9514	0	0	0	0	0	0	0	16-3584
+chrM	9515	0	0	0	0	0	0	0	16-3584
+chrM	9516	0	0	0	0	0	0	0	16-3584
+chrM	9517	0	0	0	0	0	0	0	16-3584
+chrM	9518	0	0	0	0	0	0	0	16-3584
+chrM	9519	0	0	0	0	0	0	0	16-3584
+chrM	9520	0	0	0	0	0	0	0	16-3584
+chrM	9521	0	0	0	0	0	0	0	16-3584
+chrM	9522	0	0	0	0	0	0	0	16-3584
+chrM	9523	0	0	0	0	0	0	0	16-3584
+chrM	9524	0	0	0	0	0	0	0	16-3584
+chrM	9525	0	0	0	0	0	0	0	16-3584
+chrM	9526	0	0	0	0	0	0	0	16-3584
+chrM	9527	0	0	0	0	0	0	0	16-3584
+chrM	9528	0	0	0	0	0	0	0	16-3584
+chrM	9529	0	0	0	0	0	0	0	16-3584
+chrM	9530	0	0	0	0	0	0	0	16-3584
+chrM	9531	0	0	0	0	0	0	0	16-3584
+chrM	9532	0	0	0	0	0	0	0	16-3584
+chrM	9533	0	0	0	0	0	0	0	16-3584
+chrM	9534	0	0	0	0	0	0	0	16-3584
+chrM	9535	0	0	0	0	0	0	0	16-3584
+chrM	9536	0	0	0	0	0	0	0	16-3584
+chrM	9537	0	0	0	0	0	0	0	16-3584
+chrM	9538	0	0	0	0	0	0	0	16-3584
+chrM	9539	0	0	0	0	0	0	0	16-3584
+chrM	9540	0	0	0	0	0	0	0	16-3584
+chrM	9541	0	0	0	0	0	0	0	16-3584
+chrM	9542	0	0	0	0	0	0	0	16-3584
+chrM	9543	0	0	0	0	0	0	0	16-3584
+chrM	9544	0	0	0	0	0	0	0	16-3584
+chrM	9545	0	0	0	0	0	0	0	16-3584
+chrM	9546	0	0	0	0	0	0	0	16-3584
+chrM	9547	0	0	0	0	0	0	0	16-3584
+chrM	9548	0	0	0	0	0	0	0	16-3584
+chrM	9549	0	0	0	0	0	0	0	16-3584
+chrM	9550	0	0	0	0	0	0	0	16-3584
+chrM	9551	0	0	0	0	0	0	0	16-3584
+chrM	9552	0	0	0	0	0	0	0	16-3584
+chrM	9553	0	0	0	0	0	0	0	16-3584
+chrM	9554	0	0	0	0	0	0	0	16-3584
+chrM	9555	0	0	0	0	0	0	0	16-3584
+chrM	9556	0	0	0	0	0	0	0	16-3584
+chrM	9557	0	0	0	0	0	0	0	16-3584
+chrM	9558	0	0	0	0	0	0	0	16-3584
+chrM	9559	0	0	0	0	0	0	0	16-3584
+chrM	9560	0	0	0	0	0	0	0	16-3584
+chrM	9561	0	0	0	0	0	0	0	16-3584
+chrM	9562	0	0	0	0	0	0	0	16-3584
+chrM	9563	0	0	0	0	0	0	0	16-3584
+chrM	9564	0	0	0	0	0	0	0	16-3584
+chrM	9565	0	0	0	0	0	0	0	16-3584
+chrM	9566	0	0	0	0	0	0	0	16-3584
+chrM	9567	0	0	0	0	0	0	0	16-3584
+chrM	9568	0	0	0	0	0	0	0	16-3584
+chrM	9569	0	0	0	0	0	0	0	16-3584
+chrM	9570	0	0	0	0	0	0	0	16-3584
+chrM	9571	0	0	0	0	0	0	0	16-3584
+chrM	9572	0	0	0	0	0	0	0	16-3584
+chrM	9573	0	0	0	0	0	0	0	16-3584
+chrM	9574	0	0	0	0	0	0	0	16-3584
+chrM	9575	0	0	0	0	0	0	0	16-3584
+chrM	9576	0	0	0	0	0	0	0	16-3584
+chrM	9577	0	0	0	0	0	0	0	16-3584
+chrM	9578	0	0	0	0	0	0	0	16-3584
+chrM	9579	0	0	0	0	0	0	0	16-3584
+chrM	9580	0	0	0	0	0	0	0	16-3584
+chrM	9581	0	0	0	0	0	0	0	16-3584
+chrM	9582	0	0	0	0	0	0	0	16-3584
+chrM	9583	0	0	0	0	0	0	0	16-3584
+chrM	9584	0	0	0	0	0	0	0	16-3584
+chrM	9585	0	0	0	0	0	0	0	16-3584
+chrM	9586	0	0	0	0	0	0	0	16-3584
+chrM	9587	0	0	0	0	0	0	0	16-3584
+chrM	9588	0	0	0	0	0	0	0	16-3584
+chrM	9589	0	0	0	0	0	0	0	16-3584
+chrM	9590	0	0	0	0	0	0	0	16-3584
+chrM	9591	0	0	0	0	0	0	0	16-3584
+chrM	9592	0	0	0	0	0	0	0	16-3584
+chrM	9593	0	0	0	0	0	0	0	16-3584
+chrM	9594	0	0	0	0	0	0	0	16-3584
+chrM	9595	0	0	0	0	0	0	0	16-3584
+chrM	9596	0	0	0	0	0	0	0	16-3584
+chrM	9597	0	0	0	0	0	0	0	16-3584
+chrM	9598	0	0	0	0	0	0	0	16-3584
+chrM	9599	0	0	0	0	0	0	0	16-3584
+chrM	9600	0	0	0	0	0	0	0	16-3584
+chrM	9601	0	0	0	0	0	0	0	16-3584
+chrM	9602	0	0	0	0	0	0	0	16-3584
+chrM	9603	0	0	0	0	0	0	0	16-3584
+chrM	9604	0	0	0	0	0	0	0	16-3584
+chrM	9605	0	0	0	0	0	0	0	16-3584
+chrM	9606	0	0	0	0	0	0	0	16-3584
+chrM	9607	0	0	0	0	0	0	0	16-3584
+chrM	9608	0	0	0	0	0	0	0	16-3584
+chrM	9609	0	0	0	0	0	0	0	16-3584
+chrM	9610	0	0	0	0	0	0	0	16-3584
+chrM	9611	0	0	0	0	0	0	0	16-3584
+chrM	9612	0	0	0	0	0	0	0	16-3584
+chrM	9613	0	0	0	0	0	0	0	16-3584
+chrM	9614	0	0	0	0	0	0	0	16-3584
+chrM	9615	0	0	0	0	0	0	0	16-3584
+chrM	9616	0	0	0	0	0	0	0	16-3584
+chrM	9617	0	0	0	0	0	0	0	16-3584
+chrM	9618	0	0	0	0	0	0	0	16-3584
+chrM	9619	0	0	0	0	0	0	0	16-3584
+chrM	9620	0	0	0	0	0	0	0	16-3584
+chrM	9621	0	0	0	0	0	0	0	16-3584
+chrM	9622	0	0	0	0	0	0	0	16-3584
+chrM	9623	0	0	0	0	0	0	0	16-3584
+chrM	9624	0	0	0	0	0	0	0	16-3584
+chrM	9625	0	0	0	0	0	0	0	16-3584
+chrM	9626	0	0	0	0	0	0	0	16-3584
+chrM	9627	0	0	0	0	0	0	0	16-3584
+chrM	9628	0	0	0	0	0	0	0	16-3584
+chrM	9629	0	0	0	0	0	0	0	16-3584
+chrM	9630	0	0	0	0	0	0	0	16-3584
+chrM	9631	0	0	0	0	0	0	0	16-3584
+chrM	9632	0	0	0	0	0	0	0	16-3584
+chrM	9633	0	0	0	0	0	0	0	16-3584
+chrM	9634	0	0	0	0	0	0	0	16-3584
+chrM	9635	0	0	0	0	0	0	0	16-3584
+chrM	9636	0	0	0	0	0	0	0	16-3584
+chrM	9637	0	0	0	0	0	0	0	16-3584
+chrM	9638	0	0	0	0	0	0	0	16-3584
+chrM	9639	0	0	0	0	0	0	0	16-3584
+chrM	9640	0	0	0	0	0	0	0	16-3584
+chrM	9641	0	0	0	0	0	0	0	16-3584
+chrM	9642	0	0	0	0	0	0	0	16-3584
+chrM	9643	0	0	0	0	0	0	0	16-3584
+chrM	9644	0	0	0	0	0	0	0	16-3584
+chrM	9645	0	0	0	0	0	0	0	16-3584
+chrM	9646	0	0	0	0	0	0	0	16-3584
+chrM	9647	0	0	0	0	0	0	0	16-3584
+chrM	9648	0	0	0	0	0	0	0	16-3584
+chrM	9649	0	0	0	0	0	0	0	16-3584
+chrM	9650	0	0	0	0	0	0	0	16-3584
+chrM	9651	0	0	0	0	0	0	0	16-3584
+chrM	9652	0	0	0	0	0	0	0	16-3584
+chrM	9653	0	0	0	0	0	0	0	16-3584
+chrM	9654	0	0	0	0	0	0	0	16-3584
+chrM	9655	0	0	0	0	0	0	0	16-3584
+chrM	9656	0	0	0	0	0	0	0	16-3584
+chrM	9657	0	0	0	0	0	0	0	16-3584
+chrM	9658	0	0	0	0	0	0	0	16-3584
+chrM	9659	0	0	0	0	0	0	0	16-3584
+chrM	9660	0	0	0	0	0	0	0	16-3584
+chrM	9661	0	0	0	0	0	0	0	16-3584
+chrM	9662	0	0	0	0	0	0	0	16-3584
+chrM	9663	0	0	0	0	0	0	0	16-3584
+chrM	9664	0	0	0	0	0	0	0	16-3584
+chrM	9665	0	0	0	0	0	0	0	16-3584
+chrM	9666	0	0	0	0	0	0	0	16-3584
+chrM	9667	0	0	0	0	0	0	0	16-3584
+chrM	9668	0	0	0	0	0	0	0	16-3584
+chrM	9669	0	0	0	0	0	0	0	16-3584
+chrM	9670	0	0	0	0	0	0	0	16-3584
+chrM	9671	0	0	0	0	0	0	0	16-3584
+chrM	9672	0	0	0	0	0	0	0	16-3584
+chrM	9673	0	0	0	0	0	0	0	16-3584
+chrM	9674	0	0	0	0	0	0	0	16-3584
+chrM	9675	0	0	0	0	0	0	0	16-3584
+chrM	9676	0	0	0	0	0	0	0	16-3584
+chrM	9677	0	0	0	0	0	0	0	16-3584
+chrM	9678	0	0	0	0	0	0	0	16-3584
+chrM	9679	0	0	0	0	0	0	0	16-3584
+chrM	9680	0	0	0	0	0	0	0	16-3584
+chrM	9681	0	0	0	0	0	0	0	16-3584
+chrM	9682	0	0	0	0	0	0	0	16-3584
+chrM	9683	0	0	0	0	0	0	0	16-3584
+chrM	9684	0	0	0	0	0	0	0	16-3584
+chrM	9685	0	0	0	0	0	0	0	16-3584
+chrM	9686	0	0	0	0	0	0	0	16-3584
+chrM	9687	0	0	0	0	0	0	0	16-3584
+chrM	9688	0	0	0	0	0	0	0	16-3584
+chrM	9689	0	0	0	0	0	0	0	16-3584
+chrM	9690	0	0	0	0	0	0	0	16-3584
+chrM	9691	0	0	0	0	0	0	0	16-3584
+chrM	9692	0	0	0	0	0	0	0	16-3584
+chrM	9693	0	0	0	0	0	0	0	16-3584
+chrM	9694	0	0	0	0	0	0	0	16-3584
+chrM	9695	0	0	0	0	0	0	0	16-3584
+chrM	9696	0	0	0	0	0	0	0	16-3584
+chrM	9697	0	0	0	0	0	0	0	16-3584
+chrM	9698	0	0	0	0	0	0	0	16-3584
+chrM	9699	0	0	0	0	0	0	0	16-3584
+chrM	9700	0	0	0	0	0	0	0	16-3584
+chrM	9701	0	0	0	0	0	0	0	16-3584
+chrM	9702	0	0	0	0	0	0	0	16-3584
+chrM	9703	0	0	0	0	0	0	0	16-3584
+chrM	9704	0	0	0	0	0	0	0	16-3584
+chrM	9705	0	0	0	0	0	0	0	16-3584
+chrM	9706	0	0	0	0	0	0	0	16-3584
+chrM	9707	0	0	0	0	0	0	0	16-3584
+chrM	9708	0	0	0	0	0	0	0	16-3584
+chrM	9709	0	0	0	0	0	0	0	16-3584
+chrM	9710	0	0	0	0	0	0	0	16-3584
+chrM	9711	0	0	0	0	0	0	0	16-3584
+chrM	9712	0	0	0	0	0	0	0	16-3584
+chrM	9713	0	0	0	0	0	0	0	16-3584
+chrM	9714	0	0	0	0	0	0	0	16-3584
+chrM	9715	0	0	0	0	0	0	0	16-3584
+chrM	9716	0	0	0	0	0	0	0	16-3584
+chrM	9717	0	0	0	0	0	0	0	16-3584
+chrM	9718	0	0	0	0	0	0	0	16-3584
+chrM	9719	0	0	0	0	0	0	0	16-3584
+chrM	9720	0	0	0	0	0	0	0	16-3584
+chrM	9721	0	0	0	0	0	0	0	16-3584
+chrM	9722	0	0	0	0	0	0	0	16-3584
+chrM	9723	0	0	0	0	0	0	0	16-3584
+chrM	9724	0	0	0	0	0	0	0	16-3584
+chrM	9725	0	0	0	0	0	0	0	16-3584
+chrM	9726	0	0	0	0	0	0	0	16-3584
+chrM	9727	0	0	0	0	0	0	0	16-3584
+chrM	9728	0	0	0	0	0	0	0	16-3584
+chrM	9729	0	0	0	0	0	0	0	16-3584
+chrM	9730	0	0	0	0	0	0	0	16-3584
+chrM	9731	0	0	0	0	0	0	0	16-3584
+chrM	9732	0	0	0	0	0	0	0	16-3584
+chrM	9733	0	0	0	0	0	0	0	16-3584
+chrM	9734	0	0	0	0	0	0	0	16-3584
+chrM	9735	0	0	0	0	0	0	0	16-3584
+chrM	9736	0	0	0	0	0	0	0	16-3584
+chrM	9737	0	0	0	0	0	0	0	16-3584
+chrM	9738	0	0	0	0	0	0	0	16-3584
+chrM	9739	0	0	0	0	0	0	0	16-3584
+chrM	9740	0	0	0	0	0	0	0	16-3584
+chrM	9741	0	0	0	0	0	0	0	16-3584
+chrM	9742	0	0	0	0	0	0	0	16-3584
+chrM	9743	0	0	0	0	0	0	0	16-3584
+chrM	9744	0	0	0	0	0	0	0	16-3584
+chrM	9745	0	0	0	0	0	0	0	16-3584
+chrM	9746	0	0	0	0	0	0	0	16-3584
+chrM	9747	0	0	0	0	0	0	0	16-3584
+chrM	9748	0	0	0	0	0	0	0	16-3584
+chrM	9749	0	0	0	0	0	0	0	16-3584
+chrM	9750	0	0	0	0	0	0	0	16-3584
+chrM	9751	0	0	0	0	0	0	0	16-3584
+chrM	9752	0	0	0	0	0	0	0	16-3584
+chrM	9753	0	0	0	0	0	0	0	16-3584
+chrM	9754	0	0	0	0	0	0	0	16-3584
+chrM	9755	0	0	0	0	0	0	0	16-3584
+chrM	9756	0	0	0	0	0	0	0	16-3584
+chrM	9757	0	0	0	0	0	0	0	16-3584
+chrM	9758	0	0	0	0	0	0	0	16-3584
+chrM	9759	0	0	0	0	0	0	0	16-3584
+chrM	9760	0	0	0	0	0	0	0	16-3584
+chrM	9761	0	0	0	0	0	0	0	16-3584
+chrM	9762	0	0	0	0	0	0	0	16-3584
+chrM	9763	0	0	0	0	0	0	0	16-3584
+chrM	9764	0	0	0	0	0	0	0	16-3584
+chrM	9765	0	0	0	0	0	0	0	16-3584
+chrM	9766	0	0	0	0	0	0	0	16-3584
+chrM	9767	0	0	0	0	0	0	0	16-3584
+chrM	9768	0	0	0	0	0	0	0	16-3584
+chrM	9769	0	0	0	0	0	0	0	16-3584
+chrM	9770	0	0	0	0	0	0	0	16-3584
+chrM	9771	0	0	0	0	0	0	0	16-3584
+chrM	9772	0	0	0	0	0	0	0	16-3584
+chrM	9773	0	0	0	0	0	0	0	16-3584
+chrM	9774	0	0	0	0	0	0	0	16-3584
+chrM	9775	0	0	0	0	0	0	0	16-3584
+chrM	9776	0	0	0	0	0	0	0	16-3584
+chrM	9777	0	0	0	0	0	0	0	16-3584
+chrM	9778	0	0	0	0	0	0	0	16-3584
+chrM	9779	0	0	0	0	0	0	0	16-3584
+chrM	9780	0	0	0	0	0	0	0	16-3584
+chrM	9781	0	0	0	0	0	0	0	16-3584
+chrM	9782	0	0	0	0	0	0	0	16-3584
+chrM	9783	0	0	0	0	0	0	0	16-3584
+chrM	9784	0	0	0	0	0	0	0	16-3584
+chrM	9785	0	0	0	0	0	0	0	16-3584
+chrM	9786	0	0	0	0	0	0	0	16-3584
+chrM	9787	0	0	0	0	0	0	0	16-3584
+chrM	9788	0	0	0	0	0	0	0	16-3584
+chrM	9789	0	0	0	0	0	0	0	16-3584
+chrM	9790	0	0	0	0	0	0	0	16-3584
+chrM	9791	0	0	0	0	0	0	0	16-3584
+chrM	9792	0	0	0	0	0	0	0	16-3584
+chrM	9793	0	0	0	0	0	0	0	16-3584
+chrM	9794	0	0	0	0	0	0	0	16-3584
+chrM	9795	0	0	0	0	0	0	0	16-3584
+chrM	9796	0	0	0	0	0	0	0	16-3584
+chrM	9797	0	0	0	0	0	0	0	16-3584
+chrM	9798	0	0	0	0	0	0	0	16-3584
+chrM	9799	0	0	0	0	0	0	0	16-3584
+chrM	9800	0	0	0	0	0	0	0	16-3584
+chrM	9801	0	0	0	0	0	0	0	16-3584
+chrM	9802	0	0	0	0	0	0	0	16-3584
+chrM	9803	0	0	0	0	0	0	0	16-3584
+chrM	9804	0	0	0	0	0	0	0	16-3584
+chrM	9805	0	0	0	0	0	0	0	16-3584
+chrM	9806	0	0	0	0	0	0	0	16-3584
+chrM	9807	0	0	0	0	0	0	0	16-3584
+chrM	9808	0	0	0	0	0	0	0	16-3584
+chrM	9809	0	0	0	0	0	0	0	16-3584
+chrM	9810	0	0	0	0	0	0	0	16-3584
+chrM	9811	0	0	0	0	0	0	0	16-3584
+chrM	9812	0	0	0	0	0	0	0	16-3584
+chrM	9813	0	0	0	0	0	0	0	16-3584
+chrM	9814	0	0	0	0	0	0	0	16-3584
+chrM	9815	0	0	0	0	0	0	0	16-3584
+chrM	9816	0	0	0	0	0	0	0	16-3584
+chrM	9817	0	0	0	0	0	0	0	16-3584
+chrM	9818	0	0	0	0	0	0	0	16-3584
+chrM	9819	0	0	0	0	0	0	0	16-3584
+chrM	9820	0	0	0	0	0	0	0	16-3584
+chrM	9821	0	0	0	0	0	0	0	16-3584
+chrM	9822	0	0	0	0	0	0	0	16-3584
+chrM	9823	0	0	0	0	0	0	0	16-3584
+chrM	9824	0	0	0	0	0	0	0	16-3584
+chrM	9825	0	0	0	0	0	0	0	16-3584
+chrM	9826	0	0	0	0	0	0	0	16-3584
+chrM	9827	0	0	0	0	0	0	0	16-3584
+chrM	9828	0	0	0	0	0	0	0	16-3584
+chrM	9829	0	0	0	0	0	0	0	16-3584
+chrM	9830	0	0	0	0	0	0	0	16-3584
+chrM	9831	0	0	0	0	0	0	0	16-3584
+chrM	9832	0	0	0	0	0	0	0	16-3584
+chrM	9833	0	0	0	0	0	0	0	16-3584
+chrM	9834	0	0	0	0	0	0	0	16-3584
+chrM	9835	0	0	0	0	0	0	0	16-3584
+chrM	9836	0	0	0	0	0	0	0	16-3584
+chrM	9837	0	0	0	0	0	0	0	16-3584
+chrM	9838	0	0	0	0	0	0	0	16-3584
+chrM	9839	0	0	0	0	0	0	0	16-3584
+chrM	9840	0	0	0	0	0	0	0	16-3584
+chrM	9841	0	0	0	0	0	0	0	16-3584
+chrM	9842	0	0	0	0	0	0	0	16-3584
+chrM	9843	0	0	0	0	0	0	0	16-3584
+chrM	9844	0	0	0	0	0	0	0	16-3584
+chrM	9845	0	0	0	0	0	0	0	16-3584
+chrM	9846	0	0	0	0	0	0	0	16-3584
+chrM	9847	0	0	0	0	0	0	0	16-3584
+chrM	9848	0	0	0	0	0	0	0	16-3584
+chrM	9849	0	0	0	0	0	0	0	16-3584
+chrM	9850	0	0	0	0	0	0	0	16-3584
+chrM	9851	0	0	0	0	0	0	0	16-3584
+chrM	9852	0	0	0	0	0	0	0	16-3584
+chrM	9853	0	0	0	0	0	0	0	16-3584
+chrM	9854	0	0	0	0	0	0	0	16-3584
+chrM	9855	0	0	0	0	0	0	0	16-3584
+chrM	9856	0	0	0	0	0	0	0	16-3584
+chrM	9857	0	0	0	0	0	0	0	16-3584
+chrM	9858	0	0	0	0	0	0	0	16-3584
+chrM	9859	0	0	0	0	0	0	0	16-3584
+chrM	9860	0	0	0	0	0	0	0	16-3584
+chrM	9861	0	0	0	0	0	0	0	16-3584
+chrM	9862	0	0	0	0	0	0	0	16-3584
+chrM	9863	0	0	0	0	0	0	0	16-3584
+chrM	9864	0	0	0	0	0	0	0	16-3584
+chrM	9865	0	0	0	0	0	0	0	16-3584
+chrM	9866	0	0	0	0	0	0	0	16-3584
+chrM	9867	0	0	0	0	0	0	0	16-3584
+chrM	9868	0	0	0	0	0	0	0	16-3584
+chrM	9869	0	0	0	0	0	0	0	16-3584
+chrM	9870	0	0	0	0	0	0	0	16-3584
+chrM	9871	0	0	0	0	0	0	0	16-3584
+chrM	9872	0	0	0	0	0	0	0	16-3584
+chrM	9873	0	0	0	0	0	0	0	16-3584
+chrM	9874	0	0	0	0	0	0	0	16-3584
+chrM	9875	0	0	0	0	0	0	0	16-3584
+chrM	9876	0	0	0	0	0	0	0	16-3584
+chrM	9877	0	0	0	0	0	0	0	16-3584
+chrM	9878	0	0	0	0	0	0	0	16-3584
+chrM	9879	0	0	0	0	0	0	0	16-3584
+chrM	9880	0	0	0	0	0	0	0	16-3584
+chrM	9881	0	0	0	0	0	0	0	16-3584
+chrM	9882	0	0	0	0	0	0	0	16-3584
+chrM	9883	0	0	0	0	0	0	0	16-3584
+chrM	9884	0	0	0	0	0	0	0	16-3584
+chrM	9885	0	0	0	0	0	0	0	16-3584
+chrM	9886	0	0	0	0	0	0	0	16-3584
+chrM	9887	0	0	0	0	0	0	0	16-3584
+chrM	9888	0	0	0	0	0	0	0	16-3584
+chrM	9889	0	0	0	0	0	0	0	16-3584
+chrM	9890	0	0	0	0	0	0	0	16-3584
+chrM	9891	0	0	0	0	0	0	0	16-3584
+chrM	9892	0	0	0	0	0	0	0	16-3584
+chrM	9893	0	0	0	0	0	0	0	16-3584
+chrM	9894	0	0	0	0	0	0	0	16-3584
+chrM	9895	0	0	0	0	0	0	0	16-3584
+chrM	9896	0	0	0	0	0	0	0	16-3584
+chrM	9897	0	0	0	0	0	0	0	16-3584
+chrM	9898	0	0	0	0	0	0	0	16-3584
+chrM	9899	0	0	0	0	0	0	0	16-3584
+chrM	9900	0	0	0	0	0	0	0	16-3584
+chrM	9901	0	0	0	0	0	0	0	16-3584
+chrM	9902	0	0	0	0	0	0	0	16-3584
+chrM	9903	0	0	0	0	0	0	0	16-3584
+chrM	9904	0	0	0	0	0	0	0	16-3584
+chrM	9905	0	0	0	0	0	0	0	16-3584
+chrM	9906	0	0	0	0	0	0	0	16-3584
+chrM	9907	0	0	0	0	0	0	0	16-3584
+chrM	9908	0	0	0	0	0	0	0	16-3584
+chrM	9909	0	0	0	0	0	0	0	16-3584
+chrM	9910	0	0	0	0	0	0	0	16-3584
+chrM	9911	0	0	0	0	0	0	0	16-3584
+chrM	9912	0	0	0	0	0	0	0	16-3584
+chrM	9913	0	0	0	0	0	0	0	16-3584
+chrM	9914	0	0	0	0	0	0	0	16-3584
+chrM	9915	0	0	0	0	0	0	0	16-3584
+chrM	9916	0	0	0	0	0	0	0	16-3584
+chrM	9917	0	0	0	0	0	0	0	16-3584
+chrM	9918	0	0	0	0	0	0	0	16-3584
+chrM	9919	0	0	0	0	0	0	0	16-3584
+chrM	9920	0	0	0	0	0	0	0	16-3584
+chrM	9921	0	0	0	0	0	0	0	16-3584
+chrM	9922	0	0	0	0	0	0	0	16-3584
+chrM	9923	0	0	0	0	0	0	0	16-3584
+chrM	9924	0	0	0	0	0	0	0	16-3584
+chrM	9925	0	0	0	0	0	0	0	16-3584
+chrM	9926	0	0	0	0	0	0	0	16-3584
+chrM	9927	0	0	0	0	0	0	0	16-3584
+chrM	9928	0	0	0	0	0	0	0	16-3584
+chrM	9929	0	0	0	0	0	0	0	16-3584
+chrM	9930	0	0	0	0	0	0	0	16-3584
+chrM	9931	0	0	0	0	0	0	0	16-3584
+chrM	9932	0	0	0	0	0	0	0	16-3584
+chrM	9933	0	0	0	0	0	0	0	16-3584
+chrM	9934	0	0	0	0	0	0	0	16-3584
+chrM	9935	0	0	0	0	0	0	0	16-3584
+chrM	9936	0	0	0	0	0	0	0	16-3584
+chrM	9937	0	0	0	0	0	0	0	16-3584
+chrM	9938	0	0	0	0	0	0	0	16-3584
+chrM	9939	0	0	0	0	0	0	0	16-3584
+chrM	9940	0	0	0	0	0	0	0	16-3584
+chrM	9941	0	0	0	0	0	0	0	16-3584
+chrM	9942	0	0	0	0	0	0	0	16-3584
+chrM	9943	0	0	0	0	0	0	0	16-3584
+chrM	9944	0	0	0	0	0	0	0	16-3584
+chrM	9945	0	0	0	0	0	0	0	16-3584
+chrM	9946	0	0	0	0	0	0	0	16-3584
+chrM	9947	0	0	0	0	0	0	0	16-3584
+chrM	9948	0	0	0	0	0	0	0	16-3584
+chrM	9949	0	0	0	0	0	0	0	16-3584
+chrM	9950	0	0	0	0	0	0	0	16-3584
+chrM	9951	0	0	0	0	0	0	0	16-3584
+chrM	9952	0	0	0	0	0	0	0	16-3584
+chrM	9953	0	0	0	0	0	0	0	16-3584
+chrM	9954	0	0	0	0	0	0	0	16-3584
+chrM	9955	0	0	0	0	0	0	0	16-3584
+chrM	9956	0	0	0	0	0	0	0	16-3584
+chrM	9957	0	0	0	0	0	0	0	16-3584
+chrM	9958	0	0	0	0	0	0	0	16-3584
+chrM	9959	0	0	0	0	0	0	0	16-3584
+chrM	9960	0	0	0	0	0	0	0	16-3584
+chrM	9961	0	0	0	0	0	0	0	16-3584
+chrM	9962	0	0	0	0	0	0	0	16-3584
+chrM	9963	0	0	0	0	0	0	0	16-3584
+chrM	9964	0	0	0	0	0	0	0	16-3584
+chrM	9965	0	0	0	0	0	0	0	16-3584
+chrM	9966	0	0	0	0	0	0	0	16-3584
+chrM	9967	0	0	0	0	0	0	0	16-3584
+chrM	9968	0	0	0	0	0	0	0	16-3584
+chrM	9969	0	0	0	0	0	0	0	16-3584
+chrM	9970	0	0	0	0	0	0	0	16-3584
+chrM	9971	0	0	0	0	0	0	0	16-3584
+chrM	9972	0	0	0	0	0	0	0	16-3584
+chrM	9973	0	0	0	0	0	0	0	16-3584
+chrM	9974	0	0	0	0	0	0	0	16-3584
+chrM	9975	0	0	0	0	0	0	0	16-3584
+chrM	9976	0	0	0	0	0	0	0	16-3584
+chrM	9977	0	0	0	0	0	0	0	16-3584
+chrM	9978	0	0	0	0	0	0	0	16-3584
+chrM	9979	0	0	0	0	0	0	0	16-3584
+chrM	9980	0	0	0	0	0	0	0	16-3584
+chrM	9981	0	0	0	0	0	0	0	16-3584
+chrM	9982	0	0	0	0	0	0	0	16-3584
+chrM	9983	0	0	0	0	0	0	0	16-3584
+chrM	9984	0	0	0	0	0	0	0	16-3584
+chrM	9985	0	0	0	0	0	0	0	16-3584
+chrM	9986	0	0	0	0	0	0	0	16-3584
+chrM	9987	0	0	0	0	0	0	0	16-3584
+chrM	9988	0	0	0	0	0	0	0	16-3584
+chrM	9989	0	0	0	0	0	0	0	16-3584
+chrM	9990	0	0	0	0	0	0	0	16-3584
+chrM	9991	0	0	0	0	0	0	0	16-3584
+chrM	9992	0	0	0	0	0	0	0	16-3584
+chrM	9993	0	0	0	0	0	0	0	16-3584
+chrM	9994	0	0	0	0	0	0	0	16-3584
+chrM	9995	0	0	0	0	0	0	0	16-3584
+chrM	9996	0	0	0	0	0	0	0	16-3584
+chrM	9997	0	0	0	0	0	0	0	16-3584
+chrM	9998	0	0	0	0	0	0	0	16-3584
+chrM	9999	0	0	0	0	0	0	0	16-3584
+chrM	10000	0	0	0	0	0	0	0	16-3584
+chrM	10001	0	0	0	0	0	0	0	16-3584
+chrM	10002	0	0	0	0	0	0	0	16-3584
+chrM	10003	0	0	0	0	0	0	0	16-3584
+chrM	10004	0	0	0	0	0	0	0	16-3584
+chrM	10005	0	0	0	0	0	0	0	16-3584
+chrM	10006	0	0	0	0	0	0	0	16-3584
+chrM	10007	0	0	0	0	0	0	0	16-3584
+chrM	10008	0	0	0	0	0	0	0	16-3584
+chrM	10009	0	0	0	0	0	0	0	16-3584
+chrM	10010	0	0	0	0	0	0	0	16-3584
+chrM	10011	0	0	0	0	0	0	0	16-3584
+chrM	10012	0	0	0	0	0	0	0	16-3584
+chrM	10013	0	0	0	0	0	0	0	16-3584
+chrM	10014	0	0	0	0	0	0	0	16-3584
+chrM	10015	0	0	0	0	0	0	0	16-3584
+chrM	10016	0	0	0	0	0	0	0	16-3584
+chrM	10017	0	0	0	0	0	0	0	16-3584
+chrM	10018	0	0	0	0	0	0	0	16-3584
+chrM	10019	0	0	0	0	0	0	0	16-3584
+chrM	10020	0	0	0	0	0	0	0	16-3584
+chrM	10021	0	0	0	0	0	0	0	16-3584
+chrM	10022	0	0	0	0	0	0	0	16-3584
+chrM	10023	0	0	0	0	0	0	0	16-3584
+chrM	10024	0	0	0	0	0	0	0	16-3584
+chrM	10025	0	0	0	0	0	0	0	16-3584
+chrM	10026	0	0	0	0	0	0	0	16-3584
+chrM	10027	0	0	0	0	0	0	0	16-3584
+chrM	10028	0	0	0	0	0	0	0	16-3584
+chrM	10029	0	0	0	0	0	0	0	16-3584
+chrM	10030	0	0	0	0	0	0	0	16-3584
+chrM	10031	0	0	0	0	0	0	0	16-3584
+chrM	10032	0	0	0	0	0	0	0	16-3584
+chrM	10033	0	0	0	0	0	0	0	16-3584
+chrM	10034	0	0	0	0	0	0	0	16-3584
+chrM	10035	0	0	0	0	0	0	0	16-3584
+chrM	10036	0	0	0	0	0	0	0	16-3584
+chrM	10037	0	0	0	0	0	0	0	16-3584
+chrM	10038	0	0	0	0	0	0	0	16-3584
+chrM	10039	0	0	0	0	0	0	0	16-3584
+chrM	10040	0	0	0	0	0	0	0	16-3584
+chrM	10041	0	0	0	0	0	0	0	16-3584
+chrM	10042	0	0	0	0	0	0	0	16-3584
+chrM	10043	0	0	0	0	0	0	0	16-3584
+chrM	10044	0	0	0	0	0	0	0	16-3584
+chrM	10045	0	0	0	0	0	0	0	16-3584
+chrM	10046	0	0	0	0	0	0	0	16-3584
+chrM	10047	0	0	0	0	0	0	0	16-3584
+chrM	10048	0	0	0	0	0	0	0	16-3584
+chrM	10049	0	0	0	0	0	0	0	16-3584
+chrM	10050	0	0	0	0	0	0	0	16-3584
+chrM	10051	0	0	0	0	0	0	0	16-3584
+chrM	10052	0	0	0	0	0	0	0	16-3584
+chrM	10053	0	0	0	0	0	0	0	16-3584
+chrM	10054	0	0	0	0	0	0	0	16-3584
+chrM	10055	0	0	0	0	0	0	0	16-3584
+chrM	10056	0	0	0	0	0	0	0	16-3584
+chrM	10057	0	0	0	0	0	0	0	16-3584
+chrM	10058	0	0	0	0	0	0	0	16-3584
+chrM	10059	0	0	0	0	0	0	0	16-3584
+chrM	10060	0	0	0	0	0	0	0	16-3584
+chrM	10061	0	0	0	0	0	0	0	16-3584
+chrM	10062	0	0	0	0	0	0	0	16-3584
+chrM	10063	0	0	0	0	0	0	0	16-3584
+chrM	10064	0	0	0	0	0	0	0	16-3584
+chrM	10065	0	0	0	0	0	0	0	16-3584
+chrM	10066	0	0	0	0	0	0	0	16-3584
+chrM	10067	0	0	0	0	0	0	0	16-3584
+chrM	10068	0	0	0	0	0	0	0	16-3584
+chrM	10069	0	0	0	0	0	0	0	16-3584
+chrM	10070	0	0	0	0	0	0	0	16-3584
+chrM	10071	0	0	0	0	0	0	0	16-3584
+chrM	10072	0	0	0	0	0	0	0	16-3584
+chrM	10073	0	0	0	0	0	0	0	16-3584
+chrM	10074	0	0	0	0	0	0	0	16-3584
+chrM	10075	0	0	0	0	0	0	0	16-3584
+chrM	10076	0	0	0	0	0	0	0	16-3584
+chrM	10077	0	0	0	0	0	0	0	16-3584
+chrM	10078	0	0	0	0	0	0	0	16-3584
+chrM	10079	0	0	0	0	0	0	0	16-3584
+chrM	10080	0	0	0	0	0	0	0	16-3584
+chrM	10081	0	0	0	0	0	0	0	16-3584
+chrM	10082	0	0	0	0	0	0	0	16-3584
+chrM	10083	0	0	0	0	0	0	0	16-3584
+chrM	10084	0	0	0	0	0	0	0	16-3584
+chrM	10085	0	0	0	0	0	0	0	16-3584
+chrM	10086	0	0	0	0	0	0	0	16-3584
+chrM	10087	0	0	0	0	0	0	0	16-3584
+chrM	10088	0	0	0	0	0	0	0	16-3584
+chrM	10089	0	0	0	0	0	0	0	16-3584
+chrM	10090	0	0	0	0	0	0	0	16-3584
+chrM	10091	0	0	0	0	0	0	0	16-3584
+chrM	10092	0	0	0	0	0	0	0	16-3584
+chrM	10093	0	0	0	0	0	0	0	16-3584
+chrM	10094	0	0	0	0	0	0	0	16-3584
+chrM	10095	0	0	0	0	0	0	0	16-3584
+chrM	10096	0	0	0	0	0	0	0	16-3584
+chrM	10097	0	0	0	0	0	0	0	16-3584
+chrM	10098	0	0	0	0	0	0	0	16-3584
+chrM	10099	0	0	0	0	0	0	0	16-3584
+chrM	10100	0	0	0	0	0	0	0	16-3584
+chrM	10101	0	0	0	0	0	0	0	16-3584
+chrM	10102	0	0	0	0	0	0	0	16-3584
+chrM	10103	0	0	0	0	0	0	0	16-3584
+chrM	10104	0	0	0	0	0	0	0	16-3584
+chrM	10105	0	0	0	0	0	0	0	16-3584
+chrM	10106	0	0	0	0	0	0	0	16-3584
+chrM	10107	0	0	0	0	0	0	0	16-3584
+chrM	10108	0	0	0	0	0	0	0	16-3584
+chrM	10109	0	0	0	0	0	0	0	16-3584
+chrM	10110	0	0	0	0	0	0	0	16-3584
+chrM	10111	0	0	0	0	0	0	0	16-3584
+chrM	10112	0	0	0	0	0	0	0	16-3584
+chrM	10113	0	0	0	0	0	0	0	16-3584
+chrM	10114	0	0	0	0	0	0	0	16-3584
+chrM	10115	0	0	0	0	0	0	0	16-3584
+chrM	10116	0	0	0	0	0	0	0	16-3584
+chrM	10117	0	0	0	0	0	0	0	16-3584
+chrM	10118	0	0	0	0	0	0	0	16-3584
+chrM	10119	0	0	0	0	0	0	0	16-3584
+chrM	10120	0	0	0	0	0	0	0	16-3584
+chrM	10121	0	0	0	0	0	0	0	16-3584
+chrM	10122	0	0	0	0	0	0	0	16-3584
+chrM	10123	0	0	0	0	0	0	0	16-3584
+chrM	10124	0	0	0	0	0	0	0	16-3584
+chrM	10125	0	0	0	0	0	0	0	16-3584
+chrM	10126	0	0	0	0	0	0	0	16-3584
+chrM	10127	0	0	0	0	0	0	0	16-3584
+chrM	10128	0	0	0	0	0	0	0	16-3584
+chrM	10129	0	0	0	0	0	0	0	16-3584
+chrM	10130	0	0	0	0	0	0	0	16-3584
+chrM	10131	0	0	0	0	0	0	0	16-3584
+chrM	10132	0	0	0	0	0	0	0	16-3584
+chrM	10133	0	0	0	0	0	0	0	16-3584
+chrM	10134	0	0	0	0	0	0	0	16-3584
+chrM	10135	0	0	0	0	0	0	0	16-3584
+chrM	10136	0	0	0	0	0	0	0	16-3584
+chrM	10137	0	0	0	0	0	0	0	16-3584
+chrM	10138	0	0	0	0	0	0	0	16-3584
+chrM	10139	0	0	0	0	0	0	0	16-3584
+chrM	10140	0	0	0	0	0	0	0	16-3584
+chrM	10141	0	0	0	0	0	0	0	16-3584
+chrM	10142	0	0	0	0	0	0	0	16-3584
+chrM	10143	0	0	0	0	0	0	0	16-3584
+chrM	10144	0	0	0	0	0	0	0	16-3584
+chrM	10145	0	0	0	0	0	0	0	16-3584
+chrM	10146	0	0	0	0	0	0	0	16-3584
+chrM	10147	0	0	0	0	0	0	0	16-3584
+chrM	10148	0	0	0	0	0	0	0	16-3584
+chrM	10149	0	0	0	0	0	0	0	16-3584
+chrM	10150	0	0	0	0	0	0	0	16-3584
+chrM	10151	0	0	0	0	0	0	0	16-3584
+chrM	10152	0	0	0	0	0	0	0	16-3584
+chrM	10153	0	0	0	0	0	0	0	16-3584
+chrM	10154	0	0	0	0	0	0	0	16-3584
+chrM	10155	0	0	0	0	0	0	0	16-3584
+chrM	10156	0	0	0	0	0	0	0	16-3584
+chrM	10157	0	0	0	0	0	0	0	16-3584
+chrM	10158	0	0	0	0	0	0	0	16-3584
+chrM	10159	0	0	0	0	0	0	0	16-3584
+chrM	10160	0	0	0	0	0	0	0	16-3584
+chrM	10161	0	0	0	0	0	0	0	16-3584
+chrM	10162	0	0	0	0	0	0	0	16-3584
+chrM	10163	0	0	0	0	0	0	0	16-3584
+chrM	10164	0	0	0	0	0	0	0	16-3584
+chrM	10165	0	0	0	0	0	0	0	16-3584
+chrM	10166	0	0	0	0	0	0	0	16-3584
+chrM	10167	0	0	0	0	0	0	0	16-3584
+chrM	10168	0	0	0	0	0	0	0	16-3584
+chrM	10169	0	0	0	0	0	0	0	16-3584
+chrM	10170	0	0	0	0	0	0	0	16-3584
+chrM	10171	0	0	0	0	0	0	0	16-3584
+chrM	10172	0	0	0	0	0	0	0	16-3584
+chrM	10173	0	0	0	0	0	0	0	16-3584
+chrM	10174	0	0	0	0	0	0	0	16-3584
+chrM	10175	0	0	0	0	0	0	0	16-3584
+chrM	10176	0	0	0	0	0	0	0	16-3584
+chrM	10177	0	0	0	0	0	0	0	16-3584
+chrM	10178	0	0	0	0	0	0	0	16-3584
+chrM	10179	0	0	0	0	0	0	0	16-3584
+chrM	10180	0	0	0	0	0	0	0	16-3584
+chrM	10181	0	0	0	0	0	0	0	16-3584
+chrM	10182	0	0	0	0	0	0	0	16-3584
+chrM	10183	0	0	0	0	0	0	0	16-3584
+chrM	10184	0	0	0	0	0	0	0	16-3584
+chrM	10185	0	0	0	0	0	0	0	16-3584
+chrM	10186	0	0	0	0	0	0	0	16-3584
+chrM	10187	0	0	0	0	0	0	0	16-3584
+chrM	10188	0	0	0	0	0	0	0	16-3584
+chrM	10189	0	0	0	0	0	0	0	16-3584
+chrM	10190	0	0	0	0	0	0	0	16-3584
+chrM	10191	0	0	0	0	0	0	0	16-3584
+chrM	10192	0	0	0	0	0	0	0	16-3584
+chrM	10193	0	0	0	0	0	0	0	16-3584
+chrM	10194	0	0	0	0	0	0	0	16-3584
+chrM	10195	0	0	0	0	0	0	0	16-3584
+chrM	10196	0	0	0	0	0	0	0	16-3584
+chrM	10197	0	0	0	0	0	0	0	16-3584
+chrM	10198	0	0	0	0	0	0	0	16-3584
+chrM	10199	0	0	0	0	0	0	0	16-3584
+chrM	10200	0	0	0	0	0	0	0	16-3584
+chrM	10201	0	0	0	0	0	0	0	16-3584
+chrM	10202	0	0	0	0	0	0	0	16-3584
+chrM	10203	0	0	0	0	0	0	0	16-3584
+chrM	10204	0	0	0	0	0	0	0	16-3584
+chrM	10205	0	0	0	0	0	0	0	16-3584
+chrM	10206	0	0	0	0	0	0	0	16-3584
+chrM	10207	0	0	0	0	0	0	0	16-3584
+chrM	10208	0	0	0	0	0	0	0	16-3584
+chrM	10209	0	0	0	0	0	0	0	16-3584
+chrM	10210	0	0	0	0	0	0	0	16-3584
+chrM	10211	0	0	0	0	0	0	0	16-3584
+chrM	10212	0	0	0	0	0	0	0	16-3584
+chrM	10213	0	0	0	0	0	0	0	16-3584
+chrM	10214	0	0	0	0	0	0	0	16-3584
+chrM	10215	0	0	0	0	0	0	0	16-3584
+chrM	10216	0	0	0	0	0	0	0	16-3584
+chrM	10217	0	0	0	0	0	0	0	16-3584
+chrM	10218	0	0	0	0	0	0	0	16-3584
+chrM	10219	0	0	0	0	0	0	0	16-3584
+chrM	10220	0	0	0	0	0	0	0	16-3584
+chrM	10221	0	0	0	0	0	0	0	16-3584
+chrM	10222	0	0	0	0	0	0	0	16-3584
+chrM	10223	0	0	0	0	0	0	0	16-3584
+chrM	10224	0	0	0	0	0	0	0	16-3584
+chrM	10225	0	0	0	0	0	0	0	16-3584
+chrM	10226	0	0	0	0	0	0	0	16-3584
+chrM	10227	0	0	0	0	0	0	0	16-3584
+chrM	10228	0	0	0	0	0	0	0	16-3584
+chrM	10229	0	0	0	0	0	0	0	16-3584
+chrM	10230	0	0	0	0	0	0	0	16-3584
+chrM	10231	0	0	0	0	0	0	0	16-3584
+chrM	10232	0	0	0	0	0	0	0	16-3584
+chrM	10233	0	0	0	0	0	0	0	16-3584
+chrM	10234	0	0	0	0	0	0	0	16-3584
+chrM	10235	0	0	0	0	0	0	0	16-3584
+chrM	10236	0	0	0	0	0	0	0	16-3584
+chrM	10237	0	0	0	0	0	0	0	16-3584
+chrM	10238	0	0	0	0	0	0	0	16-3584
+chrM	10239	0	0	0	0	0	0	0	16-3584
+chrM	10240	0	0	0	0	0	0	0	16-3584
+chrM	10241	0	0	0	0	0	0	0	16-3584
+chrM	10242	0	0	0	0	0	0	0	16-3584
+chrM	10243	0	0	0	0	0	0	0	16-3584
+chrM	10244	0	0	0	0	0	0	0	16-3584
+chrM	10245	0	0	0	0	0	0	0	16-3584
+chrM	10246	0	0	0	0	0	0	0	16-3584
+chrM	10247	0	0	0	0	0	0	0	16-3584
+chrM	10248	0	0	0	0	0	0	0	16-3584
+chrM	10249	0	0	0	0	0	0	0	16-3584
+chrM	10250	0	0	0	0	0	0	0	16-3584
+chrM	10251	0	0	0	0	0	0	0	16-3584
+chrM	10252	0	0	0	0	0	0	0	16-3584
+chrM	10253	0	0	0	0	0	0	0	16-3584
+chrM	10254	0	0	0	0	0	0	0	16-3584
+chrM	10255	0	0	0	0	0	0	0	16-3584
+chrM	10256	0	0	0	0	0	0	0	16-3584
+chrM	10257	0	0	0	0	0	0	0	16-3584
+chrM	10258	0	0	0	0	0	0	0	16-3584
+chrM	10259	0	0	0	0	0	0	0	16-3584
+chrM	10260	0	0	0	0	0	0	0	16-3584
+chrM	10261	0	0	0	0	0	0	0	16-3584
+chrM	10262	0	0	0	0	0	0	0	16-3584
+chrM	10263	0	0	0	0	0	0	0	16-3584
+chrM	10264	0	0	0	0	0	0	0	16-3584
+chrM	10265	0	0	0	0	0	0	0	16-3584
+chrM	10266	0	0	0	0	0	0	0	16-3584
+chrM	10267	0	0	0	0	0	0	0	16-3584
+chrM	10268	0	0	0	0	0	0	0	16-3584
+chrM	10269	0	0	0	0	0	0	0	16-3584
+chrM	10270	0	0	0	0	0	0	0	16-3584
+chrM	10271	0	0	0	0	0	0	0	16-3584
+chrM	10272	0	0	0	0	0	0	0	16-3584
+chrM	10273	0	0	0	0	0	0	0	16-3584
+chrM	10274	0	0	0	0	0	0	0	16-3584
+chrM	10275	0	0	0	0	0	0	0	16-3584
+chrM	10276	0	0	0	0	0	0	0	16-3584
+chrM	10277	0	0	0	0	0	0	0	16-3584
+chrM	10278	0	0	0	0	0	0	0	16-3584
+chrM	10279	0	0	0	0	0	0	0	16-3584
+chrM	10280	0	0	0	0	0	0	0	16-3584
+chrM	10281	0	0	0	0	0	0	0	16-3584
+chrM	10282	0	0	0	0	0	0	0	16-3584
+chrM	10283	0	0	0	0	0	0	0	16-3584
+chrM	10284	0	0	0	0	0	0	0	16-3584
+chrM	10285	0	0	0	0	0	0	0	16-3584
+chrM	10286	0	0	0	0	0	0	0	16-3584
+chrM	10287	0	0	0	0	0	0	0	16-3584
+chrM	10288	0	0	0	0	0	0	0	16-3584
+chrM	10289	0	0	0	0	0	0	0	16-3584
+chrM	10290	0	0	0	0	0	0	0	16-3584
+chrM	10291	0	0	0	0	0	0	0	16-3584
+chrM	10292	0	0	0	0	0	0	0	16-3584
+chrM	10293	0	0	0	0	0	0	0	16-3584
+chrM	10294	0	0	0	0	0	0	0	16-3584
+chrM	10295	0	0	0	0	0	0	0	16-3584
+chrM	10296	0	0	0	0	0	0	0	16-3584
+chrM	10297	0	0	0	0	0	0	0	16-3584
+chrM	10298	0	0	0	0	0	0	0	16-3584
+chrM	10299	0	0	0	0	0	0	0	16-3584
+chrM	10300	0	0	0	0	0	0	0	16-3584
+chrM	10301	0	0	0	0	0	0	0	16-3584
+chrM	10302	0	0	0	0	0	0	0	16-3584
+chrM	10303	0	0	0	0	0	0	0	16-3584
+chrM	10304	0	0	0	0	0	0	0	16-3584
+chrM	10305	0	0	0	0	0	0	0	16-3584
+chrM	10306	0	0	0	0	0	0	0	16-3584
+chrM	10307	0	0	0	0	0	0	0	16-3584
+chrM	10308	0	0	0	0	0	0	0	16-3584
+chrM	10309	0	0	0	0	0	0	0	16-3584
+chrM	10310	0	0	0	0	0	0	0	16-3584
+chrM	10311	0	0	0	0	0	0	0	16-3584
+chrM	10312	0	0	0	0	0	0	0	16-3584
+chrM	10313	0	0	0	0	0	0	0	16-3584
+chrM	10314	0	0	0	0	0	0	0	16-3584
+chrM	10315	0	0	0	0	0	0	0	16-3584
+chrM	10316	0	0	0	0	0	0	0	16-3584
+chrM	10317	0	0	0	0	0	0	0	16-3584
+chrM	10318	0	0	0	0	0	0	0	16-3584
+chrM	10319	0	0	0	0	0	0	0	16-3584
+chrM	10320	0	0	0	0	0	0	0	16-3584
+chrM	10321	0	0	0	0	0	0	0	16-3584
+chrM	10322	0	0	0	0	0	0	0	16-3584
+chrM	10323	0	0	0	0	0	0	0	16-3584
+chrM	10324	0	0	0	0	0	0	0	16-3584
+chrM	10325	0	0	0	0	0	0	0	16-3584
+chrM	10326	0	0	0	0	0	0	0	16-3584
+chrM	10327	0	0	0	0	0	0	0	16-3584
+chrM	10328	0	0	0	0	0	0	0	16-3584
+chrM	10329	0	0	0	0	0	0	0	16-3584
+chrM	10330	0	0	0	0	0	0	0	16-3584
+chrM	10331	0	0	0	0	0	0	0	16-3584
+chrM	10332	0	0	0	0	0	0	0	16-3584
+chrM	10333	0	0	0	0	0	0	0	16-3584
+chrM	10334	0	0	0	0	0	0	0	16-3584
+chrM	10335	0	0	0	0	0	0	0	16-3584
+chrM	10336	0	0	0	0	0	0	0	16-3584
+chrM	10337	0	0	0	0	0	0	0	16-3584
+chrM	10338	0	0	0	0	0	0	0	16-3584
+chrM	10339	0	0	0	0	0	0	0	16-3584
+chrM	10340	0	0	0	0	0	0	0	16-3584
+chrM	10341	0	0	0	0	0	0	0	16-3584
+chrM	10342	0	0	0	0	0	0	0	16-3584
+chrM	10343	0	0	0	0	0	0	0	16-3584
+chrM	10344	0	0	0	0	0	0	0	16-3584
+chrM	10345	0	0	0	0	0	0	0	16-3584
+chrM	10346	0	0	0	0	0	0	0	16-3584
+chrM	10347	0	0	0	0	0	0	0	16-3584
+chrM	10348	0	0	0	0	0	0	0	16-3584
+chrM	10349	0	0	0	0	0	0	0	16-3584
+chrM	10350	0	0	0	0	0	0	0	16-3584
+chrM	10351	0	0	0	0	0	0	0	16-3584
+chrM	10352	0	0	0	0	0	0	0	16-3584
+chrM	10353	0	0	0	0	0	0	0	16-3584
+chrM	10354	0	0	0	0	0	0	0	16-3584
+chrM	10355	0	0	0	0	0	0	0	16-3584
+chrM	10356	0	0	0	0	0	0	0	16-3584
+chrM	10357	0	0	0	0	0	0	0	16-3584
+chrM	10358	0	0	0	0	0	0	0	16-3584
+chrM	10359	0	0	0	0	0	0	0	16-3584
+chrM	10360	0	0	0	0	0	0	0	16-3584
+chrM	10361	0	0	0	0	0	0	0	16-3584
+chrM	10362	0	0	0	0	0	0	0	16-3584
+chrM	10363	0	0	0	0	0	0	0	16-3584
+chrM	10364	0	0	0	0	0	0	0	16-3584
+chrM	10365	0	0	0	0	0	0	0	16-3584
+chrM	10366	0	0	0	0	0	0	0	16-3584
+chrM	10367	0	0	0	0	0	0	0	16-3584
+chrM	10368	0	0	0	0	0	0	0	16-3584
+chrM	10369	0	0	0	0	0	0	0	16-3584
+chrM	10370	0	0	0	0	0	0	0	16-3584
+chrM	10371	0	0	0	0	0	0	0	16-3584
+chrM	10372	0	0	0	0	0	0	0	16-3584
+chrM	10373	0	0	0	0	0	0	0	16-3584
+chrM	10374	0	0	0	0	0	0	0	16-3584
+chrM	10375	0	0	0	0	0	0	0	16-3584
+chrM	10376	0	0	0	0	0	0	0	16-3584
+chrM	10377	0	0	0	0	0	0	0	16-3584
+chrM	10378	0	0	0	0	0	0	0	16-3584
+chrM	10379	0	0	0	0	0	0	0	16-3584
+chrM	10380	0	0	0	0	0	0	0	16-3584
+chrM	10381	0	0	0	0	0	0	0	16-3584
+chrM	10382	0	0	0	0	0	0	0	16-3584
+chrM	10383	0	0	0	0	0	0	0	16-3584
+chrM	10384	0	0	0	0	0	0	0	16-3584
+chrM	10385	0	0	0	0	0	0	0	16-3584
+chrM	10386	0	0	0	0	0	0	0	16-3584
+chrM	10387	0	0	0	0	0	0	0	16-3584
+chrM	10388	0	0	0	0	0	0	0	16-3584
+chrM	10389	0	0	0	0	0	0	0	16-3584
+chrM	10390	0	0	0	0	0	0	0	16-3584
+chrM	10391	0	0	0	0	0	0	0	16-3584
+chrM	10392	0	0	0	0	0	0	0	16-3584
+chrM	10393	0	0	0	0	0	0	0	16-3584
+chrM	10394	0	0	0	0	0	0	0	16-3584
+chrM	10395	0	0	0	0	0	0	0	16-3584
+chrM	10396	0	0	0	0	0	0	0	16-3584
+chrM	10397	0	0	0	0	0	0	0	16-3584
+chrM	10398	0	0	0	0	0	0	0	16-3584
+chrM	10399	0	0	0	0	0	0	0	16-3584
+chrM	10400	0	0	0	0	0	0	0	16-3584
+chrM	10401	0	0	0	0	0	0	0	16-3584
+chrM	10402	0	0	0	0	0	0	0	16-3584
+chrM	10403	0	0	0	0	0	0	0	16-3584
+chrM	10404	0	0	0	0	0	0	0	16-3584
+chrM	10405	0	0	0	0	0	0	0	16-3584
+chrM	10406	0	0	0	0	0	0	0	16-3584
+chrM	10407	0	0	0	0	0	0	0	16-3584
+chrM	10408	0	0	0	0	0	0	0	16-3584
+chrM	10409	0	0	0	0	0	0	0	16-3584
+chrM	10410	0	0	0	0	0	0	0	16-3584
+chrM	10411	0	0	0	0	0	0	0	16-3584
+chrM	10412	0	0	0	0	0	0	0	16-3584
+chrM	10413	0	0	0	0	0	0	0	16-3584
+chrM	10414	0	0	0	0	0	0	0	16-3584
+chrM	10415	0	0	0	0	0	0	0	16-3584
+chrM	10416	0	0	0	0	0	0	0	16-3584
+chrM	10417	0	0	0	0	0	0	0	16-3584
+chrM	10418	0	0	0	0	0	0	0	16-3584
+chrM	10419	0	0	0	0	0	0	0	16-3584
+chrM	10420	0	0	0	0	0	0	0	16-3584
+chrM	10421	0	0	0	0	0	0	0	16-3584
+chrM	10422	0	0	0	0	0	0	0	16-3584
+chrM	10423	0	0	0	0	0	0	0	16-3584
+chrM	10424	0	0	0	0	0	0	0	16-3584
+chrM	10425	0	0	0	0	0	0	0	16-3584
+chrM	10426	0	0	0	0	0	0	0	16-3584
+chrM	10427	0	0	0	0	0	0	0	16-3584
+chrM	10428	0	0	0	0	0	0	0	16-3584
+chrM	10429	0	0	0	0	0	0	0	16-3584
+chrM	10430	0	0	0	0	0	0	0	16-3584
+chrM	10431	0	0	0	0	0	0	0	16-3584
+chrM	10432	0	0	0	0	0	0	0	16-3584
+chrM	10433	0	0	0	0	0	0	0	16-3584
+chrM	10434	0	0	0	0	0	0	0	16-3584
+chrM	10435	0	0	0	0	0	0	0	16-3584
+chrM	10436	0	0	0	0	0	0	0	16-3584
+chrM	10437	0	0	0	0	0	0	0	16-3584
+chrM	10438	0	0	0	0	0	0	0	16-3584
+chrM	10439	0	0	0	0	0	0	0	16-3584
+chrM	10440	0	0	0	0	0	0	0	16-3584
+chrM	10441	0	0	0	0	0	0	0	16-3584
+chrM	10442	0	0	0	0	0	0	0	16-3584
+chrM	10443	0	0	0	0	0	0	0	16-3584
+chrM	10444	0	0	0	0	0	0	0	16-3584
+chrM	10445	0	0	0	0	0	0	0	16-3584
+chrM	10446	0	0	0	0	0	0	0	16-3584
+chrM	10447	0	0	0	0	0	0	0	16-3584
+chrM	10448	0	0	0	0	0	0	0	16-3584
+chrM	10449	0	0	0	0	0	0	0	16-3584
+chrM	10450	0	0	0	0	0	0	0	16-3584
+chrM	10451	0	0	0	0	0	0	0	16-3584
+chrM	10452	0	0	0	0	0	0	0	16-3584
+chrM	10453	0	0	0	0	0	0	0	16-3584
+chrM	10454	0	0	0	0	0	0	0	16-3584
+chrM	10455	0	0	0	0	0	0	0	16-3584
+chrM	10456	0	0	0	0	0	0	0	16-3584
+chrM	10457	0	0	0	0	0	0	0	16-3584
+chrM	10458	0	0	0	0	0	0	0	16-3584
+chrM	10459	0	0	0	0	0	0	0	16-3584
+chrM	10460	0	0	0	0	0	0	0	16-3584
+chrM	10461	0	0	0	0	0	0	0	16-3584
+chrM	10462	0	0	0	0	0	0	0	16-3584
+chrM	10463	0	0	0	0	0	0	0	16-3584
+chrM	10464	0	0	0	0	0	0	0	16-3584
+chrM	10465	0	0	0	0	0	0	0	16-3584
+chrM	10466	0	0	0	0	0	0	0	16-3584
+chrM	10467	0	0	0	0	0	0	0	16-3584
+chrM	10468	0	0	0	0	0	0	0	16-3584
+chrM	10469	0	0	0	0	0	0	0	16-3584
+chrM	10470	0	0	0	0	0	0	0	16-3584
+chrM	10471	0	0	0	0	0	0	0	16-3584
+chrM	10472	0	0	0	0	0	0	0	16-3584
+chrM	10473	0	0	0	0	0	0	0	16-3584
+chrM	10474	0	0	0	0	0	0	0	16-3584
+chrM	10475	0	0	0	0	0	0	0	16-3584
+chrM	10476	0	0	0	0	0	0	0	16-3584
+chrM	10477	0	0	0	0	0	0	0	16-3584
+chrM	10478	0	0	0	0	0	0	0	16-3584
+chrM	10479	0	0	0	0	0	0	0	16-3584
+chrM	10480	0	0	0	0	0	0	0	16-3584
+chrM	10481	0	0	0	0	0	0	0	16-3584
+chrM	10482	0	0	0	0	0	0	0	16-3584
+chrM	10483	0	0	0	0	0	0	0	16-3584
+chrM	10484	0	0	0	0	0	0	0	16-3584
+chrM	10485	0	0	0	0	0	0	0	16-3584
+chrM	10486	0	0	0	0	0	0	0	16-3584
+chrM	10487	0	0	0	0	0	0	0	16-3584
+chrM	10488	0	0	0	0	0	0	0	16-3584
+chrM	10489	0	0	0	0	0	0	0	16-3584
+chrM	10490	0	0	0	0	0	0	0	16-3584
+chrM	10491	0	0	0	0	0	0	0	16-3584
+chrM	10492	0	0	0	0	0	0	0	16-3584
+chrM	10493	0	0	0	0	0	0	0	16-3584
+chrM	10494	0	0	0	0	0	0	0	16-3584
+chrM	10495	0	0	0	0	0	0	0	16-3584
+chrM	10496	0	0	0	0	0	0	0	16-3584
+chrM	10497	0	0	0	0	0	0	0	16-3584
+chrM	10498	0	0	0	0	0	0	0	16-3584
+chrM	10499	0	0	0	0	0	0	0	16-3584
+chrM	10500	0	0	0	0	0	0	0	16-3584
+chrM	10501	0	0	0	0	0	0	0	16-3584
+chrM	10502	0	0	0	0	0	0	0	16-3584
+chrM	10503	0	0	0	0	0	0	0	16-3584
+chrM	10504	0	0	0	0	0	0	0	16-3584
+chrM	10505	0	0	0	0	0	0	0	16-3584
+chrM	10506	0	0	0	0	0	0	0	16-3584
+chrM	10507	0	0	0	0	0	0	0	16-3584
+chrM	10508	0	0	0	0	0	0	0	16-3584
+chrM	10509	0	0	0	0	0	0	0	16-3584
+chrM	10510	0	0	0	0	0	0	0	16-3584
+chrM	10511	0	0	0	0	0	0	0	16-3584
+chrM	10512	0	0	0	0	0	0	0	16-3584
+chrM	10513	0	0	0	0	0	0	0	16-3584
+chrM	10514	0	0	0	0	0	0	0	16-3584
+chrM	10515	0	0	0	0	0	0	0	16-3584
+chrM	10516	0	0	0	0	0	0	0	16-3584
+chrM	10517	0	0	0	0	0	0	0	16-3584
+chrM	10518	0	0	0	0	0	0	0	16-3584
+chrM	10519	0	0	0	0	0	0	0	16-3584
+chrM	10520	0	0	0	0	0	0	0	16-3584
+chrM	10521	0	0	0	0	0	0	0	16-3584
+chrM	10522	0	0	0	0	0	0	0	16-3584
+chrM	10523	0	0	0	0	0	0	0	16-3584
+chrM	10524	0	0	0	0	0	0	0	16-3584
+chrM	10525	0	0	0	0	0	0	0	16-3584
+chrM	10526	0	0	0	0	0	0	0	16-3584
+chrM	10527	0	0	0	0	0	0	0	16-3584
+chrM	10528	0	0	0	0	0	0	0	16-3584
+chrM	10529	0	0	0	0	0	0	0	16-3584
+chrM	10530	0	0	0	0	0	0	0	16-3584
+chrM	10531	0	0	0	0	0	0	0	16-3584
+chrM	10532	0	0	0	0	0	0	0	16-3584
+chrM	10533	0	0	0	0	0	0	0	16-3584
+chrM	10534	0	0	0	0	0	0	0	16-3584
+chrM	10535	0	0	0	0	0	0	0	16-3584
+chrM	10536	0	0	0	0	0	0	0	16-3584
+chrM	10537	0	0	0	0	0	0	0	16-3584
+chrM	10538	0	0	0	0	0	0	0	16-3584
+chrM	10539	0	0	0	0	0	0	0	16-3584
+chrM	10540	0	0	0	0	0	0	0	16-3584
+chrM	10541	0	0	0	0	0	0	0	16-3584
+chrM	10542	0	0	0	0	0	0	0	16-3584
+chrM	10543	0	0	0	0	0	0	0	16-3584
+chrM	10544	0	0	0	0	0	0	0	16-3584
+chrM	10545	0	0	0	0	0	0	0	16-3584
+chrM	10546	0	0	0	0	0	0	0	16-3584
+chrM	10547	0	0	0	0	0	0	0	16-3584
+chrM	10548	0	0	0	0	0	0	0	16-3584
+chrM	10549	0	0	0	0	0	0	0	16-3584
+chrM	10550	0	0	0	0	0	0	0	16-3584
+chrM	10551	0	0	0	0	0	0	0	16-3584
+chrM	10552	0	0	0	0	0	0	0	16-3584
+chrM	10553	0	0	0	0	0	0	0	16-3584
+chrM	10554	0	0	0	0	0	0	0	16-3584
+chrM	10555	0	0	0	0	0	0	0	16-3584
+chrM	10556	0	0	0	0	0	0	0	16-3584
+chrM	10557	0	0	0	0	0	0	0	16-3584
+chrM	10558	0	0	0	0	0	0	0	16-3584
+chrM	10559	0	0	0	0	0	0	0	16-3584
+chrM	10560	0	0	0	0	0	0	0	16-3584
+chrM	10561	0	0	0	0	0	0	0	16-3584
+chrM	10562	0	0	0	0	0	0	0	16-3584
+chrM	10563	0	0	0	0	0	0	0	16-3584
+chrM	10564	0	0	0	0	0	0	0	16-3584
+chrM	10565	0	0	0	0	0	0	0	16-3584
+chrM	10566	0	0	0	0	0	0	0	16-3584
+chrM	10567	0	0	0	0	0	0	0	16-3584
+chrM	10568	0	0	0	0	0	0	0	16-3584
+chrM	10569	0	0	0	0	0	0	0	16-3584
+chrM	10570	0	0	0	0	0	0	0	16-3584
+chrM	10571	0	0	0	0	0	0	0	16-3584
+chrM	10572	0	0	0	0	0	0	0	16-3584
+chrM	10573	0	0	0	0	0	0	0	16-3584
+chrM	10574	0	0	0	0	0	0	0	16-3584
+chrM	10575	0	0	0	0	0	0	0	16-3584
+chrM	10576	0	0	0	0	0	0	0	16-3584
+chrM	10577	0	0	0	0	0	0	0	16-3584
+chrM	10578	0	0	0	0	0	0	0	16-3584
+chrM	10579	0	0	0	0	0	0	0	16-3584
+chrM	10580	0	0	0	0	0	0	0	16-3584
+chrM	10581	0	0	0	0	0	0	0	16-3584
+chrM	10582	0	0	0	0	0	0	0	16-3584
+chrM	10583	0	0	0	0	0	0	0	16-3584
+chrM	10584	0	0	0	0	0	0	0	16-3584
+chrM	10585	0	0	0	0	0	0	0	16-3584
+chrM	10586	0	0	0	0	0	0	0	16-3584
+chrM	10587	0	0	0	0	0	0	0	16-3584
+chrM	10588	0	0	0	0	0	0	0	16-3584
+chrM	10589	0	0	0	0	0	0	0	16-3584
+chrM	10590	0	0	0	0	0	0	0	16-3584
+chrM	10591	0	0	0	0	0	0	0	16-3584
+chrM	10592	0	0	0	0	0	0	0	16-3584
+chrM	10593	0	0	0	0	0	0	0	16-3584
+chrM	10594	0	0	0	0	0	0	0	16-3584
+chrM	10595	0	0	0	0	0	0	0	16-3584
+chrM	10596	0	0	0	0	0	0	0	16-3584
+chrM	10597	0	0	0	0	0	0	0	16-3584
+chrM	10598	0	0	0	0	0	0	0	16-3584
+chrM	10599	0	0	0	0	0	0	0	16-3584
+chrM	10600	0	0	0	0	0	0	0	16-3584
+chrM	10601	0	0	0	0	0	0	0	16-3584
+chrM	10602	0	0	0	0	0	0	0	16-3584
+chrM	10603	0	0	0	0	0	0	0	16-3584
+chrM	10604	0	0	0	0	0	0	0	16-3584
+chrM	10605	0	0	0	0	0	0	0	16-3584
+chrM	10606	0	0	0	0	0	0	0	16-3584
+chrM	10607	0	0	0	0	0	0	0	16-3584
+chrM	10608	0	0	0	0	0	0	0	16-3584
+chrM	10609	0	0	0	0	0	0	0	16-3584
+chrM	10610	0	0	0	0	0	0	0	16-3584
+chrM	10611	0	0	0	0	0	0	0	16-3584
+chrM	10612	0	0	0	0	0	0	0	16-3584
+chrM	10613	0	0	0	0	0	0	0	16-3584
+chrM	10614	0	0	0	0	0	0	0	16-3584
+chrM	10615	0	0	0	0	0	0	0	16-3584
+chrM	10616	0	0	0	0	0	0	0	16-3584
+chrM	10617	0	0	0	0	0	0	0	16-3584
+chrM	10618	0	0	0	0	0	0	0	16-3584
+chrM	10619	0	0	0	0	0	0	0	16-3584
+chrM	10620	0	0	0	0	0	0	0	16-3584
+chrM	10621	0	0	0	0	0	0	0	16-3584
+chrM	10622	0	0	0	0	0	0	0	16-3584
+chrM	10623	0	0	0	0	0	0	0	16-3584
+chrM	10624	0	0	0	0	0	0	0	16-3584
+chrM	10625	0	0	0	0	0	0	0	16-3584
+chrM	10626	0	0	0	0	0	0	0	16-3584
+chrM	10627	0	0	0	0	0	0	0	16-3584
+chrM	10628	0	0	0	0	0	0	0	16-3584
+chrM	10629	0	0	0	0	0	0	0	16-3584
+chrM	10630	0	0	0	0	0	0	0	16-3584
+chrM	10631	0	0	0	0	0	0	0	16-3584
+chrM	10632	0	0	0	0	0	0	0	16-3584
+chrM	10633	0	0	0	0	0	0	0	16-3584
+chrM	10634	0	0	0	0	0	0	0	16-3584
+chrM	10635	0	0	0	0	0	0	0	16-3584
+chrM	10636	0	0	0	0	0	0	0	16-3584
+chrM	10637	0	0	0	0	0	0	0	16-3584
+chrM	10638	0	0	0	0	0	0	0	16-3584
+chrM	10639	0	0	0	0	0	0	0	16-3584
+chrM	10640	0	0	0	0	0	0	0	16-3584
+chrM	10641	0	0	0	0	0	0	0	16-3584
+chrM	10642	0	0	0	0	0	0	0	16-3584
+chrM	10643	0	0	0	0	0	0	0	16-3584
+chrM	10644	0	0	0	0	0	0	0	16-3584
+chrM	10645	0	0	0	0	0	0	0	16-3584
+chrM	10646	0	0	0	0	0	0	0	16-3584
+chrM	10647	0	0	0	0	0	0	0	16-3584
+chrM	10648	0	0	0	0	0	0	0	16-3584
+chrM	10649	0	0	0	0	0	0	0	16-3584
+chrM	10650	0	0	0	0	0	0	0	16-3584
+chrM	10651	0	0	0	0	0	0	0	16-3584
+chrM	10652	0	0	0	0	0	0	0	16-3584
+chrM	10653	0	0	0	0	0	0	0	16-3584
+chrM	10654	0	0	0	0	0	0	0	16-3584
+chrM	10655	0	0	0	0	0	0	0	16-3584
+chrM	10656	0	0	0	0	0	0	0	16-3584
+chrM	10657	0	0	0	0	0	0	0	16-3584
+chrM	10658	0	0	0	0	0	0	0	16-3584
+chrM	10659	0	0	0	0	0	0	0	16-3584
+chrM	10660	0	0	0	0	0	0	0	16-3584
+chrM	10661	0	0	0	0	0	0	0	16-3584
+chrM	10662	0	0	0	0	0	0	0	16-3584
+chrM	10663	0	0	0	0	0	0	0	16-3584
+chrM	10664	0	0	0	0	0	0	0	16-3584
+chrM	10665	0	0	0	0	0	0	0	16-3584
+chrM	10666	0	0	0	0	0	0	0	16-3584
+chrM	10667	0	0	0	0	0	0	0	16-3584
+chrM	10668	0	0	0	0	0	0	0	16-3584
+chrM	10669	0	0	0	0	0	0	0	16-3584
+chrM	10670	0	0	0	0	0	0	0	16-3584
+chrM	10671	0	0	0	0	0	0	0	16-3584
+chrM	10672	0	0	0	0	0	0	0	16-3584
+chrM	10673	0	0	0	0	0	0	0	16-3584
+chrM	10674	0	0	0	0	0	0	0	16-3584
+chrM	10675	0	0	0	0	0	0	0	16-3584
+chrM	10676	0	0	0	0	0	0	0	16-3584
+chrM	10677	0	0	0	0	0	0	0	16-3584
+chrM	10678	0	0	0	0	0	0	0	16-3584
+chrM	10679	0	0	0	0	0	0	0	16-3584
+chrM	10680	0	0	0	0	0	0	0	16-3584
+chrM	10681	0	0	0	0	0	0	0	16-3584
+chrM	10682	0	0	0	0	0	0	0	16-3584
+chrM	10683	0	0	0	0	0	0	0	16-3584
+chrM	10684	0	0	0	0	0	0	0	16-3584
+chrM	10685	0	0	0	0	0	0	0	16-3584
+chrM	10686	0	0	0	0	0	0	0	16-3584
+chrM	10687	0	0	0	0	0	0	0	16-3584
+chrM	10688	0	0	0	0	0	0	0	16-3584
+chrM	10689	0	0	0	0	0	0	0	16-3584
+chrM	10690	0	0	0	0	0	0	0	16-3584
+chrM	10691	0	0	0	0	0	0	0	16-3584
+chrM	10692	0	0	0	0	0	0	0	16-3584
+chrM	10693	0	0	0	0	0	0	0	16-3584
+chrM	10694	0	0	0	0	0	0	0	16-3584
+chrM	10695	0	0	0	0	0	0	0	16-3584
+chrM	10696	0	0	0	0	0	0	0	16-3584
+chrM	10697	0	0	0	0	0	0	0	16-3584
+chrM	10698	0	0	0	0	0	0	0	16-3584
+chrM	10699	0	0	0	0	0	0	0	16-3584
+chrM	10700	0	0	0	0	0	0	0	16-3584
+chrM	10701	0	0	0	0	0	0	0	16-3584
+chrM	10702	0	0	0	0	0	0	0	16-3584
+chrM	10703	0	0	0	0	0	0	0	16-3584
+chrM	10704	0	0	0	0	0	0	0	16-3584
+chrM	10705	0	0	0	0	0	0	0	16-3584
+chrM	10706	0	0	0	0	0	0	0	16-3584
+chrM	10707	0	0	0	0	0	0	0	16-3584
+chrM	10708	0	0	0	0	0	0	0	16-3584
+chrM	10709	0	0	0	0	0	0	0	16-3584
+chrM	10710	0	0	0	0	0	0	0	16-3584
+chrM	10711	0	0	0	0	0	0	0	16-3584
+chrM	10712	0	0	0	0	0	0	0	16-3584
+chrM	10713	0	0	0	0	0	0	0	16-3584
+chrM	10714	0	0	0	0	0	0	0	16-3584
+chrM	10715	0	0	0	0	0	0	0	16-3584
+chrM	10716	0	0	0	0	0	0	0	16-3584
+chrM	10717	0	0	0	0	0	0	0	16-3584
+chrM	10718	0	0	0	0	0	0	0	16-3584
+chrM	10719	0	0	0	0	0	0	0	16-3584
+chrM	10720	0	0	0	0	0	0	0	16-3584
+chrM	10721	0	0	0	0	0	0	0	16-3584
+chrM	10722	0	0	0	0	0	0	0	16-3584
+chrM	10723	0	0	0	0	0	0	0	16-3584
+chrM	10724	0	0	0	0	0	0	0	16-3584
+chrM	10725	0	0	0	0	0	0	0	16-3584
+chrM	10726	0	0	0	0	0	0	0	16-3584
+chrM	10727	0	0	0	0	0	0	0	16-3584
+chrM	10728	0	0	0	0	0	0	0	16-3584
+chrM	10729	0	0	0	0	0	0	0	16-3584
+chrM	10730	0	0	0	0	0	0	0	16-3584
+chrM	10731	0	0	0	0	0	0	0	16-3584
+chrM	10732	0	0	0	0	0	0	0	16-3584
+chrM	10733	0	0	0	0	0	0	0	16-3584
+chrM	10734	0	0	0	0	0	0	0	16-3584
+chrM	10735	0	0	0	0	0	0	0	16-3584
+chrM	10736	0	0	0	0	0	0	0	16-3584
+chrM	10737	0	0	0	0	0	0	0	16-3584
+chrM	10738	0	0	0	0	0	0	0	16-3584
+chrM	10739	0	0	0	0	0	0	0	16-3584
+chrM	10740	0	0	0	0	0	0	0	16-3584
+chrM	10741	0	0	0	0	0	0	0	16-3584
+chrM	10742	0	0	0	0	0	0	0	16-3584
+chrM	10743	0	0	0	0	0	0	0	16-3584
+chrM	10744	0	0	0	0	0	0	0	16-3584
+chrM	10745	0	0	0	0	0	0	0	16-3584
+chrM	10746	0	0	0	0	0	0	0	16-3584
+chrM	10747	0	0	0	0	0	0	0	16-3584
+chrM	10748	0	0	0	0	0	0	0	16-3584
+chrM	10749	0	0	0	0	0	0	0	16-3584
+chrM	10750	0	0	0	0	0	0	0	16-3584
+chrM	10751	0	0	0	0	0	0	0	16-3584
+chrM	10752	0	0	0	0	0	0	0	16-3584
+chrM	10753	0	0	0	0	0	0	0	16-3584
+chrM	10754	0	0	0	0	0	0	0	16-3584
+chrM	10755	0	0	0	0	0	0	0	16-3584
+chrM	10756	0	0	0	0	0	0	0	16-3584
+chrM	10757	0	0	0	0	0	0	0	16-3584
+chrM	10758	0	0	0	0	0	0	0	16-3584
+chrM	10759	0	0	0	0	0	0	0	16-3584
+chrM	10760	0	0	0	0	0	0	0	16-3584
+chrM	10761	0	0	0	0	0	0	0	16-3584
+chrM	10762	0	0	0	0	0	0	0	16-3584
+chrM	10763	0	0	0	0	0	0	0	16-3584
+chrM	10764	0	0	0	0	0	0	0	16-3584
+chrM	10765	0	0	0	0	0	0	0	16-3584
+chrM	10766	0	0	0	0	0	0	0	16-3584
+chrM	10767	0	0	0	0	0	0	0	16-3584
+chrM	10768	0	0	0	0	0	0	0	16-3584
+chrM	10769	0	0	0	0	0	0	0	16-3584
+chrM	10770	0	0	0	0	0	0	0	16-3584
+chrM	10771	0	0	0	0	0	0	0	16-3584
+chrM	10772	0	0	0	0	0	0	0	16-3584
+chrM	10773	0	0	0	0	0	0	0	16-3584
+chrM	10774	0	0	0	0	0	0	0	16-3584
+chrM	10775	0	0	0	0	0	0	0	16-3584
+chrM	10776	0	0	0	0	0	0	0	16-3584
+chrM	10777	0	0	0	0	0	0	0	16-3584
+chrM	10778	0	0	0	0	0	0	0	16-3584
+chrM	10779	0	0	0	0	0	0	0	16-3584
+chrM	10780	0	0	0	0	0	0	0	16-3584
+chrM	10781	0	0	0	0	0	0	0	16-3584
+chrM	10782	0	0	0	0	0	0	0	16-3584
+chrM	10783	0	0	0	0	0	0	0	16-3584
+chrM	10784	0	0	0	0	0	0	0	16-3584
+chrM	10785	0	0	0	0	0	0	0	16-3584
+chrM	10786	0	0	0	0	0	0	0	16-3584
+chrM	10787	0	0	0	0	0	0	0	16-3584
+chrM	10788	0	0	0	0	0	0	0	16-3584
+chrM	10789	0	0	0	0	0	0	0	16-3584
+chrM	10790	0	0	0	0	0	0	0	16-3584
+chrM	10791	0	0	0	0	0	0	0	16-3584
+chrM	10792	0	0	0	0	0	0	0	16-3584
+chrM	10793	0	0	0	0	0	0	0	16-3584
+chrM	10794	0	0	0	0	0	0	0	16-3584
+chrM	10795	0	0	0	0	0	0	0	16-3584
+chrM	10796	0	0	0	0	0	0	0	16-3584
+chrM	10797	0	0	0	0	0	0	0	16-3584
+chrM	10798	0	0	0	0	0	0	0	16-3584
+chrM	10799	0	0	0	0	0	0	0	16-3584
+chrM	10800	0	0	0	0	0	0	0	16-3584
+chrM	10801	0	0	0	0	0	0	0	16-3584
+chrM	10802	0	0	0	0	0	0	0	16-3584
+chrM	10803	0	0	0	0	0	0	0	16-3584
+chrM	10804	0	0	0	0	0	0	0	16-3584
+chrM	10805	0	0	0	0	0	0	0	16-3584
+chrM	10806	0	0	0	0	0	0	0	16-3584
+chrM	10807	0	0	0	0	0	0	0	16-3584
+chrM	10808	0	0	0	0	0	0	0	16-3584
+chrM	10809	0	0	0	0	0	0	0	16-3584
+chrM	10810	0	0	0	0	0	0	0	16-3584
+chrM	10811	0	0	0	0	0	0	0	16-3584
+chrM	10812	0	0	0	0	0	0	0	16-3584
+chrM	10813	0	0	0	0	0	0	0	16-3584
+chrM	10814	0	0	0	0	0	0	0	16-3584
+chrM	10815	0	0	0	0	0	0	0	16-3584
+chrM	10816	0	0	0	0	0	0	0	16-3584
+chrM	10817	0	0	0	0	0	0	0	16-3584
+chrM	10818	0	0	0	0	0	0	0	16-3584
+chrM	10819	0	0	0	0	0	0	0	16-3584
+chrM	10820	0	0	0	0	0	0	0	16-3584
+chrM	10821	0	0	0	0	0	0	0	16-3584
+chrM	10822	0	0	0	0	0	0	0	16-3584
+chrM	10823	0	0	0	0	0	0	0	16-3584
+chrM	10824	0	0	0	0	0	0	0	16-3584
+chrM	10825	0	0	0	0	0	0	0	16-3584
+chrM	10826	0	0	0	0	0	0	0	16-3584
+chrM	10827	0	0	0	0	0	0	0	16-3584
+chrM	10828	0	0	0	0	0	0	0	16-3584
+chrM	10829	0	0	0	0	0	0	0	16-3584
+chrM	10830	0	0	0	0	0	0	0	16-3584
+chrM	10831	0	0	0	0	0	0	0	16-3584
+chrM	10832	0	0	0	0	0	0	0	16-3584
+chrM	10833	0	0	0	0	0	0	0	16-3584
+chrM	10834	0	0	0	0	0	0	0	16-3584
+chrM	10835	0	0	0	0	0	0	0	16-3584
+chrM	10836	0	0	0	0	0	0	0	16-3584
+chrM	10837	0	0	0	0	0	0	0	16-3584
+chrM	10838	0	0	0	0	0	0	0	16-3584
+chrM	10839	0	0	0	0	0	0	0	16-3584
+chrM	10840	0	0	0	0	0	0	0	16-3584
+chrM	10841	0	0	0	0	0	0	0	16-3584
+chrM	10842	0	0	0	0	0	0	0	16-3584
+chrM	10843	0	0	0	0	0	0	0	16-3584
+chrM	10844	0	0	0	0	0	0	0	16-3584
+chrM	10845	0	0	0	0	0	0	0	16-3584
+chrM	10846	0	0	0	0	0	0	0	16-3584
+chrM	10847	0	0	0	0	0	0	0	16-3584
+chrM	10848	0	0	0	0	0	0	0	16-3584
+chrM	10849	0	0	0	0	0	0	0	16-3584
+chrM	10850	0	0	0	0	0	0	0	16-3584
+chrM	10851	0	0	0	0	0	0	0	16-3584
+chrM	10852	0	0	0	0	0	0	0	16-3584
+chrM	10853	0	0	0	0	0	0	0	16-3584
+chrM	10854	0	0	0	0	0	0	0	16-3584
+chrM	10855	0	0	0	0	0	0	0	16-3584
+chrM	10856	0	0	0	0	0	0	0	16-3584
+chrM	10857	0	0	0	0	0	0	0	16-3584
+chrM	10858	0	0	0	0	0	0	0	16-3584
+chrM	10859	0	0	0	0	0	0	0	16-3584
+chrM	10860	0	0	0	0	0	0	0	16-3584
+chrM	10861	0	0	0	0	0	0	0	16-3584
+chrM	10862	0	0	0	0	0	0	0	16-3584
+chrM	10863	0	0	0	0	0	0	0	16-3584
+chrM	10864	0	0	0	0	0	0	0	16-3584
+chrM	10865	0	0	0	0	0	0	0	16-3584
+chrM	10866	0	0	0	0	0	0	0	16-3584
+chrM	10867	0	0	0	0	0	0	0	16-3584
+chrM	10868	0	0	0	0	0	0	0	16-3584
+chrM	10869	0	0	0	0	0	0	0	16-3584
+chrM	10870	0	0	0	0	0	0	0	16-3584
+chrM	10871	0	0	0	0	0	0	0	16-3584
+chrM	10872	0	0	0	0	0	0	0	16-3584
+chrM	10873	0	0	0	0	0	0	0	16-3584
+chrM	10874	0	0	0	0	0	0	0	16-3584
+chrM	10875	0	0	0	0	0	0	0	16-3584
+chrM	10876	0	0	0	0	0	0	0	16-3584
+chrM	10877	0	0	0	0	0	0	0	16-3584
+chrM	10878	0	0	0	0	0	0	0	16-3584
+chrM	10879	0	0	0	0	0	0	0	16-3584
+chrM	10880	0	0	0	0	0	0	0	16-3584
+chrM	10881	0	0	0	0	0	0	0	16-3584
+chrM	10882	0	0	0	0	0	0	0	16-3584
+chrM	10883	0	0	0	0	0	0	0	16-3584
+chrM	10884	0	0	0	0	0	0	0	16-3584
+chrM	10885	0	0	0	0	0	0	0	16-3584
+chrM	10886	0	0	0	0	0	0	0	16-3584
+chrM	10887	0	0	0	0	0	0	0	16-3584
+chrM	10888	0	0	0	0	0	0	0	16-3584
+chrM	10889	0	0	0	0	0	0	0	16-3584
+chrM	10890	0	0	0	0	0	0	0	16-3584
+chrM	10891	0	0	0	0	0	0	0	16-3584
+chrM	10892	0	0	0	0	0	0	0	16-3584
+chrM	10893	0	0	0	0	0	0	0	16-3584
+chrM	10894	0	0	0	0	0	0	0	16-3584
+chrM	10895	0	0	0	0	0	0	0	16-3584
+chrM	10896	0	0	0	0	0	0	0	16-3584
+chrM	10897	0	0	0	0	0	0	0	16-3584
+chrM	10898	0	0	0	0	0	0	0	16-3584
+chrM	10899	0	0	0	0	0	0	0	16-3584
+chrM	10900	0	0	0	0	0	0	0	16-3584
+chrM	10901	0	0	0	0	0	0	0	16-3584
+chrM	10902	0	0	0	0	0	0	0	16-3584
+chrM	10903	0	0	0	0	0	0	0	16-3584
+chrM	10904	0	0	0	0	0	0	0	16-3584
+chrM	10905	0	0	0	0	0	0	0	16-3584
+chrM	10906	0	0	0	0	0	0	0	16-3584
+chrM	10907	0	0	0	0	0	0	0	16-3584
+chrM	10908	0	0	0	0	0	0	0	16-3584
+chrM	10909	0	0	0	0	0	0	0	16-3584
+chrM	10910	0	0	0	0	0	0	0	16-3584
+chrM	10911	0	0	0	0	0	0	0	16-3584
+chrM	10912	1	0	0	0	1	0	0	16-3584
+chrM	10913	1	1	0	0	0	0	0	16-3584
+chrM	10914	1	1	0	0	0	0	0	16-3584
+chrM	10915	1	0	0	1	0	0	0	16-3584
+chrM	10916	1	0	0	0	1	0	0	16-3584
+chrM	10917	2	0	0	2	0	0	0	16-3584
+chrM	10918	2	0	1	0	1	0	0	16-3584
+chrM	10919	2	0	2	0	0	0	0	16-3584
+chrM	10920	2	0	1	1	0	0	0	16-3584
+chrM	10921	2	0	2	0	0	0	0	16-3584
+chrM	10922	2	1	0	1	0	0	0	16-3584
+chrM	10923	2	1	0	1	0	0	0	16-3584
+chrM	10924	2	1	0	1	0	0	0	16-3584
+chrM	10925	2	0	0	2	0	0	0	16-3584
+chrM	10926	2	0	2	0	0	0	0	16-3584
+chrM	10927	2	0	0	2	0	0	0	16-3584
+chrM	10928	2	1	0	1	0	0	0	16-3584
+chrM	10929	2	1	1	0	0	0	0	16-3584
+chrM	10930	2	1	0	0	1	0	0	16-3584
+chrM	10931	2	1	0	1	0	0	0	16-3584
+chrM	10932	2	1	1	0	0	0	0	16-3584
+chrM	10933	2	1	0	1	0	0	0	16-3584
+chrM	10934	2	0	1	1	0	0	0	16-3584
+chrM	10935	2	1	1	0	0	0	0	16-3584
+chrM	10936	2	1	0	0	1	0	0	16-3584
+chrM	10937	2	0	2	0	0	0	0	16-3584
+chrM	10938	2	1	0	0	1	0	0	16-3584
+chrM	10939	2	0	0	1	1	0	0	16-3584
+chrM	10940	2	0	0	1	1	0	0	16-3584
+chrM	10941	2	0	1	1	0	0	0	16-3584
+chrM	10942	2	0	1	0	1	0	0	16-3584
+chrM	10943	2	0	1	0	1	0	0	16-3584
+chrM	10944	2	2	0	0	0	0	0	16-3584
+chrM	10945	2	1	0	1	0	0	0	16-3584
+chrM	10946	2	1	1	0	0	0	0	16-3584
+chrM	10947	2	0	0	1	1	0	0	16-3584
+chrM	10948	2	0	1	1	0	0	0	16-3584
+chrM	10949	2	1	1	0	0	0	0	16-3584
+chrM	10950	2	1	0	0	1	0	0	16-3584
+chrM	10951	2	0	1	0	1	0	0	16-3584
+chrM	10952	2	0	0	0	2	0	0	16-3584
+chrM	10953	2	0	0	1	1	0	0	16-3584
+chrM	10954	2	0	0	2	0	0	0	16-3584
+chrM	10955	2	2	0	0	0	0	0	16-3584
+chrM	10956	2	0	1	0	1	0	0	16-3584
+chrM	10957	2	0	0	2	0	0	0	16-3584
+chrM	10958	2	0	1	0	1	0	0	16-3584
+chrM	10959	2	0	1	0	1	0	0	16-3584
+chrM	10960	2	1	0	0	1	0	0	16-3584
+chrM	10961	2	1	1	0	0	0	0	16-3584
+chrM	10962	2	1	0	0	1	0	0	16-3584
+chrM	10963	2	1	0	0	1	0	0	16-3584
+chrM	10964	2	0	0	0	2	0	0	16-3584
+chrM	10965	2	1	1	0	0	0	0	16-3584
+chrM	10966	2	0	1	1	0	0	0	16-3584
+chrM	10967	2	0	1	0	1	0	0	16-3584
+chrM	10968	2	0	1	0	1	0	0	16-3584
+chrM	10969	2	0	1	1	0	0	0	16-3584
+chrM	10970	2	0	0	1	1	0	0	16-3584
+chrM	10971	2	1	1	0	0	0	0	16-3584
+chrM	10972	2	0	0	1	1	0	0	16-3584
+chrM	10973	2	2	0	0	0	0	0	16-3584
+chrM	10974	2	2	0	0	0	0	0	16-3584
+chrM	10975	2	1	0	1	0	0	0	16-3584
+chrM	10976	2	0	2	0	0	0	0	16-3584
+chrM	10977	2	1	0	1	0	0	0	16-3584
+chrM	10978	2	1	0	0	1	0	0	16-3584
+chrM	10979	2	0	0	0	2	0	0	16-3584
+chrM	10980	2	2	0	0	0	0	0	16-3584
+chrM	10981	2	0	2	0	0	0	0	16-3584
+chrM	10982	2	1	1	0	0	0	0	16-3584
+chrM	10983	2	1	1	0	0	0	0	16-3584
+chrM	10984	1	0	0	0	1	0	0	16-3584
+chrM	10985	1	1	0	0	0	0	0	16-3584
+chrM	10986	1	0	1	0	0	0	0	16-3584
+chrM	10987	1	0	1	0	0	0	0	16-3584
+chrM	10988	1	1	0	0	0	0	0	16-3584
+chrM	10989	0	0	0	0	0	0	0	16-3584
+chrM	10990	0	0	0	0	0	0	0	16-3584
+chrM	10991	0	0	0	0	0	0	0	16-3584
+chrM	10992	0	0	0	0	0	0	0	16-3584
+chrM	10993	0	0	0	0	0	0	0	16-3584
+chrM	10994	0	0	0	0	0	0	0	16-3584
+chrM	10995	0	0	0	0	0	0	0	16-3584
+chrM	10996	0	0	0	0	0	0	0	16-3584
+chrM	10997	0	0	0	0	0	0	0	16-3584
+chrM	10998	0	0	0	0	0	0	0	16-3584
+chrM	10999	0	0	0	0	0	0	0	16-3584
+chrM	11000	0	0	0	0	0	0	0	16-3584
+chrM	11001	0	0	0	0	0	0	0	16-3584
+chrM	11002	0	0	0	0	0	0	0	16-3584
+chrM	11003	0	0	0	0	0	0	0	16-3584
+chrM	11004	0	0	0	0	0	0	0	16-3584
+chrM	11005	0	0	0	0	0	0	0	16-3584
+chrM	11006	0	0	0	0	0	0	0	16-3584
+chrM	11007	0	0	0	0	0	0	0	16-3584
+chrM	11008	0	0	0	0	0	0	0	16-3584
+chrM	11009	0	0	0	0	0	0	0	16-3584
+chrM	11010	0	0	0	0	0	0	0	16-3584
+chrM	11011	0	0	0	0	0	0	0	16-3584
+chrM	11012	0	0	0	0	0	0	0	16-3584
+chrM	11013	0	0	0	0	0	0	0	16-3584
+chrM	11014	0	0	0	0	0	0	0	16-3584
+chrM	11015	0	0	0	0	0	0	0	16-3584
+chrM	11016	0	0	0	0	0	0	0	16-3584
+chrM	11017	0	0	0	0	0	0	0	16-3584
+chrM	11018	0	0	0	0	0	0	0	16-3584
+chrM	11019	0	0	0	0	0	0	0	16-3584
+chrM	11020	0	0	0	0	0	0	0	16-3584
+chrM	11021	0	0	0	0	0	0	0	16-3584
+chrM	11022	0	0	0	0	0	0	0	16-3584
+chrM	11023	0	0	0	0	0	0	0	16-3584
+chrM	11024	0	0	0	0	0	0	0	16-3584
+chrM	11025	0	0	0	0	0	0	0	16-3584
+chrM	11026	0	0	0	0	0	0	0	16-3584
+chrM	11027	0	0	0	0	0	0	0	16-3584
+chrM	11028	0	0	0	0	0	0	0	16-3584
+chrM	11029	0	0	0	0	0	0	0	16-3584
+chrM	11030	0	0	0	0	0	0	0	16-3584
+chrM	11031	0	0	0	0	0	0	0	16-3584
+chrM	11032	0	0	0	0	0	0	0	16-3584
+chrM	11033	0	0	0	0	0	0	0	16-3584
+chrM	11034	0	0	0	0	0	0	0	16-3584
+chrM	11035	0	0	0	0	0	0	0	16-3584
+chrM	11036	0	0	0	0	0	0	0	16-3584
+chrM	11037	0	0	0	0	0	0	0	16-3584
+chrM	11038	0	0	0	0	0	0	0	16-3584
+chrM	11039	0	0	0	0	0	0	0	16-3584
+chrM	11040	0	0	0	0	0	0	0	16-3584
+chrM	11041	0	0	0	0	0	0	0	16-3584
+chrM	11042	0	0	0	0	0	0	0	16-3584
+chrM	11043	0	0	0	0	0	0	0	16-3584
+chrM	11044	0	0	0	0	0	0	0	16-3584
+chrM	11045	0	0	0	0	0	0	0	16-3584
+chrM	11046	0	0	0	0	0	0	0	16-3584
+chrM	11047	0	0	0	0	0	0	0	16-3584
+chrM	11048	0	0	0	0	0	0	0	16-3584
+chrM	11049	0	0	0	0	0	0	0	16-3584
+chrM	11050	0	0	0	0	0	0	0	16-3584
+chrM	11051	0	0	0	0	0	0	0	16-3584
+chrM	11052	0	0	0	0	0	0	0	16-3584
+chrM	11053	0	0	0	0	0	0	0	16-3584
+chrM	11054	0	0	0	0	0	0	0	16-3584
+chrM	11055	0	0	0	0	0	0	0	16-3584
+chrM	11056	0	0	0	0	0	0	0	16-3584
+chrM	11057	0	0	0	0	0	0	0	16-3584
+chrM	11058	0	0	0	0	0	0	0	16-3584
+chrM	11059	0	0	0	0	0	0	0	16-3584
+chrM	11060	0	0	0	0	0	0	0	16-3584
+chrM	11061	0	0	0	0	0	0	0	16-3584
+chrM	11062	0	0	0	0	0	0	0	16-3584
+chrM	11063	0	0	0	0	0	0	0	16-3584
+chrM	11064	0	0	0	0	0	0	0	16-3584
+chrM	11065	0	0	0	0	0	0	0	16-3584
+chrM	11066	0	0	0	0	0	0	0	16-3584
+chrM	11067	0	0	0	0	0	0	0	16-3584
+chrM	11068	0	0	0	0	0	0	0	16-3584
+chrM	11069	0	0	0	0	0	0	0	16-3584
+chrM	11070	0	0	0	0	0	0	0	16-3584
+chrM	11071	0	0	0	0	0	0	0	16-3584
+chrM	11072	0	0	0	0	0	0	0	16-3584
+chrM	11073	0	0	0	0	0	0	0	16-3584
+chrM	11074	0	0	0	0	0	0	0	16-3584
+chrM	11075	0	0	0	0	0	0	0	16-3584
+chrM	11076	0	0	0	0	0	0	0	16-3584
+chrM	11077	0	0	0	0	0	0	0	16-3584
+chrM	11078	0	0	0	0	0	0	0	16-3584
+chrM	11079	0	0	0	0	0	0	0	16-3584
+chrM	11080	0	0	0	0	0	0	0	16-3584
+chrM	11081	0	0	0	0	0	0	0	16-3584
+chrM	11082	0	0	0	0	0	0	0	16-3584
+chrM	11083	0	0	0	0	0	0	0	16-3584
+chrM	11084	0	0	0	0	0	0	0	16-3584
+chrM	11085	0	0	0	0	0	0	0	16-3584
+chrM	11086	0	0	0	0	0	0	0	16-3584
+chrM	11087	0	0	0	0	0	0	0	16-3584
+chrM	11088	0	0	0	0	0	0	0	16-3584
+chrM	11089	0	0	0	0	0	0	0	16-3584
+chrM	11090	0	0	0	0	0	0	0	16-3584
+chrM	11091	0	0	0	0	0	0	0	16-3584
+chrM	11092	0	0	0	0	0	0	0	16-3584
+chrM	11093	0	0	0	0	0	0	0	16-3584
+chrM	11094	0	0	0	0	0	0	0	16-3584
+chrM	11095	0	0	0	0	0	0	0	16-3584
+chrM	11096	0	0	0	0	0	0	0	16-3584
+chrM	11097	0	0	0	0	0	0	0	16-3584
+chrM	11098	0	0	0	0	0	0	0	16-3584
+chrM	11099	0	0	0	0	0	0	0	16-3584
+chrM	11100	0	0	0	0	0	0	0	16-3584
+chrM	11101	0	0	0	0	0	0	0	16-3584
+chrM	11102	0	0	0	0	0	0	0	16-3584
+chrM	11103	0	0	0	0	0	0	0	16-3584
+chrM	11104	0	0	0	0	0	0	0	16-3584
+chrM	11105	0	0	0	0	0	0	0	16-3584
+chrM	11106	0	0	0	0	0	0	0	16-3584
+chrM	11107	0	0	0	0	0	0	0	16-3584
+chrM	11108	0	0	0	0	0	0	0	16-3584
+chrM	11109	0	0	0	0	0	0	0	16-3584
+chrM	11110	0	0	0	0	0	0	0	16-3584
+chrM	11111	0	0	0	0	0	0	0	16-3584
+chrM	11112	0	0	0	0	0	0	0	16-3584
+chrM	11113	0	0	0	0	0	0	0	16-3584
+chrM	11114	0	0	0	0	0	0	0	16-3584
+chrM	11115	0	0	0	0	0	0	0	16-3584
+chrM	11116	0	0	0	0	0	0	0	16-3584
+chrM	11117	0	0	0	0	0	0	0	16-3584
+chrM	11118	0	0	0	0	0	0	0	16-3584
+chrM	11119	0	0	0	0	0	0	0	16-3584
+chrM	11120	0	0	0	0	0	0	0	16-3584
+chrM	11121	0	0	0	0	0	0	0	16-3584
+chrM	11122	0	0	0	0	0	0	0	16-3584
+chrM	11123	0	0	0	0	0	0	0	16-3584
+chrM	11124	0	0	0	0	0	0	0	16-3584
+chrM	11125	0	0	0	0	0	0	0	16-3584
+chrM	11126	0	0	0	0	0	0	0	16-3584
+chrM	11127	0	0	0	0	0	0	0	16-3584
+chrM	11128	0	0	0	0	0	0	0	16-3584
+chrM	11129	0	0	0	0	0	0	0	16-3584
+chrM	11130	0	0	0	0	0	0	0	16-3584
+chrM	11131	0	0	0	0	0	0	0	16-3584
+chrM	11132	0	0	0	0	0	0	0	16-3584
+chrM	11133	0	0	0	0	0	0	0	16-3584
+chrM	11134	0	0	0	0	0	0	0	16-3584
+chrM	11135	0	0	0	0	0	0	0	16-3584
+chrM	11136	0	0	0	0	0	0	0	16-3584
+chrM	11137	0	0	0	0	0	0	0	16-3584
+chrM	11138	0	0	0	0	0	0	0	16-3584
+chrM	11139	0	0	0	0	0	0	0	16-3584
+chrM	11140	0	0	0	0	0	0	0	16-3584
+chrM	11141	0	0	0	0	0	0	0	16-3584
+chrM	11142	0	0	0	0	0	0	0	16-3584
+chrM	11143	0	0	0	0	0	0	0	16-3584
+chrM	11144	0	0	0	0	0	0	0	16-3584
+chrM	11145	0	0	0	0	0	0	0	16-3584
+chrM	11146	0	0	0	0	0	0	0	16-3584
+chrM	11147	0	0	0	0	0	0	0	16-3584
+chrM	11148	0	0	0	0	0	0	0	16-3584
+chrM	11149	0	0	0	0	0	0	0	16-3584
+chrM	11150	0	0	0	0	0	0	0	16-3584
+chrM	11151	0	0	0	0	0	0	0	16-3584
+chrM	11152	0	0	0	0	0	0	0	16-3584
+chrM	11153	0	0	0	0	0	0	0	16-3584
+chrM	11154	0	0	0	0	0	0	0	16-3584
+chrM	11155	0	0	0	0	0	0	0	16-3584
+chrM	11156	0	0	0	0	0	0	0	16-3584
+chrM	11157	0	0	0	0	0	0	0	16-3584
+chrM	11158	0	0	0	0	0	0	0	16-3584
+chrM	11159	0	0	0	0	0	0	0	16-3584
+chrM	11160	0	0	0	0	0	0	0	16-3584
+chrM	11161	0	0	0	0	0	0	0	16-3584
+chrM	11162	0	0	0	0	0	0	0	16-3584
+chrM	11163	0	0	0	0	0	0	0	16-3584
+chrM	11164	0	0	0	0	0	0	0	16-3584
+chrM	11165	0	0	0	0	0	0	0	16-3584
+chrM	11166	0	0	0	0	0	0	0	16-3584
+chrM	11167	0	0	0	0	0	0	0	16-3584
+chrM	11168	0	0	0	0	0	0	0	16-3584
+chrM	11169	0	0	0	0	0	0	0	16-3584
+chrM	11170	0	0	0	0	0	0	0	16-3584
+chrM	11171	0	0	0	0	0	0	0	16-3584
+chrM	11172	0	0	0	0	0	0	0	16-3584
+chrM	11173	0	0	0	0	0	0	0	16-3584
+chrM	11174	0	0	0	0	0	0	0	16-3584
+chrM	11175	0	0	0	0	0	0	0	16-3584
+chrM	11176	0	0	0	0	0	0	0	16-3584
+chrM	11177	0	0	0	0	0	0	0	16-3584
+chrM	11178	0	0	0	0	0	0	0	16-3584
+chrM	11179	0	0	0	0	0	0	0	16-3584
+chrM	11180	0	0	0	0	0	0	0	16-3584
+chrM	11181	0	0	0	0	0	0	0	16-3584
+chrM	11182	0	0	0	0	0	0	0	16-3584
+chrM	11183	0	0	0	0	0	0	0	16-3584
+chrM	11184	0	0	0	0	0	0	0	16-3584
+chrM	11185	0	0	0	0	0	0	0	16-3584
+chrM	11186	0	0	0	0	0	0	0	16-3584
+chrM	11187	0	0	0	0	0	0	0	16-3584
+chrM	11188	0	0	0	0	0	0	0	16-3584
+chrM	11189	0	0	0	0	0	0	0	16-3584
+chrM	11190	0	0	0	0	0	0	0	16-3584
+chrM	11191	0	0	0	0	0	0	0	16-3584
+chrM	11192	0	0	0	0	0	0	0	16-3584
+chrM	11193	0	0	0	0	0	0	0	16-3584
+chrM	11194	0	0	0	0	0	0	0	16-3584
+chrM	11195	0	0	0	0	0	0	0	16-3584
+chrM	11196	0	0	0	0	0	0	0	16-3584
+chrM	11197	0	0	0	0	0	0	0	16-3584
+chrM	11198	0	0	0	0	0	0	0	16-3584
+chrM	11199	0	0	0	0	0	0	0	16-3584
+chrM	11200	0	0	0	0	0	0	0	16-3584
+chrM	11201	0	0	0	0	0	0	0	16-3584
+chrM	11202	0	0	0	0	0	0	0	16-3584
+chrM	11203	0	0	0	0	0	0	0	16-3584
+chrM	11204	0	0	0	0	0	0	0	16-3584
+chrM	11205	0	0	0	0	0	0	0	16-3584
+chrM	11206	0	0	0	0	0	0	0	16-3584
+chrM	11207	0	0	0	0	0	0	0	16-3584
+chrM	11208	0	0	0	0	0	0	0	16-3584
+chrM	11209	0	0	0	0	0	0	0	16-3584
+chrM	11210	0	0	0	0	0	0	0	16-3584
+chrM	11211	0	0	0	0	0	0	0	16-3584
+chrM	11212	0	0	0	0	0	0	0	16-3584
+chrM	11213	0	0	0	0	0	0	0	16-3584
+chrM	11214	0	0	0	0	0	0	0	16-3584
+chrM	11215	0	0	0	0	0	0	0	16-3584
+chrM	11216	0	0	0	0	0	0	0	16-3584
+chrM	11217	0	0	0	0	0	0	0	16-3584
+chrM	11218	0	0	0	0	0	0	0	16-3584
+chrM	11219	0	0	0	0	0	0	0	16-3584
+chrM	11220	0	0	0	0	0	0	0	16-3584
+chrM	11221	0	0	0	0	0	0	0	16-3584
+chrM	11222	0	0	0	0	0	0	0	16-3584
+chrM	11223	0	0	0	0	0	0	0	16-3584
+chrM	11224	0	0	0	0	0	0	0	16-3584
+chrM	11225	0	0	0	0	0	0	0	16-3584
+chrM	11226	0	0	0	0	0	0	0	16-3584
+chrM	11227	0	0	0	0	0	0	0	16-3584
+chrM	11228	0	0	0	0	0	0	0	16-3584
+chrM	11229	0	0	0	0	0	0	0	16-3584
+chrM	11230	0	0	0	0	0	0	0	16-3584
+chrM	11231	0	0	0	0	0	0	0	16-3584
+chrM	11232	0	0	0	0	0	0	0	16-3584
+chrM	11233	0	0	0	0	0	0	0	16-3584
+chrM	11234	0	0	0	0	0	0	0	16-3584
+chrM	11235	0	0	0	0	0	0	0	16-3584
+chrM	11236	0	0	0	0	0	0	0	16-3584
+chrM	11237	0	0	0	0	0	0	0	16-3584
+chrM	11238	0	0	0	0	0	0	0	16-3584
+chrM	11239	0	0	0	0	0	0	0	16-3584
+chrM	11240	0	0	0	0	0	0	0	16-3584
+chrM	11241	0	0	0	0	0	0	0	16-3584
+chrM	11242	0	0	0	0	0	0	0	16-3584
+chrM	11243	0	0	0	0	0	0	0	16-3584
+chrM	11244	0	0	0	0	0	0	0	16-3584
+chrM	11245	0	0	0	0	0	0	0	16-3584
+chrM	11246	0	0	0	0	0	0	0	16-3584
+chrM	11247	0	0	0	0	0	0	0	16-3584
+chrM	11248	0	0	0	0	0	0	0	16-3584
+chrM	11249	0	0	0	0	0	0	0	16-3584
+chrM	11250	0	0	0	0	0	0	0	16-3584
+chrM	11251	0	0	0	0	0	0	0	16-3584
+chrM	11252	0	0	0	0	0	0	0	16-3584
+chrM	11253	0	0	0	0	0	0	0	16-3584
+chrM	11254	0	0	0	0	0	0	0	16-3584
+chrM	11255	0	0	0	0	0	0	0	16-3584
+chrM	11256	0	0	0	0	0	0	0	16-3584
+chrM	11257	0	0	0	0	0	0	0	16-3584
+chrM	11258	0	0	0	0	0	0	0	16-3584
+chrM	11259	0	0	0	0	0	0	0	16-3584
+chrM	11260	0	0	0	0	0	0	0	16-3584
+chrM	11261	0	0	0	0	0	0	0	16-3584
+chrM	11262	0	0	0	0	0	0	0	16-3584
+chrM	11263	0	0	0	0	0	0	0	16-3584
+chrM	11264	0	0	0	0	0	0	0	16-3584
+chrM	11265	0	0	0	0	0	0	0	16-3584
+chrM	11266	0	0	0	0	0	0	0	16-3584
+chrM	11267	0	0	0	0	0	0	0	16-3584
+chrM	11268	0	0	0	0	0	0	0	16-3584
+chrM	11269	0	0	0	0	0	0	0	16-3584
+chrM	11270	0	0	0	0	0	0	0	16-3584
+chrM	11271	0	0	0	0	0	0	0	16-3584
+chrM	11272	0	0	0	0	0	0	0	16-3584
+chrM	11273	0	0	0	0	0	0	0	16-3584
+chrM	11274	0	0	0	0	0	0	0	16-3584
+chrM	11275	0	0	0	0	0	0	0	16-3584
+chrM	11276	0	0	0	0	0	0	0	16-3584
+chrM	11277	0	0	0	0	0	0	0	16-3584
+chrM	11278	0	0	0	0	0	0	0	16-3584
+chrM	11279	0	0	0	0	0	0	0	16-3584
+chrM	11280	0	0	0	0	0	0	0	16-3584
+chrM	11281	0	0	0	0	0	0	0	16-3584
+chrM	11282	0	0	0	0	0	0	0	16-3584
+chrM	11283	0	0	0	0	0	0	0	16-3584
+chrM	11284	0	0	0	0	0	0	0	16-3584
+chrM	11285	0	0	0	0	0	0	0	16-3584
+chrM	11286	0	0	0	0	0	0	0	16-3584
+chrM	11287	0	0	0	0	0	0	0	16-3584
+chrM	11288	0	0	0	0	0	0	0	16-3584
+chrM	11289	0	0	0	0	0	0	0	16-3584
+chrM	11290	0	0	0	0	0	0	0	16-3584
+chrM	11291	0	0	0	0	0	0	0	16-3584
+chrM	11292	0	0	0	0	0	0	0	16-3584
+chrM	11293	0	0	0	0	0	0	0	16-3584
+chrM	11294	0	0	0	0	0	0	0	16-3584
+chrM	11295	0	0	0	0	0	0	0	16-3584
+chrM	11296	0	0	0	0	0	0	0	16-3584
+chrM	11297	0	0	0	0	0	0	0	16-3584
+chrM	11298	0	0	0	0	0	0	0	16-3584
+chrM	11299	0	0	0	0	0	0	0	16-3584
+chrM	11300	0	0	0	0	0	0	0	16-3584
+chrM	11301	0	0	0	0	0	0	0	16-3584
+chrM	11302	0	0	0	0	0	0	0	16-3584
+chrM	11303	0	0	0	0	0	0	0	16-3584
+chrM	11304	0	0	0	0	0	0	0	16-3584
+chrM	11305	0	0	0	0	0	0	0	16-3584
+chrM	11306	0	0	0	0	0	0	0	16-3584
+chrM	11307	0	0	0	0	0	0	0	16-3584
+chrM	11308	0	0	0	0	0	0	0	16-3584
+chrM	11309	0	0	0	0	0	0	0	16-3584
+chrM	11310	0	0	0	0	0	0	0	16-3584
+chrM	11311	0	0	0	0	0	0	0	16-3584
+chrM	11312	0	0	0	0	0	0	0	16-3584
+chrM	11313	0	0	0	0	0	0	0	16-3584
+chrM	11314	0	0	0	0	0	0	0	16-3584
+chrM	11315	0	0	0	0	0	0	0	16-3584
+chrM	11316	0	0	0	0	0	0	0	16-3584
+chrM	11317	0	0	0	0	0	0	0	16-3584
+chrM	11318	0	0	0	0	0	0	0	16-3584
+chrM	11319	0	0	0	0	0	0	0	16-3584
+chrM	11320	0	0	0	0	0	0	0	16-3584
+chrM	11321	0	0	0	0	0	0	0	16-3584
+chrM	11322	0	0	0	0	0	0	0	16-3584
+chrM	11323	0	0	0	0	0	0	0	16-3584
+chrM	11324	0	0	0	0	0	0	0	16-3584
+chrM	11325	0	0	0	0	0	0	0	16-3584
+chrM	11326	0	0	0	0	0	0	0	16-3584
+chrM	11327	0	0	0	0	0	0	0	16-3584
+chrM	11328	0	0	0	0	0	0	0	16-3584
+chrM	11329	0	0	0	0	0	0	0	16-3584
+chrM	11330	0	0	0	0	0	0	0	16-3584
+chrM	11331	0	0	0	0	0	0	0	16-3584
+chrM	11332	0	0	0	0	0	0	0	16-3584
+chrM	11333	0	0	0	0	0	0	0	16-3584
+chrM	11334	0	0	0	0	0	0	0	16-3584
+chrM	11335	0	0	0	0	0	0	0	16-3584
+chrM	11336	0	0	0	0	0	0	0	16-3584
+chrM	11337	0	0	0	0	0	0	0	16-3584
+chrM	11338	0	0	0	0	0	0	0	16-3584
+chrM	11339	0	0	0	0	0	0	0	16-3584
+chrM	11340	0	0	0	0	0	0	0	16-3584
+chrM	11341	0	0	0	0	0	0	0	16-3584
+chrM	11342	0	0	0	0	0	0	0	16-3584
+chrM	11343	0	0	0	0	0	0	0	16-3584
+chrM	11344	0	0	0	0	0	0	0	16-3584
+chrM	11345	0	0	0	0	0	0	0	16-3584
+chrM	11346	0	0	0	0	0	0	0	16-3584
+chrM	11347	0	0	0	0	0	0	0	16-3584
+chrM	11348	0	0	0	0	0	0	0	16-3584
+chrM	11349	0	0	0	0	0	0	0	16-3584
+chrM	11350	0	0	0	0	0	0	0	16-3584
+chrM	11351	0	0	0	0	0	0	0	16-3584
+chrM	11352	0	0	0	0	0	0	0	16-3584
+chrM	11353	0	0	0	0	0	0	0	16-3584
+chrM	11354	0	0	0	0	0	0	0	16-3584
+chrM	11355	0	0	0	0	0	0	0	16-3584
+chrM	11356	0	0	0	0	0	0	0	16-3584
+chrM	11357	0	0	0	0	0	0	0	16-3584
+chrM	11358	0	0	0	0	0	0	0	16-3584
+chrM	11359	0	0	0	0	0	0	0	16-3584
+chrM	11360	0	0	0	0	0	0	0	16-3584
+chrM	11361	0	0	0	0	0	0	0	16-3584
+chrM	11362	0	0	0	0	0	0	0	16-3584
+chrM	11363	0	0	0	0	0	0	0	16-3584
+chrM	11364	0	0	0	0	0	0	0	16-3584
+chrM	11365	0	0	0	0	0	0	0	16-3584
+chrM	11366	0	0	0	0	0	0	0	16-3584
+chrM	11367	0	0	0	0	0	0	0	16-3584
+chrM	11368	0	0	0	0	0	0	0	16-3584
+chrM	11369	0	0	0	0	0	0	0	16-3584
+chrM	11370	0	0	0	0	0	0	0	16-3584
+chrM	11371	0	0	0	0	0	0	0	16-3584
+chrM	11372	0	0	0	0	0	0	0	16-3584
+chrM	11373	0	0	0	0	0	0	0	16-3584
+chrM	11374	0	0	0	0	0	0	0	16-3584
+chrM	11375	0	0	0	0	0	0	0	16-3584
+chrM	11376	0	0	0	0	0	0	0	16-3584
+chrM	11377	0	0	0	0	0	0	0	16-3584
+chrM	11378	0	0	0	0	0	0	0	16-3584
+chrM	11379	0	0	0	0	0	0	0	16-3584
+chrM	11380	0	0	0	0	0	0	0	16-3584
+chrM	11381	0	0	0	0	0	0	0	16-3584
+chrM	11382	0	0	0	0	0	0	0	16-3584
+chrM	11383	0	0	0	0	0	0	0	16-3584
+chrM	11384	0	0	0	0	0	0	0	16-3584
+chrM	11385	0	0	0	0	0	0	0	16-3584
+chrM	11386	0	0	0	0	0	0	0	16-3584
+chrM	11387	0	0	0	0	0	0	0	16-3584
+chrM	11388	0	0	0	0	0	0	0	16-3584
+chrM	11389	0	0	0	0	0	0	0	16-3584
+chrM	11390	0	0	0	0	0	0	0	16-3584
+chrM	11391	0	0	0	0	0	0	0	16-3584
+chrM	11392	0	0	0	0	0	0	0	16-3584
+chrM	11393	0	0	0	0	0	0	0	16-3584
+chrM	11394	0	0	0	0	0	0	0	16-3584
+chrM	11395	0	0	0	0	0	0	0	16-3584
+chrM	11396	0	0	0	0	0	0	0	16-3584
+chrM	11397	0	0	0	0	0	0	0	16-3584
+chrM	11398	0	0	0	0	0	0	0	16-3584
+chrM	11399	0	0	0	0	0	0	0	16-3584
+chrM	11400	0	0	0	0	0	0	0	16-3584
+chrM	11401	0	0	0	0	0	0	0	16-3584
+chrM	11402	0	0	0	0	0	0	0	16-3584
+chrM	11403	0	0	0	0	0	0	0	16-3584
+chrM	11404	0	0	0	0	0	0	0	16-3584
+chrM	11405	0	0	0	0	0	0	0	16-3584
+chrM	11406	0	0	0	0	0	0	0	16-3584
+chrM	11407	0	0	0	0	0	0	0	16-3584
+chrM	11408	0	0	0	0	0	0	0	16-3584
+chrM	11409	0	0	0	0	0	0	0	16-3584
+chrM	11410	0	0	0	0	0	0	0	16-3584
+chrM	11411	0	0	0	0	0	0	0	16-3584
+chrM	11412	0	0	0	0	0	0	0	16-3584
+chrM	11413	0	0	0	0	0	0	0	16-3584
+chrM	11414	0	0	0	0	0	0	0	16-3584
+chrM	11415	0	0	0	0	0	0	0	16-3584
+chrM	11416	0	0	0	0	0	0	0	16-3584
+chrM	11417	0	0	0	0	0	0	0	16-3584
+chrM	11418	0	0	0	0	0	0	0	16-3584
+chrM	11419	0	0	0	0	0	0	0	16-3584
+chrM	11420	0	0	0	0	0	0	0	16-3584
+chrM	11421	0	0	0	0	0	0	0	16-3584
+chrM	11422	0	0	0	0	0	0	0	16-3584
+chrM	11423	0	0	0	0	0	0	0	16-3584
+chrM	11424	0	0	0	0	0	0	0	16-3584
+chrM	11425	0	0	0	0	0	0	0	16-3584
+chrM	11426	0	0	0	0	0	0	0	16-3584
+chrM	11427	0	0	0	0	0	0	0	16-3584
+chrM	11428	0	0	0	0	0	0	0	16-3584
+chrM	11429	0	0	0	0	0	0	0	16-3584
+chrM	11430	0	0	0	0	0	0	0	16-3584
+chrM	11431	0	0	0	0	0	0	0	16-3584
+chrM	11432	0	0	0	0	0	0	0	16-3584
+chrM	11433	0	0	0	0	0	0	0	16-3584
+chrM	11434	0	0	0	0	0	0	0	16-3584
+chrM	11435	0	0	0	0	0	0	0	16-3584
+chrM	11436	0	0	0	0	0	0	0	16-3584
+chrM	11437	0	0	0	0	0	0	0	16-3584
+chrM	11438	0	0	0	0	0	0	0	16-3584
+chrM	11439	0	0	0	0	0	0	0	16-3584
+chrM	11440	0	0	0	0	0	0	0	16-3584
+chrM	11441	0	0	0	0	0	0	0	16-3584
+chrM	11442	0	0	0	0	0	0	0	16-3584
+chrM	11443	0	0	0	0	0	0	0	16-3584
+chrM	11444	0	0	0	0	0	0	0	16-3584
+chrM	11445	0	0	0	0	0	0	0	16-3584
+chrM	11446	0	0	0	0	0	0	0	16-3584
+chrM	11447	0	0	0	0	0	0	0	16-3584
+chrM	11448	0	0	0	0	0	0	0	16-3584
+chrM	11449	0	0	0	0	0	0	0	16-3584
+chrM	11450	0	0	0	0	0	0	0	16-3584
+chrM	11451	0	0	0	0	0	0	0	16-3584
+chrM	11452	0	0	0	0	0	0	0	16-3584
+chrM	11453	0	0	0	0	0	0	0	16-3584
+chrM	11454	0	0	0	0	0	0	0	16-3584
+chrM	11455	0	0	0	0	0	0	0	16-3584
+chrM	11456	0	0	0	0	0	0	0	16-3584
+chrM	11457	0	0	0	0	0	0	0	16-3584
+chrM	11458	0	0	0	0	0	0	0	16-3584
+chrM	11459	0	0	0	0	0	0	0	16-3584
+chrM	11460	0	0	0	0	0	0	0	16-3584
+chrM	11461	0	0	0	0	0	0	0	16-3584
+chrM	11462	0	0	0	0	0	0	0	16-3584
+chrM	11463	0	0	0	0	0	0	0	16-3584
+chrM	11464	0	0	0	0	0	0	0	16-3584
+chrM	11465	0	0	0	0	0	0	0	16-3584
+chrM	11466	0	0	0	0	0	0	0	16-3584
+chrM	11467	0	0	0	0	0	0	0	16-3584
+chrM	11468	0	0	0	0	0	0	0	16-3584
+chrM	11469	0	0	0	0	0	0	0	16-3584
+chrM	11470	0	0	0	0	0	0	0	16-3584
+chrM	11471	0	0	0	0	0	0	0	16-3584
+chrM	11472	0	0	0	0	0	0	0	16-3584
+chrM	11473	0	0	0	0	0	0	0	16-3584
+chrM	11474	0	0	0	0	0	0	0	16-3584
+chrM	11475	0	0	0	0	0	0	0	16-3584
+chrM	11476	0	0	0	0	0	0	0	16-3584
+chrM	11477	0	0	0	0	0	0	0	16-3584
+chrM	11478	0	0	0	0	0	0	0	16-3584
+chrM	11479	0	0	0	0	0	0	0	16-3584
+chrM	11480	0	0	0	0	0	0	0	16-3584
+chrM	11481	0	0	0	0	0	0	0	16-3584
+chrM	11482	0	0	0	0	0	0	0	16-3584
+chrM	11483	0	0	0	0	0	0	0	16-3584
+chrM	11484	0	0	0	0	0	0	0	16-3584
+chrM	11485	0	0	0	0	0	0	0	16-3584
+chrM	11486	0	0	0	0	0	0	0	16-3584
+chrM	11487	0	0	0	0	0	0	0	16-3584
+chrM	11488	0	0	0	0	0	0	0	16-3584
+chrM	11489	0	0	0	0	0	0	0	16-3584
+chrM	11490	0	0	0	0	0	0	0	16-3584
+chrM	11491	0	0	0	0	0	0	0	16-3584
+chrM	11492	0	0	0	0	0	0	0	16-3584
+chrM	11493	0	0	0	0	0	0	0	16-3584
+chrM	11494	0	0	0	0	0	0	0	16-3584
+chrM	11495	0	0	0	0	0	0	0	16-3584
+chrM	11496	0	0	0	0	0	0	0	16-3584
+chrM	11497	0	0	0	0	0	0	0	16-3584
+chrM	11498	0	0	0	0	0	0	0	16-3584
+chrM	11499	0	0	0	0	0	0	0	16-3584
+chrM	11500	0	0	0	0	0	0	0	16-3584
+chrM	11501	0	0	0	0	0	0	0	16-3584
+chrM	11502	0	0	0	0	0	0	0	16-3584
+chrM	11503	0	0	0	0	0	0	0	16-3584
+chrM	11504	0	0	0	0	0	0	0	16-3584
+chrM	11505	0	0	0	0	0	0	0	16-3584
+chrM	11506	0	0	0	0	0	0	0	16-3584
+chrM	11507	0	0	0	0	0	0	0	16-3584
+chrM	11508	0	0	0	0	0	0	0	16-3584
+chrM	11509	0	0	0	0	0	0	0	16-3584
+chrM	11510	0	0	0	0	0	0	0	16-3584
+chrM	11511	0	0	0	0	0	0	0	16-3584
+chrM	11512	0	0	0	0	0	0	0	16-3584
+chrM	11513	0	0	0	0	0	0	0	16-3584
+chrM	11514	0	0	0	0	0	0	0	16-3584
+chrM	11515	0	0	0	0	0	0	0	16-3584
+chrM	11516	0	0	0	0	0	0	0	16-3584
+chrM	11517	0	0	0	0	0	0	0	16-3584
+chrM	11518	0	0	0	0	0	0	0	16-3584
+chrM	11519	0	0	0	0	0	0	0	16-3584
+chrM	11520	0	0	0	0	0	0	0	16-3584
+chrM	11521	0	0	0	0	0	0	0	16-3584
+chrM	11522	0	0	0	0	0	0	0	16-3584
+chrM	11523	0	0	0	0	0	0	0	16-3584
+chrM	11524	0	0	0	0	0	0	0	16-3584
+chrM	11525	0	0	0	0	0	0	0	16-3584
+chrM	11526	0	0	0	0	0	0	0	16-3584
+chrM	11527	0	0	0	0	0	0	0	16-3584
+chrM	11528	0	0	0	0	0	0	0	16-3584
+chrM	11529	0	0	0	0	0	0	0	16-3584
+chrM	11530	0	0	0	0	0	0	0	16-3584
+chrM	11531	0	0	0	0	0	0	0	16-3584
+chrM	11532	0	0	0	0	0	0	0	16-3584
+chrM	11533	0	0	0	0	0	0	0	16-3584
+chrM	11534	0	0	0	0	0	0	0	16-3584
+chrM	11535	0	0	0	0	0	0	0	16-3584
+chrM	11536	0	0	0	0	0	0	0	16-3584
+chrM	11537	0	0	0	0	0	0	0	16-3584
+chrM	11538	0	0	0	0	0	0	0	16-3584
+chrM	11539	0	0	0	0	0	0	0	16-3584
+chrM	11540	0	0	0	0	0	0	0	16-3584
+chrM	11541	0	0	0	0	0	0	0	16-3584
+chrM	11542	0	0	0	0	0	0	0	16-3584
+chrM	11543	0	0	0	0	0	0	0	16-3584
+chrM	11544	0	0	0	0	0	0	0	16-3584
+chrM	11545	0	0	0	0	0	0	0	16-3584
+chrM	11546	0	0	0	0	0	0	0	16-3584
+chrM	11547	0	0	0	0	0	0	0	16-3584
+chrM	11548	0	0	0	0	0	0	0	16-3584
+chrM	11549	0	0	0	0	0	0	0	16-3584
+chrM	11550	0	0	0	0	0	0	0	16-3584
+chrM	11551	0	0	0	0	0	0	0	16-3584
+chrM	11552	0	0	0	0	0	0	0	16-3584
+chrM	11553	0	0	0	0	0	0	0	16-3584
+chrM	11554	0	0	0	0	0	0	0	16-3584
+chrM	11555	0	0	0	0	0	0	0	16-3584
+chrM	11556	0	0	0	0	0	0	0	16-3584
+chrM	11557	0	0	0	0	0	0	0	16-3584
+chrM	11558	0	0	0	0	0	0	0	16-3584
+chrM	11559	0	0	0	0	0	0	0	16-3584
+chrM	11560	0	0	0	0	0	0	0	16-3584
+chrM	11561	0	0	0	0	0	0	0	16-3584
+chrM	11562	0	0	0	0	0	0	0	16-3584
+chrM	11563	0	0	0	0	0	0	0	16-3584
+chrM	11564	0	0	0	0	0	0	0	16-3584
+chrM	11565	0	0	0	0	0	0	0	16-3584
+chrM	11566	0	0	0	0	0	0	0	16-3584
+chrM	11567	0	0	0	0	0	0	0	16-3584
+chrM	11568	0	0	0	0	0	0	0	16-3584
+chrM	11569	0	0	0	0	0	0	0	16-3584
+chrM	11570	0	0	0	0	0	0	0	16-3584
+chrM	11571	0	0	0	0	0	0	0	16-3584
+chrM	11572	0	0	0	0	0	0	0	16-3584
+chrM	11573	0	0	0	0	0	0	0	16-3584
+chrM	11574	0	0	0	0	0	0	0	16-3584
+chrM	11575	0	0	0	0	0	0	0	16-3584
+chrM	11576	0	0	0	0	0	0	0	16-3584
+chrM	11577	0	0	0	0	0	0	0	16-3584
+chrM	11578	0	0	0	0	0	0	0	16-3584
+chrM	11579	0	0	0	0	0	0	0	16-3584
+chrM	11580	0	0	0	0	0	0	0	16-3584
+chrM	11581	0	0	0	0	0	0	0	16-3584
+chrM	11582	0	0	0	0	0	0	0	16-3584
+chrM	11583	0	0	0	0	0	0	0	16-3584
+chrM	11584	0	0	0	0	0	0	0	16-3584
+chrM	11585	0	0	0	0	0	0	0	16-3584
+chrM	11586	0	0	0	0	0	0	0	16-3584
+chrM	11587	0	0	0	0	0	0	0	16-3584
+chrM	11588	0	0	0	0	0	0	0	16-3584
+chrM	11589	0	0	0	0	0	0	0	16-3584
+chrM	11590	0	0	0	0	0	0	0	16-3584
+chrM	11591	0	0	0	0	0	0	0	16-3584
+chrM	11592	0	0	0	0	0	0	0	16-3584
+chrM	11593	0	0	0	0	0	0	0	16-3584
+chrM	11594	0	0	0	0	0	0	0	16-3584
+chrM	11595	0	0	0	0	0	0	0	16-3584
+chrM	11596	0	0	0	0	0	0	0	16-3584
+chrM	11597	0	0	0	0	0	0	0	16-3584
+chrM	11598	0	0	0	0	0	0	0	16-3584
+chrM	11599	0	0	0	0	0	0	0	16-3584
+chrM	11600	0	0	0	0	0	0	0	16-3584
+chrM	11601	0	0	0	0	0	0	0	16-3584
+chrM	11602	0	0	0	0	0	0	0	16-3584
+chrM	11603	0	0	0	0	0	0	0	16-3584
+chrM	11604	0	0	0	0	0	0	0	16-3584
+chrM	11605	0	0	0	0	0	0	0	16-3584
+chrM	11606	0	0	0	0	0	0	0	16-3584
+chrM	11607	0	0	0	0	0	0	0	16-3584
+chrM	11608	0	0	0	0	0	0	0	16-3584
+chrM	11609	0	0	0	0	0	0	0	16-3584
+chrM	11610	0	0	0	0	0	0	0	16-3584
+chrM	11611	0	0	0	0	0	0	0	16-3584
+chrM	11612	0	0	0	0	0	0	0	16-3584
+chrM	11613	0	0	0	0	0	0	0	16-3584
+chrM	11614	0	0	0	0	0	0	0	16-3584
+chrM	11615	0	0	0	0	0	0	0	16-3584
+chrM	11616	0	0	0	0	0	0	0	16-3584
+chrM	11617	0	0	0	0	0	0	0	16-3584
+chrM	11618	0	0	0	0	0	0	0	16-3584
+chrM	11619	0	0	0	0	0	0	0	16-3584
+chrM	11620	0	0	0	0	0	0	0	16-3584
+chrM	11621	0	0	0	0	0	0	0	16-3584
+chrM	11622	0	0	0	0	0	0	0	16-3584
+chrM	11623	0	0	0	0	0	0	0	16-3584
+chrM	11624	0	0	0	0	0	0	0	16-3584
+chrM	11625	0	0	0	0	0	0	0	16-3584
+chrM	11626	0	0	0	0	0	0	0	16-3584
+chrM	11627	0	0	0	0	0	0	0	16-3584
+chrM	11628	0	0	0	0	0	0	0	16-3584
+chrM	11629	0	0	0	0	0	0	0	16-3584
+chrM	11630	0	0	0	0	0	0	0	16-3584
+chrM	11631	0	0	0	0	0	0	0	16-3584
+chrM	11632	0	0	0	0	0	0	0	16-3584
+chrM	11633	0	0	0	0	0	0	0	16-3584
+chrM	11634	0	0	0	0	0	0	0	16-3584
+chrM	11635	0	0	0	0	0	0	0	16-3584
+chrM	11636	0	0	0	0	0	0	0	16-3584
+chrM	11637	0	0	0	0	0	0	0	16-3584
+chrM	11638	0	0	0	0	0	0	0	16-3584
+chrM	11639	0	0	0	0	0	0	0	16-3584
+chrM	11640	0	0	0	0	0	0	0	16-3584
+chrM	11641	0	0	0	0	0	0	0	16-3584
+chrM	11642	0	0	0	0	0	0	0	16-3584
+chrM	11643	0	0	0	0	0	0	0	16-3584
+chrM	11644	0	0	0	0	0	0	0	16-3584
+chrM	11645	0	0	0	0	0	0	0	16-3584
+chrM	11646	0	0	0	0	0	0	0	16-3584
+chrM	11647	0	0	0	0	0	0	0	16-3584
+chrM	11648	0	0	0	0	0	0	0	16-3584
+chrM	11649	0	0	0	0	0	0	0	16-3584
+chrM	11650	0	0	0	0	0	0	0	16-3584
+chrM	11651	0	0	0	0	0	0	0	16-3584
+chrM	11652	0	0	0	0	0	0	0	16-3584
+chrM	11653	0	0	0	0	0	0	0	16-3584
+chrM	11654	0	0	0	0	0	0	0	16-3584
+chrM	11655	0	0	0	0	0	0	0	16-3584
+chrM	11656	0	0	0	0	0	0	0	16-3584
+chrM	11657	0	0	0	0	0	0	0	16-3584
+chrM	11658	0	0	0	0	0	0	0	16-3584
+chrM	11659	0	0	0	0	0	0	0	16-3584
+chrM	11660	0	0	0	0	0	0	0	16-3584
+chrM	11661	0	0	0	0	0	0	0	16-3584
+chrM	11662	0	0	0	0	0	0	0	16-3584
+chrM	11663	0	0	0	0	0	0	0	16-3584
+chrM	11664	0	0	0	0	0	0	0	16-3584
+chrM	11665	0	0	0	0	0	0	0	16-3584
+chrM	11666	0	0	0	0	0	0	0	16-3584
+chrM	11667	0	0	0	0	0	0	0	16-3584
+chrM	11668	0	0	0	0	0	0	0	16-3584
+chrM	11669	0	0	0	0	0	0	0	16-3584
+chrM	11670	0	0	0	0	0	0	0	16-3584
+chrM	11671	0	0	0	0	0	0	0	16-3584
+chrM	11672	0	0	0	0	0	0	0	16-3584
+chrM	11673	0	0	0	0	0	0	0	16-3584
+chrM	11674	0	0	0	0	0	0	0	16-3584
+chrM	11675	0	0	0	0	0	0	0	16-3584
+chrM	11676	0	0	0	0	0	0	0	16-3584
+chrM	11677	0	0	0	0	0	0	0	16-3584
+chrM	11678	0	0	0	0	0	0	0	16-3584
+chrM	11679	0	0	0	0	0	0	0	16-3584
+chrM	11680	0	0	0	0	0	0	0	16-3584
+chrM	11681	0	0	0	0	0	0	0	16-3584
+chrM	11682	0	0	0	0	0	0	0	16-3584
+chrM	11683	0	0	0	0	0	0	0	16-3584
+chrM	11684	0	0	0	0	0	0	0	16-3584
+chrM	11685	0	0	0	0	0	0	0	16-3584
+chrM	11686	0	0	0	0	0	0	0	16-3584
+chrM	11687	0	0	0	0	0	0	0	16-3584
+chrM	11688	0	0	0	0	0	0	0	16-3584
+chrM	11689	0	0	0	0	0	0	0	16-3584
+chrM	11690	0	0	0	0	0	0	0	16-3584
+chrM	11691	0	0	0	0	0	0	0	16-3584
+chrM	11692	0	0	0	0	0	0	0	16-3584
+chrM	11693	0	0	0	0	0	0	0	16-3584
+chrM	11694	0	0	0	0	0	0	0	16-3584
+chrM	11695	0	0	0	0	0	0	0	16-3584
+chrM	11696	0	0	0	0	0	0	0	16-3584
+chrM	11697	0	0	0	0	0	0	0	16-3584
+chrM	11698	0	0	0	0	0	0	0	16-3584
+chrM	11699	0	0	0	0	0	0	0	16-3584
+chrM	11700	0	0	0	0	0	0	0	16-3584
+chrM	11701	0	0	0	0	0	0	0	16-3584
+chrM	11702	0	0	0	0	0	0	0	16-3584
+chrM	11703	0	0	0	0	0	0	0	16-3584
+chrM	11704	0	0	0	0	0	0	0	16-3584
+chrM	11705	0	0	0	0	0	0	0	16-3584
+chrM	11706	0	0	0	0	0	0	0	16-3584
+chrM	11707	0	0	0	0	0	0	0	16-3584
+chrM	11708	0	0	0	0	0	0	0	16-3584
+chrM	11709	0	0	0	0	0	0	0	16-3584
+chrM	11710	0	0	0	0	0	0	0	16-3584
+chrM	11711	0	0	0	0	0	0	0	16-3584
+chrM	11712	0	0	0	0	0	0	0	16-3584
+chrM	11713	0	0	0	0	0	0	0	16-3584
+chrM	11714	0	0	0	0	0	0	0	16-3584
+chrM	11715	0	0	0	0	0	0	0	16-3584
+chrM	11716	0	0	0	0	0	0	0	16-3584
+chrM	11717	0	0	0	0	0	0	0	16-3584
+chrM	11718	0	0	0	0	0	0	0	16-3584
+chrM	11719	0	0	0	0	0	0	0	16-3584
+chrM	11720	0	0	0	0	0	0	0	16-3584
+chrM	11721	0	0	0	0	0	0	0	16-3584
+chrM	11722	0	0	0	0	0	0	0	16-3584
+chrM	11723	0	0	0	0	0	0	0	16-3584
+chrM	11724	0	0	0	0	0	0	0	16-3584
+chrM	11725	0	0	0	0	0	0	0	16-3584
+chrM	11726	0	0	0	0	0	0	0	16-3584
+chrM	11727	0	0	0	0	0	0	0	16-3584
+chrM	11728	0	0	0	0	0	0	0	16-3584
+chrM	11729	0	0	0	0	0	0	0	16-3584
+chrM	11730	0	0	0	0	0	0	0	16-3584
+chrM	11731	0	0	0	0	0	0	0	16-3584
+chrM	11732	0	0	0	0	0	0	0	16-3584
+chrM	11733	0	0	0	0	0	0	0	16-3584
+chrM	11734	0	0	0	0	0	0	0	16-3584
+chrM	11735	0	0	0	0	0	0	0	16-3584
+chrM	11736	0	0	0	0	0	0	0	16-3584
+chrM	11737	0	0	0	0	0	0	0	16-3584
+chrM	11738	0	0	0	0	0	0	0	16-3584
+chrM	11739	0	0	0	0	0	0	0	16-3584
+chrM	11740	0	0	0	0	0	0	0	16-3584
+chrM	11741	0	0	0	0	0	0	0	16-3584
+chrM	11742	0	0	0	0	0	0	0	16-3584
+chrM	11743	0	0	0	0	0	0	0	16-3584
+chrM	11744	0	0	0	0	0	0	0	16-3584
+chrM	11745	0	0	0	0	0	0	0	16-3584
+chrM	11746	0	0	0	0	0	0	0	16-3584
+chrM	11747	0	0	0	0	0	0	0	16-3584
+chrM	11748	0	0	0	0	0	0	0	16-3584
+chrM	11749	0	0	0	0	0	0	0	16-3584
+chrM	11750	0	0	0	0	0	0	0	16-3584
+chrM	11751	0	0	0	0	0	0	0	16-3584
+chrM	11752	0	0	0	0	0	0	0	16-3584
+chrM	11753	0	0	0	0	0	0	0	16-3584
+chrM	11754	0	0	0	0	0	0	0	16-3584
+chrM	11755	0	0	0	0	0	0	0	16-3584
+chrM	11756	0	0	0	0	0	0	0	16-3584
+chrM	11757	0	0	0	0	0	0	0	16-3584
+chrM	11758	0	0	0	0	0	0	0	16-3584
+chrM	11759	0	0	0	0	0	0	0	16-3584
+chrM	11760	0	0	0	0	0	0	0	16-3584
+chrM	11761	0	0	0	0	0	0	0	16-3584
+chrM	11762	0	0	0	0	0	0	0	16-3584
+chrM	11763	0	0	0	0	0	0	0	16-3584
+chrM	11764	0	0	0	0	0	0	0	16-3584
+chrM	11765	0	0	0	0	0	0	0	16-3584
+chrM	11766	0	0	0	0	0	0	0	16-3584
+chrM	11767	0	0	0	0	0	0	0	16-3584
+chrM	11768	0	0	0	0	0	0	0	16-3584
+chrM	11769	0	0	0	0	0	0	0	16-3584
+chrM	11770	0	0	0	0	0	0	0	16-3584
+chrM	11771	0	0	0	0	0	0	0	16-3584
+chrM	11772	0	0	0	0	0	0	0	16-3584
+chrM	11773	0	0	0	0	0	0	0	16-3584
+chrM	11774	0	0	0	0	0	0	0	16-3584
+chrM	11775	0	0	0	0	0	0	0	16-3584
+chrM	11776	0	0	0	0	0	0	0	16-3584
+chrM	11777	0	0	0	0	0	0	0	16-3584
+chrM	11778	0	0	0	0	0	0	0	16-3584
+chrM	11779	0	0	0	0	0	0	0	16-3584
+chrM	11780	0	0	0	0	0	0	0	16-3584
+chrM	11781	0	0	0	0	0	0	0	16-3584
+chrM	11782	0	0	0	0	0	0	0	16-3584
+chrM	11783	0	0	0	0	0	0	0	16-3584
+chrM	11784	0	0	0	0	0	0	0	16-3584
+chrM	11785	0	0	0	0	0	0	0	16-3584
+chrM	11786	0	0	0	0	0	0	0	16-3584
+chrM	11787	0	0	0	0	0	0	0	16-3584
+chrM	11788	0	0	0	0	0	0	0	16-3584
+chrM	11789	0	0	0	0	0	0	0	16-3584
+chrM	11790	0	0	0	0	0	0	0	16-3584
+chrM	11791	0	0	0	0	0	0	0	16-3584
+chrM	11792	0	0	0	0	0	0	0	16-3584
+chrM	11793	0	0	0	0	0	0	0	16-3584
+chrM	11794	0	0	0	0	0	0	0	16-3584
+chrM	11795	0	0	0	0	0	0	0	16-3584
+chrM	11796	0	0	0	0	0	0	0	16-3584
+chrM	11797	0	0	0	0	0	0	0	16-3584
+chrM	11798	0	0	0	0	0	0	0	16-3584
+chrM	11799	0	0	0	0	0	0	0	16-3584
+chrM	11800	0	0	0	0	0	0	0	16-3584
+chrM	11801	0	0	0	0	0	0	0	16-3584
+chrM	11802	0	0	0	0	0	0	0	16-3584
+chrM	11803	0	0	0	0	0	0	0	16-3584
+chrM	11804	0	0	0	0	0	0	0	16-3584
+chrM	11805	0	0	0	0	0	0	0	16-3584
+chrM	11806	0	0	0	0	0	0	0	16-3584
+chrM	11807	0	0	0	0	0	0	0	16-3584
+chrM	11808	0	0	0	0	0	0	0	16-3584
+chrM	11809	0	0	0	0	0	0	0	16-3584
+chrM	11810	0	0	0	0	0	0	0	16-3584
+chrM	11811	0	0	0	0	0	0	0	16-3584
+chrM	11812	0	0	0	0	0	0	0	16-3584
+chrM	11813	0	0	0	0	0	0	0	16-3584
+chrM	11814	0	0	0	0	0	0	0	16-3584
+chrM	11815	0	0	0	0	0	0	0	16-3584
+chrM	11816	0	0	0	0	0	0	0	16-3584
+chrM	11817	0	0	0	0	0	0	0	16-3584
+chrM	11818	0	0	0	0	0	0	0	16-3584
+chrM	11819	0	0	0	0	0	0	0	16-3584
+chrM	11820	0	0	0	0	0	0	0	16-3584
+chrM	11821	0	0	0	0	0	0	0	16-3584
+chrM	11822	0	0	0	0	0	0	0	16-3584
+chrM	11823	0	0	0	0	0	0	0	16-3584
+chrM	11824	0	0	0	0	0	0	0	16-3584
+chrM	11825	0	0	0	0	0	0	0	16-3584
+chrM	11826	0	0	0	0	0	0	0	16-3584
+chrM	11827	0	0	0	0	0	0	0	16-3584
+chrM	11828	0	0	0	0	0	0	0	16-3584
+chrM	11829	0	0	0	0	0	0	0	16-3584
+chrM	11830	0	0	0	0	0	0	0	16-3584
+chrM	11831	0	0	0	0	0	0	0	16-3584
+chrM	11832	0	0	0	0	0	0	0	16-3584
+chrM	11833	0	0	0	0	0	0	0	16-3584
+chrM	11834	0	0	0	0	0	0	0	16-3584
+chrM	11835	0	0	0	0	0	0	0	16-3584
+chrM	11836	0	0	0	0	0	0	0	16-3584
+chrM	11837	0	0	0	0	0	0	0	16-3584
+chrM	11838	0	0	0	0	0	0	0	16-3584
+chrM	11839	0	0	0	0	0	0	0	16-3584
+chrM	11840	0	0	0	0	0	0	0	16-3584
+chrM	11841	0	0	0	0	0	0	0	16-3584
+chrM	11842	0	0	0	0	0	0	0	16-3584
+chrM	11843	0	0	0	0	0	0	0	16-3584
+chrM	11844	0	0	0	0	0	0	0	16-3584
+chrM	11845	0	0	0	0	0	0	0	16-3584
+chrM	11846	0	0	0	0	0	0	0	16-3584
+chrM	11847	0	0	0	0	0	0	0	16-3584
+chrM	11848	0	0	0	0	0	0	0	16-3584
+chrM	11849	0	0	0	0	0	0	0	16-3584
+chrM	11850	0	0	0	0	0	0	0	16-3584
+chrM	11851	0	0	0	0	0	0	0	16-3584
+chrM	11852	0	0	0	0	0	0	0	16-3584
+chrM	11853	0	0	0	0	0	0	0	16-3584
+chrM	11854	0	0	0	0	0	0	0	16-3584
+chrM	11855	0	0	0	0	0	0	0	16-3584
+chrM	11856	0	0	0	0	0	0	0	16-3584
+chrM	11857	0	0	0	0	0	0	0	16-3584
+chrM	11858	0	0	0	0	0	0	0	16-3584
+chrM	11859	0	0	0	0	0	0	0	16-3584
+chrM	11860	0	0	0	0	0	0	0	16-3584
+chrM	11861	0	0	0	0	0	0	0	16-3584
+chrM	11862	0	0	0	0	0	0	0	16-3584
+chrM	11863	0	0	0	0	0	0	0	16-3584
+chrM	11864	0	0	0	0	0	0	0	16-3584
+chrM	11865	0	0	0	0	0	0	0	16-3584
+chrM	11866	0	0	0	0	0	0	0	16-3584
+chrM	11867	0	0	0	0	0	0	0	16-3584
+chrM	11868	0	0	0	0	0	0	0	16-3584
+chrM	11869	0	0	0	0	0	0	0	16-3584
+chrM	11870	0	0	0	0	0	0	0	16-3584
+chrM	11871	0	0	0	0	0	0	0	16-3584
+chrM	11872	0	0	0	0	0	0	0	16-3584
+chrM	11873	0	0	0	0	0	0	0	16-3584
+chrM	11874	0	0	0	0	0	0	0	16-3584
+chrM	11875	0	0	0	0	0	0	0	16-3584
+chrM	11876	0	0	0	0	0	0	0	16-3584
+chrM	11877	0	0	0	0	0	0	0	16-3584
+chrM	11878	0	0	0	0	0	0	0	16-3584
+chrM	11879	0	0	0	0	0	0	0	16-3584
+chrM	11880	0	0	0	0	0	0	0	16-3584
+chrM	11881	0	0	0	0	0	0	0	16-3584
+chrM	11882	0	0	0	0	0	0	0	16-3584
+chrM	11883	0	0	0	0	0	0	0	16-3584
+chrM	11884	0	0	0	0	0	0	0	16-3584
+chrM	11885	0	0	0	0	0	0	0	16-3584
+chrM	11886	0	0	0	0	0	0	0	16-3584
+chrM	11887	0	0	0	0	0	0	0	16-3584
+chrM	11888	0	0	0	0	0	0	0	16-3584
+chrM	11889	0	0	0	0	0	0	0	16-3584
+chrM	11890	0	0	0	0	0	0	0	16-3584
+chrM	11891	0	0	0	0	0	0	0	16-3584
+chrM	11892	0	0	0	0	0	0	0	16-3584
+chrM	11893	0	0	0	0	0	0	0	16-3584
+chrM	11894	0	0	0	0	0	0	0	16-3584
+chrM	11895	0	0	0	0	0	0	0	16-3584
+chrM	11896	0	0	0	0	0	0	0	16-3584
+chrM	11897	0	0	0	0	0	0	0	16-3584
+chrM	11898	0	0	0	0	0	0	0	16-3584
+chrM	11899	0	0	0	0	0	0	0	16-3584
+chrM	11900	0	0	0	0	0	0	0	16-3584
+chrM	11901	0	0	0	0	0	0	0	16-3584
+chrM	11902	0	0	0	0	0	0	0	16-3584
+chrM	11903	0	0	0	0	0	0	0	16-3584
+chrM	11904	0	0	0	0	0	0	0	16-3584
+chrM	11905	0	0	0	0	0	0	0	16-3584
+chrM	11906	0	0	0	0	0	0	0	16-3584
+chrM	11907	0	0	0	0	0	0	0	16-3584
+chrM	11908	0	0	0	0	0	0	0	16-3584
+chrM	11909	0	0	0	0	0	0	0	16-3584
+chrM	11910	0	0	0	0	0	0	0	16-3584
+chrM	11911	0	0	0	0	0	0	0	16-3584
+chrM	11912	0	0	0	0	0	0	0	16-3584
+chrM	11913	0	0	0	0	0	0	0	16-3584
+chrM	11914	0	0	0	0	0	0	0	16-3584
+chrM	11915	0	0	0	0	0	0	0	16-3584
+chrM	11916	0	0	0	0	0	0	0	16-3584
+chrM	11917	0	0	0	0	0	0	0	16-3584
+chrM	11918	0	0	0	0	0	0	0	16-3584
+chrM	11919	0	0	0	0	0	0	0	16-3584
+chrM	11920	0	0	0	0	0	0	0	16-3584
+chrM	11921	0	0	0	0	0	0	0	16-3584
+chrM	11922	0	0	0	0	0	0	0	16-3584
+chrM	11923	0	0	0	0	0	0	0	16-3584
+chrM	11924	0	0	0	0	0	0	0	16-3584
+chrM	11925	0	0	0	0	0	0	0	16-3584
+chrM	11926	0	0	0	0	0	0	0	16-3584
+chrM	11927	0	0	0	0	0	0	0	16-3584
+chrM	11928	0	0	0	0	0	0	0	16-3584
+chrM	11929	0	0	0	0	0	0	0	16-3584
+chrM	11930	0	0	0	0	0	0	0	16-3584
+chrM	11931	0	0	0	0	0	0	0	16-3584
+chrM	11932	0	0	0	0	0	0	0	16-3584
+chrM	11933	0	0	0	0	0	0	0	16-3584
+chrM	11934	0	0	0	0	0	0	0	16-3584
+chrM	11935	0	0	0	0	0	0	0	16-3584
+chrM	11936	0	0	0	0	0	0	0	16-3584
+chrM	11937	0	0	0	0	0	0	0	16-3584
+chrM	11938	0	0	0	0	0	0	0	16-3584
+chrM	11939	0	0	0	0	0	0	0	16-3584
+chrM	11940	0	0	0	0	0	0	0	16-3584
+chrM	11941	0	0	0	0	0	0	0	16-3584
+chrM	11942	0	0	0	0	0	0	0	16-3584
+chrM	11943	0	0	0	0	0	0	0	16-3584
+chrM	11944	0	0	0	0	0	0	0	16-3584
+chrM	11945	0	0	0	0	0	0	0	16-3584
+chrM	11946	0	0	0	0	0	0	0	16-3584
+chrM	11947	0	0	0	0	0	0	0	16-3584
+chrM	11948	0	0	0	0	0	0	0	16-3584
+chrM	11949	0	0	0	0	0	0	0	16-3584
+chrM	11950	0	0	0	0	0	0	0	16-3584
+chrM	11951	0	0	0	0	0	0	0	16-3584
+chrM	11952	0	0	0	0	0	0	0	16-3584
+chrM	11953	0	0	0	0	0	0	0	16-3584
+chrM	11954	0	0	0	0	0	0	0	16-3584
+chrM	11955	0	0	0	0	0	0	0	16-3584
+chrM	11956	0	0	0	0	0	0	0	16-3584
+chrM	11957	0	0	0	0	0	0	0	16-3584
+chrM	11958	0	0	0	0	0	0	0	16-3584
+chrM	11959	0	0	0	0	0	0	0	16-3584
+chrM	11960	0	0	0	0	0	0	0	16-3584
+chrM	11961	0	0	0	0	0	0	0	16-3584
+chrM	11962	0	0	0	0	0	0	0	16-3584
+chrM	11963	0	0	0	0	0	0	0	16-3584
+chrM	11964	0	0	0	0	0	0	0	16-3584
+chrM	11965	0	0	0	0	0	0	0	16-3584
+chrM	11966	0	0	0	0	0	0	0	16-3584
+chrM	11967	0	0	0	0	0	0	0	16-3584
+chrM	11968	0	0	0	0	0	0	0	16-3584
+chrM	11969	0	0	0	0	0	0	0	16-3584
+chrM	11970	0	0	0	0	0	0	0	16-3584
+chrM	11971	0	0	0	0	0	0	0	16-3584
+chrM	11972	0	0	0	0	0	0	0	16-3584
+chrM	11973	0	0	0	0	0	0	0	16-3584
+chrM	11974	0	0	0	0	0	0	0	16-3584
+chrM	11975	0	0	0	0	0	0	0	16-3584
+chrM	11976	0	0	0	0	0	0	0	16-3584
+chrM	11977	0	0	0	0	0	0	0	16-3584
+chrM	11978	0	0	0	0	0	0	0	16-3584
+chrM	11979	0	0	0	0	0	0	0	16-3584
+chrM	11980	0	0	0	0	0	0	0	16-3584
+chrM	11981	0	0	0	0	0	0	0	16-3584
+chrM	11982	0	0	0	0	0	0	0	16-3584
+chrM	11983	0	0	0	0	0	0	0	16-3584
+chrM	11984	0	0	0	0	0	0	0	16-3584
+chrM	11985	0	0	0	0	0	0	0	16-3584
+chrM	11986	0	0	0	0	0	0	0	16-3584
+chrM	11987	0	0	0	0	0	0	0	16-3584
+chrM	11988	0	0	0	0	0	0	0	16-3584
+chrM	11989	0	0	0	0	0	0	0	16-3584
+chrM	11990	0	0	0	0	0	0	0	16-3584
+chrM	11991	1	0	1	0	0	0	0	16-3584
+chrM	11992	1	1	0	0	0	0	0	16-3584
+chrM	11993	1	1	0	0	0	0	0	16-3584
+chrM	11994	1	0	1	0	0	0	0	16-3584
+chrM	11995	1	1	0	0	0	0	0	16-3584
+chrM	11996	2	0	1	0	1	0	0	16-3584
+chrM	11997	2	1	1	0	0	0	0	16-3584
+chrM	11998	2	1	0	0	1	0	0	16-3584
+chrM	11999	2	0	0	0	2	0	0	16-3584
+chrM	12000	2	0	0	1	1	0	0	16-3584
+chrM	12001	2	1	1	0	0	0	0	16-3584
+chrM	12002	2	0	1	1	0	0	0	16-3584
+chrM	12003	2	1	0	1	0	0	0	16-3584
+chrM	12004	2	1	0	1	0	0	0	16-3584
+chrM	12005	2	0	1	1	0	0	0	16-3584
+chrM	12006	2	0	1	1	0	0	0	16-3584
+chrM	12007	2	1	0	0	1	0	0	16-3584
+chrM	12008	2	0	2	0	0	0	0	16-3584
+chrM	12009	2	1	1	0	0	0	0	16-3584
+chrM	12010	2	0	2	0	0	0	0	16-3584
+chrM	12011	2	0	0	1	1	0	0	16-3584
+chrM	12012	2	0	1	0	1	0	0	16-3584
+chrM	12013	2	0	0	2	0	0	0	16-3584
+chrM	12014	2	1	0	1	0	0	0	16-3584
+chrM	12015	2	0	1	1	0	0	0	16-3584
+chrM	12016	2	1	0	0	1	0	0	16-3584
+chrM	12017	2	0	1	0	1	0	0	16-3584
+chrM	12018	2	1	1	0	0	0	0	16-3584
+chrM	12019	2	0	1	0	1	0	0	16-3584
+chrM	12020	2	1	0	0	1	0	0	16-3584
+chrM	12021	2	0	0	0	2	0	0	16-3584
+chrM	12022	2	1	1	0	0	0	0	16-3584
+chrM	12023	2	0	1	1	0	0	0	16-3584
+chrM	12024	2	1	1	0	0	0	0	16-3584
+chrM	12025	2	2	0	0	0	0	0	16-3584
+chrM	12026	2	1	0	0	1	0	0	16-3584
+chrM	12027	2	1	0	1	0	0	0	16-3584
+chrM	12028	2	0	0	1	1	0	0	16-3584
+chrM	12029	2	0	0	0	2	0	0	16-3584
+chrM	12030	2	0	1	1	0	0	0	16-3584
+chrM	12031	2	0	1	1	0	0	0	16-3584
+chrM	12032	2	0	1	1	0	0	0	16-3584
+chrM	12033	2	1	0	0	1	0	0	16-3584
+chrM	12034	2	1	1	0	0	0	0	16-3584
+chrM	12035	2	2	0	0	0	0	0	16-3584
+chrM	12036	2	0	0	2	0	0	0	16-3584
+chrM	12037	2	0	0	1	1	0	0	16-3584
+chrM	12038	2	0	1	0	1	0	0	16-3584
+chrM	12039	2	1	0	0	1	0	0	16-3584
+chrM	12040	2	0	0	1	1	0	0	16-3584
+chrM	12041	2	0	0	0	2	0	0	16-3584
+chrM	12042	2	1	1	0	0	0	0	16-3584
+chrM	12043	2	1	0	0	1	0	0	16-3584
+chrM	12044	2	1	1	0	0	0	0	16-3584
+chrM	12045	2	0	0	1	1	0	0	16-3584
+chrM	12046	2	0	2	0	0	0	0	16-3584
+chrM	12047	2	0	0	2	0	0	0	16-3584
+chrM	12048	1	0	0	1	0	0	0	16-3584
+chrM	12049	1	1	0	0	0	0	0	16-3584
+chrM	12050	1	0	0	1	0	0	0	16-3584
+chrM	12051	1	1	0	0	0	0	0	16-3584
+chrM	12052	1	0	0	0	1	0	0	16-3584
+chrM	12053	0	0	0	0	0	0	0	16-3584
+chrM	12054	0	0	0	0	0	0	0	16-3584
+chrM	12055	0	0	0	0	0	0	0	16-3584
+chrM	12056	0	0	0	0	0	0	0	16-3584
+chrM	12057	0	0	0	0	0	0	0	16-3584
+chrM	12058	0	0	0	0	0	0	0	16-3584
+chrM	12059	0	0	0	0	0	0	0	16-3584
+chrM	12060	0	0	0	0	0	0	0	16-3584
+chrM	12061	0	0	0	0	0	0	0	16-3584
+chrM	12062	0	0	0	0	0	0	0	16-3584
+chrM	12063	0	0	0	0	0	0	0	16-3584
+chrM	12064	0	0	0	0	0	0	0	16-3584
+chrM	12065	0	0	0	0	0	0	0	16-3584
+chrM	12066	0	0	0	0	0	0	0	16-3584
+chrM	12067	0	0	0	0	0	0	0	16-3584
+chrM	12068	0	0	0	0	0	0	0	16-3584
+chrM	12069	0	0	0	0	0	0	0	16-3584
+chrM	12070	0	0	0	0	0	0	0	16-3584
+chrM	12071	0	0	0	0	0	0	0	16-3584
+chrM	12072	0	0	0	0	0	0	0	16-3584
+chrM	12073	0	0	0	0	0	0	0	16-3584
+chrM	12074	0	0	0	0	0	0	0	16-3584
+chrM	12075	0	0	0	0	0	0	0	16-3584
+chrM	12076	0	0	0	0	0	0	0	16-3584
+chrM	12077	0	0	0	0	0	0	0	16-3584
+chrM	12078	0	0	0	0	0	0	0	16-3584
+chrM	12079	0	0	0	0	0	0	0	16-3584
+chrM	12080	0	0	0	0	0	0	0	16-3584
+chrM	12081	0	0	0	0	0	0	0	16-3584
+chrM	12082	0	0	0	0	0	0	0	16-3584
+chrM	12083	0	0	0	0	0	0	0	16-3584
+chrM	12084	0	0	0	0	0	0	0	16-3584
+chrM	12085	0	0	0	0	0	0	0	16-3584
+chrM	12086	0	0	0	0	0	0	0	16-3584
+chrM	12087	0	0	0	0	0	0	0	16-3584
+chrM	12088	0	0	0	0	0	0	0	16-3584
+chrM	12089	0	0	0	0	0	0	0	16-3584
+chrM	12090	0	0	0	0	0	0	0	16-3584
+chrM	12091	0	0	0	0	0	0	0	16-3584
+chrM	12092	0	0	0	0	0	0	0	16-3584
+chrM	12093	0	0	0	0	0	0	0	16-3584
+chrM	12094	0	0	0	0	0	0	0	16-3584
+chrM	12095	0	0	0	0	0	0	0	16-3584
+chrM	12096	0	0	0	0	0	0	0	16-3584
+chrM	12097	0	0	0	0	0	0	0	16-3584
+chrM	12098	0	0	0	0	0	0	0	16-3584
+chrM	12099	0	0	0	0	0	0	0	16-3584
+chrM	12100	0	0	0	0	0	0	0	16-3584
+chrM	12101	0	0	0	0	0	0	0	16-3584
+chrM	12102	0	0	0	0	0	0	0	16-3584
+chrM	12103	0	0	0	0	0	0	0	16-3584
+chrM	12104	0	0	0	0	0	0	0	16-3584
+chrM	12105	0	0	0	0	0	0	0	16-3584
+chrM	12106	0	0	0	0	0	0	0	16-3584
+chrM	12107	0	0	0	0	0	0	0	16-3584
+chrM	12108	0	0	0	0	0	0	0	16-3584
+chrM	12109	0	0	0	0	0	0	0	16-3584
+chrM	12110	0	0	0	0	0	0	0	16-3584
+chrM	12111	0	0	0	0	0	0	0	16-3584
+chrM	12112	0	0	0	0	0	0	0	16-3584
+chrM	12113	0	0	0	0	0	0	0	16-3584
+chrM	12114	0	0	0	0	0	0	0	16-3584
+chrM	12115	0	0	0	0	0	0	0	16-3584
+chrM	12116	0	0	0	0	0	0	0	16-3584
+chrM	12117	0	0	0	0	0	0	0	16-3584
+chrM	12118	0	0	0	0	0	0	0	16-3584
+chrM	12119	0	0	0	0	0	0	0	16-3584
+chrM	12120	0	0	0	0	0	0	0	16-3584
+chrM	12121	0	0	0	0	0	0	0	16-3584
+chrM	12122	0	0	0	0	0	0	0	16-3584
+chrM	12123	0	0	0	0	0	0	0	16-3584
+chrM	12124	0	0	0	0	0	0	0	16-3584
+chrM	12125	0	0	0	0	0	0	0	16-3584
+chrM	12126	0	0	0	0	0	0	0	16-3584
+chrM	12127	0	0	0	0	0	0	0	16-3584
+chrM	12128	0	0	0	0	0	0	0	16-3584
+chrM	12129	0	0	0	0	0	0	0	16-3584
+chrM	12130	0	0	0	0	0	0	0	16-3584
+chrM	12131	0	0	0	0	0	0	0	16-3584
+chrM	12132	0	0	0	0	0	0	0	16-3584
+chrM	12133	0	0	0	0	0	0	0	16-3584
+chrM	12134	0	0	0	0	0	0	0	16-3584
+chrM	12135	0	0	0	0	0	0	0	16-3584
+chrM	12136	0	0	0	0	0	0	0	16-3584
+chrM	12137	0	0	0	0	0	0	0	16-3584
+chrM	12138	0	0	0	0	0	0	0	16-3584
+chrM	12139	0	0	0	0	0	0	0	16-3584
+chrM	12140	0	0	0	0	0	0	0	16-3584
+chrM	12141	0	0	0	0	0	0	0	16-3584
+chrM	12142	0	0	0	0	0	0	0	16-3584
+chrM	12143	0	0	0	0	0	0	0	16-3584
+chrM	12144	0	0	0	0	0	0	0	16-3584
+chrM	12145	0	0	0	0	0	0	0	16-3584
+chrM	12146	0	0	0	0	0	0	0	16-3584
+chrM	12147	0	0	0	0	0	0	0	16-3584
+chrM	12148	0	0	0	0	0	0	0	16-3584
+chrM	12149	0	0	0	0	0	0	0	16-3584
+chrM	12150	0	0	0	0	0	0	0	16-3584
+chrM	12151	0	0	0	0	0	0	0	16-3584
+chrM	12152	0	0	0	0	0	0	0	16-3584
+chrM	12153	0	0	0	0	0	0	0	16-3584
+chrM	12154	0	0	0	0	0	0	0	16-3584
+chrM	12155	0	0	0	0	0	0	0	16-3584
+chrM	12156	0	0	0	0	0	0	0	16-3584
+chrM	12157	0	0	0	0	0	0	0	16-3584
+chrM	12158	0	0	0	0	0	0	0	16-3584
+chrM	12159	0	0	0	0	0	0	0	16-3584
+chrM	12160	0	0	0	0	0	0	0	16-3584
+chrM	12161	0	0	0	0	0	0	0	16-3584
+chrM	12162	0	0	0	0	0	0	0	16-3584
+chrM	12163	0	0	0	0	0	0	0	16-3584
+chrM	12164	0	0	0	0	0	0	0	16-3584
+chrM	12165	0	0	0	0	0	0	0	16-3584
+chrM	12166	0	0	0	0	0	0	0	16-3584
+chrM	12167	0	0	0	0	0	0	0	16-3584
+chrM	12168	0	0	0	0	0	0	0	16-3584
+chrM	12169	0	0	0	0	0	0	0	16-3584
+chrM	12170	0	0	0	0	0	0	0	16-3584
+chrM	12171	0	0	0	0	0	0	0	16-3584
+chrM	12172	0	0	0	0	0	0	0	16-3584
+chrM	12173	0	0	0	0	0	0	0	16-3584
+chrM	12174	0	0	0	0	0	0	0	16-3584
+chrM	12175	0	0	0	0	0	0	0	16-3584
+chrM	12176	0	0	0	0	0	0	0	16-3584
+chrM	12177	0	0	0	0	0	0	0	16-3584
+chrM	12178	0	0	0	0	0	0	0	16-3584
+chrM	12179	0	0	0	0	0	0	0	16-3584
+chrM	12180	0	0	0	0	0	0	0	16-3584
+chrM	12181	0	0	0	0	0	0	0	16-3584
+chrM	12182	0	0	0	0	0	0	0	16-3584
+chrM	12183	0	0	0	0	0	0	0	16-3584
+chrM	12184	0	0	0	0	0	0	0	16-3584
+chrM	12185	0	0	0	0	0	0	0	16-3584
+chrM	12186	0	0	0	0	0	0	0	16-3584
+chrM	12187	0	0	0	0	0	0	0	16-3584
+chrM	12188	0	0	0	0	0	0	0	16-3584
+chrM	12189	0	0	0	0	0	0	0	16-3584
+chrM	12190	0	0	0	0	0	0	0	16-3584
+chrM	12191	0	0	0	0	0	0	0	16-3584
+chrM	12192	0	0	0	0	0	0	0	16-3584
+chrM	12193	0	0	0	0	0	0	0	16-3584
+chrM	12194	0	0	0	0	0	0	0	16-3584
+chrM	12195	0	0	0	0	0	0	0	16-3584
+chrM	12196	0	0	0	0	0	0	0	16-3584
+chrM	12197	0	0	0	0	0	0	0	16-3584
+chrM	12198	0	0	0	0	0	0	0	16-3584
+chrM	12199	0	0	0	0	0	0	0	16-3584
+chrM	12200	0	0	0	0	0	0	0	16-3584
+chrM	12201	0	0	0	0	0	0	0	16-3584
+chrM	12202	0	0	0	0	0	0	0	16-3584
+chrM	12203	0	0	0	0	0	0	0	16-3584
+chrM	12204	0	0	0	0	0	0	0	16-3584
+chrM	12205	0	0	0	0	0	0	0	16-3584
+chrM	12206	0	0	0	0	0	0	0	16-3584
+chrM	12207	0	0	0	0	0	0	0	16-3584
+chrM	12208	0	0	0	0	0	0	0	16-3584
+chrM	12209	0	0	0	0	0	0	0	16-3584
+chrM	12210	0	0	0	0	0	0	0	16-3584
+chrM	12211	0	0	0	0	0	0	0	16-3584
+chrM	12212	0	0	0	0	0	0	0	16-3584
+chrM	12213	0	0	0	0	0	0	0	16-3584
+chrM	12214	0	0	0	0	0	0	0	16-3584
+chrM	12215	0	0	0	0	0	0	0	16-3584
+chrM	12216	0	0	0	0	0	0	0	16-3584
+chrM	12217	0	0	0	0	0	0	0	16-3584
+chrM	12218	0	0	0	0	0	0	0	16-3584
+chrM	12219	0	0	0	0	0	0	0	16-3584
+chrM	12220	0	0	0	0	0	0	0	16-3584
+chrM	12221	0	0	0	0	0	0	0	16-3584
+chrM	12222	0	0	0	0	0	0	0	16-3584
+chrM	12223	0	0	0	0	0	0	0	16-3584
+chrM	12224	0	0	0	0	0	0	0	16-3584
+chrM	12225	0	0	0	0	0	0	0	16-3584
+chrM	12226	0	0	0	0	0	0	0	16-3584
+chrM	12227	0	0	0	0	0	0	0	16-3584
+chrM	12228	0	0	0	0	0	0	0	16-3584
+chrM	12229	0	0	0	0	0	0	0	16-3584
+chrM	12230	0	0	0	0	0	0	0	16-3584
+chrM	12231	0	0	0	0	0	0	0	16-3584
+chrM	12232	0	0	0	0	0	0	0	16-3584
+chrM	12233	0	0	0	0	0	0	0	16-3584
+chrM	12234	0	0	0	0	0	0	0	16-3584
+chrM	12235	0	0	0	0	0	0	0	16-3584
+chrM	12236	0	0	0	0	0	0	0	16-3584
+chrM	12237	0	0	0	0	0	0	0	16-3584
+chrM	12238	0	0	0	0	0	0	0	16-3584
+chrM	12239	0	0	0	0	0	0	0	16-3584
+chrM	12240	0	0	0	0	0	0	0	16-3584
+chrM	12241	0	0	0	0	0	0	0	16-3584
+chrM	12242	0	0	0	0	0	0	0	16-3584
+chrM	12243	0	0	0	0	0	0	0	16-3584
+chrM	12244	0	0	0	0	0	0	0	16-3584
+chrM	12245	0	0	0	0	0	0	0	16-3584
+chrM	12246	0	0	0	0	0	0	0	16-3584
+chrM	12247	0	0	0	0	0	0	0	16-3584
+chrM	12248	0	0	0	0	0	0	0	16-3584
+chrM	12249	0	0	0	0	0	0	0	16-3584
+chrM	12250	0	0	0	0	0	0	0	16-3584
+chrM	12251	0	0	0	0	0	0	0	16-3584
+chrM	12252	0	0	0	0	0	0	0	16-3584
+chrM	12253	0	0	0	0	0	0	0	16-3584
+chrM	12254	0	0	0	0	0	0	0	16-3584
+chrM	12255	0	0	0	0	0	0	0	16-3584
+chrM	12256	0	0	0	0	0	0	0	16-3584
+chrM	12257	0	0	0	0	0	0	0	16-3584
+chrM	12258	0	0	0	0	0	0	0	16-3584
+chrM	12259	0	0	0	0	0	0	0	16-3584
+chrM	12260	0	0	0	0	0	0	0	16-3584
+chrM	12261	0	0	0	0	0	0	0	16-3584
+chrM	12262	0	0	0	0	0	0	0	16-3584
+chrM	12263	0	0	0	0	0	0	0	16-3584
+chrM	12264	0	0	0	0	0	0	0	16-3584
+chrM	12265	0	0	0	0	0	0	0	16-3584
+chrM	12266	0	0	0	0	0	0	0	16-3584
+chrM	12267	0	0	0	0	0	0	0	16-3584
+chrM	12268	0	0	0	0	0	0	0	16-3584
+chrM	12269	0	0	0	0	0	0	0	16-3584
+chrM	12270	0	0	0	0	0	0	0	16-3584
+chrM	12271	0	0	0	0	0	0	0	16-3584
+chrM	12272	0	0	0	0	0	0	0	16-3584
+chrM	12273	0	0	0	0	0	0	0	16-3584
+chrM	12274	0	0	0	0	0	0	0	16-3584
+chrM	12275	0	0	0	0	0	0	0	16-3584
+chrM	12276	0	0	0	0	0	0	0	16-3584
+chrM	12277	0	0	0	0	0	0	0	16-3584
+chrM	12278	0	0	0	0	0	0	0	16-3584
+chrM	12279	0	0	0	0	0	0	0	16-3584
+chrM	12280	0	0	0	0	0	0	0	16-3584
+chrM	12281	0	0	0	0	0	0	0	16-3584
+chrM	12282	0	0	0	0	0	0	0	16-3584
+chrM	12283	0	0	0	0	0	0	0	16-3584
+chrM	12284	0	0	0	0	0	0	0	16-3584
+chrM	12285	0	0	0	0	0	0	0	16-3584
+chrM	12286	0	0	0	0	0	0	0	16-3584
+chrM	12287	0	0	0	0	0	0	0	16-3584
+chrM	12288	0	0	0	0	0	0	0	16-3584
+chrM	12289	0	0	0	0	0	0	0	16-3584
+chrM	12290	0	0	0	0	0	0	0	16-3584
+chrM	12291	0	0	0	0	0	0	0	16-3584
+chrM	12292	0	0	0	0	0	0	0	16-3584
+chrM	12293	0	0	0	0	0	0	0	16-3584
+chrM	12294	0	0	0	0	0	0	0	16-3584
+chrM	12295	0	0	0	0	0	0	0	16-3584
+chrM	12296	0	0	0	0	0	0	0	16-3584
+chrM	12297	0	0	0	0	0	0	0	16-3584
+chrM	12298	0	0	0	0	0	0	0	16-3584
+chrM	12299	0	0	0	0	0	0	0	16-3584
+chrM	12300	0	0	0	0	0	0	0	16-3584
+chrM	12301	0	0	0	0	0	0	0	16-3584
+chrM	12302	0	0	0	0	0	0	0	16-3584
+chrM	12303	0	0	0	0	0	0	0	16-3584
+chrM	12304	0	0	0	0	0	0	0	16-3584
+chrM	12305	0	0	0	0	0	0	0	16-3584
+chrM	12306	0	0	0	0	0	0	0	16-3584
+chrM	12307	0	0	0	0	0	0	0	16-3584
+chrM	12308	0	0	0	0	0	0	0	16-3584
+chrM	12309	0	0	0	0	0	0	0	16-3584
+chrM	12310	0	0	0	0	0	0	0	16-3584
+chrM	12311	0	0	0	0	0	0	0	16-3584
+chrM	12312	0	0	0	0	0	0	0	16-3584
+chrM	12313	0	0	0	0	0	0	0	16-3584
+chrM	12314	0	0	0	0	0	0	0	16-3584
+chrM	12315	0	0	0	0	0	0	0	16-3584
+chrM	12316	0	0	0	0	0	0	0	16-3584
+chrM	12317	0	0	0	0	0	0	0	16-3584
+chrM	12318	0	0	0	0	0	0	0	16-3584
+chrM	12319	0	0	0	0	0	0	0	16-3584
+chrM	12320	0	0	0	0	0	0	0	16-3584
+chrM	12321	0	0	0	0	0	0	0	16-3584
+chrM	12322	0	0	0	0	0	0	0	16-3584
+chrM	12323	0	0	0	0	0	0	0	16-3584
+chrM	12324	0	0	0	0	0	0	0	16-3584
+chrM	12325	0	0	0	0	0	0	0	16-3584
+chrM	12326	0	0	0	0	0	0	0	16-3584
+chrM	12327	0	0	0	0	0	0	0	16-3584
+chrM	12328	0	0	0	0	0	0	0	16-3584
+chrM	12329	0	0	0	0	0	0	0	16-3584
+chrM	12330	0	0	0	0	0	0	0	16-3584
+chrM	12331	0	0	0	0	0	0	0	16-3584
+chrM	12332	0	0	0	0	0	0	0	16-3584
+chrM	12333	0	0	0	0	0	0	0	16-3584
+chrM	12334	0	0	0	0	0	0	0	16-3584
+chrM	12335	0	0	0	0	0	0	0	16-3584
+chrM	12336	0	0	0	0	0	0	0	16-3584
+chrM	12337	0	0	0	0	0	0	0	16-3584
+chrM	12338	0	0	0	0	0	0	0	16-3584
+chrM	12339	0	0	0	0	0	0	0	16-3584
+chrM	12340	0	0	0	0	0	0	0	16-3584
+chrM	12341	0	0	0	0	0	0	0	16-3584
+chrM	12342	0	0	0	0	0	0	0	16-3584
+chrM	12343	0	0	0	0	0	0	0	16-3584
+chrM	12344	0	0	0	0	0	0	0	16-3584
+chrM	12345	0	0	0	0	0	0	0	16-3584
+chrM	12346	0	0	0	0	0	0	0	16-3584
+chrM	12347	0	0	0	0	0	0	0	16-3584
+chrM	12348	0	0	0	0	0	0	0	16-3584
+chrM	12349	0	0	0	0	0	0	0	16-3584
+chrM	12350	0	0	0	0	0	0	0	16-3584
+chrM	12351	0	0	0	0	0	0	0	16-3584
+chrM	12352	0	0	0	0	0	0	0	16-3584
+chrM	12353	0	0	0	0	0	0	0	16-3584
+chrM	12354	0	0	0	0	0	0	0	16-3584
+chrM	12355	0	0	0	0	0	0	0	16-3584
+chrM	12356	0	0	0	0	0	0	0	16-3584
+chrM	12357	0	0	0	0	0	0	0	16-3584
+chrM	12358	0	0	0	0	0	0	0	16-3584
+chrM	12359	0	0	0	0	0	0	0	16-3584
+chrM	12360	0	0	0	0	0	0	0	16-3584
+chrM	12361	0	0	0	0	0	0	0	16-3584
+chrM	12362	0	0	0	0	0	0	0	16-3584
+chrM	12363	0	0	0	0	0	0	0	16-3584
+chrM	12364	0	0	0	0	0	0	0	16-3584
+chrM	12365	0	0	0	0	0	0	0	16-3584
+chrM	12366	0	0	0	0	0	0	0	16-3584
+chrM	12367	0	0	0	0	0	0	0	16-3584
+chrM	12368	0	0	0	0	0	0	0	16-3584
+chrM	12369	0	0	0	0	0	0	0	16-3584
+chrM	12370	0	0	0	0	0	0	0	16-3584
+chrM	12371	0	0	0	0	0	0	0	16-3584
+chrM	12372	0	0	0	0	0	0	0	16-3584
+chrM	12373	0	0	0	0	0	0	0	16-3584
+chrM	12374	0	0	0	0	0	0	0	16-3584
+chrM	12375	0	0	0	0	0	0	0	16-3584
+chrM	12376	0	0	0	0	0	0	0	16-3584
+chrM	12377	0	0	0	0	0	0	0	16-3584
+chrM	12378	0	0	0	0	0	0	0	16-3584
+chrM	12379	0	0	0	0	0	0	0	16-3584
+chrM	12380	0	0	0	0	0	0	0	16-3584
+chrM	12381	0	0	0	0	0	0	0	16-3584
+chrM	12382	0	0	0	0	0	0	0	16-3584
+chrM	12383	0	0	0	0	0	0	0	16-3584
+chrM	12384	0	0	0	0	0	0	0	16-3584
+chrM	12385	0	0	0	0	0	0	0	16-3584
+chrM	12386	0	0	0	0	0	0	0	16-3584
+chrM	12387	0	0	0	0	0	0	0	16-3584
+chrM	12388	0	0	0	0	0	0	0	16-3584
+chrM	12389	0	0	0	0	0	0	0	16-3584
+chrM	12390	0	0	0	0	0	0	0	16-3584
+chrM	12391	0	0	0	0	0	0	0	16-3584
+chrM	12392	0	0	0	0	0	0	0	16-3584
+chrM	12393	0	0	0	0	0	0	0	16-3584
+chrM	12394	0	0	0	0	0	0	0	16-3584
+chrM	12395	0	0	0	0	0	0	0	16-3584
+chrM	12396	0	0	0	0	0	0	0	16-3584
+chrM	12397	0	0	0	0	0	0	0	16-3584
+chrM	12398	0	0	0	0	0	0	0	16-3584
+chrM	12399	0	0	0	0	0	0	0	16-3584
+chrM	12400	0	0	0	0	0	0	0	16-3584
+chrM	12401	0	0	0	0	0	0	0	16-3584
+chrM	12402	0	0	0	0	0	0	0	16-3584
+chrM	12403	0	0	0	0	0	0	0	16-3584
+chrM	12404	0	0	0	0	0	0	0	16-3584
+chrM	12405	0	0	0	0	0	0	0	16-3584
+chrM	12406	0	0	0	0	0	0	0	16-3584
+chrM	12407	0	0	0	0	0	0	0	16-3584
+chrM	12408	0	0	0	0	0	0	0	16-3584
+chrM	12409	0	0	0	0	0	0	0	16-3584
+chrM	12410	0	0	0	0	0	0	0	16-3584
+chrM	12411	0	0	0	0	0	0	0	16-3584
+chrM	12412	0	0	0	0	0	0	0	16-3584
+chrM	12413	0	0	0	0	0	0	0	16-3584
+chrM	12414	0	0	0	0	0	0	0	16-3584
+chrM	12415	0	0	0	0	0	0	0	16-3584
+chrM	12416	0	0	0	0	0	0	0	16-3584
+chrM	12417	0	0	0	0	0	0	0	16-3584
+chrM	12418	0	0	0	0	0	0	0	16-3584
+chrM	12419	0	0	0	0	0	0	0	16-3584
+chrM	12420	0	0	0	0	0	0	0	16-3584
+chrM	12421	0	0	0	0	0	0	0	16-3584
+chrM	12422	0	0	0	0	0	0	0	16-3584
+chrM	12423	0	0	0	0	0	0	0	16-3584
+chrM	12424	0	0	0	0	0	0	0	16-3584
+chrM	12425	0	0	0	0	0	0	0	16-3584
+chrM	12426	0	0	0	0	0	0	0	16-3584
+chrM	12427	0	0	0	0	0	0	0	16-3584
+chrM	12428	0	0	0	0	0	0	0	16-3584
+chrM	12429	0	0	0	0	0	0	0	16-3584
+chrM	12430	0	0	0	0	0	0	0	16-3584
+chrM	12431	0	0	0	0	0	0	0	16-3584
+chrM	12432	0	0	0	0	0	0	0	16-3584
+chrM	12433	0	0	0	0	0	0	0	16-3584
+chrM	12434	0	0	0	0	0	0	0	16-3584
+chrM	12435	0	0	0	0	0	0	0	16-3584
+chrM	12436	0	0	0	0	0	0	0	16-3584
+chrM	12437	0	0	0	0	0	0	0	16-3584
+chrM	12438	0	0	0	0	0	0	0	16-3584
+chrM	12439	0	0	0	0	0	0	0	16-3584
+chrM	12440	0	0	0	0	0	0	0	16-3584
+chrM	12441	0	0	0	0	0	0	0	16-3584
+chrM	12442	0	0	0	0	0	0	0	16-3584
+chrM	12443	0	0	0	0	0	0	0	16-3584
+chrM	12444	0	0	0	0	0	0	0	16-3584
+chrM	12445	0	0	0	0	0	0	0	16-3584
+chrM	12446	0	0	0	0	0	0	0	16-3584
+chrM	12447	0	0	0	0	0	0	0	16-3584
+chrM	12448	0	0	0	0	0	0	0	16-3584
+chrM	12449	0	0	0	0	0	0	0	16-3584
+chrM	12450	0	0	0	0	0	0	0	16-3584
+chrM	12451	0	0	0	0	0	0	0	16-3584
+chrM	12452	0	0	0	0	0	0	0	16-3584
+chrM	12453	0	0	0	0	0	0	0	16-3584
+chrM	12454	0	0	0	0	0	0	0	16-3584
+chrM	12455	0	0	0	0	0	0	0	16-3584
+chrM	12456	0	0	0	0	0	0	0	16-3584
+chrM	12457	0	0	0	0	0	0	0	16-3584
+chrM	12458	0	0	0	0	0	0	0	16-3584
+chrM	12459	0	0	0	0	0	0	0	16-3584
+chrM	12460	0	0	0	0	0	0	0	16-3584
+chrM	12461	0	0	0	0	0	0	0	16-3584
+chrM	12462	0	0	0	0	0	0	0	16-3584
+chrM	12463	0	0	0	0	0	0	0	16-3584
+chrM	12464	0	0	0	0	0	0	0	16-3584
+chrM	12465	0	0	0	0	0	0	0	16-3584
+chrM	12466	0	0	0	0	0	0	0	16-3584
+chrM	12467	0	0	0	0	0	0	0	16-3584
+chrM	12468	0	0	0	0	0	0	0	16-3584
+chrM	12469	0	0	0	0	0	0	0	16-3584
+chrM	12470	0	0	0	0	0	0	0	16-3584
+chrM	12471	0	0	0	0	0	0	0	16-3584
+chrM	12472	0	0	0	0	0	0	0	16-3584
+chrM	12473	0	0	0	0	0	0	0	16-3584
+chrM	12474	0	0	0	0	0	0	0	16-3584
+chrM	12475	0	0	0	0	0	0	0	16-3584
+chrM	12476	0	0	0	0	0	0	0	16-3584
+chrM	12477	0	0	0	0	0	0	0	16-3584
+chrM	12478	0	0	0	0	0	0	0	16-3584
+chrM	12479	0	0	0	0	0	0	0	16-3584
+chrM	12480	0	0	0	0	0	0	0	16-3584
+chrM	12481	0	0	0	0	0	0	0	16-3584
+chrM	12482	0	0	0	0	0	0	0	16-3584
+chrM	12483	0	0	0	0	0	0	0	16-3584
+chrM	12484	0	0	0	0	0	0	0	16-3584
+chrM	12485	0	0	0	0	0	0	0	16-3584
+chrM	12486	0	0	0	0	0	0	0	16-3584
+chrM	12487	0	0	0	0	0	0	0	16-3584
+chrM	12488	0	0	0	0	0	0	0	16-3584
+chrM	12489	0	0	0	0	0	0	0	16-3584
+chrM	12490	0	0	0	0	0	0	0	16-3584
+chrM	12491	0	0	0	0	0	0	0	16-3584
+chrM	12492	0	0	0	0	0	0	0	16-3584
+chrM	12493	0	0	0	0	0	0	0	16-3584
+chrM	12494	0	0	0	0	0	0	0	16-3584
+chrM	12495	0	0	0	0	0	0	0	16-3584
+chrM	12496	0	0	0	0	0	0	0	16-3584
+chrM	12497	0	0	0	0	0	0	0	16-3584
+chrM	12498	0	0	0	0	0	0	0	16-3584
+chrM	12499	0	0	0	0	0	0	0	16-3584
+chrM	12500	0	0	0	0	0	0	0	16-3584
+chrM	12501	0	0	0	0	0	0	0	16-3584
+chrM	12502	0	0	0	0	0	0	0	16-3584
+chrM	12503	0	0	0	0	0	0	0	16-3584
+chrM	12504	0	0	0	0	0	0	0	16-3584
+chrM	12505	0	0	0	0	0	0	0	16-3584
+chrM	12506	0	0	0	0	0	0	0	16-3584
+chrM	12507	0	0	0	0	0	0	0	16-3584
+chrM	12508	0	0	0	0	0	0	0	16-3584
+chrM	12509	0	0	0	0	0	0	0	16-3584
+chrM	12510	0	0	0	0	0	0	0	16-3584
+chrM	12511	0	0	0	0	0	0	0	16-3584
+chrM	12512	0	0	0	0	0	0	0	16-3584
+chrM	12513	0	0	0	0	0	0	0	16-3584
+chrM	12514	0	0	0	0	0	0	0	16-3584
+chrM	12515	0	0	0	0	0	0	0	16-3584
+chrM	12516	0	0	0	0	0	0	0	16-3584
+chrM	12517	0	0	0	0	0	0	0	16-3584
+chrM	12518	0	0	0	0	0	0	0	16-3584
+chrM	12519	0	0	0	0	0	0	0	16-3584
+chrM	12520	0	0	0	0	0	0	0	16-3584
+chrM	12521	0	0	0	0	0	0	0	16-3584
+chrM	12522	0	0	0	0	0	0	0	16-3584
+chrM	12523	0	0	0	0	0	0	0	16-3584
+chrM	12524	0	0	0	0	0	0	0	16-3584
+chrM	12525	0	0	0	0	0	0	0	16-3584
+chrM	12526	0	0	0	0	0	0	0	16-3584
+chrM	12527	0	0	0	0	0	0	0	16-3584
+chrM	12528	0	0	0	0	0	0	0	16-3584
+chrM	12529	0	0	0	0	0	0	0	16-3584
+chrM	12530	0	0	0	0	0	0	0	16-3584
+chrM	12531	0	0	0	0	0	0	0	16-3584
+chrM	12532	0	0	0	0	0	0	0	16-3584
+chrM	12533	0	0	0	0	0	0	0	16-3584
+chrM	12534	0	0	0	0	0	0	0	16-3584
+chrM	12535	0	0	0	0	0	0	0	16-3584
+chrM	12536	0	0	0	0	0	0	0	16-3584
+chrM	12537	0	0	0	0	0	0	0	16-3584
+chrM	12538	0	0	0	0	0	0	0	16-3584
+chrM	12539	0	0	0	0	0	0	0	16-3584
+chrM	12540	0	0	0	0	0	0	0	16-3584
+chrM	12541	0	0	0	0	0	0	0	16-3584
+chrM	12542	0	0	0	0	0	0	0	16-3584
+chrM	12543	0	0	0	0	0	0	0	16-3584
+chrM	12544	0	0	0	0	0	0	0	16-3584
+chrM	12545	0	0	0	0	0	0	0	16-3584
+chrM	12546	0	0	0	0	0	0	0	16-3584
+chrM	12547	0	0	0	0	0	0	0	16-3584
+chrM	12548	0	0	0	0	0	0	0	16-3584
+chrM	12549	0	0	0	0	0	0	0	16-3584
+chrM	12550	0	0	0	0	0	0	0	16-3584
+chrM	12551	0	0	0	0	0	0	0	16-3584
+chrM	12552	0	0	0	0	0	0	0	16-3584
+chrM	12553	0	0	0	0	0	0	0	16-3584
+chrM	12554	0	0	0	0	0	0	0	16-3584
+chrM	12555	0	0	0	0	0	0	0	16-3584
+chrM	12556	0	0	0	0	0	0	0	16-3584
+chrM	12557	0	0	0	0	0	0	0	16-3584
+chrM	12558	0	0	0	0	0	0	0	16-3584
+chrM	12559	0	0	0	0	0	0	0	16-3584
+chrM	12560	0	0	0	0	0	0	0	16-3584
+chrM	12561	0	0	0	0	0	0	0	16-3584
+chrM	12562	0	0	0	0	0	0	0	16-3584
+chrM	12563	0	0	0	0	0	0	0	16-3584
+chrM	12564	0	0	0	0	0	0	0	16-3584
+chrM	12565	0	0	0	0	0	0	0	16-3584
+chrM	12566	0	0	0	0	0	0	0	16-3584
+chrM	12567	0	0	0	0	0	0	0	16-3584
+chrM	12568	0	0	0	0	0	0	0	16-3584
+chrM	12569	0	0	0	0	0	0	0	16-3584
+chrM	12570	0	0	0	0	0	0	0	16-3584
+chrM	12571	0	0	0	0	0	0	0	16-3584
+chrM	12572	0	0	0	0	0	0	0	16-3584
+chrM	12573	0	0	0	0	0	0	0	16-3584
+chrM	12574	0	0	0	0	0	0	0	16-3584
+chrM	12575	0	0	0	0	0	0	0	16-3584
+chrM	12576	0	0	0	0	0	0	0	16-3584
+chrM	12577	0	0	0	0	0	0	0	16-3584
+chrM	12578	0	0	0	0	0	0	0	16-3584
+chrM	12579	0	0	0	0	0	0	0	16-3584
+chrM	12580	0	0	0	0	0	0	0	16-3584
+chrM	12581	0	0	0	0	0	0	0	16-3584
+chrM	12582	0	0	0	0	0	0	0	16-3584
+chrM	12583	0	0	0	0	0	0	0	16-3584
+chrM	12584	0	0	0	0	0	0	0	16-3584
+chrM	12585	0	0	0	0	0	0	0	16-3584
+chrM	12586	0	0	0	0	0	0	0	16-3584
+chrM	12587	0	0	0	0	0	0	0	16-3584
+chrM	12588	0	0	0	0	0	0	0	16-3584
+chrM	12589	0	0	0	0	0	0	0	16-3584
+chrM	12590	0	0	0	0	0	0	0	16-3584
+chrM	12591	0	0	0	0	0	0	0	16-3584
+chrM	12592	0	0	0	0	0	0	0	16-3584
+chrM	12593	0	0	0	0	0	0	0	16-3584
+chrM	12594	0	0	0	0	0	0	0	16-3584
+chrM	12595	0	0	0	0	0	0	0	16-3584
+chrM	12596	0	0	0	0	0	0	0	16-3584
+chrM	12597	0	0	0	0	0	0	0	16-3584
+chrM	12598	0	0	0	0	0	0	0	16-3584
+chrM	12599	0	0	0	0	0	0	0	16-3584
+chrM	12600	0	0	0	0	0	0	0	16-3584
+chrM	12601	0	0	0	0	0	0	0	16-3584
+chrM	12602	0	0	0	0	0	0	0	16-3584
+chrM	12603	0	0	0	0	0	0	0	16-3584
+chrM	12604	0	0	0	0	0	0	0	16-3584
+chrM	12605	0	0	0	0	0	0	0	16-3584
+chrM	12606	0	0	0	0	0	0	0	16-3584
+chrM	12607	0	0	0	0	0	0	0	16-3584
+chrM	12608	0	0	0	0	0	0	0	16-3584
+chrM	12609	0	0	0	0	0	0	0	16-3584
+chrM	12610	0	0	0	0	0	0	0	16-3584
+chrM	12611	0	0	0	0	0	0	0	16-3584
+chrM	12612	0	0	0	0	0	0	0	16-3584
+chrM	12613	0	0	0	0	0	0	0	16-3584
+chrM	12614	0	0	0	0	0	0	0	16-3584
+chrM	12615	0	0	0	0	0	0	0	16-3584
+chrM	12616	0	0	0	0	0	0	0	16-3584
+chrM	12617	0	0	0	0	0	0	0	16-3584
+chrM	12618	0	0	0	0	0	0	0	16-3584
+chrM	12619	0	0	0	0	0	0	0	16-3584
+chrM	12620	0	0	0	0	0	0	0	16-3584
+chrM	12621	0	0	0	0	0	0	0	16-3584
+chrM	12622	0	0	0	0	0	0	0	16-3584
+chrM	12623	0	0	0	0	0	0	0	16-3584
+chrM	12624	0	0	0	0	0	0	0	16-3584
+chrM	12625	0	0	0	0	0	0	0	16-3584
+chrM	12626	0	0	0	0	0	0	0	16-3584
+chrM	12627	0	0	0	0	0	0	0	16-3584
+chrM	12628	0	0	0	0	0	0	0	16-3584
+chrM	12629	0	0	0	0	0	0	0	16-3584
+chrM	12630	0	0	0	0	0	0	0	16-3584
+chrM	12631	0	0	0	0	0	0	0	16-3584
+chrM	12632	0	0	0	0	0	0	0	16-3584
+chrM	12633	0	0	0	0	0	0	0	16-3584
+chrM	12634	0	0	0	0	0	0	0	16-3584
+chrM	12635	0	0	0	0	0	0	0	16-3584
+chrM	12636	0	0	0	0	0	0	0	16-3584
+chrM	12637	0	0	0	0	0	0	0	16-3584
+chrM	12638	0	0	0	0	0	0	0	16-3584
+chrM	12639	0	0	0	0	0	0	0	16-3584
+chrM	12640	0	0	0	0	0	0	0	16-3584
+chrM	12641	0	0	0	0	0	0	0	16-3584
+chrM	12642	0	0	0	0	0	0	0	16-3584
+chrM	12643	0	0	0	0	0	0	0	16-3584
+chrM	12644	0	0	0	0	0	0	0	16-3584
+chrM	12645	0	0	0	0	0	0	0	16-3584
+chrM	12646	0	0	0	0	0	0	0	16-3584
+chrM	12647	0	0	0	0	0	0	0	16-3584
+chrM	12648	0	0	0	0	0	0	0	16-3584
+chrM	12649	0	0	0	0	0	0	0	16-3584
+chrM	12650	0	0	0	0	0	0	0	16-3584
+chrM	12651	0	0	0	0	0	0	0	16-3584
+chrM	12652	0	0	0	0	0	0	0	16-3584
+chrM	12653	0	0	0	0	0	0	0	16-3584
+chrM	12654	0	0	0	0	0	0	0	16-3584
+chrM	12655	0	0	0	0	0	0	0	16-3584
+chrM	12656	0	0	0	0	0	0	0	16-3584
+chrM	12657	0	0	0	0	0	0	0	16-3584
+chrM	12658	0	0	0	0	0	0	0	16-3584
+chrM	12659	0	0	0	0	0	0	0	16-3584
+chrM	12660	0	0	0	0	0	0	0	16-3584
+chrM	12661	0	0	0	0	0	0	0	16-3584
+chrM	12662	0	0	0	0	0	0	0	16-3584
+chrM	12663	0	0	0	0	0	0	0	16-3584
+chrM	12664	0	0	0	0	0	0	0	16-3584
+chrM	12665	0	0	0	0	0	0	0	16-3584
+chrM	12666	0	0	0	0	0	0	0	16-3584
+chrM	12667	0	0	0	0	0	0	0	16-3584
+chrM	12668	0	0	0	0	0	0	0	16-3584
+chrM	12669	0	0	0	0	0	0	0	16-3584
+chrM	12670	0	0	0	0	0	0	0	16-3584
+chrM	12671	0	0	0	0	0	0	0	16-3584
+chrM	12672	0	0	0	0	0	0	0	16-3584
+chrM	12673	0	0	0	0	0	0	0	16-3584
+chrM	12674	0	0	0	0	0	0	0	16-3584
+chrM	12675	0	0	0	0	0	0	0	16-3584
+chrM	12676	0	0	0	0	0	0	0	16-3584
+chrM	12677	0	0	0	0	0	0	0	16-3584
+chrM	12678	0	0	0	0	0	0	0	16-3584
+chrM	12679	0	0	0	0	0	0	0	16-3584
+chrM	12680	0	0	0	0	0	0	0	16-3584
+chrM	12681	0	0	0	0	0	0	0	16-3584
+chrM	12682	0	0	0	0	0	0	0	16-3584
+chrM	12683	0	0	0	0	0	0	0	16-3584
+chrM	12684	0	0	0	0	0	0	0	16-3584
+chrM	12685	0	0	0	0	0	0	0	16-3584
+chrM	12686	0	0	0	0	0	0	0	16-3584
+chrM	12687	0	0	0	0	0	0	0	16-3584
+chrM	12688	0	0	0	0	0	0	0	16-3584
+chrM	12689	0	0	0	0	0	0	0	16-3584
+chrM	12690	0	0	0	0	0	0	0	16-3584
+chrM	12691	0	0	0	0	0	0	0	16-3584
+chrM	12692	0	0	0	0	0	0	0	16-3584
+chrM	12693	0	0	0	0	0	0	0	16-3584
+chrM	12694	0	0	0	0	0	0	0	16-3584
+chrM	12695	0	0	0	0	0	0	0	16-3584
+chrM	12696	0	0	0	0	0	0	0	16-3584
+chrM	12697	0	0	0	0	0	0	0	16-3584
+chrM	12698	0	0	0	0	0	0	0	16-3584
+chrM	12699	0	0	0	0	0	0	0	16-3584
+chrM	12700	0	0	0	0	0	0	0	16-3584
+chrM	12701	0	0	0	0	0	0	0	16-3584
+chrM	12702	0	0	0	0	0	0	0	16-3584
+chrM	12703	0	0	0	0	0	0	0	16-3584
+chrM	12704	0	0	0	0	0	0	0	16-3584
+chrM	12705	0	0	0	0	0	0	0	16-3584
+chrM	12706	0	0	0	0	0	0	0	16-3584
+chrM	12707	0	0	0	0	0	0	0	16-3584
+chrM	12708	0	0	0	0	0	0	0	16-3584
+chrM	12709	0	0	0	0	0	0	0	16-3584
+chrM	12710	0	0	0	0	0	0	0	16-3584
+chrM	12711	0	0	0	0	0	0	0	16-3584
+chrM	12712	0	0	0	0	0	0	0	16-3584
+chrM	12713	0	0	0	0	0	0	0	16-3584
+chrM	12714	0	0	0	0	0	0	0	16-3584
+chrM	12715	0	0	0	0	0	0	0	16-3584
+chrM	12716	0	0	0	0	0	0	0	16-3584
+chrM	12717	0	0	0	0	0	0	0	16-3584
+chrM	12718	0	0	0	0	0	0	0	16-3584
+chrM	12719	0	0	0	0	0	0	0	16-3584
+chrM	12720	0	0	0	0	0	0	0	16-3584
+chrM	12721	0	0	0	0	0	0	0	16-3584
+chrM	12722	0	0	0	0	0	0	0	16-3584
+chrM	12723	0	0	0	0	0	0	0	16-3584
+chrM	12724	0	0	0	0	0	0	0	16-3584
+chrM	12725	0	0	0	0	0	0	0	16-3584
+chrM	12726	0	0	0	0	0	0	0	16-3584
+chrM	12727	0	0	0	0	0	0	0	16-3584
+chrM	12728	0	0	0	0	0	0	0	16-3584
+chrM	12729	0	0	0	0	0	0	0	16-3584
+chrM	12730	0	0	0	0	0	0	0	16-3584
+chrM	12731	0	0	0	0	0	0	0	16-3584
+chrM	12732	0	0	0	0	0	0	0	16-3584
+chrM	12733	0	0	0	0	0	0	0	16-3584
+chrM	12734	0	0	0	0	0	0	0	16-3584
+chrM	12735	0	0	0	0	0	0	0	16-3584
+chrM	12736	0	0	0	0	0	0	0	16-3584
+chrM	12737	0	0	0	0	0	0	0	16-3584
+chrM	12738	0	0	0	0	0	0	0	16-3584
+chrM	12739	0	0	0	0	0	0	0	16-3584
+chrM	12740	0	0	0	0	0	0	0	16-3584
+chrM	12741	0	0	0	0	0	0	0	16-3584
+chrM	12742	0	0	0	0	0	0	0	16-3584
+chrM	12743	0	0	0	0	0	0	0	16-3584
+chrM	12744	0	0	0	0	0	0	0	16-3584
+chrM	12745	0	0	0	0	0	0	0	16-3584
+chrM	12746	0	0	0	0	0	0	0	16-3584
+chrM	12747	0	0	0	0	0	0	0	16-3584
+chrM	12748	0	0	0	0	0	0	0	16-3584
+chrM	12749	0	0	0	0	0	0	0	16-3584
+chrM	12750	0	0	0	0	0	0	0	16-3584
+chrM	12751	0	0	0	0	0	0	0	16-3584
+chrM	12752	0	0	0	0	0	0	0	16-3584
+chrM	12753	0	0	0	0	0	0	0	16-3584
+chrM	12754	0	0	0	0	0	0	0	16-3584
+chrM	12755	0	0	0	0	0	0	0	16-3584
+chrM	12756	0	0	0	0	0	0	0	16-3584
+chrM	12757	0	0	0	0	0	0	0	16-3584
+chrM	12758	0	0	0	0	0	0	0	16-3584
+chrM	12759	0	0	0	0	0	0	0	16-3584
+chrM	12760	0	0	0	0	0	0	0	16-3584
+chrM	12761	0	0	0	0	0	0	0	16-3584
+chrM	12762	0	0	0	0	0	0	0	16-3584
+chrM	12763	0	0	0	0	0	0	0	16-3584
+chrM	12764	0	0	0	0	0	0	0	16-3584
+chrM	12765	0	0	0	0	0	0	0	16-3584
+chrM	12766	0	0	0	0	0	0	0	16-3584
+chrM	12767	0	0	0	0	0	0	0	16-3584
+chrM	12768	0	0	0	0	0	0	0	16-3584
+chrM	12769	0	0	0	0	0	0	0	16-3584
+chrM	12770	0	0	0	0	0	0	0	16-3584
+chrM	12771	0	0	0	0	0	0	0	16-3584
+chrM	12772	0	0	0	0	0	0	0	16-3584
+chrM	12773	0	0	0	0	0	0	0	16-3584
+chrM	12774	0	0	0	0	0	0	0	16-3584
+chrM	12775	0	0	0	0	0	0	0	16-3584
+chrM	12776	0	0	0	0	0	0	0	16-3584
+chrM	12777	0	0	0	0	0	0	0	16-3584
+chrM	12778	0	0	0	0	0	0	0	16-3584
+chrM	12779	0	0	0	0	0	0	0	16-3584
+chrM	12780	0	0	0	0	0	0	0	16-3584
+chrM	12781	0	0	0	0	0	0	0	16-3584
+chrM	12782	0	0	0	0	0	0	0	16-3584
+chrM	12783	0	0	0	0	0	0	0	16-3584
+chrM	12784	0	0	0	0	0	0	0	16-3584
+chrM	12785	0	0	0	0	0	0	0	16-3584
+chrM	12786	0	0	0	0	0	0	0	16-3584
+chrM	12787	0	0	0	0	0	0	0	16-3584
+chrM	12788	0	0	0	0	0	0	0	16-3584
+chrM	12789	0	0	0	0	0	0	0	16-3584
+chrM	12790	0	0	0	0	0	0	0	16-3584
+chrM	12791	0	0	0	0	0	0	0	16-3584
+chrM	12792	0	0	0	0	0	0	0	16-3584
+chrM	12793	0	0	0	0	0	0	0	16-3584
+chrM	12794	0	0	0	0	0	0	0	16-3584
+chrM	12795	0	0	0	0	0	0	0	16-3584
+chrM	12796	0	0	0	0	0	0	0	16-3584
+chrM	12797	0	0	0	0	0	0	0	16-3584
+chrM	12798	0	0	0	0	0	0	0	16-3584
+chrM	12799	0	0	0	0	0	0	0	16-3584
+chrM	12800	0	0	0	0	0	0	0	16-3584
+chrM	12801	0	0	0	0	0	0	0	16-3584
+chrM	12802	0	0	0	0	0	0	0	16-3584
+chrM	12803	0	0	0	0	0	0	0	16-3584
+chrM	12804	0	0	0	0	0	0	0	16-3584
+chrM	12805	0	0	0	0	0	0	0	16-3584
+chrM	12806	0	0	0	0	0	0	0	16-3584
+chrM	12807	0	0	0	0	0	0	0	16-3584
+chrM	12808	0	0	0	0	0	0	0	16-3584
+chrM	12809	0	0	0	0	0	0	0	16-3584
+chrM	12810	0	0	0	0	0	0	0	16-3584
+chrM	12811	0	0	0	0	0	0	0	16-3584
+chrM	12812	0	0	0	0	0	0	0	16-3584
+chrM	12813	0	0	0	0	0	0	0	16-3584
+chrM	12814	0	0	0	0	0	0	0	16-3584
+chrM	12815	0	0	0	0	0	0	0	16-3584
+chrM	12816	0	0	0	0	0	0	0	16-3584
+chrM	12817	0	0	0	0	0	0	0	16-3584
+chrM	12818	0	0	0	0	0	0	0	16-3584
+chrM	12819	0	0	0	0	0	0	0	16-3584
+chrM	12820	0	0	0	0	0	0	0	16-3584
+chrM	12821	0	0	0	0	0	0	0	16-3584
+chrM	12822	0	0	0	0	0	0	0	16-3584
+chrM	12823	0	0	0	0	0	0	0	16-3584
+chrM	12824	0	0	0	0	0	0	0	16-3584
+chrM	12825	0	0	0	0	0	0	0	16-3584
+chrM	12826	0	0	0	0	0	0	0	16-3584
+chrM	12827	0	0	0	0	0	0	0	16-3584
+chrM	12828	0	0	0	0	0	0	0	16-3584
+chrM	12829	0	0	0	0	0	0	0	16-3584
+chrM	12830	0	0	0	0	0	0	0	16-3584
+chrM	12831	0	0	0	0	0	0	0	16-3584
+chrM	12832	0	0	0	0	0	0	0	16-3584
+chrM	12833	0	0	0	0	0	0	0	16-3584
+chrM	12834	0	0	0	0	0	0	0	16-3584
+chrM	12835	0	0	0	0	0	0	0	16-3584
+chrM	12836	0	0	0	0	0	0	0	16-3584
+chrM	12837	0	0	0	0	0	0	0	16-3584
+chrM	12838	0	0	0	0	0	0	0	16-3584
+chrM	12839	0	0	0	0	0	0	0	16-3584
+chrM	12840	0	0	0	0	0	0	0	16-3584
+chrM	12841	0	0	0	0	0	0	0	16-3584
+chrM	12842	0	0	0	0	0	0	0	16-3584
+chrM	12843	0	0	0	0	0	0	0	16-3584
+chrM	12844	0	0	0	0	0	0	0	16-3584
+chrM	12845	0	0	0	0	0	0	0	16-3584
+chrM	12846	0	0	0	0	0	0	0	16-3584
+chrM	12847	0	0	0	0	0	0	0	16-3584
+chrM	12848	0	0	0	0	0	0	0	16-3584
+chrM	12849	0	0	0	0	0	0	0	16-3584
+chrM	12850	0	0	0	0	0	0	0	16-3584
+chrM	12851	0	0	0	0	0	0	0	16-3584
+chrM	12852	0	0	0	0	0	0	0	16-3584
+chrM	12853	0	0	0	0	0	0	0	16-3584
+chrM	12854	0	0	0	0	0	0	0	16-3584
+chrM	12855	0	0	0	0	0	0	0	16-3584
+chrM	12856	0	0	0	0	0	0	0	16-3584
+chrM	12857	0	0	0	0	0	0	0	16-3584
+chrM	12858	0	0	0	0	0	0	0	16-3584
+chrM	12859	0	0	0	0	0	0	0	16-3584
+chrM	12860	0	0	0	0	0	0	0	16-3584
+chrM	12861	0	0	0	0	0	0	0	16-3584
+chrM	12862	0	0	0	0	0	0	0	16-3584
+chrM	12863	0	0	0	0	0	0	0	16-3584
+chrM	12864	0	0	0	0	0	0	0	16-3584
+chrM	12865	0	0	0	0	0	0	0	16-3584
+chrM	12866	0	0	0	0	0	0	0	16-3584
+chrM	12867	0	0	0	0	0	0	0	16-3584
+chrM	12868	0	0	0	0	0	0	0	16-3584
+chrM	12869	0	0	0	0	0	0	0	16-3584
+chrM	12870	0	0	0	0	0	0	0	16-3584
+chrM	12871	0	0	0	0	0	0	0	16-3584
+chrM	12872	0	0	0	0	0	0	0	16-3584
+chrM	12873	0	0	0	0	0	0	0	16-3584
+chrM	12874	0	0	0	0	0	0	0	16-3584
+chrM	12875	0	0	0	0	0	0	0	16-3584
+chrM	12876	0	0	0	0	0	0	0	16-3584
+chrM	12877	0	0	0	0	0	0	0	16-3584
+chrM	12878	0	0	0	0	0	0	0	16-3584
+chrM	12879	0	0	0	0	0	0	0	16-3584
+chrM	12880	0	0	0	0	0	0	0	16-3584
+chrM	12881	0	0	0	0	0	0	0	16-3584
+chrM	12882	0	0	0	0	0	0	0	16-3584
+chrM	12883	0	0	0	0	0	0	0	16-3584
+chrM	12884	0	0	0	0	0	0	0	16-3584
+chrM	12885	0	0	0	0	0	0	0	16-3584
+chrM	12886	0	0	0	0	0	0	0	16-3584
+chrM	12887	0	0	0	0	0	0	0	16-3584
+chrM	12888	0	0	0	0	0	0	0	16-3584
+chrM	12889	0	0	0	0	0	0	0	16-3584
+chrM	12890	0	0	0	0	0	0	0	16-3584
+chrM	12891	0	0	0	0	0	0	0	16-3584
+chrM	12892	0	0	0	0	0	0	0	16-3584
+chrM	12893	0	0	0	0	0	0	0	16-3584
+chrM	12894	0	0	0	0	0	0	0	16-3584
+chrM	12895	0	0	0	0	0	0	0	16-3584
+chrM	12896	0	0	0	0	0	0	0	16-3584
+chrM	12897	0	0	0	0	0	0	0	16-3584
+chrM	12898	0	0	0	0	0	0	0	16-3584
+chrM	12899	0	0	0	0	0	0	0	16-3584
+chrM	12900	0	0	0	0	0	0	0	16-3584
+chrM	12901	0	0	0	0	0	0	0	16-3584
+chrM	12902	0	0	0	0	0	0	0	16-3584
+chrM	12903	0	0	0	0	0	0	0	16-3584
+chrM	12904	0	0	0	0	0	0	0	16-3584
+chrM	12905	0	0	0	0	0	0	0	16-3584
+chrM	12906	0	0	0	0	0	0	0	16-3584
+chrM	12907	0	0	0	0	0	0	0	16-3584
+chrM	12908	0	0	0	0	0	0	0	16-3584
+chrM	12909	0	0	0	0	0	0	0	16-3584
+chrM	12910	0	0	0	0	0	0	0	16-3584
+chrM	12911	0	0	0	0	0	0	0	16-3584
+chrM	12912	0	0	0	0	0	0	0	16-3584
+chrM	12913	0	0	0	0	0	0	0	16-3584
+chrM	12914	0	0	0	0	0	0	0	16-3584
+chrM	12915	0	0	0	0	0	0	0	16-3584
+chrM	12916	0	0	0	0	0	0	0	16-3584
+chrM	12917	0	0	0	0	0	0	0	16-3584
+chrM	12918	0	0	0	0	0	0	0	16-3584
+chrM	12919	0	0	0	0	0	0	0	16-3584
+chrM	12920	0	0	0	0	0	0	0	16-3584
+chrM	12921	0	0	0	0	0	0	0	16-3584
+chrM	12922	0	0	0	0	0	0	0	16-3584
+chrM	12923	0	0	0	0	0	0	0	16-3584
+chrM	12924	0	0	0	0	0	0	0	16-3584
+chrM	12925	0	0	0	0	0	0	0	16-3584
+chrM	12926	0	0	0	0	0	0	0	16-3584
+chrM	12927	0	0	0	0	0	0	0	16-3584
+chrM	12928	0	0	0	0	0	0	0	16-3584
+chrM	12929	0	0	0	0	0	0	0	16-3584
+chrM	12930	0	0	0	0	0	0	0	16-3584
+chrM	12931	0	0	0	0	0	0	0	16-3584
+chrM	12932	0	0	0	0	0	0	0	16-3584
+chrM	12933	0	0	0	0	0	0	0	16-3584
+chrM	12934	0	0	0	0	0	0	0	16-3584
+chrM	12935	0	0	0	0	0	0	0	16-3584
+chrM	12936	0	0	0	0	0	0	0	16-3584
+chrM	12937	0	0	0	0	0	0	0	16-3584
+chrM	12938	0	0	0	0	0	0	0	16-3584
+chrM	12939	0	0	0	0	0	0	0	16-3584
+chrM	12940	0	0	0	0	0	0	0	16-3584
+chrM	12941	0	0	0	0	0	0	0	16-3584
+chrM	12942	0	0	0	0	0	0	0	16-3584
+chrM	12943	0	0	0	0	0	0	0	16-3584
+chrM	12944	0	0	0	0	0	0	0	16-3584
+chrM	12945	0	0	0	0	0	0	0	16-3584
+chrM	12946	0	0	0	0	0	0	0	16-3584
+chrM	12947	0	0	0	0	0	0	0	16-3584
+chrM	12948	0	0	0	0	0	0	0	16-3584
+chrM	12949	0	0	0	0	0	0	0	16-3584
+chrM	12950	0	0	0	0	0	0	0	16-3584
+chrM	12951	0	0	0	0	0	0	0	16-3584
+chrM	12952	0	0	0	0	0	0	0	16-3584
+chrM	12953	0	0	0	0	0	0	0	16-3584
+chrM	12954	0	0	0	0	0	0	0	16-3584
+chrM	12955	0	0	0	0	0	0	0	16-3584
+chrM	12956	0	0	0	0	0	0	0	16-3584
+chrM	12957	0	0	0	0	0	0	0	16-3584
+chrM	12958	0	0	0	0	0	0	0	16-3584
+chrM	12959	0	0	0	0	0	0	0	16-3584
+chrM	12960	0	0	0	0	0	0	0	16-3584
+chrM	12961	0	0	0	0	0	0	0	16-3584
+chrM	12962	0	0	0	0	0	0	0	16-3584
+chrM	12963	0	0	0	0	0	0	0	16-3584
+chrM	12964	0	0	0	0	0	0	0	16-3584
+chrM	12965	0	0	0	0	0	0	0	16-3584
+chrM	12966	0	0	0	0	0	0	0	16-3584
+chrM	12967	0	0	0	0	0	0	0	16-3584
+chrM	12968	0	0	0	0	0	0	0	16-3584
+chrM	12969	0	0	0	0	0	0	0	16-3584
+chrM	12970	0	0	0	0	0	0	0	16-3584
+chrM	12971	0	0	0	0	0	0	0	16-3584
+chrM	12972	0	0	0	0	0	0	0	16-3584
+chrM	12973	0	0	0	0	0	0	0	16-3584
+chrM	12974	0	0	0	0	0	0	0	16-3584
+chrM	12975	0	0	0	0	0	0	0	16-3584
+chrM	12976	0	0	0	0	0	0	0	16-3584
+chrM	12977	0	0	0	0	0	0	0	16-3584
+chrM	12978	0	0	0	0	0	0	0	16-3584
+chrM	12979	0	0	0	0	0	0	0	16-3584
+chrM	12980	0	0	0	0	0	0	0	16-3584
+chrM	12981	0	0	0	0	0	0	0	16-3584
+chrM	12982	0	0	0	0	0	0	0	16-3584
+chrM	12983	0	0	0	0	0	0	0	16-3584
+chrM	12984	0	0	0	0	0	0	0	16-3584
+chrM	12985	0	0	0	0	0	0	0	16-3584
+chrM	12986	0	0	0	0	0	0	0	16-3584
+chrM	12987	0	0	0	0	0	0	0	16-3584
+chrM	12988	0	0	0	0	0	0	0	16-3584
+chrM	12989	0	0	0	0	0	0	0	16-3584
+chrM	12990	0	0	0	0	0	0	0	16-3584
+chrM	12991	0	0	0	0	0	0	0	16-3584
+chrM	12992	0	0	0	0	0	0	0	16-3584
+chrM	12993	0	0	0	0	0	0	0	16-3584
+chrM	12994	0	0	0	0	0	0	0	16-3584
+chrM	12995	0	0	0	0	0	0	0	16-3584
+chrM	12996	0	0	0	0	0	0	0	16-3584
+chrM	12997	0	0	0	0	0	0	0	16-3584
+chrM	12998	0	0	0	0	0	0	0	16-3584
+chrM	12999	0	0	0	0	0	0	0	16-3584
+chrM	13000	0	0	0	0	0	0	0	16-3584
+chrM	13001	0	0	0	0	0	0	0	16-3584
+chrM	13002	0	0	0	0	0	0	0	16-3584
+chrM	13003	0	0	0	0	0	0	0	16-3584
+chrM	13004	0	0	0	0	0	0	0	16-3584
+chrM	13005	0	0	0	0	0	0	0	16-3584
+chrM	13006	0	0	0	0	0	0	0	16-3584
+chrM	13007	0	0	0	0	0	0	0	16-3584
+chrM	13008	0	0	0	0	0	0	0	16-3584
+chrM	13009	0	0	0	0	0	0	0	16-3584
+chrM	13010	0	0	0	0	0	0	0	16-3584
+chrM	13011	0	0	0	0	0	0	0	16-3584
+chrM	13012	0	0	0	0	0	0	0	16-3584
+chrM	13013	0	0	0	0	0	0	0	16-3584
+chrM	13014	0	0	0	0	0	0	0	16-3584
+chrM	13015	0	0	0	0	0	0	0	16-3584
+chrM	13016	0	0	0	0	0	0	0	16-3584
+chrM	13017	0	0	0	0	0	0	0	16-3584
+chrM	13018	0	0	0	0	0	0	0	16-3584
+chrM	13019	0	0	0	0	0	0	0	16-3584
+chrM	13020	0	0	0	0	0	0	0	16-3584
+chrM	13021	0	0	0	0	0	0	0	16-3584
+chrM	13022	0	0	0	0	0	0	0	16-3584
+chrM	13023	0	0	0	0	0	0	0	16-3584
+chrM	13024	0	0	0	0	0	0	0	16-3584
+chrM	13025	0	0	0	0	0	0	0	16-3584
+chrM	13026	0	0	0	0	0	0	0	16-3584
+chrM	13027	0	0	0	0	0	0	0	16-3584
+chrM	13028	0	0	0	0	0	0	0	16-3584
+chrM	13029	0	0	0	0	0	0	0	16-3584
+chrM	13030	0	0	0	0	0	0	0	16-3584
+chrM	13031	0	0	0	0	0	0	0	16-3584
+chrM	13032	0	0	0	0	0	0	0	16-3584
+chrM	13033	0	0	0	0	0	0	0	16-3584
+chrM	13034	0	0	0	0	0	0	0	16-3584
+chrM	13035	0	0	0	0	0	0	0	16-3584
+chrM	13036	0	0	0	0	0	0	0	16-3584
+chrM	13037	0	0	0	0	0	0	0	16-3584
+chrM	13038	0	0	0	0	0	0	0	16-3584
+chrM	13039	0	0	0	0	0	0	0	16-3584
+chrM	13040	0	0	0	0	0	0	0	16-3584
+chrM	13041	0	0	0	0	0	0	0	16-3584
+chrM	13042	0	0	0	0	0	0	0	16-3584
+chrM	13043	0	0	0	0	0	0	0	16-3584
+chrM	13044	0	0	0	0	0	0	0	16-3584
+chrM	13045	0	0	0	0	0	0	0	16-3584
+chrM	13046	0	0	0	0	0	0	0	16-3584
+chrM	13047	0	0	0	0	0	0	0	16-3584
+chrM	13048	0	0	0	0	0	0	0	16-3584
+chrM	13049	0	0	0	0	0	0	0	16-3584
+chrM	13050	0	0	0	0	0	0	0	16-3584
+chrM	13051	0	0	0	0	0	0	0	16-3584
+chrM	13052	0	0	0	0	0	0	0	16-3584
+chrM	13053	0	0	0	0	0	0	0	16-3584
+chrM	13054	0	0	0	0	0	0	0	16-3584
+chrM	13055	0	0	0	0	0	0	0	16-3584
+chrM	13056	0	0	0	0	0	0	0	16-3584
+chrM	13057	0	0	0	0	0	0	0	16-3584
+chrM	13058	0	0	0	0	0	0	0	16-3584
+chrM	13059	0	0	0	0	0	0	0	16-3584
+chrM	13060	0	0	0	0	0	0	0	16-3584
+chrM	13061	0	0	0	0	0	0	0	16-3584
+chrM	13062	0	0	0	0	0	0	0	16-3584
+chrM	13063	0	0	0	0	0	0	0	16-3584
+chrM	13064	0	0	0	0	0	0	0	16-3584
+chrM	13065	0	0	0	0	0	0	0	16-3584
+chrM	13066	0	0	0	0	0	0	0	16-3584
+chrM	13067	0	0	0	0	0	0	0	16-3584
+chrM	13068	0	0	0	0	0	0	0	16-3584
+chrM	13069	0	0	0	0	0	0	0	16-3584
+chrM	13070	0	0	0	0	0	0	0	16-3584
+chrM	13071	0	0	0	0	0	0	0	16-3584
+chrM	13072	0	0	0	0	0	0	0	16-3584
+chrM	13073	0	0	0	0	0	0	0	16-3584
+chrM	13074	0	0	0	0	0	0	0	16-3584
+chrM	13075	0	0	0	0	0	0	0	16-3584
+chrM	13076	0	0	0	0	0	0	0	16-3584
+chrM	13077	0	0	0	0	0	0	0	16-3584
+chrM	13078	0	0	0	0	0	0	0	16-3584
+chrM	13079	0	0	0	0	0	0	0	16-3584
+chrM	13080	0	0	0	0	0	0	0	16-3584
+chrM	13081	0	0	0	0	0	0	0	16-3584
+chrM	13082	0	0	0	0	0	0	0	16-3584
+chrM	13083	0	0	0	0	0	0	0	16-3584
+chrM	13084	0	0	0	0	0	0	0	16-3584
+chrM	13085	0	0	0	0	0	0	0	16-3584
+chrM	13086	0	0	0	0	0	0	0	16-3584
+chrM	13087	0	0	0	0	0	0	0	16-3584
+chrM	13088	0	0	0	0	0	0	0	16-3584
+chrM	13089	0	0	0	0	0	0	0	16-3584
+chrM	13090	0	0	0	0	0	0	0	16-3584
+chrM	13091	0	0	0	0	0	0	0	16-3584
+chrM	13092	0	0	0	0	0	0	0	16-3584
+chrM	13093	0	0	0	0	0	0	0	16-3584
+chrM	13094	0	0	0	0	0	0	0	16-3584
+chrM	13095	0	0	0	0	0	0	0	16-3584
+chrM	13096	0	0	0	0	0	0	0	16-3584
+chrM	13097	0	0	0	0	0	0	0	16-3584
+chrM	13098	0	0	0	0	0	0	0	16-3584
+chrM	13099	0	0	0	0	0	0	0	16-3584
+chrM	13100	0	0	0	0	0	0	0	16-3584
+chrM	13101	0	0	0	0	0	0	0	16-3584
+chrM	13102	0	0	0	0	0	0	0	16-3584
+chrM	13103	0	0	0	0	0	0	0	16-3584
+chrM	13104	0	0	0	0	0	0	0	16-3584
+chrM	13105	0	0	0	0	0	0	0	16-3584
+chrM	13106	0	0	0	0	0	0	0	16-3584
+chrM	13107	0	0	0	0	0	0	0	16-3584
+chrM	13108	0	0	0	0	0	0	0	16-3584
+chrM	13109	0	0	0	0	0	0	0	16-3584
+chrM	13110	0	0	0	0	0	0	0	16-3584
+chrM	13111	0	0	0	0	0	0	0	16-3584
+chrM	13112	0	0	0	0	0	0	0	16-3584
+chrM	13113	0	0	0	0	0	0	0	16-3584
+chrM	13114	0	0	0	0	0	0	0	16-3584
+chrM	13115	0	0	0	0	0	0	0	16-3584
+chrM	13116	0	0	0	0	0	0	0	16-3584
+chrM	13117	0	0	0	0	0	0	0	16-3584
+chrM	13118	0	0	0	0	0	0	0	16-3584
+chrM	13119	0	0	0	0	0	0	0	16-3584
+chrM	13120	0	0	0	0	0	0	0	16-3584
+chrM	13121	0	0	0	0	0	0	0	16-3584
+chrM	13122	0	0	0	0	0	0	0	16-3584
+chrM	13123	0	0	0	0	0	0	0	16-3584
+chrM	13124	0	0	0	0	0	0	0	16-3584
+chrM	13125	0	0	0	0	0	0	0	16-3584
+chrM	13126	0	0	0	0	0	0	0	16-3584
+chrM	13127	0	0	0	0	0	0	0	16-3584
+chrM	13128	0	0	0	0	0	0	0	16-3584
+chrM	13129	0	0	0	0	0	0	0	16-3584
+chrM	13130	0	0	0	0	0	0	0	16-3584
+chrM	13131	0	0	0	0	0	0	0	16-3584
+chrM	13132	0	0	0	0	0	0	0	16-3584
+chrM	13133	0	0	0	0	0	0	0	16-3584
+chrM	13134	0	0	0	0	0	0	0	16-3584
+chrM	13135	0	0	0	0	0	0	0	16-3584
+chrM	13136	0	0	0	0	0	0	0	16-3584
+chrM	13137	0	0	0	0	0	0	0	16-3584
+chrM	13138	0	0	0	0	0	0	0	16-3584
+chrM	13139	0	0	0	0	0	0	0	16-3584
+chrM	13140	0	0	0	0	0	0	0	16-3584
+chrM	13141	0	0	0	0	0	0	0	16-3584
+chrM	13142	0	0	0	0	0	0	0	16-3584
+chrM	13143	0	0	0	0	0	0	0	16-3584
+chrM	13144	0	0	0	0	0	0	0	16-3584
+chrM	13145	0	0	0	0	0	0	0	16-3584
+chrM	13146	0	0	0	0	0	0	0	16-3584
+chrM	13147	0	0	0	0	0	0	0	16-3584
+chrM	13148	0	0	0	0	0	0	0	16-3584
+chrM	13149	0	0	0	0	0	0	0	16-3584
+chrM	13150	0	0	0	0	0	0	0	16-3584
+chrM	13151	0	0	0	0	0	0	0	16-3584
+chrM	13152	0	0	0	0	0	0	0	16-3584
+chrM	13153	0	0	0	0	0	0	0	16-3584
+chrM	13154	0	0	0	0	0	0	0	16-3584
+chrM	13155	0	0	0	0	0	0	0	16-3584
+chrM	13156	0	0	0	0	0	0	0	16-3584
+chrM	13157	0	0	0	0	0	0	0	16-3584
+chrM	13158	0	0	0	0	0	0	0	16-3584
+chrM	13159	0	0	0	0	0	0	0	16-3584
+chrM	13160	0	0	0	0	0	0	0	16-3584
+chrM	13161	0	0	0	0	0	0	0	16-3584
+chrM	13162	0	0	0	0	0	0	0	16-3584
+chrM	13163	0	0	0	0	0	0	0	16-3584
+chrM	13164	0	0	0	0	0	0	0	16-3584
+chrM	13165	0	0	0	0	0	0	0	16-3584
+chrM	13166	0	0	0	0	0	0	0	16-3584
+chrM	13167	0	0	0	0	0	0	0	16-3584
+chrM	13168	0	0	0	0	0	0	0	16-3584
+chrM	13169	0	0	0	0	0	0	0	16-3584
+chrM	13170	0	0	0	0	0	0	0	16-3584
+chrM	13171	0	0	0	0	0	0	0	16-3584
+chrM	13172	0	0	0	0	0	0	0	16-3584
+chrM	13173	0	0	0	0	0	0	0	16-3584
+chrM	13174	0	0	0	0	0	0	0	16-3584
+chrM	13175	0	0	0	0	0	0	0	16-3584
+chrM	13176	0	0	0	0	0	0	0	16-3584
+chrM	13177	0	0	0	0	0	0	0	16-3584
+chrM	13178	0	0	0	0	0	0	0	16-3584
+chrM	13179	0	0	0	0	0	0	0	16-3584
+chrM	13180	0	0	0	0	0	0	0	16-3584
+chrM	13181	0	0	0	0	0	0	0	16-3584
+chrM	13182	0	0	0	0	0	0	0	16-3584
+chrM	13183	0	0	0	0	0	0	0	16-3584
+chrM	13184	0	0	0	0	0	0	0	16-3584
+chrM	13185	0	0	0	0	0	0	0	16-3584
+chrM	13186	0	0	0	0	0	0	0	16-3584
+chrM	13187	0	0	0	0	0	0	0	16-3584
+chrM	13188	0	0	0	0	0	0	0	16-3584
+chrM	13189	0	0	0	0	0	0	0	16-3584
+chrM	13190	0	0	0	0	0	0	0	16-3584
+chrM	13191	0	0	0	0	0	0	0	16-3584
+chrM	13192	0	0	0	0	0	0	0	16-3584
+chrM	13193	0	0	0	0	0	0	0	16-3584
+chrM	13194	0	0	0	0	0	0	0	16-3584
+chrM	13195	0	0	0	0	0	0	0	16-3584
+chrM	13196	0	0	0	0	0	0	0	16-3584
+chrM	13197	0	0	0	0	0	0	0	16-3584
+chrM	13198	0	0	0	0	0	0	0	16-3584
+chrM	13199	0	0	0	0	0	0	0	16-3584
+chrM	13200	0	0	0	0	0	0	0	16-3584
+chrM	13201	0	0	0	0	0	0	0	16-3584
+chrM	13202	0	0	0	0	0	0	0	16-3584
+chrM	13203	0	0	0	0	0	0	0	16-3584
+chrM	13204	0	0	0	0	0	0	0	16-3584
+chrM	13205	0	0	0	0	0	0	0	16-3584
+chrM	13206	0	0	0	0	0	0	0	16-3584
+chrM	13207	0	0	0	0	0	0	0	16-3584
+chrM	13208	0	0	0	0	0	0	0	16-3584
+chrM	13209	0	0	0	0	0	0	0	16-3584
+chrM	13210	0	0	0	0	0	0	0	16-3584
+chrM	13211	0	0	0	0	0	0	0	16-3584
+chrM	13212	0	0	0	0	0	0	0	16-3584
+chrM	13213	0	0	0	0	0	0	0	16-3584
+chrM	13214	0	0	0	0	0	0	0	16-3584
+chrM	13215	0	0	0	0	0	0	0	16-3584
+chrM	13216	0	0	0	0	0	0	0	16-3584
+chrM	13217	0	0	0	0	0	0	0	16-3584
+chrM	13218	0	0	0	0	0	0	0	16-3584
+chrM	13219	0	0	0	0	0	0	0	16-3584
+chrM	13220	0	0	0	0	0	0	0	16-3584
+chrM	13221	0	0	0	0	0	0	0	16-3584
+chrM	13222	0	0	0	0	0	0	0	16-3584
+chrM	13223	0	0	0	0	0	0	0	16-3584
+chrM	13224	0	0	0	0	0	0	0	16-3584
+chrM	13225	0	0	0	0	0	0	0	16-3584
+chrM	13226	0	0	0	0	0	0	0	16-3584
+chrM	13227	0	0	0	0	0	0	0	16-3584
+chrM	13228	0	0	0	0	0	0	0	16-3584
+chrM	13229	0	0	0	0	0	0	0	16-3584
+chrM	13230	0	0	0	0	0	0	0	16-3584
+chrM	13231	0	0	0	0	0	0	0	16-3584
+chrM	13232	0	0	0	0	0	0	0	16-3584
+chrM	13233	0	0	0	0	0	0	0	16-3584
+chrM	13234	0	0	0	0	0	0	0	16-3584
+chrM	13235	0	0	0	0	0	0	0	16-3584
+chrM	13236	0	0	0	0	0	0	0	16-3584
+chrM	13237	0	0	0	0	0	0	0	16-3584
+chrM	13238	0	0	0	0	0	0	0	16-3584
+chrM	13239	0	0	0	0	0	0	0	16-3584
+chrM	13240	0	0	0	0	0	0	0	16-3584
+chrM	13241	0	0	0	0	0	0	0	16-3584
+chrM	13242	0	0	0	0	0	0	0	16-3584
+chrM	13243	0	0	0	0	0	0	0	16-3584
+chrM	13244	0	0	0	0	0	0	0	16-3584
+chrM	13245	0	0	0	0	0	0	0	16-3584
+chrM	13246	0	0	0	0	0	0	0	16-3584
+chrM	13247	0	0	0	0	0	0	0	16-3584
+chrM	13248	0	0	0	0	0	0	0	16-3584
+chrM	13249	0	0	0	0	0	0	0	16-3584
+chrM	13250	0	0	0	0	0	0	0	16-3584
+chrM	13251	0	0	0	0	0	0	0	16-3584
+chrM	13252	0	0	0	0	0	0	0	16-3584
+chrM	13253	0	0	0	0	0	0	0	16-3584
+chrM	13254	0	0	0	0	0	0	0	16-3584
+chrM	13255	0	0	0	0	0	0	0	16-3584
+chrM	13256	0	0	0	0	0	0	0	16-3584
+chrM	13257	0	0	0	0	0	0	0	16-3584
+chrM	13258	0	0	0	0	0	0	0	16-3584
+chrM	13259	0	0	0	0	0	0	0	16-3584
+chrM	13260	0	0	0	0	0	0	0	16-3584
+chrM	13261	0	0	0	0	0	0	0	16-3584
+chrM	13262	0	0	0	0	0	0	0	16-3584
+chrM	13263	0	0	0	0	0	0	0	16-3584
+chrM	13264	0	0	0	0	0	0	0	16-3584
+chrM	13265	0	0	0	0	0	0	0	16-3584
+chrM	13266	0	0	0	0	0	0	0	16-3584
+chrM	13267	0	0	0	0	0	0	0	16-3584
+chrM	13268	0	0	0	0	0	0	0	16-3584
+chrM	13269	0	0	0	0	0	0	0	16-3584
+chrM	13270	0	0	0	0	0	0	0	16-3584
+chrM	13271	0	0	0	0	0	0	0	16-3584
+chrM	13272	0	0	0	0	0	0	0	16-3584
+chrM	13273	0	0	0	0	0	0	0	16-3584
+chrM	13274	0	0	0	0	0	0	0	16-3584
+chrM	13275	0	0	0	0	0	0	0	16-3584
+chrM	13276	0	0	0	0	0	0	0	16-3584
+chrM	13277	0	0	0	0	0	0	0	16-3584
+chrM	13278	0	0	0	0	0	0	0	16-3584
+chrM	13279	0	0	0	0	0	0	0	16-3584
+chrM	13280	0	0	0	0	0	0	0	16-3584
+chrM	13281	0	0	0	0	0	0	0	16-3584
+chrM	13282	0	0	0	0	0	0	0	16-3584
+chrM	13283	0	0	0	0	0	0	0	16-3584
+chrM	13284	0	0	0	0	0	0	0	16-3584
+chrM	13285	0	0	0	0	0	0	0	16-3584
+chrM	13286	0	0	0	0	0	0	0	16-3584
+chrM	13287	0	0	0	0	0	0	0	16-3584
+chrM	13288	0	0	0	0	0	0	0	16-3584
+chrM	13289	0	0	0	0	0	0	0	16-3584
+chrM	13290	0	0	0	0	0	0	0	16-3584
+chrM	13291	0	0	0	0	0	0	0	16-3584
+chrM	13292	0	0	0	0	0	0	0	16-3584
+chrM	13293	0	0	0	0	0	0	0	16-3584
+chrM	13294	0	0	0	0	0	0	0	16-3584
+chrM	13295	0	0	0	0	0	0	0	16-3584
+chrM	13296	0	0	0	0	0	0	0	16-3584
+chrM	13297	0	0	0	0	0	0	0	16-3584
+chrM	13298	0	0	0	0	0	0	0	16-3584
+chrM	13299	0	0	0	0	0	0	0	16-3584
+chrM	13300	0	0	0	0	0	0	0	16-3584
+chrM	13301	0	0	0	0	0	0	0	16-3584
+chrM	13302	0	0	0	0	0	0	0	16-3584
+chrM	13303	0	0	0	0	0	0	0	16-3584
+chrM	13304	0	0	0	0	0	0	0	16-3584
+chrM	13305	0	0	0	0	0	0	0	16-3584
+chrM	13306	0	0	0	0	0	0	0	16-3584
+chrM	13307	0	0	0	0	0	0	0	16-3584
+chrM	13308	0	0	0	0	0	0	0	16-3584
+chrM	13309	0	0	0	0	0	0	0	16-3584
+chrM	13310	0	0	0	0	0	0	0	16-3584
+chrM	13311	0	0	0	0	0	0	0	16-3584
+chrM	13312	0	0	0	0	0	0	0	16-3584
+chrM	13313	0	0	0	0	0	0	0	16-3584
+chrM	13314	0	0	0	0	0	0	0	16-3584
+chrM	13315	0	0	0	0	0	0	0	16-3584
+chrM	13316	0	0	0	0	0	0	0	16-3584
+chrM	13317	0	0	0	0	0	0	0	16-3584
+chrM	13318	0	0	0	0	0	0	0	16-3584
+chrM	13319	0	0	0	0	0	0	0	16-3584
+chrM	13320	0	0	0	0	0	0	0	16-3584
+chrM	13321	0	0	0	0	0	0	0	16-3584
+chrM	13322	0	0	0	0	0	0	0	16-3584
+chrM	13323	0	0	0	0	0	0	0	16-3584
+chrM	13324	0	0	0	0	0	0	0	16-3584
+chrM	13325	0	0	0	0	0	0	0	16-3584
+chrM	13326	0	0	0	0	0	0	0	16-3584
+chrM	13327	0	0	0	0	0	0	0	16-3584
+chrM	13328	0	0	0	0	0	0	0	16-3584
+chrM	13329	0	0	0	0	0	0	0	16-3584
+chrM	13330	0	0	0	0	0	0	0	16-3584
+chrM	13331	0	0	0	0	0	0	0	16-3584
+chrM	13332	0	0	0	0	0	0	0	16-3584
+chrM	13333	0	0	0	0	0	0	0	16-3584
+chrM	13334	0	0	0	0	0	0	0	16-3584
+chrM	13335	0	0	0	0	0	0	0	16-3584
+chrM	13336	0	0	0	0	0	0	0	16-3584
+chrM	13337	0	0	0	0	0	0	0	16-3584
+chrM	13338	0	0	0	0	0	0	0	16-3584
+chrM	13339	0	0	0	0	0	0	0	16-3584
+chrM	13340	0	0	0	0	0	0	0	16-3584
+chrM	13341	0	0	0	0	0	0	0	16-3584
+chrM	13342	0	0	0	0	0	0	0	16-3584
+chrM	13343	0	0	0	0	0	0	0	16-3584
+chrM	13344	0	0	0	0	0	0	0	16-3584
+chrM	13345	0	0	0	0	0	0	0	16-3584
+chrM	13346	0	0	0	0	0	0	0	16-3584
+chrM	13347	0	0	0	0	0	0	0	16-3584
+chrM	13348	0	0	0	0	0	0	0	16-3584
+chrM	13349	0	0	0	0	0	0	0	16-3584
+chrM	13350	0	0	0	0	0	0	0	16-3584
+chrM	13351	0	0	0	0	0	0	0	16-3584
+chrM	13352	0	0	0	0	0	0	0	16-3584
+chrM	13353	0	0	0	0	0	0	0	16-3584
+chrM	13354	0	0	0	0	0	0	0	16-3584
+chrM	13355	0	0	0	0	0	0	0	16-3584
+chrM	13356	0	0	0	0	0	0	0	16-3584
+chrM	13357	0	0	0	0	0	0	0	16-3584
+chrM	13358	0	0	0	0	0	0	0	16-3584
+chrM	13359	0	0	0	0	0	0	0	16-3584
+chrM	13360	0	0	0	0	0	0	0	16-3584
+chrM	13361	0	0	0	0	0	0	0	16-3584
+chrM	13362	0	0	0	0	0	0	0	16-3584
+chrM	13363	0	0	0	0	0	0	0	16-3584
+chrM	13364	0	0	0	0	0	0	0	16-3584
+chrM	13365	1	1	0	0	0	0	0	16-3584
+chrM	13366	1	0	0	0	1	0	0	16-3584
+chrM	13367	1	0	1	0	0	0	0	16-3584
+chrM	13368	1	1	0	0	0	0	0	16-3584
+chrM	13369	1	0	0	0	1	0	0	16-3584
+chrM	13370	1	1	0	0	0	0	0	16-3584
+chrM	13371	1	0	0	1	0	0	0	16-3584
+chrM	13372	1	0	0	0	1	0	0	16-3584
+chrM	13373	1	0	0	0	1	0	0	16-3584
+chrM	13374	1	0	1	0	0	0	0	16-3584
+chrM	13375	1	1	0	0	0	0	0	16-3584
+chrM	13376	1	0	0	1	0	0	0	16-3584
+chrM	13377	1	0	0	0	1	0	0	16-3584
+chrM	13378	1	1	0	0	0	0	0	16-3584
+chrM	13379	1	0	1	0	0	0	0	16-3584
+chrM	13380	1	0	0	1	0	0	0	16-3584
+chrM	13381	1	1	0	0	0	0	0	16-3584
+chrM	13382	1	1	0	0	0	0	0	16-3584
+chrM	13383	1	0	0	0	1	0	0	16-3584
+chrM	13384	1	1	0	0	0	0	0	16-3584
+chrM	13385	1	1	0	0	0	0	0	16-3584
+chrM	13386	1	0	0	1	0	0	0	16-3584
+chrM	13387	1	1	0	0	0	0	0	16-3584
+chrM	13388	1	0	1	0	0	0	0	16-3584
+chrM	13389	1	1	0	0	0	0	0	16-3584
+chrM	13390	1	1	0	0	0	0	0	16-3584
+chrM	13391	1	0	1	0	0	0	0	16-3584
+chrM	13392	1	1	0	0	0	0	0	16-3584
+chrM	13393	1	0	1	0	0	0	0	16-3584
+chrM	13394	1	0	0	0	1	0	0	16-3584
+chrM	13395	1	1	0	0	0	0	0	16-3584
+chrM	13396	1	1	0	0	0	0	0	16-3584
+chrM	13397	1	0	0	0	1	0	0	16-3584
+chrM	13398	1	1	0	0	0	0	0	16-3584
+chrM	13399	1	0	0	0	1	0	0	16-3584
+chrM	13400	1	0	1	0	0	0	0	16-3584
+chrM	13401	1	1	0	0	0	0	0	16-3584
+chrM	13402	1	0	0	1	0	0	0	16-3584
+chrM	13403	1	0	0	1	0	0	0	16-3584
+chrM	13404	1	1	0	0	0	0	0	16-3584
+chrM	13405	1	0	0	1	0	0	0	16-3584
+chrM	13406	2	1	0	1	0	0	0	16-3584
+chrM	13407	2	1	0	0	1	0	0	16-3584
+chrM	13408	2	1	0	0	1	0	0	16-3584
+chrM	13409	2	1	0	1	0	0	0	16-3584
+chrM	13410	2	0	1	0	1	0	0	16-3584
+chrM	13411	2	0	1	1	0	0	0	16-3584
+chrM	13412	2	0	0	2	0	0	0	16-3584
+chrM	13413	2	0	1	0	1	0	0	16-3584
+chrM	13414	2	1	0	0	1	0	0	16-3584
+chrM	13415	2	1	0	0	1	0	0	16-3584
+chrM	13416	2	0	0	1	1	0	0	16-3584
+chrM	13417	2	1	0	0	1	0	0	16-3584
+chrM	13418	2	0	0	1	1	0	0	16-3584
+chrM	13419	2	0	1	0	1	0	0	16-3584
+chrM	13420	2	0	1	1	0	0	0	16-3584
+chrM	13421	2	0	1	0	1	0	0	16-3584
+chrM	13422	2	0	0	1	1	0	0	16-3584
+chrM	13423	2	2	0	0	0	0	0	16-3584
+chrM	13424	2	0	1	0	1	0	0	16-3584
+chrM	13425	2	0	0	1	1	0	0	16-3584
+chrM	13426	2	1	0	0	1	0	0	16-3584
+chrM	13427	2	1	0	1	0	0	0	16-3584
+chrM	13428	2	0	1	1	0	0	0	16-3584
+chrM	13429	2	0	0	2	0	0	0	16-3584
+chrM	13430	2	0	0	1	1	0	0	16-3584
+chrM	13431	2	0	1	1	0	0	0	16-3584
+chrM	13432	2	0	1	1	0	0	0	16-3584
+chrM	13433	2	0	1	1	0	0	0	16-3584
+chrM	13434	2	1	1	0	0	0	0	16-3584
+chrM	13435	2	1	0	1	0	0	0	16-3584
+chrM	13436	2	1	0	1	0	0	0	16-3584
+chrM	13437	2	0	1	0	1	0	0	16-3584
+chrM	13438	2	0	1	0	1	0	0	16-3584
+chrM	13439	2	1	1	0	0	0	0	16-3584
+chrM	13440	2	1	0	1	0	0	0	16-3584
+chrM	13441	2	0	1	1	0	0	0	16-3584
+chrM	13442	2	1	0	0	1	0	0	16-3584
+chrM	13443	2	0	0	0	2	0	0	16-3584
+chrM	13444	2	0	1	0	1	0	0	16-3584
+chrM	13445	2	1	0	0	1	0	0	16-3584
+chrM	13446	2	0	0	0	2	0	0	16-3584
+chrM	13447	2	1	0	0	1	0	0	16-3584
+chrM	13448	2	0	0	0	2	0	0	16-3584
+chrM	13449	2	0	2	0	0	0	0	16-3584
+chrM	13450	2	2	0	0	0	0	0	16-3584
+chrM	13451	2	1	0	1	0	0	0	16-3584
+chrM	13452	2	0	1	0	1	0	0	16-3584
+chrM	13453	2	1	0	0	1	0	0	16-3584
+chrM	13454	2	2	0	0	0	0	0	16-3584
+chrM	13455	2	0	1	0	1	0	0	16-3584
+chrM	13456	2	0	2	0	0	0	0	16-3584
+chrM	13457	2	0	1	0	1	0	0	16-3584
+chrM	13458	2	1	1	0	0	0	0	16-3584
+chrM	13459	2	1	0	0	1	0	0	16-3584
+chrM	13460	2	0	0	0	2	0	0	16-3584
+chrM	13461	2	1	0	0	1	0	0	16-3584
+chrM	13462	2	1	1	0	0	0	0	16-3584
+chrM	13463	2	1	0	1	0	0	0	16-3584
+chrM	13464	2	0	1	1	0	0	0	16-3584
+chrM	13465	2	1	0	0	1	0	0	16-3584
+chrM	13466	2	0	0	2	0	0	0	16-3584
+chrM	13467	2	0	1	1	0	0	0	16-3584
+chrM	13468	2	0	2	0	0	0	0	16-3584
+chrM	13469	2	1	1	0	0	0	0	16-3584
+chrM	13470	2	0	0	0	2	0	0	16-3584
+chrM	13471	2	1	1	0	0	0	0	16-3584
+chrM	13472	2	0	1	0	1	0	0	16-3584
+chrM	13473	2	1	0	1	0	0	0	16-3584
+chrM	13474	2	1	0	0	1	0	0	16-3584
+chrM	13475	2	0	0	0	2	0	0	16-3584
+chrM	13476	2	0	1	1	0	0	0	16-3584
+chrM	13477	2	1	1	0	0	0	0	16-3584
+chrM	13478	2	0	1	0	1	0	0	16-3584
+chrM	13479	2	0	1	1	0	0	0	16-3584
+chrM	13480	2	0	1	1	0	0	0	16-3584
+chrM	13481	2	2	0	0	0	0	0	16-3584
+chrM	13482	2	1	0	1	0	0	0	16-3584
+chrM	13483	2	1	1	0	0	0	0	16-3584
+chrM	13484	2	0	1	0	1	0	0	16-3584
+chrM	13485	2	1	0	0	1	0	0	16-3584
+chrM	13486	2	0	0	0	2	0	0	16-3584
+chrM	13487	2	2	0	0	0	0	0	16-3584
+chrM	13488	2	1	1	0	0	0	0	16-3584
+chrM	13489	2	0	1	1	0	0	0	16-3584
+chrM	13490	2	2	0	0	0	0	0	16-3584
+chrM	13491	2	0	1	0	1	0	0	16-3584
+chrM	13492	2	0	2	0	0	0	0	16-3584
+chrM	13493	2	1	0	0	1	0	0	16-3584
+chrM	13494	2	0	0	0	2	0	0	16-3584
+chrM	13495	2	1	1	0	0	0	0	16-3584
+chrM	13496	2	1	1	0	0	0	0	16-3584
+chrM	13497	2	1	0	1	0	0	0	16-3584
+chrM	13498	2	1	1	0	0	0	0	16-3584
+chrM	13499	2	0	2	0	0	0	0	16-3584
+chrM	13500	2	0	0	0	2	0	0	16-3584
+chrM	13501	2	1	0	1	0	0	0	16-3584
+chrM	13502	2	1	1	0	0	0	0	16-3584
+chrM	13503	2	0	1	1	0	0	0	16-3584
+chrM	13504	2	0	1	1	0	0	0	16-3584
+chrM	13505	2	2	0	0	0	0	0	16-3584
+chrM	13506	2	1	0	1	0	0	0	16-3584
+chrM	13507	2	0	1	0	1	0	0	16-3584
+chrM	13508	2	1	0	1	0	0	0	16-3584
+chrM	13509	2	0	0	0	2	0	0	16-3584
+chrM	13510	1	0	0	1	0	0	0	16-3584
+chrM	13511	1	0	0	0	1	0	0	16-3584
+chrM	13512	1	0	0	0	1	0	0	16-3584
+chrM	13513	1	0	0	0	1	0	0	16-3584
+chrM	13514	1	1	0	0	0	0	0	16-3584
+chrM	13515	1	0	0	0	1	0	0	16-3584
+chrM	13516	1	1	0	0	0	0	0	16-3584
+chrM	13517	1	0	0	1	0	0	0	16-3584
+chrM	13518	1	0	0	1	0	0	0	16-3584
+chrM	13519	1	1	0	0	0	0	0	16-3584
+chrM	13520	1	0	0	1	0	0	0	16-3584
+chrM	13521	1	0	0	1	0	0	0	16-3584
+chrM	13522	1	0	0	1	0	0	0	16-3584
+chrM	13523	1	0	0	1	0	0	0	16-3584
+chrM	13524	1	0	0	1	0	0	0	16-3584
+chrM	13525	1	0	0	1	0	0	0	16-3584
+chrM	13526	1	0	0	1	0	0	0	16-3584
+chrM	13527	1	0	1	0	0	0	0	16-3584
+chrM	13528	1	0	0	1	0	0	0	16-3584
+chrM	13529	1	0	0	1	0	0	0	16-3584
+chrM	13530	1	0	1	0	0	0	0	16-3584
+chrM	13531	1	1	0	0	0	0	0	16-3584
+chrM	13532	1	1	0	0	0	0	0	16-3584
+chrM	13533	1	1	0	0	0	0	0	16-3584
+chrM	13534	1	0	0	1	0	0	0	16-3584
+chrM	13535	1	1	0	0	0	0	0	16-3584
+chrM	13536	1	0	0	0	1	0	0	16-3584
+chrM	13537	1	0	0	1	0	0	0	16-3584
+chrM	13538	1	0	0	1	0	0	0	16-3584
+chrM	13539	1	0	1	0	0	0	0	16-3584
+chrM	13540	1	0	0	0	1	0	0	16-3584
+chrM	13541	1	0	0	1	0	0	0	16-3584
+chrM	13542	1	0	0	1	0	0	0	16-3584
+chrM	13543	1	1	0	0	0	0	0	16-3584
+chrM	13544	1	0	0	1	0	0	0	16-3584
+chrM	13545	1	0	0	0	1	0	0	16-3584
+chrM	13546	1	0	0	1	0	0	0	16-3584
+chrM	13547	1	0	1	0	0	0	0	16-3584
+chrM	13548	1	1	0	0	0	0	0	16-3584
+chrM	13549	1	0	0	0	1	0	0	16-3584
+chrM	13550	1	0	0	0	1	0	0	16-3584
+chrM	13551	1	1	0	0	0	0	0	16-3584
+chrM	13552	0	0	0	0	0	0	0	16-3584
+chrM	13553	0	0	0	0	0	0	0	16-3584
+chrM	13554	0	0	0	0	0	0	0	16-3584
+chrM	13555	0	0	0	0	0	0	0	16-3584
+chrM	13556	0	0	0	0	0	0	0	16-3584
+chrM	13557	0	0	0	0	0	0	0	16-3584
+chrM	13558	0	0	0	0	0	0	0	16-3584
+chrM	13559	0	0	0	0	0	0	0	16-3584
+chrM	13560	0	0	0	0	0	0	0	16-3584
+chrM	13561	0	0	0	0	0	0	0	16-3584
+chrM	13562	0	0	0	0	0	0	0	16-3584
+chrM	13563	0	0	0	0	0	0	0	16-3584
+chrM	13564	0	0	0	0	0	0	0	16-3584
+chrM	13565	0	0	0	0	0	0	0	16-3584
+chrM	13566	0	0	0	0	0	0	0	16-3584
+chrM	13567	0	0	0	0	0	0	0	16-3584
+chrM	13568	0	0	0	0	0	0	0	16-3584
+chrM	13569	0	0	0	0	0	0	0	16-3584
+chrM	13570	0	0	0	0	0	0	0	16-3584
+chrM	13571	0	0	0	0	0	0	0	16-3584
+chrM	13572	0	0	0	0	0	0	0	16-3584
+chrM	13573	0	0	0	0	0	0	0	16-3584
+chrM	13574	0	0	0	0	0	0	0	16-3584
+chrM	13575	0	0	0	0	0	0	0	16-3584
+chrM	13576	0	0	0	0	0	0	0	16-3584
+chrM	13577	0	0	0	0	0	0	0	16-3584
+chrM	13578	0	0	0	0	0	0	0	16-3584
+chrM	13579	0	0	0	0	0	0	0	16-3584
+chrM	13580	0	0	0	0	0	0	0	16-3584
+chrM	13581	0	0	0	0	0	0	0	16-3584
+chrM	13582	0	0	0	0	0	0	0	16-3584
+chrM	13583	0	0	0	0	0	0	0	16-3584
+chrM	13584	0	0	0	0	0	0	0	16-3584
+chrM	13585	0	0	0	0	0	0	0	16-3584
+chrM	13586	0	0	0	0	0	0	0	16-3584
+chrM	13587	0	0	0	0	0	0	0	16-3584
+chrM	13588	0	0	0	0	0	0	0	16-3584
+chrM	13589	0	0	0	0	0	0	0	16-3584
+chrM	13590	0	0	0	0	0	0	0	16-3584
+chrM	13591	0	0	0	0	0	0	0	16-3584
+chrM	13592	0	0	0	0	0	0	0	16-3584
+chrM	13593	0	0	0	0	0	0	0	16-3584
+chrM	13594	0	0	0	0	0	0	0	16-3584
+chrM	13595	0	0	0	0	0	0	0	16-3584
+chrM	13596	0	0	0	0	0	0	0	16-3584
+chrM	13597	0	0	0	0	0	0	0	16-3584
+chrM	13598	0	0	0	0	0	0	0	16-3584
+chrM	13599	0	0	0	0	0	0	0	16-3584
+chrM	13600	0	0	0	0	0	0	0	16-3584
+chrM	13601	0	0	0	0	0	0	0	16-3584
+chrM	13602	0	0	0	0	0	0	0	16-3584
+chrM	13603	0	0	0	0	0	0	0	16-3584
+chrM	13604	0	0	0	0	0	0	0	16-3584
+chrM	13605	0	0	0	0	0	0	0	16-3584
+chrM	13606	0	0	0	0	0	0	0	16-3584
+chrM	13607	0	0	0	0	0	0	0	16-3584
+chrM	13608	0	0	0	0	0	0	0	16-3584
+chrM	13609	0	0	0	0	0	0	0	16-3584
+chrM	13610	0	0	0	0	0	0	0	16-3584
+chrM	13611	0	0	0	0	0	0	0	16-3584
+chrM	13612	0	0	0	0	0	0	0	16-3584
+chrM	13613	0	0	0	0	0	0	0	16-3584
+chrM	13614	0	0	0	0	0	0	0	16-3584
+chrM	13615	0	0	0	0	0	0	0	16-3584
+chrM	13616	0	0	0	0	0	0	0	16-3584
+chrM	13617	0	0	0	0	0	0	0	16-3584
+chrM	13618	0	0	0	0	0	0	0	16-3584
+chrM	13619	0	0	0	0	0	0	0	16-3584
+chrM	13620	0	0	0	0	0	0	0	16-3584
+chrM	13621	0	0	0	0	0	0	0	16-3584
+chrM	13622	0	0	0	0	0	0	0	16-3584
+chrM	13623	0	0	0	0	0	0	0	16-3584
+chrM	13624	0	0	0	0	0	0	0	16-3584
+chrM	13625	0	0	0	0	0	0	0	16-3584
+chrM	13626	0	0	0	0	0	0	0	16-3584
+chrM	13627	0	0	0	0	0	0	0	16-3584
+chrM	13628	0	0	0	0	0	0	0	16-3584
+chrM	13629	0	0	0	0	0	0	0	16-3584
+chrM	13630	0	0	0	0	0	0	0	16-3584
+chrM	13631	0	0	0	0	0	0	0	16-3584
+chrM	13632	0	0	0	0	0	0	0	16-3584
+chrM	13633	0	0	0	0	0	0	0	16-3584
+chrM	13634	0	0	0	0	0	0	0	16-3584
+chrM	13635	0	0	0	0	0	0	0	16-3584
+chrM	13636	0	0	0	0	0	0	0	16-3584
+chrM	13637	0	0	0	0	0	0	0	16-3584
+chrM	13638	0	0	0	0	0	0	0	16-3584
+chrM	13639	0	0	0	0	0	0	0	16-3584
+chrM	13640	0	0	0	0	0	0	0	16-3584
+chrM	13641	0	0	0	0	0	0	0	16-3584
+chrM	13642	0	0	0	0	0	0	0	16-3584
+chrM	13643	0	0	0	0	0	0	0	16-3584
+chrM	13644	0	0	0	0	0	0	0	16-3584
+chrM	13645	0	0	0	0	0	0	0	16-3584
+chrM	13646	0	0	0	0	0	0	0	16-3584
+chrM	13647	0	0	0	0	0	0	0	16-3584
+chrM	13648	0	0	0	0	0	0	0	16-3584
+chrM	13649	0	0	0	0	0	0	0	16-3584
+chrM	13650	0	0	0	0	0	0	0	16-3584
+chrM	13651	0	0	0	0	0	0	0	16-3584
+chrM	13652	0	0	0	0	0	0	0	16-3584
+chrM	13653	0	0	0	0	0	0	0	16-3584
+chrM	13654	0	0	0	0	0	0	0	16-3584
+chrM	13655	0	0	0	0	0	0	0	16-3584
+chrM	13656	0	0	0	0	0	0	0	16-3584
+chrM	13657	0	0	0	0	0	0	0	16-3584
+chrM	13658	0	0	0	0	0	0	0	16-3584
+chrM	13659	0	0	0	0	0	0	0	16-3584
+chrM	13660	0	0	0	0	0	0	0	16-3584
+chrM	13661	0	0	0	0	0	0	0	16-3584
+chrM	13662	0	0	0	0	0	0	0	16-3584
+chrM	13663	0	0	0	0	0	0	0	16-3584
+chrM	13664	0	0	0	0	0	0	0	16-3584
+chrM	13665	0	0	0	0	0	0	0	16-3584
+chrM	13666	0	0	0	0	0	0	0	16-3584
+chrM	13667	0	0	0	0	0	0	0	16-3584
+chrM	13668	0	0	0	0	0	0	0	16-3584
+chrM	13669	0	0	0	0	0	0	0	16-3584
+chrM	13670	0	0	0	0	0	0	0	16-3584
+chrM	13671	0	0	0	0	0	0	0	16-3584
+chrM	13672	0	0	0	0	0	0	0	16-3584
+chrM	13673	0	0	0	0	0	0	0	16-3584
+chrM	13674	0	0	0	0	0	0	0	16-3584
+chrM	13675	0	0	0	0	0	0	0	16-3584
+chrM	13676	0	0	0	0	0	0	0	16-3584
+chrM	13677	0	0	0	0	0	0	0	16-3584
+chrM	13678	0	0	0	0	0	0	0	16-3584
+chrM	13679	0	0	0	0	0	0	0	16-3584
+chrM	13680	0	0	0	0	0	0	0	16-3584
+chrM	13681	0	0	0	0	0	0	0	16-3584
+chrM	13682	0	0	0	0	0	0	0	16-3584
+chrM	13683	0	0	0	0	0	0	0	16-3584
+chrM	13684	0	0	0	0	0	0	0	16-3584
+chrM	13685	0	0	0	0	0	0	0	16-3584
+chrM	13686	0	0	0	0	0	0	0	16-3584
+chrM	13687	0	0	0	0	0	0	0	16-3584
+chrM	13688	0	0	0	0	0	0	0	16-3584
+chrM	13689	0	0	0	0	0	0	0	16-3584
+chrM	13690	0	0	0	0	0	0	0	16-3584
+chrM	13691	0	0	0	0	0	0	0	16-3584
+chrM	13692	0	0	0	0	0	0	0	16-3584
+chrM	13693	0	0	0	0	0	0	0	16-3584
+chrM	13694	0	0	0	0	0	0	0	16-3584
+chrM	13695	0	0	0	0	0	0	0	16-3584
+chrM	13696	0	0	0	0	0	0	0	16-3584
+chrM	13697	0	0	0	0	0	0	0	16-3584
+chrM	13698	0	0	0	0	0	0	0	16-3584
+chrM	13699	0	0	0	0	0	0	0	16-3584
+chrM	13700	0	0	0	0	0	0	0	16-3584
+chrM	13701	0	0	0	0	0	0	0	16-3584
+chrM	13702	0	0	0	0	0	0	0	16-3584
+chrM	13703	0	0	0	0	0	0	0	16-3584
+chrM	13704	0	0	0	0	0	0	0	16-3584
+chrM	13705	0	0	0	0	0	0	0	16-3584
+chrM	13706	0	0	0	0	0	0	0	16-3584
+chrM	13707	0	0	0	0	0	0	0	16-3584
+chrM	13708	0	0	0	0	0	0	0	16-3584
+chrM	13709	0	0	0	0	0	0	0	16-3584
+chrM	13710	0	0	0	0	0	0	0	16-3584
+chrM	13711	0	0	0	0	0	0	0	16-3584
+chrM	13712	0	0	0	0	0	0	0	16-3584
+chrM	13713	0	0	0	0	0	0	0	16-3584
+chrM	13714	0	0	0	0	0	0	0	16-3584
+chrM	13715	0	0	0	0	0	0	0	16-3584
+chrM	13716	0	0	0	0	0	0	0	16-3584
+chrM	13717	0	0	0	0	0	0	0	16-3584
+chrM	13718	0	0	0	0	0	0	0	16-3584
+chrM	13719	0	0	0	0	0	0	0	16-3584
+chrM	13720	0	0	0	0	0	0	0	16-3584
+chrM	13721	0	0	0	0	0	0	0	16-3584
+chrM	13722	0	0	0	0	0	0	0	16-3584
+chrM	13723	0	0	0	0	0	0	0	16-3584
+chrM	13724	0	0	0	0	0	0	0	16-3584
+chrM	13725	0	0	0	0	0	0	0	16-3584
+chrM	13726	0	0	0	0	0	0	0	16-3584
+chrM	13727	0	0	0	0	0	0	0	16-3584
+chrM	13728	0	0	0	0	0	0	0	16-3584
+chrM	13729	0	0	0	0	0	0	0	16-3584
+chrM	13730	0	0	0	0	0	0	0	16-3584
+chrM	13731	0	0	0	0	0	0	0	16-3584
+chrM	13732	0	0	0	0	0	0	0	16-3584
+chrM	13733	0	0	0	0	0	0	0	16-3584
+chrM	13734	0	0	0	0	0	0	0	16-3584
+chrM	13735	0	0	0	0	0	0	0	16-3584
+chrM	13736	0	0	0	0	0	0	0	16-3584
+chrM	13737	0	0	0	0	0	0	0	16-3584
+chrM	13738	0	0	0	0	0	0	0	16-3584
+chrM	13739	0	0	0	0	0	0	0	16-3584
+chrM	13740	0	0	0	0	0	0	0	16-3584
+chrM	13741	0	0	0	0	0	0	0	16-3584
+chrM	13742	0	0	0	0	0	0	0	16-3584
+chrM	13743	0	0	0	0	0	0	0	16-3584
+chrM	13744	0	0	0	0	0	0	0	16-3584
+chrM	13745	0	0	0	0	0	0	0	16-3584
+chrM	13746	0	0	0	0	0	0	0	16-3584
+chrM	13747	0	0	0	0	0	0	0	16-3584
+chrM	13748	0	0	0	0	0	0	0	16-3584
+chrM	13749	0	0	0	0	0	0	0	16-3584
+chrM	13750	0	0	0	0	0	0	0	16-3584
+chrM	13751	0	0	0	0	0	0	0	16-3584
+chrM	13752	0	0	0	0	0	0	0	16-3584
+chrM	13753	0	0	0	0	0	0	0	16-3584
+chrM	13754	0	0	0	0	0	0	0	16-3584
+chrM	13755	0	0	0	0	0	0	0	16-3584
+chrM	13756	0	0	0	0	0	0	0	16-3584
+chrM	13757	0	0	0	0	0	0	0	16-3584
+chrM	13758	0	0	0	0	0	0	0	16-3584
+chrM	13759	0	0	0	0	0	0	0	16-3584
+chrM	13760	0	0	0	0	0	0	0	16-3584
+chrM	13761	0	0	0	0	0	0	0	16-3584
+chrM	13762	0	0	0	0	0	0	0	16-3584
+chrM	13763	0	0	0	0	0	0	0	16-3584
+chrM	13764	0	0	0	0	0	0	0	16-3584
+chrM	13765	0	0	0	0	0	0	0	16-3584
+chrM	13766	0	0	0	0	0	0	0	16-3584
+chrM	13767	0	0	0	0	0	0	0	16-3584
+chrM	13768	0	0	0	0	0	0	0	16-3584
+chrM	13769	0	0	0	0	0	0	0	16-3584
+chrM	13770	0	0	0	0	0	0	0	16-3584
+chrM	13771	0	0	0	0	0	0	0	16-3584
+chrM	13772	0	0	0	0	0	0	0	16-3584
+chrM	13773	0	0	0	0	0	0	0	16-3584
+chrM	13774	0	0	0	0	0	0	0	16-3584
+chrM	13775	0	0	0	0	0	0	0	16-3584
+chrM	13776	0	0	0	0	0	0	0	16-3584
+chrM	13777	0	0	0	0	0	0	0	16-3584
+chrM	13778	0	0	0	0	0	0	0	16-3584
+chrM	13779	0	0	0	0	0	0	0	16-3584
+chrM	13780	0	0	0	0	0	0	0	16-3584
+chrM	13781	0	0	0	0	0	0	0	16-3584
+chrM	13782	0	0	0	0	0	0	0	16-3584
+chrM	13783	0	0	0	0	0	0	0	16-3584
+chrM	13784	0	0	0	0	0	0	0	16-3584
+chrM	13785	0	0	0	0	0	0	0	16-3584
+chrM	13786	0	0	0	0	0	0	0	16-3584
+chrM	13787	0	0	0	0	0	0	0	16-3584
+chrM	13788	0	0	0	0	0	0	0	16-3584
+chrM	13789	0	0	0	0	0	0	0	16-3584
+chrM	13790	0	0	0	0	0	0	0	16-3584
+chrM	13791	0	0	0	0	0	0	0	16-3584
+chrM	13792	0	0	0	0	0	0	0	16-3584
+chrM	13793	0	0	0	0	0	0	0	16-3584
+chrM	13794	0	0	0	0	0	0	0	16-3584
+chrM	13795	0	0	0	0	0	0	0	16-3584
+chrM	13796	0	0	0	0	0	0	0	16-3584
+chrM	13797	0	0	0	0	0	0	0	16-3584
+chrM	13798	0	0	0	0	0	0	0	16-3584
+chrM	13799	0	0	0	0	0	0	0	16-3584
+chrM	13800	0	0	0	0	0	0	0	16-3584
+chrM	13801	0	0	0	0	0	0	0	16-3584
+chrM	13802	0	0	0	0	0	0	0	16-3584
+chrM	13803	0	0	0	0	0	0	0	16-3584
+chrM	13804	0	0	0	0	0	0	0	16-3584
+chrM	13805	0	0	0	0	0	0	0	16-3584
+chrM	13806	0	0	0	0	0	0	0	16-3584
+chrM	13807	0	0	0	0	0	0	0	16-3584
+chrM	13808	0	0	0	0	0	0	0	16-3584
+chrM	13809	0	0	0	0	0	0	0	16-3584
+chrM	13810	0	0	0	0	0	0	0	16-3584
+chrM	13811	0	0	0	0	0	0	0	16-3584
+chrM	13812	0	0	0	0	0	0	0	16-3584
+chrM	13813	0	0	0	0	0	0	0	16-3584
+chrM	13814	0	0	0	0	0	0	0	16-3584
+chrM	13815	0	0	0	0	0	0	0	16-3584
+chrM	13816	0	0	0	0	0	0	0	16-3584
+chrM	13817	0	0	0	0	0	0	0	16-3584
+chrM	13818	0	0	0	0	0	0	0	16-3584
+chrM	13819	0	0	0	0	0	0	0	16-3584
+chrM	13820	0	0	0	0	0	0	0	16-3584
+chrM	13821	0	0	0	0	0	0	0	16-3584
+chrM	13822	0	0	0	0	0	0	0	16-3584
+chrM	13823	0	0	0	0	0	0	0	16-3584
+chrM	13824	0	0	0	0	0	0	0	16-3584
+chrM	13825	0	0	0	0	0	0	0	16-3584
+chrM	13826	0	0	0	0	0	0	0	16-3584
+chrM	13827	0	0	0	0	0	0	0	16-3584
+chrM	13828	0	0	0	0	0	0	0	16-3584
+chrM	13829	0	0	0	0	0	0	0	16-3584
+chrM	13830	0	0	0	0	0	0	0	16-3584
+chrM	13831	0	0	0	0	0	0	0	16-3584
+chrM	13832	0	0	0	0	0	0	0	16-3584
+chrM	13833	0	0	0	0	0	0	0	16-3584
+chrM	13834	0	0	0	0	0	0	0	16-3584
+chrM	13835	0	0	0	0	0	0	0	16-3584
+chrM	13836	0	0	0	0	0	0	0	16-3584
+chrM	13837	0	0	0	0	0	0	0	16-3584
+chrM	13838	0	0	0	0	0	0	0	16-3584
+chrM	13839	0	0	0	0	0	0	0	16-3584
+chrM	13840	0	0	0	0	0	0	0	16-3584
+chrM	13841	0	0	0	0	0	0	0	16-3584
+chrM	13842	0	0	0	0	0	0	0	16-3584
+chrM	13843	0	0	0	0	0	0	0	16-3584
+chrM	13844	0	0	0	0	0	0	0	16-3584
+chrM	13845	0	0	0	0	0	0	0	16-3584
+chrM	13846	0	0	0	0	0	0	0	16-3584
+chrM	13847	0	0	0	0	0	0	0	16-3584
+chrM	13848	0	0	0	0	0	0	0	16-3584
+chrM	13849	0	0	0	0	0	0	0	16-3584
+chrM	13850	0	0	0	0	0	0	0	16-3584
+chrM	13851	0	0	0	0	0	0	0	16-3584
+chrM	13852	0	0	0	0	0	0	0	16-3584
+chrM	13853	0	0	0	0	0	0	0	16-3584
+chrM	13854	0	0	0	0	0	0	0	16-3584
+chrM	13855	0	0	0	0	0	0	0	16-3584
+chrM	13856	0	0	0	0	0	0	0	16-3584
+chrM	13857	0	0	0	0	0	0	0	16-3584
+chrM	13858	0	0	0	0	0	0	0	16-3584
+chrM	13859	0	0	0	0	0	0	0	16-3584
+chrM	13860	0	0	0	0	0	0	0	16-3584
+chrM	13861	0	0	0	0	0	0	0	16-3584
+chrM	13862	0	0	0	0	0	0	0	16-3584
+chrM	13863	0	0	0	0	0	0	0	16-3584
+chrM	13864	0	0	0	0	0	0	0	16-3584
+chrM	13865	0	0	0	0	0	0	0	16-3584
+chrM	13866	0	0	0	0	0	0	0	16-3584
+chrM	13867	0	0	0	0	0	0	0	16-3584
+chrM	13868	0	0	0	0	0	0	0	16-3584
+chrM	13869	0	0	0	0	0	0	0	16-3584
+chrM	13870	0	0	0	0	0	0	0	16-3584
+chrM	13871	0	0	0	0	0	0	0	16-3584
+chrM	13872	0	0	0	0	0	0	0	16-3584
+chrM	13873	0	0	0	0	0	0	0	16-3584
+chrM	13874	0	0	0	0	0	0	0	16-3584
+chrM	13875	0	0	0	0	0	0	0	16-3584
+chrM	13876	0	0	0	0	0	0	0	16-3584
+chrM	13877	0	0	0	0	0	0	0	16-3584
+chrM	13878	0	0	0	0	0	0	0	16-3584
+chrM	13879	0	0	0	0	0	0	0	16-3584
+chrM	13880	0	0	0	0	0	0	0	16-3584
+chrM	13881	0	0	0	0	0	0	0	16-3584
+chrM	13882	0	0	0	0	0	0	0	16-3584
+chrM	13883	0	0	0	0	0	0	0	16-3584
+chrM	13884	0	0	0	0	0	0	0	16-3584
+chrM	13885	0	0	0	0	0	0	0	16-3584
+chrM	13886	0	0	0	0	0	0	0	16-3584
+chrM	13887	0	0	0	0	0	0	0	16-3584
+chrM	13888	0	0	0	0	0	0	0	16-3584
+chrM	13889	0	0	0	0	0	0	0	16-3584
+chrM	13890	0	0	0	0	0	0	0	16-3584
+chrM	13891	0	0	0	0	0	0	0	16-3584
+chrM	13892	0	0	0	0	0	0	0	16-3584
+chrM	13893	0	0	0	0	0	0	0	16-3584
+chrM	13894	0	0	0	0	0	0	0	16-3584
+chrM	13895	0	0	0	0	0	0	0	16-3584
+chrM	13896	0	0	0	0	0	0	0	16-3584
+chrM	13897	0	0	0	0	0	0	0	16-3584
+chrM	13898	0	0	0	0	0	0	0	16-3584
+chrM	13899	0	0	0	0	0	0	0	16-3584
+chrM	13900	0	0	0	0	0	0	0	16-3584
+chrM	13901	0	0	0	0	0	0	0	16-3584
+chrM	13902	0	0	0	0	0	0	0	16-3584
+chrM	13903	0	0	0	0	0	0	0	16-3584
+chrM	13904	0	0	0	0	0	0	0	16-3584
+chrM	13905	0	0	0	0	0	0	0	16-3584
+chrM	13906	0	0	0	0	0	0	0	16-3584
+chrM	13907	0	0	0	0	0	0	0	16-3584
+chrM	13908	0	0	0	0	0	0	0	16-3584
+chrM	13909	0	0	0	0	0	0	0	16-3584
+chrM	13910	0	0	0	0	0	0	0	16-3584
+chrM	13911	0	0	0	0	0	0	0	16-3584
+chrM	13912	0	0	0	0	0	0	0	16-3584
+chrM	13913	0	0	0	0	0	0	0	16-3584
+chrM	13914	0	0	0	0	0	0	0	16-3584
+chrM	13915	0	0	0	0	0	0	0	16-3584
+chrM	13916	0	0	0	0	0	0	0	16-3584
+chrM	13917	0	0	0	0	0	0	0	16-3584
+chrM	13918	0	0	0	0	0	0	0	16-3584
+chrM	13919	0	0	0	0	0	0	0	16-3584
+chrM	13920	0	0	0	0	0	0	0	16-3584
+chrM	13921	0	0	0	0	0	0	0	16-3584
+chrM	13922	0	0	0	0	0	0	0	16-3584
+chrM	13923	0	0	0	0	0	0	0	16-3584
+chrM	13924	0	0	0	0	0	0	0	16-3584
+chrM	13925	0	0	0	0	0	0	0	16-3584
+chrM	13926	0	0	0	0	0	0	0	16-3584
+chrM	13927	0	0	0	0	0	0	0	16-3584
+chrM	13928	0	0	0	0	0	0	0	16-3584
+chrM	13929	0	0	0	0	0	0	0	16-3584
+chrM	13930	0	0	0	0	0	0	0	16-3584
+chrM	13931	0	0	0	0	0	0	0	16-3584
+chrM	13932	0	0	0	0	0	0	0	16-3584
+chrM	13933	0	0	0	0	0	0	0	16-3584
+chrM	13934	0	0	0	0	0	0	0	16-3584
+chrM	13935	0	0	0	0	0	0	0	16-3584
+chrM	13936	0	0	0	0	0	0	0	16-3584
+chrM	13937	0	0	0	0	0	0	0	16-3584
+chrM	13938	0	0	0	0	0	0	0	16-3584
+chrM	13939	0	0	0	0	0	0	0	16-3584
+chrM	13940	0	0	0	0	0	0	0	16-3584
+chrM	13941	0	0	0	0	0	0	0	16-3584
+chrM	13942	0	0	0	0	0	0	0	16-3584
+chrM	13943	0	0	0	0	0	0	0	16-3584
+chrM	13944	0	0	0	0	0	0	0	16-3584
+chrM	13945	0	0	0	0	0	0	0	16-3584
+chrM	13946	0	0	0	0	0	0	0	16-3584
+chrM	13947	0	0	0	0	0	0	0	16-3584
+chrM	13948	0	0	0	0	0	0	0	16-3584
+chrM	13949	0	0	0	0	0	0	0	16-3584
+chrM	13950	0	0	0	0	0	0	0	16-3584
+chrM	13951	0	0	0	0	0	0	0	16-3584
+chrM	13952	0	0	0	0	0	0	0	16-3584
+chrM	13953	0	0	0	0	0	0	0	16-3584
+chrM	13954	0	0	0	0	0	0	0	16-3584
+chrM	13955	0	0	0	0	0	0	0	16-3584
+chrM	13956	0	0	0	0	0	0	0	16-3584
+chrM	13957	0	0	0	0	0	0	0	16-3584
+chrM	13958	0	0	0	0	0	0	0	16-3584
+chrM	13959	0	0	0	0	0	0	0	16-3584
+chrM	13960	0	0	0	0	0	0	0	16-3584
+chrM	13961	0	0	0	0	0	0	0	16-3584
+chrM	13962	0	0	0	0	0	0	0	16-3584
+chrM	13963	0	0	0	0	0	0	0	16-3584
+chrM	13964	0	0	0	0	0	0	0	16-3584
+chrM	13965	0	0	0	0	0	0	0	16-3584
+chrM	13966	0	0	0	0	0	0	0	16-3584
+chrM	13967	0	0	0	0	0	0	0	16-3584
+chrM	13968	0	0	0	0	0	0	0	16-3584
+chrM	13969	0	0	0	0	0	0	0	16-3584
+chrM	13970	0	0	0	0	0	0	0	16-3584
+chrM	13971	0	0	0	0	0	0	0	16-3584
+chrM	13972	0	0	0	0	0	0	0	16-3584
+chrM	13973	0	0	0	0	0	0	0	16-3584
+chrM	13974	0	0	0	0	0	0	0	16-3584
+chrM	13975	0	0	0	0	0	0	0	16-3584
+chrM	13976	0	0	0	0	0	0	0	16-3584
+chrM	13977	0	0	0	0	0	0	0	16-3584
+chrM	13978	0	0	0	0	0	0	0	16-3584
+chrM	13979	0	0	0	0	0	0	0	16-3584
+chrM	13980	0	0	0	0	0	0	0	16-3584
+chrM	13981	0	0	0	0	0	0	0	16-3584
+chrM	13982	0	0	0	0	0	0	0	16-3584
+chrM	13983	0	0	0	0	0	0	0	16-3584
+chrM	13984	0	0	0	0	0	0	0	16-3584
+chrM	13985	0	0	0	0	0	0	0	16-3584
+chrM	13986	0	0	0	0	0	0	0	16-3584
+chrM	13987	0	0	0	0	0	0	0	16-3584
+chrM	13988	0	0	0	0	0	0	0	16-3584
+chrM	13989	0	0	0	0	0	0	0	16-3584
+chrM	13990	0	0	0	0	0	0	0	16-3584
+chrM	13991	0	0	0	0	0	0	0	16-3584
+chrM	13992	0	0	0	0	0	0	0	16-3584
+chrM	13993	0	0	0	0	0	0	0	16-3584
+chrM	13994	0	0	0	0	0	0	0	16-3584
+chrM	13995	0	0	0	0	0	0	0	16-3584
+chrM	13996	0	0	0	0	0	0	0	16-3584
+chrM	13997	0	0	0	0	0	0	0	16-3584
+chrM	13998	0	0	0	0	0	0	0	16-3584
+chrM	13999	0	0	0	0	0	0	0	16-3584
+chrM	14000	0	0	0	0	0	0	0	16-3584
+chrM	14001	0	0	0	0	0	0	0	16-3584
+chrM	14002	0	0	0	0	0	0	0	16-3584
+chrM	14003	0	0	0	0	0	0	0	16-3584
+chrM	14004	0	0	0	0	0	0	0	16-3584
+chrM	14005	0	0	0	0	0	0	0	16-3584
+chrM	14006	0	0	0	0	0	0	0	16-3584
+chrM	14007	0	0	0	0	0	0	0	16-3584
+chrM	14008	0	0	0	0	0	0	0	16-3584
+chrM	14009	0	0	0	0	0	0	0	16-3584
+chrM	14010	0	0	0	0	0	0	0	16-3584
+chrM	14011	0	0	0	0	0	0	0	16-3584
+chrM	14012	0	0	0	0	0	0	0	16-3584
+chrM	14013	0	0	0	0	0	0	0	16-3584
+chrM	14014	0	0	0	0	0	0	0	16-3584
+chrM	14015	0	0	0	0	0	0	0	16-3584
+chrM	14016	0	0	0	0	0	0	0	16-3584
+chrM	14017	0	0	0	0	0	0	0	16-3584
+chrM	14018	0	0	0	0	0	0	0	16-3584
+chrM	14019	0	0	0	0	0	0	0	16-3584
+chrM	14020	0	0	0	0	0	0	0	16-3584
+chrM	14021	0	0	0	0	0	0	0	16-3584
+chrM	14022	0	0	0	0	0	0	0	16-3584
+chrM	14023	0	0	0	0	0	0	0	16-3584
+chrM	14024	0	0	0	0	0	0	0	16-3584
+chrM	14025	0	0	0	0	0	0	0	16-3584
+chrM	14026	0	0	0	0	0	0	0	16-3584
+chrM	14027	0	0	0	0	0	0	0	16-3584
+chrM	14028	0	0	0	0	0	0	0	16-3584
+chrM	14029	0	0	0	0	0	0	0	16-3584
+chrM	14030	0	0	0	0	0	0	0	16-3584
+chrM	14031	0	0	0	0	0	0	0	16-3584
+chrM	14032	0	0	0	0	0	0	0	16-3584
+chrM	14033	0	0	0	0	0	0	0	16-3584
+chrM	14034	0	0	0	0	0	0	0	16-3584
+chrM	14035	0	0	0	0	0	0	0	16-3584
+chrM	14036	0	0	0	0	0	0	0	16-3584
+chrM	14037	0	0	0	0	0	0	0	16-3584
+chrM	14038	0	0	0	0	0	0	0	16-3584
+chrM	14039	0	0	0	0	0	0	0	16-3584
+chrM	14040	0	0	0	0	0	0	0	16-3584
+chrM	14041	0	0	0	0	0	0	0	16-3584
+chrM	14042	0	0	0	0	0	0	0	16-3584
+chrM	14043	0	0	0	0	0	0	0	16-3584
+chrM	14044	0	0	0	0	0	0	0	16-3584
+chrM	14045	0	0	0	0	0	0	0	16-3584
+chrM	14046	0	0	0	0	0	0	0	16-3584
+chrM	14047	0	0	0	0	0	0	0	16-3584
+chrM	14048	0	0	0	0	0	0	0	16-3584
+chrM	14049	0	0	0	0	0	0	0	16-3584
+chrM	14050	0	0	0	0	0	0	0	16-3584
+chrM	14051	0	0	0	0	0	0	0	16-3584
+chrM	14052	0	0	0	0	0	0	0	16-3584
+chrM	14053	0	0	0	0	0	0	0	16-3584
+chrM	14054	0	0	0	0	0	0	0	16-3584
+chrM	14055	0	0	0	0	0	0	0	16-3584
+chrM	14056	0	0	0	0	0	0	0	16-3584
+chrM	14057	0	0	0	0	0	0	0	16-3584
+chrM	14058	0	0	0	0	0	0	0	16-3584
+chrM	14059	0	0	0	0	0	0	0	16-3584
+chrM	14060	0	0	0	0	0	0	0	16-3584
+chrM	14061	0	0	0	0	0	0	0	16-3584
+chrM	14062	0	0	0	0	0	0	0	16-3584
+chrM	14063	0	0	0	0	0	0	0	16-3584
+chrM	14064	0	0	0	0	0	0	0	16-3584
+chrM	14065	0	0	0	0	0	0	0	16-3584
+chrM	14066	0	0	0	0	0	0	0	16-3584
+chrM	14067	0	0	0	0	0	0	0	16-3584
+chrM	14068	0	0	0	0	0	0	0	16-3584
+chrM	14069	0	0	0	0	0	0	0	16-3584
+chrM	14070	0	0	0	0	0	0	0	16-3584
+chrM	14071	0	0	0	0	0	0	0	16-3584
+chrM	14072	0	0	0	0	0	0	0	16-3584
+chrM	14073	0	0	0	0	0	0	0	16-3584
+chrM	14074	0	0	0	0	0	0	0	16-3584
+chrM	14075	0	0	0	0	0	0	0	16-3584
+chrM	14076	0	0	0	0	0	0	0	16-3584
+chrM	14077	0	0	0	0	0	0	0	16-3584
+chrM	14078	0	0	0	0	0	0	0	16-3584
+chrM	14079	0	0	0	0	0	0	0	16-3584
+chrM	14080	0	0	0	0	0	0	0	16-3584
+chrM	14081	0	0	0	0	0	0	0	16-3584
+chrM	14082	0	0	0	0	0	0	0	16-3584
+chrM	14083	0	0	0	0	0	0	0	16-3584
+chrM	14084	0	0	0	0	0	0	0	16-3584
+chrM	14085	0	0	0	0	0	0	0	16-3584
+chrM	14086	0	0	0	0	0	0	0	16-3584
+chrM	14087	0	0	0	0	0	0	0	16-3584
+chrM	14088	0	0	0	0	0	0	0	16-3584
+chrM	14089	0	0	0	0	0	0	0	16-3584
+chrM	14090	0	0	0	0	0	0	0	16-3584
+chrM	14091	0	0	0	0	0	0	0	16-3584
+chrM	14092	0	0	0	0	0	0	0	16-3584
+chrM	14093	0	0	0	0	0	0	0	16-3584
+chrM	14094	0	0	0	0	0	0	0	16-3584
+chrM	14095	0	0	0	0	0	0	0	16-3584
+chrM	14096	0	0	0	0	0	0	0	16-3584
+chrM	14097	0	0	0	0	0	0	0	16-3584
+chrM	14098	0	0	0	0	0	0	0	16-3584
+chrM	14099	0	0	0	0	0	0	0	16-3584
+chrM	14100	0	0	0	0	0	0	0	16-3584
+chrM	14101	0	0	0	0	0	0	0	16-3584
+chrM	14102	0	0	0	0	0	0	0	16-3584
+chrM	14103	0	0	0	0	0	0	0	16-3584
+chrM	14104	0	0	0	0	0	0	0	16-3584
+chrM	14105	0	0	0	0	0	0	0	16-3584
+chrM	14106	0	0	0	0	0	0	0	16-3584
+chrM	14107	0	0	0	0	0	0	0	16-3584
+chrM	14108	0	0	0	0	0	0	0	16-3584
+chrM	14109	0	0	0	0	0	0	0	16-3584
+chrM	14110	0	0	0	0	0	0	0	16-3584
+chrM	14111	0	0	0	0	0	0	0	16-3584
+chrM	14112	0	0	0	0	0	0	0	16-3584
+chrM	14113	0	0	0	0	0	0	0	16-3584
+chrM	14114	0	0	0	0	0	0	0	16-3584
+chrM	14115	0	0	0	0	0	0	0	16-3584
+chrM	14116	0	0	0	0	0	0	0	16-3584
+chrM	14117	0	0	0	0	0	0	0	16-3584
+chrM	14118	0	0	0	0	0	0	0	16-3584
+chrM	14119	0	0	0	0	0	0	0	16-3584
+chrM	14120	0	0	0	0	0	0	0	16-3584
+chrM	14121	0	0	0	0	0	0	0	16-3584
+chrM	14122	0	0	0	0	0	0	0	16-3584
+chrM	14123	0	0	0	0	0	0	0	16-3584
+chrM	14124	0	0	0	0	0	0	0	16-3584
+chrM	14125	0	0	0	0	0	0	0	16-3584
+chrM	14126	0	0	0	0	0	0	0	16-3584
+chrM	14127	0	0	0	0	0	0	0	16-3584
+chrM	14128	0	0	0	0	0	0	0	16-3584
+chrM	14129	0	0	0	0	0	0	0	16-3584
+chrM	14130	0	0	0	0	0	0	0	16-3584
+chrM	14131	0	0	0	0	0	0	0	16-3584
+chrM	14132	0	0	0	0	0	0	0	16-3584
+chrM	14133	0	0	0	0	0	0	0	16-3584
+chrM	14134	0	0	0	0	0	0	0	16-3584
+chrM	14135	0	0	0	0	0	0	0	16-3584
+chrM	14136	0	0	0	0	0	0	0	16-3584
+chrM	14137	0	0	0	0	0	0	0	16-3584
+chrM	14138	0	0	0	0	0	0	0	16-3584
+chrM	14139	0	0	0	0	0	0	0	16-3584
+chrM	14140	0	0	0	0	0	0	0	16-3584
+chrM	14141	0	0	0	0	0	0	0	16-3584
+chrM	14142	0	0	0	0	0	0	0	16-3584
+chrM	14143	0	0	0	0	0	0	0	16-3584
+chrM	14144	0	0	0	0	0	0	0	16-3584
+chrM	14145	0	0	0	0	0	0	0	16-3584
+chrM	14146	0	0	0	0	0	0	0	16-3584
+chrM	14147	0	0	0	0	0	0	0	16-3584
+chrM	14148	0	0	0	0	0	0	0	16-3584
+chrM	14149	0	0	0	0	0	0	0	16-3584
+chrM	14150	0	0	0	0	0	0	0	16-3584
+chrM	14151	0	0	0	0	0	0	0	16-3584
+chrM	14152	0	0	0	0	0	0	0	16-3584
+chrM	14153	0	0	0	0	0	0	0	16-3584
+chrM	14154	0	0	0	0	0	0	0	16-3584
+chrM	14155	0	0	0	0	0	0	0	16-3584
+chrM	14156	0	0	0	0	0	0	0	16-3584
+chrM	14157	0	0	0	0	0	0	0	16-3584
+chrM	14158	0	0	0	0	0	0	0	16-3584
+chrM	14159	0	0	0	0	0	0	0	16-3584
+chrM	14160	0	0	0	0	0	0	0	16-3584
+chrM	14161	0	0	0	0	0	0	0	16-3584
+chrM	14162	0	0	0	0	0	0	0	16-3584
+chrM	14163	0	0	0	0	0	0	0	16-3584
+chrM	14164	0	0	0	0	0	0	0	16-3584
+chrM	14165	0	0	0	0	0	0	0	16-3584
+chrM	14166	0	0	0	0	0	0	0	16-3584
+chrM	14167	0	0	0	0	0	0	0	16-3584
+chrM	14168	0	0	0	0	0	0	0	16-3584
+chrM	14169	0	0	0	0	0	0	0	16-3584
+chrM	14170	0	0	0	0	0	0	0	16-3584
+chrM	14171	0	0	0	0	0	0	0	16-3584
+chrM	14172	0	0	0	0	0	0	0	16-3584
+chrM	14173	0	0	0	0	0	0	0	16-3584
+chrM	14174	0	0	0	0	0	0	0	16-3584
+chrM	14175	0	0	0	0	0	0	0	16-3584
+chrM	14176	0	0	0	0	0	0	0	16-3584
+chrM	14177	0	0	0	0	0	0	0	16-3584
+chrM	14178	0	0	0	0	0	0	0	16-3584
+chrM	14179	0	0	0	0	0	0	0	16-3584
+chrM	14180	0	0	0	0	0	0	0	16-3584
+chrM	14181	0	0	0	0	0	0	0	16-3584
+chrM	14182	0	0	0	0	0	0	0	16-3584
+chrM	14183	0	0	0	0	0	0	0	16-3584
+chrM	14184	0	0	0	0	0	0	0	16-3584
+chrM	14185	0	0	0	0	0	0	0	16-3584
+chrM	14186	0	0	0	0	0	0	0	16-3584
+chrM	14187	0	0	0	0	0	0	0	16-3584
+chrM	14188	0	0	0	0	0	0	0	16-3584
+chrM	14189	0	0	0	0	0	0	0	16-3584
+chrM	14190	0	0	0	0	0	0	0	16-3584
+chrM	14191	0	0	0	0	0	0	0	16-3584
+chrM	14192	0	0	0	0	0	0	0	16-3584
+chrM	14193	0	0	0	0	0	0	0	16-3584
+chrM	14194	0	0	0	0	0	0	0	16-3584
+chrM	14195	0	0	0	0	0	0	0	16-3584
+chrM	14196	0	0	0	0	0	0	0	16-3584
+chrM	14197	0	0	0	0	0	0	0	16-3584
+chrM	14198	0	0	0	0	0	0	0	16-3584
+chrM	14199	0	0	0	0	0	0	0	16-3584
+chrM	14200	0	0	0	0	0	0	0	16-3584
+chrM	14201	0	0	0	0	0	0	0	16-3584
+chrM	14202	0	0	0	0	0	0	0	16-3584
+chrM	14203	0	0	0	0	0	0	0	16-3584
+chrM	14204	0	0	0	0	0	0	0	16-3584
+chrM	14205	0	0	0	0	0	0	0	16-3584
+chrM	14206	0	0	0	0	0	0	0	16-3584
+chrM	14207	0	0	0	0	0	0	0	16-3584
+chrM	14208	0	0	0	0	0	0	0	16-3584
+chrM	14209	0	0	0	0	0	0	0	16-3584
+chrM	14210	0	0	0	0	0	0	0	16-3584
+chrM	14211	0	0	0	0	0	0	0	16-3584
+chrM	14212	0	0	0	0	0	0	0	16-3584
+chrM	14213	0	0	0	0	0	0	0	16-3584
+chrM	14214	0	0	0	0	0	0	0	16-3584
+chrM	14215	0	0	0	0	0	0	0	16-3584
+chrM	14216	0	0	0	0	0	0	0	16-3584
+chrM	14217	0	0	0	0	0	0	0	16-3584
+chrM	14218	0	0	0	0	0	0	0	16-3584
+chrM	14219	0	0	0	0	0	0	0	16-3584
+chrM	14220	0	0	0	0	0	0	0	16-3584
+chrM	14221	0	0	0	0	0	0	0	16-3584
+chrM	14222	0	0	0	0	0	0	0	16-3584
+chrM	14223	0	0	0	0	0	0	0	16-3584
+chrM	14224	0	0	0	0	0	0	0	16-3584
+chrM	14225	0	0	0	0	0	0	0	16-3584
+chrM	14226	0	0	0	0	0	0	0	16-3584
+chrM	14227	0	0	0	0	0	0	0	16-3584
+chrM	14228	0	0	0	0	0	0	0	16-3584
+chrM	14229	0	0	0	0	0	0	0	16-3584
+chrM	14230	0	0	0	0	0	0	0	16-3584
+chrM	14231	0	0	0	0	0	0	0	16-3584
+chrM	14232	0	0	0	0	0	0	0	16-3584
+chrM	14233	0	0	0	0	0	0	0	16-3584
+chrM	14234	0	0	0	0	0	0	0	16-3584
+chrM	14235	0	0	0	0	0	0	0	16-3584
+chrM	14236	0	0	0	0	0	0	0	16-3584
+chrM	14237	0	0	0	0	0	0	0	16-3584
+chrM	14238	0	0	0	0	0	0	0	16-3584
+chrM	14239	0	0	0	0	0	0	0	16-3584
+chrM	14240	0	0	0	0	0	0	0	16-3584
+chrM	14241	0	0	0	0	0	0	0	16-3584
+chrM	14242	0	0	0	0	0	0	0	16-3584
+chrM	14243	0	0	0	0	0	0	0	16-3584
+chrM	14244	0	0	0	0	0	0	0	16-3584
+chrM	14245	0	0	0	0	0	0	0	16-3584
+chrM	14246	0	0	0	0	0	0	0	16-3584
+chrM	14247	0	0	0	0	0	0	0	16-3584
+chrM	14248	0	0	0	0	0	0	0	16-3584
+chrM	14249	0	0	0	0	0	0	0	16-3584
+chrM	14250	0	0	0	0	0	0	0	16-3584
+chrM	14251	0	0	0	0	0	0	0	16-3584
+chrM	14252	0	0	0	0	0	0	0	16-3584
+chrM	14253	0	0	0	0	0	0	0	16-3584
+chrM	14254	0	0	0	0	0	0	0	16-3584
+chrM	14255	0	0	0	0	0	0	0	16-3584
+chrM	14256	0	0	0	0	0	0	0	16-3584
+chrM	14257	0	0	0	0	0	0	0	16-3584
+chrM	14258	0	0	0	0	0	0	0	16-3584
+chrM	14259	0	0	0	0	0	0	0	16-3584
+chrM	14260	0	0	0	0	0	0	0	16-3584
+chrM	14261	0	0	0	0	0	0	0	16-3584
+chrM	14262	0	0	0	0	0	0	0	16-3584
+chrM	14263	0	0	0	0	0	0	0	16-3584
+chrM	14264	0	0	0	0	0	0	0	16-3584
+chrM	14265	0	0	0	0	0	0	0	16-3584
+chrM	14266	0	0	0	0	0	0	0	16-3584
+chrM	14267	0	0	0	0	0	0	0	16-3584
+chrM	14268	0	0	0	0	0	0	0	16-3584
+chrM	14269	0	0	0	0	0	0	0	16-3584
+chrM	14270	0	0	0	0	0	0	0	16-3584
+chrM	14271	0	0	0	0	0	0	0	16-3584
+chrM	14272	0	0	0	0	0	0	0	16-3584
+chrM	14273	0	0	0	0	0	0	0	16-3584
+chrM	14274	0	0	0	0	0	0	0	16-3584
+chrM	14275	0	0	0	0	0	0	0	16-3584
+chrM	14276	0	0	0	0	0	0	0	16-3584
+chrM	14277	0	0	0	0	0	0	0	16-3584
+chrM	14278	0	0	0	0	0	0	0	16-3584
+chrM	14279	0	0	0	0	0	0	0	16-3584
+chrM	14280	0	0	0	0	0	0	0	16-3584
+chrM	14281	0	0	0	0	0	0	0	16-3584
+chrM	14282	0	0	0	0	0	0	0	16-3584
+chrM	14283	0	0	0	0	0	0	0	16-3584
+chrM	14284	0	0	0	0	0	0	0	16-3584
+chrM	14285	0	0	0	0	0	0	0	16-3584
+chrM	14286	0	0	0	0	0	0	0	16-3584
+chrM	14287	0	0	0	0	0	0	0	16-3584
+chrM	14288	0	0	0	0	0	0	0	16-3584
+chrM	14289	0	0	0	0	0	0	0	16-3584
+chrM	14290	0	0	0	0	0	0	0	16-3584
+chrM	14291	0	0	0	0	0	0	0	16-3584
+chrM	14292	0	0	0	0	0	0	0	16-3584
+chrM	14293	0	0	0	0	0	0	0	16-3584
+chrM	14294	0	0	0	0	0	0	0	16-3584
+chrM	14295	0	0	0	0	0	0	0	16-3584
+chrM	14296	0	0	0	0	0	0	0	16-3584
+chrM	14297	0	0	0	0	0	0	0	16-3584
+chrM	14298	0	0	0	0	0	0	0	16-3584
+chrM	14299	0	0	0	0	0	0	0	16-3584
+chrM	14300	0	0	0	0	0	0	0	16-3584
+chrM	14301	0	0	0	0	0	0	0	16-3584
+chrM	14302	0	0	0	0	0	0	0	16-3584
+chrM	14303	0	0	0	0	0	0	0	16-3584
+chrM	14304	0	0	0	0	0	0	0	16-3584
+chrM	14305	0	0	0	0	0	0	0	16-3584
+chrM	14306	0	0	0	0	0	0	0	16-3584
+chrM	14307	0	0	0	0	0	0	0	16-3584
+chrM	14308	0	0	0	0	0	0	0	16-3584
+chrM	14309	0	0	0	0	0	0	0	16-3584
+chrM	14310	0	0	0	0	0	0	0	16-3584
+chrM	14311	0	0	0	0	0	0	0	16-3584
+chrM	14312	0	0	0	0	0	0	0	16-3584
+chrM	14313	0	0	0	0	0	0	0	16-3584
+chrM	14314	0	0	0	0	0	0	0	16-3584
+chrM	14315	0	0	0	0	0	0	0	16-3584
+chrM	14316	0	0	0	0	0	0	0	16-3584
+chrM	14317	0	0	0	0	0	0	0	16-3584
+chrM	14318	0	0	0	0	0	0	0	16-3584
+chrM	14319	0	0	0	0	0	0	0	16-3584
+chrM	14320	0	0	0	0	0	0	0	16-3584
+chrM	14321	0	0	0	0	0	0	0	16-3584
+chrM	14322	0	0	0	0	0	0	0	16-3584
+chrM	14323	0	0	0	0	0	0	0	16-3584
+chrM	14324	0	0	0	0	0	0	0	16-3584
+chrM	14325	0	0	0	0	0	0	0	16-3584
+chrM	14326	0	0	0	0	0	0	0	16-3584
+chrM	14327	0	0	0	0	0	0	0	16-3584
+chrM	14328	0	0	0	0	0	0	0	16-3584
+chrM	14329	0	0	0	0	0	0	0	16-3584
+chrM	14330	0	0	0	0	0	0	0	16-3584
+chrM	14331	0	0	0	0	0	0	0	16-3584
+chrM	14332	0	0	0	0	0	0	0	16-3584
+chrM	14333	0	0	0	0	0	0	0	16-3584
+chrM	14334	0	0	0	0	0	0	0	16-3584
+chrM	14335	0	0	0	0	0	0	0	16-3584
+chrM	14336	0	0	0	0	0	0	0	16-3584
+chrM	14337	0	0	0	0	0	0	0	16-3584
+chrM	14338	0	0	0	0	0	0	0	16-3584
+chrM	14339	0	0	0	0	0	0	0	16-3584
+chrM	14340	0	0	0	0	0	0	0	16-3584
+chrM	14341	0	0	0	0	0	0	0	16-3584
+chrM	14342	0	0	0	0	0	0	0	16-3584
+chrM	14343	0	0	0	0	0	0	0	16-3584
+chrM	14344	0	0	0	0	0	0	0	16-3584
+chrM	14345	0	0	0	0	0	0	0	16-3584
+chrM	14346	0	0	0	0	0	0	0	16-3584
+chrM	14347	0	0	0	0	0	0	0	16-3584
+chrM	14348	0	0	0	0	0	0	0	16-3584
+chrM	14349	0	0	0	0	0	0	0	16-3584
+chrM	14350	0	0	0	0	0	0	0	16-3584
+chrM	14351	0	0	0	0	0	0	0	16-3584
+chrM	14352	0	0	0	0	0	0	0	16-3584
+chrM	14353	0	0	0	0	0	0	0	16-3584
+chrM	14354	0	0	0	0	0	0	0	16-3584
+chrM	14355	0	0	0	0	0	0	0	16-3584
+chrM	14356	0	0	0	0	0	0	0	16-3584
+chrM	14357	0	0	0	0	0	0	0	16-3584
+chrM	14358	0	0	0	0	0	0	0	16-3584
+chrM	14359	0	0	0	0	0	0	0	16-3584
+chrM	14360	0	0	0	0	0	0	0	16-3584
+chrM	14361	0	0	0	0	0	0	0	16-3584
+chrM	14362	0	0	0	0	0	0	0	16-3584
+chrM	14363	0	0	0	0	0	0	0	16-3584
+chrM	14364	0	0	0	0	0	0	0	16-3584
+chrM	14365	0	0	0	0	0	0	0	16-3584
+chrM	14366	0	0	0	0	0	0	0	16-3584
+chrM	14367	0	0	0	0	0	0	0	16-3584
+chrM	14368	0	0	0	0	0	0	0	16-3584
+chrM	14369	0	0	0	0	0	0	0	16-3584
+chrM	14370	0	0	0	0	0	0	0	16-3584
+chrM	14371	0	0	0	0	0	0	0	16-3584
+chrM	14372	0	0	0	0	0	0	0	16-3584
+chrM	14373	0	0	0	0	0	0	0	16-3584
+chrM	14374	0	0	0	0	0	0	0	16-3584
+chrM	14375	0	0	0	0	0	0	0	16-3584
+chrM	14376	0	0	0	0	0	0	0	16-3584
+chrM	14377	0	0	0	0	0	0	0	16-3584
+chrM	14378	0	0	0	0	0	0	0	16-3584
+chrM	14379	0	0	0	0	0	0	0	16-3584
+chrM	14380	0	0	0	0	0	0	0	16-3584
+chrM	14381	0	0	0	0	0	0	0	16-3584
+chrM	14382	0	0	0	0	0	0	0	16-3584
+chrM	14383	0	0	0	0	0	0	0	16-3584
+chrM	14384	0	0	0	0	0	0	0	16-3584
+chrM	14385	0	0	0	0	0	0	0	16-3584
+chrM	14386	0	0	0	0	0	0	0	16-3584
+chrM	14387	0	0	0	0	0	0	0	16-3584
+chrM	14388	0	0	0	0	0	0	0	16-3584
+chrM	14389	0	0	0	0	0	0	0	16-3584
+chrM	14390	0	0	0	0	0	0	0	16-3584
+chrM	14391	0	0	0	0	0	0	0	16-3584
+chrM	14392	0	0	0	0	0	0	0	16-3584
+chrM	14393	0	0	0	0	0	0	0	16-3584
+chrM	14394	0	0	0	0	0	0	0	16-3584
+chrM	14395	0	0	0	0	0	0	0	16-3584
+chrM	14396	0	0	0	0	0	0	0	16-3584
+chrM	14397	0	0	0	0	0	0	0	16-3584
+chrM	14398	0	0	0	0	0	0	0	16-3584
+chrM	14399	0	0	0	0	0	0	0	16-3584
+chrM	14400	0	0	0	0	0	0	0	16-3584
+chrM	14401	0	0	0	0	0	0	0	16-3584
+chrM	14402	0	0	0	0	0	0	0	16-3584
+chrM	14403	0	0	0	0	0	0	0	16-3584
+chrM	14404	0	0	0	0	0	0	0	16-3584
+chrM	14405	0	0	0	0	0	0	0	16-3584
+chrM	14406	0	0	0	0	0	0	0	16-3584
+chrM	14407	0	0	0	0	0	0	0	16-3584
+chrM	14408	0	0	0	0	0	0	0	16-3584
+chrM	14409	0	0	0	0	0	0	0	16-3584
+chrM	14410	0	0	0	0	0	0	0	16-3584
+chrM	14411	0	0	0	0	0	0	0	16-3584
+chrM	14412	0	0	0	0	0	0	0	16-3584
+chrM	14413	0	0	0	0	0	0	0	16-3584
+chrM	14414	0	0	0	0	0	0	0	16-3584
+chrM	14415	0	0	0	0	0	0	0	16-3584
+chrM	14416	0	0	0	0	0	0	0	16-3584
+chrM	14417	0	0	0	0	0	0	0	16-3584
+chrM	14418	0	0	0	0	0	0	0	16-3584
+chrM	14419	0	0	0	0	0	0	0	16-3584
+chrM	14420	0	0	0	0	0	0	0	16-3584
+chrM	14421	0	0	0	0	0	0	0	16-3584
+chrM	14422	0	0	0	0	0	0	0	16-3584
+chrM	14423	0	0	0	0	0	0	0	16-3584
+chrM	14424	0	0	0	0	0	0	0	16-3584
+chrM	14425	0	0	0	0	0	0	0	16-3584
+chrM	14426	0	0	0	0	0	0	0	16-3584
+chrM	14427	0	0	0	0	0	0	0	16-3584
+chrM	14428	0	0	0	0	0	0	0	16-3584
+chrM	14429	0	0	0	0	0	0	0	16-3584
+chrM	14430	0	0	0	0	0	0	0	16-3584
+chrM	14431	0	0	0	0	0	0	0	16-3584
+chrM	14432	0	0	0	0	0	0	0	16-3584
+chrM	14433	0	0	0	0	0	0	0	16-3584
+chrM	14434	0	0	0	0	0	0	0	16-3584
+chrM	14435	0	0	0	0	0	0	0	16-3584
+chrM	14436	0	0	0	0	0	0	0	16-3584
+chrM	14437	0	0	0	0	0	0	0	16-3584
+chrM	14438	0	0	0	0	0	0	0	16-3584
+chrM	14439	0	0	0	0	0	0	0	16-3584
+chrM	14440	0	0	0	0	0	0	0	16-3584
+chrM	14441	0	0	0	0	0	0	0	16-3584
+chrM	14442	0	0	0	0	0	0	0	16-3584
+chrM	14443	0	0	0	0	0	0	0	16-3584
+chrM	14444	0	0	0	0	0	0	0	16-3584
+chrM	14445	0	0	0	0	0	0	0	16-3584
+chrM	14446	0	0	0	0	0	0	0	16-3584
+chrM	14447	0	0	0	0	0	0	0	16-3584
+chrM	14448	0	0	0	0	0	0	0	16-3584
+chrM	14449	0	0	0	0	0	0	0	16-3584
+chrM	14450	0	0	0	0	0	0	0	16-3584
+chrM	14451	0	0	0	0	0	0	0	16-3584
+chrM	14452	0	0	0	0	0	0	0	16-3584
+chrM	14453	0	0	0	0	0	0	0	16-3584
+chrM	14454	0	0	0	0	0	0	0	16-3584
+chrM	14455	0	0	0	0	0	0	0	16-3584
+chrM	14456	0	0	0	0	0	0	0	16-3584
+chrM	14457	0	0	0	0	0	0	0	16-3584
+chrM	14458	0	0	0	0	0	0	0	16-3584
+chrM	14459	0	0	0	0	0	0	0	16-3584
+chrM	14460	0	0	0	0	0	0	0	16-3584
+chrM	14461	0	0	0	0	0	0	0	16-3584
+chrM	14462	0	0	0	0	0	0	0	16-3584
+chrM	14463	0	0	0	0	0	0	0	16-3584
+chrM	14464	0	0	0	0	0	0	0	16-3584
+chrM	14465	0	0	0	0	0	0	0	16-3584
+chrM	14466	0	0	0	0	0	0	0	16-3584
+chrM	14467	0	0	0	0	0	0	0	16-3584
+chrM	14468	0	0	0	0	0	0	0	16-3584
+chrM	14469	0	0	0	0	0	0	0	16-3584
+chrM	14470	0	0	0	0	0	0	0	16-3584
+chrM	14471	0	0	0	0	0	0	0	16-3584
+chrM	14472	0	0	0	0	0	0	0	16-3584
+chrM	14473	0	0	0	0	0	0	0	16-3584
+chrM	14474	0	0	0	0	0	0	0	16-3584
+chrM	14475	0	0	0	0	0	0	0	16-3584
+chrM	14476	0	0	0	0	0	0	0	16-3584
+chrM	14477	0	0	0	0	0	0	0	16-3584
+chrM	14478	0	0	0	0	0	0	0	16-3584
+chrM	14479	0	0	0	0	0	0	0	16-3584
+chrM	14480	0	0	0	0	0	0	0	16-3584
+chrM	14481	0	0	0	0	0	0	0	16-3584
+chrM	14482	0	0	0	0	0	0	0	16-3584
+chrM	14483	0	0	0	0	0	0	0	16-3584
+chrM	14484	0	0	0	0	0	0	0	16-3584
+chrM	14485	0	0	0	0	0	0	0	16-3584
+chrM	14486	0	0	0	0	0	0	0	16-3584
+chrM	14487	0	0	0	0	0	0	0	16-3584
+chrM	14488	0	0	0	0	0	0	0	16-3584
+chrM	14489	0	0	0	0	0	0	0	16-3584
+chrM	14490	0	0	0	0	0	0	0	16-3584
+chrM	14491	0	0	0	0	0	0	0	16-3584
+chrM	14492	0	0	0	0	0	0	0	16-3584
+chrM	14493	0	0	0	0	0	0	0	16-3584
+chrM	14494	0	0	0	0	0	0	0	16-3584
+chrM	14495	0	0	0	0	0	0	0	16-3584
+chrM	14496	0	0	0	0	0	0	0	16-3584
+chrM	14497	0	0	0	0	0	0	0	16-3584
+chrM	14498	0	0	0	0	0	0	0	16-3584
+chrM	14499	0	0	0	0	0	0	0	16-3584
+chrM	14500	0	0	0	0	0	0	0	16-3584
+chrM	14501	0	0	0	0	0	0	0	16-3584
+chrM	14502	0	0	0	0	0	0	0	16-3584
+chrM	14503	0	0	0	0	0	0	0	16-3584
+chrM	14504	0	0	0	0	0	0	0	16-3584
+chrM	14505	0	0	0	0	0	0	0	16-3584
+chrM	14506	0	0	0	0	0	0	0	16-3584
+chrM	14507	0	0	0	0	0	0	0	16-3584
+chrM	14508	0	0	0	0	0	0	0	16-3584
+chrM	14509	0	0	0	0	0	0	0	16-3584
+chrM	14510	0	0	0	0	0	0	0	16-3584
+chrM	14511	0	0	0	0	0	0	0	16-3584
+chrM	14512	0	0	0	0	0	0	0	16-3584
+chrM	14513	0	0	0	0	0	0	0	16-3584
+chrM	14514	0	0	0	0	0	0	0	16-3584
+chrM	14515	0	0	0	0	0	0	0	16-3584
+chrM	14516	0	0	0	0	0	0	0	16-3584
+chrM	14517	0	0	0	0	0	0	0	16-3584
+chrM	14518	0	0	0	0	0	0	0	16-3584
+chrM	14519	0	0	0	0	0	0	0	16-3584
+chrM	14520	0	0	0	0	0	0	0	16-3584
+chrM	14521	0	0	0	0	0	0	0	16-3584
+chrM	14522	0	0	0	0	0	0	0	16-3584
+chrM	14523	0	0	0	0	0	0	0	16-3584
+chrM	14524	0	0	0	0	0	0	0	16-3584
+chrM	14525	0	0	0	0	0	0	0	16-3584
+chrM	14526	0	0	0	0	0	0	0	16-3584
+chrM	14527	0	0	0	0	0	0	0	16-3584
+chrM	14528	0	0	0	0	0	0	0	16-3584
+chrM	14529	0	0	0	0	0	0	0	16-3584
+chrM	14530	0	0	0	0	0	0	0	16-3584
+chrM	14531	0	0	0	0	0	0	0	16-3584
+chrM	14532	0	0	0	0	0	0	0	16-3584
+chrM	14533	0	0	0	0	0	0	0	16-3584
+chrM	14534	0	0	0	0	0	0	0	16-3584
+chrM	14535	0	0	0	0	0	0	0	16-3584
+chrM	14536	0	0	0	0	0	0	0	16-3584
+chrM	14537	0	0	0	0	0	0	0	16-3584
+chrM	14538	0	0	0	0	0	0	0	16-3584
+chrM	14539	0	0	0	0	0	0	0	16-3584
+chrM	14540	0	0	0	0	0	0	0	16-3584
+chrM	14541	0	0	0	0	0	0	0	16-3584
+chrM	14542	0	0	0	0	0	0	0	16-3584
+chrM	14543	0	0	0	0	0	0	0	16-3584
+chrM	14544	0	0	0	0	0	0	0	16-3584
+chrM	14545	0	0	0	0	0	0	0	16-3584
+chrM	14546	0	0	0	0	0	0	0	16-3584
+chrM	14547	0	0	0	0	0	0	0	16-3584
+chrM	14548	0	0	0	0	0	0	0	16-3584
+chrM	14549	0	0	0	0	0	0	0	16-3584
+chrM	14550	0	0	0	0	0	0	0	16-3584
+chrM	14551	0	0	0	0	0	0	0	16-3584
+chrM	14552	0	0	0	0	0	0	0	16-3584
+chrM	14553	0	0	0	0	0	0	0	16-3584
+chrM	14554	0	0	0	0	0	0	0	16-3584
+chrM	14555	0	0	0	0	0	0	0	16-3584
+chrM	14556	0	0	0	0	0	0	0	16-3584
+chrM	14557	0	0	0	0	0	0	0	16-3584
+chrM	14558	0	0	0	0	0	0	0	16-3584
+chrM	14559	0	0	0	0	0	0	0	16-3584
+chrM	14560	0	0	0	0	0	0	0	16-3584
+chrM	14561	0	0	0	0	0	0	0	16-3584
+chrM	14562	0	0	0	0	0	0	0	16-3584
+chrM	14563	0	0	0	0	0	0	0	16-3584
+chrM	14564	0	0	0	0	0	0	0	16-3584
+chrM	14565	0	0	0	0	0	0	0	16-3584
+chrM	14566	0	0	0	0	0	0	0	16-3584
+chrM	14567	0	0	0	0	0	0	0	16-3584
+chrM	14568	0	0	0	0	0	0	0	16-3584
+chrM	14569	0	0	0	0	0	0	0	16-3584
+chrM	14570	0	0	0	0	0	0	0	16-3584
+chrM	14571	0	0	0	0	0	0	0	16-3584
+chrM	14572	0	0	0	0	0	0	0	16-3584
+chrM	14573	0	0	0	0	0	0	0	16-3584
+chrM	14574	0	0	0	0	0	0	0	16-3584
+chrM	14575	0	0	0	0	0	0	0	16-3584
+chrM	14576	0	0	0	0	0	0	0	16-3584
+chrM	14577	0	0	0	0	0	0	0	16-3584
+chrM	14578	0	0	0	0	0	0	0	16-3584
+chrM	14579	0	0	0	0	0	0	0	16-3584
+chrM	14580	0	0	0	0	0	0	0	16-3584
+chrM	14581	0	0	0	0	0	0	0	16-3584
+chrM	14582	0	0	0	0	0	0	0	16-3584
+chrM	14583	0	0	0	0	0	0	0	16-3584
+chrM	14584	0	0	0	0	0	0	0	16-3584
+chrM	14585	0	0	0	0	0	0	0	16-3584
+chrM	14586	0	0	0	0	0	0	0	16-3584
+chrM	14587	0	0	0	0	0	0	0	16-3584
+chrM	14588	0	0	0	0	0	0	0	16-3584
+chrM	14589	0	0	0	0	0	0	0	16-3584
+chrM	14590	0	0	0	0	0	0	0	16-3584
+chrM	14591	0	0	0	0	0	0	0	16-3584
+chrM	14592	0	0	0	0	0	0	0	16-3584
+chrM	14593	0	0	0	0	0	0	0	16-3584
+chrM	14594	0	0	0	0	0	0	0	16-3584
+chrM	14595	0	0	0	0	0	0	0	16-3584
+chrM	14596	0	0	0	0	0	0	0	16-3584
+chrM	14597	0	0	0	0	0	0	0	16-3584
+chrM	14598	0	0	0	0	0	0	0	16-3584
+chrM	14599	0	0	0	0	0	0	0	16-3584
+chrM	14600	0	0	0	0	0	0	0	16-3584
+chrM	14601	0	0	0	0	0	0	0	16-3584
+chrM	14602	0	0	0	0	0	0	0	16-3584
+chrM	14603	0	0	0	0	0	0	0	16-3584
+chrM	14604	0	0	0	0	0	0	0	16-3584
+chrM	14605	0	0	0	0	0	0	0	16-3584
+chrM	14606	0	0	0	0	0	0	0	16-3584
+chrM	14607	0	0	0	0	0	0	0	16-3584
+chrM	14608	0	0	0	0	0	0	0	16-3584
+chrM	14609	0	0	0	0	0	0	0	16-3584
+chrM	14610	0	0	0	0	0	0	0	16-3584
+chrM	14611	0	0	0	0	0	0	0	16-3584
+chrM	14612	0	0	0	0	0	0	0	16-3584
+chrM	14613	0	0	0	0	0	0	0	16-3584
+chrM	14614	0	0	0	0	0	0	0	16-3584
+chrM	14615	0	0	0	0	0	0	0	16-3584
+chrM	14616	0	0	0	0	0	0	0	16-3584
+chrM	14617	0	0	0	0	0	0	0	16-3584
+chrM	14618	0	0	0	0	0	0	0	16-3584
+chrM	14619	0	0	0	0	0	0	0	16-3584
+chrM	14620	0	0	0	0	0	0	0	16-3584
+chrM	14621	0	0	0	0	0	0	0	16-3584
+chrM	14622	0	0	0	0	0	0	0	16-3584
+chrM	14623	0	0	0	0	0	0	0	16-3584
+chrM	14624	0	0	0	0	0	0	0	16-3584
+chrM	14625	0	0	0	0	0	0	0	16-3584
+chrM	14626	0	0	0	0	0	0	0	16-3584
+chrM	14627	0	0	0	0	0	0	0	16-3584
+chrM	14628	0	0	0	0	0	0	0	16-3584
+chrM	14629	0	0	0	0	0	0	0	16-3584
+chrM	14630	0	0	0	0	0	0	0	16-3584
+chrM	14631	0	0	0	0	0	0	0	16-3584
+chrM	14632	0	0	0	0	0	0	0	16-3584
+chrM	14633	0	0	0	0	0	0	0	16-3584
+chrM	14634	0	0	0	0	0	0	0	16-3584
+chrM	14635	0	0	0	0	0	0	0	16-3584
+chrM	14636	0	0	0	0	0	0	0	16-3584
+chrM	14637	0	0	0	0	0	0	0	16-3584
+chrM	14638	0	0	0	0	0	0	0	16-3584
+chrM	14639	0	0	0	0	0	0	0	16-3584
+chrM	14640	0	0	0	0	0	0	0	16-3584
+chrM	14641	0	0	0	0	0	0	0	16-3584
+chrM	14642	0	0	0	0	0	0	0	16-3584
+chrM	14643	0	0	0	0	0	0	0	16-3584
+chrM	14644	0	0	0	0	0	0	0	16-3584
+chrM	14645	0	0	0	0	0	0	0	16-3584
+chrM	14646	0	0	0	0	0	0	0	16-3584
+chrM	14647	0	0	0	0	0	0	0	16-3584
+chrM	14648	0	0	0	0	0	0	0	16-3584
+chrM	14649	0	0	0	0	0	0	0	16-3584
+chrM	14650	0	0	0	0	0	0	0	16-3584
+chrM	14651	0	0	0	0	0	0	0	16-3584
+chrM	14652	0	0	0	0	0	0	0	16-3584
+chrM	14653	0	0	0	0	0	0	0	16-3584
+chrM	14654	0	0	0	0	0	0	0	16-3584
+chrM	14655	0	0	0	0	0	0	0	16-3584
+chrM	14656	0	0	0	0	0	0	0	16-3584
+chrM	14657	0	0	0	0	0	0	0	16-3584
+chrM	14658	0	0	0	0	0	0	0	16-3584
+chrM	14659	0	0	0	0	0	0	0	16-3584
+chrM	14660	0	0	0	0	0	0	0	16-3584
+chrM	14661	0	0	0	0	0	0	0	16-3584
+chrM	14662	0	0	0	0	0	0	0	16-3584
+chrM	14663	0	0	0	0	0	0	0	16-3584
+chrM	14664	0	0	0	0	0	0	0	16-3584
+chrM	14665	0	0	0	0	0	0	0	16-3584
+chrM	14666	0	0	0	0	0	0	0	16-3584
+chrM	14667	0	0	0	0	0	0	0	16-3584
+chrM	14668	0	0	0	0	0	0	0	16-3584
+chrM	14669	0	0	0	0	0	0	0	16-3584
+chrM	14670	0	0	0	0	0	0	0	16-3584
+chrM	14671	0	0	0	0	0	0	0	16-3584
+chrM	14672	0	0	0	0	0	0	0	16-3584
+chrM	14673	0	0	0	0	0	0	0	16-3584
+chrM	14674	0	0	0	0	0	0	0	16-3584
+chrM	14675	0	0	0	0	0	0	0	16-3584
+chrM	14676	0	0	0	0	0	0	0	16-3584
+chrM	14677	0	0	0	0	0	0	0	16-3584
+chrM	14678	0	0	0	0	0	0	0	16-3584
+chrM	14679	0	0	0	0	0	0	0	16-3584
+chrM	14680	0	0	0	0	0	0	0	16-3584
+chrM	14681	0	0	0	0	0	0	0	16-3584
+chrM	14682	0	0	0	0	0	0	0	16-3584
+chrM	14683	0	0	0	0	0	0	0	16-3584
+chrM	14684	0	0	0	0	0	0	0	16-3584
+chrM	14685	0	0	0	0	0	0	0	16-3584
+chrM	14686	0	0	0	0	0	0	0	16-3584
+chrM	14687	0	0	0	0	0	0	0	16-3584
+chrM	14688	0	0	0	0	0	0	0	16-3584
+chrM	14689	0	0	0	0	0	0	0	16-3584
+chrM	14690	0	0	0	0	0	0	0	16-3584
+chrM	14691	0	0	0	0	0	0	0	16-3584
+chrM	14692	0	0	0	0	0	0	0	16-3584
+chrM	14693	0	0	0	0	0	0	0	16-3584
+chrM	14694	0	0	0	0	0	0	0	16-3584
+chrM	14695	0	0	0	0	0	0	0	16-3584
+chrM	14696	0	0	0	0	0	0	0	16-3584
+chrM	14697	0	0	0	0	0	0	0	16-3584
+chrM	14698	0	0	0	0	0	0	0	16-3584
+chrM	14699	0	0	0	0	0	0	0	16-3584
+chrM	14700	0	0	0	0	0	0	0	16-3584
+chrM	14701	0	0	0	0	0	0	0	16-3584
+chrM	14702	0	0	0	0	0	0	0	16-3584
+chrM	14703	0	0	0	0	0	0	0	16-3584
+chrM	14704	0	0	0	0	0	0	0	16-3584
+chrM	14705	0	0	0	0	0	0	0	16-3584
+chrM	14706	0	0	0	0	0	0	0	16-3584
+chrM	14707	0	0	0	0	0	0	0	16-3584
+chrM	14708	0	0	0	0	0	0	0	16-3584
+chrM	14709	0	0	0	0	0	0	0	16-3584
+chrM	14710	0	0	0	0	0	0	0	16-3584
+chrM	14711	0	0	0	0	0	0	0	16-3584
+chrM	14712	0	0	0	0	0	0	0	16-3584
+chrM	14713	0	0	0	0	0	0	0	16-3584
+chrM	14714	0	0	0	0	0	0	0	16-3584
+chrM	14715	0	0	0	0	0	0	0	16-3584
+chrM	14716	0	0	0	0	0	0	0	16-3584
+chrM	14717	0	0	0	0	0	0	0	16-3584
+chrM	14718	0	0	0	0	0	0	0	16-3584
+chrM	14719	0	0	0	0	0	0	0	16-3584
+chrM	14720	0	0	0	0	0	0	0	16-3584
+chrM	14721	0	0	0	0	0	0	0	16-3584
+chrM	14722	0	0	0	0	0	0	0	16-3584
+chrM	14723	0	0	0	0	0	0	0	16-3584
+chrM	14724	0	0	0	0	0	0	0	16-3584
+chrM	14725	0	0	0	0	0	0	0	16-3584
+chrM	14726	0	0	0	0	0	0	0	16-3584
+chrM	14727	0	0	0	0	0	0	0	16-3584
+chrM	14728	0	0	0	0	0	0	0	16-3584
+chrM	14729	0	0	0	0	0	0	0	16-3584
+chrM	14730	0	0	0	0	0	0	0	16-3584
+chrM	14731	0	0	0	0	0	0	0	16-3584
+chrM	14732	0	0	0	0	0	0	0	16-3584
+chrM	14733	0	0	0	0	0	0	0	16-3584
+chrM	14734	0	0	0	0	0	0	0	16-3584
+chrM	14735	0	0	0	0	0	0	0	16-3584
+chrM	14736	0	0	0	0	0	0	0	16-3584
+chrM	14737	0	0	0	0	0	0	0	16-3584
+chrM	14738	0	0	0	0	0	0	0	16-3584
+chrM	14739	0	0	0	0	0	0	0	16-3584
+chrM	14740	0	0	0	0	0	0	0	16-3584
+chrM	14741	0	0	0	0	0	0	0	16-3584
+chrM	14742	0	0	0	0	0	0	0	16-3584
+chrM	14743	0	0	0	0	0	0	0	16-3584
+chrM	14744	0	0	0	0	0	0	0	16-3584
+chrM	14745	0	0	0	0	0	0	0	16-3584
+chrM	14746	0	0	0	0	0	0	0	16-3584
+chrM	14747	0	0	0	0	0	0	0	16-3584
+chrM	14748	0	0	0	0	0	0	0	16-3584
+chrM	14749	0	0	0	0	0	0	0	16-3584
+chrM	14750	0	0	0	0	0	0	0	16-3584
+chrM	14751	0	0	0	0	0	0	0	16-3584
+chrM	14752	0	0	0	0	0	0	0	16-3584
+chrM	14753	0	0	0	0	0	0	0	16-3584
+chrM	14754	0	0	0	0	0	0	0	16-3584
+chrM	14755	0	0	0	0	0	0	0	16-3584
+chrM	14756	0	0	0	0	0	0	0	16-3584
+chrM	14757	0	0	0	0	0	0	0	16-3584
+chrM	14758	0	0	0	0	0	0	0	16-3584
+chrM	14759	0	0	0	0	0	0	0	16-3584
+chrM	14760	0	0	0	0	0	0	0	16-3584
+chrM	14761	0	0	0	0	0	0	0	16-3584
+chrM	14762	0	0	0	0	0	0	0	16-3584
+chrM	14763	0	0	0	0	0	0	0	16-3584
+chrM	14764	0	0	0	0	0	0	0	16-3584
+chrM	14765	0	0	0	0	0	0	0	16-3584
+chrM	14766	0	0	0	0	0	0	0	16-3584
+chrM	14767	0	0	0	0	0	0	0	16-3584
+chrM	14768	0	0	0	0	0	0	0	16-3584
+chrM	14769	0	0	0	0	0	0	0	16-3584
+chrM	14770	0	0	0	0	0	0	0	16-3584
+chrM	14771	0	0	0	0	0	0	0	16-3584
+chrM	14772	0	0	0	0	0	0	0	16-3584
+chrM	14773	0	0	0	0	0	0	0	16-3584
+chrM	14774	0	0	0	0	0	0	0	16-3584
+chrM	14775	0	0	0	0	0	0	0	16-3584
+chrM	14776	0	0	0	0	0	0	0	16-3584
+chrM	14777	0	0	0	0	0	0	0	16-3584
+chrM	14778	0	0	0	0	0	0	0	16-3584
+chrM	14779	0	0	0	0	0	0	0	16-3584
+chrM	14780	0	0	0	0	0	0	0	16-3584
+chrM	14781	0	0	0	0	0	0	0	16-3584
+chrM	14782	0	0	0	0	0	0	0	16-3584
+chrM	14783	0	0	0	0	0	0	0	16-3584
+chrM	14784	0	0	0	0	0	0	0	16-3584
+chrM	14785	0	0	0	0	0	0	0	16-3584
+chrM	14786	0	0	0	0	0	0	0	16-3584
+chrM	14787	0	0	0	0	0	0	0	16-3584
+chrM	14788	0	0	0	0	0	0	0	16-3584
+chrM	14789	0	0	0	0	0	0	0	16-3584
+chrM	14790	0	0	0	0	0	0	0	16-3584
+chrM	14791	0	0	0	0	0	0	0	16-3584
+chrM	14792	0	0	0	0	0	0	0	16-3584
+chrM	14793	0	0	0	0	0	0	0	16-3584
+chrM	14794	1	0	0	1	0	0	0	16-3584
+chrM	14795	1	0	0	1	0	0	0	16-3584
+chrM	14796	1	0	0	0	1	0	0	16-3584
+chrM	14797	1	1	0	0	0	0	0	16-3584
+chrM	14798	1	1	0	0	0	0	0	16-3584
+chrM	14799	1	1	0	0	0	0	0	16-3584
+chrM	14800	1	0	1	0	0	0	0	16-3584
+chrM	14801	1	0	1	0	0	0	0	16-3584
+chrM	14802	1	0	0	1	0	0	0	16-3584
+chrM	14803	1	0	0	0	1	0	0	16-3584
+chrM	14804	1	0	0	0	1	0	0	16-3584
+chrM	14805	1	0	1	0	0	0	0	16-3584
+chrM	14806	1	0	1	0	0	0	0	16-3584
+chrM	14807	1	0	1	0	0	0	0	16-3584
+chrM	14808	1	0	0	0	1	0	0	16-3584
+chrM	14809	1	0	0	0	1	0	0	16-3584
+chrM	14810	1	0	0	1	0	0	0	16-3584
+chrM	14811	1	0	0	1	0	0	0	16-3584
+chrM	14812	1	0	1	0	0	0	0	16-3584
+chrM	14813	1	0	0	0	1	0	0	16-3584
+chrM	14814	1	0	1	0	0	0	0	16-3584
+chrM	14815	1	0	0	1	0	0	0	16-3584
+chrM	14816	1	0	1	0	0	0	0	16-3584
+chrM	14817	1	0	0	1	0	0	0	16-3584
+chrM	14818	1	1	0	0	0	0	0	16-3584
+chrM	14819	1	0	0	1	0	0	0	16-3584
+chrM	14820	2	0	1	0	1	0	0	16-3584
+chrM	14821	2	0	1	0	1	0	0	16-3584
+chrM	14822	2	0	1	0	1	0	0	16-3584
+chrM	14823	2	0	1	1	0	0	0	16-3584
+chrM	14824	2	1	1	0	0	0	0	16-3584
+chrM	14825	2	0	0	1	1	0	0	16-3584
+chrM	14826	2	0	1	1	0	0	0	16-3584
+chrM	14827	2	1	0	1	0	0	0	16-3584
+chrM	14828	2	0	1	0	1	0	0	16-3584
+chrM	14829	2	1	1	0	0	0	0	16-3584
+chrM	14830	2	0	0	2	0	0	0	16-3584
+chrM	14831	2	0	0	1	1	0	0	16-3584
+chrM	14832	2	0	1	1	0	0	0	16-3584
+chrM	14833	2	0	2	0	0	0	0	16-3584
+chrM	14834	2	1	0	1	0	0	0	16-3584
+chrM	14835	2	1	0	1	0	0	0	16-3584
+chrM	14836	2	1	1	0	0	0	0	16-3584
+chrM	14837	2	0	1	1	0	0	0	16-3584
+chrM	14838	2	1	0	1	0	0	0	16-3584
+chrM	14839	2	0	1	1	0	0	0	16-3584
+chrM	14840	2	0	2	0	0	0	0	16-3584
+chrM	14841	2	0	0	2	0	0	0	16-3584
+chrM	14842	2	0	1	0	1	0	0	16-3584
+chrM	14843	2	0	2	0	0	0	0	16-3584
+chrM	14844	2	0	1	0	1	0	0	16-3584
+chrM	14845	2	1	1	0	0	0	0	16-3584
+chrM	14846	2	1	1	0	0	0	0	16-3584
+chrM	14847	2	2	0	0	0	0	0	16-3584
+chrM	14848	2	1	1	0	0	0	0	16-3584
+chrM	14849	2	0	0	2	0	0	0	16-3584
+chrM	14850	2	0	0	2	0	0	0	16-3584
+chrM	14851	2	1	1	0	0	0	0	16-3584
+chrM	14852	2	0	1	0	1	0	0	16-3584
+chrM	14853	2	0	0	0	2	0	0	16-3584
+chrM	14854	2	0	2	0	0	0	0	16-3584
+chrM	14855	2	2	0	0	0	0	0	16-3584
+chrM	14856	2	1	0	1	0	0	0	16-3584
+chrM	14857	2	0	1	0	1	0	0	16-3584
+chrM	14858	2	0	0	1	1	0	0	16-3584
+chrM	14859	2	0	1	1	0	0	0	16-3584
+chrM	14860	2	0	1	1	0	0	0	16-3584
+chrM	14861	2	0	1	1	0	0	0	16-3584
+chrM	14862	2	1	1	0	0	0	0	16-3584
+chrM	14863	2	0	0	2	0	0	0	16-3584
+chrM	14864	2	2	0	0	0	0	0	16-3584
+chrM	14865	2	1	1	0	0	0	0	16-3584
+chrM	14866	2	0	1	1	0	0	0	16-3584
+chrM	14867	2	0	2	0	0	0	0	16-3584
+chrM	14868	2	0	0	0	2	0	0	16-3584
+chrM	14869	2	1	1	0	0	0	0	16-3584
+chrM	14870	2	1	0	1	0	0	0	16-3584
+chrM	14871	2	0	2	0	0	0	0	16-3584
+chrM	14872	2	1	0	0	1	0	0	16-3584
+chrM	14873	2	1	0	1	0	0	0	16-3584
+chrM	14874	2	0	0	1	1	0	0	16-3584
+chrM	14875	2	1	0	0	1	0	0	16-3584
+chrM	14876	2	0	2	0	0	0	0	16-3584
+chrM	14877	2	0	2	0	0	0	0	16-3584
+chrM	14878	2	0	0	2	0	0	0	16-3584
+chrM	14879	2	0	1	1	0	0	0	16-3584
+chrM	14880	2	0	0	2	0	0	0	16-3584
+chrM	14881	2	0	0	0	2	0	0	16-3584
+chrM	14882	2	0	0	2	0	0	0	16-3584
+chrM	14883	2	1	0	0	1	0	0	16-3584
+chrM	14884	2	0	1	0	1	0	0	16-3584
+chrM	14885	2	0	1	1	0	0	0	16-3584
+chrM	14886	2	0	0	1	1	0	0	16-3584
+chrM	14887	2	0	1	1	0	0	0	16-3584
+chrM	14888	2	0	0	1	1	0	0	16-3584
+chrM	14889	2	0	1	0	1	0	0	16-3584
+chrM	14890	2	1	0	0	1	0	0	16-3584
+chrM	14891	2	0	1	1	0	0	0	16-3584
+chrM	14892	2	0	1	0	1	0	0	16-3584
+chrM	14893	2	1	0	1	0	0	0	16-3584
+chrM	14894	2	1	0	0	1	0	0	16-3584
+chrM	14895	2	2	0	0	0	0	0	16-3584
+chrM	14896	2	0	2	0	0	0	0	16-3584
+chrM	14897	2	0	1	1	0	0	0	16-3584
+chrM	14898	2	0	1	0	1	0	0	16-3584
+chrM	14899	2	0	0	0	2	0	0	16-3584
+chrM	14900	2	1	0	0	1	0	0	16-3584
+chrM	14901	2	1	0	0	1	0	0	16-3584
+chrM	14902	2	0	0	2	0	0	0	16-3584
+chrM	14903	2	1	0	0	1	0	0	16-3584
+chrM	14904	2	1	0	0	1	0	0	16-3584
+chrM	14905	2	1	1	0	0	0	0	16-3584
+chrM	14906	2	0	1	0	1	0	0	16-3584
+chrM	14907	2	0	0	2	0	0	0	16-3584
+chrM	14908	2	0	0	1	1	0	0	16-3584
+chrM	14909	2	0	0	1	1	0	0	16-3584
+chrM	14910	2	0	1	0	1	0	0	16-3584
+chrM	14911	2	1	0	0	1	0	0	16-3584
+chrM	14912	2	1	0	0	1	0	0	16-3584
+chrM	14913	2	2	0	0	0	0	0	16-3584
+chrM	14914	2	1	0	0	1	0	0	16-3584
+chrM	14915	2	1	0	0	1	0	0	16-3584
+chrM	14916	2	1	1	0	0	0	0	16-3584
+chrM	14917	2	0	1	1	0	0	0	16-3584
+chrM	14918	2	1	0	0	1	0	0	16-3584
+chrM	14919	2	1	0	1	0	0	0	16-3584
+chrM	14920	2	0	1	1	0	0	0	16-3584
+chrM	14921	2	1	0	0	1	0	0	16-3584
+chrM	14922	2	0	1	0	1	0	0	16-3584
+chrM	14923	2	0	1	1	0	0	0	16-3584
+chrM	14924	2	0	0	2	0	0	0	16-3584
+chrM	14925	2	1	0	0	1	0	0	16-3584
+chrM	14926	2	0	1	1	0	0	0	16-3584
+chrM	14927	2	0	1	0	1	0	0	16-3584
+chrM	14928	2	0	1	0	1	0	0	16-3584
+chrM	14929	2	0	1	0	1	0	0	16-3584
+chrM	14930	2	1	1	0	0	0	0	16-3584
+chrM	14931	2	1	0	0	1	0	0	16-3584
+chrM	14932	2	0	1	0	1	0	0	16-3584
+chrM	14933	2	0	0	0	2	0	0	16-3584
+chrM	14934	2	1	1	0	0	0	0	16-3584
+chrM	14935	2	0	1	1	0	0	0	16-3584
+chrM	14936	2	1	0	1	0	0	0	16-3584
+chrM	14937	2	1	0	1	0	0	0	16-3584
+chrM	14938	2	1	0	0	1	0	0	16-3584
+chrM	14939	2	1	1	0	0	0	0	16-3584
+chrM	14940	1	0	0	0	1	0	0	16-3584
+chrM	14941	1	0	1	0	0	0	0	16-3584
+chrM	14942	1	0	0	0	1	0	0	16-3584
+chrM	14943	1	0	0	1	0	0	0	16-3584
+chrM	14944	1	0	0	1	0	0	0	16-3584
+chrM	14945	1	0	1	0	0	0	0	16-3584
+chrM	14946	1	0	0	1	0	0	0	16-3584
+chrM	14947	1	0	0	1	0	0	0	16-3584
+chrM	14948	1	1	0	0	0	0	0	16-3584
+chrM	14949	1	1	0	0	0	0	0	16-3584
+chrM	14950	1	0	1	0	0	0	0	16-3584
+chrM	14951	1	1	0	0	0	0	0	16-3584
+chrM	14952	1	0	0	0	1	0	0	16-3584
+chrM	14953	1	0	0	1	0	0	0	16-3584
+chrM	14954	1	0	0	1	0	0	0	16-3584
+chrM	14955	1	0	0	1	0	0	0	16-3584
+chrM	14956	1	0	1	0	0	0	0	16-3584
+chrM	14957	1	0	0	0	1	0	0	16-3584
+chrM	14958	1	1	0	0	0	0	0	16-3584
+chrM	14959	1	1	0	0	0	0	0	16-3584
+chrM	14960	1	0	1	0	0	0	0	16-3584
+chrM	14961	1	1	0	0	0	0	0	16-3584
+chrM	14962	1	0	0	1	0	0	0	16-3584
+chrM	14963	1	1	0	0	0	0	0	16-3584
+chrM	14964	1	0	1	0	0	0	0	16-3584
+chrM	14965	0	0	0	0	0	0	0	16-3584
+chrM	14966	0	0	0	0	0	0	0	16-3584
+chrM	14967	0	0	0	0	0	0	0	16-3584
+chrM	14968	0	0	0	0	0	0	0	16-3584
+chrM	14969	0	0	0	0	0	0	0	16-3584
+chrM	14970	0	0	0	0	0	0	0	16-3584
+chrM	14971	0	0	0	0	0	0	0	16-3584
+chrM	14972	0	0	0	0	0	0	0	16-3584
+chrM	14973	0	0	0	0	0	0	0	16-3584
+chrM	14974	0	0	0	0	0	0	0	16-3584
+chrM	14975	0	0	0	0	0	0	0	16-3584
+chrM	14976	0	0	0	0	0	0	0	16-3584
+chrM	14977	0	0	0	0	0	0	0	16-3584
+chrM	14978	0	0	0	0	0	0	0	16-3584
+chrM	14979	0	0	0	0	0	0	0	16-3584
+chrM	14980	0	0	0	0	0	0	0	16-3584
+chrM	14981	0	0	0	0	0	0	0	16-3584
+chrM	14982	0	0	0	0	0	0	0	16-3584
+chrM	14983	0	0	0	0	0	0	0	16-3584
+chrM	14984	0	0	0	0	0	0	0	16-3584
+chrM	14985	0	0	0	0	0	0	0	16-3584
+chrM	14986	0	0	0	0	0	0	0	16-3584
+chrM	14987	0	0	0	0	0	0	0	16-3584
+chrM	14988	0	0	0	0	0	0	0	16-3584
+chrM	14989	0	0	0	0	0	0	0	16-3584
+chrM	14990	0	0	0	0	0	0	0	16-3584
+chrM	14991	0	0	0	0	0	0	0	16-3584
+chrM	14992	0	0	0	0	0	0	0	16-3584
+chrM	14993	0	0	0	0	0	0	0	16-3584
+chrM	14994	0	0	0	0	0	0	0	16-3584
+chrM	14995	0	0	0	0	0	0	0	16-3584
+chrM	14996	0	0	0	0	0	0	0	16-3584
+chrM	14997	0	0	0	0	0	0	0	16-3584
+chrM	14998	0	0	0	0	0	0	0	16-3584
+chrM	14999	0	0	0	0	0	0	0	16-3584
+chrM	15000	0	0	0	0	0	0	0	16-3584
+chrM	15001	0	0	0	0	0	0	0	16-3584
+chrM	15002	0	0	0	0	0	0	0	16-3584
+chrM	15003	0	0	0	0	0	0	0	16-3584
+chrM	15004	0	0	0	0	0	0	0	16-3584
+chrM	15005	0	0	0	0	0	0	0	16-3584
+chrM	15006	0	0	0	0	0	0	0	16-3584
+chrM	15007	0	0	0	0	0	0	0	16-3584
+chrM	15008	0	0	0	0	0	0	0	16-3584
+chrM	15009	0	0	0	0	0	0	0	16-3584
+chrM	15010	0	0	0	0	0	0	0	16-3584
+chrM	15011	0	0	0	0	0	0	0	16-3584
+chrM	15012	0	0	0	0	0	0	0	16-3584
+chrM	15013	0	0	0	0	0	0	0	16-3584
+chrM	15014	0	0	0	0	0	0	0	16-3584
+chrM	15015	0	0	0	0	0	0	0	16-3584
+chrM	15016	0	0	0	0	0	0	0	16-3584
+chrM	15017	0	0	0	0	0	0	0	16-3584
+chrM	15018	0	0	0	0	0	0	0	16-3584
+chrM	15019	0	0	0	0	0	0	0	16-3584
+chrM	15020	0	0	0	0	0	0	0	16-3584
+chrM	15021	0	0	0	0	0	0	0	16-3584
+chrM	15022	0	0	0	0	0	0	0	16-3584
+chrM	15023	0	0	0	0	0	0	0	16-3584
+chrM	15024	0	0	0	0	0	0	0	16-3584
+chrM	15025	0	0	0	0	0	0	0	16-3584
+chrM	15026	0	0	0	0	0	0	0	16-3584
+chrM	15027	0	0	0	0	0	0	0	16-3584
+chrM	15028	0	0	0	0	0	0	0	16-3584
+chrM	15029	0	0	0	0	0	0	0	16-3584
+chrM	15030	0	0	0	0	0	0	0	16-3584
+chrM	15031	0	0	0	0	0	0	0	16-3584
+chrM	15032	0	0	0	0	0	0	0	16-3584
+chrM	15033	0	0	0	0	0	0	0	16-3584
+chrM	15034	0	0	0	0	0	0	0	16-3584
+chrM	15035	0	0	0	0	0	0	0	16-3584
+chrM	15036	0	0	0	0	0	0	0	16-3584
+chrM	15037	0	0	0	0	0	0	0	16-3584
+chrM	15038	0	0	0	0	0	0	0	16-3584
+chrM	15039	0	0	0	0	0	0	0	16-3584
+chrM	15040	0	0	0	0	0	0	0	16-3584
+chrM	15041	0	0	0	0	0	0	0	16-3584
+chrM	15042	0	0	0	0	0	0	0	16-3584
+chrM	15043	0	0	0	0	0	0	0	16-3584
+chrM	15044	0	0	0	0	0	0	0	16-3584
+chrM	15045	0	0	0	0	0	0	0	16-3584
+chrM	15046	0	0	0	0	0	0	0	16-3584
+chrM	15047	0	0	0	0	0	0	0	16-3584
+chrM	15048	0	0	0	0	0	0	0	16-3584
+chrM	15049	0	0	0	0	0	0	0	16-3584
+chrM	15050	0	0	0	0	0	0	0	16-3584
+chrM	15051	0	0	0	0	0	0	0	16-3584
+chrM	15052	0	0	0	0	0	0	0	16-3584
+chrM	15053	0	0	0	0	0	0	0	16-3584
+chrM	15054	0	0	0	0	0	0	0	16-3584
+chrM	15055	0	0	0	0	0	0	0	16-3584
+chrM	15056	0	0	0	0	0	0	0	16-3584
+chrM	15057	0	0	0	0	0	0	0	16-3584
+chrM	15058	0	0	0	0	0	0	0	16-3584
+chrM	15059	0	0	0	0	0	0	0	16-3584
+chrM	15060	0	0	0	0	0	0	0	16-3584
+chrM	15061	0	0	0	0	0	0	0	16-3584
+chrM	15062	0	0	0	0	0	0	0	16-3584
+chrM	15063	0	0	0	0	0	0	0	16-3584
+chrM	15064	0	0	0	0	0	0	0	16-3584
+chrM	15065	0	0	0	0	0	0	0	16-3584
+chrM	15066	0	0	0	0	0	0	0	16-3584
+chrM	15067	0	0	0	0	0	0	0	16-3584
+chrM	15068	0	0	0	0	0	0	0	16-3584
+chrM	15069	0	0	0	0	0	0	0	16-3584
+chrM	15070	0	0	0	0	0	0	0	16-3584
+chrM	15071	0	0	0	0	0	0	0	16-3584
+chrM	15072	0	0	0	0	0	0	0	16-3584
+chrM	15073	0	0	0	0	0	0	0	16-3584
+chrM	15074	0	0	0	0	0	0	0	16-3584
+chrM	15075	0	0	0	0	0	0	0	16-3584
+chrM	15076	0	0	0	0	0	0	0	16-3584
+chrM	15077	0	0	0	0	0	0	0	16-3584
+chrM	15078	0	0	0	0	0	0	0	16-3584
+chrM	15079	0	0	0	0	0	0	0	16-3584
+chrM	15080	0	0	0	0	0	0	0	16-3584
+chrM	15081	0	0	0	0	0	0	0	16-3584
+chrM	15082	0	0	0	0	0	0	0	16-3584
+chrM	15083	0	0	0	0	0	0	0	16-3584
+chrM	15084	0	0	0	0	0	0	0	16-3584
+chrM	15085	0	0	0	0	0	0	0	16-3584
+chrM	15086	0	0	0	0	0	0	0	16-3584
+chrM	15087	0	0	0	0	0	0	0	16-3584
+chrM	15088	0	0	0	0	0	0	0	16-3584
+chrM	15089	0	0	0	0	0	0	0	16-3584
+chrM	15090	0	0	0	0	0	0	0	16-3584
+chrM	15091	0	0	0	0	0	0	0	16-3584
+chrM	15092	0	0	0	0	0	0	0	16-3584
+chrM	15093	0	0	0	0	0	0	0	16-3584
+chrM	15094	0	0	0	0	0	0	0	16-3584
+chrM	15095	0	0	0	0	0	0	0	16-3584
+chrM	15096	0	0	0	0	0	0	0	16-3584
+chrM	15097	0	0	0	0	0	0	0	16-3584
+chrM	15098	0	0	0	0	0	0	0	16-3584
+chrM	15099	0	0	0	0	0	0	0	16-3584
+chrM	15100	0	0	0	0	0	0	0	16-3584
+chrM	15101	0	0	0	0	0	0	0	16-3584
+chrM	15102	0	0	0	0	0	0	0	16-3584
+chrM	15103	0	0	0	0	0	0	0	16-3584
+chrM	15104	0	0	0	0	0	0	0	16-3584
+chrM	15105	0	0	0	0	0	0	0	16-3584
+chrM	15106	0	0	0	0	0	0	0	16-3584
+chrM	15107	0	0	0	0	0	0	0	16-3584
+chrM	15108	0	0	0	0	0	0	0	16-3584
+chrM	15109	0	0	0	0	0	0	0	16-3584
+chrM	15110	0	0	0	0	0	0	0	16-3584
+chrM	15111	0	0	0	0	0	0	0	16-3584
+chrM	15112	0	0	0	0	0	0	0	16-3584
+chrM	15113	0	0	0	0	0	0	0	16-3584
+chrM	15114	0	0	0	0	0	0	0	16-3584
+chrM	15115	0	0	0	0	0	0	0	16-3584
+chrM	15116	0	0	0	0	0	0	0	16-3584
+chrM	15117	0	0	0	0	0	0	0	16-3584
+chrM	15118	0	0	0	0	0	0	0	16-3584
+chrM	15119	0	0	0	0	0	0	0	16-3584
+chrM	15120	0	0	0	0	0	0	0	16-3584
+chrM	15121	0	0	0	0	0	0	0	16-3584
+chrM	15122	0	0	0	0	0	0	0	16-3584
+chrM	15123	0	0	0	0	0	0	0	16-3584
+chrM	15124	0	0	0	0	0	0	0	16-3584
+chrM	15125	0	0	0	0	0	0	0	16-3584
+chrM	15126	0	0	0	0	0	0	0	16-3584
+chrM	15127	0	0	0	0	0	0	0	16-3584
+chrM	15128	0	0	0	0	0	0	0	16-3584
+chrM	15129	0	0	0	0	0	0	0	16-3584
+chrM	15130	0	0	0	0	0	0	0	16-3584
+chrM	15131	0	0	0	0	0	0	0	16-3584
+chrM	15132	0	0	0	0	0	0	0	16-3584
+chrM	15133	0	0	0	0	0	0	0	16-3584
+chrM	15134	0	0	0	0	0	0	0	16-3584
+chrM	15135	0	0	0	0	0	0	0	16-3584
+chrM	15136	0	0	0	0	0	0	0	16-3584
+chrM	15137	0	0	0	0	0	0	0	16-3584
+chrM	15138	0	0	0	0	0	0	0	16-3584
+chrM	15139	0	0	0	0	0	0	0	16-3584
+chrM	15140	0	0	0	0	0	0	0	16-3584
+chrM	15141	0	0	0	0	0	0	0	16-3584
+chrM	15142	0	0	0	0	0	0	0	16-3584
+chrM	15143	0	0	0	0	0	0	0	16-3584
+chrM	15144	0	0	0	0	0	0	0	16-3584
+chrM	15145	0	0	0	0	0	0	0	16-3584
+chrM	15146	0	0	0	0	0	0	0	16-3584
+chrM	15147	0	0	0	0	0	0	0	16-3584
+chrM	15148	0	0	0	0	0	0	0	16-3584
+chrM	15149	0	0	0	0	0	0	0	16-3584
+chrM	15150	0	0	0	0	0	0	0	16-3584
+chrM	15151	0	0	0	0	0	0	0	16-3584
+chrM	15152	0	0	0	0	0	0	0	16-3584
+chrM	15153	0	0	0	0	0	0	0	16-3584
+chrM	15154	0	0	0	0	0	0	0	16-3584
+chrM	15155	0	0	0	0	0	0	0	16-3584
+chrM	15156	0	0	0	0	0	0	0	16-3584
+chrM	15157	0	0	0	0	0	0	0	16-3584
+chrM	15158	0	0	0	0	0	0	0	16-3584
+chrM	15159	0	0	0	0	0	0	0	16-3584
+chrM	15160	0	0	0	0	0	0	0	16-3584
+chrM	15161	0	0	0	0	0	0	0	16-3584
+chrM	15162	0	0	0	0	0	0	0	16-3584
+chrM	15163	0	0	0	0	0	0	0	16-3584
+chrM	15164	0	0	0	0	0	0	0	16-3584
+chrM	15165	0	0	0	0	0	0	0	16-3584
+chrM	15166	0	0	0	0	0	0	0	16-3584
+chrM	15167	0	0	0	0	0	0	0	16-3584
+chrM	15168	0	0	0	0	0	0	0	16-3584
+chrM	15169	0	0	0	0	0	0	0	16-3584
+chrM	15170	0	0	0	0	0	0	0	16-3584
+chrM	15171	0	0	0	0	0	0	0	16-3584
+chrM	15172	0	0	0	0	0	0	0	16-3584
+chrM	15173	0	0	0	0	0	0	0	16-3584
+chrM	15174	0	0	0	0	0	0	0	16-3584
+chrM	15175	0	0	0	0	0	0	0	16-3584
+chrM	15176	0	0	0	0	0	0	0	16-3584
+chrM	15177	0	0	0	0	0	0	0	16-3584
+chrM	15178	0	0	0	0	0	0	0	16-3584
+chrM	15179	0	0	0	0	0	0	0	16-3584
+chrM	15180	0	0	0	0	0	0	0	16-3584
+chrM	15181	0	0	0	0	0	0	0	16-3584
+chrM	15182	0	0	0	0	0	0	0	16-3584
+chrM	15183	0	0	0	0	0	0	0	16-3584
+chrM	15184	0	0	0	0	0	0	0	16-3584
+chrM	15185	0	0	0	0	0	0	0	16-3584
+chrM	15186	0	0	0	0	0	0	0	16-3584
+chrM	15187	0	0	0	0	0	0	0	16-3584
+chrM	15188	0	0	0	0	0	0	0	16-3584
+chrM	15189	0	0	0	0	0	0	0	16-3584
+chrM	15190	0	0	0	0	0	0	0	16-3584
+chrM	15191	0	0	0	0	0	0	0	16-3584
+chrM	15192	0	0	0	0	0	0	0	16-3584
+chrM	15193	0	0	0	0	0	0	0	16-3584
+chrM	15194	0	0	0	0	0	0	0	16-3584
+chrM	15195	0	0	0	0	0	0	0	16-3584
+chrM	15196	0	0	0	0	0	0	0	16-3584
+chrM	15197	0	0	0	0	0	0	0	16-3584
+chrM	15198	0	0	0	0	0	0	0	16-3584
+chrM	15199	0	0	0	0	0	0	0	16-3584
+chrM	15200	0	0	0	0	0	0	0	16-3584
+chrM	15201	0	0	0	0	0	0	0	16-3584
+chrM	15202	0	0	0	0	0	0	0	16-3584
+chrM	15203	0	0	0	0	0	0	0	16-3584
+chrM	15204	0	0	0	0	0	0	0	16-3584
+chrM	15205	0	0	0	0	0	0	0	16-3584
+chrM	15206	0	0	0	0	0	0	0	16-3584
+chrM	15207	0	0	0	0	0	0	0	16-3584
+chrM	15208	0	0	0	0	0	0	0	16-3584
+chrM	15209	0	0	0	0	0	0	0	16-3584
+chrM	15210	0	0	0	0	0	0	0	16-3584
+chrM	15211	0	0	0	0	0	0	0	16-3584
+chrM	15212	0	0	0	0	0	0	0	16-3584
+chrM	15213	0	0	0	0	0	0	0	16-3584
+chrM	15214	0	0	0	0	0	0	0	16-3584
+chrM	15215	0	0	0	0	0	0	0	16-3584
+chrM	15216	0	0	0	0	0	0	0	16-3584
+chrM	15217	0	0	0	0	0	0	0	16-3584
+chrM	15218	0	0	0	0	0	0	0	16-3584
+chrM	15219	0	0	0	0	0	0	0	16-3584
+chrM	15220	0	0	0	0	0	0	0	16-3584
+chrM	15221	0	0	0	0	0	0	0	16-3584
+chrM	15222	0	0	0	0	0	0	0	16-3584
+chrM	15223	0	0	0	0	0	0	0	16-3584
+chrM	15224	0	0	0	0	0	0	0	16-3584
+chrM	15225	0	0	0	0	0	0	0	16-3584
+chrM	15226	0	0	0	0	0	0	0	16-3584
+chrM	15227	0	0	0	0	0	0	0	16-3584
+chrM	15228	0	0	0	0	0	0	0	16-3584
+chrM	15229	0	0	0	0	0	0	0	16-3584
+chrM	15230	0	0	0	0	0	0	0	16-3584
+chrM	15231	0	0	0	0	0	0	0	16-3584
+chrM	15232	0	0	0	0	0	0	0	16-3584
+chrM	15233	0	0	0	0	0	0	0	16-3584
+chrM	15234	0	0	0	0	0	0	0	16-3584
+chrM	15235	0	0	0	0	0	0	0	16-3584
+chrM	15236	0	0	0	0	0	0	0	16-3584
+chrM	15237	0	0	0	0	0	0	0	16-3584
+chrM	15238	0	0	0	0	0	0	0	16-3584
+chrM	15239	0	0	0	0	0	0	0	16-3584
+chrM	15240	0	0	0	0	0	0	0	16-3584
+chrM	15241	0	0	0	0	0	0	0	16-3584
+chrM	15242	0	0	0	0	0	0	0	16-3584
+chrM	15243	0	0	0	0	0	0	0	16-3584
+chrM	15244	0	0	0	0	0	0	0	16-3584
+chrM	15245	0	0	0	0	0	0	0	16-3584
+chrM	15246	0	0	0	0	0	0	0	16-3584
+chrM	15247	0	0	0	0	0	0	0	16-3584
+chrM	15248	0	0	0	0	0	0	0	16-3584
+chrM	15249	0	0	0	0	0	0	0	16-3584
+chrM	15250	0	0	0	0	0	0	0	16-3584
+chrM	15251	0	0	0	0	0	0	0	16-3584
+chrM	15252	0	0	0	0	0	0	0	16-3584
+chrM	15253	0	0	0	0	0	0	0	16-3584
+chrM	15254	0	0	0	0	0	0	0	16-3584
+chrM	15255	0	0	0	0	0	0	0	16-3584
+chrM	15256	0	0	0	0	0	0	0	16-3584
+chrM	15257	0	0	0	0	0	0	0	16-3584
+chrM	15258	0	0	0	0	0	0	0	16-3584
+chrM	15259	0	0	0	0	0	0	0	16-3584
+chrM	15260	0	0	0	0	0	0	0	16-3584
+chrM	15261	0	0	0	0	0	0	0	16-3584
+chrM	15262	0	0	0	0	0	0	0	16-3584
+chrM	15263	0	0	0	0	0	0	0	16-3584
+chrM	15264	0	0	0	0	0	0	0	16-3584
+chrM	15265	0	0	0	0	0	0	0	16-3584
+chrM	15266	0	0	0	0	0	0	0	16-3584
+chrM	15267	0	0	0	0	0	0	0	16-3584
+chrM	15268	0	0	0	0	0	0	0	16-3584
+chrM	15269	0	0	0	0	0	0	0	16-3584
+chrM	15270	0	0	0	0	0	0	0	16-3584
+chrM	15271	0	0	0	0	0	0	0	16-3584
+chrM	15272	0	0	0	0	0	0	0	16-3584
+chrM	15273	0	0	0	0	0	0	0	16-3584
+chrM	15274	0	0	0	0	0	0	0	16-3584
+chrM	15275	0	0	0	0	0	0	0	16-3584
+chrM	15276	0	0	0	0	0	0	0	16-3584
+chrM	15277	0	0	0	0	0	0	0	16-3584
+chrM	15278	0	0	0	0	0	0	0	16-3584
+chrM	15279	0	0	0	0	0	0	0	16-3584
+chrM	15280	0	0	0	0	0	0	0	16-3584
+chrM	15281	0	0	0	0	0	0	0	16-3584
+chrM	15282	0	0	0	0	0	0	0	16-3584
+chrM	15283	0	0	0	0	0	0	0	16-3584
+chrM	15284	0	0	0	0	0	0	0	16-3584
+chrM	15285	0	0	0	0	0	0	0	16-3584
+chrM	15286	0	0	0	0	0	0	0	16-3584
+chrM	15287	0	0	0	0	0	0	0	16-3584
+chrM	15288	0	0	0	0	0	0	0	16-3584
+chrM	15289	0	0	0	0	0	0	0	16-3584
+chrM	15290	0	0	0	0	0	0	0	16-3584
+chrM	15291	0	0	0	0	0	0	0	16-3584
+chrM	15292	0	0	0	0	0	0	0	16-3584
+chrM	15293	0	0	0	0	0	0	0	16-3584
+chrM	15294	0	0	0	0	0	0	0	16-3584
+chrM	15295	0	0	0	0	0	0	0	16-3584
+chrM	15296	0	0	0	0	0	0	0	16-3584
+chrM	15297	0	0	0	0	0	0	0	16-3584
+chrM	15298	0	0	0	0	0	0	0	16-3584
+chrM	15299	0	0	0	0	0	0	0	16-3584
+chrM	15300	0	0	0	0	0	0	0	16-3584
+chrM	15301	0	0	0	0	0	0	0	16-3584
+chrM	15302	0	0	0	0	0	0	0	16-3584
+chrM	15303	0	0	0	0	0	0	0	16-3584
+chrM	15304	0	0	0	0	0	0	0	16-3584
+chrM	15305	0	0	0	0	0	0	0	16-3584
+chrM	15306	0	0	0	0	0	0	0	16-3584
+chrM	15307	0	0	0	0	0	0	0	16-3584
+chrM	15308	0	0	0	0	0	0	0	16-3584
+chrM	15309	0	0	0	0	0	0	0	16-3584
+chrM	15310	0	0	0	0	0	0	0	16-3584
+chrM	15311	0	0	0	0	0	0	0	16-3584
+chrM	15312	0	0	0	0	0	0	0	16-3584
+chrM	15313	0	0	0	0	0	0	0	16-3584
+chrM	15314	0	0	0	0	0	0	0	16-3584
+chrM	15315	0	0	0	0	0	0	0	16-3584
+chrM	15316	0	0	0	0	0	0	0	16-3584
+chrM	15317	0	0	0	0	0	0	0	16-3584
+chrM	15318	0	0	0	0	0	0	0	16-3584
+chrM	15319	0	0	0	0	0	0	0	16-3584
+chrM	15320	0	0	0	0	0	0	0	16-3584
+chrM	15321	0	0	0	0	0	0	0	16-3584
+chrM	15322	0	0	0	0	0	0	0	16-3584
+chrM	15323	0	0	0	0	0	0	0	16-3584
+chrM	15324	0	0	0	0	0	0	0	16-3584
+chrM	15325	0	0	0	0	0	0	0	16-3584
+chrM	15326	0	0	0	0	0	0	0	16-3584
+chrM	15327	0	0	0	0	0	0	0	16-3584
+chrM	15328	0	0	0	0	0	0	0	16-3584
+chrM	15329	0	0	0	0	0	0	0	16-3584
+chrM	15330	0	0	0	0	0	0	0	16-3584
+chrM	15331	0	0	0	0	0	0	0	16-3584
+chrM	15332	0	0	0	0	0	0	0	16-3584
+chrM	15333	0	0	0	0	0	0	0	16-3584
+chrM	15334	0	0	0	0	0	0	0	16-3584
+chrM	15335	0	0	0	0	0	0	0	16-3584
+chrM	15336	0	0	0	0	0	0	0	16-3584
+chrM	15337	0	0	0	0	0	0	0	16-3584
+chrM	15338	0	0	0	0	0	0	0	16-3584
+chrM	15339	0	0	0	0	0	0	0	16-3584
+chrM	15340	0	0	0	0	0	0	0	16-3584
+chrM	15341	0	0	0	0	0	0	0	16-3584
+chrM	15342	0	0	0	0	0	0	0	16-3584
+chrM	15343	0	0	0	0	0	0	0	16-3584
+chrM	15344	0	0	0	0	0	0	0	16-3584
+chrM	15345	0	0	0	0	0	0	0	16-3584
+chrM	15346	0	0	0	0	0	0	0	16-3584
+chrM	15347	0	0	0	0	0	0	0	16-3584
+chrM	15348	0	0	0	0	0	0	0	16-3584
+chrM	15349	0	0	0	0	0	0	0	16-3584
+chrM	15350	0	0	0	0	0	0	0	16-3584
+chrM	15351	0	0	0	0	0	0	0	16-3584
+chrM	15352	0	0	0	0	0	0	0	16-3584
+chrM	15353	0	0	0	0	0	0	0	16-3584
+chrM	15354	0	0	0	0	0	0	0	16-3584
+chrM	15355	0	0	0	0	0	0	0	16-3584
+chrM	15356	0	0	0	0	0	0	0	16-3584
+chrM	15357	0	0	0	0	0	0	0	16-3584
+chrM	15358	0	0	0	0	0	0	0	16-3584
+chrM	15359	0	0	0	0	0	0	0	16-3584
+chrM	15360	0	0	0	0	0	0	0	16-3584
+chrM	15361	0	0	0	0	0	0	0	16-3584
+chrM	15362	0	0	0	0	0	0	0	16-3584
+chrM	15363	0	0	0	0	0	0	0	16-3584
+chrM	15364	0	0	0	0	0	0	0	16-3584
+chrM	15365	0	0	0	0	0	0	0	16-3584
+chrM	15366	0	0	0	0	0	0	0	16-3584
+chrM	15367	0	0	0	0	0	0	0	16-3584
+chrM	15368	0	0	0	0	0	0	0	16-3584
+chrM	15369	0	0	0	0	0	0	0	16-3584
+chrM	15370	0	0	0	0	0	0	0	16-3584
+chrM	15371	0	0	0	0	0	0	0	16-3584
+chrM	15372	0	0	0	0	0	0	0	16-3584
+chrM	15373	0	0	0	0	0	0	0	16-3584
+chrM	15374	0	0	0	0	0	0	0	16-3584
+chrM	15375	0	0	0	0	0	0	0	16-3584
+chrM	15376	0	0	0	0	0	0	0	16-3584
+chrM	15377	0	0	0	0	0	0	0	16-3584
+chrM	15378	0	0	0	0	0	0	0	16-3584
+chrM	15379	0	0	0	0	0	0	0	16-3584
+chrM	15380	0	0	0	0	0	0	0	16-3584
+chrM	15381	0	0	0	0	0	0	0	16-3584
+chrM	15382	0	0	0	0	0	0	0	16-3584
+chrM	15383	0	0	0	0	0	0	0	16-3584
+chrM	15384	0	0	0	0	0	0	0	16-3584
+chrM	15385	0	0	0	0	0	0	0	16-3584
+chrM	15386	0	0	0	0	0	0	0	16-3584
+chrM	15387	0	0	0	0	0	0	0	16-3584
+chrM	15388	0	0	0	0	0	0	0	16-3584
+chrM	15389	0	0	0	0	0	0	0	16-3584
+chrM	15390	0	0	0	0	0	0	0	16-3584
+chrM	15391	0	0	0	0	0	0	0	16-3584
+chrM	15392	0	0	0	0	0	0	0	16-3584
+chrM	15393	0	0	0	0	0	0	0	16-3584
+chrM	15394	0	0	0	0	0	0	0	16-3584
+chrM	15395	0	0	0	0	0	0	0	16-3584
+chrM	15396	0	0	0	0	0	0	0	16-3584
+chrM	15397	0	0	0	0	0	0	0	16-3584
+chrM	15398	0	0	0	0	0	0	0	16-3584
+chrM	15399	0	0	0	0	0	0	0	16-3584
+chrM	15400	0	0	0	0	0	0	0	16-3584
+chrM	15401	0	0	0	0	0	0	0	16-3584
+chrM	15402	0	0	0	0	0	0	0	16-3584
+chrM	15403	0	0	0	0	0	0	0	16-3584
+chrM	15404	0	0	0	0	0	0	0	16-3584
+chrM	15405	0	0	0	0	0	0	0	16-3584
+chrM	15406	0	0	0	0	0	0	0	16-3584
+chrM	15407	0	0	0	0	0	0	0	16-3584
+chrM	15408	0	0	0	0	0	0	0	16-3584
+chrM	15409	0	0	0	0	0	0	0	16-3584
+chrM	15410	0	0	0	0	0	0	0	16-3584
+chrM	15411	0	0	0	0	0	0	0	16-3584
+chrM	15412	0	0	0	0	0	0	0	16-3584
+chrM	15413	0	0	0	0	0	0	0	16-3584
+chrM	15414	0	0	0	0	0	0	0	16-3584
+chrM	15415	0	0	0	0	0	0	0	16-3584
+chrM	15416	0	0	0	0	0	0	0	16-3584
+chrM	15417	0	0	0	0	0	0	0	16-3584
+chrM	15418	0	0	0	0	0	0	0	16-3584
+chrM	15419	0	0	0	0	0	0	0	16-3584
+chrM	15420	0	0	0	0	0	0	0	16-3584
+chrM	15421	0	0	0	0	0	0	0	16-3584
+chrM	15422	0	0	0	0	0	0	0	16-3584
+chrM	15423	0	0	0	0	0	0	0	16-3584
+chrM	15424	0	0	0	0	0	0	0	16-3584
+chrM	15425	0	0	0	0	0	0	0	16-3584
+chrM	15426	0	0	0	0	0	0	0	16-3584
+chrM	15427	0	0	0	0	0	0	0	16-3584
+chrM	15428	0	0	0	0	0	0	0	16-3584
+chrM	15429	0	0	0	0	0	0	0	16-3584
+chrM	15430	0	0	0	0	0	0	0	16-3584
+chrM	15431	0	0	0	0	0	0	0	16-3584
+chrM	15432	0	0	0	0	0	0	0	16-3584
+chrM	15433	0	0	0	0	0	0	0	16-3584
+chrM	15434	0	0	0	0	0	0	0	16-3584
+chrM	15435	0	0	0	0	0	0	0	16-3584
+chrM	15436	0	0	0	0	0	0	0	16-3584
+chrM	15437	0	0	0	0	0	0	0	16-3584
+chrM	15438	0	0	0	0	0	0	0	16-3584
+chrM	15439	0	0	0	0	0	0	0	16-3584
+chrM	15440	0	0	0	0	0	0	0	16-3584
+chrM	15441	0	0	0	0	0	0	0	16-3584
+chrM	15442	0	0	0	0	0	0	0	16-3584
+chrM	15443	0	0	0	0	0	0	0	16-3584
+chrM	15444	0	0	0	0	0	0	0	16-3584
+chrM	15445	0	0	0	0	0	0	0	16-3584
+chrM	15446	0	0	0	0	0	0	0	16-3584
+chrM	15447	0	0	0	0	0	0	0	16-3584
+chrM	15448	0	0	0	0	0	0	0	16-3584
+chrM	15449	0	0	0	0	0	0	0	16-3584
+chrM	15450	0	0	0	0	0	0	0	16-3584
+chrM	15451	0	0	0	0	0	0	0	16-3584
+chrM	15452	0	0	0	0	0	0	0	16-3584
+chrM	15453	0	0	0	0	0	0	0	16-3584
+chrM	15454	0	0	0	0	0	0	0	16-3584
+chrM	15455	0	0	0	0	0	0	0	16-3584
+chrM	15456	0	0	0	0	0	0	0	16-3584
+chrM	15457	0	0	0	0	0	0	0	16-3584
+chrM	15458	0	0	0	0	0	0	0	16-3584
+chrM	15459	0	0	0	0	0	0	0	16-3584
+chrM	15460	0	0	0	0	0	0	0	16-3584
+chrM	15461	0	0	0	0	0	0	0	16-3584
+chrM	15462	0	0	0	0	0	0	0	16-3584
+chrM	15463	0	0	0	0	0	0	0	16-3584
+chrM	15464	0	0	0	0	0	0	0	16-3584
+chrM	15465	0	0	0	0	0	0	0	16-3584
+chrM	15466	0	0	0	0	0	0	0	16-3584
+chrM	15467	0	0	0	0	0	0	0	16-3584
+chrM	15468	0	0	0	0	0	0	0	16-3584
+chrM	15469	0	0	0	0	0	0	0	16-3584
+chrM	15470	0	0	0	0	0	0	0	16-3584
+chrM	15471	0	0	0	0	0	0	0	16-3584
+chrM	15472	0	0	0	0	0	0	0	16-3584
+chrM	15473	0	0	0	0	0	0	0	16-3584
+chrM	15474	0	0	0	0	0	0	0	16-3584
+chrM	15475	0	0	0	0	0	0	0	16-3584
+chrM	15476	0	0	0	0	0	0	0	16-3584
+chrM	15477	0	0	0	0	0	0	0	16-3584
+chrM	15478	0	0	0	0	0	0	0	16-3584
+chrM	15479	0	0	0	0	0	0	0	16-3584
+chrM	15480	0	0	0	0	0	0	0	16-3584
+chrM	15481	0	0	0	0	0	0	0	16-3584
+chrM	15482	0	0	0	0	0	0	0	16-3584
+chrM	15483	0	0	0	0	0	0	0	16-3584
+chrM	15484	0	0	0	0	0	0	0	16-3584
+chrM	15485	0	0	0	0	0	0	0	16-3584
+chrM	15486	0	0	0	0	0	0	0	16-3584
+chrM	15487	0	0	0	0	0	0	0	16-3584
+chrM	15488	0	0	0	0	0	0	0	16-3584
+chrM	15489	0	0	0	0	0	0	0	16-3584
+chrM	15490	0	0	0	0	0	0	0	16-3584
+chrM	15491	0	0	0	0	0	0	0	16-3584
+chrM	15492	0	0	0	0	0	0	0	16-3584
+chrM	15493	0	0	0	0	0	0	0	16-3584
+chrM	15494	0	0	0	0	0	0	0	16-3584
+chrM	15495	0	0	0	0	0	0	0	16-3584
+chrM	15496	0	0	0	0	0	0	0	16-3584
+chrM	15497	0	0	0	0	0	0	0	16-3584
+chrM	15498	0	0	0	0	0	0	0	16-3584
+chrM	15499	0	0	0	0	0	0	0	16-3584
+chrM	15500	0	0	0	0	0	0	0	16-3584
+chrM	15501	0	0	0	0	0	0	0	16-3584
+chrM	15502	0	0	0	0	0	0	0	16-3584
+chrM	15503	0	0	0	0	0	0	0	16-3584
+chrM	15504	0	0	0	0	0	0	0	16-3584
+chrM	15505	0	0	0	0	0	0	0	16-3584
+chrM	15506	0	0	0	0	0	0	0	16-3584
+chrM	15507	0	0	0	0	0	0	0	16-3584
+chrM	15508	0	0	0	0	0	0	0	16-3584
+chrM	15509	0	0	0	0	0	0	0	16-3584
+chrM	15510	0	0	0	0	0	0	0	16-3584
+chrM	15511	0	0	0	0	0	0	0	16-3584
+chrM	15512	0	0	0	0	0	0	0	16-3584
+chrM	15513	0	0	0	0	0	0	0	16-3584
+chrM	15514	0	0	0	0	0	0	0	16-3584
+chrM	15515	0	0	0	0	0	0	0	16-3584
+chrM	15516	0	0	0	0	0	0	0	16-3584
+chrM	15517	0	0	0	0	0	0	0	16-3584
+chrM	15518	0	0	0	0	0	0	0	16-3584
+chrM	15519	0	0	0	0	0	0	0	16-3584
+chrM	15520	0	0	0	0	0	0	0	16-3584
+chrM	15521	0	0	0	0	0	0	0	16-3584
+chrM	15522	0	0	0	0	0	0	0	16-3584
+chrM	15523	0	0	0	0	0	0	0	16-3584
+chrM	15524	0	0	0	0	0	0	0	16-3584
+chrM	15525	0	0	0	0	0	0	0	16-3584
+chrM	15526	0	0	0	0	0	0	0	16-3584
+chrM	15527	0	0	0	0	0	0	0	16-3584
+chrM	15528	0	0	0	0	0	0	0	16-3584
+chrM	15529	0	0	0	0	0	0	0	16-3584
+chrM	15530	0	0	0	0	0	0	0	16-3584
+chrM	15531	0	0	0	0	0	0	0	16-3584
+chrM	15532	0	0	0	0	0	0	0	16-3584
+chrM	15533	0	0	0	0	0	0	0	16-3584
+chrM	15534	0	0	0	0	0	0	0	16-3584
+chrM	15535	0	0	0	0	0	0	0	16-3584
+chrM	15536	0	0	0	0	0	0	0	16-3584
+chrM	15537	0	0	0	0	0	0	0	16-3584
+chrM	15538	0	0	0	0	0	0	0	16-3584
+chrM	15539	0	0	0	0	0	0	0	16-3584
+chrM	15540	0	0	0	0	0	0	0	16-3584
+chrM	15541	0	0	0	0	0	0	0	16-3584
+chrM	15542	0	0	0	0	0	0	0	16-3584
+chrM	15543	0	0	0	0	0	0	0	16-3584
+chrM	15544	0	0	0	0	0	0	0	16-3584
+chrM	15545	0	0	0	0	0	0	0	16-3584
+chrM	15546	0	0	0	0	0	0	0	16-3584
+chrM	15547	0	0	0	0	0	0	0	16-3584
+chrM	15548	0	0	0	0	0	0	0	16-3584
+chrM	15549	0	0	0	0	0	0	0	16-3584
+chrM	15550	0	0	0	0	0	0	0	16-3584
+chrM	15551	0	0	0	0	0	0	0	16-3584
+chrM	15552	0	0	0	0	0	0	0	16-3584
+chrM	15553	0	0	0	0	0	0	0	16-3584
+chrM	15554	0	0	0	0	0	0	0	16-3584
+chrM	15555	0	0	0	0	0	0	0	16-3584
+chrM	15556	0	0	0	0	0	0	0	16-3584
+chrM	15557	0	0	0	0	0	0	0	16-3584
+chrM	15558	0	0	0	0	0	0	0	16-3584
+chrM	15559	0	0	0	0	0	0	0	16-3584
+chrM	15560	0	0	0	0	0	0	0	16-3584
+chrM	15561	0	0	0	0	0	0	0	16-3584
+chrM	15562	0	0	0	0	0	0	0	16-3584
+chrM	15563	0	0	0	0	0	0	0	16-3584
+chrM	15564	0	0	0	0	0	0	0	16-3584
+chrM	15565	0	0	0	0	0	0	0	16-3584
+chrM	15566	0	0	0	0	0	0	0	16-3584
+chrM	15567	0	0	0	0	0	0	0	16-3584
+chrM	15568	0	0	0	0	0	0	0	16-3584
+chrM	15569	0	0	0	0	0	0	0	16-3584
+chrM	15570	0	0	0	0	0	0	0	16-3584
+chrM	15571	0	0	0	0	0	0	0	16-3584
+chrM	15572	0	0	0	0	0	0	0	16-3584
+chrM	15573	0	0	0	0	0	0	0	16-3584
+chrM	15574	0	0	0	0	0	0	0	16-3584
+chrM	15575	0	0	0	0	0	0	0	16-3584
+chrM	15576	0	0	0	0	0	0	0	16-3584
+chrM	15577	0	0	0	0	0	0	0	16-3584
+chrM	15578	0	0	0	0	0	0	0	16-3584
+chrM	15579	0	0	0	0	0	0	0	16-3584
+chrM	15580	0	0	0	0	0	0	0	16-3584
+chrM	15581	0	0	0	0	0	0	0	16-3584
+chrM	15582	0	0	0	0	0	0	0	16-3584
+chrM	15583	0	0	0	0	0	0	0	16-3584
+chrM	15584	0	0	0	0	0	0	0	16-3584
+chrM	15585	0	0	0	0	0	0	0	16-3584
+chrM	15586	0	0	0	0	0	0	0	16-3584
+chrM	15587	0	0	0	0	0	0	0	16-3584
+chrM	15588	0	0	0	0	0	0	0	16-3584
+chrM	15589	0	0	0	0	0	0	0	16-3584
+chrM	15590	0	0	0	0	0	0	0	16-3584
+chrM	15591	0	0	0	0	0	0	0	16-3584
+chrM	15592	0	0	0	0	0	0	0	16-3584
+chrM	15593	0	0	0	0	0	0	0	16-3584
+chrM	15594	0	0	0	0	0	0	0	16-3584
+chrM	15595	0	0	0	0	0	0	0	16-3584
+chrM	15596	0	0	0	0	0	0	0	16-3584
+chrM	15597	0	0	0	0	0	0	0	16-3584
+chrM	15598	0	0	0	0	0	0	0	16-3584
+chrM	15599	0	0	0	0	0	0	0	16-3584
+chrM	15600	0	0	0	0	0	0	0	16-3584
+chrM	15601	0	0	0	0	0	0	0	16-3584
+chrM	15602	0	0	0	0	0	0	0	16-3584
+chrM	15603	0	0	0	0	0	0	0	16-3584
+chrM	15604	0	0	0	0	0	0	0	16-3584
+chrM	15605	0	0	0	0	0	0	0	16-3584
+chrM	15606	0	0	0	0	0	0	0	16-3584
+chrM	15607	0	0	0	0	0	0	0	16-3584
+chrM	15608	0	0	0	0	0	0	0	16-3584
+chrM	15609	0	0	0	0	0	0	0	16-3584
+chrM	15610	0	0	0	0	0	0	0	16-3584
+chrM	15611	0	0	0	0	0	0	0	16-3584
+chrM	15612	0	0	0	0	0	0	0	16-3584
+chrM	15613	0	0	0	0	0	0	0	16-3584
+chrM	15614	0	0	0	0	0	0	0	16-3584
+chrM	15615	0	0	0	0	0	0	0	16-3584
+chrM	15616	0	0	0	0	0	0	0	16-3584
+chrM	15617	0	0	0	0	0	0	0	16-3584
+chrM	15618	0	0	0	0	0	0	0	16-3584
+chrM	15619	0	0	0	0	0	0	0	16-3584
+chrM	15620	0	0	0	0	0	0	0	16-3584
+chrM	15621	0	0	0	0	0	0	0	16-3584
+chrM	15622	0	0	0	0	0	0	0	16-3584
+chrM	15623	0	0	0	0	0	0	0	16-3584
+chrM	15624	0	0	0	0	0	0	0	16-3584
+chrM	15625	0	0	0	0	0	0	0	16-3584
+chrM	15626	0	0	0	0	0	0	0	16-3584
+chrM	15627	0	0	0	0	0	0	0	16-3584
+chrM	15628	0	0	0	0	0	0	0	16-3584
+chrM	15629	0	0	0	0	0	0	0	16-3584
+chrM	15630	0	0	0	0	0	0	0	16-3584
+chrM	15631	0	0	0	0	0	0	0	16-3584
+chrM	15632	0	0	0	0	0	0	0	16-3584
+chrM	15633	0	0	0	0	0	0	0	16-3584
+chrM	15634	0	0	0	0	0	0	0	16-3584
+chrM	15635	0	0	0	0	0	0	0	16-3584
+chrM	15636	0	0	0	0	0	0	0	16-3584
+chrM	15637	0	0	0	0	0	0	0	16-3584
+chrM	15638	0	0	0	0	0	0	0	16-3584
+chrM	15639	0	0	0	0	0	0	0	16-3584
+chrM	15640	0	0	0	0	0	0	0	16-3584
+chrM	15641	0	0	0	0	0	0	0	16-3584
+chrM	15642	0	0	0	0	0	0	0	16-3584
+chrM	15643	0	0	0	0	0	0	0	16-3584
+chrM	15644	0	0	0	0	0	0	0	16-3584
+chrM	15645	0	0	0	0	0	0	0	16-3584
+chrM	15646	0	0	0	0	0	0	0	16-3584
+chrM	15647	0	0	0	0	0	0	0	16-3584
+chrM	15648	0	0	0	0	0	0	0	16-3584
+chrM	15649	0	0	0	0	0	0	0	16-3584
+chrM	15650	0	0	0	0	0	0	0	16-3584
+chrM	15651	0	0	0	0	0	0	0	16-3584
+chrM	15652	0	0	0	0	0	0	0	16-3584
+chrM	15653	0	0	0	0	0	0	0	16-3584
+chrM	15654	0	0	0	0	0	0	0	16-3584
+chrM	15655	0	0	0	0	0	0	0	16-3584
+chrM	15656	0	0	0	0	0	0	0	16-3584
+chrM	15657	0	0	0	0	0	0	0	16-3584
+chrM	15658	0	0	0	0	0	0	0	16-3584
+chrM	15659	0	0	0	0	0	0	0	16-3584
+chrM	15660	0	0	0	0	0	0	0	16-3584
+chrM	15661	0	0	0	0	0	0	0	16-3584
+chrM	15662	0	0	0	0	0	0	0	16-3584
+chrM	15663	0	0	0	0	0	0	0	16-3584
+chrM	15664	0	0	0	0	0	0	0	16-3584
+chrM	15665	0	0	0	0	0	0	0	16-3584
+chrM	15666	0	0	0	0	0	0	0	16-3584
+chrM	15667	0	0	0	0	0	0	0	16-3584
+chrM	15668	0	0	0	0	0	0	0	16-3584
+chrM	15669	0	0	0	0	0	0	0	16-3584
+chrM	15670	0	0	0	0	0	0	0	16-3584
+chrM	15671	0	0	0	0	0	0	0	16-3584
+chrM	15672	0	0	0	0	0	0	0	16-3584
+chrM	15673	0	0	0	0	0	0	0	16-3584
+chrM	15674	0	0	0	0	0	0	0	16-3584
+chrM	15675	0	0	0	0	0	0	0	16-3584
+chrM	15676	0	0	0	0	0	0	0	16-3584
+chrM	15677	0	0	0	0	0	0	0	16-3584
+chrM	15678	0	0	0	0	0	0	0	16-3584
+chrM	15679	0	0	0	0	0	0	0	16-3584
+chrM	15680	0	0	0	0	0	0	0	16-3584
+chrM	15681	0	0	0	0	0	0	0	16-3584
+chrM	15682	0	0	0	0	0	0	0	16-3584
+chrM	15683	0	0	0	0	0	0	0	16-3584
+chrM	15684	0	0	0	0	0	0	0	16-3584
+chrM	15685	0	0	0	0	0	0	0	16-3584
+chrM	15686	0	0	0	0	0	0	0	16-3584
+chrM	15687	0	0	0	0	0	0	0	16-3584
+chrM	15688	0	0	0	0	0	0	0	16-3584
+chrM	15689	0	0	0	0	0	0	0	16-3584
+chrM	15690	0	0	0	0	0	0	0	16-3584
+chrM	15691	0	0	0	0	0	0	0	16-3584
+chrM	15692	0	0	0	0	0	0	0	16-3584
+chrM	15693	0	0	0	0	0	0	0	16-3584
+chrM	15694	0	0	0	0	0	0	0	16-3584
+chrM	15695	0	0	0	0	0	0	0	16-3584
+chrM	15696	0	0	0	0	0	0	0	16-3584
+chrM	15697	0	0	0	0	0	0	0	16-3584
+chrM	15698	0	0	0	0	0	0	0	16-3584
+chrM	15699	0	0	0	0	0	0	0	16-3584
+chrM	15700	0	0	0	0	0	0	0	16-3584
+chrM	15701	0	0	0	0	0	0	0	16-3584
+chrM	15702	0	0	0	0	0	0	0	16-3584
+chrM	15703	0	0	0	0	0	0	0	16-3584
+chrM	15704	0	0	0	0	0	0	0	16-3584
+chrM	15705	0	0	0	0	0	0	0	16-3584
+chrM	15706	0	0	0	0	0	0	0	16-3584
+chrM	15707	0	0	0	0	0	0	0	16-3584
+chrM	15708	0	0	0	0	0	0	0	16-3584
+chrM	15709	0	0	0	0	0	0	0	16-3584
+chrM	15710	0	0	0	0	0	0	0	16-3584
+chrM	15711	0	0	0	0	0	0	0	16-3584
+chrM	15712	0	0	0	0	0	0	0	16-3584
+chrM	15713	0	0	0	0	0	0	0	16-3584
+chrM	15714	0	0	0	0	0	0	0	16-3584
+chrM	15715	0	0	0	0	0	0	0	16-3584
+chrM	15716	0	0	0	0	0	0	0	16-3584
+chrM	15717	0	0	0	0	0	0	0	16-3584
+chrM	15718	0	0	0	0	0	0	0	16-3584
+chrM	15719	0	0	0	0	0	0	0	16-3584
+chrM	15720	0	0	0	0	0	0	0	16-3584
+chrM	15721	0	0	0	0	0	0	0	16-3584
+chrM	15722	0	0	0	0	0	0	0	16-3584
+chrM	15723	0	0	0	0	0	0	0	16-3584
+chrM	15724	0	0	0	0	0	0	0	16-3584
+chrM	15725	0	0	0	0	0	0	0	16-3584
+chrM	15726	0	0	0	0	0	0	0	16-3584
+chrM	15727	0	0	0	0	0	0	0	16-3584
+chrM	15728	0	0	0	0	0	0	0	16-3584
+chrM	15729	0	0	0	0	0	0	0	16-3584
+chrM	15730	0	0	0	0	0	0	0	16-3584
+chrM	15731	0	0	0	0	0	0	0	16-3584
+chrM	15732	0	0	0	0	0	0	0	16-3584
+chrM	15733	0	0	0	0	0	0	0	16-3584
+chrM	15734	0	0	0	0	0	0	0	16-3584
+chrM	15735	0	0	0	0	0	0	0	16-3584
+chrM	15736	0	0	0	0	0	0	0	16-3584
+chrM	15737	0	0	0	0	0	0	0	16-3584
+chrM	15738	0	0	0	0	0	0	0	16-3584
+chrM	15739	0	0	0	0	0	0	0	16-3584
+chrM	15740	0	0	0	0	0	0	0	16-3584
+chrM	15741	0	0	0	0	0	0	0	16-3584
+chrM	15742	0	0	0	0	0	0	0	16-3584
+chrM	15743	0	0	0	0	0	0	0	16-3584
+chrM	15744	0	0	0	0	0	0	0	16-3584
+chrM	15745	0	0	0	0	0	0	0	16-3584
+chrM	15746	0	0	0	0	0	0	0	16-3584
+chrM	15747	0	0	0	0	0	0	0	16-3584
+chrM	15748	0	0	0	0	0	0	0	16-3584
+chrM	15749	0	0	0	0	0	0	0	16-3584
+chrM	15750	0	0	0	0	0	0	0	16-3584
+chrM	15751	0	0	0	0	0	0	0	16-3584
+chrM	15752	0	0	0	0	0	0	0	16-3584
+chrM	15753	0	0	0	0	0	0	0	16-3584
+chrM	15754	0	0	0	0	0	0	0	16-3584
+chrM	15755	0	0	0	0	0	0	0	16-3584
+chrM	15756	0	0	0	0	0	0	0	16-3584
+chrM	15757	0	0	0	0	0	0	0	16-3584
+chrM	15758	0	0	0	0	0	0	0	16-3584
+chrM	15759	0	0	0	0	0	0	0	16-3584
+chrM	15760	0	0	0	0	0	0	0	16-3584
+chrM	15761	0	0	0	0	0	0	0	16-3584
+chrM	15762	0	0	0	0	0	0	0	16-3584
+chrM	15763	0	0	0	0	0	0	0	16-3584
+chrM	15764	0	0	0	0	0	0	0	16-3584
+chrM	15765	0	0	0	0	0	0	0	16-3584
+chrM	15766	0	0	0	0	0	0	0	16-3584
+chrM	15767	0	0	0	0	0	0	0	16-3584
+chrM	15768	0	0	0	0	0	0	0	16-3584
+chrM	15769	0	0	0	0	0	0	0	16-3584
+chrM	15770	0	0	0	0	0	0	0	16-3584
+chrM	15771	0	0	0	0	0	0	0	16-3584
+chrM	15772	0	0	0	0	0	0	0	16-3584
+chrM	15773	0	0	0	0	0	0	0	16-3584
+chrM	15774	0	0	0	0	0	0	0	16-3584
+chrM	15775	0	0	0	0	0	0	0	16-3584
+chrM	15776	0	0	0	0	0	0	0	16-3584
+chrM	15777	0	0	0	0	0	0	0	16-3584
+chrM	15778	0	0	0	0	0	0	0	16-3584
+chrM	15779	0	0	0	0	0	0	0	16-3584
+chrM	15780	0	0	0	0	0	0	0	16-3584
+chrM	15781	0	0	0	0	0	0	0	16-3584
+chrM	15782	0	0	0	0	0	0	0	16-3584
+chrM	15783	0	0	0	0	0	0	0	16-3584
+chrM	15784	0	0	0	0	0	0	0	16-3584
+chrM	15785	0	0	0	0	0	0	0	16-3584
+chrM	15786	0	0	0	0	0	0	0	16-3584
+chrM	15787	0	0	0	0	0	0	0	16-3584
+chrM	15788	0	0	0	0	0	0	0	16-3584
+chrM	15789	0	0	0	0	0	0	0	16-3584
+chrM	15790	0	0	0	0	0	0	0	16-3584
+chrM	15791	0	0	0	0	0	0	0	16-3584
+chrM	15792	0	0	0	0	0	0	0	16-3584
+chrM	15793	0	0	0	0	0	0	0	16-3584
+chrM	15794	0	0	0	0	0	0	0	16-3584
+chrM	15795	0	0	0	0	0	0	0	16-3584
+chrM	15796	0	0	0	0	0	0	0	16-3584
+chrM	15797	0	0	0	0	0	0	0	16-3584
+chrM	15798	0	0	0	0	0	0	0	16-3584
+chrM	15799	0	0	0	0	0	0	0	16-3584
+chrM	15800	0	0	0	0	0	0	0	16-3584
+chrM	15801	0	0	0	0	0	0	0	16-3584
+chrM	15802	0	0	0	0	0	0	0	16-3584
+chrM	15803	0	0	0	0	0	0	0	16-3584
+chrM	15804	0	0	0	0	0	0	0	16-3584
+chrM	15805	0	0	0	0	0	0	0	16-3584
+chrM	15806	0	0	0	0	0	0	0	16-3584
+chrM	15807	0	0	0	0	0	0	0	16-3584
+chrM	15808	0	0	0	0	0	0	0	16-3584
+chrM	15809	0	0	0	0	0	0	0	16-3584
+chrM	15810	0	0	0	0	0	0	0	16-3584
+chrM	15811	0	0	0	0	0	0	0	16-3584
+chrM	15812	0	0	0	0	0	0	0	16-3584
+chrM	15813	0	0	0	0	0	0	0	16-3584
+chrM	15814	0	0	0	0	0	0	0	16-3584
+chrM	15815	0	0	0	0	0	0	0	16-3584
+chrM	15816	0	0	0	0	0	0	0	16-3584
+chrM	15817	0	0	0	0	0	0	0	16-3584
+chrM	15818	0	0	0	0	0	0	0	16-3584
+chrM	15819	0	0	0	0	0	0	0	16-3584
+chrM	15820	0	0	0	0	0	0	0	16-3584
+chrM	15821	0	0	0	0	0	0	0	16-3584
+chrM	15822	0	0	0	0	0	0	0	16-3584
+chrM	15823	0	0	0	0	0	0	0	16-3584
+chrM	15824	0	0	0	0	0	0	0	16-3584
+chrM	15825	0	0	0	0	0	0	0	16-3584
+chrM	15826	0	0	0	0	0	0	0	16-3584
+chrM	15827	0	0	0	0	0	0	0	16-3584
+chrM	15828	0	0	0	0	0	0	0	16-3584
+chrM	15829	0	0	0	0	0	0	0	16-3584
+chrM	15830	0	0	0	0	0	0	0	16-3584
+chrM	15831	0	0	0	0	0	0	0	16-3584
+chrM	15832	0	0	0	0	0	0	0	16-3584
+chrM	15833	0	0	0	0	0	0	0	16-3584
+chrM	15834	0	0	0	0	0	0	0	16-3584
+chrM	15835	0	0	0	0	0	0	0	16-3584
+chrM	15836	0	0	0	0	0	0	0	16-3584
+chrM	15837	0	0	0	0	0	0	0	16-3584
+chrM	15838	0	0	0	0	0	0	0	16-3584
+chrM	15839	0	0	0	0	0	0	0	16-3584
+chrM	15840	0	0	0	0	0	0	0	16-3584
+chrM	15841	0	0	0	0	0	0	0	16-3584
+chrM	15842	0	0	0	0	0	0	0	16-3584
+chrM	15843	0	0	0	0	0	0	0	16-3584
+chrM	15844	0	0	0	0	0	0	0	16-3584
+chrM	15845	0	0	0	0	0	0	0	16-3584
+chrM	15846	0	0	0	0	0	0	0	16-3584
+chrM	15847	0	0	0	0	0	0	0	16-3584
+chrM	15848	0	0	0	0	0	0	0	16-3584
+chrM	15849	0	0	0	0	0	0	0	16-3584
+chrM	15850	0	0	0	0	0	0	0	16-3584
+chrM	15851	0	0	0	0	0	0	0	16-3584
+chrM	15852	0	0	0	0	0	0	0	16-3584
+chrM	15853	0	0	0	0	0	0	0	16-3584
+chrM	15854	0	0	0	0	0	0	0	16-3584
+chrM	15855	0	0	0	0	0	0	0	16-3584
+chrM	15856	0	0	0	0	0	0	0	16-3584
+chrM	15857	0	0	0	0	0	0	0	16-3584
+chrM	15858	0	0	0	0	0	0	0	16-3584
+chrM	15859	0	0	0	0	0	0	0	16-3584
+chrM	15860	0	0	0	0	0	0	0	16-3584
+chrM	15861	0	0	0	0	0	0	0	16-3584
+chrM	15862	0	0	0	0	0	0	0	16-3584
+chrM	15863	0	0	0	0	0	0	0	16-3584
+chrM	15864	0	0	0	0	0	0	0	16-3584
+chrM	15865	0	0	0	0	0	0	0	16-3584
+chrM	15866	0	0	0	0	0	0	0	16-3584
+chrM	15867	0	0	0	0	0	0	0	16-3584
+chrM	15868	0	0	0	0	0	0	0	16-3584
+chrM	15869	0	0	0	0	0	0	0	16-3584
+chrM	15870	0	0	0	0	0	0	0	16-3584
+chrM	15871	0	0	0	0	0	0	0	16-3584
+chrM	15872	0	0	0	0	0	0	0	16-3584
+chrM	15873	0	0	0	0	0	0	0	16-3584
+chrM	15874	0	0	0	0	0	0	0	16-3584
+chrM	15875	0	0	0	0	0	0	0	16-3584
+chrM	15876	0	0	0	0	0	0	0	16-3584
+chrM	15877	0	0	0	0	0	0	0	16-3584
+chrM	15878	0	0	0	0	0	0	0	16-3584
+chrM	15879	0	0	0	0	0	0	0	16-3584
+chrM	15880	0	0	0	0	0	0	0	16-3584
+chrM	15881	0	0	0	0	0	0	0	16-3584
+chrM	15882	0	0	0	0	0	0	0	16-3584
+chrM	15883	0	0	0	0	0	0	0	16-3584
+chrM	15884	0	0	0	0	0	0	0	16-3584
+chrM	15885	0	0	0	0	0	0	0	16-3584
+chrM	15886	0	0	0	0	0	0	0	16-3584
+chrM	15887	0	0	0	0	0	0	0	16-3584
+chrM	15888	0	0	0	0	0	0	0	16-3584
+chrM	15889	0	0	0	0	0	0	0	16-3584
+chrM	15890	0	0	0	0	0	0	0	16-3584
+chrM	15891	0	0	0	0	0	0	0	16-3584
+chrM	15892	0	0	0	0	0	0	0	16-3584
+chrM	15893	0	0	0	0	0	0	0	16-3584
+chrM	15894	0	0	0	0	0	0	0	16-3584
+chrM	15895	0	0	0	0	0	0	0	16-3584
+chrM	15896	0	0	0	0	0	0	0	16-3584
+chrM	15897	0	0	0	0	0	0	0	16-3584
+chrM	15898	0	0	0	0	0	0	0	16-3584
+chrM	15899	0	0	0	0	0	0	0	16-3584
+chrM	15900	0	0	0	0	0	0	0	16-3584
+chrM	15901	0	0	0	0	0	0	0	16-3584
+chrM	15902	0	0	0	0	0	0	0	16-3584
+chrM	15903	0	0	0	0	0	0	0	16-3584
+chrM	15904	0	0	0	0	0	0	0	16-3584
+chrM	15905	0	0	0	0	0	0	0	16-3584
+chrM	15906	0	0	0	0	0	0	0	16-3584
+chrM	15907	0	0	0	0	0	0	0	16-3584
+chrM	15908	0	0	0	0	0	0	0	16-3584
+chrM	15909	0	0	0	0	0	0	0	16-3584
+chrM	15910	0	0	0	0	0	0	0	16-3584
+chrM	15911	0	0	0	0	0	0	0	16-3584
+chrM	15912	0	0	0	0	0	0	0	16-3584
+chrM	15913	0	0	0	0	0	0	0	16-3584
+chrM	15914	0	0	0	0	0	0	0	16-3584
+chrM	15915	0	0	0	0	0	0	0	16-3584
+chrM	15916	0	0	0	0	0	0	0	16-3584
+chrM	15917	0	0	0	0	0	0	0	16-3584
+chrM	15918	0	0	0	0	0	0	0	16-3584
+chrM	15919	0	0	0	0	0	0	0	16-3584
+chrM	15920	0	0	0	0	0	0	0	16-3584
+chrM	15921	0	0	0	0	0	0	0	16-3584
+chrM	15922	0	0	0	0	0	0	0	16-3584
+chrM	15923	0	0	0	0	0	0	0	16-3584
+chrM	15924	0	0	0	0	0	0	0	16-3584
+chrM	15925	0	0	0	0	0	0	0	16-3584
+chrM	15926	0	0	0	0	0	0	0	16-3584
+chrM	15927	0	0	0	0	0	0	0	16-3584
+chrM	15928	0	0	0	0	0	0	0	16-3584
+chrM	15929	0	0	0	0	0	0	0	16-3584
+chrM	15930	0	0	0	0	0	0	0	16-3584
+chrM	15931	0	0	0	0	0	0	0	16-3584
+chrM	15932	0	0	0	0	0	0	0	16-3584
+chrM	15933	0	0	0	0	0	0	0	16-3584
+chrM	15934	0	0	0	0	0	0	0	16-3584
+chrM	15935	0	0	0	0	0	0	0	16-3584
+chrM	15936	0	0	0	0	0	0	0	16-3584
+chrM	15937	0	0	0	0	0	0	0	16-3584
+chrM	15938	0	0	0	0	0	0	0	16-3584
+chrM	15939	0	0	0	0	0	0	0	16-3584
+chrM	15940	0	0	0	0	0	0	0	16-3584
+chrM	15941	0	0	0	0	0	0	0	16-3584
+chrM	15942	0	0	0	0	0	0	0	16-3584
+chrM	15943	0	0	0	0	0	0	0	16-3584
+chrM	15944	0	0	0	0	0	0	0	16-3584
+chrM	15945	0	0	0	0	0	0	0	16-3584
+chrM	15946	0	0	0	0	0	0	0	16-3584
+chrM	15947	0	0	0	0	0	0	0	16-3584
+chrM	15948	0	0	0	0	0	0	0	16-3584
+chrM	15949	0	0	0	0	0	0	0	16-3584
+chrM	15950	0	0	0	0	0	0	0	16-3584
+chrM	15951	0	0	0	0	0	0	0	16-3584
+chrM	15952	0	0	0	0	0	0	0	16-3584
+chrM	15953	0	0	0	0	0	0	0	16-3584
+chrM	15954	0	0	0	0	0	0	0	16-3584
+chrM	15955	0	0	0	0	0	0	0	16-3584
+chrM	15956	0	0	0	0	0	0	0	16-3584
+chrM	15957	0	0	0	0	0	0	0	16-3584
+chrM	15958	0	0	0	0	0	0	0	16-3584
+chrM	15959	0	0	0	0	0	0	0	16-3584
+chrM	15960	0	0	0	0	0	0	0	16-3584
+chrM	15961	0	0	0	0	0	0	0	16-3584
+chrM	15962	0	0	0	0	0	0	0	16-3584
+chrM	15963	0	0	0	0	0	0	0	16-3584
+chrM	15964	0	0	0	0	0	0	0	16-3584
+chrM	15965	0	0	0	0	0	0	0	16-3584
+chrM	15966	0	0	0	0	0	0	0	16-3584
+chrM	15967	0	0	0	0	0	0	0	16-3584
+chrM	15968	0	0	0	0	0	0	0	16-3584
+chrM	15969	0	0	0	0	0	0	0	16-3584
+chrM	15970	0	0	0	0	0	0	0	16-3584
+chrM	15971	0	0	0	0	0	0	0	16-3584
+chrM	15972	0	0	0	0	0	0	0	16-3584
+chrM	15973	0	0	0	0	0	0	0	16-3584
+chrM	15974	0	0	0	0	0	0	0	16-3584
+chrM	15975	0	0	0	0	0	0	0	16-3584
+chrM	15976	0	0	0	0	0	0	0	16-3584
+chrM	15977	0	0	0	0	0	0	0	16-3584
+chrM	15978	0	0	0	0	0	0	0	16-3584
+chrM	15979	0	0	0	0	0	0	0	16-3584
+chrM	15980	0	0	0	0	0	0	0	16-3584
+chrM	15981	0	0	0	0	0	0	0	16-3584
+chrM	15982	0	0	0	0	0	0	0	16-3584
+chrM	15983	0	0	0	0	0	0	0	16-3584
+chrM	15984	0	0	0	0	0	0	0	16-3584
+chrM	15985	0	0	0	0	0	0	0	16-3584
+chrM	15986	0	0	0	0	0	0	0	16-3584
+chrM	15987	0	0	0	0	0	0	0	16-3584
+chrM	15988	0	0	0	0	0	0	0	16-3584
+chrM	15989	0	0	0	0	0	0	0	16-3584
+chrM	15990	0	0	0	0	0	0	0	16-3584
+chrM	15991	0	0	0	0	0	0	0	16-3584
+chrM	15992	0	0	0	0	0	0	0	16-3584
+chrM	15993	0	0	0	0	0	0	0	16-3584
+chrM	15994	0	0	0	0	0	0	0	16-3584
+chrM	15995	0	0	0	0	0	0	0	16-3584
+chrM	15996	0	0	0	0	0	0	0	16-3584
+chrM	15997	0	0	0	0	0	0	0	16-3584
+chrM	15998	0	0	0	0	0	0	0	16-3584
+chrM	15999	0	0	0	0	0	0	0	16-3584
+chrM	16000	0	0	0	0	0	0	0	16-3584
+chrM	16001	0	0	0	0	0	0	0	16-3584
+chrM	16002	0	0	0	0	0	0	0	16-3584
+chrM	16003	0	0	0	0	0	0	0	16-3584
+chrM	16004	0	0	0	0	0	0	0	16-3584
+chrM	16005	0	0	0	0	0	0	0	16-3584
+chrM	16006	0	0	0	0	0	0	0	16-3584
+chrM	16007	0	0	0	0	0	0	0	16-3584
+chrM	16008	0	0	0	0	0	0	0	16-3584
+chrM	16009	0	0	0	0	0	0	0	16-3584
+chrM	16010	0	0	0	0	0	0	0	16-3584
+chrM	16011	0	0	0	0	0	0	0	16-3584
+chrM	16012	0	0	0	0	0	0	0	16-3584
+chrM	16013	0	0	0	0	0	0	0	16-3584
+chrM	16014	0	0	0	0	0	0	0	16-3584
+chrM	16015	0	0	0	0	0	0	0	16-3584
+chrM	16016	0	0	0	0	0	0	0	16-3584
+chrM	16017	0	0	0	0	0	0	0	16-3584
+chrM	16018	0	0	0	0	0	0	0	16-3584
+chrM	16019	0	0	0	0	0	0	0	16-3584
+chrM	16020	0	0	0	0	0	0	0	16-3584
+chrM	16021	0	0	0	0	0	0	0	16-3584
+chrM	16022	0	0	0	0	0	0	0	16-3584
+chrM	16023	0	0	0	0	0	0	0	16-3584
+chrM	16024	0	0	0	0	0	0	0	16-3584
+chrM	16025	0	0	0	0	0	0	0	16-3584
+chrM	16026	0	0	0	0	0	0	0	16-3584
+chrM	16027	0	0	0	0	0	0	0	16-3584
+chrM	16028	0	0	0	0	0	0	0	16-3584
+chrM	16029	0	0	0	0	0	0	0	16-3584
+chrM	16030	0	0	0	0	0	0	0	16-3584
+chrM	16031	0	0	0	0	0	0	0	16-3584
+chrM	16032	0	0	0	0	0	0	0	16-3584
+chrM	16033	0	0	0	0	0	0	0	16-3584
+chrM	16034	0	0	0	0	0	0	0	16-3584
+chrM	16035	0	0	0	0	0	0	0	16-3584
+chrM	16036	0	0	0	0	0	0	0	16-3584
+chrM	16037	0	0	0	0	0	0	0	16-3584
+chrM	16038	0	0	0	0	0	0	0	16-3584
+chrM	16039	0	0	0	0	0	0	0	16-3584
+chrM	16040	0	0	0	0	0	0	0	16-3584
+chrM	16041	0	0	0	0	0	0	0	16-3584
+chrM	16042	0	0	0	0	0	0	0	16-3584
+chrM	16043	0	0	0	0	0	0	0	16-3584
+chrM	16044	0	0	0	0	0	0	0	16-3584
+chrM	16045	0	0	0	0	0	0	0	16-3584
+chrM	16046	0	0	0	0	0	0	0	16-3584
+chrM	16047	0	0	0	0	0	0	0	16-3584
+chrM	16048	0	0	0	0	0	0	0	16-3584
+chrM	16049	0	0	0	0	0	0	0	16-3584
+chrM	16050	0	0	0	0	0	0	0	16-3584
+chrM	16051	0	0	0	0	0	0	0	16-3584
+chrM	16052	0	0	0	0	0	0	0	16-3584
+chrM	16053	0	0	0	0	0	0	0	16-3584
+chrM	16054	0	0	0	0	0	0	0	16-3584
+chrM	16055	0	0	0	0	0	0	0	16-3584
+chrM	16056	0	0	0	0	0	0	0	16-3584
+chrM	16057	0	0	0	0	0	0	0	16-3584
+chrM	16058	0	0	0	0	0	0	0	16-3584
+chrM	16059	0	0	0	0	0	0	0	16-3584
+chrM	16060	0	0	0	0	0	0	0	16-3584
+chrM	16061	0	0	0	0	0	0	0	16-3584
+chrM	16062	0	0	0	0	0	0	0	16-3584
+chrM	16063	0	0	0	0	0	0	0	16-3584
+chrM	16064	0	0	0	0	0	0	0	16-3584
+chrM	16065	0	0	0	0	0	0	0	16-3584
+chrM	16066	0	0	0	0	0	0	0	16-3584
+chrM	16067	0	0	0	0	0	0	0	16-3584
+chrM	16068	0	0	0	0	0	0	0	16-3584
+chrM	16069	0	0	0	0	0	0	0	16-3584
+chrM	16070	0	0	0	0	0	0	0	16-3584
+chrM	16071	0	0	0	0	0	0	0	16-3584
+chrM	16072	0	0	0	0	0	0	0	16-3584
+chrM	16073	0	0	0	0	0	0	0	16-3584
+chrM	16074	0	0	0	0	0	0	0	16-3584
+chrM	16075	0	0	0	0	0	0	0	16-3584
+chrM	16076	0	0	0	0	0	0	0	16-3584
+chrM	16077	0	0	0	0	0	0	0	16-3584
+chrM	16078	0	0	0	0	0	0	0	16-3584
+chrM	16079	0	0	0	0	0	0	0	16-3584
+chrM	16080	0	0	0	0	0	0	0	16-3584
+chrM	16081	0	0	0	0	0	0	0	16-3584
+chrM	16082	0	0	0	0	0	0	0	16-3584
+chrM	16083	0	0	0	0	0	0	0	16-3584
+chrM	16084	0	0	0	0	0	0	0	16-3584
+chrM	16085	0	0	0	0	0	0	0	16-3584
+chrM	16086	0	0	0	0	0	0	0	16-3584
+chrM	16087	0	0	0	0	0	0	0	16-3584
+chrM	16088	0	0	0	0	0	0	0	16-3584
+chrM	16089	0	0	0	0	0	0	0	16-3584
+chrM	16090	0	0	0	0	0	0	0	16-3584
+chrM	16091	0	0	0	0	0	0	0	16-3584
+chrM	16092	0	0	0	0	0	0	0	16-3584
+chrM	16093	0	0	0	0	0	0	0	16-3584
+chrM	16094	0	0	0	0	0	0	0	16-3584
+chrM	16095	0	0	0	0	0	0	0	16-3584
+chrM	16096	0	0	0	0	0	0	0	16-3584
+chrM	16097	0	0	0	0	0	0	0	16-3584
+chrM	16098	0	0	0	0	0	0	0	16-3584
+chrM	16099	0	0	0	0	0	0	0	16-3584
+chrM	16100	0	0	0	0	0	0	0	16-3584
+chrM	16101	0	0	0	0	0	0	0	16-3584
+chrM	16102	0	0	0	0	0	0	0	16-3584
+chrM	16103	0	0	0	0	0	0	0	16-3584
+chrM	16104	0	0	0	0	0	0	0	16-3584
+chrM	16105	0	0	0	0	0	0	0	16-3584
+chrM	16106	0	0	0	0	0	0	0	16-3584
+chrM	16107	0	0	0	0	0	0	0	16-3584
+chrM	16108	0	0	0	0	0	0	0	16-3584
+chrM	16109	0	0	0	0	0	0	0	16-3584
+chrM	16110	0	0	0	0	0	0	0	16-3584
+chrM	16111	0	0	0	0	0	0	0	16-3584
+chrM	16112	0	0	0	0	0	0	0	16-3584
+chrM	16113	0	0	0	0	0	0	0	16-3584
+chrM	16114	0	0	0	0	0	0	0	16-3584
+chrM	16115	0	0	0	0	0	0	0	16-3584
+chrM	16116	0	0	0	0	0	0	0	16-3584
+chrM	16117	0	0	0	0	0	0	0	16-3584
+chrM	16118	0	0	0	0	0	0	0	16-3584
+chrM	16119	0	0	0	0	0	0	0	16-3584
+chrM	16120	0	0	0	0	0	0	0	16-3584
+chrM	16121	0	0	0	0	0	0	0	16-3584
+chrM	16122	0	0	0	0	0	0	0	16-3584
+chrM	16123	0	0	0	0	0	0	0	16-3584
+chrM	16124	0	0	0	0	0	0	0	16-3584
+chrM	16125	0	0	0	0	0	0	0	16-3584
+chrM	16126	0	0	0	0	0	0	0	16-3584
+chrM	16127	0	0	0	0	0	0	0	16-3584
+chrM	16128	0	0	0	0	0	0	0	16-3584
+chrM	16129	0	0	0	0	0	0	0	16-3584
+chrM	16130	0	0	0	0	0	0	0	16-3584
+chrM	16131	0	0	0	0	0	0	0	16-3584
+chrM	16132	0	0	0	0	0	0	0	16-3584
+chrM	16133	0	0	0	0	0	0	0	16-3584
+chrM	16134	0	0	0	0	0	0	0	16-3584
+chrM	16135	0	0	0	0	0	0	0	16-3584
+chrM	16136	0	0	0	0	0	0	0	16-3584
+chrM	16137	0	0	0	0	0	0	0	16-3584
+chrM	16138	0	0	0	0	0	0	0	16-3584
+chrM	16139	0	0	0	0	0	0	0	16-3584
+chrM	16140	0	0	0	0	0	0	0	16-3584
+chrM	16141	0	0	0	0	0	0	0	16-3584
+chrM	16142	0	0	0	0	0	0	0	16-3584
+chrM	16143	0	0	0	0	0	0	0	16-3584
+chrM	16144	0	0	0	0	0	0	0	16-3584
+chrM	16145	0	0	0	0	0	0	0	16-3584
+chrM	16146	0	0	0	0	0	0	0	16-3584
+chrM	16147	0	0	0	0	0	0	0	16-3584
+chrM	16148	0	0	0	0	0	0	0	16-3584
+chrM	16149	0	0	0	0	0	0	0	16-3584
+chrM	16150	0	0	0	0	0	0	0	16-3584
+chrM	16151	0	0	0	0	0	0	0	16-3584
+chrM	16152	0	0	0	0	0	0	0	16-3584
+chrM	16153	0	0	0	0	0	0	0	16-3584
+chrM	16154	0	0	0	0	0	0	0	16-3584
+chrM	16155	0	0	0	0	0	0	0	16-3584
+chrM	16156	0	0	0	0	0	0	0	16-3584
+chrM	16157	0	0	0	0	0	0	0	16-3584
+chrM	16158	0	0	0	0	0	0	0	16-3584
+chrM	16159	0	0	0	0	0	0	0	16-3584
+chrM	16160	0	0	0	0	0	0	0	16-3584
+chrM	16161	0	0	0	0	0	0	0	16-3584
+chrM	16162	0	0	0	0	0	0	0	16-3584
+chrM	16163	0	0	0	0	0	0	0	16-3584
+chrM	16164	0	0	0	0	0	0	0	16-3584
+chrM	16165	0	0	0	0	0	0	0	16-3584
+chrM	16166	0	0	0	0	0	0	0	16-3584
+chrM	16167	0	0	0	0	0	0	0	16-3584
+chrM	16168	0	0	0	0	0	0	0	16-3584
+chrM	16169	0	0	0	0	0	0	0	16-3584
+chrM	16170	0	0	0	0	0	0	0	16-3584
+chrM	16171	0	0	0	0	0	0	0	16-3584
+chrM	16172	0	0	0	0	0	0	0	16-3584
+chrM	16173	0	0	0	0	0	0	0	16-3584
+chrM	16174	0	0	0	0	0	0	0	16-3584
+chrM	16175	0	0	0	0	0	0	0	16-3584
+chrM	16176	0	0	0	0	0	0	0	16-3584
+chrM	16177	0	0	0	0	0	0	0	16-3584
+chrM	16178	0	0	0	0	0	0	0	16-3584
+chrM	16179	0	0	0	0	0	0	0	16-3584
+chrM	16180	0	0	0	0	0	0	0	16-3584
+chrM	16181	0	0	0	0	0	0	0	16-3584
+chrM	16182	0	0	0	0	0	0	0	16-3584
+chrM	16183	0	0	0	0	0	0	0	16-3584
+chrM	16184	0	0	0	0	0	0	0	16-3584
+chrM	16185	0	0	0	0	0	0	0	16-3584
+chrM	16186	0	0	0	0	0	0	0	16-3584
+chrM	16187	0	0	0	0	0	0	0	16-3584
+chrM	16188	0	0	0	0	0	0	0	16-3584
+chrM	16189	0	0	0	0	0	0	0	16-3584
+chrM	16190	0	0	0	0	0	0	0	16-3584
+chrM	16191	0	0	0	0	0	0	0	16-3584
+chrM	16192	0	0	0	0	0	0	0	16-3584
+chrM	16193	0	0	0	0	0	0	0	16-3584
+chrM	16194	0	0	0	0	0	0	0	16-3584
+chrM	16195	0	0	0	0	0	0	0	16-3584
+chrM	16196	0	0	0	0	0	0	0	16-3584
+chrM	16197	0	0	0	0	0	0	0	16-3584
+chrM	16198	0	0	0	0	0	0	0	16-3584
+chrM	16199	0	0	0	0	0	0	0	16-3584
+chrM	16200	0	0	0	0	0	0	0	16-3584
+chrM	16201	0	0	0	0	0	0	0	16-3584
+chrM	16202	0	0	0	0	0	0	0	16-3584
+chrM	16203	0	0	0	0	0	0	0	16-3584
+chrM	16204	0	0	0	0	0	0	0	16-3584
+chrM	16205	0	0	0	0	0	0	0	16-3584
+chrM	16206	0	0	0	0	0	0	0	16-3584
+chrM	16207	0	0	0	0	0	0	0	16-3584
+chrM	16208	0	0	0	0	0	0	0	16-3584
+chrM	16209	0	0	0	0	0	0	0	16-3584
+chrM	16210	0	0	0	0	0	0	0	16-3584
+chrM	16211	0	0	0	0	0	0	0	16-3584
+chrM	16212	0	0	0	0	0	0	0	16-3584
+chrM	16213	0	0	0	0	0	0	0	16-3584
+chrM	16214	0	0	0	0	0	0	0	16-3584
+chrM	16215	0	0	0	0	0	0	0	16-3584
+chrM	16216	0	0	0	0	0	0	0	16-3584
+chrM	16217	0	0	0	0	0	0	0	16-3584
+chrM	16218	0	0	0	0	0	0	0	16-3584
+chrM	16219	0	0	0	0	0	0	0	16-3584
+chrM	16220	0	0	0	0	0	0	0	16-3584
+chrM	16221	0	0	0	0	0	0	0	16-3584
+chrM	16222	0	0	0	0	0	0	0	16-3584
+chrM	16223	0	0	0	0	0	0	0	16-3584
+chrM	16224	0	0	0	0	0	0	0	16-3584
+chrM	16225	0	0	0	0	0	0	0	16-3584
+chrM	16226	0	0	0	0	0	0	0	16-3584
+chrM	16227	0	0	0	0	0	0	0	16-3584
+chrM	16228	0	0	0	0	0	0	0	16-3584
+chrM	16229	0	0	0	0	0	0	0	16-3584
+chrM	16230	0	0	0	0	0	0	0	16-3584
+chrM	16231	0	0	0	0	0	0	0	16-3584
+chrM	16232	0	0	0	0	0	0	0	16-3584
+chrM	16233	0	0	0	0	0	0	0	16-3584
+chrM	16234	0	0	0	0	0	0	0	16-3584
+chrM	16235	0	0	0	0	0	0	0	16-3584
+chrM	16236	0	0	0	0	0	0	0	16-3584
+chrM	16237	0	0	0	0	0	0	0	16-3584
+chrM	16238	0	0	0	0	0	0	0	16-3584
+chrM	16239	0	0	0	0	0	0	0	16-3584
+chrM	16240	0	0	0	0	0	0	0	16-3584
+chrM	16241	0	0	0	0	0	0	0	16-3584
+chrM	16242	0	0	0	0	0	0	0	16-3584
+chrM	16243	0	0	0	0	0	0	0	16-3584
+chrM	16244	0	0	0	0	0	0	0	16-3584
+chrM	16245	0	0	0	0	0	0	0	16-3584
+chrM	16246	0	0	0	0	0	0	0	16-3584
+chrM	16247	0	0	0	0	0	0	0	16-3584
+chrM	16248	0	0	0	0	0	0	0	16-3584
+chrM	16249	0	0	0	0	0	0	0	16-3584
+chrM	16250	0	0	0	0	0	0	0	16-3584
+chrM	16251	0	0	0	0	0	0	0	16-3584
+chrM	16252	0	0	0	0	0	0	0	16-3584
+chrM	16253	0	0	0	0	0	0	0	16-3584
+chrM	16254	0	0	0	0	0	0	0	16-3584
+chrM	16255	0	0	0	0	0	0	0	16-3584
+chrM	16256	0	0	0	0	0	0	0	16-3584
+chrM	16257	0	0	0	0	0	0	0	16-3584
+chrM	16258	0	0	0	0	0	0	0	16-3584
+chrM	16259	0	0	0	0	0	0	0	16-3584
+chrM	16260	0	0	0	0	0	0	0	16-3584
+chrM	16261	0	0	0	0	0	0	0	16-3584
+chrM	16262	0	0	0	0	0	0	0	16-3584
+chrM	16263	0	0	0	0	0	0	0	16-3584
+chrM	16264	0	0	0	0	0	0	0	16-3584
+chrM	16265	0	0	0	0	0	0	0	16-3584
+chrM	16266	0	0	0	0	0	0	0	16-3584
+chrM	16267	0	0	0	0	0	0	0	16-3584
+chrM	16268	0	0	0	0	0	0	0	16-3584
+chrM	16269	0	0	0	0	0	0	0	16-3584
+chrM	16270	0	0	0	0	0	0	0	16-3584
+chrM	16271	0	0	0	0	0	0	0	16-3584
+chrM	16272	0	0	0	0	0	0	0	16-3584
+chrM	16273	0	0	0	0	0	0	0	16-3584
+chrM	16274	0	0	0	0	0	0	0	16-3584
+chrM	16275	0	0	0	0	0	0	0	16-3584
+chrM	16276	0	0	0	0	0	0	0	16-3584
+chrM	16277	0	0	0	0	0	0	0	16-3584
+chrM	16278	0	0	0	0	0	0	0	16-3584
+chrM	16279	0	0	0	0	0	0	0	16-3584
+chrM	16280	0	0	0	0	0	0	0	16-3584
+chrM	16281	0	0	0	0	0	0	0	16-3584
+chrM	16282	0	0	0	0	0	0	0	16-3584
+chrM	16283	0	0	0	0	0	0	0	16-3584
+chrM	16284	0	0	0	0	0	0	0	16-3584
+chrM	16285	0	0	0	0	0	0	0	16-3584
+chrM	16286	0	0	0	0	0	0	0	16-3584
+chrM	16287	0	0	0	0	0	0	0	16-3584
+chrM	16288	0	0	0	0	0	0	0	16-3584
+chrM	16289	0	0	0	0	0	0	0	16-3584
+chrM	16290	0	0	0	0	0	0	0	16-3584
+chrM	16291	0	0	0	0	0	0	0	16-3584
+chrM	16292	0	0	0	0	0	0	0	16-3584
+chrM	16293	0	0	0	0	0	0	0	16-3584
+chrM	16294	0	0	0	0	0	0	0	16-3584
+chrM	16295	0	0	0	0	0	0	0	16-3584
+chrM	16296	0	0	0	0	0	0	0	16-3584
+chrM	16297	0	0	0	0	0	0	0	16-3584
+chrM	16298	0	0	0	0	0	0	0	16-3584
+chrM	16299	0	0	0	0	0	0	0	16-3584
+chrM	16300	0	0	0	0	0	0	0	16-3584
+chrM	16301	0	0	0	0	0	0	0	16-3584
+chrM	16302	0	0	0	0	0	0	0	16-3584
+chrM	16303	0	0	0	0	0	0	0	16-3584
+chrM	16304	0	0	0	0	0	0	0	16-3584
+chrM	16305	0	0	0	0	0	0	0	16-3584
+chrM	16306	0	0	0	0	0	0	0	16-3584
+chrM	16307	0	0	0	0	0	0	0	16-3584
+chrM	16308	0	0	0	0	0	0	0	16-3584
+chrM	16309	0	0	0	0	0	0	0	16-3584
+chrM	16310	0	0	0	0	0	0	0	16-3584
+chrM	16311	0	0	0	0	0	0	0	16-3584
+chrM	16312	0	0	0	0	0	0	0	16-3584
+chrM	16313	0	0	0	0	0	0	0	16-3584
+chrM	16314	0	0	0	0	0	0	0	16-3584
+chrM	16315	0	0	0	0	0	0	0	16-3584
+chrM	16316	0	0	0	0	0	0	0	16-3584
+chrM	16317	0	0	0	0	0	0	0	16-3584
+chrM	16318	0	0	0	0	0	0	0	16-3584
+chrM	16319	0	0	0	0	0	0	0	16-3584
+chrM	16320	0	0	0	0	0	0	0	16-3584
+chrM	16321	0	0	0	0	0	0	0	16-3584
+chrM	16322	0	0	0	0	0	0	0	16-3584
+chrM	16323	0	0	0	0	0	0	0	16-3584
+chrM	16324	0	0	0	0	0	0	0	16-3584
+chrM	16325	0	0	0	0	0	0	0	16-3584
+chrM	16326	0	0	0	0	0	0	0	16-3584
+chrM	16327	0	0	0	0	0	0	0	16-3584
+chrM	16328	0	0	0	0	0	0	0	16-3584
+chrM	16329	0	0	0	0	0	0	0	16-3584
+chrM	16330	0	0	0	0	0	0	0	16-3584
+chrM	16331	0	0	0	0	0	0	0	16-3584
+chrM	16332	0	0	0	0	0	0	0	16-3584
+chrM	16333	0	0	0	0	0	0	0	16-3584
+chrM	16334	0	0	0	0	0	0	0	16-3584
+chrM	16335	0	0	0	0	0	0	0	16-3584
+chrM	16336	0	0	0	0	0	0	0	16-3584
+chrM	16337	0	0	0	0	0	0	0	16-3584
+chrM	16338	0	0	0	0	0	0	0	16-3584
+chrM	16339	0	0	0	0	0	0	0	16-3584
+chrM	16340	0	0	0	0	0	0	0	16-3584
+chrM	16341	0	0	0	0	0	0	0	16-3584
+chrM	16342	0	0	0	0	0	0	0	16-3584
+chrM	16343	0	0	0	0	0	0	0	16-3584
+chrM	16344	0	0	0	0	0	0	0	16-3584
+chrM	16345	0	0	0	0	0	0	0	16-3584
+chrM	16346	0	0	0	0	0	0	0	16-3584
+chrM	16347	0	0	0	0	0	0	0	16-3584
+chrM	16348	0	0	0	0	0	0	0	16-3584
+chrM	16349	0	0	0	0	0	0	0	16-3584
+chrM	16350	0	0	0	0	0	0	0	16-3584
+chrM	16351	0	0	0	0	0	0	0	16-3584
+chrM	16352	0	0	0	0	0	0	0	16-3584
+chrM	16353	0	0	0	0	0	0	0	16-3584
+chrM	16354	0	0	0	0	0	0	0	16-3584
+chrM	16355	0	0	0	0	0	0	0	16-3584
+chrM	16356	0	0	0	0	0	0	0	16-3584
+chrM	16357	0	0	0	0	0	0	0	16-3584
+chrM	16358	0	0	0	0	0	0	0	16-3584
+chrM	16359	0	0	0	0	0	0	0	16-3584
+chrM	16360	0	0	0	0	0	0	0	16-3584
+chrM	16361	0	0	0	0	0	0	0	16-3584
+chrM	16362	0	0	0	0	0	0	0	16-3584
+chrM	16363	0	0	0	0	0	0	0	16-3584
+chrM	16364	0	0	0	0	0	0	0	16-3584
+chrM	16365	0	0	0	0	0	0	0	16-3584
+chrM	16366	0	0	0	0	0	0	0	16-3584
+chrM	16367	0	0	0	0	0	0	0	16-3584
+chrM	16368	0	0	0	0	0	0	0	16-3584
+chrM	16369	0	0	0	0	0	0	0	16-3584
+chrM	16370	0	0	0	0	0	0	0	16-3584
+chrM	16371	0	0	0	0	0	0	0	16-3584
+chrM	16372	0	0	0	0	0	0	0	16-3584
+chrM	16373	0	0	0	0	0	0	0	16-3584
+chrM	16374	0	0	0	0	0	0	0	16-3584
+chrM	16375	0	0	0	0	0	0	0	16-3584
+chrM	16376	0	0	0	0	0	0	0	16-3584
+chrM	16377	0	0	0	0	0	0	0	16-3584
+chrM	16378	0	0	0	0	0	0	0	16-3584
+chrM	16379	0	0	0	0	0	0	0	16-3584
+chrM	16380	0	0	0	0	0	0	0	16-3584
+chrM	16381	0	0	0	0	0	0	0	16-3584
+chrM	16382	0	0	0	0	0	0	0	16-3584
+chrM	16383	0	0	0	0	0	0	0	16-3584
+chrM	16384	0	0	0	0	0	0	0	16-3584
+chrM	16385	0	0	0	0	0	0	0	16-3584
+chrM	16386	0	0	0	0	0	0	0	16-3584
+chrM	16387	0	0	0	0	0	0	0	16-3584
+chrM	16388	0	0	0	0	0	0	0	16-3584
+chrM	16389	0	0	0	0	0	0	0	16-3584
+chrM	16390	0	0	0	0	0	0	0	16-3584
+chrM	16391	0	0	0	0	0	0	0	16-3584
+chrM	16392	0	0	0	0	0	0	0	16-3584
+chrM	16393	0	0	0	0	0	0	0	16-3584
+chrM	16394	0	0	0	0	0	0	0	16-3584
+chrM	16395	0	0	0	0	0	0	0	16-3584
+chrM	16396	0	0	0	0	0	0	0	16-3584
+chrM	16397	0	0	0	0	0	0	0	16-3584
+chrM	16398	0	0	0	0	0	0	0	16-3584
+chrM	16399	0	0	0	0	0	0	0	16-3584
+chrM	16400	0	0	0	0	0	0	0	16-3584
+chrM	16401	0	0	0	0	0	0	0	16-3584
+chrM	16402	0	0	0	0	0	0	0	16-3584
+chrM	16403	0	0	0	0	0	0	0	16-3584
+chrM	16404	0	0	0	0	0	0	0	16-3584
+chrM	16405	0	0	0	0	0	0	0	16-3584
+chrM	16406	0	0	0	0	0	0	0	16-3584
+chrM	16407	0	0	0	0	0	0	0	16-3584
+chrM	16408	0	0	0	0	0	0	0	16-3584
+chrM	16409	0	0	0	0	0	0	0	16-3584
+chrM	16410	0	0	0	0	0	0	0	16-3584
+chrM	16411	0	0	0	0	0	0	0	16-3584
+chrM	16412	0	0	0	0	0	0	0	16-3584
+chrM	16413	0	0	0	0	0	0	0	16-3584
+chrM	16414	0	0	0	0	0	0	0	16-3584
+chrM	16415	0	0	0	0	0	0	0	16-3584
+chrM	16416	0	0	0	0	0	0	0	16-3584
+chrM	16417	0	0	0	0	0	0	0	16-3584
+chrM	16418	0	0	0	0	0	0	0	16-3584
+chrM	16419	0	0	0	0	0	0	0	16-3584
+chrM	16420	0	0	0	0	0	0	0	16-3584
+chrM	16421	0	0	0	0	0	0	0	16-3584
+chrM	16422	0	0	0	0	0	0	0	16-3584
+chrM	16423	0	0	0	0	0	0	0	16-3584
+chrM	16424	0	0	0	0	0	0	0	16-3584
+chrM	16425	0	0	0	0	0	0	0	16-3584
+chrM	16426	0	0	0	0	0	0	0	16-3584
+chrM	16427	0	0	0	0	0	0	0	16-3584
+chrM	16428	0	0	0	0	0	0	0	16-3584
+chrM	16429	0	0	0	0	0	0	0	16-3584
+chrM	16430	0	0	0	0	0	0	0	16-3584
+chrM	16431	0	0	0	0	0	0	0	16-3584
+chrM	16432	0	0	0	0	0	0	0	16-3584
+chrM	16433	0	0	0	0	0	0	0	16-3584
+chrM	16434	0	0	0	0	0	0	0	16-3584
+chrM	16435	0	0	0	0	0	0	0	16-3584
+chrM	16436	0	0	0	0	0	0	0	16-3584
+chrM	16437	0	0	0	0	0	0	0	16-3584
+chrM	16438	0	0	0	0	0	0	0	16-3584
+chrM	16439	0	0	0	0	0	0	0	16-3584
+chrM	16440	0	0	0	0	0	0	0	16-3584
+chrM	16441	0	0	0	0	0	0	0	16-3584
+chrM	16442	0	0	0	0	0	0	0	16-3584
+chrM	16443	0	0	0	0	0	0	0	16-3584
+chrM	16444	0	0	0	0	0	0	0	16-3584
+chrM	16445	0	0	0	0	0	0	0	16-3584
+chrM	16446	0	0	0	0	0	0	0	16-3584
+chrM	16447	0	0	0	0	0	0	0	16-3584
+chrM	16448	0	0	0	0	0	0	0	16-3584
+chrM	16449	0	0	0	0	0	0	0	16-3584
+chrM	16450	0	0	0	0	0	0	0	16-3584
+chrM	16451	0	0	0	0	0	0	0	16-3584
+chrM	16452	0	0	0	0	0	0	0	16-3584
+chrM	16453	0	0	0	0	0	0	0	16-3584
+chrM	16454	0	0	0	0	0	0	0	16-3584
+chrM	16455	0	0	0	0	0	0	0	16-3584
+chrM	16456	0	0	0	0	0	0	0	16-3584
+chrM	16457	0	0	0	0	0	0	0	16-3584
+chrM	16458	0	0	0	0	0	0	0	16-3584
+chrM	16459	0	0	0	0	0	0	0	16-3584
+chrM	16460	0	0	0	0	0	0	0	16-3584
+chrM	16461	0	0	0	0	0	0	0	16-3584
+chrM	16462	0	0	0	0	0	0	0	16-3584
+chrM	16463	0	0	0	0	0	0	0	16-3584
+chrM	16464	0	0	0	0	0	0	0	16-3584
+chrM	16465	0	0	0	0	0	0	0	16-3584
+chrM	16466	0	0	0	0	0	0	0	16-3584
+chrM	16467	0	0	0	0	0	0	0	16-3584
+chrM	16468	0	0	0	0	0	0	0	16-3584
+chrM	16469	0	0	0	0	0	0	0	16-3584
+chrM	16470	0	0	0	0	0	0	0	16-3584
+chrM	16471	0	0	0	0	0	0	0	16-3584
+chrM	16472	0	0	0	0	0	0	0	16-3584
+chrM	16473	0	0	0	0	0	0	0	16-3584
+chrM	16474	0	0	0	0	0	0	0	16-3584
+chrM	16475	0	0	0	0	0	0	0	16-3584
+chrM	16476	0	0	0	0	0	0	0	16-3584
+chrM	16477	0	0	0	0	0	0	0	16-3584
+chrM	16478	0	0	0	0	0	0	0	16-3584
+chrM	16479	0	0	0	0	0	0	0	16-3584
+chrM	16480	0	0	0	0	0	0	0	16-3584
+chrM	16481	0	0	0	0	0	0	0	16-3584
+chrM	16482	0	0	0	0	0	0	0	16-3584
+chrM	16483	0	0	0	0	0	0	0	16-3584
+chrM	16484	0	0	0	0	0	0	0	16-3584
+chrM	16485	0	0	0	0	0	0	0	16-3584
+chrM	16486	0	0	0	0	0	0	0	16-3584
+chrM	16487	0	0	0	0	0	0	0	16-3584
+chrM	16488	0	0	0	0	0	0	0	16-3584
+chrM	16489	0	0	0	0	0	0	0	16-3584
+chrM	16490	0	0	0	0	0	0	0	16-3584
+chrM	16491	0	0	0	0	0	0	0	16-3584
+chrM	16492	0	0	0	0	0	0	0	16-3584
+chrM	16493	0	0	0	0	0	0	0	16-3584
+chrM	16494	0	0	0	0	0	0	0	16-3584
+chrM	16495	0	0	0	0	0	0	0	16-3584
+chrM	16496	0	0	0	0	0	0	0	16-3584
+chrM	16497	0	0	0	0	0	0	0	16-3584
+chrM	16498	0	0	0	0	0	0	0	16-3584
+chrM	16499	0	0	0	0	0	0	0	16-3584
+chrM	16500	0	0	0	0	0	0	0	16-3584
+chrM	16501	0	0	0	0	0	0	0	16-3584
+chrM	16502	0	0	0	0	0	0	0	16-3584
+chrM	16503	0	0	0	0	0	0	0	16-3584
+chrM	16504	0	0	0	0	0	0	0	16-3584
+chrM	16505	0	0	0	0	0	0	0	16-3584
+chrM	16506	0	0	0	0	0	0	0	16-3584
+chrM	16507	0	0	0	0	0	0	0	16-3584
+chrM	16508	0	0	0	0	0	0	0	16-3584
+chrM	16509	0	0	0	0	0	0	0	16-3584
+chrM	16510	0	0	0	0	0	0	0	16-3584
+chrM	16511	0	0	0	0	0	0	0	16-3584
+chrM	16512	0	0	0	0	0	0	0	16-3584
+chrM	16513	0	0	0	0	0	0	0	16-3584
+chrM	16514	0	0	0	0	0	0	0	16-3584
+chrM	16515	0	0	0	0	0	0	0	16-3584
+chrM	16516	0	0	0	0	0	0	0	16-3584
+chrM	16517	0	0	0	0	0	0	0	16-3584
+chrM	16518	0	0	0	0	0	0	0	16-3584
+chrM	16519	0	0	0	0	0	0	0	16-3584
+chrM	16520	0	0	0	0	0	0	0	16-3584
+chrM	16521	0	0	0	0	0	0	0	16-3584
+chrM	16522	0	0	0	0	0	0	0	16-3584
+chrM	16523	0	0	0	0	0	0	0	16-3584
+chrM	16524	0	0	0	0	0	0	0	16-3584
+chrM	16525	0	0	0	0	0	0	0	16-3584
+chrM	16526	0	0	0	0	0	0	0	16-3584
+chrM	16527	0	0	0	0	0	0	0	16-3584
+chrM	16528	0	0	0	0	0	0	0	16-3584
+chrM	16529	0	0	0	0	0	0	0	16-3584
+chrM	16530	0	0	0	0	0	0	0	16-3584
+chrM	16531	0	0	0	0	0	0	0	16-3584
+chrM	16532	0	0	0	0	0	0	0	16-3584
+chrM	16533	0	0	0	0	0	0	0	16-3584
+chrM	16534	0	0	0	0	0	0	0	16-3584
+chrM	16535	0	0	0	0	0	0	0	16-3584
+chrM	16536	0	0	0	0	0	0	0	16-3584
+chrM	16537	0	0	0	0	0	0	0	16-3584
+chrM	16538	0	0	0	0	0	0	0	16-3584
+chrM	16539	0	0	0	0	0	0	0	16-3584
+chrM	16540	0	0	0	0	0	0	0	16-3584
+chrM	16541	0	0	0	0	0	0	0	16-3584
+chrM	16542	0	0	0	0	0	0	0	16-3584
+chrM	16543	0	0	0	0	0	0	0	16-3584
+chrM	16544	0	0	0	0	0	0	0	16-3584
+chrM	16545	0	0	0	0	0	0	0	16-3584
+chrM	16546	0	0	0	0	0	0	0	16-3584
+chrM	16547	0	0	0	0	0	0	0	16-3584
+chrM	16548	0	0	0	0	0	0	0	16-3584
+chrM	16549	0	0	0	0	0	0	0	16-3584
+chrM	16550	0	0	0	0	0	0	0	16-3584
+chrM	16551	0	0	0	0	0	0	0	16-3584
+chrM	16552	0	0	0	0	0	0	0	16-3584
+chrM	16553	0	0	0	0	0	0	0	16-3584
+chrM	16554	0	0	0	0	0	0	0	16-3584
+chrM	16555	0	0	0	0	0	0	0	16-3584
+chrM	16556	0	0	0	0	0	0	0	16-3584
+chrM	16557	0	0	0	0	0	0	0	16-3584
+chrM	16558	0	0	0	0	0	0	0	16-3584
+chrM	16559	0	0	0	0	0	0	0	16-3584
+chrM	16560	0	0	0	0	0	0	0	16-3584
+chrM	16561	0	0	0	0	0	0	0	16-3584
+chrM	16562	0	0	0	0	0	0	0	16-3584
+chrM	16563	0	0	0	0	0	0	0	16-3584
+chrM	16564	0	0	0	0	0	0	0	16-3584
+chrM	16565	0	0	0	0	0	0	0	16-3584
+chrM	16566	0	0	0	0	0	0	0	16-3584
+chrM	16567	0	0	0	0	0	0	0	16-3584
+chrM	16568	0	0	0	0	0	0	0	16-3584
+chrM	16569	0	0	0	0	0	0	0	16-3584
+chrM	16570	0	0	0	0	0	0	0	16-3584
diff --git a/test/issue_193.bam b/test/issue_193.bam
new file mode 100644
index 0000000..53fe32d
Binary files /dev/null and b/test/issue_193.bam differ
diff --git a/test/issue_193.bam.bai b/test/issue_193.bam.bai
new file mode 100644
index 0000000..8d757ba
Binary files /dev/null and b/test/issue_193.bam.bai differ
diff --git a/test/issue_193_expected_output.txt b/test/issue_193_expected_output.txt
new file mode 100644
index 0000000..4a034f0
--- /dev/null
+++ b/test/issue_193_expected_output.txt
@@ -0,0 +1,255 @@
+REF	POS	COV	A	C	G	T	DEL	REFSKIP	SAMPLE
+SuperContig_95000040	0	12	12	0	0	0	0	0	*
+SuperContig_95000040	1	12	0	0	0	12	0	0	*
+SuperContig_95000040	2	12	0	12	0	0	0	0	*
+SuperContig_95000040	3	12	0	12	0	0	0	0	*
+SuperContig_95000040	4	12	0	12	0	0	0	0	*
+SuperContig_95000040	5	12	0	0	0	12	0	0	*
+SuperContig_95000040	6	12	0	12	0	0	0	0	*
+SuperContig_95000040	7	12	12	0	0	0	0	0	*
+SuperContig_95000040	8	12	0	12	0	0	0	0	*
+SuperContig_95000040	9	12	0	0	0	12	0	0	*
+SuperContig_95000040	10	12	0	0	0	12	0	0	*
+SuperContig_95000040	11	12	0	12	0	0	0	0	*
+SuperContig_95000040	12	12	0	12	0	0	0	0	*
+SuperContig_95000040	13	12	0	12	0	0	0	0	*
+SuperContig_95000040	14	12	0	0	0	12	0	0	*
+SuperContig_95000040	15	12	0	0	12	0	0	0	*
+SuperContig_95000040	16	12	0	12	0	0	0	0	*
+SuperContig_95000040	17	12	12	0	0	0	0	0	*
+SuperContig_95000040	18	12	12	0	0	0	0	0	*
+SuperContig_95000040	19	12	0	12	0	0	0	0	*
+SuperContig_95000040	20	12	12	0	0	0	0	0	*
+SuperContig_95000040	21	13	0	13	0	0	0	0	*
+SuperContig_95000040	22	13	0	13	0	0	0	0	*
+SuperContig_95000040	23	13	0	0	0	13	0	0	*
+SuperContig_95000040	24	13	0	0	0	13	0	0	*
+SuperContig_95000040	25	13	0	0	0	13	0	0	*
+SuperContig_95000040	26	13	13	0	0	0	0	0	*
+SuperContig_95000040	27	14	0	14	0	0	0	0	*
+SuperContig_95000040	28	14	0	14	0	0	0	0	*
+SuperContig_95000040	29	14	0	14	0	0	0	0	*
+SuperContig_95000040	30	14	0	14	0	0	0	0	*
+SuperContig_95000040	31	14	0	0	14	0	0	0	*
+SuperContig_95000040	32	14	0	0	0	14	0	0	*
+SuperContig_95000040	33	14	0	0	14	0	0	0	*
+SuperContig_95000040	34	14	0	14	0	0	0	0	*
+SuperContig_95000040	35	14	0	0	0	14	0	0	*
+SuperContig_95000040	36	14	14	0	0	0	0	0	*
+SuperContig_95000040	37	14	0	14	0	0	0	0	*
+SuperContig_95000040	38	14	0	14	0	0	0	0	*
+SuperContig_95000040	39	14	0	14	0	0	0	0	*
+SuperContig_95000040	40	14	14	0	0	0	0	0	*
+SuperContig_95000040	41	14	0	0	14	0	0	0	*
+SuperContig_95000040	42	14	0	0	0	14	0	0	*
+SuperContig_95000040	43	14	14	0	0	0	0	0	*
+SuperContig_95000040	44	14	0	0	14	0	0	0	*
+SuperContig_95000040	45	14	0	14	0	0	0	0	*
+SuperContig_95000040	46	14	14	0	0	0	0	0	*
+SuperContig_95000040	47	14	0	0	0	14	0	0	*
+SuperContig_95000040	48	14	14	0	0	0	0	0	*
+SuperContig_95000040	49	14	0	0	0	14	0	0	*
+SuperContig_95000040	50	14	14	0	0	0	0	0	*
+SuperContig_95000040	51	14	0	0	0	14	0	0	*
+SuperContig_95000040	52	14	14	0	0	0	0	0	*
+SuperContig_95000040	53	14	0	0	14	0	0	0	*
+SuperContig_95000040	54	14	14	0	0	0	0	0	*
+SuperContig_95000040	55	14	14	0	0	0	0	0	*
+SuperContig_95000040	56	14	0	0	14	0	0	0	*
+SuperContig_95000040	57	14	0	14	0	0	0	0	*
+SuperContig_95000040	58	14	0	0	0	14	0	0	*
+SuperContig_95000040	59	14	0	14	0	0	0	0	*
+SuperContig_95000040	60	14	0	14	0	0	0	0	*
+SuperContig_95000040	61	14	14	0	0	0	0	0	*
+SuperContig_95000040	62	14	0	14	0	0	0	0	*
+SuperContig_95000040	63	14	0	14	0	0	0	0	*
+SuperContig_95000040	64	14	0	14	0	0	0	0	*
+SuperContig_95000040	65	13	0	13	0	0	0	0	*
+SuperContig_95000040	66	12	0	12	0	0	0	0	*
+SuperContig_95000040	67	12	0	12	0	0	0	0	*
+SuperContig_95000040	68	12	0	12	0	0	0	0	*
+SuperContig_95000040	69	8	0	0	0	8	0	0	*
+SuperContig_95000040	70	5	0	5	0	0	0	0	*
+SuperContig_95000040	71	4	0	4	0	0	0	0	*
+SuperContig_95000040	72	3	0	0	0	3	0	0	*
+SuperContig_95000040	73	1	0	0	0	1	0	0	*
+SuperContig_95000193	0	1	0	0	1	0	0	0	*
+SuperContig_95000193	1	1	0	0	1	0	0	0	*
+SuperContig_95000193	2	1	0	0	1	0	0	0	*
+SuperContig_95000193	3	1	1	0	0	0	0	0	*
+SuperContig_95000193	4	1	0	0	1	0	0	0	*
+SuperContig_95000193	5	1	1	0	0	0	0	0	*
+SuperContig_95000193	6	1	1	0	0	0	0	0	*
+SuperContig_95000193	7	1	0	0	1	0	0	0	*
+SuperContig_95000193	8	1	1	0	0	0	0	0	*
+SuperContig_95000193	9	1	0	0	1	0	0	0	*
+SuperContig_95000193	10	1	1	0	0	0	0	0	*
+SuperContig_95000193	11	1	0	0	1	0	0	0	*
+SuperContig_95000193	12	1	0	0	1	0	0	0	*
+SuperContig_95000193	13	1	1	0	0	0	0	0	*
+SuperContig_95000193	14	1	1	0	0	0	0	0	*
+SuperContig_95000193	15	1	1	0	0	0	0	0	*
+SuperContig_95000193	16	1	0	0	1	0	0	0	*
+SuperContig_95000193	17	1	0	0	1	0	0	0	*
+SuperContig_95000193	18	1	1	0	0	0	0	0	*
+SuperContig_95000193	19	1	0	0	1	0	0	0	*
+SuperContig_95000193	20	1	0	0	1	0	0	0	*
+SuperContig_95000193	21	1	1	0	0	0	0	0	*
+SuperContig_95000193	22	1	0	0	1	0	0	0	*
+SuperContig_95000193	23	1	1	0	0	0	0	0	*
+SuperContig_95000193	24	1	1	0	0	0	0	0	*
+SuperContig_95000193	25	1	1	0	0	0	0	0	*
+SuperContig_95000193	26	1	0	0	1	0	0	0	*
+SuperContig_95000193	27	1	1	0	0	0	0	0	*
+SuperContig_95000193	28	1	0	0	1	0	0	0	*
+SuperContig_95000193	29	1	0	0	1	0	0	0	*
+SuperContig_95000193	30	1	0	0	1	0	0	0	*
+SuperContig_95000193	31	1	1	0	0	0	0	0	*
+SuperContig_95000193	32	1	0	0	1	0	0	0	*
+SuperContig_95000193	33	1	0	0	1	0	0	0	*
+SuperContig_95000193	34	1	0	0	1	0	0	0	*
+SuperContig_95000193	35	1	0	0	1	0	0	0	*
+SuperContig_95000193	36	1	0	0	1	0	0	0	*
+SuperContig_95000193	37	1	0	0	1	0	0	0	*
+SuperContig_95000193	38	1	0	0	0	1	0	0	*
+SuperContig_95000193	39	1	1	0	0	0	0	0	*
+SuperContig_95000193	40	1	0	0	1	0	0	0	*
+SuperContig_95000193	41	1	0	1	0	0	0	0	*
+SuperContig_95000193	42	1	0	0	0	1	0	0	*
+SuperContig_95000193	43	1	0	0	1	0	0	0	*
+SuperContig_95000193	44	1	1	0	0	0	0	0	*
+SuperContig_95000193	45	1	1	0	0	0	0	0	*
+SuperContig_95000193	46	1	0	0	1	0	0	0	*
+SuperContig_95000193	47	1	0	0	0	1	0	0	*
+SuperContig_95000193	48	1	1	0	0	0	0	0	*
+SuperContig_95000193	49	1	0	0	1	0	0	0	*
+SuperContig_95000193	50	1	0	0	1	0	0	0	*
+SuperContig_95000193	51	1	0	0	1	0	0	0	*
+SuperContig_95000193	52	1	0	0	0	1	0	0	*
+SuperContig_95000193	53	1	0	1	0	0	0	0	*
+SuperContig_95000193	54	1	1	0	0	0	0	0	*
+SuperContig_95000193	55	1	0	0	1	0	0	0	*
+SuperContig_95000193	56	1	0	1	0	0	0	0	*
+SuperContig_95000193	57	1	1	0	0	0	0	0	*
+SuperContig_95000193	58	1	1	0	0	0	0	0	*
+SuperContig_95000193	59	1	0	0	1	0	0	0	*
+SuperContig_95000193	60	1	0	1	0	0	0	0	*
+SuperContig_95000193	61	1	1	0	0	0	0	0	*
+SuperContig_95000425	0	12	12	0	0	0	0	0	*
+SuperContig_95000425	1	14	14	0	0	0	0	0	*
+SuperContig_95000425	2	14	14	0	0	0	0	0	*
+SuperContig_95000425	3	15	0	0	0	15	0	0	*
+SuperContig_95000425	4	16	16	0	0	0	0	0	*
+SuperContig_95000425	5	18	18	0	0	0	0	0	*
+SuperContig_95000425	6	19	19	0	0	0	0	0	*
+SuperContig_95000425	7	23	23	0	0	0	0	0	*
+SuperContig_95000425	8	35	0	0	0	35	0	0	*
+SuperContig_95000425	9	45	45	0	0	0	0	0	*
+SuperContig_95000425	10	50	0	50	0	0	0	0	*
+SuperContig_95000425	11	55	51	4	0	0	0	0	*
+SuperContig_95000425	12	57	57	0	0	0	0	0	*
+SuperContig_95000425	13	58	0	0	58	0	0	0	*
+SuperContig_95000425	14	58	0	0	0	58	0	0	*
+SuperContig_95000425	15	60	60	0	0	0	0	0	*
+SuperContig_95000425	16	60	0	0	60	0	0	0	*
+SuperContig_95000425	17	60	60	0	0	0	0	0	*
+SuperContig_95000425	18	60	60	0	0	0	0	0	*
+SuperContig_95000425	19	60	0	0	60	0	0	0	*
+SuperContig_95000425	20	60	60	0	0	0	0	0	*
+SuperContig_95000425	21	60	0	60	0	0	0	0	*
+SuperContig_95000425	22	60	60	0	0	0	0	0	*
+SuperContig_95000425	23	60	0	0	60	0	0	0	*
+SuperContig_95000425	24	60	56	0	0	0	4	0	*
+SuperContig_95000425	25	60	60	0	0	0	0	0	*
+SuperContig_95000425	26	60	60	0	0	0	0	0	*
+SuperContig_95000425	27	60	60	0	0	0	0	0	*
+SuperContig_95000425	28	60	60	0	0	0	0	0	*
+SuperContig_95000425	29	60	60	0	0	0	0	0	*
+SuperContig_95000425	30	60	60	0	0	0	0	0	*
+SuperContig_95000425	31	60	0	0	60	0	0	0	*
+SuperContig_95000425	32	60	0	0	0	60	0	0	*
+SuperContig_95000425	33	60	60	0	0	0	0	0	*
+SuperContig_95000425	34	60	60	0	0	0	0	0	*
+SuperContig_95000425	35	60	60	0	0	0	0	0	*
+SuperContig_95000425	36	60	60	0	0	0	0	0	*
+SuperContig_95000425	37	60	60	0	0	0	0	0	*
+SuperContig_95000425	38	60	0	0	60	0	0	0	*
+SuperContig_95000425	39	60	0	17	43	0	0	0	*
+SuperContig_95000425	40	60	60	0	0	0	0	0	*
+SuperContig_95000425	41	60	60	0	0	0	0	0	*
+SuperContig_95000425	42	60	60	0	0	0	0	0	*
+SuperContig_95000425	43	60	60	0	0	0	0	0	*
+SuperContig_95000425	44	60	60	0	0	0	0	0	*
+SuperContig_95000425	45	63	63	0	0	0	0	0	*
+SuperContig_95000425	46	63	0	0	0	63	0	0	*
+SuperContig_95000425	47	63	63	0	0	0	0	0	*
+SuperContig_95000425	48	63	0	0	0	63	0	0	*
+SuperContig_95000425	49	63	63	0	0	0	0	0	*
+SuperContig_95000425	50	63	0	0	0	63	0	0	*
+SuperContig_95000425	51	63	63	0	0	0	0	0	*
+SuperContig_95000425	52	63	63	0	0	0	0	0	*
+SuperContig_95000425	53	63	63	0	0	0	0	0	*
+SuperContig_95000425	54	63	63	0	0	0	0	0	*
+SuperContig_95000425	55	63	43	0	17	0	3	0	*
+SuperContig_95000425	56	63	0	0	60	0	3	0	*
+SuperContig_95000425	57	63	0	0	0	63	0	0	*
+SuperContig_95000425	58	63	0	0	0	63	0	0	*
+SuperContig_95000425	59	63	63	0	0	0	0	0	*
+SuperContig_95000425	60	63	46	0	0	0	17	0	*
+SuperContig_95000425	61	63	0	0	0	46	17	0	*
+SuperContig_95000425	62	63	46	0	0	0	17	0	*
+SuperContig_95000425	63	63	0	0	46	0	17	0	*
+SuperContig_95000425	64	63	0	46	0	0	17	0	*
+SuperContig_95000425	65	63	0	46	0	0	17	0	*
+SuperContig_95000425	66	63	46	0	0	0	17	0	*
+SuperContig_95000425	67	63	0	46	0	0	17	0	*
+SuperContig_95000425	68	63	0	46	0	0	17	0	*
+SuperContig_95000425	69	63	0	0	0	46	17	0	*
+SuperContig_95000425	70	63	0	0	46	0	17	0	*
+SuperContig_95000425	71	63	0	0	0	46	17	0	*
+SuperContig_95000425	72	63	0	0	0	46	17	0	*
+SuperContig_95000425	73	63	63	0	0	0	0	0	*
+SuperContig_95000425	74	63	63	0	0	0	0	0	*
+SuperContig_95000425	75	63	63	0	0	0	0	0	*
+SuperContig_95000425	76	63	63	0	0	0	0	0	*
+SuperContig_95000425	77	63	63	0	0	0	0	0	*
+SuperContig_95000425	78	63	0	0	0	63	0	0	*
+SuperContig_95000425	79	63	0	0	60	0	3	0	*
+SuperContig_95000425	80	63	0	63	0	0	0	0	*
+SuperContig_95000425	81	63	0	63	0	0	0	0	*
+SuperContig_95000425	82	63	0	63	0	0	0	0	*
+SuperContig_95000425	83	63	0	0	0	63	0	0	*
+SuperContig_95000425	84	63	0	63	0	0	0	0	*
+SuperContig_95000425	85	63	0	63	0	0	0	0	*
+SuperContig_95000425	86	63	0	0	0	63	0	0	*
+SuperContig_95000425	87	63	46	0	17	0	0	0	*
+SuperContig_95000425	88	63	63	0	0	0	0	0	*
+SuperContig_95000425	89	63	0	0	0	63	0	0	*
+SuperContig_95000425	90	63	63	0	0	0	0	0	*
+SuperContig_95000425	91	63	0	0	0	63	0	0	*
+SuperContig_95000425	92	63	0	0	63	0	0	0	*
+SuperContig_95000425	93	63	0	0	63	0	0	0	*
+SuperContig_95000425	94	63	0	63	0	0	0	0	*
+SuperContig_95000425	95	63	63	0	0	0	0	0	*
+SuperContig_95000425	96	63	63	0	0	0	0	0	*
+SuperContig_95000425	97	63	0	63	0	0	0	0	*
+SuperContig_95000425	98	62	60	0	2	0	0	0	*
+SuperContig_95000425	99	62	62	0	0	0	0	0	*
+SuperContig_95000425	100	62	0	62	0	0	0	0	*
+SuperContig_95000425	101	62	62	0	0	0	0	0	*
+SuperContig_95000425	102	62	60	2	0	0	0	0	*
+SuperContig_95000425	103	59	0	58	0	1	0	0	*
+SuperContig_95000425	104	55	55	0	0	0	0	0	*
+SuperContig_95000425	105	51	48	0	0	3	0	0	*
+SuperContig_95000425	106	44	0	44	0	0	0	0	*
+SuperContig_95000425	107	34	0	34	0	0	0	0	*
+SuperContig_95000425	108	28	0	0	28	0	0	0	*
+SuperContig_95000425	109	17	0	17	0	0	0	0	*
+SuperContig_95000425	110	12	2	0	10	0	0	0	*
+SuperContig_95000425	111	11	0	0	11	0	0	0	*
+SuperContig_95000425	112	8	0	8	0	0	0	0	*
+SuperContig_95000425	113	5	5	0	0	0	0	0	*
+SuperContig_95000425	114	3	3	0	0	0	0	0	*
+SuperContig_95000425	115	3	0	3	0	0	0	0	*
+SuperContig_95000425	116	2	2	0	0	0	0	0	*
+SuperContig_95000425	117	1	0	0	1	0	0	0	*
diff --git a/test/issue_204.bam b/test/issue_204.bam
new file mode 100644
index 0000000..db895df
Binary files /dev/null and b/test/issue_204.bam differ
diff --git a/test/issue_204.bam.bai b/test/issue_204.bam.bai
new file mode 100644
index 0000000..e8d0956
Binary files /dev/null and b/test/issue_204.bam.bai differ
diff --git a/test/issue_204_expected_output.txt b/test/issue_204_expected_output.txt
new file mode 100644
index 0000000..12486d9
--- /dev/null
+++ b/test/issue_204_expected_output.txt
@@ -0,0 +1,2 @@
+# chrom	chromStart	chromEnd	readCount	meanCoverage	percentage15	percentage20	percentage25	sampleName
+2	166868599	166868813	29	17.8084	89.7196	29.9065	0	12878
diff --git a/test/mate_overlaps_1_3M_4M.bam b/test/mate_overlaps_1_3M_4M.bam
new file mode 100644
index 0000000..dc4bee6
Binary files /dev/null and b/test/mate_overlaps_1_3M_4M.bam differ
diff --git a/test/mate_overlaps_1_3M_4M.bam.bai b/test/mate_overlaps_1_3M_4M.bam.bai
new file mode 100644
index 0000000..ead2a90
Binary files /dev/null and b/test/mate_overlaps_1_3M_4M.bam.bai differ
diff --git a/test/mate_overlaps_1_3M_4M.bed b/test/mate_overlaps_1_3M_4M.bed
new file mode 100644
index 0000000..d6ef378
--- /dev/null
+++ b/test/mate_overlaps_1_3M_4M.bed
@@ -0,0 +1,5 @@
+1 3092600 3092700
+1 3495400 3495500
+1 3098100 3098200
+1 3418600 3418700
+1 3418500 3418650
\ No newline at end of file
diff --git a/test/test_depth.py b/test/test_depth.py
new file mode 100644
index 0000000..118f543
--- /dev/null
+++ b/test/test_depth.py
@@ -0,0 +1,126 @@
+import msgpack
+
+import subprocess
+import os.path
+import random
+import tempfile
+import csv
+
+sambamba = os.path.join(os.path.abspath(os.path.dirname(__file__)), '../build/sambamba')
+
+def referenceSequences(bam_fn):
+    header = subprocess.check_output([sambamba, "view", "-H", bam_fn,
+                                      "-f", "msgpack"])
+    return {item['SN']: item['LN'] for item in msgpack.unpackb(header)[2]}
+
+def randomIntervals(ref_seqs, n, max_length=1000):
+    keys = ref_seqs.keys()
+    result = []
+    for i in range(n):
+        overlap = i > 0 and random.randint(1, 100) <= 20
+        if overlap:
+            ref, start, e = random.choice(result)
+            start += random.randint(0, (e - start - 1))
+        else:
+            ref = random.choice(keys)
+            length = ref_seqs[ref]
+            start = random.randint(1, length)
+        end = start + random.randint(1, max_length)
+        result.append((ref, start, end))
+    return result
+
+def writeBed(intervals, bedfile):
+    for ref, start, end in intervals:
+        bedfile.write("{}\t{}\t{}\n".format(ref, start, end))
+    bedfile.flush()
+
+def depthRegionReport(bam_fn, intervals):
+    with tempfile.NamedTemporaryFile("w+") as bed:
+        writeBed(intervals, bed)
+        devnull = open("/dev/null", "w")
+        res = subprocess.check_output([sambamba, "depth", "region", "-t", "0",
+                                       "--combined",
+                                       bam_fn, "-L", bed.name, "-F", ""],
+                                      stderr=devnull)
+        lst = list(csv.DictReader(res[2:].split("\n"), dialect='excel-tab'))
+        return [(i['chrom'], int(i['chromStart']), int(i['chromEnd']),
+                 i['readCount']) for i in lst]
+
+def expectedRegionReport(bam_fn, intervals):
+    report = []
+    for ref, start, end in intervals:
+        # coordinate translation: half-open zero-based -> closed 1-based
+        cov = subprocess.check_output([sambamba, "view", bam_fn, "-c",
+                                       "-t", "0",
+                                       "{}:{}-{}".format(ref, start+1, end)])
+        report.append((ref, start, end, cov.strip()))
+    return report
+
+def saveRegionReport(report, fn):
+    with open(fn, "w+") as f:
+        for fields in report:
+            f.write("{}\t{}\t{}\t{}\n".format(*fields))
+
+def depthBaseReport(bam_fn, intervals):
+    with tempfile.NamedTemporaryFile("w+") as bed:
+        writeBed(intervals, bed)
+        devnull = open("/dev/null", "w")
+        res = subprocess.check_output([sambamba, "depth", "base", "-t", "0",
+                                       "--combined",
+                                       bam_fn, "-L", bed.name, "-F", "", "-z"],
+                                       stderr=devnull)
+        lst = list(csv.DictReader(res.split("\n"), dialect='excel-tab'))
+        return [(i['REF'], int(i['POS']), int(i['COV'])) for i in lst]
+
+bam_fn = "dm3PacBio_valid.bam"
+
+# minor differences are still possible e.g. when region is wholly inside a deletion,
+# but they are quite rare and can be checked manually
+def test_depth_region():
+    refs = referenceSequences(bam_fn)
+
+    intervals = list(randomIntervals(refs, 10000, 1000))
+    report = depthRegionReport(bam_fn, intervals)
+    expected = expectedRegionReport(bam_fn, intervals)
+
+    return compareResults(report, expected, "region_")
+
+def compareResults(report, expected, prefix):
+    n_correct = 0
+    n_wrong = 0
+    for expected_entry, entry in zip(expected, report):
+        if entry != expected_entry:
+            if n_wrong == 0:
+                fn_failed = prefix + "failed_report.txt"
+                fn_expected = prefix + "expected_report.txt"
+                saveRegionReport(report, fn_failed)
+                saveRegionReport(expected, fn_expected)
+                print 'TEST FAILURE'
+                print "results saved to " + fn_expected + " and " + fn_failed
+            print "different results:"
+            print "expected: ", expected_entry
+            print "got: ", entry
+            n_wrong += 1
+            if n_wrong >= 10:
+                print "10 or more errors detected, exiting"
+                break
+        else:
+            n_correct += 1
+
+    return n_correct == len(expected)
+
+def test_depth_base():
+    refs = referenceSequences(bam_fn)
+    intervals = list(randomIntervals(refs, 1000, 100))
+    report = depthBaseReport(bam_fn, intervals)
+    expected = []
+    for ref, pos, count in report:
+        cov = subprocess.check_output([sambamba, "view", bam_fn, "-c",
+                                       "-t", "0",
+                                       "{}:{}-{}".format(ref, pos+1, pos+1)])
+        cov = int(cov.strip())
+        expected.append((ref, pos, cov))
+
+    return compareResults(report, expected, "base_")
+
+test_depth_base()
diff --git a/thirdparty/mergesort.d b/thirdparty/mergesort.d
new file mode 100644
index 0000000..01693b1
--- /dev/null
+++ b/thirdparty/mergesort.d
@@ -0,0 +1,221 @@
+/++
+	Merge Sort for Random-Access Ranges
+	
+	Written and tested for DMD 2.059 and Phobos
+	
+	Authors:  Xinok
+	License:  Public Domain
+	
+	Bugs:
+	Parallel sort fails to compile in debug builds
+
+    -------------------------------
+    March, 2013: added support for custom task pool //lomereiter
+++/
+
+module thirdparty.mergesort;
+import std.range, std.algorithm, std.functional, std.array, std.parallelism;
+
+/++
+	Performs a merge sort on a random-access range according to predicate less.
+	
+	Returns: Sorted input as SortedRange
+	
+	Params:
+	half = Set to true to merge using O(n/2) additional space, or false for O(n)
+	task_pool = Thread pool to use
+	temp = Optionally provide your own additional space for sorting
+		
+	Examples:
+	-----------------
+	int[] array = [10, 37, 74, 99, 86, 28, 17, 39, 18, 38, 70];
+	mergeSort(array);
+	mergeSort!"a > b"(array); // Sorts array descending	
+    TaskPool pool = new TaskPool();
+    scope(exit) pool.finish();
+	mergeSort(array, pool);   // Sorts array using custom task pool
+	
+	int[] temp;
+	temp.length = 64;
+	mergeSort(array, pool, temp); // Sorts array using temporary memory provided by user
+	-----------------
+++/
+
+ at trusted SortedRange!(R, less) mergeSort(alias less = "a < b", bool half = true, R)(R range, TaskPool task_pool=taskPool, R temp = null)
+{
+	static assert(isRandomAccessRange!R);
+	static assert(hasLength!R);
+	static assert(hasSlicing!R);
+	static assert(hasAssignableElements!R);
+	
+	MergeSortImpl!(less, half, R).sort(range, task_pool, temp);
+	
+	if(!__ctfe) assert(isSorted!(less)(range.save), "Range is not sorted");
+	return assumeSorted!(less, R)(range.save);
+}
+
+/// Merge Sort implementation
+template MergeSortImpl(alias pred, bool half, R)
+{
+	static assert(isRandomAccessRange!R);
+	static assert(hasLength!R);
+	static assert(hasSlicing!R);
+	static assert(hasAssignableElements!R);
+		
+	alias ElementType!R T;
+	
+	alias binaryFun!pred less;
+	bool greater(T a, T b){ return less(b, a); }
+	bool greaterEqual(T a, T b){ return !less(a, b); }
+	bool lessEqual(T a, T b){ return !less(b, a); }
+	
+	enum MAX_INSERT = 32;        // Maximum length for an insertion sort
+	enum MIN_THREAD = 1024 * 64; // Minimum length of a sublist to initiate new thread
+
+	/// Entry point for merge sort
+	void sort(R range, TaskPool task_pool, T[] temp)
+	{
+		static if(half)
+		{
+			if(temp.length < range.length / 2) temp.length = range.length / 2;
+		}
+		else
+		{
+			if(temp.length < range.length) temp.length = range.length;
+		}
+		
+        concSort(range, task_pool, task_pool.size, temp);
+	}
+	
+	/// Concurrently sort range
+	void concSort(R range, TaskPool task_pool, size_t threadCount, T[] temp)
+	{
+		if(threadCount < 2 || range.length < MIN_THREAD)
+		{
+			split(range, temp);
+			return;
+		}
+		
+		debug
+		{
+			//@ Threading code currently does not compile in debug builds
+			split(range, temp);
+		}
+		else
+		{
+			immutable mid = range.length / 2;
+			auto th = task!(concSort)(range[0 .. mid], task_pool, threadCount / 2, temp[0 .. $ / 2]);
+			task_pool.put(th);
+			concSort(range[mid .. range.length], task_pool, threadCount - (threadCount / 2), temp[$ / 2 .. $]);
+			th.workForce();
+			merge(range, mid, temp);
+		}
+	}
+
+	
+	/// Recursively split range and merge halves
+	void split(R range, T[] temp)
+	{
+		if(range.length <= MAX_INSERT)
+		{
+			binaryInsertionSort(range);
+			return;
+		}
+		immutable mid = range.length / 2;
+		split(range[0 .. mid], temp);
+		split(range[mid .. range.length], temp);
+		merge(range, mid, temp);
+	}
+		
+	/// Merge two halves using temp
+	static if(half)
+	void merge(R range, immutable size_t mid, T[] temp)
+	{
+		assert(mid <= range.length);
+		assert(temp.length >= range.length / 2);
+		
+		temp = temp[0 .. mid];
+		copy(range[0..mid], temp);
+		
+		size_t i = 0, lef = 0, rig = mid;
+		
+		while(true)
+		{
+			if(lessEqual(temp[lef], range[rig]))
+			{
+				range[i++] = temp[lef++];
+				if(lef >= temp.length) return;
+			}
+			else
+			{
+				range[i++] = range[rig++];
+				if(rig >= range.length) while(true)
+				{
+					range[i++] = temp[lef++];
+					if(lef >= temp.length) return;
+				}
+			}
+		}
+	}
+
+	static if(!half)
+	void merge(R range, immutable size_t mid, T[] temp)
+	{
+		assert(mid <= range.length);
+		assert(temp.length >= range.length);
+		
+		size_t i = 0, lef = 0, rig = mid;
+		while(true)
+		{
+			if(lessEqual(range[lef], range[rig]))
+			{
+				temp[i++] = range[lef++];
+				if(lef >= mid) break;
+			}
+			else
+			{
+				temp[i++] = range[rig++];
+				if(rig >= range.length)
+				{
+					while(lef < mid) temp[i++] = range[lef++];
+					break;
+				}
+			}
+		}
+		copy(temp[0 .. i], range[0 .. i]);
+	}
+	
+	/// A simple insertion sort used for sorting small sublists
+	void binaryInsertionSort(R range)
+	{
+		size_t lower, upper, center;
+		T o;
+		foreach(i; 0 .. range.length)
+		{
+			o = range[i];
+			lower = 0;
+			upper = i;
+			while(upper != lower)
+			{
+				center = (lower + upper) / 2;
+				if(less(o, range[center])) upper = center;
+				else lower = center + 1;
+			}
+			for(upper = i; upper > lower; --upper) range[upper] = range[upper-1];
+			range[upper] = o;
+		}
+	}
+	
+	//@ Workaround for DMD issue 7898
+	static if(__VERSION__ == 2059)
+	void copy(R1, R2)(R1 src, R2 dst)
+	{
+		import std.traits;
+		static if(isArray!R1 && isArray!R2) if(__ctfe)
+		{
+			dst[] = src[];
+			return;
+		}
+		std.algorithm.copy(src, dst);
+	}
+}
diff --git a/thirdparty/unstablesort.d b/thirdparty/unstablesort.d
new file mode 100644
index 0000000..f4245ce
--- /dev/null
+++ b/thirdparty/unstablesort.d
@@ -0,0 +1,328 @@
+/++
+	Unstable Sort for Random-Access Ranges
+	
+	Written and tested for DMD 2.058 and Phobos
+	
+	Authors:  Xinok
+	License:  Public Domain
+++/
+
+module thirdparty.unstablesort;
+import std.range, std.algorithm, std.functional, std.parallelism;
+
+/++
+	Performs an unstable sort on a random-access range according to predicate less.
+	The algorithm is a quick sort which resorts to heap sort to avoid worst-case.
+	
+	Returns: Sorted input as SortedRange
+	
+	Params:
+	range = Range to be sorted
+	pool = Task pool to use
+	
+	Params:
+	less = Predicate (string, function, or delegate) used for comparing elements; Defaults to "a < b"
+	R = Type of range to be sorted; Must be a finite random-access range with slicing
+	
+	Examples:
+	-----------------
+	int[] array = [10, 37, 74, 99, 86, 28, 17, 39, 18, 38, 70];
+	unstableSort(array, taskPool);   // Sorts array using multiple threads
+	-----------------
+++/
+
+ at trusted SortedRange!(R, less) unstableSort(alias less = "a < b", R)(R range, TaskPool pool)
+{
+	static assert(isRandomAccessRange!R);
+	static assert(hasLength!R);
+	static assert(hasSlicing!R);
+	static assert(hasAssignableElements!R);
+	
+	UnstableSortImpl!(less, R).sort(range, pool);
+	
+	assert(isSorted!(less)(range.save), "Range is not sorted");
+	return assumeSorted!(less, R)(range.save);
+}
+
+/// Unstable sort implementation
+template UnstableSortImpl(alias pred, R)
+{
+	static assert(isRandomAccessRange!R);
+	static assert(hasLength!R);
+	static assert(hasSlicing!R);
+	static assert(hasAssignableElements!R);
+		
+	alias ElementType!R T;
+	
+	alias binaryFun!pred less;
+	bool greater(T a, T b){ return less(b, a); }
+	bool greaterEqual(T a, T b){ return !less(a, b); }
+	bool lessEqual(T a, T b){ return !less(b, a); }
+
+	enum MAX_INSERT = 32;        // Maximum length for an insertion sort
+	enum MIN_THREAD = 1024 * 64; // Minimum length of a sublist to initiate new thread
+	
+	/// Entry sort function
+	void sort(R range, TaskPool pool)
+	{
+		concSort(range, range.length, pool);
+	}
+	
+	/// Recursively partition list
+	void sort(R range, real depth, TaskPool pool)
+	{
+		while(true)
+		{
+			if(range.length <= MAX_INSERT)
+			{
+				binaryInsertionSort(range);
+				return;
+			}
+			if(depth < 1.0)
+			{
+				heapSort(range);
+				return;
+			}
+			
+			depth /= 1.5;
+			
+			immutable mid = partition(range);
+			
+			if(mid <= range.length / 2)
+			{
+				sort(range[0 .. mid - 1], depth, pool);
+				range = range[mid .. range.length];
+			}
+			else
+			{
+				sort(range[mid .. range.length], depth, pool);
+				range = range[0 .. mid - 1];
+			}
+		}
+	}
+	
+	/// Concurrently sorts range
+	void concSort(R range, real depth, TaskPool pool)
+	{
+		if(range.length < MIN_THREAD)
+		{
+			sort(range, depth, pool);
+			return;
+		}
+		if(depth < 1.0)
+		{
+			heapSort(range);
+			return;
+		}
+		
+		depth /= 1.5;
+		
+		immutable mid = partition(range);
+		
+		auto th = task!(concSort)(range[0 .. mid - 1], depth, pool);
+		pool.put(th);
+		concSort(range[mid .. range.length], depth, pool);
+		th.workForce();
+	}
+	
+	/// Partitions range, returns starting index of second range excluding pivot
+	size_t partition(R range)
+	{
+		// Get median of five
+		immutable b = range.length / 4, c = range.length / 2, d = b + c;
+		medianSort(range[0], range[b], range[c], range[d], range[range.length - 1]);
+		
+		// Move first elements into place
+		swap(range[1], range[b]);
+		swap(range[2], range[c]);
+		swap(range[range.length - 2], range[d]);
+		
+		// Variables
+		T piv = range[2], o;
+		size_t lef = 3, rig = range.length - 3;
+		
+		// Partition range
+		while(lef < rig)
+		{
+			if(lessEqual(range[lef], piv)) ++lef;
+			else
+			{
+				o = range[lef];
+				range[lef] = range[rig];
+				range[rig] = o;
+				--rig;
+			}
+			
+			// Checking for equality on both sides ensures a balanced
+			// distribution of equal elements in both partitions
+			if(greaterEqual(range[rig], piv)) --rig;
+			else
+			{
+				o = range[lef];
+				range[lef] = range[rig];
+				range[rig] = o;
+				++lef;
+			}
+		}
+		
+		 // This step is necessary to ensure pivot is inserted at correct location
+		if(lessEqual(range[lef], piv)) ++lef;
+		// Move pivot into place
+		swap(range[lef - 1], range[2]);
+		
+		return lef;
+	}
+	
+	/// Finds the median of five in six comparisons while satisfiying the condition: 
+	/// (a < c && b < c && c < d && d < e)
+	void medianSort(ref T a, ref T b, ref T c, ref T d, ref T e)
+	out
+	{
+		assert(lessEqual(a, c) && lessEqual(b, c) && lessEqual(c, d) && lessEqual(c, e));
+	}
+	body
+	{
+		T o;
+		
+		if(greater(a, b)) swap(a, b);
+		if(greater(d, e)) swap(d, e);
+		
+		if(greater(a, d))
+		{
+			o = a;
+			a = d;
+			d = b;
+			b = o;
+			if(greater(c, e))
+			{
+				o = c;
+				c = d;
+				d = e;
+				e = o;
+			}
+			else swap(c, d);
+		}
+		else if(greater(b, c)) swap(b, c);
+		
+		if(greater(b, d))
+		{
+			swap(b, d);
+			swap(c, e);
+		}
+		
+		if(greater(c, d)) swap(c, d);
+	}
+	
+	/// A simple insertion sort used for sorting small sublists
+	void binaryInsertionSort(R range)
+	{
+		size_t lower, upper, center;
+		T o;
+		for(size_t i = 1; i < range.length; ++i)
+		{
+			o = range[i];
+			lower = 0;
+			upper = i;
+			while(upper != lower)
+			{
+				center = (lower + upper) / 2;
+				if(less(o, range[center])) upper = center;
+				else lower = center + 1;
+			}
+			for(upper = i; upper > lower; --upper) range[upper] = range[upper-1];
+			range[upper] = o;
+		}
+	}
+	
+	/// Bottom-up binary heap sort is used to avoid the worst-case of quick sort
+	void heapSort(R range)
+	{
+		// Build Heap
+		size_t i = (range.length - 2) / 2 + 1;
+		while(i > 0) sift(range, --i, range.length);
+		
+		// Sort
+		i = range.length - 1;
+		while(i > 0)
+		{
+			swap(range[0], range[i]);
+			sift(range, 0, i);
+			--i;
+		}
+	}
+	
+	void sift(R range, size_t parent, immutable size_t end)
+	{
+		immutable root = parent;
+		T value = range[parent];
+		size_t child = void;
+		
+		// Sift down
+		while(true)
+		{
+			child = parent * 2 + 1;
+			
+			if(child >= end) break;
+			
+			if(child + 1 < end && less(range[child], range[child + 1])) child += 1;
+			
+			range[parent] = range[child];
+			parent = child;
+		}
+		
+		child = parent;
+		
+		// Sift up
+		while(child > root)
+		{
+			parent = (child - 1) / 2;
+			if(less(range[parent], value))
+			{
+				range[child] = range[parent];
+				child = parent;
+			}
+			else break;
+		}
+		
+		range[child] = value;
+	}
+}
+
+unittest
+{
+	bool testSort(alias pred, R)(R range)
+	{
+		unstableSort!(pred, R)(range, taskPool);
+		return isSorted!pred(range);
+	}
+	
+	int testCall(T)(in T[] arr)
+	{
+		int failures = 0;
+		
+		if(!testSort!"a < b"(arr.dup)) ++failures;
+		if(!testSort!"a > b"(arr.dup)) ++failures;
+		
+		return failures;
+	}
+	
+	// Array containing 256 random ints
+	enum test = [
+		10, 37, 74, 99, 86, 28, 17, 39, 18, 38, 70, 89, 94, 32, 46, 76, 43, 33, 62, 76, 
+		37, 93, 45, 48, 49, 21, 67, 56, 58, 17, 15, 41, 91, 94, 95, 41, 38, 80, 37, 24, 
+		26, 71, 87, 54, 72, 60, 29, 37, 41, 99, 31, 66, 75, 72, 86, 97, 37, 25, 98, 89, 
+		53, 45, 52, 76, 51, 38, 59, 53, 74, 96, 94, 42, 68, 84, 65, 27, 49, 57, 53, 74, 
+		39, 75, 39, 26, 46, 37, 68, 96, 19, 79, 73, 83, 36, 90, 11, 39, 48, 94, 97, 72, 
+		37, 43, 69, 36, 41, 47, 31, 48, 33, 21, 20, 18, 45, 28, 47, 54, 41, 28, 47, 44, 
+		51, 15, 21, 64, 82, 23, 41, 82, 30, 25, 78, 72, 50, 34, 45, 59, 14, 71, 50, 97, 
+		39, 87, 74, 60, 52, 17, 87, 45, 69, 54, 91, 68, 46, 99, 78, 33, 27, 53, 41, 84, 
+		82, 54, 29, 55, 53, 87, 13, 98, 55, 33, 73, 64, 19, 81, 57, 78, 23, 45, 94, 75, 
+		55, 43, 93, 85, 96, 82, 44, 73, 22, 79, 89, 20, 36, 11, 12, 51, 86, 86, 75, 66, 
+		81, 90, 80, 80, 36, 36, 47, 43, 86, 96, 45, 73, 70, 90, 57, 23, 86, 29, 12, 54, 
+		37, 17, 87, 12, 36, 78, 26, 28, 30, 15, 10, 53, 76, 34, 23, 49, 65, 17, 37, 51, 
+		26, 23, 66, 12, 26, 84, 60, 47, 30, 26, 78, 20, 42, 40, 63, 40
+	];
+	
+	// Runtime test
+	assert(testCall(test) == 0);
+}
diff --git a/utils/lz4.d b/utils/lz4.d
new file mode 100644
index 0000000..bda43fc
--- /dev/null
+++ b/utils/lz4.d
@@ -0,0 +1,322 @@
+/*
+    This file is part of Sambamba.
+    Copyright (C) 2012-2015    Artem Tarasov <lomereiter at gmail.com>
+
+    Sambamba 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; either version 2 of the License, or
+    (at your option) any later version.
+
+    Sambamba 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+module utils.lz4;
+import std.stdio, std.stream, std.conv;
+
+extern(C) {
+  alias size_t LZ4F_errorCode_t;
+  uint LZ4F_isError(LZ4F_errorCode_t code);
+
+  immutable(char)* LZ4F_getErrorName(LZ4F_errorCode_t code); /* return error code string; useful for debugging */
+
+  enum blockSizeID_t { LZ4F_default=0, max64KB=4, max256KB=5, max1MB=6, max4MB=7 }
+  enum blockMode_t { blockLinked=0, blockIndependent}
+  enum contentChecksum_t { noContentChecksum=0, contentChecksumEnabled }
+  enum frameType_t { LZ4F_frame=0, skippableFrame }
+
+  struct LZ4F_frameInfo_t {
+    blockSizeID_t blockSizeID; /* max64KB, max256KB, max1MB, max4MB ; 0 == default */
+    blockMode_t blockMode; /* blockLinked, blockIndependent ; 0 == default */
+    contentChecksum_t contentChecksumFlag; /* noContentChecksum, contentChecksumEnabled ; 0 == default */
+    frameType_t frameType; /* LZ4F_frame, skippableFrame ; 0 == default */
+    ulong contentSize; /* Size of uncompressed (original) content ; 0 == unknown */
+    uint[2] reserved; /* must be zero for forward compatibility */
+  }
+
+  struct LZ4F_preferences_t {
+    LZ4F_frameInfo_t frameInfo;
+    uint compressionLevel; /* 0 == default (fast mode); values above 16 count as 16 */
+    uint autoFlush; /* 1 == always flush (reduce need for tmp buffer) */
+    uint[4] reserved; /* must be zero for forward compatibility */
+  }
+
+  size_t LZ4F_compressFrameBound(size_t srcSize, const LZ4F_preferences_t* preferencesPtr);
+  size_t LZ4F_compressFrame(void* dstBuffer, size_t dstMaxSize, const void* srcBuffer, size_t srcSize, const LZ4F_preferences_t* preferencesPtr);
+
+  alias void* LZ4F_compressionContext_t;
+  struct LZ4F_compressOptions_t {
+    uint stableSrc; /* 1 == src content will remain available on future calls to LZ4F_compress(); avoid saving src content within tmp buffer as future dictionary */
+    uint[3] reserved;
+  }
+
+  enum LZ4F_VERSION = 100;
+  LZ4F_errorCode_t LZ4F_createCompressionContext(LZ4F_compressionContext_t* cctxPtr, uint version_);
+  LZ4F_errorCode_t LZ4F_freeCompressionContext(LZ4F_compressionContext_t cctx);
+  size_t LZ4F_compressBegin(LZ4F_compressionContext_t cctx, void* dstBuffer, size_t dstMaxSize, const LZ4F_preferences_t* prefsPtr);
+  size_t LZ4F_compressBound(size_t srcSize, const LZ4F_preferences_t* prefsPtr);
+  size_t LZ4F_compressUpdate(LZ4F_compressionContext_t cctx, void* dstBuffer, size_t dstMaxSize, const void* srcBuffer, size_t srcSize, const LZ4F_compressOptions_t* cOptPtr);
+  size_t LZ4F_flush(LZ4F_compressionContext_t cctx, void* dstBuffer, size_t dstMaxSize, const LZ4F_compressOptions_t* cOptPtr);
+  size_t LZ4F_compressEnd(LZ4F_compressionContext_t cctx, void* dstBuffer, size_t dstMaxSize, const LZ4F_compressOptions_t* cOptPtr);
+  alias void* LZ4F_decompressionContext_t;
+  struct LZ4F_decompressOptions_t {
+    uint stableDst; /* guarantee that decompressed data will still be there on next function calls (avoid storage into tmp buffers) */
+    uint[3] reserved;
+  }
+  LZ4F_errorCode_t LZ4F_createDecompressionContext(LZ4F_decompressionContext_t* dctxPtr, uint version_);
+  LZ4F_errorCode_t LZ4F_freeDecompressionContext(LZ4F_decompressionContext_t dctx);
+  size_t LZ4F_getFrameInfo(LZ4F_decompressionContext_t dctx, LZ4F_frameInfo_t* frameInfoPtr, const void* srcBuffer, size_t* srcSizePtr);
+  size_t LZ4F_decompress(LZ4F_decompressionContext_t dctx, void* dstBuffer, size_t* dstSizePtr, const void* srcBuffer, size_t* srcSizePtr, const LZ4F_decompressOptions_t* dOptPtr);
+
+}
+
+class LZ4Exception : Exception {
+  this(string description, LZ4F_errorCode_t errorCode) {
+    super(description ~ " : " ~ LZ4F_getErrorName(errorCode).to!string);
+  }
+
+  this(string description) {
+    super(description);
+  }
+}
+
+class LZ4Compressor {
+  private {
+    LZ4F_preferences_t prefs;
+    ubyte[] in_buff;
+    ubyte[] out_buff;
+    LZ4F_compressionContext_t ctx;
+
+    LZ4F_compressionContext_t createCompressionContext() {
+      LZ4F_compressionContext_t ctx;
+      auto code = LZ4F_createCompressionContext(&ctx, LZ4F_VERSION);
+      if (LZ4F_isError(code))
+        throw new LZ4Exception("Failure in LZ4F_createCompressionContext", code);
+      return ctx;
+    }
+
+    void freeCompressionContext(LZ4F_compressionContext_t ctx) {
+      auto code = LZ4F_freeCompressionContext(ctx);
+      if (LZ4F_isError(code))
+        throw new LZ4Exception("Failed to free LZ4F compression context", code);
+    }
+  }
+
+  this() {
+    prefs.autoFlush = 1;
+    prefs.frameInfo.blockMode = blockMode_t.blockIndependent;
+    prefs.frameInfo.blockSizeID = blockSizeID_t.max256KB;
+    prefs.frameInfo.contentChecksumFlag = contentChecksum_t.contentChecksumEnabled;
+
+    int block_size = (1 << (8 + (2 * prefs.frameInfo.blockSizeID)));
+    in_buff.length = block_size;
+    out_buff.length = LZ4F_compressBound(block_size, &prefs);
+  }
+
+  private {
+    size_t compressBegin() {
+      auto sz = LZ4F_compressBegin(ctx, out_buff.ptr, out_buff.length, &prefs);
+      if (LZ4F_isError(sz))
+        throw new LZ4Exception("Failure in LZ4F_compressBegin", sz);
+      return sz;
+    }
+
+    size_t compressUpdate(ubyte[] block) {
+      auto sz = LZ4F_compressUpdate(ctx, out_buff.ptr, out_buff.length, block.ptr, block.length, null);
+      if (LZ4F_isError(sz))
+        throw new LZ4Exception("Failure in LZ4F_compressUpdate", sz);
+      return sz;
+    }
+
+    size_t compressEnd() {
+      auto sz = LZ4F_compressEnd(ctx, out_buff.ptr, out_buff.length, null);
+      if (LZ4F_isError(sz))
+        throw new LZ4Exception("Failure in LZ4F_compressEnd", sz);
+      return sz;
+    }
+  }
+
+  void compress(ubyte[] function(ubyte[], void*) read_block, void* data,
+                std.stdio.File output_file,
+                int compressionLevel=0)
+  {
+    prefs.compressionLevel = compressionLevel;
+
+    ctx = createCompressionContext();
+    assert(ctx !is null);
+
+    auto sz = compressBegin();
+    output_file.rawWrite(out_buff[0 .. sz]);
+
+    while (true) {
+      ubyte[] block = read_block(in_buff, data);
+      if (block.length == 0) break;
+      sz = compressUpdate(block);
+      output_file.rawWrite(out_buff[0 .. sz]);
+    }
+
+    sz = compressEnd();
+    output_file.rawWrite(out_buff[0 .. sz]);
+
+    freeCompressionContext(ctx);
+  }
+
+  private {
+    static ubyte[] read_block_from_file(ubyte[] buf, void* data) {
+      auto input_file = cast(std.stdio.File*)data;
+      return input_file.rawRead(buf);
+    }
+
+    import std.algorithm : min;
+    static ubyte[] read_block_from_array(ubyte[] buf, void* data) {
+      auto arr = cast(ubyte[]*)data;
+      auto n = min(buf.length, (*arr).length);
+      buf[0 .. n] = (*arr)[0 .. n];
+      *arr = (*arr)[n .. $];
+      return buf[0 .. n];
+    }
+  }
+  void compress(std.stdio.File input_file, std.stdio.File output_file,
+                int compressionLevel=0) {
+    compress(&read_block_from_file, &input_file, output_file, compressionLevel);
+  }
+
+  void compress(ubyte[] data, std.stdio.File output_file,
+                int compressionLevel=0) {
+    compress(&read_block_from_array, &data, output_file, compressionLevel);
+  }
+}
+
+private {
+  LZ4F_decompressionContext_t createDecompressionContext() {
+    LZ4F_decompressionContext_t ctx;
+    auto code = LZ4F_createDecompressionContext(&ctx, LZ4F_VERSION);
+    if (LZ4F_isError(code))
+      throw new LZ4Exception("Failure in LZ4F_createDecompressionContext", code);
+    return ctx;
+  }
+
+  void freeDecompressionContext(LZ4F_compressionContext_t ctx) {
+    auto code = LZ4F_freeDecompressionContext(ctx);
+    if (LZ4F_isError(code))
+      throw new LZ4Exception("Failed to free LZ4F decompression context", code);
+  }
+}
+
+struct LZ4File {
+  private {
+    std.stdio.File input_file;
+    LZ4F_decompressionContext_t ctx;
+
+    size_t bytes_read, bytes_written;
+
+    void decompress(ubyte[] block, ubyte[] out_buff) {
+        bytes_read = block.length;
+        bytes_written = out_buff.length;
+        auto code = LZ4F_decompress(ctx, out_buff.ptr, &bytes_written, block.ptr, &bytes_read, null);
+        if (LZ4F_isError(code))
+          throw new LZ4Exception("Failure in LZ4F_decompress", code);
+    }
+
+    ubyte[] in_buff;
+    ubyte[] block;
+  }
+
+  this(string filename) {
+    input_file = std.stdio.File(filename);
+
+    in_buff.length = 256 << 10;
+
+    ctx = createDecompressionContext();
+    assert(ctx !is null);
+
+    auto header = input_file.rawRead(in_buff[0 .. 4]);
+    assert(header.length == 4);
+
+    ubyte[256] tmp;
+    decompress(in_buff[0 .. 4], tmp[]); // header
+    assert(bytes_read == 4);
+    assert(bytes_written == 0);
+  }
+
+  void close() {
+    freeDecompressionContext(ctx);
+    input_file.close();
+  }
+
+  ubyte[] rawRead(ubyte[] buffer) {
+    while (true) {
+      decompress(block, buffer);
+      block = block[bytes_read .. $];
+      if (bytes_written > 0)
+        break;
+      if (block.length == 0 && !readNextBlock())
+        break;
+    }
+    return buffer[0 .. bytes_written];
+  }
+
+  private bool readNextBlock() {
+      block = input_file.rawRead(in_buff);
+      return block.length > 0;
+  }
+}
+
+class LZ4Decompressor {
+  private {
+    ubyte[] in_buff;
+    ubyte[] out_buff;
+  }
+
+  this() {
+    in_buff.length = 256 << 10;
+    out_buff.length = 256 << 10;
+  }
+
+  void decompress(std.stream.InputStream input_file,
+                  std.stdio.File output_file) {
+    size_t bytes_read, bytes_written;
+
+    auto ctx = createDecompressionContext();
+    assert(ctx !is null);
+
+    void decompress(ubyte[] block) {
+      bytes_read = block.length;
+      bytes_written = out_buff.length;
+      auto code = LZ4F_decompress(ctx, out_buff.ptr, &bytes_written, block.ptr, &bytes_read, null);
+      if (LZ4F_isError(code))
+        throw new LZ4Exception("Failure in LZ4F_decompress", code);
+    }
+
+    input_file.readExact(in_buff.ptr, 4);
+
+    decompress(in_buff[0 .. 4]); // header
+    assert(bytes_read == 4);
+    assert(bytes_written == 0);
+
+    while (true) {
+      size_t raw_read = input_file.read(in_buff);
+      if (raw_read == 0) break;
+      auto block = in_buff[0 .. raw_read];
+      while (block.length > 0) {
+        decompress(block);
+        block = block[bytes_read .. $];
+        if (bytes_written > 0)
+          output_file.rawWrite(out_buff[0 .. bytes_written]);
+      }
+    }
+    freeDecompressionContext(ctx);
+  }
+}
+
+int lz4compress_main() {
+  auto compressor = new LZ4Compressor();
+  compressor.compress(stdin, stdout);
+  return 0;
+}
diff --git a/utils/strip_bcf_header.d b/utils/strip_bcf_header.d
new file mode 100644
index 0000000..48a6a0f
--- /dev/null
+++ b/utils/strip_bcf_header.d
@@ -0,0 +1,107 @@
+/*
+    This file is part of Sambamba.
+    Copyright (C) 2012-2015    Artem Tarasov <lomereiter at gmail.com>
+
+    Sambamba 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; either version 2 of the License, or
+    (at your option) any later version.
+
+    Sambamba 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+*/
+module utils.strip_bcf_header;
+
+// used in mpileup tool to strip the common header from partial files
+void stripBcfHeader(File input_file, File output_file) {
+  import bio.core.bgzf.inputstream;
+  import bio.core.bgzf.constants;
+  import bio.core.bgzf.block;
+  import bio.core.bgzf.compress;
+  import std.cstream, std.exception;
+
+  auto stream = new CFile(input_file.getFP(), FileMode.In);
+  auto supplier = new StreamSupplier(stream);
+  BgzfBlock block;
+  ubyte[] tmp = new ubyte[BGZF_MAX_BLOCK_SIZE];
+  ushort skip_start, skip_end;
+
+  supplier.getNextBgzfBlock(&block, tmp.ptr, &skip_start, &skip_end);
+  auto decompressed = decompressBgzfBlock(block);
+  auto data = decompressed.decompressed_data;
+  enforce(cast(char[])data[0 .. 3] == "BCF");
+
+  auto header_len = *(cast(int*)(data.ptr + 5));
+  size_t offset = 9 + header_len;
+  header_len -= min(data.length - 9, header_len);
+  while (header_len > 0) {
+    supplier.getNextBgzfBlock(&block, tmp.ptr, &skip_start, &skip_end);
+    decompressed = decompressBgzfBlock(block);
+    data = decompressed.decompressed_data;
+    offset = header_len;
+    header_len -= min(data.length, header_len);
+  }
+
+  auto first_block = bgzfCompress(data[offset .. $], -1, tmp);
+  output_file.rawWrite(first_block);
+
+  while (true) {
+    auto input = input_file.rawRead(tmp);
+    if (input.length == 0) break;
+    output_file.rawWrite(input);
+  }
+}
+
+void stripUncompressedBcfHeader(File input_file, File output_file) {
+  import std.exception, std.algorithm;
+  ubyte[4096] buffer = void;
+  auto start = input_file.rawRead(buffer[0 .. 5]);
+  enforce(cast(char[])start[0 .. 3] == "BCF");
+
+  auto header_len_ = input_file.rawRead(buffer[0 .. 4]);
+
+  auto header_len = *(cast(int*)(buffer.ptr));
+  while (header_len > 0) {
+    auto bytes_to_read = min(header_len, buffer.length);
+    auto chunk = input_file.rawRead(buffer[0 .. bytes_to_read]);
+    header_len -= chunk.length;
+  }
+
+  while (true) {
+    auto chunk = input_file.rawRead(buffer[]);
+    if (chunk.length == 0)
+      break;
+    output_file.rawWrite(chunk);
+  }
+}
+
+void stripVcfHeader(File input_file, File output_file) {
+  import bio.core.utils.bylinefast;
+  bool header = true;
+  auto w = output_file.lockingTextWriter;
+  foreach (line; ByLineFast(input_file)) {
+    if (header && line.length > 0 && line[0] == '#') // header
+      continue;
+    header = false;
+    w.put(line);
+    w.put('\n');
+  }
+}
+
+import std.stdio, std.conv;
+int strip_bcf_header_main(string[] args) {
+  if (args[1] == "--bcf")
+    stripBcfHeader(stdin, stdout);
+  else if (args[1] == "--ubcf")
+    stripUncompressedBcfHeader(stdin, stdout);
+  else if (args[1] == "--vcf")
+    stripVcfHeader(stdin, stdout);
+  return 0;
+}
diff --git a/utils/version_.d b/utils/version_.d
new file mode 100644
index 0000000..329f63d
--- /dev/null
+++ b/utils/version_.d
@@ -0,0 +1,21 @@
+module utils.version_;
+
+immutable string VERSION = "0.6.5";
+
+import bio.sam.header;
+import std.array : join;
+
+SamHeader addPG(string tool, string[] args, SamHeader header) {
+    auto pg_line = PgLine();
+    pg_line.identifier = "sambamba";
+    pg_line.command_line = tool ~ " " ~ join(args[1 .. $], " ");
+    pg_line.program_version = VERSION;
+
+    if (header.programs.length > 0) {
+        auto prev_id = header.programs.values.back.identifier;
+        pg_line.previous_program = prev_id;
+    }
+
+    header.programs.add(pg_line);
+    return header;
+}

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-med/sambamba.git



More information about the debian-med-commit mailing list